"use strict";
(function(module) {
    if (typeof define === 'function' && define.amd) {
        define(['exports'], function(exports)  {
            module(exports);
        });
    } else if (typeof exports === 'object' && exports !== null && typeof exports.nodeName !== 'string') {
        module(exports);
    } else {
        module(typeof self !== 'undefined' ? self : this);
}
}(function($rt_exports) {
let $rt_seed = 2463534242,
$rt_nextId = () => {
    let x = $rt_seed;
    x ^= x << 13;
    x ^= x >>> 17;
    x ^= x << 5;
    $rt_seed = x;
    return x;
},
$rt_wrapFunction0 = f => function() {
    return f(this);
},
$rt_wrapFunction1 = f => function(p1) {
    return f(this, p1);
},
$rt_wrapFunction2 = f => function(p1, p2) {
    return f(this, p1, p2);
},
$rt_wrapFunction3 = f => function(p1, p2, p3) {
    return f(this, p1, p2, p3, p3);
},
$rt_wrapFunction4 = f => function(p1, p2, p3, p4) {
    return f(this, p1, p2, p3, p4);
},
$rt_mainStarter = f => (args, callback) => {
    if (!args) {
        args = [];
    }
    let javaArgs = $rt_createArray($rt_objcls(), args.length);
    for (let i = 0;i < args.length;++i) {
        javaArgs.data[i] = $rt_str(args[i]);
    }
    $rt_startThread(() => {
        f.call(null, javaArgs);
    }, callback);
},
$rt_eraseClinit = target => target.$clinit = () => {
},
$dbg_class = obj => {
    let cls = obj.constructor;
    let arrayDegree = 0;
    while (cls.$meta && cls.$meta.item) {
        ++arrayDegree;
        cls = cls.$meta.item;
    }
    let clsName = "";
    if (cls.$meta.primitive) {
        clsName = cls.$meta.name;
    } else {
        clsName = cls.$meta ? cls.$meta.name || "a/" + cls.name : "@" + cls.name;
    }
    while (arrayDegree-- > 0) {
        clsName += "[]";
    }
    return clsName;
},
$rt_classWithoutFields = superclass => {
    if (superclass === 0) {
        return function() {
        };
    }
    if (superclass === void 0) {
        superclass = $rt_objcls();
    }
    return function() {
        superclass.call(this);
    };
},
$rt_cls = cls => jl_Class_getClass(cls),
$rt_objcls = () => jl_Object,
$rt_getThread = () => {
    {
        return jl_Thread_currentThread0();
    }
},
$rt_setThread = t => {
    {
        return jl_Thread_setCurrentThread(t);
    }
},
$rt_createcls = () => {
    return { $array : null, classObject : null, $meta : { supertypes : [], superclass : null } };
},
$rt_createPrimitiveCls = (name, binaryName) => {
    let cls = $rt_createcls();
    cls.$meta.primitive = true;
    cls.$meta.name = name;
    cls.$meta.binaryName = binaryName;
    cls.$meta.enum = false;
    cls.$meta.item = null;
    cls.$meta.simpleName = null;
    cls.$meta.declaringClass = null;
    cls.$meta.enclosingClass = null;
    return cls;
},
$rt_booleancls = $rt_createPrimitiveCls("boolean", "Z"),
$rt_charcls = $rt_createPrimitiveCls("char", "C"),
$rt_bytecls = $rt_createPrimitiveCls("byte", "B"),
$rt_shortcls = $rt_createPrimitiveCls("short", "S"),
$rt_intcls = $rt_createPrimitiveCls("int", "I"),
$rt_longcls = $rt_createPrimitiveCls("long", "J"),
$rt_floatcls = $rt_createPrimitiveCls("float", "F"),
$rt_doublecls = $rt_createPrimitiveCls("double", "D"),
$rt_voidcls = $rt_createPrimitiveCls("void", "V"),
$rt_numberConversionBuffer = new ArrayBuffer(16),
$rt_numberConversionView = new DataView($rt_numberConversionBuffer),
$rt_numberConversionFloatArray = new Float32Array($rt_numberConversionBuffer),
$rt_numberConversionDoubleArray = new Float64Array($rt_numberConversionBuffer),
$rt_numberConversionIntArray = new Int32Array($rt_numberConversionBuffer),
$rt_doubleToRawLongBits,
$rt_longBitsToDouble;
if (typeof BigInt !== 'function') {
    $rt_doubleToRawLongBits = n => {
        $rt_numberConversionView.setFloat64(0, n, true);
        return new Long($rt_numberConversionView.getInt32(0, true), $rt_numberConversionView.getInt32(4, true));
    };
    $rt_longBitsToDouble = n => {
        $rt_numberConversionView.setInt32(0, n.lo, true);
        $rt_numberConversionView.setInt32(4, n.hi, true);
        return $rt_numberConversionView.getFloat64(0, true);
    };
} else if (typeof BigInt64Array !== 'function') {
    $rt_doubleToRawLongBits = n => {
        $rt_numberConversionView.setFloat64(0, n, true);
        let lo = $rt_numberConversionView.getInt32(0, true);
        let hi = $rt_numberConversionView.getInt32(4, true);
        return BigInt.asIntN(64, BigInt.asUintN(32, BigInt(lo)) | BigInt(hi) << BigInt(32));
    };
    $rt_longBitsToDouble = n => {
        $rt_numberConversionView.setFloat64(0, n, true);
        let lo = $rt_numberConversionView.getInt32(0, true);
        let hi = $rt_numberConversionView.getInt32(4, true);
        return BigInt.asIntN(64, BigInt.asUintN(32, BigInt(lo)) | BigInt(hi) << BigInt(32));
    };
} else {
    let $rt_numberConversionLongArray = new BigInt64Array($rt_numberConversionBuffer);
    $rt_doubleToRawLongBits = n => {
        $rt_numberConversionDoubleArray[0] = n;
        return $rt_numberConversionLongArray[0];
    };
    $rt_longBitsToDouble = n => {
        $rt_numberConversionLongArray[0] = n;
        return $rt_numberConversionDoubleArray[0];
    };
}
let $rt_floatToRawIntBits = n => {
    $rt_numberConversionFloatArray[0] = n;
    return $rt_numberConversionIntArray[0];
},
$rt_intBitsToFloat = n => {
    $rt_numberConversionIntArray[0] = n;
    return $rt_numberConversionFloatArray[0];
},
$rt_compare = (a, b) => a > b ? 1 : a < b ?  -1 : a === b ? 0 : 1,
$rt_imul = Math.imul || function(a, b) {
    let ah = a >>> 16 & 0xFFFF;
    let al = a & 0xFFFF;
    let bh = b >>> 16 & 0xFFFF;
    let bl = b & 0xFFFF;
    return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0;
},
$rt_udiv = (a, b) => (a >>> 0) / (b >>> 0) >>> 0,
$rt_umod = (a, b) => (a >>> 0) % (b >>> 0) >>> 0,
$rt_ucmp = (a, b) => {
    a >>>= 0;
    b >>>= 0;
    return a < b ?  -1 : a > b ? 1 : 0;
};
function Long(lo, hi) {
    this.lo = lo | 0;
    this.hi = hi | 0;
}
Long.prototype.__teavm_class__ = () => {
    return "long";
};
let Long_isPositive = a => (a.hi & 0x80000000) === 0,
Long_isNegative = a => (a.hi & 0x80000000) !== 0,
Long_MAX_NORMAL = 1 << 18,
Long_ZERO,
Long_create,
Long_fromInt,
Long_fromNumber,
Long_toNumber,
Long_hi,
Long_lo,
Long_divRem;
if (typeof BigInt !== "function") {
    Long.prototype.toString = function() {
        let result = [];
        let n = this;
        let positive = Long_isPositive(n);
        if (!positive) {
            n = Long_neg(n);
        }
        let radix = new Long(10, 0);
        do  {
            let divRem = Long_divRem(n, radix);
            result.push(String.fromCharCode(48 + divRem[1].lo));
            n = divRem[0];
        }while (n.lo !== 0 || n.hi !== 0);
        result = (result.reverse()).join('');
        return positive ? result : "-" + result;
    };
    Long.prototype.valueOf = function() {
        return Long_toNumber(this);
    };
    Long_ZERO = new Long(0, 0);
    Long_fromInt = val => new Long(val,  -(val < 0) | 0);
    Long_fromNumber = val => val >= 0 ? new Long(val | 0, val / 0x100000000 | 0) : Long_neg(new Long( -val | 0,  -val / 0x100000000 | 0));
    Long_create = (lo, hi) => new Long(lo, hi);
    Long_toNumber = val => 0x100000000 * val.hi + (val.lo >>> 0);
    Long_hi = val => val.hi;
    Long_lo = val => val.lo;
} else {
    Long_ZERO = BigInt(0);
    Long_create = (lo, hi) => BigInt.asIntN(64, BigInt.asUintN(64, BigInt(lo)) | BigInt.asUintN(64, BigInt(hi) << BigInt(32)));
    Long_fromInt = val => BigInt.asIntN(64, BigInt(val | 0));
    Long_fromNumber = val => BigInt.asIntN(64, BigInt(val >= 0 ? Math.floor(val) : Math.ceil(val)));
    Long_toNumber = val => Number(val);
    Long_hi = val => Number(BigInt.asIntN(64, val >> BigInt(32))) | 0;
    Long_lo = val => Number(BigInt.asIntN(32, val)) | 0;
}
let Long_eq,
Long_ne,
Long_gt,
Long_ge,
Long_lt,
Long_le,
Long_compare,
Long_ucompare,
Long_add,
Long_sub,
Long_inc,
Long_mul,
Long_div,
Long_rem,
Long_udiv,
Long_urem,
Long_neg,
Long_and,
Long_or,
Long_xor,
Long_shl,
Long_shr,
Long_shru;
if (typeof BigInt !== 'function') {
    Long_eq = (a, b) => a.hi === b.hi && a.lo === b.lo;
    Long_ne = (a, b) => a.hi !== b.hi || a.lo !== b.lo;
    Long_gt = (a, b) => {
        if (a.hi < b.hi) {
            return false;
        }
        if (a.hi > b.hi) {
            return true;
        }
        let x = a.lo >>> 1;
        let y = b.lo >>> 1;
        if (x !== y) {
            return x > y;
        }
        return (a.lo & 1) > (b.lo & 1);
    };
    Long_ge = (a, b) => {
        if (a.hi < b.hi) {
            return false;
        }
        if (a.hi > b.hi) {
            return true;
        }
        let x = a.lo >>> 1;
        let y = b.lo >>> 1;
        if (x !== y) {
            return x >= y;
        }
        return (a.lo & 1) >= (b.lo & 1);
    };
    Long_lt = (a, b) => {
        if (a.hi > b.hi) {
            return false;
        }
        if (a.hi < b.hi) {
            return true;
        }
        let x = a.lo >>> 1;
        let y = b.lo >>> 1;
        if (x !== y) {
            return x < y;
        }
        return (a.lo & 1) < (b.lo & 1);
    };
    Long_le = (a, b) => {
        if (a.hi > b.hi) {
            return false;
        }
        if (a.hi < b.hi) {
            return true;
        }
        let x = a.lo >>> 1;
        let y = b.lo >>> 1;
        if (x !== y) {
            return x <= y;
        }
        return (a.lo & 1) <= (b.lo & 1);
    };
    Long_add = (a, b) => {
        if (a.hi === a.lo >> 31 && b.hi === b.lo >> 31) {
            return Long_fromNumber(a.lo + b.lo);
        } else if (Math.abs(a.hi) < Long_MAX_NORMAL && Math.abs(b.hi) < Long_MAX_NORMAL) {
            return Long_fromNumber(Long_toNumber(a) + Long_toNumber(b));
        }
        let a_lolo = a.lo & 0xFFFF;
        let a_lohi = a.lo >>> 16;
        let a_hilo = a.hi & 0xFFFF;
        let a_hihi = a.hi >>> 16;
        let b_lolo = b.lo & 0xFFFF;
        let b_lohi = b.lo >>> 16;
        let b_hilo = b.hi & 0xFFFF;
        let b_hihi = b.hi >>> 16;
        let lolo = a_lolo + b_lolo | 0;
        let lohi = a_lohi + b_lohi + (lolo >> 16) | 0;
        let hilo = a_hilo + b_hilo + (lohi >> 16) | 0;
        let hihi = a_hihi + b_hihi + (hilo >> 16) | 0;
        return new Long(lolo & 0xFFFF | (lohi & 0xFFFF) << 16, hilo & 0xFFFF | (hihi & 0xFFFF) << 16);
    };
    Long_inc = a => {
        let lo = a.lo + 1 | 0;
        let hi = a.hi;
        if (lo === 0) {
            hi = hi + 1 | 0;
        }
        return new Long(lo, hi);
    };
    Long_neg = a => Long_inc(new Long(a.lo ^ 0xFFFFFFFF, a.hi ^ 0xFFFFFFFF));
    Long_sub = (a, b) => {
        if (a.hi === a.lo >> 31 && b.hi === b.lo >> 31) {
            return Long_fromNumber(a.lo - b.lo);
        }
        let a_lolo = a.lo & 0xFFFF;
        let a_lohi = a.lo >>> 16;
        let a_hilo = a.hi & 0xFFFF;
        let a_hihi = a.hi >>> 16;
        let b_lolo = b.lo & 0xFFFF;
        let b_lohi = b.lo >>> 16;
        let b_hilo = b.hi & 0xFFFF;
        let b_hihi = b.hi >>> 16;
        let lolo = a_lolo - b_lolo | 0;
        let lohi = a_lohi - b_lohi + (lolo >> 16) | 0;
        let hilo = a_hilo - b_hilo + (lohi >> 16) | 0;
        let hihi = a_hihi - b_hihi + (hilo >> 16) | 0;
        return new Long(lolo & 0xFFFF | (lohi & 0xFFFF) << 16, hilo & 0xFFFF | (hihi & 0xFFFF) << 16);
    };
    Long_compare = (a, b) => {
        let r = a.hi - b.hi;
        if (r !== 0) {
            return r;
        }
        r = (a.lo >>> 1) - (b.lo >>> 1);
        if (r !== 0) {
            return r;
        }
        return (a.lo & 1) - (b.lo & 1);
    };
    Long_ucompare = (a, b) => {
        let r = $rt_ucmp(a.hi, b.hi);
        if (r !== 0) {
            return r;
        }
        r = (a.lo >>> 1) - (b.lo >>> 1);
        if (r !== 0) {
            return r;
        }
        return (a.lo & 1) - (b.lo & 1);
    };
    Long_mul = (a, b) => {
        let positive = Long_isNegative(a) === Long_isNegative(b);
        if (Long_isNegative(a)) {
            a = Long_neg(a);
        }
        if (Long_isNegative(b)) {
            b = Long_neg(b);
        }
        let a_lolo = a.lo & 0xFFFF;
        let a_lohi = a.lo >>> 16;
        let a_hilo = a.hi & 0xFFFF;
        let a_hihi = a.hi >>> 16;
        let b_lolo = b.lo & 0xFFFF;
        let b_lohi = b.lo >>> 16;
        let b_hilo = b.hi & 0xFFFF;
        let b_hihi = b.hi >>> 16;
        let lolo = 0;
        let lohi = 0;
        let hilo = 0;
        let hihi = 0;
        lolo = a_lolo * b_lolo | 0;
        lohi = lolo >>> 16;
        lohi = (lohi & 0xFFFF) + a_lohi * b_lolo | 0;
        hilo = hilo + (lohi >>> 16) | 0;
        lohi = (lohi & 0xFFFF) + a_lolo * b_lohi | 0;
        hilo = hilo + (lohi >>> 16) | 0;
        hihi = hilo >>> 16;
        hilo = (hilo & 0xFFFF) + a_hilo * b_lolo | 0;
        hihi = hihi + (hilo >>> 16) | 0;
        hilo = (hilo & 0xFFFF) + a_lohi * b_lohi | 0;
        hihi = hihi + (hilo >>> 16) | 0;
        hilo = (hilo & 0xFFFF) + a_lolo * b_hilo | 0;
        hihi = hihi + (hilo >>> 16) | 0;
        hihi = hihi + a_hihi * b_lolo + a_hilo * b_lohi + a_lohi * b_hilo + a_lolo * b_hihi | 0;
        let result = new Long(lolo & 0xFFFF | lohi << 16, hilo & 0xFFFF | hihi << 16);
        return positive ? result : Long_neg(result);
    };
    Long_div = (a, b) => {
        if (Math.abs(a.hi) < Long_MAX_NORMAL && Math.abs(b.hi) < Long_MAX_NORMAL) {
            return Long_fromNumber(Long_toNumber(a) / Long_toNumber(b));
        }
        return (Long_divRem(a, b))[0];
    };
    Long_udiv = (a, b) => {
        if (a.hi >= 0 && a.hi < Long_MAX_NORMAL && b.hi >= 0 && b.hi < Long_MAX_NORMAL) {
            return Long_fromNumber(Long_toNumber(a) / Long_toNumber(b));
        }
        return (Long_udivRem(a, b))[0];
    };
    Long_rem = (a, b) => {
        if (Math.abs(a.hi) < Long_MAX_NORMAL && Math.abs(b.hi) < Long_MAX_NORMAL) {
            return Long_fromNumber(Long_toNumber(a) % Long_toNumber(b));
        }
        return (Long_divRem(a, b))[1];
    };
    Long_urem = (a, b) => {
        if (a.hi >= 0 && a.hi < Long_MAX_NORMAL && b.hi >= 0 && b.hi < Long_MAX_NORMAL) {
            return Long_fromNumber(Long_toNumber(a) / Long_toNumber(b));
        }
        return (Long_udivRem(a, b))[1];
    };
    Long_divRem = (a, b) => {
        if (b.lo === 0 && b.hi === 0) {
            throw new Error("Division by zero");
        }
        let positive = Long_isNegative(a) === Long_isNegative(b);
        if (Long_isNegative(a)) {
            a = Long_neg(a);
        }
        if (Long_isNegative(b)) {
            b = Long_neg(b);
        }
        a = new LongInt(a.lo, a.hi, 0);
        b = new LongInt(b.lo, b.hi, 0);
        let q = LongInt_div(a, b);
        a = new Long(a.lo, a.hi);
        q = new Long(q.lo, q.hi);
        return positive ? [q, a] : [Long_neg(q), Long_neg(a)];
    };
    let Long_udivRem = (a, b) => {
        if (b.lo === 0 && b.hi === 0) {
            throw new Error("Division by zero");
        }
        a = new LongInt(a.lo, a.hi, 0);
        b = new LongInt(b.lo, b.hi, 0);
        let q = LongInt_div(a, b);
        a = new Long(a.lo, a.hi);
        q = new Long(q.lo, q.hi);
        return [q, a];
    };
    Long_and = (a, b) => new Long(a.lo & b.lo, a.hi & b.hi);
    Long_or = (a, b) => new Long(a.lo | b.lo, a.hi | b.hi);
    Long_xor = (a, b) => new Long(a.lo ^ b.lo, a.hi ^ b.hi);
    Long_shl = (a, b) => {
        b &= 63;
        if (b === 0) {
            return a;
        } else if (b < 32) {
            return new Long(a.lo << b, a.lo >>> 32 - b | a.hi << b);
        } else if (b === 32) {
            return new Long(0, a.lo);
        } else {
            return new Long(0, a.lo << b - 32);
        }
    };
    Long_shr = (a, b) => {
        b &= 63;
        if (b === 0) {
            return a;
        } else if (b < 32) {
            return new Long(a.lo >>> b | a.hi << 32 - b, a.hi >> b);
        } else if (b === 32) {
            return new Long(a.hi, a.hi >> 31);
        } else {
            return new Long(a.hi >> b - 32, a.hi >> 31);
        }
    };
    Long_shru = (a, b) => {
        b &= 63;
        if (b === 0) {
            return a;
        } else if (b < 32) {
            return new Long(a.lo >>> b | a.hi << 32 - b, a.hi >>> b);
        } else if (b === 32) {
            return new Long(a.hi, 0);
        } else {
            return new Long(a.hi >>> b - 32, 0);
        }
    };
    function LongInt(lo, hi, sup) {
        this.lo = lo;
        this.hi = hi;
        this.sup = sup;
    }
    let LongInt_mul = (a, b) => {
        let a_lolo = (a.lo & 0xFFFF) * b | 0;
        let a_lohi = (a.lo >>> 16) * b | 0;
        let a_hilo = (a.hi & 0xFFFF) * b | 0;
        let a_hihi = (a.hi >>> 16) * b | 0;
        let sup = a.sup * b | 0;
        a_lohi = a_lohi + (a_lolo >>> 16) | 0;
        a_hilo = a_hilo + (a_lohi >>> 16) | 0;
        a_hihi = a_hihi + (a_hilo >>> 16) | 0;
        sup = sup + (a_hihi >>> 16) | 0;
        a.lo = a_lolo & 0xFFFF | a_lohi << 16;
        a.hi = a_hilo & 0xFFFF | a_hihi << 16;
        a.sup = sup & 0xFFFF;
    };
    let LongInt_sub = (a, b) => {
        let a_lolo = a.lo & 0xFFFF;
        let a_lohi = a.lo >>> 16;
        let a_hilo = a.hi & 0xFFFF;
        let a_hihi = a.hi >>> 16;
        let b_lolo = b.lo & 0xFFFF;
        let b_lohi = b.lo >>> 16;
        let b_hilo = b.hi & 0xFFFF;
        let b_hihi = b.hi >>> 16;
        a_lolo = a_lolo - b_lolo | 0;
        a_lohi = a_lohi - b_lohi + (a_lolo >> 16) | 0;
        a_hilo = a_hilo - b_hilo + (a_lohi >> 16) | 0;
        a_hihi = a_hihi - b_hihi + (a_hilo >> 16) | 0;
        let sup = a.sup - b.sup + (a_hihi >> 16) | 0;
        a.lo = a_lolo & 0xFFFF | a_lohi << 16;
        a.hi = a_hilo & 0xFFFF | a_hihi << 16;
        a.sup = sup;
    };
    let LongInt_add = (a, b) => {
        let a_lolo = a.lo & 0xFFFF;
        let a_lohi = a.lo >>> 16;
        let a_hilo = a.hi & 0xFFFF;
        let a_hihi = a.hi >>> 16;
        let b_lolo = b.lo & 0xFFFF;
        let b_lohi = b.lo >>> 16;
        let b_hilo = b.hi & 0xFFFF;
        let b_hihi = b.hi >>> 16;
        a_lolo = a_lolo + b_lolo | 0;
        a_lohi = a_lohi + b_lohi + (a_lolo >> 16) | 0;
        a_hilo = a_hilo + b_hilo + (a_lohi >> 16) | 0;
        a_hihi = a_hihi + b_hihi + (a_hilo >> 16) | 0;
        let sup = a.sup + b.sup + (a_hihi >> 16) | 0;
        a.lo = a_lolo & 0xFFFF | a_lohi << 16;
        a.hi = a_hilo & 0xFFFF | a_hihi << 16;
        a.sup = sup;
    };
    let LongInt_ucompare = (a, b) => {
        let r = a.sup - b.sup;
        if (r !== 0) {
            return r;
        }
        r = (a.hi >>> 1) - (b.hi >>> 1);
        if (r !== 0) {
            return r;
        }
        r = (a.hi & 1) - (b.hi & 1);
        if (r !== 0) {
            return r;
        }
        r = (a.lo >>> 1) - (b.lo >>> 1);
        if (r !== 0) {
            return r;
        }
        return (a.lo & 1) - (b.lo & 1);
    };
    let LongInt_numOfLeadingZeroBits = a => {
        let n = 0;
        let d = 16;
        while (d > 0) {
            if (a >>> d !== 0) {
                a >>>= d;
                n = n + d | 0;
            }
            d = d / 2 | 0;
        }
        return 31 - n;
    };
    let LongInt_shl = (a, b) => {
        if (b === 0) {
            return;
        }
        if (b < 32) {
            a.sup = (a.hi >>> 32 - b | a.sup << b) & 0xFFFF;
            a.hi = a.lo >>> 32 - b | a.hi << b;
            a.lo <<= b;
        } else if (b === 32) {
            a.sup = a.hi & 0xFFFF;
            a.hi = a.lo;
            a.lo = 0;
        } else if (b < 64) {
            a.sup = (a.lo >>> 64 - b | a.hi << b - 32) & 0xFFFF;
            a.hi = a.lo << b;
            a.lo = 0;
        } else if (b === 64) {
            a.sup = a.lo & 0xFFFF;
            a.hi = 0;
            a.lo = 0;
        } else {
            a.sup = a.lo << b - 64 & 0xFFFF;
            a.hi = 0;
            a.lo = 0;
        }
    };
    let LongInt_shr = (a, b) => {
        if (b === 0) {
            return;
        }
        if (b === 32) {
            a.lo = a.hi;
            a.hi = a.sup;
            a.sup = 0;
        } else if (b < 32) {
            a.lo = a.lo >>> b | a.hi << 32 - b;
            a.hi = a.hi >>> b | a.sup << 32 - b;
            a.sup >>>= b;
        } else if (b === 64) {
            a.lo = a.sup;
            a.hi = 0;
            a.sup = 0;
        } else if (b < 64) {
            a.lo = a.hi >>> b - 32 | a.sup << 64 - b;
            a.hi = a.sup >>> b - 32;
            a.sup = 0;
        } else {
            a.lo = a.sup >>> b - 64;
            a.hi = 0;
            a.sup = 0;
        }
    };
    let LongInt_copy = a => new LongInt(a.lo, a.hi, a.sup);
    let LongInt_div = (a, b) => {
        let bits = b.hi !== 0 ? LongInt_numOfLeadingZeroBits(b.hi) : LongInt_numOfLeadingZeroBits(b.lo) + 32;
        let sz = 1 + (bits / 16 | 0);
        let dividentBits = bits % 16;
        LongInt_shl(b, bits);
        LongInt_shl(a, dividentBits);
        let q = new LongInt(0, 0, 0);
        while (sz-- > 0) {
            LongInt_shl(q, 16);
            let digitA = (a.hi >>> 16) + 0x10000 * a.sup;
            let digitB = b.hi >>> 16;
            let digit = digitA / digitB | 0;
            let t = LongInt_copy(b);
            LongInt_mul(t, digit);
            if (LongInt_ucompare(t, a) >= 0) {
                while (LongInt_ucompare(t, a) > 0) {
                    LongInt_sub(t, b);
                     --digit;
                }
            } else {
                while (true) {
                    let nextT = LongInt_copy(t);
                    LongInt_add(nextT, b);
                    if (LongInt_ucompare(nextT, a) > 0) {
                        break;
                    }
                    t = nextT;
                    ++digit;
                }
            }
            LongInt_sub(a, t);
            q.lo |= digit;
            LongInt_shl(a, 16);
        }
        LongInt_shr(a, bits + 16);
        return q;
    };
} else {
    Long_eq = (a, b) => a === b;
    Long_ne = (a, b) => a !== b;
    Long_gt = (a, b) => a > b;
    Long_ge = (a, b) => a >= b;
    Long_lt = (a, b) => a < b;
    Long_le = (a, b) => a <= b;
    Long_add = (a, b) => BigInt.asIntN(64, a + b);
    Long_inc = a => BigInt.asIntN(64, a + 1);
    Long_neg = a => BigInt.asIntN(64,  -a);
    Long_sub = (a, b) => BigInt.asIntN(64, a - b);
    Long_compare = (a, b) => a < b ?  -1 : a > b ? 1 : 0;
    Long_ucompare = (a, b) => {
        a = BigInt.asUintN(64, a);
        b = BigInt.asUintN(64, b);
        return a < b ?  -1 : a > b ? 1 : 0;
    };
    Long_mul = (a, b) => BigInt.asIntN(64, a * b);
    Long_div = (a, b) => BigInt.asIntN(64, a / b);
    Long_udiv = (a, b) => BigInt.asIntN(64, BigInt.asUintN(64, a) / BigInt.asUintN(64, b));
    Long_rem = (a, b) => BigInt.asIntN(64, a % b);
    Long_urem = (a, b) => BigInt.asIntN(64, BigInt.asUintN(64, a) % BigInt.asUintN(64, b));
    Long_and = (a, b) => BigInt.asIntN(64, a & b);
    Long_or = (a, b) => BigInt.asIntN(64, a | b);
    Long_xor = (a, b) => BigInt.asIntN(64, a ^ b);
    Long_shl = (a, b) => BigInt.asIntN(64, a << BigInt(b & 63));
    Long_shr = (a, b) => BigInt.asIntN(64, a >> BigInt(b & 63));
    Long_shru = (a, b) => BigInt.asIntN(64, BigInt.asUintN(64, a) >> BigInt(b & 63));
}
let $rt_createArray = (cls, sz) => {
    let data = new Array(sz);
    data.fill(null);
    return new ($rt_arraycls(cls))(data);
},
$rt_wrapArray = (cls, data) => new ($rt_arraycls(cls))(data),
$rt_createUnfilledArray = (cls, sz) => new ($rt_arraycls(cls))(new Array(sz)),
$rt_createLongArray,
$rt_createLongArrayFromData;
if (typeof BigInt64Array !== 'function') {
    $rt_createLongArray = sz => {
        let data = new Array(sz);
        let arr = new $rt_longArrayCls(data);
        data.fill(Long_ZERO);
        return arr;
    };
    $rt_createLongArrayFromData = init => new $rt_longArrayCls(init);
} else {
    $rt_createLongArray = sz => new $rt_longArrayCls(new BigInt64Array(sz));
    $rt_createLongArrayFromData = data => {
        let buffer = new BigInt64Array(data.length);
        buffer.set(data);
        return new $rt_longArrayCls(buffer);
    };
}
let $rt_createCharArray = sz => new $rt_charArrayCls(new Uint16Array(sz)),
$rt_createCharArrayFromData = data => {
    let buffer = new Uint16Array(data.length);
    buffer.set(data);
    return new $rt_charArrayCls(buffer);
},
$rt_createByteArray = sz => new $rt_byteArrayCls(new Int8Array(sz)),
$rt_createByteArrayFromData = data => {
    let buffer = new Int8Array(data.length);
    buffer.set(data);
    return new $rt_byteArrayCls(buffer);
},
$rt_createShortArray = sz => new $rt_shortArrayCls(new Int16Array(sz)),
$rt_createShortArrayFromData = data => {
    let buffer = new Int16Array(data.length);
    buffer.set(data);
    return new $rt_shortArrayCls(buffer);
},
$rt_createIntArray = sz => new $rt_intArrayCls(new Int32Array(sz)),
$rt_createIntArrayFromData = data => {
    let buffer = new Int32Array(data.length);
    buffer.set(data);
    return new $rt_intArrayCls(buffer);
},
$rt_createBooleanArray = sz => new $rt_booleanArrayCls(new Int8Array(sz)),
$rt_createFloatArray = sz => new $rt_floatArrayCls(new Float32Array(sz)),
$rt_createFloatArrayFromData = data => {
    let buffer = new Float32Array(data.length);
    buffer.set(data);
    return new $rt_floatArrayCls(buffer);
},
$rt_createDoubleArray = sz => new $rt_doubleArrayCls(new Float64Array(sz)),
$rt_createDoubleArrayFromData = data => {
    let buffer = new Float64Array(data.length);
    buffer.set(data);
    return new $rt_doubleArrayCls(buffer);
},
$rt_arraycls = cls => {
    let result = cls.$array;
    if (result === null) {
        function JavaArray(data) {
            ($rt_objcls()).call(this);
            this.data = data;
        }
        JavaArray.prototype = Object.create(($rt_objcls()).prototype);
        JavaArray.prototype.type = cls;
        JavaArray.prototype.constructor = JavaArray;
        JavaArray.prototype.toString = function() {
            let str = "[";
            for (let i = 0;i < this.data.length;++i) {
                if (i > 0) {
                    str += ", ";
                }
                str += this.data[i].toString();
            }
            str += "]";
            return str;
        };
        JavaArray.prototype.$clone0 = function() {
            let dataCopy;
            if ('slice' in this.data) {
                dataCopy = this.data.slice();
            } else {
                dataCopy = new this.data.constructor(this.data.length);
                for (let i = 0;i < dataCopy.length;++i) {
                    dataCopy[i] = this.data[i];
                }
            }
            return new ($rt_arraycls(this.type))(dataCopy);
        };
        let name = "[" + cls.$meta.binaryName;
        JavaArray.$meta = { item : cls, supertypes : [$rt_objcls()], primitive : false, superclass : $rt_objcls(), name : name, binaryName : name, enum : false, simpleName : null, declaringClass : null, enclosingClass : null };
        JavaArray.classObject = null;
        JavaArray.$array = null;
        result = JavaArray;
        cls.$array = JavaArray;
    }
    return result;
},
$rt_createMultiArray = (cls, dimensions) => {
    let first = 0;
    for (let i = dimensions.length - 1;i >= 0;i = i - 1 | 0) {
        if (dimensions[i] === 0) {
            first = i;
            break;
        }
    }
    if (first > 0) {
        for (let i = 0;i < first;i = i + 1 | 0) {
            cls = $rt_arraycls(cls);
        }
        if (first === dimensions.length - 1) {
            return $rt_createArray(cls, dimensions[first]);
        }
    }
    let arrays = new Array($rt_primitiveArrayCount(dimensions, first));
    let firstDim = dimensions[first] | 0;
    for (let i = 0;i < arrays.length;i = i + 1 | 0) {
        arrays[i] = $rt_createArray(cls, firstDim);
    }
    return $rt_createMultiArrayImpl(cls, arrays, dimensions, first);
},
$rt_createIntMultiArray = dimensions => {
    let arrays = new Array($rt_primitiveArrayCount(dimensions, 0));
    if (arrays.length === 0) {
        return $rt_createMultiArray($rt_intcls, dimensions);
    }
    let firstDim = dimensions[0] | 0;
    for (let i = 0;i < arrays.length;i = i + 1 | 0) {
        arrays[i] = $rt_createIntArray(firstDim);
    }
    return $rt_createMultiArrayImpl($rt_intcls, arrays, dimensions, 0);
},
$rt_createLongMultiArray = dimensions => {
    let arrays = new Array($rt_primitiveArrayCount(dimensions, 0));
    if (arrays.length === 0) {
        return $rt_createMultiArray($rt_longcls, dimensions);
    }
    let firstDim = dimensions[0] | 0;
    for (let i = 0;i < arrays.length;i = i + 1 | 0) {
        arrays[i] = $rt_createLongArray(firstDim);
    }
    return $rt_createMultiArrayImpl($rt_longcls, arrays, dimensions, 0);
},
$rt_createDoubleMultiArray = dimensions => {
    let arrays = new Array($rt_primitiveArrayCount(dimensions, 0));
    if (arrays.length === 0) {
        return $rt_createMultiArray($rt_doublecls, dimensions);
    }
    let firstDim = dimensions[0] | 0;
    for (let i = 0;i < arrays.length;i = i + 1 | 0) {
        arrays[i] = $rt_createDoubleArray(firstDim);
    }
    return $rt_createMultiArrayImpl($rt_doublecls, arrays, dimensions, 0);
},
$rt_primitiveArrayCount = (dimensions, start) => {
    let val = dimensions[start + 1] | 0;
    for (let i = start + 2;i < dimensions.length;i = i + 1 | 0) {
        val = val * (dimensions[i] | 0) | 0;
        if (val === 0) {
            break;
        }
    }
    return val;
},
$rt_createMultiArrayImpl = (cls, arrays, dimensions, start) => {
    let limit = arrays.length;
    for (let i = start + 1 | 0;i < dimensions.length;i = i + 1 | 0) {
        cls = $rt_arraycls(cls);
        let dim = dimensions[i];
        let index = 0;
        let packedIndex = 0;
        while (index < limit) {
            let arr = $rt_createUnfilledArray(cls, dim);
            for (let j = 0;j < dim;j = j + 1 | 0) {
                arr.data[j] = arrays[index];
                index = index + 1 | 0;
            }
            arrays[packedIndex] = arr;
            packedIndex = packedIndex + 1 | 0;
        }
        limit = packedIndex;
    }
    return arrays[0];
},
$rt_stringPool_instance,
$rt_stringPool = strings => {
    $rt_stringClassInit();
    $rt_stringPool_instance = new Array(strings.length);
    for (let i = 0;i < strings.length;++i) {
        $rt_stringPool_instance[i] = $rt_intern($rt_str(strings[i]));
    }
},
$rt_s = index => $rt_stringPool_instance[index],
$rt_charArrayToString = (array, offset, count) => {
    let result = "";
    let limit = offset + count;
    for (let i = offset;i < limit;i = i + 1024 | 0) {
        let next = Math.min(limit, i + 1024 | 0);
        result += String.fromCharCode.apply(null, array.subarray(i, next));
    }
    return result;
},
$rt_fullArrayToString = array => $rt_charArrayToString(array, 0, array.length),
$rt_fastStringToCharArray = string => {
    let array = new Uint16Array(string.length);
    for (let i = 0;i < array.length;++i) {
        array[i] = string.charCodeAt(i);
    }
    return new $rt_charArrayCls(array);
},
$rt_str = str => str === null ? null : jl_String__init_0(str),
$rt_ustr = str => str === null ? null : str.$nativeString,
$rt_stringClassInit = () => (() => {})(),
$rt_intern;
{
    $rt_intern = str => str;
}
let $rt_isInstance = (obj, cls) => obj instanceof $rt_objcls() && !!obj.constructor.$meta && $rt_isAssignable(obj.constructor, cls),
$rt_isAssignable = (from, to) => {
    if (from === to) {
        return true;
    }
    let map = from.$meta.assignableCache;
    if (typeof map === 'undefined') {
        map = new Map();
        from.$meta.assignableCache = map;
    }
    let cachedResult = map.get(to);
    if (typeof cachedResult !== 'undefined') {
        return cachedResult;
    }
    if (to.$meta.item !== null) {
        let result = from.$meta.item !== null && $rt_isAssignable(from.$meta.item, to.$meta.item);
        map.set(to, result);
        return result;
    }
    let supertypes = from.$meta.supertypes;
    for (let i = 0;i < supertypes.length;i = i + 1 | 0) {
        if ($rt_isAssignable(supertypes[i], to)) {
            map.set(to, true);
            return true;
        }
    }
    map.set(to, false);
    return false;
},
$rt_throw = ex => {
    throw $rt_exception(ex);
},
$rt_javaExceptionProp = Symbol("javaException"),
$rt_exception = ex => {
    let err = ex.$jsException;
    if (!err) {
        let javaCause = $rt_throwableCause(ex);
        let jsCause = javaCause !== null ? javaCause.$jsException : void 0;
        let cause = typeof jsCause === "object" ? { cause : jsCause } : void 0;
        err = new JavaError("Java exception thrown", cause);
        if (typeof Error.captureStackTrace === "function") {
            Error.captureStackTrace(err);
        }
        err[$rt_javaExceptionProp] = ex;
        ex.$jsException = err;
        $rt_fillStack(err, ex);
    }
    return err;
},
$rt_fillStack = (err, ex) => {
    if (typeof $rt_decodeStack === "function" && err.stack) {
        let stack = $rt_decodeStack(err.stack);
        let javaStack = $rt_createArray($rt_stecls(), stack.length);
        let elem;
        let noStack = false;
        for (let i = 0;i < stack.length;++i) {
            let element = stack[i];
            elem = $rt_createStackElement($rt_str(element.className), $rt_str(element.methodName), $rt_str(element.fileName), element.lineNumber);
            if (elem == null) {
                noStack = true;
                break;
            }
            javaStack.data[i] = elem;
        }
        if (!noStack) {
            $rt_setStack(ex, javaStack);
        }
    }
},
JavaError;
if (typeof Reflect === 'object') {
    let defaultMessage = Symbol("defaultMessage");
    JavaError = function JavaError(message, cause) {
        let self = Reflect.construct(Error, [void 0, cause], JavaError);
        Object.setPrototypeOf(self, JavaError.prototype);
        self[defaultMessage] = message;
        return self;
    }
    ;
    JavaError.prototype = Object.create(Error.prototype, { constructor : { configurable : true, writable : true, value : JavaError }, message : { get() {
        try {
            let javaException = this[$rt_javaExceptionProp];
            if (typeof javaException === 'object') {
                let javaMessage = $rt_throwableMessage(javaException);
                if (typeof javaMessage === "object") {
                    return javaMessage !== null ? javaMessage.toString() : null;
                }
            }
            return this[defaultMessage];
        } catch (e){
            return "Exception occurred trying to extract Java exception message: " + e;
        }
    } } });
} else {
    JavaError = Error;
}
let $rt_javaException = e => e instanceof Error && typeof e[$rt_javaExceptionProp] === 'object' ? e[$rt_javaExceptionProp] : null,
$rt_wrapException = err => {
    let ex = err[$rt_javaExceptionProp];
    if (!ex) {
        ex = $rt_createException($rt_str("(JavaScript) " + err.toString()));
        err[$rt_javaExceptionProp] = ex;
        ex.$jsException = err;
        $rt_fillStack(err, ex);
    }
    return ex;
},
$rt_createException = message => jl_RuntimeException__init_2(message),
$rt_throwableMessage = t => jl_Throwable_getMessage(t),
$rt_throwableCause = t => jl_Throwable_getCause(t),
$rt_stecls = () => jl_StackTraceElement,
$rt_createStackElement = (className, methodName, fileName, lineNumber) => {
    {
        return null;
    }
},
$rt_setStack = (e, stack) => {
},
$rt_createOutputFunction = outputFunction => {
    let buffer = "";
    return msg => {
        let index = 0;
        while (true) {
            let next = msg.indexOf('\n', index);
            if (next < 0) {
                break;
            }
            outputFunction(buffer + msg.substring(index, next));
            buffer = "";
            index = next + 1;
        }
        buffer += msg.substring(index);
    };
},
$rt_putStdout = typeof $rt_putStdoutCustom === "function" ? $rt_putStdoutCustom : typeof console === "object" ? $rt_createOutputFunction(msg => console.info(msg)) : () => {
},
$rt_putStderr = typeof $rt_putStderrCustom === "function" ? $rt_putStderrCustom : typeof console === "object" ? $rt_createOutputFunction(msg => console.error(msg)) : () => {
},
$rt_packageData = null,
$rt_packages = data => {
    let i = 0;
    let packages = new Array(data.length);
    for (let j = 0;j < data.length;++j) {
        let prefixIndex = data[i++];
        let prefix = prefixIndex >= 0 ? packages[prefixIndex] : "";
        packages[j] = prefix + data[i++] + ".";
    }
    $rt_packageData = packages;
},
$rt_metadata = data => {
    let packages = $rt_packageData;
    let i = 0;
    while (i < data.length) {
        let cls = data[i++];
        cls.$meta = {  };
        let m = cls.$meta;
        let className = data[i++];
        m.name = className !== 0 ? className : null;
        if (m.name !== null) {
            let packageIndex = data[i++];
            if (packageIndex >= 0) {
                m.name = packages[packageIndex] + m.name;
            }
        }
        m.binaryName = "L" + m.name + ";";
        let superclass = data[i++];
        m.superclass = superclass !== 0 ? superclass : null;
        m.supertypes = data[i++];
        if (m.superclass) {
            m.supertypes.push(m.superclass);
            cls.prototype = Object.create(m.superclass.prototype);
        } else {
            cls.prototype = {  };
        }
        let flags = data[i++];
        m.enum = (flags & 8) !== 0;
        m.flags = flags;
        m.primitive = false;
        m.item = null;
        cls.prototype.constructor = cls;
        cls.classObject = null;
        m.accessLevel = data[i++];
        let innerClassInfo = data[i++];
        if (innerClassInfo === 0) {
            m.simpleName = null;
            m.declaringClass = null;
            m.enclosingClass = null;
        } else {
            let enclosingClass = innerClassInfo[0];
            m.enclosingClass = enclosingClass !== 0 ? enclosingClass : null;
            let declaringClass = innerClassInfo[1];
            m.declaringClass = declaringClass !== 0 ? declaringClass : null;
            let simpleName = innerClassInfo[2];
            m.simpleName = simpleName !== 0 ? simpleName : null;
        }
        let clinit = data[i++];
        cls.$clinit = clinit !== 0 ? clinit : function() {
        };
        let virtualMethods = data[i++];
        if (virtualMethods !== 0) {
            for (let j = 0;j < virtualMethods.length;j += 2) {
                let name = virtualMethods[j];
                let func = virtualMethods[j + 1];
                if (typeof name === 'string') {
                    name = [name];
                }
                for (let k = 0;k < name.length;++k) {
                    cls.prototype[name[k]] = func;
                }
            }
        }
        cls.$array = null;
    }
};
function TeaVMThread(runner) {
    this.status = 3;
    this.stack = [];
    this.suspendCallback = null;
    this.runner = runner;
    this.attribute = null;
    this.completeCallback = null;
}
TeaVMThread.prototype.push = function() {
    for (let i = 0;i < arguments.length;++i) {
        this.stack.push(arguments[i]);
    }
    return this;
};
TeaVMThread.prototype.s = TeaVMThread.prototype.push;
TeaVMThread.prototype.pop = function() {
    return this.stack.pop();
};
TeaVMThread.prototype.l = TeaVMThread.prototype.pop;
TeaVMThread.prototype.isResuming = function() {
    return this.status === 2;
};
TeaVMThread.prototype.isSuspending = function() {
    return this.status === 1;
};
TeaVMThread.prototype.suspend = function(callback) {
    this.suspendCallback = callback;
    this.status = 1;
};
TeaVMThread.prototype.start = function(callback) {
    if (this.status !== 3) {
        throw new Error("Thread already started");
    }
    if ($rt_currentNativeThread !== null) {
        throw new Error("Another thread is running");
    }
    this.status = 0;
    this.completeCallback = callback ? callback : result => {
        if (result instanceof Error) {
            throw result;
        }
    };
    this.run();
};
TeaVMThread.prototype.resume = function() {
    if ($rt_currentNativeThread !== null) {
        throw new Error("Another thread is running");
    }
    this.status = 2;
    this.run();
};
TeaVMThread.prototype.run = function() {
    $rt_currentNativeThread = this;
    let result;
    try {
        result = this.runner();
    } catch (e){
        result = e;
    } finally {
        $rt_currentNativeThread = null;
    }
    if (this.suspendCallback !== null) {
        let self = this;
        let callback = this.suspendCallback;
        this.suspendCallback = null;
        callback(() => self.resume());
    } else if (this.status === 0) {
        this.completeCallback(result);
    }
};
let $rt_suspending = () => {
    let thread = $rt_nativeThread();
    return thread != null && thread.isSuspending();
},
$rt_resuming = () => {
    let thread = $rt_nativeThread();
    return thread != null && thread.isResuming();
},
$rt_startThread = (runner, callback) => (new TeaVMThread(runner)).start(callback),
$rt_currentNativeThread = null,
$rt_nativeThread = () => $rt_currentNativeThread,
$rt_invalidPointer = () => {
    throw new Error("Invalid recorded state");
};
function jl_Object() {
    this.$monitor = null;
    this.$id$ = 0;
}
let jl_Object_monitorEnterSync = $o => {
    let var$2;
    if ($o.$monitor === null) {
        var$2 = new jl_Object$Monitor;
        var$2.$owner = jl_Thread_currentThread;
        $o.$monitor = var$2;
    }
    $o = $o.$monitor;
    var$2 = $o.$owner;
    if (var$2 === null)
        $o.$owner = jl_Thread_currentThread;
    else if (var$2 !== jl_Thread_currentThread) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(0);
        $rt_throw(var$2);
    }
    $o.$count1 = $o.$count1 + 1 | 0;
},
jl_Object_monitorExitSync = $o => {
    let var$2, var$3;
    if (!jl_Object_isEmptyMonitor($o)) {
        var$2 = $o.$monitor;
        if (var$2.$owner === jl_Thread_currentThread) {
            var$3 = var$2.$count1 - 1 | 0;
            var$2.$count1 = var$3;
            if (!var$3)
                var$2.$owner = null;
            jl_Object_isEmptyMonitor($o);
            return;
        }
    }
    $o = new jl_IllegalMonitorStateException;
    $o.$suppressionEnabled = 1;
    $o.$writableStackTrace = 1;
    $rt_throw($o);
},
jl_Object_monitorEnter0 = $o => {
    jl_Object_monitorEnter($o, 1);
},
jl_Object_monitorEnter = ($o, $count) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$count = $thread.pop();$o = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($o.$monitor === null) {
            var$3 = new jl_Object$Monitor;
            var$3.$owner = jl_Thread_currentThread;
            $o.$monitor = var$3;
        }
        var$3 = $o.$monitor;
        if (var$3.$owner === null)
            var$3.$owner = jl_Thread_currentThread;
        if (var$3.$owner === jl_Thread_currentThread) {
            var$3.$count1 = var$3.$count1 + $count | 0;
            return;
        }
        $ptr = 1;
    case 1:
        jl_Object_monitorEnterWait$_asyncCall_$($o, $count);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($o, $count, var$3, $ptr);
},
jl_Object_monitorEnterWait = ($o, $count, $callback) => {
    let $thread_0, $monitor, var$6;
    $thread_0 = jl_Thread_currentThread;
    $monitor = $o.$monitor;
    if ($monitor === null) {
        $monitor = new jl_Object$Monitor;
        $monitor.$owner = $thread_0;
        $o.$monitor = $monitor;
        if ($thread_0 !== $thread_0)
            jl_Thread_currentThread = $thread_0;
        jl_Thread_currentThread.$timeSliceStart = jl_System_currentTimeMillis();
        $o = $o.$monitor;
        $o.$count1 = $o.$count1 + $count | 0;
        $o = null;
        $callback.$realAsyncCallback.$complete($o);
        return;
    }
    if ($monitor.$owner === null) {
        $monitor.$owner = $thread_0;
        if ($thread_0 !== $thread_0)
            jl_Thread_currentThread = $thread_0;
        jl_Thread_currentThread.$timeSliceStart = jl_System_currentTimeMillis();
        $o = $o.$monitor;
        $o.$count1 = $o.$count1 + $count | 0;
        $o = null;
        $callback.$realAsyncCallback.$complete($o);
        return;
    }
    if ($monitor.$enteringThreads === null)
        $monitor.$enteringThreads = otp_Platform_createQueueJs$js_body$_30();
    $monitor = $monitor.$enteringThreads;
    var$6 = new jl_Object$monitorEnterWait$lambda$_6_0;
    var$6.$_04 = $thread_0;
    var$6.$_1 = $o;
    var$6.$_2 = $count;
    var$6.$_3 = $callback;
    $callback = var$6;
    $monitor.push($callback);
},
jl_Object_monitorExit = $o => {
    jl_Object_monitorExit0($o, 1);
},
jl_Object_monitorExit0 = ($o, $count) => {
    let $monitor;
    if (!jl_Object_isEmptyMonitor($o)) {
        $monitor = $o.$monitor;
        if ($monitor.$owner === jl_Thread_currentThread) {
            $count = $monitor.$count1 - $count | 0;
            $monitor.$count1 = $count;
            if ($count > 0)
                return;
            $monitor.$owner = null;
            $monitor = $monitor.$enteringThreads;
            if ($monitor !== null && !($monitor.length ? 0 : 1)) {
                $monitor = new jl_Object$monitorExit$lambda$_8_0;
                $monitor.$_00 = $o;
                otp_Platform_schedule($monitor, 0);
            } else
                jl_Object_isEmptyMonitor($o);
            return;
        }
    }
    $o = new jl_IllegalMonitorStateException;
    $o.$suppressionEnabled = 1;
    $o.$writableStackTrace = 1;
    $rt_throw($o);
},
jl_Object_waitForOtherThreads = $o => {
    let $monitor, $r, var$4;
    if (!jl_Object_isEmptyMonitor($o)) {
        $monitor = $o.$monitor;
        if ($monitor.$owner === null) {
            $o = $monitor.$enteringThreads;
            if ($o !== null && !($o.length ? 0 : 1)) {
                $o = $monitor.$enteringThreads.shift();
                otji_JSWrapper_$callClinit();
                if ($o !== null && !($o instanceof $rt_objcls()))
                    $o = otji_JSWrapper_wrap($o);
                $r = $o;
                $monitor.$enteringThreads = null;
                $o = $r.$_04;
                $monitor = $r.$_1;
                var$4 = $r.$_2;
                $r = $r.$_3;
                if (jl_Thread_currentThread !== $o)
                    jl_Thread_currentThread = $o;
                jl_Thread_currentThread.$timeSliceStart = jl_System_currentTimeMillis();
                $monitor = $monitor.$monitor;
                $monitor.$owner = $o;
                $monitor.$count1 = $monitor.$count1 + var$4 | 0;
                $o = null;
                $r.$realAsyncCallback.$complete($o);
            }
            return;
        }
    }
},
jl_Object_isEmptyMonitor = $this => {
    let $monitor, var$2;
    $monitor = $this.$monitor;
    if ($monitor === null)
        return 1;
    a: {
        if ($monitor.$owner === null) {
            var$2 = $monitor.$enteringThreads;
            if (!(var$2 !== null && !(var$2.length ? 0 : 1))) {
                $monitor = $monitor.$notifyListeners;
                if ($monitor === null)
                    break a;
                if ($monitor.length ? 0 : 1)
                    break a;
            }
        }
        return 0;
    }
    $this.$monitor = null;
    return 1;
},
jl_Object__init_ = $this => {
    return;
},
jl_Object__init_0 = () => {
    let var_0 = new jl_Object();
    jl_Object__init_(var_0);
    return var_0;
},
jl_Object_getClass = $this => {
    let var$1, var$2;
    var$1 = $this.constructor;
    if (var$1 === null)
        var$2 = null;
    else {
        var$2 = var$1.classObject;
        if (var$2 === null) {
            var$2 = new jl_Class;
            var$2.$platformClass = var$1;
            var$1.classObject = var$2;
        }
    }
    return var$2;
},
jl_Object_hashCode = $this => {
    let var$1;
    var$1 = $this;
    if (!var$1.$id$)
        var$1.$id$ = $rt_nextId();
    return $this.$id$;
},
jl_Object_equals = ($this, $other) => {
    return $this !== $other ? 0 : 1;
},
jl_Object_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.constructor;
    if (var$1 === null)
        var$2 = null;
    else {
        var$2 = var$1.classObject;
        if (var$2 === null) {
            var$2 = new jl_Class;
            var$2.$platformClass = var$1;
            var$1.classObject = var$2;
        }
    }
    if (var$2.$name1 === null)
        var$2.$name1 = $rt_str(var$2.$platformClass.$meta.name);
    var$1 = var$2.$name1;
    var$3 = $this;
    if (!var$3.$id$)
        var$3.$id$ = $rt_nextId();
    var$2 = otci_IntegerUtil_toUnsignedLogRadixString($this.$id$, 4);
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    var$4 = var$3.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$1);
    var$5 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$5, var$5 + 1 | 0);
    var$3.$buffer.data[var$5] = 64;
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$6 = var$3.$buffer;
    var$7 = var$6.data;
    var$5 = var$3.$length0;
    var$8 = var$7.length;
    if (var$5 >= 0 && var$5 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$6.data, 0, var$5);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jl_Object_clone = $this => {
    let $result;
    if (!$rt_isInstance($this, jl_Cloneable) && $this.constructor.$meta.item === null) {
        $result = new jl_CloneNotSupportedException;
        $result.$suppressionEnabled = 1;
        $result.$writableStackTrace = 1;
        $rt_throw($result);
    }
    $result = otp_Platform_clone($this);
    $result.$id$ = $rt_nextId();
    return $result;
},
jl_Object_monitorEnterWait$_asyncCall_$ = (var$1, var$2) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            jl_Object_monitorEnterWait(var$1, var$2, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_IntegratedServer = $rt_classWithoutFields(),
nles_IntegratedServer_messageQueue = null,
nles_IntegratedServer_currentProcess = null,
nles_IntegratedServer_newWorldSettings = null,
nles_IntegratedServer_logger = null,
nles_IntegratedServer_isRunning = 0,
nles_IntegratedServer_$callClinit = () => {
    nles_IntegratedServer_$callClinit = $rt_eraseClinit(nles_IntegratedServer);
    nles_IntegratedServer__clinit_();
},
nles_IntegratedServer__init_ = $this => {
    nles_IntegratedServer_$callClinit();
},
nles_IntegratedServer__init_0 = () => {
    let var_0 = new nles_IntegratedServer();
    nles_IntegratedServer__init_(var_0);
    return var_0;
},
nles_IntegratedServer_tryStopServer = () => {
    let var$1, $t, var$3, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$t = $thread.pop();var$1 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_IntegratedServer_$callClinit();
        var$1 = nles_IntegratedServer_currentProcess;
        if (var$1 !== null) {
            try {
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$1 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                var$3.$buf = $rt_createByteArray(32);
                var$1.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                var$1.$sb = var$3;
                var$1.$buffer0 = $rt_createCharArray(32);
                var$1.$autoFlush = 0;
                var$1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$1;
            }
            $rt_putStderr("Failed to stop server!");
            $rt_putStderr("\n");
            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
            nles_IntegratedServer_currentProcess = null;
        }
        return;
    case 1:
        a: {
            try {
                nles_EAGMinecraftServer_stopServer(var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$1 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                var$3.$buf = $rt_createByteArray(32);
                var$1.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                var$1.$sb = var$3;
                var$1.$buffer0 = $rt_createCharArray(32);
                var$1.$autoFlush = 0;
                var$1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$1;
            }
            $rt_putStderr("Failed to stop server!");
            $rt_putStderr("\n");
            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
        }
        nles_IntegratedServer_currentProcess = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$1, $t, var$3, $ptr);
},
nles_IntegratedServer_updateStatusString = ($stat, $prog) => {
    let var$3;
    nles_IntegratedServer_$callClinit();
    var$3 = new nlesi_IPCPacket0DProgressUpdate;
    if ($stat === null)
        $stat = $rt_s(3);
    var$3.$updateMessage = $stat;
    var$3.$updateProgress = $prog;
    nles_IntegratedServer_sendIPCPacket(var$3);
},
nles_IntegratedServer_isServerStopped = () => {
    let var$1;
    nles_IntegratedServer_$callClinit();
    var$1 = nles_IntegratedServer_currentProcess;
    return var$1 !== null && var$1.$serverRunning ? 0 : 1;
},
nles_IntegratedServer_throwExceptionToClient = ($msg, $t) => {
    let $str, $arr, var$5, var$6, var$7, var$8, var$9, $st;
    nles_IntegratedServer_$callClinit();
    $str = jl_Throwable_toString($t);
    if (jl_System_errCache === null) {
        $msg = new otcic_JSStderrPrintStream;
        $arr = new ji_ByteArrayOutputStream;
        $arr.$buf = $rt_createByteArray(32);
        $msg.$out0 = $arr;
        $arr = new jl_StringBuilder;
        $arr.$buffer = $rt_createCharArray(16);
        $msg.$sb = $arr;
        $msg.$buffer0 = $rt_createCharArray(32);
        $msg.$autoFlush = 0;
        $msg.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_errCache = $msg;
    }
    $msg = new jl_StringBuilder;
    $msg.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(4));
    jl_AbstractStringBuilder_insert($msg, $msg.$length0, $str === null ? $rt_s(1) : $str);
    $arr = new jl_String;
    var$5 = $msg.$buffer;
    var$6 = var$5.data;
    var$7 = $msg.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $arr.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        $rt_putStderr($rt_ustr($arr));
        $rt_putStderr("\n");
        jl_Throwable_printStackTrace0($t);
        $arr = new ju_LinkedList;
        var$5 = $t.$stackTrace0;
        var$5 = (var$5 !== null ? var$5.$clone0() : $rt_createArray(jl_StackTraceElement, 0)).data;
        var$9 = var$5.length;
        var$8 = 0;
        while (var$8 < var$9) {
            $st = jl_StackTraceElement_toString(var$5[var$8]);
            var$7 = $arr.$size2;
            if (var$7 < 0) {
                $msg = new jl_IndexOutOfBoundsException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($arr, var$7), $st);
            var$8 = var$8 + 1 | 0;
        }
        $msg = new nlesi_IPCPacket15ThrowException;
        $msg.$stackTrace = $arr;
        $msg.$errorMessage = $str;
        nles_IntegratedServer_sendIPCPacket($msg);
        return;
    }
    $msg = new jl_IndexOutOfBoundsException;
    $msg.$suppressionEnabled = 1;
    $msg.$writableStackTrace = 1;
    $rt_throw($msg);
},
nles_IntegratedServer_sendTaskFailed = () => {
    let var$1;
    nles_IntegratedServer_$callClinit();
    var$1 = new nlesi_IPCPacketFFProcessKeepAlive;
    var$1.$ack = 254;
    nles_IntegratedServer_sendIPCPacket(var$1);
},
nles_IntegratedServer_processAsyncMessageQueue = () => {
    let $msg, $packet, $cur, $itr$index, var$5, var$6, var$7, var$8, $u, var$10, var$11, var$12, var$13, $watchDog, $rewrite, $found, $overflow, $worldsTxt, $worlds, $t, $i, $itr$index_0, $e, $id, $pkt, $newWorlds, $worldDat, $t_0, $str, $realWorldName, var$31, $updatedList, $sendListNBT, $w, $worldDatNBT, $s, $dat, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$dat = $thread.pop();$s = $thread.pop();$worldDatNBT = $thread.pop();$w = $thread.pop();$sendListNBT = $thread.pop();$updatedList = $thread.pop();var$31 = $thread.pop();$realWorldName = $thread.pop();$str = $thread.pop();$t_0 = $thread.pop();$worldDat = $thread.pop();$newWorlds = $thread.pop();$pkt = $thread.pop();$id = $thread.pop();$e = $thread.pop();$itr$index_0 = $thread.pop();$i = $thread.pop();$t = $thread.pop();$worlds = $thread.pop();$worldsTxt = $thread.pop();$overflow =
        $thread.pop();$found = $thread.pop();$rewrite = $thread.pop();$watchDog = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$u = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$itr$index = $thread.pop();$cur = $thread.pop();$packet = $thread.pop();$msg = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_IntegratedServer_$callClinit();
        $msg = nles_IntegratedServer_messageQueue;
        $ptr = 1;
    case 1:
        jl_Object_monitorEnter0($msg);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            b: {
                c: {
                    try {
                        if (ju_LinkedList_size($msg) > 0)
                            break c;
                        jl_Object_monitorExit($msg);
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        $packet = $$je;
                        break b;

                    }
                    return;
                }
                try {
                    $cur = ju_ArrayList__init_1(nles_IntegratedServer_messageQueue);
                    ju_LinkedList_clear(nles_IntegratedServer_messageQueue);
                    jl_Object_monitorExit($msg);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $packet = $$je;

                }
            }
            jl_Object_monitorExit($msg);
            $rt_throw($packet);
        }
        $itr$index = 0;
        var$5 = $cur.$modCount;
        var$6 = $cur.$size();
        var$7 = 39;
        var$8 = 47;
        $u = $rt_s(5);
        var$10 = $rt_s(6);
        var$11 = $rt_s(7);
        var$12 = $rt_s(8);
        var$13 = $rt_s(9);
        d: {
            e: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                f: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break f;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        g: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break g;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                h: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break h;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue e;
                }
                $id = $packet.$id();
                try {
                    i: {
                        j: {
                            k: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break i;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break j;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break i;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        l: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break l;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break i;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break k;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break i;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break i;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break i;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break i;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break i;
                                    case 16:
                                        break i;
                                    case 18:
                                        break i;
                                    case 19:
                                        break i;
                                    case 20:
                                        m: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break m;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break m;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break i;
                                    case 23:
                                        break i;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break k;
                                }
                                break i;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break i;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break d;
                if ($rewrite > ($found - 0 | 0))
                    break d;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 2:
        a: {
            try {
                nles_IntegratedServer_tryStopServer();
                if ($rt_suspending()) {
                    break main;
                }
                $pkt = $packet;
                $msg = new nms_WorldSettings;
                var$31 = $pkt.$seed2;
                $rewrite = $pkt.$gamemode0;
                $t = $rewrite != 1 ? nms_EnumGameType_SURVIVAL : nms_EnumGameType_CREATIVE;
                $found = $pkt.$structures;
                $rewrite = $rewrite != 2 ? 0 : 1;
                $i = $pkt.$worldType0;
                nms_WorldSettings__init_($msg, var$31, $t, $found, $rewrite, $i == 1 ? nms_WorldType_FLAT : $i != 2 ? nms_WorldType_DEFAULT_1_1 : nms_WorldType_LARGE_BIOMES);
                nles_IntegratedServer_newWorldSettings = $msg;
                nms_WorldSettings_func_82750_a($msg, $pkt.$worldArgs);
                if ($pkt.$bonusChest)
                    nms_WorldSettings_enableBonusChest(nles_IntegratedServer_newWorldSettings);
                if ($pkt.$cheats)
                    nms_WorldSettings_enableCommands(nles_IntegratedServer_newWorldSettings);
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        n: {
            o: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                p: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break p;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        q: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break q;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                k: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break k;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue o;
                }
                $id = $packet.$id();
                try {
                    r: {
                        s: {
                            t: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break r;
                                    case 2:
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break s;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break r;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        u: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break u;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break r;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break t;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break r;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break r;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break r;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break r;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break r;
                                    case 16:
                                        break r;
                                    case 18:
                                        break r;
                                    case 19:
                                        break r;
                                    case 20:
                                        v: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break v;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break v;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break r;
                                    case 23:
                                        break r;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break t;
                                }
                                break r;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break r;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break n;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break n;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 3:
        try {
            nles_IntegratedServer_tryStopServer();
            if ($rt_suspending()) {
                break main;
            }
            $pkt = $packet;
            $ptr = 4;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 4:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $msg = nles_SYS_VFS;
            $t = $pkt.$worldName4;
            $newWorlds = jl_StringBuilder__init_();
            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(43)), $t), var$8);
            $t = jl_StringBuilder_toString($newWorlds);
            $ptr = 10;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 5:
        try {
            nles_IntegratedServer_tryStopServer();
            if ($rt_suspending()) {
                break main;
            }
            $pkt = $packet;
            $ptr = 6;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 6:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $msg = nles_SYS_VFS;
            $t = $pkt.$worldOldName;
            $newWorlds = jl_StringBuilder__init_();
            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(43)), $t), var$8);
            $newWorlds = jl_StringBuilder_toString($newWorlds);
            $t = $pkt.$worldNewName;
            $str = jl_StringBuilder__init_();
            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($str, $rt_s(43)), $t), var$8);
            $t = jl_StringBuilder_toString($str);
            $overflow = $pkt.$copy0;
            $ptr = 19;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 7:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $msg = nles_SYS_VFS;
            $t = $packet.$worldName3;
            $pkt = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(43)), $t), $rt_s(44));
            $t = jl_StringBuilder_toString($pkt);
            $ptr = 16;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 8:
        try {
            nles_EAGMinecraftServer_stopServer($msg);
            if ($rt_suspending()) {
                break main;
            }
            $t = new nles_EAGMinecraftServer;
            $newWorlds = $pkt.$worldName2;
            $str = $pkt.$ownerName;
            $msg = nles_IntegratedServer_newWorldSettings;
            nles_EAGMinecraftServer__init_0($t, $newWorlds, $str, $msg);
            nles_IntegratedServer_currentProcess = $t;
            $overflow = $pkt.$initialDifficulty;
            $msg = nles_IntegratedServer_newWorldSettings;
            $msg = $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL;
            nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
            $msg = nles_IntegratedServer_currentProcess;
            $ptr = 26;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        d: {
            e: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break d;
                if ($rewrite > ($found - 0 | 0))
                    break d;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                y: {
                    z: {
                        ba: {
                            i: {
                                bb: {
                                    bc: {
                                        bd: {
                                            n: {
                                                o: {
                                                    be: {
                                                        bJ: {
                                                            bK: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bL: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bL;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bM: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bM;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break e;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                bN: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break bN;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue bK;
                                                                }
                                                                $id = $packet.$id();
                                                                bi: {
                                                                    bj: {
                                                                        bk: {
                                                                            bl: {
                                                                                bm: {
                                                                                    m: {
                                                                                        bn: {
                                                                                            bo: {
                                                                                                l: {
                                                                                                    s: {
                                                                                                        bp: {
                                                                                                            bq: {
                                                                                                                br: {
                                                                                                                    bs: {
                                                                                                                        t: {
                                                                                                                            bt: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break y;
                                                                                                                                        case 1:
                                                                                                                                            break s;
                                                                                                                                        case 2:
                                                                                                                                            break bK;
                                                                                                                                        case 3:
                                                                                                                                            break bJ;
                                                                                                                                        case 4:
                                                                                                                                            break be;
                                                                                                                                        case 5:
                                                                                                                                            break m;
                                                                                                                                        case 6:
                                                                                                                                            break bl;
                                                                                                                                        case 7:
                                                                                                                                            break bn;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break bp;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break l;
                                                                                                                                        case 11:
                                                                                                                                            break bj;
                                                                                                                                        case 12:
                                                                                                                                            break bk;
                                                                                                                                        case 14:
                                                                                                                                            break bm;
                                                                                                                                        case 15:
                                                                                                                                            break bt;
                                                                                                                                        case 16:
                                                                                                                                            break t;
                                                                                                                                        case 18:
                                                                                                                                            break bs;
                                                                                                                                        case 19:
                                                                                                                                            break br;
                                                                                                                                        case 20:
                                                                                                                                            break bo;
                                                                                                                                        case 23:
                                                                                                                                            break bq;
                                                                                                                                        case 24:
                                                                                                                                            break o;
                                                                                                                                        default:
                                                                                                                                            break bp;
                                                                                                                                    }
                                                                                                                                    break bi;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue e;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bi;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue e;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bi;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue e;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bi;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue e;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bi;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue e;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bi;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue e;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bi;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue e;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    bu: {
                                                                                                        bv: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bv;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break bu;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue e;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue e;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bi;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue e;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bw: {
                                                                                                    bx: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bx;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue e;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue e;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bi;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue e;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            by: {
                                                                                                bz: {
                                                                                                    bA: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break bA;
                                                                                                                default:
                                                                                                                    break bz;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break by;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue e;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break by;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue e;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break by;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue e;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bi;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue e;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bB: {
                                                                                            v: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break v;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bB;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue e;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break i;
                                                                                                if ($overflow == 1)
                                                                                                    break bb;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue e;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bi;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue e;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bO: {
                                                                                        bP: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break bP;
                                                                                                if ($overflow != 2)
                                                                                                    break bO;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bO;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue e;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bO;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue e;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bi;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue e;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break n;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bi;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue e;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break z;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bi;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue e;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bQ: {
                                                                            bR: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bR;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break bQ;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue e;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break ba;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break bQ;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bQ;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue e;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bi;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue e;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bS: {
                                                                        bT: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bT;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bS;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue e;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bH: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bH;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bH;
                                                                                else
                                                                                    break bc;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue e;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bd;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bS;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue e;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bi;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue e;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue e;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue e;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue e;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue e;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue e;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue e;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue e;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue e;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue e;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue e;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue e;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bI: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bI;
                        $msg = nles_IntegratedServer_currentProcess;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue e;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bU: {
                    bV: {
                        try {
                            $t = new nles_EAGMinecraftServer;
                            $newWorlds = $pkt.$worldName2;
                            $str = $pkt.$ownerName;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            nles_EAGMinecraftServer__init_0($t, $newWorlds, $str, $msg);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bV;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bU;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue e;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bU;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue e;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 9:
        a: {
            try {
                c: {
                    try {
                        nles_EAGMinecraftServer_stopServer($msg);
                        if ($rt_suspending()) {
                            break main;
                        }
                        nles_IntegratedServer_currentProcess = null;
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $msg = $rt_s(2);
                    nles_IntegratedServer_throwExceptionToClient($msg, $t);
                }
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 1;
                nlesi_IPCPacketFFProcessKeepAlive__init_0($msg, $overflow);
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        z: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            bW: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break bW;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    bX: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break bX;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            bJ: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break bJ;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue z;
            }
            $id = $packet.$id();
            try {
                bY: {
                    bj: {
                        bn: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $msg = $rt_s(2);
                                        nles_IntegratedServer_throwExceptionToClient($msg, $t);
                                    }
                                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                                    $overflow = 1;
                                    nlesi_IPCPacketFFProcessKeepAlive__init_0($msg, $overflow);
                                    nles_IntegratedServer_sendIPCPacket($msg);
                                    break bY;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bj;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break bY;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bx: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bx;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bY;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bn;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break bY;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break bY;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break bY;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break bY;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break bY;
                                case 16:
                                    break bY;
                                case 18:
                                    break bY;
                                case 19:
                                    break bY;
                                case 20:
                                    bu: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bu;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bu;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break bY;
                                case 23:
                                    break bY;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bn;
                            }
                            break bY;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break bY;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 10:
        a: {
            try {
                $tmp = nles_VirtualFilesystem_deleteFiles($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                $overflow = $tmp;
                if ($overflow <= 0) {
                    $str = new jl_RuntimeException;
                    $pkt = $pkt.$worldName4;
                    $msg = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(45)), $pkt), $rt_s(46));
                    jl_RuntimeException__init_0($str, jl_StringBuilder_toString($msg));
                    nles_IntegratedServer_throwExceptionToClient($rt_s(47), $str);
                    nles_IntegratedServer_sendTaskFailed();
                    $itr$index = $itr$index_0;
                    break a;
                }
                $msg = nles_SYS_VFS;
                $t = $rt_s(48);
                $ptr = 17;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: {
            y: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                bZ: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break bZ;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b0: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b0;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                bJ: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break bJ;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue y;
                }
                $id = $packet.$id();
                try {
                    bY: {
                        bj: {
                            bn: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break bY;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bj;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bY;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bx: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bx;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break bY;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break bn;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bY;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break bY;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break bY;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bY;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break bY;
                                    case 16:
                                        break bY;
                                    case 18:
                                        break bY;
                                    case 19:
                                        break bY;
                                    case 20:
                                        bu: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bu;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bu;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break bY;
                                    case 23:
                                        break bY;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break bn;
                                }
                                break bY;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break bY;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break h;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break h;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 11:
        a: {
            try {
                c: {
                    try {
                        $tmp = nles_WorldConverterEPK_exportWorld($t);
                        if ($rt_suspending()) {
                            break main;
                        }
                        $worldsTxt = $tmp;
                        nlesi_IPCPacket09RequestResponse__init_($msg, $worldsTxt);
                        nles_IntegratedServer_sendIPCPacket($msg);
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t_0 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $realWorldName = $pkt.$worldName;
                    $msg = new jl_String;
                    $overflow = 3;
                    $worldsTxt = $rt_createCharArray($overflow);
                    $worlds = $worldsTxt.data;
                    $overflow = 0;
                    $rewrite = 253;
                    $worlds[$overflow] = $rewrite;
                    $overflow = 1;
                    $rewrite = 233;
                    $worlds[$overflow] = $rewrite;
                    $overflow = 2;
                    $rewrite = 233;
                    $worlds[$overflow] = $rewrite;
                    jl_String__init_1($msg, $worldsTxt);
                    $i = jl_String_lastIndexOf($realWorldName, $msg);
                    $overflow = (-1);
                    $overflow = $rt_compare($i, $overflow);
                    if ($overflow) {
                        $overflow = 0;
                        $realWorldName = jl_String_substring($realWorldName, $overflow, $i);
                    }
                    $msg = jl_StringBuilder__init_();
                    $t = $rt_s(38);
                    $t = jl_StringBuilder_append($msg, $t);
                    $t = jl_StringBuilder_append($t, $realWorldName);
                    $pkt = $rt_s(39);
                    jl_StringBuilder_append($t, $pkt);
                    $msg = jl_StringBuilder_toString($msg);
                    nles_IntegratedServer_throwExceptionToClient($msg, $t_0);
                    nles_IntegratedServer_sendTaskFailed();
                }
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        i: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b1: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b1;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b2: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b2;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            b3: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break b3;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue i;
            }
            $id = $packet.$id();
            try {
                b4: {
                    bl: {
                        l: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b4;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bl;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b4;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bz: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bz;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b4;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break l;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b4;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b4;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b4;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b4;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b4;
                                case 16:
                                    break b4;
                                case 18:
                                    break b4;
                                case 19:
                                    break b4;
                                case 20:
                                    bw: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bw;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bw;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b4;
                                case 23:
                                    break b4;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break l;
                            }
                            break b4;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b4;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $msg = new jl_String;
                        $overflow = 3;
                        $worldsTxt = $rt_createCharArray($overflow);
                        $worlds = $worldsTxt.data;
                        $overflow = 0;
                        $rewrite = 253;
                        $worlds[$overflow] = $rewrite;
                        $overflow = 1;
                        $rewrite = 233;
                        $worlds[$overflow] = $rewrite;
                        $overflow = 2;
                        $rewrite = 233;
                        $worlds[$overflow] = $rewrite;
                        jl_String__init_1($msg, $worldsTxt);
                        $i = jl_String_lastIndexOf($realWorldName, $msg);
                        $overflow = (-1);
                        $overflow = $rt_compare($i, $overflow);
                        if ($overflow) {
                            $overflow = 0;
                            $realWorldName = jl_String_substring($realWorldName, $overflow, $i);
                        }
                        $msg = jl_StringBuilder__init_();
                        $t = $rt_s(38);
                        $t = jl_StringBuilder_append($msg, $t);
                        $t = jl_StringBuilder_append($t, $realWorldName);
                        $pkt = $rt_s(39);
                        jl_StringBuilder_append($t, $pkt);
                        $msg = jl_StringBuilder_toString($msg);
                        nles_IntegratedServer_throwExceptionToClient($msg, $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 12:
        a: {
            try {
                $tmp = nles_VFile_canRead($worldDat);
                if ($rt_suspending()) {
                    break main;
                }
                $overflow = $tmp;
                if (!$overflow) {
                    $str = new jl_RuntimeException;
                    $msg = $pkt.$worldName1;
                    $pkt = $pkt.$displayName;
                    $worldDat = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($worldDat, $rt_s(49)), $msg), $rt_s(50)), $pkt), $rt_s(51));
                    jl_RuntimeException__init_0($str, jl_StringBuilder_toString($worldDat));
                    nles_IntegratedServer_throwExceptionToClient($rt_s(52), $str);
                    $itr$index = $itr$index_0;
                    break a;
                }
                $ptr = 21;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        y: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            bZ: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break bZ;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b0: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b0;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            be: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break be;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue y;
            }
            $id = $packet.$id();
            try {
                j: {
                    bi: {
                        m: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break j;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bi;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    continue main;
                                case 7:
                                    bw: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bw;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break j;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break m;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break j;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break j;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break j;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break j;
                                case 16:
                                    break j;
                                case 18:
                                    break j;
                                case 19:
                                    break j;
                                case 20:
                                    bt: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bt;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bt;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break j;
                                case 23:
                                    break j;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break m;
                            }
                            break j;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break j;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 13:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $msg = nles_SYS_VFS;
            $t = $rt_s(48);
            $ptr = 14;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 14:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $ptr = 15;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 15:
        a: {
            try {
                c: {
                    $tmp = nles_VirtualFilesystem$VFSFile_getAllLines($msg);
                    if ($rt_suspending()) {
                        break main;
                    }
                    $worlds = $tmp;
                    if ($worlds !== null) {
                        $worldsTxt = $worlds.data;
                        if ($worldsTxt.length != 1)
                            break c;
                        if (jl_String_length(jl_String_trim($worldsTxt[0])) > 0)
                            break c;
                    }
                    $worlds = null;
                }
                if ($worlds === null)
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacket16NBTList__init_(0, ju_LinkedList__init_()));
                else {
                    $worldsTxt = $worlds.data;
                    $updatedList = ju_LinkedList__init_();
                    $sendListNBT = ju_LinkedList__init_();
                    $rewrite = 0;
                    $overflow = $worldsTxt.length;
                    $found = 0;
                    if ($found < $overflow) {
                        $w = $worldsTxt[$found];
                        $msg = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $w, $rt_s(19)]));
                        $ptr = 51;
                        continue main;
                    }
                    if ($rewrite) {
                        $msg = nles_SYS_VFS;
                        $t = $rt_s(48);
                        $ptr = 52;
                        continue main;
                    }
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacket16NBTList__init_(0, $sendListNBT));
                }
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        bc: {
            bd: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                b5: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break b5;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b6: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b6;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                b4: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break b4;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue bd;
                }
                $id = $packet.$id();
                try {
                    bN: {
                        bo: {
                            br: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break bN;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bo;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bN;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bO: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bO;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break bN;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break br;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bN;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break bN;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break bN;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bN;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break bN;
                                    case 16:
                                        break bN;
                                    case 18:
                                        break bN;
                                    case 19:
                                        break bN;
                                    case 20:
                                        bA: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bA;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bA;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break bN;
                                    case 23:
                                        break bN;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break br;
                                }
                                break bN;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break bN;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break bc;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break bc;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 16:
        a: {
            try {
                nles_VirtualFilesystem_deleteFiles($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(24));
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 17:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $ptr = 18;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 18:
        a: {
            try {
                $tmp = nles_VirtualFilesystem$VFSFile_getAllLines($msg);
                if ($rt_suspending()) {
                    break main;
                }
                $worldsTxt = $tmp;
                if ($worldsTxt === null) {
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(3));
                    $itr$index = $itr$index_0;
                    break a;
                }
                $worldsTxt = $worldsTxt.data;
                $newWorlds = ju_LinkedList__init_();
                $overflow = $worldsTxt.length;
                $rewrite = 0;
                while ($rewrite < $overflow) {
                    $str = $worldsTxt[$rewrite];
                    if (!jl_String_equalsIgnoreCase($str, $pkt.$worldName4))
                        ju_AbstractList_add($newWorlds, $str);
                    $rewrite = $rewrite + 1 | 0;
                }
                $msg = nles_SYS_VFS;
                $t = $rt_s(48);
                $ptr = 43;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        z: {
            ba: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                b8: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break b8;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b5: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b5;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                b3: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break b3;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue ba;
                }
                $id = $packet.$id();
                try {
                    b4: {
                        bl: {
                            l: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break b4;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bl;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break b4;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bz: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bz;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break b4;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break l;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b4;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break b4;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break b4;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break b4;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break b4;
                                    case 16:
                                        break b4;
                                    case 18:
                                        break b4;
                                    case 19:
                                        break b4;
                                    case 20:
                                        bw: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bw;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bw;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break b4;
                                    case 23:
                                        break b4;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break l;
                                }
                                break b4;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break b4;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break z;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break z;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 19:
        a: {
            try {
                $tmp = nles_VirtualFilesystem_renameFiles($msg, $newWorlds, $t, $overflow);
                if ($rt_suspending()) {
                    break main;
                }
                $overflow = $tmp;
                if ($overflow <= 0) {
                    $str = new jl_RuntimeException;
                    $pkt = $pkt.$worldOldName;
                    $msg = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(53)), $pkt), $rt_s(46));
                    jl_RuntimeException__init_0($str, jl_StringBuilder_toString($msg));
                    nles_IntegratedServer_throwExceptionToClient($rt_s(54), $str);
                    nles_IntegratedServer_sendTaskFailed();
                    $itr$index = $itr$index_0;
                    break a;
                }
                $msg = nles_SYS_VFS;
                $t = $rt_s(48);
                $ptr = 30;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: {
            y: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                bZ: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break bZ;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b0: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b0;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                bJ: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break bJ;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue y;
                }
                $id = $packet.$id();
                try {
                    bY: {
                        bj: {
                            bn: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break bY;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bj;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bY;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bx: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bx;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break bY;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break bn;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bY;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break bY;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break bY;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bY;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break bY;
                                    case 16:
                                        break bY;
                                    case 18:
                                        break bY;
                                    case 19:
                                        break bY;
                                    case 20:
                                        bu: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bu;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bu;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break bY;
                                    case 23:
                                        break bY;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break bn;
                                }
                                break bY;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break bY;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break h;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break h;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 20:
        a: {
            try {
                c: {
                    try {
                        $tmp = nles_WorldConverterMCA_exportWorld($t);
                        if ($rt_suspending()) {
                            break main;
                        }
                        $worldsTxt = $tmp;
                        nlesi_IPCPacket09RequestResponse__init_($msg, $worldsTxt);
                        nles_IntegratedServer_sendIPCPacket($msg);
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t_0 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $pkt = $pkt.$worldName;
                    $msg = jl_StringBuilder__init_();
                    $t = $rt_s(38);
                    $t = jl_StringBuilder_append($msg, $t);
                    $t = jl_StringBuilder_append($t, $pkt);
                    $pkt = $rt_s(40);
                    jl_StringBuilder_append($t, $pkt);
                    $msg = jl_StringBuilder_toString($msg);
                    nles_IntegratedServer_throwExceptionToClient($msg, $t_0);
                    nles_IntegratedServer_sendTaskFailed();
                }
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        z: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            bW: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break bW;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    bX: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break bX;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            bJ: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break bJ;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue z;
            }
            $id = $packet.$id();
            try {
                bY: {
                    bj: {
                        bn: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break bY;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bj;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break bY;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bx: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bx;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bY;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bn;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break bY;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break bY;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break bY;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break bY;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break bY;
                                case 16:
                                    break bY;
                                case 18:
                                    break bY;
                                case 19:
                                    break bY;
                                case 20:
                                    bu: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bu;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bu;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break bY;
                                case 23:
                                    break bY;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bn;
                            }
                            break bY;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break bY;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        $t = $rt_s(38);
                        $t = jl_StringBuilder_append($msg, $t);
                        $t = jl_StringBuilder_append($t, $pkt);
                        $pkt = $rt_s(40);
                        jl_StringBuilder_append($t, $pkt);
                        $msg = jl_StringBuilder_toString($msg);
                        nles_IntegratedServer_throwExceptionToClient($msg, $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 21:
        try {
            $tmp = nles_VFile_getAllBytes($worldDat);
            if ($rt_suspending()) {
                break main;
            }
            $worldsTxt = $tmp;
            $worldDatNBT = nms_CompressedStreamTools_decompress($worldsTxt);
            nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $pkt.$displayName);
            $ptr = 22;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 22:
        try {
            $tmp = nms_CompressedStreamTools_compress($worldDatNBT);
            if ($rt_suspending()) {
                break main;
            }
            $worldsTxt = $tmp;
            $ptr = 23;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 23:
        a: {
            try {
                nles_VFile_setAllBytes($worldDat, $worldsTxt);
                if ($rt_suspending()) {
                    break main;
                }
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 24:
        a: {
            try {
                try {
                    nles_WorldConverterEPK_importWorld($worldsTxt, $msg);
                    if ($rt_suspending()) {
                        break main;
                    }
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(7));
                    $itr$index = $itr$index_0;
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t_0 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $ptr = 33;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        y: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            bZ: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break bZ;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b0: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b0;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            be: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break be;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue y;
            }
            $id = $packet.$id();
            try {
                j: {
                    bi: {
                        m: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break j;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bi;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bw: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bw;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break j;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break m;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break j;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break j;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break j;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break j;
                                case 16:
                                    break j;
                                case 18:
                                    break j;
                                case 19:
                                    break j;
                                case 20:
                                    bt: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bt;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bt;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break j;
                                case 23:
                                    break j;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break m;
                            }
                            break j;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break j;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 25:
        a: {
            try {
                $tmp = nles_WorkerListenThread_closeChannel($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                $overflow = $tmp;
                if (!$overflow) {
                    $msg = jl_System_err();
                    $t = $pkt.$channel;
                    $pkt = jl_StringBuilder__init_();
                    jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(57)), $t), var$7);
                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                }
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        y: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            bZ: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break bZ;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b0: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b0;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            be: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break be;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue y;
            }
            $id = $packet.$id();
            try {
                j: {
                    bi: {
                        m: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break j;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bi;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bw: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bw;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break j;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break m;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break j;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break j;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break j;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break j;
                                case 16:
                                    break j;
                                case 18:
                                    break j;
                                case 19:
                                    break j;
                                case 20:
                                    bt: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bt;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bt;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break j;
                                case 23:
                                    break j;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break m;
                            }
                            break j;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break j;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 26:
        try {
            nles_EAGMinecraftServer_startServer($msg);
            if ($rt_suspending()) {
                break main;
            }
            $ptr = 27;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 27:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $msg = nles_SYS_VFS;
            $t = $rt_s(48);
            $ptr = 28;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 28:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $ptr = 29;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 29:
        a: {
            try {
                c: {
                    $tmp = nles_VirtualFilesystem$VFSFile_getAllLines($msg);
                    if ($rt_suspending()) {
                        break main;
                    }
                    $worlds = $tmp;
                    if ($worlds !== null) {
                        $worldsTxt = $worlds.data;
                        if ($worldsTxt.length != 1)
                            break c;
                        if (jl_String_length(jl_String_trim($worldsTxt[0])) > 0)
                            break c;
                    }
                    $worlds = null;
                }
                if ($worlds === null) {
                    $msg = nles_SYS_VFS;
                    $t = $rt_s(48);
                    $ptr = 49;
                    continue main;
                }
                $worldsTxt = $worlds.data;
                $found = 0;
                $overflow = $worldsTxt.length;
                $rewrite = 0;
                b9: {
                    while ($rewrite < $overflow) {
                        if (jl_String_equals($worldsTxt[$rewrite], $pkt.$worldName2)) {
                            $found = 1;
                            break b9;
                        }
                        $rewrite = $rewrite + 1 | 0;
                    }
                }
                if ($found) {
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(0));
                    $itr$index = $itr$index_0;
                    break a;
                }
                $s = $rt_createArray(jl_String, $overflow + 1 | 0);
                $s.data[0] = $pkt.$worldName2;
                jl_System_arraycopy($worlds, 0, $s, 1, $overflow);
                $msg = nles_SYS_VFS;
                $t = $rt_s(48);
                $ptr = 55;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        bd: {
            n: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                b2: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break b2;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b$: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b$;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                b_: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break b_;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue n;
                }
                $id = $packet.$id();
                try {
                    bh: {
                        l: {
                            bs: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break bh;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break l;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bh;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bP: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bP;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break bh;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break bs;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bh;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break bh;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break bh;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bh;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break bh;
                                    case 16:
                                        break bh;
                                    case 18:
                                        break bh;
                                    case 19:
                                        break bh;
                                    case 20:
                                        bB: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bB;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bB;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break bh;
                                    case 23:
                                        break bh;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break bs;
                                }
                                break bh;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break bh;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break bd;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break bd;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 30:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $ptr = 31;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 31:
        try {
            b: {
                $tmp = nles_VirtualFilesystem$VFSFile_getAllLines($msg);
                if ($rt_suspending()) {
                    break main;
                }
                $worldsTxt = $tmp;
                $newWorlds = ju_LinkedList__init_();
                if ($worldsTxt !== null) {
                    $worldsTxt = $worldsTxt.data;
                    $overflow = $worldsTxt.length;
                    $rewrite = 0;
                    while (true) {
                        if ($rewrite >= $overflow)
                            break b;
                        $str = $worldsTxt[$rewrite];
                        if (!(!$pkt.$copy0 && jl_String_equalsIgnoreCase($str, $pkt.$worldOldName)))
                            ju_AbstractList_add($newWorlds, $str);
                        $rewrite = $rewrite + 1 | 0;
                    }
                }
            }
            ju_AbstractList_add($newWorlds, $pkt.$worldNewName);
            $msg = nles_SYS_VFS;
            $t = $rt_s(48);
            $ptr = 37;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        b9: {
            ca: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break b9;
                if ($rewrite > ($found - 0 | 0))
                    break b9;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                ba: {
                    i: {
                        bb: {
                            bc: {
                                bd: {
                                    n: {
                                        o: {
                                            be: {
                                                bJ: {
                                                    bK: {
                                                        b3: {
                                                            j: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bg: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bg;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        cb: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break cb;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break ca;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                r: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break r;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue j;
                                                                }
                                                                $id = $packet.$id();
                                                                bk: {
                                                                    bl: {
                                                                        bm: {
                                                                            m: {
                                                                                bn: {
                                                                                    bo: {
                                                                                        l: {
                                                                                            s: {
                                                                                                bp: {
                                                                                                    bq: {
                                                                                                        br: {
                                                                                                            bs: {
                                                                                                                t: {
                                                                                                                    bt: {
                                                                                                                        bu: {
                                                                                                                            bv: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break ba;
                                                                                                                                        case 1:
                                                                                                                                            break bq;
                                                                                                                                        case 2:
                                                                                                                                            break j;
                                                                                                                                        case 3:
                                                                                                                                            break b3;
                                                                                                                                        case 4:
                                                                                                                                            break bK;
                                                                                                                                        case 5:
                                                                                                                                            break bo;
                                                                                                                                        case 6:
                                                                                                                                            break m;
                                                                                                                                        case 7:
                                                                                                                                            break l;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break br;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bp;
                                                                                                                                        case 11:
                                                                                                                                            break bl;
                                                                                                                                        case 12:
                                                                                                                                            break bm;
                                                                                                                                        case 14:
                                                                                                                                            break bn;
                                                                                                                                        case 15:
                                                                                                                                            break bv;
                                                                                                                                        case 16:
                                                                                                                                            break bu;
                                                                                                                                        case 18:
                                                                                                                                            break bt;
                                                                                                                                        case 19:
                                                                                                                                            break t;
                                                                                                                                        case 20:
                                                                                                                                            break s;
                                                                                                                                        case 23:
                                                                                                                                            break bs;
                                                                                                                                        case 24:
                                                                                                                                            break bJ;
                                                                                                                                        default:
                                                                                                                                            break br;
                                                                                                                                    }
                                                                                                                                    break bk;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue ca;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bk;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue ca;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bk;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue ca;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bk;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue ca;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bk;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue ca;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bk;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue ca;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bk;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue ca;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    bw: {
                                                                                                        bx: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bx;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break bw;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue ca;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue ca;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bk;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue ca;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                by: {
                                                                                                    bz: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bz;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break by;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue ca;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break by;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue ca;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bk;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue ca;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bA: {
                                                                                                bB: {
                                                                                                    v: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break v;
                                                                                                                default:
                                                                                                                    break bB;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bA;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue ca;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bA;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue ca;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bA;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue ca;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bk;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue ca;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bO: {
                                                                                            bP: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bP;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bO;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue ca;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break bc;
                                                                                                if ($overflow == 1)
                                                                                                    break bd;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bO;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue ca;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bk;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue ca;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    u: {
                                                                                        bC: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break bC;
                                                                                                if ($overflow != 2)
                                                                                                    break u;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break u;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue ca;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break u;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue ca;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bk;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue ca;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break be;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bk;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue ca;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break i;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bk;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue ca;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bD: {
                                                                            bE: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bE;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break bD;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue ca;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break bb;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break bD;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue ca;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bk;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue ca;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bF: {
                                                                        bG: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bG;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bF;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue ca;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bU: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bU;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bU;
                                                                                else
                                                                                    break n;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue ca;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break o;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bF;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue ca;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bk;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue ca;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue ca;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue ca;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue ca;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue ca;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue ca;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue ca;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue ca;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue ca;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue ca;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue ca;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue ca;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bV: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bV;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue ca;
                        } else {
                            throw $$e;
                        }
                    }
                }
                cc: {
                    cd: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break cd;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break cc;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue ca;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break cc;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue ca;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 32:
        a: {
            try {
                try {
                    nles_WorldConverterMCA_importWorld($worldsTxt, $msg);
                    if ($rt_suspending()) {
                        break main;
                    }
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(7));
                    $itr$index = $itr$index_0;
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t_0 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $ptr = 40;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        y: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            bZ: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break bZ;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b0: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b0;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            be: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break be;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue y;
            }
            $id = $packet.$id();
            try {
                j: {
                    bi: {
                        m: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break j;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break bi;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bw: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bw;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break j;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break m;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break j;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break j;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break j;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break j;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break j;
                                case 16:
                                    break j;
                                case 18:
                                    break j;
                                case 19:
                                    break j;
                                case 20:
                                    bt: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break bt;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break bt;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break j;
                                case 23:
                                    break j;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break m;
                            }
                            break j;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break j;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 33:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $newWorlds = nles_SYS_VFS;
            $msg = $pkt.$worldName0;
            $ptr = 34;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 34:
        try {
            $tmp = nles_VFSSaveHandler_worldNameToFolderName($msg);
            if ($rt_suspending()) {
                break main;
            }
            $str = $tmp;
            $msg = jl_StringBuilder__init_();
            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(43)), $str), var$8);
            $msg = jl_StringBuilder_toString($msg);
            $ptr = 42;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 35:
        a: {
            try {
                nms_MinecraftServer_saveAllWorlds($msg, $overflow);
                if ($rt_suspending()) {
                    break main;
                }
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 11;
                nlesi_IPCPacketFFProcessKeepAlive__init_0($msg, $overflow);
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            continue main;
                                        }
                                        $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                                        $overflow = 11;
                                        nlesi_IPCPacketFFProcessKeepAlive__init_0($msg, $overflow);
                                        nles_IntegratedServer_sendIPCPacket($msg);
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 36:
        a: {
            try {
                nms_MinecraftServer_saveAllWorlds($msg, $overflow);
                if ($rt_suspending()) {
                    break main;
                }
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 11;
                nlesi_IPCPacketFFProcessKeepAlive__init_0($msg, $overflow);
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                                        $overflow = 11;
                                        nlesi_IPCPacketFFProcessKeepAlive__init_0($msg, $overflow);
                                        nles_IntegratedServer_sendIPCPacket($msg);
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 37:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $t = jl_String_join0($rt_s(9), $newWorlds);
            $ptr = 38;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 38:
        try {
            nles_VirtualFilesystem$VFSFile_setAllChars($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldNewName, $rt_s(19)]));
            $ptr = 39;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 39:
        a: {
            try {
                $tmp = nles_VFile_canRead($worldDat);
                if ($rt_suspending()) {
                    break main;
                }
                $overflow = $tmp;
                if (!$overflow) {
                    $str = new jl_RuntimeException;
                    $worldDat = $pkt.$worldNewName;
                    $worldDatNBT = $pkt.$displayName1;
                    $msg = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(49)), $worldDat), $rt_s(50)), $worldDatNBT), $rt_s(51));
                    jl_RuntimeException__init_0($str, jl_StringBuilder_toString($msg));
                    nles_IntegratedServer_throwExceptionToClient($rt_s(58), $str);
                    nles_IntegratedServer_sendTaskFailed();
                    $itr$index = $itr$index_0;
                    break a;
                }
                $ptr = 45;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: {
            y: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                bZ: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break bZ;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b0: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b0;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                bJ: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break bJ;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue y;
                }
                $id = $packet.$id();
                try {
                    bY: {
                        bj: {
                            bn: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break bY;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bj;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bY;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bx: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bx;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break bY;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break bn;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break bY;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break bY;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break bY;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break bY;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break bY;
                                    case 16:
                                        break bY;
                                    case 18:
                                        break bY;
                                    case 19:
                                        break bY;
                                    case 20:
                                        bu: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bu;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bu;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break bY;
                                    case 23:
                                        break bY;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break bn;
                                }
                                break bY;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break bY;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break h;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break h;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 40:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $newWorlds = nles_SYS_VFS;
            $msg = $pkt.$worldName0;
            $ptr = 41;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 41:
        try {
            $tmp = nles_VFSSaveHandler_worldNameToFolderName($msg);
            if ($rt_suspending()) {
                break main;
            }
            $str = $tmp;
            $msg = jl_StringBuilder__init_();
            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(43)), $str), var$8);
            $msg = jl_StringBuilder_toString($msg);
            $ptr = 48;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 42:
        a: {
            try {
                nles_VirtualFilesystem_deleteFiles($newWorlds, $msg);
                if ($rt_suspending()) {
                    break main;
                }
                $pkt = $pkt.$worldName0;
                $msg = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(59)), $pkt), $rt_s(39));
                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                nles_IntegratedServer_sendTaskFailed();
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 43:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $t = jl_String_join0($rt_s(9), $newWorlds);
            $ptr = 44;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 44:
        a: {
            try {
                nles_VirtualFilesystem$VFSFile_setAllChars($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(3));
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 45:
        try {
            $tmp = nles_VFile_getAllBytes($worldDat);
            if ($rt_suspending()) {
                break main;
            }
            $worldsTxt = $tmp;
            $worldDatNBT = nms_CompressedStreamTools_decompress($worldsTxt);
            nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $pkt.$displayName1);
            $ptr = 46;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 46:
        try {
            $tmp = nms_CompressedStreamTools_compress($worldDatNBT);
            if ($rt_suspending()) {
                break main;
            }
            $worldsTxt = $tmp;
            $ptr = 47;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 47:
        a: {
            try {
                nles_VFile_setAllBytes($worldDat, $worldsTxt);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(4));
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 48:
        a: {
            try {
                nles_VirtualFilesystem_deleteFiles($newWorlds, $msg);
                if ($rt_suspending()) {
                    break main;
                }
                $pkt = $pkt.$worldName0;
                $msg = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(59)), $pkt), $rt_s(40));
                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                nles_IntegratedServer_sendTaskFailed();
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 49:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $t = $pkt.$worldName2;
            $ptr = 50;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 50:
        a: {
            try {
                nles_VirtualFilesystem$VFSFile_setAllChars($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(0));
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 51:
        a: {
            try {
                c: {
                    $tmp = nles_VFile_getAllBytes($msg);
                    if ($rt_suspending()) {
                        break main;
                    }
                    $dat = $tmp;
                    if ($dat !== null)
                        try {
                            $worldDatNBT = nms_CompressedStreamTools_decompress($dat);
                            nms_NBTTagCompound_setString($worldDatNBT, $rt_s(60), $w);
                            ju_AbstractList_add($sendListNBT, $worldDatNBT);
                            ju_AbstractList_add($updatedList, $w);
                            break c;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof ji_IOException) {
                            } else {
                                throw $$e;
                            }
                        }
                    $rewrite = 1;
                    $msg = jl_System_err();
                    $t = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($t, $rt_s(61)), $w), $rt_s(62)), $w), $rt_s(63));
                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                    $msg = nles_SYS_VFS;
                    $t = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append($t, $rt_s(43)), $w);
                    $t = jl_StringBuilder_toString($t);
                    $ptr = 54;
                    continue main;
                }
                $found = $found + 1 | 0;
                if ($found < $overflow) {
                    $w = $worldsTxt[$found];
                    $msg = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $w, $rt_s(19)]));
                    continue main;
                }
                if (!$rewrite) {
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacket16NBTList__init_(0, $sendListNBT));
                    $itr$index = $itr$index_0;
                    break a;
                }
                $msg = nles_SYS_VFS;
                $t = $rt_s(48);
                $ptr = 52;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        ba: {
            i: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                b1: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break b1;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b2: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b2;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                j: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break j;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue i;
                }
                $id = $packet.$id();
                try {
                    b_: {
                        bm: {
                            s: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break b_;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bm;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break b_;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bA: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bA;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break b_;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break s;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b_;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break b_;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break b_;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break b_;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break b_;
                                    case 16:
                                        break b_;
                                    case 18:
                                        break b_;
                                    case 19:
                                        break b_;
                                    case 20:
                                        bx: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bx;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bx;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break b_;
                                    case 23:
                                        break b_;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break s;
                                }
                                break b_;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break b_;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break ba;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break ba;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 52:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $t = jl_String_join0($rt_s(9), $updatedList);
            $ptr = 53;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 53:
        a: {
            try {
                nles_VirtualFilesystem$VFSFile_setAllChars($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacket16NBTList__init_(0, $sendListNBT));
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 54:
        a: {
            try {
                $tmp = nles_VirtualFilesystem_deleteFiles($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                $i = $tmp;
                if ($i <= 0) {
                    $msg = jl_System_err();
                    $t = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($t, $rt_s(64)), $w), $rt_s(65)), $w), $rt_s(66));
                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                }
                $found = $found + 1 | 0;
                if ($found < $overflow) {
                    $w = $worldsTxt[$found];
                    $msg = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $w, $rt_s(19)]));
                    $ptr = 51;
                    continue main;
                }
                if (!$rewrite) {
                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacket16NBTList__init_(0, $sendListNBT));
                    $itr$index = $itr$index_0;
                    break a;
                }
                $msg = nles_SYS_VFS;
                $t = $rt_s(48);
                $ptr = 52;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        ba: {
            i: while (true) {
                if (!($itr$index >= var$6 ? 0 : 1)) {
                    nles_SysUtil_$callClinit();
                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8 = 0;
                    $rewrite = $cur.$modCount;
                    $found = $cur.$size();
                    $overflow = 0;
                    while (true) {
                        if (!(var$8 >= $found ? 0 : 1)) {
                            if ($overflow > 0) {
                                if (jl_System_errCache === null) {
                                    $msg = new otcic_JSStderrPrintStream;
                                    $packet = new ji_ByteArrayOutputStream;
                                    $packet.$buf = $rt_createByteArray(32);
                                    $msg.$out0 = $packet;
                                    $packet = new jl_StringBuilder;
                                    $packet.$buffer = $rt_createCharArray(16);
                                    $msg.$sb = $packet;
                                    $msg.$buffer0 = $rt_createCharArray(32);
                                    $msg.$autoFlush = 0;
                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $msg;
                                }
                                $msg = new jl_StringBuilder;
                                $msg.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                $packet = new jl_String;
                                $worldsTxt = $msg.$buffer;
                                $worlds = $worldsTxt.data;
                                var$8 = $msg.$length0;
                                var$5 = $worlds.length;
                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                    $rt_putStderr($rt_ustr($packet));
                                    $rt_putStderr("\n");
                                } else {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                            }
                            return;
                        }
                        if ($rewrite < $cur.$modCount)
                            break;
                        var$5 = var$8 + 1 | 0;
                        $msg = $cur.$get(var$8);
                        $packet = $msg.$channel0;
                        if ($packet === $rt_s(12))
                            var$8 = 1;
                        else if (!($rt_s(12) instanceof jl_String))
                            var$8 = 0;
                        else {
                            $t = $rt_s(12);
                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                $overflow = $overflow + 1 | 0;
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                var$8 = var$5;
                                continue;
                            }
                            if (nles_IntegratedServer_currentProcess === null) {
                                var$8 = var$5;
                                continue;
                            }
                            $packet = $msg.$channel0;
                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                            $worldsTxt = $msg.$data3;
                            $msg = $packet.$channels;
                            if ($u === null) {
                                $msg = $msg.$elementData.data[0];
                                while ($msg !== null && $msg.$key !== null) {
                                    $msg = $msg.$next3;
                                }
                            } else {
                                b1: {
                                    if (!$u.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $u.$nativeString.length)
                                                break b1;
                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$8 = $u.$hashCode1;
                                $worlds = $msg.$elementData.data;
                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                while ($msg !== null) {
                                    if ($msg.$origKeyHash == var$8) {
                                        b2: {
                                            $packet = $msg.$key;
                                            if ($u !== $packet) {
                                                if ($u === $packet)
                                                    $i = 1;
                                                else if (!($packet instanceof jl_String))
                                                    $i = 0;
                                                else {
                                                    $packet = $packet;
                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                }
                                                if (!$i) {
                                                    $i = 0;
                                                    break b2;
                                                }
                                            }
                                            $i = 1;
                                        }
                                        if ($i)
                                            break;
                                    }
                                    $msg = $msg.$next3;
                                }
                            }
                            $msg = $msg === null ? null : $msg.$value0;
                            if ($msg !== null && $msg.$isAlive) {
                                $msg = $msg.$frags;
                                var$8 = $msg.$size2;
                                if (var$8 < 0) {
                                    $msg = new jl_IndexOutOfBoundsException;
                                    $msg.$suppressionEnabled = 1;
                                    $msg.$writableStackTrace = 1;
                                    $rt_throw($msg);
                                }
                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                            }
                        }
                        var$8 = var$5;
                    }
                    $msg = new ju_ConcurrentModificationException;
                    $msg.$suppressionEnabled = 1;
                    $msg.$writableStackTrace = 1;
                    $rt_throw($msg);
                }
                if (var$5 < $cur.$modCount)
                    break;
                $itr$index_0 = $itr$index + 1 | 0;
                $msg = $cur.$get($itr$index);
                $packet = $msg.$channel0;
                if ($packet === $rt_s(12))
                    $overflow = 1;
                else if (!($rt_s(12) instanceof jl_String))
                    $overflow = 0;
                else {
                    $t = $rt_s(12);
                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                }
                if (!$overflow) {
                    $itr$index = $itr$index_0;
                    continue;
                }
                j: {
                    try {
                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                        break j;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $packet.$buf = $rt_createByteArray(32);
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $packet.$buffer = $rt_createCharArray(16);
                        $msg.$sb = $packet;
                        $msg.$buffer0 = $rt_createCharArray(32);
                        $msg.$autoFlush = 0;
                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $msg;
                    }
                    $rt_putStderr($rt_ustr($u));
                    jl_Throwable_printStackTrace0($e);
                    $itr$index = $itr$index_0;
                    continue i;
                }
                $id = $packet.$id();
                try {
                    b_: {
                        bm: {
                            s: {
                                switch ($id) {
                                    case 0:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                        nles_IntegratedServer_currentProcess = $t;
                                        $overflow = $pkt.$initialDifficulty;
                                        $msg = nles_IntegratedServer_newWorldSettings;
                                        nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 26;
                                        continue main;
                                    case 1:
                                        if (nles_IntegratedServer_isServerStopped())
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                        else {
                                            try {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $ptr = 9;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                        break b_;
                                    case 2:
                                        $ptr = 2;
                                        continue main;
                                    case 3:
                                        $ptr = 3;
                                        continue main;
                                    case 4:
                                        $ptr = 5;
                                        continue main;
                                    case 5:
                                        break bm;
                                    case 6:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName1;
                                            $pkt = $pkt.$displayName;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break b_;
                                        }
                                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                        $ptr = 12;
                                        continue main;
                                    case 7:
                                        bA: {
                                            $pkt = $packet;
                                            if (!nles_IntegratedServer_isServerStopped()) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$worldName0;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            } else {
                                                $overflow = $pkt.$worldFormat;
                                                if (!$overflow)
                                                    break bA;
                                                if ($overflow == 1) {
                                                    try {
                                                        $worldsTxt = $pkt.$worldData;
                                                        $msg = $pkt.$worldName0;
                                                        $ptr = 32;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t_0 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                nles_IntegratedServer_sendTaskFailed();
                                            }
                                            break b_;
                                        }
                                        try {
                                            $worldsTxt = $pkt.$worldData;
                                            $msg = $pkt.$worldName0;
                                            $ptr = 24;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t_0 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        $ptr = 33;
                                        continue main;
                                    case 8:
                                    case 13:
                                    case 17:
                                    case 21:
                                    case 22:
                                        break s;
                                    case 9:
                                        break;
                                    case 10:
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped())
                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                        else {
                                            $msg = jl_System_err();
                                            $overflow = $pkt.$difficulty;
                                            $t = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b_;
                                    case 11:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        } else {
                                            if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                            if ($pkt.$pause) {
                                                $msg = nles_IntegratedServer_currentProcess;
                                                $overflow = 1;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                        }
                                        break b_;
                                    case 12:
                                        $pkt = $packet;
                                        if (nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                            $pkt = $pkt.$channel;
                                            $newWorlds = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        } else {
                                            if (!$pkt.$open) {
                                                $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                                $t = $pkt.$channel;
                                                $ptr = 25;
                                                continue main;
                                            }
                                            if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                                $msg = jl_System_err();
                                                $t = $pkt.$channel;
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            }
                                        }
                                        break b_;
                                    case 14:
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                            nles_IntegratedServer_sendTaskFailed();
                                            break b_;
                                        }
                                        $ptr = 13;
                                        continue main;
                                    case 15:
                                        break b_;
                                    case 16:
                                        break b_;
                                    case 18:
                                        break b_;
                                    case 19:
                                        break b_;
                                    case 20:
                                        bx: {
                                            $pkt = $packet;
                                            switch ($pkt.$opCode) {
                                                case 1:
                                                    break;
                                                case 2:
                                                    nms_AchievementMap_init($pkt.$stringList);
                                                    nms_AchievementList_init();
                                                    break bx;
                                                default:
                                                    $msg = jl_System_err();
                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                    $pkt = jl_StringBuilder__init_();
                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                    break bx;
                                            }
                                            nms_StringTranslate_init($pkt.$stringList);
                                        }
                                        break b_;
                                    case 23:
                                        break b_;
                                    case 24:
                                        $ptr = 7;
                                        continue main;
                                    default:
                                        break s;
                                }
                                break b_;
                            }
                            $newWorlds = jl_System_err();
                            $pkt = jl_Integer_toHexString($id);
                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                            nles_IntegratedServer_sendTaskFailed();
                            break b_;
                        }
                        $pkt = $packet;
                        $overflow = $pkt.$request;
                        if ($overflow == 1) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 11;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $realWorldName = $pkt.$worldName;
                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                            if ($i != (-1))
                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        } else if ($overflow == 2) {
                            try {
                                $msg = new nlesi_IPCPacket09RequestResponse;
                                $t = $pkt.$worldName;
                                $ptr = 20;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t_0 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $pkt = $pkt.$worldName;
                            $msg = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                            nles_IntegratedServer_sendTaskFailed();
                        }
                    }
                    $itr$index = $itr$index_0;
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $overflow = 4;
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
                $packet = $packet;
                $pkt = $rt_s(41);
                $pkt = $rt_ustr($pkt);
                $pkt = $packet[$pkt];
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $rt_s(42);
                    $packet = $rt_ustr($packet);
                    $packet = $pkt[$packet];
                    $packet = $packet;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $newWorlds = $packet;
                        $str = $rt_s(42);
                        $str = $rt_ustr($str);
                        $pkt[$str] = $newWorlds;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $overflow = 16;
                $worldsTxt = $rt_createCharArray($overflow);
                $pkt.$buffer = $worldsTxt;
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                $overflow = $pkt.$length0;
                jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $overflow = 0;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break ba;
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found > 0)
                    break ba;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                $msg = jl_System_errCache;
                if ($msg === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $overflow = 32;
                    $worldsTxt = $rt_createByteArray($overflow);
                    $packet.$buf = $worldsTxt;
                    $overflow = 0;
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $rewrite = 16;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $packet.$buffer = $worldsTxt;
                    $msg.$sb = $packet;
                    $rewrite = 32;
                    $worldsTxt = $rt_createCharArray($rewrite);
                    $msg.$buffer0 = $worldsTxt;
                    $msg.$autoFlush = $overflow;
                    $packet = jnci_UTF8Charset_INSTANCE;
                    $msg.$charset = $packet;
                    jl_System_errCache = $msg;
                }
                $msg = $rt_ustr($newWorlds);
                $rt_putStderr($msg);
                $msg = $rt_ustr(var$13);
                $rt_putStderr($msg);
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $overflow = 254;
                $msg.$ack = $overflow;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    case 55:
        try {
            $tmp = nles_VirtualFilesystem_getFile($msg, $t);
            if ($rt_suspending()) {
                break main;
            }
            $msg = $tmp;
            $t = jl_String_join($rt_s(9), $s);
            $ptr = 56;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            w: while (true) {
                $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, 4);
                $pkt = $packet.constructor;
                if ($pkt === null)
                    $packet = null;
                else {
                    $packet = $pkt.classObject;
                    if ($packet === null) {
                        $packet = new jl_Class;
                        $packet.$platformClass = $pkt;
                        $pkt.classObject = $packet;
                    }
                }
                $packet = jl_Class_getSimpleName($packet);
                $pkt = new jl_StringBuilder;
                $pkt.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$10);
                $overflow = $pkt.$length0;
                if ($msg === null)
                    $msg = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$11);
                $overflow = $pkt.$length0;
                if ($packet === null)
                    $packet = $rt_s(1);
                jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
                jl_AbstractStringBuilder_insert($pkt, $pkt.$length0, var$12);
                $newWorlds = new jl_String;
                $worldsTxt = $pkt.$buffer;
                $worlds = $worldsTxt.data;
                $rewrite = $pkt.$length0;
                $found = $worlds.length;
                if ($rewrite < 0)
                    break c;
                if ($rewrite > ($found - 0 | 0))
                    break c;
                $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, $rewrite);
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($newWorlds));
                $rt_putStderr($rt_ustr(var$13));
                nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                $msg.$ack = 254;
                nles_IntegratedServer_sendIPCPacket($msg);
                $itr$index = $itr$index_0;
                x: {
                    h: {
                        y: {
                            z: {
                                ba: {
                                    i: {
                                        bb: {
                                            bc: {
                                                bd: {
                                                    n: {
                                                        o: {
                                                            be: while (true) {
                                                                if (!($itr$index >= var$6 ? 0 : 1)) {
                                                                    nles_SysUtil_$callClinit();
                                                                    $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                                    var$8 = 0;
                                                                    $rewrite = $cur.$modCount;
                                                                    $found = $cur.$size();
                                                                    $overflow = 0;
                                                                    while (true) {
                                                                        if (!(var$8 >= $found ? 0 : 1)) {
                                                                            if ($overflow > 0) {
                                                                                if (jl_System_errCache === null) {
                                                                                    $msg = new otcic_JSStderrPrintStream;
                                                                                    $packet = new ji_ByteArrayOutputStream;
                                                                                    $packet.$buf = $rt_createByteArray(32);
                                                                                    $msg.$out0 = $packet;
                                                                                    $packet = new jl_StringBuilder;
                                                                                    $packet.$buffer = $rt_createCharArray(16);
                                                                                    $msg.$sb = $packet;
                                                                                    $msg.$buffer0 = $rt_createCharArray(32);
                                                                                    $msg.$autoFlush = 0;
                                                                                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                                    jl_System_errCache = $msg;
                                                                                }
                                                                                $msg = new jl_StringBuilder;
                                                                                $msg.$buffer = $rt_createCharArray(16);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                                                                                jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                                                                                jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                                                                                $packet = new jl_String;
                                                                                $worldsTxt = $msg.$buffer;
                                                                                $worlds = $worldsTxt.data;
                                                                                var$8 = $msg.$length0;
                                                                                var$5 = $worlds.length;
                                                                                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                                                                    $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                                                                    $rt_putStderr($rt_ustr($packet));
                                                                                    $rt_putStderr("\n");
                                                                                } else {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                            }
                                                                            return;
                                                                        }
                                                                        if ($rewrite < $cur.$modCount)
                                                                            break;
                                                                        var$5 = var$8 + 1 | 0;
                                                                        $msg = $cur.$get(var$8);
                                                                        $packet = $msg.$channel0;
                                                                        if ($packet === $rt_s(12))
                                                                            var$8 = 1;
                                                                        else if (!($rt_s(12) instanceof jl_String))
                                                                            var$8 = 0;
                                                                        else {
                                                                            $t = $rt_s(12);
                                                                            var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$8) {
                                                                            if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                                                                                $overflow = $overflow + 1 | 0;
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            if (nles_IntegratedServer_currentProcess === null) {
                                                                                var$8 = var$5;
                                                                                continue;
                                                                            }
                                                                            $packet = $msg.$channel0;
                                                                            $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                                                                            $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                                                                            $worldsTxt = $msg.$data3;
                                                                            $msg = $packet.$channels;
                                                                            if ($u === null) {
                                                                                $msg = $msg.$elementData.data[0];
                                                                                while ($msg !== null && $msg.$key !== null) {
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            } else {
                                                                                bf: {
                                                                                    if (!$u.$hashCode1) {
                                                                                        var$8 = 0;
                                                                                        while (true) {
                                                                                            if (var$8 >= $u.$nativeString.length)
                                                                                                break bf;
                                                                                            $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                                                                            var$8 = var$8 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                var$8 = $u.$hashCode1;
                                                                                $worlds = $msg.$elementData.data;
                                                                                $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                                                                                while ($msg !== null) {
                                                                                    if ($msg.$origKeyHash == var$8) {
                                                                                        bg: {
                                                                                            $packet = $msg.$key;
                                                                                            if ($u !== $packet) {
                                                                                                if ($u === $packet)
                                                                                                    $i = 1;
                                                                                                else if (!($packet instanceof jl_String))
                                                                                                    $i = 0;
                                                                                                else {
                                                                                                    $packet = $packet;
                                                                                                    $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                                                                                }
                                                                                                if (!$i) {
                                                                                                    $i = 0;
                                                                                                    break bg;
                                                                                                }
                                                                                            }
                                                                                            $i = 1;
                                                                                        }
                                                                                        if ($i)
                                                                                            break;
                                                                                    }
                                                                                    $msg = $msg.$next3;
                                                                                }
                                                                            }
                                                                            $msg = $msg === null ? null : $msg.$value0;
                                                                            if ($msg !== null && $msg.$isAlive) {
                                                                                $msg = $msg.$frags;
                                                                                var$8 = $msg.$size2;
                                                                                if (var$8 < 0) {
                                                                                    $msg = new jl_IndexOutOfBoundsException;
                                                                                    $msg.$suppressionEnabled = 1;
                                                                                    $msg.$writableStackTrace = 1;
                                                                                    $rt_throw($msg);
                                                                                }
                                                                                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                                                                            }
                                                                        }
                                                                        var$8 = var$5;
                                                                    }
                                                                    $msg = new ju_ConcurrentModificationException;
                                                                    $msg.$suppressionEnabled = 1;
                                                                    $msg.$writableStackTrace = 1;
                                                                    $rt_throw($msg);
                                                                }
                                                                if (var$5 < $cur.$modCount)
                                                                    break w;
                                                                $itr$index_0 = $itr$index + 1 | 0;
                                                                $msg = $cur.$get($itr$index);
                                                                $packet = $msg.$channel0;
                                                                if ($packet === $rt_s(12))
                                                                    $overflow = 1;
                                                                else if (!($rt_s(12) instanceof jl_String))
                                                                    $overflow = 0;
                                                                else {
                                                                    $t = $rt_s(12);
                                                                    $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$overflow) {
                                                                    $itr$index = $itr$index_0;
                                                                    continue;
                                                                }
                                                                k: {
                                                                    try {
                                                                        $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                                                                        break k;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof ji_IOException) {
                                                                            $e = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        $msg = new otcic_JSStderrPrintStream;
                                                                        $packet = new ji_ByteArrayOutputStream;
                                                                        $packet.$buf = $rt_createByteArray(32);
                                                                        $msg.$out0 = $packet;
                                                                        $packet = new jl_StringBuilder;
                                                                        $packet.$buffer = $rt_createCharArray(16);
                                                                        $msg.$sb = $packet;
                                                                        $msg.$buffer0 = $rt_createCharArray(32);
                                                                        $msg.$autoFlush = 0;
                                                                        $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                                                        jl_System_errCache = $msg;
                                                                    }
                                                                    $rt_putStderr($rt_ustr($u));
                                                                    jl_Throwable_printStackTrace0($e);
                                                                    $itr$index = $itr$index_0;
                                                                    continue be;
                                                                }
                                                                $id = $packet.$id();
                                                                bh: {
                                                                    r: {
                                                                        bi: {
                                                                            bj: {
                                                                                bk: {
                                                                                    bl: {
                                                                                        bm: {
                                                                                            m: {
                                                                                                bn: {
                                                                                                    bo: {
                                                                                                        l: {
                                                                                                            s: {
                                                                                                                bp: {
                                                                                                                    bq: {
                                                                                                                        br: {
                                                                                                                            bs: {
                                                                                                                                try {
                                                                                                                                    switch ($id) {
                                                                                                                                        case 0:
                                                                                                                                            break x;
                                                                                                                                        case 1:
                                                                                                                                            break bo;
                                                                                                                                        case 2:
                                                                                                                                            break be;
                                                                                                                                        case 3:
                                                                                                                                            break o;
                                                                                                                                        case 4:
                                                                                                                                            break n;
                                                                                                                                        case 5:
                                                                                                                                            break bl;
                                                                                                                                        case 6:
                                                                                                                                            break bj;
                                                                                                                                        case 7:
                                                                                                                                            break bm;
                                                                                                                                        case 8:
                                                                                                                                        case 13:
                                                                                                                                        case 17:
                                                                                                                                        case 21:
                                                                                                                                        case 22:
                                                                                                                                            break l;
                                                                                                                                        case 9:
                                                                                                                                            break;
                                                                                                                                        case 10:
                                                                                                                                            break bn;
                                                                                                                                        case 11:
                                                                                                                                            break r;
                                                                                                                                        case 12:
                                                                                                                                            break bi;
                                                                                                                                        case 14:
                                                                                                                                            break bk;
                                                                                                                                        case 15:
                                                                                                                                            break bs;
                                                                                                                                        case 16:
                                                                                                                                            break br;
                                                                                                                                        case 18:
                                                                                                                                            break bq;
                                                                                                                                        case 19:
                                                                                                                                            break bp;
                                                                                                                                        case 20:
                                                                                                                                            break m;
                                                                                                                                        case 23:
                                                                                                                                            break s;
                                                                                                                                        case 24:
                                                                                                                                            break bd;
                                                                                                                                        default:
                                                                                                                                            break l;
                                                                                                                                    }
                                                                                                                                    break bh;
                                                                                                                                } catch ($$e) {
                                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                                        $t = $$je;
                                                                                                                                        continue w;
                                                                                                                                    } else {
                                                                                                                                        throw $$e;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                            try {
                                                                                                                                break bh;
                                                                                                                            } catch ($$e) {
                                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                                    $t = $$je;
                                                                                                                                    continue w;
                                                                                                                                } else {
                                                                                                                                    throw $$e;
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                        try {
                                                                                                                            break bh;
                                                                                                                        } catch ($$e) {
                                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                                $t = $$je;
                                                                                                                                continue w;
                                                                                                                            } else {
                                                                                                                                throw $$e;
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                    try {
                                                                                                                        break bh;
                                                                                                                    } catch ($$e) {
                                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                                            $t = $$je;
                                                                                                                            continue w;
                                                                                                                        } else {
                                                                                                                            throw $$e;
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                                try {
                                                                                                                    break bh;
                                                                                                                } catch ($$e) {
                                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                                        $t = $$je;
                                                                                                                        continue w;
                                                                                                                    } else {
                                                                                                                        throw $$e;
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                            try {
                                                                                                                break bh;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            $newWorlds = jl_System_err();
                                                                                                            $pkt = jl_Integer_toHexString($id);
                                                                                                            $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                                                                                                            $msg = jl_StringBuilder__init_();
                                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                                                                                                            otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                                            break bh;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    t: {
                                                                                                        bt: {
                                                                                                            try {
                                                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                                                    break bt;
                                                                                                                otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                                                                                                break t;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                    continue w;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                        try {
                                                                                                            try {
                                                                                                                $msg = nles_IntegratedServer_currentProcess;
                                                                                                                $ptr = 9;
                                                                                                                continue main;
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                                    $t = $$je;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                                                                                            break t;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                                                                                        break bh;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                bu: {
                                                                                                    bv: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            if (nles_IntegratedServer_isServerStopped())
                                                                                                                break bv;
                                                                                                            nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                                                                                            break bu;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        $msg = jl_System_err();
                                                                                                        $overflow = $pkt.$difficulty;
                                                                                                        $t = jl_StringBuilder__init_();
                                                                                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                                                                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                                                                                        nles_IntegratedServer_sendTaskFailed();
                                                                                                        break bu;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    break bh;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            bw: {
                                                                                                bx: {
                                                                                                    by: {
                                                                                                        try {
                                                                                                            $pkt = $packet;
                                                                                                            switch ($pkt.$opCode) {
                                                                                                                case 1:
                                                                                                                    break;
                                                                                                                case 2:
                                                                                                                    break by;
                                                                                                                default:
                                                                                                                    break bx;
                                                                                                            }
                                                                                                            nms_StringTranslate_init($pkt.$stringList);
                                                                                                            break bw;
                                                                                                        } catch ($$e) {
                                                                                                            $$je = $rt_wrapException($$e);
                                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                                $t = $$je;
                                                                                                                continue w;
                                                                                                            } else {
                                                                                                                throw $$e;
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    try {
                                                                                                        nms_AchievementMap_init($pkt.$stringList);
                                                                                                        nms_AchievementList_init();
                                                                                                        break bw;
                                                                                                    } catch ($$e) {
                                                                                                        $$je = $rt_wrapException($$e);
                                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                                            $t = $$je;
                                                                                                            continue w;
                                                                                                        } else {
                                                                                                            throw $$e;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                                try {
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = jl_Integer_toHexString($pkt.$opCode);
                                                                                                    $overflow = ju_ArrayList_size($pkt.$stringList);
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    break bw;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                break bh;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        bz: {
                                                                                            bA: {
                                                                                                try {
                                                                                                    $pkt = $packet;
                                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                                        break bA;
                                                                                                    $msg = jl_System_err();
                                                                                                    $t = $pkt.$worldName0;
                                                                                                    $pkt = jl_StringBuilder__init_();
                                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                                    break bz;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t = $$je;
                                                                                                        continue w;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                            try {
                                                                                                $overflow = $pkt.$worldFormat;
                                                                                                if (!$overflow)
                                                                                                    break z;
                                                                                                if ($overflow == 1)
                                                                                                    break ba;
                                                                                                $msg = jl_System_err();
                                                                                                $t = jl_Integer_toHexString($pkt.$worldFormat);
                                                                                                $pkt = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bz;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            break bh;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    bB: {
                                                                                        v: {
                                                                                            try {
                                                                                                $pkt = $packet;
                                                                                                $overflow = $pkt.$request;
                                                                                                if ($overflow == 1)
                                                                                                    break v;
                                                                                                if ($overflow != 2)
                                                                                                    break bB;
                                                                                                try {
                                                                                                    $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                    $t = $pkt.$worldName;
                                                                                                    $ptr = 20;
                                                                                                    continue main;
                                                                                                } catch ($$e) {
                                                                                                    $$je = $rt_wrapException($$e);
                                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                                        $t_0 = $$je;
                                                                                                    } else {
                                                                                                        throw $$e;
                                                                                                    }
                                                                                                }
                                                                                                $pkt = $pkt.$worldName;
                                                                                                $msg = jl_StringBuilder__init_();
                                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                                                                                                nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                                break bB;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t = $$je;
                                                                                                    continue w;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                        try {
                                                                                            try {
                                                                                                $msg = new nlesi_IPCPacket09RequestResponse;
                                                                                                $t = $pkt.$worldName;
                                                                                                $ptr = 11;
                                                                                                continue main;
                                                                                            } catch ($$e) {
                                                                                                $$je = $rt_wrapException($$e);
                                                                                                if ($$je instanceof jl_Throwable) {
                                                                                                    $t_0 = $$je;
                                                                                                } else {
                                                                                                    throw $$e;
                                                                                                }
                                                                                            }
                                                                                            $realWorldName = $pkt.$worldName;
                                                                                            $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                                                                                            if ($i != (-1))
                                                                                                $realWorldName = jl_String_substring($realWorldName, 0, $i);
                                                                                            $msg = jl_StringBuilder__init_();
                                                                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                                                                                            nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                                                                                            nles_IntegratedServer_sendTaskFailed();
                                                                                            break bB;
                                                                                        } catch ($$e) {
                                                                                            $$je = $rt_wrapException($$e);
                                                                                            if ($$je instanceof jl_Throwable) {
                                                                                                $t = $$je;
                                                                                                continue w;
                                                                                            } else {
                                                                                                throw $$e;
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                    try {
                                                                                        break bh;
                                                                                    } catch ($$e) {
                                                                                        $$je = $rt_wrapException($$e);
                                                                                        if ($$je instanceof jl_Throwable) {
                                                                                            $t = $$je;
                                                                                            continue w;
                                                                                        } else {
                                                                                            throw $$e;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                try {
                                                                                    if (nles_IntegratedServer_isServerStopped())
                                                                                        break bc;
                                                                                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                                                                    nles_IntegratedServer_sendTaskFailed();
                                                                                    break bh;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (nles_IntegratedServer_isServerStopped())
                                                                                    break h;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$worldName1;
                                                                                $pkt = $pkt.$displayName;
                                                                                $newWorlds = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                nles_IntegratedServer_sendTaskFailed();
                                                                                break bh;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        u: {
                                                                            bC: {
                                                                                try {
                                                                                    $pkt = $packet;
                                                                                    if (!nles_IntegratedServer_isServerStopped())
                                                                                        break bC;
                                                                                    $msg = jl_System_err();
                                                                                    $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                                                                    $pkt = $pkt.$channel;
                                                                                    $newWorlds = jl_StringBuilder__init_();
                                                                                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                                                                    otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                                                                    break u;
                                                                                } catch ($$e) {
                                                                                    $$je = $rt_wrapException($$e);
                                                                                    if ($$je instanceof jl_Throwable) {
                                                                                        $t = $$je;
                                                                                        continue w;
                                                                                    } else {
                                                                                        throw $$e;
                                                                                    }
                                                                                }
                                                                            }
                                                                            try {
                                                                                if (!$pkt.$open)
                                                                                    break y;
                                                                                if (nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel))
                                                                                    break u;
                                                                                $msg = jl_System_err();
                                                                                $t = $pkt.$channel;
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break u;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            break bh;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    bD: {
                                                                        bE: {
                                                                            try {
                                                                                $pkt = $packet;
                                                                                if (!nles_IntegratedServer_isServerStopped())
                                                                                    break bE;
                                                                                $msg = jl_System_err();
                                                                                $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                                                                $pkt = jl_StringBuilder__init_();
                                                                                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                                                break bD;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        bF: {
                                                                            try {
                                                                                if ($pkt.$pause)
                                                                                    break bF;
                                                                                if (nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess))
                                                                                    break bF;
                                                                                else
                                                                                    break i;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                    continue w;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                        }
                                                                        try {
                                                                            nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                                                            if ($pkt.$pause)
                                                                                break bb;
                                                                            nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                                                            break bD;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Throwable) {
                                                                                $t = $$je;
                                                                                continue w;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                    }
                                                                    try {
                                                                        break bh;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Throwable) {
                                                                            $t = $$je;
                                                                            continue w;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                }
                                                                $itr$index = $itr$index_0;
                                                            }
                                                            try {
                                                                $ptr = 2;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                    continue w;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $ptr = 3;
                                                            continue main;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $t = $$je;
                                                                continue w;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    try {
                                                        $ptr = 5;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $t = $$je;
                                                            continue w;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    $ptr = 7;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                        continue w;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $ptr = 13;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                    continue w;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                continue w;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $overflow = 1;
                                        $ptr = 36;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                            continue w;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 32;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 40;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t = $$je;
                                        continue w;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                try {
                                    $worldsTxt = $pkt.$worldData;
                                    $msg = $pkt.$worldName0;
                                    $ptr = 24;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $t_0 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $ptr = 33;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $t = $$je;
                                    continue w;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                            $t = $pkt.$channel;
                            $ptr = 25;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bG: {
                    try {
                        $pkt = $packet;
                        if (nles_IntegratedServer_isServerStopped())
                            break bG;
                        $msg = nles_IntegratedServer_currentProcess;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                bH: {
                    bI: {
                        try {
                            $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                            nles_IntegratedServer_currentProcess = $t;
                            $overflow = $pkt.$initialDifficulty;
                            $msg = nles_IntegratedServer_newWorldSettings;
                            if ($msg === null)
                                break bI;
                            $msg = nms_WorldSettings_getGameType($msg);
                            break bH;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t = $$je;
                                continue w;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $msg = nms_EnumGameType_SURVIVAL;
                        break bH;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                            continue w;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg);
                    $msg = nles_IntegratedServer_currentProcess;
                    $ptr = 26;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            $msg = new ju_ConcurrentModificationException;
            $msg.$suppressionEnabled = 1;
            $msg.$writableStackTrace = 1;
            $rt_throw($msg);
        }
        $msg = new jl_IndexOutOfBoundsException;
        $msg.$suppressionEnabled = 1;
        $msg.$writableStackTrace = 1;
        $rt_throw($msg);
    case 56:
        a: {
            try {
                nles_VirtualFilesystem$VFSFile_setAllChars($msg, $t);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(0));
                $itr$index = $itr$index_0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite >= 0) {
                $found = $found - $overflow | 0;
                $found = $rt_compare($rewrite, $found);
                if ($found <= 0) {
                    $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
                    $msg = jl_System_errCache;
                    if ($msg === null) {
                        $msg = new otcic_JSStderrPrintStream;
                        $packet = new ji_ByteArrayOutputStream;
                        $overflow = 32;
                        $worldsTxt = $rt_createByteArray($overflow);
                        $packet.$buf = $worldsTxt;
                        $overflow = 0;
                        $msg.$out0 = $packet;
                        $packet = new jl_StringBuilder;
                        $rewrite = 16;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $packet.$buffer = $worldsTxt;
                        $msg.$sb = $packet;
                        $rewrite = 32;
                        $worldsTxt = $rt_createCharArray($rewrite);
                        $msg.$buffer0 = $worldsTxt;
                        $msg.$autoFlush = $overflow;
                        $packet = jnci_UTF8Charset_INSTANCE;
                        $msg.$charset = $packet;
                        jl_System_errCache = $msg;
                    }
                    $msg = $rt_ustr($newWorlds);
                    $rt_putStderr($msg);
                    $msg = $rt_ustr(var$13);
                    $rt_putStderr($msg);
                    nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
                    $msg = new nlesi_IPCPacketFFProcessKeepAlive;
                    $overflow = 254;
                    $msg.$ack = $overflow;
                    nles_IntegratedServer_sendIPCPacket($msg);
                    $itr$index = $itr$index_0;
                    break a;
                }
            }
            $msg = new jl_IndexOutOfBoundsException;
            $overflow = 1;
            $msg.$suppressionEnabled = $overflow;
            $overflow = 1;
            $msg.$writableStackTrace = $overflow;
            $rt_throw($msg);
        }
        h: while (true) {
            if (!($itr$index >= var$6 ? 0 : 1)) {
                nles_SysUtil_$callClinit();
                $watchDog = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8 = 0;
                $rewrite = $cur.$modCount;
                $found = $cur.$size();
                $overflow = 0;
                while (true) {
                    if (!(var$8 >= $found ? 0 : 1)) {
                        if ($overflow > 0) {
                            if (jl_System_errCache === null) {
                                $msg = new otcic_JSStderrPrintStream;
                                $packet = new ji_ByteArrayOutputStream;
                                $packet.$buf = $rt_createByteArray(32);
                                $msg.$out0 = $packet;
                                $packet = new jl_StringBuilder;
                                $packet.$buffer = $rt_createCharArray(16);
                                $msg.$sb = $packet;
                                $msg.$buffer0 = $rt_createCharArray(32);
                                $msg.$autoFlush = 0;
                                $msg.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $msg;
                            }
                            $msg = new jl_StringBuilder;
                            $msg.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(10));
                            jl_AbstractStringBuilder_insert0($msg, $msg.$length0, $overflow, 10);
                            jl_AbstractStringBuilder_insert($msg, $msg.$length0, $rt_s(11));
                            $packet = new jl_String;
                            $worldsTxt = $msg.$buffer;
                            $worlds = $worldsTxt.data;
                            var$8 = $msg.$length0;
                            var$5 = $worlds.length;
                            if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                                $packet.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$8);
                                $rt_putStderr($rt_ustr($packet));
                                $rt_putStderr("\n");
                            } else {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                        }
                        return;
                    }
                    if ($rewrite < $cur.$modCount)
                        break;
                    var$5 = var$8 + 1 | 0;
                    $msg = $cur.$get(var$8);
                    $packet = $msg.$channel0;
                    if ($packet === $rt_s(12))
                        var$8 = 1;
                    else if (!($rt_s(12) instanceof jl_String))
                        var$8 = 0;
                    else {
                        $t = $rt_s(12);
                        var$8 = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        if (Long_gt(Long_sub(Long_fromNumber(nles_SysUtil_steadyTimeFunc()), $watchDog), Long_fromInt(500))) {
                            $overflow = $overflow + 1 | 0;
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        if (!($packet === $rt_s(13) ? 1 : jl_String_startsWith($packet, $rt_s(13), 0))) {
                            var$8 = var$5;
                            continue;
                        }
                        if (nles_IntegratedServer_currentProcess === null) {
                            var$8 = var$5;
                            continue;
                        }
                        $packet = $msg.$channel0;
                        $u = jl_String_substring($packet, 4, $packet.$nativeString.length);
                        $packet = nles_IntegratedServer_currentProcess.$listenThreadImpl;
                        $worldsTxt = $msg.$data3;
                        $msg = $packet.$channels;
                        if ($u === null) {
                            $msg = $msg.$elementData.data[0];
                            while ($msg !== null && $msg.$key !== null) {
                                $msg = $msg.$next3;
                            }
                        } else {
                            b7: {
                                if (!$u.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $u.$nativeString.length)
                                            break b7;
                                        $u.$hashCode1 = (31 * $u.$hashCode1 | 0) + $u.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $u.$hashCode1;
                            $worlds = $msg.$elementData.data;
                            $msg = $worlds[var$8 & ($worlds.length - 1 | 0)];
                            while ($msg !== null) {
                                if ($msg.$origKeyHash == var$8) {
                                    b1: {
                                        $packet = $msg.$key;
                                        if ($u !== $packet) {
                                            if ($u === $packet)
                                                $i = 1;
                                            else if (!($packet instanceof jl_String))
                                                $i = 0;
                                            else {
                                                $packet = $packet;
                                                $i = $u.$nativeString !== $packet.$nativeString ? 0 : 1;
                                            }
                                            if (!$i) {
                                                $i = 0;
                                                break b1;
                                            }
                                        }
                                        $i = 1;
                                    }
                                    if ($i)
                                        break;
                                }
                                $msg = $msg.$next3;
                            }
                        }
                        $msg = $msg === null ? null : $msg.$value0;
                        if ($msg !== null && $msg.$isAlive) {
                            $msg = $msg.$frags;
                            var$8 = $msg.$size2;
                            if (var$8 < 0) {
                                $msg = new jl_IndexOutOfBoundsException;
                                $msg.$suppressionEnabled = 1;
                                $msg.$writableStackTrace = 1;
                                $rt_throw($msg);
                            }
                            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($msg, var$8), $worldsTxt);
                        }
                    }
                    var$8 = var$5;
                }
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            if (var$5 < $cur.$modCount) {
                $msg = new ju_ConcurrentModificationException;
                $msg.$suppressionEnabled = 1;
                $msg.$writableStackTrace = 1;
                $rt_throw($msg);
            }
            $itr$index_0 = $itr$index + 1 | 0;
            $msg = $cur.$get($itr$index);
            $packet = $msg.$channel0;
            if ($packet === $rt_s(12))
                $overflow = 1;
            else if (!($rt_s(12) instanceof jl_String))
                $overflow = 0;
            else {
                $t = $rt_s(12);
                $overflow = $packet.$nativeString !== $t.$nativeString ? 0 : 1;
            }
            if (!$overflow) {
                $itr$index = $itr$index_0;
                continue;
            }
            o: {
                try {
                    $packet = nlesi_IPCPacketManager_IPCDeserialize($msg.$data3);
                    break o;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $e = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $msg = new otcic_JSStderrPrintStream;
                    $packet = new ji_ByteArrayOutputStream;
                    $packet.$buf = $rt_createByteArray(32);
                    $msg.$out0 = $packet;
                    $packet = new jl_StringBuilder;
                    $packet.$buffer = $rt_createCharArray(16);
                    $msg.$sb = $packet;
                    $msg.$buffer0 = $rt_createCharArray(32);
                    $msg.$autoFlush = 0;
                    $msg.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $msg;
                }
                $rt_putStderr($rt_ustr($u));
                jl_Throwable_printStackTrace0($e);
                $itr$index = $itr$index_0;
                continue h;
            }
            $id = $packet.$id();
            try {
                b3: {
                    r: {
                        bm: {
                            switch ($id) {
                                case 0:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = nles_IntegratedServer_currentProcess;
                                        $ptr = 8;
                                        continue main;
                                    }
                                    $t = nles_EAGMinecraftServer__init_($pkt.$worldName2, $pkt.$ownerName, nles_IntegratedServer_newWorldSettings);
                                    nles_IntegratedServer_currentProcess = $t;
                                    $overflow = $pkt.$initialDifficulty;
                                    $msg = nles_IntegratedServer_newWorldSettings;
                                    nles_EAGMinecraftServer_setBaseServerProperties($t, $overflow, $msg !== null ? nms_WorldSettings_getGameType($msg) : nms_EnumGameType_SURVIVAL);
                                    $msg = nles_IntegratedServer_currentProcess;
                                    $ptr = 26;
                                    continue main;
                                case 1:
                                    if (nles_IntegratedServer_isServerStopped())
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(14));
                                    else {
                                        try {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $ptr = 9;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        nles_IntegratedServer_throwExceptionToClient($rt_s(2), $t);
                                    }
                                    nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(1));
                                    break b3;
                                case 2:
                                    $ptr = 2;
                                    continue main;
                                case 3:
                                    $ptr = 3;
                                    continue main;
                                case 4:
                                    $ptr = 5;
                                    continue main;
                                case 5:
                                    break r;
                                case 6:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = $pkt.$worldName1;
                                        $pkt = $pkt.$displayName;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(15)), $t), $rt_s(16)), $pkt), $rt_s(17));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $worldDat = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $pkt.$worldName1, $rt_s(19)]));
                                    $ptr = 12;
                                    continue main;
                                case 7:
                                    bv: {
                                        $pkt = $packet;
                                        if (!nles_IntegratedServer_isServerStopped()) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$worldName0;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(20)), $t), $rt_s(17));
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        } else {
                                            $overflow = $pkt.$worldFormat;
                                            if (!$overflow)
                                                break bv;
                                            if ($overflow == 1) {
                                                try {
                                                    $worldsTxt = $pkt.$worldData;
                                                    $msg = $pkt.$worldName0;
                                                    $ptr = 32;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t_0 = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $ptr = 40;
                                                continue main;
                                            }
                                            $msg = jl_System_err();
                                            $t = jl_Integer_toHexString($pkt.$worldFormat);
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(21)), $t);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                            nles_IntegratedServer_sendTaskFailed();
                                        }
                                        break b3;
                                    }
                                    try {
                                        $worldsTxt = $pkt.$worldData;
                                        $msg = $pkt.$worldName0;
                                        $ptr = 24;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t_0 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $ptr = 33;
                                    continue main;
                                case 8:
                                case 13:
                                case 17:
                                case 21:
                                case 22:
                                    break bm;
                                case 9:
                                    break;
                                case 10:
                                    $pkt = $packet;
                                    if (!nles_IntegratedServer_isServerStopped())
                                        nms_MinecraftServer_setDifficultyForAllWorlds(nles_IntegratedServer_currentProcess, $pkt.$difficulty);
                                    else {
                                        $msg = jl_System_err();
                                        $overflow = $pkt.$difficulty;
                                        $t = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($t, $rt_s(22)), $overflow << 24 >> 24), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($t));
                                        nles_IntegratedServer_sendTaskFailed();
                                    }
                                    break b3;
                                case 11:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$pause ? $rt_s(24) : $rt_s(25);
                                        $pkt = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(26)), $t), $rt_s(27));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                    } else {
                                        if (!$pkt.$pause && !nles_EAGMinecraftServer_getPaused(nles_IntegratedServer_currentProcess)) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        nles_EAGMinecraftServer_setPaused(nles_IntegratedServer_currentProcess, $pkt.$pause);
                                        if ($pkt.$pause) {
                                            $msg = nles_IntegratedServer_currentProcess;
                                            $overflow = 1;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        nles_IntegratedServer_sendIPCPacket(nlesi_IPCPacketFFProcessKeepAlive__init_(11));
                                    }
                                    break b3;
                                case 12:
                                    $pkt = $packet;
                                    if (nles_IntegratedServer_isServerStopped()) {
                                        $msg = jl_System_err();
                                        $t = !$pkt.$open ? $rt_s(28) : $rt_s(29);
                                        $pkt = $pkt.$channel;
                                        $newWorlds = jl_StringBuilder__init_();
                                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($newWorlds, $rt_s(26)), $t), $rt_s(30)), $pkt), $rt_s(23));
                                        otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($newWorlds));
                                    } else {
                                        if (!$pkt.$open) {
                                            $msg = nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess);
                                            $t = $pkt.$channel;
                                            $ptr = 25;
                                            continue main;
                                        }
                                        if (!nles_WorkerListenThread_openChannel(nles_EAGMinecraftServer_getNetworkThread(nles_IntegratedServer_currentProcess), $pkt.$channel)) {
                                            $msg = jl_System_err();
                                            $t = $pkt.$channel;
                                            $pkt = jl_StringBuilder__init_();
                                            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(31)), $t), var$7);
                                            otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                        }
                                    }
                                    break b3;
                                case 14:
                                    if (!nles_IntegratedServer_isServerStopped()) {
                                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(32));
                                        nles_IntegratedServer_sendTaskFailed();
                                        break b3;
                                    }
                                    $ptr = 13;
                                    continue main;
                                case 15:
                                    break b3;
                                case 16:
                                    break b3;
                                case 18:
                                    break b3;
                                case 19:
                                    break b3;
                                case 20:
                                    t: {
                                        $pkt = $packet;
                                        switch ($pkt.$opCode) {
                                            case 1:
                                                break;
                                            case 2:
                                                nms_AchievementMap_init($pkt.$stringList);
                                                nms_AchievementList_init();
                                                break t;
                                            default:
                                                $msg = jl_System_err();
                                                $t = jl_Integer_toHexString($pkt.$opCode);
                                                $overflow = ju_ArrayList_size($pkt.$stringList);
                                                $pkt = jl_StringBuilder__init_();
                                                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($pkt, $rt_s(33)), $t), $rt_s(34)), $overflow), $rt_s(35));
                                                otcic_JsConsolePrintStream_println($msg, jl_StringBuilder_toString($pkt));
                                                break t;
                                        }
                                        nms_StringTranslate_init($pkt.$stringList);
                                    }
                                    break b3;
                                case 23:
                                    break b3;
                                case 24:
                                    $ptr = 7;
                                    continue main;
                                default:
                                    break bm;
                            }
                            break b3;
                        }
                        $newWorlds = jl_System_err();
                        $pkt = jl_Integer_toHexString($id);
                        $str = jl_Class_getSimpleName(jl_Object_getClass($packet));
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(36)), $pkt), $rt_s(7)), $str), $rt_s(37));
                        otcic_JsConsolePrintStream_println($newWorlds, jl_StringBuilder_toString($msg));
                        nles_IntegratedServer_sendTaskFailed();
                        break b3;
                    }
                    $pkt = $packet;
                    $overflow = $pkt.$request;
                    if ($overflow == 1) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $realWorldName = $pkt.$worldName;
                        $i = jl_String_lastIndexOf($realWorldName, jl_String__init_($rt_createCharArrayFromData([253, 233, 233])));
                        if ($i != (-1))
                            $realWorldName = jl_String_substring($realWorldName, 0, $i);
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $realWorldName), $rt_s(39));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    } else if ($overflow == 2) {
                        try {
                            $msg = new nlesi_IPCPacket09RequestResponse;
                            $t = $pkt.$worldName;
                            $ptr = 20;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $t_0 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        $pkt = $pkt.$worldName;
                        $msg = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($msg, $rt_s(38)), $pkt), $rt_s(40));
                        nles_IntegratedServer_throwExceptionToClient(jl_StringBuilder_toString($msg), $t_0);
                        nles_IntegratedServer_sendTaskFailed();
                    }
                }
                $itr$index = $itr$index_0;
                continue;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $overflow = 4;
            $msg = otci_IntegerUtil_toUnsignedLogRadixString($id, $overflow);
            $packet = $packet;
            $pkt = $rt_s(41);
            $pkt = $rt_ustr($pkt);
            $pkt = $packet[$pkt];
            if ($pkt === null)
                $packet = null;
            else {
                $packet = $rt_s(42);
                $packet = $rt_ustr($packet);
                $packet = $pkt[$packet];
                $packet = $packet;
                if ($packet === null) {
                    $packet = new jl_Class;
                    $packet.$platformClass = $pkt;
                    $newWorlds = $packet;
                    $str = $rt_s(42);
                    $str = $rt_ustr($str);
                    $pkt[$str] = $newWorlds;
                }
            }
            $packet = jl_Class_getSimpleName($packet);
            $pkt = new jl_StringBuilder;
            $overflow = 16;
            $worldsTxt = $rt_createCharArray($overflow);
            $pkt.$buffer = $worldsTxt;
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$10);
            $overflow = $pkt.$length0;
            if ($msg === null)
                $msg = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $msg);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$11);
            $overflow = $pkt.$length0;
            if ($packet === null)
                $packet = $rt_s(1);
            jl_AbstractStringBuilder_insert($pkt, $overflow, $packet);
            $overflow = $pkt.$length0;
            jl_AbstractStringBuilder_insert($pkt, $overflow, var$12);
            $newWorlds = new jl_String;
            $worldsTxt = $pkt.$buffer;
            $worlds = $worldsTxt.data;
            $overflow = 0;
            $rewrite = $pkt.$length0;
            $found = $worlds.length;
            if ($rewrite < 0)
                break;
            $found = $found - $overflow | 0;
            $found = $rt_compare($rewrite, $found);
            if ($found > 0)
                break;
            $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, $overflow, $rewrite);
            $msg = jl_System_errCache;
            if ($msg === null) {
                $msg = new otcic_JSStderrPrintStream;
                $packet = new ji_ByteArrayOutputStream;
                $overflow = 32;
                $worldsTxt = $rt_createByteArray($overflow);
                $packet.$buf = $worldsTxt;
                $overflow = 0;
                $msg.$out0 = $packet;
                $packet = new jl_StringBuilder;
                $rewrite = 16;
                $worldsTxt = $rt_createCharArray($rewrite);
                $packet.$buffer = $worldsTxt;
                $msg.$sb = $packet;
                $rewrite = 32;
                $worldsTxt = $rt_createCharArray($rewrite);
                $msg.$buffer0 = $worldsTxt;
                $msg.$autoFlush = $overflow;
                $packet = jnci_UTF8Charset_INSTANCE;
                $msg.$charset = $packet;
                jl_System_errCache = $msg;
            }
            $msg = $rt_ustr($newWorlds);
            $rt_putStderr($msg);
            $msg = $rt_ustr(var$13);
            $rt_putStderr($msg);
            nles_IntegratedServer_throwExceptionToClient($newWorlds, $t);
            $msg = new nlesi_IPCPacketFFProcessKeepAlive;
            $overflow = 254;
            $msg.$ack = $overflow;
            nles_IntegratedServer_sendIPCPacket($msg);
            $itr$index = $itr$index_0;
        }
        $msg = new jl_IndexOutOfBoundsException;
        $overflow = 1;
        $msg.$suppressionEnabled = $overflow;
        $overflow = 1;
        $msg.$writableStackTrace = $overflow;
        $rt_throw($msg);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($msg, $packet, $cur, $itr$index, var$5, var$6, var$7, var$8, $u, var$10, var$11, var$12, var$13, $watchDog, $rewrite, $found, $overflow, $worldsTxt, $worlds, $t, $i, $itr$index_0, $e, $id, $pkt, $newWorlds, $worldDat, $t_0, $str, $realWorldName, var$31, $updatedList, $sendListNBT, $w, $worldDatNBT, $s, $dat, $ptr);
},
nles_IntegratedServer_sendIPCPacket = $pkt => {
    let $serialized, $e, var$4, var$5, var$6, var$7, var$8, var$9, $$je;
    nles_IntegratedServer_$callClinit();
    a: {
        try {
            $serialized = nlesi_IPCPacketManager_IPCSerialize($pkt);
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $e = $$je;
                break a;
            } else {
                throw $$e;
            }
        }
        $e = $serialized.data.buffer;
        nles_IntegratedServer_sendWorkerPacket$js_body$_8("IPC", $e);
        return;
    }
    if (jl_System_errCache === null) {
        var$4 = new otcic_JSStderrPrintStream;
        var$5 = new ji_ByteArrayOutputStream;
        var$5.$buf = $rt_createByteArray(32);
        var$4.$out0 = var$5;
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        var$4.$sb = var$5;
        var$4.$buffer0 = $rt_createCharArray(32);
        var$4.$autoFlush = 0;
        var$4.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_errCache = var$4;
    }
    var$4 = otci_IntegerUtil_toUnsignedLogRadixString($pkt.$id(), 4);
    var$5 = $pkt.constructor;
    if (var$5 === null)
        $pkt = null;
    else {
        $pkt = var$5.classObject;
        if ($pkt === null) {
            $pkt = new jl_Class;
            $pkt.$platformClass = var$5;
            var$5.classObject = $pkt;
        }
    }
    $pkt = jl_Class_getSimpleName($pkt);
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(67));
    var$6 = var$5.$length0;
    if (var$4 === null)
        var$4 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$5, var$6, var$4);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(7));
    var$6 = var$5.$length0;
    if ($pkt === null)
        $pkt = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$5, var$6, $pkt);
    var$7 = var$5.$length0;
    jl_AbstractStringBuilder_insertSpace(var$5, var$7, var$7 + 1 | 0);
    $serialized = var$5.$buffer;
    var$8 = $serialized.data;
    var$8[var$7] = 39;
    $pkt = new jl_String;
    var$9 = var$5.$length0;
    var$7 = var$8.length;
    if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
        $pkt.$nativeString = $rt_charArrayToString($serialized.data, 0, var$9);
        $rt_putStderr($rt_ustr($pkt));
        $rt_putStderr("\n");
        jl_Throwable_printStackTrace0($e);
        return;
    }
    $pkt = new jl_IndexOutOfBoundsException;
    $pkt.$suppressionEnabled = 1;
    $pkt.$writableStackTrace = 1;
    $rt_throw($pkt);
},
nles_IntegratedServer_sendPlayerPacket = ($channel, $buf) => {
    let var$3, var$4, var$5, var$6, var$7, var$8;
    nles_IntegratedServer_$callClinit();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(13));
    var$4 = var$3.$length0;
    if ($channel === null)
        $channel = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, $channel);
    $channel = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $channel.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        nles_IntegratedServer_sendWorkerPacket$js_body$_8($rt_ustr($channel), $buf.data.buffer);
        return;
    }
    $channel = new jl_IndexOutOfBoundsException;
    $channel.$suppressionEnabled = 1;
    $channel.$writableStackTrace = 1;
    $rt_throw($channel);
},
nles_IntegratedServer_main = $args => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$args = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_IntegratedServer_$callClinit();
        if (jl_System_outCache === null) {
            var$2 = new otcic_JSStdoutPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            var$2.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            var$3.$buffer = $rt_createCharArray(16);
            var$2.$sb = var$3;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$2;
        }
        $rt_putStdout("Starting integrated server (kinda)");
        $rt_putStdout("\n");
        nles_IntegratedServer_registerPacketHandler$js_body$_13(otji_JS_function(new nles_IntegratedServer$WorkerBinaryPacketHandlerImpl, "onMessage"));
        nles_IntegratedServer_isRunning = 1;
        var$2 = new nlesi_IPCPacketFFProcessKeepAlive;
        var$2.$ack = 255;
        nles_IntegratedServer_sendIPCPacket(var$2);
        if (!nles_IntegratedServer_isRunning)
            return;
        $ptr = 1;
    case 1:
        nles_IntegratedServer_processAsyncMessageQueue();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nles_IntegratedServer_currentProcess;
        if (var$2 !== null) {
            $ptr = 3;
            continue main;
        }
        var$4 = 50;
        nles_SysUtil_$callClinit();
        $ptr = 2;
    case 2:
        nles_SysUtil_sleep$_asyncCall_$(var$4);
        if ($rt_suspending()) {
            break main;
        }
        nles_SysUtil_$callClinit();
        if (!nles_SysUtil_hasCheckedImmediateContinue) {
            nles_SysUtil_hasCheckedImmediateContinue = 1;
            $ptr = 4;
            continue main;
        }
        if (nles_SysUtil_immediateContinueChannel !== null) {
            $ptr = 6;
            continue main;
        }
        var$4 = 0;
        $ptr = 5;
        continue main;
    case 3:
        nles_EAGMinecraftServer_mainLoop(var$2);
        if ($rt_suspending()) {
            break main;
        }
        if (nles_IntegratedServer_currentProcess.$serverStopped) {
            var$2 = new nlesi_IPCPacketFFProcessKeepAlive;
            var$2.$ack = 1;
            nles_IntegratedServer_sendIPCPacket(var$2);
            nles_IntegratedServer_currentProcess = null;
        }
        nles_SysUtil_$callClinit();
        if (!nles_SysUtil_hasCheckedImmediateContinue) {
            nles_SysUtil_hasCheckedImmediateContinue = 1;
            $ptr = 4;
            continue main;
        }
        if (nles_SysUtil_immediateContinueChannel !== null) {
            $ptr = 6;
            continue main;
        }
        var$4 = 0;
        $ptr = 5;
        continue main;
    case 4:
        nles_SysUtil_checkImmediateContinueSupport();
        if ($rt_suspending()) {
            break main;
        }
        if (nles_SysUtil_immediateContinueChannel !== null) {
            $ptr = 6;
            continue main;
        }
        var$4 = 0;
        $ptr = 5;
    case 5:
        nles_SysUtil_sleep$_asyncCall_$(var$4);
        if ($rt_suspending()) {
            break main;
        }
        if (!nles_IntegratedServer_isRunning)
            return;
        $ptr = 1;
        continue main;
    case 6:
        nles_SysUtil_immediateContinueTeaVM$_asyncCall_$();
        if ($rt_suspending()) {
            break main;
        }
        if (!nles_IntegratedServer_isRunning)
            return;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($args, var$2, var$3, var$4, $ptr);
},
nles_IntegratedServer__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    jl_String_EMPTY_CHARS = $rt_createCharArray(0);
    var$1 = new jl_String;
    var$1.$nativeString = "";
    jl_String_EMPTY = var$1;
    jl_String_CASE_INSENSITIVE_ORDER = new jl_String$_clinit_$lambda$_115_0;
    jl_Integer_TYPE = $rt_cls($rt_intcls);
    nms_NBTBase__clinit_();
    ju_Comparator$NaturalOrder_INSTANCE = new ju_Comparator$NaturalOrder;
    jl_Character_TYPE = $rt_cls($rt_charcls);
    jl_Character_characterCache = $rt_createArray(jl_Character, 128);
    jl_Float_TYPE = $rt_cls($rt_floatcls);
    jl_Double_TYPE = $rt_cls($rt_doublecls);
    jl_Byte_TYPE = $rt_cls($rt_bytecls);
    var$2 = $rt_createArray(jl_Byte, 256);
    var$3 = var$2.data;
    var$4 = 0;
    var$5 = var$3.length;
    while (var$4 < var$5) {
        var$1 = new jl_Byte;
        var$1.$value1 = (var$4 - 128 | 0) << 24 >> 24;
        var$3[var$4] = var$1;
        var$4 = var$4 + 1 | 0;
    }
    jl_Byte_byteCache = var$2;
    var$1 = new jl_Boolean;
    var$1.$value9 = 1;
    jl_Boolean_TRUE = var$1;
    var$1 = new jl_Boolean;
    var$1.$value9 = 0;
    jl_Boolean_FALSE = var$1;
    jl_Boolean_TYPE = $rt_cls($rt_booleancls);
    nms_MapColor__clinit_();
    ju_Hashtable_EMPTY_ENUMERATION = new ju_Hashtable$1;
    ju_Hashtable_EMPTY_ITERATOR = new ju_Hashtable$2;
    jur_AbstractSet_counter = 1;
    jur_AbstractCharClass$PredefinedCharacterClasses__clinit_();
    jur_AbstractCharClass_charClasses = new jur_AbstractCharClass$PredefinedCharacterClasses;
    jl_Thread__clinit_();
    jl_Long_TYPE = $rt_cls($rt_longcls);
    nms_EnumToolMaterial__clinit_();
    var$1 = new jnci_UTF8Charset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(68));
    var$6 = var$3.length;
    var$4 = 0;
    while (var$4 < var$6) {
        jnc_Charset_checkCanonicalName(var$3[var$4]);
        var$4 = var$4 + 1 | 0;
    }
    var$1.$canonicalName = $rt_s(68);
    var$1.$aliases = var$2.$clone0();
    jnci_UTF8Charset_INSTANCE = var$1;
    nms_EnumEnchantmentType__clinit_();
    nms_ItemBow_bowPullIconNameArray = $rt_wrapArray(jl_String, [$rt_s(69), $rt_s(70), $rt_s(71)]);
    nms_SharedMonsterAttributes__clinit_();
    nms_ItemArmor__clinit_();
    nms_EnumArmorMaterial__clinit_();
    var$1 = new nms_RegistryDefaulted;
    var$7 = new nms_BehaviorDefaultDispenseItem;
    var$1.$registryObjects = nms_RegistrySimple_func_111054_a(var$1);
    var$1.$defaultObject = var$7;
    nms_BlockDispenser_dispenseBehaviorRegistry = var$1;
    var$1 = new nms_BehaviorDispenseMinecart;
    var$1.$behaviourDefaultDispenseItem = new nms_BehaviorDefaultDispenseItem;
    nms_ItemMinecart_dispenserMinecartBehavior = var$1;
    nms_ItemDye__clinit_();
    nms_ItemPotion_field_77835_b = ju_LinkedHashMap__init_();
    nms_ItemSkull__clinit_();
    nms_ItemRecord__clinit_();
    jt_DecimalFormat__clinit_();
    jm_RoundingMode__clinit_();
    nms_AchievementMap_instance = null;
    jm_BigInteger__clinit_();
    jm_Conversion__clinit_();
    otcit_DoubleAnalyzer__clinit_();
    jt_DecimalFormat$Constants_doubleAnalysisResult = new otcit_DoubleAnalyzer$Result;
    jt_DecimalFormat$Constants_floatAnalysisResult = new otcit_FloatAnalyzer$Result;
    ju_Collections_EMPTY_SET = new ju_Collections$1;
    ju_Collections_EMPTY_MAP = new ju_Collections$2;
    ju_Collections_EMPTY_LIST = new ju_Collections$3;
    ju_Collections_EMPTY_ITERATOR = new ju_Collections$4;
    ju_Collections_EMPTY_LIST_ITERATOR = new ju_Collections$5;
    ju_Collections_reverseOrder = new ju_Collections$_clinit_$lambda$_59_0;
    nms_Score_field_96658_a = new nms_ScoreComparator;
    nms_MathHelper__clinit_();
    nms_BlockLeaves__clinit_();
    jl_AbstractStringBuilder$Constants__clinit_();
    otcit_FloatAnalyzer__clinit_();
    nms_BlockWood_woodType = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
    nms_BlockSapling_WOOD_TYPES = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
    nms_BlockLog_woodType = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
    nms_BlockSandStone__clinit_();
    nms_BlockBed__clinit_();
    nms_BlockTallGrass_grassTypes = $rt_wrapArray(jl_String, [$rt_s(76), $rt_s(77), $rt_s(78)]);
    nms_BlockStep__clinit_();
    nms_BlockStairs__clinit_();
    nms_EnumMobType__clinit_();
    nms_BlockRedstoneTorch__clinit_();
    nms_BlockRedstoneRepeater__clinit_();
    nms_BlockSilverfish_silverfishStoneTypes = $rt_wrapArray(jl_String, [$rt_s(79), $rt_s(80), $rt_s(81)]);
    nms_BlockStoneBrick__clinit_();
    nms_BlockMushroomCap_field_94429_a = $rt_wrapArray(jl_String, [$rt_s(82), $rt_s(83)]);
    nms_BlockWoodSlab_woodType = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
    nms_BlockWall_types = $rt_wrapArray(jl_String, [$rt_s(84), $rt_s(85)]);
    nms_BlockAnvil__clinit_();
    nms_BlockQuartz__clinit_();
    jul_Logger_loggerCache = ju_HashMap__init_();
    cjj_Deflate__clinit_();
    cjj_Tree__clinit_();
    cjj_CRC32__clinit_();
    var$2 = $rt_createArray(jl_String, 1);
    var$2.data[0] = $rt_s(86);
    nles_VFile_altPathSeperator = var$2;
    nms_EnumGameType__clinit_();
    nms_WorldType__clinit_();
    nms_MinecraftServer_mcServer = null;
    nms_RegionFile_emptySector = $rt_createByteArray(4096);
    ju_Calendar__clinit_();
    ju_GregorianCalendar__clinit_();
    otcit_DateTimeZoneProvider__clinit_();
    otcit_CachedDateTimeZone_cInfoCacheMask = 511;
    otcit_DateTimeZoneBuilder$RuleSet__clinit_();
    nms_CommandDifficulty_difficulties = $rt_wrapArray(jl_String, [$rt_s(87), $rt_s(88), $rt_s(89), $rt_s(90)]);
    nms_IBehaviorDispenseItem_itemDispenseBehaviorProvider = new nms_BehaviorDispenseItemProvider;
    cjj_Inflate_mark = $rt_createByteArrayFromData([0, 0, (-1), (-1)]);
    cjj_InfBlocks__clinit_();
    cjj_InfTree__clinit_();
    cjj_InfCodes__clinit_();
    nles_SkinsPlugin__clinit_();
    var$1 = new jnc_CodingErrorAction;
    var$1.$name11 = $rt_s(91);
    jnc_CodingErrorAction_IGNORE = var$1;
    var$1 = new jnc_CodingErrorAction;
    var$1.$name11 = $rt_s(92);
    jnc_CodingErrorAction_REPLACE = var$1;
    var$1 = new jnc_CodingErrorAction;
    var$1.$name11 = $rt_s(93);
    jnc_CodingErrorAction_REPORT = var$1;
    var$1 = new jnc_CoderResult;
    var$1.$kind = 0;
    var$1.$length2 = 0;
    jnc_CoderResult_UNDERFLOW = var$1;
    var$1 = new jnc_CoderResult;
    var$1.$kind = 1;
    var$1.$length2 = 0;
    jnc_CoderResult_OVERFLOW = var$1;
    var$1 = new jn_ByteOrder;
    var$1.$name15 = $rt_s(94);
    jn_ByteOrder_BIG_ENDIAN = var$1;
    var$1 = new jn_ByteOrder;
    var$1.$name15 = $rt_s(95);
    jn_ByteOrder_LITTLE_ENDIAN = var$1;
    jl_ThreadLocal_NULL = new jl_Object;
    nms_AxisAlignedBB_theAABBLocalPool = new nms_AABBLocalPool;
    nms_WorldProvider__clinit_();
    ju_TreeSet_VALUE = new jl_Object;
    nms_Packet3Chat_maxChatLength = 119;
    nms_Packet51MapChunk_temp = $rt_createByteArray(196864);
    nms_Packet52MultiBlockChange_field_73449_e = $rt_createByteArray(0);
    nms_Packet56MapChunks_chunkDataNotCompressed = $rt_createByteArray(0);
    var$2 = $rt_createArray(jl_String, 4);
    var$3 = var$2.data;
    var$3[0] = $rt_s(96);
    var$3[1] = null;
    var$3[2] = null;
    var$3[3] = $rt_s(97);
    nms_Packet70GameEvent_clientMessage = var$2;
    jl_Short_TYPE = $rt_cls($rt_shortcls);
    jul_Level__clinit_();
    nms_WorldGenBigTree__clinit_();
    var$1 = new nles_BooleanResult;
    var$1.$bool = 1;
    nles_BooleanResult_TRUE = var$1;
    var$1 = new nles_BooleanResult;
    var$1.$bool = 0;
    nles_BooleanResult_FALSE = var$1;
    nms_Chunk_totalBlockLightUpdates = 0;
    nms_EntityHorse__clinit_();
    nms_IMob_mobSelector = new nms_FilterIMob;
    nms_EntitySheep__clinit_();
    otcit_DoubleSynthesizer__clinit_();
    nms_TileEntityFurnace__clinit_();
    var$2 = $rt_createIntArray(1);
    var$2.data[0] = 3;
    nms_TileEntityBrewingStand_field_102017_a = var$2;
    nms_TileEntityBrewingStand_field_102016_b = $rt_createIntArrayFromData([0, 1, 2]);
    nms_IntCache__clinit_();
    nms_Facing__clinit_();
    var$1 = new nms_Vec3Pool;
    var$7 = new ju_ArrayList;
    var$7.$array = $rt_createArray(jl_Object, 10);
    var$1.$vec3Cache = var$7;
    var$1.$truncateArrayResetThreshold = (-1);
    var$1.$minimumSize = (-1);
    nms_Vec3_fakePool = var$1;
    nms_EnumEntitySize__clinit_();
    nms_IEntitySelector_selectAnything = new nms_EntitySelectorAlive;
    nms_IEntitySelector_selectInventories = new nms_EntitySelectorInventory;
    nms_EnumSkyBlock__clinit_();
    nms_Direction__clinit_();
    nms_EntityMinecart__clinit_();
    nms_EntityWither_attackEntitySelector = new nms_EntityWitherAttackFilter;
    nms_EnchantmentProtection__clinit_();
    nms_EnchantmentDamage__clinit_();
    nms_EnumMovingObjectType__clinit_();
    nms_DamageSource__clinit_();
    nms_EnumFacing__clinit_();
    nms_EnumArt__clinit_();
    nms_ChatAllowedCharacters__clinit_();
    nms_EnumCreatureAttribute__clinit_();
    nms_StructureNetherBridgePieces__clinit_();
    nms_StructureStrongholdPieces__clinit_();
    nms_EnumAction__clinit_();
    nms_EnumDoor__clinit_();
    nms_EnumStatus__clinit_();
    ji_FileOutputStream_ONE_BYTE_BUFER = $rt_createByteArray(1);
    nles_IntegratedServer_messageQueue = new ju_LinkedList;
    nles_IntegratedServer_currentProcess = null;
    nles_IntegratedServer_newWorldSettings = null;
    var$1 = new nles_EAGLogAgent;
    var$1.$logger = jul_Logger_getLogger($rt_s(98));
    nles_IntegratedServer_logger = var$1;
    nles_IntegratedServer_isRunning = 0;
},
nles_IntegratedServer_sendWorkerPacket$js_body$_8 = (var$1, var$2) => {
    postMessage({ ch : var$1, dat : var$2 });
},
nles_IntegratedServer_registerPacketHandler$js_body$_13 = var$1 => {
    onmessage = function(o) {
        var$1(o.data.ch, o.data.dat);
    };
},
jlr_AnnotatedElement = $rt_classWithoutFields(0),
jlr_Type = $rt_classWithoutFields(0);
function jl_Class() {
    let a = this; jl_Object.call(a);
    a.$name1 = null;
    a.$simpleName = null;
    a.$platformClass = null;
}
let jl_Class_getClass = var$1 => {
    let var$2;
    if (var$1 === null)
        return null;
    var$2 = var$1.classObject;
    if (var$2 === null) {
        var$2 = new jl_Class;
        var$2.$platformClass = var$1;
        var$1.classObject = var$2;
    }
    return var$2;
},
jl_Class_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = (!($this.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !($this.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
    if ($this.$name1 === null)
        $this.$name1 = $rt_str($this.$platformClass.$meta.name);
    var$2 = $this.$name1;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jl_Class_getSimpleName = $this => {
    let $simpleName, var$2, var$3, var$4, var$5, $lastDot, $lastDollar, var$8;
    $simpleName = $this.$simpleName;
    if ($simpleName === null) {
        var$2 = $this.$platformClass.$meta.item === null ? 0 : 1;
        a: {
            if (var$2) {
                $simpleName = jl_Class_getSimpleName(jl_Class_getComponentType($this));
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                var$2 = var$3.$length0;
                if ($simpleName === null)
                    $simpleName = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$3, var$2, $simpleName);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(101));
                $simpleName = new jl_String;
                var$4 = var$3.$buffer;
                var$5 = var$4.data;
                $lastDot = var$3.$length0;
                $lastDollar = var$5.length;
                if ($lastDot >= 0 && $lastDot <= ($lastDollar - 0 | 0)) {
                    $simpleName.$nativeString = $rt_charArrayToString(var$4.data, 0, $lastDot);
                    break a;
                }
                $simpleName = new jl_IndexOutOfBoundsException;
                $simpleName.$suppressionEnabled = 1;
                $simpleName.$writableStackTrace = 1;
                $rt_throw($simpleName);
            }
            var$8 = $this.$platformClass.$meta.enclosingClass;
            if (var$8 === null)
                $simpleName = null;
            else {
                $simpleName = var$8.classObject;
                if ($simpleName === null) {
                    $simpleName = new jl_Class;
                    $simpleName.$platformClass = var$8;
                    var$8.classObject = $simpleName;
                }
            }
            if ($simpleName !== null) {
                $simpleName = $rt_str($this.$platformClass.$meta.simpleName);
                if ($simpleName === null)
                    $simpleName = $rt_s(3);
            } else {
                $simpleName = $rt_str($this.$platformClass.$meta.name);
                $lastDollar = jl_String_lastIndexOf0($simpleName, 36, $simpleName.$nativeString.length - 1 | 0);
                if ($lastDollar == (-1)) {
                    $lastDot = jl_String_lastIndexOf0($simpleName, 46, $simpleName.$nativeString.length - 1 | 0);
                    if ($lastDot != (-1))
                        $simpleName = jl_String_substring($simpleName, $lastDot + 1 | 0, $simpleName.$nativeString.length);
                } else {
                    $simpleName = jl_String_substring($simpleName, $lastDollar + 1 | 0, $simpleName.$nativeString.length);
                    if (0 >= $simpleName.$nativeString.length) {
                        $simpleName = new jl_StringIndexOutOfBoundsException;
                        $simpleName.$suppressionEnabled = 1;
                        $simpleName.$writableStackTrace = 1;
                        $rt_throw($simpleName);
                    }
                    if ($simpleName.$nativeString.charCodeAt(0) >= 48) {
                        if (0 >= $simpleName.$nativeString.length) {
                            $simpleName = new jl_StringIndexOutOfBoundsException;
                            $simpleName.$suppressionEnabled = 1;
                            $simpleName.$writableStackTrace = 1;
                            $rt_throw($simpleName);
                        }
                        if ($simpleName.$nativeString.charCodeAt(0) <= 57)
                            $simpleName = $rt_s(3);
                    }
                }
            }
        }
        $this.$simpleName = $simpleName;
    }
    return $simpleName;
},
jl_Class_getComponentType = $this => {
    let var$1, var$2;
    var$1 = $this.$platformClass.$meta.item;
    if (var$1 === null)
        var$2 = null;
    else {
        var$2 = var$1.classObject;
        if (var$2 === null) {
            var$2 = new jl_Class;
            var$2.$platformClass = var$1;
            var$1.classObject = var$2;
        }
    }
    return var$2;
},
jl_Class_getSuperclass = $this => {
    let var$1, var$2;
    var$1 = $this.$platformClass.$meta.superclass;
    if (var$1 === null)
        var$2 = null;
    else {
        var$2 = var$1.classObject;
        if (var$2 === null) {
            var$2 = new jl_Class;
            var$2.$platformClass = var$1;
            var$1.classObject = var$2;
        }
    }
    return var$2;
},
jl_Class_newInstance = $this => {
    let $instance, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$instance = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $instance = $this.$platformClass;
        if (!otp_Platform_newInstancePrepared) {
            otp_Platform_prepareNewInstance();
            otp_Platform_newInstancePrepared = 1;
        }
        $ptr = 1;
    case 1:
        $tmp = otp_Platform_newInstanceImpl($instance);
        if ($rt_suspending()) {
            break main;
        }
        $instance = $tmp;
        if ($instance !== null)
            return $instance;
        $instance = new jl_InstantiationException;
        $instance.$suppressionEnabled = 1;
        $instance.$writableStackTrace = 1;
        $rt_throw($instance);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $instance, $ptr);
},
otji_JS = $rt_classWithoutFields(),
otji_JS__init_ = $this => {
    return;
},
otji_JS__init_0 = () => {
    let var_0 = new otji_JS();
    otji_JS__init_(var_0);
    return var_0;
},
otji_JS_function = (var$1, var$2) => {
    let name = 'jso$functor$' + var$2;
    let result = var$1[name];
    if (typeof result !== 'function') {
        let fn = function() {
            return var$1[var$2].apply(var$1, arguments);
        };
        result = () => fn;
        var$1[name] = result;
    }
    return result();
},
otp_Platform = $rt_classWithoutFields(),
otp_Platform_newInstancePrepared = 0,
otp_Platform__init_ = $this => {
    return;
},
otp_Platform__init_0 = () => {
    let var_0 = new otp_Platform();
    otp_Platform__init_(var_0);
    return var_0;
},
otp_Platform_clone = var$1 => {
    let copy = new var$1.constructor();
    for (let field in var$1) {
        if (var$1.hasOwnProperty(field)) {
            copy[field] = var$1[field];
        }
    }
    return copy;
},
otp_Platform_isAssignable = (var$1, $to) => {
    let $supertypes, $i;
    if (var$1 === $to)
        return 1;
    $supertypes = var$1.$meta.supertypes;
    $i = 0;
    while ($i < $supertypes.length) {
        if (otp_Platform_isAssignable($supertypes[$i], $to))
            return 1;
        $i = $i + 1 | 0;
    }
    return 0;
},
otp_Platform_prepareNewInstance = () => {
    let c = '$$constructor$$';
    jl_String[c] = jl_String__init_3;
    jl_Object[c] = jl_Object__init_;
    jl_RuntimeException[c] = jl_RuntimeException__init_;
    jl_ClassCastException[c] = jl_ClassCastException__init_;
    jl_StringBuilder[c] = jl_StringBuilder__init_0;
    jl_Exception[c] = jl_Exception__init_;
    nles_IntegratedServer[c] = nles_IntegratedServer__init_;
    nles_IntegratedServer$WorkerBinaryPacketHandlerImpl[c] = nles_IntegratedServer$WorkerBinaryPacketHandlerImpl__init_;
    nlesi_IPCPacketFFProcessKeepAlive[c] = nlesi_IPCPacketFFProcessKeepAlive__init_1;
    otji_JS[c] = otji_JS__init_;
    otp_Platform[c] = otp_Platform__init_;
    jl_Throwable[c] = jl_Throwable__init_;
    jl_AbstractStringBuilder[c] = jl_AbstractStringBuilder__init_;
    ju_LinkedList[c] = ju_LinkedList__init_0;
    nles_EAGLogAgent[c] = nles_EAGLogAgent__init_;
    jl_System[c] = jl_System__init_;
    otcic_JSStdoutPrintStream[c] = otcic_JSStdoutPrintStream__init_;
    ji_IOException[c] = ji_IOException__init_1;
    nles_SysUtil[c] = nles_SysUtil__init_;
    jl_String$_clinit_$lambda$_115_0[c] = jl_String$_clinit_$lambda$_115_0__init_;
    otci_IntegerUtil[c] = otci_IntegerUtil__init_;
    nlesi_IPCPacketManager[c] = nlesi_IPCPacketManager__init_;
    nlesi_IPCOutputStream[c] = nlesi_IPCOutputStream__init_;
    nles_TeaVMUtils[c] = nles_TeaVMUtils__init_;
    otcic_JSStderrPrintStream[c] = otcic_JSStderrPrintStream__init_0;
    ju_ArrayList[c] = ju_ArrayList__init_;
    nlesi_IPCPacket00StartServer[c] = nlesi_IPCPacket00StartServer__init_;
    nlesi_IPCPacket02InitWorld[c] = nlesi_IPCPacket02InitWorld__init_;
    nlesi_IPCPacket03DeleteWorld[c] = nlesi_IPCPacket03DeleteWorld__init_;
    nlesi_IPCPacket04RenameWorld[c] = nlesi_IPCPacket04RenameWorld__init_;
    nlesi_IPCPacket05RequestData[c] = nlesi_IPCPacket05RequestData__init_;
    nlesi_IPCPacket06RenameWorldNBT[c] = nlesi_IPCPacket06RenameWorldNBT__init_;
    nlesi_IPCPacket07ImportWorld[c] = nlesi_IPCPacket07ImportWorld__init_;
    nlesi_IPCPacket0ASetWorldDifficulty[c] = nlesi_IPCPacket0ASetWorldDifficulty__init_;
    nlesi_IPCPacket0BPause[c] = nlesi_IPCPacket0BPause__init_;
    nlesi_IPCPacket0CPlayerChannel[c] = nlesi_IPCPacket0CPlayerChannel__init_;
    nlesi_IPCPacket14StringList[c] = nlesi_IPCPacket14StringList__init_;
    nlesi_IPCPacket18ClearPlayers[c] = nlesi_IPCPacket18ClearPlayers__init_;
    nlesi_IPCPacket16NBTList[c] = nlesi_IPCPacket16NBTList__init_0;
    nms_NBTTagCompound[c] = nms_NBTTagCompound__init_0;
    nlesi_IPCPacket09RequestResponse[c] = nlesi_IPCPacket09RequestResponse__init_0;
    nles_SysUtil$1[c] = nles_SysUtil$1__init_;
    ji_ByteArrayOutputStream[c] = ji_ByteArrayOutputStream__init_2;
    ju_HashMap[c] = ju_HashMap__init_4;
    nlesi_IPCInputStream[c] = nlesi_IPCInputStream__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_0[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_0__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_1[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_1__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_2[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_2__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_3[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_3__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_4[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_4__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_5[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_5__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_6[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_6__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_7[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_7__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_8[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_8__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_9[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_9__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_10[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_10__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_11[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_11__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_12[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_12__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_13[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_13__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_14[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_14__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_15[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_15__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_16[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_16__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_17[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_17__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_18[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_18__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_19[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_19__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_20[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_20__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_21[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_21__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_22[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_22__init_;
    nlesi_IPCPacketManager$_clinit_$lambda$_27_23[c] = nlesi_IPCPacketManager$_clinit_$lambda$_27_23__init_;
    jl_IllegalStateException[c] = jl_IllegalStateException__init_0;
    jl_IllegalMonitorStateException[c] = jl_IllegalMonitorStateException__init_;
    nles_SYS[c] = nles_SYS__init_;
    nms_AchievementList[c] = nms_AchievementList__init_;
    nms_CompressedStreamTools[c] = nms_CompressedStreamTools__init_;
    nles_WorldConverterEPK[c] = nles_WorldConverterEPK__init_;
    nles_WorldConverterMCA[c] = nles_WorldConverterMCA__init_;
    jl_IndexOutOfBoundsException[c] = jl_IndexOutOfBoundsException__init_;
    jl_NullPointerException[c] = jl_NullPointerException__init_;
    jl_ArrayStoreException[c] = jl_ArrayStoreException__init_;
    nlesi_IPCPacket15ThrowException[c] = nlesi_IPCPacket15ThrowException__init_;
    nles_MessageChannel[c] = nles_MessageChannel__init_;
    ju_Objects[c] = ju_Objects__init_;
    jl_Object$Monitor[c] = jl_Object$Monitor__init_;
    jl_Thread[c] = jl_Thread__init_;
    jl_IllegalArgumentException[c] = jl_IllegalArgumentException__init_0;
    ju_TreeMap[c] = ju_TreeMap__init_;
    nlesi_IPCPacket0DProgressUpdate[c] = nlesi_IPCPacket0DProgressUpdate__init_;
    juz_Inflater[c] = juz_Inflater__init_;
    juz_CRC32[c] = juz_CRC32__init_;
    cjj_CRC32[c] = cjj_CRC32__init_;
    ju_Date[c] = ju_Date__init_;
    jt_SimpleDateFormat[c] = jt_SimpleDateFormat__init_0;
    juz_Deflater[c] = juz_Deflater__init_0;
    nms_ServerCommandManager[c] = nms_ServerCommandManager__init_;
    ju_HashSet[c] = ju_HashSet__init_0;
    jlr_Array[c] = jlr_Array__init_;
    jl_DefaultUncaughtExceptionHandler[c] = jl_DefaultUncaughtExceptionHandler__init_;
    ju_Properties[c] = ju_Properties__init_;
    nms_ItemStack[c] = nms_ItemStack__init_5;
    cjj_Inflater[c] = cjj_Inflater__init_0;
    ju_Arrays[c] = ju_Arrays__init_;
    nles_SHA1Digest[c] = nles_SHA1Digest__init_;
    ji_EOFException[c] = ji_EOFException__init_;
    jnc_StandardCharsets[c] = jnc_StandardCharsets__init_;
    jl_StringBuffer[c] = jl_StringBuffer__init_;
    cjj_Deflater[c] = cjj_Deflater__init_;
    nms_CommandHandler[c] = nms_CommandHandler__init_;
    nms_CommandTime[c] = nms_CommandTime__init_;
    nms_CommandGameMode[c] = nms_CommandGameMode__init_;
    nms_CommandDifficulty[c] = nms_CommandDifficulty__init_;
    nms_CommandDefaultGameMode[c] = nms_CommandDefaultGameMode__init_;
    nms_CommandKill[c] = nms_CommandKill__init_;
    nms_CommandToggleDownfall[c] = nms_CommandToggleDownfall__init_;
    nms_CommandWeather[c] = nms_CommandWeather__init_;
    nms_CommandXP[c] = nms_CommandXP__init_;
    nms_CommandServerTp[c] = nms_CommandServerTp__init_;
    nms_CommandGive[c] = nms_CommandGive__init_;
    nms_CommandEffect[c] = nms_CommandEffect__init_;
    nms_CommandEnchant[c] = nms_CommandEnchant__init_;
    nms_CommandServerEmote[c] = nms_CommandServerEmote__init_;
    nms_CommandShowSeed[c] = nms_CommandShowSeed__init_;
    nms_CommandHelp[c] = nms_CommandHelp__init_;
    nms_CommandDebug[c] = nms_CommandDebug__init_;
    nms_CommandServerMessage[c] = nms_CommandServerMessage__init_;
    nms_CommandServerSay[c] = nms_CommandServerSay__init_;
    nms_CommandSetSpawnpoint[c] = nms_CommandSetSpawnpoint__init_;
    nms_CommandGameRule[c] = nms_CommandGameRule__init_;
    nms_CommandClearInventory[c] = nms_CommandClearInventory__init_;
    nms_ServerCommandTestFor[c] = nms_ServerCommandTestFor__init_;
    nms_CommandSpreadPlayers[c] = nms_CommandSpreadPlayers__init_;
    nms_ServerCommandScoreboard[c] = nms_ServerCommandScoreboard__init_;
    jnci_UTF8Charset[c] = jnci_UTF8Charset__init_;
    nles_VirtualFilesystem$AsyncHandlers[c] = nles_VirtualFilesystem$AsyncHandlers__init_;
    ju_Hashtable[c] = ju_Hashtable__init_0;
    jl_NumberFormatException[c] = jl_NumberFormatException__init_;
    nle_EaglercraftRandom[c] = nle_EaglercraftRandom__init_;
    nms_TileEntitySign[c] = nms_TileEntitySign__init_;
    cjj_ZStream[c] = cjj_ZStream__init_0;
    nms_NBTTagEnd[c] = nms_NBTTagEnd__init_;
    cjj_GZIPException[c] = cjj_GZIPException__init_;
    jl_NegativeArraySizeException[c] = jl_NegativeArraySizeException__init_;
    jl_Math[c] = jl_Math__init_;
    jnci_AsciiCharset[c] = jnci_AsciiCharset__init_;
    jnci_Iso8859Charset[c] = jnci_Iso8859Charset__init_;
    jt_DateFormatSymbols[c] = jt_DateFormatSymbols__init_;
    nms_DispenserBehaviors[c] = nms_DispenserBehaviors__init_;
    nms_DispenserBehaviorArrow[c] = nms_DispenserBehaviorArrow__init_;
    nms_DispenserBehaviorEgg[c] = nms_DispenserBehaviorEgg__init_;
    nms_DispenserBehaviorSnowball[c] = nms_DispenserBehaviorSnowball__init_;
    nms_DispenserBehaviorExperience[c] = nms_DispenserBehaviorExperience__init_;
    nms_DispenserBehaviorPotion[c] = nms_DispenserBehaviorPotion__init_;
    nms_DispenserBehaviorMobEgg[c] = nms_DispenserBehaviorMobEgg__init_;
    nms_DispenserBehaviorFireworks[c] = nms_DispenserBehaviorFireworks__init_;
    nms_DispenserBehaviorFireball[c] = nms_DispenserBehaviorFireball__init_;
    nms_DispenserBehaviorBoat[c] = nms_DispenserBehaviorBoat__init_;
    nms_DispenserBehaviorFilledBucket[c] = nms_DispenserBehaviorFilledBucket__init_;
    nms_DispenserBehaviorEmptyBucket[c] = nms_DispenserBehaviorEmptyBucket__init_;
    nms_DispenserBehaviorFire[c] = nms_DispenserBehaviorFire__init_;
    nms_DispenserBehaviorDye[c] = nms_DispenserBehaviorDye__init_;
    nms_DispenserBehaviorTNT[c] = nms_DispenserBehaviorTNT__init_;
    nms_LowerStringMap[c] = nms_LowerStringMap__init_;
    ju_Comparator$NaturalOrder[c] = ju_Comparator$NaturalOrder__init_;
    nms_PotionHelper[c] = nms_PotionHelper__init_;
    nms_StatList[c] = nms_StatList__init_;
    jt_DecimalFormat[c] = jt_DecimalFormat__init_0;
    nms_TileEntity[c] = nms_TileEntity__init_;
    nms_BehaviorDefaultDispenseItem[c] = nms_BehaviorDefaultDispenseItem__init_;
    nms_NBTTagList[c] = nms_NBTTagList__init_;
    ju_LinkedHashMap[c] = ju_LinkedHashMap__init_0;
    ju_Hashtable$1[c] = ju_Hashtable$1__init_;
    ju_Hashtable$2[c] = ju_Hashtable$2__init_;
    nle_MD5Digest[c] = nle_MD5Digest__init_;
    nms_BehaviorDispenseArmor[c] = nms_BehaviorDispenseArmor__init_;
    nms_BehaviorDispenseMinecart[c] = nms_BehaviorDispenseMinecart__init_;
    nms_CraftingManager[c] = nms_CraftingManager__init_;
    nms_FurnaceRecipes[c] = nms_FurnaceRecipes__init_;
    jt_DecimalFormatSymbols[c] = jt_DecimalFormatSymbols__init_;
    nms_StatTypeSimple[c] = nms_StatTypeSimple__init_;
    nms_StatTypeTime[c] = nms_StatTypeTime__init_;
    nms_StatTypeDistance[c] = nms_StatTypeDistance__init_;
    nms_StatTypeFloat[c] = nms_StatTypeFloat__init_;
    cjj_Adler32[c] = cjj_Adler32__init_0;
    otciu_CLDRHelper[c] = otciu_CLDRHelper__init_;
    otpp_ResourceAccessor[c] = otpp_ResourceAccessor__init_;
    nms_SharedMonsterAttributes[c] = nms_SharedMonsterAttributes__init_;
    nms_StatCollector[c] = nms_StatCollector__init_;
    nms_RegistrySimple[c] = nms_RegistrySimple__init_;
    jl_CloneNotSupportedException[c] = jl_CloneNotSupportedException__init_;
    ju_GregorianCalendar[c] = ju_GregorianCalendar__init_1;
    cjj_Tree[c] = cjj_Tree__init_;
    otrf_VirtualFileSystemProvider[c] = otrf_VirtualFileSystemProvider__init_;
    cjj_InfTree[c] = cjj_InfTree__init_;
    otrfm_InMemoryVirtualFileSystem[c] = otrfm_InMemoryVirtualFileSystem__init_0;
    nms_RecipesTools[c] = nms_RecipesTools__init_;
    nms_RecipesWeapons[c] = nms_RecipesWeapons__init_;
    nms_RecipesIngots[c] = nms_RecipesIngots__init_;
    nms_RecipesFood[c] = nms_RecipesFood__init_;
    nms_RecipesCrafting[c] = nms_RecipesCrafting__init_;
    nms_RecipesArmor[c] = nms_RecipesArmor__init_;
    nms_RecipesDyes[c] = nms_RecipesDyes__init_;
    nms_RecipesArmorDyes[c] = nms_RecipesArmorDyes__init_;
    nms_RecipesMapCloning[c] = nms_RecipesMapCloning__init_;
    nms_RecipesMapExtending[c] = nms_RecipesMapExtending__init_;
    nms_RecipeFireworks[c] = nms_RecipeFireworks__init_;
    ju_Collections[c] = ju_Collections__init_;
    otcic_CurrencyHelper[c] = otcic_CurrencyHelper__init_;
    ju_Collections$1[c] = ju_Collections$1__init_;
    ju_Collections$2[c] = ju_Collections$2__init_;
    ju_Collections$3[c] = ju_Collections$3__init_;
    ju_Collections$4[c] = ju_Collections$4__init_;
    ju_Collections$5[c] = ju_Collections$5__init_;
    ju_Collections$_clinit_$lambda$_59_0[c] = ju_Collections$_clinit_$lambda$_59_0__init_;
    otcit_DateTimeZoneProvider[c] = otcit_DateTimeZoneProvider__init_;
    ju_PriorityQueue[c] = ju_PriorityQueue__init_;
    otcit_DateTimeZoneProvider$1[c] = otcit_DateTimeZoneProvider$1__init_;
    otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0[c] = otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0__init_;
    otci_Base46[c] = otci_Base46__init_;
    otcit_DateTimeZoneBuilder[c] = otcit_DateTimeZoneBuilder__init_;
    otcit_DateTimeZoneBuilder$RuleSet[c] = otcit_DateTimeZoneBuilder$RuleSet__init_;
    otciu_UnicodeHelper[c] = otciu_UnicodeHelper__init_;
    jl_StringIndexOutOfBoundsException[c] = jl_StringIndexOutOfBoundsException__init_0;
    nms_WorldInfo[c] = nms_WorldInfo__init_0;
    jl_ArrayIndexOutOfBoundsException[c] = jl_ArrayIndexOutOfBoundsException__init_;
    juz_ZipException[c] = juz_ZipException__init_;
    juz_DataFormatException[c] = juz_DataFormatException__init_;
    jl_AssertionError[c] = jl_AssertionError__init_;
    jt_DecimalFormatParser[c] = jt_DecimalFormatParser__init_;
    ju_NoSuchElementException[c] = ju_NoSuchElementException__init_;
    nles_SkinsPlugin[c] = nles_SkinsPlugin__init_;
    ju_Formatter[c] = ju_Formatter__init_;
    ju_IllegalFormatException[c] = ju_IllegalFormatException__init_;
    jur_Pattern[c] = jur_Pattern__init_;
    jl_Error[c] = jl_Error__init_;
    jnc_CharacterCodingException[c] = jnc_CharacterCodingException__init_;
    cjj_GZIPHeader[c] = cjj_GZIPHeader__init_;
    ji_UTFDataFormatException[c] = ji_UTFDataFormatException__init_;
    ju_FormatterClosedException[c] = ju_FormatterClosedException__init_;
    jnc_Charset$Charsets[c] = jnc_Charset$Charsets__init_;
    jur_AheadFSet[c] = jur_AheadFSet__init_;
    jur_FinalSet[c] = jur_FinalSet__init_;
    jur_NonCapJointSet[c] = jur_NonCapJointSet__init_;
    jur_JointSet[c] = jur_JointSet__init_;
    otji_JSWrapper$_clinit_$lambda$_33_0[c] = otji_JSWrapper$_clinit_$lambda$_33_0__init_;
    otji_JSWrapper$_clinit_$lambda$_33_1[c] = otji_JSWrapper$_clinit_$lambda$_33_1__init_;
    jur_CharClass[c] = jur_CharClass__init_;
    otjc_JSObjects[c] = otjc_JSObjects__init_;
    otjc_JSUndefined[c] = otjc_JSUndefined__init_;
    jur_FSet$PossessiveFSet[c] = jur_FSet$PossessiveFSet__init_;
    ju_BitSet[c] = ju_BitSet__init_;
    jur_SOLSet[c] = jur_SOLSet__init_0;
    jur_PreviousMatch[c] = jur_PreviousMatch__init_;
    jur_EOISet[c] = jur_EOISet__init_;
    jur_DotAllSet[c] = jur_DotAllSet__init_;
    jur_AbstractCharClass$PredefinedCharacterClasses[c] = jur_AbstractCharClass$PredefinedCharacterClasses__init_;
    jur_AbstractLineTerminator$1[c] = jur_AbstractLineTerminator$1__init_;
    jur_AbstractLineTerminator$2[c] = jur_AbstractLineTerminator$2__init_;
    jur_AbstractCharClass$LazySpace[c] = jur_AbstractCharClass$LazySpace__init_;
    jur_AbstractCharClass$LazyDigit[c] = jur_AbstractCharClass$LazyDigit__init_;
    jur_AbstractCharClass$LazyLower[c] = jur_AbstractCharClass$LazyLower__init_;
    jur_AbstractCharClass$LazyUpper[c] = jur_AbstractCharClass$LazyUpper__init_;
    jur_AbstractCharClass$LazyASCII[c] = jur_AbstractCharClass$LazyASCII__init_;
    jur_AbstractCharClass$LazyAlpha[c] = jur_AbstractCharClass$LazyAlpha__init_;
    jur_AbstractCharClass$LazyAlnum[c] = jur_AbstractCharClass$LazyAlnum__init_;
    jur_AbstractCharClass$LazyPunct[c] = jur_AbstractCharClass$LazyPunct__init_;
    jur_AbstractCharClass$LazyGraph[c] = jur_AbstractCharClass$LazyGraph__init_;
    jur_AbstractCharClass$LazyPrint[c] = jur_AbstractCharClass$LazyPrint__init_;
    jur_AbstractCharClass$LazyBlank[c] = jur_AbstractCharClass$LazyBlank__init_;
    jur_AbstractCharClass$LazyCntrl[c] = jur_AbstractCharClass$LazyCntrl__init_;
    jur_AbstractCharClass$LazyXDigit[c] = jur_AbstractCharClass$LazyXDigit__init_;
    jur_AbstractCharClass$LazyJavaLowerCase[c] = jur_AbstractCharClass$LazyJavaLowerCase__init_;
    jur_AbstractCharClass$LazyJavaUpperCase[c] = jur_AbstractCharClass$LazyJavaUpperCase__init_;
    jur_AbstractCharClass$LazyJavaWhitespace[c] = jur_AbstractCharClass$LazyJavaWhitespace__init_;
    jur_AbstractCharClass$LazyJavaMirrored[c] = jur_AbstractCharClass$LazyJavaMirrored__init_;
    jur_AbstractCharClass$LazyJavaDefined[c] = jur_AbstractCharClass$LazyJavaDefined__init_;
    jur_AbstractCharClass$LazyJavaDigit[c] = jur_AbstractCharClass$LazyJavaDigit__init_;
    jur_AbstractCharClass$LazyJavaIdentifierIgnorable[c] = jur_AbstractCharClass$LazyJavaIdentifierIgnorable__init_;
    jur_AbstractCharClass$LazyJavaISOControl[c] = jur_AbstractCharClass$LazyJavaISOControl__init_;
    jur_AbstractCharClass$LazyJavaJavaIdentifierPart[c] = jur_AbstractCharClass$LazyJavaJavaIdentifierPart__init_;
    jur_AbstractCharClass$LazyJavaJavaIdentifierStart[c] = jur_AbstractCharClass$LazyJavaJavaIdentifierStart__init_;
    jur_AbstractCharClass$LazyJavaLetter[c] = jur_AbstractCharClass$LazyJavaLetter__init_;
    jur_AbstractCharClass$LazyJavaLetterOrDigit[c] = jur_AbstractCharClass$LazyJavaLetterOrDigit__init_;
    jur_AbstractCharClass$LazyJavaSpaceChar[c] = jur_AbstractCharClass$LazyJavaSpaceChar__init_;
    jur_AbstractCharClass$LazyJavaTitleCase[c] = jur_AbstractCharClass$LazyJavaTitleCase__init_;
    jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart[c] = jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart__init_;
    jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart[c] = jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart__init_;
    jur_AbstractCharClass$LazyWord[c] = jur_AbstractCharClass$LazyWord__init_;
    jur_AbstractCharClass$LazyNonWord[c] = jur_AbstractCharClass$LazyNonWord__init_;
    jur_AbstractCharClass$LazyNonSpace[c] = jur_AbstractCharClass$LazyNonSpace__init_;
    jur_AbstractCharClass$LazyNonDigit[c] = jur_AbstractCharClass$LazyNonDigit__init_;
    jur_AbstractCharClass$LazySpecialsBlock[c] = jur_AbstractCharClass$LazySpecialsBlock__init_;
    jn_ReadOnlyBufferException[c] = jn_ReadOnlyBufferException__init_;
    jn_BufferOverflowException[c] = jn_BufferOverflowException__init_;
    jnc_BufferUnderflowException[c] = jnc_BufferUnderflowException__init_;
    jnc_BufferOverflowException[c] = jnc_BufferOverflowException__init_;
    jl_UnsupportedOperationException[c] = jl_UnsupportedOperationException__init_;
    jt_DecimalFormat$MinusField[c] = jt_DecimalFormat$MinusField__init_;
    ju_ConcurrentModificationException[c] = ju_ConcurrentModificationException__init_;
    jl_ArithmeticException[c] = jl_ArithmeticException__init_;
    jl_ThreadLocal[c] = jl_ThreadLocal__init_;
    nms_SpawnerAnimals[c] = nms_SpawnerAnimals__init_;
    nms_ServerBlockEventList[c] = nms_ServerBlockEventList__init_;
    nms_ServerBlockEvent[c] = nms_ServerBlockEvent__init_;
    nms_IntHashMap[c] = nms_IntHashMap__init_0;
    nms_Scoreboard[c] = nms_Scoreboard__init_;
    nms_WorldServer$_init_$lambda$_0_0[c] = nms_WorldServer$_init_$lambda$_0_0__init_;
    nms_MapStorage[c] = nms_MapStorage__init_;
    nms_ScoreboardSaveData[c] = nms_ScoreboardSaveData__init_;
    ju_TreeSet[c] = ju_TreeSet__init_;
    ju_LinkedList$Entry[c] = ju_LinkedList$Entry__init_;
    nles_VIteratorFile[c] = nles_VIteratorFile__init_;
    nles_VFSIterator$BreakLoop[c] = nles_VFSIterator$BreakLoop__init_;
    nlesi_IPCPacket0FListFiles[c] = nlesi_IPCPacket0FListFiles__init_;
    nlesi_IPCPacket10FileRead[c] = nlesi_IPCPacket10FileRead__init_;
    nlesi_IPCPacket01StopServer[c] = nlesi_IPCPacket01StopServer__init_;
    nlesi_IPCPacket13FileCopyMove[c] = nlesi_IPCPacket13FileCopyMove__init_;
    nlesi_IPCPacket17ConfigureLAN[c] = nlesi_IPCPacket17ConfigureLAN__init_;
    nlesi_IPCPacket12FileWrite[c] = nlesi_IPCPacket12FileWrite__init_;
    nlesi_IPCPacket0EListWorlds[c] = nlesi_IPCPacket0EListWorlds__init_;
    nms_AABBLocalPool[c] = nms_AABBLocalPool__init_;
    nms_Packet0KeepAlive[c] = nms_Packet0KeepAlive__init_;
    nms_Packet1Login[c] = nms_Packet1Login__init_;
    nms_Packet2ClientProtocol[c] = nms_Packet2ClientProtocol__init_;
    nms_Packet3Chat[c] = nms_Packet3Chat__init_;
    nms_Packet4UpdateTime[c] = nms_Packet4UpdateTime__init_;
    nms_Packet5PlayerInventory[c] = nms_Packet5PlayerInventory__init_;
    nms_Packet6SpawnPosition[c] = nms_Packet6SpawnPosition__init_;
    nms_Packet7UseEntity[c] = nms_Packet7UseEntity__init_;
    nms_Packet8UpdateHealth[c] = nms_Packet8UpdateHealth__init_;
    nms_Packet9Respawn[c] = nms_Packet9Respawn__init_;
    nms_Packet10Flying[c] = nms_Packet10Flying__init_;
    nms_Packet11PlayerPosition[c] = nms_Packet11PlayerPosition__init_;
    nms_Packet12PlayerLook[c] = nms_Packet12PlayerLook__init_;
    nms_Packet13PlayerLookMove[c] = nms_Packet13PlayerLookMove__init_;
    nms_Packet14BlockDig[c] = nms_Packet14BlockDig__init_;
    nms_Packet15Place[c] = nms_Packet15Place__init_;
    nms_Packet16BlockItemSwitch[c] = nms_Packet16BlockItemSwitch__init_;
    nms_Packet17Sleep[c] = nms_Packet17Sleep__init_;
    nms_Packet18Animation[c] = nms_Packet18Animation__init_;
    nms_Packet19EntityAction[c] = nms_Packet19EntityAction__init_;
    nms_Packet20NamedEntitySpawn[c] = nms_Packet20NamedEntitySpawn__init_;
    nms_Packet22Collect[c] = nms_Packet22Collect__init_;
    nms_Packet23VehicleSpawn[c] = nms_Packet23VehicleSpawn__init_1;
    nms_Packet24MobSpawn[c] = nms_Packet24MobSpawn__init_;
    nms_Packet25EntityPainting[c] = nms_Packet25EntityPainting__init_;
    nms_Packet26EntityExpOrb[c] = nms_Packet26EntityExpOrb__init_;
    nms_Packet27PlayerInput[c] = nms_Packet27PlayerInput__init_;
    nms_Packet28EntityVelocity[c] = nms_Packet28EntityVelocity__init_0;
    nms_Packet29DestroyEntity[c] = nms_Packet29DestroyEntity__init_;
    nms_Packet30Entity[c] = nms_Packet30Entity__init_;
    nms_Packet31RelEntityMove[c] = nms_Packet31RelEntityMove__init_;
    nms_Packet32EntityLook[c] = nms_Packet32EntityLook__init_;
    nms_Packet33RelEntityMoveLook[c] = nms_Packet33RelEntityMoveLook__init_;
    nms_Packet34EntityTeleport[c] = nms_Packet34EntityTeleport__init_;
    nms_Packet35EntityHeadRotation[c] = nms_Packet35EntityHeadRotation__init_;
    nms_Packet38EntityStatus[c] = nms_Packet38EntityStatus__init_;
    nms_Packet39AttachEntity[c] = nms_Packet39AttachEntity__init_;
    nms_Packet40EntityMetadata[c] = nms_Packet40EntityMetadata__init_;
    nms_Packet41EntityEffect[c] = nms_Packet41EntityEffect__init_1;
    nms_Packet42RemoveEntityEffect[c] = nms_Packet42RemoveEntityEffect__init_;
    nms_Packet43Experience[c] = nms_Packet43Experience__init_;
    nms_Packet44UpdateAttributes[c] = nms_Packet44UpdateAttributes__init_;
    nms_Packet51MapChunk[c] = nms_Packet51MapChunk__init_0;
    nms_Packet52MultiBlockChange[c] = nms_Packet52MultiBlockChange__init_;
    nms_Packet53BlockChange[c] = nms_Packet53BlockChange__init_;
    nms_Packet54PlayNoteBlock[c] = nms_Packet54PlayNoteBlock__init_;
    nms_Packet55BlockDestroy[c] = nms_Packet55BlockDestroy__init_;
    nms_Packet56MapChunks[c] = nms_Packet56MapChunks__init_0;
    nms_Packet60Explosion[c] = nms_Packet60Explosion__init_;
    nms_Packet61DoorChange[c] = nms_Packet61DoorChange__init_;
    nms_Packet62LevelSound[c] = nms_Packet62LevelSound__init_0;
    nms_Packet63WorldParticles[c] = nms_Packet63WorldParticles__init_;
    nms_Packet70GameEvent[c] = nms_Packet70GameEvent__init_;
    nms_Packet71Weather[c] = nms_Packet71Weather__init_;
    nms_Packet100OpenWindow[c] = nms_Packet100OpenWindow__init_;
    nms_Packet101CloseWindow[c] = nms_Packet101CloseWindow__init_;
    nms_Packet102WindowClick[c] = nms_Packet102WindowClick__init_;
    nms_Packet103SetSlot[c] = nms_Packet103SetSlot__init_;
    nms_Packet104WindowItems[c] = nms_Packet104WindowItems__init_0;
    nms_Packet105UpdateProgressbar[c] = nms_Packet105UpdateProgressbar__init_;
    nms_Packet106Transaction[c] = nms_Packet106Transaction__init_;
    nms_Packet107CreativeSetSlot[c] = nms_Packet107CreativeSetSlot__init_;
    nms_Packet108EnchantItem[c] = nms_Packet108EnchantItem__init_;
    nms_Packet130UpdateSign[c] = nms_Packet130UpdateSign__init_;
    nms_Packet131MapData[c] = nms_Packet131MapData__init_;
    nms_Packet132TileEntityData[c] = nms_Packet132TileEntityData__init_;
    nms_Packet133TileEditorOpen[c] = nms_Packet133TileEditorOpen__init_;
    nms_Packet200Statistic[c] = nms_Packet200Statistic__init_;
    nms_Packet201PlayerInfo[c] = nms_Packet201PlayerInfo__init_;
    nms_Packet202PlayerAbilities[c] = nms_Packet202PlayerAbilities__init_;
    nms_Packet203AutoComplete[c] = nms_Packet203AutoComplete__init_;
    nms_Packet204ClientInfo[c] = nms_Packet204ClientInfo__init_;
    nms_Packet205ClientCommand[c] = nms_Packet205ClientCommand__init_;
    nms_Packet206SetObjective[c] = nms_Packet206SetObjective__init_;
    nms_Packet207SetScore[c] = nms_Packet207SetScore__init_;
    nms_Packet208SetDisplayObjective[c] = nms_Packet208SetDisplayObjective__init_;
    nms_Packet209SetPlayerTeam[c] = nms_Packet209SetPlayerTeam__init_1;
    nms_Packet250CustomPayload[c] = nms_Packet250CustomPayload__init_;
    nms_Packet252SharedKey[c] = nms_Packet252SharedKey__init_;
    nms_Packet254ServerPing[c] = nms_Packet254ServerPing__init_;
    nms_Packet255KickDisconnect[c] = nms_Packet255KickDisconnect__init_;
    nms_WorldProviderHell[c] = nms_WorldProviderHell__init_;
    nms_WorldProviderSurface[c] = nms_WorldProviderSurface__init_;
    nms_WorldProviderEnd[c] = nms_WorldProviderEnd__init_;
    nms_World$_init_$lambda$_3_0[c] = nms_World$_init_$lambda$_3_0__init_;
    nms_LongHashMap[c] = nms_LongHashMap__init_;
    nles_EaglercraftRandom[c] = nles_EaglercraftRandom__init_;
    nms_GameRules[c] = nms_GameRules__init_0;
    jm_Multiplication[c] = jm_Multiplication__init_;
    nms_Village[c] = nms_Village__init_;
    nms_WorldChunkManager[c] = nms_WorldChunkManager__init_;
    nms_FlatGeneratorInfo[c] = nms_FlatGeneratorInfo__init_;
    jn_BufferUnderflowException[c] = jn_BufferUnderflowException__init_;
    jt_DecimalFormat$PerMillField[c] = jt_DecimalFormat$PerMillField__init_;
    jt_DecimalFormat$CurrencyField[c] = jt_DecimalFormat$CurrencyField__init_;
    jt_DecimalFormat$PercentField[c] = jt_DecimalFormat$PercentField__init_;
    ju_WeakHashMap[c] = ju_WeakHashMap__init_;
    nms_MathHelper[c] = nms_MathHelper__init_;
    jlr_ReferenceQueue[c] = jlr_ReferenceQueue__init_;
    nms_WorldGenSwamp[c] = nms_WorldGenSwamp__init_;
    nms_WorldGenBigMushroom[c] = nms_WorldGenBigMushroom__init_;
    nms_WorldGenReed[c] = nms_WorldGenReed__init_;
    nms_WorldGenCactus[c] = nms_WorldGenCactus__init_;
    nms_WorldGenWaterlily[c] = nms_WorldGenWaterlily__init_;
    jm_BitLevel[c] = jm_BitLevel__init_;
    jm_Elementary[c] = jm_Elementary__init_;
    jm_Division[c] = jm_Division__init_;
    nms_MapGenNetherBridge[c] = nms_MapGenNetherBridge__init_;
    nms_MapGenCavesHell[c] = nms_MapGenCavesHell__init_;
    nms_MapGenBase[c] = nms_MapGenBase__init_;
    nms_MapGenCaves[c] = nms_MapGenCaves__init_;
    nms_MapGenStronghold[c] = nms_MapGenStronghold__init_0;
    nms_MapGenVillage[c] = nms_MapGenVillage__init_;
    nms_MapGenMineshaft[c] = nms_MapGenMineshaft__init_;
    nms_MapGenScatteredFeature[c] = nms_MapGenScatteredFeature__init_;
    nms_MapGenRavine[c] = nms_MapGenRavine__init_;
    jt_DecimalFormat$Constants[c] = jt_DecimalFormat$Constants__init_;
    otcit_DoubleAnalyzer[c] = otcit_DoubleAnalyzer__init_;
    otcit_DoubleAnalyzer$Result[c] = otcit_DoubleAnalyzer$Result__init_;
    nms_NoiseGeneratorPerlin[c] = nms_NoiseGeneratorPerlin__init_1;
    jl_AbstractStringBuilder$Constants[c] = jl_AbstractStringBuilder$Constants__init_;
    otcit_FloatAnalyzer[c] = otcit_FloatAnalyzer__init_;
    otcit_FloatAnalyzer$Result[c] = otcit_FloatAnalyzer$Result__init_;
    otcit_DoubleSynthesizer[c] = otcit_DoubleSynthesizer__init_;
    nms_TileEntityFurnace[c] = nms_TileEntityFurnace__init_;
    nms_TileEntityChest[c] = nms_TileEntityChest__init_;
    nms_TileEntityEnderChest[c] = nms_TileEntityEnderChest__init_;
    nms_TileEntityRecordPlayer[c] = nms_TileEntityRecordPlayer__init_;
    nms_TileEntityDispenser[c] = nms_TileEntityDispenser__init_;
    nms_TileEntityDropper[c] = nms_TileEntityDropper__init_;
    nms_TileEntityMobSpawner[c] = nms_TileEntityMobSpawner__init_;
    nms_TileEntityNote[c] = nms_TileEntityNote__init_;
    nms_TileEntityPiston[c] = nms_TileEntityPiston__init_;
    nms_TileEntityBrewingStand[c] = nms_TileEntityBrewingStand__init_;
    nms_TileEntityEnchantmentTable[c] = nms_TileEntityEnchantmentTable__init_;
    nms_TileEntityEndPortal[c] = nms_TileEntityEndPortal__init_;
    nms_TileEntityCommandBlock[c] = nms_TileEntityCommandBlock__init_;
    nms_TileEntityBeacon[c] = nms_TileEntityBeacon__init_;
    nms_TileEntitySkull[c] = nms_TileEntitySkull__init_;
    nms_TileEntityDaylightDetector[c] = nms_TileEntityDaylightDetector__init_;
    nms_TileEntityHopper[c] = nms_TileEntityHopper__init_;
    nms_TileEntityComparator[c] = nms_TileEntityComparator__init_;
    jm_Conversion[c] = jm_Conversion__init_;
    nms_ChunkCoordinates[c] = nms_ChunkCoordinates__init_;
    nms_IntCache[c] = nms_IntCache__init_;
    nms_Facing[c] = nms_Facing__init_;
    nms_EntityAITasks[c] = nms_EntityAITasks__init_0;
    nms_DataWatcher[c] = nms_DataWatcher__init_;
    nms_ScoreComparator[c] = nms_ScoreComparator__init_;
    nms_EntityZombieINNER1[c] = nms_EntityZombieINNER1__init_;
    nms_Direction[c] = nms_Direction__init_;
    nms_WeightedRandom[c] = nms_WeightedRandom__init_;
    nms_EntityList[c] = nms_EntityList__init_;
    nms_EntityList$_clinit_$lambda$_63_0[c] = nms_EntityList$_clinit_$lambda$_63_0__init_;
    nms_EntityList$_clinit_$lambda$_63_1[c] = nms_EntityList$_clinit_$lambda$_63_1__init_;
    nms_EntityList$_clinit_$lambda$_63_2[c] = nms_EntityList$_clinit_$lambda$_63_2__init_;
    nms_EntityList$_clinit_$lambda$_63_3[c] = nms_EntityList$_clinit_$lambda$_63_3__init_;
    nms_EntityList$_clinit_$lambda$_63_4[c] = nms_EntityList$_clinit_$lambda$_63_4__init_;
    nms_EntityList$_clinit_$lambda$_63_5[c] = nms_EntityList$_clinit_$lambda$_63_5__init_;
    nms_EntityList$_clinit_$lambda$_63_6[c] = nms_EntityList$_clinit_$lambda$_63_6__init_;
    nms_EntityList$_clinit_$lambda$_63_7[c] = nms_EntityList$_clinit_$lambda$_63_7__init_;
    nms_EntityList$_clinit_$lambda$_63_8[c] = nms_EntityList$_clinit_$lambda$_63_8__init_;
    nms_EntityList$_clinit_$lambda$_63_9[c] = nms_EntityList$_clinit_$lambda$_63_9__init_;
    nms_EntityList$_clinit_$lambda$_63_10[c] = nms_EntityList$_clinit_$lambda$_63_10__init_;
    nms_EntityList$_clinit_$lambda$_63_11[c] = nms_EntityList$_clinit_$lambda$_63_11__init_;
    nms_EntityList$_clinit_$lambda$_63_12[c] = nms_EntityList$_clinit_$lambda$_63_12__init_;
    nms_EntityList$_clinit_$lambda$_63_13[c] = nms_EntityList$_clinit_$lambda$_63_13__init_;
    nms_EntityList$_clinit_$lambda$_63_14[c] = nms_EntityList$_clinit_$lambda$_63_14__init_;
    nms_EntityList$_clinit_$lambda$_63_15[c] = nms_EntityList$_clinit_$lambda$_63_15__init_;
    nms_EntityList$_clinit_$lambda$_63_16[c] = nms_EntityList$_clinit_$lambda$_63_16__init_;
    nms_EntityList$_clinit_$lambda$_63_17[c] = nms_EntityList$_clinit_$lambda$_63_17__init_;
    nms_EntityList$_clinit_$lambda$_63_18[c] = nms_EntityList$_clinit_$lambda$_63_18__init_;
    nms_EntityList$_clinit_$lambda$_63_19[c] = nms_EntityList$_clinit_$lambda$_63_19__init_;
    nms_EntityList$_clinit_$lambda$_63_20[c] = nms_EntityList$_clinit_$lambda$_63_20__init_;
    nms_EntityList$_clinit_$lambda$_63_21[c] = nms_EntityList$_clinit_$lambda$_63_21__init_;
    nms_EntityList$_clinit_$lambda$_63_22[c] = nms_EntityList$_clinit_$lambda$_63_22__init_;
    nms_EntityList$_clinit_$lambda$_63_23[c] = nms_EntityList$_clinit_$lambda$_63_23__init_;
    nms_EntityList$_clinit_$lambda$_63_24[c] = nms_EntityList$_clinit_$lambda$_63_24__init_;
    nms_EntityList$_clinit_$lambda$_63_25[c] = nms_EntityList$_clinit_$lambda$_63_25__init_;
    nms_EntityList$_clinit_$lambda$_63_26[c] = nms_EntityList$_clinit_$lambda$_63_26__init_;
    nms_EntityList$_clinit_$lambda$_63_27[c] = nms_EntityList$_clinit_$lambda$_63_27__init_;
    nms_EntityList$_clinit_$lambda$_63_28[c] = nms_EntityList$_clinit_$lambda$_63_28__init_;
    nms_EntityList$_clinit_$lambda$_63_29[c] = nms_EntityList$_clinit_$lambda$_63_29__init_;
    nms_EntityList$_clinit_$lambda$_63_30[c] = nms_EntityList$_clinit_$lambda$_63_30__init_;
    nms_EntityList$_clinit_$lambda$_63_31[c] = nms_EntityList$_clinit_$lambda$_63_31__init_;
    nms_EntityList$_clinit_$lambda$_63_32[c] = nms_EntityList$_clinit_$lambda$_63_32__init_;
    nms_EntityList$_clinit_$lambda$_63_33[c] = nms_EntityList$_clinit_$lambda$_63_33__init_;
    nms_EntityList$_clinit_$lambda$_63_34[c] = nms_EntityList$_clinit_$lambda$_63_34__init_;
    nms_EntityList$_clinit_$lambda$_63_35[c] = nms_EntityList$_clinit_$lambda$_63_35__init_;
    nms_EntityList$_clinit_$lambda$_63_36[c] = nms_EntityList$_clinit_$lambda$_63_36__init_;
    nms_EntityList$_clinit_$lambda$_63_37[c] = nms_EntityList$_clinit_$lambda$_63_37__init_;
    nms_EntityList$_clinit_$lambda$_63_38[c] = nms_EntityList$_clinit_$lambda$_63_38__init_;
    nms_EntityList$_clinit_$lambda$_63_39[c] = nms_EntityList$_clinit_$lambda$_63_39__init_;
    nms_EntityList$_clinit_$lambda$_63_40[c] = nms_EntityList$_clinit_$lambda$_63_40__init_;
    nms_EntityList$_clinit_$lambda$_63_41[c] = nms_EntityList$_clinit_$lambda$_63_41__init_;
    nms_EntityList$_clinit_$lambda$_63_42[c] = nms_EntityList$_clinit_$lambda$_63_42__init_;
    nms_EntityList$_clinit_$lambda$_63_43[c] = nms_EntityList$_clinit_$lambda$_63_43__init_;
    nms_EntityList$_clinit_$lambda$_63_44[c] = nms_EntityList$_clinit_$lambda$_63_44__init_;
    nms_EntityList$_clinit_$lambda$_63_45[c] = nms_EntityList$_clinit_$lambda$_63_45__init_;
    nms_EntityList$_clinit_$lambda$_63_46[c] = nms_EntityList$_clinit_$lambda$_63_46__init_;
    nms_EntityList$_clinit_$lambda$_63_47[c] = nms_EntityList$_clinit_$lambda$_63_47__init_;
    nms_EntityList$_clinit_$lambda$_63_48[c] = nms_EntityList$_clinit_$lambda$_63_48__init_;
    nms_EntityList$_clinit_$lambda$_63_49[c] = nms_EntityList$_clinit_$lambda$_63_49__init_;
    nms_EntityList$_clinit_$lambda$_63_50[c] = nms_EntityList$_clinit_$lambda$_63_50__init_;
    nms_EntityList$_clinit_$lambda$_63_51[c] = nms_EntityList$_clinit_$lambda$_63_51__init_;
    nms_EntityList$_clinit_$lambda$_63_52[c] = nms_EntityList$_clinit_$lambda$_63_52__init_;
    nms_FilterIMob[c] = nms_FilterIMob__init_;
    nms_ServersideAttributeMap[c] = nms_ServersideAttributeMap__init_0;
    nms_PlayerCapabilities[c] = nms_PlayerCapabilities__init_;
    nms_EnchantmentHelper[c] = nms_EnchantmentHelper__init_;
    jl_StrictMath[c] = jl_StrictMath__init_;
    nms_InventoryEnderChest[c] = nms_InventoryEnderChest__init_;
    nms_FoodStats[c] = nms_FoodStats__init_;
    nms_BehaviorDispenseItemProvider[c] = nms_BehaviorDispenseItemProvider__init_;
    nms_EnchantmentModifierDamage[c] = nms_EnchantmentModifierDamage__init_;
    nms_EnchantmentModifierLiving[c] = nms_EnchantmentModifierLiving__init_;
    nms_InventoryCraftResult[c] = nms_InventoryCraftResult__init_;
    nms_EntitySelectorAlive[c] = nms_EntitySelectorAlive__init_;
    nms_EntitySelectorInventory[c] = nms_EntitySelectorInventory__init_;
    nms_EntityWitherAttackFilter[c] = nms_EntityWitherAttackFilter__init_;
    nms_EntityHorseBredSelector[c] = nms_EntityHorseBredSelector__init_;
    jl_InstantiationException[c] = jl_InstantiationException__init_;
    nms_SpiderEffectsGroupData[c] = nms_SpiderEffectsGroupData__init_;
    jl_ReflectiveOperationException[c] = jl_ReflectiveOperationException__init_;
    nms_MerchantRecipeList[c] = nms_MerchantRecipeList__init_;
    nms_Path[c] = nms_Path__init_;
    nms_Packet51MapChunkData[c] = nms_Packet51MapChunkData__init_;
    nms_WorldGenFire[c] = nms_WorldGenFire__init_;
    nms_WorldGenGlowStone1[c] = nms_WorldGenGlowStone1__init_;
    nms_WorldGenGlowStone2[c] = nms_WorldGenGlowStone2__init_;
    nms_WorldGenDungeons[c] = nms_WorldGenDungeons__init_;
    nms_ItemMap$getMapData$lambda$_2_0[c] = nms_ItemMap$getMapData$lambda$_2_0__init_;
    nms_ChatAllowedCharacters[c] = nms_ChatAllowedCharacters__init_;
    nms_StringUtils[c] = nms_StringUtils__init_;
    nms_MapGenStructure$func_143027_a$lambda$_9_0[c] = nms_MapGenStructure$func_143027_a$lambda$_9_0__init_;
    nms_MapGenStructureIO[c] = nms_MapGenStructureIO__init_;
    ju_Random[c] = ju_Random__init_;
    nms_StructureMineshaftStart[c] = nms_StructureMineshaftStart__init_;
    nms_StructureVillageStart[c] = nms_StructureVillageStart__init_;
    nms_StructureNetherBridgeStart[c] = nms_StructureNetherBridgeStart__init_;
    nms_StructureStrongholdStart[c] = nms_StructureStrongholdStart__init_;
    nms_StructureScatteredFeatureStart[c] = nms_StructureScatteredFeatureStart__init_;
    nms_StructureMineshaftPieces[c] = nms_StructureMineshaftPieces__init_;
    nms_ComponentMineshaftCorridor[c] = nms_ComponentMineshaftCorridor__init_;
    nms_ComponentMineshaftCross[c] = nms_ComponentMineshaftCross__init_;
    nms_ComponentMineshaftRoom[c] = nms_ComponentMineshaftRoom__init_;
    nms_ComponentMineshaftStairs[c] = nms_ComponentMineshaftStairs__init_;
    nms_StructureVillagePieces[c] = nms_StructureVillagePieces__init_;
    nms_ComponentVillageHouse1[c] = nms_ComponentVillageHouse1__init_;
    nms_ComponentVillageField[c] = nms_ComponentVillageField__init_;
    nms_ComponentVillageField2[c] = nms_ComponentVillageField2__init_;
    nms_ComponentVillageTorch[c] = nms_ComponentVillageTorch__init_;
    nms_ComponentVillageHall[c] = nms_ComponentVillageHall__init_;
    nms_ComponentVillageHouse4_Garden[c] = nms_ComponentVillageHouse4_Garden__init_;
    nms_ComponentVillageWoodHut[c] = nms_ComponentVillageWoodHut__init_;
    nms_ComponentVillageChurch[c] = nms_ComponentVillageChurch__init_;
    nms_ComponentVillageHouse2[c] = nms_ComponentVillageHouse2__init_;
    nms_ComponentVillageStartPiece[c] = nms_ComponentVillageStartPiece__init_;
    nms_ComponentVillagePathGen[c] = nms_ComponentVillagePathGen__init_;
    nms_ComponentVillageHouse3[c] = nms_ComponentVillageHouse3__init_;
    nms_ComponentVillageWell[c] = nms_ComponentVillageWell__init_;
    nms_StructureNetherBridgePieces[c] = nms_StructureNetherBridgePieces__init_;
    nms_ComponentNetherBridgeCrossing3[c] = nms_ComponentNetherBridgeCrossing3__init_0;
    nms_ComponentNetherBridgeEnd[c] = nms_ComponentNetherBridgeEnd__init_;
    nms_ComponentNetherBridgeStraight[c] = nms_ComponentNetherBridgeStraight__init_;
    nms_ComponentNetherBridgeCorridor3[c] = nms_ComponentNetherBridgeCorridor3__init_;
    nms_ComponentNetherBridgeCorridor4[c] = nms_ComponentNetherBridgeCorridor4__init_;
    nms_ComponentNetherBridgeEntrance[c] = nms_ComponentNetherBridgeEntrance__init_;
    nms_ComponentNetherBridgeCrossing2[c] = nms_ComponentNetherBridgeCrossing2__init_;
    nms_ComponentNetherBridgeCorridor[c] = nms_ComponentNetherBridgeCorridor__init_;
    nms_ComponentNetherBridgeCorridor5[c] = nms_ComponentNetherBridgeCorridor5__init_;
    nms_ComponentNetherBridgeCorridor2[c] = nms_ComponentNetherBridgeCorridor2__init_;
    nms_ComponentNetherBridgeNetherStalkRoom[c] = nms_ComponentNetherBridgeNetherStalkRoom__init_;
    nms_ComponentNetherBridgeThrone[c] = nms_ComponentNetherBridgeThrone__init_;
    nms_ComponentNetherBridgeCrossing[c] = nms_ComponentNetherBridgeCrossing__init_;
    nms_ComponentNetherBridgeStairs[c] = nms_ComponentNetherBridgeStairs__init_;
    nms_ComponentNetherBridgeStartPiece[c] = nms_ComponentNetherBridgeStartPiece__init_;
    nms_StructureStrongholdPieces[c] = nms_StructureStrongholdPieces__init_;
    nms_ComponentStrongholdChestCorridor[c] = nms_ComponentStrongholdChestCorridor__init_;
    nms_ComponentStrongholdCorridor[c] = nms_ComponentStrongholdCorridor__init_;
    nms_ComponentStrongholdCrossing[c] = nms_ComponentStrongholdCrossing__init_;
    nms_ComponentStrongholdLeftTurn[c] = nms_ComponentStrongholdLeftTurn__init_;
    nms_ComponentStrongholdLibrary[c] = nms_ComponentStrongholdLibrary__init_;
    nms_ComponentStrongholdPortalRoom[c] = nms_ComponentStrongholdPortalRoom__init_;
    nms_ComponentStrongholdPrison[c] = nms_ComponentStrongholdPrison__init_;
    nms_ComponentStrongholdRoomCrossing[c] = nms_ComponentStrongholdRoomCrossing__init_;
    nms_ComponentStrongholdStairs[c] = nms_ComponentStrongholdStairs__init_0;
    nms_ComponentStrongholdStairs2[c] = nms_ComponentStrongholdStairs2__init_;
    nms_ComponentStrongholdStraight[c] = nms_ComponentStrongholdStraight__init_;
    nms_ComponentStrongholdStairsStraight[c] = nms_ComponentStrongholdStairsStraight__init_;
    nms_ComponentScatteredFeaturePieces[c] = nms_ComponentScatteredFeaturePieces__init_;
    nms_ComponentScatteredFeatureDesertPyramid[c] = nms_ComponentScatteredFeatureDesertPyramid__init_;
    nms_ComponentScatteredFeatureJunglePyramid[c] = nms_ComponentScatteredFeatureJunglePyramid__init_;
    nms_ComponentScatteredFeatureSwampHut[c] = nms_ComponentScatteredFeatureSwampHut__init_;
    nms_StructureStrongholdStones[c] = nms_StructureStrongholdStones__init_;
    nms_StructureBoundingBox[c] = nms_StructureBoundingBox__init_0;
    nms_WorldGenDesertWells[c] = nms_WorldGenDesertWells__init_;
    nms_WorldGenVines[c] = nms_WorldGenVines__init_;
    nms_RandomPositionGenerator[c] = nms_RandomPositionGenerator__init_;
    nms_EnumEntitySizeHelper[c] = nms_EnumEntitySizeHelper__init_;
    nms_StructureScatteredFeatureStones[c] = nms_StructureScatteredFeatureStones__init_;
    nms_ComponentScatteredFeaturePieces2[c] = nms_ComponentScatteredFeaturePieces2__init_;
    nms_CommandNotFoundException[c] = nms_CommandNotFoundException__init_;
    nms_SyntaxErrorException[c] = nms_SyntaxErrorException__init_;
    nms_PlayerSelector[c] = nms_PlayerSelector__init_;
    nms_PlayerNotFoundException[c] = nms_PlayerNotFoundException__init_;
    nms_NumberInvalidException[c] = nms_NumberInvalidException__init_0;
    nms_CommandSpreadPlayersPosition[c] = nms_CommandSpreadPlayersPosition__init_;
    nms_WorldGenPumpkin[c] = nms_WorldGenPumpkin__init_0;
    nms_WorldGenTaiga1[c] = nms_WorldGenTaiga1__init_;
    nms_EnumDoorHelper[c] = nms_EnumDoorHelper__init_;
    ji_FileNotFoundException[c] = ji_FileNotFoundException__init_;
},
otp_Platform_newInstanceImpl = var$1 => {
    let thread = $rt_nativeThread();
    if ($rt_resuming()) {
        let r = thread.pop();
        var$1.$$constructor$$(r);
        if ($rt_suspending()) {
            return thread.push(r);
        }
        return r;
    }
    if (!var$1.hasOwnProperty("$$constructor$$")) {
        return null;
    }
    let r = new var$1();
    var$1.$$constructor$$(r);
    if ($rt_suspending()) {
        thread.push(r);
    }
    return r;
},
otp_Platform_getEnumConstants = var$1 => {
    let c = '$$enumConstants$$';
    nms_EnumGameType[c] = nms_EnumGameType_values;
    nms_EnumToolMaterial[c] = nms_EnumToolMaterial_values;
    nms_EnumArmorMaterial[c] = nms_EnumArmorMaterial_values;
    nms_EnumMobType[c] = nms_EnumMobType_values;
    nms_EnumEnchantmentType[c] = nms_EnumEnchantmentType_values;
    jm_RoundingMode[c] = jm_RoundingMode_values;
    nms_EnumCreatureType[c] = nms_EnumCreatureType_values;
    nms_EnumEntitySize[c] = nms_EnumEntitySize_values;
    nms_EnumSkyBlock[c] = nms_EnumSkyBlock_values;
    nms_EnumChatFormatting[c] = nms_EnumChatFormatting_values;
    nms_EnumMovingObjectType[c] = nms_EnumMovingObjectType_values;
    nms_EnumFacing[c] = nms_EnumFacing_values;
    nms_EnumArt[c] = nms_EnumArt_values;
    nms_EnumCreatureAttribute[c] = nms_EnumCreatureAttribute_values;
    nms_EnumAction[c] = nms_EnumAction_values;
    nms_EnumDoor[c] = nms_EnumDoor_values;
    nms_EnumStatus[c] = nms_EnumStatus_values;
    otp_Platform_getEnumConstants = cls => {
        if (!cls.hasOwnProperty(c)) {
            return null;
        }
        if (typeof cls[c] === "function") {
            cls[c] = cls[c]();
        }
        return cls[c];
    };
    return otp_Platform_getEnumConstants(var$1);
},
otp_Platform_launchThread = var$1 => {
    var$1.$run();
},
otp_Platform_schedule = (var$1, var$2) => {
    setTimeout(() => {
        otp_Platform_launchThread(var$1);
    }, var$2);
},
otp_Platform_isPrimitive = var$1 => {
    return var$1.$meta.primitive ? 1 : 0;
},
otp_Platform_getName = $cls => {
    return $rt_str($cls.$meta.name);
},
otp_Platform_createQueueJs$js_body$_30 = () => {
    return [];
};
function jl_Throwable() {
    let a = this; jl_Object.call(a);
    a.$message = null;
    a.$cause = null;
    a.$suppressionEnabled = 0;
    a.$writableStackTrace = 0;
    a.$suppressed = null;
    a.$stackTrace0 = null;
}
let jl_Throwable__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_Throwable__init_4 = () => {
    let var_0 = new jl_Throwable();
    jl_Throwable__init_(var_0);
    return var_0;
},
jl_Throwable__init_0 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
jl_Throwable__init_3 = var_0 => {
    let var_1 = new jl_Throwable();
    jl_Throwable__init_0(var_1, var_0);
    return var_1;
},
jl_Throwable__init_1 = ($this, $message, $cause) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
    $this.$cause = $cause;
},
jl_Throwable__init_2 = (var_0, var_1) => {
    let var_2 = new jl_Throwable();
    jl_Throwable__init_1(var_2, var_0, var_1);
    return var_2;
},
jl_Throwable_fillInStackTrace = $this => {
    return $this;
},
jl_Throwable_getMessage = $this => {
    return $this.$message;
},
jl_Throwable_getLocalizedMessage = $this => {
    return $this.$getMessage();
},
jl_Throwable_getCause = $this => {
    let var$1;
    var$1 = $this.$cause;
    if (var$1 === $this)
        var$1 = null;
    return var$1;
},
jl_Throwable_toString = $this => {
    let $message, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $message = $this.$getMessage();
    var$2 = $this.constructor;
    if (var$2 === null)
        var$3 = null;
    else {
        var$3 = var$2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$2;
            var$2.classObject = var$3;
        }
    }
    if (var$3.$name1 === null)
        var$3.$name1 = $rt_str(var$3.$platformClass.$meta.name);
    var$3 = var$3.$name1;
    if ($message === null)
        var$2 = $rt_s(3);
    else {
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(102));
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $message);
        var$2 = new jl_String;
        var$5 = var$4.$buffer;
        var$6 = var$5.data;
        var$7 = var$4.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0))
            var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        else {
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
    }
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    var$9 = var$4.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$4, var$9, var$3);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$2);
    var$2 = new jl_String;
    var$5 = var$4.$buffer;
    var$6 = var$5.data;
    var$7 = var$4.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$2;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jl_Throwable_printStackTrace0 = $this => {
    let var$1, var$2;
    if (jl_System_errCache === null) {
        var$1 = new otcic_JSStderrPrintStream;
        var$2 = new ji_ByteArrayOutputStream;
        var$2.$buf = $rt_createByteArray(32);
        var$1.$out0 = var$2;
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        var$1.$sb = var$2;
        var$1.$buffer0 = $rt_createCharArray(32);
        var$1.$autoFlush = 0;
        var$1.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_errCache = var$1;
    }
    jl_Throwable_printStackTrace($this, jl_System_errCache);
},
jl_Throwable_printStackTrace = ($this, $stream) => {
    let var$2, $message, var$4, var$5, var$6, var$7, var$8, var$9, $element;
    var$2 = $this.constructor;
    if (var$2 === null)
        $message = null;
    else {
        $message = var$2.classObject;
        if ($message === null) {
            $message = new jl_Class;
            $message.$platformClass = var$2;
            var$2.classObject = $message;
        }
    }
    if ($message.$name1 === null)
        $message.$name1 = $rt_str($message.$platformClass.$meta.name);
    var$2 = $message.$name1;
    if (var$2 === null)
        var$2 = $rt_s(1);
    $rt_putStderr($rt_ustr(var$2));
    $message = $this.$getMessage();
    if ($message !== null) {
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(102));
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $message);
        var$4 = new jl_String;
        var$5 = var$2.$buffer;
        var$6 = var$5.data;
        var$7 = var$2.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            $rt_putStderr($rt_ustr(var$4));
        } else {
            $stream = new jl_IndexOutOfBoundsException;
            $stream.$suppressionEnabled = 1;
            $stream.$writableStackTrace = 1;
            $rt_throw($stream);
        }
    }
    a: {
        $rt_putStderr("\n");
        var$5 = $this.$stackTrace0;
        if (var$5 !== null) {
            var$5 = var$5.data;
            var$9 = var$5.length;
            var$7 = 0;
            while (true) {
                if (var$7 >= var$9)
                    break a;
                $element = var$5[var$7];
                $rt_putStderr("\tat ");
                var$2 = $rt_s(1);
                if ($element !== null)
                    var$2 = $element.$toString();
                if (var$2 === null)
                    var$2 = $rt_s(1);
                $rt_putStderr($rt_ustr(var$2));
                $rt_putStderr("\n");
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$2 = $this.$cause;
    if (var$2 !== null && var$2 !== $this) {
        $rt_putStderr("Caused by: ");
        jl_Throwable_printStackTrace($this.$cause, $stream);
    }
},
jl_Throwable_getStackTrace = $this => {
    let var$1;
    var$1 = $this.$stackTrace0;
    return var$1 !== null ? var$1.$clone0() : $rt_createArray(jl_StackTraceElement, 0);
},
jl_Throwable_addSuppressed = ($this, $exception) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    if (!$this.$suppressionEnabled)
        return;
    var$2 = $this.$suppressed;
    var$3 = var$2.data;
    var$4 = var$3.length;
    var$5 = var$4 + 1 | 0;
    var$6 = var$2.constructor;
    if (var$6 === null)
        var$7 = null;
    else {
        var$7 = var$6.classObject;
        if (var$7 === null) {
            var$7 = new jl_Class;
            var$7.$platformClass = var$6;
            var$6.classObject = var$7;
        }
    }
    var$7 = jl_Class_getComponentType(var$7);
    if (var$7 === null) {
        $exception = new jl_NullPointerException;
        $exception.$suppressionEnabled = 1;
        $exception.$writableStackTrace = 1;
        $rt_throw($exception);
    }
    if (var$7 === $rt_cls($rt_voidcls)) {
        $exception = new jl_IllegalArgumentException;
        $exception.$suppressionEnabled = 1;
        $exception.$writableStackTrace = 1;
        $rt_throw($exception);
    }
    if (var$5 < 0) {
        $exception = new jl_NegativeArraySizeException;
        $exception.$suppressionEnabled = 1;
        $exception.$writableStackTrace = 1;
        $rt_throw($exception);
    }
    var$8 = jlr_Array_newInstanceImpl(var$7.$platformClass, var$5);
    if (var$5 < var$4)
        var$4 = var$5;
    var$9 = 0;
    while (var$9 < var$4) {
        var$8.data[var$9] = var$3[var$9];
        var$9 = var$9 + 1 | 0;
    }
    var$2 = var$8;
    var$3 = var$2.data;
    $this.$suppressed = var$2;
    var$3[var$3.length - 1 | 0] = $exception;
},
jl_Exception = $rt_classWithoutFields(jl_Throwable),
jl_Exception__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_Exception__init_1 = () => {
    let var_0 = new jl_Exception();
    jl_Exception__init_(var_0);
    return var_0;
},
jl_Exception__init_0 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
jl_Exception__init_2 = var_0 => {
    let var_1 = new jl_Exception();
    jl_Exception__init_0(var_1, var_0);
    return var_1;
},
jl_RuntimeException = $rt_classWithoutFields(jl_Exception),
jl_RuntimeException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_RuntimeException__init_3 = () => {
    let var_0 = new jl_RuntimeException();
    jl_RuntimeException__init_(var_0);
    return var_0;
},
jl_RuntimeException__init_1 = ($this, $message, $cause) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
    $this.$cause = $cause;
},
jl_RuntimeException__init_4 = (var_0, var_1) => {
    let var_2 = new jl_RuntimeException();
    jl_RuntimeException__init_1(var_2, var_0, var_1);
    return var_2;
},
jl_RuntimeException__init_0 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
jl_RuntimeException__init_2 = var_0 => {
    let var_1 = new jl_RuntimeException();
    jl_RuntimeException__init_0(var_1, var_0);
    return var_1;
},
jl_ClassCastException = $rt_classWithoutFields(jl_RuntimeException),
jl_ClassCastException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_ClassCastException__init_0 = () => {
    let var_0 = new jl_ClassCastException();
    jl_ClassCastException__init_(var_0);
    return var_0;
},
ji_Serializable = $rt_classWithoutFields(0),
jl_Comparable = $rt_classWithoutFields(0),
jl_CharSequence = $rt_classWithoutFields(0);
function jl_String() {
    jl_Object.call(this);
    this.$hashCode1 = 0;
}
let jl_String_EMPTY_CHARS = null,
jl_String_EMPTY = null,
jl_String_CASE_INSENSITIVE_ORDER = null,
jl_String__init_3 = $this => {
    $this.$nativeString = "";
},
jl_String__init_6 = () => {
    let var_0 = new jl_String();
    jl_String__init_3(var_0);
    return var_0;
},
jl_String__init_1 = ($this, $characters) => {
    $this.$nativeString = $rt_charArrayToString($characters.data, 0, $characters.data.length);
},
jl_String__init_ = var_0 => {
    let var_1 = new jl_String();
    jl_String__init_1(var_1, var_0);
    return var_1;
},
jl_String__init_5 = (var$0, var$1) => {
    var$0.$nativeString = var$1;
},
jl_String__init_0 = var_0 => {
    let var_1 = new jl_String();
    jl_String__init_5(var_1, var_0);
    return var_1;
},
jl_String__init_4 = (var$0, var$1, $offset, $count) => {
    let var$4, var$5;
    var$4 = var$1.data.length;
    if ($offset >= 0 && $count >= 0 && $count <= (var$4 - $offset | 0)) {
        var$0.$nativeString = $rt_charArrayToString(var$1.data, $offset, $count);
        return;
    }
    var$5 = new jl_IndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
jl_String__init_2 = (var_0, var_1, var_2) => {
    let var_3 = new jl_String();
    jl_String__init_4(var_3, var_0, var_1, var_2);
    return var_3;
},
jl_String_charAt = ($this, $index) => {
    let var$2;
    if ($index >= 0 && $index < $this.$nativeString.length)
        return $this.$nativeString.charCodeAt($index);
    var$2 = new jl_StringIndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jl_String_length = $this => {
    return $this.$nativeString.length;
},
jl_String_compareTo0 = ($this, $anotherString) => {
    let $l, $l_0, $i, $a, $b;
    if ($this === $anotherString)
        return 0;
    $l = $this.$nativeString.length;
    $l_0 = $anotherString.$nativeString.length;
    if ($l < $l_0)
        $l_0 = $l;
    $i = 0;
    a: {
        b: {
            while (true) {
                if ($i >= $l_0)
                    return $this.$nativeString.length - $anotherString.$nativeString.length | 0;
                if ($i < 0)
                    break a;
                if ($i >= $this.$nativeString.length)
                    break a;
                $a = $this.$nativeString.charCodeAt($i);
                if ($i < 0)
                    break b;
                if ($i >= $anotherString.$nativeString.length)
                    break b;
                $b = $a - $anotherString.$nativeString.charCodeAt($i) | 0;
                if ($b)
                    break;
                $i = $i + 1 | 0;
            }
            return $b;
        }
        $anotherString = new jl_StringIndexOutOfBoundsException;
        $anotherString.$suppressionEnabled = 1;
        $anotherString.$writableStackTrace = 1;
        $rt_throw($anotherString);
    }
    $anotherString = new jl_StringIndexOutOfBoundsException;
    $anotherString.$suppressionEnabled = 1;
    $anotherString.$writableStackTrace = 1;
    $rt_throw($anotherString);
},
jl_String_compareToIgnoreCase = ($this, $anotherString) => {
    let $l, $l_0, $i, $b, $a;
    if ($this === $anotherString)
        return 0;
    $l = $this.$nativeString.length;
    $l_0 = $anotherString.$nativeString.length;
    if ($l < $l_0)
        $l_0 = $l;
    $i = 0;
    a: {
        b: {
            while (true) {
                if ($i >= $l_0)
                    return $this.$nativeString.length - $anotherString.$nativeString.length | 0;
                if ($i < 0)
                    break a;
                if ($i >= $this.$nativeString.length)
                    break a;
                $b = $this.$nativeString.charCodeAt($i);
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                $a = jl_Character_mapChar(jl_Character_lowerCaseMapping, $b) & 65535;
                if ($i < 0)
                    break b;
                if ($i >= $anotherString.$nativeString.length)
                    break b;
                $b = $anotherString.$nativeString.charCodeAt($i);
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                $b = $a - (jl_Character_mapChar(jl_Character_lowerCaseMapping, $b) & 65535) | 0;
                if ($b)
                    break;
                $i = $i + 1 | 0;
            }
            return $b;
        }
        $anotherString = new jl_StringIndexOutOfBoundsException;
        $anotherString.$suppressionEnabled = 1;
        $anotherString.$writableStackTrace = 1;
        $rt_throw($anotherString);
    }
    $anotherString = new jl_StringIndexOutOfBoundsException;
    $anotherString.$suppressionEnabled = 1;
    $anotherString.$writableStackTrace = 1;
    $rt_throw($anotherString);
},
jl_String_startsWith = ($this, $prefix, $toffset) => {
    let $i, var$4, var$5;
    if (($toffset + $prefix.$nativeString.length | 0) > $this.$nativeString.length)
        return 0;
    $i = 0;
    a: {
        b: {
            while ($i < $prefix.$nativeString.length) {
                if ($i < 0)
                    break a;
                if ($i >= $prefix.$nativeString.length)
                    break a;
                var$4 = $prefix.$nativeString.charCodeAt($i);
                var$5 = $toffset + 1 | 0;
                if ($toffset < 0)
                    break b;
                if ($toffset >= $this.$nativeString.length)
                    break b;
                if (var$4 != $this.$nativeString.charCodeAt($toffset))
                    return 0;
                $i = $i + 1 | 0;
                $toffset = var$5;
            }
            return 1;
        }
        $prefix = new jl_StringIndexOutOfBoundsException;
        $prefix.$suppressionEnabled = 1;
        $prefix.$writableStackTrace = 1;
        $rt_throw($prefix);
    }
    $prefix = new jl_StringIndexOutOfBoundsException;
    $prefix.$suppressionEnabled = 1;
    $prefix.$writableStackTrace = 1;
    $rt_throw($prefix);
},
jl_String_startsWith0 = ($this, $prefix) => {
    if ($this === $prefix)
        return 1;
    return jl_String_startsWith($this, $prefix, 0);
},
jl_String_regionMatches = ($this, $ignoreCase, $toffset, $other, $ooffset, $len) => {
    let $i, var$7, $a, var$9, $b;
    if ($toffset >= 0 && $ooffset >= 0 && ($toffset + $len | 0) <= $this.$nativeString.length && ($ooffset + $len | 0) <= $other.$nativeString.length) {
        $i = 0;
        a: {
            b: {
                while ($i < $len) {
                    var$7 = $toffset + 1 | 0;
                    if ($toffset < 0)
                        break a;
                    if ($toffset >= $this.$nativeString.length)
                        break a;
                    $a = $this.$nativeString.charCodeAt($toffset);
                    var$9 = $ooffset + 1 | 0;
                    if ($ooffset < 0)
                        break b;
                    if ($ooffset >= $other.$nativeString.length)
                        break b;
                    $b = $other.$nativeString.charCodeAt($ooffset);
                    if ($ignoreCase) {
                        if (jl_Character_lowerCaseMapping === null) {
                            if (jl_Character_$$metadata$$0 === null)
                                jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                            jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                        }
                        $a = jl_Character_mapChar(jl_Character_lowerCaseMapping, $a) & 65535;
                        if (jl_Character_lowerCaseMapping === null) {
                            if (jl_Character_$$metadata$$0 === null)
                                jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                            jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                        }
                        $b = jl_Character_mapChar(jl_Character_lowerCaseMapping, $b) & 65535;
                    }
                    if ($a != $b)
                        return 0;
                    $i = $i + 1 | 0;
                    $toffset = var$7;
                    $ooffset = var$9;
                }
                return 1;
            }
            $other = new jl_StringIndexOutOfBoundsException;
            $other.$suppressionEnabled = 1;
            $other.$writableStackTrace = 1;
            $rt_throw($other);
        }
        $other = new jl_StringIndexOutOfBoundsException;
        $other.$suppressionEnabled = 1;
        $other.$writableStackTrace = 1;
        $rt_throw($other);
    }
    return 0;
},
jl_String_endsWith = ($this, $suffix) => {
    let $j, $i, var$4, var$5;
    if ($this === $suffix)
        return 1;
    if ($suffix.$nativeString.length > $this.$nativeString.length)
        return 0;
    $j = 0;
    $i = $this.$nativeString.length - $suffix.$nativeString.length | 0;
    a: {
        b: {
            while ($i < $this.$nativeString.length) {
                if ($i < 0)
                    break a;
                if ($i >= $this.$nativeString.length)
                    break a;
                var$4 = $this.$nativeString.charCodeAt($i);
                var$5 = $j + 1 | 0;
                if ($j < 0)
                    break b;
                if ($j >= $suffix.$nativeString.length)
                    break b;
                if (var$4 != $suffix.$nativeString.charCodeAt($j))
                    return 0;
                $i = $i + 1 | 0;
                $j = var$5;
            }
            return 1;
        }
        $suffix = new jl_StringIndexOutOfBoundsException;
        $suffix.$suppressionEnabled = 1;
        $suffix.$writableStackTrace = 1;
        $rt_throw($suffix);
    }
    $suffix = new jl_StringIndexOutOfBoundsException;
    $suffix.$suppressionEnabled = 1;
    $suffix.$writableStackTrace = 1;
    $rt_throw($suffix);
},
jl_String_indexOf = ($this, $ch, $i) => {
    let $bmpChar, $hi, $lo;
    if (0 > $i)
        $i = 0;
    if ($ch < 65536) {
        $bmpChar = $ch & 65535;
        while (true) {
            if ($i >= $this.$nativeString.length)
                return (-1);
            if ($this.$nativeString.charCodeAt($i) == $bmpChar)
                break;
            $i = $i + 1 | 0;
        }
        return $i;
    }
    $hi = (55296 | ($ch - 65536 | 0) >> 10 & 1023) & 65535;
    $lo = (56320 | $ch & 1023) & 65535;
    while (true) {
        if ($i >= ($this.$nativeString.length - 1 | 0))
            return (-1);
        if ($this.$nativeString.charCodeAt($i) == $hi && $this.$nativeString.charCodeAt(($i + 1 | 0)) == $lo)
            break;
        $i = $i + 1 | 0;
    }
    return $i;
},
jl_String_lastIndexOf0 = ($this, $ch, $fromIndex) => {
    let $i, $bmpChar, $hi, $lo;
    $i = $this.$nativeString.length - 1 | 0;
    if ($fromIndex < $i)
        $i = $fromIndex;
    if ($ch < 65536) {
        $bmpChar = $ch & 65535;
        while (true) {
            if ($i < 0)
                return (-1);
            if ($this.$nativeString.charCodeAt($i) == $bmpChar)
                break;
            $i = $i + (-1) | 0;
        }
        return $i;
    }
    $hi = (55296 | ($ch - 65536 | 0) >> 10 & 1023) & 65535;
    $lo = (56320 | $ch & 1023) & 65535;
    while (true) {
        if ($i < 1)
            return (-1);
        if ($this.$nativeString.charCodeAt($i) == $lo) {
            $ch = $i - 1 | 0;
            if ($this.$nativeString.charCodeAt($ch) == $hi)
                break;
        }
        $i = $i + (-1) | 0;
    }
    return $ch;
},
jl_String_indexOf0 = ($this, $str, $i) => {
    let $toIndex, $j, var$5, var$6;
    if (0 > $i)
        $i = 0;
    $toIndex = $this.$nativeString.length - $str.$nativeString.length | 0;
    a: {
        b: {
            c: while (true) {
                if ($i > $toIndex)
                    return (-1);
                $j = 0;
                while (true) {
                    if ($j >= $str.$nativeString.length)
                        break c;
                    var$5 = $i + $j | 0;
                    if (var$5 < 0)
                        break a;
                    if (var$5 >= $this.$nativeString.length)
                        break a;
                    var$6 = $this.$nativeString.charCodeAt(var$5);
                    if ($j < 0)
                        break b;
                    if ($j >= $str.$nativeString.length)
                        break b;
                    if (var$6 != $str.$nativeString.charCodeAt($j))
                        break;
                    $j = $j + 1 | 0;
                }
                $i = $i + 1 | 0;
            }
            return $i;
        }
        $str = new jl_StringIndexOutOfBoundsException;
        $str.$suppressionEnabled = 1;
        $str.$writableStackTrace = 1;
        $rt_throw($str);
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
},
jl_String_lastIndexOf1 = ($this, $str, $fromIndex) => {
    let $i, $j, var$5;
    $i = $this.$nativeString.length - $str.$nativeString.length | 0;
    if ($fromIndex < $i)
        $i = $fromIndex;
    a: {
        b: {
            c: while (true) {
                if ($i < 0)
                    return (-1);
                $j = 0;
                while (true) {
                    if ($j >= $str.$nativeString.length)
                        break c;
                    var$5 = $i + $j | 0;
                    if (var$5 < 0)
                        break a;
                    if (var$5 >= $this.$nativeString.length)
                        break a;
                    var$5 = $this.$nativeString.charCodeAt(var$5);
                    if ($j < 0)
                        break b;
                    if ($j >= $str.$nativeString.length)
                        break b;
                    if (var$5 != $str.$nativeString.charCodeAt($j))
                        break;
                    $j = $j + 1 | 0;
                }
                $i = $i + (-1) | 0;
            }
            return $i;
        }
        $str = new jl_StringIndexOutOfBoundsException;
        $str.$suppressionEnabled = 1;
        $str.$writableStackTrace = 1;
        $rt_throw($str);
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
},
jl_String_lastIndexOf = ($this, $str) => {
    return jl_String_lastIndexOf1($this, $str, $this.$nativeString.length);
},
jl_String_substring = ($this, $beginIndex, $endIndex) => {
    let $length, var$4, var$5;
    $length = $this.$nativeString.length;
    var$4 = $rt_compare($beginIndex, $endIndex);
    if (!var$4)
        return jl_String_EMPTY;
    if (!$beginIndex && $endIndex == $length)
        return $this;
    if ($beginIndex >= 0 && var$4 <= 0 && $endIndex <= $length)
        return jl_String__init_0($this.$nativeString.substring($beginIndex, $endIndex));
    var$5 = new jl_StringIndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
jl_String_substring0 = ($this, $beginIndex) => {
    return jl_String_substring($this, $beginIndex, $this.$nativeString.length);
},
jl_String_contains = ($this, $s) => {
    let $sz, $i, $j, var$5;
    $sz = $this.$nativeString.length - $s.$nativeString.length | 0;
    $i = 0;
    a: {
        b: {
            while ($i <= $sz) {
                $j = 0;
                while (true) {
                    if ($j >= $s.$nativeString.length)
                        return 1;
                    var$5 = $i + $j | 0;
                    if (var$5 < 0)
                        break a;
                    if (var$5 >= $this.$nativeString.length)
                        break a;
                    var$5 = $this.$nativeString.charCodeAt(var$5);
                    if ($j < 0)
                        break b;
                    if ($j >= $s.$nativeString.length)
                        break b;
                    if (var$5 != $s.$nativeString.charCodeAt($j))
                        break;
                    $j = $j + 1 | 0;
                }
                $i = $i + 1 | 0;
            }
            return 0;
        }
        $s = new jl_StringIndexOutOfBoundsException;
        $s.$suppressionEnabled = 1;
        $s.$writableStackTrace = 1;
        $rt_throw($s);
    }
    $s = new jl_StringIndexOutOfBoundsException;
    $s.$suppressionEnabled = 1;
    $s.$writableStackTrace = 1;
    $rt_throw($s);
},
jl_String_replace = ($this, $target, $replacement) => {
    let $sb, $i, $sz, var$6, var$7, var$8, var$9, $j;
    if ($target === $replacement)
        return $this;
    if ($target.$nativeString.length ? 0 : 1) {
        $sb = new jl_StringBuilder;
        $sb.$buffer = $rt_createCharArray(16);
        $i = 0;
        while (true) {
            if ($i >= $this.$nativeString.length) {
                $sz = $sb.$length0;
                if ($replacement === null)
                    $replacement = $rt_s(1);
                jl_AbstractStringBuilder_insert($sb, $sz, $replacement);
                $target = new jl_String;
                var$6 = $sb.$buffer;
                var$7 = var$6.data;
                $i = $sb.$length0;
                var$8 = var$7.length;
                if ($i >= 0 && $i <= (var$8 - 0 | 0)) {
                    $target.$nativeString = $rt_charArrayToString(var$6.data, 0, $i);
                    return $target;
                }
                $target = new jl_IndexOutOfBoundsException;
                $target.$suppressionEnabled = 1;
                $target.$writableStackTrace = 1;
                $rt_throw($target);
            }
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $replacement === null ? $rt_s(1) : $replacement);
            if ($i < 0)
                break;
            if ($i >= $this.$nativeString.length)
                break;
            var$8 = $this.$nativeString.charCodeAt($i);
            $sz = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, $sz, $sz + 1 | 0);
            $sb.$buffer.data[$sz] = var$8;
            $i = $i + 1 | 0;
        }
        $target = new jl_StringIndexOutOfBoundsException;
        $target.$suppressionEnabled = 1;
        $target.$writableStackTrace = 1;
        $rt_throw($target);
    }
    if ($target.$nativeString.length == 1 && $replacement.$nativeString.length == 1) {
        if (0 >= $target.$nativeString.length) {
            $target = new jl_StringIndexOutOfBoundsException;
            $target.$suppressionEnabled = 1;
            $target.$writableStackTrace = 1;
            $rt_throw($target);
        }
        var$8 = $target.$nativeString.charCodeAt(0);
        if (0 >= $replacement.$nativeString.length) {
            $target = new jl_StringIndexOutOfBoundsException;
            $target.$suppressionEnabled = 1;
            $target.$writableStackTrace = 1;
            $rt_throw($target);
        }
        a: {
            b: {
                $i = $replacement.$nativeString.charCodeAt(0);
                if (var$8 != $i) {
                    var$6 = $rt_createCharArray($this.$nativeString.length);
                    var$7 = var$6.data;
                    $sz = 0;
                    while ($sz < $this.$nativeString.length) {
                        if ($sz < 0)
                            break a;
                        if ($sz >= $this.$nativeString.length)
                            break a;
                        if ($this.$nativeString.charCodeAt($sz) == var$8)
                            var$9 = $i;
                        else {
                            if ($sz < 0)
                                break b;
                            if ($sz >= $this.$nativeString.length)
                                break b;
                            var$9 = $this.$nativeString.charCodeAt($sz);
                        }
                        var$7[$sz] = var$9;
                        $sz = $sz + 1 | 0;
                    }
                    $this = new jl_String;
                    $this.$nativeString = "";
                    $this.$nativeString = $rt_fullArrayToString(var$6.data);
                }
                return $this;
            }
            $target = new jl_StringIndexOutOfBoundsException;
            $target.$suppressionEnabled = 1;
            $target.$writableStackTrace = 1;
            $rt_throw($target);
        }
        $target = new jl_StringIndexOutOfBoundsException;
        $target.$suppressionEnabled = 1;
        $target.$writableStackTrace = 1;
        $rt_throw($target);
    }
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    $sz = $this.$nativeString.length - $target.$nativeString.length | 0;
    $i = 0;
    c: {
        d: {
            e: while (true) {
                if ($i > $sz) {
                    $target = jl_String_substring($this, $i, $this.$nativeString.length);
                    $sz = $sb.$length0;
                    if ($target === null)
                        $target = $rt_s(1);
                    jl_AbstractStringBuilder_insert($sb, $sz, $target);
                    $target = new jl_String;
                    var$6 = $sb.$buffer;
                    var$7 = var$6.data;
                    $i = $sb.$length0;
                    var$8 = var$7.length;
                    if ($i >= 0 && $i <= (var$8 - 0 | 0)) {
                        $target.$nativeString = $rt_charArrayToString(var$6.data, 0, $i);
                        return $target;
                    }
                    $target = new jl_IndexOutOfBoundsException;
                    $target.$suppressionEnabled = 1;
                    $target.$writableStackTrace = 1;
                    $rt_throw($target);
                }
                $j = 0;
                f: {
                    while ($j < $target.$nativeString.length) {
                        var$9 = $i + $j | 0;
                        if (var$9 < 0)
                            break d;
                        if (var$9 >= $this.$nativeString.length)
                            break d;
                        var$9 = $this.$nativeString.charCodeAt(var$9);
                        if ($j < 0)
                            break e;
                        if ($j >= $target.$nativeString.length)
                            break e;
                        if (var$9 != $target.$nativeString.charCodeAt($j)) {
                            if ($i < 0)
                                break c;
                            if ($i >= $this.$nativeString.length)
                                break c;
                            var$9 = $this.$nativeString.charCodeAt($i);
                            var$8 = $sb.$length0;
                            jl_AbstractStringBuilder_insertSpace($sb, var$8, var$8 + 1 | 0);
                            $sb.$buffer.data[var$8] = var$9;
                            break f;
                        }
                        $j = $j + 1 | 0;
                    }
                    jl_AbstractStringBuilder_insert($sb, $sb.$length0, $replacement === null ? $rt_s(1) : $replacement);
                    $i = $i + ($target.$nativeString.length - 1 | 0) | 0;
                }
                $i = $i + 1 | 0;
            }
            $target = new jl_StringIndexOutOfBoundsException;
            $target.$suppressionEnabled = 1;
            $target.$writableStackTrace = 1;
            $rt_throw($target);
        }
        $target = new jl_StringIndexOutOfBoundsException;
        $target.$suppressionEnabled = 1;
        $target.$writableStackTrace = 1;
        $rt_throw($target);
    }
    $target = new jl_StringIndexOutOfBoundsException;
    $target.$suppressionEnabled = 1;
    $target.$writableStackTrace = 1;
    $rt_throw($target);
},
jl_String_trim = $this => {
    let $lower, $upper, var$3;
    $lower = 0;
    $upper = $this.$nativeString.length - 1 | 0;
    a: {
        while (true) {
            if ($lower > $upper)
                break a;
            if ($lower < 0)
                break;
            if ($lower >= $this.$nativeString.length)
                break;
            if ($this.$nativeString.charCodeAt($lower) > 32)
                break a;
            $lower = $lower + 1 | 0;
        }
        var$3 = new jl_StringIndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    b: {
        while ($lower <= $upper) {
            if ($upper < 0)
                break b;
            if ($upper >= $this.$nativeString.length)
                break b;
            if ($this.$nativeString.charCodeAt($upper) > 32)
                break;
            $upper = $upper + (-1) | 0;
        }
        return jl_String_substring($this, $lower, $upper + 1 | 0);
    }
    var$3 = new jl_StringIndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
jl_String_toString = $this => {
    return $this;
},
jl_String_toCharArray = $this => {
    let $array, var$2, $i, var$4, var$5;
    $array = $rt_createCharArray($this.$nativeString.length);
    var$2 = $array.data;
    $i = 0;
    var$4 = var$2.length;
    a: {
        while ($i < var$4) {
            if ($i < 0)
                break a;
            if ($i >= $this.$nativeString.length)
                break a;
            var$2[$i] = $this.$nativeString.charCodeAt($i);
            $i = $i + 1 | 0;
        }
        return $array;
    }
    var$5 = new jl_StringIndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
jl_String_valueOf0 = $obj => {
    return $obj === null ? $rt_s(1) : $obj.$toString();
},
jl_String_valueOf = $i => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, $i, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jl_String_equals = ($this, $other) => {
    let $str;
    if ($this === $other)
        return 1;
    if (!($other instanceof jl_String))
        return 0;
    $str = $other;
    return $this.$nativeString !== $str.$nativeString ? 0 : 1;
},
jl_String_equalsIgnoreCase = ($this, $other) => {
    let $i, var$3, var$4;
    if ($this === $other)
        return 1;
    if ($other === null)
        return 0;
    if ($this.$nativeString.length != $other.$nativeString.length)
        return 0;
    $i = 0;
    a: {
        b: {
            while ($i < $this.$nativeString.length) {
                if ($i < 0)
                    break a;
                if ($i >= $this.$nativeString.length)
                    break a;
                var$3 = $this.$nativeString.charCodeAt($i);
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                var$4 = jl_Character_mapChar(jl_Character_lowerCaseMapping, var$3) & 65535;
                if ($i < 0)
                    break b;
                if ($i >= $other.$nativeString.length)
                    break b;
                var$3 = $other.$nativeString.charCodeAt($i);
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                if (var$4 != (jl_Character_mapChar(jl_Character_lowerCaseMapping, var$3) & 65535))
                    return 0;
                $i = $i + 1 | 0;
            }
            return 1;
        }
        $other = new jl_StringIndexOutOfBoundsException;
        $other.$suppressionEnabled = 1;
        $other.$writableStackTrace = 1;
        $rt_throw($other);
    }
    $other = new jl_StringIndexOutOfBoundsException;
    $other.$suppressionEnabled = 1;
    $other.$writableStackTrace = 1;
    $rt_throw($other);
},
jl_String_getBytes = ($this, $charset) => {
    let $result, var$3, $buffer, var$5, var$6, var$7, $$je;
    $result = $rt_fastStringToCharArray($this.$nativeString);
    var$3 = $result.data.length;
    $buffer = new jn_CharBufferOverArray;
    var$5 = 0 + var$3 | 0;
    $buffer.$mark0 = (-1);
    $buffer.$capacity = var$3;
    $buffer.$limit = var$3;
    $buffer.$position1 = 0;
    $buffer.$limit = var$5;
    $buffer.$start1 = 0;
    $buffer.$readOnly = 0;
    $buffer.$array0 = $result;
    a: {
        try {
            $buffer = jnc_CharsetEncoder_encode(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput($charset.$newEncoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $buffer);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jnc_CharacterCodingException) {
                $buffer = $$je;
            } else {
                throw $$e;
            }
        }
        var$6 = new jl_AssertionError;
        var$6.$suppressionEnabled = 1;
        var$6.$writableStackTrace = 1;
        var$6.$message = $rt_s(103);
        var$6.$cause = $buffer;
        $rt_throw(var$6);
    }
    var$7 = $buffer.$position1;
    if (!var$7 && $buffer.$limit == $buffer.$capacity)
        return $buffer.$array2;
    $result = $rt_createByteArray($buffer.$limit - var$7 | 0);
    jn_ByteBuffer_get($buffer, $result, 0, $result.data.length);
    return $result;
},
jl_String_hashCode = $this => {
    let $i;
    a: {
        if (!$this.$hashCode1) {
            $i = 0;
            while (true) {
                if ($i >= $this.$nativeString.length)
                    break a;
                $this.$hashCode1 = (31 * $this.$hashCode1 | 0) + $this.$nativeString.charCodeAt($i) | 0;
                $i = $i + 1 | 0;
            }
        }
    }
    return $this.$hashCode1;
},
jl_String_toLowerCase = $this => {
    let $lowerCase;
    $lowerCase = $this.$nativeString.toLowerCase();
    if ($lowerCase !== $this.$nativeString)
        $this = jl_String__init_0($lowerCase);
    return $this;
},
jl_String_split = ($this, $regex, $limit) => {
    return jur_Pattern_split(jur_Pattern_compile($regex, 0), $this, $limit);
},
jl_String_replaceAll = ($this, $regex, $replacement) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $regex = jur_Matcher__init_(jur_Pattern_compile($regex, 0), $this);
    var$3 = new jl_StringBuffer;
    var$3.$buffer = $rt_createCharArray(16);
    $regex.$leftBound0 = 0;
    var$4 = $regex.$string.$nativeString.length;
    $regex.$rightBound0 = var$4;
    var$5 = $regex.$matchResult;
    var$6 = $regex.$string;
    var$7 = $regex.$leftBound0;
    var$5.$valid = 0;
    var$5.$mode0 = 2;
    var$8 = var$5.$groupBounds.data;
    var$9 = 0;
    var$10 = var$8.length;
    if (var$9 > var$10) {
        $regex = new jl_IllegalArgumentException;
        $regex.$suppressionEnabled = 1;
        $regex.$writableStackTrace = 1;
        $rt_throw($regex);
    }
    while (var$9 < var$10) {
        var$11 = var$9 + 1 | 0;
        var$8[var$9] = (-1);
        var$9 = var$11;
    }
    var$8 = var$5.$consumers.data;
    var$9 = 0;
    var$10 = var$8.length;
    if (var$9 > var$10) {
        $regex = new jl_IllegalArgumentException;
        $regex.$suppressionEnabled = 1;
        $regex.$writableStackTrace = 1;
        $rt_throw($regex);
    }
    while (var$9 < var$10) {
        var$11 = var$9 + 1 | 0;
        var$8[var$9] = (-1);
        var$9 = var$11;
    }
    if (var$6 !== null)
        var$5.$string0 = var$6;
    if (var$7 >= 0) {
        var$5.$leftBound = var$7;
        var$5.$rightBound = var$4;
    }
    var$5.$startIndex = var$5.$leftBound;
    $regex.$appendPos = 0;
    $regex.$replacement = null;
    var$5.$previousMatch = (-1);
    while (true) {
        if (!jur_Matcher_find($regex)) {
            $replacement = $regex.$string;
            $regex = jl_String_substring($replacement, $regex.$appendPos, $replacement.$nativeString.length);
            var$9 = $regex.$nativeString.length;
            jl_AbstractStringBuilder_insert1(var$3, var$3.$length0, $regex, 0, var$9);
            $regex = new jl_String;
            var$8 = var$3.$buffer;
            var$12 = var$8.data;
            var$13 = var$3.$length0;
            var$9 = var$12.length;
            if (var$13 >= 0 && var$13 <= (var$9 - 0 | 0)) {
                $regex.$nativeString = $rt_charArrayToString(var$8.data, 0, var$13);
                return $regex;
            }
            $regex = new jl_IndexOutOfBoundsException;
            $regex.$suppressionEnabled = 1;
            $regex.$writableStackTrace = 1;
            $rt_throw($regex);
        }
        $regex.$processedRepl = jur_Matcher_processReplacement($regex, $replacement);
        var$5 = $regex.$string;
        var$7 = $regex.$appendPos;
        var$6 = $regex.$matchResult;
        if (!var$6.$valid) {
            $regex = new jl_IllegalStateException;
            $regex.$suppressionEnabled = 1;
            $regex.$writableStackTrace = 1;
            $rt_throw($regex);
        }
        if (0 >= var$6.$groupCount) {
            $replacement = new jl_IndexOutOfBoundsException;
            $regex = new jl_StringBuilder;
            $regex.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_append0($regex, 0);
            var$3 = new jl_String;
            var$8 = $regex.$buffer;
            var$12 = var$8.data;
            var$13 = $regex.$length0;
            var$9 = var$12.length;
            if (var$13 >= 0 && var$13 <= (var$9 - 0 | 0)) {
                var$3.$nativeString = $rt_charArrayToString(var$8.data, 0, var$13);
                $replacement.$suppressionEnabled = 1;
                $replacement.$writableStackTrace = 1;
                $replacement.$message = var$3;
                $rt_throw($replacement);
            }
            $regex = new jl_IndexOutOfBoundsException;
            $regex.$suppressionEnabled = 1;
            $regex.$writableStackTrace = 1;
            $rt_throw($regex);
        }
        var$5 = jl_String_substring(var$5, var$7, var$6.$groupBounds.data[0]);
        var$11 = var$5.$nativeString.length;
        jl_AbstractStringBuilder_insert1(var$3, var$3.$length0, var$5, 0, var$11);
        var$5 = $regex.$processedRepl;
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$5);
        var$5 = $regex.$matchResult;
        if (!var$5.$valid)
            break;
        if (0 >= var$5.$groupCount) {
            $regex = new jl_IndexOutOfBoundsException;
            $replacement = new jl_StringBuilder;
            $replacement.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_append0($replacement, 0);
            var$3 = new jl_String;
            var$8 = $replacement.$buffer;
            var$12 = var$8.data;
            var$13 = $replacement.$length0;
            var$9 = var$12.length;
            if (var$13 >= 0 && var$13 <= (var$9 - 0 | 0)) {
                var$3.$nativeString = $rt_charArrayToString(var$8.data, 0, var$13);
                $regex.$suppressionEnabled = 1;
                $regex.$writableStackTrace = 1;
                $regex.$message = var$3;
                $rt_throw($regex);
            }
            $regex = new jl_IndexOutOfBoundsException;
            $regex.$suppressionEnabled = 1;
            $regex.$writableStackTrace = 1;
            $rt_throw($regex);
        }
        $regex.$appendPos = var$5.$groupBounds.data[1];
    }
    $regex = new jl_IllegalStateException;
    $regex.$suppressionEnabled = 1;
    $regex.$writableStackTrace = 1;
    $rt_throw($regex);
},
jl_String_format = ($format, $args) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $$je;
    var$3 = new ju_Formatter;
    ju_Locale_$callClinit();
    var$4 = ju_Locale_defaultLocale;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    var$3.$out1 = var$5;
    var$3.$locale2 = var$4;
    a: {
        try {
            if ($args === null)
                $args = $rt_createArray(jl_Object, 1);
            ju_Formatter$FormatWriter_write(ju_Formatter$FormatWriter__init_(var$3, var$5, var$4, $format, $args));
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $format = $$je;
            } else {
                throw $$e;
            }
        }
        var$3.$ioException = $format;
    }
    var$3 = var$3.$out1;
    if (var$3 === null) {
        $format = new ju_FormatterClosedException;
        $format.$suppressionEnabled = 1;
        $format.$writableStackTrace = 1;
        $rt_throw($format);
    }
    $format = new jl_String;
    $args = var$3.$buffer;
    var$6 = $args.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $format.$nativeString = $rt_charArrayToString($args.data, 0, var$7);
        return $format;
    }
    $format = new jl_IndexOutOfBoundsException;
    $format.$suppressionEnabled = 1;
    $format.$writableStackTrace = 1;
    $rt_throw($format);
},
jl_String_join = ($delimiter, $elements) => {
    let var$3, $resultLength, $index, $chars, var$7, $firstElement, $i, $j, $element;
    $elements = $elements.data;
    var$3 = $elements.length;
    if (!var$3)
        return jl_String_EMPTY;
    $resultLength = 0;
    $index = 0;
    while ($index < var$3) {
        $resultLength = $resultLength + $elements[$index].$nativeString.length | 0;
        $index = $index + 1 | 0;
    }
    $chars = $rt_createCharArray($resultLength + $rt_imul(var$3 - 1 | 0, $delimiter.$nativeString.length) | 0);
    var$7 = $chars.data;
    $index = 0;
    $firstElement = $elements[0];
    $i = 0;
    while (true) {
        if ($i >= $firstElement.$nativeString.length) {
            $i = 1;
            a: {
                b: {
                    while ($i < var$3) {
                        $j = 0;
                        while ($j < $delimiter.$nativeString.length) {
                            $resultLength = $index + 1 | 0;
                            if ($j < 0)
                                break a;
                            if ($j >= $delimiter.$nativeString.length)
                                break a;
                            var$7[$index] = $delimiter.$nativeString.charCodeAt($j);
                            $j = $j + 1 | 0;
                            $index = $resultLength;
                        }
                        $element = $elements[$i];
                        $j = 0;
                        while ($j < $element.$nativeString.length) {
                            $resultLength = $index + 1 | 0;
                            if ($j < 0)
                                break b;
                            if ($j >= $element.$nativeString.length)
                                break b;
                            var$7[$index] = $element.$nativeString.charCodeAt($j);
                            $j = $j + 1 | 0;
                            $index = $resultLength;
                        }
                        $i = $i + 1 | 0;
                    }
                    $delimiter = new jl_String;
                    $delimiter.$nativeString = "";
                    $delimiter.$nativeString = $rt_fullArrayToString($chars.data);
                    return $delimiter;
                }
                $delimiter = new jl_StringIndexOutOfBoundsException;
                $delimiter.$suppressionEnabled = 1;
                $delimiter.$writableStackTrace = 1;
                $rt_throw($delimiter);
            }
            $delimiter = new jl_StringIndexOutOfBoundsException;
            $delimiter.$suppressionEnabled = 1;
            $delimiter.$writableStackTrace = 1;
            $rt_throw($delimiter);
        }
        $resultLength = $index + 1 | 0;
        if ($i < 0)
            break;
        if ($i >= $firstElement.$nativeString.length)
            break;
        var$7[$index] = $firstElement.$nativeString.charCodeAt($i);
        $i = $i + 1 | 0;
        $index = $resultLength;
    }
    $delimiter = new jl_StringIndexOutOfBoundsException;
    $delimiter.$suppressionEnabled = 1;
    $delimiter.$writableStackTrace = 1;
    $rt_throw($delimiter);
},
jl_String_join0 = ($delimiter, $elements) => {
    let var$3, var$4, $sb, var$6, var$7, var$8, var$9;
    var$3 = new ju_LinkedList$SequentialListIterator;
    var$4 = $elements.$firstEntry;
    $sb = null;
    var$3.$this$02 = $elements;
    var$3.$version = $elements.$modCount;
    var$3.$nextEntry1 = var$4;
    var$3.$prevEntry = $sb;
    var$3.$index4 = 0;
    if (!(var$4 === null ? 0 : 1))
        return $rt_s(3);
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    $elements = ju_LinkedList$SequentialListIterator_next(var$3);
    var$6 = $elements.$length();
    jl_AbstractStringBuilder_insert1($sb, $sb.$length0, $elements, 0, var$6);
    while (var$3.$nextEntry1 === null ? 0 : 1) {
        var$7 = $delimiter.$nativeString.length;
        jl_AbstractStringBuilder_insert1($sb, $sb.$length0, $delimiter, 0, var$7);
        $elements = ju_LinkedList$SequentialListIterator_next(var$3);
        var$6 = $elements.$length();
        jl_AbstractStringBuilder_insert1($sb, $sb.$length0, $elements, 0, var$6);
    }
    $delimiter = new jl_String;
    var$8 = $sb.$buffer;
    var$9 = var$8.data;
    var$6 = $sb.$length0;
    var$7 = var$9.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        $delimiter.$nativeString = $rt_charArrayToString(var$8.data, 0, var$6);
        return $delimiter;
    }
    $delimiter = new jl_IndexOutOfBoundsException;
    $delimiter.$suppressionEnabled = 1;
    $delimiter.$writableStackTrace = 1;
    $rt_throw($delimiter);
},
jl_String_compareTo = ($this, var$1) => {
    let var$2, var$3, var$4, var$5;
    a: {
        b: {
            c: {
                var$1 = var$1;
                if ($this === var$1)
                    var$2 = 0;
                else {
                    var$3 = $this.$nativeString.length;
                    var$4 = var$1.$nativeString.length;
                    if (var$3 < var$4)
                        var$4 = var$3;
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= var$4) {
                            var$2 = $this.$nativeString.length - var$1.$nativeString.length | 0;
                            break c;
                        }
                        if (var$3 < 0)
                            break a;
                        if (var$3 >= $this.$nativeString.length)
                            break a;
                        var$5 = $this.$nativeString.charCodeAt(var$3);
                        if (var$3 < 0)
                            break b;
                        if (var$3 >= var$1.$nativeString.length)
                            break b;
                        var$2 = var$5 - var$1.$nativeString.charCodeAt(var$3) | 0;
                        if (var$2)
                            break;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            return var$2;
        }
        var$1 = new jl_StringIndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$1 = new jl_StringIndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jl_String__clinit_ = () => {
    let var$1;
    jl_String_EMPTY_CHARS = $rt_createCharArray(0);
    var$1 = new jl_String;
    var$1.$nativeString = "";
    jl_String_EMPTY = var$1;
    jl_String_CASE_INSENSITIVE_ORDER = new jl_String$_clinit_$lambda$_115_0;
},
jl_Number = $rt_classWithoutFields(),
jl_Number__init_ = $this => {
    return;
};
function jl_Integer() {
    jl_Number.call(this);
    this.$value = 0;
}
let jl_Integer_TYPE = null,
jl_Integer_integerCache = null,
jl_Integer__init_0 = ($this, $value) => {
    $this.$value = $value;
},
jl_Integer__init_ = var_0 => {
    let var_1 = new jl_Integer();
    jl_Integer__init_0(var_1, var_0);
    return var_1;
},
jl_Integer_hashCode = $value => {
    return $value;
},
jl_Integer_toHexString = $i => {
    return otci_IntegerUtil_toUnsignedLogRadixString($i, 4);
},
jl_Integer_parseInt0 = ($s, $radix) => {
    if ($s !== null)
        return jl_Integer_parseIntImpl($s, 0, $s.$nativeString.length, $radix);
    $s = new jl_NumberFormatException;
    $s.$suppressionEnabled = 1;
    $s.$writableStackTrace = 1;
    $s.$message = $rt_s(104);
    $rt_throw($s);
},
jl_Integer_parseIntImpl = ($s, $beginIndex, $endIndex, $radix) => {
    let $negative, $digit, $value, $maxValue, var$9, var$10, var$11, var$12, var$13, var$14;
    if ($beginIndex == $endIndex) {
        $s = new jl_NumberFormatException;
        $s.$suppressionEnabled = 1;
        $s.$writableStackTrace = 1;
        $s.$message = $rt_s(105);
        $rt_throw($s);
    }
    if ($radix >= 2 && $radix <= 36) {
        $negative = 0;
        if ($beginIndex >= 0 && $beginIndex < $s.$nativeString.length) {
            a: {
                switch ($s.$nativeString.charCodeAt($beginIndex)) {
                    case 43:
                        $digit = $beginIndex + 1 | 0;
                        break a;
                    case 45:
                        $negative = 1;
                        $digit = $beginIndex + 1 | 0;
                        break a;
                    default:
                }
                $digit = $beginIndex;
            }
            $value = 0;
            $maxValue = 1 + (2147483647 / $radix | 0) | 0;
            if ($digit == $endIndex) {
                $s = new jl_NumberFormatException;
                $s.$suppressionEnabled = 1;
                $s.$writableStackTrace = 1;
                $rt_throw($s);
            }
            b: {
                while ($digit < $endIndex) {
                    var$9 = $digit + 1 | 0;
                    if ($digit < 0)
                        break b;
                    if ($digit >= $s.$nativeString.length)
                        break b;
                    $digit = jl_Integer_decodeDigit($s.$nativeString.charCodeAt($digit));
                    if ($digit < 0) {
                        var$10 = new jl_NumberFormatException;
                        var$11 = jl_String_substring($s, $beginIndex, $endIndex);
                        $s = new jl_StringBuilder;
                        $s.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($s, $s.$length0, $rt_s(106));
                        $beginIndex = $s.$length0;
                        if (var$11 === null)
                            var$11 = $rt_s(1);
                        jl_AbstractStringBuilder_insert($s, $beginIndex, var$11);
                        var$12 = new jl_String;
                        var$13 = $s.$buffer;
                        var$14 = var$13.data;
                        $endIndex = $s.$length0;
                        $radix = var$14.length;
                        if ($endIndex >= 0 && $endIndex <= ($radix - 0 | 0)) {
                            var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, $endIndex);
                            var$10.$suppressionEnabled = 1;
                            var$10.$writableStackTrace = 1;
                            var$10.$message = var$12;
                            $rt_throw(var$10);
                        }
                        $s = new jl_IndexOutOfBoundsException;
                        $s.$suppressionEnabled = 1;
                        $s.$writableStackTrace = 1;
                        $rt_throw($s);
                    }
                    if ($digit >= $radix) {
                        var$10 = new jl_NumberFormatException;
                        var$11 = jl_String_substring($s, $beginIndex, $endIndex);
                        $s = new jl_StringBuilder;
                        $s.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($s, $s.$length0, $rt_s(107));
                        jl_AbstractStringBuilder_insert0($s, $s.$length0, $radix, 10);
                        jl_AbstractStringBuilder_insert($s, $s.$length0, $rt_s(102));
                        $beginIndex = $s.$length0;
                        if (var$11 === null)
                            var$11 = $rt_s(1);
                        jl_AbstractStringBuilder_insert($s, $beginIndex, var$11);
                        var$12 = new jl_String;
                        var$13 = $s.$buffer;
                        var$14 = var$13.data;
                        $endIndex = $s.$length0;
                        $radix = var$14.length;
                        if ($endIndex >= 0 && $endIndex <= ($radix - 0 | 0)) {
                            var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, $endIndex);
                            var$10.$suppressionEnabled = 1;
                            var$10.$writableStackTrace = 1;
                            var$10.$message = var$12;
                            $rt_throw(var$10);
                        }
                        $s = new jl_IndexOutOfBoundsException;
                        $s.$suppressionEnabled = 1;
                        $s.$writableStackTrace = 1;
                        $rt_throw($s);
                    }
                    if ($value > $maxValue) {
                        $s = new jl_NumberFormatException;
                        $s.$suppressionEnabled = 1;
                        $s.$writableStackTrace = 1;
                        $s.$message = $rt_s(108);
                        $rt_throw($s);
                    }
                    $value = $rt_imul($radix, $value) + $digit | 0;
                    if ($value < 0) {
                        if (var$9 == $endIndex && $value == (-2147483648) && $negative)
                            return (-2147483648);
                        var$10 = new jl_NumberFormatException;
                        var$11 = jl_String_substring($s, $beginIndex, $endIndex);
                        $s = new jl_StringBuilder;
                        $s.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($s, $s.$length0, $rt_s(109));
                        $beginIndex = $s.$length0;
                        if (var$11 === null)
                            var$11 = $rt_s(1);
                        jl_AbstractStringBuilder_insert($s, $beginIndex, var$11);
                        var$12 = new jl_String;
                        var$13 = $s.$buffer;
                        var$14 = var$13.data;
                        $endIndex = $s.$length0;
                        $radix = var$14.length;
                        if ($endIndex >= 0 && $endIndex <= ($radix - 0 | 0)) {
                            var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, $endIndex);
                            var$10.$suppressionEnabled = 1;
                            var$10.$writableStackTrace = 1;
                            var$10.$message = var$12;
                            $rt_throw(var$10);
                        }
                        $s = new jl_IndexOutOfBoundsException;
                        $s.$suppressionEnabled = 1;
                        $s.$writableStackTrace = 1;
                        $rt_throw($s);
                    }
                    $digit = var$9;
                }
                if ($negative)
                    $value =  -$value | 0;
                return $value;
            }
            $s = new jl_StringIndexOutOfBoundsException;
            $s.$suppressionEnabled = 1;
            $s.$writableStackTrace = 1;
            $rt_throw($s);
        }
        $s = new jl_StringIndexOutOfBoundsException;
        $s.$suppressionEnabled = 1;
        $s.$writableStackTrace = 1;
        $rt_throw($s);
    }
    $s = new jl_NumberFormatException;
    var$10 = new jl_StringBuilder;
    var$10.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(110));
    jl_AbstractStringBuilder_insert0(var$10, var$10.$length0, $radix, 10);
    var$12 = new jl_String;
    var$13 = var$10.$buffer;
    var$14 = var$13.data;
    $endIndex = var$10.$length0;
    $radix = var$14.length;
    if ($endIndex >= 0 && $endIndex <= ($radix - 0 | 0)) {
        var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, $endIndex);
        $s.$suppressionEnabled = 1;
        $s.$writableStackTrace = 1;
        $s.$message = var$12;
        $rt_throw($s);
    }
    $s = new jl_IndexOutOfBoundsException;
    $s.$suppressionEnabled = 1;
    $s.$writableStackTrace = 1;
    $rt_throw($s);
},
jl_Integer_parseInt = $s => {
    if ($s !== null)
        return jl_Integer_parseIntImpl($s, 0, $s.$nativeString.length, 10);
    $s = new jl_NumberFormatException;
    $s.$suppressionEnabled = 1;
    $s.$writableStackTrace = 1;
    $s.$message = $rt_s(104);
    $rt_throw($s);
},
jl_Integer_valueOf = $i => {
    let var$2;
    if ($i >= (-128) && $i <= 127) {
        jl_Integer_ensureIntegerCache();
        return jl_Integer_integerCache.data[$i + 128 | 0];
    }
    var$2 = new jl_Integer;
    var$2.$value = $i;
    return var$2;
},
jl_Integer_ensureIntegerCache = () => {
    let var$1, var$2, $j, var$4, var$5;
    a: {
        if (jl_Integer_integerCache === null) {
            var$1 = $rt_createArray(jl_Integer, 256);
            var$2 = var$1.data;
            jl_Integer_integerCache = var$1;
            $j = 0;
            var$4 = var$2.length;
            while (true) {
                if ($j >= var$4)
                    break a;
                var$5 = new jl_Integer;
                var$5.$value = $j - 128 | 0;
                var$2[$j] = var$5;
                $j = $j + 1 | 0;
            }
        }
    }
},
jl_Integer_intValue = $this => {
    return $this.$value;
},
jl_Integer_longValue = $this => {
    return Long_fromInt($this.$value);
},
jl_Integer_doubleValue = $this => {
    return $this.$value;
},
jl_Integer_toString = $this => {
    let var$1, var$2;
    var$1 = $this.$value;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    return (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jl_Integer_hashCode0 = $this => {
    return $this.$value;
},
jl_Integer_equals = ($this, $other) => {
    if ($this === $other)
        return 1;
    return $other instanceof jl_Integer && $other.$value == $this.$value ? 1 : 0;
},
jl_Integer_decodeDigit = $c => {
    if ($c >= 48 && $c <= 57)
        return $c - 48 | 0;
    if ($c >= 97 && $c <= 122)
        return ($c - 97 | 0) + 10 | 0;
    if ($c >= 65 && $c <= 90)
        return ($c - 65 | 0) + 10 | 0;
    return (-1);
},
jl_Integer_numberOfLeadingZeros = $i => {
    let $n, var$3;
    if (!$i)
        return 32;
    $n = 0;
    var$3 = $i >>> 16 | 0;
    if (var$3)
        $n = 16;
    else
        var$3 = $i;
    $i = var$3 >>> 8 | 0;
    if (!$i)
        $i = var$3;
    else
        $n = $n | 8;
    var$3 = $i >>> 4 | 0;
    if (!var$3)
        var$3 = $i;
    else
        $n = $n | 4;
    $i = var$3 >>> 2 | 0;
    if (!$i)
        $i = var$3;
    else
        $n = $n | 2;
    if ($i >>> 1 | 0)
        $n = $n | 1;
    return (32 - $n | 0) - 1 | 0;
},
jl_Integer_numberOfTrailingZeros = $i => {
    let $n, var$3;
    if (!$i)
        return 32;
    $n = 0;
    var$3 = $i << 16;
    if (var$3)
        $n = 16;
    else
        var$3 = $i;
    $i = var$3 << 8;
    if (!$i)
        $i = var$3;
    else
        $n = $n | 8;
    var$3 = $i << 4;
    if (!var$3)
        var$3 = $i;
    else
        $n = $n | 4;
    $i = var$3 << 2;
    if (!$i)
        $i = var$3;
    else
        $n = $n | 2;
    if ($i << 1)
        $n = $n | 1;
    return (32 - $n | 0) - 1 | 0;
},
jl_Integer_compareTo = ($this, var$1) => {
    var$1 = var$1;
    return $rt_compare($this.$value, var$1.$value);
},
jl_Integer__clinit_ = () => {
    jl_Integer_TYPE = $rt_cls($rt_intcls);
};
function jl_AbstractStringBuilder() {
    let a = this; jl_Object.call(a);
    a.$buffer = null;
    a.$length0 = 0;
}
let jl_AbstractStringBuilder__init_ = $this => {
    $this.$buffer = $rt_createCharArray(16);
},
jl_AbstractStringBuilder__init_1 = () => {
    let var_0 = new jl_AbstractStringBuilder();
    jl_AbstractStringBuilder__init_(var_0);
    return var_0;
},
jl_AbstractStringBuilder__init_0 = ($this, $capacity) => {
    $this.$buffer = $rt_createCharArray($capacity);
},
jl_AbstractStringBuilder__init_2 = var_0 => {
    let var_1 = new jl_AbstractStringBuilder();
    jl_AbstractStringBuilder__init_0(var_1, var_0);
    return var_1;
},
jl_AbstractStringBuilder_append1 = ($this, $obj) => {
    jl_AbstractStringBuilder_insert($this, $this.$length0, $obj === null ? $rt_s(1) : $obj.$toString());
    return $this;
},
jl_AbstractStringBuilder_append = ($this, $string) => {
    return $this.$insert($this.$length0, $string);
},
jl_AbstractStringBuilder_insert = ($this, $index, $string) => {
    let $i, $i_0, var$5;
    if ($index >= 0 && $index <= $this.$length0) {
        if ($string === null)
            $string = $rt_s(1);
        else if ($string.$nativeString.length ? 0 : 1)
            return $this;
        $this.$ensureCapacity($this.$length0 + $string.$nativeString.length | 0);
        $i = $this.$length0 - 1 | 0;
        while ($i >= $index) {
            $this.$buffer.data[$i + $string.$nativeString.length | 0] = $this.$buffer.data[$i];
            $i = $i + (-1) | 0;
        }
        $this.$length0 = $this.$length0 + $string.$nativeString.length | 0;
        $i_0 = 0;
        a: {
            while ($i_0 < $string.$nativeString.length) {
                var$5 = $this.$buffer;
                $i = $index + 1 | 0;
                if ($i_0 < 0)
                    break a;
                if ($i_0 >= $string.$nativeString.length)
                    break a;
                var$5.data[$index] = $string.$nativeString.charCodeAt($i_0);
                $i_0 = $i_0 + 1 | 0;
                $index = $i;
            }
            return $this;
        }
        $string = new jl_StringIndexOutOfBoundsException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    $string = new jl_StringIndexOutOfBoundsException;
    $string.$suppressionEnabled = 1;
    $string.$writableStackTrace = 1;
    $rt_throw($string);
},
jl_AbstractStringBuilder_append0 = ($this, $value) => {
    return jl_AbstractStringBuilder_insert0($this, $this.$length0, $value, 10);
},
jl_AbstractStringBuilder_append3 = ($this, $value, $radix) => {
    return jl_AbstractStringBuilder_insert0($this, $this.$length0, $value, $radix);
},
jl_AbstractStringBuilder_insert0 = ($this, $target, $value, $radix) => {
    let $positive, var$5, var$6, $pos, $sz, $posLimit, var$10;
    $positive = 1;
    if ($value < 0) {
        $positive = 0;
        $value =  -$value | 0;
    }
    a: {
        if ($rt_ucmp($value, $radix) < 0) {
            if ($positive)
                jl_AbstractStringBuilder_insertSpace($this, $target, $target + 1 | 0);
            else {
                jl_AbstractStringBuilder_insertSpace($this, $target, $target + 2 | 0);
                var$5 = $this.$buffer.data;
                var$6 = $target + 1 | 0;
                var$5[$target] = 45;
                $target = var$6;
            }
            $this.$buffer.data[$target] = jl_Character_forDigit($value, $radix);
        } else {
            $pos = 1;
            $sz = 1;
            $posLimit = $rt_udiv((-1), $radix);
            b: {
                while (true) {
                    var$10 = $rt_imul($pos, $radix);
                    if ($rt_ucmp(var$10, $value) > 0) {
                        var$10 = $pos;
                        break b;
                    }
                    $sz = $sz + 1 | 0;
                    if ($rt_ucmp(var$10, $posLimit) > 0)
                        break;
                    $pos = var$10;
                }
            }
            if (!$positive)
                $sz = $sz + 1 | 0;
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + $sz | 0);
            if ($positive)
                $positive = $target;
            else {
                var$5 = $this.$buffer.data;
                $positive = $target + 1 | 0;
                var$5[$target] = 45;
            }
            while (true) {
                if (!var$10)
                    break a;
                var$5 = $this.$buffer.data;
                $target = $positive + 1 | 0;
                var$5[$positive] = jl_Character_forDigit($rt_udiv($value, var$10), $radix);
                $value = $rt_umod($value, var$10);
                var$10 = $rt_udiv(var$10, $radix);
                $positive = $target;
            }
        }
    }
    return $this;
},
jl_AbstractStringBuilder_insert4 = ($this, $target, $value, $radix) => {
    let $positive, var$5, var$6, var$7, $sz, $pos, $posLimit, var$11;
    $positive = 1;
    if (Long_lt($value, Long_ZERO)) {
        $positive = 0;
        $value = Long_neg($value);
    }
    a: {
        var$5 = Long_fromInt($radix);
        if (jl_Long_compareUnsigned($value, var$5) < 0) {
            if ($positive)
                jl_AbstractStringBuilder_insertSpace($this, $target, $target + 1 | 0);
            else {
                jl_AbstractStringBuilder_insertSpace($this, $target, $target + 2 | 0);
                var$6 = $this.$buffer.data;
                var$7 = $target + 1 | 0;
                var$6[$target] = 45;
                $target = var$7;
            }
            $this.$buffer.data[$target] = jl_Character_forDigit(Long_lo($value), $radix);
        } else {
            $sz = 1;
            $pos = Long_fromInt(1);
            $posLimit = jl_Long_divideUnsigned(Long_fromInt(-1), var$5);
            b: {
                while (true) {
                    var$11 = Long_mul($pos, var$5);
                    if (jl_Long_compareUnsigned(var$11, $value) > 0) {
                        var$11 = $pos;
                        break b;
                    }
                    $sz = $sz + 1 | 0;
                    if (jl_Long_compareUnsigned(var$11, $posLimit) > 0)
                        break;
                    $pos = var$11;
                }
            }
            if (!$positive)
                $sz = $sz + 1 | 0;
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + $sz | 0);
            if ($positive)
                $positive = $target;
            else {
                var$6 = $this.$buffer.data;
                $positive = $target + 1 | 0;
                var$6[$target] = 45;
            }
            while (true) {
                if (Long_eq(var$11, Long_ZERO))
                    break a;
                var$6 = $this.$buffer.data;
                $target = $positive + 1 | 0;
                var$6[$positive] = jl_Character_forDigit(Long_lo((jl_Long_divideUnsigned($value, var$11))), $radix);
                $value = jl_Long_remainderUnsigned($value, var$11);
                var$11 = jl_Long_divideUnsigned(var$11, var$5);
                $positive = $target;
            }
        }
    }
    return $this;
},
jl_AbstractStringBuilder_insert5 = ($this, $target, $value) => {
    let $mantissa, var$4, $number, $exp, $negative, $intPart, $sz, $digits, $zeros, $leadingZeros, $leadingZero, $i, $pos, $intDigit;
    $mantissa = $rt_compare($value, 0.0);
    if (!$mantissa) {
        if (1.0 / $value === Infinity) {
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + 3 | 0);
            var$4 = $this.$buffer.data;
            $mantissa = $target + 1 | 0;
            var$4[$target] = 48;
            $target = $mantissa + 1 | 0;
            var$4[$mantissa] = 46;
            var$4[$target] = 48;
            return $this;
        }
        jl_AbstractStringBuilder_insertSpace($this, $target, $target + 4 | 0);
        var$4 = $this.$buffer.data;
        $mantissa = $target + 1 | 0;
        var$4[$target] = 45;
        $target = $mantissa + 1 | 0;
        var$4[$mantissa] = 48;
        $mantissa = $target + 1 | 0;
        var$4[$target] = 46;
        var$4[$mantissa] = 48;
        return $this;
    }
    if (isNaN($value) ? 1 : 0) {
        jl_AbstractStringBuilder_insertSpace($this, $target, $target + 3 | 0);
        var$4 = $this.$buffer.data;
        $mantissa = $target + 1 | 0;
        var$4[$target] = 78;
        $target = $mantissa + 1 | 0;
        var$4[$mantissa] = 97;
        var$4[$target] = 78;
        return $this;
    }
    if (!isFinite($value) ? 1 : 0) {
        if ($mantissa > 0) {
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + 8 | 0);
            $mantissa = $target;
        } else {
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + 9 | 0);
            var$4 = $this.$buffer.data;
            $mantissa = $target + 1 | 0;
            var$4[$target] = 45;
        }
        var$4 = $this.$buffer.data;
        $target = $mantissa + 1 | 0;
        var$4[$mantissa] = 73;
        $mantissa = $target + 1 | 0;
        var$4[$target] = 110;
        $target = $mantissa + 1 | 0;
        var$4[$mantissa] = 102;
        $mantissa = $target + 1 | 0;
        var$4[$target] = 105;
        $target = $mantissa + 1 | 0;
        var$4[$mantissa] = 110;
        $mantissa = $target + 1 | 0;
        var$4[$target] = 105;
        $target = $mantissa + 1 | 0;
        var$4[$mantissa] = 116;
        var$4[$target] = 121;
        return $this;
    }
    $number = jl_AbstractStringBuilder$Constants_floatAnalysisResult;
    otcit_FloatAnalyzer_analyze($value, $number);
    $mantissa = $number.$mantissa0;
    $exp = $number.$exponent0;
    $negative = $number.$sign3;
    $intPart = 1;
    $sz = 1;
    if ($negative)
        $sz = 2;
    $digits = 9;
    $zeros = jl_AbstractStringBuilder_trailingDecimalZeros0($mantissa);
    if ($zeros > 0)
        $digits = $digits - $zeros | 0;
    $leadingZeros = 0;
    $leadingZero = 0;
    if ($exp < 7 && $exp >= (-3)) {
        if ($exp < 0) {
            $intPart = 0;
            $leadingZeros = ( -$exp | 0) - 1 | 0;
            $leadingZero = 1;
            $sz = $sz + 1 | 0;
            $exp = 0;
        } else {
            $intPart = $exp + 1 | 0;
            $i = $intPart + 1 | 0;
            if ($digits > $i)
                $i = $digits;
            $exp = 0;
            $digits = $i;
        }
    }
    if ($exp) {
        $sz = $sz + 2 | 0;
        if (!($exp > (-10) && $exp < 10))
            $sz = $sz + 1 | 0;
        if ($exp < 0)
            $sz = $sz + 1 | 0;
    }
    if ($exp && $digits == $intPart)
        $digits = $digits + 1 | 0;
    jl_AbstractStringBuilder_insertSpace($this, $target, $target + ($sz + ($digits + $leadingZeros | 0) | 0) | 0);
    if (!$negative)
        $sz = $target;
    else {
        var$4 = $this.$buffer.data;
        $sz = $target + 1 | 0;
        var$4[$target] = 45;
    }
    $pos = 100000000;
    if ($leadingZero) {
        var$4 = $this.$buffer.data;
        $target = $sz + 1 | 0;
        var$4[$sz] = 48;
        $sz = $target + 1 | 0;
        var$4[$target] = 46;
        while (true) {
            $target = $leadingZeros + (-1) | 0;
            if ($leadingZeros <= 0)
                break;
            $i = $sz + 1 | 0;
            var$4[$sz] = 48;
            $leadingZeros = $target;
            $sz = $i;
        }
    }
    $i = 0;
    while ($i < $digits) {
        if ($pos <= 0)
            $intDigit = 0;
        else {
            $intDigit = $mantissa / $pos | 0;
            $mantissa = $mantissa % $pos | 0;
        }
        var$4 = $this.$buffer.data;
        $target = $sz + 1 | 0;
        var$4[$sz] = (48 + $intDigit | 0) & 65535;
        $intPart = $intPart + (-1) | 0;
        if ($intPart)
            $sz = $target;
        else {
            $sz = $target + 1 | 0;
            var$4[$target] = 46;
        }
        $pos = $pos / 10 | 0;
        $i = $i + 1 | 0;
    }
    if ($exp) {
        var$4 = $this.$buffer.data;
        $target = $sz + 1 | 0;
        var$4[$sz] = 69;
        if ($exp >= 0)
            $mantissa = $target;
        else {
            $exp =  -$exp | 0;
            $mantissa = $target + 1 | 0;
            var$4[$target] = 45;
        }
        if ($exp < 10)
            $i = $mantissa;
        else {
            $i = $mantissa + 1 | 0;
            var$4[$mantissa] = (48 + ($exp / 10 | 0) | 0) & 65535;
        }
        var$4[$i] = (48 + ($exp % 10 | 0) | 0) & 65535;
    }
    return $this;
},
jl_AbstractStringBuilder_insert2 = ($this, $target, $value) => {
    let $intDigit, var$4, $number, $mantissa, $exp, $negative, $intPart, $sz, $digits, $zeros, $leadingZeros, $leadingZero, $pos, $i;
    $intDigit = $rt_compare($value, 0.0);
    if (!$intDigit) {
        if (1.0 / $value === Infinity) {
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + 3 | 0);
            var$4 = $this.$buffer.data;
            $intDigit = $target + 1 | 0;
            var$4[$target] = 48;
            $target = $intDigit + 1 | 0;
            var$4[$intDigit] = 46;
            var$4[$target] = 48;
            return $this;
        }
        jl_AbstractStringBuilder_insertSpace($this, $target, $target + 4 | 0);
        var$4 = $this.$buffer.data;
        $intDigit = $target + 1 | 0;
        var$4[$target] = 45;
        $target = $intDigit + 1 | 0;
        var$4[$intDigit] = 48;
        $intDigit = $target + 1 | 0;
        var$4[$target] = 46;
        var$4[$intDigit] = 48;
        return $this;
    }
    if (isNaN($value) ? 1 : 0) {
        jl_AbstractStringBuilder_insertSpace($this, $target, $target + 3 | 0);
        var$4 = $this.$buffer.data;
        $intDigit = $target + 1 | 0;
        var$4[$target] = 78;
        $target = $intDigit + 1 | 0;
        var$4[$intDigit] = 97;
        var$4[$target] = 78;
        return $this;
    }
    if (!isFinite($value) ? 1 : 0) {
        if ($intDigit > 0) {
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + 8 | 0);
            $intDigit = $target;
        } else {
            jl_AbstractStringBuilder_insertSpace($this, $target, $target + 9 | 0);
            var$4 = $this.$buffer.data;
            $intDigit = $target + 1 | 0;
            var$4[$target] = 45;
        }
        var$4 = $this.$buffer.data;
        $target = $intDigit + 1 | 0;
        var$4[$intDigit] = 73;
        $intDigit = $target + 1 | 0;
        var$4[$target] = 110;
        $target = $intDigit + 1 | 0;
        var$4[$intDigit] = 102;
        $intDigit = $target + 1 | 0;
        var$4[$target] = 105;
        $target = $intDigit + 1 | 0;
        var$4[$intDigit] = 110;
        $intDigit = $target + 1 | 0;
        var$4[$target] = 105;
        $target = $intDigit + 1 | 0;
        var$4[$intDigit] = 116;
        var$4[$target] = 121;
        return $this;
    }
    $number = jl_AbstractStringBuilder$Constants_doubleAnalysisResult;
    otcit_DoubleAnalyzer_analyze($value, $number);
    $mantissa = $number.$mantissa;
    $exp = $number.$exponent;
    $negative = $number.$sign2;
    $intPart = 1;
    $sz = 1;
    if ($negative)
        $sz = 2;
    $digits = 18;
    $zeros = jl_AbstractStringBuilder_trailingDecimalZeros($mantissa);
    if ($zeros > 0)
        $digits = $digits - $zeros | 0;
    $leadingZeros = 0;
    $leadingZero = 0;
    if ($exp < 7 && $exp >= (-3)) {
        if ($exp < 0) {
            $intPart = 0;
            $leadingZeros = ( -$exp | 0) - 1 | 0;
            $leadingZero = 1;
            $sz = $sz + 1 | 0;
            $exp = 0;
        } else {
            $intPart = $exp + 1 | 0;
            $intDigit = $intPart + 1 | 0;
            if ($digits > $intDigit)
                $intDigit = $digits;
            $exp = 0;
            $digits = $intDigit;
        }
    }
    if ($exp) {
        $sz = $sz + 2 | 0;
        if (!($exp > (-10) && $exp < 10))
            $sz = $sz + 1 | 0;
        if (!($exp > (-100) && $exp < 100))
            $sz = $sz + 1 | 0;
        if ($exp < 0)
            $sz = $sz + 1 | 0;
    }
    if ($exp && $digits == $intPart)
        $digits = $digits + 1 | 0;
    jl_AbstractStringBuilder_insertSpace($this, $target, $target + ($sz + ($digits + $leadingZeros | 0) | 0) | 0);
    if (!$negative)
        $negative = $target;
    else {
        var$4 = $this.$buffer.data;
        $negative = $target + 1 | 0;
        var$4[$target] = 45;
    }
    $pos = Long_create(1569325056, 23283064);
    if ($leadingZero) {
        var$4 = $this.$buffer.data;
        $target = $negative + 1 | 0;
        var$4[$negative] = 48;
        $negative = $target + 1 | 0;
        var$4[$target] = 46;
        while (true) {
            $target = $leadingZeros + (-1) | 0;
            if ($leadingZeros <= 0)
                break;
            $intDigit = $negative + 1 | 0;
            var$4[$negative] = 48;
            $leadingZeros = $target;
            $negative = $intDigit;
        }
    }
    $i = 0;
    while ($i < $digits) {
        if (Long_le($pos, Long_ZERO))
            $intDigit = 0;
        else {
            $intDigit = Long_lo(Long_div($mantissa, $pos));
            $mantissa = Long_rem($mantissa, $pos);
        }
        var$4 = $this.$buffer.data;
        $target = $negative + 1 | 0;
        var$4[$negative] = (48 + $intDigit | 0) & 65535;
        $intPart = $intPart + (-1) | 0;
        if ($intPart)
            $negative = $target;
        else {
            $negative = $target + 1 | 0;
            var$4[$target] = 46;
        }
        $pos = Long_div($pos, Long_fromInt(10));
        $i = $i + 1 | 0;
    }
    if ($exp) {
        var$4 = $this.$buffer.data;
        $leadingZeros = $negative + 1 | 0;
        var$4[$negative] = 69;
        if ($exp >= 0)
            $intDigit = $leadingZeros;
        else {
            $exp =  -$exp | 0;
            $intDigit = $leadingZeros + 1 | 0;
            var$4[$leadingZeros] = 45;
        }
        if ($exp >= 100) {
            $target = $intDigit + 1 | 0;
            var$4[$intDigit] = (48 + ($exp / 100 | 0) | 0) & 65535;
            $exp = $exp % 100 | 0;
            $leadingZeros = $target + 1 | 0;
            var$4[$target] = (48 + ($exp / 10 | 0) | 0) & 65535;
        } else if ($exp < 10)
            $leadingZeros = $intDigit;
        else {
            $leadingZeros = $intDigit + 1 | 0;
            var$4[$intDigit] = (48 + ($exp / 10 | 0) | 0) & 65535;
        }
        var$4[$leadingZeros] = (48 + ($exp % 10 | 0) | 0) & 65535;
    }
    return $this;
},
jl_AbstractStringBuilder_trailingDecimalZeros0 = $n => {
    let $result, $zeros, var$4;
    if (!($n % 1000000000 | 0))
        return 9;
    $result = 0;
    $zeros = 1;
    if (!($n % 100000000 | 0)) {
        $result = 8;
        $zeros = 100000000;
    }
    var$4 = $zeros * 10000 | 0;
    if ($n % var$4 | 0)
        var$4 = $zeros;
    else
        $result = $result | 4;
    $zeros = var$4 * 100 | 0;
    if ($n % $zeros | 0)
        $zeros = var$4;
    else
        $result = $result | 2;
    if (!($n % ($zeros * 10 | 0) | 0))
        $result = $result | 1;
    return $result;
},
jl_AbstractStringBuilder_trailingDecimalZeros = $n => {
    let $zeros, $result, $bit, var$5, $i;
    $zeros = Long_fromInt(1);
    $result = 0;
    $bit = 16;
    var$5 = jl_AbstractStringBuilder$Constants_longLogPowersOfTen.data;
    $i = var$5.length - 1 | 0;
    while ($i >= 0) {
        if (Long_eq(Long_rem($n, Long_mul($zeros, var$5[$i])), Long_ZERO)) {
            $result = $result | $bit;
            $zeros = Long_mul($zeros, var$5[$i]);
        }
        $bit = $bit >>> 1 | 0;
        $i = $i + (-1) | 0;
    }
    return $result;
},
jl_AbstractStringBuilder_append2 = ($this, $c) => {
    return $this.$insert2($this.$length0, $c);
},
jl_AbstractStringBuilder_insert7 = ($this, $index, $c) => {
    jl_AbstractStringBuilder_insertSpace($this, $index, $index + 1 | 0);
    $this.$buffer.data[$index] = $c;
    return $this;
},
jl_AbstractStringBuilder_insert3 = ($this, $index, $obj) => {
    jl_AbstractStringBuilder_insert($this, $index, $obj === null ? $rt_s(1) : $obj.$toString());
    return $this;
},
jl_AbstractStringBuilder_ensureCapacity = ($this, $capacity) => {
    let var$2, var$3, $newLength, var$5, var$6, var$7;
    var$2 = $this.$buffer.data;
    var$3 = var$2.length;
    if (var$3 >= $capacity)
        return;
    if (var$3 >= 1073741823)
        $newLength = 2147483647;
    else {
        var$5 = var$3 * 2 | 0;
        $newLength = 5;
        if (var$5 > $newLength)
            $newLength = var$5;
        if ($capacity > $newLength)
            $newLength = $capacity;
    }
    var$6 = $rt_createCharArray($newLength);
    if ($newLength < var$3)
        var$3 = $newLength;
    var$7 = var$6.data;
    $capacity = 0;
    while ($capacity < var$3) {
        var$7[$capacity] = var$2[$capacity];
        $capacity = $capacity + 1 | 0;
    }
    $this.$buffer = var$6;
},
jl_AbstractStringBuilder_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jl_String;
    var$2 = $this.$buffer;
    var$3 = var$2.data;
    var$4 = $this.$length0;
    var$5 = var$3.length;
    if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$4);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jl_AbstractStringBuilder_insert1 = ($this, $index, $s, $i, $end) => {
    let var$5, var$6;
    if ($i <= $end && $end <= $s.$length() && $i >= 0) {
        jl_AbstractStringBuilder_insertSpace($this, $index, ($index + $end | 0) - $i | 0);
        while ($i < $end) {
            var$5 = $this.$buffer.data;
            var$6 = $index + 1 | 0;
            var$5[$index] = $s.$charAt($i);
            $i = $i + 1 | 0;
            $index = var$6;
        }
        return $this;
    }
    $s = new jl_IndexOutOfBoundsException;
    $s.$suppressionEnabled = 1;
    $s.$writableStackTrace = 1;
    $rt_throw($s);
},
jl_AbstractStringBuilder_insert6 = ($this, $index, $chars, $offset, $len) => {
    let var$5, var$6, var$7, var$8;
    jl_AbstractStringBuilder_insertSpace($this, $index, $index + $len | 0);
    var$5 = $len + $offset | 0;
    while ($offset < var$5) {
        var$6 = $chars.data;
        var$7 = $this.$buffer.data;
        $len = $index + 1 | 0;
        var$8 = $offset + 1 | 0;
        var$7[$index] = var$6[$offset];
        $index = $len;
        $offset = var$8;
    }
    return $this;
},
jl_AbstractStringBuilder_deleteCharAt = ($this, $i) => {
    let var$2, var$3, $i_0, var$5;
    if ($i >= 0) {
        var$2 = $this.$length0;
        if ($i < var$2) {
            var$2 = var$2 - 1 | 0;
            $this.$length0 = var$2;
            while ($i < var$2) {
                var$3 = $this.$buffer.data;
                $i_0 = $i + 1 | 0;
                var$3[$i] = var$3[$i_0];
                $i = $i_0;
            }
            return $this;
        }
    }
    var$5 = new jl_StringIndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
jl_AbstractStringBuilder_delete = ($this, $start, $end) => {
    let var$3, var$4, $sz, $i, var$7, var$8;
    if ($start >= 0) {
        var$3 = $rt_compare($start, $end);
        if (var$3 <= 0) {
            var$4 = $this.$length0;
            if ($start <= var$4) {
                if (!var$3)
                    return $this;
                if ($end > var$4)
                    $end = var$4;
                $sz = var$4 - $end | 0;
                $this.$length0 = var$4 - ($end - $start | 0) | 0;
                $i = 0;
                while ($i < $sz) {
                    var$7 = $this.$buffer.data;
                    var$4 = $start + 1 | 0;
                    var$3 = $end + 1 | 0;
                    var$7[$start] = var$7[$end];
                    $i = $i + 1 | 0;
                    $start = var$4;
                    $end = var$3;
                }
                return $this;
            }
        }
    }
    var$8 = new jl_StringIndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
jl_AbstractStringBuilder_insertSpace = ($this, $start, $end) => {
    let var$3, $sz, $i, var$6;
    var$3 = $this.$length0;
    $sz = var$3 - $start | 0;
    $this.$ensureCapacity((var$3 + $end | 0) - $start | 0);
    $i = $sz - 1 | 0;
    while ($i >= 0) {
        var$6 = $this.$buffer.data;
        var$6[$end + $i | 0] = var$6[$start + $i | 0];
        $i = $i + (-1) | 0;
    }
    $this.$length0 = $this.$length0 + ($end - $start | 0) | 0;
},
jl_Appendable = $rt_classWithoutFields(0),
jl_StringBuilder = $rt_classWithoutFields(jl_AbstractStringBuilder),
jl_StringBuilder__init_0 = $this => {
    $this.$buffer = $rt_createCharArray(16);
},
jl_StringBuilder__init_ = () => {
    let var_0 = new jl_StringBuilder();
    jl_StringBuilder__init_0(var_0);
    return var_0;
},
jl_StringBuilder_append = ($this, $obj) => {
    jl_AbstractStringBuilder_insert($this, $this.$length0, $obj === null ? $rt_s(1) : $obj.$toString());
    return $this;
},
jl_StringBuilder_append2 = ($this, $string) => {
    jl_AbstractStringBuilder_insert($this, $this.$length0, $string);
    return $this;
},
jl_StringBuilder_append0 = ($this, $value) => {
    jl_AbstractStringBuilder_insert0($this, $this.$length0, $value, 10);
    return $this;
},
jl_StringBuilder_append1 = ($this, $c) => {
    let var$2;
    var$2 = $this.$length0;
    jl_AbstractStringBuilder_insertSpace($this, var$2, var$2 + 1 | 0);
    $this.$buffer.data[var$2] = $c;
    return $this;
},
jl_StringBuilder_delete = ($this, $start, $end) => {
    jl_AbstractStringBuilder_delete($this, $start, $end);
    return $this;
},
jl_StringBuilder_insert0 = ($this, $index, $string) => {
    jl_AbstractStringBuilder_insert($this, $index, $string);
    return $this;
},
jl_StringBuilder_subSequence = ($this, var$1, var$2) => {
    let var$3, var$4, var$5, var$6;
    if (var$1 <= var$2 && var$1 >= 0 && var$2 <= $this.$length0) {
        var$3 = new jl_String;
        var$4 = $this.$buffer;
        var$5 = var$4.data;
        var$2 = var$2 - var$1 | 0;
        var$6 = var$5.length;
        if (var$1 >= 0 && var$2 >= 0 && var$2 <= (var$6 - var$1 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$4.data, var$1, var$2);
            return var$3;
        }
        var$3 = new jl_IndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
jl_StringBuilder_insert3 = ($this, var$1, var$2, var$3, var$4) => {
    let var$5, var$6, var$7, var$8;
    jl_AbstractStringBuilder_insertSpace($this, var$1, var$1 + var$4 | 0);
    var$5 = var$4 + var$3 | 0;
    while (var$3 < var$5) {
        var$6 = var$2.data;
        var$7 = $this.$buffer.data;
        var$4 = var$1 + 1 | 0;
        var$8 = var$3 + 1 | 0;
        var$7[var$1] = var$6[var$3];
        var$1 = var$4;
        var$3 = var$8;
    }
    return $this;
},
jl_StringBuilder_append4 = ($this, var$1, var$2, var$3) => {
    let var$4, var$5, var$6, var$7, var$8;
    var$4 = $this.$length0;
    jl_AbstractStringBuilder_insertSpace($this, var$4, var$4 + var$3 | 0);
    var$5 = var$3 + var$2 | 0;
    while (var$2 < var$5) {
        var$6 = var$1.data;
        var$7 = $this.$buffer.data;
        var$3 = var$4 + 1 | 0;
        var$8 = var$2 + 1 | 0;
        var$7[var$4] = var$6[var$2];
        var$4 = var$3;
        var$2 = var$8;
    }
    return $this;
},
jl_StringBuilder_insert2 = ($this, var$1, var$2, var$3, var$4) => {
    jl_AbstractStringBuilder_insert1($this, var$1, var$2, var$3, var$4);
    return $this;
},
jl_StringBuilder_append3 = ($this, var$1, var$2, var$3) => {
    jl_AbstractStringBuilder_insert1($this, $this.$length0, var$1, var$2, var$3);
    return $this;
},
jl_StringBuilder_charAt = ($this, var$1) => {
    let var$2;
    if (var$1 >= 0 && var$1 < $this.$length0)
        return $this.$buffer.data[var$1];
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jl_StringBuilder_length = $this => {
    return $this.$length0;
},
jl_StringBuilder_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jl_String;
    var$2 = $this.$buffer;
    var$3 = var$2.data;
    var$4 = $this.$length0;
    var$5 = var$3.length;
    if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$4);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jl_StringBuilder_ensureCapacity = ($this, var$1) => {
    jl_AbstractStringBuilder_ensureCapacity($this, var$1);
},
jl_StringBuilder_insert1 = ($this, var$1, var$2) => {
    jl_AbstractStringBuilder_insert($this, var$1, var$2 === null ? $rt_s(1) : var$2.$toString());
    return $this;
},
jl_StringBuilder_insert4 = ($this, var$1, var$2) => {
    jl_AbstractStringBuilder_insertSpace($this, var$1, var$1 + 1 | 0);
    $this.$buffer.data[var$1] = var$2;
    return $this;
},
jl_StringBuilder_insert = ($this, var$1, var$2) => {
    jl_AbstractStringBuilder_insert($this, var$1, var$2);
    return $this;
},
jl_System = $rt_classWithoutFields(),
jl_System_outCache = null,
jl_System_errCache = null;
let jl_System__init_ = $this => {
    return;
},
jl_System__init_0 = () => {
    let var_0 = new jl_System();
    jl_System__init_(var_0);
    return var_0;
},
jl_System_out = () => {
    let var$1, var$2;
    if (jl_System_outCache === null) {
        var$1 = new otcic_JSStdoutPrintStream;
        var$2 = new ji_ByteArrayOutputStream;
        var$2.$buf = $rt_createByteArray(32);
        var$1.$out0 = var$2;
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        var$1.$sb = var$2;
        var$1.$buffer0 = $rt_createCharArray(32);
        var$1.$autoFlush = 0;
        var$1.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_outCache = var$1;
    }
    return jl_System_outCache;
},
jl_System_err = () => {
    let var$1, var$2;
    if (jl_System_errCache === null) {
        var$1 = new otcic_JSStderrPrintStream;
        var$2 = new ji_ByteArrayOutputStream;
        var$2.$buf = $rt_createByteArray(32);
        var$1.$out0 = var$2;
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        var$1.$sb = var$2;
        var$1.$buffer0 = $rt_createCharArray(32);
        var$1.$autoFlush = 0;
        var$1.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_errCache = var$1;
    }
    return jl_System_errCache;
},
jl_System_arraycopy = ($src, $srcPos, $dest, $destPos, $length) => {
    let var$6, $elem, $srcType, $targetType, $srcArray, $i, var$12, var$13, var$14, var$15;
    if ($src !== null && $dest !== null) {
        if ($srcPos >= 0 && $destPos >= 0 && $length >= 0 && ($srcPos + $length | 0) <= jlr_Array_getLength($src) && ($destPos + $length | 0) <= jlr_Array_getLength($dest)) {
            a: {
                b: {
                    if ($src !== $dest) {
                        var$6 = $src.constructor;
                        if (var$6 === null)
                            $elem = null;
                        else {
                            $elem = var$6.classObject;
                            if ($elem === null) {
                                $elem = new jl_Class;
                                $elem.$platformClass = var$6;
                                var$6.classObject = $elem;
                            }
                        }
                        $srcType = jl_Class_getComponentType($elem);
                        var$6 = $dest.constructor;
                        if (var$6 === null)
                            $elem = null;
                        else {
                            $elem = var$6.classObject;
                            if ($elem === null) {
                                $elem = new jl_Class;
                                $elem.$platformClass = var$6;
                                var$6.classObject = $elem;
                            }
                        }
                        $targetType = jl_Class_getComponentType($elem);
                        if ($srcType !== null && $targetType !== null) {
                            if ($srcType === $targetType)
                                break b;
                            if (!($srcType.$platformClass.$meta.primitive ? 1 : 0) && !($targetType.$platformClass.$meta.primitive ? 1 : 0)) {
                                $srcArray = $src;
                                $i = 0;
                                var$12 = $srcPos;
                                while ($i < $length) {
                                    var$13 = $srcArray.data;
                                    var$14 = var$12 + 1 | 0;
                                    var$6 = var$13[var$12];
                                    var$15 = $targetType.$platformClass;
                                    if (!(var$6 !== null && !(typeof var$6.constructor.$meta === 'undefined' ? 1 : 0) && otp_Platform_isAssignable(var$6.constructor, var$15) ? 1 : 0)) {
                                        jl_System_doArrayCopy($src, $srcPos, $dest, $destPos, $i);
                                        $src = new jl_ArrayStoreException;
                                        $src.$suppressionEnabled = 1;
                                        $src.$writableStackTrace = 1;
                                        $rt_throw($src);
                                    }
                                    $i = $i + 1 | 0;
                                    var$12 = var$14;
                                }
                                jl_System_doArrayCopy($src, $srcPos, $dest, $destPos, $length);
                                return;
                            }
                            if (!($srcType.$platformClass.$meta.primitive ? 1 : 0))
                                break a;
                            if ($targetType.$platformClass.$meta.primitive ? 1 : 0)
                                break b;
                            else
                                break a;
                        }
                        $src = new jl_ArrayStoreException;
                        $src.$suppressionEnabled = 1;
                        $src.$writableStackTrace = 1;
                        $rt_throw($src);
                    }
                }
                jl_System_doArrayCopy($src, $srcPos, $dest, $destPos, $length);
                return;
            }
            $src = new jl_ArrayStoreException;
            $src.$suppressionEnabled = 1;
            $src.$writableStackTrace = 1;
            $rt_throw($src);
        }
        $src = new jl_IndexOutOfBoundsException;
        $src.$suppressionEnabled = 1;
        $src.$writableStackTrace = 1;
        $rt_throw($src);
    }
    $dest = new jl_NullPointerException;
    $dest.$suppressionEnabled = 1;
    $dest.$writableStackTrace = 1;
    $dest.$message = $rt_s(111);
    $rt_throw($dest);
},
jl_System_fastArraycopy = ($src, $srcPos, $dest, $destPos, $length) => {
    if ($srcPos >= 0 && $destPos >= 0 && $length >= 0 && ($srcPos + $length | 0) <= jlr_Array_getLength($src) && ($destPos + $length | 0) <= jlr_Array_getLength($dest)) {
        jl_System_doArrayCopy($src, $srcPos, $dest, $destPos, $length);
        return;
    }
    $src = new jl_IndexOutOfBoundsException;
    $src.$suppressionEnabled = 1;
    $src.$writableStackTrace = 1;
    $rt_throw($src);
},
jl_System_doArrayCopy = (var$1, var$2, var$3, var$4, var$5) => {
    if (var$5 !== 0) {
        if (typeof var$1.data.buffer !== 'undefined') {
            var$3.data.set(var$1.data.subarray(var$2, var$2 + var$5), var$4);
        } else if (var$1 !== var$3 || var$4 < var$2) {
            for (let i = 0;i < var$5;i = i + 1 | 0) {
                var$3.data[var$4++] = var$1.data[var$2++];
            }
        } else {
            var$2 = var$2 + var$5 | 0;
            var$4 = var$4 + var$5 | 0;
            for (let i = 0;i < var$5;i = i + 1 | 0) {
                var$3.data[ --var$4] = var$1.data[ --var$2];
            }
        }
    }
},
jl_System_currentTimeMillis = () => {
    return Long_fromNumber((new Date()).getTime());
},
otj_JSObject = $rt_classWithoutFields(0),
nles_IntegratedServer$WorkerBinaryPacketHandler = $rt_classWithoutFields(0),
nles_IntegratedServer$WorkerBinaryPacketHandlerImpl = $rt_classWithoutFields(),
nles_IntegratedServer$WorkerBinaryPacketHandlerImpl__init_ = $this => {
    return;
},
nles_IntegratedServer$WorkerBinaryPacketHandlerImpl__init_0 = () => {
    let var_0 = new nles_IntegratedServer$WorkerBinaryPacketHandlerImpl();
    nles_IntegratedServer$WorkerBinaryPacketHandlerImpl__init_(var_0);
    return var_0;
},
nles_IntegratedServer$WorkerBinaryPacketHandlerImpl_onMessage$exported$0 = (var$0, var$1, var$2) => {
    let var$3, $$je;
    var$1 = $rt_str(var$1);
    a: {
        if (var$1 === null) {
            if (jl_System_errCache === null) {
                var$1 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                var$2.$buf = $rt_createByteArray(32);
                var$1.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                var$2.$buffer = $rt_createCharArray(16);
                var$1.$sb = var$2;
                var$1.$buffer0 = $rt_createCharArray(32);
                var$1.$autoFlush = 0;
                var$1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$1;
            }
            $rt_putStderr("Recieved IPC packet with null channel");
            $rt_putStderr("\n");
        } else {
            if (var$2 !== null) {
                nles_IntegratedServer_$callClinit();
                var$3 = nles_IntegratedServer_messageQueue;
                jl_Object_monitorEnterSync(var$3);
                try {
                    ju_AbstractList_add(var$3, nles_IntegratedServer$PKT__init_(var$1, nles_TeaVMUtils_wrapByteArrayBuffer(var$2)));
                    jl_Object_monitorExitSync(var$3);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    var$1 = $$je;

                }
                jl_Object_monitorExitSync(var$3);
                $rt_throw(var$1);
            }
            if (jl_System_errCache === null) {
                var$1 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                var$2.$buf = $rt_createByteArray(32);
                var$1.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                var$2.$buffer = $rt_createCharArray(16);
                var$1.$sb = var$2;
                var$1.$buffer0 = $rt_createCharArray(32);
                var$1.$autoFlush = 0;
                var$1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$1;
            }
            $rt_putStderr("Recieved IPC packet with null buffer");
            $rt_putStderr("\n");
        }
    }
},
nlesi_IPCPacketBase = $rt_classWithoutFields(0),
nlesi_IPCPacketBase_strLen = $s => {
    let $strlen, $utflen, $i, $c;
    $strlen = $s.$nativeString.length;
    $utflen = 2;
    $i = 0;
    a: {
        while ($i < $strlen) {
            if ($i < 0)
                break a;
            if ($i >= $s.$nativeString.length)
                break a;
            $c = $s.$nativeString.charCodeAt($i);
            $utflen = $c >= 1 && $c <= 127 ? $utflen + 1 | 0 : $c <= 2047 ? $utflen + 2 | 0 : $utflen + 3 | 0;
            $i = $i + 1 | 0;
        }
        return $utflen;
    }
    $s = new jl_StringIndexOutOfBoundsException;
    $s.$suppressionEnabled = 1;
    $s.$writableStackTrace = 1;
    $rt_throw($s);
};
function nlesi_IPCPacketFFProcessKeepAlive() {
    jl_Object.call(this);
    this.$ack = 0;
}
let nlesi_IPCPacketFFProcessKeepAlive__init_1 = $this => {
    return;
},
nlesi_IPCPacketFFProcessKeepAlive__init_2 = () => {
    let var_0 = new nlesi_IPCPacketFFProcessKeepAlive();
    nlesi_IPCPacketFFProcessKeepAlive__init_1(var_0);
    return var_0;
},
nlesi_IPCPacketFFProcessKeepAlive__init_0 = ($this, $ack) => {
    $this.$ack = $ack;
},
nlesi_IPCPacketFFProcessKeepAlive__init_ = var_0 => {
    let var_1 = new nlesi_IPCPacketFFProcessKeepAlive();
    nlesi_IPCPacketFFProcessKeepAlive__init_0(var_1, var_0);
    return var_1;
},
nlesi_IPCPacketFFProcessKeepAlive_deserialize = ($this, $bin) => {
    let var$2;
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$ack = var$2 & 255;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacketFFProcessKeepAlive_serialize = ($this, $bin) => {
    let var$2;
    var$2 = $this.$ack;
    $bin.$out0.$write0(var$2);
    $bin.$written = $bin.$written + 1 | 0;
},
nlesi_IPCPacketFFProcessKeepAlive_id = $this => {
    return 255;
},
nlesi_IPCPacketFFProcessKeepAlive_size = $this => {
    return 1;
},
nles_SysUtil = $rt_classWithoutFields(),
nles_SysUtil_steadyTimeFunc = null,
nles_SysUtil_hasCheckedImmediateContinue = 0,
nles_SysUtil_immediateContinueChannel = null,
nles_SysUtil_currentContinueHack = null,
nles_SysUtil_emptyJSString = null,
nles_SysUtil_$callClinit = () => {
    nles_SysUtil_$callClinit = $rt_eraseClinit(nles_SysUtil);
    nles_SysUtil__clinit_();
},
nles_SysUtil__init_ = $this => {
    nles_SysUtil_$callClinit();
},
nles_SysUtil__init_0 = () => {
    let var_0 = new nles_SysUtil();
    nles_SysUtil__init_(var_0);
    return var_0;
},
nles_SysUtil_sleep0 = var$1 => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_SysUtil_$callClinit();
        $ptr = 1;
    case 1:
        nles_SysUtil_sleep$_asyncCall_$(var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$1, $ptr);
},
nles_SysUtil_sleep = ($millis, $callback) => {
    let var$3;
    nles_SysUtil_$callClinit();
    var$3 = new nles_SysUtil$DumbSleepHandler;
    var$3.$callback = $callback;
    otp_Platform_schedule(var$3, $millis);
},
nles_SysUtil_immediateContinueTeaVM = $cb => {
    let var$2, var$3, $$je;
    nles_SysUtil_$callClinit();
    if (nles_SysUtil_currentContinueHack !== null) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(112);
        $cb.$realAsyncCallback.$error(var$2);
        return;
    }
    var$3 = new nles_SysUtil$immediateContinueTeaVM$lambda$_9_0;
    var$3.$_01 = $cb;
    nles_SysUtil_currentContinueHack = var$3;
    a: {
        try {
            nles_SysUtil_immediateContinueChannel.port2.postMessage(nles_SysUtil_emptyJSString);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            var$3 = new otcic_JSStderrPrintStream;
            var$2 = new ji_ByteArrayOutputStream;
            var$2.$buf = $rt_createByteArray(32);
            var$3.$out0 = var$2;
            var$2 = new jl_StringBuilder;
            var$2.$buffer = $rt_createCharArray(16);
            var$3.$sb = var$2;
            var$3.$buffer0 = $rt_createCharArray(32);
            var$3.$autoFlush = 0;
            var$3.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$3;
        }
        $rt_putStderr("Caught error posting immediate continue, using setTimeout instead");
        $rt_putStderr("\n");
        var$3 = new nles_SysUtil$immediateContinueTeaVM$lambda$_9_1;
        var$3.$_02 = $cb;
        setTimeout(otji_JS_function(var$3, "onTimer"), 0);
    }
},
nles_SysUtil_checkImmediateContinueSupport = () => {
    let var$1, var$2, $checkMe, var$4, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$checkMe = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_SysUtil_$callClinit();
        a: {
            b: {
                try {
                    nles_SysUtil_immediateContinueChannel = null;
                    if (typeof MessageChannel !== "undefined" ? 1 : 0)
                        break b;
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(113));
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return;
            }
            try {
                var$1 = new MessageChannel();
                nles_SysUtil_immediateContinueChannel = var$1;
                var$2 = var$1.port1;
                var$1 = nles_SysUtil$1__init_0();
                var$2.addEventListener("message", otji_JS_function(var$1, "handleEvent"));
                nles_SysUtil_immediateContinueChannel.port1.start();
                nles_SysUtil_immediateContinueChannel.port2.start();
                $checkMe = $rt_createBooleanArray(1);
                var$4 = $checkMe.data;
                var$4[0] = 0;
                var$1 = nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0__init_0($checkMe);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            c: {
                try {
                    nles_SysUtil_currentContinueHack = var$1;
                    var$5 = nles_SysUtil_immediateContinueChannel.port2;
                    var$1 = nles_SysUtil_emptyJSString;
                    var$5.postMessage(var$1);
                    if (!var$4[0])
                        break c;
                    nles_SysUtil_currentContinueHack = null;
                    var$1 = nles_SysUtil_immediateContinueChannel;
                    if (var$1 !== null)
                        nles_SysUtil_safeShutdownChannel(var$1);
                    nles_SysUtil_immediateContinueChannel = null;
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(114));
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return;
            }
            try {
                var$6 = 10;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
        }
        if (jl_System_errCache === null) {
            var$1 = new otcic_JSStderrPrintStream;
            var$5 = new ji_ByteArrayOutputStream;
            var$5.$buf = $rt_createByteArray(32);
            var$1.$out0 = var$5;
            var$5 = new jl_StringBuilder;
            var$5.$buffer = $rt_createCharArray(16);
            var$1.$sb = var$5;
            var$1.$buffer0 = $rt_createCharArray(32);
            var$1.$autoFlush = 0;
            var$1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$1;
        }
        $rt_putStderr("Fast immediate continue will be disabled for server context due to exceptions");
        $rt_putStderr("\n");
        var$1 = nles_SysUtil_immediateContinueChannel;
        if (var$1 !== null) {
            d: {
                try {
                    var$1.port1.close();
                    break d;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
            }
            e: {
                try {
                    var$1.port2.close();
                    break e;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
            }
        }
        nles_SysUtil_immediateContinueChannel = null;
        return;
    case 1:
        a: {
            try {
                nles_SysUtil_sleep0(var$6);
                if ($rt_suspending()) {
                    break main;
                }
                nles_SysUtil_currentContinueHack = null;
                if (!var$4[0]) {
                    var$1 = nles_SysUtil_immediateContinueChannel;
                    if (var$1 !== null)
                        nles_SysUtil_safeShutdownChannel(var$1);
                    nles_SysUtil_immediateContinueChannel = null;
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(115));
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$1 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                var$5.$buf = $rt_createByteArray(32);
                var$1.$out0 = var$5;
                var$5 = new jl_StringBuilder;
                var$5.$buffer = $rt_createCharArray(16);
                var$1.$sb = var$5;
                var$1.$buffer0 = $rt_createCharArray(32);
                var$1.$autoFlush = 0;
                var$1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$1;
            }
            $rt_putStderr("Fast immediate continue will be disabled for server context due to exceptions");
            $rt_putStderr("\n");
            var$1 = nles_SysUtil_immediateContinueChannel;
            if (var$1 !== null) {
                d: {
                    try {
                        var$1.port1.close();
                        break d;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                        } else {
                            throw $$e;
                        }
                    }
                }
                e: {
                    try {
                        var$1.port2.close();
                        break e;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                        } else {
                            throw $$e;
                        }
                    }
                }
            }
            nles_SysUtil_immediateContinueChannel = null;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$1, var$2, $checkMe, var$4, var$5, var$6, $ptr);
},
nles_SysUtil_safeShutdownChannel = $chan => {
    let $$je;
    nles_SysUtil_$callClinit();
    a: {
        try {
            $chan.port1.close();
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
    }
    b: {
        try {
            $chan.port2.close();
            break b;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
    }
},
nles_SysUtil__clinit_ = () => {
    nles_SysUtil_steadyTimeFunc = nles_SysUtil_getSteadyTimeFunc$js_body$_1();
    nles_SysUtil_hasCheckedImmediateContinue = 0;
    nles_SysUtil_immediateContinueChannel = null;
    nles_SysUtil_currentContinueHack = null;
    nles_SysUtil_emptyJSString = "";
},
nles_SysUtil_sleep$_asyncCall_$ = var$1 => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_SysUtil_sleep(var$1, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_SysUtil_immediateContinueTeaVM$_asyncCall_$ = () => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_SysUtil_immediateContinueTeaVM(callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_SysUtil_getSteadyTimeFunc$js_body$_1 = () => {
    return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now.bind(performance) : function(epochStart) {
        return function() {
            return Date.now() - epochStart;
        };
    }(Date.now());
},
otci_IntegerUtil = $rt_classWithoutFields(),
otci_IntegerUtil__init_ = $this => {
    return;
},
otci_IntegerUtil__init_0 = () => {
    let var_0 = new otci_IntegerUtil();
    otci_IntegerUtil__init_(var_0);
    return var_0;
},
otci_IntegerUtil_toUnsignedLogRadixString = ($value, $radixLog2) => {
    let $radix, $mask, $sz, $chars, var$7, $pos, $target, $target_0, var$11;
    if (!$value)
        return $rt_s(116);
    $radix = 1 << $radixLog2;
    $mask = $radix - 1 | 0;
    $sz = (((32 - jl_Integer_numberOfLeadingZeros($value) | 0) + $radixLog2 | 0) - 1 | 0) / $radixLog2 | 0;
    $chars = $rt_createCharArray($sz);
    var$7 = $chars.data;
    $pos = $rt_imul($sz - 1 | 0, $radixLog2);
    $target = 0;
    while ($pos >= 0) {
        $target_0 = $target + 1 | 0;
        var$7[$target] = jl_Character_forDigit(($value >>> $pos | 0) & $mask, $radix);
        $pos = $pos - $radixLog2 | 0;
        $target = $target_0;
    }
    var$11 = new jl_String;
    var$11.$nativeString = $rt_charArrayToString($chars.data, 0, var$7.length);
    return var$11;
},
otci_IntegerUtil_toUnsignedLogRadixString0 = ($value, $radixLog2) => {
    let $radix, $mask, $sz, $chars, var$7, $pos, $target, $target_0, var$11;
    if (Long_eq($value, Long_ZERO))
        return $rt_s(116);
    $radix = 1 << $radixLog2;
    $mask = $radix - 1 | 0;
    $sz = (((64 - jl_Long_numberOfLeadingZeros($value) | 0) + $radixLog2 | 0) - 1 | 0) / $radixLog2 | 0;
    $chars = $rt_createCharArray($sz);
    var$7 = $chars.data;
    $pos = $rt_imul($sz - 1 | 0, $radixLog2);
    $target = 0;
    while ($pos >= 0) {
        $target_0 = $target + 1 | 0;
        var$7[$target] = jl_Character_forDigit(Long_lo(Long_shru($value, $pos)) & $mask, $radix);
        $pos = $pos - $radixLog2 | 0;
        $target = $target_0;
    }
    var$11 = new jl_String;
    var$11.$nativeString = $rt_charArrayToString($chars.data, 0, var$7.length);
    return var$11;
},
jl_Iterable = $rt_classWithoutFields(0),
ju_Collection = $rt_classWithoutFields(0),
ju_AbstractCollection = $rt_classWithoutFields(),
ju_AbstractCollection__init_ = $this => {
    return;
},
ju_AbstractCollection_isEmpty = $this => {
    return $this.$size() ? 0 : 1;
},
ju_AbstractCollection_toArray0 = $this => {
    let $arr, var$2, $i, $iter, var$5;
    $arr = $rt_createArray(jl_Object, $this.$size());
    var$2 = $arr.data;
    $i = 0;
    $iter = $this.$iterator();
    while ($iter.$hasNext()) {
        var$5 = $i + 1 | 0;
        var$2[$i] = $iter.$next();
        $i = var$5;
    }
    return $arr;
},
ju_AbstractCollection_toArray = ($this, $a) => {
    let var$2, $i, var$4, $iter, var$6;
    var$2 = $a.data;
    $i = $this.$size();
    var$4 = var$2.length;
    if (var$4 >= $i)
        while ($i < var$4) {
            var$2[$i] = null;
            $i = $i + 1 | 0;
        }
    else {
        $iter = $a.constructor;
        if ($iter === null)
            $a = null;
        else {
            $a = $iter.classObject;
            if ($a === null) {
                $a = new jl_Class;
                $a.$platformClass = $iter;
                $iter.classObject = $a;
            }
        }
        var$6 = $a.$platformClass.$meta.item;
        if (var$6 === null)
            $iter = null;
        else {
            $iter = var$6.classObject;
            if ($iter === null) {
                $iter = new jl_Class;
                $iter.$platformClass = var$6;
                var$6.classObject = $iter;
            }
        }
        if ($iter === null) {
            $a = new jl_NullPointerException;
            $a.$suppressionEnabled = 1;
            $a.$writableStackTrace = 1;
            $rt_throw($a);
        }
        if ($iter === $rt_cls($rt_voidcls)) {
            $a = new jl_IllegalArgumentException;
            $a.$suppressionEnabled = 1;
            $a.$writableStackTrace = 1;
            $rt_throw($a);
        }
        if ($i < 0) {
            $a = new jl_NegativeArraySizeException;
            $a.$suppressionEnabled = 1;
            $a.$writableStackTrace = 1;
            $rt_throw($a);
        }
        $a = jlr_Array_newInstanceImpl($iter.$platformClass, $i);
    }
    $i = 0;
    $iter = $this.$iterator();
    while ($iter.$hasNext()) {
        var$6 = $a.data;
        var$4 = $i + 1 | 0;
        var$6[$i] = $iter.$next();
        $i = var$4;
    }
    return $a;
},
ju_AbstractCollection_addAll = ($this, $c) => {
    let $changed, $iter;
    $changed = 0;
    $iter = $c.$iterator();
    while ($iter.$hasNext()) {
        if (!$this.$add0($iter.$next()))
            continue;
        $changed = 1;
    }
    return $changed;
},
ju_AbstractCollection_toString = $this => {
    let $sb, var$2, $iter, $e, var$5, var$6, var$7;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    var$2 = $sb.$length0;
    jl_AbstractStringBuilder_insertSpace($sb, var$2, var$2 + 1 | 0);
    $sb.$buffer.data[var$2] = 91;
    $iter = $this.$iterator();
    if ($iter.$hasNext()) {
        $e = $iter.$next();
        if ($e === $this)
            $e = $rt_s(117);
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, $e === null ? $rt_s(1) : $e.$toString());
    }
    while ($iter.$hasNext()) {
        $e = $iter.$next();
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(118));
        if ($e === $this)
            $e = $rt_s(117);
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, $e === null ? $rt_s(1) : $e.$toString());
    }
    var$2 = $sb.$length0;
    jl_AbstractStringBuilder_insertSpace($sb, var$2, var$2 + 1 | 0);
    var$5 = $sb.$buffer;
    var$6 = var$5.data;
    var$6[var$2] = 93;
    $iter = new jl_String;
    var$2 = $sb.$length0;
    var$7 = var$6.length;
    if (var$2 >= 0 && var$2 <= (var$7 - 0 | 0)) {
        $iter.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
        return $iter;
    }
    $sb = new jl_IndexOutOfBoundsException;
    $sb.$suppressionEnabled = 1;
    $sb.$writableStackTrace = 1;
    $rt_throw($sb);
},
ju_SequencedCollection = $rt_classWithoutFields(0),
ju_List = $rt_classWithoutFields(0);
function ju_AbstractList() {
    ju_AbstractCollection.call(this);
    this.$modCount = 0;
}
let ju_AbstractList__init_ = $this => {
    return;
},
ju_AbstractList_add = ($this, $e) => {
    $this.$add1($this.$size(), $e);
    return 1;
},
ju_AbstractList_iterator = $this => {
    let var$1;
    var$1 = new ju_AbstractList$1;
    var$1.$this$00 = $this;
    var$1.$modCount0 = $this.$modCount;
    var$1.$size3 = $this.$size();
    var$1.$removeIndex = (-1);
    return var$1;
},
ju_AbstractList_remove = ($this, $index) => {
    let var$2;
    var$2 = new jl_UnsupportedOperationException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ju_AbstractList_indexOf = ($this, $o) => {
    let $sz, $i, var$4;
    $sz = $this.$size0;
    $i = 0;
    a: {
        while (true) {
            if ($i >= $sz)
                return (-1);
            if ($i < 0)
                break a;
            if ($i >= $this.$size0)
                break a;
            var$4 = $this.$array.data[$i];
            if ($o === var$4 ? 1 : $o !== null ? $o.$equals(var$4) : var$4 !== null ? 0 : 1)
                break;
            $i = $i + 1 | 0;
        }
        return $i;
    }
    $o = new jl_IndexOutOfBoundsException;
    $o.$suppressionEnabled = 1;
    $o.$writableStackTrace = 1;
    $rt_throw($o);
},
ju_AbstractList_clear = $this => {
    $this.$removeRange(0, $this.$size());
},
ju_AbstractList_listIterator = ($this, $index) => {
    let var$2, var$3, var$4;
    var$2 = new ju_AbstractList$TListIteratorImpl;
    var$3 = $this.$modCount;
    var$4 = $this.$size();
    var$2.$this$013 = $this;
    var$2.$i = $index;
    var$2.$j = $index;
    var$2.$lastModCount = var$3;
    var$2.$sz = var$4;
    return var$2;
},
ju_AbstractList_subList = ($this, $fromIndex, $toIndex) => {
    let var$3;
    if ($fromIndex > $toIndex) {
        var$3 = new jl_IllegalArgumentException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    if ($fromIndex >= 0 && $toIndex <= $this.$size()) {
        if (!$rt_isInstance($this, ju_RandomAccess)) {
            var$3 = new ju_AbstractList$SubAbstractList;
            var$3.$fullList = $this;
            var$3.$modCount = $this.$modCount;
            var$3.$offset = $fromIndex;
            var$3.$size4 = $toIndex - $fromIndex | 0;
            return var$3;
        }
        var$3 = new ju_AbstractList$SubAbstractListRandomAccess;
        var$3.$fullList = $this;
        var$3.$modCount = $this.$modCount;
        var$3.$offset = $fromIndex;
        var$3.$size4 = $toIndex - $fromIndex | 0;
        return var$3;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
ju_AbstractList_equals = ($this, $other) => {
    let $list, $i, var$4, var$5;
    if (!$rt_isInstance($other, ju_List))
        return 0;
    $list = $other;
    if ($this.$size0 != $list.$size0)
        return 0;
    $i = 0;
    a: {
        b: {
            while (true) {
                var$4 = $rt_compare($i, $list.$size0);
                if (var$4 >= 0)
                    break;
                if ($i < 0)
                    break a;
                if ($i >= $this.$size0)
                    break a;
                var$5 = $this.$array.data[$i];
                if ($i < 0)
                    break b;
                if (var$4 >= 0)
                    break b;
                $other = $list.$array.data[$i];
                if (!(var$5 === $other ? 1 : var$5 !== null ? var$5.$equals($other) : $other !== null ? 0 : 1))
                    return 0;
                $i = $i + 1 | 0;
            }
            return 1;
        }
        $other = new jl_IndexOutOfBoundsException;
        $other.$suppressionEnabled = 1;
        $other.$writableStackTrace = 1;
        $rt_throw($other);
    }
    $other = new jl_IndexOutOfBoundsException;
    $other.$suppressionEnabled = 1;
    $other.$writableStackTrace = 1;
    $rt_throw($other);
},
ju_AbstractSequentialList = $rt_classWithoutFields(ju_AbstractList),
ju_AbstractSequentialList_get = ($this, $index) => {
    let $iter;
    if ($index >= 0)
        return ju_LinkedList$SequentialListIterator_next(ju_LinkedList_listIterator($this, $index));
    $iter = new jl_IndexOutOfBoundsException;
    $iter.$suppressionEnabled = 1;
    $iter.$writableStackTrace = 1;
    $rt_throw($iter);
},
ju_AbstractSequentialList_add = ($this, $index, $element) => {
    if ($index >= 0) {
        ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($this, $index), $element);
        return;
    }
    $element = new jl_IndexOutOfBoundsException;
    $element.$suppressionEnabled = 1;
    $element.$writableStackTrace = 1;
    $rt_throw($element);
},
ju_AbstractSequentialList_remove = ($this, $index) => {
    let $iter, $elem;
    if ($index >= 0) {
        $iter = ju_LinkedList_listIterator($this, $index);
        $elem = ju_LinkedList$SequentialListIterator_next($iter);
        ju_LinkedList$SequentialListIterator_remove($iter);
        return $elem;
    }
    $iter = new jl_IndexOutOfBoundsException;
    $iter.$suppressionEnabled = 1;
    $iter.$writableStackTrace = 1;
    $rt_throw($iter);
},
ju_AbstractSequentialList_iterator = $this => {
    let var$1, var$2, var$3;
    var$1 = new ju_LinkedList$SequentialListIterator;
    var$2 = $this.$firstEntry;
    var$3 = null;
    var$1.$this$02 = $this;
    var$1.$version = $this.$modCount;
    var$1.$nextEntry1 = var$2;
    var$1.$prevEntry = var$3;
    var$1.$index4 = 0;
    return var$1;
},
ju_Queue = $rt_classWithoutFields(0),
ju_Deque = $rt_classWithoutFields(0);
function ju_LinkedList() {
    let a = this; ju_AbstractSequentialList.call(a);
    a.$firstEntry = null;
    a.$lastEntry = null;
    a.$size2 = 0;
}
let ju_LinkedList__init_0 = $this => {
    return;
},
ju_LinkedList__init_ = () => {
    let var_0 = new ju_LinkedList();
    ju_LinkedList__init_0(var_0);
    return var_0;
},
ju_LinkedList_size = $this => {
    return $this.$size2;
},
ju_LinkedList_clear = $this => {
    $this.$firstEntry = null;
    $this.$lastEntry = null;
    $this.$size2 = 0;
    $this.$modCount = $this.$modCount + 1 | 0;
},
ju_LinkedList_listIterator = ($this, $index) => {
    let $prev, var$3, $next, $i, var$6;
    if ($index < 0) {
        $prev = new jl_IndexOutOfBoundsException;
        $prev.$suppressionEnabled = 1;
        $prev.$writableStackTrace = 1;
        $rt_throw($prev);
    }
    var$3 = $this.$size2;
    if ($index <= (var$3 / 2 | 0)) {
        $next = $this.$firstEntry;
        $i = 0;
        while ($i < $index) {
            $next = $next.$next5;
            $i = $i + 1 | 0;
        }
        $prev = new ju_LinkedList$SequentialListIterator;
        var$6 = $next === null ? null : $next.$previous0;
        $prev.$this$02 = $this;
        $prev.$version = $this.$modCount;
        $prev.$nextEntry1 = $next;
        $prev.$prevEntry = var$6;
        $prev.$index4 = $index;
        return $prev;
    }
    if ($index > var$3) {
        $prev = new jl_IndexOutOfBoundsException;
        $prev.$suppressionEnabled = 1;
        $prev.$writableStackTrace = 1;
        $rt_throw($prev);
    }
    $prev = $this.$lastEntry;
    $i = $index;
    while ($i < var$3) {
        $prev = $prev.$previous0;
        $i = $i + 1 | 0;
    }
    $next = new ju_LinkedList$SequentialListIterator;
    var$6 = $prev === null ? null : $prev.$next5;
    $next.$this$02 = $this;
    $next.$version = $this.$modCount;
    $next.$nextEntry1 = var$6;
    $next.$prevEntry = $prev;
    $next.$index4 = $index;
    return $next;
},
ju_LinkedList_removeEntry = ($this, $entry) => {
    let var$2;
    var$2 = $entry.$previous0;
    if (var$2 === null)
        $this.$firstEntry = $entry.$next5;
    else
        var$2.$next5 = $entry.$next5;
    $entry = $entry.$next5;
    if ($entry === null)
        $this.$lastEntry = var$2;
    else
        $entry.$previous0 = var$2;
    $this.$size2 = $this.$size2 - 1 | 0;
    $this.$modCount = $this.$modCount + 1 | 0;
},
nms_ILogAgent = $rt_classWithoutFields(0);
function nles_EAGLogAgent() {
    jl_Object.call(this);
    this.$logger = null;
}
let nles_EAGLogAgent__init_ = $this => {
    $this.$logger = jul_Logger_getLogger($rt_s(98));
},
nles_EAGLogAgent__init_0 = () => {
    let var_0 = new nles_EAGLogAgent();
    nles_EAGLogAgent__init_(var_0);
    return var_0;
},
nles_EAGLogAgent_logInfo = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$logger;
    var$3 = jul_Level_INFO;
    var$4 = new jul_LogRecord;
    var$4.$level = var$3;
    var$4.$message0 = $par1Str;
    var$4.$millis = jl_System_currentTimeMillis();
    var$5 = jul_LogRecord_sequenceNumberGenerator;
    jul_LogRecord_sequenceNumberGenerator = Long_add(var$5, Long_fromInt(1));
    var$4.$sequenceNumber = var$5;
    var$4.$threadID = jl_Thread_currentThread.$id2;
    jul_Logger_log(var$2, var$4);
},
jl_AutoCloseable = $rt_classWithoutFields(0),
ji_Closeable = $rt_classWithoutFields(0),
ji_Flushable = $rt_classWithoutFields(0),
ji_OutputStream = $rt_classWithoutFields(),
ji_OutputStream__init_ = $this => {
    return;
},
ji_OutputStream_write = ($this, $b) => {
    $this.$write1($b, 0, $b.data.length);
},
ji_OutputStream_close = $this => {
    return;
},
ji_OutputStream_flush = $this => {
    return;
};
function ji_FilterOutputStream() {
    ji_OutputStream.call(this);
    this.$out0 = null;
}
let ji_FilterOutputStream__init_ = ($this, $out) => {
    $this.$out0 = $out;
},
ji_FilterOutputStream__init_0 = var_0 => {
    let var_1 = new ji_FilterOutputStream();
    ji_FilterOutputStream__init_(var_1, var_0);
    return var_1;
},
ji_FilterOutputStream_close = $this => {
    let var$1, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            try {
                $this.$out0.$flush();
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        var$1 = $this.$out0;
        $ptr = 1;
    case 1:
        var$1.$close();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
ji_FilterOutputStream_flush = $this => {
    $this.$out0.$flush();
};
function ji_PrintStream() {
    let a = this; ji_FilterOutputStream.call(a);
    a.$autoFlush = 0;
    a.$sb = null;
    a.$buffer0 = null;
    a.$charset = null;
}
let ji_PrintStream__init_ = ($this, $out, $autoFlush) => {
    $this.$out0 = $out;
    $out = new jl_StringBuilder;
    $out.$buffer = $rt_createCharArray(16);
    $this.$sb = $out;
    $this.$buffer0 = $rt_createCharArray(32);
    $this.$autoFlush = $autoFlush;
    $this.$charset = jnci_UTF8Charset_INSTANCE;
},
ji_PrintStream__init_1 = (var_0, var_1) => {
    let var_2 = new ji_PrintStream();
    ji_PrintStream__init_(var_2, var_0, var_1);
    return var_2;
},
ji_PrintStream__init_0 = ($this, $out) => {
    $this.$out0 = $out;
    $out = new jl_StringBuilder;
    $out.$buffer = $rt_createCharArray(16);
    $this.$sb = $out;
    $this.$buffer0 = $rt_createCharArray(32);
    $this.$autoFlush = 0;
    $this.$charset = jnci_UTF8Charset_INSTANCE;
},
ji_PrintStream__init_2 = var_0 => {
    let var_1 = new ji_PrintStream();
    ji_PrintStream__init_0(var_1, var_0);
    return var_1;
},
otcic_JsConsolePrintStream = $rt_classWithoutFields(ji_PrintStream),
otcic_JsConsolePrintStream__init_ = $this => {
    let var$1;
    var$1 = new ji_ByteArrayOutputStream;
    var$1.$buf = $rt_createByteArray(32);
    $this.$out0 = var$1;
    var$1 = new jl_StringBuilder;
    var$1.$buffer = $rt_createCharArray(16);
    $this.$sb = var$1;
    $this.$buffer0 = $rt_createCharArray(32);
    $this.$autoFlush = 0;
    $this.$charset = jnci_UTF8Charset_INSTANCE;
},
otcic_JsConsolePrintStream_println = ($this, $s) => {
    $this.$print($s);
    $this.$print($rt_s(9));
},
otcic_JSStdoutPrintStream = $rt_classWithoutFields(otcic_JsConsolePrintStream),
otcic_JSStdoutPrintStream__init_ = $this => {
    let var$1;
    var$1 = new ji_ByteArrayOutputStream;
    var$1.$buf = $rt_createByteArray(32);
    $this.$out0 = var$1;
    var$1 = new jl_StringBuilder;
    var$1.$buffer = $rt_createCharArray(16);
    $this.$sb = var$1;
    $this.$buffer0 = $rt_createCharArray(32);
    $this.$autoFlush = 0;
    $this.$charset = jnci_UTF8Charset_INSTANCE;
},
otcic_JSStdoutPrintStream__init_0 = () => {
    let var_0 = new otcic_JSStdoutPrintStream();
    otcic_JSStdoutPrintStream__init_(var_0);
    return var_0;
},
otcic_JSStdoutPrintStream_print = ($this, $s) => {
    if ($s === null)
        $s = $rt_s(1);
    $rt_putStdout($rt_ustr($s));
},
nlesi_IPCPacketManager = $rt_classWithoutFields(),
nlesi_IPCPacketManager_mappings = null,
nlesi_IPCPacketManager_IPC_INPUT_STREAM = null,
nlesi_IPCPacketManager_IPC_OUTPUT_STREAM = null,
nlesi_IPCPacketManager_IPC_DATA_INPUT_STREAM = null,
nlesi_IPCPacketManager_IPC_DATA_OUTPUT_STREAM = null,
nlesi_IPCPacketManager_$callClinit = () => {
    nlesi_IPCPacketManager_$callClinit = $rt_eraseClinit(nlesi_IPCPacketManager);
    nlesi_IPCPacketManager__clinit_();
},
nlesi_IPCPacketManager__init_ = $this => {
    nlesi_IPCPacketManager_$callClinit();
},
nlesi_IPCPacketManager__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager();
    nlesi_IPCPacketManager__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager_IPCSerialize = $pkt => {
    let var$2, var$3, var$4, var$5, var$6;
    nlesi_IPCPacketManager_$callClinit();
    var$2 = nlesi_IPCPacketManager_IPC_OUTPUT_STREAM;
    var$3 = $rt_createByteArray($pkt.$size() + 1 | 0);
    var$4 = $pkt.constructor;
    if (var$4 === null)
        var$5 = null;
    else {
        var$5 = var$4.classObject;
        if (var$5 === null) {
            var$5 = new jl_Class;
            var$5.$platformClass = var$4;
            var$4.classObject = var$5;
        }
    }
    var$6 = var$3.data;
    var$5 = jl_Class_getSimpleName(var$5);
    var$2.$currentBuffer = var$3;
    var$2.$idx0 = 0;
    var$2.$originalSize = var$6.length;
    var$2.$className = var$5;
    nlesi_IPCOutputStream_write(nlesi_IPCPacketManager_IPC_OUTPUT_STREAM, $pkt.$id());
    $pkt.$serialize(nlesi_IPCPacketManager_IPC_DATA_OUTPUT_STREAM);
    return nlesi_IPCOutputStream_returnBuffer(nlesi_IPCPacketManager_IPC_OUTPUT_STREAM);
},
nlesi_IPCPacketManager_IPCDeserialize = $pkt => {
    let $pk, $i, $p, var$5, var$6, var$7, var$8, $lo, var$10;
    nlesi_IPCPacketManager_$callClinit();
    $pk = nlesi_IPCPacketManager_IPC_INPUT_STREAM;
    $pk.$currentBuffer0 = $pkt;
    $pk.$idx = 0;
    $pk.$errorName = null;
    $pk.$markIDX = 0;
    $i = nlesi_IPCInputStream_read($pk);
    $pk = nlesi_IPCPacketManager_mappings;
    if ($i >= (-128) && $i <= 127) {
        jl_Integer_ensureIntegerCache();
        $p = jl_Integer_integerCache.data[$i + 128 | 0];
    } else {
        $p = new jl_Integer;
        $p.$value = $i;
    }
    if ($p === null) {
        $pk = $pk.$elementData.data[0];
        while ($pk !== null && $pk.$key !== null) {
            $pk = $pk.$next3;
        }
    } else {
        var$5 = $p.$value;
        var$6 = $pk.$elementData.data;
        $pk = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($pk !== null) {
            if ($pk.$origKeyHash == var$5) {
                var$7 = $pk.$key;
                if ($p !== var$7 && !($p === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $pk = $pk.$next3;
        }
    }
    $pk = $pk === null ? null : $pk.$value0;
    if ($pk === null) {
        $pk = new ji_IOException;
        var$8 = otci_IntegerUtil_toUnsignedLogRadixString($i, 4);
        $p = new jl_StringBuilder;
        $p.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(119));
        $i = $p.$length0;
        if (var$8 === null)
            var$8 = $rt_s(1);
        jl_AbstractStringBuilder_insert($p, $i, var$8);
        jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(120));
        var$7 = new jl_String;
        $pkt = $p.$buffer;
        var$6 = $pkt.data;
        $lo = $p.$length0;
        var$10 = var$6.length;
        if ($lo >= 0 && $lo <= (var$10 - 0 | 0)) {
            var$7.$nativeString = $rt_charArrayToString($pkt.data, 0, $lo);
            $pk.$suppressionEnabled = 1;
            $pk.$writableStackTrace = 1;
            $pk.$message = var$7;
            $rt_throw($pk);
        }
        $pk = new jl_IndexOutOfBoundsException;
        $pk.$suppressionEnabled = 1;
        $pk.$writableStackTrace = 1;
        $rt_throw($pk);
    }
    $p = $pk.$get1();
    $pk = nlesi_IPCPacketManager_IPC_INPUT_STREAM;
    var$8 = $p.constructor;
    if (var$8 === null)
        var$7 = null;
    else {
        var$7 = var$8.classObject;
        if (var$7 === null) {
            var$7 = new jl_Class;
            var$7.$platformClass = var$8;
            var$8.classObject = var$7;
        }
    }
    $pk.$errorName = jl_Class_getSimpleName(var$7);
    $p.$deserialize(nlesi_IPCPacketManager_IPC_DATA_INPUT_STREAM);
    $pk = nlesi_IPCPacketManager_IPC_INPUT_STREAM;
    $lo = $pk.$currentBuffer0.data.length - $pk.$idx | 0;
    if ($lo > 0) {
        if (jl_System_errCache === null) {
            $pk = new otcic_JSStderrPrintStream;
            var$7 = new ji_ByteArrayOutputStream;
            var$7.$buf = $rt_createByteArray(32);
            $pk.$out0 = var$7;
            var$7 = new jl_StringBuilder;
            var$7.$buffer = $rt_createCharArray(16);
            $pk.$sb = var$7;
            $pk.$buffer0 = $rt_createCharArray(32);
            $pk.$autoFlush = 0;
            $pk.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $pk;
        }
        $pk = otci_IntegerUtil_toUnsignedLogRadixString($i, 4);
        var$8 = $p.constructor;
        if (var$8 === null)
            var$7 = null;
        else {
            var$7 = var$8.classObject;
            if (var$7 === null) {
                var$7 = new jl_Class;
                var$7.$platformClass = var$8;
                var$8.classObject = var$7;
            }
        }
        $pkt = $pkt.data;
        var$7 = jl_Class_getSimpleName(var$7);
        $i = $pkt.length - 1 | 0;
        $lo = $i - $lo | 0;
        var$8 = new jl_StringBuilder;
        var$8.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(119));
        var$10 = var$8.$length0;
        if ($pk === null)
            $pk = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$8, var$10, $pk);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(7));
        var$10 = var$8.$length0;
        if (var$7 === null)
            var$7 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$8, var$10, var$7);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(121));
        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $i, 10);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(122));
        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $lo, 10);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(123));
        $pk = new jl_String;
        $pkt = var$8.$buffer;
        var$6 = $pkt.data;
        $lo = var$8.$length0;
        var$10 = var$6.length;
        if ($lo >= 0 && $lo <= (var$10 - 0 | 0)) {
            $pk.$nativeString = $rt_charArrayToString($pkt.data, 0, $lo);
            $rt_putStderr($rt_ustr($pk));
            $rt_putStderr("\n");
        } else {
            $pk = new jl_IndexOutOfBoundsException;
            $pk.$suppressionEnabled = 1;
            $pk.$writableStackTrace = 1;
            $rt_throw($pk);
        }
    }
    return $p;
},
nlesi_IPCPacketManager__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = ju_HashMap__init_();
    nlesi_IPCPacketManager_mappings = var$1;
    var$2 = new nlesi_IPCInputStream;
    var$2.$currentBuffer0 = null;
    var$2.$idx = 0;
    var$2.$markIDX = 0;
    var$2.$errorName = null;
    nlesi_IPCPacketManager_IPC_INPUT_STREAM = var$2;
    var$3 = new nlesi_IPCOutputStream;
    var$3.$className = null;
    var$3.$currentBuffer = null;
    var$3.$idx0 = 0;
    var$3.$originalSize = 0;
    nlesi_IPCPacketManager_IPC_OUTPUT_STREAM = var$3;
    var$4 = new ji_DataInputStream;
    var$4.$in = var$2;
    var$4.$buff = $rt_createByteArray(8);
    nlesi_IPCPacketManager_IPC_DATA_INPUT_STREAM = var$4;
    var$2 = new ji_DataOutputStream;
    var$2.$out0 = var$3;
    var$2.$buff0 = $rt_createByteArray(8);
    nlesi_IPCPacketManager_IPC_DATA_OUTPUT_STREAM = var$2;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[128], new nlesi_IPCPacketManager$_clinit_$lambda$_27_0);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[129], new nlesi_IPCPacketManager$_clinit_$lambda$_27_1);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[130], new nlesi_IPCPacketManager$_clinit_$lambda$_27_2);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[131], new nlesi_IPCPacketManager$_clinit_$lambda$_27_3);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[132], new nlesi_IPCPacketManager$_clinit_$lambda$_27_4);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[133], new nlesi_IPCPacketManager$_clinit_$lambda$_27_5);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[134], new nlesi_IPCPacketManager$_clinit_$lambda$_27_6);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[135], new nlesi_IPCPacketManager$_clinit_$lambda$_27_7);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[137], new nlesi_IPCPacketManager$_clinit_$lambda$_27_8);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[138], new nlesi_IPCPacketManager$_clinit_$lambda$_27_9);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[139], new nlesi_IPCPacketManager$_clinit_$lambda$_27_10);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[140], new nlesi_IPCPacketManager$_clinit_$lambda$_27_11);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[141], new nlesi_IPCPacketManager$_clinit_$lambda$_27_12);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[142], new nlesi_IPCPacketManager$_clinit_$lambda$_27_13);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[143], new nlesi_IPCPacketManager$_clinit_$lambda$_27_14);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[144], new nlesi_IPCPacketManager$_clinit_$lambda$_27_15);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[146], new nlesi_IPCPacketManager$_clinit_$lambda$_27_16);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[147], new nlesi_IPCPacketManager$_clinit_$lambda$_27_17);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[148], new nlesi_IPCPacketManager$_clinit_$lambda$_27_18);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[149], new nlesi_IPCPacketManager$_clinit_$lambda$_27_19);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[150], new nlesi_IPCPacketManager$_clinit_$lambda$_27_20);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[151], new nlesi_IPCPacketManager$_clinit_$lambda$_27_21);
    var$1 = nlesi_IPCPacketManager_mappings;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, jl_Integer_integerCache.data[152], new nlesi_IPCPacketManager$_clinit_$lambda$_27_22);
    var$1 = nlesi_IPCPacketManager_mappings;
    var$3 = new jl_Integer;
    var$3.$value = 255;
    ju_HashMap_putImpl(var$1, var$3, new nlesi_IPCPacketManager$_clinit_$lambda$_27_23);
},
ji_IOException = $rt_classWithoutFields(jl_Exception),
ji_IOException__init_1 = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ji_IOException__init_2 = () => {
    let var_0 = new ji_IOException();
    ji_IOException__init_1(var_0);
    return var_0;
},
ji_IOException__init_0 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
ji_IOException__init_ = var_0 => {
    let var_1 = new ji_IOException();
    ji_IOException__init_0(var_1, var_0);
    return var_1;
},
nles_TeaVMUtils = $rt_classWithoutFields(),
nles_TeaVMUtils__init_ = $this => {
    return;
},
nles_TeaVMUtils__init_0 = () => {
    let var_0 = new nles_TeaVMUtils();
    nles_TeaVMUtils__init_(var_0);
    return var_0;
},
nles_TeaVMUtils_wrapByteArrayBuffer = var$1 => {
    return var$1 ? $rt_wrapArray($rt_bytecls, new Int8Array(var$1)) : null;
},
ju_Comparator = $rt_classWithoutFields(0),
jl_String$_clinit_$lambda$_115_0 = $rt_classWithoutFields(),
jl_String$_clinit_$lambda$_115_0__init_ = var$0 => {
    return;
},
jl_String$_clinit_$lambda$_115_0__init_0 = () => {
    let var_0 = new jl_String$_clinit_$lambda$_115_0();
    jl_String$_clinit_$lambda$_115_0__init_(var_0);
    return var_0;
};
function jl_Character() {
    jl_Object.call(this);
    this.$value5 = 0;
}
let jl_Character_TYPE = null,
jl_Character_digitMapping = null,
jl_Character_upperCaseMapping = null,
jl_Character_lowerCaseMapping = null,
jl_Character_classMapping = null,
jl_Character_characterCache = null,
jl_Character_$$metadata$$0 = null,
jl_Character_$$metadata$$1 = null,
jl_Character_$$metadata$$3 = null,
jl_Character_$$metadata$$4 = null,
jl_Character_valueOf = $value => {
    let var$2, $result;
    var$2 = jl_Character_characterCache.data;
    if ($value >= var$2.length) {
        $result = new jl_Character;
        $result.$value5 = $value;
        return $result;
    }
    $result = var$2[$value];
    if ($result === null) {
        $result = new jl_Character;
        $result.$value5 = $value;
        var$2[$value] = $result;
    }
    return $result;
},
jl_Character_toString = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$value5;
    var$2 = new jl_String;
    var$3 = $rt_createCharArray(1);
    var$4 = var$3.data;
    var$4[0] = var$1;
    var$2.$nativeString = $rt_charArrayToString(var$3.data, 0, var$4.length);
    return var$2;
},
jl_Character_equals = ($this, $other) => {
    if ($this === $other)
        return 1;
    return $other instanceof jl_Character && $other.$value5 == $this.$value5 ? 1 : 0;
},
jl_Character_hashCode = $this => {
    return $this.$value5;
},
jl_Character_codePointAt = ($a, $index, $limit) => {
    let var$4;
    if ($index < $limit && $index >= 0) {
        $a = $a.data;
        if ($limit <= $a.length) {
            if ($index < ($limit - 1 | 0) && (($a[$index] & 64512) != 55296 ? 0 : 1)) {
                $limit = $index + 1 | 0;
                if (($a[$limit] & 64512) != 56320 ? 0 : 1)
                    return (($a[$index] & 1023) << 10 | $a[$limit] & 1023) + 65536 | 0;
            }
            return $a[$index];
        }
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
jl_Character_mapChar = ($table, $codePoint) => {
    let $binSearchTable, $index;
    $binSearchTable = $table.$fastTable.data;
    if ($codePoint < $binSearchTable.length)
        return $codePoint + $binSearchTable[$codePoint] | 0;
    $binSearchTable = $table.$binarySearchTable0;
    $index = jl_Character_binarySearchTable($binSearchTable, $codePoint);
    if ($index >= 0) {
        $binSearchTable = $binSearchTable.data;
        $index = $index * 2 | 0;
        if ($index < $binSearchTable.length)
            return $codePoint + $binSearchTable[$index + 1 | 0] | 0;
    }
    return 0;
},
jl_Character_binarySearchTable = ($data, $key) => {
    let $l, $u, $i, $e;
    $data = $data.data;
    $l = 0;
    $u = ($data.length / 2 | 0) - 1 | 0;
    while (true) {
        $i = ($l + $u | 0) / 2 | 0;
        $e = $rt_compare($data[$i * 2 | 0], $key);
        if (!$e)
            break;
        if ($e <= 0) {
            $l = $i + 1 | 0;
            if ($l > $u)
                return $i;
        } else {
            $u = $i - 1 | 0;
            if ($u < $l)
                return $u;
        }
    }
    return $i;
},
jl_Character_getNumericValue = $codePoint => {
    let $digitMapping, $l, $u, $idx, var$6, $val;
    if (jl_Character_digitMapping === null) {
        if (jl_Character_$$metadata$$3 === null)
            jl_Character_$$metadata$$3 = jl_Character_obtainDigitMapping$$create();
        jl_Character_digitMapping = otciu_UnicodeHelper_decodeIntPairsDiff((jl_Character_$$metadata$$3.value !== null ? $rt_str(jl_Character_$$metadata$$3.value) : null));
    }
    $digitMapping = jl_Character_digitMapping.data;
    $l = 0;
    $u = ($digitMapping.length / 2 | 0) - 1 | 0;
    while ($u >= $l) {
        $idx = ($l + $u | 0) / 2 | 0;
        var$6 = $idx * 2 | 0;
        $val = $rt_compare($codePoint, $digitMapping[var$6]);
        if ($val > 0)
            $l = $idx + 1 | 0;
        else {
            if ($val >= 0)
                return $digitMapping[var$6 + 1 | 0];
            $u = $idx - 1 | 0;
        }
    }
    return (-1);
},
jl_Character_forDigit = ($digit, $radix) => {
    if ($radix >= 2 && $radix <= 36 && $digit >= 0 && $digit < $radix)
        return $digit < 10 ? (48 + $digit | 0) & 65535 : ((97 + $digit | 0) - 10 | 0) & 65535;
    return 0;
},
jl_Character_toChars = $codePoint => {
    let var$2, var$3, var$4;
    if (!($codePoint >= 0 && $codePoint <= 1114111 ? 1 : 0)) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if ($codePoint < 65536) {
        var$3 = $rt_createCharArray(1);
        var$3.data[0] = $codePoint & 65535;
        return var$3;
    }
    var$3 = $rt_createCharArray(2);
    var$4 = var$3.data;
    var$4[0] = (55296 | ($codePoint - 65536 | 0) >> 10 & 1023) & 65535;
    var$4[1] = (56320 | $codePoint & 1023) & 65535;
    return var$3;
},
jl_Character_getType = $codePoint => {
    let $l, $u, $classes, $i, $range;
    if ($codePoint > 0 && $codePoint <= 65535 ? 1 : 0) {
        $l = $codePoint & 65535 & 64512;
        $u = $l != 55296 ? 0 : 1;
        if (!$u && !($l != 56320 ? 0 : 1) ? 0 : 1)
            return 19;
    }
    if (jl_Character_classMapping === null) {
        if (jl_Character_$$metadata$$4 === null)
            jl_Character_$$metadata$$4 = jl_Character_obtainClasses$$create();
        jl_Character_classMapping = otciu_UnicodeHelper_extractRle((jl_Character_$$metadata$$4.value !== null ? $rt_str(jl_Character_$$metadata$$4.value) : null));
    }
    $classes = jl_Character_classMapping.data;
    $l = 0;
    $u = $classes.length - 1 | 0;
    while ($l <= $u) {
        $i = ($l + $u | 0) / 2 | 0;
        $range = $classes[$i];
        if ($codePoint >= $range.$end3)
            $l = $i + 1 | 0;
        else {
            $u = $range.$start4;
            if ($codePoint >= $u)
                return $range.$data14.data[$codePoint - $u | 0];
            $u = $i - 1 | 0;
        }
    }
    return 0;
},
jl_Character_isIdentifierIgnorable = $codePoint => {
    a: {
        if (!($codePoint >= 0 && $codePoint <= 8) && !($codePoint >= 14 && $codePoint <= 27)) {
            if ($codePoint < 127)
                break a;
            if ($codePoint > 159)
                break a;
        }
        return 1;
    }
    return jl_Character_getType($codePoint) != 16 ? 0 : 1;
},
jl_Character_compareTo = ($this, var$1) => {
    var$1 = var$1;
    return $this.$value5 - var$1.$value5 | 0;
},
jl_Character__clinit_ = () => {
    jl_Character_TYPE = $rt_cls($rt_charcls);
    jl_Character_characterCache = $rt_createArray(jl_Character, 128);
},
jl_Character_acquireLowerCaseMapping$$create = () => {
    return {"value" : ">W  H#F#U 4%F#O #F#/ d%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #a1# #%# #%# #%# %%# #%# #%# #%# #%# #%# #%# #%# %%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #<+#%# #%# #%# \'.3#%# #%# #{1#%# #w1%%# %J\'#k1#o1#%# #w1#!3# #23#*3#%# \'23#:3# #>3#%# #%# #%# #N3#%# #N3# %%# #N3#%# #J3%%# #%# #R3#%# \'%# /)#%# #)#%# #)#%# #%# #%# #%# #%# #%# #%# #%# #%# %%# #%# #%# #%# #%# #%# #%# #%# #%# %)#%# #%# #8)#L%#%# #%# #%# #"
    + "%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #a+# #%# #%# #%# #%# #%# #%# #%# #%# #%# /B45#%# #,/#645# %%# #P1#!\'#*\'#%# #%# #%# #%# #%# <-%# #%# \'%# 1&++ %_## #Z#)k%%g%% #F#W hA# 1%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# +]%# %%# #?#%# %a+\'N\'AF#b &#%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# 3%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #^#%# #%# #%# #%# #%# #%# #%# %%# #%# #%# #%# #%# #%# #%# #%"
    + "# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# %*%r iB#oq-&# _?gejg#A1 o$#mo%&# {-%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# 3,4/# #%# #%# #%"
    + "# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# 3C1 1C1 1C1 1C1 1C1 3C/ 1C1 QC1 1C1 1C1 1C%8\'%G# 7i\')G# 7C%D)\' 7C%u)%?# 7X+%P+%G# L-q*/# \'Pw/#8m/# -6## |bA G%# kC.#U !r*%&# &#%# #,05#qX\'#H.5# %%# #%# #%# #e25#D05#q25#m25# #%# %%# 1865%%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# "
    + "#%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# 1%# #%# )%# (a=%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# G%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# y%%# #%# #%# #%# #%# #%# #%# \'%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #%# 5%# #%# #4Fd#%# #%# #%# #%# #%# )%# #<{p# %%# #%# \'%# #%# #%# #%# #%# #%# #%# #%# #%# #%# #P}p#}}p#m}p#D}p#P}p# #@yp#D{p#Lyp#Br#%# #%# #%# #%"
    + "# #%# #%# #%# #%# #,%#L}p#LJd#%# #%# -%# +%# #%# Y%# ,T5F#U TUg#r {%g#r >\'c#p Lnk%F# *J#F#b o@5F#b Jo=N#f "};
},
jl_Character_acquireUpperCaseMapping$$create = () => {
    return {"value" : "<Y  ,%H#U :#>b# vH#O #H#/:+# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #,5# #\'# #\'# #\'# %\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# %\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# %\'# #\'# #\'#(;#N1# %\'# #\'# %\'# \'\'# +\'# %6)# \'\'#*/# \'_+# %\'# #\'# #\'# %\'# )\'# %\'# \'\'# #\'# %\'# \'\'# #J%# +\'#+# #\'#+# #\'#+# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'#L\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# %\'#+# #\'# \'\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'#"
    + " #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# \'\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# 1\'# %665% #\'# )\'# #\'# #\'# #\'# #\'#o25#c25#k25#03#}1# #y1% #m1# #q1#{}p# \'y1#k}p# #$3# #:{p#N}p# #,3#43#N}p#*05#B}p# %43# #B05#<3# %@3# /F.5# %P3# #J}p#P3# \'B{p#P3#$\'#L3%,\'# +T3# 5Jyp#>yp# Z\'_\'# x\'# #\'# \'\'\' #_+\' !#a##]#\' #H#CD##H#3m%#i%% #e%#P%# \'(%#D%#C# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'#i\'#P\'#=#(+# #4)# %\'# %\'# .#H#bP\'A #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# 3\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# "
    + "#\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# %\'# #\'# #\'# #\'# #\'# #\'# #\'#`# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'% &#,%n mB#ko%x %ko%\' RAC1 >$#yu+#uu+#Pu+#Hu+%Lu+#0u+#io+#>@d1 (+2Fd# \'oX\'# AJJd# N%\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #"
    + "\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# +X%# +\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'#A1 1A1 1A1 1A1 1A1 3A# #A# #A# #A% /A1 16\'%g\')B)%V+%s)%N+)A1 1A1 1A1 1A% #E# 5<m-# )E# 9A% =A% \'=# ;E# R/8## ddA )\'# @E0#U Nr,%&# #\'# \'D45#845# #\'# #\'# #\'# -"
    + "\'# %\'# 5\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# 1\'# #\'# )\'- /qq-&# i]=\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# G\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# y%\'# #\'# #\'# #\'# #\'# #\'# #\'# \'\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'#"
    + " #\'# #\'# #\'# #\'# 5\'# #\'# %\'# #\'# #\'# #\'# #\'# )\'# )\'# #\'#*%# %\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# 7\'# #\'# #\'# #\'# #\'# #\'# #\'# #\'# )\'# #\'- #\'% )\'# #\'S )\'# cEDr# Yiejg# e*5H#U eUi#r {%i#r <\'e#<% Vlm%:# RH#H#b o@5H#b No=P#f "};
},
jl_Character_obtainDigitMapping$$create = () => {
    return {"value" : "&C*% %%%%%%%%%%%%%%%%%%A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=,#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%_H#T#%%%%%%%%%%%%%%%%%%s+G%%%%%%%%%%%%%%%%%%_1G%%%%%%%%%%%%%%%%%%{CG%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%6)G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%*\'G%%%%%%%%%%%%%%%%%%.9G%%%%%%%%%%%%%%%%%%*\'G%%%%%%%%%%%%%%%%%%!i#G"
    + "%%%%%%%%%%%%%%%%%%c#G%%%%%%%%%%%%%%%%%%*;G%%%%%%%%%%%%%%%%%%Z+G%%%%%%%%%%%%%%%%%%:/G%%%%%%%%%%%%%%%%%%=G%%%%%%%%%%%%%%%%%%{/G%%%%%%%%%%%%%%%%%%k\'G%%%%%%%%%%%%%%%%%%s+G%%%%%%%%%%%%%%%%%%=G%%%%%%%%%%%%%%%%%%R@dG%%%%%%%%%%%%%%%%%%R[G%%%%%%%%%%%%%%%%%%c#G%%%%%%%%%%%%%%%%%%_1G%%%%%%%%%%%%%%%%%%!#G%%%%%%%%%%%%%%%%%%k\'G%%%%%%%%%%%%%%%%%%cCG%%%%%%%%%%%%%%%%%%o*IG%%%%%%%%%%%%%%%%%%A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%=,#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%c:#T#%%%%%%%%%%%%%%%%%%w&%G%%%%%"
    + "%%%%%%%%%%%%%BhG%%%%%%%%%%%%%%%%%%Z+G%%%%%%%%%%%%%%%%%%_%G%%%%%%%%%%%%%%%%%%>-G%%%%%%%%%%%%%%%%%%.9G%%%%%%%%%%%%%%%%%%w=G%%%%%%%%%%%%%%%%%%2+G%%%%%%%%%%%%%%%%%%>AG%%%%%%%%%%%%%%%%%%N)G%%%%%%%%%%%%%%%%%%N)G%%%%%%%%%%%%%%%%%%FEG%%%%%%%%%%%%%%%%%%N)G%%%%%%%%%%%%%%%%%%!dG%%%%%%%%%%%%%%%%%%g5G%%%%%%%%%%%%%%%%%%*\'G%%%%%%%%%%%%%%%%%%FEG%%%%%%%%%%%%%%%%%%*0EG%%%%%%%%%%%%%%%%%%k\'G%%%%%%%%%%%%%%%%%%s+G%%%%%%%%%%%%%%%%%%28UG%%%%%%%%%%%%%%%%%%%G%%%%%%%%%%%%%%%%%%%G%%%%%%%%%%%%%%%%%%%G%%%%%%%%%%%%%%%%%%%G%%%%%%%%%%%%%%%"
    + "%%%!8%G%%%%%%%%%%%%%%%%%%FEG%%%%%%%%%%%%%%%%%%sKG%%%%%%%%%%%%%%%%%%>&#G%%%%%%%%%%%%%%%%%%wN)G%%%%%%%%%%%%%%%%%%"};
},
jl_Character_obtainClasses$$create = () => {
    return {"value" : "PA-Y$;Y$679:95Y#J+Y#Z$Y#B;697<8<C;6:7:PB-9[%=9<=&>:1=<=:L#<#Y#<,&?L$9B8:B(C9:C)!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!C#!#!#!#!#!#!#!#!C#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#B##!#!C$B##!#B##B$C#B%#B##B$C$B##B##!#!#B##!C#!#B##B$#!#B#C#&!C$F%!$#!$#!$#!#!#!#!#!#!#!#!C#!#!#!#!#!#!#!#!#!C#!$#!#B$#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!C(B##B#C#!#B%#!#!#!#!Cg&C<E3]%E-]/E&](%<%]2b\'Q! !#!#%<!#A#%C$9!A%]#!9B$ ! B##B2 B*CD!C#B$C$!#!#!#!#!#!#!#!#!#!#!#!C&!#:!#B#C#BTCQ!#!#!#!#"
    + "!#!#!#!#!#!#!#!#!#!#!#!#!#=G&H#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#B##!#!#!#!#!#!C#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!# BGA#%Y\'CJ95A#^#; GN5\'9G#9G#9\'A)F<A%F%Y#A,Q\'Z$Y#;Y#^#G,91Y$FA%F+G6J+Y%F#\'b&D! 9&G(1=G\'E#G#=G%F#J+F$^#&Y/ 1&\'F?G<A#b&:! G,&A/J+FBG*E#=Y$%A#\'[#F7G%%G*%G$%G&A#Y0 F:G$A#9 F,A&F9<F\' Q#A\'G)FJ%G91GA)FW\')\'&I$G)I%\'I#&G(F+G#Y#J+9%F0\'I# F)A#F#A#F7 F( &A$F%A#\'&I$G%A#I#A#I#\'&A))A%F# F$G#A#J+F#[#L\'=;&9\'A#G#) F\'A%F#A#F7 F( F# F#"
    + " F#A#\' I$G#A%G#A#G$A$\'A(F% &A(J+G#F$\'9A+G#) F* F$ F7 F( F# F&A#\'&I$G& G#) I#\'A#&A0F#G#A#J+9;A(&G\' \'I# F)A#F#A#F7 F( F# F&A#\'&)\')G%A#I#A#I#\'A(G#)A%F# F$G#A#J+=&L\'A+\'& F\'A$F$ F%A$F# & F#A$F#A$F$A$F-A%I#\'I#A$I$ I$\'A#&A\')A/J+L$^\';=A&\'I$\'F) F$ F8 F1A#\'&G$I% G$ G%A(G# F$A#&A#F#G#A#J+A(9L(=&\'I#9F) F$ F8 F+ F&A#\'&)\'I& \'I# I#G#A(I#A\'F# F#G#A#J+ F#)A-G#I#F* F$ FJG#&I$G% I$ I$\'&=A%F$)L(F$G#A#J+L*=F\' \'I# F3A$F9 F* &A#F(A$\'A%I$G$ \' I)A\'J+A#I#9A-FQ\'F#G(A%;F\'%G)9J+Y#AFF# & F& F9 & F+\'F#G*&A#F& % G( J+A#F%AA&^$Y0=9^$G#^\'J+"
    + "L+=\'=\'=\'6767I#F) FEA%G/)G&9G#F&G, GE ^)\'^\' ^#Y&^%Y#AFFLI#G%)G\')G#I#G#&J+Y\'F\'I#G#F%G$&I$F#I(F$G%F.\'I#G#I\'\'&)J+I$\'^#BG !A&!A#CL9%C$b&*&  F%A#F( & F%A#FJ F%A#FB F%A#F( & F%A#F0 FZ F%A#FeA#G$Y*L5A$F1^+A\'b!7! A#C\'A#5b&M* =9F2-F;67A$FmY$K$F)A(F3G$)A*F4G#)Y#A*F3G#A-F. F$ G#A-FUG#)G(I)\'I#G,Y$%Y$;&\'A#J+A\'L+A\'Y\'5Y%G$1\'J+A\'FD%FVA(F&G#FC\'&A&FhA+F@ G$I%G#I$A%I#\'I\'G$A%=A$Y#J+F?A#F&A,FMA%F;A\'J+,A$^CF8G#I#\'A#Y#FV)\')G( \')\'I#G)I\'G+A#\'J+A\'J+A\'Y(%Y\'A#G/(G1ARG%)FP\')G&)\'I&\'I#F)A$J+Y(^+G*^*Y# G#)F?)G%I#G#)G$F#J+FM\')G#I$\')G$I#A)Y%"
    + "FEI)G)I#G#A$Y&J+A$F$J+F?E\'Y#C*A(BLA#B$Y)A)G$9G.)G(F%\'F\'\'F#)G#&A&CMEaC.%CCEFGb!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!C*!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!C*B)C\'A#B\'A#C)B)C)B)C\'A#B\'A#C) ! ! ! !C)B)C/A#C)D)C)D)C)D)C& C#B%$<#]$C$ C#B%$]$C%A#C#B% ]$C)B&]$A#C$ C#B%$]# M,Q&U\'Y#>?6_#?6>Y)./Q&-Y*>?Y%X#Y$:67Y,:98Y+-Q& Q+,%A#L\'Z$67%L+Z$67 E.A$[BA0G."
    + "H%\'H$G-A0^#!^%!^##B$C#B$#=!^#:B&^\'!=!=!=B%=#B%#F%#^#C#B#Z&!C%=:^##=L1KD!#K%,^#A%Z&^&Z#^%:^#:^#:^(:^@Z#^#:=:^@b:-% ^)6767^5Z#^(67b=2! :^?Z:^IZ\'^gA:^,A6L^^pL7b=X# :^*:^WZ)b=P! :b=Y$ 67676767676767L?^MZ&67Z@6767676767Z1b= % b:$# 6767676767676767676767Za6767ZA67b:#% ^QZ6^#Z\'^HA#^A b=J! BQCQ!#B$C#!#!#!#B%#!C#!C\'E#B$#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!C#^\'!#!#G$!#A&Y%,Y#CG #A&#A#FYA(%9A/\'F8A*F( F( F( F( F( F( F( F( GAY#>?>?Y$>?9>?Y*5Y#59>?Y#>?67676767Y"
    + "&%Y+U#Y%596Y.^#Y$676767675AC^; b=:! A-b=7$ A;^1-Y$=%&+6767676767^#6767676756W#=K*G%I#5E&^#K$%&9^# b&7! A#G#]#E#&5b&;! 9E$&A&FL b&?!  ^#L%^+FA^EA,=F1^@ L+^?L)=L0^AL+^HL0b= & &b `G!&^b&b   %b `(!F7%b&X2 A$^XA*FIE\'Y#b&-% %Y$F1J+F#A5!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#&\'H$9G+9%!#!#!#!#!#!#!#!#!#!#!#!#!#!#E#G#FhK+G#Y\'A)]8E*]#!#!#!#!#!#!#!C$!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#!#%C)!#!#B##!#!#!#!#%]#!#!#&!#!C$!#!#!#!#!#!#!#!#!#!#B&#B&#!#!#!#!#!#!#!#B%#!#A&!# # #!#!#A9E$!#&E##F(\'F$"
    + "\'F%\'F8I#G#)^%\'A$L\'^#;=A\'FUY%A)I#FSI1G#A)Y#J+A\'G3F\'Y$&9F#\'J+F=G)Y#F8G,I#A,9F>A$G$)FP\'I#G%I#G#I$Y. %J+A%Y#F&\'%F*J+F& FJG\'I#G#I#G#A*F$\'F)\')A#J+A#Y%F1%F\'^$&)\')FS\'&G$F#G#F&G#&\'&A9F#%Y#F,)G#I#Y#&E#)\'A+F\'A#F\'A#F\'A*F( F( CL<E%C*%]#A%b#1! FDI#\'I#\'I#9)\'A#J+A\'&b CO#&A-F8A%FRA%4b `. T#b `! T#b `0 43b `D!3b&O& A#b&K! AGC(A-C&A&&\'F+:F. F& & F# F# b&M! ]2A1b&L& 76^1FbA#FWA(=AAF-;^$G1Y(679A\'G19U#X#6767676767676767Y#67Y%X$Y$ Y%5676767Y$:5Z$ 9;Y#A%F& b&(# A#1 Y$;Y$679:95Y#J+Y#Z$Y#B;697<8<C;6:7:67967Y#F+%FNE#F@A$F\'A#F\'A#F\'A#F"
    + "$A$[#:<=[# =Z%^#A+Q$^#A#F- F; F4 F# F0A#F/ACb&]! A&Y$A%LNA$^*KVL%^2L#^$ ^.A$=AP^N\'b ## F>A$FRA0\'L<A%FAL%A*F5+F)+A&FGG&A&F? 9FEA%F)9K&AKBICIFpA#J+A\'BEA%CEA%FIA)FUA,9B, B0 B( B# C, C0 C( C#Aeb&X% A*F7A+F)A9E\' EK E*AgF\'A#& FM F#A$&A#F8 9L)F8^#L(F@A)L*AQF4 F#A&L&F7L\'A$9F;A&9AbFYA%L#F#L1A#LO&G$ G#A&G%F% F$ F>A#G$A%\'L*A(Y*A(F>L#9F>L$AAF)=F=G#A%L&Y(A*FWA$Y(F7A#L)F4A&L)F3A(Y%A-L(b 1! FkAXBTA.CTA(L\'FEG%A)J+b G% L@ FK G#5A#F#AmG$F>L+&A)F7G,L%Y&A7F3G%Y%AGF6L(A5F8A*)\')FVG0Y(A%L5J+\'F#G#&A*G$)FNI$G%I#G#Y#1Y%\'A+1A#F:A(J+A"
    + "\'G$FEG&)G) J+Y%&I#&A)FD\'Y#&A*G#)FQI$G*I#F%Y%G%9)\'J+&9&Y$ L5A,F3 F:I$G$I#\')G#Y\'\'F#\'A`F( & F% F0 F+9A\'FP\'I$G)A&J+A\'G#I# F)A#F#A#F7 F( F# F& G#&I#\'I%A#I#A#I$A#&A\')A&F&I#A#G(A$G&b ,# FVI$G)I#G$)\'F%Y&J+Y# 9\'F$A?FQI$G\')\'I%G#)G#F#9&A)J+b G# FPI$G%A#I%G#)G#Y8F%G#ACFQI$G)I#\')G#Y$&A,J+A\'Y.A4FL\')\'I#G\')\'&9A\'J+AWF<A#G$I#G%)G&A%J+L#Y$=F(b Z# FMI$G*)G#9b E! BACAJ+L*A-F)A#&A#F) F# F9I\' I#A#G#)\'&)&)\'Y$A*J+AhF)A#FHI$G%A#G#I%\'&9&)A<&G+FIG\')&G%Y)\'A)&G\'I#G$FOG.)G#Y$&Y&A.FkA(Y+b W$ F* FF)G( G\')\'&Y&A+J+L4A$Y#F?A#G7 )G()G#)G#AkF( "
    + "F# FGG\'A$\' G# G(&\'A)J+A\'F\' F# FAI& G# I#\')\'&A(J+b W% F4G#I#Y#A(G#&)F. FCI#G&A$I#\')\'Y.J+b 7! &A0L6^)[%^2A.9b&;/ b G! b+P!  Y&A,b&%$ b -J b&B! Y#A.b&Q1 Q1\'F\'G0b K` b&(* b Z\'#b&Z) A(F@ J+A%Y#Fq J+A\'F?A#G&9A+FQG(Y&^%E%9=A+J+ L( F6A&F4b Q+ BACAL8Y%b F! FmA%\'&IXA(G%E.AbE#9%\'A,I#A/&b W@!&A)b&74 AK&A(&b H,#E% E( E# b&D% A0&A>F$A#&A/F%A)b&-\' b %E b&L! A&F.A$F*A(F+A#=G#9Q%b =*!GOA#G8A*b=U! A^b=W$ A+^HA#^^I#G$^$I\'Q)G)^#G(^?G%^_A6^dG$=b [! L5A-L5A-b=8! A*L:b (# B;C;B;C( C3B;C;! B#A#!A#B#A#B% B)C% # C( C,B;C;B# B%A#B) B"
    + "( C;B# B% B& !A$B( C;B;C;B;C;B;C;B;C;B;C;B;C=A#B::C::C\'B::C::C\'B::C::C\'B::C::C\'B::C::C\'!#A#JSb= ) GX^%GS^)\'^/\'^#Y&A0G& G0b 12 C+&C5A\'C\'b 6$ G( G2A#G( G# G&A&E`AB\'b Q! FNA$G(E(A#J+A%&=b  & F?\'A2FMG%J+A&;b 1( F<%G%J+b G, F( F% F# F0 b&&$ A#L*G(AJBCCCG(%A%J+A%Y#b 2- L]=L$;L%AnLN=L0b #$ F% F< F# &A#& F+ F% & &A\'&A%& & & F$ F# &A#& & & & & F# &A#F% F( F% F% & F+ F2A&F$ F& F2AUZ#b /% ^MA%b=E! A-^0A#^0 ^0 ^FA+L.b=B# AY^>A.^MA%^*A(^#A/^\'b ;# b=]$ ]&b=9, A%^2A$^.A$b=X! A%b=@! A\'^-A%=A0^-A%^YA)^+A\'^IA)^?A#^#Apb=5& A-"
    + "^/A#^.A$^*A(^O ^(A)^/A%^*A(^*A(b=4#  ^XAFJ+b \'1 &b   %b   %b ?<#&AA&b Y !&A\'&b =$ &A#&b  ;!&A/&b PU!&A0&b M* &b CG b&?) b C8 &b *.!&A&&b ?!!&b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b   %b 2R!1A?b1A! b  # b\'Q$ b   %b   %b   %b 1Y$3b   %b   %b   %b ^a$3A#3b   %b   %b   %b ^a$3"};
};
function jul_Logger() {
    let a = this; jl_Object.call(a);
    a.$name18 = null;
    a.$parent1 = null;
}
let jul_Logger_loggerCache = null,
jul_Logger_getLogger = $name => {
    let $logger, var$3, var$4, var$5, $parentName, $dotIndex;
    $logger = jul_Logger_loggerCache;
    if ($name === null) {
        $logger = $logger.$elementData.data[0];
        while ($logger !== null && $logger.$key !== null) {
            $logger = $logger.$next3;
        }
    } else {
        a: {
            if (!$name.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $name.$nativeString.length)
                        break a;
                    $name.$hashCode1 = (31 * $name.$hashCode1 | 0) + $name.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $name.$hashCode1;
        var$5 = $logger.$elementData.data;
        $logger = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($logger !== null) {
            if ($logger.$origKeyHash == var$4) {
                b: {
                    $parentName = $logger.$key;
                    if ($name !== $parentName) {
                        if ($name === $parentName)
                            var$3 = 1;
                        else if (!($parentName instanceof jl_String))
                            var$3 = 0;
                        else {
                            $parentName = $parentName;
                            var$3 = $name.$nativeString !== $parentName.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $logger = $logger.$next3;
        }
    }
    $logger = $logger === null ? null : $logger.$value0;
    if ($logger === null) {
        $logger = new jul_Logger;
        $logger.$name18 = $name;
        $dotIndex = jl_String_lastIndexOf0($name, 46, $name.$nativeString.length - 1 | 0);
        if ($dotIndex >= 0)
            $logger.$parent1 = jul_Logger_getLogger(jl_String_substring($name, 0, $dotIndex));
        else if (!($name.$nativeString.length ? 0 : 1))
            $logger.$parent1 = jul_Logger_getLogger($rt_s(3));
        ju_HashMap_putImpl(jul_Logger_loggerCache, $name, $logger);
    }
    return $logger;
},
jul_Logger_log = ($this, $record) => {
    let $message, var$3;
    $message = jul_Logger_format($this, $record.$message0, $record.$parameters);
    var$3 = $record.$level.$value10;
    if (var$3 >= jul_Level_SEVERE.$value10)
        jul_Logger_error$js_body$_40($rt_ustr($message));
    else if (var$3 < jul_Level_WARNING.$value10)
        jul_Logger_infoImpl$js_body$_38($rt_ustr($message));
    else
        jul_Logger_warn$js_body$_39($rt_ustr($message));
},
jul_Logger_format = ($this, $message, $params) => {
    let $sb, $index, $next, $paramStart, var$7, $index_0, var$9, var$10;
    if ($params === null)
        return $message;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    $index = 0;
    a: {
        b: {
            while (true) {
                if ($index >= $message.$nativeString.length)
                    break a;
                $next = jl_String_indexOf($message, 123, $index);
                if ($next < 0)
                    break a;
                $paramStart = $next + 1 | 0;
                var$7 = $paramStart;
                c: {
                    while (true) {
                        if (var$7 >= $message.$nativeString.length) {
                            $index_0 = (-1);
                            break c;
                        }
                        $index_0 = var$7 + 1 | 0;
                        if (var$7 < 0)
                            break b;
                        if (var$7 >= $message.$nativeString.length)
                            break b;
                        var$7 = $message.$nativeString.charCodeAt(var$7);
                        if (var$7 <= 48)
                            break;
                        if (var$7 >= 57)
                            break;
                        var$7 = $index_0;
                    }
                }
                if ($index_0 < 0)
                    break a;
                if ($index_0 < 0)
                    break;
                if ($index_0 >= $message.$nativeString.length)
                    break;
                if ($message.$nativeString.charCodeAt($index_0) != 125) {
                    jl_AbstractStringBuilder_insert1($sb, $sb.$length0, $message, $index, $index_0);
                    $index = $index_0;
                    continue;
                }
                var$9 = jl_String_substring($message, $paramStart, $index_0);
                if (var$9 === null) {
                    $message = new jl_NumberFormatException;
                    $message.$suppressionEnabled = 1;
                    $message.$writableStackTrace = 1;
                    $message.$message = $rt_s(104);
                    $rt_throw($message);
                }
                var$10 = $params.data;
                var$7 = jl_Integer_parseIntImpl(var$9, 0, var$9.$nativeString.length, 10);
                if (var$7 >= var$10.length) {
                    jl_AbstractStringBuilder_insert1($sb, $sb.$length0, $message, $index, $index_0);
                    $index = $index_0;
                    continue;
                }
                var$9 = var$10[var$7];
                jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$9 === null ? $rt_s(1) : var$9.$toString());
                $index = $index_0 + 1 | 0;
            }
            $message = new jl_StringIndexOutOfBoundsException;
            $message.$suppressionEnabled = 1;
            $message.$writableStackTrace = 1;
            $rt_throw($message);
        }
        $message = new jl_StringIndexOutOfBoundsException;
        $message.$suppressionEnabled = 1;
        $message.$writableStackTrace = 1;
        $rt_throw($message);
    }
    $message = new jl_String;
    $params = $sb.$buffer;
    var$10 = $params.data;
    $next = $sb.$length0;
    var$7 = var$10.length;
    if ($next >= 0 && $next <= (var$7 - 0 | 0)) {
        $message.$nativeString = $rt_charArrayToString($params.data, 0, $next);
        return $message;
    }
    $message = new jl_IndexOutOfBoundsException;
    $message.$suppressionEnabled = 1;
    $message.$writableStackTrace = 1;
    $rt_throw($message);
},
jul_Logger__clinit_ = () => {
    jul_Logger_loggerCache = ju_HashMap__init_();
},
jul_Logger_infoImpl$js_body$_38 = var$1 => {
    if (console) {
        console.info(var$1);
    }
},
jul_Logger_warn$js_body$_39 = var$1 => {
    if (console) {
        console.warn(var$1);
    }
},
jul_Logger_error$js_body$_40 = var$1 => {
    if (console) {
        console.error(var$1);
    }
},
otcic_JSStderrPrintStream = $rt_classWithoutFields(otcic_JsConsolePrintStream),
otcic_JSStderrPrintStream__init_0 = $this => {
    let var$1;
    var$1 = new ji_ByteArrayOutputStream;
    var$1.$buf = $rt_createByteArray(32);
    $this.$out0 = var$1;
    var$1 = new jl_StringBuilder;
    var$1.$buffer = $rt_createCharArray(16);
    $this.$sb = var$1;
    $this.$buffer0 = $rt_createCharArray(32);
    $this.$autoFlush = 0;
    $this.$charset = jnci_UTF8Charset_INSTANCE;
},
otcic_JSStderrPrintStream__init_ = () => {
    let var_0 = new otcic_JSStderrPrintStream();
    otcic_JSStderrPrintStream__init_0(var_0);
    return var_0;
},
otcic_JSStderrPrintStream_print = ($this, $s) => {
    if ($s === null)
        $s = $rt_s(1);
    $rt_putStderr($rt_ustr($s));
},
jl_Cloneable = $rt_classWithoutFields(0),
ju_RandomAccess = $rt_classWithoutFields(0);
function ju_ArrayList() {
    let a = this; ju_AbstractList.call(a);
    a.$array = null;
    a.$size0 = 0;
}
let ju_ArrayList__init_ = $this => {
    $this.$array = $rt_createArray(jl_Object, 10);
},
ju_ArrayList__init_4 = () => {
    let var_0 = new ju_ArrayList();
    ju_ArrayList__init_(var_0);
    return var_0;
},
ju_ArrayList__init_0 = ($this, $initialCapacity) => {
    let var$2;
    if ($initialCapacity >= 0) {
        $this.$array = $rt_createArray(jl_Object, $initialCapacity);
        return;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ju_ArrayList__init_3 = var_0 => {
    let var_1 = new ju_ArrayList();
    ju_ArrayList__init_0(var_1, var_0);
    return var_1;
},
ju_ArrayList__init_2 = ($this, $c) => {
    let $i, $iter, var$4, var$5;
    $i = $c.$size();
    if ($i < 0) {
        $c = new jl_IllegalArgumentException;
        $c.$suppressionEnabled = 1;
        $c.$writableStackTrace = 1;
        $rt_throw($c);
    }
    $this.$array = $rt_createArray(jl_Object, $i);
    $iter = $c.$iterator();
    $i = 0;
    while (true) {
        var$4 = $this.$array.data;
        var$5 = var$4.length;
        if ($i >= var$5)
            break;
        var$4[$i] = $iter.$next();
        $i = $i + 1 | 0;
    }
    $this.$size0 = var$5;
},
ju_ArrayList__init_1 = var_0 => {
    let var_1 = new ju_ArrayList();
    ju_ArrayList__init_2(var_1, var_0);
    return var_1;
},
ju_ArrayList_ensureCapacity = ($this, $minCapacity) => {
    let var$2, var$3, var$4, $newLength, var$6, var$7, var$8, var$9, var$10, var$11;
    var$2 = $this.$array;
    var$3 = var$2.data;
    var$4 = var$3.length;
    if (var$4 < $minCapacity) {
        if (var$4 >= 1073741823)
            $newLength = 2147483647;
        else {
            var$6 = var$4 * 2 | 0;
            $newLength = 5;
            if (var$6 > $newLength)
                $newLength = var$6;
            if ($minCapacity > $newLength)
                $newLength = $minCapacity;
        }
        var$7 = var$2.constructor;
        if (var$7 === null)
            var$8 = null;
        else {
            var$8 = var$7.classObject;
            if (var$8 === null) {
                var$8 = new jl_Class;
                var$8.$platformClass = var$7;
                var$7.classObject = var$8;
            }
        }
        var$9 = var$8.$platformClass.$meta.item;
        if (var$9 === null)
            var$7 = null;
        else {
            var$7 = var$9.classObject;
            if (var$7 === null) {
                var$7 = new jl_Class;
                var$7.$platformClass = var$9;
                var$9.classObject = var$7;
            }
        }
        if (var$7 === null) {
            var$8 = new jl_NullPointerException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
        if (var$7 === $rt_cls($rt_voidcls)) {
            var$8 = new jl_IllegalArgumentException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
        if ($newLength < 0) {
            var$8 = new jl_NegativeArraySizeException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
        var$10 = jlr_Array_newInstanceImpl(var$7.$platformClass, $newLength);
        if ($newLength < var$4)
            var$4 = $newLength;
        var$11 = 0;
        while (var$11 < var$4) {
            var$10.data[var$11] = var$3[var$11];
            var$11 = var$11 + 1 | 0;
        }
        $this.$array = var$10;
    }
},
ju_ArrayList_get = ($this, $index) => {
    let var$2;
    if ($index >= 0 && $index < $this.$size0)
        return $this.$array.data[$index];
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ju_ArrayList_size = $this => {
    return $this.$size0;
},
ju_ArrayList_set = ($this, $index, $element) => {
    let var$3, $old;
    if ($index >= 0 && $index < $this.$size0) {
        var$3 = $this.$array.data;
        $old = var$3[$index];
        var$3[$index] = $element;
        return $old;
    }
    $element = new jl_IndexOutOfBoundsException;
    $element.$suppressionEnabled = 1;
    $element.$writableStackTrace = 1;
    $rt_throw($element);
},
ju_ArrayList_add = ($this, $element) => {
    let var$2, var$3;
    ju_ArrayList_ensureCapacity($this, $this.$size0 + 1 | 0);
    var$2 = $this.$array.data;
    var$3 = $this.$size0;
    $this.$size0 = var$3 + 1 | 0;
    var$2[var$3] = $element;
    $this.$modCount = $this.$modCount + 1 | 0;
    return 1;
},
ju_ArrayList_add0 = ($this, $index, $element) => {
    let var$3, $i, var$5;
    if ($index >= 0) {
        var$3 = $this.$size0;
        if ($index <= var$3) {
            ju_ArrayList_ensureCapacity($this, var$3 + 1 | 0);
            var$3 = $this.$size0;
            $i = var$3;
            while ($i > $index) {
                var$5 = $this.$array.data;
                var$5[$i] = var$5[$i - 1 | 0];
                $i = $i + (-1) | 0;
            }
            $this.$array.data[$index] = $element;
            $this.$size0 = var$3 + 1 | 0;
            $this.$modCount = $this.$modCount + 1 | 0;
            return;
        }
    }
    $element = new jl_IndexOutOfBoundsException;
    $element.$suppressionEnabled = 1;
    $element.$writableStackTrace = 1;
    $rt_throw($element);
},
ju_ArrayList_remove = ($this, $i) => {
    let var$2, var$3, $old, $i_0;
    if ($i >= 0) {
        var$2 = $this.$size0;
        if ($i < var$2) {
            var$3 = $this.$array.data;
            $old = var$3[$i];
            var$2 = var$2 - 1 | 0;
            $this.$size0 = var$2;
            while ($i < var$2) {
                $i_0 = $i + 1 | 0;
                var$3[$i] = var$3[$i_0];
                $i = $i_0;
            }
            var$3[var$2] = null;
            $this.$modCount = $this.$modCount + 1 | 0;
            return $old;
        }
    }
    $old = new jl_IndexOutOfBoundsException;
    $old.$suppressionEnabled = 1;
    $old.$writableStackTrace = 1;
    $rt_throw($old);
},
ju_ArrayList_clear = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $this.$array;
    var$2 = 0;
    var$3 = $this.$size0;
    var$4 = null;
    if (var$2 > var$3) {
        var$4 = new jl_IllegalArgumentException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    while (var$2 < var$3) {
        var$5 = var$1.data;
        var$6 = var$2 + 1 | 0;
        var$5[var$2] = var$4;
        var$2 = var$6;
    }
    $this.$size0 = 0;
    $this.$modCount = $this.$modCount + 1 | 0;
},
ju_ArrayList_addAll = ($this, $index, $c) => {
    let $i, var$4, $gap, $iter$index, var$7, var$8, $iter$index_0;
    if ($index >= 0) {
        $i = $this.$size0;
        if ($index <= $i) {
            var$4 = $c.$size0;
            if (var$4 ? 0 : 1)
                return 0;
            ju_ArrayList_ensureCapacity($this, $i + var$4 | 0);
            $gap = $c.$size0;
            $iter$index = $this.$size0;
            $i = $iter$index - 1 | 0;
            while ($i >= $index) {
                var$7 = $this.$array.data;
                var$7[$i + $gap | 0] = var$7[$i];
                $i = $i + (-1) | 0;
            }
            $this.$size0 = $iter$index + $gap | 0;
            $iter$index = 0;
            var$8 = $c.$modCount;
            $c.$size();
            $i = 0;
            while ($i < $gap) {
                var$7 = $this.$array;
                var$4 = $index + 1 | 0;
                if (var$8 < $c.$modCount) {
                    $c = new ju_ConcurrentModificationException;
                    $c.$suppressionEnabled = 1;
                    $c.$writableStackTrace = 1;
                    $rt_throw($c);
                }
                var$7 = var$7.data;
                $iter$index_0 = $iter$index + 1 | 0;
                var$7[$index] = $c.$get($iter$index);
                $i = $i + 1 | 0;
                $index = var$4;
                $iter$index = $iter$index_0;
            }
            $this.$modCount = $this.$modCount + 1 | 0;
            return 1;
        }
    }
    $c = new jl_IndexOutOfBoundsException;
    $c.$suppressionEnabled = 1;
    $c.$writableStackTrace = 1;
    $rt_throw($c);
},
ju_ArrayList_removeRange = ($this, $start, $i) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$3 = $rt_compare($start, $i);
    if (var$3 > 0) {
        var$4 = new jl_IllegalArgumentException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($start >= 0) {
        var$5 = $this.$size0;
        if ($i <= var$5) {
            if (!var$3)
                return;
            var$6 = $i;
            while ($i < var$5) {
                var$7 = $this.$array.data;
                var$8 = $start + 1 | 0;
                var$3 = var$6 + 1 | 0;
                var$7[$start] = var$7[var$6];
                $i = $i + 1 | 0;
                $start = var$8;
                var$6 = var$3;
            }
            var$9 = $this.$array;
            var$4 = null;
            if ($start > var$6) {
                var$4 = new jl_IllegalArgumentException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            var$3 = $start;
            while (var$3 < var$6) {
                var$7 = var$9.data;
                $i = var$3 + 1 | 0;
                var$7[var$3] = var$4;
                var$3 = $i;
            }
            $this.$size0 = var$5 - (var$6 - $start | 0) | 0;
            $this.$modCount = $this.$modCount + 1 | 0;
            return;
        }
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
ju_ArrayList_checkIndex = ($this, $index) => {
    let var$2;
    if ($index >= 0 && $index < $this.$size0)
        return;
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ju_ArrayList_toString = $this => {
    let var$1, $length, $buffer, $i, var$5, var$6, var$7;
    var$1 = $this.$size0;
    if (!var$1)
        return $rt_s(101);
    $length = var$1 - 1 | 0;
    $buffer = new jl_StringBuilder;
    $buffer.$buffer = $rt_createCharArray(var$1 * 16 | 0);
    var$1 = $buffer.$length0;
    jl_AbstractStringBuilder_insertSpace($buffer, var$1, var$1 + 1 | 0);
    $buffer.$buffer.data[var$1] = 91;
    $i = 0;
    while ($i < $length) {
        var$5 = $this.$array.data;
        var$6 = var$5[$i] !== $this ? var$5[$i] : $rt_s(117);
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, var$6 === null ? $rt_s(1) : var$6.$toString());
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $rt_s(118));
        $i = $i + 1 | 0;
    }
    var$5 = $this.$array.data;
    var$6 = var$5[$length] !== $this ? var$5[$length] : $rt_s(117);
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, var$6 === null ? $rt_s(1) : var$6.$toString());
    var$1 = $buffer.$length0;
    jl_AbstractStringBuilder_insertSpace($buffer, var$1, var$1 + 1 | 0);
    var$5 = $buffer.$buffer;
    var$7 = var$5.data;
    var$7[var$1] = 93;
    var$6 = new jl_String;
    var$1 = $buffer.$length0;
    $length = var$7.length;
    if (var$1 >= 0 && var$1 <= ($length - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
        return var$6;
    }
    $buffer = new jl_IndexOutOfBoundsException;
    $buffer.$suppressionEnabled = 1;
    $buffer.$writableStackTrace = 1;
    $rt_throw($buffer);
},
ju_ArrayList_hashCode = $this => {
    let $result, $i, var$3;
    $result = 1;
    $i = 0;
    while ($i < $this.$size0) {
        $result = 31 * $result | 0;
        var$3 = $this.$array.data[$i];
        $result = $result + (var$3 !== null ? var$3.$hashCode() : 0) | 0;
        $i = $i + 1 | 0;
    }
    return $result;
};
function nles_IntegratedServer$PKT() {
    let a = this; jl_Object.call(a);
    a.$channel0 = null;
    a.$data3 = null;
}
let nles_IntegratedServer$PKT__init_0 = ($this, $channel, $data) => {
    $this.$channel0 = $channel;
    $this.$data3 = $data;
},
nles_IntegratedServer$PKT__init_ = (var_0, var_1) => {
    let var_2 = new nles_IntegratedServer$PKT();
    nles_IntegratedServer$PKT__init_0(var_2, var_0, var_1);
    return var_2;
};
function nlesi_IPCPacket00StartServer() {
    let a = this; jl_Object.call(a);
    a.$worldName2 = null;
    a.$ownerName = null;
    a.$initialDifficulty = 0;
}
let nlesi_IPCPacket00StartServer__init_ = $this => {
    return;
},
nlesi_IPCPacket00StartServer__init_0 = () => {
    let var_0 = new nlesi_IPCPacket00StartServer();
    nlesi_IPCPacket00StartServer__init_(var_0);
    return var_0;
},
nlesi_IPCPacket00StartServer_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName2 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$ownerName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$initialDifficulty = var$2 << 24 >> 24;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket00StartServer_id = $this => {
    return 0;
};
function nlesi_IPCPacket02InitWorld() {
    let a = this; jl_Object.call(a);
    a.$worldName5 = null;
    a.$gamemode0 = 0;
    a.$worldType0 = 0;
    a.$worldArgs = null;
    a.$seed2 = Long_ZERO;
    a.$cheats = 0;
    a.$structures = 0;
    a.$bonusChest = 0;
}
let nlesi_IPCPacket02InitWorld__init_ = $this => {
    return;
},
nlesi_IPCPacket02InitWorld__init_0 = () => {
    let var_0 = new nlesi_IPCPacket02InitWorld();
    nlesi_IPCPacket02InitWorld__init_(var_0);
    return var_0;
},
nlesi_IPCPacket02InitWorld_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName5 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = $bin.$in.$read();
    if (var$2 < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$gamemode0 = var$2 << 24 >> 24;
    var$2 = $bin.$in.$read();
    if (var$2 < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$worldType0 = var$2 << 24 >> 24;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldArgs = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    $this.$seed2 = ji_DataInputStream_readLong($bin);
    var$2 = $bin.$in.$read();
    if (var$2 < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$cheats = !var$2 ? 0 : 1;
    var$2 = $bin.$in.$read();
    if (var$2 < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$structures = !var$2 ? 0 : 1;
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$bonusChest = !var$2 ? 0 : 1;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket02InitWorld_id = $this => {
    return 2;
};
function nms_WorldSettings() {
    let a = this; jl_Object.call(a);
    a.$seed1 = Long_ZERO;
    a.$theGameType0 = null;
    a.$mapFeaturesEnabled1 = 0;
    a.$hardcoreEnabled = 0;
    a.$terrainType2 = null;
    a.$commandsAllowed = 0;
    a.$bonusChestEnabled = 0;
    a.$field_82751_h = null;
}
let nms_WorldSettings__init_ = ($this, $par1, $par3EnumGameType, $par4, $par5, $par6WorldType) => {
    $this.$field_82751_h = $rt_s(3);
    $this.$seed1 = $par1;
    $this.$theGameType0 = $par3EnumGameType;
    $this.$mapFeaturesEnabled1 = $par4;
    $this.$hardcoreEnabled = $par5;
    $this.$terrainType2 = $par6WorldType;
},
nms_WorldSettings__init_0 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_WorldSettings();
    nms_WorldSettings__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_WorldSettings_enableBonusChest = $this => {
    $this.$bonusChestEnabled = 1;
    return $this;
},
nms_WorldSettings_enableCommands = $this => {
    $this.$commandsAllowed = 1;
    return $this;
},
nms_WorldSettings_func_82750_a = ($this, $par1Str) => {
    $this.$field_82751_h = $par1Str;
    return $this;
},
nms_WorldSettings_getGameType = $this => {
    return $this.$theGameType0;
};
function nlesi_IPCPacket03DeleteWorld() {
    jl_Object.call(this);
    this.$worldName4 = null;
}
let nlesi_IPCPacket03DeleteWorld__init_ = $this => {
    return;
},
nlesi_IPCPacket03DeleteWorld__init_0 = () => {
    let var_0 = new nlesi_IPCPacket03DeleteWorld();
    nlesi_IPCPacket03DeleteWorld__init_(var_0);
    return var_0;
},
nlesi_IPCPacket03DeleteWorld_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName4 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
},
nlesi_IPCPacket03DeleteWorld_id = $this => {
    return 3;
},
nles_SYS = $rt_classWithoutFields(),
nles_SYS_VFS = null,
nles_SYS_$_teavm_clinitCalled_$ = false,
nles_SYS_$callClinit = () => {
    let $ptr = 0;
    if ($rt_resuming()) {
        $ptr = $rt_nativeThread().pop();
    } else if (nles_SYS_$_teavm_clinitCalled_$) {
        return;
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_SYS_$_teavm_clinitCalled_$ = true;
        $ptr = 1;
    case 1:
        nles_SYS__clinit_();
        if ($rt_suspending()) {
            break main;
        }
        nles_SYS_$callClinit = $rt_eraseClinit(nles_SYS);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($ptr);
},
nles_SYS__init_ = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nles_SYS__init_0 = () => {
    let var_0 = new nles_SYS();
    nles_SYS__init_(var_0);
    return var_0;
},
nles_SYS__clinit_ = () => {
    let var$1, $vh, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$vh = $thread.pop();var$1 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = eaglercraftServerOpts.worldDatabaseName;
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        var$1 = $rt_str(var$1);
        $vh = new jl_StringBuilder;
        $vh.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($vh, $vh.$length0, $rt_s(124));
        var$3 = $vh.$length0;
        if (var$1 === null)
            var$1 = $rt_s(1);
        jl_AbstractStringBuilder_insert($vh, var$3, var$1);
        var$1 = new jl_String;
        var$4 = $vh.$buffer;
        var$5 = var$4.data;
        var$6 = $vh.$length0;
        var$7 = var$5.length;
        if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
            var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
            $ptr = 2;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 2:
        $tmp = nles_VirtualFilesystem_openVFS(var$1);
        if ($rt_suspending()) {
            break main;
        }
        $vh = $tmp;
        if ($vh.$vfs === null) {
            if (jl_System_errCache === null) {
                var$1 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$8.$buf = $rt_createByteArray(32);
                var$1.$out0 = var$8;
                var$8 = new jl_StringBuilder;
                jl_Object__init_(var$8);
                var$8.$buffer = $rt_createCharArray(16);
                var$1.$sb = var$8;
                var$1.$buffer0 = $rt_createCharArray(32);
                var$1.$autoFlush = 0;
                var$1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$1;
            }
            $rt_putStderr("Could not init filesystem!");
            $rt_putStderr("\n");
            var$9 = new jl_RuntimeException;
            var$9.$suppressionEnabled = 1;
            var$9.$writableStackTrace = 1;
            var$9.$message = $rt_s(125);
            nles_IntegratedServer_throwExceptionToClient($rt_s(126), var$9);
        }
        nles_SYS_VFS = $vh.$vfs;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$1, $vh, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
};
function nlesi_IPCPacket04RenameWorld() {
    let a = this; jl_Object.call(a);
    a.$worldOldName = null;
    a.$worldNewName = null;
    a.$displayName1 = null;
    a.$copy0 = 0;
}
let nlesi_IPCPacket04RenameWorld__init_ = $this => {
    return;
},
nlesi_IPCPacket04RenameWorld__init_0 = () => {
    let var_0 = new nlesi_IPCPacket04RenameWorld();
    nlesi_IPCPacket04RenameWorld__init_(var_0);
    return var_0;
},
nlesi_IPCPacket04RenameWorld_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldOldName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldNewName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$displayName1 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$copy0 = !var$2 ? 0 : 1;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket04RenameWorld_id = $this => {
    return 4;
};
function nlesi_IPCPacket05RequestData() {
    let a = this; jl_Object.call(a);
    a.$worldName = null;
    a.$request = 0;
}
let nlesi_IPCPacket05RequestData__init_ = $this => {
    return;
},
nlesi_IPCPacket05RequestData__init_0 = () => {
    let var_0 = new nlesi_IPCPacket05RequestData();
    nlesi_IPCPacket05RequestData__init_(var_0);
    return var_0;
},
nlesi_IPCPacket05RequestData_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$request = var$2 << 24 >> 24;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket05RequestData_id = $this => {
    return 5;
};
function nlesi_IPCPacket06RenameWorldNBT() {
    let a = this; jl_Object.call(a);
    a.$worldName1 = null;
    a.$displayName = null;
}
let nlesi_IPCPacket06RenameWorldNBT__init_ = $this => {
    return;
},
nlesi_IPCPacket06RenameWorldNBT__init_0 = () => {
    let var_0 = new nlesi_IPCPacket06RenameWorldNBT();
    nlesi_IPCPacket06RenameWorldNBT__init_(var_0);
    return var_0;
},
nlesi_IPCPacket06RenameWorldNBT_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName1 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$displayName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
},
nlesi_IPCPacket06RenameWorldNBT_id = $this => {
    return 6;
};
function nlesi_IPCPacket07ImportWorld() {
    let a = this; jl_Object.call(a);
    a.$worldName0 = null;
    a.$worldData = null;
    a.$worldFormat = 0;
}
let nlesi_IPCPacket07ImportWorld__init_ = $this => {
    return;
},
nlesi_IPCPacket07ImportWorld__init_0 = () => {
    let var_0 = new nlesi_IPCPacket07ImportWorld();
    nlesi_IPCPacket07ImportWorld__init_(var_0);
    return var_0;
},
nlesi_IPCPacket07ImportWorld_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName0 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    $this.$worldData = $rt_createByteArray(ji_DataInputStream_readInt($bin));
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$worldFormat = var$2 << 24 >> 24;
        var$3 = $this.$worldData;
        ji_DataInputStream_readFully($bin, var$3, 0, var$3.data.length);
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket07ImportWorld_id = $this => {
    return 7;
};
function nlesi_IPCPacket0ASetWorldDifficulty() {
    jl_Object.call(this);
    this.$difficulty = 0;
}
let nlesi_IPCPacket0ASetWorldDifficulty__init_ = $this => {
    return;
},
nlesi_IPCPacket0ASetWorldDifficulty__init_0 = () => {
    let var_0 = new nlesi_IPCPacket0ASetWorldDifficulty();
    nlesi_IPCPacket0ASetWorldDifficulty__init_(var_0);
    return var_0;
},
nlesi_IPCPacket0ASetWorldDifficulty_deserialize = ($this, $bin) => {
    let var$2;
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$difficulty = var$2 << 24 >> 24;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket0ASetWorldDifficulty_id = $this => {
    return 10;
};
function nlesi_IPCPacket0BPause() {
    jl_Object.call(this);
    this.$pause = 0;
}
let nlesi_IPCPacket0BPause__init_ = $this => {
    return;
},
nlesi_IPCPacket0BPause__init_0 = () => {
    let var_0 = new nlesi_IPCPacket0BPause();
    nlesi_IPCPacket0BPause__init_(var_0);
    return var_0;
},
nlesi_IPCPacket0BPause_deserialize = ($this, $bin) => {
    let var$2;
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$pause = !var$2 ? 0 : 1;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket0BPause_id = $this => {
    return 11;
};
function nlesi_IPCPacket0CPlayerChannel() {
    let a = this; jl_Object.call(a);
    a.$channel = null;
    a.$open = 0;
}
let nlesi_IPCPacket0CPlayerChannel__init_ = $this => {
    return;
},
nlesi_IPCPacket0CPlayerChannel__init_0 = () => {
    let var_0 = new nlesi_IPCPacket0CPlayerChannel();
    nlesi_IPCPacket0CPlayerChannel__init_(var_0);
    return var_0;
},
nlesi_IPCPacket0CPlayerChannel_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$channel = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$open = !var$2 ? 0 : 1;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket0CPlayerChannel_serialize = ($this, $bin) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$channel;
    var$3 = ji_DataOutputStream_countUTFBytes($bin, var$2);
    if (Long_gt(var$3, Long_fromInt(65535))) {
        $bin = new ji_IOException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $bin.$message = $rt_s(127);
        $rt_throw($bin);
    }
    var$4 = Long_lo(var$3);
    var$5 = $rt_createByteArray(var$4 + 2 | 0);
    var$6 = var$5.data;
    var$6[0] = var$4 >> 8 << 24 >> 24;
    var$6[1] = var$4 << 24 >> 24;
    var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($bin, var$2, var$5, 2);
    $bin.$out0.$write1(var$5, 0, var$4);
    $bin.$written = $bin.$written + var$4 | 0;
    var$4 = $this.$open;
    $bin.$out0.$write0(!var$4 ? 0 : 1);
    $bin.$written = $bin.$written + 1 | 0;
},
nlesi_IPCPacket0CPlayerChannel_id = $this => {
    return 12;
},
nlesi_IPCPacket0CPlayerChannel_size = $this => {
    return nlesi_IPCPacketBase_strLen($this.$channel) + 1 | 0;
};
function nlesi_IPCPacket14StringList() {
    let a = this; jl_Object.call(a);
    a.$opCode = 0;
    a.$stringList = null;
}
let nlesi_IPCPacket14StringList__init_ = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$stringList = var$1;
},
nlesi_IPCPacket14StringList__init_0 = () => {
    let var_0 = new nlesi_IPCPacket14StringList();
    nlesi_IPCPacket14StringList__init_(var_0);
    return var_0;
},
nlesi_IPCPacket14StringList_deserialize = ($this, $bin) => {
    let var$2, var$3, $len, var$5, var$6, var$7, var$8, $i;
    var$2 = $this.$stringList;
    var$3 = var$2.$array;
    $len = 0;
    var$5 = var$2.$size0;
    var$6 = null;
    if ($len > var$5) {
        $bin = new jl_IllegalArgumentException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    while ($len < var$5) {
        var$7 = var$3.data;
        var$8 = $len + 1 | 0;
        var$7[$len] = var$6;
        $len = var$8;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    $len = $bin.$in.$read();
    if ($len < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$opCode = $len << 24 >> 24;
    $len = ji_DataInputStream_readInt($bin);
    $i = 0;
    while ($i < $len) {
        var$6 = $this.$stringList;
        var$5 = ji_DataInputStream_readUnsignedShort($bin);
        var$3 = $rt_createByteArray(var$5);
        var$7 = $rt_createCharArray(var$5);
        ji_DataInputStream_readFully($bin, var$3, 0, var$5);
        var$2 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$7, 0, var$5);
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$3 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$3[var$8] = var$2;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $i = $i + 1 | 0;
    }
},
nlesi_IPCPacket14StringList_serialize = ($this, $bin) => {
    let var$2, var$3, var$4, var$5, var$6, $str, var$8, var$9, var$10;
    var$2 = $this.$opCode;
    $bin.$out0.$write0(var$2);
    $bin.$written = $bin.$written + 1 | 0;
    ji_DataOutputStream_writeInt($bin, $this.$stringList.$size0);
    var$3 = $this.$stringList;
    var$4 = 0;
    var$5 = var$3.$modCount;
    var$6 = var$3.$size();
    while (var$4 >= var$6 ? 0 : 1) {
        if (var$5 < var$3.$modCount) {
            $bin = new ju_ConcurrentModificationException;
            $bin.$suppressionEnabled = 1;
            $bin.$writableStackTrace = 1;
            $rt_throw($bin);
        }
        var$2 = var$4 + 1 | 0;
        $str = var$3.$get(var$4);
        var$8 = ji_DataOutputStream_countUTFBytes($bin, $str);
        if (Long_gt(var$8, Long_fromInt(65535))) {
            $bin = new ji_IOException;
            $bin.$suppressionEnabled = 1;
            $bin.$writableStackTrace = 1;
            $bin.$message = $rt_s(127);
            $rt_throw($bin);
        }
        var$4 = Long_lo(var$8);
        var$9 = $rt_createByteArray(var$4 + 2 | 0);
        var$10 = var$9.data;
        var$10[0] = var$4 >> 8 << 24 >> 24;
        var$10[1] = var$4 << 24 >> 24;
        var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($bin, $str, var$9, 2);
        $bin.$out0.$write1(var$9, 0, var$4);
        $bin.$written = $bin.$written + var$4 | 0;
        var$4 = var$2;
    }
},
nlesi_IPCPacket14StringList_id = $this => {
    return 20;
},
nlesi_IPCPacket14StringList_size = $this => {
    let $len, var$2, var$3, var$4, var$5, var$6;
    $len = 5;
    var$2 = $this.$stringList;
    var$3 = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    while (var$3 >= var$5 ? 0 : 1) {
        if (var$4 < var$2.$modCount) {
            var$2 = new ju_ConcurrentModificationException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        var$6 = var$3 + 1 | 0;
        $len = $len + nlesi_IPCPacketBase_strLen(var$2.$get(var$3)) | 0;
        var$3 = var$6;
    }
    return $len;
};
function nlesi_IPCPacket18ClearPlayers() {
    jl_Object.call(this);
    this.$worldName3 = null;
}
let nlesi_IPCPacket18ClearPlayers__init_ = $this => {
    $this.$worldName3 = null;
},
nlesi_IPCPacket18ClearPlayers__init_0 = () => {
    let var_0 = new nlesi_IPCPacket18ClearPlayers();
    nlesi_IPCPacket18ClearPlayers__init_(var_0);
    return var_0;
},
nlesi_IPCPacket18ClearPlayers_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$worldName3 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
},
nlesi_IPCPacket18ClearPlayers_id = $this => {
    return 24;
};
function nms_StringTranslate() {
    let a = this; jl_Object.call(a);
    a.$translateTable = null;
    a.$languageList = null;
}
let nms_StringTranslate_instance = null,
nms_StringTranslate_$callClinit = () => {
    nms_StringTranslate_$callClinit = $rt_eraseClinit(nms_StringTranslate);
    nms_StringTranslate__clinit_();
},
nms_StringTranslate_init = $en_us => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    nms_StringTranslate_$callClinit();
    var$2 = nms_StringTranslate_instance;
    var$3 = new ju_TreeMap;
    var$3.$originalComparator = null;
    var$3.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
    var$2.$languageList = var$3;
    var$4 = var$3.$root;
    if (var$4 === null) {
        var$4 = new ju_TreeMap$TreeNode;
        var$5 = null;
        var$4.$key0 = $rt_s(128);
        var$4.$value2 = var$5;
        var$4.$height = 1;
        var$4.$size1 = 1;
    } else {
        var$5 = var$4.$key0;
        var$6 = $rt_s(128);
        var$7 = jl_String_compareTo(var$6, var$5);
        if (var$7) {
            if (var$7 >= 0) {
                var$5 = var$4.$right;
                if (var$5 === null) {
                    var$5 = new ju_TreeMap$TreeNode;
                    var$8 = null;
                    var$5.$key0 = $rt_s(128);
                    var$5.$value2 = var$8;
                    var$5.$height = 1;
                    var$5.$size1 = 1;
                } else {
                    var$7 = jl_String_compareTo(var$6, var$5.$key0);
                    if (var$7) {
                        if (var$7 >= 0) {
                            var$8 = var$5.$right;
                            if (var$8 === null) {
                                var$8 = new ju_TreeMap$TreeNode;
                                var$9 = null;
                                var$8.$key0 = $rt_s(128);
                                var$8.$value2 = var$9;
                                var$8.$height = 1;
                                var$8.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$6, var$8.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$9 = var$8.$right;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            jl_Object__init_(var$9);
                                            var$9.$key0 = $rt_s(128);
                                            var$9.$value2 = var$10;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$9.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$right = var$10;
                                                } else {
                                                    var$10 = var$9.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        var$8.$right = var$9;
                                    } else {
                                        var$9 = var$8.$left;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            jl_Object__init_(var$9);
                                            var$9.$key0 = $rt_s(128);
                                            var$9.$value2 = var$10;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$9.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$right = var$10;
                                                } else {
                                                    var$10 = var$9.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        var$8.$left = var$9;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$8);
                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                }
                            }
                            var$5.$right = var$8;
                        } else {
                            var$8 = var$5.$left;
                            if (var$8 === null) {
                                var$8 = new ju_TreeMap$TreeNode;
                                var$9 = null;
                                var$8.$key0 = $rt_s(128);
                                var$8.$value2 = var$9;
                                var$8.$height = 1;
                                var$8.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$6, var$8.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$9 = var$8.$right;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            jl_Object__init_(var$9);
                                            var$9.$key0 = $rt_s(128);
                                            var$9.$value2 = var$10;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$9.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$right = var$10;
                                                } else {
                                                    var$11 = var$9.$left;
                                                    if (var$11 === null) {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(128), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$11.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$11.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$11.$right = var$6;
                                                            } else {
                                                                var$10 = var$11.$left;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$11.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    }
                                                    var$9.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        var$8.$right = var$9;
                                    } else {
                                        var$9 = var$8.$left;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            jl_Object__init_(var$9);
                                            var$9.$key0 = $rt_s(128);
                                            var$9.$value2 = var$10;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$9.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$right = var$10;
                                                } else {
                                                    var$10 = var$9.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$10.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$right = var$6;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $rt_s(128));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        var$8.$left = var$9;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$8);
                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                }
                            }
                            var$5.$left = var$8;
                        }
                        ju_TreeMap$TreeNode_fix(var$5);
                        var$5 = ju_TreeMap$TreeNode_balance(var$5);
                    }
                }
                var$4.$right = var$5;
            } else {
                var$5 = var$4.$left;
                if (var$5 === null) {
                    var$5 = new ju_TreeMap$TreeNode;
                    var$8 = null;
                    var$5.$key0 = $rt_s(128);
                    var$5.$value2 = var$8;
                    var$5.$height = 1;
                    var$5.$size1 = 1;
                } else {
                    var$7 = jl_String_compareTo(var$6, var$5.$key0);
                    if (var$7) {
                        if (var$7 >= 0) {
                            var$8 = var$5.$right;
                            if (var$8 === null) {
                                var$8 = new ju_TreeMap$TreeNode;
                                var$9 = null;
                                var$8.$key0 = $rt_s(128);
                                var$8.$value2 = var$9;
                                var$8.$height = 1;
                                var$8.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$6, var$8.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$12 = var$8.$right;
                                        if (var$12 === null) {
                                            var$12 = new ju_TreeMap$TreeNode;
                                            var$9 = null;
                                            jl_Object__init_(var$12);
                                            var$12.$key0 = $rt_s(128);
                                            var$12.$value2 = var$9;
                                            var$12.$height = 1;
                                            var$12.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$12.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$9 = var$12.$right;
                                                    if (var$9 === null) {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$9, $rt_s(128), null);
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$9.$right;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$right = var$10;
                                                            } else {
                                                                var$10 = var$9.$left;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    }
                                                    var$12.$right = var$9;
                                                } else {
                                                    var$9 = var$12.$left;
                                                    if (var$9 === null) {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$9, $rt_s(128), null);
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$9.$right;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$right = var$10;
                                                            } else {
                                                                var$10 = var$9.$left;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    }
                                                    var$12.$left = var$9;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$12);
                                                var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                            }
                                        }
                                        var$8.$right = var$12;
                                    } else {
                                        var$11 = var$8.$left;
                                        if (var$11 === null) {
                                            var$11 = new ju_TreeMap$TreeNode;
                                            var$9 = null;
                                            jl_Object__init_(var$11);
                                            var$11.$key0 = $rt_s(128);
                                            var$11.$value2 = var$9;
                                            var$11.$height = 1;
                                            var$11.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$11.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$12 = var$11.$right;
                                                    if (var$12 === null) {
                                                        var$12 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$12, $rt_s(128), null);
                                                        var$12.$height = 1;
                                                        var$12.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$12.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$9 = var$12.$right;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$12.$right = var$9;
                                                            } else {
                                                                var$9 = var$12.$left;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$12.$left = var$9;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$right = var$12;
                                                } else {
                                                    var$10 = var$11.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$9 = var$10.$right;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$10.$right = var$9;
                                                            } else {
                                                                var$9 = var$10.$left;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$10.$left = var$9;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$11.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$11);
                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                            }
                                        }
                                        var$8.$left = var$11;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$8);
                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                }
                            }
                            var$5.$right = var$8;
                        } else {
                            var$11 = var$5.$left;
                            if (var$11 === null) {
                                var$11 = new ju_TreeMap$TreeNode;
                                var$8 = null;
                                var$11.$key0 = $rt_s(128);
                                var$11.$value2 = var$8;
                                var$11.$height = 1;
                                var$11.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$6, var$11.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$12 = var$11.$right;
                                        if (var$12 === null) {
                                            var$12 = new ju_TreeMap$TreeNode;
                                            var$8 = null;
                                            jl_Object__init_(var$12);
                                            var$12.$key0 = $rt_s(128);
                                            var$12.$value2 = var$8;
                                            var$12.$height = 1;
                                            var$12.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$12.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$8 = var$12.$right;
                                                    if (var$8 === null) {
                                                        var$8 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$8, $rt_s(128), null);
                                                        var$8.$height = 1;
                                                        var$8.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$8.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$9 = var$8.$right;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$8.$right = var$9;
                                                            } else {
                                                                var$9 = var$8.$left;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$8.$left = var$9;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                        }
                                                    }
                                                    var$12.$right = var$8;
                                                } else {
                                                    var$8 = var$12.$left;
                                                    if (var$8 === null) {
                                                        var$8 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$8, $rt_s(128), null);
                                                        var$8.$height = 1;
                                                        var$8.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$8.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$9 = var$8.$right;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$8.$right = var$9;
                                                            } else {
                                                                var$9 = var$8.$left;
                                                                if (var$9 === null)
                                                                    var$9 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $rt_s(128));
                                                                        else
                                                                            var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$8.$left = var$9;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                        }
                                                    }
                                                    var$12.$left = var$8;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$12);
                                                var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                            }
                                        }
                                        var$11.$right = var$12;
                                    } else {
                                        var$9 = var$11.$left;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$8 = null;
                                            jl_Object__init_(var$9);
                                            var$9.$key0 = $rt_s(128);
                                            var$9.$value2 = var$8;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$6, var$9.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$9.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$8 = var$10.$right;
                                                                if (var$8 === null)
                                                                    var$8 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$8.$right = ju_TreeMap_getOrCreateNode(var$3, var$8.$right, $rt_s(128));
                                                                        else
                                                                            var$8.$left = ju_TreeMap_getOrCreateNode(var$3, var$8.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                    }
                                                                }
                                                                var$10.$right = var$8;
                                                            } else {
                                                                var$8 = var$10.$left;
                                                                if (var$8 === null)
                                                                    var$8 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$8.$right = ju_TreeMap_getOrCreateNode(var$3, var$8.$right, $rt_s(128));
                                                                        else
                                                                            var$8.$left = ju_TreeMap_getOrCreateNode(var$3, var$8.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                    }
                                                                }
                                                                var$10.$left = var$8;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$right = var$10;
                                                } else {
                                                    var$8 = var$9.$left;
                                                    if (var$8 === null) {
                                                        var$8 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$8, $rt_s(128), null);
                                                        var$8.$height = 1;
                                                        var$8.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$6, var$8.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$8.$right;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$8.$right = var$10;
                                                            } else {
                                                                var$10 = var$8.$left;
                                                                if (var$10 === null)
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                                else {
                                                                    var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$7) {
                                                                        if (var$7 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $rt_s(128));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $rt_s(128));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$8.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                        }
                                                    }
                                                    var$9.$left = var$8;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        var$11.$left = var$9;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$11);
                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                }
                            }
                            var$5.$left = var$11;
                        }
                        ju_TreeMap$TreeNode_fix(var$5);
                        var$5 = ju_TreeMap$TreeNode_balance(var$5);
                    }
                }
                var$4.$left = var$5;
            }
            ju_TreeMap$TreeNode_fix(var$4);
            var$4 = ju_TreeMap$TreeNode_balance(var$4);
        }
    }
    var$3.$root = var$4;
    jl_String_compareTo($rt_s(128), $rt_s(128));
    var$8 = $rt_s(128);
    a: {
        while (true) {
            if (var$4 === null) {
                var$4 = null;
                break a;
            }
            var$7 = jl_String_compareTo(var$8, var$4.$key0);
            if (!var$7)
                break;
            var$4 = var$7 >= 0 ? var$4.$right : var$4.$left;
        }
    }
    var$4.$value2 = $rt_s(129);
    var$4.$value2 = $rt_s(129);
    var$3.$modCount2 = var$3.$modCount2 + 1 | 0;
    if ($en_us !== null)
        nms_StringTranslate_loadLanguage(var$2, $en_us);
},
nms_StringTranslate_loadLanguage = ($this, $en_us) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = 0;
    var$3 = $en_us.$modCount;
    var$4 = $en_us.$size();
    while (var$2 >= var$4 ? 0 : 1) {
        if (var$3 < $en_us.$modCount) {
            $en_us = new ju_ConcurrentModificationException;
            $en_us.$suppressionEnabled = 1;
            $en_us.$writableStackTrace = 1;
            $rt_throw($en_us);
        }
        var$5 = var$2 + 1 | 0;
        var$6 = jl_String_trim($en_us.$get(var$2));
        if (!(var$6 === $rt_s(130) ? 1 : jl_String_startsWith(var$6, $rt_s(130), 0))) {
            var$7 = jur_Pattern_split(jur_Pattern_compile($rt_s(131), 0), var$6, 0);
            if (var$7 !== null) {
                var$7 = var$7.data;
                if (var$7.length == 2)
                    ju_Hashtable_put($this.$translateTable, var$7[0], var$7[1]);
            }
        }
        var$2 = var$5;
    }
},
nms_StringTranslate_translateKey = ($this, $par1Str) => {
    let var$2, var$3;
    jl_Object_monitorEnterSync($this);
    try {
        var$2 = $this.$translateTable;
        var$3 = ju_Hashtable_get(var$2, $par1Str);
        var$3 = !(var$3 instanceof jl_String) ? null : var$3;
        if (var$3 === null) {
            var$2 = var$2.$defaults;
            if (var$2 !== null)
                var$3 = var$2.$getProperty($par1Str);
        }
        if (var$3 === null)
            var$3 = $par1Str;
        return var$3;
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
nms_StringTranslate_translateKeyFormat = ($this, $var3, $par2ArrayOfObj) => {
    let var$3, $var3_0, var$5, var$6, var$7, var$8, $$je;
    jl_Object_monitorEnterSync($this);
    try {
        var$3 = $this.$translateTable;
        $var3_0 = ju_Hashtable_get(var$3, $var3);
        $var3_0 = !($var3_0 instanceof jl_String) ? null : $var3_0;
        if ($var3_0 === null) {
            var$3 = var$3.$defaults;
            if (var$3 !== null)
                $var3_0 = var$3.$getProperty($var3);
        }
        if ($var3_0 === null)
            $var3_0 = $var3;
        a: {
            try {
                $var3 = jl_String_format($var3_0, $par2ArrayOfObj);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ju_IllegalFormatException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            return $var3;
        }
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(132));
        var$5 = $var3.$length0;
        if ($var3_0 === null)
            $var3_0 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var3, var$5, $var3_0);
        var$3 = new jl_String;
        $par2ArrayOfObj = $var3.$buffer;
        var$6 = $par2ArrayOfObj.data;
        var$7 = $var3.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString($par2ArrayOfObj.data, 0, var$7);
            return var$3;
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
nms_StringTranslate_isKeyTranslated = ($this, $par1Str) => {
    jl_Object_monitorEnterSync($this);
    try {
        return ju_Hashtable_containsKey($this.$translateTable, $par1Str);
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
nms_StringTranslate__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    var$1 = new nms_StringTranslate;
    nms_StringTranslate_$callClinit();
    var$2 = new ju_Properties;
    ju_Hashtable__init_(var$2, 11);
    var$1.$translateTable = var$2;
    var$2 = new ju_TreeMap;
    var$2.$originalComparator = null;
    var$2.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
    var$1.$languageList = var$2;
    var$3 = var$2.$root;
    if (var$3 === null) {
        var$3 = new ju_TreeMap$TreeNode;
        var$4 = null;
        var$3.$key0 = $rt_s(128);
        var$3.$value2 = var$4;
        var$3.$height = 1;
        var$3.$size1 = 1;
    } else {
        a: {
            var$4 = var$3.$key0;
            var$5 = $rt_s(128);
            var$4 = var$4;
            if (var$5 === var$4)
                var$6 = 0;
            else {
                var$7 = var$5.$nativeString.length;
                var$8 = var$4.$nativeString.length;
                if (var$7 < var$8)
                    var$8 = var$7;
                var$7 = 0;
                b: {
                    while (true) {
                        if (var$7 >= var$8) {
                            var$6 = var$5.$nativeString.length - var$4.$nativeString.length | 0;
                            break a;
                        }
                        if (var$7 < 0)
                            break b;
                        if (var$7 >= var$5.$nativeString.length)
                            break b;
                        var$9 = var$5.$nativeString.charCodeAt(var$7);
                        if (var$7 < 0)
                            break;
                        if (var$7 >= var$4.$nativeString.length)
                            break;
                        var$6 = var$9 - var$4.$nativeString.charCodeAt(var$7) | 0;
                        if (var$6)
                            break a;
                        var$7 = var$7 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        if (var$6) {
            if (var$6 >= 0) {
                var$4 = var$3.$right;
                if (var$4 === null) {
                    var$4 = new ju_TreeMap$TreeNode;
                    var$10 = null;
                    var$4.$key0 = $rt_s(128);
                    var$4.$value2 = var$10;
                    var$4.$height = 1;
                    var$4.$size1 = 1;
                } else {
                    c: {
                        var$10 = var$4.$key0;
                        if (var$5 === var$10)
                            var$6 = 0;
                        else {
                            var$7 = jl_Math_min(jl_String_length(var$5), jl_String_length(var$10));
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= var$7) {
                                    var$6 = jl_String_length(var$5) - jl_String_length(var$10) | 0;
                                    break c;
                                }
                                var$6 = jl_String_charAt(var$5, var$9) - jl_String_charAt(var$10, var$9) | 0;
                                if (var$6)
                                    break;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    if (var$6) {
                        if (var$6 >= 0) {
                            var$10 = var$4.$right;
                            if (var$10 === null) {
                                var$10 = new ju_TreeMap$TreeNode;
                                var$11 = null;
                                jl_Object__init_(var$10);
                                var$10.$key0 = $rt_s(128);
                                var$10.$value2 = var$11;
                                var$10.$height = 1;
                                var$10.$size1 = 1;
                            } else {
                                var$6 = jl_String_compareTo0(var$5, var$10.$key0);
                                if (var$6) {
                                    if (var$6 >= 0) {
                                        var$11 = var$10.$right;
                                        if (var$11 === null) {
                                            var$11 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(128), null);
                                            var$11.$height = 1;
                                            var$11.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$11.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$12 = var$11.$right;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$right = var$12;
                                                } else {
                                                    var$12 = var$11.$left;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$left = var$12;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$11);
                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                            }
                                        }
                                        var$10.$right = var$11;
                                    } else {
                                        var$11 = var$10.$left;
                                        if (var$11 === null) {
                                            var$11 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(128), null);
                                            var$11.$height = 1;
                                            var$11.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$11.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$12 = var$11.$right;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$right = var$12;
                                                } else {
                                                    var$12 = var$11.$left;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$left = var$12;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$11);
                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                            }
                                        }
                                        var$10.$left = var$11;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$10);
                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                }
                            }
                            var$4.$right = var$10;
                        } else {
                            var$10 = var$4.$left;
                            if (var$10 === null) {
                                var$10 = new ju_TreeMap$TreeNode;
                                var$11 = null;
                                jl_Object__init_(var$10);
                                var$10.$key0 = $rt_s(128);
                                var$10.$value2 = var$11;
                                var$10.$height = 1;
                                var$10.$size1 = 1;
                            } else {
                                var$6 = jl_String_compareTo0(var$5, var$10.$key0);
                                if (var$6) {
                                    if (var$6 >= 0) {
                                        var$11 = var$10.$right;
                                        if (var$11 === null) {
                                            var$11 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(128), null);
                                            var$11.$height = 1;
                                            var$11.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$11.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$12 = var$11.$right;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$right = var$12;
                                                } else {
                                                    var$12 = var$11.$left;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$left = var$12;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$11);
                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                            }
                                        }
                                        var$10.$right = var$11;
                                    } else {
                                        var$11 = var$10.$left;
                                        if (var$11 === null) {
                                            var$11 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(128), null);
                                            var$11.$height = 1;
                                            var$11.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$11.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$12 = var$11.$right;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$right = var$12;
                                                } else {
                                                    var$12 = var$11.$left;
                                                    if (var$12 === null)
                                                        var$12 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$2, var$12.$right, $rt_s(128));
                                                            else
                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$2, var$12.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$11.$left = var$12;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$11);
                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                            }
                                        }
                                        var$10.$left = var$11;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$10);
                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                }
                            }
                            var$4.$left = var$10;
                        }
                        ju_TreeMap$TreeNode_fix(var$4);
                        var$4 = ju_TreeMap$TreeNode_balance(var$4);
                    }
                }
                var$3.$right = var$4;
            } else {
                var$13 = var$3.$left;
                if (var$13 === null) {
                    var$13 = new ju_TreeMap$TreeNode;
                    var$4 = null;
                    var$13.$key0 = $rt_s(128);
                    var$13.$value2 = var$4;
                    var$13.$height = 1;
                    var$13.$size1 = 1;
                } else {
                    d: {
                        var$4 = var$13.$key0;
                        if (var$5 === var$4)
                            var$6 = 0;
                        else {
                            var$7 = jl_Math_min(jl_String_length(var$5), jl_String_length(var$4));
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= var$7) {
                                    var$6 = jl_String_length(var$5) - jl_String_length(var$4) | 0;
                                    break d;
                                }
                                var$6 = jl_String_charAt(var$5, var$9) - jl_String_charAt(var$4, var$9) | 0;
                                if (var$6)
                                    break;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    if (var$6) {
                        if (var$6 >= 0) {
                            var$14 = var$13.$right;
                            if (var$14 === null) {
                                var$14 = new ju_TreeMap$TreeNode;
                                var$4 = null;
                                jl_Object__init_(var$14);
                                var$14.$key0 = $rt_s(128);
                                var$14.$value2 = var$4;
                                var$14.$height = 1;
                                var$14.$size1 = 1;
                            } else {
                                var$6 = jl_String_compareTo0(var$5, var$14.$key0);
                                if (var$6) {
                                    if (var$6 >= 0) {
                                        var$4 = var$14.$right;
                                        if (var$4 === null) {
                                            var$4 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$4, $rt_s(128), null);
                                            var$4.$height = 1;
                                            var$4.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$4.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$10 = var$4.$right;
                                                    if (var$10 === null)
                                                        var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$10.$right = ju_TreeMap_getOrCreateNode(var$2, var$10.$right, $rt_s(128));
                                                            else
                                                                var$10.$left = ju_TreeMap_getOrCreateNode(var$2, var$10.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$4.$right = var$10;
                                                } else {
                                                    var$10 = var$4.$left;
                                                    if (var$10 === null)
                                                        var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$10.$right = ju_TreeMap_getOrCreateNode(var$2, var$10.$right, $rt_s(128));
                                                            else
                                                                var$10.$left = ju_TreeMap_getOrCreateNode(var$2, var$10.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$4.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$4);
                                                var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                            }
                                        }
                                        var$14.$right = var$4;
                                    } else {
                                        var$4 = var$14.$left;
                                        if (var$4 === null) {
                                            var$4 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$4, $rt_s(128), null);
                                            var$4.$height = 1;
                                            var$4.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$4.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$10 = var$4.$right;
                                                    if (var$10 === null)
                                                        var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$10.$right = ju_TreeMap_getOrCreateNode(var$2, var$10.$right, $rt_s(128));
                                                            else
                                                                var$10.$left = ju_TreeMap_getOrCreateNode(var$2, var$10.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$4.$right = var$10;
                                                } else {
                                                    var$10 = var$4.$left;
                                                    if (var$10 === null)
                                                        var$10 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$10.$right = ju_TreeMap_getOrCreateNode(var$2, var$10.$right, $rt_s(128));
                                                            else
                                                                var$10.$left = ju_TreeMap_getOrCreateNode(var$2, var$10.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$4.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$4);
                                                var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                            }
                                        }
                                        var$14.$left = var$4;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$14);
                                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                }
                            }
                            var$13.$right = var$14;
                        } else {
                            var$12 = var$13.$left;
                            if (var$12 === null) {
                                var$12 = new ju_TreeMap$TreeNode;
                                var$4 = null;
                                jl_Object__init_(var$12);
                                var$12.$key0 = $rt_s(128);
                                var$12.$value2 = var$4;
                                var$12.$height = 1;
                                var$12.$size1 = 1;
                            } else {
                                var$6 = jl_String_compareTo0(var$5, var$12.$key0);
                                if (var$6) {
                                    if (var$6 >= 0) {
                                        var$14 = var$12.$right;
                                        if (var$14 === null) {
                                            var$14 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$14, $rt_s(128), null);
                                            var$14.$height = 1;
                                            var$14.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$14.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$4 = var$14.$right;
                                                    if (var$4 === null)
                                                        var$4 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$4.$right = ju_TreeMap_getOrCreateNode(var$2, var$4.$right, $rt_s(128));
                                                            else
                                                                var$4.$left = ju_TreeMap_getOrCreateNode(var$2, var$4.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$4);
                                                            var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                        }
                                                    }
                                                    var$14.$right = var$4;
                                                } else {
                                                    var$4 = var$14.$left;
                                                    if (var$4 === null)
                                                        var$4 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$4.$right = ju_TreeMap_getOrCreateNode(var$2, var$4.$right, $rt_s(128));
                                                            else
                                                                var$4.$left = ju_TreeMap_getOrCreateNode(var$2, var$4.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$4);
                                                            var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                        }
                                                    }
                                                    var$14.$left = var$4;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$14);
                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                            }
                                        }
                                        var$12.$right = var$14;
                                    } else {
                                        var$10 = var$12.$left;
                                        if (var$10 === null) {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(128), null);
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        } else {
                                            var$6 = jl_String_compareTo(var$5, var$10.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 === null)
                                                        var$11 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$11.$right = ju_TreeMap_getOrCreateNode(var$2, var$11.$right, $rt_s(128));
                                                            else
                                                                var$11.$left = ju_TreeMap_getOrCreateNode(var$2, var$11.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$4 = var$10.$left;
                                                    if (var$4 === null)
                                                        var$4 = ju_TreeMap$TreeNode__init_($rt_s(128));
                                                    else {
                                                        var$6 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $rt_s(128), ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                        if (var$6) {
                                                            if (var$6 >= 0)
                                                                var$4.$right = ju_TreeMap_getOrCreateNode(var$2, var$4.$right, $rt_s(128));
                                                            else
                                                                var$4.$left = ju_TreeMap_getOrCreateNode(var$2, var$4.$left, $rt_s(128));
                                                            ju_TreeMap$TreeNode_fix(var$4);
                                                            var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                        }
                                                    }
                                                    var$10.$left = var$4;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        }
                                        var$12.$left = var$10;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$12);
                                    var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                }
                            }
                            var$13.$left = var$12;
                        }
                        ju_TreeMap$TreeNode_fix(var$13);
                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                    }
                }
                var$3.$left = var$13;
            }
            ju_TreeMap$TreeNode_fix(var$3);
            var$3 = ju_TreeMap$TreeNode_balance(var$3);
        }
    }
    e: {
        var$2.$root = var$3;
        var$4 = $rt_s(128);
        var$15 = $rt_s(128);
        if (var$4 !== var$15) {
            var$7 = var$4.$nativeString.length;
            var$8 = var$15.$nativeString.length;
            if (var$7 < var$8)
                var$8 = var$7;
            var$6 = 0;
            f: {
                while (true) {
                    if (var$6 >= var$8) {
                        var$4.$nativeString.length;
                        var$15.$nativeString.length;
                        break e;
                    }
                    if (var$6 < 0)
                        break f;
                    if (var$6 >= var$4.$nativeString.length)
                        break f;
                    var$9 = var$4.$nativeString.charCodeAt(var$6);
                    if (var$6 < 0)
                        break;
                    if (var$6 >= var$15.$nativeString.length)
                        break;
                    if (var$9 - var$15.$nativeString.charCodeAt(var$6) | 0)
                        break e;
                    var$6 = var$6 + 1 | 0;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
    }
    var$15 = $rt_s(128);
    g: {
        h: {
            i: while (true) {
                if (var$3 === null) {
                    var$3 = null;
                    break g;
                }
                j: {
                    var$4 = var$3.$key0;
                    if (var$15 === var$4)
                        var$6 = 0;
                    else {
                        var$7 = var$15.$nativeString.length;
                        var$8 = var$4.$nativeString.length;
                        if (var$7 < var$8)
                            var$8 = var$7;
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= var$8) {
                                var$6 = var$15.$nativeString.length - var$4.$nativeString.length | 0;
                                break j;
                            }
                            if (var$7 < 0)
                                break h;
                            if (var$7 >= var$15.$nativeString.length)
                                break h;
                            var$9 = var$15.$nativeString.charCodeAt(var$7);
                            if (var$7 < 0)
                                break i;
                            if (var$7 >= var$4.$nativeString.length)
                                break i;
                            var$6 = var$9 - var$4.$nativeString.charCodeAt(var$7) | 0;
                            if (var$6)
                                break;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                if (!var$6)
                    break g;
                var$3 = var$6 >= 0 ? var$3.$right : var$3.$left;
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
    }
    var$3.$value2 = $rt_s(129);
    var$3.$value2 = $rt_s(129);
    var$2.$modCount2 = var$2.$modCount2 + 1 | 0;
    nms_StringTranslate_instance = var$1;
};
function nms_AchievementMap() {
    jl_Object.call(this);
    this.$guidMap = null;
}
let nms_AchievementMap_instance = null,
nms_AchievementMap_init = $guid => {
    nms_AchievementMap_instance = nms_AchievementMap__init_($guid);
},
nms_AchievementMap__init_0 = ($this, $guid) => {
    let var$2, var$3, var$4, var$5, $var2, var$7, var$8;
    $this.$guidMap = ju_HashMap__init_();
    var$2 = 0;
    var$3 = $guid.$modCount;
    var$4 = $guid.$size();
    while (var$2 >= var$4 ? 0 : 1) {
        if (var$3 < $guid.$modCount) {
            $guid = new ju_ConcurrentModificationException;
            $guid.$suppressionEnabled = 1;
            $guid.$writableStackTrace = 1;
            $rt_throw($guid);
        }
        var$5 = var$2 + 1 | 0;
        $var2 = $guid.$get(var$2);
        var$7 = (jur_Pattern_split(jur_Pattern_compile($rt_s(133), 0), $var2, 0)).data;
        $var2 = var$7[0];
        if ($var2 === null) {
            $guid = new jl_NumberFormatException;
            $guid.$suppressionEnabled = 1;
            $guid.$writableStackTrace = 1;
            $guid.$message = $rt_s(104);
            $rt_throw($guid);
        }
        var$2 = jl_Integer_parseIntImpl($var2, 0, $var2.$nativeString.length, 10);
        $var2 = $this.$guidMap;
        if (var$2 >= (-128) && var$2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$8 = jl_Integer_integerCache.data[var$2 + 128 | 0];
        } else {
            var$8 = new jl_Integer;
            var$8.$value = var$2;
        }
        ju_HashMap_putImpl($var2, var$8, var$7[1]);
        var$2 = var$5;
    }
},
nms_AchievementMap__init_ = var_0 => {
    let var_1 = new nms_AchievementMap();
    nms_AchievementMap__init_0(var_1, var_0);
    return var_1;
},
nms_AchievementMap__clinit_ = () => {
    nms_AchievementMap_instance = null;
},
nms_AchievementList = $rt_classWithoutFields(),
nms_AchievementList_minDisplayColumn = 0,
nms_AchievementList_minDisplayRow = 0,
nms_AchievementList_maxDisplayColumn = 0,
nms_AchievementList_maxDisplayRow = 0,
nms_AchievementList_achievementList = null,
nms_AchievementList_openInventory = null,
nms_AchievementList_mineWood = null,
nms_AchievementList_buildWorkBench = null,
nms_AchievementList_buildPickaxe = null,
nms_AchievementList_buildFurnace = null,
nms_AchievementList_acquireIron = null,
nms_AchievementList_buildHoe = null,
nms_AchievementList_makeBread = null,
nms_AchievementList_bakeCake = null,
nms_AchievementList_buildBetterPickaxe = null,
nms_AchievementList_cookFish = null,
nms_AchievementList_onARail = null,
nms_AchievementList_buildSword = null,
nms_AchievementList_killEnemy = null,
nms_AchievementList_killCow = null,
nms_AchievementList_flyPig = null,
nms_AchievementList_snipeSkeleton = null,
nms_AchievementList_diamonds = null,
nms_AchievementList_portal = null,
nms_AchievementList_ghast = null,
nms_AchievementList_blazeRod = null,
nms_AchievementList_potion = null,
nms_AchievementList_theEnd = null,
nms_AchievementList_theEnd2 = null,
nms_AchievementList_enchantments = null,
nms_AchievementList_overkill = null,
nms_AchievementList_bookcase = null,
nms_AchievementList_$callClinit = () => {
    nms_AchievementList_$callClinit = $rt_eraseClinit(nms_AchievementList);
    nms_AchievementList__clinit_();
},
nms_AchievementList__init_ = $this => {
    nms_AchievementList_$callClinit();
},
nms_AchievementList__init_0 = () => {
    let var_0 = new nms_AchievementList();
    nms_AchievementList__init_(var_0);
    return var_0;
},
nms_AchievementList_init = () => {
    nms_AchievementList_$callClinit();
},
nms_AchievementList__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_AchievementList_achievementList = var$1;
    var$2 = new nms_Achievement;
    nms_Item_$callClinit();
    var$3 = nms_Item_book;
    var$4 = null;
    var$5 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    var$5.$itemID = var$3.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$2, 0, $rt_s(134), 0, 0, var$5, var$4);
    var$2.$isIndependent = 1;
    nms_StatBase_registerStat(var$2);
    nms_AchievementList_$callClinit();
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_openInventory = var$2;
    var$1 = new nms_Achievement;
    nms_Block_$callClinit();
    var$4 = nms_Block_wood;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 1, $rt_s(135), 2, 1, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_mineWood = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Block_workbench;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 2, $rt_s(136), 4, (-1), var$5, var$1);
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_buildWorkBench = var$3;
    var$1 = new nms_Achievement;
    var$2 = nms_Item_pickaxeWood;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 3, $rt_s(137), 4, 2, var$5, var$3);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_buildPickaxe = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Block_furnaceIdle;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 4, $rt_s(138), 3, 4, var$5, var$1);
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_buildFurnace = var$3;
    var$1 = new nms_Achievement;
    var$2 = nms_Item_ingotIron;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 5, $rt_s(139), 1, 4, var$5, var$3);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_acquireIron = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_hoeWood;
    var$2 = nms_AchievementList_buildWorkBench;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 6, $rt_s(140), 2, (-3), var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_buildHoe = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Item_bread;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 7, $rt_s(141), (-1), (-3), var$5, var$1);
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_makeBread = var$3;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_cake;
    var$2 = nms_AchievementList_buildHoe;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 8, $rt_s(142), 0, (-5), var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_bakeCake = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_pickaxeStone;
    var$2 = nms_AchievementList_buildPickaxe;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 9, $rt_s(143), 6, 2, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_buildBetterPickaxe = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_fishCooked;
    var$2 = nms_AchievementList_buildFurnace;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 10, $rt_s(144), 2, 6, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_cookFish = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Block_rail;
    var$2 = nms_AchievementList_acquireIron;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 11, $rt_s(145), 2, 3, var$5, var$2);
    var$1.$isSpecial = 1;
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_onARail = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_swordWood;
    var$2 = nms_AchievementList_buildWorkBench;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 12, $rt_s(146), 6, (-1), var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_buildSword = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Item_bone;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 13, $rt_s(147), 8, (-1), var$5, var$1);
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_killEnemy = var$3;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_leather;
    var$2 = nms_AchievementList_buildSword;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 14, $rt_s(148), 7, (-3), var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_killCow = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Item_saddle;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 15, $rt_s(149), 8, (-4), var$5, var$1);
    var$3.$isSpecial = 1;
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_flyPig = var$3;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_bow;
    var$2 = nms_AchievementList_killEnemy;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 16, $rt_s(150), 7, 0, var$5, var$2);
    var$1.$isSpecial = 1;
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_snipeSkeleton = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_diamond;
    var$2 = nms_AchievementList_acquireIron;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 17, $rt_s(151), (-1), 5, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_diamonds = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Block_obsidian;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 18, $rt_s(152), (-1), 7, var$5, var$1);
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_portal = var$3;
    var$1 = new nms_Achievement;
    var$2 = nms_Item_ghastTear;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 19, $rt_s(153), (-4), 8, var$5, var$3);
    var$1.$isSpecial = 1;
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_ghast = var$1;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_blazeRod;
    var$2 = nms_AchievementList_portal;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 20, $rt_s(154), 0, 9, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_blazeRod = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Item_potion;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 21, $rt_s(155), 2, 8, var$5, var$1);
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_potion = var$3;
    var$1 = new nms_Achievement;
    var$4 = nms_Item_eyeOfEnder;
    var$2 = nms_AchievementList_blazeRod;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 22, $rt_s(156), 3, 10, var$5, var$2);
    var$1.$isSpecial = 1;
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_theEnd = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Block_dragonEgg;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 23, $rt_s(157), 4, 13, var$5, var$1);
    var$3.$isSpecial = 1;
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_theEnd2 = var$3;
    var$1 = new nms_Achievement;
    var$4 = nms_Block_enchantmentTable;
    var$2 = nms_AchievementList_diamonds;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 24, $rt_s(158), (-4), 4, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_enchantments = var$1;
    var$3 = new nms_Achievement;
    var$2 = nms_Item_swordDiamond;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$2.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$3, 25, $rt_s(159), (-4), 1, var$5, var$1);
    var$3.$isSpecial = 1;
    nms_StatBase_registerStat(var$3);
    var$1 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$6 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$3;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_AchievementList_overkill = var$3;
    var$1 = new nms_Achievement;
    var$4 = nms_Block_bookShelf;
    var$2 = nms_AchievementList_enchantments;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$4.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    nms_Achievement__init_(var$1, 26, $rt_s(160), (-3), 6, var$5, var$2);
    nms_StatBase_registerStat(var$1);
    var$3 = nms_AchievementList_achievementList;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$6 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$1;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    nms_AchievementList_bookcase = var$1;
};
function nlesi_IPCPacket16NBTList() {
    let a = this; jl_Object.call(a);
    a.$opCode0 = 0;
    a.$tagList0 = null;
    a.$nbtTagList = null;
}
let nlesi_IPCPacket16NBTList__init_0 = $this => {
    $this.$tagList0 = new ju_LinkedList;
    $this.$nbtTagList = new ju_LinkedList;
},
nlesi_IPCPacket16NBTList__init_2 = () => {
    let var_0 = new nlesi_IPCPacket16NBTList();
    nlesi_IPCPacket16NBTList__init_0(var_0);
    return var_0;
},
nlesi_IPCPacket16NBTList__init_1 = ($this, $opcode, $list) => {
    let $i, $size, $tag, $bao, var$7, var$8, var$9, var$10, var$11, $$je;
    $this.$tagList0 = new ju_LinkedList;
    $this.$nbtTagList = $list;
    $i = 0;
    $size = $list.$size2;
    a: {
        while ($i < $size) {
            if ($i < 0) {
                $list = new jl_IndexOutOfBoundsException;
                $list.$suppressionEnabled = 1;
                $list.$writableStackTrace = 1;
                $rt_throw($list);
            }
            $tag = ju_LinkedList$SequentialListIterator_next(ju_LinkedList_listIterator($list, $i));
            b: {
                try {
                    $bao = ji_ByteArrayOutputStream__init_();
                    nms_CompressedStreamTools_write($tag, ji_DataOutputStream__init_($bao));
                    ju_AbstractList_add($this.$tagList0, ji_ByteArrayOutputStream_toByteArray($bao));
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    $bao = new ji_ByteArrayOutputStream;
                    $bao.$buf = $rt_createByteArray(32);
                    var$7.$out0 = $bao;
                    $bao = new jl_StringBuilder;
                    $bao.$buffer = $rt_createCharArray(16);
                    var$7.$sb = $bao;
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                var$7 = $tag.$name;
                if (var$7 === null)
                    var$7 = $rt_s(3);
                $bao = new jl_StringBuilder;
                $bao.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(161));
                jl_AbstractStringBuilder_insert($bao, $bao.$length0, var$7);
                jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(162));
                jl_AbstractStringBuilder_insert0($bao, $bao.$length0, $i, 10);
                jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(163));
                var$7 = new jl_String;
                var$8 = $bao.$buffer;
                var$9 = var$8.data;
                var$10 = $bao.$length0;
                var$11 = var$9.length;
                if (var$10 < 0)
                    break a;
                if (var$10 > (var$11 - 0 | 0))
                    break a;
                var$7.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
                $rt_putStderr($rt_ustr(var$7));
                $rt_putStderr("\n");
            }
            $i = $i + 1 | 0;
        }
        $this.$opCode0 = $opcode;
        return;
    }
    $list = new jl_IndexOutOfBoundsException;
    $list.$suppressionEnabled = 1;
    $list.$writableStackTrace = 1;
    $rt_throw($list);
},
nlesi_IPCPacket16NBTList__init_ = (var_0, var_1) => {
    let var_2 = new nlesi_IPCPacket16NBTList();
    nlesi_IPCPacket16NBTList__init_1(var_2, var_0, var_1);
    return var_2;
},
nlesi_IPCPacket16NBTList_deserialize = ($this, $bin) => {
    let var$2, $count, $i, $toRead, var$6, var$7, var$8, var$9, var$10, $$je;
    var$2 = $this.$tagList0;
    var$2.$firstEntry = null;
    var$2.$lastEntry = null;
    var$2.$size2 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$nbtTagList;
    var$2.$firstEntry = null;
    var$2.$lastEntry = null;
    var$2.$size2 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    $this.$opCode0 = ji_DataInputStream_readInt($bin);
    $count = ji_DataInputStream_readInt($bin);
    $i = 0;
    a: {
        while ($i < $count) {
            $toRead = $rt_createByteArray(ji_DataInputStream_readInt($bin));
            ji_DataInputStream_readFully($bin, $toRead, 0, $toRead.data.length);
            var$2 = $this.$tagList0;
            var$6 = var$2.$size2;
            if (var$6 < 0) {
                $bin = new jl_IndexOutOfBoundsException;
                $bin.$suppressionEnabled = 1;
                $bin.$writableStackTrace = 1;
                $rt_throw($bin);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator(var$2, var$6), $toRead);
            b: {
                try {
                    ju_AbstractList_add($this.$nbtTagList, nms_CompressedStreamTools_read(ji_DataInputStream__init_(ji_ByteArrayInputStream__init_($toRead))));
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    var$7.$buf = $rt_createByteArray(32);
                    var$2.$out0 = var$7;
                    var$7 = new jl_StringBuilder;
                    jl_Object__init_(var$7);
                    var$7.$buffer = $rt_createCharArray(16);
                    var$2.$sb = var$7;
                    var$2.$buffer0 = $rt_createCharArray(32);
                    var$2.$autoFlush = 0;
                    var$2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$2;
                }
                var$2 = new jl_StringBuilder;
                var$2.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(164));
                jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, $i, 10);
                jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(165));
                var$7 = new jl_String;
                $toRead = var$2.$buffer;
                var$8 = $toRead.data;
                var$9 = var$2.$length0;
                var$10 = var$8.length;
                if (var$9 < 0)
                    break a;
                if (var$9 > (var$10 - 0 | 0))
                    break a;
                var$7.$nativeString = $rt_charArrayToString($toRead.data, 0, var$9);
                $rt_putStderr($rt_ustr(var$7));
                $rt_putStderr("\n");
            }
            $i = $i + 1 | 0;
        }
        return;
    }
    $bin = new jl_IndexOutOfBoundsException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket16NBTList_serialize = ($this, $bin) => {
    let var$2, var$3, var$4, var$5, $str, var$7;
    ji_DataOutputStream_writeInt($bin, $this.$opCode0);
    ji_DataOutputStream_writeInt($bin, $this.$tagList0.$size2);
    var$2 = $this.$tagList0;
    var$3 = new ju_LinkedList$SequentialListIterator;
    var$4 = var$2.$firstEntry;
    var$5 = null;
    var$3.$this$02 = var$2;
    var$3.$version = var$2.$modCount;
    var$3.$nextEntry1 = var$4;
    var$3.$prevEntry = var$5;
    var$3.$index4 = 0;
    while (var$3.$nextEntry1 === null ? 0 : 1) {
        $str = ju_LinkedList$SequentialListIterator_next(var$3);
        var$7 = $str.data.length;
        ji_DataOutputStream_writeInt($bin, var$7);
        $bin.$out0.$write1($str, 0, var$7);
        $bin.$written = $bin.$written + var$7 | 0;
    }
},
nlesi_IPCPacket16NBTList_id = $this => {
    return 22;
},
nlesi_IPCPacket16NBTList_size = $this => {
    let $len, var$2, var$3, var$4, var$5;
    $len = 8;
    var$2 = $this.$tagList0;
    var$3 = new ju_LinkedList$SequentialListIterator;
    var$4 = var$2.$firstEntry;
    var$5 = null;
    var$3.$this$02 = var$2;
    var$3.$version = var$2.$modCount;
    var$3.$nextEntry1 = var$4;
    var$3.$prevEntry = var$5;
    var$3.$index4 = 0;
    while (var$3.$nextEntry1 === null ? 0 : 1) {
        $len = ($len + 4 | 0) + (ju_LinkedList$SequentialListIterator_next(var$3)).data.length | 0;
    }
    return $len;
};
function nles_VFile() {
    jl_Object.call(this);
    this.$path = null;
}
let nles_VFile_altPathSeperator = null,
nles_VFile_normalizePath = $p => {
    let $i, var$3;
    $i = 0;
    while (true) {
        var$3 = nles_VFile_altPathSeperator.data;
        if ($i >= var$3.length)
            break;
        $p = jl_String_replace($p, var$3[$i], $rt_s(166));
        $i = $i + 1 | 0;
    }
    if ($p === $rt_s(166) ? 1 : jl_String_startsWith($p, $rt_s(166), 0))
        $p = jl_String_substring($p, 1, $p.$nativeString.length);
    if (jl_String_endsWith($p, $rt_s(166)))
        $p = jl_String_substring($p, 0, $p.$nativeString.length - $rt_s(166).$nativeString.length | 0);
    return $p;
},
nles_VFile_createPath = $p => {
    let $r, $i, var$4, $s, $j, var$7, $gg, var$9, $k, var$11;
    $r = new ju_ArrayList;
    $r.$array = $rt_createArray(jl_Object, 10);
    $i = 0;
    a: while (true) {
        var$4 = $p.data;
        if ($i >= var$4.length) {
            if ($r.$size0 <= 0)
                return null;
            $s = new jl_StringBuilder;
            $s.$buffer = $rt_createCharArray(16);
            $i = 0;
            while (true) {
                if ($i >= $r.$size0) {
                    $r = new jl_String;
                    $p = $s.$buffer;
                    var$4 = $p.data;
                    $j = $s.$length0;
                    var$7 = var$4.length;
                    if ($j >= 0 && $j <= (var$7 - 0 | 0)) {
                        $r.$nativeString = $rt_charArrayToString($p.data, 0, $j);
                        return $r;
                    }
                    $r = new jl_IndexOutOfBoundsException;
                    $r.$suppressionEnabled = 1;
                    $r.$writableStackTrace = 1;
                    $rt_throw($r);
                }
                if ($i > 0)
                    jl_AbstractStringBuilder_insert($s, $s.$length0, $rt_s(166));
                if ($i < 0)
                    break;
                if ($i >= $r.$size0)
                    break;
                $gg = $r.$array.data[$i];
                jl_AbstractStringBuilder_insert($s, $s.$length0, $gg);
                $i = $i + 1 | 0;
            }
            $r = new jl_IndexOutOfBoundsException;
            $r.$suppressionEnabled = 1;
            $r.$writableStackTrace = 1;
            $rt_throw($r);
        }
        b: {
            if (var$4[$i] !== null) {
                $gg = var$4[$i].$toString();
                if ($gg !== null) {
                    $gg = nles_VFile_normalizePath($gg);
                    var$9 = jur_Pattern_split(jur_Pattern_compile($rt_s(166), 0), $gg, 0);
                    $j = 0;
                    while (true) {
                        var$4 = var$9.data;
                        var$7 = var$4.length;
                        if ($j >= var$7)
                            break;
                        var$4[$j] = jl_String_trim(var$4[$j]);
                        $j = $j + 1 | 0;
                    }
                    $j = 0;
                    while (true) {
                        if ($j >= var$7)
                            break b;
                        c: {
                            if (var$4[$j] !== null) {
                                $gg = var$4[$j];
                                if ($gg === $rt_s(167))
                                    $k = 1;
                                else if (!($rt_s(167) instanceof jl_String))
                                    $k = 0;
                                else {
                                    $s = $rt_s(167);
                                    $k = $gg.$nativeString !== $s.$nativeString ? 0 : 1;
                                }
                                if (!$k) {
                                    $s = var$4[$j];
                                    if ($s === $rt_s(168))
                                        $k = 1;
                                    else if (!($rt_s(168) instanceof jl_String))
                                        $k = 0;
                                    else {
                                        $gg = $rt_s(168);
                                        $k = $s.$nativeString !== $gg.$nativeString ? 0 : 1;
                                    }
                                    if ($k) {
                                        var$11 = $r.$size0;
                                        if (var$11 > 0) {
                                            $k = var$11 - 1 | 0;
                                            if ($k < 0)
                                                break a;
                                            if ($k >= var$11)
                                                break a;
                                            $s = $r.$array.data[$k];
                                            if ($s === $rt_s(168))
                                                var$11 = 1;
                                            else if (!($rt_s(168) instanceof jl_String))
                                                var$11 = 0;
                                            else {
                                                $gg = $rt_s(168);
                                                var$11 = $s.$nativeString !== $gg.$nativeString ? 0 : 1;
                                            }
                                            if (!var$11)
                                                ju_ArrayList_remove($r, $k);
                                            else {
                                                ju_ArrayList_ensureCapacity($r, $r.$size0 + 1 | 0);
                                                var$9 = $r.$array.data;
                                                var$11 = $r.$size0;
                                                $r.$size0 = var$11 + 1 | 0;
                                                var$9[var$11] = $rt_s(168);
                                                $r.$modCount = $r.$modCount + 1 | 0;
                                            }
                                            break c;
                                        }
                                    }
                                    $s = var$4[$j];
                                    ju_ArrayList_ensureCapacity($r, $r.$size0 + 1 | 0);
                                    var$9 = $r.$array.data;
                                    var$11 = $r.$size0;
                                    $r.$size0 = var$11 + 1 | 0;
                                    var$9[var$11] = $s;
                                    $r.$modCount = $r.$modCount + 1 | 0;
                                }
                            }
                        }
                        $j = $j + 1 | 0;
                    }
                }
            }
        }
        $i = $i + 1 | 0;
    }
    $r = new jl_IndexOutOfBoundsException;
    $r.$suppressionEnabled = 1;
    $r.$writableStackTrace = 1;
    $rt_throw($r);
},
nles_VFile__init_0 = ($this, $p) => {
    $this.$path = nles_VFile_createPath($p);
},
nles_VFile__init_ = var_0 => {
    let var_1 = new nles_VFile();
    nles_VFile__init_0(var_1, var_0);
    return var_1;
},
nles_VFile_getInputStream = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$path;
        if (var$1 !== null && !jl_String_contains(var$1, $rt_s(168)) ? 0 : 1)
            return null;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nles_SYS_VFS;
        var$1 = $this.$path;
        var$3 = var$2.$fileMap;
        if (var$1 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                if (!var$1.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$1.$nativeString.length)
                            break a;
                        var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$1.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    b: {
                        var$7 = var$3.$key;
                        if (var$1 !== var$7) {
                            if (var$1 === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = var$1.$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break b;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 === null) {
            var$7 = var$2.$fileMap;
            var$3 = new nles_VirtualFilesystem$VFSFile;
            var$3.$fileSize = (-1);
            var$3.$hasBeenDeleted = 0;
            var$3.$hasBeenAccessed = 0;
            var$3.$exists0 = 0;
            var$3.$cache = null;
            var$3.$virtualFilesystem = var$2;
            var$3.$filePath = var$1;
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, var$1, var$3);
        }
        var$4 = 0;
        $ptr = 2;
    case 2:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 === null)
            var$2 = null;
        else {
            var$8 = var$6.data;
            var$2 = new ji_ByteArrayInputStream;
            var$9 = var$8.length;
            var$2.$buf0 = var$6;
            var$2.$pos0 = 0;
            var$2.$mark = 0;
            var$2.$count = 0 + var$9 | 0;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nles_VFile_getOutputStream = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$path;
        if (var$1 !== null && !jl_String_contains(var$1, $rt_s(168)) ? 0 : 1)
            return null;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nles_SYS_VFS;
        var$1 = $this.$path;
        var$3 = var$2.$fileMap;
        if (var$1 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                if (!var$1.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$1.$nativeString.length)
                            break a;
                        var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$1.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    b: {
                        var$7 = var$3.$key;
                        if (var$1 !== var$7) {
                            if (var$1 === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = var$1.$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 === null) {
            var$7 = var$2.$fileMap;
            var$3 = new nles_VirtualFilesystem$VFSFile;
            var$3.$fileSize = (-1);
            var$3.$hasBeenDeleted = 0;
            var$3.$hasBeenAccessed = 0;
            var$3.$exists0 = 0;
            var$3.$cache = null;
            var$3.$virtualFilesystem = var$2;
            var$3.$filePath = var$1;
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, var$1, var$3);
        }
        var$2 = new nles_VirtualFilesystem$VirtualOutputStream;
        var$2.$buf = $rt_createByteArray(32);
        var$2.$file = var$3;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nles_VFile_toString = $this => {
    return $this.$path;
},
nles_VFile_canRead = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$path;
        if (var$1 !== null && !jl_String_contains(var$1, $rt_s(168)) ? 0 : 1)
            return 0;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nles_SYS_VFS;
        var$1 = $this.$path;
        var$3 = var$2.$fileMap;
        if (var$1 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                if (!var$1.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$1.$nativeString.length)
                            break a;
                        var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$1.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    b: {
                        var$7 = var$3.$key;
                        if (var$1 !== var$7) {
                            if (var$1 === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = var$1.$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break b;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 === null) {
            var$7 = var$2.$fileMap;
            var$3 = new nles_VirtualFilesystem$VFSFile;
            var$3.$fileSize = (-1);
            var$3.$hasBeenDeleted = 0;
            var$3.$hasBeenAccessed = 0;
            var$3.$exists0 = 0;
            var$3.$cache = null;
            var$3.$virtualFilesystem = var$2;
            var$3.$filePath = var$1;
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, var$1, var$3);
        }
        if (var$3.$hasBeenDeleted)
            var$4 = 0;
        else {
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (!var$3.$hasBeenAccessed) {
                var$2 = var$3.$virtualFilesystem.$indexeddb;
                var$1 = var$3.$filePath;
                $ptr = 2;
                continue main;
            }
            var$4 = var$3.$exists0;
        }
        return !var$4 ? 0 : 1;
    case 2:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_fileExists$_asyncCall_$(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        var$4 = var$2.$bool;
        var$3.$exists0 = var$4;
        var$3.$hasBeenAccessed = 1;
        return !var$4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nles_VFile_getPath = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$path;
    if (var$1 === $rt_s(169))
        var$2 = 1;
    else if (!($rt_s(169) instanceof jl_String))
        var$2 = 0;
    else {
        var$3 = $rt_s(169);
        var$2 = var$1.$nativeString !== var$3.$nativeString ? 0 : 1;
    }
    return !var$2 ? $this.$path : null;
},
nles_VFile_getName = $this => {
    let var$1, $i, var$3;
    var$1 = $this.$path;
    if (var$1 === null)
        return null;
    $i = jl_String_lastIndexOf1(var$1, $rt_s(166), var$1.$nativeString.length);
    if ($i == (-1))
        var$3 = $this.$path;
    else {
        var$3 = $this.$path;
        var$3 = jl_String_substring(var$3, $i + 1 | 0, var$3.$nativeString.length);
    }
    return var$3;
},
nles_VFile_hashCode = $this => {
    let var$1, var$2;
    var$1 = $this.$path;
    if (var$1 === null)
        var$2 = 0;
    else {
        a: {
            if (!var$1.$hashCode1) {
                var$2 = 0;
                while (true) {
                    if (var$2 >= var$1.$nativeString.length)
                        break a;
                    var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                    var$2 = var$2 + 1 | 0;
                }
            }
        }
        var$2 = var$1.$hashCode1;
    }
    return var$2;
},
nles_VFile_equals = ($this, $o) => {
    let var$2, var$3;
    a: {
        var$2 = $this.$path;
        if (var$2 !== null && $o !== null && $o instanceof nles_VFile) {
            $o = $o.$path;
            if (var$2 === $o)
                var$3 = 1;
            else if (!($o instanceof jl_String))
                var$3 = 0;
            else {
                $o = $o;
                var$3 = var$2.$nativeString !== $o.$nativeString ? 0 : 1;
            }
            if (var$3) {
                var$3 = 1;
                break a;
            }
        }
        var$3 = 0;
    }
    return var$3;
},
nles_VFile_exists = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$path;
        if (var$1 !== null && !jl_String_contains(var$1, $rt_s(168)) ? 0 : 1)
            return 0;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nles_SYS_VFS;
        var$1 = $this.$path;
        var$3 = var$2.$fileMap;
        if (var$1 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                if (!var$1.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$1.$nativeString.length)
                            break a;
                        var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$1.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    b: {
                        var$7 = var$3.$key;
                        if (var$1 !== var$7) {
                            if (var$1 === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = var$1.$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break b;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 === null) {
            var$7 = var$2.$fileMap;
            var$3 = new nles_VirtualFilesystem$VFSFile;
            var$3.$fileSize = (-1);
            var$3.$hasBeenDeleted = 0;
            var$3.$hasBeenAccessed = 0;
            var$3.$exists0 = 0;
            var$3.$cache = null;
            var$3.$virtualFilesystem = var$2;
            var$3.$filePath = var$1;
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, var$1, var$3);
        }
        if (var$3.$hasBeenDeleted)
            var$4 = 0;
        else {
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (!var$3.$hasBeenAccessed) {
                var$2 = var$3.$virtualFilesystem.$indexeddb;
                var$1 = var$3.$filePath;
                $ptr = 2;
                continue main;
            }
            var$4 = var$3.$exists0;
        }
        return !var$4 ? 0 : 1;
    case 2:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_fileExists$_asyncCall_$(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        var$4 = var$2.$bool;
        var$3.$exists0 = var$4;
        var$3.$hasBeenAccessed = 1;
        return !var$4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nles_VFile_getAllBytes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$path;
        if (var$1 !== null && !jl_String_contains(var$1, $rt_s(168)) ? 0 : 1)
            return null;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nles_SYS_VFS;
        var$1 = $this.$path;
        var$3 = var$2.$fileMap;
        if (var$1 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                if (!var$1.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$1.$nativeString.length)
                            break a;
                        var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$1.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    b: {
                        var$7 = var$3.$key;
                        if (var$1 !== var$7) {
                            if (var$1 === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = var$1.$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 === null) {
            var$7 = var$2.$fileMap;
            var$3 = new nles_VirtualFilesystem$VFSFile;
            var$3.$fileSize = (-1);
            var$3.$hasBeenDeleted = 0;
            var$3.$hasBeenAccessed = 0;
            var$3.$exists0 = 0;
            var$3.$cache = null;
            var$3.$virtualFilesystem = var$2;
            var$3.$filePath = var$1;
            nles_SysUtil_$callClinit();
            var$3.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, var$1, var$3);
        }
        var$8 = 0;
        $ptr = 2;
    case 2:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes(var$3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return var$6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nles_VFile_setAllBytes = ($this, $bytes) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$bytes = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$path;
        if (var$2 !== null && !jl_String_contains(var$2, $rt_s(168)) ? 0 : 1)
            return 0;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$3 = nles_SYS_VFS;
        var$2 = $this.$path;
        var$4 = var$3.$fileMap;
        if (var$2 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            a: {
                if (!var$2.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= var$2.$nativeString.length)
                            break a;
                        var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$6 = var$2.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    b: {
                        var$8 = var$4.$key;
                        if (var$2 !== var$8) {
                            if (var$2 === var$8)
                                var$5 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$5 = 0;
                            else {
                                var$8 = var$8;
                                var$5 = var$2.$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break b;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        if (var$4 === null) {
            var$8 = var$3.$fileMap;
            var$4 = new nles_VirtualFilesystem$VFSFile;
            var$4.$fileSize = (-1);
            var$4.$hasBeenDeleted = 0;
            var$4.$hasBeenAccessed = 0;
            var$4.$exists0 = 0;
            var$4.$cache = null;
            var$4.$virtualFilesystem = var$3;
            var$4.$filePath = var$2;
            nles_SysUtil_$callClinit();
            var$4.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$8, var$2, var$4);
        }
        var$5 = 1;
        $ptr = 2;
    case 2:
        $tmp = nles_VirtualFilesystem$VFSFile_setAllBytes(var$4, $bytes, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $bytes, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nles_VFile__clinit_ = () => {
    let var$1;
    var$1 = $rt_createArray(jl_String, 1);
    var$1.data[0] = $rt_s(86);
    nles_VFile_altPathSeperator = var$1;
},
nms_CompressedStreamTools = $rt_classWithoutFields(),
nms_CompressedStreamTools__init_ = $this => {
    return;
},
nms_CompressedStreamTools__init_0 = () => {
    let var_0 = new nms_CompressedStreamTools();
    nms_CompressedStreamTools__init_(var_0);
    return var_0;
},
nms_CompressedStreamTools_readCompressed = $par0InputStream => {
    let $var1, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je;
    $var1 = new ji_DataInputStream;
    $var2 = new ji_BufferedInputStream;
    var$4 = new cjj_GZIPInputStream;
    var$5 = new cjj_Inflater;
    var$6 = new cjj_Adler32;
    var$6.$s1 = Long_fromInt(1);
    var$6.$s2 = Long_ZERO;
    var$5.$adler = var$6;
    var$5.$finished0 = 0;
    var$5.$finished0 = 0;
    var$6 = new cjj_Inflate;
    var$6.$was = Long_fromInt(-1);
    var$6.$need_bytes = (-1);
    var$6.$crcbuf = $rt_createByteArray(4);
    var$6.$gheader = null;
    var$6.$tmp_string = null;
    var$6.$z0 = var$5;
    var$5.$istate = var$6;
    var$7 = cjj_Inflate_inflateInit(var$6, 31);
    if (!var$7) {
        cjj_InflaterInputStream__init_(var$4, $par0InputStream, var$5, 512, 1);
        var$4.$myinflater = 1;
        $var2.$in = var$4;
        $var2.$markpos = (-1);
        $var2.$buf1 = $rt_createByteArray(8192);
        $var1.$in = $var2;
        $var1.$buff = $rt_createByteArray(8);
        a: {
            try {
                $var2 = nms_CompressedStreamTools_read($var1);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $par0InputStream = $$je;

            }
            $var1.$in.$close();
            $rt_throw($par0InputStream);
        }
        $var1.$in.$close();
        return $var2;
    }
    $par0InputStream = new cjj_GZIPException;
    $var1 = new jl_StringBuilder;
    $var1.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$7, 10);
    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(102));
    $var2 = var$5.$msg;
    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $var2);
    $var2 = new jl_String;
    var$8 = $var1.$buffer;
    var$9 = var$8.data;
    var$10 = $var1.$length0;
    var$7 = var$9.length;
    if (var$10 >= 0 && var$10 <= (var$7 - 0 | 0)) {
        $var2.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
        $par0InputStream.$suppressionEnabled = 1;
        $par0InputStream.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par0InputStream);
        $par0InputStream.$message = $var2;
        $rt_throw($par0InputStream);
    }
    $par0InputStream = new jl_IndexOutOfBoundsException;
    $par0InputStream.$suppressionEnabled = 1;
    $par0InputStream.$writableStackTrace = 1;
    $rt_throw($par0InputStream);
},
nms_CompressedStreamTools_writeCompressed = ($par0NBTTagCompound, $par1OutputStream) => {
    let $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$par1OutputStream = $thread.pop();$par0NBTTagCompound = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = new ji_DataOutputStream;
        var$4 = new cjj_GZIPOutputStream;
        var$5 = new cjj_Deflater;
        var$6 = new cjj_Adler32;
        var$6.$s1 = Long_fromInt(1);
        var$6.$s2 = Long_ZERO;
        var$5.$adler = var$6;
        var$5.$finished1 = 0;
        var$5.$finished1 = 0;
        var$6 = cjj_Deflate__init_(var$5);
        var$5.$dstate = var$6;
        var$7 = cjj_Deflate_deflateInit(var$6, (-1), 8, 31, 8, 0);
        if (var$7) {
            $par0NBTTagCompound = new cjj_GZIPException;
            $par1OutputStream = new jl_StringBuilder;
            $par1OutputStream.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0($par1OutputStream, $par1OutputStream.$length0, var$7, 10);
            jl_AbstractStringBuilder_insert($par1OutputStream, $par1OutputStream.$length0, $rt_s(102));
            $var2 = var$5.$msg;
            jl_AbstractStringBuilder_insert($par1OutputStream, $par1OutputStream.$length0, $var2);
            $var2 = new jl_String;
            var$8 = $par1OutputStream.$buffer;
            var$9 = var$8.data;
            var$10 = $par1OutputStream.$length0;
            var$7 = var$9.length;
            if (var$10 >= 0 && var$10 <= (var$7 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
                jl_Throwable__init_0($par0NBTTagCompound, $var2);
                $rt_throw($par0NBTTagCompound);
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par0NBTTagCompound);
        }
        cjj_DeflaterOutputStream__init_(var$4, $par1OutputStream, var$5, 512, 1);
        var$4.$mydeflater = 1;
        $var2.$out0 = var$4;
        $var2.$buff0 = $rt_createByteArray(8);
        a: {
            try {
                nms_CompressedStreamTools_write($par0NBTTagCompound, $var2);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $par0NBTTagCompound = $$je;
                break a;

            }
            b: {
                try {
                    $var2.$out0.$flush();
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            $par0NBTTagCompound = $var2.$out0;
            $ptr = 2;
            continue main;
        }
        c: {
            try {
                $var2.$out0.$flush();
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        $par1OutputStream = $var2.$out0;
        $ptr = 1;
    case 1:
        $par1OutputStream.$close();
        if ($rt_suspending()) {
            break main;
        }
        $rt_throw($par0NBTTagCompound);
    case 2:
        $par0NBTTagCompound.$close();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0NBTTagCompound, $par1OutputStream, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_CompressedStreamTools_decompress = $par0ArrayOfByte => {
    let var$2, $var1, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    var$2 = $par0ArrayOfByte.data;
    $var1 = new ji_DataInputStream;
    $var2 = new ji_BufferedInputStream;
    var$5 = new cjj_GZIPInputStream;
    var$6 = new ji_ByteArrayInputStream;
    var$7 = var$2.length;
    var$6.$buf0 = $par0ArrayOfByte;
    var$6.$pos0 = 0;
    var$6.$mark = 0;
    var$6.$count = 0 + var$7 | 0;
    var$8 = new cjj_Inflater;
    var$9 = new cjj_Adler32;
    var$9.$s1 = Long_fromInt(1);
    var$9.$s2 = Long_ZERO;
    var$8.$adler = var$9;
    var$8.$finished0 = 0;
    var$8.$finished0 = 0;
    var$10 = new cjj_Inflate;
    var$10.$was = Long_fromInt(-1);
    var$10.$need_bytes = (-1);
    var$10.$crcbuf = $rt_createByteArray(4);
    var$10.$gheader = null;
    var$10.$tmp_string = null;
    var$10.$z0 = var$8;
    var$8.$istate = var$10;
    var$11 = cjj_Inflate_inflateInit(var$10, 31);
    if (!var$11) {
        cjj_InflaterInputStream__init_(var$5, var$6, var$8, 512, 1);
        var$5.$myinflater = 1;
        $var2.$in = var$5;
        $var2.$markpos = (-1);
        $var2.$buf1 = $rt_createByteArray(8192);
        $var1.$in = $var2;
        $var1.$buff = $rt_createByteArray(8);
        a: {
            try {
                $var2 = nms_CompressedStreamTools_read($var1);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $var2 = $$je;

            }
            $var1.$in.$close();
            $rt_throw($var2);
        }
        $var1.$in.$close();
        return $var2;
    }
    $var1 = new cjj_GZIPException;
    $var2 = new jl_StringBuilder;
    $var2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0($var2, $var2.$length0, var$11, 10);
    jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(102));
    var$5 = var$8.$msg;
    jl_AbstractStringBuilder_insert($var2, $var2.$length0, var$5);
    var$5 = new jl_String;
    $par0ArrayOfByte = $var2.$buffer;
    var$2 = $par0ArrayOfByte.data;
    var$7 = $var2.$length0;
    var$11 = var$2.length;
    if (var$7 >= 0 && var$7 <= (var$11 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString($par0ArrayOfByte.data, 0, var$7);
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $var1.$message = var$5;
        $rt_throw($var1);
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $rt_throw($var1);
},
nms_CompressedStreamTools_compress = $par0NBTTagCompound => {
    let $var1, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$par0NBTTagCompound = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = new ji_ByteArrayOutputStream;
        $var1.$buf = $rt_createByteArray(32);
        $var2 = new ji_DataOutputStream;
        var$4 = new cjj_GZIPOutputStream;
        var$5 = new cjj_Deflater;
        var$6 = new cjj_Adler32;
        var$6.$s1 = Long_fromInt(1);
        var$6.$s2 = Long_ZERO;
        var$5.$adler = var$6;
        var$5.$finished1 = 0;
        var$5.$finished1 = 0;
        var$6 = cjj_Deflate__init_(var$5);
        var$5.$dstate = var$6;
        var$7 = cjj_Deflate_deflateInit(var$6, (-1), 8, 31, 8, 0);
        if (var$7) {
            $par0NBTTagCompound = new cjj_GZIPException;
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$7, 10);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(102));
            var$4 = var$5.$msg;
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, var$4);
            var$4 = new jl_String;
            var$8 = $var1.$buffer;
            var$9 = var$8.data;
            var$10 = $var1.$length0;
            var$7 = var$9.length;
            if (var$10 >= 0 && var$10 <= (var$7 - 0 | 0)) {
                var$4.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
                jl_Throwable__init_0($par0NBTTagCompound, var$4);
                $rt_throw($par0NBTTagCompound);
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par0NBTTagCompound);
        }
        cjj_DeflaterOutputStream__init_(var$4, $var1, var$5, 512, 1);
        var$4.$mydeflater = 1;
        $var2.$out0 = var$4;
        $var2.$buff0 = $rt_createByteArray(8);
        a: {
            try {
                nms_CompressedStreamTools_write($par0NBTTagCompound, $var2);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $par0NBTTagCompound = $$je;
                break a;

            }
            b: {
                try {
                    $var2.$out0.$flush();
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            $par0NBTTagCompound = $var2.$out0;
            $ptr = 2;
            continue main;
        }
        c: {
            try {
                $var2.$out0.$flush();
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        $var1 = $var2.$out0;
        $ptr = 1;
    case 1:
        $var1.$close();
        if ($rt_suspending()) {
            break main;
        }
        $rt_throw($par0NBTTagCompound);
    case 2:
        $par0NBTTagCompound.$close();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $var1.$buf.data;
        var$11 = $var1.$count0;
        var$8 = $rt_createByteArray(var$11);
        var$10 = var$9.length;
        if (var$11 < var$10)
            var$10 = var$11;
        var$12 = var$8.data;
        var$11 = 0;
        while (var$11 < var$10) {
            var$12[var$11] = var$9[var$11];
            var$11 = var$11 + 1 | 0;
        }
        return var$8;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0NBTTagCompound, $var1, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_CompressedStreamTools_read = $par0DataInput => {
    let var$2, var$3, $var1, var$5, var$6;
    var$2 = $par0DataInput.$in.$read();
    if (var$2 < 0) {
        $par0DataInput = new ji_EOFException;
        $par0DataInput.$suppressionEnabled = 1;
        $par0DataInput.$writableStackTrace = 1;
        $rt_throw($par0DataInput);
    }
    var$3 = var$2 << 24 >> 24;
    if (!var$3) {
        $var1 = new nms_NBTTagEnd;
        $var1.$name = $rt_s(3);
    } else {
        var$2 = ji_DataInputStream_readUnsignedShort($par0DataInput);
        var$5 = $rt_createByteArray(var$2);
        var$6 = $rt_createCharArray(var$2);
        ji_DataInputStream_readFully($par0DataInput, var$5, 0, var$2);
        $var1 = nms_NBTBase_newTag(var$3, ji_DataInputStream_convertUTF8WithBuf(var$5, var$6, 0, var$2));
        $var1.$load($par0DataInput, 0);
    }
    if ($var1 instanceof nms_NBTTagCompound)
        return $var1;
    $var1 = new ji_IOException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $var1.$message = $rt_s(170);
    $rt_throw($var1);
},
nms_CompressedStreamTools_write = ($par0NBTTagCompound, $par1DataOutput) => {
    let var$3, var$4, var$5, var$6, var$7;
    $par1DataOutput.$out0.$write0(10);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$3 = $par0NBTTagCompound.$name;
    if (var$3 === null)
        var$3 = $rt_s(3);
    var$4 = ji_DataOutputStream_countUTFBytes($par1DataOutput, var$3);
    if (Long_gt(var$4, Long_fromInt(65535))) {
        $par0NBTTagCompound = new ji_IOException;
        $par0NBTTagCompound.$suppressionEnabled = 1;
        $par0NBTTagCompound.$writableStackTrace = 1;
        $par0NBTTagCompound.$message = $rt_s(127);
        $rt_throw($par0NBTTagCompound);
    }
    var$5 = Long_lo(var$4);
    var$6 = $rt_createByteArray(var$5 + 2 | 0);
    var$7 = var$6.data;
    var$7[0] = var$5 >> 8 << 24 >> 24;
    var$7[1] = var$5 << 24 >> 24;
    var$5 = ji_DataOutputStream_writeUTFBytesToBuffer($par1DataOutput, var$3, var$6, 2);
    $par1DataOutput.$out0.$write1(var$6, 0, var$5);
    $par1DataOutput.$written = $par1DataOutput.$written + var$5 | 0;
    nms_NBTTagCompound_write($par0NBTTagCompound, $par1DataOutput);
},
nles_WorldConverterEPK = $rt_classWithoutFields(),
nles_WorldConverterEPK__init_ = $this => {
    return;
},
nles_WorldConverterEPK__init_0 = () => {
    let var_0 = new nles_WorldConverterEPK();
    nles_WorldConverterEPK__init_(var_0);
    return var_0;
},
nles_WorldConverterEPK_importWorld = ($archiveContents, $newName) => {
    let $folder, $dir, $dc, $lastProgUpdate, $prog, $hasReadType, var$9, var$10, var$11, var$12, $b, var$14, var$15, var$16, $worldsTxt, var$18, $worldDatNBT, var$20, $ff$path, var$22, var$23, var$24, var$25, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$ff$path = $thread.pop();var$20 = $thread.pop();$worldDatNBT = $thread.pop();var$18 = $thread.pop();$worldsTxt = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$b = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$hasReadType = $thread.pop();$prog = $thread.pop();$lastProgUpdate = $thread.pop();$dc
        = $thread.pop();$dir = $thread.pop();$folder = $thread.pop();$newName = $thread.pop();$archiveContents = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nles_VFSSaveHandler_worldNameToFolderName($newName);
        if ($rt_suspending()) {
            break main;
        }
        $folder = $tmp;
        $dir = new nles_VFile;
        $dir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), $folder]));
        $dc = nles_EPKDecompiler__init_($archiveContents);
        $lastProgUpdate = 0;
        $prog = 0;
        $hasReadType = $dc.$isOldFormat;
        var$9 = 31;
        var$10 = 31;
        var$11 = $rt_s(171);
        while (true) {
            var$12 = $dc.$isOldFormat ? nles_EPKDecompiler_readFileOld($dc) : nles_EPKDecompiler_readFileNew($dc);
            if (var$12 === null) {
                $ptr = 2;
                continue main;
            }
            $b = var$12.$data11;
            if (!$hasReadType) {
                var$14 = var$12.$type3;
                if (var$14 === $rt_s(172))
                    var$15 = 1;
                else if (!($rt_s(172) instanceof jl_String))
                    var$15 = 0;
                else {
                    var$16 = $rt_s(172);
                    var$15 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                }
                if (!var$15)
                    break;
                var$14 = var$12.$name7;
                if (var$14 === $rt_s(173))
                    var$15 = 1;
                else if (!($rt_s(173) instanceof jl_String))
                    var$15 = 0;
                else {
                    var$16 = $rt_s(173);
                    var$15 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                }
                if (!var$15)
                    break;
                $archiveContents = var$12.$data11.data;
                var$15 = $archiveContents.length;
                $b = $rt_createCharArray(var$15);
                $worldsTxt = $b.data;
                var$18 = 0;
                while (var$18 < var$15) {
                    $worldsTxt[var$18] = $archiveContents[var$18] & 255 & 65535;
                    var$18 = var$18 + 1 | 0;
                }
                var$16 = new jl_String;
                var$16.$nativeString = $rt_charArrayToString($b.data, 0, $worldsTxt.length);
                if (var$16 === $rt_s(174))
                    var$15 = 1;
                else if (!($rt_s(174) instanceof jl_String))
                    var$15 = 0;
                else {
                    var$14 = $rt_s(174);
                    var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                }
                if (!var$15)
                    break;
                $hasReadType = 1;
                continue;
            }
            var$16 = var$12.$type3;
            if (var$16 === $rt_s(175))
                var$15 = 1;
            else if (!($rt_s(175) instanceof jl_String))
                var$15 = 0;
            else {
                var$14 = $rt_s(175);
                var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
            }
            if (var$15) {
                var$16 = var$12.$name7;
                if (var$16 === $rt_s(19))
                    var$15 = 1;
                else if (!($rt_s(19) instanceof jl_String))
                    var$15 = 0;
                else {
                    var$14 = $rt_s(19);
                    var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                }
                if (var$15) {
                    $archiveContents = $b.data;
                    var$14 = new ji_DataInputStream;
                    var$16 = new ji_BufferedInputStream;
                    $worldDatNBT = new cjj_GZIPInputStream;
                    var$20 = new ji_ByteArrayInputStream;
                    var$18 = $archiveContents.length;
                    var$20.$buf0 = $b;
                    var$20.$pos0 = 0;
                    var$20.$mark = 0;
                    var$20.$count = 0 + var$18 | 0;
                    $ff$path = new cjj_Inflater;
                    var$22 = new cjj_Adler32;
                    var$22.$s1 = Long_fromInt(1);
                    var$22.$s2 = Long_ZERO;
                    $ff$path.$adler = var$22;
                    $ff$path.$finished0 = 0;
                    $ff$path.$finished0 = 0;
                    var$22 = new cjj_Inflate;
                    var$22.$was = Long_fromInt(-1);
                    var$22.$need_bytes = (-1);
                    var$22.$crcbuf = $rt_createByteArray(4);
                    var$22.$gheader = null;
                    var$22.$tmp_string = null;
                    var$22.$z0 = $ff$path;
                    $ff$path.$istate = var$22;
                    var$23 = cjj_Inflate_inflateInit(var$22, var$9);
                    if (var$23) {
                        $newName = new cjj_GZIPException;
                        $dc = new jl_StringBuilder;
                        $dc.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert0($dc, $dc.$length0, var$23, 10);
                        jl_AbstractStringBuilder_insert($dc, $dc.$length0, $rt_s(102));
                        $folder = $ff$path.$msg;
                        jl_AbstractStringBuilder_insert($dc, $dc.$length0, $folder);
                        $folder = new jl_String;
                        $archiveContents = $dc.$buffer;
                        $b = $archiveContents.data;
                        var$18 = $dc.$length0;
                        var$23 = $b.length;
                        if (var$18 >= 0 && var$18 <= (var$23 - 0 | 0)) {
                            $folder.$nativeString = $rt_charArrayToString($archiveContents.data, 0, var$18);
                            jl_Throwable__init_0($newName, $folder);
                            $rt_throw($newName);
                        }
                        $newName = new jl_IndexOutOfBoundsException;
                        $newName.$suppressionEnabled = 1;
                        $newName.$writableStackTrace = 1;
                        $rt_throw($newName);
                    }
                    cjj_InflaterInputStream__init_($worldDatNBT, var$20, $ff$path, 512, 1);
                    $worldDatNBT.$myinflater = 1;
                    var$16.$in = $worldDatNBT;
                    var$16.$markpos = (-1);
                    var$16.$buf1 = $rt_createByteArray(8192);
                    var$14.$in = var$16;
                    var$14.$buff = $rt_createByteArray(8);
                    a: {
                        try {
                            $worldDatNBT = nms_CompressedStreamTools_read(var$14);
                            break a;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            $newName = $$je;

                        }
                        $dc = var$14.$in;
                        $ptr = 4;
                        continue main;
                    }
                    var$14 = var$14.$in;
                    $ptr = 5;
                    continue main;
                }
                $ff$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$dir, var$12.$name7]));
                if (!($ff$path !== null && !jl_String_contains($ff$path, $rt_s(168)) ? 0 : 1)) {
                    $ptr = 6;
                    continue main;
                }
                var$15 = $prog + $b.data.length | 0;
                if ((var$15 - $lastProgUpdate | 0) <= 10000)
                    $prog = var$15;
                else {
                    var$24 = var$15;
                    nles_IntegratedServer_$callClinit();
                    var$14 = new nlesi_IPCPacket0DProgressUpdate;
                    var$14.$updateMessage = var$11;
                    var$14.$updateProgress = var$24;
                    nles_IntegratedServer_sendIPCPacket(var$14);
                    $prog = var$15;
                    $lastProgUpdate = var$15;
                }
            }
        }
        $newName = new ji_IOException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $newName.$message = $rt_s(176);
        $rt_throw($newName);
    case 2:
        b: {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $newName = nles_SYS_VFS;
            $dir = $newName.$fileMap;
            if (!$rt_s(48).$hashCode1) {
                var$15 = 0;
                while (true) {
                    if (var$15 >= $rt_s(48).$nativeString.length)
                        break b;
                    $rt_s(48).$hashCode1 = (31 * $rt_s(48).$hashCode1 | 0) + $rt_s(48).$nativeString.charCodeAt(var$15) | 0;
                    var$15 = var$15 + 1 | 0;
                }
            }
        }
        var$23 = $rt_s(48).$hashCode1;
        $archiveContents = $dir.$elementData.data;
        $dir = $archiveContents[var$23 & ($archiveContents.length - 1 | 0)];
        while ($dir !== null) {
            if ($dir.$origKeyHash == var$23) {
                c: {
                    var$14 = $dir.$key;
                    if ($rt_s(48) !== var$14) {
                        if ($rt_s(48) === var$14)
                            var$15 = 1;
                        else if (!(var$14 instanceof jl_String))
                            var$15 = 0;
                        else {
                            var$14 = var$14;
                            var$15 = $rt_s(48).$nativeString !== var$14.$nativeString ? 0 : 1;
                        }
                        if (!var$15) {
                            var$15 = 0;
                            break c;
                        }
                    }
                    var$15 = 1;
                }
                if (var$15)
                    break;
            }
            $dir = $dir.$next3;
        }
        $dir = $dir === null ? null : $dir.$value0;
        if ($dir === null) {
            var$14 = $newName.$fileMap;
            $dir = new nles_VirtualFilesystem$VFSFile;
            $dir.$fileSize = (-1);
            $dir.$hasBeenDeleted = 0;
            $dir.$hasBeenAccessed = 0;
            $dir.$exists0 = 0;
            $dir.$cache = null;
            $dir.$virtualFilesystem = $newName;
            $dir.$filePath = $rt_s(48);
            nles_SysUtil_$callClinit();
            $dir.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$14, $rt_s(48), $dir);
        }
        var$15 = 0;
        $ptr = 3;
    case 3:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes($dir, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $archiveContents = $tmp;
        if ($archiveContents === null)
            $newName = null;
        else {
            $newName = new jl_String;
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            $dir = jnc_Charset$Charsets_value;
            var$14 = $rt_s(68).$nativeString.toUpperCase();
            var$16 = var$14 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$14);
            c: {
                if (!var$16.$hashCode1) {
                    var$15 = 0;
                    while (true) {
                        if (var$15 >= var$16.$nativeString.length)
                            break c;
                        var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt(var$15) | 0;
                        var$15 = var$15 + 1 | 0;
                    }
                }
            }
            var$23 = var$16.$hashCode1;
            $b = $dir.$elementData.data;
            $dir = $b[var$23 & ($b.length - 1 | 0)];
            while ($dir !== null) {
                if ($dir.$origKeyHash == var$23) {
                    var$14 = $dir.$key;
                    if (var$16 !== var$14 && !jl_String_equals(var$16, var$14) ? 0 : 1)
                        break;
                }
                $dir = $dir.$next3;
            }
            var$14 = $dir === null ? null : $dir.$value0;
            if (var$14 === null) {
                $newName = new jnc_UnsupportedCharsetException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $newName.$charsetName = $rt_s(68);
                $rt_throw($newName);
            }
            var$18 = $archiveContents.data.length;
            if (var$18 >= 0 && var$18 <= (var$18 - 0 | 0)) {
                $dc = new jn_ByteBufferImpl;
                $hasReadType = 0 + var$18 | 0;
                jn_Buffer__init_($dc, var$18);
                $dc.$order = jn_ByteOrder_BIG_ENDIAN;
                $dc.$start2 = 0;
                $dc.$array2 = $archiveContents;
                $dc.$position1 = 0;
                $dc.$limit = $hasReadType;
                $dc.$direct = 0;
                $dc.$readOnly0 = 0;
                d: {
                    try {
                        $dc = jnc_CharsetDecoder_decode(jnc_CharsetDecoder_onUnmappableCharacter(jnc_CharsetDecoder_onMalformedInput(var$14.$newDecoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $dc);
                        break d;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jnc_CharacterCodingException) {
                            $dc = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $folder = new jl_AssertionError;
                    jl_Throwable__init_1($folder, $rt_s(103), $dc);
                    $rt_throw($folder);
                }
                var$23 = $dc.$position1;
                if (!var$23 && $dc.$limit == $dc.$capacity)
                    $archiveContents = $dc.$array0;
                else {
                    $archiveContents = $rt_createCharArray($dc.$limit - var$23 | 0);
                    jn_CharBuffer_get($dc, $archiveContents, 0, $archiveContents.data.length);
                }
                $newName.$nativeString = $rt_fullArrayToString($archiveContents.data);
            } else {
                $newName = new jl_IndexOutOfBoundsException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
        }
        if ($newName === null)
            $worldsTxt = null;
        else {
            $dc = nles_VirtualFilesystem_CRLFtoLF($newName);
            $worldsTxt = jur_Pattern_split(jur_Pattern_compile($rt_s(9), 0), $dc, 0);
        }
        e: {
            if ($worldsTxt !== null) {
                var$15 = $worldsTxt.data.length;
                if (var$15 > 0) {
                    $archiveContents = $rt_createArray(jl_String, var$15 + 1 | 0);
                    $b = $archiveContents.data;
                    jl_System_arraycopy($worldsTxt, 0, $archiveContents, 0, var$15);
                    $b[$b.length - 1 | 0] = $folder;
                    break e;
                }
            }
            $archiveContents = $rt_createArray(jl_String, 1);
            $archiveContents.data[0] = $folder;
        }
        f: {
            $newName = nles_SYS_VFS;
            $folder = $newName.$fileMap;
            if (!$rt_s(48).$hashCode1) {
                var$15 = 0;
                while (true) {
                    if (var$15 >= $rt_s(48).$nativeString.length)
                        break f;
                    $rt_s(48).$hashCode1 = (31 * $rt_s(48).$hashCode1 | 0) + $rt_s(48).$nativeString.charCodeAt(var$15) | 0;
                    var$15 = var$15 + 1 | 0;
                }
            }
        }
        var$23 = $rt_s(48).$hashCode1;
        $b = $folder.$elementData.data;
        $folder = $b[var$23 & ($b.length - 1 | 0)];
        while ($folder !== null) {
            if ($folder.$origKeyHash == var$23) {
                g: {
                    $dir = $folder.$key;
                    if ($rt_s(48) !== $dir) {
                        if ($rt_s(48) === $dir)
                            var$15 = 1;
                        else if (!($dir instanceof jl_String))
                            var$15 = 0;
                        else {
                            $dir = $dir;
                            var$15 = $rt_s(48).$nativeString !== $dir.$nativeString ? 0 : 1;
                        }
                        if (!var$15) {
                            var$15 = 0;
                            break g;
                        }
                    }
                    var$15 = 1;
                }
                if (var$15)
                    break;
            }
            $folder = $folder.$next3;
        }
        $folder = $folder === null ? null : $folder.$value0;
        if ($folder === null) {
            $dir = $newName.$fileMap;
            $folder = new nles_VirtualFilesystem$VFSFile;
            $folder.$fileSize = (-1);
            $folder.$hasBeenDeleted = 0;
            $folder.$hasBeenAccessed = 0;
            $folder.$exists0 = 0;
            $folder.$cache = null;
            $folder.$virtualFilesystem = $newName;
            $folder.$filePath = $rt_s(48);
            nles_SysUtil_$callClinit();
            $folder.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($dir, $rt_s(48), $folder);
        }
        $newName = jl_String_join($rt_s(9), $archiveContents);
        if ($newName === null)
            $archiveContents = null;
        else {
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            $dir = jnc_Charset$Charsets_value;
            var$14 = $rt_s(68).$nativeString.toUpperCase();
            var$16 = var$14 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$14);
            h: {
                if (!var$16.$hashCode1) {
                    var$15 = 0;
                    while (true) {
                        if (var$15 >= var$16.$nativeString.length)
                            break h;
                        var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt(var$15) | 0;
                        var$15 = var$15 + 1 | 0;
                    }
                }
            }
            var$23 = var$16.$hashCode1;
            $archiveContents = $dir.$elementData.data;
            $dir = $archiveContents[var$23 & ($archiveContents.length - 1 | 0)];
            while ($dir !== null) {
                if ($dir.$origKeyHash == var$23) {
                    i: {
                        var$14 = $dir.$key;
                        if (var$16 !== var$14) {
                            if (var$16 === var$14)
                                var$15 = 1;
                            else if (!(var$14 instanceof jl_String))
                                var$15 = 0;
                            else {
                                var$14 = var$14;
                                var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                            }
                            if (!var$15) {
                                var$15 = 0;
                                break i;
                            }
                        }
                        var$15 = 1;
                    }
                    if (var$15)
                        break;
                }
                $dir = $dir.$next3;
            }
            var$14 = $dir === null ? null : $dir.$value0;
            if (var$14 === null) {
                $newName = new jnc_UnsupportedCharsetException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $newName.$charsetName = $rt_s(68);
                $rt_throw($newName);
            }
            $archiveContents = $rt_fastStringToCharArray($newName.$nativeString);
            var$18 = $archiveContents.data.length;
            $dir = new jn_CharBufferOverArray;
            $prog = 0 + var$18 | 0;
            jn_Buffer__init_($dir, var$18);
            $dir.$position1 = 0;
            $dir.$limit = $prog;
            $dir.$start1 = 0;
            $dir.$readOnly = 0;
            $dir.$array0 = $archiveContents;
            j: {
                try {
                    $newName = jnc_CharsetEncoder_encode(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput(var$14.$newEncoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $dir);
                    break j;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jnc_CharacterCodingException) {
                        $dc = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $folder = new jl_AssertionError;
                $folder.$suppressionEnabled = 1;
                $folder.$writableStackTrace = 1;
                $folder.$message = $rt_s(103);
                $folder.$cause = $dc;
                $rt_throw($folder);
            }
            var$23 = $newName.$position1;
            if (!var$23 && $newName.$limit == $newName.$capacity)
                $archiveContents = $newName.$array2;
            else {
                $archiveContents = $rt_createByteArray($newName.$limit - var$23 | 0);
                jn_ByteBuffer_get($newName, $archiveContents, 0, $archiveContents.data.length);
            }
        }
        var$15 = 1;
        $ptr = 8;
        continue main;
    case 4:
        $dc.$close();
        if ($rt_suspending()) {
            break main;
        }
        $rt_throw($newName);
    case 5:
        b: {
            var$14.$close();
            if ($rt_suspending()) {
                break main;
            }
            var$14 = $worldDatNBT.$tagMap;
            if (!$rt_s(55).$hashCode1) {
                var$15 = 0;
                while (true) {
                    if (var$15 >= $rt_s(55).$nativeString.length)
                        break b;
                    $rt_s(55).$hashCode1 = (31 * $rt_s(55).$hashCode1 | 0) + $rt_s(55).$nativeString.charCodeAt(var$15) | 0;
                    var$15 = var$15 + 1 | 0;
                }
            }
        }
        var$23 = $rt_s(55).$hashCode1;
        $archiveContents = var$14.$elementData.data;
        var$14 = $archiveContents[var$23 & ($archiveContents.length - 1 | 0)];
        while (var$14 !== null) {
            if (var$14.$origKeyHash == var$23) {
                c: {
                    var$16 = var$14.$key;
                    if ($rt_s(55) !== var$16) {
                        if ($rt_s(55) === var$16)
                            var$15 = 1;
                        else if (!(var$16 instanceof jl_String))
                            var$15 = 0;
                        else {
                            var$16 = var$16;
                            var$15 = $rt_s(55).$nativeString !== var$16.$nativeString ? 0 : 1;
                        }
                        if (!var$15) {
                            var$15 = 0;
                            break c;
                        }
                    }
                    var$15 = 1;
                }
                if (var$15)
                    break;
            }
            var$14 = var$14.$next3;
        }
        if (!(var$14 === null ? 0 : 1)) {
            var$14 = new nms_NBTTagCompound;
            if ($rt_s(55) !== null)
                var$14.$name = $rt_s(55);
            else
                var$14.$name = $rt_s(3);
            var$14.$tagMap = ju_HashMap__init_();
        } else {
            var$14 = $worldDatNBT.$tagMap;
            if ($rt_s(55) === null) {
                var$14 = var$14.$elementData.data[0];
                while (var$14 !== null && var$14.$key !== null) {
                    var$14 = var$14.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(55).$hashCode1) {
                        var$15 = 0;
                        while (true) {
                            if (var$15 >= $rt_s(55).$nativeString.length)
                                break e;
                            $rt_s(55).$hashCode1 = (31 * $rt_s(55).$hashCode1 | 0) + $rt_s(55).$nativeString.charCodeAt(var$15) | 0;
                            var$15 = var$15 + 1 | 0;
                        }
                    }
                }
                var$23 = $rt_s(55).$hashCode1;
                $archiveContents = var$14.$elementData.data;
                var$14 = $archiveContents[var$23 & ($archiveContents.length - 1 | 0)];
                while (var$14 !== null) {
                    if (var$14.$origKeyHash == var$23) {
                        k: {
                            var$16 = var$14.$key;
                            if ($rt_s(55) !== var$16) {
                                if ($rt_s(55) === var$16)
                                    var$15 = 1;
                                else if (!(var$16 instanceof jl_String))
                                    var$15 = 0;
                                else {
                                    var$16 = var$16;
                                    var$15 = $rt_s(55).$nativeString !== var$16.$nativeString ? 0 : 1;
                                }
                                if (!var$15) {
                                    var$15 = 0;
                                    break k;
                                }
                            }
                            var$15 = 1;
                        }
                        if (var$15)
                            break;
                    }
                    var$14 = var$14.$next3;
                }
            }
            var$14 = var$14 === null ? null : var$14.$value0;
        }
        var$16 = var$14.$tagMap;
        var$14 = new nms_NBTTagString;
        var$14.$name = $rt_s(56);
        var$14.$data1 = $newName;
        if ($newName === null) {
            $dc = new jl_IllegalArgumentException;
            $dc.$suppressionEnabled = 1;
            $dc.$writableStackTrace = 1;
            $dc.$message = $rt_s(177);
            $rt_throw($dc);
        }
        l: {
            ju_HashMap_putImpl(var$16, $rt_s(56), var$14);
            var$14 = $worldDatNBT.$tagMap;
            if (!$rt_s(55).$hashCode1) {
                var$15 = 0;
                while (true) {
                    if (var$15 >= $rt_s(55).$nativeString.length)
                        break l;
                    $rt_s(55).$hashCode1 = (31 * $rt_s(55).$hashCode1 | 0) + $rt_s(55).$nativeString.charCodeAt(var$15) | 0;
                    var$15 = var$15 + 1 | 0;
                }
            }
        }
        var$18 = $rt_s(55).$hashCode1;
        $archiveContents = var$14.$elementData.data;
        var$14 = $archiveContents[var$18 & ($archiveContents.length - 1 | 0)];
        while (var$14 !== null) {
            if (var$14.$origKeyHash == var$18) {
                m: {
                    var$16 = var$14.$key;
                    if ($rt_s(55) !== var$16) {
                        if ($rt_s(55) === var$16)
                            var$15 = 1;
                        else if (!(var$16 instanceof jl_String))
                            var$15 = 0;
                        else {
                            var$16 = var$16;
                            var$15 = $rt_s(55).$nativeString !== var$16.$nativeString ? 0 : 1;
                        }
                        if (!var$15) {
                            var$15 = 0;
                            break m;
                        }
                    }
                    var$15 = 1;
                }
                if (var$15)
                    break;
            }
            var$14 = var$14.$next3;
        }
        if (!(var$14 === null ? 0 : 1)) {
            var$16 = new nms_NBTTagCompound;
            if ($rt_s(55) !== null)
                var$16.$name = $rt_s(55);
            else
                var$16.$name = $rt_s(3);
            var$16.$tagMap = ju_HashMap__init_();
        } else {
            var$14 = $worldDatNBT.$tagMap;
            if ($rt_s(55) === null) {
                var$20 = var$14.$elementData.data[0];
                while (var$20 !== null && var$20.$key !== null) {
                    var$20 = var$20.$next3;
                }
            } else {
                n: {
                    if (!$rt_s(55).$hashCode1) {
                        var$15 = 0;
                        while (true) {
                            if (var$15 >= $rt_s(55).$nativeString.length)
                                break n;
                            $rt_s(55).$hashCode1 = (31 * $rt_s(55).$hashCode1 | 0) + $rt_s(55).$nativeString.charCodeAt(var$15) | 0;
                            var$15 = var$15 + 1 | 0;
                        }
                    }
                }
                var$18 = $rt_s(55).$hashCode1;
                $archiveContents = var$14.$elementData.data;
                var$20 = $archiveContents[var$18 & ($archiveContents.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == var$18) {
                        o: {
                            var$14 = var$20.$key;
                            if ($rt_s(55) !== var$14) {
                                if ($rt_s(55) === var$14)
                                    var$15 = 1;
                                else if (!(var$14 instanceof jl_String))
                                    var$15 = 0;
                                else {
                                    var$14 = var$14;
                                    var$15 = $rt_s(55).$nativeString !== var$14.$nativeString ? 0 : 1;
                                }
                                if (!var$15) {
                                    var$15 = 0;
                                    break o;
                                }
                            }
                            var$15 = 1;
                        }
                        if (var$15)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
            }
            var$16 = var$20 === null ? null : var$20.$value0;
        }
        var$25 = jl_System_currentTimeMillis();
        var$20 = var$16.$tagMap;
        var$16 = new nms_NBTTagLong;
        var$16.$name = $rt_s(178);
        var$16.$data6 = var$25;
        ju_HashMap_putImpl(var$20, $rt_s(178), var$16);
        var$14 = new ji_ByteArrayOutputStream;
        var$14.$buf = $rt_createByteArray(32);
        var$20 = new ji_DataOutputStream;
        var$16 = new cjj_GZIPOutputStream;
        $ff$path = new cjj_Deflater;
        var$22 = new cjj_Adler32;
        var$22.$s1 = Long_fromInt(1);
        var$22.$s2 = Long_ZERO;
        $ff$path.$adler = var$22;
        $ff$path.$finished1 = 0;
        $ff$path.$finished1 = 0;
        var$22 = cjj_Deflate__init_($ff$path);
        $ff$path.$dstate = var$22;
        var$23 = cjj_Deflate_deflateInit(var$22, (-1), 8, var$10, 8, 0);
        if (var$23) {
            $newName = new cjj_GZIPException;
            $dc = new jl_StringBuilder;
            $dc.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_append3($dc, var$23, 10);
            jl_StringBuilder_insert($dc, $dc.$length0, $rt_s(102));
            $folder = $ff$path.$msg;
            jl_StringBuilder_insert($dc, $dc.$length0, $folder);
            $folder = new jl_String;
            $archiveContents = $dc.$buffer;
            $b = $archiveContents.data;
            var$18 = $dc.$length0;
            var$23 = $b.length;
            if (var$18 >= 0 && var$18 <= (var$23 - 0 | 0)) {
                $folder.$nativeString = $rt_charArrayToString($archiveContents.data, 0, var$18);
                jl_Exception__init_0($newName, $folder);
                $rt_throw($newName);
            }
            $newName = new jl_IndexOutOfBoundsException;
            $newName.$suppressionEnabled = 1;
            $newName.$writableStackTrace = 1;
            $rt_throw($newName);
        }
        cjj_DeflaterOutputStream__init_(var$16, var$14, $ff$path, 512, 1);
        var$16.$mydeflater = 1;
        var$20.$out0 = var$16;
        var$20.$buff0 = $rt_createByteArray(8);
        p: {
            try {
                nms_CompressedStreamTools_write($worldDatNBT, var$20);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $newName = $$je;
                break p;

            }
            q: {
                try {
                    var$20.$out0.$flush();
                    break q;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            var$16 = var$20.$out0;
            $ptr = 10;
            continue main;
        }
        r: {
            try {
                var$20.$out0.$flush();
                break r;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        $dc = var$20.$out0;
        $ptr = 9;
        continue main;
    case 6:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$14 = nles_SYS_VFS;
        var$16 = var$14.$fileMap;
        if ($ff$path === null) {
            var$16 = var$16.$elementData.data[0];
            while (var$16 !== null && var$16.$key !== null) {
                var$16 = var$16.$next3;
            }
        } else {
            s: {
                if (!$ff$path.$hashCode1) {
                    var$15 = 0;
                    while (true) {
                        if (var$15 >= $ff$path.$nativeString.length)
                            break s;
                        $ff$path.$hashCode1 = (31 * $ff$path.$hashCode1 | 0) + $ff$path.$nativeString.charCodeAt(var$15) | 0;
                        var$15 = var$15 + 1 | 0;
                    }
                }
            }
            var$23 = $ff$path.$hashCode1;
            $archiveContents = var$16.$elementData.data;
            var$16 = $archiveContents[var$23 & ($archiveContents.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == var$23) {
                    t: {
                        $worldDatNBT = var$16.$key;
                        if ($ff$path !== $worldDatNBT) {
                            if ($ff$path === $worldDatNBT)
                                var$15 = 1;
                            else if (!($worldDatNBT instanceof jl_String))
                                var$15 = 0;
                            else {
                                $worldDatNBT = $worldDatNBT;
                                var$15 = $ff$path.$nativeString !== $worldDatNBT.$nativeString ? 0 : 1;
                            }
                            if (!var$15) {
                                var$15 = 0;
                                break t;
                            }
                        }
                        var$15 = 1;
                    }
                    if (var$15)
                        break;
                }
                var$16 = var$16.$next3;
            }
        }
        var$16 = var$16 === null ? null : var$16.$value0;
        if (var$16 === null) {
            $worldDatNBT = var$14.$fileMap;
            var$16 = new nles_VirtualFilesystem$VFSFile;
            var$16.$fileSize = (-1);
            var$16.$hasBeenDeleted = 0;
            var$16.$hasBeenAccessed = 0;
            var$16.$exists0 = 0;
            var$16.$cache = null;
            var$16.$virtualFilesystem = var$14;
            var$16.$filePath = $ff$path;
            nles_SysUtil_$callClinit();
            var$16.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($worldDatNBT, $ff$path, var$16);
        }
        var$15 = 1;
        $ptr = 7;
    case 7:
        nles_VirtualFilesystem$VFSFile_setAllBytes(var$16, $b, var$15);
        if ($rt_suspending()) {
            break main;
        }
        s: while (true) {
            var$15 = $prog + $b.data.length | 0;
            if ((var$15 - $lastProgUpdate | 0) <= 10000)
                $prog = var$15;
            else {
                var$24 = var$15;
                nles_IntegratedServer_$callClinit();
                var$14 = new nlesi_IPCPacket0DProgressUpdate;
                var$14.$updateMessage = var$11;
                var$14.$updateProgress = var$24;
                nles_IntegratedServer_sendIPCPacket(var$14);
                $prog = var$15;
                $lastProgUpdate = var$15;
            }
            while (true) {
                while (true) {
                    var$12 = $dc.$isOldFormat ? nles_EPKDecompiler_readFileOld($dc) : nles_EPKDecompiler_readFileNew($dc);
                    if (var$12 === null) {
                        $ptr = 2;
                        continue main;
                    }
                    $b = var$12.$data11;
                    if ($hasReadType)
                        break;
                    var$14 = var$12.$type3;
                    if (var$14 === $rt_s(172))
                        var$15 = 1;
                    else if (!($rt_s(172) instanceof jl_String))
                        var$15 = 0;
                    else {
                        var$16 = $rt_s(172);
                        var$15 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                    }
                    if (!var$15)
                        break s;
                    var$14 = var$12.$name7;
                    if (var$14 === $rt_s(173))
                        var$15 = 1;
                    else if (!($rt_s(173) instanceof jl_String))
                        var$15 = 0;
                    else {
                        var$16 = $rt_s(173);
                        var$15 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                    }
                    if (!var$15)
                        break s;
                    $archiveContents = var$12.$data11.data;
                    var$15 = $archiveContents.length;
                    $b = $rt_createCharArray(var$15);
                    $worldsTxt = $b.data;
                    var$18 = 0;
                    while (var$18 < var$15) {
                        $worldsTxt[var$18] = $archiveContents[var$18] & 255 & 65535;
                        var$18 = var$18 + 1 | 0;
                    }
                    var$16 = new jl_String;
                    var$16.$nativeString = $rt_charArrayToString($b.data, 0, $worldsTxt.length);
                    if (var$16 === $rt_s(174))
                        var$15 = 1;
                    else if (!($rt_s(174) instanceof jl_String))
                        var$15 = 0;
                    else {
                        var$14 = $rt_s(174);
                        var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                    }
                    if (!var$15)
                        break s;
                    $hasReadType = 1;
                }
                var$16 = var$12.$type3;
                if (var$16 === $rt_s(175))
                    var$15 = 1;
                else if (!($rt_s(175) instanceof jl_String))
                    var$15 = 0;
                else {
                    var$14 = $rt_s(175);
                    var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                }
                if (var$15)
                    break;
            }
            var$16 = var$12.$name7;
            if (var$16 === $rt_s(19))
                var$15 = 1;
            else if (!($rt_s(19) instanceof jl_String))
                var$15 = 0;
            else {
                var$14 = $rt_s(19);
                var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
            }
            if (var$15) {
                $archiveContents = $b.data;
                var$14 = new ji_DataInputStream;
                var$16 = new ji_BufferedInputStream;
                $worldDatNBT = new cjj_GZIPInputStream;
                var$20 = new ji_ByteArrayInputStream;
                var$18 = $archiveContents.length;
                var$20.$buf0 = $b;
                var$20.$pos0 = 0;
                var$20.$mark = 0;
                var$20.$count = 0 + var$18 | 0;
                $ff$path = new cjj_Inflater;
                var$22 = new cjj_Adler32;
                var$22.$s1 = Long_fromInt(1);
                var$22.$s2 = Long_ZERO;
                $ff$path.$adler = var$22;
                $ff$path.$finished0 = 0;
                $ff$path.$finished0 = 0;
                var$22 = new cjj_Inflate;
                var$22.$was = Long_fromInt(-1);
                var$22.$need_bytes = (-1);
                var$22.$crcbuf = $rt_createByteArray(4);
                var$22.$gheader = null;
                var$22.$tmp_string = null;
                var$22.$z0 = $ff$path;
                $ff$path.$istate = var$22;
                var$23 = cjj_Inflate_inflateInit(var$22, var$9);
                if (var$23) {
                    $newName = new cjj_GZIPException;
                    $dc = new jl_StringBuilder;
                    $dc.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert0($dc, $dc.$length0, var$23, 10);
                    jl_AbstractStringBuilder_insert($dc, $dc.$length0, $rt_s(102));
                    $folder = $ff$path.$msg;
                    jl_AbstractStringBuilder_insert($dc, $dc.$length0, $folder);
                    $folder = new jl_String;
                    $archiveContents = $dc.$buffer;
                    $b = $archiveContents.data;
                    var$18 = $dc.$length0;
                    var$23 = $b.length;
                    if (var$18 >= 0 && var$18 <= (var$23 - 0 | 0)) {
                        $folder.$nativeString = $rt_charArrayToString($archiveContents.data, 0, var$18);
                        jl_Throwable__init_0($newName, $folder);
                        $rt_throw($newName);
                    }
                    $newName = new jl_IndexOutOfBoundsException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                cjj_InflaterInputStream__init_($worldDatNBT, var$20, $ff$path, 512, 1);
                $worldDatNBT.$myinflater = 1;
                var$16.$in = $worldDatNBT;
                var$16.$markpos = (-1);
                var$16.$buf1 = $rt_createByteArray(8192);
                var$14.$in = var$16;
                var$14.$buff = $rt_createByteArray(8);
                h: {
                    try {
                        $worldDatNBT = nms_CompressedStreamTools_read(var$14);
                        break h;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        $newName = $$je;

                    }
                    $dc = var$14.$in;
                    $ptr = 4;
                    continue main;
                }
                var$14 = var$14.$in;
                $ptr = 5;
                continue main;
            }
            $ff$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$dir, var$12.$name7]));
            if (!($ff$path !== null && !jl_String_contains($ff$path, $rt_s(168)) ? 0 : 1)) {
                $ptr = 6;
                continue main;
            }
        }
        $newName = new ji_IOException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $newName.$message = $rt_s(176);
        $rt_throw($newName);
    case 8:
        nles_VirtualFilesystem$VFSFile_setAllBytes($folder, $archiveContents, var$15);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        $dc.$close();
        if ($rt_suspending()) {
            break main;
        }
        $rt_throw($newName);
    case 10:
        var$16.$close();
        if ($rt_suspending()) {
            break main;
        }
        $archiveContents = var$14.$buf.data;
        var$15 = var$14.$count0;
        $b = $rt_createByteArray(var$15);
        var$18 = $archiveContents.length;
        if (var$15 < var$18)
            var$18 = var$15;
        $worldsTxt = $b.data;
        var$15 = 0;
        while (var$15 < var$18) {
            $worldsTxt[var$15] = $archiveContents[var$15];
            var$15 = var$15 + 1 | 0;
        }
        u: while (true) {
            $ff$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$dir, var$12.$name7]));
            if (!($ff$path !== null && !jl_String_contains($ff$path, $rt_s(168)) ? 0 : 1)) {
                $ptr = 6;
                continue main;
            }
            var$15 = $prog + $b.data.length | 0;
            if ((var$15 - $lastProgUpdate | 0) <= 10000)
                $prog = var$15;
            else {
                var$24 = var$15;
                nles_IntegratedServer_$callClinit();
                var$14 = new nlesi_IPCPacket0DProgressUpdate;
                var$14.$updateMessage = var$11;
                var$14.$updateProgress = var$24;
                nles_IntegratedServer_sendIPCPacket(var$14);
                $prog = var$15;
                $lastProgUpdate = var$15;
            }
            while (true) {
                while (true) {
                    var$12 = $dc.$isOldFormat ? nles_EPKDecompiler_readFileOld($dc) : nles_EPKDecompiler_readFileNew($dc);
                    if (var$12 === null) {
                        $ptr = 2;
                        continue main;
                    }
                    $b = var$12.$data11;
                    if ($hasReadType)
                        break;
                    var$14 = var$12.$type3;
                    if (var$14 === $rt_s(172))
                        var$15 = 1;
                    else if (!($rt_s(172) instanceof jl_String))
                        var$15 = 0;
                    else {
                        var$16 = $rt_s(172);
                        var$15 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                    }
                    if (!var$15)
                        break u;
                    var$14 = var$12.$name7;
                    if (var$14 === $rt_s(173))
                        var$15 = 1;
                    else if (!($rt_s(173) instanceof jl_String))
                        var$15 = 0;
                    else {
                        var$16 = $rt_s(173);
                        var$15 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                    }
                    if (!var$15)
                        break u;
                    $archiveContents = var$12.$data11.data;
                    var$15 = $archiveContents.length;
                    $b = $rt_createCharArray(var$15);
                    $worldsTxt = $b.data;
                    var$18 = 0;
                    while (var$18 < var$15) {
                        $worldsTxt[var$18] = $archiveContents[var$18] & 255 & 65535;
                        var$18 = var$18 + 1 | 0;
                    }
                    var$16 = new jl_String;
                    var$16.$nativeString = $rt_charArrayToString($b.data, 0, $worldsTxt.length);
                    if (var$16 === $rt_s(174))
                        var$15 = 1;
                    else if (!($rt_s(174) instanceof jl_String))
                        var$15 = 0;
                    else {
                        var$14 = $rt_s(174);
                        var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                    }
                    if (!var$15)
                        break u;
                    $hasReadType = 1;
                }
                var$16 = var$12.$type3;
                if (var$16 === $rt_s(175))
                    var$15 = 1;
                else if (!($rt_s(175) instanceof jl_String))
                    var$15 = 0;
                else {
                    var$14 = $rt_s(175);
                    var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                }
                if (var$15)
                    break;
            }
            var$16 = var$12.$name7;
            if (var$16 === $rt_s(19))
                var$15 = 1;
            else if (!($rt_s(19) instanceof jl_String))
                var$15 = 0;
            else {
                var$14 = $rt_s(19);
                var$15 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
            }
            if (var$15) {
                $archiveContents = $b.data;
                var$14 = new ji_DataInputStream;
                var$16 = new ji_BufferedInputStream;
                $worldDatNBT = new cjj_GZIPInputStream;
                var$20 = new ji_ByteArrayInputStream;
                var$18 = $archiveContents.length;
                var$20.$buf0 = $b;
                var$20.$pos0 = 0;
                var$20.$mark = 0;
                var$20.$count = 0 + var$18 | 0;
                $ff$path = new cjj_Inflater;
                var$22 = new cjj_Adler32;
                var$22.$s1 = Long_fromInt(1);
                var$22.$s2 = Long_ZERO;
                $ff$path.$adler = var$22;
                $ff$path.$finished0 = 0;
                $ff$path.$finished0 = 0;
                var$22 = new cjj_Inflate;
                var$22.$was = Long_fromInt(-1);
                var$22.$need_bytes = (-1);
                var$22.$crcbuf = $rt_createByteArray(4);
                var$22.$gheader = null;
                var$22.$tmp_string = null;
                var$22.$z0 = $ff$path;
                $ff$path.$istate = var$22;
                var$23 = cjj_Inflate_inflateInit(var$22, var$9);
                if (var$23) {
                    $newName = new cjj_GZIPException;
                    $dc = new jl_StringBuilder;
                    $dc.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert0($dc, $dc.$length0, var$23, 10);
                    jl_AbstractStringBuilder_insert($dc, $dc.$length0, $rt_s(102));
                    $folder = $ff$path.$msg;
                    jl_AbstractStringBuilder_insert($dc, $dc.$length0, $folder);
                    $folder = new jl_String;
                    $archiveContents = $dc.$buffer;
                    $b = $archiveContents.data;
                    var$18 = $dc.$length0;
                    var$23 = $b.length;
                    if (var$18 >= 0 && var$18 <= (var$23 - 0 | 0)) {
                        $folder.$nativeString = $rt_charArrayToString($archiveContents.data, 0, var$18);
                        jl_Throwable__init_0($newName, $folder);
                        $rt_throw($newName);
                    }
                    $newName = new jl_IndexOutOfBoundsException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                cjj_InflaterInputStream__init_($worldDatNBT, var$20, $ff$path, 512, 1);
                $worldDatNBT.$myinflater = 1;
                var$16.$in = $worldDatNBT;
                var$16.$markpos = (-1);
                var$16.$buf1 = $rt_createByteArray(8192);
                var$14.$in = var$16;
                var$14.$buff = $rt_createByteArray(8);
                v: {
                    try {
                        $worldDatNBT = nms_CompressedStreamTools_read(var$14);
                        break v;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        $newName = $$je;

                    }
                    $dc = var$14.$in;
                    $ptr = 4;
                    continue main;
                }
                var$14 = var$14.$in;
                $ptr = 5;
                continue main;
            }
        }
        $newName = new ji_IOException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $newName.$message = $rt_s(176);
        $rt_throw($newName);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($archiveContents, $newName, $folder, $dir, $dc, $lastProgUpdate, $prog, $hasReadType, var$9, var$10, var$11, var$12, $b, var$14, var$15, var$16, $worldsTxt, var$18, $worldDatNBT, var$20, $ff$path, var$22, var$23, var$24, var$25, $ptr);
},
nles_WorldConverterEPK_exportWorld = $worldName => {
    let $worldOwner, $c, $bytesWritten, var$5, $j, $lastUpdate, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$lastUpdate = $thread.pop();$j = $thread.pop();var$5 = $thread.pop();$bytesWritten = $thread.pop();$c = $thread.pop();$worldOwner = $thread.pop();$worldName = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $worldOwner = $rt_s(179);
        $c = new jl_String;
        $bytesWritten = $rt_createCharArray(3);
        var$5 = $bytesWritten.data;
        var$5[0] = 253;
        var$5[1] = 233;
        var$5[2] = 233;
        $c.$nativeString = $rt_charArrayToString($bytesWritten.data, 0, var$5.length);
        $j = jl_String_lastIndexOf1($worldName, $c, $worldName.$nativeString.length);
        if ($j != (-1)) {
            $worldOwner = jl_String_substring($worldName, $j + 3 | 0, $worldName.$nativeString.length);
            $worldName = jl_String_substring($worldName, 0, $j);
        }
        $bytesWritten = $rt_createIntArray(1);
        $lastUpdate = $rt_createIntArray(1);
        $c = new jl_StringBuilder;
        $c.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($c, $c.$length0, $rt_s(43));
        jl_AbstractStringBuilder_insert($c, $c.$length0, $worldName === null ? $rt_s(1) : $worldName);
        var$8 = $c.$length0;
        jl_AbstractStringBuilder_insertSpace($c, var$8, var$8 + 1 | 0);
        var$5 = $c.$buffer;
        var$9 = var$5.data;
        var$9[var$8] = 47;
        var$10 = new jl_String;
        var$8 = $c.$length0;
        $j = var$9.length;
        if (var$8 >= 0 && var$8 <= ($j - 0 | 0)) {
            var$10.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
            $c = nles_EPK2Compiler__init_($worldName, $worldOwner, $rt_s(174));
            $ptr = 1;
            continue main;
        }
        $worldName = new jl_IndexOutOfBoundsException;
        $worldName.$suppressionEnabled = 1;
        $worldName.$writableStackTrace = 1;
        $rt_throw($worldName);
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $worldOwner = nles_SYS_VFS;
        var$11 = 0;
        $worldName = new nles_WorldConverterEPK$exportWorld$lambda$_2_0;
        $worldName.$_05 = $c;
        $worldName.$_10 = var$10;
        $worldName.$_20 = $bytesWritten;
        $worldName.$_30 = $lastUpdate;
        var$12 = $worldOwner.$indexeddb;
        $ptr = 2;
    case 2:
        nles_VirtualFilesystem$AsyncHandlers_iterateFiles$_asyncCall_$(var$12, $worldOwner, var$10, var$11, $worldName);
        if ($rt_suspending()) {
            break main;
        }
        return nles_EPK2Compiler_complete($c);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($worldName, $worldOwner, $c, $bytesWritten, var$5, $j, $lastUpdate, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nles_WorldConverterEPK_lambda$exportWorld$0 = ($c, $pfx, $bytesWritten, $lastUpdate, $i) => {
    let var$6, $b, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$b = $thread.pop();var$6 = $thread.pop();$i = $thread.pop();$lastUpdate = $thread.pop();$bytesWritten = $thread.pop();$pfx = $thread.pop();$c = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $lastUpdate.data;
        $bytesWritten = $bytesWritten.data;
        $ptr = 1;
    case 1:
        $tmp = nles_VIteratorFile_getAllBytes($i);
        if ($rt_suspending()) {
            break main;
        }
        $b = $tmp;
        $lastUpdate = $b.data;
        $i = $i.$path;
        nles_EPK2Compiler_append($c, jl_String_substring($i, $pfx.$nativeString.length, $i.$nativeString.length), $b);
        $bytesWritten[0] = $bytesWritten[0] + $lastUpdate.length | 0;
        if (($bytesWritten[0] - var$6[0] | 0) > 10000) {
            var$6[0] = $bytesWritten[0];
            var$8 = $bytesWritten[0];
            nles_IntegratedServer_$callClinit();
            $pfx = new nlesi_IPCPacket0DProgressUpdate;
            $pfx.$updateMessage = $rt_s(180);
            $pfx.$updateProgress = var$8;
            nles_IntegratedServer_sendIPCPacket($pfx);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($c, $pfx, $bytesWritten, $lastUpdate, $i, var$6, $b, var$8, $ptr);
},
nles_WorldConverterMCA = $rt_classWithoutFields(),
nles_WorldConverterMCA__init_ = $this => {
    return;
},
nles_WorldConverterMCA__init_0 = () => {
    let var_0 = new nles_WorldConverterMCA();
    nles_WorldConverterMCA__init_(var_0);
    return var_0;
},
nles_WorldConverterMCA_importWorld = ($archiveContents, $newName) => {
    let $lowerName, $fileNames, $k, var$6, $zis, $folderPrefixOffset, $i, $prog, $sz, $j, $worldDir, $b, $lastProgUpdate, $chunkX, $lowerName_0, $fileName, $chunkFolder, $worldsTxt, $mca, $chunkNBT, $chunkLevel, $t, $ff, $worldDatNBT, $bo, $chunkZ, $chunkOut, $bao, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$bao = $thread.pop();$chunkOut = $thread.pop();$chunkZ = $thread.pop();$bo = $thread.pop();$worldDatNBT = $thread.pop();$ff = $thread.pop();$t = $thread.pop();$chunkLevel = $thread.pop();$chunkNBT = $thread.pop();$mca = $thread.pop();$worldsTxt = $thread.pop();$chunkFolder = $thread.pop();$fileName = $thread.pop();$lowerName_0 = $thread.pop();$chunkX = $thread.pop();$lastProgUpdate = $thread.pop();$b = $thread.pop();$worldDir = $thread.pop();$j = $thread.pop();$sz = $thread.pop();$prog
        = $thread.pop();$i = $thread.pop();$folderPrefixOffset = $thread.pop();$zis = $thread.pop();var$6 = $thread.pop();$k = $thread.pop();$fileNames = $thread.pop();$lowerName = $thread.pop();$newName = $thread.pop();$archiveContents = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $lowerName = jur_Matcher__init_(jur_Pattern_compile($rt_s(181), 0), $newName);
        $fileNames = new jl_StringBuffer;
        $fileNames.$buffer = $rt_createCharArray(16);
        $lowerName.$leftBound0 = 0;
        $k = $lowerName.$string.$nativeString.length;
        $lowerName.$rightBound0 = $k;
        var$6 = $lowerName.$matchResult;
        $zis = $lowerName.$string;
        $folderPrefixOffset = $lowerName.$leftBound0;
        var$6.$valid = 0;
        var$6.$mode0 = 2;
        $i = var$6.$groupBounds.data;
        $prog = 0;
        $sz = $i.length;
        if ($prog > $sz) {
            $newName = new jl_IllegalArgumentException;
            $newName.$suppressionEnabled = 1;
            $newName.$writableStackTrace = 1;
            $rt_throw($newName);
        }
        while ($prog < $sz) {
            $j = $prog + 1 | 0;
            $i[$prog] = (-1);
            $prog = $j;
        }
        $i = var$6.$consumers.data;
        $prog = 0;
        $sz = $i.length;
        if ($prog > $sz) {
            $newName = new jl_IllegalArgumentException;
            $newName.$suppressionEnabled = 1;
            $newName.$writableStackTrace = 1;
            $rt_throw($newName);
        }
        while ($prog < $sz) {
            $j = $prog + 1 | 0;
            $i[$prog] = (-1);
            $prog = $j;
        }
        if ($zis !== null)
            var$6.$string0 = $zis;
        if ($folderPrefixOffset >= 0) {
            var$6.$leftBound = $folderPrefixOffset;
            var$6.$rightBound = $k;
        }
        var$6.$startIndex = var$6.$leftBound;
        $lowerName.$appendPos = 0;
        $lowerName.$replacement = null;
        var$6.$previousMatch = (-1);
        while (true) {
            if (!jur_Matcher_find($lowerName)) {
                $worldDir = $lowerName.$string;
                $worldDir = jl_String_substring($worldDir, $lowerName.$appendPos, $worldDir.$nativeString.length);
                $prog = $worldDir.$nativeString.length;
                jl_AbstractStringBuilder_insert1($fileNames, $fileNames.$length0, $worldDir, 0, $prog);
                var$6 = new jl_String;
                $i = $fileNames.$buffer;
                $b = $i.data;
                $lastProgUpdate = $fileNames.$length0;
                $prog = $b.length;
                if ($lastProgUpdate >= 0 && $lastProgUpdate <= ($prog - 0 | 0)) {
                    var$6.$nativeString = $rt_charArrayToString($i.data, 0, $lastProgUpdate);
                    $worldDir = new nles_VFile;
                    $worldDir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$6]));
                    $sz = 95;
                    while (true) {
                        $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(19)]));
                        if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                            $ptr = 1;
                            continue main;
                        }
                        if (!0) {
                            $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(182)]));
                            if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                                $ptr = 2;
                                continue main;
                            }
                            if (!0) {
                                $i = $archiveContents.data;
                                $fileNames = new ju_ArrayList;
                                $fileNames.$array = $rt_createArray(jl_Object, 10);
                                $zis = new juz_ZipInputStream;
                                $lowerName = new ji_ByteArrayInputStream;
                                $lastProgUpdate = $i.length;
                                $lowerName.$buf0 = $archiveContents;
                                $lowerName.$pos0 = 0;
                                $lowerName.$mark = 0;
                                $chunkX = 0 + $lastProgUpdate | 0;
                                $lowerName.$count = $chunkX;
                                juz_ZipInputStream__init_($zis, $lowerName);
                                a: {
                                    try {
                                        while (true) {
                                            $lowerName = juz_ZipInputStream_getNextEntry($zis);
                                            if ($lowerName === null)
                                                break a;
                                            if (jl_String_contains(juz_ZipEntry_getName($lowerName), $rt_s(183)))
                                                continue;
                                            if (juz_ZipEntry_isDirectory($lowerName))
                                                continue;
                                            $lowerName_0 = jl_String_toLowerCase(juz_ZipEntry_getName($lowerName));
                                            if (!jl_String_endsWith($lowerName_0, $rt_s(184)) && !jl_String_endsWith($lowerName_0, $rt_s(185)) && !jl_String_endsWith($lowerName_0, $rt_s(186)) && !jl_String_endsWith($lowerName_0, $rt_s(187)))
                                                continue;
                                            ju_ArrayList_add($fileNames, jl_String_toCharArray(juz_ZipEntry_getName($lowerName)));
                                        }
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    try {
                                        $ptr = 3;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $fileNames = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if ($newName.$suppressionEnabled) {
                                        $archiveContents = $newName.$suppressed;
                                        $i = $archiveContents.data;
                                        $lastProgUpdate = $i.length;
                                        $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                                        var$6 = $archiveContents.constructor;
                                        if (var$6 === null)
                                            $worldDir = null;
                                        else {
                                            $worldDir = var$6.classObject;
                                            if ($worldDir === null) {
                                                $worldDir = new jl_Class;
                                                $worldDir.$platformClass = var$6;
                                                var$6.classObject = $worldDir;
                                            }
                                        }
                                        $worldDir = jl_Class_getComponentType($worldDir);
                                        if ($worldDir === null) {
                                            $newName = new jl_NullPointerException;
                                            $newName.$suppressionEnabled = 1;
                                            $newName.$writableStackTrace = 1;
                                            $rt_throw($newName);
                                        }
                                        if ($worldDir === $rt_cls($rt_voidcls)) {
                                            $newName = new jl_IllegalArgumentException;
                                            $newName.$suppressionEnabled = 1;
                                            $newName.$writableStackTrace = 1;
                                            $rt_throw($newName);
                                        }
                                        if ($folderPrefixOffset < 0) {
                                            $newName = new jl_NegativeArraySizeException;
                                            $newName.$suppressionEnabled = 1;
                                            $newName.$writableStackTrace = 1;
                                            $rt_throw($newName);
                                        }
                                        $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                                        if ($folderPrefixOffset < $lastProgUpdate)
                                            $lastProgUpdate = $folderPrefixOffset;
                                        $folderPrefixOffset = 0;
                                        while ($folderPrefixOffset < $lastProgUpdate) {
                                            $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                                            $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                                        }
                                        $archiveContents = $zis;
                                        $i = $archiveContents.data;
                                        $newName.$suppressed = $archiveContents;
                                        $i[$i.length - 1 | 0] = $fileNames;
                                    }
                                    $rt_throw($newName);
                                }
                                b: {
                                    if (!$zis.$closed) {
                                        juz_ZipInputStream_closeEntry($zis);
                                        if (!$zis.$closed)
                                            break b;
                                    }
                                    $i = $rt_createIntArray(1).data;
                                    $i[0] = 0;
                                    c: {
                                        while (0 < $fileNames.$size0) {
                                            if ($fileNames.$array.data[0].data.length <= $i[0])
                                                break c;
                                            $zis = null;
                                            $lastProgUpdate = 1;
                                            d: {
                                                while ($lastProgUpdate) {
                                                    $folderPrefixOffset = 0;
                                                    e: {
                                                        while (true) {
                                                            if ($zis === null) {
                                                                $zis = new ju_AbstractList$1;
                                                                $zis.$this$00 = $fileNames;
                                                                $zis.$modCount0 = $fileNames.$modCount;
                                                                $zis.$size3 = $fileNames.$size();
                                                                $zis.$removeIndex = (-1);
                                                            }
                                                            $j = $zis.$index;
                                                            if (!($j >= $zis.$size3 ? 0 : 1))
                                                                $j = 0;
                                                            else {
                                                                $folderPrefixOffset = $zis.$modCount0;
                                                                $lowerName = $zis.$this$00;
                                                                if ($folderPrefixOffset < $lowerName.$modCount) {
                                                                    $newName = new ju_ConcurrentModificationException;
                                                                    $newName.$suppressionEnabled = 1;
                                                                    $newName.$writableStackTrace = 1;
                                                                    $rt_throw($newName);
                                                                }
                                                                $zis.$removeIndex = $j;
                                                                $zis.$index = $j + 1 | 0;
                                                                if (!(($lowerName.$get($j)).data[$i[0]] != (ju_ArrayList_get($fileNames, 0)).data[$i[0]] ? 0 : 1))
                                                                    $lastProgUpdate = 0;
                                                                $j = 1;
                                                                $folderPrefixOffset = $lastProgUpdate;
                                                            }
                                                            if (!$j) {
                                                                $folderPrefixOffset = 0;
                                                                break e;
                                                            }
                                                            if (!$folderPrefixOffset)
                                                                break;
                                                        }
                                                        $folderPrefixOffset = 1;
                                                    }
                                                    if (!$folderPrefixOffset)
                                                        break d;
                                                }
                                            }
                                            if (!$lastProgUpdate)
                                                break c;
                                            $i[0] = $i[0] + 1 | 0;
                                        }
                                        $newName = new jl_IndexOutOfBoundsException;
                                        $newName.$suppressionEnabled = 1;
                                        $newName.$writableStackTrace = 1;
                                        $rt_throw($newName);
                                    }
                                    $folderPrefixOffset = $i[0];
                                    $zis = new juz_ZipInputStream;
                                    $fileNames = new ji_ByteArrayInputStream;
                                    $fileNames.$buf0 = $archiveContents;
                                    $fileNames.$pos0 = 0;
                                    $fileNames.$mark = 0;
                                    $fileNames.$count = $chunkX;
                                    juz_ZipInputStream__init_($zis, $fileNames);
                                    f: {
                                        try {
                                            $lastProgUpdate = 0;
                                            $prog = 0;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break f;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        g: {
                                            h: {
                                                i: {
                                                    while (true) {
                                                        try {
                                                            $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                                            if ($fileNames === null)
                                                                break;
                                                            if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                                continue;
                                                            if (juz_ZipEntry_isDirectory($fileNames))
                                                                continue;
                                                            $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                                            if (!jl_String_endsWith($lowerName, $rt_s(184)) && !jl_String_endsWith($lowerName, $rt_s(185)) && !jl_String_endsWith($lowerName, $rt_s(186)) && !jl_String_endsWith($lowerName, $rt_s(187)) && !jl_String_endsWith($lowerName, $rt_s(188)))
                                                                continue;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $newName = $$je;
                                                                break f;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                        j: {
                                                            try {
                                                                $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                                if ($sz < 0) {
                                                                    $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                                    break j;
                                                                }
                                                                $b = $rt_createByteArray($sz);
                                                                $j = 0;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $newName = $$je;
                                                                    break f;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                            $sz = $b.data.length;
                                                            while (true) {
                                                                try {
                                                                    if ($j >= $sz)
                                                                        break;
                                                                    $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                                    if ($k == (-1))
                                                                        break;
                                                                    $j = $j + $k | 0;
                                                                    continue;
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof jl_Throwable) {
                                                                        $newName = $$je;
                                                                        break f;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                            }
                                                            try {
                                                                break j;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $newName = $$je;
                                                                    break f;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                                            if (jl_String_equals($fileName, $rt_s(19)))
                                                                break h;
                                                            if (jl_String_equals($fileName, $rt_s(182)))
                                                                break h;
                                                            k: {
                                                                l: {
                                                                    if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                                        if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                                            break l;
                                                                        if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                                            break l;
                                                                        if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                                            break l;
                                                                    }
                                                                    if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                                        break i;
                                                                    if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                                        break i;
                                                                    break k;
                                                                }
                                                                $chunkFolder = new nles_VFile;
                                                                $archiveContents = $rt_createArray(jl_Object, 2);
                                                                $i = $archiveContents.data;
                                                                $i[0] = $worldDir;
                                                                $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                                                $worldsTxt = $b.data;
                                                                $i[1] = $fileNames;
                                                                nles_VFile__init_0($chunkFolder, $archiveContents);
                                                                $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                                                $j = 0;
                                                                while ($j < 32) {
                                                                    $k = 0;
                                                                    while ($k < 32) {
                                                                        if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                                                            try {
                                                                                $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                                                if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                                                    $rt_throw(ji_IOException__init_($rt_s(200)));
                                                                                $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                                                break g;
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof jl_Throwable) {
                                                                                    $t = $$je;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                            $fileNames = jl_System_err();
                                                                            $lowerName = jl_StringBuilder__init_();
                                                                            jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                                                            otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                                                            jl_Throwable_printStackTrace0($t);
                                                                        }
                                                                        $k = $k + 1 | 0;
                                                                    }
                                                                    $j = $j + 1 | 0;
                                                                }
                                                            }
                                                            continue;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jl_Throwable) {
                                                                $newName = $$je;
                                                                break f;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                    if (!$zis.$closed) {
                                                        juz_ZipInputStream_closeEntry($zis);
                                                        if (!$zis.$closed) {
                                                            $newName = $zis.$inf;
                                                            $newName.$inRead = 0;
                                                            $newName.$inLength = 0;
                                                            $newName.$impl = null;
                                                            $zis.$closed = 1;
                                                            $zis.$eof = 1;
                                                            $newName = $zis.$in;
                                                            $ptr = 9;
                                                            continue main;
                                                        }
                                                    }
                                                    $ptr = 8;
                                                    continue main;
                                                }
                                                try {
                                                    $worldsTxt = $b.data;
                                                    $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                                                    $ptr = 13;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break f;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                                                nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                                                nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                                                $bo = ji_ByteArrayOutputStream__init_();
                                                $ptr = 10;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break f;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                                            $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                                            $chunkOut = new nles_VFile;
                                            $archiveContents = $rt_createArray(jl_Object, 2);
                                            $i = $archiveContents.data;
                                            $i[0] = $chunkFolder;
                                            $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                                            $lowerName = jl_StringBuilder__init_();
                                            jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                                            $i[1] = jl_StringBuilder_toString($lowerName);
                                            nles_VFile__init_0($chunkOut, $archiveContents);
                                            $ptr = 14;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $ptr = 7;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $fileNames = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if ($newName.$suppressionEnabled) {
                                        $archiveContents = $newName.$suppressed;
                                        $i = $archiveContents.data;
                                        $lastProgUpdate = $i.length;
                                        $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                                        var$6 = $archiveContents.constructor;
                                        if (var$6 === null)
                                            $worldDir = null;
                                        else {
                                            $worldDir = var$6.classObject;
                                            if ($worldDir === null) {
                                                $worldDir = new jl_Class;
                                                $worldDir.$platformClass = var$6;
                                                var$6.classObject = $worldDir;
                                            }
                                        }
                                        $worldDir = jl_Class_getComponentType($worldDir);
                                        if ($worldDir === null) {
                                            $newName = new jl_NullPointerException;
                                            $newName.$suppressionEnabled = 1;
                                            $newName.$writableStackTrace = 1;
                                            $rt_throw($newName);
                                        }
                                        if ($worldDir === $rt_cls($rt_voidcls)) {
                                            $newName = new jl_IllegalArgumentException;
                                            $newName.$suppressionEnabled = 1;
                                            $newName.$writableStackTrace = 1;
                                            $rt_throw($newName);
                                        }
                                        if ($folderPrefixOffset < 0) {
                                            $newName = new jl_NegativeArraySizeException;
                                            $newName.$suppressionEnabled = 1;
                                            $newName.$writableStackTrace = 1;
                                            $rt_throw($newName);
                                        }
                                        $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                                        if ($folderPrefixOffset < $lastProgUpdate)
                                            $lastProgUpdate = $folderPrefixOffset;
                                        $folderPrefixOffset = 0;
                                        while ($folderPrefixOffset < $lastProgUpdate) {
                                            $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                                            $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                                        }
                                        $archiveContents = $zis;
                                        $i = $archiveContents.data;
                                        $newName.$suppressed = $archiveContents;
                                        $i[$i.length - 1 | 0] = $fileNames;
                                    }
                                    $rt_throw($newName);
                                }
                                $lowerName = $zis.$inf;
                                $lowerName.$inRead = 0;
                                $lowerName.$inLength = 0;
                                $lowerName.$impl = null;
                                $zis.$closed = 1;
                                $zis.$eof = 1;
                                $zis = $zis.$in;
                                $ptr = 5;
                                continue main;
                            }
                        }
                        $fileNames = new jl_StringBuilder;
                        $fileNames.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($fileNames, $fileNames.$length0, var$6);
                        $folderPrefixOffset = $fileNames.$length0;
                        jl_AbstractStringBuilder_insertSpace($fileNames, $folderPrefixOffset, $folderPrefixOffset + 1 | 0);
                        $i = $fileNames.$buffer;
                        $b = $i.data;
                        $b[$folderPrefixOffset] = $sz;
                        var$6 = new jl_String;
                        $lastProgUpdate = $fileNames.$length0;
                        $prog = $b.length;
                        if ($lastProgUpdate < 0)
                            break;
                        if ($lastProgUpdate > ($prog - 0 | 0))
                            break;
                        var$6.$nativeString = $rt_charArrayToString($i.data, 0, $lastProgUpdate);
                        $worldDir = new nles_VFile;
                        $worldDir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$6]));
                    }
                    $newName = new jl_IndexOutOfBoundsException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                $newName = new jl_IndexOutOfBoundsException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $lowerName.$processedRepl = jur_Matcher_processReplacement($lowerName, $rt_s(204));
            var$6 = $lowerName.$string;
            $folderPrefixOffset = $lowerName.$appendPos;
            $zis = $lowerName.$matchResult;
            if (!$zis.$valid) {
                $newName = new jl_IllegalStateException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if (0 >= $zis.$groupCount) {
                $newName = new jl_IndexOutOfBoundsException;
                jl_RuntimeException__init_0($newName, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 0)));
                $rt_throw($newName);
            }
            var$6 = jl_String_substring(var$6, $folderPrefixOffset, $zis.$groupBounds.data[0]);
            $j = var$6.$nativeString.length;
            jl_AbstractStringBuilder_insert1($fileNames, $fileNames.$length0, var$6, 0, $j);
            var$6 = $lowerName.$processedRepl;
            jl_AbstractStringBuilder_insert($fileNames, $fileNames.$length0, var$6);
            var$6 = $lowerName.$matchResult;
            if (!var$6.$valid) {
                $newName = new jl_IllegalStateException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if (0 >= var$6.$groupCount)
                break;
            $lowerName.$appendPos = var$6.$groupBounds.data[1];
        }
        $newName = new jl_IndexOutOfBoundsException;
        jl_RuntimeException__init_0($newName, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 0)));
        $rt_throw($newName);
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $fileNames = nles_SYS_VFS;
        $zis = $fileNames.$fileMap;
        if ($lowerName !== null) {
            m: {
                if (!$lowerName.$hashCode1) {
                    $folderPrefixOffset = 0;
                    while (true) {
                        if ($folderPrefixOffset >= $lowerName.$nativeString.length)
                            break m;
                        $lowerName.$hashCode1 = (31 * $lowerName.$hashCode1 | 0) + $lowerName.$nativeString.charCodeAt($folderPrefixOffset) | 0;
                        $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                    }
                }
            }
            $folderPrefixOffset = $lowerName.$hashCode1;
            $i = $zis.$elementData.data;
            $zis = $i[$folderPrefixOffset & ($i.length - 1 | 0)];
            while ($zis !== null) {
                if ($zis.$origKeyHash == $folderPrefixOffset) {
                    $lowerName_0 = $zis.$key;
                    if ($lowerName !== $lowerName_0 && !jl_String_equals($lowerName, $lowerName_0) ? 0 : 1)
                        break;
                }
                $zis = $zis.$next3;
            }
        } else {
            $zis = $zis.$elementData.data[0];
            while ($zis !== null && $zis.$key !== null) {
                $zis = $zis.$next3;
            }
        }
        $lowerName_0 = $zis === null ? null : $zis.$value0;
        if ($lowerName_0 === null) {
            $zis = $fileNames.$fileMap;
            $lowerName_0 = new nles_VirtualFilesystem$VFSFile;
            $lowerName_0.$fileSize = (-1);
            $lowerName_0.$hasBeenDeleted = 0;
            $lowerName_0.$hasBeenAccessed = 0;
            $lowerName_0.$exists0 = 0;
            $lowerName_0.$cache = null;
            $lowerName_0.$virtualFilesystem = $fileNames;
            $lowerName_0.$filePath = $lowerName;
            nles_SysUtil_$callClinit();
            $lowerName_0.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($zis, $lowerName, $lowerName_0);
        }
        if ($lowerName_0.$hasBeenDeleted)
            $folderPrefixOffset = 0;
        else {
            nles_SysUtil_$callClinit();
            $lowerName_0.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (!$lowerName_0.$hasBeenAccessed) {
                $fileNames = $lowerName_0.$virtualFilesystem.$indexeddb;
                $zis = $lowerName_0.$filePath;
                $ptr = 4;
                continue main;
            }
            $folderPrefixOffset = $lowerName_0.$exists0;
        }
        $folderPrefixOffset = !$folderPrefixOffset ? 0 : 1;
        while (true) {
            if (!$folderPrefixOffset) {
                $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(182)]));
                if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                    $ptr = 2;
                    continue main;
                }
                if (!0) {
                    $i = $archiveContents.data;
                    $fileNames = new ju_ArrayList;
                    $fileNames.$array = $rt_createArray(jl_Object, 10);
                    $zis = new juz_ZipInputStream;
                    $lowerName = new ji_ByteArrayInputStream;
                    $lastProgUpdate = $i.length;
                    $lowerName.$buf0 = $archiveContents;
                    $lowerName.$pos0 = 0;
                    $lowerName.$mark = 0;
                    $chunkX = 0 + $lastProgUpdate | 0;
                    $lowerName.$count = $chunkX;
                    juz_ZipInputStream__init_($zis, $lowerName);
                    n: {
                        try {
                            while (true) {
                                $lowerName = juz_ZipInputStream_getNextEntry($zis);
                                if ($lowerName === null)
                                    break n;
                                if (jl_String_contains(juz_ZipEntry_getName($lowerName), $rt_s(183)))
                                    continue;
                                if (juz_ZipEntry_isDirectory($lowerName))
                                    continue;
                                $lowerName_0 = jl_String_toLowerCase(juz_ZipEntry_getName($lowerName));
                                if (!jl_String_endsWith($lowerName_0, $rt_s(184)) && !jl_String_endsWith($lowerName_0, $rt_s(185)) && !jl_String_endsWith($lowerName_0, $rt_s(186)) && !jl_String_endsWith($lowerName_0, $rt_s(187)))
                                    continue;
                                ju_ArrayList_add($fileNames, jl_String_toCharArray(juz_ZipEntry_getName($lowerName)));
                            }
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $newName = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        try {
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $fileNames = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if ($newName.$suppressionEnabled) {
                            $archiveContents = $newName.$suppressed;
                            $i = $archiveContents.data;
                            $lastProgUpdate = $i.length;
                            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                            var$6 = $archiveContents.constructor;
                            if (var$6 === null)
                                $worldDir = null;
                            else {
                                $worldDir = var$6.classObject;
                                if ($worldDir === null) {
                                    $worldDir = new jl_Class;
                                    $worldDir.$platformClass = var$6;
                                    var$6.classObject = $worldDir;
                                }
                            }
                            $worldDir = jl_Class_getComponentType($worldDir);
                            if ($worldDir === null) {
                                $newName = new jl_NullPointerException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($worldDir === $rt_cls($rt_voidcls)) {
                                $newName = new jl_IllegalArgumentException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($folderPrefixOffset < 0) {
                                $newName = new jl_NegativeArraySizeException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                            if ($folderPrefixOffset < $lastProgUpdate)
                                $lastProgUpdate = $folderPrefixOffset;
                            $folderPrefixOffset = 0;
                            while ($folderPrefixOffset < $lastProgUpdate) {
                                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                            }
                            $archiveContents = $zis;
                            $i = $archiveContents.data;
                            $newName.$suppressed = $archiveContents;
                            $i[$i.length - 1 | 0] = $fileNames;
                        }
                        $rt_throw($newName);
                    }
                    d: {
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed)
                                break d;
                        }
                        $i = $rt_createIntArray(1).data;
                        $i[0] = 0;
                        o: {
                            while (0 < $fileNames.$size0) {
                                if ($fileNames.$array.data[0].data.length <= $i[0])
                                    break o;
                                $zis = null;
                                $lastProgUpdate = 1;
                                p: {
                                    while ($lastProgUpdate) {
                                        $folderPrefixOffset = 0;
                                        q: {
                                            while (true) {
                                                if ($zis === null) {
                                                    $zis = new ju_AbstractList$1;
                                                    $zis.$this$00 = $fileNames;
                                                    $zis.$modCount0 = $fileNames.$modCount;
                                                    $zis.$size3 = $fileNames.$size();
                                                    $zis.$removeIndex = (-1);
                                                }
                                                $j = $zis.$index;
                                                if (!($j >= $zis.$size3 ? 0 : 1))
                                                    $j = 0;
                                                else {
                                                    $folderPrefixOffset = $zis.$modCount0;
                                                    $lowerName = $zis.$this$00;
                                                    if ($folderPrefixOffset < $lowerName.$modCount) {
                                                        $newName = new ju_ConcurrentModificationException;
                                                        $newName.$suppressionEnabled = 1;
                                                        $newName.$writableStackTrace = 1;
                                                        $rt_throw($newName);
                                                    }
                                                    $zis.$removeIndex = $j;
                                                    $zis.$index = $j + 1 | 0;
                                                    if (!(($lowerName.$get($j)).data[$i[0]] != (ju_ArrayList_get($fileNames, 0)).data[$i[0]] ? 0 : 1))
                                                        $lastProgUpdate = 0;
                                                    $j = 1;
                                                    $folderPrefixOffset = $lastProgUpdate;
                                                }
                                                if (!$j) {
                                                    $folderPrefixOffset = 0;
                                                    break q;
                                                }
                                                if (!$folderPrefixOffset)
                                                    break;
                                            }
                                            $folderPrefixOffset = 1;
                                        }
                                        if (!$folderPrefixOffset)
                                            break p;
                                    }
                                }
                                if (!$lastProgUpdate)
                                    break o;
                                $i[0] = $i[0] + 1 | 0;
                            }
                            $newName = new jl_IndexOutOfBoundsException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        $folderPrefixOffset = $i[0];
                        $zis = new juz_ZipInputStream;
                        $fileNames = new ji_ByteArrayInputStream;
                        $fileNames.$buf0 = $archiveContents;
                        $fileNames.$pos0 = 0;
                        $fileNames.$mark = 0;
                        $fileNames.$count = $chunkX;
                        juz_ZipInputStream__init_($zis, $fileNames);
                        r: {
                            try {
                                $lastProgUpdate = 0;
                                $prog = 0;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break r;
                                } else {
                                    throw $$e;
                                }
                            }
                            s: {
                                t: {
                                    j: {
                                        while (true) {
                                            try {
                                                $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                                if ($fileNames === null)
                                                    break;
                                                if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                    continue;
                                                if (juz_ZipEntry_isDirectory($fileNames))
                                                    continue;
                                                $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                                if (!jl_String_endsWith($lowerName, $rt_s(184)) && !jl_String_endsWith($lowerName, $rt_s(185)) && !jl_String_endsWith($lowerName, $rt_s(186)) && !jl_String_endsWith($lowerName, $rt_s(187)) && !jl_String_endsWith($lowerName, $rt_s(188)))
                                                    continue;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break r;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            u: {
                                                try {
                                                    $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                    if ($sz < 0) {
                                                        $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                        break u;
                                                    }
                                                    $b = $rt_createByteArray($sz);
                                                    $j = 0;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break r;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $sz = $b.data.length;
                                                while (true) {
                                                    try {
                                                        if ($j >= $sz)
                                                            break;
                                                        $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                        if ($k == (-1))
                                                            break;
                                                        $j = $j + $k | 0;
                                                        continue;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $newName = $$je;
                                                            break r;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    break u;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break r;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                                if (jl_String_equals($fileName, $rt_s(19)))
                                                    break t;
                                                if (jl_String_equals($fileName, $rt_s(182)))
                                                    break t;
                                                v: {
                                                    w: {
                                                        if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                            if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                                break w;
                                                            if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                                break w;
                                                            if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                                break w;
                                                        }
                                                        if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                            break j;
                                                        if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                            break j;
                                                        break v;
                                                    }
                                                    $chunkFolder = new nles_VFile;
                                                    $archiveContents = $rt_createArray(jl_Object, 2);
                                                    $i = $archiveContents.data;
                                                    $i[0] = $worldDir;
                                                    $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                                    $worldsTxt = $b.data;
                                                    $i[1] = $fileNames;
                                                    nles_VFile__init_0($chunkFolder, $archiveContents);
                                                    $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                                    $j = 0;
                                                    while ($j < 32) {
                                                        $k = 0;
                                                        while ($k < 32) {
                                                            if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                                                try {
                                                                    $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                                    if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                                        $rt_throw(ji_IOException__init_($rt_s(200)));
                                                                    $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                                    break s;
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof jl_Throwable) {
                                                                        $t = $$je;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                                $fileNames = jl_System_err();
                                                                $lowerName = jl_StringBuilder__init_();
                                                                jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                                                otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                                                jl_Throwable_printStackTrace0($t);
                                                            }
                                                            $k = $k + 1 | 0;
                                                        }
                                                        $j = $j + 1 | 0;
                                                    }
                                                }
                                                continue;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break r;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        if (!$zis.$closed) {
                                            juz_ZipInputStream_closeEntry($zis);
                                            if (!$zis.$closed) {
                                                $newName = $zis.$inf;
                                                $newName.$inRead = 0;
                                                $newName.$inLength = 0;
                                                $newName.$impl = null;
                                                $zis.$closed = 1;
                                                $zis.$eof = 1;
                                                $newName = $zis.$in;
                                                $ptr = 9;
                                                continue main;
                                            }
                                        }
                                        $ptr = 8;
                                        continue main;
                                    }
                                    try {
                                        $worldsTxt = $b.data;
                                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                                        $ptr = 13;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break r;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                                    $bo = ji_ByteArrayOutputStream__init_();
                                    $ptr = 10;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break r;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                                $chunkOut = new nles_VFile;
                                $archiveContents = $rt_createArray(jl_Object, 2);
                                $i = $archiveContents.data;
                                $i[0] = $chunkFolder;
                                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                                $lowerName = jl_StringBuilder__init_();
                                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                                $i[1] = jl_StringBuilder_toString($lowerName);
                                nles_VFile__init_0($chunkOut, $archiveContents);
                                $ptr = 14;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $fileNames = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if ($newName.$suppressionEnabled) {
                            $archiveContents = $newName.$suppressed;
                            $i = $archiveContents.data;
                            $lastProgUpdate = $i.length;
                            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                            var$6 = $archiveContents.constructor;
                            if (var$6 === null)
                                $worldDir = null;
                            else {
                                $worldDir = var$6.classObject;
                                if ($worldDir === null) {
                                    $worldDir = new jl_Class;
                                    $worldDir.$platformClass = var$6;
                                    var$6.classObject = $worldDir;
                                }
                            }
                            $worldDir = jl_Class_getComponentType($worldDir);
                            if ($worldDir === null) {
                                $newName = new jl_NullPointerException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($worldDir === $rt_cls($rt_voidcls)) {
                                $newName = new jl_IllegalArgumentException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($folderPrefixOffset < 0) {
                                $newName = new jl_NegativeArraySizeException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                            if ($folderPrefixOffset < $lastProgUpdate)
                                $lastProgUpdate = $folderPrefixOffset;
                            $folderPrefixOffset = 0;
                            while ($folderPrefixOffset < $lastProgUpdate) {
                                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                            }
                            $archiveContents = $zis;
                            $i = $archiveContents.data;
                            $newName.$suppressed = $archiveContents;
                            $i[$i.length - 1 | 0] = $fileNames;
                        }
                        $rt_throw($newName);
                    }
                    $lowerName = $zis.$inf;
                    $lowerName.$inRead = 0;
                    $lowerName.$inLength = 0;
                    $lowerName.$impl = null;
                    $zis.$closed = 1;
                    $zis.$eof = 1;
                    $zis = $zis.$in;
                    $ptr = 5;
                    continue main;
                }
            }
            $fileNames = new jl_StringBuilder;
            $fileNames.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($fileNames, $fileNames.$length0, var$6);
            $folderPrefixOffset = $fileNames.$length0;
            jl_AbstractStringBuilder_insertSpace($fileNames, $folderPrefixOffset, $folderPrefixOffset + 1 | 0);
            $i = $fileNames.$buffer;
            $b = $i.data;
            $b[$folderPrefixOffset] = $sz;
            var$6 = new jl_String;
            $lastProgUpdate = $fileNames.$length0;
            $prog = $b.length;
            if ($lastProgUpdate < 0)
                break;
            if ($lastProgUpdate > ($prog - 0 | 0))
                break;
            var$6.$nativeString = $rt_charArrayToString($i.data, 0, $lastProgUpdate);
            $worldDir = new nles_VFile;
            $worldDir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$6]));
            $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(19)]));
            if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                continue main;
            }
            $folderPrefixOffset = 0;
        }
        $newName = new jl_IndexOutOfBoundsException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $rt_throw($newName);
    case 2:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $lowerName_0 = nles_SYS_VFS;
        $fileNames = $lowerName_0.$fileMap;
        if ($lowerName !== null) {
            m: {
                if (!$lowerName.$hashCode1) {
                    $folderPrefixOffset = 0;
                    while (true) {
                        if ($folderPrefixOffset >= $lowerName.$nativeString.length)
                            break m;
                        $lowerName.$hashCode1 = (31 * $lowerName.$hashCode1 | 0) + $lowerName.$nativeString.charCodeAt($folderPrefixOffset) | 0;
                        $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                    }
                }
            }
            $prog = $lowerName.$hashCode1;
            $i = $fileNames.$elementData.data;
            $fileNames = $i[$prog & ($i.length - 1 | 0)];
            while ($fileNames !== null) {
                if ($fileNames.$origKeyHash == $prog) {
                    $zis = $fileNames.$key;
                    if ($lowerName !== $zis && !jl_String_equals($lowerName, $zis) ? 0 : 1)
                        break;
                }
                $fileNames = $fileNames.$next3;
            }
        } else {
            $fileNames = $fileNames.$elementData.data[0];
            while ($fileNames !== null && $fileNames.$key !== null) {
                $fileNames = $fileNames.$next3;
            }
        }
        $zis = $fileNames === null ? null : $fileNames.$value0;
        if ($zis === null) {
            $fileName = $lowerName_0.$fileMap;
            $zis = new nles_VirtualFilesystem$VFSFile;
            $zis.$fileSize = (-1);
            $zis.$hasBeenDeleted = 0;
            $zis.$hasBeenAccessed = 0;
            $zis.$exists0 = 0;
            $zis.$cache = null;
            $zis.$virtualFilesystem = $lowerName_0;
            $zis.$filePath = $lowerName;
            nles_SysUtil_$callClinit();
            $zis.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($fileName, $lowerName, $zis);
        }
        if ($zis.$hasBeenDeleted)
            $folderPrefixOffset = 0;
        else {
            nles_SysUtil_$callClinit();
            $zis.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (!$zis.$hasBeenAccessed) {
                $fileNames = $zis.$virtualFilesystem.$indexeddb;
                $lowerName = $zis.$filePath;
                $ptr = 6;
                continue main;
            }
            $folderPrefixOffset = $zis.$exists0;
        }
        $folderPrefixOffset = !$folderPrefixOffset ? 0 : 1;
        x: while (true) {
            if (!$folderPrefixOffset) {
                $i = $archiveContents.data;
                $fileNames = new ju_ArrayList;
                $fileNames.$array = $rt_createArray(jl_Object, 10);
                $zis = new juz_ZipInputStream;
                $lowerName = new ji_ByteArrayInputStream;
                $lastProgUpdate = $i.length;
                $lowerName.$buf0 = $archiveContents;
                $lowerName.$pos0 = 0;
                $lowerName.$mark = 0;
                $chunkX = 0 + $lastProgUpdate | 0;
                $lowerName.$count = $chunkX;
                juz_ZipInputStream__init_($zis, $lowerName);
                n: {
                    try {
                        while (true) {
                            $lowerName = juz_ZipInputStream_getNextEntry($zis);
                            if ($lowerName === null)
                                break n;
                            if (jl_String_contains(juz_ZipEntry_getName($lowerName), $rt_s(183)))
                                continue;
                            if (juz_ZipEntry_isDirectory($lowerName))
                                continue;
                            $lowerName_0 = jl_String_toLowerCase(juz_ZipEntry_getName($lowerName));
                            if (!jl_String_endsWith($lowerName_0, $rt_s(184)) && !jl_String_endsWith($lowerName_0, $rt_s(185)) && !jl_String_endsWith($lowerName_0, $rt_s(186)) && !jl_String_endsWith($lowerName_0, $rt_s(187)))
                                continue;
                            ju_ArrayList_add($fileNames, jl_String_toCharArray(juz_ZipEntry_getName($lowerName)));
                        }
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    try {
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $fileNames = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if ($newName.$suppressionEnabled) {
                        $archiveContents = $newName.$suppressed;
                        $i = $archiveContents.data;
                        $lastProgUpdate = $i.length;
                        $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                        var$6 = $archiveContents.constructor;
                        if (var$6 === null)
                            $worldDir = null;
                        else {
                            $worldDir = var$6.classObject;
                            if ($worldDir === null) {
                                $worldDir = new jl_Class;
                                $worldDir.$platformClass = var$6;
                                var$6.classObject = $worldDir;
                            }
                        }
                        $worldDir = jl_Class_getComponentType($worldDir);
                        if ($worldDir === null) {
                            $newName = new jl_NullPointerException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($worldDir === $rt_cls($rt_voidcls)) {
                            $newName = new jl_IllegalArgumentException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($folderPrefixOffset < 0) {
                            $newName = new jl_NegativeArraySizeException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                        if ($folderPrefixOffset < $lastProgUpdate)
                            $lastProgUpdate = $folderPrefixOffset;
                        $folderPrefixOffset = 0;
                        while ($folderPrefixOffset < $lastProgUpdate) {
                            $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                            $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                        }
                        $archiveContents = $zis;
                        $i = $archiveContents.data;
                        $newName.$suppressed = $archiveContents;
                        $i[$i.length - 1 | 0] = $fileNames;
                    }
                    $rt_throw($newName);
                }
                d: {
                    if (!$zis.$closed) {
                        juz_ZipInputStream_closeEntry($zis);
                        if (!$zis.$closed)
                            break d;
                    }
                    $i = $rt_createIntArray(1).data;
                    $i[0] = 0;
                    o: {
                        while (0 < $fileNames.$size0) {
                            if ($fileNames.$array.data[0].data.length <= $i[0])
                                break o;
                            $zis = null;
                            $lastProgUpdate = 1;
                            p: {
                                while ($lastProgUpdate) {
                                    $folderPrefixOffset = 0;
                                    q: {
                                        while (true) {
                                            if ($zis === null) {
                                                $zis = new ju_AbstractList$1;
                                                $zis.$this$00 = $fileNames;
                                                $zis.$modCount0 = $fileNames.$modCount;
                                                $zis.$size3 = $fileNames.$size();
                                                $zis.$removeIndex = (-1);
                                            }
                                            $j = $zis.$index;
                                            if (!($j >= $zis.$size3 ? 0 : 1))
                                                $j = 0;
                                            else {
                                                $folderPrefixOffset = $zis.$modCount0;
                                                $lowerName = $zis.$this$00;
                                                if ($folderPrefixOffset < $lowerName.$modCount) {
                                                    $newName = new ju_ConcurrentModificationException;
                                                    $newName.$suppressionEnabled = 1;
                                                    $newName.$writableStackTrace = 1;
                                                    $rt_throw($newName);
                                                }
                                                $zis.$removeIndex = $j;
                                                $zis.$index = $j + 1 | 0;
                                                if (!(($lowerName.$get($j)).data[$i[0]] != (ju_ArrayList_get($fileNames, 0)).data[$i[0]] ? 0 : 1))
                                                    $lastProgUpdate = 0;
                                                $j = 1;
                                                $folderPrefixOffset = $lastProgUpdate;
                                            }
                                            if (!$j) {
                                                $folderPrefixOffset = 0;
                                                break q;
                                            }
                                            if (!$folderPrefixOffset)
                                                break;
                                        }
                                        $folderPrefixOffset = 1;
                                    }
                                    if (!$folderPrefixOffset)
                                        break p;
                                }
                            }
                            if (!$lastProgUpdate)
                                break o;
                            $i[0] = $i[0] + 1 | 0;
                        }
                        $newName = new jl_IndexOutOfBoundsException;
                        $newName.$suppressionEnabled = 1;
                        $newName.$writableStackTrace = 1;
                        $rt_throw($newName);
                    }
                    $folderPrefixOffset = $i[0];
                    $zis = new juz_ZipInputStream;
                    $fileNames = new ji_ByteArrayInputStream;
                    $fileNames.$buf0 = $archiveContents;
                    $fileNames.$pos0 = 0;
                    $fileNames.$mark = 0;
                    $fileNames.$count = $chunkX;
                    juz_ZipInputStream__init_($zis, $fileNames);
                    r: {
                        try {
                            $lastProgUpdate = 0;
                            $prog = 0;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $newName = $$je;
                                break r;
                            } else {
                                throw $$e;
                            }
                        }
                        s: {
                            t: {
                                j: {
                                    while (true) {
                                        try {
                                            $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                            if ($fileNames === null)
                                                break;
                                            if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                continue;
                                            if (juz_ZipEntry_isDirectory($fileNames))
                                                continue;
                                            $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                            if (!jl_String_endsWith($lowerName, $rt_s(184)) && !jl_String_endsWith($lowerName, $rt_s(185)) && !jl_String_endsWith($lowerName, $rt_s(186)) && !jl_String_endsWith($lowerName, $rt_s(187)) && !jl_String_endsWith($lowerName, $rt_s(188)))
                                                continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break r;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        u: {
                                            try {
                                                $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                if ($sz < 0) {
                                                    $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                    break u;
                                                }
                                                $b = $rt_createByteArray($sz);
                                                $j = 0;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break r;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            $sz = $b.data.length;
                                            while (true) {
                                                try {
                                                    if ($j >= $sz)
                                                        break;
                                                    $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                    if ($k == (-1))
                                                        break;
                                                    $j = $j + $k | 0;
                                                    continue;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break r;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                break u;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break r;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                            if (jl_String_equals($fileName, $rt_s(19)))
                                                break t;
                                            if (jl_String_equals($fileName, $rt_s(182)))
                                                break t;
                                            v: {
                                                w: {
                                                    if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                        if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                            break w;
                                                        if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                            break w;
                                                        if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                            break w;
                                                    }
                                                    if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                        break j;
                                                    if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                        break j;
                                                    break v;
                                                }
                                                $chunkFolder = new nles_VFile;
                                                $archiveContents = $rt_createArray(jl_Object, 2);
                                                $i = $archiveContents.data;
                                                $i[0] = $worldDir;
                                                $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                                $worldsTxt = $b.data;
                                                $i[1] = $fileNames;
                                                nles_VFile__init_0($chunkFolder, $archiveContents);
                                                $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                                $j = 0;
                                                while ($j < 32) {
                                                    $k = 0;
                                                    while ($k < 32) {
                                                        if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                                            try {
                                                                $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                                if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                                    $rt_throw(ji_IOException__init_($rt_s(200)));
                                                                $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                                break s;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                            $fileNames = jl_System_err();
                                                            $lowerName = jl_StringBuilder__init_();
                                                            jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                                            otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                                            jl_Throwable_printStackTrace0($t);
                                                        }
                                                        $k = $k + 1 | 0;
                                                    }
                                                    $j = $j + 1 | 0;
                                                }
                                            }
                                            continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break r;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    if (!$zis.$closed) {
                                        juz_ZipInputStream_closeEntry($zis);
                                        if (!$zis.$closed) {
                                            $newName = $zis.$inf;
                                            $newName.$inRead = 0;
                                            $newName.$inLength = 0;
                                            $newName.$impl = null;
                                            $zis.$closed = 1;
                                            $zis.$eof = 1;
                                            $newName = $zis.$in;
                                            $ptr = 9;
                                            continue main;
                                        }
                                    }
                                    $ptr = 8;
                                    continue main;
                                }
                                try {
                                    $worldsTxt = $b.data;
                                    $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                                    $ptr = 13;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break r;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                                nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                                nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                                $bo = ji_ByteArrayOutputStream__init_();
                                $ptr = 10;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break r;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                            $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                            $chunkOut = new nles_VFile;
                            $archiveContents = $rt_createArray(jl_Object, 2);
                            $i = $archiveContents.data;
                            $i[0] = $chunkFolder;
                            $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                            $lowerName = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                            $i[1] = jl_StringBuilder_toString($lowerName);
                            nles_VFile__init_0($chunkOut, $archiveContents);
                            $ptr = 14;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $newName = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $fileNames = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if ($newName.$suppressionEnabled) {
                        $archiveContents = $newName.$suppressed;
                        $i = $archiveContents.data;
                        $lastProgUpdate = $i.length;
                        $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                        var$6 = $archiveContents.constructor;
                        if (var$6 === null)
                            $worldDir = null;
                        else {
                            $worldDir = var$6.classObject;
                            if ($worldDir === null) {
                                $worldDir = new jl_Class;
                                $worldDir.$platformClass = var$6;
                                var$6.classObject = $worldDir;
                            }
                        }
                        $worldDir = jl_Class_getComponentType($worldDir);
                        if ($worldDir === null) {
                            $newName = new jl_NullPointerException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($worldDir === $rt_cls($rt_voidcls)) {
                            $newName = new jl_IllegalArgumentException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($folderPrefixOffset < 0) {
                            $newName = new jl_NegativeArraySizeException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                        if ($folderPrefixOffset < $lastProgUpdate)
                            $lastProgUpdate = $folderPrefixOffset;
                        $folderPrefixOffset = 0;
                        while ($folderPrefixOffset < $lastProgUpdate) {
                            $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                            $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                        }
                        $archiveContents = $zis;
                        $i = $archiveContents.data;
                        $newName.$suppressed = $archiveContents;
                        $i[$i.length - 1 | 0] = $fileNames;
                    }
                    $rt_throw($newName);
                }
                $lowerName = $zis.$inf;
                $lowerName.$inRead = 0;
                $lowerName.$inLength = 0;
                $lowerName.$impl = null;
                $zis.$closed = 1;
                $zis.$eof = 1;
                $zis = $zis.$in;
                $ptr = 5;
                continue main;
            }
            while (true) {
                $fileNames = new jl_StringBuilder;
                $fileNames.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($fileNames, $fileNames.$length0, var$6);
                $folderPrefixOffset = $fileNames.$length0;
                jl_AbstractStringBuilder_insertSpace($fileNames, $folderPrefixOffset, $folderPrefixOffset + 1 | 0);
                $i = $fileNames.$buffer;
                $b = $i.data;
                $b[$folderPrefixOffset] = $sz;
                var$6 = new jl_String;
                $lastProgUpdate = $fileNames.$length0;
                $prog = $b.length;
                if ($lastProgUpdate < 0)
                    break x;
                if ($lastProgUpdate > ($prog - 0 | 0))
                    break x;
                var$6.$nativeString = $rt_charArrayToString($i.data, 0, $lastProgUpdate);
                $worldDir = new nles_VFile;
                $worldDir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$6]));
                $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(19)]));
                if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                    $ptr = 1;
                    continue main;
                }
                if (0)
                    continue;
                else
                    break;
            }
            $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(182)]));
            if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                continue main;
            }
            $folderPrefixOffset = 0;
        }
        $newName = new jl_IndexOutOfBoundsException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $rt_throw($newName);
    case 3:
        y: {
            try {
                juz_ZipInputStream_close($zis);
                if ($rt_suspending()) {
                    break main;
                }
                break y;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $fileNames = $$je;
                } else {
                    throw $$e;
                }
            }
            if ($newName.$suppressionEnabled) {
                $archiveContents = $newName.$suppressed;
                $i = $archiveContents.data;
                $lastProgUpdate = $i.length;
                $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                var$6 = $archiveContents.constructor;
                if (var$6 === null)
                    $worldDir = null;
                else {
                    $worldDir = var$6.classObject;
                    if ($worldDir === null) {
                        $worldDir = new jl_Class;
                        $worldDir.$platformClass = var$6;
                        var$6.classObject = $worldDir;
                    }
                }
                $worldDir = jl_Class_getComponentType($worldDir);
                if ($worldDir === null) {
                    $newName = new jl_NullPointerException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                if ($worldDir === $rt_cls($rt_voidcls)) {
                    $newName = new jl_IllegalArgumentException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                if ($folderPrefixOffset < 0) {
                    $newName = new jl_NegativeArraySizeException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                if ($folderPrefixOffset < $lastProgUpdate)
                    $lastProgUpdate = $folderPrefixOffset;
                $folderPrefixOffset = 0;
                while ($folderPrefixOffset < $lastProgUpdate) {
                    $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                    $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                }
                $archiveContents = $zis;
                $i = $archiveContents.data;
                $newName.$suppressed = $archiveContents;
                $i[$i.length - 1 | 0] = $fileNames;
            }
        }
        $rt_throw($newName);
    case 4:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_fileExists$_asyncCall_$($fileNames, $zis);
        if ($rt_suspending()) {
            break main;
        }
        $fileNames = $tmp;
        $folderPrefixOffset = $fileNames.$bool;
        $lowerName_0.$exists0 = $folderPrefixOffset;
        $lowerName_0.$hasBeenAccessed = 1;
        $folderPrefixOffset = !$folderPrefixOffset ? 0 : 1;
        while (true) {
            if (!$folderPrefixOffset) {
                $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(182)]));
                if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                    $ptr = 2;
                    continue main;
                }
                if (!0) {
                    $i = $archiveContents.data;
                    $fileNames = new ju_ArrayList;
                    $fileNames.$array = $rt_createArray(jl_Object, 10);
                    $zis = new juz_ZipInputStream;
                    $lowerName = new ji_ByteArrayInputStream;
                    $lastProgUpdate = $i.length;
                    $lowerName.$buf0 = $archiveContents;
                    $lowerName.$pos0 = 0;
                    $lowerName.$mark = 0;
                    $chunkX = 0 + $lastProgUpdate | 0;
                    $lowerName.$count = $chunkX;
                    juz_ZipInputStream__init_($zis, $lowerName);
                    z: {
                        try {
                            while (true) {
                                $lowerName = juz_ZipInputStream_getNextEntry($zis);
                                if ($lowerName === null)
                                    break z;
                                if (jl_String_contains(juz_ZipEntry_getName($lowerName), $rt_s(183)))
                                    continue;
                                if (juz_ZipEntry_isDirectory($lowerName))
                                    continue;
                                $lowerName_0 = jl_String_toLowerCase(juz_ZipEntry_getName($lowerName));
                                if (!jl_String_endsWith($lowerName_0, $rt_s(184)) && !jl_String_endsWith($lowerName_0, $rt_s(185)) && !jl_String_endsWith($lowerName_0, $rt_s(186)) && !jl_String_endsWith($lowerName_0, $rt_s(187)))
                                    continue;
                                ju_ArrayList_add($fileNames, jl_String_toCharArray(juz_ZipEntry_getName($lowerName)));
                            }
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $newName = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        try {
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $fileNames = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if ($newName.$suppressionEnabled) {
                            $archiveContents = $newName.$suppressed;
                            $i = $archiveContents.data;
                            $lastProgUpdate = $i.length;
                            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                            var$6 = $archiveContents.constructor;
                            if (var$6 === null)
                                $worldDir = null;
                            else {
                                $worldDir = var$6.classObject;
                                if ($worldDir === null) {
                                    $worldDir = new jl_Class;
                                    $worldDir.$platformClass = var$6;
                                    var$6.classObject = $worldDir;
                                }
                            }
                            $worldDir = jl_Class_getComponentType($worldDir);
                            if ($worldDir === null) {
                                $newName = new jl_NullPointerException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($worldDir === $rt_cls($rt_voidcls)) {
                                $newName = new jl_IllegalArgumentException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($folderPrefixOffset < 0) {
                                $newName = new jl_NegativeArraySizeException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                            if ($folderPrefixOffset < $lastProgUpdate)
                                $lastProgUpdate = $folderPrefixOffset;
                            $folderPrefixOffset = 0;
                            while ($folderPrefixOffset < $lastProgUpdate) {
                                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                            }
                            $archiveContents = $zis;
                            $i = $archiveContents.data;
                            $newName.$suppressed = $archiveContents;
                            $i[$i.length - 1 | 0] = $fileNames;
                        }
                        $rt_throw($newName);
                    }
                    ba: {
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed)
                                break ba;
                        }
                        $i = $rt_createIntArray(1).data;
                        $i[0] = 0;
                        bb: {
                            while (0 < $fileNames.$size0) {
                                if ($fileNames.$array.data[0].data.length <= $i[0])
                                    break bb;
                                $zis = null;
                                $lastProgUpdate = 1;
                                bc: {
                                    while ($lastProgUpdate) {
                                        $folderPrefixOffset = 0;
                                        bd: {
                                            while (true) {
                                                if ($zis === null) {
                                                    $zis = new ju_AbstractList$1;
                                                    $zis.$this$00 = $fileNames;
                                                    $zis.$modCount0 = $fileNames.$modCount;
                                                    $zis.$size3 = $fileNames.$size();
                                                    $zis.$removeIndex = (-1);
                                                }
                                                $j = $zis.$index;
                                                if (!($j >= $zis.$size3 ? 0 : 1))
                                                    $j = 0;
                                                else {
                                                    $folderPrefixOffset = $zis.$modCount0;
                                                    $lowerName = $zis.$this$00;
                                                    if ($folderPrefixOffset < $lowerName.$modCount) {
                                                        $newName = new ju_ConcurrentModificationException;
                                                        $newName.$suppressionEnabled = 1;
                                                        $newName.$writableStackTrace = 1;
                                                        $rt_throw($newName);
                                                    }
                                                    $zis.$removeIndex = $j;
                                                    $zis.$index = $j + 1 | 0;
                                                    if (!(($lowerName.$get($j)).data[$i[0]] != (ju_ArrayList_get($fileNames, 0)).data[$i[0]] ? 0 : 1))
                                                        $lastProgUpdate = 0;
                                                    $j = 1;
                                                    $folderPrefixOffset = $lastProgUpdate;
                                                }
                                                if (!$j) {
                                                    $folderPrefixOffset = 0;
                                                    break bd;
                                                }
                                                if (!$folderPrefixOffset)
                                                    break;
                                            }
                                            $folderPrefixOffset = 1;
                                        }
                                        if (!$folderPrefixOffset)
                                            break bc;
                                    }
                                }
                                if (!$lastProgUpdate)
                                    break bb;
                                $i[0] = $i[0] + 1 | 0;
                            }
                            $newName = new jl_IndexOutOfBoundsException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        $folderPrefixOffset = $i[0];
                        $zis = new juz_ZipInputStream;
                        $fileNames = new ji_ByteArrayInputStream;
                        $fileNames.$buf0 = $archiveContents;
                        $fileNames.$pos0 = 0;
                        $fileNames.$mark = 0;
                        $fileNames.$count = $chunkX;
                        juz_ZipInputStream__init_($zis, $fileNames);
                        p: {
                            try {
                                $lastProgUpdate = 0;
                                $prog = 0;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break p;
                                } else {
                                    throw $$e;
                                }
                            }
                            be: {
                                bf: {
                                    q: {
                                        while (true) {
                                            try {
                                                $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                                if ($fileNames === null)
                                                    break;
                                                if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                    continue;
                                                if (juz_ZipEntry_isDirectory($fileNames))
                                                    continue;
                                                $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                                if (!jl_String_endsWith($lowerName, $rt_s(184)) && !jl_String_endsWith($lowerName, $rt_s(185)) && !jl_String_endsWith($lowerName, $rt_s(186)) && !jl_String_endsWith($lowerName, $rt_s(187)) && !jl_String_endsWith($lowerName, $rt_s(188)))
                                                    continue;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break p;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            bg: {
                                                try {
                                                    $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                    if ($sz < 0) {
                                                        $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                        break bg;
                                                    }
                                                    $b = $rt_createByteArray($sz);
                                                    $j = 0;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break p;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $sz = $b.data.length;
                                                while (true) {
                                                    try {
                                                        if ($j >= $sz)
                                                            break;
                                                        $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                        if ($k == (-1))
                                                            break;
                                                        $j = $j + $k | 0;
                                                        continue;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Throwable) {
                                                            $newName = $$je;
                                                            break p;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                }
                                                try {
                                                    break bg;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break p;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                                if (jl_String_equals($fileName, $rt_s(19)))
                                                    break bf;
                                                if (jl_String_equals($fileName, $rt_s(182)))
                                                    break bf;
                                                bh: {
                                                    f: {
                                                        if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                            if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                                break f;
                                                            if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                                break f;
                                                            if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                                break f;
                                                        }
                                                        if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                            break q;
                                                        if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                            break q;
                                                        break bh;
                                                    }
                                                    $chunkFolder = new nles_VFile;
                                                    $archiveContents = $rt_createArray(jl_Object, 2);
                                                    $i = $archiveContents.data;
                                                    $i[0] = $worldDir;
                                                    $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                                    $worldsTxt = $b.data;
                                                    $i[1] = $fileNames;
                                                    nles_VFile__init_0($chunkFolder, $archiveContents);
                                                    $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                                    $j = 0;
                                                    while ($j < 32) {
                                                        $k = 0;
                                                        while ($k < 32) {
                                                            if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                                                try {
                                                                    $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                                    if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                                        $rt_throw(ji_IOException__init_($rt_s(200)));
                                                                    $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                                    break be;
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof jl_Throwable) {
                                                                        $t = $$je;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                                $fileNames = jl_System_err();
                                                                $lowerName = jl_StringBuilder__init_();
                                                                jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                                                otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                                                jl_Throwable_printStackTrace0($t);
                                                            }
                                                            $k = $k + 1 | 0;
                                                        }
                                                        $j = $j + 1 | 0;
                                                    }
                                                }
                                                continue;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break p;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        if (!$zis.$closed) {
                                            juz_ZipInputStream_closeEntry($zis);
                                            if (!$zis.$closed) {
                                                $newName = $zis.$inf;
                                                $newName.$inRead = 0;
                                                $newName.$inLength = 0;
                                                $newName.$impl = null;
                                                $zis.$closed = 1;
                                                $zis.$eof = 1;
                                                $newName = $zis.$in;
                                                $ptr = 9;
                                                continue main;
                                            }
                                        }
                                        $ptr = 8;
                                        continue main;
                                    }
                                    try {
                                        $worldsTxt = $b.data;
                                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                                        $ptr = 13;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break p;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                                    $bo = ji_ByteArrayOutputStream__init_();
                                    $ptr = 10;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break p;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                                $chunkOut = new nles_VFile;
                                $archiveContents = $rt_createArray(jl_Object, 2);
                                $i = $archiveContents.data;
                                $i[0] = $chunkFolder;
                                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                                $lowerName = jl_StringBuilder__init_();
                                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                                $i[1] = jl_StringBuilder_toString($lowerName);
                                nles_VFile__init_0($chunkOut, $archiveContents);
                                $ptr = 14;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $fileNames = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if ($newName.$suppressionEnabled) {
                            $archiveContents = $newName.$suppressed;
                            $i = $archiveContents.data;
                            $lastProgUpdate = $i.length;
                            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                            var$6 = $archiveContents.constructor;
                            if (var$6 === null)
                                $worldDir = null;
                            else {
                                $worldDir = var$6.classObject;
                                if ($worldDir === null) {
                                    $worldDir = new jl_Class;
                                    $worldDir.$platformClass = var$6;
                                    var$6.classObject = $worldDir;
                                }
                            }
                            $worldDir = jl_Class_getComponentType($worldDir);
                            if ($worldDir === null) {
                                $newName = new jl_NullPointerException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($worldDir === $rt_cls($rt_voidcls)) {
                                $newName = new jl_IllegalArgumentException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            if ($folderPrefixOffset < 0) {
                                $newName = new jl_NegativeArraySizeException;
                                $newName.$suppressionEnabled = 1;
                                $newName.$writableStackTrace = 1;
                                $rt_throw($newName);
                            }
                            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                            if ($folderPrefixOffset < $lastProgUpdate)
                                $lastProgUpdate = $folderPrefixOffset;
                            $folderPrefixOffset = 0;
                            while ($folderPrefixOffset < $lastProgUpdate) {
                                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                            }
                            $archiveContents = $zis;
                            $i = $archiveContents.data;
                            $newName.$suppressed = $archiveContents;
                            $i[$i.length - 1 | 0] = $fileNames;
                        }
                        $rt_throw($newName);
                    }
                    $lowerName = $zis.$inf;
                    $lowerName.$inRead = 0;
                    $lowerName.$inLength = 0;
                    $lowerName.$impl = null;
                    $zis.$closed = 1;
                    $zis.$eof = 1;
                    $zis = $zis.$in;
                    $ptr = 5;
                    continue main;
                }
            }
            $fileNames = new jl_StringBuilder;
            $fileNames.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($fileNames, $fileNames.$length0, var$6);
            $folderPrefixOffset = $fileNames.$length0;
            jl_AbstractStringBuilder_insertSpace($fileNames, $folderPrefixOffset, $folderPrefixOffset + 1 | 0);
            $i = $fileNames.$buffer;
            $b = $i.data;
            $b[$folderPrefixOffset] = $sz;
            var$6 = new jl_String;
            $lastProgUpdate = $fileNames.$length0;
            $prog = $b.length;
            if ($lastProgUpdate < 0)
                break;
            if ($lastProgUpdate > ($prog - 0 | 0))
                break;
            var$6.$nativeString = $rt_charArrayToString($i.data, 0, $lastProgUpdate);
            $worldDir = new nles_VFile;
            $worldDir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$6]));
            $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(19)]));
            if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                $ptr = 1;
                continue main;
            }
            $folderPrefixOffset = 0;
        }
        $newName = new jl_IndexOutOfBoundsException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $rt_throw($newName);
    case 5:
        $zis.$close();
        if ($rt_suspending()) {
            break main;
        }
        $i = $rt_createIntArray(1).data;
        $i[0] = 0;
        y: {
            while (0 < $fileNames.$size0) {
                if ($fileNames.$array.data[0].data.length <= $i[0])
                    break y;
                $zis = null;
                $lastProgUpdate = 1;
                bi: {
                    while ($lastProgUpdate) {
                        $folderPrefixOffset = 0;
                        bj: {
                            while (true) {
                                if ($zis === null) {
                                    $zis = new ju_AbstractList$1;
                                    $zis.$this$00 = $fileNames;
                                    $zis.$modCount0 = $fileNames.$modCount;
                                    $zis.$size3 = $fileNames.$size();
                                    $zis.$removeIndex = (-1);
                                }
                                $j = $zis.$index;
                                if (!($j >= $zis.$size3 ? 0 : 1))
                                    $j = 0;
                                else {
                                    $folderPrefixOffset = $zis.$modCount0;
                                    $lowerName = $zis.$this$00;
                                    if ($folderPrefixOffset < $lowerName.$modCount) {
                                        $newName = new ju_ConcurrentModificationException;
                                        $newName.$suppressionEnabled = 1;
                                        $newName.$writableStackTrace = 1;
                                        $rt_throw($newName);
                                    }
                                    $zis.$removeIndex = $j;
                                    $zis.$index = $j + 1 | 0;
                                    if (!(($lowerName.$get($j)).data[$i[0]] != (ju_ArrayList_get($fileNames, 0)).data[$i[0]] ? 0 : 1))
                                        $lastProgUpdate = 0;
                                    $j = 1;
                                    $folderPrefixOffset = $lastProgUpdate;
                                }
                                if (!$j) {
                                    $folderPrefixOffset = 0;
                                    break bj;
                                }
                                if (!$folderPrefixOffset)
                                    break;
                            }
                            $folderPrefixOffset = 1;
                        }
                        if (!$folderPrefixOffset)
                            break bi;
                    }
                }
                if (!$lastProgUpdate)
                    break y;
                $i[0] = $i[0] + 1 | 0;
            }
            $newName = new jl_IndexOutOfBoundsException;
            $newName.$suppressionEnabled = 1;
            $newName.$writableStackTrace = 1;
            $rt_throw($newName);
        }
        $folderPrefixOffset = $i[0];
        $zis = new juz_ZipInputStream;
        $fileNames = new ji_ByteArrayInputStream;
        $fileNames.$buf0 = $archiveContents;
        $fileNames.$pos0 = 0;
        $fileNames.$mark = 0;
        $fileNames.$count = $chunkX;
        juz_ZipInputStream__init_($zis, $fileNames);
        bk: {
            try {
                $lastProgUpdate = 0;
                $prog = 0;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                    break bk;
                } else {
                    throw $$e;
                }
            }
            bl: {
                x: {
                    bm: {
                        while (true) {
                            try {
                                $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                if ($fileNames === null)
                                    break;
                                if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                    continue;
                                if (juz_ZipEntry_isDirectory($fileNames))
                                    continue;
                                $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                if (!jl_String_endsWith($lowerName, $rt_s(184)) && !jl_String_endsWith($lowerName, $rt_s(185)) && !jl_String_endsWith($lowerName, $rt_s(186)) && !jl_String_endsWith($lowerName, $rt_s(187)) && !jl_String_endsWith($lowerName, $rt_s(188)))
                                    continue;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break bk;
                                } else {
                                    throw $$e;
                                }
                            }
                            bn: {
                                try {
                                    $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                    if ($sz < 0) {
                                        $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                        break bn;
                                    }
                                    $b = $rt_createByteArray($sz);
                                    $j = 0;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break bk;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $sz = $b.data.length;
                                while (true) {
                                    try {
                                        if ($j >= $sz)
                                            break;
                                        $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                        if ($k == (-1))
                                            break;
                                        $j = $j + $k | 0;
                                        continue;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break bk;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    break bn;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break bk;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                if (jl_String_equals($fileName, $rt_s(19)))
                                    break x;
                                if (jl_String_equals($fileName, $rt_s(182)))
                                    break x;
                                n: {
                                    ba: {
                                        if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                            if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                break ba;
                                            if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                break ba;
                                            if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                break ba;
                                        }
                                        if (jl_String_startsWith0($fileName, $rt_s(192)))
                                            break bm;
                                        if (jl_String_startsWith0($fileName, $rt_s(193)))
                                            break bm;
                                        break n;
                                    }
                                    $chunkFolder = new nles_VFile;
                                    $archiveContents = $rt_createArray(jl_Object, 2);
                                    $i = $archiveContents.data;
                                    $i[0] = $worldDir;
                                    $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                    $worldsTxt = $b.data;
                                    $i[1] = $fileNames;
                                    nles_VFile__init_0($chunkFolder, $archiveContents);
                                    $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                    $j = 0;
                                    while ($j < 32) {
                                        $k = 0;
                                        while ($k < 32) {
                                            if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                                try {
                                                    $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                    if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                        $rt_throw(ji_IOException__init_($rt_s(200)));
                                                    $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                    break bl;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $t = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $fileNames = jl_System_err();
                                                $lowerName = jl_StringBuilder__init_();
                                                jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                                otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                                jl_Throwable_printStackTrace0($t);
                                            }
                                            $k = $k + 1 | 0;
                                        }
                                        $j = $j + 1 | 0;
                                    }
                                }
                                continue;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break bk;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed) {
                                $newName = $zis.$inf;
                                $newName.$inRead = 0;
                                $newName.$inLength = 0;
                                $newName.$impl = null;
                                $zis.$closed = 1;
                                $zis.$eof = 1;
                                $newName = $zis.$in;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        $ptr = 8;
                        continue main;
                    }
                    try {
                        $worldsTxt = $b.data;
                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                            break bk;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                    $bo = ji_ByteArrayOutputStream__init_();
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $newName = $$je;
                        break bk;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                $chunkOut = new nles_VFile;
                $archiveContents = $rt_createArray(jl_Object, 2);
                $i = $archiveContents.data;
                $i[0] = $chunkFolder;
                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                $lowerName = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                $i[1] = jl_StringBuilder_toString($lowerName);
                nles_VFile__init_0($chunkOut, $archiveContents);
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 6:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_fileExists$_asyncCall_$($fileNames, $lowerName);
        if ($rt_suspending()) {
            break main;
        }
        $fileNames = $tmp;
        $folderPrefixOffset = $fileNames.$bool;
        $zis.$exists0 = $folderPrefixOffset;
        $zis.$hasBeenAccessed = 1;
        $folderPrefixOffset = !$folderPrefixOffset ? 0 : 1;
        bo: while (true) {
            if (!$folderPrefixOffset) {
                $i = $archiveContents.data;
                $fileNames = new ju_ArrayList;
                $fileNames.$array = $rt_createArray(jl_Object, 10);
                $zis = new juz_ZipInputStream;
                $lowerName = new ji_ByteArrayInputStream;
                $lastProgUpdate = $i.length;
                $lowerName.$buf0 = $archiveContents;
                $lowerName.$pos0 = 0;
                $lowerName.$mark = 0;
                $chunkX = 0 + $lastProgUpdate | 0;
                $lowerName.$count = $chunkX;
                juz_ZipInputStream__init_($zis, $lowerName);
                z: {
                    try {
                        while (true) {
                            $lowerName = juz_ZipInputStream_getNextEntry($zis);
                            if ($lowerName === null)
                                break z;
                            if (jl_String_contains(juz_ZipEntry_getName($lowerName), $rt_s(183)))
                                continue;
                            if (juz_ZipEntry_isDirectory($lowerName))
                                continue;
                            $lowerName_0 = jl_String_toLowerCase(juz_ZipEntry_getName($lowerName));
                            if (!jl_String_endsWith($lowerName_0, $rt_s(184)) && !jl_String_endsWith($lowerName_0, $rt_s(185)) && !jl_String_endsWith($lowerName_0, $rt_s(186)) && !jl_String_endsWith($lowerName_0, $rt_s(187)))
                                continue;
                            ju_ArrayList_add($fileNames, jl_String_toCharArray(juz_ZipEntry_getName($lowerName)));
                        }
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    try {
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $fileNames = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if ($newName.$suppressionEnabled) {
                        $archiveContents = $newName.$suppressed;
                        $i = $archiveContents.data;
                        $lastProgUpdate = $i.length;
                        $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                        var$6 = $archiveContents.constructor;
                        if (var$6 === null)
                            $worldDir = null;
                        else {
                            $worldDir = var$6.classObject;
                            if ($worldDir === null) {
                                $worldDir = new jl_Class;
                                $worldDir.$platformClass = var$6;
                                var$6.classObject = $worldDir;
                            }
                        }
                        $worldDir = jl_Class_getComponentType($worldDir);
                        if ($worldDir === null) {
                            $newName = new jl_NullPointerException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($worldDir === $rt_cls($rt_voidcls)) {
                            $newName = new jl_IllegalArgumentException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($folderPrefixOffset < 0) {
                            $newName = new jl_NegativeArraySizeException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                        if ($folderPrefixOffset < $lastProgUpdate)
                            $lastProgUpdate = $folderPrefixOffset;
                        $folderPrefixOffset = 0;
                        while ($folderPrefixOffset < $lastProgUpdate) {
                            $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                            $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                        }
                        $archiveContents = $zis;
                        $i = $archiveContents.data;
                        $newName.$suppressed = $archiveContents;
                        $i[$i.length - 1 | 0] = $fileNames;
                    }
                    $rt_throw($newName);
                }
                ba: {
                    if (!$zis.$closed) {
                        juz_ZipInputStream_closeEntry($zis);
                        if (!$zis.$closed)
                            break ba;
                    }
                    $i = $rt_createIntArray(1).data;
                    $i[0] = 0;
                    bb: {
                        while (0 < $fileNames.$size0) {
                            if ($fileNames.$array.data[0].data.length <= $i[0])
                                break bb;
                            $zis = null;
                            $lastProgUpdate = 1;
                            bc: {
                                while ($lastProgUpdate) {
                                    $folderPrefixOffset = 0;
                                    bd: {
                                        while (true) {
                                            if ($zis === null) {
                                                $zis = new ju_AbstractList$1;
                                                $zis.$this$00 = $fileNames;
                                                $zis.$modCount0 = $fileNames.$modCount;
                                                $zis.$size3 = $fileNames.$size();
                                                $zis.$removeIndex = (-1);
                                            }
                                            $j = $zis.$index;
                                            if (!($j >= $zis.$size3 ? 0 : 1))
                                                $j = 0;
                                            else {
                                                $folderPrefixOffset = $zis.$modCount0;
                                                $lowerName = $zis.$this$00;
                                                if ($folderPrefixOffset < $lowerName.$modCount) {
                                                    $newName = new ju_ConcurrentModificationException;
                                                    $newName.$suppressionEnabled = 1;
                                                    $newName.$writableStackTrace = 1;
                                                    $rt_throw($newName);
                                                }
                                                $zis.$removeIndex = $j;
                                                $zis.$index = $j + 1 | 0;
                                                if (!(($lowerName.$get($j)).data[$i[0]] != (ju_ArrayList_get($fileNames, 0)).data[$i[0]] ? 0 : 1))
                                                    $lastProgUpdate = 0;
                                                $j = 1;
                                                $folderPrefixOffset = $lastProgUpdate;
                                            }
                                            if (!$j) {
                                                $folderPrefixOffset = 0;
                                                break bd;
                                            }
                                            if (!$folderPrefixOffset)
                                                break;
                                        }
                                        $folderPrefixOffset = 1;
                                    }
                                    if (!$folderPrefixOffset)
                                        break bc;
                                }
                            }
                            if (!$lastProgUpdate)
                                break bb;
                            $i[0] = $i[0] + 1 | 0;
                        }
                        $newName = new jl_IndexOutOfBoundsException;
                        $newName.$suppressionEnabled = 1;
                        $newName.$writableStackTrace = 1;
                        $rt_throw($newName);
                    }
                    $folderPrefixOffset = $i[0];
                    $zis = new juz_ZipInputStream;
                    $fileNames = new ji_ByteArrayInputStream;
                    $fileNames.$buf0 = $archiveContents;
                    $fileNames.$pos0 = 0;
                    $fileNames.$mark = 0;
                    $fileNames.$count = $chunkX;
                    juz_ZipInputStream__init_($zis, $fileNames);
                    p: {
                        try {
                            $lastProgUpdate = 0;
                            $prog = 0;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $newName = $$je;
                                break p;
                            } else {
                                throw $$e;
                            }
                        }
                        be: {
                            bf: {
                                q: {
                                    while (true) {
                                        try {
                                            $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                            if ($fileNames === null)
                                                break;
                                            if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                continue;
                                            if (juz_ZipEntry_isDirectory($fileNames))
                                                continue;
                                            $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                            if (!jl_String_endsWith($lowerName, $rt_s(184)) && !jl_String_endsWith($lowerName, $rt_s(185)) && !jl_String_endsWith($lowerName, $rt_s(186)) && !jl_String_endsWith($lowerName, $rt_s(187)) && !jl_String_endsWith($lowerName, $rt_s(188)))
                                                continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break p;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        bg: {
                                            try {
                                                $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                if ($sz < 0) {
                                                    $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                    break bg;
                                                }
                                                $b = $rt_createByteArray($sz);
                                                $j = 0;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break p;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            $sz = $b.data.length;
                                            while (true) {
                                                try {
                                                    if ($j >= $sz)
                                                        break;
                                                    $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                    if ($k == (-1))
                                                        break;
                                                    $j = $j + $k | 0;
                                                    continue;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break p;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                break bg;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break p;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                            if (jl_String_equals($fileName, $rt_s(19)))
                                                break bf;
                                            if (jl_String_equals($fileName, $rt_s(182)))
                                                break bf;
                                            bh: {
                                                f: {
                                                    if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                        if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                            break f;
                                                        if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                            break f;
                                                        if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                            break f;
                                                    }
                                                    if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                        break q;
                                                    if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                        break q;
                                                    break bh;
                                                }
                                                $chunkFolder = new nles_VFile;
                                                $archiveContents = $rt_createArray(jl_Object, 2);
                                                $i = $archiveContents.data;
                                                $i[0] = $worldDir;
                                                $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                                $worldsTxt = $b.data;
                                                $i[1] = $fileNames;
                                                nles_VFile__init_0($chunkFolder, $archiveContents);
                                                $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                                $j = 0;
                                                while ($j < 32) {
                                                    $k = 0;
                                                    while ($k < 32) {
                                                        if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                                            try {
                                                                $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                                if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                                    $rt_throw(ji_IOException__init_($rt_s(200)));
                                                                $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                                break be;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Throwable) {
                                                                    $t = $$je;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                            $fileNames = jl_System_err();
                                                            $lowerName = jl_StringBuilder__init_();
                                                            jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                                            otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                                            jl_Throwable_printStackTrace0($t);
                                                        }
                                                        $k = $k + 1 | 0;
                                                    }
                                                    $j = $j + 1 | 0;
                                                }
                                            }
                                            continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break p;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    if (!$zis.$closed) {
                                        juz_ZipInputStream_closeEntry($zis);
                                        if (!$zis.$closed) {
                                            $newName = $zis.$inf;
                                            $newName.$inRead = 0;
                                            $newName.$inLength = 0;
                                            $newName.$impl = null;
                                            $zis.$closed = 1;
                                            $zis.$eof = 1;
                                            $newName = $zis.$in;
                                            $ptr = 9;
                                            continue main;
                                        }
                                    }
                                    $ptr = 8;
                                    continue main;
                                }
                                try {
                                    $worldsTxt = $b.data;
                                    $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                                    $ptr = 13;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break p;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                                nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                                nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                                $bo = ji_ByteArrayOutputStream__init_();
                                $ptr = 10;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break p;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        try {
                            $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                            $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                            $chunkOut = new nles_VFile;
                            $archiveContents = $rt_createArray(jl_Object, 2);
                            $i = $archiveContents.data;
                            $i[0] = $chunkFolder;
                            $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                            $lowerName = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                            $i[1] = jl_StringBuilder_toString($lowerName);
                            nles_VFile__init_0($chunkOut, $archiveContents);
                            $ptr = 14;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                                $newName = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $fileNames = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if ($newName.$suppressionEnabled) {
                        $archiveContents = $newName.$suppressed;
                        $i = $archiveContents.data;
                        $lastProgUpdate = $i.length;
                        $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                        var$6 = $archiveContents.constructor;
                        if (var$6 === null)
                            $worldDir = null;
                        else {
                            $worldDir = var$6.classObject;
                            if ($worldDir === null) {
                                $worldDir = new jl_Class;
                                $worldDir.$platformClass = var$6;
                                var$6.classObject = $worldDir;
                            }
                        }
                        $worldDir = jl_Class_getComponentType($worldDir);
                        if ($worldDir === null) {
                            $newName = new jl_NullPointerException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($worldDir === $rt_cls($rt_voidcls)) {
                            $newName = new jl_IllegalArgumentException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        if ($folderPrefixOffset < 0) {
                            $newName = new jl_NegativeArraySizeException;
                            $newName.$suppressionEnabled = 1;
                            $newName.$writableStackTrace = 1;
                            $rt_throw($newName);
                        }
                        $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                        if ($folderPrefixOffset < $lastProgUpdate)
                            $lastProgUpdate = $folderPrefixOffset;
                        $folderPrefixOffset = 0;
                        while ($folderPrefixOffset < $lastProgUpdate) {
                            $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                            $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                        }
                        $archiveContents = $zis;
                        $i = $archiveContents.data;
                        $newName.$suppressed = $archiveContents;
                        $i[$i.length - 1 | 0] = $fileNames;
                    }
                    $rt_throw($newName);
                }
                $lowerName = $zis.$inf;
                $lowerName.$inRead = 0;
                $lowerName.$inLength = 0;
                $lowerName.$impl = null;
                $zis.$closed = 1;
                $zis.$eof = 1;
                $zis = $zis.$in;
                $ptr = 5;
                continue main;
            }
            while (true) {
                $fileNames = new jl_StringBuilder;
                $fileNames.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($fileNames, $fileNames.$length0, var$6);
                $folderPrefixOffset = $fileNames.$length0;
                jl_AbstractStringBuilder_insertSpace($fileNames, $folderPrefixOffset, $folderPrefixOffset + 1 | 0);
                $i = $fileNames.$buffer;
                $b = $i.data;
                $b[$folderPrefixOffset] = $sz;
                var$6 = new jl_String;
                $lastProgUpdate = $fileNames.$length0;
                $prog = $b.length;
                if ($lastProgUpdate < 0)
                    break bo;
                if ($lastProgUpdate > ($prog - 0 | 0))
                    break bo;
                var$6.$nativeString = $rt_charArrayToString($i.data, 0, $lastProgUpdate);
                $worldDir = new nles_VFile;
                $worldDir.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$6]));
                $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(19)]));
                if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                    $ptr = 1;
                    continue main;
                }
                if (0)
                    continue;
                else
                    break;
            }
            $lowerName = nles_VFile_createPath($rt_wrapArray(jl_Object, [$worldDir, $rt_s(182)]));
            if (!($lowerName !== null && !jl_String_contains($lowerName, $rt_s(168)) ? 0 : 1)) {
                $ptr = 2;
                continue main;
            }
            $folderPrefixOffset = 0;
        }
        $newName = new jl_IndexOutOfBoundsException;
        $newName.$suppressionEnabled = 1;
        $newName.$writableStackTrace = 1;
        $rt_throw($newName);
    case 7:
        y: {
            try {
                juz_ZipInputStream_close($zis);
                if ($rt_suspending()) {
                    break main;
                }
                break y;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $fileNames = $$je;
                } else {
                    throw $$e;
                }
            }
            if ($newName.$suppressionEnabled) {
                $archiveContents = $newName.$suppressed;
                $i = $archiveContents.data;
                $lastProgUpdate = $i.length;
                $folderPrefixOffset = $lastProgUpdate + 1 | 0;
                var$6 = $archiveContents.constructor;
                if (var$6 === null)
                    $worldDir = null;
                else {
                    $worldDir = var$6.classObject;
                    if ($worldDir === null) {
                        $worldDir = new jl_Class;
                        $worldDir.$platformClass = var$6;
                        var$6.classObject = $worldDir;
                    }
                }
                $worldDir = jl_Class_getComponentType($worldDir);
                if ($worldDir === null) {
                    $newName = new jl_NullPointerException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                if ($worldDir === $rt_cls($rt_voidcls)) {
                    $newName = new jl_IllegalArgumentException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                if ($folderPrefixOffset < 0) {
                    $newName = new jl_NegativeArraySizeException;
                    $newName.$suppressionEnabled = 1;
                    $newName.$writableStackTrace = 1;
                    $rt_throw($newName);
                }
                $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
                if ($folderPrefixOffset < $lastProgUpdate)
                    $lastProgUpdate = $folderPrefixOffset;
                $folderPrefixOffset = 0;
                while ($folderPrefixOffset < $lastProgUpdate) {
                    $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                    $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                }
                $archiveContents = $zis;
                $i = $archiveContents.data;
                $newName.$suppressed = $archiveContents;
                $i[$i.length - 1 | 0] = $fileNames;
            }
        }
        $rt_throw($newName);
    case 8:
        y: {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $worldDir = nles_SYS_VFS;
            $newName = $worldDir.$fileMap;
            if (!$rt_s(48).$hashCode1) {
                $folderPrefixOffset = 0;
                while (true) {
                    if ($folderPrefixOffset >= $rt_s(48).$nativeString.length)
                        break y;
                    $rt_s(48).$hashCode1 = (31 * $rt_s(48).$hashCode1 | 0) + $rt_s(48).$nativeString.charCodeAt($folderPrefixOffset) | 0;
                    $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                }
            }
        }
        $lastProgUpdate = $rt_s(48).$hashCode1;
        $archiveContents = $newName.$elementData.data;
        $lowerName = $archiveContents[$lastProgUpdate & ($archiveContents.length - 1 | 0)];
        while ($lowerName !== null) {
            if ($lowerName.$origKeyHash == $lastProgUpdate) {
                bp: {
                    $newName = $lowerName.$key;
                    if ($rt_s(48) !== $newName) {
                        if ($rt_s(48) === $newName)
                            $folderPrefixOffset = 1;
                        else if (!($newName instanceof jl_String))
                            $folderPrefixOffset = 0;
                        else {
                            $newName = $newName;
                            $folderPrefixOffset = $rt_s(48).$nativeString !== $newName.$nativeString ? 0 : 1;
                        }
                        if (!$folderPrefixOffset) {
                            $folderPrefixOffset = 0;
                            break bp;
                        }
                    }
                    $folderPrefixOffset = 1;
                }
                if ($folderPrefixOffset)
                    break;
            }
            $lowerName = $lowerName.$next3;
        }
        $newName = $lowerName === null ? null : $lowerName.$value0;
        if ($newName === null) {
            $fileNames = $worldDir.$fileMap;
            $newName = new nles_VirtualFilesystem$VFSFile;
            $newName.$fileSize = (-1);
            $newName.$hasBeenDeleted = 0;
            $newName.$hasBeenAccessed = 0;
            $newName.$exists0 = 0;
            $newName.$cache = null;
            $newName.$virtualFilesystem = $worldDir;
            $newName.$filePath = $rt_s(48);
            nles_SysUtil_$callClinit();
            $newName.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($fileNames, $rt_s(48), $newName);
        }
        $folderPrefixOffset = 0;
        $ptr = 12;
        continue main;
    case 9:
        $newName.$close();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
        continue main;
    case 10:
        try {
            nms_CompressedStreamTools_writeCompressed($worldDatNBT, $bo);
            if ($rt_suspending()) {
                break main;
            }
            $archiveContents = ji_ByteArrayOutputStream_toByteArray($bo);
            $worldsTxt = $archiveContents.data;
            $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
            $ptr = 11;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $newName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 11:
        y: {
            try {
                nles_VFile_setAllBytes($ff, $archiveContents);
                if ($rt_suspending()) {
                    break main;
                }
                $prog = $prog + $worldsTxt.length | 0;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                    break y;
                } else {
                    throw $$e;
                }
            }
            bq: {
                m: {
                    bi: {
                        bp: while (true) {
                            try {
                                while (true) {
                                    $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                    if ($fileNames === null)
                                        break bp;
                                    if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                        continue;
                                    if (juz_ZipEntry_isDirectory($fileNames))
                                        continue;
                                    $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                    if (jl_String_endsWith($lowerName, $rt_s(184)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(185)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(186)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(187)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(188)))
                                        break;
                                }
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                            br: {
                                try {
                                    $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                    if ($sz < 0) {
                                        $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                        break br;
                                    }
                                    $b = $rt_createByteArray($sz);
                                    $j = 0;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $sz = $b.data.length;
                                while (true) {
                                    try {
                                        if ($j >= $sz)
                                            break;
                                        $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                        if ($k == (-1))
                                            break;
                                        $j = $j + $k | 0;
                                        continue;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break y;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    break br;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                if (jl_String_equals($fileName, $rt_s(19)))
                                    break m;
                                if (jl_String_equals($fileName, $rt_s(182)))
                                    break m;
                                bs: {
                                    if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                        if (jl_String_startsWith0($fileName, $rt_s(189)))
                                            break bs;
                                        if (jl_String_startsWith0($fileName, $rt_s(190)))
                                            break bs;
                                        if (jl_String_startsWith0($fileName, $rt_s(191)))
                                            break bs;
                                    }
                                    if (jl_String_startsWith0($fileName, $rt_s(192)))
                                        break bi;
                                    if (jl_String_startsWith0($fileName, $rt_s(193)))
                                        break bi;
                                    continue bp;
                                }
                                $chunkFolder = new nles_VFile;
                                $archiveContents = $rt_createArray(jl_Object, 2);
                                $i = $archiveContents.data;
                                $i[0] = $worldDir;
                                $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                $worldsTxt = $b.data;
                                $i[1] = $fileNames;
                                nles_VFile__init_0($chunkFolder, $archiveContents);
                                $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                $j = 0;
                                while ($j < 32) {
                                    $k = 0;
                                    while ($k < 32) {
                                        if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                            try {
                                                $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                    $rt_throw(ji_IOException__init_($rt_s(200)));
                                                $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                break bq;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            $fileNames = jl_System_err();
                                            $lowerName = jl_StringBuilder__init_();
                                            jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                            otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                            jl_Throwable_printStackTrace0($t);
                                        }
                                        $k = $k + 1 | 0;
                                    }
                                    $j = $j + 1 | 0;
                                }
                                continue;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed) {
                                $newName = $zis.$inf;
                                $newName.$inRead = 0;
                                $newName.$inLength = 0;
                                $newName.$impl = null;
                                $zis.$closed = 1;
                                $zis.$eof = 1;
                                $newName = $zis.$in;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        $ptr = 8;
                        continue main;
                    }
                    try {
                        $worldsTxt = $b.data;
                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                            break y;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                    $bo = ji_ByteArrayOutputStream__init_();
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $newName = $$je;
                        break y;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                $chunkOut = new nles_VFile;
                $archiveContents = $rt_createArray(jl_Object, 2);
                $i = $archiveContents.data;
                $i[0] = $chunkFolder;
                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                $lowerName = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                $i[1] = jl_StringBuilder_toString($lowerName);
                nles_VFile__init_0($chunkOut, $archiveContents);
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 12:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes($newName, $folderPrefixOffset);
        if ($rt_suspending()) {
            break main;
        }
        $archiveContents = $tmp;
        if ($archiveContents === null)
            $newName = null;
        else {
            $newName = new jl_String;
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            $worldDir = jnc_Charset$Charsets_value;
            $lowerName = $rt_s(68).$nativeString.toUpperCase();
            $zis = $lowerName === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0($lowerName);
            bp: {
                if (!$zis.$hashCode1) {
                    $folderPrefixOffset = 0;
                    while (true) {
                        if ($folderPrefixOffset >= $zis.$nativeString.length)
                            break bp;
                        $zis.$hashCode1 = (31 * $zis.$hashCode1 | 0) + $zis.$nativeString.charCodeAt($folderPrefixOffset) | 0;
                        $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                    }
                }
            }
            $folderPrefixOffset = $zis.$hashCode1;
            $i = $worldDir.$elementData.data;
            $worldDir = $i[$folderPrefixOffset & ($i.length - 1 | 0)];
            while ($worldDir !== null) {
                if ($worldDir.$origKeyHash == $folderPrefixOffset) {
                    $lowerName = $worldDir.$key;
                    if ($zis !== $lowerName && !jl_String_equals($zis, $lowerName) ? 0 : 1)
                        break;
                }
                $worldDir = $worldDir.$next3;
            }
            $zis = $worldDir === null ? null : $worldDir.$value0;
            if ($zis === null) {
                $newName = new jnc_UnsupportedCharsetException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $newName.$charsetName = $rt_s(68);
                $rt_throw($newName);
            }
            $lastProgUpdate = $archiveContents.data.length;
            if ($lastProgUpdate >= 0 && $lastProgUpdate <= ($lastProgUpdate - 0 | 0)) {
                $fileNames = new jn_ByteBufferImpl;
                $j = 0 + $lastProgUpdate | 0;
                jn_Buffer__init_($fileNames, $lastProgUpdate);
                $fileNames.$order = jn_ByteOrder_BIG_ENDIAN;
                $fileNames.$start2 = 0;
                $fileNames.$array2 = $archiveContents;
                $fileNames.$position1 = 0;
                $fileNames.$limit = $j;
                $fileNames.$direct = 0;
                $fileNames.$readOnly0 = 0;
                bt: {
                    try {
                        $fileNames = jnc_CharsetDecoder_decode(jnc_CharsetDecoder_onUnmappableCharacter(jnc_CharsetDecoder_onMalformedInput($zis.$newDecoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $fileNames);
                        break bt;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jnc_CharacterCodingException) {
                            $fileNames = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $worldDir = new jl_AssertionError;
                    jl_Throwable__init_1($worldDir, $rt_s(103), $fileNames);
                    $rt_throw($worldDir);
                }
                $prog = $fileNames.$position1;
                if (!$prog && $fileNames.$limit == $fileNames.$capacity)
                    $archiveContents = $fileNames.$array0;
                else {
                    $archiveContents = $rt_createCharArray($fileNames.$limit - $prog | 0);
                    jn_CharBuffer_get($fileNames, $archiveContents, 0, $archiveContents.data.length);
                }
                $newName.$nativeString = $rt_fullArrayToString($archiveContents.data);
            } else {
                $newName = new jl_IndexOutOfBoundsException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
        }
        if ($newName === null)
            $worldsTxt = null;
        else {
            $fileNames = nles_VirtualFilesystem_CRLFtoLF($newName);
            $worldsTxt = jur_Pattern_split(jur_Pattern_compile($rt_s(9), 0), $fileNames, 0);
        }
        bl: {
            x: {
                if ($worldsTxt !== null) {
                    $archiveContents = $worldsTxt.data;
                    $folderPrefixOffset = $archiveContents.length;
                    if ($folderPrefixOffset > 0) {
                        if ($folderPrefixOffset != 1)
                            break x;
                        if ((jl_String_trim($archiveContents[0])).$nativeString.length > 0)
                            break x;
                    }
                }
                $archiveContents = $rt_createArray(jl_String, 1);
                $archiveContents.data[0] = var$6;
                break bl;
            }
            $archiveContents = $rt_createArray(jl_String, $folderPrefixOffset + 1 | 0);
            $i = $archiveContents.data;
            jl_System_arraycopy($worldsTxt, 0, $archiveContents, 0, $folderPrefixOffset);
            $i[$i.length - 1 | 0] = var$6;
        }
        bu: {
            $newName = nles_SYS_VFS;
            $worldDir = $newName.$fileMap;
            if (!$rt_s(48).$hashCode1) {
                $folderPrefixOffset = 0;
                while (true) {
                    if ($folderPrefixOffset >= $rt_s(48).$nativeString.length)
                        break bu;
                    $rt_s(48).$hashCode1 = (31 * $rt_s(48).$hashCode1 | 0) + $rt_s(48).$nativeString.charCodeAt($folderPrefixOffset) | 0;
                    $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                }
            }
        }
        $prog = $rt_s(48).$hashCode1;
        $i = $worldDir.$elementData.data;
        $worldDir = $i[$prog & ($i.length - 1 | 0)];
        while ($worldDir !== null) {
            if ($worldDir.$origKeyHash == $prog) {
                bn: {
                    var$6 = $worldDir.$key;
                    if ($rt_s(48) !== var$6) {
                        if ($rt_s(48) === var$6)
                            $folderPrefixOffset = 1;
                        else if (!(var$6 instanceof jl_String))
                            $folderPrefixOffset = 0;
                        else {
                            var$6 = var$6;
                            $folderPrefixOffset = $rt_s(48).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!$folderPrefixOffset) {
                            $folderPrefixOffset = 0;
                            break bn;
                        }
                    }
                    $folderPrefixOffset = 1;
                }
                if ($folderPrefixOffset)
                    break;
            }
            $worldDir = $worldDir.$next3;
        }
        $worldDir = $worldDir === null ? null : $worldDir.$value0;
        if ($worldDir === null) {
            var$6 = $newName.$fileMap;
            $worldDir = new nles_VirtualFilesystem$VFSFile;
            $worldDir.$fileSize = (-1);
            $worldDir.$hasBeenDeleted = 0;
            $worldDir.$hasBeenAccessed = 0;
            $worldDir.$exists0 = 0;
            $worldDir.$cache = null;
            $worldDir.$virtualFilesystem = $newName;
            $worldDir.$filePath = $rt_s(48);
            nles_SysUtil_$callClinit();
            $worldDir.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$6, $rt_s(48), $worldDir);
        }
        $newName = jl_String_join($rt_s(9), $archiveContents);
        if ($newName === null)
            $archiveContents = null;
        else {
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            var$6 = jnc_Charset$Charsets_value;
            $zis = $rt_s(68).$nativeString.toUpperCase();
            $lowerName = $zis === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0($zis);
            b: {
                if (!$lowerName.$hashCode1) {
                    $folderPrefixOffset = 0;
                    while (true) {
                        if ($folderPrefixOffset >= $lowerName.$nativeString.length)
                            break b;
                        $lowerName.$hashCode1 = (31 * $lowerName.$hashCode1 | 0) + $lowerName.$nativeString.charCodeAt($folderPrefixOffset) | 0;
                        $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
                    }
                }
            }
            $prog = $lowerName.$hashCode1;
            $archiveContents = var$6.$elementData.data;
            var$6 = $archiveContents[$prog & ($archiveContents.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == $prog) {
                    bv: {
                        $zis = var$6.$key;
                        if ($lowerName !== $zis) {
                            if ($lowerName === $zis)
                                $folderPrefixOffset = 1;
                            else if (!($zis instanceof jl_String))
                                $folderPrefixOffset = 0;
                            else {
                                $zis = $zis;
                                $folderPrefixOffset = $lowerName.$nativeString !== $zis.$nativeString ? 0 : 1;
                            }
                            if (!$folderPrefixOffset) {
                                $folderPrefixOffset = 0;
                                break bv;
                            }
                        }
                        $folderPrefixOffset = 1;
                    }
                    if ($folderPrefixOffset)
                        break;
                }
                var$6 = var$6.$next3;
            }
            $zis = var$6 === null ? null : var$6.$value0;
            if ($zis === null) {
                $newName = new jnc_UnsupportedCharsetException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $newName.$charsetName = $rt_s(68);
                $rt_throw($newName);
            }
            $archiveContents = $rt_fastStringToCharArray($newName.$nativeString);
            $lastProgUpdate = $archiveContents.data.length;
            var$6 = new jn_CharBufferOverArray;
            $sz = 0 + $lastProgUpdate | 0;
            jn_Buffer__init_(var$6, $lastProgUpdate);
            var$6.$position1 = 0;
            var$6.$limit = $sz;
            var$6.$start1 = 0;
            var$6.$readOnly = 0;
            var$6.$array0 = $archiveContents;
            bw: {
                try {
                    $newName = jnc_CharsetEncoder_encode(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput($zis.$newEncoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), var$6);
                    break bw;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jnc_CharacterCodingException) {
                        $fileNames = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $worldDir = new jl_AssertionError;
                $worldDir.$suppressionEnabled = 1;
                $worldDir.$writableStackTrace = 1;
                $worldDir.$message = $rt_s(103);
                $worldDir.$cause = $fileNames;
                $rt_throw($worldDir);
            }
            $prog = $newName.$position1;
            if (!$prog && $newName.$limit == $newName.$capacity)
                $archiveContents = $newName.$array2;
            else {
                $archiveContents = $rt_createByteArray($newName.$limit - $prog | 0);
                jn_ByteBuffer_get($newName, $archiveContents, 0, $archiveContents.data.length);
            }
        }
        $folderPrefixOffset = 1;
        $ptr = 17;
        continue main;
    case 13:
        y: {
            try {
                nles_VFile_setAllBytes($ff, $b);
                if ($rt_suspending()) {
                    break main;
                }
                $prog = $prog + $worldsTxt.length | 0;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                    break y;
                } else {
                    throw $$e;
                }
            }
            bq: {
                m: {
                    bi: {
                        bp: while (true) {
                            try {
                                while (true) {
                                    $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                    if ($fileNames === null)
                                        break bp;
                                    if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                        continue;
                                    if (juz_ZipEntry_isDirectory($fileNames))
                                        continue;
                                    $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                    if (jl_String_endsWith($lowerName, $rt_s(184)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(185)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(186)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(187)))
                                        break;
                                    if (jl_String_endsWith($lowerName, $rt_s(188)))
                                        break;
                                }
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                            br: {
                                try {
                                    $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                    if ($sz < 0) {
                                        $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                        break br;
                                    }
                                    $b = $rt_createByteArray($sz);
                                    $j = 0;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $sz = $b.data.length;
                                while (true) {
                                    try {
                                        if ($j >= $sz)
                                            break;
                                        $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                        if ($k == (-1))
                                            break;
                                        $j = $j + $k | 0;
                                        continue;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break y;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    break br;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                if (jl_String_equals($fileName, $rt_s(19)))
                                    break m;
                                if (jl_String_equals($fileName, $rt_s(182)))
                                    break m;
                                bs: {
                                    if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                        if (jl_String_startsWith0($fileName, $rt_s(189)))
                                            break bs;
                                        if (jl_String_startsWith0($fileName, $rt_s(190)))
                                            break bs;
                                        if (jl_String_startsWith0($fileName, $rt_s(191)))
                                            break bs;
                                    }
                                    if (jl_String_startsWith0($fileName, $rt_s(192)))
                                        break bi;
                                    if (jl_String_startsWith0($fileName, $rt_s(193)))
                                        break bi;
                                    continue bp;
                                }
                                $chunkFolder = new nles_VFile;
                                $archiveContents = $rt_createArray(jl_Object, 2);
                                $i = $archiveContents.data;
                                $i[0] = $worldDir;
                                $fileNames = jl_String_startsWith0($fileName, $rt_s(194)) ? $rt_s(195) : !jl_String_startsWith0($fileName, $rt_s(196)) ? $rt_s(197) : $rt_s(198);
                                $worldsTxt = $b.data;
                                $i[1] = $fileNames;
                                nles_VFile__init_0($chunkFolder, $archiveContents);
                                $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                $j = 0;
                                while ($j < 32) {
                                    $k = 0;
                                    while ($k < 32) {
                                        if (nms_RegionFile_isChunkSaved($mca, $j, $k)) {
                                            try {
                                                $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                                if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                    $rt_throw(ji_IOException__init_($rt_s(200)));
                                                $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                                break bq;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $t = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            $fileNames = jl_System_err();
                                            $lowerName = jl_StringBuilder__init_();
                                            jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                            otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                            jl_Throwable_printStackTrace0($t);
                                        }
                                        $k = $k + 1 | 0;
                                    }
                                    $j = $j + 1 | 0;
                                }
                                continue;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed) {
                                $newName = $zis.$inf;
                                $newName.$inRead = 0;
                                $newName.$inLength = 0;
                                $newName.$impl = null;
                                $zis.$closed = 1;
                                $zis.$eof = 1;
                                $newName = $zis.$in;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        $ptr = 8;
                        continue main;
                    }
                    try {
                        $worldsTxt = $b.data;
                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                            break y;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                    $bo = ji_ByteArrayOutputStream__init_();
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $newName = $$je;
                        break y;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                $chunkOut = new nles_VFile;
                $archiveContents = $rt_createArray(jl_Object, 2);
                $i = $archiveContents.data;
                $i[0] = $chunkFolder;
                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                $lowerName = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                $i[1] = jl_StringBuilder_toString($lowerName);
                nles_VFile__init_0($chunkOut, $archiveContents);
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 14:
        y: {
            try {
                $tmp = nles_VFile_exists($chunkOut);
                if ($rt_suspending()) {
                    break main;
                }
                $sz = $tmp;
                if (!$sz) {
                    $bao = ji_ByteArrayOutputStream__init_();
                    $ptr = 15;
                    continue main;
                }
                $fileNames = jl_System_err();
                $lowerName = nles_VFile_getPath($chunkOut);
                $lowerName_0 = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($lowerName_0, $rt_s(205)), $lowerName);
                otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName_0));
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                    break y;
                } else {
                    throw $$e;
                }
            }
            m: {
                bi: {
                    bp: {
                        bo: while (true) {
                            try {
                                $k = $k + 1 | 0;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                            while (true) {
                                try {
                                    if ($k < 32)
                                        break;
                                    $j = $j + 1 | 0;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                while (true) {
                                    try {
                                        if ($j < 32)
                                            break;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break y;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    while (true) {
                                        try {
                                            while (true) {
                                                $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                                if ($fileNames === null)
                                                    break bo;
                                                if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                    continue;
                                                if (juz_ZipEntry_isDirectory($fileNames))
                                                    continue;
                                                $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                                if (jl_String_endsWith($lowerName, $rt_s(184)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(185)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(186)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(187)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(188)))
                                                    break;
                                            }
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break y;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        z: {
                                            try {
                                                $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                if ($sz < 0) {
                                                    $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                    break z;
                                                }
                                                $b = $rt_createByteArray($sz);
                                                $j = 0;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break y;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            $sz = $b.data.length;
                                            while (true) {
                                                try {
                                                    if ($j >= $sz)
                                                        break;
                                                    $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                    if ($k == (-1))
                                                        break;
                                                    $j = $j + $k | 0;
                                                    continue;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break y;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                break z;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break y;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                            if (jl_String_equals($fileName, $rt_s(19)))
                                                break bi;
                                            if (jl_String_equals($fileName, $rt_s(182)))
                                                break bi;
                                            if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                    break;
                                                if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                    break;
                                                if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                    break;
                                            }
                                            if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                break bp;
                                            if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                break bp;
                                            continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break y;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    bk: {
                                        try {
                                            $chunkFolder = new nles_VFile;
                                            $archiveContents = $rt_createArray(jl_Object, 2);
                                            $i = $archiveContents.data;
                                            $i[0] = $worldDir;
                                            if (jl_String_startsWith0($fileName, $rt_s(194))) {
                                                $fileNames = $rt_s(195);
                                                break bk;
                                            }
                                            if (!jl_String_startsWith0($fileName, $rt_s(196))) {
                                                $fileNames = $rt_s(197);
                                                break bk;
                                            }
                                            $fileNames = $rt_s(198);
                                            break bk;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break y;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $worldsTxt = $b.data;
                                        $i[1] = $fileNames;
                                        nles_VFile__init_0($chunkFolder, $archiveContents);
                                        $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                        $j = 0;
                                        continue;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break y;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    $k = 0;
                                    continue;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            bm: {
                                try {
                                    if (nms_RegionFile_isChunkSaved($mca, $j, $k))
                                        break bm;
                                    continue bo;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            bu: {
                                try {
                                    bx: {
                                        try {
                                            $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                            if (nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                break bx;
                                            $rt_throw(ji_IOException__init_($rt_s(200)));
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                break bu;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                        break m;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $fileNames = jl_System_err();
                                $lowerName = jl_StringBuilder__init_();
                                jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                jl_Throwable_printStackTrace0($t);
                                continue;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed) {
                                $newName = $zis.$inf;
                                $newName.$inRead = 0;
                                $newName.$inLength = 0;
                                $newName.$impl = null;
                                $zis.$closed = 1;
                                $zis.$eof = 1;
                                $newName = $zis.$in;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        $ptr = 8;
                        continue main;
                    }
                    try {
                        $worldsTxt = $b.data;
                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                            break y;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                    $bo = ji_ByteArrayOutputStream__init_();
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $newName = $$je;
                        break y;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                $chunkOut = new nles_VFile;
                $archiveContents = $rt_createArray(jl_Object, 2);
                $i = $archiveContents.data;
                $i[0] = $chunkFolder;
                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                $lowerName = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                $i[1] = jl_StringBuilder_toString($lowerName);
                nles_VFile__init_0($chunkOut, $archiveContents);
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 15:
        try {
            nms_CompressedStreamTools_writeCompressed($chunkNBT, $bao);
            if ($rt_suspending()) {
                break main;
            }
            $archiveContents = ji_ByteArrayOutputStream_toByteArray($bao);
            $i = $archiveContents.data;
            $ptr = 16;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $newName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 16:
        y: {
            try {
                nles_VFile_setAllBytes($chunkOut, $archiveContents);
                if ($rt_suspending()) {
                    break main;
                }
                $sz = $prog + $i.length | 0;
                if (($sz - $lastProgUpdate | 0) <= 25000)
                    $prog = $sz;
                else {
                    nles_IntegratedServer_updateStatusString($rt_s(206), $sz);
                    $prog = $sz;
                    $lastProgUpdate = $sz;
                }
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                    break y;
                } else {
                    throw $$e;
                }
            }
            bi: {
                bp: {
                    bo: {
                        bj: while (true) {
                            try {
                                $k = $k + 1 | 0;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                            while (true) {
                                try {
                                    if ($k < 32)
                                        break;
                                    $j = $j + 1 | 0;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                while (true) {
                                    try {
                                        if ($j < 32)
                                            break;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break y;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    while (true) {
                                        try {
                                            while (true) {
                                                $fileNames = juz_ZipInputStream_getNextEntry($zis);
                                                if ($fileNames === null)
                                                    break bj;
                                                if (jl_String_contains(juz_ZipEntry_getName($fileNames), $rt_s(183)))
                                                    continue;
                                                if (juz_ZipEntry_isDirectory($fileNames))
                                                    continue;
                                                $lowerName = jl_String_toLowerCase(juz_ZipEntry_getName($fileNames));
                                                if (jl_String_endsWith($lowerName, $rt_s(184)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(185)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(186)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(187)))
                                                    break;
                                                if (jl_String_endsWith($lowerName, $rt_s(188)))
                                                    break;
                                            }
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break y;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        by: {
                                            try {
                                                $sz = Long_lo((juz_ZipEntry_getSize($fileNames)));
                                                if ($sz < 0) {
                                                    $b = nles_WorldConverterMCA_inputStreamToBytesNoClose($zis);
                                                    break by;
                                                }
                                                $b = $rt_createByteArray($sz);
                                                $j = 0;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break y;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            $sz = $b.data.length;
                                            while (true) {
                                                try {
                                                    if ($j >= $sz)
                                                        break;
                                                    $k = juz_ZipInputStream_read($zis, $b, $j, $sz - $j | 0);
                                                    if ($k == (-1))
                                                        break;
                                                    $j = $j + $k | 0;
                                                    continue;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Throwable) {
                                                        $newName = $$je;
                                                        break y;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                            }
                                            try {
                                                break by;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Throwable) {
                                                    $newName = $$je;
                                                    break y;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                        }
                                        try {
                                            $fileName = jl_String_substring0(juz_ZipEntry_getName($fileNames), $folderPrefixOffset);
                                            if (jl_String_equals($fileName, $rt_s(19)))
                                                break bp;
                                            if (jl_String_equals($fileName, $rt_s(182)))
                                                break bp;
                                            if (!(!jl_String_endsWith($fileName, $rt_s(187)) && !jl_String_endsWith($fileName, $rt_s(186)))) {
                                                if (jl_String_startsWith0($fileName, $rt_s(189)))
                                                    break;
                                                if (jl_String_startsWith0($fileName, $rt_s(190)))
                                                    break;
                                                if (jl_String_startsWith0($fileName, $rt_s(191)))
                                                    break;
                                            }
                                            if (jl_String_startsWith0($fileName, $rt_s(192)))
                                                break bo;
                                            if (jl_String_startsWith0($fileName, $rt_s(193)))
                                                break bo;
                                            continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break y;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    bl: {
                                        try {
                                            $chunkFolder = new nles_VFile;
                                            $archiveContents = $rt_createArray(jl_Object, 2);
                                            $i = $archiveContents.data;
                                            $i[0] = $worldDir;
                                            if (jl_String_startsWith0($fileName, $rt_s(194))) {
                                                $fileNames = $rt_s(195);
                                                break bl;
                                            }
                                            if (!jl_String_startsWith0($fileName, $rt_s(196))) {
                                                $fileNames = $rt_s(197);
                                                break bl;
                                            }
                                            $fileNames = $rt_s(198);
                                            break bl;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $newName = $$je;
                                                break y;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $worldsTxt = $b.data;
                                        $i[1] = $fileNames;
                                        nles_VFile__init_0($chunkFolder, $archiveContents);
                                        $mca = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($b, $worldsTxt.length));
                                        $j = 0;
                                        continue;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $newName = $$je;
                                            break y;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                try {
                                    $k = 0;
                                    continue;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            bu: {
                                try {
                                    if (nms_RegionFile_isChunkSaved($mca, $j, $k))
                                        break bu;
                                    continue bj;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            bx: {
                                try {
                                    a: {
                                        try {
                                            $chunkNBT = nms_CompressedStreamTools_read(nms_RegionFile_getChunkDataInputStream($mca, $j, $k));
                                            if (nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                                                break a;
                                            $rt_throw(ji_IOException__init_($rt_s(200)));
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Throwable) {
                                                $t = $$je;
                                                break bx;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                                        break bi;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                            $t = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $newName = $$je;
                                        break y;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                $fileNames = jl_System_err();
                                $lowerName = jl_StringBuilder__init_();
                                jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($lowerName, $rt_s(201)), $j), $rt_s(118)), $k);
                                otcic_JsConsolePrintStream_println($fileNames, jl_StringBuilder_toString($lowerName));
                                jl_Throwable_printStackTrace0($t);
                                continue;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $newName = $$je;
                                    break y;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        if (!$zis.$closed) {
                            juz_ZipInputStream_closeEntry($zis);
                            if (!$zis.$closed) {
                                $newName = $zis.$inf;
                                $newName.$inRead = 0;
                                $newName.$inLength = 0;
                                $newName.$impl = null;
                                $zis.$closed = 1;
                                $zis.$eof = 1;
                                $newName = $zis.$in;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        $ptr = 8;
                        continue main;
                    }
                    try {
                        $worldsTxt = $b.data;
                        $ff = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldDir, $fileName]));
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $newName = $$je;
                            break y;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    $worldDatNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                    nms_NBTTagCompound_setString(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(56), $newName);
                    nms_NBTTagCompound_setLong(nms_NBTTagCompound_getCompoundTag($worldDatNBT, $rt_s(55)), $rt_s(178), jl_System_currentTimeMillis());
                    $bo = ji_ByteArrayOutputStream__init_();
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $newName = $$je;
                        break y;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                $chunkOut = new nles_VFile;
                $archiveContents = $rt_createArray(jl_Object, 2);
                $i = $archiveContents.data;
                $i[0] = $chunkFolder;
                $fileNames = nles_VFSChunkLoader_getChunkPath($chunkX, $chunkZ);
                $lowerName = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($lowerName, $fileNames), $rt_s(184));
                $i[1] = jl_StringBuilder_toString($lowerName);
                nles_VFile__init_0($chunkOut, $archiveContents);
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $newName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $fileNames = $$je;
            } else {
                throw $$e;
            }
        }
        if ($newName.$suppressionEnabled) {
            $archiveContents = $newName.$suppressed;
            $i = $archiveContents.data;
            $lastProgUpdate = $i.length;
            $folderPrefixOffset = $lastProgUpdate + 1 | 0;
            var$6 = $archiveContents.constructor;
            if (var$6 === null)
                $worldDir = null;
            else {
                $worldDir = var$6.classObject;
                if ($worldDir === null) {
                    $worldDir = new jl_Class;
                    $worldDir.$platformClass = var$6;
                    var$6.classObject = $worldDir;
                }
            }
            $worldDir = jl_Class_getComponentType($worldDir);
            if ($worldDir === null) {
                $newName = new jl_NullPointerException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($worldDir === $rt_cls($rt_voidcls)) {
                $newName = new jl_IllegalArgumentException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            if ($folderPrefixOffset < 0) {
                $newName = new jl_NegativeArraySizeException;
                $newName.$suppressionEnabled = 1;
                $newName.$writableStackTrace = 1;
                $rt_throw($newName);
            }
            $zis = jlr_Array_newInstanceImpl($worldDir.$platformClass, $folderPrefixOffset);
            if ($folderPrefixOffset < $lastProgUpdate)
                $lastProgUpdate = $folderPrefixOffset;
            $folderPrefixOffset = 0;
            while ($folderPrefixOffset < $lastProgUpdate) {
                $zis.data[$folderPrefixOffset] = $i[$folderPrefixOffset];
                $folderPrefixOffset = $folderPrefixOffset + 1 | 0;
            }
            $archiveContents = $zis;
            $i = $archiveContents.data;
            $newName.$suppressed = $archiveContents;
            $i[$i.length - 1 | 0] = $fileNames;
        }
        $rt_throw($newName);
    case 17:
        nles_VirtualFilesystem$VFSFile_setAllBytes($worldDir, $archiveContents, $folderPrefixOffset);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($archiveContents, $newName, $lowerName, $fileNames, $k, var$6, $zis, $folderPrefixOffset, $i, $prog, $sz, $j, $worldDir, $b, $lastProgUpdate, $chunkX, $lowerName_0, $fileName, $chunkFolder, $worldsTxt, $mca, $chunkNBT, $chunkLevel, $t, $ff, $worldDatNBT, $bo, $chunkZ, $chunkOut, $bao, $ptr);
},
nles_WorldConverterMCA_exportWorld = $folderName => {
    let $bao, $zos, $chunkFile, $etr, $worldFolder, $vf, $lastProgUpdate, $prog, $b, $dstFolderNames, $l, $k, $fileList, var$15, $srcFolderNames, $i, var$18, $dataFile, $chunkNBT, $regionFolder, $regionFiles, $t, $chunkLevel, $chunkX, $chunkZ, var$27, var$28, $regionFileName, $rf, $dos, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$dos = $thread.pop();$rf = $thread.pop();$regionFileName = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();$chunkZ = $thread.pop();$chunkX = $thread.pop();$chunkLevel = $thread.pop();$t = $thread.pop();$regionFiles = $thread.pop();$regionFolder = $thread.pop();$chunkNBT = $thread.pop();$dataFile = $thread.pop();var$18 = $thread.pop();$i = $thread.pop();$srcFolderNames = $thread.pop();var$15 = $thread.pop();$fileList = $thread.pop();$k = $thread.pop();$l = $thread.pop();$dstFolderNames
        = $thread.pop();$b = $thread.pop();$prog = $thread.pop();$lastProgUpdate = $thread.pop();$vf = $thread.pop();$worldFolder = $thread.pop();$etr = $thread.pop();$chunkFile = $thread.pop();$zos = $thread.pop();$bao = $thread.pop();$folderName = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $bao = new ji_ByteArrayOutputStream;
        $bao.$buf = $rt_createByteArray(32);
        $zos = new juz_ZipOutputStream;
        $chunkFile = juz_Deflater__init_((-1), 1);
        $zos.$out0 = $bao;
        $zos.$def = $chunkFile;
        $zos.$buf3 = $rt_createByteArray(512);
        $chunkFile = new ju_ArrayList;
        $chunkFile.$array = $rt_createArray(jl_Object, 10);
        $zos.$entries = $chunkFile;
        $zos.$compressMethod = 8;
        $zos.$compressLevel0 = (-1);
        $chunkFile = new ji_ByteArrayOutputStream;
        $chunkFile.$buf = $rt_createByteArray(32);
        $zos.$cDir = $chunkFile;
        $chunkFile = new juz_CRC32;
        $etr = new cjj_CRC32;
        $etr.$v = 0;
        $chunkFile.$impl0 = $etr;
        $zos.$crc1 = $chunkFile;
        try {
            $chunkFile = jl_StringBuilder__init_();
            jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($chunkFile, $rt_s(207)), $folderName), 39);
            juz_ZipOutputStream_setComment($zos, jl_StringBuilder_toString($chunkFile));
            $worldFolder = nles_VFile__init_($rt_wrapArray(jl_Object, [$rt_s(18), $folderName]));
            $vf = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, $rt_s(19)]));
            $lastProgUpdate = 0;
            $prog = 0;
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 1:
        try {
            $tmp = nles_VFile_exists($vf);
            if ($rt_suspending()) {
                break main;
            }
            $k = $tmp;
            if (!$k) {
                $fileList = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, $rt_s(182)]));
                $ptr = 3;
                continue main;
            }
            $chunkFile = new juz_ZipEntry;
            $etr = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append($etr, $folderName), $rt_s(208));
            juz_ZipEntry__init_($chunkFile, jl_StringBuilder_toString($etr));
            juz_ZipOutputStream_putNextEntry($zos, $chunkFile);
            $ptr = 4;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 2:
        a: {
            try {
                juz_ZipOutputStream_close($zos);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $bao = $$je;
                } else {
                    throw $$e;
                }
            }
            if ($folderName.$suppressionEnabled) {
                $b = $folderName.$suppressed;
                $dstFolderNames = $b.data;
                $l = $dstFolderNames.length;
                $k = $l + 1 | 0;
                $zos = $b.constructor;
                if ($zos === null)
                    $chunkFile = null;
                else {
                    $chunkFile = $zos.classObject;
                    if ($chunkFile === null) {
                        $chunkFile = new jl_Class;
                        $chunkFile.$platformClass = $zos;
                        $zos.classObject = $chunkFile;
                    }
                }
                $chunkFile = jl_Class_getComponentType($chunkFile);
                if ($chunkFile === null) {
                    $folderName = new jl_NullPointerException;
                    $folderName.$suppressionEnabled = 1;
                    $folderName.$writableStackTrace = 1;
                    $rt_throw($folderName);
                }
                if ($chunkFile === $rt_cls($rt_voidcls)) {
                    $folderName = new jl_IllegalArgumentException;
                    $folderName.$suppressionEnabled = 1;
                    $folderName.$writableStackTrace = 1;
                    $rt_throw($folderName);
                }
                if ($k < 0) {
                    $folderName = new jl_NegativeArraySizeException;
                    $folderName.$suppressionEnabled = 1;
                    $folderName.$writableStackTrace = 1;
                    $rt_throw($folderName);
                }
                $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
                if ($k < $l)
                    $l = $k;
                $k = 0;
                while ($k < $l) {
                    $etr.data[$k] = $dstFolderNames[$k];
                    $k = $k + 1 | 0;
                }
                $b = $etr;
                $dstFolderNames = $b.data;
                $folderName.$suppressed = $b;
                $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
            }
        }
        $rt_throw($folderName);
    case 3:
        a: {
            try {
                $tmp = nles_VFile_exists($fileList);
                if ($rt_suspending()) {
                    break main;
                }
                $k = $tmp;
                if ($k) {
                    $chunkFile = new juz_ZipEntry;
                    $etr = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append($etr, $folderName), $rt_s(209));
                    juz_ZipEntry__init_($chunkFile, jl_StringBuilder_toString($etr));
                    juz_ZipOutputStream_putNextEntry($zos, $chunkFile);
                    $ptr = 5;
                    continue main;
                }
                if (($prog - $lastProgUpdate | 0) > 25000) {
                    nles_IntegratedServer_updateStatusString($rt_s(210), $prog);
                    $lastProgUpdate = $prog;
                }
                var$15 = $rt_createArray(jl_String, 3).data;
                var$15[0] = $rt_s(197);
                var$15[1] = $rt_s(198);
                var$15[2] = $rt_s(195);
                $srcFolderNames = $rt_createArray(jl_String, 3).data;
                $srcFolderNames[0] = $rt_s(211);
                $srcFolderNames[1] = $rt_s(212);
                $srcFolderNames[2] = $rt_s(213);
                $i = 0;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            var$18 = 46;
            b: {
                try {
                    if ($i < 3)
                        break b;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $folderName = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkFile = new nles_VFile;
                $b = $rt_createArray(jl_Object, 2);
                $dstFolderNames = $b.data;
                $dstFolderNames[0] = $worldFolder;
                $dstFolderNames[1] = var$15[$i];
                nles_VFile__init_0($chunkFile, $b);
                $ptr = 8;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 4:
        try {
            $tmp = nles_VFile_getAllBytes($vf);
            if ($rt_suspending()) {
                break main;
            }
            $b = $tmp;
            $dstFolderNames = $b.data;
            ji_OutputStream_write($zos, $b);
            $prog = $prog + $dstFolderNames.length | 0;
            $fileList = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, $rt_s(182)]));
            $ptr = 3;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 5:
        a: {
            try {
                $tmp = nles_VFile_getAllBytes($fileList);
                if ($rt_suspending()) {
                    break main;
                }
                $b = $tmp;
                $dstFolderNames = $b.data;
                ji_OutputStream_write($zos, $b);
                $prog = $prog + $dstFolderNames.length | 0;
                if (($prog - $lastProgUpdate | 0) > 25000) {
                    nles_IntegratedServer_updateStatusString($rt_s(210), $prog);
                    $lastProgUpdate = $prog;
                }
                var$15 = $rt_createArray(jl_String, 3).data;
                var$15[0] = $rt_s(197);
                var$15[1] = $rt_s(198);
                var$15[2] = $rt_s(195);
                $srcFolderNames = $rt_createArray(jl_String, 3).data;
                $srcFolderNames[0] = $rt_s(211);
                $srcFolderNames[1] = $rt_s(212);
                $srcFolderNames[2] = $rt_s(213);
                $i = 0;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            var$18 = 46;
            c: {
                try {
                    if ($i < 3)
                        break c;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $folderName = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $chunkFile = new nles_VFile;
                $b = $rt_createArray(jl_Object, 2);
                $dstFolderNames = $b.data;
                $dstFolderNames[0] = $worldFolder;
                $dstFolderNames[1] = var$15[$i];
                nles_VFile__init_0($chunkFile, $b);
                $ptr = 8;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 6:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $chunkFile = nles_SYS_VFS;
            $etr = nles_VFile_getPath(nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, $rt_s(214)])));
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 7:
        try {
            $tmp = nles_VirtualFilesystem_listVFiles($chunkFile, $etr);
            if ($rt_suspending()) {
                break main;
            }
            $fileList = $tmp;
            $k = 0;
            $l = ju_ArrayList_size($fileList);
            if ($k >= $l) {
                $chunkFile = nles_SYS_VFS;
                $etr = nles_VFile_getPath(nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, $rt_s(215)])));
                $ptr = 10;
                continue main;
            }
            $dataFile = ju_ArrayList_get($fileList, $k);
            $chunkFile = new juz_ZipEntry;
            $etr = nles_VFile_getName($dataFile);
            $chunkNBT = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $folderName), $rt_s(216)), $etr);
            juz_ZipEntry__init_($chunkFile, jl_StringBuilder_toString($chunkNBT));
            juz_ZipOutputStream_putNextEntry($zos, $chunkFile);
            $ptr = 11;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 8:
        try {
            nles_SYS_$callClinit();
            if ($rt_suspending()) {
                break main;
            }
            $etr = nles_SYS_VFS;
            $chunkFile = nles_VFile_getPath($chunkFile);
            $ptr = 9;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 9:
        try {
            $tmp = nles_VirtualFilesystem_listVFiles($etr, $chunkFile);
            if ($rt_suspending()) {
                break main;
            }
            $fileList = $tmp;
            $chunkFile = $srcFolderNames[$i];
            $etr = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append($etr, $folderName), $chunkFile);
            $regionFolder = jl_StringBuilder_toString($etr);
            $regionFiles = ju_HashMap__init_();
            $k = 0;
            $l = ju_ArrayList_size($fileList);
            while ($k < $l) {
                $chunkFile = ju_ArrayList_get($fileList, $k);
                try {
                    $ptr = 12;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $etr = jl_System_err();
                $chunkFile = nles_VFile_getPath($chunkFile);
                $chunkNBT = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $rt_s(201)), $chunkFile);
                otcic_JsConsolePrintStream_println($etr, jl_StringBuilder_toString($chunkNBT));
                jl_Throwable_printStackTrace0($t);
                $k = $k + 1 | 0;
            }
            d: {
                if (ju_HashMap_isEmpty($regionFiles))
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(217));
                else {
                    $chunkFile = ju_HashMap$HashMapEntrySet_iterator(ju_HashMap_entrySet($regionFiles));
                    while (true) {
                        if (!ju_HashMap$AbstractMapIterator_hasNext($chunkFile))
                            break d;
                        $etr = ju_HashMap$EntryIterator_next($chunkFile);
                        $chunkNBT = ju_MapEntry_getKey($etr);
                        $chunkLevel = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($chunkLevel, $regionFolder), $chunkNBT);
                        juz_ZipOutputStream_putNextEntry($zos, juz_ZipEntry__init_0(jl_StringBuilder_toString($chunkLevel)));
                        ji_OutputStream_write($zos, nles_RandomAccessMemoryFile_getByteArray(nms_RegionFile_getFile(ju_MapEntry_getValue($etr))));
                    }
                }
            }
            $i = $i + 1 | 0;
            if ($i >= 3) {
                $ptr = 6;
                continue main;
            }
            $chunkFile = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, var$15[$i]]));
            $ptr = 8;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 10:
        a: {
            try {
                $tmp = nles_VirtualFilesystem_listVFiles($chunkFile, $etr);
                if ($rt_suspending()) {
                    break main;
                }
                $chunkFile = $tmp;
                $k = 0;
                $l = ju_ArrayList_size($chunkFile);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            e: {
                try {
                    if ($k < $l)
                        break e;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $folderName = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                if ($zos.$out0 === null) {
                    $dstFolderNames = $bao.$buf.data;
                    $k = $bao.$count0;
                    $b = $rt_createByteArray($k);
                    $l = $dstFolderNames.length;
                    if ($k < $l)
                        $l = $k;
                    $srcFolderNames = $b.data;
                    $k = 0;
                    while ($k < $l) {
                        $srcFolderNames[$k] = $dstFolderNames[$k];
                        $k = $k + 1 | 0;
                    }
                    return $b;
                }
                juz_ZipOutputStream_finish($zos);
                $folderName = $zos.$out0;
                $ptr = 13;
                continue main;
            }
            try {
                $dataFile = ju_ArrayList_get($chunkFile, $k);
                $etr = new juz_ZipEntry;
                $chunkNBT = nles_VFile_getName($dataFile);
                $chunkLevel = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkLevel, $folderName), $rt_s(218)), $chunkNBT);
                juz_ZipEntry__init_($etr, jl_StringBuilder_toString($chunkLevel));
                juz_ZipOutputStream_putNextEntry($zos, $etr);
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 11:
        try {
            $tmp = nles_VFile_getAllBytes($dataFile);
            if ($rt_suspending()) {
                break main;
            }
            $b = $tmp;
            $dstFolderNames = $b.data;
            ji_OutputStream_write($zos, $b);
            $prog = $prog + $dstFolderNames.length | 0;
            if (($prog - $lastProgUpdate | 0) > 25000) {
                nles_IntegratedServer_updateStatusString($rt_s(210), $prog);
                $lastProgUpdate = $prog;
            }
            $k = $k + 1 | 0;
            if ($k >= $l) {
                $chunkFile = nles_SYS_VFS;
                $etr = nles_VFile_getPath(nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, $rt_s(215)])));
                $ptr = 10;
                continue main;
            }
            $dataFile = ju_ArrayList_get($fileList, $k);
            $chunkFile = new juz_ZipEntry;
            $etr = nles_VFile_getName($dataFile);
            $chunkNBT = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $folderName), $rt_s(216)), $etr);
            juz_ZipEntry__init_($chunkFile, jl_StringBuilder_toString($chunkNBT));
            juz_ZipOutputStream_putNextEntry($zos, $chunkFile);
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 12:
        try {
            e: {
                d: {
                    try {
                        $tmp = nles_VFile_getAllBytes($chunkFile);
                        if ($rt_suspending()) {
                            break main;
                        }
                        $b = $tmp;
                        $chunkNBT = nms_CompressedStreamTools_readCompressed(ji_ByteArrayInputStream__init_($b));
                        if (!nms_NBTTagCompound_hasKey($chunkNBT, $rt_s(199)))
                            $rt_throw(ji_IOException__init_($rt_s(200)));
                        $chunkLevel = nms_NBTTagCompound_getCompoundTag($chunkNBT, $rt_s(199));
                        break d;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $t = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $etr = jl_System_err();
                    $chunkFile = nles_VFile_getPath($chunkFile);
                    $chunkNBT = jl_StringBuilder__init_();
                    $chunkLevel = $rt_s(201);
                    $chunkLevel = jl_StringBuilder_append($chunkNBT, $chunkLevel);
                    jl_StringBuilder_append($chunkLevel, $chunkFile);
                    $chunkFile = jl_StringBuilder_toString($chunkNBT);
                    otcic_JsConsolePrintStream_println($etr, $chunkFile);
                    jl_Throwable_printStackTrace0($t);
                    break e;
                }
                $chunkX = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(202));
                $chunkZ = nms_NBTTagCompound_getInteger($chunkLevel, $rt_s(203));
                var$27 = $chunkX >> 5;
                var$28 = $chunkZ >> 5;
                $etr = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append1(jl_StringBuilder_append0(jl_StringBuilder_append($etr, $rt_s(219)), var$27), var$18), var$28), $rt_s(186));
                $regionFileName = jl_StringBuilder_toString($etr);
                $rf = ju_HashMap_get($regionFiles, $regionFileName);
                if ($rf === null) {
                    $rf = nms_RegionFile__init_(nles_RandomAccessMemoryFile__init_($rt_createByteArray(65536), 0));
                    ju_HashMap_put($regionFiles, $regionFileName, $rf);
                }
                f: {
                    try {
                        $dos = nms_RegionFile_getChunkDataOutputStream($rf, $chunkX & 31, $chunkZ & 31);
                        g: {
                            try {
                                nms_CompressedStreamTools_write($chunkNBT, $dos);
                                break g;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Throwable) {
                                    $etr = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if ($dos !== null) {
                                try {
                                    $ptr = 15;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Throwable) {
                                        $chunkNBT = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                jl_Throwable_addSuppressed($etr, $chunkNBT);
                            }
                            $rt_throw($etr);
                        }
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $t = $$je;
                            break f;
                        } else {
                            throw $$e;
                        }
                    }
                    h: {
                        try {
                            if ($dos !== null)
                                break h;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof ji_IOException) {
                                $t = $$je;
                                break f;
                            } else {
                                throw $$e;
                            }
                        }
                        $chunkX = $prog + $b.data.length | 0;
                        if (($chunkX - $lastProgUpdate | 0) <= 25000) {
                            $prog = $chunkX;
                            break e;
                        }
                        nles_IntegratedServer_updateStatusString($rt_s(210), $chunkX);
                        $prog = $chunkX;
                        $lastProgUpdate = $chunkX;
                        break e;
                    }
                    try {
                        $ptr = 16;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $t = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                }
                $etr = jl_System_err();
                $chunkFile = nles_VFile_getPath($chunkFile);
                $chunkNBT = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $rt_s(220)), $regionFileName), $rt_s(102)), $chunkFile);
                otcic_JsConsolePrintStream_println($etr, jl_StringBuilder_toString($chunkNBT));
                jl_Throwable_printStackTrace0($t);
            }
            while (true) {
                $k = $k + 1 | 0;
                if ($k >= $l)
                    break;
                $chunkFile = ju_ArrayList_get($fileList, $k);
                try {
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $etr = jl_System_err();
                $chunkFile = nles_VFile_getPath($chunkFile);
                $chunkNBT = jl_StringBuilder__init_();
                $chunkLevel = $rt_s(201);
                $chunkLevel = jl_StringBuilder_append($chunkNBT, $chunkLevel);
                jl_StringBuilder_append($chunkLevel, $chunkFile);
                $chunkFile = jl_StringBuilder_toString($chunkNBT);
                otcic_JsConsolePrintStream_println($etr, $chunkFile);
                jl_Throwable_printStackTrace0($t);
            }
            i: {
                if (ju_HashMap_isEmpty($regionFiles))
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(217));
                else {
                    $chunkFile = ju_HashMap$HashMapEntrySet_iterator(ju_HashMap_entrySet($regionFiles));
                    while (true) {
                        if (!ju_HashMap$AbstractMapIterator_hasNext($chunkFile))
                            break i;
                        $etr = ju_HashMap$EntryIterator_next($chunkFile);
                        $chunkNBT = ju_MapEntry_getKey($etr);
                        $chunkLevel = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($chunkLevel, $regionFolder), $chunkNBT);
                        juz_ZipOutputStream_putNextEntry($zos, juz_ZipEntry__init_0(jl_StringBuilder_toString($chunkLevel)));
                        ji_OutputStream_write($zos, nles_RandomAccessMemoryFile_getByteArray(nms_RegionFile_getFile(ju_MapEntry_getValue($etr))));
                    }
                }
            }
            $i = $i + 1 | 0;
            if ($i >= 3) {
                $ptr = 6;
                continue main;
            }
            $chunkFile = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, var$15[$i]]));
            $ptr = 8;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 13:
        $folderName.$close();
        if ($rt_suspending()) {
            break main;
        }
        $zos.$out0 = null;
        $dstFolderNames = $bao.$buf.data;
        $k = $bao.$count0;
        $b = $rt_createByteArray($k);
        $l = $dstFolderNames.length;
        if ($k < $l)
            $l = $k;
        $srcFolderNames = $b.data;
        $k = 0;
        while ($k < $l) {
            $srcFolderNames[$k] = $dstFolderNames[$k];
            $k = $k + 1 | 0;
        }
        return $b;
    case 14:
        a: {
            try {
                $tmp = nles_VFile_getAllBytes($dataFile);
                if ($rt_suspending()) {
                    break main;
                }
                $b = $tmp;
                $dstFolderNames = $b.data;
                ji_OutputStream_write($zos, $b);
                $prog = $prog + $dstFolderNames.length | 0;
                if (($prog - $lastProgUpdate | 0) > 25000) {
                    nles_IntegratedServer_updateStatusString($rt_s(210), $prog);
                    $lastProgUpdate = $prog;
                }
                $k = $k + 1 | 0;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            c: {
                try {
                    if ($k < $l)
                        break c;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $folderName = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                if ($zos.$out0 === null) {
                    $dstFolderNames = $bao.$buf.data;
                    $k = $bao.$count0;
                    $b = $rt_createByteArray($k);
                    $l = $dstFolderNames.length;
                    if ($k < $l)
                        $l = $k;
                    $srcFolderNames = $b.data;
                    $k = 0;
                    while ($k < $l) {
                        $srcFolderNames[$k] = $dstFolderNames[$k];
                        $k = $k + 1 | 0;
                    }
                    return $b;
                }
                juz_ZipOutputStream_finish($zos);
                $folderName = $zos.$out0;
                $ptr = 13;
                continue main;
            }
            try {
                $dataFile = ju_ArrayList_get($chunkFile, $k);
                $etr = new juz_ZipEntry;
                $chunkNBT = nles_VFile_getName($dataFile);
                $chunkLevel = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkLevel, $folderName), $rt_s(218)), $chunkNBT);
                juz_ZipEntry__init_($etr, jl_StringBuilder_toString($chunkLevel));
                juz_ZipOutputStream_putNextEntry($zos, $etr);
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $folderName = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 15:
        try {
            try {
                d: {
                    try {
                        ji_FilterOutputStream_close($dos);
                        if ($rt_suspending()) {
                            break main;
                        }
                        break d;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $chunkNBT = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_addSuppressed($etr, $chunkNBT);
                }
                $rt_throw($etr);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            $etr = jl_System_err();
            $chunkFile = nles_VFile_getPath($chunkFile);
            $chunkNBT = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $rt_s(220)), $regionFileName), $rt_s(102)), $chunkFile);
            otcic_JsConsolePrintStream_println($etr, jl_StringBuilder_toString($chunkNBT));
            jl_Throwable_printStackTrace0($t);
            while (true) {
                $k = $k + 1 | 0;
                if ($k >= $l)
                    break;
                $chunkFile = ju_ArrayList_get($fileList, $k);
                try {
                    $ptr = 12;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $etr = jl_System_err();
                $chunkFile = nles_VFile_getPath($chunkFile);
                $chunkNBT = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $rt_s(201)), $chunkFile);
                otcic_JsConsolePrintStream_println($etr, jl_StringBuilder_toString($chunkNBT));
                jl_Throwable_printStackTrace0($t);
            }
            j: {
                if (ju_HashMap_isEmpty($regionFiles))
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(217));
                else {
                    $chunkFile = ju_HashMap$HashMapEntrySet_iterator(ju_HashMap_entrySet($regionFiles));
                    while (true) {
                        if (!ju_HashMap$AbstractMapIterator_hasNext($chunkFile))
                            break j;
                        $etr = ju_HashMap$EntryIterator_next($chunkFile);
                        $chunkNBT = ju_MapEntry_getKey($etr);
                        $chunkLevel = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($chunkLevel, $regionFolder), $chunkNBT);
                        juz_ZipOutputStream_putNextEntry($zos, juz_ZipEntry__init_0(jl_StringBuilder_toString($chunkLevel)));
                        ji_OutputStream_write($zos, nles_RandomAccessMemoryFile_getByteArray(nms_RegionFile_getFile(ju_MapEntry_getValue($etr))));
                    }
                }
            }
            $i = $i + 1 | 0;
            if ($i >= 3) {
                $ptr = 6;
                continue main;
            }
            $chunkFile = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, var$15[$i]]));
            $ptr = 8;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    case 16:
        try {
            e: {
                d: {
                    try {
                        ji_FilterOutputStream_close($dos);
                        if ($rt_suspending()) {
                            break main;
                        }
                        break d;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $t = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $etr = jl_System_err();
                    $chunkFile = nles_VFile_getPath($chunkFile);
                    $chunkNBT = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $rt_s(220)), $regionFileName), $rt_s(102)), $chunkFile);
                    otcic_JsConsolePrintStream_println($etr, jl_StringBuilder_toString($chunkNBT));
                    jl_Throwable_printStackTrace0($t);
                    break e;
                }
                $chunkX = $prog + $b.data.length | 0;
                if (($chunkX - $lastProgUpdate | 0) <= 25000)
                    $prog = $chunkX;
                else {
                    nles_IntegratedServer_updateStatusString($rt_s(210), $chunkX);
                    $prog = $chunkX;
                    $lastProgUpdate = $chunkX;
                }
            }
            while (true) {
                $k = $k + 1 | 0;
                if ($k >= $l)
                    break;
                $chunkFile = ju_ArrayList_get($fileList, $k);
                try {
                    $ptr = 12;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $etr = jl_System_err();
                $chunkFile = nles_VFile_getPath($chunkFile);
                $chunkNBT = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($chunkNBT, $rt_s(201)), $chunkFile);
                otcic_JsConsolePrintStream_println($etr, jl_StringBuilder_toString($chunkNBT));
                jl_Throwable_printStackTrace0($t);
            }
            f: {
                if (ju_HashMap_isEmpty($regionFiles))
                    otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(217));
                else {
                    $chunkFile = ju_HashMap$HashMapEntrySet_iterator(ju_HashMap_entrySet($regionFiles));
                    while (true) {
                        if (!ju_HashMap$AbstractMapIterator_hasNext($chunkFile))
                            break f;
                        $etr = ju_HashMap$EntryIterator_next($chunkFile);
                        $chunkNBT = ju_MapEntry_getKey($etr);
                        $chunkLevel = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($chunkLevel, $regionFolder), $chunkNBT);
                        juz_ZipOutputStream_putNextEntry($zos, juz_ZipEntry__init_0(jl_StringBuilder_toString($chunkLevel)));
                        ji_OutputStream_write($zos, nles_RandomAccessMemoryFile_getByteArray(nms_RegionFile_getFile(ju_MapEntry_getValue($etr))));
                    }
                }
            }
            $i = $i + 1 | 0;
            if ($i >= 3) {
                $ptr = 6;
                continue main;
            }
            $chunkFile = nles_VFile__init_($rt_wrapArray(jl_Object, [$worldFolder, var$15[$i]]));
            $ptr = 8;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $folderName = $$je;
            } else {
                throw $$e;
            }
        }
        try {
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $bao = $$je;
            } else {
                throw $$e;
            }
        }
        if ($folderName.$suppressionEnabled) {
            $b = $folderName.$suppressed;
            $dstFolderNames = $b.data;
            $l = $dstFolderNames.length;
            $k = $l + 1 | 0;
            $zos = $b.constructor;
            if ($zos === null)
                $chunkFile = null;
            else {
                $chunkFile = $zos.classObject;
                if ($chunkFile === null) {
                    $chunkFile = new jl_Class;
                    $chunkFile.$platformClass = $zos;
                    $zos.classObject = $chunkFile;
                }
            }
            $chunkFile = jl_Class_getComponentType($chunkFile);
            if ($chunkFile === null) {
                $folderName = new jl_NullPointerException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($chunkFile === $rt_cls($rt_voidcls)) {
                $folderName = new jl_IllegalArgumentException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            if ($k < 0) {
                $folderName = new jl_NegativeArraySizeException;
                $folderName.$suppressionEnabled = 1;
                $folderName.$writableStackTrace = 1;
                $rt_throw($folderName);
            }
            $etr = jlr_Array_newInstanceImpl($chunkFile.$platformClass, $k);
            if ($k < $l)
                $l = $k;
            $k = 0;
            while ($k < $l) {
                $etr.data[$k] = $dstFolderNames[$k];
                $k = $k + 1 | 0;
            }
            $b = $etr;
            $dstFolderNames = $b.data;
            $folderName.$suppressed = $b;
            $dstFolderNames[$dstFolderNames.length - 1 | 0] = $bao;
        }
        $rt_throw($folderName);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($folderName, $bao, $zos, $chunkFile, $etr, $worldFolder, $vf, $lastProgUpdate, $prog, $b, $dstFolderNames, $l, $k, $fileList, var$15, $srcFolderNames, $i, var$18, $dataFile, $chunkNBT, $regionFolder, $regionFiles, $t, $chunkLevel, $chunkX, $chunkZ, var$27, var$28, $regionFileName, $rf, $dos, $ptr);
},
nles_WorldConverterMCA_inputStreamToBytesNoClose = $is => {
    let $os, $buf, var$4, var$5, var$6, var$7, var$8;
    $os = new ji_ByteArrayOutputStream;
    $os.$buf = $rt_createByteArray(1024);
    $buf = $rt_createByteArray(1024);
    var$4 = $buf.data.length;
    while (true) {
        var$5 = juz_ZipInputStream_read($is, $buf, 0, var$4);
        if (var$5 == (-1))
            break;
        ji_ByteArrayOutputStream_write0($os, $buf, 0, var$5);
    }
    $buf = $os.$buf.data;
    var$6 = $os.$count0;
    var$7 = $rt_createByteArray(var$6);
    var$4 = $buf.length;
    if (var$6 < var$4)
        var$4 = var$6;
    var$8 = var$7.data;
    var$6 = 0;
    while (var$6 < var$4) {
        var$8[var$6] = $buf[var$6];
        var$6 = var$6 + 1 | 0;
    }
    return var$7;
};
function nlesi_IPCPacket09RequestResponse() {
    jl_Object.call(this);
    this.$response = null;
}
let nlesi_IPCPacket09RequestResponse__init_0 = $this => {
    return;
},
nlesi_IPCPacket09RequestResponse__init_1 = () => {
    let var_0 = new nlesi_IPCPacket09RequestResponse();
    nlesi_IPCPacket09RequestResponse__init_0(var_0);
    return var_0;
},
nlesi_IPCPacket09RequestResponse__init_ = ($this, $dat) => {
    $this.$response = $dat;
},
nlesi_IPCPacket09RequestResponse__init_2 = var_0 => {
    let var_1 = new nlesi_IPCPacket09RequestResponse();
    nlesi_IPCPacket09RequestResponse__init_(var_1, var_0);
    return var_1;
},
nlesi_IPCPacket09RequestResponse_deserialize = ($this, $bin) => {
    let var$2, var$3;
    var$2 = $rt_createByteArray(ji_DataInputStream_readInt($bin));
    var$3 = var$2.data;
    $this.$response = var$2;
    ji_DataInputStream_readFully($bin, var$2, 0, var$3.length);
},
nlesi_IPCPacket09RequestResponse_serialize = ($this, $bin) => {
    let var$2, var$3;
    ji_DataOutputStream_writeInt($bin, $this.$response.data.length);
    var$2 = $this.$response;
    var$3 = var$2.data.length;
    $bin.$out0.$write1(var$2, 0, var$3);
    $bin.$written = $bin.$written + var$3 | 0;
},
nlesi_IPCPacket09RequestResponse_id = $this => {
    return 9;
},
nlesi_IPCPacket09RequestResponse_size = $this => {
    return 4 + $this.$response.data.length | 0;
};
function jl_Enum() {
    let a = this; jl_Object.call(a);
    a.$name0 = null;
    a.$ordinal = 0;
}
let jl_Enum_toString = $this => {
    return $this.$name0;
},
jl_Enum_equals = ($this, $other) => {
    return $this !== $other ? 0 : 1;
},
jl_Enum_hashCode = $this => {
    let var$1;
    var$1 = $this;
    if (!var$1.$id$)
        var$1.$id$ = $rt_nextId();
    return $this.$id$;
},
jl_Enum_valueOf = ($enumType, $name) => {
    let $constants, var$4, var$5, $constant, var$7, var$8, var$9, var$10, var$11, var$12;
    if (!($enumType.$platformClass.$meta.enum ? 1 : 0))
        $constants = null;
    else {
        $enumType.$platformClass.$clinit();
        $constants = (otp_Platform_getEnumConstants($enumType.$platformClass)).$clone0();
    }
    if ($constants === null) {
        $enumType = new jl_IllegalArgumentException;
        $enumType.$suppressionEnabled = 1;
        $enumType.$writableStackTrace = 1;
        $enumType.$message = $rt_s(221);
        $rt_throw($enumType);
    }
    $constants = $constants.data;
    var$4 = $constants.length;
    var$5 = 0;
    while (true) {
        if (var$5 >= var$4) {
            $constant = new jl_IllegalArgumentException;
            var$7 = new jl_StringBuilder;
            var$7.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(222));
            var$8 = var$7.$length0;
            var$9 = (!($enumType.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !($enumType.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
            if ($enumType.$name1 === null)
                $enumType.$name1 = $rt_str($enumType.$platformClass.$meta.name);
            var$10 = $enumType.$name1;
            $enumType = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($enumType, 16);
            jl_StringBuilder_insert1($enumType, $enumType.$length0, var$9);
            jl_StringBuilder_insert1($enumType, $enumType.$length0, var$10);
            jl_AbstractStringBuilder_insert(var$7, var$8, jl_String__init_2($enumType.$buffer, 0, $enumType.$length0));
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(223));
            var$4 = var$7.$length0;
            if ($name === null)
                $name = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$7, var$4, $name);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(224));
            $enumType = new jl_String;
            $constants = var$7.$buffer;
            var$11 = $constants.data;
            var$5 = var$7.$length0;
            var$8 = var$11.length;
            if (var$5 >= 0 && var$5 <= (var$8 - 0 | 0)) {
                $enumType.$nativeString = $rt_charArrayToString($constants.data, 0, var$5);
                $constant.$suppressionEnabled = 1;
                $constant.$writableStackTrace = 1;
                $constant.$message = $enumType;
                $rt_throw($constant);
            }
            $enumType = new jl_IndexOutOfBoundsException;
            $enumType.$suppressionEnabled = 1;
            $enumType.$writableStackTrace = 1;
            $rt_throw($enumType);
        }
        $constant = $constants[var$5];
        var$12 = $constant.$name0;
        if (var$12 === $name)
            var$8 = 1;
        else if (!($name instanceof jl_String))
            var$8 = 0;
        else {
            var$10 = $name;
            var$8 = var$12.$nativeString !== var$10.$nativeString ? 0 : 1;
        }
        if (var$8)
            break;
        var$5 = var$5 + 1 | 0;
    }
    return $constant;
},
jl_Enum_compareTo = ($this, var$1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$1 = var$1;
    var$2 = var$1.constructor;
    if (var$2 !== null) {
        var$3 = var$2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$2;
            var$2.classObject = var$3;
        }
    } else
        var$3 = null;
    var$2 = var$3.$platformClass.$meta.superclass;
    if (var$2 !== null) {
        var$4 = var$2.classObject;
        if (var$4 === null) {
            var$4 = new jl_Class;
            var$4.$platformClass = var$2;
            var$2.classObject = var$4;
        }
    } else
        var$4 = null;
    if (!(var$4 !== $rt_cls(jl_Enum) ? 0 : 1)) {
        var$2 = var$3.$platformClass.$meta.superclass;
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = var$2.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$2;
                var$2.classObject = var$3;
            }
        }
    }
    var$2 = $this.constructor;
    if (var$2 !== null) {
        var$4 = var$2.classObject;
        if (var$4 === null) {
            var$4 = new jl_Class;
            var$4.$platformClass = var$2;
            var$2.classObject = var$4;
        }
    } else
        var$4 = null;
    var$2 = var$4.$platformClass.$meta.superclass;
    if (var$2 === null)
        var$5 = null;
    else {
        var$5 = var$2.classObject;
        if (var$5 === null) {
            var$5 = new jl_Class;
            var$5.$platformClass = var$2;
            var$2.classObject = var$5;
        }
    }
    if (!(var$5 !== $rt_cls(jl_Enum) ? 0 : 1)) {
        var$2 = var$4.$platformClass.$meta.superclass;
        if (var$2 === null)
            var$4 = null;
        else {
            var$4 = var$2.classObject;
            if (var$4 === null) {
                var$4 = new jl_Class;
                var$4.$platformClass = var$2;
                var$2.classObject = var$4;
            }
        }
    }
    if (var$3 === var$4)
        return $rt_compare($this.$ordinal, var$1.$ordinal);
    var$2 = new jl_IllegalArgumentException;
    var$4 = $this.constructor;
    if (var$4 === null)
        var$5 = null;
    else {
        var$5 = var$4.classObject;
        if (var$5 === null) {
            var$5 = new jl_Class;
            var$5.$platformClass = var$4;
            var$4.classObject = var$5;
        }
    }
    var$4 = var$5.$platformClass.$meta.superclass;
    if (var$4 === null)
        var$6 = null;
    else {
        var$6 = var$4.classObject;
        if (var$6 === null) {
            var$6 = new jl_Class;
            var$6.$platformClass = var$4;
            var$4.classObject = var$6;
        }
    }
    if (!(var$6 !== $rt_cls(jl_Enum) ? 0 : 1)) {
        var$4 = var$5.$platformClass.$meta.superclass;
        if (var$4 === null)
            var$5 = null;
        else {
            var$5 = var$4.classObject;
            if (var$5 === null) {
                var$5 = new jl_Class;
                var$5.$platformClass = var$4;
                var$4.classObject = var$5;
            }
        }
    }
    var$1 = var$1.constructor;
    if (var$1 === null)
        var$7 = null;
    else {
        var$7 = var$1.classObject;
        if (var$7 === null) {
            var$7 = new jl_Class;
            var$7.$platformClass = var$1;
            var$1.classObject = var$7;
        }
    }
    var$6 = var$7.$platformClass.$meta.superclass;
    if (var$6 === null)
        var$3 = null;
    else {
        var$3 = var$6.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$6;
            var$6.classObject = var$3;
        }
    }
    if (!(var$3 !== $rt_cls(jl_Enum) ? 0 : 1)) {
        var$1 = var$7.$platformClass.$meta.superclass;
        if (var$1 === null)
            var$7 = null;
        else {
            var$7 = var$1.classObject;
            if (var$7 === null) {
                var$7 = new jl_Class;
                var$7.$platformClass = var$1;
                var$1.classObject = var$7;
            }
        }
    }
    var$6 = new jl_StringBuilder;
    var$6.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(225));
    var$8 = var$6.$length0;
    if (var$5 === null)
        var$1 = $rt_s(1);
    else {
        var$1 = (!(var$5.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !otp_Platform_isPrimitive(var$5.$platformClass) ? $rt_s(100) : $rt_s(3);
        if (var$5.$name1 === null)
            var$5.$name1 = otp_Platform_getName(var$5.$platformClass);
        var$5 = var$5.$name1;
        var$4 = new jl_StringBuilder;
        jl_AbstractStringBuilder__init_(var$4);
        jl_AbstractStringBuilder_append1(var$4, var$1);
        jl_AbstractStringBuilder_append1(var$4, var$5);
        var$1 = jl_AbstractStringBuilder_toString(var$4);
    }
    jl_AbstractStringBuilder_insert(var$6, var$8, var$1);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(226));
    var$9 = var$6.$length0;
    if (var$7 === null)
        var$1 = $rt_s(1);
    else {
        var$1 = (!(var$7.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !otp_Platform_isPrimitive(var$7.$platformClass) ? $rt_s(100) : $rt_s(3);
        if (var$7.$name1 === null)
            var$7.$name1 = otp_Platform_getName(var$7.$platformClass);
        var$5 = var$7.$name1;
        var$4 = new jl_StringBuilder;
        jl_AbstractStringBuilder__init_(var$4);
        jl_AbstractStringBuilder_append1(var$4, var$1);
        jl_AbstractStringBuilder_append1(var$4, var$5);
        var$1 = jl_AbstractStringBuilder_toString(var$4);
    }
    jl_AbstractStringBuilder_insert(var$6, var$9, var$1);
    var$1 = new jl_String;
    var$10 = var$6.$buffer;
    var$11 = var$10.data;
    var$12 = var$6.$length0;
    var$8 = var$11.length;
    if (var$12 >= 0 && var$12 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$10.data, 0, var$12);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$1;
        $rt_throw(var$2);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
};
function nms_EnumGameType() {
    let a = this; jl_Enum.call(a);
    a.$id3 = 0;
    a.$name6 = null;
}
let nms_EnumGameType_NOT_SET = null,
nms_EnumGameType_SURVIVAL = null,
nms_EnumGameType_CREATIVE = null,
nms_EnumGameType_ADVENTURE = null,
nms_EnumGameType_$VALUES = null,
nms_EnumGameType_values = () => {
    return nms_EnumGameType_$VALUES.$clone0();
},
nms_EnumGameType_configurePlayerCapabilities = ($this, $par1PlayerCapabilities) => {
    if ($this === nms_EnumGameType_CREATIVE) {
        $par1PlayerCapabilities.$allowFlying = 1;
        $par1PlayerCapabilities.$isCreativeMode = 1;
        $par1PlayerCapabilities.$disableDamage = 1;
    } else {
        $par1PlayerCapabilities.$allowFlying = 0;
        $par1PlayerCapabilities.$isCreativeMode = 0;
        $par1PlayerCapabilities.$disableDamage = 0;
        $par1PlayerCapabilities.$isFlying = 0;
    }
    $par1PlayerCapabilities.$allowEdit = ($this !== nms_EnumGameType_ADVENTURE ? 0 : 1) ? 0 : 1;
},
nms_EnumGameType__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new nms_EnumGameType;
    var$1.$name0 = $rt_s(227);
    var$1.$ordinal = 0;
    var$1.$id3 = (-1);
    var$1.$name6 = $rt_s(3);
    nms_EnumGameType_NOT_SET = var$1;
    var$2 = new nms_EnumGameType;
    var$2.$name0 = $rt_s(228);
    var$2.$ordinal = 1;
    var$2.$id3 = 0;
    var$2.$name6 = $rt_s(229);
    nms_EnumGameType_SURVIVAL = var$2;
    var$3 = new nms_EnumGameType;
    var$3.$name0 = $rt_s(230);
    var$3.$ordinal = 2;
    var$3.$id3 = 1;
    var$3.$name6 = $rt_s(231);
    nms_EnumGameType_CREATIVE = var$3;
    var$4 = new nms_EnumGameType;
    var$4.$name0 = $rt_s(232);
    var$4.$ordinal = 3;
    var$4.$id3 = 2;
    var$4.$name6 = $rt_s(233);
    nms_EnumGameType_ADVENTURE = var$4;
    nms_EnumGameType_$VALUES = $rt_wrapArray(nms_EnumGameType, [var$1, var$2, var$3, var$4]);
};
function nms_WorldType() {
    let a = this; jl_Object.call(a);
    a.$worldTypeId = 0;
    a.$worldType = null;
    a.$generatorVersion = 0;
    a.$canBeCreated = 0;
    a.$isWorldTypeVersioned = 0;
}
let nms_WorldType_worldTypes = null,
nms_WorldType_DEFAULT = null,
nms_WorldType_FLAT = null,
nms_WorldType_LARGE_BIOMES = null,
nms_WorldType_DEFAULT_1_1 = null,
nms_WorldType_getWorldTypeForGeneratorVersion = ($this, $par1) => {
    if ($this === nms_WorldType_DEFAULT && !$par1)
        $this = nms_WorldType_DEFAULT_1_1;
    return $this;
},
nms_WorldType_parseWorldType = $par0Str => {
    let $var1, var$3;
    $var1 = 0;
    while (true) {
        var$3 = nms_WorldType_worldTypes.data;
        if ($var1 >= var$3.length)
            break;
        if (var$3[$var1] !== null && jl_String_equalsIgnoreCase(var$3[$var1].$worldType, $par0Str))
            return nms_WorldType_worldTypes.data[$var1];
        $var1 = $var1 + 1 | 0;
    }
    return null;
},
nms_WorldType__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(nms_WorldType, 16);
    var$2 = var$1.data;
    nms_WorldType_worldTypes = var$1;
    var$3 = new nms_WorldType;
    var$3.$worldType = $rt_s(234);
    var$3.$generatorVersion = 1;
    var$3.$canBeCreated = 1;
    var$3.$worldTypeId = 0;
    var$2[0] = var$3;
    var$3.$isWorldTypeVersioned = 1;
    nms_WorldType_DEFAULT = var$3;
    var$4 = new nms_WorldType;
    var$4.$worldType = $rt_s(235);
    var$4.$generatorVersion = 0;
    var$4.$canBeCreated = 1;
    var$4.$worldTypeId = 1;
    var$2[1] = var$4;
    nms_WorldType_FLAT = var$4;
    var$4 = new nms_WorldType;
    var$4.$worldType = $rt_s(236);
    var$4.$generatorVersion = 0;
    var$4.$canBeCreated = 1;
    var$4.$worldTypeId = 2;
    var$2[2] = var$4;
    nms_WorldType_LARGE_BIOMES = var$4;
    var$4 = new nms_WorldType;
    var$4.$worldType = $rt_s(237);
    var$4.$generatorVersion = 0;
    var$4.$canBeCreated = 1;
    var$4.$worldTypeId = 8;
    var$2[8] = var$4;
    var$4.$canBeCreated = 0;
    nms_WorldType_DEFAULT_1_1 = var$4;
},
nms_ICommandSender = $rt_classWithoutFields(0),
jl_Runnable = $rt_classWithoutFields(0);
function nms_MinecraftServer() {
    let a = this; jl_Object.call(a);
    a.$playersOnline = null;
    a.$commandManager = null;
    a.$worldServers = null;
    a.$serverConfigManager = null;
    a.$serverRunning = 0;
    a.$serverStopped = 0;
    a.$tickCounter0 = 0;
    a.$currentTask = null;
    a.$percentDone = 0;
    a.$canSpawnAnimals = 0;
    a.$canSpawnNPCs = 0;
    a.$pvpEnabled = 0;
    a.$allowFlight = 0;
    a.$motd = null;
    a.$lastSentPacketID = Long_ZERO;
    a.$lastSentPacketSize = Long_ZERO;
    a.$lastReceivedID = Long_ZERO;
    a.$lastReceivedSize = Long_ZERO;
    a.$sentPacketCountArray = null;
    a.$sentPacketSizeArray = null;
    a.$receivedPacketCountArray = null;
    a.$receivedPacketSizeArray = null;
    a.$tickTimeArray = null;
    a.$timeOfLastDimensionTick = null;
    a.$serverOwner = null;
    a.$folderName = null;
    a.$worldIsBeingDeleted = 0;
    a.$texturePack = null;
    a.$serverIsRunning = 0;
    a.$timeOfLastWarning = Long_ZERO;
    a.$userMessage = null;
    a.$field_104057_T = 0;
}
let nms_MinecraftServer_mcServer = null,
nms_MinecraftServer__init_ = ($this, $folder) => {
    let var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$playersOnline = var$2;
    $this.$serverRunning = 1;
    $this.$serverStopped = 0;
    $this.$tickCounter0 = 0;
    $this.$sentPacketCountArray = $rt_createLongArray(100);
    $this.$sentPacketSizeArray = $rt_createLongArray(100);
    $this.$receivedPacketCountArray = $rt_createLongArray(100);
    $this.$receivedPacketSizeArray = $rt_createLongArray(100);
    $this.$tickTimeArray = $rt_createLongArray(100);
    $this.$texturePack = $rt_s(3);
    $this.$serverIsRunning = 0;
    $this.$field_104057_T = 0;
    nms_MinecraftServer_mcServer = $this;
    $this.$folderName = $folder;
    $this.$commandManager = nms_ServerCommandManager__init_0();
    nms_DispenserBehaviors_registerDispenserBehaviours();
},
nms_MinecraftServer_loadAllWorlds = ($this, $par1Str, $par3, $var8) => {
    let $var9, var$5, var$6, var$7, var$8, var$9, $var7, $var10, var$12, $var11, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var11 = $thread.pop();var$12 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par3 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var9 = new nlesi_IPCPacket0DProgressUpdate;
        $var9.$updateMessage = $rt_s(238);
        $var9.$updateProgress = 0.0;
        nles_IntegratedServer_sendIPCPacket($var9);
        var$5 = nles_IntegratedServer_logger.$logger;
        $var9 = jul_Level_INFO;
        var$6 = new jul_LogRecord;
        var$6.$level = $var9;
        var$6.$message0 = $rt_s(238);
        var$6.$millis = jl_System_currentTimeMillis();
        var$7 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$7, Long_fromInt(1));
        var$6.$sequenceNumber = var$7;
        var$6.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$5, var$6);
        $this.$userMessage = $rt_s(238);
        var$8 = $rt_createArray(nms_WorldServer, 3);
        var$9 = var$8.data;
        $this.$worldServers = var$8;
        $this.$timeOfLastDimensionTick = $rt_createLongMultiArray([100, var$9.length]);
        $var7 = new nles_VFSSaveHandler;
        $var9 = new nles_VFile;
        $var9.$path = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), $par1Str]));
        $var7.$chunkLoaders = ju_HashMap__init_();
        $var7.$worldDirectory = $var9;
        $ptr = 1;
    case 1:
        $tmp = nles_VFSSaveHandler_loadWorldInfo($var7);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 !== null) {
            $var8 = new nms_WorldSettings;
            $par3 = $var9.$randomSeed;
            var$6 = $var9.$theGameType;
            $var10 = $var9.$mapFeaturesEnabled;
            var$12 = $var9.$hardcore;
            var$5 = $var9.$terrainType;
            $var8.$field_82751_h = $rt_s(3);
            $var8.$seed1 = $par3;
            $var8.$theGameType0 = var$6;
            $var8.$mapFeaturesEnabled1 = $var10;
            $var8.$hardcoreEnabled = var$12;
            $var8.$terrainType2 = var$5;
        } else if ($var8 === null) {
            $var8 = new jl_IllegalArgumentException;
            $var7 = new jl_StringBuilder;
            $var7.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var7, $var7.$length0, $rt_s(239));
            var$12 = $var7.$length0;
            if ($par1Str === null)
                $par1Str = $rt_s(1);
            jl_AbstractStringBuilder_insert($var7, var$12, $par1Str);
            jl_AbstractStringBuilder_insert($var7, $var7.$length0, $rt_s(240));
            $par1Str = new jl_String;
            var$8 = $var7.$buffer;
            var$9 = var$8.data;
            $var10 = $var7.$length0;
            $var11 = var$9.length;
            if ($var10 >= 0 && $var10 <= ($var11 - 0 | 0)) {
                $par1Str.$nativeString = $rt_charArrayToString(var$8.data, 0, $var10);
                $var8.$suppressionEnabled = 1;
                $var8.$writableStackTrace = 1;
                $var8.$message = $par1Str;
                $rt_throw($var8);
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $var10 = 0;
        var$8 = $this.$worldServers.data;
        if ($var10 >= var$8.length) {
            nms_MinecraftServer_setDifficultyForAllWorlds($this, $this.$difficulty0);
            $var8 = $var8.$theGameType0;
            var$12 = 0;
            while (var$12 < $this.$worldServers.data.length) {
                nms_MinecraftServer_mcServer.$worldServers.data[var$12].$worldInfo.$theGameType = $var8;
                var$12 = var$12 + 1 | 0;
            }
            $par1Str = new jl_StringBuilder;
            $par1Str.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, $rt_s(241));
            jl_AbstractStringBuilder_insert0($par1Str, $par1Str.$length0, 0, 10);
            $var8 = new jl_String;
            var$8 = $par1Str.$buffer;
            var$9 = var$8.data;
            $var10 = $par1Str.$length0;
            $var11 = var$9.length;
            if ($var10 >= 0 && $var10 <= ($var11 - 0 | 0)) {
                $var8.$nativeString = $rt_charArrayToString(var$8.data, 0, $var10);
                $par1Str = new nlesi_IPCPacket0DProgressUpdate;
                $par1Str.$updateMessage = $var8;
                $par1Str.$updateProgress = 0.0;
                nles_IntegratedServer_sendIPCPacket($par1Str);
                $var7 = nles_IntegratedServer_logger.$logger;
                $par1Str = jul_Level_INFO;
                $var9 = new jul_LogRecord;
                $var9.$level = $par1Str;
                $var9.$message0 = $var8;
                $var9.$millis = jl_System_currentTimeMillis();
                var$7 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$7, Long_fromInt(1));
                $var9.$sequenceNumber = var$7;
                $var9.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log($var7, $var9);
                $this.$userMessage = $var8;
                $this.$currentTask = null;
                $this.$percentDone = 0;
                return;
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $var11 = 0;
        if ($var10 == 1)
            $var11 = (-1);
        if ($var10 == 2)
            $var11 = 1;
        if (!$var10) {
            $var9 = new nms_WorldServer;
            var$5 = nles_IntegratedServer_logger;
            $ptr = 3;
            continue main;
        }
        $var9 = new nms_WorldServerMulti;
        var$5 = var$8[0];
        var$6 = nles_IntegratedServer_logger;
        $ptr = 2;
    case 2:
        nms_WorldServer__init_($var9, $this, $var7, $par1Str, $var11, $var8, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var9.$mapStorage = var$5.$mapStorage;
        $var9.$worldScoreboard = var$5.$worldScoreboard;
        var$6 = new nms_DerivedWorldInfo;
        var$14 = var$5.$worldInfo;
        var$6.$terrainType = nms_WorldType_DEFAULT;
        var$6.$generatorOptions = $rt_s(3);
        var$6.$theGameRules0 = nms_GameRules__init_();
        var$6.$theWorldInfo = var$14;
        $var9.$worldInfo = var$6;
        var$8[$var10] = $var9;
        var$8 = $this.$worldServers.data;
        $var9 = var$8[$var10];
        var$5 = new nms_WorldManager;
        var$6 = var$8[$var10];
        var$5.$mcServer = $this;
        var$5.$theWorldServer = var$6;
        $var9 = $var9.$worldAccesses;
        ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
        var$8 = $var9.$array.data;
        $var11 = $var9.$size0;
        $var9.$size0 = $var11 + 1 | 0;
        var$8[$var11] = var$5;
        $var9.$modCount = $var9.$modCount + 1 | 0;
        var$8 = $this.$worldServers.data;
        var$8[$var10].$worldInfo.$theGameType = $this.$gamemode;
        $this.$serverConfigManager.$playerNBTManagerObj = var$8[0].$saveHandler0;
        $var10 = $var10 + 1 | 0;
        var$8 = $this.$worldServers.data;
        if ($var10 >= var$8.length) {
            nms_MinecraftServer_setDifficultyForAllWorlds($this, $this.$difficulty0);
            $var8 = $var8.$theGameType0;
            var$12 = 0;
            while (var$12 < $this.$worldServers.data.length) {
                nms_MinecraftServer_mcServer.$worldServers.data[var$12].$worldInfo.$theGameType = $var8;
                var$12 = var$12 + 1 | 0;
            }
            $par1Str = new jl_StringBuilder;
            $par1Str.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, $rt_s(241));
            jl_AbstractStringBuilder_insert0($par1Str, $par1Str.$length0, 0, 10);
            $var8 = new jl_String;
            var$8 = $par1Str.$buffer;
            var$9 = var$8.data;
            $var10 = $par1Str.$length0;
            $var11 = var$9.length;
            if ($var10 >= 0 && $var10 <= ($var11 - 0 | 0)) {
                $var8.$nativeString = $rt_charArrayToString(var$8.data, 0, $var10);
                $par1Str = new nlesi_IPCPacket0DProgressUpdate;
                $par1Str.$updateMessage = $var8;
                $par1Str.$updateProgress = 0.0;
                nles_IntegratedServer_sendIPCPacket($par1Str);
                $var7 = nles_IntegratedServer_logger.$logger;
                $par1Str = jul_Level_INFO;
                $var9 = new jul_LogRecord;
                $var9.$level = $par1Str;
                $var9.$message0 = $var8;
                $var9.$millis = jl_System_currentTimeMillis();
                var$7 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$7, Long_fromInt(1));
                $var9.$sequenceNumber = var$7;
                $var9.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log($var7, $var9);
                $this.$userMessage = $var8;
                $this.$currentTask = null;
                $this.$percentDone = 0;
                return;
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $var11 = 0;
        if ($var10 == 1)
            $var11 = (-1);
        if ($var10 == 2)
            $var11 = 1;
        if (!$var10) {
            $var9 = new nms_WorldServer;
            var$5 = nles_IntegratedServer_logger;
            $ptr = 3;
            continue main;
        }
        $var9 = new nms_WorldServerMulti;
        var$5 = var$8[0];
        var$6 = nles_IntegratedServer_logger;
        continue main;
    case 3:
        nms_WorldServer__init_($var9, $this, $var7, $par1Str, $var11, $var8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$8[$var10] = $var9;
        var$8 = $this.$worldServers.data;
        $var9 = var$8[$var10];
        var$5 = new nms_WorldManager;
        var$6 = var$8[$var10];
        var$5.$mcServer = $this;
        var$5.$theWorldServer = var$6;
        $var9 = $var9.$worldAccesses;
        ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
        var$8 = $var9.$array.data;
        $var11 = $var9.$size0;
        $var9.$size0 = $var11 + 1 | 0;
        var$8[$var11] = var$5;
        $var9.$modCount = $var9.$modCount + 1 | 0;
        var$8 = $this.$worldServers.data;
        var$8[$var10].$worldInfo.$theGameType = $this.$gamemode;
        $this.$serverConfigManager.$playerNBTManagerObj = var$8[0].$saveHandler0;
        $var10 = $var10 + 1 | 0;
        var$8 = $this.$worldServers.data;
        if ($var10 >= var$8.length) {
            nms_MinecraftServer_setDifficultyForAllWorlds($this, $this.$difficulty0);
            $var8 = $var8.$theGameType0;
            var$12 = 0;
            while (var$12 < $this.$worldServers.data.length) {
                nms_MinecraftServer_mcServer.$worldServers.data[var$12].$worldInfo.$theGameType = $var8;
                var$12 = var$12 + 1 | 0;
            }
            $par1Str = new jl_StringBuilder;
            $par1Str.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, $rt_s(241));
            jl_AbstractStringBuilder_insert0($par1Str, $par1Str.$length0, 0, 10);
            $var8 = new jl_String;
            var$8 = $par1Str.$buffer;
            var$9 = var$8.data;
            $var10 = $par1Str.$length0;
            $var11 = var$9.length;
            if ($var10 >= 0 && $var10 <= ($var11 - 0 | 0)) {
                $var8.$nativeString = $rt_charArrayToString(var$8.data, 0, $var10);
                $par1Str = new nlesi_IPCPacket0DProgressUpdate;
                $par1Str.$updateMessage = $var8;
                $par1Str.$updateProgress = 0.0;
                nles_IntegratedServer_sendIPCPacket($par1Str);
                $var7 = nles_IntegratedServer_logger.$logger;
                $par1Str = jul_Level_INFO;
                $var9 = new jul_LogRecord;
                $var9.$level = $par1Str;
                $var9.$message0 = $var8;
                $var9.$millis = jl_System_currentTimeMillis();
                var$7 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$7, Long_fromInt(1));
                $var9.$sequenceNumber = var$7;
                $var9.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log($var7, $var9);
                $this.$userMessage = $var8;
                $this.$currentTask = null;
                $this.$percentDone = 0;
                return;
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $var11 = 0;
        if ($var10 == 1)
            $var11 = (-1);
        if ($var10 == 2)
            $var11 = 1;
        if (!$var10) {
            $var9 = new nms_WorldServer;
            var$5 = nles_IntegratedServer_logger;
            continue main;
        }
        $var9 = new nms_WorldServerMulti;
        var$5 = var$8[0];
        var$6 = nles_IntegratedServer_logger;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par3, $var8, $var9, var$5, var$6, var$7, var$8, var$9, $var7, $var10, var$12, $var11, var$14, $ptr);
},
nms_MinecraftServer_saveAllWorlds = ($this, $par1) => {
    let $var2, $var3, $var4, var$5, var$6, var$7, $var5, var$9, $var7, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                if (!$this.$worldIsBeingDeleted) {
                    $var2 = $this.$worldServers.data;
                    $var3 = $var2.length;
                    $var4 = 0;
                    var$5 = null;
                    var$6 = $rt_s(242);
                    var$7 = $rt_s(243);
                    while (true) {
                        if ($var4 >= $var3)
                            break b;
                        $var5 = $var2[$var4];
                        if ($var5 !== null) {
                            var$9 = $var5.$worldInfo.$getWorldName();
                            $var7 = $var5.$provider.$getDimensionName();
                            var$11 = new jl_StringBuilder;
                            var$11.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert(var$11, var$11.$length0, var$6);
                            $par1 = var$11.$length0;
                            if (var$9 === null)
                                var$9 = $rt_s(1);
                            jl_AbstractStringBuilder_insert(var$11, $par1, var$9);
                            jl_AbstractStringBuilder_insert(var$11, var$11.$length0, var$7);
                            $par1 = var$11.$length0;
                            if ($var7 === null)
                                $var7 = $rt_s(1);
                            jl_AbstractStringBuilder_insert(var$11, $par1, $var7);
                            var$12 = new jl_String;
                            var$13 = var$11.$buffer;
                            var$14 = var$13.data;
                            var$15 = var$11.$length0;
                            var$16 = var$14.length;
                            if (var$15 < 0)
                                break a;
                            if (var$15 > (var$16 - 0 | 0))
                                break a;
                            var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, var$15);
                            var$11 = new nlesi_IPCPacket0DProgressUpdate;
                            var$11.$updateMessage = var$12;
                            var$11.$updateProgress = 0.0;
                            nles_IntegratedServer_sendIPCPacket(var$11);
                            $var7 = nles_IntegratedServer_logger.$logger;
                            var$11 = jul_Level_INFO;
                            var$9 = new jul_LogRecord;
                            var$9.$level = var$11;
                            var$9.$message0 = var$12;
                            var$9.$millis = jl_System_currentTimeMillis();
                            var$17 = jul_LogRecord_sequenceNumberGenerator;
                            jul_LogRecord_sequenceNumberGenerator = Long_add(var$17, Long_fromInt(1));
                            var$9.$sequenceNumber = var$17;
                            var$9.$threadID = jl_Thread_currentThread.$id2;
                            jul_Logger_log($var7, var$9);
                            $this.$userMessage = var$12;
                            try {
                                $par1 = 1;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_MinecraftException) {
                                    $var7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            var$11 = nles_IntegratedServer_logger;
                            $var7 = $var7.$getMessage();
                            var$9 = var$11.$logger;
                            var$11 = jul_Level_WARNING;
                            var$12 = new jul_LogRecord;
                            var$12.$level = var$11;
                            var$12.$message0 = $var7;
                            var$12.$millis = jl_System_currentTimeMillis();
                            var$17 = jul_LogRecord_sequenceNumberGenerator;
                            jul_LogRecord_sequenceNumberGenerator = Long_add(var$17, Long_fromInt(1));
                            var$12.$sequenceNumber = var$17;
                            var$12.$threadID = jl_Thread_currentThread.$id2;
                            jul_Logger_log(var$9, var$12);
                        }
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            return;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    case 1:
        a: {
            try {
                nms_WorldServer_saveAllChunks($var5, $par1, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof nms_MinecraftException) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = nles_IntegratedServer_logger;
            $var7 = $var7.$getMessage();
            var$9 = var$11.$logger;
            var$11 = jul_Level_WARNING;
            var$12 = new jul_LogRecord;
            var$12.$level = var$11;
            var$12.$message0 = $var7;
            var$18 = jl_System_currentTimeMillis();
            var$12.$millis = var$18;
            var$17 = jul_LogRecord_sequenceNumberGenerator;
            var$18 = Long_fromInt(1);
            var$18 = Long_add(var$17, var$18);
            jul_LogRecord_sequenceNumberGenerator = var$18;
            var$12.$sequenceNumber = var$17;
            var$11 = jl_Thread_currentThread;
            var$18 = var$11.$id2;
            var$12.$threadID = var$18;
            jul_Logger_log(var$9, var$12);
        }
        c: {
            while (true) {
                $var4 = $var4 + 1 | 0;
                if ($var4 >= $var3)
                    break;
                $var5 = $var2[$var4];
                if ($var5 === null)
                    continue;
                var$9 = $var5.$worldInfo.$getWorldName();
                $var7 = $var5.$provider.$getDimensionName();
                var$11 = new jl_StringBuilder;
                var$11.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$11, var$11.$length0, var$6);
                $par1 = var$11.$length0;
                if (var$9 === null)
                    var$9 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$11, $par1, var$9);
                jl_AbstractStringBuilder_insert(var$11, var$11.$length0, var$7);
                $par1 = var$11.$length0;
                if ($var7 === null)
                    $var7 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$11, $par1, $var7);
                var$12 = new jl_String;
                var$13 = var$11.$buffer;
                var$14 = var$13.data;
                var$15 = var$11.$length0;
                var$16 = var$14.length;
                if (var$15 < 0)
                    break c;
                if (var$15 > (var$16 - 0 | 0))
                    break c;
                var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, var$15);
                var$11 = new nlesi_IPCPacket0DProgressUpdate;
                var$11.$updateMessage = var$12;
                var$11.$updateProgress = 0.0;
                nles_IntegratedServer_sendIPCPacket(var$11);
                $var7 = nles_IntegratedServer_logger.$logger;
                var$11 = jul_Level_INFO;
                var$9 = new jul_LogRecord;
                var$9.$level = var$11;
                var$9.$message0 = var$12;
                var$9.$millis = jl_System_currentTimeMillis();
                var$17 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$17, Long_fromInt(1));
                var$9.$sequenceNumber = var$17;
                var$9.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log($var7, var$9);
                $this.$userMessage = var$12;
                try {
                    $par1 = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof nms_MinecraftException) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$11 = nles_IntegratedServer_logger;
                $var7 = $var7.$getMessage();
                var$9 = var$11.$logger;
                var$11 = jul_Level_WARNING;
                var$12 = new jul_LogRecord;
                var$12.$level = var$11;
                var$12.$message0 = $var7;
                var$18 = jl_System_currentTimeMillis();
                var$12.$millis = var$18;
                var$17 = jul_LogRecord_sequenceNumberGenerator;
                var$18 = Long_fromInt(1);
                var$18 = Long_add(var$17, var$18);
                jul_LogRecord_sequenceNumberGenerator = var$18;
                var$12.$sequenceNumber = var$17;
                var$11 = jl_Thread_currentThread;
                var$18 = var$11.$id2;
                var$12.$threadID = var$18;
                jul_Logger_log(var$9, var$12);
            }
            return;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var2, $var3, $var4, var$5, var$6, var$7, $var5, var$9, $var7, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_MinecraftServer_stopServer = $this => {
    let var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldIsBeingDeleted)
            return;
        var$1 = new nlesi_IPCPacket0DProgressUpdate;
        var$1.$updateMessage = $rt_s(244);
        var$1.$updateProgress = 0.0;
        nles_IntegratedServer_sendIPCPacket(var$1);
        var$2 = nles_IntegratedServer_logger.$logger;
        var$1 = jul_Level_INFO;
        var$3 = new jul_LogRecord;
        var$3.$level = var$1;
        var$3.$message0 = $rt_s(244);
        var$3.$millis = jl_System_currentTimeMillis();
        var$4 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
        var$3.$sequenceNumber = var$4;
        var$3.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$2, var$3);
        $this.$userMessage = $rt_s(244);
        var$2 = $this.$listenThreadImpl;
        if (var$2 !== null) {
            var$2.$isListening = 0;
            var$5 = var$2.$channels;
            if (var$5.$cachedKeySet === null) {
                var$1 = new ju_HashMap$1;
                var$1.$this$0 = var$5;
                var$5.$cachedKeySet = var$1;
            }
            var$5 = var$5.$cachedKeySet;
            $var1 = var$5.$size();
            if ($var1 < 0) {
                var$5 = new jl_IllegalArgumentException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
            var$7 = $rt_createArray(jl_Object, $var1).data;
            var$5 = var$5.$iterator();
            $var1 = 0;
            var$8 = var$7.length;
            while ($var1 < var$8) {
                var$7[$var1] = var$5.$next();
                $var1 = $var1 + 1 | 0;
            }
            $var1 = 0;
            var$9 = $rt_compare($var1, var$8);
            if (var$9 < 0) {
                if ($var1 >= 0 && var$9 < 0) {
                    var$5 = var$7[$var1];
                    $ptr = 4;
                    continue main;
                }
                var$5 = new jl_IndexOutOfBoundsException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
        }
        if ($this.$serverConfigManager !== null) {
            var$2 = nles_IntegratedServer_logger.$logger;
            var$1 = jul_Level_INFO;
            var$3 = new jul_LogRecord;
            var$3.$level = var$1;
            var$3.$message0 = $rt_s(245);
            var$3.$millis = jl_System_currentTimeMillis();
            var$4 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
            var$3.$sequenceNumber = var$4;
            var$3.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$2, var$3);
            var$5 = $this.$serverConfigManager;
            $var1 = 0;
            var$1 = var$5.$playerEntityList;
            var$9 = $rt_compare($var1, var$1.$size0);
            if (var$9 < 0) {
                if ($var1 >= 0 && var$9 < 0) {
                    var$1 = var$1.$array.data[$var1];
                    var$3 = var$1.$username;
                    var$2 = var$5.$mcServer1.$serverOwner;
                    if (var$3 === var$2)
                        var$9 = 1;
                    else if (!(var$2 instanceof jl_String))
                        var$9 = 0;
                    else {
                        var$2 = var$2;
                        var$9 = var$3.$nativeString !== var$2.$nativeString ? 0 : 1;
                    }
                    if (var$9) {
                        var$2 = nms_NBTTagCompound__init_();
                        var$5.$hostPlayerNBT = var$2;
                        nms_Entity_writeToNBT(var$1, var$2);
                    }
                    var$2 = var$5.$playerNBTManagerObj;
                    $ptr = 3;
                    continue main;
                }
                var$5 = new jl_IndexOutOfBoundsException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
            var$5 = $this.$serverConfigManager;
            var$1 = var$5.$playerEntityList;
            var$9 = var$1.$size0;
            if (!(var$9 ? 0 : 1)) {
                if (0 >= var$9) {
                    var$5 = new jl_IndexOutOfBoundsException;
                    var$5.$suppressionEnabled = 1;
                    var$5.$writableStackTrace = 1;
                    $rt_throw(var$5);
                }
                var$1 = var$1.$array.data[0].$playerNetServerHandler;
                var$2 = $rt_s(246);
                $ptr = 2;
                continue main;
            }
        }
        var$1 = new nlesi_IPCPacket0DProgressUpdate;
        var$1.$updateMessage = $rt_s(247);
        var$1.$updateProgress = 0.0;
        nles_IntegratedServer_sendIPCPacket(var$1);
        var$2 = nles_IntegratedServer_logger.$logger;
        var$1 = jul_Level_INFO;
        var$3 = new jul_LogRecord;
        var$3.$level = var$1;
        var$3.$message0 = $rt_s(247);
        var$3.$millis = jl_System_currentTimeMillis();
        var$4 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
        var$3.$sequenceNumber = var$4;
        var$3.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$2, var$3);
        $this.$userMessage = $rt_s(247);
        $var1 = 0;
        $ptr = 1;
    case 1:
        nms_MinecraftServer_saveAllWorlds($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        while ($var1 < $this.$worldServers.data.length) {
            $var1 = $var1 + 1 | 0;
        }
        return;
    case 2:
        nms_NetServerHandler_kickPlayerFromServer(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = var$5.$playerEntityList;
        var$9 = var$1.$size0;
        if (!(var$9 ? 0 : 1)) {
            if (0 >= var$9) {
                var$5 = new jl_IndexOutOfBoundsException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
            var$1 = var$1.$array.data[0].$playerNetServerHandler;
            var$2 = $rt_s(246);
            continue main;
        }
        var$1 = new nlesi_IPCPacket0DProgressUpdate;
        var$1.$updateMessage = $rt_s(247);
        var$1.$updateProgress = 0.0;
        nles_IntegratedServer_sendIPCPacket(var$1);
        var$2 = nles_IntegratedServer_logger.$logger;
        var$1 = jul_Level_INFO;
        var$3 = new jul_LogRecord;
        var$3.$level = var$1;
        var$3.$message0 = $rt_s(247);
        var$3.$millis = jl_System_currentTimeMillis();
        var$4 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
        var$3.$sequenceNumber = var$4;
        var$3.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$2, var$3);
        $this.$userMessage = $rt_s(247);
        $var1 = 0;
        $ptr = 1;
        continue main;
    case 3:
        nles_VFSSaveHandler_writePlayerData(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        var$1 = var$5.$playerEntityList;
        var$9 = $rt_compare($var1, var$1.$size0);
        if (var$9 < 0) {
            if ($var1 >= 0 && var$9 < 0) {
                var$1 = var$1.$array.data[$var1];
                var$3 = var$1.$username;
                var$2 = var$5.$mcServer1.$serverOwner;
                if (var$3 === var$2)
                    var$9 = 1;
                else if (!(var$2 instanceof jl_String))
                    var$9 = 0;
                else {
                    var$2 = var$2;
                    var$9 = var$3.$nativeString !== var$2.$nativeString ? 0 : 1;
                }
                if (var$9) {
                    var$2 = nms_NBTTagCompound__init_();
                    var$5.$hostPlayerNBT = var$2;
                    nms_Entity_writeToNBT(var$1, var$2);
                }
                var$2 = var$5.$playerNBTManagerObj;
                continue main;
            }
            var$5 = new jl_IndexOutOfBoundsException;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            $rt_throw(var$5);
        }
        var$5 = $this.$serverConfigManager;
        var$1 = var$5.$playerEntityList;
        var$9 = var$1.$size0;
        if (!(var$9 ? 0 : 1)) {
            if (0 >= var$9) {
                var$5 = new jl_IndexOutOfBoundsException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
            var$1 = var$1.$array.data[0].$playerNetServerHandler;
            var$2 = $rt_s(246);
            $ptr = 2;
            continue main;
        }
        var$1 = new nlesi_IPCPacket0DProgressUpdate;
        var$1.$updateMessage = $rt_s(247);
        var$1.$updateProgress = 0.0;
        nles_IntegratedServer_sendIPCPacket(var$1);
        var$2 = nles_IntegratedServer_logger.$logger;
        var$1 = jul_Level_INFO;
        var$3 = new jul_LogRecord;
        var$3.$level = var$1;
        var$3.$message0 = $rt_s(247);
        var$3.$millis = jl_System_currentTimeMillis();
        var$4 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
        var$3.$sequenceNumber = var$4;
        var$3.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$2, var$3);
        $this.$userMessage = $rt_s(247);
        $var1 = 0;
        $ptr = 1;
        continue main;
    case 4:
        nles_WorkerListenThread_closeChannel(var$2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        var$9 = $rt_compare($var1, var$8);
        if (var$9 < 0) {
            if ($var1 >= 0 && var$9 < 0) {
                var$5 = var$7[$var1];
                continue main;
            }
            var$5 = new jl_IndexOutOfBoundsException;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            $rt_throw(var$5);
        }
        if ($this.$serverConfigManager !== null) {
            var$2 = nles_IntegratedServer_logger.$logger;
            var$1 = jul_Level_INFO;
            var$3 = new jul_LogRecord;
            var$3.$level = var$1;
            var$3.$message0 = $rt_s(245);
            var$3.$millis = jl_System_currentTimeMillis();
            var$4 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
            var$3.$sequenceNumber = var$4;
            var$3.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$2, var$3);
            var$5 = $this.$serverConfigManager;
            $var1 = 0;
            var$1 = var$5.$playerEntityList;
            var$9 = $rt_compare($var1, var$1.$size0);
            if (var$9 < 0) {
                if ($var1 >= 0 && var$9 < 0) {
                    var$1 = var$1.$array.data[$var1];
                    var$3 = var$1.$username;
                    var$2 = var$5.$mcServer1.$serverOwner;
                    if (var$3 === var$2)
                        var$9 = 1;
                    else if (!(var$2 instanceof jl_String))
                        var$9 = 0;
                    else {
                        var$2 = var$2;
                        var$9 = var$3.$nativeString !== var$2.$nativeString ? 0 : 1;
                    }
                    if (var$9) {
                        var$2 = nms_NBTTagCompound__init_();
                        var$5.$hostPlayerNBT = var$2;
                        nms_Entity_writeToNBT(var$1, var$2);
                    }
                    var$2 = var$5.$playerNBTManagerObj;
                    $ptr = 3;
                    continue main;
                }
                var$5 = new jl_IndexOutOfBoundsException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
            var$5 = $this.$serverConfigManager;
            var$1 = var$5.$playerEntityList;
            var$9 = var$1.$size0;
            if (!(var$9 ? 0 : 1)) {
                if (0 >= var$9) {
                    var$5 = new jl_IndexOutOfBoundsException;
                    var$5.$suppressionEnabled = 1;
                    var$5.$writableStackTrace = 1;
                    $rt_throw(var$5);
                }
                var$1 = var$1.$array.data[0].$playerNetServerHandler;
                var$2 = $rt_s(246);
                $ptr = 2;
                continue main;
            }
        }
        var$1 = new nlesi_IPCPacket0DProgressUpdate;
        var$1.$updateMessage = $rt_s(247);
        var$1.$updateProgress = 0.0;
        nles_IntegratedServer_sendIPCPacket(var$1);
        var$2 = nles_IntegratedServer_logger.$logger;
        var$1 = jul_Level_INFO;
        var$3 = new jul_LogRecord;
        var$3.$level = var$1;
        var$3.$message0 = $rt_s(247);
        var$3.$millis = jl_System_currentTimeMillis();
        var$4 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$4, Long_fromInt(1));
        var$3.$sequenceNumber = var$4;
        var$3.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$2, var$3);
        $this.$userMessage = $rt_s(247);
        $var1 = 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, $ptr);
},
nms_MinecraftServer_tick = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = Long_fromNumber(performance.now() * 1000000.0);
        nms_AABBPool_cleanPool(jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool));
        $this.$tickCounter0 = $this.$tickCounter0 + 1 | 0;
        $ptr = 1;
    case 1:
        nms_MinecraftServer_updateTimeLightAndEntities($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$tickCounter0 % 900 | 0) {
            $this.$tickTimeArray.data[$this.$tickCounter0 % 100 | 0] = Long_sub(Long_fromNumber(performance.now() * 1000000.0), $var1);
            var$2 = $this.$sentPacketCountArray.data;
            var$3 = $this.$tickCounter0 % 100 | 0;
            nms_Packet_$callClinit();
            $var1 = nms_Packet_sentID;
            var$2[var$3] = Long_sub($var1, $this.$lastSentPacketID);
            $this.$lastSentPacketID = $var1;
            var$2 = $this.$sentPacketSizeArray.data;
            $var1 = nms_Packet_sentSize;
            var$2[var$3] = Long_sub($var1, $this.$lastSentPacketSize);
            $this.$lastSentPacketSize = $var1;
            var$2 = $this.$receivedPacketCountArray.data;
            $var1 = nms_Packet_receivedID;
            var$2[var$3] = Long_sub($var1, $this.$lastReceivedID);
            $this.$lastReceivedID = $var1;
            var$2 = $this.$receivedPacketSizeArray.data;
            $var1 = nms_Packet_receivedSize;
            var$2[var$3] = Long_sub($var1, $this.$lastReceivedSize);
            $this.$lastReceivedSize = $var1;
            return;
        }
        var$4 = $this.$serverConfigManager;
        var$3 = 0;
        var$5 = var$4.$playerEntityList;
        var$6 = $rt_compare(var$3, var$5.$size0);
        if (var$6 >= 0) {
            var$3 = 1;
            $ptr = 2;
            continue main;
        }
        if (var$3 >= 0 && var$6 < 0) {
            var$5 = var$5.$array.data[var$3];
            var$7 = var$5.$username;
            var$8 = var$4.$mcServer1.$serverOwner;
            if (var$7 === var$8)
                var$6 = 1;
            else if (!(var$8 instanceof jl_String))
                var$6 = 0;
            else {
                var$8 = var$8;
                var$6 = var$7.$nativeString !== var$8.$nativeString ? 0 : 1;
            }
            if (var$6) {
                var$8 = nms_NBTTagCompound__init_();
                var$4.$hostPlayerNBT = var$8;
                nms_Entity_writeToNBT(var$5, var$8);
            }
            var$8 = var$4.$playerNBTManagerObj;
            $ptr = 3;
            continue main;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    case 2:
        nms_MinecraftServer_saveAllWorlds($this, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$tickTimeArray.data[$this.$tickCounter0 % 100 | 0] = Long_sub(Long_fromNumber(performance.now() * 1000000.0), $var1);
        var$2 = $this.$sentPacketCountArray.data;
        var$3 = $this.$tickCounter0 % 100 | 0;
        nms_Packet_$callClinit();
        $var1 = nms_Packet_sentID;
        var$2[var$3] = Long_sub($var1, $this.$lastSentPacketID);
        $this.$lastSentPacketID = $var1;
        var$2 = $this.$sentPacketSizeArray.data;
        $var1 = nms_Packet_sentSize;
        var$2[var$3] = Long_sub($var1, $this.$lastSentPacketSize);
        $this.$lastSentPacketSize = $var1;
        var$2 = $this.$receivedPacketCountArray.data;
        $var1 = nms_Packet_receivedID;
        var$2[var$3] = Long_sub($var1, $this.$lastReceivedID);
        $this.$lastReceivedID = $var1;
        var$2 = $this.$receivedPacketSizeArray.data;
        $var1 = nms_Packet_receivedSize;
        var$2[var$3] = Long_sub($var1, $this.$lastReceivedSize);
        $this.$lastReceivedSize = $var1;
        return;
    case 3:
        nles_VFSSaveHandler_writePlayerData(var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$3 + 1 | 0;
        var$5 = var$4.$playerEntityList;
        var$6 = $rt_compare(var$3, var$5.$size0);
        if (var$6 >= 0) {
            var$3 = 1;
            $ptr = 2;
            continue main;
        }
        if (var$3 >= 0 && var$6 < 0) {
            var$5 = var$5.$array.data[var$3];
            var$7 = var$5.$username;
            var$8 = var$4.$mcServer1.$serverOwner;
            if (var$7 === var$8)
                var$6 = 1;
            else if (!(var$8 instanceof jl_String))
                var$6 = 0;
            else {
                var$8 = var$8;
                var$6 = var$7.$nativeString !== var$8.$nativeString ? 0 : 1;
            }
            if (var$6) {
                var$8 = nms_NBTTagCompound__init_();
                var$4.$hostPlayerNBT = var$8;
                nms_Entity_writeToNBT(var$5, var$8);
            }
            var$8 = var$4.$playerNBTManagerObj;
            continue main;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_MinecraftServer_getTPSAndChunkBuffer = ($this, $tpsCounter) => {
    let $strs, $p, var$4, var$5, var$6, $c, $oc, $e, $te, $r, $w, $g, $tu, $lu, $i, var$17, $pp, var$19;
    $strs = new ju_ArrayList;
    $strs.$array = $rt_createArray(jl_Object, 10);
    $p = new jl_StringBuilder;
    $p.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(248));
    jl_AbstractStringBuilder_insert0($p, $p.$length0, $tpsCounter, 10);
    jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(249));
    var$4 = new jl_String;
    var$5 = $p.$buffer;
    var$6 = var$5.data;
    $c = $p.$length0;
    $oc = var$6.length;
    if ($c >= 0 && $c <= ($oc - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, $c);
        ju_ArrayList_ensureCapacity($strs, $strs.$size0 + 1 | 0);
        var$5 = $strs.$array.data;
        $c = $strs.$size0;
        $strs.$size0 = $c + 1 | 0;
        var$5[$c] = var$4;
        $strs.$modCount = $strs.$modCount + 1 | 0;
        $c = 0;
        $oc = 0;
        $e = 0;
        $te = 0;
        $r = 0;
        $w = 0;
        $g = 0;
        $tu = 0;
        $lu = 0;
        $i = 0;
        while (true) {
            var$5 = $this.$worldServers.data;
            if ($i >= var$5.length)
                break;
            $c = $c + var$5[$i].$chunkProvider.$loadedChunkHashMap.$numHashElements | 0;
            $e = $e + var$5[$i].$loadedEntityList.$size0 | 0;
            $te = $te + var$5[$i].$loadedTileEntityList.$size0 | 0;
            $r = $r + var$5[$i].$r1 | 0;
            $w = $w + var$5[$i].$w | 0;
            $g = $g + var$5[$i].$g | 0;
            $lu = $lu + var$5[$i].$lu | 0;
            $tu = $tu + var$5[$i].$tu | 0;
            $i = $i + 1 | 0;
        }
        var$4 = $this.$playersOnline;
        var$17 = 0;
        $pp = var$4.$modCount;
        var$19 = var$4.$size();
        while (true) {
            if (!(var$17 >= var$19 ? 0 : 1)) {
                $i = $c + $oc | 0;
                var$4 = new jl_StringBuilder;
                var$4.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(250));
                jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $c, 10);
                $tpsCounter = var$4.$length0;
                jl_AbstractStringBuilder_insertSpace(var$4, $tpsCounter, $tpsCounter + 1 | 0);
                var$4.$buffer.data[$tpsCounter] = 47;
                jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $i, 10);
                $p = new jl_String;
                var$5 = var$4.$buffer;
                var$6 = var$5.data;
                $c = var$4.$length0;
                $oc = var$6.length;
                if ($c >= 0 && $c <= ($oc - 0 | 0)) {
                    $p.$nativeString = $rt_charArrayToString(var$5.data, 0, $c);
                    ju_ArrayList_ensureCapacity($strs, $strs.$size0 + 1 | 0);
                    var$5 = $strs.$array.data;
                    $c = $strs.$size0;
                    $strs.$size0 = $c + 1 | 0;
                    var$5[$c] = $p;
                    $strs.$modCount = $strs.$modCount + 1 | 0;
                    var$4 = new jl_StringBuilder;
                    var$4.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(251));
                    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $e, 10);
                    $tpsCounter = var$4.$length0;
                    jl_AbstractStringBuilder_insertSpace(var$4, $tpsCounter, $tpsCounter + 1 | 0);
                    var$4.$buffer.data[$tpsCounter] = 43;
                    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $te, 10);
                    $p = new jl_String;
                    var$5 = var$4.$buffer;
                    var$6 = var$5.data;
                    $c = var$4.$length0;
                    $oc = var$6.length;
                    if ($c >= 0 && $c <= ($oc - 0 | 0)) {
                        $p.$nativeString = $rt_charArrayToString(var$5.data, 0, $c);
                        ju_ArrayList_ensureCapacity($strs, $strs.$size0 + 1 | 0);
                        var$5 = $strs.$array.data;
                        $c = $strs.$size0;
                        $strs.$size0 = $c + 1 | 0;
                        var$5[$c] = $p;
                        $strs.$modCount = $strs.$modCount + 1 | 0;
                        $p = new jl_StringBuilder;
                        $p.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(252));
                        jl_AbstractStringBuilder_insert0($p, $p.$length0, $r, 10);
                        jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(253));
                        jl_AbstractStringBuilder_insert0($p, $p.$length0, $g, 10);
                        jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(254));
                        jl_AbstractStringBuilder_insert0($p, $p.$length0, $w, 10);
                        var$4 = new jl_String;
                        var$5 = $p.$buffer;
                        var$6 = var$5.data;
                        $c = $p.$length0;
                        $oc = var$6.length;
                        if ($c >= 0 && $c <= ($oc - 0 | 0)) {
                            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, $c);
                            ju_ArrayList_ensureCapacity($strs, $strs.$size0 + 1 | 0);
                            var$5 = $strs.$array.data;
                            $c = $strs.$size0;
                            $strs.$size0 = $c + 1 | 0;
                            var$5[$c] = var$4;
                            $strs.$modCount = $strs.$modCount + 1 | 0;
                            $p = new jl_StringBuilder;
                            $p.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(255));
                            jl_AbstractStringBuilder_insert0($p, $p.$length0, $tu, 10);
                            jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(256));
                            jl_AbstractStringBuilder_insert0($p, $p.$length0, $lu, 10);
                            var$4 = new jl_String;
                            var$5 = $p.$buffer;
                            var$6 = var$5.data;
                            $c = $p.$length0;
                            $oc = var$6.length;
                            if ($c >= 0 && $c <= ($oc - 0 | 0)) {
                                var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, $c);
                                ju_ArrayList_ensureCapacity($strs, $strs.$size0 + 1 | 0);
                                var$5 = $strs.$array.data;
                                $c = $strs.$size0;
                                $strs.$size0 = $c + 1 | 0;
                                var$5[$c] = var$4;
                                $strs.$modCount = $strs.$modCount + 1 | 0;
                                $pp = $this.$playersOnline.$size0;
                                if ($pp > 1) {
                                    $p = new jl_StringBuilder;
                                    $p.$buffer = $rt_createCharArray(16);
                                    jl_AbstractStringBuilder_insert($p, $p.$length0, $rt_s(257));
                                    jl_AbstractStringBuilder_insert0($p, $p.$length0, $pp, 10);
                                    var$4 = new jl_String;
                                    var$5 = $p.$buffer;
                                    var$6 = var$5.data;
                                    $c = $p.$length0;
                                    $oc = var$6.length;
                                    if ($c >= 0 && $c <= ($oc - 0 | 0)) {
                                        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, $c);
                                        ju_ArrayList_ensureCapacity($strs, $strs.$size0 + 1 | 0);
                                        var$5 = $strs.$array.data;
                                        $c = $strs.$size0;
                                        $strs.$size0 = $c + 1 | 0;
                                        var$5[$c] = var$4;
                                        $strs.$modCount = $strs.$modCount + 1 | 0;
                                    } else {
                                        $strs = new jl_IndexOutOfBoundsException;
                                        $strs.$suppressionEnabled = 1;
                                        $strs.$writableStackTrace = 1;
                                        $rt_throw($strs);
                                    }
                                }
                                return $strs;
                            }
                            $strs = new jl_IndexOutOfBoundsException;
                            $strs.$suppressionEnabled = 1;
                            $strs.$writableStackTrace = 1;
                            $rt_throw($strs);
                        }
                        $strs = new jl_IndexOutOfBoundsException;
                        $strs.$suppressionEnabled = 1;
                        $strs.$writableStackTrace = 1;
                        $rt_throw($strs);
                    }
                    $strs = new jl_IndexOutOfBoundsException;
                    $strs.$suppressionEnabled = 1;
                    $strs.$writableStackTrace = 1;
                    $rt_throw($strs);
                }
                $strs = new jl_IndexOutOfBoundsException;
                $strs.$suppressionEnabled = 1;
                $strs.$writableStackTrace = 1;
                $rt_throw($strs);
            }
            if ($pp < var$4.$modCount)
                break;
            $i = var$17 + 1 | 0;
            $oc = $oc + (var$4.$get(var$17)).$loadedChunks.$size2 | 0;
            var$17 = $i;
        }
        $strs = new ju_ConcurrentModificationException;
        $strs.$suppressionEnabled = 1;
        $strs.$writableStackTrace = 1;
        $rt_throw($strs);
    }
    $strs = new jl_IndexOutOfBoundsException;
    $strs.$suppressionEnabled = 1;
    $strs.$writableStackTrace = 1;
    $rt_throw($strs);
},
nms_MinecraftServer_updateTimeLightAndEntities = $this => {
    let $var1, var$2, var$3, var$4, $var4, var$6, var$7, var$8, var$9, var$10, $var2, var$12, var$13, var$14, var$15, var$16, var$17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var2 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        var$2 = $rt_s(258);
        var$3 = $rt_s(258);
        if ($var1 >= $this.$worldServers.data.length) {
            var$4 = $this.$listenThreadImpl;
            $var4 = var$4.$connections.$backingMap;
            if ($var4.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = $var4;
                $var4.$cachedKeySet = var$6;
            }
            var$6 = $var4.$cachedKeySet.$iterator();
            while (var$6.$hasNext()) {
                if ((var$6.$next()).$shouldBeRemoved())
                    var$6.$remove();
            }
            $var4 = new ju_ArrayList;
            var$7 = var$4.$connections.$backingMap;
            $var1 = var$7.$elementCount;
            if ($var1 < 0) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            $var4.$array = $rt_createArray(jl_Object, $var1);
            if (var$7.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = var$7;
                var$7.$cachedKeySet = var$6;
            }
            var$7 = var$7.$cachedKeySet.$iterator();
            $var1 = 0;
            while (true) {
                var$8 = $var4.$array.data;
                var$9 = var$8.length;
                if ($var1 >= var$9)
                    break;
                var$8[$var1] = var$7.$next();
                $var1 = $var1 + 1 | 0;
            }
            $var4.$size0 = var$9;
            var$9 = $var4.$modCount;
            var$10 = $var4.$size();
            if (0 >= var$10 ? 0 : 1) {
                if (var$9 < $var4.$modCount) {
                    $var4 = new ju_ConcurrentModificationException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
                $var1 = 0 + 1 | 0;
                var$6 = $var4.$get(0);
                $ptr = 4;
                continue main;
            }
            $var4 = var$4.$connections.$backingMap;
            if ($var4.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = $var4;
                $var4.$cachedKeySet = var$6;
            }
            var$6 = $var4.$cachedKeySet.$iterator();
            while (var$6.$hasNext()) {
                if ((var$6.$next()).$shouldBeRemoved())
                    var$6.$remove();
            }
            $var4 = $this.$serverConfigManager;
            $ptr = 5;
            continue main;
        }
        $var2 = Long_fromNumber(performance.now() * 1000000.0);
        a: {
            $var4 = $this.$worldServers.data[$var1];
            nms_Vec3Pool_clear($var4.$vecPool);
            if (!($this.$tickCounter0 % 20 | 0)) {
                var$6 = $this.$serverConfigManager;
                var$12 = new nms_Packet4UpdateTime;
                var$13 = $var4.$worldInfo.$getWorldTotalTime();
                var$14 = $var4.$worldInfo.$getWorldTime();
                var$7 = ($this.$worldServers.data[$var1].$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                jl_String_compareTo(var$2, $rt_s(258));
                b: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break b;
                        }
                        var$9 = jl_String_compareTo(var$3, var$7.$key0);
                        if (!var$9)
                            break;
                        var$7 = var$9 >= 0 ? var$7.$right : var$7.$left;
                    }
                }
                var$4 = var$7 === null ? null : var$7.$value2;
                var$9 = var$4 === null ? 0 : var$4.$valueBoolean;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$12.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$12.$worldAge = var$13;
                var$12.$time0 = var$14;
                if (!var$9) {
                    var$14 = Long_neg(var$14);
                    var$12.$time0 = var$14;
                    if (Long_eq(var$14, Long_ZERO))
                        var$12.$time0 = Long_fromInt(-1);
                }
                var$9 = $var4.$provider.$dimensionId;
                var$10 = 0;
                var$15 = var$12 instanceof nms_Packet3Chat;
                var$7 = var$12;
                c: {
                    while (true) {
                        var$4 = var$6.$playerEntityList;
                        var$16 = $rt_compare(var$10, var$4.$size0);
                        if (var$16 >= 0)
                            break;
                        if (var$10 < 0)
                            break c;
                        if (var$16 >= 0)
                            break c;
                        var$4 = var$4.$array.data[var$10];
                        if (var$4.$dimension == var$9)
                            d: {
                                var$4 = var$4.$playerNetServerHandler;
                                if (var$15) {
                                    var$17 = var$4.$playerEntity.$chatVisibility;
                                    if (var$17 == 2)
                                        break d;
                                    if (var$17 == 1 && !var$7.$isServer)
                                        break d;
                                }
                                try {
                                    var$4 = var$4.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$4 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                jl_Throwable_printStackTrace0(var$4);
                            }
                        var$10 = var$10 + 1 | 0;
                    }
                    break a;
                }
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
        }
        $ptr = 1;
    case 1:
        nms_WorldServer_tick($var4);
        if ($rt_suspending()) {
            break main;
        }
        if (!($var4.$playerEntities.$size0 ? 0 : 1))
            $var4.$updateEntityTick = 0;
        else {
            var$10 = $var4.$updateEntityTick;
            $var4.$updateEntityTick = var$10 + 1 | 0;
            if (var$10 >= 1200) {
                $var4 = $var4.$theEntityTracker;
                $ptr = 3;
                continue main;
            }
        }
        $ptr = 2;
    case 2:
        nms_World_updateEntities($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4.$theEntityTracker;
        $ptr = 3;
    case 3:
        nms_EntityTracker_updateTrackedEntities($var4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$timeOfLastDimensionTick.data[$var1].data[$this.$tickCounter0 % 100 | 0] = Long_sub(Long_fromNumber(performance.now() * 1000000.0), $var2);
        $var1 = $var1 + 1 | 0;
        if ($var1 >= $this.$worldServers.data.length) {
            var$4 = $this.$listenThreadImpl;
            $var4 = var$4.$connections.$backingMap;
            if ($var4.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = $var4;
                $var4.$cachedKeySet = var$6;
            }
            var$6 = $var4.$cachedKeySet.$iterator();
            while (var$6.$hasNext()) {
                if ((var$6.$next()).$shouldBeRemoved())
                    var$6.$remove();
            }
            $var4 = new ju_ArrayList;
            var$7 = var$4.$connections.$backingMap;
            $var1 = var$7.$elementCount;
            if ($var1 < 0) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            $var4.$array = $rt_createArray(jl_Object, $var1);
            if (var$7.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = var$7;
                var$7.$cachedKeySet = var$6;
            }
            var$7 = var$7.$cachedKeySet.$iterator();
            $var1 = 0;
            while (true) {
                var$8 = $var4.$array.data;
                var$9 = var$8.length;
                if ($var1 >= var$9)
                    break;
                var$8[$var1] = var$7.$next();
                $var1 = $var1 + 1 | 0;
            }
            $var4.$size0 = var$9;
            var$9 = $var4.$modCount;
            var$10 = $var4.$size();
            if (0 >= var$10 ? 0 : 1) {
                if (var$9 < $var4.$modCount) {
                    $var4 = new ju_ConcurrentModificationException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
                $var1 = 0 + 1 | 0;
                var$6 = $var4.$get(0);
                $ptr = 4;
                continue main;
            }
            $var4 = var$4.$connections.$backingMap;
            if ($var4.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = $var4;
                $var4.$cachedKeySet = var$6;
            }
            var$6 = $var4.$cachedKeySet.$iterator();
            while (var$6.$hasNext()) {
                if ((var$6.$next()).$shouldBeRemoved())
                    var$6.$remove();
            }
            $var4 = $this.$serverConfigManager;
            $ptr = 5;
            continue main;
        }
        $var2 = Long_fromNumber(performance.now() * 1000000.0);
        a: {
            $var4 = $this.$worldServers.data[$var1];
            nms_Vec3Pool_clear($var4.$vecPool);
            if (!($this.$tickCounter0 % 20 | 0)) {
                var$6 = $this.$serverConfigManager;
                var$12 = new nms_Packet4UpdateTime;
                var$13 = $var4.$worldInfo.$getWorldTotalTime();
                var$14 = $var4.$worldInfo.$getWorldTime();
                var$7 = ($this.$worldServers.data[$var1].$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                jl_String_compareTo(var$2, $rt_s(258));
                b: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break b;
                        }
                        var$9 = jl_String_compareTo(var$3, var$7.$key0);
                        if (!var$9)
                            break;
                        var$7 = var$9 >= 0 ? var$7.$right : var$7.$left;
                    }
                }
                var$4 = var$7 === null ? null : var$7.$value2;
                var$9 = var$4 === null ? 0 : var$4.$valueBoolean;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$12.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$12.$worldAge = var$13;
                var$12.$time0 = var$14;
                if (!var$9) {
                    var$14 = Long_neg(var$14);
                    var$12.$time0 = var$14;
                    if (Long_eq(var$14, Long_ZERO))
                        var$12.$time0 = Long_fromInt(-1);
                }
                var$9 = $var4.$provider.$dimensionId;
                var$10 = 0;
                var$15 = var$12 instanceof nms_Packet3Chat;
                var$7 = var$12;
                c: {
                    while (true) {
                        var$4 = var$6.$playerEntityList;
                        var$16 = $rt_compare(var$10, var$4.$size0);
                        if (var$16 >= 0)
                            break;
                        if (var$10 < 0)
                            break c;
                        if (var$16 >= 0)
                            break c;
                        var$4 = var$4.$array.data[var$10];
                        if (var$4.$dimension == var$9)
                            d: {
                                var$4 = var$4.$playerNetServerHandler;
                                if (var$15) {
                                    var$17 = var$4.$playerEntity.$chatVisibility;
                                    if (var$17 == 2)
                                        break d;
                                    if (var$17 == 1 && !var$7.$isServer)
                                        break d;
                                }
                                try {
                                    var$4 = var$4.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$4 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                jl_Throwable_printStackTrace0(var$4);
                            }
                        var$10 = var$10 + 1 | 0;
                    }
                    break a;
                }
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
        }
        $ptr = 1;
        continue main;
    case 4:
        var$6.$handlePackets();
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $var1;
        if (var$16 >= var$10 ? 0 : 1) {
            if (var$9 < $var4.$modCount) {
                $var4 = new ju_ConcurrentModificationException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            $var1 = var$16 + 1 | 0;
            var$6 = $var4.$get(var$16);
            continue main;
        }
        $var4 = var$4.$connections.$backingMap;
        if ($var4.$cachedKeySet === null) {
            var$6 = new ju_HashMap$1;
            var$6.$this$0 = $var4;
            $var4.$cachedKeySet = var$6;
        }
        var$6 = $var4.$cachedKeySet.$iterator();
        while (var$6.$hasNext()) {
            if ((var$6.$next()).$shouldBeRemoved())
                var$6.$remove();
        }
        $var4 = $this.$serverConfigManager;
        $ptr = 5;
    case 5:
        nms_ServerConfigurationManager_sendPlayerInfoToAllPlayers($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        e: {
            while (true) {
                $var4 = $this.$playersOnline;
                var$9 = $rt_compare($var1, $var4.$size0);
                if (var$9 >= 0)
                    break;
                if ($var1 < 0)
                    break e;
                if (var$9 >= 0)
                    break e;
                $var4.$array.data[$var1].$update();
                $var1 = $var1 + 1 | 0;
            }
            return;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    case 6:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$12);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$4);
        }
        f: while (true) {
            while (true) {
                while (true) {
                    var$10 = var$10 + 1 | 0;
                    var$4 = var$6.$playerEntityList;
                    var$16 = $rt_compare(var$10, var$4.$size0);
                    if (var$16 >= 0) {
                        $ptr = 1;
                        continue main;
                    }
                    if (var$10 < 0)
                        break f;
                    if (var$16 >= 0)
                        break f;
                    var$4 = var$4.$array.data[var$10];
                    if (var$4.$dimension != var$9)
                        continue;
                    else
                        break;
                }
                var$4 = var$4.$playerNetServerHandler;
                if (!var$15)
                    break;
                var$17 = var$4.$playerEntity.$chatVisibility;
                if (var$17 == 2)
                    continue;
                if (var$17 != 1)
                    break;
                if (var$7.$isServer)
                    break;
            }
            try {
                var$4 = var$4.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$4);
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, $var4, var$6, var$7, var$8, var$9, var$10, $var2, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_MinecraftServer_getMinecraftVersion = $this => {
    return $rt_s(259);
},
nms_MinecraftServer_getPossibleCompletions = ($this, $par1ICommandSender, $par2Str) => {
    let $var3, $var4, $var5, $var8, $var6, $var10, $var7, $var9, $var11, $var12$index, var$13, var$14, $var12$index_0, $var13, var$17;
    $var3 = new ju_ArrayList;
    $var3.$array = $rt_createArray(jl_Object, 10);
    if (!($par2Str === $rt_s(166) ? 1 : jl_String_startsWith($par2Str, $rt_s(166), 0))) {
        $var4 = (jur_Pattern_split(jur_Pattern_compile($rt_s(260), 0), $par2Str, (-1))).data;
        $var5 = $var4[$var4.length - 1 | 0];
        $par1ICommandSender = $this.$serverConfigManager.$playerEntityList;
        $var8 = $par1ICommandSender.$size0;
        $var6 = $rt_createArray(jl_String, $var8).data;
        $var10 = 0;
        while (true) {
            $var7 = $rt_compare($var10, $var8);
            if ($var7 >= 0) {
                $var7 = $var6.length;
                $var8 = 0;
                while ($var8 < $var7) {
                    $var9 = $var6[$var8];
                    if (jl_String_regionMatches($var9, 1, 0, $var5, 0, $var5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                        $var4 = $var3.$array.data;
                        $var10 = $var3.$size0;
                        $var3.$size0 = $var10 + 1 | 0;
                        $var4[$var10] = $var9;
                        $var3.$modCount = $var3.$modCount + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                return $var3;
            }
            if ($var10 < 0)
                break;
            if ($var7 >= 0)
                break;
            $var6[$var10] = $par1ICommandSender.$array.data[$var10].$username;
            $var10 = $var10 + 1 | 0;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $rt_throw($par1ICommandSender);
    }
    $var5 = jl_String_substring($par2Str, 1, $par2Str.$nativeString.length);
    $var10 = jl_String_contains($var5, $rt_s(260)) ? 0 : 1;
    a: {
        b: {
            $var11 = nms_CommandHandler_getPossibleCommands($this.$commandManager, $par1ICommandSender, $var5);
            if ($var11 !== null) {
                $var12$index = 0;
                var$13 = $var11.$modCount;
                var$14 = $var11.$size();
                while (true) {
                    if (!($var12$index >= var$14 ? 0 : 1))
                        break b;
                    if (var$13 < $var11.$modCount) {
                        $par1ICommandSender = new ju_ConcurrentModificationException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    $var12$index_0 = $var12$index + 1 | 0;
                    $var13 = $var11.$get($var12$index);
                    if (!$var10) {
                        ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                        $var4 = $var3.$array.data;
                        $var12$index = $var3.$size0;
                        $var3.$size0 = $var12$index + 1 | 0;
                        $var4[$var12$index] = $var13;
                        $var3.$modCount = $var3.$modCount + 1 | 0;
                    } else {
                        $par1ICommandSender = new jl_StringBuilder;
                        $par1ICommandSender.$buffer = $rt_createCharArray(16);
                        $var8 = $par1ICommandSender.$length0;
                        jl_AbstractStringBuilder_insertSpace($par1ICommandSender, $var8, $var8 + 1 | 0);
                        $par1ICommandSender.$buffer.data[$var8] = 47;
                        $var8 = $par1ICommandSender.$length0;
                        if ($var13 === null)
                            $var13 = $rt_s(1);
                        jl_AbstractStringBuilder_insert($par1ICommandSender, $var8, $var13);
                        $par2Str = new jl_String;
                        $var4 = $par1ICommandSender.$buffer;
                        $var6 = $var4.data;
                        $var12$index = $par1ICommandSender.$length0;
                        var$17 = $var6.length;
                        if ($var12$index < 0)
                            break a;
                        if ($var12$index > (var$17 - 0 | 0))
                            break a;
                        $par2Str.$nativeString = $rt_charArrayToString($var4.data, 0, $var12$index);
                        ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                        $var4 = $var3.$array.data;
                        $var12$index = $var3.$size0;
                        $var3.$size0 = $var12$index + 1 | 0;
                        $var4[$var12$index] = $par2Str;
                        $var3.$modCount = $var3.$modCount + 1 | 0;
                    }
                    $var12$index = $var12$index_0;
                }
            }
        }
        return $var3;
    }
    $par1ICommandSender = new jl_IndexOutOfBoundsException;
    $par1ICommandSender.$suppressionEnabled = 1;
    $par1ICommandSender.$writableStackTrace = 1;
    $rt_throw($par1ICommandSender);
},
nms_MinecraftServer_setDifficultyForAllWorlds = ($this, $par1) => {
    let $var2, var$3, $var3, var$5;
    $var2 = 0;
    while (true) {
        var$3 = $this.$worldServers.data;
        if ($var2 >= var$3.length)
            break;
        $var3 = var$3[$var2];
        if ($var3 !== null) {
            if ($var3.$worldInfo.$isHardcoreModeEnabled()) {
                $var3.$difficultySetting = 3;
                $var3.$spawnHostileMobs = 1;
                $var3.$spawnPeacefulMobs = 1;
            } else if (!($this.$serverOwner === null ? 0 : 1)) {
                $var3.$difficultySetting = $par1;
                var$5 = $this.$canSpawnAnimals;
                $var3.$spawnHostileMobs = 1;
                $var3.$spawnPeacefulMobs = var$5;
            } else {
                $var3.$difficultySetting = $par1;
                $var3.$spawnHostileMobs = $par1 <= 0 ? 0 : 1;
                $var3.$spawnPeacefulMobs = 1;
            }
        }
        $var2 = $var2 + 1 | 0;
    }
},
nms_MinecraftServer_deleteWorldAndStopServer = $this => {
    let $var1, $worldsTxt, $var2, $newWorlds, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $str, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$str = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$newWorlds = $thread.pop();$var2 = $thread.pop();$worldsTxt = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$worldIsBeingDeleted = 1;
        $var1 = 0;
        while (true) {
            $worldsTxt = $this.$worldServers.data;
            if ($var1 >= $worldsTxt.length)
                break;
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $worldsTxt[0].$saveHandler0.$worldDirectory.$path;
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $newWorlds = nles_SYS_VFS.$indexeddb;
        $ptr = 2;
    case 2:
        a: {
            nles_VirtualFilesystem$AsyncHandlers_deleteFiles$_asyncCall_$($newWorlds, $var2);
            if ($rt_suspending()) {
                break main;
            }
            $newWorlds = nles_SYS_VFS;
            var$5 = $newWorlds.$fileMap;
            if (!$rt_s(48).$hashCode1) {
                $var1 = 0;
                while (true) {
                    if ($var1 >= $rt_s(48).$nativeString.length)
                        break a;
                    $rt_s(48).$hashCode1 = (31 * $rt_s(48).$hashCode1 | 0) + $rt_s(48).$nativeString.charCodeAt($var1) | 0;
                    $var1 = $var1 + 1 | 0;
                }
            }
        }
        var$6 = $rt_s(48).$hashCode1;
        $worldsTxt = var$5.$elementData.data;
        var$5 = $worldsTxt[var$6 & ($worldsTxt.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$6) {
                b: {
                    var$7 = var$5.$key;
                    if ($rt_s(48) !== var$7) {
                        if ($rt_s(48) === var$7)
                            $var1 = 1;
                        else if (!(var$7 instanceof jl_String))
                            $var1 = 0;
                        else {
                            var$7 = var$7;
                            $var1 = $rt_s(48).$nativeString !== var$7.$nativeString ? 0 : 1;
                        }
                        if (!$var1) {
                            $var1 = 0;
                            break b;
                        }
                    }
                    $var1 = 1;
                }
                if ($var1)
                    break;
            }
            var$5 = var$5.$next3;
        }
        var$5 = var$5 === null ? null : var$5.$value0;
        if (var$5 === null) {
            var$7 = $newWorlds.$fileMap;
            var$5 = new nles_VirtualFilesystem$VFSFile;
            var$5.$fileSize = (-1);
            var$5.$hasBeenDeleted = 0;
            var$5.$hasBeenAccessed = 0;
            var$5.$exists0 = 0;
            var$5.$cache = null;
            var$5.$virtualFilesystem = $newWorlds;
            var$5.$filePath = $rt_s(48);
            nles_SysUtil_$callClinit();
            var$5.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, $rt_s(48), var$5);
        }
        $var1 = 0;
        $ptr = 3;
    case 3:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes(var$5, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $worldsTxt = $tmp;
        if ($worldsTxt === null)
            $newWorlds = null;
        else {
            $newWorlds = new jl_String;
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            var$5 = jnc_Charset$Charsets_value;
            var$7 = $rt_s(68).$nativeString.toUpperCase();
            var$8 = var$7 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$7);
            b: {
                if (!var$8.$hashCode1) {
                    $var1 = 0;
                    while (true) {
                        if ($var1 >= var$8.$nativeString.length)
                            break b;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt($var1) | 0;
                        $var1 = $var1 + 1 | 0;
                    }
                }
            }
            var$6 = var$8.$hashCode1;
            var$9 = var$5.$elementData.data;
            var$5 = var$9[var$6 & (var$9.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$6) {
                    var$7 = var$5.$key;
                    if (var$8 !== var$7 && !jl_String_equals(var$8, var$7) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
            var$5 = var$5 === null ? null : var$5.$value0;
            if (var$5 === null) {
                $newWorlds = new jnc_UnsupportedCharsetException;
                $newWorlds.$suppressionEnabled = 1;
                $newWorlds.$writableStackTrace = 1;
                $newWorlds.$charsetName = $rt_s(68);
                $rt_throw($newWorlds);
            }
            var$10 = $worldsTxt.data.length;
            if (var$10 >= 0 && var$10 <= (var$10 - 0 | 0)) {
                var$7 = new jn_ByteBufferImpl;
                var$11 = 0 + var$10 | 0;
                jn_Buffer__init_(var$7, var$10);
                var$7.$order = jn_ByteOrder_BIG_ENDIAN;
                var$7.$start2 = 0;
                var$7.$array2 = $worldsTxt;
                var$7.$position1 = 0;
                var$7.$limit = var$11;
                var$7.$direct = 0;
                var$7.$readOnly0 = 0;
                c: {
                    try {
                        $str = jnc_CharsetDecoder_decode(jnc_CharsetDecoder_onUnmappableCharacter(jnc_CharsetDecoder_onMalformedInput(var$5.$newDecoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), var$7);
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jnc_CharacterCodingException) {
                            $str = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $var2 = new jl_AssertionError;
                    jl_Throwable__init_1($var2, $rt_s(103), $str);
                    $rt_throw($var2);
                }
                var$6 = $str.$position1;
                if (!var$6 && $str.$limit == $str.$capacity)
                    $worldsTxt = $str.$array0;
                else {
                    $worldsTxt = $rt_createCharArray($str.$limit - var$6 | 0);
                    jn_CharBuffer_get($str, $worldsTxt, 0, $worldsTxt.data.length);
                }
                $newWorlds.$nativeString = $rt_fullArrayToString($worldsTxt.data);
            } else {
                $newWorlds = new jl_IndexOutOfBoundsException;
                $newWorlds.$suppressionEnabled = 1;
                $newWorlds.$writableStackTrace = 1;
                $rt_throw($newWorlds);
            }
        }
        if ($newWorlds === null)
            $worldsTxt = null;
        else {
            $str = nles_VirtualFilesystem_CRLFtoLF($newWorlds);
            $worldsTxt = jur_Pattern_split(jur_Pattern_compile($rt_s(9), 0), $str, 0);
        }
        if ($worldsTxt === null) {
            $this.$serverRunning = 0;
            return;
        }
        $worldsTxt = $worldsTxt.data;
        $newWorlds = new ju_LinkedList;
        $var1 = $worldsTxt.length;
        var$10 = 0;
        while (true) {
            if (var$10 >= $var1) {
                d: {
                    $str = nles_SYS_VFS;
                    var$5 = $str.$fileMap;
                    if (!$rt_s(48).$hashCode1) {
                        $var1 = 0;
                        while (true) {
                            if ($var1 >= $rt_s(48).$nativeString.length)
                                break d;
                            $rt_s(48).$hashCode1 = (31 * $rt_s(48).$hashCode1 | 0) + $rt_s(48).$nativeString.charCodeAt($var1) | 0;
                            $var1 = $var1 + 1 | 0;
                        }
                    }
                }
                $var1 = $rt_s(48).$hashCode1;
                $worldsTxt = var$5.$elementData.data;
                var$5 = $worldsTxt[$var1 & ($worldsTxt.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == $var1) {
                        e: {
                            var$7 = var$5.$key;
                            if ($rt_s(48) !== var$7) {
                                if ($rt_s(48) === var$7)
                                    var$10 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    var$10 = 0;
                                else {
                                    var$7 = var$7;
                                    var$10 = $rt_s(48).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!var$10) {
                                    var$10 = 0;
                                    break e;
                                }
                            }
                            var$10 = 1;
                        }
                        if (var$10)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
                var$5 = var$5 === null ? null : var$5.$value0;
                if (var$5 === null) {
                    var$7 = $str.$fileMap;
                    var$5 = new nles_VirtualFilesystem$VFSFile;
                    var$5.$fileSize = (-1);
                    var$5.$hasBeenDeleted = 0;
                    var$5.$hasBeenAccessed = 0;
                    var$5.$exists0 = 0;
                    var$5.$cache = null;
                    var$5.$virtualFilesystem = $str;
                    var$5.$filePath = $rt_s(48);
                    nles_SysUtil_$callClinit();
                    var$5.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    ju_HashMap_putImpl(var$7, $rt_s(48), var$5);
                }
                var$7 = new ju_LinkedList$SequentialListIterator;
                var$8 = $newWorlds.$firstEntry;
                $var2 = null;
                var$7.$this$02 = $newWorlds;
                var$7.$version = $newWorlds.$modCount;
                var$7.$nextEntry1 = var$8;
                var$7.$prevEntry = $var2;
                var$7.$index4 = 0;
                if (!(var$8 === null ? 0 : 1))
                    $newWorlds = $rt_s(3);
                else {
                    $var2 = new jl_StringBuilder;
                    $var2.$buffer = $rt_createCharArray(16);
                    $newWorlds = ju_LinkedList$SequentialListIterator_next(var$7);
                    var$10 = $newWorlds.$length();
                    jl_AbstractStringBuilder_insert1($var2, $var2.$length0, $newWorlds, 0, var$10);
                    while (var$7.$nextEntry1 === null ? 0 : 1) {
                        var$6 = $rt_s(9).$nativeString.length;
                        jl_AbstractStringBuilder_insert1($var2, $var2.$length0, $rt_s(9), 0, var$6);
                        $newWorlds = ju_LinkedList$SequentialListIterator_next(var$7);
                        var$10 = $newWorlds.$length();
                        jl_AbstractStringBuilder_insert1($var2, $var2.$length0, $newWorlds, 0, var$10);
                    }
                    $newWorlds = new jl_String;
                    $worldsTxt = $var2.$buffer;
                    var$9 = $worldsTxt.data;
                    var$10 = $var2.$length0;
                    var$6 = var$9.length;
                    if (var$10 >= 0 && var$10 <= (var$6 - 0 | 0))
                        $newWorlds.$nativeString = $rt_charArrayToString($worldsTxt.data, 0, var$10);
                    else {
                        $newWorlds = new jl_IndexOutOfBoundsException;
                        $newWorlds.$suppressionEnabled = 1;
                        $newWorlds.$writableStackTrace = 1;
                        $rt_throw($newWorlds);
                    }
                }
                jnc_Charset_checkCanonicalName($rt_s(68));
                jnc_Charset$Charsets_$callClinit();
                var$7 = jnc_Charset$Charsets_value;
                var$8 = $rt_s(68).$nativeString.toUpperCase();
                $var2 = var$8 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$8);
                f: {
                    if (!$var2.$hashCode1) {
                        $var1 = 0;
                        while (true) {
                            if ($var1 >= $var2.$nativeString.length)
                                break f;
                            $var2.$hashCode1 = (31 * $var2.$hashCode1 | 0) + $var2.$nativeString.charCodeAt($var1) | 0;
                            $var1 = $var1 + 1 | 0;
                        }
                    }
                }
                var$10 = $var2.$hashCode1;
                $worldsTxt = var$7.$elementData.data;
                var$13 = $worldsTxt[var$10 & ($worldsTxt.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$10) {
                        g: {
                            var$7 = var$13.$key;
                            if ($var2 !== var$7) {
                                if ($var2 === var$7)
                                    $var1 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    $var1 = 0;
                                else {
                                    var$7 = var$7;
                                    $var1 = $var2.$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!$var1) {
                                    $var1 = 0;
                                    break g;
                                }
                            }
                            $var1 = 1;
                        }
                        if ($var1)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
                var$7 = var$13 === null ? null : var$13.$value0;
                if (var$7 === null) {
                    $newWorlds = new jnc_UnsupportedCharsetException;
                    $newWorlds.$suppressionEnabled = 1;
                    $newWorlds.$writableStackTrace = 1;
                    $newWorlds.$charsetName = $rt_s(68);
                    $rt_throw($newWorlds);
                }
                $worldsTxt = $rt_fastStringToCharArray($newWorlds.$nativeString);
                var$10 = $worldsTxt.data.length;
                $var2 = new jn_CharBufferOverArray;
                var$14 = 0 + var$10 | 0;
                jn_Buffer__init_($var2, var$10);
                $var2.$position1 = 0;
                $var2.$limit = var$14;
                $var2.$start1 = 0;
                $var2.$readOnly = 0;
                $var2.$array0 = $worldsTxt;
                h: {
                    try {
                        $newWorlds = jnc_CharsetEncoder_encode(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput(var$7.$newEncoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $var2);
                        break h;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jnc_CharacterCodingException) {
                            $str = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $var2 = new jl_AssertionError;
                    $var2.$suppressionEnabled = 1;
                    $var2.$writableStackTrace = 1;
                    $var2.$message = $rt_s(103);
                    $var2.$cause = $str;
                    $rt_throw($var2);
                }
                var$6 = $newWorlds.$position1;
                if (!var$6 && $newWorlds.$limit == $newWorlds.$capacity)
                    $worldsTxt = $newWorlds.$array2;
                else {
                    $worldsTxt = $rt_createByteArray($newWorlds.$limit - var$6 | 0);
                    jn_ByteBuffer_get($newWorlds, $worldsTxt, 0, $worldsTxt.data.length);
                }
                $var1 = 1;
                $ptr = 4;
                continue main;
            }
            $str = $worldsTxt[var$10];
            if (!jl_String_equalsIgnoreCase($str, $var2)) {
                var$6 = $newWorlds.$size2;
                if (var$6 < 0)
                    break;
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($newWorlds, var$6), $str);
            }
            var$10 = var$10 + 1 | 0;
        }
        $newWorlds = new jl_IndexOutOfBoundsException;
        $newWorlds.$suppressionEnabled = 1;
        $newWorlds.$writableStackTrace = 1;
        $rt_throw($newWorlds);
    case 4:
        nles_VirtualFilesystem$VFSFile_setAllBytes(var$5, $worldsTxt, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $this.$serverRunning = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $worldsTxt, $var2, $newWorlds, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $str, var$13, var$14, $ptr);
},
nms_MinecraftServer_getMOTD = $this => {
    return $this.$motd;
},
nms_MinecraftServer_getConfigurationManager = $this => {
    return $this.$serverConfigManager;
},
nms_MinecraftServer__clinit_ = () => {
    nms_MinecraftServer_mcServer = null;
};
function nles_EAGMinecraftServer() {
    let a = this; nms_MinecraftServer.call(a);
    a.$difficulty0 = 0;
    a.$gamemode = null;
    a.$lastTick = Long_ZERO;
    a.$listenThreadImpl = null;
    a.$newWorldSettings = null;
    a.$paused = 0;
    a.$tpsCounter = 0;
    a.$tpsMeasure = 0;
    a.$tpsTimer = Long_ZERO;
}
let nles_EAGMinecraftServer__init_0 = ($this, $world, $owner, $currentWorldSettings) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    nms_MinecraftServer__init_($this, $world);
    $this.$tpsCounter = 0;
    $this.$tpsMeasure = 0;
    $this.$tpsTimer = Long_ZERO;
    $this.$serverOwner = $owner;
    if (jl_System_outCache === null) {
        var$4 = new otcic_JSStdoutPrintStream;
        $world = new ji_ByteArrayOutputStream;
        $world.$buf = $rt_createByteArray(32);
        var$4.$out0 = $world;
        $world = new jl_StringBuilder;
        $world.$buffer = $rt_createCharArray(16);
        var$4.$sb = $world;
        var$4.$buffer0 = $rt_createCharArray(32);
        var$4.$autoFlush = 0;
        var$4.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_outCache = var$4;
    }
    $world = new jl_StringBuilder;
    $world.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($world, $world.$length0, $rt_s(261));
    var$5 = $world.$length0;
    if ($owner === null)
        $owner = $rt_s(1);
    jl_AbstractStringBuilder_insert($world, var$5, $owner);
    $owner = new jl_String;
    var$6 = $world.$buffer;
    var$7 = var$6.data;
    var$8 = $world.$length0;
    var$9 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
        $owner.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        $rt_putStdout($rt_ustr($owner));
        $rt_putStdout("\n");
        $world = new nles_EAGPlayerList;
        nms_ServerConfigurationManager__init_($world, $this);
        $world.$hostPlayerNBT = null;
        $world.$viewDistance = 4;
        $this.$serverConfigManager = $world;
        $world = new nles_WorkerListenThread;
        $world.$connections = ju_HashSet__init_();
        $world.$channels = ju_HashMap__init_();
        $world.$isListening = 0;
        $world.$mcServer5 = $this;
        $world.$isListening = 1;
        $this.$listenThreadImpl = $world;
        $this.$newWorldSettings = $currentWorldSettings;
        $this.$paused = 0;
        return;
    }
    $world = new jl_IndexOutOfBoundsException;
    $world.$suppressionEnabled = 1;
    $world.$writableStackTrace = 1;
    $rt_throw($world);
},
nles_EAGMinecraftServer__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nles_EAGMinecraftServer();
    nles_EAGMinecraftServer__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nles_EAGMinecraftServer_setBaseServerProperties = ($this, $difficulty, $gamemode) => {
    $this.$difficulty0 = $difficulty;
    $this.$gamemode = $gamemode;
    $this.$canSpawnAnimals = 1;
    $this.$canSpawnNPCs = 1;
    $this.$pvpEnabled = 1;
    $this.$allowFlight = 1;
},
nles_EAGMinecraftServer_mainLoop = $this => {
    let $ctm, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $delta, $elapsed, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$elapsed = $thread.pop();$delta = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$ctm = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            nles_SysUtil_$callClinit();
            $ctm = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (Long_ge(Long_sub($ctm, $this.$tpsTimer), Long_fromInt(1000))) {
                $this.$tpsTimer = $ctm;
                var$2 = $this.$tpsCounter;
                $this.$tpsMeasure = var$2;
                var$3 = new nlesi_IPCPacket14StringList;
                var$4 = nms_MinecraftServer_getTPSAndChunkBuffer($this, var$2);
                var$5 = new ju_ArrayList;
                var$5.$array = $rt_createArray(jl_Object, 10);
                var$3.$stringList = var$5;
                var$2 = 0;
                var$6 = var$4.$modCount;
                var$7 = var$4.$size();
                while (true) {
                    if (!(var$2 >= var$7 ? 0 : 1)) {
                        var$3.$opCode = 3;
                        nles_IntegratedServer_sendIPCPacket(var$3);
                        $this.$tpsCounter = 0;
                        break a;
                    }
                    if (var$6 < var$4.$modCount)
                        break;
                    var$8 = var$2 + 1 | 0;
                    var$5 = jl_String_trim(var$4.$get(var$2));
                    if (var$5.$nativeString.length > 0) {
                        var$9 = var$3.$stringList;
                        ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
                        var$10 = var$9.$array.data;
                        var$11 = var$9.$size0;
                        var$9.$size0 = var$11 + 1 | 0;
                        var$10[var$11] = var$5;
                        var$9.$modCount = var$9.$modCount + 1 | 0;
                    }
                    var$2 = var$8;
                }
                var$3 = new ju_ConcurrentModificationException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
        }
        if ($this.$paused && $this.$playersOnline.$size0 <= 1) {
            $this.$lastTick = $ctm;
            return;
        }
        $delta = Long_sub($ctm, $this.$lastTick);
        if (Long_gt($delta, Long_fromInt(2000)) && Long_ge(Long_sub($ctm, $this.$timeOfLastWarning), Long_fromInt(15000))) {
            nles_IntegratedServer_$callClinit();
            var$5 = nles_IntegratedServer_logger;
            $elapsed = Long_div(Long_sub($delta, Long_fromInt(2000)), Long_fromInt(50));
            var$3 = new jl_StringBuilder;
            var$3.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(262));
            jl_AbstractStringBuilder_insert4(var$3, var$3.$length0, $elapsed, 10);
            jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(263));
            var$9 = new jl_String;
            var$10 = var$3.$buffer;
            var$14 = var$10.data;
            var$15 = var$3.$length0;
            var$11 = var$14.length;
            if (var$15 >= 0 && var$15 <= (var$11 - 0 | 0)) {
                var$9.$nativeString = $rt_charArrayToString(var$10.data, 0, var$15);
                var$4 = var$5.$logger;
                var$3 = jul_Level_WARNING;
                var$5 = new jul_LogRecord;
                var$5.$level = var$3;
                var$5.$message0 = var$9;
                var$5.$millis = jl_System_currentTimeMillis();
                $delta = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add($delta, Long_fromInt(1));
                var$5.$sequenceNumber = $delta;
                var$5.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log(var$4, var$5);
                $delta = Long_fromInt(2000);
                $this.$timeOfLastWarning = $ctm;
            } else {
                var$3 = new jl_IndexOutOfBoundsException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
        }
        if (Long_lt($delta, Long_ZERO)) {
            nles_IntegratedServer_$callClinit();
            var$5 = nles_IntegratedServer_logger.$logger;
            var$4 = jul_Level_WARNING;
            var$9 = new jul_LogRecord;
            var$9.$level = var$4;
            var$9.$message0 = $rt_s(264);
            var$9.$millis = jl_System_currentTimeMillis();
            $delta = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add($delta, Long_fromInt(1));
            var$9.$sequenceNumber = $delta;
            var$9.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$5, var$9);
            $delta = Long_ZERO;
        }
        if (nms_WorldServer_areAllPlayersAsleep($this.$worldServers.data[0])) {
            $ptr = 1;
            continue main;
        }
        if (Long_le($delta, Long_fromInt(50)))
            return;
        $this.$lastTick = Long_add($this.$lastTick, Long_fromInt(50));
        $ptr = 2;
        continue main;
    case 1:
        nms_MinecraftServer_tick($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$tpsCounter = $this.$tpsCounter + 1 | 0;
        $this.$lastTick = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        return;
    case 2:
        nms_MinecraftServer_tick($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$tpsCounter = $this.$tpsCounter + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ctm, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $delta, $elapsed, var$14, var$15, $ptr);
},
nles_EAGMinecraftServer_setPaused = ($this, $p) => {
    $this.$paused = $p;
    if (!$p) {
        nles_SysUtil_$callClinit();
        $this.$lastTick = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    }
},
nles_EAGMinecraftServer_getPaused = $this => {
    return $this.$paused;
},
nles_EAGMinecraftServer_startServer = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = nles_SkinsPlugin_skinCollection;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$2 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$5 = var$2.length;
            if (var$4 > var$5) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$5) {
                var$6 = var$4 + 1 | 0;
                var$2[var$4] = var$3;
                var$4 = var$6;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        var$1 = nles_SkinsPlugin_capeCollection;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$2 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$5 = var$2.length;
            if (var$4 > var$5) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$5) {
                var$6 = var$4 + 1 | 0;
                var$2[var$4] = var$3;
                var$4 = var$6;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        var$1 = nles_SkinsPlugin_lastSkinLayerUpdate;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$2 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$5 = var$2.length;
            if (var$4 > var$5) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$5) {
                var$6 = var$4 + 1 | 0;
                var$2[var$4] = var$3;
                var$4 = var$6;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        var$1 = $this.$folderName;
        var$7 = Long_ZERO;
        var$3 = $this.$newWorldSettings;
        $ptr = 1;
    case 1:
        nms_MinecraftServer_loadAllWorlds($this, var$1, var$7, var$3);
        if ($rt_suspending()) {
            break main;
        }
        nles_SysUtil_$callClinit();
        $this.$lastTick = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nles_EAGMinecraftServer_stopServer = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_MinecraftServer_stopServer($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = nles_SkinsPlugin_skinCollection;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$2 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$5 = var$2.length;
            if (var$4 > var$5) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$5) {
                var$6 = var$4 + 1 | 0;
                var$2[var$4] = var$3;
                var$4 = var$6;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        var$1 = nles_SkinsPlugin_capeCollection;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$2 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$5 = var$2.length;
            if (var$4 > var$5) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$5) {
                var$6 = var$4 + 1 | 0;
                var$2[var$4] = var$3;
                var$4 = var$6;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        var$1 = nles_SkinsPlugin_lastSkinLayerUpdate;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$2 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$5 = var$2.length;
            if (var$4 > var$5) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$5) {
                var$6 = var$4 + 1 | 0;
                var$2[var$4] = var$3;
                var$4 = var$6;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nles_EAGMinecraftServer_getNetworkThread = $this => {
    return $this.$listenThreadImpl;
},
nles_EAGMinecraftServer_getLogAgent = $this => {
    nles_IntegratedServer_$callClinit();
    return nles_IntegratedServer_logger;
},
nms_ISaveHandler = $rt_classWithoutFields(0),
nms_IPlayerFileData = $rt_classWithoutFields(0);
function nles_VFSSaveHandler() {
    let a = this; jl_Object.call(a);
    a.$worldDirectory = null;
    a.$chunkLoaders = null;
}
let nles_VFSSaveHandler_loadWorldInfo = $this => {
    let var$1, $level_dat_bin, $level_dat, $t, var$5, var$6, var$7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$t = $thread.pop();$level_dat = $thread.pop();$level_dat_bin = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = nles_VFile_createPath($rt_wrapArray(jl_Object, [$this.$worldDirectory, $rt_s(19)]));
        if (var$1 !== null && !jl_String_contains(var$1, $rt_s(168)) ? 0 : 1) {
            $level_dat_bin = null;
            if ($level_dat_bin === null)
                return null;
            a: {
                try {
                    $level_dat = nms_CompressedStreamTools_decompress($level_dat_bin);
                    $t = nms_WorldInfo__init_(nms_NBTTagCompound_getCompoundTag($level_dat, $rt_s(55)));
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return $t;
            }
            if (jl_System_errCache === null) {
                $level_dat = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                var$5.$buf = $rt_createByteArray(32);
                $level_dat.$out0 = var$5;
                var$5 = new jl_StringBuilder;
                var$5.$buffer = $rt_createCharArray(16);
                $level_dat.$sb = var$5;
                $level_dat.$buffer0 = $rt_createCharArray(32);
                $level_dat.$autoFlush = 0;
                $level_dat.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $level_dat;
            }
            $rt_putStderr("Could not parse level.dat!");
            $rt_putStderr("\n");
            jl_Throwable_printStackTrace0($t);
            return null;
        }
        $ptr = 1;
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $level_dat = nles_SYS_VFS;
        $t = $level_dat.$fileMap;
        if (var$1 === null) {
            $t = $t.$elementData.data[0];
            while ($t !== null && $t.$key !== null) {
                $t = $t.$next3;
            }
        } else {
            b: {
                if (!var$1.$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= var$1.$nativeString.length)
                            break b;
                        var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$7 = var$1.$hashCode1;
            $level_dat_bin = $t.$elementData.data;
            $t = $level_dat_bin[var$7 & ($level_dat_bin.length - 1 | 0)];
            while ($t !== null) {
                if ($t.$origKeyHash == var$7) {
                    c: {
                        var$5 = $t.$key;
                        if (var$1 !== var$5) {
                            if (var$1 === var$5)
                                var$6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$5 = var$5;
                                var$6 = var$1.$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break c;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $t = $t.$next3;
            }
        }
        $t = $t === null ? null : $t.$value0;
        if ($t === null) {
            var$5 = $level_dat.$fileMap;
            $t = new nles_VirtualFilesystem$VFSFile;
            $t.$fileSize = (-1);
            $t.$hasBeenDeleted = 0;
            $t.$hasBeenAccessed = 0;
            $t.$exists0 = 0;
            $t.$cache = null;
            $t.$virtualFilesystem = $level_dat;
            $t.$filePath = var$1;
            nles_SysUtil_$callClinit();
            $t.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$5, var$1, $t);
        }
        var$6 = 0;
        $ptr = 2;
    case 2:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes($t, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $level_dat_bin = $tmp;
        if ($level_dat_bin === null)
            return null;
        d: {
            try {
                $level_dat = nms_CompressedStreamTools_decompress($level_dat_bin);
                $t = nms_WorldInfo__init_(nms_NBTTagCompound_getCompoundTag($level_dat, $rt_s(55)));
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                    break d;
                } else {
                    throw $$e;
                }
            }
            return $t;
        }
        if (jl_System_errCache === null) {
            $level_dat = new otcic_JSStderrPrintStream;
            var$5 = new ji_ByteArrayOutputStream;
            var$5.$buf = $rt_createByteArray(32);
            $level_dat.$out0 = var$5;
            var$5 = new jl_StringBuilder;
            var$5.$buffer = $rt_createCharArray(16);
            $level_dat.$sb = var$5;
            $level_dat.$buffer0 = $rt_createCharArray(32);
            $level_dat.$autoFlush = 0;
            $level_dat.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $level_dat;
        }
        $rt_putStderr("Could not parse level.dat!");
        $rt_putStderr("\n");
        jl_Throwable_printStackTrace0($t);
        return null;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $level_dat_bin, $level_dat, $t, var$5, var$6, var$7, $ptr);
},
nles_VFSSaveHandler_getChunkLoader = ($this, $var1) => {
    let var$2, var$3, $loader, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$2 = $this.$chunkLoaders;
    var$3 = $var1.$dimensionId;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        $loader = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        $loader = new jl_Integer;
        $loader.$value = var$3;
    }
    if ($loader === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$5 = $loader.$value;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$7 = var$2.$key;
                if ($loader !== var$7 && !($loader === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    $loader = var$2 === null ? null : var$2.$value0;
    if ($loader === null) {
        $loader = new nles_VFSChunkLoader;
        var$2 = new nles_VFile;
        var$6 = $rt_createArray(jl_Object, 2);
        var$8 = var$6.data;
        var$8[0] = $this.$worldDirectory;
        var$3 = $var1.$dimensionId;
        var$7 = new jl_StringBuilder;
        var$7.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(265));
        jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$3, 10);
        var$9 = new jl_String;
        var$10 = var$7.$buffer;
        var$11 = var$10.data;
        var$12 = var$7.$length0;
        var$13 = var$11.length;
        if (var$12 >= 0 && var$12 <= (var$13 - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString(var$10.data, 0, var$12);
            var$8[1] = var$9;
            var$2.$path = nles_VFile_createPath(var$6);
            $loader.$chunkDirectory = var$2;
            var$2 = $this.$chunkLoaders;
            var$5 = $var1.$dimensionId;
            if (var$5 >= (-128) && var$5 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var1 = jl_Integer_integerCache.data[var$5 + 128 | 0];
            } else {
                $var1 = new jl_Integer;
                $var1.$value = var$5;
            }
            ju_HashMap_putImpl(var$2, $var1, $loader);
        } else {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
    }
    return $loader;
},
nles_VFSSaveHandler_saveWorldInfoWithPlayer = ($this, $var1, $var2) => {
    let $var3, $var4, $compressed, var$6, $level_dat$path, $e, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$e = $thread.pop();$level_dat$path = $thread.pop();var$6 = $thread.pop();$compressed = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $var2 === null ? $var1.$getNBTTagCompound() : $var1.$cloneNBTCompound($var2);
        $var4 = nms_NBTTagCompound__init_();
        $var2 = $var4.$tagMap;
        $var3.$name = $rt_s(55);
        ju_HashMap_putImpl($var2, $rt_s(55), $var3);
        $compressed = $rt_createArray(jl_Object, 2);
        var$6 = $compressed.data;
        var$6[0] = $this.$worldDirectory;
        var$6[1] = $rt_s(19);
        $level_dat$path = nles_VFile_createPath($compressed);
        try {
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $e = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $var1 = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            $var1.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_Object__init_($var2);
            $var2.$buffer = $rt_createCharArray(16);
            $var1.$sb = $var2;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var1;
        }
        $var1 = new jl_StringBuilder;
        $var1.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(266));
        var$9 = $var1.$length0;
        if ($level_dat$path === null)
            $level_dat$path = $rt_s(1);
        jl_AbstractStringBuilder_insert($var1, var$9, $level_dat$path);
        var$10 = $var1.$length0;
        jl_AbstractStringBuilder_insertSpace($var1, var$10, var$10 + 1 | 0);
        $compressed = $var1.$buffer;
        var$6 = $compressed.data;
        var$6[var$10] = 34;
        $var2 = new jl_String;
        var$10 = $var1.$length0;
        var$11 = var$6.length;
        if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
            $var2.$nativeString = $rt_charArrayToString($compressed.data, 0, var$10);
            $rt_putStderr($rt_ustr($var2));
            $rt_putStderr("\n");
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($var1);
                $var1.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $var1.$sb = $var2;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace($e, jl_System_errCache);
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        a: {
            try {
                $tmp = nms_CompressedStreamTools_compress($var4);
                if ($rt_suspending()) {
                    break main;
                }
                $compressed = $tmp;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $e = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                $var1.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_Object__init_($var2);
                $var2.$buffer = $rt_createCharArray(16);
                $var1.$sb = $var2;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(266));
            var$9 = $var1.$length0;
            if ($level_dat$path === null)
                $level_dat$path = $rt_s(1);
            jl_AbstractStringBuilder_insert($var1, var$9, $level_dat$path);
            var$10 = $var1.$length0;
            jl_AbstractStringBuilder_insertSpace($var1, var$10, var$10 + 1 | 0);
            $compressed = $var1.$buffer;
            var$6 = $compressed.data;
            var$6[var$10] = 34;
            $var2 = new jl_String;
            var$10 = $var1.$length0;
            var$11 = var$6.length;
            if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString($compressed.data, 0, var$10);
                $rt_putStderr($rt_ustr($var2));
                $rt_putStderr("\n");
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    $var2 = new ji_ByteArrayOutputStream;
                    $var2.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var1);
                    $var1.$out0 = $var2;
                    $var2 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var2, 16);
                    $var1.$sb = $var2;
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace($e, jl_System_errCache);
                return;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        if ($level_dat$path !== null && !jl_String_contains($level_dat$path, $rt_s(168)) ? 0 : 1) {
            if (!0) {
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    $var2 = new ji_ByteArrayOutputStream;
                    $var2.$buf = $rt_createByteArray(32);
                    $var1.$out0 = $var2;
                    $var2 = new jl_StringBuilder;
                    jl_Object__init_($var2);
                    $var2.$buffer = $rt_createCharArray(16);
                    $var1.$sb = $var2;
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                $var1 = new jl_StringBuilder;
                $var1.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(267));
                var$9 = $var1.$length0;
                if ($level_dat$path === null)
                    $level_dat$path = $rt_s(1);
                jl_AbstractStringBuilder_insert($var1, var$9, $level_dat$path);
                jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(268));
                $var2 = new jl_String;
                $compressed = $var1.$buffer;
                var$6 = $compressed.data;
                var$10 = $var1.$length0;
                var$11 = var$6.length;
                if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
                    $var2.$nativeString = $rt_charArrayToString($compressed.data, 0, var$10);
                    $rt_putStderr($rt_ustr($var2));
                    $rt_putStderr("\n");
                } else {
                    $var1 = new jl_IndexOutOfBoundsException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
            }
            return;
        }
        $ptr = 2;
    case 2:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = nles_SYS_VFS;
        $var2 = $var1.$fileMap;
        if ($level_dat$path === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            b: {
                if (!$level_dat$path.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= $level_dat$path.$nativeString.length)
                            break b;
                        $level_dat$path.$hashCode1 = (31 * $level_dat$path.$hashCode1 | 0) + $level_dat$path.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$11 = $level_dat$path.$hashCode1;
            var$6 = $var2.$elementData.data;
            $var2 = var$6[var$11 & (var$6.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$11) {
                    c: {
                        $var3 = $var2.$key;
                        if ($level_dat$path !== $var3) {
                            if ($level_dat$path === $var3)
                                var$9 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$9 = 0;
                            else {
                                $var3 = $var3;
                                var$9 = $level_dat$path.$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$9) {
                                var$9 = 0;
                                break c;
                            }
                        }
                        var$9 = 1;
                    }
                    if (var$9)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2 === null) {
            $var3 = $var1.$fileMap;
            $var2 = new nles_VirtualFilesystem$VFSFile;
            $var2.$fileSize = (-1);
            $var2.$hasBeenDeleted = 0;
            $var2.$hasBeenAccessed = 0;
            $var2.$exists0 = 0;
            $var2.$cache = null;
            $var2.$virtualFilesystem = $var1;
            $var2.$filePath = $level_dat$path;
            nles_SysUtil_$callClinit();
            $var2.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($var3, $level_dat$path, $var2);
        }
        var$9 = 1;
        $ptr = 3;
    case 3:
        $tmp = nles_VirtualFilesystem$VFSFile_setAllBytes($var2, $compressed, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                $var1.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_Object__init_($var2);
                $var2.$buffer = $rt_createCharArray(16);
                $var1.$sb = $var2;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(267));
            var$9 = $var1.$length0;
            if ($level_dat$path === null)
                $level_dat$path = $rt_s(1);
            jl_AbstractStringBuilder_insert($var1, var$9, $level_dat$path);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(268));
            $var2 = new jl_String;
            $compressed = $var1.$buffer;
            var$6 = $compressed.data;
            var$10 = $var1.$length0;
            var$11 = var$6.length;
            if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString($compressed.data, 0, var$10);
                $rt_putStderr($rt_ustr($var2));
                $rt_putStderr("\n");
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var3, $var4, $compressed, var$6, $level_dat$path, $e, var$9, var$10, var$11, $ptr);
},
nles_VFSSaveHandler_getMapFileFromName = ($this, $var1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = new nles_VFile;
    var$3 = $rt_createArray(jl_Object, 3);
    var$4 = var$3.data;
    var$4[0] = $this.$worldDirectory;
    var$4[1] = $rt_s(214);
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    var$6 = var$5.$length0;
    if ($var1 === null)
        $var1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$5, var$6, $var1);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(184));
    $var1 = new jl_String;
    var$7 = var$5.$buffer;
    var$8 = var$7.data;
    var$9 = var$5.$length0;
    var$6 = var$8.length;
    if (var$9 >= 0 && var$9 <= (var$6 - 0 | 0)) {
        $var1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
        var$4[2] = $var1;
        var$2.$path = nles_VFile_createPath(var$3);
        return var$2;
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $rt_throw($var1);
},
nles_VFSSaveHandler_writePlayerData = ($this, $var1) => {
    let $var2, $t, $playerData$path, var$5, var$6, $bin, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$bin = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$playerData$path = $thread.pop();$t = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = nms_NBTTagCompound__init_();
        nms_Entity_writeToNBT($var1, $var2);
        try {
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $var2 = new otcic_JSStderrPrintStream;
            $playerData$path = new ji_ByteArrayOutputStream;
            $playerData$path.$buf = $rt_createByteArray(32);
            $var2.$out0 = $playerData$path;
            $playerData$path = new jl_StringBuilder;
            $playerData$path.$buffer = $rt_createCharArray(16);
            $var2.$sb = $playerData$path;
            $var2.$buffer0 = $rt_createCharArray(32);
            $var2.$autoFlush = 0;
            $var2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var2;
        }
        $var1 = $var1.$username;
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(269));
        var$5 = $var2.$length0;
        if ($var1 === null)
            $var1 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var2, var$5, $var1);
        var$6 = $var2.$length0;
        jl_AbstractStringBuilder_insertSpace($var2, var$6, var$6 + 1 | 0);
        $bin = $var2.$buffer;
        var$8 = $bin.data;
        var$8[var$6] = 34;
        $var1 = new jl_String;
        var$6 = $var2.$length0;
        var$9 = var$8.length;
        if (var$6 >= 0 && var$6 <= (var$9 - 0 | 0)) {
            $var1.$nativeString = $rt_charArrayToString($bin.data, 0, var$6);
            $rt_putStderr($rt_ustr($var1));
            $rt_putStderr("\n");
            jl_Throwable_printStackTrace0($t);
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        a: {
            try {
                $tmp = nms_CompressedStreamTools_compress($var2);
                if ($rt_suspending()) {
                    break main;
                }
                $bin = $tmp;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $playerData$path = new ji_ByteArrayOutputStream;
                $playerData$path.$buf = $rt_createByteArray(32);
                $var2.$out0 = $playerData$path;
                $playerData$path = new jl_StringBuilder;
                $playerData$path.$buffer = $rt_createCharArray(16);
                $var2.$sb = $playerData$path;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            $var1 = $var1.$username;
            $var2 = new jl_StringBuilder;
            $var2.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(269));
            var$5 = $var2.$length0;
            if ($var1 === null)
                $var1 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var2, var$5, $var1);
            var$6 = $var2.$length0;
            jl_AbstractStringBuilder_insertSpace($var2, var$6, var$6 + 1 | 0);
            $bin = $var2.$buffer;
            var$8 = $bin.data;
            var$8[var$6] = 34;
            $var1 = new jl_String;
            var$6 = $var2.$length0;
            var$9 = var$8.length;
            if (var$6 >= 0 && var$6 <= (var$9 - 0 | 0)) {
                $var1.$nativeString = $rt_charArrayToString($bin.data, 0, var$6);
                $rt_putStderr($rt_ustr($var1));
                $rt_putStderr("\n");
                jl_Throwable_printStackTrace0($t);
                return;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        var$8 = $rt_createArray(jl_Object, 3);
        var$10 = var$8.data;
        var$10[0] = $this.$worldDirectory;
        var$10[1] = $rt_s(270);
        $var2 = $var1.$username;
        $t = $var2.$nativeString.toLowerCase();
        if ($t !== $var2.$nativeString)
            $var2 = jl_String__init_0($t);
        $t = new jl_StringBuilder;
        $t.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($t, $t.$length0, $var2);
        jl_AbstractStringBuilder_insert($t, $t.$length0, $rt_s(184));
        $var2 = new jl_String;
        var$11 = $t.$buffer;
        var$12 = var$11.data;
        var$9 = $t.$length0;
        var$13 = var$12.length;
        if (var$9 >= 0 && var$9 <= (var$13 - 0 | 0)) {
            $var2.$nativeString = $rt_charArrayToString(var$11.data, 0, var$9);
            var$10[2] = $var2;
            $playerData$path = nles_VFile_createPath(var$8);
            if ($playerData$path !== null && !jl_String_contains($playerData$path, $rt_s(168)) ? 0 : 1) {
                if (!0) {
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        $t = new ji_ByteArrayOutputStream;
                        $t.$buf = $rt_createByteArray(32);
                        $var2.$out0 = $t;
                        $t = new jl_StringBuilder;
                        $t.$buffer = $rt_createCharArray(16);
                        $var2.$sb = $t;
                        $var2.$buffer0 = $rt_createCharArray(32);
                        $var2.$autoFlush = 0;
                        $var2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var2;
                    }
                    $var1 = $var1.$username;
                    $var2 = new jl_StringBuilder;
                    $var2.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(271));
                    var$5 = $var2.$length0;
                    if ($var1 === null)
                        $var1 = $rt_s(1);
                    jl_AbstractStringBuilder_insert($var2, var$5, $var1);
                    jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(272));
                    var$5 = $var2.$length0;
                    if ($playerData$path === null)
                        $playerData$path = $rt_s(1);
                    jl_AbstractStringBuilder_insert($var2, var$5, $playerData$path);
                    var$6 = $var2.$length0;
                    jl_AbstractStringBuilder_insertSpace($var2, var$6, var$6 + 1 | 0);
                    $bin = $var2.$buffer;
                    var$8 = $bin.data;
                    var$8[var$6] = 34;
                    $var1 = new jl_String;
                    var$6 = $var2.$length0;
                    var$9 = var$8.length;
                    if (var$6 >= 0 && var$6 <= (var$9 - 0 | 0)) {
                        $var1.$nativeString = $rt_charArrayToString($bin.data, 0, var$6);
                        $rt_putStderr($rt_ustr($var1));
                        $rt_putStderr("\n");
                    } else {
                        $var1 = new jl_IndexOutOfBoundsException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                }
                return;
            }
            $ptr = 2;
            continue main;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 2:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $var2 = nles_SYS_VFS;
        $t = $var2.$fileMap;
        if ($playerData$path === null) {
            $t = $t.$elementData.data[0];
            while ($t !== null && $t.$key !== null) {
                $t = $t.$next3;
            }
        } else {
            b: {
                if (!$playerData$path.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= $playerData$path.$nativeString.length)
                            break b;
                        $playerData$path.$hashCode1 = (31 * $playerData$path.$hashCode1 | 0) + $playerData$path.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$5 = $playerData$path.$hashCode1;
            var$8 = $t.$elementData.data;
            $t = var$8[var$5 & (var$8.length - 1 | 0)];
            while ($t !== null) {
                if ($t.$origKeyHash == var$5) {
                    c: {
                        var$14 = $t.$key;
                        if ($playerData$path !== var$14) {
                            if ($playerData$path === var$14)
                                var$6 = 1;
                            else if (!(var$14 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$14 = var$14;
                                var$6 = $playerData$path.$nativeString !== var$14.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break c;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $t = $t.$next3;
            }
        }
        $t = $t === null ? null : $t.$value0;
        if ($t === null) {
            var$14 = $var2.$fileMap;
            $t = new nles_VirtualFilesystem$VFSFile;
            $t.$fileSize = (-1);
            $t.$hasBeenDeleted = 0;
            $t.$hasBeenAccessed = 0;
            $t.$exists0 = 0;
            $t.$cache = null;
            $t.$virtualFilesystem = $var2;
            $t.$filePath = $playerData$path;
            nles_SysUtil_$callClinit();
            $t.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$14, $playerData$path, $t);
        }
        var$5 = 1;
        $ptr = 3;
    case 3:
        $tmp = nles_VirtualFilesystem$VFSFile_setAllBytes($t, $bin, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $t = new ji_ByteArrayOutputStream;
                $t.$buf = $rt_createByteArray(32);
                $var2.$out0 = $t;
                $t = new jl_StringBuilder;
                $t.$buffer = $rt_createCharArray(16);
                $var2.$sb = $t;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            $var1 = $var1.$username;
            $var2 = new jl_StringBuilder;
            $var2.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(271));
            var$5 = $var2.$length0;
            if ($var1 === null)
                $var1 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var2, var$5, $var1);
            jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(272));
            var$5 = $var2.$length0;
            if ($playerData$path === null)
                $playerData$path = $rt_s(1);
            jl_AbstractStringBuilder_insert($var2, var$5, $playerData$path);
            var$6 = $var2.$length0;
            jl_AbstractStringBuilder_insertSpace($var2, var$6, var$6 + 1 | 0);
            $bin = $var2.$buffer;
            var$8 = $bin.data;
            var$8[var$6] = 34;
            $var1 = new jl_String;
            var$6 = $var2.$length0;
            var$9 = var$8.length;
            if (var$6 >= 0 && var$6 <= (var$9 - 0 | 0)) {
                $var1.$nativeString = $rt_charArrayToString($bin.data, 0, var$6);
                $rt_putStderr($rt_ustr($var1));
                $rt_putStderr("\n");
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $t, $playerData$path, var$5, var$6, $bin, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nles_VFSSaveHandler_readPlayerData = ($this, $var1) => {
    let $playerBin, var$3, $ret, $e, var$6, var$7, var$8, var$9, $playerData$path, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$playerData$path = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$e = $thread.pop();$ret = $thread.pop();var$3 = $thread.pop();$playerBin = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $playerBin = $rt_createArray(jl_Object, 3);
        var$3 = $playerBin.data;
        var$3[0] = $this.$worldDirectory;
        var$3[1] = $rt_s(270);
        $ret = $var1.$username;
        $e = $ret.$nativeString.toLowerCase();
        if ($e !== $ret.$nativeString)
            $ret = jl_String__init_0($e);
        $e = new jl_StringBuilder;
        $e.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($e, $e.$length0, $ret);
        jl_AbstractStringBuilder_insert($e, $e.$length0, $rt_s(184));
        $ret = new jl_String;
        var$6 = $e.$buffer;
        var$7 = var$6.data;
        var$8 = $e.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            $ret.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            var$3[2] = $ret;
            $playerData$path = nles_VFile_createPath($playerBin);
            $ret = null;
            if ($playerData$path !== null && !jl_String_contains($playerData$path, $rt_s(168)) ? 0 : 1) {
                $playerBin = null;
                if ($playerBin === null)
                    $e = $ret;
                else {
                    try {
                        $e = nms_CompressedStreamTools_decompress($playerBin);
                        $ret = $e;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $e = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$11 = new otcic_JSStderrPrintStream;
                        var$12 = new ji_ByteArrayOutputStream;
                        var$12.$buf = $rt_createByteArray(32);
                        var$11.$out0 = var$12;
                        var$12 = new jl_StringBuilder;
                        jl_Object__init_(var$12);
                        var$12.$buffer = $rt_createCharArray(16);
                        var$11.$sb = var$12;
                        var$11.$buffer0 = $rt_createCharArray(32);
                        var$11.$autoFlush = 0;
                        var$11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$11;
                    }
                    $var1 = $var1.$username;
                    var$11 = new jl_StringBuilder;
                    var$11.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(273));
                    var$13 = var$11.$length0;
                    if ($var1 === null)
                        $var1 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$11, var$13, $var1);
                    var$13 = var$11.$length0;
                    jl_AbstractStringBuilder_insertSpace(var$11, var$13, var$13 + 1 | 0);
                    $playerBin = var$11.$buffer;
                    var$3 = $playerBin.data;
                    var$3[var$13] = 34;
                    $var1 = new jl_String;
                    var$14 = var$11.$length0;
                    var$8 = var$3.length;
                    if (var$14 >= 0 && var$14 <= (var$8 - 0 | 0)) {
                        $var1.$nativeString = $rt_charArrayToString($playerBin.data, 0, var$14);
                        $rt_putStderr($rt_ustr($var1));
                        $rt_putStderr("\n");
                        if (jl_System_errCache === null) {
                            $var1 = new otcic_JSStderrPrintStream;
                            var$11 = new ji_ByteArrayOutputStream;
                            var$11.$buf = $rt_createByteArray(32);
                            jl_Object__init_($var1);
                            $var1.$out0 = var$11;
                            var$11 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_0(var$11, 16);
                            $var1.$sb = var$11;
                            $var1.$buffer0 = $rt_createCharArray(32);
                            $var1.$autoFlush = 0;
                            $var1.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var1;
                        }
                        jl_Throwable_printStackTrace($e, jl_System_errCache);
                        $e = $ret;
                    } else {
                        $var1 = new jl_IndexOutOfBoundsException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                }
                return $e;
            }
            $ptr = 1;
            continue main;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $e = nles_SYS_VFS;
        var$11 = $e.$fileMap;
        if ($playerData$path === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            a: {
                if (!$playerData$path.$hashCode1) {
                    var$13 = 0;
                    while (true) {
                        if (var$13 >= $playerData$path.$nativeString.length)
                            break a;
                        $playerData$path.$hashCode1 = (31 * $playerData$path.$hashCode1 | 0) + $playerData$path.$nativeString.charCodeAt(var$13) | 0;
                        var$13 = var$13 + 1 | 0;
                    }
                }
            }
            var$8 = $playerData$path.$hashCode1;
            $playerBin = var$11.$elementData.data;
            var$11 = $playerBin[var$8 & ($playerBin.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$8) {
                    b: {
                        var$12 = var$11.$key;
                        if ($playerData$path !== var$12) {
                            if ($playerData$path === var$12)
                                var$13 = 1;
                            else if (!(var$12 instanceof jl_String))
                                var$13 = 0;
                            else {
                                var$12 = var$12;
                                var$13 = $playerData$path.$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$13) {
                                var$13 = 0;
                                break b;
                            }
                        }
                        var$13 = 1;
                    }
                    if (var$13)
                        break;
                }
                var$11 = var$11.$next3;
            }
        }
        var$11 = var$11 === null ? null : var$11.$value0;
        if (var$11 === null) {
            var$12 = $e.$fileMap;
            var$11 = new nles_VirtualFilesystem$VFSFile;
            var$11.$fileSize = (-1);
            var$11.$hasBeenDeleted = 0;
            var$11.$hasBeenAccessed = 0;
            var$11.$exists0 = 0;
            var$11.$cache = null;
            var$11.$virtualFilesystem = $e;
            var$11.$filePath = $playerData$path;
            nles_SysUtil_$callClinit();
            var$11.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$12, $playerData$path, var$11);
        }
        var$13 = 0;
        $ptr = 3;
        continue main;
    case 2:
        c: {
            try {
                nms_Entity_readFromNBT($var1, $e);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $e = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$11 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                var$12.$buf = $rt_createByteArray(32);
                var$11.$out0 = var$12;
                var$12 = new jl_StringBuilder;
                jl_Object__init_(var$12);
                var$12.$buffer = $rt_createCharArray(16);
                var$11.$sb = var$12;
                var$11.$buffer0 = $rt_createCharArray(32);
                var$11.$autoFlush = 0;
                var$11.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$11;
            }
            $var1 = $var1.$username;
            var$11 = new jl_StringBuilder;
            var$11.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(273));
            var$13 = var$11.$length0;
            if ($var1 === null)
                $var1 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$11, var$13, $var1);
            var$13 = var$11.$length0;
            jl_AbstractStringBuilder_insertSpace(var$11, var$13, var$13 + 1 | 0);
            $playerBin = var$11.$buffer;
            var$3 = $playerBin.data;
            var$3[var$13] = 34;
            $var1 = new jl_String;
            var$14 = var$11.$length0;
            var$8 = var$3.length;
            if (var$14 >= 0 && var$14 <= (var$8 - 0 | 0)) {
                $var1.$nativeString = $rt_charArrayToString($playerBin.data, 0, var$14);
                $rt_putStderr($rt_ustr($var1));
                $rt_putStderr("\n");
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$11 = new ji_ByteArrayOutputStream;
                    var$11.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var1);
                    $var1.$out0 = var$11;
                    var$11 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0(var$11, 16);
                    $var1.$sb = var$11;
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace($e, jl_System_errCache);
                $e = $ret;
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
        }
        return $e;
    case 3:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes(var$11, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $playerBin = $tmp;
        if ($playerBin === null)
            $e = $ret;
        else {
            try {
                $e = nms_CompressedStreamTools_decompress($playerBin);
                $ret = $e;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $e = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$11 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                var$12.$buf = $rt_createByteArray(32);
                var$11.$out0 = var$12;
                var$12 = new jl_StringBuilder;
                jl_Object__init_(var$12);
                var$12.$buffer = $rt_createCharArray(16);
                var$11.$sb = var$12;
                var$11.$buffer0 = $rt_createCharArray(32);
                var$11.$autoFlush = 0;
                var$11.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$11;
            }
            $var1 = $var1.$username;
            var$11 = new jl_StringBuilder;
            var$11.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(273));
            var$13 = var$11.$length0;
            if ($var1 === null)
                $var1 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$11, var$13, $var1);
            var$13 = var$11.$length0;
            jl_AbstractStringBuilder_insertSpace(var$11, var$13, var$13 + 1 | 0);
            $playerBin = var$11.$buffer;
            var$3 = $playerBin.data;
            var$3[var$13] = 34;
            $var1 = new jl_String;
            var$14 = var$11.$length0;
            var$8 = var$3.length;
            if (var$14 >= 0 && var$14 <= (var$8 - 0 | 0)) {
                $var1.$nativeString = $rt_charArrayToString($playerBin.data, 0, var$14);
                $rt_putStderr($rt_ustr($var1));
                $rt_putStderr("\n");
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$11 = new ji_ByteArrayOutputStream;
                    var$11.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var1);
                    $var1.$out0 = var$11;
                    var$11 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0(var$11, 16);
                    $var1.$sb = var$11;
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace($e, jl_System_errCache);
                $e = $ret;
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
        }
        return $e;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $playerBin, var$3, $ret, $e, var$6, var$7, var$8, var$9, $playerData$path, var$11, var$12, var$13, var$14, $ptr);
},
nles_VFSSaveHandler_worldNameToFolderName = $par1Str => {
    let var$2, var$3, var$4, var$5, $shit, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$shit = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Str = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = jur_Matcher__init_(jur_Pattern_compile($rt_s(181), 0), $par1Str);
        $par1Str = new jl_StringBuffer;
        $par1Str.$buffer = $rt_createCharArray(16);
        var$2.$leftBound0 = 0;
        var$3 = var$2.$string.$nativeString.length;
        var$2.$rightBound0 = var$3;
        var$4 = var$2.$matchResult;
        var$5 = var$2.$string;
        $shit = var$2.$leftBound0;
        var$4.$valid = 0;
        var$4.$mode0 = 2;
        var$7 = var$4.$groupBounds.data;
        var$8 = 0;
        var$9 = var$7.length;
        if (var$8 > var$9) {
            $par1Str = new jl_IllegalArgumentException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        while (var$8 < var$9) {
            var$10 = var$8 + 1 | 0;
            var$7[var$8] = (-1);
            var$8 = var$10;
        }
        var$7 = var$4.$consumers.data;
        var$8 = 0;
        var$9 = var$7.length;
        if (var$8 > var$9) {
            $par1Str = new jl_IllegalArgumentException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        while (var$8 < var$9) {
            var$10 = var$8 + 1 | 0;
            var$7[var$8] = (-1);
            var$8 = var$10;
        }
        if (var$5 !== null)
            var$4.$string0 = var$5;
        if ($shit >= 0) {
            var$4.$leftBound = $shit;
            var$4.$rightBound = var$3;
        }
        var$4.$startIndex = var$4.$leftBound;
        var$2.$appendPos = 0;
        var$2.$replacement = null;
        var$4.$previousMatch = (-1);
        while (true) {
            if (!jur_Matcher_find(var$2)) {
                var$11 = var$2.$string;
                var$2 = jl_String_substring(var$11, var$2.$appendPos, var$11.$nativeString.length);
                var$8 = var$2.$nativeString.length;
                jl_AbstractStringBuilder_insert1($par1Str, $par1Str.$length0, var$2, 0, var$8);
                var$2 = new jl_String;
                var$7 = $par1Str.$buffer;
                var$12 = var$7.data;
                var$13 = $par1Str.$length0;
                var$8 = var$12.length;
                if (var$13 >= 0 && var$13 <= (var$8 - 0 | 0)) {
                    var$2.$nativeString = $rt_charArrayToString(var$7.data, 0, var$13);
                    $shit = 1;
                    var$13 = 95;
                    a: {
                        while ($shit) {
                            var$4 = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$2, $rt_s(19)]));
                            if (!(var$4 !== null && !jl_String_contains(var$4, $rt_s(168)) ? 0 : 1)) {
                                $ptr = 1;
                                continue main;
                            }
                            $shit = 0;
                            if (!$shit)
                                continue;
                            $par1Str = new jl_StringBuilder;
                            $par1Str.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, var$2);
                            var$8 = $par1Str.$length0;
                            jl_AbstractStringBuilder_insertSpace($par1Str, var$8, var$8 + 1 | 0);
                            var$7 = $par1Str.$buffer;
                            var$12 = var$7.data;
                            var$12[var$8] = var$13;
                            var$2 = new jl_String;
                            var$9 = $par1Str.$length0;
                            var$10 = var$12.length;
                            if (var$9 < 0)
                                break a;
                            if (var$9 > (var$10 - 0 | 0))
                                break a;
                            var$2.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                        }
                        return var$2;
                    }
                    $par1Str = new jl_IndexOutOfBoundsException;
                    $par1Str.$suppressionEnabled = 1;
                    $par1Str.$writableStackTrace = 1;
                    $rt_throw($par1Str);
                }
                $par1Str = new jl_IndexOutOfBoundsException;
                $par1Str.$suppressionEnabled = 1;
                $par1Str.$writableStackTrace = 1;
                $rt_throw($par1Str);
            }
            var$2.$processedRepl = jur_Matcher_processReplacement(var$2, $rt_s(204));
            var$4 = var$2.$string;
            $shit = var$2.$appendPos;
            var$5 = var$2.$matchResult;
            if (!var$5.$valid) {
                $par1Str = new jl_IllegalStateException;
                $par1Str.$suppressionEnabled = 1;
                $par1Str.$writableStackTrace = 1;
                $rt_throw($par1Str);
            }
            if (0 >= var$5.$groupCount) {
                $par1Str = new jl_IndexOutOfBoundsException;
                jl_RuntimeException__init_0($par1Str, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 0)));
                $rt_throw($par1Str);
            }
            var$4 = jl_String_substring(var$4, $shit, var$5.$groupBounds.data[0]);
            var$10 = var$4.$nativeString.length;
            jl_AbstractStringBuilder_insert1($par1Str, $par1Str.$length0, var$4, 0, var$10);
            var$4 = var$2.$processedRepl;
            jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, var$4);
            var$4 = var$2.$matchResult;
            if (!var$4.$valid) {
                $par1Str = new jl_IllegalStateException;
                $par1Str.$suppressionEnabled = 1;
                $par1Str.$writableStackTrace = 1;
                $rt_throw($par1Str);
            }
            if (0 >= var$4.$groupCount)
                break;
            var$2.$appendPos = var$4.$groupBounds.data[1];
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        jl_RuntimeException__init_0($par1Str, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 0)));
        $rt_throw($par1Str);
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $par1Str = nles_SYS_VFS;
        var$11 = $par1Str.$fileMap;
        if (var$4 === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            b: {
                if (!var$4.$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= var$4.$nativeString.length)
                            break b;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = var$4.$hashCode1;
            var$7 = var$11.$elementData.data;
            var$11 = var$7[var$9 & (var$7.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$9) {
                    var$5 = var$11.$key;
                    if (var$4 !== var$5 && !jl_String_equals(var$4, var$5) ? 0 : 1)
                        break;
                }
                var$11 = var$11.$next3;
            }
        }
        var$5 = var$11 === null ? null : var$11.$value0;
        if (var$5 === null) {
            var$11 = $par1Str.$fileMap;
            var$5 = new nles_VirtualFilesystem$VFSFile;
            var$5.$fileSize = (-1);
            var$5.$hasBeenDeleted = 0;
            var$5.$hasBeenAccessed = 0;
            var$5.$exists0 = 0;
            var$5.$cache = null;
            var$5.$virtualFilesystem = $par1Str;
            var$5.$filePath = var$4;
            nles_SysUtil_$callClinit();
            var$5.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$11, var$4, var$5);
        }
        if (var$5.$hasBeenDeleted)
            $shit = 0;
        else {
            nles_SysUtil_$callClinit();
            var$5.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (!var$5.$hasBeenAccessed) {
                $par1Str = var$5.$virtualFilesystem.$indexeddb;
                var$11 = var$5.$filePath;
                $ptr = 2;
                continue main;
            }
            $shit = var$5.$exists0;
        }
        $shit = !$shit ? 0 : 1;
        c: {
            while (true) {
                if ($shit) {
                    $par1Str = new jl_StringBuilder;
                    $par1Str.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, var$2);
                    var$8 = $par1Str.$length0;
                    jl_AbstractStringBuilder_insertSpace($par1Str, var$8, var$8 + 1 | 0);
                    var$7 = $par1Str.$buffer;
                    var$12 = var$7.data;
                    var$12[var$8] = var$13;
                    var$2 = new jl_String;
                    var$9 = $par1Str.$length0;
                    var$10 = var$12.length;
                    if (var$9 < 0)
                        break c;
                    if (var$9 > (var$10 - 0 | 0))
                        break c;
                    var$2.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                }
                if (!$shit)
                    break;
                var$4 = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$2, $rt_s(19)]));
                if (!(var$4 !== null && !jl_String_contains(var$4, $rt_s(168)) ? 0 : 1)) {
                    continue main;
                }
                $shit = 0;
            }
            return var$2;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 2:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_fileExists$_asyncCall_$($par1Str, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par1Str = $tmp;
        $shit = $par1Str.$bool;
        var$5.$exists0 = $shit;
        var$5.$hasBeenAccessed = 1;
        $shit = !$shit ? 0 : 1;
        b: {
            while (true) {
                if ($shit) {
                    $par1Str = new jl_StringBuilder;
                    $par1Str.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($par1Str, $par1Str.$length0, var$2);
                    var$8 = $par1Str.$length0;
                    jl_AbstractStringBuilder_insertSpace($par1Str, var$8, var$8 + 1 | 0);
                    var$7 = $par1Str.$buffer;
                    var$12 = var$7.data;
                    var$12[var$8] = var$13;
                    var$2 = new jl_String;
                    var$9 = $par1Str.$length0;
                    var$10 = var$12.length;
                    if (var$9 < 0)
                        break b;
                    if (var$9 > (var$10 - 0 | 0))
                        break b;
                    var$2.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                }
                if (!$shit)
                    break;
                var$4 = nles_VFile_createPath($rt_wrapArray(jl_Object, [$rt_s(18), var$2, $rt_s(19)]));
                if (!(var$4 !== null && !jl_String_contains(var$4, $rt_s(168)) ? 0 : 1)) {
                    $ptr = 1;
                    continue main;
                }
                $shit = 0;
            }
            return var$2;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par1Str, var$2, var$3, var$4, var$5, $shit, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
otjc_JSString = $rt_classWithoutFields(),
nles_MessageChannel = $rt_classWithoutFields(),
nles_MessageChannel__init_ = $this => {
    otji_JSWrapper_wrap($this);
},
nles_MessageChannel__init_0 = () => {
    let var_0 = new nles_MessageChannel();
    nles_MessageChannel__init_(var_0);
    return var_0;
},
otjde_EventListener = $rt_classWithoutFields(0),
nles_SysUtil$1 = $rt_classWithoutFields(),
nles_SysUtil$1__init_ = $this => {
    return;
},
nles_SysUtil$1__init_0 = () => {
    let var_0 = new nles_SysUtil$1();
    nles_SysUtil$1__init_(var_0);
    return var_0;
},
nles_SysUtil$1_handleEvent$exported$0 = (var$0, var$1) => {
    nles_SysUtil_$callClinit();
    var$1 = nles_SysUtil_currentContinueHack;
    nles_SysUtil_currentContinueHack = null;
    if (var$1 !== null)
        var$1.$run();
};
function nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0() {
    jl_Object.call(this);
    this.$_0 = null;
}
let nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0__init_ = (var$0, var$1) => {
    var$0.$_0 = var$1;
},
nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0__init_0 = var_0 => {
    let var_1 = new nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0();
    nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0__init_(var_1, var_0);
    return var_1;
},
nles_SysUtil$checkImmediateContinueSupport$lambda$_10_0_run = var$0 => {
    let var$1;
    var$1 = var$0.$_0.data;
    nles_SysUtil_$callClinit();
    var$1[0] = 1;
},
ju_Objects = $rt_classWithoutFields(),
ju_Objects__init_ = $this => {
    return;
},
ju_Objects__init_0 = () => {
    let var_0 = new ju_Objects();
    ju_Objects__init_(var_0);
    return var_0;
},
ju_Objects_equals = ($a, $b) => {
    if ($a === $b)
        return 1;
    return $a !== null ? $a.$equals($b) : $b !== null ? 0 : 1;
},
ju_Objects_checkFromIndexSize = ($fromIndex, $size, $length) => {
    let var$4;
    if ($fromIndex >= 0 && $size >= 0 && $size <= ($length - $fromIndex | 0))
        return $fromIndex;
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
};
function ji_ByteArrayOutputStream() {
    let a = this; ji_OutputStream.call(a);
    a.$buf = null;
    a.$count0 = 0;
}
let ji_ByteArrayOutputStream__init_2 = $this => {
    $this.$buf = $rt_createByteArray(32);
},
ji_ByteArrayOutputStream__init_ = () => {
    let var_0 = new ji_ByteArrayOutputStream();
    ji_ByteArrayOutputStream__init_2(var_0);
    return var_0;
},
ji_ByteArrayOutputStream__init_1 = ($this, $size) => {
    $this.$buf = $rt_createByteArray($size);
},
ji_ByteArrayOutputStream__init_0 = var_0 => {
    let var_1 = new ji_ByteArrayOutputStream();
    ji_ByteArrayOutputStream__init_1(var_1, var_0);
    return var_1;
},
ji_ByteArrayOutputStream_write = ($this, $b) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$count0;
    var$3 = var$2 + 1 | 0;
    var$4 = $this.$buf.data;
    var$5 = var$4.length;
    if (var$5 < var$3) {
        var$6 = (var$5 * 3 | 0) / 2 | 0;
        if (var$3 > var$6)
            var$6 = var$3;
        var$7 = $rt_createByteArray(var$6);
        if (var$6 < var$5)
            var$5 = var$6;
        var$8 = var$7.data;
        var$6 = 0;
        while (var$6 < var$5) {
            var$8[var$6] = var$4[var$6];
            var$6 = var$6 + 1 | 0;
        }
        $this.$buf = var$7;
    }
    var$7 = $this.$buf.data;
    $this.$count0 = var$3;
    var$7[var$2] = $b << 24 >> 24;
},
ji_ByteArrayOutputStream_write0 = ($this, $b, $off, $len) => {
    let var$4, var$5, var$6, $i, var$8, var$9, var$10;
    var$4 = $this.$count0 + $len | 0;
    var$5 = $this.$buf.data;
    var$6 = var$5.length;
    if (var$6 < var$4) {
        $i = (var$6 * 3 | 0) / 2 | 0;
        if (var$4 > $i)
            $i = var$4;
        var$8 = $rt_createByteArray($i);
        if ($i < var$6)
            var$6 = $i;
        var$9 = var$8.data;
        $i = 0;
        while ($i < var$6) {
            var$9[$i] = var$5[$i];
            $i = $i + 1 | 0;
        }
        $this.$buf = var$8;
    }
    $i = 0;
    while ($i < $len) {
        var$8 = $b.data;
        var$5 = $this.$buf.data;
        var$10 = $this.$count0;
        $this.$count0 = var$10 + 1 | 0;
        var$6 = $off + 1 | 0;
        var$5[var$10] = var$8[$off];
        $i = $i + 1 | 0;
        $off = var$6;
    }
},
ji_ByteArrayOutputStream_toByteArray = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$buf.data;
    var$2 = $this.$count0;
    var$3 = $rt_createByteArray(var$2);
    var$4 = var$1.length;
    if (var$2 < var$4)
        var$4 = var$2;
    var$5 = var$3.data;
    var$2 = 0;
    while (var$2 < var$4) {
        var$5[var$2] = var$1[var$2];
        var$2 = var$2 + 1 | 0;
    }
    return var$3;
},
ji_ByteArrayOutputStream_size = $this => {
    return $this.$count0;
},
ju_Map = $rt_classWithoutFields(0);
function ju_AbstractMap() {
    let a = this; jl_Object.call(a);
    a.$cachedKeySet = null;
    a.$cachedValues = null;
}
let ju_AbstractMap__init_ = $this => {
    return;
},
ju_AbstractMap_equals = ($this, $obj) => {
    let $other, $it, $entry, $$je;
    if ($this === $obj)
        return 1;
    if (!$rt_isInstance($obj, ju_Map))
        return 0;
    $other = $obj;
    if ($this.$elementCount != $other.$elementCount)
        return 0;
    a: {
        try {
            $it = ju_HashMap$HashMapEntrySet_iterator(ju_HashMap_entrySet($this));
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_ClassCastException) {
                break a;
            } else if ($$je instanceof jl_NullPointerException) {
                break a;
            } else {
                throw $$e;
            }
        }
        b: {
            c: {
                try {
                    while (ju_HashMap$AbstractMapIterator_hasNext($it)) {
                        $entry = ju_HashMap$EntryIterator_next($it);
                        if (!ju_HashMap_containsKey($other, ju_MapEntry_getKey($entry)))
                            break b;
                        if (!ju_Objects_equals(ju_MapEntry_getValue($entry), ju_HashMap_get($other, ju_MapEntry_getKey($entry))))
                            break c;
                    }
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_ClassCastException) {
                        break a;
                    } else if ($$je instanceof jl_NullPointerException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return 1;
            }
            try {
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_ClassCastException) {
                    break a;
                } else if ($$je instanceof jl_NullPointerException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            return 0;
        }
        try {
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_ClassCastException) {
                break a;
            } else if ($$je instanceof jl_NullPointerException) {
                break a;
            } else {
                throw $$e;
            }
        }
        return 0;
    }
    return 0;
},
ju_AbstractMap_hashCode = $this => {
    let $result, $iter, var$3, var$4, var$5;
    $result = 0;
    $iter = new ju_HashMap$EntryIterator;
    $iter.$associatedMap = $this;
    $iter.$expectedModCount = $this.$modCount1;
    $iter.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext($iter)) {
        ju_HashMap$AbstractMapIterator_makeNext($iter);
        var$3 = $iter.$currentEntry0;
        var$4 = var$3.$key;
        var$5 = var$4 !== null ? var$4.$hashCode() : 0;
        var$4 = var$3.$value0;
        $result = $result + (var$5 ^ (var$4 !== null ? var$4.$hashCode() : 0)) | 0;
    }
    return $result;
},
ju_AbstractMap_toString = $this => {
    let $sb, var$2, $iter, var$4, var$5, var$6, var$7, var$8;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    var$2 = $sb.$length0;
    jl_AbstractStringBuilder_insertSpace($sb, var$2, var$2 + 1 | 0);
    $sb.$buffer.data[var$2] = 123;
    $iter = new ju_HashMap$EntryIterator;
    $iter.$associatedMap = $this;
    $iter.$expectedModCount = $this.$modCount1;
    $iter.$futureEntry0 = null;
    if (ju_HashMap$AbstractMapIterator_hasNext($iter)) {
        ju_HashMap$AbstractMapIterator_makeNext($iter);
        var$4 = $iter.$currentEntry0;
        var$5 = var$4.$key;
        if (var$5 === $this)
            var$5 = $rt_s(274);
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$5 === null ? $rt_s(1) : var$5.$toString());
        var$2 = $sb.$length0;
        jl_AbstractStringBuilder_insertSpace($sb, var$2, var$2 + 1 | 0);
        $sb.$buffer.data[var$2] = 61;
        var$5 = var$4.$value0;
        if (var$5 === $this)
            var$5 = $rt_s(274);
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$5 === null ? $rt_s(1) : var$5.$toString());
    }
    while (ju_HashMap$AbstractMapIterator_hasNext($iter)) {
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(118));
        ju_HashMap$AbstractMapIterator_makeNext($iter);
        var$4 = $iter.$currentEntry0;
        var$5 = var$4.$key;
        if (var$5 === $this)
            var$5 = $rt_s(274);
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$5 === null ? $rt_s(1) : var$5.$toString());
        var$2 = $sb.$length0;
        jl_AbstractStringBuilder_insertSpace($sb, var$2, var$2 + 1 | 0);
        $sb.$buffer.data[var$2] = 61;
        var$5 = var$4.$value0;
        if (var$5 === $this)
            var$5 = $rt_s(274);
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$5 === null ? $rt_s(1) : var$5.$toString());
    }
    var$2 = $sb.$length0;
    jl_AbstractStringBuilder_insertSpace($sb, var$2, var$2 + 1 | 0);
    var$6 = $sb.$buffer;
    var$7 = var$6.data;
    var$7[var$2] = 125;
    var$5 = new jl_String;
    var$2 = $sb.$length0;
    var$8 = var$7.length;
    if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
        return var$5;
    }
    $sb = new jl_IndexOutOfBoundsException;
    $sb.$suppressionEnabled = 1;
    $sb.$writableStackTrace = 1;
    $rt_throw($sb);
};
function ju_HashMap() {
    let a = this; ju_AbstractMap.call(a);
    a.$elementCount = 0;
    a.$elementData = null;
    a.$modCount1 = 0;
    a.$loadFactor = 0.0;
    a.$threshold = 0;
}
let ju_HashMap_newElementArray = ($this, $s) => {
    return $rt_createArray(ju_HashMap$HashEntry, $s);
},
ju_HashMap__init_4 = $this => {
    let var$1, var$2, var$3;
    var$1 = ju_HashMap_calculateCapacity(16);
    $this.$elementCount = 0;
    var$2 = $this.$newElementArray(var$1);
    var$3 = var$2.data;
    $this.$elementData = var$2;
    $this.$loadFactor = 0.75;
    $this.$threshold = var$3.length * 0.75 | 0;
},
ju_HashMap__init_ = () => {
    let var_0 = new ju_HashMap();
    ju_HashMap__init_4(var_0);
    return var_0;
},
ju_HashMap__init_3 = ($this, $capacity) => {
    let var$2, var$3, var$4;
    if ($capacity < 0) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $capacity = ju_HashMap_calculateCapacity($capacity);
    $this.$elementCount = 0;
    var$3 = $this.$newElementArray($capacity);
    var$4 = var$3.data;
    $this.$elementData = var$3;
    $this.$loadFactor = 0.75;
    $this.$threshold = var$4.length * 0.75 | 0;
},
ju_HashMap__init_1 = var_0 => {
    let var_1 = new ju_HashMap();
    ju_HashMap__init_3(var_1, var_0);
    return var_1;
},
ju_HashMap_calculateCapacity = $x => {
    let var$2;
    if ($x >= 1073741824)
        return 1073741824;
    if (!$x)
        return 16;
    var$2 = $x - 1 | 0;
    $x = var$2 | var$2 >> 1;
    $x = $x | $x >> 2;
    $x = $x | $x >> 4;
    $x = $x | $x >> 8;
    return ($x | $x >> 16) + 1 | 0;
},
ju_HashMap__init_2 = ($this, $capacity, $loadFactor) => {
    let var$3, var$4, var$5;
    if ($capacity >= 0 && $loadFactor > 0.0) {
        $capacity = ju_HashMap_calculateCapacity($capacity);
        $this.$elementCount = 0;
        var$3 = $this.$newElementArray($capacity);
        var$4 = var$3.data;
        $this.$elementData = var$3;
        $this.$loadFactor = $loadFactor;
        $this.$threshold = var$4.length * $loadFactor | 0;
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
ju_HashMap__init_0 = (var_0, var_1) => {
    let var_2 = new ju_HashMap();
    ju_HashMap__init_2(var_2, var_0, var_1);
    return var_2;
},
ju_HashMap_clear = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    if ($this.$elementCount > 0) {
        $this.$elementCount = 0;
        var$1 = $this.$elementData.data;
        var$2 = null;
        var$3 = 0;
        var$4 = var$1.length;
        if (var$3 > var$4) {
            var$2 = new jl_IllegalArgumentException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        while (var$3 < var$4) {
            var$5 = var$3 + 1 | 0;
            var$1[var$3] = var$2;
            var$3 = var$5;
        }
        $this.$modCount1 = $this.$modCount1 + 1 | 0;
    }
},
ju_HashMap_computeThreshold = $this => {
    $this.$threshold = $this.$elementData.data.length * $this.$loadFactor | 0;
},
ju_HashMap_containsKey = ($this, $key) => {
    let $m, var$3, var$4, var$5;
    if ($key === null) {
        $m = $this.$elementData.data[0];
        while ($m !== null && $m.$key !== null) {
            $m = $m.$next3;
        }
    } else {
        var$3 = $key.$hashCode();
        var$4 = $this.$elementData.data;
        $m = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($m !== null) {
            if ($m.$origKeyHash == var$3) {
                var$5 = $m.$key;
                if ($key !== var$5 && !$key.$equals(var$5) ? 0 : 1)
                    break;
            }
            $m = $m.$next3;
        }
    }
    return $m === null ? 0 : 1;
},
ju_HashMap_entrySet = $this => {
    let var$1;
    var$1 = new ju_HashMap$HashMapEntrySet;
    var$1.$associatedMap0 = $this;
    return var$1;
},
ju_HashMap_get = ($this, $key) => {
    let $m, var$3, var$4, var$5;
    if ($key === null) {
        $m = $this.$elementData.data[0];
        while ($m !== null && $m.$key !== null) {
            $m = $m.$next3;
        }
    } else {
        var$3 = $key.$hashCode();
        var$4 = $this.$elementData.data;
        $m = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($m !== null) {
            if ($m.$origKeyHash == var$3) {
                var$5 = $m.$key;
                if ($key !== var$5 && !$key.$equals(var$5) ? 0 : 1)
                    break;
            }
            $m = $m.$next3;
        }
    }
    if ($m === null)
        return null;
    return $m.$value0;
},
ju_HashMap_entryByKey = ($this, $key) => {
    let $m, $hash, var$4, var$5;
    if ($key === null) {
        $m = $this.$elementData.data[0];
        while ($m !== null && $m.$key !== null) {
            $m = $m.$next3;
        }
    } else {
        $hash = $key.$hashCode();
        var$4 = $this.$elementData.data;
        $m = var$4[$hash & (var$4.length - 1 | 0)];
        while ($m !== null) {
            if ($m.$origKeyHash == $hash) {
                var$5 = $m.$key;
                if ($key !== var$5 && !$key.$equals(var$5) ? 0 : 1)
                    break;
            }
            $m = $m.$next3;
        }
    }
    return $m;
},
ju_HashMap_findNonNullKeyEntry = ($this, $key, $index, $keyHash) => {
    let $m, var$5;
    $m = $this.$elementData.data[$index];
    while ($m !== null) {
        if ($m.$origKeyHash == $keyHash) {
            var$5 = $m.$key;
            if ($key !== var$5 && !$key.$equals(var$5) ? 0 : 1)
                break;
        }
        $m = $m.$next3;
    }
    return $m;
},
ju_HashMap_findNullKeyEntry = $this => {
    let $m;
    $m = $this.$elementData.data[0];
    while ($m !== null && $m.$key !== null) {
        $m = $m.$next3;
    }
    return $m;
},
ju_HashMap_isEmpty = $this => {
    return $this.$elementCount ? 0 : 1;
},
ju_HashMap_keySet = $this => {
    let var$1;
    if ($this.$cachedKeySet === null) {
        var$1 = new ju_HashMap$1;
        var$1.$this$0 = $this;
        $this.$cachedKeySet = var$1;
    }
    return $this.$cachedKeySet;
},
ju_HashMap_put = ($this, $key, $value) => {
    return ju_HashMap_putImpl($this, $key, $value);
},
ju_HashMap_putImpl = ($this, $key, $value) => {
    let var$3, $entry, $result, var$6, $hash, $index;
    if ($key === null) {
        var$3 = $this.$elementData.data;
        $entry = var$3[0];
        while ($entry !== null && $entry.$key !== null) {
            $entry = $entry.$next3;
        }
        if ($entry === null) {
            $this.$modCount1 = $this.$modCount1 + 1 | 0;
            $result = null;
            $entry = new ju_HashMap$HashEntry;
            $key = null;
            $entry.$key = $result;
            $entry.$value0 = $key;
            $entry.$origKeyHash = 0;
            $entry.$next3 = var$3[0];
            var$3[0] = $entry;
            var$6 = $this.$elementCount + 1 | 0;
            $this.$elementCount = var$6;
            if (var$6 > $this.$threshold)
                ju_HashMap_rehash($this, var$3.length);
        }
    } else {
        $hash = $key.$hashCode();
        var$3 = $this.$elementData.data;
        $index = $hash & (var$3.length - 1 | 0);
        $entry = var$3[$index];
        while ($entry !== null) {
            if ($entry.$origKeyHash == $hash) {
                $result = $entry.$key;
                if ($key !== $result && !$key.$equals($result) ? 0 : 1)
                    break;
            }
            $entry = $entry.$next3;
        }
        if ($entry === null) {
            $this.$modCount1 = $this.$modCount1 + 1 | 0;
            $entry = new ju_HashMap$HashEntry;
            $result = null;
            $entry.$key = $key;
            $entry.$value0 = $result;
            $entry.$origKeyHash = $hash;
            var$3 = $this.$elementData.data;
            $entry.$next3 = var$3[$index];
            var$3[$index] = $entry;
            var$6 = $this.$elementCount + 1 | 0;
            $this.$elementCount = var$6;
            if (var$6 > $this.$threshold)
                ju_HashMap_rehash($this, var$3.length);
        }
    }
    $result = $entry.$value0;
    $entry.$value0 = $value;
    return $result;
},
ju_HashMap_rehash = ($this, $capacity) => {
    let $length, $newData, $i, var$5, $entry, $index, $next;
    $length = ju_HashMap_calculateCapacity(!$capacity ? 1 : $capacity << 1);
    $newData = $this.$newElementArray($length);
    $i = 0;
    $capacity = $length - 1 | 0;
    while (true) {
        var$5 = $this.$elementData.data;
        if ($i >= var$5.length)
            break;
        $entry = var$5[$i];
        var$5[$i] = null;
        while ($entry !== null) {
            var$5 = $newData.data;
            $index = $entry.$origKeyHash & $capacity;
            $next = $entry.$next3;
            $entry.$next3 = var$5[$index];
            var$5[$index] = $entry;
            $entry = $next;
        }
        $i = $i + 1 | 0;
    }
    var$5 = $newData.data;
    $this.$elementData = $newData;
    $this.$threshold = var$5.length * $this.$loadFactor | 0;
},
ju_HashMap_removeEntry = ($this, $entry) => {
    let var$2, var$3, $index, $m, var$6;
    var$2 = $entry.$origKeyHash;
    var$3 = $this.$elementData.data;
    $index = var$2 & (var$3.length - 1 | 0);
    $m = var$3[$index];
    if ($m === $entry)
        var$3[$index] = $entry.$next3;
    else {
        while (true) {
            var$6 = $m.$next3;
            if (var$6 === $entry)
                break;
            $m = var$6;
        }
        $m.$next3 = $entry.$next3;
    }
    $this.$modCount1 = $this.$modCount1 + 1 | 0;
    $this.$elementCount = $this.$elementCount - 1 | 0;
},
ju_HashMap_removeByKey = ($this, $key) => {
    let $index, $last, $entry, $entry_0, $hash, var$7;
    a: {
        $index = 0;
        $last = null;
        if ($key === null) {
            $entry = $this.$elementData.data[0];
            while ($entry !== null) {
                if ($entry.$key === null)
                    break a;
                $entry_0 = $entry.$next3;
                $last = $entry;
                $entry = $entry_0;
            }
        } else {
            $hash = $key.$hashCode();
            var$7 = $this.$elementData.data;
            $index = $hash & (var$7.length - 1 | 0);
            $entry = var$7[$index];
            while ($entry !== null) {
                if ($entry.$origKeyHash == $hash) {
                    $entry_0 = $entry.$key;
                    if ($key !== $entry_0 && !$key.$equals($entry_0) ? 0 : 1)
                        break;
                }
                $entry_0 = $entry.$next3;
                $last = $entry;
                $entry = $entry_0;
            }
        }
    }
    if ($entry === null)
        return null;
    if ($last !== null)
        $last.$next3 = $entry.$next3;
    else
        $this.$elementData.data[$index] = $entry.$next3;
    $this.$modCount1 = $this.$modCount1 + 1 | 0;
    $this.$elementCount = $this.$elementCount - 1 | 0;
    return $entry;
},
ju_HashMap_areEqualKeys = ($key1, $key2) => {
    return $key1 !== $key2 && !$key1.$equals($key2) ? 0 : 1;
},
ji_InputStream = $rt_classWithoutFields(),
ji_InputStream_read = ($this, $b) => {
    return $this.$read1($b, 0, $b.data.length);
},
ji_InputStream_available = $this => {
    return 0;
},
ji_InputStream_close = $this => {
    return;
};
function nlesi_IPCInputStream() {
    let a = this; ji_InputStream.call(a);
    a.$currentBuffer0 = null;
    a.$idx = 0;
    a.$markIDX = 0;
    a.$errorName = null;
}
let nlesi_IPCInputStream__init_ = $this => {
    $this.$currentBuffer0 = null;
    $this.$idx = 0;
    $this.$markIDX = 0;
    $this.$errorName = null;
},
nlesi_IPCInputStream__init_0 = () => {
    let var_0 = new nlesi_IPCInputStream();
    nlesi_IPCInputStream__init_(var_0);
    return var_0;
},
nlesi_IPCInputStream_read = $this => {
    let var$1, var$2, var$3, $a, var$5, var$6, var$7, var$8, var$9, $$je;
    a: {
        try {
            var$1 = $this.$currentBuffer0.data;
            var$2 = $this.$idx;
            $this.$idx = var$2 + 1 | 0;
            var$3 = var$1[var$2] & 255;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_ArrayIndexOutOfBoundsException) {
                $a = $$je;
                break a;
            } else {
                throw $$e;
            }
        }
        return var$3;
    }
    var$5 = new ji_IOException;
    var$6 = $this.$errorName;
    if (var$6 === null)
        var$6 = $rt_s(133);
    else {
        var$7 = new jl_StringBuilder;
        var$7.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(275));
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, var$6);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(276));
        var$6 = new jl_String;
        var$1 = var$7.$buffer;
        var$8 = var$1.data;
        var$9 = var$7.$length0;
        var$3 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$3 - 0 | 0))
            var$6.$nativeString = $rt_charArrayToString(var$1.data, 0, var$9);
        else {
            $a = new jl_IndexOutOfBoundsException;
            $a.$suppressionEnabled = 1;
            $a.$writableStackTrace = 1;
            $rt_throw($a);
        }
    }
    var$7 = new jl_StringBuilder;
    var$7.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(277));
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, var$6);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(278));
    var$6 = new jl_String;
    var$1 = var$7.$buffer;
    var$8 = var$1.data;
    var$2 = var$7.$length0;
    var$9 = var$8.length;
    if (var$2 >= 0 && var$2 <= (var$9 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$1.data, 0, var$2);
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = var$6;
        var$5.$cause = $a;
        $rt_throw(var$5);
    }
    $a = new jl_IndexOutOfBoundsException;
    $a.$suppressionEnabled = 1;
    $a.$writableStackTrace = 1;
    $rt_throw($a);
},
nlesi_IPCInputStream_read0 = ($this, $b, $off, $len) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$4 = $this.$idx;
    var$5 = var$4 + $len | 0;
    var$6 = $this.$currentBuffer0;
    if (var$5 <= var$6.data.length) {
        var$7 = $b.data;
        var$5 = $off + $len | 0;
        if (var$5 <= var$7.length) {
            jl_System_fastArraycopy(var$6, var$4, $b, $off, $len);
            $this.$idx = $this.$idx + $len | 0;
            return $len;
        }
        var$8 = new jl_ArrayIndexOutOfBoundsException;
        $off = var$5 - 1 | 0;
        var$9 = new jl_AbstractStringBuilder;
        var$9.$buffer = $rt_createCharArray(20);
        var$9 = (jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $off, 10)).$toString();
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        var$8.$message = var$9;
        $rt_throw(var$8);
    }
    var$8 = new ji_IOException;
    var$10 = $this.$errorName;
    if (var$10 === null)
        var$10 = $rt_s(133);
    else {
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(275));
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, var$10);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(276));
        var$10 = new jl_String;
        $b = var$9.$buffer;
        var$6 = $b.data;
        var$4 = var$9.$length0;
        var$5 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0))
            var$10.$nativeString = $rt_charArrayToString($b.data, 0, var$4);
        else {
            var$8 = new jl_IndexOutOfBoundsException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
    }
    var$5 = $this.$currentBuffer0.data.length - $this.$idx | 0;
    var$9 = new jl_StringBuilder;
    var$9.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(277));
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, var$10);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(279));
    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $len, 10);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(280));
    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, var$5, 10);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(281));
    var$10 = new jl_String;
    $b = var$9.$buffer;
    var$6 = $b.data;
    var$4 = var$9.$length0;
    var$5 = var$6.length;
    if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0)) {
        var$10.$nativeString = $rt_charArrayToString($b.data, 0, var$4);
        var$9 = new jl_ArrayIndexOutOfBoundsException;
        $off = ($this.$idx + $len | 0) - 1 | 0;
        var$11 = new jl_AbstractStringBuilder;
        var$11.$buffer = $rt_createCharArray(20);
        var$11 = (jl_AbstractStringBuilder_insert0(var$11, var$11.$length0, $off, 10)).$toString();
        var$9.$suppressionEnabled = 1;
        var$9.$writableStackTrace = 1;
        var$9.$message = var$11;
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        var$8.$message = var$10;
        var$8.$cause = var$9;
        $rt_throw(var$8);
    }
    var$8 = new jl_IndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
};
function nlesi_IPCOutputStream() {
    let a = this; ji_OutputStream.call(a);
    a.$className = null;
    a.$currentBuffer = null;
    a.$idx0 = 0;
    a.$originalSize = 0;
}
let nlesi_IPCOutputStream__init_ = $this => {
    $this.$className = null;
    $this.$currentBuffer = null;
    $this.$idx0 = 0;
    $this.$originalSize = 0;
},
nlesi_IPCOutputStream__init_0 = () => {
    let var_0 = new nlesi_IPCOutputStream();
    nlesi_IPCOutputStream__init_(var_0);
    return var_0;
},
nlesi_IPCOutputStream_returnBuffer = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$className;
    if (var$1 !== null) {
        var$2 = $this.$currentBuffer.data.length;
        var$3 = $this.$originalSize;
        if (var$2 != var$3) {
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                var$5.$buf = $rt_createByteArray(32);
                var$4.$out0 = var$5;
                var$5 = new jl_StringBuilder;
                var$5.$buffer = $rt_createCharArray(16);
                var$4.$sb = var$5;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            var$6 = var$2 - var$3 | 0;
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(282));
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$1);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(283));
            jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$3, 10);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(284));
            jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$6, 10);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(226));
            jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$2, 10);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(285));
            var$1 = new jl_String;
            var$7 = var$4.$buffer;
            var$8 = var$7.data;
            var$3 = var$4.$length0;
            var$9 = var$8.length;
            if (var$3 >= 0 && var$3 <= (var$9 - 0 | 0)) {
                var$1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$3);
                $rt_putStderr($rt_ustr(var$1));
                $rt_putStderr("\n");
            } else {
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
        }
    }
    return $this.$currentBuffer;
},
nlesi_IPCOutputStream_write = ($this, $b) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$idx0;
    var$3 = $this.$currentBuffer;
    var$4 = var$3.data.length;
    if (var$2 >= var$4) {
        var$2 = var$2 + 1 | 0;
        if ((var$2 - var$4 | 0) > 0) {
            var$5 = $rt_createByteArray(var$2);
            jl_System_fastArraycopy(var$3, 0, var$5, 0, var$4);
            $this.$currentBuffer = var$5;
        }
    }
    var$3 = $this.$currentBuffer.data;
    var$6 = $this.$idx0;
    $this.$idx0 = var$6 + 1 | 0;
    var$3[var$6] = $b << 24 >> 24;
},
nlesi_IPCOutputStream_write0 = ($this, $b, $off, $len) => {
    let var$4, var$5, var$6, var$7;
    var$4 = $this.$idx0 + $len | 0;
    var$5 = $this.$currentBuffer;
    var$6 = var$5.data.length;
    if (var$4 > var$6 && (var$4 - var$6 | 0) > 0) {
        var$7 = $rt_createByteArray(var$4);
        jl_System_fastArraycopy(var$5, 0, var$7, 0, var$6);
        $this.$currentBuffer = var$7;
    }
    jl_System_fastArraycopy($b, $off, $this.$currentBuffer, $this.$idx0, $len);
    $this.$idx0 = $this.$idx0 + $len | 0;
};
function ji_FilterInputStream() {
    ji_InputStream.call(this);
    this.$in = null;
}
let ji_FilterInputStream_close = $this => {
    $this.$in.$close();
},
ji_FilterInputStream_read = ($this, $buffer) => {
    return $this.$read1($buffer, 0, $buffer.data.length);
},
ji_DataInput = $rt_classWithoutFields(0);
function ji_DataInputStream() {
    ji_FilterInputStream.call(this);
    this.$buff = null;
}
let ji_DataInputStream__init_0 = ($this, $in) => {
    $this.$in = $in;
    $this.$buff = $rt_createByteArray(8);
},
ji_DataInputStream__init_ = var_0 => {
    let var_1 = new ji_DataInputStream();
    ji_DataInputStream__init_0(var_1, var_0);
    return var_1;
},
ji_DataInputStream_readByte = $this => {
    let $temp, var$2;
    $temp = $this.$in.$read();
    if ($temp >= 0)
        return $temp << 24 >> 24;
    var$2 = new ji_EOFException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ji_DataInputStream_readChar = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = 0;
    a: {
        while (var$1 < 2) {
            var$2 = $this.$in.$read1($this.$buff, var$1, 2 - var$1 | 0);
            if (var$2 == (-1)) {
                var$1 = var$2;
                break a;
            }
            var$1 = var$1 + var$2 | 0;
        }
    }
    if (var$1 < 0) {
        var$3 = new ji_EOFException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    var$4 = $this.$buff.data;
    return ((var$4[0] & 255) << 8 | var$4[1] & 255) & 65535;
},
ji_DataInputStream_readFully = ($this, $buffer, $offset, $length) => {
    let var$4, $result;
    if ($length < 0) {
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if (!$length)
        return;
    if ($this.$in === null) {
        var$4 = new jl_NullPointerException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($buffer === null) {
        var$4 = new jl_NullPointerException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($offset >= 0 && $offset <= ($buffer.data.length - $length | 0)) {
        while ($length > 0) {
            $result = $this.$in.$read1($buffer, $offset, $length);
            if ($result < 0) {
                var$4 = new ji_EOFException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            $offset = $offset + $result | 0;
            $length = $length - $result | 0;
        }
        return;
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
ji_DataInputStream_readInt = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = 0;
    a: {
        while (var$1 < 4) {
            var$2 = $this.$in.$read1($this.$buff, var$1, 4 - var$1 | 0);
            if (var$2 == (-1)) {
                var$1 = var$2;
                break a;
            }
            var$1 = var$1 + var$2 | 0;
        }
    }
    if (var$1 < 0) {
        var$3 = new ji_EOFException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    var$4 = $this.$buff.data;
    return (var$4[0] & 255) << 24 | (var$4[1] & 255) << 16 | (var$4[2] & 255) << 8 | var$4[3] & 255;
},
ji_DataInputStream_readLong = $this => {
    let $i2, var$2, var$3, var$4;
    $i2 = 0;
    a: {
        while ($i2 < 8) {
            var$2 = $this.$in.$read1($this.$buff, $i2, 8 - $i2 | 0);
            if (var$2 == (-1)) {
                $i2 = var$2;
                break a;
            }
            $i2 = $i2 + var$2 | 0;
        }
    }
    if ($i2 < 0) {
        var$3 = new ji_EOFException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    var$4 = $this.$buff.data;
    return Long_or(Long_shl(Long_and(Long_fromInt((var$4[0] & 255) << 24 | (var$4[1] & 255) << 16 | (var$4[2] & 255) << 8 | var$4[3] & 255), Long_create(4294967295, 0)), 32), Long_and(Long_fromInt((var$4[4] & 255) << 24 | (var$4[5] & 255) << 16 | (var$4[6] & 255) << 8 | var$4[7] & 255), Long_create(4294967295, 0)));
},
ji_DataInputStream_readShort = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = 0;
    a: {
        while (var$1 < 2) {
            var$2 = $this.$in.$read1($this.$buff, var$1, 2 - var$1 | 0);
            if (var$2 == (-1)) {
                var$1 = var$2;
                break a;
            }
            var$1 = var$1 + var$2 | 0;
        }
    }
    if (var$1 < 0) {
        var$3 = new ji_EOFException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    var$4 = $this.$buff.data;
    return ((var$4[0] & 255) << 24 >> 16 | var$4[1] & 255) << 16 >> 16;
},
ji_DataInputStream_readUnsignedShort = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = 0;
    a: {
        while (var$1 < 2) {
            var$2 = $this.$in.$read1($this.$buff, var$1, 2 - var$1 | 0);
            if (var$2 == (-1)) {
                var$1 = var$2;
                break a;
            }
            var$1 = var$1 + var$2 | 0;
        }
    }
    if (var$1 < 0) {
        var$3 = new ji_EOFException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    var$4 = $this.$buff.data;
    return ((var$4[0] & 255) << 8 | var$4[1] & 255) & 65535;
},
ji_DataInputStream_convertUTF8WithBuf = ($buf, $out, $offset, $utfSize) => {
    let $count, $s, var$7, var$8, var$9, var$10, $ch, $a, $b, $b_0, $c;
    $count = 0;
    $s = 0;
    while (true) {
        if ($count >= $utfSize) {
            $buf = $out.data;
            var$7 = new jl_String;
            $offset = $buf.length;
            if ($s >= 0 && $s <= ($offset - 0 | 0)) {
                var$7.$nativeString = $rt_charArrayToString($out.data, 0, $s);
                return var$7;
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            $rt_throw(var$7);
        }
        var$8 = $buf.data;
        var$9 = $out.data;
        var$10 = $count + 1 | 0;
        $ch = var$8[$offset + $count | 0] & 65535;
        var$9[$s] = $ch;
        $a = var$9[$s];
        if ($ch < 128)
            $s = $s + 1 | 0;
        else if (($a & 224) == 192) {
            if (var$10 >= $utfSize) {
                var$7 = new ji_UTFDataFormatException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                var$7.$message = $rt_s(286);
                $rt_throw(var$7);
            }
            $count = var$10 + 1 | 0;
            $b = var$8[$offset + var$10 | 0];
            if (($b & 192) != 128) {
                var$7 = new ji_UTFDataFormatException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                var$7.$message = $rt_s(287);
                $rt_throw(var$7);
            }
            $ch = $s + 1 | 0;
            var$9[$s] = (($a & 31) << 6 | $b & 63) & 65535;
            $s = $ch;
            var$10 = $count;
        } else {
            if (($a & 240) != 224) {
                var$7 = new ji_UTFDataFormatException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                var$7.$message = $rt_s(287);
                $rt_throw(var$7);
            }
            $count = var$10 + 1 | 0;
            if ($count >= $utfSize) {
                var$7 = new ji_UTFDataFormatException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                var$7.$message = $rt_s(287);
                $rt_throw(var$7);
            }
            $b_0 = var$8[$offset + var$10 | 0];
            var$10 = $count + 1 | 0;
            $c = var$8[$offset + $count | 0];
            if (($b_0 & 192) != 128)
                break;
            if (($c & 192) != 128)
                break;
            $b = $s + 1 | 0;
            var$9[$s] = (($a & 15) << 12 | ($b_0 & 63) << 6 | $c & 63) & 65535;
            $s = $b;
        }
        $count = var$10;
    }
    var$7 = new ji_UTFDataFormatException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    var$7.$message = $rt_s(287);
    $rt_throw(var$7);
},
ji_DataOutput = $rt_classWithoutFields(0);
function ji_DataOutputStream() {
    let a = this; ji_FilterOutputStream.call(a);
    a.$written = 0;
    a.$buff0 = null;
}
let ji_DataOutputStream__init_0 = ($this, $out) => {
    $this.$out0 = $out;
    $this.$buff0 = $rt_createByteArray(8);
},
ji_DataOutputStream__init_ = var_0 => {
    let var_1 = new ji_DataOutputStream();
    ji_DataOutputStream__init_0(var_1, var_0);
    return var_1;
},
ji_DataOutputStream_write = ($this, $buffer, $offset, $count) => {
    let var$4;
    if ($buffer !== null) {
        $this.$out0.$write1($buffer, $offset, $count);
        $this.$written = $this.$written + $count | 0;
        return;
    }
    var$4 = new jl_NullPointerException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
ji_DataOutputStream_writeChars = ($this, $str) => {
    let $newBytes, var$3, $index, $newIndex;
    $newBytes = $rt_createByteArray($str.$nativeString.length * 2 | 0);
    var$3 = $newBytes.data;
    $index = 0;
    a: {
        b: {
            while ($index < $str.$nativeString.length) {
                $newIndex = !$index ? $index : $index * 2 | 0;
                if ($index < 0)
                    break a;
                if ($index >= $str.$nativeString.length)
                    break a;
                var$3[$newIndex] = $str.$nativeString.charCodeAt($index) >> 8 << 24 >> 24;
                $newIndex = $newIndex + 1 | 0;
                if ($index < 0)
                    break b;
                if ($index >= $str.$nativeString.length)
                    break b;
                var$3[$newIndex] = $str.$nativeString.charCodeAt($index) << 24 >> 24;
                $index = $index + 1 | 0;
            }
            $str = $this.$out0;
            $newIndex = var$3.length;
            $str.$write1($newBytes, 0, $newIndex);
            $this.$written = $this.$written + $newIndex | 0;
            return;
        }
        $str = new jl_StringIndexOutOfBoundsException;
        $str.$suppressionEnabled = 1;
        $str.$writableStackTrace = 1;
        $rt_throw($str);
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
},
ji_DataOutputStream_writeInt = ($this, $val) => {
    let var$2, var$3;
    var$2 = $this.$buff0;
    var$3 = var$2.data;
    var$3[0] = $val >> 24 << 24 >> 24;
    var$3[1] = $val >> 16 << 24 >> 24;
    var$3[2] = $val >> 8 << 24 >> 24;
    var$3[3] = $val << 24 >> 24;
    $this.$out0.$write1(var$2, 0, 4);
    $this.$written = $this.$written + 4 | 0;
},
ji_DataOutputStream_writeLong = ($this, $val) => {
    let var$2, var$3;
    var$2 = $this.$buff0;
    var$3 = var$2.data;
    var$3[0] = Long_lo(Long_shr($val, 56)) << 24 >> 24;
    var$3[1] = Long_lo(Long_shr($val, 48)) << 24 >> 24;
    var$3[2] = Long_lo(Long_shr($val, 40)) << 24 >> 24;
    var$3[3] = Long_hi($val) << 24 >> 24;
    var$3[4] = Long_lo(Long_shr($val, 24)) << 24 >> 24;
    var$3[5] = Long_lo(Long_shr($val, 16)) << 24 >> 24;
    var$3[6] = Long_lo(Long_shr($val, 8)) << 24 >> 24;
    var$3[7] = Long_lo($val) << 24 >> 24;
    $this.$out0.$write1(var$2, 0, 8);
    $this.$written = $this.$written + 8 | 0;
},
ji_DataOutputStream_writeShort = ($this, $val) => {
    let var$2, var$3;
    var$2 = $this.$buff0;
    var$3 = var$2.data;
    var$3[0] = $val >> 8 << 24 >> 24;
    var$3[1] = $val << 24 >> 24;
    $this.$out0.$write1(var$2, 0, 2);
    $this.$written = $this.$written + 2 | 0;
},
ji_DataOutputStream_countUTFBytes = ($this, $str) => {
    let $utfCount, $length, $i, $charValue;
    $utfCount = 0;
    $length = $str.$nativeString.length;
    $i = 0;
    a: {
        while ($i < $length) {
            if ($i < 0)
                break a;
            if ($i >= $str.$nativeString.length)
                break a;
            $charValue = $str.$nativeString.charCodeAt($i);
            $utfCount = $charValue > 0 && $charValue <= 127 ? $utfCount + 1 | 0 : $charValue > 2047 ? $utfCount + 3 | 0 : $utfCount + 2 | 0;
            $i = $i + 1 | 0;
        }
        return Long_fromInt($utfCount);
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
},
ji_DataOutputStream_writeUTFBytesToBuffer = ($this, $str, $buffer, $offset) => {
    let $length, $i, $charValue, var$7, var$8, var$9, var$10;
    $length = $str.$nativeString.length;
    $i = 0;
    a: {
        while ($i < $length) {
            if ($i < 0)
                break a;
            if ($i >= $str.$nativeString.length)
                break a;
            $charValue = $str.$nativeString.charCodeAt($i);
            if ($charValue > 0 && $charValue <= 127) {
                var$7 = $buffer.data;
                var$8 = $offset + 1 | 0;
                var$7[$offset] = $charValue << 24 >> 24;
            } else if ($charValue <= 2047) {
                var$7 = $buffer.data;
                var$9 = $offset + 1 | 0;
                var$7[$offset] = (192 | 31 & $charValue >> 6) << 24 >> 24;
                var$8 = var$9 + 1 | 0;
                var$7[var$9] = (128 | 63 & $charValue) << 24 >> 24;
            } else {
                var$7 = $buffer.data;
                var$10 = $offset + 1 | 0;
                var$7[$offset] = (224 | 15 & $charValue >> 12) << 24 >> 24;
                $offset = var$10 + 1 | 0;
                var$7[var$10] = (128 | 63 & $charValue >> 6) << 24 >> 24;
                var$8 = $offset + 1 | 0;
                var$7[$offset] = (128 | 63 & $charValue) << 24 >> 24;
            }
            $i = $i + 1 | 0;
            $offset = var$8;
        }
        return $offset;
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
},
juf_Supplier = $rt_classWithoutFields(0),
nlesi_IPCPacketManager$_clinit_$lambda$_27_0 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_0__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_0__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_0();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_0__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_0_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket00StartServer;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_1 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_1__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_1__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_1();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_1__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_1_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket01StopServer;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_2 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_2__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_2__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_2();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_2__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_2_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket02InitWorld;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_3 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_3__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_3__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_3();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_3__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_3_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket03DeleteWorld;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_4 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_4__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_4__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_4();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_4__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_4_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket04RenameWorld;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_5 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_5__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_5__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_5();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_5__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_5_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket05RequestData;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_6 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_6__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_6__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_6();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_6__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_6_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket06RenameWorldNBT;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_7 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_7__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_7__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_7();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_7__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_7_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket07ImportWorld;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_8 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_8__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_8__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_8();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_8__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_8_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket09RequestResponse;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_9 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_9__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_9__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_9();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_9__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_9_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket0ASetWorldDifficulty;
};
let nlesi_IPCPacketManager$_clinit_$lambda$_27_10 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_10__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_10__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_10();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_10__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_10_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket0BPause;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_11 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_11__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_11__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_11();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_11__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_11_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket0CPlayerChannel;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_12 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_12__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_12__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_12();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_12__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_12_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket0DProgressUpdate;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_13 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_13__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_13__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_13();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_13__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_13_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket0EListWorlds;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_14 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_14__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_14__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_14();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_14__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_14_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket0FListFiles;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_15 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_15__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_15__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_15();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_15__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_15_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket10FileRead;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_16 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_16__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_16__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_16();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_16__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_16_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket12FileWrite;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_17 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_17__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_17__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_17();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_17__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_17_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacket13FileCopyMove;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_18 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_18__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_18__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_18();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_18__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_18_get = var$0 => {
    let var$1, var$2;
    nlesi_IPCPacketManager_$callClinit();
    var$1 = new nlesi_IPCPacket14StringList;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    var$1.$stringList = var$2;
    return var$1;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_19 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_19__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_19__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_19();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_19__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_19_get = var$0 => {
    let var$1, var$2;
    nlesi_IPCPacketManager_$callClinit();
    var$1 = new nlesi_IPCPacket15ThrowException;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    var$1.$stackTrace = var$2;
    return var$1;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_20 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_20__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_20__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_20();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_20__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_20_get = var$0 => {
    let var$1;
    nlesi_IPCPacketManager_$callClinit();
    var$1 = new nlesi_IPCPacket16NBTList;
    var$1.$tagList0 = new ju_LinkedList;
    var$1.$nbtTagList = new ju_LinkedList;
    return var$1;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_21 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_21__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_21__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_21();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_21__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_21_get = var$0 => {
    let var$1, var$2;
    nlesi_IPCPacketManager_$callClinit();
    var$1 = new nlesi_IPCPacket17ConfigureLAN;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    var$1.$iceServers = var$2;
    return var$1;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_22 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_22__init_ = var$0 => {
    return;
};
let nlesi_IPCPacketManager$_clinit_$lambda$_27_22__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_22();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_22__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_22_get = var$0 => {
    let var$1;
    nlesi_IPCPacketManager_$callClinit();
    var$1 = new nlesi_IPCPacket18ClearPlayers;
    var$1.$worldName3 = null;
    return var$1;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_23 = $rt_classWithoutFields(),
nlesi_IPCPacketManager$_clinit_$lambda$_27_23__init_ = var$0 => {
    return;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_23__init_0 = () => {
    let var_0 = new nlesi_IPCPacketManager$_clinit_$lambda$_27_23();
    nlesi_IPCPacketManager$_clinit_$lambda$_27_23__init_(var_0);
    return var_0;
},
nlesi_IPCPacketManager$_clinit_$lambda$_27_23_get = var$0 => {
    nlesi_IPCPacketManager_$callClinit();
    return new nlesi_IPCPacketFFProcessKeepAlive;
};
function jl_Object$Monitor() {
    let a = this; jl_Object.call(a);
    a.$enteringThreads = null;
    a.$notifyListeners = null;
    a.$owner = null;
    a.$count1 = 0;
}
let jl_Object$Monitor__init_ = $this => {
    $this.$owner = jl_Thread_currentThread;
},
jl_Object$Monitor__init_0 = () => {
    let var_0 = new jl_Object$Monitor();
    jl_Object$Monitor__init_(var_0);
    return var_0;
};
function jl_Thread() {
    let a = this; jl_Object.call(a);
    a.$id2 = Long_ZERO;
    a.$timeSliceStart = Long_ZERO;
    a.$finishedLock = null;
    a.$key2 = null;
    a.$name17 = null;
    a.$alive = 0;
    a.$target0 = null;
}
let jl_Thread_mainThread = null,
jl_Thread_currentThread = null,
jl_Thread_nextId = 0,
jl_Thread_activeCount = 0,
jl_Thread_defaultUncaughtExceptionHandler = null,
jl_Thread__init_ = $this => {
    let var$1, var$2, var$3;
    var$1 = null;
    var$2 = null;
    $this.$finishedLock = new jl_Object;
    $this.$alive = 1;
    $this.$name17 = var$2;
    $this.$target0 = var$1;
    var$3 = jl_Thread_nextId;
    jl_Thread_nextId = var$3 + 1 | 0;
    $this.$id2 = Long_fromInt(var$3);
},
jl_Thread__init_0 = () => {
    let var_0 = new jl_Thread();
    jl_Thread__init_(var_0);
    return var_0;
},
jl_Thread_setCurrentThread = $thread_0 => {
    if (jl_Thread_currentThread !== $thread_0)
        jl_Thread_currentThread = $thread_0;
    jl_Thread_currentThread.$timeSliceStart = jl_System_currentTimeMillis();
},
jl_Thread_currentThread0 = () => {
    return jl_Thread_currentThread;
},
jl_Thread__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = new jl_Thread;
    var$2 = null;
    var$1.$finishedLock = new jl_Object;
    var$1.$alive = 1;
    var$1.$name17 = $rt_s(288);
    var$1.$target0 = var$2;
    var$3 = jl_Thread_nextId;
    jl_Thread_nextId = var$3 + 1 | 0;
    var$1.$id2 = Long_fromInt(var$3);
    jl_Thread_mainThread = var$1;
    jl_Thread_currentThread = var$1;
    jl_Thread_nextId = 1;
    jl_Thread_activeCount = 1;
    jl_Thread_defaultUncaughtExceptionHandler = new jl_DefaultUncaughtExceptionHandler;
},
jl_IllegalStateException = $rt_classWithoutFields(jl_RuntimeException),
jl_IllegalStateException__init_0 = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_IllegalStateException__init_ = () => {
    let var_0 = new jl_IllegalStateException();
    jl_IllegalStateException__init_0(var_0);
    return var_0;
},
jl_IllegalStateException__init_2 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
jl_IllegalStateException__init_1 = var_0 => {
    let var_1 = new jl_IllegalStateException();
    jl_IllegalStateException__init_2(var_1, var_0);
    return var_1;
},
jl_IllegalMonitorStateException = $rt_classWithoutFields(jl_RuntimeException),
jl_IllegalMonitorStateException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_IllegalMonitorStateException__init_0 = () => {
    let var_0 = new jl_IllegalMonitorStateException();
    jl_IllegalMonitorStateException__init_(var_0);
    return var_0;
};
function nles_VirtualFilesystem() {
    let a = this; jl_Object.call(a);
    a.$fileMap = null;
    a.$database0 = null;
    a.$indexeddb = null;
}
let nles_VirtualFilesystem_openVFS = $db => {
    let var$2, $evt, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$evt = $thread.pop();var$2 = $thread.pop();$db = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_openDB$_asyncCall_$($db);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $evt = var$2;
        if ($evt.$failedInit) {
            $db = new nles_VirtualFilesystem$VFSHandle;
            var$2 = $evt.$failedError;
            var$4 = null;
            $db.$failedInit0 = 1;
            $db.$failedLocked0 = 0;
            $db.$failedError0 = var$2;
            $db.$vfs = var$4;
            return $db;
        }
        if ($evt.$failedLocked) {
            $db = new nles_VirtualFilesystem$VFSHandle;
            var$2 = null;
            var$4 = null;
            $db.$failedInit0 = 0;
            $db.$failedLocked0 = 1;
            $db.$failedError0 = var$2;
            $db.$vfs = var$4;
            return $db;
        }
        var$2 = $evt.$failedError;
        if (var$2 !== null) {
            $db = new nles_VirtualFilesystem$VFSHandle;
            var$4 = null;
            $db.$failedInit0 = 0;
            $db.$failedLocked0 = 0;
            $db.$failedError0 = var$2;
            $db.$vfs = var$4;
            return $db;
        }
        var$5 = new nles_VirtualFilesystem$VFSHandle;
        var$2 = null;
        var$4 = new nles_VirtualFilesystem;
        $evt = $evt.$database;
        var$4.$fileMap = ju_HashMap__init_();
        var$4.$database0 = $db;
        var$4.$indexeddb = $evt;
        var$5.$failedInit0 = 0;
        var$5.$failedLocked0 = 0;
        var$5.$failedError0 = var$2;
        var$5.$vfs = var$4;
        return var$5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($db, var$2, $evt, var$4, var$5, $ptr);
},
nles_VirtualFilesystem_getFile = ($this, $path) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$path = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$fileMap;
        if ($path === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            a: {
                if (!$path.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $path.$nativeString.length)
                            break a;
                        $path.$hashCode1 = (31 * $path.$hashCode1 | 0) + $path.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $path.$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    b: {
                        var$5 = var$2.$key;
                        if ($path !== var$5) {
                            if ($path === var$5)
                                var$6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$5 = var$5;
                                var$6 = $path.$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break b;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2 === null) {
            var$7 = $this.$fileMap;
            var$2 = new nles_VirtualFilesystem$VFSFile;
            var$2.$fileSize = (-1);
            var$2.$hasBeenDeleted = 0;
            var$2.$hasBeenAccessed = 0;
            var$2.$exists0 = 0;
            var$2.$cache = null;
            var$2.$virtualFilesystem = $this;
            var$2.$filePath = $path;
            nles_SysUtil_$callClinit();
            var$2.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$7, $path, var$2);
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $path, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nles_VirtualFilesystem_listVFiles = ($this, $prefix) => {
    let $list, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$list = $thread.pop();$prefix = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $list = new ju_ArrayList;
        $list.$array = $rt_createArray(jl_Object, 10);
        var$3 = $this.$indexeddb;
        var$4 = 0;
        var$5 = new nles_VirtualFilesystem$listVFiles$lambda$_9_0;
        var$5.$_06 = $list;
        $ptr = 1;
    case 1:
        nles_VirtualFilesystem$AsyncHandlers_iterateFiles$_asyncCall_$(var$3, $this, $prefix, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return $list;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $prefix, $list, var$3, var$4, var$5, $ptr);
},
nles_VirtualFilesystem_deleteFiles = ($this, $prefix) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$prefix = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$indexeddb;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_deleteFiles$_asyncCall_$(var$2, $prefix);
        if ($rt_suspending()) {
            break main;
        }
        $prefix = $tmp;
        return $prefix.$value;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $prefix, var$2, $ptr);
},
nles_VirtualFilesystem_renameFiles = ($this, $oldPrefix, $newPrefix, $copy) => {
    let $filesToCopy, var$5, var$6, var$7, $i, var$9, var$10, var$11, var$12, var$13, var$14, $str, var$16, var$17, $f, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$f = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$str = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$i = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$filesToCopy = $thread.pop();$copy = $thread.pop();$newPrefix = $thread.pop();$oldPrefix
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $filesToCopy = new ju_ArrayList;
        $filesToCopy.$array = $rt_createArray(jl_Object, 10);
        var$5 = $this.$indexeddb;
        var$6 = 0;
        var$7 = new nles_VirtualFilesystem$listFiles$lambda$_8_0;
        var$7.$_03 = $filesToCopy;
        $ptr = 1;
    case 1:
        nles_VirtualFilesystem$AsyncHandlers_iterateFiles$_asyncCall_$(var$5, $this, $oldPrefix, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $i = 0;
        var$9 = $filesToCopy.$modCount;
        var$10 = $filesToCopy.$size();
        var$11 = $rt_s(289);
        var$12 = $rt_s(290);
        var$13 = $rt_s(291);
        var$5 = $rt_s(292);
        var$7 = $rt_s(9);
        if (!(0 >= var$10 ? 0 : 1))
            return $i;
        if (var$9 < $filesToCopy.$modCount) {
            $oldPrefix = new ju_ConcurrentModificationException;
            $oldPrefix.$suppressionEnabled = 1;
            $oldPrefix.$writableStackTrace = 1;
            $rt_throw($oldPrefix);
        }
        a: {
            var$14 = 0 + 1 | 0;
            $str = $filesToCopy.$get(0);
            var$16 = $rt_createArray(jl_Object, 2);
            var$17 = var$16.data;
            var$17[0] = $newPrefix;
            var$17[1] = jl_String_substring($str, $oldPrefix.$nativeString.length, $str.$nativeString.length);
            $f = nles_VFile_createPath(var$16);
            var$19 = $this.$fileMap;
            if (!$str.$hashCode1) {
                var$6 = 0;
                while (true) {
                    if (var$6 >= $str.$nativeString.length)
                        break a;
                    $str.$hashCode1 = (31 * $str.$hashCode1 | 0) + $str.$nativeString.charCodeAt(var$6) | 0;
                    var$6 = var$6 + 1 | 0;
                }
            }
        }
        var$20 = $str.$hashCode1;
        var$16 = var$19.$elementData.data;
        var$21 = var$16[var$20 & (var$16.length - 1 | 0)];
        while (var$21 !== null) {
            if (var$21.$origKeyHash == var$20) {
                b: {
                    var$19 = var$21.$key;
                    if ($str !== var$19) {
                        if ($str === var$19)
                            var$6 = 1;
                        else if (!(var$19 instanceof jl_String))
                            var$6 = 0;
                        else {
                            var$19 = var$19;
                            var$6 = $str.$nativeString !== var$19.$nativeString ? 0 : 1;
                        }
                        if (!var$6) {
                            var$6 = 0;
                            break b;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            var$21 = var$21.$next3;
        }
        var$19 = var$21 === null ? null : var$21.$value0;
        if (var$19 === null) {
            var$21 = $this.$fileMap;
            var$19 = new nles_VirtualFilesystem$VFSFile;
            var$19.$fileSize = (-1);
            var$19.$hasBeenDeleted = 0;
            var$19.$hasBeenAccessed = 0;
            var$19.$exists0 = 0;
            var$19.$cache = null;
            var$19.$virtualFilesystem = $this;
            var$19.$filePath = $str;
            nles_SysUtil_$callClinit();
            var$19.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$21, $str, var$19);
        }
        $ptr = 2;
    case 2:
        $tmp = nles_VirtualFilesystem$VFSFile_rename(var$19, $f, $copy);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $i = $i + 1 | 0;
        else {
            if (jl_System_errCache === null) {
                var$21 = new otcic_JSStderrPrintStream;
                var$19 = new ji_ByteArrayOutputStream;
                var$19.$buf = $rt_createByteArray(32);
                var$21.$out0 = var$19;
                var$19 = new jl_StringBuilder;
                var$19.$buffer = $rt_createCharArray(16);
                var$21.$sb = var$19;
                var$21.$buffer0 = $rt_createCharArray(32);
                var$21.$autoFlush = 0;
                var$21.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$21;
            }
            var$21 = !$copy ? $rt_s(293) : $rt_s(294);
            var$19 = new jl_StringBuilder;
            var$19.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$19, var$19.$length0, var$11);
            jl_AbstractStringBuilder_insert(var$19, var$19.$length0, var$21);
            jl_AbstractStringBuilder_insert(var$19, var$19.$length0, var$12);
            var$6 = var$19.$length0;
            if ($str === null)
                $str = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$19, var$6, $str);
            jl_AbstractStringBuilder_insert(var$19, var$19.$length0, var$13);
            var$6 = var$19.$length0;
            if ($f === null)
                $f = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$19, var$6, $f);
            jl_AbstractStringBuilder_insert(var$19, var$19.$length0, var$5);
            var$21 = new jl_String;
            var$17 = var$19.$buffer;
            var$16 = var$17.data;
            var$6 = var$19.$length0;
            var$22 = var$16.length;
            if (var$6 >= 0 && var$6 <= (var$22 - 0 | 0)) {
                var$21.$nativeString = $rt_charArrayToString(var$17.data, 0, var$6);
                $rt_putStderr($rt_ustr(var$21));
                $rt_putStderr($rt_ustr(var$7));
            } else {
                $oldPrefix = new jl_IndexOutOfBoundsException;
                $oldPrefix.$suppressionEnabled = 1;
                $oldPrefix.$writableStackTrace = 1;
                $rt_throw($oldPrefix);
            }
        }
        var$22 = var$14;
        if (!(var$22 >= var$10 ? 0 : 1))
            return $i;
        if (var$9 < $filesToCopy.$modCount) {
            $oldPrefix = new ju_ConcurrentModificationException;
            $oldPrefix.$suppressionEnabled = 1;
            $oldPrefix.$writableStackTrace = 1;
            $rt_throw($oldPrefix);
        }
        c: {
            var$14 = var$22 + 1 | 0;
            $str = $filesToCopy.$get(var$22);
            var$16 = $rt_createArray(jl_Object, 2);
            var$17 = var$16.data;
            var$17[0] = $newPrefix;
            var$17[1] = jl_String_substring($str, $oldPrefix.$nativeString.length, $str.$nativeString.length);
            $f = nles_VFile_createPath(var$16);
            var$19 = $this.$fileMap;
            if (!$str.$hashCode1) {
                var$6 = 0;
                while (true) {
                    if (var$6 >= $str.$nativeString.length)
                        break c;
                    $str.$hashCode1 = (31 * $str.$hashCode1 | 0) + $str.$nativeString.charCodeAt(var$6) | 0;
                    var$6 = var$6 + 1 | 0;
                }
            }
        }
        var$20 = $str.$hashCode1;
        var$16 = var$19.$elementData.data;
        var$21 = var$16[var$20 & (var$16.length - 1 | 0)];
        while (var$21 !== null) {
            if (var$21.$origKeyHash == var$20) {
                d: {
                    var$19 = var$21.$key;
                    if ($str !== var$19) {
                        if ($str === var$19)
                            var$6 = 1;
                        else if (!(var$19 instanceof jl_String))
                            var$6 = 0;
                        else {
                            var$19 = var$19;
                            var$6 = $str.$nativeString !== var$19.$nativeString ? 0 : 1;
                        }
                        if (!var$6) {
                            var$6 = 0;
                            break d;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            var$21 = var$21.$next3;
        }
        var$19 = var$21 === null ? null : var$21.$value0;
        if (var$19 === null) {
            var$21 = $this.$fileMap;
            var$19 = new nles_VirtualFilesystem$VFSFile;
            var$19.$fileSize = (-1);
            var$19.$hasBeenDeleted = 0;
            var$19.$hasBeenAccessed = 0;
            var$19.$exists0 = 0;
            var$19.$cache = null;
            var$19.$virtualFilesystem = $this;
            var$19.$filePath = $str;
            nles_SysUtil_$callClinit();
            var$19.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$21, $str, var$19);
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $oldPrefix, $newPrefix, $copy, $filesToCopy, var$5, var$6, var$7, $i, var$9, var$10, var$11, var$12, var$13, var$14, $str, var$16, var$17, $f, var$19, var$20, var$21, var$22, $ptr);
},
nles_VirtualFilesystem_CRLFtoLF = $str => {
    if ($str === null)
        return null;
    if (jl_String_indexOf($str, 13, 0) != (-1))
        $str = jl_String_replace($str, $rt_s(295), $rt_s(3));
    $str = jl_String_trim($str);
    if (jl_String_endsWith($str, $rt_s(9)))
        $str = jl_String_substring($str, 0, $str.$nativeString.length - 1 | 0);
    if ($str === $rt_s(9) ? 1 : jl_String_startsWith($str, $rt_s(9), 0))
        $str = jl_String_substring($str, 1, $str.$nativeString.length);
    return $str;
};
function nles_VirtualFilesystem$VFSFile() {
    let a = this; jl_Object.call(a);
    a.$virtualFilesystem = null;
    a.$cacheEnabled = 0;
    a.$filePath = null;
    a.$fileSize = 0;
    a.$hasBeenDeleted = 0;
    a.$hasBeenAccessed = 0;
    a.$exists0 = 0;
    a.$cache = null;
    a.$cacheHit = Long_ZERO;
}
let nles_VirtualFilesystem$VFSFile_equals = ($this, $o) => {
    let var$2, var$3;
    a: {
        if ($o instanceof nles_VirtualFilesystem$VFSFile) {
            $o = $o.$filePath;
            var$2 = $this.$filePath;
            if ($o === var$2)
                var$3 = 1;
            else if (!(var$2 instanceof jl_String))
                var$3 = 0;
            else {
                var$2 = var$2;
                var$3 = $o.$nativeString !== var$2.$nativeString ? 0 : 1;
            }
            if (var$3) {
                var$3 = 1;
                break a;
            }
        }
        var$3 = 0;
    }
    return var$3;
},
nles_VirtualFilesystem$VFSFile_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$filePath;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1;
},
nles_VirtualFilesystem$VFSFile_getAllLines = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = 0;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes($this, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = new jl_String;
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            var$4 = jnc_Charset$Charsets_value;
            var$5 = $rt_s(68).$nativeString.toUpperCase();
            var$6 = var$5 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$5);
            a: {
                if (!var$6.$hashCode1) {
                    var$1 = 0;
                    while (true) {
                        if (var$1 >= var$6.$nativeString.length)
                            break a;
                        var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$1) | 0;
                        var$1 = var$1 + 1 | 0;
                    }
                }
            }
            var$1 = var$6.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$1 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$1) {
                    b: {
                        var$5 = var$4.$key;
                        if (var$6 !== var$5) {
                            if (var$6 === var$5)
                                var$8 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$5 = var$5;
                                var$8 = var$6.$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$4 = var$4.$next3;
            }
            var$4 = var$4 === null ? null : var$4.$value0;
            if (var$4 === null) {
                var$3 = new jnc_UnsupportedCharsetException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                var$3.$charsetName = $rt_s(68);
                $rt_throw(var$3);
            }
            var$8 = var$2.data.length;
            if (var$8 >= 0 && var$8 <= (var$8 - 0 | 0)) {
                var$5 = new jn_ByteBufferImpl;
                var$9 = 0 + var$8 | 0;
                jl_Object__init_(var$5);
                var$5.$mark0 = (-1);
                var$5.$capacity = var$8;
                var$5.$limit = var$8;
                var$5.$order = jn_ByteOrder_BIG_ENDIAN;
                var$5.$start2 = 0;
                var$5.$array2 = var$2;
                var$5.$position1 = 0;
                var$5.$limit = var$9;
                var$5.$direct = 0;
                var$5.$readOnly0 = 0;
                c: {
                    try {
                        var$10 = jnc_CharsetDecoder_decode(jnc_CharsetDecoder_onUnmappableCharacter(jnc_CharsetDecoder_onMalformedInput(var$4.$newDecoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), var$5);
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jnc_CharacterCodingException) {
                            var$10 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    var$4 = new jl_AssertionError;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    var$4.$message = $rt_s(103);
                    var$4.$cause = var$10;
                    $rt_throw(var$4);
                }
                var$11 = var$10.$position1;
                if (!var$11 && var$10.$limit == var$10.$capacity)
                    var$2 = var$10.$array0;
                else {
                    var$2 = $rt_createCharArray(var$10.$limit - var$11 | 0);
                    jn_CharBuffer_get(var$10, var$2, 0, var$2.data.length);
                }
                var$3.$nativeString = $rt_fullArrayToString(var$2.data);
            } else {
                var$3 = new jl_IndexOutOfBoundsException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
        }
        if (var$3 === null)
            var$2 = null;
        else {
            var$10 = nles_VirtualFilesystem_CRLFtoLF(var$3);
            var$2 = jur_Pattern_split(jur_Pattern_compile($rt_s(9), 0), var$10, 0);
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nles_VirtualFilesystem$VFSFile_getAllBytes = ($this, $copy) => {
    let $b, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$b = $thread.pop();$copy = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$hasBeenDeleted) {
                if (!$this.$hasBeenAccessed)
                    break a;
                if ($this.$exists0)
                    break a;
            }
            return null;
        }
        nles_SysUtil_$callClinit();
        $this.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        if ($this.$cacheEnabled) {
            $b = $this.$cache;
            if ($b !== null) {
                if (!$copy)
                    var$3 = $b;
                else {
                    $copy = $b.data.length;
                    var$3 = $rt_createByteArray($copy);
                    jl_System_fastArraycopy($b, 0, var$3, 0, $copy);
                }
                return var$3;
            }
        }
        $this.$hasBeenAccessed = 1;
        var$4 = $this.$virtualFilesystem.$indexeddb;
        var$5 = $this.$filePath;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_readWholeFile$_asyncCall_$(var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        otji_JSWrapper_$callClinit();
        var$5 = var$4 === null ? null : var$4[$rt_jso_marker] === true ? var$4 : var$4.$js;
        if (var$5 === null) {
            $this.$exists0 = 0;
            return null;
        }
        $this.$exists0 = 1;
        var$6 = var$5.byteLength;
        $this.$fileSize = var$6;
        if ($this.$cacheEnabled) {
            if (!$copy)
                $this.$cache = nles_TeaVMUtils_wrapByteArrayBuffer(var$5);
            else {
                $b = $rt_createByteArray(var$6);
                $this.$cache = $b;
                $b.data.set(new Int8Array(var$5));
            }
        }
        return nles_TeaVMUtils_wrapByteArrayBuffer(var$5);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $copy, $b, var$3, var$4, var$5, var$6, $ptr);
},
nles_VirtualFilesystem$VFSFile_setAllChars = ($this, $bytes) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$bytes = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($bytes === null)
            var$2 = null;
        else {
            jnc_Charset_checkCanonicalName($rt_s(68));
            jnc_Charset$Charsets_$callClinit();
            var$3 = jnc_Charset$Charsets_value;
            var$4 = $rt_s(68).$nativeString.toUpperCase();
            var$5 = var$4 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$4);
            a: {
                if (!var$5.$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= var$5.$nativeString.length)
                            break a;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$6 = var$5.$hashCode1;
            var$2 = var$3.$elementData.data;
            var$3 = var$2[var$6 & (var$2.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$6) {
                    b: {
                        var$4 = var$3.$key;
                        if (var$5 !== var$4) {
                            if (var$5 === var$4)
                                var$7 = 1;
                            else if (!(var$4 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$4 = var$4;
                                var$7 = var$5.$nativeString !== var$4.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break b;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$3 = var$3.$next3;
            }
            var$4 = var$3 === null ? null : var$3.$value0;
            if (var$4 === null) {
                $bytes = new jnc_UnsupportedCharsetException;
                $bytes.$suppressionEnabled = 1;
                $bytes.$writableStackTrace = 1;
                $bytes.$charsetName = $rt_s(68);
                $rt_throw($bytes);
            }
            var$2 = $rt_fastStringToCharArray($bytes.$nativeString);
            var$7 = var$2.data.length;
            var$3 = new jn_CharBufferOverArray;
            var$8 = 0 + var$7 | 0;
            jl_Object__init_(var$3);
            var$3.$mark0 = (-1);
            var$3.$capacity = var$7;
            var$3.$limit = var$7;
            var$3.$position1 = 0;
            var$3.$limit = var$8;
            var$3.$start1 = 0;
            var$3.$readOnly = 0;
            var$3.$array0 = var$2;
            c: {
                try {
                    $bytes = jnc_CharsetEncoder_encode(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput(var$4.$newEncoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), var$3);
                    break c;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jnc_CharacterCodingException) {
                        var$9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$3 = new jl_AssertionError;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                var$3.$message = $rt_s(103);
                var$3.$cause = var$9;
                $rt_throw(var$3);
            }
            var$7 = $bytes.$position1;
            if (!var$7 && $bytes.$limit == $bytes.$capacity)
                var$2 = $bytes.$array2;
            else {
                var$2 = $rt_createByteArray($bytes.$limit - var$7 | 0);
                jn_ByteBuffer_get($bytes, var$2, 0, var$2.data.length);
            }
        }
        var$6 = 1;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$VFSFile_setAllBytes($this, var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return var$6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $bytes, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nles_VirtualFilesystem$VFSFile_setAllBytes = ($this, $bytes, $copy) => {
    let var$3, $s, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$s = $thread.pop();var$3 = $thread.pop();$copy = $thread.pop();$bytes = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$hasBeenDeleted && $bytes !== null) {
            var$3 = $bytes.data;
            nles_SysUtil_$callClinit();
            $this.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $s = var$3.length;
            $this.$fileSize = $s;
            if (!$this.$cacheEnabled) {
                var$5 = $this.$virtualFilesystem.$indexeddb;
                var$6 = $this.$filePath;
                var$7 = $bytes.data.buffer;
                $ptr = 1;
                continue main;
            }
            if (!$copy)
                var$3 = $bytes;
            else {
                var$3 = $rt_createByteArray($s);
                jl_System_fastArraycopy($bytes, 0, var$3, 0, $s);
            }
            $this.$cache = var$3;
            $ptr = 2;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_writeWholeFile$_asyncCall_$(var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $s = var$5.$bool;
        $this.$hasBeenAccessed = 1;
        $this.$exists0 = !$this.$exists0 && !$s ? 0 : 1;
        return $s;
    case 2:
        $tmp = nles_VirtualFilesystem$VFSFile_sync($this);
        if ($rt_suspending()) {
            break main;
        }
        $copy = $tmp;
        return $copy;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $bytes, $copy, var$3, $s, var$5, var$6, var$7, $ptr);
},
nles_VirtualFilesystem$VFSFile_sync = $this => {
    let var$1, var$2, var$3, $tryWrite, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$tryWrite = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$cacheEnabled && $this.$cache !== null && !$this.$hasBeenDeleted) {
            nles_SysUtil_$callClinit();
            $this.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$1 = $this.$virtualFilesystem.$indexeddb;
            var$2 = $this.$filePath;
            var$3 = $this.$cache.data.buffer;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_writeWholeFile$_asyncCall_$(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        $tryWrite = var$1.$bool;
        $this.$hasBeenAccessed = 1;
        $this.$exists0 = !$this.$exists0 && !$tryWrite ? 0 : 1;
        return $tryWrite;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $tryWrite, $ptr);
},
nles_VirtualFilesystem$VFSFile_delete = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$hasBeenDeleted) {
                if (!$this.$hasBeenAccessed)
                    break a;
                if ($this.$exists0)
                    break a;
            }
            return 0;
        }
        nles_SysUtil_$callClinit();
        $this.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$1 = $this.$virtualFilesystem.$indexeddb;
        var$2 = $this.$filePath;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_deleteFile$_asyncCall_$(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!var$1.$bool) {
            $this.$hasBeenAccessed = 1;
            return 0;
        }
        ju_HashMap_removeByKey($this.$virtualFilesystem.$fileMap, $this.$filePath);
        $this.$hasBeenDeleted = 1;
        $this.$hasBeenAccessed = 1;
        $this.$exists0 = 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nles_VirtualFilesystem$VFSFile_rename = ($this, $newName, $copy) => {
    let var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$copy = $thread.pop();$newName = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$hasBeenDeleted) {
                if (!$this.$hasBeenAccessed)
                    break a;
                if ($this.$exists0)
                    break a;
            }
            return 0;
        }
        nles_SysUtil_$callClinit();
        $this.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3 = $this.$virtualFilesystem.$indexeddb;
        var$4 = $this.$filePath;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_readWholeFile$_asyncCall_$(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        otji_JSWrapper_$callClinit();
        var$3 = var$3 === null ? null : var$3[$rt_jso_marker] === true ? var$3 : var$3.$js;
        $this.$hasBeenAccessed = 1;
        if (var$3 === null) {
            $this.$exists0 = 0;
            if (!$copy) {
                ju_HashMap_removeByKey($this.$virtualFilesystem.$fileMap, $this.$filePath);
                $this.$filePath = $newName;
                ju_HashMap_putImpl($this.$virtualFilesystem.$fileMap, $newName, $this);
            }
            return 1;
        }
        $this.$exists0 = 1;
        var$4 = $this.$virtualFilesystem.$indexeddb;
        $ptr = 2;
    case 2:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_writeWholeFile$_asyncCall_$(var$4, $newName, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3.$bool)
            return 0;
        if ($copy) {
            if (!$copy) {
                ju_HashMap_removeByKey($this.$virtualFilesystem.$fileMap, $this.$filePath);
                $this.$filePath = $newName;
                ju_HashMap_putImpl($this.$virtualFilesystem.$fileMap, $newName, $this);
            }
            return 1;
        }
        var$4 = $this.$virtualFilesystem.$indexeddb;
        var$3 = $this.$filePath;
        $ptr = 3;
    case 3:
        $tmp = nles_VirtualFilesystem$AsyncHandlers_deleteFile$_asyncCall_$(var$4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3.$bool)
            return 0;
        if (!$copy) {
            ju_HashMap_removeByKey($this.$virtualFilesystem.$fileMap, $this.$filePath);
            $this.$filePath = $newName;
            ju_HashMap_putImpl($this.$virtualFilesystem.$fileMap, $newName, $this);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $newName, $copy, var$3, var$4, $ptr);
};
function nms_NBTBase() {
    jl_Object.call(this);
    this.$name = null;
}
let nms_NBTBase_NBTTypes = null,
nms_NBTBase_setName = ($this, $par1Str) => {
    if ($par1Str !== null)
        $this.$name = $par1Str;
    else
        $this.$name = $rt_s(3);
    return $this;
},
nms_NBTBase_getName = $this => {
    let var$1;
    var$1 = $this.$name;
    if (var$1 === null)
        var$1 = $rt_s(3);
    return var$1;
},
nms_NBTBase_newTag = ($par0, $par1Str) => {
    let var$3;
    switch ($par0) {
        case 0:
            $par1Str = new nms_NBTTagEnd;
            $par1Str.$name = $rt_s(3);
            return $par1Str;
        case 1:
            var$3 = new nms_NBTTagByte;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 2:
            var$3 = new nms_NBTTagShort;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 3:
            var$3 = new nms_NBTTagInt;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 4:
            var$3 = new nms_NBTTagLong;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 5:
            var$3 = new nms_NBTTagFloat;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 6:
            var$3 = new nms_NBTTagDouble;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 7:
            var$3 = new nms_NBTTagByteArray;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 8:
            var$3 = new nms_NBTTagString;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        case 9:
            var$3 = new nms_NBTTagList;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            $par1Str = new ju_ArrayList;
            $par1Str.$array = $rt_createArray(jl_Object, 10);
            var$3.$tagList = $par1Str;
            return var$3;
        case 10:
            var$3 = new nms_NBTTagCompound;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            var$3.$tagMap = ju_HashMap__init_();
            return var$3;
        case 11:
            var$3 = new nms_NBTTagIntArray;
            if ($par1Str !== null)
                var$3.$name = $par1Str;
            else
                var$3.$name = $rt_s(3);
            return var$3;
        default:
    }
    return null;
},
nms_NBTBase_equals = ($this, $par1Obj) => {
    let $var2, var$3;
    if (!($par1Obj instanceof nms_NBTBase))
        return 0;
    a: {
        $var2 = $par1Obj;
        if ($this.$getId() != $var2.$getId())
            var$3 = 0;
        else {
            b: {
                $par1Obj = $this.$name;
                if (!($par1Obj === null && $var2.$name !== null)) {
                    if ($par1Obj === null)
                        break b;
                    if ($var2.$name !== null)
                        break b;
                }
                var$3 = 0;
                break a;
            }
            if ($par1Obj !== null) {
                $var2 = $var2.$name;
                if ($par1Obj === $var2)
                    var$3 = 1;
                else if (!($var2 instanceof jl_String))
                    var$3 = 0;
                else {
                    $var2 = $var2;
                    var$3 = $par1Obj.$nativeString !== $var2.$nativeString ? 0 : 1;
                }
                if (!var$3) {
                    var$3 = 0;
                    break a;
                }
            }
            var$3 = 1;
        }
    }
    return var$3;
},
nms_NBTBase_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1 ^ $this.$getId();
},
nms_NBTBase__clinit_ = () => {
    nms_NBTBase_NBTTypes = $rt_wrapArray(jl_String, [$rt_s(296), $rt_s(297), $rt_s(298), $rt_s(299), $rt_s(300), $rt_s(301), $rt_s(302), $rt_s(303), $rt_s(304), $rt_s(305), $rt_s(306), $rt_s(307)]);
};
function nms_NBTTagCompound() {
    nms_NBTBase.call(this);
    this.$tagMap = null;
}
let nms_NBTTagCompound__init_0 = $this => {
    let var$1, var$2, var$3, var$4;
    $this.$name = $rt_s(3);
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$tagMap = var$1;
},
nms_NBTTagCompound__init_ = () => {
    let var_0 = new nms_NBTTagCompound();
    nms_NBTTagCompound__init_0(var_0);
    return var_0;
},
nms_NBTTagCompound__init_2 = ($this, $par1Str) => {
    if ($par1Str !== null)
        $this.$name = $par1Str;
    else
        $this.$name = $rt_s(3);
    $this.$tagMap = ju_HashMap__init_();
},
nms_NBTTagCompound__init_1 = var_0 => {
    let var_1 = new nms_NBTTagCompound();
    nms_NBTTagCompound__init_2(var_1, var_0);
    return var_1;
},
nms_NBTTagCompound_write = ($this, $par1DataOutput) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8;
    $var2 = $this.$tagMap;
    if ($var2.$cachedValues === null) {
        $var3 = new ju_HashMap$2;
        $var3.$this$01 = $var2;
        $var2.$cachedValues = $var3;
    }
    $var2 = $var2.$cachedValues.$iterator();
    while ($var2.$hasNext()) {
        $var3 = $var2.$next();
        var$4 = $var3.$getId();
        $par1DataOutput.$out0.$write0(var$4);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        if ($var3.$getId()) {
            var$5 = $var3.$name;
            if (var$5 === null)
                var$5 = $rt_s(3);
            var$6 = ji_DataOutputStream_countUTFBytes($par1DataOutput, var$5);
            if (Long_gt(var$6, Long_fromInt(65535))) {
                $par1DataOutput = new ji_IOException;
                $par1DataOutput.$suppressionEnabled = 1;
                $par1DataOutput.$writableStackTrace = 1;
                $par1DataOutput.$message = $rt_s(127);
                $rt_throw($par1DataOutput);
            }
            var$4 = Long_lo(var$6);
            var$7 = $rt_createByteArray(var$4 + 2 | 0);
            var$8 = var$7.data;
            var$8[0] = var$4 >> 8 << 24 >> 24;
            var$8[1] = var$4 << 24 >> 24;
            var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($par1DataOutput, var$5, var$7, 2);
            $par1DataOutput.$out0.$write1(var$7, 0, var$4);
            $par1DataOutput.$written = $par1DataOutput.$written + var$4 | 0;
            $var3.$write3($par1DataOutput);
        }
    }
    $par1DataOutput.$out0.$write0(0);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_NBTTagCompound_load = ($this, $par1DataInput, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    if ($par2 > 512) {
        $par1DataInput = new jl_RuntimeException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $par1DataInput.$message = $rt_s(308);
        $rt_throw($par1DataInput);
    }
    var$3 = $this.$tagMap;
    if (var$3.$elementCount > 0) {
        var$3.$elementCount = 0;
        var$4 = var$3.$elementData.data;
        var$5 = null;
        var$6 = 0;
        var$7 = var$4.length;
        if (var$6 > var$7) {
            $par1DataInput = new jl_IllegalArgumentException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        while (var$6 < var$7) {
            var$8 = var$6 + 1 | 0;
            var$4[var$6] = var$5;
            var$6 = var$8;
        }
        var$3.$modCount1 = var$3.$modCount1 + 1 | 0;
    }
    $par2 = $par2 + 1 | 0;
    var$9 = null;
    while (true) {
        var$8 = $par1DataInput.$in.$read();
        if (var$8 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        var$7 = var$8 << 24 >> 24;
        if (var$7) {
            var$8 = ji_DataInputStream_readUnsignedShort($par1DataInput);
            var$4 = $rt_createByteArray(var$8);
            var$10 = $rt_createCharArray(var$8);
            ji_DataInputStream_readFully($par1DataInput, var$4, 0, var$8);
            var$3 = nms_NBTBase_newTag(var$7, ji_DataInputStream_convertUTF8WithBuf(var$4, var$10, 0, var$8));
            var$3.$load($par1DataInput, $par2);
        } else {
            var$3 = new nms_NBTTagEnd;
            if (var$9 !== null)
                var$3.$name = var$9;
            else
                var$3.$name = $rt_s(3);
        }
        if (!var$3.$getId())
            break;
        var$5 = $this.$tagMap;
        var$11 = var$3.$name;
        if (var$11 === null)
            var$11 = $rt_s(3);
        ju_HashMap_putImpl(var$5, var$11, var$3);
    }
},
nms_NBTTagCompound_getTags = $this => {
    let var$1, var$2;
    var$1 = $this.$tagMap;
    if (var$1.$cachedValues === null) {
        var$2 = new ju_HashMap$2;
        var$2.$this$01 = var$1;
        var$1.$cachedValues = var$2;
    }
    return var$1.$cachedValues;
},
nms_NBTTagCompound_getId = $this => {
    return 10;
},
nms_NBTTagCompound_setTag = ($this, $par1Str, $par2NBTBase) => {
    let var$3;
    var$3 = $this.$tagMap;
    if ($par1Str !== null)
        $par2NBTBase.$name = $par1Str;
    else
        $par2NBTBase.$name = $rt_s(3);
    ju_HashMap_putImpl(var$3, $par1Str, $par2NBTBase);
},
nms_NBTTagCompound_setShort = ($this, $par1Str, $par2) => {
    let var$3, var$4;
    var$3 = $this.$tagMap;
    var$4 = new nms_NBTTagShort;
    if ($par1Str !== null)
        var$4.$name = $par1Str;
    else
        var$4.$name = $rt_s(3);
    var$4.$data2 = $par2;
    ju_HashMap_putImpl(var$3, $par1Str, var$4);
},
nms_NBTTagCompound_setInteger = ($this, $par1Str, $par2) => {
    let var$3, var$4;
    var$3 = $this.$tagMap;
    var$4 = new nms_NBTTagInt;
    if ($par1Str !== null)
        var$4.$name = $par1Str;
    else
        var$4.$name = $rt_s(3);
    var$4.$data = $par2;
    ju_HashMap_putImpl(var$3, $par1Str, var$4);
},
nms_NBTTagCompound_setLong = ($this, $par1Str, $par2) => {
    let var$3, var$4;
    var$3 = $this.$tagMap;
    var$4 = new nms_NBTTagLong;
    if ($par1Str !== null)
        var$4.$name = $par1Str;
    else
        var$4.$name = $rt_s(3);
    var$4.$data6 = $par2;
    ju_HashMap_putImpl(var$3, $par1Str, var$4);
},
nms_NBTTagCompound_setFloat = ($this, $par1Str, $par2) => {
    let var$3, var$4;
    var$3 = $this.$tagMap;
    var$4 = new nms_NBTTagFloat;
    if ($par1Str !== null)
        var$4.$name = $par1Str;
    else
        var$4.$name = $rt_s(3);
    var$4.$data5 = $par2;
    ju_HashMap_putImpl(var$3, $par1Str, var$4);
},
nms_NBTTagCompound_setString = ($this, $par1Str, $par2Str) => {
    let var$3, var$4;
    var$3 = $this.$tagMap;
    var$4 = new nms_NBTTagString;
    if ($par1Str !== null)
        var$4.$name = $par1Str;
    else
        var$4.$name = $rt_s(3);
    var$4.$data1 = $par2Str;
    if ($par2Str !== null) {
        ju_HashMap_putImpl(var$3, $par1Str, var$4);
        return;
    }
    $par2Str = new jl_IllegalArgumentException;
    $par2Str.$suppressionEnabled = 1;
    $par2Str.$writableStackTrace = 1;
    $par2Str.$message = $rt_s(177);
    $rt_throw($par2Str);
},
nms_NBTTagCompound_setCompoundTag = ($this, $par1Str, $par2NBTTagCompound) => {
    let var$3;
    var$3 = $this.$tagMap;
    if ($par1Str !== null)
        $par2NBTTagCompound.$name = $par1Str;
    else
        $par2NBTTagCompound.$name = $rt_s(3);
    ju_HashMap_putImpl(var$3, $par1Str, $par2NBTTagCompound);
},
nms_NBTTagCompound_setBoolean = ($this, $par1Str, $par2) => {
    let var$3, var$4;
    $par2 = (!$par2 ? 0 : 1) << 24 >> 24;
    var$3 = $this.$tagMap;
    var$4 = new nms_NBTTagByte;
    if ($par1Str !== null)
        var$4.$name = $par1Str;
    else
        var$4.$name = $rt_s(3);
    var$4.$data0 = $par2;
    ju_HashMap_putImpl(var$3, $par1Str, var$4);
},
nms_NBTTagCompound_hasKey = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? 0 : 1;
},
nms_NBTTagCompound_getByte = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    return var$3;
},
nms_NBTTagCompound_getShort = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data2;
    }
    return var$3;
},
nms_NBTTagCompound_getInteger = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    return var$3;
},
nms_NBTTagCompound_getLong = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$7 = Long_ZERO;
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$7 = (var$2 === null ? null : var$2.$value0).$data6;
    }
    return var$7;
},
nms_NBTTagCompound_getFloat = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$7 = 0.0;
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$7 = (var$2 === null ? null : var$2.$value0).$data5;
    }
    return var$7;
},
nms_NBTTagCompound_getString = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        $par1Str = $rt_s(3);
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $par1Str = (var$2 === null ? null : var$2.$value0).$data1;
    }
    return $par1Str;
},
nms_NBTTagCompound_getCompoundTag = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1)) {
        var$2 = new nms_NBTTagCompound;
        if ($par1Str !== null)
            var$2.$name = $par1Str;
        else
            var$2.$name = $rt_s(3);
        var$2.$tagMap = ju_HashMap__init_();
    } else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
    }
    return var$2;
},
nms_NBTTagCompound_getTagList = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1)) {
        var$2 = new nms_NBTTagList;
        if ($par1Str !== null)
            var$2.$name = $par1Str;
        else
            var$2.$name = $rt_s(3);
        $par1Str = new ju_ArrayList;
        $par1Str.$array = $rt_createArray(jl_Object, 10);
        var$2.$tagList = $par1Str;
    } else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
    }
    return var$2;
},
nms_NBTTagCompound_getBoolean = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$tagMap;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $this.$tagMap;
        if ($par1Str === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break c;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    return !var$3 ? 0 : 1;
},
nms_NBTTagCompound_toString = $this => {
    let var$1, $var2, var$3, var$4, var$5, var$6, $var3, var$8, var$9, var$10;
    var$1 = $this.$name;
    if (var$1 === null)
        var$1 = $rt_s(3);
    $var2 = new jl_StringBuilder;
    $var2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($var2, $var2.$length0, var$1);
    jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(309));
    var$1 = new jl_String;
    var$3 = $var2.$buffer;
    var$4 = var$3.data;
    var$5 = $var2.$length0;
    var$6 = var$4.length;
    if (var$5 >= 0 && var$5 <= (var$6 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$3.data, 0, var$5);
        $var2 = $this.$tagMap;
        if ($var2.$cachedKeySet === null) {
            $var3 = new ju_HashMap$1;
            $var3.$this$0 = $var2;
            $var2.$cachedKeySet = $var3;
        }
        $var2 = $var2.$cachedKeySet.$iterator();
        while (true) {
            if (!$var2.$hasNext()) {
                $var2 = new jl_StringBuilder;
                $var2.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var2, $var2.$length0, var$1);
                var$5 = $var2.$length0;
                jl_AbstractStringBuilder_insertSpace($var2, var$5, var$5 + 1 | 0);
                var$3 = $var2.$buffer;
                var$4 = var$3.data;
                var$4[var$5] = 93;
                var$1 = new jl_String;
                var$5 = $var2.$length0;
                var$6 = var$4.length;
                if (var$5 >= 0 && var$5 <= (var$6 - 0 | 0)) {
                    var$1.$nativeString = $rt_charArrayToString(var$3.data, 0, var$5);
                    return var$1;
                }
                $var2 = new jl_IndexOutOfBoundsException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $rt_throw($var2);
            }
            $var3 = $var2.$next();
            var$8 = $this.$tagMap;
            if ($var3 === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                a: {
                    if (!$var3.$hashCode1) {
                        var$9 = 0;
                        while (true) {
                            if (var$9 >= $var3.$nativeString.length)
                                break a;
                            $var3.$hashCode1 = (31 * $var3.$hashCode1 | 0) + $var3.$nativeString.charCodeAt(var$9) | 0;
                            var$9 = var$9 + 1 | 0;
                        }
                    }
                }
                var$6 = $var3.$hashCode1;
                var$3 = var$8.$elementData.data;
                var$8 = var$3[var$6 & (var$3.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$6) {
                        b: {
                            var$10 = var$8.$key;
                            if ($var3 !== var$10) {
                                if ($var3 === var$10)
                                    var$9 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    var$9 = 0;
                                else {
                                    var$10 = var$10;
                                    var$9 = $var3.$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!var$9) {
                                    var$9 = 0;
                                    break b;
                                }
                            }
                            var$9 = 1;
                        }
                        if (var$9)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$8 = var$8 === null ? null : var$8.$value0;
            var$8 = var$8 === null ? $rt_s(1) : var$8.$toString();
            var$10 = new jl_StringBuilder;
            var$10.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, var$1);
            var$9 = var$10.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$10, var$9, $var3);
            var$9 = var$10.$length0;
            jl_AbstractStringBuilder_insertSpace(var$10, var$9, var$9 + 1 | 0);
            var$10.$buffer.data[var$9] = 58;
            var$9 = var$10.$length0;
            if (var$8 === null)
                var$8 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$10, var$9, var$8);
            var$9 = var$10.$length0;
            jl_AbstractStringBuilder_insertSpace(var$10, var$9, var$9 + 1 | 0);
            var$3 = var$10.$buffer;
            var$4 = var$3.data;
            var$4[var$9] = 44;
            var$1 = new jl_String;
            var$5 = var$10.$length0;
            var$6 = var$4.length;
            if (var$5 < 0)
                break;
            if (var$5 > (var$6 - 0 | 0))
                break;
            var$1.$nativeString = $rt_charArrayToString(var$3.data, 0, var$5);
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    }
    $var2 = new jl_IndexOutOfBoundsException;
    $var2.$suppressionEnabled = 1;
    $var2.$writableStackTrace = 1;
    $rt_throw($var2);
},
nms_NBTTagCompound_copy = $this => {
    let $var1, $var2, var$3, var$4, var$5, var$6, $var3, var$8, var$9;
    $var1 = new nms_NBTTagCompound;
    $var2 = $this.$name;
    if ($var2 === null)
        $var2 = $rt_s(3);
    $var1.$name = $var2;
    $var2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    $var2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    $var2.$elementData = var$4;
    $var2.$loadFactor = 0.75;
    $var2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = $var2;
    $var2 = $this.$tagMap;
    if ($var2.$cachedKeySet === null) {
        var$6 = new ju_HashMap$1;
        var$6.$this$0 = $var2;
        $var2.$cachedKeySet = var$6;
    }
    $var2 = $var2.$cachedKeySet.$iterator();
    while ($var2.$hasNext()) {
        $var3 = $var2.$next();
        var$6 = $this.$tagMap;
        if ($var3 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            a: {
                if (!$var3.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $var3.$nativeString.length)
                            break a;
                        $var3.$hashCode1 = (31 * $var3.$hashCode1 | 0) + $var3.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $var3.$hashCode1;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$8) {
                    b: {
                        var$9 = var$6.$key;
                        if ($var3 !== var$9) {
                            if ($var3 === var$9)
                                var$3 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$9 = var$9;
                                var$3 = $var3.$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break b;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$6 = var$6 === null ? null : var$6.$value0;
        var$6 = var$6.$copy();
        var$9 = $var1.$tagMap;
        if ($var3 !== null)
            var$6.$name = $var3;
        else
            var$6.$name = $rt_s(3);
        ju_HashMap_putImpl(var$9, $var3, var$6);
    }
    return $var1;
},
nms_NBTTagCompound_equals = ($this, $par1Obj) => {
    let $var2, var$3;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    $par1Obj = $this.$tagMap;
    var$3 = new ju_HashMap$HashMapEntrySet;
    var$3.$associatedMap0 = $par1Obj;
    $par1Obj = $var2.$tagMap;
    $var2 = new ju_HashMap$HashMapEntrySet;
    $var2.$associatedMap0 = $par1Obj;
    return ju_AbstractSet_equals(var$3, $var2);
},
nms_NBTTagCompound_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$2 = var$1.$hashCode1 ^ 10;
    var$1 = $this.$tagMap;
    var$3 = 0;
    var$4 = new ju_HashMap$EntryIterator;
    var$4.$associatedMap = var$1;
    var$4.$expectedModCount = var$1.$modCount1;
    var$4.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext(var$4)) {
        ju_HashMap$AbstractMapIterator_makeNext(var$4);
        var$5 = var$4.$currentEntry0;
        var$1 = var$5.$key;
        var$6 = var$1 !== null ? var$1.$hashCode() : 0;
        var$1 = var$5.$value0;
        var$3 = var$3 + (var$6 ^ (var$1 !== null ? var$1.$hashCode() : 0)) | 0;
    }
    return var$2 ^ var$3;
};
function ji_BufferedInputStream() {
    let a = this; ji_FilterInputStream.call(a);
    a.$buf1 = null;
    a.$count3 = 0;
    a.$marklimit = 0;
    a.$markpos = 0;
    a.$pos1 = 0;
}
let ji_BufferedInputStream__init_0 = ($this, $in) => {
    $this.$in = $in;
    $this.$markpos = (-1);
    $this.$buf1 = $rt_createByteArray(8192);
},
ji_BufferedInputStream__init_ = var_0 => {
    let var_1 = new ji_BufferedInputStream();
    ji_BufferedInputStream__init_0(var_1, var_0);
    return var_1;
},
ji_BufferedInputStream_available = $this => {
    let $localIn, var$2;
    $localIn = $this.$in;
    if ($this.$buf1 !== null && $localIn !== null)
        return ($this.$count3 - $this.$pos1 | 0) + $localIn.$available() | 0;
    var$2 = new ji_IOException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(310);
    $rt_throw(var$2);
},
ji_BufferedInputStream_close = $this => {
    let $localIn;
    $this.$buf1 = null;
    $localIn = $this.$in;
    $this.$in = null;
    if ($localIn !== null)
        $localIn.$close();
},
ji_BufferedInputStream_fillbuf = ($this, $localIn, $localBuf) => {
    let $bytesread, $result, var$5, $newLength, $newbuf;
    $bytesread = $this.$markpos;
    if ($bytesread != (-1)) {
        $result = $this.$pos1 - $bytesread | 0;
        var$5 = $this.$marklimit;
        if ($result < var$5) {
            a: {
                if (!$bytesread) {
                    $result = $localBuf.data.length;
                    if (var$5 > $result) {
                        $newLength = $result * 2 | 0;
                        if ($newLength <= var$5)
                            var$5 = $newLength;
                        $newbuf = $rt_createByteArray(var$5);
                        jl_System_fastArraycopy($localBuf, 0, $newbuf, 0, $result);
                        $this.$buf1 = $newbuf;
                        $localBuf = $this.$buf1;
                        break a;
                    }
                }
                if ($bytesread > 0)
                    jl_System_fastArraycopy($localBuf, $bytesread, $localBuf, 0, $localBuf.data.length - $bytesread | 0);
            }
            $newbuf = $localBuf.data;
            $result = $this.$pos1 - $this.$markpos | 0;
            $this.$pos1 = $result;
            $this.$count3 = 0;
            $this.$markpos = 0;
            $bytesread = $localIn.$read1($localBuf, $result, $newbuf.length - $result | 0);
            $this.$count3 = $bytesread <= 0 ? $this.$pos1 : $this.$pos1 + $bytesread | 0;
            return $bytesread;
        }
    }
    $result = $localIn.$read2($localBuf);
    if ($result > 0) {
        $this.$markpos = (-1);
        $this.$pos1 = 0;
        $this.$count3 = $result;
    }
    return $result;
},
ji_BufferedInputStream_read0 = $this => {
    let $localBuf, $localIn, var$3, var$4, var$5;
    jl_Object_monitorEnterSync($this);
    try {
        $localBuf = $this.$buf1;
        $localIn = $this.$in;
        if ($localBuf !== null && $localIn !== null) {
            if ($this.$pos1 >= $this.$count3 && ji_BufferedInputStream_fillbuf($this, $localIn, $localBuf) == (-1))
                return (-1);
            if ($localBuf !== $this.$buf1) {
                $localBuf = $this.$buf1;
                if ($localBuf === null) {
                    $localIn = new ji_IOException;
                    $localIn.$suppressionEnabled = 1;
                    $localIn.$writableStackTrace = 1;
                    $localIn.$message = $rt_s(310);
                    $rt_throw($localIn);
                }
            }
            var$3 = $this.$count3;
            var$4 = $this.$pos1;
            if ((var$3 - var$4 | 0) <= 0)
                return (-1);
            $localBuf = $localBuf.data;
            $this.$pos1 = var$4 + 1 | 0;
            return $localBuf[var$4] & 255;
        }
        var$5 = new ji_IOException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(310);
        $rt_throw(var$5);
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
ji_BufferedInputStream_read = ($this, $buffer, $offset, $length) => {
    let $localBuf, $localIn, $required, $read, $copylength;
    jl_Object_monitorEnterSync($this);
    try {
        $localBuf = $this.$buf1;
        if ($localBuf === null) {
            $localIn = new ji_IOException;
            $localIn.$suppressionEnabled = 1;
            $localIn.$writableStackTrace = 1;
            $localIn.$message = $rt_s(310);
            $rt_throw($localIn);
        }
        if ($offset <= ($buffer.data.length - $length | 0) && $offset >= 0 && $length >= 0) {
            if (!$length)
                return 0;
            $localIn = $this.$in;
            if ($localIn === null) {
                $localIn = new ji_IOException;
                $localIn.$suppressionEnabled = 1;
                $localIn.$writableStackTrace = 1;
                $localIn.$message = $rt_s(310);
                $rt_throw($localIn);
            }
            $required = $this.$pos1;
            $read = $this.$count3;
            if ($required >= $read)
                $required = $length;
            else {
                $copylength = $read - $required | 0;
                if ($copylength >= $length)
                    $copylength = $length;
                jl_System_fastArraycopy($localBuf, $required, $buffer, $offset, $copylength);
                $this.$pos1 = $this.$pos1 + $copylength | 0;
                if ($copylength != $length && $localIn.$available()) {
                    $offset = $offset + $copylength | 0;
                    $required = $length - $copylength | 0;
                } else
                    return $copylength;
            }
            while (true) {
                if ($this.$markpos == (-1) && $required >= $localBuf.data.length) {
                    $read = $localIn.$read1($buffer, $offset, $required);
                    if ($read == (-1))
                        return $required != $length ? $length - $required | 0 : (-1);
                } else {
                    if (ji_BufferedInputStream_fillbuf($this, $localIn, $localBuf) == (-1))
                        return $required != $length ? $length - $required | 0 : (-1);
                    if ($localBuf !== $this.$buf1) {
                        $localBuf = $this.$buf1;
                        if ($localBuf === null) {
                            $localIn = new ji_IOException;
                            $localIn.$suppressionEnabled = 1;
                            $localIn.$writableStackTrace = 1;
                            $localIn.$message = $rt_s(310);
                            $rt_throw($localIn);
                        }
                    }
                    $read = $this.$count3;
                    $copylength = $this.$pos1;
                    $read = $read - $copylength | 0;
                    if ($read >= $required)
                        $read = $required;
                    jl_System_fastArraycopy($localBuf, $copylength, $buffer, $offset, $read);
                    $this.$pos1 = $this.$pos1 + $read | 0;
                }
                $required = $required - $read | 0;
                if (!$required)
                    break;
                if (!$localIn.$available())
                    return $length - $required | 0;
                $offset = $offset + $read | 0;
            }
            return $length;
        }
        $localIn = new jl_IndexOutOfBoundsException;
        $localIn.$suppressionEnabled = 1;
        $localIn.$writableStackTrace = 1;
        $rt_throw($localIn);
    } finally {
        jl_Object_monitorExitSync($this);
    }
};
function cjj_InflaterInputStream() {
    let a = this; ji_FilterInputStream.call(a);
    a.$inflater = null;
    a.$buf5 = null;
    a.$closed0 = 0;
    a.$eof0 = 0;
    a.$close_in = 0;
    a.$myinflater = 0;
    a.$byte1 = null;
    a.$b = null;
}
let cjj_InflaterInputStream__init_ = ($this, $in, $inflater, $size, $close_in) => {
    $this.$in = $in;
    $this.$closed0 = 0;
    $this.$eof0 = 0;
    $this.$close_in = 1;
    $this.$myinflater = 0;
    $this.$byte1 = $rt_createByteArray(1);
    $this.$b = $rt_createByteArray(512);
    if ($in !== null && $inflater !== null) {
        if ($size > 0) {
            $this.$inflater = $inflater;
            $this.$buf5 = $rt_createByteArray($size);
            $this.$close_in = $close_in;
            return;
        }
        $inflater = new jl_IllegalArgumentException;
        $inflater.$suppressionEnabled = 1;
        $inflater.$writableStackTrace = 1;
        $inflater.$message = $rt_s(311);
        $rt_throw($inflater);
    }
    $in = new jl_NullPointerException;
    $in.$suppressionEnabled = 1;
    $in.$writableStackTrace = 1;
    $rt_throw($in);
},
cjj_InflaterInputStream__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new cjj_InflaterInputStream();
    cjj_InflaterInputStream__init_(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
cjj_InflaterInputStream_read0 = $this => {
    let var$1;
    if ($this.$closed0) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(312);
        $rt_throw(var$1);
    }
    return cjj_InflaterInputStream_read($this, $this.$byte1, 0, 1) == (-1) ? (-1) : $this.$byte1.data[0] & 255;
},
cjj_InflaterInputStream_read = ($this, $b, $off, $len) => {
    let var$4, $n, var$6, $err;
    if ($this.$closed0) {
        var$4 = new ji_IOException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        var$4.$message = $rt_s(312);
        $rt_throw(var$4);
    }
    if ($b === null) {
        var$4 = new jl_NullPointerException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($off >= 0 && $len >= 0 && $len <= ($b.data.length - $off | 0)) {
        if (!$len)
            return 0;
        if ($this.$eof0)
            return (-1);
        $n = 0;
        var$4 = $this.$inflater;
        var$4.$next_out = $b;
        var$4.$next_out_index = $off;
        var$4.$avail_out = $len;
        a: {
            while (!$this.$eof0) {
                if (!$this.$inflater.$avail_in)
                    cjj_InflaterInputStream_fill($this);
                var$4 = $this.$inflater;
                var$6 = var$4.$istate;
                if (var$6 === null)
                    $err = (-2);
                else {
                    $err = cjj_Inflate_inflate(var$6, 0);
                    if ($err == 1)
                        var$4.$finished0 = 1;
                }
                b: {
                    var$4 = $this.$inflater;
                    $len = var$4.$next_out_index;
                    $n = $n + ($len - $off | 0) | 0;
                    switch ($err) {
                        case -3:
                            var$6 = new ji_IOException;
                            var$4 = var$4.$msg;
                            var$6.$suppressionEnabled = 1;
                            var$6.$writableStackTrace = 1;
                            var$6.$message = var$4;
                            $rt_throw(var$6);
                        case 1:
                        case 2:
                            break;
                        default:
                            break b;
                    }
                    $this.$eof0 = 1;
                    if ($err == 2)
                        return (-1);
                }
                if (!var$4.$avail_out)
                    break a;
                $off = $len;
            }
        }
        return $n;
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
cjj_InflaterInputStream_available = $this => {
    let var$1;
    if (!$this.$closed0) {
        if (!$this.$eof0)
            return 1;
        return 0;
    }
    var$1 = new ji_IOException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    var$1.$message = $rt_s(312);
    $rt_throw(var$1);
},
cjj_InflaterInputStream_close = $this => {
    let var$1;
    if (!$this.$closed0) {
        if ($this.$myinflater) {
            var$1 = $this.$inflater;
            var$1.$finished0 = 1;
            var$1 = var$1.$istate;
            if (var$1 !== null) {
                var$1 = var$1.$blocks;
                if (var$1 !== null) {
                    cjj_InfBlocks_reset(var$1);
                    var$1.$window = null;
                    var$1.$hufts = null;
                }
            }
        }
        if ($this.$close_in)
            $this.$in.$close();
        $this.$closed0 = 1;
    }
},
cjj_InflaterInputStream_fill = $this => {
    let var$1, var$2, $len;
    if ($this.$closed0) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(312);
        $rt_throw(var$1);
    }
    a: {
        var$1 = $this.$in;
        var$2 = $this.$buf5;
        $len = var$1.$read1(var$2, 0, var$2.data.length);
        if ($len == (-1)) {
            var$1 = $this.$inflater.$istate;
            if (var$1.$wrap1)
                break a;
            if (var$1.$mode != 12 ? 0 : 1)
                break a;
            $this.$buf5.data[0] = 0;
            $len = 1;
        }
        cjj_ZStream_setInput($this.$inflater, $this.$buf5, 0, $len, 1);
        return;
    }
    if (Long_ne(var$1.$was, Long_fromInt(-1))) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(313);
        $rt_throw(var$1);
    }
    var$1 = new ji_EOFException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    var$1.$message = $rt_s(314);
    $rt_throw(var$1);
},
cjj_GZIPInputStream = $rt_classWithoutFields(cjj_InflaterInputStream);
function ji_ByteArrayInputStream() {
    let a = this; ji_InputStream.call(a);
    a.$buf0 = null;
    a.$pos0 = 0;
    a.$mark = 0;
    a.$count = 0;
}
let ji_ByteArrayInputStream__init_0 = ($this, $buf) => {
    let var$2;
    var$2 = $buf.data.length;
    $this.$buf0 = $buf;
    $this.$pos0 = 0;
    $this.$mark = 0;
    $this.$count = 0 + var$2 | 0;
},
ji_ByteArrayInputStream__init_ = var_0 => {
    let var_1 = new ji_ByteArrayInputStream();
    ji_ByteArrayInputStream__init_0(var_1, var_0);
    return var_1;
},
ji_ByteArrayInputStream_read = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$pos0;
    if (var$1 >= $this.$count)
        var$2 = (-1);
    else {
        var$3 = $this.$buf0.data;
        $this.$pos0 = var$1 + 1 | 0;
        var$2 = var$3[var$1] & 255;
    }
    return var$2;
},
ji_ByteArrayInputStream_read0 = ($this, $b, $off, $bytesToRead) => {
    let $bytesToRead_0, $i, var$6, var$7, var$8;
    $bytesToRead_0 = $this.$count - $this.$pos0 | 0;
    if ($bytesToRead < $bytesToRead_0)
        $bytesToRead_0 = $bytesToRead;
    $i = 0;
    while ($i < $bytesToRead_0) {
        var$6 = $b.data;
        $bytesToRead = $off + 1 | 0;
        var$7 = $this.$buf0.data;
        var$8 = $this.$pos0;
        $this.$pos0 = var$8 + 1 | 0;
        var$6[$off] = var$7[var$8];
        $i = $i + 1 | 0;
        $off = $bytesToRead;
    }
    if ($bytesToRead_0 <= 0)
        $bytesToRead_0 = (-1);
    return $bytesToRead_0;
},
ji_ByteArrayInputStream_available = $this => {
    return $this.$count - $this.$pos0 | 0;
},
ji_ByteArrayInputStream_close = $this => {
    return;
};
function nles_WorkerListenThread() {
    let a = this; jl_Object.call(a);
    a.$mcServer5 = null;
    a.$connections = null;
    a.$channels = null;
    a.$isListening = 0;
}
let nles_WorkerListenThread_openChannel = ($this, $player) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    if (jl_System_outCache === null) {
        var$2 = new otcic_JSStdoutPrintStream;
        var$3 = new ji_ByteArrayOutputStream;
        var$3.$buf = $rt_createByteArray(32);
        var$2.$out0 = var$3;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        var$2.$sb = var$3;
        var$2.$buffer0 = $rt_createCharArray(32);
        var$2.$autoFlush = 0;
        var$2.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_outCache = var$2;
    }
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(315));
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $player === null ? $rt_s(1) : $player);
    var$4 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$4, var$4 + 1 | 0);
    var$5 = var$2.$buffer;
    var$6 = var$5.data;
    var$6[var$4] = 93;
    var$3 = new jl_String;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        $rt_putStdout($rt_ustr(var$3));
        $rt_putStdout("\n");
        var$9 = $this.$channels;
        var$2 = new nles_WorkerNetworkManager;
        var$10 = $this.$mcServer5;
        var$2.$frags = new ju_LinkedList;
        var$2.$ipcChannel = $player;
        var$11 = nms_NetLoginHandler__init_0(var$10, var$2);
        var$2.$theNetHandler = var$11;
        if (jl_System_outCache === null) {
            var$3 = new otcic_JSStdoutPrintStream;
            var$12 = new ji_ByteArrayOutputStream;
            var$12.$buf = $rt_createByteArray(32);
            var$3.$out0 = var$12;
            var$12 = new jl_StringBuilder;
            var$12.$buffer = $rt_createCharArray(16);
            var$3.$sb = var$12;
            var$3.$buffer0 = $rt_createCharArray(32);
            var$3.$autoFlush = 0;
            var$3.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$3;
        }
        var$12 = var$11.constructor;
        if (var$12 === null)
            var$3 = null;
        else {
            var$3 = var$12.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$12;
                var$12.classObject = var$3;
            }
        }
        var$3 = jl_Class_getSimpleName(var$3);
        var$12 = new jl_StringBuilder;
        var$12.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$12, var$12.$length0, $rt_s(316));
        var$4 = var$12.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$12, var$4, var$3);
        var$7 = var$12.$length0;
        jl_AbstractStringBuilder_insertSpace(var$12, var$7, var$7 + 1 | 0);
        var$5 = var$12.$buffer;
        var$6 = var$5.data;
        var$6[var$7] = 93;
        var$3 = new jl_String;
        var$7 = var$12.$length0;
        var$13 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$13 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            $rt_putStdout($rt_ustr(var$3));
            $rt_putStdout("\n");
            var$3 = $this.$connections;
            ju_HashMap_putImpl(var$3.$backingMap, var$11, var$3);
            var$2.$minecraftServer = var$10;
            var$2.$isAlive = 1;
            var$2.$listenThread = $this;
            return ju_HashMap_putImpl(var$9, $player, var$2) !== null ? 0 : 1;
        }
        $player = new jl_IndexOutOfBoundsException;
        $player.$suppressionEnabled = 1;
        $player.$writableStackTrace = 1;
        $rt_throw($player);
    }
    $player = new jl_IndexOutOfBoundsException;
    $player.$suppressionEnabled = 1;
    $player.$writableStackTrace = 1;
    $rt_throw($player);
},
nles_WorkerListenThread_closeChannel = ($this, $player) => {
    let $channel, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$channel = $thread.pop();$player = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (jl_System_outCache === null) {
            $channel = new otcic_JSStdoutPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            $channel.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            var$3.$buffer = $rt_createCharArray(16);
            $channel.$sb = var$3;
            $channel.$buffer0 = $rt_createCharArray(32);
            $channel.$autoFlush = 0;
            $channel.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $channel;
        }
        $channel = new jl_StringBuilder;
        $channel.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($channel, $channel.$length0, $rt_s(317));
        jl_AbstractStringBuilder_insert($channel, $channel.$length0, $player === null ? $rt_s(1) : $player);
        var$4 = $channel.$length0;
        jl_AbstractStringBuilder_insertSpace($channel, var$4, var$4 + 1 | 0);
        var$5 = $channel.$buffer;
        var$6 = var$5.data;
        var$6[var$4] = 93;
        var$3 = new jl_String;
        var$4 = $channel.$length0;
        var$7 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
            $rt_putStdout($rt_ustr(var$3));
            $rt_putStdout("\n");
            $channel = $this.$channels;
            if ($player === null) {
                $channel = $channel.$elementData.data[0];
                while ($channel !== null && $channel.$key !== null) {
                    $channel = $channel.$next3;
                }
            } else {
                a: {
                    if (!$player.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $player.$nativeString.length)
                                break a;
                            $player.$hashCode1 = (31 * $player.$hashCode1 | 0) + $player.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$7 = $player.$hashCode1;
                var$5 = $channel.$elementData.data;
                $channel = var$5[var$7 & (var$5.length - 1 | 0)];
                while ($channel !== null) {
                    if ($channel.$origKeyHash == var$7) {
                        b: {
                            var$3 = $channel.$key;
                            if ($player !== var$3) {
                                if ($player === var$3)
                                    var$8 = 1;
                                else if (!(var$3 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$3 = var$3;
                                    var$8 = $player.$nativeString !== var$3.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break b;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $channel = $channel.$next3;
                }
            }
            $channel = $channel === null ? null : $channel.$value0;
            if ($channel === null)
                return 0;
            ju_HashMap_removeByKey($this.$channels, $player);
            var$3 = null;
            var$5 = $rt_wrapArray(jl_Object, [null, null]);
            $ptr = 1;
            continue main;
        }
        $player = new jl_IndexOutOfBoundsException;
        $player.$suppressionEnabled = 1;
        $player.$writableStackTrace = 1;
        $rt_throw($player);
    case 1:
        nles_WorkerNetworkManager_networkShutdown($channel, var$3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $player, $channel, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
};
function nles_EPKDecompiler() {
    let a = this; jl_Object.call(a);
    a.$in20 = null;
    a.$in1 = null;
    a.$zis = null;
    a.$dg = null;
    a.$crc32 = null;
    a.$numFiles = 0;
    a.$isFinished = 0;
    a.$isOldFormat = 0;
}
let nles_EPKDecompiler__init_0 = ($this, $data) => {
    let var$2, var$3, var$4, $header, $i, var$7, var$8, var$9, var$10, var$11, var$12;
    a: {
        var$2 = $data.data;
        $this.$isFinished = 0;
        $this.$isOldFormat = 0;
        var$3 = new ji_ByteArrayInputStream;
        var$4 = var$2.length;
        var$3.$buf0 = $data;
        var$3.$pos0 = 0;
        var$3.$mark = 0;
        var$3.$count = 0 + var$4 | 0;
        $this.$in20 = var$3;
        $header = $rt_createByteArray(8);
        ji_ByteArrayInputStream_read0(var$3, $header, 0, $header.data.length);
        if (ju_Arrays_equals0($header, $rt_createByteArrayFromData([69, 65, 71, 80, 75, 71, 36, 36]))) {
            $header = $rt_createByteArray(8).data;
            $header[0] = 58;
            $header[1] = 58;
            $header[2] = 58;
            $header[3] = 89;
            $header[4] = 69;
            $header[5] = 69;
            $header[6] = 58;
            $header[7] = 62;
            $i = 0;
            var$7 = var$4 - 8 | 0;
            while (true) {
                if ($i >= 8) {
                    var$3 = new ji_ByteArrayInputStream;
                    $i = var$4 - 16 | 0;
                    var$3.$buf0 = $data;
                    var$3.$pos0 = 8;
                    var$3.$mark = 8;
                    var$3.$count = 8 + $i | 0;
                    $this.$in20 = var$3;
                    nles_EPKDecompiler_initNew($this);
                    break a;
                }
                if (var$2[var$7 + $i | 0] != $header[$i])
                    break;
                $i = $i + 1 | 0;
            }
            var$3 = new ji_IOException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(318);
            $rt_throw(var$3);
        }
        if (ju_Arrays_equals0($header, $rt_createByteArrayFromData([69, 65, 71, 80, 75, 71, 33, 33]))) {
            $this.$isOldFormat = 1;
            var$3 = new nles_SHA1Digest;
            var$3.$xBuf = $rt_createByteArray(4);
            var$3.$xBufOff = 0;
            var$3.$X = $rt_createIntArray(80);
            nles_SHA1Digest_reset(var$3);
            $this.$dg = var$3;
            var$3 = new ji_DataInputStream;
            var$3.$in = $this.$in20;
            var$3.$buff = $rt_createByteArray(8);
            $this.$in1 = var$3;
            $i = ji_DataInputStream_readUnsignedShort(var$3);
            $data = $rt_createByteArray($i);
            $header = $rt_createCharArray($i);
            ji_DataInputStream_readFully(var$3, $data, 0, $i);
            ji_DataInputStream_convertUTF8WithBuf($data, $header, 0, $i);
            var$3 = new ji_DataInputStream;
            var$8 = new cjj_InflaterInputStream;
            var$9 = $this.$in20;
            var$10 = new cjj_Inflater;
            var$11 = new cjj_Adler32;
            var$11.$s1 = Long_fromInt(1);
            var$11.$s2 = Long_ZERO;
            var$10.$adler = var$11;
            var$10.$finished0 = 0;
            var$10.$finished0 = 0;
            var$11 = new cjj_Inflate;
            var$11.$was = Long_fromInt(-1);
            var$11.$need_bytes = (-1);
            var$11.$crcbuf = $rt_createByteArray(4);
            var$11.$gheader = null;
            var$11.$tmp_string = null;
            var$11.$z0 = var$10;
            var$10.$istate = var$11;
            $i = cjj_Inflate_inflateInit(var$11, 15);
            if ($i) {
                var$3 = new cjj_GZIPException;
                var$8 = new jl_StringBuilder;
                var$8.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $i, 10);
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(102));
                var$9 = var$10.$msg;
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, var$9);
                var$9 = new jl_String;
                $data = var$8.$buffer;
                $header = $data.data;
                var$12 = var$8.$length0;
                var$7 = $header.length;
                if (var$12 >= 0 && var$12 <= (var$7 - 0 | 0)) {
                    var$9.$nativeString = $rt_charArrayToString($data.data, 0, var$12);
                    jl_Throwable__init_0(var$3, var$9);
                    $rt_throw(var$3);
                }
                var$3 = new jl_IndexOutOfBoundsException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
            cjj_InflaterInputStream__init_(var$8, var$9, var$10, 512, 1);
            var$8.$myinflater = 1;
            var$3.$in = var$8;
            var$3.$buff = $rt_createByteArray(8);
            $this.$in1 = var$3;
        }
    }
},
nles_EPKDecompiler__init_ = var_0 => {
    let var_1 = new nles_EPKDecompiler();
    nles_EPKDecompiler__init_0(var_1, var_0);
    return var_1;
},
nles_EPKDecompiler_initNew = $this => {
    let $is, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $vers, var$10, $compressionType, var$12, var$13, var$14;
    $is = $this.$in20;
    var$2 = $is.$pos0;
    var$3 = $is.$count;
    if (var$2 >= var$3)
        var$4 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$2 + 1 | 0;
        var$4 = var$5[var$2] & 255;
    }
    var$5 = $rt_createCharArray(var$4);
    var$6 = var$5.data;
    var$2 = 0;
    while (var$2 < var$4) {
        var$7 = $is.$pos0;
        if (var$7 >= var$3)
            var$7 = (-1);
        else {
            var$8 = $is.$buf0.data;
            $is.$pos0 = var$7 + 1 | 0;
            var$7 = var$8[var$7] & 255;
        }
        var$6[var$2] = var$7 & 255 & 65535;
        var$2 = var$2 + 1 | 0;
    }
    $vers = new jl_String;
    $vers.$nativeString = $rt_charArrayToString(var$5.data, 0, var$6.length);
    if (!($vers === $rt_s(319) ? 1 : jl_String_startsWith($vers, $rt_s(319), 0))) {
        var$10 = new ji_IOException;
        $is = new jl_StringBuilder;
        $is.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($is, $is.$length0, $rt_s(320));
        $compressionType = $is.$length0;
        if ($vers === null)
            $vers = $rt_s(1);
        jl_AbstractStringBuilder_insert($is, $compressionType, $vers);
        $vers = new jl_String;
        var$5 = $is.$buffer;
        var$6 = var$5.data;
        var$2 = $is.$length0;
        var$7 = var$6.length;
        if (var$2 >= 0 && var$2 <= (var$7 - 0 | 0)) {
            $vers.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
            var$10.$suppressionEnabled = 1;
            var$10.$writableStackTrace = 1;
            var$10.$message = $vers;
            $rt_throw(var$10);
        }
        var$10 = new jl_IndexOutOfBoundsException;
        var$10.$suppressionEnabled = 1;
        var$10.$writableStackTrace = 1;
        $rt_throw(var$10);
    }
    var$2 = $is.$pos0;
    var$3 = $is.$count;
    if (var$2 >= var$3)
        $compressionType = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$2 + 1 | 0;
        $compressionType = var$5[var$2] & 255;
    }
    var$12 = Long_fromInt($compressionType);
    $compressionType = $is.$pos0;
    var$13 = Long_fromInt(var$3 - $compressionType | 0);
    if (Long_lt(var$12, var$13))
        var$13 = var$12;
    var$2 = $compressionType + Long_lo(var$13) | 0;
    $is.$pos0 = var$2;
    if (var$2 >= var$3)
        var$2 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$2 + 1 | 0;
        var$2 = var$5[var$2] & 255;
    }
    $compressionType = var$2 << 8;
    var$7 = $is.$pos0;
    if (var$7 >= var$3)
        var$2 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$7 + 1 | 0;
        var$2 = var$5[var$7] & 255;
    }
    var$12 = Long_fromInt($compressionType | var$2);
    $compressionType = $is.$pos0;
    var$13 = Long_fromInt(var$3 - $compressionType | 0);
    if (Long_lt(var$12, var$13))
        var$13 = var$12;
    var$2 = $compressionType + Long_lo(var$13) | 0;
    $is.$pos0 = var$2;
    var$13 = Long_fromInt(var$3 - var$2 | 0);
    if (Long_lt(Long_fromInt(8), var$13))
        var$13 = Long_fromInt(8);
    $compressionType = var$2 + Long_lo(var$13) | 0;
    $is.$pos0 = $compressionType;
    if ($compressionType >= var$3)
        var$2 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = $compressionType + 1 | 0;
        var$2 = var$5[$compressionType] & 255;
    }
    var$2 = var$2 << 24;
    var$7 = $is.$pos0;
    if (var$7 >= var$3)
        var$7 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$7 + 1 | 0;
        var$7 = var$5[var$7] & 255;
    }
    $compressionType = var$2 | var$7 << 16;
    var$7 = $is.$pos0;
    if (var$7 >= var$3)
        var$7 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$7 + 1 | 0;
        var$7 = var$5[var$7] & 255;
    }
    $compressionType = $compressionType | var$7 << 8;
    var$7 = $is.$pos0;
    if (var$7 >= var$3)
        var$2 = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$7 + 1 | 0;
        var$2 = var$5[var$7] & 255;
    }
    $this.$numFiles = $compressionType | var$2;
    var$2 = $is.$pos0;
    if (var$2 >= var$3)
        $compressionType = (-1);
    else {
        var$5 = $is.$buf0.data;
        $is.$pos0 = var$2 + 1 | 0;
        $compressionType = var$5[var$2] & 255;
    }
    a: {
        $compressionType = $compressionType & 65535;
        switch ($compressionType) {
            case 48:
                break;
            case 71:
                var$10 = new cjj_GZIPInputStream;
                $vers = new cjj_Inflater;
                var$14 = new cjj_Adler32;
                var$14.$s1 = Long_fromInt(1);
                var$14.$s2 = Long_ZERO;
                $vers.$adler = var$14;
                $vers.$finished0 = 0;
                $vers.$finished0 = 0;
                var$14 = new cjj_Inflate;
                var$14.$was = Long_fromInt(-1);
                var$14.$need_bytes = (-1);
                var$14.$crcbuf = $rt_createByteArray(4);
                var$14.$gheader = null;
                var$14.$tmp_string = null;
                var$14.$z0 = $vers;
                $vers.$istate = var$14;
                var$7 = cjj_Inflate_inflateInit(var$14, 31);
                if (!var$7) {
                    cjj_InflaterInputStream__init_(var$10, $is, $vers, 512, 1);
                    var$10.$myinflater = 1;
                    $this.$zis = var$10;
                    break a;
                }
                var$10 = new cjj_GZIPException;
                $is = new jl_StringBuilder;
                $is.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert0($is, $is.$length0, var$7, 10);
                jl_AbstractStringBuilder_insert($is, $is.$length0, $rt_s(102));
                $vers = $vers.$msg;
                jl_AbstractStringBuilder_insert($is, $is.$length0, $vers);
                $vers = new jl_String;
                var$5 = $is.$buffer;
                var$6 = var$5.data;
                var$2 = $is.$length0;
                var$7 = var$6.length;
                if (var$2 >= 0 && var$2 <= (var$7 - 0 | 0)) {
                    $vers.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
                    var$10.$suppressionEnabled = 1;
                    var$10.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$10);
                    var$10.$message = $vers;
                    $rt_throw(var$10);
                }
                var$10 = new jl_IndexOutOfBoundsException;
                var$10.$suppressionEnabled = 1;
                var$10.$writableStackTrace = 1;
                $rt_throw(var$10);
            case 90:
                var$10 = new cjj_InflaterInputStream;
                $vers = new cjj_Inflater;
                var$14 = new cjj_Adler32;
                var$14.$s1 = Long_fromInt(1);
                var$14.$s2 = Long_ZERO;
                $vers.$adler = var$14;
                $vers.$finished0 = 0;
                $vers.$finished0 = 0;
                var$14 = new cjj_Inflate;
                var$14.$was = Long_fromInt(-1);
                var$14.$need_bytes = (-1);
                var$14.$crcbuf = $rt_createByteArray(4);
                var$14.$gheader = null;
                var$14.$tmp_string = null;
                var$14.$z0 = $vers;
                $vers.$istate = var$14;
                $compressionType = cjj_Inflate_inflateInit(var$14, 15);
                if ($compressionType) {
                    var$10 = new cjj_GZIPException;
                    $is = new jl_StringBuilder;
                    $is.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert0($is, $is.$length0, $compressionType, 10);
                    jl_AbstractStringBuilder_insert($is, $is.$length0, $rt_s(102));
                    $vers = $vers.$msg;
                    jl_AbstractStringBuilder_insert($is, $is.$length0, $vers);
                    $vers = new jl_String;
                    var$5 = $is.$buffer;
                    var$6 = var$5.data;
                    var$2 = $is.$length0;
                    var$7 = var$6.length;
                    if (var$2 >= 0 && var$2 <= (var$7 - 0 | 0)) {
                        $vers.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
                        var$10.$suppressionEnabled = 1;
                        var$10.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$10);
                        var$10.$message = $vers;
                        $rt_throw(var$10);
                    }
                    var$10 = new jl_IndexOutOfBoundsException;
                    var$10.$suppressionEnabled = 1;
                    var$10.$writableStackTrace = 1;
                    $rt_throw(var$10);
                }
                cjj_InflaterInputStream__init_(var$10, $is, $vers, 512, 1);
                var$10.$myinflater = 1;
                $this.$zis = var$10;
                break a;
            default:
                var$10 = new ji_IOException;
                $is = new jl_StringBuilder;
                $is.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($is, $is.$length0, $rt_s(321));
                var$2 = $is.$length0;
                jl_AbstractStringBuilder_insertSpace($is, var$2, var$2 + 1 | 0);
                var$5 = $is.$buffer;
                var$6 = var$5.data;
                var$6[var$2] = $compressionType;
                $vers = new jl_String;
                var$2 = $is.$length0;
                var$7 = var$6.length;
                if (var$2 >= 0 && var$2 <= (var$7 - 0 | 0)) {
                    $vers.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
                    var$10.$suppressionEnabled = 1;
                    var$10.$writableStackTrace = 1;
                    var$10.$message = $vers;
                    $rt_throw(var$10);
                }
                var$10 = new jl_IndexOutOfBoundsException;
                var$10.$suppressionEnabled = 1;
                var$10.$writableStackTrace = 1;
                $rt_throw(var$10);
        }
        $this.$zis = $is;
    }
    var$10 = new cjj_CRC32;
    var$10.$v = 0;
    $this.$crc32 = var$10;
},
nles_EPKDecompiler_readFileNew = $this => {
    let $typeBytes, $data, var$3, var$4, var$5, $type, var$7, var$8, $name, $loadedCrc, $len;
    if ($this.$isFinished)
        return null;
    $typeBytes = $rt_createByteArray(4);
    $data = $typeBytes.data;
    $this.$zis.$read2($typeBytes);
    var$3 = $data.length;
    $typeBytes = $rt_createCharArray(var$3);
    var$4 = $typeBytes.data;
    var$5 = 0;
    while (var$5 < var$3) {
        var$4[var$5] = $data[var$5] & 255 & 65535;
        var$5 = var$5 + 1 | 0;
    }
    $type = new jl_String;
    $type.$nativeString = $rt_charArrayToString($typeBytes.data, 0, var$4.length);
    if (!$this.$numFiles) {
        if ($rt_s(322) === $type)
            var$3 = 1;
        else if (!($type instanceof jl_String))
            var$3 = 0;
        else {
            var$7 = $type;
            var$3 = $rt_s(322).$nativeString !== var$7.$nativeString ? 0 : 1;
        }
        if (var$3) {
            $this.$isFinished = 1;
            return null;
        }
        var$8 = new ji_IOException;
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        var$8.$message = $rt_s(323);
        $rt_throw(var$8);
    }
    if ($rt_s(322) === $type)
        var$3 = 1;
    else if (!($type instanceof jl_String))
        var$3 = 0;
    else {
        var$7 = $type;
        var$3 = $rt_s(322).$nativeString !== var$7.$nativeString ? 0 : 1;
    }
    if (var$3) {
        var$8 = new ji_IOException;
        var$3 = $this.$numFiles;
        var$7 = new jl_StringBuilder;
        var$7.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(324));
        jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$3, 10);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(325));
        $name = new jl_String;
        $typeBytes = var$7.$buffer;
        $data = $typeBytes.data;
        var$5 = var$7.$length0;
        $loadedCrc = $data.length;
        if (var$5 >= 0 && var$5 <= ($loadedCrc - 0 | 0)) {
            $name.$nativeString = $rt_charArrayToString($typeBytes.data, 0, var$5);
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            var$8.$message = $name;
            $rt_throw(var$8);
        }
        var$8 = new jl_IndexOutOfBoundsException;
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        $rt_throw(var$8);
    }
    var$8 = $this.$zis;
    var$5 = var$8.$read();
    $typeBytes = $rt_createCharArray(var$5);
    $data = $typeBytes.data;
    $loadedCrc = 0;
    while ($loadedCrc < var$5) {
        $data[$loadedCrc] = var$8.$read() & 255 & 65535;
        $loadedCrc = $loadedCrc + 1 | 0;
    }
    $name = new jl_String;
    $name.$nativeString = $rt_charArrayToString($typeBytes.data, 0, $data.length);
    var$8 = $this.$zis;
    $len = var$8.$read() << 24 | var$8.$read() << 16 | var$8.$read() << 8 | var$8.$read();
    if ($rt_s(175) === $type)
        var$3 = 1;
    else if (!($type instanceof jl_String))
        var$3 = 0;
    else {
        var$7 = $type;
        var$3 = $rt_s(175).$nativeString !== var$7.$nativeString ? 0 : 1;
    }
    if (!var$3) {
        $data = $rt_createByteArray($len);
        $this.$zis.$read2($data);
    } else {
        if ($len < 5) {
            var$8 = new ji_IOException;
            var$7 = new jl_StringBuilder;
            var$7.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(326));
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $name);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(327));
            $name = new jl_String;
            $typeBytes = var$7.$buffer;
            $data = $typeBytes.data;
            var$5 = var$7.$length0;
            $loadedCrc = $data.length;
            if (var$5 >= 0 && var$5 <= ($loadedCrc - 0 | 0)) {
                $name.$nativeString = $rt_charArrayToString($typeBytes.data, 0, var$5);
                var$8.$suppressionEnabled = 1;
                var$8.$writableStackTrace = 1;
                var$8.$message = $name;
                $rt_throw(var$8);
            }
            var$8 = new jl_IndexOutOfBoundsException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
        var$8 = $this.$zis;
        $loadedCrc = var$8.$read() << 24 | var$8.$read() << 16 | var$8.$read() << 8 | var$8.$read();
        $data = $rt_createByteArray($len - 5 | 0);
        $typeBytes = $data.data;
        $this.$zis.$read2($data);
        var$8 = $this.$crc32;
        var$8.$v = 0;
        cjj_CRC32_update(var$8, $data, 0, $typeBytes.length);
        if (Long_lo(Long_and(Long_fromInt($this.$crc32.$v), Long_create(4294967295, 0))) != $loadedCrc) {
            var$8 = new ji_IOException;
            var$7 = new jl_StringBuilder;
            var$7.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(326));
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $name);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(328));
            $name = new jl_String;
            $typeBytes = var$7.$buffer;
            $data = $typeBytes.data;
            var$5 = var$7.$length0;
            $loadedCrc = $data.length;
            if (var$5 >= 0 && var$5 <= ($loadedCrc - 0 | 0)) {
                $name.$nativeString = $rt_charArrayToString($typeBytes.data, 0, var$5);
                var$8.$suppressionEnabled = 1;
                var$8.$writableStackTrace = 1;
                var$8.$message = $name;
                $rt_throw(var$8);
            }
            var$8 = new jl_IndexOutOfBoundsException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
        if ($this.$zis.$read() != 58) {
            var$8 = new ji_IOException;
            var$7 = new jl_StringBuilder;
            var$7.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(326));
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $name);
            jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(329));
            $name = new jl_String;
            $typeBytes = var$7.$buffer;
            $data = $typeBytes.data;
            var$5 = var$7.$length0;
            $loadedCrc = $data.length;
            if (var$5 >= 0 && var$5 <= ($loadedCrc - 0 | 0)) {
                $name.$nativeString = $rt_charArrayToString($typeBytes.data, 0, var$5);
                var$8.$suppressionEnabled = 1;
                var$8.$writableStackTrace = 1;
                var$8.$message = $name;
                $rt_throw(var$8);
            }
            var$8 = new jl_IndexOutOfBoundsException;
            var$8.$suppressionEnabled = 1;
            var$8.$writableStackTrace = 1;
            $rt_throw(var$8);
        }
    }
    if ($this.$zis.$read() == 62) {
        $this.$numFiles = $this.$numFiles - 1 | 0;
        var$8 = new nles_EPKDecompiler$FileEntry;
        var$8.$type3 = $type;
        var$8.$name7 = $name;
        var$8.$data11 = $data;
        return var$8;
    }
    var$8 = new ji_IOException;
    var$7 = new jl_StringBuilder;
    var$7.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(330));
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $name);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(329));
    $name = new jl_String;
    $typeBytes = var$7.$buffer;
    $data = $typeBytes.data;
    var$5 = var$7.$length0;
    $loadedCrc = $data.length;
    if (var$5 >= 0 && var$5 <= ($loadedCrc - 0 | 0)) {
        $name.$nativeString = $rt_charArrayToString($typeBytes.data, 0, var$5);
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        var$8.$message = $name;
        $rt_throw(var$8);
    }
    var$8 = new jl_IndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
nles_EPKDecompiler_readFileOld = $this => {
    let var$1, var$2, $digest, $digest2, var$5, var$6, $file, $len, var$9, var$10;
    if ($this.$isFinished)
        return null;
    var$1 = $this.$in1;
    var$2 = ji_DataInputStream_readUnsignedShort(var$1);
    $digest = $rt_createByteArray(var$2);
    $digest2 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully(var$1, $digest, 0, var$2);
    var$5 = ji_DataInputStream_convertUTF8WithBuf($digest, $digest2, 0, var$2);
    if (var$5 === $rt_s(331))
        var$2 = 1;
    else if (!($rt_s(331) instanceof jl_String))
        var$2 = 0;
    else {
        var$1 = $rt_s(331);
        var$2 = var$5.$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (var$2) {
        $this.$isFinished = 1;
        return null;
    }
    if (var$5 === $rt_s(332))
        var$2 = 1;
    else if (!($rt_s(332) instanceof jl_String))
        var$2 = 0;
    else {
        var$1 = $rt_s(332);
        var$2 = var$5.$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (!var$2) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(333);
        $rt_throw(var$1);
    }
    var$1 = $this.$in1;
    var$2 = ji_DataInputStream_readUnsignedShort(var$1);
    $digest = $rt_createByteArray(var$2);
    $digest2 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully(var$1, $digest, 0, var$2);
    var$6 = ji_DataInputStream_convertUTF8WithBuf($digest, $digest2, 0, var$2);
    $digest = $rt_createByteArray(20);
    $file = $digest.data;
    $digest2 = $rt_createByteArray(20);
    $this.$in1.$in.$read1($digest, 0, $file.length);
    $len = ji_DataInputStream_readInt($this.$in1);
    $file = $rt_createByteArray($len);
    var$9 = $file.data;
    $this.$in1.$in.$read1($file, 0, var$9.length);
    nles_GeneralDigest_update0($this.$dg, $file, 0, $len);
    nles_SHA1Digest_doFinal($this.$dg, $digest2, 0);
    if (ju_Arrays_equals0($digest, $digest2)) {
        var$5 = $this.$in1;
        var$2 = ji_DataInputStream_readUnsignedShort(var$5);
        $digest = $rt_createByteArray(var$2);
        $digest2 = $rt_createCharArray(var$2);
        ji_DataInputStream_readFully(var$5, $digest, 0, var$2);
        var$5 = ji_DataInputStream_convertUTF8WithBuf($digest, $digest2, 0, var$2);
        if ($rt_s(334) === var$5)
            var$2 = 1;
        else if (!(var$5 instanceof jl_String))
            var$2 = 0;
        else {
            var$5 = var$5;
            var$2 = $rt_s(334).$nativeString !== var$5.$nativeString ? 0 : 1;
        }
        if (var$2) {
            var$1 = new nles_EPKDecompiler$FileEntry;
            var$1.$type3 = $rt_s(175);
            var$1.$name7 = var$6;
            var$1.$data11 = $file;
            return var$1;
        }
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(333);
        $rt_throw(var$1);
    }
    var$1 = new ji_IOException;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(335));
    var$2 = var$5.$length0;
    if (var$6 === null)
        var$6 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$5, var$2, var$6);
    var$6 = new jl_String;
    $digest = var$5.$buffer;
    $digest2 = $digest.data;
    $len = var$5.$length0;
    var$10 = $digest2.length;
    if ($len >= 0 && $len <= (var$10 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString($digest.data, 0, $len);
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = var$6;
        $rt_throw(var$1);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
};
function nles_EPKDecompiler$FileEntry() {
    let a = this; jl_Object.call(a);
    a.$type3 = null;
    a.$name7 = null;
    a.$data11 = null;
}
function juz_InflaterInputStream() {
    let a = this; ji_FilterInputStream.call(a);
    a.$inf = null;
    a.$buf2 = null;
    a.$len = 0;
    a.$closed = 0;
    a.$eof = 0;
}
let juz_InflaterInputStream__init_ = ($this, $is) => {
    let var$2, $$je;
    var$2 = new juz_Inflater;
    var$2.$nowrap = 0;
    a: {
        try {
            var$2.$impl = cjj_Inflater__init_(0);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof cjj_GZIPException) {
            } else {
                throw $$e;
            }
        }
    }
    $this.$in = $is;
    if ($is !== null) {
        $this.$inf = var$2;
        $this.$buf2 = $rt_createByteArray(512);
        return;
    }
    $is = new jl_NullPointerException;
    $is.$suppressionEnabled = 1;
    $is.$writableStackTrace = 1;
    $rt_throw($is);
},
juz_InflaterInputStream__init_0 = var_0 => {
    let var_1 = new juz_InflaterInputStream();
    juz_InflaterInputStream__init_(var_1, var_0);
    return var_1;
},
juz_InflaterInputStream_read0 = $this => {
    let $b;
    $b = $rt_createByteArray(1);
    if ($this.$read1($b, 0, 1) == (-1))
        return (-1);
    return $b.data[0] & 255;
},
juz_InflaterInputStream_read = ($this, $buffer, $off, $nbytes) => {
    let $e, var$5, $result, var$7, var$8, $$je;
    if ($this.$closed) {
        $e = new ji_IOException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $e.$message = $rt_s(310);
        $rt_throw($e);
    }
    if (null === $buffer) {
        $e = new jl_NullPointerException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $rt_throw($e);
    }
    if ($off >= 0 && $nbytes >= 0) {
        var$5 = $buffer.data;
        $result = $off + $nbytes | 0;
        var$7 = var$5.length;
        if ($result <= var$7) {
            if (!$nbytes)
                return 0;
            if ($this.$eof)
                return (-1);
            if ($off <= var$7 && (var$7 - $off | 0) >= $nbytes) {
                a: {
                    b: {
                        c: {
                            d: {
                                e: {
                                    while (true) {
                                        $e = $this.$inf;
                                        if ($e.$inRead != $e.$inLength ? 0 : 1) {
                                            if ($this.$closed)
                                                break;
                                            $result = $this.$in.$read2($this.$buf2);
                                            $this.$len = $result;
                                            if ($result > 0)
                                                juz_Inflater_setInput($this.$inf, $this.$buf2, 0, $result);
                                        }
                                        try {
                                            $result = juz_Inflater_inflate($this.$inf, $buffer, $off, $nbytes);
                                            var$7 = juz_Inflater_finished($this.$inf);
                                            $this.$eof = var$7;
                                            if ($result > 0)
                                                break e;
                                            if (var$7)
                                                break d;
                                            if (juz_Inflater_needsDictionary($this.$inf))
                                                break b;
                                            if ($this.$len == (-1))
                                                break c;
                                            continue;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof juz_DataFormatException) {
                                                $e = $$je;
                                                break a;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    $e = new ji_IOException;
                                    $e.$suppressionEnabled = 1;
                                    $e.$writableStackTrace = 1;
                                    $rt_throw($e);
                                }
                                return $result;
                            }
                            try {
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof juz_DataFormatException) {
                                    $e = $$je;
                                    break a;
                                } else {
                                    throw $$e;
                                }
                            }
                            return (-1);
                        }
                        try {
                            $this.$eof = 1;
                            $rt_throw(ji_EOFException__init_0());
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof juz_DataFormatException) {
                                $e = $$je;
                                break a;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        $this.$eof = 1;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof juz_DataFormatException) {
                            $e = $$je;
                            break a;
                        } else {
                            throw $$e;
                        }
                    }
                    return (-1);
                }
                $this.$eof = 1;
                if ($this.$len != (-1)) {
                    var$8 = new ji_IOException;
                    var$8.$suppressionEnabled = 1;
                    var$8.$writableStackTrace = 1;
                    var$8.$cause = $e;
                    $rt_throw(var$8);
                }
                $e = new ji_EOFException;
                $e.$suppressionEnabled = 1;
                $e.$writableStackTrace = 1;
                $rt_throw($e);
            }
            $e = new jl_ArrayIndexOutOfBoundsException;
            $e.$suppressionEnabled = 1;
            $e.$writableStackTrace = 1;
            $rt_throw($e);
        }
    }
    $e = new jl_IndexOutOfBoundsException;
    $e.$suppressionEnabled = 1;
    $e.$writableStackTrace = 1;
    $rt_throw($e);
},
juz_InflaterInputStream_fill = $this => {
    let var$1, var$2;
    if ($this.$closed) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$2 = $this.$in.$read2($this.$buf2);
    $this.$len = var$2;
    if (var$2 > 0)
        juz_Inflater_setInput($this.$inf, $this.$buf2, 0, var$2);
},
juz_InflaterInputStream_available = $this => {
    let var$1;
    if (!$this.$closed) {
        if (!$this.$eof)
            return 1;
        return 0;
    }
    var$1 = new ji_IOException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    var$1.$message = $rt_s(310);
    $rt_throw(var$1);
},
juz_InflaterInputStream_close = $this => {
    let var$1;
    if (!$this.$closed) {
        var$1 = $this.$inf;
        var$1.$inRead = 0;
        var$1.$inLength = 0;
        var$1.$impl = null;
        $this.$closed = 1;
        $this.$eof = 1;
        $this.$in.$close();
    }
},
juz_ZipConstants = $rt_classWithoutFields(0);
function juz_ZipInputStream() {
    let a = this; juz_InflaterInputStream.call(a);
    a.$entriesEnd = 0;
    a.$hasDD = 0;
    a.$entryIn = 0;
    a.$inRead1 = 0;
    a.$lastRead = 0;
    a.$currentEntry1 = null;
    a.$hdrBuf = null;
    a.$crc2 = null;
    a.$nameBuf = null;
    a.$charBuf = null;
}
let juz_ZipInputStream__init_ = ($this, $stream) => {
    let var$2, var$3, $$je;
    var$2 = new ji_PushbackInputStream;
    var$2.$in = $stream;
    var$2.$buf4 = $stream !== null ? $rt_createByteArray(512) : null;
    var$2.$pos2 = 512;
    var$3 = new juz_Inflater;
    var$3.$nowrap = 1;
    a: {
        try {
            var$3.$impl = cjj_Inflater__init_(1);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof cjj_GZIPException) {
            } else {
                throw $$e;
            }
        }
    }
    $this.$in = var$2;
    $this.$inf = var$3;
    $this.$buf2 = $rt_createByteArray(512);
    $this.$hdrBuf = $rt_createByteArray(26);
    var$2 = new juz_CRC32;
    var$3 = new cjj_CRC32;
    var$3.$v = 0;
    var$2.$impl0 = var$3;
    $this.$crc2 = var$2;
    $this.$nameBuf = $rt_createByteArray(256);
    $this.$charBuf = $rt_createCharArray(256);
    if ($stream !== null)
        return;
    $stream = new jl_NullPointerException;
    $stream.$suppressionEnabled = 1;
    $stream.$writableStackTrace = 1;
    $rt_throw($stream);
},
juz_ZipInputStream__init_0 = var_0 => {
    let var_1 = new juz_ZipInputStream();
    juz_ZipInputStream__init_(var_1, var_0);
    return var_1;
},
juz_ZipInputStream_close = $this => {
    let var$1;
    if (!$this.$closed) {
        juz_ZipInputStream_closeEntry($this);
        if (!$this.$closed) {
            var$1 = $this.$inf;
            var$1.$inRead = 0;
            var$1.$inLength = 0;
            var$1.$impl = null;
            $this.$closed = 1;
            $this.$eof = 1;
            $this.$in.$close();
        }
    }
},
juz_ZipInputStream_closeEntry = $this => {
    let $e, $out, $inB, $e_0, $diff, var$6, $$je;
    if ($this.$closed) {
        $e = new ji_IOException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $rt_throw($e);
    }
    if ($this.$currentEntry1 === null)
        return;
    $e = null;
    a: {
        try {
            juz_ZipInputStream_skip($this, Long_create(4294967295, 2147483647));
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $e = $$je;
            } else {
                throw $$e;
            }
        }
    }
    if ($this.$currentEntry1.$compressionMethod != 8) {
        $out = $this.$inRead1;
        $inB = $out;
    } else {
        $e_0 = $this.$inf.$impl;
        if ($e_0 === null) {
            $e = new jl_IllegalStateException;
            $e.$suppressionEnabled = 1;
            $e.$writableStackTrace = 1;
            $rt_throw($e);
        }
        $inB = Long_lo($e_0.$total_in);
        $out = Long_lo($e_0.$total_out);
    }
    $diff = $this.$entryIn - $inB | 0;
    if ($diff)
        ji_PushbackInputStream_unread($this.$in, $this.$buf2, $this.$len - $diff | 0, $diff);
    b: {
        try {
            juz_ZipInputStream_readAndVerifyDataDescriptor($this, $inB, $out);
            $e_0 = $e;
            break b;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $e_0 = $$je;
            } else {
                throw $$e;
            }
        }
        if ($e !== null)
            $e_0 = $e;
    }
    $e = $this.$inf;
    var$6 = $e.$impl;
    if (var$6 === null) {
        $e = new jl_NullPointerException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $rt_throw($e);
    }
    $e.$finished2 = 0;
    $e.$needsDictionary0 = 0;
    $e.$inLength = 0;
    $e.$inRead = 0;
    $out = $e.$nowrap;
    $inB = 15;
    var$6.$finished0 = 0;
    $e = new cjj_Inflate;
    $e.$was = Long_fromInt(-1);
    $e.$need_bytes = (-1);
    $e.$crcbuf = $rt_createByteArray(4);
    $e.$gheader = null;
    $e.$tmp_string = null;
    $e.$z0 = var$6;
    var$6.$istate = $e;
    if ($out)
        $inB = (-15);
    cjj_Inflate_inflateInit($e, $inB);
    $this.$lastRead = 0;
    $this.$inRead1 = 0;
    $this.$entryIn = 0;
    $this.$len = 0;
    $e = $this.$crc2;
    $e.$impl0.$v = 0;
    $e.$tbytes = Long_ZERO;
    $this.$currentEntry1 = null;
    if ($e_0 === null)
        return;
    if ($e_0 instanceof ji_IOException)
        $rt_throw($e_0);
    if ($e_0 instanceof jl_RuntimeException)
        $rt_throw($e_0);
    $e = new jl_AssertionError;
    $e_0 = $e_0.$toString();
    $e.$suppressionEnabled = 1;
    $e.$writableStackTrace = 1;
    $e.$message = $e_0;
    $rt_throw($e);
},
juz_ZipInputStream_readAndVerifyDataDescriptor = ($this, $inB, $out) => {
    let var$3;
    if ($this.$hasDD) {
        $this.$in.$read1($this.$hdrBuf, 0, 16);
        if (Long_ne(juz_ZipInputStream_getLong($this, $this.$hdrBuf, 0), Long_fromInt(134695760))) {
            var$3 = new juz_ZipException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            $rt_throw(var$3);
        }
        $this.$currentEntry1.$crc0 = juz_ZipInputStream_getLong($this, $this.$hdrBuf, 4);
        $this.$currentEntry1.$compressedSize = juz_ZipInputStream_getLong($this, $this.$hdrBuf, 8);
        $this.$currentEntry1.$size5 = juz_ZipInputStream_getLong($this, $this.$hdrBuf, 12);
    }
    var$3 = $this.$currentEntry1;
    if (Long_ne(var$3.$crc0, Long_and(Long_fromInt($this.$crc2.$impl0.$v), Long_create(4294967295, 0)))) {
        var$3 = new juz_ZipException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    if (Long_eq(var$3.$compressedSize, Long_fromInt($inB)) && Long_eq(var$3.$size5, Long_fromInt($out)))
        return;
    var$3 = new juz_ZipException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
juz_ZipInputStream_getNextEntry = $this => {
    let $count, $hdr, $version, $e, var$5, var$6, $cetime, $cemodDate, $cecompressionMethod, $cecrc, $cecompressedSize, $cesize, $flen, $elen, var$15, var$16, var$17, var$18, $flags, var$20, $$je;
    juz_ZipInputStream_closeEntry($this);
    if ($this.$entriesEnd)
        return null;
    $count = 0;
    while (true) {
        if ($count == 4) {
            $hdr = juz_ZipInputStream_getLong($this, $this.$hdrBuf, 0);
            if (Long_eq($hdr, Long_fromInt(33639248))) {
                $this.$entriesEnd = 1;
                return null;
            }
            if (Long_ne($hdr, Long_fromInt(67324752)))
                return null;
            $version = 0;
            while (true) {
                if ($version == 26) {
                    $e = $this.$hdrBuf;
                    var$5 = $e.data;
                    if (((var$5[0] & 255 | (var$5[1] & 255) << 8) & 255) > 20) {
                        var$6 = new juz_ZipException;
                        var$6.$suppressionEnabled = 1;
                        var$6.$writableStackTrace = 1;
                        $rt_throw(var$6);
                    }
                    $version = ((var$5[2] & 255 | (var$5[3] & 255) << 8) & 8) != 8 ? 0 : 1;
                    $this.$hasDD = $version;
                    $cetime = var$5[6] & 255 | (var$5[7] & 255) << 8;
                    $cemodDate = var$5[8] & 255 | (var$5[9] & 255) << 8;
                    $cecompressionMethod = var$5[4] & 255 | (var$5[5] & 255) << 8;
                    $cecrc = Long_ZERO;
                    $cecompressedSize = Long_ZERO;
                    $cesize = Long_fromInt(-1);
                    if (!$version) {
                        $cecrc = juz_ZipInputStream_getLong($this, $e, 10);
                        $cecompressedSize = juz_ZipInputStream_getLong($this, $this.$hdrBuf, 14);
                        $cesize = juz_ZipInputStream_getLong($this, $this.$hdrBuf, 18);
                    }
                    $e = $this.$hdrBuf.data;
                    $flen = $e[22] & 255 | ($e[23] & 255) << 8;
                    if (!$flen) {
                        var$6 = new juz_ZipException;
                        var$6.$suppressionEnabled = 1;
                        var$6.$writableStackTrace = 1;
                        $rt_throw(var$6);
                    }
                    $elen = $e[24] & 255 | ($e[25] & 255) << 8;
                    $version = 0;
                    if ($flen > $this.$nameBuf.data.length) {
                        $this.$nameBuf = $rt_createByteArray($flen);
                        $this.$charBuf = $rt_createCharArray($flen);
                    }
                    while (true) {
                        if ($version == $flen) {
                            var$15 = new jl_String;
                            $e = $this.$nameBuf;
                            jnc_Charset_checkCanonicalName($rt_s(68));
                            jnc_Charset$Charsets_$callClinit();
                            var$16 = jnc_Charset$Charsets_value;
                            var$17 = $rt_s(68).$nativeString.toUpperCase();
                            var$18 = var$17 === $rt_s(68).$nativeString ? $rt_s(68) : jl_String__init_0(var$17);
                            a: {
                                if (!var$18.$hashCode1) {
                                    $count = 0;
                                    while (true) {
                                        if ($count >= var$18.$nativeString.length)
                                            break a;
                                        var$18.$hashCode1 = (31 * var$18.$hashCode1 | 0) + var$18.$nativeString.charCodeAt($count) | 0;
                                        $count = $count + 1 | 0;
                                    }
                                }
                            }
                            $flags = var$18.$hashCode1;
                            var$5 = var$16.$elementData.data;
                            var$20 = var$5[$flags & (var$5.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $flags) {
                                    b: {
                                        var$16 = var$20.$key;
                                        if (var$18 !== var$16) {
                                            if (var$18 === var$16)
                                                $count = 1;
                                            else if (!(var$16 instanceof jl_String))
                                                $count = 0;
                                            else {
                                                var$16 = var$16;
                                                $count = var$18.$nativeString !== var$16.$nativeString ? 0 : 1;
                                            }
                                            if (!$count) {
                                                $count = 0;
                                                break b;
                                            }
                                        }
                                        $count = 1;
                                    }
                                    if ($count)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                            var$16 = var$20 === null ? null : var$20.$value0;
                            if (var$16 === null) {
                                var$16 = new jnc_UnsupportedCharsetException;
                                var$16.$suppressionEnabled = 1;
                                var$16.$writableStackTrace = 1;
                                var$16.$charsetName = $rt_s(68);
                                $rt_throw(var$16);
                            }
                            $flags = $e.data.length;
                            if ($flen >= 0 && $flen <= ($flags - 0 | 0)) {
                                var$17 = new jn_ByteBufferImpl;
                                $flen = 0 + $flen | 0;
                                var$17.$mark0 = (-1);
                                var$17.$capacity = $flags;
                                var$17.$limit = $flags;
                                var$17.$order = jn_ByteOrder_BIG_ENDIAN;
                                var$17.$start2 = 0;
                                var$17.$array2 = $e;
                                var$17.$position1 = 0;
                                var$17.$limit = $flen;
                                var$17.$direct = 0;
                                var$17.$readOnly0 = 0;
                                c: {
                                    try {
                                        var$6 = jnc_CharsetDecoder_decode(jnc_CharsetDecoder_onUnmappableCharacter(jnc_CharsetDecoder_onMalformedInput(var$16.$newDecoder(), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), var$17);
                                        break c;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jnc_CharacterCodingException) {
                                            var$16 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    var$17 = new jl_AssertionError;
                                    var$17.$suppressionEnabled = 1;
                                    var$17.$writableStackTrace = 1;
                                    var$17.$message = $rt_s(103);
                                    var$17.$cause = var$16;
                                    $rt_throw(var$17);
                                }
                                $flen = var$6.$position1;
                                if (!$flen && var$6.$limit == var$6.$capacity)
                                    $e = var$6.$array0;
                                else {
                                    $e = $rt_createCharArray(var$6.$limit - $flen | 0);
                                    jn_CharBuffer_get(var$6, $e, 0, $e.data.length);
                                }
                                var$15.$nativeString = $rt_fullArrayToString($e.data);
                                var$6 = juz_ZipEntry__init_0(var$15);
                                $this.$currentEntry1 = var$6;
                                var$6.$time1 = $cetime;
                                var$6.$modDate = $cemodDate;
                                if ($cecompressionMethod && $cecompressionMethod != 8) {
                                    var$6 = new jl_IllegalArgumentException;
                                    var$6.$suppressionEnabled = 1;
                                    var$6.$writableStackTrace = 1;
                                    $rt_throw(var$6);
                                }
                                d: {
                                    var$6.$compressionMethod = $cecompressionMethod;
                                    if (Long_ne($cesize, Long_fromInt(-1))) {
                                        if (Long_ge($cecrc, Long_ZERO) && Long_le($cecrc, Long_create(4294967295, 0))) {
                                            var$6.$crc0 = $cecrc;
                                            if (Long_ge($cesize, Long_ZERO) && Long_le($cesize, Long_create(4294967295, 0))) {
                                                var$6.$size5 = $cesize;
                                                var$6.$compressedSize = $cecompressedSize;
                                                break d;
                                            }
                                            var$6 = new jl_IllegalArgumentException;
                                            var$6.$suppressionEnabled = 1;
                                            var$6.$writableStackTrace = 1;
                                            $rt_throw(var$6);
                                        }
                                        var$6 = new jl_IllegalArgumentException;
                                        var$6.$suppressionEnabled = 1;
                                        var$6.$writableStackTrace = 1;
                                        $rt_throw(var$6);
                                    }
                                }
                                e: {
                                    if ($elen > 0) {
                                        $version = 0;
                                        $e = $rt_createByteArray($elen);
                                        while (true) {
                                            if ($version == $elen) {
                                                var$5 = $e.data;
                                                var$6 = $this.$currentEntry1;
                                                if (var$5.length > 65535) {
                                                    var$6 = new jl_IllegalArgumentException;
                                                    var$6.$suppressionEnabled = 1;
                                                    var$6.$writableStackTrace = 1;
                                                    $rt_throw(var$6);
                                                }
                                                var$6.$extra0 = $e;
                                                break e;
                                            }
                                            $count = $this.$in.$read1($e, $version, $elen - $version | 0);
                                            $version = $version + $count | 0;
                                            if ($count == (-1))
                                                break;
                                        }
                                        var$6 = new ji_EOFException;
                                        var$6.$suppressionEnabled = 1;
                                        var$6.$writableStackTrace = 1;
                                        $rt_throw(var$6);
                                    }
                                }
                                return $this.$currentEntry1;
                            }
                            var$6 = new jl_IndexOutOfBoundsException;
                            var$6.$suppressionEnabled = 1;
                            var$6.$writableStackTrace = 1;
                            $rt_throw(var$6);
                        }
                        $count = $this.$in.$read1($this.$nameBuf, $version, $flen - $version | 0);
                        $version = $version + $count | 0;
                        if ($count == (-1))
                            break;
                    }
                    var$6 = new ji_EOFException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $count = $this.$in.$read1($this.$hdrBuf, $version, 26 - $version | 0);
                $version = $version + $count | 0;
                if ($count == (-1))
                    break;
            }
            var$6 = new ji_EOFException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        $version = $this.$in.$read1($this.$hdrBuf, $count, 4 - $count | 0);
        $count = $count + $version | 0;
        if ($version == (-1))
            break;
    }
    return null;
},
juz_ZipInputStream_read = ($this, $buffer, $start, $toRead) => {
    let var$4, $e, var$6, $read, $csize, $toRead_0, $$je;
    var$4 = $this.$closed;
    if (var$4) {
        $e = new ji_IOException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $rt_throw($e);
    }
    $e = $this.$inf;
    if (!$e.$finished2) {
        var$6 = $this.$currentEntry1;
        if (var$6 !== null) {
            $read = $buffer.data.length;
            if ($start <= $read && $toRead >= 0 && $start >= 0 && ($read - $start | 0) >= $toRead) {
                if (!var$6.$compressionMethod) {
                    $csize = Long_lo(var$6.$size5);
                    if ($this.$inRead1 >= $csize)
                        return (-1);
                    if ($this.$lastRead >= $this.$len) {
                        $this.$lastRead = 0;
                        $read = $this.$in.$read2($this.$buf2);
                        $this.$len = $read;
                        if ($read == (-1)) {
                            $this.$eof = 1;
                            return (-1);
                        }
                        $this.$entryIn = $this.$entryIn + $read | 0;
                    }
                    $read = $this.$len;
                    var$4 = $this.$lastRead;
                    $toRead_0 = $read - var$4 | 0;
                    if ($toRead > $toRead_0)
                        $toRead = $toRead_0;
                    $read = $csize - $this.$inRead1 | 0;
                    if ($read >= $toRead)
                        $read = $toRead;
                    jl_System_fastArraycopy($this.$buf2, var$4, $buffer, $start, $read);
                    $this.$lastRead = $this.$lastRead + $read | 0;
                    $this.$inRead1 = $this.$inRead1 + $read | 0;
                    juz_CRC32_update($this.$crc2, $buffer, $start, $read);
                    return $read;
                }
                if ($e.$inRead != $e.$inLength ? 0 : 1) {
                    if (var$4) {
                        $e = new ji_IOException;
                        $e.$suppressionEnabled = 1;
                        $e.$writableStackTrace = 1;
                        $rt_throw($e);
                    }
                    $read = $this.$in.$read2($this.$buf2);
                    $this.$len = $read;
                    if ($read > 0)
                        juz_Inflater_setInput($this.$inf, $this.$buf2, 0, $read);
                    $read = $this.$len;
                    if ($read > 0)
                        $this.$entryIn = $this.$entryIn + $read | 0;
                }
                a: {
                    try {
                        $read = juz_Inflater_inflate($this.$inf, $buffer, $start, $toRead);
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof juz_DataFormatException) {
                            $e = $$je;
                            break a;
                        } else {
                            throw $$e;
                        }
                    }
                    if (!$read && $this.$inf.$finished2)
                        return (-1);
                    juz_CRC32_update($this.$crc2, $buffer, $start, $read);
                    return $read;
                }
                var$6 = new juz_ZipException;
                $e = $e.$message;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                var$6.$message = $e;
                $rt_throw(var$6);
            }
            $e = new jl_ArrayIndexOutOfBoundsException;
            $e.$suppressionEnabled = 1;
            $e.$writableStackTrace = 1;
            $rt_throw($e);
        }
    }
    return (-1);
},
juz_ZipInputStream_skip = ($this, $value) => {
    let var$2, $skipped, $rem, $b, var$6, var$7, $x;
    if (Long_lt($value, Long_ZERO)) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $skipped = Long_ZERO;
    $rem = Long_fromInt(2048);
    if (Long_lt($value, $rem))
        $rem = $value;
    $b = $rt_createByteArray(Long_lo($rem));
    var$6 = $b.data;
    while (Long_ne($skipped, $value)) {
        $rem = Long_sub($value, $skipped);
        var$7 = Long_fromInt(var$6.length);
        if (Long_gt(var$7, $rem))
            var$7 = $rem;
        $x = juz_ZipInputStream_read($this, $b, 0, Long_lo(var$7));
        if ($x == (-1))
            return $skipped;
        $skipped = Long_add($skipped, Long_fromInt($x));
    }
    return $skipped;
},
juz_ZipInputStream_getLong = ($this, $buffer, $off) => {
    $buffer = $buffer.data;
    return Long_or(Long_or(Long_or(Long_or(Long_ZERO, Long_fromInt($buffer[$off] & 255)), Long_fromInt(($buffer[$off + 1 | 0] & 255) << 8)), Long_fromInt(($buffer[$off + 2 | 0] & 255) << 16)), Long_shl(Long_fromInt($buffer[$off + 3 | 0] & 255), 24));
},
juf_Predicate = $rt_classWithoutFields(0);
function nles_WorldConverterMCA$importWorld$lambda$_1_0() {
    let a = this; jl_Object.call(a);
    a.$_07 = null;
    a.$_11 = null;
}
function nms_RegionFile() {
    let a = this; jl_Object.call(a);
    a.$dataFile = null;
    a.$offsets = null;
    a.$chunkTimestamps = null;
    a.$sectorFree = null;
    a.$sizeDelta = 0;
}
let nms_RegionFile_emptySector = null,
nms_RegionFile__init_0 = ($this, $par1File) => {
    let $var2, $var3, $var4, $var5, $var6, $$je;
    $this.$offsets = $rt_createIntArray(1024);
    $this.$chunkTimestamps = $rt_createIntArray(1024);
    $this.$sizeDelta = 0;
    a: {
        try {
            $this.$dataFile = $par1File;
            if (Long_lt(Long_fromInt(nles_RandomAccessMemoryFile_getLength($par1File)), Long_fromInt(4096))) {
                $var2 = 0;
                while ($var2 < 1024) {
                    nles_RandomAccessMemoryFile_writeInt($this.$dataFile, 0);
                    $var2 = $var2 + 1 | 0;
                }
                $var2 = 0;
                while ($var2 < 1024) {
                    nles_RandomAccessMemoryFile_writeInt($this.$dataFile, 0);
                    $var2 = $var2 + 1 | 0;
                }
                $this.$sizeDelta = $this.$sizeDelta + 8192 | 0;
            }
            b: {
                if (Long_ne(Long_and(Long_fromInt(nles_RandomAccessMemoryFile_getLength($this.$dataFile)), Long_fromInt(4095)), Long_ZERO)) {
                    $var2 = 0;
                    while (true) {
                        if (Long_ge(Long_fromInt($var2), Long_and(Long_fromInt(nles_RandomAccessMemoryFile_getLength($this.$dataFile)), Long_fromInt(4095))))
                            break b;
                        nles_RandomAccessMemoryFile_write($this.$dataFile, 0);
                        $var2 = $var2 + 1 | 0;
                    }
                }
            }
            $var2 = nles_RandomAccessMemoryFile_getLength($this.$dataFile) / 4096 | 0;
            $this.$sectorFree = ju_ArrayList__init_3($var2);
            $var3 = 0;
            while ($var3 < $var2) {
                ju_ArrayList_add($this.$sectorFree, jl_Boolean_valueOf(1));
                $var3 = $var3 + 1 | 0;
            }
            ju_ArrayList_set($this.$sectorFree, 0, jl_Boolean_valueOf(0));
            ju_ArrayList_set($this.$sectorFree, 1, jl_Boolean_valueOf(0));
            nles_RandomAccessMemoryFile_seek($this.$dataFile, 0);
            $var2 = 0;
            while ($var2 < 1024) {
                c: {
                    $var4 = nles_RandomAccessMemoryFile_readInt($this.$dataFile);
                    $this.$offsets.data[$var2] = $var4;
                    if ($var4) {
                        $var3 = $var4 >> 8;
                        $var4 = $var4 & 255;
                        if (($var3 + $var4 | 0) <= ju_ArrayList_size($this.$sectorFree)) {
                            $var5 = 0;
                            while (true) {
                                if ($var5 >= $var4)
                                    break c;
                                ju_ArrayList_set($this.$sectorFree, $var3 + $var5 | 0, jl_Boolean_valueOf(0));
                                $var5 = $var5 + 1 | 0;
                            }
                        }
                    }
                }
                $var2 = $var2 + 1 | 0;
            }
            $var2 = 0;
            while ($var2 < 1024) {
                $this.$chunkTimestamps.data[$var2] = nles_RandomAccessMemoryFile_readInt($this.$dataFile);
                $var2 = $var2 + 1 | 0;
            }
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $var6 = $$je;
            } else {
                throw $$e;
            }
        }
        jl_Throwable_printStackTrace0($var6);
    }
},
nms_RegionFile__init_ = var_0 => {
    let var_1 = new nms_RegionFile();
    nms_RegionFile__init_0(var_1, var_0);
    return var_1;
},
nms_RegionFile_getChunkDataInputStream = ($this, $par1, $par2) => {
    let $var3, var$4, $var4, $var5, $var6, $var7, $var8, var$10, $$je;
    jl_Object_monitorEnterSync($this);
    try {
        if ($par1 >= 0 && $par1 < 32 && $par2 >= 0 && $par2 < 32 ? 0 : 1)
            return null;
        a: {
            b: {
                try {
                    $var3 = nms_RegionFile_getOffset($this, $par1, $par2);
                    if ($var3)
                        break b;
                    var$4 = null;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return var$4;
            }
            c: {
                try {
                    $var4 = $var3 >> 8;
                    $var5 = $var3 & 255;
                    if (($var4 + $var5 | 0) <= ju_ArrayList_size($this.$sectorFree))
                        break c;
                    var$4 = null;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return var$4;
            }
            d: {
                try {
                    nles_RandomAccessMemoryFile_seek($this.$dataFile, $var4 * 4096 | 0);
                    $var6 = nles_RandomAccessMemoryFile_readInt($this.$dataFile);
                    if ($var6 <= (4096 * $var5 | 0))
                        break d;
                    var$4 = null;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return var$4;
            }
            e: {
                try {
                    if ($var6 > 0)
                        break e;
                    var$4 = null;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return var$4;
            }
            f: {
                try {
                    $var7 = nles_RandomAccessMemoryFile_readByte($this.$dataFile);
                    if ($var7 != 1)
                        break f;
                    $var8 = $rt_createByteArray($var6 - 1 | 0);
                    nles_RandomAccessMemoryFile_read($this.$dataFile, $var8);
                    var$4 = ji_DataInputStream__init_(ji_BufferedInputStream__init_(juz_GZIPInputStream__init_1(ji_ByteArrayInputStream__init_($var8))));
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return var$4;
            }
            g: {
                try {
                    if ($var7 == 2)
                        break g;
                    var$4 = null;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return var$4;
            }
            try {
                $var8 = $rt_createByteArray($var6 - 1 | 0);
                nles_RandomAccessMemoryFile_read($this.$dataFile, $var8);
                var$10 = ji_DataInputStream__init_(ji_BufferedInputStream__init_(juz_InflaterInputStream__init_0(ji_ByteArrayInputStream__init_($var8))));
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            return var$10;
        }
        return null;
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
nms_RegionFile_getChunkDataOutputStream = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6;
    if ($par1 >= 0 && $par1 < 32 && $par2 >= 0 && $par2 < 32 ? 0 : 1)
        var$3 = null;
    else {
        var$3 = new ji_DataOutputStream;
        var$4 = new juz_DeflaterOutputStream;
        var$5 = new nms_RegionFileChunkBuffer;
        var$5.$buf = $rt_createByteArray(8096);
        var$5.$regionFile = $this;
        var$5.$chunkX0 = $par1;
        var$5.$chunkZ0 = $par2;
        var$6 = juz_Deflater__init_((-1), 0);
        var$4.$out0 = var$5;
        var$4.$def = var$6;
        var$4.$buf3 = $rt_createByteArray(512);
        var$3.$out0 = var$4;
        var$3.$buff0 = $rt_createByteArray(8);
    }
    return var$3;
},
nms_RegionFile_write0 = ($this, $par1, $par2, $par3ArrayOfByte, $par4) => {
    let $var5, $var6, $var7, $var8, $var12, $var9, $var10, $var11, var$13, var$14, $$je;
    jl_Object_monitorEnterSync($this);
    try {
        a: {
            b: {
                c: {
                    try {
                        $var5 = nms_RegionFile_getOffset($this, $par1, $par2);
                        $var6 = $var5 >> 8;
                        $var7 = $var5 & 255;
                        $var8 = (($par4 + 5 | 0) / 4096 | 0) + 1 | 0;
                        if ($var8 < 256)
                            break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $var12 = $$je;
                            break b;
                        } else {
                            throw $$e;
                        }
                    }
                    return;
                }
                d: {
                    try {
                        if ($var6 && $var7 == $var8) {
                            nms_RegionFile_write($this, $var6, $par3ArrayOfByte, $par4);
                            break d;
                        }
                        $var9 = 0;
                        while ($var9 < $var7) {
                            ju_ArrayList_set($this.$sectorFree, $var6 + $var9 | 0, jl_Boolean_valueOf(1));
                            $var9 = $var9 + 1 | 0;
                        }
                        e: {
                            $var6 = ju_AbstractList_indexOf($this.$sectorFree, jl_Boolean_valueOf(1));
                            $var10 = 0;
                            if ($var6 != (-1)) {
                                $var11 = $var6;
                                while ($var11 < ju_ArrayList_size($this.$sectorFree)) {
                                    if ($var10)
                                        $var10 = !jl_Boolean_booleanValue(ju_ArrayList_get($this.$sectorFree, $var11)) ? 0 : $var10 + 1 | 0;
                                    else if (jl_Boolean_booleanValue(ju_ArrayList_get($this.$sectorFree, $var11))) {
                                        $var10 = 1;
                                        $var6 = $var11;
                                    }
                                    if ($var10 >= $var8)
                                        break e;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        if ($var10 >= $var8) {
                            nms_RegionFile_setOffset($this, $par1, $par2, $var6 << 8 | $var8);
                            $var11 = 0;
                            while ($var11 < $var8) {
                                ju_ArrayList_set($this.$sectorFree, $var6 + $var11 | 0, jl_Boolean_valueOf(0));
                                $var11 = $var11 + 1 | 0;
                            }
                            nms_RegionFile_write($this, $var6, $par3ArrayOfByte, $par4);
                            break d;
                        }
                        $var12 = $this.$dataFile;
                        nles_RandomAccessMemoryFile_seek($var12, nles_RandomAccessMemoryFile_getLength($var12));
                        $var10 = ju_ArrayList_size($this.$sectorFree);
                        $var11 = 0;
                        while ($var11 < $var8) {
                            nles_RandomAccessMemoryFile_write0($this.$dataFile, nms_RegionFile_emptySector);
                            ju_ArrayList_add($this.$sectorFree, jl_Boolean_valueOf(0));
                            $var11 = $var11 + 1 | 0;
                        }
                        $this.$sizeDelta = $this.$sizeDelta + (4096 * $var8 | 0) | 0;
                        nms_RegionFile_write($this, $var10, $par3ArrayOfByte, $par4);
                        nms_RegionFile_setOffset($this, $par1, $par2, $var10 << 8 | $var8);
                        break d;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $var12 = $$je;
                            break b;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    nms_RegionFile_setChunkTimestamp($this, $par1, $par2, Long_lo(Long_div(jl_System_currentTimeMillis(), Long_fromInt(1000))));
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $var12 = $$je;
                    } else {
                        throw $$e;
                    }
                }
            }
            if (jl_System_errCache === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$14 = new ji_ByteArrayOutputStream;
                var$14.$buf = $rt_createByteArray(32);
                jl_Object__init_(var$13);
                var$13.$out0 = var$14;
                var$14 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0(var$14, 16);
                var$13.$sb = var$14;
                var$13.$buffer0 = $rt_createCharArray(32);
                var$13.$autoFlush = 0;
                var$13.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$13;
            }
            jl_Throwable_printStackTrace($var12, jl_System_errCache);
        }
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
nms_RegionFile_write = ($this, $par1, $par2ArrayOfByte, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$4 = $this.$dataFile;
    var$5 = $par1 * 4096 | 0;
    var$4.$pos = var$5;
    var$6 = $par3 + 1 | 0;
    $par1 = (var$6 >>> 24 | 0) & 255;
    var$7 = var$5 + 1 | 0;
    var$8 = var$4.$length1;
    if (var$8 < var$7) {
        var$9 = var$4.$buffer1;
        if (var$9.data.length < var$7) {
            var$10 = $rt_createByteArray(var$7 | 524287);
            jl_System_fastArraycopy(var$9, 0, var$10, 0, var$8);
            var$4.$buffer1 = var$10;
        }
        var$4.$length1 = var$7;
    }
    var$10 = var$4.$buffer1;
    var$9 = var$10.data;
    var$7 = var$4.$pos;
    var$9[var$7] = $par1 << 24 >> 24;
    var$5 = var$7 + 1 | 0;
    var$4.$pos = var$5;
    $par1 = (var$6 >>> 16 | 0) & 255;
    var$7 = var$5 + 1 | 0;
    var$8 = var$4.$length1;
    if (var$8 < var$7) {
        if (var$9.length < var$7) {
            var$9 = $rt_createByteArray(var$7 | 524287);
            jl_System_fastArraycopy(var$10, 0, var$9, 0, var$8);
            var$4.$buffer1 = var$9;
        }
        var$4.$length1 = var$7;
    }
    var$10 = var$4.$buffer1;
    var$9 = var$10.data;
    var$7 = var$4.$pos;
    var$9[var$7] = $par1 << 24 >> 24;
    var$5 = var$7 + 1 | 0;
    var$4.$pos = var$5;
    $par1 = (var$6 >>> 8 | 0) & 255;
    var$7 = var$5 + 1 | 0;
    var$8 = var$4.$length1;
    if (var$8 < var$7) {
        if (var$9.length < var$7) {
            var$9 = $rt_createByteArray(var$7 | 524287);
            jl_System_fastArraycopy(var$10, 0, var$9, 0, var$8);
            var$4.$buffer1 = var$9;
        }
        var$4.$length1 = var$7;
    }
    var$9 = var$4.$buffer1;
    var$10 = var$9.data;
    var$7 = var$4.$pos;
    var$10[var$7] = $par1 << 24 >> 24;
    var$5 = var$7 + 1 | 0;
    var$4.$pos = var$5;
    $par1 = (var$6 >>> 0 | 0) & 255;
    var$7 = var$5 + 1 | 0;
    var$5 = var$4.$length1;
    if (var$5 < var$7) {
        if (var$10.length < var$7) {
            var$10 = $rt_createByteArray(var$7 | 524287);
            jl_System_fastArraycopy(var$9, 0, var$10, 0, var$5);
            var$4.$buffer1 = var$10;
        }
        var$4.$length1 = var$7;
    }
    var$9 = var$4.$buffer1.data;
    var$7 = var$4.$pos;
    var$9[var$7] = $par1 << 24 >> 24;
    var$4.$pos = var$7 + 1 | 0;
    var$4 = $this.$dataFile;
    $par1 = var$4.$pos + 1 | 0;
    var$6 = var$4.$length1;
    if (var$6 < $par1) {
        var$9 = var$4.$buffer1;
        if (var$9.data.length < $par1) {
            var$10 = $rt_createByteArray($par1 | 524287);
            jl_System_fastArraycopy(var$9, 0, var$10, 0, var$6);
            var$4.$buffer1 = var$10;
        }
        var$4.$length1 = $par1;
    }
    var$9 = var$4.$buffer1.data;
    $par1 = var$4.$pos;
    var$9[$par1] = 2;
    var$4.$pos = $par1 + 1 | 0;
    var$4 = $this.$dataFile;
    var$7 = var$4.$pos + $par3 | 0;
    var$5 = var$4.$length1;
    if (var$5 < var$7) {
        var$9 = var$4.$buffer1;
        if (var$9.data.length < var$7) {
            var$10 = $rt_createByteArray(var$7 | 524287);
            jl_System_fastArraycopy(var$9, 0, var$10, 0, var$5);
            var$4.$buffer1 = var$10;
        }
        var$4.$length1 = var$7;
    }
    jl_System_fastArraycopy($par2ArrayOfByte, 0, var$4.$buffer1, var$4.$pos, $par3);
    var$4.$pos = var$4.$pos + $par3 | 0;
},
nms_RegionFile_getOffset = ($this, $par1, $par2) => {
    return $this.$offsets.data[$par1 + ($par2 * 32 | 0) | 0];
},
nms_RegionFile_isChunkSaved = ($this, $par1, $par2) => {
    return !$this.$offsets.data[$par1 + ($par2 * 32 | 0) | 0] ? 0 : 1;
},
nms_RegionFile_setOffset = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    var$4 = $this.$offsets.data;
    $par1 = $par1 + ($par2 * 32 | 0) | 0;
    var$4[$par1] = $par3;
    var$5 = $this.$dataFile;
    $par1 = $par1 * 4 | 0;
    var$5.$pos = $par1;
    $par2 = ($par3 >>> 24 | 0) & 255;
    $par1 = $par1 + 1 | 0;
    var$6 = var$5.$length1;
    if (var$6 < $par1) {
        var$4 = var$5.$buffer1;
        if (var$4.data.length < $par1) {
            var$7 = $rt_createByteArray($par1 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$6);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = $par1;
    }
    var$4 = var$5.$buffer1;
    var$7 = var$4.data;
    $par1 = var$5.$pos;
    var$7[$par1] = $par2 << 24 >> 24;
    var$8 = $par1 + 1 | 0;
    var$5.$pos = var$8;
    $par1 = ($par3 >>> 16 | 0) & 255;
    var$8 = var$8 + 1 | 0;
    var$9 = var$5.$length1;
    if (var$9 < var$8) {
        if (var$7.length < var$8) {
            var$7 = $rt_createByteArray(var$8 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$9);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = var$8;
    }
    var$4 = var$5.$buffer1;
    var$7 = var$4.data;
    $par2 = var$5.$pos;
    var$7[$par2] = $par1 << 24 >> 24;
    $par2 = $par2 + 1 | 0;
    var$5.$pos = $par2;
    $par1 = ($par3 >>> 8 | 0) & 255;
    $par2 = $par2 + 1 | 0;
    var$6 = var$5.$length1;
    if (var$6 < $par2) {
        if (var$7.length < $par2) {
            var$7 = $rt_createByteArray($par2 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$6);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = $par2;
    }
    var$4 = var$5.$buffer1;
    var$7 = var$4.data;
    $par2 = var$5.$pos;
    var$7[$par2] = $par1 << 24 >> 24;
    var$8 = $par2 + 1 | 0;
    var$5.$pos = var$8;
    $par1 = ($par3 >>> 0 | 0) & 255;
    $par2 = var$8 + 1 | 0;
    var$8 = var$5.$length1;
    if (var$8 < $par2) {
        if (var$7.length < $par2) {
            var$7 = $rt_createByteArray($par2 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$8);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = $par2;
    }
    var$4 = var$5.$buffer1.data;
    $par2 = var$5.$pos;
    var$4[$par2] = $par1 << 24 >> 24;
    var$5.$pos = $par2 + 1 | 0;
},
nms_RegionFile_setChunkTimestamp = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    var$4 = $this.$chunkTimestamps.data;
    $par1 = $par1 + ($par2 * 32 | 0) | 0;
    var$4[$par1] = $par3;
    var$5 = $this.$dataFile;
    $par1 = 4096 + ($par1 * 4 | 0) | 0;
    var$5.$pos = $par1;
    $par2 = ($par3 >>> 24 | 0) & 255;
    $par1 = $par1 + 1 | 0;
    var$6 = var$5.$length1;
    if (var$6 < $par1) {
        var$4 = var$5.$buffer1;
        if (var$4.data.length < $par1) {
            var$7 = $rt_createByteArray($par1 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$6);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = $par1;
    }
    var$7 = var$5.$buffer1;
    var$4 = var$7.data;
    $par1 = var$5.$pos;
    var$4[$par1] = $par2 << 24 >> 24;
    var$8 = $par1 + 1 | 0;
    var$5.$pos = var$8;
    $par1 = ($par3 >>> 16 | 0) & 255;
    var$8 = var$8 + 1 | 0;
    var$9 = var$5.$length1;
    if (var$9 < var$8) {
        if (var$4.length < var$8) {
            var$4 = $rt_createByteArray(var$8 | 524287);
            jl_System_fastArraycopy(var$7, 0, var$4, 0, var$9);
            var$5.$buffer1 = var$4;
        }
        var$5.$length1 = var$8;
    }
    var$4 = var$5.$buffer1;
    var$7 = var$4.data;
    $par2 = var$5.$pos;
    var$7[$par2] = $par1 << 24 >> 24;
    $par2 = $par2 + 1 | 0;
    var$5.$pos = $par2;
    $par1 = ($par3 >>> 8 | 0) & 255;
    $par2 = $par2 + 1 | 0;
    var$6 = var$5.$length1;
    if (var$6 < $par2) {
        if (var$7.length < $par2) {
            var$7 = $rt_createByteArray($par2 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$6);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = $par2;
    }
    var$4 = var$5.$buffer1;
    var$7 = var$4.data;
    $par2 = var$5.$pos;
    var$7[$par2] = $par1 << 24 >> 24;
    var$8 = $par2 + 1 | 0;
    var$5.$pos = var$8;
    $par1 = ($par3 >>> 0 | 0) & 255;
    $par2 = var$8 + 1 | 0;
    var$8 = var$5.$length1;
    if (var$8 < $par2) {
        if (var$7.length < $par2) {
            var$7 = $rt_createByteArray($par2 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$7, 0, var$8);
            var$5.$buffer1 = var$7;
        }
        var$5.$length1 = $par2;
    }
    var$4 = var$5.$buffer1.data;
    $par2 = var$5.$pos;
    var$4[$par2] = $par1 << 24 >> 24;
    var$5.$pos = $par2 + 1 | 0;
},
nms_RegionFile_getFile = $this => {
    return $this.$dataFile;
},
nms_RegionFile__clinit_ = () => {
    nms_RegionFile_emptySector = $rt_createByteArray(4096);
};
function nles_RandomAccessMemoryFile() {
    let a = this; jl_Object.call(a);
    a.$buffer1 = null;
    a.$length1 = 0;
    a.$pos = 0;
}
let nles_RandomAccessMemoryFile__init_0 = ($this, $initialBuffer, $initialLength) => {
    $this.$buffer1 = $initialBuffer;
    $this.$length1 = $initialLength;
    $this.$pos = 0;
},
nles_RandomAccessMemoryFile__init_ = (var_0, var_1) => {
    let var_2 = new nles_RandomAccessMemoryFile();
    nles_RandomAccessMemoryFile__init_0(var_2, var_0, var_1);
    return var_2;
},
nles_RandomAccessMemoryFile_getByteArray = $this => {
    let var$1, $b;
    var$1 = $this.$length1;
    $b = $rt_createByteArray(var$1);
    jl_System_fastArraycopy($this.$buffer1, 0, $b, 0, var$1);
    return $b;
},
nles_RandomAccessMemoryFile_readBytes = ($this, $b, $off, $len) => {
    let var$4, var$5, $avail;
    var$4 = $this.$pos;
    var$5 = $this.$length1;
    if (var$4 >= var$5)
        return (-1);
    $avail = var$5 - var$4 | 0;
    if ($len <= $avail)
        $avail = $len;
    if ($avail <= 0)
        return 0;
    jl_System_fastArraycopy($this.$buffer1, var$4, $b, $off, $avail);
    $this.$pos = $this.$pos + $avail | 0;
    return $avail;
},
nles_RandomAccessMemoryFile_read = ($this, $b) => {
    return nles_RandomAccessMemoryFile_readBytes($this, $b, 0, $b.data.length);
},
nles_RandomAccessMemoryFile_write = ($this, $b) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$pos + 1 | 0;
    var$3 = $this.$length1;
    if (var$3 < var$2) {
        var$4 = $this.$buffer1;
        if (var$4.data.length < var$2) {
            var$5 = $rt_createByteArray(var$2 | 524287);
            jl_System_fastArraycopy(var$4, 0, var$5, 0, var$3);
            $this.$buffer1 = var$5;
        }
        $this.$length1 = var$2;
    }
    var$5 = $this.$buffer1.data;
    var$2 = $this.$pos;
    var$5[var$2] = $b << 24 >> 24;
    $this.$pos = var$2 + 1 | 0;
},
nles_RandomAccessMemoryFile_write0 = ($this, $b) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $b.data.length;
    var$3 = $this.$pos + var$2 | 0;
    var$4 = $this.$length1;
    if (var$4 < var$3) {
        var$5 = $this.$buffer1;
        if (var$5.data.length < var$3) {
            var$6 = $rt_createByteArray(var$3 | 524287);
            jl_System_fastArraycopy(var$5, 0, var$6, 0, var$4);
            $this.$buffer1 = var$6;
        }
        $this.$length1 = var$3;
    }
    jl_System_fastArraycopy($b, 0, $this.$buffer1, $this.$pos, var$2);
    $this.$pos = $this.$pos + var$2 | 0;
},
nles_RandomAccessMemoryFile_seek = ($this, $pos) => {
    $this.$pos = $pos;
},
nles_RandomAccessMemoryFile_getLength = $this => {
    return $this.$length1;
},
nles_RandomAccessMemoryFile_readByte = $this => {
    let var$1, $ch, var$3, var$4;
    var$1 = $this.$pos;
    if (var$1 >= $this.$length1)
        $ch = (-1);
    else {
        var$3 = $this.$buffer1.data;
        $this.$pos = var$1 + 1 | 0;
        $ch = var$3[var$1] & 255;
    }
    if ($ch >= 0)
        return $ch << 24 >> 24;
    var$4 = new ji_EOFException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
nles_RandomAccessMemoryFile_readInt = $this => {
    let var$1, $ch4, $ch1, var$4, $ch2, $ch3, var$7;
    var$1 = $this.$pos;
    $ch4 = $this.$length1;
    if (var$1 >= $ch4)
        $ch1 = (-1);
    else {
        var$4 = $this.$buffer1.data;
        $this.$pos = var$1 + 1 | 0;
        $ch1 = var$4[var$1] & 255;
    }
    var$1 = $this.$pos;
    if (var$1 >= $ch4)
        $ch2 = (-1);
    else {
        var$4 = $this.$buffer1.data;
        $this.$pos = var$1 + 1 | 0;
        $ch2 = var$4[var$1] & 255;
    }
    var$1 = $this.$pos;
    if (var$1 >= $ch4)
        $ch3 = (-1);
    else {
        var$4 = $this.$buffer1.data;
        $this.$pos = var$1 + 1 | 0;
        $ch3 = var$4[var$1] & 255;
    }
    var$1 = $this.$pos;
    if (var$1 >= $ch4)
        $ch4 = (-1);
    else {
        var$4 = $this.$buffer1.data;
        $this.$pos = var$1 + 1 | 0;
        $ch4 = var$4[var$1] & 255;
    }
    if (($ch1 | $ch2 | $ch3 | $ch4) < 0) {
        var$7 = new ji_EOFException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        $rt_throw(var$7);
    }
    return ((($ch1 << 24) + ($ch2 << 16) | 0) + ($ch3 << 8) | 0) + ($ch4 << 0) | 0;
},
nles_RandomAccessMemoryFile_writeInt = ($this, $v) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = ($v >>> 24 | 0) & 255;
    var$3 = $this.$pos + 1 | 0;
    var$4 = $this.$length1;
    if (var$4 < var$3) {
        var$5 = $this.$buffer1;
        if (var$5.data.length < var$3) {
            var$6 = $rt_createByteArray(var$3 | 524287);
            jl_System_fastArraycopy(var$5, 0, var$6, 0, var$4);
            $this.$buffer1 = var$6;
        }
        $this.$length1 = var$3;
    }
    var$6 = $this.$buffer1;
    var$5 = var$6.data;
    var$3 = $this.$pos;
    var$5[var$3] = var$2 << 24 >> 24;
    var$7 = var$3 + 1 | 0;
    $this.$pos = var$7;
    var$2 = ($v >>> 16 | 0) & 255;
    var$8 = var$7 + 1 | 0;
    var$7 = $this.$length1;
    if (var$7 < var$8) {
        if (var$5.length < var$8) {
            var$5 = $rt_createByteArray(var$8 | 524287);
            jl_System_fastArraycopy(var$6, 0, var$5, 0, var$7);
            $this.$buffer1 = var$5;
        }
        $this.$length1 = var$8;
    }
    var$6 = $this.$buffer1;
    var$5 = var$6.data;
    var$3 = $this.$pos;
    var$5[var$3] = var$2 << 24 >> 24;
    var$7 = var$3 + 1 | 0;
    $this.$pos = var$7;
    var$2 = ($v >>> 8 | 0) & 255;
    var$3 = var$7 + 1 | 0;
    var$7 = $this.$length1;
    if (var$7 < var$3) {
        if (var$5.length < var$3) {
            var$5 = $rt_createByteArray(var$3 | 524287);
            jl_System_fastArraycopy(var$6, 0, var$5, 0, var$7);
            $this.$buffer1 = var$5;
        }
        $this.$length1 = var$3;
    }
    var$5 = $this.$buffer1;
    var$6 = var$5.data;
    var$3 = $this.$pos;
    var$6[var$3] = var$2 << 24 >> 24;
    var$3 = var$3 + 1 | 0;
    $this.$pos = var$3;
    $v = ($v >>> 0 | 0) & 255;
    var$2 = var$3 + 1 | 0;
    var$7 = $this.$length1;
    if (var$7 < var$2) {
        if (var$6.length < var$2) {
            var$6 = $rt_createByteArray(var$2 | 524287);
            jl_System_fastArraycopy(var$5, 0, var$6, 0, var$7);
            $this.$buffer1 = var$6;
        }
        $this.$length1 = var$2;
    }
    var$5 = $this.$buffer1.data;
    var$2 = $this.$pos;
    var$5[var$2] = $v << 24 >> 24;
    $this.$pos = var$2 + 1 | 0;
},
nms_IChunkLoader = $rt_classWithoutFields(0);
function nles_VFSChunkLoader() {
    jl_Object.call(this);
    this.$chunkDirectory = null;
}
let nles_VFSChunkLoader_getChunkPath = ($x, $z) => {
    let $unsignedX, $unsignedZ, $path, var$6, $i, var$8, var$9;
    $unsignedX = $x + 1900000 | 0;
    $unsignedZ = $z + 1900000 | 0;
    $path = $rt_createCharArray(12);
    var$6 = $path.data;
    $i = 5;
    a: {
        b: {
            while ($i >= 0) {
                $z = $i * 4 | 0;
                var$8 = $unsignedX >> $z & 15;
                if (var$8 < 0)
                    break a;
                if (var$8 >= $rt_s(336).$nativeString.length)
                    break a;
                var$6[$i] = $rt_s(336).$nativeString.charCodeAt(var$8);
                var$8 = $i + 6 | 0;
                $x = $unsignedZ >> $z & 15;
                if ($x < 0)
                    break b;
                if ($x >= $rt_s(336).$nativeString.length)
                    break b;
                var$6[var$8] = $rt_s(336).$nativeString.charCodeAt($x);
                $i = $i + (-1) | 0;
            }
            var$9 = new jl_String;
            var$9.$nativeString = $rt_charArrayToString($path.data, 0, var$6.length);
            return var$9;
        }
        var$9 = new jl_StringIndexOutOfBoundsException;
        var$9.$suppressionEnabled = 1;
        var$9.$writableStackTrace = 1;
        $rt_throw(var$9);
    }
    var$9 = new jl_StringIndexOutOfBoundsException;
    var$9.$suppressionEnabled = 1;
    var$9.$writableStackTrace = 1;
    $rt_throw(var$9);
},
nles_VFSChunkLoader_loadChunk = ($this, $var1, $var2, $var3) => {
    let var$4, var$5, $nbt, $t, var$8, $bytes, var$10, var$11, var$12, $file$path, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$file$path = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$bytes = $thread.pop();var$8 = $thread.pop();$t = $thread.pop();$nbt = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $rt_createArray(jl_Object, 2);
        var$5 = var$4.data;
        var$5[0] = $this.$chunkDirectory;
        $nbt = nles_VFSChunkLoader_getChunkPath($var2, $var3);
        $t = new jl_StringBuilder;
        $t.$buffer = $rt_createCharArray(16);
        var$8 = $t.$length0;
        if ($nbt === null)
            $nbt = $rt_s(1);
        jl_AbstractStringBuilder_insert($t, var$8, $nbt);
        jl_AbstractStringBuilder_insert($t, $t.$length0, $rt_s(184));
        $nbt = new jl_String;
        $bytes = $t.$buffer;
        var$10 = $bytes.data;
        var$11 = $t.$length0;
        var$12 = var$10.length;
        if (var$11 >= 0 && var$11 <= (var$12 - 0 | 0)) {
            $nbt.$nativeString = $rt_charArrayToString($bytes.data, 0, var$11);
            var$5[1] = $nbt;
            $file$path = nles_VFile_createPath(var$4);
            if ($file$path !== null && !jl_String_contains($file$path, $rt_s(168)) ? 0 : 1) {
                $bytes = null;
                if ($bytes === null)
                    return null;
                try {
                    $nbt = nms_NBTTagCompound_getCompoundTag(nms_CompressedStreamTools_decompress($bytes), $rt_s(199));
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                        $t = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if ($file$path !== null && !jl_String_contains($file$path, $rt_s(168)) ? 0 : 1) {
                    if (jl_System_errCache === null) {
                        $var1 = new otcic_JSStderrPrintStream;
                        $nbt = new ji_ByteArrayOutputStream;
                        $nbt.$buf = $rt_createByteArray(32);
                        $var1.$out0 = $nbt;
                        $nbt = new jl_StringBuilder;
                        $nbt.$buffer = $rt_createCharArray(16);
                        $var1.$sb = $nbt;
                        $var1.$buffer0 = $rt_createCharArray(32);
                        $var1.$autoFlush = 0;
                        $var1.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var1;
                    }
                    $var1 = new jl_StringBuilder;
                    $var1.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(337));
                    jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var2, 10);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
                    jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var3, 10);
                    $var3 = $var1.$length0;
                    jl_AbstractStringBuilder_insertSpace($var1, $var3, $var3 + 1 | 0);
                    $bytes = $var1.$buffer;
                    var$10 = $bytes.data;
                    var$10[$var3] = 93;
                    $nbt = new jl_String;
                    $var3 = $var1.$length0;
                    var$8 = var$10.length;
                    if ($var3 >= 0 && $var3 <= (var$8 - 0 | 0)) {
                        $nbt.$nativeString = $rt_charArrayToString($bytes.data, 0, $var3);
                        $rt_putStderr($rt_ustr($nbt));
                        $rt_putStderr("\n");
                        jl_Throwable_printStackTrace0($t);
                        return null;
                    }
                    $var1 = new jl_IndexOutOfBoundsException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                $ptr = 3;
                continue main;
            }
            $ptr = 1;
            continue main;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $nbt = nles_SYS_VFS;
        $t = $nbt.$fileMap;
        if ($file$path === null) {
            $t = $t.$elementData.data[0];
            while ($t !== null && $t.$key !== null) {
                $t = $t.$next3;
            }
        } else {
            a: {
                if (!$file$path.$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $file$path.$nativeString.length)
                            break a;
                        $file$path.$hashCode1 = (31 * $file$path.$hashCode1 | 0) + $file$path.$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$12 = $file$path.$hashCode1;
            $bytes = $t.$elementData.data;
            $t = $bytes[var$12 & ($bytes.length - 1 | 0)];
            while ($t !== null) {
                if ($t.$origKeyHash == var$12) {
                    b: {
                        var$14 = $t.$key;
                        if ($file$path !== var$14) {
                            if ($file$path === var$14)
                                var$8 = 1;
                            else if (!(var$14 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$14 = var$14;
                                var$8 = $file$path.$nativeString !== var$14.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $t = $t.$next3;
            }
        }
        $t = $t === null ? null : $t.$value0;
        if ($t === null) {
            var$14 = $nbt.$fileMap;
            $t = new nles_VirtualFilesystem$VFSFile;
            $t.$fileSize = (-1);
            $t.$hasBeenDeleted = 0;
            $t.$hasBeenAccessed = 0;
            $t.$exists0 = 0;
            $t.$cache = null;
            $t.$virtualFilesystem = $nbt;
            $t.$filePath = $file$path;
            nles_SysUtil_$callClinit();
            $t.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$14, $file$path, $t);
        }
        var$8 = 0;
        $ptr = 4;
        continue main;
    case 2:
        c: {
            try {
                $tmp = nles_VFSChunkLoader_readChunkFromNBT($this, $var1, $nbt, $var2, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                $var1 = $tmp;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                    $t = $$je;
                    break c;
                } else {
                    throw $$e;
                }
            }
            return $var1;
        }
        if ($file$path !== null && !jl_String_contains($file$path, $rt_s(168)) ? 0 : 1) {
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $nbt = new ji_ByteArrayOutputStream;
                $nbt.$buf = $rt_createByteArray(32);
                $var1.$out0 = $nbt;
                $nbt = new jl_StringBuilder;
                $nbt.$buffer = $rt_createCharArray(16);
                $var1.$sb = $nbt;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(337));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var2, 10);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var3, 10);
            $var3 = $var1.$length0;
            jl_AbstractStringBuilder_insertSpace($var1, $var3, $var3 + 1 | 0);
            $bytes = $var1.$buffer;
            var$10 = $bytes.data;
            var$10[$var3] = 93;
            $nbt = new jl_String;
            $var3 = $var1.$length0;
            var$8 = var$10.length;
            if ($var3 >= 0 && $var3 <= (var$8 - 0 | 0)) {
                $nbt.$nativeString = $rt_charArrayToString($bytes.data, 0, $var3);
                $rt_putStderr($rt_ustr($nbt));
                $rt_putStderr("\n");
                jl_Throwable_printStackTrace0($t);
                return null;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $ptr = 3;
    case 3:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        var$14 = nles_SYS_VFS;
        $var1 = var$14.$fileMap;
        if ($file$path === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            a: {
                if (!$file$path.$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $file$path.$nativeString.length)
                            break a;
                        $file$path.$hashCode1 = (31 * $file$path.$hashCode1 | 0) + $file$path.$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$12 = $file$path.$hashCode1;
            $bytes = $var1.$elementData.data;
            $var1 = $bytes[var$12 & ($bytes.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$12) {
                    $nbt = $var1.$key;
                    if ($file$path !== $nbt && !jl_String_equals($file$path, $nbt) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $nbt = $var1 === null ? null : $var1.$value0;
        if ($nbt === null) {
            var$15 = var$14.$fileMap;
            $nbt = new nles_VirtualFilesystem$VFSFile;
            $nbt.$fileSize = (-1);
            $nbt.$hasBeenDeleted = 0;
            $nbt.$hasBeenAccessed = 0;
            $nbt.$exists0 = 0;
            $nbt.$cache = null;
            $nbt.$virtualFilesystem = var$14;
            $nbt.$filePath = $file$path;
            nles_SysUtil_$callClinit();
            $nbt.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl(var$15, $file$path, $nbt);
        }
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nles_VirtualFilesystem$VFSFile_getAllBytes($t, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $bytes = $tmp;
        if ($bytes === null)
            return null;
        try {
            $nbt = nms_NBTTagCompound_getCompoundTag(nms_CompressedStreamTools_decompress($bytes), $rt_s(199));
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
                $t = $$je;
            } else {
                throw $$e;
            }
        }
        if ($file$path !== null && !jl_String_contains($file$path, $rt_s(168)) ? 0 : 1) {
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $nbt = new ji_ByteArrayOutputStream;
                $nbt.$buf = $rt_createByteArray(32);
                $var1.$out0 = $nbt;
                $nbt = new jl_StringBuilder;
                $nbt.$buffer = $rt_createCharArray(16);
                $var1.$sb = $nbt;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(337));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var2, 10);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var3, 10);
            $var3 = $var1.$length0;
            jl_AbstractStringBuilder_insertSpace($var1, $var3, $var3 + 1 | 0);
            $bytes = $var1.$buffer;
            var$10 = $bytes.data;
            var$10[$var3] = 93;
            $nbt = new jl_String;
            $var3 = $var1.$length0;
            var$8 = var$10.length;
            if ($var3 >= 0 && $var3 <= (var$8 - 0 | 0)) {
                $nbt.$nativeString = $rt_charArrayToString($bytes.data, 0, $var3);
                $rt_putStderr($rt_ustr($nbt));
                $rt_putStderr("\n");
                jl_Throwable_printStackTrace0($t);
                return null;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $ptr = 3;
        continue main;
    case 5:
        $tmp = nles_VirtualFilesystem$VFSFile_delete($nbt);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (jl_System_errCache === null) {
            $var1 = new otcic_JSStderrPrintStream;
            $nbt = new ji_ByteArrayOutputStream;
            $nbt.$buf = $rt_createByteArray(32);
            $var1.$out0 = $nbt;
            $nbt = new jl_StringBuilder;
            $nbt.$buffer = $rt_createCharArray(16);
            $var1.$sb = $nbt;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var1;
        }
        $var1 = new jl_StringBuilder;
        $var1.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(337));
        jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var2, 10);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
        jl_AbstractStringBuilder_insert0($var1, $var1.$length0, $var3, 10);
        $var3 = $var1.$length0;
        jl_AbstractStringBuilder_insertSpace($var1, $var3, $var3 + 1 | 0);
        $bytes = $var1.$buffer;
        var$10 = $bytes.data;
        var$10[$var3] = 93;
        $nbt = new jl_String;
        $var3 = $var1.$length0;
        var$8 = var$10.length;
        if ($var3 >= 0 && $var3 <= (var$8 - 0 | 0)) {
            $nbt.$nativeString = $rt_charArrayToString($bytes.data, 0, $var3);
            $rt_putStderr($rt_ustr($nbt));
            $rt_putStderr("\n");
            jl_Throwable_printStackTrace0($t);
            return null;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var3, var$4, var$5, $nbt, $t, var$8, $bytes, var$10, var$11, var$12, $file$path, var$14, var$15, $ptr);
},
nles_VFSChunkLoader_saveChunk = ($this, $var1, $var2) => {
    let $chunkFile, $chunkFileSave, var$5, var$6, $save, var$8, var$9, var$10, var$11, var$12, var$13, $file$path, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$file$path = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$save = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$chunkFileSave = $thread.pop();$chunkFile = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $chunkFile = new nms_NBTTagCompound;
        $chunkFile.$name = $rt_s(3);
        $chunkFileSave = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        $chunkFileSave.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        $save = var$6.data;
        $chunkFileSave.$elementData = var$6;
        $chunkFileSave.$loadFactor = 0.75;
        $chunkFileSave.$threshold = $save.length * 0.75 | 0;
        $chunkFile.$tagMap = $chunkFileSave;
        nles_VFSChunkLoader_writeChunkToNBT($this, $var2, $var1, $chunkFile);
        try {
            $chunkFileSave = nms_NBTTagCompound__init_();
            nms_NBTTagCompound_setCompoundTag($chunkFileSave, $rt_s(199), $chunkFile);
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $var1 = new otcic_JSStderrPrintStream;
            $chunkFile = new ji_ByteArrayOutputStream;
            $chunkFile.$buf = $rt_createByteArray(32);
            $var1.$out0 = $chunkFile;
            $chunkFile = new jl_StringBuilder;
            jl_Object__init_($chunkFile);
            $chunkFile.$buffer = $rt_createCharArray(16);
            $var1.$sb = $chunkFile;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var1;
        }
        var$5 = $var2.$xPosition0;
        var$8 = $var2.$zPosition0;
        $var1 = new jl_StringBuilder;
        $var1.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(338));
        jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$5, 10);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
        jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$8, 10);
        var$8 = $var1.$length0;
        jl_AbstractStringBuilder_insertSpace($var1, var$8, var$8 + 1 | 0);
        $save = $var1.$buffer;
        var$6 = $save.data;
        var$6[var$8] = 93;
        $var2 = new jl_String;
        var$8 = $var1.$length0;
        var$9 = var$6.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            $var2.$nativeString = $rt_charArrayToString($save.data, 0, var$8);
            $rt_putStderr($rt_ustr($var2));
            $rt_putStderr("\n");
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        a: {
            try {
                $tmp = nms_CompressedStreamTools_compress($chunkFileSave);
                if ($rt_suspending()) {
                    break main;
                }
                $save = $tmp;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $chunkFile = new ji_ByteArrayOutputStream;
                $chunkFile.$buf = $rt_createByteArray(32);
                $var1.$out0 = $chunkFile;
                $chunkFile = new jl_StringBuilder;
                jl_Object__init_($chunkFile);
                $chunkFile.$buffer = $rt_createCharArray(16);
                $var1.$sb = $chunkFile;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            var$5 = $var2.$xPosition0;
            var$8 = $var2.$zPosition0;
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(338));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$5, 10);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$8, 10);
            var$8 = $var1.$length0;
            jl_AbstractStringBuilder_insertSpace($var1, var$8, var$8 + 1 | 0);
            $save = $var1.$buffer;
            var$6 = $save.data;
            var$6[var$8] = 93;
            $var2 = new jl_String;
            var$8 = $var1.$length0;
            var$9 = var$6.length;
            if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString($save.data, 0, var$8);
                $rt_putStderr($rt_ustr($var2));
                $rt_putStderr("\n");
                return;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        var$6 = $rt_createArray(jl_Object, 2);
        var$10 = var$6.data;
        var$10[0] = $this.$chunkDirectory;
        $var1 = nles_VFSChunkLoader_getChunkPath($var2.$xPosition0, $var2.$zPosition0);
        $chunkFile = new jl_StringBuilder;
        $chunkFile.$buffer = $rt_createCharArray(16);
        var$8 = $chunkFile.$length0;
        if ($var1 === null)
            $var1 = $rt_s(1);
        jl_AbstractStringBuilder_insert($chunkFile, var$8, $var1);
        jl_AbstractStringBuilder_insert($chunkFile, $chunkFile.$length0, $rt_s(184));
        $var1 = new jl_String;
        var$11 = $chunkFile.$buffer;
        var$12 = var$11.data;
        var$9 = $chunkFile.$length0;
        var$13 = var$12.length;
        if (var$9 >= 0 && var$9 <= (var$13 - 0 | 0)) {
            $var1.$nativeString = $rt_charArrayToString(var$11.data, 0, var$9);
            var$10[1] = $var1;
            $file$path = nles_VFile_createPath(var$6);
            if ($file$path !== null && !jl_String_contains($file$path, $rt_s(168)) ? 0 : 1) {
                if (!0) {
                    if (jl_System_errCache === null) {
                        $var1 = new otcic_JSStderrPrintStream;
                        $chunkFile = new ji_ByteArrayOutputStream;
                        $chunkFile.$buf = $rt_createByteArray(32);
                        $var1.$out0 = $chunkFile;
                        $chunkFile = new jl_StringBuilder;
                        jl_Object__init_($chunkFile);
                        $chunkFile.$buffer = $rt_createCharArray(16);
                        $var1.$sb = $chunkFile;
                        $var1.$buffer0 = $rt_createCharArray(32);
                        $var1.$autoFlush = 0;
                        $var1.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var1;
                    }
                    var$5 = $var2.$xPosition0;
                    var$8 = $var2.$zPosition0;
                    $var1 = new jl_StringBuilder;
                    $var1.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(339));
                    jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$5, 10);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
                    jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$8, 10);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(340));
                    var$5 = $var1.$length0;
                    if ($file$path === null)
                        $file$path = $rt_s(1);
                    jl_AbstractStringBuilder_insert($var1, var$5, $file$path);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(341));
                    $var2 = new jl_String;
                    $save = $var1.$buffer;
                    var$6 = $save.data;
                    var$8 = $var1.$length0;
                    var$9 = var$6.length;
                    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                        $var2.$nativeString = $rt_charArrayToString($save.data, 0, var$8);
                        $rt_putStderr($rt_ustr($var2));
                        $rt_putStderr("\n");
                    } else {
                        $var1 = new jl_IndexOutOfBoundsException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                }
                return;
            }
            $ptr = 2;
            continue main;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 2:
        nles_SYS_$callClinit();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = nles_SYS_VFS;
        $chunkFile = $var1.$fileMap;
        if ($file$path === null) {
            $chunkFile = $chunkFile.$elementData.data[0];
            while ($chunkFile !== null && $chunkFile.$key !== null) {
                $chunkFile = $chunkFile.$next3;
            }
        } else {
            b: {
                if (!$file$path.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $file$path.$nativeString.length)
                            break b;
                        $file$path.$hashCode1 = (31 * $file$path.$hashCode1 | 0) + $file$path.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$9 = $file$path.$hashCode1;
            var$6 = $chunkFile.$elementData.data;
            $chunkFile = var$6[var$9 & (var$6.length - 1 | 0)];
            while ($chunkFile !== null) {
                if ($chunkFile.$origKeyHash == var$9) {
                    c: {
                        $chunkFileSave = $chunkFile.$key;
                        if ($file$path !== $chunkFileSave) {
                            if ($file$path === $chunkFileSave)
                                var$5 = 1;
                            else if (!($chunkFileSave instanceof jl_String))
                                var$5 = 0;
                            else {
                                $chunkFileSave = $chunkFileSave;
                                var$5 = $file$path.$nativeString !== $chunkFileSave.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break c;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $chunkFile = $chunkFile.$next3;
            }
        }
        $chunkFile = $chunkFile === null ? null : $chunkFile.$value0;
        if ($chunkFile === null) {
            $chunkFileSave = $var1.$fileMap;
            $chunkFile = new nles_VirtualFilesystem$VFSFile;
            $chunkFile.$fileSize = (-1);
            $chunkFile.$hasBeenDeleted = 0;
            $chunkFile.$hasBeenAccessed = 0;
            $chunkFile.$exists0 = 0;
            $chunkFile.$cache = null;
            $chunkFile.$virtualFilesystem = $var1;
            $chunkFile.$filePath = $file$path;
            nles_SysUtil_$callClinit();
            $chunkFile.$cacheHit = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            ju_HashMap_putImpl($chunkFileSave, $file$path, $chunkFile);
        }
        var$5 = 1;
        $ptr = 3;
    case 3:
        $tmp = nles_VirtualFilesystem$VFSFile_setAllBytes($chunkFile, $save, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $chunkFile = new ji_ByteArrayOutputStream;
                $chunkFile.$buf = $rt_createByteArray(32);
                $var1.$out0 = $chunkFile;
                $chunkFile = new jl_StringBuilder;
                jl_Object__init_($chunkFile);
                $chunkFile.$buffer = $rt_createCharArray(16);
                $var1.$sb = $chunkFile;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            var$5 = $var2.$xPosition0;
            var$8 = $var2.$zPosition0;
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(339));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$5, 10);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$8, 10);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(340));
            var$5 = $var1.$length0;
            if ($file$path === null)
                $file$path = $rt_s(1);
            jl_AbstractStringBuilder_insert($var1, var$5, $file$path);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(341));
            $var2 = new jl_String;
            $save = $var1.$buffer;
            var$6 = $save.data;
            var$8 = $var1.$length0;
            var$9 = var$6.length;
            if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString($save.data, 0, var$8);
                $rt_putStderr($rt_ustr($var2));
                $rt_putStderr("\n");
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $chunkFile, $chunkFileSave, var$5, var$6, $save, var$8, var$9, var$10, var$11, var$12, var$13, $file$path, $ptr);
},
nles_VFSChunkLoader_saveExtraChunkData = ($this, $var1, $var2) => {
    return;
},
nles_VFSChunkLoader_readChunkFromNBT = ($this, $par1World, $par2NBTTagCompound, $x, $z) => {
    let $var5, $var19, var$7, $var17, $var6, $var23, $var8, $var9, var$13, $var10, $var18, $var15, $var21, $var24, $var7, $var25, $var27, $var12, $var11, $var13, $var22, $var26, $var16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var16 = $thread.pop();$var26 = $thread.pop();$var22 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var12 = $thread.pop();$var27 = $thread.pop();$var25 = $thread.pop();$var7 = $thread.pop();$var24 = $thread.pop();$var21 = $thread.pop();$var15 = $thread.pop();$var18 = $thread.pop();$var10 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var23 = $thread.pop();$var6 = $thread.pop();$var17 = $thread.pop();var$7 = $thread.pop();$var19
        = $thread.pop();$var5 = $thread.pop();$z = $thread.pop();$x = $thread.pop();$par2NBTTagCompound = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = nms_Chunk__init_1($par1World, $x, $z);
        $var19 = $par2NBTTagCompound.$tagMap;
        $z = jl_String_hashCode($rt_s(342));
        var$7 = $var19.$elementData.data;
        $var19 = var$7[$z & (var$7.length - 1 | 0)];
        while ($var19 !== null) {
            if ($var19.$origKeyHash == $z) {
                $var17 = $var19.$key;
                if ($rt_s(342) !== $var17 && !jl_String_equals($rt_s(342), $var17) ? 0 : 1)
                    break;
            }
            $var19 = $var19.$next3;
        }
        if ($var19 === null ? 0 : 1) {
            $var19 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(342) !== null) {
                $z = jl_String_hashCode($rt_s(342));
                var$7 = $var19.$elementData.data;
                $var19 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var19 !== null) {
                    if ($var19.$origKeyHash == $z) {
                        $var17 = $var19.$key;
                        if ($rt_s(342) !== $var17 && !jl_String_equals($rt_s(342), $var17) ? 0 : 1)
                            break;
                    }
                    $var19 = $var19.$next3;
                }
            } else {
                $var19 = $var19.$elementData.data[0];
                while ($var19 !== null && $var19.$key !== null) {
                    $var19 = $var19.$next3;
                }
            }
            var$7 = ($var19 === null ? null : $var19.$value0).$intArray;
        } else
            var$7 = $rt_createIntArray(0);
        $var5.$heightMap = var$7;
        $var19 = $par2NBTTagCompound.$tagMap;
        $z = jl_String_hashCode($rt_s(343));
        var$7 = $var19.$elementData.data;
        $var19 = var$7[$z & (var$7.length - 1 | 0)];
        while ($var19 !== null) {
            if ($var19.$origKeyHash == $z) {
                $var17 = $var19.$key;
                if ($rt_s(343) !== $var17 && !jl_String_equals($rt_s(343), $var17) ? 0 : 1)
                    break;
            }
            $var19 = $var19.$next3;
        }
        if ($var19 === null ? 0 : 1) {
            $var19 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(343) !== null) {
                $z = jl_String_hashCode($rt_s(343));
                var$7 = $var19.$elementData.data;
                $var19 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var19 !== null) {
                    if ($var19.$origKeyHash == $z) {
                        $var17 = $var19.$key;
                        if ($rt_s(343) !== $var17 && !jl_String_equals($rt_s(343), $var17) ? 0 : 1)
                            break;
                    }
                    $var19 = $var19.$next3;
                }
            } else {
                $var19 = $var19.$elementData.data[0];
                while ($var19 !== null && $var19.$key !== null) {
                    $var19 = $var19.$next3;
                }
            }
            $x = ($var19 === null ? null : $var19.$value0).$data0;
        } else
            $x = 0;
        $var5.$isTerrainPopulated = !$x ? 0 : 1;
        $var19 = $par2NBTTagCompound.$tagMap;
        $z = jl_String_hashCode($rt_s(344));
        var$7 = $var19.$elementData.data;
        $var19 = var$7[$z & (var$7.length - 1 | 0)];
        while ($var19 !== null) {
            if ($var19.$origKeyHash == $z) {
                $var17 = $var19.$key;
                if ($rt_s(344) !== $var17 && !jl_String_equals($rt_s(344), $var17) ? 0 : 1)
                    break;
            }
            $var19 = $var19.$next3;
        }
        if (!($var19 === null ? 0 : 1)) {
            $var6 = new nms_NBTTagList;
            if ($rt_s(344) !== null)
                $var6.$name = $rt_s(344);
            else
                $var6.$name = $rt_s(3);
            $var23 = new ju_ArrayList;
            $var23.$array = $rt_createArray(jl_Object, 10);
            $var6.$tagList = $var23;
        } else {
            $var19 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(344) === null) {
                $var19 = $var19.$elementData.data[0];
                while ($var19 !== null && $var19.$key !== null) {
                    $var19 = $var19.$next3;
                }
            } else {
                $z = jl_String_hashCode($rt_s(344));
                var$7 = $var19.$elementData.data;
                $var19 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var19 !== null) {
                    if ($var19.$origKeyHash == $z) {
                        $var17 = $var19.$key;
                        if ($rt_s(344) !== $var17 && !jl_String_equals($rt_s(344), $var17) ? 0 : 1)
                            break;
                    }
                    $var19 = $var19.$next3;
                }
            }
            $var6 = $var19 === null ? null : $var19.$value0;
        }
        $var8 = $rt_createArray(nms_ExtendedBlockStorage, 16);
        $var9 = $par1World.$provider.$hasNoSky ? 0 : 1;
        var$13 = $var8.data;
        $var10 = 0;
        while (true) {
            $var23 = $var6.$tagList;
            $x = $rt_compare($var10, $var23.$size0);
            if ($x >= 0) {
                $var5.$storageArrays = $var8;
                $var19 = $par2NBTTagCompound.$tagMap;
                $z = jl_String_hashCode($rt_s(345));
                var$7 = $var19.$elementData.data;
                $var19 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var19 !== null) {
                    if ($var19.$origKeyHash == $z) {
                        $var17 = $var19.$key;
                        if ($rt_s(345) !== $var17 && !jl_String_equals($rt_s(345), $var17) ? 0 : 1)
                            break;
                    }
                    $var19 = $var19.$next3;
                }
                if ($var19 === null ? 0 : 1) {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    $z = jl_String_hashCode($rt_s(345));
                    var$7 = $var23.$elementData.data;
                    $var23 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var23 !== null) {
                        if ($var23.$origKeyHash == $z) {
                            $var19 = $var23.$key;
                            if ($rt_s(345) !== $var19 && !jl_String_equals($rt_s(345), $var19) ? 0 : 1)
                                break;
                        }
                        $var23 = $var23.$next3;
                    }
                    if (!($var23 === null ? 0 : 1))
                        var$7 = $rt_createByteArray(0);
                    else {
                        $var23 = $par2NBTTagCompound.$tagMap;
                        if ($rt_s(345) === null) {
                            $var23 = $var23.$elementData.data[0];
                            while ($var23 !== null && $var23.$key !== null) {
                                $var23 = $var23.$next3;
                            }
                        } else {
                            $z = jl_String_hashCode($rt_s(345));
                            var$7 = $var23.$elementData.data;
                            $var23 = var$7[$z & (var$7.length - 1 | 0)];
                            while ($var23 !== null) {
                                if ($var23.$origKeyHash == $z) {
                                    $var19 = $var23.$key;
                                    if ($rt_s(345) !== $var19 && !jl_String_equals($rt_s(345), $var19) ? 0 : 1)
                                        break;
                                }
                                $var23 = $var23.$next3;
                            }
                        }
                        var$7 = ($var23 === null ? null : $var23.$value0).$byteArray;
                    }
                    $var5.$blockBiomeArray = var$7;
                }
                $var23 = $par2NBTTagCompound.$tagMap;
                $z = jl_String_hashCode($rt_s(346));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(346) !== $var19 && !jl_String_equals($rt_s(346), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if ($var23 === null ? 0 : 1) {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    if ($rt_s(346) !== null) {
                        $z = jl_String_hashCode($rt_s(346));
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$z & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $z) {
                                $var19 = $var23.$key;
                                if ($rt_s(346) !== $var19 && !jl_String_equals($rt_s(346), $var19) ? 0 : 1)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                    } else {
                        $var23 = $var23.$elementData.data[0];
                        while ($var23 !== null && $var23.$key !== null) {
                            $var23 = $var23.$next3;
                        }
                    }
                    $var17 = $var23 === null ? null : $var23.$value0;
                } else {
                    $var17 = new nms_NBTTagList;
                    if ($rt_s(346) !== null)
                        $var17.$name = $rt_s(346);
                    else
                        $var17.$name = $rt_s(3);
                    $var23 = new ju_ArrayList;
                    $var23.$array = $rt_createArray(jl_Object, 10);
                    $var17.$tagList = $var23;
                }
                if ($var17 !== null) {
                    $var18 = 0;
                    $var23 = $var17.$tagList;
                    $x = $rt_compare($var18, $var23.$size0);
                    if ($x < 0) {
                        if ($var18 >= 0 && $x < 0) {
                            $var15 = $var23.$array.data[$var18];
                            $ptr = 1;
                            continue main;
                        }
                        $par1World = new jl_IndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                }
                $var23 = $par2NBTTagCompound.$tagMap;
                $z = jl_String_hashCode($rt_s(347));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if (!($var23 === null ? 0 : 1)) {
                    $var19 = new nms_NBTTagList;
                    if ($rt_s(347) !== null)
                        $var19.$name = $rt_s(347);
                    else
                        $var19.$name = $rt_s(3);
                    $var23 = new ju_ArrayList;
                    $var23.$array = $rt_createArray(jl_Object, 10);
                    $var19.$tagList = $var23;
                } else {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    if ($rt_s(347) !== null) {
                        $z = jl_String_hashCode($rt_s(347));
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$z & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $z) {
                                $var19 = $var23.$key;
                                if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                    } else {
                        $var23 = $var23.$elementData.data[0];
                        while ($var23 !== null && $var23.$key !== null) {
                            $var23 = $var23.$next3;
                        }
                    }
                    $var19 = $var23 === null ? null : $var23.$value0;
                }
                if ($var19 !== null) {
                    $var21 = 0;
                    $var23 = $var19.$tagList;
                    $x = $rt_compare($var21, $var23.$size0);
                    if ($x < 0) {
                        if ($var21 >= 0 && $x < 0) {
                            $var24 = $var23.$array.data[$var21];
                            $ptr = 2;
                            continue main;
                        }
                        $par1World = new jl_IndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                }
                a: {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    if (!$rt_s(348).$hashCode1) {
                        $x = 0;
                        while (true) {
                            if ($x >= $rt_s(348).$nativeString.length)
                                break a;
                            $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                            $x = $x + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(348).$hashCode1;
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var7) {
                        b: {
                            $var19 = $var23.$key;
                            if ($rt_s(348) !== $var19) {
                                if ($rt_s(348) === $var19)
                                    $x = 1;
                                else if (!($var19 instanceof jl_String))
                                    $x = 0;
                                else {
                                    $var19 = $var19;
                                    $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                }
                                if (!$x) {
                                    $x = 0;
                                    break b;
                                }
                            }
                            $x = 1;
                        }
                        if ($x)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                $x = $var23 === null ? 0 : 1;
                c: {
                    if ($x) {
                        d: {
                            $var23 = $par2NBTTagCompound.$tagMap;
                            if (!$rt_s(348).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(348).$nativeString.length)
                                        break d;
                                    $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(348).$hashCode1;
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $var7) {
                                e: {
                                    $var19 = $var23.$key;
                                    if ($rt_s(348) !== $var19) {
                                        if ($rt_s(348) === $var19)
                                            $x = 1;
                                        else if (!($var19 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var19 = $var19;
                                            $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break e;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                        if ($var23 === null ? 0 : 1) {
                            $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
                            if ($rt_s(348) === null) {
                                $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                                while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                                    $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                                }
                            } else {
                                f: {
                                    if (!$rt_s(348).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(348).$nativeString.length)
                                                break f;
                                            $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(348).$hashCode1;
                                var$7 = $par2NBTTagCompound.$elementData.data;
                                $par2NBTTagCompound = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($par2NBTTagCompound !== null) {
                                    if ($par2NBTTagCompound.$origKeyHash == $var7) {
                                        g: {
                                            $var23 = $par2NBTTagCompound.$key;
                                            if ($rt_s(348) !== $var23) {
                                                if ($rt_s(348) === $var23)
                                                    $x = 1;
                                                else if ($var23 instanceof jl_String) {
                                                    $var23 = $var23;
                                                    $x = $rt_s(348).$nativeString !== $var23.$nativeString ? 0 : 1;
                                                } else
                                                    $x = 0;
                                                if (!$x) {
                                                    $x = 0;
                                                    break g;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                                }
                            }
                            $var23 = $par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0;
                        } else {
                            $var23 = new nms_NBTTagList;
                            if ($rt_s(348) !== null)
                                $var23.$name = $rt_s(348);
                            else
                                $var23.$name = $rt_s(3);
                            $par2NBTTagCompound = new ju_ArrayList;
                            $par2NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                            $var23.$tagList = $par2NBTTagCompound;
                        }
                        if ($var23 !== null) {
                            $var25 = 0;
                            while (true) {
                                $par2NBTTagCompound = $var23.$tagList;
                                $x = $rt_compare($var25, $par2NBTTagCompound.$size0);
                                if ($x >= 0)
                                    break c;
                                if ($var25 < 0)
                                    break;
                                if ($x >= 0)
                                    break;
                                h: {
                                    $var27 = $par2NBTTagCompound.$array.data[$var25];
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(349).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(349).$nativeString.length)
                                                break h;
                                            $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(349).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        i: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(349) !== $var17) {
                                                if ($rt_s(349) !== $var17) {
                                                    if ($var17 instanceof jl_String) {
                                                        $var17 = $var17;
                                                        $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    } else
                                                        $x = 0;
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break i;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if ($var19 === null ? 0 : 1) {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(349) !== null) {
                                        j: {
                                            if (!$rt_s(349).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(349).$nativeString.length)
                                                        break j;
                                                    $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(349).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                k: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(349) !== $var17) {
                                                        if ($rt_s(349) !== $var17) {
                                                            if ($var17 instanceof jl_String) {
                                                                $var17 = $var17;
                                                                $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                            } else
                                                                $x = 0;
                                                        } else
                                                            $x = 1;
                                                        if (!$x) {
                                                            $x = 0;
                                                            break k;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var21 = ($var19 === null ? null : $var19.$value0).$data;
                                } else
                                    $var21 = 0;
                                l: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(350).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(350).$nativeString.length)
                                                break l;
                                            $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(350).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        m: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(350) !== $var17) {
                                                if ($rt_s(350) !== $var17) {
                                                    if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break m;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if ($var19 === null ? 0 : 1) {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(350) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        n: {
                                            if (!$rt_s(350).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(350).$nativeString.length)
                                                        break n;
                                                    $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(350).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                o: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(350) !== $var17) {
                                                        if ($rt_s(350) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break o;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var10 = ($var19 === null ? null : $var19.$value0).$data;
                                } else
                                    $var10 = 0;
                                p: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(351).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(351).$nativeString.length)
                                                break p;
                                            $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(351).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        q: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(351) !== $var17) {
                                                if ($rt_s(351) !== $var17) {
                                                    if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break q;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if (!($var19 === null ? 0 : 1))
                                    $var9 = 0;
                                else {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(351) !== null) {
                                        r: {
                                            if (!$rt_s(351).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(351).$nativeString.length)
                                                        break r;
                                                    $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(351).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                s: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(351) !== $var17) {
                                                        if ($rt_s(351) !== $var17) {
                                                            if ($var17 instanceof jl_String) {
                                                                $var17 = $var17;
                                                                $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                            } else
                                                                $x = 0;
                                                        } else
                                                            $x = 1;
                                                        if (!$x) {
                                                            $x = 0;
                                                            break s;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var9 = ($var19 === null ? null : $var19.$value0).$data;
                                }
                                t: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(352).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(352).$nativeString.length)
                                                break t;
                                            $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(352).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        u: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(352) !== $var17) {
                                                if ($rt_s(352) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break u;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if ($var19 === null ? 0 : 1) {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(352) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        v: {
                                            if (!$rt_s(352).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(352).$nativeString.length)
                                                        break v;
                                                    $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(352).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                w: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(352) !== $var17) {
                                                        if ($rt_s(352) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break w;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var12 = ($var19 === null ? null : $var19.$value0).$data;
                                } else
                                    $var12 = 0;
                                x: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(353).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(353).$nativeString.length)
                                                break x;
                                            $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(353).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        y: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(353) !== $var17) {
                                                if ($rt_s(353) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break y;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if (!($var19 === null ? 0 : 1))
                                    $var7 = 0;
                                else {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(353) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        z: {
                                            if (!$rt_s(353).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(353).$nativeString.length)
                                                        break z;
                                                    $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(353).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                ba: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(353) !== $var17) {
                                                        if ($rt_s(353) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break ba;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var7 = ($var19 === null ? null : $var19.$value0).$data;
                                }
                                bb: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(354).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(354).$nativeString.length)
                                                break bb;
                                            $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var18 = $rt_s(354).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var18) {
                                        bc: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(354) !== $var17) {
                                                if ($rt_s(354) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break bc;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if (!($var19 === null ? 0 : 1))
                                    $x = 0;
                                else {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(354) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        bd: {
                                            if (!$rt_s(354).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(354).$nativeString.length)
                                                        break bd;
                                                    $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var18 = $rt_s(354).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var18) {
                                                be: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(354) !== $var17) {
                                                        if ($rt_s(354) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break be;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $x = ($var19 === null ? null : $var19.$value0).$data;
                                }
                                nms_WorldServer_scheduleBlockUpdateFromLoad($par1World, $var21, $var10, $var9, $var12, $var7, $x);
                                $var25 = $var25 + 1 | 0;
                            }
                            $par1World = new jl_IndexOutOfBoundsException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                    }
                }
                return $var5;
            }
            if ($var10 < 0)
                break;
            if ($x >= 0)
                break;
            $var11 = $var23.$array.data[$var10];
            $var19 = $var11.$tagMap;
            $z = jl_String_hashCode($rt_s(355));
            var$7 = $var19.$elementData.data;
            $var19 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var19 !== null) {
                if ($var19.$origKeyHash == $z) {
                    $var17 = $var19.$key;
                    if ($rt_s(355) !== $var17 && !jl_String_equals($rt_s(355), $var17) ? 0 : 1)
                        break;
                }
                $var19 = $var19.$next3;
            }
            if ($var19 === null ? 0 : 1) {
                $var19 = $var11.$tagMap;
                if ($rt_s(355) === null) {
                    $var19 = $var19.$elementData.data[0];
                    while ($var19 !== null && $var19.$key !== null) {
                        $var19 = $var19.$next3;
                    }
                } else {
                    $z = jl_String_hashCode($rt_s(355));
                    var$7 = $var19.$elementData.data;
                    $var19 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var19 !== null) {
                        if ($var19.$origKeyHash == $z) {
                            $var17 = $var19.$key;
                            if ($rt_s(355) !== $var17 && !jl_String_equals($rt_s(355), $var17) ? 0 : 1)
                                break;
                        }
                        $var19 = $var19.$next3;
                    }
                }
                $var12 = ($var19 === null ? null : $var19.$value0).$data0;
            } else
                $var12 = 0;
            $var13 = nms_ExtendedBlockStorage__init_($var12 << 4, $var9);
            $var19 = $var11.$tagMap;
            $z = jl_String_hashCode($rt_s(356));
            var$7 = $var19.$elementData.data;
            $var19 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var19 !== null) {
                if ($var19.$origKeyHash == $z) {
                    $var17 = $var19.$key;
                    if ($rt_s(356) !== $var17 && !jl_String_equals($rt_s(356), $var17) ? 0 : 1)
                        break;
                }
                $var19 = $var19.$next3;
            }
            if (!($var19 === null ? 0 : 1))
                var$7 = $rt_createByteArray(0);
            else {
                $var19 = $var11.$tagMap;
                if ($rt_s(356) !== null) {
                    $z = jl_String_hashCode($rt_s(356));
                    var$7 = $var19.$elementData.data;
                    $var19 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var19 !== null) {
                        if ($var19.$origKeyHash == $z) {
                            $var17 = $var19.$key;
                            if ($rt_s(356) !== $var17 && !jl_String_equals($rt_s(356), $var17) ? 0 : 1)
                                break;
                        }
                        $var19 = $var19.$next3;
                    }
                } else {
                    $var19 = $var19.$elementData.data[0];
                    while ($var19 !== null && $var19.$key !== null) {
                        $var19 = $var19.$next3;
                    }
                }
                var$7 = ($var19 === null ? null : $var19.$value0).$byteArray;
            }
            $var13.$blockLSBArray = var$7;
            $var19 = $var11.$tagMap;
            $z = jl_String_hashCode($rt_s(357));
            var$7 = $var19.$elementData.data;
            $var19 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var19 !== null) {
                if ($var19.$origKeyHash == $z) {
                    $var17 = $var19.$key;
                    if ($rt_s(357) !== $var17 && !jl_String_equals($rt_s(357), $var17) ? 0 : 1)
                        break;
                }
                $var19 = $var19.$next3;
            }
            if ($var19 === null ? 0 : 1) {
                $var19 = new nms_NibbleArray;
                $var23 = $var11.$tagMap;
                $z = jl_String_hashCode($rt_s(357));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var27 = $var23.$key;
                        if ($rt_s(357) !== $var27 && !jl_String_equals($rt_s(357), $var27) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if (!($var23 === null ? 0 : 1))
                    var$7 = $rt_createByteArray(0);
                else {
                    $var23 = $var11.$tagMap;
                    if ($rt_s(357) === null) {
                        $var23 = $var23.$elementData.data[0];
                        while ($var23 !== null && $var23.$key !== null) {
                            $var23 = $var23.$next3;
                        }
                    } else {
                        $z = jl_String_hashCode($rt_s(357));
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$z & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $z) {
                                $var27 = $var23.$key;
                                if ($rt_s(357) !== $var27 && !jl_String_equals($rt_s(357), $var27) ? 0 : 1)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                    }
                    var$7 = ($var23 === null ? null : $var23.$value0).$byteArray;
                }
                $var19.$data8 = var$7;
                $var19.$depthBits = 4;
                $var19.$depthBitsPlusFour = 8;
                $var13.$blockMSBArray = $var19;
            }
            $var23 = new nms_NibbleArray;
            $var17 = $var11.$tagMap;
            $z = jl_String_hashCode($rt_s(55));
            var$7 = $var17.$elementData.data;
            $var17 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var17 !== null) {
                if ($var17.$origKeyHash == $z) {
                    $var27 = $var17.$key;
                    if ($rt_s(55) !== $var27 && !jl_String_equals($rt_s(55), $var27) ? 0 : 1)
                        break;
                }
                $var17 = $var17.$next3;
            }
            if (!($var17 === null ? 0 : 1))
                var$7 = $rt_createByteArray(0);
            else {
                $var17 = $var11.$tagMap;
                if ($rt_s(55) === null) {
                    $var17 = $var17.$elementData.data[0];
                    while ($var17 !== null && $var17.$key !== null) {
                        $var17 = $var17.$next3;
                    }
                } else {
                    $z = jl_String_hashCode($rt_s(55));
                    var$7 = $var17.$elementData.data;
                    $var17 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $z) {
                            $var27 = $var17.$key;
                            if ($rt_s(55) !== $var27 && !jl_String_equals($rt_s(55), $var27) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                }
                var$7 = ($var17 === null ? null : $var17.$value0).$byteArray;
            }
            $var23.$data8 = var$7;
            $var23.$depthBits = 4;
            $var23.$depthBitsPlusFour = 8;
            $var13.$blockMetadataArray = $var23;
            $var23 = new nms_NibbleArray;
            $var17 = $var11.$tagMap;
            $z = jl_String_hashCode($rt_s(358));
            var$7 = $var17.$elementData.data;
            $var17 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var17 !== null) {
                if ($var17.$origKeyHash == $z) {
                    $var27 = $var17.$key;
                    if ($rt_s(358) !== $var27 && !jl_String_equals($rt_s(358), $var27) ? 0 : 1)
                        break;
                }
                $var17 = $var17.$next3;
            }
            if (!($var17 === null ? 0 : 1))
                var$7 = $rt_createByteArray(0);
            else {
                $var17 = $var11.$tagMap;
                if ($rt_s(358) === null) {
                    $var17 = $var17.$elementData.data[0];
                    while ($var17 !== null && $var17.$key !== null) {
                        $var17 = $var17.$next3;
                    }
                } else {
                    $z = jl_String_hashCode($rt_s(358));
                    var$7 = $var17.$elementData.data;
                    $var17 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $z) {
                            $var27 = $var17.$key;
                            if ($rt_s(358) !== $var27 && !jl_String_equals($rt_s(358), $var27) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                }
                var$7 = ($var17 === null ? null : $var17.$value0).$byteArray;
            }
            $var23.$data8 = var$7;
            $var23.$depthBits = 4;
            $var23.$depthBitsPlusFour = 8;
            $var13.$blocklightArray = $var23;
            if ($var9) {
                $var17 = new nms_NibbleArray;
                $var23 = $var11.$tagMap;
                $z = jl_String_hashCode($rt_s(359));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(359) !== $var19 && !jl_String_equals($rt_s(359), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if (!($var23 === null ? 0 : 1))
                    var$7 = $rt_createByteArray(0);
                else {
                    $var23 = $var11.$tagMap;
                    if ($rt_s(359) === null) {
                        $var23 = $var23.$elementData.data[0];
                        while ($var23 !== null && $var23.$key !== null) {
                            $var23 = $var23.$next3;
                        }
                    } else {
                        $z = jl_String_hashCode($rt_s(359));
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$z & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $z) {
                                $var19 = $var23.$key;
                                if ($rt_s(359) !== $var19 && !jl_String_equals($rt_s(359), $var19) ? 0 : 1)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                    }
                    var$7 = ($var23 === null ? null : $var23.$value0).$byteArray;
                }
                $var17.$data8 = var$7;
                $var17.$depthBits = 4;
                $var17.$depthBitsPlusFour = 8;
                $var13.$skylightArray = $var17;
            }
            nms_ExtendedBlockStorage_removeInvalidBlocks($var13);
            var$13[$var12] = $var13;
            $var10 = $var10 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 1:
        $tmp = nms_EntityList_createEntityFromNBT($var15, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $var22 = $tmp;
        $var5.$hasEntities = 1;
        if ($var22 !== null) {
            nms_Chunk_addEntity($var5, $var22);
            bf: {
                $var23 = $var15.$tagMap;
                if (!$rt_s(360).$hashCode1) {
                    $x = 0;
                    while (true) {
                        if ($x >= $rt_s(360).$nativeString.length)
                            break bf;
                        $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt($x) | 0;
                        $x = $x + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(360).$hashCode1;
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $var7) {
                    bg: {
                        $var19 = $var23.$key;
                        if ($rt_s(360) !== $var19) {
                            if ($rt_s(360) === $var19)
                                $x = 1;
                            else if (!($var19 instanceof jl_String))
                                $x = 0;
                            else {
                                $var19 = $var19;
                                $x = $rt_s(360).$nativeString !== $var19.$nativeString ? 0 : 1;
                            }
                            if (!$x) {
                                $x = 0;
                                break bg;
                            }
                        }
                        $x = 1;
                    }
                    if ($x)
                        break;
                }
                $var23 = $var23.$next3;
            }
            if ($var23 === null ? 0 : 1) {
                $var23 = $var15.$tagMap;
                $z = jl_String_hashCode($rt_s(360));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if (!($var23 === null ? 0 : 1)) {
                    $var23 = new nms_NBTTagCompound;
                    if ($rt_s(360) !== null)
                        $var23.$name = $rt_s(360);
                    else
                        $var23.$name = $rt_s(3);
                    $var23.$tagMap = ju_HashMap__init_();
                } else {
                    $var23 = $var15.$tagMap;
                    if ($rt_s(360) === null) {
                        $var23 = $var23.$elementData.data[0];
                        while ($var23 !== null && $var23.$key !== null) {
                            $var23 = $var23.$next3;
                        }
                    } else {
                        $z = jl_String_hashCode($rt_s(360));
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$z & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $z) {
                                $var19 = $var23.$key;
                                if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                    }
                    $var23 = $var23 === null ? null : $var23.$value0;
                }
                $ptr = 4;
                continue main;
            }
        }
        $var18 = $var18 + 1 | 0;
        $var23 = $var17.$tagList;
        $x = $rt_compare($var18, $var23.$size0);
        if ($x < 0) {
            if ($var18 >= 0 && $x < 0) {
                $var15 = $var23.$array.data[$var18];
                continue main;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var23 = $par2NBTTagCompound.$tagMap;
        $z = jl_String_hashCode($rt_s(347));
        var$7 = $var23.$elementData.data;
        $var23 = var$7[$z & (var$7.length - 1 | 0)];
        while ($var23 !== null) {
            if ($var23.$origKeyHash == $z) {
                $var19 = $var23.$key;
                if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                    break;
            }
            $var23 = $var23.$next3;
        }
        if (!($var23 === null ? 0 : 1)) {
            $var19 = new nms_NBTTagList;
            if ($rt_s(347) !== null)
                $var19.$name = $rt_s(347);
            else
                $var19.$name = $rt_s(3);
            $var23 = new ju_ArrayList;
            $var23.$array = $rt_createArray(jl_Object, 10);
            $var19.$tagList = $var23;
        } else {
            $var23 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(347) !== null) {
                $z = jl_String_hashCode($rt_s(347));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
            } else {
                $var23 = $var23.$elementData.data[0];
                while ($var23 !== null && $var23.$key !== null) {
                    $var23 = $var23.$next3;
                }
            }
            $var19 = $var23 === null ? null : $var23.$value0;
        }
        if ($var19 !== null) {
            $var21 = 0;
            $var23 = $var19.$tagList;
            $x = $rt_compare($var21, $var23.$size0);
            if ($x < 0) {
                if ($var21 >= 0 && $x < 0) {
                    $var24 = $var23.$array.data[$var21];
                    $ptr = 2;
                    continue main;
                }
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
        }
        bh: {
            $var23 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(348).$hashCode1) {
                $x = 0;
                while (true) {
                    if ($x >= $rt_s(348).$nativeString.length)
                        break bh;
                    $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                    $x = $x + 1 | 0;
                }
            }
        }
        $var7 = $rt_s(348).$hashCode1;
        var$7 = $var23.$elementData.data;
        $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
        while ($var23 !== null) {
            if ($var23.$origKeyHash == $var7) {
                bi: {
                    $var19 = $var23.$key;
                    if ($rt_s(348) !== $var19) {
                        if ($rt_s(348) === $var19)
                            $x = 1;
                        else if (!($var19 instanceof jl_String))
                            $x = 0;
                        else {
                            $var19 = $var19;
                            $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                        }
                        if (!$x) {
                            $x = 0;
                            break bi;
                        }
                    }
                    $x = 1;
                }
                if ($x)
                    break;
            }
            $var23 = $var23.$next3;
        }
        $x = $var23 === null ? 0 : 1;
        bj: {
            if ($x) {
                bk: {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    if (!$rt_s(348).$hashCode1) {
                        $x = 0;
                        while (true) {
                            if ($x >= $rt_s(348).$nativeString.length)
                                break bk;
                            $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                            $x = $x + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(348).$hashCode1;
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var7) {
                        bl: {
                            $var19 = $var23.$key;
                            if ($rt_s(348) !== $var19) {
                                if ($rt_s(348) === $var19)
                                    $x = 1;
                                else if (!($var19 instanceof jl_String))
                                    $x = 0;
                                else {
                                    $var19 = $var19;
                                    $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                }
                                if (!$x) {
                                    $x = 0;
                                    break bl;
                                }
                            }
                            $x = 1;
                        }
                        if ($x)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if ($var23 === null ? 0 : 1) {
                    $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
                    if ($rt_s(348) === null) {
                        $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                        while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                            $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                        }
                    } else {
                        bm: {
                            if (!$rt_s(348).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(348).$nativeString.length)
                                        break bm;
                                    $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(348).$hashCode1;
                        var$7 = $par2NBTTagCompound.$elementData.data;
                        $par2NBTTagCompound = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($par2NBTTagCompound !== null) {
                            if ($par2NBTTagCompound.$origKeyHash == $var7) {
                                bn: {
                                    $var23 = $par2NBTTagCompound.$key;
                                    if ($rt_s(348) !== $var23) {
                                        if ($rt_s(348) === $var23)
                                            $x = 1;
                                        else if ($var23 instanceof jl_String) {
                                            $var23 = $var23;
                                            $x = $rt_s(348).$nativeString !== $var23.$nativeString ? 0 : 1;
                                        } else
                                            $x = 0;
                                        if (!$x) {
                                            $x = 0;
                                            break bn;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                        }
                    }
                    $var23 = $par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0;
                } else {
                    $var23 = new nms_NBTTagList;
                    if ($rt_s(348) !== null)
                        $var23.$name = $rt_s(348);
                    else
                        $var23.$name = $rt_s(3);
                    $par2NBTTagCompound = new ju_ArrayList;
                    $par2NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                    $var23.$tagList = $par2NBTTagCompound;
                }
                if ($var23 !== null) {
                    $var25 = 0;
                    while (true) {
                        $par2NBTTagCompound = $var23.$tagList;
                        $x = $rt_compare($var25, $par2NBTTagCompound.$size0);
                        if ($x >= 0)
                            break bj;
                        if ($var25 < 0)
                            break;
                        if ($x >= 0)
                            break;
                        bo: {
                            $var27 = $par2NBTTagCompound.$array.data[$var25];
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(349).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(349).$nativeString.length)
                                        break bo;
                                    $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(349).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                bp: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(349) !== $var17) {
                                        if ($rt_s(349) !== $var17) {
                                            if ($var17 instanceof jl_String) {
                                                $var17 = $var17;
                                                $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            } else
                                                $x = 0;
                                        } else
                                            $x = 1;
                                        if (!$x) {
                                            $x = 0;
                                            break bp;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if ($var19 === null ? 0 : 1) {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(349) !== null) {
                                bq: {
                                    if (!$rt_s(349).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(349).$nativeString.length)
                                                break bq;
                                            $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(349).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        br: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(349) !== $var17) {
                                                if ($rt_s(349) !== $var17) {
                                                    if ($var17 instanceof jl_String) {
                                                        $var17 = $var17;
                                                        $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    } else
                                                        $x = 0;
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break br;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var21 = ($var19 === null ? null : $var19.$value0).$data;
                        } else
                            $var21 = 0;
                        bs: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(350).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(350).$nativeString.length)
                                        break bs;
                                    $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(350).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                bt: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(350) !== $var17) {
                                        if ($rt_s(350) !== $var17) {
                                            if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            $x = 1;
                                        if (!$x) {
                                            $x = 0;
                                            break bt;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if ($var19 === null ? 0 : 1) {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(350) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                bu: {
                                    if (!$rt_s(350).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(350).$nativeString.length)
                                                break bu;
                                            $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(350).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        bv: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(350) !== $var17) {
                                                if ($rt_s(350) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break bv;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var10 = ($var19 === null ? null : $var19.$value0).$data;
                        } else
                            $var10 = 0;
                        bw: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(351).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(351).$nativeString.length)
                                        break bw;
                                    $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(351).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                bx: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(351) !== $var17) {
                                        if ($rt_s(351) !== $var17) {
                                            if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            $x = 1;
                                        if (!$x) {
                                            $x = 0;
                                            break bx;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if (!($var19 === null ? 0 : 1))
                            $var9 = 0;
                        else {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(351) !== null) {
                                by: {
                                    if (!$rt_s(351).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(351).$nativeString.length)
                                                break by;
                                            $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(351).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        bz: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(351) !== $var17) {
                                                if ($rt_s(351) !== $var17) {
                                                    if ($var17 instanceof jl_String) {
                                                        $var17 = $var17;
                                                        $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    } else
                                                        $x = 0;
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break bz;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var9 = ($var19 === null ? null : $var19.$value0).$data;
                        }
                        bA: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(352).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(352).$nativeString.length)
                                        break bA;
                                    $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(352).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                bB: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(352) !== $var17) {
                                        if ($rt_s(352) === $var17)
                                            $x = 1;
                                        else if (!($var17 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var17 = $var17;
                                            $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break bB;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if ($var19 === null ? 0 : 1) {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(352) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                bC: {
                                    if (!$rt_s(352).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(352).$nativeString.length)
                                                break bC;
                                            $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(352).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        bD: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(352) !== $var17) {
                                                if ($rt_s(352) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break bD;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var12 = ($var19 === null ? null : $var19.$value0).$data;
                        } else
                            $var12 = 0;
                        bE: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(353).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(353).$nativeString.length)
                                        break bE;
                                    $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(353).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                bF: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(353) !== $var17) {
                                        if ($rt_s(353) === $var17)
                                            $x = 1;
                                        else if (!($var17 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var17 = $var17;
                                            $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break bF;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if (!($var19 === null ? 0 : 1))
                            $var7 = 0;
                        else {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(353) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                b: {
                                    if (!$rt_s(353).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(353).$nativeString.length)
                                                break b;
                                            $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(353).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        bG: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(353) !== $var17) {
                                                if ($rt_s(353) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break bG;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var7 = ($var19 === null ? null : $var19.$value0).$data;
                        }
                        bH: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(354).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(354).$nativeString.length)
                                        break bH;
                                    $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var18 = $rt_s(354).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var18) {
                                bI: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(354) !== $var17) {
                                        if ($rt_s(354) === $var17)
                                            $x = 1;
                                        else if (!($var17 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var17 = $var17;
                                            $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break bI;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if (!($var19 === null ? 0 : 1))
                            $x = 0;
                        else {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(354) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                g: {
                                    if (!$rt_s(354).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(354).$nativeString.length)
                                                break g;
                                            $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var18 = $rt_s(354).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var18) {
                                        bJ: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(354) !== $var17) {
                                                if ($rt_s(354) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break bJ;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $x = ($var19 === null ? null : $var19.$value0).$data;
                        }
                        nms_WorldServer_scheduleBlockUpdateFromLoad($par1World, $var21, $var10, $var9, $var12, $var7, $x);
                        $var25 = $var25 + 1 | 0;
                    }
                    $par1World = new jl_IndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
            }
        }
        return $var5;
    case 2:
        $tmp = nms_TileEntity_createAndLoadEntity($var24);
        if ($rt_suspending()) {
            break main;
        }
        $var26 = $tmp;
        if ($var26 === null) {
            $var21 = $var21 + 1 | 0;
            $var23 = $var19.$tagList;
            $x = $rt_compare($var21, $var23.$size0);
            if ($x >= 0) {
                bK: {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    if (!$rt_s(348).$hashCode1) {
                        $x = 0;
                        while (true) {
                            if ($x >= $rt_s(348).$nativeString.length)
                                break bK;
                            $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                            $x = $x + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(348).$hashCode1;
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var7) {
                        bL: {
                            $var19 = $var23.$key;
                            if ($rt_s(348) !== $var19) {
                                if ($rt_s(348) === $var19)
                                    $x = 1;
                                else if (!($var19 instanceof jl_String))
                                    $x = 0;
                                else {
                                    $var19 = $var19;
                                    $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                }
                                if (!$x) {
                                    $x = 0;
                                    break bL;
                                }
                            }
                            $x = 1;
                        }
                        if ($x)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                $x = $var23 === null ? 0 : 1;
                bM: {
                    if ($x) {
                        bN: {
                            $var23 = $par2NBTTagCompound.$tagMap;
                            if (!$rt_s(348).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(348).$nativeString.length)
                                        break bN;
                                    $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(348).$hashCode1;
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $var7) {
                                bO: {
                                    $var19 = $var23.$key;
                                    if ($rt_s(348) !== $var19) {
                                        if ($rt_s(348) === $var19)
                                            $x = 1;
                                        else if (!($var19 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var19 = $var19;
                                            $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break bO;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                        if ($var23 === null ? 0 : 1) {
                            $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
                            if ($rt_s(348) === null) {
                                $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                                while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                                    $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                                }
                            } else {
                                bP: {
                                    if (!$rt_s(348).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(348).$nativeString.length)
                                                break bP;
                                            $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(348).$hashCode1;
                                var$7 = $par2NBTTagCompound.$elementData.data;
                                $par2NBTTagCompound = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($par2NBTTagCompound !== null) {
                                    if ($par2NBTTagCompound.$origKeyHash == $var7) {
                                        bQ: {
                                            $var23 = $par2NBTTagCompound.$key;
                                            if ($rt_s(348) !== $var23) {
                                                if ($rt_s(348) === $var23)
                                                    $x = 1;
                                                else if ($var23 instanceof jl_String) {
                                                    $var23 = $var23;
                                                    $x = $rt_s(348).$nativeString !== $var23.$nativeString ? 0 : 1;
                                                } else
                                                    $x = 0;
                                                if (!$x) {
                                                    $x = 0;
                                                    break bQ;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                                }
                            }
                            $var23 = $par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0;
                        } else {
                            $var23 = new nms_NBTTagList;
                            if ($rt_s(348) !== null)
                                $var23.$name = $rt_s(348);
                            else
                                $var23.$name = $rt_s(3);
                            $par2NBTTagCompound = new ju_ArrayList;
                            $par2NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                            $var23.$tagList = $par2NBTTagCompound;
                        }
                        if ($var23 !== null) {
                            $var25 = 0;
                            while (true) {
                                $par2NBTTagCompound = $var23.$tagList;
                                $x = $rt_compare($var25, $par2NBTTagCompound.$size0);
                                if ($x >= 0)
                                    break bM;
                                if ($var25 < 0)
                                    break;
                                if ($x >= 0)
                                    break;
                                bR: {
                                    $var27 = $par2NBTTagCompound.$array.data[$var25];
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(349).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(349).$nativeString.length)
                                                break bR;
                                            $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(349).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        bS: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(349) !== $var17) {
                                                if ($rt_s(349) !== $var17) {
                                                    if ($var17 instanceof jl_String) {
                                                        $var17 = $var17;
                                                        $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    } else
                                                        $x = 0;
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break bS;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if ($var19 === null ? 0 : 1) {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(349) !== null) {
                                        bT: {
                                            if (!$rt_s(349).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(349).$nativeString.length)
                                                        break bT;
                                                    $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(349).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                bU: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(349) !== $var17) {
                                                        if ($rt_s(349) !== $var17) {
                                                            if ($var17 instanceof jl_String) {
                                                                $var17 = $var17;
                                                                $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                            } else
                                                                $x = 0;
                                                        } else
                                                            $x = 1;
                                                        if (!$x) {
                                                            $x = 0;
                                                            break bU;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var21 = ($var19 === null ? null : $var19.$value0).$data;
                                } else
                                    $var21 = 0;
                                bV: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(350).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(350).$nativeString.length)
                                                break bV;
                                            $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(350).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        bW: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(350) !== $var17) {
                                                if ($rt_s(350) !== $var17) {
                                                    if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break bW;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if ($var19 === null ? 0 : 1) {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(350) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        bX: {
                                            if (!$rt_s(350).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(350).$nativeString.length)
                                                        break bX;
                                                    $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(350).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                bY: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(350) !== $var17) {
                                                        if ($rt_s(350) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break bY;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var10 = ($var19 === null ? null : $var19.$value0).$data;
                                } else
                                    $var10 = 0;
                                bZ: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(351).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(351).$nativeString.length)
                                                break bZ;
                                            $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(351).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        b0: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(351) !== $var17) {
                                                if ($rt_s(351) !== $var17) {
                                                    if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break b0;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if (!($var19 === null ? 0 : 1))
                                    $var9 = 0;
                                else {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(351) !== null) {
                                        b1: {
                                            if (!$rt_s(351).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(351).$nativeString.length)
                                                        break b1;
                                                    $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(351).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                b2: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(351) !== $var17) {
                                                        if ($rt_s(351) !== $var17) {
                                                            if ($var17 instanceof jl_String) {
                                                                $var17 = $var17;
                                                                $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                            } else
                                                                $x = 0;
                                                        } else
                                                            $x = 1;
                                                        if (!$x) {
                                                            $x = 0;
                                                            break b2;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var9 = ($var19 === null ? null : $var19.$value0).$data;
                                }
                                bt: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(352).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(352).$nativeString.length)
                                                break bt;
                                            $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(352).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        b3: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(352) !== $var17) {
                                                if ($rt_s(352) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break b3;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if ($var19 === null ? 0 : 1) {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(352) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        bv: {
                                            if (!$rt_s(352).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(352).$nativeString.length)
                                                        break bv;
                                                    $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(352).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                b4: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(352) !== $var17) {
                                                        if ($rt_s(352) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break b4;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var12 = ($var19 === null ? null : $var19.$value0).$data;
                                } else
                                    $var12 = 0;
                                bx: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(353).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(353).$nativeString.length)
                                                break bx;
                                            $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(353).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        b5: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(353) !== $var17) {
                                                if ($rt_s(353) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break b5;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if (!($var19 === null ? 0 : 1))
                                    $var7 = 0;
                                else {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(353) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        b6: {
                                            if (!$rt_s(353).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(353).$nativeString.length)
                                                        break b6;
                                                    $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var7 = $rt_s(353).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var7) {
                                                b7: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(353) !== $var17) {
                                                        if ($rt_s(353) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break b7;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $var7 = ($var19 === null ? null : $var19.$value0).$data;
                                }
                                b8: {
                                    $var19 = $var27.$tagMap;
                                    if (!$rt_s(354).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(354).$nativeString.length)
                                                break b8;
                                            $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var18 = $rt_s(354).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var18) {
                                        b9: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(354) !== $var17) {
                                                if ($rt_s(354) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break b9;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                                if (!($var19 === null ? 0 : 1))
                                    $x = 0;
                                else {
                                    $var19 = $var27.$tagMap;
                                    if ($rt_s(354) === null) {
                                        $var19 = $var19.$elementData.data[0];
                                        while ($var19 !== null && $var19.$key !== null) {
                                            $var19 = $var19.$next3;
                                        }
                                    } else {
                                        b$: {
                                            if (!$rt_s(354).$hashCode1) {
                                                $x = 0;
                                                while (true) {
                                                    if ($x >= $rt_s(354).$nativeString.length)
                                                        break b$;
                                                    $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                                    $x = $x + 1 | 0;
                                                }
                                            }
                                        }
                                        $var18 = $rt_s(354).$hashCode1;
                                        var$7 = $var19.$elementData.data;
                                        $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                        while ($var19 !== null) {
                                            if ($var19.$origKeyHash == $var18) {
                                                b_: {
                                                    $var17 = $var19.$key;
                                                    if ($rt_s(354) !== $var17) {
                                                        if ($rt_s(354) === $var17)
                                                            $x = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $x = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$x) {
                                                            $x = 0;
                                                            break b_;
                                                        }
                                                    }
                                                    $x = 1;
                                                }
                                                if ($x)
                                                    break;
                                            }
                                            $var19 = $var19.$next3;
                                        }
                                    }
                                    $x = ($var19 === null ? null : $var19.$value0).$data;
                                }
                                nms_WorldServer_scheduleBlockUpdateFromLoad($par1World, $var21, $var10, $var9, $var12, $var7, $x);
                                $var25 = $var25 + 1 | 0;
                            }
                            $par1World = new jl_IndexOutOfBoundsException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                    }
                }
                return $var5;
            }
            if ($var21 >= 0 && $x < 0) {
                $var24 = $var23.$array.data[$var21];
                continue main;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $x = $var26.$xCoord0 - ($var5.$xPosition0 * 16 | 0) | 0;
        $z = $var26.$yCoord0;
        $var7 = $var26.$zCoord0 - ($var5.$zPosition0 * 16 | 0) | 0;
        $ptr = 3;
    case 3:
        nms_Chunk_setChunkBlockTileEntity($var5, $x, $z, $var7, $var26);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$isChunkLoaded) {
            $var23 = $var5.$worldObj1.$loadedTileEntityList;
            ju_ArrayList_ensureCapacity($var23, $var23.$size0 + 1 | 0);
            var$7 = $var23.$array.data;
            $z = $var23.$size0;
            $var23.$size0 = $z + 1 | 0;
            var$7[$z] = $var26;
            $var23.$modCount = $var23.$modCount + 1 | 0;
        }
        $var21 = $var21 + 1 | 0;
        $var23 = $var19.$tagList;
        $x = $rt_compare($var21, $var23.$size0);
        if ($x >= 0) {
            bK: {
                $var23 = $par2NBTTagCompound.$tagMap;
                if (!$rt_s(348).$hashCode1) {
                    $x = 0;
                    while (true) {
                        if ($x >= $rt_s(348).$nativeString.length)
                            break bK;
                        $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                        $x = $x + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(348).$hashCode1;
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $var7) {
                    bL: {
                        $var19 = $var23.$key;
                        if ($rt_s(348) !== $var19) {
                            if ($rt_s(348) === $var19)
                                $x = 1;
                            else if (!($var19 instanceof jl_String))
                                $x = 0;
                            else {
                                $var19 = $var19;
                                $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                            }
                            if (!$x) {
                                $x = 0;
                                break bL;
                            }
                        }
                        $x = 1;
                    }
                    if ($x)
                        break;
                }
                $var23 = $var23.$next3;
            }
            $x = $var23 === null ? 0 : 1;
            bM: {
                if ($x) {
                    bN: {
                        $var23 = $par2NBTTagCompound.$tagMap;
                        if (!$rt_s(348).$hashCode1) {
                            $x = 0;
                            while (true) {
                                if ($x >= $rt_s(348).$nativeString.length)
                                    break bN;
                                $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                $x = $x + 1 | 0;
                            }
                        }
                    }
                    $var7 = $rt_s(348).$hashCode1;
                    var$7 = $var23.$elementData.data;
                    $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                    while ($var23 !== null) {
                        if ($var23.$origKeyHash == $var7) {
                            bO: {
                                $var19 = $var23.$key;
                                if ($rt_s(348) !== $var19) {
                                    if ($rt_s(348) === $var19)
                                        $x = 1;
                                    else if (!($var19 instanceof jl_String))
                                        $x = 0;
                                    else {
                                        $var19 = $var19;
                                        $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                    }
                                    if (!$x) {
                                        $x = 0;
                                        break bO;
                                    }
                                }
                                $x = 1;
                            }
                            if ($x)
                                break;
                        }
                        $var23 = $var23.$next3;
                    }
                    if ($var23 === null ? 0 : 1) {
                        $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
                        if ($rt_s(348) === null) {
                            $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                            while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                            }
                        } else {
                            bP: {
                                if (!$rt_s(348).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(348).$nativeString.length)
                                            break bP;
                                        $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(348).$hashCode1;
                            var$7 = $par2NBTTagCompound.$elementData.data;
                            $par2NBTTagCompound = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($par2NBTTagCompound !== null) {
                                if ($par2NBTTagCompound.$origKeyHash == $var7) {
                                    bQ: {
                                        $var23 = $par2NBTTagCompound.$key;
                                        if ($rt_s(348) !== $var23) {
                                            if ($rt_s(348) === $var23)
                                                $x = 1;
                                            else if ($var23 instanceof jl_String) {
                                                $var23 = $var23;
                                                $x = $rt_s(348).$nativeString !== $var23.$nativeString ? 0 : 1;
                                            } else
                                                $x = 0;
                                            if (!$x) {
                                                $x = 0;
                                                break bQ;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                            }
                        }
                        $var23 = $par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0;
                    } else {
                        $var23 = new nms_NBTTagList;
                        if ($rt_s(348) !== null)
                            $var23.$name = $rt_s(348);
                        else
                            $var23.$name = $rt_s(3);
                        $par2NBTTagCompound = new ju_ArrayList;
                        $par2NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                        $var23.$tagList = $par2NBTTagCompound;
                    }
                    if ($var23 !== null) {
                        $var25 = 0;
                        while (true) {
                            $par2NBTTagCompound = $var23.$tagList;
                            $x = $rt_compare($var25, $par2NBTTagCompound.$size0);
                            if ($x >= 0)
                                break bM;
                            if ($var25 < 0)
                                break;
                            if ($x >= 0)
                                break;
                            bR: {
                                $var27 = $par2NBTTagCompound.$array.data[$var25];
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(349).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(349).$nativeString.length)
                                            break bR;
                                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(349).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    bS: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(349) !== $var17) {
                                            if ($rt_s(349) !== $var17) {
                                                if ($var17 instanceof jl_String) {
                                                    $var17 = $var17;
                                                    $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                } else
                                                    $x = 0;
                                            } else
                                                $x = 1;
                                            if (!$x) {
                                                $x = 0;
                                                break bS;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if ($var19 === null ? 0 : 1) {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(349) !== null) {
                                    bT: {
                                        if (!$rt_s(349).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(349).$nativeString.length)
                                                    break bT;
                                                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(349).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            bU: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(349) !== $var17) {
                                                    if ($rt_s(349) !== $var17) {
                                                        if ($var17 instanceof jl_String) {
                                                            $var17 = $var17;
                                                            $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        } else
                                                            $x = 0;
                                                    } else
                                                        $x = 1;
                                                    if (!$x) {
                                                        $x = 0;
                                                        break bU;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var21 = ($var19 === null ? null : $var19.$value0).$data;
                            } else
                                $var21 = 0;
                            bV: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(350).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(350).$nativeString.length)
                                            break bV;
                                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(350).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    bW: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(350) !== $var17) {
                                            if ($rt_s(350) !== $var17) {
                                                if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                $x = 1;
                                            if (!$x) {
                                                $x = 0;
                                                break bW;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if ($var19 === null ? 0 : 1) {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(350) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    bX: {
                                        if (!$rt_s(350).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(350).$nativeString.length)
                                                    break bX;
                                                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(350).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            bY: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(350) !== $var17) {
                                                    if ($rt_s(350) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break bY;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var10 = ($var19 === null ? null : $var19.$value0).$data;
                            } else
                                $var10 = 0;
                            bZ: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(351).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(351).$nativeString.length)
                                            break bZ;
                                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(351).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    b0: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(351) !== $var17) {
                                            if ($rt_s(351) !== $var17) {
                                                if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                $x = 1;
                                            if (!$x) {
                                                $x = 0;
                                                break b0;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if (!($var19 === null ? 0 : 1))
                                $var9 = 0;
                            else {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(351) !== null) {
                                    b1: {
                                        if (!$rt_s(351).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(351).$nativeString.length)
                                                    break b1;
                                                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(351).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            b2: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(351) !== $var17) {
                                                    if ($rt_s(351) !== $var17) {
                                                        if ($var17 instanceof jl_String) {
                                                            $var17 = $var17;
                                                            $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        } else
                                                            $x = 0;
                                                    } else
                                                        $x = 1;
                                                    if (!$x) {
                                                        $x = 0;
                                                        break b2;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var9 = ($var19 === null ? null : $var19.$value0).$data;
                            }
                            bt: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(352).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(352).$nativeString.length)
                                            break bt;
                                        $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(352).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    b3: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(352) !== $var17) {
                                            if ($rt_s(352) === $var17)
                                                $x = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$x) {
                                                $x = 0;
                                                break b3;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if ($var19 === null ? 0 : 1) {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(352) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    bv: {
                                        if (!$rt_s(352).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(352).$nativeString.length)
                                                    break bv;
                                                $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(352).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            b4: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(352) !== $var17) {
                                                    if ($rt_s(352) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break b4;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var12 = ($var19 === null ? null : $var19.$value0).$data;
                            } else
                                $var12 = 0;
                            bx: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(353).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(353).$nativeString.length)
                                            break bx;
                                        $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(353).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    b5: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(353) !== $var17) {
                                            if ($rt_s(353) === $var17)
                                                $x = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$x) {
                                                $x = 0;
                                                break b5;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if (!($var19 === null ? 0 : 1))
                                $var7 = 0;
                            else {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(353) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    b6: {
                                        if (!$rt_s(353).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(353).$nativeString.length)
                                                    break b6;
                                                $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(353).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            b7: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(353) !== $var17) {
                                                    if ($rt_s(353) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break b7;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var7 = ($var19 === null ? null : $var19.$value0).$data;
                            }
                            b8: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(354).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(354).$nativeString.length)
                                            break b8;
                                        $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var18 = $rt_s(354).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var18) {
                                    b9: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(354) !== $var17) {
                                            if ($rt_s(354) === $var17)
                                                $x = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$x) {
                                                $x = 0;
                                                break b9;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if (!($var19 === null ? 0 : 1))
                                $x = 0;
                            else {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(354) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    b$: {
                                        if (!$rt_s(354).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(354).$nativeString.length)
                                                    break b$;
                                                $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var18 = $rt_s(354).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var18) {
                                            b_: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(354) !== $var17) {
                                                    if ($rt_s(354) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break b_;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $x = ($var19 === null ? null : $var19.$value0).$data;
                            }
                            nms_WorldServer_scheduleBlockUpdateFromLoad($par1World, $var21, $var10, $var9, $var12, $var7, $x);
                            $var25 = $var25 + 1 | 0;
                        }
                        $par1World = new jl_IndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                }
            }
            return $var5;
        }
        if ($var21 >= 0 && $x < 0) {
            $var24 = $var23.$array.data[$var21];
            $ptr = 2;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 4:
        $tmp = nms_EntityList_createEntityFromNBT($var23, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if ($var16 === null) {
            $var23 = $var15.$tagMap;
            $z = jl_String_hashCode($rt_s(360));
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $z) {
                    $var19 = $var23.$key;
                    if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                        break;
                }
                $var23 = $var23.$next3;
            }
            if ($var23 === null ? 0 : 1) {
                $var23 = $var15.$tagMap;
                if ($rt_s(360) !== null) {
                    ca: {
                        if (!$rt_s(360).$hashCode1) {
                            $x = 0;
                            while (true) {
                                if ($x >= $rt_s(360).$nativeString.length)
                                    break ca;
                                $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt($x) | 0;
                                $x = $x + 1 | 0;
                            }
                        }
                    }
                    $var7 = $rt_s(360).$hashCode1;
                    var$7 = $var23.$elementData.data;
                    $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                    while ($var23 !== null) {
                        if ($var23.$origKeyHash == $var7) {
                            bM: {
                                $var19 = $var23.$key;
                                if ($rt_s(360) !== $var19) {
                                    if ($rt_s(360) !== $var19) {
                                        if ($var19 instanceof jl_String) {
                                            $var19 = $var19;
                                            $x = $rt_s(360).$nativeString !== $var19.$nativeString ? 0 : 1;
                                        } else
                                            $x = 0;
                                    } else
                                        $x = 1;
                                    if (!$x) {
                                        $x = 0;
                                        break bM;
                                    }
                                }
                                $x = 1;
                            }
                            if ($x)
                                break;
                        }
                        $var23 = $var23.$next3;
                    }
                } else {
                    $var23 = $var23.$elementData.data[0];
                    while ($var23 !== null && $var23.$key !== null) {
                        $var23 = $var23.$next3;
                    }
                }
                $var15 = $var23 === null ? null : $var23.$value0;
            } else {
                $var15 = new nms_NBTTagCompound;
                if ($rt_s(360) !== null)
                    $var15.$name = $rt_s(360);
                else
                    $var15.$name = $rt_s(3);
                $var15.$tagMap = ju_HashMap__init_();
            }
            $var22 = $var16;
            cb: {
                $var23 = $var15.$tagMap;
                if (!$rt_s(360).$hashCode1) {
                    $x = 0;
                    while (true) {
                        if ($x >= $rt_s(360).$nativeString.length)
                            break cb;
                        $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt($x) | 0;
                        $x = $x + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(360).$hashCode1;
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $var7) {
                    cc: {
                        $var19 = $var23.$key;
                        if ($rt_s(360) !== $var19) {
                            if ($rt_s(360) === $var19)
                                $x = 1;
                            else if (!($var19 instanceof jl_String))
                                $x = 0;
                            else {
                                $var19 = $var19;
                                $x = $rt_s(360).$nativeString !== $var19.$nativeString ? 0 : 1;
                            }
                            if (!$x) {
                                $x = 0;
                                break cc;
                            }
                        }
                        $x = 1;
                    }
                    if ($x)
                        break;
                }
                $var23 = $var23.$next3;
            }
            if ($var23 === null ? 0 : 1) {
                $var23 = $var15.$tagMap;
                $z = jl_String_hashCode($rt_s(360));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if (!($var23 === null ? 0 : 1)) {
                    $var23 = new nms_NBTTagCompound;
                    if ($rt_s(360) !== null)
                        $var23.$name = $rt_s(360);
                    else
                        $var23.$name = $rt_s(3);
                    $var23.$tagMap = ju_HashMap__init_();
                } else {
                    $var23 = $var15.$tagMap;
                    if ($rt_s(360) === null) {
                        $var23 = $var23.$elementData.data[0];
                        while ($var23 !== null && $var23.$key !== null) {
                            $var23 = $var23.$next3;
                        }
                    } else {
                        $z = jl_String_hashCode($rt_s(360));
                        var$7 = $var23.$elementData.data;
                        $var23 = var$7[$z & (var$7.length - 1 | 0)];
                        while ($var23 !== null) {
                            if ($var23.$origKeyHash == $z) {
                                $var19 = $var23.$key;
                                if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                                    break;
                            }
                            $var23 = $var23.$next3;
                        }
                    }
                    $var23 = $var23 === null ? null : $var23.$value0;
                }
                continue main;
            }
            $var18 = $var18 + 1 | 0;
            $var23 = $var17.$tagList;
            $x = $rt_compare($var18, $var23.$size0);
            if ($x < 0) {
                if ($var18 >= 0 && $x < 0) {
                    $var15 = $var23.$array.data[$var18];
                    $ptr = 1;
                    continue main;
                }
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            $var23 = $par2NBTTagCompound.$tagMap;
            $z = jl_String_hashCode($rt_s(347));
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $z) {
                    $var19 = $var23.$key;
                    if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                        break;
                }
                $var23 = $var23.$next3;
            }
            if (!($var23 === null ? 0 : 1)) {
                $var19 = new nms_NBTTagList;
                if ($rt_s(347) !== null)
                    $var19.$name = $rt_s(347);
                else
                    $var19.$name = $rt_s(3);
                $var23 = new ju_ArrayList;
                $var23.$array = $rt_createArray(jl_Object, 10);
                $var19.$tagList = $var23;
            } else {
                $var23 = $par2NBTTagCompound.$tagMap;
                if ($rt_s(347) !== null) {
                    $z = jl_String_hashCode($rt_s(347));
                    var$7 = $var23.$elementData.data;
                    $var23 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var23 !== null) {
                        if ($var23.$origKeyHash == $z) {
                            $var19 = $var23.$key;
                            if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                                break;
                        }
                        $var23 = $var23.$next3;
                    }
                } else {
                    $var23 = $var23.$elementData.data[0];
                    while ($var23 !== null && $var23.$key !== null) {
                        $var23 = $var23.$next3;
                    }
                }
                $var19 = $var23 === null ? null : $var23.$value0;
            }
            if ($var19 !== null) {
                $var21 = 0;
                $var23 = $var19.$tagList;
                $x = $rt_compare($var21, $var23.$size0);
                if ($x < 0) {
                    if ($var21 >= 0 && $x < 0) {
                        $var24 = $var23.$array.data[$var21];
                        $ptr = 2;
                        continue main;
                    }
                    $par1World = new jl_IndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
            }
            cd: {
                $var23 = $par2NBTTagCompound.$tagMap;
                if (!$rt_s(348).$hashCode1) {
                    $x = 0;
                    while (true) {
                        if ($x >= $rt_s(348).$nativeString.length)
                            break cd;
                        $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                        $x = $x + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(348).$hashCode1;
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $var7) {
                    ce: {
                        $var19 = $var23.$key;
                        if ($rt_s(348) !== $var19) {
                            if ($rt_s(348) === $var19)
                                $x = 1;
                            else if (!($var19 instanceof jl_String))
                                $x = 0;
                            else {
                                $var19 = $var19;
                                $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                            }
                            if (!$x) {
                                $x = 0;
                                break ce;
                            }
                        }
                        $x = 1;
                    }
                    if ($x)
                        break;
                }
                $var23 = $var23.$next3;
            }
            $x = $var23 === null ? 0 : 1;
            cf: {
                if ($x) {
                    cg: {
                        $var23 = $par2NBTTagCompound.$tagMap;
                        if (!$rt_s(348).$hashCode1) {
                            $x = 0;
                            while (true) {
                                if ($x >= $rt_s(348).$nativeString.length)
                                    break cg;
                                $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                $x = $x + 1 | 0;
                            }
                        }
                    }
                    $var7 = $rt_s(348).$hashCode1;
                    var$7 = $var23.$elementData.data;
                    $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                    while ($var23 !== null) {
                        if ($var23.$origKeyHash == $var7) {
                            ch: {
                                $var19 = $var23.$key;
                                if ($rt_s(348) !== $var19) {
                                    if ($rt_s(348) === $var19)
                                        $x = 1;
                                    else if (!($var19 instanceof jl_String))
                                        $x = 0;
                                    else {
                                        $var19 = $var19;
                                        $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                    }
                                    if (!$x) {
                                        $x = 0;
                                        break ch;
                                    }
                                }
                                $x = 1;
                            }
                            if ($x)
                                break;
                        }
                        $var23 = $var23.$next3;
                    }
                    if ($var23 === null ? 0 : 1) {
                        $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
                        if ($rt_s(348) === null) {
                            $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                            while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                            }
                        } else {
                            ci: {
                                if (!$rt_s(348).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(348).$nativeString.length)
                                            break ci;
                                        $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(348).$hashCode1;
                            var$7 = $par2NBTTagCompound.$elementData.data;
                            $par2NBTTagCompound = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($par2NBTTagCompound !== null) {
                                if ($par2NBTTagCompound.$origKeyHash == $var7) {
                                    cj: {
                                        $var23 = $par2NBTTagCompound.$key;
                                        if ($rt_s(348) !== $var23) {
                                            if ($rt_s(348) === $var23)
                                                $x = 1;
                                            else if ($var23 instanceof jl_String) {
                                                $var23 = $var23;
                                                $x = $rt_s(348).$nativeString !== $var23.$nativeString ? 0 : 1;
                                            } else
                                                $x = 0;
                                            if (!$x) {
                                                $x = 0;
                                                break cj;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                            }
                        }
                        $var23 = $par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0;
                    } else {
                        $var23 = new nms_NBTTagList;
                        if ($rt_s(348) !== null)
                            $var23.$name = $rt_s(348);
                        else
                            $var23.$name = $rt_s(3);
                        $par2NBTTagCompound = new ju_ArrayList;
                        $par2NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                        $var23.$tagList = $par2NBTTagCompound;
                    }
                    if ($var23 !== null) {
                        $var25 = 0;
                        while (true) {
                            $par2NBTTagCompound = $var23.$tagList;
                            $x = $rt_compare($var25, $par2NBTTagCompound.$size0);
                            if ($x >= 0)
                                break cf;
                            if ($var25 < 0)
                                break;
                            if ($x >= 0)
                                break;
                            ck: {
                                $var27 = $par2NBTTagCompound.$array.data[$var25];
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(349).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(349).$nativeString.length)
                                            break ck;
                                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(349).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    bs: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(349) !== $var17) {
                                            if ($rt_s(349) !== $var17) {
                                                if ($var17 instanceof jl_String) {
                                                    $var17 = $var17;
                                                    $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                } else
                                                    $x = 0;
                                            } else
                                                $x = 1;
                                            if (!$x) {
                                                $x = 0;
                                                break bs;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if ($var19 === null ? 0 : 1) {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(349) !== null) {
                                    cl: {
                                        if (!$rt_s(349).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(349).$nativeString.length)
                                                    break cl;
                                                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(349).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            cm: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(349) !== $var17) {
                                                    if ($rt_s(349) !== $var17) {
                                                        if ($var17 instanceof jl_String) {
                                                            $var17 = $var17;
                                                            $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        } else
                                                            $x = 0;
                                                    } else
                                                        $x = 1;
                                                    if (!$x) {
                                                        $x = 0;
                                                        break cm;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var21 = ($var19 === null ? null : $var19.$value0).$data;
                            } else
                                $var21 = 0;
                            cn: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(350).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(350).$nativeString.length)
                                            break cn;
                                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(350).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    bw: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(350) !== $var17) {
                                            if ($rt_s(350) !== $var17) {
                                                if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                $x = 1;
                                            if (!$x) {
                                                $x = 0;
                                                break bw;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if ($var19 === null ? 0 : 1) {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(350) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    co: {
                                        if (!$rt_s(350).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(350).$nativeString.length)
                                                    break co;
                                                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(350).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            cp: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(350) !== $var17) {
                                                    if ($rt_s(350) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break cp;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var10 = ($var19 === null ? null : $var19.$value0).$data;
                            } else
                                $var10 = 0;
                            cq: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(351).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(351).$nativeString.length)
                                            break cq;
                                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(351).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    cr: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(351) !== $var17) {
                                            if ($rt_s(351) !== $var17) {
                                                if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                $x = 1;
                                            if (!$x) {
                                                $x = 0;
                                                break cr;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if (!($var19 === null ? 0 : 1))
                                $var9 = 0;
                            else {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(351) !== null) {
                                    cs: {
                                        if (!$rt_s(351).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(351).$nativeString.length)
                                                    break cs;
                                                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(351).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            bC: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(351) !== $var17) {
                                                    if ($rt_s(351) !== $var17) {
                                                        if ($var17 instanceof jl_String) {
                                                            $var17 = $var17;
                                                            $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        } else
                                                            $x = 0;
                                                    } else
                                                        $x = 1;
                                                    if (!$x) {
                                                        $x = 0;
                                                        break bC;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var9 = ($var19 === null ? null : $var19.$value0).$data;
                            }
                            ct: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(352).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(352).$nativeString.length)
                                            break ct;
                                        $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(352).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    bE: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(352) !== $var17) {
                                            if ($rt_s(352) === $var17)
                                                $x = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$x) {
                                                $x = 0;
                                                break bE;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if ($var19 === null ? 0 : 1) {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(352) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    cu: {
                                        if (!$rt_s(352).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(352).$nativeString.length)
                                                    break cu;
                                                $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(352).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            cv: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(352) !== $var17) {
                                                    if ($rt_s(352) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break cv;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var12 = ($var19 === null ? null : $var19.$value0).$data;
                            } else
                                $var12 = 0;
                            cw: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(353).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(353).$nativeString.length)
                                            break cw;
                                        $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(353).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var7) {
                                    cx: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(353) !== $var17) {
                                            if ($rt_s(353) === $var17)
                                                $x = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$x) {
                                                $x = 0;
                                                break cx;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if (!($var19 === null ? 0 : 1))
                                $var7 = 0;
                            else {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(353) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    cy: {
                                        if (!$rt_s(353).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(353).$nativeString.length)
                                                    break cy;
                                                $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(353).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var7) {
                                            cz: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(353) !== $var17) {
                                                    if ($rt_s(353) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break cz;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $var7 = ($var19 === null ? null : $var19.$value0).$data;
                            }
                            cA: {
                                $var19 = $var27.$tagMap;
                                if (!$rt_s(354).$hashCode1) {
                                    $x = 0;
                                    while (true) {
                                        if ($x >= $rt_s(354).$nativeString.length)
                                            break cA;
                                        $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                        $x = $x + 1 | 0;
                                    }
                                }
                            }
                            $var18 = $rt_s(354).$hashCode1;
                            var$7 = $var19.$elementData.data;
                            $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                            while ($var19 !== null) {
                                if ($var19.$origKeyHash == $var18) {
                                    h: {
                                        $var17 = $var19.$key;
                                        if ($rt_s(354) !== $var17) {
                                            if ($rt_s(354) === $var17)
                                                $x = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$x) {
                                                $x = 0;
                                                break h;
                                            }
                                        }
                                        $x = 1;
                                    }
                                    if ($x)
                                        break;
                                }
                                $var19 = $var19.$next3;
                            }
                            if (!($var19 === null ? 0 : 1))
                                $x = 0;
                            else {
                                $var19 = $var27.$tagMap;
                                if ($rt_s(354) === null) {
                                    $var19 = $var19.$elementData.data[0];
                                    while ($var19 !== null && $var19.$key !== null) {
                                        $var19 = $var19.$next3;
                                    }
                                } else {
                                    cB: {
                                        if (!$rt_s(354).$hashCode1) {
                                            $x = 0;
                                            while (true) {
                                                if ($x >= $rt_s(354).$nativeString.length)
                                                    break cB;
                                                $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                                $x = $x + 1 | 0;
                                            }
                                        }
                                    }
                                    $var18 = $rt_s(354).$hashCode1;
                                    var$7 = $var19.$elementData.data;
                                    $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                    while ($var19 !== null) {
                                        if ($var19.$origKeyHash == $var18) {
                                            cC: {
                                                $var17 = $var19.$key;
                                                if ($rt_s(354) !== $var17) {
                                                    if ($rt_s(354) === $var17)
                                                        $x = 1;
                                                    else if (!($var17 instanceof jl_String))
                                                        $x = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$x) {
                                                        $x = 0;
                                                        break cC;
                                                    }
                                                }
                                                $x = 1;
                                            }
                                            if ($x)
                                                break;
                                        }
                                        $var19 = $var19.$next3;
                                    }
                                }
                                $x = ($var19 === null ? null : $var19.$value0).$data;
                            }
                            nms_WorldServer_scheduleBlockUpdateFromLoad($par1World, $var21, $var10, $var9, $var12, $var7, $x);
                            $var25 = $var25 + 1 | 0;
                        }
                        $par1World = new jl_IndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                }
            }
            return $var5;
        }
        nms_Chunk_addEntity($var5, $var16);
        $ptr = 5;
    case 5:
        $var22.$mountEntity($var16);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = $var15.$tagMap;
        $z = jl_String_hashCode($rt_s(360));
        var$7 = $var23.$elementData.data;
        $var23 = var$7[$z & (var$7.length - 1 | 0)];
        while ($var23 !== null) {
            if ($var23.$origKeyHash == $z) {
                $var19 = $var23.$key;
                if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                    break;
            }
            $var23 = $var23.$next3;
        }
        if ($var23 === null ? 0 : 1) {
            $var23 = $var15.$tagMap;
            if ($rt_s(360) !== null) {
                cD: {
                    if (!$rt_s(360).$hashCode1) {
                        $x = 0;
                        while (true) {
                            if ($x >= $rt_s(360).$nativeString.length)
                                break cD;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt($x) | 0;
                            $x = $x + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(360).$hashCode1;
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var7) {
                        cE: {
                            $var19 = $var23.$key;
                            if ($rt_s(360) !== $var19) {
                                if ($rt_s(360) !== $var19) {
                                    if ($var19 instanceof jl_String) {
                                        $var19 = $var19;
                                        $x = $rt_s(360).$nativeString !== $var19.$nativeString ? 0 : 1;
                                    } else
                                        $x = 0;
                                } else
                                    $x = 1;
                                if (!$x) {
                                    $x = 0;
                                    break cE;
                                }
                            }
                            $x = 1;
                        }
                        if ($x)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
            } else {
                $var23 = $var23.$elementData.data[0];
                while ($var23 !== null && $var23.$key !== null) {
                    $var23 = $var23.$next3;
                }
            }
            $var15 = $var23 === null ? null : $var23.$value0;
        } else {
            $var15 = new nms_NBTTagCompound;
            if ($rt_s(360) !== null)
                $var15.$name = $rt_s(360);
            else
                $var15.$name = $rt_s(3);
            $var15.$tagMap = ju_HashMap__init_();
        }
        $var22 = $var16;
        cF: {
            $var23 = $var15.$tagMap;
            if (!$rt_s(360).$hashCode1) {
                $x = 0;
                while (true) {
                    if ($x >= $rt_s(360).$nativeString.length)
                        break cF;
                    $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt($x) | 0;
                    $x = $x + 1 | 0;
                }
            }
        }
        $var7 = $rt_s(360).$hashCode1;
        var$7 = $var23.$elementData.data;
        $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
        while ($var23 !== null) {
            if ($var23.$origKeyHash == $var7) {
                cG: {
                    $var19 = $var23.$key;
                    if ($rt_s(360) !== $var19) {
                        if ($rt_s(360) === $var19)
                            $x = 1;
                        else if (!($var19 instanceof jl_String))
                            $x = 0;
                        else {
                            $var19 = $var19;
                            $x = $rt_s(360).$nativeString !== $var19.$nativeString ? 0 : 1;
                        }
                        if (!$x) {
                            $x = 0;
                            break cG;
                        }
                    }
                    $x = 1;
                }
                if ($x)
                    break;
            }
            $var23 = $var23.$next3;
        }
        if ($var23 === null ? 0 : 1) {
            $var23 = $var15.$tagMap;
            $z = jl_String_hashCode($rt_s(360));
            var$7 = $var23.$elementData.data;
            $var23 = var$7[$z & (var$7.length - 1 | 0)];
            while ($var23 !== null) {
                if ($var23.$origKeyHash == $z) {
                    $var19 = $var23.$key;
                    if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                        break;
                }
                $var23 = $var23.$next3;
            }
            if (!($var23 === null ? 0 : 1)) {
                $var23 = new nms_NBTTagCompound;
                if ($rt_s(360) !== null)
                    $var23.$name = $rt_s(360);
                else
                    $var23.$name = $rt_s(3);
                $var23.$tagMap = ju_HashMap__init_();
            } else {
                $var23 = $var15.$tagMap;
                if ($rt_s(360) === null) {
                    $var23 = $var23.$elementData.data[0];
                    while ($var23 !== null && $var23.$key !== null) {
                        $var23 = $var23.$next3;
                    }
                } else {
                    $z = jl_String_hashCode($rt_s(360));
                    var$7 = $var23.$elementData.data;
                    $var23 = var$7[$z & (var$7.length - 1 | 0)];
                    while ($var23 !== null) {
                        if ($var23.$origKeyHash == $z) {
                            $var19 = $var23.$key;
                            if ($rt_s(360) !== $var19 && !jl_String_equals($rt_s(360), $var19) ? 0 : 1)
                                break;
                        }
                        $var23 = $var23.$next3;
                    }
                }
                $var23 = $var23 === null ? null : $var23.$value0;
            }
            $ptr = 4;
            continue main;
        }
        $var18 = $var18 + 1 | 0;
        $var23 = $var17.$tagList;
        $x = $rt_compare($var18, $var23.$size0);
        if ($x < 0) {
            if ($var18 >= 0 && $x < 0) {
                $var15 = $var23.$array.data[$var18];
                $ptr = 1;
                continue main;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var23 = $par2NBTTagCompound.$tagMap;
        $z = jl_String_hashCode($rt_s(347));
        var$7 = $var23.$elementData.data;
        $var23 = var$7[$z & (var$7.length - 1 | 0)];
        while ($var23 !== null) {
            if ($var23.$origKeyHash == $z) {
                $var19 = $var23.$key;
                if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                    break;
            }
            $var23 = $var23.$next3;
        }
        if (!($var23 === null ? 0 : 1)) {
            $var19 = new nms_NBTTagList;
            if ($rt_s(347) !== null)
                $var19.$name = $rt_s(347);
            else
                $var19.$name = $rt_s(3);
            $var23 = new ju_ArrayList;
            $var23.$array = $rt_createArray(jl_Object, 10);
            $var19.$tagList = $var23;
        } else {
            $var23 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(347) !== null) {
                $z = jl_String_hashCode($rt_s(347));
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$z & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $z) {
                        $var19 = $var23.$key;
                        if ($rt_s(347) !== $var19 && !jl_String_equals($rt_s(347), $var19) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
            } else {
                $var23 = $var23.$elementData.data[0];
                while ($var23 !== null && $var23.$key !== null) {
                    $var23 = $var23.$next3;
                }
            }
            $var19 = $var23 === null ? null : $var23.$value0;
        }
        if ($var19 !== null) {
            $var21 = 0;
            $var23 = $var19.$tagList;
            $x = $rt_compare($var21, $var23.$size0);
            if ($x < 0) {
                if ($var21 >= 0 && $x < 0) {
                    $var24 = $var23.$array.data[$var21];
                    $ptr = 2;
                    continue main;
                }
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
        }
        bW: {
            $var23 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(348).$hashCode1) {
                $x = 0;
                while (true) {
                    if ($x >= $rt_s(348).$nativeString.length)
                        break bW;
                    $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                    $x = $x + 1 | 0;
                }
            }
        }
        $var7 = $rt_s(348).$hashCode1;
        var$7 = $var23.$elementData.data;
        $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
        while ($var23 !== null) {
            if ($var23.$origKeyHash == $var7) {
                cH: {
                    $var19 = $var23.$key;
                    if ($rt_s(348) !== $var19) {
                        if ($rt_s(348) === $var19)
                            $x = 1;
                        else if (!($var19 instanceof jl_String))
                            $x = 0;
                        else {
                            $var19 = $var19;
                            $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                        }
                        if (!$x) {
                            $x = 0;
                            break cH;
                        }
                    }
                    $x = 1;
                }
                if ($x)
                    break;
            }
            $var23 = $var23.$next3;
        }
        $x = $var23 === null ? 0 : 1;
        bX: {
            if ($x) {
                cf: {
                    $var23 = $par2NBTTagCompound.$tagMap;
                    if (!$rt_s(348).$hashCode1) {
                        $x = 0;
                        while (true) {
                            if ($x >= $rt_s(348).$nativeString.length)
                                break cf;
                            $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                            $x = $x + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(348).$hashCode1;
                var$7 = $var23.$elementData.data;
                $var23 = var$7[$var7 & (var$7.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var7) {
                        cI: {
                            $var19 = $var23.$key;
                            if ($rt_s(348) !== $var19) {
                                if ($rt_s(348) === $var19)
                                    $x = 1;
                                else if (!($var19 instanceof jl_String))
                                    $x = 0;
                                else {
                                    $var19 = $var19;
                                    $x = $rt_s(348).$nativeString !== $var19.$nativeString ? 0 : 1;
                                }
                                if (!$x) {
                                    $x = 0;
                                    break cI;
                                }
                            }
                            $x = 1;
                        }
                        if ($x)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
                if ($var23 === null ? 0 : 1) {
                    $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
                    if ($rt_s(348) === null) {
                        $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                        while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                            $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                        }
                    } else {
                        cJ: {
                            if (!$rt_s(348).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(348).$nativeString.length)
                                        break cJ;
                                    $rt_s(348).$hashCode1 = (31 * $rt_s(348).$hashCode1 | 0) + $rt_s(348).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(348).$hashCode1;
                        var$7 = $par2NBTTagCompound.$elementData.data;
                        $par2NBTTagCompound = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($par2NBTTagCompound !== null) {
                            if ($par2NBTTagCompound.$origKeyHash == $var7) {
                                cK: {
                                    $var23 = $par2NBTTagCompound.$key;
                                    if ($rt_s(348) !== $var23) {
                                        if ($rt_s(348) === $var23)
                                            $x = 1;
                                        else if ($var23 instanceof jl_String) {
                                            $var23 = $var23;
                                            $x = $rt_s(348).$nativeString !== $var23.$nativeString ? 0 : 1;
                                        } else
                                            $x = 0;
                                        if (!$x) {
                                            $x = 0;
                                            break cK;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                        }
                    }
                    $var23 = $par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0;
                } else {
                    $var23 = new nms_NBTTagList;
                    if ($rt_s(348) !== null)
                        $var23.$name = $rt_s(348);
                    else
                        $var23.$name = $rt_s(3);
                    $par2NBTTagCompound = new ju_ArrayList;
                    $par2NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                    $var23.$tagList = $par2NBTTagCompound;
                }
                if ($var23 !== null) {
                    $var25 = 0;
                    while (true) {
                        $par2NBTTagCompound = $var23.$tagList;
                        $x = $rt_compare($var25, $par2NBTTagCompound.$size0);
                        if ($x >= 0)
                            break bX;
                        if ($var25 < 0)
                            break;
                        if ($x >= 0)
                            break;
                        cL: {
                            $var27 = $par2NBTTagCompound.$array.data[$var25];
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(349).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(349).$nativeString.length)
                                        break cL;
                                    $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(349).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                cM: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(349) !== $var17) {
                                        if ($rt_s(349) !== $var17) {
                                            if ($var17 instanceof jl_String) {
                                                $var17 = $var17;
                                                $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            } else
                                                $x = 0;
                                        } else
                                            $x = 1;
                                        if (!$x) {
                                            $x = 0;
                                            break cM;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if ($var19 === null ? 0 : 1) {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(349) !== null) {
                                cN: {
                                    if (!$rt_s(349).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(349).$nativeString.length)
                                                break cN;
                                            $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(349).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        cO: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(349) !== $var17) {
                                                if ($rt_s(349) !== $var17) {
                                                    if ($var17 instanceof jl_String) {
                                                        $var17 = $var17;
                                                        $x = $rt_s(349).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    } else
                                                        $x = 0;
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break cO;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var21 = ($var19 === null ? null : $var19.$value0).$data;
                        } else
                            $var21 = 0;
                        cP: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(350).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(350).$nativeString.length)
                                        break cP;
                                    $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(350).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                cQ: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(350) !== $var17) {
                                        if ($rt_s(350) !== $var17) {
                                            if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            $x = 1;
                                        if (!$x) {
                                            $x = 0;
                                            break cQ;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if ($var19 === null ? 0 : 1) {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(350) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                cR: {
                                    if (!$rt_s(350).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(350).$nativeString.length)
                                                break cR;
                                            $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(350).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        by: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(350) !== $var17) {
                                                if ($rt_s(350) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(350).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break by;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var10 = ($var19 === null ? null : $var19.$value0).$data;
                        } else
                            $var10 = 0;
                        b7: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(351).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(351).$nativeString.length)
                                        break b7;
                                    $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(351).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                bA: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(351) !== $var17) {
                                        if ($rt_s(351) !== $var17) {
                                            if (!($var17 instanceof jl_String))
                                                $x = 0;
                                            else {
                                                $var17 = $var17;
                                                $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            $x = 1;
                                        if (!$x) {
                                            $x = 0;
                                            break bA;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if (!($var19 === null ? 0 : 1))
                            $var9 = 0;
                        else {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(351) !== null) {
                                cS: {
                                    if (!$rt_s(351).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(351).$nativeString.length)
                                                break cS;
                                            $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(351).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        cT: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(351) !== $var17) {
                                                if ($rt_s(351) !== $var17) {
                                                    if ($var17 instanceof jl_String) {
                                                        $var17 = $var17;
                                                        $x = $rt_s(351).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    } else
                                                        $x = 0;
                                                } else
                                                    $x = 1;
                                                if (!$x) {
                                                    $x = 0;
                                                    break cT;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var9 = ($var19 === null ? null : $var19.$value0).$data;
                        }
                        cU: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(352).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(352).$nativeString.length)
                                        break cU;
                                    $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(352).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                cV: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(352) !== $var17) {
                                        if ($rt_s(352) === $var17)
                                            $x = 1;
                                        else if (!($var17 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var17 = $var17;
                                            $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break cV;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if ($var19 === null ? 0 : 1) {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(352) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                cW: {
                                    if (!$rt_s(352).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(352).$nativeString.length)
                                                break cW;
                                            $rt_s(352).$hashCode1 = (31 * $rt_s(352).$hashCode1 | 0) + $rt_s(352).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(352).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        cX: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(352) !== $var17) {
                                                if ($rt_s(352) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(352).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break cX;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var12 = ($var19 === null ? null : $var19.$value0).$data;
                        } else
                            $var12 = 0;
                        cY: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(353).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(353).$nativeString.length)
                                        break cY;
                                    $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(353).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var7) {
                                cZ: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(353) !== $var17) {
                                        if ($rt_s(353) === $var17)
                                            $x = 1;
                                        else if (!($var17 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var17 = $var17;
                                            $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break cZ;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if (!($var19 === null ? 0 : 1))
                            $var7 = 0;
                        else {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(353) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                c0: {
                                    if (!$rt_s(353).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(353).$nativeString.length)
                                                break c0;
                                            $rt_s(353).$hashCode1 = (31 * $rt_s(353).$hashCode1 | 0) + $rt_s(353).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(353).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var7 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var7) {
                                        c1: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(353) !== $var17) {
                                                if ($rt_s(353) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(353).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break c1;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $var7 = ($var19 === null ? null : $var19.$value0).$data;
                        }
                        c2: {
                            $var19 = $var27.$tagMap;
                            if (!$rt_s(354).$hashCode1) {
                                $x = 0;
                                while (true) {
                                    if ($x >= $rt_s(354).$nativeString.length)
                                        break c2;
                                    $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                    $x = $x + 1 | 0;
                                }
                            }
                        }
                        $var18 = $rt_s(354).$hashCode1;
                        var$7 = $var19.$elementData.data;
                        $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                        while ($var19 !== null) {
                            if ($var19.$origKeyHash == $var18) {
                                c3: {
                                    $var17 = $var19.$key;
                                    if ($rt_s(354) !== $var17) {
                                        if ($rt_s(354) === $var17)
                                            $x = 1;
                                        else if (!($var17 instanceof jl_String))
                                            $x = 0;
                                        else {
                                            $var17 = $var17;
                                            $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                        }
                                        if (!$x) {
                                            $x = 0;
                                            break c3;
                                        }
                                    }
                                    $x = 1;
                                }
                                if ($x)
                                    break;
                            }
                            $var19 = $var19.$next3;
                        }
                        if (!($var19 === null ? 0 : 1))
                            $x = 0;
                        else {
                            $var19 = $var27.$tagMap;
                            if ($rt_s(354) === null) {
                                $var19 = $var19.$elementData.data[0];
                                while ($var19 !== null && $var19.$key !== null) {
                                    $var19 = $var19.$next3;
                                }
                            } else {
                                c4: {
                                    if (!$rt_s(354).$hashCode1) {
                                        $x = 0;
                                        while (true) {
                                            if ($x >= $rt_s(354).$nativeString.length)
                                                break c4;
                                            $rt_s(354).$hashCode1 = (31 * $rt_s(354).$hashCode1 | 0) + $rt_s(354).$nativeString.charCodeAt($x) | 0;
                                            $x = $x + 1 | 0;
                                        }
                                    }
                                }
                                $var18 = $rt_s(354).$hashCode1;
                                var$7 = $var19.$elementData.data;
                                $var19 = var$7[$var18 & (var$7.length - 1 | 0)];
                                while ($var19 !== null) {
                                    if ($var19.$origKeyHash == $var18) {
                                        c5: {
                                            $var17 = $var19.$key;
                                            if ($rt_s(354) !== $var17) {
                                                if ($rt_s(354) === $var17)
                                                    $x = 1;
                                                else if (!($var17 instanceof jl_String))
                                                    $x = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $x = $rt_s(354).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                                if (!$x) {
                                                    $x = 0;
                                                    break c5;
                                                }
                                            }
                                            $x = 1;
                                        }
                                        if ($x)
                                            break;
                                    }
                                    $var19 = $var19.$next3;
                                }
                            }
                            $x = ($var19 === null ? null : $var19.$value0).$data;
                        }
                        nms_WorldServer_scheduleBlockUpdateFromLoad($par1World, $var21, $var10, $var9, $var12, $var7, $x);
                        $var25 = $var25 + 1 | 0;
                    }
                    $par1World = new jl_IndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
            }
        }
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2NBTTagCompound, $x, $z, $var5, $var19, var$7, $var17, $var6, $var23, $var8, $var9, var$13, $var10, $var18, $var15, $var21, $var24, $var7, $var25, $var27, $var12, $var11, $var13, $var22, $var26, $var16, $ptr);
},
nles_VFSChunkLoader_writeChunkToNBT = ($this, $par1Chunk, $par2World, $par3NBTTagCompound) => {
    let var$4, $var5, $var16, var$7, var$8, $var4, $var18, $var6, $var8, $var9, $var10, $var11, $var20, var$17, $var18$index, $var17, $var21, $var19, $var22, $var12, $var13$index, $var18$index_0, $var13$index_0, $var14, $var15;
    var$4 = $par1Chunk.$xPosition0;
    $var5 = $par3NBTTagCompound.$tagMap;
    $var16 = new nms_NBTTagInt;
    $var16.$name = $rt_s(202);
    $var16.$data = var$4;
    ju_HashMap_putImpl($var5, $rt_s(202), $var16);
    var$4 = $par1Chunk.$zPosition0;
    $var5 = $par3NBTTagCompound.$tagMap;
    $var16 = new nms_NBTTagInt;
    $var16.$name = $rt_s(203);
    $var16.$data = var$4;
    ju_HashMap_putImpl($var5, $rt_s(203), $var16);
    var$7 = $par2World.$worldInfo.$getWorldTotalTime();
    $var5 = $par3NBTTagCompound.$tagMap;
    $var16 = new nms_NBTTagLong;
    $var16.$name = $rt_s(361);
    $var16.$data6 = var$7;
    ju_HashMap_putImpl($var5, $rt_s(361), $var16);
    var$8 = $par1Chunk.$heightMap;
    $var5 = $par3NBTTagCompound.$tagMap;
    $var16 = new nms_NBTTagIntArray;
    $var16.$name = $rt_s(342);
    $var16.$intArray = var$8;
    ju_HashMap_putImpl($var5, $rt_s(342), $var16);
    var$4 = (!$par1Chunk.$isTerrainPopulated ? 0 : 1) << 24 >> 24;
    $var5 = $par3NBTTagCompound.$tagMap;
    $var16 = new nms_NBTTagByte;
    $var16.$name = $rt_s(343);
    $var16.$data0 = var$4;
    ju_HashMap_putImpl($var5, $rt_s(343), $var16);
    $var4 = $par1Chunk.$storageArrays;
    $var5 = new nms_NBTTagList;
    $var5.$name = $rt_s(344);
    $var18 = new ju_ArrayList;
    $var18.$array = $rt_createArray(jl_Object, 10);
    $var5.$tagList = $var18;
    $var6 = $par2World.$provider.$hasNoSky ? 0 : 1;
    $var4 = $var4.data;
    $var8 = $var4.length;
    $var9 = 0;
    while ($var9 < $var8) {
        $var10 = $var4[$var9];
        if ($var10 !== null) {
            $var11 = new nms_NBTTagCompound;
            $var11.$name = $rt_s(3);
            $var20 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            $var20.$elementCount = 0;
            var$17 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$8 = var$17.data;
            $var20.$elementData = var$17;
            $var20.$loadFactor = 0.75;
            $var20.$threshold = var$8.length * 0.75 | 0;
            $var11.$tagMap = $var20;
            var$4 = ($var10.$yBase >> 4 & 255) << 24 >> 24;
            $var16 = new nms_NBTTagByte;
            $var16.$name = $rt_s(355);
            $var16.$data0 = var$4;
            ju_HashMap_putImpl($var20, $rt_s(355), $var16);
            var$8 = $var10.$blockLSBArray;
            $var20 = $var11.$tagMap;
            $var16 = new nms_NBTTagByteArray;
            $var16.$name = $rt_s(356);
            $var16.$byteArray = var$8;
            ju_HashMap_putImpl($var20, $rt_s(356), $var16);
            $var18 = $var10.$blockMSBArray;
            if ($var18 !== null) {
                var$8 = $var18.$data8;
                $var16 = $var11.$tagMap;
                $var18 = new nms_NBTTagByteArray;
                $var18.$name = $rt_s(357);
                $var18.$byteArray = var$8;
                ju_HashMap_putImpl($var16, $rt_s(357), $var18);
            }
            var$8 = $var10.$blockMetadataArray.$data8;
            $var20 = $var11.$tagMap;
            $var16 = new nms_NBTTagByteArray;
            $var16.$name = $rt_s(55);
            $var16.$byteArray = var$8;
            ju_HashMap_putImpl($var20, $rt_s(55), $var16);
            var$8 = $var10.$blocklightArray.$data8;
            $var16 = $var11.$tagMap;
            $var18 = new nms_NBTTagByteArray;
            $var18.$name = $rt_s(358);
            $var18.$byteArray = var$8;
            ju_HashMap_putImpl($var16, $rt_s(358), $var18);
            if ($var6) {
                var$8 = $var10.$skylightArray.$data8;
                $var16 = $var11.$tagMap;
                $var18 = new nms_NBTTagByteArray;
                $var18.$name = $rt_s(359);
                $var18.$byteArray = var$8;
                ju_HashMap_putImpl($var16, $rt_s(359), $var18);
            } else {
                var$8 = $rt_createByteArray($var10.$blocklightArray.$data8.data.length);
                $var16 = $var11.$tagMap;
                $var18 = new nms_NBTTagByteArray;
                $var18.$name = $rt_s(359);
                $var18.$byteArray = var$8;
                ju_HashMap_putImpl($var16, $rt_s(359), $var18);
            }
            $var5.$tagType = 10;
            $var18 = $var5.$tagList;
            ju_ArrayList_ensureCapacity($var18, $var18.$size0 + 1 | 0);
            var$8 = $var18.$array.data;
            $var18$index = $var18.$size0;
            $var18.$size0 = $var18$index + 1 | 0;
            var$8[$var18$index] = $var11;
            $var18.$modCount = $var18.$modCount + 1 | 0;
        }
        $var9 = $var9 + 1 | 0;
    }
    $var16 = $par3NBTTagCompound.$tagMap;
    $var5.$name = $rt_s(344);
    ju_HashMap_putImpl($var16, $rt_s(344), $var5);
    var$8 = $par1Chunk.$blockBiomeArray;
    $var5 = $par3NBTTagCompound.$tagMap;
    $var16 = new nms_NBTTagByteArray;
    $var16.$name = $rt_s(345);
    $var16.$byteArray = var$8;
    ju_HashMap_putImpl($var5, $rt_s(345), $var16);
    $par1Chunk.$hasEntities = 0;
    $var16 = new nms_NBTTagList;
    $var16.$name = $rt_s(3);
    $var18 = new ju_ArrayList;
    $var18.$array = $rt_createArray(jl_Object, 10);
    $var16.$tagList = $var18;
    $var9 = 0;
    a: while (true) {
        var$8 = $par1Chunk.$entityLists.data;
        if ($var9 >= var$8.length) {
            $var18 = $par3NBTTagCompound.$tagMap;
            $var16.$name = $rt_s(346);
            ju_HashMap_putImpl($var18, $rt_s(346), $var16);
            $var17 = new nms_NBTTagList;
            $var17.$name = $rt_s(3);
            $var18 = new ju_ArrayList;
            $var18.$array = $rt_createArray(jl_Object, 10);
            $var17.$tagList = $var18;
            $var16 = $par1Chunk.$chunkTileEntityMap;
            if ($var16.$cachedValues === null) {
                $var18 = new ju_HashMap$2;
                $var18.$this$01 = $var16;
                $var16.$cachedValues = $var18;
            }
            $var18 = $var16.$cachedValues.$iterator();
            while ($var18.$hasNext()) {
                $var21 = $var18.$next();
                $var11 = new nms_NBTTagCompound;
                $var11.$name = $rt_s(3);
                $var16 = new ju_HashMap;
                var$4 = ju_HashMap_calculateCapacity(16);
                $var16.$elementCount = 0;
                $var4 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                var$8 = $var4.data;
                $var16.$elementData = $var4;
                $var16.$loadFactor = 0.75;
                $var16.$threshold = var$8.length * 0.75 | 0;
                $var11.$tagMap = $var16;
                $var21.$writeToNBT($var11);
                $var17.$tagType = 10;
                $var16 = $var17.$tagList;
                ju_ArrayList_ensureCapacity($var16, $var16.$size0 + 1 | 0);
                var$8 = $var16.$array.data;
                $var18$index = $var16.$size0;
                $var16.$size0 = $var18$index + 1 | 0;
                var$8[$var18$index] = $var11;
                $var16.$modCount = $var16.$modCount + 1 | 0;
            }
            $var16 = $par3NBTTagCompound.$tagMap;
            $var17.$name = $rt_s(347);
            ju_HashMap_putImpl($var16, $rt_s(347), $var17);
            $var19 = nms_WorldServer_getPendingBlockUpdates($par2World, $par1Chunk, 0);
            if ($var19 !== null) {
                $var22 = $par2World.$worldInfo.$getWorldTotalTime();
                $var12 = new nms_NBTTagList;
                $var12.$name = $rt_s(3);
                $par1Chunk = new ju_ArrayList;
                $par1Chunk.$array = $rt_createArray(jl_Object, 10);
                $var12.$tagList = $par1Chunk;
                $var13$index = 0;
                $var18$index_0 = $var19.$modCount;
                $var6 = $var19.$size();
                while ($var13$index >= $var6 ? 0 : 1) {
                    if ($var18$index_0 < $var19.$modCount) {
                        $par1Chunk = new ju_ConcurrentModificationException;
                        $par1Chunk.$suppressionEnabled = 1;
                        $par1Chunk.$writableStackTrace = 1;
                        $rt_throw($par1Chunk);
                    }
                    $var13$index_0 = $var13$index + 1 | 0;
                    $var14 = $var19.$get($var13$index);
                    $var15 = new nms_NBTTagCompound;
                    $var15.$name = $rt_s(3);
                    $var18 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var18.$elementCount = 0;
                    $var4 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$8 = $var4.data;
                    $var18.$elementData = $var4;
                    $var18.$loadFactor = 0.75;
                    $var18.$threshold = var$8.length * 0.75 | 0;
                    $var15.$tagMap = $var18;
                    var$4 = $var14.$blockID3;
                    $par2World = new nms_NBTTagInt;
                    $par2World.$name = $rt_s(352);
                    $par2World.$data = var$4;
                    ju_HashMap_putImpl($var18, $rt_s(352), $par2World);
                    var$4 = $var14.$xCoord2;
                    $var18 = $var15.$tagMap;
                    $par2World = new nms_NBTTagInt;
                    $par2World.$name = $rt_s(349);
                    $par2World.$data = var$4;
                    ju_HashMap_putImpl($var18, $rt_s(349), $par2World);
                    var$4 = $var14.$yCoord2;
                    $var18 = $var15.$tagMap;
                    $par2World = new nms_NBTTagInt;
                    $par2World.$name = $rt_s(350);
                    $par2World.$data = var$4;
                    ju_HashMap_putImpl($var18, $rt_s(350), $par2World);
                    var$4 = $var14.$zCoord2;
                    $var18 = $var15.$tagMap;
                    $par2World = new nms_NBTTagInt;
                    $par2World.$name = $rt_s(351);
                    $par2World.$data = var$4;
                    ju_HashMap_putImpl($var18, $rt_s(351), $par2World);
                    var$4 = Long_lo(Long_sub($var14.$scheduledTime, $var22));
                    $var18 = $var15.$tagMap;
                    $par2World = new nms_NBTTagInt;
                    $par2World.$name = $rt_s(353);
                    $par2World.$data = var$4;
                    ju_HashMap_putImpl($var18, $rt_s(353), $par2World);
                    var$4 = $var14.$priority0;
                    $var18 = $var15.$tagMap;
                    $par2World = new nms_NBTTagInt;
                    $par2World.$name = $rt_s(354);
                    $par2World.$data = var$4;
                    ju_HashMap_putImpl($var18, $rt_s(354), $par2World);
                    $var12.$tagType = 10;
                    $par1Chunk = $var12.$tagList;
                    ju_ArrayList_ensureCapacity($par1Chunk, $par1Chunk.$size0 + 1 | 0);
                    var$8 = $par1Chunk.$array.data;
                    $var18$index = $par1Chunk.$size0;
                    $par1Chunk.$size0 = $var18$index + 1 | 0;
                    var$8[$var18$index] = $var15;
                    $par1Chunk.$modCount = $par1Chunk.$modCount + 1 | 0;
                    $var13$index = $var13$index_0;
                }
                $par2World = $par3NBTTagCompound.$tagMap;
                $var12.$name = $rt_s(348);
                ju_HashMap_putImpl($par2World, $rt_s(348), $var12);
            }
            return;
        }
        $var5 = var$8[$var9];
        $var6 = $var5.$modCount;
        $var8 = $var5.$size();
        $var18$index = 0;
        while ($var18$index >= $var8 ? 0 : 1) {
            if ($var6 < $var5.$modCount)
                break a;
            $var18$index_0 = $var18$index + 1 | 0;
            $var20 = $var5.$get($var18$index);
            $var11 = new nms_NBTTagCompound;
            $var11.$name = $rt_s(3);
            $var18 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            $var18.$elementCount = 0;
            $var4 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$8 = $var4.data;
            $var18.$elementData = $var4;
            $var18.$loadFactor = 0.75;
            $var18.$threshold = var$8.length * 0.75 | 0;
            $var11.$tagMap = $var18;
            if ($var20.$writeToNBTOptional($var11)) {
                $par1Chunk.$hasEntities = 1;
                $var16.$tagType = 10;
                $var18 = $var16.$tagList;
                ju_ArrayList_ensureCapacity($var18, $var18.$size0 + 1 | 0);
                var$8 = $var18.$array.data;
                $var18$index = $var18.$size0;
                $var18.$size0 = $var18$index + 1 | 0;
                var$8[$var18$index] = $var11;
                $var18.$modCount = $var18.$modCount + 1 | 0;
            }
            $var18$index = $var18$index_0;
        }
        $var9 = $var9 + 1 | 0;
    }
    $par1Chunk = new ju_ConcurrentModificationException;
    $par1Chunk.$suppressionEnabled = 1;
    $par1Chunk.$writableStackTrace = 1;
    $rt_throw($par1Chunk);
};
function cjj_DeflaterOutputStream() {
    let a = this; ji_FilterOutputStream.call(a);
    a.$deflater = null;
    a.$buffer3 = null;
    a.$closed1 = 0;
    a.$syncFlush = 0;
    a.$buf10 = null;
    a.$mydeflater = 0;
    a.$close_out = 0;
}
let cjj_DeflaterOutputStream__init_ = ($this, $out, $deflater, $size, $close_out) => {
    $this.$out0 = $out;
    $this.$closed1 = 0;
    $this.$syncFlush = 0;
    $this.$buf10 = $rt_createByteArray(1);
    $this.$mydeflater = 0;
    $this.$close_out = 1;
    if ($out !== null && $deflater !== null) {
        if ($size > 0) {
            $this.$deflater = $deflater;
            $this.$buffer3 = $rt_createByteArray($size);
            $this.$close_out = $close_out;
            return;
        }
        $deflater = new jl_IllegalArgumentException;
        $deflater.$suppressionEnabled = 1;
        $deflater.$writableStackTrace = 1;
        $deflater.$message = $rt_s(311);
        $rt_throw($deflater);
    }
    $out = new jl_NullPointerException;
    $out.$suppressionEnabled = 1;
    $out.$writableStackTrace = 1;
    $rt_throw($out);
},
cjj_DeflaterOutputStream__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new cjj_DeflaterOutputStream();
    cjj_DeflaterOutputStream__init_(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
cjj_DeflaterOutputStream_write0 = ($this, $b) => {
    let var$2;
    var$2 = $this.$buf10;
    var$2.data[0] = ($b & 255) << 24 >> 24;
    cjj_DeflaterOutputStream_write($this, var$2, 0, 1);
},
cjj_DeflaterOutputStream_write = ($this, $b, $off, $len) => {
    let var$4, $flush, $err, var$7;
    var$4 = $this.$deflater;
    if (var$4.$finished1) {
        var$4 = new ji_IOException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        var$4.$message = $rt_s(362);
        $rt_throw(var$4);
    }
    $flush = $off >= 0 ? 0 : 1;
    $err = $len >= 0 ? 0 : 1;
    var$7 = $b.data;
    if ($flush | $err | (($off + $len | 0) <= var$7.length ? 0 : 1)) {
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if (!$len)
        return;
    $flush = !$this.$syncFlush ? 0 : 2;
    cjj_ZStream_setInput(var$4, $b, $off, $len, 1);
    a: {
        while (true) {
            if ($this.$deflater.$avail_in <= 0)
                break a;
            if (cjj_DeflaterOutputStream_deflate($this, $flush) == 1)
                break;
        }
    }
},
cjj_DeflaterOutputStream_close = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$closed1) {
            while (true) {
                var$1 = $this.$deflater;
                if (var$1.$finished1)
                    break;
                cjj_DeflaterOutputStream_deflate($this, 4);
            }
            if ($this.$mydeflater) {
                var$1.$finished1 = 1;
                var$2 = var$1.$dstate;
                if (var$2 !== null) {
                    cjj_Deflate_deflateEnd(var$2);
                    var$1.$dstate = null;
                    var$1.$next_in = null;
                    var$1.$next_out = null;
                    var$1.$msg = null;
                }
            }
            if ($this.$close_out) {
                var$2 = $this.$out0;
                $ptr = 1;
                continue main;
            }
            $this.$closed1 = 1;
        }
        return;
    case 1:
        var$2.$close();
        if ($rt_suspending()) {
            break main;
        }
        $this.$closed1 = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
cjj_DeflaterOutputStream_deflate = ($this, $flush) => {
    let var$2, var$3, $len, var$5, $err;
    var$2 = $this.$deflater;
    var$3 = $this.$buffer3;
    $len = var$3.data.length;
    var$2.$next_out = var$3;
    var$2.$next_out_index = 0;
    var$2.$avail_out = $len;
    var$5 = var$2.$dstate;
    if (var$5 === null)
        $err = (-2);
    else {
        $err = cjj_Deflate_deflate(var$5, $flush);
        if ($err == 1)
            var$2.$finished1 = 1;
    }
    a: {
        b: {
            switch ($err) {
                case -5:
                    if ($this.$deflater.$avail_in > 0)
                        break b;
                    if ($flush == 4)
                        break b;
                    else
                        break a;
                case 0:
                case 1:
                    break;
                default:
                    break b;
            }
            break a;
        }
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(363);
        $rt_throw(var$2);
    }
    $len = $this.$deflater.$next_out_index;
    if ($len > 0)
        $this.$out0.$write1($this.$buffer3, 0, $len);
    return $err;
},
cjj_DeflaterOutputStream_flush = $this => {
    let $err;
    a: {
        if ($this.$syncFlush && !$this.$deflater.$finished1)
            while (true) {
                $err = cjj_DeflaterOutputStream_deflate($this, 2);
                if ($this.$deflater.$next_out_index < $this.$buffer3.data.length)
                    break;
                if ($err == 1)
                    break a;
            }
    }
    $this.$out0.$flush();
},
cjj_GZIPOutputStream = $rt_classWithoutFields(cjj_DeflaterOutputStream);
function nles_EPK2Compiler() {
    let a = this; jl_Object.call(a);
    a.$os = null;
    a.$checkSum = null;
    a.$lengthIntegerOffset = 0;
    a.$totalFileCount = 0;
}
let nles_EPK2Compiler__init_0 = ($this, $name, $owner, $type) => {
    let $ex, $d, $filename, $typeBytes, var$8, var$9, var$10, $comment, var$12, $nameBytes, $ownerBytes, $$je;
    $ex = new cjj_CRC32;
    $ex.$v = 0;
    $this.$checkSum = $ex;
    $this.$lengthIntegerOffset = 0;
    $this.$totalFileCount = 0;
    $ex = new ji_ByteArrayOutputStream;
    $ex.$buf = $rt_createByteArray(2097152);
    $this.$os = $ex;
    a: {
        try {
            ji_OutputStream_write($ex, $rt_createByteArrayFromData([69, 65, 71, 80, 75, 71, 36, 36]));
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([6, 118, 101, 114, 50, 46, 48]));
            $d = ju_Date__init_0();
            $ex = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append($ex, $name), $rt_s(364));
            $ex = jl_StringBuilder_toString($ex);
            jnc_StandardCharsets_$callClinit();
            $filename = jl_String_getBytes($ex, jnc_StandardCharsets_UTF_8);
            $typeBytes = $filename.data;
            ji_ByteArrayOutputStream_write($this.$os, $typeBytes.length);
            ji_OutputStream_write($this.$os, $filename);
            var$8 = jt_DateFormat_format(jt_SimpleDateFormat__init_($rt_s(365)), $d);
            var$9 = jt_DateFormat_format(jt_SimpleDateFormat__init_($rt_s(366)), $d);
            var$10 = jt_DateFormat_format(jt_SimpleDateFormat__init_($rt_s(367)), $d);
            $ex = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append($ex, $rt_s(368)), var$8), 32), $owner), $rt_s(369)), var$9), $rt_s(370)), var$10), $rt_s(371)), $name), $rt_s(372));
            $comment = jl_String_getBytes(jl_StringBuilder_toString($ex), jnc_StandardCharsets_UTF_8);
            $typeBytes = $comment.data;
            $ex = $this.$os;
            var$12 = $typeBytes.length;
            ji_ByteArrayOutputStream_write($ex, var$12 >> 8 & 255);
            ji_ByteArrayOutputStream_write($this.$os, var$12 & 255);
            ji_OutputStream_write($this.$os, $comment);
            nles_EPK2Compiler_writeLong(ju_Date_getTime($d), $this.$os);
            $this.$lengthIntegerOffset = ji_ByteArrayOutputStream_size($this.$os);
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([(-1), (-1), (-1), (-1)]));
            ji_ByteArrayOutputStream_write($this.$os, 48);
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([72, 69, 65, 68]));
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([9, 102, 105, 108, 101, 45, 116, 121, 112, 101]));
            $typeBytes = jl_String_getBytes($type, jnc_StandardCharsets_UTF_8);
            nles_EPK2Compiler_writeInt($typeBytes.data.length, $this.$os);
            ji_OutputStream_write($this.$os, $typeBytes);
            ji_ByteArrayOutputStream_write($this.$os, 62);
            $this.$totalFileCount = $this.$totalFileCount + 1 | 0;
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([72, 69, 65, 68]));
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([10, 119, 111, 114, 108, 100, 45, 110, 97, 109, 101]));
            $nameBytes = jl_String_getBytes($name, jnc_StandardCharsets_UTF_8);
            nles_EPK2Compiler_writeInt($nameBytes.data.length, $this.$os);
            ji_OutputStream_write($this.$os, $nameBytes);
            ji_ByteArrayOutputStream_write($this.$os, 62);
            $this.$totalFileCount = $this.$totalFileCount + 1 | 0;
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([72, 69, 65, 68]));
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([11, 119, 111, 114, 108, 100, 45, 111, 119, 110, 101, 114]));
            $ownerBytes = jl_String_getBytes($owner, jnc_StandardCharsets_UTF_8);
            nles_EPK2Compiler_writeInt($ownerBytes.data.length, $this.$os);
            ji_OutputStream_write($this.$os, $ownerBytes);
            ji_ByteArrayOutputStream_write($this.$os, 62);
            $this.$totalFileCount = $this.$totalFileCount + 1 | 0;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $ex = $$je;
                break a;
            } else {
                throw $$e;
            }
        }
        return;
    }
    $name = new jl_RuntimeException;
    $name.$suppressionEnabled = 1;
    $name.$writableStackTrace = 1;
    $name.$message = $rt_s(373);
    $name.$cause = $ex;
    $rt_throw($name);
},
nles_EPK2Compiler__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nles_EPK2Compiler();
    nles_EPK2Compiler__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nles_EPK2Compiler_append = ($this, $name, $dat) => {
    let $nameBytes, $ex, var$5, $sum, var$7, $$je;
    a: {
        try {
            $nameBytes = $dat.data;
            cjj_CRC32_reset($this.$checkSum);
            $ex = $this.$checkSum;
            var$5 = $nameBytes.length;
            cjj_CRC32_update($ex, $dat, 0, var$5);
            $sum = cjj_CRC32_getValue($this.$checkSum);
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([70, 73, 76, 69]));
            jnc_StandardCharsets_$callClinit();
            $nameBytes = jl_String_getBytes($name, jnc_StandardCharsets_UTF_8);
            var$7 = $nameBytes.data;
            ji_ByteArrayOutputStream_write($this.$os, var$7.length);
            ji_OutputStream_write($this.$os, $nameBytes);
            nles_EPK2Compiler_writeInt(var$5 + 5 | 0, $this.$os);
            nles_EPK2Compiler_writeInt(Long_lo($sum), $this.$os);
            ji_OutputStream_write($this.$os, $dat);
            ji_ByteArrayOutputStream_write($this.$os, 58);
            ji_ByteArrayOutputStream_write($this.$os, 62);
            $this.$totalFileCount = $this.$totalFileCount + 1 | 0;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $ex = $$je;
                break a;
            } else {
                throw $$e;
            }
        }
        return;
    }
    $name = new jl_RuntimeException;
    $name.$suppressionEnabled = 1;
    $name.$writableStackTrace = 1;
    $name.$message = $rt_s(373);
    $name.$cause = $ex;
    $rt_throw($name);
},
nles_EPK2Compiler_complete = $this => {
    let $ret, var$2, var$3, var$4, $ex, var$6, $$je;
    a: {
        try {
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([69, 78, 68, 36]));
            ji_OutputStream_write($this.$os, $rt_createByteArrayFromData([58, 58, 58, 89, 69, 69, 58, 62]));
            $ret = ji_ByteArrayOutputStream_toByteArray($this.$os);
            var$2 = $ret.data;
            var$3 = $this.$lengthIntegerOffset;
            var$4 = $this.$totalFileCount;
            var$2[var$3] = (var$4 >> 24 & 255) << 24 >> 24;
            var$2[var$3 + 1 | 0] = (var$4 >> 16 & 255) << 24 >> 24;
            var$2[var$3 + 2 | 0] = (var$4 >> 8 & 255) << 24 >> 24;
            var$2[var$3 + 3 | 0] = (var$4 & 255) << 24 >> 24;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $ex = $$je;
                break a;
            } else {
                throw $$e;
            }
        }
        return $ret;
    }
    var$6 = new jl_RuntimeException;
    var$6.$suppressionEnabled = 1;
    var$6.$writableStackTrace = 1;
    var$6.$message = $rt_s(373);
    var$6.$cause = $ex;
    $rt_throw(var$6);
},
nles_EPK2Compiler_writeInt = ($i, $os) => {
    ji_ByteArrayOutputStream_write($os, $i >> 24 & 255);
    ji_ByteArrayOutputStream_write($os, $i >> 16 & 255);
    ji_ByteArrayOutputStream_write($os, $i >> 8 & 255);
    ji_ByteArrayOutputStream_write($os, $i & 255);
},
nles_EPK2Compiler_writeLong = ($i, $os) => {
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 56), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 48), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 40), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 32), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 24), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 16), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and(Long_shr($i, 8), Long_fromInt(255))));
    ji_ByteArrayOutputStream_write($os, Long_lo(Long_and($i, Long_fromInt(255))));
},
nles_VFSIterator = $rt_classWithoutFields(0);
function nles_WorldConverterEPK$exportWorld$lambda$_2_0() {
    let a = this; jl_Object.call(a);
    a.$_05 = null;
    a.$_10 = null;
    a.$_20 = null;
    a.$_30 = null;
}
let nles_WorldConverterEPK$exportWorld$lambda$_2_0_next = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = var$0.$_05;
        var$3 = var$0.$_10;
        var$4 = var$0.$_20;
        var$5 = var$0.$_30;
        $ptr = 1;
    case 1:
        nles_WorldConverterEPK_lambda$exportWorld$0(var$2, var$3, var$4, var$5, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, $ptr);
};
function juz_DeflaterOutputStream() {
    let a = this; ji_FilterOutputStream.call(a);
    a.$buf3 = null;
    a.$def = null;
    a.$done = 0;
}
let juz_DeflaterOutputStream_deflate = $this => {
    let var$1, var$2, var$3;
    while (true) {
        var$1 = $this.$def;
        var$2 = $this.$buf3;
        var$3 = juz_Deflater_deflate(var$1, var$2, 0, var$2.data.length, var$1.$flushParm);
        $this.$out0.$write1($this.$buf3, 0, var$3);
        var$1 = $this.$def;
        if (!(var$1.$inRead0 != var$1.$inLength0 ? 0 : 1))
            continue;
        else
            break;
    }
},
juz_DeflaterOutputStream_close = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$def.$finished3)
            juz_DeflaterOutputStream_finish($this);
        $this.$def.$impl1 = null;
        var$1 = $this.$out0;
        $ptr = 1;
    case 1:
        var$1.$close();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
juz_DeflaterOutputStream_finish = $this => {
    let var$1, var$2, var$3;
    if ($this.$done)
        return;
    $this.$def.$flushParm = 4;
    while (true) {
        var$1 = $this.$def;
        if (var$1.$finished3)
            break;
        if (var$1.$inRead0 != var$1.$inLength0 ? 0 : 1)
            juz_Deflater_setInput(var$1, $this.$buf3, 0, 0);
        var$1 = $this.$def;
        var$2 = $this.$buf3;
        var$3 = juz_Deflater_deflate(var$1, var$2, 0, var$2.data.length, var$1.$flushParm);
        $this.$out0.$write1($this.$buf3, 0, var$3);
    }
    $this.$done = 1;
},
juz_DeflaterOutputStream_write0 = ($this, $i) => {
    let $b;
    $b = $rt_createByteArray(1);
    $b.data[0] = $i << 24 >> 24;
    juz_DeflaterOutputStream_write($this, $b, 0, 1);
},
juz_DeflaterOutputStream_write = ($this, $buffer, $off, $nbytes) => {
    let var$4, var$5;
    if ($this.$done) {
        var$4 = new ji_IOException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$5 = $buffer.data.length;
    if ($off <= var$5 && $nbytes >= 0 && $off >= 0 && (var$5 - $off | 0) >= $nbytes) {
        var$4 = $this.$def;
        if (!(var$4.$inRead0 != var$4.$inLength0 ? 0 : 1)) {
            var$4 = new ji_IOException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
        juz_Deflater_setInput(var$4, $buffer, $off, $nbytes);
        while (true) {
            var$4 = $this.$def;
            $buffer = $this.$buf3;
            $nbytes = juz_Deflater_deflate(var$4, $buffer, 0, $buffer.data.length, var$4.$flushParm);
            $this.$out0.$write1($this.$buf3, 0, $nbytes);
            var$4 = $this.$def;
            if (!(var$4.$inRead0 != var$4.$inLength0 ? 0 : 1))
                continue;
            else
                break;
        }
        return;
    }
    var$4 = new jl_ArrayIndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
};
function juz_ZipOutputStream() {
    let a = this; juz_DeflaterOutputStream.call(a);
    a.$comment0 = null;
    a.$entries = null;
    a.$compressMethod = 0;
    a.$compressLevel0 = 0;
    a.$cDir = null;
    a.$currentEntry = null;
    a.$crc1 = null;
    a.$offset0 = 0;
    a.$curOffset = 0;
    a.$nameLength = 0;
    a.$nameBytes = null;
}
let juz_ZipOutputStream_close = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$out0 === null)
            return;
        juz_ZipOutputStream_finish($this);
        var$1 = $this.$out0;
        $ptr = 1;
    case 1:
        var$1.$close();
        if ($rt_suspending()) {
            break main;
        }
        $this.$out0 = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
juz_ZipOutputStream_closeEntry = $this => {
    let var$1, var$2, $c, var$4, var$5, var$6, var$7, var$8, var$9;
    if ($this.$cDir === null) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$1 = $this.$currentEntry;
    if (var$1 === null)
        return;
    if (var$1.$compressionMethod == 8)
        juz_DeflaterOutputStream_finish($this);
    var$1 = $this.$currentEntry;
    var$2 = var$1.$compressionMethod;
    if (!var$2) {
        $c = $this.$crc1;
        if (Long_ne(Long_and(Long_fromInt($c.$impl0.$v), Long_create(4294967295, 0)), var$1.$crc0)) {
            var$1 = new juz_ZipException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        if (Long_ne(var$1.$size5, $c.$tbytes)) {
            var$1 = new juz_ZipException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
    }
    $this.$curOffset = 30;
    if (var$2) {
        $this.$curOffset = 46;
        juz_ZipOutputStream_writeLong($this, $this.$out0, Long_fromInt(134695760));
        var$1 = $this.$currentEntry;
        var$4 = Long_and(Long_fromInt($this.$crc1.$impl0.$v), Long_create(4294967295, 0));
        var$1.$crc0 = var$4;
        juz_ZipOutputStream_writeLong($this, $this.$out0, var$4);
        var$1 = $this.$currentEntry;
        $c = $this.$def.$impl1;
        if ($c === null) {
            var$1 = new jl_IllegalStateException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$4 = Long_fromInt(Long_lo($c.$total_out));
        var$1.$compressedSize = var$4;
        juz_ZipOutputStream_writeLong($this, $this.$out0, var$4);
        var$1 = $this.$currentEntry;
        $c = $this.$def.$impl1;
        if ($c === null) {
            var$1 = new jl_IllegalStateException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$4 = Long_fromInt(Long_lo($c.$total_in));
        var$1.$size5 = var$4;
        juz_ZipOutputStream_writeLong($this, $this.$out0, var$4);
    }
    juz_ZipOutputStream_writeLong($this, $this.$cDir, Long_fromInt(33639248));
    var$1 = $this.$cDir;
    ji_ByteArrayOutputStream_write(var$1, 20);
    ji_ByteArrayOutputStream_write(var$1, 0);
    var$1 = $this.$cDir;
    ji_ByteArrayOutputStream_write(var$1, 20);
    ji_ByteArrayOutputStream_write(var$1, 0);
    var$1 = $this.$cDir;
    var$5 = $this.$currentEntry.$compressionMethod ? 8 : 0;
    ji_ByteArrayOutputStream_write(var$1, var$5 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$5 >> 8 & 255);
    var$1 = $this.$cDir;
    var$2 = $this.$currentEntry.$compressionMethod;
    ji_ByteArrayOutputStream_write(var$1, var$2 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$2 >> 8 & 255);
    var$1 = $this.$cDir;
    var$5 = $this.$currentEntry.$time1;
    ji_ByteArrayOutputStream_write(var$1, var$5 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$5 >> 8 & 255);
    var$1 = $this.$cDir;
    var$5 = $this.$currentEntry.$modDate;
    ji_ByteArrayOutputStream_write(var$1, var$5 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$5 >> 8 & 255);
    juz_ZipOutputStream_writeLong($this, $this.$cDir, Long_and(Long_fromInt($this.$crc1.$impl0.$v), Long_create(4294967295, 0)));
    if ($this.$currentEntry.$compressionMethod != 8) {
        $this.$curOffset = Long_lo(Long_add(Long_fromInt($this.$curOffset), juz_ZipOutputStream_writeLong($this, $this.$cDir, $this.$crc1.$tbytes)));
        juz_ZipOutputStream_writeLong($this, $this.$cDir, $this.$crc1.$tbytes);
    } else {
        var$4 = Long_fromInt($this.$curOffset);
        var$1 = $this.$cDir;
        $c = $this.$def.$impl1;
        if ($c === null) {
            var$1 = new jl_IllegalStateException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        $this.$curOffset = Long_lo(Long_add(var$4, juz_ZipOutputStream_writeLong($this, var$1, Long_fromInt(Long_lo($c.$total_out)))));
        var$1 = $this.$cDir;
        $c = $this.$def.$impl1;
        if ($c === null) {
            var$1 = new jl_IllegalStateException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        juz_ZipOutputStream_writeLong($this, var$1, Long_fromInt(Long_lo($c.$total_in)));
    }
    var$5 = $this.$curOffset;
    var$1 = $this.$cDir;
    var$2 = $this.$nameLength;
    ji_ByteArrayOutputStream_write(var$1, var$2 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$2 >> 8 & 255);
    var$5 = var$5 + var$2 | 0;
    $this.$curOffset = var$5;
    var$6 = $this.$currentEntry.$extra0;
    if (var$6 === null) {
        var$1 = $this.$cDir;
        ji_ByteArrayOutputStream_write(var$1, 0);
        ji_ByteArrayOutputStream_write(var$1, 0);
    } else {
        var$6 = var$6.data;
        var$1 = $this.$cDir;
        var$2 = var$6.length;
        ji_ByteArrayOutputStream_write(var$1, var$2 & 255);
        ji_ByteArrayOutputStream_write(var$1, var$2 >> 8 & 255);
        $this.$curOffset = var$5 + var$2 | 0;
    }
    $c = $this.$currentEntry.$comment1;
    var$1 = $this.$cDir;
    var$5 = $c === null ? 0 : $c.$length();
    ji_ByteArrayOutputStream_write(var$1, var$5 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$5 >> 8 & 255);
    var$1 = $this.$cDir;
    ji_ByteArrayOutputStream_write(var$1, 0);
    ji_ByteArrayOutputStream_write(var$1, 0);
    var$1 = $this.$cDir;
    ji_ByteArrayOutputStream_write(var$1, 0);
    ji_ByteArrayOutputStream_write(var$1, 0);
    juz_ZipOutputStream_writeLong($this, $this.$cDir, Long_ZERO);
    juz_ZipOutputStream_writeLong($this, $this.$cDir, Long_fromInt($this.$offset0));
    var$1 = $this.$cDir;
    var$6 = $this.$nameBytes;
    ji_ByteArrayOutputStream_write0(var$1, var$6, 0, var$6.data.length);
    $this.$nameBytes = null;
    var$6 = $this.$currentEntry.$extra0;
    if (var$6 !== null) {
        var$7 = var$6.data;
        ji_ByteArrayOutputStream_write0($this.$cDir, var$6, 0, var$7.length);
    }
    $this.$offset0 = $this.$offset0 + $this.$curOffset | 0;
    if ($c !== null) {
        var$1 = $this.$cDir;
        var$6 = $c.$getBytes0();
        ji_ByteArrayOutputStream_write0(var$1, var$6, 0, var$6.data.length);
    }
    $this.$currentEntry = null;
    var$1 = $this.$crc1;
    var$1.$impl0.$v = 0;
    var$1.$tbytes = Long_ZERO;
    var$1 = $this.$def;
    $c = var$1.$impl1;
    if ($c === null) {
        var$1 = new jl_NullPointerException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$1.$flushParm = 0;
    var$1.$finished3 = 0;
    var$2 = var$1.$compressLevel;
    var$5 = 15;
    var$8 = var$1.$nowrap0;
    $c.$finished1 = 0;
    var$9 = cjj_Deflate__init_($c);
    $c.$dstate = var$9;
    if (var$8)
        var$5 = (-15);
    cjj_Deflate_deflateInit(var$9, var$2, 8, var$5, 8, 0);
    $c = var$1.$impl1;
    var$5 = var$1.$compressLevel;
    var$2 = var$1.$strategy0;
    var$1 = $c.$dstate;
    if (var$1 !== null)
        cjj_Deflate_deflateParams(var$1, var$5, var$2);
    $this.$done = 0;
},
juz_ZipOutputStream_finish = $this => {
    let var$1, $cdirSize, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    if ($this.$out0 === null) {
        var$1 = new ji_IOException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if ($this.$cDir === null)
        return;
    if (!$this.$entries.$size0) {
        var$1 = new juz_ZipException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if ($this.$currentEntry !== null)
        juz_ZipOutputStream_closeEntry($this);
    var$1 = $this.$cDir;
    $cdirSize = var$1.$count0;
    juz_ZipOutputStream_writeLong($this, var$1, Long_fromInt(101010256));
    var$1 = $this.$cDir;
    ji_ByteArrayOutputStream_write(var$1, 0);
    ji_ByteArrayOutputStream_write(var$1, 0);
    var$1 = $this.$cDir;
    ji_ByteArrayOutputStream_write(var$1, 0);
    ji_ByteArrayOutputStream_write(var$1, 0);
    var$1 = $this.$cDir;
    var$3 = $this.$entries.$size0;
    ji_ByteArrayOutputStream_write(var$1, var$3 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$3 >> 8 & 255);
    var$1 = $this.$cDir;
    var$3 = $this.$entries.$size0;
    ji_ByteArrayOutputStream_write(var$1, var$3 & 255);
    ji_ByteArrayOutputStream_write(var$1, var$3 >> 8 & 255);
    juz_ZipOutputStream_writeLong($this, $this.$cDir, Long_fromInt($cdirSize));
    juz_ZipOutputStream_writeLong($this, $this.$cDir, Long_fromInt($this.$offset0));
    var$1 = $this.$comment0;
    if (var$1 === null) {
        var$1 = $this.$cDir;
        ji_ByteArrayOutputStream_write(var$1, 0);
        ji_ByteArrayOutputStream_write(var$1, 0);
    } else {
        var$4 = $this.$cDir;
        var$3 = var$1.$nativeString.length;
        ji_ByteArrayOutputStream_write(var$4, var$3 & 255);
        ji_ByteArrayOutputStream_write(var$4, var$3 >> 8 & 255);
        var$1 = $this.$cDir;
        var$4 = $this.$comment0;
        var$5 = jnci_UTF8Charset_INSTANCE;
        var$6 = $rt_fastStringToCharArray(var$4.$nativeString);
        var$7 = var$6.data.length;
        var$4 = new jn_CharBufferOverArray;
        var$3 = 0 + var$7 | 0;
        jl_Object__init_(var$4);
        var$4.$mark0 = (-1);
        var$4.$capacity = var$7;
        var$4.$limit = var$7;
        var$4.$position1 = 0;
        var$4.$limit = var$3;
        var$4.$start1 = 0;
        var$4.$readOnly = 0;
        var$4.$array0 = var$6;
        a: {
            try {
                var$4 = jnc_CharsetEncoder_encode(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput(jnci_UTF8Charset_newEncoder(var$5), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), var$4);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jnc_CharacterCodingException) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = new jl_AssertionError;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            var$5.$message = $rt_s(103);
            var$5.$cause = var$4;
            $rt_throw(var$5);
        }
        var$8 = var$4.$position1;
        if (!var$8 && var$4.$limit == var$4.$capacity)
            var$6 = var$4.$array2;
        else {
            var$6 = $rt_createByteArray(var$4.$limit - var$8 | 0);
            jn_ByteBuffer_get(var$4, var$6, 0, var$6.data.length);
        }
        ji_ByteArrayOutputStream_write0(var$1, var$6, 0, var$6.data.length);
    }
    var$1 = $this.$out0;
    var$4 = $this.$cDir;
    var$6 = var$4.$buf.data;
    var$9 = var$4.$count0;
    var$10 = $rt_createByteArray(var$9);
    var$3 = var$6.length;
    if (var$9 < var$3)
        var$3 = var$9;
    var$11 = var$10.data;
    var$9 = 0;
    while (var$9 < var$3) {
        var$11[var$9] = var$6[var$9];
        var$9 = var$9 + 1 | 0;
    }
    var$1.$write1(var$10, 0, var$11.length);
    $this.$cDir = null;
},
juz_ZipOutputStream_putNextEntry = ($this, $ze) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    if ($this.$currentEntry !== null)
        juz_ZipOutputStream_closeEntry($this);
    a: {
        var$2 = $ze.$compressionMethod;
        if (var$2) {
            if ($this.$compressMethod)
                break a;
            if (var$2 != (-1))
                break a;
        }
        if (Long_eq($ze.$crc0, Long_fromInt(-1))) {
            $ze = new juz_ZipException;
            $ze.$suppressionEnabled = 1;
            $ze.$writableStackTrace = 1;
            $ze.$message = $rt_s(374);
            $rt_throw($ze);
        }
        var$3 = $ze.$size5;
        var$4 = Long_compare(var$3, Long_fromInt(-1));
        if (!var$4 && Long_eq($ze.$compressedSize, Long_fromInt(-1))) {
            $ze = new juz_ZipException;
            $ze.$suppressionEnabled = 1;
            $ze.$writableStackTrace = 1;
            $ze.$message = $rt_s(375);
            $rt_throw($ze);
        }
        var$5 = $ze.$compressedSize;
        if (Long_ne(var$3, var$5) && Long_ne(var$5, Long_fromInt(-1)) && var$4) {
            $ze = new juz_ZipException;
            $ze.$suppressionEnabled = 1;
            $ze.$writableStackTrace = 1;
            $ze.$message = $rt_s(375);
            $rt_throw($ze);
        }
    }
    if ($this.$cDir === null) {
        $ze = new ji_IOException;
        $ze.$suppressionEnabled = 1;
        $ze.$writableStackTrace = 1;
        $ze.$message = $rt_s(310);
        $rt_throw($ze);
    }
    var$6 = $this.$entries;
    var$7 = $ze.$name8;
    var$8 = 0;
    var$9 = var$6.$modCount;
    var$10 = var$6.$size();
    b: {
        while (true) {
            if (!(var$8 >= var$10 ? 0 : 1)) {
                var$4 = 0;
                break b;
            }
            if (var$9 < var$6.$modCount)
                break;
            var$2 = var$8 + 1 | 0;
            var$11 = var$6.$get(var$8);
            if (var$11 === var$7 ? 1 : var$11 !== null ? var$11.$equals(var$7) : var$7 !== null ? 0 : 1) {
                var$4 = 1;
                break b;
            }
            var$8 = var$2;
        }
        $ze = new ju_ConcurrentModificationException;
        $ze.$suppressionEnabled = 1;
        $ze.$writableStackTrace = 1;
        $rt_throw($ze);
    }
    if (var$4) {
        var$6 = new juz_ZipException;
        $ze = $ze.$name8;
        var$7 = new jl_StringBuilder;
        var$7.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(376));
        var$4 = var$7.$length0;
        if ($ze === null)
            $ze = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$7, var$4, $ze);
        $ze = new jl_String;
        var$12 = var$7.$buffer;
        var$13 = var$12.data;
        var$2 = var$7.$length0;
        var$9 = var$13.length;
        if (var$2 >= 0 && var$2 <= (var$9 - 0 | 0)) {
            $ze.$nativeString = $rt_charArrayToString(var$12.data, 0, var$2);
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            var$6.$message = $ze;
            $rt_throw(var$6);
        }
        $ze = new jl_IndexOutOfBoundsException;
        $ze.$suppressionEnabled = 1;
        $ze.$writableStackTrace = 1;
        $rt_throw($ze);
    }
    var$4 = juz_ZipOutputStream_utf8Count($ze.$name8);
    $this.$nameLength = var$4;
    if (var$4 > 65535) {
        var$6 = new jl_IllegalArgumentException;
        $ze = $ze.$name8;
        var$7 = new jl_StringBuilder;
        var$7.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(377));
        var$4 = var$7.$length0;
        if ($ze === null)
            $ze = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$7, var$4, $ze);
        $ze = new jl_String;
        var$12 = var$7.$buffer;
        var$13 = var$12.data;
        var$2 = var$7.$length0;
        var$9 = var$13.length;
        if (var$2 >= 0 && var$2 <= (var$9 - 0 | 0)) {
            $ze.$nativeString = $rt_charArrayToString(var$12.data, 0, var$2);
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            var$6.$message = $ze;
            $rt_throw(var$6);
        }
        $ze = new jl_IndexOutOfBoundsException;
        $ze.$suppressionEnabled = 1;
        $ze.$writableStackTrace = 1;
        $rt_throw($ze);
    }
    var$6 = $this.$def;
    var$4 = $this.$compressLevel0;
    if (var$4 >= (-1) && var$4 <= 9) {
        var$6.$compressLevel = var$4;
        $this.$currentEntry = $ze;
        var$6 = $this.$entries;
        $ze = $ze.$name8;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$12 = var$6.$array.data;
        var$2 = var$6.$size0;
        var$6.$size0 = var$2 + 1 | 0;
        var$12[var$2] = $ze;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $ze = $this.$currentEntry;
        if ($ze.$compressionMethod == (-1)) {
            var$4 = $this.$compressMethod;
            if (var$4 && var$4 != 8) {
                $ze = new jl_IllegalArgumentException;
                $ze.$suppressionEnabled = 1;
                $ze.$writableStackTrace = 1;
                $rt_throw($ze);
            }
            $ze.$compressionMethod = var$4;
        }
        juz_ZipOutputStream_writeLong($this, $this.$out0, Long_fromInt(67324752));
        $ze = $this.$out0;
        $ze.$write0(20);
        $ze.$write0(0);
        $ze = $this.$out0;
        var$4 = $this.$currentEntry.$compressionMethod ? 8 : 0;
        $ze.$write0(var$4 & 255);
        $ze.$write0(var$4 >> 8 & 255);
        $ze = $this.$out0;
        var$2 = $this.$currentEntry.$compressionMethod;
        $ze.$write0(var$2 & 255);
        $ze.$write0(var$2 >> 8 & 255);
        if (Long_eq(juz_ZipEntry_getTime($this.$currentEntry), Long_fromInt(-1)))
            juz_ZipEntry_setTime($this.$currentEntry, jl_System_currentTimeMillis());
        $ze = $this.$out0;
        var$4 = $this.$currentEntry.$time1;
        $ze.$write0(var$4 & 255);
        $ze.$write0(var$4 >> 8 & 255);
        $ze = $this.$out0;
        var$4 = $this.$currentEntry.$modDate;
        $ze.$write0(var$4 & 255);
        $ze.$write0(var$4 >> 8 & 255);
        $ze = $this.$currentEntry;
        if ($ze.$compressionMethod) {
            juz_ZipOutputStream_writeLong($this, $this.$out0, Long_ZERO);
            juz_ZipOutputStream_writeLong($this, $this.$out0, Long_ZERO);
            juz_ZipOutputStream_writeLong($this, $this.$out0, Long_ZERO);
        } else {
            var$3 = $ze.$size5;
            if (Long_eq(var$3, Long_fromInt(-1)))
                $ze.$size5 = $ze.$compressedSize;
            else if (Long_eq($ze.$compressedSize, Long_fromInt(-1)))
                $ze.$compressedSize = var$3;
            juz_ZipOutputStream_writeLong($this, $this.$out0, $ze.$crc0);
            juz_ZipOutputStream_writeLong($this, $this.$out0, $this.$currentEntry.$size5);
            juz_ZipOutputStream_writeLong($this, $this.$out0, $this.$currentEntry.$size5);
        }
        $ze = $this.$out0;
        var$4 = $this.$nameLength;
        $ze.$write0(var$4 & 255);
        $ze.$write0(var$4 >> 8 & 255);
        $ze = $this.$out0;
        var$12 = $this.$currentEntry.$extra0;
        var$4 = var$12 === null ? 0 : var$12.data.length;
        $ze.$write0(var$4 & 255);
        $ze.$write0(var$4 >> 8 & 255);
        var$12 = juz_ZipOutputStream_toUTF8Bytes($this.$currentEntry.$name8, $this.$nameLength);
        var$13 = var$12.data;
        $this.$nameBytes = var$12;
        $this.$out0.$write1(var$12, 0, var$13.length);
        var$12 = $this.$currentEntry.$extra0;
        if (var$12 !== null) {
            var$13 = var$12.data;
            $this.$out0.$write1(var$12, 0, var$13.length);
        }
        return;
    }
    $ze = new jl_IllegalArgumentException;
    $ze.$suppressionEnabled = 1;
    $ze.$writableStackTrace = 1;
    $rt_throw($ze);
},
juz_ZipOutputStream_setComment = ($this, $comment) => {
    if ($comment.$nativeString.length <= 65535) {
        $this.$comment0 = $comment;
        return;
    }
    $comment = new jl_IllegalArgumentException;
    $comment.$suppressionEnabled = 1;
    $comment.$writableStackTrace = 1;
    $rt_throw($comment);
},
juz_ZipOutputStream_writeLong = ($this, $os, $i) => {
    $os.$write0(Long_lo(Long_and($i, Long_fromInt(255))));
    $os.$write0(Long_lo(Long_shr($i, 8)) & 255);
    $os.$write0(Long_lo(Long_shr($i, 16)) & 255);
    $os.$write0(Long_lo(Long_shr($i, 24)) & 255);
    return $i;
},
juz_ZipOutputStream_write = ($this, $buffer, $off, $nbytes) => {
    let var$4, var$5;
    if ($off >= 0 && $nbytes >= 0) {
        var$4 = $buffer.data.length;
        if ($off <= var$4 && (var$4 - $off | 0) >= $nbytes) {
            var$5 = $this.$currentEntry;
            if (var$5 === null) {
                var$5 = new juz_ZipException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                var$5.$message = $rt_s(378);
                $rt_throw(var$5);
            }
            if (var$5.$compressionMethod)
                juz_DeflaterOutputStream_write($this, $buffer, $off, $nbytes);
            else
                $this.$out0.$write1($buffer, $off, $nbytes);
            juz_CRC32_update($this.$crc1, $buffer, $off, $nbytes);
            return;
        }
    }
    var$5 = new jl_IndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
juz_ZipOutputStream_utf8Count = $value => {
    let $total, $i, $ch;
    $total = 0;
    $i = $value.$nativeString.length;
    a: {
        while (true) {
            $i = $i + (-1) | 0;
            if ($i < 0)
                break;
            if ($i < 0)
                break a;
            if ($i >= $value.$nativeString.length)
                break a;
            $ch = $value.$nativeString.charCodeAt($i);
            $total = $ch < 128 ? $total + 1 | 0 : $ch >= 2048 ? $total + 3 | 0 : $total + 2 | 0;
        }
        return $total;
    }
    $value = new jl_StringIndexOutOfBoundsException;
    $value.$suppressionEnabled = 1;
    $value.$writableStackTrace = 1;
    $rt_throw($value);
},
juz_ZipOutputStream_toUTF8Bytes = ($value, $length) => {
    let $result, var$4, $pos, $i, $ch;
    $result = $rt_createByteArray($length);
    var$4 = $result.data;
    $pos = var$4.length;
    $i = $value.$nativeString.length;
    a: {
        while (true) {
            $i = $i + (-1) | 0;
            if ($i < 0)
                break;
            if ($i < 0)
                break a;
            if ($i >= $value.$nativeString.length)
                break a;
            $ch = $value.$nativeString.charCodeAt($i);
            if ($ch < 128) {
                $pos = $pos + (-1) | 0;
                var$4[$pos] = $ch << 24 >> 24;
            } else if ($ch < 2048) {
                $length = $pos + (-1) | 0;
                var$4[$length] = (128 | $ch & 63) << 24 >> 24;
                $pos = $length + (-1) | 0;
                var$4[$pos] = (192 | $ch >> 6) << 24 >> 24;
            } else {
                $pos = $pos + (-1) | 0;
                var$4[$pos] = (128 | $ch & 63) << 24 >> 24;
                $length = $pos + (-1) | 0;
                var$4[$length] = (128 | $ch >> 6 & 63) << 24 >> 24;
                $pos = $length + (-1) | 0;
                var$4[$pos] = (224 | $ch >> 12) << 24 >> 24;
            }
        }
        return $result;
    }
    $value = new jl_StringIndexOutOfBoundsException;
    $value.$suppressionEnabled = 1;
    $value.$writableStackTrace = 1;
    $rt_throw($value);
};
function juz_ZipEntry() {
    let a = this; jl_Object.call(a);
    a.$name8 = null;
    a.$comment1 = null;
    a.$compressedSize = Long_ZERO;
    a.$crc0 = Long_ZERO;
    a.$size5 = Long_ZERO;
    a.$compressionMethod = 0;
    a.$time1 = 0;
    a.$modDate = 0;
    a.$extra0 = null;
    a.$nameLen = 0;
    a.$mLocalHeaderRelOffset = Long_ZERO;
}
let juz_ZipEntry__init_ = ($this, $name) => {
    $this.$compressedSize = Long_fromInt(-1);
    $this.$crc0 = Long_fromInt(-1);
    $this.$size5 = Long_fromInt(-1);
    $this.$compressionMethod = (-1);
    $this.$time1 = (-1);
    $this.$modDate = (-1);
    $this.$nameLen = (-1);
    $this.$mLocalHeaderRelOffset = Long_fromInt(-1);
    if ($name === null) {
        $name = new jl_NullPointerException;
        $name.$suppressionEnabled = 1;
        $name.$writableStackTrace = 1;
        $rt_throw($name);
    }
    if ($name.$nativeString.length <= 65535) {
        $this.$name8 = $name;
        return;
    }
    $name = new jl_IllegalArgumentException;
    $name.$suppressionEnabled = 1;
    $name.$writableStackTrace = 1;
    $rt_throw($name);
},
juz_ZipEntry__init_0 = var_0 => {
    let var_1 = new juz_ZipEntry();
    juz_ZipEntry__init_(var_1, var_0);
    return var_1;
},
juz_ZipEntry_getName = $this => {
    return $this.$name8;
},
juz_ZipEntry_getSize = $this => {
    return $this.$size5;
},
juz_ZipEntry_getTime = $this => {
    let $cal, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if ($this.$time1 == (-1))
        return Long_fromInt(-1);
    $cal = ju_GregorianCalendar__init_0();
    ju_Calendar_set($cal, 14, 0);
    var$2 = $this.$modDate;
    var$3 = 1980 + (var$2 >> 9 & 127) | 0;
    var$4 = (var$2 >> 5 & 15) - 1 | 0;
    var$5 = var$2 & 31;
    var$6 = $this.$time1;
    var$7 = var$6 >> 11 & 31;
    var$2 = var$6 >> 5 & 63;
    var$8 = (var$6 & 31) << 1;
    ju_Calendar_set($cal, 1, var$3);
    ju_Calendar_set($cal, 2, var$4);
    ju_Calendar_set($cal, 5, var$5);
    ju_Calendar_set($cal, 11, var$7);
    ju_Calendar_set($cal, 12, var$2);
    ju_Calendar_set($cal, 13, var$8);
    if (!$cal.$isTimeSet) {
        ju_GregorianCalendar_computeTime($cal);
        $cal.$isTimeSet = 1;
    }
    return $cal.$time;
},
juz_ZipEntry_isDirectory = $this => {
    let var$1, var$2;
    var$1 = $this.$name8;
    var$2 = var$1.$nativeString.length - 1 | 0;
    if (var$2 >= 0 && var$2 < var$1.$nativeString.length)
        return var$1.$nativeString.charCodeAt(var$2) != 47 ? 0 : 1;
    var$1 = new jl_StringIndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
juz_ZipEntry_setTime = ($this, $value) => {
    let $cal;
    $cal = ju_GregorianCalendar__init_0();
    if (!($cal.$isTimeSet && $cal.$areFieldsSet && Long_eq($cal.$time, $value))) {
        $cal.$time = $value;
        $cal.$isTimeSet = 1;
        $cal.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields($cal);
        $cal.$areFieldsSet = 1;
    }
    if (!$cal.$isTimeSet) {
        ju_GregorianCalendar_computeTime($cal);
        $cal.$isTimeSet = 1;
    }
    if (!$cal.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($cal);
        $cal.$areFieldsSet = 1;
    }
    if ($cal.$fields.data[1] < 1980) {
        $this.$modDate = 33;
        $this.$time1 = 0;
    } else {
        if (!$cal.$isTimeSet) {
            ju_GregorianCalendar_computeTime($cal);
            $cal.$isTimeSet = 1;
        }
        if (!$cal.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($cal);
            $cal.$areFieldsSet = 1;
        }
        $this.$modDate = $cal.$fields.data[5];
        if (!$cal.$isTimeSet) {
            ju_GregorianCalendar_computeTime($cal);
            $cal.$isTimeSet = 1;
        }
        if (!$cal.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($cal);
            $cal.$areFieldsSet = 1;
        }
        $this.$modDate = ($cal.$fields.data[2] + 1 | 0) << 5 | $this.$modDate;
        if (!$cal.$isTimeSet) {
            ju_GregorianCalendar_computeTime($cal);
            $cal.$isTimeSet = 1;
        }
        if (!$cal.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($cal);
            $cal.$areFieldsSet = 1;
        }
        $this.$modDate = ($cal.$fields.data[1] - 1980 | 0) << 9 | $this.$modDate;
        if (!$cal.$isTimeSet) {
            ju_GregorianCalendar_computeTime($cal);
            $cal.$isTimeSet = 1;
        }
        if (!$cal.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($cal);
            $cal.$areFieldsSet = 1;
        }
        $this.$time1 = $cal.$fields.data[13] >> 1;
        if (!$cal.$isTimeSet) {
            ju_GregorianCalendar_computeTime($cal);
            $cal.$isTimeSet = 1;
        }
        if (!$cal.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($cal);
            $cal.$areFieldsSet = 1;
        }
        $this.$time1 = $cal.$fields.data[12] << 5 | $this.$time1;
        if (!$cal.$isTimeSet) {
            ju_GregorianCalendar_computeTime($cal);
            $cal.$isTimeSet = 1;
        }
        if (!$cal.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($cal);
            $cal.$areFieldsSet = 1;
        }
        $this.$time1 = $cal.$fields.data[11] << 11 | $this.$time1;
    }
},
ju_Map$Entry = $rt_classWithoutFields(0);
function nms_ServerConfigurationManager() {
    let a = this; jl_Object.call(a);
    a.$mcServer1 = null;
    a.$playerEntityList = null;
    a.$bannedPlayers = null;
    a.$bannedIPs = null;
    a.$ops = null;
    a.$whiteListedPlayers = null;
    a.$playerNBTManagerObj = null;
    a.$maxPlayers = 0;
    a.$viewDistance = 0;
    a.$gameType2 = null;
    a.$commandsAllowedForAll = 0;
    a.$playerPingIndex = 0;
}
let nms_ServerConfigurationManager_dateFormat = null,
nms_ServerConfigurationManager_$callClinit = () => {
    nms_ServerConfigurationManager_$callClinit = $rt_eraseClinit(nms_ServerConfigurationManager);
    nms_ServerConfigurationManager__clinit_();
},
nms_ServerConfigurationManager__init_ = ($this, $par1MinecraftServer) => {
    let var$2, var$3, var$4, var$5;
    nms_ServerConfigurationManager_$callClinit();
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$playerEntityList = var$2;
    var$3 = new nms_BanList;
    var$2 = new ji_File;
    ji_File_$callClinit();
    var$2.$path0 = ji_File_fixSlashes($rt_s(379));
    var$4 = new nms_LowerStringMap;
    var$4.$internalMap = ju_LinkedHashMap__init_();
    var$3.$theBanList = var$4;
    var$3.$listActive = 1;
    var$3.$fileName = var$2;
    $this.$bannedPlayers = var$3;
    var$2 = new nms_BanList;
    var$5 = new ji_File;
    var$5.$path0 = ji_File_fixSlashes($rt_s(380));
    var$4 = new nms_LowerStringMap;
    var$4.$internalMap = ju_LinkedHashMap__init_();
    var$2.$theBanList = var$4;
    var$2.$listActive = 1;
    var$2.$fileName = var$5;
    $this.$bannedIPs = var$2;
    $this.$ops = ju_HashSet__init_();
    $this.$whiteListedPlayers = ju_HashSet__init_();
    $this.$mcServer1 = $par1MinecraftServer;
    $this.$bannedPlayers.$listActive = 0;
    $this.$bannedIPs.$listActive = 0;
    $this.$maxPlayers = 8;
},
nms_ServerConfigurationManager_initializeConnectionToPlayer = ($this, $par1INetworkManager, $par2EntityPlayerMP) => {
    let $var3, $var8, var$5, $var9, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var4, var$16, $var5, var$18, var$19, var$20, var$21, var$22, var$23, $var10, var$25, var$26, var$27, var$28, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var10 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var5 = $thread.pop();var$16 = $thread.pop();$var4 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7
        = $thread.pop();$var9 = $thread.pop();var$5 = $thread.pop();$var8 = $thread.pop();$var3 = $thread.pop();$par2EntityPlayerMP = $thread.pop();$par1INetworkManager = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (jl_System_outCache === null) {
            $var3 = new otcic_JSStdoutPrintStream;
            $var8 = new ji_ByteArrayOutputStream;
            $var8.$buf = $rt_createByteArray(32);
            $var3.$out0 = $var8;
            $var8 = new jl_StringBuilder;
            jl_Object__init_($var8);
            $var8.$buffer = $rt_createCharArray(16);
            $var3.$sb = $var8;
            $var3.$buffer0 = $rt_createCharArray(32);
            $var3.$autoFlush = 0;
            $var3.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var3;
        }
        $rt_putStdout("player connection initialized");
        $rt_putStdout("\n");
        $var3 = $par2EntityPlayerMP.$username;
        $var8 = $this.$mcServer1.$serverOwner;
        if ($var3 === $var8)
            var$5 = 1;
        else if (!($var8 instanceof jl_String))
            var$5 = 0;
        else {
            $var8 = $var8;
            var$5 = $var3.$nativeString !== $var8.$nativeString ? 0 : 1;
        }
        if (var$5)
            $this.$viewDistance = $par2EntityPlayerMP.$renderDistance;
        $ptr = 1;
    case 1:
        $tmp = nms_ServerConfigurationManager_readPlayerDataFromFile($this, $par2EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var8 = $this.$mcServer1;
        var$5 = $par2EntityPlayerMP.$dimension;
        $var9 = var$5 == (-1) ? $var8.$worldServers.data[1] : var$5 != 1 ? $var8.$worldServers.data[0] : $var8.$worldServers.data[2];
        $par2EntityPlayerMP.$worldObj = $var9;
        $par2EntityPlayerMP.$theItemInWorldManager.$theWorld = $var9;
        nles_IntegratedServer_$callClinit();
        $var7 = nles_IntegratedServer_logger;
        $var8 = $par2EntityPlayerMP.$username;
        var$5 = $par2EntityPlayerMP.$entityId;
        var$8 = $par2EntityPlayerMP.$posX;
        var$9 = $par2EntityPlayerMP.$posY;
        var$10 = $par2EntityPlayerMP.$posZ;
        $var9 = new jl_StringBuilder;
        $var9.$buffer = $rt_createCharArray(16);
        var$11 = $var9.$length0;
        if ($var8 === null)
            $var8 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var9, var$11, $var8);
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(381));
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(382));
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(383));
        jl_AbstractStringBuilder_insert0($var9, $var9.$length0, var$5, 10);
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(384));
        jl_AbstractStringBuilder_insert2($var9, $var9.$length0, var$8);
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(118));
        jl_AbstractStringBuilder_insert2($var9, $var9.$length0, var$9);
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(118));
        jl_AbstractStringBuilder_insert2($var9, $var9.$length0, var$10);
        var$11 = $var9.$length0;
        jl_AbstractStringBuilder_insertSpace($var9, var$11, var$11 + 1 | 0);
        var$12 = $var9.$buffer;
        var$13 = var$12.data;
        var$13[var$11] = 41;
        $var8 = new jl_String;
        var$11 = $var9.$length0;
        var$14 = var$13.length;
        if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
            $var8.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
            $var4 = $var7.$logger;
            $var9 = jul_Level_INFO;
            $var7 = new jul_LogRecord;
            $var7.$level = $var9;
            $var7.$message0 = $var8;
            $var7.$millis = jl_System_currentTimeMillis();
            var$16 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$16, Long_fromInt(1));
            $var7.$sequenceNumber = var$16;
            $var7.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log($var4, $var7);
            $var8 = $this.$mcServer1;
            var$5 = $par2EntityPlayerMP.$dimension;
            $var5 = var$5 == (-1) ? $var8.$worldServers.data[1] : var$5 != 1 ? $var8.$worldServers.data[0] : $var8.$worldServers.data[2];
            var$18 = $var5.$worldInfo.$getSpawnX();
            var$19 = $var5.$worldInfo.$getSpawnY();
            var$20 = $var5.$worldInfo.$getSpawnZ();
            $var8 = $this.$gameType2;
            if ($var8 !== null) {
                $var9 = $par2EntityPlayerMP.$theItemInWorldManager;
                $var9.$gameType = $var8;
                nms_EnumGameType_configurePlayerCapabilities($var8, $var9.$thisPlayerMP.$capabilities);
                $var8 = $var9.$thisPlayerMP;
                $var4 = $var8.$playerNetServerHandler;
                if ($var4 !== null)
                    a: {
                        $var9 = new nms_Packet202PlayerAbilities;
                        $var8 = $var8.$capabilities;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var9.$disableDamage0 = $var8.$disableDamage;
                        $var9.$isFlying0 = $var8.$isFlying;
                        $var9.$allowFlying0 = $var8.$allowFlying;
                        $var9.$isCreativeMode0 = $var8.$isCreativeMode;
                        $var9.$flySpeed0 = $var8.$flySpeed;
                        $var9.$walkSpeed0 = $var8.$walkSpeed;
                        if ($var9 instanceof nms_Packet3Chat) {
                            $var8 = $var9;
                            var$11 = $var4.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break a;
                            if (var$11 == 1 && !$var8.$isServer)
                                break a;
                        }
                        try {
                            $var8 = $var4.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var8 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var9 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var9, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var9;
                        }
                        jl_Throwable_printStackTrace($var8, jl_System_errCache);
                    }
            }
            $var4 = $par2EntityPlayerMP.$theItemInWorldManager;
            $var8 = $var5.$worldInfo.$getGameType();
            if ($var4.$gameType === nms_EnumGameType_NOT_SET)
                $var4.$gameType = $var8;
            $var8 = $var4.$gameType;
            $var4.$gameType = $var8;
            nms_EnumGameType_configurePlayerCapabilities($var8, $var4.$thisPlayerMP.$capabilities);
            $var8 = $var4.$thisPlayerMP;
            $var4 = $var8.$playerNetServerHandler;
            if ($var4 !== null)
                b: {
                    $var9 = new nms_Packet202PlayerAbilities;
                    $var8 = $var8.$capabilities;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var9.$disableDamage0 = $var8.$disableDamage;
                    $var9.$isFlying0 = $var8.$isFlying;
                    $var9.$allowFlying0 = $var8.$allowFlying;
                    $var9.$isCreativeMode0 = $var8.$isCreativeMode;
                    $var9.$flySpeed0 = $var8.$flySpeed;
                    $var9.$walkSpeed0 = $var8.$walkSpeed;
                    if ($var9 instanceof nms_Packet3Chat) {
                        $var8 = $var9;
                        var$11 = $var4.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break b;
                        if (var$11 == 1 && !$var8.$isServer)
                            break b;
                    }
                    try {
                        $var8 = $var4.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var8 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var9 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_($var9);
                        jl_System_errCache = $var9;
                    }
                    jl_Throwable_printStackTrace($var8, jl_System_errCache);
                }
            $var7 = new nms_NetServerHandler;
            $var8 = $this.$mcServer1;
            nms_NetServerHandler_$callClinit();
            $var7.$hasMoved = 1;
            $var7.$field_72586_s = nms_IntHashMap__init_();
            $var7.$mcServer2 = $var8;
            $var7.$netManager = $par1INetworkManager;
            $par1INetworkManager.$theNetHandler = $var7;
            $par1INetworkManager = $par1INetworkManager.$listenThread;
            if (jl_System_outCache === null) {
                $var8 = new otcic_JSStdoutPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var8, $var9);
                $var8.$sb = jl_StringBuilder__init_();
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $var8;
            }
            $var9 = $var7.constructor;
            if ($var9 === null)
                $var8 = null;
            else {
                $var8 = $var9.classObject;
                if ($var8 === null) {
                    $var8 = new jl_Class;
                    $var8.$platformClass = $var9;
                    $var9.classObject = $var8;
                }
            }
            $var8 = jl_Class_getSimpleName($var8);
            $var9 = new jl_StringBuilder;
            $var9.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert($var9, $var9.$length0, jl_String_toString($rt_s(316)));
            jl_StringBuilder_insert($var9, $var9.$length0, $var8 === null ? $rt_s(1) : jl_String_toString($var8));
            var$11 = $var9.$length0;
            jl_AbstractStringBuilder_insertSpace($var9, var$11, var$11 + 1 | 0);
            var$12 = $var9.$buffer;
            var$13 = var$12.data;
            var$13[var$11] = 93;
            $var8 = new jl_String;
            var$11 = $var9.$length0;
            var$14 = var$13.length;
            if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
                $var8.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
                $rt_putStdout($rt_ustr($var8));
                $rt_putStdout("\n");
                $par1INetworkManager = $par1INetworkManager.$connections;
                ju_HashMap_putImpl($par1INetworkManager.$backingMap, $var7, $par1INetworkManager);
                c: {
                    $var7.$playerEntity = $par2EntityPlayerMP;
                    $par2EntityPlayerMP.$playerNetServerHandler = $var7;
                    $par1INetworkManager = new nms_Packet1Login;
                    var$5 = $par2EntityPlayerMP.$entityId;
                    $var8 = $var5.$worldInfo.$getTerrainType();
                    $var4 = $par2EntityPlayerMP.$theItemInWorldManager.$gameType;
                    var$11 = $var5.$worldInfo.$isHardcoreModeEnabled();
                    var$14 = $var5.$provider.$dimensionId;
                    var$21 = $var5.$difficultySetting;
                    var$22 = $this.$maxPlayers;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1INetworkManager.$clientEntityId = var$5;
                    $par1INetworkManager.$terrainType0 = $var8;
                    $par1INetworkManager.$dimension1 = var$14;
                    $par1INetworkManager.$difficultySetting0 = var$21 << 24 >> 24;
                    $par1INetworkManager.$gameType0 = $var4;
                    $par1INetworkManager.$worldHeight = 0;
                    $par1INetworkManager.$maxPlayers0 = var$22 << 24 >> 24;
                    $par1INetworkManager.$hardcoreMode = var$11;
                    if ($par1INetworkManager instanceof nms_Packet3Chat) {
                        $var8 = $par1INetworkManager;
                        var$11 = $var7.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break c;
                        if (var$11 == 1 && !$var8.$isServer)
                            break c;
                    }
                    try {
                        $var8 = $var7.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var8 = new otcic_JSStderrPrintStream;
                        $var9 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var9);
                        $var9.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var8);
                        $var8.$out0 = $var9;
                        $var9 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var9);
                        $var8.$sb = $var9;
                        $var8.$buffer0 = $rt_createCharArray(32);
                        $var8.$autoFlush = 0;
                        $var8.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var8;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                d: {
                    $par1INetworkManager = new nms_Packet6SpawnPosition;
                    $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1INetworkManager.$xPosition4 = var$18;
                    $par1INetworkManager.$yPosition3 = var$19;
                    $par1INetworkManager.$zPosition4 = var$20;
                    if ($par1INetworkManager instanceof nms_Packet3Chat) {
                        $var8 = $par1INetworkManager;
                        var$11 = $var7.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break d;
                        if (var$11 == 1 && !$var8.$isServer)
                            break d;
                    }
                    try {
                        $var8 = $var7.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var8 = new otcic_JSStderrPrintStream;
                        $var9 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var9);
                        $var9.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var8);
                        $var8.$out0 = $var9;
                        $var9 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var9);
                        $var8.$sb = $var9;
                        $var8.$buffer0 = $rt_createCharArray(32);
                        $var8.$autoFlush = 0;
                        $var8.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var8;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                e: {
                    $par1INetworkManager = new nms_Packet202PlayerAbilities;
                    $var8 = $par2EntityPlayerMP.$capabilities;
                    $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1INetworkManager.$disableDamage0 = $var8.$disableDamage;
                    $par1INetworkManager.$isFlying0 = $var8.$isFlying;
                    $par1INetworkManager.$allowFlying0 = $var8.$allowFlying;
                    $par1INetworkManager.$isCreativeMode0 = $var8.$isCreativeMode;
                    $par1INetworkManager.$flySpeed0 = $var8.$flySpeed;
                    $par1INetworkManager.$walkSpeed0 = $var8.$walkSpeed;
                    if ($par1INetworkManager instanceof nms_Packet3Chat) {
                        $var8 = $par1INetworkManager;
                        var$11 = $var7.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break e;
                        if (var$11 == 1 && !$var8.$isServer)
                            break e;
                    }
                    try {
                        $var8 = $var7.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var8 = new otcic_JSStderrPrintStream;
                        $var9 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var9);
                        $var9.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var8);
                        $var8.$out0 = $var9;
                        $var9 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var9);
                        $var8.$sb = $var9;
                        $var8.$buffer0 = $rt_createCharArray(32);
                        $var8.$autoFlush = 0;
                        $var8.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var8;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                f: {
                    $par1INetworkManager = new nms_Packet16BlockItemSwitch;
                    var$5 = $par2EntityPlayerMP.$inventory0.$currentItem;
                    $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1INetworkManager.$id4 = var$5;
                    if ($par1INetworkManager instanceof nms_Packet3Chat) {
                        $var8 = $par1INetworkManager;
                        var$11 = $var7.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break f;
                        if (var$11 == 1 && !$var8.$isServer)
                            break f;
                    }
                    try {
                        $var8 = $var7.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var8 = new otcic_JSStderrPrintStream;
                        $var9 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var9);
                        $var9.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var8);
                        $var8.$out0 = $var9;
                        $var9 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var9);
                        $var8.$sb = $var9;
                        $var8.$buffer0 = $rt_createCharArray(32);
                        $var8.$autoFlush = 0;
                        $var8.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var8;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                $par1INetworkManager = $var5.$worldScoreboard;
                $ptr = 8;
                continue main;
            }
            $par1INetworkManager = new jl_IndexOutOfBoundsException;
            $par1INetworkManager.$suppressionEnabled = 1;
            $par1INetworkManager.$writableStackTrace = 1;
            $rt_throw($par1INetworkManager);
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 2:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var9, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        $var4 = $par2EntityPlayerMP.$theItemInWorldManager;
        $var8 = $var5.$worldInfo.$getGameType();
        if ($var4.$gameType === nms_EnumGameType_NOT_SET)
            $var4.$gameType = $var8;
        $var8 = $var4.$gameType;
        $var4.$gameType = $var8;
        nms_EnumGameType_configurePlayerCapabilities($var8, $var4.$thisPlayerMP.$capabilities);
        $var8 = $var4.$thisPlayerMP;
        $var4 = $var8.$playerNetServerHandler;
        if ($var4 !== null)
            h: {
                $var9 = new nms_Packet202PlayerAbilities;
                $var8 = $var8.$capabilities;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$disableDamage0 = $var8.$disableDamage;
                $var9.$isFlying0 = $var8.$isFlying;
                $var9.$allowFlying0 = $var8.$allowFlying;
                $var9.$isCreativeMode0 = $var8.$isCreativeMode;
                $var9.$flySpeed0 = $var8.$flySpeed;
                $var9.$walkSpeed0 = $var8.$walkSpeed;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    var$11 = $var4.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break h;
                    if (var$11 == 1 && !$var8.$isServer)
                        break h;
                }
                try {
                    $var8 = $var4.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_($var9);
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var8, jl_System_errCache);
            }
        $var7 = new nms_NetServerHandler;
        $var8 = $this.$mcServer1;
        nms_NetServerHandler_$callClinit();
        $var7.$hasMoved = 1;
        $var7.$field_72586_s = nms_IntHashMap__init_();
        $var7.$mcServer2 = $var8;
        $var7.$netManager = $par1INetworkManager;
        $par1INetworkManager.$theNetHandler = $var7;
        $par1INetworkManager = $par1INetworkManager.$listenThread;
        if (jl_System_outCache === null) {
            $var8 = new otcic_JSStdoutPrintStream;
            $var9 = new ji_ByteArrayOutputStream;
            ji_OutputStream__init_($var9);
            $var9.$buf = $rt_createByteArray(32);
            ji_FilterOutputStream__init_($var8, $var9);
            $var8.$sb = jl_StringBuilder__init_();
            $var8.$buffer0 = $rt_createCharArray(32);
            $var8.$autoFlush = 0;
            $var8.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var8;
        }
        $var9 = $var7.constructor;
        if ($var9 === null)
            $var8 = null;
        else {
            $var8 = $var9.classObject;
            if ($var8 === null) {
                $var8 = new jl_Class;
                $var8.$platformClass = $var9;
                $var9.classObject = $var8;
            }
        }
        $var8 = jl_Class_getSimpleName($var8);
        $var9 = new jl_StringBuilder;
        $var9.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert($var9, $var9.$length0, jl_String_toString($rt_s(316)));
        jl_StringBuilder_insert($var9, $var9.$length0, $var8 === null ? $rt_s(1) : jl_String_toString($var8));
        var$11 = $var9.$length0;
        jl_AbstractStringBuilder_insertSpace($var9, var$11, var$11 + 1 | 0);
        var$12 = $var9.$buffer;
        var$13 = var$12.data;
        var$13[var$11] = 93;
        $var8 = new jl_String;
        var$11 = $var9.$length0;
        var$14 = var$13.length;
        if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
            $var8.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
            $rt_putStdout($rt_ustr($var8));
            $rt_putStdout("\n");
            $par1INetworkManager = $par1INetworkManager.$connections;
            ju_HashMap_putImpl($par1INetworkManager.$backingMap, $var7, $par1INetworkManager);
            i: {
                $var7.$playerEntity = $par2EntityPlayerMP;
                $par2EntityPlayerMP.$playerNetServerHandler = $var7;
                $par1INetworkManager = new nms_Packet1Login;
                var$5 = $par2EntityPlayerMP.$entityId;
                $var8 = $var5.$worldInfo.$getTerrainType();
                $var4 = $par2EntityPlayerMP.$theItemInWorldManager.$gameType;
                var$11 = $var5.$worldInfo.$isHardcoreModeEnabled();
                var$14 = $var5.$provider.$dimensionId;
                var$21 = $var5.$difficultySetting;
                var$22 = $this.$maxPlayers;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$clientEntityId = var$5;
                $par1INetworkManager.$terrainType0 = $var8;
                $par1INetworkManager.$dimension1 = var$14;
                $par1INetworkManager.$difficultySetting0 = var$21 << 24 >> 24;
                $par1INetworkManager.$gameType0 = $var4;
                $par1INetworkManager.$worldHeight = 0;
                $par1INetworkManager.$maxPlayers0 = var$22 << 24 >> 24;
                $par1INetworkManager.$hardcoreMode = var$11;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break i;
                    if (var$11 == 1 && !$var8.$isServer)
                        break i;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            j: {
                $par1INetworkManager = new nms_Packet6SpawnPosition;
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$xPosition4 = var$18;
                $par1INetworkManager.$yPosition3 = var$19;
                $par1INetworkManager.$zPosition4 = var$20;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break j;
                    if (var$11 == 1 && !$var8.$isServer)
                        break j;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            k: {
                $par1INetworkManager = new nms_Packet202PlayerAbilities;
                $var8 = $par2EntityPlayerMP.$capabilities;
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$disableDamage0 = $var8.$disableDamage;
                $par1INetworkManager.$isFlying0 = $var8.$isFlying;
                $par1INetworkManager.$allowFlying0 = $var8.$allowFlying;
                $par1INetworkManager.$isCreativeMode0 = $var8.$isCreativeMode;
                $par1INetworkManager.$flySpeed0 = $var8.$flySpeed;
                $par1INetworkManager.$walkSpeed0 = $var8.$walkSpeed;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break k;
                    if (var$11 == 1 && !$var8.$isServer)
                        break k;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            l: {
                $par1INetworkManager = new nms_Packet16BlockItemSwitch;
                var$5 = $par2EntityPlayerMP.$inventory0.$currentItem;
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$id4 = var$5;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break l;
                    if (var$11 == 1 && !$var8.$isServer)
                        break l;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            $par1INetworkManager = $var5.$worldScoreboard;
            $ptr = 8;
            continue main;
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 3:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_($var9);
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        $var7 = new nms_NetServerHandler;
        $var8 = $this.$mcServer1;
        nms_NetServerHandler_$callClinit();
        $var7.$hasMoved = 1;
        $var7.$field_72586_s = nms_IntHashMap__init_();
        $var7.$mcServer2 = $var8;
        $var7.$netManager = $par1INetworkManager;
        $par1INetworkManager.$theNetHandler = $var7;
        $par1INetworkManager = $par1INetworkManager.$listenThread;
        if (jl_System_outCache === null) {
            $var8 = new otcic_JSStdoutPrintStream;
            $var9 = new ji_ByteArrayOutputStream;
            ji_OutputStream__init_($var9);
            $var9.$buf = $rt_createByteArray(32);
            ji_FilterOutputStream__init_($var8, $var9);
            $var8.$sb = jl_StringBuilder__init_();
            $var8.$buffer0 = $rt_createCharArray(32);
            $var8.$autoFlush = 0;
            $var8.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var8;
        }
        $var9 = $var7.constructor;
        if ($var9 === null)
            $var8 = null;
        else {
            $var8 = $var9.classObject;
            if ($var8 === null) {
                $var8 = new jl_Class;
                $var8.$platformClass = $var9;
                $var9.classObject = $var8;
            }
        }
        $var8 = jl_Class_getSimpleName($var8);
        $var9 = new jl_StringBuilder;
        $var9.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert($var9, $var9.$length0, jl_String_toString($rt_s(316)));
        jl_StringBuilder_insert($var9, $var9.$length0, $var8 === null ? $rt_s(1) : jl_String_toString($var8));
        var$11 = $var9.$length0;
        jl_AbstractStringBuilder_insertSpace($var9, var$11, var$11 + 1 | 0);
        var$12 = $var9.$buffer;
        var$13 = var$12.data;
        var$13[var$11] = 93;
        $var8 = new jl_String;
        var$11 = $var9.$length0;
        var$14 = var$13.length;
        if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
            $var8.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
            $rt_putStdout($rt_ustr($var8));
            $rt_putStdout("\n");
            $par1INetworkManager = $par1INetworkManager.$connections;
            ju_HashMap_putImpl($par1INetworkManager.$backingMap, $var7, $par1INetworkManager);
            m: {
                $var7.$playerEntity = $par2EntityPlayerMP;
                $par2EntityPlayerMP.$playerNetServerHandler = $var7;
                $par1INetworkManager = new nms_Packet1Login;
                var$5 = $par2EntityPlayerMP.$entityId;
                $var8 = $var5.$worldInfo.$getTerrainType();
                $var4 = $par2EntityPlayerMP.$theItemInWorldManager.$gameType;
                var$11 = $var5.$worldInfo.$isHardcoreModeEnabled();
                var$14 = $var5.$provider.$dimensionId;
                var$21 = $var5.$difficultySetting;
                var$22 = $this.$maxPlayers;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$clientEntityId = var$5;
                $par1INetworkManager.$terrainType0 = $var8;
                $par1INetworkManager.$dimension1 = var$14;
                $par1INetworkManager.$difficultySetting0 = var$21 << 24 >> 24;
                $par1INetworkManager.$gameType0 = $var4;
                $par1INetworkManager.$worldHeight = 0;
                $par1INetworkManager.$maxPlayers0 = var$22 << 24 >> 24;
                $par1INetworkManager.$hardcoreMode = var$11;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break m;
                    if (var$11 == 1 && !$var8.$isServer)
                        break m;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            b: {
                $par1INetworkManager = new nms_Packet6SpawnPosition;
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$xPosition4 = var$18;
                $par1INetworkManager.$yPosition3 = var$19;
                $par1INetworkManager.$zPosition4 = var$20;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break b;
                    if (var$11 == 1 && !$var8.$isServer)
                        break b;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            n: {
                $par1INetworkManager = new nms_Packet202PlayerAbilities;
                $var8 = $par2EntityPlayerMP.$capabilities;
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$disableDamage0 = $var8.$disableDamage;
                $par1INetworkManager.$isFlying0 = $var8.$isFlying;
                $par1INetworkManager.$allowFlying0 = $var8.$allowFlying;
                $par1INetworkManager.$isCreativeMode0 = $var8.$isCreativeMode;
                $par1INetworkManager.$flySpeed0 = $var8.$flySpeed;
                $par1INetworkManager.$walkSpeed0 = $var8.$walkSpeed;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break n;
                    if (var$11 == 1 && !$var8.$isServer)
                        break n;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            o: {
                $par1INetworkManager = new nms_Packet16BlockItemSwitch;
                var$5 = $par2EntityPlayerMP.$inventory0.$currentItem;
                $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1INetworkManager.$id4 = var$5;
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var8 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break o;
                    if (var$11 == 1 && !$var8.$isServer)
                        break o;
                }
                try {
                    $var8 = $var7.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var8);
                    $var8.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var8.$sb = $var9;
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
            $par1INetworkManager = $var5.$worldScoreboard;
            $ptr = 8;
            continue main;
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 4:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $par1INetworkManager);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        p: {
            $par1INetworkManager = new nms_Packet6SpawnPosition;
            $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1INetworkManager.$xPosition4 = var$18;
            $par1INetworkManager.$yPosition3 = var$19;
            $par1INetworkManager.$zPosition4 = var$20;
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break p;
                if (var$11 == 1 && !$var8.$isServer)
                    break p;
            }
            try {
                $var8 = $var7.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        q: {
            $par1INetworkManager = new nms_Packet202PlayerAbilities;
            $var8 = $par2EntityPlayerMP.$capabilities;
            $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1INetworkManager.$disableDamage0 = $var8.$disableDamage;
            $par1INetworkManager.$isFlying0 = $var8.$isFlying;
            $par1INetworkManager.$allowFlying0 = $var8.$allowFlying;
            $par1INetworkManager.$isCreativeMode0 = $var8.$isCreativeMode;
            $par1INetworkManager.$flySpeed0 = $var8.$flySpeed;
            $par1INetworkManager.$walkSpeed0 = $var8.$walkSpeed;
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break q;
                if (var$11 == 1 && !$var8.$isServer)
                    break q;
            }
            try {
                $var8 = $var7.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        r: {
            $par1INetworkManager = new nms_Packet16BlockItemSwitch;
            var$5 = $par2EntityPlayerMP.$inventory0.$currentItem;
            $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1INetworkManager.$id4 = var$5;
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break r;
                if (var$11 == 1 && !$var8.$isServer)
                    break r;
            }
            try {
                $var8 = $var7.$netManager;
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        $par1INetworkManager = $var5.$worldScoreboard;
        $ptr = 8;
        continue main;
    case 5:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $par1INetworkManager);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        p: {
            $par1INetworkManager = new nms_Packet202PlayerAbilities;
            $var8 = $par2EntityPlayerMP.$capabilities;
            $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1INetworkManager.$disableDamage0 = $var8.$disableDamage;
            $par1INetworkManager.$isFlying0 = $var8.$isFlying;
            $par1INetworkManager.$allowFlying0 = $var8.$allowFlying;
            $par1INetworkManager.$isCreativeMode0 = $var8.$isCreativeMode;
            $par1INetworkManager.$flySpeed0 = $var8.$flySpeed;
            $par1INetworkManager.$walkSpeed0 = $var8.$walkSpeed;
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break p;
                if (var$11 == 1 && !$var8.$isServer)
                    break p;
            }
            try {
                $var8 = $var7.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        q: {
            $par1INetworkManager = new nms_Packet16BlockItemSwitch;
            var$5 = $par2EntityPlayerMP.$inventory0.$currentItem;
            $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1INetworkManager.$id4 = var$5;
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break q;
                if (var$11 == 1 && !$var8.$isServer)
                    break q;
            }
            try {
                $var8 = $var7.$netManager;
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        $par1INetworkManager = $var5.$worldScoreboard;
        $ptr = 8;
        continue main;
    case 6:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $par1INetworkManager);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        p: {
            $par1INetworkManager = new nms_Packet16BlockItemSwitch;
            var$5 = $par2EntityPlayerMP.$inventory0.$currentItem;
            $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1INetworkManager.$id4 = var$5;
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break p;
                if (var$11 == 1 && !$var8.$isServer)
                    break p;
            }
            try {
                $var8 = $var7.$netManager;
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        $par1INetworkManager = $var5.$worldScoreboard;
        $ptr = 8;
        continue main;
    case 7:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $par1INetworkManager);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        $par1INetworkManager = $var5.$worldScoreboard;
        $ptr = 8;
    case 8:
        g: {
            nms_ServerConfigurationManager_func_96456_a($this, $par1INetworkManager, $par2EntityPlayerMP);
            if ($rt_suspending()) {
                break main;
            }
            $var9 = $par2EntityPlayerMP.$playerNetServerHandler;
            $par1INetworkManager = new nms_Packet4UpdateTime;
            var$23 = $var5.$worldInfo.$getWorldTotalTime();
            var$16 = $var5.$worldInfo.$getWorldTime();
            $var4 = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            $var10 = $rt_s(258);
            $var8 = $rt_s(258);
            if ($var10 !== $var8) {
                var$11 = $var10.$nativeString.length;
                var$21 = $var8.$nativeString.length;
                if (var$11 < var$21)
                    var$21 = var$11;
                var$5 = 0;
                s: {
                    while (true) {
                        if (var$5 >= var$21) {
                            $var10.$nativeString.length;
                            $var8.$nativeString.length;
                            break g;
                        }
                        if (var$5 < 0)
                            break s;
                        if (var$5 >= $var10.$nativeString.length)
                            break s;
                        var$14 = $var10.$nativeString.charCodeAt(var$5);
                        if (var$5 < 0)
                            break;
                        if (var$5 >= $var8.$nativeString.length)
                            break;
                        if (var$14 - $var8.$nativeString.charCodeAt(var$5) | 0)
                            break g;
                        var$5 = var$5 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        $var8 = $rt_s(258);
        t: {
            a: {
                u: while (true) {
                    if ($var4 === null) {
                        $var4 = null;
                        break t;
                    }
                    v: {
                        $var10 = $var4.$key0;
                        if ($var8 === $var10)
                            var$5 = 0;
                        else {
                            var$11 = $var8.$nativeString.length;
                            var$14 = $var10.$nativeString.length;
                            if (var$11 < var$14)
                                var$14 = var$11;
                            var$21 = 0;
                            while (true) {
                                if (var$21 >= var$14) {
                                    var$5 = $var8.$nativeString.length - $var10.$nativeString.length | 0;
                                    break v;
                                }
                                if (var$21 < 0)
                                    break a;
                                if (var$21 >= $var8.$nativeString.length)
                                    break a;
                                var$11 = $var8.$nativeString.charCodeAt(var$21);
                                if (var$21 < 0)
                                    break u;
                                if (var$21 >= $var10.$nativeString.length)
                                    break u;
                                var$5 = var$11 - $var10.$nativeString.charCodeAt(var$21) | 0;
                                if (var$5)
                                    break;
                                var$21 = var$21 + 1 | 0;
                            }
                        }
                    }
                    if (!var$5)
                        break t;
                    $var4 = var$5 >= 0 ? $var4.$right : $var4.$left;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $var8 = $var4 === null ? null : $var4.$value2;
        var$5 = $var8 === null ? 0 : $var8.$valueBoolean;
        $par1INetworkManager.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1INetworkManager.$worldAge = var$23;
        $par1INetworkManager.$time0 = var$16;
        if (!var$5) {
            var$16 = Long_neg(var$16);
            $par1INetworkManager.$time0 = var$16;
            if (Long_eq(var$16, Long_ZERO))
                $par1INetworkManager.$time0 = Long_fromInt(-1);
        }
        w: {
            if ($par1INetworkManager instanceof nms_Packet3Chat) {
                $var8 = $par1INetworkManager;
                var$11 = $var9.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break w;
                if (var$11 == 1 && !$var8.$isServer)
                    break w;
            }
            try {
                $var8 = $var9.$netManager;
                $ptr = 9;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var8, $var9);
                $var8.$sb = jl_StringBuilder__init_();
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        var$25 = $var5.$prevRainingStrength;
        if (var$25 + ($var5.$rainingStrength - var$25) * 1.0 <= 0.2 ? 0 : 1)
            x: {
                $par1INetworkManager = $par2EntityPlayerMP.$playerNetServerHandler;
                $var8 = new nms_Packet70GameEvent;
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$eventType = 1;
                $var8.$gameMode = 0;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var9 = $var8;
                    var$11 = $par1INetworkManager.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break x;
                    if (var$11 == 1 && !$var9.$isServer)
                        break x;
                }
                try {
                    $par1INetworkManager = $par1INetworkManager.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var8, $var9);
                    $var8.$sb = jl_StringBuilder__init_();
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
        $var10 = new nms_Packet3Chat;
        nms_EnumChatFormatting_$callClinit();
        $par1INetworkManager = nms_EnumChatFormatting_YELLOW;
        $var8 = $par1INetworkManager === null ? $rt_s(1) : $par1INetworkManager.$field_96304_B;
        $var9 = nms_EntityPlayer_getTranslatedEntityName($par2EntityPlayerMP);
        $par1INetworkManager = nms_EnumChatFormatting_YELLOW;
        $par1INetworkManager = $par1INetworkManager === null ? $rt_s(1) : $par1INetworkManager.$field_96304_B;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        var$5 = $var4.$length0;
        if ($var8 === null)
            $var8 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $var8);
        var$5 = $var4.$length0;
        if ($var9 === null)
            $var9 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $var9);
        var$5 = $var4.$length0;
        if ($par1INetworkManager === null)
            $par1INetworkManager = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $par1INetworkManager);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(385));
        $par1INetworkManager = new jl_String;
        var$12 = $var4.$buffer;
        var$13 = var$12.data;
        var$11 = $var4.$length0;
        var$14 = var$13.length;
        if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
            $par1INetworkManager.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
            $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var10.$isServer = 1;
            var$14 = $par1INetworkManager.$nativeString.length;
            var$11 = nms_Packet3Chat_maxChatLength;
            if (var$14 > var$11)
                $par1INetworkManager = jl_String_substring($par1INetworkManager, 0, var$11);
            $var10.$message1 = $par1INetworkManager;
            $var10.$isServer = 1;
            var$5 = 0;
            var$14 = $var10 instanceof nms_Packet3Chat;
            $var8 = $var10;
            while (true) {
                $par1INetworkManager = $this.$playerEntityList;
                var$11 = $rt_compare(var$5, $par1INetworkManager.$size0);
                if (var$11 >= 0) {
                    $ptr = 11;
                    continue main;
                }
                if (var$5 < 0)
                    break;
                if (var$11 >= 0)
                    break;
                y: {
                    $par1INetworkManager = $par1INetworkManager.$array.data[var$5].$playerNetServerHandler;
                    if (var$14) {
                        var$21 = $par1INetworkManager.$playerEntity.$chatVisibility;
                        if (var$21 == 2)
                            break y;
                        if (var$21 == 1 && !$var8.$isServer)
                            break y;
                    }
                    try {
                        $par1INetworkManager = $par1INetworkManager.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var9 = new otcic_JSStderrPrintStream;
                        $var4 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var4);
                        $var4.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var9, $var4);
                        $var9.$sb = jl_StringBuilder__init_();
                        $var9.$buffer0 = $rt_createCharArray(32);
                        $var9.$autoFlush = 0;
                        $var9.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var9;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                var$5 = var$5 + 1 | 0;
            }
            $par1INetworkManager = new jl_IndexOutOfBoundsException;
            $par1INetworkManager.$suppressionEnabled = 1;
            $par1INetworkManager.$writableStackTrace = 1;
            $rt_throw($par1INetworkManager);
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 9:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $par1INetworkManager);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var8, $var9);
                $var8.$sb = jl_StringBuilder__init_();
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        var$25 = $var5.$prevRainingStrength;
        if (var$25 + ($var5.$rainingStrength - var$25) * 1.0 <= 0.2 ? 0 : 1)
            s: {
                $par1INetworkManager = $par2EntityPlayerMP.$playerNetServerHandler;
                $var8 = new nms_Packet70GameEvent;
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$eventType = 1;
                $var8.$gameMode = 0;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var9 = $var8;
                    var$11 = $par1INetworkManager.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break s;
                    if (var$11 == 1 && !$var9.$isServer)
                        break s;
                }
                try {
                    $par1INetworkManager = $par1INetworkManager.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var8 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var8, $var9);
                    $var8.$sb = jl_StringBuilder__init_();
                    $var8.$buffer0 = $rt_createCharArray(32);
                    $var8.$autoFlush = 0;
                    $var8.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var8;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
        $var10 = new nms_Packet3Chat;
        nms_EnumChatFormatting_$callClinit();
        $par1INetworkManager = nms_EnumChatFormatting_YELLOW;
        $var8 = $par1INetworkManager === null ? $rt_s(1) : $par1INetworkManager.$field_96304_B;
        $var9 = nms_EntityPlayer_getTranslatedEntityName($par2EntityPlayerMP);
        $par1INetworkManager = nms_EnumChatFormatting_YELLOW;
        $par1INetworkManager = $par1INetworkManager === null ? $rt_s(1) : $par1INetworkManager.$field_96304_B;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        var$5 = $var4.$length0;
        if ($var8 === null)
            $var8 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $var8);
        var$5 = $var4.$length0;
        if ($var9 === null)
            $var9 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $var9);
        var$5 = $var4.$length0;
        if ($par1INetworkManager === null)
            $par1INetworkManager = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $par1INetworkManager);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(385));
        $par1INetworkManager = new jl_String;
        var$12 = $var4.$buffer;
        var$13 = var$12.data;
        var$11 = $var4.$length0;
        var$14 = var$13.length;
        if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
            $par1INetworkManager.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
            $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var10.$isServer = 1;
            var$14 = $par1INetworkManager.$nativeString.length;
            var$11 = nms_Packet3Chat_maxChatLength;
            if (var$14 > var$11)
                $par1INetworkManager = jl_String_substring($par1INetworkManager, 0, var$11);
            $var10.$message1 = $par1INetworkManager;
            $var10.$isServer = 1;
            var$5 = 0;
            var$14 = $var10 instanceof nms_Packet3Chat;
            $var8 = $var10;
            while (true) {
                $par1INetworkManager = $this.$playerEntityList;
                var$11 = $rt_compare(var$5, $par1INetworkManager.$size0);
                if (var$11 >= 0) {
                    $ptr = 11;
                    continue main;
                }
                if (var$5 < 0)
                    break;
                if (var$11 >= 0)
                    break;
                z: {
                    $par1INetworkManager = $par1INetworkManager.$array.data[var$5].$playerNetServerHandler;
                    if (var$14) {
                        var$21 = $par1INetworkManager.$playerEntity.$chatVisibility;
                        if (var$21 == 2)
                            break z;
                        if (var$21 == 1 && !$var8.$isServer)
                            break z;
                    }
                    try {
                        $par1INetworkManager = $par1INetworkManager.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var9 = new otcic_JSStderrPrintStream;
                        $var4 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var4);
                        $var4.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var9, $var4);
                        $var9.$sb = jl_StringBuilder__init_();
                        $var9.$buffer0 = $rt_createCharArray(32);
                        $var9.$autoFlush = 0;
                        $var9.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var9;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                var$5 = var$5 + 1 | 0;
            }
            $par1INetworkManager = new jl_IndexOutOfBoundsException;
            $par1INetworkManager.$suppressionEnabled = 1;
            $par1INetworkManager.$writableStackTrace = 1;
            $rt_throw($par1INetworkManager);
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 10:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1INetworkManager, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var8, $var9);
                $var8.$sb = jl_StringBuilder__init_();
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        $var10 = new nms_Packet3Chat;
        nms_EnumChatFormatting_$callClinit();
        $par1INetworkManager = nms_EnumChatFormatting_YELLOW;
        $var8 = $par1INetworkManager === null ? $rt_s(1) : $par1INetworkManager.$field_96304_B;
        $var9 = nms_EntityPlayer_getTranslatedEntityName($par2EntityPlayerMP);
        $par1INetworkManager = nms_EnumChatFormatting_YELLOW;
        $par1INetworkManager = $par1INetworkManager === null ? $rt_s(1) : $par1INetworkManager.$field_96304_B;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        var$5 = $var4.$length0;
        if ($var8 === null)
            $var8 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $var8);
        var$5 = $var4.$length0;
        if ($var9 === null)
            $var9 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $var9);
        var$5 = $var4.$length0;
        if ($par1INetworkManager === null)
            $par1INetworkManager = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $par1INetworkManager);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(385));
        $par1INetworkManager = new jl_String;
        var$12 = $var4.$buffer;
        var$13 = var$12.data;
        var$11 = $var4.$length0;
        var$14 = var$13.length;
        if (var$11 >= 0 && var$11 <= (var$14 - 0 | 0)) {
            $par1INetworkManager.$nativeString = $rt_charArrayToString(var$12.data, 0, var$11);
            $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var10.$isServer = 1;
            var$14 = $par1INetworkManager.$nativeString.length;
            var$11 = nms_Packet3Chat_maxChatLength;
            if (var$14 > var$11)
                $par1INetworkManager = jl_String_substring($par1INetworkManager, 0, var$11);
            $var10.$message1 = $par1INetworkManager;
            $var10.$isServer = 1;
            var$5 = 0;
            var$14 = $var10 instanceof nms_Packet3Chat;
            $var8 = $var10;
            while (true) {
                $par1INetworkManager = $this.$playerEntityList;
                var$11 = $rt_compare(var$5, $par1INetworkManager.$size0);
                if (var$11 >= 0) {
                    $ptr = 11;
                    continue main;
                }
                if (var$5 < 0)
                    break;
                if (var$11 >= 0)
                    break;
                i: {
                    $par1INetworkManager = $par1INetworkManager.$array.data[var$5].$playerNetServerHandler;
                    if (var$14) {
                        var$21 = $par1INetworkManager.$playerEntity.$chatVisibility;
                        if (var$21 == 2)
                            break i;
                        if (var$21 == 1 && !$var8.$isServer)
                            break i;
                    }
                    try {
                        $par1INetworkManager = $par1INetworkManager.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1INetworkManager = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var9 = new otcic_JSStderrPrintStream;
                        $var4 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var4);
                        $var4.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var9, $var4);
                        $var9.$sb = jl_StringBuilder__init_();
                        $var9.$buffer0 = $rt_createCharArray(32);
                        $var9.$autoFlush = 0;
                        $var9.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var9;
                    }
                    jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
                }
                var$5 = var$5 + 1 | 0;
            }
            $par1INetworkManager = new jl_IndexOutOfBoundsException;
            $par1INetworkManager.$suppressionEnabled = 1;
            $par1INetworkManager.$writableStackTrace = 1;
            $rt_throw($par1INetworkManager);
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 11:
        g: {
            nms_ServerConfigurationManager_playerLoggedIn($this, $par2EntityPlayerMP);
            if ($rt_suspending()) {
                break main;
            }
            var$10 = $par2EntityPlayerMP.$posX;
            var$26 = $par2EntityPlayerMP.$posY;
            var$27 = $par2EntityPlayerMP.$posZ;
            var$28 = $par2EntityPlayerMP.$rotationYaw;
            var$25 = $par2EntityPlayerMP.$rotationPitch;
            $var7.$hasMoved = 0;
            $var7.$lastPosX = var$10;
            $var7.$lastPosY = var$26;
            $var7.$lastPosZ = var$27;
            nms_Entity_setPositionAndRotation($var7.$playerEntity, var$10, var$26, var$27, var$28, var$25);
            $par1INetworkManager = $var7.$playerEntity.$playerNetServerHandler;
            $var8 = new nms_Packet13PlayerLookMove;
            var$8 = var$26 + 1.6200000047683716;
            $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var8.$xPosition = var$10;
            $var8.$yPosition = var$8;
            $var8.$stance = var$26;
            $var8.$zPosition = var$27;
            $var8.$yaw = var$28;
            $var8.$pitch = var$25;
            $var8.$onGround0 = 0;
            $var8.$rotating = 1;
            $var8.$moving = 1;
            if ($var8 instanceof nms_Packet3Chat) {
                $var9 = $var8;
                var$11 = $par1INetworkManager.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break g;
                if (var$11 == 1 && !$var9.$isServer)
                    break g;
            }
            try {
                $par1INetworkManager = $par1INetworkManager.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var8, $var9);
                $var8.$sb = jl_StringBuilder__init_();
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        ba: {
            $var4 = new nms_Packet4UpdateTime;
            var$23 = $var5.$worldInfo.$getWorldTotalTime();
            var$16 = $var5.$worldInfo.$getWorldTime();
            $par1INetworkManager = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            $var8 = $rt_s(258);
            $var9 = $rt_s(258);
            if ($var8 !== $var9) {
                var$11 = $var8.$nativeString.length;
                var$21 = $var9.$nativeString.length;
                if (var$11 < var$21)
                    var$21 = var$11;
                var$5 = 0;
                bb: {
                    while (true) {
                        if (var$5 >= var$21) {
                            $var8.$nativeString.length;
                            $var9.$nativeString.length;
                            break ba;
                        }
                        if (var$5 < 0)
                            break bb;
                        if (var$5 >= $var8.$nativeString.length)
                            break bb;
                        var$14 = $var8.$nativeString.charCodeAt(var$5);
                        if (var$5 < 0)
                            break;
                        if (var$5 >= $var9.$nativeString.length)
                            break;
                        if (var$14 - $var9.$nativeString.charCodeAt(var$5) | 0)
                            break ba;
                        var$5 = var$5 + 1 | 0;
                    }
                    $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
                    $par1INetworkManager.$suppressionEnabled = 1;
                    $par1INetworkManager.$writableStackTrace = 1;
                    $rt_throw($par1INetworkManager);
                }
                $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
                $par1INetworkManager.$suppressionEnabled = 1;
                $par1INetworkManager.$writableStackTrace = 1;
                $rt_throw($par1INetworkManager);
            }
        }
        $var8 = $rt_s(258);
        u: {
            bc: {
                bd: while (true) {
                    if ($par1INetworkManager === null) {
                        $par1INetworkManager = null;
                        break u;
                    }
                    be: {
                        $var9 = $par1INetworkManager.$key0;
                        if ($var8 === $var9)
                            var$5 = 0;
                        else {
                            var$11 = $var8.$nativeString.length;
                            var$21 = $var9.$nativeString.length;
                            if (var$11 < var$21)
                                var$21 = var$11;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$21) {
                                    var$5 = $var8.$nativeString.length - $var9.$nativeString.length | 0;
                                    break be;
                                }
                                if (var$11 < 0)
                                    break bc;
                                if (var$11 >= $var8.$nativeString.length)
                                    break bc;
                                var$14 = $var8.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break bd;
                                if (var$11 >= $var9.$nativeString.length)
                                    break bd;
                                var$5 = var$14 - $var9.$nativeString.charCodeAt(var$11) | 0;
                                if (var$5)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$5)
                        break u;
                    $par1INetworkManager = var$5 >= 0 ? $par1INetworkManager.$right : $par1INetworkManager.$left;
                }
                $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
                $par1INetworkManager.$suppressionEnabled = 1;
                $par1INetworkManager.$writableStackTrace = 1;
                $rt_throw($par1INetworkManager);
            }
            $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
            $par1INetworkManager.$suppressionEnabled = 1;
            $par1INetworkManager.$writableStackTrace = 1;
            $rt_throw($par1INetworkManager);
        }
        $par1INetworkManager = $par1INetworkManager === null ? null : $par1INetworkManager.$value2;
        var$5 = $par1INetworkManager === null ? 0 : $par1INetworkManager.$valueBoolean;
        $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var4.$worldAge = var$23;
        $var4.$time0 = var$16;
        if (!var$5) {
            var$16 = Long_neg(var$16);
            $var4.$time0 = var$16;
            if (Long_eq(var$16, Long_ZERO))
                $var4.$time0 = Long_fromInt(-1);
        }
        c: {
            if ($var4 instanceof nms_Packet3Chat) {
                $par1INetworkManager = $var4;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break c;
                if (var$11 == 1 && !$par1INetworkManager.$isServer)
                    break c;
            }
            try {
                $par1INetworkManager = $var7.$netManager;
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        null.$length();
        $par1INetworkManager = $par2EntityPlayerMP.$activePotionsMap;
        if ($par1INetworkManager.$cachedValues === null) {
            $var8 = new ju_HashMap$2;
            $var8.$this$01 = $par1INetworkManager;
            $par1INetworkManager.$cachedValues = $var8;
        }
        $var8 = $par1INetworkManager.$cachedValues.$iterator();
        while ($var8.$hasNext()) {
            bf: {
                $var9 = $var8.$next();
                $par1INetworkManager = nms_Packet41EntityEffect__init_($par2EntityPlayerMP.$entityId, $var9);
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var9 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break bf;
                    if (var$11 == 1 && !$var9.$isServer)
                        break bf;
                }
                try {
                    $var9 = $var7.$netManager;
                    $ptr = 16;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var4 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var4);
                    $var4.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var4;
                    $var4 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var4);
                    $var9.$sb = $var4;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
        }
        $par1INetworkManager = $par2EntityPlayerMP.$openContainer;
        $ptr = 15;
        continue main;
    case 12:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1INetworkManager, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var8, $var9);
                $var8.$sb = jl_StringBuilder__init_();
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        p: {
            $var4 = new nms_Packet4UpdateTime;
            var$23 = $var5.$worldInfo.$getWorldTotalTime();
            var$16 = $var5.$worldInfo.$getWorldTime();
            $par1INetworkManager = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            $var8 = $rt_s(258);
            $var9 = $rt_s(258);
            if ($var8 !== $var9) {
                var$11 = $var8.$nativeString.length;
                var$21 = $var9.$nativeString.length;
                if (var$11 < var$21)
                    var$21 = var$11;
                var$5 = 0;
                t: {
                    while (true) {
                        if (var$5 >= var$21) {
                            $var8.$nativeString.length;
                            $var9.$nativeString.length;
                            break p;
                        }
                        if (var$5 < 0)
                            break t;
                        if (var$5 >= $var8.$nativeString.length)
                            break t;
                        var$14 = $var8.$nativeString.charCodeAt(var$5);
                        if (var$5 < 0)
                            break;
                        if (var$5 >= $var9.$nativeString.length)
                            break;
                        if (var$14 - $var9.$nativeString.charCodeAt(var$5) | 0)
                            break p;
                        var$5 = var$5 + 1 | 0;
                    }
                    $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
                    $par1INetworkManager.$suppressionEnabled = 1;
                    $par1INetworkManager.$writableStackTrace = 1;
                    $rt_throw($par1INetworkManager);
                }
                $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
                $par1INetworkManager.$suppressionEnabled = 1;
                $par1INetworkManager.$writableStackTrace = 1;
                $rt_throw($par1INetworkManager);
            }
        }
        $var8 = $rt_s(258);
        a: {
            v: {
                bc: while (true) {
                    if ($par1INetworkManager === null) {
                        $par1INetworkManager = null;
                        break a;
                    }
                    b: {
                        $var9 = $par1INetworkManager.$key0;
                        if ($var8 === $var9)
                            var$5 = 0;
                        else {
                            var$11 = $var8.$nativeString.length;
                            var$21 = $var9.$nativeString.length;
                            if (var$11 < var$21)
                                var$21 = var$11;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$21) {
                                    var$5 = $var8.$nativeString.length - $var9.$nativeString.length | 0;
                                    break b;
                                }
                                if (var$11 < 0)
                                    break v;
                                if (var$11 >= $var8.$nativeString.length)
                                    break v;
                                var$14 = $var8.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break bc;
                                if (var$11 >= $var9.$nativeString.length)
                                    break bc;
                                var$5 = var$14 - $var9.$nativeString.charCodeAt(var$11) | 0;
                                if (var$5)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$5)
                        break a;
                    $par1INetworkManager = var$5 >= 0 ? $par1INetworkManager.$right : $par1INetworkManager.$left;
                }
                $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
                $par1INetworkManager.$suppressionEnabled = 1;
                $par1INetworkManager.$writableStackTrace = 1;
                $rt_throw($par1INetworkManager);
            }
            $par1INetworkManager = new jl_StringIndexOutOfBoundsException;
            $par1INetworkManager.$suppressionEnabled = 1;
            $par1INetworkManager.$writableStackTrace = 1;
            $rt_throw($par1INetworkManager);
        }
        $par1INetworkManager = $par1INetworkManager === null ? null : $par1INetworkManager.$value2;
        var$5 = $par1INetworkManager === null ? 0 : $par1INetworkManager.$valueBoolean;
        $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var4.$worldAge = var$23;
        $var4.$time0 = var$16;
        if (!var$5) {
            var$16 = Long_neg(var$16);
            $var4.$time0 = var$16;
            if (Long_eq(var$16, Long_ZERO))
                $var4.$time0 = Long_fromInt(-1);
        }
        l: {
            if ($var4 instanceof nms_Packet3Chat) {
                $par1INetworkManager = $var4;
                var$11 = $var7.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break l;
                if (var$11 == 1 && !$par1INetworkManager.$isServer)
                    break l;
            }
            try {
                $par1INetworkManager = $var7.$netManager;
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        null.$length();
        $par1INetworkManager = $par2EntityPlayerMP.$activePotionsMap;
        if ($par1INetworkManager.$cachedValues === null) {
            $var8 = new ju_HashMap$2;
            $var8.$this$01 = $par1INetworkManager;
            $par1INetworkManager.$cachedValues = $var8;
        }
        $var8 = $par1INetworkManager.$cachedValues.$iterator();
        while ($var8.$hasNext()) {
            bg: {
                $var9 = $var8.$next();
                $par1INetworkManager = nms_Packet41EntityEffect__init_($par2EntityPlayerMP.$entityId, $var9);
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var9 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break bg;
                    if (var$11 == 1 && !$var9.$isServer)
                        break bg;
                }
                try {
                    $var9 = $var7.$netManager;
                    $ptr = 16;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var4 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var4);
                    $var4.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var4;
                    $var4 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var4);
                    $var9.$sb = $var4;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
        }
        $par1INetworkManager = $par2EntityPlayerMP.$openContainer;
        $ptr = 15;
        continue main;
    case 13:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1INetworkManager, $var10);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            $var9 = jl_System_errCache;
            if ($var9 === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                var$11 = 32;
                ji_OutputStream__init_($var4);
                var$12 = $rt_createByteArray(var$11);
                $var4.$buf = var$12;
                var$11 = 0;
                ji_FilterOutputStream__init_($var9, $var4);
                $var4 = jl_StringBuilder__init_();
                $var9.$sb = $var4;
                var$21 = 32;
                var$12 = $rt_createCharArray(var$21);
                $var9.$buffer0 = var$12;
                $var9.$autoFlush = var$11;
                $var4 = jnci_UTF8Charset_INSTANCE;
                $var9.$charset = $var4;
                jl_System_errCache = $var9;
            }
            $var9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1INetworkManager, $var9);
        }
        ba: while (true) {
            while (true) {
                var$5 = var$5 + 1 | 0;
                $par1INetworkManager = $this.$playerEntityList;
                var$11 = $rt_compare(var$5, $par1INetworkManager.$size0);
                if (var$11 >= 0) {
                    $ptr = 11;
                    continue main;
                }
                if (var$5 < 0)
                    break ba;
                if (var$11 >= 0)
                    break ba;
                $par1INetworkManager = $par1INetworkManager.$array.data[var$5].$playerNetServerHandler;
                if (!var$14)
                    break;
                var$21 = $par1INetworkManager.$playerEntity.$chatVisibility;
                if (var$21 == 2)
                    continue;
                if (var$21 != 1)
                    break;
                if ($var8.$isServer)
                    break;
            }
            try {
                $par1INetworkManager = $par1INetworkManager.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            $var9 = jl_System_errCache;
            if ($var9 === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                var$11 = 32;
                ji_OutputStream__init_($var4);
                var$12 = $rt_createByteArray(var$11);
                $var4.$buf = var$12;
                var$11 = 0;
                ji_FilterOutputStream__init_($var9, $var4);
                $var4 = jl_StringBuilder__init_();
                $var9.$sb = $var4;
                var$21 = 32;
                var$12 = $rt_createCharArray(var$21);
                $var9.$buffer0 = var$12;
                $var9.$autoFlush = var$11;
                $var4 = jnci_UTF8Charset_INSTANCE;
                $var9.$charset = $var4;
                jl_System_errCache = $var9;
            }
            $var9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1INetworkManager, $var9);
        }
        $par1INetworkManager = new jl_IndexOutOfBoundsException;
        $par1INetworkManager.$suppressionEnabled = 1;
        $par1INetworkManager.$writableStackTrace = 1;
        $rt_throw($par1INetworkManager);
    case 14:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1INetworkManager, $var4);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var8 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var8);
                $var8.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var8.$sb = $var9;
                $var8.$buffer0 = $rt_createCharArray(32);
                $var8.$autoFlush = 0;
                $var8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var8;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
        }
        null.$length();
        $par1INetworkManager = $par2EntityPlayerMP.$activePotionsMap;
        if ($par1INetworkManager.$cachedValues === null) {
            $var8 = new ju_HashMap$2;
            $var8.$this$01 = $par1INetworkManager;
            $par1INetworkManager.$cachedValues = $var8;
        }
        $var8 = $par1INetworkManager.$cachedValues.$iterator();
        while ($var8.$hasNext()) {
            h: {
                $var9 = $var8.$next();
                $par1INetworkManager = nms_Packet41EntityEffect__init_($par2EntityPlayerMP.$entityId, $var9);
                if ($par1INetworkManager instanceof nms_Packet3Chat) {
                    $var9 = $par1INetworkManager;
                    var$11 = $var7.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break h;
                    if (var$11 == 1 && !$var9.$isServer)
                        break h;
                }
                try {
                    $var9 = $var7.$netManager;
                    $ptr = 16;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1INetworkManager = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var4 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var4);
                    $var4.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var4;
                    $var4 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var4);
                    $var9.$sb = $var4;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            }
        }
        $par1INetworkManager = $par2EntityPlayerMP.$openContainer;
        $ptr = 15;
    case 15:
        $par1INetworkManager.$addCraftingToCrafters($par2EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        if ($var3 !== null) {
            bh: {
                $var8 = $var3.$tagMap;
                if (!$rt_s(360).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(360).$nativeString.length)
                            break bh;
                        $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$14 = $rt_s(360).$hashCode1;
            var$12 = $var8.$elementData.data;
            $var8 = var$12[var$14 & (var$12.length - 1 | 0)];
            while ($var8 !== null) {
                if ($var8.$origKeyHash == var$14) {
                    s: {
                        $var9 = $var8.$key;
                        if ($rt_s(360) !== $var9) {
                            if ($rt_s(360) === $var9)
                                var$5 = 1;
                            else if (!($var9 instanceof jl_String))
                                var$5 = 0;
                            else {
                                $var9 = $var9;
                                var$5 = $rt_s(360).$nativeString !== $var9.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break s;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $var8 = $var8.$next3;
            }
            if ($var8 === null ? 0 : 1) {
                bc: {
                    $var8 = $var3.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(360).$nativeString.length)
                                break bc;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(360).$hashCode1;
                var$12 = $var8.$elementData.data;
                $var8 = var$12[var$14 & (var$12.length - 1 | 0)];
                while ($var8 !== null) {
                    if ($var8.$origKeyHash == var$14) {
                        i: {
                            $var9 = $var8.$key;
                            if ($rt_s(360) !== $var9) {
                                if ($rt_s(360) === $var9)
                                    var$5 = 1;
                                else if (!($var9 instanceof jl_String))
                                    var$5 = 0;
                                else {
                                    $var9 = $var9;
                                    var$5 = $rt_s(360).$nativeString !== $var9.$nativeString ? 0 : 1;
                                }
                                if (!var$5) {
                                    var$5 = 0;
                                    break i;
                                }
                            }
                            var$5 = 1;
                        }
                        if (var$5)
                            break;
                    }
                    $var8 = $var8.$next3;
                }
                if (!($var8 === null ? 0 : 1)) {
                    $var3 = new nms_NBTTagCompound;
                    if ($rt_s(360) !== null)
                        $var3.$name = $rt_s(360);
                    else
                        $var3.$name = $rt_s(3);
                    $par1INetworkManager = new ju_HashMap;
                    var$5 = ju_HashMap_calculateCapacity(16);
                    $par1INetworkManager.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                    var$12 = var$13.data;
                    $par1INetworkManager.$elementData = var$13;
                    $par1INetworkManager.$loadFactor = 0.75;
                    $par1INetworkManager.$threshold = var$12.length * 0.75 | 0;
                    $var3.$tagMap = $par1INetworkManager;
                } else {
                    $var3 = $var3.$tagMap;
                    if ($rt_s(360) === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        d: {
                            if (!$rt_s(360).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(360).$nativeString.length)
                                        break d;
                                    $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(360).$hashCode1;
                        var$12 = $var3.$elementData.data;
                        $var3 = var$12[var$14 & (var$12.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$14) {
                                e: {
                                    $var8 = $var3.$key;
                                    if ($rt_s(360) !== $var8) {
                                        if ($rt_s(360) === $var8)
                                            var$5 = 1;
                                        else if (!($var8 instanceof jl_String))
                                            var$5 = 0;
                                        else {
                                            $var8 = $var8;
                                            var$5 = $rt_s(360).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!var$5) {
                                            var$5 = 0;
                                            break e;
                                        }
                                    }
                                    var$5 = 1;
                                }
                                if (var$5)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    $var3 = $var3 === null ? null : $var3.$value0;
                }
                $ptr = 17;
                continue main;
            }
        }
        return;
    case 16:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var9, $par1INetworkManager);
                if ($rt_suspending()) {
                    break main;
                }
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                    break g;
                } else {
                    throw $$e;
                }
            }
            bi: {
                while (true) {
                    var$5 = $var8.$hasNext();
                    if (!var$5)
                        break;
                    $par1INetworkManager = $var8.$next();
                    $var9 = $par1INetworkManager;
                    $par1INetworkManager = new nms_Packet41EntityEffect;
                    var$5 = $par2EntityPlayerMP.$entityId;
                    nms_Packet41EntityEffect__init_0($par1INetworkManager, var$5, $var9);
                    var$5 = $par1INetworkManager instanceof nms_Packet3Chat;
                    if (!var$5)
                        break bi;
                    $var9 = $par1INetworkManager;
                    $var4 = $var7.$playerEntity;
                    var$11 = $var4.$chatVisibility;
                    var$5 = 2;
                    var$5 = $rt_compare(var$11, var$5);
                    if (!var$5)
                        continue;
                    var$5 = 1;
                    var$5 = $rt_compare(var$11, var$5);
                    if (var$5)
                        break bi;
                    var$5 = $var9.$isServer;
                    if (var$5)
                        break bi;
                }
                $par1INetworkManager = $par2EntityPlayerMP.$openContainer;
                $ptr = 15;
                continue main;
            }
            try {
                $var9 = $var7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        h: while (true) {
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var4);
                $var4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = $var4;
                $var4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var4);
                $var9.$sb = $var4;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($par1INetworkManager, jl_System_errCache);
            while (true) {
                var$5 = $var8.$hasNext();
                if (!var$5)
                    break h;
                $par1INetworkManager = $var8.$next();
                $var9 = $par1INetworkManager;
                $par1INetworkManager = new nms_Packet41EntityEffect;
                var$5 = $par2EntityPlayerMP.$entityId;
                nms_Packet41EntityEffect__init_0($par1INetworkManager, var$5, $var9);
                var$5 = $par1INetworkManager instanceof nms_Packet3Chat;
                if (!var$5)
                    break;
                $var9 = $par1INetworkManager;
                $var4 = $var7.$playerEntity;
                var$11 = $var4.$chatVisibility;
                var$5 = 2;
                var$5 = $rt_compare(var$11, var$5);
                if (!var$5)
                    continue;
                var$5 = 1;
                var$5 = $rt_compare(var$11, var$5);
                if (var$5)
                    break;
                var$5 = $var9.$isServer;
                if (var$5)
                    break;
            }
            try {
                $var9 = $var7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1INetworkManager = $$je;
                    continue;
                } else {
                    throw $$e;
                }
            }
        }
        $par1INetworkManager = $par2EntityPlayerMP.$openContainer;
        $ptr = 15;
        continue main;
    case 17:
        $tmp = nms_EntityList_createEntityFromNBT($var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 === null)
            return;
        $var10.$forceSpawn = 1;
        $ptr = 18;
    case 18:
        nms_World_spawnEntityInWorld($var5, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 19;
    case 19:
        nms_EntityPlayerMP_mountEntity($par2EntityPlayerMP, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10.$forceSpawn = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1INetworkManager, $par2EntityPlayerMP, $var3, $var8, var$5, $var9, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var4, var$16, $var5, var$18, var$19, var$20, var$21, var$22, var$23, $var10, var$25, var$26, var$27, var$28, $ptr);
},
nms_ServerConfigurationManager_func_96456_a = ($this, $par1ServerScoreboard, $par2EntityPlayerMP) => {
    let $var3, var$4, var$5, $var4, $var5, $var10, $var7$index, $var9, $var6, var$12, var$13, $var7$index_0, $var7$index_1, $var8, var$17, var$18, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var8 = $thread.pop();$var7$index_1 = $thread.pop();$var7$index_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var6 = $thread.pop();$var9 = $thread.pop();$var7$index = $thread.pop();$var10 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2EntityPlayerMP = $thread.pop();$par1ServerScoreboard = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = ju_HashSet__init_();
        var$4 = $par1ServerScoreboard.$field_96542_e;
        if (var$4.$cachedValues === null) {
            var$5 = new ju_HashMap$2;
            var$5.$this$01 = var$4;
            var$4.$cachedValues = var$5;
        }
        $var4 = var$4.$cachedValues.$iterator();
        while ($var4.$hasNext()) {
            a: {
                $var5 = $var4.$next();
                var$4 = $par2EntityPlayerMP.$playerNetServerHandler;
                var$5 = nms_Packet209SetPlayerTeam__init_($var5, 0);
                if (var$5 instanceof nms_Packet3Chat) {
                    $var10 = var$5;
                    $var7$index = var$4.$playerEntity.$chatVisibility;
                    if ($var7$index == 2)
                        break a;
                    if ($var7$index == 1 && !$var10.$isServer)
                        break a;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$4 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$5 = new otcic_JSStderrPrintStream;
                    $var10 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var10);
                    $var10.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$5);
                    var$5.$out0 = $var10;
                    $var10 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var10);
                    var$5.$sb = $var10;
                    var$5.$buffer0 = $rt_createCharArray(32);
                    var$5.$autoFlush = 0;
                    var$5.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$5;
                }
                jl_Throwable_printStackTrace(var$4, jl_System_errCache);
            }
        }
        $var9 = 0;
        $var7$index = 0;
        while ($var9 < 3) {
            $var10 = $par1ServerScoreboard.$field_96541_d.data[$var9];
            if ($var10 !== null && !ju_HashSet_contains($var3, $var10)) {
                $var6 = nms_ServerScoreboard_func_96550_d($par1ServerScoreboard, $var10);
                var$12 = $var6.$modCount;
                var$13 = $var6.$size();
                $var7$index_0 = $var7$index;
                while ($var7$index_0 >= var$13 ? 0 : 1) {
                    if (var$12 < $var6.$modCount) {
                        $par1ServerScoreboard = new ju_ConcurrentModificationException;
                        $par1ServerScoreboard.$suppressionEnabled = 1;
                        $par1ServerScoreboard.$writableStackTrace = 1;
                        $rt_throw($par1ServerScoreboard);
                    }
                    b: {
                        $var7$index_1 = $var7$index_0 + 1 | 0;
                        $var8 = $var6.$get($var7$index_0);
                        $var4 = $par2EntityPlayerMP.$playerNetServerHandler;
                        if ($var8 instanceof nms_Packet3Chat) {
                            var$4 = $var8;
                            $var7$index_0 = $var4.$playerEntity.$chatVisibility;
                            if ($var7$index_0 == 2)
                                break b;
                            if ($var7$index_0 == 1 && !var$4.$isServer)
                                break b;
                        }
                        try {
                            var$4 = $var4.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$5 = new otcic_JSStderrPrintStream;
                            $var8 = new ji_ByteArrayOutputStream;
                            jl_Object__init_($var8);
                            $var8.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_(var$5);
                            var$5.$out0 = $var8;
                            $var8 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var8);
                            var$5.$sb = $var8;
                            var$5.$buffer0 = $rt_createCharArray(32);
                            var$5.$autoFlush = 0;
                            var$5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$5;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
                    $var7$index_0 = $var7$index_1;
                }
                ju_HashMap_putImpl($var3.$backingMap, $var10, $var3);
            }
            $var9 = $var9 + 1 | 0;
        }
        return;
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                $var10 = new ji_ByteArrayOutputStream;
                var$17 = 32;
                jl_Object__init_($var10);
                var$18 = $rt_createByteArray(var$17);
                $var10.$buf = var$18;
                var$17 = 0;
                ji_OutputStream__init_(var$5);
                var$5.$out0 = $var10;
                $var10 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var10);
                var$5.$sb = $var10;
                $var7$index = 32;
                var$18 = $rt_createCharArray($var7$index);
                var$5.$buffer0 = var$18;
                var$5.$autoFlush = var$17;
                $var10 = jnci_UTF8Charset_INSTANCE;
                var$5.$charset = $var10;
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$4, var$5);
        }
        d: while (true) {
            while (true) {
                if (!$var4.$hasNext())
                    break d;
                $var5 = $var4.$next();
                var$4 = $par2EntityPlayerMP.$playerNetServerHandler;
                var$5 = nms_Packet209SetPlayerTeam__init_($var5, 0);
                if (!(var$5 instanceof nms_Packet3Chat))
                    break;
                $var10 = var$5;
                $var7$index = var$4.$playerEntity.$chatVisibility;
                if ($var7$index == 2)
                    continue;
                if ($var7$index != 1)
                    break;
                if ($var10.$isServer)
                    break;
            }
            try {
                var$4 = var$4.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                $var10 = new ji_ByteArrayOutputStream;
                var$17 = 32;
                jl_Object__init_($var10);
                var$18 = $rt_createByteArray(var$17);
                $var10.$buf = var$18;
                var$17 = 0;
                ji_OutputStream__init_(var$5);
                var$5.$out0 = $var10;
                $var10 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var10);
                var$5.$sb = $var10;
                $var7$index = 32;
                var$18 = $rt_createCharArray($var7$index);
                var$5.$buffer0 = var$18;
                var$5.$autoFlush = var$17;
                $var10 = jnci_UTF8Charset_INSTANCE;
                var$5.$charset = $var10;
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$4, var$5);
        }
        $var9 = 0;
        $var7$index = 0;
        while ($var9 < 3) {
            $var10 = $par1ServerScoreboard.$field_96541_d.data[$var9];
            if ($var10 !== null && !ju_HashSet_contains($var3, $var10)) {
                $var6 = nms_ServerScoreboard_func_96550_d($par1ServerScoreboard, $var10);
                var$12 = $var6.$modCount;
                var$13 = $var6.$size();
                $var7$index_0 = $var7$index;
                while ($var7$index_0 >= var$13 ? 0 : 1) {
                    if (var$12 < $var6.$modCount) {
                        $par1ServerScoreboard = new ju_ConcurrentModificationException;
                        $par1ServerScoreboard.$suppressionEnabled = 1;
                        $par1ServerScoreboard.$writableStackTrace = 1;
                        $rt_throw($par1ServerScoreboard);
                    }
                    e: {
                        $var7$index_1 = $var7$index_0 + 1 | 0;
                        $var8 = $var6.$get($var7$index_0);
                        $var4 = $par2EntityPlayerMP.$playerNetServerHandler;
                        if ($var8 instanceof nms_Packet3Chat) {
                            var$4 = $var8;
                            $var7$index_0 = $var4.$playerEntity.$chatVisibility;
                            if ($var7$index_0 == 2)
                                break e;
                            if ($var7$index_0 == 1 && !var$4.$isServer)
                                break e;
                        }
                        try {
                            var$4 = $var4.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$5 = new otcic_JSStderrPrintStream;
                            $var8 = new ji_ByteArrayOutputStream;
                            jl_Object__init_($var8);
                            $var8.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_(var$5);
                            var$5.$out0 = $var8;
                            $var8 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var8);
                            var$5.$sb = $var8;
                            var$5.$buffer0 = $rt_createCharArray(32);
                            var$5.$autoFlush = 0;
                            var$5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$5;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
                    $var7$index_0 = $var7$index_1;
                }
                ju_HashMap_putImpl($var3.$backingMap, $var10, $var3);
            }
            $var9 = $var9 + 1 | 0;
        }
        return;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                var$17 = 32;
                jl_Object__init_($var8);
                var$18 = $rt_createByteArray(var$17);
                $var8.$buf = var$18;
                var$17 = 0;
                ji_OutputStream__init_(var$5);
                var$5.$out0 = $var8;
                $var8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var8);
                var$5.$sb = $var8;
                $var7$index_0 = 32;
                var$18 = $rt_createCharArray($var7$index_0);
                var$5.$buffer0 = var$18;
                var$5.$autoFlush = var$17;
                $var8 = jnci_UTF8Charset_INSTANCE;
                var$5.$charset = $var8;
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$4, var$5);
        }
        f: while (true) {
            while (true) {
                $var7$index_0 = $var7$index_1;
                while (!($var7$index_0 >= var$13 ? 0 : 1)) {
                    ju_HashMap_putImpl($var3.$backingMap, $var10, $var3);
                    while (true) {
                        $var9 = $var9 + 1 | 0;
                        if ($var9 >= 3)
                            break f;
                        $var10 = $par1ServerScoreboard.$field_96541_d.data[$var9];
                        if ($var10 === null)
                            continue;
                        if (ju_HashSet_contains($var3, $var10))
                            continue;
                        else
                            break;
                    }
                    $var6 = nms_ServerScoreboard_func_96550_d($par1ServerScoreboard, $var10);
                    var$12 = $var6.$modCount;
                    var$13 = $var6.$size();
                    $var7$index_0 = $var7$index;
                }
                if (var$12 < $var6.$modCount) {
                    $par1ServerScoreboard = new ju_ConcurrentModificationException;
                    $par1ServerScoreboard.$suppressionEnabled = 1;
                    $par1ServerScoreboard.$writableStackTrace = 1;
                    $rt_throw($par1ServerScoreboard);
                }
                $var7$index_1 = $var7$index_0 + 1 | 0;
                $var8 = $var6.$get($var7$index_0);
                $var4 = $par2EntityPlayerMP.$playerNetServerHandler;
                if (!($var8 instanceof nms_Packet3Chat))
                    break;
                var$4 = $var8;
                $var7$index_0 = $var4.$playerEntity.$chatVisibility;
                if ($var7$index_0 == 2)
                    continue;
                if ($var7$index_0 != 1)
                    break;
                if (var$4.$isServer)
                    break;
            }
            try {
                var$4 = $var4.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                var$17 = 32;
                jl_Object__init_($var8);
                var$18 = $rt_createByteArray(var$17);
                $var8.$buf = var$18;
                var$17 = 0;
                ji_OutputStream__init_(var$5);
                var$5.$out0 = $var8;
                $var8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var8);
                var$5.$sb = $var8;
                $var7$index_0 = 32;
                var$18 = $rt_createCharArray($var7$index_0);
                var$5.$buffer0 = var$18;
                var$5.$autoFlush = var$17;
                $var8 = jnci_UTF8Charset_INSTANCE;
                var$5.$charset = $var8;
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$4, var$5);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ServerScoreboard, $par2EntityPlayerMP, $var3, var$4, var$5, $var4, $var5, $var10, $var7$index, $var9, $var6, var$12, var$13, $var7$index_0, $var7$index_1, $var8, var$17, var$18, $ptr);
},
nms_ServerConfigurationManager_readPlayerDataFromFile = ($this, $par1EntityPlayerMP) => {
    let $var3, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$mcServer1.$worldServers.data[0].$worldInfo.$getPlayerNBTTagCompound();
        var$3 = $par1EntityPlayerMP.$username;
        var$4 = $this.$mcServer1.$serverOwner;
        if (var$3 === var$4)
            var$5 = 1;
        else if (!(var$4 instanceof jl_String))
            var$5 = 0;
        else {
            var$4 = var$4;
            var$5 = var$3.$nativeString !== var$4.$nativeString ? 0 : 1;
        }
        if (var$5 && $var3 !== null) {
            $ptr = 2;
            continue main;
        }
        $var3 = $this.$playerNBTManagerObj;
        $ptr = 1;
    case 1:
        $tmp = nles_VFSSaveHandler_readPlayerData($var3, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        return $var3;
    case 2:
        nms_Entity_readFromNBT($par1EntityPlayerMP, $var3);
        if ($rt_suspending()) {
            break main;
        }
        if (jl_System_outCache === null) {
            $par1EntityPlayerMP = new otcic_JSStdoutPrintStream;
            var$4 = new ji_ByteArrayOutputStream;
            var$4.$buf = $rt_createByteArray(32);
            $par1EntityPlayerMP.$out0 = var$4;
            var$4 = new jl_StringBuilder;
            jl_Object__init_(var$4);
            var$4.$buffer = $rt_createCharArray(16);
            $par1EntityPlayerMP.$sb = var$4;
            $par1EntityPlayerMP.$buffer0 = $rt_createCharArray(32);
            $par1EntityPlayerMP.$autoFlush = 0;
            $par1EntityPlayerMP.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $par1EntityPlayerMP;
        }
        $rt_putStdout("loading single player");
        $rt_putStdout("\n");
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var3, var$3, var$4, var$5, $ptr);
},
nms_ServerConfigurationManager_playerLoggedIn = ($this, $par1EntityPlayerMP) => {
    let $var4, var$3, var$4, var$5, var$6, $var2, var$8, $var3, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var3 = $thread.pop();var$8 = $thread.pop();$var2 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = new nms_Packet201PlayerInfo;
        var$3 = $par1EntityPlayerMP.$username;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var4.$playerName = var$3;
        $var4.$isConnected = 1;
        $var4.$ping = 1000;
        var$4 = 0;
        var$5 = $var4 instanceof nms_Packet3Chat;
        var$6 = $var4;
        while (true) {
            $var2 = $this.$playerEntityList;
            var$8 = $var2.$size0;
            $var3 = $rt_compare(var$4, var$8);
            if ($var3 >= 0) {
                ju_ArrayList_ensureCapacity($var2, var$8 + 1 | 0);
                var$10 = $var2.$array.data;
                var$8 = $var2.$size0;
                $var2.$size0 = var$8 + 1 | 0;
                var$10[var$8] = $par1EntityPlayerMP;
                $var2.$modCount = $var2.$modCount + 1 | 0;
                $var4 = $this.$mcServer1;
                $var3 = $par1EntityPlayerMP.$dimension;
                $var2 = $var3 == (-1) ? $var4.$worldServers.data[1] : $var3 != 1 ? $var4.$worldServers.data[0] : $var4.$worldServers.data[2];
                $ptr = 1;
                continue main;
            }
            if (var$4 < 0)
                break;
            if ($var3 >= 0)
                break;
            a: {
                $var2 = $var2.$array.data[var$4].$playerNetServerHandler;
                if (var$5) {
                    $var3 = $var2.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break a;
                    if ($var3 == 1 && !var$6.$isServer)
                        break a;
                }
                try {
                    $var2 = $var2.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$11 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    var$3 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$3);
                    var$3.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var2, var$3);
                    $var2.$sb = jl_StringBuilder__init_();
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace(var$11, jl_System_errCache);
            }
            var$4 = var$4 + 1 | 0;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 1:
        nms_World_spawnEntityInWorld($var2, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $par1EntityPlayerMP.$worldObj;
        $var4 = $var2.$thePlayerManager0;
        $ptr = 2;
    case 2:
        nms_PlayerManager_addPlayer($var4, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var2.$theChunkProviderServer;
        var$8 = ($par1EntityPlayerMP.$posX | 0) >> 4;
        $var3 = ($par1EntityPlayerMP.$posZ | 0) >> 4;
        $ptr = 3;
    case 3:
        nms_ChunkProviderServer_loadChunk($var4, var$8, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 0;
        b: {
            while (true) {
                $var4 = $this.$playerEntityList;
                var$8 = $rt_compare($var3, $var4.$size0);
                if (var$8 >= 0)
                    break;
                if ($var3 < 0)
                    break b;
                if (var$8 >= 0)
                    break b;
                c: {
                    $var4 = $var4.$array.data[$var3];
                    $var2 = $par1EntityPlayerMP.$playerNetServerHandler;
                    var$3 = new nms_Packet201PlayerInfo;
                    var$6 = $var4.$username;
                    var$4 = $var4.$ping0;
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$3.$playerName = var$6;
                    var$3.$isConnected = 1;
                    var$3.$ping = var$4;
                    if (var$3 instanceof nms_Packet3Chat) {
                        $var4 = var$3;
                        var$4 = $var2.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break c;
                        if (var$4 == 1 && !$var4.$isServer)
                            break c;
                    }
                    try {
                        $var4 = $var2.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var4 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        var$3 = new ji_ByteArrayOutputStream;
                        jl_Object__init_(var$3);
                        var$3.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var2);
                        $var2.$out0 = var$3;
                        var$3 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_(var$3);
                        $var2.$sb = var$3;
                        $var2.$buffer0 = $rt_createCharArray(32);
                        $var2.$autoFlush = 0;
                        $var2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($var4, jl_System_errCache);
                }
                $var3 = $var3 + 1 | 0;
            }
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 4:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $var4);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var2 = jl_System_errCache;
            if ($var2 === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                $var3 = 32;
                ji_OutputStream__init_(var$3);
                var$10 = $rt_createByteArray($var3);
                var$3.$buf = var$10;
                $var3 = 0;
                ji_FilterOutputStream__init_($var2, var$3);
                var$3 = jl_StringBuilder__init_();
                $var2.$sb = var$3;
                var$8 = 32;
                var$10 = $rt_createCharArray(var$8);
                $var2.$buffer0 = var$10;
                $var2.$autoFlush = $var3;
                var$3 = jnci_UTF8Charset_INSTANCE;
                $var2.$charset = var$3;
                jl_System_errCache = $var2;
            }
            $var2 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, $var2);
        }
        d: while (true) {
            while (true) {
                var$4 = var$4 + 1 | 0;
                $var2 = $this.$playerEntityList;
                var$8 = $var2.$size0;
                $var3 = $rt_compare(var$4, var$8);
                if ($var3 >= 0) {
                    ju_ArrayList_ensureCapacity($var2, var$8 + 1 | 0);
                    var$10 = $var2.$array.data;
                    var$8 = $var2.$size0;
                    $var2.$size0 = var$8 + 1 | 0;
                    var$10[var$8] = $par1EntityPlayerMP;
                    $var2.$modCount = $var2.$modCount + 1 | 0;
                    $var4 = $this.$mcServer1;
                    $var3 = $par1EntityPlayerMP.$dimension;
                    $var2 = $var3 == (-1) ? $var4.$worldServers.data[1] : $var3 != 1 ? $var4.$worldServers.data[0] : $var4.$worldServers.data[2];
                    $ptr = 1;
                    continue main;
                }
                if (var$4 < 0)
                    break d;
                if ($var3 >= 0)
                    break d;
                $var2 = $var2.$array.data[var$4].$playerNetServerHandler;
                if (!var$5)
                    break;
                $var3 = $var2.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    continue;
                if ($var3 != 1)
                    break;
                if (var$6.$isServer)
                    break;
            }
            try {
                $var2 = $var2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var2 = jl_System_errCache;
            if ($var2 === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                $var3 = 32;
                ji_OutputStream__init_(var$3);
                var$10 = $rt_createByteArray($var3);
                var$3.$buf = var$10;
                $var3 = 0;
                ji_FilterOutputStream__init_($var2, var$3);
                var$3 = jl_StringBuilder__init_();
                $var2.$sb = var$3;
                var$8 = 32;
                var$10 = $rt_createCharArray(var$8);
                $var2.$buffer0 = var$10;
                $var2.$autoFlush = $var3;
                var$3 = jnci_UTF8Charset_INSTANCE;
                $var2.$charset = var$3;
                jl_System_errCache = $var2;
            }
            $var2 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, $var2);
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 5:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var4, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var4 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var2 = jl_System_errCache;
            if ($var2 === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                jl_Object__init_(var$3);
                var$10 = $rt_createByteArray(var$8);
                var$3.$buf = var$10;
                var$8 = 0;
                ji_OutputStream__init_($var2);
                $var2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                $var2.$sb = var$3;
                var$4 = 32;
                var$10 = $rt_createCharArray(var$4);
                $var2.$buffer0 = var$10;
                $var2.$autoFlush = var$8;
                var$3 = jnci_UTF8Charset_INSTANCE;
                $var2.$charset = var$3;
                jl_System_errCache = $var2;
            }
            $var2 = jl_System_errCache;
            jl_Throwable_printStackTrace($var4, $var2);
        }
        a: {
            d: while (true) {
                while (true) {
                    $var3 = $var3 + 1 | 0;
                    $var4 = $this.$playerEntityList;
                    var$8 = $rt_compare($var3, $var4.$size0);
                    if (var$8 >= 0)
                        break d;
                    if ($var3 < 0)
                        break a;
                    if (var$8 >= 0)
                        break a;
                    $var4 = $var4.$array.data[$var3];
                    $var2 = $par1EntityPlayerMP.$playerNetServerHandler;
                    var$3 = new nms_Packet201PlayerInfo;
                    var$6 = $var4.$username;
                    var$4 = $var4.$ping0;
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$3.$playerName = var$6;
                    var$3.$isConnected = 1;
                    var$3.$ping = var$4;
                    if (!(var$3 instanceof nms_Packet3Chat))
                        break;
                    $var4 = var$3;
                    var$4 = $var2.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        continue;
                    if (var$4 != 1)
                        break;
                    if ($var4.$isServer)
                        break;
                }
                try {
                    $var4 = $var2.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var4 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $var2 = jl_System_errCache;
                if ($var2 === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    var$3 = new ji_ByteArrayOutputStream;
                    var$8 = 32;
                    jl_Object__init_(var$3);
                    var$10 = $rt_createByteArray(var$8);
                    var$3.$buf = var$10;
                    var$8 = 0;
                    ji_OutputStream__init_($var2);
                    $var2.$out0 = var$3;
                    var$3 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$3);
                    $var2.$sb = var$3;
                    var$4 = 32;
                    var$10 = $rt_createCharArray(var$4);
                    $var2.$buffer0 = var$10;
                    $var2.$autoFlush = var$8;
                    var$3 = jnci_UTF8Charset_INSTANCE;
                    $var2.$charset = var$3;
                    jl_System_errCache = $var2;
                }
                $var2 = jl_System_errCache;
                jl_Throwable_printStackTrace($var4, $var2);
            }
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var4, var$3, var$4, var$5, var$6, $var2, var$8, $var3, var$10, var$11, $ptr);
},
nms_ServerConfigurationManager_playerLoggedOut = ($this, $par1EntityPlayerMP) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayerMP.$username;
        var$3 = $this.$mcServer1.$serverOwner;
        if (var$2 === var$3)
            var$4 = 1;
        else if (!(var$3 instanceof jl_String))
            var$4 = 0;
        else {
            var$3 = var$3;
            var$4 = var$2.$nativeString !== var$3.$nativeString ? 0 : 1;
        }
        if (var$4) {
            var$3 = nms_NBTTagCompound__init_();
            $this.$hostPlayerNBT = var$3;
            nms_Entity_writeToNBT($par1EntityPlayerMP, var$3);
        }
        var$3 = $this.$playerNBTManagerObj;
        $ptr = 1;
    case 1:
        nles_VFSSaveHandler_writePlayerData(var$3, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $par1EntityPlayerMP.$worldObj;
        var$3 = $par1EntityPlayerMP.$ridingEntity;
        if (var$3 === null) {
            $ptr = 2;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 2:
        nms_World_removeEntity(var$2, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$2.$thePlayerManager0;
        $ptr = 3;
    case 3:
        nms_PlayerManager_removePlayer(var$3, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$playerEntityList;
        var$5 = var$3.$size0;
        var$4 = 0;
        a: {
            while (true) {
                var$6 = $rt_compare(var$4, var$5);
                if (var$6 >= 0) {
                    var$4 = (-1);
                    break a;
                }
                if (var$4 < 0)
                    break;
                if (var$6 >= 0)
                    break;
                var$2 = var$3.$array.data[var$4];
                if ($par1EntityPlayerMP === var$2 ? 1 : $par1EntityPlayerMP === null ? (var$2 !== null ? 0 : 1) : !(var$2 instanceof nms_Entity) ? 0 : var$2.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                    break a;
                var$4 = var$4 + 1 | 0;
            }
            $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if (var$4 >= 0)
            ju_ArrayList_remove(var$3, var$4);
        var$3 = new nms_Packet201PlayerInfo;
        var$2 = $par1EntityPlayerMP.$username;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$playerName = var$2;
        var$3.$isConnected = 0;
        var$3.$ping = 9999;
        var$6 = 0;
        var$5 = var$3 instanceof nms_Packet3Chat;
        var$2 = var$3;
        b: {
            while (true) {
                $par1EntityPlayerMP = $this.$playerEntityList;
                var$4 = $rt_compare(var$6, $par1EntityPlayerMP.$size0);
                if (var$4 >= 0)
                    break;
                if (var$6 < 0)
                    break b;
                if (var$4 >= 0)
                    break b;
                c: {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$array.data[var$6].$playerNetServerHandler;
                    if (var$5) {
                        var$7 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break c;
                        if (var$7 == 1 && !var$2.$isServer)
                            break c;
                    }
                    try {
                        $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1EntityPlayerMP = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1EntityPlayerMP);
                }
                var$6 = var$6 + 1 | 0;
            }
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 4:
        nms_World_removePlayerEntityDangerously(var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        if (jl_System_outCache === null) {
            var$3 = new otcic_JSStdoutPrintStream;
            var$8 = new ji_ByteArrayOutputStream;
            var$8.$buf = $rt_createByteArray(32);
            var$3.$out0 = var$8;
            var$8 = new jl_StringBuilder;
            var$8.$buffer = $rt_createCharArray(16);
            var$3.$sb = var$8;
            var$3.$buffer0 = $rt_createCharArray(32);
            var$3.$autoFlush = 0;
            var$3.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$3;
        }
        $rt_putStdout("removing player mount");
        $rt_putStdout("\n");
        $ptr = 2;
        continue main;
    case 5:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1EntityPlayerMP);
        }
        d: {
            e: while (true) {
                while (true) {
                    var$6 = var$6 + 1 | 0;
                    $par1EntityPlayerMP = $this.$playerEntityList;
                    var$4 = $rt_compare(var$6, $par1EntityPlayerMP.$size0);
                    if (var$4 >= 0)
                        break e;
                    if (var$6 < 0)
                        break d;
                    if (var$4 >= 0)
                        break d;
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$array.data[var$6].$playerNetServerHandler;
                    if (!var$5)
                        break;
                    var$7 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        continue;
                    if (var$7 != 1)
                        break;
                    if (var$2.$isServer)
                        break;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($par1EntityPlayerMP);
            }
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_ServerConfigurationManager_createPlayerForUser = ($this, $par1Str) => {
    let $var2, $var3, $var4, var$5, $var6, var$7, $var4_0, $var5$index, $var5$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5$index_0 = $thread.pop();$var5$index = $thread.pop();$var4_0 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = new ju_ArrayList;
        $var2.$array = $rt_createArray(jl_Object, 10);
        $var3 = 0;
        while (true) {
            $var4 = $this.$playerEntityList;
            var$5 = $rt_compare($var3, $var4.$size0);
            if (var$5 >= 0) {
                var$5 = $var2.$modCount;
                $var3 = $var2.$size();
                if (!(0 >= $var3 ? 0 : 1)) {
                    $var6 = new nms_ItemInWorldManager;
                    $var2 = $this.$mcServer1;
                    var$7 = $var2.$worldServers.data;
                    $var4_0 = var$7[0];
                    $var6.$gameType = nms_EnumGameType_NOT_SET;
                    $var6.$durabilityRemainingOnBlock = (-1);
                    $var6.$theWorld = $var4_0;
                    $var4 = new nms_EntityPlayerMP;
                    $var4_0 = var$7[0];
                    $ptr = 1;
                    continue main;
                }
                if (var$5 < $var2.$modCount) {
                    $par1Str = new ju_ConcurrentModificationException;
                    $par1Str.$suppressionEnabled = 1;
                    $par1Str.$writableStackTrace = 1;
                    $rt_throw($par1Str);
                }
                $var5$index = 0 + 1 | 0;
                $var4 = ($var2.$get(0)).$playerNetServerHandler;
                $var4_0 = $rt_s(386);
                $ptr = 2;
                continue main;
            }
            if ($var3 < 0)
                break;
            if (var$5 >= 0)
                break;
            $var4_0 = $var4.$array.data[$var3];
            if (jl_String_equalsIgnoreCase($var4_0.$username, $par1Str)) {
                ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                var$7 = $var2.$array.data;
                $var5$index_0 = $var2.$size0;
                $var2.$size0 = $var5$index_0 + 1 | 0;
                var$7[$var5$index_0] = $var4_0;
                $var2.$modCount = $var2.$modCount + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 1:
        nms_EntityPlayerMP__init_($var4, $var2, $var4_0, $par1Str, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return $var4;
    case 2:
        nms_NetServerHandler_kickPlayerFromServer($var4, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var5$index_0 = $var5$index;
        if (!($var5$index_0 >= $var3 ? 0 : 1)) {
            $var6 = new nms_ItemInWorldManager;
            $var2 = $this.$mcServer1;
            var$7 = $var2.$worldServers.data;
            $var4_0 = var$7[0];
            $var6.$gameType = nms_EnumGameType_NOT_SET;
            $var6.$durabilityRemainingOnBlock = (-1);
            $var6.$theWorld = $var4_0;
            $var4 = new nms_EntityPlayerMP;
            $var4_0 = var$7[0];
            $ptr = 1;
            continue main;
        }
        if (var$5 < $var2.$modCount) {
            $par1Str = new ju_ConcurrentModificationException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $var5$index = $var5$index_0 + 1 | 0;
        $var4 = ($var2.$get($var5$index_0)).$playerNetServerHandler;
        $var4_0 = $rt_s(386);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $var2, $var3, $var4, var$5, $var6, var$7, $var4_0, $var5$index, $var5$index_0, $ptr);
},
nms_ServerConfigurationManager_respawnPlayer = ($this, $par1EntityPlayerMP, $par2, $par3) => {
    let $var6, $var9, $var7, $var5, var$8, var$9, $var4, var$11, var$12, $var8, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayerMP
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par1EntityPlayerMP.$worldObj.$theEntityTracker.$trackedEntities.$backingMap;
        if ($var6.$cachedKeySet === null) {
            $var9 = new ju_HashMap$1;
            $var9.$this$0 = $var6;
            $var6.$cachedKeySet = $var9;
        }
        $var7 = $var6.$cachedKeySet.$iterator();
        while (true) {
            if (!$var7.$hasNext()) {
                nms_EntityTracker_removeEntityFromAllTrackingPlayers($par1EntityPlayerMP.$worldObj.$theEntityTracker, $par1EntityPlayerMP);
                $var6 = $par1EntityPlayerMP.$worldObj.$thePlayerManager0;
                $ptr = 1;
                continue main;
            }
            $var6 = $var7.$next();
            if (ju_HashSet_contains($var6.$trackingPlayers, $par1EntityPlayerMP)) {
                $var9 = ju_HashMap_removeByKey($var6.$trackingPlayers.$backingMap, $par1EntityPlayerMP);
                $var9 = $par1EntityPlayerMP.$destroyedItemsNetCache;
                $var5 = $var6.$myEntity.$entityId;
                if ($var5 >= (-128) && $var5 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var6 = jl_Integer_integerCache.data[$var5 + 128 | 0];
                } else {
                    $var6 = new jl_Integer;
                    $var6.$value = $var5;
                }
                $var5 = $var9.$size2;
                if ($var5 < 0)
                    break;
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var9, $var5), $var6);
            }
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 1:
        nms_PlayerManager_removePlayer($var6, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$playerEntityList;
        var$8 = $var6.$size0;
        $var5 = 0;
        a: {
            while (true) {
                var$9 = $rt_compare($var5, var$8);
                if (var$9 >= 0) {
                    $var5 = (-1);
                    break a;
                }
                if ($var5 < 0)
                    break;
                if (var$9 >= 0)
                    break;
                $var9 = $var6.$array.data[$var5];
                if ($par1EntityPlayerMP === $var9 ? 1 : $par1EntityPlayerMP === null ? ($var9 !== null ? 0 : 1) : !($var9 instanceof nms_Entity) ? 0 : $var9.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                    break a;
                $var5 = $var5 + 1 | 0;
            }
            $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if ($var5 >= 0)
            ju_ArrayList_remove($var6, $var5);
        $var6 = $this.$mcServer1;
        $var5 = $par1EntityPlayerMP.$dimension;
        $var6 = $var5 == (-1) ? $var6.$worldServers.data[1] : $var5 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
        $ptr = 2;
    case 2:
        nms_World_removePlayerEntityDangerously($var6, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $par1EntityPlayerMP.$spawnChunk;
        $var5 = $par1EntityPlayerMP.$spawnForced;
        $par1EntityPlayerMP.$dimension = $par2;
        $var6 = new nms_ItemInWorldManager;
        $var9 = $this.$mcServer1;
        var$8 = $rt_compare($par2, (-1));
        var$11 = !var$8 ? $var9.$worldServers.data[1] : $par2 != 1 ? $var9.$worldServers.data[0] : $var9.$worldServers.data[2];
        $var6.$gameType = nms_EnumGameType_NOT_SET;
        $var6.$durabilityRemainingOnBlock = (-1);
        $var6.$theWorld = var$11;
        $var7 = new nms_EntityPlayerMP;
        var$12 = !var$8 ? $var9.$worldServers.data[1] : $par2 != 1 ? $var9.$worldServers.data[0] : $var9.$worldServers.data[2];
        var$11 = $par1EntityPlayerMP.$username;
        $ptr = 3;
    case 3:
        nms_EntityPlayerMP__init_($var7, $var9, var$12, var$11, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7.$playerNetServerHandler = $par1EntityPlayerMP.$playerNetServerHandler;
        nms_EntityPlayer_clonePlayer($var7, $par1EntityPlayerMP, $par3);
        $var7.$lastExperience = (-1);
        $var7.$lastHealth = (-1.0);
        $var7.$lastFoodLevel = (-1);
        $var6 = $var7.$destroyedItemsNetCache;
        $var9 = $par1EntityPlayerMP.$destroyedItemsNetCache;
        var$11 = new ju_LinkedList$SequentialListIterator;
        $var8 = $var9.$firstEntry;
        var$12 = null;
        var$11.$this$02 = $var9;
        var$11.$version = $var9.$modCount;
        var$11.$nextEntry1 = $var8;
        var$11.$prevEntry = var$12;
        var$11.$index4 = 0;
        while (true) {
            if (!(var$11.$nextEntry1 === null ? 0 : 1)) {
                $var7.$entityId = $par1EntityPlayerMP.$entityId;
                $var6 = $this.$mcServer1;
                $par2 = $par1EntityPlayerMP.$dimension;
                $var8 = $par2 == (-1) ? $var6.$worldServers.data[1] : $par2 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
                if ($par1EntityPlayerMP !== null) {
                    $var6 = $var7.$theItemInWorldManager;
                    var$11 = $par1EntityPlayerMP.$theItemInWorldManager.$gameType;
                    $var6.$gameType = var$11;
                    nms_EnumGameType_configurePlayerCapabilities(var$11, $var6.$thisPlayerMP.$capabilities);
                    $var6 = $var6.$thisPlayerMP;
                    var$11 = $var6.$playerNetServerHandler;
                    if (var$11 !== null)
                        b: {
                            $var9 = new nms_Packet202PlayerAbilities;
                            var$12 = $var6.$capabilities;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var9.$disableDamage0 = var$12.$disableDamage;
                            $var9.$isFlying0 = var$12.$isFlying;
                            $var9.$allowFlying0 = var$12.$allowFlying;
                            $var9.$isCreativeMode0 = var$12.$isCreativeMode;
                            $var9.$flySpeed0 = var$12.$flySpeed;
                            $var9.$walkSpeed0 = var$12.$walkSpeed;
                            if ($var9 instanceof nms_Packet3Chat) {
                                $var6 = $var9;
                                $par2 = var$11.$playerEntity.$chatVisibility;
                                if ($par2 == 2)
                                    break b;
                                if ($par2 == 1 && !$var6.$isServer)
                                    break b;
                            }
                            try {
                                $var6 = var$11.$netManager;
                                $ptr = 4;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var9 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0($var9, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = $var9;
                            }
                            jl_Throwable_printStackTrace($var6, jl_System_errCache);
                        }
                } else {
                    $var6 = $this.$gameType2;
                    if ($var6 !== null) {
                        $var9 = $var7.$theItemInWorldManager;
                        $var9.$gameType = $var6;
                        nms_EnumGameType_configurePlayerCapabilities($var6, $var9.$thisPlayerMP.$capabilities);
                        $var6 = $var9.$thisPlayerMP;
                        var$11 = $var6.$playerNetServerHandler;
                        if (var$11 !== null)
                            c: {
                                $var9 = new nms_Packet202PlayerAbilities;
                                $var6 = $var6.$capabilities;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                $var9.$disableDamage0 = $var6.$disableDamage;
                                $var9.$isFlying0 = $var6.$isFlying;
                                $var9.$allowFlying0 = $var6.$allowFlying;
                                $var9.$isCreativeMode0 = $var6.$isCreativeMode;
                                $var9.$flySpeed0 = $var6.$flySpeed;
                                $var9.$walkSpeed0 = $var6.$walkSpeed;
                                if ($var9 instanceof nms_Packet3Chat) {
                                    $var6 = $var9;
                                    $par3 = var$11.$playerEntity.$chatVisibility;
                                    if ($par3 == 2)
                                        break c;
                                    if ($par3 == 1 && !$var6.$isServer)
                                        break c;
                                }
                                try {
                                    $var6 = var$11.$netManager;
                                    $ptr = 5;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $var9 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0($var9, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = $var9;
                                }
                                jl_Throwable_printStackTrace($var6, jl_System_errCache);
                            }
                    }
                }
                $var6 = $var7.$theItemInWorldManager;
                $var9 = $var8.$worldInfo.$getGameType();
                if ($var6.$gameType === nms_EnumGameType_NOT_SET)
                    $var6.$gameType = $var9;
                $var9 = $var6.$gameType;
                $var6.$gameType = $var9;
                nms_EnumGameType_configurePlayerCapabilities($var9, $var6.$thisPlayerMP.$capabilities);
                $var6 = $var6.$thisPlayerMP;
                var$11 = $var6.$playerNetServerHandler;
                if (var$11 !== null)
                    d: {
                        $var9 = new nms_Packet202PlayerAbilities;
                        $var6 = $var6.$capabilities;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var9.$disableDamage0 = $var6.$disableDamage;
                        $var9.$isFlying0 = $var6.$isFlying;
                        $var9.$allowFlying0 = $var6.$allowFlying;
                        $var9.$isCreativeMode0 = $var6.$isCreativeMode;
                        $var9.$flySpeed0 = $var6.$flySpeed;
                        $var9.$walkSpeed0 = $var6.$walkSpeed;
                        if ($var9 instanceof nms_Packet3Chat) {
                            $var6 = $var9;
                            $par3 = var$11.$playerEntity.$chatVisibility;
                            if ($par3 == 2)
                                break d;
                            if ($par3 == 1 && !$var6.$isServer)
                                break d;
                        }
                        try {
                            $var6 = var$11.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var9 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_($var9);
                            jl_System_errCache = $var9;
                        }
                        jl_Throwable_printStackTrace($var6, jl_System_errCache);
                    }
                if ($var4 === null) {
                    $par1EntityPlayerMP = $var8.$theChunkProviderServer;
                    $par2 = ($var7.$posX | 0) >> 4;
                    $par3 = ($var7.$posZ | 0) >> 4;
                    $ptr = 6;
                    continue main;
                }
                $var6 = $this.$mcServer1;
                $par3 = $par1EntityPlayerMP.$dimension;
                $par1EntityPlayerMP = $par3 == (-1) ? $var6.$worldServers.data[1] : $par3 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
                $ptr = 9;
                continue main;
            }
            $var9 = ju_LinkedList$SequentialListIterator_next(var$11);
            $par2 = $var6.$size2;
            if ($par2 < 0)
                break;
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var6, $par2), $var9);
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 4:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var9, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $var7.$theItemInWorldManager;
        $var9 = $var8.$worldInfo.$getGameType();
        if ($var6.$gameType === nms_EnumGameType_NOT_SET)
            $var6.$gameType = $var9;
        $var9 = $var6.$gameType;
        $var6.$gameType = $var9;
        nms_EnumGameType_configurePlayerCapabilities($var9, $var6.$thisPlayerMP.$capabilities);
        $var6 = $var6.$thisPlayerMP;
        var$11 = $var6.$playerNetServerHandler;
        if (var$11 !== null)
            e: {
                $var9 = new nms_Packet202PlayerAbilities;
                $var6 = $var6.$capabilities;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$disableDamage0 = $var6.$disableDamage;
                $var9.$isFlying0 = $var6.$isFlying;
                $var9.$allowFlying0 = $var6.$allowFlying;
                $var9.$isCreativeMode0 = $var6.$isCreativeMode;
                $var9.$flySpeed0 = $var6.$flySpeed;
                $var9.$walkSpeed0 = $var6.$walkSpeed;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var6 = $var9;
                    $par3 = var$11.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break e;
                    if ($par3 == 1 && !$var6.$isServer)
                        break e;
                }
                try {
                    $var6 = var$11.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_($var9);
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var6, jl_System_errCache);
            }
        if ($var4 === null) {
            $par1EntityPlayerMP = $var8.$theChunkProviderServer;
            $par2 = ($var7.$posX | 0) >> 4;
            $par3 = ($var7.$posZ | 0) >> 4;
            $ptr = 6;
            continue main;
        }
        $var6 = $this.$mcServer1;
        $par3 = $par1EntityPlayerMP.$dimension;
        $par1EntityPlayerMP = $par3 == (-1) ? $var6.$worldServers.data[1] : $par3 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
        $ptr = 9;
        continue main;
    case 5:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var9, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $var7.$theItemInWorldManager;
        $var9 = $var8.$worldInfo.$getGameType();
        if ($var6.$gameType === nms_EnumGameType_NOT_SET)
            $var6.$gameType = $var9;
        $var9 = $var6.$gameType;
        $var6.$gameType = $var9;
        nms_EnumGameType_configurePlayerCapabilities($var9, $var6.$thisPlayerMP.$capabilities);
        $var6 = $var6.$thisPlayerMP;
        var$11 = $var6.$playerNetServerHandler;
        if (var$11 !== null)
            e: {
                $var9 = new nms_Packet202PlayerAbilities;
                $var6 = $var6.$capabilities;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$disableDamage0 = $var6.$disableDamage;
                $var9.$isFlying0 = $var6.$isFlying;
                $var9.$allowFlying0 = $var6.$allowFlying;
                $var9.$isCreativeMode0 = $var6.$isCreativeMode;
                $var9.$flySpeed0 = $var6.$flySpeed;
                $var9.$walkSpeed0 = $var6.$walkSpeed;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var6 = $var9;
                    $par3 = var$11.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break e;
                    if ($par3 == 1 && !$var6.$isServer)
                        break e;
                }
                try {
                    $var6 = var$11.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_($var9);
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var6, jl_System_errCache);
            }
        if ($var4 === null) {
            $par1EntityPlayerMP = $var8.$theChunkProviderServer;
            $par2 = ($var7.$posX | 0) >> 4;
            $par3 = ($var7.$posZ | 0) >> 4;
            $ptr = 6;
            continue main;
        }
        $var6 = $this.$mcServer1;
        $par3 = $par1EntityPlayerMP.$dimension;
        $par1EntityPlayerMP = $par3 == (-1) ? $var6.$worldServers.data[1] : $par3 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
        $ptr = 9;
        continue main;
    case 6:
        nms_ChunkProviderServer_loadChunk($par1EntityPlayerMP, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayerMP = $var7.$boundingBox0;
        $ptr = 8;
        continue main;
    case 7:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_($var9);
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        if ($var4 === null) {
            $par1EntityPlayerMP = $var8.$theChunkProviderServer;
            $par2 = ($var7.$posX | 0) >> 4;
            $par3 = ($var7.$posZ | 0) >> 4;
            $ptr = 6;
            continue main;
        }
        $var6 = $this.$mcServer1;
        $par3 = $par1EntityPlayerMP.$dimension;
        $par1EntityPlayerMP = $par3 == (-1) ? $var6.$worldServers.data[1] : $par3 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_World_getCollidingBoundingBoxes($var8, $var7, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayerMP = $tmp;
        if (!($par1EntityPlayerMP.$size0 ? 0 : 1)) {
            nms_Entity_setPosition($var7, $var7.$posX, $var7.$posY + 1.0, $var7.$posZ);
            $par1EntityPlayerMP = $var7.$boundingBox0;
            continue main;
        }
        f: {
            g: {
                $var9 = $var7.$playerNetServerHandler;
                var$11 = new nms_Packet9Respawn;
                $par3 = $var7.$dimension;
                $par1EntityPlayerMP = $var7.$worldObj;
                $var5 = $par1EntityPlayerMP.$difficultySetting << 24 >> 24;
                var$12 = $par1EntityPlayerMP.$worldInfo.$getTerrainType();
                $var6 = $var7.$theItemInWorldManager.$gameType;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$11.$respawnDimension = $par3;
                var$11.$difficulty1 = $var5;
                var$11.$worldHeight0 = 256;
                var$11.$gameType1 = $var6;
                var$11.$terrainType1 = var$12;
                if (var$11 instanceof nms_Packet3Chat) {
                    $par1EntityPlayerMP = var$11;
                    $par3 = $var9.$playerEntity.$chatVisibility;
                    if ($par3 != 2) {
                        if ($par3 != 1)
                            break g;
                        if ($par1EntityPlayerMP.$isServer)
                            break g;
                        break f;
                    }
                    break f;
                }
            }
            try {
                $par1EntityPlayerMP = $var9.$netManager;
                $ptr = 11;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        h: {
            $var5 = $var8.$worldInfo.$getSpawnX();
            var$9 = $var8.$worldInfo.$getSpawnY();
            var$8 = $var8.$worldInfo.$getSpawnZ();
            $var6 = $var7.$playerNetServerHandler;
            var$14 = $var7.$posX;
            var$15 = $var7.$posY;
            var$16 = $var7.$posZ;
            var$17 = $var7.$rotationYaw;
            var$18 = $var7.$rotationPitch;
            $var6.$hasMoved = 0;
            $var6.$lastPosX = var$14;
            $var6.$lastPosY = var$15;
            $var6.$lastPosZ = var$16;
            nms_Entity_setPositionAndRotation($var6.$playerEntity, var$14, var$15, var$16, var$17, var$18);
            $par1EntityPlayerMP = $var6.$playerEntity.$playerNetServerHandler;
            $var6 = new nms_Packet13PlayerLookMove;
            var$19 = var$15 + 1.6200000047683716;
            $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var6.$xPosition = var$14;
            $var6.$yPosition = var$19;
            $var6.$stance = var$15;
            $var6.$zPosition = var$16;
            $var6.$yaw = var$17;
            $var6.$pitch = var$18;
            $var6.$onGround0 = 0;
            $var6.$rotating = 1;
            $var6.$moving = 1;
            if ($var6 instanceof nms_Packet3Chat) {
                $var9 = $var6;
                $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break h;
                if ($par3 == 1 && !$var9.$isServer)
                    break h;
            }
            try {
                $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        b: {
            $var9 = $var7.$playerNetServerHandler;
            var$11 = new nms_Packet6SpawnPosition;
            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$11.$xPosition4 = $var5;
            var$11.$yPosition3 = var$9;
            var$11.$zPosition4 = var$8;
            if (var$11 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = var$11;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break b;
                if ($par3 == 1 && !$par1EntityPlayerMP.$isServer)
                    break b;
            }
            try {
                $par1EntityPlayerMP = $var9.$netManager;
                $ptr = 13;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        i: {
            $var6 = $var7.$playerNetServerHandler;
            $var9 = new nms_Packet43Experience;
            var$17 = $var7.$experience;
            $par2 = $var7.$experienceTotal;
            $par3 = $var7.$experienceLevel;
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$experience0 = var$17;
            $var9.$experienceTotal0 = $par2;
            $var9.$experienceLevel0 = $par3;
            if ($var9 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = $var9;
                $par2 = $var6.$playerEntity.$chatVisibility;
                if ($par2 == 2)
                    break i;
                if ($par2 == 1 && !$par1EntityPlayerMP.$isServer)
                    break i;
            }
            try {
                $par1EntityPlayerMP = $var6.$netManager;
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1EntityPlayerMP = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($par1EntityPlayerMP);
                $par1EntityPlayerMP.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $par1EntityPlayerMP.$sb = $var6;
                $par1EntityPlayerMP.$buffer0 = $rt_createCharArray(32);
                $par1EntityPlayerMP.$autoFlush = 0;
                $par1EntityPlayerMP.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1EntityPlayerMP;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        j: {
            $var9 = $var7.$playerNetServerHandler;
            $par1EntityPlayerMP = new nms_Packet4UpdateTime;
            var$20 = $var8.$worldInfo.$getWorldTotalTime();
            var$21 = $var8.$worldInfo.$getWorldTime();
            var$11 = ($var8.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$12 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$12 !== $var6) {
                $par3 = var$12.$nativeString.length;
                var$9 = $var6.$nativeString.length;
                if ($par3 < var$9)
                    var$9 = $par3;
                $par2 = 0;
                k: {
                    while (true) {
                        if ($par2 >= var$9) {
                            var$12.$nativeString.length;
                            $var6.$nativeString.length;
                            break j;
                        }
                        if ($par2 < 0)
                            break k;
                        if ($par2 >= var$12.$nativeString.length)
                            break k;
                        $var5 = var$12.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if ($var5 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break j;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        $var6 = $rt_s(258);
        l: {
            m: {
                n: while (true) {
                    if (var$11 === null) {
                        var$11 = null;
                        break l;
                    }
                    o: {
                        var$12 = var$11.$key0;
                        if ($var6 === var$12)
                            $par2 = 0;
                        else {
                            $par3 = $var6.$nativeString.length;
                            var$9 = var$12.$nativeString.length;
                            if ($par3 < var$9)
                                var$9 = $par3;
                            $par3 = 0;
                            while (true) {
                                if ($par3 >= var$9) {
                                    $par2 = $var6.$nativeString.length - var$12.$nativeString.length | 0;
                                    break o;
                                }
                                if ($par3 < 0)
                                    break m;
                                if ($par3 >= $var6.$nativeString.length)
                                    break m;
                                $var5 = $var6.$nativeString.charCodeAt($par3);
                                if ($par3 < 0)
                                    break n;
                                if ($par3 >= var$12.$nativeString.length)
                                    break n;
                                $par2 = $var5 - var$12.$nativeString.charCodeAt($par3) | 0;
                                if ($par2)
                                    break;
                                $par3 = $par3 + 1 | 0;
                            }
                        }
                    }
                    if (!$par2)
                        break l;
                    var$11 = $par2 >= 0 ? var$11.$right : var$11.$left;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $var6 = var$11 === null ? null : var$11.$value2;
        $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
        $par1EntityPlayerMP.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1EntityPlayerMP.$worldAge = var$20;
        $par1EntityPlayerMP.$time0 = var$21;
        if (!$par2) {
            var$21 = Long_neg(var$21);
            $par1EntityPlayerMP.$time0 = var$21;
            if (Long_eq(var$21, Long_ZERO))
                $par1EntityPlayerMP.$time0 = Long_fromInt(-1);
        }
        p: {
            if ($par1EntityPlayerMP instanceof nms_Packet3Chat) {
                $var6 = $par1EntityPlayerMP;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break p;
                if ($par3 == 1 && !$var6.$isServer)
                    break p;
            }
            try {
                $var6 = $var9.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        var$18 = $var8.$prevRainingStrength;
        if (var$18 + ($var8.$rainingStrength - var$18) * 1.0 <= 0.2 ? 0 : 1)
            q: {
                $par1EntityPlayerMP = $var7.$playerNetServerHandler;
                $var6 = new nms_Packet70GameEvent;
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$eventType = 1;
                $var6.$gameMode = 0;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var9 = $var6;
                    $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break q;
                    if ($par3 == 1 && !$var9.$isServer)
                        break q;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    $ptr = 19;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var9);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
        continue main;
    case 9:
        $tmp = nms_EntityPlayer_verifyRespawnCoordinates($par1EntityPlayerMP, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 !== null) {
            var$22 = $var9.$posX0 + 0.5;
            var$14 = $var9.$posY0 + 0.10000000149011612;
            var$15 = $var9.$posZ0 + 0.5;
            $var7.$posX = var$22;
            $var7.$prevPosX = var$22;
            $var7.$lastTickPosX = var$22;
            var$19 = var$14 + $var7.$yOffset;
            $var7.$posY = var$19;
            $var7.$prevPosY = var$19;
            $var7.$lastTickPosY = var$19;
            $var7.$posZ = var$15;
            $var7.$prevPosZ = var$15;
            $var7.$lastTickPosZ = var$15;
            $var7.$rotationYaw = 0.0;
            $var7.$rotationPitch = 0.0;
            nms_Entity_setPosition($var7, var$22, var$19, var$15);
            $par1EntityPlayerMP = new nms_ChunkCoordinates;
            $par1EntityPlayerMP.$posX0 = $var4.$posX0;
            $par1EntityPlayerMP.$posY0 = $var4.$posY0;
            $par1EntityPlayerMP.$posZ0 = $var4.$posZ0;
            $var7.$spawnChunk = $par1EntityPlayerMP;
            $var7.$spawnForced = $var5;
        } else
            r: {
                $var9 = $var7.$playerNetServerHandler;
                var$11 = new nms_Packet70GameEvent;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$11.$eventType = 0;
                var$11.$gameMode = 0;
                if (var$11 instanceof nms_Packet3Chat) {
                    $par1EntityPlayerMP = var$11;
                    $par3 = $var9.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break r;
                    if ($par3 == 1 && !$par1EntityPlayerMP.$isServer)
                        break r;
                }
                try {
                    $par1EntityPlayerMP = $var9.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var6);
                    $var6.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var6.$sb = $var9;
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$theChunkProviderServer;
        $par2 = ($var7.$posX | 0) >> 4;
        $par3 = ($var7.$posZ | 0) >> 4;
        $ptr = 6;
        continue main;
    case 10:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        $par1EntityPlayerMP = $var8.$theChunkProviderServer;
        $par2 = ($var7.$posX | 0) >> 4;
        $par3 = ($var7.$posZ | 0) >> 4;
        $ptr = 6;
        continue main;
    case 11:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        f: {
            $var5 = $var8.$worldInfo.$getSpawnX();
            var$9 = $var8.$worldInfo.$getSpawnY();
            var$8 = $var8.$worldInfo.$getSpawnZ();
            $var6 = $var7.$playerNetServerHandler;
            var$14 = $var7.$posX;
            var$15 = $var7.$posY;
            var$16 = $var7.$posZ;
            var$17 = $var7.$rotationYaw;
            var$18 = $var7.$rotationPitch;
            $var6.$hasMoved = 0;
            $var6.$lastPosX = var$14;
            $var6.$lastPosY = var$15;
            $var6.$lastPosZ = var$16;
            nms_Entity_setPositionAndRotation($var6.$playerEntity, var$14, var$15, var$16, var$17, var$18);
            $par1EntityPlayerMP = $var6.$playerEntity.$playerNetServerHandler;
            $var6 = new nms_Packet13PlayerLookMove;
            var$19 = var$15 + 1.6200000047683716;
            $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var6.$xPosition = var$14;
            $var6.$yPosition = var$19;
            $var6.$stance = var$15;
            $var6.$zPosition = var$16;
            $var6.$yaw = var$17;
            $var6.$pitch = var$18;
            $var6.$onGround0 = 0;
            $var6.$rotating = 1;
            $var6.$moving = 1;
            if ($var6 instanceof nms_Packet3Chat) {
                $var9 = $var6;
                $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break f;
                if ($par3 == 1 && !$var9.$isServer)
                    break f;
            }
            try {
                $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        h: {
            $var9 = $var7.$playerNetServerHandler;
            var$11 = new nms_Packet6SpawnPosition;
            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$11.$xPosition4 = $var5;
            var$11.$yPosition3 = var$9;
            var$11.$zPosition4 = var$8;
            if (var$11 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = var$11;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break h;
                if ($par3 == 1 && !$par1EntityPlayerMP.$isServer)
                    break h;
            }
            try {
                $par1EntityPlayerMP = $var9.$netManager;
                $ptr = 13;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        b: {
            $var6 = $var7.$playerNetServerHandler;
            $var9 = new nms_Packet43Experience;
            var$17 = $var7.$experience;
            $par2 = $var7.$experienceTotal;
            $par3 = $var7.$experienceLevel;
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$experience0 = var$17;
            $var9.$experienceTotal0 = $par2;
            $var9.$experienceLevel0 = $par3;
            if ($var9 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = $var9;
                $par2 = $var6.$playerEntity.$chatVisibility;
                if ($par2 == 2)
                    break b;
                if ($par2 == 1 && !$par1EntityPlayerMP.$isServer)
                    break b;
            }
            try {
                $par1EntityPlayerMP = $var6.$netManager;
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1EntityPlayerMP = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($par1EntityPlayerMP);
                $par1EntityPlayerMP.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $par1EntityPlayerMP.$sb = $var6;
                $par1EntityPlayerMP.$buffer0 = $rt_createCharArray(32);
                $par1EntityPlayerMP.$autoFlush = 0;
                $par1EntityPlayerMP.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1EntityPlayerMP;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        i: {
            $var9 = $var7.$playerNetServerHandler;
            $par1EntityPlayerMP = new nms_Packet4UpdateTime;
            var$20 = $var8.$worldInfo.$getWorldTotalTime();
            var$21 = $var8.$worldInfo.$getWorldTime();
            var$11 = ($var8.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$12 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$12 !== $var6) {
                $par3 = var$12.$nativeString.length;
                var$9 = $var6.$nativeString.length;
                if ($par3 < var$9)
                    var$9 = $par3;
                $par2 = 0;
                s: {
                    while (true) {
                        if ($par2 >= var$9) {
                            var$12.$nativeString.length;
                            $var6.$nativeString.length;
                            break i;
                        }
                        if ($par2 < 0)
                            break s;
                        if ($par2 >= var$12.$nativeString.length)
                            break s;
                        $var5 = var$12.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if ($var5 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break i;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        $var6 = $rt_s(258);
        t: {
            u: {
                l: while (true) {
                    if (var$11 === null) {
                        var$11 = null;
                        break t;
                    }
                    v: {
                        var$12 = var$11.$key0;
                        if ($var6 === var$12)
                            $par2 = 0;
                        else {
                            $par3 = $var6.$nativeString.length;
                            var$9 = var$12.$nativeString.length;
                            if ($par3 < var$9)
                                var$9 = $par3;
                            $par3 = 0;
                            while (true) {
                                if ($par3 >= var$9) {
                                    $par2 = $var6.$nativeString.length - var$12.$nativeString.length | 0;
                                    break v;
                                }
                                if ($par3 < 0)
                                    break u;
                                if ($par3 >= $var6.$nativeString.length)
                                    break u;
                                $var5 = $var6.$nativeString.charCodeAt($par3);
                                if ($par3 < 0)
                                    break l;
                                if ($par3 >= var$12.$nativeString.length)
                                    break l;
                                $par2 = $var5 - var$12.$nativeString.charCodeAt($par3) | 0;
                                if ($par2)
                                    break;
                                $par3 = $par3 + 1 | 0;
                            }
                        }
                    }
                    if (!$par2)
                        break t;
                    var$11 = $par2 >= 0 ? var$11.$right : var$11.$left;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $var6 = var$11 === null ? null : var$11.$value2;
        $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
        $par1EntityPlayerMP.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1EntityPlayerMP.$worldAge = var$20;
        $par1EntityPlayerMP.$time0 = var$21;
        if (!$par2) {
            var$21 = Long_neg(var$21);
            $par1EntityPlayerMP.$time0 = var$21;
            if (Long_eq(var$21, Long_ZERO))
                $par1EntityPlayerMP.$time0 = Long_fromInt(-1);
        }
        w: {
            if ($par1EntityPlayerMP instanceof nms_Packet3Chat) {
                $var6 = $par1EntityPlayerMP;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break w;
                if ($par3 == 1 && !$var6.$isServer)
                    break w;
            }
            try {
                $var6 = $var9.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        var$18 = $var8.$prevRainingStrength;
        if (var$18 + ($var8.$rainingStrength - var$18) * 1.0 <= 0.2 ? 0 : 1)
            x: {
                $par1EntityPlayerMP = $var7.$playerNetServerHandler;
                $var6 = new nms_Packet70GameEvent;
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$eventType = 1;
                $var6.$gameMode = 0;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var9 = $var6;
                    $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break x;
                    if ($par3 == 1 && !$var9.$isServer)
                        break x;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    $ptr = 19;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var9);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
        continue main;
    case 12:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        f: {
            $var9 = $var7.$playerNetServerHandler;
            var$11 = new nms_Packet6SpawnPosition;
            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$11.$xPosition4 = $var5;
            var$11.$yPosition3 = var$9;
            var$11.$zPosition4 = var$8;
            if (var$11 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = var$11;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break f;
                if ($par3 == 1 && !$par1EntityPlayerMP.$isServer)
                    break f;
            }
            try {
                $par1EntityPlayerMP = $var9.$netManager;
                $ptr = 13;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        h: {
            $var6 = $var7.$playerNetServerHandler;
            $var9 = new nms_Packet43Experience;
            var$17 = $var7.$experience;
            $par2 = $var7.$experienceTotal;
            $par3 = $var7.$experienceLevel;
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$experience0 = var$17;
            $var9.$experienceTotal0 = $par2;
            $var9.$experienceLevel0 = $par3;
            if ($var9 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = $var9;
                $par2 = $var6.$playerEntity.$chatVisibility;
                if ($par2 == 2)
                    break h;
                if ($par2 == 1 && !$par1EntityPlayerMP.$isServer)
                    break h;
            }
            try {
                $par1EntityPlayerMP = $var6.$netManager;
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1EntityPlayerMP = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($par1EntityPlayerMP);
                $par1EntityPlayerMP.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $par1EntityPlayerMP.$sb = $var6;
                $par1EntityPlayerMP.$buffer0 = $rt_createCharArray(32);
                $par1EntityPlayerMP.$autoFlush = 0;
                $par1EntityPlayerMP.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1EntityPlayerMP;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        b: {
            $var9 = $var7.$playerNetServerHandler;
            $par1EntityPlayerMP = new nms_Packet4UpdateTime;
            var$20 = $var8.$worldInfo.$getWorldTotalTime();
            var$21 = $var8.$worldInfo.$getWorldTime();
            var$11 = ($var8.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$12 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$12 !== $var6) {
                $par3 = var$12.$nativeString.length;
                var$9 = $var6.$nativeString.length;
                if ($par3 < var$9)
                    var$9 = $par3;
                $par2 = 0;
                y: {
                    while (true) {
                        if ($par2 >= var$9) {
                            var$12.$nativeString.length;
                            $var6.$nativeString.length;
                            break b;
                        }
                        if ($par2 < 0)
                            break y;
                        if ($par2 >= var$12.$nativeString.length)
                            break y;
                        $var5 = var$12.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if ($var5 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break b;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        $var6 = $rt_s(258);
        z: {
            ba: {
                t: while (true) {
                    if (var$11 === null) {
                        var$11 = null;
                        break z;
                    }
                    bb: {
                        var$12 = var$11.$key0;
                        if ($var6 === var$12)
                            $par2 = 0;
                        else {
                            $par3 = $var6.$nativeString.length;
                            var$9 = var$12.$nativeString.length;
                            if ($par3 < var$9)
                                var$9 = $par3;
                            $par3 = 0;
                            while (true) {
                                if ($par3 >= var$9) {
                                    $par2 = $var6.$nativeString.length - var$12.$nativeString.length | 0;
                                    break bb;
                                }
                                if ($par3 < 0)
                                    break ba;
                                if ($par3 >= $var6.$nativeString.length)
                                    break ba;
                                $var5 = $var6.$nativeString.charCodeAt($par3);
                                if ($par3 < 0)
                                    break t;
                                if ($par3 >= var$12.$nativeString.length)
                                    break t;
                                $par2 = $var5 - var$12.$nativeString.charCodeAt($par3) | 0;
                                if ($par2)
                                    break;
                                $par3 = $par3 + 1 | 0;
                            }
                        }
                    }
                    if (!$par2)
                        break z;
                    var$11 = $par2 >= 0 ? var$11.$right : var$11.$left;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $var6 = var$11 === null ? null : var$11.$value2;
        $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
        $par1EntityPlayerMP.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1EntityPlayerMP.$worldAge = var$20;
        $par1EntityPlayerMP.$time0 = var$21;
        if (!$par2) {
            var$21 = Long_neg(var$21);
            $par1EntityPlayerMP.$time0 = var$21;
            if (Long_eq(var$21, Long_ZERO))
                $par1EntityPlayerMP.$time0 = Long_fromInt(-1);
        }
        bc: {
            if ($par1EntityPlayerMP instanceof nms_Packet3Chat) {
                $var6 = $par1EntityPlayerMP;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break bc;
                if ($par3 == 1 && !$var6.$isServer)
                    break bc;
            }
            try {
                $var6 = $var9.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        var$18 = $var8.$prevRainingStrength;
        if (var$18 + ($var8.$rainingStrength - var$18) * 1.0 <= 0.2 ? 0 : 1)
            bd: {
                $par1EntityPlayerMP = $var7.$playerNetServerHandler;
                $var6 = new nms_Packet70GameEvent;
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$eventType = 1;
                $var6.$gameMode = 0;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var9 = $var6;
                    $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break bd;
                    if ($par3 == 1 && !$var9.$isServer)
                        break bd;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    $ptr = 19;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var9);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
        continue main;
    case 13:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var6.$sb = $var9;
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        f: {
            $var6 = $var7.$playerNetServerHandler;
            $var9 = new nms_Packet43Experience;
            var$17 = $var7.$experience;
            $par2 = $var7.$experienceTotal;
            $par3 = $var7.$experienceLevel;
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$experience0 = var$17;
            $var9.$experienceTotal0 = $par2;
            $var9.$experienceLevel0 = $par3;
            if ($var9 instanceof nms_Packet3Chat) {
                $par1EntityPlayerMP = $var9;
                $par2 = $var6.$playerEntity.$chatVisibility;
                if ($par2 == 2)
                    break f;
                if ($par2 == 1 && !$par1EntityPlayerMP.$isServer)
                    break f;
            }
            try {
                $par1EntityPlayerMP = $var6.$netManager;
                $ptr = 14;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1EntityPlayerMP = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($par1EntityPlayerMP);
                $par1EntityPlayerMP.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $par1EntityPlayerMP.$sb = $var6;
                $par1EntityPlayerMP.$buffer0 = $rt_createCharArray(32);
                $par1EntityPlayerMP.$autoFlush = 0;
                $par1EntityPlayerMP.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1EntityPlayerMP;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        h: {
            $var9 = $var7.$playerNetServerHandler;
            $par1EntityPlayerMP = new nms_Packet4UpdateTime;
            var$20 = $var8.$worldInfo.$getWorldTotalTime();
            var$21 = $var8.$worldInfo.$getWorldTime();
            var$11 = ($var8.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$12 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$12 !== $var6) {
                $par3 = var$12.$nativeString.length;
                var$9 = $var6.$nativeString.length;
                if ($par3 < var$9)
                    var$9 = $par3;
                $par2 = 0;
                be: {
                    while (true) {
                        if ($par2 >= var$9) {
                            var$12.$nativeString.length;
                            $var6.$nativeString.length;
                            break h;
                        }
                        if ($par2 < 0)
                            break be;
                        if ($par2 >= var$12.$nativeString.length)
                            break be;
                        $var5 = var$12.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if ($var5 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break h;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        $var6 = $rt_s(258);
        c: {
            j: {
                z: while (true) {
                    if (var$11 === null) {
                        var$11 = null;
                        break c;
                    }
                    d: {
                        var$12 = var$11.$key0;
                        if ($var6 === var$12)
                            $par2 = 0;
                        else {
                            $par3 = $var6.$nativeString.length;
                            var$9 = var$12.$nativeString.length;
                            if ($par3 < var$9)
                                var$9 = $par3;
                            $par3 = 0;
                            while (true) {
                                if ($par3 >= var$9) {
                                    $par2 = $var6.$nativeString.length - var$12.$nativeString.length | 0;
                                    break d;
                                }
                                if ($par3 < 0)
                                    break j;
                                if ($par3 >= $var6.$nativeString.length)
                                    break j;
                                $var5 = $var6.$nativeString.charCodeAt($par3);
                                if ($par3 < 0)
                                    break z;
                                if ($par3 >= var$12.$nativeString.length)
                                    break z;
                                $par2 = $var5 - var$12.$nativeString.charCodeAt($par3) | 0;
                                if ($par2)
                                    break;
                                $par3 = $par3 + 1 | 0;
                            }
                        }
                    }
                    if (!$par2)
                        break c;
                    var$11 = $par2 >= 0 ? var$11.$right : var$11.$left;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $var6 = var$11 === null ? null : var$11.$value2;
        $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
        $par1EntityPlayerMP.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1EntityPlayerMP.$worldAge = var$20;
        $par1EntityPlayerMP.$time0 = var$21;
        if (!$par2) {
            var$21 = Long_neg(var$21);
            $par1EntityPlayerMP.$time0 = var$21;
            if (Long_eq(var$21, Long_ZERO))
                $par1EntityPlayerMP.$time0 = Long_fromInt(-1);
        }
        bf: {
            if ($par1EntityPlayerMP instanceof nms_Packet3Chat) {
                $var6 = $par1EntityPlayerMP;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break bf;
                if ($par3 == 1 && !$var6.$isServer)
                    break bf;
            }
            try {
                $var6 = $var9.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        var$18 = $var8.$prevRainingStrength;
        if (var$18 + ($var8.$rainingStrength - var$18) * 1.0 <= 0.2 ? 0 : 1)
            bg: {
                $par1EntityPlayerMP = $var7.$playerNetServerHandler;
                $var6 = new nms_Packet70GameEvent;
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$eventType = 1;
                $var6.$gameMode = 0;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var9 = $var6;
                    $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break bg;
                    if ($par3 == 1 && !$var9.$isServer)
                        break bg;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    $ptr = 19;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var9);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
        continue main;
    case 14:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1EntityPlayerMP = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($par1EntityPlayerMP);
                $par1EntityPlayerMP.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $par1EntityPlayerMP.$sb = $var6;
                $par1EntityPlayerMP.$buffer0 = $rt_createCharArray(32);
                $par1EntityPlayerMP.$autoFlush = 0;
                $par1EntityPlayerMP.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1EntityPlayerMP;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        f: {
            $var9 = $var7.$playerNetServerHandler;
            $par1EntityPlayerMP = new nms_Packet4UpdateTime;
            var$20 = $var8.$worldInfo.$getWorldTotalTime();
            var$21 = $var8.$worldInfo.$getWorldTime();
            var$11 = ($var8.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$12 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$12 !== $var6) {
                $par3 = var$12.$nativeString.length;
                var$9 = $var6.$nativeString.length;
                if ($par3 < var$9)
                    var$9 = $par3;
                $par2 = 0;
                bh: {
                    while (true) {
                        if ($par2 >= var$9) {
                            var$12.$nativeString.length;
                            $var6.$nativeString.length;
                            break f;
                        }
                        if ($par2 < 0)
                            break bh;
                        if ($par2 >= var$12.$nativeString.length)
                            break bh;
                        $var5 = var$12.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if ($var5 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break f;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        $var6 = $rt_s(258);
        bi: {
            i: {
                c: while (true) {
                    if (var$11 === null) {
                        var$11 = null;
                        break bi;
                    }
                    bj: {
                        var$12 = var$11.$key0;
                        if ($var6 === var$12)
                            $par2 = 0;
                        else {
                            $par3 = $var6.$nativeString.length;
                            var$9 = var$12.$nativeString.length;
                            if ($par3 < var$9)
                                var$9 = $par3;
                            $par3 = 0;
                            while (true) {
                                if ($par3 >= var$9) {
                                    $par2 = $var6.$nativeString.length - var$12.$nativeString.length | 0;
                                    break bj;
                                }
                                if ($par3 < 0)
                                    break i;
                                if ($par3 >= $var6.$nativeString.length)
                                    break i;
                                $var5 = $var6.$nativeString.charCodeAt($par3);
                                if ($par3 < 0)
                                    break c;
                                if ($par3 >= var$12.$nativeString.length)
                                    break c;
                                $par2 = $var5 - var$12.$nativeString.charCodeAt($par3) | 0;
                                if ($par2)
                                    break;
                                $par3 = $par3 + 1 | 0;
                            }
                        }
                    }
                    if (!$par2)
                        break bi;
                    var$11 = $par2 >= 0 ? var$11.$right : var$11.$left;
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $var6 = var$11 === null ? null : var$11.$value2;
        $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
        $par1EntityPlayerMP.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1EntityPlayerMP.$worldAge = var$20;
        $par1EntityPlayerMP.$time0 = var$21;
        if (!$par2) {
            var$21 = Long_neg(var$21);
            $par1EntityPlayerMP.$time0 = var$21;
            if (Long_eq(var$21, Long_ZERO))
                $par1EntityPlayerMP.$time0 = Long_fromInt(-1);
        }
        n: {
            if ($par1EntityPlayerMP instanceof nms_Packet3Chat) {
                $var6 = $par1EntityPlayerMP;
                $par3 = $var9.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break n;
                if ($par3 == 1 && !$var6.$isServer)
                    break n;
            }
            try {
                $var6 = $var9.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        var$18 = $var8.$prevRainingStrength;
        if (var$18 + ($var8.$rainingStrength - var$18) * 1.0 <= 0.2 ? 0 : 1)
            bk: {
                $par1EntityPlayerMP = $var7.$playerNetServerHandler;
                $var6 = new nms_Packet70GameEvent;
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$eventType = 1;
                $var6.$gameMode = 0;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var9 = $var6;
                    $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break bk;
                    if ($par3 == 1 && !$var9.$isServer)
                        break bk;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    $ptr = 19;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var9);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
        continue main;
    case 15:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $par1EntityPlayerMP);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        var$18 = $var8.$prevRainingStrength;
        if (var$18 + ($var8.$rainingStrength - var$18) * 1.0 <= 0.2 ? 0 : 1)
            bl: {
                $par1EntityPlayerMP = $var7.$playerNetServerHandler;
                $var6 = new nms_Packet70GameEvent;
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$eventType = 1;
                $var6.$gameMode = 0;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var9 = $var6;
                    $par3 = $par1EntityPlayerMP.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break bl;
                    if ($par3 == 1 && !$var9.$isServer)
                        break bl;
                }
                try {
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$netManager;
                    $ptr = 19;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayerMP = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var9);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
            }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
    case 16:
        nms_PlayerManager_addPlayer($par1EntityPlayerMP, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 17;
    case 17:
        nms_World_spawnEntityInWorld($var8, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayerMP = $this.$playerEntityList;
        ju_ArrayList_ensureCapacity($par1EntityPlayerMP, $par1EntityPlayerMP.$size0 + 1 | 0);
        var$23 = $par1EntityPlayerMP.$array.data;
        $par3 = $par1EntityPlayerMP.$size0;
        $par1EntityPlayerMP.$size0 = $par3 + 1 | 0;
        var$23[$par3] = $var7;
        $par1EntityPlayerMP.$modCount = $par1EntityPlayerMP.$modCount + 1 | 0;
        $par1EntityPlayerMP = $var7.$openContainer;
        $ptr = 18;
    case 18:
        $par1EntityPlayerMP.$addCraftingToCrafters($var7);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayerMP = $var7.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var6 = jl_Integer_integerCache.data[134];
        if ($var6 === null) {
            $par1EntityPlayerMP = $par1EntityPlayerMP.$elementData.data[0];
            while ($par1EntityPlayerMP !== null && $par1EntityPlayerMP.$key !== null) {
                $par1EntityPlayerMP = $par1EntityPlayerMP.$next3;
            }
        } else {
            $par2 = $var6.$value;
            var$23 = $par1EntityPlayerMP.$elementData.data;
            $par1EntityPlayerMP = var$23[$par2 & (var$23.length - 1 | 0)];
            while ($par1EntityPlayerMP !== null) {
                if ($par1EntityPlayerMP.$origKeyHash == $par2) {
                    $var9 = $par1EntityPlayerMP.$key;
                    if ($var6 !== $var9 && !($var6 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $par2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityPlayerMP = $par1EntityPlayerMP.$next3;
            }
        }
        nms_EntityLivingBase_setHealth($var7, ($par1EntityPlayerMP === null ? null : $par1EntityPlayerMP.$value0).$watchedObject.$value3);
        return $var7;
    case 19:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayerMP, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayerMP = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var9);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($par1EntityPlayerMP, jl_System_errCache);
        }
        $par1EntityPlayerMP = $var8.$thePlayerManager0;
        $ptr = 16;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $par2, $par3, $var6, $var9, $var7, $var5, var$8, var$9, $var4, var$11, var$12, $var8, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_ServerConfigurationManager_transferPlayerToDimension = ($this, $par1EntityPlayerMP, $par2) => {
    let $var3, $var6, $var4, $var5, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayerMP
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1EntityPlayerMP.$dimension;
        $var6 = $this.$mcServer1;
        $var4 = $var3 == (-1) ? $var6.$worldServers.data[1] : $var3 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
        $par1EntityPlayerMP.$dimension = $par2;
        $var5 = $par2 == (-1) ? $var6.$worldServers.data[1] : $par2 != 1 ? $var6.$worldServers.data[0] : $var6.$worldServers.data[2];
        a: {
            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet9Respawn;
            var$8 = $par1EntityPlayerMP.$worldObj.$difficultySetting << 24 >> 24;
            var$9 = $var5.$worldInfo.$getTerrainType();
            var$10 = $par1EntityPlayerMP.$theItemInWorldManager.$gameType;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var7.$respawnDimension = $par2;
            $var7.$difficulty1 = var$8;
            $var7.$worldHeight0 = 256;
            $var7.$gameType1 = var$10;
            $var7.$terrainType1 = var$9;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                var$8 = $var6.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    break a;
                if (var$8 == 1 && !var$9.$isServer)
                    break a;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var7);
                $var7.$out0 = var$9;
                var$9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$9);
                $var7.$sb = var$9;
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var7);
                $var7.$out0 = var$9;
                var$9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$9);
                $var7.$sb = var$9;
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $ptr = 2;
    case 2:
        nms_World_removePlayerEntityDangerously($var4, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayerMP.$isDead = 0;
        $ptr = 3;
    case 3:
        nms_ServerConfigurationManager_transferEntityToWorld($this, $par1EntityPlayerMP, $var3, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $par1EntityPlayerMP.$worldObj;
        $var6 = $var4.$thePlayerManager0;
        $ptr = 4;
    case 4:
        nms_PlayerManager_removePlayer($var6, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var7.$thePlayerManager0;
        $ptr = 5;
    case 5:
        nms_PlayerManager_addPlayer($var6, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var7.$theChunkProviderServer;
        $var3 = ($par1EntityPlayerMP.$posX | 0) >> 4;
        $par2 = ($par1EntityPlayerMP.$posZ | 0) >> 4;
        $ptr = 6;
    case 6:
        b: {
            c: {
                nms_ChunkProviderServer_loadChunk($var6, $var3, $par2);
                if ($rt_suspending()) {
                    break main;
                }
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$11 = $par1EntityPlayerMP.$posX;
                var$12 = $par1EntityPlayerMP.$posY;
                var$13 = $par1EntityPlayerMP.$posZ;
                var$14 = $par1EntityPlayerMP.$rotationYaw;
                var$15 = $par1EntityPlayerMP.$rotationPitch;
                $var6.$hasMoved = 0;
                $var6.$lastPosX = var$11;
                $var6.$lastPosY = var$12;
                $var6.$lastPosZ = var$13;
                nms_Entity_setPositionAndRotation($var6.$playerEntity, var$11, var$12, var$13, var$14, var$15);
                $var6 = $var6.$playerEntity.$playerNetServerHandler;
                $var7 = new nms_Packet13PlayerLookMove;
                var$16 = var$12 + 1.6200000047683716;
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$xPosition = var$11;
                $var7.$yPosition = var$16;
                $var7.$stance = var$12;
                $var7.$zPosition = var$13;
                $var7.$yaw = var$14;
                $var7.$pitch = var$15;
                $var7.$onGround0 = 0;
                $var7.$rotating = 1;
                $var7.$moving = 1;
                if ($var7 instanceof nms_Packet3Chat) {
                    var$9 = $var7;
                    $var3 = $var6.$playerEntity.$chatVisibility;
                    if ($var3 != 2) {
                        if ($var3 != 1)
                            break c;
                        if (var$9.$isServer)
                            break c;
                        break b;
                    }
                    break b;
                }
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        d: {
            $par1EntityPlayerMP.$theItemInWorldManager.$theWorld = $var5;
            var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet4UpdateTime;
            var$17 = $var5.$worldInfo.$getWorldTotalTime();
            var$18 = $var5.$worldInfo.$getWorldTime();
            var$19 = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$10 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$10 !== $var6) {
                $var3 = var$10.$nativeString.length;
                var$20 = $var6.$nativeString.length;
                if ($var3 < var$20)
                    var$20 = $var3;
                $par2 = 0;
                e: {
                    while (true) {
                        if ($par2 >= var$20) {
                            var$10.$nativeString.length;
                            $var6.$nativeString.length;
                            break d;
                        }
                        if ($par2 < 0)
                            break e;
                        if ($par2 >= var$10.$nativeString.length)
                            break e;
                        var$8 = var$10.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if (var$8 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break d;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        var$10 = $rt_s(258);
        f: {
            g: {
                h: {
                    while (true) {
                        if (var$19 === null) {
                            var$19 = null;
                            break h;
                        }
                        i: {
                            $var6 = var$19.$key0;
                            if (var$10 === $var6)
                                $par2 = 0;
                            else {
                                $var3 = var$10.$nativeString.length;
                                var$20 = $var6.$nativeString.length;
                                if ($var3 < var$20)
                                    var$20 = $var3;
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= var$20) {
                                        $par2 = var$10.$nativeString.length - $var6.$nativeString.length | 0;
                                        break i;
                                    }
                                    if ($var3 < 0)
                                        break f;
                                    if ($var3 >= var$10.$nativeString.length)
                                        break f;
                                    var$8 = var$10.$nativeString.charCodeAt($var3);
                                    if ($var3 < 0)
                                        break g;
                                    if ($var3 >= $var6.$nativeString.length)
                                        break g;
                                    $par2 = var$8 - $var6.$nativeString.charCodeAt($var3) | 0;
                                    if ($par2)
                                        break;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        if (!$par2)
                            break;
                        var$19 = $par2 >= 0 ? var$19.$right : var$19.$left;
                    }
                }
                $var6 = var$19 === null ? null : var$19.$value2;
                $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$worldAge = var$17;
                $var7.$time0 = var$18;
                if (!$par2) {
                    var$17 = Long_neg(var$18);
                    $var7.$time0 = var$17;
                    if (Long_eq(var$17, Long_ZERO))
                        $var7.$time0 = Long_fromInt(-1);
                }
                j: {
                    if ($var7 instanceof nms_Packet3Chat) {
                        $var6 = $var7;
                        $var3 = var$9.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break j;
                        if ($var3 == 1 && !$var6.$isServer)
                            break j;
                    }
                    try {
                        $var6 = var$9.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        var$9 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$9);
                        var$9.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var7, var$9);
                        $var7.$sb = jl_StringBuilder__init_();
                        $var7.$buffer0 = $rt_createCharArray(32);
                        $var7.$autoFlush = 0;
                        $var7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                var$15 = $var5.$prevRainingStrength;
                if (var$15 + ($var5.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1)
                    k: {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var7 = new nms_Packet70GameEvent;
                        $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var7.$eventType = 1;
                        $var7.$gameMode = 0;
                        if ($var7 instanceof nms_Packet3Chat) {
                            var$9 = $var7;
                            $var3 = $var6.$playerEntity.$chatVisibility;
                            if ($var3 == 2)
                                break k;
                            if ($var3 == 1 && !var$9.$isServer)
                                break k;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 10;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var7 = new otcic_JSStderrPrintStream;
                            var$9 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$9);
                            var$9.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var7, var$9);
                            $var7.$sb = jl_StringBuilder__init_();
                            $var7.$buffer0 = $rt_createCharArray(32);
                            $var7.$autoFlush = 0;
                            $var7.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var7;
                        }
                        jl_Throwable_printStackTrace($var6, jl_System_errCache);
                    }
                l: {
                    $var6 = $par1EntityPlayerMP.$inventoryContainer;
                    $var7 = nms_Container_getInventory($var6);
                    var$19 = $par1EntityPlayerMP.$playerNetServerHandler;
                    var$9 = nms_Packet104WindowItems__init_($var6.$windowId, $var7);
                    if (var$9 instanceof nms_Packet3Chat) {
                        $var6 = var$9;
                        $var3 = var$19.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break l;
                        if ($var3 == 1 && !$var6.$isServer)
                            break l;
                    }
                    try {
                        $var6 = var$19.$netManager;
                        $ptr = 9;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var7 = new nms_Packet103SetSlot;
                var$9 = $par1EntityPlayerMP.$inventory0.$itemStack;
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$windowId1 = (-1);
                $var7.$itemSlot = (-1);
                if (var$9 !== null) {
                    var$19 = new nms_ItemStack;
                    $par2 = var$9.$itemID;
                    $var3 = var$9.$stackSize;
                    var$8 = var$9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$19.$itemID = $par2;
                    var$19.$stackSize = $var3;
                    var$19.$itemDamage = var$8;
                    if (var$8 < 0)
                        var$19.$itemDamage = 0;
                    var$9 = var$9.$stackTagCompound;
                    if (var$9 !== null) {
                        var$10 = new nms_NBTTagCompound;
                        $var5 = var$9.$name;
                        if ($var5 === null)
                            $var5 = $rt_s(3);
                        jl_Object__init_(var$10);
                        var$10.$name = $var5;
                        var$10.$tagMap = ju_HashMap__init_1(16);
                        $var5 = var$9.$tagMap;
                        if ($var5.$cachedKeySet === null) {
                            $var4 = new ju_HashMap$1;
                            $var4.$this$0 = $var5;
                            ju_AbstractSet__init_($var4);
                            $var5.$cachedKeySet = $var4;
                        }
                        $var5 = $var5.$cachedKeySet.$iterator();
                        while ($var5.$hasNext()) {
                            $var4 = $var5.$next();
                            var$21 = var$9.$tagMap;
                            if ($var4 === null)
                                var$21 = ju_HashMap_findNullKeyEntry(var$21);
                            else {
                                $var3 = jl_String_hashCode($var4);
                                var$21 = ju_HashMap_findNonNullKeyEntry(var$21, $var4, $var3 & (var$21.$elementData.data.length - 1 | 0), $var3);
                            }
                            var$21 = var$21 === null ? null : var$21.$value0;
                            var$21 = var$21.$copy();
                            var$22 = var$10.$tagMap;
                            if ($var4 !== null)
                                var$21.$name = $var4;
                            else
                                var$21.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$22, $var4, var$21);
                        }
                        var$19.$stackTagCompound = var$10;
                    }
                    var$9 = var$19;
                }
                m: {
                    $var7.$myItemStack = var$9;
                    if ($var7 instanceof nms_Packet3Chat) {
                        var$9 = $var7;
                        $var3 = $var6.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break m;
                        if ($var3 == 1 && !var$9.$isServer)
                            break m;
                    }
                    try {
                        $var6 = $var6.$netManager;
                        $ptr = 11;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                n: {
                    $par1EntityPlayerMP.$lastHealth = (-1.0E8);
                    $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var7 = new nms_Packet16BlockItemSwitch;
                    $par2 = $par1EntityPlayerMP.$inventory0.$currentItem;
                    $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var7.$id4 = $par2;
                    if ($var7 instanceof nms_Packet3Chat) {
                        var$9 = $var7;
                        $var3 = $var6.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break n;
                        if ($var3 == 1 && !var$9.$isServer)
                            break n;
                    }
                    try {
                        $var6 = $var6.$netManager;
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        var$9 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$9);
                        var$9.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var7, var$9);
                        $var7.$sb = jl_StringBuilder__init_();
                        $var7.$buffer0 = $rt_createCharArray(32);
                        $var7.$autoFlush = 0;
                        $var7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                $var6 = $par1EntityPlayerMP.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var7 = new ju_HashMap$2;
                    $var7.$this$01 = $var6;
                    $var6.$cachedValues = $var7;
                }
                $var6 = $var6.$cachedValues.$iterator();
                while ($var6.$hasNext()) {
                    o: {
                        $var7 = $var6.$next();
                        var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                        var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                        if (var$19 instanceof nms_Packet3Chat) {
                            $var7 = var$19;
                            $var3 = var$9.$playerEntity.$chatVisibility;
                            if ($var3 == 2)
                                break o;
                            if ($var3 == 1 && !$var7.$isServer)
                                break o;
                        }
                        try {
                            $var7 = var$9.$netManager;
                            $ptr = 13;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var7 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$19 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$19);
                            var$19.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_(var$9);
                            var$9.$out0 = var$19;
                            var$19 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$19);
                            var$9.$sb = var$19;
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace($var7, jl_System_errCache);
                    }
                }
                return;
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
    case 7:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        p: {
            $par1EntityPlayerMP.$theItemInWorldManager.$theWorld = $var5;
            var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet4UpdateTime;
            var$17 = $var5.$worldInfo.$getWorldTotalTime();
            var$18 = $var5.$worldInfo.$getWorldTime();
            var$19 = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$10 = $rt_s(258);
            $var6 = $rt_s(258);
            if (var$10 !== $var6) {
                $var3 = var$10.$nativeString.length;
                var$20 = $var6.$nativeString.length;
                if ($var3 < var$20)
                    var$20 = $var3;
                $par2 = 0;
                q: {
                    while (true) {
                        if ($par2 >= var$20) {
                            var$10.$nativeString.length;
                            $var6.$nativeString.length;
                            break p;
                        }
                        if ($par2 < 0)
                            break q;
                        if ($par2 >= var$10.$nativeString.length)
                            break q;
                        var$8 = var$10.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var6.$nativeString.length)
                            break;
                        if (var$8 - $var6.$nativeString.charCodeAt($par2) | 0)
                            break p;
                        $par2 = $par2 + 1 | 0;
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
        }
        var$10 = $rt_s(258);
        r: {
            f: {
                g: {
                    while (true) {
                        if (var$19 === null) {
                            var$19 = null;
                            break g;
                        }
                        s: {
                            $var6 = var$19.$key0;
                            if (var$10 === $var6)
                                $par2 = 0;
                            else {
                                $var3 = var$10.$nativeString.length;
                                var$20 = $var6.$nativeString.length;
                                if ($var3 < var$20)
                                    var$20 = $var3;
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= var$20) {
                                        $par2 = var$10.$nativeString.length - $var6.$nativeString.length | 0;
                                        break s;
                                    }
                                    if ($var3 < 0)
                                        break r;
                                    if ($var3 >= var$10.$nativeString.length)
                                        break r;
                                    var$8 = var$10.$nativeString.charCodeAt($var3);
                                    if ($var3 < 0)
                                        break f;
                                    if ($var3 >= $var6.$nativeString.length)
                                        break f;
                                    $par2 = var$8 - $var6.$nativeString.charCodeAt($var3) | 0;
                                    if ($par2)
                                        break;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        if (!$par2)
                            break;
                        var$19 = $par2 >= 0 ? var$19.$right : var$19.$left;
                    }
                }
                $var6 = var$19 === null ? null : var$19.$value2;
                $par2 = $var6 === null ? 0 : $var6.$valueBoolean;
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$worldAge = var$17;
                $var7.$time0 = var$18;
                if (!$par2) {
                    var$17 = Long_neg(var$18);
                    $var7.$time0 = var$17;
                    if (Long_eq(var$17, Long_ZERO))
                        $var7.$time0 = Long_fromInt(-1);
                }
                t: {
                    if ($var7 instanceof nms_Packet3Chat) {
                        $var6 = $var7;
                        $var3 = var$9.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break t;
                        if ($var3 == 1 && !$var6.$isServer)
                            break t;
                    }
                    try {
                        $var6 = var$9.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        var$9 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$9);
                        var$9.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var7, var$9);
                        $var7.$sb = jl_StringBuilder__init_();
                        $var7.$buffer0 = $rt_createCharArray(32);
                        $var7.$autoFlush = 0;
                        $var7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                var$15 = $var5.$prevRainingStrength;
                if (var$15 + ($var5.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1)
                    u: {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var7 = new nms_Packet70GameEvent;
                        $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var7.$eventType = 1;
                        $var7.$gameMode = 0;
                        if ($var7 instanceof nms_Packet3Chat) {
                            var$9 = $var7;
                            $var3 = $var6.$playerEntity.$chatVisibility;
                            if ($var3 == 2)
                                break u;
                            if ($var3 == 1 && !var$9.$isServer)
                                break u;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 10;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var7 = new otcic_JSStderrPrintStream;
                            var$9 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$9);
                            var$9.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var7, var$9);
                            $var7.$sb = jl_StringBuilder__init_();
                            $var7.$buffer0 = $rt_createCharArray(32);
                            $var7.$autoFlush = 0;
                            $var7.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var7;
                        }
                        jl_Throwable_printStackTrace($var6, jl_System_errCache);
                    }
                v: {
                    $var6 = $par1EntityPlayerMP.$inventoryContainer;
                    $var7 = nms_Container_getInventory($var6);
                    var$19 = $par1EntityPlayerMP.$playerNetServerHandler;
                    var$9 = nms_Packet104WindowItems__init_($var6.$windowId, $var7);
                    if (var$9 instanceof nms_Packet3Chat) {
                        $var6 = var$9;
                        $var3 = var$19.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break v;
                        if ($var3 == 1 && !$var6.$isServer)
                            break v;
                    }
                    try {
                        $var6 = var$19.$netManager;
                        $ptr = 9;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var7 = new nms_Packet103SetSlot;
                var$9 = $par1EntityPlayerMP.$inventory0.$itemStack;
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$windowId1 = (-1);
                $var7.$itemSlot = (-1);
                if (var$9 !== null) {
                    var$19 = new nms_ItemStack;
                    $par2 = var$9.$itemID;
                    $var3 = var$9.$stackSize;
                    var$8 = var$9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$19.$itemID = $par2;
                    var$19.$stackSize = $var3;
                    var$19.$itemDamage = var$8;
                    if (var$8 < 0)
                        var$19.$itemDamage = 0;
                    var$9 = var$9.$stackTagCompound;
                    if (var$9 !== null) {
                        var$10 = new nms_NBTTagCompound;
                        $var5 = var$9.$name;
                        if ($var5 === null)
                            $var5 = $rt_s(3);
                        jl_Object__init_(var$10);
                        var$10.$name = $var5;
                        var$10.$tagMap = ju_HashMap__init_1(16);
                        $var5 = var$9.$tagMap;
                        if ($var5.$cachedKeySet === null) {
                            $var4 = new ju_HashMap$1;
                            $var4.$this$0 = $var5;
                            ju_AbstractSet__init_($var4);
                            $var5.$cachedKeySet = $var4;
                        }
                        $var5 = $var5.$cachedKeySet.$iterator();
                        while ($var5.$hasNext()) {
                            $var4 = $var5.$next();
                            var$21 = var$9.$tagMap;
                            if ($var4 === null)
                                var$21 = ju_HashMap_findNullKeyEntry(var$21);
                            else {
                                $var3 = jl_String_hashCode($var4);
                                var$21 = ju_HashMap_findNonNullKeyEntry(var$21, $var4, $var3 & (var$21.$elementData.data.length - 1 | 0), $var3);
                            }
                            var$21 = var$21 === null ? null : var$21.$value0;
                            var$21 = var$21.$copy();
                            var$22 = var$10.$tagMap;
                            if ($var4 !== null)
                                var$21.$name = $var4;
                            else
                                var$21.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$22, $var4, var$21);
                        }
                        var$19.$stackTagCompound = var$10;
                    }
                    var$9 = var$19;
                }
                w: {
                    $var7.$myItemStack = var$9;
                    if ($var7 instanceof nms_Packet3Chat) {
                        var$9 = $var7;
                        $var3 = $var6.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break w;
                        if ($var3 == 1 && !var$9.$isServer)
                            break w;
                    }
                    try {
                        $var6 = $var6.$netManager;
                        $ptr = 11;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                x: {
                    $par1EntityPlayerMP.$lastHealth = (-1.0E8);
                    $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var7 = new nms_Packet16BlockItemSwitch;
                    $par2 = $par1EntityPlayerMP.$inventory0.$currentItem;
                    $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var7.$id4 = $par2;
                    if ($var7 instanceof nms_Packet3Chat) {
                        var$9 = $var7;
                        $var3 = $var6.$playerEntity.$chatVisibility;
                        if ($var3 == 2)
                            break x;
                        if ($var3 == 1 && !var$9.$isServer)
                            break x;
                    }
                    try {
                        $var6 = $var6.$netManager;
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        var$9 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$9);
                        var$9.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var7, var$9);
                        $var7.$sb = jl_StringBuilder__init_();
                        $var7.$buffer0 = $rt_createCharArray(32);
                        $var7.$autoFlush = 0;
                        $var7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var7;
                    }
                    jl_Throwable_printStackTrace($var6, jl_System_errCache);
                }
                $var6 = $par1EntityPlayerMP.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var7 = new ju_HashMap$2;
                    $var7.$this$01 = $var6;
                    $var6.$cachedValues = $var7;
                }
                $var6 = $var6.$cachedValues.$iterator();
                while ($var6.$hasNext()) {
                    y: {
                        $var7 = $var6.$next();
                        var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                        var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                        if (var$19 instanceof nms_Packet3Chat) {
                            $var7 = var$19;
                            $var3 = var$9.$playerEntity.$chatVisibility;
                            if ($var3 == 2)
                                break y;
                            if ($var3 == 1 && !$var7.$isServer)
                                break y;
                        }
                        try {
                            $var7 = var$9.$netManager;
                            $ptr = 13;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var7 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$19 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$19);
                            var$19.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_(var$9);
                            var$9.$out0 = var$19;
                            var$19 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$19);
                            var$9.$sb = var$19;
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace($var7, jl_System_errCache);
                    }
                }
                return;
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
    case 8:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        var$15 = $var5.$prevRainingStrength;
        if (var$15 + ($var5.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1)
            a: {
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var7 = new nms_Packet70GameEvent;
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$eventType = 1;
                $var7.$gameMode = 0;
                if ($var7 instanceof nms_Packet3Chat) {
                    var$9 = $var7;
                    $var3 = $var6.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break a;
                    if ($var3 == 1 && !var$9.$isServer)
                        break a;
                }
                try {
                    $var6 = $var6.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var7 = new otcic_JSStderrPrintStream;
                    var$9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$9);
                    var$9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var7, var$9);
                    $var7.$sb = jl_StringBuilder__init_();
                    $var7.$buffer0 = $rt_createCharArray(32);
                    $var7.$autoFlush = 0;
                    $var7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var7;
                }
                jl_Throwable_printStackTrace($var6, jl_System_errCache);
            }
        e: {
            $var6 = $par1EntityPlayerMP.$inventoryContainer;
            $var7 = nms_Container_getInventory($var6);
            var$19 = $par1EntityPlayerMP.$playerNetServerHandler;
            var$9 = nms_Packet104WindowItems__init_($var6.$windowId, $var7);
            if (var$9 instanceof nms_Packet3Chat) {
                $var6 = var$9;
                $var3 = var$19.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break e;
                if ($var3 == 1 && !$var6.$isServer)
                    break e;
            }
            try {
                $var6 = var$19.$netManager;
                $ptr = 9;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
        $var7 = new nms_Packet103SetSlot;
        var$9 = $par1EntityPlayerMP.$inventory0.$itemStack;
        $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var7.$windowId1 = (-1);
        $var7.$itemSlot = (-1);
        if (var$9 !== null) {
            var$19 = new nms_ItemStack;
            $par2 = var$9.$itemID;
            $var3 = var$9.$stackSize;
            var$8 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            var$19.$itemID = $par2;
            var$19.$stackSize = $var3;
            var$19.$itemDamage = var$8;
            if (var$8 < 0)
                var$19.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$10 = new nms_NBTTagCompound;
                $var5 = var$9.$name;
                if ($var5 === null)
                    $var5 = $rt_s(3);
                jl_Object__init_(var$10);
                var$10.$name = $var5;
                var$10.$tagMap = ju_HashMap__init_1(16);
                $var5 = var$9.$tagMap;
                if ($var5.$cachedKeySet === null) {
                    $var4 = new ju_HashMap$1;
                    $var4.$this$0 = $var5;
                    ju_AbstractSet__init_($var4);
                    $var5.$cachedKeySet = $var4;
                }
                $var5 = $var5.$cachedKeySet.$iterator();
                while ($var5.$hasNext()) {
                    $var4 = $var5.$next();
                    var$21 = var$9.$tagMap;
                    if ($var4 === null)
                        var$21 = ju_HashMap_findNullKeyEntry(var$21);
                    else {
                        $var3 = jl_String_hashCode($var4);
                        var$21 = ju_HashMap_findNonNullKeyEntry(var$21, $var4, $var3 & (var$21.$elementData.data.length - 1 | 0), $var3);
                    }
                    var$21 = var$21 === null ? null : var$21.$value0;
                    var$21 = var$21.$copy();
                    var$22 = var$10.$tagMap;
                    if ($var4 !== null)
                        var$21.$name = $var4;
                    else
                        var$21.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$22, $var4, var$21);
                }
                var$19.$stackTagCompound = var$10;
            }
            var$9 = var$19;
        }
        z: {
            $var7.$myItemStack = var$9;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break z;
                if ($var3 == 1 && !var$9.$isServer)
                    break z;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 11;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        t: {
            $par1EntityPlayerMP.$lastHealth = (-1.0E8);
            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet16BlockItemSwitch;
            $par2 = $par1EntityPlayerMP.$inventory0.$currentItem;
            $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var7.$id4 = $par2;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break t;
                if ($var3 == 1 && !var$9.$isServer)
                    break t;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$activePotionsMap;
        if ($var6.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var6;
            $var6.$cachedValues = $var7;
        }
        $var6 = $var6.$cachedValues.$iterator();
        while ($var6.$hasNext()) {
            ba: {
                $var7 = $var6.$next();
                var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                if (var$19 instanceof nms_Packet3Chat) {
                    $var7 = var$19;
                    $var3 = var$9.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break ba;
                    if ($var3 == 1 && !$var7.$isServer)
                        break ba;
                }
                try {
                    $var7 = var$9.$netManager;
                    $ptr = 13;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$19 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$19);
                    var$19.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$9);
                    var$9.$out0 = var$19;
                    var$19 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$19);
                    var$9.$sb = var$19;
                    var$9.$buffer0 = $rt_createCharArray(32);
                    var$9.$autoFlush = 0;
                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$9;
                }
                jl_Throwable_printStackTrace($var7, jl_System_errCache);
            }
        }
        return;
    case 9:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
        $var7 = new nms_Packet103SetSlot;
        var$9 = $par1EntityPlayerMP.$inventory0.$itemStack;
        $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var7.$windowId1 = (-1);
        $var7.$itemSlot = (-1);
        if (var$9 !== null) {
            var$19 = new nms_ItemStack;
            $par2 = var$9.$itemID;
            $var3 = var$9.$stackSize;
            var$8 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            var$19.$itemID = $par2;
            var$19.$stackSize = $var3;
            var$19.$itemDamage = var$8;
            if (var$8 < 0)
                var$19.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$10 = new nms_NBTTagCompound;
                $var5 = var$9.$name;
                if ($var5 === null)
                    $var5 = $rt_s(3);
                jl_Object__init_(var$10);
                var$10.$name = $var5;
                var$10.$tagMap = ju_HashMap__init_1(16);
                $var5 = var$9.$tagMap;
                if ($var5.$cachedKeySet === null) {
                    $var4 = new ju_HashMap$1;
                    $var4.$this$0 = $var5;
                    ju_AbstractSet__init_($var4);
                    $var5.$cachedKeySet = $var4;
                }
                $var5 = $var5.$cachedKeySet.$iterator();
                while ($var5.$hasNext()) {
                    $var4 = $var5.$next();
                    var$21 = var$9.$tagMap;
                    if ($var4 === null)
                        var$21 = ju_HashMap_findNullKeyEntry(var$21);
                    else {
                        $var3 = jl_String_hashCode($var4);
                        var$21 = ju_HashMap_findNonNullKeyEntry(var$21, $var4, $var3 & (var$21.$elementData.data.length - 1 | 0), $var3);
                    }
                    var$21 = var$21 === null ? null : var$21.$value0;
                    var$21 = var$21.$copy();
                    var$22 = var$10.$tagMap;
                    if ($var4 !== null)
                        var$21.$name = $var4;
                    else
                        var$21.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$22, $var4, var$21);
                }
                var$19.$stackTagCompound = var$10;
            }
            var$9 = var$19;
        }
        s: {
            $var7.$myItemStack = var$9;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break s;
                if ($var3 == 1 && !var$9.$isServer)
                    break s;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 11;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        bb: {
            $par1EntityPlayerMP.$lastHealth = (-1.0E8);
            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet16BlockItemSwitch;
            $par2 = $par1EntityPlayerMP.$inventory0.$currentItem;
            $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var7.$id4 = $par2;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break bb;
                if ($var3 == 1 && !var$9.$isServer)
                    break bb;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$activePotionsMap;
        if ($var6.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var6;
            $var6.$cachedValues = $var7;
        }
        $var6 = $var6.$cachedValues.$iterator();
        while ($var6.$hasNext()) {
            bc: {
                $var7 = $var6.$next();
                var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                if (var$19 instanceof nms_Packet3Chat) {
                    $var7 = var$19;
                    $var3 = var$9.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break bc;
                    if ($var3 == 1 && !$var7.$isServer)
                        break bc;
                }
                try {
                    $var7 = var$9.$netManager;
                    $ptr = 13;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$19 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$19);
                    var$19.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$9);
                    var$9.$out0 = var$19;
                    var$19 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$19);
                    var$9.$sb = var$19;
                    var$9.$buffer0 = $rt_createCharArray(32);
                    var$9.$autoFlush = 0;
                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$9;
                }
                jl_Throwable_printStackTrace($var7, jl_System_errCache);
            }
        }
        return;
    case 10:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        p: {
            $var6 = $par1EntityPlayerMP.$inventoryContainer;
            $var7 = nms_Container_getInventory($var6);
            var$19 = $par1EntityPlayerMP.$playerNetServerHandler;
            var$9 = nms_Packet104WindowItems__init_($var6.$windowId, $var7);
            if (var$9 instanceof nms_Packet3Chat) {
                $var6 = var$9;
                $var3 = var$19.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break p;
                if ($var3 == 1 && !$var6.$isServer)
                    break p;
            }
            try {
                $var6 = var$19.$netManager;
                $ptr = 9;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
        $var7 = new nms_Packet103SetSlot;
        var$9 = $par1EntityPlayerMP.$inventory0.$itemStack;
        $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var7.$windowId1 = (-1);
        $var7.$itemSlot = (-1);
        if (var$9 !== null) {
            var$19 = new nms_ItemStack;
            $par2 = var$9.$itemID;
            $var3 = var$9.$stackSize;
            var$8 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            var$19.$itemID = $par2;
            var$19.$stackSize = $var3;
            var$19.$itemDamage = var$8;
            if (var$8 < 0)
                var$19.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$10 = new nms_NBTTagCompound;
                $var5 = var$9.$name;
                if ($var5 === null)
                    $var5 = $rt_s(3);
                jl_Object__init_(var$10);
                var$10.$name = $var5;
                var$10.$tagMap = ju_HashMap__init_1(16);
                $var5 = var$9.$tagMap;
                if ($var5.$cachedKeySet === null) {
                    $var4 = new ju_HashMap$1;
                    $var4.$this$0 = $var5;
                    ju_AbstractSet__init_($var4);
                    $var5.$cachedKeySet = $var4;
                }
                $var5 = $var5.$cachedKeySet.$iterator();
                while ($var5.$hasNext()) {
                    $var4 = $var5.$next();
                    var$21 = var$9.$tagMap;
                    if ($var4 === null)
                        var$21 = ju_HashMap_findNullKeyEntry(var$21);
                    else {
                        $var3 = jl_String_hashCode($var4);
                        var$21 = ju_HashMap_findNonNullKeyEntry(var$21, $var4, $var3 & (var$21.$elementData.data.length - 1 | 0), $var3);
                    }
                    var$21 = var$21 === null ? null : var$21.$value0;
                    var$21 = var$21.$copy();
                    var$22 = var$10.$tagMap;
                    if ($var4 !== null)
                        var$21.$name = $var4;
                    else
                        var$21.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$22, $var4, var$21);
                }
                var$19.$stackTagCompound = var$10;
            }
            var$9 = var$19;
        }
        bb: {
            $var7.$myItemStack = var$9;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break bb;
                if ($var3 == 1 && !var$9.$isServer)
                    break bb;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 11;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        bd: {
            $par1EntityPlayerMP.$lastHealth = (-1.0E8);
            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet16BlockItemSwitch;
            $par2 = $par1EntityPlayerMP.$inventory0.$currentItem;
            $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var7.$id4 = $par2;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break bd;
                if ($var3 == 1 && !var$9.$isServer)
                    break bd;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$activePotionsMap;
        if ($var6.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var6;
            $var6.$cachedValues = $var7;
        }
        $var6 = $var6.$cachedValues.$iterator();
        while ($var6.$hasNext()) {
            be: {
                $var7 = $var6.$next();
                var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                if (var$19 instanceof nms_Packet3Chat) {
                    $var7 = var$19;
                    $var3 = var$9.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break be;
                    if ($var3 == 1 && !$var7.$isServer)
                        break be;
                }
                try {
                    $var7 = var$9.$netManager;
                    $ptr = 13;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$19 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$19);
                    var$19.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$9);
                    var$9.$out0 = var$19;
                    var$19 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$19);
                    var$9.$sb = var$19;
                    var$9.$buffer0 = $rt_createCharArray(32);
                    var$9.$autoFlush = 0;
                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$9;
                }
                jl_Throwable_printStackTrace($var7, jl_System_errCache);
            }
        }
        return;
    case 11:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        p: {
            $par1EntityPlayerMP.$lastHealth = (-1.0E8);
            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var7 = new nms_Packet16BlockItemSwitch;
            $par2 = $par1EntityPlayerMP.$inventory0.$currentItem;
            $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var7.$id4 = $par2;
            if ($var7 instanceof nms_Packet3Chat) {
                var$9 = $var7;
                $var3 = $var6.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break p;
                if ($var3 == 1 && !var$9.$isServer)
                    break p;
            }
            try {
                $var6 = $var6.$netManager;
                $ptr = 12;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$activePotionsMap;
        if ($var6.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var6;
            $var6.$cachedValues = $var7;
        }
        $var6 = $var6.$cachedValues.$iterator();
        while ($var6.$hasNext()) {
            q: {
                $var7 = $var6.$next();
                var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                if (var$19 instanceof nms_Packet3Chat) {
                    $var7 = var$19;
                    $var3 = var$9.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break q;
                    if ($var3 == 1 && !$var7.$isServer)
                        break q;
                }
                try {
                    $var7 = var$9.$netManager;
                    $ptr = 13;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$19 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$19);
                    var$19.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$9);
                    var$9.$out0 = var$19;
                    var$19 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$19);
                    var$9.$sb = var$19;
                    var$9.$buffer0 = $rt_createCharArray(32);
                    var$9.$autoFlush = 0;
                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$9;
                }
                jl_Throwable_printStackTrace($var7, jl_System_errCache);
            }
        }
        return;
    case 12:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var7, var$9);
                $var7.$sb = jl_StringBuilder__init_();
                $var7.$buffer0 = $rt_createCharArray(32);
                $var7.$autoFlush = 0;
                $var7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var7;
            }
            jl_Throwable_printStackTrace($var6, jl_System_errCache);
        }
        $var6 = $par1EntityPlayerMP.$activePotionsMap;
        if ($var6.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var6;
            $var6.$cachedValues = $var7;
        }
        $var6 = $var6.$cachedValues.$iterator();
        while ($var6.$hasNext()) {
            bf: {
                $var7 = $var6.$next();
                var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = nms_Packet41EntityEffect__init_($par1EntityPlayerMP.$entityId, $var7);
                if (var$19 instanceof nms_Packet3Chat) {
                    $var7 = var$19;
                    $var3 = var$9.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        break bf;
                    if ($var3 == 1 && !$var7.$isServer)
                        break bf;
                }
                try {
                    $var7 = var$9.$netManager;
                    $ptr = 13;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$19 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$19);
                    var$19.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$9);
                    var$9.$out0 = var$19;
                    var$19 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$19);
                    var$9.$sb = var$19;
                    var$9.$buffer0 = $rt_createCharArray(32);
                    var$9.$autoFlush = 0;
                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$9;
                }
                jl_Throwable_printStackTrace($var7, jl_System_errCache);
            }
        }
        return;
    case 13:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var7, var$19);
                if ($rt_suspending()) {
                    break main;
                }
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                    break b;
                } else {
                    throw $$e;
                }
            }
            c: {
                while (true) {
                    $par2 = $var6.$hasNext();
                    if (!$par2)
                        break;
                    $var7 = $var6.$next();
                    $var7 = $var7;
                    var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                    var$19 = new nms_Packet41EntityEffect;
                    $par2 = $par1EntityPlayerMP.$entityId;
                    nms_Packet41EntityEffect__init_0(var$19, $par2, $var7);
                    $par2 = var$19 instanceof nms_Packet3Chat;
                    if (!$par2)
                        break c;
                    $var7 = var$19;
                    var$10 = var$9.$playerEntity;
                    $var3 = var$10.$chatVisibility;
                    $par2 = 2;
                    $par2 = $rt_compare($var3, $par2);
                    if (!$par2)
                        continue;
                    $par2 = 1;
                    $par2 = $rt_compare($var3, $par2);
                    if ($par2)
                        break c;
                    $par2 = $var7.$isServer;
                    if ($par2)
                        break c;
                }
                return;
            }
            try {
                $var7 = var$9.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        bf: while (true) {
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$19 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$19);
                var$19.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$9);
                var$9.$out0 = var$19;
                var$19 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$19);
                var$9.$sb = var$19;
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace($var7, jl_System_errCache);
            while (true) {
                $par2 = $var6.$hasNext();
                if (!$par2)
                    break bf;
                $var7 = $var6.$next();
                $var7 = $var7;
                var$9 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = new nms_Packet41EntityEffect;
                $par2 = $par1EntityPlayerMP.$entityId;
                nms_Packet41EntityEffect__init_0(var$19, $par2, $var7);
                $par2 = var$19 instanceof nms_Packet3Chat;
                if (!$par2)
                    break;
                $var7 = var$19;
                var$10 = var$9.$playerEntity;
                $var3 = var$10.$chatVisibility;
                $par2 = 2;
                $par2 = $rt_compare($var3, $par2);
                if (!$par2)
                    continue;
                $par2 = 1;
                $par2 = $rt_compare($var3, $par2);
                if ($par2)
                    break;
                $par2 = $var7.$isServer;
                if ($par2)
                    break;
            }
            try {
                $var7 = var$9.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                    continue;
                } else {
                    throw $$e;
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $par2, $var3, $var6, $var4, $var5, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_ServerConfigurationManager_transferEntityToWorld = ($this, $par1Entity, $par2, $par3WorldServer, $par4WorldServer) => {
    let $var11, $var15, $var13, $var17, var$9, var$10, var$11, var$12, $var9, $var18, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var18 = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var17 = $thread.pop();$var13 = $thread.pop();$var15 = $thread.pop();$var11 = $thread.pop();$par4WorldServer = $thread.pop();$par3WorldServer = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var11 = $par1Entity.$posX;
            $var15 = $par1Entity.$posZ;
            $var13 = $par1Entity.$posY;
            $var17 = $par1Entity.$rotationYaw;
            var$9 = $par1Entity.$dimension;
            if (var$9 == (-1)) {
                var$10 = $var11 / 8.0;
                var$11 = $var15 / 8.0;
                var$12 = $par1Entity.$rotationPitch;
                $par1Entity.$posX = var$10;
                $par1Entity.$prevPosX = var$10;
                $par1Entity.$lastTickPosX = var$10;
                $var9 = $var13 + $par1Entity.$yOffset;
                $par1Entity.$posY = $var9;
                $par1Entity.$prevPosY = $var9;
                $par1Entity.$lastTickPosY = $var9;
                $par1Entity.$posZ = var$11;
                $par1Entity.$prevPosZ = var$11;
                $par1Entity.$lastTickPosZ = var$11;
                $par1Entity.$rotationYaw = $var17;
                $par1Entity.$rotationPitch = var$12;
                nms_Entity_setPosition($par1Entity, var$10, $var9, var$11);
                if (!$par1Entity.$isEntityAlive())
                    break a;
                b: {
                    var$9 = 0;
                    if (!$par3WorldServer.$mcServer0.$canSpawnAnimals) {
                        if ($par1Entity instanceof nms_EntityAnimal)
                            break b;
                        if ($par1Entity instanceof nms_EntityWaterMob)
                            break b;
                    }
                    if (!$par3WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
                        $ptr = 5;
                        continue main;
                    }
                    $ptr = 1;
                    continue main;
                }
                $ptr = 2;
                continue main;
            }
            if (!var$9) {
                var$10 = $var11 * 8.0;
                var$11 = $var15 * 8.0;
                var$12 = $par1Entity.$rotationPitch;
                $par1Entity.$posX = var$10;
                $par1Entity.$prevPosX = var$10;
                $par1Entity.$lastTickPosX = var$10;
                $var9 = $var13 + $par1Entity.$yOffset;
                $par1Entity.$posY = $var9;
                $par1Entity.$prevPosY = $var9;
                $par1Entity.$lastTickPosY = $var9;
                $par1Entity.$posZ = var$11;
                $par1Entity.$prevPosZ = var$11;
                $par1Entity.$lastTickPosZ = var$11;
                $par1Entity.$rotationYaw = $var17;
                $par1Entity.$rotationPitch = var$12;
                nms_Entity_setPosition($par1Entity, var$10, $var9, var$11);
                if (!$par1Entity.$isEntityAlive())
                    break a;
                c: {
                    var$9 = 0;
                    if (!$par3WorldServer.$mcServer0.$canSpawnAnimals) {
                        if ($par1Entity instanceof nms_EntityAnimal)
                            break c;
                        if ($par1Entity instanceof nms_EntityWaterMob)
                            break c;
                    }
                    if (!$par3WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
                        $ptr = 6;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                $ptr = 4;
                continue main;
            }
            if ($par2 != 1)
                $var18 = $par4WorldServer.$provider.$getEntrancePortalLocation();
            else {
                $var18 = new nms_ChunkCoordinates;
                var$15 = $par4WorldServer.$worldInfo.$getSpawnX();
                var$9 = $par4WorldServer.$worldInfo.$getSpawnY();
                var$16 = $par4WorldServer.$worldInfo.$getSpawnZ();
                $var18.$posX0 = var$15;
                $var18.$posY0 = var$9;
                $var18.$posZ0 = var$16;
            }
            var$10 = $var18.$posX0;
            var$17 = $var18.$posY0;
            $par1Entity.$posY = var$17;
            var$11 = $var18.$posZ0;
            $par1Entity.$posX = var$10;
            $par1Entity.$prevPosX = var$10;
            $par1Entity.$lastTickPosX = var$10;
            $var9 = var$17 + $par1Entity.$yOffset;
            $par1Entity.$posY = $var9;
            $par1Entity.$prevPosY = $var9;
            $par1Entity.$lastTickPosY = $var9;
            $par1Entity.$posZ = var$11;
            $par1Entity.$prevPosZ = var$11;
            $par1Entity.$lastTickPosZ = var$11;
            $par1Entity.$rotationYaw = 90.0;
            $par1Entity.$rotationPitch = 0.0;
            nms_Entity_setPosition($par1Entity, var$10, $var9, var$11);
            if ($par1Entity.$isEntityAlive()) {
                d: {
                    var$9 = 0;
                    if (!$par3WorldServer.$mcServer0.$canSpawnAnimals) {
                        if ($par1Entity instanceof nms_EntityAnimal)
                            break d;
                        if ($par1Entity instanceof nms_EntityWaterMob)
                            break d;
                    }
                    if (!$par3WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
                        $ptr = 9;
                        continue main;
                    }
                    $ptr = 7;
                    continue main;
                }
                $ptr = 8;
                continue main;
            }
        }
        if ($par2 != 1) {
            $par2 = var$10 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            $var9 = var$15;
            $par2 = var$11 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            var$10 = var$15;
            if ($par1Entity.$isEntityAlive()) {
                $ptr = 10;
                continue main;
            }
        }
        $par1Entity.$worldObj = $par4WorldServer;
        return;
    case 1:
        nms_World_updateEntityWithOptionalForce($par3WorldServer, $par1Entity, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2 != 1) {
            $par2 = var$10 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            $var9 = var$15;
            $par2 = var$11 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            var$10 = var$15;
            if ($par1Entity.$isEntityAlive()) {
                $ptr = 10;
                continue main;
            }
        }
        $par1Entity.$worldObj = $par4WorldServer;
        return;
    case 2:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
            $ptr = 5;
            continue main;
        }
        $ptr = 1;
        continue main;
    case 3:
        nms_World_updateEntityWithOptionalForce($par3WorldServer, $par1Entity, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2 != 1) {
            $par2 = var$10 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            $var9 = var$15;
            $par2 = var$11 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            var$10 = var$15;
            if ($par1Entity.$isEntityAlive()) {
                $ptr = 10;
                continue main;
            }
        }
        $par1Entity.$worldObj = $par4WorldServer;
        return;
    case 4:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
            $ptr = 6;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 5:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    case 6:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
        continue main;
    case 7:
        nms_World_updateEntityWithOptionalForce($par3WorldServer, $par1Entity, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2 != 1) {
            $par2 = var$10 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            $var9 = var$15;
            $par2 = var$11 | 0;
            var$15 = (-29999872);
            if ($par2 >= var$15)
                var$15 = $par2 <= 29999872 ? $par2 : 29999872;
            var$10 = var$15;
            if ($par1Entity.$isEntityAlive()) {
                $ptr = 10;
                continue main;
            }
        }
        $par1Entity.$worldObj = $par4WorldServer;
        return;
    case 8:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
            $ptr = 9;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 9:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
        continue main;
    case 10:
        e: {
            nms_World_spawnEntityInWorld($par4WorldServer, $par1Entity);
            if ($rt_suspending()) {
                break main;
            }
            var$11 = $par1Entity.$posY;
            var$18 = $par1Entity.$rotationYaw;
            var$12 = $par1Entity.$rotationPitch;
            $par1Entity.$posX = $var9;
            $par1Entity.$prevPosX = $var9;
            $par1Entity.$lastTickPosX = $var9;
            var$11 = var$11 + $par1Entity.$yOffset;
            $par1Entity.$posY = var$11;
            $par1Entity.$prevPosY = var$11;
            $par1Entity.$lastTickPosY = var$11;
            $par1Entity.$posZ = var$10;
            $par1Entity.$prevPosZ = var$10;
            $par1Entity.$lastTickPosZ = var$10;
            $par1Entity.$rotationYaw = var$18;
            $par1Entity.$rotationPitch = var$12;
            nms_Entity_setPosition($par1Entity, $var9, var$11, var$10);
            $par2 = 0;
            if (!$par4WorldServer.$mcServer0.$canSpawnAnimals) {
                if ($par1Entity instanceof nms_EntityAnimal)
                    break e;
                if ($par1Entity instanceof nms_EntityWaterMob)
                    break e;
            }
            if (!$par4WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
                $ptr = 14;
                continue main;
            }
            $ptr = 11;
            continue main;
        }
        $ptr = 13;
        continue main;
    case 11:
        nms_World_updateEntityWithOptionalForce($par4WorldServer, $par1Entity, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par3WorldServer = $par4WorldServer.$worldTeleporter;
        $ptr = 12;
    case 12:
        nms_Teleporter_placeInPortal($par3WorldServer, $par1Entity, $var11, $var13, $var15, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity.$worldObj = $par4WorldServer;
        return;
    case 13:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$par4WorldServer.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
            $ptr = 14;
            continue main;
        }
        $ptr = 11;
        continue main;
    case 14:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par3WorldServer, $par4WorldServer, $var11, $var15, $var13, $var17, var$9, var$10, var$11, var$12, $var9, $var18, var$15, var$16, var$17, var$18, $ptr);
},
nms_ServerConfigurationManager_sendPlayerInfoToAllPlayers = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$playerPingIndex + 1 | 0;
        $this.$playerPingIndex = var$1;
        if (var$1 > 600)
            $this.$playerPingIndex = 0;
        a: {
            var$1 = $this.$playerPingIndex;
            $var1 = $this.$playerEntityList;
            var$3 = $rt_compare(var$1, $var1.$size0);
            if (var$3 < 0) {
                if (var$1 >= 0 && var$3 < 0) {
                    $var1 = $var1.$array.data[var$1];
                    var$4 = new nms_Packet201PlayerInfo;
                    var$5 = $var1.$username;
                    var$3 = $var1.$ping0;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$4.$playerName = var$5;
                    var$4.$isConnected = 1;
                    var$4.$ping = var$3;
                    var$1 = 0;
                    var$6 = var$4 instanceof nms_Packet3Chat;
                    var$5 = var$4;
                    while (true) {
                        $var1 = $this.$playerEntityList;
                        var$3 = $rt_compare(var$1, $var1.$size0);
                        if (var$3 >= 0)
                            break;
                        if (var$1 < 0)
                            break a;
                        if (var$3 >= 0)
                            break a;
                        b: {
                            $var1 = $var1.$array.data[var$1].$playerNetServerHandler;
                            if (var$6) {
                                var$7 = $var1.$playerEntity.$chatVisibility;
                                if (var$7 == 2)
                                    break b;
                                if (var$7 == 1 && !var$5.$isServer)
                                    break b;
                            }
                            try {
                                $var1 = $var1.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var1);
                        }
                        var$1 = var$1 + 1 | 0;
                    }
                } else {
                    $var1 = new jl_IndexOutOfBoundsException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var1, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var1 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var1);
        }
        d: {
            e: while (true) {
                while (true) {
                    var$1 = var$1 + 1 | 0;
                    $var1 = $this.$playerEntityList;
                    var$3 = $rt_compare(var$1, $var1.$size0);
                    if (var$3 >= 0)
                        break e;
                    if (var$1 < 0)
                        break d;
                    if (var$3 >= 0)
                        break d;
                    $var1 = $var1.$array.data[var$1].$playerNetServerHandler;
                    if (!var$6)
                        break;
                    var$7 = $var1.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        continue;
                    if (var$7 != 1)
                        break;
                    if (var$5.$isServer)
                        break;
                }
                try {
                    $var1 = $var1.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var1);
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_ServerConfigurationManager_isPlayerOpped = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$ops;
    var$3 = jl_String_trim($par1Str);
    var$4 = var$3.$nativeString.toLowerCase();
    if (var$4 !== var$3.$nativeString)
        var$3 = jl_String__init_0(var$4);
    a: {
        if (!ju_HashSet_contains(var$2, var$3)) {
            var$2 = $this.$mcServer1;
            var$5 = var$2.$serverOwner === null ? 0 : 1;
            if (!(var$5 && var$2.$worldServers.data[0].$worldInfo.$areCommandsAllowed() && jl_String_equalsIgnoreCase($this.$mcServer1.$serverOwner, $par1Str)) && !$this.$commandsAllowedForAll) {
                var$5 = 0;
                break a;
            }
        }
        var$5 = 1;
    }
    return var$5;
},
nms_ServerConfigurationManager_findPlayers = ($this, $par1ChunkCoordinates, $par2, $par3, $par4, $par5, $par6, $par7, $par8Map, $par9Str, $par10Str) => {
    let $var11, $var12, $var13, $var14, $var15, var$16, var$17, $var18, var$19, var$20, $var16, $var17, $var19, var$24, var$25, var$26, var$27;
    if ($this.$playerEntityList.$size0 ? 0 : 1)
        return null;
    $var11 = new ju_ArrayList;
    $var11.$array = $rt_createArray(jl_Object, 10);
    $var12 = $par4 >= 0 ? 0 : 1;
    $var13 = $rt_imul($par2, $par2);
    $var14 = $rt_imul($par3, $par3);
    if ($par4 < 0)
        $par4 =  -$par4 | 0;
    $var15 = 0;
    var$16 = $var13;
    var$17 = $var14;
    while (true) {
        $var18 = $this.$playerEntityList;
        $var13 = $rt_compare($var15, $var18.$size0);
        if ($var13 >= 0) {
            a: {
                if ($par1ChunkCoordinates !== null) {
                    $par8Map = new nms_PlayerPositionComparator;
                    $par8Map.$theChunkCoordinates = $par1ChunkCoordinates;
                    var$19 = $rt_createArray(jl_Object, $var11.$size0);
                    var$20 = var$19.data;
                    ju_AbstractCollection_toArray($var11, var$19);
                    ju_Arrays_sort(var$19, $par8Map);
                    $par2 = 0;
                    $par3 = var$20.length;
                    while (true) {
                        if ($par2 >= $par3)
                            break a;
                        $par1ChunkCoordinates = var$20[$par2];
                        if ($par2 < 0)
                            break;
                        if ($par2 >= $var11.$size0)
                            break;
                        $var11.$array.data[$par2] = $par1ChunkCoordinates;
                        $par2 = $par2 + 1 | 0;
                    }
                    $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                    $par1ChunkCoordinates.$writableStackTrace = 1;
                    $rt_throw($par1ChunkCoordinates);
                }
            }
            if ($var12)
                b: {
                    if ($rt_isInstance($var11, ju_RandomAccess)) {
                        $par2 = 0;
                        $var13 = $var11.$size0;
                        $par3 = ($par2 + $var13 | 0) / 2 | 0;
                        $par5 = $var13 - 1 | 0;
                        c: {
                            d: {
                                e: {
                                    while (true) {
                                        if ($par2 >= $par3)
                                            break b;
                                        if ($par2 < 0)
                                            break c;
                                        $par7 = $rt_compare($par2, $var13);
                                        if ($par7 >= 0)
                                            break c;
                                        var$19 = $var11.$array.data;
                                        $par8Map = var$19[$par2];
                                        if ($par5 < 0)
                                            break d;
                                        $par6 = $rt_compare($par5, $var13);
                                        if ($par6 >= 0)
                                            break d;
                                        $par1ChunkCoordinates = var$19[$par5];
                                        if ($par2 < 0)
                                            break e;
                                        if ($par7 >= 0)
                                            break e;
                                        var$19[$par2] = $par1ChunkCoordinates;
                                        if ($par5 < 0)
                                            break;
                                        if ($par6 >= 0)
                                            break;
                                        var$19[$par5] = $par8Map;
                                        $par2 = $par2 + 1 | 0;
                                        $par5 = $par5 + (-1) | 0;
                                    }
                                    $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                                    $par1ChunkCoordinates.$writableStackTrace = 1;
                                    $rt_throw($par1ChunkCoordinates);
                                }
                                $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                                $par1ChunkCoordinates.$suppressionEnabled = 1;
                                $par1ChunkCoordinates.$writableStackTrace = 1;
                                $rt_throw($par1ChunkCoordinates);
                            }
                            $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                            $par1ChunkCoordinates.$suppressionEnabled = 1;
                            $par1ChunkCoordinates.$writableStackTrace = 1;
                            $rt_throw($par1ChunkCoordinates);
                        }
                        $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                        $par1ChunkCoordinates.$suppressionEnabled = 1;
                        $par1ChunkCoordinates.$writableStackTrace = 1;
                        $rt_throw($par1ChunkCoordinates);
                    }
                    $par8Map = new ju_ArrayList;
                    $par2 = $var11.$size0;
                    if ($par2 < 0) {
                        $par1ChunkCoordinates = new jl_IllegalArgumentException;
                        $par1ChunkCoordinates.$suppressionEnabled = 1;
                        $par1ChunkCoordinates.$writableStackTrace = 1;
                        $rt_throw($par1ChunkCoordinates);
                    }
                    $par8Map.$array = $rt_createArray(jl_Object, $par2);
                    $par6 = 0;
                    $par2 = $var11.$modCount;
                    $var11.$size();
                    $par5 = 0;
                    while (true) {
                        var$19 = $par8Map.$array.data;
                        $var13 = var$19.length;
                        if ($par5 >= $var13) {
                            $par8Map.$size0 = $var13;
                            $par2 = 0;
                            $par3 = ($par2 + $var13 | 0) / 2 | 0;
                            $par5 = $var13 - 1 | 0;
                            f: {
                                g: {
                                    h: {
                                        while (true) {
                                            if ($par2 >= $par3) {
                                                var$19 = $var11.$array;
                                                $par2 = 0;
                                                $par3 = $var11.$size0;
                                                $par1ChunkCoordinates = null;
                                                if ($par2 > $par3) {
                                                    $par1ChunkCoordinates = new jl_IllegalArgumentException;
                                                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                                                    $par1ChunkCoordinates.$writableStackTrace = 1;
                                                    $rt_throw($par1ChunkCoordinates);
                                                }
                                                while ($par2 < $par3) {
                                                    var$20 = var$19.data;
                                                    $par5 = $par2 + 1 | 0;
                                                    var$20[$par2] = $par1ChunkCoordinates;
                                                    $par2 = $par5;
                                                }
                                                $var11.$size0 = 0;
                                                $var11.$modCount = $var11.$modCount + 1 | 0;
                                                $par3 = 0;
                                                $par6 = $par8Map.$modCount;
                                                $par7 = $par8Map.$size();
                                                while (true) {
                                                    if (!($par3 >= $par7 ? 0 : 1))
                                                        break b;
                                                    if ($par6 < $par8Map.$modCount)
                                                        break;
                                                    $par5 = $par3 + 1 | 0;
                                                    $par1ChunkCoordinates = $par8Map.$get($par3);
                                                    ju_ArrayList_ensureCapacity($var11, $var11.$size0 + 1 | 0);
                                                    var$19 = $var11.$array.data;
                                                    $par3 = $var11.$size0;
                                                    $var11.$size0 = $par3 + 1 | 0;
                                                    var$19[$par3] = $par1ChunkCoordinates;
                                                    $var11.$modCount = $var11.$modCount + 1 | 0;
                                                    $par3 = $par5;
                                                }
                                                $par1ChunkCoordinates = new ju_ConcurrentModificationException;
                                                $par1ChunkCoordinates.$suppressionEnabled = 1;
                                                $par1ChunkCoordinates.$writableStackTrace = 1;
                                                $rt_throw($par1ChunkCoordinates);
                                            }
                                            if ($par2 < 0)
                                                break f;
                                            $par7 = $rt_compare($par2, $var13);
                                            if ($par7 >= 0)
                                                break f;
                                            $par9Str = var$19[$par2];
                                            if ($par5 < 0)
                                                break g;
                                            $par6 = $rt_compare($par5, $var13);
                                            if ($par6 >= 0)
                                                break g;
                                            $par1ChunkCoordinates = var$19[$par5];
                                            if ($par2 < 0)
                                                break h;
                                            if ($par7 >= 0)
                                                break h;
                                            var$19[$par2] = $par1ChunkCoordinates;
                                            if ($par5 < 0)
                                                break;
                                            if ($par6 >= 0)
                                                break;
                                            var$19[$par5] = $par9Str;
                                            $par2 = $par2 + 1 | 0;
                                            $par5 = $par5 + (-1) | 0;
                                        }
                                        $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                                        $par1ChunkCoordinates.$suppressionEnabled = 1;
                                        $par1ChunkCoordinates.$writableStackTrace = 1;
                                        $rt_throw($par1ChunkCoordinates);
                                    }
                                    $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                                    $par1ChunkCoordinates.$writableStackTrace = 1;
                                    $rt_throw($par1ChunkCoordinates);
                                }
                                $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                                $par1ChunkCoordinates.$suppressionEnabled = 1;
                                $par1ChunkCoordinates.$writableStackTrace = 1;
                                $rt_throw($par1ChunkCoordinates);
                            }
                            $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                            $par1ChunkCoordinates.$suppressionEnabled = 1;
                            $par1ChunkCoordinates.$writableStackTrace = 1;
                            $rt_throw($par1ChunkCoordinates);
                        }
                        if ($par2 < $var11.$modCount)
                            break;
                        $par3 = $par6 + 1 | 0;
                        var$19[$par5] = $var11.$get($par6);
                        $par5 = $par5 + 1 | 0;
                        $par6 = $par3;
                    }
                    $par1ChunkCoordinates = new ju_ConcurrentModificationException;
                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                    $par1ChunkCoordinates.$writableStackTrace = 1;
                    $rt_throw($par1ChunkCoordinates);
                }
            if ($par4 <= 0)
                $par1ChunkCoordinates = $var11;
            else {
                $par5 = $var11.$size0;
                if ($par4 >= $par5)
                    $par4 = $par5;
                if (0 > $par4) {
                    $par1ChunkCoordinates = new jl_IllegalArgumentException;
                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                    $par1ChunkCoordinates.$writableStackTrace = 1;
                    $rt_throw($par1ChunkCoordinates);
                }
                if ($par4 > $par5) {
                    $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
                    $par1ChunkCoordinates.$suppressionEnabled = 1;
                    $par1ChunkCoordinates.$writableStackTrace = 1;
                    $rt_throw($par1ChunkCoordinates);
                }
                if (!$rt_isInstance($var11, ju_RandomAccess)) {
                    $par1ChunkCoordinates = new ju_AbstractList$SubAbstractList;
                    $par1ChunkCoordinates.$fullList = $var11;
                    $par1ChunkCoordinates.$modCount = $var11.$modCount;
                    $par1ChunkCoordinates.$offset = 0;
                    $par1ChunkCoordinates.$size4 = $par4 - 0 | 0;
                } else {
                    $par1ChunkCoordinates = new ju_AbstractList$SubAbstractListRandomAccess;
                    $par1ChunkCoordinates.$fullList = $var11;
                    $par1ChunkCoordinates.$modCount = $var11.$modCount;
                    $par1ChunkCoordinates.$offset = 0;
                    $par1ChunkCoordinates.$size4 = $par4 - 0 | 0;
                }
            }
            return $par1ChunkCoordinates;
        }
        if ($var15 < 0)
            break;
        if ($var13 >= 0)
            break;
        i: {
            $var16 = $var18.$array.data[$var15];
            if ($par9Str !== null) {
                $var17 = $par9Str === $rt_s(387) ? 1 : jl_String_startsWith($par9Str, $rt_s(387), 0);
                if ($var17)
                    $par9Str = jl_String_substring($par9Str, 1, $par9Str.$nativeString.length);
                if ($var17 == jl_String_equalsIgnoreCase($par9Str, $var16.$username))
                    break i;
            }
            if ($par10Str !== null) {
                $var17 = $par10Str === $rt_s(387) ? 1 : jl_String_startsWith($par10Str, $rt_s(387), 0);
                if ($var17)
                    $par10Str = jl_String_substring($par10Str, 1, $par10Str.$nativeString.length);
                $var18 = nms_Scoreboard_getPlayersTeam($var16.$worldObj.$worldScoreboard, $var16.$username);
                $var19 = $var18 === null ? $rt_s(3) : $var18.$field_96675_b;
                if ($var17 == jl_String_equalsIgnoreCase($par10Str, $var19))
                    break i;
            }
            if ($par1ChunkCoordinates !== null && !($par2 <= 0 && $par3 <= 0)) {
                $var18 = nms_EntityPlayerMP_getPlayerCoordinates($var16);
                $var14 = $var18.$posX0;
                $var17 = $var18.$posY0;
                var$24 = $var18.$posZ0;
                var$25 = $par1ChunkCoordinates.$posX0 - $var14 | 0;
                var$26 = $par1ChunkCoordinates.$posY0 - $var17 | 0;
                var$27 = $par1ChunkCoordinates.$posZ0 - var$24 | 0;
                var$25 = var$25 * var$25 + var$26 * var$26 + var$27 * var$27;
                if ($par2 > 0 && var$25 < var$16)
                    break i;
                if ($par3 > 0 && var$25 > var$17)
                    break i;
            }
            if (nms_ServerConfigurationManager_func_96457_a($this, $var16, $par8Map) && !($par5 != nms_EnumGameType_NOT_SET.$id3 && $par5 != $var16.$theItemInWorldManager.$gameType.$id3) && !($par6 > 0 && $var16.$experienceLevel < $par6) && $var16.$experienceLevel <= $par7) {
                ju_ArrayList_ensureCapacity($var11, $var11.$size0 + 1 | 0);
                var$19 = $var11.$array.data;
                $var13 = $var11.$size0;
                $var11.$size0 = $var13 + 1 | 0;
                var$19[$var13] = $var16;
                $var11.$modCount = $var11.$modCount + 1 | 0;
            }
        }
        $var15 = $var15 + 1 | 0;
    }
    $par1ChunkCoordinates = new jl_IndexOutOfBoundsException;
    $par1ChunkCoordinates.$suppressionEnabled = 1;
    $par1ChunkCoordinates.$writableStackTrace = 1;
    $rt_throw($par1ChunkCoordinates);
},
nms_ServerConfigurationManager_func_96457_a = ($this, $par1EntityPlayer, $par2Map) => {
    let $var3, var$4, $var5, $var6, $var8, $var10;
    if ($par2Map !== null && $par2Map.$elementCount) {
        $var3 = new ju_HashMap$EntryIterator;
        $var3.$associatedMap = $par2Map;
        $var3.$expectedModCount = $par2Map.$modCount1;
        $var3.$futureEntry0 = null;
        while (ju_HashMap$AbstractMapIterator_hasNext($var3)) {
            ju_HashMap$AbstractMapIterator_makeNext($var3);
            var$4 = $var3.$currentEntry0;
            $var5 = var$4.$key;
            $var6 = 0;
            if (jl_String_endsWith($var5, $rt_s(388)) && $var5.$nativeString.length > 4) {
                $var6 = 1;
                $var5 = jl_String_substring($var5, 0, $var5.$nativeString.length - 4 | 0);
            }
            $var8 = nms_Scoreboard_getObjective($par1EntityPlayer.$worldObj.$worldScoreboard, $var5);
            if ($var8 === null)
                return 0;
            $var10 = $rt_compare((nms_Scoreboard_func_96529_a($par1EntityPlayer.$worldObj.$worldScoreboard, $par1EntityPlayer.$username, $var8)).$field_96655_e, var$4.$value0.$value);
            if ($var10 < 0 && $var6)
                return 0;
            if ($var10 <= 0)
                continue;
            if ($var6)
                continue;
            else
                return 0;
        }
        return 1;
    }
    return 1;
},
nms_ServerConfigurationManager_sendToAllNearExcept = ($this, $par1EntityPlayer, $par2, $par4, $par6, $par8, $par10, $par11Packet) => {
    let $var12, var$9, var$10, var$11, $var13, var$13, $var14, $var16, $var18, var$17, var$18, var$19, var$20, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();var$13 = $thread.pop();$var13 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var12 = $thread.pop();$par11Packet = $thread.pop();$par10 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var12 = 0;
        var$9 = $par8 * $par8;
        var$10 = $par11Packet instanceof nms_Packet3Chat;
        var$11 = $par11Packet;
        a: {
            while (true) {
                $var13 = $this.$playerEntityList;
                var$13 = $rt_compare($var12, $var13.$size0);
                if (var$13 >= 0)
                    break;
                if ($var12 < 0)
                    break a;
                if (var$13 >= 0)
                    break a;
                $var13 = $var13.$array.data[$var12];
                if ($var13 !== $par1EntityPlayer && $var13.$dimension == $par10) {
                    $var14 = $par2 - $var13.$posX;
                    $var16 = $par4 - $var13.$posY;
                    $var18 = $par6 - $var13.$posZ;
                    if ($var14 * $var14 + $var16 * $var16 + $var18 * $var18 < var$9)
                        b: {
                            $var13 = $var13.$playerNetServerHandler;
                            if (var$10) {
                                var$13 = $var13.$playerEntity.$chatVisibility;
                                if (var$13 == 2)
                                    break b;
                                if (var$13 == 1 && !var$11.$isServer)
                                    break b;
                            }
                            try {
                                $var13 = $var13.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$17 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$18 = new otcic_JSStderrPrintStream;
                                $var13 = new ji_ByteArrayOutputStream;
                                jl_Object__init_($var13);
                                $var13.$buf = $rt_createByteArray(32);
                                ji_OutputStream__init_(var$18);
                                var$18.$out0 = $var13;
                                $var13 = new jl_StringBuilder;
                                jl_AbstractStringBuilder__init_($var13);
                                var$18.$sb = $var13;
                                var$18.$buffer0 = $rt_createCharArray(32);
                                var$18.$autoFlush = 0;
                                var$18.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$18;
                            }
                            jl_Throwable_printStackTrace(var$17, jl_System_errCache);
                        }
                }
                $var12 = $var12 + 1 | 0;
            }
            return;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var13, $par11Packet);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$17 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var13 = jl_System_errCache;
            if ($var13 === null) {
                var$18 = new otcic_JSStderrPrintStream;
                $var13 = new ji_ByteArrayOutputStream;
                var$13 = 32;
                jl_Object__init_($var13);
                var$19 = $rt_createByteArray(var$13);
                $var13.$buf = var$19;
                var$13 = 0;
                ji_OutputStream__init_(var$18);
                var$18.$out0 = $var13;
                $var13 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var13);
                var$18.$sb = $var13;
                var$20 = 32;
                var$19 = $rt_createCharArray(var$20);
                var$18.$buffer0 = var$19;
                var$18.$autoFlush = var$13;
                $var13 = jnci_UTF8Charset_INSTANCE;
                var$18.$charset = $var13;
                jl_System_errCache = var$18;
            }
            $var13 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$17, $var13);
        }
        b: {
            c: while (true) {
                while (true) {
                    while (true) {
                        $var12 = $var12 + 1 | 0;
                        $var13 = $this.$playerEntityList;
                        var$13 = $rt_compare($var12, $var13.$size0);
                        if (var$13 >= 0)
                            break c;
                        if ($var12 < 0)
                            break b;
                        if (var$13 >= 0)
                            break b;
                        $var13 = $var13.$array.data[$var12];
                        if ($var13 === $par1EntityPlayer)
                            continue;
                        if ($var13.$dimension != $par10)
                            continue;
                        $var14 = $par2 - $var13.$posX;
                        $var16 = $par4 - $var13.$posY;
                        $var18 = $par6 - $var13.$posZ;
                        if ($var14 * $var14 + $var16 * $var16 + $var18 * $var18 >= var$9)
                            continue;
                        else
                            break;
                    }
                    $var13 = $var13.$playerNetServerHandler;
                    if (!var$10)
                        break;
                    var$13 = $var13.$playerEntity.$chatVisibility;
                    if (var$13 == 2)
                        continue;
                    if (var$13 != 1)
                        break;
                    if (var$11.$isServer)
                        break;
                }
                try {
                    $var13 = $var13.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$17 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $var13 = jl_System_errCache;
                if ($var13 === null) {
                    var$18 = new otcic_JSStderrPrintStream;
                    $var13 = new ji_ByteArrayOutputStream;
                    var$13 = 32;
                    jl_Object__init_($var13);
                    var$19 = $rt_createByteArray(var$13);
                    $var13.$buf = var$19;
                    var$13 = 0;
                    ji_OutputStream__init_(var$18);
                    var$18.$out0 = $var13;
                    $var13 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var13);
                    var$18.$sb = $var13;
                    var$20 = 32;
                    var$19 = $rt_createCharArray(var$20);
                    var$18.$buffer0 = var$19;
                    var$18.$autoFlush = var$13;
                    $var13 = jnci_UTF8Charset_INSTANCE;
                    var$18.$charset = $var13;
                    jl_System_errCache = var$18;
                }
                $var13 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$17, $var13);
            }
            return;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $par4, $par6, $par8, $par10, $par11Packet, $var12, var$9, var$10, var$11, $var13, var$13, $var14, $var16, $var18, var$17, var$18, var$19, var$20, $ptr);
},
nms_ServerConfigurationManager_getCurrentPlayerCount = $this => {
    return $this.$playerEntityList.$size0;
},
nms_ServerConfigurationManager_getMaxPlayers = $this => {
    return $this.$maxPlayers;
},
nms_ServerConfigurationManager__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = new jt_SimpleDateFormat;
    ju_Locale_$callClinit();
    var$2 = ju_Locale_defaultLocale;
    var$3 = new jt_DateFormatSymbols;
    var$3.$locale = var$2;
    var$1.$calendar0 = ju_GregorianCalendar__init_0();
    var$3 = jt_DateFormatSymbols_clone(var$3);
    var$1.$dateFormatSymbols = var$3;
    var$4 = ju_Locale_defaultLocale;
    var$1.$locale0 = var$4;
    var$1.$pattern2 = $rt_s(389);
    var$5 = new jt_SimpleDatePatternParser;
    var$6 = new ju_ArrayList;
    ju_AbstractList__init_(var$6);
    var$6.$array = $rt_createArray(jl_Object, 10);
    var$5.$elements = var$6;
    var$5.$symbols0 = var$3;
    var$5.$locale4 = var$4;
    jt_SimpleDatePatternParser_parsePattern(var$5, var$1.$pattern2);
    var$1.$elements0 = ju_AbstractCollection_toArray(var$5.$elements, $rt_createArray(jt_DateFormatElement, 0));
    var$1.$locale0 = var$2;
    nms_ServerConfigurationManager_dateFormat = var$1;
};
function nles_EAGPlayerList() {
    nms_ServerConfigurationManager.call(this);
    this.$hostPlayerNBT = null;
}
let jl_IndexOutOfBoundsException = $rt_classWithoutFields(jl_RuntimeException),
jl_IndexOutOfBoundsException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_IndexOutOfBoundsException__init_1 = () => {
    let var_0 = new jl_IndexOutOfBoundsException();
    jl_IndexOutOfBoundsException__init_(var_0);
    return var_0;
},
jl_IndexOutOfBoundsException__init_2 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
jl_IndexOutOfBoundsException__init_0 = var_0 => {
    let var_1 = new jl_IndexOutOfBoundsException();
    jl_IndexOutOfBoundsException__init_2(var_1, var_0);
    return var_1;
},
jlr_Array = $rt_classWithoutFields(),
jlr_Array__init_ = $this => {
    return;
},
jlr_Array__init_0 = () => {
    let var_0 = new jlr_Array();
    jlr_Array__init_(var_0);
    return var_0;
},
jlr_Array_getLength = var$1 => {
    if (var$1 === null || var$1.constructor.$meta.item === 'undefined') {
        $rt_throw(jl_IllegalArgumentException__init_());
    }
    return var$1.data.length;
},
jlr_Array_newInstanceImpl = (var$1, var$2) => {
    if (var$1.$meta.primitive) {
        switch (var$1) {
        }
        ;
    }
    return $rt_createArray(var$1, var$2);
},
jl_NullPointerException = $rt_classWithoutFields(jl_RuntimeException),
jl_NullPointerException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_NullPointerException__init_0 = () => {
    let var_0 = new jl_NullPointerException();
    jl_NullPointerException__init_(var_0);
    return var_0;
},
jl_ArrayStoreException = $rt_classWithoutFields(jl_RuntimeException),
jl_ArrayStoreException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_ArrayStoreException__init_0 = () => {
    let var_0 = new jl_ArrayStoreException();
    jl_ArrayStoreException__init_(var_0);
    return var_0;
};
function nlesi_IPCPacket15ThrowException() {
    let a = this; jl_Object.call(a);
    a.$errorMessage = null;
    a.$stackTrace = null;
}
let nlesi_IPCPacket15ThrowException__init_ = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$stackTrace = var$1;
},
nlesi_IPCPacket15ThrowException__init_0 = () => {
    let var_0 = new nlesi_IPCPacket15ThrowException();
    nlesi_IPCPacket15ThrowException__init_(var_0);
    return var_0;
},
nlesi_IPCPacket15ThrowException_deserialize = ($this, $bin) => {
    let $len, var$3, var$4, $i, var$6, var$7;
    $this.$stackTrace.$clear();
    $len = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray($len);
    var$4 = $rt_createCharArray($len);
    ji_DataInputStream_readFully($bin, var$3, 0, $len);
    $this.$errorMessage = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, $len);
    $len = ji_DataInputStream_readInt($bin);
    $i = 0;
    while ($i < $len) {
        var$6 = $this.$stackTrace;
        var$7 = ji_DataInputStream_readUnsignedShort($bin);
        var$3 = $rt_createByteArray(var$7);
        var$4 = $rt_createCharArray(var$7);
        ji_DataInputStream_readFully($bin, var$3, 0, var$7);
        var$6.$add0(ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$7));
        $i = $i + 1 | 0;
    }
},
nlesi_IPCPacket15ThrowException_serialize = ($this, $bin) => {
    let var$2, var$3, var$4, var$5, var$6, $str;
    var$2 = $this.$errorMessage;
    var$3 = ji_DataOutputStream_countUTFBytes($bin, var$2);
    if (Long_gt(var$3, Long_fromInt(65535))) {
        $bin = new ji_IOException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $bin.$message = $rt_s(127);
        $rt_throw($bin);
    }
    var$4 = Long_lo(var$3);
    var$5 = $rt_createByteArray(var$4 + 2 | 0);
    var$6 = var$5.data;
    var$6[0] = var$4 >> 8 << 24 >> 24;
    var$6[1] = var$4 << 24 >> 24;
    var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($bin, var$2, var$5, 2);
    $bin.$out0.$write1(var$5, 0, var$4);
    $bin.$written = $bin.$written + var$4 | 0;
    ji_DataOutputStream_writeInt($bin, $this.$stackTrace.$size());
    var$2 = $this.$stackTrace.$iterator();
    while (var$2.$hasNext()) {
        $str = var$2.$next();
        var$3 = ji_DataOutputStream_countUTFBytes($bin, $str);
        if (Long_gt(var$3, Long_fromInt(65535))) {
            $bin = new ji_IOException;
            $bin.$suppressionEnabled = 1;
            $bin.$writableStackTrace = 1;
            $bin.$message = $rt_s(127);
            $rt_throw($bin);
        }
        var$4 = Long_lo(var$3);
        var$5 = $rt_createByteArray(var$4 + 2 | 0);
        var$6 = var$5.data;
        var$6[0] = var$4 >> 8 << 24 >> 24;
        var$6[1] = var$4 << 24 >> 24;
        var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($bin, $str, var$5, 2);
        $bin.$out0.$write1(var$5, 0, var$4);
        $bin.$written = $bin.$written + var$4 | 0;
    }
},
nlesi_IPCPacket15ThrowException_id = $this => {
    return 21;
},
nlesi_IPCPacket15ThrowException_size = $this => {
    let $len, var$2;
    $len = 4 + nlesi_IPCPacketBase_strLen($this.$errorMessage) | 0;
    var$2 = $this.$stackTrace.$iterator();
    while (var$2.$hasNext()) {
        $len = $len + nlesi_IPCPacketBase_strLen(var$2.$next()) | 0;
    }
    return $len;
};
function jl_StackTraceElement() {
    let a = this; jl_Object.call(a);
    a.$declaringClass = null;
    a.$methodName = null;
    a.$fileName0 = null;
    a.$lineNumber = 0;
}
let jl_StackTraceElement_toString = $this => {
    let $sb, $index, var$3, var$4, var$5, var$6, var$7;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    $index = $this.$declaringClass.$lastIndexOf2(46);
    var$3 = $this.$declaringClass.$substring0($index + 1 | 0);
    jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$3);
    $index = $sb.$length0;
    jl_AbstractStringBuilder_insertSpace($sb, $index, $index + 1 | 0);
    $sb.$buffer.data[$index] = 46;
    var$3 = $this.$methodName;
    jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$3);
    $index = $sb.$length0;
    jl_AbstractStringBuilder_insertSpace($sb, $index, $index + 1 | 0);
    $sb.$buffer.data[$index] = 40;
    var$3 = $this.$fileName0;
    if (var$3 === null)
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(390));
    else {
        jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$3);
        $index = $sb.$length0;
        jl_AbstractStringBuilder_insertSpace($sb, $index, $index + 1 | 0);
        $sb.$buffer.data[$index] = 58;
        var$4 = $this.$lineNumber;
        jl_AbstractStringBuilder_insert0($sb, $sb.$length0, var$4, 10);
    }
    jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(391));
    var$3 = new jl_String;
    var$5 = $sb.$buffer;
    var$6 = var$5.data;
    $index = $sb.$length0;
    var$7 = var$6.length;
    if ($index >= 0 && $index <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, $index);
        return var$3;
    }
    $sb = new jl_IndexOutOfBoundsException;
    $sb.$suppressionEnabled = 1;
    $sb.$writableStackTrace = 1;
    $rt_throw($sb);
},
oti_AsyncCallback = $rt_classWithoutFields(0);
function otpp_AsyncCallbackWrapper() {
    jl_Object.call(this);
    this.$realAsyncCallback = null;
}
let otpp_AsyncCallbackWrapper_create = $realAsyncCallback => {
    let var$2;
    var$2 = new otpp_AsyncCallbackWrapper;
    var$2.$realAsyncCallback = $realAsyncCallback;
    return var$2;
},
otpp_AsyncCallbackWrapper_complete = ($this, $result) => {
    $this.$realAsyncCallback.$complete($result);
},
otpp_AsyncCallbackWrapper_error = ($this, $e) => {
    $this.$realAsyncCallback.$error($e);
},
otp_PlatformRunnable = $rt_classWithoutFields(0);
function nles_SysUtil$DumbSleepHandler() {
    jl_Object.call(this);
    this.$callback = null;
}
let nles_SysUtil$DumbSleepHandler_run = $this => {
    let var$1, var$2;
    var$1 = $this.$callback;
    var$2 = null;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_SysUtil$immediateContinueTeaVM$lambda$_9_0() {
    jl_Object.call(this);
    this.$_01 = null;
}
let nles_SysUtil$immediateContinueTeaVM$lambda$_9_0_run = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$_01;
    nles_SysUtil_$callClinit();
    var$2 = null;
    var$1.$realAsyncCallback.$complete(var$2);
},
otjb_TimerHandler = $rt_classWithoutFields(0);
function nles_SysUtil$immediateContinueTeaVM$lambda$_9_1() {
    jl_Object.call(this);
    this.$_02 = null;
}
let nles_SysUtil$immediateContinueTeaVM$lambda$_9_1_onTimer$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$_02;
    nles_SysUtil_$callClinit();
    var$2 = null;
    var$1.$realAsyncCallback.$complete(var$2);
},
jl_IllegalArgumentException = $rt_classWithoutFields(jl_RuntimeException),
jl_IllegalArgumentException__init_0 = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_IllegalArgumentException__init_ = () => {
    let var_0 = new jl_IllegalArgumentException();
    jl_IllegalArgumentException__init_0(var_0);
    return var_0;
},
jl_IllegalArgumentException__init_2 = ($this, $message) => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $message;
},
jl_IllegalArgumentException__init_1 = var_0 => {
    let var_1 = new jl_IllegalArgumentException();
    jl_IllegalArgumentException__init_2(var_1, var_0);
    return var_1;
},
otp_PlatformQueue = $rt_classWithoutFields();
function jl_Object$monitorExit$lambda$_8_0() {
    jl_Object.call(this);
    this.$_00 = null;
}
let jl_Object$monitorExit$lambda$_8_0_run = var$0 => {
    jl_Object_waitForOtherThreads(var$0.$_00);
};
function nles_VirtualFilesystem$VFSHandle() {
    let a = this; jl_Object.call(a);
    a.$failedInit0 = 0;
    a.$failedLocked0 = 0;
    a.$failedError0 = null;
    a.$vfs = null;
}
let ju_SequencedMap = $rt_classWithoutFields(0),
ju_SortedMap = $rt_classWithoutFields(0),
ju_NavigableMap = $rt_classWithoutFields(0);
function ju_TreeMap() {
    let a = this; ju_AbstractMap.call(a);
    a.$root = null;
    a.$comparator = null;
    a.$originalComparator = null;
    a.$modCount2 = 0;
    a.$cachedEntrySet = null;
}
let ju_TreeMap__init_ = $this => {
    $this.$originalComparator = null;
    $this.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
},
ju_TreeMap__init_0 = () => {
    let var_0 = new ju_TreeMap();
    ju_TreeMap__init_(var_0);
    return var_0;
},
ju_TreeMap_put = ($this, $key, $value) => {
    let $node, $old, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $node = $this.$root;
    if ($node === null) {
        $node = new ju_TreeMap$TreeNode;
        $old = null;
        $node.$key0 = $key;
        $node.$value2 = $old;
        $node.$height = 1;
        $node.$size1 = 1;
    } else {
        $old = $node.$key0;
        var$5 = $key;
        var$6 = var$5.$compareTo($old);
        if (var$6) {
            if (var$6 < 0)
                $node.$left = ju_TreeMap_getOrCreateNode($this, $node.$left, $key);
            else {
                var$7 = $node.$right;
                if (var$7 === null) {
                    var$7 = new ju_TreeMap$TreeNode;
                    $old = null;
                    var$7.$key0 = $key;
                    var$7.$value2 = $old;
                    var$7.$height = 1;
                    var$7.$size1 = 1;
                } else {
                    var$6 = var$5.$compareTo(var$7.$key0);
                    if (var$6) {
                        if (var$6 < 0) {
                            $old = var$7.$left;
                            if ($old === null) {
                                $old = new ju_TreeMap$TreeNode;
                                var$8 = null;
                                $old.$key0 = $key;
                                $old.$value2 = var$8;
                                $old.$height = 1;
                                $old.$size1 = 1;
                            } else {
                                var$6 = var$5.$compareTo($old.$key0);
                                if (var$6) {
                                    if (var$6 < 0) {
                                        var$8 = $old.$left;
                                        if (var$8 === null) {
                                            var$8 = new ju_TreeMap$TreeNode;
                                            var$9 = null;
                                            var$8.$key0 = $key;
                                            var$8.$value2 = var$9;
                                            var$8.$height = 1;
                                            var$8.$size1 = 1;
                                        } else {
                                            var$6 = var$5.$compareTo(var$8.$key0);
                                            if (var$6) {
                                                if (var$6 < 0) {
                                                    var$9 = var$8.$left;
                                                    if (var$9 === null) {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        var$9.$key0 = $key;
                                                        var$9.$value2 = var$10;
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$9.$key0);
                                                        if (var$6) {
                                                            if (var$6 < 0) {
                                                                var$10 = var$9.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$left = var$10;
                                                            } else {
                                                                var$10 = var$9.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$right = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    }
                                                    var$8.$left = var$9;
                                                } else {
                                                    var$9 = var$8.$right;
                                                    if (var$9 === null) {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        var$9.$key0 = $key;
                                                        var$9.$value2 = var$10;
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$9.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$10 = var$9.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$right = var$10;
                                                            } else {
                                                                var$10 = var$9.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    }
                                                    var$8.$right = var$9;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$8);
                                                var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                            }
                                        }
                                        $old.$left = var$8;
                                    } else {
                                        var$8 = $old.$right;
                                        if (var$8 === null) {
                                            var$8 = new ju_TreeMap$TreeNode;
                                            var$9 = null;
                                            var$8.$key0 = $key;
                                            var$8.$value2 = var$9;
                                            var$8.$height = 1;
                                            var$8.$size1 = 1;
                                        } else {
                                            var$6 = var$5.$compareTo(var$8.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$12 = var$8.$right;
                                                    if (var$12 === null) {
                                                        var$12 = new ju_TreeMap$TreeNode;
                                                        var$9 = null;
                                                        var$12.$key0 = $key;
                                                        var$12.$value2 = var$9;
                                                        var$12.$height = 1;
                                                        var$12.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$12.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$9 = var$12.$right;
                                                                if (var$9 === null) {
                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                    var$10 = null;
                                                                    jl_Object__init_(var$9);
                                                                    var$9.$key0 = $key;
                                                                    var$9.$value2 = var$10;
                                                                    var$9.$height = 1;
                                                                    var$9.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$9.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$10 = var$9.$right;
                                                                            if (var$10 === null) {
                                                                                var$10 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$10, $key, null);
                                                                                var$10.$height = 1;
                                                                                var$10.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$10.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$11 = var$10.$right;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$right = var$11;
                                                                                    } else {
                                                                                        var$11 = var$10.$left;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$left = var$11;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$9.$right = var$10;
                                                                        } else {
                                                                            var$10 = var$9.$left;
                                                                            if (var$10 === null) {
                                                                                var$10 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$10, $key, null);
                                                                                var$10.$height = 1;
                                                                                var$10.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$10.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$11 = var$10.$right;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$right = var$11;
                                                                                    } else {
                                                                                        var$11 = var$10.$left;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$left = var$11;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$9.$left = var$10;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$12.$right = var$9;
                                                            } else {
                                                                var$9 = var$12.$left;
                                                                if (var$9 === null) {
                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                    var$10 = null;
                                                                    jl_Object__init_(var$9);
                                                                    var$9.$key0 = $key;
                                                                    var$9.$value2 = var$10;
                                                                    var$9.$height = 1;
                                                                    var$9.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$9.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$10 = var$9.$right;
                                                                            if (var$10 === null) {
                                                                                var$10 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$10, $key, null);
                                                                                var$10.$height = 1;
                                                                                var$10.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$10.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$11 = var$10.$right;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$right = var$11;
                                                                                    } else {
                                                                                        var$11 = var$10.$left;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$left = var$11;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$9.$right = var$10;
                                                                        } else {
                                                                            var$10 = var$9.$left;
                                                                            if (var$10 === null) {
                                                                                var$10 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$10, $key, null);
                                                                                var$10.$height = 1;
                                                                                var$10.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$10.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$11 = var$10.$right;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$right = var$11;
                                                                                    } else {
                                                                                        var$11 = var$10.$left;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$10.$left = var$11;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$9.$left = var$10;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                    }
                                                                }
                                                                var$12.$left = var$9;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$8.$right = var$12;
                                                } else {
                                                    var$13 = var$8.$left;
                                                    if (var$13 === null) {
                                                        var$13 = new ju_TreeMap$TreeNode;
                                                        var$9 = null;
                                                        var$13.$key0 = $key;
                                                        var$13.$value2 = var$9;
                                                        var$13.$height = 1;
                                                        var$13.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$13.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$12 = var$13.$right;
                                                                if (var$12 === null) {
                                                                    var$12 = new ju_TreeMap$TreeNode;
                                                                    var$9 = null;
                                                                    jl_Object__init_(var$12);
                                                                    var$12.$key0 = $key;
                                                                    var$12.$value2 = var$9;
                                                                    var$12.$height = 1;
                                                                    var$12.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$12.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$9 = var$12.$right;
                                                                            if (var$9 === null) {
                                                                                var$9 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                var$9.$height = 1;
                                                                                var$9.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$9.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$10 = var$9.$right;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$right = var$10;
                                                                                    } else {
                                                                                        var$10 = var$9.$left;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$left = var$10;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$12.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$12.$left;
                                                                            if (var$9 === null) {
                                                                                var$9 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                var$9.$height = 1;
                                                                                var$9.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$9.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$10 = var$9.$right;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$right = var$10;
                                                                                    } else {
                                                                                        var$10 = var$9.$left;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$left = var$10;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$12.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                }
                                                                var$13.$right = var$12;
                                                            } else {
                                                                var$10 = var$13.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$9 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$9;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$9 = var$11.$left;
                                                                                        if (var$9 === null)
                                                                                            var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                else
                                                                                                    var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$9);
                                                                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$9;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$9 = var$10.$left;
                                                                            if (var$9 === null) {
                                                                                var$9 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                var$9.$height = 1;
                                                                                var$9.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$9.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$11 = var$9.$right;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$9.$right = var$11;
                                                                                    } else {
                                                                                        var$11 = var$9.$left;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$9.$left = var$11;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$13.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                        }
                                                    }
                                                    var$8.$left = var$13;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$8);
                                                var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                            }
                                        }
                                        $old.$right = var$8;
                                    }
                                    ju_TreeMap$TreeNode_fix($old);
                                    $old = ju_TreeMap$TreeNode_balance($old);
                                }
                            }
                            var$7.$left = $old;
                        } else {
                            $old = var$7.$right;
                            if ($old === null) {
                                $old = new ju_TreeMap$TreeNode;
                                var$8 = null;
                                $old.$key0 = $key;
                                $old.$value2 = var$8;
                                $old.$height = 1;
                                $old.$size1 = 1;
                            } else {
                                var$6 = var$5.$compareTo($old.$key0);
                                if (var$6) {
                                    if (var$6 >= 0) {
                                        var$9 = $old.$right;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$8 = null;
                                            var$9.$key0 = $key;
                                            var$9.$value2 = var$8;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$6 = var$5.$compareTo(var$9.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$10 = var$9.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$8 = null;
                                                        var$10.$key0 = $key;
                                                        var$10.$value2 = var$8;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$10.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$8 = var$10.$right;
                                                                if (var$8 === null) {
                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$8);
                                                                    var$8.$key0 = $key;
                                                                    var$8.$value2 = var$11;
                                                                    var$8.$height = 1;
                                                                    var$8.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$8.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$8.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$8.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$8.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$8.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                    }
                                                                }
                                                                var$10.$right = var$8;
                                                            } else {
                                                                var$8 = var$10.$left;
                                                                if (var$8 === null) {
                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$8);
                                                                    var$8.$key0 = $key;
                                                                    var$8.$value2 = var$11;
                                                                    var$8.$height = 1;
                                                                    var$8.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$8.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$8.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$8.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$8.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$8.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                    }
                                                                }
                                                                var$10.$left = var$8;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$9.$right = var$10;
                                                } else {
                                                    var$8 = var$9.$left;
                                                    if (var$8 === null) {
                                                        var$8 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        var$8.$key0 = $key;
                                                        var$8.$value2 = var$10;
                                                        var$8.$height = 1;
                                                        var$8.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$8.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$10 = var$8.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$8.$right = var$10;
                                                            } else {
                                                                var$10 = var$8.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$8.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                        }
                                                    }
                                                    var$9.$left = var$8;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        $old.$right = var$9;
                                    } else {
                                        var$8 = $old.$left;
                                        if (var$8 === null) {
                                            var$8 = new ju_TreeMap$TreeNode;
                                            var$9 = null;
                                            var$8.$key0 = $key;
                                            var$8.$value2 = var$9;
                                            var$8.$height = 1;
                                            var$8.$size1 = 1;
                                        } else {
                                            var$6 = var$5.$compareTo(var$8.$key0);
                                            if (var$6) {
                                                if (var$6 >= 0) {
                                                    var$13 = var$8.$right;
                                                    if (var$13 === null) {
                                                        var$13 = new ju_TreeMap$TreeNode;
                                                        var$9 = null;
                                                        var$13.$key0 = $key;
                                                        var$13.$value2 = var$9;
                                                        var$13.$height = 1;
                                                        var$13.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$13.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$12 = var$13.$right;
                                                                if (var$12 === null) {
                                                                    var$12 = new ju_TreeMap$TreeNode;
                                                                    var$9 = null;
                                                                    jl_Object__init_(var$12);
                                                                    var$12.$key0 = $key;
                                                                    var$12.$value2 = var$9;
                                                                    var$12.$height = 1;
                                                                    var$12.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$12.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$9 = var$12.$right;
                                                                            if (var$9 === null) {
                                                                                var$9 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                var$9.$height = 1;
                                                                                var$9.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$9.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$10 = var$9.$right;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$right = var$10;
                                                                                    } else {
                                                                                        var$10 = var$9.$left;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$left = var$10;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$12.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$12.$left;
                                                                            if (var$9 === null) {
                                                                                var$9 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                var$9.$height = 1;
                                                                                var$9.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$9.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$10 = var$9.$right;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$right = var$10;
                                                                                    } else {
                                                                                        var$10 = var$9.$left;
                                                                                        if (var$10 === null)
                                                                                            var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                else
                                                                                                    var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$10);
                                                                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                            }
                                                                                        }
                                                                                        var$9.$left = var$10;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$12.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                }
                                                                var$13.$right = var$12;
                                                            } else {
                                                                var$10 = var$13.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$9 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$9;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$9 = var$11.$left;
                                                                                        if (var$9 === null)
                                                                                            var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                else
                                                                                                    var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$9);
                                                                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$9;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$9 = var$10.$left;
                                                                            if (var$9 === null) {
                                                                                var$9 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                var$9.$height = 1;
                                                                                var$9.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$9.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$11 = var$9.$right;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$9.$right = var$11;
                                                                                    } else {
                                                                                        var$11 = var$9.$left;
                                                                                        if (var$11 === null)
                                                                                            var$11 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$11.$right = ju_TreeMap_getOrCreateNode($this, var$11.$right, $key);
                                                                                                else
                                                                                                    var$11.$left = ju_TreeMap_getOrCreateNode($this, var$11.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                            }
                                                                                        }
                                                                                        var$9.$left = var$11;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$13.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                        }
                                                    }
                                                    var$8.$right = var$13;
                                                } else {
                                                    var$9 = var$8.$left;
                                                    if (var$9 === null) {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        var$9.$key0 = $key;
                                                        var$9.$value2 = var$10;
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    } else {
                                                        var$6 = var$5.$compareTo(var$9.$key0);
                                                        if (var$6) {
                                                            if (var$6 >= 0) {
                                                                var$10 = var$9.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$right = var$10;
                                                            } else {
                                                                var$10 = var$9.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    jl_Object__init_(var$10);
                                                                    var$10.$key0 = $key;
                                                                    var$10.$value2 = var$11;
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$6 = var$5.$compareTo(var$10.$key0);
                                                                    if (var$6) {
                                                                        if (var$6 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                var$6 = var$5.$compareTo(var$11.$key0);
                                                                                if (var$6) {
                                                                                    if (var$6 >= 0) {
                                                                                        var$5 = var$11.$right;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$5;
                                                                                    } else {
                                                                                        var$5 = var$11.$left;
                                                                                        if (var$5 === null)
                                                                                            var$5 = ju_TreeMap$TreeNode__init_($key);
                                                                                        else {
                                                                                            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$5));
                                                                                            if (var$6) {
                                                                                                if (var$6 >= 0)
                                                                                                    var$5.$right = ju_TreeMap_getOrCreateNode($this, var$5.$right, $key);
                                                                                                else
                                                                                                    var$5.$left = ju_TreeMap_getOrCreateNode($this, var$5.$left, $key);
                                                                                                ju_TreeMap$TreeNode_fix(var$5);
                                                                                                var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$5;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$9.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    }
                                                    var$8.$left = var$9;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$8);
                                                var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                            }
                                        }
                                        $old.$left = var$8;
                                    }
                                    ju_TreeMap$TreeNode_fix($old);
                                    $old = ju_TreeMap$TreeNode_balance($old);
                                }
                            }
                            var$7.$right = $old;
                        }
                        ju_TreeMap$TreeNode_fix(var$7);
                        var$7 = ju_TreeMap$TreeNode_balance(var$7);
                    }
                }
                $node.$right = var$7;
            }
            ju_TreeMap$TreeNode_fix($node);
            $node = ju_TreeMap$TreeNode_balance($node);
        }
    }
    $this.$root = $node;
    $key.$compareTo($key);
    a: {
        while (true) {
            if ($node === null) {
                $node = null;
                break a;
            }
            var$6 = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, $node.$key0);
            if (!var$6)
                break;
            $node = var$6 >= 0 ? $node.$right : $node.$left;
        }
    }
    $old = ju_AbstractMap$SimpleEntry_setValue($node, $value);
    ju_AbstractMap$SimpleEntry_setValue($node, $value);
    $this.$modCount2 = $this.$modCount2 + 1 | 0;
    return $old;
},
ju_TreeMap_findExact = ($this, $key) => {
    let $node, var$3, $cmp;
    $node = $this.$root;
    var$3 = $key;
    var$3.$compareTo($key);
    while (true) {
        if ($node === null)
            return null;
        $cmp = var$3.$compareTo($node.$key0);
        if (!$cmp)
            break;
        $node = $cmp >= 0 ? $node.$right : $node.$left;
    }
    return $node;
},
ju_TreeMap_pathToExactOrNext = ($this, $key, $reverse) => {
    let $node, $path, var$5, $depth, $cmp, var$8, var$9;
    $node = $this.$root;
    $path = $rt_createArray(ju_TreeMap$TreeNode, $node === null ? 0 : $node.$height);
    var$5 = $path.data;
    $depth = 0;
    $key = $key;
    a: {
        while ($node !== null) {
            $cmp = $key.$compareTo($node.$key0);
            if ($reverse)
                $cmp =  -$cmp | 0;
            if (!$cmp) {
                $reverse = $depth + 1 | 0;
                var$5[$depth] = $node;
                break a;
            }
            if ($cmp >= 0)
                $node = $reverse ? $node.$left : $node.$right;
            else {
                $cmp = $depth + 1 | 0;
                var$5[$depth] = $node;
                $node = $reverse ? $node.$right : $node.$left;
                $depth = $cmp;
            }
        }
        $reverse = $depth;
    }
    $node = $path.constructor;
    if ($node === null)
        $key = null;
    else {
        $key = $node.classObject;
        if ($key === null) {
            $key = new jl_Class;
            $key.$platformClass = $node;
            $node.classObject = $key;
        }
    }
    var$8 = $key.$platformClass.$meta.item;
    if (var$8 === null)
        $node = null;
    else {
        $node = var$8.classObject;
        if ($node === null) {
            $node = new jl_Class;
            $node.$platformClass = var$8;
            var$8.classObject = $node;
        }
    }
    if ($node === null) {
        $key = new jl_NullPointerException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    }
    if ($node === $rt_cls($rt_voidcls)) {
        $key = new jl_IllegalArgumentException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    }
    if ($reverse < 0) {
        $key = new jl_NegativeArraySizeException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    }
    var$9 = jlr_Array_newInstanceImpl($node.$platformClass, $reverse);
    $depth = var$5.length;
    if ($reverse < $depth)
        $depth = $reverse;
    $reverse = 0;
    while ($reverse < $depth) {
        var$9.data[$reverse] = var$5[$reverse];
        $reverse = $reverse + 1 | 0;
    }
    return var$9;
},
ju_TreeMap_pathToNext = ($this, $key, $reverse) => {
    let $node, $path, var$5, $depth, $cmp, var$8;
    $node = $this.$root;
    $path = $rt_createArray(ju_TreeMap$TreeNode, $node === null ? 0 : $node.$height);
    var$5 = $path.data;
    $depth = 0;
    $key = $key;
    while ($node !== null) {
        $cmp = $key.$compareTo($node.$key0);
        if ($reverse)
            $cmp =  -$cmp | 0;
        if ($cmp >= 0)
            $node = $reverse ? $node.$left : $node.$right;
        else {
            $cmp = $depth + 1 | 0;
            var$5[$depth] = $node;
            $node = $reverse ? $node.$right : $node.$left;
            $depth = $cmp;
        }
    }
    $node = $path.constructor;
    if ($node === null)
        $key = null;
    else {
        $key = $node.classObject;
        if ($key === null) {
            $key = new jl_Class;
            $key.$platformClass = $node;
            $node.classObject = $key;
        }
    }
    var$8 = $key.$platformClass.$meta.item;
    if (var$8 === null)
        $node = null;
    else {
        $node = var$8.classObject;
        if ($node === null) {
            $node = new jl_Class;
            $node.$platformClass = var$8;
            var$8.classObject = $node;
        }
    }
    if ($node === null) {
        $key = new jl_NullPointerException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    }
    if ($node === $rt_cls($rt_voidcls)) {
        $key = new jl_IllegalArgumentException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    }
    if ($depth < 0) {
        $key = new jl_NegativeArraySizeException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    }
    $key = jlr_Array_newInstanceImpl($node.$platformClass, $depth);
    $reverse = var$5.length;
    if ($depth < $reverse)
        $reverse = $depth;
    $depth = 0;
    while ($depth < $reverse) {
        $key.data[$depth] = var$5[$depth];
        $depth = $depth + 1 | 0;
    }
    return $key;
},
ju_TreeMap_getOrCreateNode = ($this, $root, $key) => {
    let var$3, var$4, $cmp, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    if ($root === null) {
        $root = new ju_TreeMap$TreeNode;
        var$3 = null;
        $root.$key0 = $key;
        $root.$value2 = var$3;
        $root.$height = 1;
        $root.$size1 = 1;
        return $root;
    }
    var$3 = $root.$key0;
    var$4 = $key;
    $cmp = var$4.$compareTo(var$3);
    if (!$cmp)
        return $root;
    if ($cmp < 0)
        $root.$left = ju_TreeMap_getOrCreateNode($this, $root.$left, $key);
    else {
        var$6 = $root.$right;
        if (var$6 === null) {
            var$6 = new ju_TreeMap$TreeNode;
            var$3 = null;
            var$6.$key0 = $key;
            var$6.$value2 = var$3;
            var$6.$height = 1;
            var$6.$size1 = 1;
        } else {
            $cmp = var$4.$compareTo(var$6.$key0);
            if ($cmp) {
                if ($cmp < 0)
                    var$6.$left = ju_TreeMap_getOrCreateNode($this, var$6.$left, $key);
                else {
                    var$7 = var$6.$right;
                    if (var$7 === null) {
                        var$7 = new ju_TreeMap$TreeNode;
                        var$3 = null;
                        var$7.$key0 = $key;
                        var$7.$value2 = var$3;
                        var$7.$height = 1;
                        var$7.$size1 = 1;
                    } else {
                        $cmp = var$4.$compareTo(var$7.$key0);
                        if ($cmp) {
                            if ($cmp < 0) {
                                var$3 = var$7.$left;
                                if (var$3 === null) {
                                    var$3 = new ju_TreeMap$TreeNode;
                                    var$8 = null;
                                    var$3.$key0 = $key;
                                    var$3.$value2 = var$8;
                                    var$3.$height = 1;
                                    var$3.$size1 = 1;
                                } else {
                                    $cmp = var$4.$compareTo(var$3.$key0);
                                    if ($cmp) {
                                        if ($cmp < 0) {
                                            var$8 = var$3.$left;
                                            if (var$8 === null) {
                                                var$8 = new ju_TreeMap$TreeNode;
                                                var$9 = null;
                                                var$8.$key0 = $key;
                                                var$8.$value2 = var$9;
                                                var$8.$height = 1;
                                                var$8.$size1 = 1;
                                            } else {
                                                $cmp = var$4.$compareTo(var$8.$key0);
                                                if ($cmp) {
                                                    if ($cmp < 0) {
                                                        var$9 = var$8.$left;
                                                        if (var$9 === null) {
                                                            var$9 = new ju_TreeMap$TreeNode;
                                                            var$10 = null;
                                                            var$9.$key0 = $key;
                                                            var$9.$value2 = var$10;
                                                            var$9.$height = 1;
                                                            var$9.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$9.$key0);
                                                            if ($cmp) {
                                                                if ($cmp < 0) {
                                                                    var$10 = var$9.$left;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $key, null);
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0)
                                                                                var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                            else
                                                                                var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$left = var$10;
                                                                } else {
                                                                    var$10 = var$9.$right;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$right = var$10;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$9);
                                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                            }
                                                        }
                                                        var$8.$left = var$9;
                                                    } else {
                                                        var$9 = var$8.$right;
                                                        if (var$9 === null) {
                                                            var$9 = new ju_TreeMap$TreeNode;
                                                            var$10 = null;
                                                            var$9.$key0 = $key;
                                                            var$9.$value2 = var$10;
                                                            var$9.$height = 1;
                                                            var$9.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$9.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$10 = var$9.$right;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$right = var$10;
                                                                } else {
                                                                    var$10 = var$9.$left;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$left = var$10;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$9);
                                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                            }
                                                        }
                                                        var$8.$right = var$9;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                }
                                            }
                                            var$3.$left = var$8;
                                        } else {
                                            var$8 = var$3.$right;
                                            if (var$8 === null) {
                                                var$8 = new ju_TreeMap$TreeNode;
                                                var$9 = null;
                                                var$8.$key0 = $key;
                                                var$8.$value2 = var$9;
                                                var$8.$height = 1;
                                                var$8.$size1 = 1;
                                            } else {
                                                $cmp = var$4.$compareTo(var$8.$key0);
                                                if ($cmp) {
                                                    if ($cmp >= 0) {
                                                        var$9 = var$8.$right;
                                                        if (var$9 === null) {
                                                            var$9 = new ju_TreeMap$TreeNode;
                                                            var$10 = null;
                                                            var$9.$key0 = $key;
                                                            var$9.$value2 = var$10;
                                                            var$9.$height = 1;
                                                            var$9.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$9.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$10 = var$9.$right;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$12 = var$10.$right;
                                                                                if (var$12 === null) {
                                                                                    var$12 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$12, $key, null);
                                                                                    var$12.$height = 1;
                                                                                    var$12.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$12.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$12.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$12.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$12.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$12.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$12;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$right = var$10;
                                                                } else {
                                                                    var$10 = var$9.$left;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$left = var$10;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$9);
                                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                            }
                                                        }
                                                        var$8.$right = var$9;
                                                    } else {
                                                        var$9 = var$8.$left;
                                                        if (var$9 === null) {
                                                            var$9 = new ju_TreeMap$TreeNode;
                                                            var$10 = null;
                                                            var$9.$key0 = $key;
                                                            var$9.$value2 = var$10;
                                                            var$9.$height = 1;
                                                            var$9.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$9.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$10 = var$9.$right;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$right = var$10;
                                                                } else {
                                                                    var$10 = var$9.$left;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$4 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$4;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$11 = var$10.$left;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$4 = var$11.$left;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$4;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$9.$left = var$10;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$9);
                                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                            }
                                                        }
                                                        var$8.$left = var$9;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                }
                                            }
                                            var$3.$right = var$8;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$3);
                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                    }
                                }
                                var$7.$left = var$3;
                            } else {
                                var$12 = var$7.$right;
                                if (var$12 === null) {
                                    var$12 = new ju_TreeMap$TreeNode;
                                    var$3 = null;
                                    var$12.$key0 = $key;
                                    var$12.$value2 = var$3;
                                    var$12.$height = 1;
                                    var$12.$size1 = 1;
                                } else {
                                    $cmp = var$4.$compareTo(var$12.$key0);
                                    if ($cmp) {
                                        if ($cmp >= 0) {
                                            var$13 = var$12.$right;
                                            if (var$13 === null) {
                                                var$13 = new ju_TreeMap$TreeNode;
                                                var$3 = null;
                                                var$13.$key0 = $key;
                                                var$13.$value2 = var$3;
                                                var$13.$height = 1;
                                                var$13.$size1 = 1;
                                            } else {
                                                $cmp = var$4.$compareTo(var$13.$key0);
                                                if ($cmp) {
                                                    if ($cmp >= 0) {
                                                        var$3 = var$13.$right;
                                                        if (var$3 === null) {
                                                            var$3 = new ju_TreeMap$TreeNode;
                                                            var$8 = null;
                                                            var$3.$key0 = $key;
                                                            var$3.$value2 = var$8;
                                                            var$3.$height = 1;
                                                            var$3.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$3.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$11 = var$3.$right;
                                                                    if (var$11 === null) {
                                                                        var$11 = new ju_TreeMap$TreeNode;
                                                                        var$8 = null;
                                                                        jl_Object__init_(var$11);
                                                                        var$11.$key0 = $key;
                                                                        var$11.$value2 = var$8;
                                                                        var$11.$height = 1;
                                                                        var$11.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$11.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$8 = var$11.$right;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$11.$right = var$8;
                                                                            } else {
                                                                                var$8 = var$11.$left;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$11.$left = var$8;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                        }
                                                                    }
                                                                    var$3.$right = var$11;
                                                                } else {
                                                                    var$10 = var$3.$left;
                                                                    if (var$10 === null) {
                                                                        var$10 = new ju_TreeMap$TreeNode;
                                                                        var$8 = null;
                                                                        jl_Object__init_(var$10);
                                                                        var$10.$key0 = $key;
                                                                        var$10.$value2 = var$8;
                                                                        var$10.$height = 1;
                                                                        var$10.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$10.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$11 = var$10.$right;
                                                                                if (var$11 === null) {
                                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $key, null);
                                                                                    var$11.$height = 1;
                                                                                    var$11.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$11.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$4 = var$11.$right;
                                                                                            if (var$4 === null)
                                                                                                var$4 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$4.$right = ju_TreeMap_getOrCreateNode($this, var$4.$right, $key);
                                                                                                    else
                                                                                                        var$4.$left = ju_TreeMap_getOrCreateNode($this, var$4.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$4);
                                                                                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                                                }
                                                                                            }
                                                                                            var$11.$right = var$4;
                                                                                        } else {
                                                                                            var$9 = var$11.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$11.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$10.$right = var$11;
                                                                            } else {
                                                                                var$8 = var$10.$left;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$10.$left = var$8;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                        }
                                                                    }
                                                                    var$3.$left = var$10;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                            }
                                                        }
                                                        var$13.$right = var$3;
                                                    } else {
                                                        var$3 = var$13.$left;
                                                        if (var$3 === null) {
                                                            var$3 = new ju_TreeMap$TreeNode;
                                                            var$8 = null;
                                                            var$3.$key0 = $key;
                                                            var$3.$value2 = var$8;
                                                            var$3.$height = 1;
                                                            var$3.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$3.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$8 = var$3.$right;
                                                                    if (var$8 === null) {
                                                                        var$8 = new ju_TreeMap$TreeNode;
                                                                        var$9 = null;
                                                                        jl_Object__init_(var$8);
                                                                        var$8.$key0 = $key;
                                                                        var$8.$value2 = var$9;
                                                                        var$8.$height = 1;
                                                                        var$8.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$8.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$9 = var$8.$right;
                                                                                if (var$9 === null) {
                                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                    var$9.$height = 1;
                                                                                    var$9.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$9.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$10 = var$9.$right;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$right = var$10;
                                                                                        } else {
                                                                                            var$10 = var$9.$left;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$left = var$10;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                    }
                                                                                }
                                                                                var$8.$right = var$9;
                                                                            } else {
                                                                                var$9 = var$8.$left;
                                                                                if (var$9 === null) {
                                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                    var$9.$height = 1;
                                                                                    var$9.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$9.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$10 = var$9.$right;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$right = var$10;
                                                                                        } else {
                                                                                            var$10 = var$9.$left;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$left = var$10;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                    }
                                                                                }
                                                                                var$8.$left = var$9;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                        }
                                                                    }
                                                                    var$3.$right = var$8;
                                                                } else {
                                                                    var$8 = var$3.$left;
                                                                    if (var$8 === null) {
                                                                        var$8 = new ju_TreeMap$TreeNode;
                                                                        var$9 = null;
                                                                        jl_Object__init_(var$8);
                                                                        var$8.$key0 = $key;
                                                                        var$8.$value2 = var$9;
                                                                        var$8.$height = 1;
                                                                        var$8.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$8.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$9 = var$8.$right;
                                                                                if (var$9 === null) {
                                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                    var$9.$height = 1;
                                                                                    var$9.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$9.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$10 = var$9.$right;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$right = var$10;
                                                                                        } else {
                                                                                            var$10 = var$9.$left;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$left = var$10;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                    }
                                                                                }
                                                                                var$8.$right = var$9;
                                                                            } else {
                                                                                var$9 = var$8.$left;
                                                                                if (var$9 === null) {
                                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                    var$9.$height = 1;
                                                                                    var$9.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$9.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$10 = var$9.$right;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$right = var$10;
                                                                                        } else {
                                                                                            var$10 = var$9.$left;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$left = var$10;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                    }
                                                                                }
                                                                                var$8.$left = var$9;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                        }
                                                                    }
                                                                    var$3.$left = var$8;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                            }
                                                        }
                                                        var$13.$left = var$3;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                }
                                            }
                                            var$12.$right = var$13;
                                        } else {
                                            var$11 = var$12.$left;
                                            if (var$11 === null) {
                                                var$11 = new ju_TreeMap$TreeNode;
                                                var$3 = null;
                                                var$11.$key0 = $key;
                                                var$11.$value2 = var$3;
                                                var$11.$height = 1;
                                                var$11.$size1 = 1;
                                            } else {
                                                $cmp = var$4.$compareTo(var$11.$key0);
                                                if ($cmp) {
                                                    if ($cmp >= 0) {
                                                        var$13 = var$11.$right;
                                                        if (var$13 === null) {
                                                            var$13 = new ju_TreeMap$TreeNode;
                                                            var$3 = null;
                                                            var$13.$key0 = $key;
                                                            var$13.$value2 = var$3;
                                                            var$13.$height = 1;
                                                            var$13.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$13.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$3 = var$13.$right;
                                                                    if (var$3 === null) {
                                                                        var$3 = new ju_TreeMap$TreeNode;
                                                                        var$8 = null;
                                                                        jl_Object__init_(var$3);
                                                                        var$3.$key0 = $key;
                                                                        var$3.$value2 = var$8;
                                                                        var$3.$height = 1;
                                                                        var$3.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$3.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$8 = var$3.$right;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$3.$right = var$8;
                                                                            } else {
                                                                                var$8 = var$3.$left;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$3.$left = var$8;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                        }
                                                                    }
                                                                    var$13.$right = var$3;
                                                                } else {
                                                                    var$3 = var$13.$left;
                                                                    if (var$3 === null) {
                                                                        var$3 = new ju_TreeMap$TreeNode;
                                                                        var$8 = null;
                                                                        jl_Object__init_(var$3);
                                                                        var$3.$key0 = $key;
                                                                        var$3.$value2 = var$8;
                                                                        var$3.$height = 1;
                                                                        var$3.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$3.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$8 = var$3.$right;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$3.$right = var$8;
                                                                            } else {
                                                                                var$8 = var$3.$left;
                                                                                if (var$8 === null) {
                                                                                    var$8 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $key, null);
                                                                                    var$8.$height = 1;
                                                                                    var$8.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$8.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$8.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$8.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$8.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                    }
                                                                                }
                                                                                var$3.$left = var$8;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                        }
                                                                    }
                                                                    var$13.$left = var$3;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$13);
                                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                            }
                                                        }
                                                        var$11.$right = var$13;
                                                    } else {
                                                        var$13 = var$11.$left;
                                                        if (var$13 === null) {
                                                            var$13 = new ju_TreeMap$TreeNode;
                                                            var$3 = null;
                                                            var$13.$key0 = $key;
                                                            var$13.$value2 = var$3;
                                                            var$13.$height = 1;
                                                            var$13.$size1 = 1;
                                                        } else {
                                                            $cmp = var$4.$compareTo(var$13.$key0);
                                                            if ($cmp) {
                                                                if ($cmp >= 0) {
                                                                    var$14 = var$13.$right;
                                                                    if (var$14 === null) {
                                                                        var$14 = new ju_TreeMap$TreeNode;
                                                                        var$3 = null;
                                                                        jl_Object__init_(var$14);
                                                                        var$14.$key0 = $key;
                                                                        var$14.$value2 = var$3;
                                                                        var$14.$height = 1;
                                                                        var$14.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$14.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$3 = var$14.$right;
                                                                                if (var$3 === null) {
                                                                                    var$3 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$3, $key, null);
                                                                                    var$3.$height = 1;
                                                                                    var$3.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$3.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$8 = var$3.$right;
                                                                                            if (var$8 === null)
                                                                                                var$8 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$8.$right = ju_TreeMap_getOrCreateNode($this, var$8.$right, $key);
                                                                                                    else
                                                                                                        var$8.$left = ju_TreeMap_getOrCreateNode($this, var$8.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                                }
                                                                                            }
                                                                                            var$3.$right = var$8;
                                                                                        } else {
                                                                                            var$8 = var$3.$left;
                                                                                            if (var$8 === null)
                                                                                                var$8 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$8.$right = ju_TreeMap_getOrCreateNode($this, var$8.$right, $key);
                                                                                                    else
                                                                                                        var$8.$left = ju_TreeMap_getOrCreateNode($this, var$8.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                                }
                                                                                            }
                                                                                            var$3.$left = var$8;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$14.$right = var$3;
                                                                            } else {
                                                                                var$3 = var$14.$left;
                                                                                if (var$3 === null) {
                                                                                    var$3 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$3, $key, null);
                                                                                    var$3.$height = 1;
                                                                                    var$3.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$3.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$8 = var$3.$right;
                                                                                            if (var$8 === null)
                                                                                                var$8 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$8.$right = ju_TreeMap_getOrCreateNode($this, var$8.$right, $key);
                                                                                                    else
                                                                                                        var$8.$left = ju_TreeMap_getOrCreateNode($this, var$8.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                                }
                                                                                            }
                                                                                            var$3.$right = var$8;
                                                                                        } else {
                                                                                            var$8 = var$3.$left;
                                                                                            if (var$8 === null)
                                                                                                var$8 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$8.$right = ju_TreeMap_getOrCreateNode($this, var$8.$right, $key);
                                                                                                    else
                                                                                                        var$8.$left = ju_TreeMap_getOrCreateNode($this, var$8.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                                                }
                                                                                            }
                                                                                            var$3.$left = var$8;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$14.$left = var$3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                        }
                                                                    }
                                                                    var$13.$right = var$14;
                                                                } else {
                                                                    var$8 = var$13.$left;
                                                                    if (var$8 === null) {
                                                                        var$8 = new ju_TreeMap$TreeNode;
                                                                        var$3 = null;
                                                                        jl_Object__init_(var$8);
                                                                        var$8.$key0 = $key;
                                                                        var$8.$value2 = var$3;
                                                                        var$8.$height = 1;
                                                                        var$8.$size1 = 1;
                                                                    } else {
                                                                        $cmp = var$4.$compareTo(var$8.$key0);
                                                                        if ($cmp) {
                                                                            if ($cmp >= 0) {
                                                                                var$9 = var$8.$right;
                                                                                if (var$9 === null) {
                                                                                    var$9 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$9, $key, null);
                                                                                    var$9.$height = 1;
                                                                                    var$9.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$9.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$10 = var$9.$right;
                                                                                            if (var$10 === null)
                                                                                                var$10 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode($this, var$10.$right, $key);
                                                                                                    else
                                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode($this, var$10.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                                }
                                                                                            }
                                                                                            var$9.$right = var$10;
                                                                                        } else {
                                                                                            var$3 = var$9.$left;
                                                                                            if (var$3 === null)
                                                                                                var$3 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$3.$right = ju_TreeMap_getOrCreateNode($this, var$3.$right, $key);
                                                                                                    else
                                                                                                        var$3.$left = ju_TreeMap_getOrCreateNode($this, var$3.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$3);
                                                                                                    var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                                }
                                                                                            }
                                                                                            var$9.$left = var$3;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$9);
                                                                                        var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                    }
                                                                                }
                                                                                var$8.$right = var$9;
                                                                            } else {
                                                                                var$3 = var$8.$left;
                                                                                if (var$3 === null) {
                                                                                    var$3 = new ju_TreeMap$TreeNode;
                                                                                    ju_AbstractMap$SimpleEntry__init_(var$3, $key, null);
                                                                                    var$3.$height = 1;
                                                                                    var$3.$size1 = 1;
                                                                                } else {
                                                                                    $cmp = var$4.$compareTo(var$3.$key0);
                                                                                    if ($cmp) {
                                                                                        if ($cmp >= 0) {
                                                                                            var$9 = var$3.$right;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$3.$right = var$9;
                                                                                        } else {
                                                                                            var$9 = var$3.$left;
                                                                                            if (var$9 === null)
                                                                                                var$9 = ju_TreeMap$TreeNode__init_($key);
                                                                                            else {
                                                                                                $cmp = ju_Comparator$NaturalOrder_compare($this.$comparator, $key, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                                if ($cmp) {
                                                                                                    if ($cmp >= 0)
                                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode($this, var$9.$right, $key);
                                                                                                    else
                                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode($this, var$9.$left, $key);
                                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                                }
                                                                                            }
                                                                                            var$3.$left = var$9;
                                                                                        }
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$8.$left = var$3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$8);
                                                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                        }
                                                                    }
                                                                    var$13.$left = var$8;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$13);
                                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                            }
                                                        }
                                                        var$11.$left = var$13;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                }
                                            }
                                            var$12.$left = var$11;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$12);
                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                    }
                                }
                                var$7.$right = var$12;
                            }
                            ju_TreeMap$TreeNode_fix(var$7);
                            var$7 = ju_TreeMap$TreeNode_balance(var$7);
                        }
                    }
                    var$6.$right = var$7;
                }
                ju_TreeMap$TreeNode_fix(var$6);
                var$6 = ju_TreeMap$TreeNode_balance(var$6);
            }
        }
        $root.$right = var$6;
    }
    ju_TreeMap$TreeNode_fix($root);
    return ju_TreeMap$TreeNode_balance($root);
},
ju_TreeMap_deleteNode = ($this, $root, $key) => {
    let $left, $cmp, $right, $pathToMin, $minDepth, $minDepth_0, $node;
    if ($root === null)
        return null;
    $left = $root.$key0;
    $cmp = $key.$compareTo($left);
    if ($cmp < 0)
        $root.$left = ju_TreeMap_deleteNode($this, $root.$left, $key);
    else if ($cmp > 0)
        $root.$right = ju_TreeMap_deleteNode($this, $root.$right, $key);
    else {
        $right = $root.$right;
        if ($right === null)
            return $root.$left;
        $left = $root.$left;
        $pathToMin = $rt_createArray(ju_TreeMap$TreeNode, $right.$height).data;
        $minDepth = 0;
        while (true) {
            $root = $right.$left;
            if ($root === null)
                break;
            $minDepth_0 = $minDepth + 1 | 0;
            $pathToMin[$minDepth] = $right;
            $minDepth = $minDepth_0;
            $right = $root;
        }
        $root = $right.$right;
        while ($minDepth > 0) {
            $minDepth = $minDepth + (-1) | 0;
            $node = $pathToMin[$minDepth];
            $node.$left = $root;
            ju_TreeMap$TreeNode_fix($node);
            $root = ju_TreeMap$TreeNode_balance($node);
        }
        $right.$right = $root;
        $right.$left = $left;
        ju_TreeMap$TreeNode_fix($right);
        $root = $right;
    }
    ju_TreeMap$TreeNode_fix($root);
    return ju_TreeMap$TreeNode_balance($root);
};
function nms_StatBase() {
    let a = this; jl_Object.call(a);
    a.$statId = 0;
    a.$statName = null;
    a.$isIndependent = 0;
    a.$statGuid = null;
    a.$type1 = null;
}
let nms_StatBase_numberFormat = null,
nms_StatBase_simpleStatType = null,
nms_StatBase_decimalFormat = null,
nms_StatBase_timeStatType = null,
nms_StatBase_distanceStatType = null,
nms_StatBase_field_111202_k = null,
nms_StatBase_$callClinit = () => {
    nms_StatBase_$callClinit = $rt_eraseClinit(nms_StatBase);
    nms_StatBase__clinit_();
},
nms_StatBase_registerStat = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    nms_StatList_$callClinit();
    var$1 = nms_StatList_oneShotStats;
    var$2 = $this.$statId;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$2;
    }
    if (var$3 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$1.$elementData.data;
        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$4) {
                var$6 = var$1.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    if (!(var$1 === null ? 0 : 1)) {
        var$1 = nms_StatList_allStats;
        ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
        var$5 = var$1.$array.data;
        var$7 = var$1.$size0;
        var$1.$size0 = var$7 + 1 | 0;
        var$5[var$7] = $this;
        var$1.$modCount = var$1.$modCount + 1 | 0;
        var$1 = nms_StatList_oneShotStats;
        var$2 = $this.$statId;
        if (var$2 >= (-128) && var$2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = var$2;
        }
        ju_HashMap_putImpl(var$1, var$3, $this);
        var$2 = $this.$statId;
        var$1 = nms_AchievementMap_instance.$guidMap;
        if (var$2 >= (-128) && var$2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = var$2;
        }
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$2 = var$3.$value;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[var$2 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$2) {
                    var$6 = var$1.$key;
                    if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        $this.$statGuid = var$1 === null ? null : var$1.$value0;
        return $this;
    }
    var$1 = new jl_RuntimeException;
    var$3 = nms_StatList_oneShotStats;
    var$2 = $this.$statId;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    if (var$6 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$4 = var$6.$value;
        var$5 = var$3.$elementData.data;
        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$4) {
                var$8 = var$3.$key;
                if (var$6 !== var$8 && !(var$6 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$3 = (var$3 === null ? null : var$3.$value0).$statName;
    var$6 = $this.$statName;
    var$2 = $this.$statId;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(392));
    var$7 = var$8.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$8, var$7, var$3);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(393));
    var$7 = var$8.$length0;
    if (var$6 === null)
        var$6 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$8, var$7, var$6);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(394));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$2, 10);
    var$3 = new jl_String;
    var$5 = var$8.$buffer;
    var$9 = var$5.data;
    var$7 = var$8.$length0;
    var$4 = var$9.length;
    if (var$7 >= 0 && var$7 <= (var$4 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = var$3;
        $rt_throw(var$1);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
nms_StatBase_toString = $this => {
    let var$1;
    var$1 = $this.$statName;
    nms_StatCollector_$callClinit();
    return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$1);
},
nms_StatBase__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    ju_Locale_$callClinit();
    var$1 = ju_Locale_US;
    var$2 = var$1.$languageCode;
    var$3 = var$1.$countryCode;
    if (otciu_CLDRHelper_$$metadata$$17 === null)
        otciu_CLDRHelper_$$metadata$$17 = otciu_CLDRHelper_getNumberFormatMap$$create();
    var$4 = otciu_CLDRHelper_$$metadata$$17;
    if (var$3.$nativeString.length ? 0 : 1)
        var$5 = var$2;
    else {
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert3(var$6, var$6.$length0, var$2);
        jl_AbstractStringBuilder_insert7(var$6, var$6.$length0, 45);
        jl_AbstractStringBuilder_insert3(var$6, var$6.$length0, var$3);
        var$5 = new jl_String;
        var$7 = var$6.$buffer;
        var$8 = var$7.data;
        var$9 = var$6.$length0;
        var$10 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0))
            var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
        else
            $rt_throw(jl_IndexOutOfBoundsException__init_1());
    }
    var$5 = var$4.hasOwnProperty($rt_ustr(var$5)) ? var$4[$rt_ustr(var$5)] : var$4.hasOwnProperty($rt_ustr(var$2)) ? var$4[$rt_ustr(var$2)] : var$4.root;
    var$3 = (var$5.value !== null ? $rt_str(var$5.value) : null);
    var$6 = new jt_DecimalFormat;
    var$5 = new jt_DecimalFormatSymbols;
    var$5.$locale1 = var$1;
    jt_DecimalFormatSymbols_initData(var$5);
    jt_DecimalFormat__init_(var$6, var$3, var$5);
    var$6.$parseIntegerOnly = 1;
    var$6.$minimumFractionDigits = 0;
    if (var$6.$maximumFractionDigits < 0)
        var$6.$maximumFractionDigits = 0;
    var$6.$maximumFractionDigits = 0;
    var$6.$decimalSeparatorAlwaysShown = 0;
    nms_StatBase_numberFormat = var$6;
    nms_StatBase_simpleStatType = new nms_StatTypeSimple;
    var$5 = new jt_DecimalFormat;
    var$6 = new jt_DecimalFormatSymbols;
    var$6.$locale1 = ju_Locale_defaultLocale;
    jt_DecimalFormatSymbols_initData(var$6);
    jt_DecimalFormat__init_(var$5, $rt_s(395), var$6);
    nms_StatBase_decimalFormat = var$5;
    nms_StatBase_timeStatType = new nms_StatTypeTime;
    nms_StatBase_distanceStatType = new nms_StatTypeDistance;
    nms_StatBase_field_111202_k = new nms_StatTypeFloat;
};
function nms_Achievement() {
    let a = this; nms_StatBase.call(a);
    a.$displayColumn = 0;
    a.$displayRow = 0;
    a.$parentAchievement = null;
    a.$achievementDescription = null;
    a.$theItemStack = null;
    a.$isSpecial = 0;
}
let nms_Achievement__init_ = ($this, $par1, $par2Str, $par3, $par4, $par5ItemStack, $par6Achievement) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    var$7 = 5242880 + $par1 | 0;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(396));
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $par2Str === null ? $rt_s(1) : $par2Str);
    var$9 = new jl_String;
    var$10 = var$8.$buffer;
    var$11 = var$10.data;
    var$12 = var$8.$length0;
    var$13 = var$11.length;
    if (var$12 >= 0 && var$12 <= (var$13 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$10.data, 0, var$12);
        nms_StatBase_$callClinit();
        var$14 = nms_StatBase_simpleStatType;
        $this.$statId = var$7;
        $this.$statName = var$9;
        $this.$type1 = var$14;
        $this.$theItemStack = $par5ItemStack;
        $par5ItemStack = new jl_StringBuilder;
        $par5ItemStack.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par5ItemStack, $par5ItemStack.$length0, $rt_s(396));
        $par1 = $par5ItemStack.$length0;
        if ($par2Str === null)
            $par2Str = $rt_s(1);
        jl_AbstractStringBuilder_insert($par5ItemStack, $par1, $par2Str);
        jl_AbstractStringBuilder_insert($par5ItemStack, $par5ItemStack.$length0, $rt_s(397));
        $par2Str = new jl_String;
        var$10 = $par5ItemStack.$buffer;
        var$11 = var$10.data;
        var$12 = $par5ItemStack.$length0;
        var$13 = var$11.length;
        if (var$12 >= 0 && var$12 <= (var$13 - 0 | 0)) {
            $par2Str.$nativeString = $rt_charArrayToString(var$10.data, 0, var$12);
            $this.$achievementDescription = $par2Str;
            $this.$displayColumn = $par3;
            $this.$displayRow = $par4;
            nms_AchievementList_$callClinit();
            if ($par3 < nms_AchievementList_minDisplayColumn)
                nms_AchievementList_minDisplayColumn = $par3;
            if ($par4 < nms_AchievementList_minDisplayRow)
                nms_AchievementList_minDisplayRow = $par4;
            if ($par3 > nms_AchievementList_maxDisplayColumn)
                nms_AchievementList_maxDisplayColumn = $par3;
            if ($par4 > nms_AchievementList_maxDisplayRow)
                nms_AchievementList_maxDisplayRow = $par4;
            $this.$parentAchievement = $par6Achievement;
            return;
        }
        $par2Str = new jl_IndexOutOfBoundsException;
        $par2Str.$suppressionEnabled = 1;
        $par2Str.$writableStackTrace = 1;
        $rt_throw($par2Str);
    }
    $par2Str = new jl_IndexOutOfBoundsException;
    $par2Str.$suppressionEnabled = 1;
    $par2Str.$writableStackTrace = 1;
    $rt_throw($par2Str);
},
nms_Achievement__init_0 = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new nms_Achievement();
    nms_Achievement__init_(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
};
function nms_Item() {
    let a = this; jl_Object.call(a);
    a.$tabToDisplayOn = null;
    a.$itemID0 = 0;
    a.$maxStackSize = 0;
    a.$maxDamage = 0;
    a.$bFull3D = 0;
    a.$hasSubtypes = 0;
    a.$containerItem = null;
    a.$potionEffect = null;
    a.$unlocalizedName = null;
    a.$iconString = null;
}
let nms_Item_field_111210_e = null,
nms_Item_itemRand = null,
nms_Item_itemsList = null,
nms_Item_shovelIron = null,
nms_Item_pickaxeIron = null,
nms_Item_axeIron = null,
nms_Item_flintAndSteel = null,
nms_Item_appleRed = null,
nms_Item_bow = null,
nms_Item_arrow = null,
nms_Item_coal = null,
nms_Item_diamond = null,
nms_Item_ingotIron = null,
nms_Item_ingotGold = null,
nms_Item_swordIron = null,
nms_Item_swordWood = null,
nms_Item_shovelWood = null,
nms_Item_pickaxeWood = null,
nms_Item_axeWood = null,
nms_Item_swordStone = null,
nms_Item_shovelStone = null,
nms_Item_pickaxeStone = null,
nms_Item_axeStone = null,
nms_Item_swordDiamond = null,
nms_Item_shovelDiamond = null,
nms_Item_pickaxeDiamond = null,
nms_Item_axeDiamond = null,
nms_Item_stick = null,
nms_Item_bowlEmpty = null,
nms_Item_bowlSoup = null,
nms_Item_swordGold = null,
nms_Item_shovelGold = null,
nms_Item_pickaxeGold = null,
nms_Item_axeGold = null,
nms_Item_silk = null,
nms_Item_feather = null,
nms_Item_gunpowder = null,
nms_Item_hoeWood = null,
nms_Item_hoeStone = null,
nms_Item_hoeIron = null,
nms_Item_hoeDiamond = null,
nms_Item_hoeGold = null,
nms_Item_seeds = null,
nms_Item_wheat = null,
nms_Item_bread = null,
nms_Item_helmetLeather = null,
nms_Item_plateLeather = null,
nms_Item_legsLeather = null,
nms_Item_bootsLeather = null,
nms_Item_helmetChain = null;
let nms_Item_plateChain = null,
nms_Item_legsChain = null,
nms_Item_bootsChain = null,
nms_Item_helmetIron = null,
nms_Item_plateIron = null,
nms_Item_legsIron = null,
nms_Item_bootsIron = null,
nms_Item_helmetDiamond = null,
nms_Item_plateDiamond = null,
nms_Item_legsDiamond = null,
nms_Item_bootsDiamond = null,
nms_Item_helmetGold = null,
nms_Item_plateGold = null,
nms_Item_legsGold = null,
nms_Item_bootsGold = null,
nms_Item_flint = null,
nms_Item_porkRaw = null,
nms_Item_porkCooked = null,
nms_Item_painting = null,
nms_Item_appleGold = null,
nms_Item_sign = null,
nms_Item_doorWood = null,
nms_Item_bucketEmpty = null,
nms_Item_bucketWater = null,
nms_Item_bucketLava = null,
nms_Item_minecartEmpty = null,
nms_Item_saddle = null,
nms_Item_doorIron = null,
nms_Item_redstone = null,
nms_Item_snowball = null,
nms_Item_boat = null,
nms_Item_leather = null,
nms_Item_bucketMilk = null,
nms_Item_brick = null,
nms_Item_clay = null,
nms_Item_reed = null,
nms_Item_paper = null,
nms_Item_book = null,
nms_Item_slimeBall = null,
nms_Item_minecartCrate = null,
nms_Item_minecartPowered = null,
nms_Item_egg = null,
nms_Item_compass = null,
nms_Item_fishingRod = null,
nms_Item_pocketSundial = null,
nms_Item_glowstone = null,
nms_Item_fishRaw = null,
nms_Item_fishCooked = null,
nms_Item_dyePowder = null,
nms_Item_bone = null;
let nms_Item_sugar = null,
nms_Item_cake = null,
nms_Item_bed = null,
nms_Item_redstoneRepeater = null,
nms_Item_cookie = null,
nms_Item_map = null,
nms_Item_shears = null,
nms_Item_melon = null,
nms_Item_pumpkinSeeds = null,
nms_Item_melonSeeds = null,
nms_Item_beefRaw = null,
nms_Item_beefCooked = null,
nms_Item_chickenRaw = null,
nms_Item_chickenCooked = null,
nms_Item_rottenFlesh = null,
nms_Item_enderPearl = null,
nms_Item_blazeRod = null,
nms_Item_ghastTear = null,
nms_Item_goldNugget = null,
nms_Item_netherStalkSeeds = null,
nms_Item_potion = null,
nms_Item_glassBottle = null,
nms_Item_spiderEye = null,
nms_Item_fermentedSpiderEye = null,
nms_Item_blazePowder = null,
nms_Item_magmaCream = null,
nms_Item_brewingStand = null,
nms_Item_cauldron = null,
nms_Item_eyeOfEnder = null,
nms_Item_speckledMelon = null,
nms_Item_monsterPlacer = null,
nms_Item_expBottle = null,
nms_Item_fireballCharge = null,
nms_Item_writableBook = null,
nms_Item_writtenBook = null,
nms_Item_emerald = null,
nms_Item_itemFrame = null,
nms_Item_flowerPot = null,
nms_Item_carrot = null,
nms_Item_potato = null,
nms_Item_bakedPotato = null,
nms_Item_poisonousPotato = null,
nms_Item_emptyMap = null,
nms_Item_goldenCarrot = null,
nms_Item_skull = null,
nms_Item_carrotOnAStick = null,
nms_Item_netherStar = null,
nms_Item_pumpkinPie = null,
nms_Item_firework = null,
nms_Item_fireworkCharge = null;
let nms_Item_enchantedBook = null,
nms_Item_comparator = null,
nms_Item_netherrackBrick = null,
nms_Item_netherQuartz = null,
nms_Item_minecartTnt = null,
nms_Item_minecartHopper = null,
nms_Item_horseArmorIron = null,
nms_Item_horseArmorGold = null,
nms_Item_horseArmorDiamond = null,
nms_Item_leash = null,
nms_Item_nameTag = null,
nms_Item_record13 = null,
nms_Item_recordCat = null,
nms_Item_recordBlocks = null,
nms_Item_recordChirp = null,
nms_Item_recordFar = null,
nms_Item_recordMall = null,
nms_Item_recordMellohi = null,
nms_Item_recordStal = null,
nms_Item_recordStrad = null,
nms_Item_recordWard = null,
nms_Item_record11 = null,
nms_Item_recordWait = null,
nms_Item_$callClinit = () => {
    nms_Item_$callClinit = $rt_eraseClinit(nms_Item);
    nms_Item__clinit_();
},
nms_Item__init_ = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_Item_$callClinit();
    $this.$maxStackSize = 64;
    var$2 = 256 + $par1 | 0;
    $this.$itemID0 = var$2;
    if (nms_Item_itemsList.data[var$2] !== null) {
        if (jl_System_outCache === null) {
            var$3 = new otcic_JSStdoutPrintStream;
            var$4 = new ji_ByteArrayOutputStream;
            var$4.$buf = $rt_createByteArray(32);
            var$3.$out0 = var$4;
            var$4 = new jl_StringBuilder;
            jl_Object__init_(var$4);
            var$4.$buffer = $rt_createCharArray(16);
            var$3.$sb = var$4;
            var$3.$buffer0 = $rt_createCharArray(32);
            var$3.$autoFlush = 0;
            var$3.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$3;
        }
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(398));
        jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $par1, 10);
        var$3 = new jl_String;
        var$5 = var$4.$buffer;
        var$6 = var$5.data;
        var$7 = var$4.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            $rt_putStdout($rt_ustr(var$3));
            $rt_putStdout("\n");
        } else {
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$4);
            $rt_throw(var$4);
        }
    }
    nms_Item_itemsList.data[var$2] = $this;
},
nms_Item__init_0 = var_0 => {
    let var_1 = new nms_Item();
    nms_Item__init_(var_1, var_0);
    return var_1;
},
nms_Item_setMaxStackSize = ($this, $par1) => {
    $this.$maxStackSize = $par1;
    return $this;
},
nms_Item_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    return 0;
},
nms_Item_getStrVsBlock = ($this, $par1ItemStack, $par2Block) => {
    return 1.0;
},
nms_Item_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return $par1ItemStack;
},
nms_Item_onEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return $par1ItemStack;
},
nms_Item_getItemStackLimit = $this => {
    return $this.$maxStackSize;
},
nms_Item_getMetadata = ($this, $par1) => {
    return 0;
},
nms_Item_getHasSubtypes = $this => {
    return $this.$hasSubtypes;
},
nms_Item_setHasSubtypes = ($this, $par1) => {
    $this.$hasSubtypes = $par1;
    return $this;
},
nms_Item_getMaxDamage = $this => {
    return $this.$maxDamage;
},
nms_Item_setMaxDamage = ($this, $par1) => {
    $this.$maxDamage = $par1;
    return $this;
},
nms_Item_isDamageable = $this => {
    return $this.$maxDamage > 0 && !$this.$hasSubtypes ? 1 : 0;
},
nms_Item_hitEntity = ($this, $par1ItemStack, $par2EntityLivingBase, $par3EntityLivingBase) => {
    return 0;
},
nms_Item_onBlockDestroyed = ($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase) => {
    return 0;
},
nms_Item_canHarvestBlock = ($this, $par1Block) => {
    return 0;
},
nms_Item_itemInteractionForEntity = ($this, $par1ItemStack, $par2EntityPlayer, $par3EntityLivingBase) => {
    return 0;
},
nms_Item_setFull3D = $this => {
    $this.$bFull3D = 1;
    return $this;
},
nms_Item_setUnlocalizedName = ($this, $par1Str) => {
    $this.$unlocalizedName = $par1Str;
    return $this;
},
nms_Item_getUnlocalizedNameInefficiently = ($this, $par1ItemStack) => {
    let $var2;
    $var2 = $this.$getUnlocalizedName($par1ItemStack);
    if ($var2 === null)
        $par1ItemStack = $rt_s(3);
    else {
        nms_StatCollector_$callClinit();
        $par1ItemStack = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var2);
    }
    return $par1ItemStack;
},
nms_Item_getUnlocalizedName0 = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$unlocalizedName;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(399));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_Item_getUnlocalizedName = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    $par1ItemStack = $this.$unlocalizedName;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(399));
    var$3 = var$2.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return $par1ItemStack;
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_Item_setContainerItem = ($this, $par1Item) => {
    $this.$containerItem = $par1Item;
    return $this;
},
nms_Item_doesContainerItemLeaveCraftingGrid = ($this, $par1ItemStack) => {
    return 1;
},
nms_Item_getShareTag = $this => {
    return 1;
};
let nms_Item_getContainerItem = $this => {
    return $this.$containerItem;
},
nms_Item_hasContainerItem = $this => {
    return $this.$containerItem === null ? 0 : 1;
},
nms_Item_getStatName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$getUnlocalizedName0();
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(400));
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        nms_StatCollector_$callClinit();
        return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$1);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_Item_getItemStackDisplayName = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    $par1ItemStack = $this.$getUnlocalizedName($par1ItemStack);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, $par1ItemStack);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(400));
    $par1ItemStack = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        nms_StatCollector_$callClinit();
        return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_Item_onUpdate = ($this, $par1ItemStack, $par2World, $par3Entity, $par4, $par5) => {
    return;
},
nms_Item_onCreated = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return;
},
nms_Item_isMap = $this => {
    return 0;
},
nms_Item_getItemUseAction = ($this, $par1ItemStack) => {
    return nms_EnumAction_none;
},
nms_Item_getMaxItemUseDuration = ($this, $par1ItemStack) => {
    return 0;
},
nms_Item_onPlayerStoppedUsing = ($this, $par1ItemStack, $par2World, $par3EntityPlayer, $par4) => {
    return;
},
nms_Item_setPotionEffect = ($this, $par1Str) => {
    $this.$potionEffect = $par1Str;
    return $this;
},
nms_Item_getPotionEffect = $this => {
    return $this.$potionEffect;
},
nms_Item_isPotionIngredient = $this => {
    return $this.$potionEffect === null ? 0 : 1;
},
nms_Item_getItemDisplayName = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    $par1ItemStack = $this.$getUnlocalizedName($par1ItemStack);
    if ($par1ItemStack === null)
        var$2 = $rt_s(3);
    else {
        nms_StatCollector_$callClinit();
        var$2 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $par1ItemStack);
    }
    $par1ItemStack = new jl_StringBuilder;
    $par1ItemStack.$buffer = $rt_createCharArray(16);
    var$3 = $par1ItemStack.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert($par1ItemStack, var$3, var$2);
    jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(400));
    var$2 = new jl_String;
    var$4 = $par1ItemStack.$buffer;
    var$5 = var$4.data;
    var$6 = $par1ItemStack.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        nms_StatCollector_$callClinit();
        var$2 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$2);
        $par1ItemStack = new jl_StringBuilder;
        $par1ItemStack.$buffer = $rt_createCharArray(16);
        var$3 = $par1ItemStack.$length0;
        if (var$2 === null)
            var$2 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par1ItemStack, var$3, var$2);
        var$2 = new jl_String;
        var$4 = $par1ItemStack.$buffer;
        var$5 = var$4.data;
        var$6 = $par1ItemStack.$length0;
        var$7 = var$5.length;
        if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
            var$2.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
            return jl_String_trim(var$2);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_Item_isItemTool = ($this, $par1ItemStack) => {
    return $this.$maxStackSize == 1 && ($this.$maxDamage > 0 && !$this.$hasSubtypes ? 1 : 0) ? 1 : 0;
},
nms_Item_getMovingObjectPositionFromPlayer = ($this, $par1World, $par2EntityPlayer, $par3) => {
    let $var16, $var5, $var6, $var7, $var9, $var21, $var11, $var13, $var15, var$13, $var14, $var17, $var18, $var20, $var23, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();$var23 = $thread.pop();$var20 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var14 = $thread.pop();var$13 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var21 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var16 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var16 = $par2EntityPlayer.$prevRotationPitch;
        $var5 = $var16 + ($par2EntityPlayer.$rotationPitch - $var16) * 1.0;
        $var16 = $par2EntityPlayer.$prevRotationYaw;
        $var6 = $var16 + ($par2EntityPlayer.$rotationYaw - $var16) * 1.0;
        $var7 = $par2EntityPlayer.$prevPosX;
        $var7 = $var7 + ($par2EntityPlayer.$posX - $var7) * 1.0;
        $var9 = $par2EntityPlayer.$prevPosY;
        $var9 = $var9 + ($par2EntityPlayer.$posY - $var9) * 1.0 + 1.62 - $par2EntityPlayer.$yOffset;
        $var21 = $par2EntityPlayer.$prevPosZ;
        $var11 = $var21 + ($par2EntityPlayer.$posZ - $var21) * 1.0;
        $var13 = nms_Vec3Pool_getVecFromPool($par1World.$vecPool, $var7, $var9, $var11);
        $var15 =  -$var6 * 0.01745329238474369 - 3.1415927410125732;
        var$13 = nms_MathHelper_SIN_TABLE.data;
        $var16 = $var15 * 10430.3779296875;
        $var14 = var$13[($var16 + 16384.0 | 0) & 65535];
        $var15 = var$13[($var16 | 0) & 65535];
        $var5 =  -$var5 * 0.01745329238474369 * 10430.3779296875;
        $var16 =  -var$13[($var5 + 16384.0 | 0) & 65535];
        $var17 = var$13[($var5 | 0) & 65535];
        $var18 = $var15 * $var16;
        $var20 = $var14 * $var16;
        $var7 = $var18 * 5.0;
        $var9 = $var17 * 5.0;
        $var11 = $var20 * 5.0;
        $var23 = nms_Vec3Pool_getVecFromPool($var13.$myVec3LocalPool, $var13.$xCoord + $var7, $var13.$yCoord + $var9, $var13.$zCoord + $var11);
        var$19 = $par3 ? 0 : 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_rayTraceBlocks_do_do($par1World, $var13, $var23, $par3, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $var16, $var5, $var6, $var7, $var9, $var21, $var11, $var13, $var15, var$13, $var14, $var17, $var18, $var20, $var23, var$19, $ptr);
},
nms_Item_getItemEnchantability = $this => {
    return 0;
},
nms_Item_setCreativeTab = ($this, $par1CreativeTabs) => {
    $this.$tabToDisplayOn = $par1CreativeTabs;
    return $this;
},
nms_Item_canItemEditBlocks = $this => {
    return 1;
},
nms_Item_getIsRepairable = ($this, $par1ItemStack, $par2ItemStack) => {
    return 0;
},
nms_Item_setTextureName = ($this, $par1Str) => {
    $this.$iconString = $par1Str;
    return $this;
},
nms_Item__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    nms_Item_field_111210_e = nle_ProfileUUID_fromString($rt_s(401));
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    nms_Item_itemRand = var$1;
    nms_Item_itemsList = $rt_createArray(nms_Item, 32000);
    var$3 = new nms_ItemSpade;
    var$1 = nms_EnumToolMaterial_IRON;
    nms_ItemSpade_$callClinit();
    var$4 = nms_ItemSpade_blocksEffectiveAgainst;
    nms_Item__init_(var$3, 0);
    var$3.$efficiencyOnProperMaterial = 4.0;
    var$3.$toolMaterial = var$1;
    var$3.$blocksEffectiveAgainst = var$4;
    var$3.$maxStackSize = 1;
    var$3.$maxDamage = var$1.$maxUses;
    var$3.$efficiencyOnProperMaterial = var$1.$efficiencyOnProperMaterial0;
    var$3.$damageVsEntity0 = 1.0 + var$1.$damageVsEntity;
    nms_CreativeTabs_$callClinit();
    var$3.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$3.$unlocalizedName = $rt_s(402);
    var$3.$iconString = $rt_s(403);
    nms_Item_shovelIron = var$3;
    var$1 = new nms_ItemPickaxe;
    var$3 = nms_EnumToolMaterial_IRON;
    nms_ItemPickaxe_$callClinit();
    var$4 = nms_ItemPickaxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 1);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 2.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(404);
    var$1.$iconString = $rt_s(405);
    nms_Item_pickaxeIron = var$1;
    var$1 = new nms_ItemAxe;
    var$3 = nms_EnumToolMaterial_IRON;
    nms_ItemAxe_$callClinit();
    var$4 = nms_ItemAxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 2);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 3.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(406);
    var$1.$iconString = $rt_s(407);
    nms_Item_axeIron = var$1;
    var$1 = new nms_ItemFlintAndSteel;
    nms_Item__init_(var$1, 3);
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = 64;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(408);
    var$1.$iconString = $rt_s(409);
    nms_Item_flintAndSteel = var$1;
    var$1 = new nms_ItemFood;
    nms_Item__init_(var$1, 4);
    var$1.$itemUseDuration = 32;
    var$1.$healAmount = 4;
    var$1.$isWolfsFavoriteMeat = 0;
    var$1.$saturationModifier = 0.30000001192092896;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabFood;
    var$1.$unlocalizedName = $rt_s(410);
    var$1.$iconString = $rt_s(410);
    nms_Item_appleRed = var$1;
    var$1 = new nms_ItemBow;
    nms_Item__init_(var$1, 5);
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = 384;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$unlocalizedName = $rt_s(411);
    var$1.$iconString = $rt_s(411);
    nms_Item_bow = var$1;
    var$1 = nms_Item__init_0(6);
    var$1.$unlocalizedName = $rt_s(412);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$iconString = $rt_s(412);
    nms_Item_arrow = var$1;
    var$1 = new nms_ItemCoal;
    nms_Item__init_(var$1, 7);
    var$1.$hasSubtypes = 1;
    var$1.$maxDamage = 0;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$unlocalizedName = $rt_s(413);
    var$1.$iconString = $rt_s(413);
    nms_Item_coal = var$1;
    var$1 = nms_Item__init_0(8);
    var$1.$unlocalizedName = $rt_s(414);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(414);
    nms_Item_diamond = var$1;
    var$1 = nms_Item__init_0(9);
    var$1.$unlocalizedName = $rt_s(415);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(416);
    nms_Item_ingotIron = var$1;
    var$1 = nms_Item__init_0(10);
    var$1.$unlocalizedName = $rt_s(417);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(418);
    nms_Item_ingotGold = var$1;
    var$1 = new nms_ItemSword;
    var$3 = nms_EnumToolMaterial_IRON;
    nms_Item__init_(var$1, 11);
    var$1.$toolMaterial0 = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$weaponDamage = 4.0 + var$3.$damageVsEntity;
    var$1.$unlocalizedName = $rt_s(419);
    var$1.$iconString = $rt_s(420);
    nms_Item_swordIron = var$1;
    var$1 = new nms_ItemSword;
    var$3 = nms_EnumToolMaterial_WOOD;
    nms_Item__init_(var$1, 12);
    var$1.$toolMaterial0 = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$weaponDamage = 4.0 + var$3.$damageVsEntity;
    var$1.$unlocalizedName = $rt_s(421);
    var$1.$iconString = $rt_s(422);
    nms_Item_swordWood = var$1;
    var$1 = new nms_ItemSpade;
    var$3 = nms_EnumToolMaterial_WOOD;
    var$4 = nms_ItemSpade_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 13);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 1.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(423);
    var$1.$iconString = $rt_s(424);
    nms_Item_shovelWood = var$1;
    var$1 = new nms_ItemPickaxe;
    var$3 = nms_EnumToolMaterial_WOOD;
    var$4 = nms_ItemPickaxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 14);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 2.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(425);
    var$1.$iconString = $rt_s(426);
    nms_Item_pickaxeWood = var$1;
    var$1 = new nms_ItemAxe;
    var$3 = nms_EnumToolMaterial_WOOD;
    var$4 = nms_ItemAxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 15);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 3.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(427);
    var$1.$iconString = $rt_s(428);
    nms_Item_axeWood = var$1;
    var$1 = new nms_ItemSword;
    var$3 = nms_EnumToolMaterial_STONE;
    nms_Item__init_(var$1, 16);
    var$1.$toolMaterial0 = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$weaponDamage = 4.0 + var$3.$damageVsEntity;
    var$1.$unlocalizedName = $rt_s(429);
    var$1.$iconString = $rt_s(430);
    nms_Item_swordStone = var$1;
    var$1 = new nms_ItemSpade;
    var$3 = nms_EnumToolMaterial_STONE;
    var$4 = nms_ItemSpade_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 17);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 1.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(431);
    var$1.$iconString = $rt_s(432);
    nms_Item_shovelStone = var$1;
    var$1 = new nms_ItemPickaxe;
    var$3 = nms_EnumToolMaterial_STONE;
    var$4 = nms_ItemPickaxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 18);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 2.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(433);
    var$1.$iconString = $rt_s(434);
    nms_Item_pickaxeStone = var$1;
    var$1 = new nms_ItemAxe;
    var$3 = nms_EnumToolMaterial_STONE;
    var$4 = nms_ItemAxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 19);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 3.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(435);
    var$1.$iconString = $rt_s(436);
    nms_Item_axeStone = var$1;
    var$1 = new nms_ItemSword;
    var$3 = nms_EnumToolMaterial_EMERALD;
    nms_Item__init_(var$1, 20);
    var$1.$toolMaterial0 = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$weaponDamage = 4.0 + var$3.$damageVsEntity;
    var$1.$unlocalizedName = $rt_s(437);
    var$1.$iconString = $rt_s(438);
    nms_Item_swordDiamond = var$1;
    var$1 = new nms_ItemSpade;
    var$3 = nms_EnumToolMaterial_EMERALD;
    var$4 = nms_ItemSpade_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 21);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 1.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(439);
    var$1.$iconString = $rt_s(440);
    nms_Item_shovelDiamond = var$1;
    var$1 = new nms_ItemPickaxe;
    var$3 = nms_EnumToolMaterial_EMERALD;
    var$4 = nms_ItemPickaxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 22);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 2.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(441);
    var$1.$iconString = $rt_s(442);
    nms_Item_pickaxeDiamond = var$1;
    var$1 = new nms_ItemAxe;
    var$3 = nms_EnumToolMaterial_EMERALD;
    var$4 = nms_ItemAxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 23);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 3.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(443);
    var$1.$iconString = $rt_s(444);
    nms_Item_axeDiamond = var$1;
    var$1 = nms_Item__init_0(24);
    var$1.$bFull3D = 1;
    var$1.$unlocalizedName = $rt_s(445);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(445);
    nms_Item_stick = var$1;
    var$1 = nms_Item__init_0(25);
    var$1.$unlocalizedName = $rt_s(446);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(446);
    nms_Item_bowlEmpty = var$1;
    var$1 = new nms_ItemSoup;
    nms_Item__init_(var$1, 26);
    var$1.$itemUseDuration = 32;
    var$1.$healAmount = 6;
    var$1.$isWolfsFavoriteMeat = 0;
    var$1.$saturationModifier = 0.6000000238418579;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabFood;
    var$1.$maxStackSize = 1;
    var$1.$unlocalizedName = $rt_s(447);
    var$1.$iconString = $rt_s(448);
    nms_Item_bowlSoup = var$1;
    var$1 = new nms_ItemSword;
    var$3 = nms_EnumToolMaterial_GOLD;
    nms_Item__init_(var$1, 27);
    var$1.$toolMaterial0 = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$1.$weaponDamage = 4.0 + var$3.$damageVsEntity;
    var$1.$unlocalizedName = $rt_s(449);
    var$1.$iconString = $rt_s(450);
    nms_Item_swordGold = var$1;
    var$1 = new nms_ItemSpade;
    var$3 = nms_EnumToolMaterial_GOLD;
    var$4 = nms_ItemSpade_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 28);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 1.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(451);
    var$1.$iconString = $rt_s(452);
    nms_Item_shovelGold = var$1;
    var$1 = new nms_ItemPickaxe;
    var$3 = nms_EnumToolMaterial_GOLD;
    var$4 = nms_ItemPickaxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 29);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 2.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(453);
    var$1.$iconString = $rt_s(454);
    nms_Item_pickaxeGold = var$1;
    var$1 = new nms_ItemAxe;
    var$3 = nms_EnumToolMaterial_GOLD;
    var$4 = nms_ItemAxe_blocksEffectiveAgainst;
    nms_Item__init_(var$1, 30);
    var$1.$efficiencyOnProperMaterial = 4.0;
    var$1.$toolMaterial = var$3;
    var$1.$blocksEffectiveAgainst = var$4;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$efficiencyOnProperMaterial = var$3.$efficiencyOnProperMaterial0;
    var$1.$damageVsEntity0 = 3.0 + var$3.$damageVsEntity;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(455);
    var$1.$iconString = $rt_s(456);
    nms_Item_axeGold = var$1;
    var$1 = new nms_ItemReed;
    nms_Block_$callClinit();
    var$3 = nms_Block_tripWire;
    nms_Item__init_(var$1, 31);
    var$1.$spawnID = var$3.$blockID;
    var$1.$unlocalizedName = $rt_s(457);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(457);
    nms_Item_silk = var$1;
    var$1 = nms_Item__init_0(32);
    var$1.$unlocalizedName = $rt_s(458);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(458);
    nms_Item_feather = var$1;
    var$1 = nms_Item__init_0(33);
    var$1.$unlocalizedName = $rt_s(459);
    nms_PotionHelper_$callClinit();
    var$1.$potionEffect = nms_PotionHelper_gunpowderEffect;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(460);
    nms_Item_gunpowder = var$1;
    var$1 = new nms_ItemHoe;
    var$3 = nms_EnumToolMaterial_WOOD;
    nms_Item__init_(var$1, 34);
    var$1.$theToolMaterial = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(461);
    var$1.$iconString = $rt_s(462);
    nms_Item_hoeWood = var$1;
    var$1 = new nms_ItemHoe;
    var$3 = nms_EnumToolMaterial_STONE;
    nms_Item__init_(var$1, 35);
    var$1.$theToolMaterial = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(463);
    var$1.$iconString = $rt_s(464);
    nms_Item_hoeStone = var$1;
    var$1 = new nms_ItemHoe;
    var$3 = nms_EnumToolMaterial_IRON;
    nms_Item__init_(var$1, 36);
    var$1.$theToolMaterial = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(465);
    var$1.$iconString = $rt_s(466);
    nms_Item_hoeIron = var$1;
    var$1 = new nms_ItemHoe;
    var$3 = nms_EnumToolMaterial_EMERALD;
    nms_Item__init_(var$1, 37);
    var$1.$theToolMaterial = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(467);
    var$1.$iconString = $rt_s(468);
    nms_Item_hoeDiamond = var$1;
    var$1 = new nms_ItemHoe;
    var$3 = nms_EnumToolMaterial_GOLD;
    nms_Item__init_(var$1, 38);
    var$1.$theToolMaterial = var$3;
    var$1.$maxStackSize = 1;
    var$1.$maxDamage = var$3.$maxUses;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabTools;
    var$1.$unlocalizedName = $rt_s(469);
    var$1.$iconString = $rt_s(470);
    nms_Item_hoeGold = var$1;
    var$1 = new nms_ItemSeeds;
    var$5 = nms_Block_crops.$blockID;
    var$6 = nms_Block_tilledField.$blockID;
    nms_Item__init_(var$1, 39);
    var$1.$blockType0 = var$5;
    var$1.$soilBlockID = var$6;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$unlocalizedName = $rt_s(471);
    var$1.$iconString = $rt_s(472);
    nms_Item_seeds = var$1;
    var$1 = nms_Item__init_0(40);
    var$1.$unlocalizedName = $rt_s(473);
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
    var$1.$iconString = $rt_s(473);
    nms_Item_wheat = var$1;
    var$1 = new nms_ItemFood;
    nms_Item__init_(var$1, 41);
    var$1.$itemUseDuration = 32;
    var$1.$healAmount = 5;
    var$1.$isWolfsFavoriteMeat = 0;
    var$1.$saturationModifier = 0.6000000238418579;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabFood;
    var$1.$unlocalizedName = $rt_s(474);
    var$1.$iconString = $rt_s(474);
    nms_Item_bread = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CLOTH;
    nms_Item__init_(var$1, 42);
    var$1.$material = var$3;
    var$1.$armorType = 0;
    var$1.$renderIndex = 0;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[0];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[0], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(475);
    var$1.$iconString = $rt_s(476);
    nms_Item_helmetLeather = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CLOTH;
    nms_Item__init_(var$1, 43);
    var$1.$material = var$3;
    var$1.$armorType = 1;
    var$1.$renderIndex = 0;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[1];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[1], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(477);
    var$1.$iconString = $rt_s(478);
    nms_Item_plateLeather = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CLOTH;
    nms_Item__init_(var$1, 44);
    var$1.$material = var$3;
    var$1.$armorType = 2;
    var$1.$renderIndex = 0;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[2];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[2], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(479);
    var$1.$iconString = $rt_s(480);
    nms_Item_legsLeather = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CLOTH;
    nms_Item__init_(var$1, 45);
    var$1.$material = var$3;
    var$1.$armorType = 3;
    var$1.$renderIndex = 0;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[3];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[3], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(481);
    var$1.$iconString = $rt_s(482);
    nms_Item_bootsLeather = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CHAIN;
    nms_Item__init_(var$1, 46);
    var$1.$material = var$3;
    var$1.$armorType = 0;
    var$1.$renderIndex = 1;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[0];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[0], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(483);
    var$1.$iconString = $rt_s(484);
    nms_Item_helmetChain = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CHAIN;
    nms_Item__init_(var$1, 47);
    var$1.$material = var$3;
    var$1.$armorType = 1;
    var$1.$renderIndex = 1;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[1];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[1], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(485);
    var$1.$iconString = $rt_s(486);
    nms_Item_plateChain = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CHAIN;
    nms_Item__init_(var$1, 48);
    var$1.$material = var$3;
    var$1.$armorType = 2;
    var$1.$renderIndex = 1;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[2];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[2], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(487);
    var$1.$iconString = $rt_s(488);
    nms_Item_legsChain = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_CHAIN;
    nms_Item__init_(var$1, 49);
    var$1.$material = var$3;
    var$1.$armorType = 3;
    var$1.$renderIndex = 1;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[3];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[3], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(489);
    var$1.$iconString = $rt_s(490);
    nms_Item_bootsChain = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_IRON;
    nms_Item__init_(var$1, 50);
    var$1.$material = var$3;
    var$1.$armorType = 0;
    var$1.$renderIndex = 2;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[0];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[0], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(491);
    var$1.$iconString = $rt_s(492);
    nms_Item_helmetIron = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_IRON;
    nms_Item__init_(var$1, 51);
    var$1.$material = var$3;
    var$1.$armorType = 1;
    var$1.$renderIndex = 2;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[1];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[1], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(493);
    var$1.$iconString = $rt_s(494);
    nms_Item_plateIron = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_IRON;
    nms_Item__init_(var$1, 52);
    var$1.$material = var$3;
    var$1.$armorType = 2;
    var$1.$renderIndex = 2;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[2];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[2], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(495);
    var$1.$iconString = $rt_s(496);
    nms_Item_legsIron = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_IRON;
    nms_Item__init_(var$1, 53);
    var$1.$material = var$3;
    var$1.$armorType = 3;
    var$1.$renderIndex = 2;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[3];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[3], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(497);
    var$1.$iconString = $rt_s(498);
    nms_Item_bootsIron = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_DIAMOND;
    nms_Item__init_(var$1, 54);
    var$1.$material = var$3;
    var$1.$armorType = 0;
    var$1.$renderIndex = 3;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[0];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[0], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(499);
    var$1.$iconString = $rt_s(500);
    nms_Item_helmetDiamond = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_DIAMOND;
    nms_Item__init_(var$1, 55);
    var$1.$material = var$3;
    var$1.$armorType = 1;
    var$1.$renderIndex = 3;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[1];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[1], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(501);
    var$1.$iconString = $rt_s(502);
    nms_Item_plateDiamond = var$1;
    var$1 = new nms_ItemArmor;
    var$3 = nms_EnumArmorMaterial_DIAMOND;
    nms_Item__init_(var$1, 56);
    var$1.$material = var$3;
    var$1.$armorType = 2;
    var$1.$renderIndex = 3;
    var$1.$damageReduceAmount = var$3.$damageReductionAmountArray.data[2];
    var$1.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[2], var$3.$maxDamageFactor);
    var$1.$maxStackSize = 1;
    var$1.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$7 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl(var$3.$registryObjects, var$1, var$7);
    var$1.$unlocalizedName = $rt_s(503);
    var$1.$iconString = $rt_s(504);
    nms_Item_legsDiamond = var$1;
    var$1 = nms_ItemArmor__init_(57, nms_EnumArmorMaterial_DIAMOND, 3, 3);
    var$1.$unlocalizedName = $rt_s(505);
    var$1.$iconString = $rt_s(506);
    nms_Item_bootsDiamond = var$1;
    var$1 = nms_ItemArmor__init_(58, nms_EnumArmorMaterial_GOLD, 4, 0);
    var$1.$unlocalizedName = $rt_s(507);
    var$1.$iconString = $rt_s(508);
    nms_Item_helmetGold = var$1;
    var$1 = nms_ItemArmor__init_(59, nms_EnumArmorMaterial_GOLD, 4, 1);
    var$1.$unlocalizedName = $rt_s(509);
    nms_Item_plateGold = nms_Item_setTextureName(var$1, $rt_s(510));
    nms_Item_legsGold = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemArmor__init_(60, nms_EnumArmorMaterial_GOLD, 4, 2), $rt_s(511)), $rt_s(512));
    nms_Item_bootsGold = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemArmor__init_(61, nms_EnumArmorMaterial_GOLD, 4, 3), $rt_s(513)), $rt_s(514));
    nms_Item_flint = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(62), $rt_s(515)), nms_CreativeTabs_tabMaterials), $rt_s(515));
    nms_Item_porkRaw = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(63, 3, 0.30000001192092896, 1), $rt_s(516)), $rt_s(517));
    nms_Item_porkCooked = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(64, 8, 0.800000011920929, 1), $rt_s(518)), $rt_s(519));
    nms_Item_painting = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemHangingEntity__init_(65, $rt_cls(nms_EntityPainting)), $rt_s(520)), $rt_s(520));
    var$1 = nms_ItemFood_setAlwaysEdible(nms_ItemAppleGold__init_(66, 4, 1.2000000476837158, 0));
    nms_Potion_$callClinit();
    nms_Item_appleGold = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood_setPotionEffect(var$1, nms_Potion_regeneration.$id0, 5, 1, 1.0), $rt_s(521)), $rt_s(522));
    nms_Item_sign = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSign__init_0(67), $rt_s(523)), $rt_s(523));
    var$1 = new nms_ItemDoor;
    nms_Material_$callClinit();
    nms_ItemDoor__init_(var$1, 68, nms_Material_wood);
    nms_Item_doorWood = nms_Item_setTextureName(nms_Item_setUnlocalizedName(var$1, $rt_s(524)), $rt_s(525));
    nms_Item_bucketEmpty = nms_Item_setTextureName(nms_Item_setMaxStackSize(nms_Item_setUnlocalizedName(nms_ItemBucket__init_(69, 0), $rt_s(526)), 16), $rt_s(527));
    nms_Item_bucketWater = nms_Item_setTextureName(nms_Item_setContainerItem(nms_Item_setUnlocalizedName(nms_ItemBucket__init_(70, nms_Block_waterMoving.$blockID), $rt_s(528)), nms_Item_bucketEmpty), $rt_s(529));
    nms_Item_bucketLava = nms_Item_setTextureName(nms_Item_setContainerItem(nms_Item_setUnlocalizedName(nms_ItemBucket__init_(71, nms_Block_lavaMoving.$blockID), $rt_s(530)), nms_Item_bucketEmpty), $rt_s(531));
    nms_Item_minecartEmpty = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMinecart__init_(72, 0), $rt_s(532)), $rt_s(533));
    nms_Item_saddle = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSaddle__init_(73), $rt_s(534)), $rt_s(534));
    nms_Item_doorIron = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemDoor__init_0(74, nms_Material_iron), $rt_s(535)), $rt_s(536));
    nms_Item_redstone = nms_Item_setTextureName(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_ItemRedstone__init_(75), $rt_s(537)), nms_PotionHelper_redstoneEffect), $rt_s(538));
    nms_Item_snowball = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSnowball__init_(76), $rt_s(539)), $rt_s(539));
    nms_Item_boat = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemBoat__init_(77), $rt_s(540)), $rt_s(540));
    nms_Item_leather = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(78), $rt_s(541)), nms_CreativeTabs_tabMaterials), $rt_s(541));
    nms_Item_bucketMilk = nms_Item_setTextureName(nms_Item_setContainerItem(nms_Item_setUnlocalizedName(nms_ItemBucketMilk__init_0(79), $rt_s(542)), nms_Item_bucketEmpty), $rt_s(543));
    nms_Item_brick = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(80), $rt_s(81)), nms_CreativeTabs_tabMaterials), $rt_s(81));
    nms_Item_clay = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(81), $rt_s(544)), nms_CreativeTabs_tabMaterials), $rt_s(545));
    nms_Item_reed = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemReed__init_(82, nms_Block_reed), $rt_s(546)), nms_CreativeTabs_tabMaterials), $rt_s(546));
    nms_Item_paper = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(83), $rt_s(547)), nms_CreativeTabs_tabMisc), $rt_s(547));
    nms_Item_book = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemBook__init_(84), $rt_s(548)), nms_CreativeTabs_tabMisc), $rt_s(549));
    nms_Item_slimeBall = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(85), $rt_s(550)), nms_CreativeTabs_tabMisc), $rt_s(550));
    nms_Item_minecartCrate = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMinecart__init_(86, 1), $rt_s(551)), $rt_s(552));
    nms_Item_minecartPowered = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMinecart__init_(87, 2), $rt_s(553)), $rt_s(554));
    nms_Item_egg = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemEgg__init_0(88), $rt_s(555)), $rt_s(555));
    nms_Item_compass = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(89), $rt_s(556)), nms_CreativeTabs_tabTools), $rt_s(556));
    nms_Item_fishingRod = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFishingRod__init_0(90), $rt_s(557)), $rt_s(558));
    nms_Item_pocketSundial = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(91), $rt_s(559)), nms_CreativeTabs_tabTools), $rt_s(559));
    nms_Item_glowstone = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(92), $rt_s(560)), nms_PotionHelper_glowstoneEffect), nms_CreativeTabs_tabMaterials), $rt_s(561));
    nms_Item_fishRaw = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(93, 2, 0.30000001192092896, 0), $rt_s(562)), $rt_s(563));
    nms_Item_fishCooked = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(94, 5, 0.6000000238418579, 0), $rt_s(564)), $rt_s(565));
    nms_Item_dyePowder = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemDye__init_(95), $rt_s(566)), $rt_s(567));
    nms_Item_bone = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setFull3D(nms_Item_setUnlocalizedName(nms_Item__init_0(96), $rt_s(568))), nms_CreativeTabs_tabMisc), $rt_s(568));
    nms_Item_sugar = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(97), $rt_s(569)), nms_PotionHelper_sugarEffect), nms_CreativeTabs_tabMaterials), $rt_s(569));
    nms_Item_cake = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item_setMaxStackSize(nms_ItemReed__init_(98, nms_Block_cake), 1), $rt_s(570)), nms_CreativeTabs_tabFood), $rt_s(570));
    nms_Item_bed = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_Item_setMaxStackSize(nms_ItemBed__init_0(99), 1), $rt_s(571)), $rt_s(571));
    nms_Item_redstoneRepeater = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemReed__init_(100, nms_Block_redstoneRepeaterIdle), $rt_s(572)), nms_CreativeTabs_tabRedstone), $rt_s(573));
    nms_Item_cookie = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(101, 2, 0.10000000149011612, 0), $rt_s(574)), $rt_s(574));
    nms_Item_map = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMap__init_(102), $rt_s(575)), $rt_s(576));
    nms_Item_shears = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemShears__init_0(103), $rt_s(577)), $rt_s(577));
    nms_Item_melon = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(104, 2, 0.30000001192092896, 0), $rt_s(578)), $rt_s(578));
    nms_Item_pumpkinSeeds = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSeeds__init_(105, nms_Block_pumpkinStem.$blockID, nms_Block_tilledField.$blockID), $rt_s(579)), $rt_s(579));
    nms_Item_melonSeeds = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSeeds__init_(106, nms_Block_melonStem.$blockID, nms_Block_tilledField.$blockID), $rt_s(580)), $rt_s(580));
    nms_Item_beefRaw = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(107, 3, 0.30000001192092896, 1), $rt_s(581)), $rt_s(582));
    nms_Item_beefCooked = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(108, 8, 0.800000011920929, 1), $rt_s(583)), $rt_s(584));
    nms_Item_chickenRaw = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood_setPotionEffect(nms_ItemFood__init_(109, 2, 0.30000001192092896, 1), nms_Potion_hunger.$id0, 30, 0, 0.30000001192092896), $rt_s(585)), $rt_s(586));
    nms_Item_chickenCooked = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(110, 6, 0.6000000238418579, 1), $rt_s(587)), $rt_s(588));
    nms_Item_rottenFlesh = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood_setPotionEffect(nms_ItemFood__init_(111, 4, 0.10000000149011612, 1), nms_Potion_hunger.$id0, 30, 0, 0.800000011920929), $rt_s(589)), $rt_s(590));
    nms_Item_enderPearl = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemEnderPearl__init_0(112), $rt_s(591)), $rt_s(592));
    nms_Item_blazeRod = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(113), $rt_s(154)), nms_CreativeTabs_tabMaterials), $rt_s(593));
    nms_Item_ghastTear = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(114), $rt_s(594)), $rt_s(595)), nms_CreativeTabs_tabBrewing), $rt_s(596));
    nms_Item_goldNugget = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(115), $rt_s(597)), nms_CreativeTabs_tabMaterials), $rt_s(598));
    nms_Item_netherStalkSeeds = nms_Item_setTextureName(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_ItemSeeds__init_(116, nms_Block_netherStalk.$blockID, nms_Block_slowSand.$blockID), $rt_s(599)), $rt_s(600)), $rt_s(601));
    nms_Item_potion = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemPotion__init_(117), $rt_s(155)), $rt_s(155));
    nms_Item_glassBottle = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemGlassBottle__init_(118), $rt_s(602)), $rt_s(603));
    nms_Item_spiderEye = nms_Item_setTextureName(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_ItemFood_setPotionEffect(nms_ItemFood__init_(119, 2, 0.800000011920929, 0), nms_Potion_poison.$id0, 5, 0, 1.0), $rt_s(604)), nms_PotionHelper_spiderEyeEffect), $rt_s(605));
    nms_Item_fermentedSpiderEye = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(120), $rt_s(606)), nms_PotionHelper_fermentedSpiderEyeEffect), nms_CreativeTabs_tabBrewing), $rt_s(607));
    nms_Item_blazePowder = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(121), $rt_s(608)), nms_PotionHelper_blazePowderEffect), nms_CreativeTabs_tabBrewing), $rt_s(609));
    nms_Item_magmaCream = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(122), $rt_s(610)), nms_PotionHelper_magmaCreamEffect), nms_CreativeTabs_tabBrewing), $rt_s(611));
    nms_Item_brewingStand = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemReed__init_(123, nms_Block_brewingStand), $rt_s(612)), nms_CreativeTabs_tabBrewing), $rt_s(613));
    nms_Item_cauldron = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemReed__init_(124, nms_Block_cauldron), $rt_s(614)), nms_CreativeTabs_tabBrewing), $rt_s(614));
    nms_Item_eyeOfEnder = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemEnderEye__init_0(125), $rt_s(615)), $rt_s(616));
    nms_Item_speckledMelon = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_Item__init_0(126), $rt_s(617)), nms_PotionHelper_speckledMelonEffect), nms_CreativeTabs_tabBrewing), $rt_s(618));
    nms_Item_monsterPlacer = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMonsterPlacer__init_(127), $rt_s(619)), $rt_s(620));
    nms_Item_expBottle = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemExpBottle__init_(128), $rt_s(621)), $rt_s(622));
    nms_Item_fireballCharge = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFireball__init_0(129), $rt_s(623)), $rt_s(623));
    nms_Item_writableBook = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemWritableBook__init_0(130), $rt_s(624)), nms_CreativeTabs_tabMisc), $rt_s(625));
    nms_Item_writtenBook = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemEditableBook__init_0(131), $rt_s(626)), $rt_s(627));
    nms_Item_emerald = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(132), $rt_s(628)), nms_CreativeTabs_tabMaterials), $rt_s(628));
    nms_Item_itemFrame = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemHangingEntity__init_(133, $rt_cls(nms_EntityItemFrame)), $rt_s(629)), $rt_s(630));
    nms_Item_flowerPot = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemReed__init_(134, nms_Block_flowerPot), $rt_s(631)), nms_CreativeTabs_tabDecorations), $rt_s(632));
    nms_Item_carrot = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSeedFood__init_(135, 4, 0.6000000238418579, nms_Block_carrot.$blockID, nms_Block_tilledField.$blockID), $rt_s(633)), $rt_s(634));
    nms_Item_potato = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSeedFood__init_(136, 1, 0.30000001192092896, nms_Block_potato.$blockID, nms_Block_tilledField.$blockID), $rt_s(635)), $rt_s(635));
    nms_Item_bakedPotato = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood__init_(137, 6, 0.6000000238418579, 0), $rt_s(636)), $rt_s(637));
    nms_Item_poisonousPotato = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFood_setPotionEffect(nms_ItemFood__init_(138, 2, 0.30000001192092896, 0), nms_Potion_poison.$id0, 5, 0, 0.6000000238418579), $rt_s(638)), $rt_s(639));
    nms_Item_emptyMap = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemEmptyMap__init_(139), $rt_s(640)), $rt_s(641));
    nms_Item_goldenCarrot = nms_Item_setTextureName(nms_Item_setPotionEffect(nms_Item_setUnlocalizedName(nms_ItemFood__init_(140, 6, 1.2000000476837158, 0), $rt_s(642)), nms_PotionHelper_goldenCarrotEffect), $rt_s(643));
    nms_Item_skull = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemSkull__init_0(141), $rt_s(644)), $rt_s(644));
    nms_Item_carrotOnAStick = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemCarrotOnAStick__init_(142), $rt_s(645)), $rt_s(646));
    nms_Item_netherStar = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemSimpleFoiled__init_0(143), $rt_s(647)), nms_CreativeTabs_tabMaterials), $rt_s(648));
    nms_Item_pumpkinPie = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemFood__init_(144, 8, 0.30000001192092896, 0), $rt_s(649)), nms_CreativeTabs_tabFood), $rt_s(650));
    nms_Item_firework = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemFirework__init_0(145), $rt_s(651)), $rt_s(651));
    nms_Item_fireworkCharge = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemFireworkCharge__init_(146), $rt_s(652)), nms_CreativeTabs_tabMisc), $rt_s(653));
    nms_Item_enchantedBook = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_Item_setMaxStackSize(nms_ItemEnchantedBook__init_0(147), 1), $rt_s(654)), $rt_s(655));
    nms_Item_comparator = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_ItemReed__init_(148, nms_Block_redstoneComparatorIdle), $rt_s(656)), nms_CreativeTabs_tabRedstone), $rt_s(656));
    nms_Item_netherrackBrick = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(149), $rt_s(657)), nms_CreativeTabs_tabMaterials), $rt_s(657));
    nms_Item_netherQuartz = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setUnlocalizedName(nms_Item__init_0(150), $rt_s(658)), nms_CreativeTabs_tabMaterials), $rt_s(659));
    nms_Item_minecartTnt = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMinecart__init_(151, 3), $rt_s(660)), $rt_s(661));
    nms_Item_minecartHopper = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemMinecart__init_(152, 5), $rt_s(662)), $rt_s(663));
    nms_Item_horseArmorIron = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setMaxStackSize(nms_Item_setUnlocalizedName(nms_Item__init_0(161), $rt_s(664)), 1), nms_CreativeTabs_tabMisc), $rt_s(665));
    nms_Item_horseArmorGold = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setMaxStackSize(nms_Item_setUnlocalizedName(nms_Item__init_0(162), $rt_s(666)), 1), nms_CreativeTabs_tabMisc), $rt_s(667));
    nms_Item_horseArmorDiamond = nms_Item_setTextureName(nms_Item_setCreativeTab(nms_Item_setMaxStackSize(nms_Item_setUnlocalizedName(nms_Item__init_0(163), $rt_s(668)), 1), nms_CreativeTabs_tabMisc), $rt_s(669));
    nms_Item_leash = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemLeash__init_(164), $rt_s(670)), $rt_s(671));
    nms_Item_nameTag = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemNameTag__init_(165), $rt_s(672)), $rt_s(673));
    nms_Item_record13 = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2000, $rt_s(674)), $rt_s(675)), $rt_s(676));
    nms_Item_recordCat = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2001, $rt_s(677)), $rt_s(675)), $rt_s(678));
    nms_Item_recordBlocks = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2002, $rt_s(679)), $rt_s(675)), $rt_s(680));
    nms_Item_recordChirp = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2003, $rt_s(681)), $rt_s(675)), $rt_s(682));
    nms_Item_recordFar = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2004, $rt_s(683)), $rt_s(675)), $rt_s(684));
    nms_Item_recordMall = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2005, $rt_s(685)), $rt_s(675)), $rt_s(686));
    nms_Item_recordMellohi = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2006, $rt_s(687)), $rt_s(675)), $rt_s(688));
    nms_Item_recordStal = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2007, $rt_s(689)), $rt_s(675)), $rt_s(690));
    nms_Item_recordStrad = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2008, $rt_s(691)), $rt_s(675)), $rt_s(692));
    nms_Item_recordWard = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2009, $rt_s(693)), $rt_s(675)), $rt_s(694));
    nms_Item_record11 = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2010, $rt_s(695)), $rt_s(675)), $rt_s(696));
    nms_Item_recordWait = nms_Item_setTextureName(nms_Item_setUnlocalizedName(nms_ItemRecord__init_(2011, $rt_s(697)), $rt_s(675)), $rt_s(698));
    nms_StatList_initStats();
};
function nms_Block() {
    let a = this; jl_Object.call(a);
    a.$displayOnCreativeTab = null;
    a.$textureName = null;
    a.$blockID = 0;
    a.$blockHardness = 0.0;
    a.$blockResistance = 0.0;
    a.$blockConstructorCalled = 0;
    a.$enableStats = 0;
    a.$needsRandomTick = 0;
    a.$isBlockContainer = 0;
    a.$minX1 = 0.0;
    a.$minY1 = 0.0;
    a.$minZ1 = 0.0;
    a.$maxX1 = 0.0;
    a.$maxY0 = 0.0;
    a.$maxZ1 = 0.0;
    a.$stepSound = null;
    a.$blockParticleGravity = 0.0;
    a.$blockMaterial = null;
    a.$slipperiness = 0.0;
    a.$unlocalizedName0 = null;
}
let nms_Block_soundPowderFootstep = null,
nms_Block_soundWoodFootstep = null,
nms_Block_soundGravelFootstep = null,
nms_Block_soundGrassFootstep = null,
nms_Block_soundStoneFootstep = null,
nms_Block_soundMetalFootstep = null,
nms_Block_soundGlassFootstep = null,
nms_Block_soundClothFootstep = null,
nms_Block_soundSandFootstep = null,
nms_Block_soundSnowFootstep = null,
nms_Block_soundLadderFootstep = null,
nms_Block_soundAnvilFootstep = null,
nms_Block_blocksList = null,
nms_Block_opaqueCubeLookup = null,
nms_Block_lightOpacity = null,
nms_Block_canBlockGrass = null,
nms_Block_lightValue = null,
nms_Block_useNeighborBrightness = null,
nms_Block_stone = null,
nms_Block_grass = null,
nms_Block_dirt = null,
nms_Block_cobblestone = null,
nms_Block_planks = null,
nms_Block_sapling = null,
nms_Block_bedrock = null,
nms_Block_waterMoving = null,
nms_Block_waterStill = null,
nms_Block_lavaMoving = null,
nms_Block_lavaStill = null,
nms_Block_sand = null,
nms_Block_gravel = null,
nms_Block_oreGold = null,
nms_Block_oreIron = null,
nms_Block_oreCoal = null,
nms_Block_wood = null,
nms_Block_leaves = null,
nms_Block_sponge = null,
nms_Block_glass = null,
nms_Block_oreLapis = null,
nms_Block_blockLapis = null,
nms_Block_dispenser = null,
nms_Block_sandStone = null,
nms_Block_music = null,
nms_Block_bed = null,
nms_Block_railPowered = null,
nms_Block_railDetector = null,
nms_Block_pistonStickyBase = null,
nms_Block_web = null,
nms_Block_tallGrass = null,
nms_Block_deadBush = null;
let nms_Block_pistonBase = null,
nms_Block_pistonExtension = null,
nms_Block_cloth = null,
nms_Block_pistonMoving = null,
nms_Block_plantYellow = null,
nms_Block_plantRed = null,
nms_Block_mushroomBrown = null,
nms_Block_mushroomRed = null,
nms_Block_blockGold = null,
nms_Block_blockIron = null,
nms_Block_stoneDoubleSlab = null,
nms_Block_stoneSingleSlab = null,
nms_Block_brick = null,
nms_Block_tnt = null,
nms_Block_bookShelf = null,
nms_Block_cobblestoneMossy = null,
nms_Block_obsidian = null,
nms_Block_torchWood = null,
nms_Block_fire = null,
nms_Block_mobSpawner = null,
nms_Block_stairsWoodOak = null,
nms_Block_chest = null,
nms_Block_redstoneWire = null,
nms_Block_oreDiamond = null,
nms_Block_blockDiamond = null,
nms_Block_workbench = null,
nms_Block_crops = null,
nms_Block_tilledField = null,
nms_Block_furnaceIdle = null,
nms_Block_furnaceBurning = null,
nms_Block_signPost = null,
nms_Block_doorWood = null,
nms_Block_ladder = null,
nms_Block_rail = null,
nms_Block_stairsCobblestone = null,
nms_Block_signWall = null,
nms_Block_lever = null,
nms_Block_pressurePlateStone = null,
nms_Block_doorIron = null,
nms_Block_pressurePlatePlanks = null,
nms_Block_oreRedstone = null,
nms_Block_oreRedstoneGlowing = null,
nms_Block_torchRedstoneIdle = null,
nms_Block_torchRedstoneActive = null,
nms_Block_stoneButton = null,
nms_Block_snow = null,
nms_Block_ice = null,
nms_Block_blockSnow = null,
nms_Block_cactus = null,
nms_Block_blockClay = null;
let nms_Block_reed = null,
nms_Block_jukebox = null,
nms_Block_fence = null,
nms_Block_pumpkin = null,
nms_Block_netherrack = null,
nms_Block_slowSand = null,
nms_Block_glowStone = null,
nms_Block_portal = null,
nms_Block_pumpkinLantern = null,
nms_Block_cake = null,
nms_Block_redstoneRepeaterIdle = null,
nms_Block_redstoneRepeaterActive = null,
nms_Block_lockedChest = null,
nms_Block_trapdoor = null,
nms_Block_silverfish = null,
nms_Block_stoneBrick = null,
nms_Block_mushroomCapBrown = null,
nms_Block_mushroomCapRed = null,
nms_Block_fenceIron = null,
nms_Block_thinGlass = null,
nms_Block_melon = null,
nms_Block_pumpkinStem = null,
nms_Block_melonStem = null,
nms_Block_vine = null,
nms_Block_fenceGate = null,
nms_Block_stairsBrick = null,
nms_Block_stairsStoneBrick = null,
nms_Block_mycelium = null,
nms_Block_waterlily = null,
nms_Block_netherBrick = null,
nms_Block_netherFence = null,
nms_Block_stairsNetherBrick = null,
nms_Block_netherStalk = null,
nms_Block_enchantmentTable = null,
nms_Block_brewingStand = null,
nms_Block_cauldron = null,
nms_Block_endPortal = null,
nms_Block_endPortalFrame = null,
nms_Block_whiteStone = null,
nms_Block_dragonEgg = null,
nms_Block_redstoneLampIdle = null,
nms_Block_redstoneLampActive = null,
nms_Block_woodDoubleSlab = null,
nms_Block_woodSingleSlab = null,
nms_Block_cocoaPlant = null,
nms_Block_stairsSandStone = null,
nms_Block_oreEmerald = null,
nms_Block_enderChest = null,
nms_Block_tripWireSource = null,
nms_Block_tripWire = null;
let nms_Block_blockEmerald = null,
nms_Block_stairsWoodSpruce = null,
nms_Block_stairsWoodBirch = null,
nms_Block_stairsWoodJungle = null,
nms_Block_commandBlock = null,
nms_Block_beacon = null,
nms_Block_cobblestoneWall = null,
nms_Block_flowerPot = null,
nms_Block_carrot = null,
nms_Block_potato = null,
nms_Block_woodenButton = null,
nms_Block_skull = null,
nms_Block_anvil = null,
nms_Block_chestTrapped = null,
nms_Block_pressurePlateGold = null,
nms_Block_pressurePlateIron = null,
nms_Block_redstoneComparatorIdle = null,
nms_Block_redstoneComparatorActive = null,
nms_Block_daylightSensor = null,
nms_Block_blockRedstone = null,
nms_Block_oreNetherQuartz = null,
nms_Block_hopperBlock = null,
nms_Block_blockNetherQuartz = null,
nms_Block_stairsNetherQuartz = null,
nms_Block_railActivator = null,
nms_Block_dropper = null,
nms_Block_stainedClay = null,
nms_Block_hay = null,
nms_Block_carpet = null,
nms_Block_hardenedClay = null,
nms_Block_coalBlock = null,
nms_Block_$callClinit = () => {
    nms_Block_$callClinit = $rt_eraseClinit(nms_Block);
    nms_Block__clinit_();
},
nms_Block__init_ = ($this, $par1, $par2Material) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    nms_Block_$callClinit();
    $this.$blockConstructorCalled = 1;
    $this.$enableStats = 1;
    $this.$stepSound = nms_Block_soundPowderFootstep;
    $this.$blockParticleGravity = 1.0;
    $this.$slipperiness = 0.6000000238418579;
    var$3 = nms_Block_blocksList.data;
    if (var$3[$par1] === null) {
        $this.$blockMaterial = $par2Material;
        var$3[$par1] = $this;
        $this.$blockID = $par1;
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        nms_Block_opaqueCubeLookup.data[$par1] = $this.$isOpaqueCube();
        var$3 = nms_Block_lightOpacity;
        var$3.data[$par1] = !$this.$isOpaqueCube() ? 0 : 255;
        var$3 = nms_Block_canBlockGrass;
        var$3.data[$par1] = $par2Material.$getCanBlockGrass() ? 0 : 1;
        return;
    }
    $par2Material = new jl_IllegalArgumentException;
    var$4 = var$3[$par1];
    var$4 = var$4 === null ? $rt_s(1) : var$4.$toString();
    var$5 = $this.$toString();
    var$6 = new jl_StringBuilder;
    var$6.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(699));
    jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, $par1, 10);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(700));
    $par1 = var$6.$length0;
    if (var$4 === null)
        var$4 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, $par1, var$4);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(701));
    $par1 = var$6.$length0;
    if (var$5 === null)
        var$5 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, $par1, var$5);
    var$4 = new jl_String;
    var$3 = var$6.$buffer;
    var$7 = var$3.data;
    var$8 = var$6.$length0;
    var$9 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$3.data, 0, var$8);
        $par2Material.$suppressionEnabled = 1;
        $par2Material.$writableStackTrace = 1;
        $par2Material.$message = var$4;
        $rt_throw($par2Material);
    }
    $par2Material = new jl_IndexOutOfBoundsException;
    $par2Material.$suppressionEnabled = 1;
    $par2Material.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par2Material);
    $rt_throw($par2Material);
},
nms_Block__init_0 = (var_0, var_1) => {
    let var_2 = new nms_Block();
    nms_Block__init_(var_2, var_0, var_1);
    return var_2;
},
nms_Block_initializeBlock = $this => {
    return;
},
nms_Block_setStepSound = ($this, $par1StepSound) => {
    $this.$stepSound = $par1StepSound;
    return $this;
},
nms_Block_setLightOpacity = ($this, $par1) => {
    nms_Block_$callClinit();
    nms_Block_lightOpacity.data[$this.$blockID] = $par1;
    return $this;
},
nms_Block_setLightValue = ($this, $par1) => {
    nms_Block_$callClinit();
    nms_Block_lightValue.data[$this.$blockID] = 15.0 * $par1 | 0;
    return $this;
},
nms_Block_setResistance = ($this, $par1) => {
    $this.$blockResistance = $par1 * 3.0;
    return $this;
},
nms_Block_renderAsNormalBlock = $this => {
    return 1;
},
nms_Block_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    return $this.$blockMaterial.$blocksMovement() ? 0 : 1;
},
nms_Block_getRenderType = $this => {
    return 0;
},
nms_Block_setHardness = ($this, $par1) => {
    let var$2;
    $this.$blockHardness = $par1;
    var$2 = $this.$blockResistance;
    $par1 = $par1 * 5.0;
    if (var$2 < $par1)
        $this.$blockResistance = $par1;
    return $this;
},
nms_Block_setBlockUnbreakable = $this => {
    $this.$blockHardness = (-1.0);
    if ($this.$blockResistance < (-5.0))
        $this.$blockResistance = (-5.0);
    return $this;
},
nms_Block_getBlockHardness = ($this, $par1World, $par2, $par3, $par4) => {
    return $this.$blockHardness;
},
nms_Block_setTickRandomly = ($this, $par1) => {
    $this.$needsRandomTick = $par1;
    return $this;
},
nms_Block_getTickRandomly = $this => {
    return $this.$needsRandomTick;
},
nms_Block_hasTileEntity = $this => {
    return $this.$isBlockContainer;
},
nms_Block_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let $var8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$getCollisionBoundingBoxFromPool($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 !== null && nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $var8)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$9 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$9[$par3] = $var8;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, $var8, var$9, $ptr);
},
nms_Block_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$5 = $par2;
    var$6 = var$5 + $this.$minX1;
    var$7 = $par3;
    var$8 = var$7 + $this.$minY1;
    var$9 = $par4;
    var$10 = var$9 + $this.$minZ1;
    var$5 = var$5 + $this.$maxX1;
    var$7 = var$7 + $this.$maxY0;
    var$9 = var$9 + $this.$maxZ1;
    $par2 = $par1World.$nextPoolIndex;
    var$11 = $par1World.$listAABB;
    $par4 = var$11.$size0;
    $par3 = $rt_compare($par2, $par4);
    if ($par3 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$8;
        var$12.$minZ0 = var$10;
        var$12.$maxX0 = var$5;
        var$12.$maxY = var$7;
        var$12.$maxZ0 = var$9;
        ju_ArrayList_ensureCapacity(var$11, $par4 + 1 | 0);
        var$13 = var$11.$array.data;
        $par3 = var$11.$size0;
        var$11.$size0 = $par3 + 1 | 0;
        var$13[$par3] = var$12;
        var$11.$modCount = var$11.$modCount + 1 | 0;
    } else if ($par2 >= 0 && $par3 < 0) {
        var$12 = var$11.$array.data[$par2];
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$8;
        var$12.$minZ0 = var$10;
        var$12.$maxX0 = var$5;
        var$12.$maxY = var$7;
        var$12.$maxZ0 = var$9;
    } else {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
    return var$12;
};
let nms_Block_isOpaqueCube = $this => {
    return 1;
},
nms_Block_canCollideCheck = ($this, $par1, $par2) => {
    return $this.$isCollidable();
},
nms_Block_isCollidable = $this => {
    return 1;
},
nms_Block_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    return;
},
nms_Block_onBlockDestroyedByPlayer = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return;
},
nms_Block_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return;
},
nms_Block_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    return;
},
nms_Block_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    return;
},
nms_Block_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_Block_idDropped = ($this, $par1, $par2Random, $par3) => {
    return $this.$blockID;
},
nms_Block_getPlayerRelativeBlockHardness = ($this, $par1EntityPlayer, $par2World, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $this.$blockHardness;
        if ($var6 < 0.0)
            return 0.0;
        $par2World = $par1EntityPlayer.$inventory0;
        if ($this.$blockMaterial.$requiresNoTool)
            $par3 = 1;
        else {
            $par3 = $par2World.$currentItem;
            var$7 = $par2World.$mainInventory;
            $par4 = var$7.data.length;
            if ($par3 >= $par4) {
                $par3 = $par3 - $par4 | 0;
                var$7 = $par2World.$armorInventory;
            }
            $par2World = var$7.data[$par3];
            if ($par2World === null)
                $par3 = 0;
            else {
                nms_Item_$callClinit();
                $par3 = nms_Item_itemsList.data[$par2World.$itemID].$canHarvestBlock($this);
            }
        }
        if ($par3) {
            $par3 = 1;
            $ptr = 1;
            continue main;
        }
        $par3 = 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock($par1EntityPlayer, $this, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$8 / $var6 / 30.0;
    case 2:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock($par1EntityPlayer, $this, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$8 / $var6 / 100.0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2World, $par3, $par4, $par5, $var6, var$7, var$8, $ptr);
},
nms_Block_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, var$10, var$11, var$12, $var10, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$par1World.$isRemote) {
                $var8 = $this.$quantityDroppedWithBonus($par7, $par1World.$rand0);
                $var9 = 0;
                var$10 = 24;
                while (true) {
                    if ($var9 >= $var8)
                        break a;
                    var$11 = $par1World.$rand0;
                    var$12 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$11.$seed = var$12;
                    if (Long_lo(Long_shru(var$12, var$10)) / 1.6777216E7 <= $par6) {
                        $var10 = $this.$idDropped($par5, var$11, $par7);
                        if ($var10 > 0) {
                            var$11 = new nms_ItemStack;
                            var$14 = $this.$damageDropped($par5);
                            nms_ItemStack_$callClinit();
                            var$11.$itemID = $var10;
                            var$11.$stackSize = 1;
                            var$11.$itemDamage = var$14;
                            if (var$14 < 0)
                                var$11.$itemDamage = 0;
                            $ptr = 1;
                            continue main;
                        }
                    }
                    $var9 = $var9 + 1 | 0;
                }
            }
        }
        return;
    case 1:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var9 = $var9 + 1 | 0;
            if ($var9 >= $var8)
                break;
            var$11 = $par1World.$rand0;
            var$12 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$12;
            if (Long_lo(Long_shru(var$12, var$10)) / 1.6777216E7 > $par6)
                continue;
            $var10 = $this.$idDropped($par5, var$11, $par7);
            if ($var10 <= 0)
                continue;
            else {
                var$11 = new nms_ItemStack;
                var$14 = $this.$damageDropped($par5);
                nms_ItemStack_$callClinit();
                var$11.$itemID = $var10;
                var$11.$stackSize = 1;
                var$11.$itemDamage = var$14;
                if (var$14 < 0)
                    var$11.$itemDamage = 0;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $var9, var$10, var$11, var$12, $var10, var$14, $ptr);
},
nms_Block_dropBlockAsItem_do = ($this, $par1World, $par2, $par3, $par4, $par5ItemStack) => {
    let var$6, var$7, $var13, var$9, var$10, var$11, var$12, var$13, $var7, var$15, $var9, $var11, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();var$15 = $thread.pop();$var7 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var13 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5ItemStack = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            a: {
                var$6 = ($par1World.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                var$7 = $rt_s(702);
                $var13 = $rt_s(702);
                if (var$7 !== $var13) {
                    var$9 = var$7.$nativeString.length;
                    var$10 = $var13.$nativeString.length;
                    if (var$9 < var$10)
                        var$10 = var$9;
                    var$11 = 0;
                    b: {
                        while (true) {
                            if (var$11 >= var$10) {
                                var$7.$nativeString.length;
                                $var13.$nativeString.length;
                                break a;
                            }
                            if (var$11 < 0)
                                break b;
                            if (var$11 >= var$7.$nativeString.length)
                                break b;
                            var$12 = var$7.$nativeString.charCodeAt(var$11);
                            if (var$11 < 0)
                                break;
                            if (var$11 >= $var13.$nativeString.length)
                                break;
                            if (var$12 - $var13.$nativeString.charCodeAt(var$11) | 0)
                                break a;
                            var$11 = var$11 + 1 | 0;
                        }
                        $par1World = new jl_StringIndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    $par1World = new jl_StringIndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
            }
            $var13 = $rt_s(702);
            c: {
                d: {
                    e: while (true) {
                        if (var$6 === null) {
                            var$6 = null;
                            break c;
                        }
                        f: {
                            var$7 = var$6.$key0;
                            if ($var13 === var$7)
                                var$11 = 0;
                            else {
                                var$12 = $var13.$nativeString.length;
                                var$9 = var$7.$nativeString.length;
                                if (var$12 < var$9)
                                    var$9 = var$12;
                                var$12 = 0;
                                while (true) {
                                    if (var$12 >= var$9) {
                                        var$11 = $var13.$nativeString.length - var$7.$nativeString.length | 0;
                                        break f;
                                    }
                                    if (var$12 < 0)
                                        break d;
                                    if (var$12 >= $var13.$nativeString.length)
                                        break d;
                                    var$10 = $var13.$nativeString.charCodeAt(var$12);
                                    if (var$12 < 0)
                                        break e;
                                    if (var$12 >= var$7.$nativeString.length)
                                        break e;
                                    var$11 = var$10 - var$7.$nativeString.charCodeAt(var$12) | 0;
                                    if (var$11)
                                        break;
                                    var$12 = var$12 + 1 | 0;
                                }
                            }
                        }
                        if (!var$11)
                            break c;
                        var$6 = var$11 >= 0 ? var$6.$right : var$6.$left;
                    }
                    $par1World = new jl_StringIndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                $par1World = new jl_StringIndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            $var13 = var$6 === null ? null : var$6.$value2;
            if ($var13 === null ? 0 : $var13.$valueBoolean) {
                $var13 = $par1World.$rand0;
                var$13 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$13;
                $var7 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 0.699999988079071 + 0.15000000596046448;
                var$15 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$15;
                $var9 = Long_lo(Long_shru(var$15, 24)) / 1.6777216E7 * 0.699999988079071 + 0.15000000596046448;
                var$13 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 0.699999988079071 + 0.15000000596046448;
                $var13 = new nms_EntityItem;
                $var7 = $par2 + $var7;
                $var9 = $par3 + $var9;
                $var11 = $par4 + $var11;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityItem__init_($var13, $par1World, $var7, $var9, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $var13.$dataWatcher;
        var$6 = var$18.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$19 = jl_Integer_integerCache.data[138];
        if (var$19 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            $par4 = var$19.$value;
            var$20 = var$6.$elementData.data;
            var$6 = var$20[$par4 & (var$20.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == $par4) {
                    var$7 = var$6.$key;
                    if (var$19 !== var$7 && !jl_Integer_equals(var$19, var$7) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$7 = var$6 === null ? null : var$6.$value0;
        if (!($par5ItemStack !== var$7.$watchedObject ? 0 : 1)) {
            var$7.$watchedObject = $par5ItemStack;
            var$7.$watched = 1;
            var$18.$objectChanged = 1;
        }
        var$19 = $var13.$dataWatcher;
        $par5ItemStack = var$19.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[138];
        if (var$7 === null) {
            $par5ItemStack = $par5ItemStack.$elementData.data[0];
            while ($par5ItemStack !== null && $par5ItemStack.$key !== null) {
                $par5ItemStack = $par5ItemStack.$next3;
            }
        } else {
            $par4 = var$7.$value;
            var$20 = $par5ItemStack.$elementData.data;
            $par5ItemStack = var$20[$par4 & (var$20.length - 1 | 0)];
            while ($par5ItemStack !== null) {
                if ($par5ItemStack.$origKeyHash == $par4) {
                    var$6 = $par5ItemStack.$key;
                    if (var$7 !== var$6 && !jl_Integer_equals(var$7, var$6) ? 0 : 1)
                        break;
                }
                $par5ItemStack = $par5ItemStack.$next3;
            }
        }
        ($par5ItemStack === null ? null : $par5ItemStack.$value0).$watched = 1;
        var$19.$objectChanged = 1;
        $var13.$delayBeforeCanPickup = 10;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1World, $var13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5ItemStack, var$6, var$7, $var13, var$9, var$10, var$11, var$12, var$13, $var7, var$15, $var9, $var11, var$18, var$19, var$20, $ptr);
},
nms_Block_damageDropped = ($this, $par1) => {
    return 0;
},
nms_Block_getExplosionResistance = ($this, $par1Entity) => {
    return $this.$blockResistance / 5.0;
},
nms_Block_collisionRayTrace = ($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3) => {
    let var$7, var$8, var$9, $var7, $var8, $var9, $var10, $var11, $var12, $var13, var$17, var$18, var$19, $var14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Vec3 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$setBlockBoundsBasedOnState($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 =  -$par2 | 0;
        var$8 =  -$par3 | 0;
        var$9 =  -$par4 | 0;
        $par5Vec3 = nms_Vec3Pool_getVecFromPool($par5Vec3.$myVec3LocalPool, $par5Vec3.$xCoord + var$7, $par5Vec3.$yCoord + var$8, $par5Vec3.$zCoord + var$9);
        $par1World = nms_Vec3Pool_getVecFromPool($par6Vec3.$myVec3LocalPool, $par6Vec3.$xCoord + var$7, $par6Vec3.$yCoord + var$8, $par6Vec3.$zCoord + var$9);
        $var7 = nms_Vec3_getIntermediateWithXValue($par5Vec3, $par1World, $this.$minX1);
        $var8 = nms_Vec3_getIntermediateWithXValue($par5Vec3, $par1World, $this.$maxX1);
        $var9 = nms_Vec3_getIntermediateWithYValue($par5Vec3, $par1World, $this.$minY1);
        $var10 = nms_Vec3_getIntermediateWithYValue($par5Vec3, $par1World, $this.$maxY0);
        $var11 = nms_Vec3_getIntermediateWithZValue($par5Vec3, $par1World, $this.$minZ1);
        $var12 = nms_Vec3_getIntermediateWithZValue($par5Vec3, $par1World, $this.$maxZ1);
        if (!nms_Block_isVecInsideYZBounds($this, $var7))
            $var7 = null;
        if (!nms_Block_isVecInsideYZBounds($this, $var8))
            $var8 = null;
        if (!nms_Block_isVecInsideXZBounds($this, $var9))
            $var9 = null;
        if (!nms_Block_isVecInsideXZBounds($this, $var10))
            $var10 = null;
        if (!nms_Block_isVecInsideXYBounds($this, $var11))
            $var11 = null;
        if (!nms_Block_isVecInsideXYBounds($this, $var12))
            $var12 = null;
        $var13 = null;
        if ($var7 !== null)
            $var13 = $var7;
        a: {
            if ($var8 !== null) {
                if ($var13 !== null) {
                    var$17 = $var8.$xCoord;
                    var$9 = $par5Vec3.$xCoord;
                    var$17 = var$17 - var$9;
                    var$18 = $var8.$yCoord;
                    var$19 = $par5Vec3.$yCoord;
                    var$18 = var$18 - var$19;
                    var$7 = $var8.$zCoord;
                    var$8 = $par5Vec3.$zCoord;
                    var$7 = var$7 - var$8;
                    var$17 = var$17 * var$17 + var$18 * var$18 + var$7 * var$7;
                    var$7 = $var13.$xCoord - var$9;
                    var$18 = $var13.$yCoord - var$19;
                    var$19 = $var13.$zCoord - var$8;
                    if (var$17 >= var$7 * var$7 + var$18 * var$18 + var$19 * var$19)
                        break a;
                }
                $var13 = $var8;
            }
        }
        b: {
            if ($var9 !== null) {
                if ($var13 !== null) {
                    var$17 = $var9.$xCoord;
                    var$18 = $par5Vec3.$xCoord;
                    var$17 = var$17 - var$18;
                    var$19 = $var9.$yCoord;
                    var$8 = $par5Vec3.$yCoord;
                    var$19 = var$19 - var$8;
                    var$7 = $var9.$zCoord;
                    var$9 = $par5Vec3.$zCoord;
                    var$7 = var$7 - var$9;
                    var$7 = var$17 * var$17 + var$19 * var$19 + var$7 * var$7;
                    var$17 = $var13.$xCoord - var$18;
                    var$18 = $var13.$yCoord - var$8;
                    var$19 = $var13.$zCoord - var$9;
                    if (var$7 >= var$17 * var$17 + var$18 * var$18 + var$19 * var$19)
                        break b;
                }
                $var13 = $var9;
            }
        }
        c: {
            if ($var10 !== null) {
                if ($var13 !== null) {
                    var$17 = $var10.$xCoord;
                    var$18 = $par5Vec3.$xCoord;
                    var$17 = var$17 - var$18;
                    var$19 = $var10.$yCoord;
                    var$7 = $par5Vec3.$yCoord;
                    var$19 = var$19 - var$7;
                    var$8 = $var10.$zCoord;
                    var$9 = $par5Vec3.$zCoord;
                    var$8 = var$8 - var$9;
                    var$8 = var$17 * var$17 + var$19 * var$19 + var$8 * var$8;
                    var$17 = $var13.$xCoord - var$18;
                    var$18 = $var13.$yCoord - var$7;
                    var$19 = $var13.$zCoord - var$9;
                    if (var$8 >= var$17 * var$17 + var$18 * var$18 + var$19 * var$19)
                        break c;
                }
                $var13 = $var10;
            }
        }
        d: {
            if ($var11 !== null) {
                if ($var13 !== null) {
                    var$17 = $var11.$xCoord;
                    var$8 = $par5Vec3.$xCoord;
                    var$7 = var$17 - var$8;
                    var$17 = $var11.$yCoord;
                    var$9 = $par5Vec3.$yCoord;
                    var$17 = var$17 - var$9;
                    var$18 = $var11.$zCoord;
                    var$19 = $par5Vec3.$zCoord;
                    var$18 = var$18 - var$19;
                    var$17 = var$7 * var$7 + var$17 * var$17 + var$18 * var$18;
                    var$18 = $var13.$xCoord - var$8;
                    var$7 = $var13.$yCoord - var$9;
                    var$19 = $var13.$zCoord - var$19;
                    if (var$17 >= var$18 * var$18 + var$7 * var$7 + var$19 * var$19)
                        break d;
                }
                $var13 = $var11;
            }
        }
        e: {
            if ($var12 !== null) {
                if ($var13 !== null) {
                    var$17 = $var12.$xCoord;
                    var$18 = $par5Vec3.$xCoord;
                    var$17 = var$17 - var$18;
                    var$7 = $var12.$yCoord;
                    var$19 = $par5Vec3.$yCoord;
                    var$8 = var$7 - var$19;
                    var$9 = $var12.$zCoord;
                    var$7 = $par5Vec3.$zCoord;
                    var$9 = var$9 - var$7;
                    var$8 = var$17 * var$17 + var$8 * var$8 + var$9 * var$9;
                    var$17 = $var13.$xCoord - var$18;
                    var$18 = $var13.$yCoord - var$19;
                    var$19 = $var13.$zCoord - var$7;
                    if (var$8 >= var$17 * var$17 + var$18 * var$18 + var$19 * var$19)
                        break e;
                }
                $var13 = $var12;
            }
        }
        if ($var13 === null)
            return null;
        $var14 = (-1);
        if ($var13 === $var7)
            $var14 = 4;
        if ($var13 === $var8)
            $var14 = 5;
        if ($var13 === $var9)
            $var14 = 0;
        if ($var13 === $var10)
            $var14 = 1;
        if ($var13 === $var11)
            $var14 = 2;
        if ($var13 === $var12)
            $var14 = 3;
        $par1World = new nms_MovingObjectPosition;
        var$17 = $par2;
        var$18 = $par3;
        var$19 = $par4;
        $par6Vec3 = nms_Vec3Pool_getVecFromPool($var13.$myVec3LocalPool, $var13.$xCoord + var$17, $var13.$yCoord + var$18, $var13.$zCoord + var$19);
        $par1World.$typeOfHit = nms_EnumMovingObjectType_TILE;
        $par1World.$blockX = $par2;
        $par1World.$blockY = $par3;
        $par1World.$blockZ = $par4;
        $par1World.$sideHit = $var14;
        $par1World.$hitVec = nms_Vec3Pool_getVecFromPool($par6Vec3.$myVec3LocalPool, $par6Vec3.$xCoord, $par6Vec3.$yCoord, $par6Vec3.$zCoord);
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3, var$7, var$8, var$9, $var7, $var8, $var9, $var10, $var11, $var12, $var13, var$17, var$18, var$19, $var14, $ptr);
},
nms_Block_isVecInsideYZBounds = ($this, $par1Vec3) => {
    let var$2, var$3;
    a: {
        if ($par1Vec3 === null)
            var$2 = 0;
        else {
            var$3 = $par1Vec3.$yCoord;
            if (var$3 >= $this.$minY1 && var$3 <= $this.$maxY0) {
                var$3 = $par1Vec3.$zCoord;
                if (var$3 >= $this.$minZ1 && var$3 <= $this.$maxZ1) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_Block_isVecInsideXZBounds = ($this, $par1Vec3) => {
    let var$2, var$3;
    a: {
        if ($par1Vec3 === null)
            var$2 = 0;
        else {
            var$3 = $par1Vec3.$xCoord;
            if (var$3 >= $this.$minX1 && var$3 <= $this.$maxX1) {
                var$3 = $par1Vec3.$zCoord;
                if (var$3 >= $this.$minZ1 && var$3 <= $this.$maxZ1) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_Block_isVecInsideXYBounds = ($this, $par1Vec3) => {
    let var$2, var$3;
    a: {
        if ($par1Vec3 === null)
            var$2 = 0;
        else {
            var$3 = $par1Vec3.$xCoord;
            if (var$3 >= $this.$minX1 && var$3 <= $this.$maxX1) {
                var$3 = $par1Vec3.$yCoord;
                if (var$3 >= $this.$minY1 && var$3 <= $this.$maxY0) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_Block_onBlockDestroyedByExplosion = ($this, $par1World, $par2, $par3, $par4, $par5Explosion) => {
    return;
},
nms_Block_canPlaceBlockOnSide0 = ($this, $par1World, $par2, $par3, $par4, $par5, $par6ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6ItemStack = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$canPlaceBlockOnSide($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6ItemStack, $ptr);
},
nms_Block_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$canPlaceBlockAt($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_Block_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if ($var5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[$var5].$blockMaterial.$replaceable) {
                    $par2 = 0;
                    break a;
                }
            }
            $par2 = 1;
        }
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $ptr);
},
nms_Block_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    return 0;
},
nms_Block_onEntityWalking = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    return;
},
nms_Block_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    return $par9;
},
nms_Block_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    return;
},
nms_Block_velocityToAddToEntity = ($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6Vec3) => {
    return;
},
nms_Block_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    return;
},
nms_Block_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    return 0;
},
nms_Block_canProvidePower = $this => {
    return 0;
},
nms_Block_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    return;
},
nms_Block_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    return 0;
},
nms_Block_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let $var8, var$8, var$9, var$10, $var7, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_StatList_$callClinit();
        $var8 = nms_StatList_mineBlockStatArray.data[$this.$blockID];
        if ($var8 !== null && !$var8.$isIndependent)
            a: {
                var$8 = $par2EntityPlayer.$playerNetServerHandler;
                var$9 = new nms_Packet200Statistic;
                var$10 = $var8.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$9.$statisticId = var$10;
                var$9.$amount = 1;
                if (var$9 instanceof nms_Packet3Chat) {
                    $var8 = var$9;
                    $var7 = var$8.$playerEntity.$chatVisibility;
                    if ($var7 == 2)
                        break a;
                    if ($var7 == 1 && !$var8.$isServer)
                        break a;
                }
                try {
                    $var8 = var$8.$netManager;
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$8 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$8);
                    var$8.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$9, var$8);
                    var$9.$sb = jl_StringBuilder__init_();
                    var$9.$buffer0 = $rt_createCharArray(32);
                    var$9.$autoFlush = 0;
                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$9;
                }
                jl_Throwable_printStackTrace($var8, jl_System_errCache);
            }
        if (!$par2EntityPlayer.$capabilities.$disableDamage && !$par2EntityPlayer.$worldObj.$isRemote) {
            $var8 = $par2EntityPlayer.$foodStats;
            $var8.$foodExhaustionLevel = jl_Math_minImpl($var8.$foodExhaustionLevel + 0.02500000037252903, 40.0);
        }
        if ($this.$canSilkHarvest()) {
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            $var7 = nms_Enchantment_silkTouch.$effectId;
            $var8 = $par2EntityPlayer.$inventory0;
            var$12 = $var8.$currentItem;
            $var8 = var$12 < 9 && var$12 >= 0 ? $var8.$mainInventory.data[var$12] : null;
            if (nms_EnchantmentHelper_getEnchantmentLevel($var7, $var8) <= 0 ? 0 : 1) {
                $var8 = $this.$createStackedBlock($par6);
                if ($var8 === null)
                    return;
                $ptr = 3;
                continue main;
            }
        }
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        $var7 = nms_Enchantment_fortune.$effectId;
        $par2EntityPlayer = $par2EntityPlayer.$inventory0;
        var$12 = $par2EntityPlayer.$currentItem;
        $var7 = nms_EnchantmentHelper_getEnchantmentLevel($var7, var$12 < 9 && var$12 >= 0 ? $par2EntityPlayer.$mainInventory.data[var$12] : null);
        var$13 = 1.0;
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$8);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        if (!$par2EntityPlayer.$capabilities.$disableDamage && !$par2EntityPlayer.$worldObj.$isRemote) {
            $var8 = $par2EntityPlayer.$foodStats;
            $var8.$foodExhaustionLevel = jl_Math_minImpl($var8.$foodExhaustionLevel + 0.02500000037252903, 40.0);
        }
        if ($this.$canSilkHarvest()) {
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            $var7 = nms_Enchantment_silkTouch.$effectId;
            $var8 = $par2EntityPlayer.$inventory0;
            var$12 = $var8.$currentItem;
            $var8 = var$12 < 9 && var$12 >= 0 ? $var8.$mainInventory.data[var$12] : null;
            if (nms_EnchantmentHelper_getEnchantmentLevel($var7, $var8) <= 0 ? 0 : 1) {
                $var8 = $this.$createStackedBlock($par6);
                if ($var8 === null)
                    return;
                $ptr = 3;
                continue main;
            }
        }
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        $var7 = nms_Enchantment_fortune.$effectId;
        $par2EntityPlayer = $par2EntityPlayer.$inventory0;
        var$12 = $par2EntityPlayer.$currentItem;
        $var7 = nms_EnchantmentHelper_getEnchantmentLevel($var7, var$12 < 9 && var$12 >= 0 ? $par2EntityPlayer.$mainInventory.data[var$12] : null);
        var$13 = 1.0;
        $ptr = 2;
    case 2:
        $this.$dropBlockAsItemWithChance($par1World, $par3, $par4, $par5, $par6, var$13, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, $var8, var$8, var$9, var$10, $var7, var$12, var$13, $ptr);
},
nms_Block_canSilkHarvest = $this => {
    return $this.$renderAsNormalBlock() && !$this.$isBlockContainer ? 1 : 0;
},
nms_Block_createStackedBlock = ($this, $par1) => {
    let var$2, var$3, var$4;
    var$2 = $this.$blockID;
    if (var$2 < 0)
        $par1 = 0;
    else {
        nms_Item_$callClinit();
        var$3 = nms_Item_itemsList.data;
        if (var$2 >= var$3.length)
            $par1 = 0;
        else if (!var$3[var$2].$hasSubtypes)
            $par1 = 0;
    }
    var$4 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    var$4.$itemID = var$2;
    var$4.$stackSize = 1;
    var$4.$itemDamage = $par1;
    if ($par1 < 0)
        var$4.$itemDamage = 0;
    return var$4;
},
nms_Block_quantityDroppedWithBonus = ($this, $par1, $par2Random) => {
    return $this.$quantityDropped($par2Random);
},
nms_Block_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    return 1;
},
nms_Block_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    return;
},
nms_Block_onPostBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return;
},
nms_Block_setUnlocalizedName = ($this, $par1Str) => {
    $this.$unlocalizedName0 = $par1Str;
    return $this;
},
nms_Block_getLocalizedName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = nms_Block_getUnlocalizedName($this);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(400));
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        nms_StatCollector_$callClinit();
        return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$1);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_Block_getUnlocalizedName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$unlocalizedName0;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(703));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_Block_onBlockEventReceived = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    return 0;
},
nms_Block_getEnableStats = $this => {
    return $this.$enableStats;
},
nms_Block_disableStats = $this => {
    $this.$enableStats = 0;
    return $this;
},
nms_Block_getMobilityFlag = $this => {
    return $this.$blockMaterial.$mobilityFlag;
},
nms_Block_onFallenUpon = ($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6) => {
    return;
},
nms_Block_setCreativeTab = ($this, $par1CreativeTabs) => {
    $this.$displayOnCreativeTab = $par1CreativeTabs;
    return $this;
},
nms_Block_onBlockHarvested = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer) => {
    return;
};
let nms_Block_onBlockPreDestroy = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return;
},
nms_Block_fillWithRain = ($this, $par1World, $par2, $par3, $par4) => {
    return;
},
nms_Block_func_82506_l = $this => {
    return 1;
},
nms_Block_canDropFromExplosion = ($this, $par1Explosion) => {
    return 1;
},
nms_Block_isAssociatedBlockID0 = ($this, $par1) => {
    return $this.$blockID != $par1 ? 0 : 1;
},
nms_Block_isAssociatedBlockID = ($par0, $par1) => {
    let var$3;
    nms_Block_$callClinit();
    a: {
        if ($par0 == $par1)
            $par0 = 1;
        else {
            if ($par0 && $par1) {
                var$3 = nms_Block_blocksList.data;
                if (var$3[$par0] !== null && var$3[$par1] !== null) {
                    $par0 = var$3[$par0].$isAssociatedBlockID($par1);
                    break a;
                }
            }
            $par0 = 0;
        }
    }
    return $par0;
},
nms_Block_hasComparatorInputOverride = $this => {
    return 0;
},
nms_Block_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return 0;
},
nms_Block_setTextureName = ($this, $par1Str) => {
    $this.$textureName = $par1Str;
    return $this;
},
nms_Block__clinit_ = () => {
    let var$1, var$2, var$3, var$4, $var0, var$6, $var1, var$8;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(79);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundPowderFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(704);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundWoodFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(705);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundGravelFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(706);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundGrassFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(79);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundStoneFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(79);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.5;
    nms_Block_soundMetalFootstep = var$1;
    var$1 = new nms_StepSoundStone;
    var$1.$stepSoundName = $rt_s(79);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundGlassFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(707);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundClothFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(708);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundSandFootstep = var$1;
    var$1 = new nms_StepSound;
    var$1.$stepSoundName = $rt_s(709);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundSnowFootstep = var$1;
    var$1 = new nms_StepSoundSand;
    var$1.$stepSoundName = $rt_s(710);
    var$1.$stepSoundVolume = 1.0;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundLadderFootstep = var$1;
    var$1 = new nms_StepSoundAnvil;
    var$1.$stepSoundName = $rt_s(711);
    var$1.$stepSoundVolume = 0.30000001192092896;
    var$1.$stepSoundPitch = 1.0;
    nms_Block_soundAnvilFootstep = var$1;
    nms_Block_blocksList = $rt_createArray(nms_Block, 4096);
    nms_Block_opaqueCubeLookup = $rt_createBooleanArray(4096);
    nms_Block_lightOpacity = $rt_createIntArray(4096);
    nms_Block_canBlockGrass = $rt_createBooleanArray(4096);
    nms_Block_lightValue = $rt_createIntArray(4096);
    nms_Block_useNeighborBrightness = $rt_createBooleanArray(4096);
    var$1 = new nms_BlockStone;
    nms_Material_$callClinit();
    nms_Block__init_(var$1, 1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$blockHardness = 1.5;
    if (var$1.$blockResistance < 7.5)
        var$1.$blockResistance = 7.5;
    var$1.$blockResistance = 30.0;
    var$1.$stepSound = nms_Block_soundStoneFootstep;
    var$1.$unlocalizedName0 = $rt_s(79);
    var$1.$textureName = $rt_s(79);
    nms_Block_stone = var$1;
    var$1 = new nms_BlockGrass;
    nms_Block__init_(var$1, 2, nms_Material_grass);
    var$1.$needsRandomTick = 1;
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$blockHardness = 0.6000000238418579;
    if (var$1.$blockResistance < 3.0)
        var$1.$blockResistance = 3.0;
    var$1.$stepSound = nms_Block_soundGrassFootstep;
    var$1.$unlocalizedName0 = $rt_s(706);
    var$1.$textureName = $rt_s(706);
    nms_Block_grass = var$1;
    var$1 = new nms_BlockDirt;
    nms_Block__init_(var$1, 3, nms_Material_ground);
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$blockHardness = 0.5;
    if (var$1.$blockResistance < 2.5)
        var$1.$blockResistance = 2.5;
    var$1.$stepSound = nms_Block_soundGravelFootstep;
    var$1.$unlocalizedName0 = $rt_s(712);
    var$1.$textureName = $rt_s(712);
    nms_Block_dirt = var$1;
    var$1 = nms_Block__init_0(4, nms_Material_rock);
    var$1.$blockHardness = 2.0;
    if (var$1.$blockResistance < 10.0)
        var$1.$blockResistance = 10.0;
    var$1.$blockResistance = 30.0;
    var$1.$stepSound = nms_Block_soundStoneFootstep;
    var$1.$unlocalizedName0 = $rt_s(713);
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$textureName = $rt_s(714);
    nms_Block_cobblestone = var$1;
    var$1 = new nms_BlockWood;
    nms_Block__init_(var$1, 5, nms_Material_wood);
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$blockHardness = 2.0;
    if (var$1.$blockResistance < 10.0)
        var$1.$blockResistance = 10.0;
    var$1.$blockResistance = 15.0;
    var$1.$stepSound = nms_Block_soundWoodFootstep;
    var$1.$unlocalizedName0 = $rt_s(704);
    var$1.$textureName = $rt_s(715);
    nms_Block_planks = var$1;
    var$1 = new nms_BlockSapling;
    nms_Block__init_(var$1, 6, nms_Material_plants);
    var$1.$needsRandomTick = 1;
    var$1.$minX1 = 0.30000001192092896;
    var$1.$minY1 = 0.0;
    var$1.$minZ1 = 0.30000001192092896;
    var$1.$maxX1 = 0.699999988079071;
    var$1.$maxY0 = 0.6000000238418579;
    var$1.$maxZ1 = 0.699999988079071;
    var$2 = nms_CreativeTabs_tabDecorations;
    var$1.$displayOnCreativeTab = var$2;
    var$1.$minX1 = 0.09999999403953552;
    var$1.$minY1 = 0.0;
    var$1.$minZ1 = 0.09999999403953552;
    var$1.$maxX1 = 0.8999999761581421;
    var$1.$maxY0 = 0.800000011920929;
    var$1.$maxZ1 = 0.8999999761581421;
    var$1.$displayOnCreativeTab = var$2;
    var$1.$blockHardness = 0.0;
    if (var$1.$blockResistance < 0.0)
        var$1.$blockResistance = 0.0;
    var$1.$stepSound = nms_Block_soundGrassFootstep;
    var$1.$unlocalizedName0 = $rt_s(716);
    var$1.$textureName = $rt_s(716);
    nms_Block_sapling = var$1;
    var$1 = nms_Block__init_0(7, nms_Material_rock);
    var$1.$blockHardness = (-1.0);
    if (var$1.$blockResistance < (-5.0))
        var$1.$blockResistance = (-5.0);
    var$1.$blockResistance = 1.8E7;
    var$1.$stepSound = nms_Block_soundStoneFootstep;
    var$1.$unlocalizedName0 = $rt_s(717);
    var$1.$enableStats = 0;
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$textureName = $rt_s(717);
    nms_Block_bedrock = var$1;
    var$1 = new nms_BlockFlowing;
    nms_Block__init_(var$1, 8, nms_Material_water);
    var$1.$minX1 = 0.0;
    var$1.$minY1 = 0.0;
    var$1.$minZ1 = 0.0;
    var$1.$maxX1 = 1.0;
    var$1.$maxY0 = 1.0;
    var$1.$maxZ1 = 1.0;
    var$1.$needsRandomTick = 1;
    var$1.$isOptimalFlowDirection = $rt_createBooleanArray(4);
    var$1.$flowCost = $rt_createIntArray(4);
    var$1.$blockHardness = 100.0;
    if (var$1.$blockResistance < 500.0)
        var$1.$blockResistance = 500.0;
    nms_Block_lightOpacity.data[var$1.$blockID] = 3;
    var$1.$unlocalizedName0 = $rt_s(718);
    var$1.$enableStats = 0;
    var$1.$textureName = $rt_s(719);
    nms_Block_waterMoving = var$1;
    var$1 = new nms_BlockStationary;
    var$2 = nms_Material_water;
    nms_Block__init_(var$1, 9, var$2);
    var$1.$minX1 = 0.0;
    var$1.$minY1 = 0.0;
    var$1.$minZ1 = 0.0;
    var$1.$maxX1 = 1.0;
    var$1.$maxY0 = 1.0;
    var$1.$maxZ1 = 1.0;
    var$1.$needsRandomTick = 1;
    var$1.$needsRandomTick = 0;
    var$3 = nms_Material_lava;
    if (var$2 === var$3)
        var$1.$needsRandomTick = 1;
    var$1.$blockHardness = 100.0;
    if (var$1.$blockResistance < 500.0)
        var$1.$blockResistance = 500.0;
    nms_Block_lightOpacity.data[var$1.$blockID] = 3;
    var$1.$unlocalizedName0 = $rt_s(718);
    var$1.$enableStats = 0;
    var$1.$textureName = $rt_s(720);
    nms_Block_waterStill = var$1;
    var$1 = new nms_BlockFlowing;
    nms_Block__init_(var$1, 10, var$3);
    var$1.$minX1 = 0.0;
    var$1.$minY1 = 0.0;
    var$1.$minZ1 = 0.0;
    var$1.$maxX1 = 1.0;
    var$1.$maxY0 = 1.0;
    var$1.$maxZ1 = 1.0;
    var$1.$needsRandomTick = 1;
    var$1.$isOptimalFlowDirection = $rt_createBooleanArray(4);
    var$1.$flowCost = $rt_createIntArray(4);
    var$1.$blockHardness = 0.0;
    if (var$1.$blockResistance < 0.0)
        var$1.$blockResistance = 0.0;
    nms_Block_lightValue.data[var$1.$blockID] = 15;
    var$1.$unlocalizedName0 = $rt_s(721);
    var$1.$enableStats = 0;
    var$1.$textureName = $rt_s(722);
    nms_Block_lavaMoving = var$1;
    var$1 = new nms_BlockStationary;
    var$2 = nms_Material_lava;
    nms_Block__init_(var$1, 11, var$2);
    var$1.$minX1 = 0.0;
    var$1.$minY1 = 0.0;
    var$1.$minZ1 = 0.0;
    var$1.$maxX1 = 1.0;
    var$1.$maxY0 = 1.0;
    var$1.$maxZ1 = 1.0;
    var$1.$needsRandomTick = 1;
    var$1.$needsRandomTick = 0;
    if (var$2 === nms_Material_lava)
        var$1.$needsRandomTick = 1;
    var$1.$blockHardness = 100.0;
    if (var$1.$blockResistance < 500.0)
        var$1.$blockResistance = 500.0;
    nms_Block_lightValue.data[var$1.$blockID] = 15;
    var$1.$unlocalizedName0 = $rt_s(721);
    var$1.$enableStats = 0;
    var$1.$textureName = $rt_s(723);
    nms_Block_lavaStill = var$1;
    var$1 = new nms_BlockSand;
    nms_Block__init_(var$1, 12, nms_Material_sand);
    var$1.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    var$1.$blockHardness = 0.5;
    if (var$1.$blockResistance < 2.5)
        var$1.$blockResistance = 2.5;
    var$1.$stepSound = nms_Block_soundSandFootstep;
    nms_Block_sand = nms_Block_setTextureName(nms_Block_setUnlocalizedName(var$1, $rt_s(708)), $rt_s(708));
    nms_Block_gravel = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockGravel__init_(13), 0.6000000238418579), nms_Block_soundGravelFootstep), $rt_s(705)), $rt_s(705));
    nms_Block_oreGold = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(14), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(724)), $rt_s(725));
    nms_Block_oreIron = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(15), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(726)), $rt_s(727));
    nms_Block_oreCoal = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(16), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(728)), $rt_s(729));
    nms_Block_wood = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockLog__init_(17), 2.0), nms_Block_soundWoodFootstep), $rt_s(730)), $rt_s(730));
    nms_Block_leaves = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightOpacity(nms_Block_setHardness(nms_BlockLeaves__init_(18), 0.20000000298023224), 1), nms_Block_soundGrassFootstep), $rt_s(731)), $rt_s(731));
    nms_Block_sponge = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSponge__init_0(19), 0.6000000238418579), nms_Block_soundGrassFootstep), $rt_s(732)), $rt_s(732));
    nms_Block_glass = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockGlass__init_0(20, nms_Material_glass, 0), 0.30000001192092896), nms_Block_soundGlassFootstep), $rt_s(733)), $rt_s(733));
    nms_Block_oreLapis = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(21), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(734)), $rt_s(735));
    nms_Block_blockLapis = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(22, nms_Material_rock), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(736)), nms_CreativeTabs_tabBlock), $rt_s(737));
    nms_Block_dispenser = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDispenser__init_0(23), 3.5), nms_Block_soundStoneFootstep), $rt_s(738)), $rt_s(738));
    nms_Block_sandStone = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_Block_setStepSound(nms_BlockSandStone__init_0(24), nms_Block_soundStoneFootstep), 0.800000011920929), $rt_s(739)), $rt_s(740));
    nms_Block_music = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_BlockNote__init_0(25), 0.800000011920929), $rt_s(741)), $rt_s(742));
    nms_Block_bed = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_BlockBed__init_0(26), 0.20000000298023224), $rt_s(571))), $rt_s(571));
    nms_Block_railPowered = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRailPowered__init_(27), 0.699999988079071), nms_Block_soundMetalFootstep), $rt_s(743)), $rt_s(744));
    nms_Block_railDetector = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDetectorRail__init_(28), 0.699999988079071), nms_Block_soundMetalFootstep), $rt_s(745)), $rt_s(746));
    nms_Block_pistonStickyBase = nms_Block_setUnlocalizedName(nms_BlockPistonBase__init_(29, 1), $rt_s(747));
    nms_Block_web = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_Block_setLightOpacity(nms_BlockWeb__init_0(30), 1), 4.0), $rt_s(748)), $rt_s(748));
    nms_Block_tallGrass = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockTallGrass__init_(31), 0.0), nms_Block_soundGrassFootstep), $rt_s(77));
    nms_Block_deadBush = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDeadBush__init_(32), 0.0), nms_Block_soundGrassFootstep), $rt_s(76)), $rt_s(76));
    nms_Block_pistonBase = nms_Block_setUnlocalizedName(nms_BlockPistonBase__init_(33, 0), $rt_s(749));
    nms_Block_pistonExtension = nms_BlockPistonExtension__init_(34);
    nms_Block_cloth = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockColored__init_(35, nms_Material_cloth), 0.800000011920929), nms_Block_soundClothFootstep), $rt_s(707)), $rt_s(750));
    nms_Block_pistonMoving = nms_BlockPistonMoving__init_(36);
    nms_Block_plantYellow = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockFlower__init_(37), 0.0), nms_Block_soundGrassFootstep), $rt_s(751)), $rt_s(752));
    nms_Block_plantRed = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockFlower__init_(38), 0.0), nms_Block_soundGrassFootstep), $rt_s(753)), $rt_s(754));
    nms_Block_mushroomBrown = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMushroom__init_(39), 0.0), nms_Block_soundGrassFootstep), 0.125), $rt_s(755)), $rt_s(756));
    nms_Block_mushroomRed = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMushroom__init_(40), 0.0), nms_Block_soundGrassFootstep), $rt_s(755)), $rt_s(757));
    nms_Block_blockGold = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOreStorage__init_(41), 3.0), 10.0), nms_Block_soundMetalFootstep), $rt_s(758)), $rt_s(759));
    nms_Block_blockIron = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOreStorage__init_(42), 5.0), 10.0), nms_Block_soundMetalFootstep), $rt_s(760)), $rt_s(761));
    nms_Block_stoneDoubleSlab = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockStep__init_(43, 1), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(762));
    nms_Block_stoneSingleSlab = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockStep__init_(44, 0), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(762));
    nms_Block_brick = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(45, nms_Material_rock), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(81)), nms_CreativeTabs_tabBlock), $rt_s(81));
    nms_Block_tnt = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockTNT__init_0(46), 0.0), nms_Block_soundGrassFootstep), $rt_s(763)), $rt_s(763));
    nms_Block_bookShelf = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockBookshelf__init_0(47), 1.5), nms_Block_soundWoodFootstep), $rt_s(764)), $rt_s(764));
    nms_Block_cobblestoneMossy = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(48, nms_Material_rock), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(765)), nms_CreativeTabs_tabBlock), $rt_s(766));
    nms_Block_obsidian = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockObsidian__init_(49), 50.0), 2000.0), nms_Block_soundStoneFootstep), $rt_s(767)), $rt_s(767));
    nms_Block_torchWood = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockTorch__init_(50), 0.0), 0.9375), nms_Block_soundWoodFootstep), $rt_s(768)), $rt_s(769));
    nms_Block_fire = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockFire__init_0(51), 0.0), 1.0), nms_Block_soundWoodFootstep), $rt_s(770))), $rt_s(770));
    nms_Block_mobSpawner = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMobSpawner__init_0(52), 5.0), nms_Block_soundMetalFootstep), $rt_s(771))), $rt_s(772));
    nms_Block_stairsWoodOak = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(53, nms_Block_planks, 0), $rt_s(773));
    nms_Block_chest = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockChest__init_(54, 0), 2.5), nms_Block_soundWoodFootstep), $rt_s(774));
    nms_Block_redstoneWire = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRedstoneWire__init_0(55), 0.0), nms_Block_soundPowderFootstep), $rt_s(775))), $rt_s(538));
    nms_Block_oreDiamond = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(56), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(776)), $rt_s(777));
    nms_Block_blockDiamond = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOreStorage__init_(57), 5.0), 10.0), nms_Block_soundMetalFootstep), $rt_s(778)), $rt_s(779));
    nms_Block_workbench = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockWorkbench__init_0(58), 2.5), nms_Block_soundWoodFootstep), $rt_s(780)), $rt_s(781));
    nms_Block_crops = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_BlockCrops__init_(59), $rt_s(782)), $rt_s(473));
    nms_Block_tilledField = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockFarmland__init_(60), 0.6000000238418579), nms_Block_soundGravelFootstep), $rt_s(783)), $rt_s(783));
    nms_Block_furnaceIdle = nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockFurnace__init_(61, 0), 3.5), nms_Block_soundStoneFootstep), $rt_s(784)), nms_CreativeTabs_tabDecorations);
    nms_Block_furnaceBurning = nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockFurnace__init_(62, 1), 3.5), nms_Block_soundStoneFootstep), 0.875), $rt_s(784));
    nms_Block_signPost = nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSign__init_(63, $rt_cls(nms_TileEntitySign), 1), 1.0), nms_Block_soundWoodFootstep), $rt_s(523)));
    nms_Block_doorWood = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDoor__init_(64, nms_Material_wood), 3.0), nms_Block_soundWoodFootstep), $rt_s(524))), $rt_s(525));
    nms_Block_ladder = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockLadder__init_(65), 0.4000000059604645), nms_Block_soundLadderFootstep), $rt_s(710)), $rt_s(710));
    nms_Block_rail = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRail__init_0(66), 0.699999988079071), nms_Block_soundMetalFootstep), $rt_s(785)), $rt_s(786));
    nms_Block_stairsCobblestone = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(67, nms_Block_cobblestone, 0), $rt_s(787));
    nms_Block_signWall = nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSign__init_(68, $rt_cls(nms_TileEntitySign), 0), 1.0), nms_Block_soundWoodFootstep), $rt_s(523)));
    nms_Block_lever = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockLever__init_(69), 0.5), nms_Block_soundWoodFootstep), $rt_s(788)), $rt_s(788));
    nms_Block_pressurePlateStone = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPressurePlate__init_(70, $rt_s(79), nms_Material_rock, nms_EnumMobType_mobs), 0.5), nms_Block_soundStoneFootstep), $rt_s(789));
    nms_Block_doorIron = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDoor__init_(71, nms_Material_iron), 5.0), nms_Block_soundMetalFootstep), $rt_s(535))), $rt_s(536));
    nms_Block_pressurePlatePlanks = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPressurePlate__init_(72, $rt_s(790), nms_Material_wood, nms_EnumMobType_everything), 0.5), nms_Block_soundWoodFootstep), $rt_s(789));
    nms_Block_oreRedstone = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockRedstoneOre__init_(73, 0), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(791)), nms_CreativeTabs_tabBlock), $rt_s(792));
    nms_Block_oreRedstoneGlowing = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block_setLightValue(nms_BlockRedstoneOre__init_(74, 1), 0.625), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(791)), $rt_s(792));
    nms_Block_torchRedstoneIdle = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRedstoneTorch__init_(75, 0), 0.0), nms_Block_soundWoodFootstep), $rt_s(793)), $rt_s(794));
    nms_Block_torchRedstoneActive = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockRedstoneTorch__init_(76, 1), 0.0), 0.5), nms_Block_soundWoodFootstep), $rt_s(793)), nms_CreativeTabs_tabRedstone), $rt_s(795));
    nms_Block_stoneButton = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockButtonStone__init_0(77), 0.5), nms_Block_soundStoneFootstep), $rt_s(796));
    nms_Block_snow = nms_Block_setTextureName(nms_Block_setLightOpacity(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSnow__init_(78), 0.10000000149011612), nms_Block_soundSnowFootstep), $rt_s(709)), 0), $rt_s(709));
    nms_Block_ice = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightOpacity(nms_Block_setHardness(nms_BlockIce__init_(79), 0.5), 3), nms_Block_soundGlassFootstep), $rt_s(797)), $rt_s(797));
    nms_Block_blockSnow = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSnowBlock__init_(80), 0.20000000298023224), nms_Block_soundSnowFootstep), $rt_s(709)), $rt_s(709));
    nms_Block_cactus = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockCactus__init_0(81), 0.4000000059604645), nms_Block_soundClothFootstep), $rt_s(798)), $rt_s(798));
    nms_Block_blockClay = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockClay__init_(82), 0.6000000238418579), nms_Block_soundGravelFootstep), $rt_s(544)), $rt_s(544));
    nms_Block_reed = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockReed__init_(83), 0.0), nms_Block_soundGrassFootstep), $rt_s(546))), $rt_s(546));
    nms_Block_jukebox = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockJukeBox__init_(84), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(799)), $rt_s(799));
    nms_Block_fence = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockFence__init_(85, $rt_s(790), nms_Material_wood), 2.0), 5.0), nms_Block_soundWoodFootstep), $rt_s(800));
    nms_Block_pumpkin = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPumpkin__init_(86, 0), 1.0), nms_Block_soundWoodFootstep), $rt_s(801)), $rt_s(801));
    nms_Block_netherrack = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockNetherrack__init_(87), 0.4000000059604645), nms_Block_soundStoneFootstep), $rt_s(802)), $rt_s(803));
    nms_Block_slowSand = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSoulSand__init_0(88), 0.5), nms_Block_soundSandFootstep), $rt_s(804)), $rt_s(805));
    nms_Block_glowStone = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockGlowStone__init_0(89, nms_Material_glass), 0.30000001192092896), nms_Block_soundGlassFootstep), 1.0), $rt_s(806)), $rt_s(807));
    nms_Block_portal = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPortal__init_(90), (-1.0)), nms_Block_soundGlassFootstep), 0.75), $rt_s(152)), $rt_s(152));
    nms_Block_pumpkinLantern = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPumpkin__init_(91, 1), 1.0), nms_Block_soundWoodFootstep), 1.0), $rt_s(808)), $rt_s(801));
    nms_Block_cake = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockCake__init_0(92), 0.5), nms_Block_soundClothFootstep), $rt_s(570))), $rt_s(570));
    nms_Block_redstoneRepeaterIdle = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRedstoneRepeater__init_(93, 0), 0.0), nms_Block_soundWoodFootstep), $rt_s(572))), $rt_s(809));
    nms_Block_redstoneRepeaterActive = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockRedstoneRepeater__init_(94, 1), 0.0), 0.625), nms_Block_soundWoodFootstep), $rt_s(572))), $rt_s(810));
    nms_Block_lockedChest = nms_Block_setTickRandomly(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockLockedChest__init_0(95), 0.0), 1.0), nms_Block_soundWoodFootstep), $rt_s(811)), 1);
    nms_Block_trapdoor = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockTrapDoor__init_0(96, nms_Material_wood), 3.0), nms_Block_soundWoodFootstep), $rt_s(812))), $rt_s(812));
    nms_Block_silverfish = nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_BlockSilverfish__init_(97), 0.75), $rt_s(813));
    nms_Block_stoneBrick = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockStoneBrick__init_0(98), 1.5), 10.0), nms_Block_soundStoneFootstep), $rt_s(814)), $rt_s(713));
    nms_Block_mushroomCapBrown = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMushroomCap__init_(99, nms_Material_wood, 0), 0.20000000298023224), nms_Block_soundWoodFootstep), $rt_s(755)), $rt_s(815));
    nms_Block_mushroomCapRed = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMushroomCap__init_(100, nms_Material_wood, 1), 0.20000000298023224), nms_Block_soundWoodFootstep), $rt_s(755)), $rt_s(815));
    nms_Block_fenceIron = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockPane__init_(101, $rt_s(816), $rt_s(816), nms_Material_iron, 1), 5.0), 10.0), nms_Block_soundMetalFootstep), $rt_s(817));
    nms_Block_thinGlass = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPane__init_(102, $rt_s(733), $rt_s(818), nms_Material_glass, 0), 0.30000001192092896), nms_Block_soundGlassFootstep), $rt_s(819));
    nms_Block_melon = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMelon__init_0(103), 1.0), nms_Block_soundWoodFootstep), $rt_s(578)), $rt_s(578));
    nms_Block_pumpkinStem = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockStem__init_(104, nms_Block_pumpkin), 0.0), nms_Block_soundWoodFootstep), $rt_s(820)), $rt_s(821));
    nms_Block_melonStem = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockStem__init_(105, nms_Block_melon), 0.0), nms_Block_soundWoodFootstep), $rt_s(820)), $rt_s(822));
    nms_Block_vine = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockVine__init_(106), 0.20000000298023224), nms_Block_soundGrassFootstep), $rt_s(823)), $rt_s(823));
    nms_Block_fenceGate = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockFenceGate__init_0(107), 2.0), 5.0), nms_Block_soundWoodFootstep), $rt_s(824));
    nms_Block_stairsBrick = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(108, nms_Block_brick, 0), $rt_s(825));
    nms_Block_stairsStoneBrick = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(109, nms_Block_stoneBrick, 0), $rt_s(826));
    nms_Block_mycelium = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockMycelium__init_(110), 0.6000000238418579), nms_Block_soundGrassFootstep), $rt_s(827)), $rt_s(828));
    nms_Block_waterlily = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockLilyPad__init_0(111), 0.0), nms_Block_soundGrassFootstep), $rt_s(829)), $rt_s(829));
    nms_Block_netherBrick = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(112, nms_Material_rock), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(830)), nms_CreativeTabs_tabBlock), $rt_s(831));
    nms_Block_netherFence = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockFence__init_(113, $rt_s(831), nms_Material_rock), 2.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(832));
    nms_Block_stairsNetherBrick = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(114, nms_Block_netherBrick, 0), $rt_s(833));
    nms_Block_netherStalk = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_BlockNetherStalk__init_0(115), $rt_s(834)), $rt_s(601));
    nms_Block_enchantmentTable = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setResistance(nms_Block_setHardness(nms_BlockEnchantmentTable__init_(116), 5.0), 2000.0), $rt_s(835)), $rt_s(836));
    nms_Block_brewingStand = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockBrewingStand__init_0(117), 0.5), 0.125), $rt_s(612)), $rt_s(613));
    nms_Block_cauldron = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_BlockCauldron__init_(118), 2.0), $rt_s(614)), $rt_s(614));
    nms_Block_endPortal = nms_Block_setResistance(nms_Block_setHardness(nms_BlockEndPortal__init_(119, nms_Material_portal), (-1.0)), 6000000.0);
    nms_Block_endPortalFrame = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setResistance(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_Block_setLightValue(nms_Block_setStepSound(nms_BlockEndPortalFrame__init_(120), nms_Block_soundGlassFootstep), 0.125), (-1.0)), $rt_s(837)), 6000000.0), nms_CreativeTabs_tabDecorations), $rt_s(838));
    nms_Block_whiteStone = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(121, nms_Material_rock), 3.0), 15.0), nms_Block_soundStoneFootstep), $rt_s(839)), nms_CreativeTabs_tabBlock), $rt_s(840));
    nms_Block_dragonEgg = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setLightValue(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockDragonEgg__init_(122), 3.0), 15.0), nms_Block_soundStoneFootstep), 0.125), $rt_s(841)), $rt_s(842));
    nms_Block_redstoneLampIdle = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRedstoneLight__init_(123, 0), 0.30000001192092896), nms_Block_soundGlassFootstep), $rt_s(843)), nms_CreativeTabs_tabRedstone), $rt_s(844));
    nms_Block_redstoneLampActive = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRedstoneLight__init_(124, 1), 0.30000001192092896), nms_Block_soundGlassFootstep), $rt_s(843)), $rt_s(845));
    nms_Block_woodDoubleSlab = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockWoodSlab__init_(125, 1), 2.0), 5.0), nms_Block_soundWoodFootstep), $rt_s(846));
    nms_Block_woodSingleSlab = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockWoodSlab__init_(126, 0), 2.0), 5.0), nms_Block_soundWoodFootstep), $rt_s(846));
    nms_Block_cocoaPlant = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockCocoa__init_0(127), 0.20000000298023224), 5.0), nms_Block_soundWoodFootstep), $rt_s(847)), $rt_s(847));
    nms_Block_stairsSandStone = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(128, nms_Block_sandStone, 0), $rt_s(848));
    nms_Block_oreEmerald = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(129), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(849)), $rt_s(850));
    nms_Block_enderChest = nms_Block_setLightValue(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockEnderChest__init_0(130), 22.5), 1000.0), nms_Block_soundStoneFootstep), $rt_s(851)), 0.5);
    nms_Block_tripWireSource = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_BlockTripWireSource__init_0(131), $rt_s(852)), $rt_s(853));
    nms_Block_tripWire = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_BlockTripWire__init_0(132), $rt_s(854)), $rt_s(855));
    nms_Block_blockEmerald = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOreStorage__init_(133), 5.0), 10.0), nms_Block_soundMetalFootstep), $rt_s(856)), $rt_s(857));
    nms_Block_stairsWoodSpruce = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(134, nms_Block_planks, 1), $rt_s(858));
    nms_Block_stairsWoodBirch = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(135, nms_Block_planks, 2), $rt_s(859));
    nms_Block_stairsWoodJungle = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(136, nms_Block_planks, 3), $rt_s(860));
    nms_Block_commandBlock = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setResistance(nms_Block_setBlockUnbreakable(nms_BlockCommandBlock__init_(137)), 6000000.0), $rt_s(861)), $rt_s(862));
    nms_Block_beacon = nms_Block_setTextureName(nms_Block_setLightValue(nms_Block_setUnlocalizedName(nms_BlockBeacon__init_0(138), $rt_s(863)), 1.0), $rt_s(863));
    nms_Block_cobblestoneWall = nms_Block_setUnlocalizedName(nms_BlockWall__init_0(139, nms_Block_cobblestone), $rt_s(864));
    nms_Block_flowerPot = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockFlowerPot__init_(140), 0.0), nms_Block_soundPowderFootstep), $rt_s(631)), $rt_s(632));
    nms_Block_carrot = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_BlockCarrot__init_0(141), $rt_s(633)), $rt_s(633));
    nms_Block_potato = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_BlockPotato__init_(142), $rt_s(865)), $rt_s(865));
    nms_Block_woodenButton = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockButtonWood__init_(143), 0.5), nms_Block_soundWoodFootstep), $rt_s(796));
    nms_Block_skull = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockSkull__init_0(144), 1.0), nms_Block_soundStoneFootstep), $rt_s(644)), $rt_s(644));
    nms_Block_anvil = nms_Block_setUnlocalizedName(nms_Block_setResistance(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockAnvil__init_0(145), 5.0), nms_Block_soundAnvilFootstep), 2000.0), $rt_s(711));
    nms_Block_chestTrapped = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockChest__init_(146, 1), 2.5), nms_Block_soundWoodFootstep), $rt_s(866));
    nms_Block_pressurePlateGold = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPressurePlateWeighted__init_(147, $rt_s(759), nms_Material_iron, 64), 0.5), nms_Block_soundWoodFootstep), $rt_s(867));
    nms_Block_pressurePlateIron = nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockPressurePlateWeighted__init_(148, $rt_s(761), nms_Material_iron, 640), 0.5), nms_Block_soundWoodFootstep), $rt_s(868));
    nms_Block_redstoneComparatorIdle = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockComparator__init_(149, 0), 0.0), nms_Block_soundWoodFootstep), $rt_s(656))), $rt_s(869));
    nms_Block_redstoneComparatorActive = nms_Block_setTextureName(nms_Block_disableStats(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setLightValue(nms_Block_setHardness(nms_BlockComparator__init_(150, 1), 0.0), 0.625), nms_Block_soundWoodFootstep), $rt_s(656))), $rt_s(870));
    nms_Block_daylightSensor = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDaylightDetector__init_0(151), 0.20000000298023224), nms_Block_soundWoodFootstep), $rt_s(871)), $rt_s(872));
    nms_Block_blockRedstone = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockPoweredOre__init_(152), 5.0), 10.0), nms_Block_soundMetalFootstep), $rt_s(873)), $rt_s(874));
    nms_Block_oreNetherQuartz = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockOre__init_(153), 3.0), 5.0), nms_Block_soundStoneFootstep), $rt_s(658)), $rt_s(875));
    nms_Block_hopperBlock = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockHopper__init_0(154), 3.0), 8.0), nms_Block_soundWoodFootstep), $rt_s(876)), $rt_s(876));
    var$1 = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setHardness(nms_Block_setStepSound(nms_BlockQuartz__init_0(155), nms_Block_soundStoneFootstep), 0.800000011920929), $rt_s(877)), $rt_s(878));
    nms_Block_blockNetherQuartz = var$1;
    nms_Block_stairsNetherQuartz = nms_Block_setUnlocalizedName(nms_BlockStairs__init_(156, var$1, 0), $rt_s(879));
    nms_Block_railActivator = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockRailPowered__init_(157), 0.699999988079071), nms_Block_soundMetalFootstep), $rt_s(880)), $rt_s(881));
    nms_Block_dropper = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockDropper__init_0(158), 3.5), nms_Block_soundStoneFootstep), $rt_s(882)), $rt_s(882));
    nms_Block_stainedClay = nms_Block_setTextureName(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_BlockColored__init_(159, nms_Material_rock), 1.25), 7.0), nms_Block_soundStoneFootstep), $rt_s(883)), $rt_s(884));
    nms_Block_hay = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockHay__init_0(170), 0.5), nms_Block_soundGrassFootstep), $rt_s(885)), nms_CreativeTabs_tabBlock), $rt_s(886));
    nms_Block_carpet = nms_Block_setLightOpacity(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setHardness(nms_BlockCarpet__init_(171), 0.10000000149011612), nms_Block_soundClothFootstep), $rt_s(887)), 0);
    nms_Block_hardenedClay = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(172, nms_Material_rock), 1.25), 7.0), nms_Block_soundStoneFootstep), $rt_s(888)), nms_CreativeTabs_tabBlock), $rt_s(889));
    nms_Block_coalBlock = nms_Block_setTextureName(nms_Block_setCreativeTab(nms_Block_setUnlocalizedName(nms_Block_setStepSound(nms_Block_setResistance(nms_Block_setHardness(nms_Block__init_0(173, nms_Material_rock), 5.0), 10.0), nms_Block_soundStoneFootstep), $rt_s(890)), nms_CreativeTabs_tabBlock), $rt_s(891));
    nms_Item_$callClinit();
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_cloth.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemCloth__init_($var0 - 256 | 0), $rt_s(707));
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_stainedClay.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemCloth__init_($var0 - 256 | 0), $rt_s(883));
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_carpet.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemCloth__init_($var0 - 256 | 0), $rt_s(887));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_wood;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockLog_woodType), $rt_s(730));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_planks;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockWood_woodType), $rt_s(704));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_silverfish;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockSilverfish_silverfishStoneTypes), $rt_s(813));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_stoneBrick;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockStoneBrick_STONE_BRICK_TYPES), $rt_s(814));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_sandStone;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockSandStone_SAND_STONE_TYPES), $rt_s(739));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_blockNetherQuartz;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockQuartz_quartzBlockTypes), $rt_s(877));
    var$4 = nms_Item_itemsList.data;
    var$1 = nms_Block_stoneSingleSlab;
    $var1 = var$1.$blockID;
    var$4[$var1] = nms_Item_setUnlocalizedName(nms_ItemSlab__init_($var1 - 256 | 0, var$1, nms_Block_stoneDoubleSlab, 0), $rt_s(762));
    var$4 = nms_Item_itemsList.data;
    var$1 = nms_Block_stoneDoubleSlab;
    $var0 = var$1.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemSlab__init_($var0 - 256 | 0, nms_Block_stoneSingleSlab, var$1, 1), $rt_s(762));
    var$4 = nms_Item_itemsList.data;
    var$1 = nms_Block_woodSingleSlab;
    $var0 = var$1.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemSlab__init_($var0 - 256 | 0, var$1, nms_Block_woodDoubleSlab, 0), $rt_s(846));
    var$4 = nms_Item_itemsList.data;
    var$1 = nms_Block_woodDoubleSlab;
    $var0 = var$1.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemSlab__init_($var0 - 256 | 0, nms_Block_woodSingleSlab, var$1, 1), $rt_s(846));
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_sapling;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockSapling_WOOD_TYPES), $rt_s(716));
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_leaves.$blockID;
    var$4[$var0] = nms_Item_setUnlocalizedName(nms_ItemLeaves__init_($var0 - 256 | 0), $rt_s(731));
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_vine.$blockID;
    var$4[$var0] = nms_ItemColored__init_($var0 - 256 | 0, 0);
    var$8 = nms_Item_itemsList.data;
    $var0 = nms_Block_tallGrass.$blockID;
    var$8[$var0] = nms_ItemColored_setBlockNames(nms_ItemColored__init_($var0 - 256 | 0, 1), $rt_wrapArray(jl_String, [$rt_s(892), $rt_s(706), $rt_s(78)]));
    var$4 = nms_Item_itemsList.data;
    var$1 = nms_Block_snow;
    $var0 = var$1.$blockID;
    var$4[$var0] = nms_ItemSnow__init_0($var0 - 256 | 0, var$1);
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_waterlily.$blockID;
    var$4[$var0] = nms_ItemLilyPad__init_($var0 - 256 | 0);
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_pistonBase.$blockID;
    var$4[$var0] = nms_ItemPiston__init_($var0 - 256 | 0);
    var$4 = nms_Item_itemsList.data;
    $var0 = nms_Block_pistonStickyBase.$blockID;
    var$4[$var0] = nms_ItemPiston__init_($var0 - 256 | 0);
    var$6 = nms_Item_itemsList.data;
    var$1 = nms_Block_cobblestoneWall;
    $var0 = var$1.$blockID;
    var$6[$var0] = nms_Item_setUnlocalizedName(nms_ItemMultiTextureTile__init_($var0 - 256 | 0, var$1, nms_BlockWall_types), $rt_s(864));
    var$4 = nms_Item_itemsList.data;
    var$1 = nms_Block_anvil;
    var$4[var$1.$blockID] = nms_Item_setUnlocalizedName(nms_ItemAnvilBlock__init_(var$1), $rt_s(711));
    $var0 = 0;
    while ($var0 < 256) {
        if (nms_Block_blocksList.data[$var0] !== null) {
            var$4 = nms_Item_itemsList.data;
            if (var$4[$var0] === null) {
                var$4[$var0] = nms_ItemBlock__init_($var0 - 256 | 0);
                nms_Block_blocksList.data[$var0].$initializeBlock();
            }
            $var1 = 0;
            if ($var0 > 0 && nms_Block_blocksList.data[$var0].$getRenderType() == 10)
                $var1 = 1;
            if ($var0 > 0 && nms_Block_blocksList.data[$var0] instanceof nms_BlockHalfSlab)
                $var1 = 1;
            if ($var0 == nms_Block_tilledField.$blockID)
                $var1 = 1;
            if (nms_Block_canBlockGrass.data[$var0])
                $var1 = 1;
            if (!nms_Block_lightOpacity.data[$var0])
                $var1 = 1;
            nms_Block_useNeighborBrightness.data[$var0] = $var1;
        }
        $var0 = $var0 + 1 | 0;
    }
    nms_Block_canBlockGrass.data[0] = 1;
    nms_StatList_initBreakableStats();
},
ju_Arrays = $rt_classWithoutFields(),
ju_Arrays__init_ = $this => {
    return;
},
ju_Arrays__init_0 = () => {
    let var_0 = new ju_Arrays();
    ju_Arrays__init_(var_0);
    return var_0;
},
ju_Arrays_fill = ($a, $fromIndex, $toIndex, $val) => {
    let var$5, var$6, var$7;
    if ($fromIndex <= $toIndex) {
        while ($fromIndex < $toIndex) {
            var$5 = $a.data;
            var$6 = $fromIndex + 1 | 0;
            var$5[$fromIndex] = $val;
            $fromIndex = var$6;
        }
        return;
    }
    var$7 = new jl_IllegalArgumentException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    $rt_throw(var$7);
},
ju_Arrays_fill0 = ($a, $val) => {
    let var$3, var$4, var$5, var$6;
    $a = $a.data;
    var$3 = 0;
    var$4 = $a.length;
    if (var$3 <= var$4) {
        while (var$3 < var$4) {
            var$5 = var$3 + 1 | 0;
            $a[var$3] = $val;
            var$3 = var$5;
        }
        return;
    }
    var$6 = new jl_IllegalArgumentException;
    var$6.$suppressionEnabled = 1;
    var$6.$writableStackTrace = 1;
    $rt_throw(var$6);
},
ju_Arrays_sort = ($a, $c) => {
    let var$3, $second, $chunkSize, var$6, $i, var$8, var$9, $i_0, var$11;
    var$3 = $a.data.length;
    if (!var$3)
        return;
    if ($c === null)
        $c = ju_Comparator$NaturalOrder_INSTANCE;
    $second = $rt_createArray(jl_Object, var$3);
    $chunkSize = 1;
    var$6 = $a;
    while ($chunkSize < var$3) {
        $i = 0;
        while (true) {
            var$8 = var$6.data.length;
            if ($i >= var$8)
                break;
            var$9 = $i + $chunkSize | 0;
            if (var$8 < var$9)
                var$9 = var$8;
            $i_0 = $i + (2 * $chunkSize | 0) | 0;
            if (var$8 >= $i_0)
                var$8 = $i_0;
            ju_Arrays_merge(var$6, $second, $i, var$9, var$8, $c);
            $i = $i_0;
        }
        $chunkSize = $chunkSize * 2 | 0;
        var$11 = var$6;
        var$6 = $second;
        $second = var$11;
    }
    a: {
        if (var$6 !== $a) {
            $i_0 = 0;
            while (true) {
                $a = var$6.data;
                if ($i_0 >= $a.length)
                    break a;
                $second.data[$i_0] = $a[$i_0];
                $i_0 = $i_0 + 1 | 0;
            }
        }
    }
},
ju_Arrays_merge = ($a, $b, $from, $split, $to, $comp) => {
    let var$7, $from2, var$9, $p, $q, var$12, var$13;
    var$7 = $from;
    $from2 = $split;
    a: {
        b: {
            while ($from != $split) {
                if ($from2 == $to)
                    break b;
                var$9 = $a.data;
                $p = var$9[$from];
                $q = var$9[$from2];
                if ($comp.$compare($p, $q) > 0) {
                    var$9 = $b.data;
                    var$12 = var$7 + 1 | 0;
                    var$9[var$7] = $q;
                    $from2 = $from2 + 1 | 0;
                } else {
                    var$9 = $b.data;
                    var$12 = var$7 + 1 | 0;
                    var$9[var$7] = $p;
                    $from = $from + 1 | 0;
                }
                var$7 = var$12;
            }
            while (true) {
                if ($from2 >= $to)
                    break a;
                var$13 = $b.data;
                var$9 = $a.data;
                $from = var$7 + 1 | 0;
                $split = $from2 + 1 | 0;
                var$13[var$7] = var$9[$from2];
                var$7 = $from;
                $from2 = $split;
            }
        }
        while (true) {
            if ($from >= $split)
                break a;
            var$13 = $b.data;
            var$9 = $a.data;
            $from2 = var$7 + 1 | 0;
            $to = $from + 1 | 0;
            var$13[var$7] = var$9[$from];
            var$7 = $from2;
            $from = $to;
        }
    }
},
ju_Arrays_binarySearch0 = ($a, $fromIndex, $toIndex, $key) => {
    let var$5, $u, var$7, $i, $e;
    if ($fromIndex > $toIndex) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    $u = $toIndex - 1 | 0;
    while (true) {
        if ($fromIndex > $u)
            return ( -$fromIndex | 0) - 1 | 0;
        var$7 = $a.data;
        $i = ($fromIndex + $u | 0) / 2 | 0;
        $e = var$7[$i];
        if ($e == $key)
            break;
        if ($key >= $e)
            $fromIndex = $i + 1 | 0;
        else
            $u = $i - 1 | 0;
    }
    return $i;
},
ju_Arrays_binarySearch = ($a, $fromIndex, $toIndex, $key) => {
    let var$5, $u, var$7, $i;
    if ($fromIndex > $toIndex) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    $u = $toIndex - 1 | 0;
    while (true) {
        if ($fromIndex > $u)
            return ( -$fromIndex | 0) - 1 | 0;
        var$7 = $a.data;
        $i = ($fromIndex + $u | 0) / 2 | 0;
        $toIndex = Long_compare(var$7[$i], $key);
        if (!$toIndex)
            break;
        if ($toIndex <= 0)
            $fromIndex = $i + 1 | 0;
        else
            $u = $i - 1 | 0;
    }
    return $i;
},
ju_Arrays_binarySearch1 = ($a, $fromIndex, $toIndex, $key) => {
    let var$5, $u, var$7, $i;
    if ($fromIndex > $toIndex) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    $u = $toIndex - 1 | 0;
    while (true) {
        if ($fromIndex > $u)
            return ( -$fromIndex | 0) - 1 | 0;
        var$7 = $a.data;
        $i = ($fromIndex + $u | 0) / 2 | 0;
        $toIndex = $rt_compare(var$7[$i], $key);
        if (!$toIndex)
            break;
        if ($toIndex <= 0)
            $fromIndex = $i + 1 | 0;
        else
            $u = $i - 1 | 0;
    }
    return $i;
},
ju_Arrays_equals1 = ($a, $a2) => {
    let var$3, var$4, var$5;
    if ($a === $a2)
        return 1;
    if ($a !== null && $a2 !== null) {
        $a = $a.data;
        $a2 = $a2.data;
        var$3 = $a.length;
        if (var$3 == $a2.length) {
            var$4 = 0;
            a: {
                while (true) {
                    if (var$4 >= var$3) {
                        var$4 = (-1);
                        break a;
                    }
                    var$5 = var$4 + 0 | 0;
                    if ($a[var$5] != $a2[var$5])
                        break;
                    var$4 = var$4 + 1 | 0;
                }
            }
            return var$4 >= 0 ? 0 : 1;
        }
    }
    return 0;
},
ju_Arrays_equals0 = ($a, $a2) => {
    let var$3, var$4, var$5;
    if ($a === $a2)
        return 1;
    if ($a !== null && $a2 !== null) {
        $a = $a.data;
        $a2 = $a2.data;
        var$3 = $a.length;
        if (var$3 == $a2.length) {
            var$4 = 0;
            a: {
                while (true) {
                    if (var$4 >= var$3) {
                        var$4 = (-1);
                        break a;
                    }
                    var$5 = var$4 + 0 | 0;
                    if ($a[var$5] != $a2[var$5])
                        break;
                    var$4 = var$4 + 1 | 0;
                }
            }
            return var$4 >= 0 ? 0 : 1;
        }
    }
    return 0;
},
ju_Arrays_equals = ($a, $a2) => {
    let var$3, var$4, var$5, var$6, var$7;
    if ($a === $a2)
        return 1;
    if ($a !== null && $a2 !== null) {
        $a = $a.data;
        $a2 = $a2.data;
        var$3 = $a.length;
        if (var$3 == $a2.length) {
            var$4 = 0;
            a: {
                while (true) {
                    if (var$4 >= var$3) {
                        var$4 = (-1);
                        break a;
                    }
                    var$5 = var$4 + 0 | 0;
                    var$6 = $a[var$5];
                    var$7 = $a2[var$5];
                    if (var$6 === var$7)
                        var$5 = 1;
                    else if (var$6 === null)
                        var$5 = var$7 !== null ? 0 : 1;
                    else if (var$6 === var$7)
                        var$5 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$5 = 0;
                    else {
                        var$7 = var$7;
                        var$5 = var$6.$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$5)
                        break;
                    var$4 = var$4 + 1 | 0;
                }
            }
            return var$4 >= 0 ? 0 : 1;
        }
    }
    return 0;
},
ju_Arrays_asList = $a => {
    let var$2, var$3;
    if ($a !== null) {
        var$2 = new ju_Arrays$ArrayAsList;
        var$2.$array1 = $a;
        return var$2;
    }
    var$3 = new jl_NullPointerException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    var$3.$message = $rt_s(3);
    $rt_throw(var$3);
};
function nlesi_IPCPacket0DProgressUpdate() {
    let a = this; jl_Object.call(a);
    a.$updateMessage = null;
    a.$updateProgress = 0.0;
}
let nlesi_IPCPacket0DProgressUpdate__init_ = $this => {
    return;
},
nlesi_IPCPacket0DProgressUpdate__init_0 = () => {
    let var_0 = new nlesi_IPCPacket0DProgressUpdate();
    nlesi_IPCPacket0DProgressUpdate__init_(var_0);
    return var_0;
},
nlesi_IPCPacket0DProgressUpdate_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$updateMessage = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    $this.$updateProgress = $rt_intBitsToFloat(ji_DataInputStream_readInt($bin));
},
nlesi_IPCPacket0DProgressUpdate_serialize = ($this, $bin) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = $this.$updateMessage;
    var$3 = ji_DataOutputStream_countUTFBytes($bin, var$2);
    if (Long_gt(var$3, Long_fromInt(65535))) {
        $bin = new ji_IOException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $bin.$message = $rt_s(127);
        $rt_throw($bin);
    }
    var$4 = Long_lo(var$3);
    var$5 = $rt_createByteArray(var$4 + 2 | 0);
    var$6 = var$5.data;
    var$6[0] = var$4 >> 8 << 24 >> 24;
    var$6[1] = var$4 << 24 >> 24;
    var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($bin, var$2, var$5, 2);
    $bin.$out0.$write1(var$5, 0, var$4);
    $bin.$written = $bin.$written + var$4 | 0;
    var$7 = $this.$updateProgress;
    ji_DataOutputStream_writeInt($bin, (isNaN(var$7) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$7));
},
nlesi_IPCPacket0DProgressUpdate_id = $this => {
    return 13;
},
nlesi_IPCPacket0DProgressUpdate_size = $this => {
    return nlesi_IPCPacketBase_strLen($this.$updateMessage) + 4 | 0;
};
function ji_PushbackInputStream() {
    let a = this; ji_FilterInputStream.call(a);
    a.$buf4 = null;
    a.$pos2 = 0;
}
let ji_PushbackInputStream_available = $this => {
    let var$1, var$2;
    var$1 = $this.$buf4;
    if (var$1 !== null)
        return (var$1.data.length - $this.$pos2 | 0) + $this.$in.$available() | 0;
    var$2 = new ji_IOException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ji_PushbackInputStream_close = $this => {
    if ($this.$in !== null) {
        $this.$in.$close();
        $this.$in = null;
        $this.$buf4 = null;
    }
},
ji_PushbackInputStream_read0 = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$buf4;
    if (var$1 === null) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$1 = var$1.data;
    var$3 = $this.$pos2;
    if (var$3 >= var$1.length)
        return $this.$in.$read();
    $this.$pos2 = var$3 + 1 | 0;
    return var$1[var$3] & 255;
},
ji_PushbackInputStream_read = ($this, $buffer, $offset, $length) => {
    let var$4, var$5, $copiedBytes, var$7, $copyLength, $inCopied, var$10, var$11, var$12;
    var$4 = $this.$buf4;
    if (var$4 === null) {
        var$5 = new ji_IOException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(310);
        $rt_throw(var$5);
    }
    $copiedBytes = $buffer.data.length;
    if ($offset <= $copiedBytes && $offset >= 0) {
        if ($length >= 0 && $length <= ($copiedBytes - $offset | 0)) {
            var$7 = var$4.data;
            $copiedBytes = 0;
            $copyLength = 0;
            $inCopied = $this.$pos2;
            var$10 = var$7.length;
            if ($inCopied < var$10) {
                $copyLength = var$10 - $inCopied | 0;
                if ($copyLength >= $length)
                    $copyLength = $length;
                jl_System_fastArraycopy(var$4, $inCopied, $buffer, $offset, $copyLength);
                $offset = $offset + $copyLength | 0;
                $copiedBytes = $copiedBytes + $copyLength | 0;
                $this.$pos2 = $this.$pos2 + $copyLength | 0;
            }
            if ($copyLength == $length)
                return $length;
            $inCopied = $this.$in.$read1($buffer, $offset, $length - $copiedBytes | 0);
            if ($inCopied > 0)
                return $inCopied + $copiedBytes | 0;
            if ($copiedBytes)
                return $copiedBytes;
            return $inCopied;
        }
        var$5 = new jl_ArrayIndexOutOfBoundsException;
        var$11 = new jl_StringBuilder;
        var$11.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(893));
        jl_AbstractStringBuilder_insert0(var$11, var$11.$length0, $length, 10);
        var$12 = new jl_String;
        $buffer = var$11.$buffer;
        var$4 = $buffer.data;
        $length = var$11.$length0;
        $copiedBytes = var$4.length;
        if ($length >= 0 && $length <= ($copiedBytes - 0 | 0)) {
            var$12.$nativeString = $rt_charArrayToString($buffer.data, 0, $length);
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            var$5.$message = var$12;
            $rt_throw(var$5);
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$5);
        $rt_throw(var$5);
    }
    var$5 = new jl_ArrayIndexOutOfBoundsException;
    var$11 = new jl_StringBuilder;
    var$11.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(894));
    jl_AbstractStringBuilder_insert0(var$11, var$11.$length0, $offset, 10);
    var$12 = new jl_String;
    $buffer = var$11.$buffer;
    var$4 = $buffer.data;
    $length = var$11.$length0;
    $copiedBytes = var$4.length;
    if ($length >= 0 && $length <= ($copiedBytes - 0 | 0)) {
        var$12.$nativeString = $rt_charArrayToString($buffer.data, 0, $length);
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = var$12;
        $rt_throw(var$5);
    }
    var$5 = new jl_IndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$5);
    $rt_throw(var$5);
},
ji_PushbackInputStream_unread = ($this, $buffer, $offset, $length) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    var$4 = $this.$pos2;
    if ($length > var$4) {
        var$5 = new ji_IOException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(895);
        $rt_throw(var$5);
    }
    var$6 = $buffer.data.length;
    if ($offset <= var$6 && $offset >= 0) {
        if ($length >= 0 && $length <= (var$6 - $offset | 0)) {
            var$7 = $this.$buf4;
            if (var$7 !== null) {
                jl_System_fastArraycopy($buffer, $offset, var$7, var$4 - $length | 0, $length);
                $this.$pos2 = $this.$pos2 - $length | 0;
                return;
            }
            var$5 = new ji_IOException;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            var$5.$message = $rt_s(310);
            $rt_throw(var$5);
        }
        var$5 = new jl_ArrayIndexOutOfBoundsException;
        var$8 = new jl_StringBuilder;
        var$8.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(893));
        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $length, 10);
        var$9 = new jl_String;
        $buffer = var$8.$buffer;
        var$7 = $buffer.data;
        $length = var$8.$length0;
        var$4 = var$7.length;
        if ($length >= 0 && $length <= (var$4 - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString($buffer.data, 0, $length);
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            var$5.$message = var$9;
            $rt_throw(var$5);
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    var$5 = new jl_ArrayIndexOutOfBoundsException;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(894));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $offset, 10);
    var$9 = new jl_String;
    $buffer = var$8.$buffer;
    var$7 = $buffer.data;
    $length = var$8.$length0;
    var$4 = var$7.length;
    if ($length >= 0 && $length <= (var$4 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString($buffer.data, 0, $length);
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = var$9;
        $rt_throw(var$5);
    }
    var$5 = new jl_IndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
};
function juz_Inflater() {
    let a = this; jl_Object.call(a);
    a.$finished2 = 0;
    a.$nowrap = 0;
    a.$inLength = 0;
    a.$inRead = 0;
    a.$needsDictionary0 = 0;
    a.$impl = null;
}
let juz_Inflater__init_ = $this => {
    let $$je;
    $this.$nowrap = 0;
    a: {
        try {
            $this.$impl = cjj_Inflater__init_(0);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof cjj_GZIPException) {
            } else {
                throw $$e;
            }
        }
    }
},
juz_Inflater__init_0 = () => {
    let var_0 = new juz_Inflater();
    juz_Inflater__init_(var_0);
    return var_0;
},
juz_Inflater_finished = $this => {
    return $this.$finished2;
},
juz_Inflater_inflate0 = ($this, $buf) => {
    return juz_Inflater_inflate($this, $buf, 0, $buf.data.length);
},
juz_Inflater_inflate = ($this, $buf, $off, $nbytes) => {
    let $neededDict, var$5, $lastInSize, $lastOutSize, var$8, $errCode, var$10, var$11, var$12;
    $neededDict = $buf.data.length;
    if ($off <= $neededDict && $nbytes >= 0 && $off >= 0 && ($neededDict - $off | 0) >= $nbytes) {
        var$5 = $this.$impl;
        if (var$5 === null) {
            var$5 = new jl_IllegalStateException;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            $rt_throw(var$5);
        }
        if ($this.$inRead != $this.$inLength ? 0 : 1)
            return 0;
        $lastInSize = var$5.$total_in;
        $lastOutSize = var$5.$total_out;
        $neededDict = $this.$needsDictionary0;
        $this.$needsDictionary0 = 0;
        var$5.$next_out = $buf;
        var$5.$next_out_index = $off;
        var$5.$avail_out = $nbytes;
        var$8 = var$5.$istate;
        if (var$8 === null)
            $errCode = (-2);
        else {
            $errCode = cjj_Inflate_inflate(var$8, 0);
            if ($errCode == 1)
                var$5.$finished0 = 1;
        }
        a: {
            switch ($errCode) {
                case 0:
                    break;
                case 1:
                    $this.$finished2 = 1;
                    break a;
                case 2:
                    $this.$needsDictionary0 = 1;
                    break a;
                default:
                    var$5 = new juz_DataFormatException;
                    var$8 = new jl_StringBuilder;
                    var$8.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(896));
                    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $errCode, 10);
                    var$10 = new jl_String;
                    $buf = var$8.$buffer;
                    var$11 = $buf.data;
                    $nbytes = var$8.$length0;
                    $neededDict = var$11.length;
                    if ($nbytes >= 0 && $nbytes <= ($neededDict - 0 | 0)) {
                        var$10.$nativeString = $rt_charArrayToString($buf.data, 0, $nbytes);
                        var$5.$suppressionEnabled = 1;
                        var$5.$writableStackTrace = 1;
                        var$5.$message = var$10;
                        $rt_throw(var$5);
                    }
                    var$5 = new jl_IndexOutOfBoundsException;
                    var$5.$suppressionEnabled = 1;
                    var$5.$writableStackTrace = 1;
                    $rt_throw(var$5);
            }
        }
        if ($this.$needsDictionary0 && $neededDict) {
            var$5 = new juz_DataFormatException;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            $rt_throw(var$5);
        }
        var$12 = Long_fromInt($this.$inRead);
        var$5 = $this.$impl;
        $this.$inRead = Long_lo(Long_add(var$12, Long_sub(var$5.$total_in, $lastInSize)));
        return Long_lo(Long_sub(var$5.$total_out, $lastOutSize));
    }
    var$5 = new jl_ArrayIndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
juz_Inflater_needsDictionary = $this => {
    return $this.$needsDictionary0;
},
juz_Inflater_setInput = ($this, $buf, $off, $nbytes) => {
    let var$4, var$5;
    var$4 = $this.$impl;
    if (var$4 === null) {
        var$4 = new jl_IllegalStateException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$5 = $buf.data.length;
    if ($off <= var$5 && $nbytes >= 0 && $off >= 0 && (var$5 - $off | 0) >= $nbytes) {
        $this.$inRead = 0;
        $this.$inLength = $nbytes;
        cjj_ZStream_setInput(var$4, $buf, $off, $nbytes, 0);
        return;
    }
    var$4 = new jl_ArrayIndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
juz_Checksum = $rt_classWithoutFields(0);
function juz_CRC32() {
    let a = this; jl_Object.call(a);
    a.$impl0 = null;
    a.$tbytes = Long_ZERO;
}
let juz_CRC32__init_ = $this => {
    let var$1;
    var$1 = new cjj_CRC32;
    var$1.$v = 0;
    $this.$impl0 = var$1;
},
juz_CRC32__init_0 = () => {
    let var_0 = new juz_CRC32();
    juz_CRC32__init_(var_0);
    return var_0;
},
juz_CRC32_update = ($this, $buf, $off, $nbytes) => {
    let var$4, var$5;
    var$4 = $buf.data.length;
    if ($off <= var$4 && $nbytes >= 0 && $off >= 0 && (var$4 - $off | 0) >= $nbytes) {
        cjj_CRC32_update($this.$impl0, $buf, $off, $nbytes);
        $this.$tbytes = Long_add($this.$tbytes, Long_fromInt($nbytes));
        return;
    }
    var$5 = new jl_ArrayIndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
};
function jl_Boolean() {
    jl_Object.call(this);
    this.$value9 = 0;
}
let jl_Boolean_TRUE = null,
jl_Boolean_FALSE = null,
jl_Boolean_TYPE = null,
jl_Boolean_booleanValue = $this => {
    return $this.$value9;
},
jl_Boolean_valueOf = $value => {
    return !$value ? jl_Boolean_FALSE : jl_Boolean_TRUE;
},
jl_Boolean_toString = $this => {
    return !$this.$value9 ? $rt_s(897) : $rt_s(898);
},
jl_Boolean_hashCode = $this => {
    return !$this.$value9 ? 1237 : 1231;
},
jl_Boolean_equals = ($this, $obj) => {
    if ($this === $obj)
        return 1;
    return $obj instanceof jl_Boolean && $obj.$value9 == $this.$value9 ? 1 : 0;
},
jl_Boolean_compareTo = ($this, var$1) => {
    let var$2;
    var$1 = var$1;
    var$2 = $this.$value9;
    return var$2 == var$1.$value9 ? 0 : !var$2 ? (-1) : 1;
},
jl_Boolean__clinit_ = () => {
    let var$1;
    var$1 = new jl_Boolean;
    var$1.$value9 = 1;
    jl_Boolean_TRUE = var$1;
    var$1 = new jl_Boolean;
    var$1.$value9 = 0;
    jl_Boolean_FALSE = var$1;
    jl_Boolean_TYPE = $rt_cls($rt_booleancls);
},
cjj_Checksum = $rt_classWithoutFields(0);
function cjj_CRC32() {
    jl_Object.call(this);
    this.$v = 0;
}
let cjj_CRC32_crc_table = null,
cjj_CRC32__init_ = $this => {
    $this.$v = 0;
},
cjj_CRC32__init_0 = () => {
    let var_0 = new cjj_CRC32();
    cjj_CRC32__init_(var_0);
    return var_0;
},
cjj_CRC32_update = ($this, $buf, $index, $len) => {
    let $c, var$5, var$6, var$7;
    $c = $this.$v ^ (-1);
    while (true) {
        $len = $len + (-1) | 0;
        if ($len < 0)
            break;
        var$5 = $buf.data;
        var$6 = cjj_CRC32_crc_table.data;
        var$7 = $index + 1 | 0;
        $c = var$6[($c ^ var$5[$index]) & 255] ^ ($c >>> 8 | 0);
        $index = var$7;
    }
    $this.$v = $c ^ (-1);
},
cjj_CRC32_reset = $this => {
    $this.$v = 0;
},
cjj_CRC32_reset0 = ($this, $vv) => {
    $this.$v = Long_lo(Long_and($vv, Long_create(4294967295, 0)));
},
cjj_CRC32_getValue = $this => {
    return Long_and(Long_fromInt($this.$v), Long_create(4294967295, 0));
},
cjj_CRC32__clinit_ = () => {
    let var$1, var$2, $n, $k, var$5;
    cjj_CRC32_crc_table = null;
    var$1 = $rt_createIntArray(256);
    var$2 = var$1.data;
    cjj_CRC32_crc_table = var$1;
    $n = 0;
    while ($n < 256) {
        $k = 8;
        var$5 = $n;
        while (true) {
            $k = $k + (-1) | 0;
            if ($k < 0)
                break;
            if (!(var$5 & 1)) {
                var$5 = var$5 >>> 1 | 0;
                continue;
            }
            var$5 = (-306674912) ^ (var$5 >>> 1 | 0);
        }
        var$2[$n] = var$5;
        $n = $n + 1 | 0;
    }
};
function ju_Date() {
    jl_Object.call(this);
    this.$value11 = Long_ZERO;
}
let ju_Date__init_ = $this => {
    $this.$value11 = jl_System_currentTimeMillis();
},
ju_Date__init_0 = () => {
    let var_0 = new ju_Date();
    ju_Date__init_(var_0);
    return var_0;
},
ju_Date_getTime = $this => {
    return $this.$value11;
},
ju_Date__clinit_ = () => {
    return;
},
jnc_StandardCharsets = $rt_classWithoutFields(),
jnc_StandardCharsets_UTF_8 = null,
jnc_StandardCharsets_US_ASCII = null,
jnc_StandardCharsets_ISO_8859_1 = null,
jnc_StandardCharsets_UTF_16 = null,
jnc_StandardCharsets_UTF_16BE = null,
jnc_StandardCharsets_UTF_16LE = null,
jnc_StandardCharsets_$callClinit = () => {
    jnc_StandardCharsets_$callClinit = $rt_eraseClinit(jnc_StandardCharsets);
    jnc_StandardCharsets__clinit_();
},
jnc_StandardCharsets__init_ = $this => {
    jnc_StandardCharsets_$callClinit();
},
jnc_StandardCharsets__init_0 = () => {
    let var_0 = new jnc_StandardCharsets();
    jnc_StandardCharsets__init_(var_0);
    return var_0;
},
jnc_StandardCharsets__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    jnc_StandardCharsets_UTF_8 = jnci_UTF8Charset_INSTANCE;
    var$1 = new jnci_AsciiCharset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(899));
    var$4 = var$3.length;
    var$5 = 0;
    while (var$5 < var$4) {
        jnc_Charset_checkCanonicalName(var$3[var$5]);
        var$5 = var$5 + 1 | 0;
    }
    var$1.$canonicalName = $rt_s(899);
    var$1.$aliases = var$2.$clone0();
    jnc_StandardCharsets_US_ASCII = var$1;
    var$1 = new jnci_Iso8859Charset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(900));
    var$4 = var$3.length;
    var$5 = 0;
    while (var$5 < var$4) {
        jnc_Charset_checkCanonicalName(var$3[var$5]);
        var$5 = var$5 + 1 | 0;
    }
    var$1.$canonicalName = $rt_s(900);
    var$1.$aliases = var$2.$clone0();
    jnc_StandardCharsets_ISO_8859_1 = var$1;
    var$6 = new jnci_UTF16Charset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(901));
    var$7 = var$3.length;
    var$8 = 0;
    while (var$8 < var$7) {
        jnc_Charset_checkCanonicalName(var$3[var$8]);
        var$8 = var$8 + 1 | 0;
    }
    var$6.$canonicalName = $rt_s(901);
    var$6.$aliases = var$2.$clone0();
    var$6.$bom = 1;
    var$6.$littleEndian = 0;
    jnc_StandardCharsets_UTF_16 = var$6;
    var$1 = new jnci_UTF16Charset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(902));
    var$7 = var$3.length;
    var$8 = 0;
    while (var$8 < var$7) {
        jnc_Charset_checkCanonicalName(var$3[var$8]);
        var$8 = var$8 + 1 | 0;
    }
    var$1.$canonicalName = $rt_s(902);
    var$1.$aliases = var$2.$clone0();
    var$1.$bom = 0;
    var$1.$littleEndian = 0;
    jnc_StandardCharsets_UTF_16BE = var$1;
    var$1 = new jnci_UTF16Charset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(903));
    var$7 = var$3.length;
    var$8 = 0;
    while (var$8 < var$7) {
        jnc_Charset_checkCanonicalName(var$3[var$8]);
        var$8 = var$8 + 1 | 0;
    }
    var$1.$canonicalName = $rt_s(903);
    var$1.$aliases = var$2.$clone0();
    var$1.$bom = 0;
    var$1.$littleEndian = 1;
    jnc_StandardCharsets_UTF_16LE = var$1;
},
jt_Format = $rt_classWithoutFields();
function jt_DateFormat() {
    jt_Format.call(this);
    this.$calendar0 = null;
}
let jt_DateFormat_format = ($this, $date) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je;
    var$2 = new jl_StringBuffer;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = new ju_GregorianCalendar;
    var$4 = $this.$locale0;
    ju_TimeZone_$callClinit();
    if (ju_TimeZone_defaultTz === null) {
        var$5 = otcit_DateTimeZoneProvider_detectTimezone();
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = new ju_IANATimeZone;
            var$6.$id5 = var$5.$iID;
            var$6.$underlyingZone = var$5;
            var$7 = var$5.$getStandardOffset(jl_System_currentTimeMillis());
            var$6.$rawOffset = var$7;
            var$6.$diff =  -var$7 | 0;
        }
        ju_TimeZone_defaultTz = var$6;
        if (var$6 === null)
            ju_TimeZone_defaultTz = ju_TimeZone_GMT;
    }
    var$5 = ju_TimeZone_defaultTz;
    a: {
        try {
            var$6 = jl_Object_clone(var$5);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
            } else {
                throw $$e;
            }
        }
        var$6 = null;
    }
    var$6.$rawOffset = var$5.$rawOffset;
    var$6.$underlyingZone = var$5.$underlyingZone;
    ju_GregorianCalendar__init_(var$3, var$6, var$4);
    var$8 = $date.$value11;
    if (!(var$3.$isTimeSet && var$3.$areFieldsSet && Long_eq(var$3.$time, var$8))) {
        var$3.$time = var$8;
        var$3.$isTimeSet = 1;
        var$3.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields(var$3);
        var$3.$areFieldsSet = 1;
    }
    var$3.$zone = $this.$calendar0.$zone;
    var$3.$areFieldsSet = 0;
    var$9 = $this.$elements0.data;
    var$7 = var$9.length;
    var$10 = 0;
    while (var$10 < var$7) {
        var$9[var$10].$format1(var$3, var$2);
        var$10 = var$10 + 1 | 0;
    }
    $date = new jl_String;
    var$9 = var$2.$buffer;
    var$11 = var$9.data;
    var$10 = var$2.$length0;
    var$12 = var$11.length;
    if (var$10 >= 0 && var$10 <= (var$12 - 0 | 0)) {
        $date.$nativeString = $rt_charArrayToString(var$9.data, 0, var$10);
        return $date;
    }
    $date = new jl_IndexOutOfBoundsException;
    $date.$suppressionEnabled = 1;
    $date.$writableStackTrace = 1;
    $rt_throw($date);
};
function jt_SimpleDateFormat() {
    let a = this; jt_DateFormat.call(a);
    a.$dateFormatSymbols = null;
    a.$elements0 = null;
    a.$pattern2 = null;
    a.$locale0 = null;
}
let jt_SimpleDateFormat__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    ju_Locale_$callClinit();
    var$1 = ju_Locale_defaultLocale;
    var$2 = var$1.$languageCode;
    var$1 = var$1.$countryCode;
    if (otciu_CLDRHelper_$$metadata$$14 === null)
        otciu_CLDRHelper_$$metadata$$14 = otciu_CLDRHelper_getDateFormatMap$$create();
    var$3 = otciu_CLDRHelper_$$metadata$$14;
    if (var$1.$nativeString.length ? 0 : 1)
        var$1 = var$2;
    else {
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert3(var$4, var$4.$length0, var$2);
        jl_AbstractStringBuilder_insert7(var$4, var$4.$length0, 45);
        jl_AbstractStringBuilder_insert3(var$4, var$4.$length0, var$1);
        var$1 = new jl_String;
        var$5 = var$4.$buffer;
        var$6 = var$5.data;
        var$7 = var$4.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0))
            var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        else
            $rt_throw(jl_IndexOutOfBoundsException__init_1());
    }
    var$3 = ((var$3.hasOwnProperty($rt_ustr(var$1)) ? var$3[$rt_ustr(var$1)] : var$3.hasOwnProperty($rt_ustr(var$2)) ? var$3[$rt_ustr(var$2)] : var$3.root).mediumFormat !== null ? $rt_str((var$3.hasOwnProperty($rt_ustr(var$1)) ? var$3[$rt_ustr(var$1)] : var$3.hasOwnProperty($rt_ustr(var$2)) ? var$3[$rt_ustr(var$2)] : var$3.root).mediumFormat) : null);
    var$9 = ju_Locale_defaultLocale;
    var$1 = new jt_DateFormatSymbols;
    var$1.$locale = var$9;
    $this.$calendar0 = ju_GregorianCalendar__init_0();
    var$1 = jt_DateFormatSymbols_clone(var$1);
    $this.$dateFormatSymbols = var$1;
    var$2 = ju_Locale_defaultLocale;
    $this.$locale0 = var$2;
    $this.$pattern2 = var$3;
    var$4 = new jt_SimpleDatePatternParser;
    var$3 = new ju_ArrayList;
    ju_AbstractList__init_(var$3);
    var$3.$array = $rt_createArray(jl_Object, 10);
    var$4.$elements = var$3;
    var$4.$symbols0 = var$1;
    var$4.$locale4 = var$2;
    jt_SimpleDatePatternParser_parsePattern(var$4, $this.$pattern2);
    $this.$elements0 = ju_AbstractCollection_toArray(var$4.$elements, $rt_createArray(jt_DateFormatElement, 0));
    $this.$locale0 = var$9;
},
jt_SimpleDateFormat__init_1 = () => {
    let var_0 = new jt_SimpleDateFormat();
    jt_SimpleDateFormat__init_0(var_0);
    return var_0;
},
jt_SimpleDateFormat__init_2 = ($this, $pattern) => {
    let var$2, var$3, var$4, var$5, var$6;
    ju_Locale_$callClinit();
    var$2 = ju_Locale_defaultLocale;
    var$3 = new jt_DateFormatSymbols;
    var$3.$locale = var$2;
    $this.$calendar0 = ju_GregorianCalendar__init_0();
    var$3 = jt_DateFormatSymbols_clone(var$3);
    $this.$dateFormatSymbols = var$3;
    var$4 = ju_Locale_defaultLocale;
    $this.$locale0 = var$4;
    $this.$pattern2 = $pattern;
    var$5 = new jt_SimpleDatePatternParser;
    var$6 = new ju_ArrayList;
    var$6.$array = $rt_createArray(jl_Object, 10);
    var$5.$elements = var$6;
    var$5.$symbols0 = var$3;
    var$5.$locale4 = var$4;
    jt_SimpleDatePatternParser_parsePattern(var$5, $pattern);
    $this.$elements0 = ju_AbstractCollection_toArray(var$5.$elements, $rt_createArray(jt_DateFormatElement, 0));
    $this.$locale0 = var$2;
},
jt_SimpleDateFormat__init_ = var_0 => {
    let var_1 = new jt_SimpleDateFormat();
    jt_SimpleDateFormat__init_2(var_1, var_0);
    return var_1;
};
function juz_Deflater() {
    let a = this; jl_Object.call(a);
    a.$flushParm = 0;
    a.$finished3 = 0;
    a.$compressLevel = 0;
    a.$strategy0 = 0;
    a.$impl1 = null;
    a.$inRead0 = 0;
    a.$inLength0 = 0;
    a.$nowrap0 = 0;
}
let juz_Deflater__init_0 = $this => {
    juz_Deflater__init_1($this, (-1), 0);
},
juz_Deflater__init_2 = () => {
    let var_0 = new juz_Deflater();
    juz_Deflater__init_0(var_0);
    return var_0;
},
juz_Deflater__init_1 = ($this, $level, $noHeader) => {
    let var$3, $$je;
    $this.$flushParm = 0;
    $this.$compressLevel = (-1);
    $this.$strategy0 = 0;
    if ($level >= (-1) && $level <= 9) {
        $this.$compressLevel = $level;
        a: {
            try {
                $this.$impl1 = cjj_Deflater__init_1($level, $noHeader);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof cjj_GZIPException) {
                } else {
                    throw $$e;
                }
            }
        }
        $this.$nowrap0 = $noHeader;
        return;
    }
    var$3 = new jl_IllegalArgumentException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
juz_Deflater__init_ = (var_0, var_1) => {
    let var_2 = new juz_Deflater();
    juz_Deflater__init_1(var_2, var_0, var_1);
    return var_2;
},
juz_Deflater_deflate0 = ($this, $buf) => {
    return juz_Deflater_deflate($this, $buf, 0, $buf.data.length, $this.$flushParm);
},
juz_Deflater_deflate = ($this, $buf, $off, $nbytes, $flushParam) => {
    let var$5, $err, $sin, $sout, var$9, var$10, var$11, var$12;
    var$5 = $this.$impl1;
    if (var$5 === null) {
        var$5 = new jl_IllegalStateException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    $err = $buf.data.length;
    if ($off <= $err && $nbytes >= 0 && $off >= 0 && ($err - $off | 0) >= $nbytes) {
        $sin = var$5.$total_in;
        $sout = var$5.$total_out;
        var$5.$next_out = $buf;
        var$5.$next_out_index = $off;
        var$5.$avail_out = $nbytes;
        var$9 = var$5.$dstate;
        if (var$9 === null)
            $err = (-2);
        else {
            $err = cjj_Deflate_deflate(var$9, $flushParam);
            if ($err == 1)
                var$5.$finished1 = 1;
        }
        a: {
            switch ($err) {
                case 0:
                    break;
                case 1:
                    $this.$finished3 = 1;
                    break a;
                default:
                    var$5 = new jl_RuntimeException;
                    var$9 = new jl_StringBuilder;
                    var$9.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(904));
                    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $err, 10);
                    var$10 = new jl_String;
                    $buf = var$9.$buffer;
                    var$11 = $buf.data;
                    $nbytes = var$9.$length0;
                    $flushParam = var$11.length;
                    if ($nbytes >= 0 && $nbytes <= ($flushParam - 0 | 0)) {
                        var$10.$nativeString = $rt_charArrayToString($buf.data, 0, $nbytes);
                        var$5.$suppressionEnabled = 1;
                        var$5.$writableStackTrace = 1;
                        var$5.$message = var$10;
                        $rt_throw(var$5);
                    }
                    var$5 = new jl_IndexOutOfBoundsException;
                    var$5.$suppressionEnabled = 1;
                    var$5.$writableStackTrace = 1;
                    $rt_throw(var$5);
            }
        }
        var$12 = Long_fromInt($this.$inRead0);
        var$5 = $this.$impl1;
        $this.$inRead0 = Long_lo(Long_add(var$12, Long_sub(var$5.$total_in, $sin)));
        return Long_lo(Long_sub(var$5.$total_out, $sout));
    }
    var$5 = new jl_ArrayIndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
juz_Deflater_finish = $this => {
    $this.$flushParm = 4;
},
juz_Deflater_setInput = ($this, $buf, $off, $nbytes) => {
    let var$4, var$5, var$6, var$7, var$8;
    var$4 = $this.$impl1;
    if (var$4 === null) {
        var$4 = new jl_IllegalStateException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$5 = $buf.data.length;
    if ($off <= var$5 && $nbytes >= 0 && $off >= 0 && (var$5 - $off | 0) >= $nbytes) {
        $this.$inLength0 = $nbytes;
        $this.$inRead0 = 0;
        if (var$4.$next_in === null) {
            var$5 = $this.$compressLevel;
            var$6 = 15;
            var$7 = $this.$nowrap0;
            var$4.$finished1 = 0;
            var$8 = cjj_Deflate__init_(var$4);
            var$4.$dstate = var$8;
            if (var$7)
                var$6 = (-15);
            cjj_Deflate_deflateInit(var$8, var$5, 8, var$6, 8, 0);
        }
        cjj_ZStream_setInput($this.$impl1, $buf, $off, $nbytes, 0);
        return;
    }
    var$4 = new jl_ArrayIndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
nms_ICommandManager = $rt_classWithoutFields(0);
function nms_CommandHandler() {
    let a = this; jl_Object.call(a);
    a.$commandMap = null;
    a.$commandSet = null;
}
let nms_CommandHandler__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$commandMap = var$1;
    $this.$commandSet = ju_HashSet__init_();
},
nms_CommandHandler__init_0 = () => {
    let var_0 = new nms_CommandHandler();
    nms_CommandHandler__init_(var_0);
    return var_0;
},
nms_CommandHandler_executeCommand = ($this, $par1ICommandSender, $par2Str) => {
    let $var4, $var8, var$5, var$6, var$7, $var7, $var5, $var6, var$11, var$12, $var16, $var17, $var18, $var9, $var11, $var12, var$19, $var15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();var$19 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var8 = $thread.pop();$var4 = $thread.pop();$par2Str = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = jl_String_trim($par2Str);
        if ($var4 === $rt_s(166) ? 1 : jl_String_startsWith($var4, $rt_s(166), 0))
            $var4 = jl_String_substring($var4, 1, $var4.$nativeString.length);
        $var8 = (jur_Pattern_split(jur_Pattern_compile($rt_s(260), 0), $var4, 0)).data;
        $var4 = $var8[0];
        var$5 = $var8.length;
        var$6 = $rt_createArray(jl_String, var$5 - 1 | 0);
        var$7 = var$6.data;
        $var7 = 1;
        while ($var7 < var$5) {
            var$7[$var7 - 1 | 0] = $var8[$var7];
            $var7 = $var7 + 1 | 0;
        }
        $par2Str = $this.$commandMap;
        if ($var4 === null) {
            $var5 = $par2Str.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            a: {
                if (!$var4.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= $var4.$nativeString.length)
                            break a;
                        $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            var$5 = $var4.$hashCode1;
            $var8 = $par2Str.$elementData.data;
            $var5 = $var8[var$5 & ($var8.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$5) {
                    b: {
                        $par2Str = $var5.$key;
                        if ($var4 !== $par2Str) {
                            if ($var4 === $par2Str)
                                $var6 = 1;
                            else if (!($par2Str instanceof jl_String))
                                $var6 = 0;
                            else {
                                $par2Str = $par2Str;
                                $var6 = $var4.$nativeString !== $par2Str.$nativeString ? 0 : 1;
                            }
                            if (!$var6) {
                                $var6 = 0;
                                break b;
                            }
                        }
                        $var6 = 1;
                    }
                    if ($var6)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $par2Str = $var5 === null ? null : $var5.$value0;
        c: {
            $var5 = $par2Str;
            if ($var5 === null)
                $var6 = (-1);
            else {
                $var6 = 0;
                while (true) {
                    if ($var6 >= var$7.length) {
                        $var6 = (-1);
                        break c;
                    }
                    if ($var5.$isUsernameIndex(var$6, $var6) && nms_PlayerSelector_matchesMultiplePlayers(var$7[$var6]))
                        break;
                    $var6 = $var6 + 1 | 0;
                }
            }
        }
        $var7 = 0;
        d: {
            e: {
                f: {
                    try {
                        g: {
                            try {
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                if ($var5 !== null)
                                    break g;
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                $rt_throw(nms_CommandNotFoundException__init_0());
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_WrongUsageException) {
                                    $var16 = $$je;
                                    break e;
                                } else if ($$je instanceof nms_CommandException) {
                                    $var17 = $$je;
                                    break d;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                        h: {
                            try {
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                if ($var5.$canCommandSenderUseCommand($par1ICommandSender))
                                    break h;
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                nms_EnumChatFormatting_$callClinit();
                                $par2Str = jl_String_valueOf0(nms_EnumChatFormatting_RED);
                                $var4 = jl_StringBuilder__init_();
                                jl_StringBuilder_append(jl_StringBuilder_append($var4, $par2Str), $rt_s(905));
                                $par2Str = jl_StringBuilder_toString($var4);
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                $par2Str = nms_StatCollector_translateToLocal($par2Str);
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_WrongUsageException) {
                                    $var16 = $$je;
                                    break e;
                                } else if ($$je instanceof nms_CommandException) {
                                    $var17 = $$je;
                                    break d;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                            break f;
                        } else {
                            throw $$e;
                        }
                    }
                    i: {
                        try {
                            var$11 = $var7;
                            var$12 = $var7;
                            var$5 = $var7;
                            if ($var6 <= (-1))
                                break i;
                            var$11 = $var7;
                            var$12 = $var7;
                            var$5 = $var7;
                            $var8 = (nms_PlayerSelector_matchPlayers($par1ICommandSender, var$7[$var6])).data;
                            $var9 = var$7[$var6];
                            $var11 = $var8.length;
                            $var12 = 0;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof nms_WrongUsageException) {
                                $var16 = $$je;
                                break e;
                            } else if ($$je instanceof nms_CommandException) {
                                $var17 = $$je;
                                break d;
                            } else if ($$je instanceof jl_Throwable) {
                                $var18 = $$je;
                                break f;
                            } else {
                                throw $$e;
                            }
                        }
                        j: {
                            try {
                                var$5 = $var7;
                                var$12 = $var7;
                                var$11 = $var7;
                                if ($var12 < $var11)
                                    break j;
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                var$7[$var6] = $var9;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_WrongUsageException) {
                                    $var16 = $$je;
                                    break e;
                                } else if ($$je instanceof nms_CommandException) {
                                    $var17 = $$je;
                                    break d;
                                } else if ($$je instanceof jl_Throwable) {
                                    $var18 = $$je;
                                    break f;
                                } else {
                                    throw $$e;
                                }
                            }
                            return $var7;
                        }
                        try {
                            var$11 = $var7;
                            var$12 = $var7;
                            var$5 = $var7;
                            var$7[$var6] = nms_EntityPlayer_getEntityName($var8[$var12]);
                            try {
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                var$19 = $var7;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_CommandException) {
                                    $var15 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            var$5 = var$19;
                            var$12 = var$19;
                            var$11 = var$19;
                            nms_EnumChatFormatting_$callClinit();
                            $par2Str = jl_String_valueOf0(nms_EnumChatFormatting_RED);
                            $var4 = jl_Throwable_getMessage($var15);
                            $var16 = jl_StringBuilder__init_();
                            jl_StringBuilder_append(jl_StringBuilder_append($var16, $par2Str), $var4);
                            $par2Str = jl_StringBuilder_toString($var16);
                            var$11 = var$19;
                            var$12 = var$19;
                            var$5 = var$19;
                            $par2Str = nms_StatCollector_translateToLocalFormatted($par2Str, nms_CommandException_getErrorOjbects($var15));
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof nms_WrongUsageException) {
                                $var16 = $$je;
                                break e;
                            } else if ($$je instanceof nms_CommandException) {
                                $var17 = $$je;
                                break d;
                            } else if ($$je instanceof jl_Throwable) {
                                $var18 = $$je;
                                break f;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        var$11 = $var7;
                        var$12 = $var7;
                        var$5 = $var7;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_WrongUsageException) {
                            $var16 = $$je;
                            break e;
                        } else if ($$je instanceof nms_CommandException) {
                            $var17 = $$je;
                            break d;
                        } else if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                }
                nms_EnumChatFormatting_$callClinit();
                $par2Str = nms_EnumChatFormatting_RED;
                $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
                $par2Str = new jl_StringBuilder;
                $par2Str.$buffer = $rt_createCharArray(16);
                $var6 = $par2Str.$length0;
                if ($var4 === null)
                    $var4 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
                jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(906));
                $var4 = new jl_String;
                $var8 = $par2Str.$buffer;
                var$6 = $var8.data;
                var$5 = $par2Str.$length0;
                $var7 = var$6.length;
                if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
                    $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
                    nms_StatCollector_$callClinit();
                    $par2Str = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4);
                    $ptr = 5;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $par2Str = nms_EnumChatFormatting_RED;
            $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
            $par2Str = new jl_StringBuilder;
            $par2Str.$buffer = $rt_createCharArray(16);
            $var6 = $par2Str.$length0;
            if ($var4 === null)
                $var4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
            jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(907));
            $var5 = new jl_String;
            $var8 = $par2Str.$buffer;
            var$6 = $var8.data;
            $var7 = $par2Str.$length0;
            $var11 = var$6.length;
            if ($var7 >= 0 && $var7 <= ($var11 - 0 | 0)) {
                $var5.$nativeString = $rt_charArrayToString($var8.data, 0, $var7);
                $var8 = $rt_createArray(jl_Object, 1);
                var$6 = $var8.data;
                $var4 = $var16.$message;
                var$7 = $var16.$errorObjects;
                nms_StatCollector_$callClinit();
                var$6[0] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, var$7);
                $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var5, $var8);
                $ptr = 4;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $par2Str = nms_EnumChatFormatting_RED;
        $var16 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
        $var4 = $var17.$message;
        $par2Str = new jl_StringBuilder;
        $par2Str.$buffer = $rt_createCharArray(16);
        $var6 = $par2Str.$length0;
        if ($var16 === null)
            $var16 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var16);
        $var6 = $par2Str.$length0;
        if ($var4 === null)
            $var4 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
        $var4 = new jl_String;
        $var8 = $par2Str.$buffer;
        var$6 = $var8.data;
        var$5 = $par2Str.$length0;
        $var7 = var$6.length;
        if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
            $var8 = $var17.$errorObjects;
            nms_StatCollector_$callClinit();
            $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, $var8);
            $ptr = 7;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        k: {
            l: {
                m: {
                    try {
                        $par1ICommandSender.$sendChatToPlayer($par2Str);
                        if ($rt_suspending()) {
                            break main;
                        }
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_WrongUsageException) {
                            $var16 = $$je;
                            break l;
                        } else if ($$je instanceof nms_CommandException) {
                            $var17 = $$je;
                            break k;
                        } else if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                            break m;
                        } else {
                            throw $$e;
                        }
                    }
                    return $var7;
                }
                nms_EnumChatFormatting_$callClinit();
                $par2Str = nms_EnumChatFormatting_RED;
                $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
                $par2Str = new jl_StringBuilder;
                $par2Str.$buffer = $rt_createCharArray(16);
                $var6 = $par2Str.$length0;
                if ($var4 === null)
                    $var4 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
                jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(906));
                $var4 = new jl_String;
                $var8 = $par2Str.$buffer;
                var$6 = $var8.data;
                var$5 = $par2Str.$length0;
                $var7 = var$6.length;
                if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
                    $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
                    nms_StatCollector_$callClinit();
                    $par2Str = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4);
                    $ptr = 5;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $par2Str = nms_EnumChatFormatting_RED;
            $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
            $par2Str = new jl_StringBuilder;
            $par2Str.$buffer = $rt_createCharArray(16);
            $var6 = $par2Str.$length0;
            if ($var4 === null)
                $var4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
            jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(907));
            $var5 = new jl_String;
            $var8 = $par2Str.$buffer;
            var$6 = $var8.data;
            $var7 = $par2Str.$length0;
            $var11 = var$6.length;
            if ($var7 >= 0 && $var7 <= ($var11 - 0 | 0)) {
                $var5.$nativeString = $rt_charArrayToString($var8.data, 0, $var7);
                $var8 = $rt_createArray(jl_Object, 1);
                var$6 = $var8.data;
                $var4 = $var16.$message;
                var$7 = $var16.$errorObjects;
                nms_StatCollector_$callClinit();
                var$6[0] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, var$7);
                $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var5, $var8);
                $ptr = 4;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $par2Str = nms_EnumChatFormatting_RED;
        $var16 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
        $var4 = $var17.$message;
        $par2Str = new jl_StringBuilder;
        $par2Str.$buffer = $rt_createCharArray(16);
        $var6 = $par2Str.$length0;
        if ($var16 === null)
            $var16 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var16);
        $var6 = $par2Str.$length0;
        if ($var4 === null)
            $var4 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
        $var4 = new jl_String;
        $var8 = $par2Str.$buffer;
        var$6 = $var8.data;
        var$5 = $par2Str.$length0;
        $var7 = var$6.length;
        if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
            $var8 = $var17.$errorObjects;
            nms_StatCollector_$callClinit();
            $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, $var8);
            $ptr = 7;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 2:
        k: {
            l: {
                m: {
                    try {
                        $var5.$processCommand($par1ICommandSender, var$6);
                        if ($rt_suspending()) {
                            break main;
                        }
                        $var7 = 1;
                        var$5 = $var7;
                        var$12 = $var7;
                        var$11 = $var7;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_WrongUsageException) {
                            $var16 = $$je;
                            break l;
                        } else if ($$je instanceof nms_CommandException) {
                            $var17 = $$je;
                            break k;
                        } else if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                            break m;
                        } else {
                            throw $$e;
                        }
                    }
                    return $var7;
                }
                nms_EnumChatFormatting_$callClinit();
                $par2Str = nms_EnumChatFormatting_RED;
                $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
                $par2Str = new jl_StringBuilder;
                $par2Str.$buffer = $rt_createCharArray(16);
                $var6 = $par2Str.$length0;
                if ($var4 === null)
                    $var4 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
                jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(906));
                $var4 = new jl_String;
                $var8 = $par2Str.$buffer;
                var$6 = $var8.data;
                var$5 = $par2Str.$length0;
                $var7 = var$6.length;
                if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
                    $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
                    nms_StatCollector_$callClinit();
                    $par2Str = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4);
                    $ptr = 5;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $par2Str = nms_EnumChatFormatting_RED;
            $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
            $par2Str = new jl_StringBuilder;
            $par2Str.$buffer = $rt_createCharArray(16);
            $var6 = $par2Str.$length0;
            if ($var4 === null)
                $var4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
            jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(907));
            $var5 = new jl_String;
            $var8 = $par2Str.$buffer;
            var$6 = $var8.data;
            $var7 = $par2Str.$length0;
            $var11 = var$6.length;
            if ($var7 >= 0 && $var7 <= ($var11 - 0 | 0)) {
                $var5.$nativeString = $rt_charArrayToString($var8.data, 0, $var7);
                $var8 = $rt_createArray(jl_Object, 1);
                var$6 = $var8.data;
                $var4 = $var16.$message;
                var$7 = $var16.$errorObjects;
                nms_StatCollector_$callClinit();
                var$6[0] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, var$7);
                $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var5, $var8);
                $ptr = 4;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $par2Str = nms_EnumChatFormatting_RED;
        $var16 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
        $var4 = $var17.$message;
        $par2Str = new jl_StringBuilder;
        $par2Str.$buffer = $rt_createCharArray(16);
        $var6 = $par2Str.$length0;
        if ($var16 === null)
            $var16 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var16);
        $var6 = $par2Str.$length0;
        if ($var4 === null)
            $var4 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
        $var4 = new jl_String;
        $var8 = $par2Str.$buffer;
        var$6 = $var8.data;
        var$5 = $par2Str.$length0;
        $var7 = var$6.length;
        if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
            $var8 = $var17.$errorObjects;
            nms_StatCollector_$callClinit();
            $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, $var8);
            $ptr = 7;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 3:
        k: {
            l: {
                m: {
                    n: {
                        try {
                            try {
                                $var5.$processCommand($par1ICommandSender, var$6);
                                if ($rt_suspending()) {
                                    break main;
                                }
                                $var7 = $var7 + 1 | 0;
                                var$19 = $var7;
                                var$5 = $var7;
                                var$12 = $var7;
                                var$11 = $var7;
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_CommandException) {
                                    $var15 = $$je;
                                    break n;
                                } else {
                                    throw $$e;
                                }
                            }
                            var$5 = $var7;
                            var$12 = $var7;
                            var$11 = $var7;
                            $var12 = $var12 + 1 | 0;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof nms_WrongUsageException) {
                                $var16 = $$je;
                                break l;
                            } else if ($$je instanceof nms_CommandException) {
                                $var17 = $$je;
                                break k;
                            } else if ($$je instanceof jl_Throwable) {
                                $var18 = $$je;
                                break m;
                            } else {
                                throw $$e;
                            }
                        }
                        o: {
                            try {
                                var$5 = $var7;
                                var$12 = $var7;
                                var$11 = $var7;
                                if ($var12 < $var11)
                                    break o;
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                var$7[$var6] = $var9;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_WrongUsageException) {
                                    $var16 = $$je;
                                    break l;
                                } else if ($$je instanceof nms_CommandException) {
                                    $var17 = $$je;
                                    break k;
                                } else if ($$je instanceof jl_Throwable) {
                                    $var18 = $$je;
                                    break m;
                                } else {
                                    throw $$e;
                                }
                            }
                            return $var7;
                        }
                        try {
                            var$11 = $var7;
                            var$12 = $var7;
                            var$5 = $var7;
                            var$7[$var6] = nms_EntityPlayer_getEntityName($var8[$var12]);
                            try {
                                var$11 = $var7;
                                var$12 = $var7;
                                var$5 = $var7;
                                var$19 = $var7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof nms_CommandException) {
                                    $var15 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof nms_WrongUsageException) {
                                $var16 = $$je;
                                break l;
                            } else if ($$je instanceof nms_CommandException) {
                                $var17 = $$je;
                                break k;
                            } else if ($$je instanceof jl_Throwable) {
                                $var18 = $$je;
                                break m;
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    try {
                        var$5 = var$19;
                        var$12 = var$19;
                        var$11 = var$19;
                        nms_EnumChatFormatting_$callClinit();
                        $par2Str = jl_String_valueOf0(nms_EnumChatFormatting_RED);
                        $var4 = jl_Throwable_getMessage($var15);
                        $var16 = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($var16, $par2Str), $var4);
                        $par2Str = jl_StringBuilder_toString($var16);
                        var$11 = var$19;
                        var$12 = var$19;
                        var$5 = var$19;
                        $par2Str = nms_StatCollector_translateToLocalFormatted($par2Str, nms_CommandException_getErrorOjbects($var15));
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_WrongUsageException) {
                            $var16 = $$je;
                            break l;
                        } else if ($$je instanceof nms_CommandException) {
                            $var17 = $$je;
                            break k;
                        } else if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                }
                nms_EnumChatFormatting_$callClinit();
                $par2Str = nms_EnumChatFormatting_RED;
                $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
                $par2Str = new jl_StringBuilder;
                $par2Str.$buffer = $rt_createCharArray(16);
                $var6 = $par2Str.$length0;
                if ($var4 === null)
                    $var4 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
                jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(906));
                $var4 = new jl_String;
                $var8 = $par2Str.$buffer;
                var$6 = $var8.data;
                var$5 = $par2Str.$length0;
                $var7 = var$6.length;
                if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
                    $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
                    nms_StatCollector_$callClinit();
                    $par2Str = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4);
                    $ptr = 5;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $par2Str = nms_EnumChatFormatting_RED;
            $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
            $par2Str = new jl_StringBuilder;
            $par2Str.$buffer = $rt_createCharArray(16);
            $var6 = $par2Str.$length0;
            if ($var4 === null)
                $var4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
            jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(907));
            $var5 = new jl_String;
            $var8 = $par2Str.$buffer;
            var$6 = $var8.data;
            $var7 = $par2Str.$length0;
            $var11 = var$6.length;
            if ($var7 >= 0 && $var7 <= ($var11 - 0 | 0)) {
                $var5.$nativeString = $rt_charArrayToString($var8.data, 0, $var7);
                $var8 = $rt_createArray(jl_Object, 1);
                var$6 = $var8.data;
                $var4 = $var16.$message;
                var$7 = $var16.$errorObjects;
                nms_StatCollector_$callClinit();
                var$6[0] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, var$7);
                $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var5, $var8);
                $ptr = 4;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $par2Str = nms_EnumChatFormatting_RED;
        $var16 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
        $var4 = $var17.$message;
        $par2Str = new jl_StringBuilder;
        $par2Str.$buffer = $rt_createCharArray(16);
        $var6 = $par2Str.$length0;
        if ($var16 === null)
            $var16 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var16);
        $var6 = $par2Str.$length0;
        if ($var4 === null)
            $var4 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
        $var4 = new jl_String;
        $var8 = $par2Str.$buffer;
        var$6 = $var8.data;
        var$5 = $par2Str.$length0;
        $var7 = var$6.length;
        if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
            $var8 = $var17.$errorObjects;
            nms_StatCollector_$callClinit();
            $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, $var8);
            $ptr = 7;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 4:
        $par1ICommandSender.$sendChatToPlayer($par2Str);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = var$5;
        return $var7;
    case 5:
        $par1ICommandSender.$sendChatToPlayer($par2Str);
        if ($rt_suspending()) {
            break main;
        }
        if (jl_System_errCache === null) {
            $par1ICommandSender = new otcic_JSStderrPrintStream;
            $par2Str = new ji_ByteArrayOutputStream;
            $par2Str.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1ICommandSender);
            $par1ICommandSender.$out0 = $par2Str;
            $par2Str = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($par2Str, 16);
            $par1ICommandSender.$sb = $par2Str;
            $par1ICommandSender.$buffer0 = $rt_createCharArray(32);
            $par1ICommandSender.$autoFlush = 0;
            $par1ICommandSender.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1ICommandSender;
        }
        jl_Throwable_printStackTrace($var18, jl_System_errCache);
        $var7 = var$11;
        return $var7;
    case 6:
        k: {
            l: {
                m: {
                    try {
                        $par1ICommandSender.$sendChatToPlayer($par2Str);
                        if ($rt_suspending()) {
                            break main;
                        }
                        $var7 = var$19;
                        var$5 = $var7;
                        var$12 = $var7;
                        var$11 = $var7;
                        $var12 = $var12 + 1 | 0;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_WrongUsageException) {
                            $var16 = $$je;
                            break l;
                        } else if ($$je instanceof nms_CommandException) {
                            $var17 = $$je;
                            break k;
                        } else if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                            break m;
                        } else {
                            throw $$e;
                        }
                    }
                    n: {
                        try {
                            var$5 = $var7;
                            var$12 = $var7;
                            var$11 = $var7;
                            if ($var12 < $var11)
                                break n;
                            var$11 = $var7;
                            var$12 = $var7;
                            var$5 = $var7;
                            var$7[$var6] = $var9;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof nms_WrongUsageException) {
                                $var16 = $$je;
                                break l;
                            } else if ($$je instanceof nms_CommandException) {
                                $var17 = $$je;
                                break k;
                            } else if ($$je instanceof jl_Throwable) {
                                $var18 = $$je;
                                break m;
                            } else {
                                throw $$e;
                            }
                        }
                        return $var7;
                    }
                    try {
                        var$11 = $var7;
                        var$12 = $var7;
                        var$5 = $var7;
                        var$7[$var6] = nms_EntityPlayer_getEntityName($var8[$var12]);
                        try {
                            var$11 = $var7;
                            var$12 = $var7;
                            var$5 = $var7;
                            var$19 = $var7;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof nms_CommandException) {
                                $var15 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        var$5 = var$19;
                        var$12 = var$19;
                        var$11 = var$19;
                        nms_EnumChatFormatting_$callClinit();
                        $par2Str = jl_String_valueOf0(nms_EnumChatFormatting_RED);
                        $var4 = jl_Throwable_getMessage($var15);
                        $var16 = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($var16, $par2Str), $var4);
                        $par2Str = jl_StringBuilder_toString($var16);
                        var$11 = var$19;
                        var$12 = var$19;
                        var$5 = var$19;
                        $par2Str = nms_StatCollector_translateToLocalFormatted($par2Str, nms_CommandException_getErrorOjbects($var15));
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_WrongUsageException) {
                            $var16 = $$je;
                            break l;
                        } else if ($$je instanceof nms_CommandException) {
                            $var17 = $$je;
                            break k;
                        } else if ($$je instanceof jl_Throwable) {
                            $var18 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                }
                nms_EnumChatFormatting_$callClinit();
                $par2Str = nms_EnumChatFormatting_RED;
                $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
                $par2Str = new jl_StringBuilder;
                $par2Str.$buffer = $rt_createCharArray(16);
                $var6 = $par2Str.$length0;
                if ($var4 === null)
                    $var4 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
                jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(906));
                $var4 = new jl_String;
                $var8 = $par2Str.$buffer;
                var$6 = $var8.data;
                var$5 = $par2Str.$length0;
                $var7 = var$6.length;
                if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
                    $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
                    nms_StatCollector_$callClinit();
                    $par2Str = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4);
                    $ptr = 5;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $par2Str = nms_EnumChatFormatting_RED;
            $var4 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
            $par2Str = new jl_StringBuilder;
            $par2Str.$buffer = $rt_createCharArray(16);
            $var6 = $par2Str.$length0;
            if ($var4 === null)
                $var4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
            jl_AbstractStringBuilder_insert($par2Str, $par2Str.$length0, $rt_s(907));
            $var5 = new jl_String;
            $var8 = $par2Str.$buffer;
            var$6 = $var8.data;
            $var7 = $par2Str.$length0;
            $var11 = var$6.length;
            if ($var7 >= 0 && $var7 <= ($var11 - 0 | 0)) {
                $var5.$nativeString = $rt_charArrayToString($var8.data, 0, $var7);
                $var8 = $rt_createArray(jl_Object, 1);
                var$6 = $var8.data;
                $var4 = $var16.$message;
                var$7 = $var16.$errorObjects;
                nms_StatCollector_$callClinit();
                var$6[0] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, var$7);
                $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var5, $var8);
                $ptr = 4;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $par2Str = nms_EnumChatFormatting_RED;
        $var16 = $par2Str === null ? $rt_s(1) : $par2Str.$field_96304_B;
        $var4 = $var17.$message;
        $par2Str = new jl_StringBuilder;
        $par2Str.$buffer = $rt_createCharArray(16);
        $var6 = $par2Str.$length0;
        if ($var16 === null)
            $var16 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var16);
        $var6 = $par2Str.$length0;
        if ($var4 === null)
            $var4 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par2Str, $var6, $var4);
        $var4 = new jl_String;
        $var8 = $par2Str.$buffer;
        var$6 = $var8.data;
        var$5 = $par2Str.$length0;
        $var7 = var$6.length;
        if (var$5 >= 0 && var$5 <= ($var7 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString($var8.data, 0, var$5);
            $var8 = $var17.$errorObjects;
            nms_StatCollector_$callClinit();
            $par2Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var4, $var8);
            $ptr = 7;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 7:
        $par1ICommandSender.$sendChatToPlayer($par2Str);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = var$12;
        return $var7;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2Str, $var4, $var8, var$5, var$6, var$7, $var7, $var5, $var6, var$11, var$12, $var16, $var17, $var18, $var9, $var11, $var12, var$19, $var15, $ptr);
},
nms_CommandHandler_registerCommand = ($this, $par1ICommand) => {
    let $var2, $var5, $var3$index, var$5, var$6, $var3$index_0, $var4, var$9, var$10, var$11, var$12;
    $var2 = $par1ICommand.$getCommandAliases();
    ju_HashMap_putImpl($this.$commandMap, $par1ICommand.$getCommandName(), $par1ICommand);
    $var5 = $this.$commandSet;
    ju_HashMap_putImpl($var5.$backingMap, $par1ICommand, $var5);
    a: {
        if ($var2 !== null) {
            $var3$index = 0;
            var$5 = $var2.$modCount;
            var$6 = $var2.$size();
            while (true) {
                if (!($var3$index >= var$6 ? 0 : 1))
                    break a;
                if (var$5 < $var2.$modCount) {
                    $par1ICommand = new ju_ConcurrentModificationException;
                    $par1ICommand.$suppressionEnabled = 1;
                    $par1ICommand.$writableStackTrace = 1;
                    $rt_throw($par1ICommand);
                }
                $var3$index_0 = $var3$index + 1 | 0;
                $var4 = $var2.$get($var3$index);
                $var5 = $this.$commandMap;
                if ($var4 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    b: {
                        if (!$var4.$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $var4.$nativeString.length)
                                    break b;
                                $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $var4.$hashCode1;
                    var$11 = $var5.$elementData.data;
                    $var5 = var$11[var$10 & (var$11.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$10) {
                            c: {
                                var$12 = $var5.$key;
                                if ($var4 !== var$12) {
                                    if ($var4 === var$12)
                                        var$9 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        var$12 = var$12;
                                        var$9 = $var4.$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break c;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = $var5 === null ? null : $var5.$value0;
                d: {
                    $var5 = $var5;
                    if ($var5 !== null) {
                        var$12 = $var5.$getCommandName();
                        if (var$12 === $var4)
                            var$9 = 1;
                        else if (!($var4 instanceof jl_String))
                            var$9 = 0;
                        else {
                            $var5 = $var4;
                            var$9 = var$12.$nativeString !== $var5.$nativeString ? 0 : 1;
                        }
                        if (var$9)
                            break d;
                    }
                    ju_HashMap_putImpl($this.$commandMap, $var4, $par1ICommand);
                }
                $var3$index = $var3$index_0;
            }
        }
    }
    return $par1ICommand;
},
nms_CommandHandler_getPossibleCommands = ($this, $par1ICommandSender, $par2Str) => {
    let $var3, $var4, var$5, var$6, $var8, $var6, $var5, var$10, var$11, var$12;
    $var3 = (jur_Pattern_split(jur_Pattern_compile($rt_s(260), 0), $par2Str, (-1))).data;
    $var4 = $var3[0];
    var$5 = $var3.length;
    var$6 = $rt_compare(var$5, 1);
    if (!var$6) {
        $var8 = new ju_ArrayList;
        $var8.$array = $rt_createArray(jl_Object, 10);
        $par2Str = $this.$commandMap;
        $var6 = new ju_HashMap$EntryIterator;
        $var6.$associatedMap = $par2Str;
        $var6.$expectedModCount = $par2Str.$modCount1;
        $var6.$futureEntry0 = null;
        while (ju_HashMap$AbstractMapIterator_hasNext($var6)) {
            ju_HashMap$AbstractMapIterator_makeNext($var6);
            $var5 = $var6.$currentEntry0;
            if (jl_String_regionMatches($var5.$key, 1, 0, $var4, 0, $var4.$nativeString.length) && $var5.$value0.$canCommandSenderUseCommand($par1ICommandSender)) {
                $par2Str = $var5.$key;
                ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                $var3 = $var8.$array.data;
                var$10 = $var8.$size0;
                $var8.$size0 = var$10 + 1 | 0;
                $var3[var$10] = $par2Str;
                $var8.$modCount = $var8.$modCount + 1 | 0;
            }
        }
        return $var8;
    }
    if (var$6 > 0) {
        $par2Str = $this.$commandMap;
        if ($var4 === null) {
            $var6 = $par2Str.$elementData.data[0];
            while ($var6 !== null && $var6.$key !== null) {
                $var6 = $var6.$next3;
            }
        } else {
            a: {
                if (!$var4.$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $var4.$nativeString.length)
                            break a;
                        $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$10 = $var4.$hashCode1;
            var$11 = $par2Str.$elementData.data;
            $var6 = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    b: {
                        $par2Str = $var6.$key;
                        if ($var4 !== $par2Str) {
                            if ($var4 === $par2Str)
                                var$6 = 1;
                            else if (!($par2Str instanceof jl_String))
                                var$6 = 0;
                            else {
                                $par2Str = $par2Str;
                                var$6 = $var4.$nativeString !== $par2Str.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break b;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var6 = $var6.$next3;
            }
        }
        $var5 = $var6 === null ? null : $var6.$value0;
        if ($var5 !== null) {
            var$11 = $rt_createArray(jl_String, var$5 - 1 | 0);
            var$12 = var$11.data;
            var$10 = 1;
            while (var$10 < var$5) {
                var$12[var$10 - 1 | 0] = $var3[var$10];
                var$10 = var$10 + 1 | 0;
            }
            return $var5.$addTabCompletionOptions($par1ICommandSender, var$11);
        }
    }
    return null;
},
nms_IAdminCommand = $rt_classWithoutFields(0),
nms_ServerCommandManager = $rt_classWithoutFields(nms_CommandHandler),
nms_ServerCommandManager__init_ = $this => {
    nms_CommandHandler__init_($this);
    nms_CommandHandler_registerCommand($this, new nms_CommandTime);
    nms_CommandHandler_registerCommand($this, new nms_CommandGameMode);
    nms_CommandHandler_registerCommand($this, new nms_CommandDifficulty);
    nms_CommandHandler_registerCommand($this, new nms_CommandDefaultGameMode);
    nms_CommandHandler_registerCommand($this, new nms_CommandKill);
    nms_CommandHandler_registerCommand($this, new nms_CommandToggleDownfall);
    nms_CommandHandler_registerCommand($this, new nms_CommandWeather);
    nms_CommandHandler_registerCommand($this, new nms_CommandXP);
    nms_CommandHandler_registerCommand($this, new nms_CommandServerTp);
    nms_CommandHandler_registerCommand($this, new nms_CommandGive);
    nms_CommandHandler_registerCommand($this, new nms_CommandEffect);
    nms_CommandHandler_registerCommand($this, new nms_CommandEnchant);
    nms_CommandHandler_registerCommand($this, new nms_CommandServerEmote);
    nms_CommandHandler_registerCommand($this, new nms_CommandShowSeed);
    nms_CommandHandler_registerCommand($this, new nms_CommandHelp);
    nms_CommandHandler_registerCommand($this, new nms_CommandDebug);
    nms_CommandHandler_registerCommand($this, new nms_CommandServerMessage);
    nms_CommandHandler_registerCommand($this, new nms_CommandServerSay);
    nms_CommandHandler_registerCommand($this, new nms_CommandSetSpawnpoint);
    nms_CommandHandler_registerCommand($this, new nms_CommandGameRule);
    nms_CommandHandler_registerCommand($this, new nms_CommandClearInventory);
    nms_CommandHandler_registerCommand($this, new nms_ServerCommandTestFor);
    nms_CommandHandler_registerCommand($this, new nms_CommandSpreadPlayers);
    nms_CommandHandler_registerCommand($this, new nms_ServerCommandScoreboard);
    nms_CommandBase_theAdmin = $this;
},
nms_ServerCommandManager__init_0 = () => {
    let var_0 = new nms_ServerCommandManager();
    nms_ServerCommandManager__init_(var_0);
    return var_0;
},
nms_ServerCommandManager_notifyAdmins = ($this, $par1ICommandSender, $par2, $par3Str, $par4ArrayOfObj) => {
    let $var5, var$6, $var8, $var6, var$9, $var7$index, $var7$index_0, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7$index_0 = $thread.pop();$var7$index = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4ArrayOfObj = $thread.pop();$par3Str = $thread.pop();$par2 = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 1;
        if ($par1ICommandSender instanceof nms_TileEntityCommandBlock) {
            a: {
                var$6 = (nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                $var8 = $rt_s(908);
                $var6 = $rt_s(908);
                if ($var8 !== $var6) {
                    var$9 = $var8.$nativeString.length;
                    $var7$index = $var6.$nativeString.length;
                    if (var$9 < $var7$index)
                        $var7$index = var$9;
                    $var7$index_0 = 0;
                    b: {
                        while (true) {
                            if ($var7$index_0 >= $var7$index) {
                                $var8.$nativeString.length;
                                $var6.$nativeString.length;
                                break a;
                            }
                            if ($var7$index_0 < 0)
                                break b;
                            if ($var7$index_0 >= $var8.$nativeString.length)
                                break b;
                            var$12 = $var8.$nativeString.charCodeAt($var7$index_0);
                            if ($var7$index_0 < 0)
                                break;
                            if ($var7$index_0 >= $var6.$nativeString.length)
                                break;
                            if (var$12 - $var6.$nativeString.charCodeAt($var7$index_0) | 0)
                                break a;
                            $var7$index_0 = $var7$index_0 + 1 | 0;
                        }
                        $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
            }
            $var6 = $rt_s(908);
            c: {
                d: {
                    e: while (true) {
                        if (var$6 === null) {
                            var$6 = null;
                            break c;
                        }
                        f: {
                            $var8 = var$6.$key0;
                            if ($var6 === $var8)
                                $var7$index_0 = 0;
                            else {
                                var$9 = $var6.$nativeString.length;
                                var$12 = $var8.$nativeString.length;
                                if (var$9 < var$12)
                                    var$12 = var$9;
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= var$12) {
                                        $var7$index_0 = $var6.$nativeString.length - $var8.$nativeString.length | 0;
                                        break f;
                                    }
                                    if (var$9 < 0)
                                        break d;
                                    if (var$9 >= $var6.$nativeString.length)
                                        break d;
                                    $var7$index_0 = $var6.$nativeString.charCodeAt(var$9);
                                    if (var$9 < 0)
                                        break e;
                                    if (var$9 >= $var8.$nativeString.length)
                                        break e;
                                    $var7$index_0 = $var7$index_0 - $var8.$nativeString.charCodeAt(var$9) | 0;
                                    if ($var7$index_0)
                                        break;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        if (!$var7$index_0)
                            break c;
                        var$6 = $var7$index_0 >= 0 ? var$6.$right : var$6.$left;
                    }
                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            $var6 = var$6 === null ? null : var$6.$value2;
            if (!($var6 === null ? 0 : $var6.$valueBoolean))
                $var5 = 0;
        }
        nms_EnumChatFormatting_$callClinit();
        $var6 = nms_EnumChatFormatting_GRAY;
        var$6 = $var6 === null ? $rt_s(1) : $var6.$field_96304_B;
        $var6 = new jl_StringBuilder;
        $var6.$buffer = $rt_createCharArray(16);
        $var7$index_0 = $var6.$length0;
        if (var$6 === null)
            var$6 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var6, $var7$index_0, var$6);
        jl_AbstractStringBuilder_insert($var6, $var6.$length0, $rt_s(909));
        var$6 = new jl_String;
        var$13 = $var6.$buffer;
        var$14 = var$13.data;
        var$9 = $var6.$length0;
        var$12 = var$14.length;
        if (var$9 >= 0 && var$9 <= (var$12 - 0 | 0)) {
            g: {
                var$6.$nativeString = $rt_charArrayToString(var$13.data, 0, var$9);
                var$13 = $rt_createArray(jl_Object, 2);
                var$14 = var$13.data;
                var$14[0] = $par1ICommandSender.$getCommandSenderName();
                nms_StatCollector_$callClinit();
                var$14[1] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par3Str, $par4ArrayOfObj);
                $var6 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$6, var$13);
                if ($var5) {
                    var$6 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                    $var7$index = 0;
                    var$9 = var$6.$modCount;
                    var$12 = var$6.$size();
                    while (true) {
                        if (!($var7$index >= var$12 ? 0 : 1))
                            break g;
                        if (var$9 < var$6.$modCount)
                            break;
                        $var7$index_0 = $var7$index + 1 | 0;
                        $var8 = var$6.$get($var7$index);
                        if ($var8 !== $par1ICommandSender && nms_ServerConfigurationManager_isPlayerOpped(nms_MinecraftServer_mcServer.$serverConfigManager, $var8.$username)) {
                            $ptr = 2;
                            continue main;
                        }
                        $var7$index = $var7$index_0;
                    }
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
            }
            h: {
                if ($par1ICommandSender !== nms_MinecraftServer_mcServer) {
                    nles_IntegratedServer_$callClinit();
                    var$15 = nles_IntegratedServer_logger;
                    nms_StringUtils_$callClinit();
                    $var8 = jur_Matcher__init_(nms_StringUtils_patternControlCode, $var6);
                    var$16 = new jl_StringBuffer;
                    var$16.$buffer = $rt_createCharArray(16);
                    $var8.$leftBound0 = 0;
                    var$17 = $var8.$string.$nativeString.length;
                    $var8.$rightBound0 = var$17;
                    $var6 = $var8.$matchResult;
                    var$6 = $var8.$string;
                    $var5 = $var8.$leftBound0;
                    $var6.$valid = 0;
                    $var6.$mode0 = 2;
                    var$13 = $var6.$groupBounds.data;
                    var$9 = 0;
                    var$12 = var$13.length;
                    if (var$9 > var$12) {
                        $par1ICommandSender = new jl_IllegalArgumentException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    while (var$9 < var$12) {
                        $var7$index = var$9 + 1 | 0;
                        var$13[var$9] = (-1);
                        var$9 = $var7$index;
                    }
                    var$13 = $var6.$consumers.data;
                    var$9 = 0;
                    var$12 = var$13.length;
                    if (var$9 > var$12) {
                        $par1ICommandSender = new jl_IllegalArgumentException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    while (var$9 < var$12) {
                        $var7$index = var$9 + 1 | 0;
                        var$13[var$9] = (-1);
                        var$9 = $var7$index;
                    }
                    if (var$6 !== null)
                        $var6.$string0 = var$6;
                    if ($var5 >= 0) {
                        $var6.$leftBound = $var5;
                        $var6.$rightBound = var$17;
                    }
                    $var6.$startIndex = $var6.$leftBound;
                    $var8.$appendPos = 0;
                    $var8.$replacement = null;
                    $var6.$previousMatch = (-1);
                    while (true) {
                        if (!jur_Matcher_find($var8)) {
                            $var6 = $var8.$string;
                            $var6 = jl_String_substring($var6, $var8.$appendPos, $var6.$nativeString.length);
                            var$9 = $var6.$nativeString.length;
                            jl_AbstractStringBuilder_insert1(var$16, var$16.$length0, $var6, 0, var$9);
                            $var6 = new jl_String;
                            var$14 = var$16.$buffer;
                            var$13 = var$14.data;
                            var$9 = var$16.$length0;
                            $var5 = var$13.length;
                            if (var$9 >= 0 && var$9 <= ($var5 - 0 | 0)) {
                                $var6.$nativeString = $rt_charArrayToString(var$14.data, 0, var$9);
                                $var8 = var$15.$logger;
                                var$6 = jul_Level_INFO;
                                var$15 = new jul_LogRecord;
                                var$15.$level = var$6;
                                var$15.$message0 = $var6;
                                var$15.$millis = jl_System_currentTimeMillis();
                                var$18 = jul_LogRecord_sequenceNumberGenerator;
                                jul_LogRecord_sequenceNumberGenerator = Long_add(var$18, Long_fromInt(1));
                                var$15.$sequenceNumber = var$18;
                                var$15.$threadID = jl_Thread_currentThread.$id2;
                                jul_Logger_log($var8, var$15);
                                break h;
                            }
                            $par1ICommandSender = new jl_IndexOutOfBoundsException;
                            $par1ICommandSender.$suppressionEnabled = 1;
                            $par1ICommandSender.$writableStackTrace = 1;
                            $rt_throw($par1ICommandSender);
                        }
                        $var8.$processedRepl = jur_Matcher_processReplacement($var8, $rt_s(3));
                        $var6 = $var8.$string;
                        var$9 = $var8.$appendPos;
                        var$6 = $var8.$matchResult;
                        if (!var$6.$valid)
                            $rt_throw(jl_IllegalStateException__init_());
                        if (0 >= var$6.$groupCount)
                            $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(0)));
                        $var6 = jl_String_substring($var6, var$9, var$6.$groupBounds.data[0]);
                        var$9 = $var6.$nativeString.length;
                        jl_AbstractStringBuilder_insert1(var$16, var$16.$length0, $var6, 0, var$9);
                        $var6 = $var8.$processedRepl;
                        jl_AbstractStringBuilder_insert(var$16, var$16.$length0, $var6);
                        $var6 = $var8.$matchResult;
                        if (!$var6.$valid)
                            break;
                        if (0 >= $var6.$groupCount)
                            $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(0)));
                        $var8.$appendPos = $var6.$groupBounds.data[1];
                    }
                    $rt_throw(jl_IllegalStateException__init_());
                }
            }
            if (($par2 & 1) == 1)
                return;
            $par3Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par3Str, $par4ArrayOfObj);
            $ptr = 1;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        $par1ICommandSender.$sendChatToPlayer($par3Str);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_EntityPlayerMP_sendChatToPlayer($var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var7$index = $var7$index_0;
            if (!($var7$index >= var$12 ? 0 : 1)) {
                i: {
                    if ($par1ICommandSender !== nms_MinecraftServer_mcServer) {
                        nles_IntegratedServer_$callClinit();
                        var$15 = nles_IntegratedServer_logger;
                        nms_StringUtils_$callClinit();
                        $var8 = jur_Matcher__init_(nms_StringUtils_patternControlCode, $var6);
                        var$16 = new jl_StringBuffer;
                        var$16.$buffer = $rt_createCharArray(16);
                        $var8.$leftBound0 = 0;
                        var$17 = $var8.$string.$nativeString.length;
                        $var8.$rightBound0 = var$17;
                        $var6 = $var8.$matchResult;
                        var$6 = $var8.$string;
                        $var5 = $var8.$leftBound0;
                        $var6.$valid = 0;
                        $var6.$mode0 = 2;
                        var$13 = $var6.$groupBounds.data;
                        var$9 = 0;
                        var$12 = var$13.length;
                        if (var$9 > var$12) {
                            $par1ICommandSender = new jl_IllegalArgumentException;
                            jl_RuntimeException__init_($par1ICommandSender);
                            $rt_throw($par1ICommandSender);
                        }
                        while (var$9 < var$12) {
                            $var7$index = var$9 + 1 | 0;
                            var$13[var$9] = (-1);
                            var$9 = $var7$index;
                        }
                        var$13 = $var6.$consumers.data;
                        var$9 = 0;
                        var$12 = var$13.length;
                        if (var$9 > var$12) {
                            $par1ICommandSender = new jl_IllegalArgumentException;
                            jl_RuntimeException__init_($par1ICommandSender);
                            $rt_throw($par1ICommandSender);
                        }
                        while (var$9 < var$12) {
                            $var7$index = var$9 + 1 | 0;
                            var$13[var$9] = (-1);
                            var$9 = $var7$index;
                        }
                        if (var$6 !== null)
                            $var6.$string0 = var$6;
                        if ($var5 >= 0) {
                            $var6.$leftBound = $var5;
                            $var6.$rightBound = var$17;
                        }
                        $var6.$startIndex = $var6.$leftBound;
                        $var8.$appendPos = 0;
                        $var8.$replacement = null;
                        $var6.$previousMatch = (-1);
                        while (true) {
                            if (!jur_Matcher_find($var8)) {
                                $var6 = $var8.$string;
                                $var6 = jl_String_substring($var6, $var8.$appendPos, $var6.$nativeString.length);
                                var$9 = $var6.$nativeString.length;
                                jl_AbstractStringBuilder_insert1(var$16, var$16.$length0, $var6, 0, var$9);
                                $var6 = new jl_String;
                                var$14 = var$16.$buffer;
                                var$13 = var$14.data;
                                var$9 = var$16.$length0;
                                $var5 = var$13.length;
                                if (var$9 >= 0 && var$9 <= ($var5 - 0 | 0)) {
                                    $var6.$nativeString = $rt_charArrayToString(var$14.data, 0, var$9);
                                    $var8 = var$15.$logger;
                                    var$6 = jul_Level_INFO;
                                    var$15 = new jul_LogRecord;
                                    var$15.$level = var$6;
                                    var$15.$message0 = $var6;
                                    var$15.$millis = jl_System_currentTimeMillis();
                                    var$18 = jul_LogRecord_sequenceNumberGenerator;
                                    jul_LogRecord_sequenceNumberGenerator = Long_add(var$18, Long_fromInt(1));
                                    var$15.$sequenceNumber = var$18;
                                    var$15.$threadID = jl_Thread_currentThread.$id2;
                                    jul_Logger_log($var8, var$15);
                                    break i;
                                }
                                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                                $par1ICommandSender.$suppressionEnabled = 1;
                                $par1ICommandSender.$writableStackTrace = 1;
                                $rt_throw($par1ICommandSender);
                            }
                            $var8.$processedRepl = jur_Matcher_processReplacement($var8, $rt_s(3));
                            $var6 = $var8.$string;
                            var$9 = $var8.$appendPos;
                            var$6 = $var8.$matchResult;
                            if (!var$6.$valid)
                                $rt_throw(jl_IllegalStateException__init_());
                            if (0 >= var$6.$groupCount)
                                $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(0)));
                            $var6 = jl_String_substring($var6, var$9, var$6.$groupBounds.data[0]);
                            var$9 = $var6.$nativeString.length;
                            jl_AbstractStringBuilder_insert1(var$16, var$16.$length0, $var6, 0, var$9);
                            $var6 = $var8.$processedRepl;
                            jl_AbstractStringBuilder_insert(var$16, var$16.$length0, $var6);
                            $var6 = $var8.$matchResult;
                            if (!$var6.$valid)
                                break;
                            if (0 >= $var6.$groupCount)
                                $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(0)));
                            $var8.$appendPos = $var6.$groupBounds.data[1];
                        }
                        $rt_throw(jl_IllegalStateException__init_());
                    }
                }
                if (($par2 & 1) == 1)
                    return;
                $par3Str = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par3Str, $par4ArrayOfObj);
                $ptr = 1;
                continue main;
            }
            if (var$9 < var$6.$modCount)
                break;
            $var7$index_0 = $var7$index + 1 | 0;
            $var8 = var$6.$get($var7$index);
            if ($var8 === $par1ICommandSender)
                continue;
            if (!nms_ServerConfigurationManager_isPlayerOpped(nms_MinecraftServer_mcServer.$serverConfigManager, $var8.$username))
                continue;
            else {
                continue main;
            }
        }
        $par1ICommandSender = new ju_ConcurrentModificationException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $rt_throw($par1ICommandSender);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2, $par3Str, $par4ArrayOfObj, $var5, var$6, $var8, $var6, var$9, $var7$index, $var7$index_0, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
ju_Set = $rt_classWithoutFields(0),
ju_AbstractSet = $rt_classWithoutFields(ju_AbstractCollection),
ju_AbstractSet__init_ = $this => {
    return;
},
ju_AbstractSet_equals = ($this, $obj) => {
    let $other, $iter;
    if ($this === $obj)
        return 1;
    if (!$rt_isInstance($obj, ju_Set))
        return 0;
    $other = $obj;
    if ($this.$size() != $other.$size())
        return 0;
    $iter = $other.$iterator();
    while ($iter.$hasNext()) {
        if ($this.$contains0($iter.$next()))
            continue;
        else
            return 0;
    }
    return 1;
},
ju_AbstractSet_hashCode = $this => {
    let $result, $e, $iter;
    $result = 0;
    $e = $this.$backingMap;
    if ($e.$cachedKeySet === null) {
        $iter = new ju_HashMap$1;
        $iter.$this$0 = $e;
        $e.$cachedKeySet = $iter;
    }
    $iter = $e.$cachedKeySet.$iterator();
    while ($iter.$hasNext()) {
        $e = $iter.$next();
        if ($e !== null)
            $result = $result + $e.$hashCode() | 0;
    }
    return $result;
};
function ju_HashSet() {
    ju_AbstractSet.call(this);
    this.$backingMap = null;
}
let ju_HashSet__init_0 = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$backingMap = var$1;
},
ju_HashSet__init_ = () => {
    let var_0 = new ju_HashSet();
    ju_HashSet__init_0(var_0);
    return var_0;
},
ju_HashSet_add = ($this, $object) => {
    return ju_HashMap_putImpl($this.$backingMap, $object, $this) !== null ? 0 : 1;
},
ju_HashSet_contains = ($this, $object) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$backingMap;
    if ($object === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$3 = $object.$hashCode();
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($object !== var$5 && !$object.$equals(var$5) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? 0 : 1;
},
ju_HashSet_iterator = $this => {
    let var$1, var$2;
    var$1 = $this.$backingMap;
    if (var$1.$cachedKeySet === null) {
        var$2 = new ju_HashMap$1;
        var$2.$this$0 = var$1;
        var$1.$cachedKeySet = var$2;
    }
    return var$1.$cachedKeySet.$iterator();
},
ju_HashSet_size = $this => {
    return $this.$backingMap.$elementCount;
};
function jnc_Charset() {
    let a = this; jl_Object.call(a);
    a.$canonicalName = null;
    a.$aliases = null;
}
let jnc_Charset_checkCanonicalName = $name => {
    let var$2, $i, $c;
    if ($name.$nativeString.length ? 0 : 1) {
        var$2 = new jnc_IllegalCharsetNameException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$charsetName0 = $name;
        $rt_throw(var$2);
    }
    if (0 >= $name.$nativeString.length) {
        $name = new jl_StringIndexOutOfBoundsException;
        $name.$suppressionEnabled = 1;
        $name.$writableStackTrace = 1;
        $rt_throw($name);
    }
    if (!jnc_Charset_isValidCharsetStart($name.$nativeString.charCodeAt(0))) {
        var$2 = new jnc_IllegalCharsetNameException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$charsetName0 = $name;
        $rt_throw(var$2);
    }
    $i = 1;
    a: {
        while ($i < $name.$nativeString.length) {
            if ($i < 0)
                break a;
            if ($i >= $name.$nativeString.length)
                break a;
            b: {
                $c = $name.$nativeString.charCodeAt($i);
                switch ($c) {
                    case 43:
                    case 45:
                    case 46:
                    case 58:
                    case 95:
                        break;
                    default:
                        if (jnc_Charset_isValidCharsetStart($c))
                            break b;
                        else {
                            var$2 = new jnc_IllegalCharsetNameException;
                            var$2.$suppressionEnabled = 1;
                            var$2.$writableStackTrace = 1;
                            var$2.$charsetName0 = $name;
                            $rt_throw(var$2);
                        }
                }
            }
            $i = $i + 1 | 0;
        }
        return;
    }
    $name = new jl_StringIndexOutOfBoundsException;
    $name.$suppressionEnabled = 1;
    $name.$writableStackTrace = 1;
    $rt_throw($name);
},
jnc_Charset_isValidCharsetStart = $c => {
    a: {
        b: {
            if (!($c >= 48 && $c <= 57) && !($c >= 97 && $c <= 122)) {
                if ($c < 65)
                    break b;
                if ($c > 90)
                    break b;
            }
            $c = 1;
            break a;
        }
        $c = 0;
    }
    return $c;
},
jnc_Charset_compareTo = ($this, var$1) => {
    var$1 = var$1;
    return jl_String_compareToIgnoreCase($this.$canonicalName, var$1.$canonicalName);
},
jnci_UTF8Charset = $rt_classWithoutFields(jnc_Charset),
jnci_UTF8Charset_INSTANCE = null,
jnci_UTF8Charset__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_String, 0);
    var$2 = var$1.data;
    jnc_Charset_checkCanonicalName($rt_s(68));
    var$3 = var$2.length;
    var$4 = 0;
    while (var$4 < var$3) {
        jnc_Charset_checkCanonicalName(var$2[var$4]);
        var$4 = var$4 + 1 | 0;
    }
    $this.$canonicalName = $rt_s(68);
    $this.$aliases = var$1.$clone0();
},
jnci_UTF8Charset__init_0 = () => {
    let var_0 = new jnci_UTF8Charset();
    jnci_UTF8Charset__init_(var_0);
    return var_0;
},
jnci_UTF8Charset_newDecoder = $this => {
    let var$1;
    var$1 = new jnci_UTF8Decoder;
    jnc_CharsetDecoder__init_(var$1, $this, 0.3333333432674408, 0.5);
    var$1.$inArray0 = $rt_createByteArray(512);
    var$1.$outArray0 = $rt_createCharArray(512);
    return var$1;
},
jnci_UTF8Charset_newEncoder = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jnci_UTF8Encoder;
    var$2 = $rt_createByteArray(1);
    var$3 = var$2.data;
    var$3[0] = 63;
    var$4 = jnc_CodingErrorAction_REPORT;
    var$1.$malformedAction = var$4;
    var$1.$unmappableAction = var$4;
    var$5 = var$3.length;
    if (var$5 && var$5 >= var$1.$maxBytesPerChar) {
        var$1.$charset0 = $this;
        var$1.$replacement1 = var$2.$clone0();
        var$1.$averageBytesPerChar = 2.0;
        var$1.$maxBytesPerChar = 4.0;
        var$1.$inArray = $rt_createCharArray(512);
        var$1.$outArray = $rt_createByteArray(512);
        return var$1;
    }
    var$4 = new jl_IllegalArgumentException;
    jl_Throwable__init_0(var$4, $rt_s(910));
    $rt_throw(var$4);
},
jnci_UTF8Charset__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jnci_UTF8Charset;
    var$2 = $rt_createArray(jl_String, 0);
    var$3 = var$2.data;
    jnc_Charset_checkCanonicalName($rt_s(68));
    var$4 = var$3.length;
    var$5 = 0;
    while (var$5 < var$4) {
        jnc_Charset_checkCanonicalName(var$3[var$5]);
        var$5 = var$5 + 1 | 0;
    }
    var$1.$canonicalName = $rt_s(68);
    var$1.$aliases = var$2.$clone0();
    jnci_UTF8Charset_INSTANCE = var$1;
},
jl_Thread$UncaughtExceptionHandler = $rt_classWithoutFields(0),
jl_DefaultUncaughtExceptionHandler = $rt_classWithoutFields(),
jl_DefaultUncaughtExceptionHandler__init_ = $this => {
    return;
},
jl_DefaultUncaughtExceptionHandler__init_0 = () => {
    let var_0 = new jl_DefaultUncaughtExceptionHandler();
    jl_DefaultUncaughtExceptionHandler__init_(var_0);
    return var_0;
},
nles_VirtualFilesystem$AsyncHandlers = $rt_classWithoutFields(),
nles_VirtualFilesystem$AsyncHandlers__init_ = $this => {
    return;
},
nles_VirtualFilesystem$AsyncHandlers__init_0 = () => {
    let var_0 = new nles_VirtualFilesystem$AsyncHandlers();
    nles_VirtualFilesystem$AsyncHandlers__init_(var_0);
    return var_0;
},
nles_VirtualFilesystem$AsyncHandlers_openDB = ($name, $cb) => {
    let $i, $f;
    $i = typeof indexedDB !== 'undefined' ? indexedDB : null;
    if ($i === null) {
        $f = new nles_VirtualFilesystem$DatabaseOpen;
        $i = null;
        $f.$failedInit = 0;
        $f.$failedLocked = 0;
        $f.$failedError = $rt_s(911);
        $f.$database = $i;
        $cb.$realAsyncCallback.$complete($f);
        return;
    }
    $f = $i.open($rt_ustr($name), 1);
    $name = new nles_VirtualFilesystem$AsyncHandlers$1;
    $name.$val$cb11 = $cb;
    $name = otji_JS_function($name, "handleEvent");
    $f.onBlocked = $name;
    $name = new nles_VirtualFilesystem$AsyncHandlers$2;
    $name.$val$cb12 = $cb;
    $name.$val$f = $f;
    $name = otji_JS_function($name, "handleEvent");
    $f.onsuccess = $name;
    $name = new nles_VirtualFilesystem$AsyncHandlers$3;
    $name.$val$cb13 = $cb;
    $name = otji_JS_function($name, "handleEvent");
    $f.onerror = $name;
    $name = new nles_VirtualFilesystem$AsyncHandlers$4;
    $name.$val$f0 = $f;
    $name = otji_JS_function($name, "handleEvent");
    $f.onupgradeneeded = $name;
},
nles_VirtualFilesystem$AsyncHandlers_deleteFile = ($db, $name, $cb) => {
    let $r;
    $db = $db.transaction("filesystem", "readwrite").objectStore("filesystem");
    $name = nles_VirtualFilesystem$AsyncHandlers_makeTheFuckingKeyWork$js_body$_6($rt_ustr($name));
    $r = $db.delete($name);
    $db = new nles_VirtualFilesystem$AsyncHandlers$5;
    $db.$val$cb8 = $cb;
    $db = otji_JS_function($db, "handleEvent");
    $r.onsuccess = $db;
    $db = new nles_VirtualFilesystem$AsyncHandlers$6;
    $db.$val$cb1 = $cb;
    $db = otji_JS_function($db, "handleEvent");
    $r.onerror = $db;
},
nles_VirtualFilesystem$AsyncHandlers_readWholeFile = ($db, $name, $cb) => {
    let $r;
    $db = $db.transaction("filesystem", "readonly").objectStore("filesystem");
    $name = nles_VirtualFilesystem$AsyncHandlers_makeTheFuckingKeyWork$js_body$_6($rt_ustr($name));
    $r = $db.get($name);
    $db = new nles_VirtualFilesystem$AsyncHandlers$7;
    $db.$val$cb10 = $cb;
    $db.$val$r = $r;
    $db = otji_JS_function($db, "handleEvent");
    $r.onsuccess = $db;
    $db = new nles_VirtualFilesystem$AsyncHandlers$8;
    $db.$val$cb3 = $cb;
    $db = otji_JS_function($db, "handleEvent");
    $r.onerror = $db;
},
nles_VirtualFilesystem$AsyncHandlers_iterateFiles = ($db, $vfs, $prefix, $rw, $itr, $cb) => {
    let $r, $res;
    $r = $db.transaction("filesystem", $rt_ustr(!$rw ? $rt_s(912) : $rt_s(913))).objectStore("filesystem").openCursor();
    $res = $rt_createIntArray(1);
    $db = new nles_VirtualFilesystem$AsyncHandlers$9;
    $db.$val$r2 = $r;
    $db.$val$cb = $cb;
    $db.$val$res = $res;
    $db.$val$prefix = $prefix;
    $db.$val$itr = $itr;
    $db.$val$vfs = $vfs;
    $db = otji_JS_function($db, "handleEvent");
    $r.onsuccess = $db;
    $db = new nles_VirtualFilesystem$AsyncHandlers$10;
    $db.$val$cb5 = $cb;
    $db.$val$res1 = $res;
    $db = otji_JS_function($db, "handleEvent");
    $r.onerror = $db;
},
nles_VirtualFilesystem$AsyncHandlers_deleteFiles = ($db, $prefix, $cb) => {
    let $r, $res;
    $r = $db.transaction("filesystem", "readwrite").objectStore("filesystem").openCursor();
    $res = $rt_createIntArray(1);
    $db = new nles_VirtualFilesystem$AsyncHandlers$11;
    $db.$val$r0 = $r;
    $db.$val$cb6 = $cb;
    $db.$val$res0 = $res;
    $db.$val$prefix0 = $prefix;
    $db = otji_JS_function($db, "handleEvent");
    $r.onsuccess = $db;
    $db = new nles_VirtualFilesystem$AsyncHandlers$12;
    $db.$val$cb2 = $cb;
    $db.$val$res2 = $res;
    $db = otji_JS_function($db, "handleEvent");
    $r.onerror = $db;
},
nles_VirtualFilesystem$AsyncHandlers_fileExists = ($db, $name, $cb) => {
    let $r;
    $db = $db.transaction("filesystem", "readonly").objectStore("filesystem");
    $name = nles_VirtualFilesystem$AsyncHandlers_makeTheFuckingKeyWork$js_body$_6($rt_ustr($name));
    $r = $db.count($name);
    $db = new nles_VirtualFilesystem$AsyncHandlers$13;
    $db.$val$cb7 = $cb;
    $db.$val$r1 = $r;
    $db = otji_JS_function($db, "handleEvent");
    $r.onsuccess = $db;
    $db = new nles_VirtualFilesystem$AsyncHandlers$14;
    $db.$val$cb0 = $cb;
    $db = otji_JS_function($db, "handleEvent");
    $r.onerror = $db;
},
nles_VirtualFilesystem$AsyncHandlers_writeWholeFile = ($db, $name, $data, $cb) => {
    let $r;
    $db = $db.transaction("filesystem", "readwrite").objectStore("filesystem");
    $name = nles_VirtualFilesystem$AsyncHandlers_writeRow$js_body$_17($rt_ustr($name), $data);
    $r = $db.put($name);
    $db = new nles_VirtualFilesystem$AsyncHandlers$15;
    $db.$val$cb9 = $cb;
    $db = otji_JS_function($db, "handleEvent");
    $r.onsuccess = $db;
    $db = new nles_VirtualFilesystem$AsyncHandlers$16;
    $db.$val$cb4 = $cb;
    $db = otji_JS_function($db, "handleEvent");
    $r.onerror = $db;
},
nles_VirtualFilesystem$AsyncHandlers_openDB$_asyncCall_$ = var$1 => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_openDB(var$1, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_deleteFile$_asyncCall_$ = (var$1, var$2) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_deleteFile(var$1, var$2, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_readWholeFile$_asyncCall_$ = (var$1, var$2) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_readWholeFile(var$1, var$2, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_iterateFiles$_asyncCall_$ = (var$1, var$2, var$3, var$4, var$5) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_iterateFiles(var$1, var$2, var$3, var$4, var$5, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_deleteFiles$_asyncCall_$ = (var$1, var$2) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_deleteFiles(var$1, var$2, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_fileExists$_asyncCall_$ = (var$1, var$2) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_fileExists(var$1, var$2, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_writeWholeFile$_asyncCall_$ = (var$1, var$2, var$3) => {
    let thread = $rt_nativeThread();
    let javaThread = $rt_getThread();
    if (thread.isResuming()) {
        thread.status = 0;
        let result = thread.attribute;
        if (result instanceof Error) {
            throw result;
        }
        return result;
    }
    let callback = function() {
    };
    callback.$complete = val => {
        thread.attribute = val;
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback.$error = e => {
        thread.attribute = $rt_exception(e);
        $rt_setThread(javaThread);
        thread.resume();
    };
    callback = otpp_AsyncCallbackWrapper_create(callback);
    thread.suspend(() => {
        try {
            nles_VirtualFilesystem$AsyncHandlers_writeWholeFile(var$1, var$2, var$3, callback);
            ;
        } catch ($e){
            callback.$error($e);
        }
    });
    return null;
},
nles_VirtualFilesystem$AsyncHandlers_readRow$js_body$_5 = var$1 => {
    return typeof var$1 === 'undefined' ? null : typeof var$1.data === 'undefined' ? null : var$1.data;
},
nles_VirtualFilesystem$AsyncHandlers_makeTheFuckingKeyWork$js_body$_6 = var$1 => {
    return [var$1];
},
nles_VirtualFilesystem$AsyncHandlers_readKey$js_body$_9 = var$1 => {
    return typeof var$1 === "string" ? var$1 : typeof var$1 === "undefined" ? null : typeof var$1[0] === "string" ? var$1[0] : null;
},
nles_VirtualFilesystem$AsyncHandlers_writeRow$js_body$_17 = (var$1, var$2) => {
    return { path : var$1, data : var$2 };
};
function nles_VirtualFilesystem$DatabaseOpen() {
    let a = this; jl_Object.call(a);
    a.$failedInit = 0;
    a.$failedLocked = 0;
    a.$failedError = null;
    a.$database = null;
}
let ju_Dictionary = $rt_classWithoutFields();
function ju_Hashtable() {
    let a = this; ju_Dictionary.call(a);
    a.$elementCount1 = 0;
    a.$elementData1 = null;
    a.$loadFactor1 = 0.0;
    a.$threshold2 = 0;
    a.$firstSlot = 0;
    a.$lastSlot = 0;
    a.$modCount6 = 0;
}
let ju_Hashtable_EMPTY_ENUMERATION = null,
ju_Hashtable_EMPTY_ITERATOR = null,
ju_Hashtable__init_0 = $this => {
    ju_Hashtable__init_($this, 11);
},
ju_Hashtable__init_1 = () => {
    let var_0 = new ju_Hashtable();
    ju_Hashtable__init_0(var_0);
    return var_0;
},
ju_Hashtable__init_ = ($this, $capacity) => {
    let var$2, var$3, var$4;
    $this.$lastSlot = (-1);
    if ($capacity < 0) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $this.$elementCount1 = 0;
    if (!$capacity)
        $capacity = 1;
    var$3 = $rt_createArray(ju_Hashtable$Entry, $capacity);
    var$4 = var$3.data;
    $this.$elementData1 = var$3;
    $capacity = var$4.length;
    $this.$firstSlot = $capacity;
    $this.$loadFactor1 = 0.75;
    $this.$threshold2 = $capacity * 0.75 | 0;
},
ju_Hashtable__init_2 = var_0 => {
    let var_1 = new ju_Hashtable();
    ju_Hashtable__init_(var_1, var_0);
    return var_1;
},
ju_Hashtable_containsKey = ($this, $key) => {
    let var$2, var$3, var$4, var$5;
    jl_Object_monitorEnterSync($this);
    try {
        a: {
            if (!$key.$hashCode1) {
                var$2 = 0;
                while (true) {
                    if (var$2 >= $key.$nativeString.length)
                        break a;
                    $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt(var$2) | 0;
                    var$2 = var$2 + 1 | 0;
                }
            }
        }
        var$2 = $key.$hashCode1 & 2147483647;
        var$3 = $this.$elementData1.data;
        var$4 = var$3[var$2 % var$3.length | 0];
        b: {
            while (true) {
                if (var$4 === null) {
                    var$4 = null;
                    break b;
                }
                c: {
                    var$2 = var$4.$hashcode;
                    if (!$key.$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $key.$nativeString.length)
                                break c;
                            $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                if (var$2 == $key.$hashCode1 && var$4.$key.$equals($key) ? 1 : 0)
                    break;
                var$4 = var$4.$next7;
            }
        }
        return var$4 === null ? 0 : 1;
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
ju_Hashtable_get = ($this, $key) => {
    let $index, var$3, $entry, $hash;
    jl_Object_monitorEnterSync($this);
    try {
        a: {
            if (!$key.$hashCode1) {
                $index = 0;
                while (true) {
                    if ($index >= $key.$nativeString.length)
                        break a;
                    $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt($index) | 0;
                    $index = $index + 1 | 0;
                }
            }
        }
        $index = $key.$hashCode1 & 2147483647;
        var$3 = $this.$elementData1.data;
        $entry = var$3[$index % var$3.length | 0];
        while ($entry !== null) {
            b: {
                $index = $entry.$hashcode;
                if (!$key.$hashCode1) {
                    $hash = 0;
                    while (true) {
                        if ($hash >= $key.$nativeString.length)
                            break b;
                        $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt($hash) | 0;
                        $hash = $hash + 1 | 0;
                    }
                }
            }
            if ($index == $key.$hashCode1 && $entry.$key.$equals($key) ? 1 : 0)
                return $entry.$value0;
            $entry = $entry.$next7;
        }
        return null;
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
ju_Hashtable_put = ($this, $key, $value) => {
    let $hash, var$4, var$5, $index, $entry, var$8, $result;
    jl_Object_monitorEnterSync($this);
    try {
        if ($key !== null && $value !== null) {
            a: {
                if (!$key.$hashCode1) {
                    $hash = 0;
                    while (true) {
                        if ($hash >= $key.$nativeString.length)
                            break a;
                        $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt($hash) | 0;
                        $hash = $hash + 1 | 0;
                    }
                }
            }
            var$4 = $key.$hashCode1 & 2147483647;
            var$5 = $this.$elementData1.data;
            $index = var$4 % var$5.length | 0;
            $entry = var$5[$index];
            while ($entry !== null) {
                b: {
                    $hash = $entry.$hashcode;
                    if (!$key.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $key.$nativeString.length)
                                break b;
                            $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                if ($hash == $key.$hashCode1 && $entry.$key.$equals($key) ? 1 : 0)
                    break;
                $entry = $entry.$next7;
            }
            if ($entry !== null) {
                $result = $entry.$value0;
                $entry.$value0 = $value;
                return $result;
            }
            $this.$modCount6 = $this.$modCount6 + 1 | 0;
            $hash = $this.$elementCount1 + 1 | 0;
            $this.$elementCount1 = $hash;
            if ($hash > $this.$threshold2) {
                ju_Hashtable_rehash($this);
                $index = var$4 % $this.$elementData1.data.length | 0;
            }
            if ($index < $this.$firstSlot)
                $this.$firstSlot = $index;
            if ($index > $this.$lastSlot)
                $this.$lastSlot = $index;
            c: {
                $result = new ju_Hashtable$Entry;
                $result.$key = $key;
                $result.$value0 = $value;
                if (!$key.$hashCode1) {
                    $hash = 0;
                    while (true) {
                        if ($hash >= $key.$nativeString.length)
                            break c;
                        $key.$hashCode1 = (31 * $key.$hashCode1 | 0) + $key.$nativeString.charCodeAt($hash) | 0;
                        $hash = $hash + 1 | 0;
                    }
                }
            }
            $result.$hashcode = $key.$hashCode1;
            var$5 = $this.$elementData1.data;
            $result.$next7 = var$5[$index];
            var$5[$index] = $result;
            return null;
        }
        $key = new jl_NullPointerException;
        $key.$suppressionEnabled = 1;
        $key.$writableStackTrace = 1;
        $rt_throw($key);
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
ju_Hashtable_rehash = $this => {
    let $length, $newLast, $newData, var$4, $i, var$6, $entry, $index, $entry_0;
    $length = ($this.$elementData1.data.length << 1) + 1 | 0;
    if (!$length)
        $length = 1;
    $newLast = (-1);
    $newData = $rt_createArray(ju_Hashtable$Entry, $length);
    var$4 = $newData.data;
    $i = $this.$lastSlot + 1 | 0;
    var$6 = $length;
    while (true) {
        $i = $i + (-1) | 0;
        if ($i < $this.$firstSlot)
            break;
        $entry = $this.$elementData1.data[$i];
        while ($entry !== null) {
            $index = ($entry.$key.$hashCode() & 2147483647) % $length | 0;
            if ($index < var$6)
                var$6 = $index;
            if ($index > $newLast)
                $newLast = $index;
            $entry_0 = $entry.$next7;
            $entry.$next7 = var$4[$index];
            var$4[$index] = $entry;
            $entry = $entry_0;
        }
    }
    $this.$firstSlot = var$6;
    $this.$lastSlot = $newLast;
    $this.$elementData1 = $newData;
    $this.$threshold2 = var$4.length * $this.$loadFactor1 | 0;
},
ju_Hashtable__clinit_ = () => {
    ju_Hashtable_EMPTY_ENUMERATION = new ju_Hashtable$1;
    ju_Hashtable_EMPTY_ITERATOR = new ju_Hashtable$2;
};
function ju_Properties() {
    ju_Hashtable.call(this);
    this.$defaults = null;
}
let ju_Properties__init_ = $this => {
    ju_Hashtable__init_($this, 11);
},
ju_Properties__init_0 = () => {
    let var_0 = new ju_Properties();
    ju_Properties__init_(var_0);
    return var_0;
};
function nms_ItemStack() {
    let a = this; jl_Object.call(a);
    a.$stackSize = 0;
    a.$animationsToGo = 0;
    a.$itemID = 0;
    a.$stackTagCompound = null;
    a.$itemDamage = 0;
    a.$itemFrame = null;
}
let nms_ItemStack_field_111284_a = null,
nms_ItemStack_$callClinit = () => {
    nms_ItemStack_$callClinit = $rt_eraseClinit(nms_ItemStack);
    nms_ItemStack__clinit_();
},
nms_ItemStack__init_11 = ($this, $par1Block) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1Block.$blockID;
    $this.$stackSize = 1;
    $this.$itemDamage = 0;
},
nms_ItemStack__init_6 = var_0 => {
    let var_1 = new nms_ItemStack();
    nms_ItemStack__init_11(var_1, var_0);
    return var_1;
},
nms_ItemStack__init_13 = ($this, $par1Block, $par2) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1Block.$blockID;
    $this.$stackSize = $par2;
    $this.$itemDamage = 0;
},
nms_ItemStack__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemStack();
    nms_ItemStack__init_13(var_2, var_0, var_1);
    return var_2;
},
nms_ItemStack__init_9 = ($this, $par1Block, $par2, $par3) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1Block.$blockID;
    $this.$stackSize = $par2;
    $this.$itemDamage = $par3;
    if ($par3 < 0)
        $this.$itemDamage = 0;
},
nms_ItemStack__init_1 = (var_0, var_1, var_2) => {
    let var_3 = new nms_ItemStack();
    nms_ItemStack__init_9(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ItemStack__init_2 = ($this, $par1Item) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1Item.$itemID0;
    $this.$stackSize = 1;
    $this.$itemDamage = 0;
},
nms_ItemStack__init_8 = var_0 => {
    let var_1 = new nms_ItemStack();
    nms_ItemStack__init_2(var_1, var_0);
    return var_1;
},
nms_ItemStack__init_10 = ($this, $par1Item, $par2) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1Item.$itemID0;
    $this.$stackSize = $par2;
    $this.$itemDamage = 0;
},
nms_ItemStack__init_0 = (var_0, var_1) => {
    let var_2 = new nms_ItemStack();
    nms_ItemStack__init_10(var_2, var_0, var_1);
    return var_2;
},
nms_ItemStack__init_12 = ($this, $par1Item, $par2, $par3) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1Item.$itemID0;
    $this.$stackSize = $par2;
    $this.$itemDamage = $par3;
    if ($par3 < 0)
        $this.$itemDamage = 0;
},
nms_ItemStack__init_3 = (var_0, var_1, var_2) => {
    let var_3 = new nms_ItemStack();
    nms_ItemStack__init_12(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ItemStack__init_4 = ($this, $par1, $par2, $par3) => {
    nms_ItemStack_$callClinit();
    $this.$itemID = $par1;
    $this.$stackSize = $par2;
    $this.$itemDamage = $par3;
    if ($par3 < 0)
        $this.$itemDamage = 0;
},
nms_ItemStack__init_7 = (var_0, var_1, var_2) => {
    let var_3 = new nms_ItemStack();
    nms_ItemStack__init_4(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ItemStack_loadItemStackFromNBT = $par0NBTTagCompound => {
    let $var1;
    nms_ItemStack_$callClinit();
    $var1 = new nms_ItemStack;
    nms_ItemStack_readFromNBT($var1, $par0NBTTagCompound);
    nms_Item_$callClinit();
    if (nms_Item_itemsList.data[$var1.$itemID] === null)
        $var1 = null;
    return $var1;
},
nms_ItemStack__init_5 = $this => {
    nms_ItemStack_$callClinit();
},
nms_ItemStack__init_14 = () => {
    let var_0 = new nms_ItemStack();
    nms_ItemStack__init_5(var_0);
    return var_0;
},
nms_ItemStack_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(914).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(914).$nativeString.length)
                    break a;
                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(914).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(914) !== var$5) {
                    if ($rt_s(914) === var$5)
                        var$6 = 1;
                    else if (var$5 instanceof jl_String) {
                        var$5 = var$5;
                        var$6 = $rt_s(914).$nativeString !== var$5.$nativeString ? 0 : 1;
                    } else
                        var$6 = 0;
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(914) !== null) {
            c: {
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break c;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(914).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    d: {
                        var$5 = var$2.$key;
                        if ($rt_s(914) !== var$5) {
                            if ($rt_s(914) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$6 = $rt_s(914).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$6 = 0;
                            } else
                                var$6 = 1;
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data2;
    }
    e: {
        $this.$itemID = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(915).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(915).$nativeString.length)
                    break e;
                $rt_s(915).$hashCode1 = (31 * $rt_s(915).$hashCode1 | 0) + $rt_s(915).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(915).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            f: {
                var$5 = var$2.$key;
                if ($rt_s(915) !== var$5) {
                    if ($rt_s(915) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(915).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(915) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(915).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(915).$nativeString.length)
                            break g;
                        $rt_s(915).$hashCode1 = (31 * $rt_s(915).$hashCode1 | 0) + $rt_s(915).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(915).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    h: {
                        var$5 = var$2.$key;
                        if ($rt_s(915) !== var$5) {
                            if ($rt_s(915) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(915).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    i: {
        $this.$stackSize = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(916).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(916).$nativeString.length)
                    break i;
                $rt_s(916).$hashCode1 = (31 * $rt_s(916).$hashCode1 | 0) + $rt_s(916).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(916).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            j: {
                var$5 = var$2.$key;
                if ($rt_s(916) !== var$5) {
                    if ($rt_s(916) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(916).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(916) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(916).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(916).$nativeString.length)
                            break k;
                        $rt_s(916).$hashCode1 = (31 * $rt_s(916).$hashCode1 | 0) + $rt_s(916).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(916).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    l: {
                        var$5 = var$2.$key;
                        if ($rt_s(916) !== var$5) {
                            if ($rt_s(916) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(916).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data2;
    }
    $this.$itemDamage = var$3;
    if (var$3 < 0)
        $this.$itemDamage = 0;
    m: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(917).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(917).$nativeString.length)
                    break m;
                $rt_s(917).$hashCode1 = (31 * $rt_s(917).$hashCode1 | 0) + $rt_s(917).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(917).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            n: {
                var$5 = var$2.$key;
                if ($rt_s(917) !== var$5) {
                    if ($rt_s(917) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(917).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break n;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        o: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(917).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(917).$nativeString.length)
                        break o;
                    $rt_s(917).$hashCode1 = (31 * $rt_s(917).$hashCode1 | 0) + $rt_s(917).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(917).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                p: {
                    var$5 = var$2.$key;
                    if ($rt_s(917) !== var$5) {
                        if ($rt_s(917) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(917).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break p;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            $par1NBTTagCompound = new nms_NBTTagCompound;
            if ($rt_s(917) !== null)
                $par1NBTTagCompound.$name = $rt_s(917);
            else
                $par1NBTTagCompound.$name = $rt_s(3);
            var$8 = new ju_HashMap;
            var$3 = ju_HashMap_calculateCapacity(16);
            var$8.$elementCount = 0;
            var$9 = $rt_createArray(ju_HashMap$HashEntry, var$3);
            var$4 = var$9.data;
            var$8.$elementData = var$9;
            var$8.$loadFactor = 0.75;
            var$8.$threshold = var$4.length * 0.75 | 0;
            $par1NBTTagCompound.$tagMap = var$8;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(917) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                q: {
                    if (!$rt_s(917).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(917).$nativeString.length)
                                break q;
                            $rt_s(917).$hashCode1 = (31 * $rt_s(917).$hashCode1 | 0) + $rt_s(917).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(917).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$7) {
                        r: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(917) !== var$2) {
                                if ($rt_s(917) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(917).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break r;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        $this.$stackTagCompound = $par1NBTTagCompound;
    }
},
nms_ItemStack_setItemDamage = ($this, $par1) => {
    $this.$itemDamage = $par1;
    if ($par1 < 0)
        $this.$itemDamage = 0;
},
nms_ItemStack_getMaxDamage = $this => {
    nms_Item_$callClinit();
    return nms_Item_itemsList.data[$this.$itemID].$maxDamage;
},
nms_ItemStack_attemptDamageItem = ($this, $par1, $par2Random) => {
    let $var3, $var4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    nms_Item_$callClinit();
    if (!(nms_Item_itemsList.data[$this.$itemID].$maxDamage <= 0 ? 0 : 1))
        return 0;
    if ($par1 > 0) {
        nms_Enchantment_$callClinit();
        $var3 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_unbreaking.$effectId, $this);
        $var4 = 0;
        $var5 = 0;
        var$6 = $var3 + 1 | 0;
        var$7 = var$6 - 1 | 0;
        var$8 = var$6 & var$7;
        var$9 = Long_fromInt(var$6);
        while ($var3 > 0 && $var5 < $par1) {
            a: {
                if (nms_Item_itemsList.data[$this.$itemID] instanceof nms_ItemArmor) {
                    var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$10;
                    if (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 < 0.6000000238418579) {
                        var$11 = 0;
                        break a;
                    }
                }
                var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                if (!var$8)
                    var$12 = Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(var$11)), 31));
                else
                    while (true) {
                        var$12 = var$11 % var$6 | 0;
                        if (((var$11 - var$12 | 0) + var$7 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 17));
                    }
                var$11 = var$12 <= 0 ? 0 : 1;
            }
            if (var$11)
                $var4 = $var4 + 1 | 0;
            $var5 = $var5 + 1 | 0;
        }
        $par1 = $par1 - $var4 | 0;
        if ($par1 <= 0)
            return 0;
    }
    $par1 = $this.$itemDamage + $par1 | 0;
    $this.$itemDamage = $par1;
    return $par1 <= nms_Item_itemsList.data[$this.$itemID].$maxDamage ? 0 : 1;
},
nms_ItemStack_damageItem = ($this, $par1, $par2EntityLivingBase) => {
    let var$3, $var3, var$5, var$6, var$7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par2EntityLivingBase instanceof nms_EntityPlayer;
        if (!(var$3 && $par2EntityLivingBase.$capabilities.$isCreativeMode)) {
            nms_Item_$callClinit();
            if ((nms_Item_itemsList.data[$this.$itemID].$maxDamage <= 0 ? 0 : 1) && nms_ItemStack_attemptDamageItem($this, $par1, $par2EntityLivingBase.$rand)) {
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityLivingBase_renderBrokenItemStack($par2EntityLivingBase, $this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$stackSize = $this.$stackSize - 1 | 0;
        if (var$3) {
            $var3 = $par2EntityLivingBase;
            nms_StatList_$callClinit();
            $par2EntityLivingBase = nms_StatList_objectBreakStats.data[$this.$itemID];
            if ($par2EntityLivingBase !== null && !$par2EntityLivingBase.$isIndependent)
                a: {
                    var$5 = $var3.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$3 = $par2EntityLivingBase.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$3;
                    var$6.$amount = 1;
                    if (var$6 instanceof nms_Packet3Chat) {
                        $par2EntityLivingBase = var$6;
                        var$3 = var$5.$playerEntity.$chatVisibility;
                        if (var$3 == 2)
                            break a;
                        if (var$3 == 1 && !$par2EntityLivingBase.$isServer)
                            break a;
                    }
                    try {
                        $par2EntityLivingBase = var$5.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$5 = new otcic_JSStderrPrintStream;
                        $par2EntityLivingBase = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($par2EntityLivingBase);
                        $par2EntityLivingBase.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$5, $par2EntityLivingBase);
                        var$5.$sb = jl_StringBuilder__init_();
                        var$5.$buffer0 = $rt_createCharArray(32);
                        var$5.$autoFlush = 0;
                        var$5.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$5;
                    }
                    jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                }
            if (!$this.$stackSize && nms_Item_itemsList.data[$this.$itemID] instanceof nms_ItemBow) {
                $var3 = $var3.$inventory0;
                $par1 = $var3.$currentItem;
                $par2EntityLivingBase = null;
                var$7 = $var3.$mainInventory;
                var$3 = var$7.data.length;
                if ($par1 >= var$3) {
                    $par1 = $par1 - var$3 | 0;
                    var$7 = $var3.$armorInventory;
                }
                var$7.data[$par1] = $par2EntityLivingBase;
            }
        }
        if ($this.$stackSize < 0)
            $this.$stackSize = 0;
        $this.$itemDamage = 0;
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2EntityLivingBase, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$5 = new otcic_JSStderrPrintStream;
                $par2EntityLivingBase = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($par2EntityLivingBase);
                $par2EntityLivingBase.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$5, $par2EntityLivingBase);
                var$5.$sb = jl_StringBuilder__init_();
                var$5.$buffer0 = $rt_createCharArray(32);
                var$5.$autoFlush = 0;
                var$5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$5;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        if (!$this.$stackSize && nms_Item_itemsList.data[$this.$itemID] instanceof nms_ItemBow) {
            $var3 = $var3.$inventory0;
            $par1 = $var3.$currentItem;
            $par2EntityLivingBase = null;
            var$7 = $var3.$mainInventory;
            var$3 = var$7.data.length;
            if ($par1 >= var$3) {
                $par1 = $par1 - var$3 | 0;
                var$7 = $var3.$armorInventory;
            }
            var$7.data[$par1] = $par2EntityLivingBase;
        }
        if ($this.$stackSize < 0)
            $this.$stackSize = 0;
        $this.$itemDamage = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2EntityLivingBase, var$3, $var3, var$5, var$6, var$7, $ptr);
},
nms_ItemStack_func_111282_a = ($this, $par1EntityPlayer, $par2EntityLivingBase) => {
    nms_Item_$callClinit();
    return nms_Item_itemsList.data[$this.$itemID].$itemInteractionForEntity($this, $par1EntityPlayer, $par2EntityLivingBase);
},
nms_ItemStack_areItemStackTagsEqual = ($par0ItemStack, $par1ItemStack) => {
    let var$3, var$4;
    nms_ItemStack_$callClinit();
    a: {
        if ($par0ItemStack === null && $par1ItemStack === null)
            var$3 = 1;
        else if ($par0ItemStack !== null && $par1ItemStack !== null) {
            $par0ItemStack = $par0ItemStack.$stackTagCompound;
            if ($par0ItemStack === null && $par1ItemStack.$stackTagCompound !== null)
                var$3 = 0;
            else {
                if ($par0ItemStack !== null) {
                    $par1ItemStack = $par1ItemStack.$stackTagCompound;
                    if (!nms_NBTBase_equals($par0ItemStack, $par1ItemStack))
                        var$3 = 0;
                    else {
                        $par1ItemStack = $par1ItemStack;
                        $par0ItemStack = $par0ItemStack.$tagMap;
                        var$4 = new ju_HashMap$HashMapEntrySet;
                        var$4.$associatedMap0 = $par0ItemStack;
                        $par0ItemStack = $par1ItemStack.$tagMap;
                        $par1ItemStack = new ju_HashMap$HashMapEntrySet;
                        $par1ItemStack.$associatedMap0 = $par0ItemStack;
                        var$3 = ju_AbstractSet_equals(var$4, $par1ItemStack);
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break a;
                    }
                }
                var$3 = 1;
            }
        } else
            var$3 = 0;
    }
    return var$3;
},
nms_ItemStack_isItemStackEqual = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4;
    a: {
        if ($this.$stackSize != $par1ItemStack.$stackSize)
            var$2 = 0;
        else if ($this.$itemID != $par1ItemStack.$itemID)
            var$2 = 0;
        else if ($this.$itemDamage != $par1ItemStack.$itemDamage)
            var$2 = 0;
        else {
            var$3 = $this.$stackTagCompound;
            if (var$3 === null && $par1ItemStack.$stackTagCompound !== null)
                var$2 = 0;
            else {
                if (var$3 !== null) {
                    $par1ItemStack = $par1ItemStack.$stackTagCompound;
                    if (!nms_NBTBase_equals(var$3, $par1ItemStack))
                        var$2 = 0;
                    else {
                        $par1ItemStack = $par1ItemStack;
                        var$3 = var$3.$tagMap;
                        var$4 = new ju_HashMap$HashMapEntrySet;
                        var$4.$associatedMap0 = var$3;
                        $par1ItemStack = $par1ItemStack.$tagMap;
                        var$3 = new ju_HashMap$HashMapEntrySet;
                        var$3.$associatedMap0 = $par1ItemStack;
                        var$2 = ju_AbstractSet_equals(var$4, var$3);
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break a;
                    }
                }
                var$2 = 1;
            }
        }
    }
    return var$2;
},
nms_ItemStack_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$stackSize;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data[$this.$itemID].$getUnlocalizedName0();
    var$3 = $this.$itemDamage;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$1, 10);
    var$5 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$5, var$5 + 1 | 0);
    var$4.$buffer.data[var$5] = 120;
    var$1 = var$4.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$4, var$1, var$2);
    var$5 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$5, var$5 + 1 | 0);
    var$4.$buffer.data[var$5] = 64;
    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$3, 10);
    var$2 = new jl_String;
    var$6 = var$4.$buffer;
    var$7 = var$6.data;
    var$3 = var$4.$length0;
    var$5 = var$7.length;
    if (var$3 >= 0 && var$3 <= (var$5 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$3);
        return var$2;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_ItemStack_getTagCompound = $this => {
    return $this.$stackTagCompound;
},
nms_ItemStack_setItemName = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if ($this.$stackTagCompound === null) {
        var$2 = new nms_NBTTagCompound;
        var$2.$name = $rt_s(917);
        var$3 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$3.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$6 = var$5.data;
        var$3.$elementData = var$5;
        var$3.$loadFactor = 0.75;
        var$3.$threshold = var$6.length * 0.75 | 0;
        var$2.$tagMap = var$3;
        $this.$stackTagCompound = var$2;
    }
    a: {
        var$3 = $this.$stackTagCompound.$tagMap;
        if (!$rt_s(918).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(918).$nativeString.length)
                    break a;
                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(918).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$4 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$4) {
            b: {
                var$7 = var$3.$key;
                if ($rt_s(918) !== var$7) {
                    if ($rt_s(918) === var$7)
                        var$8 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$7 = var$7;
                        var$8 = $rt_s(918).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        var$8 = 0;
                        break b;
                    }
                }
                var$8 = 1;
            }
            if (var$8)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (!(var$3 === null ? 0 : 1)) {
        var$2 = $this.$stackTagCompound;
        var$7 = new nms_NBTTagCompound;
        var$7.$name = $rt_s(3);
        var$9 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$9.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$6 = var$5.data;
        var$9.$elementData = var$5;
        var$9.$loadFactor = 0.75;
        var$9.$threshold = var$6.length * 0.75 | 0;
        var$7.$tagMap = var$9;
        var$2 = var$2.$tagMap;
        var$7.$name = $rt_s(918);
        ju_HashMap_putImpl(var$2, $rt_s(918), var$7);
    }
    c: {
        var$2 = $this.$stackTagCompound;
        var$7 = var$2.$tagMap;
        if (!$rt_s(918).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(918).$nativeString.length)
                    break c;
                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(918).$hashCode1;
    var$6 = var$7.$elementData.data;
    var$7 = var$6[var$10 & (var$6.length - 1 | 0)];
    while (var$7 !== null) {
        if (var$7.$origKeyHash == var$10) {
            d: {
                var$9 = var$7.$key;
                if ($rt_s(918) !== var$9) {
                    if ($rt_s(918) === var$9)
                        var$4 = 1;
                    else if (!(var$9 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$9 = var$9;
                        var$4 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break d;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$7 = var$7.$next3;
    }
    if (!(var$7 === null ? 0 : 1)) {
        var$2 = new nms_NBTTagCompound;
        if ($rt_s(918) !== null)
            var$2.$name = $rt_s(918);
        else
            var$2.$name = $rt_s(3);
        var$3 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$3.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$6 = var$5.data;
        var$3.$elementData = var$5;
        var$3.$loadFactor = 0.75;
        var$3.$threshold = var$6.length * 0.75 | 0;
        var$2.$tagMap = var$3;
    } else {
        var$2 = var$2.$tagMap;
        if ($rt_s(918) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            e: {
                if (!$rt_s(918).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(918).$nativeString.length)
                            break e;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$10 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$10) {
                    f: {
                        var$7 = var$2.$key;
                        if ($rt_s(918) !== var$7) {
                            if ($rt_s(918) === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = $rt_s(918).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break f;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
    }
    var$7 = var$2.$tagMap;
    var$2 = new nms_NBTTagString;
    var$2.$name = $rt_s(919);
    var$2.$data1 = $par1Str;
    if ($par1Str !== null) {
        ju_HashMap_putImpl(var$7, $rt_s(919), var$2);
        return;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(177);
    $rt_throw(var$2);
},
nms_ItemStack_func_135074_t = $this => {
    let var$1, var$2, var$3, $var1, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$stackTagCompound;
    if (var$1 !== null) {
        a: {
            var$1 = var$1.$tagMap;
            if (!$rt_s(918).$hashCode1) {
                var$2 = 0;
                while (true) {
                    if (var$2 >= $rt_s(918).$nativeString.length)
                        break a;
                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$2) | 0;
                    var$2 = var$2 + 1 | 0;
                }
            }
        }
        var$2 = $rt_s(918).$hashCode1;
        var$3 = var$1.$elementData.data;
        var$1 = var$3[var$2 & (var$3.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$2) {
                b: {
                    $var1 = var$1.$key;
                    if ($rt_s(918) !== $var1) {
                        if ($rt_s(918) === $var1)
                            var$5 = 1;
                        else if (!($var1 instanceof jl_String))
                            var$5 = 0;
                        else {
                            $var1 = $var1;
                            var$5 = $rt_s(918).$nativeString !== $var1.$nativeString ? 0 : 1;
                        }
                        if (!var$5) {
                            var$5 = 0;
                            break b;
                        }
                    }
                    var$5 = 1;
                }
                if (var$5)
                    break;
            }
            var$1 = var$1.$next3;
        }
        if (var$1 === null ? 0 : 1) {
            c: {
                var$6 = $this.$stackTagCompound;
                $var1 = var$6.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= $rt_s(918).$nativeString.length)
                            break c;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$2 = $rt_s(918).$hashCode1;
            var$3 = $var1.$elementData.data;
            $var1 = var$3[var$2 & (var$3.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$2) {
                    d: {
                        var$7 = $var1.$key;
                        if ($rt_s(918) !== var$7) {
                            if ($rt_s(918) === var$7)
                                var$5 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$5 = 0;
                            else {
                                var$7 = var$7;
                                var$5 = $rt_s(918).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break d;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $var1 = $var1.$next3;
            }
            if (!($var1 === null ? 0 : 1)) {
                $var1 = new nms_NBTTagCompound;
                if ($rt_s(918) !== null)
                    $var1.$name = $rt_s(918);
                else
                    $var1.$name = $rt_s(3);
                var$6 = new ju_HashMap;
                var$2 = ju_HashMap_calculateCapacity(16);
                var$6.$elementCount = 0;
                var$8 = $rt_createArray(ju_HashMap$HashEntry, var$2);
                var$3 = var$8.data;
                var$6.$elementData = var$8;
                var$6.$loadFactor = 0.75;
                var$6.$threshold = var$3.length * 0.75 | 0;
                $var1.$tagMap = var$6;
            } else {
                var$6 = var$6.$tagMap;
                if ($rt_s(918) === null) {
                    var$6 = var$6.$elementData.data[0];
                    while (var$6 !== null && var$6.$key !== null) {
                        var$6 = var$6.$next3;
                    }
                } else {
                    e: {
                        if (!$rt_s(918).$hashCode1) {
                            var$2 = 0;
                            while (true) {
                                if (var$2 >= $rt_s(918).$nativeString.length)
                                    break e;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$2) | 0;
                                var$2 = var$2 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(918).$hashCode1;
                    var$3 = var$6.$elementData.data;
                    var$6 = var$3[var$9 & (var$3.length - 1 | 0)];
                    while (var$6 !== null) {
                        if (var$6.$origKeyHash == var$9) {
                            f: {
                                $var1 = var$6.$key;
                                if ($rt_s(918) !== $var1) {
                                    if ($rt_s(918) === $var1)
                                        var$2 = 1;
                                    else if (!($var1 instanceof jl_String))
                                        var$2 = 0;
                                    else {
                                        $var1 = $var1;
                                        var$2 = $rt_s(918).$nativeString !== $var1.$nativeString ? 0 : 1;
                                    }
                                    if (!var$2) {
                                        var$2 = 0;
                                        break f;
                                    }
                                }
                                var$2 = 1;
                            }
                            if (var$2)
                                break;
                        }
                        var$6 = var$6.$next3;
                    }
                }
                $var1 = var$6 === null ? null : var$6.$value0;
            }
            ju_HashMap_removeByKey($var1.$tagMap, $rt_s(919));
            if ($var1.$tagMap.$elementCount ? 0 : 1) {
                ju_HashMap_removeByKey($this.$stackTagCompound.$tagMap, $rt_s(918));
                if ($this.$stackTagCompound.$tagMap.$elementCount ? 0 : 1)
                    $this.$stackTagCompound = null;
            }
        }
    }
},
nms_ItemStack_addEnchantment = ($this, $par1Enchantment, $par2) => {
    let $var3, $var4, var$5, var$6, var$7, var$8, var$9, var$10;
    if ($this.$stackTagCompound === null) {
        $var3 = new nms_NBTTagCompound;
        $var3.$name = $rt_s(3);
        $var4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        $var4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        $var4.$elementData = var$6;
        $var4.$loadFactor = 0.75;
        $var4.$threshold = var$7.length * 0.75 | 0;
        $var3.$tagMap = $var4;
        $this.$stackTagCompound = $var3;
    }
    a: {
        $var4 = $this.$stackTagCompound.$tagMap;
        if (!$rt_s(920).$hashCode1) {
            var$5 = 0;
            while (true) {
                if (var$5 >= $rt_s(920).$nativeString.length)
                    break a;
                $rt_s(920).$hashCode1 = (31 * $rt_s(920).$hashCode1 | 0) + $rt_s(920).$nativeString.charCodeAt(var$5) | 0;
                var$5 = var$5 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(920).$hashCode1;
    var$7 = $var4.$elementData.data;
    $var4 = var$7[var$8 & (var$7.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == var$8) {
            b: {
                var$9 = $var4.$key;
                if ($rt_s(920) !== var$9) {
                    if ($rt_s(920) === var$9)
                        var$5 = 1;
                    else if (!(var$9 instanceof jl_String))
                        var$5 = 0;
                    else {
                        var$9 = var$9;
                        var$5 = $rt_s(920).$nativeString !== var$9.$nativeString ? 0 : 1;
                    }
                    if (!var$5) {
                        var$5 = 0;
                        break b;
                    }
                }
                var$5 = 1;
            }
            if (var$5)
                break;
        }
        $var4 = $var4.$next3;
    }
    if (!($var4 === null ? 0 : 1)) {
        $var4 = $this.$stackTagCompound;
        var$10 = new nms_NBTTagList;
        var$10.$name = $rt_s(920);
        $var3 = new ju_ArrayList;
        $var3.$array = $rt_createArray(jl_Object, 10);
        var$10.$tagList = $var3;
        $var3 = $var4.$tagMap;
        var$10.$name = $rt_s(920);
        ju_HashMap_putImpl($var3, $rt_s(920), var$10);
    }
    c: {
        $var4 = $this.$stackTagCompound.$tagMap;
        if (!$rt_s(920).$hashCode1) {
            var$5 = 0;
            while (true) {
                if (var$5 >= $rt_s(920).$nativeString.length)
                    break c;
                $rt_s(920).$hashCode1 = (31 * $rt_s(920).$hashCode1 | 0) + $rt_s(920).$nativeString.charCodeAt(var$5) | 0;
                var$5 = var$5 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(920).$hashCode1;
    var$7 = $var4.$elementData.data;
    $var4 = var$7[var$8 & (var$7.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == var$8) {
            d: {
                var$9 = $var4.$key;
                if ($rt_s(920) !== var$9) {
                    if ($rt_s(920) === var$9)
                        var$5 = 1;
                    else if (!(var$9 instanceof jl_String))
                        var$5 = 0;
                    else {
                        var$9 = var$9;
                        var$5 = $rt_s(920).$nativeString !== var$9.$nativeString ? 0 : 1;
                    }
                    if (!var$5) {
                        var$5 = 0;
                        break d;
                    }
                }
                var$5 = 1;
            }
            if (var$5)
                break;
        }
        $var4 = $var4.$next3;
    }
    $var3 = $var4 === null ? null : $var4.$value0;
    $var4 = new nms_NBTTagCompound;
    $var4.$name = $rt_s(3);
    var$9 = new ju_HashMap;
    var$5 = ju_HashMap_calculateCapacity(16);
    var$9.$elementCount = 0;
    var$7 = $rt_createArray(ju_HashMap$HashEntry, var$5);
    var$6 = var$7.data;
    var$9.$elementData = var$7;
    var$9.$loadFactor = 0.75;
    var$9.$threshold = var$6.length * 0.75 | 0;
    $var4.$tagMap = var$9;
    var$5 = $par1Enchantment.$effectId << 16 >> 16;
    $par1Enchantment = new nms_NBTTagShort;
    $par1Enchantment.$name = $rt_s(914);
    $par1Enchantment.$data2 = var$5;
    ju_HashMap_putImpl(var$9, $rt_s(914), $par1Enchantment);
    $par2 = $par2 << 24 >> 24 << 16 >> 16;
    var$10 = $var4.$tagMap;
    var$9 = new nms_NBTTagShort;
    var$9.$name = $rt_s(921);
    var$9.$data2 = $par2;
    ju_HashMap_putImpl(var$10, $rt_s(921), var$9);
    $var3.$tagType = 10;
    $par1Enchantment = $var3.$tagList;
    ju_ArrayList_ensureCapacity($par1Enchantment, $par1Enchantment.$size0 + 1 | 0);
    var$7 = $par1Enchantment.$array.data;
    var$5 = $par1Enchantment.$size0;
    $par1Enchantment.$size0 = var$5 + 1 | 0;
    var$7[var$5] = $var4;
    $par1Enchantment.$modCount = $par1Enchantment.$modCount + 1 | 0;
},
nms_ItemStack_setTagInfo = ($this, $par1Str, $par2NBTBase) => {
    let var$3, var$4, var$5, var$6, var$7;
    if ($this.$stackTagCompound === null) {
        var$3 = new nms_NBTTagCompound;
        var$3.$name = $rt_s(3);
        var$4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$tagMap = var$4;
        $this.$stackTagCompound = var$3;
    }
    var$3 = $this.$stackTagCompound.$tagMap;
    if ($par1Str !== null)
        $par2NBTBase.$name = $par1Str;
    else
        $par2NBTBase.$name = $rt_s(3);
    ju_HashMap_putImpl(var$3, $par1Str, $par2NBTBase);
},
nms_ItemStack__clinit_ = () => {
    let var$1, var$2;
    var$1 = new jt_DecimalFormat;
    var$2 = new jt_DecimalFormatSymbols;
    ju_Locale_$callClinit();
    var$2.$locale1 = ju_Locale_defaultLocale;
    jt_DecimalFormatSymbols_initData(var$2);
    jt_DecimalFormat__init_(var$1, $rt_s(922), var$2);
    nms_ItemStack_field_111284_a = var$1;
};
function cjj_ZStream() {
    let a = this; jl_Object.call(a);
    a.$next_in = null;
    a.$next_in_index = 0;
    a.$avail_in = 0;
    a.$total_in = Long_ZERO;
    a.$next_out = null;
    a.$next_out_index = 0;
    a.$avail_out = 0;
    a.$total_out = Long_ZERO;
    a.$msg = null;
    a.$dstate = null;
    a.$istate = null;
    a.$data_type0 = 0;
    a.$adler = null;
}
let cjj_ZStream__init_0 = $this => {
    let var$1;
    var$1 = new cjj_Adler32;
    var$1.$s1 = Long_fromInt(1);
    var$1.$s2 = Long_ZERO;
    $this.$adler = var$1;
},
cjj_ZStream__init_2 = () => {
    let var_0 = new cjj_ZStream();
    cjj_ZStream__init_0(var_0);
    return var_0;
},
cjj_ZStream__init_ = ($this, $adler) => {
    $this.$adler = $adler;
},
cjj_ZStream__init_1 = var_0 => {
    let var_1 = new cjj_ZStream();
    cjj_ZStream__init_(var_1, var_0);
    return var_1;
},
cjj_ZStream_flush_pending = $this => {
    let var$1, $len, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$dstate;
    $len = var$1.$pending;
    var$3 = $this.$avail_out;
    if ($len <= var$3)
        var$3 = $len;
    if (!var$3)
        return;
    var$4 = var$1.$pending_buf;
    var$5 = var$4.data.length;
    var$6 = var$1.$pending_out;
    if (var$5 > var$6) {
        $len = $this.$next_out.data.length;
        var$7 = $this.$next_out_index;
        $len > var$7 && var$5 >= (var$6 + var$3 | 0) && $len >= (var$7 + var$3 | 0);
    }
    jl_System_fastArraycopy(var$4, var$6, $this.$next_out, $this.$next_out_index, var$3);
    $this.$next_out_index = $this.$next_out_index + var$3 | 0;
    var$1 = $this.$dstate;
    var$1.$pending_out = var$1.$pending_out + var$3 | 0;
    $this.$total_out = Long_add($this.$total_out, Long_fromInt(var$3));
    $this.$avail_out = $this.$avail_out - var$3 | 0;
    $len = var$1.$pending - var$3 | 0;
    var$1.$pending = $len;
    if (!$len)
        var$1.$pending_out = 0;
},
cjj_ZStream_read_buf = ($this, $buf, $start, $size) => {
    let $len;
    $len = $this.$avail_in;
    if ($len <= $size)
        $size = $len;
    if (!$size)
        return 0;
    $this.$avail_in = $len - $size | 0;
    if ($this.$dstate.$wrap2)
        $this.$adler.$update0($this.$next_in, $this.$next_in_index, $size);
    jl_System_fastArraycopy($this.$next_in, $this.$next_in_index, $buf, $start, $size);
    $this.$next_in_index = $this.$next_in_index + $size | 0;
    $this.$total_in = Long_add($this.$total_in, Long_fromInt($size));
    return $size;
},
cjj_ZStream_setInput = ($this, $buf, $off, $len, $append) => {
    let var$5, $tmp_0;
    if ($len <= 0 && $append && $this.$next_in !== null)
        return;
    var$5 = $this.$avail_in;
    if (var$5 > 0 && $append) {
        $tmp_0 = $rt_createByteArray(var$5 + $len | 0);
        jl_System_fastArraycopy($this.$next_in, $this.$next_in_index, $tmp_0, 0, var$5);
        jl_System_fastArraycopy($buf, $off, $tmp_0, $this.$avail_in, $len);
        $this.$next_in = $tmp_0;
        $this.$next_in_index = 0;
        $this.$avail_in = $this.$avail_in + $len | 0;
    } else {
        $this.$next_in = $buf;
        $this.$next_in_index = $off;
        $this.$avail_in = $len;
    }
};
function cjj_Inflater() {
    cjj_ZStream.call(this);
    this.$finished0 = 0;
}
let cjj_Inflater__init_0 = $this => {
    let var$1;
    var$1 = new cjj_Adler32;
    var$1.$s1 = Long_fromInt(1);
    var$1.$s2 = Long_ZERO;
    $this.$adler = var$1;
    $this.$finished0 = 0;
    $this.$finished0 = 0;
    var$1 = new cjj_Inflate;
    var$1.$was = Long_fromInt(-1);
    var$1.$need_bytes = (-1);
    var$1.$crcbuf = $rt_createByteArray(4);
    var$1.$gheader = null;
    var$1.$tmp_string = null;
    var$1.$z0 = $this;
    $this.$istate = var$1;
    cjj_Inflate_inflateInit(var$1, 15);
},
cjj_Inflater__init_2 = () => {
    let var_0 = new cjj_Inflater();
    cjj_Inflater__init_0(var_0);
    return var_0;
},
cjj_Inflater__init_1 = ($this, $nowrap) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = 15;
    var$3 = new cjj_Adler32;
    var$3.$s1 = Long_fromInt(1);
    var$3.$s2 = Long_ZERO;
    $this.$adler = var$3;
    $this.$finished0 = 0;
    $this.$finished0 = 0;
    var$3 = new cjj_Inflate;
    var$3.$was = Long_fromInt(-1);
    var$3.$need_bytes = (-1);
    var$3.$crcbuf = $rt_createByteArray(4);
    var$3.$gheader = null;
    var$3.$tmp_string = null;
    var$3.$z0 = $this;
    $this.$istate = var$3;
    if ($nowrap)
        var$2 = (-15);
    var$4 = cjj_Inflate_inflateInit(var$3, var$2);
    if (!var$4)
        return;
    var$3 = new cjj_GZIPException;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$4, 10);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(102));
    var$6 = $this.$msg;
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$6);
    var$6 = new jl_String;
    var$7 = var$5.$buffer;
    var$8 = var$7.data;
    var$2 = var$5.$length0;
    var$4 = var$8.length;
    if (var$2 >= 0 && var$2 <= (var$4 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$2);
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = var$6;
        $rt_throw(var$3);
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
cjj_Inflater__init_ = var_0 => {
    let var_1 = new cjj_Inflater();
    cjj_Inflater__init_1(var_1, var_0);
    return var_1;
};
function nles_GeneralDigest() {
    let a = this; jl_Object.call(a);
    a.$xBuf = null;
    a.$xBufOff = 0;
    a.$byteCount = Long_ZERO;
}
let nles_GeneralDigest_update = ($this, $in) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$xBuf;
    var$3 = var$2.data;
    var$4 = $this.$xBufOff;
    var$5 = var$4 + 1 | 0;
    $this.$xBufOff = var$5;
    var$3[var$4] = $in;
    if (var$5 == var$3.length) {
        nles_SHA1Digest_processWord($this, var$2, 0);
        $this.$xBufOff = 0;
    }
    $this.$byteCount = Long_add($this.$byteCount, Long_fromInt(1));
},
nles_GeneralDigest_update0 = ($this, $in, $inOff, $len) => {
    let var$4;
    a: {
        while ($this.$xBufOff) {
            if ($len <= 0)
                break a;
            nles_GeneralDigest_update($this, $in.data[$inOff]);
            $inOff = $inOff + 1 | 0;
            $len = $len + (-1) | 0;
        }
    }
    while ($len > $this.$xBuf.data.length) {
        nles_SHA1Digest_processWord($this, $in, $inOff);
        var$4 = $this.$xBuf.data.length;
        $inOff = $inOff + var$4 | 0;
        $len = $len - var$4 | 0;
        $this.$byteCount = Long_add($this.$byteCount, Long_fromInt(var$4));
    }
    while ($len > 0) {
        nles_GeneralDigest_update($this, $in.data[$inOff]);
        $inOff = $inOff + 1 | 0;
        $len = $len + (-1) | 0;
    }
};
function nles_SHA1Digest() {
    let a = this; nles_GeneralDigest.call(a);
    a.$H1 = 0;
    a.$H2 = 0;
    a.$H3 = 0;
    a.$H4 = 0;
    a.$H5 = 0;
    a.$X = null;
    a.$xOff = 0;
}
let nles_SHA1Digest__init_ = $this => {
    $this.$xBuf = $rt_createByteArray(4);
    $this.$xBufOff = 0;
    $this.$X = $rt_createIntArray(80);
    nles_SHA1Digest_reset($this);
},
nles_SHA1Digest__init_0 = () => {
    let var_0 = new nles_SHA1Digest();
    nles_SHA1Digest__init_(var_0);
    return var_0;
},
nles_SHA1Digest_processWord = ($this, $in, $inOff) => {
    let var$3, var$4, var$5;
    var$3 = $in.data;
    $in = $this.$X.data;
    var$4 = $this.$xOff;
    var$5 = var$4 + 1 | 0;
    $this.$xOff = var$5;
    $in[var$4] = (var$3[$inOff] & 255) << 24 | (var$3[$inOff + 1 | 0] & 255) << 16 | (var$3[$inOff + 2 | 0] & 255) << 8 | var$3[$inOff + 3 | 0] & 255;
    if (var$5 == 16)
        nles_SHA1Digest_processBlock($this);
},
nles_SHA1Digest_unpackWord = ($this, $word, $out, $outOff) => {
    $out = $out.data;
    $out[$outOff] = ($word >>> 24 | 0) << 24 >> 24;
    $out[$outOff + 1 | 0] = ($word >>> 16 | 0) << 24 >> 24;
    $out[$outOff + 2 | 0] = ($word >>> 8 | 0) << 24 >> 24;
    $out[$outOff + 3 | 0] = $word << 24 >> 24;
},
nles_SHA1Digest_doFinal = ($this, $out, $outOff) => {
    let var$3, var$4;
    var$3 = Long_shl($this.$byteCount, 3);
    nles_GeneralDigest_update($this, (-128));
    while ($this.$xBufOff) {
        nles_GeneralDigest_update($this, 0);
    }
    if ($this.$xOff > 14)
        nles_SHA1Digest_processBlock($this);
    var$4 = $this.$X.data;
    var$4[14] = Long_hi(var$3);
    var$4[15] = Long_lo(Long_and(var$3, Long_fromInt(-1)));
    nles_SHA1Digest_processBlock($this);
    nles_SHA1Digest_unpackWord($this, $this.$H1, $out, $outOff);
    nles_SHA1Digest_unpackWord($this, $this.$H2, $out, $outOff + 4 | 0);
    nles_SHA1Digest_unpackWord($this, $this.$H3, $out, $outOff + 8 | 0);
    nles_SHA1Digest_unpackWord($this, $this.$H4, $out, $outOff + 12 | 0);
    nles_SHA1Digest_unpackWord($this, $this.$H5, $out, $outOff + 16 | 0);
    nles_SHA1Digest_reset($this);
    return 20;
},
nles_SHA1Digest_reset = $this => {
    let $i, var$2;
    $this.$byteCount = Long_ZERO;
    $this.$xBufOff = 0;
    $i = 0;
    while (true) {
        var$2 = $this.$xBuf.data;
        if ($i >= var$2.length)
            break;
        var$2[$i] = 0;
        $i = $i + 1 | 0;
    }
    $this.$H1 = 1732584193;
    $this.$H2 = (-271733879);
    $this.$H3 = (-1732584194);
    $this.$H4 = 271733878;
    $this.$H5 = (-1009589776);
    $this.$xOff = 0;
    $i = 0;
    while (true) {
        var$2 = $this.$X.data;
        if ($i == var$2.length)
            break;
        var$2[$i] = 0;
        $i = $i + 1 | 0;
    }
},
nles_SHA1Digest_processBlock = $this => {
    let $i, var$2, $A, $B, $C, $D, $E, $j, var$9, var$10, var$11, var$12, var$13, $t, $j_0;
    $i = 16;
    while ($i <= 79) {
        var$2 = $this.$X.data;
        $A = var$2[$i - 3 | 0] ^ var$2[$i - 8 | 0] ^ var$2[$i - 14 | 0] ^ var$2[$i - 16 | 0];
        var$2[$i] = $A << 1 | ($A >>> 31 | 0);
        $i = $i + 1 | 0;
    }
    $A = $this.$H1;
    $B = $this.$H2;
    $C = $this.$H3;
    $D = $this.$H4;
    $E = $this.$H5;
    $j = 0;
    var$9 = $E;
    var$10 = $D;
    var$11 = $C;
    var$12 = $B;
    var$13 = $A;
    while ($j <= 19) {
        $t = ((((var$13 << 5 | (var$13 >>> 27 | 0)) + (var$12 & var$11 | (var$12 ^ (-1)) & var$10) | 0) + var$9 | 0) + $this.$X.data[$j] | 0) + 1518500249 | 0;
        $j_0 = var$12 << 30 | (var$12 >>> 2 | 0);
        $j = $j + 1 | 0;
        var$9 = var$10;
        var$10 = var$11;
        var$11 = $j_0;
        var$12 = var$13;
        var$13 = $t;
    }
    $j = 20;
    while ($j <= 39) {
        $t = ((((var$13 << 5 | (var$13 >>> 27 | 0)) + (var$12 ^ var$11 ^ var$10) | 0) + var$9 | 0) + $this.$X.data[$j] | 0) + 1859775393 | 0;
        $i = var$12 << 30 | (var$12 >>> 2 | 0);
        $j = $j + 1 | 0;
        var$9 = var$10;
        var$10 = var$11;
        var$11 = $i;
        var$12 = var$13;
        var$13 = $t;
    }
    $j = 40;
    while ($j <= 59) {
        $t = ((((var$13 << 5 | (var$13 >>> 27 | 0)) + (var$12 & var$11 | var$12 & var$10 | var$11 & var$10) | 0) + var$9 | 0) + $this.$X.data[$j] | 0) + (-1894007588) | 0;
        $i = var$12 << 30 | (var$12 >>> 2 | 0);
        $j = $j + 1 | 0;
        var$9 = var$10;
        var$10 = var$11;
        var$11 = $i;
        var$12 = var$13;
        var$13 = $t;
    }
    $j_0 = 60;
    while ($j_0 <= 79) {
        $t = ((((var$13 << 5 | (var$13 >>> 27 | 0)) + (var$12 ^ var$11 ^ var$10) | 0) + var$9 | 0) + $this.$X.data[$j_0] | 0) + (-899497514) | 0;
        $j = var$12 << 30 | (var$12 >>> 2 | 0);
        $j_0 = $j_0 + 1 | 0;
        var$9 = var$10;
        var$10 = var$11;
        var$11 = $j;
        var$12 = var$13;
        var$13 = $t;
    }
    $this.$H1 = $A + var$13 | 0;
    $this.$H2 = $B + var$12 | 0;
    $this.$H3 = $C + var$11 | 0;
    $this.$H4 = $D + var$10 | 0;
    $this.$H5 = $E + var$9 | 0;
    $this.$xOff = 0;
    $i = 0;
    while (true) {
        var$2 = $this.$X.data;
        if ($i == var$2.length)
            break;
        var$2[$i] = 0;
        $i = $i + 1 | 0;
    }
},
cjj_GZIPException = $rt_classWithoutFields(ji_IOException),
cjj_GZIPException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
cjj_GZIPException__init_0 = () => {
    let var_0 = new cjj_GZIPException();
    cjj_GZIPException__init_(var_0);
    return var_0;
},
ji_EOFException = $rt_classWithoutFields(ji_IOException),
ji_EOFException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ji_EOFException__init_0 = () => {
    let var_0 = new ji_EOFException();
    ji_EOFException__init_(var_0);
    return var_0;
},
jl_Math = $rt_classWithoutFields(),
jl_Math__init_ = $this => {
    return;
},
jl_Math__init_0 = () => {
    let var_0 = new jl_Math();
    jl_Math__init_(var_0);
    return var_0;
},
jl_Math_sin = var$1 => {
    return Math.sin(var$1);
},
jl_Math_cos = var$1 => {
    return Math.cos(var$1);
},
jl_Math_atan = var$1 => {
    return Math.atan(var$1);
},
jl_Math_log = var$1 => {
    return Math.log(var$1);
},
jl_Math_sqrt = var$1 => {
    return Math.sqrt(var$1);
},
jl_Math_ceil = var$1 => {
    return Math.ceil(var$1);
},
jl_Math_powImpl = (var$1, var$2) => {
    return Math.pow(var$1, var$2);
},
jl_Math_atan2 = (var$1, var$2) => {
    return Math.atan2(var$1, var$2);
},
jl_Math_randomImpl = () => {
    return Math.random();
},
jl_Math_min = (var$1, var$2) => {
    if (var$1 < var$2)
        var$2 = var$1;
    return var$2;
},
jl_Math_max = ($a, $b) => {
    if ($a > $b)
        $b = $a;
    return $b;
},
jl_Math_minImpl0 = (var$1, var$2) => {
    return Math.min(var$1, var$2);
},
jl_Math_maxImpl0 = (var$1, var$2) => {
    return Math.max(var$1, var$2);
},
jl_Math_minImpl = (var$1, var$2) => {
    return Math.min(var$1, var$2);
},
jl_Math_maxImpl = (var$1, var$2) => {
    return Math.max(var$1, var$2);
},
jl_Math_absImpl0 = var$1 => {
    return Math.abs(var$1);
},
jl_Math_absImpl = var$1 => {
    return Math.abs(var$1);
},
jl_Math_abs = var$1 => {
    return jl_Math_absImpl(var$1);
},
jl_Math_sign = var$1 => {
    return Math.sign(var$1);
},
jl_Math_sign0 = var$1 => {
    return Math.sign(var$1);
};
function ju_Locale() {
    let a = this; jl_Object.call(a);
    a.$countryCode = null;
    a.$languageCode = null;
    a.$variantCode = null;
}
let ju_Locale_defaultLocale = null,
ju_Locale_CANADA = null,
ju_Locale_CANADA_FRENCH = null,
ju_Locale_CHINA = null,
ju_Locale_CHINESE = null,
ju_Locale_ENGLISH = null,
ju_Locale_FRANCE = null,
ju_Locale_FRENCH = null,
ju_Locale_GERMAN = null,
ju_Locale_GERMANY = null,
ju_Locale_ITALIAN = null,
ju_Locale_ITALY = null,
ju_Locale_JAPAN = null,
ju_Locale_JAPANESE = null,
ju_Locale_KOREA = null,
ju_Locale_KOREAN = null,
ju_Locale_PRC = null,
ju_Locale_SIMPLIFIED_CHINESE = null,
ju_Locale_TAIWAN = null,
ju_Locale_TRADITIONAL_CHINESE = null,
ju_Locale_UK = null,
ju_Locale_US = null,
ju_Locale_ROOT = null,
ju_Locale_$callClinit = () => {
    ju_Locale_$callClinit = $rt_eraseClinit(ju_Locale);
    ju_Locale__clinit_();
},
ju_Locale__init_0 = ($this, var$1, $country, $variant) => {
    let var$4;
    ju_Locale_$callClinit();
    if (var$1 !== null && $country !== null && $variant !== null) {
        var$4 = var$1.$nativeString.length ? 0 : 1;
        if (var$4 && ($country.$nativeString.length ? 0 : 1)) {
            $this.$languageCode = $rt_s(3);
            $this.$countryCode = $rt_s(3);
            $this.$variantCode = $variant;
            return;
        }
        $this.$languageCode = var$1;
        $this.$countryCode = $country;
        $this.$variantCode = $variant;
        return;
    }
    var$1 = new jl_NullPointerException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
ju_Locale__init_ = (var_0, var_1, var_2) => {
    let var_3 = new ju_Locale();
    ju_Locale__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
ju_Locale_equals = ($this, $object) => {
    let $o, var$3, var$4;
    if ($object === $this)
        return 1;
    if (!($object instanceof ju_Locale))
        return 0;
    $o = $object;
    $object = $this.$languageCode;
    var$3 = $o.$languageCode;
    if ($object === var$3)
        var$4 = 1;
    else if (!(var$3 instanceof jl_String))
        var$4 = 0;
    else {
        var$3 = var$3;
        var$4 = $object.$nativeString !== var$3.$nativeString ? 0 : 1;
    }
    a: {
        if (var$4) {
            $object = $this.$countryCode;
            var$3 = $o.$countryCode;
            if ($object === var$3)
                var$4 = 1;
            else if (!(var$3 instanceof jl_String))
                var$4 = 0;
            else {
                var$3 = var$3;
                var$4 = $object.$nativeString !== var$3.$nativeString ? 0 : 1;
            }
            if (var$4) {
                $object = $this.$variantCode;
                $o = $o.$variantCode;
                if ($object === $o)
                    var$4 = 1;
                else if (!($o instanceof jl_String))
                    var$4 = 0;
                else {
                    $o = $o;
                    var$4 = $object.$nativeString !== $o.$nativeString ? 0 : 1;
                }
                if (var$4) {
                    var$4 = 1;
                    break a;
                }
            }
        }
        var$4 = 0;
    }
    return var$4;
},
ju_Locale_hashCode = $this => {
    let var$1, var$2, var$3, var$4;
    a: {
        var$1 = $this.$countryCode;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    b: {
        var$3 = var$1.$hashCode1;
        var$1 = $this.$languageCode;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break b;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    c: {
        var$2 = var$3 + var$1.$hashCode1 | 0;
        var$1 = $this.$variantCode;
        if (!var$1.$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= var$1.$nativeString.length)
                    break c;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    return var$2 + var$1.$hashCode1 | 0;
},
ju_Locale__clinit_ = () => {
    let $localeName, $countryIndex;
    $localeName = new ju_Locale;
    ju_Locale_$callClinit();
    ju_Locale__init_0($localeName, $rt_s(923), $rt_s(924), $rt_s(3));
    ju_Locale_CANADA = $localeName;
    ju_Locale_CANADA_FRENCH = ju_Locale__init_($rt_s(925), $rt_s(924), $rt_s(3));
    ju_Locale_CHINA = ju_Locale__init_($rt_s(926), $rt_s(927), $rt_s(3));
    ju_Locale_CHINESE = ju_Locale__init_($rt_s(926), $rt_s(3), $rt_s(3));
    ju_Locale_ENGLISH = ju_Locale__init_($rt_s(923), $rt_s(3), $rt_s(3));
    ju_Locale_FRANCE = ju_Locale__init_($rt_s(925), $rt_s(928), $rt_s(3));
    ju_Locale_FRENCH = ju_Locale__init_($rt_s(925), $rt_s(3), $rt_s(3));
    ju_Locale_GERMAN = ju_Locale__init_($rt_s(929), $rt_s(3), $rt_s(3));
    ju_Locale_GERMANY = ju_Locale__init_($rt_s(929), $rt_s(930), $rt_s(3));
    ju_Locale_ITALIAN = ju_Locale__init_($rt_s(931), $rt_s(3), $rt_s(3));
    ju_Locale_ITALY = ju_Locale__init_($rt_s(931), $rt_s(932), $rt_s(3));
    ju_Locale_JAPAN = ju_Locale__init_($rt_s(933), $rt_s(934), $rt_s(3));
    ju_Locale_JAPANESE = ju_Locale__init_($rt_s(933), $rt_s(3), $rt_s(3));
    ju_Locale_KOREA = ju_Locale__init_($rt_s(935), $rt_s(936), $rt_s(3));
    ju_Locale_KOREAN = ju_Locale__init_($rt_s(935), $rt_s(3), $rt_s(3));
    ju_Locale_PRC = ju_Locale__init_($rt_s(926), $rt_s(927), $rt_s(3));
    ju_Locale_SIMPLIFIED_CHINESE = ju_Locale__init_($rt_s(926), $rt_s(927), $rt_s(3));
    ju_Locale_TAIWAN = ju_Locale__init_($rt_s(926), $rt_s(937), $rt_s(3));
    ju_Locale_TRADITIONAL_CHINESE = ju_Locale__init_($rt_s(926), $rt_s(937), $rt_s(3));
    ju_Locale_UK = ju_Locale__init_($rt_s(923), $rt_s(938), $rt_s(3));
    ju_Locale_US = ju_Locale__init_($rt_s(923), $rt_s(939), $rt_s(3));
    ju_Locale_ROOT = ju_Locale__init_($rt_s(3), $rt_s(3), $rt_s(3));
    if (otciu_CLDRHelper_$$metadata$$10 === null)
        otciu_CLDRHelper_$$metadata$$10 = otciu_CLDRHelper_getDefaultLocale$$create();
    $localeName = (otciu_CLDRHelper_$$metadata$$10.value !== null ? $rt_str(otciu_CLDRHelper_$$metadata$$10.value) : null);
    $countryIndex = jl_String_indexOf($localeName, 95, 0);
    ju_Locale_defaultLocale = ju_Locale__init_(jl_String_substring($localeName, 0, $countryIndex), jl_String_substring($localeName, $countryIndex + 1 | 0, $localeName.$nativeString.length), $rt_s(3));
},
jl_StringBuffer = $rt_classWithoutFields(jl_AbstractStringBuilder),
jl_StringBuffer__init_ = $this => {
    $this.$buffer = $rt_createCharArray(16);
},
jl_StringBuffer__init_0 = () => {
    let var_0 = new jl_StringBuffer();
    jl_StringBuffer__init_(var_0);
    return var_0;
},
jl_StringBuffer_append0 = ($this, $s, $start, $end) => {
    jl_AbstractStringBuilder_insert1($this, $this.$length0, $s, $start, $end);
    return $this;
},
jl_StringBuffer_insert2 = ($this, $index, $string) => {
    jl_AbstractStringBuilder_insert($this, $index, $string);
    return $this;
},
jl_StringBuffer_insert1 = ($this, var$1, var$2, var$3, var$4) => {
    let var$5, var$6, var$7, var$8;
    jl_AbstractStringBuilder_insertSpace($this, var$1, var$1 + var$4 | 0);
    var$5 = var$4 + var$3 | 0;
    while (var$3 < var$5) {
        var$6 = var$2.data;
        var$7 = $this.$buffer.data;
        var$4 = var$1 + 1 | 0;
        var$8 = var$3 + 1 | 0;
        var$7[var$1] = var$6[var$3];
        var$1 = var$4;
        var$3 = var$8;
    }
    return $this;
},
jl_StringBuffer_append1 = ($this, var$1, var$2, var$3) => {
    let var$4, var$5, var$6, var$7, var$8;
    var$4 = $this.$length0;
    jl_AbstractStringBuilder_insertSpace($this, var$4, var$4 + var$3 | 0);
    var$5 = var$3 + var$2 | 0;
    while (var$2 < var$5) {
        var$6 = var$1.data;
        var$7 = $this.$buffer.data;
        var$3 = var$4 + 1 | 0;
        var$8 = var$2 + 1 | 0;
        var$7[var$4] = var$6[var$2];
        var$4 = var$3;
        var$2 = var$8;
    }
    return $this;
},
jl_StringBuffer_insert = ($this, var$1, var$2, var$3, var$4) => {
    jl_AbstractStringBuilder_insert1($this, var$1, var$2, var$3, var$4);
    return $this;
},
jl_StringBuffer_append = ($this, var$1, var$2, var$3) => {
    jl_AbstractStringBuilder_insert1($this, $this.$length0, var$1, var$2, var$3);
    return $this;
},
jl_StringBuffer_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jl_String;
    var$2 = $this.$buffer;
    var$3 = var$2.data;
    var$4 = $this.$length0;
    var$5 = var$3.length;
    if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$4);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jl_StringBuffer_ensureCapacity = ($this, var$1) => {
    jl_AbstractStringBuilder_ensureCapacity($this, var$1);
},
jl_StringBuffer_insert3 = ($this, var$1, var$2) => {
    jl_AbstractStringBuilder_insertSpace($this, var$1, var$1 + 1 | 0);
    $this.$buffer.data[var$1] = var$2;
    return $this;
},
jl_StringBuffer_insert0 = ($this, var$1, var$2) => {
    jl_AbstractStringBuilder_insert($this, var$1, var$2);
    return $this;
};
function jt_FieldPosition() {
    jl_Object.call(this);
    this.$myField = 0;
}
function cjj_Deflater() {
    cjj_ZStream.call(this);
    this.$finished1 = 0;
}
let cjj_Deflater__init_ = $this => {
    let var$1;
    var$1 = new cjj_Adler32;
    var$1.$s1 = Long_fromInt(1);
    var$1.$s2 = Long_ZERO;
    $this.$adler = var$1;
    $this.$finished1 = 0;
},
cjj_Deflater__init_2 = () => {
    let var_0 = new cjj_Deflater();
    cjj_Deflater__init_(var_0);
    return var_0;
},
cjj_Deflater__init_0 = ($this, $level, $nowrap) => {
    let var$3, var$4, var$5, var$6, var$7, var$8;
    var$3 = 15;
    var$4 = new cjj_Adler32;
    var$4.$s1 = Long_fromInt(1);
    var$4.$s2 = Long_ZERO;
    $this.$adler = var$4;
    $this.$finished1 = 0;
    $this.$finished1 = 0;
    var$4 = cjj_Deflate__init_($this);
    $this.$dstate = var$4;
    if ($nowrap)
        var$3 = (-15);
    var$3 = cjj_Deflate_deflateInit(var$4, $level, 8, var$3, 8, 0);
    if (!var$3)
        return;
    var$4 = new cjj_GZIPException;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$3, 10);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(102));
    var$6 = $this.$msg;
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$6);
    var$6 = new jl_String;
    var$7 = var$5.$buffer;
    var$8 = var$7.data;
    $nowrap = var$5.$length0;
    var$3 = var$8.length;
    if ($nowrap >= 0 && $nowrap <= (var$3 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $nowrap);
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        var$4.$message = var$6;
        $rt_throw(var$4);
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
cjj_Deflater__init_1 = (var_0, var_1) => {
    let var_2 = new cjj_Deflater();
    cjj_Deflater__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ICommand = $rt_classWithoutFields(0),
nms_CommandBase = $rt_classWithoutFields(),
nms_CommandBase_theAdmin = null,
nms_CommandBase_getCommandAliases = $this => {
    return null;
},
nms_CommandBase_canCommandSenderUseCommand = ($this, $par1ICommandSender) => {
    return $par1ICommandSender.$canCommandSenderUseCommand0($this.$getRequiredPermissionLevel(), $this.$getCommandName());
},
nms_CommandBase_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    return null;
},
nms_CommandBase_parseIntBounded = ($par0ICommandSender, $par1Str, $par2, $par3) => {
    let $var4, var$6, var$7, var$8, $$je;
    a: {
        try {
            $var4 = jl_Integer_parseInt($par1Str);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
        var$6 = new nms_NumberInvalidException;
        var$7 = $rt_createArray(jl_Object, 1);
        var$7.data[0] = $par1Str;
        var$6.$suppressionEnabled = 1;
        var$6.$writableStackTrace = 1;
        var$6.$message = $rt_s(940);
        var$6.$errorObjects = var$7;
        $rt_throw(var$6);
    }
    if ($var4 < $par2) {
        $par0ICommandSender = new nms_NumberInvalidException;
        var$8 = $rt_createArray(jl_Object, 2);
        if ($var4 >= (-128) && $var4 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[$var4 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = $var4;
        }
        var$7 = var$8.data;
        var$7[0] = var$6;
        if ($par2 >= (-128) && $par2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[$par2 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = $par2;
        }
        var$7[1] = var$6;
        $par0ICommandSender.$suppressionEnabled = 1;
        $par0ICommandSender.$writableStackTrace = 1;
        $par0ICommandSender.$message = $rt_s(941);
        $par0ICommandSender.$errorObjects = var$8;
        $rt_throw($par0ICommandSender);
    }
    if ($var4 <= $par3)
        return $var4;
    $par1Str = new nms_NumberInvalidException;
    var$7 = $rt_createArray(jl_Object, 2);
    if ($var4 >= (-128) && $var4 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[$var4 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = $var4;
    }
    var$8 = var$7.data;
    var$8[0] = var$6;
    if ($par3 >= (-128) && $par3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[$par3 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = $par3;
    }
    var$8[1] = var$6;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    $par1Str.$message = $rt_s(942);
    $par1Str.$errorObjects = var$7;
    $rt_throw($par1Str);
},
nms_CommandBase_parseDouble = ($par0ICommandSender, $par1Str) => {
    let $var2, var$4, var$5, $$je;
    a: {
        b: {
            try {
                $var2 = jl_Double_parseDouble($par1Str);
                if (!(isFinite($var2) ? 1 : 0))
                    break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_NumberFormatException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            return $var2;
        }
        try {
            var$4 = new nms_NumberInvalidException;
            var$5 = $rt_createArray(jl_Object, 1);
            var$5.data[0] = $par1Str;
            nms_NumberInvalidException__init_(var$4, $rt_s(943), var$5);
            $rt_throw(var$4);
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    $par0ICommandSender = new nms_NumberInvalidException;
    var$5 = $rt_createArray(jl_Object, 1);
    var$5.data[0] = $par1Str;
    $par0ICommandSender.$suppressionEnabled = 1;
    $par0ICommandSender.$writableStackTrace = 1;
    $par0ICommandSender.$message = $rt_s(943);
    $par0ICommandSender.$errorObjects = var$5;
    $rt_throw($par0ICommandSender);
},
nms_CommandBase_func_110661_a = ($par0ICommandSender, $par1Str, $par2, $par4) => {
    let $var6, var$6, var$7, var$8;
    $var6 = nms_CommandBase_parseDouble($par0ICommandSender, $par1Str);
    if ($var6 < $par2) {
        $par0ICommandSender = new nms_NumberInvalidException;
        var$6 = $rt_createArray(jl_Object, 2);
        var$7 = var$6.data;
        var$8 = new jl_Double;
        var$8.$value8 = $var6;
        var$7[0] = var$8;
        var$8 = new jl_Double;
        var$8.$value8 = $par2;
        var$7[1] = var$8;
        $par0ICommandSender.$suppressionEnabled = 1;
        $par0ICommandSender.$writableStackTrace = 1;
        $par0ICommandSender.$message = $rt_s(944);
        $par0ICommandSender.$errorObjects = var$6;
        $rt_throw($par0ICommandSender);
    }
    if ($var6 <= $par4)
        return $var6;
    $par0ICommandSender = new nms_NumberInvalidException;
    var$6 = $rt_createArray(jl_Object, 2);
    var$7 = var$6.data;
    var$8 = new jl_Double;
    var$8.$value8 = $var6;
    var$7[0] = var$8;
    var$8 = new jl_Double;
    var$8.$value8 = $par4;
    var$7[1] = var$8;
    $par0ICommandSender.$suppressionEnabled = 1;
    $par0ICommandSender.$writableStackTrace = 1;
    $par0ICommandSender.$message = $rt_s(945);
    $par0ICommandSender.$errorObjects = var$6;
    $rt_throw($par0ICommandSender);
},
nms_CommandBase_func_110662_c = ($par0ICommandSender, $par1Str) => {
    let var$3, var$4, var$5;
    if ($par1Str === $rt_s(898))
        var$3 = 1;
    else if (!($rt_s(898) instanceof jl_String))
        var$3 = 0;
    else {
        $par0ICommandSender = $rt_s(898);
        var$3 = $par1Str.$nativeString !== $par0ICommandSender.$nativeString ? 0 : 1;
    }
    if (!var$3) {
        if ($par1Str === $rt_s(946))
            var$3 = 1;
        else if (!($rt_s(946) instanceof jl_String))
            var$3 = 0;
        else {
            $par0ICommandSender = $rt_s(946);
            var$3 = $par1Str.$nativeString !== $par0ICommandSender.$nativeString ? 0 : 1;
        }
        if (!var$3) {
            if ($par1Str === $rt_s(897))
                var$3 = 1;
            else if (!($rt_s(897) instanceof jl_String))
                var$3 = 0;
            else {
                $par0ICommandSender = $rt_s(897);
                var$3 = $par1Str.$nativeString !== $par0ICommandSender.$nativeString ? 0 : 1;
            }
            if (!var$3) {
                if ($par1Str === $rt_s(116))
                    var$3 = 1;
                else if (!($rt_s(116) instanceof jl_String))
                    var$3 = 0;
                else {
                    $par0ICommandSender = $rt_s(116);
                    var$3 = $par1Str.$nativeString !== $par0ICommandSender.$nativeString ? 0 : 1;
                }
                if (!var$3) {
                    var$4 = new nms_CommandException;
                    var$5 = $rt_createArray(jl_Object, 1);
                    var$5.data[0] = $par1Str;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    var$4.$message = $rt_s(947);
                    var$4.$errorObjects = var$5;
                    $rt_throw(var$4);
                }
            }
            return 0;
        }
    }
    return 1;
},
nms_CommandBase_func_82361_a = ($par0ICommandSender, $par1ArrayOfStr, $par2, $par3) => {
    let $var4, var$6, $var5, var$8, var$9, $var6, $var7, var$12, var$13, var$14, var$15, var$16;
    $var4 = new jl_StringBuilder;
    $var4.$buffer = $rt_createCharArray(16);
    var$6 = null;
    $var5 = $par2;
    while (true) {
        var$8 = $par1ArrayOfStr.data;
        if ($var5 >= var$8.length) {
            $par0ICommandSender = new jl_String;
            $par1ArrayOfStr = $var4.$buffer;
            var$8 = $par1ArrayOfStr.data;
            $par3 = $var4.$length0;
            var$9 = var$8.length;
            if ($par3 >= 0 && $par3 <= (var$9 - 0 | 0)) {
                $par0ICommandSender.$nativeString = $rt_charArrayToString($par1ArrayOfStr.data, 0, $par3);
                return $par0ICommandSender;
            }
            $par0ICommandSender = new jl_IndexOutOfBoundsException;
            $par0ICommandSender.$suppressionEnabled = 1;
            $par0ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par0ICommandSender);
            $rt_throw($par0ICommandSender);
        }
        if ($var5 > $par2)
            jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(260));
        $var6 = var$8[$var5];
        if (!$par3)
            $var7 = $var6;
        else {
            $var7 = nms_PlayerSelector_matchPlayersAsString($par0ICommandSender, $var6);
            if ($var7 === null) {
                $var7 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var6);
                var$12 = $var7.$leftBound0;
                var$13 = $var7.$matchResult;
                var$13.$valid = 0;
                var$13.$mode0 = 2;
                var$8 = var$13.$groupBounds.data;
                var$14 = 0;
                var$9 = var$8.length;
                if (var$14 > var$9)
                    $rt_throw(jl_IllegalArgumentException__init_());
                while (var$14 < var$9) {
                    var$15 = var$14 + 1 | 0;
                    var$8[var$14] = (-1);
                    var$14 = var$15;
                }
                var$8 = var$13.$consumers.data;
                var$9 = 0;
                var$15 = var$8.length;
                if (var$9 > var$15)
                    break;
                while (var$9 < var$15) {
                    var$14 = var$9 + 1 | 0;
                    var$8[var$9] = (-1);
                    var$9 = var$14;
                }
                var$13.$startIndex = var$13.$leftBound;
                var$13.$mode0 = 2;
                var$13.$startIndex = var$12;
                var$9 = var$13.$previousMatch;
                if (var$9 < 0)
                    var$9 = var$12;
                var$13.$previousMatch = var$9;
                if ($var7.$start3.$matches(var$12, $var7.$string, var$13) < 0)
                    var$9 = 0;
                else {
                    var$8 = var$13.$groupBounds.data;
                    if (var$8[0] == (-1)) {
                        var$15 = var$13.$startIndex;
                        var$8[0] = var$15;
                        var$8[1] = var$15;
                    }
                    jur_MatchResultImpl_checkGroup(var$13, 0);
                    var$13.$previousMatch = var$13.$groupBounds.data[1];
                    var$9 = 1;
                }
                if (!var$9)
                    var$9 = 0;
                else {
                    $var7 = $var7.$matchResult;
                    var$14 = $var7.$valid;
                    if (!var$14) {
                        $par0ICommandSender = new jl_IllegalStateException;
                        jl_Exception__init_($par0ICommandSender);
                        $rt_throw($par0ICommandSender);
                    }
                    var$16 = $rt_compare(1, $var7.$groupCount);
                    if (var$16 >= 0) {
                        $par0ICommandSender = new jl_IndexOutOfBoundsException;
                        $var7 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var7);
                        jl_AbstractStringBuilder_append0($var7, 1);
                        jl_Exception__init_0($par0ICommandSender, jl_AbstractStringBuilder_toString($var7));
                        $rt_throw($par0ICommandSender);
                    }
                    var$8 = $var7.$groupBounds.data;
                    if (var$8[2] < 0)
                        $var7 = null;
                    else {
                        $var7 = $var7.$string0;
                        if (!var$14) {
                            $par0ICommandSender = new jl_IllegalStateException;
                            jl_Exception__init_($par0ICommandSender);
                            $rt_throw($par0ICommandSender);
                        }
                        if (var$16 >= 0) {
                            $par0ICommandSender = new jl_IndexOutOfBoundsException;
                            $var7 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var7);
                            jl_AbstractStringBuilder_append0($var7, 1);
                            jl_Exception__init_0($par0ICommandSender, jl_AbstractStringBuilder_toString($var7));
                            $rt_throw($par0ICommandSender);
                        }
                        var$15 = var$8[2];
                        if (!var$14) {
                            $par0ICommandSender = new jl_IllegalStateException;
                            jl_Exception__init_($par0ICommandSender);
                            $rt_throw($par0ICommandSender);
                        }
                        if (var$16 >= 0) {
                            $par0ICommandSender = new jl_IndexOutOfBoundsException;
                            $var7 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var7);
                            jl_AbstractStringBuilder_append0($var7, 1);
                            jl_Exception__init_0($par0ICommandSender, jl_AbstractStringBuilder_toString($var7));
                            $rt_throw($par0ICommandSender);
                        }
                        $var7 = jl_String_substring($var7, var$15, var$8[3]);
                    }
                    var$9 = var$6 !== null && !var$6.$equals($var7) ? 0 : 1;
                }
                if (var$9) {
                    $par0ICommandSender = new nms_PlayerNotFoundException;
                    $par1ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par0ICommandSender.$suppressionEnabled = 1;
                    $par0ICommandSender.$writableStackTrace = 1;
                    $par0ICommandSender.$message = $rt_s(948);
                    $par0ICommandSender.$errorObjects = $par1ArrayOfStr;
                    $rt_throw($par0ICommandSender);
                }
                $var7 = $var6;
            }
        }
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $var7);
        $var5 = $var5 + 1 | 0;
    }
    $rt_throw(jl_IllegalArgumentException__init_());
},
nms_CommandBase_func_110665_a = ($par0ICommandSender, $var7, $par3Str, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, $var9;
    $var6 = $par3Str === $rt_s(949) ? 1 : jl_String_startsWith($par3Str, $rt_s(949), 0);
    if ($var6 && (isNaN($var7) ? 1 : 0)) {
        $par0ICommandSender = new nms_NumberInvalidException;
        var$7 = $rt_createArray(jl_Object, 1);
        var$8 = var$7.data;
        var$9 = new jl_Double;
        var$9.$value8 = $var7;
        var$8[0] = var$9;
        $par0ICommandSender.$suppressionEnabled = 1;
        $par0ICommandSender.$writableStackTrace = 1;
        $par0ICommandSender.$message = $rt_s(940);
        $par0ICommandSender.$errorObjects = var$7;
        $rt_throw($par0ICommandSender);
    }
    if (!$var6)
        $var7 = 0.0;
    if (!($var6 && $par3Str.$nativeString.length <= 1)) {
        $var9 = jl_String_contains($par3Str, $rt_s(167));
        if ($var6)
            $par3Str = jl_String_substring($par3Str, 1, $par3Str.$nativeString.length);
        $var7 = $var7 + nms_CommandBase_parseDouble($par0ICommandSender, $par3Str);
        if (!$var9 && !$var6)
            $var7 = $var7 + 0.5;
    }
    if (!(!$par4 && !$par5)) {
        if ($var7 < $par4) {
            $par0ICommandSender = new nms_NumberInvalidException;
            var$7 = $rt_createArray(jl_Object, 2);
            var$8 = var$7.data;
            var$9 = new jl_Double;
            var$9.$value8 = $var7;
            var$8[0] = var$9;
            if ($par4 >= (-128) && $par4 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$9 = jl_Integer_integerCache.data[$par4 + 128 | 0];
            } else {
                var$9 = new jl_Integer;
                var$9.$value = $par4;
            }
            var$8[1] = var$9;
            $par0ICommandSender.$suppressionEnabled = 1;
            $par0ICommandSender.$writableStackTrace = 1;
            $par0ICommandSender.$message = $rt_s(944);
            $par0ICommandSender.$errorObjects = var$7;
            $rt_throw($par0ICommandSender);
        }
        if ($var7 > $par5) {
            $par0ICommandSender = new nms_NumberInvalidException;
            var$7 = $rt_createArray(jl_Object, 2);
            var$8 = var$7.data;
            var$9 = new jl_Double;
            var$9.$value8 = $var7;
            var$8[0] = var$9;
            if ($par5 >= (-128) && $par5 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$9 = jl_Integer_integerCache.data[$par5 + 128 | 0];
            } else {
                var$9 = new jl_Integer;
                var$9.$value = $par5;
            }
            var$8[1] = var$9;
            $par0ICommandSender.$suppressionEnabled = 1;
            $par0ICommandSender.$writableStackTrace = 1;
            $par0ICommandSender.$message = $rt_s(945);
            $par0ICommandSender.$errorObjects = var$7;
            $rt_throw($par0ICommandSender);
        }
    }
    return $var7;
},
nms_CommandBase_joinNiceString = $par0ArrayOfObj => {
    let $var1, $var2, var$4, var$5, $var3;
    $var1 = new jl_StringBuilder;
    $var1.$buffer = $rt_createCharArray(16);
    $var2 = 0;
    while (true) {
        var$4 = $par0ArrayOfObj.data;
        var$5 = var$4.length;
        if ($var2 >= var$5)
            break;
        $var3 = var$4[$var2].$toString();
        if ($var2 > 0) {
            if ($var2 != (var$5 - 1 | 0))
                jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(118));
            else
                jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(950));
        }
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $var3);
        $var2 = $var2 + 1 | 0;
    }
    $var3 = new jl_String;
    $par0ArrayOfObj = $var1.$buffer;
    var$4 = $par0ArrayOfObj.data;
    $var2 = $var1.$length0;
    var$5 = var$4.length;
    if ($var2 >= 0 && $var2 <= (var$5 - 0 | 0)) {
        $var3.$nativeString = $rt_charArrayToString($par0ArrayOfObj.data, 0, $var2);
        return $var3;
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($var1);
    $rt_throw($var1);
},
nms_CommandBase_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return 0;
},
nms_CommandBase_compareTo0 = ($this, $par1ICommand) => {
    let var$2, var$3, var$4, var$5, var$6;
    a: {
        b: {
            c: {
                var$2 = $this.$getCommandName();
                $par1ICommand = $par1ICommand.$getCommandName();
                if (var$2 === $par1ICommand)
                    var$3 = 0;
                else {
                    var$4 = var$2.$nativeString.length;
                    var$5 = $par1ICommand.$nativeString.length;
                    if (var$4 < var$5)
                        var$5 = var$4;
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$5) {
                            var$3 = var$2.$nativeString.length - $par1ICommand.$nativeString.length | 0;
                            break c;
                        }
                        if (var$4 < 0)
                            break a;
                        if (var$4 >= var$2.$nativeString.length)
                            break a;
                        var$6 = var$2.$nativeString.charCodeAt(var$4);
                        if (var$4 < 0)
                            break b;
                        if (var$4 >= $par1ICommand.$nativeString.length)
                            break b;
                        var$3 = var$6 - $par1ICommand.$nativeString.charCodeAt(var$4) | 0;
                        if (var$3)
                            break;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            return var$3;
        }
        $par1ICommand = new jl_StringIndexOutOfBoundsException;
        $par1ICommand.$suppressionEnabled = 1;
        $par1ICommand.$writableStackTrace = 1;
        $rt_throw($par1ICommand);
    }
    $par1ICommand = new jl_StringIndexOutOfBoundsException;
    $par1ICommand.$suppressionEnabled = 1;
    $par1ICommand.$writableStackTrace = 1;
    $rt_throw($par1ICommand);
},
nms_CommandBase_compareTo = ($this, $par1Obj) => {
    let var$2, var$3, var$4, var$5, var$6;
    a: {
        b: {
            c: {
                $par1Obj = $par1Obj;
                var$2 = $this.$getCommandName();
                $par1Obj = $par1Obj.$getCommandName();
                if (var$2 === $par1Obj)
                    var$3 = 0;
                else {
                    var$4 = var$2.$nativeString.length;
                    var$5 = $par1Obj.$nativeString.length;
                    if (var$4 < var$5)
                        var$5 = var$4;
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$5) {
                            var$3 = var$2.$nativeString.length - $par1Obj.$nativeString.length | 0;
                            break c;
                        }
                        if (var$4 < 0)
                            break a;
                        if (var$4 >= var$2.$nativeString.length)
                            break a;
                        var$6 = var$2.$nativeString.charCodeAt(var$4);
                        if (var$4 < 0)
                            break b;
                        if (var$4 >= $par1Obj.$nativeString.length)
                            break b;
                        var$3 = var$6 - $par1Obj.$nativeString.charCodeAt(var$4) | 0;
                        if (var$3)
                            break;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            return var$3;
        }
        $par1Obj = new jl_StringIndexOutOfBoundsException;
        $par1Obj.$suppressionEnabled = 1;
        $par1Obj.$writableStackTrace = 1;
        $rt_throw($par1Obj);
    }
    $par1Obj = new jl_StringIndexOutOfBoundsException;
    $par1Obj.$suppressionEnabled = 1;
    $par1Obj.$writableStackTrace = 1;
    $rt_throw($par1Obj);
},
nms_CommandTime = $rt_classWithoutFields(nms_CommandBase),
nms_CommandTime__init_ = $this => {
    return;
},
nms_CommandTime__init_0 = () => {
    let var_0 = new nms_CommandTime();
    nms_CommandTime__init_(var_0);
    return var_0;
},
nms_CommandTime_getCommandName = $this => {
    return $rt_s(951);
},
nms_CommandTime_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandTime_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(952);
},
nms_CommandTime_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var3, var$5, var$6, var$7, $var3_0, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var3_0 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        if ($par2ArrayOfStr.length > 1) {
            var$3 = $par2ArrayOfStr[0];
            if (var$3 === $rt_s(953))
                $var3 = 1;
            else if (!($rt_s(953) instanceof jl_String))
                $var3 = 0;
            else {
                var$5 = $rt_s(953);
                $var3 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
            }
            if ($var3) {
                var$3 = $par2ArrayOfStr[1];
                if (var$3 === $rt_s(954))
                    $var3 = 1;
                else if (!($rt_s(954) instanceof jl_String))
                    $var3 = 0;
                else {
                    var$5 = $rt_s(954);
                    $var3 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
                }
                if ($var3)
                    $var3 = 0;
                else {
                    var$3 = $par2ArrayOfStr[1];
                    if (var$3 === $rt_s(955))
                        $var3 = 1;
                    else if (!($rt_s(955) instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$5 = $rt_s(955);
                        $var3 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    $var3 = $var3 ? 12500 : nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], 0, 2147483647);
                }
                var$6 = 0;
                while (true) {
                    $par2ArrayOfStr = nms_MinecraftServer_mcServer.$worldServers.data;
                    if (var$6 >= $par2ArrayOfStr.length)
                        break;
                    var$3 = $par2ArrayOfStr[var$6];
                    var$7 = Long_fromInt($var3);
                    var$3.$worldInfo.$setWorldTime(var$7);
                    var$6 = var$6 + 1 | 0;
                }
                var$3 = $rt_s(956);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    var$5 = new jl_Integer;
                    var$5.$value = $var3;
                }
                $par2ArrayOfStr.data[0] = var$5;
                $var3 = 0;
                var$5 = nms_CommandBase_theAdmin;
                if (var$5 === null)
                    return;
                $ptr = 2;
                continue main;
            }
            var$3 = $par2ArrayOfStr[0];
            if (var$3 === $rt_s(957))
                $var3 = 1;
            else if (!($rt_s(957) instanceof jl_String))
                $var3 = 0;
            else {
                var$5 = $rt_s(957);
                $var3 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
            }
            if ($var3) {
                $var3_0 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], 0, 2147483647);
                $var3 = 0;
                var$7 = Long_fromInt($var3_0);
                while (true) {
                    $par2ArrayOfStr = nms_MinecraftServer_mcServer.$worldServers.data;
                    if ($var3 >= $par2ArrayOfStr.length)
                        break;
                    var$3 = $par2ArrayOfStr[$var3];
                    var$9 = Long_add(var$3.$worldInfo.$getWorldTime(), var$7);
                    var$3.$worldInfo.$setWorldTime(var$9);
                    $var3 = $var3 + 1 | 0;
                }
                var$3 = $rt_s(958);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                if ($var3_0 >= (-128) && $var3_0 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[$var3_0 + 128 | 0];
                } else {
                    var$5 = new jl_Integer;
                    var$5.$value = $var3_0;
                }
                $par2ArrayOfStr.data[0] = var$5;
                $var3 = 0;
                var$5 = nms_CommandBase_theAdmin;
                if (var$5 === null)
                    return;
                $ptr = 1;
                continue main;
            }
        }
        var$3 = new nms_WrongUsageException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = $rt_s(952);
        var$3.$errorObjects = $par2ArrayOfStr;
        $rt_throw(var$3);
    case 1:
        nms_ServerCommandManager_notifyAdmins(var$5, $par1ICommandSender, $var3, var$3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_ServerCommandManager_notifyAdmins(var$5, $par1ICommandSender, $var3, var$3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var3, var$5, var$6, var$7, $var3_0, var$9, $ptr);
},
nms_CommandTime_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 == 1) {
            var$4 = $rt_createArray(jl_String, 2).data;
            var$4[0] = $rt_s(953);
            var$4[1] = $rt_s(957);
            var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
            $par1ICommandSender = new ju_ArrayList;
            $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
            var$3 = var$4.length;
            var$6 = 0;
            while (var$6 < var$3) {
                var$7 = var$4[var$6];
                if (jl_String_regionMatches(var$7, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                    $par2ArrayOfStr = $par1ICommandSender.$array.data;
                    var$8 = $par1ICommandSender.$size0;
                    $par1ICommandSender.$size0 = var$8 + 1 | 0;
                    $par2ArrayOfStr[var$8] = var$7;
                    $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                }
                var$6 = var$6 + 1 | 0;
            }
        } else {
            if (var$3 == 2) {
                $par1ICommandSender = $par2ArrayOfStr[0];
                if ($par1ICommandSender === $rt_s(953))
                    var$9 = 1;
                else if (!($rt_s(953) instanceof jl_String))
                    var$9 = 0;
                else {
                    var$5 = $rt_s(953);
                    var$9 = $par1ICommandSender.$nativeString !== var$5.$nativeString ? 0 : 1;
                }
                if (var$9) {
                    var$4 = $rt_createArray(jl_String, 2).data;
                    var$4[0] = $rt_s(954);
                    var$4[1] = $rt_s(955);
                    var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$9 = var$4.length;
                    var$3 = 0;
                    while (var$3 < var$9) {
                        var$7 = var$4[var$3];
                        if (jl_String_regionMatches(var$7, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$6 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$6 + 1 | 0;
                            $par2ArrayOfStr[var$6] = var$7;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$3 = var$3 + 1 | 0;
                    }
                    break a;
                }
            }
            $par1ICommandSender = null;
        }
    }
    return $par1ICommandSender;
},
nms_CommandGameMode = $rt_classWithoutFields(nms_CommandBase),
nms_CommandGameMode__init_ = $this => {
    return;
},
nms_CommandGameMode__init_0 = () => {
    let var_0 = new nms_CommandGameMode();
    nms_CommandGameMode__init_(var_0);
    return var_0;
},
nms_CommandGameMode_getCommandName = $this => {
    return $rt_s(959);
},
nms_CommandGameMode_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandGameMode_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(960);
},
nms_CommandGameMode_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var3, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 <= 0) {
            $var3 = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(960);
            $var3.$errorObjects = $par2ArrayOfStr;
            $rt_throw($var3);
        }
        $var3 = nms_CommandGameMode_getGameModeFromCommand($this, $par1ICommandSender, $par2ArrayOfStr[0]);
        if (var$3 < 2) {
            if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                $var3 = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $var3.$message = $rt_s(961);
                $var3.$errorObjects = $par2ArrayOfStr;
                $rt_throw($var3);
            }
            $var4 = $par1ICommandSender;
        } else {
            a: {
                $var5 = $par2ArrayOfStr[1];
                nms_PlayerSelector_$callClinit();
                $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var5);
                if ($par2ArrayOfStr !== null) {
                    $par2ArrayOfStr = $par2ArrayOfStr.data;
                    if ($par2ArrayOfStr.length == 1) {
                        $var4 = $par2ArrayOfStr[0];
                        break a;
                    }
                }
                $var4 = null;
            }
            if ($var4 === null) {
                var$7 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                var$8 = 0;
                var$9 = var$7.$modCount;
                var$10 = var$7.$size();
                b: {
                    while (true) {
                        if (!(var$8 >= var$10 ? 0 : 1)) {
                            $var4 = null;
                            break b;
                        }
                        if (var$9 < var$7.$modCount)
                            break;
                        var$11 = var$8 + 1 | 0;
                        $var4 = var$7.$get(var$8);
                        if (jl_String_equalsIgnoreCase($var4.$username, $var5))
                            break b;
                        var$8 = var$11;
                    }
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                if ($var4 === null) {
                    $par1ICommandSender = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(948);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
            }
        }
        $var5 = $var4.$theItemInWorldManager;
        $var5.$gameType = $var3;
        nms_EnumGameType_configurePlayerCapabilities($var3, $var5.$thisPlayerMP.$capabilities);
        $var5 = $var5.$thisPlayerMP;
        var$12 = $var5.$playerNetServerHandler;
        if (var$12 !== null)
            c: {
                var$7 = new nms_Packet202PlayerAbilities;
                var$13 = $var5.$capabilities;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$7.$disableDamage0 = var$13.$disableDamage;
                var$7.$isFlying0 = var$13.$isFlying;
                var$7.$allowFlying0 = var$13.$allowFlying;
                var$7.$isCreativeMode0 = var$13.$isCreativeMode;
                var$7.$flySpeed0 = var$13.$flySpeed;
                var$7.$walkSpeed0 = var$13.$walkSpeed;
                if (var$7 instanceof nms_Packet3Chat) {
                    var$13 = var$7;
                    var$11 = var$12.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break c;
                    if (var$11 == 1 && !var$13.$isServer)
                        break c;
                }
                try {
                    $var5 = var$12.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$12 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var5 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var5, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var5;
                }
                jl_Throwable_printStackTrace(var$12, jl_System_errCache);
            }
        d: {
            $var5 = $var4.$playerNetServerHandler;
            var$7 = new nms_Packet70GameEvent;
            var$11 = $var3.$id3;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$eventType = 3;
            var$7.$gameMode = var$11;
            if (var$7 instanceof nms_Packet3Chat) {
                var$12 = var$7;
                var$11 = $var5.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break d;
                if (var$11 == 1 && !var$12.$isServer)
                    break d;
            }
            try {
                $var5 = $var5.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$12);
                var$12.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$12);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        $var4.$fallDistance = 0.0;
        var$7 = $var3.$name6;
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(962));
        var$3 = $var3.$length0;
        if (var$7 === null)
            var$7 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var3, var$3, var$7);
        $var5 = new jl_String;
        $par2ArrayOfStr = $var3.$buffer;
        var$14 = $par2ArrayOfStr.data;
        var$11 = $var3.$length0;
        var$9 = var$14.length;
        if (var$11 >= 0 && var$11 <= (var$9 - 0 | 0)) {
            e: {
                $var5.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$11);
                nms_StatCollector_$callClinit();
                $var5 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var5);
                if ($var4 === $par1ICommandSender) {
                    var$11 = 1;
                    $var3 = $rt_s(963);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                    $par2ArrayOfStr.data[0] = $var5;
                    $var5 = nms_CommandBase_theAdmin;
                    if ($var5 === null)
                        break e;
                    $ptr = 3;
                    continue main;
                }
                var$3 = 1;
                $var3 = $rt_s(964);
                $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var4.$username, $var5]);
                $var5 = nms_CommandBase_theAdmin;
                if ($var5 !== null) {
                    $ptr = 4;
                    continue main;
                }
            }
            return;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$12);
                var$12.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$12);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        $var4.$fallDistance = 0.0;
        var$7 = $var3.$name6;
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(962));
        var$3 = $var3.$length0;
        if (var$7 === null)
            var$7 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var3, var$3, var$7);
        $var5 = new jl_String;
        $par2ArrayOfStr = $var3.$buffer;
        var$14 = $par2ArrayOfStr.data;
        var$11 = $var3.$length0;
        var$9 = var$14.length;
        if (var$11 >= 0 && var$11 <= (var$9 - 0 | 0)) {
            g: {
                $var5.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$11);
                nms_StatCollector_$callClinit();
                $var5 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var5);
                if ($var4 === $par1ICommandSender) {
                    var$11 = 1;
                    $var3 = $rt_s(963);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                    $par2ArrayOfStr.data[0] = $var5;
                    $var5 = nms_CommandBase_theAdmin;
                    if ($var5 === null)
                        break g;
                    $ptr = 3;
                    continue main;
                }
                var$3 = 1;
                $var3 = $rt_s(964);
                $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var4.$username, $var5]);
                $var5 = nms_CommandBase_theAdmin;
                if ($var5 !== null) {
                    $ptr = 4;
                    continue main;
                }
            }
            return;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 2:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$12 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var5 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var5, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var5;
            }
            jl_Throwable_printStackTrace(var$12, jl_System_errCache);
        }
        h: {
            $var5 = $var4.$playerNetServerHandler;
            var$7 = new nms_Packet70GameEvent;
            var$11 = $var3.$id3;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$eventType = 3;
            var$7.$gameMode = var$11;
            if (var$7 instanceof nms_Packet3Chat) {
                var$12 = var$7;
                var$11 = $var5.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break h;
                if (var$11 == 1 && !var$12.$isServer)
                    break h;
            }
            try {
                $var5 = $var5.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$12);
                var$12.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$12);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        $var4.$fallDistance = 0.0;
        var$7 = $var3.$name6;
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(962));
        var$3 = $var3.$length0;
        if (var$7 === null)
            var$7 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var3, var$3, var$7);
        $var5 = new jl_String;
        $par2ArrayOfStr = $var3.$buffer;
        var$14 = $par2ArrayOfStr.data;
        var$11 = $var3.$length0;
        var$9 = var$14.length;
        if (var$11 >= 0 && var$11 <= (var$9 - 0 | 0)) {
            i: {
                $var5.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$11);
                nms_StatCollector_$callClinit();
                $var5 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var5);
                if ($var4 === $par1ICommandSender) {
                    var$11 = 1;
                    $var3 = $rt_s(963);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                    $par2ArrayOfStr.data[0] = $var5;
                    $var5 = nms_CommandBase_theAdmin;
                    if ($var5 === null)
                        break i;
                    $ptr = 3;
                    continue main;
                }
                var$3 = 1;
                $var3 = $rt_s(964);
                $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var4.$username, $var5]);
                $var5 = nms_CommandBase_theAdmin;
                if ($var5 !== null) {
                    $ptr = 4;
                    continue main;
                }
            }
            return;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 3:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, var$11, $var3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, var$3, $var3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var3, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_CommandGameMode_getGameModeFromCommand = ($this, $par1ICommandSender, $par2Str) => {
    let var$3, var$4, var$5, var$6;
    if (!jl_String_equalsIgnoreCase($par2Str, nms_EnumGameType_SURVIVAL.$name6) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(965))) {
        if (!jl_String_equalsIgnoreCase($par2Str, nms_EnumGameType_CREATIVE.$name6) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(966))) {
            if (!jl_String_equalsIgnoreCase($par2Str, nms_EnumGameType_ADVENTURE.$name6) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(967))) {
                var$3 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2Str, 0, (nms_EnumGameType_$VALUES.$clone0()).data.length - 2 | 0);
                var$4 = (nms_EnumGameType_$VALUES.$clone0()).data;
                var$5 = var$4.length;
                var$6 = 0;
                a: {
                    while (true) {
                        if (var$6 >= var$5) {
                            $par1ICommandSender = nms_EnumGameType_SURVIVAL;
                            break a;
                        }
                        $par1ICommandSender = var$4[var$6];
                        if ($par1ICommandSender.$id3 == var$3)
                            break;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            } else
                $par1ICommandSender = nms_EnumGameType_ADVENTURE;
        } else
            $par1ICommandSender = nms_EnumGameType_CREATIVE;
    } else
        $par1ICommandSender = nms_EnumGameType_SURVIVAL;
    return $par1ICommandSender;
},
nms_CommandGameMode_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    var$3 = $par2ArrayOfStr.length;
    if (var$3 != 1) {
        if (var$3 != 2)
            $par1ICommandSender = null;
        else {
            var$4 = (nms_CommandGameMode_getListOfPlayerUsernames($this)).data;
            var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
            $par1ICommandSender = new ju_ArrayList;
            $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
            var$6 = var$4.length;
            var$3 = 0;
            while (var$3 < var$6) {
                var$7 = var$4[var$3];
                if (jl_String_regionMatches(var$7, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                    $par2ArrayOfStr = $par1ICommandSender.$array.data;
                    var$8 = $par1ICommandSender.$size0;
                    $par1ICommandSender.$size0 = var$8 + 1 | 0;
                    $par2ArrayOfStr[var$8] = var$7;
                    $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                }
                var$3 = var$3 + 1 | 0;
            }
        }
    } else {
        var$4 = $rt_createArray(jl_String, 3).data;
        var$4[0] = $rt_s(229);
        var$4[1] = $rt_s(231);
        var$4[2] = $rt_s(233);
        var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
        $par1ICommandSender = new ju_ArrayList;
        $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
        var$6 = var$4.length;
        var$3 = 0;
        while (var$3 < var$6) {
            var$7 = var$4[var$3];
            if (jl_String_regionMatches(var$7, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                $par2ArrayOfStr = $par1ICommandSender.$array.data;
                var$9 = $par1ICommandSender.$size0;
                $par1ICommandSender.$size0 = var$9 + 1 | 0;
                $par2ArrayOfStr[var$9] = var$7;
                $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
            }
            var$3 = var$3 + 1 | 0;
        }
    }
    return $par1ICommandSender;
},
nms_CommandGameMode_getListOfPlayerUsernames = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
    var$2 = var$1.$size0;
    var$3 = $rt_createArray(jl_String, var$2);
    var$4 = var$3.data;
    var$5 = 0;
    a: {
        while (true) {
            var$6 = $rt_compare(var$5, var$2);
            if (var$6 >= 0)
                break;
            if (var$5 < 0)
                break a;
            if (var$6 >= 0)
                break a;
            var$4[var$5] = var$1.$array.data[var$5].$username;
            var$5 = var$5 + 1 | 0;
        }
        return var$3;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_CommandGameMode_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 != 1 ? 0 : 1;
},
nms_CommandDifficulty = $rt_classWithoutFields(nms_CommandBase),
nms_CommandDifficulty_difficulties = null,
nms_CommandDifficulty__init_ = $this => {
    return;
},
nms_CommandDifficulty__init_0 = () => {
    let var_0 = new nms_CommandDifficulty();
    nms_CommandDifficulty__init_(var_0);
    return var_0;
},
nms_CommandDifficulty_getCommandName = $this => {
    return $rt_s(968);
},
nms_CommandDifficulty_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandDifficulty_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(969);
},
nms_CommandDifficulty_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        if ($par2ArrayOfStr.length <= 0) {
            var$3 = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(969);
            var$3.$errorObjects = $par2ArrayOfStr;
            $rt_throw(var$3);
        }
        $var3 = nms_CommandDifficulty_getDifficultyForName($this, $par1ICommandSender, $par2ArrayOfStr[0]);
        nms_MinecraftServer_setDifficultyForAllWorlds(nms_MinecraftServer_mcServer, $var3);
        var$3 = $rt_s(970);
        var$5 = $rt_createArray(jl_Object, 1);
        var$6 = var$5.data;
        var$7 = nms_CommandDifficulty_difficulties.data[$var3];
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        nms_StatCollector_$callClinit();
        var$6[0] = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$7, $par2ArrayOfStr);
        var$8 = 0;
        var$7 = nms_CommandBase_theAdmin;
        if (var$7 === null)
            return;
        $ptr = 1;
    case 1:
        nms_ServerCommandManager_notifyAdmins(var$7, $par1ICommandSender, var$8, var$3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var3, var$5, var$6, var$7, var$8, $ptr);
},
nms_CommandDifficulty_getDifficultyForName = ($this, $par1ICommandSender, $par2Str) => {
    return !jl_String_equalsIgnoreCase($par2Str, $rt_s(971)) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(354)) ? (!jl_String_equalsIgnoreCase($par2Str, $rt_s(972)) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(973)) ? (!jl_String_equalsIgnoreCase($par2Str, $rt_s(84)) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(974)) ? (!jl_String_equalsIgnoreCase($par2Str, $rt_s(975)) && !jl_String_equalsIgnoreCase($par2Str, $rt_s(976)) ? nms_CommandBase_parseIntBounded($par1ICommandSender, $par2Str, 0, 3) : 3) : 2) :
    1) : 0;
},
nms_CommandDifficulty_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    var$3 = $par2ArrayOfStr.length;
    if (var$3 != 1)
        $par1ICommandSender = null;
    else {
        var$4 = $rt_createArray(jl_String, 4).data;
        var$4[0] = $rt_s(971);
        var$4[1] = $rt_s(972);
        var$4[2] = $rt_s(84);
        var$4[3] = $rt_s(975);
        var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
        $par1ICommandSender = new ju_ArrayList;
        $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
        var$6 = var$4.length;
        var$7 = 0;
        while (var$7 < var$6) {
            var$8 = var$4[var$7];
            if (jl_String_regionMatches(var$8, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                $par2ArrayOfStr = $par1ICommandSender.$array.data;
                var$9 = $par1ICommandSender.$size0;
                $par1ICommandSender.$size0 = var$9 + 1 | 0;
                $par2ArrayOfStr[var$9] = var$8;
                $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
            }
            var$7 = var$7 + 1 | 0;
        }
    }
    return $par1ICommandSender;
},
nms_CommandDifficulty__clinit_ = () => {
    nms_CommandDifficulty_difficulties = $rt_wrapArray(jl_String, [$rt_s(87), $rt_s(88), $rt_s(89), $rt_s(90)]);
};
let nms_CommandDefaultGameMode = $rt_classWithoutFields(nms_CommandGameMode),
nms_CommandDefaultGameMode__init_ = $this => {
    return;
},
nms_CommandDefaultGameMode__init_0 = () => {
    let var_0 = new nms_CommandDefaultGameMode();
    nms_CommandDefaultGameMode__init_(var_0);
    return var_0;
},
nms_CommandDefaultGameMode_getCommandName = $this => {
    return $rt_s(977);
},
nms_CommandDefaultGameMode_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(978);
},
nms_CommandDefaultGameMode_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        if ($par2ArrayOfStr.length <= 0) {
            $var3 = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(978);
            $var3.$errorObjects = $par2ArrayOfStr;
            $rt_throw($var3);
        }
        $var3 = nms_CommandGameMode_getGameModeFromCommand($this, $par1ICommandSender, $par2ArrayOfStr[0]);
        var$4 = nms_MinecraftServer_mcServer;
        var$5 = 0;
        while (true) {
            $par2ArrayOfStr = var$4.$worldServers.data;
            if (var$5 >= $par2ArrayOfStr.length)
                break;
            $par2ArrayOfStr[var$5].$worldInfo.$theGameType = $var3;
            var$5 = var$5 + 1 | 0;
        }
        var$6 = $rt_s(979);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $var3 = $var3.$name6;
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(962));
        var$7 = var$4.$length0;
        if ($var3 === null)
            $var3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$4, var$7, $var3);
        $var3 = new jl_String;
        var$8 = var$4.$buffer;
        var$9 = var$8.data;
        var$10 = var$4.$length0;
        var$7 = var$9.length;
        if (var$10 >= 0 && var$10 <= (var$7 - 0 | 0)) {
            var$9 = $par2ArrayOfStr.data;
            $var3.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
            nms_StatCollector_$callClinit();
            var$9[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var3);
            var$5 = 0;
            $var3 = nms_CommandBase_theAdmin;
            if ($var3 === null)
                return;
            $ptr = 1;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, var$5, var$6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_CommandKill = $rt_classWithoutFields(nms_CommandBase),
nms_CommandKill__init_ = $this => {
    return;
},
nms_CommandKill__init_0 = () => {
    let var_0 = new nms_CommandKill();
    nms_CommandKill__init_(var_0);
    return var_0;
},
nms_CommandKill_getCommandName = $this => {
    return $rt_s(980);
},
nms_CommandKill_getRequiredPermissionLevel = $this => {
    return 0;
},
nms_CommandKill_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(981);
},
nms_CommandKill_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var3, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
            var$3 = new nms_PlayerNotFoundException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(961);
            var$3.$errorObjects = $par2ArrayOfStr;
            $rt_throw(var$3);
        }
        $var3 = $par1ICommandSender;
        var$3 = nms_DamageSource_outOfWorld;
        var$5 = 3.4028234663852886E38;
        $ptr = 1;
    case 1:
        nms_EntityPlayerMP_attackEntityFrom($var3, var$3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        nms_StatCollector_$callClinit();
        var$3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(982));
        $ptr = 2;
    case 2:
        $par1ICommandSender.$sendChatToPlayer(var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var3, var$5, $ptr);
},
nms_CommandToggleDownfall = $rt_classWithoutFields(nms_CommandBase),
nms_CommandToggleDownfall__init_ = $this => {
    return;
},
nms_CommandToggleDownfall__init_0 = () => {
    let var_0 = new nms_CommandToggleDownfall();
    nms_CommandToggleDownfall__init_(var_0);
    return var_0;
},
nms_CommandToggleDownfall_getCommandName = $this => {
    return $rt_s(983);
},
nms_CommandToggleDownfall_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandToggleDownfall_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(984);
},
nms_CommandToggleDownfall_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$setRainTime(1);
        nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$setThundering(1);
        var$3 = $rt_s(985);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        var$4 = 0;
        var$5 = nms_CommandBase_theAdmin;
        if (var$5 === null)
            return;
        $ptr = 1;
    case 1:
        nms_ServerCommandManager_notifyAdmins(var$5, $par1ICommandSender, var$4, var$3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, var$4, var$5, $ptr);
},
nms_CommandWeather = $rt_classWithoutFields(nms_CommandBase),
nms_CommandWeather__init_ = $this => {
    return;
},
nms_CommandWeather__init_0 = () => {
    let var_0 = new nms_CommandWeather();
    nms_CommandWeather__init_(var_0);
    return var_0;
},
nms_CommandWeather_getCommandName = $this => {
    return $rt_s(986);
},
nms_CommandWeather_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandWeather_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(987);
},
nms_CommandWeather_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var3, var$4, var$5, var$6, var$7, $var5, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        $var3 = $par2ArrayOfStr.length;
        if ($var3 >= 1) {
            var$4 = $rt_compare($var3, 2);
            if (var$4 <= 0) {
                var$5 = Long_and(Long_add(Long_mul(Long_fromNumber(performance.now() * 1000000.0), Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$6 = Long_lo(Long_shru(var$5, 17));
                while (true) {
                    var$7 = var$6 % 600 | 0;
                    if (((var$6 - var$7 | 0) + 599 | 0) >= 0)
                        break;
                    var$5 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$6 = Long_lo(Long_shru(var$5, 17));
                }
                $var3 = (300 + var$7 | 0) * 20 | 0;
                if (var$4 >= 0)
                    $var3 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], 1, 1000000) * 20 | 0;
                a: {
                    $var5 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo;
                    $var5.$setRainTime($var3);
                    $var5.$setThunderTime($var3);
                    if (jl_String_equalsIgnoreCase($rt_s(988), $par2ArrayOfStr[0])) {
                        $var5.$setRaining(0);
                        $var5.$setThundering(0);
                        $var4 = $rt_s(989);
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        var$4 = 0;
                        $var5 = nms_CommandBase_theAdmin;
                        if ($var5 === null)
                            break a;
                        $ptr = 1;
                        continue main;
                    }
                    if (jl_String_equalsIgnoreCase($rt_s(990), $par2ArrayOfStr[0])) {
                        $var5.$setRaining(1);
                        $var5.$setThundering(0);
                        $var4 = $rt_s(991);
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        var$4 = 0;
                        $var5 = nms_CommandBase_theAdmin;
                        if ($var5 === null)
                            break a;
                        $ptr = 2;
                        continue main;
                    }
                    if (!jl_String_equalsIgnoreCase($rt_s(992), $par2ArrayOfStr[0])) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(987);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    $var5.$setRaining(1);
                    $var5.$setThundering(1);
                    $var4 = $rt_s(993);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    var$4 = 0;
                    $var5 = nms_CommandBase_theAdmin;
                    if ($var5 !== null) {
                        $ptr = 3;
                        continue main;
                    }
                }
                return;
            }
        }
        $var4 = new nms_WrongUsageException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $var4.$message = $rt_s(987);
        $var4.$errorObjects = $par2ArrayOfStr;
        $rt_throw($var4);
    case 1:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, var$4, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, var$4, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, var$4, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var3, var$4, var$5, var$6, var$7, $var5, $var4, $ptr);
},
nms_CommandWeather_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    var$3 = $par2ArrayOfStr.length;
    if (var$3 != 1)
        $par1ICommandSender = null;
    else {
        var$4 = $rt_createArray(jl_String, 3).data;
        var$4[0] = $rt_s(988);
        var$4[1] = $rt_s(990);
        var$4[2] = $rt_s(992);
        var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
        $par1ICommandSender = new ju_ArrayList;
        $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
        var$6 = var$4.length;
        var$7 = 0;
        while (var$7 < var$6) {
            var$8 = var$4[var$7];
            if (jl_String_regionMatches(var$8, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                $par2ArrayOfStr = $par1ICommandSender.$array.data;
                var$9 = $par1ICommandSender.$size0;
                $par1ICommandSender.$size0 = var$9 + 1 | 0;
                $par2ArrayOfStr[var$9] = var$8;
                $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
            }
            var$7 = var$7 + 1 | 0;
        }
    }
    return $par1ICommandSender;
},
nms_CommandXP = $rt_classWithoutFields(nms_CommandBase),
nms_CommandXP__init_ = $this => {
    return;
},
nms_CommandXP__init_0 = () => {
    let var_0 = new nms_CommandXP();
    nms_CommandXP__init_(var_0);
    return var_0;
},
nms_CommandXP_getCommandName = $this => {
    return $rt_s(994);
},
nms_CommandXP_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandXP_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(995);
},
nms_CommandXP_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var4, $var5, $var6, var$7, $var7, $var3, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var3 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 <= 0) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(995);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var4 = $par2ArrayOfStr[0];
        $var5 = !jl_String_endsWith($var4, $rt_s(996)) && !jl_String_endsWith($var4, $rt_s(997)) ? 0 : 1;
        if ($var5 && $var4.$nativeString.length > 1)
            $var4 = jl_String_substring($var4, 0, $var4.$nativeString.length - 1 | 0);
        a: {
            try {
                $var6 = jl_Integer_parseInt($var4);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_NumberFormatException) {
                } else {
                    throw $$e;
                }
            }
            var$7 = new nms_NumberInvalidException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var4;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            var$7.$message = $rt_s(940);
            var$7.$errorObjects = $par2ArrayOfStr;
            $rt_throw(var$7);
        }
        $var7 = $var6 >= 0 ? 0 : 1;
        if ($var7)
            $var6 = $var6 * (-1) | 0;
        if (var$3 <= 1) {
            if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                $var4 = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $var4.$message = $rt_s(961);
                $var4.$errorObjects = $par2ArrayOfStr;
                $rt_throw($var4);
            }
            $var3 = $par1ICommandSender;
        } else {
            b: {
                var$7 = $par2ArrayOfStr[1];
                nms_PlayerSelector_$callClinit();
                $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, var$7);
                if ($par2ArrayOfStr !== null) {
                    $par2ArrayOfStr = $par2ArrayOfStr.data;
                    if ($par2ArrayOfStr.length == 1) {
                        $var3 = $par2ArrayOfStr[0];
                        break b;
                    }
                }
                $var3 = null;
            }
            if ($var3 === null) {
                $var4 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                var$10 = 0;
                var$11 = $var4.$modCount;
                var$3 = $var4.$size();
                c: {
                    while (true) {
                        if (!(var$10 >= var$3 ? 0 : 1)) {
                            $var3 = null;
                            break c;
                        }
                        if (var$11 < $var4.$modCount)
                            break;
                        var$12 = var$10 + 1 | 0;
                        $var3 = $var4.$get(var$10);
                        if (jl_String_equalsIgnoreCase($var3.$username, var$7))
                            break c;
                        var$10 = var$12;
                    }
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                if ($var3 === null) {
                    $par1ICommandSender = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(948);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
            }
        }
        if ($var5) {
            if (!$var7) {
                $ptr = 2;
                continue main;
            }
            var$11 =  -$var6 | 0;
            $ptr = 3;
            continue main;
        }
        if ($var7) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(998);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $ptr = 1;
    case 1:
        nms_EntityPlayer_addExperience($var3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $rt_s(999);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            var$7 = new jl_Integer;
            var$7.$value = $var6;
        }
        var$13 = $par2ArrayOfStr.data;
        var$13[0] = var$7;
        var$13[1] = $var3.$username;
        var$11 = 0;
        var$7 = nms_CommandBase_theAdmin;
        if (var$7 === null)
            return;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntityPlayer_addExperienceLevel($var3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var3.$lastExperience = (-1);
        $var4 = $rt_s(1000);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            var$7 = new jl_Integer;
            var$7.$value = $var6;
        }
        var$13 = $par2ArrayOfStr.data;
        var$13[0] = var$7;
        var$13[1] = $var3.$username;
        var$11 = 0;
        var$7 = nms_CommandBase_theAdmin;
        if (var$7 === null)
            return;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityPlayer_addExperienceLevel($var3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var3.$lastExperience = (-1);
        $var4 = $rt_s(1001);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            var$7 = new jl_Integer;
            var$7.$value = $var6;
        }
        var$13 = $par2ArrayOfStr.data;
        var$13[0] = var$7;
        var$13[1] = $var3.$username;
        var$11 = 0;
        var$7 = nms_CommandBase_theAdmin;
        if (var$7 === null)
            return;
        $ptr = 6;
        continue main;
    case 4:
        nms_ServerCommandManager_notifyAdmins(var$7, $par1ICommandSender, var$11, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_ServerCommandManager_notifyAdmins(var$7, $par1ICommandSender, var$11, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_ServerCommandManager_notifyAdmins(var$7, $par1ICommandSender, var$11, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var4, $var5, $var6, var$7, $var7, $var3, var$10, var$11, var$12, var$13, $ptr);
},
nms_CommandXP_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 2)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$7 = 0;
                    while (var$7 < var$6) {
                        var$9 = var$5[var$7];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$4 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$4 + 1 | 0;
                            $par2ArrayOfStr[var$4] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$7 = var$7 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandXP_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 != 1 ? 0 : 1;
},
nms_CommandServerTp = $rt_classWithoutFields(nms_CommandBase),
nms_CommandServerTp__init_ = $this => {
    return;
},
nms_CommandServerTp__init_0 = () => {
    let var_0 = new nms_CommandServerTp();
    nms_CommandServerTp__init_(var_0);
    return var_0;
},
nms_CommandServerTp_getCommandName = $this => {
    return $rt_s(1002);
},
nms_CommandServerTp_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandServerTp_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1003);
},
nms_CommandServerTp_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var4, var$4, var$5, var$6, $var3, var$8, var$9, var$10, var$11, var$12, var$13, $var7, var$15, $var5, $var9, var$18, $var11, var$20, var$21, var$22, var$23, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var11 = $thread.pop();var$18 = $thread.pop();$var9 = $thread.pop();$var5 = $thread.pop();var$15 = $thread.pop();$var7 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2ArrayOfStr
        = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        $var4 = $par2ArrayOfStr.length;
        var$4 = $rt_compare($var4, 1);
        if (var$4 < 0) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1003);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        var$5 = $rt_compare($var4, 2);
        if (var$5 && $var4 != 4) {
            if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                var$6 = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                var$6.$message = $rt_s(961);
                var$6.$errorObjects = $par2ArrayOfStr;
                $rt_throw(var$6);
            }
            $var3 = $par1ICommandSender;
        } else {
            a: {
                var$6 = $par2ArrayOfStr[0];
                nms_PlayerSelector_$callClinit();
                var$8 = nms_PlayerSelector_matchPlayers($par1ICommandSender, var$6);
                if (var$8 !== null) {
                    var$8 = var$8.data;
                    if (var$8.length == 1) {
                        $var3 = var$8[0];
                        break a;
                    }
                }
                $var3 = null;
            }
            if ($var3 === null) {
                var$9 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                var$10 = 0;
                var$11 = var$9.$modCount;
                var$12 = var$9.$size();
                b: {
                    while (true) {
                        if (!(var$10 >= var$12 ? 0 : 1)) {
                            $var3 = null;
                            break b;
                        }
                        if (var$11 < var$9.$modCount)
                            break;
                        var$13 = var$10 + 1 | 0;
                        $var3 = var$9.$get(var$10);
                        if (jl_String_equalsIgnoreCase($var3.$username, var$6))
                            break b;
                        var$10 = var$13;
                    }
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                if ($var3 === null) {
                    $par1ICommandSender = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(948);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
            }
        }
        c: {
            d: {
                if (!($var4 != 3 && $var4 != 4)) {
                    if ($var3.$worldObj === null)
                        break d;
                    $var4 = $var4 - 3 | 0;
                    $var7 = $var3.$posX;
                    var$15 = $var4 + 1 | 0;
                    $var5 = nms_CommandBase_func_110665_a($par1ICommandSender, $var7, $par2ArrayOfStr[$var4], (-30000000), 30000000);
                    $var7 = $var3.$posY;
                    $var4 = var$15 + 1 | 0;
                    $var7 = nms_CommandBase_func_110665_a($par1ICommandSender, $var7, $par2ArrayOfStr[var$15], 0, 0);
                    $var9 = nms_CommandBase_func_110665_a($par1ICommandSender, $var3.$posZ, $par2ArrayOfStr[$var4], (-30000000), 30000000);
                    var$6 = null;
                    $ptr = 1;
                    continue main;
                }
                if (!var$4)
                    break c;
                if (!var$5)
                    break c;
            }
            return;
        }
        e: {
            var$18 = $par2ArrayOfStr[$var4 - 1 | 0];
            nms_PlayerSelector_$callClinit();
            $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, var$18);
            if ($par2ArrayOfStr !== null) {
                $par2ArrayOfStr = $par2ArrayOfStr.data;
                if ($par2ArrayOfStr.length == 1) {
                    $var11 = $par2ArrayOfStr[0];
                    break e;
                }
            }
            $var11 = null;
        }
        if ($var11 === null) {
            var$6 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$13 = 0;
            var$4 = var$6.$modCount;
            var$5 = var$6.$size();
            f: {
                while (true) {
                    if (!(var$13 >= var$5 ? 0 : 1)) {
                        $var11 = null;
                        break f;
                    }
                    if (var$4 < var$6.$modCount)
                        break;
                    $var4 = var$13 + 1 | 0;
                    $var11 = var$6.$get(var$13);
                    if (jl_String_equalsIgnoreCase($var11.$username, var$18))
                        break f;
                    var$13 = $var4;
                }
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            if ($var11 === null) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        if ($var11.$worldObj === $var3.$worldObj) {
            var$6 = null;
            $ptr = 4;
            continue main;
        }
        var$6 = $rt_s(1004);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        var$15 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 6;
        continue main;
    case 1:
        nms_EntityPlayerMP_mountEntity($var3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_EntityPlayerMP_setPositionAndUpdate($var3, $var5, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $rt_s(1005);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 4);
        var$8 = $par2ArrayOfStr.data;
        var$8[0] = $var3.$username;
        $var3 = new jl_Double;
        $var3.$value8 = $var5;
        var$8[1] = $var3;
        $var3 = new jl_Double;
        $var3.$value8 = $var7;
        var$8[2] = $var3;
        $var3 = new jl_Double;
        $var3.$value8 = $var9;
        var$8[3] = $var3;
        var$15 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 3;
    case 3:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, var$15, var$6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        g: {
            nms_EntityPlayerMP_mountEntity($var3, var$6);
            if ($rt_suspending()) {
                break main;
            }
            var$6 = $var3.$playerNetServerHandler;
            $var9 = $var11.$posX;
            var$20 = $var11.$posY;
            var$21 = $var11.$posZ;
            var$22 = $var11.$rotationYaw;
            var$23 = $var11.$rotationPitch;
            var$6.$hasMoved = 0;
            var$6.$lastPosX = $var9;
            var$6.$lastPosY = var$20;
            var$6.$lastPosZ = var$21;
            nms_Entity_setPositionAndRotation(var$6.$playerEntity, $var9, var$20, var$21, var$22, var$23);
            var$6 = var$6.$playerEntity.$playerNetServerHandler;
            var$9 = new nms_Packet13PlayerLookMove;
            $var7 = var$20 + 1.6200000047683716;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$xPosition = $var9;
            var$9.$yPosition = $var7;
            var$9.$stance = var$20;
            var$9.$zPosition = var$21;
            var$9.$yaw = var$22;
            var$9.$pitch = var$23;
            var$9.$onGround0 = 0;
            var$9.$rotating = 1;
            var$9.$moving = 1;
            if (var$9 instanceof nms_Packet3Chat) {
                var$18 = var$9;
                $var4 = var$6.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    break g;
                if ($var4 == 1 && !var$18.$isServer)
                    break g;
            }
            try {
                var$6 = var$6.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$18 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$18);
                var$18.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$18);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        var$6 = $rt_s(1006);
        $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var3.$username, $var11.$username]);
        var$15 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 7;
        continue main;
    case 5:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$18 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$18);
                var$18.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$18);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        var$6 = $rt_s(1006);
        $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var3.$username, $var11.$username]);
        var$15 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 7;
        continue main;
    case 6:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, var$15, var$6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, var$15, var$6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var4, var$4, var$5, var$6, $var3, var$8, var$9, var$10, var$11, var$12, var$13, $var7, var$15, $var5, $var9, var$18, $var11, var$20, var$21, var$22, var$23, $ptr);
},
nms_CommandServerTp_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 1 && var$3 != 2)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$3 = 0;
                    while (var$3 < var$6) {
                        var$9 = var$5[var$3];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$7 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$7 + 1 | 0;
                            $par2ArrayOfStr[var$7] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$3 = var$3 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandServerTp_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandGive = $rt_classWithoutFields(nms_CommandBase),
nms_CommandGive__init_ = $this => {
    return;
},
nms_CommandGive__init_0 = () => {
    let var_0 = new nms_CommandGive();
    nms_CommandGive__init_(var_0);
    return var_0;
},
nms_CommandGive_getCommandName = $this => {
    return $rt_s(1007);
};
let nms_CommandGive_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandGive_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1008);
},
nms_CommandGive_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var7, var$5, $var3, $var8, $var4, $var6, var$10, var$11, $var5, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var5 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var8 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 < 2) {
            $var7 = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $var7.$suppressionEnabled = 1;
            $var7.$writableStackTrace = 1;
            $var7.$message = $rt_s(1008);
            $var7.$errorObjects = $par2ArrayOfStr;
            $rt_throw($var7);
        }
        a: {
            $var7 = $par2ArrayOfStr[0];
            nms_PlayerSelector_$callClinit();
            var$5 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var7);
            if (var$5 !== null) {
                var$5 = var$5.data;
                if (var$5.length == 1) {
                    $var3 = var$5[0];
                    break a;
                }
            }
            $var3 = null;
        }
        if ($var3 === null) {
            $var8 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            $var4 = 0;
            $var6 = $var8.$modCount;
            var$10 = $var8.$size();
            b: {
                while (true) {
                    if (!($var4 >= var$10 ? 0 : 1)) {
                        $var3 = null;
                        break b;
                    }
                    if ($var6 < $var8.$modCount)
                        break;
                    var$11 = $var4 + 1 | 0;
                    $var3 = $var8.$get($var4);
                    if (jl_String_equalsIgnoreCase($var3.$username, $var7))
                        break b;
                    $var4 = var$11;
                }
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            if ($var3 === null) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        $var4 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], 1, 2147483647);
        $var5 = 1;
        $var6 = 0;
        nms_Item_$callClinit();
        if (nms_Item_itemsList.data[$var4] === null) {
            $par1ICommandSender = new nms_NumberInvalidException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $par2ArrayOfStr.data[0] = $var3;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1009);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if (var$3 >= 3)
            $var5 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[2], 1, 64);
        c: {
            if (var$3 >= 4) {
                $var7 = $par2ArrayOfStr[3];
                try {
                    $var6 = jl_Integer_parseInt($var7);
                    break c;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                        $var3 = new nms_NumberInvalidException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                        $par2ArrayOfStr.data[0] = $var7;
                        $var3.$suppressionEnabled = 1;
                        $var3.$writableStackTrace = 1;
                        $var3.$message = $rt_s(940);
                        $var3.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($var3);
                    } else {
                        throw $$e;
                    }
                }
            }
        }
        $var7 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $var7.$itemID = $var4;
        $var7.$stackSize = $var5;
        $var7.$itemDamage = $var6;
        if ($var6 < 0)
            $var7.$itemDamage = 0;
        var$3 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityPlayer_dropPlayerItemWithRandomChoice($var3, $var7, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var8.$delayBeforeCanPickup = 0;
        $var8 = $rt_s(1010);
        var$5 = $rt_createArray(jl_Object, 4);
        $var7 = nms_Item_itemsList.data[$var4].$getUnlocalizedName($var7);
        var$13 = new jl_StringBuilder;
        var$13.$buffer = $rt_createCharArray(16);
        var$11 = var$13.$length0;
        if ($var7 === null)
            $var7 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$13, var$11, $var7);
        jl_AbstractStringBuilder_insert(var$13, var$13.$length0, $rt_s(400));
        var$14 = new jl_String;
        var$15 = var$13.$buffer;
        $par2ArrayOfStr = var$15.data;
        $var6 = var$13.$length0;
        var$10 = $par2ArrayOfStr.length;
        if ($var6 >= 0 && $var6 <= (var$10 - 0 | 0)) {
            $par2ArrayOfStr = var$5.data;
            var$14.$nativeString = $rt_charArrayToString(var$15.data, 0, $var6);
            nms_StatCollector_$callClinit();
            $par2ArrayOfStr[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$14);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var7 = new jl_Integer;
                $var7.$value = $var4;
            }
            $par2ArrayOfStr[1] = $var7;
            if ($var5 >= (-128) && $var5 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[$var5 + 128 | 0];
            } else {
                $var7 = new jl_Integer;
                $var7.$value = $var5;
            }
            $par2ArrayOfStr[2] = $var7;
            $par2ArrayOfStr[3] = $var3.$username;
            $var5 = 0;
            $var7 = nms_CommandBase_theAdmin;
            if ($var7 === null)
                return;
            $ptr = 2;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 2:
        nms_ServerCommandManager_notifyAdmins($var7, $par1ICommandSender, $var5, $var8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var7, var$5, $var3, $var8, $var4, $var6, var$10, var$11, $var5, var$13, var$14, var$15, $ptr);
},
nms_CommandGive_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 1)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$7 = 0;
                    while (var$7 < var$6) {
                        var$9 = var$5[var$7];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$4 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$4 + 1 | 0;
                            $par2ArrayOfStr[var$4] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$7 = var$7 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandGive_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandEffect = $rt_classWithoutFields(nms_CommandBase),
nms_CommandEffect__init_ = $this => {
    return;
},
nms_CommandEffect__init_0 = () => {
    let var_0 = new nms_CommandEffect();
    nms_CommandEffect__init_(var_0);
    return var_0;
},
nms_CommandEffect_getCommandName = $this => {
    return $rt_s(1011);
},
nms_CommandEffect_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandEffect_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1012);
},
nms_CommandEffect_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var8, var$5, $var3, var$7, $var7, $var4, $var6, $var5, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();$var8 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 < 2) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1012);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        a: {
            $var8 = $par2ArrayOfStr[0];
            nms_PlayerSelector_$callClinit();
            var$5 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var8);
            if (var$5 !== null) {
                var$5 = var$5.data;
                if (var$5.length == 1) {
                    $var3 = var$5[0];
                    break a;
                }
            }
            $var3 = null;
        }
        if ($var3 === null) {
            var$7 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            $var7 = 0;
            $var4 = var$7.$modCount;
            $var6 = var$7.$size();
            b: {
                while (true) {
                    if (!($var7 >= $var6 ? 0 : 1)) {
                        $var3 = null;
                        break b;
                    }
                    if ($var4 < var$7.$modCount)
                        break;
                    $var5 = $var7 + 1 | 0;
                    $var3 = var$7.$get($var7);
                    if (jl_String_equalsIgnoreCase($var3.$username, $var8))
                        break b;
                    $var7 = $var5;
                }
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            if ($var3 === null) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        $var8 = $par2ArrayOfStr[1];
        if ($var8 === $rt_s(988))
            $var5 = 1;
        else if (!($rt_s(988) instanceof jl_String))
            $var5 = 0;
        else {
            var$12 = $rt_s(988);
            $var5 = $var8.$nativeString !== var$12.$nativeString ? 0 : 1;
        }
        if (!$var5) {
            $var4 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], 1, 2147483647);
            $var5 = 600;
            $var6 = 30;
            $var7 = 0;
            if ($var4 >= 0) {
                nms_Potion_$callClinit();
                var$5 = nms_Potion_potionTypes.data;
                if ($var4 < var$5.length && var$5[$var4] !== null) {
                    if (var$3 >= 3) {
                        $var6 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[2], 0, 1000000);
                        if (!nms_Potion_potionTypes.data[$var4].$isInstant())
                            $var5 = $var6 * 20 | 0;
                        else {
                            var$13 = $var6;
                            $var5 = $var6;
                            $var6 = var$13;
                        }
                    } else if (var$5[$var4].$isInstant())
                        $var5 = 1;
                    if (var$3 >= 4)
                        $var7 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[3], 0, 255);
                    if ($var6) {
                        $var8 = new nms_PotionEffect;
                        $var8.$potionID = $var4;
                        $var8.$duration = $var5;
                        $var8.$amplifier = $var7;
                        $var8.$isAmbient = 0;
                        $ptr = 2;
                        continue main;
                    }
                    if (!nms_EntityLivingBase_isPotionActive($var3, $var4)) {
                        $par1ICommandSender = new nms_CommandException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                        var$14 = $par2ArrayOfStr.data;
                        var$7 = nms_Potion_potionTypes.data[$var4].$name2;
                        nms_StatCollector_$callClinit();
                        var$14[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$7);
                        var$14[1] = $var3.$username;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1013);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    $ptr = 3;
                    continue main;
                }
            }
            $par1ICommandSender = new nms_NumberInvalidException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $par2ArrayOfStr.data[0] = $var3;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1014);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var8 = $var3.$activePotionsMap;
        if ($var8.$cachedValues === null) {
            var$12 = new ju_HashMap$2;
            var$12.$this$01 = $var8;
            $var8.$cachedValues = var$12;
        }
        if ($var8.$cachedValues.$size() ? 0 : 1) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var3.$username;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1015);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var8 = $var3.$activePotionsMap;
        if ($var8.$cachedKeySet === null) {
            var$12 = new ju_HashMap$1;
            var$12.$this$0 = $var8;
            $var8.$cachedKeySet = var$12;
        }
        $var8 = $var8.$cachedKeySet.$iterator();
        while (true) {
            if (!$var8.$hasNext()) {
                $var8 = $rt_s(1016);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                $par2ArrayOfStr.data[0] = $var3.$username;
                $var5 = 0;
                $var3 = nms_CommandBase_theAdmin;
                if ($var3 === null)
                    return;
                $ptr = 1;
                continue main;
            }
            var$12 = $var8.$next();
            var$7 = $var3.$activePotionsMap;
            if (var$12 === null) {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                $var4 = var$12.$value;
                $par2ArrayOfStr = var$7.$elementData.data;
                var$7 = $par2ArrayOfStr[$var4 & ($par2ArrayOfStr.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == $var4) {
                        var$15 = var$7.$key;
                        if (var$12 !== var$15 && !(var$12 === var$15 ? 1 : var$15 instanceof jl_Integer && var$15.$value == $var4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$12 = var$7 === null ? null : var$7.$value0;
            if (!$var3.$worldObj.$isRemote)
                break;
        }
        $var8.$remove();
        $ptr = 5;
        continue main;
    case 1:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, $var5, $var8, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_EntityLivingBase_addPotionEffect($var3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $rt_s(1017);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 5);
        var$5 = $par2ArrayOfStr.data;
        var$7 = nms_Potion_potionTypes.data[$var8.$potionID].$name2;
        nms_StatCollector_$callClinit();
        var$5[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$7);
        if ($var4 >= (-128) && $var4 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var8 = jl_Integer_integerCache.data[$var4 + 128 | 0];
        } else {
            $var8 = new jl_Integer;
            $var8.$value = $var4;
        }
        var$5[1] = $var8;
        if ($var7 >= (-128) && $var7 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var8 = jl_Integer_integerCache.data[$var7 + 128 | 0];
        } else {
            $var8 = new jl_Integer;
            $var8.$value = $var7;
        }
        var$5[2] = $var8;
        var$5[3] = $var3.$username;
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var8 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            $var8 = new jl_Integer;
            $var8.$value = $var6;
        }
        var$5[4] = $var8;
        $var5 = 0;
        $var8 = nms_CommandBase_theAdmin;
        if ($var8 === null)
            return;
        $ptr = 6;
        continue main;
    case 3:
        nms_EntityLivingBase_removePotionEffect($var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $rt_s(1018);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        var$14 = $par2ArrayOfStr.data;
        var$7 = nms_Potion_potionTypes.data[$var4].$name2;
        nms_StatCollector_$callClinit();
        var$14[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$7);
        var$14[1] = $var3.$username;
        $var5 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 4;
    case 4:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, $var5, $var8, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_EntityPlayerMP_onFinishedPotionEffect($var3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            if (!$var8.$hasNext()) {
                $var8 = $rt_s(1016);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                $par2ArrayOfStr.data[0] = $var3.$username;
                $var5 = 0;
                $var3 = nms_CommandBase_theAdmin;
                if ($var3 === null)
                    return;
                $ptr = 1;
                continue main;
            }
            var$12 = $var8.$next();
            var$7 = $var3.$activePotionsMap;
            if (var$12 === null) {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                $var4 = var$12.$value;
                $par2ArrayOfStr = var$7.$elementData.data;
                var$7 = $par2ArrayOfStr[$var4 & ($par2ArrayOfStr.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == $var4) {
                        var$15 = var$7.$key;
                        if (var$12 !== var$15 && !(var$12 === var$15 ? 1 : var$15 instanceof jl_Integer && var$15.$value == $var4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$12 = var$7 === null ? null : var$7.$value0;
            if ($var3.$worldObj.$isRemote)
                continue;
            else
                break;
        }
        $var8.$remove();
        continue main;
    case 6:
        nms_ServerCommandManager_notifyAdmins($var8, $par1ICommandSender, $var5, var$12, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var8, var$5, $var3, var$7, $var7, $var4, $var6, $var5, var$12, var$13, var$14, var$15, $ptr);
},
nms_CommandEffect_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 1)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$7 = 0;
                    while (var$7 < var$6) {
                        var$9 = var$5[var$7];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$4 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$4 + 1 | 0;
                            $par2ArrayOfStr[var$4] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$7 = var$7 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandEffect_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandEnchant = $rt_classWithoutFields(nms_CommandBase),
nms_CommandEnchant__init_ = $this => {
    return;
},
nms_CommandEnchant__init_0 = () => {
    let var_0 = new nms_CommandEnchant();
    nms_CommandEnchant__init_(var_0);
    return var_0;
},
nms_CommandEnchant_getCommandName = $this => {
    return $rt_s(1019);
},
nms_CommandEnchant_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandEnchant_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1020);
},
nms_CommandEnchant_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var9, $var7, $var3, $var11, var$8, $var10, var$10, $var5, $var4, var$13, $var8, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var8 = $thread.pop();var$13 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$10 = $thread.pop();$var10 = $thread.pop();var$8 = $thread.pop();$var11 = $thread.pop();$var3 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par2ArrayOfStr.data;
        $var9 = var$3.length;
        if ($var9 < 2) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1020);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        a: {
            $var7 = var$3[0];
            nms_PlayerSelector_$callClinit();
            $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var7);
            if ($par2ArrayOfStr !== null) {
                $par2ArrayOfStr = $par2ArrayOfStr.data;
                if ($par2ArrayOfStr.length == 1) {
                    $var3 = $par2ArrayOfStr[0];
                    break a;
                }
            }
            $var3 = null;
        }
        if ($var3 === null) {
            $var11 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$8 = 0;
            $var10 = $var11.$modCount;
            var$10 = $var11.$size();
            b: {
                while (true) {
                    if (!(var$8 >= var$10 ? 0 : 1)) {
                        $var3 = null;
                        break b;
                    }
                    if ($var10 < $var11.$modCount) {
                        $par1ICommandSender = new ju_ConcurrentModificationException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    $var5 = var$8 + 1 | 0;
                    $var3 = $var11.$get(var$8);
                    if (jl_String_equalsIgnoreCase($var3.$username, $var7))
                        break;
                    var$8 = $var5;
                }
            }
            if ($var3 === null) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        $var7 = var$3[1];
        nms_Enchantment_$callClinit();
        $var4 = nms_CommandBase_parseIntBounded($par1ICommandSender, $var7, 0, nms_Enchantment_enchantmentsList.data.length - 1 | 0);
        $var5 = 1;
        $var7 = $var3.$inventory0;
        var$10 = $var7.$currentItem;
        var$13 = var$10 < 9 && var$10 >= 0 ? $var7.$mainInventory.data[var$10] : null;
        if (var$13 === null) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1021);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var7 = nms_Enchantment_enchantmentsList.data[$var4];
        if ($var7 === null) {
            $par1ICommandSender = new nms_NumberInvalidException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $par2ArrayOfStr.data[0] = $var3;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1022);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if (!$var7.$canApply(var$13)) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1023);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if ($var9 >= 3)
            $var5 = nms_CommandBase_parseIntBounded($par1ICommandSender, var$3[2], 1, $var7.$getMaxLevel());
        $var11 = var$13.$stackTagCompound;
        $var4 = $var11 === null ? 0 : 1;
        c: {
            if ($var4) {
                if ($var11 !== null) {
                    d: {
                        $var11 = $var11.$tagMap;
                        if (!$rt_s(920).$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= $rt_s(920).$nativeString.length)
                                    break d;
                                $rt_s(920).$hashCode1 = (31 * $rt_s(920).$hashCode1 | 0) + $rt_s(920).$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    $var10 = $rt_s(920).$hashCode1;
                    $par2ArrayOfStr = $var11.$elementData.data;
                    $var11 = $par2ArrayOfStr[$var10 & ($par2ArrayOfStr.length - 1 | 0)];
                    while ($var11 !== null) {
                        if ($var11.$origKeyHash == $var10) {
                            e: {
                                $var8 = $var11.$key;
                                if ($rt_s(920) !== $var8) {
                                    if ($rt_s(920) === $var8)
                                        $var4 = 1;
                                    else if (!($var8 instanceof jl_String))
                                        $var4 = 0;
                                    else {
                                        $var8 = $var8;
                                        $var4 = $rt_s(920).$nativeString !== $var8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var4) {
                                        $var4 = 0;
                                        break e;
                                    }
                                }
                                $var4 = 1;
                            }
                            if ($var4)
                                break;
                        }
                        $var11 = $var11.$next3;
                    }
                    $var8 = $var11 === null ? null : $var11.$value0;
                } else
                    $var8 = null;
                if ($var8 !== null) {
                    $var9 = 0;
                    while (true) {
                        $var3 = $var8.$tagList;
                        $var4 = $rt_compare($var9, $var3.$size0);
                        if ($var4 >= 0)
                            break c;
                        if ($var9 < 0)
                            break;
                        if ($var4 >= 0)
                            break;
                        f: {
                            var$15 = $var3.$array.data[$var9];
                            $var3 = var$15.$tagMap;
                            if (!$rt_s(914).$hashCode1) {
                                $var4 = 0;
                                while (true) {
                                    if ($var4 >= $rt_s(914).$nativeString.length)
                                        break f;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt($var4) | 0;
                                    $var4 = $var4 + 1 | 0;
                                }
                            }
                        }
                        var$10 = $rt_s(914).$hashCode1;
                        $par2ArrayOfStr = $var3.$elementData.data;
                        $var3 = $par2ArrayOfStr[var$10 & ($par2ArrayOfStr.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$10) {
                                g: {
                                    $var11 = $var3.$key;
                                    if ($rt_s(914) !== $var11) {
                                        if ($rt_s(914) === $var11)
                                            $var4 = 1;
                                        else if (!($var11 instanceof jl_String))
                                            $var4 = 0;
                                        else {
                                            $var11 = $var11;
                                            $var4 = $rt_s(914).$nativeString !== $var11.$nativeString ? 0 : 1;
                                        }
                                        if (!$var4) {
                                            $var4 = 0;
                                            break g;
                                        }
                                    }
                                    $var4 = 1;
                                }
                                if ($var4)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                        if (!($var3 === null ? 0 : 1))
                            $var10 = 0;
                        else {
                            $var3 = var$15.$tagMap;
                            if ($rt_s(914) === null) {
                                $var3 = $var3.$elementData.data[0];
                                while ($var3 !== null && $var3.$key !== null) {
                                    $var3 = $var3.$next3;
                                }
                            } else {
                                h: {
                                    if (!$rt_s(914).$hashCode1) {
                                        $var4 = 0;
                                        while (true) {
                                            if ($var4 >= $rt_s(914).$nativeString.length)
                                                break h;
                                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt($var4) | 0;
                                            $var4 = $var4 + 1 | 0;
                                        }
                                    }
                                }
                                $var10 = $rt_s(914).$hashCode1;
                                $par2ArrayOfStr = $var3.$elementData.data;
                                $var3 = $par2ArrayOfStr[$var10 & ($par2ArrayOfStr.length - 1 | 0)];
                                while ($var3 !== null) {
                                    if ($var3.$origKeyHash == $var10) {
                                        i: {
                                            $var11 = $var3.$key;
                                            if ($rt_s(914) !== $var11) {
                                                if ($rt_s(914) === $var11)
                                                    $var4 = 1;
                                                else if (!($var11 instanceof jl_String))
                                                    $var4 = 0;
                                                else {
                                                    $var11 = $var11;
                                                    $var4 = $rt_s(914).$nativeString !== $var11.$nativeString ? 0 : 1;
                                                }
                                                if (!$var4) {
                                                    $var4 = 0;
                                                    break i;
                                                }
                                            }
                                            $var4 = 1;
                                        }
                                        if ($var4)
                                            break;
                                    }
                                    $var3 = $var3.$next3;
                                }
                            }
                            $var10 = ($var3 === null ? null : $var3.$value0).$data2;
                        }
                        $par2ArrayOfStr = nms_Enchantment_enchantmentsList.data;
                        if ($par2ArrayOfStr[$var10] !== null) {
                            $var11 = $par2ArrayOfStr[$var10];
                            if (!$var11.$canApplyTogether($var7)) {
                                $par1ICommandSender = new nms_CommandException;
                                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                                var$3 = $par2ArrayOfStr.data;
                                var$3[0] = nms_Enchantment_getTranslatedName($var7, $var5);
                                $var7 = $var8.$tagList;
                                if ($var9 >= 0 && $var9 < $var7.$size0) {
                                    j: {
                                        $var7 = $var7.$array.data[$var9];
                                        $var8 = $var7.$tagMap;
                                        if (!$rt_s(921).$hashCode1) {
                                            $var9 = 0;
                                            while (true) {
                                                if ($var9 >= $rt_s(921).$nativeString.length)
                                                    break j;
                                                $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt($var9) | 0;
                                                $var9 = $var9 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var5 = $rt_s(921).$hashCode1;
                                    var$16 = $var8.$elementData.data;
                                    $var8 = var$16[$var5 & (var$16.length - 1 | 0)];
                                    while ($var8 !== null) {
                                        if ($var8.$origKeyHash == $var5) {
                                            k: {
                                                var$17 = $var8.$key;
                                                if ($rt_s(921) !== var$17) {
                                                    if ($rt_s(921) === var$17)
                                                        $var4 = 1;
                                                    else if (!(var$17 instanceof jl_String))
                                                        $var4 = 0;
                                                    else {
                                                        var$17 = var$17;
                                                        $var4 = $rt_s(921).$nativeString !== var$17.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var4) {
                                                        $var4 = 0;
                                                        break k;
                                                    }
                                                }
                                                $var4 = 1;
                                            }
                                            if ($var4)
                                                break;
                                        }
                                        $var8 = $var8.$next3;
                                    }
                                    if (!($var8 === null ? 0 : 1))
                                        $var4 = 0;
                                    else {
                                        $var7 = $var7.$tagMap;
                                        if ($rt_s(921) === null) {
                                            var$17 = $var7.$elementData.data[0];
                                            while (var$17 !== null && var$17.$key !== null) {
                                                var$17 = var$17.$next3;
                                            }
                                        } else {
                                            l: {
                                                if (!$rt_s(921).$hashCode1) {
                                                    $var4 = 0;
                                                    while (true) {
                                                        if ($var4 >= $rt_s(921).$nativeString.length)
                                                            break l;
                                                        $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt($var4) | 0;
                                                        $var4 = $var4 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $var9 = $rt_s(921).$hashCode1;
                                            var$16 = $var7.$elementData.data;
                                            var$17 = var$16[$var9 & (var$16.length - 1 | 0)];
                                            while (var$17 !== null) {
                                                if (var$17.$origKeyHash == $var9) {
                                                    m: {
                                                        $var7 = var$17.$key;
                                                        if ($rt_s(921) !== $var7) {
                                                            if ($rt_s(921) === $var7)
                                                                $var4 = 1;
                                                            else if (!($var7 instanceof jl_String))
                                                                $var4 = 0;
                                                            else {
                                                                $var7 = $var7;
                                                                $var4 = $rt_s(921).$nativeString !== $var7.$nativeString ? 0 : 1;
                                                            }
                                                            if (!$var4) {
                                                                $var4 = 0;
                                                                break m;
                                                            }
                                                        }
                                                        $var4 = 1;
                                                    }
                                                    if ($var4)
                                                        break;
                                                }
                                                var$17 = var$17.$next3;
                                            }
                                        }
                                        $var4 = (var$17 === null ? null : var$17.$value0).$data2;
                                    }
                                    var$3[1] = nms_Enchantment_getTranslatedName($var11, $var4);
                                    $par1ICommandSender.$suppressionEnabled = 1;
                                    $par1ICommandSender.$writableStackTrace = 1;
                                    $par1ICommandSender.$message = $rt_s(1024);
                                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                                    $rt_throw($par1ICommandSender);
                                }
                                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                                $par1ICommandSender.$suppressionEnabled = 1;
                                $par1ICommandSender.$writableStackTrace = 1;
                                $rt_throw($par1ICommandSender);
                            }
                        }
                        $var9 = $var9 + 1 | 0;
                    }
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
            }
        }
        nms_ItemStack_addEnchantment(var$13, $var7, $var5);
        $var7 = $rt_s(1025);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        $var4 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 1;
    case 1:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, $var4, $var7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var9, $var7, $var3, $var11, var$8, $var10, var$10, $var5, $var4, var$13, $var8, var$15, var$16, var$17, $ptr);
},
nms_CommandEnchant_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 1)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$7 = 0;
                    while (var$7 < var$6) {
                        var$9 = var$5[var$7];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$4 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$4 + 1 | 0;
                            $par2ArrayOfStr[var$4] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$7 = var$7 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandEnchant_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandServerEmote = $rt_classWithoutFields(nms_CommandBase),
nms_CommandServerEmote__init_ = $this => {
    return;
},
nms_CommandServerEmote__init_0 = () => {
    let var_0 = new nms_CommandServerEmote();
    nms_CommandServerEmote__init_(var_0);
    return var_0;
},
nms_CommandServerEmote_getCommandName = $this => {
    return $rt_s(1026);
},
nms_CommandServerEmote_getRequiredPermissionLevel = $this => {
    return 0;
},
nms_CommandServerEmote_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1027);
},
nms_CommandServerEmote_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2ArrayOfStr.data.length <= 0) {
            $var3 = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(1027);
            $var3.$errorObjects = $par2ArrayOfStr;
            $rt_throw($var3);
        }
        $var3 = nms_CommandBase_func_82361_a($par1ICommandSender, $par2ArrayOfStr, 0, $par1ICommandSender.$canCommandSenderUseCommand0(1, $rt_s(1026)));
        var$4 = nms_MinecraftServer_mcServer.$serverConfigManager;
        $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$par1ICommandSender.$getCommandSenderName(), $var3]);
        nms_StatCollector_$callClinit();
        $var3 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1028), $par2ArrayOfStr);
        nles_IntegratedServer_$callClinit();
        var$5 = nles_IntegratedServer_logger;
        nms_StringUtils_$callClinit();
        var$6 = jur_Matcher__init_(nms_StringUtils_patternControlCode, $var3);
        var$7 = new jl_StringBuffer;
        jl_Object__init_(var$7);
        var$7.$buffer = $rt_createCharArray(16);
        var$6.$leftBound0 = 0;
        var$8 = var$6.$string.$nativeString.length;
        var$6.$rightBound0 = var$8;
        var$9 = var$6.$matchResult;
        var$10 = var$6.$string;
        var$11 = var$6.$leftBound0;
        var$9.$valid = 0;
        var$9.$mode0 = 2;
        var$12 = var$9.$groupBounds;
        ju_Arrays_fill(var$12, 0, var$12.data.length, (-1));
        var$12 = var$9.$consumers;
        ju_Arrays_fill(var$12, 0, var$12.data.length, (-1));
        if (var$10 !== null)
            var$9.$string0 = var$10;
        if (var$11 >= 0) {
            var$9.$leftBound = var$11;
            var$9.$rightBound = var$8;
        }
        var$9.$startIndex = var$9.$leftBound;
        var$6.$appendPos = 0;
        var$6.$replacement = null;
        var$6.$matchResult.$previousMatch = (-1);
        while (jur_Matcher_find(var$6)) {
            var$6.$processedRepl = jur_Matcher_processReplacement(var$6, $rt_s(3));
            var$9 = jl_String_substring(var$6.$string, var$6.$appendPos, jur_MatchResultImpl_start(var$6.$matchResult, 0));
            jl_StringBuffer_append(var$7, var$9, 0, jl_String_length(var$9));
            var$9 = var$6.$processedRepl;
            jl_StringBuffer_insert0(var$7, var$7.$length0, var$9);
            var$6.$appendPos = jur_MatchResultImpl_end(var$6.$matchResult, 0);
        }
        $par1ICommandSender = var$6.$string;
        $par1ICommandSender = jl_String_substring($par1ICommandSender, var$6.$appendPos, $par1ICommandSender.$nativeString.length);
        jl_StringBuffer_append(var$7, $par1ICommandSender, 0, jl_String_length($par1ICommandSender));
        var$10 = new jl_String;
        $par2ArrayOfStr = var$7.$buffer;
        var$12 = $par2ArrayOfStr.data;
        var$13 = var$7.$length0;
        jl_Object__init_(var$10);
        ju_Objects_checkFromIndexSize(0, var$13, var$12.length);
        var$10.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$13);
        var$7 = var$5.$logger;
        $par1ICommandSender = jul_Level_INFO;
        var$9 = new jul_LogRecord;
        var$9.$level = $par1ICommandSender;
        var$9.$message0 = var$10;
        var$9.$millis = jl_System_currentTimeMillis();
        var$14 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$14, Long_fromInt(1));
        var$9.$sequenceNumber = var$14;
        var$9.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$7, var$9);
        $par1ICommandSender = new nms_Packet3Chat;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $par1ICommandSender.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par1ICommandSender.$isServer = 1;
        var$13 = $var3.$nativeString.length;
        var$11 = nms_Packet3Chat_maxChatLength;
        if (var$13 > var$11)
            $var3 = jl_String_substring($var3, 0, var$11);
        $par1ICommandSender.$message1 = $var3;
        $par1ICommandSender.$isServer = 1;
        var$15 = 0;
        var$13 = $par1ICommandSender instanceof nms_Packet3Chat;
        var$10 = $par1ICommandSender;
        a: {
            while (true) {
                $var3 = var$4.$playerEntityList;
                var$11 = $rt_compare(var$15, $var3.$size0);
                if (var$11 >= 0)
                    break;
                if (var$15 < 0)
                    break a;
                if (var$11 >= 0)
                    break a;
                b: {
                    $var3 = $var3.$array.data[var$15].$playerNetServerHandler;
                    if (var$13) {
                        var$11 = $var3.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break b;
                        if (var$11 == 1 && !var$10.$isServer)
                            break b;
                    }
                    try {
                        $var3 = $var3.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$9 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                }
                var$15 = var$15 + 1 | 0;
            }
            return;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, $par1ICommandSender);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var3 = jl_System_errCache;
            if ($var3 === null) {
                $var3 = new otcic_JSStderrPrintStream;
                var$7 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0($var3, var$7);
                jl_System_errCache = $var3;
            }
            $var3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, $var3);
        }
        d: {
            e: while (true) {
                while (true) {
                    var$15 = var$15 + 1 | 0;
                    $var3 = var$4.$playerEntityList;
                    var$11 = $rt_compare(var$15, $var3.$size0);
                    if (var$11 >= 0)
                        break e;
                    if (var$15 < 0)
                        break d;
                    if (var$11 >= 0)
                        break d;
                    $var3 = $var3.$array.data[var$15].$playerNetServerHandler;
                    if (!var$13)
                        break;
                    var$11 = $var3.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        continue;
                    if (var$11 != 1)
                        break;
                    if (var$10.$isServer)
                        break;
                }
                try {
                    $var3 = $var3.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $var3 = jl_System_errCache;
                if ($var3 === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    var$7 = ji_ByteArrayOutputStream__init_();
                    ji_PrintStream__init_0($var3, var$7);
                    jl_System_errCache = $var3;
                }
                $var3 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$9, $var3);
            }
            return;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_CommandServerEmote_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
    var$3 = $par1ICommandSender.$size0;
    var$4 = $rt_createArray(jl_String, var$3).data;
    var$5 = 0;
    while (true) {
        var$6 = $rt_compare(var$5, var$3);
        if (var$6 >= 0) {
            $par2ArrayOfStr = $par2ArrayOfStr.data;
            $par1ICommandSender = $par2ArrayOfStr[$par2ArrayOfStr.length - 1 | 0];
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            var$5 = var$4.length;
            var$8 = 0;
            while (var$8 < var$5) {
                var$9 = var$4[var$8];
                if (jl_String_regionMatches(var$9, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$7.$array.data;
                    var$3 = var$7.$size0;
                    var$7.$size0 = var$3 + 1 | 0;
                    $par2ArrayOfStr[var$3] = var$9;
                    var$7.$modCount = var$7.$modCount + 1 | 0;
                }
                var$8 = var$8 + 1 | 0;
            }
            return var$7;
        }
        if (var$5 < 0)
            break;
        if (var$6 >= 0)
            break;
        var$4[var$5] = $par1ICommandSender.$array.data[var$5].$username;
        var$5 = var$5 + 1 | 0;
    }
    $par1ICommandSender = new jl_IndexOutOfBoundsException;
    $par1ICommandSender.$suppressionEnabled = 1;
    $par1ICommandSender.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ICommandSender);
    $rt_throw($par1ICommandSender);
},
nms_CommandShowSeed = $rt_classWithoutFields(nms_CommandBase),
nms_CommandShowSeed__init_ = $this => {
    return;
},
nms_CommandShowSeed__init_0 = () => {
    let var_0 = new nms_CommandShowSeed();
    nms_CommandShowSeed__init_(var_0);
    return var_0;
},
nms_CommandShowSeed_canCommandSenderUseCommand = ($this, $par1ICommandSender) => {
    let var$2;
    var$2 = nms_MinecraftServer_mcServer.$serverOwner === null ? 0 : 1;
    return !var$2 && !$par1ICommandSender.$canCommandSenderUseCommand0(2, $rt_s(1029)) ? 0 : 1;
},
nms_CommandShowSeed_getCommandName = $this => {
    return $rt_s(1029);
},
nms_CommandShowSeed_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandShowSeed_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1030);
},
nms_CommandShowSeed_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1ICommandSender instanceof nms_EntityPlayer ? $par1ICommandSender.$worldObj : nms_MinecraftServer_mcServer.$worldServers.data[0];
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        var$4 = $par2ArrayOfStr.data;
        var$5 = $var3.$worldInfo.$getSeed();
        $var3 = new jl_Long;
        $var3.$value7 = var$5;
        var$4[0] = $var3;
        nms_StatCollector_$callClinit();
        $var3 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1031), $par2ArrayOfStr);
        $ptr = 1;
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var3, var$4, var$5, $ptr);
},
nms_CommandHelp = $rt_classWithoutFields(nms_CommandBase),
nms_CommandHelp__init_ = $this => {
    return;
},
nms_CommandHelp__init_0 = () => {
    let var_0 = new nms_CommandHelp();
    nms_CommandHelp__init_(var_0);
    return var_0;
},
nms_CommandHelp_getCommandName = $this => {
    return $rt_s(1032);
},
nms_CommandHelp_getRequiredPermissionLevel = $this => {
    return 0;
},
nms_CommandHelp_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1033);
},
nms_CommandHelp_getCommandAliases = $this => {
    let var$1, var$2;
    var$1 = $rt_createArray(jl_String, 1);
    var$1.data[0] = $rt_s(1034);
    var$2 = new ju_Arrays$ArrayAsList;
    var$2.$array1 = var$1;
    return var$2;
},
nms_CommandHelp_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var9, var$4, var$5, var$6, $var4, var$8, $var11, $var5, var$11, $var7, $var7_0, $var12, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var12 = $thread.pop();$var7_0 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();$var5 = $thread.pop();$var11 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var9 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var9 = nms_MinecraftServer_mcServer.$commandManager;
        var$4 = new ju_ArrayList;
        var$4.$array = $rt_createArray(jl_Object, 10);
        $var9 = $var9.$commandSet.$backingMap;
        if ($var9.$cachedKeySet === null) {
            var$5 = new ju_HashMap$1;
            var$5.$this$0 = $var9;
            $var9.$cachedKeySet = var$5;
        }
        var$5 = $var9.$cachedKeySet.$iterator();
        while (var$5.$hasNext()) {
            $var9 = var$5.$next();
            if ($var9.$canCommandSenderUseCommand($par1ICommandSender)) {
                ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                var$6 = var$4.$array.data;
                $var4 = var$4.$size0;
                var$4.$size0 = $var4 + 1 | 0;
                var$6[$var4] = $var9;
                var$4.$modCount = var$4.$modCount + 1 | 0;
            }
        }
        $var9 = ju_Comparator$NaturalOrder_INSTANCE;
        var$6 = $rt_createArray(jl_Object, var$4.$size0);
        var$8 = var$6.data;
        ju_AbstractCollection_toArray(var$4, var$6);
        ju_Arrays_sort(var$6, $var9);
        $var11 = 0;
        $var4 = var$8.length;
        while (true) {
            if ($var11 >= $var4) {
                $var4 = 7;
                $var5 = (var$4.$size0 - 1 | 0) / $var4 | 0;
                a: {
                    try {
                        $par2ArrayOfStr = $par2ArrayOfStr.data;
                        $var11 = !$par2ArrayOfStr.length ? 0 : nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[0], 1, $var5 + 1 | 0) - 1 | 0;
                        break a;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nms_NumberInvalidException) {
                        } else {
                            throw $$e;
                        }
                    }
                    var$4 = nms_MinecraftServer_mcServer.$commandManager.$commandMap;
                    $var9 = $par2ArrayOfStr[0];
                    if ($var9 === null) {
                        var$4 = var$4.$elementData.data[0];
                        while (var$4 !== null && var$4.$key !== null) {
                            var$4 = var$4.$next3;
                        }
                    } else {
                        b: {
                            if (!$var9.$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $var9.$nativeString.length)
                                        break b;
                                    $var9.$hashCode1 = (31 * $var9.$hashCode1 | 0) + $var9.$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var5 = $var9.$hashCode1;
                        $par2ArrayOfStr = var$4.$elementData.data;
                        var$4 = $par2ArrayOfStr[$var5 & ($par2ArrayOfStr.length - 1 | 0)];
                        while (var$4 !== null) {
                            if (var$4.$origKeyHash == $var5) {
                                c: {
                                    var$5 = var$4.$key;
                                    if ($var9 !== var$5) {
                                        if ($var9 === var$5)
                                            $var11 = 1;
                                        else if (!(var$5 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$5 = var$5;
                                            $var11 = $var9.$nativeString !== var$5.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break c;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$4 = var$4.$next3;
                        }
                    }
                    $var9 = var$4 === null ? null : var$4.$value0;
                    if ($var9 === null) {
                        $par1ICommandSender = new nms_CommandNotFoundException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1035);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$4 = new nms_WrongUsageException;
                    $par1ICommandSender = $var9.$getCommandUsage($par1ICommandSender);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    var$4.$message = $par1ICommandSender;
                    var$4.$errorObjects = $par2ArrayOfStr;
                    $rt_throw(var$4);
                }
                var$11 = $var11 + 1 | 0;
                $var7 = $rt_imul(var$11, $var4);
                $var7_0 = var$4.$size0;
                if ($var7 < $var7_0)
                    $var7_0 = $var7;
                nms_EnumChatFormatting_$callClinit();
                $var9 = nms_EnumChatFormatting_DARK_GREEN;
                var$5 = $var9 === null ? $rt_s(1) : $var9.$field_96304_B;
                $var9 = new jl_StringBuilder;
                $var9.$buffer = $rt_createCharArray(16);
                $var12 = $var9.$length0;
                if (var$5 === null)
                    var$5 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var9, $var12, var$5);
                jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(1036));
                var$5 = new jl_String;
                $par2ArrayOfStr = $var9.$buffer;
                var$6 = $par2ArrayOfStr.data;
                $var7 = $var9.$length0;
                var$15 = var$6.length;
                if ($var7 >= 0 && $var7 <= (var$15 - 0 | 0)) {
                    var$5.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, $var7);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                    if (var$11 >= (-128) && var$11 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var9 = jl_Integer_integerCache.data[var$11 + 128 | 0];
                    } else {
                        $var9 = new jl_Integer;
                        $var9.$value = var$11;
                    }
                    var$6 = $par2ArrayOfStr.data;
                    var$6[0] = $var9;
                    $var5 = $var5 + 1 | 0;
                    if ($var5 >= (-128) && $var5 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var9 = jl_Integer_integerCache.data[$var5 + 128 | 0];
                    } else {
                        $var9 = new jl_Integer;
                        $var9.$value = $var5;
                    }
                    var$6[1] = $var9;
                    nms_StatCollector_$callClinit();
                    $var9 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$5, $par2ArrayOfStr);
                    $ptr = 1;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            $var9 = var$8[$var11];
            if ($var11 < 0)
                break;
            if ($var11 >= var$4.$size0)
                break;
            var$4.$array.data[$var11] = $var9;
            $var11 = $var11 + 1 | 0;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $rt_imul($var11, $var4);
        if ($var12 < $var7_0) {
            if ($var12 >= 0 && $var12 < var$4.$size0) {
                var$5 = var$4.$array.data[$var12].$getCommandUsage($par1ICommandSender);
                $var9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$5);
                $ptr = 2;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $rt_throw($par1ICommandSender);
        }
        if (!$var11 && $par1ICommandSender instanceof nms_EntityPlayer) {
            $var9 = nms_EnumChatFormatting_GREEN;
            var$4 = $var9 === null ? $rt_s(1) : $var9.$field_96304_B;
            $var9 = new jl_StringBuilder;
            $var9.$buffer = $rt_createCharArray(16);
            $var11 = $var9.$length0;
            if (var$4 === null)
                var$4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var9, $var11, var$4);
            jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(1037));
            var$4 = new jl_String;
            $par2ArrayOfStr = $var9.$buffer;
            var$6 = $par2ArrayOfStr.data;
            $var4 = $var9.$length0;
            $var5 = var$6.length;
            if ($var4 >= 0 && $var4 <= ($var5 - 0 | 0)) {
                var$4.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, $var4);
                $var9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$4);
                $ptr = 3;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        return;
    case 2:
        $par1ICommandSender.$sendChatToPlayer($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var12 + 1 | 0;
        if ($var12 < $var7_0) {
            if ($var12 >= 0 && $var12 < var$4.$size0) {
                var$5 = var$4.$array.data[$var12].$getCommandUsage($par1ICommandSender);
                $var9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$5);
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $rt_throw($par1ICommandSender);
        }
        if (!$var11 && $par1ICommandSender instanceof nms_EntityPlayer) {
            $var9 = nms_EnumChatFormatting_GREEN;
            var$4 = $var9 === null ? $rt_s(1) : $var9.$field_96304_B;
            $var9 = new jl_StringBuilder;
            $var9.$buffer = $rt_createCharArray(16);
            $var11 = $var9.$length0;
            if (var$4 === null)
                var$4 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var9, $var11, var$4);
            jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(1037));
            var$4 = new jl_String;
            $par2ArrayOfStr = $var9.$buffer;
            var$6 = $par2ArrayOfStr.data;
            $var4 = $var9.$length0;
            $var5 = var$6.length;
            if ($var4 >= 0 && $var4 <= ($var5 - 0 | 0)) {
                var$4.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, $var4);
                $var9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$4);
                $ptr = 3;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        return;
    case 3:
        $par1ICommandSender.$sendChatToPlayer($var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var9, var$4, var$5, var$6, $var4, var$8, $var11, $var5, var$11, $var7, $var7_0, $var12, var$15, $ptr);
};
function nms_CommandDebug() {
    let a = this; nms_CommandBase.call(a);
    a.$startTime = Long_ZERO;
    a.$startTicks = 0;
}
let nms_CommandDebug__init_ = $this => {
    return;
},
nms_CommandDebug__init_0 = () => {
    let var_0 = new nms_CommandDebug();
    nms_CommandDebug__init_(var_0);
    return var_0;
},
nms_CommandDebug_getCommandName = $this => {
    return $rt_s(1038);
},
nms_CommandDebug_getRequiredPermissionLevel = $this => {
    return 3;
},
nms_CommandDebug_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1039);
},
nms_CommandDebug_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var5, var$5, $var3, $var6, $var8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        if ($par2ArrayOfStr.length == 1) {
            var$3 = $par2ArrayOfStr[0];
            if (var$3 === $rt_s(1040))
                $var5 = 1;
            else if (!($rt_s(1040) instanceof jl_String))
                $var5 = 0;
            else {
                var$5 = $rt_s(1040);
                $var5 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
            }
            if ($var5) {
                var$3 = $rt_s(1041);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $var5 = 0;
                var$5 = nms_CommandBase_theAdmin;
                if (var$5 === null) {
                    nles_SysUtil_$callClinit();
                    $this.$startTime = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $this.$startTicks = nms_MinecraftServer_mcServer.$tickCounter0;
                    return;
                }
                $ptr = 1;
                continue main;
            }
            var$3 = $par2ArrayOfStr[0];
            if (var$3 === $rt_s(1042))
                $var5 = 1;
            else if (!($rt_s(1042) instanceof jl_String))
                $var5 = 0;
            else {
                var$5 = $rt_s(1042);
                $var5 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
            }
            if ($var5) {
                nles_SysUtil_$callClinit();
                $var3 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var5 = nms_MinecraftServer_mcServer.$tickCounter0;
                $var6 = Long_sub($var3, $this.$startTime);
                $var8 = $var5 - $this.$startTicks | 0;
                var$3 = $rt_s(1043);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                var$9 = $par2ArrayOfStr.data;
                var$10 = Long_toNumber($var6) / 1000.0;
                var$5 = new jl_Float;
                var$5.$value3 = var$10;
                var$9[0] = var$5;
                if ($var8 >= (-128) && $var8 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[$var8 + 128 | 0];
                } else {
                    var$5 = new jl_Integer;
                    var$5.$value = $var8;
                }
                var$9[1] = var$5;
                $var5 = 0;
                var$5 = nms_CommandBase_theAdmin;
                if (var$5 === null)
                    return;
                $ptr = 2;
                continue main;
            }
        }
        var$3 = new nms_WrongUsageException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = $rt_s(1039);
        var$3.$errorObjects = $par2ArrayOfStr;
        $rt_throw(var$3);
    case 1:
        nms_ServerCommandManager_notifyAdmins(var$5, $par1ICommandSender, $var5, var$3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        nles_SysUtil_$callClinit();
        $this.$startTime = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $this.$startTicks = nms_MinecraftServer_mcServer.$tickCounter0;
        return;
    case 2:
        nms_ServerCommandManager_notifyAdmins(var$5, $par1ICommandSender, $var5, var$3, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var5, var$5, $var3, $var6, $var8, var$9, var$10, $ptr);
},
nms_CommandDebug_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    var$3 = $par2ArrayOfStr.length;
    if (var$3 != 1)
        $par1ICommandSender = null;
    else {
        var$4 = $rt_createArray(jl_String, 2).data;
        var$4[0] = $rt_s(1040);
        var$4[1] = $rt_s(1042);
        var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
        $par1ICommandSender = new ju_ArrayList;
        $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
        var$6 = var$4.length;
        var$7 = 0;
        while (var$7 < var$6) {
            var$8 = var$4[var$7];
            if (jl_String_regionMatches(var$8, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                $par2ArrayOfStr = $par1ICommandSender.$array.data;
                var$9 = $par1ICommandSender.$size0;
                $par1ICommandSender.$size0 = var$9 + 1 | 0;
                $par2ArrayOfStr[var$9] = var$8;
                $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
            }
            var$7 = var$7 + 1 | 0;
        }
    }
    return $par1ICommandSender;
},
nms_CommandServerMessage = $rt_classWithoutFields(nms_CommandBase),
nms_CommandServerMessage__init_ = $this => {
    return;
},
nms_CommandServerMessage__init_0 = () => {
    let var_0 = new nms_CommandServerMessage();
    nms_CommandServerMessage__init_(var_0);
    return var_0;
},
nms_CommandServerMessage_getCommandAliases = $this => {
    let var$1, var$2;
    var$1 = $rt_wrapArray(jl_String, [$rt_s(1044), $rt_s(1045)]);
    var$2 = new ju_Arrays$ArrayAsList;
    var$2.$array1 = var$1;
    return var$2;
},
nms_CommandServerMessage_getCommandName = $this => {
    return $rt_s(1046);
},
nms_CommandServerMessage_getRequiredPermissionLevel = $this => {
    return 0;
},
nms_CommandServerMessage_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1047);
},
nms_CommandServerMessage_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var4, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par2ArrayOfStr.data;
        if (var$3.length < 2) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1047);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        a: {
            $var4 = var$3[0];
            nms_PlayerSelector_$callClinit();
            var$3 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var4);
            if (var$3 !== null) {
                var$3 = var$3.data;
                if (var$3.length == 1) {
                    $var3 = var$3[0];
                    break a;
                }
            }
            $var3 = null;
        }
        if ($var3 === null) {
            var$6 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$7 = 0;
            var$8 = var$6.$modCount;
            var$9 = var$6.$size();
            b: {
                while (true) {
                    if (!(var$7 >= var$9 ? 0 : 1)) {
                        $var3 = null;
                        break b;
                    }
                    if (var$8 < var$6.$modCount)
                        break;
                    var$10 = var$7 + 1 | 0;
                    $var3 = var$6.$get(var$7);
                    if (jl_String_equalsIgnoreCase($var3.$username, $var4))
                        break b;
                    var$7 = var$10;
                }
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            if ($var3 === null) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        if ($var3 === $par1ICommandSender) {
            $par1ICommandSender = new nms_PlayerNotFoundException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1048);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var4 = nms_CommandBase_func_82361_a($par1ICommandSender, $par2ArrayOfStr, 1, $par1ICommandSender instanceof nms_EntityPlayer ? 0 : 1);
        nms_EnumChatFormatting_$callClinit();
        var$6 = nms_EnumChatFormatting_GRAY;
        var$6 = var$6 === null ? $rt_s(1) : var$6.$field_96304_B;
        var$11 = new jl_StringBuilder;
        var$11.$buffer = $rt_createCharArray(16);
        var$12 = var$11.$length0;
        if (var$6 === null)
            var$6 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$11, var$12, var$6);
        jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(1049));
        var$6 = new jl_String;
        $par2ArrayOfStr = var$11.$buffer;
        var$3 = $par2ArrayOfStr.data;
        var$10 = var$11.$length0;
        var$8 = var$3.length;
        if (var$10 >= 0 && var$10 <= (var$8 - 0 | 0)) {
            var$6.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$10);
            $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$par1ICommandSender.$getCommandSenderName(), $var4]);
            nms_StatCollector_$callClinit();
            var$6 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$6, $par2ArrayOfStr);
            $ptr = 1;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        nms_EntityPlayerMP_sendChatToPlayer($var3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = nms_EnumChatFormatting_GRAY;
        var$6 = var$6 === null ? $rt_s(1) : var$6.$field_96304_B;
        var$11 = new jl_StringBuilder;
        var$11.$buffer = $rt_createCharArray(16);
        var$12 = var$11.$length0;
        if (var$6 === null)
            var$6 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$11, var$12, var$6);
        jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(1050));
        var$6 = new jl_String;
        $par2ArrayOfStr = var$11.$buffer;
        var$3 = $par2ArrayOfStr.data;
        var$10 = var$11.$length0;
        var$8 = var$3.length;
        if (var$10 >= 0 && var$10 <= (var$8 - 0 | 0)) {
            var$6.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$10);
            $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var3.$username, $var4]);
            $var4 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$6, $par2ArrayOfStr);
            $ptr = 2;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 2:
        $par1ICommandSender.$sendChatToPlayer($var4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var4, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_CommandServerMessage_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
    var$3 = $par1ICommandSender.$size0;
    var$4 = $rt_createArray(jl_String, var$3).data;
    var$5 = 0;
    while (true) {
        var$6 = $rt_compare(var$5, var$3);
        if (var$6 >= 0) {
            $par2ArrayOfStr = $par2ArrayOfStr.data;
            $par1ICommandSender = $par2ArrayOfStr[$par2ArrayOfStr.length - 1 | 0];
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            var$5 = var$4.length;
            var$8 = 0;
            while (var$8 < var$5) {
                var$9 = var$4[var$8];
                if (jl_String_regionMatches(var$9, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$7.$array.data;
                    var$3 = var$7.$size0;
                    var$7.$size0 = var$3 + 1 | 0;
                    $par2ArrayOfStr[var$3] = var$9;
                    var$7.$modCount = var$7.$modCount + 1 | 0;
                }
                var$8 = var$8 + 1 | 0;
            }
            return var$7;
        }
        if (var$5 < 0)
            break;
        if (var$6 >= 0)
            break;
        var$4[var$5] = $par1ICommandSender.$array.data[var$5].$username;
        var$5 = var$5 + 1 | 0;
    }
    $par1ICommandSender = new jl_IndexOutOfBoundsException;
    $par1ICommandSender.$suppressionEnabled = 1;
    $par1ICommandSender.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ICommandSender);
    $rt_throw($par1ICommandSender);
},
nms_CommandServerMessage_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandServerSay = $rt_classWithoutFields(nms_CommandBase),
nms_CommandServerSay__init_ = $this => {
    return;
},
nms_CommandServerSay__init_0 = () => {
    let var_0 = new nms_CommandServerSay();
    nms_CommandServerSay__init_(var_0);
    return var_0;
},
nms_CommandServerSay_getCommandName = $this => {
    return $rt_s(1051);
},
nms_CommandServerSay_getRequiredPermissionLevel = $this => {
    return 1;
},
nms_CommandServerSay_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1052);
},
nms_CommandServerSay_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par2ArrayOfStr.data;
        if (var$3.length > 0 && var$3[0].$nativeString.length > 0) {
            $var3 = nms_CommandBase_func_82361_a($par1ICommandSender, $par2ArrayOfStr, 0, 1);
            var$5 = nms_MinecraftServer_mcServer.$serverConfigManager;
            $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$par1ICommandSender.$getCommandSenderName(), $var3]);
            nms_StatCollector_$callClinit();
            $var3 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1053), $par2ArrayOfStr);
            nles_IntegratedServer_$callClinit();
            var$6 = nles_IntegratedServer_logger;
            nms_StringUtils_$callClinit();
            var$7 = jur_Matcher__init_(nms_StringUtils_patternControlCode, $var3);
            var$8 = new jl_StringBuffer;
            jl_Object__init_(var$8);
            var$8.$buffer = $rt_createCharArray(16);
            var$7.$leftBound0 = 0;
            var$9 = var$7.$string.$nativeString.length;
            var$7.$rightBound0 = var$9;
            var$10 = var$7.$matchResult;
            var$11 = var$7.$string;
            var$12 = var$7.$leftBound0;
            var$10.$valid = 0;
            var$10.$mode0 = 2;
            var$3 = var$10.$groupBounds;
            ju_Arrays_fill(var$3, 0, var$3.data.length, (-1));
            $par2ArrayOfStr = var$10.$consumers;
            ju_Arrays_fill($par2ArrayOfStr, 0, $par2ArrayOfStr.data.length, (-1));
            if (var$11 !== null)
                var$10.$string0 = var$11;
            if (var$12 >= 0) {
                var$10.$leftBound = var$12;
                var$10.$rightBound = var$9;
            }
            var$10.$startIndex = var$10.$leftBound;
            var$7.$appendPos = 0;
            var$7.$replacement = null;
            var$7.$matchResult.$previousMatch = (-1);
            while (jur_Matcher_find(var$7)) {
                var$7.$processedRepl = jur_Matcher_processReplacement(var$7, $rt_s(3));
                var$10 = jl_String_substring(var$7.$string, var$7.$appendPos, jur_MatchResultImpl_start(var$7.$matchResult, 0));
                jl_StringBuffer_append(var$8, var$10, 0, jl_String_length(var$10));
                var$10 = var$7.$processedRepl;
                jl_StringBuffer_insert0(var$8, var$8.$length0, var$10);
                var$7.$appendPos = jur_MatchResultImpl_end(var$7.$matchResult, 0);
            }
            $par1ICommandSender = var$7.$string;
            $par1ICommandSender = jl_String_substring($par1ICommandSender, var$7.$appendPos, $par1ICommandSender.$nativeString.length);
            jl_StringBuffer_append(var$8, $par1ICommandSender, 0, jl_String_length($par1ICommandSender));
            var$11 = new jl_String;
            $par2ArrayOfStr = var$8.$buffer;
            var$3 = $par2ArrayOfStr.data;
            var$13 = var$8.$length0;
            jl_Object__init_(var$11);
            ju_Objects_checkFromIndexSize(0, var$13, var$3.length);
            var$11.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$13);
            var$8 = var$6.$logger;
            $par1ICommandSender = jul_Level_INFO;
            var$10 = new jul_LogRecord;
            var$10.$level = $par1ICommandSender;
            var$10.$message0 = var$11;
            var$10.$millis = jl_System_currentTimeMillis();
            var$14 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$14, Long_fromInt(1));
            var$10.$sequenceNumber = var$14;
            var$10.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$8, var$10);
            $par1ICommandSender = new nms_Packet3Chat;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1ICommandSender.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1ICommandSender.$isServer = 1;
            var$13 = $var3.$nativeString.length;
            var$12 = nms_Packet3Chat_maxChatLength;
            if (var$13 > var$12)
                $var3 = jl_String_substring($var3, 0, var$12);
            $par1ICommandSender.$message1 = $var3;
            $par1ICommandSender.$isServer = 1;
            var$15 = 0;
            var$13 = $par1ICommandSender instanceof nms_Packet3Chat;
            var$10 = $par1ICommandSender;
            a: {
                while (true) {
                    $var3 = var$5.$playerEntityList;
                    var$12 = $rt_compare(var$15, $var3.$size0);
                    if (var$12 >= 0)
                        break;
                    if (var$15 < 0)
                        break a;
                    if (var$12 >= 0)
                        break a;
                    b: {
                        $var3 = $var3.$array.data[var$15].$playerNetServerHandler;
                        if (var$13) {
                            var$12 = $var3.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break b;
                            if (var$12 == 1 && !var$10.$isServer)
                                break b;
                        }
                        try {
                            $var3 = $var3.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$8 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$11 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$11, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$11;
                        }
                        jl_Throwable_printStackTrace(var$8, jl_System_errCache);
                    }
                    var$15 = var$15 + 1 | 0;
                }
                return;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        $var3 = new nms_WrongUsageException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $var3.$message = $rt_s(1052);
        $var3.$errorObjects = $par2ArrayOfStr;
        $rt_throw($var3);
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, $par1ICommandSender);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var3 = jl_System_errCache;
            if ($var3 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                $var3 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$11, $var3);
                jl_System_errCache = var$11;
            }
            $var3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, $var3);
        }
        d: {
            e: while (true) {
                while (true) {
                    var$15 = var$15 + 1 | 0;
                    $var3 = var$5.$playerEntityList;
                    var$12 = $rt_compare(var$15, $var3.$size0);
                    if (var$12 >= 0)
                        break e;
                    if (var$15 < 0)
                        break d;
                    if (var$12 >= 0)
                        break d;
                    $var3 = $var3.$array.data[var$15].$playerNetServerHandler;
                    if (!var$13)
                        break;
                    var$12 = $var3.$playerEntity.$chatVisibility;
                    if (var$12 == 2)
                        continue;
                    if (var$12 != 1)
                        break;
                    if (var$10.$isServer)
                        break;
                }
                try {
                    $var3 = $var3.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $var3 = jl_System_errCache;
                if ($var3 === null) {
                    var$11 = new otcic_JSStderrPrintStream;
                    $var3 = ji_ByteArrayOutputStream__init_();
                    ji_PrintStream__init_0(var$11, $var3);
                    jl_System_errCache = var$11;
                }
                $var3 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$8, $var3);
            }
            return;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_CommandServerSay_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 < 1)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$3 = 0;
                    while (var$3 < var$6) {
                        var$9 = var$5[var$3];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$4 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$4 + 1 | 0;
                            $par2ArrayOfStr[var$4] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$3 = var$3 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandSetSpawnpoint = $rt_classWithoutFields(nms_CommandBase),
nms_CommandSetSpawnpoint__init_ = $this => {
    return;
},
nms_CommandSetSpawnpoint__init_0 = () => {
    let var_0 = new nms_CommandSetSpawnpoint();
    nms_CommandSetSpawnpoint__init_(var_0);
    return var_0;
},
nms_CommandSetSpawnpoint_getCommandName = $this => {
    return $rt_s(1054);
},
nms_CommandSetSpawnpoint_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandSetSpawnpoint_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1055);
},
nms_CommandSetSpawnpoint_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var5, $var10, $var3, var$6, var$7, $var7, $var6, $var8, $var9, $var4, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();$var4 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var10 = $thread.pop();$var5 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        $var5 = $par2ArrayOfStr.length;
        if (!$var5) {
            if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                $var10 = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $var10.$suppressionEnabled = 1;
                $var10.$writableStackTrace = 1;
                $var10.$message = $rt_s(961);
                $var10.$errorObjects = $par2ArrayOfStr;
                $rt_throw($var10);
            }
            $var3 = $par1ICommandSender;
        } else {
            a: {
                $var10 = $par2ArrayOfStr[0];
                nms_PlayerSelector_$callClinit();
                var$6 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var10);
                if (var$6 !== null) {
                    var$6 = var$6.data;
                    if (var$6.length == 1) {
                        $var3 = var$6[0];
                        break a;
                    }
                }
                $var3 = null;
            }
            if ($var3 === null) {
                var$7 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                $var7 = 0;
                $var6 = var$7.$modCount;
                $var8 = var$7.$size();
                b: {
                    while (true) {
                        if (!($var7 >= $var8 ? 0 : 1)) {
                            $var3 = null;
                            break b;
                        }
                        if ($var6 < var$7.$modCount)
                            break;
                        $var9 = $var7 + 1 | 0;
                        $var3 = var$7.$get($var7);
                        if (jl_String_equalsIgnoreCase($var3.$username, $var10))
                            break b;
                        $var7 = $var9;
                    }
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                if ($var3 === null) {
                    $par1ICommandSender = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(948);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
            }
        }
        c: {
            if ($var5 == 4) {
                if ($var3.$worldObj === null)
                    break c;
                $var6 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], (-30000000), 30000000);
                $var7 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[2], 0, 256);
                $var8 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[3], (-30000000), 30000000);
                $var10 = new nms_ChunkCoordinates;
                $var10.$posX0 = $var6;
                $var10.$posY0 = $var7;
                $var10.$posZ0 = $var8;
                $var3.$spawnChunk = $var10;
                $var3.$spawnForced = 1;
                $var10 = $rt_s(1056);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 4);
                var$6 = $par2ArrayOfStr.data;
                var$6[0] = $var3.$username;
                if ($var6 >= (-128) && $var6 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var3 = jl_Integer_integerCache.data[$var6 + 128 | 0];
                } else {
                    $var3 = new jl_Integer;
                    $var3.$value = $var6;
                }
                var$6[1] = $var3;
                if ($var7 >= (-128) && $var7 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var3 = jl_Integer_integerCache.data[$var7 + 128 | 0];
                } else {
                    $var3 = new jl_Integer;
                    $var3.$value = $var7;
                }
                var$6[2] = $var3;
                if ($var8 >= (-128) && $var8 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var3 = jl_Integer_integerCache.data[$var8 + 128 | 0];
                } else {
                    $var3 = new jl_Integer;
                    $var3.$value = $var8;
                }
                var$6[3] = $var3;
                $var4 = 0;
                $var3 = nms_CommandBase_theAdmin;
                if ($var3 === null)
                    break c;
                $ptr = 1;
                continue main;
            }
            if ($var5 > 1) {
                $par1ICommandSender = new nms_WrongUsageException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1055);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            $var10 = nms_EntityPlayerMP_getPlayerCoordinates($var3);
            if ($var10 === null) {
                $var3.$spawnChunk = null;
                $var3.$spawnForced = 0;
            } else {
                var$7 = new nms_ChunkCoordinates;
                var$7.$posX0 = $var10.$posX0;
                var$7.$posY0 = $var10.$posY0;
                var$7.$posZ0 = $var10.$posZ0;
                $var3.$spawnChunk = var$7;
                $var3.$spawnForced = 1;
            }
            var$7 = $rt_s(1056);
            var$6 = $rt_createArray(jl_Object, 4);
            var$13 = var$6.data;
            var$13[0] = $var3.$username;
            $var9 = $var10.$posX0;
            if ($var9 >= (-128) && $var9 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var9 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var9;
            }
            var$13[1] = $var3;
            $var9 = $var10.$posY0;
            if ($var9 >= (-128) && $var9 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var9 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var9;
            }
            var$13[2] = $var3;
            $var9 = $var10.$posZ0;
            if ($var9 >= (-128) && $var9 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var10 = jl_Integer_integerCache.data[$var9 + 128 | 0];
            } else {
                $var10 = new jl_Integer;
                $var10.$value = $var9;
            }
            var$13[3] = $var10;
            $var4 = 0;
            $var10 = nms_CommandBase_theAdmin;
            if ($var10 !== null) {
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, $var4, $var10, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var10, $par1ICommandSender, $var4, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var5, $var10, $var3, var$6, var$7, $var7, $var6, $var8, $var9, $var4, var$13, $ptr);
},
nms_CommandSetSpawnpoint_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 1 && var$3 != 2)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$3 = 0;
                    while (var$3 < var$6) {
                        var$9 = var$5[var$3];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$7 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$7 + 1 | 0;
                            $par2ArrayOfStr[var$7] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$3 = var$3 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
},
nms_CommandSetSpawnpoint_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandGameRule = $rt_classWithoutFields(nms_CommandBase),
nms_CommandGameRule__init_ = $this => {
    return;
},
nms_CommandGameRule__init_0 = () => {
    let var_0 = new nms_CommandGameRule();
    nms_CommandGameRule__init_(var_0);
    return var_0;
},
nms_CommandGameRule_getCommandName = $this => {
    return $rt_s(1057);
},
nms_CommandGameRule_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandGameRule_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1058);
},
nms_CommandGameRule_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var6, $var7, var$6, $var5, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $par2ArrayOfStr = $par2ArrayOfStr.data;
            var$3 = $par2ArrayOfStr.length;
            if (var$3 == 2) {
                b: {
                    c: {
                        d: {
                            $var6 = $par2ArrayOfStr[0];
                            $var7 = $par2ArrayOfStr[1];
                            var$6 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$getGameRulesInstance();
                            $var5 = var$6.$theGameRules.$root;
                            var$8 = $var6;
                            var$9 = $var6;
                            if (var$8 !== var$9) {
                                var$3 = var$8.$nativeString.length;
                                var$10 = var$9.$nativeString.length;
                                if (var$3 < var$10)
                                    var$10 = var$3;
                                var$11 = 0;
                                while (true) {
                                    if (var$11 >= var$10) {
                                        var$8.$nativeString.length;
                                        var$9.$nativeString.length;
                                        break d;
                                    }
                                    if (var$11 < 0)
                                        break b;
                                    if (var$11 >= var$8.$nativeString.length)
                                        break b;
                                    var$12 = var$8.$nativeString.charCodeAt(var$11);
                                    if (var$11 < 0)
                                        break c;
                                    if (var$11 >= var$9.$nativeString.length)
                                        break c;
                                    if (var$12 - var$9.$nativeString.charCodeAt(var$11) | 0)
                                        break;
                                    var$11 = var$11 + 1 | 0;
                                }
                            }
                        }
                        e: {
                            f: {
                                g: while (true) {
                                    if ($var5 === null) {
                                        $var5 = null;
                                        break e;
                                    }
                                    h: {
                                        var$13 = $var5.$key0;
                                        if (var$8 !== var$13) {
                                            var$3 = var$8.$nativeString.length;
                                            var$10 = var$13.$nativeString.length;
                                            if (var$3 < var$10)
                                                var$10 = var$3;
                                            var$3 = 0;
                                            while (true) {
                                                if (var$3 >= var$10) {
                                                    var$11 = var$8.$nativeString.length - var$13.$nativeString.length | 0;
                                                    break h;
                                                }
                                                if (var$3 < 0)
                                                    break f;
                                                if (var$3 >= var$8.$nativeString.length)
                                                    break f;
                                                var$12 = var$8.$nativeString.charCodeAt(var$3);
                                                if (var$3 < 0)
                                                    break g;
                                                if (var$3 >= var$13.$nativeString.length)
                                                    break g;
                                                var$11 = var$12 - var$13.$nativeString.charCodeAt(var$3) | 0;
                                                if (var$11)
                                                    break;
                                                var$3 = var$3 + 1 | 0;
                                            }
                                        } else
                                            var$11 = 0;
                                    }
                                    if (!var$11)
                                        break e;
                                    $var5 = var$11 >= 0 ? $var5.$right : $var5.$left;
                                }
                                $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                                $par1ICommandSender.$suppressionEnabled = 1;
                                $par1ICommandSender.$writableStackTrace = 1;
                                $rt_throw($par1ICommandSender);
                            }
                            $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                            $par1ICommandSender.$suppressionEnabled = 1;
                            $par1ICommandSender.$writableStackTrace = 1;
                            $rt_throw($par1ICommandSender);
                        }
                        var$11 = $var5 === null ? 0 : 1;
                        i: {
                            if (!var$11) {
                                $var7 = $rt_s(1059);
                                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                                $par2ArrayOfStr.data[0] = $var6;
                                var$11 = 0;
                                $var6 = nms_CommandBase_theAdmin;
                                if ($var6 === null)
                                    break i;
                                $ptr = 2;
                                continue main;
                            }
                            j: {
                                $var5 = var$6.$theGameRules.$root;
                                if (var$8 !== var$9) {
                                    var$3 = var$8.$nativeString.length;
                                    var$10 = var$9.$nativeString.length;
                                    if (var$3 < var$10)
                                        var$10 = var$3;
                                    var$11 = 0;
                                    k: {
                                        while (true) {
                                            if (var$11 >= var$10) {
                                                var$8.$nativeString.length;
                                                var$9.$nativeString.length;
                                                break j;
                                            }
                                            if (var$11 < 0)
                                                break k;
                                            if (var$11 >= var$8.$nativeString.length)
                                                break k;
                                            var$12 = var$8.$nativeString.charCodeAt(var$11);
                                            if (var$11 < 0)
                                                break;
                                            if (var$11 >= var$9.$nativeString.length)
                                                break;
                                            if (var$12 - var$9.$nativeString.charCodeAt(var$11) | 0)
                                                break j;
                                            var$11 = var$11 + 1 | 0;
                                        }
                                        $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                                        $par1ICommandSender.$suppressionEnabled = 1;
                                        $par1ICommandSender.$writableStackTrace = 1;
                                        $rt_throw($par1ICommandSender);
                                    }
                                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                                    $par1ICommandSender.$suppressionEnabled = 1;
                                    $par1ICommandSender.$writableStackTrace = 1;
                                    $rt_throw($par1ICommandSender);
                                }
                            }
                            l: {
                                m: {
                                    n: while (true) {
                                        if ($var5 === null) {
                                            $var5 = null;
                                            break l;
                                        }
                                        o: {
                                            var$13 = $var5.$key0;
                                            if (var$8 === var$13)
                                                var$11 = 0;
                                            else {
                                                var$3 = var$8.$nativeString.length;
                                                var$10 = var$13.$nativeString.length;
                                                if (var$3 < var$10)
                                                    var$10 = var$3;
                                                var$3 = 0;
                                                while (true) {
                                                    if (var$3 >= var$10) {
                                                        var$11 = var$8.$nativeString.length - var$13.$nativeString.length | 0;
                                                        break o;
                                                    }
                                                    if (var$3 < 0)
                                                        break m;
                                                    if (var$3 >= var$8.$nativeString.length)
                                                        break m;
                                                    var$12 = var$8.$nativeString.charCodeAt(var$3);
                                                    if (var$3 < 0)
                                                        break n;
                                                    if (var$3 >= var$13.$nativeString.length)
                                                        break n;
                                                    var$11 = var$12 - var$13.$nativeString.charCodeAt(var$3) | 0;
                                                    if (var$11)
                                                        break;
                                                    var$3 = var$3 + 1 | 0;
                                                }
                                            }
                                        }
                                        if (!var$11)
                                            break l;
                                        $var5 = var$11 >= 0 ? $var5.$right : $var5.$left;
                                    }
                                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                                    $par1ICommandSender.$suppressionEnabled = 1;
                                    $par1ICommandSender.$writableStackTrace = 1;
                                    $rt_throw($par1ICommandSender);
                                }
                                $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                                $par1ICommandSender.$suppressionEnabled = 1;
                                $par1ICommandSender.$writableStackTrace = 1;
                                $rt_throw($par1ICommandSender);
                            }
                            $var5 = $var5 === null ? null : $var5.$value2;
                            if ($var5 !== null) {
                                p: {
                                    $var5.$valueString = $var7;
                                    if ($var7 !== null) {
                                        $var6 = $var7.$nativeString.toLowerCase();
                                        var$8 = $var6 === $var7.$nativeString ? $var7 : jl_String__init_0($var6);
                                        if (var$8 === $rt_s(898))
                                            var$11 = 1;
                                        else if (!($rt_s(898) instanceof jl_String))
                                            var$11 = 0;
                                        else {
                                            $var6 = $rt_s(898);
                                            var$11 = var$8.$nativeString !== $var6.$nativeString ? 0 : 1;
                                        }
                                        if (var$11) {
                                            var$11 = 1;
                                            break p;
                                        }
                                    }
                                    var$11 = 0;
                                }
                                $var5.$valueBoolean = var$11;
                                q: {
                                    try {
                                        $var5.$valueInteger = jl_Integer_parseInt($var7);
                                        break q;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_NumberFormatException) {
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                r: {
                                    try {
                                        $var5.$valueDouble = jl_Double_parseDouble($var7);
                                        break r;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_NumberFormatException) {
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                            } else {
                                s: {
                                    var$6 = var$6.$theGameRules;
                                    $var5 = new nms_GameRuleValue;
                                    $var5.$valueString = $var7;
                                    if ($var7 !== null) {
                                        var$13 = $var7.$nativeString.toLowerCase();
                                        var$14 = var$13 === $var7.$nativeString ? $var7 : jl_String__init_0(var$13);
                                        if (var$14 === $rt_s(898))
                                            var$11 = 1;
                                        else if (!($rt_s(898) instanceof jl_String))
                                            var$11 = 0;
                                        else {
                                            var$13 = $rt_s(898);
                                            var$11 = var$14.$nativeString !== var$13.$nativeString ? 0 : 1;
                                        }
                                        if (var$11) {
                                            var$11 = 1;
                                            break s;
                                        }
                                    }
                                    var$11 = 0;
                                }
                                $var5.$valueBoolean = var$11;
                                t: {
                                    try {
                                        $var5.$valueInteger = jl_Integer_parseInt($var7);
                                        break t;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_NumberFormatException) {
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                u: {
                                    try {
                                        $var5.$valueDouble = jl_Double_parseDouble($var7);
                                        break u;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_NumberFormatException) {
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                }
                                var$15 = var$6.$root;
                                if (var$15 === null) {
                                    var$15 = new ju_TreeMap$TreeNode;
                                    $var7 = null;
                                    var$15.$key0 = $var6;
                                    var$15.$value2 = $var7;
                                    var$15.$height = 1;
                                    var$15.$size1 = 1;
                                } else {
                                    v: {
                                        $var7 = var$15.$key0;
                                        if (var$8 === $var7)
                                            var$11 = 0;
                                        else {
                                            var$3 = var$8.$nativeString.length;
                                            var$10 = $var7.$nativeString.length;
                                            if (var$3 < var$10)
                                                var$10 = var$3;
                                            var$3 = 0;
                                            w: {
                                                while (true) {
                                                    if (var$3 >= var$10) {
                                                        var$11 = var$8.$nativeString.length - $var7.$nativeString.length | 0;
                                                        break v;
                                                    }
                                                    if (var$3 < 0)
                                                        break w;
                                                    if (var$3 >= var$8.$nativeString.length)
                                                        break w;
                                                    var$12 = var$8.$nativeString.charCodeAt(var$3);
                                                    if (var$3 < 0)
                                                        break;
                                                    if (var$3 >= $var7.$nativeString.length)
                                                        break;
                                                    var$11 = var$12 - $var7.$nativeString.charCodeAt(var$3) | 0;
                                                    if (var$11)
                                                        break v;
                                                    var$3 = var$3 + 1 | 0;
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                        }
                                    }
                                    if (var$11) {
                                        if (var$11 >= 0) {
                                            var$16 = var$15.$right;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                $var7 = null;
                                                var$16.$key0 = $var6;
                                                var$16.$value2 = $var7;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                x: {
                                                    $var7 = var$16.$key0;
                                                    if (var$8 === $var7)
                                                        var$11 = 0;
                                                    else {
                                                        var$3 = jl_Math_min(jl_String_length(var$8), jl_String_length($var7));
                                                        var$12 = 0;
                                                        while (true) {
                                                            if (var$12 >= var$3) {
                                                                var$11 = jl_String_length(var$8) - jl_String_length($var7) | 0;
                                                                break x;
                                                            }
                                                            var$11 = jl_String_charAt(var$8, var$12) - jl_String_charAt($var7, var$12) | 0;
                                                            if (var$11)
                                                                break;
                                                            var$12 = var$12 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$11) {
                                                    if (var$11 >= 0) {
                                                        $var7 = var$16.$right;
                                                        if ($var7 === null) {
                                                            $var7 = new ju_TreeMap$TreeNode;
                                                            var$13 = null;
                                                            jl_Object__init_($var7);
                                                            $var7.$key0 = $var6;
                                                            $var7.$value2 = var$13;
                                                            $var7.$height = 1;
                                                            $var7.$size1 = 1;
                                                        } else {
                                                            var$11 = jl_String_compareTo0(var$8, $var7.$key0);
                                                            if (var$11) {
                                                                if (var$11 >= 0) {
                                                                    var$13 = $var7.$right;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, $var6, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, var$13.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$14 = var$13.$right;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$14;
                                                                            } else {
                                                                                var$14 = var$13.$left;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$14;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    $var7.$right = var$13;
                                                                } else {
                                                                    var$13 = $var7.$left;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, $var6, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, var$13.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$14 = var$13.$right;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$14;
                                                                            } else {
                                                                                var$14 = var$13.$left;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$14;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    $var7.$left = var$13;
                                                                }
                                                                ju_TreeMap$TreeNode_fix($var7);
                                                                $var7 = ju_TreeMap$TreeNode_balance($var7);
                                                            }
                                                        }
                                                        var$16.$right = $var7;
                                                    } else {
                                                        $var7 = var$16.$left;
                                                        if ($var7 === null) {
                                                            $var7 = new ju_TreeMap$TreeNode;
                                                            var$13 = null;
                                                            jl_Object__init_($var7);
                                                            $var7.$key0 = $var6;
                                                            $var7.$value2 = var$13;
                                                            $var7.$height = 1;
                                                            $var7.$size1 = 1;
                                                        } else {
                                                            var$11 = jl_String_compareTo0(var$8, $var7.$key0);
                                                            if (var$11) {
                                                                if (var$11 >= 0) {
                                                                    var$13 = $var7.$right;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, $var6, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, var$13.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$14 = var$13.$right;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$14;
                                                                            } else {
                                                                                var$14 = var$13.$left;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$14;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    $var7.$right = var$13;
                                                                } else {
                                                                    var$13 = $var7.$left;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, $var6, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, var$13.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$14 = var$13.$right;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$14;
                                                                            } else {
                                                                                var$14 = var$13.$left;
                                                                                if (var$14 === null)
                                                                                    var$14 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$14.$right = ju_TreeMap_getOrCreateNode(var$6, var$14.$right, $var6);
                                                                                        else
                                                                                            var$14.$left = ju_TreeMap_getOrCreateNode(var$6, var$14.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$14;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    $var7.$left = var$13;
                                                                }
                                                                ju_TreeMap$TreeNode_fix($var7);
                                                                $var7 = ju_TreeMap$TreeNode_balance($var7);
                                                            }
                                                        }
                                                        var$16.$left = $var7;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$right = var$16;
                                        } else {
                                            var$13 = var$15.$left;
                                            if (var$13 === null) {
                                                var$13 = new ju_TreeMap$TreeNode;
                                                $var7 = null;
                                                var$13.$key0 = $var6;
                                                var$13.$value2 = $var7;
                                                var$13.$height = 1;
                                                var$13.$size1 = 1;
                                            } else {
                                                y: {
                                                    $var7 = var$13.$key0;
                                                    if (var$8 === $var7)
                                                        var$11 = 0;
                                                    else {
                                                        var$3 = jl_Math_min(jl_String_length(var$8), jl_String_length($var7));
                                                        var$12 = 0;
                                                        while (true) {
                                                            if (var$12 >= var$3) {
                                                                var$11 = jl_String_length(var$8) - jl_String_length($var7) | 0;
                                                                break y;
                                                            }
                                                            var$11 = jl_String_charAt(var$8, var$12) - jl_String_charAt($var7, var$12) | 0;
                                                            if (var$11)
                                                                break;
                                                            var$12 = var$12 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$11) {
                                                    if (var$11 >= 0) {
                                                        var$14 = var$13.$right;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            $var7 = null;
                                                            jl_Object__init_(var$14);
                                                            var$14.$key0 = $var6;
                                                            var$14.$value2 = $var7;
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            var$11 = jl_String_compareTo0(var$8, var$14.$key0);
                                                            if (var$11) {
                                                                if (var$11 >= 0) {
                                                                    $var7 = var$14.$right;
                                                                    if ($var7 === null) {
                                                                        $var7 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var7, $var6, null);
                                                                        $var7.$height = 1;
                                                                        $var7.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, $var7.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$17 = $var7.$right;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$right = var$17;
                                                                            } else {
                                                                                var$17 = $var7.$left;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$left = var$17;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var7);
                                                                            $var7 = ju_TreeMap$TreeNode_balance($var7);
                                                                        }
                                                                    }
                                                                    var$14.$right = $var7;
                                                                } else {
                                                                    $var7 = var$14.$left;
                                                                    if ($var7 === null) {
                                                                        $var7 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var7, $var6, null);
                                                                        $var7.$height = 1;
                                                                        $var7.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, $var7.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$17 = $var7.$right;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$right = var$17;
                                                                            } else {
                                                                                var$17 = $var7.$left;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$left = var$17;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var7);
                                                                            $var7 = ju_TreeMap$TreeNode_balance($var7);
                                                                        }
                                                                    }
                                                                    var$14.$left = $var7;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$13.$right = var$14;
                                                    } else {
                                                        var$14 = var$13.$left;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            $var7 = null;
                                                            jl_Object__init_(var$14);
                                                            var$14.$key0 = $var6;
                                                            var$14.$value2 = $var7;
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            var$11 = jl_String_compareTo0(var$8, var$14.$key0);
                                                            if (var$11) {
                                                                if (var$11 >= 0) {
                                                                    $var7 = var$14.$right;
                                                                    if ($var7 === null) {
                                                                        $var7 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var7, $var6, null);
                                                                        $var7.$height = 1;
                                                                        $var7.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, $var7.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$17 = $var7.$right;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$right = var$17;
                                                                            } else {
                                                                                var$17 = $var7.$left;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$left = var$17;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var7);
                                                                            $var7 = ju_TreeMap$TreeNode_balance($var7);
                                                                        }
                                                                    }
                                                                    var$14.$right = $var7;
                                                                } else {
                                                                    $var7 = var$14.$left;
                                                                    if ($var7 === null) {
                                                                        $var7 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var7, $var6, null);
                                                                        $var7.$height = 1;
                                                                        $var7.$size1 = 1;
                                                                    } else {
                                                                        var$11 = jl_String_compareTo(var$8, $var7.$key0);
                                                                        if (var$11) {
                                                                            if (var$11 >= 0) {
                                                                                var$17 = $var7.$right;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$right = var$17;
                                                                            } else {
                                                                                var$17 = $var7.$left;
                                                                                if (var$17 === null)
                                                                                    var$17 = ju_TreeMap$TreeNode__init_($var6);
                                                                                else {
                                                                                    var$11 = ju_Comparator$NaturalOrder_compare(var$6.$comparator, $var6, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                    if (var$11) {
                                                                                        if (var$11 >= 0)
                                                                                            var$17.$right = ju_TreeMap_getOrCreateNode(var$6, var$17.$right, $var6);
                                                                                        else
                                                                                            var$17.$left = ju_TreeMap_getOrCreateNode(var$6, var$17.$left, $var6);
                                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                    }
                                                                                }
                                                                                $var7.$left = var$17;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var7);
                                                                            $var7 = ju_TreeMap$TreeNode_balance($var7);
                                                                        }
                                                                    }
                                                                    var$14.$left = $var7;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$13.$left = var$14;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                }
                                            }
                                            var$15.$left = var$13;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$15);
                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                    }
                                }
                                z: {
                                    var$6.$root = var$15;
                                    if (var$8 !== var$9) {
                                        var$3 = var$8.$nativeString.length;
                                        var$10 = var$9.$nativeString.length;
                                        if (var$3 < var$10)
                                            var$10 = var$3;
                                        var$11 = 0;
                                        ba: {
                                            while (true) {
                                                if (var$11 >= var$10) {
                                                    var$8.$nativeString.length;
                                                    var$9.$nativeString.length;
                                                    break z;
                                                }
                                                if (var$11 < 0)
                                                    break ba;
                                                if (var$11 >= var$8.$nativeString.length)
                                                    break ba;
                                                var$12 = var$8.$nativeString.charCodeAt(var$11);
                                                if (var$11 < 0)
                                                    break;
                                                if (var$11 >= var$9.$nativeString.length)
                                                    break;
                                                if (var$12 - var$9.$nativeString.charCodeAt(var$11) | 0)
                                                    break z;
                                                var$11 = var$11 + 1 | 0;
                                            }
                                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                        }
                                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                    }
                                }
                                bb: {
                                    bc: {
                                        bd: while (true) {
                                            if (var$15 === null) {
                                                var$15 = null;
                                                break bb;
                                            }
                                            be: {
                                                $var6 = var$15.$key0;
                                                if (var$8 === $var6)
                                                    var$11 = 0;
                                                else {
                                                    var$3 = var$8.$nativeString.length;
                                                    var$10 = $var6.$nativeString.length;
                                                    if (var$3 < var$10)
                                                        var$10 = var$3;
                                                    var$3 = 0;
                                                    while (true) {
                                                        if (var$3 >= var$10) {
                                                            var$11 = var$8.$nativeString.length - $var6.$nativeString.length | 0;
                                                            break be;
                                                        }
                                                        if (var$3 < 0)
                                                            break bc;
                                                        if (var$3 >= var$8.$nativeString.length)
                                                            break bc;
                                                        var$12 = var$8.$nativeString.charCodeAt(var$3);
                                                        if (var$3 < 0)
                                                            break bd;
                                                        if (var$3 >= $var6.$nativeString.length)
                                                            break bd;
                                                        var$11 = var$12 - $var6.$nativeString.charCodeAt(var$3) | 0;
                                                        if (var$11)
                                                            break;
                                                        var$3 = var$3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            if (!var$11)
                                                break bb;
                                            var$15 = var$11 >= 0 ? var$15.$right : var$15.$left;
                                        }
                                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                    }
                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                }
                                var$15.$value2 = $var5;
                                var$15.$value2 = $var5;
                                var$6.$modCount2 = var$6.$modCount2 + 1 | 0;
                            }
                            $var6 = $rt_s(1060);
                            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                            var$11 = 0;
                            $var7 = nms_CommandBase_theAdmin;
                            if ($var7 !== null) {
                                $ptr = 5;
                                continue main;
                            }
                        }
                        break a;
                    }
                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            if (var$3 != 1) {
                if (var$3) {
                    $var6 = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $var6.$suppressionEnabled = 1;
                    $var6.$writableStackTrace = 1;
                    $var6.$message = $rt_s(1058);
                    $var6.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($var6);
                }
                $var7 = (nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$getGameRulesInstance()).$theGameRules;
                if ($var7.$cachedKeySet === null) {
                    $var5 = new ju_AbstractMap$KeySet;
                    $var5.$this$03 = $var7;
                    $var7.$cachedKeySet = $var5;
                }
                $var6 = jl_String_join($rt_s(133), ju_AbstractCollection_toArray($var7.$cachedKeySet, $rt_createArray(jl_String, 0)));
                $ptr = 1;
                continue main;
            }
            bf: {
                $var6 = $par2ArrayOfStr[0];
                var$6 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$getGameRulesInstance();
                $var7 = var$6.$theGameRules.$root;
                var$8 = $var6;
                var$9 = $var6;
                if (var$8 !== var$9) {
                    var$3 = var$8.$nativeString.length;
                    var$10 = var$9.$nativeString.length;
                    if (var$3 < var$10)
                        var$10 = var$3;
                    var$11 = 0;
                    bg: {
                        while (true) {
                            if (var$11 >= var$10) {
                                var$8.$nativeString.length;
                                var$9.$nativeString.length;
                                break bf;
                            }
                            if (var$11 < 0)
                                break bg;
                            if (var$11 >= var$8.$nativeString.length)
                                break bg;
                            var$12 = var$8.$nativeString.charCodeAt(var$11);
                            if (var$11 < 0)
                                break;
                            if (var$11 >= var$9.$nativeString.length)
                                break;
                            if (var$12 - var$9.$nativeString.charCodeAt(var$11) | 0)
                                break bf;
                            var$11 = var$11 + 1 | 0;
                        }
                        $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
            }
            bh: {
                bi: {
                    bj: while (true) {
                        if ($var7 === null) {
                            $var7 = null;
                            break bh;
                        }
                        bk: {
                            $var5 = $var7.$key0;
                            if (var$8 === $var5)
                                var$11 = 0;
                            else {
                                var$12 = var$8.$nativeString.length;
                                var$3 = $var5.$nativeString.length;
                                if (var$12 < var$3)
                                    var$3 = var$12;
                                var$12 = 0;
                                while (true) {
                                    if (var$12 >= var$3) {
                                        var$11 = var$8.$nativeString.length - $var5.$nativeString.length | 0;
                                        break bk;
                                    }
                                    if (var$12 < 0)
                                        break bi;
                                    if (var$12 >= var$8.$nativeString.length)
                                        break bi;
                                    var$10 = var$8.$nativeString.charCodeAt(var$12);
                                    if (var$12 < 0)
                                        break bj;
                                    if (var$12 >= $var5.$nativeString.length)
                                        break bj;
                                    var$11 = var$10 - $var5.$nativeString.charCodeAt(var$12) | 0;
                                    if (var$11)
                                        break;
                                    var$12 = var$12 + 1 | 0;
                                }
                            }
                        }
                        if (!var$11)
                            break bh;
                        $var7 = var$11 >= 0 ? $var7.$right : $var7.$left;
                    }
                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            if ($var7 === null ? 0 : 1) {
                bl: {
                    $var7 = var$6.$theGameRules.$root;
                    if (var$8 !== var$9) {
                        var$3 = var$8.$nativeString.length;
                        var$10 = var$9.$nativeString.length;
                        if (var$3 < var$10)
                            var$10 = var$3;
                        var$11 = 0;
                        bm: {
                            while (true) {
                                if (var$11 >= var$10) {
                                    var$8.$nativeString.length;
                                    var$9.$nativeString.length;
                                    break bl;
                                }
                                if (var$11 < 0)
                                    break bm;
                                if (var$11 >= var$8.$nativeString.length)
                                    break bm;
                                var$12 = var$8.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break;
                                if (var$11 >= var$9.$nativeString.length)
                                    break;
                                if (var$12 - var$9.$nativeString.charCodeAt(var$11) | 0)
                                    break bl;
                                var$11 = var$11 + 1 | 0;
                            }
                            $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                            $par1ICommandSender.$suppressionEnabled = 1;
                            $par1ICommandSender.$writableStackTrace = 1;
                            $rt_throw($par1ICommandSender);
                        }
                        $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                }
                bn: {
                    bo: {
                        bp: while (true) {
                            if ($var7 === null) {
                                $var7 = null;
                                break bn;
                            }
                            bq: {
                                $var5 = $var7.$key0;
                                if (var$8 === $var5)
                                    var$11 = 0;
                                else {
                                    var$3 = var$8.$nativeString.length;
                                    var$10 = $var5.$nativeString.length;
                                    if (var$3 < var$10)
                                        var$10 = var$3;
                                    var$3 = 0;
                                    while (true) {
                                        if (var$3 >= var$10) {
                                            var$11 = var$8.$nativeString.length - $var5.$nativeString.length | 0;
                                            break bq;
                                        }
                                        if (var$3 < 0)
                                            break bo;
                                        if (var$3 >= var$8.$nativeString.length)
                                            break bo;
                                        var$12 = var$8.$nativeString.charCodeAt(var$3);
                                        if (var$3 < 0)
                                            break bp;
                                        if (var$3 >= $var5.$nativeString.length)
                                            break bp;
                                        var$11 = var$12 - $var5.$nativeString.charCodeAt(var$3) | 0;
                                        if (var$11)
                                            break;
                                        var$3 = var$3 + 1 | 0;
                                    }
                                }
                            }
                            if (!var$11)
                                break bn;
                            $var7 = var$11 >= 0 ? $var7.$right : $var7.$left;
                        }
                        $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    $par1ICommandSender = new jl_StringIndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                $var7 = $var7 === null ? null : $var7.$value2;
                $var5 = $var7 === null ? $rt_s(3) : $var7.$valueString;
                $var7 = new jl_StringBuilder;
                $var7.$buffer = $rt_createCharArray(16);
                var$11 = $var7.$length0;
                if ($var6 === null)
                    $var6 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var7, var$11, $var6);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $rt_s(1061));
                var$11 = $var7.$length0;
                if ($var5 === null)
                    $var5 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var7, var$11, $var5);
                $var6 = new jl_String;
                $par2ArrayOfStr = $var7.$buffer;
                var$18 = $par2ArrayOfStr.data;
                var$3 = $var7.$length0;
                var$12 = var$18.length;
                if (var$3 >= 0 && var$3 <= (var$12 - 0 | 0)) {
                    $var6.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$3);
                    $ptr = 4;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            $var7 = $rt_s(1059);
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var6;
            var$11 = 0;
            $var6 = nms_CommandBase_theAdmin;
            if ($var6 !== null) {
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var6, $par1ICommandSender, var$11, $var7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_ServerCommandManager_notifyAdmins($var6, $par1ICommandSender, var$11, $var7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $par1ICommandSender.$sendChatToPlayer($var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_ServerCommandManager_notifyAdmins($var7, $par1ICommandSender, var$11, $var6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var6, $var7, var$6, $var5, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_CommandGameRule_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    var$3 = $par2ArrayOfStr.length;
    if (var$3 != 1) {
        if (var$3 != 2)
            $par1ICommandSender = null;
        else {
            var$4 = $rt_createArray(jl_String, 2).data;
            var$4[0] = $rt_s(898);
            var$4[1] = $rt_s(897);
            var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
            $par1ICommandSender = new ju_ArrayList;
            $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
            var$6 = var$4.length;
            var$3 = 0;
            while (var$3 < var$6) {
                var$7 = var$4[var$3];
                if (jl_String_regionMatches(var$7, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                    $par2ArrayOfStr = $par1ICommandSender.$array.data;
                    var$8 = $par1ICommandSender.$size0;
                    $par1ICommandSender.$size0 = var$8 + 1 | 0;
                    $par2ArrayOfStr[var$8] = var$7;
                    $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                }
                var$3 = var$3 + 1 | 0;
            }
        }
    } else {
        $par1ICommandSender = (nms_MinecraftServer_mcServer.$worldServers.data[0].$worldInfo.$getGameRulesInstance()).$theGameRules;
        if ($par1ICommandSender.$cachedKeySet === null) {
            var$5 = new ju_AbstractMap$KeySet;
            var$5.$this$03 = $par1ICommandSender;
            $par1ICommandSender.$cachedKeySet = var$5;
        }
        var$4 = (ju_AbstractCollection_toArray($par1ICommandSender.$cachedKeySet, $rt_createArray(jl_String, 0))).data;
        var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
        $par1ICommandSender = new ju_ArrayList;
        $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
        var$3 = var$4.length;
        var$9 = 0;
        while (var$9 < var$3) {
            var$7 = var$4[var$9];
            if (jl_String_regionMatches(var$7, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                $par2ArrayOfStr = $par1ICommandSender.$array.data;
                var$8 = $par1ICommandSender.$size0;
                $par1ICommandSender.$size0 = var$8 + 1 | 0;
                $par2ArrayOfStr[var$8] = var$7;
                $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
            }
            var$9 = var$9 + 1 | 0;
        }
    }
    return $par1ICommandSender;
},
nms_CommandClearInventory = $rt_classWithoutFields(nms_CommandBase),
nms_CommandClearInventory__init_ = $this => {
    return;
},
nms_CommandClearInventory__init_0 = () => {
    let var_0 = new nms_CommandClearInventory();
    nms_CommandClearInventory__init_(var_0);
    return var_0;
},
nms_CommandClearInventory_getCommandName = $this => {
    return $rt_s(988);
},
nms_CommandClearInventory_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1062);
},
nms_CommandClearInventory_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandClearInventory_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let $var5, var$4, $var3, var$6, var$7, var$8, var$9, var$10, $var6, $var4, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var4 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var5 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        $var5 = $par2ArrayOfStr.length;
        if (!$var5) {
            if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                var$4 = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                var$4.$message = $rt_s(961);
                var$4.$errorObjects = $par2ArrayOfStr;
                $rt_throw(var$4);
            }
            $var3 = $par1ICommandSender;
        } else {
            a: {
                var$4 = $par2ArrayOfStr[0];
                nms_PlayerSelector_$callClinit();
                var$6 = nms_PlayerSelector_matchPlayers($par1ICommandSender, var$4);
                if (var$6 !== null) {
                    var$6 = var$6.data;
                    if (var$6.length == 1) {
                        $var3 = var$6[0];
                        break a;
                    }
                }
                $var3 = null;
            }
            if ($var3 === null) {
                var$7 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                var$8 = 0;
                var$9 = var$7.$modCount;
                var$10 = var$7.$size();
                b: {
                    while (true) {
                        if (!(var$8 >= var$10 ? 0 : 1)) {
                            $var3 = null;
                            break b;
                        }
                        if (var$9 < var$7.$modCount)
                            break;
                        $var6 = var$8 + 1 | 0;
                        $var3 = var$7.$get(var$8);
                        if (jl_String_equalsIgnoreCase($var3.$username, var$4))
                            break b;
                        var$8 = $var6;
                    }
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                if ($var3 === null) {
                    $par1ICommandSender = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(948);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
            }
        }
        $var4 = $var5 < 2 ? (-1) : nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[1], 1, 2147483647);
        $var5 = $var5 < 3 ? (-1) : nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[2], 0, 2147483647);
        $var6 = nms_InventoryPlayer_clearInventory($var3.$inventory0, $var4, $var5);
        var$4 = $var3.$inventoryContainer;
        $ptr = 1;
    case 1:
        nms_Container_detectAndSendChanges(var$4);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var3.$capabilities.$isCreativeMode && !$var3.$playerInventoryBeingManipulated) {
            var$7 = $var3.$playerNetServerHandler;
            var$4 = new nms_Packet103SetSlot;
            var$13 = $var3.$inventory0.$itemStack;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$4.$windowId1 = (-1);
            var$4.$itemSlot = (-1);
            if (var$13 !== null) {
                var$14 = new nms_ItemStack;
                $var4 = var$13.$itemID;
                $var5 = var$13.$stackSize;
                var$9 = var$13.$itemDamage;
                nms_ItemStack_$callClinit();
                var$14.$itemID = $var4;
                var$14.$stackSize = $var5;
                var$14.$itemDamage = var$9;
                if (var$9 < 0)
                    var$14.$itemDamage = 0;
                var$13 = var$13.$stackTagCompound;
                if (var$13 !== null) {
                    var$15 = new nms_NBTTagCompound;
                    var$16 = var$13.$name;
                    if (var$16 === null)
                        var$16 = $rt_s(3);
                    var$15.$name = var$16;
                    var$16 = new ju_HashMap;
                    ju_AbstractMap__init_(var$16);
                    $var4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$16.$elementData = ju_HashMap_newElementArray(var$16, $var4);
                    var$16.$loadFactor = 0.75;
                    ju_HashMap_computeThreshold(var$16);
                    var$15.$tagMap = var$16;
                    var$17 = var$13.$tagMap;
                    if (var$17.$cachedKeySet === null) {
                        var$16 = new ju_HashMap$1;
                        var$16.$this$0 = var$17;
                        jl_Object__init_(var$16);
                        var$17.$cachedKeySet = var$16;
                    }
                    var$18 = var$17.$cachedKeySet.$iterator();
                    while (var$18.$hasNext()) {
                        var$19 = var$18.$next();
                        var$16 = var$13.$tagMap;
                        if (var$19 === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            c: {
                                if (!var$19.$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= var$19.$nativeString.length)
                                            break c;
                                        var$19.$hashCode1 = (31 * var$19.$hashCode1 | 0) + var$19.$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = var$19.$hashCode1;
                            $par2ArrayOfStr = var$16.$elementData.data;
                            var$16 = $par2ArrayOfStr[var$9 & ($par2ArrayOfStr.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == var$9) {
                                    var$17 = var$16.$key;
                                    if (var$19 !== var$17 && !jl_String_equals(var$19, var$17) ? 0 : 1)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$16 = var$16 === null ? null : var$16.$value0;
                        var$16 = var$16.$copy();
                        var$17 = var$15.$tagMap;
                        if (var$19 !== null)
                            var$16.$name = var$19;
                        else
                            var$16.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$17, var$19, var$16);
                    }
                    var$14.$stackTagCompound = var$15;
                }
                var$13 = var$14;
            }
            d: {
                var$4.$myItemStack = var$13;
                if (var$4 instanceof nms_Packet3Chat) {
                    var$14 = var$4;
                    $var5 = var$7.$playerEntity.$chatVisibility;
                    if ($var5 == 2)
                        break d;
                    if ($var5 == 1 && !var$14.$isServer)
                        break d;
                }
                try {
                    var$7 = var$7.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$4 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$14 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$14);
                    var$14.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$7, var$14);
                    var$7.$sb = jl_StringBuilder__init_();
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace(var$4, jl_System_errCache);
            }
        }
        if (!$var6) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var3.$username;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1063);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        var$4 = $rt_s(1064);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        var$6 = $par2ArrayOfStr.data;
        var$6[0] = $var3.$username;
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var3 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            $var3 = new jl_Integer;
            $var3.$value = $var6;
        }
        var$6[1] = $var3;
        $var4 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 2;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var3, $par1ICommandSender, $var4, var$4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$14 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$14);
                var$14.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$14);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        if (!$var6) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var3.$username;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1063);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        var$4 = $rt_s(1064);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        var$6 = $par2ArrayOfStr.data;
        var$6[0] = $var3.$username;
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var3 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            $var3 = new jl_Integer;
            $var3.$value = $var6;
        }
        var$6[1] = $var3;
        $var4 = 0;
        $var3 = nms_CommandBase_theAdmin;
        if ($var3 === null)
            return;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $var5, var$4, $var3, var$6, var$7, var$8, var$9, var$10, $var6, $var4, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_CommandClearInventory_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 != 1)
            $par1ICommandSender = null;
        else {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$4 = $par1ICommandSender.$size0;
            var$5 = $rt_createArray(jl_String, var$4).data;
            var$6 = 0;
            while (true) {
                var$7 = $rt_compare(var$6, var$4);
                if (var$7 >= 0) {
                    var$8 = $par2ArrayOfStr[var$3 - 1 | 0];
                    $par1ICommandSender = new ju_ArrayList;
                    $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$5.length;
                    var$7 = 0;
                    while (var$7 < var$6) {
                        var$9 = var$5[var$7];
                        if (jl_String_regionMatches(var$9, 1, 0, var$8, 0, var$8.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                            $par2ArrayOfStr = $par1ICommandSender.$array.data;
                            var$4 = $par1ICommandSender.$size0;
                            $par1ICommandSender.$size0 = var$4 + 1 | 0;
                            $par2ArrayOfStr[var$4] = var$9;
                            $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                        }
                        var$7 = var$7 + 1 | 0;
                    }
                    break a;
                }
                if (var$6 < 0)
                    break;
                if (var$7 >= 0)
                    break;
                var$5[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
    }
    return $par1ICommandSender;
};
let nms_CommandClearInventory_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_ServerCommandTestFor = $rt_classWithoutFields(nms_CommandBase),
nms_ServerCommandTestFor__init_ = $this => {
    return;
},
nms_ServerCommandTestFor__init_0 = () => {
    let var_0 = new nms_ServerCommandTestFor();
    nms_ServerCommandTestFor__init_(var_0);
    return var_0;
},
nms_ServerCommandTestFor_getCommandName = $this => {
    return $rt_s(1065);
},
nms_ServerCommandTestFor_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_ServerCommandTestFor_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1066);
},
nms_ServerCommandTestFor_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    if ($par2ArrayOfStr.length != 1) {
        $par1ICommandSender = new nms_WrongUsageException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $par1ICommandSender.$message = $rt_s(1066);
        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
        $rt_throw($par1ICommandSender);
    }
    if (!($par1ICommandSender instanceof nms_TileEntityCommandBlock)) {
        $par1ICommandSender = new nms_CommandException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $par1ICommandSender.$message = $rt_s(1067);
        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
        $rt_throw($par1ICommandSender);
    }
    a: {
        var$3 = $par2ArrayOfStr[0];
        nms_PlayerSelector_$callClinit();
        $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, var$3);
        if ($par2ArrayOfStr !== null) {
            $par2ArrayOfStr = $par2ArrayOfStr.data;
            if ($par2ArrayOfStr.length == 1) {
                $par1ICommandSender = $par2ArrayOfStr[0];
                break a;
            }
        }
        $par1ICommandSender = null;
    }
    if ($par1ICommandSender === null) {
        var$4 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
        var$5 = 0;
        var$6 = var$4.$modCount;
        var$7 = var$4.$size();
        b: {
            while (true) {
                if (!(var$5 >= var$7 ? 0 : 1)) {
                    $par1ICommandSender = null;
                    break b;
                }
                if (var$6 < var$4.$modCount)
                    break;
                var$8 = var$5 + 1 | 0;
                $par1ICommandSender = var$4.$get(var$5);
                if (jl_String_equalsIgnoreCase($par1ICommandSender.$username, var$3))
                    break b;
                var$5 = var$8;
            }
            $par1ICommandSender = new ju_ConcurrentModificationException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $rt_throw($par1ICommandSender);
        }
        if ($par1ICommandSender === null) {
            $par1ICommandSender = new nms_PlayerNotFoundException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(948);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
    }
},
nms_ServerCommandTestFor_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    return $par2 ? 0 : 1;
},
nms_CommandSpreadPlayers = $rt_classWithoutFields(nms_CommandBase),
nms_CommandSpreadPlayers__init_ = $this => {
    return;
},
nms_CommandSpreadPlayers__init_0 = () => {
    let var_0 = new nms_CommandSpreadPlayers();
    nms_CommandSpreadPlayers__init_(var_0);
    return var_0;
},
nms_CommandSpreadPlayers_getCommandName = $this => {
    return $rt_s(1068);
},
nms_CommandSpreadPlayers_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_CommandSpreadPlayers_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1069);
},
nms_CommandSpreadPlayers_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, $var4, $var6, $var8, $var10, $var16, $var12, $var13, var$11, $var15, var$13, $var17, var$15, var$16, $var3, var$18, var$19, $var14, var$21, var$22, var$23, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var14 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var3 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var17 = $thread.pop();var$13 = $thread.pop();$var15 = $thread.pop();var$11 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var16 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$3
        = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$3 = $par2ArrayOfStr.length;
        if (var$3 < 6) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1069);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var4 = nms_CommandBase_func_110665_a($par1ICommandSender, NaN, $par2ArrayOfStr[0], (-30000000), 30000000);
        $var6 = nms_CommandBase_func_110665_a($par1ICommandSender, NaN, $par2ArrayOfStr[1], (-30000000), 30000000);
        $var8 = nms_CommandBase_func_110661_a($par1ICommandSender, $par2ArrayOfStr[2], 0.0, 1.7976931348623157E308);
        $var10 = nms_CommandBase_func_110661_a($par1ICommandSender, $par2ArrayOfStr[3], $var8 + 1.0, 1.7976931348623157E308);
        $var16 = 5;
        $var12 = nms_CommandBase_func_110662_c($par1ICommandSender, $par2ArrayOfStr[4]);
        $var13 = new ju_ArrayList;
        $var13.$array = $rt_createArray(jl_Object, 10);
        var$11 = null;
        a: {
            while (true) {
                if ($var16 >= var$3) {
                    if ($var13.$size0 ? 0 : 1) {
                        $par1ICommandSender = new nms_PlayerNotFoundException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(948);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    $var15 = !$var12 ? $rt_s(215) : $rt_s(1070);
                    var$11 = new jl_StringBuilder;
                    var$11.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $rt_s(1071));
                    jl_AbstractStringBuilder_insert(var$11, var$11.$length0, $var15);
                    var$13 = new jl_String;
                    $par2ArrayOfStr = var$11.$buffer;
                    $var17 = $par2ArrayOfStr.data;
                    $var16 = var$11.$length0;
                    var$15 = $var17.length;
                    if ($var16 >= 0 && $var16 <= (var$15 - 0 | 0)) {
                        var$13.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, $var16);
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 5);
                        $var17 = $rt_createArray(jl_String, $var13.$size0);
                        var$16 = $var17.data;
                        $var3 = 0;
                        var$18 = 0;
                        var$3 = $var13.$modCount;
                        var$19 = $var13.$size();
                        while (true) {
                            if (!(var$18 >= var$19 ? 0 : 1)) {
                                var$16 = $par2ArrayOfStr.data;
                                var$16[0] = nms_CommandBase_joinNiceString($var17);
                                $var15 = new jl_Double;
                                $var15.$value8 = $var4;
                                var$16[1] = $var15;
                                $var15 = new jl_Double;
                                $var15.$value8 = $var6;
                                var$16[2] = $var15;
                                $var15 = new jl_Double;
                                $var15.$value8 = $var8;
                                var$16[3] = $var15;
                                $var15 = new jl_Double;
                                $var15.$value8 = $var10;
                                var$16[4] = $var15;
                                nms_StatCollector_$callClinit();
                                $var15 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$13, $par2ArrayOfStr);
                                $ptr = 1;
                                continue main;
                            }
                            if (var$3 < $var13.$modCount)
                                break;
                            var$15 = var$18 + 1 | 0;
                            $var15 = $var13.$get(var$18);
                            $var16 = $var3 + 1 | 0;
                            var$16[$var3] = $var15.$getTranslatedEntityName();
                            $var3 = $var16;
                            var$18 = var$15;
                        }
                        $par1ICommandSender = new ju_ConcurrentModificationException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1ICommandSender);
                    $rt_throw($par1ICommandSender);
                }
                var$19 = $var16 + 1 | 0;
                $var14 = $par2ArrayOfStr[$var16];
                nms_PlayerSelector_$callClinit();
                $var15 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var14);
                var$21 = $var15.$leftBound0;
                var$22 = $var15.$matchResult;
                var$22.$valid = 0;
                var$22.$mode0 = 2;
                $var17 = var$22.$groupBounds.data;
                $var3 = 0;
                $var16 = $var17.length;
                if ($var3 > $var16)
                    $rt_throw(jl_IllegalArgumentException__init_());
                while ($var3 < $var16) {
                    var$15 = $var3 + 1 | 0;
                    $var17[$var3] = (-1);
                    $var3 = var$15;
                }
                $var17 = var$22.$consumers.data;
                var$15 = 0;
                var$23 = $var17.length;
                if (var$15 > var$23)
                    break;
                while (var$15 < var$23) {
                    $var3 = var$15 + 1 | 0;
                    $var17[var$15] = (-1);
                    var$15 = $var3;
                }
                var$22.$startIndex = var$22.$leftBound;
                var$22.$mode0 = 2;
                var$22.$startIndex = var$21;
                $var3 = var$22.$previousMatch;
                if ($var3 < 0)
                    $var3 = var$21;
                var$22.$previousMatch = $var3;
                if ($var15.$start3.$matches(var$21, $var15.$string, var$22) < 0)
                    $var3 = 0;
                else {
                    $var17 = var$22.$groupBounds.data;
                    if ($var17[0] == (-1)) {
                        $var16 = var$22.$startIndex;
                        $var17[0] = $var16;
                        $var17[1] = $var16;
                    }
                    jur_MatchResultImpl_checkGroup(var$22, 0);
                    var$22.$previousMatch = var$22.$groupBounds.data[1];
                    $var3 = 1;
                }
                if (!$var3)
                    $var3 = 0;
                else {
                    $var15 = $var15.$matchResult;
                    var$15 = $var15.$valid;
                    if (!var$15) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_Exception__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    var$23 = $rt_compare(1, $var15.$groupCount);
                    if (var$23 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        $var15 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var15);
                        jl_AbstractStringBuilder_append0($var15, 1);
                        jl_Exception__init_0($par1ICommandSender, jl_AbstractStringBuilder_toString($var15));
                        $rt_throw($par1ICommandSender);
                    }
                    $var17 = $var15.$groupBounds.data;
                    if ($var17[2] < 0)
                        $var15 = null;
                    else {
                        $var15 = $var15.$string0;
                        if (!var$15) {
                            $par1ICommandSender = new jl_IllegalStateException;
                            jl_Exception__init_($par1ICommandSender);
                            $rt_throw($par1ICommandSender);
                        }
                        if (var$23 >= 0) {
                            $par1ICommandSender = new jl_IndexOutOfBoundsException;
                            $var15 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var15);
                            jl_AbstractStringBuilder_append0($var15, 1);
                            jl_Exception__init_0($par1ICommandSender, jl_AbstractStringBuilder_toString($var15));
                            $rt_throw($par1ICommandSender);
                        }
                        $var16 = $var17[2];
                        if (!var$15) {
                            $par1ICommandSender = new jl_IllegalStateException;
                            jl_Exception__init_($par1ICommandSender);
                            $rt_throw($par1ICommandSender);
                        }
                        if (var$23 >= 0) {
                            $par1ICommandSender = new jl_IndexOutOfBoundsException;
                            $var15 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var15);
                            jl_AbstractStringBuilder_append0($var15, 1);
                            jl_Exception__init_0($par1ICommandSender, jl_AbstractStringBuilder_toString($var15));
                            $rt_throw($par1ICommandSender);
                        }
                        $var15 = jl_String_substring($var15, $var16, $var17[3]);
                    }
                    $var3 = var$11 !== null && !var$11.$equals($var15) ? 0 : 1;
                }
                if ($var3) {
                    $var17 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var14);
                    if ($var17 === null)
                        break a;
                    if (!$var17.data.length)
                        break a;
                    var$13 = new ju_Arrays$ArrayAsList;
                    var$13.$array1 = $var17;
                    var$23 = var$13.$modCount;
                    var$24 = var$13.$size();
                    $var16 = 0;
                    while ($var16 >= var$24 ? 0 : 1) {
                        if (var$23 < var$13.$modCount) {
                            $par1ICommandSender = new ju_ConcurrentModificationException;
                            $par1ICommandSender.$suppressionEnabled = 1;
                            $par1ICommandSender.$writableStackTrace = 1;
                            $rt_throw($par1ICommandSender);
                        }
                        var$15 = $var16 + 1 | 0;
                        $var15 = var$13.$get($var16);
                        ju_ArrayList_ensureCapacity($var13, $var13.$size0 + 1 | 0);
                        $var17 = $var13.$array.data;
                        $var16 = $var13.$size0;
                        $var13.$size0 = $var16 + 1 | 0;
                        $var17[$var16] = $var15;
                        $var13.$modCount = $var13.$modCount + 1 | 0;
                        $var16 = var$15;
                    }
                } else {
                    var$13 = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                    var$15 = var$13.$modCount;
                    var$23 = var$13.$size();
                    $var3 = 0;
                    b: {
                        while (true) {
                            if (!($var3 >= var$23 ? 0 : 1)) {
                                $var15 = null;
                                break b;
                            }
                            if (var$15 < var$13.$modCount) {
                                $par1ICommandSender = new ju_ConcurrentModificationException;
                                $par1ICommandSender.$suppressionEnabled = 1;
                                $par1ICommandSender.$writableStackTrace = 1;
                                $rt_throw($par1ICommandSender);
                            }
                            $var16 = $var3 + 1 | 0;
                            $var15 = var$13.$get($var3);
                            if (jl_String_equalsIgnoreCase($var15.$username, $var14))
                                break;
                            $var3 = $var16;
                        }
                    }
                    if ($var15 === null) {
                        $par1ICommandSender = new nms_PlayerNotFoundException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(948);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    ju_ArrayList_ensureCapacity($var13, $var13.$size0 + 1 | 0);
                    $var17 = $var13.$array.data;
                    $var16 = $var13.$size0;
                    $var13.$size0 = $var16 + 1 | 0;
                    $var17[$var16] = $var15;
                    $var13.$modCount = $var13.$modCount + 1 | 0;
                }
                $var16 = var$19;
            }
            $rt_throw(jl_IllegalArgumentException__init_());
        }
        $par1ICommandSender = new nms_PlayerNotFoundException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $par1ICommandSender.$message = $rt_s(948);
        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
        $rt_throw($par1ICommandSender);
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = new nms_CommandSpreadPlayersPosition;
        $var15.$field_111101_a = $var4;
        $var15.$field_111100_b = $var6;
        if (0 >= $var13.$size0) {
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $rt_throw($par1ICommandSender);
        }
        var$13 = $var13.$array.data[0].$worldObj;
        $ptr = 2;
    case 2:
        nms_CommandSpreadPlayers_func_110669_a($this, $par1ICommandSender, $var13, $var15, $var8, $var10, var$13, $var12);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, $var4, $var6, $var8, $var10, $var16, $var12, $var13, var$11, $var15, var$13, $var17, var$15, var$16, $var3, var$18, var$19, $var14, var$21, var$22, var$23, var$24, $ptr);
},
nms_CommandSpreadPlayers_func_110669_a = ($this, $par1ICommandSender, $par2List, $par3CommandSpreadPlayersPosition, $par4, $par6, $par8World, $par9) => {
    let $var10, var$9, $var21, $var11, $var17, $var13, $var15, var$15, var$16, var$17, $var19, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, $var20, var$30, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$30 = $thread.pop();$var20 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var19 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var17 = $thread.pop();$var11 = $thread.pop();$var21 = $thread.pop();var$9
        = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8World = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par3CommandSpreadPlayersPosition = $thread.pop();$par2List = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var10 = new nle_EaglercraftRandom;
            var$9 = Long_fromNumber(performance.now() * 1000000.0);
            $var10.$seed = Long_fromInt(69);
            $var10.$haveNextNextGaussian = 0;
            $var10.$seed = var$9;
            $var21 = $par3CommandSpreadPlayersPosition.$field_111101_a;
            $var11 = $var21 - $par6;
            $var17 = $par3CommandSpreadPlayersPosition.$field_111100_b;
            $var13 = $var17 - $par6;
            $var15 = $var21 + $par6;
            $var17 = $var17 + $par6;
            if (!$par9)
                var$15 = $par2List.$size0;
            else {
                var$16 = new ju_HashSet;
                var$17 = new ju_HashMap;
                var$15 = ju_HashMap_calculateCapacity(16);
                var$17.$elementCount = 0;
                $var19 = $rt_createArray(ju_HashMap$HashEntry, var$15);
                var$19 = $var19.data;
                var$17.$elementData = $var19;
                var$17.$loadFactor = 0.75;
                var$17.$threshold = var$19.length * 0.75 | 0;
                var$16.$backingMap = var$17;
                var$15 = 0;
                var$20 = $par2List.$modCount;
                var$21 = $par2List.$size();
                while (true) {
                    if (!(var$15 >= var$21 ? 0 : 1)) {
                        var$15 = var$16.$backingMap.$elementCount;
                        break a;
                    }
                    if (var$20 < $par2List.$modCount)
                        break;
                    var$22 = var$15 + 1 | 0;
                    var$17 = $par2List.$get(var$15);
                    if (!(var$17 instanceof nms_EntityPlayer)) {
                        var$17 = null;
                        ju_HashMap_putImpl(var$16.$backingMap, var$17, var$16);
                    } else {
                        var$17 = var$17;
                        var$23 = nms_Scoreboard_getPlayersTeam(var$17.$worldObj.$worldScoreboard, var$17.$username);
                        ju_HashMap_putImpl(var$16.$backingMap, var$23, var$16);
                    }
                    var$15 = var$22;
                }
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
        }
        $var19 = $rt_createArray(nms_CommandSpreadPlayersPosition, var$15);
        var$19 = $var19.data;
        var$15 = 0;
        var$21 = var$19.length;
        var$24 = $rt_compare($var11, $var15);
        var$20 = $rt_compare($var13, $var17);
        var$25 = $var17 - $var13;
        var$26 = $var15 - $var11;
        while (var$15 < var$21) {
            var$17 = new nms_CommandSpreadPlayersPosition;
            if (var$24 >= 0)
                $par6 = $var11;
            else {
                var$27 = Long_and(Long_add(Long_mul($var10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var10.$seed = var$27;
                var$28 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$27, 22))), 27);
                var$9 = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var10.$seed = var$9;
                $par6 = Long_toNumber(Long_add(var$28, Long_fromInt(Long_lo(Long_shru(var$9, 21))))) * 1.1102230246251565E-16 * var$26 + $var11;
            }
            var$17.$field_111101_a = $par6;
            if (var$20 >= 0)
                $par6 = $var13;
            else {
                var$27 = Long_and(Long_add(Long_mul($var10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var10.$seed = var$27;
                var$28 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$27, 22))), 27);
                var$9 = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var10.$seed = var$9;
                $par6 = Long_toNumber(Long_add(var$28, Long_fromInt(Long_lo(Long_shru(var$9, 21))))) * 1.1102230246251565E-16 * var$25 + $var13;
            }
            var$17.$field_111100_b = $par6;
            var$19[var$15] = var$17;
            var$15 = var$15 + 1 | 0;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_CommandSpreadPlayers_func_110668_a($this, $par3CommandSpreadPlayersPosition, $par4, $par8World, $var10, $var11, $var13, $var15, $var17, $var19, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_CommandSpreadPlayers_func_110671_a($this, $par2List, $par8World, $var19, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        var$17 = !$par9 ? $rt_s(215) : $rt_s(1070);
        $par2List = new jl_StringBuilder;
        $par2List.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par2List, $par2List.$length0, $rt_s(1072));
        jl_AbstractStringBuilder_insert($par2List, $par2List.$length0, var$17);
        $par8World = new jl_String;
        $var19 = $par2List.$buffer;
        var$19 = $var19.data;
        var$22 = $par2List.$length0;
        var$20 = var$19.length;
        if (var$22 >= 0 && var$22 <= (var$20 - 0 | 0)) {
            $par8World.$nativeString = $rt_charArrayToString($var19.data, 0, var$22);
            var$19 = $rt_createArray(jl_Object, 3);
            if (var$21 >= (-128) && var$21 <= 127) {
                jl_Integer_ensureIntegerCache();
                $par2List = jl_Integer_integerCache.data[var$21 + 128 | 0];
            } else {
                $par2List = new jl_Integer;
                $par2List.$value = var$21;
            }
            $var19 = var$19.data;
            $var19[0] = $par2List;
            $par4 = $par3CommandSpreadPlayersPosition.$field_111101_a;
            $par2List = new jl_Double;
            $par2List.$value8 = $par4;
            $var19[1] = $par2List;
            $par4 = $par3CommandSpreadPlayersPosition.$field_111100_b;
            $par2List = new jl_Double;
            $par2List.$value8 = $par4;
            $var19[2] = $par2List;
            var$15 = 0;
            $par2List = nms_CommandBase_theAdmin;
            if ($par2List !== null) {
                $ptr = 3;
                continue main;
            }
            if (var$21 <= 1)
                return;
            $par2List = !$par9 ? $rt_s(215) : $rt_s(1070);
            $par3CommandSpreadPlayersPosition = new jl_StringBuilder;
            $par3CommandSpreadPlayersPosition.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par3CommandSpreadPlayersPosition, $par3CommandSpreadPlayersPosition.$length0, $rt_s(1073));
            jl_AbstractStringBuilder_insert($par3CommandSpreadPlayersPosition, $par3CommandSpreadPlayersPosition.$length0, $par2List);
            var$23 = new jl_String;
            $var19 = $par3CommandSpreadPlayersPosition.$buffer;
            var$19 = $var19.data;
            var$15 = $par3CommandSpreadPlayersPosition.$length0;
            var$22 = var$19.length;
            if (var$15 >= 0 && var$15 <= (var$22 - 0 | 0)) {
                var$23.$nativeString = $rt_charArrayToString($var19.data, 0, var$15);
                $var19 = $rt_createArray(jl_Object, 2);
                var$19 = $rt_createArray(jl_Object, 1);
                var$30 = var$19.data;
                $par3CommandSpreadPlayersPosition = new jl_Double;
                $par3CommandSpreadPlayersPosition.$value8 = $var21;
                var$30[0] = $par3CommandSpreadPlayersPosition;
                $par3CommandSpreadPlayersPosition = new ju_Formatter;
                ju_Locale_$callClinit();
                $var10 = ju_Locale_defaultLocale;
                var$17 = new jl_StringBuilder;
                var$17.$buffer = $rt_createCharArray(16);
                $par3CommandSpreadPlayersPosition.$out1 = var$17;
                $par3CommandSpreadPlayersPosition.$locale2 = $var10;
                b: {
                    try {
                        ju_Formatter$FormatWriter_write(ju_Formatter$FormatWriter__init_($par3CommandSpreadPlayersPosition, var$17, $var10, $rt_s(1074), var$19));
                        break b;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $par2List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $par3CommandSpreadPlayersPosition.$ioException = $par2List;
                }
                $par3CommandSpreadPlayersPosition = $par3CommandSpreadPlayersPosition.$out1;
                if ($par3CommandSpreadPlayersPosition === null) {
                    $par1ICommandSender = new ju_FormatterClosedException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                $par2List = new jl_String;
                var$30 = $par3CommandSpreadPlayersPosition.$buffer;
                var$19 = var$30.data;
                var$22 = $par3CommandSpreadPlayersPosition.$length0;
                var$20 = var$19.length;
                if (var$22 >= 0 && var$22 <= (var$20 - 0 | 0)) {
                    var$19 = $var19.data;
                    $par2List.$nativeString = $rt_charArrayToString(var$30.data, 0, var$22);
                    var$19[0] = $par2List;
                    if ($var20 >= (-128) && $var20 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $par2List = jl_Integer_integerCache.data[$var20 + 128 | 0];
                    } else {
                        $par2List = new jl_Integer;
                        $par2List.$value = $var20;
                    }
                    var$19[1] = $par2List;
                    nms_StatCollector_$callClinit();
                    $par2List = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$23, $var19);
                    $ptr = 4;
                    continue main;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                jl_Exception__init_($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 3:
        nms_ServerCommandManager_notifyAdmins($par2List, $par1ICommandSender, var$15, $par8World, var$19);
        if ($rt_suspending()) {
            break main;
        }
        if (var$21 <= 1)
            return;
        $par2List = !$par9 ? $rt_s(215) : $rt_s(1070);
        $par3CommandSpreadPlayersPosition = new jl_StringBuilder;
        $par3CommandSpreadPlayersPosition.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par3CommandSpreadPlayersPosition, $par3CommandSpreadPlayersPosition.$length0, $rt_s(1073));
        jl_AbstractStringBuilder_insert($par3CommandSpreadPlayersPosition, $par3CommandSpreadPlayersPosition.$length0, $par2List);
        var$23 = new jl_String;
        $var19 = $par3CommandSpreadPlayersPosition.$buffer;
        var$19 = $var19.data;
        var$15 = $par3CommandSpreadPlayersPosition.$length0;
        var$22 = var$19.length;
        if (var$15 >= 0 && var$15 <= (var$22 - 0 | 0)) {
            var$23.$nativeString = $rt_charArrayToString($var19.data, 0, var$15);
            $var19 = $rt_createArray(jl_Object, 2);
            var$19 = $rt_createArray(jl_Object, 1);
            var$30 = var$19.data;
            $par3CommandSpreadPlayersPosition = new jl_Double;
            $par3CommandSpreadPlayersPosition.$value8 = $var21;
            var$30[0] = $par3CommandSpreadPlayersPosition;
            $par3CommandSpreadPlayersPosition = new ju_Formatter;
            ju_Locale_$callClinit();
            $var10 = ju_Locale_defaultLocale;
            var$17 = new jl_StringBuilder;
            var$17.$buffer = $rt_createCharArray(16);
            $par3CommandSpreadPlayersPosition.$out1 = var$17;
            $par3CommandSpreadPlayersPosition.$locale2 = $var10;
            c: {
                try {
                    ju_Formatter$FormatWriter_write(ju_Formatter$FormatWriter__init_($par3CommandSpreadPlayersPosition, var$17, $var10, $rt_s(1074), var$19));
                    break c;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $par2List = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par3CommandSpreadPlayersPosition.$ioException = $par2List;
            }
            $par3CommandSpreadPlayersPosition = $par3CommandSpreadPlayersPosition.$out1;
            if ($par3CommandSpreadPlayersPosition === null) {
                $par1ICommandSender = new ju_FormatterClosedException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            $par2List = new jl_String;
            var$30 = $par3CommandSpreadPlayersPosition.$buffer;
            var$19 = var$30.data;
            var$22 = $par3CommandSpreadPlayersPosition.$length0;
            var$20 = var$19.length;
            if (var$22 >= 0 && var$22 <= (var$20 - 0 | 0)) {
                var$19 = $var19.data;
                $par2List.$nativeString = $rt_charArrayToString(var$30.data, 0, var$22);
                var$19[0] = $par2List;
                if ($var20 >= (-128) && $var20 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $par2List = jl_Integer_integerCache.data[$var20 + 128 | 0];
                } else {
                    $par2List = new jl_Integer;
                    $par2List.$value = $var20;
                }
                var$19[1] = $par2List;
                nms_StatCollector_$callClinit();
                $par2List = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$23, $var19);
                $ptr = 4;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            jl_Exception__init_($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 4:
        $par1ICommandSender.$sendChatToPlayer($par2List);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2List, $par3CommandSpreadPlayersPosition, $par4, $par6, $par8World, $par9, $var10, var$9, $var21, $var11, $var17, $var13, $var15, var$15, var$16, var$17, $var19, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, $var20, var$30, $ptr);
},
nms_CommandSpreadPlayers_func_110668_a = ($this, $par1CommandSpreadPlayersPosition, $par2, $par4World, $par5Random, $par6, $par8, $par10, $par12, $par14ArrayOfCommandSpreadPlayersPosition, $par15) => {
    let $var16, $var18, $var17, var$14, var$15, var$16, var$17, var$18, $var20, var$20, var$21, $var21, $var22, $var23$field_111101_a, $var23$field_111100_b, $var24, $var25, $var26, $var23$field_111101_a_0, $var23$field_111100_b_0, var$31, var$32, var$33, $var22_0, $var23, var$36, var$37, var$38, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$38 = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();$var23 = $thread.pop();$var22_0 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();$var23$field_111100_b_0 = $thread.pop();$var23$field_111101_a_0 = $thread.pop();$var26 = $thread.pop();$var25 = $thread.pop();$var24 = $thread.pop();$var23$field_111100_b = $thread.pop();$var23$field_111101_a = $thread.pop();$var22 = $thread.pop();$var21 = $thread.pop();var$21 = $thread.pop();var$20
        = $thread.pop();$var20 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var17 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$par15 = $thread.pop();$par14ArrayOfCommandSpreadPlayersPosition = $thread.pop();$par12 = $thread.pop();$par10 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par5Random = $thread.pop();$par4World = $thread.pop();$par2 = $thread.pop();$par1CommandSpreadPlayersPosition
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var16 = 1;
        $var18 = 3.4028234663852886E38;
        $var17 = 0;
        var$14 = $rt_compare($par6, $par10);
        var$15 = $rt_compare($par8, $par12);
        var$16 = 22;
        var$17 = $par12 - $par8;
        var$18 = $par10 - $par6;
        while (true) {
            $var20 = $rt_compare($var17, 10000);
            if ($var20 >= 0)
                break;
            if (!$var16)
                break;
            $var16 = 0;
            $var18 = 3.4028234663852886E38;
            $var20 = 0;
            while (true) {
                var$20 = $par14ArrayOfCommandSpreadPlayersPosition.data;
                var$21 = var$20.length;
                if ($var20 >= var$21)
                    break;
                $var21 = var$20[$var20];
                $var22 = 0;
                $var23$field_111101_a = 0.0;
                $var23$field_111100_b = 0.0;
                $var24 = 0;
                while ($var24 < var$21) {
                    if ($var20 != $var24) {
                        $var25 = var$20[$var24];
                        $var26 = $var21.$field_111101_a - $var25.$field_111101_a;
                        $var23$field_111101_a_0 = $var21.$field_111100_b - $var25.$field_111100_b;
                        $var26 = jl_Math_sqrt($var26 * $var26 + $var23$field_111101_a_0 * $var23$field_111101_a_0);
                        $var18 = jl_Math_minImpl0($var26, $var18);
                        if ($var26 < $par2) {
                            $var22 = $var22 + 1 | 0;
                            $var23$field_111101_a = $var23$field_111101_a + $var25.$field_111101_a - $var21.$field_111101_a;
                            $var23$field_111100_b = $var23$field_111100_b + $var25.$field_111100_b - $var21.$field_111100_b;
                        }
                    }
                    $var24 = $var24 + 1 | 0;
                }
                if ($var22 > 0) {
                    $var26 = $var22;
                    $var23$field_111101_a = $var23$field_111101_a / $var26;
                    $var23$field_111100_b_0 = $var23$field_111100_b / $var26;
                    $var26 = $var23$field_111101_a * $var23$field_111101_a + $var23$field_111100_b_0 * $var23$field_111100_b_0;
                    if (jl_Math_sqrt($var26) > 0.0) {
                        $var26 = jl_Math_sqrt($var26);
                        $var23$field_111101_a_0 = $var23$field_111101_a / $var26;
                        $var23$field_111100_b_0 = $var23$field_111100_b_0 / $var26;
                        $var21.$field_111101_a = $var21.$field_111101_a - $var23$field_111101_a_0;
                        $var21.$field_111100_b = $var21.$field_111100_b - $var23$field_111100_b_0;
                    } else {
                        if (var$14 >= 0)
                            $var26 = $par6;
                        else {
                            var$31 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par5Random.$seed = var$31;
                            var$32 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$31, var$16))), 27);
                            var$31 = Long_and(Long_add(Long_mul(var$31, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par5Random.$seed = var$31;
                            $var26 = Long_toNumber(Long_add(var$32, Long_fromInt(Long_lo(Long_shru(var$31, 21))))) * 1.1102230246251565E-16 * var$18 + $par6;
                        }
                        $var21.$field_111101_a = $var26;
                        if (var$15 >= 0)
                            $var26 = $par8;
                        else {
                            var$32 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par5Random.$seed = var$32;
                            var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$16))), 27);
                            var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par5Random.$seed = var$33;
                            $var26 = Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$33, 21))))) * 1.1102230246251565E-16 * var$17 + $par8;
                        }
                        $var21.$field_111100_b = $var26;
                    }
                    $var16 = 1;
                }
                if (nms_CommandSpreadPlayersPosition_func_111093_a($var21, $par6, $par8, $par10, $par12))
                    $var16 = 1;
                $var20 = $var20 + 1 | 0;
            }
            if (!$var16) {
                $var22_0 = 0;
                if ($var22_0 < var$21) {
                    $var23 = var$20[$var22_0];
                    $ptr = 1;
                    continue main;
                }
            }
            $var17 = $var17 + 1 | 0;
        }
        if ($var20 < 0)
            return $var17;
        $par4World = new nms_CommandException;
        $par5Random = !$par15 ? $rt_s(215) : $rt_s(1070);
        $var21 = new jl_StringBuilder;
        $var21.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var21, $var21.$length0, $rt_s(1075));
        jl_AbstractStringBuilder_insert($var21, $var21.$length0, $par5Random);
        $par5Random = new jl_String;
        var$20 = $var21.$buffer;
        var$36 = var$20.data;
        $var16 = $var21.$length0;
        var$15 = var$36.length;
        if ($var16 >= 0 && $var16 <= (var$15 - 0 | 0)) {
            $par14ArrayOfCommandSpreadPlayersPosition = $par14ArrayOfCommandSpreadPlayersPosition.data;
            $par5Random.$nativeString = $rt_charArrayToString(var$20.data, 0, $var16);
            var$20 = $rt_createArray(jl_Object, 4);
            $var16 = $par14ArrayOfCommandSpreadPlayersPosition.length;
            if ($var16 >= (-128) && $var16 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var21 = jl_Integer_integerCache.data[$var16 + 128 | 0];
            } else {
                $var21 = new jl_Integer;
                $var21.$value = $var16;
            }
            $par14ArrayOfCommandSpreadPlayersPosition = var$20.data;
            $par14ArrayOfCommandSpreadPlayersPosition[0] = $var21;
            $par2 = $par1CommandSpreadPlayersPosition.$field_111101_a;
            $var21 = new jl_Double;
            $var21.$value8 = $par2;
            $par14ArrayOfCommandSpreadPlayersPosition[1] = $var21;
            $par2 = $par1CommandSpreadPlayersPosition.$field_111100_b;
            $par1CommandSpreadPlayersPosition = new jl_Double;
            $par1CommandSpreadPlayersPosition.$value8 = $par2;
            $par14ArrayOfCommandSpreadPlayersPosition[2] = $par1CommandSpreadPlayersPosition;
            var$36 = $rt_createArray(jl_Object, 1);
            var$37 = var$36.data;
            $var21 = new jl_Double;
            $var21.$value8 = $var18;
            var$37[0] = $var21;
            $var21 = new ju_Formatter;
            ju_Locale_$callClinit();
            var$38 = ju_Locale_defaultLocale;
            $var23 = new jl_StringBuilder;
            $var23.$buffer = $rt_createCharArray(16);
            $var21.$out1 = $var23;
            $var21.$locale2 = var$38;
            a: {
                try {
                    ju_Formatter$FormatWriter_write(ju_Formatter$FormatWriter__init_($var21, $var23, var$38, $rt_s(1074), var$36));
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $par1CommandSpreadPlayersPosition = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $var21.$ioException = $par1CommandSpreadPlayersPosition;
            }
            $var21 = $var21.$out1;
            if ($var21 === null) {
                $par1CommandSpreadPlayersPosition = new ju_FormatterClosedException;
                $par1CommandSpreadPlayersPosition.$suppressionEnabled = 1;
                $par1CommandSpreadPlayersPosition.$writableStackTrace = 1;
                $rt_throw($par1CommandSpreadPlayersPosition);
            }
            $par1CommandSpreadPlayersPosition = new jl_String;
            var$36 = $var21.$buffer;
            var$37 = var$36.data;
            var$15 = $var21.$length0;
            var$16 = var$37.length;
            if (var$15 >= 0 && var$15 <= (var$16 - 0 | 0)) {
                $par1CommandSpreadPlayersPosition.$nativeString = $rt_charArrayToString(var$36.data, 0, var$15);
                $par14ArrayOfCommandSpreadPlayersPosition[3] = $par1CommandSpreadPlayersPosition;
                $par4World.$suppressionEnabled = 1;
                $par4World.$writableStackTrace = 1;
                $par4World.$message = $par5Random;
                $par4World.$errorObjects = var$20;
                $rt_throw($par4World);
            }
            $par1CommandSpreadPlayersPosition = new jl_IndexOutOfBoundsException;
            jl_Exception__init_($par1CommandSpreadPlayersPosition);
            $rt_throw($par1CommandSpreadPlayersPosition);
        }
        $par1CommandSpreadPlayersPosition = new jl_IndexOutOfBoundsException;
        $par1CommandSpreadPlayersPosition.$suppressionEnabled = 1;
        $par1CommandSpreadPlayersPosition.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1CommandSpreadPlayersPosition);
        $rt_throw($par1CommandSpreadPlayersPosition);
    case 1:
        $tmp = nms_CommandSpreadPlayersPosition_func_111098_b($var23, $par4World);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        if (!$var20) {
            if (var$14 >= 0)
                $var26 = $par6;
            else {
                var$32 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$32;
                var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$16))), 27);
                var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$33;
                $var26 = Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$33, 21))))) * 1.1102230246251565E-16 * var$18 + $par6;
            }
            $var23.$field_111101_a = $var26;
            if (var$15 >= 0)
                $var26 = $par8;
            else {
                var$31 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$31;
                var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$31, var$16))), 27);
                var$31 = Long_and(Long_add(Long_mul(var$31, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$31;
                $var26 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$31, 21))))) * 1.1102230246251565E-16 * var$17 + $par8;
            }
            $var23.$field_111100_b = $var26;
            $var16 = 1;
        }
        $var22_0 = $var22_0 + 1 | 0;
        b: while (true) {
            if ($var22_0 < var$21) {
                $var23 = var$20[$var22_0];
                continue main;
            }
            while (true) {
                $var17 = $var17 + 1 | 0;
                $var20 = $rt_compare($var17, 10000);
                if ($var20 >= 0)
                    break b;
                if (!$var16)
                    break b;
                $var16 = 0;
                $var18 = 3.4028234663852886E38;
                $var20 = 0;
                while (true) {
                    var$20 = $par14ArrayOfCommandSpreadPlayersPosition.data;
                    var$21 = var$20.length;
                    if ($var20 >= var$21)
                        break;
                    $var21 = var$20[$var20];
                    $var22 = 0;
                    $var23$field_111101_a = 0.0;
                    $var23$field_111100_b = 0.0;
                    $var24 = 0;
                    while ($var24 < var$21) {
                        if ($var20 != $var24) {
                            $var25 = var$20[$var24];
                            $var26 = $var21.$field_111101_a - $var25.$field_111101_a;
                            $var23$field_111101_a_0 = $var21.$field_111100_b - $var25.$field_111100_b;
                            $var26 = jl_Math_sqrt($var26 * $var26 + $var23$field_111101_a_0 * $var23$field_111101_a_0);
                            $var18 = jl_Math_minImpl0($var26, $var18);
                            if ($var26 < $par2) {
                                $var22 = $var22 + 1 | 0;
                                $var23$field_111101_a = $var23$field_111101_a + $var25.$field_111101_a - $var21.$field_111101_a;
                                $var23$field_111100_b = $var23$field_111100_b + $var25.$field_111100_b - $var21.$field_111100_b;
                            }
                        }
                        $var24 = $var24 + 1 | 0;
                    }
                    if ($var22 > 0) {
                        $var26 = $var22;
                        $var23$field_111101_a = $var23$field_111101_a / $var26;
                        $var23$field_111100_b_0 = $var23$field_111100_b / $var26;
                        $var26 = $var23$field_111101_a * $var23$field_111101_a + $var23$field_111100_b_0 * $var23$field_111100_b_0;
                        if (jl_Math_sqrt($var26) > 0.0) {
                            $var26 = jl_Math_sqrt($var26);
                            $var23$field_111101_a_0 = $var23$field_111101_a / $var26;
                            $var23$field_111100_b_0 = $var23$field_111100_b_0 / $var26;
                            $var21.$field_111101_a = $var21.$field_111101_a - $var23$field_111101_a_0;
                            $var21.$field_111100_b = $var21.$field_111100_b - $var23$field_111100_b_0;
                        } else {
                            if (var$14 >= 0)
                                $var26 = $par6;
                            else {
                                var$31 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par5Random.$seed = var$31;
                                var$32 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$31, var$16))), 27);
                                var$31 = Long_and(Long_add(Long_mul(var$31, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par5Random.$seed = var$31;
                                $var26 = Long_toNumber(Long_add(var$32, Long_fromInt(Long_lo(Long_shru(var$31, 21))))) * 1.1102230246251565E-16 * var$18 + $par6;
                            }
                            $var21.$field_111101_a = $var26;
                            if (var$15 >= 0)
                                $var26 = $par8;
                            else {
                                var$32 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par5Random.$seed = var$32;
                                var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$16))), 27);
                                var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par5Random.$seed = var$33;
                                $var26 = Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$33, 21))))) * 1.1102230246251565E-16 * var$17 + $par8;
                            }
                            $var21.$field_111100_b = $var26;
                        }
                        $var16 = 1;
                    }
                    if (nms_CommandSpreadPlayersPosition_func_111093_a($var21, $par6, $par8, $par10, $par12))
                        $var16 = 1;
                    $var20 = $var20 + 1 | 0;
                }
                if (!$var16)
                    break;
            }
            $var22_0 = 0;
        }
        if ($var20 < 0)
            return $var17;
        $par4World = new nms_CommandException;
        $par5Random = !$par15 ? $rt_s(215) : $rt_s(1070);
        $var21 = new jl_StringBuilder;
        $var21.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var21, $var21.$length0, $rt_s(1075));
        jl_AbstractStringBuilder_insert($var21, $var21.$length0, $par5Random);
        $par5Random = new jl_String;
        var$20 = $var21.$buffer;
        var$36 = var$20.data;
        $var16 = $var21.$length0;
        var$15 = var$36.length;
        if ($var16 >= 0 && $var16 <= (var$15 - 0 | 0)) {
            $par14ArrayOfCommandSpreadPlayersPosition = $par14ArrayOfCommandSpreadPlayersPosition.data;
            $par5Random.$nativeString = $rt_charArrayToString(var$20.data, 0, $var16);
            var$20 = $rt_createArray(jl_Object, 4);
            $var16 = $par14ArrayOfCommandSpreadPlayersPosition.length;
            if ($var16 >= (-128) && $var16 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var21 = jl_Integer_integerCache.data[$var16 + 128 | 0];
            } else {
                $var21 = new jl_Integer;
                $var21.$value = $var16;
            }
            $par14ArrayOfCommandSpreadPlayersPosition = var$20.data;
            $par14ArrayOfCommandSpreadPlayersPosition[0] = $var21;
            $par2 = $par1CommandSpreadPlayersPosition.$field_111101_a;
            $var21 = new jl_Double;
            $var21.$value8 = $par2;
            $par14ArrayOfCommandSpreadPlayersPosition[1] = $var21;
            $par2 = $par1CommandSpreadPlayersPosition.$field_111100_b;
            $par1CommandSpreadPlayersPosition = new jl_Double;
            $par1CommandSpreadPlayersPosition.$value8 = $par2;
            $par14ArrayOfCommandSpreadPlayersPosition[2] = $par1CommandSpreadPlayersPosition;
            var$36 = $rt_createArray(jl_Object, 1);
            var$37 = var$36.data;
            $var21 = new jl_Double;
            $var21.$value8 = $var18;
            var$37[0] = $var21;
            $var21 = new ju_Formatter;
            ju_Locale_$callClinit();
            var$38 = ju_Locale_defaultLocale;
            $var23 = new jl_StringBuilder;
            $var23.$buffer = $rt_createCharArray(16);
            $var21.$out1 = $var23;
            $var21.$locale2 = var$38;
            c: {
                try {
                    ju_Formatter$FormatWriter_write(ju_Formatter$FormatWriter__init_($var21, $var23, var$38, $rt_s(1074), var$36));
                    break c;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $par1CommandSpreadPlayersPosition = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $var21.$ioException = $par1CommandSpreadPlayersPosition;
            }
            $var21 = $var21.$out1;
            if ($var21 === null) {
                $par1CommandSpreadPlayersPosition = new ju_FormatterClosedException;
                $par1CommandSpreadPlayersPosition.$suppressionEnabled = 1;
                $par1CommandSpreadPlayersPosition.$writableStackTrace = 1;
                $rt_throw($par1CommandSpreadPlayersPosition);
            }
            $par1CommandSpreadPlayersPosition = new jl_String;
            var$36 = $var21.$buffer;
            var$37 = var$36.data;
            var$15 = $var21.$length0;
            var$16 = var$37.length;
            if (var$15 >= 0 && var$15 <= (var$16 - 0 | 0)) {
                $par1CommandSpreadPlayersPosition.$nativeString = $rt_charArrayToString(var$36.data, 0, var$15);
                $par14ArrayOfCommandSpreadPlayersPosition[3] = $par1CommandSpreadPlayersPosition;
                $par4World.$suppressionEnabled = 1;
                $par4World.$writableStackTrace = 1;
                $par4World.$message = $par5Random;
                $par4World.$errorObjects = var$20;
                $rt_throw($par4World);
            }
            $par1CommandSpreadPlayersPosition = new jl_IndexOutOfBoundsException;
            jl_Exception__init_($par1CommandSpreadPlayersPosition);
            $rt_throw($par1CommandSpreadPlayersPosition);
        }
        $par1CommandSpreadPlayersPosition = new jl_IndexOutOfBoundsException;
        $par1CommandSpreadPlayersPosition.$suppressionEnabled = 1;
        $par1CommandSpreadPlayersPosition.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1CommandSpreadPlayersPosition);
        $rt_throw($par1CommandSpreadPlayersPosition);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1CommandSpreadPlayersPosition, $par2, $par4World, $par5Random, $par6, $par8, $par10, $par12, $par14ArrayOfCommandSpreadPlayersPosition, $par15, $var16, $var18, $var17, var$14, var$15, var$16, var$17, var$18, $var20, var$20, var$21, $var21, $var22, $var23$field_111101_a, $var23$field_111100_b, $var24, $var25, $var26, $var23$field_111101_a_0, $var23$field_111100_b_0, var$31, var$32, var$33, $var22_0, $var23, var$36, var$37, var$38, $ptr);
},
nms_CommandSpreadPlayers_func_110671_a = ($this, $par1List, $par2World, $par3ArrayOfCommandSpreadPlayersPosition, $par4) => {
    let $var5, $var8, var$7, var$8, var$9, $var9, var$11, $var10, $var11, $var12, var$15, $var7, $var15, var$18, var$19, $var14, var$21, $var17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var17 = $thread.pop();var$21 = $thread.pop();$var14 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var15 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var8 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3ArrayOfCommandSpreadPlayersPosition = $thread.pop();$par2World
        = $thread.pop();$par1List = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0.0;
        $var8 = new ju_HashMap;
        var$7 = ju_HashMap_calculateCapacity(16);
        $var8.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$7);
        var$9 = var$8.data;
        $var8.$elementData = var$8;
        $var8.$loadFactor = 0.75;
        $var8.$threshold = var$9.length * 0.75 | 0;
        $var9 = 0;
        var$7 = $par1List.$size0;
        var$11 = $rt_compare($var9, var$7);
        if (var$11 >= 0)
            return $var5 / var$7;
        if ($var9 >= 0 && var$11 < 0) {
            $var10 = $par1List.$array.data[$var9];
            if (!$par4) {
                var$9 = $par3ArrayOfCommandSpreadPlayersPosition.data;
                var$11 = 0 + 1 | 0;
                $var11 = var$9[0];
            } else {
                if (!($var10 instanceof nms_EntityPlayer))
                    $var12 = null;
                else {
                    $var12 = $var10;
                    $var12 = nms_Scoreboard_getPlayersTeam($var12.$worldObj.$worldScoreboard, $var12.$username);
                }
                if ($var12 === null) {
                    $var11 = $var8.$elementData.data[0];
                    while ($var11 !== null && $var11.$key !== null) {
                        $var11 = $var11.$next3;
                    }
                } else {
                    $var11 = $var12;
                    if (!$var11.$id$)
                        $var11.$id$ = $rt_nextId();
                    var$11 = $var12.$id$;
                    var$9 = $var8.$elementData.data;
                    $var11 = var$9[var$11 & (var$9.length - 1 | 0)];
                    while ($var11 !== null) {
                        if ($var11.$origKeyHash == var$11) {
                            var$15 = $var11.$key;
                            if ($var12 !== var$15 && !($var12 !== var$15 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $var11 = $var11.$next3;
                    }
                }
                if ($var11 === null ? 0 : 1)
                    var$11 = 0;
                else {
                    var$9 = $par3ArrayOfCommandSpreadPlayersPosition.data;
                    var$11 = 0 + 1 | 0;
                    ju_HashMap_putImpl($var8, $var12, var$9[0]);
                }
                if ($var12 === null) {
                    $var11 = $var8.$elementData.data[0];
                    while ($var11 !== null && $var11.$key !== null) {
                        $var11 = $var11.$next3;
                    }
                } else {
                    $var11 = $var12;
                    if (!$var11.$id$)
                        $var11.$id$ = $rt_nextId();
                    $var7 = $var12.$id$;
                    var$9 = $var8.$elementData.data;
                    $var11 = var$9[$var7 & (var$9.length - 1 | 0)];
                    while ($var11 !== null) {
                        if ($var11.$origKeyHash == $var7) {
                            var$15 = $var11.$key;
                            if ($var12 !== var$15 && !($var12 !== var$15 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $var11 = $var11.$next3;
                    }
                }
                $var11 = $var11 === null ? null : $var11.$value0;
            }
            $var15 = $var11.$field_111101_a;
            var$18 = $var15 | 0;
            $var7 = $rt_compare($var15, var$18);
            $var15 = ($var7 >= 0 ? var$18 : var$18 - 1 | 0) + 0.5;
            if ($var7 < 0)
                var$18 = var$18 - 1 | 0;
            var$19 = $var11.$field_111100_b;
            $var14 = var$19 | 0;
            if (var$19 < $var14)
                $var14 = $var14 - 1 | 0;
            var$7 = 256;
            if (var$7 > 0) {
                $ptr = 1;
                continue main;
            }
            var$19 = 257;
            var$21 = $var11.$field_111100_b;
            $var7 = var$21 | 0;
            if (var$21 < $var7)
                $var7 = $var7 - 1 | 0;
            var$21 = $var7 + 0.5;
            $ptr = 2;
            continue main;
        }
        $par1List = new jl_IndexOutOfBoundsException;
        $par1List.$suppressionEnabled = 1;
        $par1List.$writableStackTrace = 1;
        $rt_throw($par1List);
    case 1:
        $tmp = nms_World_getBlockId($par2World, var$18, var$7, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7)
            var$7 = var$7 + 1 | 0;
        else {
            var$7 = var$7 + (-1) | 0;
            if (var$7 > 0) {
                continue main;
            }
            var$7 = 257;
        }
        var$19 = var$7;
        var$21 = $var11.$field_111100_b;
        $var7 = var$21 | 0;
        if (var$21 < $var7)
            $var7 = $var7 - 1 | 0;
        var$21 = $var7 + 0.5;
        $ptr = 2;
    case 2:
        $var10.$setPositionAndUpdate($var15, var$19, var$21);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = 1.7976931348623157E308;
        $var14 = 0;
        while (true) {
            var$9 = $par3ArrayOfCommandSpreadPlayersPosition.data;
            if ($var14 >= var$9.length)
                break;
            if ($var11 !== var$9[$var14]) {
                $var12 = var$9[$var14];
                $var15 = $var11.$field_111101_a - $var12.$field_111101_a;
                var$19 = $var11.$field_111100_b - $var12.$field_111100_b;
                $var17 = jl_Math_minImpl0(jl_Math_sqrt($var15 * $var15 + var$19 * var$19), $var17);
            }
            $var14 = $var14 + 1 | 0;
        }
        $var5 = $var5 + $var17;
        $var9 = $var9 + 1 | 0;
        $var7 = var$11;
        var$7 = $par1List.$size0;
        var$11 = $rt_compare($var9, var$7);
        if (var$11 >= 0)
            return $var5 / var$7;
        if ($var9 >= 0 && var$11 < 0) {
            $var10 = $par1List.$array.data[$var9];
            if (!$par4) {
                var$9 = $par3ArrayOfCommandSpreadPlayersPosition.data;
                var$11 = $var7 + 1 | 0;
                $var11 = var$9[$var7];
            } else {
                if (!($var10 instanceof nms_EntityPlayer))
                    $var12 = null;
                else {
                    $var12 = $var10;
                    $var12 = nms_Scoreboard_getPlayersTeam($var12.$worldObj.$worldScoreboard, $var12.$username);
                }
                if ($var12 === null) {
                    $var11 = $var8.$elementData.data[0];
                    while ($var11 !== null && $var11.$key !== null) {
                        $var11 = $var11.$next3;
                    }
                } else {
                    $var11 = $var12;
                    if (!$var11.$id$)
                        $var11.$id$ = $rt_nextId();
                    var$11 = $var12.$id$;
                    var$9 = $var8.$elementData.data;
                    $var11 = var$9[var$11 & (var$9.length - 1 | 0)];
                    while ($var11 !== null) {
                        if ($var11.$origKeyHash == var$11) {
                            var$15 = $var11.$key;
                            if ($var12 !== var$15 && !($var12 !== var$15 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $var11 = $var11.$next3;
                    }
                }
                if ($var11 === null ? 0 : 1)
                    var$11 = $var7;
                else {
                    var$9 = $par3ArrayOfCommandSpreadPlayersPosition.data;
                    var$11 = $var7 + 1 | 0;
                    ju_HashMap_putImpl($var8, $var12, var$9[$var7]);
                }
                if ($var12 === null) {
                    $var11 = $var8.$elementData.data[0];
                    while ($var11 !== null && $var11.$key !== null) {
                        $var11 = $var11.$next3;
                    }
                } else {
                    $var11 = $var12;
                    if (!$var11.$id$)
                        $var11.$id$ = $rt_nextId();
                    $var7 = $var12.$id$;
                    var$9 = $var8.$elementData.data;
                    $var11 = var$9[$var7 & (var$9.length - 1 | 0)];
                    while ($var11 !== null) {
                        if ($var11.$origKeyHash == $var7) {
                            var$15 = $var11.$key;
                            if ($var12 !== var$15 && !($var12 !== var$15 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $var11 = $var11.$next3;
                    }
                }
                $var11 = $var11 === null ? null : $var11.$value0;
            }
            $var15 = $var11.$field_111101_a;
            var$18 = $var15 | 0;
            $var7 = $rt_compare($var15, var$18);
            $var15 = ($var7 >= 0 ? var$18 : var$18 - 1 | 0) + 0.5;
            if ($var7 < 0)
                var$18 = var$18 - 1 | 0;
            var$19 = $var11.$field_111100_b;
            $var14 = var$19 | 0;
            if (var$19 < $var14)
                $var14 = $var14 - 1 | 0;
            var$7 = 256;
            if (var$7 > 0) {
                $ptr = 1;
                continue main;
            }
            var$19 = 257;
            var$21 = $var11.$field_111100_b;
            $var7 = var$21 | 0;
            if (var$21 < $var7)
                $var7 = $var7 - 1 | 0;
            var$21 = $var7 + 0.5;
            continue main;
        }
        $par1List = new jl_IndexOutOfBoundsException;
        $par1List.$suppressionEnabled = 1;
        $par1List.$writableStackTrace = 1;
        $rt_throw($par1List);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1List, $par2World, $par3ArrayOfCommandSpreadPlayersPosition, $par4, $var5, $var8, var$7, var$8, var$9, $var9, var$11, $var10, $var11, $var12, var$15, $var7, $var15, var$18, var$19, $var14, var$21, $var17, $ptr);
},
nms_ServerCommandScoreboard = $rt_classWithoutFields(nms_CommandBase),
nms_ServerCommandScoreboard__init_ = $this => {
    return;
},
nms_ServerCommandScoreboard__init_0 = () => {
    let var_0 = new nms_ServerCommandScoreboard();
    nms_ServerCommandScoreboard__init_(var_0);
    return var_0;
},
nms_ServerCommandScoreboard_getCommandName = $this => {
    return $rt_s(1076);
},
nms_ServerCommandScoreboard_getRequiredPermissionLevel = $this => {
    return 2;
},
nms_ServerCommandScoreboard_getCommandUsage = ($this, $par1ICommandSender) => {
    return $rt_s(1077);
},
nms_ServerCommandScoreboard_processCommand = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par2ArrayOfStr.data;
        var$4 = var$3.length;
        var$5 = $rt_compare(var$4, 1);
        if (var$5 >= 0) {
            if (jl_String_equalsIgnoreCase(var$3[0], $rt_s(1078))) {
                if (!var$5) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1079);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1080))) {
                    $ptr = 1;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(957))) {
                    if (var$4 < 4) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1081);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 3;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1082))) {
                    if (var$4 != 3) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1083);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$6 = var$3[2];
                    var$7 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
                    var$8 = nms_ServerCommandScoreboard_getScoreObjective($this, var$6, 0);
                    $ptr = 6;
                    continue main;
                }
                if (!jl_String_equalsIgnoreCase(var$3[1], $rt_s(1084))) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1079);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                if (var$4 != 3 && var$4 != 4) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1085);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                var$5 = 2;
                $ptr = 9;
                continue main;
            }
            if (jl_String_equalsIgnoreCase(var$3[0], $rt_s(215))) {
                if (!var$5) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1086);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1080))) {
                    if (var$4 > 3) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1087);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 2;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(957))) {
                    if (var$4 != 5) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1088);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 5;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1082))) {
                    if (var$4 != 5) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1089);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 8;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(953))) {
                    if (var$4 != 5) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1090);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 11;
                    continue main;
                }
                if (!jl_String_equalsIgnoreCase(var$3[1], $rt_s(1091))) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1086);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                if (var$4 != 3) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1092);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                a: {
                    var$9 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
                    var$6 = var$3[2];
                    nms_PlayerSelector_$callClinit();
                    $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, var$6);
                    if ($par2ArrayOfStr !== null) {
                        $par2ArrayOfStr = $par2ArrayOfStr.data;
                        if ($par2ArrayOfStr.length == 1) {
                            var$7 = $par2ArrayOfStr[0];
                            break a;
                        }
                    }
                    var$7 = null;
                }
                if (var$7 !== null)
                    var$6 = var$7.$username;
                else {
                    var$10 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, var$6);
                    var$4 = var$10.$leftBound0;
                    var$7 = var$10.$matchResult;
                    var$7.$valid = 0;
                    var$7.$mode0 = 2;
                    ju_Arrays_fill0(var$7.$groupBounds, (-1));
                    ju_Arrays_fill0(var$7.$consumers, (-1));
                    var$7.$startIndex = var$7.$leftBound;
                    var$7 = var$10.$matchResult;
                    var$7.$mode0 = 2;
                    var$7.$startIndex = var$4;
                    var$5 = var$7.$previousMatch;
                    if (var$5 < 0)
                        var$5 = var$4;
                    var$7.$previousMatch = var$5;
                    if (var$10.$start3.$matches(var$4, var$10.$string, var$7) < 0)
                        var$5 = 0;
                    else {
                        $par2ArrayOfStr = var$7.$groupBounds.data;
                        if ($par2ArrayOfStr[0] == (-1)) {
                            var$4 = var$7.$startIndex;
                            $par2ArrayOfStr[0] = var$4;
                            $par2ArrayOfStr[1] = var$4;
                        }
                        var$7.$previousMatch = jur_MatchResultImpl_end0(var$7);
                        var$5 = 1;
                    }
                    if (!var$5)
                        var$5 = 0;
                    else {
                        var$7 = var$10.$matchResult;
                        var$11 = var$7.$valid;
                        if (!var$11)
                            $rt_throw(jl_IllegalStateException__init_());
                        var$12 = $rt_compare(1, var$7.$groupCount);
                        if (var$12 >= 0)
                            $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(1)));
                        $par2ArrayOfStr = var$7.$groupBounds.data;
                        if ($par2ArrayOfStr[2] >= 0) {
                            var$7 = var$7.$string0;
                            if (!var$11)
                                $rt_throw(jl_IllegalStateException__init_());
                            if (var$12 >= 0)
                                $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(1)));
                            var$4 = $par2ArrayOfStr[2];
                            if (!var$11)
                                $rt_throw(jl_IllegalStateException__init_());
                            if (var$12 >= 0)
                                $rt_throw(jl_IndexOutOfBoundsException__init_0(jl_String_valueOf(1)));
                            jl_String_substring(var$7, var$4, $par2ArrayOfStr[3]);
                        }
                        var$5 = 1;
                    }
                    if (var$5) {
                        $par1ICommandSender = new nms_PlayerNotFoundException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(948);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                }
                var$7 = ju_HashMap_removeByKey(var$9.$field_96544_c, var$6);
                var$7 = var$7 === null ? null : var$7.$value0;
                if (var$7 !== null) {
                    $ptr = 18;
                    continue main;
                }
                var$7 = $rt_s(1093);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                $par2ArrayOfStr.data[0] = var$6;
                var$5 = 0;
                var$6 = nms_CommandBase_theAdmin;
                if (var$6 === null)
                    return;
                $ptr = 19;
                continue main;
            }
            if (jl_String_equalsIgnoreCase(var$3[0], $rt_s(1070))) {
                if (!var$5) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1094);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1080))) {
                    if (var$4 > 3) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1095);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 4;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(957))) {
                    if (var$4 < 3) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1096);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 7;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1082))) {
                    if (var$4 != 3) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1097);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    $par2ArrayOfStr = nms_MinecraftServer_mcServer.$worldServers.data;
                    var$8 = $par2ArrayOfStr[0].$worldScoreboard;
                    var$6 = var$3[2];
                    var$7 = nms_Scoreboard_func_96508_e($par2ArrayOfStr[0].$worldScoreboard, var$6);
                    if (var$7 === null) {
                        var$7 = new nms_CommandException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                        $par2ArrayOfStr.data[0] = var$6;
                        var$7.$suppressionEnabled = 1;
                        var$7.$writableStackTrace = 1;
                        var$7.$message = $rt_s(1098);
                        var$7.$errorObjects = $par2ArrayOfStr;
                        $rt_throw(var$7);
                    }
                    $ptr = 13;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1099))) {
                    if (var$4 != 3) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1100);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 12;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1101))) {
                    if (var$4 < 4 && !(var$4 == 3 && $par1ICommandSender instanceof nms_EntityPlayer)) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1102);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 14;
                    continue main;
                }
                if (jl_String_equalsIgnoreCase(var$3[1], $rt_s(1103))) {
                    if (var$4 < 3 && !($par1ICommandSender instanceof nms_EntityPlayer)) {
                        $par1ICommandSender = new nms_WrongUsageException;
                        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $par1ICommandSender.$message = $rt_s(1104);
                        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = 2;
                    $ptr = 16;
                    continue main;
                }
                if (!jl_String_equalsIgnoreCase(var$3[1], $rt_s(1105))) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1094);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                if (var$4 != 4 && var$4 != 5) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1106);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
                var$5 = 2;
                $ptr = 17;
                continue main;
            }
        }
        var$6 = new nms_WrongUsageException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
        var$6.$suppressionEnabled = 1;
        var$6.$writableStackTrace = 1;
        var$6.$message = $rt_s(1077);
        var$6.$errorObjects = $par2ArrayOfStr;
        $rt_throw(var$6);
    case 1:
        nms_ServerCommandScoreboard_getObjectivesList($this, $par1ICommandSender);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_ServerCommandScoreboard_listPlayers($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_ServerCommandScoreboard_addObjective($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_ServerCommandScoreboard_getTeamList($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_ServerCommandScoreboard_setPlayerScore($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_Scoreboard_func_96519_k(var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $rt_s(1107);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = var$6;
        var$5 = 0;
        var$6 = nms_CommandBase_theAdmin;
        if (var$6 === null)
            return;
        $ptr = 10;
        continue main;
    case 7:
        nms_ServerCommandScoreboard_addTeam($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        nms_ServerCommandScoreboard_setPlayerScore($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        nms_ServerCommandScoreboard_setObjectivesDisplay($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_ServerCommandManager_notifyAdmins(var$6, $par1ICommandSender, var$5, var$7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 11:
        nms_ServerCommandScoreboard_setPlayerScore($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 12:
        nms_ServerCommandScoreboard_emptyTeam($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 13:
        nms_Scoreboard_func_96511_d(var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $rt_s(1108);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = var$7.$field_96675_b;
        var$5 = 0;
        var$7 = nms_CommandBase_theAdmin;
        if (var$7 === null)
            return;
        $ptr = 15;
        continue main;
    case 14:
        nms_ServerCommandScoreboard_joinTeam($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 15:
        nms_ServerCommandManager_notifyAdmins(var$7, $par1ICommandSender, var$5, var$6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 16:
        nms_ServerCommandScoreboard_leaveTeam($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 17:
        nms_ServerCommandScoreboard_setTeamOption($this, $par1ICommandSender, $par2ArrayOfStr, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 18:
        var$9.$func_96516_a(var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $rt_s(1093);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = var$6;
        var$5 = 0;
        var$6 = nms_CommandBase_theAdmin;
        if (var$6 === null)
            return;
        $ptr = 19;
    case 19:
        nms_ServerCommandManager_notifyAdmins(var$6, $par1ICommandSender, var$5, var$7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_ServerCommandScoreboard_getScoreObjective = ($this, $par1Str, $par2) => {
    let $var4, var$4, var$5;
    $var4 = nms_Scoreboard_getObjective(nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard, $par1Str);
    if ($var4 === null) {
        $var4 = new nms_CommandException;
        var$4 = $rt_createArray(jl_Object, 1);
        var$4.data[0] = $par1Str;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $var4.$message = $rt_s(1109);
        $var4.$errorObjects = var$4;
        $rt_throw($var4);
    }
    if ($par2 && $var4.$objectiveCriteria.$isReadOnly()) {
        var$5 = new nms_CommandException;
        var$4 = $rt_createArray(jl_Object, 1);
        var$4.data[0] = $par1Str;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(1110);
        var$5.$errorObjects = var$4;
        $rt_throw(var$5);
    }
    return $var4;
},
nms_ServerCommandScoreboard_addObjective = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let $var9, var$5, $var4, $var5, var$8, $var7, var$10, var$11, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();$var9 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var9 = $par2ArrayOfStr.data;
        var$5 = $par3 + 1 | 0;
        $var4 = $var9[$par3];
        $par3 = var$5 + 1 | 0;
        $var5 = $var9[var$5];
        var$8 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
        nms_ScoreObjectiveCriteria_$callClinit();
        $var7 = nms_ScoreObjectiveCriteria_field_96643_a;
        if ($var5 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            a: {
                if (!$var5.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $var5.$nativeString.length)
                            break a;
                        $var5.$hashCode1 = (31 * $var5.$hashCode1 | 0) + $var5.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$10 = $var5.$hashCode1;
            var$11 = $var7.$elementData.data;
            $var7 = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$10) {
                    b: {
                        $var8 = $var7.$key;
                        if ($var5 !== $var8) {
                            if ($var5 === $var8)
                                var$5 = 1;
                            else if (!($var8 instanceof jl_String))
                                var$5 = 0;
                            else {
                                $var8 = $var8;
                                var$5 = $var5.$nativeString !== $var8.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break b;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var7 = $var7 === null ? null : $var7.$value0;
        if ($var7 === null) {
            $par1ICommandSender = nms_ScoreObjectiveCriteria_field_96643_a;
            if ($par1ICommandSender.$cachedKeySet === null) {
                $var4 = new ju_HashMap$1;
                $var4.$this$0 = $par1ICommandSender;
                $par1ICommandSender.$cachedKeySet = $var4;
            }
            $var9 = ju_AbstractCollection_toArray($par1ICommandSender.$cachedKeySet, $rt_createArray(jl_String, 0));
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = nms_CommandBase_joinNiceString($var9);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1111);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if (nms_Scoreboard_getObjective(var$8, $var4) !== null) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var4;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1112);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if ($var4.$nativeString.length > 16) {
            $par1ICommandSender = new nms_SyntaxErrorException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            $var9 = $par2ArrayOfStr.data;
            $var9[0] = $var4;
            jl_Integer_ensureIntegerCache();
            $var9[1] = jl_Integer_integerCache.data[144];
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1113);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if (!$var4.$nativeString.length) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1081);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if ($var9.length <= $par3)
            nms_Scoreboard_func_96535_a(var$8, $var4, $var7);
        else {
            $var8 = nms_CommandBase_func_82361_a($par1ICommandSender, $par2ArrayOfStr, $par3, 0);
            if ($var8.$nativeString.length > 32) {
                $par1ICommandSender = new nms_SyntaxErrorException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                $var9 = $par2ArrayOfStr.data;
                $var9[0] = $var8;
                jl_Integer_ensureIntegerCache();
                $var9[1] = jl_Integer_integerCache.data[160];
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1114);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            if ($var8.$nativeString.length > 0) {
                $var7 = nms_Scoreboard_func_96535_a(var$8, $var4, $var7);
                $var7.$displayName0 = $var8;
                $var8 = $var7.$theScoreboard2;
                $ptr = 2;
                continue main;
            }
            nms_Scoreboard_func_96535_a(var$8, $var4, $var7);
        }
        $var7 = $rt_s(1115);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = $var4;
        $par3 = 0;
        $var4 = nms_CommandBase_theAdmin;
        if ($var4 === null)
            return;
        $ptr = 1;
    case 1:
        nms_ServerCommandManager_notifyAdmins($var4, $par1ICommandSender, $par3, $var7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $var8.$func_96532_b($var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $rt_s(1115);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = $var4;
        $par3 = 0;
        $var4 = nms_CommandBase_theAdmin;
        if ($var4 === null)
            return;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, $var9, var$5, $var4, $var5, var$8, $var7, var$10, var$11, $var8, $ptr);
},
nms_ServerCommandScoreboard_addTeam = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, var$5, $var4, var$7, $var6, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par2ArrayOfStr.data;
        var$5 = $par3 + 1 | 0;
        $var4 = var$4[$par3];
        var$7 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
        if (nms_Scoreboard_func_96508_e(var$7, $var4) !== null) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var4;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1116);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if ($var4.$nativeString.length > 16) {
            $par1ICommandSender = new nms_SyntaxErrorException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            var$4 = $par2ArrayOfStr.data;
            var$4[0] = $var4;
            jl_Integer_ensureIntegerCache();
            var$4[1] = jl_Integer_integerCache.data[144];
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1117);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if (!$var4.$nativeString.length) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1096);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if (var$4.length <= var$5) {
            $ptr = 1;
            continue main;
        }
        $var6 = nms_CommandBase_func_82361_a($par1ICommandSender, $par2ArrayOfStr, var$5, 0);
        if ($var6.$nativeString.length > 32) {
            $par1ICommandSender = new nms_SyntaxErrorException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            var$4 = $par2ArrayOfStr.data;
            var$4[0] = $var6;
            jl_Integer_ensureIntegerCache();
            var$4[1] = jl_Integer_integerCache.data[160];
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1118);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if ($var6.$nativeString.length <= 0) {
            $ptr = 3;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 1:
        nms_Scoreboard_func_96527_f(var$7, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $rt_s(1119);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = $var4;
        $par3 = 0;
        $var4 = nms_CommandBase_theAdmin;
        if ($var4 === null)
            return;
        $ptr = 2;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var4, $par1ICommandSender, $par3, var$9, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_Scoreboard_func_96527_f(var$7, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $rt_s(1119);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = $var4;
        $par3 = 0;
        $var4 = nms_CommandBase_theAdmin;
        if ($var4 === null)
            return;
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_Scoreboard_func_96527_f(var$7, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        var$9.$field_96673_d = $var6;
        $var6 = var$9.$theScoreboard1;
        $ptr = 5;
    case 5:
        $var6.$func_96538_b(var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $rt_s(1119);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
        $par2ArrayOfStr.data[0] = $var4;
        $par3 = 0;
        $var4 = nms_CommandBase_theAdmin;
        if ($var4 === null)
            return;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, var$5, $var4, var$7, $var6, var$9, $ptr);
},
nms_ServerCommandScoreboard_setTeamOption = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, $var5, $var4, $var6, var$8, var$9, var$10, $var7, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$4 = $par3 + 1 | 0;
        $var5 = $par2ArrayOfStr[$par3];
        $var4 = nms_Scoreboard_func_96508_e(nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard, $var5);
        if ($var4 === null) {
            $var6 = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var5;
            $var6.$suppressionEnabled = 1;
            $var6.$writableStackTrace = 1;
            $var6.$message = $rt_s(1098);
            $var6.$errorObjects = $par2ArrayOfStr;
            $rt_throw($var6);
        }
        $par3 = var$4 + 1 | 0;
        $var5 = $par2ArrayOfStr[var$4];
        $var6 = $var5.$nativeString.toLowerCase();
        if ($var6 !== $var5.$nativeString)
            $var5 = jl_String__init_0($var6);
        if (!jl_String_equalsIgnoreCase($var5, $rt_s(1120)) && !jl_String_equalsIgnoreCase($var5, $rt_s(1121)) && !jl_String_equalsIgnoreCase($var5, $rt_s(1122))) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1106);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        if ($par2ArrayOfStr.length == 4) {
            if (jl_String_equalsIgnoreCase($var5, $rt_s(1120))) {
                $par1ICommandSender = new nms_WrongUsageException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                var$8 = $par2ArrayOfStr.data;
                var$8[0] = $var5;
                $var5 = nms_EnumChatFormatting_func_96296_a(1, 0);
                var$8[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, $var5.$size0)));
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1123);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            if (!jl_String_equalsIgnoreCase($var5, $rt_s(1121)) && !jl_String_equalsIgnoreCase($var5, $rt_s(1122))) {
                $par1ICommandSender = new nms_WrongUsageException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1106);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            var$8 = $par2ArrayOfStr.data;
            var$8[0] = $var5;
            var$9 = $rt_createArray(jl_String, 2);
            var$10 = var$9.data;
            var$10[0] = $rt_s(898);
            var$10[1] = $rt_s(897);
            $var5 = new ju_Arrays$ArrayAsList;
            $var5.$array1 = var$9;
            var$8[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, var$10.length)));
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1123);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var6 = $par2ArrayOfStr[$par3];
        if (!jl_String_equalsIgnoreCase($var5, $rt_s(1120))) {
            if (jl_String_equalsIgnoreCase($var5, $rt_s(1121))) {
                if (!jl_String_equalsIgnoreCase($var6, $rt_s(898)) && !jl_String_equalsIgnoreCase($var6, $rt_s(897))) {
                    $par1ICommandSender = new nms_WrongUsageException;
                    var$8 = $rt_createArray(jl_Object, 2);
                    var$9 = var$8.data;
                    var$9[0] = $var5;
                    $par2ArrayOfStr = $rt_createArray(jl_String, 2);
                    var$10 = $par2ArrayOfStr.data;
                    var$10[0] = $rt_s(898);
                    var$10[1] = $rt_s(897);
                    $var5 = new ju_Arrays$ArrayAsList;
                    $var5.$array1 = $par2ArrayOfStr;
                    var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, var$10.length)));
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1123);
                    $par1ICommandSender.$errorObjects = var$8;
                    $rt_throw($par1ICommandSender);
                }
                $var4.$allowFriendlyFire = jl_String_equalsIgnoreCase($var6, $rt_s(898));
                $var7 = $var4.$theScoreboard1;
                $ptr = 1;
                continue main;
            }
            if (!jl_String_equalsIgnoreCase($var5, $rt_s(1122))) {
                $var7 = $rt_s(1124);
                $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var5, $var4.$field_96675_b, $var6]);
                $par3 = 0;
                $var5 = nms_CommandBase_theAdmin;
                if ($var5 === null)
                    return;
                $ptr = 2;
                continue main;
            }
            if (!jl_String_equalsIgnoreCase($var6, $rt_s(898)) && !jl_String_equalsIgnoreCase($var6, $rt_s(897))) {
                $par1ICommandSender = new nms_WrongUsageException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                var$8 = $par2ArrayOfStr.data;
                var$8[0] = $var5;
                var$9 = $rt_createArray(jl_String, 2);
                var$10 = var$9.data;
                var$10[0] = $rt_s(898);
                var$10[1] = $rt_s(897);
                $var5 = new ju_Arrays$ArrayAsList;
                $var5.$array1 = var$9;
                var$8[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, var$10.length)));
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1123);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            $var4.$field_98301_h = jl_String_equalsIgnoreCase($var6, $rt_s(898));
            $var7 = $var4.$theScoreboard1;
            $ptr = 3;
            continue main;
        }
        nms_EnumChatFormatting_$callClinit();
        if ($var6 === null)
            $var7 = null;
        else {
            $var7 = nms_EnumChatFormatting_field_96331_x;
            var$12 = $var6.$nativeString.toLowerCase();
            var$13 = var$12 === $var6.$nativeString ? $var6 : jl_String__init_0(var$12);
            a: {
                if (!var$13.$hashCode1) {
                    $par3 = 0;
                    while (true) {
                        if ($par3 >= var$13.$nativeString.length)
                            break a;
                        var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt($par3) | 0;
                        $par3 = $par3 + 1 | 0;
                    }
                }
            }
            var$14 = var$13.$hashCode1;
            $par2ArrayOfStr = $var7.$elementData.data;
            $var7 = $par2ArrayOfStr[var$14 & ($par2ArrayOfStr.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$14) {
                    b: {
                        var$12 = $var7.$key;
                        if (var$13 !== var$12) {
                            if (var$13 === var$12)
                                $par3 = 1;
                            else if (!(var$12 instanceof jl_String))
                                $par3 = 0;
                            else {
                                var$12 = var$12;
                                $par3 = var$13.$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!$par3) {
                                $par3 = 0;
                                break b;
                            }
                        }
                        $par3 = 1;
                    }
                    if ($par3)
                        break;
                }
                $var7 = $var7.$next3;
            }
            $var7 = $var7 === null ? null : $var7.$value0;
        }
        if ($var6 === null) {
            $par1ICommandSender = new nms_WrongUsageException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            var$8 = $par2ArrayOfStr.data;
            var$8[0] = $var5;
            $var5 = nms_EnumChatFormatting_func_96296_a(1, 0);
            var$8[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, $var5.$size0)));
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1123);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $var7 = $var7.$field_96304_B;
        if ($var7 === null) {
            $var5 = new jl_IllegalArgumentException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $var5.$message = $rt_s(1125);
            $rt_throw($var5);
        }
        $var4.$field_96674_e = $var7;
        $var7 = $var4.$theScoreboard1;
        $ptr = 4;
        continue main;
    case 1:
        $var7.$func_96538_b($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $rt_s(1124);
        $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var5, $var4.$field_96675_b, $var6]);
        $par3 = 0;
        $var5 = nms_CommandBase_theAdmin;
        if ($var5 === null)
            return;
        $ptr = 2;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, $par3, $var7, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $var7.$func_96538_b($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $rt_s(1124);
        $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var5, $var4.$field_96675_b, $var6]);
        $par3 = 0;
        $var5 = nms_CommandBase_theAdmin;
        if ($var5 === null)
            return;
        $ptr = 2;
        continue main;
    case 4:
        $var7.$func_96538_b($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = nms_EnumChatFormatting_RESET.$field_96304_B;
        if ($var7 === null) {
            $var5 = new jl_IllegalArgumentException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $var5.$message = $rt_s(1126);
            $rt_throw($var5);
        }
        $var4.$colorSuffix = $var7;
        $var7 = $var4.$theScoreboard1;
        $ptr = 5;
    case 5:
        $var7.$func_96538_b($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $rt_s(1124);
        $par2ArrayOfStr = $rt_wrapArray(jl_Object, [$var5, $var4.$field_96675_b, $var6]);
        $par3 = 0;
        $var5 = nms_CommandBase_theAdmin;
        if ($var5 === null)
            return;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, $var5, $var4, $var6, var$8, var$9, var$10, $var7, var$12, var$13, var$14, $ptr);
},
nms_ServerCommandScoreboard_getTeamList = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, $var9, $var5, $var7, $var6, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var9 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$4 = nms_MinecraftServer_mcServer.$worldServers.data;
        $var9 = var$4[0].$worldScoreboard;
        if ($par2ArrayOfStr.length > $par3) {
            $var9 = $par2ArrayOfStr[$par3];
            $var5 = nms_Scoreboard_func_96508_e(var$4[0].$worldScoreboard, $var9);
            if ($var5 === null) {
                $var7 = new nms_CommandException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                $par2ArrayOfStr.data[0] = $var9;
                $var7.$suppressionEnabled = 1;
                $var7.$writableStackTrace = 1;
                $var7.$message = $rt_s(1098);
                $var7.$errorObjects = $par2ArrayOfStr;
                $rt_throw($var7);
            }
            $var6 = $var5.$membershipSet;
            if ($var6.$backingMap.$elementCount <= 0) {
                $par1ICommandSender = new nms_CommandException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                $par2ArrayOfStr.data[0] = $var5.$field_96675_b;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1127);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $var9 = nms_EnumChatFormatting_DARK_GREEN;
            $var7 = $var9 === null ? $rt_s(1) : $var9.$field_96304_B;
            $var9 = new jl_StringBuilder;
            $var9.$buffer = $rt_createCharArray(16);
            $par3 = $var9.$length0;
            if ($var7 === null)
                $var7 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var9, $par3, $var7);
            jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(1128));
            $var7 = new jl_String;
            $par2ArrayOfStr = $var9.$buffer;
            var$4 = $par2ArrayOfStr.data;
            var$9 = $var9.$length0;
            var$10 = var$4.length;
            if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
                $var7.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$9);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                var$10 = $var6.$backingMap.$elementCount;
                if (var$10 >= (-128) && var$10 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var9 = jl_Integer_integerCache.data[var$10 + 128 | 0];
                } else {
                    $var9 = new jl_Integer;
                    $var9.$value = var$10;
                }
                var$4 = $par2ArrayOfStr.data;
                var$4[0] = $var9;
                var$4[1] = $var5.$field_96675_b;
                nms_StatCollector_$callClinit();
                $var9 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var7, $par2ArrayOfStr);
                $ptr = 2;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        $var9 = $var9.$field_96542_e;
        if ($var9.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var9;
            $var9.$cachedValues = $var7;
        }
        $var6 = $var9.$cachedValues;
        if ($var6.$size() <= 0) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1129);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $var9 = nms_EnumChatFormatting_DARK_GREEN;
        $var7 = $var9 === null ? $rt_s(1) : $var9.$field_96304_B;
        $var9 = new jl_StringBuilder;
        $var9.$buffer = $rt_createCharArray(16);
        $par3 = $var9.$length0;
        if ($var7 === null)
            $var7 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var9, $par3, $var7);
        jl_AbstractStringBuilder_insert($var9, $var9.$length0, $rt_s(1130));
        $var7 = new jl_String;
        $par2ArrayOfStr = $var9.$buffer;
        var$4 = $par2ArrayOfStr.data;
        var$9 = $var9.$length0;
        var$10 = var$4.length;
        if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
            $var7.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$9);
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            var$9 = $var6.$size();
            if (var$9 >= (-128) && var$9 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var9 = jl_Integer_integerCache.data[var$9 + 128 | 0];
            } else {
                $var9 = new jl_Integer;
                $var9.$value = var$9;
            }
            $par2ArrayOfStr.data[0] = $var9;
            nms_StatCollector_$callClinit();
            $var9 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var7, $par2ArrayOfStr);
            $ptr = 1;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var6.$iterator();
        if (!$var9.$hasNext())
            return;
        $var7 = $var9.$next();
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$4 = $par2ArrayOfStr.data;
        var$4[0] = $var7.$field_96675_b;
        var$4[1] = $var7.$field_96673_d;
        var$10 = $var7.$membershipSet.$backingMap.$elementCount;
        if (var$10 >= (-128) && var$10 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var7 = jl_Integer_integerCache.data[var$10 + 128 | 0];
        } else {
            $var7 = new jl_Integer;
            $var7.$value = var$10;
        }
        var$4[2] = $var7;
        $var7 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1131), $par2ArrayOfStr);
        $ptr = 4;
        continue main;
    case 2:
        $par1ICommandSender.$sendChatToPlayer($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var6.$backingMap;
        $par2ArrayOfStr = $rt_createArray(jl_Object, $var7.$elementCount);
        var$9 = 0;
        if ($var7.$cachedKeySet === null) {
            $var9 = new ju_HashMap$1;
            $var9.$this$0 = $var7;
            $var7.$cachedKeySet = $var9;
        }
        var$4 = $par2ArrayOfStr.data;
        $var9 = $var7.$cachedKeySet.$iterator();
        while ($var9.$hasNext()) {
            $par3 = var$9 + 1 | 0;
            var$4[var$9] = $var9.$next();
            var$9 = $par3;
        }
        $var9 = nms_CommandBase_joinNiceString($par2ArrayOfStr);
        $ptr = 3;
    case 3:
        $par1ICommandSender.$sendChatToPlayer($var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $par1ICommandSender.$sendChatToPlayer($var7);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var9.$hasNext())
            return;
        $var7 = $var9.$next();
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$4 = $par2ArrayOfStr.data;
        var$4[0] = $var7.$field_96675_b;
        var$4[1] = $var7.$field_96673_d;
        var$10 = $var7.$membershipSet.$backingMap.$elementCount;
        if (var$10 >= (-128) && var$10 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var7 = jl_Integer_integerCache.data[var$10 + 128 | 0];
        } else {
            $var7 = new jl_Integer;
            $var7.$value = var$10;
        }
        var$4[2] = $var7;
        $var7 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1131), $par2ArrayOfStr);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, $var9, $var5, $var7, $var6, var$9, var$10, $ptr);
},
nms_ServerCommandScoreboard_joinTeam = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, var$5, $var5, $var6, var$8, var$9, var$10, $var7, var$12, var$13, var$14, var$15, var$16, $var7_0, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var7_0 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$4 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
        var$5 = $par3 + 1 | 0;
        $var5 = nms_Scoreboard_func_96508_e(var$4, $par2ArrayOfStr[$par3]);
        $var6 = new ju_HashSet;
        var$8 = new ju_HashMap;
        $par3 = ju_HashMap_calculateCapacity(16);
        var$8.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, $par3);
        var$10 = var$9.data;
        var$8.$elementData = var$9;
        var$8.$loadFactor = 0.75;
        var$8.$threshold = var$10.length * 0.75 | 0;
        $var6.$backingMap = var$8;
        if ($par1ICommandSender instanceof nms_EntityPlayer && var$5 == $par2ArrayOfStr.length) {
            if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                $var5 = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $var5.$message = $rt_s(961);
                $var5.$errorObjects = $par2ArrayOfStr;
                $rt_throw($var5);
            }
            $var7 = $par1ICommandSender.$username;
            $ptr = 1;
            continue main;
        }
        var$12 = null;
        var$13 = 2;
        var$14 = 3;
        if (var$5 >= $par2ArrayOfStr.length) {
            var$15 = $var6.$backingMap.$elementCount;
            if (!(var$15 ? 0 : 1)) {
                var$8 = $rt_s(1132);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
                if (var$15 >= (-128) && var$15 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var7 = jl_Integer_integerCache.data[var$15 + 128 | 0];
                } else {
                    $var7 = new jl_Integer;
                    $var7.$value = var$15;
                }
                var$10 = $par2ArrayOfStr.data;
                var$10[0] = $var7;
                var$10[1] = $var5.$field_96675_b;
                var$10[2] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
                $par3 = 0;
                $var5 = nms_CommandBase_theAdmin;
                if ($var5 !== null) {
                    $ptr = 3;
                    continue main;
                }
            }
            return;
        }
        a: {
            var$16 = var$5 + 1 | 0;
            $var7_0 = $par2ArrayOfStr[var$5];
            nms_PlayerSelector_$callClinit();
            var$10 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var7_0);
            if (var$10 !== null) {
                var$10 = var$10.data;
                if (var$10.length == 1) {
                    var$8 = var$10[0];
                    break a;
                }
            }
            var$8 = null;
        }
        if (var$8 !== null)
            $var7_0 = var$8.$username;
        else {
            var$8 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var7_0);
            var$18 = var$8.$leftBound0;
            $var7 = var$8.$matchResult;
            $var7.$valid = 0;
            $var7.$mode0 = 2;
            var$10 = $var7.$groupBounds;
            ju_Arrays_fill(var$10, 0, var$10.data.length, (-1));
            var$10 = $var7.$consumers;
            ju_Arrays_fill(var$10, 0, var$10.data.length, (-1));
            $var7.$startIndex = $var7.$leftBound;
            $var7 = var$8.$matchResult;
            $var7.$mode0 = 2;
            $var7.$startIndex = var$18;
            $par3 = $var7.$previousMatch;
            if ($par3 < 0)
                $par3 = var$18;
            $var7.$previousMatch = $par3;
            if (var$8.$start3.$matches(var$18, var$8.$string, $var7) < 0)
                $par3 = 0;
            else {
                var$10 = $var7.$groupBounds.data;
                if (var$10[0] == (-1)) {
                    var$5 = $var7.$startIndex;
                    var$10[0] = var$5;
                    var$10[1] = var$5;
                }
                $var7.$previousMatch = jur_MatchResultImpl_end($var7, 0);
                $par3 = 1;
            }
            if (!$par3)
                $par3 = 0;
            else {
                var$8 = var$8.$matchResult;
                var$15 = var$8.$valid;
                if (!var$15) {
                    $par1ICommandSender = new jl_IllegalStateException;
                    jl_RuntimeException__init_($par1ICommandSender);
                    $rt_throw($par1ICommandSender);
                }
                var$19 = $rt_compare(1, var$8.$groupCount);
                if (var$19 >= 0) {
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                    $rt_throw($par1ICommandSender);
                }
                var$10 = var$8.$groupBounds.data;
                if (var$10[var$13] < 0)
                    var$8 = null;
                else {
                    var$8 = var$8.$string0;
                    if (!var$15) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$19 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = var$10[var$13];
                    if (!var$15) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$19 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    var$8 = jl_String_substring(var$8, var$5, var$10[var$14]);
                }
                $par3 = var$12 !== null && !var$12.$equals(var$8) ? 0 : 1;
            }
            if ($par3) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        $ptr = 2;
        continue main;
    case 1:
        var$4.$func_96521_a($var7, $var5);
        if ($rt_suspending()) {
            break main;
        }
        ju_HashMap_putImpl($var6.$backingMap, $var7, $var6);
        var$15 = $var6.$backingMap.$elementCount;
        if (!(var$15 ? 0 : 1)) {
            var$8 = $rt_s(1132);
            $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
            if (var$15 >= (-128) && var$15 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[var$15 + 128 | 0];
            } else {
                $var7 = new jl_Integer;
                $var7.$value = var$15;
            }
            var$10 = $par2ArrayOfStr.data;
            var$10[0] = $var7;
            var$10[1] = $var5.$field_96675_b;
            var$10[2] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
            $par3 = 0;
            $var5 = nms_CommandBase_theAdmin;
            if ($var5 !== null) {
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        var$4.$func_96521_a($var7_0, $var5);
        if ($rt_suspending()) {
            break main;
        }
        ju_HashMap_putImpl($var6.$backingMap, $var7_0, $var6);
        var$5 = var$16;
        if (var$5 >= $par2ArrayOfStr.length) {
            var$15 = $var6.$backingMap.$elementCount;
            if (!(var$15 ? 0 : 1)) {
                var$8 = $rt_s(1132);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
                if (var$15 >= (-128) && var$15 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var7 = jl_Integer_integerCache.data[var$15 + 128 | 0];
                } else {
                    $var7 = new jl_Integer;
                    $var7.$value = var$15;
                }
                var$10 = $par2ArrayOfStr.data;
                var$10[0] = $var7;
                var$10[1] = $var5.$field_96675_b;
                var$10[2] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
                $par3 = 0;
                $var5 = nms_CommandBase_theAdmin;
                if ($var5 !== null) {
                    $ptr = 3;
                    continue main;
                }
            }
            return;
        }
        b: {
            var$16 = var$5 + 1 | 0;
            $var7_0 = $par2ArrayOfStr[var$5];
            nms_PlayerSelector_$callClinit();
            var$10 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var7_0);
            if (var$10 !== null) {
                var$10 = var$10.data;
                if (var$10.length == 1) {
                    var$8 = var$10[0];
                    break b;
                }
            }
            var$8 = null;
        }
        if (var$8 !== null)
            $var7_0 = var$8.$username;
        else {
            var$8 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var7_0);
            var$18 = var$8.$leftBound0;
            $var7 = var$8.$matchResult;
            $var7.$valid = 0;
            $var7.$mode0 = 2;
            var$10 = $var7.$groupBounds;
            ju_Arrays_fill(var$10, 0, var$10.data.length, (-1));
            var$10 = $var7.$consumers;
            ju_Arrays_fill(var$10, 0, var$10.data.length, (-1));
            $var7.$startIndex = $var7.$leftBound;
            $var7 = var$8.$matchResult;
            $var7.$mode0 = 2;
            $var7.$startIndex = var$18;
            $par3 = $var7.$previousMatch;
            if ($par3 < 0)
                $par3 = var$18;
            $var7.$previousMatch = $par3;
            if (var$8.$start3.$matches(var$18, var$8.$string, $var7) < 0)
                $par3 = 0;
            else {
                var$10 = $var7.$groupBounds.data;
                if (var$10[0] == (-1)) {
                    var$5 = $var7.$startIndex;
                    var$10[0] = var$5;
                    var$10[1] = var$5;
                }
                $var7.$previousMatch = jur_MatchResultImpl_end($var7, 0);
                $par3 = 1;
            }
            if (!$par3)
                $par3 = 0;
            else {
                var$8 = var$8.$matchResult;
                var$15 = var$8.$valid;
                if (!var$15) {
                    $par1ICommandSender = new jl_IllegalStateException;
                    jl_RuntimeException__init_($par1ICommandSender);
                    $rt_throw($par1ICommandSender);
                }
                var$19 = $rt_compare(1, var$8.$groupCount);
                if (var$19 >= 0) {
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                    $rt_throw($par1ICommandSender);
                }
                var$10 = var$8.$groupBounds.data;
                if (var$10[var$13] < 0)
                    var$8 = null;
                else {
                    var$8 = var$8.$string0;
                    if (!var$15) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$19 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    var$5 = var$10[var$13];
                    if (!var$15) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$19 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    var$8 = jl_String_substring(var$8, var$5, var$10[var$14]);
                }
                $par3 = var$12 !== null && !var$12.$equals(var$8) ? 0 : 1;
            }
            if ($par3) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        continue main;
    case 3:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, $par3, var$8, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, var$5, $var5, $var6, var$8, var$9, var$10, $var7, var$12, var$13, var$14, var$15, var$16, $var7_0, var$18, var$19, $ptr);
},
nms_ServerCommandScoreboard_leaveTeam = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, $var5, var$6, var$7, var$8, var$9, $var6, $var7, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$4 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
            $var5 = new ju_HashSet;
            var$6 = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            var$6.$elementCount = 0;
            var$8 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$9 = var$8.data;
            var$6.$elementData = var$8;
            var$6.$loadFactor = 0.75;
            var$6.$threshold = var$9.length * 0.75 | 0;
            $var5.$backingMap = var$6;
            $var6 = new ju_HashSet;
            var$6 = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            var$6.$elementCount = 0;
            var$8 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$9 = var$8.data;
            var$6.$elementData = var$8;
            var$6.$loadFactor = 0.75;
            var$6.$threshold = var$9.length * 0.75 | 0;
            $var6.$backingMap = var$6;
            if ($par1ICommandSender instanceof nms_EntityPlayer && $par3 == $par2ArrayOfStr.data.length) {
                if (!($par1ICommandSender instanceof nms_EntityPlayerMP)) {
                    $var5 = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $var5.$message = $rt_s(961);
                    $var5.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($var5);
                }
                $var7 = $par1ICommandSender.$username;
                var$6 = nms_Scoreboard_getPlayersTeam(var$4, $var7);
                if (var$6 !== null) {
                    $ptr = 1;
                    continue main;
                }
                if (!0)
                    ju_HashMap_putImpl($var6.$backingMap, $var7, $var6);
                else
                    ju_HashMap_putImpl($var5.$backingMap, $var7, $var5);
            } else {
                var$6 = null;
                var$12 = 2;
                var$13 = 3;
                while (true) {
                    var$9 = $par2ArrayOfStr.data;
                    if ($par3 >= var$9.length)
                        break a;
                    b: {
                        var$7 = $par3 + 1 | 0;
                        $var7 = var$9[$par3];
                        nms_PlayerSelector_$callClinit();
                        var$9 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var7);
                        if (var$9 !== null) {
                            var$9 = var$9.data;
                            if (var$9.length == 1) {
                                var$14 = var$9[0];
                                break b;
                            }
                        }
                        var$14 = null;
                    }
                    if (var$14 !== null)
                        $var7 = var$14.$username;
                    else {
                        var$14 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var7);
                        var$15 = var$14.$leftBound0;
                        var$16 = var$14.$matchResult;
                        var$16.$valid = 0;
                        var$16.$mode0 = 2;
                        var$8 = var$16.$groupBounds;
                        ju_Arrays_fill(var$8, 0, var$8.data.length, (-1));
                        var$9 = var$16.$consumers;
                        ju_Arrays_fill(var$9, 0, var$9.data.length, (-1));
                        var$16.$startIndex = var$16.$leftBound;
                        var$16 = var$14.$matchResult;
                        var$16.$mode0 = 2;
                        var$16.$startIndex = var$15;
                        $par3 = var$16.$previousMatch;
                        if ($par3 < 0)
                            $par3 = var$15;
                        var$16.$previousMatch = $par3;
                        if (var$14.$start3.$matches(var$15, var$14.$string, var$16) < 0)
                            $par3 = 0;
                        else {
                            var$9 = var$16.$groupBounds.data;
                            if (var$9[0] == (-1)) {
                                var$17 = var$16.$startIndex;
                                var$9[0] = var$17;
                                var$9[1] = var$17;
                            }
                            var$16.$previousMatch = jur_MatchResultImpl_end(var$16, 0);
                            $par3 = 1;
                        }
                        if (!$par3)
                            $par3 = 0;
                        else {
                            var$14 = var$14.$matchResult;
                            var$15 = var$14.$valid;
                            if (!var$15) {
                                $par1ICommandSender = new jl_IllegalStateException;
                                jl_RuntimeException__init_($par1ICommandSender);
                                $rt_throw($par1ICommandSender);
                            }
                            var$18 = $rt_compare(1, var$14.$groupCount);
                            if (var$18 >= 0) {
                                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                                jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                                $rt_throw($par1ICommandSender);
                            }
                            var$9 = var$14.$groupBounds.data;
                            if (var$9[var$12] < 0)
                                var$14 = null;
                            else {
                                var$14 = var$14.$string0;
                                if (!var$15) {
                                    $par1ICommandSender = new jl_IllegalStateException;
                                    jl_RuntimeException__init_($par1ICommandSender);
                                    $rt_throw($par1ICommandSender);
                                }
                                if (var$18 >= 0) {
                                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                                    jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                                    $rt_throw($par1ICommandSender);
                                }
                                var$17 = var$9[var$12];
                                if (!var$15)
                                    break;
                                if (var$18 >= 0) {
                                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                                    jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                                    $rt_throw($par1ICommandSender);
                                }
                                var$14 = jl_String_substring(var$14, var$17, var$9[var$13]);
                            }
                            $par3 = var$6 !== null && !var$6.$equals(var$14) ? 0 : 1;
                        }
                        if ($par3) {
                            $par1ICommandSender = new nms_PlayerNotFoundException;
                            $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                            $par1ICommandSender.$suppressionEnabled = 1;
                            $par1ICommandSender.$writableStackTrace = 1;
                            $par1ICommandSender.$message = $rt_s(948);
                            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                            $rt_throw($par1ICommandSender);
                        }
                    }
                    var$14 = nms_Scoreboard_getPlayersTeam(var$4, $var7);
                    if (var$14 !== null) {
                        $ptr = 2;
                        continue main;
                    }
                    if (!0) {
                        ju_HashMap_putImpl($var6.$backingMap, $var7, $var6);
                        $par3 = var$7;
                        continue;
                    }
                    ju_HashMap_putImpl($var5.$backingMap, $var7, $var5);
                    $par3 = var$7;
                }
                $par1ICommandSender = new jl_IllegalStateException;
                jl_RuntimeException__init_($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
        }
        var$17 = $var5.$backingMap.$elementCount;
        if (!(var$17 ? 0 : 1)) {
            var$6 = $rt_s(1133);
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            if (var$17 >= (-128) && var$17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[var$17 + 128 | 0];
            } else {
                $var7 = new jl_Integer;
                $var7.$value = var$17;
            }
            var$9 = $par2ArrayOfStr.data;
            var$9[0] = $var7;
            var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, 0)));
            $par3 = 0;
            $var5 = nms_CommandBase_theAdmin;
            if ($var5 !== null) {
                $ptr = 3;
                continue main;
            }
        }
        var$17 = $var6.$backingMap.$elementCount;
        if (var$17 ? 0 : 1)
            return;
        $par1ICommandSender = new nms_CommandException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        if (var$17 >= (-128) && var$17 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[var$17 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = var$17;
        }
        var$9 = $par2ArrayOfStr.data;
        var$9[0] = var$6;
        var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $par1ICommandSender.$message = $rt_s(1134);
        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
        $rt_throw($par1ICommandSender);
    case 1:
        var$4.$removePlayerFromTeam($var7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if (!1)
            ju_HashMap_putImpl($var6.$backingMap, $var7, $var6);
        else
            ju_HashMap_putImpl($var5.$backingMap, $var7, $var5);
        var$17 = $var5.$backingMap.$elementCount;
        if (!(var$17 ? 0 : 1)) {
            var$6 = $rt_s(1133);
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            if (var$17 >= (-128) && var$17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[var$17 + 128 | 0];
            } else {
                $var7 = new jl_Integer;
                $var7.$value = var$17;
            }
            var$9 = $par2ArrayOfStr.data;
            var$9[0] = $var7;
            var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, 0)));
            $par3 = 0;
            $var5 = nms_CommandBase_theAdmin;
            if ($var5 !== null) {
                $ptr = 3;
                continue main;
            }
        }
        var$17 = $var6.$backingMap.$elementCount;
        if (var$17 ? 0 : 1)
            return;
        $par1ICommandSender = new nms_CommandException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        if (var$17 >= (-128) && var$17 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[var$17 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = var$17;
        }
        var$9 = $par2ArrayOfStr.data;
        var$9[0] = var$6;
        var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $par1ICommandSender.$message = $rt_s(1134);
        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
        $rt_throw($par1ICommandSender);
    case 2:
        var$4.$removePlayerFromTeam($var7, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 1;
        while (true) {
            if (!$par3) {
                ju_HashMap_putImpl($var6.$backingMap, $var7, $var6);
                $par3 = var$7;
            } else {
                ju_HashMap_putImpl($var5.$backingMap, $var7, $var5);
                $par3 = var$7;
            }
            var$9 = $par2ArrayOfStr.data;
            if ($par3 >= var$9.length) {
                var$17 = $var5.$backingMap.$elementCount;
                if (!(var$17 ? 0 : 1)) {
                    var$6 = $rt_s(1133);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                    if (var$17 >= (-128) && var$17 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var7 = jl_Integer_integerCache.data[var$17 + 128 | 0];
                    } else {
                        $var7 = new jl_Integer;
                        $var7.$value = var$17;
                    }
                    var$9 = $par2ArrayOfStr.data;
                    var$9[0] = $var7;
                    var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var5, $rt_createArray(jl_String, 0)));
                    $par3 = 0;
                    $var5 = nms_CommandBase_theAdmin;
                    if ($var5 !== null) {
                        $ptr = 3;
                        continue main;
                    }
                }
                var$17 = $var6.$backingMap.$elementCount;
                if (var$17 ? 0 : 1)
                    return;
                $par1ICommandSender = new nms_CommandException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                if (var$17 >= (-128) && var$17 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[var$17 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = var$17;
                }
                var$9 = $par2ArrayOfStr.data;
                var$9[0] = var$6;
                var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1134);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            c: {
                var$7 = $par3 + 1 | 0;
                $var7 = var$9[$par3];
                nms_PlayerSelector_$callClinit();
                var$9 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var7);
                if (var$9 !== null) {
                    var$9 = var$9.data;
                    if (var$9.length == 1) {
                        var$14 = var$9[0];
                        break c;
                    }
                }
                var$14 = null;
            }
            if (var$14 !== null)
                $var7 = var$14.$username;
            else {
                var$14 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var7);
                var$15 = var$14.$leftBound0;
                var$16 = var$14.$matchResult;
                var$16.$valid = 0;
                var$16.$mode0 = 2;
                var$8 = var$16.$groupBounds;
                ju_Arrays_fill(var$8, 0, var$8.data.length, (-1));
                var$9 = var$16.$consumers;
                ju_Arrays_fill(var$9, 0, var$9.data.length, (-1));
                var$16.$startIndex = var$16.$leftBound;
                var$16 = var$14.$matchResult;
                var$16.$mode0 = 2;
                var$16.$startIndex = var$15;
                $par3 = var$16.$previousMatch;
                if ($par3 < 0)
                    $par3 = var$15;
                var$16.$previousMatch = $par3;
                if (var$14.$start3.$matches(var$15, var$14.$string, var$16) < 0)
                    $par3 = 0;
                else {
                    var$9 = var$16.$groupBounds.data;
                    if (var$9[0] == (-1)) {
                        var$17 = var$16.$startIndex;
                        var$9[0] = var$17;
                        var$9[1] = var$17;
                    }
                    var$16.$previousMatch = jur_MatchResultImpl_end(var$16, 0);
                    $par3 = 1;
                }
                if (!$par3)
                    $par3 = 0;
                else {
                    var$14 = var$14.$matchResult;
                    var$15 = var$14.$valid;
                    if (!var$15) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    var$18 = $rt_compare(1, var$14.$groupCount);
                    if (var$18 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    var$9 = var$14.$groupBounds.data;
                    if (var$9[var$12] < 0)
                        var$14 = null;
                    else {
                        var$14 = var$14.$string0;
                        if (!var$15) {
                            $par1ICommandSender = new jl_IllegalStateException;
                            jl_RuntimeException__init_($par1ICommandSender);
                            $rt_throw($par1ICommandSender);
                        }
                        if (var$18 >= 0) {
                            $par1ICommandSender = new jl_IndexOutOfBoundsException;
                            jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                            $rt_throw($par1ICommandSender);
                        }
                        var$17 = var$9[var$12];
                        if (!var$15)
                            break;
                        if (var$18 >= 0) {
                            $par1ICommandSender = new jl_IndexOutOfBoundsException;
                            jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                            $rt_throw($par1ICommandSender);
                        }
                        var$14 = jl_String_substring(var$14, var$17, var$9[var$13]);
                    }
                    $par3 = var$6 !== null && !var$6.$equals(var$14) ? 0 : 1;
                }
                if ($par3) {
                    $par1ICommandSender = new nms_PlayerNotFoundException;
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(948);
                    $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                    $rt_throw($par1ICommandSender);
                }
            }
            var$14 = nms_Scoreboard_getPlayersTeam(var$4, $var7);
            if (var$14 !== null) {
                continue main;
            }
            $par3 = 0;
        }
        $par1ICommandSender = new jl_IllegalStateException;
        jl_RuntimeException__init_($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 3:
        nms_ServerCommandManager_notifyAdmins($var5, $par1ICommandSender, $par3, var$6, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $var6.$backingMap.$elementCount;
        if (var$17 ? 0 : 1)
            return;
        $par1ICommandSender = new nms_CommandException;
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        if (var$17 >= (-128) && var$17 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[var$17 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = var$17;
        }
        var$9 = $par2ArrayOfStr.data;
        var$9[0] = var$6;
        var$9[1] = nms_CommandBase_joinNiceString(ju_AbstractCollection_toArray($var6, $rt_createArray(jl_String, 0)));
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        $par1ICommandSender.$message = $rt_s(1134);
        $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
        $rt_throw($par1ICommandSender);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, $var5, var$6, var$7, var$8, var$9, $var6, $var7, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_ServerCommandScoreboard_emptyTeam = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, var$5, $var6, $var5, $var8, var$9, $var7$index, var$11, var$12, $var7$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7$index_0 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var7$index = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$4 = nms_MinecraftServer_mcServer.$worldServers.data;
        var$5 = var$4[0].$worldScoreboard;
        $var6 = $par2ArrayOfStr[$par3];
        $var5 = nms_Scoreboard_func_96508_e(var$4[0].$worldScoreboard, $var6);
        if ($var5 === null) {
            $var8 = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var6;
            $var8.$suppressionEnabled = 1;
            $var8.$writableStackTrace = 1;
            $var8.$message = $rt_s(1098);
            $var8.$errorObjects = $par2ArrayOfStr;
            $rt_throw($var8);
        }
        $var6 = new ju_ArrayList;
        var$9 = $var5.$membershipSet.$backingMap;
        $par3 = var$9.$elementCount;
        if ($par3 < 0) {
            $par1ICommandSender = new jl_IllegalArgumentException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $rt_throw($par1ICommandSender);
        }
        $var6.$array = $rt_createArray(jl_Object, $par3);
        if (var$9.$cachedKeySet === null) {
            $var8 = new ju_HashMap$1;
            $var8.$this$0 = var$9;
            var$9.$cachedKeySet = $var8;
        }
        var$9 = var$9.$cachedKeySet.$iterator();
        $par3 = 0;
        while (true) {
            $par2ArrayOfStr = $var6.$array.data;
            $var7$index = $par2ArrayOfStr.length;
            if ($par3 >= $var7$index)
                break;
            $par2ArrayOfStr[$par3] = var$9.$next();
            $par3 = $par3 + 1 | 0;
        }
        $var6.$size0 = $var7$index;
        if ($var7$index ? 0 : 1) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var5.$field_96675_b;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1135);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        var$11 = $var6.$modCount;
        var$12 = $var6.$size();
        if (0 >= var$12 ? 0 : 1) {
            if (var$11 < $var6.$modCount) {
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            $var7$index = 0 + 1 | 0;
            $var8 = $var6.$get(0);
            $ptr = 1;
            continue main;
        }
        $var8 = $rt_s(1136);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        var$11 = $var6.$size0;
        if (var$11 >= (-128) && var$11 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$11 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$11;
        }
        var$4 = $par2ArrayOfStr.data;
        var$4[0] = $var6;
        var$4[1] = $var5.$field_96675_b;
        $par3 = 0;
        $var6 = nms_CommandBase_theAdmin;
        if ($var6 === null)
            return;
        $ptr = 2;
        continue main;
    case 1:
        var$5.$removePlayerFromTeam($var8, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7$index_0 = $var7$index;
        if ($var7$index_0 >= var$12 ? 0 : 1) {
            if (var$11 < $var6.$modCount) {
                $par1ICommandSender = new ju_ConcurrentModificationException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $rt_throw($par1ICommandSender);
            }
            $var7$index = $var7$index_0 + 1 | 0;
            $var8 = $var6.$get($var7$index_0);
            continue main;
        }
        $var8 = $rt_s(1136);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
        var$11 = $var6.$size0;
        if (var$11 >= (-128) && var$11 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$11 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$11;
        }
        var$4 = $par2ArrayOfStr.data;
        var$4[0] = $var6;
        var$4[1] = $var5.$field_96675_b;
        $par3 = 0;
        $var6 = nms_CommandBase_theAdmin;
        if ($var6 === null)
            return;
        $ptr = 2;
    case 2:
        nms_ServerCommandManager_notifyAdmins($var6, $par1ICommandSender, $par3, $var8, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, var$5, $var6, $var5, $var8, var$9, $var7$index, var$11, var$12, $var7$index_0, $ptr);
},
nms_ServerCommandScoreboard_getObjectivesList = ($this, $par1ICommandSender) => {
    let $var4, $var5, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$scoreObjectives;
        if ($var4.$cachedValues === null) {
            $var5 = new ju_HashMap$2;
            $var5.$this$01 = $var4;
            $var4.$cachedValues = $var5;
        }
        var$4 = $var4.$cachedValues;
        if (var$4.$size() <= 0) {
            $par1ICommandSender = new nms_CommandException;
            var$5 = $rt_createArray(jl_Object, 0);
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1137);
            $par1ICommandSender.$errorObjects = var$5;
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $var4 = nms_EnumChatFormatting_DARK_GREEN;
        $var5 = $var4 === null ? $rt_s(1) : $var4.$field_96304_B;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        var$6 = $var4.$length0;
        if ($var5 === null)
            $var5 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$6, $var5);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(1138));
        $var5 = new jl_String;
        var$5 = $var4.$buffer;
        var$7 = var$5.data;
        var$8 = $var4.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            $var5.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
            var$5 = $rt_createArray(jl_Object, 1);
            var$8 = var$4.$size();
            if (var$8 >= (-128) && var$8 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var4 = jl_Integer_integerCache.data[var$8 + 128 | 0];
            } else {
                $var4 = new jl_Integer;
                $var4.$value = var$8;
            }
            var$5.data[0] = $var4;
            nms_StatCollector_$callClinit();
            $var4 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var5, var$5);
            $ptr = 1;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = var$4.$iterator();
        if (!$var4.$hasNext())
            return;
        $var5 = $var4.$next();
        var$5 = $rt_createArray(jl_Object, 3);
        var$7 = var$5.data;
        var$7[0] = $var5.$name4;
        var$7[1] = $var5.$displayName0;
        var$7[2] = $var5.$objectiveCriteria.$field_96644_g;
        $var5 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1139), var$5);
        $ptr = 2;
    case 2:
        $par1ICommandSender.$sendChatToPlayer($var5);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var4.$hasNext())
            return;
        $var5 = $var4.$next();
        var$5 = $rt_createArray(jl_Object, 3);
        var$7 = var$5.data;
        var$7[0] = $var5.$name4;
        var$7[1] = $var5.$displayName0;
        var$7[2] = $var5.$objectiveCriteria.$field_96644_g;
        $var5 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1139), var$5);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $var4, $var5, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_ServerCommandScoreboard_setObjectivesDisplay = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let var$4, var$5, $var5, $var6, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        var$4 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
        var$5 = $par3 + 1 | 0;
        $var5 = $par2ArrayOfStr[$par3];
        $var6 = jl_String_equalsIgnoreCase($var5, $rt_s(1080)) ? 0 : jl_String_equalsIgnoreCase($var5, $rt_s(1140)) ? 1 : !jl_String_equalsIgnoreCase($var5, $rt_s(1141)) ? (-1) : 2;
        $var7 = null;
        if ($par2ArrayOfStr.length == 4)
            $var7 = nms_ServerCommandScoreboard_getScoreObjective($this, $par2ArrayOfStr[var$5], 0);
        if ($var6 < 0) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var5;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1142);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        $ptr = 1;
    case 1:
        a: {
            var$4.$func_96530_a($var6, $var7);
            if ($rt_suspending()) {
                break main;
            }
            if ($var7 === null) {
                b: {
                    $var5 = $rt_s(1143);
                    $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                    switch ($var6) {
                        case 0:
                            break;
                        case 1:
                            var$4 = $rt_s(1140);
                            break b;
                        case 2:
                            var$4 = $rt_s(1141);
                            break b;
                        default:
                            var$4 = null;
                            break b;
                    }
                    var$4 = $rt_s(1080);
                }
                $par2ArrayOfStr.data[0] = var$4;
                $par3 = 0;
                var$4 = nms_CommandBase_theAdmin;
                if (var$4 === null)
                    break a;
                $ptr = 2;
                continue main;
            }
            c: {
                $var5 = $rt_s(1144);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
                switch ($var6) {
                    case 0:
                        break;
                    case 1:
                        var$4 = $rt_s(1140);
                        break c;
                    case 2:
                        var$4 = $rt_s(1141);
                        break c;
                    default:
                        var$4 = null;
                        break c;
                }
                var$4 = $rt_s(1080);
            }
            var$9 = $par2ArrayOfStr.data;
            var$9[0] = var$4;
            var$9[1] = $var7.$name4;
            $par3 = 0;
            var$4 = nms_CommandBase_theAdmin;
            if (var$4 !== null) {
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        nms_ServerCommandManager_notifyAdmins(var$4, $par1ICommandSender, $par3, $var5, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_ServerCommandManager_notifyAdmins(var$4, $par1ICommandSender, $par3, $var5, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, var$4, var$5, $var5, $var6, $var7, var$9, $ptr);
},
nms_ServerCommandScoreboard_listPlayers = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let $var8, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var8 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2ArrayOfStr = $par2ArrayOfStr.data;
        $var8 = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard;
        if ($par2ArrayOfStr.length <= $par3) {
            $var5 = $var8.$field_96544_c;
            if ($var5.$cachedKeySet === null) {
                $var6 = new ju_HashMap$1;
                $var6.$this$0 = $var5;
                $var5.$cachedKeySet = $var6;
            }
            $var7 = $var5.$cachedKeySet;
            if ($var7.$size() <= 0) {
                $par1ICommandSender = new nms_CommandException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1145);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
            nms_EnumChatFormatting_$callClinit();
            $var5 = nms_EnumChatFormatting_DARK_GREEN;
            $var6 = $var5 === null ? $rt_s(1) : $var5.$field_96304_B;
            $var5 = new jl_StringBuilder;
            $var5.$buffer = $rt_createCharArray(16);
            $par3 = $var5.$length0;
            if ($var6 === null)
                $var6 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var5, $par3, $var6);
            jl_AbstractStringBuilder_insert($var5, $var5.$length0, $rt_s(1146));
            $var6 = new jl_String;
            $par2ArrayOfStr = $var5.$buffer;
            var$8 = $par2ArrayOfStr.data;
            var$9 = $var5.$length0;
            var$10 = var$8.length;
            if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
                $var6.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$9);
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                var$9 = $var7.$size();
                if (var$9 >= (-128) && var$9 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var5 = jl_Integer_integerCache.data[var$9 + 128 | 0];
                } else {
                    $var5 = new jl_Integer;
                    $var5.$value = var$9;
                }
                $par2ArrayOfStr.data[0] = $var5;
                nms_StatCollector_$callClinit();
                $var5 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var6, $par2ArrayOfStr);
                $ptr = 1;
                continue main;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        a: {
            $var5 = $par2ArrayOfStr[$par3];
            nms_PlayerSelector_$callClinit();
            $par2ArrayOfStr = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var5);
            if ($par2ArrayOfStr !== null) {
                $par2ArrayOfStr = $par2ArrayOfStr.data;
                if ($par2ArrayOfStr.length == 1) {
                    $var6 = $par2ArrayOfStr[0];
                    break a;
                }
            }
            $var6 = null;
        }
        if ($var6 !== null)
            $var5 = $var6.$username;
        else {
            $var7 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var5);
            var$9 = $var7.$leftBound0;
            $var6 = $var7.$matchResult;
            $var6.$valid = 0;
            $var6.$mode0 = 2;
            $par2ArrayOfStr = $var6.$groupBounds;
            ju_Arrays_fill($par2ArrayOfStr, 0, $par2ArrayOfStr.data.length, (-1));
            $par2ArrayOfStr = $var6.$consumers;
            ju_Arrays_fill($par2ArrayOfStr, 0, $par2ArrayOfStr.data.length, (-1));
            $var6.$startIndex = $var6.$leftBound;
            $var6 = $var7.$matchResult;
            $var6.$mode0 = 2;
            $var6.$startIndex = var$9;
            $par3 = $var6.$previousMatch;
            if ($par3 < 0)
                $par3 = var$9;
            $var6.$previousMatch = $par3;
            if ($var7.$start3.$matches(var$9, $var7.$string, $var6) < 0)
                $par3 = 0;
            else {
                $par2ArrayOfStr = $var6.$groupBounds.data;
                if ($par2ArrayOfStr[0] == (-1)) {
                    var$9 = $var6.$startIndex;
                    $par2ArrayOfStr[0] = var$9;
                    $par2ArrayOfStr[1] = var$9;
                }
                $var6.$previousMatch = jur_MatchResultImpl_end($var6, 0);
                $par3 = 1;
            }
            if (!$par3)
                $par3 = 0;
            else {
                $var6 = $var7.$matchResult;
                var$11 = $var6.$valid;
                if (!var$11) {
                    $par1ICommandSender = new jl_IllegalStateException;
                    jl_RuntimeException__init_($par1ICommandSender);
                    $rt_throw($par1ICommandSender);
                }
                var$12 = $rt_compare(1, $var6.$groupCount);
                if (var$12 >= 0) {
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                    $rt_throw($par1ICommandSender);
                }
                $par2ArrayOfStr = $var6.$groupBounds.data;
                if ($par2ArrayOfStr[2] >= 0) {
                    $var6 = $var6.$string0;
                    if (!var$11) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$12 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    var$9 = $par2ArrayOfStr[2];
                    if (!var$11) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$12 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    jl_String_substring($var6, var$9, $par2ArrayOfStr[3]);
                }
                $par3 = 1;
            }
            if ($par3) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        $var6 = nms_Scoreboard_func_96510_d($var8, $var5);
        if ($var6.$elementCount <= 0) {
            $par1ICommandSender = new nms_CommandException;
            $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
            $par2ArrayOfStr.data[0] = $var5;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            $par1ICommandSender.$message = $rt_s(1147);
            $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
            $rt_throw($par1ICommandSender);
        }
        nms_EnumChatFormatting_$callClinit();
        $var7 = nms_EnumChatFormatting_DARK_GREEN;
        $var8 = $var7 === null ? $rt_s(1) : $var7.$field_96304_B;
        $var7 = new jl_StringBuilder;
        $var7.$buffer = $rt_createCharArray(16);
        $par3 = $var7.$length0;
        if ($var8 === null)
            $var8 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var7, $par3, $var8);
        jl_AbstractStringBuilder_insert($var7, $var7.$length0, $rt_s(1148));
        $var8 = new jl_String;
        $par2ArrayOfStr = $var7.$buffer;
        var$8 = $par2ArrayOfStr.data;
        var$9 = $var7.$length0;
        var$10 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
            $var8.$nativeString = $rt_charArrayToString($par2ArrayOfStr.data, 0, var$9);
            $par2ArrayOfStr = $rt_createArray(jl_Object, 2);
            var$10 = $var6.$elementCount;
            if (var$10 >= (-128) && var$10 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[var$10 + 128 | 0];
            } else {
                $var7 = new jl_Integer;
                $var7.$value = var$10;
            }
            var$8 = $par2ArrayOfStr.data;
            var$8[0] = $var7;
            var$8[1] = $var5;
            nms_StatCollector_$callClinit();
            $var5 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var8, $par2ArrayOfStr);
            $ptr = 3;
            continue main;
        }
        $par1ICommandSender = new jl_IndexOutOfBoundsException;
        $par1ICommandSender.$suppressionEnabled = 1;
        $par1ICommandSender.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICommandSender);
        $rt_throw($par1ICommandSender);
    case 1:
        $par1ICommandSender.$sendChatToPlayer($var5);
        if ($rt_suspending()) {
            break main;
        }
        $par2ArrayOfStr = $rt_createArray(jl_Object, $var7.$size());
        var$8 = $par2ArrayOfStr.data;
        $par3 = 0;
        $var5 = $var7.$iterator();
        while ($var5.$hasNext()) {
            var$9 = $par3 + 1 | 0;
            var$8[$par3] = $var5.$next();
            $par3 = var$9;
        }
        $var5 = nms_CommandBase_joinNiceString($par2ArrayOfStr);
        $ptr = 2;
    case 2:
        $par1ICommandSender.$sendChatToPlayer($var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $par1ICommandSender.$sendChatToPlayer($var5);
        if ($rt_suspending()) {
            break main;
        }
        if ($var6.$cachedValues === null) {
            $var5 = new ju_HashMap$2;
            $var5.$this$01 = $var6;
            $var6.$cachedValues = $var5;
        }
        $var7 = $var6.$cachedValues.$iterator();
        if (!$var7.$hasNext())
            return;
        $var8 = $var7.$next();
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$10 = $var8.$field_96655_e;
        if (var$10 >= (-128) && var$10 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$10 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$10;
        }
        var$8 = $par2ArrayOfStr.data;
        var$8[0] = $var6;
        $var8 = $var8.$theScoreObjective;
        var$8[1] = $var8.$displayName0;
        var$8[2] = $var8.$name4;
        $var5 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1149), $par2ArrayOfStr);
        $ptr = 4;
    case 4:
        $par1ICommandSender.$sendChatToPlayer($var5);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var7.$hasNext())
            return;
        $var8 = $var7.$next();
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$10 = $var8.$field_96655_e;
        if (var$10 >= (-128) && var$10 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$10 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$10;
        }
        var$8 = $par2ArrayOfStr.data;
        var$8[0] = $var6;
        $var8 = $var8.$theScoreObjective;
        var$8[1] = $var8.$displayName0;
        var$8[2] = $var8.$name4;
        $var5 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1149), $par2ArrayOfStr);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, $var8, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_ServerCommandScoreboard_setPlayerScore = ($this, $par1ICommandSender, $par2ArrayOfStr, $par3) => {
    let $var4, var$5, $var5, var$7, $var6, var$9, $var9, var$11, $var7, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfStr = $thread.pop();$par1ICommandSender = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $par2ArrayOfStr = $par2ArrayOfStr.data;
            $var4 = $par2ArrayOfStr[$par3 - 1 | 0];
            var$5 = $par3 + 1 | 0;
            $var5 = $par2ArrayOfStr[$par3];
            nms_PlayerSelector_$callClinit();
            var$7 = nms_PlayerSelector_matchPlayers($par1ICommandSender, $var5);
            if (var$7 !== null) {
                var$7 = var$7.data;
                if (var$7.length == 1) {
                    $var6 = var$7[0];
                    break a;
                }
            }
            $var6 = null;
        }
        if ($var6 !== null)
            $var5 = $var6.$username;
        else {
            $var6 = jur_Matcher__init_(nms_PlayerSelector_tokenPattern, $var5);
            var$9 = $var6.$leftBound0;
            $var9 = $var6.$matchResult;
            $var9.$valid = 0;
            $var9.$mode0 = 2;
            var$11 = $var9.$groupBounds;
            ju_Arrays_fill(var$11, 0, var$11.data.length, (-1));
            var$11 = $var9.$consumers;
            ju_Arrays_fill(var$11, 0, var$11.data.length, (-1));
            $var9.$startIndex = $var9.$leftBound;
            $var9 = $var6.$matchResult;
            $var9.$mode0 = 2;
            $var9.$startIndex = var$9;
            $par3 = $var9.$previousMatch;
            if ($par3 < 0)
                $par3 = var$9;
            $var9.$previousMatch = $par3;
            if ($var6.$start3.$matches(var$9, $var6.$string, $var9) < 0)
                $par3 = 0;
            else {
                var$7 = $var9.$groupBounds.data;
                if (var$7[0] == (-1)) {
                    $var7 = $var9.$startIndex;
                    var$7[0] = $var7;
                    var$7[1] = $var7;
                }
                $var9.$previousMatch = jur_MatchResultImpl_end($var9, 0);
                $par3 = 1;
            }
            if (!$par3)
                $par3 = 0;
            else {
                $var6 = $var6.$matchResult;
                var$13 = $var6.$valid;
                if (!var$13) {
                    $par1ICommandSender = new jl_IllegalStateException;
                    jl_RuntimeException__init_($par1ICommandSender);
                    $rt_throw($par1ICommandSender);
                }
                var$9 = $rt_compare(1, $var6.$groupCount);
                if (var$9 >= 0) {
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                    $rt_throw($par1ICommandSender);
                }
                var$7 = $var6.$groupBounds.data;
                if (var$7[2] >= 0) {
                    $var6 = $var6.$string0;
                    if (!var$13) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$9 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    $var7 = var$7[2];
                    if (!var$13) {
                        $par1ICommandSender = new jl_IllegalStateException;
                        jl_RuntimeException__init_($par1ICommandSender);
                        $rt_throw($par1ICommandSender);
                    }
                    if (var$9 >= 0) {
                        $par1ICommandSender = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_0($par1ICommandSender, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 1)));
                        $rt_throw($par1ICommandSender);
                    }
                    jl_String_substring($var6, $var7, var$7[3]);
                }
                $par3 = 1;
            }
            if ($par3) {
                $par1ICommandSender = new nms_PlayerNotFoundException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 0);
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(948);
                $par1ICommandSender.$errorObjects = $par2ArrayOfStr;
                $rt_throw($par1ICommandSender);
            }
        }
        $par3 = var$5 + 1 | 0;
        $var6 = nms_ServerCommandScoreboard_getScoreObjective($this, $par2ArrayOfStr[var$5], 1);
        if (!jl_String_equalsIgnoreCase($var4, $rt_s(953)))
            $var7 = nms_CommandBase_parseIntBounded($par1ICommandSender, $par2ArrayOfStr[$par3], 1, 2147483647);
        else {
            $var9 = $par2ArrayOfStr[$par3];
            b: {
                try {
                    $var7 = jl_Integer_parseInt($var9);
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                    } else {
                        throw $$e;
                    }
                }
                $var4 = new nms_NumberInvalidException;
                $par2ArrayOfStr = $rt_createArray(jl_Object, 1);
                $par2ArrayOfStr.data[0] = $var9;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $var4.$message = $rt_s(940);
                $var4.$errorObjects = $par2ArrayOfStr;
                $rt_throw($var4);
            }
        }
        c: {
            $var9 = nms_Scoreboard_func_96529_a(nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard, $var5, $var6);
            if (jl_String_equalsIgnoreCase($var4, $rt_s(953))) {
                $par3 = $var9.$field_96655_e;
                $var9.$field_96655_e = $var7;
                if ($par3 == $var7)
                    break c;
                $var4 = $var9.$theScoreboard0;
                $ptr = 1;
                continue main;
            }
            if (!jl_String_equalsIgnoreCase($var4, $rt_s(957))) {
                if ($var9.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                    $par1ICommandSender = new jl_IllegalStateException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $par1ICommandSender.$message = $rt_s(1150);
                    $rt_throw($par1ICommandSender);
                }
                var$14 = $var9.$field_96655_e;
                $par3 = var$14 - $var7 | 0;
                $var9.$field_96655_e = $par3;
                if (var$14 == $par3)
                    break c;
                $var4 = $var9.$theScoreboard0;
                $ptr = 2;
                continue main;
            }
            if ($var9.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1ICommandSender = new jl_IllegalStateException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                $par1ICommandSender.$message = $rt_s(1150);
                $rt_throw($par1ICommandSender);
            }
            var$14 = $var9.$field_96655_e;
            $par3 = var$14 + $var7 | 0;
            $var9.$field_96655_e = $par3;
            if (var$14 != $par3) {
                $var4 = $var9.$theScoreboard0;
                $ptr = 3;
                continue main;
            }
        }
        $var4 = $rt_s(1151);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$7 = $par2ArrayOfStr.data;
        var$7[0] = $var6.$name4;
        var$7[1] = $var5;
        var$14 = $var9.$field_96655_e;
        if (var$14 >= (-128) && var$14 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$14 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$14;
        }
        var$7[2] = $var6;
        $par3 = 0;
        $var6 = nms_CommandBase_theAdmin;
        if ($var6 === null)
            return;
        $ptr = 4;
        continue main;
    case 1:
        $var4.$func_96536_a($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $rt_s(1151);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$7 = $par2ArrayOfStr.data;
        var$7[0] = $var6.$name4;
        var$7[1] = $var5;
        var$14 = $var9.$field_96655_e;
        if (var$14 >= (-128) && var$14 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$14 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$14;
        }
        var$7[2] = $var6;
        $par3 = 0;
        $var6 = nms_CommandBase_theAdmin;
        if ($var6 === null)
            return;
        $ptr = 4;
        continue main;
    case 2:
        $var4.$func_96536_a($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $rt_s(1151);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$7 = $par2ArrayOfStr.data;
        var$7[0] = $var6.$name4;
        var$7[1] = $var5;
        var$14 = $var9.$field_96655_e;
        if (var$14 >= (-128) && var$14 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$14 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$14;
        }
        var$7[2] = $var6;
        $par3 = 0;
        $var6 = nms_CommandBase_theAdmin;
        if ($var6 === null)
            return;
        $ptr = 4;
        continue main;
    case 3:
        $var4.$func_96536_a($var9);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $rt_s(1151);
        $par2ArrayOfStr = $rt_createArray(jl_Object, 3);
        var$7 = $par2ArrayOfStr.data;
        var$7[0] = $var6.$name4;
        var$7[1] = $var5;
        var$14 = $var9.$field_96655_e;
        if (var$14 >= (-128) && var$14 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[var$14 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = var$14;
        }
        var$7[2] = $var6;
        $par3 = 0;
        $var6 = nms_CommandBase_theAdmin;
        if ($var6 === null)
            return;
        $ptr = 4;
    case 4:
        nms_ServerCommandManager_notifyAdmins($var6, $par1ICommandSender, $par3, $var4, $par2ArrayOfStr);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICommandSender, $par2ArrayOfStr, $par3, $var4, var$5, $var5, var$7, $var6, var$9, $var9, var$11, $var7, var$13, var$14, $ptr);
},
nms_ServerCommandScoreboard_addTabCompletionOptions = ($this, $par1ICommandSender, $par2ArrayOfStr) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $par2ArrayOfStr = $par2ArrayOfStr.data;
    var$3 = $par2ArrayOfStr.length;
    if (var$3 == 1) {
        var$4 = $rt_createArray(jl_String, 3).data;
        var$4[0] = $rt_s(1078);
        var$4[1] = $rt_s(215);
        var$4[2] = $rt_s(1070);
        $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
        var$5 = new ju_ArrayList;
        var$5.$array = $rt_createArray(jl_Object, 10);
        var$6 = var$4.length;
        var$3 = 0;
        while (var$3 < var$6) {
            var$7 = var$4[var$3];
            if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                $par2ArrayOfStr = var$5.$array.data;
                var$8 = var$5.$size0;
                var$5.$size0 = var$8 + 1 | 0;
                $par2ArrayOfStr[var$8] = var$7;
                var$5.$modCount = var$5.$modCount + 1 | 0;
            }
            var$3 = var$3 + 1 | 0;
        }
        return var$5;
    }
    a: {
        if (jl_String_equalsIgnoreCase($par2ArrayOfStr[0], $rt_s(1078))) {
            if (var$3 == 2) {
                var$4 = $rt_createArray(jl_String, 4).data;
                var$4[0] = $rt_s(1080);
                var$4[1] = $rt_s(957);
                var$4[2] = $rt_s(1082);
                var$4[3] = $rt_s(1084);
                $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                var$5 = new ju_ArrayList;
                var$5.$array = $rt_createArray(jl_Object, 10);
                var$6 = var$4.length;
                var$3 = 0;
                while (var$3 < var$6) {
                    var$7 = var$4[var$3];
                    if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$5.$array.data;
                        var$8 = var$5.$size0;
                        var$5.$size0 = var$8 + 1 | 0;
                        $par2ArrayOfStr[var$8] = var$7;
                        var$5.$modCount = var$5.$modCount + 1 | 0;
                    }
                    var$3 = var$3 + 1 | 0;
                }
                return var$5;
            }
            if (jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(957))) {
                if (var$3 != 4)
                    break a;
                nms_ScoreObjectiveCriteria_$callClinit();
                $par1ICommandSender = nms_ScoreObjectiveCriteria_field_96643_a;
                if ($par1ICommandSender.$cachedKeySet === null) {
                    var$5 = new ju_HashMap$1;
                    var$5.$this$0 = $par1ICommandSender;
                    $par1ICommandSender.$cachedKeySet = var$5;
                }
                $par1ICommandSender = $par1ICommandSender.$cachedKeySet;
                var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                var$7 = new ju_ArrayList;
                var$7.$array = $rt_createArray(jl_Object, 10);
                $par1ICommandSender = $par1ICommandSender.$iterator();
                while ($par1ICommandSender.$hasNext()) {
                    var$9 = $par1ICommandSender.$next();
                    if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$7.$array.data;
                        var$3 = var$7.$size0;
                        var$7.$size0 = var$3 + 1 | 0;
                        $par2ArrayOfStr[var$3] = var$9;
                        var$7.$modCount = var$7.$modCount + 1 | 0;
                    }
                }
                return var$7;
            }
            if (jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1082))) {
                if (var$3 != 3)
                    break a;
                $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$scoreObjectives;
                if ($par1ICommandSender.$cachedValues === null) {
                    var$5 = new ju_HashMap$2;
                    var$5.$this$01 = $par1ICommandSender;
                    $par1ICommandSender.$cachedValues = var$5;
                }
                var$5 = $par1ICommandSender.$cachedValues;
                $par1ICommandSender = new ju_ArrayList;
                $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
                var$5 = var$5.$iterator();
                while (var$5.$hasNext()) {
                    var$7 = (var$5.$next()).$name4;
                    ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                    var$4 = $par1ICommandSender.$array.data;
                    var$10 = $par1ICommandSender.$size0;
                    $par1ICommandSender.$size0 = var$10 + 1 | 0;
                    var$4[var$10] = var$7;
                    $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                }
                var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                var$7 = new ju_ArrayList;
                var$7.$array = $rt_createArray(jl_Object, 10);
                var$3 = 0;
                var$11 = $par1ICommandSender.$modCount;
                var$12 = $par1ICommandSender.$size();
                while (var$3 >= var$12 ? 0 : 1) {
                    if (var$11 < $par1ICommandSender.$modCount) {
                        $par1ICommandSender = new ju_ConcurrentModificationException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    var$13 = var$3 + 1 | 0;
                    var$9 = $par1ICommandSender.$get(var$3);
                    if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$7.$array.data;
                        var$3 = var$7.$size0;
                        var$7.$size0 = var$3 + 1 | 0;
                        $par2ArrayOfStr[var$3] = var$9;
                        var$7.$modCount = var$7.$modCount + 1 | 0;
                    }
                    var$3 = var$13;
                }
                return var$7;
            }
            if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1084)))
                break a;
            if (var$3 == 3) {
                var$4 = $rt_createArray(jl_String, 3).data;
                var$4[0] = $rt_s(1080);
                var$4[1] = $rt_s(1140);
                var$4[2] = $rt_s(1141);
                $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                var$5 = new ju_ArrayList;
                var$5.$array = $rt_createArray(jl_Object, 10);
                var$6 = var$4.length;
                var$3 = 0;
                while (var$3 < var$6) {
                    var$7 = var$4[var$3];
                    if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$5.$array.data;
                        var$8 = var$5.$size0;
                        var$5.$size0 = var$8 + 1 | 0;
                        $par2ArrayOfStr[var$8] = var$7;
                        var$5.$modCount = var$5.$modCount + 1 | 0;
                    }
                    var$3 = var$3 + 1 | 0;
                }
                return var$5;
            }
            if (var$3 != 4)
                break a;
            $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$scoreObjectives;
            if ($par1ICommandSender.$cachedValues === null) {
                var$5 = new ju_HashMap$2;
                var$5.$this$01 = $par1ICommandSender;
                $par1ICommandSender.$cachedValues = var$5;
            }
            var$5 = $par1ICommandSender.$cachedValues;
            $par1ICommandSender = new ju_ArrayList;
            $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
            var$5 = var$5.$iterator();
            while (var$5.$hasNext()) {
                var$7 = (var$5.$next()).$name4;
                ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                var$4 = $par1ICommandSender.$array.data;
                var$10 = $par1ICommandSender.$size0;
                $par1ICommandSender.$size0 = var$10 + 1 | 0;
                var$4[var$10] = var$7;
                $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
            }
            var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            var$3 = 0;
            var$10 = $par1ICommandSender.$modCount;
            var$8 = $par1ICommandSender.$size();
            while (var$3 >= var$8 ? 0 : 1) {
                if (var$10 < $par1ICommandSender.$modCount) {
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                var$6 = var$3 + 1 | 0;
                var$9 = $par1ICommandSender.$get(var$3);
                if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$7.$array.data;
                    var$11 = var$7.$size0;
                    var$7.$size0 = var$11 + 1 | 0;
                    $par2ArrayOfStr[var$11] = var$9;
                    var$7.$modCount = var$7.$modCount + 1 | 0;
                }
                var$3 = var$6;
            }
            return var$7;
        }
        if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[0], $rt_s(215))) {
            if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[0], $rt_s(1070)))
                break a;
            if (var$3 == 2) {
                var$4 = $rt_createArray(jl_String, 7).data;
                var$4[0] = $rt_s(957);
                var$4[1] = $rt_s(1082);
                var$4[2] = $rt_s(1101);
                var$4[3] = $rt_s(1103);
                var$4[4] = $rt_s(1099);
                var$4[5] = $rt_s(1080);
                var$4[6] = $rt_s(1105);
                $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                var$5 = new ju_ArrayList;
                var$5.$array = $rt_createArray(jl_Object, 10);
                var$6 = var$4.length;
                var$3 = 0;
                while (var$3 < var$6) {
                    var$7 = var$4[var$3];
                    if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$5.$array.data;
                        var$8 = var$5.$size0;
                        var$5.$size0 = var$8 + 1 | 0;
                        $par2ArrayOfStr[var$8] = var$7;
                        var$5.$modCount = var$5.$modCount + 1 | 0;
                    }
                    var$3 = var$3 + 1 | 0;
                }
                return var$5;
            }
            if (jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1101))) {
                if (var$3 != 3) {
                    if (var$3 < 4)
                        break a;
                    $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                    var$8 = $par1ICommandSender.$size0;
                    var$4 = $rt_createArray(jl_String, var$8).data;
                    var$6 = 0;
                    while (true) {
                        var$10 = $rt_compare(var$6, var$8);
                        if (var$10 >= 0) {
                            $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                            var$5 = new ju_ArrayList;
                            var$5.$array = $rt_createArray(jl_Object, 10);
                            var$6 = var$4.length;
                            var$3 = 0;
                            while (var$3 < var$6) {
                                var$7 = var$4[var$3];
                                if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                                    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                                    $par2ArrayOfStr = var$5.$array.data;
                                    var$8 = var$5.$size0;
                                    var$5.$size0 = var$8 + 1 | 0;
                                    $par2ArrayOfStr[var$8] = var$7;
                                    var$5.$modCount = var$5.$modCount + 1 | 0;
                                }
                                var$3 = var$3 + 1 | 0;
                            }
                            return var$5;
                        }
                        if (var$6 < 0)
                            break;
                        if (var$10 >= 0)
                            break;
                        var$4[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                        var$6 = var$6 + 1 | 0;
                    }
                    $par1ICommandSender = new jl_IndexOutOfBoundsException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1ICommandSender);
                    $rt_throw($par1ICommandSender);
                }
                $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$field_96542_e;
                if ($par1ICommandSender.$cachedKeySet === null) {
                    var$5 = new ju_HashMap$1;
                    var$5.$this$0 = $par1ICommandSender;
                    $par1ICommandSender.$cachedKeySet = var$5;
                }
                $par1ICommandSender = $par1ICommandSender.$cachedKeySet;
                var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                var$7 = new ju_ArrayList;
                var$7.$array = $rt_createArray(jl_Object, 10);
                $par1ICommandSender = $par1ICommandSender.$iterator();
                while ($par1ICommandSender.$hasNext()) {
                    var$9 = $par1ICommandSender.$next();
                    if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$7.$array.data;
                        var$3 = var$7.$size0;
                        var$7.$size0 = var$3 + 1 | 0;
                        $par2ArrayOfStr[var$3] = var$9;
                        var$7.$modCount = var$7.$modCount + 1 | 0;
                    }
                }
                return var$7;
            }
            if (jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1103))) {
                $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
                var$8 = $par1ICommandSender.$size0;
                var$4 = $rt_createArray(jl_String, var$8).data;
                var$6 = 0;
                while (true) {
                    var$10 = $rt_compare(var$6, var$8);
                    if (var$10 >= 0) {
                        $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                        var$5 = new ju_ArrayList;
                        var$5.$array = $rt_createArray(jl_Object, 10);
                        var$6 = var$4.length;
                        var$3 = 0;
                        while (var$3 < var$6) {
                            var$7 = var$4[var$3];
                            if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                                ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                                $par2ArrayOfStr = var$5.$array.data;
                                var$8 = var$5.$size0;
                                var$5.$size0 = var$8 + 1 | 0;
                                $par2ArrayOfStr[var$8] = var$7;
                                var$5.$modCount = var$5.$modCount + 1 | 0;
                            }
                            var$3 = var$3 + 1 | 0;
                        }
                        return var$5;
                    }
                    if (var$6 < 0)
                        break;
                    if (var$10 >= 0)
                        break;
                    var$4[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                    var$6 = var$6 + 1 | 0;
                }
                $par1ICommandSender = new jl_IndexOutOfBoundsException;
                $par1ICommandSender.$suppressionEnabled = 1;
                $par1ICommandSender.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ICommandSender);
                $rt_throw($par1ICommandSender);
            }
            if (!(!jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1099)) && !jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1080)) && !jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1082)))) {
                if (var$3 != 3)
                    break a;
                $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$field_96542_e;
                if ($par1ICommandSender.$cachedKeySet === null) {
                    var$5 = new ju_HashMap$1;
                    var$5.$this$0 = $par1ICommandSender;
                    $par1ICommandSender.$cachedKeySet = var$5;
                }
                $par1ICommandSender = $par1ICommandSender.$cachedKeySet;
                var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                var$7 = new ju_ArrayList;
                var$7.$array = $rt_createArray(jl_Object, 10);
                $par1ICommandSender = $par1ICommandSender.$iterator();
                while ($par1ICommandSender.$hasNext()) {
                    var$9 = $par1ICommandSender.$next();
                    if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$7.$array.data;
                        var$3 = var$7.$size0;
                        var$7.$size0 = var$3 + 1 | 0;
                        $par2ArrayOfStr[var$3] = var$9;
                        var$7.$modCount = var$7.$modCount + 1 | 0;
                    }
                }
                return var$7;
            }
            if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1105)))
                break a;
            if (var$3 == 3) {
                $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$field_96542_e;
                if ($par1ICommandSender.$cachedKeySet === null) {
                    var$5 = new ju_HashMap$1;
                    var$5.$this$0 = $par1ICommandSender;
                    $par1ICommandSender.$cachedKeySet = var$5;
                }
                $par1ICommandSender = $par1ICommandSender.$cachedKeySet;
                var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                var$7 = new ju_ArrayList;
                var$7.$array = $rt_createArray(jl_Object, 10);
                $par1ICommandSender = $par1ICommandSender.$iterator();
                while ($par1ICommandSender.$hasNext()) {
                    var$9 = $par1ICommandSender.$next();
                    if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$7.$array.data;
                        var$3 = var$7.$size0;
                        var$7.$size0 = var$3 + 1 | 0;
                        $par2ArrayOfStr[var$3] = var$9;
                        var$7.$modCount = var$7.$modCount + 1 | 0;
                    }
                }
                return var$7;
            }
            if (var$3 == 4) {
                var$4 = $rt_createArray(jl_String, 3).data;
                var$4[0] = $rt_s(1120);
                var$4[1] = $rt_s(1121);
                var$4[2] = $rt_s(1122);
                $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                var$5 = new ju_ArrayList;
                var$5.$array = $rt_createArray(jl_Object, 10);
                var$6 = var$4.length;
                var$3 = 0;
                while (var$3 < var$6) {
                    var$7 = var$4[var$3];
                    if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$5.$array.data;
                        var$8 = var$5.$size0;
                        var$5.$size0 = var$8 + 1 | 0;
                        $par2ArrayOfStr[var$8] = var$7;
                        var$5.$modCount = var$5.$modCount + 1 | 0;
                    }
                    var$3 = var$3 + 1 | 0;
                }
                return var$5;
            }
            if (var$3 != 5)
                break a;
            if (jl_String_equalsIgnoreCase($par2ArrayOfStr[3], $rt_s(1120))) {
                $par1ICommandSender = nms_EnumChatFormatting_func_96296_a(1, 0);
                var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
                var$7 = new ju_ArrayList;
                var$7.$array = $rt_createArray(jl_Object, 10);
                var$3 = 0;
                var$11 = $par1ICommandSender.$modCount;
                var$12 = $par1ICommandSender.$size();
                while (var$3 >= var$12 ? 0 : 1) {
                    if (var$11 < $par1ICommandSender.$modCount) {
                        $par1ICommandSender = new ju_ConcurrentModificationException;
                        $par1ICommandSender.$suppressionEnabled = 1;
                        $par1ICommandSender.$writableStackTrace = 1;
                        $rt_throw($par1ICommandSender);
                    }
                    var$13 = var$3 + 1 | 0;
                    var$9 = $par1ICommandSender.$get(var$3);
                    if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                        $par2ArrayOfStr = var$7.$array.data;
                        var$3 = var$7.$size0;
                        var$7.$size0 = var$3 + 1 | 0;
                        $par2ArrayOfStr[var$3] = var$9;
                        var$7.$modCount = var$7.$modCount + 1 | 0;
                    }
                    var$3 = var$13;
                }
                return var$7;
            }
            if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[3], $rt_s(1121)) && !jl_String_equalsIgnoreCase($par2ArrayOfStr[3], $rt_s(1122)))
                break a;
            var$4 = $rt_createArray(jl_String, 2).data;
            var$4[0] = $rt_s(898);
            var$4[1] = $rt_s(897);
            $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
            var$5 = new ju_ArrayList;
            var$5.$array = $rt_createArray(jl_Object, 10);
            var$6 = var$4.length;
            var$3 = 0;
            while (var$3 < var$6) {
                var$7 = var$4[var$3];
                if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$5.$array.data;
                    var$8 = var$5.$size0;
                    var$5.$size0 = var$8 + 1 | 0;
                    $par2ArrayOfStr[var$8] = var$7;
                    var$5.$modCount = var$5.$modCount + 1 | 0;
                }
                var$3 = var$3 + 1 | 0;
            }
            return var$5;
        }
        if (var$3 == 2) {
            var$4 = $rt_createArray(jl_String, 5).data;
            var$4[0] = $rt_s(953);
            var$4[1] = $rt_s(957);
            var$4[2] = $rt_s(1082);
            var$4[3] = $rt_s(1091);
            var$4[4] = $rt_s(1080);
            $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
            var$5 = new ju_ArrayList;
            var$5.$array = $rt_createArray(jl_Object, 10);
            var$6 = var$4.length;
            var$3 = 0;
            while (var$3 < var$6) {
                var$7 = var$4[var$3];
                if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$5.$array.data;
                    var$8 = var$5.$size0;
                    var$5.$size0 = var$8 + 1 | 0;
                    $par2ArrayOfStr[var$8] = var$7;
                    var$5.$modCount = var$5.$modCount + 1 | 0;
                }
                var$3 = var$3 + 1 | 0;
            }
            return var$5;
        }
        if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(953)) && !jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(957)) && !jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1082))) {
            if (!jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1091)) && !jl_String_equalsIgnoreCase($par2ArrayOfStr[1], $rt_s(1080)))
                break a;
            if (var$3 != 3)
                break a;
            $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$field_96544_c;
            if ($par1ICommandSender.$cachedKeySet === null) {
                var$5 = new ju_HashMap$1;
                var$5.$this$0 = $par1ICommandSender;
                $par1ICommandSender.$cachedKeySet = var$5;
            }
            $par1ICommandSender = $par1ICommandSender.$cachedKeySet;
            var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            $par1ICommandSender = $par1ICommandSender.$iterator();
            while ($par1ICommandSender.$hasNext()) {
                var$9 = $par1ICommandSender.$next();
                if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$7.$array.data;
                    var$3 = var$7.$size0;
                    var$7.$size0 = var$3 + 1 | 0;
                    $par2ArrayOfStr[var$3] = var$9;
                    var$7.$modCount = var$7.$modCount + 1 | 0;
                }
            }
            return var$7;
        }
        if (var$3 == 3) {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$serverConfigManager.$playerEntityList;
            var$8 = $par1ICommandSender.$size0;
            var$4 = $rt_createArray(jl_String, var$8).data;
            var$6 = 0;
            while (true) {
                var$10 = $rt_compare(var$6, var$8);
                if (var$10 >= 0) {
                    $par1ICommandSender = $par2ArrayOfStr[var$3 - 1 | 0];
                    var$5 = new ju_ArrayList;
                    var$5.$array = $rt_createArray(jl_Object, 10);
                    var$6 = var$4.length;
                    var$3 = 0;
                    while (var$3 < var$6) {
                        var$7 = var$4[var$3];
                        if (jl_String_regionMatches(var$7, 1, 0, $par1ICommandSender, 0, $par1ICommandSender.$nativeString.length)) {
                            ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                            $par2ArrayOfStr = var$5.$array.data;
                            var$8 = var$5.$size0;
                            var$5.$size0 = var$8 + 1 | 0;
                            $par2ArrayOfStr[var$8] = var$7;
                            var$5.$modCount = var$5.$modCount + 1 | 0;
                        }
                        var$3 = var$3 + 1 | 0;
                    }
                    return var$5;
                }
                if (var$6 < 0)
                    break;
                if (var$10 >= 0)
                    break;
                var$4[var$6] = $par1ICommandSender.$array.data[var$6].$username;
                var$6 = var$6 + 1 | 0;
            }
            $par1ICommandSender = new jl_IndexOutOfBoundsException;
            $par1ICommandSender.$suppressionEnabled = 1;
            $par1ICommandSender.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICommandSender);
            $rt_throw($par1ICommandSender);
        }
        if (var$3 == 4) {
            $par1ICommandSender = nms_MinecraftServer_mcServer.$worldServers.data[0].$worldScoreboard.$scoreObjectives;
            if ($par1ICommandSender.$cachedValues === null) {
                var$5 = new ju_HashMap$2;
                var$5.$this$01 = $par1ICommandSender;
                $par1ICommandSender.$cachedValues = var$5;
            }
            var$5 = $par1ICommandSender.$cachedValues;
            $par1ICommandSender = new ju_ArrayList;
            $par1ICommandSender.$array = $rt_createArray(jl_Object, 10);
            var$5 = var$5.$iterator();
            while (var$5.$hasNext()) {
                var$7 = var$5.$next();
                if (!var$7.$objectiveCriteria.$isReadOnly()) {
                    var$7 = var$7.$name4;
                    ju_ArrayList_ensureCapacity($par1ICommandSender, $par1ICommandSender.$size0 + 1 | 0);
                    var$4 = $par1ICommandSender.$array.data;
                    var$10 = $par1ICommandSender.$size0;
                    $par1ICommandSender.$size0 = var$10 + 1 | 0;
                    var$4[var$10] = var$7;
                    $par1ICommandSender.$modCount = $par1ICommandSender.$modCount + 1 | 0;
                }
            }
            var$5 = $par2ArrayOfStr[var$3 - 1 | 0];
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            var$3 = 0;
            var$11 = $par1ICommandSender.$modCount;
            var$12 = $par1ICommandSender.$size();
            while (var$3 >= var$12 ? 0 : 1) {
                if (var$11 < $par1ICommandSender.$modCount) {
                    $par1ICommandSender = new ju_ConcurrentModificationException;
                    $par1ICommandSender.$suppressionEnabled = 1;
                    $par1ICommandSender.$writableStackTrace = 1;
                    $rt_throw($par1ICommandSender);
                }
                var$13 = var$3 + 1 | 0;
                var$9 = $par1ICommandSender.$get(var$3);
                if (jl_String_regionMatches(var$9, 1, 0, var$5, 0, var$5.$nativeString.length)) {
                    ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
                    $par2ArrayOfStr = var$7.$array.data;
                    var$3 = var$7.$size0;
                    var$7.$size0 = var$3 + 1 | 0;
                    $par2ArrayOfStr[var$3] = var$9;
                    var$7.$modCount = var$7.$modCount + 1 | 0;
                }
                var$3 = var$13;
            }
            return var$7;
        }
    }
    return null;
},
nms_ServerCommandScoreboard_isUsernameIndex = ($this, $par1ArrayOfStr, $par2) => {
    $par1ArrayOfStr = $par1ArrayOfStr.data;
    return jl_String_equalsIgnoreCase($par1ArrayOfStr[0], $rt_s(215)) ? ($par2 != 2 ? 0 : 1) : !jl_String_equalsIgnoreCase($par1ArrayOfStr[0], $rt_s(1070)) ? 0 : $par2 != 2 && $par2 != 3 ? 0 : 1;
},
nms_DispenserBehaviors = $rt_classWithoutFields(),
nms_DispenserBehaviors__init_ = $this => {
    return;
},
nms_DispenserBehaviors__init_0 = () => {
    let var_0 = new nms_DispenserBehaviors();
    nms_DispenserBehaviors__init_(var_0);
    return var_0;
},
nms_DispenserBehaviors_registerDispenserBehaviours = () => {
    let $var0, var$2, var$3, var$4;
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    nms_Item_$callClinit();
    var$2 = nms_Item_arrow;
    var$3 = new nms_DispenserBehaviorArrow;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_egg;
    var$3 = new nms_DispenserBehaviorEgg;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_snowball;
    var$3 = new nms_DispenserBehaviorSnowball;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_expBottle;
    var$3 = new nms_DispenserBehaviorExperience;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_potion;
    var$3 = new nms_DispenserBehaviorPotion;
    var$3.$defaultDispenserItemBehavior0 = new nms_BehaviorDefaultDispenseItem;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_monsterPlacer;
    var$3 = new nms_DispenserBehaviorMobEgg;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_firework;
    var$3 = new nms_DispenserBehaviorFireworks;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_fireballCharge;
    var$3 = new nms_DispenserBehaviorFireball;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_boat;
    var$3 = new nms_DispenserBehaviorBoat;
    var$3.$defaultDispenserItemBehavior1 = new nms_BehaviorDefaultDispenseItem;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = new nms_DispenserBehaviorFilledBucket;
    $var0.$defaultDispenserItemBehavior = new nms_BehaviorDefaultDispenseItem;
    var$2 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$3 = nms_Item_bucketLava;
    ju_HashMap_putImpl(var$2.$registryObjects, var$3, $var0);
    var$2 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$3 = nms_Item_bucketWater;
    ju_HashMap_putImpl(var$2.$registryObjects, var$3, $var0);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_bucketEmpty;
    var$3 = new nms_DispenserBehaviorEmptyBucket;
    var$3.$defaultDispenserItemBehavior2 = new nms_BehaviorDefaultDispenseItem;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_flintAndSteel;
    var$3 = new nms_DispenserBehaviorFire;
    var$3.$field_96466_b = 1;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$2 = nms_Item_dyePowder;
    var$3 = new nms_DispenserBehaviorDye;
    var$3.$field_96461_b = 1;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
    $var0 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$4 = nms_Item_itemsList.data;
    nms_Block_$callClinit();
    var$2 = var$4[nms_Block_tnt.$blockID];
    var$3 = new nms_DispenserBehaviorTNT;
    ju_HashMap_putImpl($var0.$registryObjects, var$2, var$3);
};
function nms_BanList() {
    let a = this; jl_Object.call(a);
    a.$theBanList = null;
    a.$fileName = null;
    a.$listActive = 0;
}
let nms_BanList_saveToFile = ($this, $par1) => {
    let $var3, $var2, $var4, var$5, $var5, var$7, var$8, $$je;
    $var3 = $this.$theBanList.$internalMap;
    if ($var3.$cachedValues === null) {
        $var2 = new ju_LinkedHashMapValues;
        $var2.$base = $var3;
        $var2.$reversed = 0;
        $var3.$cachedValues = $var2;
    }
    $var2 = $var3.$cachedValues;
    $var4 = new ju_LinkedHashMapIterator$ValueIterator;
    $var3 = $var2.$base;
    var$5 = $var2.$reversed;
    $var4.$base0 = $var3;
    $var4.$reversed0 = var$5;
    $var4.$expectedModCount0 = $var3.$modCount1;
    $var4.$futureEntry = !var$5 ? $var3.$head : $var3.$tail;
    while ($var4.$futureEntry === null ? 0 : 1) {
        $var2 = (ju_LinkedHashMapIterator$ValueIterator_next($var4)).$banEndDate;
        if ($var2 === null)
            var$5 = 0;
        else {
            $var3 = new ju_Date;
            $var3.$value11 = jl_System_currentTimeMillis();
            var$5 = $var2.$before($var3);
        }
        if (var$5)
            ju_LinkedHashMapIterator_remove($var4);
    }
    a: {
        try {
            $var2 = ji_PrintWriter__init_(ji_FileWriter__init_($this.$fileName, 0));
            if ($par1) {
                $var3 = jt_DateFormat_format(jt_SimpleDateFormat__init_1(), ju_Date__init_0());
                $var4 = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($var4, $rt_s(1152)), $var3), $rt_s(1153));
                ji_PrintWriter_println($var2, jl_StringBuilder_toString($var4));
                ji_PrintWriter_println($var2, $rt_s(1154));
                ji_PrintWriter_println0($var2);
            }
            $var3 = ju_LinkedHashMapValues_iterator(nms_LowerStringMap_values($this.$theBanList));
            while (ju_LinkedHashMapIterator_hasNext($var3)) {
                ji_PrintWriter_println($var2, nms_BanEntry_buildBanString(ju_LinkedHashMapIterator$ValueIterator_next($var3)));
            }
            ji_PrintWriter_close($var2);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $var5 = $$je;
            } else {
                throw $$e;
            }
        }
        nles_IntegratedServer_$callClinit();
        $var4 = nles_IntegratedServer_logger.$logger;
        $var2 = jul_Level_SEVERE;
        var$7 = new jul_LogRecord;
        var$7.$level = $var2;
        var$7.$message0 = $rt_s(1155);
        var$7.$millis = jl_System_currentTimeMillis();
        var$8 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$8, Long_fromInt(1));
        var$7.$sequenceNumber = var$8;
        var$7.$threadID = jl_Thread_currentThread.$id2;
        var$7.$thrown = $var5;
        jul_Logger_log($var4, var$7);
    }
};
function ji_File() {
    jl_Object.call(this);
    this.$path0 = null;
}
let ji_File_separatorChar = 0,
ji_File_separator = null,
ji_File_pathSeparatorChar = 0,
ji_File_pathSeparator = null,
ji_File_$callClinit = () => {
    ji_File_$callClinit = $rt_eraseClinit(ji_File);
    ji_File__clinit_();
},
ji_File_getName = $this => {
    let var$1, $separatorIndex, var$3;
    var$1 = $this.$path0;
    ji_File_$callClinit();
    $separatorIndex = jl_String_lastIndexOf1(var$1, ji_File_separator, var$1.$nativeString.length);
    if ($separatorIndex < 0)
        var$3 = $this.$path0;
    else {
        var$3 = $this.$path0;
        var$3 = jl_String_substring(var$3, $separatorIndex + 1 | 0, var$3.$nativeString.length);
    }
    return var$3;
},
ji_File_getAbsolutePath = $this => {
    let $userdir, $length, $result, var$4, var$5, var$6, var$7;
    if (ji_File_isAbsolutePath($this, $this.$path0))
        return $this.$path0;
    if (otrf_VirtualFileSystemProvider_instance === null)
        otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
    $userdir = otrf_VirtualFileSystemProvider_instance.$userDir;
    if ($this.$path0.$nativeString.length ? 0 : 1)
        return $userdir;
    $length = $userdir.$nativeString.length;
    $result = new jl_StringBuilder;
    $result.$buffer = $rt_createCharArray($userdir.$nativeString.length);
    var$4 = 0;
    while (true) {
        var$5 = $result.$buffer.data;
        if (var$4 >= var$5.length) {
            $result.$length0 = $userdir.$nativeString.length;
            var$4 = $length - 1 | 0;
            if (var$4 >= 0 && var$4 < $userdir.$nativeString.length) {
                if ($userdir.$nativeString.charCodeAt(var$4) != ji_File_separatorChar) {
                    $userdir = $this.$path0;
                    if (0 >= $userdir.$nativeString.length) {
                        $result = new jl_StringIndexOutOfBoundsException;
                        $result.$suppressionEnabled = 1;
                        $result.$writableStackTrace = 1;
                        $rt_throw($result);
                    }
                    if ($userdir.$nativeString.charCodeAt(0) != ji_File_separatorChar) {
                        $userdir = ji_File_separator;
                        jl_AbstractStringBuilder_insert($result, $result.$length0, $userdir);
                    }
                } else if (otrf_VirtualFileSystemProvider_instance === null)
                    otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
                $userdir = $this.$path0;
                jl_AbstractStringBuilder_insert($result, $result.$length0, $userdir);
                $userdir = new jl_String;
                var$5 = $result.$buffer;
                var$6 = var$5.data;
                var$7 = $result.$length0;
                $length = var$6.length;
                if (var$7 >= 0 && var$7 <= ($length - 0 | 0)) {
                    $userdir.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                    return $userdir;
                }
                $result = new jl_IndexOutOfBoundsException;
                $result.$suppressionEnabled = 1;
                $result.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($result);
                $rt_throw($result);
            }
            $result = new jl_StringIndexOutOfBoundsException;
            $result.$suppressionEnabled = 1;
            $result.$writableStackTrace = 1;
            $rt_throw($result);
        }
        if (var$4 < 0)
            break;
        if (var$4 >= $userdir.$nativeString.length)
            break;
        var$5[var$4] = $userdir.$nativeString.charCodeAt(var$4);
        var$4 = var$4 + 1 | 0;
    }
    $result = new jl_StringIndexOutOfBoundsException;
    $result.$suppressionEnabled = 1;
    $result.$writableStackTrace = 1;
    $rt_throw($result);
},
ji_File_isAbsolutePath = ($this, $path) => {
    let var$2;
    ji_File_$callClinit();
    if (otrf_VirtualFileSystemProvider_instance === null)
        otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
    var$2 = $path.$nativeString.length ? 0 : 1;
    a: {
        if (!var$2) {
            if (0 >= $path.$nativeString.length) {
                $path = new jl_StringIndexOutOfBoundsException;
                $path.$suppressionEnabled = 1;
                $path.$writableStackTrace = 1;
                $rt_throw($path);
            }
            if ($path.$nativeString.charCodeAt(0) == ji_File_separatorChar) {
                var$2 = 1;
                break a;
            }
        }
        var$2 = 0;
    }
    return var$2;
},
ji_File_getCanonicalPathImpl = $this => {
    let $result, $numSeparators, $i, $sepLocations, var$5, $newResult, $newLength, $lastSlash, $foundDots, $i_0, $j;
    $result = ji_File_getAbsolutePath($this);
    $numSeparators = 1;
    $i = 0;
    while (true) {
        if ($i >= $result.$nativeString.length) {
            $sepLocations = $rt_createIntArray($numSeparators);
            if (otrf_VirtualFileSystemProvider_instance === null)
                otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
            var$5 = $sepLocations.data;
            $newResult = $rt_createCharArray($result.$nativeString.length + 1 | 0);
            $sepLocations = $newResult.data;
            $newLength = 0;
            $lastSlash = 0;
            $foundDots = 0;
            var$5[$lastSlash] = 0;
            $i_0 = 0;
            a: {
                b: {
                    c: {
                        d: {
                            e: while (true) {
                                if ($i_0 > $result.$nativeString.length)
                                    break a;
                                f: {
                                    if ($i_0 < 0) {
                                        $j = $newLength + 1 | 0;
                                        if ($i_0 < 0)
                                            break e;
                                        if ($i_0 >= $result.$nativeString.length)
                                            break e;
                                        $sepLocations[$newLength] = $result.$nativeString.charCodeAt($i_0);
                                        $newLength = $j;
                                    } else {
                                        if ($i_0 != $result.$nativeString.length) {
                                            if ($i_0 < 0)
                                                break b;
                                            if ($i_0 >= $result.$nativeString.length)
                                                break b;
                                            if ($result.$nativeString.charCodeAt($i_0) != ji_File_separatorChar) {
                                                if ($i_0 < 0)
                                                    break c;
                                                if ($i_0 >= $result.$nativeString.length)
                                                    break c;
                                                if ($result.$nativeString.charCodeAt($i_0) == 46) {
                                                    $foundDots = $foundDots + 1 | 0;
                                                    break f;
                                                }
                                                if ($foundDots <= 0)
                                                    $j = $newLength;
                                                else {
                                                    $j = 0;
                                                    while ($j < $foundDots) {
                                                        $numSeparators = $newLength + 1 | 0;
                                                        $sepLocations[$newLength] = 46;
                                                        $j = $j + 1 | 0;
                                                        $newLength = $numSeparators;
                                                    }
                                                    $j = $newLength;
                                                }
                                                $newLength = $j + 1 | 0;
                                                if ($i_0 < 0)
                                                    break d;
                                                if ($i_0 >= $result.$nativeString.length)
                                                    break d;
                                                $sepLocations[$j] = $result.$nativeString.charCodeAt($i_0);
                                                $foundDots = 0;
                                                break f;
                                            }
                                        }
                                        if ($i_0 == $result.$nativeString.length && !$foundDots)
                                            break a;
                                        $j = $rt_compare($foundDots, 1);
                                        if (!$j)
                                            $foundDots = 0;
                                        else if ($j <= 0) {
                                            $lastSlash = $lastSlash + 1 | 0;
                                            var$5[$lastSlash] = $newLength;
                                            $numSeparators = $newLength + 1 | 0;
                                            $sepLocations[$newLength] = ji_File_separatorChar;
                                            $newLength = $numSeparators;
                                        } else {
                                            $j = $foundDots - 1 | 0;
                                            $lastSlash = $lastSlash <= $j ? 0 : $lastSlash - $j | 0;
                                            $newLength = var$5[$lastSlash] + 1 | 0;
                                            $foundDots = 0;
                                        }
                                    }
                                }
                                $i_0 = $i_0 + 1 | 0;
                            }
                            $result = new jl_StringIndexOutOfBoundsException;
                            $result.$suppressionEnabled = 1;
                            $result.$writableStackTrace = 1;
                            $rt_throw($result);
                        }
                        $result = new jl_StringIndexOutOfBoundsException;
                        $result.$suppressionEnabled = 1;
                        $result.$writableStackTrace = 1;
                        $rt_throw($result);
                    }
                    $result = new jl_StringIndexOutOfBoundsException;
                    $result.$suppressionEnabled = 1;
                    $result.$writableStackTrace = 1;
                    $rt_throw($result);
                }
                $result = new jl_StringIndexOutOfBoundsException;
                $result.$suppressionEnabled = 1;
                $result.$writableStackTrace = 1;
                $rt_throw($result);
            }
            if ($newLength > 1 && $sepLocations[$newLength - 1 | 0] == ji_File_separatorChar)
                $newLength = $newLength + (-1) | 0;
            $result = new jl_String;
            $numSeparators = $sepLocations.length;
            if ($newLength >= 0 && $newLength <= ($numSeparators - 0 | 0)) {
                $result.$nativeString = $rt_charArrayToString($newResult.data, 0, $newLength);
                return $result;
            }
            $result = new jl_IndexOutOfBoundsException;
            $result.$suppressionEnabled = 1;
            $result.$writableStackTrace = 1;
            $rt_throw($result);
        }
        if ($i < 0)
            break;
        if ($i >= $result.$nativeString.length)
            break;
        if ($result.$nativeString.charCodeAt($i) == ji_File_separatorChar)
            $numSeparators = $numSeparators + 1 | 0;
        $i = $i + 1 | 0;
    }
    $result = new jl_StringIndexOutOfBoundsException;
    $result.$suppressionEnabled = 1;
    $result.$writableStackTrace = 1;
    $rt_throw($result);
},
ji_File_getParent = $this => {
    let $length, var$2, $index, var$4, var$5;
    a: {
        $length = $this.$path0.$nativeString.length;
        var$2 = $this.$path0;
        ji_File_$callClinit();
        $index = jl_String_lastIndexOf0(var$2, ji_File_separatorChar, var$2.$nativeString.length - 1 | 0);
        if ($index != (-1)) {
            var$2 = $this.$path0;
            var$4 = $length - 1 | 0;
            if (var$4 >= 0 && var$4 < var$2.$nativeString.length) {
                var$5 = var$2.$nativeString.charCodeAt(var$4);
                var$4 = ji_File_separatorChar;
                if (var$5 != var$4) {
                    b: {
                        if (jl_String_indexOf($this.$path0, var$4, 0) == $index) {
                            if (ji_File_isAbsolutePath($this, $this.$path0))
                                break b;
                            if (!$index)
                                break b;
                        }
                        return jl_String_substring($this.$path0, 0, $index);
                    }
                    return jl_String_substring($this.$path0, 0, $index + 1 | 0);
                } else
                    break a;
            }
            var$2 = new jl_StringIndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
    }
    return null;
},
ji_File_fixSlashes = $origPath => {
    let $length, $newLength, $foundSlash, $newPath, var$6, $i, var$8, $pathChar, var$10;
    ji_File_$callClinit();
    $length = $origPath.$nativeString.length;
    $newLength = 0;
    if (otrf_VirtualFileSystemProvider_instance === null)
        otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
    $foundSlash = 0;
    $newPath = $rt_createCharArray($origPath.$nativeString.length);
    var$6 = $newPath.data;
    $i = 0;
    var$8 = var$6.length;
    while (true) {
        if ($i >= var$8) {
            $i = 0;
            while ($i < $length) {
                $pathChar = var$6[$i];
                if ($pathChar != 47 && $pathChar != ji_File_separatorChar) {
                    var$10 = $newLength + 1 | 0;
                    var$6[$newLength] = $pathChar;
                    $foundSlash = 0;
                } else if ($foundSlash && $i)
                    var$10 = $newLength;
                else {
                    var$10 = $newLength + 1 | 0;
                    var$6[$newLength] = ji_File_separatorChar;
                    $foundSlash = 1;
                }
                $i = $i + 1 | 0;
                $newLength = var$10;
            }
            if ($foundSlash && !($newLength <= 1 && var$6[0] == 47))
                $newLength = $newLength + (-1) | 0;
            $origPath = new jl_String;
            if ($newLength >= 0 && $newLength <= (var$8 - 0 | 0)) {
                $origPath.$nativeString = $rt_charArrayToString($newPath.data, 0, $newLength);
                return $origPath;
            }
            $origPath = new jl_IndexOutOfBoundsException;
            $origPath.$suppressionEnabled = 1;
            $origPath.$writableStackTrace = 1;
            $rt_throw($origPath);
        }
        if ($i < 0)
            break;
        if ($i >= $origPath.$nativeString.length)
            break;
        var$6[$i] = $origPath.$nativeString.charCodeAt($i);
        $i = $i + 1 | 0;
    }
    $origPath = new jl_StringIndexOutOfBoundsException;
    $origPath.$suppressionEnabled = 1;
    $origPath.$writableStackTrace = 1;
    $rt_throw($origPath);
},
ji_File__clinit_ = () => {
    let var$1, var$2, var$3;
    ji_File_$callClinit();
    if (otrf_VirtualFileSystemProvider_instance === null)
        otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
    ji_File_separatorChar = 47;
    var$1 = new jl_String;
    var$2 = $rt_createCharArray(1);
    var$3 = var$2.data;
    var$3[0] = 47;
    var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$3.length);
    ji_File_separator = var$1;
    if (otrf_VirtualFileSystemProvider_instance === null)
        otrf_VirtualFileSystemProvider_instance = otrfm_InMemoryVirtualFileSystem__init_();
    ji_File_pathSeparatorChar = 58;
    var$1 = new jl_String;
    var$2 = $rt_createCharArray(1);
    var$3 = var$2.data;
    var$3[0] = 58;
    var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$3.length);
    ji_File_pathSeparator = var$1;
};
function jl_Object$monitorEnterWait$lambda$_6_0() {
    let a = this; jl_Object.call(a);
    a.$_04 = null;
    a.$_1 = null;
    a.$_2 = 0;
    a.$_3 = null;
}
let ju_Comparator$NaturalOrder = $rt_classWithoutFields(),
ju_Comparator$NaturalOrder_INSTANCE = null,
ju_Comparator$NaturalOrder__init_ = $this => {
    return;
},
ju_Comparator$NaturalOrder__init_0 = () => {
    let var_0 = new ju_Comparator$NaturalOrder();
    ju_Comparator$NaturalOrder__init_(var_0);
    return var_0;
},
ju_Comparator$NaturalOrder_compare = ($this, $o1, $o2) => {
    return $o1.$compareTo($o2);
},
ju_Comparator$NaturalOrder__clinit_ = () => {
    ju_Comparator$NaturalOrder_INSTANCE = new ju_Comparator$NaturalOrder;
},
jl_NumberFormatException = $rt_classWithoutFields(jl_IllegalArgumentException),
jl_NumberFormatException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_NumberFormatException__init_0 = () => {
    let var_0 = new jl_NumberFormatException();
    jl_NumberFormatException__init_(var_0);
    return var_0;
};
function nle_ProfileUUID() {
    let a = this; jl_Object.call(a);
    a.$mostSigBits = Long_ZERO;
    a.$leastSigBits = Long_ZERO;
}
let nle_ProfileUUID_random = null,
nle_ProfileUUID_yee = null,
nle_ProfileUUID_$assertionsDisabled = 0,
nle_ProfileUUID_$callClinit = () => {
    nle_ProfileUUID_$callClinit = $rt_eraseClinit(nle_ProfileUUID);
    nle_ProfileUUID__clinit_();
},
nle_ProfileUUID__init_1 = ($this, $data) => {
    let $msb, $lsb, var$4, $i, var$6, $i_0;
    nle_ProfileUUID_$callClinit();
    $msb = Long_ZERO;
    $lsb = Long_ZERO;
    if (!nle_ProfileUUID_$assertionsDisabled && $data.data.length != 16) {
        var$4 = new jl_AssertionError;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        var$4.$message = $rt_s(1156);
        $rt_throw(var$4);
    }
    $i = 0;
    while ($i < 8) {
        var$6 = $data.data;
        $msb = Long_or(Long_shl($msb, 8), Long_fromInt(var$6[$i] & 255));
        $i = $i + 1 | 0;
    }
    $i_0 = 8;
    while ($i_0 < 16) {
        var$6 = $data.data;
        $lsb = Long_or(Long_shl($lsb, 8), Long_fromInt(var$6[$i_0] & 255));
        $i_0 = $i_0 + 1 | 0;
    }
    $this.$mostSigBits = $msb;
    $this.$leastSigBits = $lsb;
},
nle_ProfileUUID__init_ = var_0 => {
    let var_1 = new nle_ProfileUUID();
    nle_ProfileUUID__init_1(var_1, var_0);
    return var_1;
},
nle_ProfileUUID__init_2 = ($this, $mostSigBits, $leastSigBits) => {
    nle_ProfileUUID_$callClinit();
    $this.$mostSigBits = $mostSigBits;
    $this.$leastSigBits = $leastSigBits;
},
nle_ProfileUUID__init_0 = (var_0, var_1) => {
    let var_2 = new nle_ProfileUUID();
    nle_ProfileUUID__init_2(var_2, var_0, var_1);
    return var_2;
},
nle_ProfileUUID_randomUUID = () => {
    let $randomBytes, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    nle_ProfileUUID_$callClinit();
    $randomBytes = $rt_createByteArray(16);
    var$2 = $randomBytes.data;
    var$3 = nle_ProfileUUID_random;
    var$4 = 0;
    var$5 = var$2.length;
    while (var$4 < var$5) {
        var$6 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$6;
        var$7 = Long_lo(Long_shru(var$6, 16));
        var$8 = var$5 - var$4 | 0;
        var$9 = 4;
        if (var$8 < var$9)
            var$9 = var$8;
        while (true) {
            var$8 = var$9 + (-1) | 0;
            if (var$9 <= 0)
                break;
            var$10 = var$4 + 1 | 0;
            var$2[var$4] = var$7 << 24 >> 24;
            var$7 = var$7 >> 8;
            var$9 = var$8;
            var$4 = var$10;
        }
    }
    var$2[6] = (var$2[6] & 15) << 24 >> 24;
    var$2[6] = (var$2[6] | 64) << 24 >> 24;
    var$2[8] = (var$2[8] & 63) << 24 >> 24;
    var$2[8] = (var$2[8] | 128) << 24 >> 24;
    return nle_ProfileUUID__init_($randomBytes);
},
nle_ProfileUUID_fromString = $name => {
    let var$2, var$3, var$4, $i, var$6, var$7, var$8, $mostSigBits, $leastSigBits, var$11, var$12;
    nle_ProfileUUID_$callClinit();
    var$2 = (jur_Pattern_split(jur_Pattern_compile($rt_s(1157), 0), $name, 0)).data;
    if (var$2.length != 5) {
        var$3 = new jl_IllegalArgumentException;
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1158));
        $i = var$4.$length0;
        if ($name === null)
            $name = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$4, $i, $name);
        $name = new jl_String;
        var$2 = var$4.$buffer;
        var$6 = var$2.data;
        var$7 = var$4.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            $name.$nativeString = $rt_charArrayToString(var$2.data, 0, var$7);
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $name;
            $rt_throw(var$3);
        }
        $name = new jl_IndexOutOfBoundsException;
        $name.$suppressionEnabled = 1;
        $name.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($name);
        $rt_throw($name);
    }
    $i = 0;
    while (true) {
        if ($i >= 5) {
            $mostSigBits = Long_or(Long_shl(Long_or(Long_shl((jl_Long_decode(var$2[0])).$value7, 16), (jl_Long_decode(var$2[1])).$value7), 16), (jl_Long_decode(var$2[2])).$value7);
            $leastSigBits = Long_or(Long_shl((jl_Long_decode(var$2[3])).$value7, 48), (jl_Long_decode(var$2[4])).$value7);
            $name = new nle_ProfileUUID;
            $name.$mostSigBits = $mostSigBits;
            $name.$leastSigBits = $leastSigBits;
            return $name;
        }
        $name = var$2[$i];
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1159));
        var$7 = var$3.$length0;
        if ($name === null)
            $name = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$3, var$7, $name);
        $name = new jl_String;
        var$6 = var$3.$buffer;
        var$11 = var$6.data;
        var$8 = var$3.$length0;
        var$12 = var$11.length;
        if (var$8 < 0)
            break;
        if (var$8 > (var$12 - 0 | 0))
            break;
        $name.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        var$2[$i] = $name;
        $i = $i + 1 | 0;
    }
    $name = new jl_IndexOutOfBoundsException;
    $name.$suppressionEnabled = 1;
    $name.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($name);
    $rt_throw($name);
},
nle_ProfileUUID_getLeastSignificantBits = $this => {
    return $this.$leastSigBits;
},
nle_ProfileUUID_getMostSignificantBits = $this => {
    return $this.$mostSigBits;
},
nle_ProfileUUID_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$1 = Long_shr($this.$mostSigBits, 32);
    nle_ProfileUUID_$callClinit();
    var$2 = otci_IntegerUtil_toUnsignedLogRadixString0(Long_or(Long_create(0, 1), Long_and(var$1, Long_create(4294967295, 0))), 4);
    var$3 = jl_String_substring(var$2, 1, var$2.$nativeString.length);
    var$2 = otci_IntegerUtil_toUnsignedLogRadixString0(Long_or(Long_fromInt(65536), Long_and(Long_shr($this.$mostSigBits, 16), Long_fromInt(65535))), 4);
    var$4 = jl_String_substring(var$2, 1, var$2.$nativeString.length);
    var$2 = otci_IntegerUtil_toUnsignedLogRadixString0(Long_or(Long_fromInt(65536), Long_and($this.$mostSigBits, Long_fromInt(65535))), 4);
    var$5 = jl_String_substring(var$2, 1, var$2.$nativeString.length);
    var$2 = otci_IntegerUtil_toUnsignedLogRadixString0(Long_or(Long_fromInt(65536), Long_and(Long_shr($this.$leastSigBits, 48), Long_fromInt(65535))), 4);
    var$2 = jl_String_substring(var$2, 1, var$2.$nativeString.length);
    var$6 = otci_IntegerUtil_toUnsignedLogRadixString0(Long_or(Long_create(0, 65536), Long_and($this.$leastSigBits, Long_create(4294967295, 65535))), 4);
    var$7 = jl_String_substring(var$6, 1, var$6.$nativeString.length);
    var$6 = new jl_StringBuilder;
    var$6.$buffer = $rt_createCharArray(16);
    var$8 = var$6.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$8, var$3);
    var$9 = var$6.$length0;
    jl_AbstractStringBuilder_insertSpace(var$6, var$9, var$9 + 1 | 0);
    var$6.$buffer.data[var$9] = 45;
    var$9 = var$6.$length0;
    if (var$4 === null)
        var$4 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$9, var$4);
    var$9 = var$6.$length0;
    jl_AbstractStringBuilder_insertSpace(var$6, var$9, var$9 + 1 | 0);
    var$6.$buffer.data[var$9] = 45;
    var$9 = var$6.$length0;
    if (var$5 === null)
        var$5 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$9, var$5);
    var$9 = var$6.$length0;
    jl_AbstractStringBuilder_insertSpace(var$6, var$9, var$9 + 1 | 0);
    var$6.$buffer.data[var$9] = 45;
    var$9 = var$6.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$9, var$2);
    var$9 = var$6.$length0;
    jl_AbstractStringBuilder_insertSpace(var$6, var$9, var$9 + 1 | 0);
    var$6.$buffer.data[var$9] = 45;
    var$8 = var$6.$length0;
    if (var$7 === null)
        var$7 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$8, var$7);
    var$2 = new jl_String;
    var$10 = var$6.$buffer;
    var$11 = var$10.data;
    var$9 = var$6.$length0;
    var$12 = var$11.length;
    if (var$9 >= 0 && var$9 <= (var$12 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$10.data, 0, var$9);
        return var$2;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nle_ProfileUUID_hashCode = $this => {
    let $hilo;
    $hilo = Long_xor($this.$mostSigBits, $this.$leastSigBits);
    return Long_hi($hilo) ^ Long_lo($hilo);
},
nle_ProfileUUID_equals = ($this, $obj) => {
    let $id;
    if (null !== $obj && $obj instanceof nle_ProfileUUID) {
        $id = $obj;
        return Long_eq($this.$mostSigBits, $id.$mostSigBits) && Long_eq($this.$leastSigBits, $id.$leastSigBits) ? 1 : 0;
    }
    return 0;
},
nle_ProfileUUID__clinit_ = () => {
    let var$1, var$2;
    nle_ProfileUUID_$assertionsDisabled = 0;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    nle_ProfileUUID_random = var$1;
    var$1 = new nle_MD5Digest;
    var$1.$xBuf = $rt_createByteArray(4);
    var$1.$xBufOff = 0;
    var$1.$X0 = $rt_createIntArray(16);
    nle_ProfileUUID_yee = var$1;
};
function nle_EaglercraftRandom() {
    let a = this; jl_Object.call(a);
    a.$seed = Long_ZERO;
    a.$nextNextGaussian = 0.0;
    a.$haveNextNextGaussian = 0;
}
let nle_EaglercraftRandom__init_ = $this => {
    let var$1;
    var$1 = Long_fromNumber(performance.now() * 1000000.0);
    $this.$seed = Long_fromInt(69);
    $this.$haveNextNextGaussian = 0;
    $this.$seed = var$1;
},
nle_EaglercraftRandom__init_0 = () => {
    let var_0 = new nle_EaglercraftRandom();
    nle_EaglercraftRandom__init_(var_0);
    return var_0;
},
nle_EaglercraftRandom_nextInt = ($this, $bound) => {
    let var$2, $u, $m, var$5;
    var$2 = Long_and(Long_add(Long_mul($this.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $this.$seed = var$2;
    $u = Long_lo(Long_shru(var$2, 17));
    $m = $bound - 1 | 0;
    if (!($bound & $m))
        var$5 = Long_lo(Long_shr(Long_mul(Long_fromInt($bound), Long_fromInt($u)), 31));
    else
        while (true) {
            var$5 = $u % $bound | 0;
            if ((($u - var$5 | 0) + $m | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul($this.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $this.$seed = var$2;
            $u = Long_lo(Long_shru(var$2, 17));
        }
    return var$5;
},
nle_EaglercraftRandom_nextFloat = $this => {
    let var$1;
    var$1 = Long_and(Long_add(Long_mul($this.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $this.$seed = var$1;
    return Long_lo(Long_shru(var$1, 24)) / 1.6777216E7;
},
nle_EaglercraftRandom_nextGaussian = $this => {
    let var$1, var$2, var$3, $v1, $v2, $s, $multiplier;
    if ($this.$haveNextNextGaussian) {
        $this.$haveNextNextGaussian = 0;
        return $this.$nextNextGaussian;
    }
    while (true) {
        while (true) {
            var$1 = Long_and(Long_add(Long_mul($this.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $this.$seed = var$1;
            var$2 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$1, 22))), 27);
            var$3 = Long_and(Long_add(Long_mul(var$1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $this.$seed = var$3;
            $v1 = 2.0 * Long_toNumber(Long_add(var$2, Long_fromInt(Long_lo(Long_shru(var$3, 21))))) * 1.1102230246251565E-16 - 1.0;
            var$3 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $this.$seed = var$3;
            var$1 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$3, 22))), 27);
            var$2 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $this.$seed = var$2;
            $v2 = 2.0 * Long_toNumber(Long_add(var$1, Long_fromInt(Long_lo(Long_shru(var$2, 21))))) * 1.1102230246251565E-16 - 1.0;
            $s = $v1 * $v1 + $v2 * $v2;
            if ($s >= 1.0)
                continue;
            else
                break;
        }
        if ($s === 0.0)
            continue;
        else
            break;
    }
    $multiplier = jl_Math_sqrt((-2.0) * jl_Math_log($s) / $s);
    $this.$nextNextGaussian = $v2 * $multiplier;
    $this.$haveNextNextGaussian = 1;
    return $v1 * $multiplier;
};
function nms_ItemTool() {
    let a = this; nms_Item.call(a);
    a.$blocksEffectiveAgainst = null;
    a.$efficiencyOnProperMaterial = 0.0;
    a.$damageVsEntity0 = 0.0;
    a.$toolMaterial = null;
}
let nms_ItemTool_getStrVsBlock = ($this, $par1ItemStack, $par2Block) => {
    let $var3, var$4;
    $var3 = 0;
    while (true) {
        var$4 = $this.$blocksEffectiveAgainst.data;
        if ($var3 >= var$4.length)
            break;
        if (var$4[$var3] === $par2Block)
            return $this.$efficiencyOnProperMaterial;
        $var3 = $var3 + 1 | 0;
    }
    return 1.0;
},
nms_ItemTool_hitEntity = ($this, $par1ItemStack, $par2EntityLivingBase, $par3EntityLivingBase) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3EntityLivingBase = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 2;
        $ptr = 1;
    case 1:
        nms_ItemStack_damageItem($par1ItemStack, var$4, $par3EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityLivingBase, $par3EntityLivingBase, var$4, $ptr);
},
nms_ItemTool_onBlockDestroyed = ($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par7EntityLivingBase = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        if (nms_Block_blocksList.data[$par3].$blockHardness === 0.0)
            return 1;
        $par3 = 1;
        $ptr = 1;
    case 1:
        nms_ItemStack_damageItem($par1ItemStack, $par3, $par7EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase, $ptr);
},
nms_ItemTool_getItemEnchantability = $this => {
    return $this.$toolMaterial.$enchantability;
},
nms_ItemTool_getToolMaterialName = $this => {
    return $this.$toolMaterial.$name0;
},
nms_ItemTool_getIsRepairable = ($this, $par1ItemStack, $par2ItemStack) => {
    return nms_EnumToolMaterial_getToolCraftingMaterial($this.$toolMaterial) == $par2ItemStack.$itemID ? 1 : 0;
},
nms_ItemSpade = $rt_classWithoutFields(nms_ItemTool),
nms_ItemSpade_blocksEffectiveAgainst = null,
nms_ItemSpade_$callClinit = () => {
    nms_ItemSpade_$callClinit = $rt_eraseClinit(nms_ItemSpade);
    nms_ItemSpade__clinit_();
},
nms_ItemSpade_canHarvestBlock = ($this, $par1Block) => {
    nms_Block_$callClinit();
    return $par1Block === nms_Block_snow ? 1 : $par1Block !== nms_Block_blockSnow ? 0 : 1;
},
nms_ItemSpade__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_Block, 10);
    var$2 = var$1.data;
    nms_Block_$callClinit();
    var$2[0] = nms_Block_grass;
    var$2[1] = nms_Block_dirt;
    var$2[2] = nms_Block_sand;
    var$2[3] = nms_Block_gravel;
    var$2[4] = nms_Block_snow;
    var$2[5] = nms_Block_blockSnow;
    var$2[6] = nms_Block_blockClay;
    var$2[7] = nms_Block_tilledField;
    var$2[8] = nms_Block_slowSand;
    var$2[9] = nms_Block_mycelium;
    nms_ItemSpade_blocksEffectiveAgainst = var$1;
};
function nms_EnumToolMaterial() {
    let a = this; jl_Enum.call(a);
    a.$harvestLevel = 0;
    a.$maxUses = 0;
    a.$efficiencyOnProperMaterial0 = 0.0;
    a.$damageVsEntity = 0.0;
    a.$enchantability = 0;
}
let nms_EnumToolMaterial_WOOD = null,
nms_EnumToolMaterial_STONE = null,
nms_EnumToolMaterial_IRON = null,
nms_EnumToolMaterial_EMERALD = null,
nms_EnumToolMaterial_GOLD = null,
nms_EnumToolMaterial_$VALUES = null,
nms_EnumToolMaterial_values = () => {
    return nms_EnumToolMaterial_$VALUES.$clone0();
},
nms_EnumToolMaterial_getToolCraftingMaterial = $this => {
    let var$1;
    if ($this === nms_EnumToolMaterial_WOOD) {
        nms_Block_$callClinit();
        var$1 = nms_Block_planks.$blockID;
    } else if ($this === nms_EnumToolMaterial_STONE) {
        nms_Block_$callClinit();
        var$1 = nms_Block_cobblestone.$blockID;
    } else if ($this === nms_EnumToolMaterial_GOLD) {
        nms_Item_$callClinit();
        var$1 = nms_Item_ingotGold.$itemID0;
    } else if ($this === nms_EnumToolMaterial_IRON) {
        nms_Item_$callClinit();
        var$1 = nms_Item_ingotIron.$itemID0;
    } else if ($this !== nms_EnumToolMaterial_EMERALD)
        var$1 = 0;
    else {
        nms_Item_$callClinit();
        var$1 = nms_Item_diamond.$itemID0;
    }
    return var$1;
},
nms_EnumToolMaterial__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new nms_EnumToolMaterial;
    var$1.$name0 = $rt_s(1160);
    var$1.$ordinal = 0;
    var$1.$harvestLevel = 0;
    var$1.$maxUses = 59;
    var$1.$efficiencyOnProperMaterial0 = 2.0;
    var$1.$damageVsEntity = 0.0;
    var$1.$enchantability = 15;
    nms_EnumToolMaterial_WOOD = var$1;
    var$2 = new nms_EnumToolMaterial;
    var$2.$name0 = $rt_s(1161);
    var$2.$ordinal = 1;
    var$2.$harvestLevel = 1;
    var$2.$maxUses = 131;
    var$2.$efficiencyOnProperMaterial0 = 4.0;
    var$2.$damageVsEntity = 1.0;
    var$2.$enchantability = 5;
    nms_EnumToolMaterial_STONE = var$2;
    var$3 = new nms_EnumToolMaterial;
    var$3.$name0 = $rt_s(1162);
    var$3.$ordinal = 2;
    var$3.$harvestLevel = 2;
    var$3.$maxUses = 250;
    var$3.$efficiencyOnProperMaterial0 = 6.0;
    var$3.$damageVsEntity = 2.0;
    var$3.$enchantability = 14;
    nms_EnumToolMaterial_IRON = var$3;
    var$4 = new nms_EnumToolMaterial;
    var$4.$name0 = $rt_s(1163);
    var$4.$ordinal = 3;
    var$4.$harvestLevel = 3;
    var$4.$maxUses = 1561;
    var$4.$efficiencyOnProperMaterial0 = 8.0;
    var$4.$damageVsEntity = 3.0;
    var$4.$enchantability = 10;
    nms_EnumToolMaterial_EMERALD = var$4;
    var$5 = new nms_EnumToolMaterial;
    var$5.$name0 = $rt_s(1164);
    var$5.$ordinal = 4;
    var$5.$harvestLevel = 0;
    var$5.$maxUses = 32;
    var$5.$efficiencyOnProperMaterial0 = 12.0;
    var$5.$damageVsEntity = 0.0;
    var$5.$enchantability = 22;
    nms_EnumToolMaterial_GOLD = var$5;
    nms_EnumToolMaterial_$VALUES = $rt_wrapArray(nms_EnumToolMaterial, [var$1, var$2, var$3, var$4, var$5]);
},
nms_ItemPickaxe = $rt_classWithoutFields(nms_ItemTool),
nms_ItemPickaxe_blocksEffectiveAgainst = null,
nms_ItemPickaxe_$callClinit = () => {
    nms_ItemPickaxe_$callClinit = $rt_eraseClinit(nms_ItemPickaxe);
    nms_ItemPickaxe__clinit_();
},
nms_ItemPickaxe_canHarvestBlock = ($this, $par1Block) => {
    let var$2;
    nms_Block_$callClinit();
    if ($par1Block === nms_Block_obsidian)
        var$2 = $this.$toolMaterial.$harvestLevel != 3 ? 0 : 1;
    else if ($par1Block !== nms_Block_blockDiamond && $par1Block !== nms_Block_oreDiamond) {
        if ($par1Block !== nms_Block_oreEmerald && $par1Block !== nms_Block_blockEmerald) {
            if ($par1Block !== nms_Block_blockGold && $par1Block !== nms_Block_oreGold) {
                if ($par1Block !== nms_Block_blockIron && $par1Block !== nms_Block_oreIron) {
                    if ($par1Block !== nms_Block_blockLapis && $par1Block !== nms_Block_oreLapis) {
                        if ($par1Block !== nms_Block_oreRedstone && $par1Block !== nms_Block_oreRedstoneGlowing) {
                            $par1Block = $par1Block.$blockMaterial;
                            nms_Material_$callClinit();
                            var$2 = $par1Block === nms_Material_rock ? 1 : $par1Block === nms_Material_iron ? 1 : $par1Block !== nms_Material_anvil ? 0 : 1;
                        } else
                            var$2 = $this.$toolMaterial.$harvestLevel < 2 ? 0 : 1;
                    } else
                        var$2 = $this.$toolMaterial.$harvestLevel < 1 ? 0 : 1;
                } else
                    var$2 = $this.$toolMaterial.$harvestLevel < 1 ? 0 : 1;
            } else
                var$2 = $this.$toolMaterial.$harvestLevel < 2 ? 0 : 1;
        } else
            var$2 = $this.$toolMaterial.$harvestLevel < 2 ? 0 : 1;
    } else
        var$2 = $this.$toolMaterial.$harvestLevel < 2 ? 0 : 1;
    return var$2;
},
nms_ItemPickaxe_getStrVsBlock = ($this, $par1ItemStack, $par2Block) => {
    let var$3, var$4, var$5;
    a: {
        if ($par2Block !== null) {
            $par1ItemStack = $par2Block.$blockMaterial;
            nms_Material_$callClinit();
            if (!($par1ItemStack !== nms_Material_iron && $par1ItemStack !== nms_Material_anvil && $par1ItemStack !== nms_Material_rock)) {
                var$3 = $this.$efficiencyOnProperMaterial;
                break a;
            }
        }
        var$4 = 0;
        b: {
            while (true) {
                var$5 = $this.$blocksEffectiveAgainst.data;
                if (var$4 >= var$5.length)
                    break;
                if (var$5[var$4] === $par2Block) {
                    var$3 = $this.$efficiencyOnProperMaterial;
                    break b;
                }
                var$4 = var$4 + 1 | 0;
            }
            var$3 = 1.0;
        }
    }
    return var$3;
},
nms_ItemPickaxe__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_Block, 23);
    var$2 = var$1.data;
    nms_Block_$callClinit();
    var$2[0] = nms_Block_cobblestone;
    var$2[1] = nms_Block_stoneDoubleSlab;
    var$2[2] = nms_Block_stoneSingleSlab;
    var$2[3] = nms_Block_stone;
    var$2[4] = nms_Block_sandStone;
    var$2[5] = nms_Block_cobblestoneMossy;
    var$2[6] = nms_Block_oreIron;
    var$2[7] = nms_Block_blockIron;
    var$2[8] = nms_Block_oreCoal;
    var$2[9] = nms_Block_blockGold;
    var$2[10] = nms_Block_oreGold;
    var$2[11] = nms_Block_oreDiamond;
    var$2[12] = nms_Block_blockDiamond;
    var$2[13] = nms_Block_ice;
    var$2[14] = nms_Block_netherrack;
    var$2[15] = nms_Block_oreLapis;
    var$2[16] = nms_Block_blockLapis;
    var$2[17] = nms_Block_oreRedstone;
    var$2[18] = nms_Block_oreRedstoneGlowing;
    var$2[19] = nms_Block_rail;
    var$2[20] = nms_Block_railDetector;
    var$2[21] = nms_Block_railPowered;
    var$2[22] = nms_Block_railActivator;
    nms_ItemPickaxe_blocksEffectiveAgainst = var$1;
},
nms_ItemAxe = $rt_classWithoutFields(nms_ItemTool),
nms_ItemAxe_blocksEffectiveAgainst = null,
nms_ItemAxe_$callClinit = () => {
    nms_ItemAxe_$callClinit = $rt_eraseClinit(nms_ItemAxe);
    nms_ItemAxe__clinit_();
},
nms_ItemAxe_getStrVsBlock = ($this, $par1ItemStack, $par2Block) => {
    let var$3, var$4, var$5;
    a: {
        if ($par2Block !== null) {
            $par1ItemStack = $par2Block.$blockMaterial;
            nms_Material_$callClinit();
            if (!($par1ItemStack !== nms_Material_wood && $par1ItemStack !== nms_Material_plants && $par1ItemStack !== nms_Material_vine)) {
                var$3 = $this.$efficiencyOnProperMaterial;
                break a;
            }
        }
        var$4 = 0;
        b: {
            while (true) {
                var$5 = $this.$blocksEffectiveAgainst.data;
                if (var$4 >= var$5.length)
                    break;
                if (var$5[var$4] === $par2Block) {
                    var$3 = $this.$efficiencyOnProperMaterial;
                    break b;
                }
                var$4 = var$4 + 1 | 0;
            }
            var$3 = 1.0;
        }
    }
    return var$3;
},
nms_ItemAxe__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_Block, 8);
    var$2 = var$1.data;
    nms_Block_$callClinit();
    var$2[0] = nms_Block_planks;
    var$2[1] = nms_Block_bookShelf;
    var$2[2] = nms_Block_wood;
    var$2[3] = nms_Block_chest;
    var$2[4] = nms_Block_stoneDoubleSlab;
    var$2[5] = nms_Block_stoneSingleSlab;
    var$2[6] = nms_Block_pumpkin;
    var$2[7] = nms_Block_pumpkinLantern;
    nms_ItemAxe_blocksEffectiveAgainst = var$1;
},
nms_ItemFlintAndSteel = $rt_classWithoutFields(nms_Item),
nms_ItemFlintAndSteel_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par7)
            $par5 = $par5 + (-1) | 0;
        if ($par7 == 1)
            $par5 = $par5 + 1 | 0;
        if ($par7 == 2)
            $par6 = $par6 + (-1) | 0;
        if ($par7 == 3)
            $par6 = $par6 + 1 | 0;
        if ($par7 == 4)
            $par4 = $par4 + (-1) | 0;
        if ($par7 == 5)
            $par4 = $par4 + 1 | 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if (!$par7)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11) {
            $par4 = 1;
            $ptr = 2;
            continue main;
        }
        var$12 = $par4 + 0.5;
        var$13 = $par5 + 0.5;
        var$14 = $par6 + 0.5;
        var$15 = $rt_s(1165);
        $par8 = 1.0;
        nms_Item_$callClinit();
        var$16 = nms_Item_itemRand;
        var$17 = Long_and(Long_add(Long_mul(var$16.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$16.$seed = var$17;
        $par9 = Long_lo(Long_shru(var$17, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929;
        $ptr = 3;
        continue main;
    case 2:
        nms_ItemStack_damageItem($par1ItemStack, $par4, $par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 3:
        nms_World_playSoundEffect($par3World, var$12, var$13, var$14, var$15, $par8, $par9);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        $par7 = nms_Block_fire.$blockID;
        $var11 = 0;
        var$18 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var11, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 1;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
};
function nms_ItemFood() {
    let a = this; nms_Item.call(a);
    a.$itemUseDuration = 0;
    a.$healAmount = 0;
    a.$saturationModifier = 0.0;
    a.$isWolfsFavoriteMeat = 0;
    a.$alwaysEdible = 0;
    a.$potionId = 0;
    a.$potionDuration = 0;
    a.$potionAmplifier = 0;
    a.$potionEffectProbability = 0.0;
}
let nms_ItemFood__init_0 = ($this, $par1, $par2, $par3, $par4) => {
    nms_Item__init_($this, $par1);
    $this.$itemUseDuration = 32;
    $this.$healAmount = $par2;
    $this.$isWolfsFavoriteMeat = $par4;
    $this.$saturationModifier = $par3;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabFood;
},
nms_ItemFood__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ItemFood();
    nms_ItemFood__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ItemFood_onEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$4 = $par3EntityPlayer.$foodStats;
        var$5 = $this.$healAmount;
        var$6 = $this.$saturationModifier;
        var$7 = var$5 + var$4.$foodLevel | 0;
        var$8 = 20;
        if (var$7 < var$8)
            var$8 = var$7;
        var$4.$foodLevel = var$8;
        var$4.$foodSaturationLevel = jl_Math_minImpl(var$4.$foodSaturationLevel + var$5 * var$6 * 2.0, var$8);
        var$4 = $rt_s(1166);
        var$9 = 0.5;
        var$10 = $par2World.$rand0;
        var$11 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$11;
        var$6 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$4, var$9, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $this.$onFoodEaten($par1ItemStack, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ItemFood_onFoodEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par2World.$isRemote) {
            var$4 = $this.$potionId;
            if (var$4 > 0) {
                $par1ItemStack = $par2World.$rand0;
                var$5 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1ItemStack.$seed = var$5;
                if (Long_lo(Long_shru(var$5, 24)) / 1.6777216E7 < $this.$potionEffectProbability) {
                    $par1ItemStack = new nms_PotionEffect;
                    var$6 = $this.$potionDuration * 20 | 0;
                    var$7 = $this.$potionAmplifier;
                    $par1ItemStack.$potionID = var$4;
                    $par1ItemStack.$duration = var$6;
                    $par1ItemStack.$amplifier = var$7;
                    $par1ItemStack.$isAmbient = 0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, $ptr);
},
nms_ItemFood_getMaxItemUseDuration = ($this, $par1ItemStack) => {
    return 32;
},
nms_ItemFood_getItemUseAction = ($this, $par1ItemStack) => {
    return nms_EnumAction_eat;
},
nms_ItemFood_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!(!$this.$alwaysEdible && !($par3EntityPlayer.$foodStats.$foodLevel >= 20 ? 0 : 1)) && !$par3EntityPlayer.$capabilities.$disableDamage ? 1 : 0) {
            if ($par1ItemStack !== $par3EntityPlayer.$itemInUse) {
                $par3EntityPlayer.$itemInUse = $par1ItemStack;
                $par3EntityPlayer.$itemInUseCount = 32;
                if (!$par3EntityPlayer.$worldObj.$isRemote)
                    nms_Entity_setFlag($par3EntityPlayer, 4, 1);
            }
            if ($par1ItemStack !== null) {
                nms_Item_$callClinit();
                var$4 = nms_Item_itemsList.data;
                var$5 = $par1ItemStack.$itemID;
                if (var$4[var$5] !== null && var$4[var$5].$getItemUseAction($par1ItemStack) === nms_EnumAction_eat) {
                    var$6 = $par3EntityPlayer.$worldObj.$theEntityTracker;
                    $par2World = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par2World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$7 = $par3EntityPlayer.$entityId;
                    $par2World.$entityId1 = var$7;
                    $par2World.$animate = 5;
                    $par3EntityPlayer = var$6.$trackedEntityIDs;
                    var$5 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                    var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$4 = $par3EntityPlayer.$slots.data;
                    $par3EntityPlayer = var$4[var$5 & (var$4.length - 1 | 0)];
                    a: {
                        while ($par3EntityPlayer !== null) {
                            if ($par3EntityPlayer.$hashEntry == var$7) {
                                $par3EntityPlayer = $par3EntityPlayer.$valueEntry;
                                break a;
                            }
                            $par3EntityPlayer = $par3EntityPlayer.$nextEntry0;
                        }
                        $par3EntityPlayer = null;
                    }
                    $par3EntityPlayer = $par3EntityPlayer;
                    if ($par3EntityPlayer !== null) {
                        var$6 = $par3EntityPlayer.$trackingPlayers.$backingMap;
                        if (var$6.$cachedKeySet === null) {
                            var$8 = new ju_HashMap$1;
                            var$8.$this$0 = var$6;
                            ju_AbstractCollection__init_(var$8);
                            var$6.$cachedKeySet = var$8;
                        }
                        var$9 = var$6.$cachedKeySet.$iterator();
                        var$10 = $par2World instanceof nms_Packet3Chat;
                        var$8 = $par2World;
                        while (var$9.$hasNext()) {
                            b: {
                                var$6 = (var$9.$next()).$playerNetServerHandler;
                                if (var$10) {
                                    var$11 = var$6.$playerEntity.$chatVisibility;
                                    if (var$11 == 2)
                                        break b;
                                    if (var$11 == 1 && !var$8.$isServer)
                                        break b;
                                }
                                try {
                                    var$6 = var$6.$netManager;
                                    $ptr = 1;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$12 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$12);
                                    jl_System_errCache = var$12;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                        }
                        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
                        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
                            c: {
                                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                                if (var$10) {
                                    var$10 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                                    if (var$10 == 2)
                                        break c;
                                    if (var$10 == 1 && !var$8.$isServer)
                                        break c;
                                }
                                try {
                                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                                    $ptr = 2;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $par2World = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = $par3EntityPlayer;
                                }
                                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
                            }
                    }
                }
            }
        }
        return $par1ItemStack;
    case 1:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        e: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break e;
                var$6 = (var$9.$next()).$playerNetServerHandler;
                if (!var$10)
                    break;
                var$11 = var$6.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$8.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
            f: {
                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                if (var$10) {
                    var$10 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$10 == 2)
                        break f;
                    if (var$10 == 1 && !var$8.$isServer)
                        break f;
                }
                try {
                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par2World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $par3EntityPlayer;
                }
                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
            }
        return $par1ItemStack;
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par3EntityPlayer, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $par3EntityPlayer;
            }
            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_ItemFood_getHealAmount = $this => {
    return $this.$healAmount;
},
nms_ItemFood_getSaturationModifier = $this => {
    return $this.$saturationModifier;
},
nms_ItemFood_isWolfsFavoriteMeat = $this => {
    return $this.$isWolfsFavoriteMeat;
},
nms_ItemFood_setPotionEffect = ($this, $par1, $par2, $par3, $par4) => {
    $this.$potionId = $par1;
    $this.$potionDuration = $par2;
    $this.$potionAmplifier = $par3;
    $this.$potionEffectProbability = $par4;
    return $this;
},
nms_ItemFood_setAlwaysEdible = $this => {
    $this.$alwaysEdible = 1;
    return $this;
},
nms_ItemBow = $rt_classWithoutFields(nms_Item),
nms_ItemBow_bowPullIconNameArray = null,
nms_ItemBow_onPlayerStoppedUsing = ($this, $par1ItemStack, $par2World, $par3EntityPlayer, $par4) => {
    let $var5, var$6, $var7, var$8, $var8, var$10, var$11, var$12, var$13, $var6, var$15, var$16, $var9, $var10, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var6 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$par3EntityPlayer.$capabilities.$isCreativeMode) {
                nms_Enchantment_$callClinit();
                if (nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_infinity.$effectId, $par1ItemStack) <= 0) {
                    $var5 = 0;
                    break a;
                }
            }
            $var5 = 1;
        }
        if (!$var5) {
            var$6 = $par3EntityPlayer.$inventory0;
            nms_Item_$callClinit();
            if (!(nms_InventoryPlayer_getInventorySlotContainItem(var$6, nms_Item_arrow.$itemID0) < 0 ? 0 : 1))
                return;
        }
        $var7 = (72000 - $par4 | 0) / 20.0;
        var$8 = ($var7 * $var7 + $var7 * 2.0) / 3.0;
        if (var$8 < 0.1)
            return;
        if (var$8 > 1.0)
            var$8 = 1.0;
        $var8 = new nms_EntityArrow;
        var$10 = var$8 * 2.0;
        $ptr = 1;
    case 1:
        nms_EntityArrow__init_0($var8, $par2World, $par3EntityPlayer, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (var$8 === 1.0) {
            var$6 = $var8.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null) {
                var$6 = var$6.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                $par4 = var$11.$value;
                var$12 = var$6.$elementData.data;
                var$6 = var$12[$par4 & (var$12.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == $par4) {
                        var$13 = var$6.$key;
                        if (var$11 !== var$13 && !(var$11 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == $par4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            $var6 = (var$6 === null ? null : var$6.$value0).$watchedObject.$value1;
            var$6 = $var8.$dataWatcher;
            $par4 = ($var6 | 1) << 24 >> 24;
            var$15 = jl_Byte_byteCache.data[$par4 + 128 | 0];
            var$13 = var$6.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null) {
                var$16 = var$13.$elementData.data[0];
                while (var$16 !== null && var$16.$key !== null) {
                    var$16 = var$16.$next3;
                }
            } else {
                $var9 = var$11.$value;
                var$12 = var$13.$elementData.data;
                var$16 = var$12[$var9 & (var$12.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $var9) {
                        var$13 = var$16.$key;
                        if (var$11 !== var$13 && !(var$11 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == $var9 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
            }
            var$11 = var$16 === null ? null : var$16.$value0;
            var$13 = var$11.$watchedObject;
            if (!(var$13 instanceof jl_Byte && var$13.$value1 == var$15.$value1 ? 1 : 0)) {
                var$11.$watchedObject = var$15;
                var$11.$watched = 1;
                var$6.$objectChanged = 1;
            }
        }
        nms_Enchantment_$callClinit();
        $var9 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_power.$effectId, $par1ItemStack);
        if ($var9 > 0)
            $var8.$damage = $var8.$damage + $var9 * 0.5 + 0.5;
        $var10 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_punch.$effectId, $par1ItemStack);
        if ($var10 > 0)
            $var8.$knockbackStrength = $var10;
        if (nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_flame.$effectId, $par1ItemStack) > 0)
            nms_Entity_setFire($var8, 100);
        $par4 = 1;
        $ptr = 2;
    case 2:
        nms_ItemStack_damageItem($par1ItemStack, $par4, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = $rt_s(1167);
        var$19 = 1.0;
        nms_Item_$callClinit();
        var$6 = nms_Item_itemRand;
        var$20 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$20;
        var$10 = 1.0 / (Long_lo(Long_shru(var$20, 24)) / 1.6777216E7 * 0.4000000059604645 + 1.2000000476837158) + var$8 * 0.5;
        $ptr = 3;
    case 3:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, $par1ItemStack, var$19, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5)
            $var8.$canBePickedUp = 2;
        else {
            $par1ItemStack = $par3EntityPlayer.$inventory0;
            $var9 = nms_InventoryPlayer_getInventorySlotContainItem($par1ItemStack, nms_Item_arrow.$itemID0);
            if ($var9 >= 0) {
                var$12 = $par1ItemStack.$mainInventory.data;
                $par1ItemStack = var$12[$var9];
                $par4 = $par1ItemStack.$stackSize - 1 | 0;
                $par1ItemStack.$stackSize = $par4;
                if ($par4 <= 0)
                    var$12[$var9] = null;
            }
        }
        if ($par2World.$isRemote)
            return;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par2World, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $par4, $var5, var$6, $var7, var$8, $var8, var$10, var$11, var$12, var$13, $var6, var$15, var$16, $var9, $var10, var$19, var$20, $ptr);
},
nms_ItemBow_onEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return $par1ItemStack;
},
nms_ItemBow_getMaxItemUseDuration = ($this, $par1ItemStack) => {
    return 72000;
},
nms_ItemBow_getItemUseAction = ($this, $par1ItemStack) => {
    return nms_EnumAction_bow;
},
nms_ItemBow_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$par3EntityPlayer.$capabilities.$isCreativeMode) {
                $par2World = $par3EntityPlayer.$inventory0;
                nms_Item_$callClinit();
                if (!(nms_InventoryPlayer_getInventorySlotContainItem($par2World, nms_Item_arrow.$itemID0) < 0 ? 0 : 1))
                    break a;
            }
            if ($par1ItemStack !== $par3EntityPlayer.$itemInUse) {
                $par3EntityPlayer.$itemInUse = $par1ItemStack;
                $par3EntityPlayer.$itemInUseCount = 72000;
                if (!$par3EntityPlayer.$worldObj.$isRemote)
                    nms_Entity_setFlag($par3EntityPlayer, 4, 1);
            }
            if ($par1ItemStack !== null) {
                nms_Item_$callClinit();
                var$4 = nms_Item_itemsList.data;
                var$5 = $par1ItemStack.$itemID;
                if (var$4[var$5] !== null && var$4[var$5].$getItemUseAction($par1ItemStack) === nms_EnumAction_eat) {
                    var$6 = $par3EntityPlayer.$worldObj.$theEntityTracker;
                    $par2World = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par2World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$7 = $par3EntityPlayer.$entityId;
                    $par2World.$entityId1 = var$7;
                    $par2World.$animate = 5;
                    $par3EntityPlayer = var$6.$trackedEntityIDs;
                    var$8 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                    var$5 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                    var$4 = $par3EntityPlayer.$slots.data;
                    $par3EntityPlayer = var$4[var$5 & (var$4.length - 1 | 0)];
                    b: {
                        while ($par3EntityPlayer !== null) {
                            if ($par3EntityPlayer.$hashEntry == var$7) {
                                $par3EntityPlayer = $par3EntityPlayer.$valueEntry;
                                break b;
                            }
                            $par3EntityPlayer = $par3EntityPlayer.$nextEntry0;
                        }
                        $par3EntityPlayer = null;
                    }
                    $par3EntityPlayer = $par3EntityPlayer;
                    if ($par3EntityPlayer !== null) {
                        var$6 = $par3EntityPlayer.$trackingPlayers.$backingMap;
                        if (var$6.$cachedKeySet === null) {
                            var$9 = new ju_HashMap$1;
                            var$9.$this$0 = var$6;
                            ju_AbstractCollection__init_(var$9);
                            var$6.$cachedKeySet = var$9;
                        }
                        var$10 = var$6.$cachedKeySet.$iterator();
                        var$7 = $par2World instanceof nms_Packet3Chat;
                        var$9 = $par2World;
                        while (var$10.$hasNext()) {
                            c: {
                                var$6 = (var$10.$next()).$playerNetServerHandler;
                                if (var$7) {
                                    var$8 = var$6.$playerEntity.$chatVisibility;
                                    if (var$8 == 2)
                                        break c;
                                    if (var$8 == 1 && !var$9.$isServer)
                                        break c;
                                }
                                try {
                                    var$6 = var$6.$netManager;
                                    $ptr = 1;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$11 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$11);
                                    jl_System_errCache = var$11;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                        }
                        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
                        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
                            d: {
                                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                                if (var$7) {
                                    var$7 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                                    if (var$7 == 2)
                                        break d;
                                    if (var$7 == 1 && !var$9.$isServer)
                                        break d;
                                }
                                try {
                                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                                    $ptr = 2;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $par2World = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = $par3EntityPlayer;
                                }
                                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
                            }
                    }
                }
            }
        }
        return $par1ItemStack;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$11);
        }
        e: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break e;
                var$6 = (var$10.$next()).$playerNetServerHandler;
                if (!var$7)
                    break;
                var$8 = var$6.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    continue;
                if (var$8 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$11);
        }
        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
            f: {
                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                if (var$7) {
                    var$7 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        break f;
                    if (var$7 == 1 && !var$9.$isServer)
                        break f;
                }
                try {
                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par2World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $par3EntityPlayer;
                }
                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
            }
        return $par1ItemStack;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par3EntityPlayer, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $par3EntityPlayer;
            }
            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ItemBow_getItemEnchantability = $this => {
    return 1;
},
nms_ItemBow__clinit_ = () => {
    nms_ItemBow_bowPullIconNameArray = $rt_wrapArray(jl_String, [$rt_s(69), $rt_s(70), $rt_s(71)]);
};
function nms_CreativeTabs() {
    let a = this; jl_Object.call(a);
    a.$tabIndex = 0;
    a.$tabLabel = null;
    a.$backgroundImageName = null;
    a.$hasScrollbar = 0;
    a.$drawTitle = 0;
    a.$field_111230_s = null;
}
let nms_CreativeTabs_creativeTabArray = null,
nms_CreativeTabs_tabBlock = null,
nms_CreativeTabs_tabDecorations = null,
nms_CreativeTabs_tabRedstone = null,
nms_CreativeTabs_tabTransport = null,
nms_CreativeTabs_tabMisc = null,
nms_CreativeTabs_tabAllSearch = null,
nms_CreativeTabs_tabFood = null,
nms_CreativeTabs_tabTools = null,
nms_CreativeTabs_tabCombat = null,
nms_CreativeTabs_tabBrewing = null,
nms_CreativeTabs_tabMaterials = null,
nms_CreativeTabs_tabInventory = null,
nms_CreativeTabs_$callClinit = () => {
    nms_CreativeTabs_$callClinit = $rt_eraseClinit(nms_CreativeTabs);
    nms_CreativeTabs__clinit_();
},
nms_CreativeTabs_setNoTitle = $this => {
    $this.$drawTitle = 0;
    return $this;
},
nms_CreativeTabs_setNoScrollbar = $this => {
    $this.$hasScrollbar = 0;
    return $this;
},
nms_CreativeTabs__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $rt_createArray(nms_CreativeTabs, 12);
    var$2 = var$1.data;
    nms_CreativeTabs_creativeTabArray = var$1;
    var$3 = new nms_CreativeTabCombat;
    nms_CreativeTabs_$callClinit();
    var$3.$backgroundImageName = $rt_s(1168);
    var$3.$hasScrollbar = 1;
    var$3.$drawTitle = 1;
    var$3.$tabIndex = 0;
    var$3.$tabLabel = $rt_s(1169);
    var$2[0] = var$3;
    nms_CreativeTabs_tabBlock = var$3;
    var$4 = new nms_CreativeTabBlock;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 1;
    var$4.$tabLabel = $rt_s(1170);
    var$2[1] = var$4;
    nms_CreativeTabs_tabDecorations = var$4;
    var$4 = new nms_CreativeTabDeco;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 2;
    var$4.$tabLabel = $rt_s(537);
    var$2[2] = var$4;
    nms_CreativeTabs_tabRedstone = var$4;
    var$4 = new nms_CreativeTabRedstone;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 3;
    var$4.$tabLabel = $rt_s(1171);
    var$2[3] = var$4;
    nms_CreativeTabs_tabTransport = var$4;
    var$3 = new nms_CreativeTabTransport;
    var$3.$backgroundImageName = $rt_s(1168);
    var$3.$hasScrollbar = 1;
    var$3.$drawTitle = 1;
    var$3.$tabIndex = 4;
    var$3.$tabLabel = $rt_s(1172);
    var$2[4] = var$3;
    var$1 = $rt_createArray(nms_EnumEnchantmentType, 1);
    var$1.data[0] = nms_EnumEnchantmentType_all;
    var$3.$field_111230_s = var$1;
    nms_CreativeTabs_tabMisc = var$3;
    var$4 = new nms_CreativeTabMisc;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 5;
    var$4.$tabLabel = $rt_s(1173);
    var$2[5] = var$4;
    var$4.$backgroundImageName = $rt_s(1174);
    nms_CreativeTabs_tabAllSearch = var$4;
    var$4 = new nms_CreativeTabSearch;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 6;
    var$4.$tabLabel = $rt_s(1175);
    var$2[6] = var$4;
    nms_CreativeTabs_tabFood = var$4;
    var$4 = new nms_CreativeTabFood;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 7;
    var$4.$tabLabel = $rt_s(1176);
    var$2[7] = var$4;
    var$1 = $rt_createArray(nms_EnumEnchantmentType, 1);
    var$1.data[0] = nms_EnumEnchantmentType_digger;
    var$4.$field_111230_s = var$1;
    nms_CreativeTabs_tabTools = var$4;
    var$4 = new nms_CreativeTabTools;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 8;
    var$4.$tabLabel = $rt_s(1177);
    var$2[8] = var$4;
    var$1 = $rt_createArray(nms_EnumEnchantmentType, 7);
    var$5 = var$1.data;
    var$5[0] = nms_EnumEnchantmentType_armor;
    var$5[1] = nms_EnumEnchantmentType_armor_feet;
    var$5[2] = nms_EnumEnchantmentType_armor_head;
    var$5[3] = nms_EnumEnchantmentType_armor_legs;
    var$5[4] = nms_EnumEnchantmentType_armor_torso;
    var$5[5] = nms_EnumEnchantmentType_bow;
    var$5[6] = nms_EnumEnchantmentType_weapon;
    var$4.$field_111230_s = var$1;
    nms_CreativeTabs_tabCombat = var$4;
    var$4 = new nms_CreativeTabBrewing;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 9;
    var$4.$tabLabel = $rt_s(1178);
    var$2[9] = var$4;
    nms_CreativeTabs_tabBrewing = var$4;
    var$4 = new nms_CreativeTabMaterial;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 10;
    var$4.$tabLabel = $rt_s(1179);
    var$2[10] = var$4;
    nms_CreativeTabs_tabMaterials = var$4;
    var$4 = new nms_CreativeTabInventory;
    var$4.$backgroundImageName = $rt_s(1168);
    var$4.$hasScrollbar = 1;
    var$4.$drawTitle = 1;
    var$4.$tabIndex = 11;
    var$4.$tabLabel = $rt_s(1180);
    var$2[11] = var$4;
    var$4.$backgroundImageName = $rt_s(1181);
    var$4.$hasScrollbar = 0;
    var$4.$drawTitle = 0;
    nms_CreativeTabs_tabInventory = var$4;
},
nms_ItemCoal = $rt_classWithoutFields(nms_Item),
nms_ItemCoal_getUnlocalizedName = ($this, $par1ItemStack) => {
    return $par1ItemStack.$itemDamage != 1 ? $rt_s(1182) : $rt_s(1183);
};
function nms_ItemSword() {
    let a = this; nms_Item.call(a);
    a.$weaponDamage = 0.0;
    a.$toolMaterial0 = null;
}
let nms_ItemSword_getStrVsBlock = ($this, $par1ItemStack, $par2Block) => {
    let var$3, $var3;
    var$3 = $par2Block.$blockID;
    nms_Block_$callClinit();
    if (var$3 == nms_Block_web.$blockID)
        return 15.0;
    $var3 = $par2Block.$blockMaterial;
    nms_Material_$callClinit();
    return $var3 !== nms_Material_plants && $var3 !== nms_Material_vine && $var3 !== nms_Material_coral && $var3 !== nms_Material_leaves && $var3 !== nms_Material_pumpkin ? 1.0 : 1.5;
},
nms_ItemSword_hitEntity = ($this, $par1ItemStack, $par2EntityLivingBase, $par3EntityLivingBase) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3EntityLivingBase = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 1;
        $ptr = 1;
    case 1:
        nms_ItemStack_damageItem($par1ItemStack, var$4, $par3EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityLivingBase, $par3EntityLivingBase, var$4, $ptr);
},
nms_ItemSword_onBlockDestroyed = ($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par7EntityLivingBase = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        if (nms_Block_blocksList.data[$par3].$blockHardness === 0.0)
            return 1;
        $par3 = 2;
        $ptr = 1;
    case 1:
        nms_ItemStack_damageItem($par1ItemStack, $par3, $par7EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase, $ptr);
},
nms_ItemSword_getItemUseAction = ($this, $par1ItemStack) => {
    return nms_EnumAction_block;
},
nms_ItemSword_getMaxItemUseDuration = ($this, $par1ItemStack) => {
    return 72000;
},
nms_ItemSword_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1ItemStack !== $par3EntityPlayer.$itemInUse) {
            $par3EntityPlayer.$itemInUse = $par1ItemStack;
            $par3EntityPlayer.$itemInUseCount = 72000;
            if (!$par3EntityPlayer.$worldObj.$isRemote)
                nms_Entity_setFlag($par3EntityPlayer, 4, 1);
        }
        if ($par1ItemStack !== null) {
            nms_Item_$callClinit();
            var$4 = nms_Item_itemsList.data;
            var$5 = $par1ItemStack.$itemID;
            if (var$4[var$5] !== null && var$4[var$5].$getItemUseAction($par1ItemStack) === nms_EnumAction_eat) {
                var$6 = $par3EntityPlayer.$worldObj.$theEntityTracker;
                $par2World = new nms_Packet18Animation;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par2World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$7 = $par3EntityPlayer.$entityId;
                $par2World.$entityId1 = var$7;
                $par2World.$animate = 5;
                $par3EntityPlayer = var$6.$trackedEntityIDs;
                var$5 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$4 = $par3EntityPlayer.$slots.data;
                $par3EntityPlayer = var$4[var$5 & (var$4.length - 1 | 0)];
                a: {
                    while ($par3EntityPlayer !== null) {
                        if ($par3EntityPlayer.$hashEntry == var$7) {
                            $par3EntityPlayer = $par3EntityPlayer.$valueEntry;
                            break a;
                        }
                        $par3EntityPlayer = $par3EntityPlayer.$nextEntry0;
                    }
                    $par3EntityPlayer = null;
                }
                $par3EntityPlayer = $par3EntityPlayer;
                if ($par3EntityPlayer !== null) {
                    var$6 = $par3EntityPlayer.$trackingPlayers.$backingMap;
                    if (var$6.$cachedKeySet === null) {
                        var$8 = new ju_HashMap$1;
                        var$8.$this$0 = var$6;
                        ju_AbstractCollection__init_(var$8);
                        var$6.$cachedKeySet = var$8;
                    }
                    var$9 = var$6.$cachedKeySet.$iterator();
                    var$10 = $par2World instanceof nms_Packet3Chat;
                    var$8 = $par2World;
                    while (var$9.$hasNext()) {
                        b: {
                            var$6 = (var$9.$next()).$playerNetServerHandler;
                            if (var$10) {
                                var$11 = var$6.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break b;
                                if (var$11 == 1 && !var$8.$isServer)
                                    break b;
                            }
                            try {
                                var$6 = var$6.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$12 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$12);
                                jl_System_errCache = var$12;
                            }
                            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                        }
                    }
                    $par3EntityPlayer = $par3EntityPlayer.$myEntity;
                    if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
                        c: {
                            $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                            if (var$10) {
                                var$10 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break c;
                                if (var$10 == 1 && !var$8.$isServer)
                                    break c;
                            }
                            try {
                                $par3EntityPlayer = $par3EntityPlayer.$netManager;
                                $ptr = 2;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par2World = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = $par3EntityPlayer;
                            }
                            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
                        }
                }
            }
        }
        return $par1ItemStack;
    case 1:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        e: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break e;
                var$6 = (var$9.$next()).$playerNetServerHandler;
                if (!var$10)
                    break;
                var$11 = var$6.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$8.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
            f: {
                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                if (var$10) {
                    var$10 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$10 == 2)
                        break f;
                    if (var$10 == 1 && !var$8.$isServer)
                        break f;
                }
                try {
                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par2World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $par3EntityPlayer;
                }
                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
            }
        return $par1ItemStack;
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par3EntityPlayer, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $par3EntityPlayer;
            }
            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_ItemSword_canHarvestBlock = ($this, $par1Block) => {
    let var$2;
    var$2 = $par1Block.$blockID;
    nms_Block_$callClinit();
    return var$2 != nms_Block_web.$blockID ? 0 : 1;
},
nms_ItemSword_getItemEnchantability = $this => {
    return $this.$toolMaterial0.$enchantability;
},
nms_ItemSword_getIsRepairable = ($this, $par1ItemStack, $par2ItemStack) => {
    return nms_EnumToolMaterial_getToolCraftingMaterial($this.$toolMaterial0) == $par2ItemStack.$itemID ? 1 : 0;
},
nms_ItemSoup = $rt_classWithoutFields(nms_ItemFood),
nms_ItemSoup_onEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        $par1ItemStack = $par3EntityPlayer.$foodStats;
        var$4 = $this.$healAmount;
        var$5 = $this.$saturationModifier;
        var$6 = var$4 + $par1ItemStack.$foodLevel | 0;
        var$7 = 20;
        if (var$6 < var$7)
            var$7 = var$6;
        $par1ItemStack.$foodLevel = var$7;
        $par1ItemStack.$foodSaturationLevel = jl_Math_minImpl($par1ItemStack.$foodSaturationLevel + var$4 * var$5 * 2.0, var$7);
        $par1ItemStack = $rt_s(1166);
        var$5 = 0.5;
        var$8 = $par2World.$rand0;
        var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$9;
        var$7 = 24;
        var$10 = Long_lo(Long_shru(var$9, var$7)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, $par1ItemStack, var$5, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par2World.$isRemote) {
            var$6 = $this.$potionId;
            if (var$6 > 0) {
                $par1ItemStack = $par2World.$rand0;
                var$9 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1ItemStack.$seed = var$9;
                if (Long_lo(Long_shru(var$9, var$7)) / 1.6777216E7 < $this.$potionEffectProbability) {
                    $par1ItemStack = new nms_PotionEffect;
                    var$4 = $this.$potionDuration * 20 | 0;
                    var$7 = $this.$potionAmplifier;
                    $par1ItemStack.$potionID = var$6;
                    $par1ItemStack.$duration = var$4;
                    $par1ItemStack.$amplifier = var$7;
                    $par1ItemStack.$isAmbient = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $par1ItemStack = new nms_ItemStack;
        nms_Item_$callClinit();
        $par2World = nms_Item_bowlEmpty;
        nms_ItemStack_$callClinit();
        $par1ItemStack.$itemID = $par2World.$itemID0;
        $par1ItemStack.$stackSize = 1;
        $par1ItemStack.$itemDamage = 0;
        return $par1ItemStack;
    case 2:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = new nms_ItemStack;
        nms_Item_$callClinit();
        $par2World = nms_Item_bowlEmpty;
        nms_ItemStack_$callClinit();
        $par1ItemStack.$itemID = $par2World.$itemID0;
        $par1ItemStack.$stackSize = 1;
        $par1ItemStack.$itemDamage = 0;
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
};
function nms_ItemReed() {
    nms_Item.call(this);
    this.$spawnID = 0;
}
let nms_ItemReed__init_0 = ($this, $par1, $par2Block) => {
    nms_Item__init_($this, $par1);
    $this.$spawnID = $par2Block.$blockID;
},
nms_ItemReed__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemReed();
    nms_ItemReed__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ItemReed_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var13, var$13, $var12, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        if ($var11 == nms_Block_snow.$blockID) {
            $ptr = 2;
            continue main;
        }
        if ($var11 != nms_Block_vine.$blockID && $var11 != nms_Block_tallGrass.$blockID && $var11 != nms_Block_deadBush.$blockID) {
            if (!$par7)
                $par5 = $par5 + (-1) | 0;
            if ($par7 == 1)
                $par5 = $par5 + 1 | 0;
            if ($par7 == 2)
                $par6 = $par6 + (-1) | 0;
            if ($par7 == 3)
                $par6 = $par6 + 1 | 0;
            if ($par7 == 4)
                $par4 = $par4 + (-1) | 0;
            if ($par7 == 5)
                $par4 = $par4 + 1 | 0;
        }
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var13 = 1;
        else if ($par1ItemStack === null)
            $var13 = 0;
        else {
            nms_Item_$callClinit();
            $var13 = 1;
        }
        if (!$var13)
            return 0;
        if (!$par1ItemStack.$stackSize)
            return 0;
        $var13 = $this.$spawnID;
        var$13 = 0;
        $var12 = null;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (($var13 & 7) < 1)
            $par7 = 1;
        else if ($var11 != nms_Block_vine.$blockID && $var11 != nms_Block_tallGrass.$blockID && $var11 != nms_Block_deadBush.$blockID) {
            if (!$par7)
                $par5 = $par5 + (-1) | 0;
            if ($par7 == 1)
                $par5 = $par5 + 1 | 0;
            if ($par7 == 2)
                $par6 = $par6 + (-1) | 0;
            if ($par7 == 3)
                $par6 = $par6 + 1 | 0;
            if ($par7 == 4)
                $par4 = $par4 + (-1) | 0;
            if ($par7 == 5)
                $par4 = $par4 + 1 | 0;
        }
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var13 = 1;
        else if ($par1ItemStack === null)
            $var13 = 0;
        else {
            nms_Item_$callClinit();
            $var13 = 1;
        }
        if (!$var13)
            return 0;
        if (!$par1ItemStack.$stackSize)
            return 0;
        $var13 = $this.$spawnID;
        var$13 = 0;
        $var12 = null;
        $ptr = 3;
    case 3:
        $tmp = nms_World_canPlaceEntityOnSide($par3World, $var13, $par4, $par5, $par6, var$13, $par7, $var12, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            return 1;
        $var12 = nms_Block_blocksList.data[$this.$spawnID];
        $var13 = 0;
        $ptr = 4;
    case 4:
        $tmp = $var12.$onBlockPlaced($par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $par7 = $this.$spawnID;
        var$13 = 3;
        $ptr = 5;
    case 5:
        $tmp = nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var13, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 1;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        var$13 = $this.$spawnID;
        if ($par7 == var$13) {
            var$15 = nms_Block_blocksList.data[var$13];
            $ptr = 8;
            continue main;
        }
        var$16 = $par4 + 0.5;
        var$17 = $par5 + 0.5;
        var$18 = $par6 + 0.5;
        $par2EntityPlayer = $var12.$stepSound.$getPlaceSound();
        $var12 = $var12.$stepSound;
        $par10 = ($var12.$stepSoundVolume + 1.0) / 2.0;
        $par8 = $var12.$stepSoundPitch * 0.800000011920929;
        $ptr = 7;
    case 7:
        nms_World_playSoundEffect($par3World, var$16, var$17, var$18, $par2EntityPlayer, $par10, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    case 8:
        var$15.$onBlockPlacedBy($par3World, $par4, $par5, $par6, $par2EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par2EntityPlayer = nms_Block_blocksList.data[$this.$spawnID];
        $ptr = 9;
    case 9:
        $par2EntityPlayer.$onPostBlockPlaced($par3World, $par4, $par5, $par6, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $par4 + 0.5;
        var$17 = $par5 + 0.5;
        var$18 = $par6 + 0.5;
        $par2EntityPlayer = $var12.$stepSound.$getPlaceSound();
        $var12 = $var12.$stepSound;
        $par10 = ($var12.$stepSoundVolume + 1.0) / 2.0;
        $par8 = $var12.$stepSoundPitch * 0.800000011920929;
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var13, var$13, $var12, var$15, var$16, var$17, var$18, $ptr);
},
nms_PotionHelper = $rt_classWithoutFields(),
nms_PotionHelper_field_77924_a = null,
nms_PotionHelper_sugarEffect = null,
nms_PotionHelper_spiderEyeEffect = null,
nms_PotionHelper_fermentedSpiderEyeEffect = null,
nms_PotionHelper_speckledMelonEffect = null,
nms_PotionHelper_blazePowderEffect = null,
nms_PotionHelper_magmaCreamEffect = null,
nms_PotionHelper_redstoneEffect = null,
nms_PotionHelper_glowstoneEffect = null,
nms_PotionHelper_gunpowderEffect = null,
nms_PotionHelper_goldenCarrotEffect = null,
nms_PotionHelper_potionRequirements = null,
nms_PotionHelper_potionAmplifiers = null,
nms_PotionHelper_field_77925_n = null,
nms_PotionHelper_potionPrefixes = null,
nms_PotionHelper_$callClinit = () => {
    nms_PotionHelper_$callClinit = $rt_eraseClinit(nms_PotionHelper);
    nms_PotionHelper__clinit_();
},
nms_PotionHelper__init_ = $this => {
    nms_PotionHelper_$callClinit();
},
nms_PotionHelper__init_0 = () => {
    let var_0 = new nms_PotionHelper();
    nms_PotionHelper__init_(var_0);
    return var_0;
},
nms_PotionHelper_calcPotionLiquidColor = $par0Collection => {
    let $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, var$10, var$11, var$12;
    nms_PotionHelper_$callClinit();
    if ($par0Collection !== null && !($par0Collection.$size() ? 0 : 1)) {
        $var2 = 0.0;
        $var3 = 0.0;
        $var4 = 0.0;
        $var5 = 0.0;
        $var6 = $par0Collection.$iterator();
        while ($var6.$hasNext()) {
            $var7 = $var6.$next();
            nms_Potion_$callClinit();
            $var8 = nms_Potion_potionTypes.data[$var7.$potionID].$liquidColor;
            $var9 = 0;
            var$10 = ($var8 >> 16 & 255) / 255.0;
            var$11 = ($var8 >> 8 & 255) / 255.0;
            var$12 = ($var8 >> 0 & 255) / 255.0;
            while ($var9 <= $var7.$amplifier) {
                $var2 = $var2 + var$10;
                $var3 = $var3 + var$11;
                $var4 = $var4 + var$12;
                $var5 = $var5 + 1.0;
                $var9 = $var9 + 1 | 0;
            }
        }
        return ($var2 / $var5 * 255.0 | 0) << 16 | ($var3 / $var5 * 255.0 | 0) << 8 | $var4 / $var5 * 255.0 | 0;
    }
    return 3694022;
},
nms_PotionHelper_func_77904_a = ($par0, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$9;
    nms_PotionHelper_$callClinit();
    a: {
        $var7 = 0;
        if ($par0)
            $var7 = !(!($par6 & 1 << $par4) ? 0 : 1) ? 1 : 0;
        else if ($par3 == (-1))
            $var7 = !(!($par6 & 1 << $par4) ? 0 : 1) ? 0 : 1;
        else {
            if (!$par3) {
                $par0 = 0;
                var$9 = $par6;
                while (var$9 > 0) {
                    var$9 = var$9 & (var$9 - 1 | 0);
                    $par0 = $par0 + 1 | 0;
                }
                if ($par0 == $par4) {
                    $var7 = 1;
                    break a;
                }
            }
            if ($par3 == 1) {
                $par0 = 0;
                var$9 = $par6;
                while (var$9 > 0) {
                    var$9 = var$9 & (var$9 - 1 | 0);
                    $par0 = $par0 + 1 | 0;
                }
                if ($par0 > $par4) {
                    $var7 = 1;
                    break a;
                }
            }
            if ($par3 == 2) {
                $par0 = 0;
                while ($par6 > 0) {
                    $par6 = $par6 & ($par6 - 1 | 0);
                    $par0 = $par0 + 1 | 0;
                }
                if ($par0 < $par4)
                    $var7 = 1;
            }
        }
    }
    if ($par1)
        $var7 = $rt_imul($var7, $par5);
    if ($par2)
        $var7 = $var7 * (-1) | 0;
    return $var7;
},
nms_PotionHelper_parsePotionEffects = ($par0Str, $var15, $par2, $par3) => {
    let $var4, $var5, $var17, $var18, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var16;
    nms_PotionHelper_$callClinit();
    if ($var15 < $par0Str.$nativeString.length && $par2 >= 0 && $var15 < $par2) {
        $var4 = jl_String_indexOf($par0Str, 124, $var15);
        if ($var4 >= 0 && $var4 < $par2) {
            $var5 = nms_PotionHelper_parsePotionEffects($par0Str, $var15, $var4 - 1 | 0, $par3);
            if ($var5 > 0)
                return $var5;
            $var17 = nms_PotionHelper_parsePotionEffects($par0Str, $var4 + 1 | 0, $par2, $par3);
            if ($var17 <= 0)
                $var17 = 0;
            return $var17;
        }
        $var5 = jl_String_indexOf($par0Str, 38, $var15);
        if ($var5 >= 0 && $var5 < $par2) {
            $var17 = nms_PotionHelper_parsePotionEffects($par0Str, $var15, $var5 - 1 | 0, $par3);
            if ($var17 <= 0)
                return 0;
            $var18 = nms_PotionHelper_parsePotionEffects($par0Str, $var5 + 1 | 0, $par2, $par3);
            if ($var18 <= 0)
                $var18 = 0;
            else if ($var17 > $var18)
                $var18 = $var17;
            return $var18;
        }
        $var6 = 0;
        $var7 = 0;
        $var8 = 0;
        $var9 = 0;
        $var10 = 0;
        $var11 = (-1);
        $var12 = 0;
        $var13 = 0;
        $var14 = 0;
        a: {
            while ($var15 < $par2) {
                if ($var15 < 0)
                    break a;
                if ($var15 >= $par0Str.$nativeString.length)
                    break a;
                b: {
                    $var16 = $par0Str.$nativeString.charCodeAt($var15);
                    if ($var16 >= 48 && $var16 <= 57) {
                        if ($var6) {
                            $var13 = $var16 - 48 | 0;
                            $var7 = 1;
                            break b;
                        }
                        $var12 = ($var12 * 10 | 0) + ($var16 - 48 | 0) | 0;
                        $var8 = 1;
                        break b;
                    }
                    if ($var16 == 42) {
                        $var6 = 1;
                        break b;
                    }
                    if ($var16 == 33) {
                        if ($var8) {
                            $var14 = $var14 + nms_PotionHelper_func_77904_a($var9, $var7, $var10, $var11, $var12, $var13, $par3) | 0;
                            $var10 = 0;
                            $var6 = 0;
                            $var7 = 0;
                            $var8 = 0;
                            $var13 = 0;
                            $var12 = 0;
                            $var11 = (-1);
                        }
                        $var9 = 1;
                        break b;
                    }
                    if ($var16 == 45) {
                        if ($var8) {
                            $var14 = $var14 + nms_PotionHelper_func_77904_a($var9, $var7, $var10, $var11, $var12, $var13, $par3) | 0;
                            $var9 = 0;
                            $var6 = 0;
                            $var7 = 0;
                            $var8 = 0;
                            $var13 = 0;
                            $var12 = 0;
                            $var11 = (-1);
                        }
                        $var10 = 1;
                        break b;
                    }
                    $var5 = $rt_compare($var16, 61);
                    if ($var5 && $var16 != 60 && $var16 != 62) {
                        if ($var16 != 43)
                            break b;
                        if (!$var8)
                            break b;
                        $var14 = $var14 + nms_PotionHelper_func_77904_a($var9, $var7, $var10, $var11, $var12, $var13, $par3) | 0;
                        $var9 = 0;
                        $var10 = 0;
                        $var6 = 0;
                        $var7 = 0;
                        $var8 = 0;
                        $var13 = 0;
                        $var12 = 0;
                        $var11 = (-1);
                        break b;
                    }
                    if ($var8) {
                        $var14 = $var14 + nms_PotionHelper_func_77904_a($var9, $var7, $var10, $var11, $var12, $var13, $par3) | 0;
                        $var9 = 0;
                        $var10 = 0;
                        $var6 = 0;
                        $var7 = 0;
                        $var8 = 0;
                        $var13 = 0;
                        $var12 = 0;
                        $var11 = (-1);
                    }
                    if (!$var5) {
                        $var11 = 0;
                        break b;
                    }
                    if ($var16 == 60) {
                        $var11 = 2;
                        break b;
                    }
                    if ($var16 != 62)
                        break b;
                    $var11 = 1;
                }
                $var15 = $var15 + 1 | 0;
            }
            if ($var8)
                $var14 = $var14 + nms_PotionHelper_func_77904_a($var9, $var7, $var10, $var11, $var12, $var13, $par3) | 0;
            return $var14;
        }
        $par0Str = new jl_StringIndexOutOfBoundsException;
        $par0Str.$suppressionEnabled = 1;
        $par0Str.$writableStackTrace = 1;
        $rt_throw($par0Str);
    }
    return 0;
},
nms_PotionHelper_getPotionEffects = ($par0, $par1) => {
    let $var2, var$4, $var4, $var5, var$7, $var6, $var7, $var9, $var10, $var11, $var3, $var8, var$15, var$16, var$17, var$18;
    nms_PotionHelper_$callClinit();
    $var2 = null;
    nms_Potion_$callClinit();
    var$4 = nms_Potion_potionTypes.data;
    $var4 = var$4.length;
    $var5 = 0;
    var$7 = $par0 & 16384;
    while ($var5 < $var4) {
        $var6 = var$4[$var5];
        if ($var6 !== null && !($var6.$usable && !$par1)) {
            $var7 = nms_PotionHelper_potionRequirements;
            $var9 = $var6.$id0;
            if ($var9 >= (-128) && $var9 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var10 = jl_Integer_integerCache.data[$var9 + 128 | 0];
            } else {
                $var10 = new jl_Integer;
                $var10.$value = $var9;
            }
            if ($var10 === null) {
                $var11 = $var7.$elementData.data[0];
                while ($var11 !== null && $var11.$key !== null) {
                    $var11 = $var11.$next3;
                }
            } else {
                $var9 = $var10.$value;
                $var3 = $var7.$elementData.data;
                $var11 = $var3[$var9 & ($var3.length - 1 | 0)];
                while ($var11 !== null) {
                    if ($var11.$origKeyHash == $var9) {
                        $var7 = $var11.$key;
                        if ($var10 !== $var7 && !($var10 === $var7 ? 1 : $var7 instanceof jl_Integer && $var7.$value == $var9 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var11 = $var11.$next3;
                }
            }
            $var7 = $var11 === null ? null : $var11.$value0;
            if ($var7 !== null) {
                $var8 = nms_PotionHelper_parsePotionEffects($var7, 0, $var7.$nativeString.length, $par0);
                if ($var8 > 0) {
                    $var9 = 0;
                    $var7 = nms_PotionHelper_potionAmplifiers;
                    var$15 = $var6.$id0;
                    if (var$15 >= (-128) && var$15 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var11 = jl_Integer_integerCache.data[var$15 + 128 | 0];
                    } else {
                        $var11 = new jl_Integer;
                        $var11.$value = var$15;
                    }
                    if ($var11 === null) {
                        $var7 = $var7.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        var$15 = $var11.$value;
                        $var3 = $var7.$elementData.data;
                        $var7 = $var3[var$15 & ($var3.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$15) {
                                $var10 = $var7.$key;
                                if ($var11 !== $var10 && !($var11 === $var10 ? 1 : $var10 instanceof jl_Integer && $var10.$value == var$15 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    $var10 = $var7 === null ? null : $var7.$value0;
                    if ($var10 !== null) {
                        $var9 = nms_PotionHelper_parsePotionEffects($var10, 0, $var10.$nativeString.length, $par0);
                        if ($var9 < 0)
                            $var9 = 0;
                    }
                    if ($var6.$isInstant())
                        var$16 = 1;
                    else {
                        var$17 = ((1200 * (($var8 * 3 | 0) + (($var8 - 1 | 0) * 2 | 0) | 0) | 0) >> $var9) * $var6.$effectiveness;
                        var$16 = Long_lo(Long_fromNumber(var$17 + jl_Math_sign(var$17) * 0.5));
                        if (var$7) {
                            var$18 = var$16 * 0.75 + 0.5;
                            var$16 = Long_lo(Long_fromNumber(var$18 + jl_Math_sign(var$18) * 0.5));
                        }
                    }
                    if ($var2 === null) {
                        $var2 = new ju_ArrayList;
                        $var2.$array = $rt_createArray(jl_Object, 10);
                    }
                    $var11 = new nms_PotionEffect;
                    $var11.$potionID = $var6.$id0;
                    $var11.$duration = var$16;
                    $var11.$amplifier = $var9;
                    $var11.$isAmbient = 0;
                    if (var$7)
                        $var11.$isSplashPotion = 1;
                    ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                    $var3 = $var2.$array.data;
                    $var9 = $var2.$size0;
                    $var2.$size0 = $var9 + 1 | 0;
                    $var3[$var9] = $var11;
                    $var2.$modCount = $var2.$modCount + 1 | 0;
                }
            }
        }
        $var5 = $var5 + 1 | 0;
    }
    return $var2;
},
nms_PotionHelper_brewBitOperations = ($par0, $par1, $par2, $par3, $par4) => {
    nms_PotionHelper_$callClinit();
    if ($par4) {
        if (!(!($par0 & 1 << $par1) ? 0 : 1))
            return 0;
    } else if ($par2)
        $par0 = $par0 & (1 << $par1 ^ (-1));
    else if (!$par3)
        $par0 = $par0 | 1 << $par1;
    else {
        $par1 = 1 << $par1;
        $par0 = !($par0 & $par1) ? $par0 | $par1 : $par0 & ($par1 ^ (-1));
    }
    return $par0;
},
nms_PotionHelper_applyIngredient = ($par0, $par1Str) => {
    let $var9, $var3, $var4, $var5, $var6, $var7, $var8, $var10;
    nms_PotionHelper_$callClinit();
    $var9 = 0;
    $var3 = $par1Str.$nativeString.length;
    $var4 = 0;
    $var5 = 0;
    $var6 = 0;
    $var7 = 0;
    $var8 = 0;
    a: {
        while ($var9 < $var3) {
            if ($var9 < 0)
                break a;
            if ($var9 >= $par1Str.$nativeString.length)
                break a;
            $var10 = $par1Str.$nativeString.charCodeAt($var9);
            if ($var10 >= 48 && $var10 <= 57) {
                $var8 = ($var8 * 10 | 0) + ($var10 - 48 | 0) | 0;
                $var4 = 1;
            } else if ($var10 == 33) {
                if ($var4) {
                    $par0 = nms_PotionHelper_brewBitOperations($par0, $var8, $var6, $var5, $var7);
                    $var7 = 0;
                    $var6 = 0;
                    $var4 = 0;
                    $var8 = 0;
                }
                $var5 = 1;
            } else if ($var10 == 45) {
                if ($var4) {
                    $par0 = nms_PotionHelper_brewBitOperations($par0, $var8, $var6, $var5, $var7);
                    $var7 = 0;
                    $var5 = 0;
                    $var4 = 0;
                    $var8 = 0;
                }
                $var6 = 1;
            } else if ($var10 == 43) {
                if ($var4) {
                    $par0 = nms_PotionHelper_brewBitOperations($par0, $var8, $var6, $var5, $var7);
                    $var7 = 0;
                    $var5 = 0;
                    $var6 = 0;
                    $var4 = 0;
                    $var8 = 0;
                }
            } else if ($var10 == 38) {
                if ($var4) {
                    $par0 = nms_PotionHelper_brewBitOperations($par0, $var8, $var6, $var5, $var7);
                    $var5 = 0;
                    $var6 = 0;
                    $var4 = 0;
                    $var8 = 0;
                }
                $var7 = 1;
            }
            $var9 = $var9 + 1 | 0;
        }
        if ($var4)
            $par0 = nms_PotionHelper_brewBitOperations($par0, $var8, $var6, $var5, $var7);
        return $par0 & 32767;
    }
    $par1Str = new jl_StringIndexOutOfBoundsException;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    $rt_throw($par1Str);
},
nms_PotionHelper_func_77908_a = ($par0, $par1, $par2, $par3, $par4, $par5) => {
    nms_PotionHelper_$callClinit();
    return (!(!($par0 & 1 << $par1) ? 0 : 1) ? 0 : 16) | (!(!($par0 & 1 << $par2) ? 0 : 1) ? 0 : 8) | (!(!($par0 & 1 << $par3) ? 0 : 1) ? 0 : 4) | (!(!($par0 & 1 << $par4) ? 0 : 1) ? 0 : 2) | (!(!($par0 & 1 << $par5) ? 0 : 1) ? 0 : 1);
},
nms_PotionHelper__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    nms_PotionHelper_field_77924_a = null;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_PotionHelper_potionRequirements = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_PotionHelper_potionAmplifiers = var$1;
    var$5 = nms_PotionHelper_potionRequirements;
    nms_Potion_$callClinit();
    var$6 = nms_Potion_regeneration.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$7 = new jl_Integer;
        var$7.$value = var$6;
    }
    ju_HashMap_putImpl(var$5, var$7, $rt_s(1184));
    nms_PotionHelper_sugarEffect = $rt_s(1185);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_moveSpeed.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1186));
    nms_PotionHelper_magmaCreamEffect = $rt_s(1187);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_fireResistance.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1188));
    nms_PotionHelper_speckledMelonEffect = $rt_s(1189);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_heal.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1190));
    nms_PotionHelper_spiderEyeEffect = $rt_s(1191);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_poison.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1192));
    nms_PotionHelper_fermentedSpiderEyeEffect = $rt_s(1193);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_weakness.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1194));
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_harm.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1195));
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_moveSlowdown.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1196));
    nms_PotionHelper_blazePowderEffect = $rt_s(1197);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_damageBoost.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1198));
    nms_PotionHelper_goldenCarrotEffect = $rt_s(1199);
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_nightVision.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1200));
    var$1 = nms_PotionHelper_potionRequirements;
    var$6 = nms_Potion_invisibility.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1201));
    nms_PotionHelper_glowstoneEffect = $rt_s(1202);
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_moveSpeed.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_digSpeed.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_damageBoost.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_regeneration.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_harm.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_heal.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_resistance.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    var$1 = nms_PotionHelper_potionAmplifiers;
    var$6 = nms_Potion_poison.$id0;
    if (var$6 >= (-128) && var$6 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$6 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$6;
    }
    ju_HashMap_putImpl(var$1, var$5, $rt_s(1203));
    nms_PotionHelper_redstoneEffect = $rt_s(1204);
    nms_PotionHelper_gunpowderEffect = $rt_s(1205);
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_PotionHelper_field_77925_n = var$1;
    nms_PotionHelper_potionPrefixes = $rt_wrapArray(jl_String, [$rt_s(1206), $rt_s(1207), $rt_s(1208), $rt_s(1209), $rt_s(1210), $rt_s(1211), $rt_s(1212), $rt_s(1213), $rt_s(1214), $rt_s(1215), $rt_s(1216), $rt_s(1217), $rt_s(1218), $rt_s(1219), $rt_s(1220), $rt_s(1221), $rt_s(1222), $rt_s(1223), $rt_s(1224), $rt_s(1225), $rt_s(1226), $rt_s(1227), $rt_s(1228), $rt_s(1229), $rt_s(1230), $rt_s(1231), $rt_s(1232), $rt_s(1233), $rt_s(1234), $rt_s(1235), $rt_s(1236), $rt_s(1237)]);
};
function nms_ItemHoe() {
    nms_Item.call(this);
    this.$theToolMaterial = null;
}
let nms_ItemHoe_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, $var13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var11 = 1;
        else if ($par1ItemStack === null)
            $var11 = 0;
        else {
            nms_Item_$callClinit();
            $var11 = 1;
        }
        if (!$var11)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var12 = $par5 + 1 | 0;
        $ptr = 2;
    case 2:
        a: {
            $tmp = nms_World_getBlockId($par3World, $par4, $var12, $par6);
            if ($rt_suspending()) {
                break main;
            }
            $var12 = $tmp;
            if ($par7 && !$var12) {
                nms_Block_$callClinit();
                if ($var11 == nms_Block_grass.$blockID)
                    break a;
                if ($var11 == nms_Block_dirt.$blockID)
                    break a;
            }
            return 0;
        }
        $var13 = nms_Block_tilledField;
        var$14 = $par4 + 0.5;
        var$15 = $par5 + 0.5;
        var$16 = $par6 + 0.5;
        var$17 = nms_StepSound_getStepSound($var13.$stepSound);
        var$18 = $var13.$stepSound;
        $par9 = (var$18.$stepSoundVolume + 1.0) / 2.0;
        $par8 = var$18.$stepSoundPitch * 0.800000011920929;
        $ptr = 3;
    case 3:
        nms_World_playSoundEffect($par3World, var$14, var$15, var$16, var$17, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par3World.$isRemote)
            return 1;
        $par7 = $var13.$blockID;
        $var11 = 0;
        $var12 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 1;
        $ptr = 5;
    case 5:
        nms_ItemStack_damageItem($par1ItemStack, $par4, $par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, $var13, var$14, var$15, var$16, var$17, var$18, $ptr);
};
function nms_ItemSeeds() {
    let a = this; nms_Item.call(a);
    a.$blockType0 = 0;
    a.$soilBlockID = 0;
}
let nms_ItemSeeds__init_0 = ($this, $par1, $par2, $par3) => {
    nms_Item__init_($this, $par1);
    $this.$blockType0 = $par2;
    $this.$soilBlockID = $par3;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
},
nms_ItemSeeds__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_ItemSeeds();
    nms_ItemSeeds__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ItemSeeds_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7 != 1)
            return 0;
        $var11 = $par2EntityPlayer.$capabilities.$allowEdit;
        if ($var11)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if ($par7) {
            $par7 = $par5 + 1 | 0;
            if ($var11)
                $var11 = 1;
            else if ($par1ItemStack === null)
                $var11 = 0;
            else {
                nms_Item_$callClinit();
                $var11 = 1;
            }
            if ($var11) {
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 != $this.$soilBlockID)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par3World, $par4, $par7, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1))
            return 0;
        $par5 = $this.$blockType0;
        $var11 = 0;
        var$12 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par3World, $par4, $par7, $par6, $par5, $var11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, $ptr);
};
function nms_ItemArmor() {
    let a = this; nms_Item.call(a);
    a.$armorType = 0;
    a.$damageReduceAmount = 0;
    a.$renderIndex = 0;
    a.$material = null;
}
let nms_ItemArmor_maxDamageArray = null,
nms_ItemArmor_field_94606_cu = null,
nms_ItemArmor_field_94603_a = null,
nms_ItemArmor_field_96605_cw = null,
nms_ItemArmor__init_0 = ($this, $par1, $par2EnumArmorMaterial, $par3, $par4) => {
    let var$5;
    nms_Item__init_($this, $par1);
    $this.$material = $par2EnumArmorMaterial;
    $this.$armorType = $par4;
    $this.$renderIndex = $par3;
    $this.$damageReduceAmount = $par2EnumArmorMaterial.$damageReductionAmountArray.data[$par4];
    $this.$maxDamage = $rt_imul(nms_ItemArmor_maxDamageArray.data[$par4], $par2EnumArmorMaterial.$maxDamageFactor);
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabCombat;
    $par2EnumArmorMaterial = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$5 = nms_ItemArmor_field_96605_cw;
    ju_HashMap_putImpl($par2EnumArmorMaterial.$registryObjects, $this, var$5);
},
nms_ItemArmor__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ItemArmor();
    nms_ItemArmor__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ItemArmor_getItemEnchantability = $this => {
    return $this.$material.$enchantability0;
},
nms_ItemArmor_getColor = ($this, $par1ItemStack) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8;
    if ($this.$material !== nms_EnumArmorMaterial_CLOTH)
        return (-1);
    $var2 = $par1ItemStack.$stackTagCompound;
    if ($var2 === null)
        return 10511680;
    a: {
        $var3 = $var2.$tagMap;
        if (!$rt_s(918).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(918).$nativeString.length)
                    break a;
                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$5 = $rt_s(918).$hashCode1;
    var$6 = $var3.$elementData.data;
    $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$5) {
            b: {
                var$7 = $var3.$key;
                if ($rt_s(918) !== var$7) {
                    if ($rt_s(918) === var$7)
                        var$4 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$7 = var$7;
                        var$4 = $rt_s(918).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break b;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var3 = $var3.$next3;
    }
    if (!($var3 === null ? 0 : 1)) {
        $var3 = new nms_NBTTagCompound;
        if ($rt_s(918) !== null)
            $var3.$name = $rt_s(918);
        else
            $var3.$name = $rt_s(3);
        $par1ItemStack = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        $par1ItemStack.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$6 = var$8.data;
        $par1ItemStack.$elementData = var$8;
        $par1ItemStack.$loadFactor = 0.75;
        $par1ItemStack.$threshold = var$6.length * 0.75 | 0;
        $var3.$tagMap = $par1ItemStack;
    } else {
        $var3 = $var2.$tagMap;
        if ($rt_s(918) === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            c: {
                if (!$rt_s(918).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(918).$nativeString.length)
                            break c;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = $rt_s(918).$hashCode1;
            var$6 = $var3.$elementData.data;
            $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$5) {
                    d: {
                        var$7 = $var3.$key;
                        if ($rt_s(918) !== var$7) {
                            if ($rt_s(918) === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = $rt_s(918).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
    }
    if ($var3 === null)
        var$4 = 10511680;
    else {
        e: {
            var$7 = $var3.$tagMap;
            if (!$rt_s(1120).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(1120).$nativeString.length)
                        break e;
                    $rt_s(1120).$hashCode1 = (31 * $rt_s(1120).$hashCode1 | 0) + $rt_s(1120).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(1120).$hashCode1;
        var$6 = var$7.$elementData.data;
        var$7 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$7 !== null) {
            if (var$7.$origKeyHash == var$5) {
                f: {
                    $var2 = var$7.$key;
                    if ($rt_s(1120) !== $var2) {
                        if ($rt_s(1120) === $var2)
                            var$4 = 1;
                        else if (!($var2 instanceof jl_String))
                            var$4 = 0;
                        else {
                            $var2 = $var2;
                            var$4 = $rt_s(1120).$nativeString !== $var2.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break f;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$7 = var$7.$next3;
        }
        if (!(var$7 === null ? 0 : 1))
            var$4 = 10511680;
        else {
            g: {
                var$7 = $var3.$tagMap;
                if (!$rt_s(1120).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(1120).$nativeString.length)
                            break g;
                        $rt_s(1120).$hashCode1 = (31 * $rt_s(1120).$hashCode1 | 0) + $rt_s(1120).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = $rt_s(1120).$hashCode1;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$5) {
                    h: {
                        $var2 = var$7.$key;
                        if ($rt_s(1120) !== $var2) {
                            if ($rt_s(1120) === $var2)
                                var$4 = 1;
                            else if (!($var2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                $var2 = $var2;
                                var$4 = $rt_s(1120).$nativeString !== $var2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
            if (!(var$7 === null ? 0 : 1))
                var$4 = 0;
            else {
                $var3 = $var3.$tagMap;
                if ($rt_s(1120) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    i: {
                        if (!$rt_s(1120).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(1120).$nativeString.length)
                                    break i;
                                $rt_s(1120).$hashCode1 = (31 * $rt_s(1120).$hashCode1 | 0) + $rt_s(1120).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$5 = $rt_s(1120).$hashCode1;
                    var$6 = $var3.$elementData.data;
                    $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$5) {
                            j: {
                                var$7 = $var3.$key;
                                if ($rt_s(1120) !== var$7) {
                                    if ($rt_s(1120) === var$7)
                                        var$4 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$4 = $rt_s(1120).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break j;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$4 = ($var3 === null ? null : $var3.$value0).$data;
            }
        }
    }
    return var$4;
},
nms_ItemArmor_func_82813_b = ($this, $par1ItemStack, $par2) => {
    let $var3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    if ($this.$material !== nms_EnumArmorMaterial_CLOTH) {
        $par1ItemStack = new jl_UnsupportedOperationException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $par1ItemStack.$message = $rt_s(1238);
        $rt_throw($par1ItemStack);
    }
    $var3 = $par1ItemStack.$stackTagCompound;
    if ($var3 === null) {
        $var3 = new nms_NBTTagCompound;
        $var3.$name = $rt_s(3);
        $var4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        $var4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        $var4.$elementData = var$6;
        $var4.$loadFactor = 0.75;
        $var4.$threshold = var$7.length * 0.75 | 0;
        $var3.$tagMap = $var4;
        $par1ItemStack.$stackTagCompound = $var3;
    }
    a: {
        $var4 = $var3.$tagMap;
        if (!$rt_s(918).$hashCode1) {
            var$8 = 0;
            while (true) {
                if (var$8 >= $rt_s(918).$nativeString.length)
                    break a;
                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                var$8 = var$8 + 1 | 0;
            }
        }
    }
    var$9 = $rt_s(918).$hashCode1;
    var$7 = $var4.$elementData.data;
    $var4 = var$7[var$9 & (var$7.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == var$9) {
            b: {
                var$10 = $var4.$key;
                if ($rt_s(918) !== var$10) {
                    if ($rt_s(918) === var$10)
                        var$8 = 1;
                    else if (!(var$10 instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$10 = var$10;
                        var$8 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        var$8 = 0;
                        break b;
                    }
                }
                var$8 = 1;
            }
            if (var$8)
                break;
        }
        $var4 = $var4.$next3;
    }
    if (!($var4 === null ? 0 : 1)) {
        $var4 = new nms_NBTTagCompound;
        if ($rt_s(918) !== null)
            $var4.$name = $rt_s(918);
        else
            $var4.$name = $rt_s(3);
        $par1ItemStack = new ju_HashMap;
        var$8 = ju_HashMap_calculateCapacity(16);
        $par1ItemStack.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$8);
        var$7 = var$6.data;
        $par1ItemStack.$elementData = var$6;
        $par1ItemStack.$loadFactor = 0.75;
        $par1ItemStack.$threshold = var$7.length * 0.75 | 0;
        $var4.$tagMap = $par1ItemStack;
    } else {
        $var4 = $var3.$tagMap;
        if ($rt_s(918) === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            c: {
                if (!$rt_s(918).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(918).$nativeString.length)
                            break c;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$7 = $var4.$elementData.data;
            $var4 = var$7[var$9 & (var$7.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$9) {
                    d: {
                        var$10 = $var4.$key;
                        if ($rt_s(918) !== var$10) {
                            if ($rt_s(918) === var$10)
                                var$8 = 1;
                            else if (!(var$10 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$10 = var$10;
                                var$8 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break d;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
    }
    e: {
        var$10 = $var3.$tagMap;
        if (!$rt_s(918).$hashCode1) {
            var$8 = 0;
            while (true) {
                if (var$8 >= $rt_s(918).$nativeString.length)
                    break e;
                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                var$8 = var$8 + 1 | 0;
            }
        }
    }
    var$9 = $rt_s(918).$hashCode1;
    var$7 = var$10.$elementData.data;
    var$10 = var$7[var$9 & (var$7.length - 1 | 0)];
    while (var$10 !== null) {
        if (var$10.$origKeyHash == var$9) {
            f: {
                var$11 = var$10.$key;
                if ($rt_s(918) !== var$11) {
                    if ($rt_s(918) === var$11)
                        var$8 = 1;
                    else if (!(var$11 instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$11 = var$11;
                        var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        var$8 = 0;
                        break f;
                    }
                }
                var$8 = 1;
            }
            if (var$8)
                break;
        }
        var$10 = var$10.$next3;
    }
    if (!(var$10 === null ? 0 : 1)) {
        $var3 = $var3.$tagMap;
        $var4.$name = $rt_s(918);
        ju_HashMap_putImpl($var3, $rt_s(918), $var4);
    }
    $var4 = $var4.$tagMap;
    $var3 = new nms_NBTTagInt;
    $var3.$name = $rt_s(1120);
    $var3.$data = $par2;
    ju_HashMap_putImpl($var4, $rt_s(1120), $var3);
},
nms_ItemArmor_getIsRepairable = ($this, $par1ItemStack, $par2ItemStack) => {
    return nms_EnumArmorMaterial_getArmorCraftingMaterial($this.$material) == $par2ItemStack.$itemID ? 1 : 0;
},
nms_ItemArmor_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    $var4 = nms_EntityLiving_getArmorPosition($par1ItemStack) - 1 | 0;
    if ($par3EntityPlayer.$inventory0.$armorInventory.data[$var4] === null) {
        var$5 = new nms_ItemStack;
        var$6 = $par1ItemStack.$itemID;
        var$7 = $par1ItemStack.$stackSize;
        var$8 = $par1ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$5.$itemID = var$6;
        var$5.$stackSize = var$7;
        var$5.$itemDamage = var$8;
        if (var$8 < 0)
            var$5.$itemDamage = 0;
        var$9 = $par1ItemStack.$stackTagCompound;
        if (var$9 !== null) {
            var$10 = new nms_NBTTagCompound;
            $par2World = var$9.$name;
            if ($par2World === null)
                $par2World = $rt_s(3);
            var$10.$name = $par2World;
            $par2World = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            $par2World.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$12 = var$11.data;
            $par2World.$elementData = var$11;
            $par2World.$loadFactor = 0.75;
            $par2World.$threshold = var$12.length * 0.75 | 0;
            var$10.$tagMap = $par2World;
            $par2World = var$9.$tagMap;
            if ($par2World.$cachedKeySet === null) {
                var$13 = new ju_HashMap$1;
                var$13.$this$0 = $par2World;
                $par2World.$cachedKeySet = var$13;
            }
            var$14 = $par2World.$cachedKeySet.$iterator();
            while (var$14.$hasNext()) {
                $par2World = var$14.$next();
                var$13 = var$9.$tagMap;
                if ($par2World === null) {
                    var$15 = var$13.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                } else {
                    a: {
                        if (!$par2World.$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $par2World.$nativeString.length)
                                    break a;
                                $par2World.$hashCode1 = (31 * $par2World.$hashCode1 | 0) + $par2World.$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $par2World.$hashCode1;
                    var$12 = var$13.$elementData.data;
                    var$15 = var$12[var$8 & (var$12.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$8) {
                            b: {
                                var$13 = var$15.$key;
                                if ($par2World !== var$13) {
                                    if ($par2World === var$13)
                                        var$6 = 1;
                                    else if (!(var$13 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$13 = var$13;
                                        var$6 = $par2World.$nativeString !== var$13.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break b;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                }
                var$13 = var$15 === null ? null : var$15.$value0;
                var$13 = var$13.$copy();
                var$15 = var$10.$tagMap;
                if ($par2World !== null)
                    var$13.$name = $par2World;
                else
                    var$13.$name = $rt_s(3);
                ju_HashMap_putImpl(var$15, $par2World, var$13);
            }
            var$5.$stackTagCompound = var$10;
        }
        $par3EntityPlayer.$inventory0.$armorInventory.data[$var4] = var$5;
        $par1ItemStack.$stackSize = 0;
    }
    return $par1ItemStack;
},
nms_ItemArmor__clinit_ = () => {
    nms_ItemArmor_maxDamageArray = $rt_createIntArrayFromData([11, 16, 15, 13]);
    nms_ItemArmor_field_94606_cu = $rt_wrapArray(jl_String, [$rt_s(1239), $rt_s(1240), $rt_s(1241), $rt_s(1242)]);
    nms_ItemArmor_field_94603_a = $rt_wrapArray(jl_String, [$rt_s(1243), $rt_s(1244), $rt_s(1245), $rt_s(1246)]);
    nms_ItemArmor_field_96605_cw = new nms_BehaviorDispenseArmor;
};
function nms_EnumArmorMaterial() {
    let a = this; jl_Enum.call(a);
    a.$maxDamageFactor = 0;
    a.$damageReductionAmountArray = null;
    a.$enchantability0 = 0;
}
let nms_EnumArmorMaterial_CLOTH = null,
nms_EnumArmorMaterial_CHAIN = null,
nms_EnumArmorMaterial_IRON = null,
nms_EnumArmorMaterial_GOLD = null,
nms_EnumArmorMaterial_DIAMOND = null,
nms_EnumArmorMaterial_$VALUES = null,
nms_EnumArmorMaterial_values = () => {
    return nms_EnumArmorMaterial_$VALUES.$clone0();
},
nms_EnumArmorMaterial_getArmorCraftingMaterial = $this => {
    let var$1;
    if ($this === nms_EnumArmorMaterial_CLOTH) {
        nms_Item_$callClinit();
        var$1 = nms_Item_leather.$itemID0;
    } else if ($this === nms_EnumArmorMaterial_CHAIN) {
        nms_Item_$callClinit();
        var$1 = nms_Item_ingotIron.$itemID0;
    } else if ($this === nms_EnumArmorMaterial_GOLD) {
        nms_Item_$callClinit();
        var$1 = nms_Item_ingotGold.$itemID0;
    } else if ($this === nms_EnumArmorMaterial_IRON) {
        nms_Item_$callClinit();
        var$1 = nms_Item_ingotIron.$itemID0;
    } else if ($this !== nms_EnumArmorMaterial_DIAMOND)
        var$1 = 0;
    else {
        nms_Item_$callClinit();
        var$1 = nms_Item_diamond.$itemID0;
    }
    return var$1;
},
nms_EnumArmorMaterial__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = new nms_EnumArmorMaterial;
    var$2 = $rt_createIntArrayFromData([1, 3, 2, 1]);
    var$1.$name0 = $rt_s(1247);
    var$1.$ordinal = 0;
    var$1.$maxDamageFactor = 5;
    var$1.$damageReductionAmountArray = var$2;
    var$1.$enchantability0 = 15;
    nms_EnumArmorMaterial_CLOTH = var$1;
    var$3 = new nms_EnumArmorMaterial;
    var$2 = $rt_createIntArrayFromData([2, 5, 4, 1]);
    var$3.$name0 = $rt_s(1248);
    var$3.$ordinal = 1;
    var$3.$maxDamageFactor = 15;
    var$3.$damageReductionAmountArray = var$2;
    var$3.$enchantability0 = 12;
    nms_EnumArmorMaterial_CHAIN = var$3;
    var$4 = new nms_EnumArmorMaterial;
    var$2 = $rt_createIntArrayFromData([2, 6, 5, 2]);
    var$4.$name0 = $rt_s(1162);
    var$4.$ordinal = 2;
    var$4.$maxDamageFactor = 15;
    var$4.$damageReductionAmountArray = var$2;
    var$4.$enchantability0 = 9;
    nms_EnumArmorMaterial_IRON = var$4;
    var$5 = new nms_EnumArmorMaterial;
    var$2 = $rt_createIntArrayFromData([2, 5, 3, 1]);
    var$5.$name0 = $rt_s(1164);
    var$5.$ordinal = 3;
    var$5.$maxDamageFactor = 7;
    var$5.$damageReductionAmountArray = var$2;
    var$5.$enchantability0 = 25;
    nms_EnumArmorMaterial_GOLD = var$5;
    var$6 = new nms_EnumArmorMaterial;
    var$2 = $rt_createIntArrayFromData([3, 8, 6, 3]);
    var$6.$name0 = $rt_s(1249);
    var$6.$ordinal = 4;
    var$6.$maxDamageFactor = 33;
    var$6.$damageReductionAmountArray = var$2;
    var$6.$enchantability0 = 10;
    nms_EnumArmorMaterial_DIAMOND = var$6;
    nms_EnumArmorMaterial_$VALUES = $rt_wrapArray(nms_EnumArmorMaterial, [var$1, var$3, var$4, var$5, var$6]);
};
function nms_ItemHangingEntity() {
    nms_Item.call(this);
    this.$hangingEntityClass = null;
}
let nms_ItemHangingEntity__init_0 = ($this, $par1, $par2Class) => {
    nms_Item__init_($this, $par1);
    $this.$hangingEntityClass = $par2Class;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabDecorations;
},
nms_ItemHangingEntity__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemHangingEntity();
    nms_ItemHangingEntity__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ItemHangingEntity_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par7)
            return 0;
        if ($par7 == 1)
            return 0;
        $var11 = nms_Direction_facingToDirection.data[$par7];
        var$12 = $this.$hangingEntityClass;
        if (var$12 === $rt_cls(nms_EntityPainting)) {
            $var12 = new nms_EntityPainting;
            $ptr = 1;
            continue main;
        }
        if (var$12 === $rt_cls(nms_EntityItemFrame)) {
            $var12 = new nms_EntityItemFrame;
            nms_Entity__init_($var12, $par3World);
            $var12.$yOffset = 0.0;
            $par9 = 0.5;
            $par8 = 0.5;
            $ptr = 2;
            continue main;
        }
        $var12 = null;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par4 = 1;
        else if ($par1ItemStack === null)
            $par4 = 0;
        else {
            nms_Item_$callClinit();
            $par4 = 1;
        }
        if (!$par4)
            return 0;
        if ($var12 === null)
            return 1;
        $ptr = 3;
        continue main;
    case 1:
        nms_EntityPainting__init_($var12, $par3World, $par4, $par5, $par6, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par4 = 1;
        else if ($par1ItemStack === null)
            $par4 = 0;
        else {
            nms_Item_$callClinit();
            $par4 = 1;
        }
        if (!$par4)
            return 0;
        if ($var12 === null)
            return 1;
        $ptr = 3;
        continue main;
    case 2:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$xPosition1 = $par4;
        $var12.$yPosition0 = $par5;
        $var12.$zPosition1 = $par6;
        $var12.$itemDropChance = 1.0;
        nms_EntityHanging_setDirection($var12, $var11);
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par4 = 1;
        else if ($par1ItemStack === null)
            $par4 = 0;
        else {
            nms_Item_$callClinit();
            $par4 = 1;
        }
        if (!$par4)
            return 0;
        if ($var12 === null)
            return 1;
        $ptr = 3;
    case 3:
        $tmp = nms_EntityHanging_onValidSurface($var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4) {
            if (!$par3World.$isRemote) {
                $ptr = 4;
                continue main;
            }
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        }
        return 1;
    case 4:
        nms_World_spawnEntityInWorld($par3World, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, $var12, $ptr);
};
function nms_Entity() {
    let a = this; jl_Object.call(a);
    a.$entityId = 0;
    a.$renderDistanceWeight = 0.0;
    a.$preventEntitySpawning = 0;
    a.$riddenByEntity = null;
    a.$ridingEntity = null;
    a.$forceSpawn = 0;
    a.$worldObj = null;
    a.$prevPosX = 0.0;
    a.$prevPosY = 0.0;
    a.$prevPosZ = 0.0;
    a.$posX = 0.0;
    a.$posY = 0.0;
    a.$posZ = 0.0;
    a.$motionX = 0.0;
    a.$motionY = 0.0;
    a.$motionZ = 0.0;
    a.$rotationYaw = 0.0;
    a.$rotationPitch = 0.0;
    a.$prevRotationYaw = 0.0;
    a.$prevRotationPitch = 0.0;
    a.$boundingBox0 = null;
    a.$onGround = 0;
    a.$isCollidedHorizontally = 0;
    a.$isCollidedVertically = 0;
    a.$isCollided = 0;
    a.$velocityChanged = 0;
    a.$isInWeb = 0;
    a.$field_70135_K = 0;
    a.$isDead = 0;
    a.$yOffset = 0.0;
    a.$width = 0.0;
    a.$height0 = 0.0;
    a.$prevDistanceWalkedModified = 0.0;
    a.$distanceWalkedModified = 0.0;
    a.$distanceWalkedOnStepModified = 0.0;
    a.$fallDistance = 0.0;
    a.$nextStepDistance = 0;
    a.$lastTickPosX = 0.0;
    a.$lastTickPosY = 0.0;
    a.$lastTickPosZ = 0.0;
    a.$ySize = 0.0;
    a.$stepHeight = 0.0;
    a.$noClip = 0;
    a.$entityCollisionReduction = 0.0;
    a.$rand = null;
    a.$ticksExisted = 0;
    a.$fireResistance = 0;
    a.$fire = 0;
    a.$inWater = 0;
    a.$hurtResistantTime = 0;
    a.$firstUpdate = 0;
    a.$isImmuneToFire = 0;
    a.$dataWatcher = null;
    a.$entityRiderPitchDelta = 0.0;
    a.$entityRiderYawDelta = 0.0;
    a.$addedToChunk = 0;
    a.$chunkCoordX = 0;
    a.$chunkCoordY = 0;
    a.$chunkCoordZ = 0;
    a.$ignoreFrustumCheck = 0;
    a.$isAirBorne = 0;
    a.$timeUntilPortal = 0;
    a.$inPortal = 0;
    a.$portalCounter = 0;
    a.$dimension = 0;
    a.$teleportDirection = 0;
    a.$invulnerable = 0;
    a.$entityUniqueID = null;
    a.$myEntitySize = null;
}
let nms_Entity_nextEntityID = 0,
nms_Entity__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4;
    var$2 = nms_Entity_nextEntityID;
    nms_Entity_nextEntityID = var$2 + 1 | 0;
    $this.$entityId = var$2;
    $this.$renderDistanceWeight = 1.0;
    var$3 = new nms_AxisAlignedBB;
    var$3.$minX0 = 0.0;
    var$3.$minY0 = 0.0;
    var$3.$minZ0 = 0.0;
    var$3.$maxX0 = 0.0;
    var$3.$maxY = 0.0;
    var$3.$maxZ0 = 0.0;
    $this.$boundingBox0 = var$3;
    $this.$field_70135_K = 1;
    $this.$width = 0.6000000238418579;
    $this.$height0 = 1.7999999523162842;
    $this.$nextStepDistance = 1;
    var$3 = new nle_EaglercraftRandom;
    var$4 = Long_fromNumber(performance.now() * 1000000.0);
    var$3.$seed = Long_fromInt(69);
    var$3.$haveNextNextGaussian = 0;
    var$3.$seed = var$4;
    $this.$rand = var$3;
    $this.$fireResistance = 1;
    $this.$firstUpdate = 1;
    $this.$dataWatcher = nms_DataWatcher__init_0();
    $this.$entityUniqueID = nle_ProfileUUID_randomUUID();
    $this.$myEntitySize = nms_EnumEntitySize_SIZE_2;
    $this.$worldObj = $par1World;
    nms_Entity_setPosition($this, 0.0, 0.0, 0.0);
    if ($par1World !== null)
        $this.$dimension = $par1World.$provider.$dimensionId;
    nms_DataWatcher_addObject($this.$dataWatcher, 0, jl_Byte_byteCache.data[128]);
    $par1World = $this.$dataWatcher;
    var$3 = new jl_Short;
    var$3.$value6 = 300;
    nms_DataWatcher_addObject($par1World, 1, var$3);
    $this.$entityInit();
},
nms_Entity_getDataWatcher = $this => {
    return $this.$dataWatcher;
},
nms_Entity_equals = ($this, $par1Obj) => {
    return !($par1Obj instanceof nms_Entity) ? 0 : $par1Obj.$entityId != $this.$entityId ? 0 : 1;
},
nms_Entity_hashCode = $this => {
    return $this.$entityId;
},
nms_Entity_setDead = $this => {
    $this.$isDead = 1;
},
nms_Entity_setSize = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$width;
        var$4 = $rt_compare($par1, $var3);
        if (!(!var$4 && $par2 === $this.$height0)) {
            $this.$width = $par1;
            $this.$height0 = $par2;
            var$5 = $this.$boundingBox0;
            var$6 = var$5.$minX0;
            var$7 = $par1;
            var$5.$maxX0 = var$6 + var$7;
            var$5.$maxZ0 = var$5.$minZ0 + var$7;
            var$5.$maxY = var$5.$minY0 + $par2;
            if (var$4 > 0 && !$this.$firstUpdate && !$this.$worldObj.$isRemote) {
                var$6 = $var3 - $par1;
                var$7 = 0.0;
                $ptr = 1;
                continue main;
            }
        }
        var$6 = $par1 % 2.0;
        if (var$6 < 0.375)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_1;
        else if (var$6 < 0.75)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_2;
        else if (var$6 < 1.0)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_3;
        else if (var$6 < 1.375)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_4;
        else if (var$6 >= 1.75)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_6;
        else
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_5;
        return;
    case 1:
        $this.$moveEntity(var$6, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $par1 % 2.0;
        if (var$6 < 0.375)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_1;
        else if (var$6 < 0.75)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_2;
        else if (var$6 < 1.0)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_3;
        else if (var$6 < 1.375)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_4;
        else if (var$6 >= 1.75)
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_6;
        else
            $this.$myEntitySize = nms_EnumEntitySize_SIZE_5;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, var$5, var$6, var$7, $ptr);
},
nms_Entity_setRotation = ($this, $par1, $par2) => {
    $this.$rotationYaw = $par1 % 360.0;
    $this.$rotationPitch = $par2 % 360.0;
},
nms_Entity_setPosition = ($this, $par1, $par3, $par5) => {
    let $var7, $var8, var$6, var$7, var$8, var$9, var$10;
    $this.$posX = $par1;
    $this.$posY = $par3;
    $this.$posZ = $par5;
    $var7 = $this.$width / 2.0;
    $var8 = $this.$height0;
    var$6 = $this.$boundingBox0;
    var$7 = $var7;
    var$8 = $par1 - var$7;
    $par3 = $par3 - $this.$yOffset + $this.$ySize;
    var$9 = $par5 - var$7;
    $par1 = $par1 + var$7;
    var$10 = $par3 + $var8;
    $par5 = $par5 + var$7;
    var$6.$minX0 = var$8;
    var$6.$minY0 = $par3;
    var$6.$minZ0 = var$9;
    var$6.$maxX0 = $par1;
    var$6.$maxY = var$10;
    var$6.$maxZ0 = $par5;
},
nms_Entity_onUpdate = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$onEntityUpdate();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_Entity_onEntityUpdate = $this => {
    let var$1, $var2, $var4, $var3, var$5, var$6, $var5, $var6, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$ridingEntity;
        if (var$1 !== null && var$1.$isDead)
            $this.$ridingEntity = null;
        $this.$prevDistanceWalkedModified = $this.$distanceWalkedModified;
        $this.$prevPosX = $this.$posX;
        $this.$prevPosY = $this.$posY;
        $this.$prevPosZ = $this.$posZ;
        $this.$prevRotationPitch = $this.$rotationPitch;
        $this.$prevRotationYaw = $this.$rotationYaw;
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && var$1 instanceof nms_WorldServer) {
            $var2 = $this.$getMaxInPortalTime();
            if (!$this.$inPortal) {
                $var4 = $this.$portalCounter;
                if ($var4 > 0)
                    $this.$portalCounter = $var4 - 4 | 0;
                if ($this.$portalCounter < 0)
                    $this.$portalCounter = 0;
            } else {
                if ($this.$ridingEntity === null) {
                    $var4 = $this.$portalCounter;
                    $this.$portalCounter = $var4 + 1 | 0;
                    if ($var4 >= $var2) {
                        $this.$portalCounter = $var2;
                        $this.$timeUntilPortal = $this.$getPortalCooldown();
                        $var3 = $this.$worldObj.$provider.$dimensionId != (-1) ? (-1) : 0;
                        $ptr = 7;
                        continue main;
                    }
                }
                $this.$inPortal = 0;
            }
            $var4 = $this.$timeUntilPortal;
            if ($var4 > 0)
                $this.$timeUntilPortal = $var4 - 1 | 0;
        }
        if (!nms_Entity_getFlag($this, 3)) {
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        $this.$handleWaterMovement();
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote)
            $this.$fire = 0;
        else {
            $var4 = $this.$fire;
            if ($var4 > 0) {
                if ($this.$isImmuneToFire) {
                    $var4 = $var4 - 4 | 0;
                    $this.$fire = $var4;
                    if ($var4 < 0)
                        $this.$fire = 0;
                } else {
                    if (!($var4 % 20 | 0)) {
                        var$1 = nms_DamageSource_onFire;
                        var$5 = 1.0;
                        $ptr = 6;
                        continue main;
                    }
                    $this.$fire = $this.$fire - 1 | 0;
                }
            }
        }
        $ptr = 3;
        continue main;
    case 2:
        $tmp = $this.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            $ptr = 1;
            continue main;
        }
        var$6 = $this.$posX;
        $var5 = var$6 | 0;
        if (var$6 < $var5)
            $var5 = $var5 - 1 | 0;
        var$6 = $this.$posY - 0.20000000298023224 - $this.$yOffset;
        $var2 = var$6 | 0;
        if (var$6 < $var2)
            $var2 = $var2 - 1 | 0;
        var$6 = $this.$posZ;
        $var6 = var$6 | 0;
        if (var$6 < $var6)
            $var6 = $var6 - 1 | 0;
        var$1 = $this.$worldObj;
        $ptr = 8;
        continue main;
    case 3:
        $tmp = $this.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            if (!$this.$isImmuneToFire) {
                var$1 = nms_DamageSource_lava;
                var$5 = 4.0;
                $ptr = 5;
                continue main;
            }
            $this.$fallDistance = $this.$fallDistance * 0.5;
        }
        if ($this.$posY >= (-64.0)) {
            if (!$this.$worldObj.$isRemote)
                nms_Entity_setFlag($this, 0, $this.$fire <= 0 ? 0 : 1);
            $this.$firstUpdate = 0;
            return;
        }
        $ptr = 4;
    case 4:
        $this.$kill();
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote)
            nms_Entity_setFlag($this, 0, $this.$fire <= 0 ? 0 : 1);
        $this.$firstUpdate = 0;
        return;
    case 5:
        $this.$attackEntityFrom(var$1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setFire($this, 15);
        $this.$fallDistance = $this.$fallDistance * 0.5;
        if ($this.$posY >= (-64.0)) {
            if (!$this.$worldObj.$isRemote)
                nms_Entity_setFlag($this, 0, $this.$fire <= 0 ? 0 : 1);
            $this.$firstUpdate = 0;
            return;
        }
        $ptr = 4;
        continue main;
    case 6:
        $this.$attackEntityFrom(var$1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$fire = $this.$fire - 1 | 0;
        $ptr = 3;
        continue main;
    case 7:
        $this.$travelToDimension($var3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$inPortal = 0;
        $var4 = $this.$timeUntilPortal;
        if ($var4 > 0)
            $this.$timeUntilPortal = $var4 - 1 | 0;
        if (!nms_Entity_getFlag($this, 3)) {
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$1, $var5, $var2, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 <= 0) {
            $ptr = 1;
            continue main;
        }
        var$1 = $this.$worldObj;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockMetadata(var$1, $var5, $var2, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1250));
        jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $var4, 10);
        $var3 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, $var3, $var3 + 1 | 0);
        var$9.$buffer.data[$var3] = 95;
        jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $var2, 10);
        var$10 = new jl_String;
        var$11 = var$9.$buffer;
        var$12 = var$11.data;
        $var2 = var$9.$length0;
        $var3 = var$12.length;
        if ($var2 >= 0 && $var2 <= ($var3 - 0 | 0)) {
            var$10.$nativeString = $rt_charArrayToString(var$11.data, 0, $var2);
            var$9 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$13;
            var$9.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var2 = $rt_compare($var4, var$1.$worldAccesses.$size0);
                if ($var2 >= 0) {
                    $ptr = 1;
                    continue main;
                }
                if ($var4 < 0)
                    break;
                if ($var2 >= 0)
                    break;
                $var4 = $var4 + 1 | 0;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var2, $var4, $var3, var$5, var$6, $var5, $var6, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_Entity_getMaxInPortalTime = $this => {
    return 0;
},
nms_Entity_setOnFireFromLava = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isImmuneToFire)
            return;
        var$1 = nms_DamageSource_lava;
        var$2 = 4.0;
        $ptr = 1;
    case 1:
        $this.$attackEntityFrom(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setFire($this, 15);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_Entity_setFire = ($this, $par1) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8;
    $var2 = $par1 * 20 | 0;
    nms_Enchantment_$callClinit();
    $par1 = nms_Enchantment_fireProtection.$effectId;
    var$3 = $this.$getLastActiveItems();
    nms_EnchantmentHelper_$callClinit();
    if (var$3 === null)
        var$4 = 0;
    else {
        var$3 = var$3.data;
        var$4 = 0;
        var$5 = var$3.length;
        var$6 = 0;
        while (var$6 < var$5) {
            var$7 = nms_EnchantmentHelper_getEnchantmentLevel($par1, var$3[var$6]);
            if (var$7 > var$4)
                var$4 = var$7;
            var$6 = var$6 + 1 | 0;
        }
    }
    if (var$4 > 0) {
        var$8 = $var2 * var$4 * 0.15000000596046448;
        $par1 = var$8 | 0;
        if (var$8 < $par1)
            $par1 = $par1 - 1 | 0;
        $var2 = $var2 - $par1 | 0;
    }
    if ($this.$fire < $var2)
        $this.$fire = $var2;
},
nms_Entity_extinguish = $this => {
    $this.$fire = 0;
},
nms_Entity_kill = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_Entity_isOffsetPositionInLiquid = ($this, $par1, $par3, $par5) => {
    let $var8, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var8 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $this.$boundingBox0;
        var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = $var8.$minX0 + $par1;
        var$7 = $var8.$minY0 + $par3;
        var$8 = $var8.$minZ0 + $par5;
        var$9 = $var8.$maxX0 + $par1;
        $par3 = $var8.$maxY + $par3;
        $par1 = $var8.$maxZ0 + $par5;
        var$10 = var$5.$nextPoolIndex;
        $var8 = var$5.$listAABB;
        var$11 = $var8.$size0;
        var$12 = $rt_compare(var$10, var$11);
        if (var$12 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$6;
            var$13.$minY0 = var$7;
            var$13.$minZ0 = var$8;
            var$13.$maxX0 = var$9;
            var$13.$maxY = $par3;
            var$13.$maxZ0 = $par1;
            ju_ArrayList_ensureCapacity($var8, var$11 + 1 | 0);
            var$14 = $var8.$array.data;
            var$12 = $var8.$size0;
            $var8.$size0 = var$12 + 1 | 0;
            var$14[var$12] = var$13;
            $var8.$modCount = $var8.$modCount + 1 | 0;
        } else if (var$10 >= 0 && var$12 < 0) {
            var$13 = $var8.$array.data[var$10];
            var$13.$minX0 = var$6;
            var$13.$minY0 = var$7;
            var$13.$minZ0 = var$8;
            var$13.$maxX0 = var$9;
            var$13.$maxY = $par3;
            var$13.$maxZ0 = $par1;
        } else {
            $var8 = new jl_IndexOutOfBoundsException;
            $var8.$suppressionEnabled = 1;
            $var8.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var8);
            $rt_throw($var8);
        }
        var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
        $var8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getCollidingBoundingBoxes($var8, $this, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!($var8.$size0 ? 0 : 1))
            return 0;
        $var8 = $this.$worldObj;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isAnyLiquid($var8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        return var$10 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, $var8, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_Entity_moveEntity = ($this, $par1, $par3, $par5) => {
    let var$4, $var37, $var25, $var27, $var7, $var9, $var11, var$11, var$12, var$13, var$14, $var32, $var36, $var22, var$18, var$19, $var20, var$21, var$22, $var21, $var23, var$25, $var35, $var30, var$28, var$29, $var38, $var31, $var39, $var42, var$34, var$35, var$36, var$37, $var33, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var33 = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();$var42 = $thread.pop();$var39 = $thread.pop();$var31 = $thread.pop();$var38 = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();$var30 = $thread.pop();$var35 = $thread.pop();var$25 = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var22
        = $thread.pop();$var36 = $thread.pop();$var32 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var27 = $thread.pop();$var25 = $thread.pop();$var37 = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$noClip) {
            var$4 = $this.$boundingBox0;
            $var37 = var$4.$minX0 + $par1;
            var$4.$minX0 = $var37;
            $var25 = var$4.$minY0 + $par3;
            var$4.$minY0 = $var25;
            $var27 = var$4.$minZ0 + $par5;
            var$4.$minZ0 = $var27;
            $par1 = var$4.$maxX0 + $par1;
            var$4.$maxX0 = $par1;
            var$4.$maxY = var$4.$maxY + $par3;
            $par3 = var$4.$maxZ0 + $par5;
            var$4.$maxZ0 = $par3;
            $this.$posX = ($var37 + $par1) / 2.0;
            $this.$posY = $var25 + $this.$yOffset - $this.$ySize;
            $this.$posZ = ($var27 + $par3) / 2.0;
            return;
        }
        $this.$ySize = $this.$ySize * 0.4000000059604645;
        $var7 = $this.$posX;
        $var9 = $this.$posY;
        $var11 = $this.$posZ;
        if ($this.$isInWeb) {
            $this.$isInWeb = 0;
            $par1 = $par1 * 0.25;
            $par3 = $par3 * 0.05000000074505806;
            $par5 = $par5 * 0.25;
            $this.$motionX = 0.0;
            $this.$motionY = 0.0;
            $this.$motionZ = 0.0;
        }
        var$4 = $this.$boundingBox0;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var37 = var$4.$minX0;
        $var25 = var$4.$minY0;
        $var27 = var$4.$minZ0;
        var$12 = var$4.$maxX0;
        var$13 = var$4.$maxY;
        var$14 = var$4.$maxZ0;
        $var32 = var$11.$nextPoolIndex;
        var$4 = var$11.$listAABB;
        $var36 = var$4.$size0;
        $var22 = $rt_compare($var32, $var36);
        if ($var22 >= 0) {
            var$18 = new nms_AxisAlignedBB;
            var$18.$minX0 = $var37;
            var$18.$minY0 = $var25;
            var$18.$minZ0 = $var27;
            var$18.$maxX0 = var$12;
            var$18.$maxY = var$13;
            var$18.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
            var$19 = var$4.$array.data;
            $var22 = var$4.$size0;
            var$4.$size0 = $var22 + 1 | 0;
            var$19[$var22] = var$18;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        } else if ($var32 >= 0 && $var22 < 0) {
            var$18 = var$4.$array.data[$var32];
            var$18.$minX0 = $var37;
            var$18.$minY0 = $var25;
            var$18.$minZ0 = $var27;
            var$18.$maxX0 = var$12;
            var$18.$maxY = var$13;
            var$18.$maxZ0 = var$14;
        } else {
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$4);
            $rt_throw(var$4);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        $var20 = $this.$onGround && nms_Entity_getFlag($this, 1) && $this instanceof nms_EntityPlayer ? 1 : 0;
        if (!$var20) {
            var$21 = $par1;
            var$22 = $par5;
        } else {
            $var21 = 0.05;
            var$21 = $par1;
            $var23 = $rt_compare($par1, 0.0);
            if ($var23) {
                var$25 = $this.$worldObj;
                var$11 = $this.$boundingBox0;
                $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var37 = var$11.$minX0 + $par1;
                $var25 = var$11.$minY0 + (-1.0);
                $var27 = var$11.$minZ0 + 0.0;
                var$12 = var$11.$maxX0 + $par1;
                var$13 = var$11.$maxY + (-1.0);
                var$14 = var$11.$maxZ0 + 0.0;
                $var32 = $var35.$nextPoolIndex;
                var$4 = $var35.$listAABB;
                $var36 = var$4.$size0;
                $var22 = $rt_compare($var32, $var36);
                if ($var22 >= 0) {
                    var$11 = new nms_AxisAlignedBB;
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
                    var$19 = var$4.$array.data;
                    $var22 = var$4.$size0;
                    var$4.$size0 = $var22 + 1 | 0;
                    var$19[$var22] = var$11;
                    var$4.$modCount = var$4.$modCount + 1 | 0;
                } else if ($var32 >= 0 && $var22 < 0) {
                    var$11 = var$4.$array.data[$var32];
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                } else {
                    var$4 = new jl_IndexOutOfBoundsException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    $rt_throw(var$4);
                }
                $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                $ptr = 2;
                continue main;
            }
            var$22 = $par5;
            $var23 = $rt_compare($par5, 0.0);
            if ($var23) {
                var$25 = $this.$worldObj;
                var$11 = $this.$boundingBox0;
                $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var37 = var$11.$minX0 + 0.0;
                $var25 = var$11.$minY0 + (-1.0);
                $var27 = var$11.$minZ0 + $par5;
                var$12 = var$11.$maxX0 + 0.0;
                var$13 = var$11.$maxY + (-1.0);
                var$14 = var$11.$maxZ0 + $par5;
                $var32 = $var35.$nextPoolIndex;
                var$4 = $var35.$listAABB;
                $var36 = var$4.$size0;
                $var22 = $rt_compare($var32, $var36);
                if ($var22 >= 0) {
                    var$11 = new nms_AxisAlignedBB;
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
                    var$19 = var$4.$array.data;
                    $var22 = var$4.$size0;
                    var$4.$size0 = $var22 + 1 | 0;
                    var$19[$var22] = var$11;
                    var$4.$modCount = var$4.$modCount + 1 | 0;
                } else if ($var32 >= 0 && $var22 < 0) {
                    var$11 = var$4.$array.data[$var32];
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                } else {
                    var$4 = new jl_IndexOutOfBoundsException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    $rt_throw(var$4);
                }
                $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                $ptr = 3;
                continue main;
            }
            $var36 = $rt_compare($par1, 0.0);
            if ($var36) {
                $var23 = $rt_compare($par5, 0.0);
                if ($var23) {
                    var$25 = $this.$worldObj;
                    var$11 = $this.$boundingBox0;
                    $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var25 = var$11.$minX0 + $par1;
                    $var27 = var$11.$minY0 + (-1.0);
                    var$12 = var$11.$minZ0 + $par5;
                    var$13 = var$11.$maxX0 + $par1;
                    $var37 = var$11.$maxY + (-1.0);
                    var$14 = var$11.$maxZ0 + $par5;
                    $var30 = $var35.$nextPoolIndex;
                    var$4 = $var35.$listAABB;
                    $var22 = var$4.$size0;
                    $var32 = $rt_compare($var30, $var22);
                    if ($var32 >= 0) {
                        var$11 = new nms_AxisAlignedBB;
                        var$11.$minX0 = $var25;
                        var$11.$minY0 = $var27;
                        var$11.$minZ0 = var$12;
                        var$11.$maxX0 = var$13;
                        var$11.$maxY = $var37;
                        var$11.$maxZ0 = var$14;
                        ju_ArrayList_ensureCapacity(var$4, $var22 + 1 | 0);
                        var$19 = var$4.$array.data;
                        $var22 = var$4.$size0;
                        var$4.$size0 = $var22 + 1 | 0;
                        var$19[$var22] = var$11;
                        var$4.$modCount = var$4.$modCount + 1 | 0;
                    } else if ($var30 >= 0 && $var32 < 0) {
                        var$11 = var$4.$array.data[$var30];
                        var$11.$minX0 = $var25;
                        var$11.$minY0 = $var27;
                        var$11.$minZ0 = var$12;
                        var$11.$maxX0 = var$13;
                        var$11.$maxY = $var37;
                        var$11.$maxZ0 = var$14;
                    } else {
                        var$4 = new jl_IndexOutOfBoundsException;
                        var$4.$suppressionEnabled = 1;
                        var$4.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$4);
                        $rt_throw(var$4);
                    }
                    $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                    $ptr = 4;
                    continue main;
                }
            }
        }
        var$4 = $this.$worldObj;
        var$11 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $par1, $par3, $par5);
        $ptr = 1;
    case 1:
        $tmp = nms_World_getCollidingBoundingBoxes(var$4, $this, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var35 = $tmp;
        $var22 = 0;
        $var21 = $par3;
        while (true) {
            $var32 = $rt_compare($var22, $var35.$size0);
            if ($var32 >= 0) {
                var$4 = $this.$boundingBox0;
                var$4.$minX0 = var$4.$minX0 + 0.0;
                var$4.$minY0 = var$4.$minY0 + $var21;
                var$4.$minZ0 = var$4.$minZ0 + 0.0;
                var$4.$maxX0 = var$4.$maxX0 + 0.0;
                var$4.$maxY = var$4.$maxY + $var21;
                var$4.$maxZ0 = var$4.$maxZ0 + 0.0;
                if (!$this.$field_70135_K && $par3 !== $var21) {
                    $par5 = 0.0;
                    $var21 = 0.0;
                    $par1 = 0.0;
                }
                a: {
                    b: {
                        if (!$this.$onGround) {
                            if ($par3 === $var21)
                                break b;
                            if ($par3 >= 0.0)
                                break b;
                        }
                        $var36 = 1;
                        break a;
                    }
                    $var36 = 0;
                }
                $var23 = 0;
                while (true) {
                    $var32 = $rt_compare($var23, $var35.$size0);
                    if ($var32 >= 0) {
                        var$4 = $this.$boundingBox0;
                        var$4.$minX0 = var$4.$minX0 + $par1;
                        var$4.$minY0 = var$4.$minY0 + 0.0;
                        var$4.$minZ0 = var$4.$minZ0 + 0.0;
                        var$4.$maxX0 = var$4.$maxX0 + $par1;
                        var$4.$maxY = var$4.$maxY + 0.0;
                        var$4.$maxZ0 = var$4.$maxZ0 + 0.0;
                        if (!$this.$field_70135_K && var$21 !== $par1) {
                            $par5 = 0.0;
                            $var21 = 0.0;
                            $par1 = 0.0;
                        }
                        $var22 = 0;
                        while (true) {
                            $var32 = $rt_compare($var22, $var35.$size0);
                            if ($var32 >= 0) {
                                var$4 = $this.$boundingBox0;
                                var$4.$minX0 = var$4.$minX0 + 0.0;
                                var$4.$minY0 = var$4.$minY0 + 0.0;
                                var$4.$minZ0 = var$4.$minZ0 + $par5;
                                var$4.$maxX0 = var$4.$maxX0 + 0.0;
                                var$4.$maxY = var$4.$maxY + 0.0;
                                var$4.$maxZ0 = var$4.$maxZ0 + $par5;
                                if (!$this.$field_70135_K && var$22 !== $par5) {
                                    $par5 = 0.0;
                                    $var21 = 0.0;
                                    $par1 = 0.0;
                                }
                                c: {
                                    var$28 = $this.$stepHeight;
                                    if (var$28 > 0.0 && $var36 && !(!$var20 && $this.$ySize >= 0.05000000074505806)) {
                                        if (var$21 !== $par1)
                                            break c;
                                        if (var$22 !== $par5)
                                            break c;
                                    }
                                    var$4 = $this.$boundingBox0;
                                    $this.$posX = (var$4.$minX0 + var$4.$maxX0) / 2.0;
                                    $this.$posY = var$4.$minY0 + $this.$yOffset - $this.$ySize;
                                    $this.$posZ = (var$4.$minZ0 + var$4.$maxZ0) / 2.0;
                                    $var32 = $rt_compare(var$21, $par1);
                                    $var22 = !$var32 && var$22 === $par5 ? 0 : 1;
                                    $this.$isCollidedHorizontally = $var22;
                                    $var36 = $rt_compare($par3, $var21);
                                    $var23 = !$var36 ? 0 : 1;
                                    $this.$isCollidedVertically = $var23;
                                    $var30 = $var36 && $par3 < 0.0 ? 1 : 0;
                                    $this.$onGround = $var30;
                                    $this.$isCollided = !$var22 && !$var23 ? 0 : 1;
                                    $ptr = 6;
                                    continue main;
                                }
                                var$29 = var$28;
                                var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                                $var37 = var$4.$minX0;
                                $var25 = var$4.$minY0;
                                $var27 = var$4.$minZ0;
                                var$12 = var$4.$maxX0;
                                var$13 = var$4.$maxY;
                                var$14 = var$4.$maxZ0;
                                $var32 = var$11.$nextPoolIndex;
                                var$4 = var$11.$listAABB;
                                $var36 = var$4.$size0;
                                $var22 = $rt_compare($var32, $var36);
                                if ($var22 >= 0) {
                                    $var35 = new nms_AxisAlignedBB;
                                    $var35.$minX0 = $var37;
                                    $var35.$minY0 = $var25;
                                    $var35.$minZ0 = $var27;
                                    $var35.$maxX0 = var$12;
                                    $var35.$maxY = var$13;
                                    $var35.$maxZ0 = var$14;
                                    ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
                                    var$19 = var$4.$array.data;
                                    $var22 = var$4.$size0;
                                    var$4.$size0 = $var22 + 1 | 0;
                                    var$19[$var22] = $var35;
                                    var$4.$modCount = var$4.$modCount + 1 | 0;
                                } else if ($var32 >= 0 && $var22 < 0) {
                                    $var35 = var$4.$array.data[$var32];
                                    $var35.$minX0 = $var37;
                                    $var35.$minY0 = $var25;
                                    $var35.$minZ0 = $var27;
                                    $var35.$maxX0 = var$12;
                                    $var35.$maxY = var$13;
                                    $var35.$maxZ0 = var$14;
                                } else {
                                    var$4 = new jl_IndexOutOfBoundsException;
                                    var$4.$suppressionEnabled = 1;
                                    var$4.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace(var$4);
                                    $rt_throw(var$4);
                                }
                                var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
                                var$4 = $this.$boundingBox0;
                                var$4.$minX0 = var$18.$minX0;
                                var$4.$minY0 = var$18.$minY0;
                                var$4.$minZ0 = var$18.$minZ0;
                                var$4.$maxX0 = var$18.$maxX0;
                                var$4.$maxY = var$18.$maxY;
                                var$4.$maxZ0 = var$18.$maxZ0;
                                var$11 = $this.$worldObj;
                                var$4 = nms_AxisAlignedBB_addCoord(var$4, var$21, var$29, var$22);
                                $ptr = 5;
                                continue main;
                            }
                            if ($var22 < 0)
                                break;
                            if ($var32 >= 0)
                                break;
                            $par5 = nms_AxisAlignedBB_calculateZOffset($var35.$array.data[$var22], $this.$boundingBox0, $par5);
                            $var22 = $var22 + 1 | 0;
                        }
                        var$4 = new jl_IndexOutOfBoundsException;
                        var$4.$suppressionEnabled = 1;
                        var$4.$writableStackTrace = 1;
                        $rt_throw(var$4);
                    }
                    if ($var23 < 0)
                        break;
                    if ($var32 >= 0)
                        break;
                    $par1 = nms_AxisAlignedBB_calculateXOffset($var35.$array.data[$var23], $this.$boundingBox0, $par1);
                    $var23 = $var23 + 1 | 0;
                }
                var$4 = new jl_IndexOutOfBoundsException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            if ($var22 < 0)
                break;
            if ($var32 >= 0)
                break;
            $var21 = nms_AxisAlignedBB_calculateYOffset($var35.$array.data[$var22], $this.$boundingBox0, $var21);
            $var22 = $var22 + 1 | 0;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes(var$25, $this, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!(var$4.$size0 ? 0 : 1))
            var$22 = $par5;
        else {
            $par1 = $par1 < $var21 && $par1 >= (-0.05) ? 0.0 : $var23 <= 0 ? $par1 + $var21 : $par1 - $var21;
            var$21 = $par1;
            $var23 = $rt_compare($par1, 0.0);
            if ($var23) {
                var$25 = $this.$worldObj;
                var$11 = $this.$boundingBox0;
                $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var37 = var$11.$minX0 + $par1;
                $var25 = var$11.$minY0 + (-1.0);
                $var27 = var$11.$minZ0 + 0.0;
                var$12 = var$11.$maxX0 + $par1;
                var$13 = var$11.$maxY + (-1.0);
                var$14 = var$11.$maxZ0 + 0.0;
                $var32 = $var35.$nextPoolIndex;
                var$4 = $var35.$listAABB;
                $var36 = var$4.$size0;
                $var22 = $rt_compare($var32, $var36);
                if ($var22 >= 0) {
                    var$11 = new nms_AxisAlignedBB;
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
                    var$19 = var$4.$array.data;
                    $var22 = var$4.$size0;
                    var$4.$size0 = $var22 + 1 | 0;
                    var$19[$var22] = var$11;
                    var$4.$modCount = var$4.$modCount + 1 | 0;
                } else if ($var32 >= 0 && $var22 < 0) {
                    var$11 = var$4.$array.data[$var32];
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                } else {
                    var$4 = new jl_IndexOutOfBoundsException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    $rt_throw(var$4);
                }
                $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                continue main;
            }
            var$22 = $par5;
        }
        $var23 = $rt_compare($par5, 0.0);
        if ($var23) {
            var$25 = $this.$worldObj;
            var$11 = $this.$boundingBox0;
            $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var37 = var$11.$minX0 + 0.0;
            $var25 = var$11.$minY0 + (-1.0);
            $var27 = var$11.$minZ0 + $par5;
            var$12 = var$11.$maxX0 + 0.0;
            var$13 = var$11.$maxY + (-1.0);
            var$14 = var$11.$maxZ0 + $par5;
            $var32 = $var35.$nextPoolIndex;
            var$4 = $var35.$listAABB;
            $var36 = var$4.$size0;
            $var22 = $rt_compare($var32, $var36);
            if ($var22 >= 0) {
                var$11 = new nms_AxisAlignedBB;
                var$11.$minX0 = $var37;
                var$11.$minY0 = $var25;
                var$11.$minZ0 = $var27;
                var$11.$maxX0 = var$12;
                var$11.$maxY = var$13;
                var$11.$maxZ0 = var$14;
                ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
                var$19 = var$4.$array.data;
                $var22 = var$4.$size0;
                var$4.$size0 = $var22 + 1 | 0;
                var$19[$var22] = var$11;
                var$4.$modCount = var$4.$modCount + 1 | 0;
            } else if ($var32 >= 0 && $var22 < 0) {
                var$11 = var$4.$array.data[$var32];
                var$11.$minX0 = $var37;
                var$11.$minY0 = $var25;
                var$11.$minZ0 = $var27;
                var$11.$maxX0 = var$12;
                var$11.$maxY = var$13;
                var$11.$maxZ0 = var$14;
            } else {
                var$4 = new jl_IndexOutOfBoundsException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$4);
                $rt_throw(var$4);
            }
            $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
            $ptr = 3;
            continue main;
        }
        $var36 = $rt_compare($par1, 0.0);
        if ($var36) {
            $var23 = $rt_compare($par5, 0.0);
            if ($var23) {
                var$25 = $this.$worldObj;
                var$11 = $this.$boundingBox0;
                $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var25 = var$11.$minX0 + $par1;
                $var27 = var$11.$minY0 + (-1.0);
                var$12 = var$11.$minZ0 + $par5;
                var$13 = var$11.$maxX0 + $par1;
                $var37 = var$11.$maxY + (-1.0);
                var$14 = var$11.$maxZ0 + $par5;
                $var30 = $var35.$nextPoolIndex;
                var$4 = $var35.$listAABB;
                $var22 = var$4.$size0;
                $var32 = $rt_compare($var30, $var22);
                if ($var32 >= 0) {
                    var$11 = new nms_AxisAlignedBB;
                    var$11.$minX0 = $var25;
                    var$11.$minY0 = $var27;
                    var$11.$minZ0 = var$12;
                    var$11.$maxX0 = var$13;
                    var$11.$maxY = $var37;
                    var$11.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity(var$4, $var22 + 1 | 0);
                    var$19 = var$4.$array.data;
                    $var22 = var$4.$size0;
                    var$4.$size0 = $var22 + 1 | 0;
                    var$19[$var22] = var$11;
                    var$4.$modCount = var$4.$modCount + 1 | 0;
                } else if ($var30 >= 0 && $var32 < 0) {
                    var$11 = var$4.$array.data[$var30];
                    var$11.$minX0 = $var25;
                    var$11.$minY0 = $var27;
                    var$11.$minZ0 = var$12;
                    var$11.$maxX0 = var$13;
                    var$11.$maxY = $var37;
                    var$11.$maxZ0 = var$14;
                } else {
                    var$4 = new jl_IndexOutOfBoundsException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    $rt_throw(var$4);
                }
                $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                $ptr = 4;
                continue main;
            }
        }
        var$4 = $this.$worldObj;
        var$11 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $par1, $par3, $par5);
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getCollidingBoundingBoxes(var$25, $this, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4.$size0 ? 0 : 1) {
            $par5 = $par5 < $var21 && $par5 >= (-0.05) ? 0.0 : $var23 <= 0 ? $par5 + $var21 : $par5 - $var21;
            var$22 = $par5;
            $var23 = $rt_compare($par5, 0.0);
            if ($var23) {
                var$25 = $this.$worldObj;
                var$11 = $this.$boundingBox0;
                $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var37 = var$11.$minX0 + 0.0;
                $var25 = var$11.$minY0 + (-1.0);
                $var27 = var$11.$minZ0 + $par5;
                var$12 = var$11.$maxX0 + 0.0;
                var$13 = var$11.$maxY + (-1.0);
                var$14 = var$11.$maxZ0 + $par5;
                $var32 = $var35.$nextPoolIndex;
                var$4 = $var35.$listAABB;
                $var36 = var$4.$size0;
                $var22 = $rt_compare($var32, $var36);
                if ($var22 >= 0) {
                    var$11 = new nms_AxisAlignedBB;
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity(var$4, $var36 + 1 | 0);
                    var$19 = var$4.$array.data;
                    $var22 = var$4.$size0;
                    var$4.$size0 = $var22 + 1 | 0;
                    var$19[$var22] = var$11;
                    var$4.$modCount = var$4.$modCount + 1 | 0;
                } else if ($var32 >= 0 && $var22 < 0) {
                    var$11 = var$4.$array.data[$var32];
                    var$11.$minX0 = $var37;
                    var$11.$minY0 = $var25;
                    var$11.$minZ0 = $var27;
                    var$11.$maxX0 = var$12;
                    var$11.$maxY = var$13;
                    var$11.$maxZ0 = var$14;
                } else {
                    var$4 = new jl_IndexOutOfBoundsException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    $rt_throw(var$4);
                }
                $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                continue main;
            }
        }
        $var36 = $rt_compare($par1, 0.0);
        if ($var36) {
            $var23 = $rt_compare($par5, 0.0);
            if ($var23) {
                var$25 = $this.$worldObj;
                var$11 = $this.$boundingBox0;
                $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var25 = var$11.$minX0 + $par1;
                $var27 = var$11.$minY0 + (-1.0);
                var$12 = var$11.$minZ0 + $par5;
                var$13 = var$11.$maxX0 + $par1;
                $var37 = var$11.$maxY + (-1.0);
                var$14 = var$11.$maxZ0 + $par5;
                $var30 = $var35.$nextPoolIndex;
                var$4 = $var35.$listAABB;
                $var22 = var$4.$size0;
                $var32 = $rt_compare($var30, $var22);
                if ($var32 >= 0) {
                    var$11 = new nms_AxisAlignedBB;
                    var$11.$minX0 = $var25;
                    var$11.$minY0 = $var27;
                    var$11.$minZ0 = var$12;
                    var$11.$maxX0 = var$13;
                    var$11.$maxY = $var37;
                    var$11.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity(var$4, $var22 + 1 | 0);
                    var$19 = var$4.$array.data;
                    $var22 = var$4.$size0;
                    var$4.$size0 = $var22 + 1 | 0;
                    var$19[$var22] = var$11;
                    var$4.$modCount = var$4.$modCount + 1 | 0;
                } else if ($var30 >= 0 && $var32 < 0) {
                    var$11 = var$4.$array.data[$var30];
                    var$11.$minX0 = $var25;
                    var$11.$minY0 = $var27;
                    var$11.$minZ0 = var$12;
                    var$11.$maxX0 = var$13;
                    var$11.$maxY = $var37;
                    var$11.$maxZ0 = var$14;
                } else {
                    var$4 = new jl_IndexOutOfBoundsException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$4);
                    $rt_throw(var$4);
                }
                $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                $ptr = 4;
                continue main;
            }
        }
        var$4 = $this.$worldObj;
        var$11 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $par1, $par3, $par5);
        $ptr = 1;
        continue main;
    case 4:
        $tmp = nms_World_getCollidingBoundingBoxes(var$25, $this, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4.$size0 ? 0 : 1) {
            $par1 = $par1 < $var21 && $par1 >= (-0.05) ? 0.0 : $var36 <= 0 ? $par1 + $var21 : $par1 - $var21;
            $par5 = $par5 < $var21 && $par5 >= (-0.05) ? 0.0 : $var23 <= 0 ? $par5 + $var21 : $par5 - $var21;
            var$21 = $par1;
            var$22 = $par5;
            $var36 = $rt_compare($par1, 0.0);
            if ($var36) {
                $var23 = $rt_compare($par5, 0.0);
                if ($var23) {
                    var$25 = $this.$worldObj;
                    var$11 = $this.$boundingBox0;
                    $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var25 = var$11.$minX0 + $par1;
                    $var27 = var$11.$minY0 + (-1.0);
                    var$12 = var$11.$minZ0 + $par5;
                    var$13 = var$11.$maxX0 + $par1;
                    $var37 = var$11.$maxY + (-1.0);
                    var$14 = var$11.$maxZ0 + $par5;
                    $var30 = $var35.$nextPoolIndex;
                    var$4 = $var35.$listAABB;
                    $var22 = var$4.$size0;
                    $var32 = $rt_compare($var30, $var22);
                    if ($var32 >= 0) {
                        var$11 = new nms_AxisAlignedBB;
                        var$11.$minX0 = $var25;
                        var$11.$minY0 = $var27;
                        var$11.$minZ0 = var$12;
                        var$11.$maxX0 = var$13;
                        var$11.$maxY = $var37;
                        var$11.$maxZ0 = var$14;
                        ju_ArrayList_ensureCapacity(var$4, $var22 + 1 | 0);
                        var$19 = var$4.$array.data;
                        $var22 = var$4.$size0;
                        var$4.$size0 = $var22 + 1 | 0;
                        var$19[$var22] = var$11;
                        var$4.$modCount = var$4.$modCount + 1 | 0;
                    } else if ($var30 >= 0 && $var32 < 0) {
                        var$11 = var$4.$array.data[$var30];
                        var$11.$minX0 = $var25;
                        var$11.$minY0 = $var27;
                        var$11.$minZ0 = var$12;
                        var$11.$maxX0 = var$13;
                        var$11.$maxY = $var37;
                        var$11.$maxZ0 = var$14;
                    } else {
                        var$4 = new jl_IndexOutOfBoundsException;
                        var$4.$suppressionEnabled = 1;
                        var$4.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$4);
                        $rt_throw(var$4);
                    }
                    $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                    continue main;
                }
            }
        }
        var$4 = $this.$worldObj;
        var$11 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $par1, $par3, $par5);
        $ptr = 1;
        continue main;
    case 5:
        $tmp = nms_World_getCollidingBoundingBoxes(var$11, $this, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        $var30 = 0;
        while (true) {
            $var32 = $rt_compare($var30, var$18.$size0);
            if ($var32 >= 0) {
                var$4 = $this.$boundingBox0;
                var$4.$minX0 = var$4.$minX0 + 0.0;
                var$4.$minY0 = var$4.$minY0 + var$29;
                var$4.$minZ0 = var$4.$minZ0 + 0.0;
                var$4.$maxX0 = var$4.$maxX0 + 0.0;
                var$4.$maxY = var$4.$maxY + var$29;
                var$4.$maxZ0 = var$4.$maxZ0 + 0.0;
                if ($this.$field_70135_K) {
                    var$12 = var$22;
                    var$13 = var$21;
                } else if ($par3 === var$29) {
                    var$12 = var$22;
                    var$13 = var$21;
                } else {
                    var$12 = 0.0;
                    var$29 = 0.0;
                    var$13 = 0.0;
                }
                $var22 = 0;
                while (true) {
                    $var32 = $rt_compare($var22, var$18.$size0);
                    if ($var32 >= 0) {
                        var$4 = $this.$boundingBox0;
                        var$4.$minX0 = var$4.$minX0 + var$13;
                        var$4.$minY0 = var$4.$minY0 + 0.0;
                        var$4.$minZ0 = var$4.$minZ0 + 0.0;
                        var$4.$maxX0 = var$4.$maxX0 + var$13;
                        var$4.$maxY = var$4.$maxY + 0.0;
                        var$4.$maxZ0 = var$4.$maxZ0 + 0.0;
                        if (!$this.$field_70135_K && var$21 !== var$13) {
                            var$12 = 0.0;
                            var$29 = 0.0;
                            var$13 = 0.0;
                        }
                        $var22 = 0;
                        while (true) {
                            $var32 = $rt_compare($var22, var$18.$size0);
                            if ($var32 >= 0) {
                                var$4 = $this.$boundingBox0;
                                var$4.$minX0 = var$4.$minX0 + 0.0;
                                var$4.$minY0 = var$4.$minY0 + 0.0;
                                var$4.$minZ0 = var$4.$minZ0 + var$12;
                                var$4.$maxX0 = var$4.$maxX0 + 0.0;
                                var$4.$maxY = var$4.$maxY + 0.0;
                                var$4.$maxZ0 = var$4.$maxZ0 + var$12;
                                $var22 = $this.$field_70135_K;
                                if (!$var22 && var$22 !== var$12) {
                                    var$12 = 0.0;
                                    var$29 = 0.0;
                                    var$13 = 0.0;
                                }
                                d: {
                                    if (!$var22 && $par3 !== var$29) {
                                        var$12 = 0.0;
                                        var$14 = 0.0;
                                        var$13 = 0.0;
                                    } else {
                                        var$14 =  -$this.$stepHeight;
                                        $var22 = 0;
                                        while (true) {
                                            $var32 = $rt_compare($var22, var$18.$size0);
                                            if ($var32 >= 0) {
                                                var$4 = $this.$boundingBox0;
                                                var$4.$minX0 = var$4.$minX0 + 0.0;
                                                var$4.$minY0 = var$4.$minY0 + var$14;
                                                var$4.$minZ0 = var$4.$minZ0 + 0.0;
                                                var$4.$maxX0 = var$4.$maxX0 + 0.0;
                                                var$4.$maxY = var$4.$maxY + var$14;
                                                var$4.$maxZ0 = var$4.$maxZ0 + 0.0;
                                                break d;
                                            }
                                            if ($var22 < 0)
                                                break;
                                            if ($var32 >= 0)
                                                break;
                                            var$14 = nms_AxisAlignedBB_calculateYOffset(var$18.$array.data[$var22], $this.$boundingBox0, var$14);
                                            $var22 = $var22 + 1 | 0;
                                        }
                                        var$4 = new jl_IndexOutOfBoundsException;
                                        var$4.$suppressionEnabled = 1;
                                        var$4.$writableStackTrace = 1;
                                        $rt_throw(var$4);
                                    }
                                }
                                if ($par1 * $par1 + $par5 * $par5 < var$13 * var$13 + var$12 * var$12) {
                                    $par1 = var$13;
                                    $var21 = var$14;
                                    $par5 = var$12;
                                } else {
                                    var$4 = $this.$boundingBox0;
                                    var$4.$minX0 = $var35.$minX0;
                                    var$4.$minY0 = $var35.$minY0;
                                    var$4.$minZ0 = $var35.$minZ0;
                                    var$4.$maxX0 = $var35.$maxX0;
                                    var$4.$maxY = $var35.$maxY;
                                    var$4.$maxZ0 = $var35.$maxZ0;
                                }
                                var$4 = $this.$boundingBox0;
                                $this.$posX = (var$4.$minX0 + var$4.$maxX0) / 2.0;
                                $this.$posY = var$4.$minY0 + $this.$yOffset - $this.$ySize;
                                $this.$posZ = (var$4.$minZ0 + var$4.$maxZ0) / 2.0;
                                $var32 = $rt_compare(var$21, $par1);
                                $var22 = !$var32 && var$22 === $par5 ? 0 : 1;
                                $this.$isCollidedHorizontally = $var22;
                                $var36 = $rt_compare($par3, $var21);
                                $var23 = !$var36 ? 0 : 1;
                                $this.$isCollidedVertically = $var23;
                                $var30 = $var36 && $par3 < 0.0 ? 1 : 0;
                                $this.$onGround = $var30;
                                $this.$isCollided = !$var22 && !$var23 ? 0 : 1;
                                $ptr = 6;
                                continue main;
                            }
                            if ($var22 < 0)
                                break;
                            if ($var32 >= 0)
                                break;
                            var$12 = nms_AxisAlignedBB_calculateZOffset(var$18.$array.data[$var22], $this.$boundingBox0, var$12);
                            $var22 = $var22 + 1 | 0;
                        }
                        var$4 = new jl_IndexOutOfBoundsException;
                        var$4.$suppressionEnabled = 1;
                        var$4.$writableStackTrace = 1;
                        $rt_throw(var$4);
                    }
                    if ($var22 < 0)
                        break;
                    if ($var32 >= 0)
                        break;
                    var$13 = nms_AxisAlignedBB_calculateXOffset(var$18.$array.data[$var22], $this.$boundingBox0, var$13);
                    $var22 = $var22 + 1 | 0;
                }
                var$4 = new jl_IndexOutOfBoundsException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            if ($var30 < 0)
                break;
            if ($var32 >= 0)
                break;
            var$29 = nms_AxisAlignedBB_calculateYOffset(var$18.$array.data[$var30], $this.$boundingBox0, var$29);
            $var30 = $var30 + 1 | 0;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    case 6:
        $this.$updateFallState($var21, $var30);
        if ($rt_suspending()) {
            break main;
        }
        if ($var32)
            $this.$motionX = 0.0;
        if ($var36)
            $this.$motionY = 0.0;
        if (var$22 !== $par5)
            $this.$motionZ = 0.0;
        $var37 = $this.$posX - $var7;
        $var25 = $this.$posY - $var9;
        $var27 = $this.$posZ - $var11;
        if (!($this.$canTriggerWalking() && !$var20 && $this.$ridingEntity === null)) {
            try {
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
            $ptr = 8;
            continue main;
        }
        $par1 = $this.$posX;
        $var38 = $par1 | 0;
        if ($par1 < $var38)
            $var38 = $var38 - 1 | 0;
        $par1 = $this.$posY - 0.20000000298023224 - $this.$yOffset;
        $var30 = $par1 | 0;
        if ($par1 < $var30)
            $var30 = $var30 - 1 | 0;
        $par1 = $this.$posZ;
        $var31 = $par1 | 0;
        if ($par1 < $var31)
            $var31 = $var31 - 1 | 0;
        var$4 = $this.$worldObj;
        $ptr = 12;
        continue main;
    case 7:
        e: {
            try {
                nms_Entity_doBlockCollisions($this);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
        }
        $ptr = 8;
    case 8:
        $tmp = nms_Entity_isWet($this);
        if ($rt_suspending()) {
            break main;
        }
        $var39 = $tmp;
        var$4 = $this.$worldObj;
        var$11 = $this.$boundingBox0;
        $var37 = var$11.$minX0 + 0.001;
        $var25 = var$11.$minY0 + 0.001;
        $var27 = var$11.$minZ0 + 0.001;
        $par5 = var$11.$maxX0 - 0.001;
        $par1 = var$11.$maxY - 0.001;
        $par3 = var$11.$maxZ0 - 0.001;
        var$18 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var32 = var$18.$nextPoolIndex;
        var$11 = var$18.$listAABB;
        $var36 = var$11.$size0;
        $var22 = $rt_compare($var32, $var36);
        if ($var22 >= 0) {
            $var35 = new nms_AxisAlignedBB;
            $var35.$minX0 = $var37;
            $var35.$minY0 = $var25;
            $var35.$minZ0 = $var27;
            $var35.$maxX0 = $par5;
            $var35.$maxY = $par1;
            $var35.$maxZ0 = $par3;
            ju_ArrayList_ensureCapacity(var$11, $var36 + 1 | 0);
            var$19 = var$11.$array.data;
            $var22 = var$11.$size0;
            var$11.$size0 = $var22 + 1 | 0;
            var$19[$var22] = $var35;
            var$11.$modCount = var$11.$modCount + 1 | 0;
        } else if ($var32 >= 0 && $var22 < 0) {
            $var35 = var$11.$array.data[$var32];
            $var35.$minX0 = $var37;
            $var35.$minY0 = $var25;
            $var35.$minZ0 = $var27;
            $var35.$maxX0 = $par5;
            $var35.$maxY = $par1;
            $var35.$maxZ0 = $par3;
        } else {
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$4);
            $rt_throw(var$4);
        }
        var$18.$nextPoolIndex = var$18.$nextPoolIndex + 1 | 0;
        $ptr = 9;
    case 9:
        $tmp = nms_World_isBoundingBoxBurning(var$4, $var35);
        if ($rt_suspending()) {
            break main;
        }
        $var32 = $tmp;
        if ($var32) {
            $var32 = 1;
            $ptr = 10;
            continue main;
        }
        if ($this.$fire <= 0)
            $this.$fire =  -$this.$fireResistance | 0;
        if ($var39 && $this.$fire > 0) {
            var$4 = $rt_s(1251);
            $var42 = 0.699999988079071;
            var$11 = $this.$rand;
            var$34 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$34;
            var$35 = Long_lo(Long_shru(var$34, 24)) / 1.6777216E7;
            var$36 = Long_and(Long_add(Long_mul(var$34, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$36;
            var$37 = 1.600000023841858 + (var$35 - Long_lo(Long_shru(var$36, 24)) / 1.6777216E7) * 0.4000000059604645;
            $ptr = 11;
            continue main;
        }
        return;
    case 10:
        $this.$dealFireDamage($var32);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var39) {
            $var32 = $this.$fire + 1 | 0;
            $this.$fire = $var32;
            if (!$var32) {
                $var32 = 160;
                nms_Enchantment_$callClinit();
                $var22 = nms_Enchantment_fireProtection.$effectId;
                var$19 = $this.$getLastActiveItems();
                nms_EnchantmentHelper_$callClinit();
                if (var$19 === null)
                    $var36 = 0;
                else {
                    var$19 = var$19.data;
                    $var36 = 0;
                    $var23 = var$19.length;
                    $var20 = 0;
                    while ($var20 < $var23) {
                        $var30 = nms_EnchantmentHelper_getEnchantmentLevel($var22, var$19[$var20]);
                        if ($var30 > $var36)
                            $var36 = $var30;
                        $var20 = $var20 + 1 | 0;
                    }
                }
                if ($var36 > 0) {
                    $var42 = 160.0 * $var36 * 0.15000000596046448;
                    $var22 = $var42 | 0;
                    if ($var42 < $var22)
                        $var22 = $var22 - 1 | 0;
                    $var32 = $var32 - $var22 | 0;
                }
                if ($this.$fire < $var32)
                    $this.$fire = $var32;
            }
        }
        if ($var39 && $this.$fire > 0) {
            var$4 = $rt_s(1251);
            $var42 = 0.699999988079071;
            var$11 = $this.$rand;
            var$34 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$34;
            var$35 = Long_lo(Long_shru(var$34, 24)) / 1.6777216E7;
            var$36 = Long_and(Long_add(Long_mul(var$34, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$36;
            var$37 = 1.600000023841858 + (var$35 - Long_lo(Long_shru(var$36, 24)) / 1.6777216E7) * 0.4000000059604645;
            $ptr = 11;
            continue main;
        }
        return;
    case 11:
        $this.$playSound(var$4, $var42, var$37);
        if ($rt_suspending()) {
            break main;
        }
        $this.$fire =  -$this.$fireResistance | 0;
        return;
    case 12:
        $tmp = nms_World_getBlockId(var$4, $var38, $var30, $var31);
        if ($rt_suspending()) {
            break main;
        }
        $var32 = $tmp;
        if (!$var32) {
            var$4 = $this.$worldObj;
            $var22 = $var30 - 1 | 0;
            $ptr = 13;
            continue main;
        }
        nms_Block_$callClinit();
        if ($var32 != nms_Block_ladder.$blockID)
            $var25 = 0.0;
        $par1 = $this.$distanceWalkedModified;
        $par3 = $var37 * $var37;
        $par5 = $var27 * $var27;
        $this.$distanceWalkedModified = $par1 + jl_Math_sqrt($par3 + $par5) * 0.6;
        $var42 = $this.$distanceWalkedOnStepModified + jl_Math_sqrt($par3 + $var25 * $var25 + $par5) * 0.6;
        $this.$distanceWalkedOnStepModified = $var42;
        if (!($var42 > $this.$nextStepDistance && $var32 > 0)) {
            try {
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
            $ptr = 8;
            continue main;
        }
        $this.$nextStepDistance = ($var42 | 0) + 1 | 0;
        $ptr = 15;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId(var$4, $var38, $var22, $var31);
        if ($rt_suspending()) {
            break main;
        }
        $var36 = $tmp;
        nms_Block_$callClinit();
        var$19 = nms_Block_blocksList.data;
        $var33 = var$19[$var36] === null ? (-1) : var$19[$var36].$getRenderType();
        if ($var33 != 11 && $var33 != 32 && $var33 != 21) {
            nms_Block_$callClinit();
            if ($var32 != nms_Block_ladder.$blockID)
                $var25 = 0.0;
            $par1 = $this.$distanceWalkedModified;
            $par3 = $var37 * $var37;
            $par5 = $var27 * $var27;
            $this.$distanceWalkedModified = $par1 + jl_Math_sqrt($par3 + $par5) * 0.6;
            $var42 = $this.$distanceWalkedOnStepModified + jl_Math_sqrt($par3 + $var25 * $var25 + $par5) * 0.6;
            $this.$distanceWalkedOnStepModified = $var42;
            if (!($var42 > $this.$nextStepDistance && $var32 > 0)) {
                try {
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
                $ptr = 8;
                continue main;
            }
            $this.$nextStepDistance = ($var42 | 0) + 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$4 = $this.$worldObj;
        $ptr = 14;
    case 14:
        $tmp = nms_World_getBlockId(var$4, $var38, $var22, $var31);
        if ($rt_suspending()) {
            break main;
        }
        $var32 = $tmp;
        nms_Block_$callClinit();
        if ($var32 != nms_Block_ladder.$blockID)
            $var25 = 0.0;
        $par1 = $this.$distanceWalkedModified;
        $par3 = $var37 * $var37;
        $par5 = $var27 * $var27;
        $this.$distanceWalkedModified = $par1 + jl_Math_sqrt($par3 + $par5) * 0.6;
        $var42 = $this.$distanceWalkedOnStepModified + jl_Math_sqrt($par3 + $var25 * $var25 + $par5) * 0.6;
        $this.$distanceWalkedOnStepModified = $var42;
        if (!($var42 > $this.$nextStepDistance && $var32 > 0)) {
            try {
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
            $ptr = 8;
            continue main;
        }
        $this.$nextStepDistance = ($var42 | 0) + 1 | 0;
        $ptr = 15;
    case 15:
        $tmp = $this.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var22 = $tmp;
        if (!$var22) {
            $ptr = 16;
            continue main;
        }
        $par1 = $this.$motionX;
        $par1 = $par1 * $par1 * 0.20000000298023224;
        $par3 = $this.$motionY;
        $par1 = $par1 + $par3 * $par3;
        $par3 = $this.$motionZ;
        $var42 = jl_Math_sqrt($par1 + $par3 * $par3 * 0.20000000298023224) * 0.3499999940395355;
        if ($var42 > 1.0)
            $var42 = 1.0;
        var$4 = $rt_s(1252);
        var$11 = $this.$rand;
        var$34 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$11.$seed = var$34;
        var$35 = Long_lo(Long_shru(var$34, 24)) / 1.6777216E7;
        var$36 = Long_and(Long_add(Long_mul(var$34, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$11.$seed = var$36;
        var$37 = 1.0 + (var$35 - Long_lo(Long_shru(var$36, 24)) / 1.6777216E7) * 0.4000000059604645;
        $ptr = 18;
        continue main;
    case 16:
        $this.$playStepSound($var38, $var30, $var31, $var32);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = nms_Block_blocksList.data[$var32];
        var$11 = $this.$worldObj;
        $ptr = 17;
    case 17:
        var$4.$onEntityWalking(var$11, $var38, $var30, $var31, $this);
        if ($rt_suspending()) {
            break main;
        }
        try {
            $ptr = 7;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
        $ptr = 8;
        continue main;
    case 18:
        $this.$playSound(var$4, $var42, var$37);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 16;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, $var37, $var25, $var27, $var7, $var9, $var11, var$11, var$12, var$13, var$14, $var32, $var36, $var22, var$18, var$19, $var20, var$21, var$22, $var21, $var23, var$25, $var35, $var30, var$28, var$29, $var38, $var31, $var39, $var42, var$34, var$35, var$36, var$37, $var33, $ptr);
},
nms_Entity_doBlockCollisions = $this => {
    let var$1, var$2, $var1, $var2, $var3, $var4, $var5, $var6, $var8, $var9, $var10, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$boundingBox0;
        var$2 = var$1.$minX0 + 0.001;
        $var1 = var$2 | 0;
        if (var$2 < $var1)
            $var1 = $var1 - 1 | 0;
        var$2 = var$1.$minY0 + 0.001;
        $var2 = var$2 | 0;
        if (var$2 < $var2)
            $var2 = $var2 - 1 | 0;
        var$2 = var$1.$minZ0 + 0.001;
        $var3 = var$2 | 0;
        if (var$2 < $var3)
            $var3 = $var3 - 1 | 0;
        var$2 = var$1.$maxX0 - 0.001;
        $var4 = var$2 | 0;
        if (var$2 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = var$1.$maxY - 0.001;
        $var5 = var$2 | 0;
        if (var$2 < $var5)
            $var5 = $var5 - 1 | 0;
        var$2 = var$1.$maxZ0 - 0.001;
        $var6 = var$2 | 0;
        if (var$2 < $var6)
            $var6 = $var6 - 1 | 0;
        a: {
            if (nms_World_checkChunksExist($this.$worldObj, $var1, $var2, $var3, $var4, $var5, $var6))
                while (true) {
                    if ($var1 > $var4)
                        break a;
                    $var8 = $var2;
                    while ($var8 <= $var5) {
                        $var9 = $var3;
                        if ($var9 <= $var6) {
                            var$1 = $this.$worldObj;
                            $ptr = 1;
                            continue main;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $var1 = $var1 + 1 | 0;
                }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId(var$1, $var1, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 > 0) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data[$var10];
            var$12 = $this.$worldObj;
            $ptr = 2;
            continue main;
        }
        $var9 = $var9 + 1 | 0;
        b: while (true) {
            if ($var9 <= $var6) {
                var$1 = $this.$worldObj;
                continue main;
            }
            $var8 = $var8 + 1 | 0;
            while ($var8 > $var5) {
                $var1 = $var1 + 1 | 0;
                if ($var1 > $var4)
                    break b;
                $var8 = $var2;
            }
            $var9 = $var3;
        }
        return;
    case 2:
        var$1.$onEntityCollidedWithBlock(var$12, $var1, $var8, $var9, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        c: while (true) {
            if ($var9 <= $var6) {
                var$1 = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var8 = $var8 + 1 | 0;
            while ($var8 > $var5) {
                $var1 = $var1 + 1 | 0;
                if ($var1 > $var4)
                    break c;
                $var8 = $var2;
            }
            $var9 = $var3;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, $var2, $var3, $var4, $var5, $var6, $var8, $var9, $var10, var$12, $ptr);
},
nms_Entity_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        $var5 = nms_Block_blocksList.data[$par4].$stepSound;
        var$6 = $this.$worldObj;
        $par2 = $par2 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$6, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        var$6 = nms_Block_snow;
        if ($par1 == var$6.$blockID) {
            $var5 = var$6.$stepSound;
            var$6 = nms_StepSound_getStepSound($var5);
            var$7 = $var5.$stepSoundVolume * 0.15000000596046448;
            var$8 = $var5.$stepSoundPitch;
            $ptr = 2;
            continue main;
        }
        if (nms_Block_blocksList.data[$par4].$blockMaterial.$isLiquid())
            return;
        var$6 = nms_StepSound_getStepSound($var5);
        var$7 = $var5.$stepSoundVolume * 0.15000000596046448;
        var$8 = $var5.$stepSoundPitch;
        $ptr = 3;
        continue main;
    case 2:
        $this.$playSound(var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $this.$playSound(var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, var$6, var$7, var$8, $ptr);
},
nms_Entity_playSound = ($this, $par1Str, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$4, $this, $par1Str, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par2, $par3, var$4, $ptr);
},
nms_Entity_canTriggerWalking = $this => {
    return 1;
},
nms_Entity_updateFallState = ($this, $par1, $par3) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3) {
            var$3 = $this.$fallDistance;
            if (var$3 > 0.0) {
                $ptr = 1;
                continue main;
            }
        } else if ($par1 < 0.0)
            $this.$fallDistance = $this.$fallDistance - $par1;
        return;
    case 1:
        $this.$fall(var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$fallDistance = 0.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, var$3, $ptr);
},
nms_Entity_getBoundingBox = $this => {
    return null;
},
nms_Entity_dealFireDamage = ($this, $par1) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isImmuneToFire)
            return;
        var$2 = nms_DamageSource_inFire;
        var$3 = $par1;
        $ptr = 1;
    case 1:
        $this.$attackEntityFrom(var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, $ptr);
},
nms_Entity_fall = ($this, $par1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$riddenByEntity;
        if (var$2 === null)
            return;
        $ptr = 1;
    case 1:
        var$2.$fall($par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, $ptr);
},
nms_Entity_isWet = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$inWater)
            return 1;
        var$1 = $this.$worldObj;
        var$2 = $this.$posX;
        var$3 = var$2 | 0;
        if (var$2 < var$3)
            var$3 = var$3 - 1 | 0;
        var$2 = $this.$posY;
        var$4 = var$2 | 0;
        if (var$2 < var$4)
            var$4 = var$4 - 1 | 0;
        var$2 = $this.$posZ;
        var$5 = var$2 | 0;
        if (var$2 < var$5)
            var$5 = var$5 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_canLightningStrikeAt(var$1, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return 1;
        var$1 = $this.$worldObj;
        var$2 = $this.$posX;
        var$4 = var$2 | 0;
        if (var$2 < var$4)
            var$4 = var$4 - 1 | 0;
        var$2 = $this.$posY + $this.$height0;
        var$5 = var$2 | 0;
        if (var$2 < var$5)
            var$5 = var$5 - 1 | 0;
        var$7 = $this.$posZ;
        var$3 = var$7 | 0;
        if (var$7 < var$3)
            var$3 = var$3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_canLightningStrikeAt(var$1, var$4, var$5, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return var$6 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_Entity_isInWater = $this => {
    return $this.$inWater;
},
nms_Entity_handleWaterMovement = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, var$11, var$12, var$13, var$14, $var1, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var1 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        var$3 = var$2.$minX0 - 0.0;
        var$4 = var$2.$minY0 + 0.4000000059604645;
        var$5 = var$2.$minZ0 - 0.0;
        var$6 = var$2.$maxX0 + 0.0;
        var$7 = var$2.$maxY + (-0.4000000059604645);
        var$8 = var$2.$maxZ0 + 0.0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var3 = var$9.$nextPoolIndex;
        var$11 = var$9.$listAABB;
        var$12 = var$11.$size0;
        var$13 = $rt_compare($var3, var$12);
        if (var$13 >= 0) {
            var$2 = new nms_AxisAlignedBB;
            var$2.$minX0 = var$3;
            var$2.$minY0 = var$4;
            var$2.$minZ0 = var$5;
            var$2.$maxX0 = var$6;
            var$2.$maxY = var$7;
            var$2.$maxZ0 = var$8;
            ju_ArrayList_ensureCapacity(var$11, var$12 + 1 | 0);
            var$14 = var$11.$array.data;
            var$12 = var$11.$size0;
            var$11.$size0 = var$12 + 1 | 0;
            var$14[var$12] = var$2;
            var$11.$modCount = var$11.$modCount + 1 | 0;
        } else if ($var3 >= 0 && var$13 < 0) {
            var$2 = var$11.$array.data[$var3];
            var$2.$minX0 = var$3;
            var$2.$minY0 = var$4;
            var$2.$minZ0 = var$5;
            var$2.$maxX0 = var$6;
            var$2.$maxY = var$7;
            var$2.$maxZ0 = var$8;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        var$3 = var$2.$minX0 + 0.001;
        var$4 = var$2.$minY0 + 0.001;
        var$5 = var$2.$minZ0 + 0.001;
        var$6 = var$2.$maxX0 - 0.001;
        var$7 = var$2.$maxY - 0.001;
        var$8 = var$2.$maxZ0 - 0.001;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var3 = var$9.$nextPoolIndex;
        var$2 = var$9.$listAABB;
        var$13 = var$2.$size0;
        var$12 = $rt_compare($var3, var$13);
        if (var$12 >= 0) {
            var$11 = new nms_AxisAlignedBB;
            var$11.$minX0 = var$3;
            var$11.$minY0 = var$4;
            var$11.$minZ0 = var$5;
            var$11.$maxX0 = var$6;
            var$11.$maxY = var$7;
            var$11.$maxZ0 = var$8;
            ju_ArrayList_ensureCapacity(var$2, var$13 + 1 | 0);
            var$14 = var$2.$array.data;
            var$12 = var$2.$size0;
            var$2.$size0 = var$12 + 1 | 0;
            var$14[var$12] = var$11;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else if ($var3 >= 0 && var$12 < 0) {
            var$11 = var$2.$array.data[$var3];
            var$11.$minX0 = var$3;
            var$11.$minY0 = var$4;
            var$11.$minZ0 = var$5;
            var$11.$maxX0 = var$6;
            var$11.$maxY = var$7;
            var$11.$maxZ0 = var$8;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$2 = nms_Material_water;
        $ptr = 1;
    case 1:
        $tmp = nms_World_handleMaterialAcceleration(var$1, var$11, var$2, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if (!$var3)
            $this.$inWater = 0;
        else {
            if (!$this.$inWater && !$this.$firstUpdate) {
                var$6 = $this.$motionX;
                var$6 = var$6 * var$6 * 0.20000000298023224;
                var$7 = $this.$motionY;
                var$6 = var$6 + var$7 * var$7;
                var$7 = $this.$motionZ;
                $var1 = jl_Math_sqrt(var$6 + var$7 * var$7 * 0.20000000298023224) * 0.20000000298023224;
                if ($var1 > 1.0)
                    $var1 = 1.0;
                var$1 = $rt_s(1253);
                var$2 = $this.$rand;
                var$16 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$16;
                var$17 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7;
                var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$16;
                var$18 = 1.0 + (var$17 - Long_lo(Long_shru(var$16, 24)) / 1.6777216E7) * 0.4000000059604645;
                $ptr = 2;
                continue main;
            }
            $this.$fallDistance = 0.0;
            $this.$inWater = 1;
            $this.$fire = 0;
        }
        return $this.$inWater;
    case 2:
        $this.$playSound(var$1, $var1, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $this.$boundingBox0.$minY0;
        $var3 = 0;
        a: while (true) {
            $var1 = $var3;
            var$18 = 1.0 + $this.$width * 20.0;
            if ($var1 >= var$18) {
                $var3 = 0;
                b: {
                    while ($var3 < var$18) {
                        var$1 = $this.$rand;
                        var$19 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1.$seed = var$19;
                        var$1.$seed = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1 = $this.$worldObj;
                        var$12 = 0;
                        while (true) {
                            var$13 = $rt_compare(var$12, var$1.$worldAccesses.$size0);
                            if (var$13 >= 0)
                                break;
                            if (var$12 < 0)
                                break b;
                            if (var$13 >= 0)
                                break b;
                            var$12 = var$12 + 1 | 0;
                        }
                        $var3 = $var3 + 1 | 0;
                    }
                    $this.$fallDistance = 0.0;
                    $this.$inWater = 1;
                    $this.$fire = 0;
                    return $this.$inWater;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            var$1 = $this.$rand;
            var$19 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$19;
            var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$19;
            var$2 = $this.$worldObj;
            var$1.$seed = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$12 = 0;
            while (true) {
                var$13 = $rt_compare(var$12, var$2.$worldAccesses.$size0);
                if (var$13 >= 0)
                    break;
                if (var$12 < 0)
                    break a;
                if (var$13 >= 0)
                    break a;
                var$12 = var$12 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, var$11, var$12, var$13, var$14, $var1, var$16, var$17, var$18, var$19, $ptr);
},
nms_Entity_isInsideOfMaterial = ($this, $par1Material) => {
    let $var2, var$3, $var4, $var6, $var8, $var5, var$8, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Material = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$posY + $this.$getEyeHeight();
        var$3 = $this.$posX;
        $var4 = var$3 | 0;
        if (var$3 < $var4)
            $var4 = $var4 - 1 | 0;
        $var6 = $var2 | 0;
        if ($var2 < $var6)
            $var6 = $var6 - 1 | 0;
        $var8 = $var6;
        $var5 = $var8 | 0;
        if ($var8 < $var5)
            $var5 = $var5 - 1 | 0;
        var$3 = $this.$posZ;
        $var6 = var$3 | 0;
        if (var$3 < $var6)
            $var6 = $var6 - 1 | 0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$8, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var7].$blockMaterial === $par1Material) {
                $par1Material = $this.$worldObj;
                $ptr = 2;
                continue main;
            }
        }
        return 0;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1Material, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 >= 8)
            $var4 = 0;
        return $var2 >= ($var5 + 1 | 0) - (($var4 + 1 | 0) / 9.0 - 0.1111111119389534) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Material, $var2, var$3, $var4, $var6, $var8, $var5, var$8, $var7, $ptr);
},
nms_Entity_getEyeHeight = $this => {
    return 0.0;
},
nms_Entity_handleLavaMovement = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        var$3 = var$2.$minX0 + 0.10000000149011612;
        var$4 = var$2.$minY0 + 0.4000000059604645;
        var$5 = var$2.$minZ0 + 0.10000000149011612;
        var$6 = var$2.$maxX0 + (-0.10000000149011612);
        var$7 = var$2.$maxY + (-0.4000000059604645);
        var$8 = var$2.$maxZ0 + (-0.10000000149011612);
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9.$nextPoolIndex;
        var$2 = var$9.$listAABB;
        var$11 = var$2.$size0;
        var$12 = $rt_compare(var$10, var$11);
        if (var$12 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$3;
            var$13.$minY0 = var$4;
            var$13.$minZ0 = var$5;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$7;
            var$13.$maxZ0 = var$8;
            ju_ArrayList_ensureCapacity(var$2, var$11 + 1 | 0);
            var$14 = var$2.$array.data;
            var$10 = var$2.$size0;
            var$2.$size0 = var$10 + 1 | 0;
            var$14[var$10] = var$13;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else if (var$10 >= 0 && var$12 < 0) {
            var$13 = var$2.$array.data[var$10];
            var$13.$minX0 = var$3;
            var$13.$minY0 = var$4;
            var$13.$minZ0 = var$5;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$7;
            var$13.$maxZ0 = var$8;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$2 = nms_Material_lava;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isMaterialInBB(var$1, var$13, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        return var$11;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_Entity_moveFlying = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, var$6, $var6;
    $var4 = $par1 * $par1 + $par2 * $par2;
    if ($var4 >= 9.999999747378752E-5) {
        $var5 = jl_Math_sqrt($var4);
        if ($var5 < 1.0)
            $var5 = 1.0;
        $par3 = $par3 / $var5;
        $par1 = $par1 * $par3;
        $par3 = $par2 * $par3;
        $var4 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
        var$6 = nms_MathHelper_SIN_TABLE.data;
        $par2 = $var4 * 10430.3779296875;
        $var5 = var$6[($par2 | 0) & 65535];
        $var6 = var$6[($par2 + 16384.0 | 0) & 65535];
        $this.$motionX = $this.$motionX + $par1 * $var6 - $par3 * $var5;
        $this.$motionZ = $this.$motionZ + $par3 * $var6 + $par1 * $var5;
    }
},
nms_Entity_getBrightness = ($this, $par1) => {
    let $var4, $var2, $var3, var$5, $var6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var4 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $this.$posX;
        $var2 = $var4 | 0;
        if ($var4 < $var2)
            $var2 = $var2 - 1 | 0;
        $var4 = $this.$posZ;
        $var3 = $var4 | 0;
        if ($var4 < $var3)
            $var3 = $var3 - 1 | 0;
        if (!nms_World_chunkExists($this.$worldObj, $var2 >> 4, $var3 >> 4))
            return 0.0;
        var$5 = $this.$boundingBox0;
        $var4 = (var$5.$maxY - var$5.$minY0) * 0.66;
        $var4 = $this.$posY - $this.$yOffset + $var4;
        $var6 = $var4 | 0;
        if ($var4 < $var6)
            $var6 = $var6 - 1 | 0;
        var$5 = $this.$worldObj;
        var$7 = var$5.$provider.$lightBrightnessTable.data;
        var$8 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do(var$5, $var2, $var6, $var3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$7[var$8];
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var4, $var2, $var3, var$5, $var6, var$7, var$8, $ptr);
},
nms_Entity_setWorld = ($this, $par1World) => {
    $this.$worldObj = $par1World;
},
nms_Entity_setPositionAndRotation = ($this, $par1, $par3, $par5, $par7, $par8) => {
    let $var9;
    $this.$posX = $par1;
    $this.$prevPosX = $par1;
    $this.$posY = $par3;
    $this.$prevPosY = $par3;
    $this.$posZ = $par5;
    $this.$prevPosZ = $par5;
    $this.$rotationYaw = $par7;
    $this.$prevRotationYaw = $par7;
    $this.$rotationPitch = $par8;
    $this.$prevRotationPitch = $par8;
    $this.$ySize = 0.0;
    $var9 = $par7 - $par7;
    if ($var9 < (-180.0))
        $this.$prevRotationYaw = $par7 + 360.0;
    if ($var9 >= 180.0)
        $this.$prevRotationYaw = $this.$prevRotationYaw - 360.0;
    nms_Entity_setPosition($this, $par1, $par3, $par5);
    $this.$rotationYaw = $par7 % 360.0;
    $this.$rotationPitch = $par8 % 360.0;
},
nms_Entity_setLocationAndAngles = ($this, $par1, $par3, $par5, $par7, $par8) => {
    $this.$posX = $par1;
    $this.$prevPosX = $par1;
    $this.$lastTickPosX = $par1;
    $par3 = $par3 + $this.$yOffset;
    $this.$posY = $par3;
    $this.$prevPosY = $par3;
    $this.$lastTickPosY = $par3;
    $this.$posZ = $par5;
    $this.$prevPosZ = $par5;
    $this.$lastTickPosZ = $par5;
    $this.$rotationYaw = $par7;
    $this.$rotationPitch = $par8;
    nms_Entity_setPosition($this, $par1, $par3, $par5);
},
nms_Entity_getDistanceToEntity = ($this, $par1Entity) => {
    let $var2, $var3, $var4;
    $var2 = $this.$posX - $par1Entity.$posX;
    $var3 = $this.$posY - $par1Entity.$posY;
    $var4 = $this.$posZ - $par1Entity.$posZ;
    return jl_Math_sqrt($var2 * $var2 + $var3 * $var3 + $var4 * $var4);
},
nms_Entity_getDistanceSq = ($this, $par1, $par3, $par5) => {
    let $var7, $var9, $var11;
    $var7 = $this.$posX - $par1;
    $var9 = $this.$posY - $par3;
    $var11 = $this.$posZ - $par5;
    return $var7 * $var7 + $var9 * $var9 + $var11 * $var11;
},
nms_Entity_getDistance = ($this, $par1, $par3, $par5) => {
    let $var7, $var9, $var11;
    $var7 = $this.$posX - $par1;
    $var9 = $this.$posY - $par3;
    $var11 = $this.$posZ - $par5;
    return jl_Math_sqrt($var7 * $var7 + $var9 * $var9 + $var11 * $var11);
},
nms_Entity_getDistanceSqToEntity = ($this, $par1Entity) => {
    let $var2, $var4, $var6;
    $var2 = $this.$posX - $par1Entity.$posX;
    $var4 = $this.$posY - $par1Entity.$posY;
    $var6 = $this.$posZ - $par1Entity.$posZ;
    return $var2 * $var2 + $var4 * $var4 + $var6 * $var6;
},
nms_Entity_onCollideWithPlayer = ($this, $par1EntityPlayer) => {
    return;
},
nms_Entity_applyEntityCollision = ($this, $par1Entity) => {
    let $var2, $var4, $var6, $var6_0, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var6_0 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Entity.$riddenByEntity !== $this && $par1Entity.$ridingEntity !== $this) {
            $var2 = $par1Entity.$posX - $this.$posX;
            $var4 = $par1Entity.$posZ - $this.$posZ;
            $var6 = $var2 < 0.0 ?  -$var2 : $var2;
            $var6_0 = $var4 < 0.0 ?  -$var4 : $var4;
            if ($var6 > $var6_0)
                $var6_0 = $var6;
            if ($var6_0 >= 0.009999999776482582) {
                $var6 = jl_Math_sqrt($var6_0);
                $var2 = $var2 / $var6;
                $var4 = $var4 / $var6;
                $var8 = 1.0 / $var6;
                if ($var8 > 1.0)
                    $var8 = 1.0;
                $var2 = $var2 * $var8;
                $var4 = $var4 * $var8;
                $var2 = $var2 * 0.05000000074505806;
                $var4 = $var4 * 0.05000000074505806;
                $var6 = 1.0 - $this.$entityCollisionReduction;
                $var2 = $var2 * $var6;
                $var4 = $var4 * $var6;
                $var6 =  -$var2;
                $var6_0 = 0.0;
                $var8 =  -$var4;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $this.$addVelocity($var6, $var6_0, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity.$motionX = $par1Entity.$motionX + $var2;
        $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
        $par1Entity.$motionZ = $par1Entity.$motionZ + $var4;
        $par1Entity.$isAirBorne = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var2, $var4, $var6, $var6_0, $var8, $ptr);
},
nms_Entity_addVelocity = ($this, $par1, $par3, $par5) => {
    $this.$motionX = $this.$motionX + $par1;
    $this.$motionY = $this.$motionY + $par3;
    $this.$motionZ = $this.$motionZ + $par5;
    $this.$isAirBorne = 1;
},
nms_Entity_setBeenAttacked = $this => {
    $this.$velocityChanged = 1;
},
nms_Entity_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    if ($this.$invulnerable)
        return 0;
    $this.$setBeenAttacked();
    return 0;
},
nms_Entity_canBeCollidedWith = $this => {
    return 0;
},
nms_Entity_canBePushed = $this => {
    return 0;
},
nms_Entity_addToPlayerScore = ($this, $par1Entity, $par2) => {
    return;
},
nms_Entity_writeMountToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_EntityList_$callClinit();
    var$2 = nms_EntityList_classToStringMapping;
    var$3 = $this.constructor;
    if (var$3 === null)
        var$4 = null;
    else {
        var$4 = var$3.classObject;
        if (var$4 === null) {
            var$4 = new jl_Class;
            var$4.$platformClass = var$3;
            var$3.classObject = var$4;
        }
    }
    if (var$4 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$5 = var$4;
        if (!var$5.$id$)
            var$5.$id$ = $rt_nextId();
        var$6 = var$4.$id$;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$5 = var$2.$key;
                if (var$4 !== var$5 && !(var$4 !== var$5 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (!$this.$isDead && var$3 !== null) {
        var$8 = $par1NBTTagCompound.$tagMap;
        var$5 = new nms_NBTTagString;
        var$5.$name = $rt_s(914);
        var$5.$data1 = var$3;
        ju_HashMap_putImpl(var$8, $rt_s(914), var$5);
        nms_Entity_writeToNBT($this, $par1NBTTagCompound);
        return 1;
    }
    return 0;
};
let nms_Entity_writeToNBTOptional = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_EntityList_$callClinit();
    var$2 = nms_EntityList_classToStringMapping;
    var$3 = $this.constructor;
    if (var$3 === null)
        var$4 = null;
    else {
        var$4 = var$3.classObject;
        if (var$4 === null) {
            var$4 = new jl_Class;
            var$4.$platformClass = var$3;
            var$3.classObject = var$4;
        }
    }
    if (var$4 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$5 = var$4;
        if (!var$5.$id$)
            var$5.$id$ = $rt_nextId();
        var$6 = var$4.$id$;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$5 = var$2.$key;
                if (var$4 !== var$5 && !(var$4 !== var$5 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (!$this.$isDead && var$3 !== null && $this.$riddenByEntity === null) {
        var$8 = $par1NBTTagCompound.$tagMap;
        var$5 = new nms_NBTTagString;
        var$5.$name = $rt_s(914);
        var$5.$data1 = var$3;
        ju_HashMap_putImpl(var$8, $rt_s(914), var$5);
        nms_Entity_writeToNBT($this, $par1NBTTagCompound);
        return 1;
    }
    return 0;
},
nms_Entity_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $var2, $$je;
    a: {
        try {
            var$2 = $rt_createDoubleArrayFromData([$this.$posX, $this.$posY + $this.$ySize, $this.$posZ]);
            nms_NBTTagCompound_setTag($par1NBTTagCompound, $rt_s(1254), nms_Entity_newDoubleNBTList($this, var$2));
            var$2 = $rt_createDoubleArrayFromData([$this.$motionX, $this.$motionY, $this.$motionZ]);
            nms_NBTTagCompound_setTag($par1NBTTagCompound, $rt_s(1255), nms_Entity_newDoubleNBTList($this, var$2));
            var$2 = $rt_createFloatArrayFromData([$this.$rotationYaw, $this.$rotationPitch]);
            nms_NBTTagCompound_setTag($par1NBTTagCompound, $rt_s(1256), nms_Entity_newFloatNBTList($this, var$2));
            nms_NBTTagCompound_setFloat($par1NBTTagCompound, $rt_s(1257), $this.$fallDistance);
            nms_NBTTagCompound_setShort($par1NBTTagCompound, $rt_s(1258), $this.$fire << 16 >> 16);
            nms_NBTTagCompound_setShort($par1NBTTagCompound, $rt_s(1259), nms_Entity_getAir($this) << 16 >> 16);
            nms_NBTTagCompound_setBoolean($par1NBTTagCompound, $rt_s(1260), $this.$onGround);
            nms_NBTTagCompound_setInteger($par1NBTTagCompound, $rt_s(1261), $this.$dimension);
            nms_NBTTagCompound_setBoolean($par1NBTTagCompound, $rt_s(1262), $this.$invulnerable);
            nms_NBTTagCompound_setInteger($par1NBTTagCompound, $rt_s(1263), $this.$timeUntilPortal);
            nms_NBTTagCompound_setLong($par1NBTTagCompound, $rt_s(1264), nle_ProfileUUID_getMostSignificantBits($this.$entityUniqueID));
            nms_NBTTagCompound_setLong($par1NBTTagCompound, $rt_s(1265), nle_ProfileUUID_getLeastSignificantBits($this.$entityUniqueID));
            $this.$writeEntityToNBT($par1NBTTagCompound);
            if ($this.$ridingEntity !== null) {
                $var2 = nms_NBTTagCompound__init_1($rt_s(360));
                if (nms_Entity_writeMountToNBT($this.$ridingEntity, $var2))
                    nms_NBTTagCompound_setTag($par1NBTTagCompound, $rt_s(360), $var2);
            }
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
    }
},
nms_Entity_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var6, $var7, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        try {
            $var2 = nms_NBTTagCompound_getTagList($par1NBTTagCompound, $rt_s(1254));
            $var6 = nms_NBTTagCompound_getTagList($par1NBTTagCompound, $rt_s(1255));
            $var7 = nms_NBTTagCompound_getTagList($par1NBTTagCompound, $rt_s(1256));
            $this.$motionX = (nms_NBTTagList_tagAt($var6, 0)).$data7;
            $this.$motionY = (nms_NBTTagList_tagAt($var6, 1)).$data7;
            $this.$motionZ = (nms_NBTTagList_tagAt($var6, 2)).$data7;
            if (jl_Math_abs($this.$motionX) > 10.0)
                $this.$motionX = 0.0;
            if (jl_Math_abs($this.$motionY) > 10.0)
                $this.$motionY = 0.0;
            if (jl_Math_abs($this.$motionZ) > 10.0)
                $this.$motionZ = 0.0;
            var$5 = (nms_NBTTagList_tagAt($var2, 0)).$data7;
            $this.$posX = var$5;
            $this.$lastTickPosX = var$5;
            $this.$prevPosX = var$5;
            var$5 = (nms_NBTTagList_tagAt($var2, 1)).$data7;
            $this.$posY = var$5;
            $this.$lastTickPosY = var$5;
            $this.$prevPosY = var$5;
            var$5 = (nms_NBTTagList_tagAt($var2, 2)).$data7;
            $this.$posZ = var$5;
            $this.$lastTickPosZ = var$5;
            $this.$prevPosZ = var$5;
            var$6 = (nms_NBTTagList_tagAt($var7, 0)).$data5;
            $this.$rotationYaw = var$6;
            $this.$prevRotationYaw = var$6;
            var$6 = (nms_NBTTagList_tagAt($var7, 1)).$data5;
            $this.$rotationPitch = var$6;
            $this.$prevRotationPitch = var$6;
            $this.$fallDistance = nms_NBTTagCompound_getFloat($par1NBTTagCompound, $rt_s(1257));
            $this.$fire = nms_NBTTagCompound_getShort($par1NBTTagCompound, $rt_s(1258));
            nms_Entity_setAir($this, nms_NBTTagCompound_getShort($par1NBTTagCompound, $rt_s(1259)));
            $this.$onGround = nms_NBTTagCompound_getBoolean($par1NBTTagCompound, $rt_s(1260));
            $this.$dimension = nms_NBTTagCompound_getInteger($par1NBTTagCompound, $rt_s(1261));
            $this.$invulnerable = nms_NBTTagCompound_getBoolean($par1NBTTagCompound, $rt_s(1262));
            $this.$timeUntilPortal = nms_NBTTagCompound_getInteger($par1NBTTagCompound, $rt_s(1263));
            if (nms_NBTTagCompound_hasKey($par1NBTTagCompound, $rt_s(1264)) && nms_NBTTagCompound_hasKey($par1NBTTagCompound, $rt_s(1265)))
                $this.$entityUniqueID = nle_ProfileUUID__init_0(nms_NBTTagCompound_getLong($par1NBTTagCompound, $rt_s(1264)), nms_NBTTagCompound_getLong($par1NBTTagCompound, $rt_s(1265)));
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            nms_Entity_setRotation($this, $this.$rotationYaw, $this.$rotationPitch);
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
        return;
    case 1:
        a: {
            try {
                $this.$readEntityFromNBT($par1NBTTagCompound);
                if ($rt_suspending()) {
                    break main;
                }
                if ($this.$shouldSetPosAfterLoading())
                    nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, $var2, $var6, $var7, var$5, var$6, $ptr);
},
nms_Entity_shouldSetPosAfterLoading = $this => {
    return 1;
},
nms_Entity_onChunkLoad = $this => {
    return;
},
nms_Entity_newDoubleNBTList = ($this, $par1ArrayOfDouble) => {
    let $var2, var$3, $var4, $var5, var$6, $var6, var$8, var$9, var$10;
    $par1ArrayOfDouble = $par1ArrayOfDouble.data;
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$3;
    $var4 = $par1ArrayOfDouble.length;
    $var5 = 0;
    var$6 = null;
    while ($var5 < $var4) {
        $var6 = $par1ArrayOfDouble[$var5];
        var$8 = new nms_NBTTagDouble;
        if (var$6 !== null)
            var$8.$name = var$6;
        else
            var$8.$name = $rt_s(3);
        var$8.$data7 = $var6;
        $var2.$tagType = 6;
        var$3 = $var2.$tagList;
        ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
        var$9 = var$3.$array.data;
        var$10 = var$3.$size0;
        var$3.$size0 = var$10 + 1 | 0;
        var$9[var$10] = var$8;
        var$3.$modCount = var$3.$modCount + 1 | 0;
        $var5 = $var5 + 1 | 0;
    }
    return $var2;
},
nms_Entity_newFloatNBTList = ($this, $par1ArrayOfFloat) => {
    let $var2, var$3, $var4, $var5, var$6, $var6, var$8, var$9, var$10;
    $par1ArrayOfFloat = $par1ArrayOfFloat.data;
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$3;
    $var4 = $par1ArrayOfFloat.length;
    $var5 = 0;
    var$6 = null;
    while ($var5 < $var4) {
        $var6 = $par1ArrayOfFloat[$var5];
        var$8 = new nms_NBTTagFloat;
        if (var$6 !== null)
            var$8.$name = var$6;
        else
            var$8.$name = $rt_s(3);
        var$8.$data5 = $var6;
        $var2.$tagType = 5;
        var$3 = $var2.$tagList;
        ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
        var$9 = var$3.$array.data;
        var$10 = var$3.$size0;
        var$3.$size0 = var$10 + 1 | 0;
        var$9[var$10] = var$8;
        var$3.$modCount = var$3.$modCount + 1 | 0;
        $var5 = $var5 + 1 | 0;
    }
    return $var2;
},
nms_Entity_dropItem = ($this, $par1, $par2) => {
    let var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = 0.0;
        var$4 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$4.$itemID = $par1;
        var$4.$stackSize = $par2;
        var$4.$itemDamage = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_entityDropItem($this, var$4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, $ptr);
},
nms_Entity_dropItemWithOffset = ($this, $par1, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$4.$itemID = $par1;
        var$4.$stackSize = $par2;
        var$4.$itemDamage = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_entityDropItem($this, var$4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $ptr);
},
nms_Entity_entityDropItem = ($this, $par1ItemStack, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1ItemStack.$stackSize)
            return null;
        $var3 = new nms_EntityItem;
        var$4 = $this.$worldObj;
        var$5 = $this.$posX;
        var$6 = $this.$posY + $par2;
        var$7 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_($var3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $var3.$dataWatcher;
        var$4 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[138];
        if (var$9 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$11 = var$4.$elementData.data;
            var$4 = var$11[var$10 & (var$11.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$10) {
                    var$12 = var$4.$key;
                    if (var$9 !== var$12 && !jl_Integer_equals(var$9, var$12) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$12 = var$4 === null ? null : var$4.$value0;
        if (!($par1ItemStack !== var$12.$watchedObject ? 0 : 1)) {
            var$12.$watchedObject = $par1ItemStack;
            var$12.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$9 = $var3.$dataWatcher;
        $par1ItemStack = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[138];
        if (var$12 === null) {
            $par1ItemStack = $par1ItemStack.$elementData.data[0];
            while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                $par1ItemStack = $par1ItemStack.$next3;
            }
        } else {
            var$13 = var$12.$value;
            var$11 = $par1ItemStack.$elementData.data;
            $par1ItemStack = var$11[var$13 & (var$11.length - 1 | 0)];
            while ($par1ItemStack !== null) {
                if ($par1ItemStack.$origKeyHash == var$13) {
                    var$4 = $par1ItemStack.$key;
                    if (var$12 !== var$4 && !jl_Integer_equals(var$12, var$4) ? 0 : 1)
                        break;
                }
                $par1ItemStack = $par1ItemStack.$next3;
            }
        }
        ($par1ItemStack === null ? null : $par1ItemStack.$value0).$watched = 1;
        var$9.$objectChanged = 1;
        $var3.$delayBeforeCanPickup = 10;
        $par1ItemStack = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1ItemStack, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_Entity_isEntityAlive = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_Entity_isEntityInsideOpaqueBlock = $this => {
    let $var1, $var4, var$3, $var2, $var3, var$6, $var5, $var6, $var7, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        if ($var1 >= 8)
            return 0;
        $var4 = (($var1 >> 0) % 2 | 0) - 0.5;
        var$3 = $this.$width;
        $var2 = $var4 * var$3 * 0.800000011920929;
        $var3 = ((($var1 >> 1) % 2 | 0) - 0.5) * 0.10000000149011612;
        $var4 = ((($var1 >> 2) % 2 | 0) - 0.5) * var$3 * 0.800000011920929;
        var$6 = $this.$posX + $var2;
        $var5 = var$6 | 0;
        if (var$6 < $var5)
            $var5 = $var5 - 1 | 0;
        var$6 = $this.$posY + $this.$getEyeHeight() + $var3;
        $var6 = var$6 | 0;
        if (var$6 < $var6)
            $var6 = $var6 - 1 | 0;
        var$6 = $this.$posZ + $var4;
        $var7 = var$6 | 0;
        if (var$6 < $var7)
            $var7 = $var7 - 1 | 0;
        var$10 = $this.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube(var$10, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11)
            return 1;
        $var1 = $var1 + 1 | 0;
        if ($var1 >= 8)
            return 0;
        $var4 = (($var1 >> 0) % 2 | 0) - 0.5;
        var$3 = $this.$width;
        $var2 = $var4 * var$3 * 0.800000011920929;
        $var3 = ((($var1 >> 1) % 2 | 0) - 0.5) * 0.10000000149011612;
        $var4 = ((($var1 >> 2) % 2 | 0) - 0.5) * var$3 * 0.800000011920929;
        var$6 = $this.$posX + $var2;
        $var5 = var$6 | 0;
        if (var$6 < $var5)
            $var5 = $var5 - 1 | 0;
        var$6 = $this.$posY + $this.$getEyeHeight() + $var3;
        $var6 = var$6 | 0;
        if (var$6 < $var6)
            $var6 = $var6 - 1 | 0;
        var$6 = $this.$posZ + $var4;
        $var7 = var$6 | 0;
        if (var$6 < $var7)
            $var7 = $var7 - 1 | 0;
        var$10 = $this.$worldObj;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var4, var$3, $var2, $var3, var$6, $var5, $var6, $var7, var$10, var$11, $ptr);
},
nms_Entity_interactFirst = ($this, $par1EntityPlayer) => {
    return 0;
},
nms_Entity_getCollisionBox = ($this, $par1Entity) => {
    return null;
},
nms_Entity_updateRidden = $this => {
    let var$1, var$2, var$3, $var1, $var3, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$ridingEntity.$isDead) {
            $this.$ridingEntity = null;
            return;
        }
        $this.$motionX = 0.0;
        $this.$motionY = 0.0;
        $this.$motionZ = 0.0;
        $ptr = 1;
    case 1:
        $this.$onUpdate();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$ridingEntity;
        if (var$1 !== null) {
            var$1.$updateRiderPosition();
            var$2 = $this.$entityRiderYawDelta;
            var$1 = $this.$ridingEntity;
            $this.$entityRiderYawDelta = var$2 + var$1.$rotationYaw - var$1.$prevRotationYaw;
            $this.$entityRiderPitchDelta = $this.$entityRiderPitchDelta + var$1.$rotationPitch - var$1.$prevRotationPitch;
            while (true) {
                var$3 = $this.$entityRiderYawDelta;
                if (var$3 < 180.0)
                    break;
                $this.$entityRiderYawDelta = var$3 - 360.0;
            }
            while (true) {
                var$2 = $this.$entityRiderYawDelta;
                if (var$2 >= (-180.0))
                    break;
                $this.$entityRiderYawDelta = var$2 + 360.0;
            }
            while (true) {
                var$3 = $this.$entityRiderPitchDelta;
                if (var$3 < 180.0)
                    break;
                $this.$entityRiderPitchDelta = var$3 - 360.0;
            }
            while (true) {
                var$3 = $this.$entityRiderPitchDelta;
                if (var$3 >= (-180.0))
                    break;
                $this.$entityRiderPitchDelta = var$3 + 360.0;
            }
            $var1 = var$2 * 0.5;
            $var3 = var$3 * 0.5;
            var$6 = 10.0;
            if ($var1 > var$6)
                $var1 = var$6;
            var$7 = (-10.0);
            if ($var1 < var$7)
                $var1 = var$7;
            if ($var3 <= var$6)
                var$6 = $var3;
            if (var$6 >= var$7)
                var$7 = var$6;
            $this.$entityRiderYawDelta = var$2 - $var1;
            $this.$entityRiderPitchDelta = var$3 - var$7;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, $var3, var$6, var$7, $ptr);
},
nms_Entity_updateRiderPosition = $this => {
    let var$1;
    var$1 = $this.$riddenByEntity;
    if (var$1 !== null)
        nms_Entity_setPosition(var$1, $this.$posX, $this.$posY + $this.$getMountedYOffset() + $this.$riddenByEntity.$getYOffset(), $this.$posZ);
},
nms_Entity_getYOffset = $this => {
    return $this.$yOffset;
},
nms_Entity_getMountedYOffset = $this => {
    return $this.$height0 * 0.75;
},
nms_Entity_mountEntity = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    $this.$entityRiderPitchDelta = 0.0;
    $this.$entityRiderYawDelta = 0.0;
    if ($par1Entity !== null) {
        var$2 = $this.$ridingEntity;
        if (var$2 !== null)
            var$2.$riddenByEntity = null;
        $this.$ridingEntity = $par1Entity;
        $par1Entity.$riddenByEntity = $this;
    } else {
        $par1Entity = $this.$ridingEntity;
        if ($par1Entity !== null) {
            var$3 = $par1Entity.$posX;
            var$4 = $par1Entity.$boundingBox0.$minY0 + $par1Entity.$height0;
            var$5 = $par1Entity.$posZ;
            var$6 = $this.$rotationYaw;
            var$7 = $this.$rotationPitch;
            $this.$posX = var$3;
            $this.$prevPosX = var$3;
            $this.$lastTickPosX = var$3;
            var$4 = var$4 + $this.$yOffset;
            $this.$posY = var$4;
            $this.$prevPosY = var$4;
            $this.$lastTickPosY = var$4;
            $this.$posZ = var$5;
            $this.$prevPosZ = var$5;
            $this.$lastTickPosZ = var$5;
            $this.$rotationYaw = var$6;
            $this.$rotationPitch = var$7;
            nms_Entity_setPosition($this, var$3, var$4, var$5);
            $this.$ridingEntity.$riddenByEntity = null;
        }
        $this.$ridingEntity = null;
    }
},
nms_Entity_getCollisionBorderSize = $this => {
    return 0.10000000149011612;
},
nms_Entity_getLookVec = $this => {
    return null;
},
nms_Entity_setInPortal = $this => {
    let $var1, $var3, var$3, var$4;
    if ($this.$timeUntilPortal > 0)
        $this.$timeUntilPortal = $this.$getPortalCooldown();
    else {
        $var1 = $this.$prevPosX - $this.$posX;
        $var3 = $this.$prevPosZ - $this.$posZ;
        if (!$this.$worldObj.$isRemote && !$this.$inPortal) {
            var$3 = $var1;
            if (var$3 < 0.0)
                var$3 =  -var$3;
            var$4 = $var3;
            if (var$4 < 0.0)
                var$4 =  -var$4;
            $this.$teleportDirection = var$3 <= var$4 ? ($var3 <= 0.0 ? 0 : 2) : $var1 <= 0.0 ? 3 : 1;
        }
        $this.$inPortal = 1;
    }
},
nms_Entity_getPortalCooldown = $this => {
    return 900;
},
nms_Entity_getLastActiveItems = $this => {
    return null;
},
nms_Entity_isBurning = $this => {
    let var$1;
    a: {
        b: {
            if (!$this.$isImmuneToFire) {
                if ($this.$fire > 0)
                    break b;
                if (nms_Entity_getFlag($this, 0))
                    break b;
            }
            var$1 = 0;
            break a;
        }
        var$1 = 1;
    }
    return var$1;
},
nms_Entity_isRiding = $this => {
    return $this.$ridingEntity === null ? 0 : 1;
},
nms_Entity_isSneaking = $this => {
    return nms_Entity_getFlag($this, 1);
},
nms_Entity_isSprinting = $this => {
    return nms_Entity_getFlag($this, 3);
},
nms_Entity_isInvisible = $this => {
    return nms_Entity_getFlag($this, 5);
},
nms_Entity_setInvisible = ($this, $par1) => {
    nms_Entity_setFlag($this, 5, $par1);
},
nms_Entity_getFlag = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[128];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    return !(var$2.$watchedObject.$value1 & 1 << $par1) ? 0 : 1;
},
nms_Entity_setFlag = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$3 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[128];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$8 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value1;
    if ($par2) {
        var$3 = $this.$dataWatcher;
        $par1 = (var$8 | 1 << $par1) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$7 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[128];
        if (var$10 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$8 = var$10.$value;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$8) {
                    var$4 = var$7.$key;
                    if (var$10 !== var$4 && !(var$10 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$4 = var$7 === null ? null : var$7.$value0;
        var$7 = var$4.$watchedObject;
        if (!(var$7 instanceof jl_Byte && var$7.$value1 == var$9.$value1 ? 1 : 0)) {
            var$4.$watchedObject = var$9;
            var$4.$watched = 1;
            var$3.$objectChanged = 1;
        }
    } else {
        var$3 = $this.$dataWatcher;
        $par1 = (var$8 & (1 << $par1 ^ (-1))) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$7 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[128];
        if (var$10 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$8 = var$10.$value;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$8) {
                    var$4 = var$7.$key;
                    if (var$10 !== var$4 && !(var$10 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$4 = var$7 === null ? null : var$7.$value0;
        var$7 = var$4.$watchedObject;
        if (!(var$7 instanceof jl_Byte && var$7.$value1 == var$9.$value1 ? 1 : 0)) {
            var$4.$watchedObject = var$9;
            var$4.$watched = 1;
            var$3.$objectChanged = 1;
        }
    }
},
nms_Entity_getAir = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[129];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value6;
},
nms_Entity_setAir = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    $par1 = $par1 << 16 >> 16;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Short_ensureShortCache();
        var$3 = jl_Short_shortCache.data[$par1 + 128 | 0];
    } else {
        var$3 = new jl_Short;
        var$3.$value6 = $par1;
    }
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[129];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$5 = var$4 === null ? null : var$4.$value0;
    var$4 = var$5.$watchedObject;
    if (!(var$4 instanceof jl_Short && var$4.$value6 == var$3.$value6 ? 1 : 0)) {
        var$5.$watchedObject = var$3;
        var$5.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_Entity_onStruckByLightning = ($this, $par1EntityLightningBolt) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityLightningBolt = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = 5;
        $ptr = 1;
    case 1:
        $this.$dealFireDamage(var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$fire + 1 | 0;
        $this.$fire = var$2;
        if (!var$2) {
            var$2 = 160;
            nms_Enchantment_$callClinit();
            var$3 = nms_Enchantment_fireProtection.$effectId;
            var$4 = $this.$getLastActiveItems();
            nms_EnchantmentHelper_$callClinit();
            if (var$4 === null)
                var$5 = 0;
            else {
                var$4 = var$4.data;
                var$5 = 0;
                var$6 = var$4.length;
                var$7 = 0;
                while (var$7 < var$6) {
                    var$8 = nms_EnchantmentHelper_getEnchantmentLevel(var$3, var$4[var$7]);
                    if (var$8 > var$5)
                        var$5 = var$8;
                    var$7 = var$7 + 1 | 0;
                }
            }
            if (var$5 > 0) {
                var$9 = 160.0 * var$5 * 0.15000000596046448;
                var$3 = var$9 | 0;
                if (var$9 < var$3)
                    var$3 = var$3 - 1 | 0;
                var$2 = var$2 - var$3 | 0;
            }
            if ($this.$fire < var$2)
                $this.$fire = var$2;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLightningBolt, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_Entity_onKillEntity = ($this, $par1EntityLivingBase) => {
    return;
},
nms_Entity_pushOutOfBlocks = ($this, $par1, $par3, $par5) => {
    let $var7, $var8, $var9, $var10, $var12, $var14, $var16, var$11, $var21, $var17, $var18, $var20, $var22, $var23, $var24, var$19, $var26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var26 = $thread.pop();var$19 = $thread.pop();$var24 = $thread.pop();$var23 = $thread.pop();$var22 = $thread.pop();$var20 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var21 = $thread.pop();var$11 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $par1 | 0;
        if ($par1 < $var7)
            $var7 = $var7 - 1 | 0;
        $var8 = $par3 | 0;
        if ($par3 < $var8)
            $var8 = $var8 - 1 | 0;
        $var9 = $par5 | 0;
        if ($par5 < $var9)
            $var9 = $var9 - 1 | 0;
        $var10 = $par1 - $var7;
        $var12 = $par3 - $var8;
        $var14 = $par5 - $var9;
        $var16 = $this.$worldObj;
        var$11 = $this.$boundingBox0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getCollidingBlockBounds($var16, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if ($var16.$size0 ? 0 : 1) {
            $var16 = $this.$worldObj;
            $ptr = 3;
            continue main;
        }
        $var16 = $this.$worldObj;
        $var21 = $var7 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockFullCube($var16, $var21, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        $var17 = $var21 ? 0 : 1;
        $var16 = $this.$worldObj;
        $var21 = $var7 + 1 | 0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_isBlockFullCube($var16, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        if (!$var21)
            return 0;
        $var16 = $this.$worldObj;
        $var21 = $var7 - 1 | 0;
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_World_isBlockFullCube($var16, $var21, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        $var18 = $var21 ? 0 : 1;
        $var16 = $this.$worldObj;
        $var21 = $var8 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_isBlockFullCube($var16, $var7, $var21, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        $var16 = $this.$worldObj;
        $var21 = $var8 + 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_isBlockFullCube($var16, $var7, $var21, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        $var20 = $var21 ? 0 : 1;
        $var16 = $this.$worldObj;
        $var21 = $var9 - 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockFullCube($var16, $var7, $var8, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        $var21 = $var21 ? 0 : 1;
        $var16 = $this.$worldObj;
        $var22 = $var9 + 1 | 0;
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockFullCube($var16, $var7, $var8, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var22 = $tmp;
        $var22 = $var22 ? 0 : 1;
        $var23 = 3;
        $var24 = 9999.0;
        if ($var17 && $var10 < $var24) {
            $var23 = 0;
            $var24 = $var10;
        }
        if (!$var18)
            $par1 = $var24;
        else {
            $par1 = 1.0 - $var10;
            if ($par1 < $var24)
                $var23 = 1;
            else
                $par1 = $var24;
        }
        if (!$var20)
            $par3 = $par1;
        else {
            $par3 = 1.0 - $var12;
            if ($par3 < $par1)
                $var23 = 3;
            else
                $par3 = $par1;
        }
        if ($var21 && $var14 < $par3) {
            $var23 = 4;
            $par3 = $var14;
        }
        if ($var22 && 1.0 - $var14 < $par3)
            $var23 = 5;
        $var16 = $this.$rand;
        var$19 = Long_and(Long_add(Long_mul($var16.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var16.$seed = var$19;
        $var26 = Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.10000000149011612;
        if (!$var23)
            $this.$motionX =  -$var26;
        if ($var23 == 1)
            $this.$motionX = $var26;
        if ($var23 == 2)
            $this.$motionY =  -$var26;
        if ($var23 == 3)
            $this.$motionY = $var26;
        if ($var23 == 4)
            $this.$motionZ =  -$var26;
        if ($var23 == 5)
            $this.$motionZ = $var26;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, $var7, $var8, $var9, $var10, $var12, $var14, $var16, var$11, $var21, $var17, $var18, $var20, $var22, $var23, $var24, var$19, $var26, $ptr);
},
nms_Entity_setInWeb = $this => {
    $this.$isInWeb = 1;
    $this.$fallDistance = 0.0;
},
nms_Entity_getEntityName = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_EntityList_$callClinit();
    $var1 = nms_EntityList_classToStringMapping;
    var$2 = $this.constructor;
    if (var$2 === null)
        var$3 = null;
    else {
        var$3 = var$2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$2;
            var$2.classObject = var$3;
        }
    }
    if (var$3 === null) {
        $var1 = $var1.$elementData.data[0];
        while ($var1 !== null && $var1.$key !== null) {
            $var1 = $var1.$next3;
        }
    } else {
        var$2 = var$3;
        if (!var$2.$id$)
            var$2.$id$ = $rt_nextId();
        var$4 = var$3.$id$;
        var$5 = $var1.$elementData.data;
        $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var1 !== null) {
            if ($var1.$origKeyHash == var$4) {
                var$2 = $var1.$key;
                if (var$3 !== var$2 && !(var$3 !== var$2 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var1 = $var1.$next3;
        }
    }
    $var1 = $var1 === null ? null : $var1.$value0;
    if ($var1 === null)
        $var1 = $rt_s(1266);
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1267));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $var1);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(400));
    $var1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $var1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        nms_StatCollector_$callClinit();
        return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var1);
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($var1);
    $rt_throw($var1);
},
nms_Entity_getParts = $this => {
    return null;
},
nms_Entity_isEntityEqual = ($this, $par1Entity) => {
    return $this !== $par1Entity ? 0 : 1;
},
nms_Entity_getRotationYawHead = $this => {
    return 0.0;
},
nms_Entity_canAttackWithItem = $this => {
    return 1;
},
nms_Entity_hitByEntity = ($this, $par1Entity) => {
    return 0;
},
nms_Entity_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    var$1 = $rt_createArray(jl_Object, 7);
    var$2 = $this.constructor;
    if (var$2 === null)
        var$3 = null;
    else {
        var$3 = var$2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$2;
            var$2.classObject = var$3;
        }
    }
    var$4 = var$1.data;
    var$4[0] = jl_Class_getSimpleName(var$3);
    var$4[1] = $this.$getEntityName();
    var$5 = $this.$entityId;
    if (var$5 >= (-128) && var$5 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$5 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$5;
    }
    var$4[2] = var$3;
    var$3 = $this.$worldObj;
    var$4[3] = var$3 === null ? $rt_s(1268) : var$3.$worldInfo.$getWorldName();
    var$6 = $this.$posX;
    var$3 = new jl_Double;
    var$3.$value8 = var$6;
    var$4[4] = var$3;
    var$6 = $this.$posY;
    var$3 = new jl_Double;
    var$3.$value8 = var$6;
    var$4[5] = var$3;
    var$6 = $this.$posZ;
    var$3 = new jl_Double;
    var$3.$value8 = var$6;
    var$4[6] = var$3;
    var$3 = new ju_Formatter;
    ju_Locale_$callClinit();
    var$7 = ju_Locale_defaultLocale;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    var$3.$out1 = var$8;
    var$3.$locale2 = var$7;
    a: {
        try {
            ju_Formatter$FormatWriter_write(ju_Formatter$FormatWriter__init_(var$3, var$8, var$7, $rt_s(1269), var$1));
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                var$9 = $$je;
            } else {
                throw $$e;
            }
        }
        var$3.$ioException = var$9;
    }
    var$3 = var$3.$out1;
    if (var$3 === null) {
        var$9 = new ju_FormatterClosedException;
        var$9.$suppressionEnabled = 1;
        var$9.$writableStackTrace = 1;
        $rt_throw(var$9);
    }
    var$9 = new jl_String;
    var$1 = var$3.$buffer;
    var$10 = var$1.data;
    var$11 = var$3.$length0;
    var$5 = var$10.length;
    if (var$11 >= 0 && var$11 <= (var$5 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$1.data, 0, var$11);
        return var$9;
    }
    var$9 = new jl_IndexOutOfBoundsException;
    jl_Exception__init_(var$9);
    $rt_throw(var$9);
},
nms_Entity_isEntityInvulnerable = $this => {
    return $this.$invulnerable;
},
nms_Entity_copyDataFrom = ($this, $par1Entity, $par2) => {
    let $var3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = new nms_NBTTagCompound;
        $var3.$name = $rt_s(3);
        var$4 = new ju_HashMap;
        $par2 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, $par2);
        var$6 = var$5.data;
        var$4.$elementData = var$5;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$6.length * 0.75 | 0;
        $var3.$tagMap = var$4;
        nms_Entity_writeToNBT($par1Entity, $var3);
        $ptr = 1;
    case 1:
        nms_Entity_readFromNBT($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$timeUntilPortal = $par1Entity.$timeUntilPortal;
        $this.$teleportDirection = $par1Entity.$teleportDirection;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var3, var$4, var$5, var$6, $ptr);
},
nms_Entity_travelToDimension = ($this, $par1) => {
    let var$2, $var2, $var3, $var4, $var5, var$7, $var6, var$9, var$10, var$11, $var7$posY, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var7$posY = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj;
        if (!var$2.$isRemote && !$this.$isDead) {
            $var2 = nms_MinecraftServer_mcServer;
            $var3 = $this.$dimension;
            $var4 = $var3 == (-1) ? $var2.$worldServers.data[1] : $var3 != 1 ? $var2.$worldServers.data[0] : $var2.$worldServers.data[2];
            $var5 = $par1 == (-1) ? $var2.$worldServers.data[1] : $par1 != 1 ? $var2.$worldServers.data[0] : $var2.$worldServers.data[2];
            $this.$dimension = $par1;
            var$7 = $rt_compare($var3, 1);
            if (!var$7 && $par1 == 1) {
                $var5 = $var2.$worldServers.data[0];
                $this.$dimension = 0;
            }
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_World_removeEntity(var$2, $this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 0;
        var$2 = $var2.$serverConfigManager;
        $ptr = 2;
    case 2:
        nms_ServerConfigurationManager_transferEntityToWorld(var$2, $this, $var3, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityList_$callClinit();
        var$2 = nms_EntityList_classToStringMapping;
        $var2 = $this.constructor;
        if ($var2 === null)
            $var6 = null;
        else {
            $var6 = $var2.classObject;
            if ($var6 === null) {
                $var6 = new jl_Class;
                $var6.$platformClass = $var2;
                $var2.classObject = $var6;
            }
        }
        if ($var6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var2 = $var6;
            if (!$var2.$id$)
                $var2.$id$ = $rt_nextId();
            var$9 = $var6.$id$;
            var$10 = var$2.$elementData.data;
            var$2 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    $var2 = var$2.$key;
                    if ($var6 !== $var2 && !($var6 !== $var2 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var6 = var$2 === null ? null : var$2.$value0;
        var$2 = nms_EntityList_stringToConstructorMapping;
        if ($var6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            a: {
                if (!$var6.$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $var6.$nativeString.length)
                            break a;
                        $var6.$hashCode1 = (31 * $var6.$hashCode1 | 0) + $var6.$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$9 = $var6.$hashCode1;
            var$10 = var$2.$elementData.data;
            var$2 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    b: {
                        $var2 = var$2.$key;
                        if ($var6 !== $var2) {
                            if ($var6 === $var2)
                                $var3 = 1;
                            else if (!($var2 instanceof jl_String))
                                $var3 = 0;
                            else {
                                $var2 = $var2;
                                $var3 = $var6.$nativeString !== $var2.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break b;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2 !== null) {
            $ptr = 3;
            continue main;
        }
        if (jl_System_errCache === null) {
            var$2 = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_(var$2);
            var$2.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            var$2.$sb = $var2;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$2;
        }
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1270));
        $var3 = var$2.$length0;
        if ($var6 === null)
            $var6 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, $var3, $var6);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1271));
        $var2 = new jl_String;
        var$10 = var$2.$buffer;
        var$11 = var$10.data;
        $var7$posY = var$2.$length0;
        var$9 = var$11.length;
        if ($var7$posY >= 0 && $var7$posY <= (var$9 - 0 | 0)) {
            $var2.$nativeString = $rt_charArrayToString(var$10.data, 0, $var7$posY);
            $rt_putStderr($rt_ustr($var2));
            $rt_putStderr("\n");
            $var6 = null;
            if ($var6 === null) {
                $this.$isDead = 1;
                $var4.$updateEntityTick = 0;
                $var5.$updateEntityTick = 0;
                return;
            }
            var$2 = new nms_NBTTagCompound;
            var$2.$name = $rt_s(3);
            $var2 = new ju_HashMap;
            $var3 = ju_HashMap_calculateCapacity(16);
            $var2.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, $var3);
            var$10 = var$11.data;
            $var2.$elementData = var$11;
            $var2.$loadFactor = 0.75;
            $var2.$threshold = var$10.length * 0.75 | 0;
            var$2.$tagMap = $var2;
            nms_Entity_writeToNBT($this, var$2);
            $ptr = 4;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$2);
        $rt_throw(var$2);
    case 3:
        $tmp = var$2.$apply($var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 === null) {
            $this.$isDead = 1;
            $var4.$updateEntityTick = 0;
            $var5.$updateEntityTick = 0;
            return;
        }
        var$2 = new nms_NBTTagCompound;
        var$2.$name = $rt_s(3);
        $var2 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        $var2.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$10 = var$11.data;
        $var2.$elementData = var$11;
        $var2.$loadFactor = 0.75;
        $var2.$threshold = var$10.length * 0.75 | 0;
        var$2.$tagMap = $var2;
        nms_Entity_writeToNBT($this, var$2);
        $ptr = 4;
    case 4:
        nms_Entity_readFromNBT($var6, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var6.$timeUntilPortal = $this.$timeUntilPortal;
        $var6.$teleportDirection = $this.$teleportDirection;
        if (!var$7 && $par1 == 1) {
            $par1 = $var5.$worldInfo.$getSpawnX();
            $var5.$worldInfo.$getSpawnY();
            var$7 = $var5.$worldInfo.$getSpawnZ();
            var$2 = $this.$worldObj;
            $ptr = 6;
            continue main;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        $var4.$updateEntityTick = 0;
        $var5.$updateEntityTick = 0;
        return;
    case 6:
        $tmp = nms_World_getTopSolidOrLiquidBlock(var$2, $par1, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var7$posY = $tmp;
        var$13 = $par1;
        var$14 = $var7$posY;
        var$15 = var$7;
        var$16 = $var6.$rotationYaw;
        var$17 = $var6.$rotationPitch;
        $var6.$posX = var$13;
        $var6.$prevPosX = var$13;
        $var6.$lastTickPosX = var$13;
        var$18 = var$14 + $var6.$yOffset;
        $var6.$posY = var$18;
        $var6.$prevPosY = var$18;
        $var6.$lastTickPosY = var$18;
        $var6.$posZ = var$15;
        $var6.$prevPosZ = var$15;
        $var6.$lastTickPosZ = var$15;
        $var6.$rotationYaw = var$16;
        $var6.$rotationPitch = var$17;
        nms_Entity_setPosition($var6, var$13, var$18, var$15);
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, $var2, $var3, $var4, $var5, var$7, $var6, var$9, var$10, var$11, $var7$posY, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_Entity_getBlockExplosionResistance = ($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6Block) => {
    return $par6Block.$getExplosionResistance($this);
},
nms_Entity_shouldExplodeBlock = ($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6, $par7) => {
    return 1;
};
let nms_Entity_getTeleportDirection = $this => {
    return $this.$teleportDirection;
},
nms_Entity_doesEntityNotTriggerPressurePlate = $this => {
    return 0;
},
nms_Entity_getUniqueID = $this => {
    return $this.$entityUniqueID;
},
nms_Entity_isPushedByWater = $this => {
    return 1;
},
nms_Entity_getTranslatedEntityName = $this => {
    return $this.$getEntityName();
};
function nms_EntityHanging() {
    let a = this; nms_Entity.call(a);
    a.$tickCounter10 = 0;
    a.$hangingDirection = 0;
    a.$xPosition1 = 0;
    a.$yPosition0 = 0;
    a.$zPosition1 = 0;
}
let nms_EntityHanging_entityInit = $this => {
    return;
},
nms_EntityHanging_setDirection = ($this, $par1) => {
    let $var2, $var3, $var4, var$5, $var7, var$7, var$8, $var5, $var6, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20;
    $this.$hangingDirection = $par1;
    $var2 = $par1 * 90 | 0;
    $this.$rotationYaw = $var2;
    $this.$prevRotationYaw = $var2;
    $var2 = $this.$getWidthPixels();
    $var3 = $this.$getHeightPixels();
    $var4 = $this.$getWidthPixels();
    var$5 = $rt_compare($par1, 2);
    if (var$5 && $par1)
        $var2 = 0.5;
    else {
        $var4 = 0.5;
        $var7 = nms_Direction_rotateOpposite.data[$par1] * 90 | 0;
        $this.$prevRotationYaw = $var7;
        $this.$rotationYaw = $var7;
    }
    $var2 = $var2 / 32.0;
    var$7 = $var3 / 32.0;
    var$8 = $var4 / 32.0;
    $var5 = $this.$xPosition1 + 0.5;
    $var6 = $this.$yPosition0 + 0.5;
    $var7 = $this.$zPosition1 + 0.5;
    if (!var$5)
        $var7 = $var7 - 0.5625;
    var$11 = $rt_compare($par1, 1);
    if (!var$11)
        $var5 = $var5 - 0.5625;
    if (!$par1)
        $var7 = $var7 + 0.5625;
    var$12 = $rt_compare($par1, 3);
    if (!var$12)
        $var5 = $var5 + 0.5625;
    if (!var$5) {
        var$13 = $this.$getWidthPixels();
        $var5 = $var5 - (var$13 == 32 ? 0.5 : var$13 != 64 ? 0.0 : 0.5);
    }
    if (!var$11) {
        var$11 = $this.$getWidthPixels();
        $var7 = $var7 + (var$11 == 32 ? 0.5 : var$11 != 64 ? 0.0 : 0.5);
    }
    if (!$par1) {
        var$5 = $this.$getWidthPixels();
        $var5 = $var5 + (var$5 == 32 ? 0.5 : var$5 != 64 ? 0.0 : 0.5);
    }
    if (!var$12) {
        var$5 = $this.$getWidthPixels();
        $var7 = $var7 - (var$5 == 32 ? 0.5 : var$5 != 64 ? 0.0 : 0.5);
    }
    $par1 = $this.$getHeightPixels();
    $var3 = $var6 + ($par1 == 32 ? 0.5 : $par1 != 64 ? 0.0 : 0.5);
    nms_Entity_setPosition($this, $var5, $var3, $var7);
    var$14 = $this.$boundingBox0;
    var$15 = $var5 - $var2 + 0.03125;
    var$16 = $var3 - var$7 + 0.03125;
    var$17 = $var7 - var$8 + 0.03125;
    var$18 = $var5 + $var2 + (-0.03125);
    var$19 = $var3 + var$7 + (-0.03125);
    var$20 = $var7 + var$8 + (-0.03125);
    var$14.$minX0 = var$15;
    var$14.$minY0 = var$16;
    var$14.$minZ0 = var$17;
    var$14.$maxX0 = var$18;
    var$14.$maxY = var$19;
    var$14.$maxZ0 = var$20;
},
nms_EntityHanging_onUpdate = $this => {
    let var$1, var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$prevPosX = $this.$posX;
        $this.$prevPosY = $this.$posY;
        $this.$prevPosZ = $this.$posZ;
        var$1 = $this.$tickCounter10;
        $this.$tickCounter10 = var$1 + 1 | 0;
        if (var$1 == 100 && !$this.$worldObj.$isRemote) {
            $this.$tickCounter10 = 0;
            if (!$this.$isDead) {
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = $this.$onValidSurface();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2)
            return;
        $this.$isDead = 1;
        var$3 = null;
        $ptr = 2;
    case 2:
        $this.$onBroken(var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $ptr);
},
nms_EntityHanging_onValidSurface = $this => {
    let $var8, $var11, $var1, $var2, $var3, $var5, var$7, var$8, $var2_0, $var6, $var7, $var1_0, $var10$index, $var10$index_0, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();$var10$index_0 = $thread.pop();$var10$index = $thread.pop();$var1_0 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var2_0 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$var11 = $thread.pop();$var8 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $this.$worldObj;
        $var11 = $this.$boundingBox0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getCollidingBoundingBoxes($var8, $this, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!($var8.$size0 ? 0 : 1))
            return 0;
        $var1 = $this.$getWidthPixels() / 16 | 0;
        if (1 > $var1)
            $var1 = 1;
        $var2 = $this.$getHeightPixels() / 16 | 0;
        if (1 > $var2)
            $var2 = 1;
        $var3 = $this.$xPosition1;
        $var5 = $this.$zPosition1;
        if ($this.$hangingDirection == 2) {
            var$7 = $this.$posX - $this.$getWidthPixels() / 32.0;
            $var3 = var$7 | 0;
            if (var$7 < $var3)
                $var3 = $var3 - 1 | 0;
        }
        if ($this.$hangingDirection == 1) {
            var$7 = $this.$posZ - $this.$getWidthPixels() / 32.0;
            $var5 = var$7 | 0;
            if (var$7 < $var5)
                $var5 = $var5 - 1 | 0;
        }
        if (!$this.$hangingDirection) {
            var$7 = $this.$posX - $this.$getWidthPixels() / 32.0;
            $var3 = var$7 | 0;
            if (var$7 < $var3)
                $var3 = $var3 - 1 | 0;
        }
        if ($this.$hangingDirection == 3) {
            var$8 = $this.$posZ - $this.$getWidthPixels() / 32.0;
            $var5 = var$8 | 0;
            if (var$8 < $var5)
                $var5 = $var5 - 1 | 0;
        }
        var$8 = $this.$posY - $this.$getHeightPixels() / 32.0;
        $var2_0 = var$8 | 0;
        if (var$8 < $var2_0)
            $var2_0 = $var2_0 - 1 | 0;
        $var6 = 0;
        while ($var6 < $var1) {
            $var7 = 0;
            if ($var7 < $var2) {
                $var1_0 = $this.$hangingDirection;
                if ($var1_0 != 2 && $var1_0) {
                    $var8 = $this.$worldObj;
                    $var1_0 = $this.$xPosition1;
                    $var10$index = $var2_0 + $var7 | 0;
                    $var10$index_0 = $var5 + $var6 | 0;
                    $ptr = 4;
                    continue main;
                }
                $var8 = $this.$worldObj;
                $var1_0 = $var3 + $var6 | 0;
                $var10$index = $var2_0 + $var7 | 0;
                $var10$index_0 = $this.$zPosition1;
                $ptr = 3;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
        }
        $var8 = $this.$worldObj;
        $var11 = $this.$boundingBox0;
        $var9 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var8, $this, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var10$index_0 = 0;
        $var1_0 = $var9.$modCount;
        $var1 = $var9.$size();
        while (true) {
            if (!($var10$index_0 >= $var1 ? 0 : 1))
                return 1;
            if ($var1_0 < $var9.$modCount) {
                $var8 = new ju_ConcurrentModificationException;
                $var8.$suppressionEnabled = 1;
                $var8.$writableStackTrace = 1;
                $rt_throw($var8);
            }
            $var10$index = $var10$index_0 + 1 | 0;
            if ($var9.$get($var10$index_0) instanceof nms_EntityHanging)
                break;
            $var10$index_0 = $var10$index;
        }
        return 0;
    case 3:
        $tmp = nms_World_getBlockId($var8, $var1_0, $var10$index, $var10$index_0);
        if ($rt_suspending()) {
            break main;
        }
        $var1_0 = $tmp;
        if (!$var1_0) {
            nms_Material_$callClinit();
            $var8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var8 = nms_Block_blocksList.data[$var1_0].$blockMaterial;
        }
        if (!$var8.$isSolid())
            return 0;
        $var7 = $var7 + 1 | 0;
        while (true) {
            if ($var7 < $var2) {
                $var1_0 = $this.$hangingDirection;
                if ($var1_0 != 2 && $var1_0) {
                    $var8 = $this.$worldObj;
                    $var1_0 = $this.$xPosition1;
                    $var10$index = $var2_0 + $var7 | 0;
                    $var10$index_0 = $var5 + $var6 | 0;
                    $ptr = 4;
                    continue main;
                }
                $var8 = $this.$worldObj;
                $var1_0 = $var3 + $var6 | 0;
                $var10$index = $var2_0 + $var7 | 0;
                $var10$index_0 = $this.$zPosition1;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
            if ($var6 >= $var1)
                break;
            $var7 = 0;
        }
        $var8 = $this.$worldObj;
        $var11 = $this.$boundingBox0;
        $var9 = null;
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($var8, $var1_0, $var10$index, $var10$index_0);
        if ($rt_suspending()) {
            break main;
        }
        $var1_0 = $tmp;
        if (!$var1_0) {
            nms_Material_$callClinit();
            $var8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var8 = nms_Block_blocksList.data[$var1_0].$blockMaterial;
        }
        if (!$var8.$isSolid())
            return 0;
        $var7 = $var7 + 1 | 0;
        while (true) {
            if ($var7 < $var2) {
                $var1_0 = $this.$hangingDirection;
                if ($var1_0 != 2 && $var1_0) {
                    $var8 = $this.$worldObj;
                    $var1_0 = $this.$xPosition1;
                    $var10$index = $var2_0 + $var7 | 0;
                    $var10$index_0 = $var5 + $var6 | 0;
                    continue main;
                }
                $var8 = $this.$worldObj;
                $var1_0 = $var3 + $var6 | 0;
                $var10$index = $var2_0 + $var7 | 0;
                $var10$index_0 = $this.$zPosition1;
                $ptr = 3;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
            if ($var6 >= $var1)
                break;
            $var7 = 0;
        }
        $var8 = $this.$worldObj;
        $var11 = $this.$boundingBox0;
        $var9 = null;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var8, $var11, $var1, $var2, $var3, $var5, var$7, var$8, $var2_0, $var6, $var7, $var1_0, $var10$index, $var10$index_0, $var9, $ptr);
},
nms_EntityHanging_canBeCollidedWith = $this => {
    return 1;
},
nms_EntityHanging_hitByEntity = ($this, $par1Entity) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($par1Entity instanceof nms_EntityPlayer))
            var$2 = 0;
        else if ($this.$invulnerable)
            var$2 = 0;
        else {
            if (!$this.$isDead && !$this.$worldObj.$isRemote) {
                $this.$isDead = 1;
                $this.$velocityChanged = 1;
                $ptr = 1;
                continue main;
            }
            var$2 = 1;
        }
        return var$2;
    case 1:
        $this.$onBroken($par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, $ptr);
},
nms_EntityHanging_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if (!$this.$isDead && !$this.$worldObj.$isRemote) {
            $this.$isDead = 1;
            $this.$velocityChanged = 1;
            $par1DamageSource = $par1DamageSource.$getEntity();
            $ptr = 1;
            continue main;
        }
        return 1;
    case 1:
        $this.$onBroken($par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $ptr);
},
nms_EntityHanging_moveEntity = ($this, $par1, $par3, $par5) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && !$this.$isDead && $par1 * $par1 + $par3 * $par3 + $par5 * $par5 > 0.0) {
            $this.$isDead = 1;
            var$4 = null;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $this.$onBroken(var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, $ptr);
},
nms_EntityHanging_addVelocity = ($this, $par1, $par3, $par5) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && !$this.$isDead && $par1 * $par1 + $par3 * $par3 + $par5 * $par5 > 0.0) {
            $this.$isDead = 1;
            var$4 = null;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $this.$onBroken(var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, $ptr);
},
nms_EntityHanging_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    a: {
        var$2 = $this.$hangingDirection << 24 >> 24;
        var$3 = $par1NBTTagCompound.$tagMap;
        var$4 = new nms_NBTTagByte;
        var$4.$name = $rt_s(1272);
        var$4.$data0 = var$2;
        ju_HashMap_putImpl(var$3, $rt_s(1272), var$4);
        var$2 = $this.$xPosition1;
        var$3 = $par1NBTTagCompound.$tagMap;
        var$4 = new nms_NBTTagInt;
        var$4.$name = $rt_s(1273);
        var$4.$data = var$2;
        ju_HashMap_putImpl(var$3, $rt_s(1273), var$4);
        var$2 = $this.$yPosition0;
        var$3 = $par1NBTTagCompound.$tagMap;
        var$4 = new nms_NBTTagInt;
        var$4.$name = $rt_s(1274);
        var$4.$data = var$2;
        ju_HashMap_putImpl(var$3, $rt_s(1274), var$4);
        var$2 = $this.$zPosition1;
        var$3 = $par1NBTTagCompound.$tagMap;
        var$4 = new nms_NBTTagInt;
        var$4.$name = $rt_s(1275);
        var$4.$data = var$2;
        ju_HashMap_putImpl(var$3, $rt_s(1275), var$4);
        switch ($this.$hangingDirection) {
            case 0:
                break;
            case 1:
                var$4 = $par1NBTTagCompound.$tagMap;
                $par1NBTTagCompound = new nms_NBTTagByte;
                $par1NBTTagCompound.$name = $rt_s(1276);
                $par1NBTTagCompound.$data0 = 1;
                ju_HashMap_putImpl(var$4, $rt_s(1276), $par1NBTTagCompound);
                break a;
            case 2:
                var$4 = $par1NBTTagCompound.$tagMap;
                $par1NBTTagCompound = new nms_NBTTagByte;
                $par1NBTTagCompound.$name = $rt_s(1276);
                $par1NBTTagCompound.$data0 = 0;
                ju_HashMap_putImpl(var$4, $rt_s(1276), $par1NBTTagCompound);
                break a;
            case 3:
                var$4 = $par1NBTTagCompound.$tagMap;
                $par1NBTTagCompound = new nms_NBTTagByte;
                $par1NBTTagCompound.$name = $rt_s(1276);
                $par1NBTTagCompound.$data0 = 3;
                ju_HashMap_putImpl(var$4, $rt_s(1276), $par1NBTTagCompound);
                break a;
            default:
                break a;
        }
        var$4 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagByte;
        $par1NBTTagCompound.$name = $rt_s(1276);
        $par1NBTTagCompound.$data0 = 2;
        ju_HashMap_putImpl(var$4, $rt_s(1276), $par1NBTTagCompound);
    }
},
nms_EntityHanging_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1272).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1272).$nativeString.length)
                    break a;
                $rt_s(1272).$hashCode1 = (31 * $rt_s(1272).$hashCode1 | 0) + $rt_s(1272).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(1272).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(1272) !== var$5) {
                    if ($rt_s(1272) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(1272).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    var$3 = var$2 === null ? 0 : 1;
    c: {
        if (var$3) {
            d: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1272).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1272).$nativeString.length)
                            break d;
                        $rt_s(1272).$hashCode1 = (31 * $rt_s(1272).$hashCode1 | 0) + $rt_s(1272).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1272).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    e: {
                        var$5 = var$2.$key;
                        if ($rt_s(1272) !== var$5) {
                            if ($rt_s(1272) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(1272).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break e;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$3 = 0;
            else {
                var$2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1272) !== null) {
                    f: {
                        if (!$rt_s(1272).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(1272).$nativeString.length)
                                    break f;
                                $rt_s(1272).$hashCode1 = (31 * $rt_s(1272).$hashCode1 | 0) + $rt_s(1272).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(1272).$hashCode1;
                    var$4 = var$2.$elementData.data;
                    var$8 = var$4[var$6 & (var$4.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == var$6) {
                            g: {
                                var$2 = var$8.$key;
                                if ($rt_s(1272) !== var$2) {
                                    if ($rt_s(1272) !== var$2) {
                                        if (var$2 instanceof jl_String) {
                                            var$2 = var$2;
                                            var$3 = $rt_s(1272).$nativeString !== var$2.$nativeString ? 0 : 1;
                                        } else
                                            var$3 = 0;
                                    } else
                                        var$3 = 1;
                                    if (!var$3) {
                                        var$3 = 0;
                                        break g;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                } else {
                    var$8 = var$2.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                }
                var$3 = (var$8 === null ? null : var$8.$value0).$data0;
            }
            $this.$hangingDirection = var$3;
        } else {
            h: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1276).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1276).$nativeString.length)
                            break h;
                        $rt_s(1276).$hashCode1 = (31 * $rt_s(1276).$hashCode1 | 0) + $rt_s(1276).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1276).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    i: {
                        var$5 = var$2.$key;
                        if ($rt_s(1276) !== var$5) {
                            if ($rt_s(1276) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(1276).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break i;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$3 = 0;
            else {
                var$2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1276) === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    j: {
                        if (!$rt_s(1276).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(1276).$nativeString.length)
                                    break j;
                                $rt_s(1276).$hashCode1 = (31 * $rt_s(1276).$hashCode1 | 0) + $rt_s(1276).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(1276).$hashCode1;
                    var$4 = var$2.$elementData.data;
                    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$7) {
                            k: {
                                var$5 = var$2.$key;
                                if ($rt_s(1276) !== var$5) {
                                    if ($rt_s(1276) === var$5)
                                        var$3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$5 = var$5;
                                        var$3 = $rt_s(1276).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break k;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$3 = (var$2 === null ? null : var$2.$value0).$data0;
            }
            switch (var$3) {
                case 0:
                    break;
                case 1:
                    $this.$hangingDirection = 1;
                    break c;
                case 2:
                    $this.$hangingDirection = 0;
                    break c;
                case 3:
                    $this.$hangingDirection = 3;
                    break c;
                default:
                    break c;
            }
            $this.$hangingDirection = 2;
        }
    }
    l: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1273).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1273).$nativeString.length)
                    break l;
                $rt_s(1273).$hashCode1 = (31 * $rt_s(1273).$hashCode1 | 0) + $rt_s(1273).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1273).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            m: {
                var$5 = var$2.$key;
                if ($rt_s(1273) !== var$5) {
                    if ($rt_s(1273) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(1273).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break m;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1273) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            n: {
                if (!$rt_s(1273).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1273).$nativeString.length)
                            break n;
                        $rt_s(1273).$hashCode1 = (31 * $rt_s(1273).$hashCode1 | 0) + $rt_s(1273).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1273).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    o: {
                        var$5 = var$2.$key;
                        if ($rt_s(1273) !== var$5) {
                            if ($rt_s(1273) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(1273).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break o;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    p: {
        $this.$xPosition1 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1274).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1274).$nativeString.length)
                    break p;
                $rt_s(1274).$hashCode1 = (31 * $rt_s(1274).$hashCode1 | 0) + $rt_s(1274).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1274).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            q: {
                var$5 = var$2.$key;
                if ($rt_s(1274) !== var$5) {
                    if ($rt_s(1274) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(1274).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break q;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1274) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            r: {
                if (!$rt_s(1274).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1274).$nativeString.length)
                            break r;
                        $rt_s(1274).$hashCode1 = (31 * $rt_s(1274).$hashCode1 | 0) + $rt_s(1274).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1274).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    s: {
                        var$5 = var$2.$key;
                        if ($rt_s(1274) !== var$5) {
                            if ($rt_s(1274) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(1274).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break s;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    t: {
        $this.$yPosition0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1275).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1275).$nativeString.length)
                    break t;
                $rt_s(1275).$hashCode1 = (31 * $rt_s(1275).$hashCode1 | 0) + $rt_s(1275).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1275).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            u: {
                var$5 = var$2.$key;
                if ($rt_s(1275) !== var$5) {
                    if ($rt_s(1275) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(1275).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break u;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1275) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            v: {
                if (!$rt_s(1275).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1275).$nativeString.length)
                            break v;
                        $rt_s(1275).$hashCode1 = (31 * $rt_s(1275).$hashCode1 | 0) + $rt_s(1275).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1275).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$7) {
                    w: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(1275) !== var$2) {
                            if ($rt_s(1275) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(1275).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break w;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$zPosition1 = var$3;
    nms_EntityHanging_setDirection($this, $this.$hangingDirection);
},
nms_EntityHanging_shouldSetPosAfterLoading = $this => {
    return 0;
};
function nms_EntityPainting() {
    nms_EntityHanging.call(this);
    this.$art = null;
}
let nms_EntityPainting__init_ = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $var6, var$9, $var8, $var9, var$12, $var10, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();var$12 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$yOffset = 0.0;
        var$6 = 0.5;
        var$7 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $this.$xPosition1 = $par2;
        $this.$yPosition0 = $par3;
        $this.$zPosition1 = $par4;
        $var6 = new ju_ArrayList;
        $var6.$array = $rt_createArray(jl_Object, 10);
        var$9 = (nms_EnumArt_$VALUES.$clone0()).data;
        $var8 = var$9.length;
        $var9 = 0;
        if ($var9 >= $var8) {
            $var9 = $var6.$size0;
            $par2 = $var9 ? 0 : 1;
            a: {
                if (!$par2) {
                    $par1World = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$12;
                    $par4 = Long_lo(Long_shru(var$12, 17));
                    $par2 = $var9 - 1 | 0;
                    if (!($var9 & $par2))
                        $par3 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt($par4)), 31));
                    else
                        while (true) {
                            $par3 = $par4 % $var9 | 0;
                            if ((($par4 - $par3 | 0) + $par2 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1World.$seed = var$12;
                            $par4 = Long_lo(Long_shru(var$12, 17));
                        }
                    if ($par3 < 0)
                        break a;
                    if ($par3 >= $var9)
                        break a;
                    $this.$art = $var6.$array.data[$par3];
                }
                nms_EntityHanging_setDirection($this, $par5);
                return;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var10 = var$9[$var9];
        $this.$art = $var10;
        nms_EntityHanging_setDirection($this, $par5);
        $ptr = 2;
    case 2:
        $tmp = nms_EntityHanging_onValidSurface($this);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2) {
            ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
            var$14 = $var6.$array.data;
            $par3 = $var6.$size0;
            $var6.$size0 = $par3 + 1 | 0;
            var$14[$par3] = $var10;
            $var6.$modCount = $var6.$modCount + 1 | 0;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 >= $var8) {
            $var9 = $var6.$size0;
            $par2 = $var9 ? 0 : 1;
            b: {
                if (!$par2) {
                    $par1World = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$12;
                    $par4 = Long_lo(Long_shru(var$12, 17));
                    $par2 = $var9 - 1 | 0;
                    if (!($var9 & $par2))
                        $par3 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt($par4)), 31));
                    else
                        while (true) {
                            $par3 = $par4 % $var9 | 0;
                            if ((($par4 - $par3 | 0) + $par2 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1World.$seed = var$12;
                            $par4 = Long_lo(Long_shru(var$12, 17));
                        }
                    if ($par3 < 0)
                        break b;
                    if ($par3 >= $var9)
                        break b;
                    $this.$art = $var6.$array.data[$par3];
                }
                nms_EntityHanging_setDirection($this, $par5);
                return;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var10 = var$9[$var9];
        $this.$art = $var10;
        nms_EntityHanging_setDirection($this, $par5);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $var6, var$9, $var8, $var9, var$12, $var10, var$14, $ptr);
},
nms_EntityPainting__init_0 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_EntityPainting();
    nms_EntityPainting__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_EntityPainting_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$art.$title;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagString;
    var$4.$name = $rt_s(1277);
    var$4.$data1 = var$2;
    if (var$2 !== null) {
        ju_HashMap_putImpl(var$3, $rt_s(1277), var$4);
        nms_EntityHanging_writeEntityToNBT($this, $par1NBTTagCompound);
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    var$5.$message = $rt_s(177);
    $rt_throw(var$5);
},
nms_EntityPainting_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $var4, var$4, var$5, var$6, $var2, $var5, $var6;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1277).$hashCode1) {
            $var4 = 0;
            while (true) {
                if ($var4 >= $rt_s(1277).$nativeString.length)
                    break a;
                $rt_s(1277).$hashCode1 = (31 * $rt_s(1277).$hashCode1 | 0) + $rt_s(1277).$nativeString.charCodeAt($var4) | 0;
                $var4 = $var4 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1277).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(1277) !== var$6) {
                    if ($rt_s(1277) === var$6)
                        $var4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var4 = 0;
                    else {
                        var$6 = var$6;
                        $var4 = $rt_s(1277).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var4) {
                        $var4 = 0;
                        break b;
                    }
                }
                $var4 = 1;
            }
            if ($var4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var2 = $rt_s(3);
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1277) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(1277).$hashCode1) {
                    $var4 = 0;
                    while (true) {
                        if ($var4 >= $rt_s(1277).$nativeString.length)
                            break c;
                        $rt_s(1277).$hashCode1 = (31 * $rt_s(1277).$hashCode1 | 0) + $rt_s(1277).$nativeString.charCodeAt($var4) | 0;
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(1277).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var5) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(1277) !== var$6) {
                            if ($rt_s(1277) === var$6)
                                $var4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var4 = 0;
                            else {
                                var$6 = var$6;
                                $var4 = $rt_s(1277).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var4) {
                                $var4 = 0;
                                break d;
                            }
                        }
                        $var4 = 1;
                    }
                    if ($var4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var2 = (var$2 === null ? null : var$2.$value0).$data1;
    }
    var$5 = (nms_EnumArt_$VALUES.$clone0()).data;
    $var4 = var$5.length;
    $var5 = 0;
    while ($var5 < $var4) {
        $var6 = var$5[$var5];
        var$2 = $var6.$title;
        if (var$2 === $var2)
            var$4 = 1;
        else if (!($var2 instanceof jl_String))
            var$4 = 0;
        else {
            var$6 = $var2;
            var$4 = var$2.$nativeString !== var$6.$nativeString ? 0 : 1;
        }
        if (var$4)
            $this.$art = $var6;
        $var5 = $var5 + 1 | 0;
    }
    if ($this.$art === null)
        $this.$art = nms_EnumArt_Kebab;
    nms_EntityHanging_readEntityFromNBT($this, $par1NBTTagCompound);
},
nms_EntityPainting_getWidthPixels = $this => {
    return $this.$art.$sizeX;
},
nms_EntityPainting_getHeightPixels = $this => {
    return $this.$art.$sizeY;
},
nms_EntityPainting_onBroken = ($this, $par1Entity) => {
    let $var2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Entity instanceof nms_EntityPlayer && $par1Entity.$capabilities.$isCreativeMode)
            return;
        $par1Entity = new nms_ItemStack;
        nms_Item_$callClinit();
        $var2 = nms_Item_painting;
        nms_ItemStack_$callClinit();
        $par1Entity.$itemID = $var2.$itemID0;
        $par1Entity.$stackSize = 1;
        $par1Entity.$itemDamage = 0;
        var$3 = 0.0;
        $ptr = 1;
    case 1:
        nms_Entity_entityDropItem($this, $par1Entity, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var2, var$3, $ptr);
},
nms_ItemAppleGold = $rt_classWithoutFields(nms_ItemFood),
nms_ItemAppleGold__init_0 = ($this, $par1, $par2, $par3, $par4) => {
    nms_Item__init_($this, $par1);
    $this.$itemUseDuration = 32;
    $this.$healAmount = $par2;
    $this.$isWolfsFavoriteMeat = $par4;
    $this.$saturationModifier = $par3;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabFood;
    $this.$hasSubtypes = 1;
},
nms_ItemAppleGold__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ItemAppleGold();
    nms_ItemAppleGold__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ItemAppleGold_onFoodEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par2World.$isRemote) {
            var$4 = new nms_PotionEffect;
            nms_Potion_$callClinit();
            var$4.$potionID = nms_Potion_field_76444_x.$id0;
            var$4.$duration = 2400;
            var$4.$amplifier = 0;
            var$4.$isAmbient = 0;
            $ptr = 1;
            continue main;
        }
        a: {
            if ($par1ItemStack.$itemDamage > 0) {
                if ($par2World.$isRemote)
                    break a;
                $par1ItemStack = new nms_PotionEffect;
                nms_Potion_$callClinit();
                $par1ItemStack.$potionID = nms_Potion_regeneration.$id0;
                $par1ItemStack.$duration = 600;
                $par1ItemStack.$amplifier = 4;
                $par1ItemStack.$isAmbient = 0;
                $ptr = 2;
                continue main;
            }
            if (!$par2World.$isRemote) {
                var$5 = $this.$potionId;
                if (var$5 > 0) {
                    $par1ItemStack = $par2World.$rand0;
                    var$6 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1ItemStack.$seed = var$6;
                    if (Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 < $this.$potionEffectProbability) {
                        $par1ItemStack = new nms_PotionEffect;
                        var$7 = $this.$potionDuration * 20 | 0;
                        var$8 = $this.$potionAmplifier;
                        $par1ItemStack.$potionID = var$5;
                        $par1ItemStack.$duration = var$7;
                        $par1ItemStack.$amplifier = var$8;
                        $par1ItemStack.$isAmbient = 0;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
        }
        return;
    case 1:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, var$4);
        if ($rt_suspending()) {
            break main;
        }
        b: {
            if ($par1ItemStack.$itemDamage > 0) {
                if ($par2World.$isRemote)
                    break b;
                $par1ItemStack = new nms_PotionEffect;
                nms_Potion_$callClinit();
                $par1ItemStack.$potionID = nms_Potion_regeneration.$id0;
                $par1ItemStack.$duration = 600;
                $par1ItemStack.$amplifier = 4;
                $par1ItemStack.$isAmbient = 0;
                $ptr = 2;
                continue main;
            }
            if (!$par2World.$isRemote) {
                var$5 = $this.$potionId;
                if (var$5 > 0) {
                    $par1ItemStack = $par2World.$rand0;
                    var$6 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1ItemStack.$seed = var$6;
                    if (Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 < $this.$potionEffectProbability) {
                        $par1ItemStack = new nms_PotionEffect;
                        var$7 = $this.$potionDuration * 20 | 0;
                        var$8 = $this.$potionAmplifier;
                        $par1ItemStack.$potionID = var$5;
                        $par1ItemStack.$duration = var$7;
                        $par1ItemStack.$amplifier = var$8;
                        $par1ItemStack.$isAmbient = 0;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
        }
        return;
    case 2:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = new nms_PotionEffect;
        $par1ItemStack.$potionID = nms_Potion_resistance.$id0;
        $par1ItemStack.$duration = 6000;
        $par1ItemStack.$amplifier = 0;
        $par1ItemStack.$isAmbient = 0;
        $ptr = 3;
    case 3:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = new nms_PotionEffect;
        $par1ItemStack.$potionID = nms_Potion_fireResistance.$id0;
        $par1ItemStack.$duration = 6000;
        $par1ItemStack.$amplifier = 0;
        $par1ItemStack.$isAmbient = 0;
        $ptr = 4;
    case 4:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $ptr);
};
function nms_Potion() {
    let a = this; jl_Object.call(a);
    a.$id0 = 0;
    a.$field_111188_I = null;
    a.$isBadEffect = 0;
    a.$liquidColor = 0;
    a.$name2 = null;
    a.$statusIconIndex = 0;
    a.$effectiveness = 0.0;
    a.$usable = 0;
}
let nms_Potion_potionTypes = null,
nms_Potion_field_76423_b = null,
nms_Potion_moveSpeed = null,
nms_Potion_moveSlowdown = null,
nms_Potion_digSpeed = null,
nms_Potion_digSlowdown = null,
nms_Potion_damageBoost = null,
nms_Potion_heal = null,
nms_Potion_harm = null,
nms_Potion_jump = null,
nms_Potion_confusion = null,
nms_Potion_regeneration = null,
nms_Potion_resistance = null,
nms_Potion_fireResistance = null,
nms_Potion_waterBreathing = null,
nms_Potion_invisibility = null,
nms_Potion_blindness = null,
nms_Potion_nightVision = null,
nms_Potion_hunger = null,
nms_Potion_weakness = null,
nms_Potion_poison = null,
nms_Potion_wither = null,
nms_Potion_field_76434_w = null,
nms_Potion_field_76444_x = null,
nms_Potion_field_76443_y = null,
nms_Potion_field_76442_z = null,
nms_Potion_field_76409_A = null,
nms_Potion_field_76410_B = null,
nms_Potion_field_76411_C = null,
nms_Potion_field_76405_D = null,
nms_Potion_field_76406_E = null,
nms_Potion_field_76407_F = null,
nms_Potion_field_76408_G = null,
nms_Potion_$callClinit = () => {
    nms_Potion_$callClinit = $rt_eraseClinit(nms_Potion);
    nms_Potion__clinit_();
},
nms_Potion__init_0 = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7;
    nms_Potion_$callClinit();
    var$4 = new ju_HashMap;
    var$5 = ju_HashMap_calculateCapacity(16);
    var$4.$elementCount = 0;
    var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
    var$7 = var$6.data;
    var$4.$elementData = var$6;
    var$4.$loadFactor = 0.75;
    var$4.$threshold = var$7.length * 0.75 | 0;
    $this.$field_111188_I = var$4;
    $this.$name2 = $rt_s(3);
    $this.$statusIconIndex = (-1);
    $this.$id0 = $par1;
    nms_Potion_potionTypes.data[$par1] = $this;
    $this.$isBadEffect = $par2;
    if (!$par2)
        $this.$effectiveness = 1.0;
    else
        $this.$effectiveness = 0.5;
    $this.$liquidColor = $par3;
},
nms_Potion__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_Potion();
    nms_Potion__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_Potion_setIconIndex = ($this, $par1, $par2) => {
    $this.$statusIconIndex = $par1 + ($par2 * 8 | 0) | 0;
    return $this;
},
nms_Potion_getId = $this => {
    return $this.$id0;
},
nms_Potion_performEffect = ($this, $par1EntityLivingBase, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                var$3 = $this.$id0;
                nms_Potion_$callClinit();
                if (var$3 == nms_Potion_regeneration.$id0) {
                    var$4 = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[134];
                    if (var$5 === null) {
                        var$4 = var$4.$elementData.data[0];
                        while (var$4 !== null && var$4.$key !== null) {
                            var$4 = var$4.$next3;
                        }
                    } else {
                        var$6 = var$5.$value;
                        var$7 = var$4.$elementData.data;
                        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
                        while (var$4 !== null) {
                            if (var$4.$origKeyHash == var$6) {
                                var$8 = var$4.$key;
                                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$4 = var$4.$next3;
                        }
                    }
                    var$9 = (var$4 === null ? null : var$4.$value0).$watchedObject.$value3;
                    var$4 = nms_EntityLivingBase_getEntityAttribute($par1EntityLivingBase, nms_SharedMonsterAttributes_maxHealth);
                    if (var$4.$field_111133_g) {
                        var$4.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$4);
                        var$4.$field_111133_g = 0;
                    }
                    if (var$9 < var$4.$field_111139_h)
                        nms_EntityLivingBase_heal($par1EntityLivingBase, 1.0);
                } else {
                    if (var$3 == nms_Potion_poison.$id0) {
                        var$4 = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$5 = jl_Integer_integerCache.data[134];
                        if (var$5 === null) {
                            var$4 = var$4.$elementData.data[0];
                            while (var$4 !== null && var$4.$key !== null) {
                                var$4 = var$4.$next3;
                            }
                        } else {
                            var$6 = var$5.$value;
                            var$7 = var$4.$elementData.data;
                            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
                            while (var$4 !== null) {
                                if (var$4.$origKeyHash == var$6) {
                                    var$8 = var$4.$key;
                                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$4 = var$4.$next3;
                            }
                        }
                        if ((var$4 === null ? null : var$4.$value0).$watchedObject.$value3 <= 1.0)
                            break b;
                        var$4 = nms_DamageSource_magic;
                        var$10 = 1.0;
                        $ptr = 2;
                        continue main;
                    }
                    if (var$3 == nms_Potion_wither.$id0) {
                        var$4 = nms_DamageSource_wither;
                        var$10 = 1.0;
                        $ptr = 1;
                        continue main;
                    }
                    if (var$3 == nms_Potion_hunger.$id0 && $par1EntityLivingBase instanceof nms_EntityPlayer) {
                        $par1EntityLivingBase = $par1EntityLivingBase;
                        var$10 = 0.02500000037252903 * ($par2 + 1 | 0);
                        if (!$par1EntityLivingBase.$capabilities.$disableDamage && !$par1EntityLivingBase.$worldObj.$isRemote) {
                            $par1EntityLivingBase = $par1EntityLivingBase.$foodStats;
                            $par1EntityLivingBase.$foodExhaustionLevel = jl_Math_minImpl($par1EntityLivingBase.$foodExhaustionLevel + var$10, 40.0);
                        }
                    } else if (!(var$3 == nms_Potion_field_76443_y.$id0 && $par1EntityLivingBase instanceof nms_EntityPlayer)) {
                        c: {
                            if (!(var$3 == nms_Potion_heal.$id0 && !($par1EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))) {
                                if ($this.$id0 != nms_Potion_harm.$id0)
                                    break c;
                                if (!($par1EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))
                                    break c;
                            }
                            $par2 = 4 << $par2;
                            var$3 = 0;
                            if ($par2 > var$3)
                                var$3 = $par2;
                            nms_EntityLivingBase_heal($par1EntityLivingBase, var$3);
                            break b;
                        }
                        if ($this.$id0 == nms_Potion_harm.$id0 && !($par1EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))
                            break a;
                        if ($this.$id0 == nms_Potion_heal.$id0 && ($par1EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))
                            break a;
                    } else if (!$par1EntityLivingBase.$worldObj.$isRemote) {
                        $par1EntityLivingBase = $par1EntityLivingBase.$foodStats;
                        $par2 = $par2 + 1 | 0;
                        var$3 = $par2 + $par1EntityLivingBase.$foodLevel | 0;
                        var$6 = 20;
                        if (var$3 < var$6)
                            var$6 = var$3;
                        $par1EntityLivingBase.$foodLevel = var$6;
                        $par1EntityLivingBase.$foodSaturationLevel = jl_Math_minImpl($par1EntityLivingBase.$foodSaturationLevel + $par2 * 1.0 * 2.0, var$6);
                    }
                }
            }
            return;
        }
        var$4 = nms_DamageSource_magic;
        var$10 = 6 << $par2;
        $ptr = 3;
        continue main;
    case 1:
        $par1EntityLivingBase.$attackEntityFrom(var$4, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $par1EntityLivingBase.$attackEntityFrom(var$4, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $par1EntityLivingBase.$attackEntityFrom(var$4, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_Potion_affectEntity = ($this, $par1EntityLivingBase, $par2EntityLivingBase, $par3, $par4) => {
    let $var6, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                c: {
                    $var6 = $this.$id0;
                    nms_Potion_$callClinit();
                    if (!($var6 == nms_Potion_heal.$id0 && !($par2EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))) {
                        if ($this.$id0 != nms_Potion_harm.$id0)
                            break c;
                        if (!($par2EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))
                            break c;
                    }
                    nms_EntityLivingBase_heal($par2EntityLivingBase, $par4 * (4 << $par3) + 0.5 | 0);
                    break b;
                }
                if ($this.$id0 == nms_Potion_harm.$id0 && !($par2EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))
                    break a;
                if ($this.$id0 == nms_Potion_heal.$id0 && ($par2EntityLivingBase.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1))
                    break a;
            }
            return;
        }
        $var6 = $par4 * (6 << $par3) + 0.5 | 0;
        if ($par1EntityLivingBase === null) {
            $par1EntityLivingBase = nms_DamageSource_magic;
            var$6 = $var6;
            $ptr = 2;
            continue main;
        }
        var$7 = new nms_EntityDamageSourceIndirect;
        var$7.$hungerDamage = 0.30000001192092896;
        var$7.$damageType = $rt_s(1278);
        var$7.$damageSourceEntity = $par2EntityLivingBase;
        var$7.$indirectEntity = $par1EntityLivingBase;
        var$7.$isUnblockable = 1;
        var$7.$hungerDamage = 0.0;
        var$7.$magicDamage = 1;
        var$6 = $var6;
        $ptr = 1;
    case 1:
        $par2EntityLivingBase.$attackEntityFrom(var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $par2EntityLivingBase.$attackEntityFrom($par1EntityLivingBase, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2EntityLivingBase, $par3, $par4, $var6, var$6, var$7, $ptr);
},
nms_Potion_isInstant = $this => {
    return 0;
},
nms_Potion_isReady = ($this, $par1, $par2) => {
    let $var3;
    $var3 = $this.$id0;
    nms_Potion_$callClinit();
    if ($var3 == nms_Potion_regeneration.$id0) {
        $var3 = 50 >> $par2;
        return $var3 <= 0 ? 1 : $par1 % $var3 | 0 ? 0 : 1;
    }
    if ($var3 == nms_Potion_poison.$id0) {
        $var3 = 25 >> $par2;
        return $var3 <= 0 ? 1 : $par1 % $var3 | 0 ? 0 : 1;
    }
    if ($var3 != nms_Potion_wither.$id0)
        return $var3 != nms_Potion_hunger.$id0 ? 0 : 1;
    $var3 = 40 >> $par2;
    return $var3 <= 0 ? 1 : $par1 % $var3 | 0 ? 0 : 1;
},
nms_Potion_getName = $this => {
    return $this.$name2;
},
nms_Potion_setEffectiveness = ($this, $par1) => {
    $this.$effectiveness = $par1;
    return $this;
},
nms_Potion_getEffectiveness = $this => {
    return $this.$effectiveness;
},
nms_Potion_isUsable = $this => {
    return $this.$usable;
},
nms_Potion_getLiquidColor = $this => {
    return $this.$liquidColor;
},
nms_Potion_func_111184_a = ($this, $par1Attribute, $par2Str, $par3, $par5) => {
    let $var6, var$6, var$7;
    $var6 = new nms_AttributeModifier;
    $par2Str = nle_ProfileUUID_fromString($par2Str);
    var$6 = $this.$name2;
    $var6.$isSaved = 1;
    $var6.$id1 = $par2Str;
    $var6.$name3 = var$6;
    $var6.$amount0 = $par3;
    $var6.$operation = $par5;
    if (var$6 === null) {
        $par1Attribute = new jl_NullPointerException;
        $par1Attribute.$suppressionEnabled = 1;
        $par1Attribute.$writableStackTrace = 1;
        $rt_throw($par1Attribute);
    }
    if (var$6 === $rt_s(3))
        var$7 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$7 = 0;
    else {
        $par2Str = $rt_s(3);
        var$7 = var$6.$nativeString !== $par2Str.$nativeString ? 0 : 1;
    }
    if (var$7) {
        $par2Str = new jl_IllegalArgumentException;
        $par2Str.$suppressionEnabled = 1;
        $par2Str.$writableStackTrace = 1;
        $par2Str.$message = $rt_s(1279);
        $rt_throw($par2Str);
    }
    if ($par5 < 0 && $par5 > 2) {
        $par2Str = new jl_IllegalArgumentException;
        $par2Str.$suppressionEnabled = 1;
        $par2Str.$writableStackTrace = 1;
        $par2Str.$message = $rt_s(1280);
        $rt_throw($par2Str);
    }
    ju_HashMap_putImpl($this.$field_111188_I, $par1Attribute, $var6);
    return $this;
},
nms_Potion_removeAttributesModifiersFromEntity = ($this, $par1EntityLivingBase, $par2BaseAttributeMap, $par3) => {
    let $var4, var$5, var$6, var$7, var$8, var$9;
    $par1EntityLivingBase = $this.$field_111188_I;
    $var4 = new ju_HashMap$EntryIterator;
    $var4.$associatedMap = $par1EntityLivingBase;
    $var4.$expectedModCount = $par1EntityLivingBase.$modCount1;
    $var4.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext($var4)) {
        ju_HashMap$AbstractMapIterator_makeNext($var4);
        var$5 = $var4.$currentEntry0;
        $par1EntityLivingBase = var$5.$key;
        var$6 = $par2BaseAttributeMap.$attributes;
        if ($par1EntityLivingBase === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            a: {
                var$7 = $par1EntityLivingBase.$field_111115_a;
                if (!var$7.$hashCode1) {
                    $par3 = 0;
                    while (true) {
                        if ($par3 >= var$7.$nativeString.length)
                            break a;
                        var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt($par3) | 0;
                        $par3 = $par3 + 1 | 0;
                    }
                }
            }
            var$8 = var$7.$hashCode1;
            var$9 = var$6.$elementData.data;
            var$6 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$8) {
                    var$7 = var$6.$key;
                    if ($par1EntityLivingBase !== var$7 && !($par1EntityLivingBase !== var$7 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$6 = var$6 === null ? null : var$6.$value0;
        if (var$6 !== null)
            nms_ModifiableAttributeInstance_removeModifier(var$6, var$5.$value0);
    }
},
nms_Potion_applyAttributesModifiersToEntity = ($this, $par1EntityLivingBase, $par2BaseAttributeMap, $par3) => {
    let $var4, $var7, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    $par1EntityLivingBase = $this.$field_111188_I;
    $var4 = new ju_HashMap$EntryIterator;
    $var4.$associatedMap = $par1EntityLivingBase;
    $var4.$expectedModCount = $par1EntityLivingBase.$modCount1;
    $var4.$futureEntry0 = null;
    a: {
        while (ju_HashMap$AbstractMapIterator_hasNext($var4)) {
            ju_HashMap$AbstractMapIterator_makeNext($var4);
            $var7 = $var4.$currentEntry0;
            var$6 = $var7.$key;
            $par1EntityLivingBase = $par2BaseAttributeMap.$attributes;
            if (var$6 === null) {
                $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
                while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                    $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                }
            } else {
                b: {
                    var$7 = var$6.$field_111115_a;
                    if (!var$7.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= var$7.$nativeString.length)
                                break b;
                            var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$9 = var$7.$hashCode1;
                var$10 = $par1EntityLivingBase.$elementData.data;
                $par1EntityLivingBase = var$10[var$9 & (var$10.length - 1 | 0)];
                while ($par1EntityLivingBase !== null) {
                    if ($par1EntityLivingBase.$origKeyHash == var$9) {
                        var$7 = $par1EntityLivingBase.$key;
                        if (var$6 !== var$7 && !(var$6 !== var$7 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                }
            }
            var$7 = $par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0;
            if (var$7 !== null) {
                $var7 = $var7.$value0;
                nms_ModifiableAttributeInstance_removeModifier(var$7, $var7);
                var$11 = new nms_AttributeModifier;
                var$6 = $var7.$id1;
                $par1EntityLivingBase = $this.$name2;
                var$12 = new jl_StringBuilder;
                var$12.$buffer = $rt_createCharArray(16);
                var$13 = var$12.$length0;
                if ($par1EntityLivingBase === null)
                    $par1EntityLivingBase = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$12, var$13, $par1EntityLivingBase);
                var$13 = var$12.$length0;
                jl_AbstractStringBuilder_insertSpace(var$12, var$13, var$13 + 1 | 0);
                var$12.$buffer.data[var$13] = 32;
                jl_AbstractStringBuilder_insert0(var$12, var$12.$length0, $par3, 10);
                $par1EntityLivingBase = new jl_String;
                var$10 = var$12.$buffer;
                var$14 = var$10.data;
                var$8 = var$12.$length0;
                var$13 = var$14.length;
                if (var$8 < 0)
                    break a;
                if (var$8 > (var$13 - 0 | 0))
                    break a;
                $par1EntityLivingBase.$nativeString = $rt_charArrayToString(var$10.data, 0, var$8);
                var$15 = $this.$func_111183_a($par3, $var7);
                var$9 = $var7.$operation;
                var$11.$isSaved = 1;
                var$11.$id1 = var$6;
                var$11.$name3 = $par1EntityLivingBase;
                var$11.$amount0 = var$15;
                var$11.$operation = var$9;
                if ($par1EntityLivingBase === $rt_s(3))
                    var$13 = 1;
                else if (!($rt_s(3) instanceof jl_String))
                    var$13 = 0;
                else {
                    var$6 = $rt_s(3);
                    var$13 = $par1EntityLivingBase.$nativeString !== var$6.$nativeString ? 0 : 1;
                }
                if (var$13) {
                    $par2BaseAttributeMap = new jl_IllegalArgumentException;
                    $par2BaseAttributeMap.$suppressionEnabled = 1;
                    $par2BaseAttributeMap.$writableStackTrace = 1;
                    $par2BaseAttributeMap.$message = $rt_s(1279);
                    $rt_throw($par2BaseAttributeMap);
                }
                if (var$9 < 0 && var$9 > 2) {
                    $par2BaseAttributeMap = new jl_IllegalArgumentException;
                    $par2BaseAttributeMap.$suppressionEnabled = 1;
                    $par2BaseAttributeMap.$writableStackTrace = 1;
                    $par2BaseAttributeMap.$message = $rt_s(1280);
                    $rt_throw($par2BaseAttributeMap);
                }
                nms_ModifiableAttributeInstance_applyModifier(var$7, var$11);
            }
        }
        return;
    }
    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
    $par1EntityLivingBase.$suppressionEnabled = 1;
    $par1EntityLivingBase.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1EntityLivingBase);
    $rt_throw($par1EntityLivingBase);
};
let nms_Potion_func_111183_a = ($this, $par1, $par2AttributeModifier) => {
    return $par2AttributeModifier.$amount0 * ($par1 + 1 | 0);
},
nms_Potion__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    nms_Potion_potionTypes = $rt_createArray(nms_Potion, 32);
    nms_Potion_field_76423_b = null;
    var$1 = nms_Potion__init_(1, 0, 8171462);
    var$1.$name2 = $rt_s(1281);
    var$1.$statusIconIndex = 0;
    var$2 = nms_SharedMonsterAttributes_movementSpeed;
    var$3 = new nms_AttributeModifier;
    var$4 = nle_ProfileUUID_fromString($rt_s(1282));
    var$5 = var$1.$name2;
    var$3.$isSaved = 1;
    var$3.$id1 = var$4;
    var$3.$name3 = var$5;
    var$3.$amount0 = 0.20000000298023224;
    var$3.$operation = 2;
    if (var$5 === null) {
        var$1 = new jl_NullPointerException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (var$5 === $rt_s(3))
        var$6 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$6 = 0;
    else {
        var$4 = $rt_s(3);
        var$6 = var$5.$nativeString !== var$4.$nativeString ? 0 : 1;
    }
    if (var$6) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$1.$field_111188_I, var$2, var$3);
    nms_Potion_moveSpeed = var$1;
    var$1 = nms_Potion__init_(2, 1, 5926017);
    var$1.$name2 = $rt_s(1283);
    var$1.$statusIconIndex = 1;
    var$2 = nms_SharedMonsterAttributes_movementSpeed;
    var$3 = new nms_AttributeModifier;
    var$4 = nle_ProfileUUID_fromString($rt_s(1284));
    var$5 = var$1.$name2;
    var$3.$isSaved = 1;
    var$3.$id1 = var$4;
    var$3.$name3 = var$5;
    var$3.$amount0 = (-0.15000000596046448);
    var$3.$operation = 2;
    if (var$5 === null) {
        var$1 = new jl_NullPointerException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (var$5 === $rt_s(3))
        var$6 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$6 = 0;
    else {
        var$4 = $rt_s(3);
        var$6 = var$5.$nativeString !== var$4.$nativeString ? 0 : 1;
    }
    if (var$6) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$1.$field_111188_I, var$2, var$3);
    nms_Potion_moveSlowdown = var$1;
    var$1 = nms_Potion__init_(3, 0, 14270531);
    var$1.$name2 = $rt_s(1285);
    var$1.$statusIconIndex = 2;
    var$1.$effectiveness = 1.5;
    nms_Potion_digSpeed = var$1;
    var$1 = nms_Potion__init_(4, 1, 4866583);
    var$1.$name2 = $rt_s(1286);
    var$1.$statusIconIndex = 3;
    nms_Potion_digSlowdown = var$1;
    var$1 = new nms_PotionAttackDamage;
    nms_Potion__init_0(var$1, 5, 0, 9643043);
    var$1.$name2 = $rt_s(1287);
    var$1.$statusIconIndex = 4;
    var$2 = nms_SharedMonsterAttributes_attackDamage;
    var$3 = new nms_AttributeModifier;
    var$4 = nle_ProfileUUID_fromString($rt_s(1288));
    var$5 = var$1.$name2;
    var$3.$isSaved = 1;
    var$3.$id1 = var$4;
    var$3.$name3 = var$5;
    var$3.$amount0 = 3.0;
    var$3.$operation = 2;
    if (var$5 === null) {
        var$1 = new jl_NullPointerException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (var$5 === $rt_s(3))
        var$6 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$6 = 0;
    else {
        var$4 = $rt_s(3);
        var$6 = var$5.$nativeString !== var$4.$nativeString ? 0 : 1;
    }
    if (var$6) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$1.$field_111188_I, var$2, var$3);
    nms_Potion_damageBoost = var$1;
    var$1 = new nms_PotionHealth;
    nms_Potion__init_0(var$1, 6, 0, 16262179);
    var$1.$name2 = $rt_s(1289);
    nms_Potion_heal = var$1;
    var$1 = new nms_PotionHealth;
    nms_Potion__init_0(var$1, 7, 1, 4393481);
    var$1.$name2 = $rt_s(1290);
    nms_Potion_harm = var$1;
    var$1 = nms_Potion__init_(8, 0, 7889559);
    var$1.$name2 = $rt_s(1291);
    var$1.$statusIconIndex = 10;
    nms_Potion_jump = var$1;
    var$1 = nms_Potion__init_(9, 1, 5578058);
    var$1.$name2 = $rt_s(1292);
    var$1.$statusIconIndex = 11;
    var$1.$effectiveness = 0.25;
    nms_Potion_confusion = var$1;
    var$1 = nms_Potion__init_(10, 0, 13458603);
    var$1.$name2 = $rt_s(1293);
    var$1.$statusIconIndex = 7;
    var$1.$effectiveness = 0.25;
    nms_Potion_regeneration = var$1;
    var$1 = nms_Potion__init_(11, 0, 10044730);
    var$1.$name2 = $rt_s(1294);
    var$1.$statusIconIndex = 14;
    nms_Potion_resistance = var$1;
    var$1 = nms_Potion__init_(12, 0, 14981690);
    var$1.$name2 = $rt_s(1295);
    var$1.$statusIconIndex = 15;
    nms_Potion_fireResistance = var$1;
    var$1 = nms_Potion__init_(13, 0, 3035801);
    var$1.$name2 = $rt_s(1296);
    var$1.$statusIconIndex = 16;
    nms_Potion_waterBreathing = var$1;
    var$1 = nms_Potion__init_(14, 0, 8356754);
    var$1.$name2 = $rt_s(1297);
    var$1.$statusIconIndex = 8;
    nms_Potion_invisibility = var$1;
    var$1 = nms_Potion__init_(15, 1, 2039587);
    var$1.$name2 = $rt_s(1298);
    var$1.$statusIconIndex = 13;
    var$1.$effectiveness = 0.25;
    nms_Potion_blindness = var$1;
    var$1 = nms_Potion__init_(16, 0, 2039713);
    var$1.$name2 = $rt_s(1299);
    var$1.$statusIconIndex = 12;
    nms_Potion_nightVision = var$1;
    var$1 = nms_Potion__init_(17, 1, 5797459);
    var$1.$name2 = $rt_s(1300);
    var$1.$statusIconIndex = 9;
    nms_Potion_hunger = var$1;
    var$1 = new nms_PotionAttackDamage;
    nms_Potion__init_0(var$1, 18, 1, 4738376);
    var$1.$name2 = $rt_s(1301);
    var$1.$statusIconIndex = 5;
    var$2 = nms_SharedMonsterAttributes_attackDamage;
    var$3 = new nms_AttributeModifier;
    var$4 = nle_ProfileUUID_fromString($rt_s(1302));
    var$5 = var$1.$name2;
    var$3.$isSaved = 1;
    var$3.$id1 = var$4;
    var$3.$name3 = var$5;
    var$3.$amount0 = 2.0;
    var$3.$operation = 0;
    if (var$5 === null) {
        var$1 = new jl_NullPointerException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (var$5 === $rt_s(3))
        var$6 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$6 = 0;
    else {
        var$4 = $rt_s(3);
        var$6 = var$5.$nativeString !== var$4.$nativeString ? 0 : 1;
    }
    if (var$6) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$1.$field_111188_I, var$2, var$3);
    nms_Potion_weakness = var$1;
    var$1 = nms_Potion__init_(19, 1, 5149489);
    var$1.$name2 = $rt_s(1303);
    var$1.$statusIconIndex = 6;
    var$1.$effectiveness = 0.25;
    nms_Potion_poison = var$1;
    var$1 = nms_Potion__init_(20, 1, 3484199);
    var$1.$name2 = $rt_s(1304);
    var$1.$statusIconIndex = 17;
    var$1.$effectiveness = 0.25;
    nms_Potion_wither = var$1;
    var$1 = new nms_PotionHealthBoost;
    nms_Potion__init_0(var$1, 21, 0, 16284963);
    var$1.$name2 = $rt_s(1305);
    var$1.$statusIconIndex = 18;
    var$2 = nms_SharedMonsterAttributes_maxHealth;
    var$3 = new nms_AttributeModifier;
    var$4 = nle_ProfileUUID_fromString($rt_s(1306));
    var$5 = var$1.$name2;
    var$3.$isSaved = 1;
    var$3.$id1 = var$4;
    var$3.$name3 = var$5;
    var$3.$amount0 = 4.0;
    var$3.$operation = 0;
    if (var$5 === null) {
        var$1 = new jl_NullPointerException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (var$5 === $rt_s(3))
        var$6 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$6 = 0;
    else {
        var$4 = $rt_s(3);
        var$6 = var$5.$nativeString !== var$4.$nativeString ? 0 : 1;
    }
    if (var$6) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$1.$field_111188_I, var$2, var$3);
    nms_Potion_field_76434_w = var$1;
    var$1 = new nms_PotionAbsoption;
    nms_Potion__init_0(var$1, 22, 0, 2445989);
    var$1.$name2 = $rt_s(1307);
    var$1.$statusIconIndex = 18;
    nms_Potion_field_76444_x = var$1;
    var$1 = new nms_PotionHealth;
    nms_Potion__init_0(var$1, 23, 0, 16262179);
    var$1.$name2 = $rt_s(1308);
    nms_Potion_field_76443_y = var$1;
    nms_Potion_field_76442_z = null;
    nms_Potion_field_76409_A = null;
    nms_Potion_field_76410_B = null;
    nms_Potion_field_76411_C = null;
    nms_Potion_field_76405_D = null;
    nms_Potion_field_76406_E = null;
    nms_Potion_field_76407_F = null;
    nms_Potion_field_76408_G = null;
},
nms_ItemSign = $rt_classWithoutFields(nms_Item),
nms_ItemSign__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 16;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabDecorations;
},
nms_ItemSign__init_0 = var_0 => {
    let var_1 = new nms_ItemSign();
    nms_ItemSign__init_(var_1, var_0);
    return var_1;
},
nms_ItemSign_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par7)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11) {
            nms_Material_$callClinit();
            $var12 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var12 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if (!$var12.$isSolid())
            return 0;
        var$13 = $rt_compare($par7, 1);
        if (!var$13)
            $par5 = $par5 + 1 | 0;
        if ($par7 == 2)
            $par6 = $par6 + (-1) | 0;
        if ($par7 == 3)
            $par6 = $par6 + 1 | 0;
        if ($par7 == 4)
            $par4 = $par4 + (-1) | 0;
        if ($par7 == 5)
            $par4 = $par4 + 1 | 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var11 = 1;
        else if ($par1ItemStack === null)
            $var11 = 0;
        else {
            nms_Item_$callClinit();
            $var11 = 1;
        }
        if (!$var11)
            return 0;
        nms_Block_$callClinit();
        $var12 = nms_Block_signPost;
        $ptr = 2;
    case 2:
        $tmp = $var12.$canPlaceBlockAt($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11)
            return 0;
        if ($par3World.$isRemote)
            return 1;
        if (var$13) {
            var$13 = nms_Block_signWall.$blockID;
            $var11 = 3;
            $ptr = 3;
            continue main;
        }
        var$14 = ($par2EntityPlayer.$rotationYaw + 180.0) * 16.0 / 360.0 + 0.5;
        $var11 = var$14 | 0;
        if (var$14 < $var11)
            $var11 = $var11 - 1 | 0;
        $var11 = $var11 & 15;
        $par7 = nms_Block_signPost.$blockID;
        var$13 = 3;
        $ptr = 5;
        continue main;
    case 3:
        nms_World_setBlock($par3World, $par4, $par5, $par6, var$13, $par7, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockTileEntity($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = $tmp;
        $var12 = $par1ItemStack;
        if ($var12 !== null && $var12 instanceof nms_TileEntitySign)
            a: {
                $var12.$field_142011_d = $par2EntityPlayer;
                $par1ItemStack = $par2EntityPlayer.$playerNetServerHandler;
                $par2EntityPlayer = new nms_Packet133TileEditorOpen;
                $par5 = $var12.$xCoord0;
                $par6 = $var12.$yCoord0;
                $par7 = $var12.$zCoord0;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par2EntityPlayer.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par2EntityPlayer.$field_142037_a = 0;
                $par2EntityPlayer.$field_142035_b = $par5;
                $par2EntityPlayer.$field_142036_c = $par6;
                $par2EntityPlayer.$field_142034_d = $par7;
                if ($par2EntityPlayer instanceof nms_Packet3Chat) {
                    $par3World = $par2EntityPlayer;
                    $par5 = $par1ItemStack.$playerEntity.$chatVisibility;
                    if ($par5 == 2)
                        break a;
                    if ($par5 == 1 && !$par3World.$isServer)
                        break a;
                }
                try {
                    $par1ItemStack = $par1ItemStack.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1ItemStack = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par2EntityPlayer = new otcic_JSStderrPrintStream;
                    $par3World = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($par3World);
                    $par3World.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($par2EntityPlayer, $par3World);
                    $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                    $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                    $par2EntityPlayer.$autoFlush = 0;
                    $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $par2EntityPlayer;
                }
                jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
            }
        return 1;
    case 5:
        nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var11, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        $ptr = 4;
        continue main;
    case 6:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ItemStack, $par2EntityPlayer);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2EntityPlayer = new otcic_JSStderrPrintStream;
                $par3World = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($par3World);
                $par3World.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par2EntityPlayer, $par3World);
                $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par2EntityPlayer.$autoFlush = 0;
                $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par2EntityPlayer;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, var$13, var$14, $ptr);
};
function nms_ItemDoor() {
    nms_Item.call(this);
    this.$doorMaterial = null;
}
let nms_ItemDoor__init_ = ($this, $par1, $par2Material) => {
    nms_Item__init_($this, $par1);
    $this.$doorMaterial = $par2Material;
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabRedstone;
},
nms_ItemDoor__init_0 = (var_0, var_1) => {
    let var_2 = new nms_ItemDoor();
    nms_ItemDoor__init_(var_2, var_0, var_1);
    return var_2;
},
nms_ItemDoor_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let var$11, $var11, var$13, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();var$11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7 != 1)
            return 0;
        var$11 = $par5 + 1 | 0;
        $var11 = $this.$doorMaterial;
        nms_Material_$callClinit();
        if ($var11 !== nms_Material_wood) {
            nms_Block_$callClinit();
            $var11 = nms_Block_doorIron;
        } else {
            nms_Block_$callClinit();
            $var11 = nms_Block_doorWood;
        }
        $par5 = $par2EntityPlayer.$capabilities.$allowEdit;
        if ($par5)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if ($par7) {
            if ($par5)
                $par5 = 1;
            else if ($par1ItemStack === null)
                $par5 = 0;
            else {
                nms_Item_$callClinit();
                $par5 = 1;
            }
            if ($par5) {
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = $var11.$canPlaceBlockAt($par3World, $par4, var$11, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5)
            return 0;
        var$13 = ($par2EntityPlayer.$rotationYaw + 180.0) * 4.0 / 360.0 - 0.5;
        $par7 = var$13 | 0;
        if (var$13 < $par7)
            $par7 = $par7 - 1 | 0;
        $var12 = $par7 & 3;
        $ptr = 2;
    case 2:
        nms_ItemDoor_placeDoorBlock($par3World, $par4, var$11, $par6, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, var$11, $var11, var$13, $var12, $ptr);
},
nms_ItemDoor_placeDoorBlock = ($par0World, $par1, $par2, $par3, $par4, $par5Block) => {
    let $var6, $var7, $var11, $var10, $var8, $var12, var$13, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var8 = $thread.pop();$var10 = $thread.pop();$var11 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5Block = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        $var7 = 0;
        if (!$par4)
            $var7 = 1;
        if ($par4 == 1)
            $var6 = (-1);
        if ($par4 == 2)
            $var7 = (-1);
        if ($par4 == 3)
            $var6 = 1;
        $var11 = $par1 - $var6 | 0;
        $var10 = $par3 - $var7 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par0World, $var11, $par2, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var12 = !$var8 ? 0 : 1;
        var$13 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par0World, $var11, var$13, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var8 = $var12 + (!$var8 ? 0 : 1) | 0;
        $var12 = $par1 + $var6 | 0;
        $var7 = $par3 + $var7 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par0World, $var12, $par2, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = !$var6 ? 0 : 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par0World, $var12, var$13, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var9 = $var6 + (!$var9 ? 0 : 1) | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par0World, $var11, $par2, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 != $par5Block.$blockID) {
            $ptr = 6;
            continue main;
        }
        $var10 = 1;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par0World, $var11, var$13, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var10 = $var11 == $par5Block.$blockID ? 1 : 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par0World, $var12, $par2, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 != $par5Block.$blockID) {
            $ptr = 8;
            continue main;
        }
        $var12 = 0;
        if ($var10 && !1)
            $var12 = 1;
        else if ($var9 > $var8)
            $var12 = 1;
        $var6 = $par5Block.$blockID;
        $var8 = 2;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par0World, $var12, var$13, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var11 = $var6 == $par5Block.$blockID ? 1 : 0;
        $var12 = 0;
        if ($var10 && !$var11)
            $var12 = 1;
        else if ($var9 > $var8)
            $var12 = 1;
        $var6 = $par5Block.$blockID;
        $var8 = 2;
        $ptr = 9;
    case 9:
        nms_World_setBlock($par0World, $par1, $par2, $par3, $var6, $par4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $par5Block.$blockID;
        $var6 = 8 | (!$var12 ? 0 : 1);
        $var8 = 2;
        $ptr = 10;
    case 10:
        nms_World_setBlock($par0World, $par1, var$13, $par3, $par4, $var6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $par5Block.$blockID;
        $ptr = 11;
    case 11:
        nms_World_notifyBlocksOfNeighborChange($par0World, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $par5Block.$blockID;
        $ptr = 12;
    case 12:
        nms_World_notifyBlocksOfNeighborChange($par0World, $par1, var$13, $par3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par3, $par4, $par5Block, $var6, $var7, $var11, $var10, $var8, $var12, var$13, $var9, $ptr);
};
function nms_Material() {
    let a = this; jl_Object.call(a);
    a.$canBurn = 0;
    a.$replaceable = 0;
    a.$isTranslucent = 0;
    a.$materialMapColor = null;
    a.$requiresNoTool = 0;
    a.$mobilityFlag = 0;
    a.$isAdventureModeExempt = 0;
}
let nms_Material_air = null,
nms_Material_grass = null,
nms_Material_ground = null,
nms_Material_wood = null,
nms_Material_rock = null,
nms_Material_iron = null,
nms_Material_anvil = null,
nms_Material_water = null,
nms_Material_lava = null,
nms_Material_leaves = null,
nms_Material_plants = null,
nms_Material_vine = null,
nms_Material_sponge = null,
nms_Material_cloth = null,
nms_Material_fire = null,
nms_Material_sand = null,
nms_Material_circuits = null,
nms_Material_materialCarpet = null,
nms_Material_glass = null,
nms_Material_redstoneLight = null,
nms_Material_tnt = null,
nms_Material_coral = null,
nms_Material_ice = null,
nms_Material_snow = null,
nms_Material_craftedSnow = null,
nms_Material_cactus = null,
nms_Material_clay = null,
nms_Material_pumpkin = null,
nms_Material_dragonEgg = null,
nms_Material_portal = null,
nms_Material_cake = null,
nms_Material_web = null,
nms_Material_piston = null,
nms_Material_$callClinit = () => {
    nms_Material_$callClinit = $rt_eraseClinit(nms_Material);
    nms_Material__clinit_();
},
nms_Material_isLiquid = $this => {
    return 0;
},
nms_Material_isSolid = $this => {
    return 1;
},
nms_Material_getCanBlockGrass = $this => {
    return 1;
},
nms_Material_blocksMovement = $this => {
    return 1;
},
nms_Material_setRequiresTool = $this => {
    $this.$requiresNoTool = 0;
    return $this;
},
nms_Material_getCanBurn = $this => {
    return $this.$canBurn;
},
nms_Material_setReplaceable = $this => {
    $this.$replaceable = 1;
    return $this;
},
nms_Material_isReplaceable = $this => {
    return $this.$replaceable;
},
nms_Material_isOpaque = $this => {
    return !$this.$isTranslucent ? $this.$blocksMovement() : 0;
},
nms_Material_isToolNotRequired = $this => {
    return $this.$requiresNoTool;
},
nms_Material_getMaterialMobility = $this => {
    return $this.$mobilityFlag;
},
nms_Material_setNoPushMobility = $this => {
    $this.$mobilityFlag = 1;
    return $this;
},
nms_Material_setImmovableMobility = $this => {
    $this.$mobilityFlag = 2;
    return $this;
},
nms_Material_setAdventureModeExempt = $this => {
    $this.$isAdventureModeExempt = 1;
    return $this;
},
nms_Material_isAdventureModeExempt = $this => {
    return $this.$isAdventureModeExempt;
},
nms_Material__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = new nms_MaterialTransparent;
    var$2 = nms_MapColor_airColor;
    nms_Material_$callClinit();
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$replaceable = 1;
    nms_Material_air = var$1;
    var$1 = new nms_Material;
    var$3 = nms_MapColor_grassColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$3;
    nms_Material_grass = var$1;
    var$1 = new nms_Material;
    var$3 = nms_MapColor_dirtColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$3;
    nms_Material_ground = var$1;
    var$1 = new nms_Material;
    var$3 = nms_MapColor_woodColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$3;
    var$1.$canBurn = 1;
    nms_Material_wood = var$1;
    var$1 = new nms_Material;
    var$3 = nms_MapColor_stoneColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$3;
    var$1.$requiresNoTool = 0;
    nms_Material_rock = var$1;
    var$1 = new nms_Material;
    var$4 = nms_MapColor_ironColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$requiresNoTool = 0;
    nms_Material_iron = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$requiresNoTool = 0;
    var$1.$mobilityFlag = 2;
    nms_Material_anvil = var$1;
    var$1 = new nms_MaterialLiquid;
    var$4 = nms_MapColor_waterColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$replaceable = 1;
    var$1.$mobilityFlag = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_water = var$1;
    var$1 = new nms_MaterialLiquid;
    var$4 = nms_MapColor_tntColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$replaceable = 1;
    var$1.$mobilityFlag = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_lava = var$1;
    var$1 = new nms_Material;
    var$5 = nms_MapColor_foliageColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$canBurn = 1;
    var$1.$isTranslucent = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_leaves = var$1;
    var$1 = new nms_MaterialLogic;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$isAdventureModeExempt = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_plants = var$1;
    var$1 = new nms_MaterialLogic;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$isAdventureModeExempt = 1;
    var$1.$canBurn = 1;
    var$1.$mobilityFlag = 1;
    var$1.$replaceable = 1;
    nms_Material_vine = var$1;
    var$1 = new nms_Material;
    var$6 = nms_MapColor_clothColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$6;
    nms_Material_sponge = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$6;
    var$1.$canBurn = 1;
    nms_Material_cloth = var$1;
    var$1 = new nms_MaterialTransparent;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$replaceable = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_fire = var$1;
    var$1 = new nms_Material;
    var$7 = nms_MapColor_sandColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$7;
    nms_Material_sand = var$1;
    var$1 = new nms_MaterialLogic;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$isAdventureModeExempt = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_circuits = var$1;
    var$1 = new nms_MaterialLogic;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$6;
    var$1.$isAdventureModeExempt = 1;
    var$1.$canBurn = 1;
    nms_Material_materialCarpet = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$isTranslucent = 1;
    var$1.$isAdventureModeExempt = 1;
    nms_Material_glass = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$isAdventureModeExempt = 1;
    nms_Material_redstoneLight = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$canBurn = 1;
    var$1.$isTranslucent = 1;
    nms_Material_tnt = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$mobilityFlag = 1;
    nms_Material_coral = var$1;
    var$1 = new nms_Material;
    var$4 = nms_MapColor_iceColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$isTranslucent = 1;
    var$1.$isAdventureModeExempt = 1;
    nms_Material_ice = var$1;
    var$1 = new nms_MaterialLogic;
    var$4 = nms_MapColor_snowColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$isAdventureModeExempt = 1;
    var$1.$replaceable = 1;
    var$1.$isTranslucent = 1;
    var$1.$requiresNoTool = 0;
    var$1.$mobilityFlag = 1;
    nms_Material_snow = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    var$1.$requiresNoTool = 0;
    nms_Material_craftedSnow = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$isTranslucent = 1;
    var$1.$mobilityFlag = 1;
    nms_Material_cactus = var$1;
    var$1 = new nms_Material;
    var$4 = nms_MapColor_clayColor;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$4;
    nms_Material_clay = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$mobilityFlag = 1;
    nms_Material_pumpkin = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$5;
    var$1.$mobilityFlag = 1;
    nms_Material_dragonEgg = var$1;
    var$1 = new nms_MaterialPortal;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$mobilityFlag = 2;
    nms_Material_portal = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$2;
    var$1.$mobilityFlag = 1;
    nms_Material_cake = var$1;
    var$1 = new nms_MaterialWeb;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$6;
    var$1.$requiresNoTool = 0;
    var$1.$mobilityFlag = 1;
    nms_Material_web = var$1;
    var$1 = new nms_Material;
    var$1.$requiresNoTool = 1;
    var$1.$materialMapColor = var$3;
    var$1.$mobilityFlag = 2;
    nms_Material_piston = var$1;
};
function nms_ItemBucket() {
    nms_Item.call(this);
    this.$isFull = 0;
}
let nms_ItemBucket__init_0 = ($this, $par1, $par2) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
    $this.$isFull = $par2;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemBucket__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemBucket();
    nms_ItemBucket__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ItemBucket_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $this.$isFull ? 0 : 1;
        $ptr = 1;
    case 1:
        $tmp = nms_Item_getMovingObjectPositionFromPlayer($this, $par2World, $par3EntityPlayer, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 === null)
            return $par1ItemStack;
        if ($var5.$typeOfHit !== nms_EnumMovingObjectType_TILE)
            return $par1ItemStack;
        $var6 = $var5.$blockX;
        $var7 = $var5.$blockY;
        $var8 = $var5.$blockZ;
        $var4 = $this.$isFull;
        if (!$var4) {
            if (!($par3EntityPlayer.$capabilities.$allowEdit ? 1 : $par1ItemStack === null ? 0 : 1))
                return $par1ItemStack;
            $ptr = 2;
            continue main;
        }
        if ($var4 < 0) {
            $par1ItemStack = new nms_ItemStack;
            $par2World = nms_Item_bucketEmpty;
            nms_ItemStack_$callClinit();
            $par1ItemStack.$itemID = $par2World.$itemID0;
            $par1ItemStack.$stackSize = 1;
            $par1ItemStack.$itemDamage = 0;
            return $par1ItemStack;
        }
        $var4 = $var5.$sideHit;
        if (!$var4)
            $var7 = $var7 + (-1) | 0;
        if ($var4 == 1)
            $var7 = $var7 + 1 | 0;
        if ($var4 == 2)
            $var8 = $var8 + (-1) | 0;
        if ($var4 == 3)
            $var8 = $var8 + 1 | 0;
        if ($var4 == 4)
            $var6 = $var6 + (-1) | 0;
        if ($var4 == 5)
            $var6 = $var6 + 1 | 0;
        if (!($par3EntityPlayer.$capabilities.$allowEdit ? 1 : $par1ItemStack === null ? 0 : 1))
            return $par1ItemStack;
        $ptr = 10;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par2World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            nms_Material_$callClinit();
            $var5 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var5 = nms_Block_blocksList.data[$var4].$blockMaterial;
        }
        nms_Material_$callClinit();
        if ($var5 === nms_Material_water) {
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par2World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4)
            $var5 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $var5 = nms_Block_blocksList.data[$var4].$blockMaterial;
        }
        if ($var5 !== nms_Material_lava)
            return $par1ItemStack;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par2World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            $ptr = 3;
            continue main;
        }
        $var4 = 0;
        var$9 = 0;
        var$10 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par2World, $var6, $var7, $var8, $var4, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($par3EntityPlayer.$capabilities.$isCreativeMode)
            return $par1ItemStack;
        $var4 = $par1ItemStack.$stackSize - 1 | 0;
        $par1ItemStack.$stackSize = $var4;
        if ($var4 <= 0) {
            $par1ItemStack = new nms_ItemStack;
            $par2World = nms_Item_bucketWater;
            nms_ItemStack_$callClinit();
            $par1ItemStack.$itemID = $par2World.$itemID0;
            $par1ItemStack.$stackSize = 1;
            $par1ItemStack.$itemDamage = 0;
            return $par1ItemStack;
        }
        $par2World = $par3EntityPlayer.$inventory0;
        $var5 = new nms_ItemStack;
        var$11 = nms_Item_bucketWater;
        nms_ItemStack_$callClinit();
        $var5.$itemID = var$11.$itemID0;
        $var5.$stackSize = 1;
        $var5.$itemDamage = 0;
        if (nms_InventoryPlayer_addItemStackToInventory($par2World, $var5))
            return $par1ItemStack;
        $var5 = new nms_ItemStack;
        $var5.$itemID = nms_Item_bucketWater.$itemID0;
        $var5.$stackSize = 1;
        $var5.$itemDamage = 0;
        $var4 = 0;
        $ptr = 8;
        continue main;
    case 6:
        $tmp = nms_World_getBlockMetadata($par2World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4)
            return $par1ItemStack;
        $var4 = 0;
        var$9 = 0;
        var$10 = 3;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par2World, $var6, $var7, $var8, $var4, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($par3EntityPlayer.$capabilities.$isCreativeMode)
            return $par1ItemStack;
        $var4 = $par1ItemStack.$stackSize - 1 | 0;
        $par1ItemStack.$stackSize = $var4;
        if ($var4 <= 0) {
            $par1ItemStack = new nms_ItemStack;
            $par2World = nms_Item_bucketLava;
            nms_ItemStack_$callClinit();
            $par1ItemStack.$itemID = $par2World.$itemID0;
            $par1ItemStack.$stackSize = 1;
            $par1ItemStack.$itemDamage = 0;
            return $par1ItemStack;
        }
        $par2World = $par3EntityPlayer.$inventory0;
        $var5 = new nms_ItemStack;
        var$11 = nms_Item_bucketLava;
        nms_ItemStack_$callClinit();
        $var5.$itemID = var$11.$itemID0;
        $var5.$stackSize = 1;
        $var5.$itemDamage = 0;
        if (nms_InventoryPlayer_addItemStackToInventory($par2World, $var5))
            return $par1ItemStack;
        $par2World = new nms_ItemStack;
        $par2World.$itemID = nms_Item_bucketLava.$itemID0;
        $par2World.$stackSize = 1;
        $par2World.$itemDamage = 0;
        $var4 = 0;
        $ptr = 9;
        continue main;
    case 8:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par3EntityPlayer, $var5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    case 9:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par3EntityPlayer, $par2World, $var4);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    case 10:
        $tmp = nms_ItemBucket_tryPlaceContainedLiquid($this, $par2World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 && !$par3EntityPlayer.$capabilities.$isCreativeMode) {
            $par1ItemStack = new nms_ItemStack;
            $par2World = nms_Item_bucketEmpty;
            nms_ItemStack_$callClinit();
            $par1ItemStack.$itemID = $par2World.$itemID0;
            $par1ItemStack.$stackSize = 1;
            $par1ItemStack.$itemDamage = 0;
            return $par1ItemStack;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, $ptr);
},
nms_ItemBucket_tryPlaceContainedLiquid = ($this, $par1World, $par2, $par3, $par4) => {
    let $var7, $var5, $var6, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isFull <= 0)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!$var7) {
            nms_Material_$callClinit();
            $var5 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var5 = nms_Block_blocksList.data[$var7].$blockMaterial;
        }
        $var6 = $var5.$isSolid() ? 0 : 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var7 = $var7 ? 0 : 1;
        if (!$var7 && !$var6)
            return 0;
        if ($par1World.$provider.$isHellWorld) {
            $var7 = $this.$isFull;
            nms_Block_$callClinit();
            if ($var7 == nms_Block_waterMoving.$blockID) {
                var$8 = $par2 + 0.5;
                var$9 = $par3 + 0.5;
                var$10 = $par4 + 0.5;
                $var5 = $rt_s(1251);
                var$11 = 0.5;
                var$12 = $par1World.$rand0;
                var$13 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$12.$seed = var$13;
                var$14 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7;
                var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$12.$seed = var$13;
                var$15 = 2.5999999046325684 + (var$14 - Long_lo(Long_shru(var$13, 24)) / 1.6777216E7) * 0.800000011920929;
                $ptr = 4;
                continue main;
            }
        }
        if (!$par1World.$isRemote && $var6 && !$var5.$isLiquid()) {
            $var7 = 1;
            $ptr = 5;
            continue main;
        }
        var$16 = $this.$isFull;
        $var7 = 0;
        $var6 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$16, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 4:
        nms_World_playSoundEffect($par1World, var$8, var$9, var$10, $var5, var$11, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 0;
        a: {
            while ($var7 < 8) {
                jl_Math_randomImpl();
                jl_Math_randomImpl();
                jl_Math_randomImpl();
                $par2 = 0;
                while (true) {
                    $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                    if ($par3 >= 0)
                        break;
                    if ($par2 < 0)
                        break a;
                    if ($par3 >= 0)
                        break a;
                    $par2 = $par2 + 1 | 0;
                }
                $var7 = $var7 + 1 | 0;
            }
            return 1;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 5:
        nms_World_destroyBlock($par1World, $par2, $par3, $par4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $this.$isFull;
        $var7 = 0;
        $var6 = 3;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var7, $var5, $var6, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
};
function nms_ItemMinecart() {
    nms_Item.call(this);
    this.$minecartType = 0;
}
let nms_ItemMinecart_dispenserMinecartBehavior = null,
nms_ItemMinecart__init_0 = ($this, $par1, $par2) => {
    let var$3, var$4;
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
    $this.$minecartType = $par2;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTransport;
    var$3 = nms_BlockDispenser_dispenseBehaviorRegistry;
    var$4 = nms_ItemMinecart_dispenserMinecartBehavior;
    ju_HashMap_putImpl(var$3.$registryObjects, $this, var$4);
},
nms_ItemMinecart__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemMinecart();
    nms_ItemMinecart__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ItemMinecart_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, var$13, var$14, $var12, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var12 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!nms_BlockRailBase_isRailBlock($var11))
            return 0;
        if ($par3World.$isRemote) {
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
            return 1;
        }
        var$12 = $par4 + 0.5;
        var$13 = $par5 + 0.5;
        var$14 = $par6 + 0.5;
        switch ($this.$minecartType) {
            case 1:
                $var12 = new nms_EntityMinecartChest;
                nms_Entity__init_($var12, $par3World);
                $var12.$preventEntitySpawning = 1;
                $par9 = 0.9800000190734863;
                $par8 = 0.699999988079071;
                $ptr = 2;
                continue main;
            case 2:
                break;
            case 3:
                $var12 = new nms_EntityMinecartTNT;
                nms_Entity__init_($var12, $par3World);
                $var12.$preventEntitySpawning = 1;
                $par9 = 0.9800000190734863;
                $par8 = 0.699999988079071;
                $ptr = 4;
                continue main;
            case 4:
                $var12 = new nms_EntityMinecartMobSpawner;
                nms_Entity__init_($var12, $par3World);
                $var12.$preventEntitySpawning = 1;
                $par9 = 0.9800000190734863;
                $par8 = 0.699999988079071;
                $ptr = 5;
                continue main;
            case 5:
                $var12 = new nms_EntityMinecartHopper;
                nms_Entity__init_($var12, $par3World);
                $var12.$preventEntitySpawning = 1;
                $par9 = 0.9800000190734863;
                $par8 = 0.699999988079071;
                $ptr = 6;
                continue main;
            default:
                $var12 = new nms_EntityMinecartEmpty;
                nms_Entity__init_($var12, $par3World);
                $var12.$preventEntitySpawning = 1;
                $par9 = 0.9800000190734863;
                $par8 = 0.699999988079071;
                $ptr = 7;
                continue main;
        }
        $var12 = new nms_EntityMinecartFurnace;
        nms_Entity__init_($var12, $par3World);
        $var12.$preventEntitySpawning = 1;
        $par9 = 0.9800000190734863;
        $par8 = 0.699999988079071;
        $ptr = 3;
        continue main;
    case 2:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$12, var$13, var$14);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$12;
        $var12.$prevPosY = var$13;
        $var12.$prevPosZ = var$14;
        $var12.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        $var12.$dropContentsWhenDead = 1;
        var$16 = $par1ItemStack.$stackTagCompound;
        if (var$16 === null)
            $par4 = 0;
        else {
            a: {
                var$16 = var$16.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par6 = $rt_s(918).$hashCode1;
            var$17 = var$16.$elementData.data;
            var$16 = var$17[$par6 & (var$17.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == $par6) {
                    b: {
                        var$18 = var$16.$key;
                        if ($rt_s(918) !== var$18) {
                            if ($rt_s(918) !== var$18) {
                                if (var$18 instanceof jl_String) {
                                    var$18 = var$18;
                                    $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                var$16 = var$16.$next3;
            }
            if (!(var$16 === null ? 0 : 1))
                $par4 = 0;
            else {
                c: {
                    $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                    var$18 = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(918).$hashCode1;
                var$17 = var$18.$elementData.data;
                var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                while (var$18 !== null) {
                    if (var$18.$origKeyHash == $par6) {
                        d: {
                            var$19 = var$18.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                } else
                                    $par4 = 1;
                                if (!$par4) {
                                    $par4 = 0;
                                    break d;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    var$18 = var$18.$next3;
                }
                if (!(var$18 === null ? 0 : 1)) {
                    $par2EntityPlayer = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par2EntityPlayer.$name = $rt_s(918);
                    else
                        $par2EntityPlayer.$name = $rt_s(3);
                    var$16 = new ju_HashMap;
                    $par4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                    var$17 = var$20.data;
                    var$16.$elementData = var$20;
                    var$16.$loadFactor = 0.75;
                    var$16.$threshold = var$17.length * 0.75 | 0;
                    $par2EntityPlayer.$tagMap = var$16;
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if ($rt_s(918) === null) {
                        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                f: {
                                    var$18 = $par2EntityPlayer.$key;
                                    if ($rt_s(918) !== var$18) {
                                        if ($rt_s(918) === var$18)
                                            $par4 = 1;
                                        else if (!(var$18 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$18 = var$18;
                                            $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break f;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    }
                    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
                }
                g: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(919).$hashCode1;
                var$17 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == $par6) {
                        h: {
                            var$18 = $par2EntityPlayer.$key;
                            if ($rt_s(919) !== var$18) {
                                if ($rt_s(919) === var$18)
                                    $par4 = 1;
                                else if (!(var$18 instanceof jl_String))
                                    $par4 = 0;
                                else {
                                    var$18 = var$18;
                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                }
                                if (!$par4) {
                                    $par4 = 0;
                                    break h;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                $par4 = $par2EntityPlayer === null ? 0 : 1;
            }
        }
        if ($par4) {
            nms_Item_$callClinit();
            $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
            var$16 = $par1ItemStack.$stackTagCompound;
            if (var$16 !== null) {
                i: {
                    var$16 = var$16.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$17 = var$16.$elementData.data;
                var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $par4) {
                        j: {
                            var$19 = var$16.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par5 = 0;
                                } else
                                    $par5 = 1;
                                if (!$par5) {
                                    $par5 = 0;
                                    break j;
                                }
                            }
                            $par5 = 1;
                        }
                        if ($par5)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
                if (var$16 === null ? 0 : 1) {
                    k: {
                        var$16 = $par1ItemStack.$stackTagCompound;
                        var$19 = var$16.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$17 = var$19.$elementData.data;
                    var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $par4) {
                            l: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        $par5 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par5 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par5 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par5) {
                                        $par5 = 0;
                                        break l;
                                    }
                                }
                                $par5 = 1;
                            }
                            if ($par5)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1)) {
                        var$21 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$21.$name = $rt_s(918);
                        else
                            var$21.$name = $rt_s(3);
                        var$16 = new ju_HashMap;
                        $par4 = ju_HashMap_calculateCapacity(16);
                        var$16.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                        var$17 = var$20.data;
                        var$16.$elementData = var$20;
                        var$16.$loadFactor = 0.75;
                        var$16.$threshold = var$17.length * 0.75 | 0;
                        var$21.$tagMap = var$16;
                    } else {
                        var$16 = var$16.$tagMap;
                        if ($rt_s(918) === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par6 = 0;
                                    while (true) {
                                        if ($par6 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                        $par6 = $par6 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$17 = var$16.$elementData.data;
                            var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par4) {
                                    n: {
                                        var$19 = var$16.$key;
                                        if ($rt_s(918) !== var$19) {
                                            if ($rt_s(918) === var$19)
                                                $par5 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par5 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par5) {
                                                $par5 = 0;
                                                break n;
                                            }
                                        }
                                        $par5 = 1;
                                    }
                                    if ($par5)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$21 = var$16 === null ? null : var$16.$value0;
                    }
                    o: {
                        var$18 = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(919).$hashCode1;
                    var$17 = var$18.$elementData.data;
                    var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == $par6) {
                            p: {
                                var$19 = var$18.$key;
                                if ($rt_s(919) !== var$19) {
                                    if ($rt_s(919) === var$19)
                                        $par4 = 1;
                                    else if (!(var$19 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$19 = var$19;
                                        $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break p;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (var$18 === null ? 0 : 1) {
                        q: {
                            $par2EntityPlayer = var$21.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                r: {
                                    var$16 = $par2EntityPlayer.$key;
                                    if ($rt_s(919) !== var$16) {
                                        if ($rt_s(919) === var$16)
                                            $par4 = 1;
                                        else if (!(var$16 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$16 = var$16;
                                            $par4 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break r;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                        if (!($par2EntityPlayer === null ? 0 : 1))
                            $par2EntityPlayer = $rt_s(3);
                        else {
                            $par2EntityPlayer = var$21.$tagMap;
                            if ($rt_s(919) === null) {
                                var$19 = $par2EntityPlayer.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$17 = $par2EntityPlayer.$elementData.data;
                                var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == $par4) {
                                        t: {
                                            $par2EntityPlayer = var$19.$key;
                                            if ($rt_s(919) !== $par2EntityPlayer) {
                                                if ($rt_s(919) === $par2EntityPlayer)
                                                    $par5 = 1;
                                                else if (!($par2EntityPlayer instanceof jl_String))
                                                    $par5 = 0;
                                                else {
                                                    var$16 = $par2EntityPlayer;
                                                    $par5 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                                }
                                                if (!$par5) {
                                                    $par5 = 0;
                                                    break t;
                                                }
                                            }
                                            $par5 = 1;
                                        }
                                        if ($par5)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            $par2EntityPlayer = (var$19 === null ? null : var$19.$value0).$data1;
                        }
                    }
                }
            }
            $var12.$entityName = $par2EntityPlayer;
        }
        $ptr = 8;
        continue main;
    case 3:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$12, var$13, var$14);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$12;
        $var12.$prevPosY = var$13;
        $var12.$prevPosZ = var$14;
        var$16 = $par1ItemStack.$stackTagCompound;
        if (var$16 === null)
            $par4 = 0;
        else {
            a: {
                var$16 = var$16.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par6 = $rt_s(918).$hashCode1;
            var$17 = var$16.$elementData.data;
            var$16 = var$17[$par6 & (var$17.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == $par6) {
                    b: {
                        var$18 = var$16.$key;
                        if ($rt_s(918) !== var$18) {
                            if ($rt_s(918) !== var$18) {
                                if (var$18 instanceof jl_String) {
                                    var$18 = var$18;
                                    $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                var$16 = var$16.$next3;
            }
            if (!(var$16 === null ? 0 : 1))
                $par4 = 0;
            else {
                c: {
                    $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                    var$18 = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(918).$hashCode1;
                var$17 = var$18.$elementData.data;
                var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                while (var$18 !== null) {
                    if (var$18.$origKeyHash == $par6) {
                        d: {
                            var$19 = var$18.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                } else
                                    $par4 = 1;
                                if (!$par4) {
                                    $par4 = 0;
                                    break d;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    var$18 = var$18.$next3;
                }
                if (!(var$18 === null ? 0 : 1)) {
                    $par2EntityPlayer = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par2EntityPlayer.$name = $rt_s(918);
                    else
                        $par2EntityPlayer.$name = $rt_s(3);
                    var$16 = new ju_HashMap;
                    $par4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                    var$17 = var$20.data;
                    var$16.$elementData = var$20;
                    var$16.$loadFactor = 0.75;
                    var$16.$threshold = var$17.length * 0.75 | 0;
                    $par2EntityPlayer.$tagMap = var$16;
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if ($rt_s(918) === null) {
                        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                f: {
                                    var$18 = $par2EntityPlayer.$key;
                                    if ($rt_s(918) !== var$18) {
                                        if ($rt_s(918) === var$18)
                                            $par4 = 1;
                                        else if (!(var$18 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$18 = var$18;
                                            $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break f;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    }
                    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
                }
                g: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(919).$hashCode1;
                var$17 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == $par6) {
                        h: {
                            var$18 = $par2EntityPlayer.$key;
                            if ($rt_s(919) !== var$18) {
                                if ($rt_s(919) === var$18)
                                    $par4 = 1;
                                else if (!(var$18 instanceof jl_String))
                                    $par4 = 0;
                                else {
                                    var$18 = var$18;
                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                }
                                if (!$par4) {
                                    $par4 = 0;
                                    break h;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                $par4 = $par2EntityPlayer === null ? 0 : 1;
            }
        }
        if ($par4) {
            nms_Item_$callClinit();
            $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
            var$16 = $par1ItemStack.$stackTagCompound;
            if (var$16 !== null) {
                i: {
                    var$16 = var$16.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$17 = var$16.$elementData.data;
                var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $par4) {
                        j: {
                            var$19 = var$16.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par5 = 0;
                                } else
                                    $par5 = 1;
                                if (!$par5) {
                                    $par5 = 0;
                                    break j;
                                }
                            }
                            $par5 = 1;
                        }
                        if ($par5)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
                if (var$16 === null ? 0 : 1) {
                    k: {
                        var$16 = $par1ItemStack.$stackTagCompound;
                        var$19 = var$16.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$17 = var$19.$elementData.data;
                    var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $par4) {
                            l: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        $par5 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par5 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par5 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par5) {
                                        $par5 = 0;
                                        break l;
                                    }
                                }
                                $par5 = 1;
                            }
                            if ($par5)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1)) {
                        var$21 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$21.$name = $rt_s(918);
                        else
                            var$21.$name = $rt_s(3);
                        var$16 = new ju_HashMap;
                        $par4 = ju_HashMap_calculateCapacity(16);
                        var$16.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                        var$17 = var$20.data;
                        var$16.$elementData = var$20;
                        var$16.$loadFactor = 0.75;
                        var$16.$threshold = var$17.length * 0.75 | 0;
                        var$21.$tagMap = var$16;
                    } else {
                        var$16 = var$16.$tagMap;
                        if ($rt_s(918) === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par6 = 0;
                                    while (true) {
                                        if ($par6 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                        $par6 = $par6 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$17 = var$16.$elementData.data;
                            var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par4) {
                                    n: {
                                        var$19 = var$16.$key;
                                        if ($rt_s(918) !== var$19) {
                                            if ($rt_s(918) === var$19)
                                                $par5 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par5 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par5) {
                                                $par5 = 0;
                                                break n;
                                            }
                                        }
                                        $par5 = 1;
                                    }
                                    if ($par5)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$21 = var$16 === null ? null : var$16.$value0;
                    }
                    o: {
                        var$18 = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(919).$hashCode1;
                    var$17 = var$18.$elementData.data;
                    var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == $par6) {
                            p: {
                                var$19 = var$18.$key;
                                if ($rt_s(919) !== var$19) {
                                    if ($rt_s(919) === var$19)
                                        $par4 = 1;
                                    else if (!(var$19 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$19 = var$19;
                                        $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break p;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (var$18 === null ? 0 : 1) {
                        q: {
                            $par2EntityPlayer = var$21.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                r: {
                                    var$16 = $par2EntityPlayer.$key;
                                    if ($rt_s(919) !== var$16) {
                                        if ($rt_s(919) === var$16)
                                            $par4 = 1;
                                        else if (!(var$16 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$16 = var$16;
                                            $par4 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break r;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                        if (!($par2EntityPlayer === null ? 0 : 1))
                            $par2EntityPlayer = $rt_s(3);
                        else {
                            $par2EntityPlayer = var$21.$tagMap;
                            if ($rt_s(919) === null) {
                                var$19 = $par2EntityPlayer.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$17 = $par2EntityPlayer.$elementData.data;
                                var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == $par4) {
                                        t: {
                                            $par2EntityPlayer = var$19.$key;
                                            if ($rt_s(919) !== $par2EntityPlayer) {
                                                if ($rt_s(919) === $par2EntityPlayer)
                                                    $par5 = 1;
                                                else if (!($par2EntityPlayer instanceof jl_String))
                                                    $par5 = 0;
                                                else {
                                                    var$16 = $par2EntityPlayer;
                                                    $par5 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                                }
                                                if (!$par5) {
                                                    $par5 = 0;
                                                    break t;
                                                }
                                            }
                                            $par5 = 1;
                                        }
                                        if ($par5)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            $par2EntityPlayer = (var$19 === null ? null : var$19.$value0).$data1;
                        }
                    }
                }
            }
            $var12.$entityName = $par2EntityPlayer;
        }
        $ptr = 8;
        continue main;
    case 4:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$12, var$13, var$14);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$12;
        $var12.$prevPosY = var$13;
        $var12.$prevPosZ = var$14;
        $var12.$minecartTNTFuse = (-1);
        var$16 = $par1ItemStack.$stackTagCompound;
        if (var$16 === null)
            $par4 = 0;
        else {
            a: {
                var$16 = var$16.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par6 = $rt_s(918).$hashCode1;
            var$17 = var$16.$elementData.data;
            var$16 = var$17[$par6 & (var$17.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == $par6) {
                    b: {
                        var$18 = var$16.$key;
                        if ($rt_s(918) !== var$18) {
                            if ($rt_s(918) !== var$18) {
                                if (var$18 instanceof jl_String) {
                                    var$18 = var$18;
                                    $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                var$16 = var$16.$next3;
            }
            if (!(var$16 === null ? 0 : 1))
                $par4 = 0;
            else {
                c: {
                    $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                    var$18 = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(918).$hashCode1;
                var$17 = var$18.$elementData.data;
                var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                while (var$18 !== null) {
                    if (var$18.$origKeyHash == $par6) {
                        d: {
                            var$19 = var$18.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                } else
                                    $par4 = 1;
                                if (!$par4) {
                                    $par4 = 0;
                                    break d;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    var$18 = var$18.$next3;
                }
                if (!(var$18 === null ? 0 : 1)) {
                    $par2EntityPlayer = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par2EntityPlayer.$name = $rt_s(918);
                    else
                        $par2EntityPlayer.$name = $rt_s(3);
                    var$16 = new ju_HashMap;
                    $par4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                    var$17 = var$20.data;
                    var$16.$elementData = var$20;
                    var$16.$loadFactor = 0.75;
                    var$16.$threshold = var$17.length * 0.75 | 0;
                    $par2EntityPlayer.$tagMap = var$16;
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if ($rt_s(918) === null) {
                        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                f: {
                                    var$18 = $par2EntityPlayer.$key;
                                    if ($rt_s(918) !== var$18) {
                                        if ($rt_s(918) === var$18)
                                            $par4 = 1;
                                        else if (!(var$18 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$18 = var$18;
                                            $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break f;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    }
                    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
                }
                g: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(919).$hashCode1;
                var$17 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == $par6) {
                        h: {
                            var$18 = $par2EntityPlayer.$key;
                            if ($rt_s(919) !== var$18) {
                                if ($rt_s(919) === var$18)
                                    $par4 = 1;
                                else if (!(var$18 instanceof jl_String))
                                    $par4 = 0;
                                else {
                                    var$18 = var$18;
                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                }
                                if (!$par4) {
                                    $par4 = 0;
                                    break h;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                $par4 = $par2EntityPlayer === null ? 0 : 1;
            }
        }
        if ($par4) {
            nms_Item_$callClinit();
            $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
            var$16 = $par1ItemStack.$stackTagCompound;
            if (var$16 !== null) {
                i: {
                    var$16 = var$16.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$17 = var$16.$elementData.data;
                var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $par4) {
                        j: {
                            var$19 = var$16.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par5 = 0;
                                } else
                                    $par5 = 1;
                                if (!$par5) {
                                    $par5 = 0;
                                    break j;
                                }
                            }
                            $par5 = 1;
                        }
                        if ($par5)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
                if (var$16 === null ? 0 : 1) {
                    k: {
                        var$16 = $par1ItemStack.$stackTagCompound;
                        var$19 = var$16.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$17 = var$19.$elementData.data;
                    var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $par4) {
                            l: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        $par5 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par5 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par5 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par5) {
                                        $par5 = 0;
                                        break l;
                                    }
                                }
                                $par5 = 1;
                            }
                            if ($par5)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1)) {
                        var$21 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$21.$name = $rt_s(918);
                        else
                            var$21.$name = $rt_s(3);
                        var$16 = new ju_HashMap;
                        $par4 = ju_HashMap_calculateCapacity(16);
                        var$16.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                        var$17 = var$20.data;
                        var$16.$elementData = var$20;
                        var$16.$loadFactor = 0.75;
                        var$16.$threshold = var$17.length * 0.75 | 0;
                        var$21.$tagMap = var$16;
                    } else {
                        var$16 = var$16.$tagMap;
                        if ($rt_s(918) === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par6 = 0;
                                    while (true) {
                                        if ($par6 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                        $par6 = $par6 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$17 = var$16.$elementData.data;
                            var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par4) {
                                    n: {
                                        var$19 = var$16.$key;
                                        if ($rt_s(918) !== var$19) {
                                            if ($rt_s(918) === var$19)
                                                $par5 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par5 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par5) {
                                                $par5 = 0;
                                                break n;
                                            }
                                        }
                                        $par5 = 1;
                                    }
                                    if ($par5)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$21 = var$16 === null ? null : var$16.$value0;
                    }
                    o: {
                        var$18 = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(919).$hashCode1;
                    var$17 = var$18.$elementData.data;
                    var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == $par6) {
                            p: {
                                var$19 = var$18.$key;
                                if ($rt_s(919) !== var$19) {
                                    if ($rt_s(919) === var$19)
                                        $par4 = 1;
                                    else if (!(var$19 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$19 = var$19;
                                        $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break p;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (var$18 === null ? 0 : 1) {
                        q: {
                            $par2EntityPlayer = var$21.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                r: {
                                    var$16 = $par2EntityPlayer.$key;
                                    if ($rt_s(919) !== var$16) {
                                        if ($rt_s(919) === var$16)
                                            $par4 = 1;
                                        else if (!(var$16 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$16 = var$16;
                                            $par4 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break r;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                        if (!($par2EntityPlayer === null ? 0 : 1))
                            $par2EntityPlayer = $rt_s(3);
                        else {
                            $par2EntityPlayer = var$21.$tagMap;
                            if ($rt_s(919) === null) {
                                var$19 = $par2EntityPlayer.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$17 = $par2EntityPlayer.$elementData.data;
                                var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == $par4) {
                                        t: {
                                            $par2EntityPlayer = var$19.$key;
                                            if ($rt_s(919) !== $par2EntityPlayer) {
                                                if ($rt_s(919) === $par2EntityPlayer)
                                                    $par5 = 1;
                                                else if (!($par2EntityPlayer instanceof jl_String))
                                                    $par5 = 0;
                                                else {
                                                    var$16 = $par2EntityPlayer;
                                                    $par5 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                                }
                                                if (!$par5) {
                                                    $par5 = 0;
                                                    break t;
                                                }
                                            }
                                            $par5 = 1;
                                        }
                                        if ($par5)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            $par2EntityPlayer = (var$19 === null ? null : var$19.$value0).$data1;
                        }
                    }
                }
            }
            $var12.$entityName = $par2EntityPlayer;
        }
        $ptr = 8;
        continue main;
    case 5:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$12, var$13, var$14);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$12;
        $var12.$prevPosY = var$13;
        $var12.$prevPosZ = var$14;
        $par2EntityPlayer = new nms_EntityMinecartMobSpawnerLogic;
        $par2EntityPlayer.$spawnDelay = 20;
        $par2EntityPlayer.$mobID = $rt_s(1309);
        $par2EntityPlayer.$minSpawnDelay = 200;
        $par2EntityPlayer.$maxSpawnDelay = 800;
        $par2EntityPlayer.$spawnCount = 4;
        $par2EntityPlayer.$maxNearbyEntities = 6;
        $par2EntityPlayer.$activatingRangeFromPlayer = 16;
        $par2EntityPlayer.$spawnRange = 4;
        $par2EntityPlayer.$spawnerMinecart = $var12;
        $var12.$mobSpawnerLogic = $par2EntityPlayer;
        var$16 = $par1ItemStack.$stackTagCompound;
        if (var$16 === null)
            $par4 = 0;
        else {
            a: {
                var$16 = var$16.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par6 = $rt_s(918).$hashCode1;
            var$17 = var$16.$elementData.data;
            var$16 = var$17[$par6 & (var$17.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == $par6) {
                    b: {
                        var$18 = var$16.$key;
                        if ($rt_s(918) !== var$18) {
                            if ($rt_s(918) !== var$18) {
                                if (var$18 instanceof jl_String) {
                                    var$18 = var$18;
                                    $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                var$16 = var$16.$next3;
            }
            if (!(var$16 === null ? 0 : 1))
                $par4 = 0;
            else {
                c: {
                    $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                    var$18 = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(918).$hashCode1;
                var$17 = var$18.$elementData.data;
                var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                while (var$18 !== null) {
                    if (var$18.$origKeyHash == $par6) {
                        d: {
                            var$19 = var$18.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                } else
                                    $par4 = 1;
                                if (!$par4) {
                                    $par4 = 0;
                                    break d;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    var$18 = var$18.$next3;
                }
                if (!(var$18 === null ? 0 : 1)) {
                    $par2EntityPlayer = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par2EntityPlayer.$name = $rt_s(918);
                    else
                        $par2EntityPlayer.$name = $rt_s(3);
                    var$16 = new ju_HashMap;
                    $par4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                    var$17 = var$20.data;
                    var$16.$elementData = var$20;
                    var$16.$loadFactor = 0.75;
                    var$16.$threshold = var$17.length * 0.75 | 0;
                    $par2EntityPlayer.$tagMap = var$16;
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if ($rt_s(918) === null) {
                        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                f: {
                                    var$18 = $par2EntityPlayer.$key;
                                    if ($rt_s(918) !== var$18) {
                                        if ($rt_s(918) === var$18)
                                            $par4 = 1;
                                        else if (!(var$18 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$18 = var$18;
                                            $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break f;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    }
                    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
                }
                g: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(919).$hashCode1;
                var$17 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == $par6) {
                        h: {
                            var$18 = $par2EntityPlayer.$key;
                            if ($rt_s(919) !== var$18) {
                                if ($rt_s(919) === var$18)
                                    $par4 = 1;
                                else if (!(var$18 instanceof jl_String))
                                    $par4 = 0;
                                else {
                                    var$18 = var$18;
                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                }
                                if (!$par4) {
                                    $par4 = 0;
                                    break h;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                $par4 = $par2EntityPlayer === null ? 0 : 1;
            }
        }
        if ($par4) {
            nms_Item_$callClinit();
            $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
            var$16 = $par1ItemStack.$stackTagCompound;
            if (var$16 !== null) {
                i: {
                    var$16 = var$16.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$17 = var$16.$elementData.data;
                var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $par4) {
                        j: {
                            var$19 = var$16.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par5 = 0;
                                } else
                                    $par5 = 1;
                                if (!$par5) {
                                    $par5 = 0;
                                    break j;
                                }
                            }
                            $par5 = 1;
                        }
                        if ($par5)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
                if (var$16 === null ? 0 : 1) {
                    k: {
                        var$16 = $par1ItemStack.$stackTagCompound;
                        var$19 = var$16.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$17 = var$19.$elementData.data;
                    var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $par4) {
                            l: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        $par5 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par5 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par5 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par5) {
                                        $par5 = 0;
                                        break l;
                                    }
                                }
                                $par5 = 1;
                            }
                            if ($par5)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1)) {
                        var$21 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$21.$name = $rt_s(918);
                        else
                            var$21.$name = $rt_s(3);
                        var$16 = new ju_HashMap;
                        $par4 = ju_HashMap_calculateCapacity(16);
                        var$16.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                        var$17 = var$20.data;
                        var$16.$elementData = var$20;
                        var$16.$loadFactor = 0.75;
                        var$16.$threshold = var$17.length * 0.75 | 0;
                        var$21.$tagMap = var$16;
                    } else {
                        var$16 = var$16.$tagMap;
                        if ($rt_s(918) === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par6 = 0;
                                    while (true) {
                                        if ($par6 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                        $par6 = $par6 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$17 = var$16.$elementData.data;
                            var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par4) {
                                    n: {
                                        var$19 = var$16.$key;
                                        if ($rt_s(918) !== var$19) {
                                            if ($rt_s(918) === var$19)
                                                $par5 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par5 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par5) {
                                                $par5 = 0;
                                                break n;
                                            }
                                        }
                                        $par5 = 1;
                                    }
                                    if ($par5)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$21 = var$16 === null ? null : var$16.$value0;
                    }
                    o: {
                        var$18 = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(919).$hashCode1;
                    var$17 = var$18.$elementData.data;
                    var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == $par6) {
                            p: {
                                var$19 = var$18.$key;
                                if ($rt_s(919) !== var$19) {
                                    if ($rt_s(919) === var$19)
                                        $par4 = 1;
                                    else if (!(var$19 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$19 = var$19;
                                        $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break p;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (var$18 === null ? 0 : 1) {
                        q: {
                            $par2EntityPlayer = var$21.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                r: {
                                    var$16 = $par2EntityPlayer.$key;
                                    if ($rt_s(919) !== var$16) {
                                        if ($rt_s(919) === var$16)
                                            $par4 = 1;
                                        else if (!(var$16 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$16 = var$16;
                                            $par4 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break r;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                        if (!($par2EntityPlayer === null ? 0 : 1))
                            $par2EntityPlayer = $rt_s(3);
                        else {
                            $par2EntityPlayer = var$21.$tagMap;
                            if ($rt_s(919) === null) {
                                var$19 = $par2EntityPlayer.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$17 = $par2EntityPlayer.$elementData.data;
                                var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == $par4) {
                                        t: {
                                            $par2EntityPlayer = var$19.$key;
                                            if ($rt_s(919) !== $par2EntityPlayer) {
                                                if ($rt_s(919) === $par2EntityPlayer)
                                                    $par5 = 1;
                                                else if (!($par2EntityPlayer instanceof jl_String))
                                                    $par5 = 0;
                                                else {
                                                    var$16 = $par2EntityPlayer;
                                                    $par5 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                                }
                                                if (!$par5) {
                                                    $par5 = 0;
                                                    break t;
                                                }
                                            }
                                            $par5 = 1;
                                        }
                                        if ($par5)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            $par2EntityPlayer = (var$19 === null ? null : var$19.$value0).$data1;
                        }
                    }
                }
            }
            $var12.$entityName = $par2EntityPlayer;
        }
        $ptr = 8;
        continue main;
    case 6:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$12, var$13, var$14);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$12;
        $var12.$prevPosY = var$13;
        $var12.$prevPosZ = var$14;
        $var12.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        $var12.$dropContentsWhenDead = 1;
        $var12.$isBlocked = 1;
        $var12.$transferTicker = (-1);
        var$16 = $par1ItemStack.$stackTagCompound;
        if (var$16 === null)
            $par4 = 0;
        else {
            a: {
                var$16 = var$16.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par6 = $rt_s(918).$hashCode1;
            var$17 = var$16.$elementData.data;
            var$16 = var$17[$par6 & (var$17.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == $par6) {
                    b: {
                        var$18 = var$16.$key;
                        if ($rt_s(918) !== var$18) {
                            if ($rt_s(918) !== var$18) {
                                if (var$18 instanceof jl_String) {
                                    var$18 = var$18;
                                    $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                var$16 = var$16.$next3;
            }
            if (!(var$16 === null ? 0 : 1))
                $par4 = 0;
            else {
                c: {
                    $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                    var$18 = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(918).$hashCode1;
                var$17 = var$18.$elementData.data;
                var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                while (var$18 !== null) {
                    if (var$18.$origKeyHash == $par6) {
                        d: {
                            var$19 = var$18.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                } else
                                    $par4 = 1;
                                if (!$par4) {
                                    $par4 = 0;
                                    break d;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    var$18 = var$18.$next3;
                }
                if (!(var$18 === null ? 0 : 1)) {
                    $par2EntityPlayer = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par2EntityPlayer.$name = $rt_s(918);
                    else
                        $par2EntityPlayer.$name = $rt_s(3);
                    var$16 = new ju_HashMap;
                    $par4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                    var$17 = var$20.data;
                    var$16.$elementData = var$20;
                    var$16.$loadFactor = 0.75;
                    var$16.$threshold = var$17.length * 0.75 | 0;
                    $par2EntityPlayer.$tagMap = var$16;
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if ($rt_s(918) === null) {
                        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                f: {
                                    var$18 = $par2EntityPlayer.$key;
                                    if ($rt_s(918) !== var$18) {
                                        if ($rt_s(918) === var$18)
                                            $par4 = 1;
                                        else if (!(var$18 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$18 = var$18;
                                            $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break f;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    }
                    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
                }
                g: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(919).$hashCode1;
                var$17 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == $par6) {
                        h: {
                            var$18 = $par2EntityPlayer.$key;
                            if ($rt_s(919) !== var$18) {
                                if ($rt_s(919) === var$18)
                                    $par4 = 1;
                                else if (!(var$18 instanceof jl_String))
                                    $par4 = 0;
                                else {
                                    var$18 = var$18;
                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                }
                                if (!$par4) {
                                    $par4 = 0;
                                    break h;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                $par4 = $par2EntityPlayer === null ? 0 : 1;
            }
        }
        if ($par4) {
            nms_Item_$callClinit();
            $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
            var$16 = $par1ItemStack.$stackTagCompound;
            if (var$16 !== null) {
                i: {
                    var$16 = var$16.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$17 = var$16.$elementData.data;
                var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $par4) {
                        j: {
                            var$19 = var$16.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par5 = 0;
                                } else
                                    $par5 = 1;
                                if (!$par5) {
                                    $par5 = 0;
                                    break j;
                                }
                            }
                            $par5 = 1;
                        }
                        if ($par5)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
                if (var$16 === null ? 0 : 1) {
                    k: {
                        var$16 = $par1ItemStack.$stackTagCompound;
                        var$19 = var$16.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$17 = var$19.$elementData.data;
                    var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $par4) {
                            l: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        $par5 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par5 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par5 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par5) {
                                        $par5 = 0;
                                        break l;
                                    }
                                }
                                $par5 = 1;
                            }
                            if ($par5)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1)) {
                        var$21 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$21.$name = $rt_s(918);
                        else
                            var$21.$name = $rt_s(3);
                        var$16 = new ju_HashMap;
                        $par4 = ju_HashMap_calculateCapacity(16);
                        var$16.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                        var$17 = var$20.data;
                        var$16.$elementData = var$20;
                        var$16.$loadFactor = 0.75;
                        var$16.$threshold = var$17.length * 0.75 | 0;
                        var$21.$tagMap = var$16;
                    } else {
                        var$16 = var$16.$tagMap;
                        if ($rt_s(918) === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par6 = 0;
                                    while (true) {
                                        if ($par6 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                        $par6 = $par6 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$17 = var$16.$elementData.data;
                            var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par4) {
                                    n: {
                                        var$19 = var$16.$key;
                                        if ($rt_s(918) !== var$19) {
                                            if ($rt_s(918) === var$19)
                                                $par5 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par5 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par5) {
                                                $par5 = 0;
                                                break n;
                                            }
                                        }
                                        $par5 = 1;
                                    }
                                    if ($par5)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$21 = var$16 === null ? null : var$16.$value0;
                    }
                    o: {
                        var$18 = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(919).$hashCode1;
                    var$17 = var$18.$elementData.data;
                    var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == $par6) {
                            p: {
                                var$19 = var$18.$key;
                                if ($rt_s(919) !== var$19) {
                                    if ($rt_s(919) === var$19)
                                        $par4 = 1;
                                    else if (!(var$19 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$19 = var$19;
                                        $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break p;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (var$18 === null ? 0 : 1) {
                        q: {
                            $par2EntityPlayer = var$21.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                r: {
                                    var$16 = $par2EntityPlayer.$key;
                                    if ($rt_s(919) !== var$16) {
                                        if ($rt_s(919) === var$16)
                                            $par4 = 1;
                                        else if (!(var$16 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$16 = var$16;
                                            $par4 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break r;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                        if (!($par2EntityPlayer === null ? 0 : 1))
                            $par2EntityPlayer = $rt_s(3);
                        else {
                            $par2EntityPlayer = var$21.$tagMap;
                            if ($rt_s(919) === null) {
                                var$19 = $par2EntityPlayer.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$17 = $par2EntityPlayer.$elementData.data;
                                var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == $par4) {
                                        t: {
                                            $par2EntityPlayer = var$19.$key;
                                            if ($rt_s(919) !== $par2EntityPlayer) {
                                                if ($rt_s(919) === $par2EntityPlayer)
                                                    $par5 = 1;
                                                else if (!($par2EntityPlayer instanceof jl_String))
                                                    $par5 = 0;
                                                else {
                                                    var$16 = $par2EntityPlayer;
                                                    $par5 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                                }
                                                if (!$par5) {
                                                    $par5 = 0;
                                                    break t;
                                                }
                                            }
                                            $par5 = 1;
                                        }
                                        if ($par5)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            $par2EntityPlayer = (var$19 === null ? null : var$19.$value0).$data1;
                        }
                    }
                }
            }
            $var12.$entityName = $par2EntityPlayer;
        }
        $ptr = 8;
        continue main;
    case 7:
        nms_Entity_setSize($var12, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$12, var$13, var$14);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$12;
        $var12.$prevPosY = var$13;
        $var12.$prevPosZ = var$14;
        var$16 = $par1ItemStack.$stackTagCompound;
        if (var$16 === null)
            $par4 = 0;
        else {
            a: {
                var$16 = var$16.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par6 = $rt_s(918).$hashCode1;
            var$17 = var$16.$elementData.data;
            var$16 = var$17[$par6 & (var$17.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == $par6) {
                    b: {
                        var$18 = var$16.$key;
                        if ($rt_s(918) !== var$18) {
                            if ($rt_s(918) !== var$18) {
                                if (var$18 instanceof jl_String) {
                                    var$18 = var$18;
                                    $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                var$16 = var$16.$next3;
            }
            if (!(var$16 === null ? 0 : 1))
                $par4 = 0;
            else {
                c: {
                    $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                    var$18 = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(918).$hashCode1;
                var$17 = var$18.$elementData.data;
                var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                while (var$18 !== null) {
                    if (var$18.$origKeyHash == $par6) {
                        d: {
                            var$19 = var$18.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                } else
                                    $par4 = 1;
                                if (!$par4) {
                                    $par4 = 0;
                                    break d;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    var$18 = var$18.$next3;
                }
                if (!(var$18 === null ? 0 : 1)) {
                    $par2EntityPlayer = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par2EntityPlayer.$name = $rt_s(918);
                    else
                        $par2EntityPlayer.$name = $rt_s(3);
                    var$16 = new ju_HashMap;
                    $par4 = ju_HashMap_calculateCapacity(16);
                    var$16.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                    var$17 = var$20.data;
                    var$16.$elementData = var$20;
                    var$16.$loadFactor = 0.75;
                    var$16.$threshold = var$17.length * 0.75 | 0;
                    $par2EntityPlayer.$tagMap = var$16;
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if ($rt_s(918) === null) {
                        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                f: {
                                    var$18 = $par2EntityPlayer.$key;
                                    if ($rt_s(918) !== var$18) {
                                        if ($rt_s(918) === var$18)
                                            $par4 = 1;
                                        else if (!(var$18 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$18 = var$18;
                                            $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break f;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                    }
                    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
                }
                g: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par6 = $rt_s(919).$hashCode1;
                var$17 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == $par6) {
                        h: {
                            var$18 = $par2EntityPlayer.$key;
                            if ($rt_s(919) !== var$18) {
                                if ($rt_s(919) === var$18)
                                    $par4 = 1;
                                else if (!(var$18 instanceof jl_String))
                                    $par4 = 0;
                                else {
                                    var$18 = var$18;
                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                }
                                if (!$par4) {
                                    $par4 = 0;
                                    break h;
                                }
                            }
                            $par4 = 1;
                        }
                        if ($par4)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                $par4 = $par2EntityPlayer === null ? 0 : 1;
            }
        }
        if ($par4) {
            nms_Item_$callClinit();
            $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
            var$16 = $par1ItemStack.$stackTagCompound;
            if (var$16 !== null) {
                i: {
                    var$16 = var$16.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par4 = 0;
                        while (true) {
                            if ($par4 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$17 = var$16.$elementData.data;
                var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                while (var$16 !== null) {
                    if (var$16.$origKeyHash == $par4) {
                        j: {
                            var$19 = var$16.$key;
                            if ($rt_s(918) !== var$19) {
                                if ($rt_s(918) !== var$19) {
                                    if (var$19 instanceof jl_String) {
                                        var$19 = var$19;
                                        $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    } else
                                        $par5 = 0;
                                } else
                                    $par5 = 1;
                                if (!$par5) {
                                    $par5 = 0;
                                    break j;
                                }
                            }
                            $par5 = 1;
                        }
                        if ($par5)
                            break;
                    }
                    var$16 = var$16.$next3;
                }
                if (var$16 === null ? 0 : 1) {
                    k: {
                        var$16 = $par1ItemStack.$stackTagCompound;
                        var$19 = var$16.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$17 = var$19.$elementData.data;
                    var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $par4) {
                            l: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        $par5 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par5 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par5 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par5) {
                                        $par5 = 0;
                                        break l;
                                    }
                                }
                                $par5 = 1;
                            }
                            if ($par5)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1)) {
                        var$21 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$21.$name = $rt_s(918);
                        else
                            var$21.$name = $rt_s(3);
                        var$16 = new ju_HashMap;
                        $par4 = ju_HashMap_calculateCapacity(16);
                        var$16.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                        var$17 = var$20.data;
                        var$16.$elementData = var$20;
                        var$16.$loadFactor = 0.75;
                        var$16.$threshold = var$17.length * 0.75 | 0;
                        var$21.$tagMap = var$16;
                    } else {
                        var$16 = var$16.$tagMap;
                        if ($rt_s(918) === null) {
                            var$16 = var$16.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par6 = 0;
                                    while (true) {
                                        if ($par6 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                        $par6 = $par6 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$17 = var$16.$elementData.data;
                            var$16 = var$17[$par4 & (var$17.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par4) {
                                    n: {
                                        var$19 = var$16.$key;
                                        if ($rt_s(918) !== var$19) {
                                            if ($rt_s(918) === var$19)
                                                $par5 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par5 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par5 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par5) {
                                                $par5 = 0;
                                                break n;
                                            }
                                        }
                                        $par5 = 1;
                                    }
                                    if ($par5)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$21 = var$16 === null ? null : var$16.$value0;
                    }
                    o: {
                        var$18 = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(919).$hashCode1;
                    var$17 = var$18.$elementData.data;
                    var$18 = var$17[$par6 & (var$17.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == $par6) {
                            p: {
                                var$19 = var$18.$key;
                                if ($rt_s(919) !== var$19) {
                                    if ($rt_s(919) === var$19)
                                        $par4 = 1;
                                    else if (!(var$19 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$19 = var$19;
                                        $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break p;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (var$18 === null ? 0 : 1) {
                        q: {
                            $par2EntityPlayer = var$21.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$17 = $par2EntityPlayer.$elementData.data;
                        $par2EntityPlayer = var$17[$par6 & (var$17.length - 1 | 0)];
                        while ($par2EntityPlayer !== null) {
                            if ($par2EntityPlayer.$origKeyHash == $par6) {
                                r: {
                                    var$16 = $par2EntityPlayer.$key;
                                    if ($rt_s(919) !== var$16) {
                                        if ($rt_s(919) === var$16)
                                            $par4 = 1;
                                        else if (!(var$16 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$16 = var$16;
                                            $par4 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break r;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            $par2EntityPlayer = $par2EntityPlayer.$next3;
                        }
                        if (!($par2EntityPlayer === null ? 0 : 1))
                            $par2EntityPlayer = $rt_s(3);
                        else {
                            $par2EntityPlayer = var$21.$tagMap;
                            if ($rt_s(919) === null) {
                                var$19 = $par2EntityPlayer.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$17 = $par2EntityPlayer.$elementData.data;
                                var$19 = var$17[$par4 & (var$17.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == $par4) {
                                        t: {
                                            $par2EntityPlayer = var$19.$key;
                                            if ($rt_s(919) !== $par2EntityPlayer) {
                                                if ($rt_s(919) === $par2EntityPlayer)
                                                    $par5 = 1;
                                                else if (!($par2EntityPlayer instanceof jl_String))
                                                    $par5 = 0;
                                                else {
                                                    var$16 = $par2EntityPlayer;
                                                    $par5 = $rt_s(919).$nativeString !== var$16.$nativeString ? 0 : 1;
                                                }
                                                if (!$par5) {
                                                    $par5 = 0;
                                                    break t;
                                                }
                                            }
                                            $par5 = 1;
                                        }
                                        if ($par5)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            $par2EntityPlayer = (var$19 === null ? null : var$19.$value0).$data1;
                        }
                    }
                }
            }
            $var12.$entityName = $par2EntityPlayer;
        }
        $ptr = 8;
    case 8:
        nms_World_spawnEntityInWorld($par3World, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, var$13, var$14, $var12, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_ItemMinecart__clinit_ = () => {
    let var$1;
    var$1 = new nms_BehaviorDispenseMinecart;
    var$1.$behaviourDefaultDispenseItem = new nms_BehaviorDefaultDispenseItem;
    nms_ItemMinecart_dispenserMinecartBehavior = var$1;
},
nms_ItemSaddle = $rt_classWithoutFields(nms_Item),
nms_ItemSaddle__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTransport;
},
nms_ItemSaddle__init_ = var_0 => {
    let var_1 = new nms_ItemSaddle();
    nms_ItemSaddle__init_0(var_1, var_0);
    return var_1;
},
nms_ItemSaddle_itemInteractionForEntity = ($this, $par1ItemStack, $par2EntityPlayer, $par3EntityLivingBase) => {
    let $var4, var$5, var$6, var$7, var$8, var$9;
    if (!($par3EntityLivingBase instanceof nms_EntityPig))
        return 0;
    $var4 = $par3EntityLivingBase;
    $par2EntityPlayer = $var4.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    $par3EntityLivingBase = jl_Integer_integerCache.data[144];
    if ($par3EntityLivingBase === null) {
        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
            $par2EntityPlayer = $par2EntityPlayer.$next3;
        }
    } else {
        var$5 = $par3EntityLivingBase.$value;
        var$6 = $par2EntityPlayer.$elementData.data;
        $par2EntityPlayer = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($par2EntityPlayer !== null) {
            if ($par2EntityPlayer.$origKeyHash == var$5) {
                var$7 = $par2EntityPlayer.$key;
                if ($par3EntityLivingBase !== var$7 && !($par3EntityLivingBase === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par2EntityPlayer = $par2EntityPlayer.$next3;
        }
    }
    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
    var$5 = !($par2EntityPlayer.$watchedObject.$value1 & 1) ? 0 : 1;
    if (!var$5 && !nms_EntityAgeable_isChild($var4)) {
        $par2EntityPlayer = $var4.$dataWatcher;
        var$7 = jl_Byte_byteCache.data[129];
        $par3EntityLivingBase = $par2EntityPlayer.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var4 = jl_Integer_integerCache.data[144];
        if ($var4 === null) {
            $par3EntityLivingBase = $par3EntityLivingBase.$elementData.data[0];
            while ($par3EntityLivingBase !== null && $par3EntityLivingBase.$key !== null) {
                $par3EntityLivingBase = $par3EntityLivingBase.$next3;
            }
        } else {
            var$8 = $var4.$value;
            var$6 = $par3EntityLivingBase.$elementData.data;
            $par3EntityLivingBase = var$6[var$8 & (var$6.length - 1 | 0)];
            while ($par3EntityLivingBase !== null) {
                if ($par3EntityLivingBase.$origKeyHash == var$8) {
                    var$9 = $par3EntityLivingBase.$key;
                    if ($var4 !== var$9 && !($var4 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par3EntityLivingBase = $par3EntityLivingBase.$next3;
            }
        }
        $var4 = $par3EntityLivingBase === null ? null : $par3EntityLivingBase.$value0;
        $par3EntityLivingBase = $var4.$watchedObject;
        if (!($par3EntityLivingBase instanceof jl_Byte && $par3EntityLivingBase.$value1 == var$7.$value1 ? 1 : 0)) {
            $var4.$watchedObject = var$7;
            $var4.$watched = 1;
            $par2EntityPlayer.$objectChanged = 1;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
    }
    return 1;
},
nms_ItemSaddle_hitEntity = ($this, $par1ItemStack, $par2EntityLivingBase, $par3EntityLivingBase) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    if ($par2EntityLivingBase instanceof nms_EntityPig) {
        $par2EntityLivingBase = $par2EntityLivingBase;
        $par3EntityLivingBase = $par2EntityLivingBase.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            $par3EntityLivingBase = $par3EntityLivingBase.$elementData.data[0];
            while ($par3EntityLivingBase !== null && $par3EntityLivingBase.$key !== null) {
                $par3EntityLivingBase = $par3EntityLivingBase.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $par3EntityLivingBase.$elementData.data;
            $par3EntityLivingBase = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($par3EntityLivingBase !== null) {
                if ($par3EntityLivingBase.$origKeyHash == var$5) {
                    var$7 = $par3EntityLivingBase.$key;
                    if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                        break;
                }
                $par3EntityLivingBase = $par3EntityLivingBase.$next3;
            }
        }
        $par3EntityLivingBase = $par3EntityLivingBase === null ? null : $par3EntityLivingBase.$value0;
        var$5 = !($par3EntityLivingBase.$watchedObject.$value1 & 1) ? 0 : 1;
        if (!var$5 && !nms_EntityAgeable_isChild($par2EntityLivingBase)) {
            $par2EntityLivingBase = $par2EntityLivingBase.$dataWatcher;
            var$7 = jl_Byte_byteCache.data[129];
            $par3EntityLivingBase = $par2EntityLivingBase.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[144];
            if (var$4 === null) {
                $par3EntityLivingBase = $par3EntityLivingBase.$elementData.data[0];
                while ($par3EntityLivingBase !== null && $par3EntityLivingBase.$key !== null) {
                    $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                }
            } else {
                var$8 = var$4.$value;
                var$6 = $par3EntityLivingBase.$elementData.data;
                $par3EntityLivingBase = var$6[var$8 & (var$6.length - 1 | 0)];
                while ($par3EntityLivingBase !== null) {
                    if ($par3EntityLivingBase.$origKeyHash == var$8) {
                        var$9 = $par3EntityLivingBase.$key;
                        if (var$4 !== var$9 && !jl_Integer_equals(var$4, var$9) ? 0 : 1)
                            break;
                    }
                    $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                }
            }
            var$4 = $par3EntityLivingBase === null ? null : $par3EntityLivingBase.$value0;
            $par3EntityLivingBase = var$4.$watchedObject;
            if (!($par3EntityLivingBase instanceof jl_Byte && $par3EntityLivingBase.$value1 == var$7.$value1 ? 1 : 0)) {
                var$4.$watchedObject = var$7;
                var$4.$watched = 1;
                $par2EntityLivingBase.$objectChanged = 1;
            }
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        }
    }
    return 1;
},
nms_ItemRedstone = $rt_classWithoutFields(nms_Item),
nms_ItemRedstone__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabRedstone;
},
nms_ItemRedstone__init_ = var_0 => {
    let var_1 = new nms_ItemRedstone();
    nms_ItemRedstone__init_0(var_1, var_0);
    return var_1;
},
nms_ItemRedstone_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        nms_Block_$callClinit();
        if (var$11 == nms_Block_snow.$blockID) {
            if ($par2EntityPlayer.$capabilities.$allowEdit)
                $par7 = 1;
            else if ($par1ItemStack === null)
                $par7 = 0;
            else {
                nms_Item_$callClinit();
                $par7 = 1;
            }
            if (!$par7)
                return 0;
            $par7 = $par5 - 1 | 0;
            var$12 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        if (!$par7)
            $par5 = $par5 + (-1) | 0;
        if ($par7 == 1)
            $par5 = $par5 + 1 | 0;
        if ($par7 == 2)
            $par6 = $par6 + (-1) | 0;
        if ($par7 == 3)
            $par6 = $par6 + 1 | 0;
        if ($par7 == 4)
            $par4 = $par4 + (-1) | 0;
        if ($par7 == 5)
            $par4 = $par4 + 1 | 0;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par3World, $par4, $par7, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        $par2EntityPlayer = var$12[var$11];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par7, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par3World, $par2EntityPlayer, var$11)) {
            $ptr = 4;
            continue main;
        }
        if (!1)
            return 1;
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$13 = nms_Block_redstoneWire.$blockID;
        $par7 = 0;
        var$11 = 3;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par3World, $par4, $par7, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!($par7 == nms_Block_glowStone.$blockID ? 1 : 0))
            return 1;
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$13 = nms_Block_redstoneWire.$blockID;
        $par7 = 0;
        var$11 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par3World, $par4, $par5, $par6, var$13, $par7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 6:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!($par7 ? 0 : 1))
            return 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if (!$par7)
            return 0;
        $par7 = $par5 - 1 | 0;
        var$12 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, var$11, var$12, var$13, $ptr);
},
nms_ItemSnowball = $rt_classWithoutFields(nms_Item),
nms_ItemSnowball__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 16;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemSnowball__init_ = var_0 => {
    let var_1 = new nms_ItemSnowball();
    nms_ItemSnowball__init_0(var_1, var_0);
    return var_1;
},
nms_ItemSnowball_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$4 = $rt_s(1167);
        var$5 = 0.5;
        nms_Item_$callClinit();
        var$6 = nms_Item_itemRand;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        var$8 = 0.4000000059604645 / (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2World.$isRemote)
            return $par1ItemStack;
        var$4 = new nms_EntitySnowball;
        $ptr = 2;
    case 2:
        nms_EntityThrowable__init_(var$4, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par2World, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_ItemBoat = $rt_classWithoutFields(nms_Item),
nms_ItemBoat__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTransport;
},
nms_ItemBoat__init_ = var_0 => {
    let var_1 = new nms_ItemBoat();
    nms_ItemBoat__init_0(var_1, var_0);
    return var_1;
},
nms_ItemBoat_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var4, $var16, $var5, $var6, $var21, $var7, var$10, $var9, $var11, $var13, var$14, $var14, $var15, $var18, $var17, $var20, $var23, $var26, $var29, $var24, $var25, var$25, $var30, $var34, $var33, $var35, $var28, $var31, var$32, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$32 = $thread.pop();$var31 = $thread.pop();$var28 = $thread.pop();$var35 = $thread.pop();$var33 = $thread.pop();$var34 = $thread.pop();$var30 = $thread.pop();var$25 = $thread.pop();$var25 = $thread.pop();$var24 = $thread.pop();$var29 = $thread.pop();$var26 = $thread.pop();$var23 = $thread.pop();$var20 = $thread.pop();$var17 = $thread.pop();$var18 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();var$14 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var9
        = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var21 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var16 = $thread.pop();$var4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 1.0;
        $var16 = $par3EntityPlayer.$prevRotationPitch;
        $var5 = $var16 + ($par3EntityPlayer.$rotationPitch - $var16) * $var4;
        $var16 = $par3EntityPlayer.$prevRotationYaw;
        $var6 = $var16 + ($par3EntityPlayer.$rotationYaw - $var16) * $var4;
        $var21 = $par3EntityPlayer.$prevPosX;
        $var7 = $par3EntityPlayer.$posX - $var21;
        var$10 = 1.0;
        $var7 = $var21 + $var7 * var$10;
        $var21 = $par3EntityPlayer.$prevPosY;
        $var9 = $var21 + ($par3EntityPlayer.$posY - $var21) * var$10 + 1.62 - $par3EntityPlayer.$yOffset;
        $var21 = $par3EntityPlayer.$prevPosZ;
        $var11 = $var21 + ($par3EntityPlayer.$posZ - $var21) * var$10;
        $var13 = nms_Vec3Pool_getVecFromPool($par2World.$vecPool, $var7, $var9, $var11);
        $var16 =  -$var6 * 0.01745329238474369 - 3.1415927410125732;
        var$14 = nms_MathHelper_SIN_TABLE.data;
        $var16 = $var16 * 10430.3779296875;
        $var14 = var$14[($var16 + 16384.0 | 0) & 65535];
        $var15 = var$14[($var16 | 0) & 65535];
        $var18 =  -$var5 * 0.01745329238474369 * 10430.3779296875;
        $var16 =  -var$14[($var18 + 16384.0 | 0) & 65535];
        $var17 = var$14[($var18 | 0) & 65535];
        $var18 = $var15 * $var16;
        $var20 = $var14 * $var16;
        $var21 = 5.0;
        $var7 = $var18 * $var21;
        $var9 = $var17 * $var21;
        $var11 = $var20 * $var21;
        $var23 = nms_Vec3Pool_getVecFromPool($var13.$myVec3LocalPool, $var13.$xCoord + $var7, $var13.$yCoord + $var9, $var13.$zCoord + $var11);
        $var26 = 1;
        $var29 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_rayTraceBlocks_do_do($par2World, $var13, $var23, $var26, $var29);
        if ($rt_suspending()) {
            break main;
        }
        $var24 = $tmp;
        if ($var24 === null)
            return $par1ItemStack;
        $var25 = nms_EntityLivingBase_getLook($par3EntityPlayer, $var4);
        $var26 = 0;
        $var25 = nms_AxisAlignedBB_addCoord($par3EntityPlayer.$boundingBox0, $var25.$xCoord * $var21, $var25.$yCoord * $var21, $var25.$zCoord * $var21);
        $var21 = $var25.$minX0 - var$10;
        $var7 = $var25.$minY0 - var$10;
        $var9 = $var25.$minZ0 - var$10;
        $var11 = $var25.$maxX0 + var$10;
        var$25 = $var25.$maxY + var$10;
        var$10 = $var25.$maxZ0 + var$10;
        $var25 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var29 = $var25.$nextPoolIndex;
        $var30 = $var25.$listAABB;
        $var34 = $var30.$size0;
        $var33 = $rt_compare($var29, $var34);
        if ($var33 >= 0) {
            $var35 = new nms_AxisAlignedBB;
            $var35.$minX0 = $var21;
            $var35.$minY0 = $var7;
            $var35.$minZ0 = $var9;
            $var35.$maxX0 = $var11;
            $var35.$maxY = var$25;
            $var35.$maxZ0 = var$10;
            ju_ArrayList_ensureCapacity($var30, $var34 + 1 | 0);
            var$14 = $var30.$array.data;
            $var33 = $var30.$size0;
            $var30.$size0 = $var33 + 1 | 0;
            var$14[$var33] = $var35;
            $var30.$modCount = $var30.$modCount + 1 | 0;
        } else if ($var29 >= 0 && $var33 < 0) {
            $var35 = $var30.$array.data[$var29];
            $var35.$minX0 = $var21;
            $var35.$minY0 = $var7;
            $var35.$minZ0 = $var9;
            $var35.$maxX0 = $var11;
            $var35.$maxY = var$25;
            $var35.$maxZ0 = var$10;
        } else {
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $var25.$nextPoolIndex = $var25.$nextPoolIndex + 1 | 0;
        $var25 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($par2World, $par3EntityPlayer, $var35, $var25);
        if ($rt_suspending()) {
            break main;
        }
        $var28 = $tmp;
        $var29 = 0;
        a: {
            while (true) {
                $var33 = $rt_compare($var29, $var28.$size0);
                if ($var33 >= 0) {
                    if ($var26)
                        return $par1ItemStack;
                    if ($var24.$typeOfHit !== nms_EnumMovingObjectType_TILE)
                        return $par1ItemStack;
                    $var26 = $var24.$blockX;
                    $var33 = $var24.$blockY;
                    $var34 = $var24.$blockZ;
                    $ptr = 3;
                    continue main;
                }
                if ($var29 < 0)
                    break a;
                if ($var33 >= 0)
                    break a;
                $var30 = $var28.$array.data[$var29];
                if ($var30.$canBeCollidedWith()) {
                    $var31 = $var30.$getCollisionBorderSize();
                    $var25 = $var30.$boundingBox0;
                    $var21 = $var31;
                    $var7 = $var25.$minX0 - $var21;
                    $var9 = $var25.$minY0 - $var21;
                    $var11 = $var25.$minZ0 - $var21;
                    var$25 = $var25.$maxX0 + $var21;
                    var$10 = $var25.$maxY + $var21;
                    $var21 = $var25.$maxZ0 + $var21;
                    $var35 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var33 = $var35.$nextPoolIndex;
                    $var25 = $var35.$listAABB;
                    var$32 = $var25.$size0;
                    $var34 = $rt_compare($var33, var$32);
                    if ($var34 >= 0) {
                        $var30 = new nms_AxisAlignedBB;
                        $var30.$minX0 = $var7;
                        $var30.$minY0 = $var9;
                        $var30.$minZ0 = $var11;
                        $var30.$maxX0 = var$25;
                        $var30.$maxY = var$10;
                        $var30.$maxZ0 = $var21;
                        ju_ArrayList_ensureCapacity($var25, var$32 + 1 | 0);
                        var$14 = $var25.$array.data;
                        $var34 = $var25.$size0;
                        $var25.$size0 = $var34 + 1 | 0;
                        var$14[$var34] = $var30;
                        $var25.$modCount = $var25.$modCount + 1 | 0;
                    } else {
                        if ($var33 < 0)
                            break;
                        if ($var34 >= 0)
                            break;
                        $var30 = $var25.$array.data[$var33];
                        $var30.$minX0 = $var7;
                        $var30.$minY0 = $var9;
                        $var30.$minZ0 = $var11;
                        $var30.$maxX0 = var$25;
                        $var30.$maxY = var$10;
                        $var30.$maxZ0 = $var21;
                    }
                    $var35.$nextPoolIndex = $var35.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_isVecInside($var30, $var13))
                        $var26 = 1;
                }
                $var29 = $var29 + 1 | 0;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 3:
        $tmp = nms_World_getBlockId($par2World, $var26, $var33, $var34);
        if ($rt_suspending()) {
            break main;
        }
        $var29 = $tmp;
        nms_Block_$callClinit();
        if ($var29 == nms_Block_snow.$blockID)
            $var33 = $var33 + (-1) | 0;
        $var35 = new nms_EntityBoat;
        $var21 = $var26 + 0.5;
        $var7 = $var33 + 1.0;
        $var9 = $var34 + 0.5;
        nms_Entity__init_($var35, $par2World);
        $var35.$field_70279_a = 1;
        $var35.$speedMultiplier = 0.07;
        $var35.$preventEntitySpawning = 1;
        $var18 = 1.5;
        $var16 = 0.6000000238418579;
        $ptr = 4;
    case 4:
        nms_Entity_setSize($var35, $var18, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $var35.$height0 / 2.0;
        $var35.$yOffset = $var16;
        nms_Entity_setPosition($var35, $var21, $var7 + $var16, $var9);
        $var35.$motionX = 0.0;
        $var35.$motionY = 0.0;
        $var35.$motionZ = 0.0;
        $var35.$prevPosX = $var21;
        $var35.$prevPosY = $var7;
        $var35.$prevPosZ = $var9;
        $var21 = $par3EntityPlayer.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var29 = $var21 | 0;
        if ($var21 < $var29)
            $var29 = $var29 - 1 | 0;
        $var35.$rotationYaw = (($var29 & 3) - 1 | 0) * 90 | 0;
        $var13 = $var35.$boundingBox0;
        $var11 = $var13.$minX0 + 0.1;
        var$25 = $var13.$minY0 + 0.1;
        var$10 = $var13.$minZ0 + 0.1;
        $var21 = $var13.$maxX0 + (-0.1);
        $var7 = $var13.$maxY + (-0.1);
        $var9 = $var13.$maxZ0 + (-0.1);
        $var24 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var26 = $var24.$nextPoolIndex;
        $var13 = $var24.$listAABB;
        $var33 = $var13.$size0;
        $var29 = $rt_compare($var26, $var33);
        if ($var29 >= 0) {
            $var25 = new nms_AxisAlignedBB;
            $var25.$minX0 = $var11;
            $var25.$minY0 = var$25;
            $var25.$minZ0 = var$10;
            $var25.$maxX0 = $var21;
            $var25.$maxY = $var7;
            $var25.$maxZ0 = $var9;
            ju_ArrayList_ensureCapacity($var13, $var33 + 1 | 0);
            var$14 = $var13.$array.data;
            $var29 = $var13.$size0;
            $var13.$size0 = $var29 + 1 | 0;
            var$14[$var29] = $var25;
            $var13.$modCount = $var13.$modCount + 1 | 0;
        } else if ($var26 >= 0 && $var29 < 0) {
            $var25 = $var13.$array.data[$var26];
            $var25.$minX0 = $var11;
            $var25.$minY0 = var$25;
            $var25.$minZ0 = var$10;
            $var25.$maxX0 = $var21;
            $var25.$maxY = $var7;
            $var25.$maxZ0 = $var9;
        } else {
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $var24.$nextPoolIndex = $var24.$nextPoolIndex + 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getCollidingBoundingBoxes($par2World, $var35, $var25);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!($var13.$size0 ? 0 : 1))
            return $par1ItemStack;
        if ($par2World.$isRemote) {
            if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
                $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
            return $par1ItemStack;
        }
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($par2World, $var35);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var4, $var16, $var5, $var6, $var21, $var7, var$10, $var9, $var11, $var13, var$14, $var14, $var15, $var18, $var17, $var20, $var23, $var26, $var29, $var24, $var25, var$25, $var30, $var34, $var33, $var35, $var28, $var31, var$32, $ptr);
},
nms_ItemBucketMilk = $rt_classWithoutFields(nms_Item),
nms_ItemBucketMilk__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemBucketMilk__init_0 = var_0 => {
    let var_1 = new nms_ItemBucketMilk();
    nms_ItemBucketMilk__init_(var_1, var_0);
    return var_1;
},
nms_ItemBucketMilk_onEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        if (!$par2World.$isRemote) {
            $par2World = $par3EntityPlayer.$activePotionsMap;
            if ($par2World.$cachedKeySet === null) {
                var$4 = new ju_HashMap$1;
                var$4.$this$0 = $par2World;
                $par2World.$cachedKeySet = var$4;
            }
            $par2World = $par2World.$cachedKeySet.$iterator();
            while ($par2World.$hasNext()) {
                var$5 = $par2World.$next();
                var$4 = $par3EntityPlayer.$activePotionsMap;
                if (var$5 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$6 = var$5.$value;
                    var$7 = var$4.$elementData.data;
                    var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$6) {
                            var$8 = var$4.$key;
                            if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                var$4 = var$4 === null ? null : var$4.$value0;
                if (!$par3EntityPlayer.$worldObj.$isRemote) {
                    $par2World.$remove();
                    $ptr = 1;
                    continue main;
                }
            }
        }
        if ($par1ItemStack.$stackSize <= 0) {
            $par1ItemStack = new nms_ItemStack;
            nms_Item_$callClinit();
            $par2World = nms_Item_bucketEmpty;
            nms_ItemStack_$callClinit();
            $par1ItemStack.$itemID = $par2World.$itemID0;
            $par1ItemStack.$stackSize = 1;
            $par1ItemStack.$itemDamage = 0;
        }
        return $par1ItemStack;
    case 1:
        nms_EntityPlayerMP_onFinishedPotionEffect($par3EntityPlayer, var$4);
        if ($rt_suspending()) {
            break main;
        }
        while ($par2World.$hasNext()) {
            var$5 = $par2World.$next();
            var$4 = $par3EntityPlayer.$activePotionsMap;
            if (var$5 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                var$6 = var$5.$value;
                var$7 = var$4.$elementData.data;
                var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$6) {
                        var$8 = var$4.$key;
                        if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$4 = var$4 === null ? null : var$4.$value0;
            if ($par3EntityPlayer.$worldObj.$isRemote)
                continue;
            else {
                $par2World.$remove();
                continue main;
            }
        }
        if ($par1ItemStack.$stackSize <= 0) {
            $par1ItemStack = new nms_ItemStack;
            nms_Item_$callClinit();
            $par2World = nms_Item_bucketEmpty;
            nms_ItemStack_$callClinit();
            $par1ItemStack.$itemID = $par2World.$itemID0;
            $par1ItemStack.$stackSize = 1;
            $par1ItemStack.$itemDamage = 0;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_ItemBucketMilk_getMaxItemUseDuration = ($this, $par1ItemStack) => {
    return 32;
},
nms_ItemBucketMilk_getItemUseAction = ($this, $par1ItemStack) => {
    return nms_EnumAction_drink;
},
nms_ItemBucketMilk_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1ItemStack !== $par3EntityPlayer.$itemInUse) {
            $par3EntityPlayer.$itemInUse = $par1ItemStack;
            $par3EntityPlayer.$itemInUseCount = 32;
            if (!$par3EntityPlayer.$worldObj.$isRemote)
                nms_Entity_setFlag($par3EntityPlayer, 4, 1);
        }
        if ($par1ItemStack !== null) {
            nms_Item_$callClinit();
            var$4 = nms_Item_itemsList.data;
            var$5 = $par1ItemStack.$itemID;
            if (var$4[var$5] !== null && var$4[var$5].$getItemUseAction($par1ItemStack) === nms_EnumAction_eat) {
                var$6 = $par3EntityPlayer.$worldObj.$theEntityTracker;
                $par2World = new nms_Packet18Animation;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par2World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$7 = $par3EntityPlayer.$entityId;
                $par2World.$entityId1 = var$7;
                $par2World.$animate = 5;
                $par3EntityPlayer = var$6.$trackedEntityIDs;
                var$5 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$4 = $par3EntityPlayer.$slots.data;
                $par3EntityPlayer = var$4[var$5 & (var$4.length - 1 | 0)];
                a: {
                    while ($par3EntityPlayer !== null) {
                        if ($par3EntityPlayer.$hashEntry == var$7) {
                            $par3EntityPlayer = $par3EntityPlayer.$valueEntry;
                            break a;
                        }
                        $par3EntityPlayer = $par3EntityPlayer.$nextEntry0;
                    }
                    $par3EntityPlayer = null;
                }
                $par3EntityPlayer = $par3EntityPlayer;
                if ($par3EntityPlayer !== null) {
                    var$6 = $par3EntityPlayer.$trackingPlayers.$backingMap;
                    if (var$6.$cachedKeySet === null) {
                        var$8 = new ju_HashMap$1;
                        var$8.$this$0 = var$6;
                        ju_AbstractCollection__init_(var$8);
                        var$6.$cachedKeySet = var$8;
                    }
                    var$9 = var$6.$cachedKeySet.$iterator();
                    var$10 = $par2World instanceof nms_Packet3Chat;
                    var$8 = $par2World;
                    while (var$9.$hasNext()) {
                        b: {
                            var$6 = (var$9.$next()).$playerNetServerHandler;
                            if (var$10) {
                                var$11 = var$6.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break b;
                                if (var$11 == 1 && !var$8.$isServer)
                                    break b;
                            }
                            try {
                                var$6 = var$6.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$12 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$12);
                                jl_System_errCache = var$12;
                            }
                            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                        }
                    }
                    $par3EntityPlayer = $par3EntityPlayer.$myEntity;
                    if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
                        c: {
                            $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                            if (var$10) {
                                var$10 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break c;
                                if (var$10 == 1 && !var$8.$isServer)
                                    break c;
                            }
                            try {
                                $par3EntityPlayer = $par3EntityPlayer.$netManager;
                                $ptr = 2;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par2World = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = $par3EntityPlayer;
                            }
                            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
                        }
                }
            }
        }
        return $par1ItemStack;
    case 1:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        e: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break e;
                var$6 = (var$9.$next()).$playerNetServerHandler;
                if (!var$10)
                    break;
                var$11 = var$6.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$8.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
            f: {
                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                if (var$10) {
                    var$10 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$10 == 2)
                        break f;
                    if (var$10 == 1 && !var$8.$isServer)
                        break f;
                }
                try {
                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par2World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $par3EntityPlayer;
                }
                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
            }
        return $par1ItemStack;
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par3EntityPlayer, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $par3EntityPlayer;
            }
            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_ItemBook = $rt_classWithoutFields(nms_Item),
nms_ItemBook__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
},
nms_ItemBook__init_ = var_0 => {
    let var_1 = new nms_ItemBook();
    nms_ItemBook__init_0(var_1, var_0);
    return var_1;
},
nms_ItemBook_isItemTool = ($this, $par1ItemStack) => {
    return $par1ItemStack.$stackSize != 1 ? 0 : 1;
},
nms_ItemBook_getItemEnchantability = $this => {
    return 1;
},
nms_ItemEgg = $rt_classWithoutFields(nms_Item),
nms_ItemEgg__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 16;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
},
nms_ItemEgg__init_0 = var_0 => {
    let var_1 = new nms_ItemEgg();
    nms_ItemEgg__init_(var_1, var_0);
    return var_1;
},
nms_ItemEgg_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$4 = $rt_s(1167);
        var$5 = 0.5;
        nms_Item_$callClinit();
        var$6 = nms_Item_itemRand;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        var$8 = 0.4000000059604645 / (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2World.$isRemote)
            return $par1ItemStack;
        var$4 = new nms_EntityEgg;
        $ptr = 2;
    case 2:
        nms_EntityThrowable__init_(var$4, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par2World, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_ItemFishingRod = $rt_classWithoutFields(nms_Item),
nms_ItemFishingRod__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxDamage = 64;
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTools;
},
nms_ItemFishingRod__init_0 = var_0 => {
    let var_1 = new nms_ItemFishingRod();
    nms_ItemFishingRod__init_(var_1, var_0);
    return var_1;
},
nms_ItemFishingRod_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par3EntityPlayer.$fishEntity;
        if (var$4 !== null) {
            $ptr = 2;
            continue main;
        }
        var$4 = $rt_s(1167);
        var$5 = 0.5;
        nms_Item_$callClinit();
        var$6 = nms_Item_itemRand;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        var$8 = 0.4000000059604645 / (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2World.$isRemote) {
            $ptr = 5;
            continue main;
        }
        var$4 = new nms_EntityFishHook;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_EntityFishHook_catchFish(var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $ptr = 3;
    case 3:
        nms_ItemStack_damageItem($par1ItemStack, $var4, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_EntityLivingBase_swingItem($par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    case 5:
        nms_EntityLivingBase_swingItem($par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    case 6:
        nms_EntityFishHook__init_(var$4, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
    case 7:
        nms_World_spawnEntityInWorld($par2World, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $var4, $ptr);
},
nms_ItemDye = $rt_classWithoutFields(nms_Item),
nms_ItemDye_dyeColorNames = null,
nms_ItemDye_dyeItemNames = null,
nms_ItemDye_dyeColors = null,
nms_ItemDye__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$hasSubtypes = 1;
    $this.$maxDamage = 0;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMaterials;
},
nms_ItemDye__init_ = var_0 => {
    let var_1 = new nms_ItemDye();
    nms_ItemDye__init_0(var_1, var_0);
    return var_1;
},
nms_ItemDye_getUnlocalizedName = ($this, $par1ItemStack) => {
    let $var2, $var2_0, var$4, $var2_1, var$6, var$7, var$8, var$9;
    $var2 = $par1ItemStack.$itemDamage;
    $var2_0 = 0;
    if ($var2 >= $var2_0)
        $var2_0 = $var2 <= 15 ? $var2 : 15;
    $par1ItemStack = $this.$unlocalizedName;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(399));
    $var2_1 = var$4.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$4, $var2_1, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$6 = var$4.$buffer;
    var$7 = var$6.data;
    var$8 = var$4.$length0;
    $var2 = var$7.length;
    if (var$8 >= 0 && var$8 <= ($var2 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        var$4 = nms_ItemDye_dyeColorNames.data[$var2_0];
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $par1ItemStack);
        $var2_1 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, $var2_1, $var2_1 + 1 | 0);
        var$9.$buffer.data[$var2_1] = 46;
        $var2_0 = var$9.$length0;
        if (var$4 === null)
            var$4 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, $var2_0, var$4);
        $par1ItemStack = new jl_String;
        var$6 = var$9.$buffer;
        var$7 = var$6.data;
        $var2_1 = var$9.$length0;
        var$8 = var$7.length;
        if ($var2_1 >= 0 && $var2_1 <= (var$8 - 0 | 0)) {
            $par1ItemStack.$nativeString = $rt_charArrayToString(var$6.data, 0, $var2_1);
            return $par1ItemStack;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_ItemDye_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var13, $var11, $var12, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var13 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var13 = 1;
        else if ($par1ItemStack === null)
            $var13 = 0;
        else {
            nms_Item_$callClinit();
            $var13 = 1;
        }
        if (!$var13)
            return 0;
        $var11 = $par1ItemStack.$itemDamage;
        if ($var11 == 15) {
            $ptr = 1;
            continue main;
        }
        if ($var11 != 3)
            return 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_ItemDye_func_96604_a($par1ItemStack, $par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 0;
        if ($par3World.$isRemote)
            return 1;
        $par7 = 2005;
        $var13 = 0;
        $par1ItemStack = null;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        nms_Block_$callClinit();
        if ($var11 == nms_Block_wood.$blockID && ($var12 & 3) == 3) {
            if (!$par7)
                return 0;
            if ($par7 == 1)
                return 0;
            if ($par7 == 2)
                $par6 = $par6 + (-1) | 0;
            if ($par7 == 3)
                $par6 = $par6 + 1 | 0;
            if ($par7 == 4)
                $par4 = $par4 + (-1) | 0;
            if ($par7 == 5)
                $par4 = $par4 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        return 0;
    case 4:
        nms_World_playAuxSFXAtEntity($par3World, $par1ItemStack, $par7, $par4, $par5, $par6, $var13);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 5:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!($var13 ? 0 : 1))
            return 1;
        var$14 = nms_Block_blocksList.data[nms_Block_cocoaPlant.$blockID];
        $var13 = 0;
        $ptr = 6;
    case 6:
        $tmp = var$14.$onBlockPlaced($par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $par7 = nms_Block_cocoaPlant.$blockID;
        $var11 = 2;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var13, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par2EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var13, $var11, $var12, var$14, $ptr);
};
let nms_ItemDye_func_96604_a = ($par0ItemStack, $par1World, $par2, $par3, $par4) => {
    let $var5, var$7, var$8, var$9, $var6, $var8, var$12, $var6_0, $var7, $var10, var$16, var$17, var$18, $var8_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8_0 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var6_0 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$par0ItemStack = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_sapling;
        if ($var5 == var$7.$blockID) {
            if (!$par1World.$isRemote) {
                var$8 = $par1World.$rand0;
                var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$8.$seed = var$9;
                if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < 0.45) {
                    var$7 = var$7;
                    $ptr = 2;
                    continue main;
                }
                $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
            }
            return 1;
        }
        if ($var5 != nms_Block_mushroomBrown.$blockID && $var5 != nms_Block_mushroomRed.$blockID) {
            if ($var5 != nms_Block_melonStem.$blockID && $var5 != nms_Block_pumpkinStem.$blockID) {
                if ($var5 > 0 && nms_Block_blocksList.data[$var5] instanceof nms_BlockCrops) {
                    $ptr = 9;
                    continue main;
                }
                if ($var5 == nms_Block_cocoaPlant.$blockID) {
                    $ptr = 8;
                    continue main;
                }
                if ($var5 != nms_Block_grass.$blockID)
                    return 0;
                if (!$par1World.$isRemote) {
                    $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
                    $var6 = 0;
                    $var8 = $par3 + 1 | 0;
                    var$12 = 17;
                    $var6_0 = 9;
                    $var7 = 2;
                    if ($var6 < 128) {
                        $var10 = 0;
                        var$16 = $par2;
                        var$17 = $var8;
                        var$18 = $par4;
                        if ($var10 >= ($var6 / 16 | 0)) {
                            $ptr = 13;
                            continue main;
                        }
                        nms_Item_$callClinit();
                        $par0ItemStack = nms_Item_itemRand;
                        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0ItemStack.$seed = var$9;
                        $par3 = Long_lo(Long_shru(var$9, var$12));
                        while (true) {
                            $var8_0 = $par3 % 3 | 0;
                            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                                break;
                            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par0ItemStack.$seed = var$9;
                            $par3 = Long_lo(Long_shru(var$9, var$12));
                        }
                        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
                        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0ItemStack.$seed = var$9;
                        $par3 = Long_lo(Long_shru(var$9, var$12));
                        while (true) {
                            $var8_0 = $par3 % 3 | 0;
                            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                                break;
                            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par0ItemStack.$seed = var$9;
                            $par3 = Long_lo(Long_shru(var$9, var$12));
                        }
                        $var5 = $var8_0 - 1 | 0;
                        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0ItemStack.$seed = var$9;
                        $par3 = Long_lo(Long_shru(var$9, var$12));
                        while (true) {
                            $var8_0 = $par3 % 3 | 0;
                            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                                break;
                            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par0ItemStack.$seed = var$9;
                            $par3 = Long_lo(Long_shru(var$9, var$12));
                        }
                        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
                        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0ItemStack.$seed = var$9;
                        $var8_0 = Long_lo(Long_shru(var$9, var$12));
                        while (true) {
                            $var5 = $var8_0 % 3 | 0;
                            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                                break;
                            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par0ItemStack.$seed = var$9;
                            $var8_0 = Long_lo(Long_shru(var$9, var$12));
                        }
                        var$18 = var$18 + ($var5 - 1 | 0) | 0;
                        $par3 = var$17 - 1 | 0;
                        $ptr = 22;
                        continue main;
                    }
                }
                return 1;
            }
            $ptr = 4;
            continue main;
        }
        if (!$par1World.$isRemote) {
            var$7 = $par1World.$rand0;
            var$9 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$9;
            if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < 0.4) {
                var$8 = nms_Block_blocksList.data[$var5];
                $ptr = 3;
                continue main;
            }
            $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        }
        return 1;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $tmp;
        if ($var8_0 & 8) {
            $ptr = 5;
            continue main;
        }
        $var8_0 = $var8_0 | 8;
        $var5 = 4;
        $ptr = 6;
        continue main;
    case 3:
        nms_BlockMushroom_fertilizeMushroom(var$8, $par1World, $par2, $par3, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        return 1;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $tmp;
        if ($var8_0 == 7)
            return 0;
        if ($par1World.$isRemote)
            return 1;
        $ptr = 7;
        continue main;
    case 5:
        nms_BlockSapling_growTree(var$7, $par1World, $par2, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        return 1;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var8_0, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        return 1;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $tmp;
        var$7 = $par1World.$rand0;
        var$9 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$9;
        $var5 = $var8_0 + (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31)) + 2 | 0) | 0;
        if ($var5 > 7)
            $var5 = 7;
        $var8_0 = 2;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        $var7 = $var6_0 & 3;
        $var8_0 = ($var6_0 & 12) >> 2;
        if ($var8_0 >= 2)
            return 0;
        if ($par1World.$isRemote)
            return 1;
        $var8_0 = ($var8_0 + 1 | 0) << 2 | $var7;
        $var5 = 2;
        $ptr = 11;
        continue main;
    case 9:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $tmp;
        if ($var8_0 == 7)
            return 0;
        if ($par1World.$isRemote)
            return 1;
        var$7 = nms_Block_blocksList.data[$var5];
        $ptr = 12;
        continue main;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, $var8_0);
        if ($rt_suspending()) {
            break main;
        }
        $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        return 1;
    case 11:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var8_0, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        return 1;
    case 12:
        nms_BlockCrops_fertilize(var$7, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par0ItemStack.$stackSize = $par0ItemStack.$stackSize - 1 | 0;
        return 1;
    case 13:
        $tmp = nms_World_getBlockId($par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3) {
            nms_Item_$callClinit();
            $par0ItemStack = nms_Item_itemRand;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
            while (true) {
                $var8_0 = $par3 % 10 | 0;
                if ((($par3 - $var8_0 | 0) + $var6_0 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0ItemStack.$seed = var$9;
                $par3 = Long_lo(Long_shru(var$9, var$12));
            }
            if ($var8_0) {
                $ptr = 14;
                continue main;
            }
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
            while (true) {
                $var8_0 = $par3 % 3 | 0;
                if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0ItemStack.$seed = var$9;
                $par3 = Long_lo(Long_shru(var$9, var$12));
            }
            if (!$var8_0) {
                $par0ItemStack = nms_Block_plantRed;
                $ptr = 17;
                continue main;
            }
            $par0ItemStack = nms_Block_plantYellow;
            $ptr = 18;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 14:
        $tmp = nms_World_getFullBlockLightValue($par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3 < 8) {
            $ptr = 16;
            continue main;
        }
        $par3 = var$17 - 1 | 0;
        $ptr = 15;
    case 15:
        $tmp = nms_World_getBlockId($par1World, var$16, $par3, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $tmp;
        if (!($var8_0 != nms_Block_grass.$blockID && $var8_0 != nms_Block_dirt.$blockID && $var8_0 != nms_Block_tilledField.$blockID ? 0 : 1) ? 0 : 1) {
            $var8_0 = nms_Block_tallGrass.$blockID;
            $var5 = 1;
            $par3 = 3;
            $ptr = 19;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 16:
        $tmp = nms_World_canBlockSeeTheSky($par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3) {
            $par3 = var$17 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        if (0) {
            $var8_0 = nms_Block_tallGrass.$blockID;
            $var5 = 1;
            $par3 = 3;
            $ptr = 19;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 17:
        $tmp = $par0ItemStack.$canBlockStay($par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3) {
            $var5 = nms_Block_plantRed.$blockID;
            $par3 = 0;
            $var8_0 = 3;
            $ptr = 20;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 18:
        $tmp = $par0ItemStack.$canBlockStay($par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3) {
            $var5 = nms_Block_plantYellow.$blockID;
            $par3 = 0;
            $var8_0 = 3;
            $ptr = 21;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 19:
        nms_World_setBlock($par1World, var$16, var$17, var$18, $var8_0, $var5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 20:
        nms_World_setBlock($par1World, var$16, var$17, var$18, $var5, $par3, $var8_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    case 21:
        nms_World_setBlock($par1World, var$16, var$17, var$18, $var5, $par3, $var8_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
    case 22:
        $tmp = nms_World_getBlockId($par1World, var$16, $par3, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3 == nms_Block_grass.$blockID) {
            $ptr = 23;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 128)
            return 1;
        $var10 = 0;
        var$16 = $par2;
        var$17 = $var8;
        var$18 = $par4;
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        continue main;
    case 23:
        $tmp = nms_World_isBlockNormalCube($par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3)
            $var10 = $var10 + 1 | 0;
        else {
            $var6 = $var6 + 1 | 0;
            if ($var6 >= 128)
                return 1;
            $var10 = 0;
            var$16 = $par2;
            var$17 = $var8;
            var$18 = $par4;
        }
        if ($var10 >= ($var6 / 16 | 0)) {
            $ptr = 13;
            continue main;
        }
        nms_Item_$callClinit();
        $par0ItemStack = nms_Item_itemRand;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$16 = var$16 + ($var8_0 - 1 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        $var5 = $var8_0 - 1 | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var8_0 = $par3 % 3 | 0;
            if ((($par3 - $var8_0 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $par3 = Long_lo(Long_shru(var$9, var$12));
        }
        var$17 = var$17 + ($rt_imul($var5, $var8_0) / 2 | 0) | 0;
        var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0ItemStack.$seed = var$9;
        $var8_0 = Long_lo(Long_shru(var$9, var$12));
        while (true) {
            $var5 = $var8_0 % 3 | 0;
            if ((($var8_0 - $var5 | 0) + $var7 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par0ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0ItemStack.$seed = var$9;
            $var8_0 = Long_lo(Long_shru(var$9, var$12));
        }
        var$18 = var$18 + ($var5 - 1 | 0) | 0;
        $par3 = var$17 - 1 | 0;
        $ptr = 22;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0ItemStack, $par1World, $par2, $par3, $par4, $var5, var$7, var$8, var$9, $var6, $var8, var$12, $var6_0, $var7, $var10, var$16, var$17, var$18, $var8_0, $ptr);
},
nms_ItemDye_itemInteractionForEntity = ($this, $par1ItemStack, $par2EntityPlayer, $par3EntityLivingBase) => {
    let $var4, $var5, var$6, var$7, var$8, var$9, var$10, var$11;
    if (!($par3EntityLivingBase instanceof nms_EntitySheep))
        return 0;
    $var4 = $par3EntityLivingBase;
    $var5 = ($par1ItemStack.$itemDamage ^ (-1)) & 15;
    $par2EntityPlayer = $var4.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[144];
    if (var$6 === null) {
        $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
        while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
            $par2EntityPlayer = $par2EntityPlayer.$next3;
        }
    } else {
        var$7 = var$6.$value;
        var$8 = $par2EntityPlayer.$elementData.data;
        $par2EntityPlayer = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($par2EntityPlayer !== null) {
            if ($par2EntityPlayer.$origKeyHash == var$7) {
                $par3EntityLivingBase = $par2EntityPlayer.$key;
                if (var$6 !== $par3EntityLivingBase && !(var$6 === $par3EntityLivingBase ? 1 : $par3EntityLivingBase instanceof jl_Integer && $par3EntityLivingBase.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par2EntityPlayer = $par2EntityPlayer.$next3;
        }
    }
    $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
    if (!(!($par2EntityPlayer.$watchedObject.$value1 & 16) ? 0 : 1)) {
        $par2EntityPlayer = $var4.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
            while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                $par2EntityPlayer = $par2EntityPlayer.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = $par2EntityPlayer.$elementData.data;
            $par2EntityPlayer = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($par2EntityPlayer !== null) {
                if ($par2EntityPlayer.$origKeyHash == var$7) {
                    $par3EntityLivingBase = $par2EntityPlayer.$key;
                    if (var$6 !== $par3EntityLivingBase && !(var$6 === $par3EntityLivingBase ? 1 : $par3EntityLivingBase instanceof jl_Integer && $par3EntityLivingBase.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par2EntityPlayer = $par2EntityPlayer.$next3;
            }
        }
        if ((($par2EntityPlayer === null ? null : $par2EntityPlayer.$value0).$watchedObject.$value1 & 15) != $var5) {
            $par2EntityPlayer = $var4.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $par3EntityLivingBase = jl_Integer_integerCache.data[144];
            if ($par3EntityLivingBase === null) {
                $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
            } else {
                var$9 = $par3EntityLivingBase.$value;
                var$8 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$8[var$9 & (var$8.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == var$9) {
                        var$6 = $par2EntityPlayer.$key;
                        if ($par3EntityLivingBase !== var$6 && !($par3EntityLivingBase === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$9 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
            }
            var$10 = ($par2EntityPlayer === null ? null : $par2EntityPlayer.$value0).$watchedObject.$value1;
            $par2EntityPlayer = $var4.$dataWatcher;
            var$9 = (var$10 & 240 | $var5 & 15) << 24 >> 24;
            var$6 = jl_Byte_byteCache.data[var$9 + 128 | 0];
            $par3EntityLivingBase = $par2EntityPlayer.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null) {
                $par3EntityLivingBase = $par3EntityLivingBase.$elementData.data[0];
                while ($par3EntityLivingBase !== null && $par3EntityLivingBase.$key !== null) {
                    $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                }
            } else {
                var$10 = var$11.$value;
                var$8 = $par3EntityLivingBase.$elementData.data;
                $par3EntityLivingBase = var$8[var$10 & (var$8.length - 1 | 0)];
                while ($par3EntityLivingBase !== null) {
                    if ($par3EntityLivingBase.$origKeyHash == var$10) {
                        $var4 = $par3EntityLivingBase.$key;
                        if (var$11 !== $var4 && !(var$11 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                }
            }
            $var4 = $par3EntityLivingBase === null ? null : $par3EntityLivingBase.$value0;
            $par3EntityLivingBase = $var4.$watchedObject;
            if (!($par3EntityLivingBase instanceof jl_Byte && $par3EntityLivingBase.$value1 == var$6.$value1 ? 1 : 0)) {
                $var4.$watchedObject = var$6;
                $var4.$watched = 1;
                $par2EntityPlayer.$objectChanged = 1;
            }
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        }
    }
    return 1;
},
nms_ItemDye__clinit_ = () => {
    nms_ItemDye_dyeColorNames = $rt_wrapArray(jl_String, [$rt_s(1310), $rt_s(1311), $rt_s(1312), $rt_s(1313), $rt_s(1314), $rt_s(1315), $rt_s(1316), $rt_s(1317), $rt_s(1318), $rt_s(1319), $rt_s(1320), $rt_s(1321), $rt_s(1322), $rt_s(1323), $rt_s(1324), $rt_s(1325)]);
    nms_ItemDye_dyeItemNames = $rt_wrapArray(jl_String, [$rt_s(1310), $rt_s(1311), $rt_s(1312), $rt_s(1313), $rt_s(1314), $rt_s(1315), $rt_s(1316), $rt_s(1317), $rt_s(1318), $rt_s(1319), $rt_s(1320), $rt_s(1321), $rt_s(1326), $rt_s(1323), $rt_s(1324), $rt_s(1325)]);
    nms_ItemDye_dyeColors = $rt_createIntArrayFromData([1973019, 11743532, 3887386, 5320730, 2437522, 8073150, 2651799, 11250603, 4408131, 14188952, 4312372, 14602026, 6719955, 12801229, 15435844, 15790320]);
},
nms_ItemBed = $rt_classWithoutFields(nms_Item),
nms_ItemBed__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabDecorations;
},
nms_ItemBed__init_0 = var_0 => {
    let var_1 = new nms_ItemBed();
    nms_ItemBed__init_(var_1, var_0);
    return var_1;
},
nms_ItemBed_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let var$11, $var11, var$13, $var12, $var13, $var14, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();var$11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3World.$isRemote)
            return 1;
        if ($par7 != 1)
            return 0;
        var$11 = $par5 + 1 | 0;
        nms_Block_$callClinit();
        $var11 = nms_Block_bed;
        var$13 = $par2EntityPlayer.$rotationYaw * 4.0 / 360.0 + 0.5;
        $par7 = var$13 | 0;
        if (var$13 < $par7)
            $par7 = $par7 - 1 | 0;
        $var12 = $par7 & 3;
        $var13 = 0;
        $var14 = 0;
        if (!$var12)
            $var14 = 1;
        if ($var12 == 1)
            $var13 = (-1);
        if ($var12 == 2)
            $var14 = (-1);
        if ($var12 == 3)
            $var13 = 1;
        $par5 = $par2EntityPlayer.$capabilities.$allowEdit;
        if ($par5)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if ($par7) {
            $par7 = $par4 + $var13 | 0;
            $var13 = $par6 + $var14 | 0;
            if ($par5)
                $par5 = 1;
            else if ($par1ItemStack === null)
                $par5 = 0;
            else {
                nms_Item_$callClinit();
                $par5 = 1;
            }
            if ($par5) {
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, var$11, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1))
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par3World, $par7, var$11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1))
            return 0;
        $var14 = var$11 - 1 | 0;
        var$17 = nms_Block_blocksList.data;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par3World, $par4, $var14, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par2EntityPlayer = var$17[$par5];
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $var14, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par3World, $par2EntityPlayer, $par5))
            return 0;
        var$17 = nms_Block_blocksList.data;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par3World, $par7, $var14, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par2EntityPlayer = var$17[$par5];
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata($par3World, $par7, $var14, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par3World, $par2EntityPlayer, $par5))
            return 0;
        $var14 = $var11.$blockID;
        $par5 = 3;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par3World, $par4, var$11, $par6, $var14, $var12, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($par3World, $par4, var$11, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        $par5 = $var11.$blockID;
        if ($par4 != $par5) {
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
            return 1;
        }
        $par4 = $var12 + 8 | 0;
        $par6 = 3;
        $ptr = 9;
    case 9:
        nms_World_setBlock($par3World, $par7, var$11, $var13, $par5, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, var$11, $var11, var$13, $var12, $var13, $var14, var$17, $ptr);
},
nms_ItemMapBase = $rt_classWithoutFields(nms_Item),
nms_ItemMapBase_isMap = $this => {
    return 1;
},
nms_ItemMapBase_createMapDataPacket = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return null;
},
nms_ItemMap = $rt_classWithoutFields(nms_ItemMapBase),
nms_ItemMap__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$hasSubtypes = 1;
},
nms_ItemMap__init_ = var_0 => {
    let var_1 = new nms_ItemMap();
    nms_ItemMap__init_0(var_1, var_0);
    return var_1;
},
nms_ItemMap_getMapData = ($this, $par1ItemStack, $par2World) => {
    let var$3, $var4, var$5, var$6, var$7, var$8, var$9, $var5, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var5 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1ItemStack.$itemDamage;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(1327));
        jl_AbstractStringBuilder_insert0($var4, $var4.$length0, var$3, 10);
        var$5 = new jl_String;
        var$6 = $var4.$buffer;
        var$7 = var$6.data;
        var$8 = $var4.$length0;
        var$3 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$3 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            $var4 = new nms_ItemMap$getMapData$lambda$_2_0;
            var$9 = $par2World.$mapStorage;
            $ptr = 1;
            continue main;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 1:
        $tmp = nms_MapStorage_loadData(var$9, $var4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var4 = $var4;
        if ($var4 === null && !$par2World.$isRemote) {
            $var4 = $rt_s(575);
            var$9 = $par2World.$mapStorage;
            $ptr = 2;
            continue main;
        }
        return $var4;
    case 2:
        $tmp = nms_MapStorage_getUniqueDataId(var$9, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $par1ItemStack.$itemDamage = $var5;
        if ($var5 < 0)
            $par1ItemStack.$itemDamage = 0;
        var$3 = $par1ItemStack.$itemDamage;
        $par1ItemStack = new jl_StringBuilder;
        $par1ItemStack.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(1327));
        jl_AbstractStringBuilder_insert0($par1ItemStack, $par1ItemStack.$length0, var$3, 10);
        var$9 = new jl_String;
        var$6 = $par1ItemStack.$buffer;
        var$7 = var$6.data;
        var$8 = $par1ItemStack.$length0;
        var$3 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$3 - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            $var4 = new nms_MapData;
            $var4.$mapName = var$9;
            $var4.$colors = $rt_createByteArray(16384);
            $par1ItemStack = new ju_ArrayList;
            $par1ItemStack.$array = $rt_createArray(jl_Object, 10);
            $var4.$playersArrayList = $par1ItemStack;
            $var4.$playersHashMap = ju_HashMap__init_();
            $var4.$playersVisibleOnMap = ju_LinkedHashMap__init_();
            $var4.$scale0 = 3;
            var$11 = $par2World.$worldInfo.$getSpawnX() / 1024.0;
            $var4.$xCenter = (var$11 + jl_Math_sign0(var$11) * 0.5 | 0) * 1024 | 0;
            var$12 = $par2World.$worldInfo.$getSpawnZ() / 1024 | 0;
            $var4.$zCenter = (var$12 + jl_Math_sign0(var$12) * 0.5 | 0) * 1024 | 0;
            $var4.$dimension0 = $par2World.$provider.$dimensionId << 24 >> 24;
            $var4.$dirty = 1;
            nms_World_setItemData($par2World, var$9, $var4);
            return $var4;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, var$3, $var4, var$5, var$6, var$7, var$8, var$9, $var5, var$11, var$12, $ptr);
},
nms_ItemMap_updateMapData = ($this, $par1World, $par2Entity, $par3MapData) => {
    let $var25, $var4, $var5, $var6, $var7, $var8, var$10, $var27, $var26, var$13, $var9, $var10, $var11, $var24, $var12, $var13, var$20, var$21, var$22, $var14, $var15, $var16, $var18, $var19, $var20, $var38, $var21, $var22, $var23, $var28, $var29, var$35, $var31, $var32, $var36, $var43, $var33, $var34, $var35, $var36_0, $var41, var$45, $var39, $var40, $var42, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var42 = $thread.pop();$var40 = $thread.pop();$var39 = $thread.pop();var$45 = $thread.pop();$var41 = $thread.pop();$var36_0 = $thread.pop();$var35 = $thread.pop();$var34 = $thread.pop();$var33 = $thread.pop();$var43 = $thread.pop();$var36 = $thread.pop();$var32 = $thread.pop();$var31 = $thread.pop();var$35 = $thread.pop();$var29 = $thread.pop();$var28 = $thread.pop();$var23 = $thread.pop();$var22 = $thread.pop();$var21 = $thread.pop();$var38 = $thread.pop();$var20 = $thread.pop();$var19
        = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var24 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$13 = $thread.pop();$var26 = $thread.pop();$var27 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var25
        = $thread.pop();$par3MapData = $thread.pop();$par2Entity = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var25 = $par1World.$provider;
            if ($var25.$dimensionId == $par3MapData.$dimension0 && $par2Entity instanceof nms_EntityPlayer) {
                $var4 = 128;
                $var5 = 128;
                $var6 = 1 << $par3MapData.$scale0;
                $var7 = $par3MapData.$xCenter;
                $var8 = $par3MapData.$zCenter;
                var$10 = $par2Entity.$posX - $var7;
                $var27 = var$10 | 0;
                if (var$10 < $var27)
                    $var27 = $var27 - 1 | 0;
                $var26 = $var27 / $var6 | 0;
                var$13 = 64;
                $var9 = $var26 + var$13 | 0;
                var$10 = $par2Entity.$posZ - $var8;
                $var27 = var$10 | 0;
                if (var$10 < $var27)
                    $var27 = $var27 - 1 | 0;
                $var10 = ($var27 / $var6 | 0) + var$13 | 0;
                $var11 = 128 / $var6 | 0;
                if ($var25.$hasNoSky)
                    $var11 = $var11 / 2 | 0;
                $var25 = $par3MapData.$playersHashMap;
                $var27 = $par2Entity.$entityId;
                $var24 = $var25.$elementData.data;
                $var12 = $var24[$var27 & ($var24.length - 1 | 0)];
                while ($var12 !== null) {
                    if ($var12.$origKeyHash == $var27) {
                        $var25 = $var12.$key;
                        if ($par2Entity !== $var25 && !(!($var25 instanceof nms_Entity) ? 0 : $var25.$entityId != $var27 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    $var12 = $var12.$next3;
                }
                $var12 = $var12 === null ? null : $var12.$value0;
                if ($var12 === null) {
                    $var12 = nms_MapInfo__init_($par3MapData, $par2Entity);
                    ju_HashMap_putImpl($par3MapData.$playersHashMap, $par2Entity, $var12);
                    $par2Entity = $par3MapData.$playersArrayList;
                    ju_ArrayList_ensureCapacity($par2Entity, $par2Entity.$size0 + 1 | 0);
                    $var24 = $par2Entity.$array.data;
                    $var27 = $par2Entity.$size0;
                    $par2Entity.$size0 = $var27 + 1 | 0;
                    $var24[$var27] = $var12;
                    $par2Entity.$modCount = $par2Entity.$modCount + 1 | 0;
                }
                $var12.$field_82569_d = $var12.$field_82569_d + 1 | 0;
                $var13 = ($var9 - $var11 | 0) + 1 | 0;
                var$20 = $rt_imul($var6, $var6);
                var$21 = $var6 + 4 | 0;
                var$22 = var$20;
                while (true) {
                    if ($var13 >= ($var9 + $var11 | 0))
                        break a;
                    if (($var13 & 15) == ($var12.$field_82569_d & 15)) {
                        $var14 = 255;
                        $var15 = 0;
                        $var16 = 0.0;
                        $var18 = ($var10 - $var11 | 0) - 1 | 0;
                        while ($var18 < ($var10 + $var11 | 0)) {
                            if ($var13 >= 0 && $var18 >= (-1) && $var13 < $var4 && $var18 < $var5) {
                                $var19 = $var13 - $var9 | 0;
                                $var20 = $var18 - $var10 | 0;
                                $var38 = $rt_imul($var19, $var19) + $rt_imul($var20, $var20) | 0;
                                $var26 = $var11 - 2 | 0;
                                $var21 = $var38 <= $rt_imul($var26, $var26) ? 0 : 1;
                                $var22 = $rt_imul((($var7 / $var6 | 0) + $var13 | 0) - var$13 | 0, $var6);
                                $var23 = $rt_imul((($var8 / $var6 | 0) + $var18 | 0) - var$13 | 0, $var6);
                                $var24 = $rt_createIntArray(256);
                                $var27 = $var22 >> 4;
                                $var26 = $var23 >> 4;
                                $ptr = 1;
                                continue main;
                            }
                            $var18 = $var18 + 1 | 0;
                        }
                        if ($var14 <= $var15)
                            nms_MapData_setColumnDirty($par3MapData, $var13, $var14, $var15);
                    }
                    $var13 = $var13 + 1 | 0;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_World_getChunkFromChunkCoords($par1World, $var27, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $tmp;
        if (!$var25.$isEmpty()) {
            $var26 = $var22 & 15;
            $var27 = $var23 & 15;
            $var28 = 0;
            $var29 = 0.0;
            if (!$par1World.$provider.$hasNoSky) {
                var$35 = $var24.data;
                $var31 = 0;
                while ($var31 < $var6) {
                    $var32 = 0;
                    while ($var32 < $var6) {
                        b: {
                            $var36 = $var31 + $var26 | 0;
                            $var43 = $var32 + $var27 | 0;
                            $var33 = $var25.$getHeightValue($var36, $var43) + 1 | 0;
                            $var34 = 0;
                            if ($var33 > 1) {
                                c: {
                                    while (true) {
                                        $var35 = 1;
                                        $var34 = $var25.$getBlockID($var36, $var33 - 1 | 0, $var43);
                                        if (!$var34)
                                            $var35 = 0;
                                        else if ($var33 > 0 && $var34 > 0) {
                                            nms_Block_$callClinit();
                                            if (nms_Block_blocksList.data[$var34].$blockMaterial.$materialMapColor === nms_MapColor_airColor)
                                                $var35 = 0;
                                        }
                                        if (!$var35) {
                                            $var33 = $var33 + (-1) | 0;
                                            if ($var33 <= 0)
                                                break c;
                                            $var34 = $var25.$getBlockID($var36, $var33 - 1 | 0, $var43);
                                        }
                                        if ($var33 <= 0)
                                            break c;
                                        if ($var35)
                                            break;
                                    }
                                }
                                if ($var33 > 0 && $var34) {
                                    nms_Block_$callClinit();
                                    if (nms_Block_blocksList.data[$var34].$blockMaterial.$isLiquid()) {
                                        $var36_0 = $var33 - 1 | 0;
                                        while (true) {
                                            $var23 = $var36_0 + (-1) | 0;
                                            $var41 = $var25.$getBlockID($var36, $var36_0, $var43);
                                            $var28 = $var28 + 1 | 0;
                                            if ($var23 <= 0)
                                                break;
                                            if (!$var41)
                                                break b;
                                            if (!nms_Block_blocksList.data[$var41].$blockMaterial.$isLiquid())
                                                break b;
                                            $var36_0 = $var23;
                                        }
                                    }
                                }
                            }
                        }
                        $var29 = $var29 + $var33 / var$22;
                        var$35[$var34] = var$35[$var34] + 1 | 0;
                        $var32 = $var32 + 1 | 0;
                    }
                    $var31 = $var31 + 1 | 0;
                }
            } else {
                $var31 = $var22 + ($var23 * 231871 | 0) | 0;
                if (($rt_imul($rt_imul($var31, $var31), 31287121) + ($var31 * 11 | 0) | 0) >> 20 & 1) {
                    var$35 = $var24.data;
                    nms_Block_$callClinit();
                    $var26 = nms_Block_stone.$blockID;
                    var$35[$var26] = var$35[$var26] + 10 | 0;
                } else {
                    var$35 = $var24.data;
                    nms_Block_$callClinit();
                    $var26 = nms_Block_dirt.$blockID;
                    var$35[$var26] = var$35[$var26] + 10 | 0;
                }
                $var29 = 100.0;
            }
            $var24 = $var24.data;
            $var27 = $var28 / var$20 | 0;
            $var23 = 0;
            $var32 = 0;
            $var33 = 0;
            while ($var33 < 256) {
                if ($var24[$var33] > $var23) {
                    $var23 = $var24[$var33];
                    $var32 = $var33;
                }
                $var33 = $var33 + 1 | 0;
            }
            var$10 = ($var29 - $var16) * 4.0 / var$21;
            $var23 = ($var13 + $var18 | 0) & 1;
            var$45 = $var23;
            $var39 = var$10 + (var$45 - 0.5) * 0.4;
            $var40 = 1;
            if ($var39 > 0.6)
                $var40 = 2;
            if ($var39 < (-0.6))
                $var40 = 0;
            $var36 = 0;
            if ($var32 > 0) {
                nms_Block_$callClinit();
                $var42 = nms_Block_blocksList.data[$var32].$blockMaterial.$materialMapColor;
                if ($var42 === nms_MapColor_waterColor) {
                    var$10 = $var27 * 0.1 + var$45 * 0.2;
                    $var40 = 1;
                    if (var$10 < 0.5)
                        $var40 = 2;
                    if (var$10 > 0.9)
                        $var40 = 0;
                }
                $var36 = $var42.$colorIndex;
            }
            if ($var18 < 0)
                $var16 = $var29;
            else if ($var38 >= $rt_imul($var11, $var11))
                $var16 = $var29;
            else if ($var21 && !$var23)
                $var16 = $var29;
            else {
                $var24 = $par3MapData.$colors.data;
                $var26 = $var13 + $rt_imul($var18, $var4) | 0;
                $var43 = $var24[$var26];
                $var38 = (($var36 * 4 | 0) + $var40 | 0) << 24 >> 24;
                if ($var43 == $var38)
                    $var16 = $var29;
                else {
                    if ($var14 > $var18)
                        $var14 = $var18;
                    if ($var15 < $var18)
                        $var15 = $var18;
                    $var24[$var26] = $var38;
                    $var16 = $var29;
                }
            }
        }
        d: while (true) {
            $var18 = $var18 + 1 | 0;
            while ($var18 >= ($var10 + $var11 | 0)) {
                if ($var14 <= $var15)
                    nms_MapData_setColumnDirty($par3MapData, $var13, $var14, $var15);
                while (true) {
                    $var13 = $var13 + 1 | 0;
                    if ($var13 >= ($var9 + $var11 | 0))
                        break d;
                    if (($var13 & 15) != ($var12.$field_82569_d & 15))
                        continue;
                    else
                        break;
                }
                $var14 = 255;
                $var15 = 0;
                $var16 = 0.0;
                $var18 = ($var10 - $var11 | 0) - 1 | 0;
            }
            if ($var13 < 0)
                continue;
            if ($var18 < (-1))
                continue;
            if ($var13 >= $var4)
                continue;
            if ($var18 < $var5) {
                $var19 = $var13 - $var9 | 0;
                $var20 = $var18 - $var10 | 0;
                $var38 = $rt_imul($var19, $var19) + $rt_imul($var20, $var20) | 0;
                $var26 = $var11 - 2 | 0;
                $var21 = $var38 <= $rt_imul($var26, $var26) ? 0 : 1;
                $var22 = $rt_imul((($var7 / $var6 | 0) + $var13 | 0) - var$13 | 0, $var6);
                $var23 = $rt_imul((($var8 / $var6 | 0) + $var18 | 0) - var$13 | 0, $var6);
                $var24 = $rt_createIntArray(256);
                $var27 = $var22 >> 4;
                $var26 = $var23 >> 4;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Entity, $par3MapData, $var25, $var4, $var5, $var6, $var7, $var8, var$10, $var27, $var26, var$13, $var9, $var10, $var11, $var24, $var12, $var13, var$20, var$21, var$22, $var14, $var15, $var16, $var18, $var19, $var20, $var38, $var21, $var22, $var23, $var28, $var29, var$35, $var31, $var32, $var36, $var43, $var33, $var34, $var35, $var36_0, $var41, var$45, $var39, $var40, $var42, $ptr);
},
nms_ItemMap_onUpdate = ($this, $par1ItemStack, $par2World, $var7, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$var7 = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_ItemMap_getMapData($this, $par1ItemStack, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var7 instanceof nms_EntityPlayer)
            nms_MapData_updateVisiblePlayers($var6, $var7, $par1ItemStack);
        if (!$par5)
            return;
        $ptr = 2;
    case 2:
        nms_ItemMap_updateMapData($this, $par2World, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $var7, $par4, $par5, $var6, $ptr);
},
nms_ItemMap_createMapDataPacket = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, $var4, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_ItemMap_getMapData($this, $par1ItemStack, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        $par2World = $tmp;
        $par2World = $par2World.$playersHashMap;
        if ($par3EntityPlayer === null) {
            $par2World = $par2World.$elementData.data[0];
            while ($par2World !== null && $par2World.$key !== null) {
                $par2World = $par2World.$next3;
            }
        } else {
            var$4 = $par3EntityPlayer.$entityId;
            $var4 = $par2World.$elementData.data;
            $par2World = $var4[var$4 & ($var4.length - 1 | 0)];
            while ($par2World !== null) {
                if ($par2World.$origKeyHash == var$4) {
                    var$6 = $par2World.$key;
                    if ($par3EntityPlayer !== var$6 && !(!(var$6 instanceof nms_Entity) ? 0 : var$6.$entityId != var$4 ? 0 : 1) ? 0 : 1)
                        break;
                }
                $par2World = $par2World.$next3;
            }
        }
        $par2World = $par2World === null ? null : $par2World.$value0;
        $var4 = $par2World !== null ? nms_MapInfo_getPlayersOnMap($par2World, $par1ItemStack) : null;
        if ($var4 === null)
            $par2World = null;
        else {
            $par2World = new nms_Packet131MapData;
            nms_Item_$callClinit();
            var$7 = nms_Item_map.$itemID0 << 16 >> 16;
            var$8 = $par1ItemStack.$itemDamage << 16 >> 16;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par2World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par2World.$isChunkDataPacket = 1;
            $par2World.$itemID2 = var$7;
            $par2World.$uniqueID = var$8;
            $par2World.$itemData = $var4;
        }
        return $par2World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, $var4, var$6, var$7, var$8, $ptr);
},
nms_ItemMap_onCreated = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var5, $var4, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par1ItemStack.$stackTagCompound;
        if ($var5 === null ? 0 : 1) {
            a: {
                $var4 = $var5.$tagMap;
                if (!$rt_s(1328).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(1328).$nativeString.length)
                            break a;
                        $rt_s(1328).$hashCode1 = (31 * $rt_s(1328).$hashCode1 | 0) + $rt_s(1328).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1328).$hashCode1;
            var$8 = $var4.$elementData.data;
            $var4 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$7) {
                    b: {
                        var$9 = $var4.$key;
                        if ($rt_s(1328) !== var$9) {
                            if ($rt_s(1328) === var$9)
                                var$10 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$10 = 0;
                            else {
                                var$9 = var$9;
                                var$10 = $rt_s(1328).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$10) {
                                var$10 = 0;
                                break b;
                            }
                        }
                        var$10 = 1;
                    }
                    if (var$10)
                        break;
                }
                $var4 = $var4.$next3;
            }
            if (!($var4 === null ? 0 : 1))
                var$7 = 0;
            else {
                $var4 = $var5.$tagMap;
                if ($rt_s(1328) === null) {
                    var$9 = $var4.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    c: {
                        if (!$rt_s(1328).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(1328).$nativeString.length)
                                    break c;
                                $rt_s(1328).$hashCode1 = (31 * $rt_s(1328).$hashCode1 | 0) + $rt_s(1328).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(1328).$hashCode1;
                    var$8 = $var4.$elementData.data;
                    var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$10) {
                            d: {
                                $var4 = var$9.$key;
                                if ($rt_s(1328) !== $var4) {
                                    if ($rt_s(1328) === $var4)
                                        var$7 = 1;
                                    else if (!($var4 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $var4 = $var4;
                                        var$7 = $rt_s(1328).$nativeString !== $var4.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break d;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                var$7 = (var$9 === null ? null : var$9.$value0).$data0;
            }
            if (!var$7 ? 0 : 1) {
                nms_Item_$callClinit();
                $par3EntityPlayer = nms_Item_map;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_ItemMap_getMapData($par3EntityPlayer, $par1ItemStack, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $par3EntityPlayer = $rt_s(575);
        $var5 = $par2World.$mapStorage;
        $ptr = 2;
    case 2:
        $tmp = nms_MapStorage_getUniqueDataId($var5, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $par1ItemStack.$itemDamage = var$7;
        if (var$7 < 0)
            $par1ItemStack.$itemDamage = 0;
        $var5 = new nms_MapData;
        var$6 = $par1ItemStack.$itemDamage;
        $par3EntityPlayer = new jl_StringBuilder;
        $par3EntityPlayer.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par3EntityPlayer, $par3EntityPlayer.$length0, $rt_s(1327));
        jl_AbstractStringBuilder_insert0($par3EntityPlayer, $par3EntityPlayer.$length0, var$6, 10);
        var$9 = new jl_String;
        var$8 = $par3EntityPlayer.$buffer;
        var$11 = var$8.data;
        var$10 = $par3EntityPlayer.$length0;
        var$6 = var$11.length;
        if (var$10 >= 0 && var$10 <= (var$6 - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
            $var5.$mapName = var$9;
            $var5.$colors = $rt_createByteArray(16384);
            $par3EntityPlayer = new ju_ArrayList;
            $par3EntityPlayer.$array = $rt_createArray(jl_Object, 10);
            $var5.$playersArrayList = $par3EntityPlayer;
            $par3EntityPlayer = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            $par3EntityPlayer.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$8 = var$11.data;
            $par3EntityPlayer.$elementData = var$11;
            $par3EntityPlayer.$loadFactor = 0.75;
            $par3EntityPlayer.$threshold = var$8.length * 0.75 | 0;
            $var5.$playersHashMap = $par3EntityPlayer;
            $var5.$playersVisibleOnMap = ju_LinkedHashMap__init_();
            var$7 = ($var4.$scale0 + 1 | 0) << 24 >> 24;
            $var5.$scale0 = var$7;
            if (var$7 > 4)
                $var5.$scale0 = 4;
            $var5.$xCenter = $var4.$xCenter;
            $var5.$zCenter = $var4.$zCenter;
            $var5.$dimension0 = $var4.$dimension0;
            $var5.$dirty = 1;
            var$6 = $par1ItemStack.$itemDamage;
            $par1ItemStack = new jl_StringBuilder;
            $par1ItemStack.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(1327));
            jl_AbstractStringBuilder_insert0($par1ItemStack, $par1ItemStack.$length0, var$6, 10);
            $par3EntityPlayer = new jl_String;
            var$8 = $par1ItemStack.$buffer;
            var$11 = var$8.data;
            var$10 = $par1ItemStack.$length0;
            var$6 = var$11.length;
            if (var$10 >= 0 && var$10 <= (var$6 - 0 | 0)) {
                $par3EntityPlayer.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
                nms_World_setItemData($par2World, $par3EntityPlayer, $var5);
                return;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var5, $var4, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ItemShears = $rt_classWithoutFields(nms_Item),
nms_ItemShears__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
    $this.$maxDamage = 238;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTools;
},
nms_ItemShears__init_0 = var_0 => {
    let var_1 = new nms_ItemShears();
    nms_ItemShears__init_(var_1, var_0);
    return var_1;
},
nms_ItemShears_onBlockDestroyed = ($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par7EntityLivingBase = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        if ($par3 != nms_Block_leaves.$blockID && $par3 != nms_Block_web.$blockID && $par3 != nms_Block_tallGrass.$blockID && $par3 != nms_Block_vine.$blockID && $par3 != nms_Block_tripWire.$blockID)
            return 0;
        $par3 = 1;
        $ptr = 1;
    case 1:
        nms_ItemStack_damageItem($par1ItemStack, $par3, $par7EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3, $par4, $par5, $par6, $par7EntityLivingBase, $ptr);
},
nms_ItemShears_canHarvestBlock = ($this, $par1Block) => {
    let var$2;
    var$2 = $par1Block.$blockID;
    nms_Block_$callClinit();
    return var$2 != nms_Block_web.$blockID && var$2 != nms_Block_redstoneWire.$blockID && var$2 != nms_Block_tripWire.$blockID ? 0 : 1;
},
nms_ItemShears_getStrVsBlock = ($this, $par1ItemStack, $par2Block) => {
    let var$3;
    var$3 = $par2Block.$blockID;
    nms_Block_$callClinit();
    return var$3 != nms_Block_web.$blockID && var$3 != nms_Block_leaves.$blockID ? (var$3 == nms_Block_cloth.$blockID ? 5.0 : 1.0) : 15.0;
},
nms_ItemEnderPearl = $rt_classWithoutFields(nms_Item),
nms_ItemEnderPearl__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 16;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemEnderPearl__init_0 = var_0 => {
    let var_1 = new nms_ItemEnderPearl();
    nms_ItemEnderPearl__init_(var_1, var_0);
    return var_1;
},
nms_ItemEnderPearl_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3EntityPlayer.$capabilities.$isCreativeMode)
            return $par1ItemStack;
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$4 = $rt_s(1167);
        var$5 = 0.5;
        nms_Item_$callClinit();
        var$6 = nms_Item_itemRand;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        var$8 = 0.4000000059604645 / (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2World.$isRemote)
            return $par1ItemStack;
        var$4 = new nms_EntityEnderPearl;
        $ptr = 2;
    case 2:
        nms_EntityThrowable__init_(var$4, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par2World, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $ptr);
};
function nms_ItemPotion() {
    nms_Item.call(this);
    this.$effectCache = null;
}
let nms_ItemPotion_field_77835_b = null,
nms_ItemPotion__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4;
    nms_Item__init_($this, $par1);
    var$2 = new ju_HashMap;
    $par1 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, $par1);
    var$4 = var$3.data;
    var$2.$elementData = var$3;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$4.length * 0.75 | 0;
    $this.$effectCache = var$2;
    $this.$maxStackSize = 1;
    $this.$hasSubtypes = 1;
    $this.$maxDamage = 0;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabBrewing;
},
nms_ItemPotion__init_ = var_0 => {
    let var_1 = new nms_ItemPotion();
    nms_ItemPotion__init_0(var_1, var_0);
    return var_1;
},
nms_ItemPotion_getEffects = ($this, $par1ItemStack) => {
    let $var6, $var4, var$4, var$5, $var5, $var2, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    $var6 = $par1ItemStack.$stackTagCompound;
    if ($var6 === null ? 0 : 1) {
        a: {
            $var6 = $var6.$tagMap;
            if (!$rt_s(1329).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(1329).$nativeString.length)
                        break a;
                    $rt_s(1329).$hashCode1 = (31 * $rt_s(1329).$hashCode1 | 0) + $rt_s(1329).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(1329).$hashCode1;
        var$5 = $var6.$elementData.data;
        $var6 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var6 !== null) {
            if ($var6.$origKeyHash == var$4) {
                b: {
                    $var5 = $var6.$key;
                    if ($rt_s(1329) !== $var5) {
                        if ($rt_s(1329) !== $var5) {
                            if ($var5 instanceof jl_String) {
                                $var5 = $var5;
                                $var4 = $rt_s(1329).$nativeString !== $var5.$nativeString ? 0 : 1;
                            } else
                                $var4 = 0;
                        } else
                            $var4 = 1;
                        if (!$var4) {
                            $var4 = 0;
                            break b;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            $var6 = $var6.$next3;
        }
        if ($var6 === null ? 0 : 1) {
            c: {
                $var6 = new ju_ArrayList;
                $var6.$array = $rt_createArray(jl_Object, 10);
                $var5 = $par1ItemStack.$stackTagCompound;
                $var2 = $var5.$tagMap;
                if (!$rt_s(1329).$hashCode1) {
                    $var4 = 0;
                    while (true) {
                        if ($var4 >= $rt_s(1329).$nativeString.length)
                            break c;
                        $rt_s(1329).$hashCode1 = (31 * $rt_s(1329).$hashCode1 | 0) + $rt_s(1329).$nativeString.charCodeAt($var4) | 0;
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            $var4 = $rt_s(1329).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var4) {
                    d: {
                        $var3 = $var2.$key;
                        if ($rt_s(1329) !== $var3) {
                            if ($rt_s(1329) === $var3)
                                var$9 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$9 = 0;
                            else {
                                $var3 = $var3;
                                var$9 = $rt_s(1329).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$9) {
                                var$9 = 0;
                                break d;
                            }
                        }
                        var$9 = 1;
                    }
                    if (var$9)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $var5.$tagMap;
                if ($rt_s(1329) !== null) {
                    e: {
                        if (!$rt_s(1329).$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= $rt_s(1329).$nativeString.length)
                                    break e;
                                $rt_s(1329).$hashCode1 = (31 * $rt_s(1329).$hashCode1 | 0) + $rt_s(1329).$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    $var4 = $rt_s(1329).$hashCode1;
                    var$5 = $var2.$elementData.data;
                    $var2 = var$5[$var4 & (var$5.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == $var4) {
                            f: {
                                $var5 = $var2.$key;
                                if ($rt_s(1329) !== $var5) {
                                    if ($rt_s(1329) !== $var5) {
                                        if ($var5 instanceof jl_String) {
                                            $var5 = $var5;
                                            var$9 = $rt_s(1329).$nativeString !== $var5.$nativeString ? 0 : 1;
                                        } else
                                            var$9 = 0;
                                    } else
                                        var$9 = 1;
                                    if (!var$9) {
                                        var$9 = 0;
                                        break f;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = $var2 === null ? null : $var2.$value0;
            } else {
                $var3 = new nms_NBTTagList;
                if ($rt_s(1329) !== null)
                    $var3.$name = $rt_s(1329);
                else
                    $var3.$name = $rt_s(3);
                $par1ItemStack = new ju_ArrayList;
                $par1ItemStack.$array = $rt_createArray(jl_Object, 10);
                $var3.$tagList = $par1ItemStack;
            }
            $var4 = 0;
            g: {
                while (true) {
                    $par1ItemStack = $var3.$tagList;
                    var$9 = $rt_compare($var4, $par1ItemStack.$size0);
                    if (var$9 >= 0)
                        break;
                    if ($var4 < 0)
                        break g;
                    if (var$9 >= 0)
                        break g;
                    h: {
                        $var5 = $par1ItemStack.$array.data[$var4];
                        $var2 = $var5.$tagMap;
                        if (!$rt_s(1330).$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $rt_s(1330).$nativeString.length)
                                    break h;
                                $rt_s(1330).$hashCode1 = (31 * $rt_s(1330).$hashCode1 | 0) + $rt_s(1330).$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(1330).$hashCode1;
                    var$5 = $var2.$elementData.data;
                    $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$10) {
                            i: {
                                var$11 = $var2.$key;
                                if ($rt_s(1330) !== var$11) {
                                    if ($rt_s(1330) !== var$11) {
                                        if (var$11 instanceof jl_String) {
                                            var$11 = var$11;
                                            var$9 = $rt_s(1330).$nativeString !== var$11.$nativeString ? 0 : 1;
                                        } else
                                            var$9 = 0;
                                    } else
                                        var$9 = 1;
                                    if (!var$9) {
                                        var$9 = 0;
                                        break i;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if ($var2 === null ? 0 : 1) {
                        $var2 = $var5.$tagMap;
                        if ($rt_s(1330) === null) {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            j: {
                                if (!$rt_s(1330).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(1330).$nativeString.length)
                                            break j;
                                        $rt_s(1330).$hashCode1 = (31 * $rt_s(1330).$hashCode1 | 0) + $rt_s(1330).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $rt_s(1330).$hashCode1;
                            var$5 = $var2.$elementData.data;
                            $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$10) {
                                    k: {
                                        var$11 = $var2.$key;
                                        if ($rt_s(1330) !== var$11) {
                                            if ($rt_s(1330) === var$11)
                                                var$9 = 1;
                                            else if (!(var$11 instanceof jl_String))
                                                var$9 = 0;
                                            else {
                                                var$11 = var$11;
                                                var$9 = $rt_s(1330).$nativeString !== var$11.$nativeString ? 0 : 1;
                                            }
                                            if (!var$9) {
                                                var$9 = 0;
                                                break k;
                                            }
                                        }
                                        var$9 = 1;
                                    }
                                    if (var$9)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        var$12 = ($var2 === null ? null : $var2.$value0).$data0;
                    } else
                        var$12 = 0;
                    l: {
                        $var2 = $var5.$tagMap;
                        if (!$rt_s(1331).$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $rt_s(1331).$nativeString.length)
                                    break l;
                                $rt_s(1331).$hashCode1 = (31 * $rt_s(1331).$hashCode1 | 0) + $rt_s(1331).$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(1331).$hashCode1;
                    var$5 = $var2.$elementData.data;
                    $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$10) {
                            m: {
                                var$11 = $var2.$key;
                                if ($rt_s(1331) !== var$11) {
                                    if ($rt_s(1331) === var$11)
                                        var$9 = 1;
                                    else if (!(var$11 instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        var$11 = var$11;
                                        var$9 = $rt_s(1331).$nativeString !== var$11.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break m;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$13 = 0;
                    else {
                        $var2 = $var5.$tagMap;
                        if ($rt_s(1331) !== null) {
                            n: {
                                if (!$rt_s(1331).$hashCode1) {
                                    var$10 = 0;
                                    while (true) {
                                        if (var$10 >= $rt_s(1331).$nativeString.length)
                                            break n;
                                        $rt_s(1331).$hashCode1 = (31 * $rt_s(1331).$hashCode1 | 0) + $rt_s(1331).$nativeString.charCodeAt(var$10) | 0;
                                        var$10 = var$10 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $rt_s(1331).$hashCode1;
                            var$5 = $var2.$elementData.data;
                            $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$10) {
                                    o: {
                                        var$11 = $var2.$key;
                                        if ($rt_s(1331) !== var$11) {
                                            if ($rt_s(1331) !== var$11) {
                                                if (!(var$11 instanceof jl_String))
                                                    var$9 = 0;
                                                else {
                                                    var$11 = var$11;
                                                    var$9 = $rt_s(1331).$nativeString !== var$11.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                var$9 = 1;
                                            if (!var$9) {
                                                var$9 = 0;
                                                break o;
                                            }
                                        }
                                        var$9 = 1;
                                    }
                                    if (var$9)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        } else {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        }
                        var$13 = ($var2 === null ? null : $var2.$value0).$data0;
                    }
                    p: {
                        $par1ItemStack = $var5.$tagMap;
                        if (!$rt_s(1332).$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $rt_s(1332).$nativeString.length)
                                    break p;
                                $rt_s(1332).$hashCode1 = (31 * $rt_s(1332).$hashCode1 | 0) + $rt_s(1332).$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(1332).$hashCode1;
                    var$5 = $par1ItemStack.$elementData.data;
                    var$14 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$14 !== null) {
                        if (var$14.$origKeyHash == var$4) {
                            q: {
                                $par1ItemStack = var$14.$key;
                                if ($rt_s(1332) !== $par1ItemStack) {
                                    if ($rt_s(1332) === $par1ItemStack)
                                        var$9 = 1;
                                    else if (!($par1ItemStack instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        $par1ItemStack = $par1ItemStack;
                                        var$9 = $rt_s(1332).$nativeString !== $par1ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break q;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        var$14 = var$14.$next3;
                    }
                    if (!(var$14 === null ? 0 : 1))
                        var$15 = 0;
                    else {
                        $par1ItemStack = $var5.$tagMap;
                        if ($rt_s(1332) === null) {
                            var$14 = $par1ItemStack.$elementData.data[0];
                            while (var$14 !== null && var$14.$key !== null) {
                                var$14 = var$14.$next3;
                            }
                        } else {
                            r: {
                                if (!$rt_s(1332).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(1332).$nativeString.length)
                                            break r;
                                        $rt_s(1332).$hashCode1 = (31 * $rt_s(1332).$hashCode1 | 0) + $rt_s(1332).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$4 = $rt_s(1332).$hashCode1;
                            var$5 = $par1ItemStack.$elementData.data;
                            var$14 = var$5[var$4 & (var$5.length - 1 | 0)];
                            while (var$14 !== null) {
                                if (var$14.$origKeyHash == var$4) {
                                    s: {
                                        $par1ItemStack = var$14.$key;
                                        if ($rt_s(1332) !== $par1ItemStack) {
                                            if ($rt_s(1332) === $par1ItemStack)
                                                var$9 = 1;
                                            else if (!($par1ItemStack instanceof jl_String))
                                                var$9 = 0;
                                            else {
                                                $par1ItemStack = $par1ItemStack;
                                                var$9 = $rt_s(1332).$nativeString !== $par1ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!var$9) {
                                                var$9 = 0;
                                                break s;
                                            }
                                        }
                                        var$9 = 1;
                                    }
                                    if (var$9)
                                        break;
                                }
                                var$14 = var$14.$next3;
                            }
                        }
                        var$15 = (var$14 === null ? null : var$14.$value0).$data;
                    }
                    t: {
                        $par1ItemStack = $var5.$tagMap;
                        if (!$rt_s(1333).$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $rt_s(1333).$nativeString.length)
                                    break t;
                                $rt_s(1333).$hashCode1 = (31 * $rt_s(1333).$hashCode1 | 0) + $rt_s(1333).$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(1333).$hashCode1;
                    var$5 = $par1ItemStack.$elementData.data;
                    var$14 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$14 !== null) {
                        if (var$14.$origKeyHash == var$4) {
                            u: {
                                $par1ItemStack = var$14.$key;
                                if ($rt_s(1333) !== $par1ItemStack) {
                                    if ($rt_s(1333) === $par1ItemStack)
                                        var$9 = 1;
                                    else if (!($par1ItemStack instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        $par1ItemStack = $par1ItemStack;
                                        var$9 = $rt_s(1333).$nativeString !== $par1ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break u;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        var$14 = var$14.$next3;
                    }
                    if (!(var$14 === null ? 0 : 1))
                        var$9 = 0;
                    else {
                        $par1ItemStack = $var5.$tagMap;
                        if ($rt_s(1333) === null) {
                            $par1ItemStack = $par1ItemStack.$elementData.data[0];
                            while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                                $par1ItemStack = $par1ItemStack.$next3;
                            }
                        } else {
                            v: {
                                if (!$rt_s(1333).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(1333).$nativeString.length)
                                            break v;
                                        $rt_s(1333).$hashCode1 = (31 * $rt_s(1333).$hashCode1 | 0) + $rt_s(1333).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $rt_s(1333).$hashCode1;
                            var$5 = $par1ItemStack.$elementData.data;
                            $par1ItemStack = var$5[var$10 & (var$5.length - 1 | 0)];
                            while ($par1ItemStack !== null) {
                                if ($par1ItemStack.$origKeyHash == var$10) {
                                    w: {
                                        $var2 = $par1ItemStack.$key;
                                        if ($rt_s(1333) !== $var2) {
                                            if ($rt_s(1333) === $var2)
                                                var$9 = 1;
                                            else if (!($var2 instanceof jl_String))
                                                var$9 = 0;
                                            else {
                                                $var2 = $var2;
                                                var$9 = $rt_s(1333).$nativeString !== $var2.$nativeString ? 0 : 1;
                                            }
                                            if (!var$9) {
                                                var$9 = 0;
                                                break w;
                                            }
                                        }
                                        var$9 = 1;
                                    }
                                    if (var$9)
                                        break;
                                }
                                $par1ItemStack = $par1ItemStack.$next3;
                            }
                        }
                        var$9 = ($par1ItemStack === null ? null : $par1ItemStack.$value0).$data0;
                    }
                    var$9 = !var$9 ? 0 : 1;
                    $par1ItemStack = new nms_PotionEffect;
                    $par1ItemStack.$potionID = var$12;
                    $par1ItemStack.$duration = var$15;
                    $par1ItemStack.$amplifier = var$13;
                    $par1ItemStack.$isAmbient = var$9;
                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                    var$5 = $var6.$array.data;
                    var$4 = $var6.$size0;
                    $var6.$size0 = var$4 + 1 | 0;
                    var$5[var$4] = $par1ItemStack;
                    $var6.$modCount = $var6.$modCount + 1 | 0;
                    $var4 = $var4 + 1 | 0;
                }
                return $var6;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            $rt_throw($par1ItemStack);
        }
    }
    $var2 = $this.$effectCache;
    var$9 = $par1ItemStack.$itemDamage;
    if (var$9 >= (-128) && var$9 <= 127) {
        jl_Integer_ensureIntegerCache();
        $var6 = jl_Integer_integerCache.data[var$9 + 128 | 0];
    } else {
        $var6 = new jl_Integer;
        $var6.$value = var$9;
    }
    if ($var6 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$4 = $var6.$value;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                $var5 = $var2.$key;
                if ($var6 !== $var5 && !($var6 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 === null) {
        $var2 = nms_PotionHelper_getPotionEffects($par1ItemStack.$itemDamage, 0);
        $var6 = $this.$effectCache;
        var$9 = $par1ItemStack.$itemDamage;
        if (var$9 >= (-128) && var$9 <= 127) {
            jl_Integer_ensureIntegerCache();
            $par1ItemStack = jl_Integer_integerCache.data[var$9 + 128 | 0];
        } else {
            $par1ItemStack = new jl_Integer;
            $par1ItemStack.$value = var$9;
        }
        ju_HashMap_putImpl($var6, $par1ItemStack, $var2);
    }
    return $var2;
},
nms_ItemPotion_onEaten = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var4, var$5, var$6, $var5$index, $var6, $var5$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5$index_0 = $thread.pop();$var6 = $thread.pop();$var5$index = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        if (!$par2World.$isRemote) {
            $var4 = nms_ItemPotion_getEffects($this, $par1ItemStack);
            if ($var4 !== null) {
                var$5 = $var4.$modCount;
                var$6 = $var4.$size();
                if (0 >= var$6 ? 0 : 1) {
                    if (var$5 < $var4.$modCount) {
                        $par1ItemStack = new ju_ConcurrentModificationException;
                        $par1ItemStack.$suppressionEnabled = 1;
                        $par1ItemStack.$writableStackTrace = 1;
                        $rt_throw($par1ItemStack);
                    }
                    $var5$index = 0 + 1 | 0;
                    $var6 = $var4.$get(0);
                    $par2World = new nms_PotionEffect;
                    $par2World.$potionID = $var6.$potionID;
                    $par2World.$duration = $var6.$duration;
                    $par2World.$amplifier = $var6.$amplifier;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode) {
            if ($par1ItemStack.$stackSize <= 0) {
                $par1ItemStack = new nms_ItemStack;
                nms_Item_$callClinit();
                $par2World = nms_Item_glassBottle;
                nms_ItemStack_$callClinit();
                $par1ItemStack.$itemID = $par2World.$itemID0;
                $par1ItemStack.$stackSize = 1;
                $par1ItemStack.$itemDamage = 0;
                return $par1ItemStack;
            }
            $var4 = $par3EntityPlayer.$inventory0;
            $par2World = new nms_ItemStack;
            nms_Item_$callClinit();
            $par3EntityPlayer = nms_Item_glassBottle;
            nms_ItemStack_$callClinit();
            $par2World.$itemID = $par3EntityPlayer.$itemID0;
            $par2World.$stackSize = 1;
            $par2World.$itemDamage = 0;
            nms_InventoryPlayer_addItemStackToInventory($var4, $par2World);
        }
        return $par1ItemStack;
    case 1:
        nms_EntityLivingBase_addPotionEffect($par3EntityPlayer, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        $var5$index_0 = $var5$index;
        if (!($var5$index_0 >= var$6 ? 0 : 1)) {
            if (!$par3EntityPlayer.$capabilities.$isCreativeMode) {
                if ($par1ItemStack.$stackSize <= 0) {
                    $par1ItemStack = new nms_ItemStack;
                    nms_Item_$callClinit();
                    $par2World = nms_Item_glassBottle;
                    nms_ItemStack_$callClinit();
                    $par1ItemStack.$itemID = $par2World.$itemID0;
                    $par1ItemStack.$stackSize = 1;
                    $par1ItemStack.$itemDamage = 0;
                    return $par1ItemStack;
                }
                $var4 = $par3EntityPlayer.$inventory0;
                $par2World = new nms_ItemStack;
                nms_Item_$callClinit();
                $par3EntityPlayer = nms_Item_glassBottle;
                nms_ItemStack_$callClinit();
                $par2World.$itemID = $par3EntityPlayer.$itemID0;
                $par2World.$stackSize = 1;
                $par2World.$itemDamage = 0;
                nms_InventoryPlayer_addItemStackToInventory($var4, $par2World);
            }
            return $par1ItemStack;
        }
        if (var$5 < $var4.$modCount) {
            $par1ItemStack = new ju_ConcurrentModificationException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            $rt_throw($par1ItemStack);
        }
        $var5$index = $var5$index_0 + 1 | 0;
        $var6 = $var4.$get($var5$index_0);
        $par2World = new nms_PotionEffect;
        $par2World.$potionID = $var6.$potionID;
        $par2World.$duration = $var6.$duration;
        $par2World.$amplifier = $var6.$amplifier;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var4, var$5, var$6, $var5$index, $var6, $var5$index_0, $ptr);
},
nms_ItemPotion_getMaxItemUseDuration = ($this, $par1ItemStack) => {
    return 32;
},
nms_ItemPotion_getItemUseAction = ($this, $par1ItemStack) => {
    return nms_EnumAction_drink;
},
nms_ItemPotion_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!(!($par1ItemStack.$itemDamage & 16384) ? 0 : 1)) {
            if ($par1ItemStack !== $par3EntityPlayer.$itemInUse) {
                $par3EntityPlayer.$itemInUse = $par1ItemStack;
                $par3EntityPlayer.$itemInUseCount = 32;
                if (!$par3EntityPlayer.$worldObj.$isRemote)
                    nms_Entity_setFlag($par3EntityPlayer, 4, 1);
            }
            if ($par1ItemStack !== null) {
                nms_Item_$callClinit();
                var$4 = nms_Item_itemsList.data;
                var$5 = $par1ItemStack.$itemID;
                if (var$4[var$5] !== null && var$4[var$5].$getItemUseAction($par1ItemStack) === nms_EnumAction_eat) {
                    var$6 = $par3EntityPlayer.$worldObj.$theEntityTracker;
                    $par2World = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par2World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$7 = $par3EntityPlayer.$entityId;
                    $par2World.$entityId1 = var$7;
                    $par2World.$animate = 5;
                    $par3EntityPlayer = var$6.$trackedEntityIDs;
                    var$5 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                    var$8 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$4 = $par3EntityPlayer.$slots.data;
                    $par3EntityPlayer = var$4[var$8 & (var$4.length - 1 | 0)];
                    a: {
                        while ($par3EntityPlayer !== null) {
                            if ($par3EntityPlayer.$hashEntry == var$7) {
                                $par3EntityPlayer = $par3EntityPlayer.$valueEntry;
                                break a;
                            }
                            $par3EntityPlayer = $par3EntityPlayer.$nextEntry0;
                        }
                        $par3EntityPlayer = null;
                    }
                    $par3EntityPlayer = $par3EntityPlayer;
                    if ($par3EntityPlayer !== null) {
                        var$9 = $par3EntityPlayer.$trackingPlayers.$backingMap;
                        if (var$9.$cachedKeySet === null) {
                            var$6 = new ju_HashMap$1;
                            var$6.$this$0 = var$9;
                            ju_AbstractCollection__init_(var$6);
                            var$9.$cachedKeySet = var$6;
                        }
                        var$10 = var$9.$cachedKeySet.$iterator();
                        var$7 = $par2World instanceof nms_Packet3Chat;
                        var$6 = $par2World;
                        while (var$10.$hasNext()) {
                            b: {
                                var$9 = (var$10.$next()).$playerNetServerHandler;
                                if (var$7) {
                                    var$11 = var$9.$playerEntity.$chatVisibility;
                                    if (var$11 == 2)
                                        break b;
                                    if (var$11 == 1 && !var$6.$isServer)
                                        break b;
                                }
                                try {
                                    var$9 = var$9.$netManager;
                                    $ptr = 4;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$9 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$12 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$12);
                                    jl_System_errCache = var$12;
                                }
                                jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                            }
                        }
                        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
                        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
                            c: {
                                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                                if (var$7) {
                                    var$7 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                                    if (var$7 == 2)
                                        break c;
                                    if (var$7 == 1 && !var$6.$isServer)
                                        break c;
                                }
                                try {
                                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                                    $ptr = 5;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $par2World = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = $par3EntityPlayer;
                                }
                                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
                            }
                    }
                }
            }
            return $par1ItemStack;
        }
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$6 = $rt_s(1167);
        var$13 = 0.5;
        nms_Item_$callClinit();
        var$9 = nms_Item_itemRand;
        var$14 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$14;
        var$15 = 0.4000000059604645 / (Long_lo(Long_shru(var$14, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$6, var$13, var$15);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2World.$isRemote)
            return $par1ItemStack;
        var$9 = new nms_EntityPotion;
        $ptr = 2;
    case 2:
        nms_EntityThrowable__init_(var$9, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$9.$potionDamage = $par1ItemStack;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par2World, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    case 4:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$9, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$12);
        }
        e: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break e;
                var$9 = (var$10.$next()).$playerNetServerHandler;
                if (!var$7)
                    break;
                var$11 = var$9.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$6.$isServer)
                    break;
            }
            try {
                var$9 = var$9.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$12);
        }
        $par3EntityPlayer = $par3EntityPlayer.$myEntity;
        if ($par3EntityPlayer instanceof nms_EntityPlayerMP)
            f: {
                $par3EntityPlayer = $par3EntityPlayer.$playerNetServerHandler;
                if (var$7) {
                    var$7 = $par3EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        break f;
                    if (var$7 == 1 && !var$6.$isServer)
                        break f;
                }
                try {
                    $par3EntityPlayer = $par3EntityPlayer.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par2World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par3EntityPlayer = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $par3EntityPlayer;
                }
                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
            }
        return $par1ItemStack;
    case 5:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par3EntityPlayer, $par2World);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par3EntityPlayer = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($par3EntityPlayer, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $par3EntityPlayer;
            }
            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_ItemPotion_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    return 0;
},
nms_ItemPotion_getItemDisplayName = ($this, $par1ItemStack) => {
    let var$2, $var2, $var3, var$5, var$6, var$7, var$8, var$9, $var4;
    var$2 = $par1ItemStack.$itemDamage;
    if (!var$2) {
        nms_StatCollector_$callClinit();
        return jl_String_trim(nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(1334)));
    }
    $var2 = $rt_s(3);
    if (!(var$2 & 16384) ? 0 : 1) {
        nms_StatCollector_$callClinit();
        $var2 = jl_String_trim(nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(1335)));
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        var$5 = $var3.$length0;
        if ($var2 === null)
            $var2 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var3, var$5, $var2);
        var$2 = $var3.$length0;
        jl_AbstractStringBuilder_insertSpace($var3, var$2, var$2 + 1 | 0);
        var$6 = $var3.$buffer;
        var$7 = var$6.data;
        var$7[var$2] = 32;
        $var2 = new jl_String;
        var$2 = $var3.$length0;
        var$8 = var$7.length;
        if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0))
            $var2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
        else {
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
    }
    nms_Item_$callClinit();
    $var3 = nms_ItemPotion_getEffects(nms_Item_potion, $par1ItemStack);
    if ($var3 !== null) {
        var$2 = $var3.$size0;
        if (!(var$2 ? 0 : 1)) {
            if (0 >= var$2) {
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                $par1ItemStack.$suppressionEnabled = 1;
                $par1ItemStack.$writableStackTrace = 1;
                $rt_throw($par1ItemStack);
            }
            $par1ItemStack = $var3.$array.data[0];
            nms_Potion_$callClinit();
            $var3 = nms_Potion_potionTypes.data[$par1ItemStack.$potionID].$name2;
            $par1ItemStack = new jl_StringBuilder;
            $par1ItemStack.$buffer = $rt_createCharArray(16);
            var$5 = $par1ItemStack.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par1ItemStack, var$5, $var3);
            jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(1336));
            $var3 = new jl_String;
            var$6 = $par1ItemStack.$buffer;
            var$7 = var$6.data;
            var$2 = $par1ItemStack.$length0;
            var$8 = var$7.length;
            if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
                $var3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
                nms_StatCollector_$callClinit();
                $par1ItemStack = jl_String_trim(nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var3));
                $var3 = new jl_StringBuilder;
                $var3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var3, $var3.$length0, $var2);
                var$5 = $var3.$length0;
                if ($par1ItemStack === null)
                    $par1ItemStack = $rt_s(1);
                jl_AbstractStringBuilder_insert($var3, var$5, $par1ItemStack);
                $par1ItemStack = new jl_String;
                var$6 = $var3.$buffer;
                var$7 = var$6.data;
                var$2 = $var3.$length0;
                var$8 = var$7.length;
                if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
                    $par1ItemStack.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
                    return $par1ItemStack;
                }
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                $par1ItemStack.$suppressionEnabled = 1;
                $par1ItemStack.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ItemStack);
                $rt_throw($par1ItemStack);
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
    }
    var$9 = $par1ItemStack.$itemDamage;
    nms_PotionHelper_$callClinit();
    var$5 = nms_PotionHelper_func_77908_a(var$9, 5, 4, 3, 2, 1);
    $var4 = nms_PotionHelper_potionPrefixes.data[var$5];
    nms_StatCollector_$callClinit();
    $par1ItemStack = jl_String_trim(nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4));
    $var2 = $this.$unlocalizedName;
    $var3 = new jl_StringBuilder;
    $var3.$buffer = $rt_createCharArray(16);
    jl_StringBuilder_insert($var3, $var3.$length0, jl_String_toString($rt_s(399)));
    jl_StringBuilder_insert($var3, $var3.$length0, $var2 === null ? $rt_s(1) : jl_String_toString($var2));
    $var4 = new jl_String;
    var$6 = $var3.$buffer;
    var$7 = var$6.data;
    var$2 = $var3.$length0;
    var$8 = var$7.length;
    if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
        $var4.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
        $var3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var4);
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        var$5 = $var2.$length0;
        if ($var3 === null)
            $var3 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var2, var$5, $var3);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(400));
        $var3 = new jl_String;
        var$6 = $var2.$buffer;
        var$7 = var$6.data;
        var$2 = $var2.$length0;
        var$8 = var$7.length;
        if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
            $var3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
            $var3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var3);
            $var2 = new jl_StringBuilder;
            $var2.$buffer = $rt_createCharArray(16);
            var$5 = $var2.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var2, var$5, $var3);
            $var3 = new jl_String;
            var$6 = $var2.$buffer;
            var$7 = var$6.data;
            var$2 = $var2.$length0;
            var$8 = var$7.length;
            if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
                $var3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
                $var3 = jl_String_trim($var3);
                $var2 = new jl_StringBuilder;
                $var2.$buffer = $rt_createCharArray(16);
                var$5 = $var2.$length0;
                if ($par1ItemStack === null)
                    $par1ItemStack = $rt_s(1);
                jl_AbstractStringBuilder_insert($var2, var$5, $par1ItemStack);
                var$2 = $var2.$length0;
                jl_AbstractStringBuilder_insertSpace($var2, var$2, var$2 + 1 | 0);
                $var2.$buffer.data[var$2] = 32;
                var$5 = $var2.$length0;
                if ($var3 === null)
                    $var3 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var2, var$5, $var3);
                $par1ItemStack = new jl_String;
                var$6 = $var2.$buffer;
                var$7 = var$6.data;
                var$2 = $var2.$length0;
                var$8 = var$7.length;
                if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
                    $par1ItemStack.$nativeString = $rt_charArrayToString(var$6.data, 0, var$2);
                    return $par1ItemStack;
                }
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                $par1ItemStack.$suppressionEnabled = 1;
                $par1ItemStack.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ItemStack);
                $rt_throw($par1ItemStack);
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_RuntimeException__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_ItemPotion__clinit_ = () => {
    nms_ItemPotion_field_77835_b = ju_LinkedHashMap__init_();
},
nms_ItemGlassBottle = $rt_classWithoutFields(nms_Item),
nms_ItemGlassBottle__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabBrewing;
},
nms_ItemGlassBottle__init_ = var_0 => {
    let var_1 = new nms_ItemGlassBottle();
    nms_ItemGlassBottle__init_0(var_1, var_0);
    return var_1;
},
nms_ItemGlassBottle_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var5, $var4, $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_Item_getMovingObjectPositionFromPlayer($this, $par2World, $par3EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return $par1ItemStack;
        if ($var4.$typeOfHit !== nms_EnumMovingObjectType_TILE)
            return $par1ItemStack;
        $var5 = $var4.$blockX;
        $var6 = $var4.$blockY;
        $var7 = $var4.$blockZ;
        if (!($par3EntityPlayer.$capabilities.$allowEdit ? 1 : $par1ItemStack === null ? 0 : 1))
            return $par1ItemStack;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par2World, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5) {
            nms_Material_$callClinit();
            $var4 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var4 = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        nms_Material_$callClinit();
        if ($var4 === nms_Material_water) {
            $var5 = $par1ItemStack.$stackSize - 1 | 0;
            $par1ItemStack.$stackSize = $var5;
            if ($var5 <= 0) {
                $par1ItemStack = new nms_ItemStack;
                $par2World = nms_Item_potion;
                nms_ItemStack_$callClinit();
                $par1ItemStack.$itemID = $par2World.$itemID0;
                $par1ItemStack.$stackSize = 1;
                $par1ItemStack.$itemDamage = 0;
                return $par1ItemStack;
            }
            $par2World = $par3EntityPlayer.$inventory0;
            $var4 = new nms_ItemStack;
            var$8 = nms_Item_potion;
            nms_ItemStack_$callClinit();
            $var4.$itemID = var$8.$itemID0;
            $var4.$stackSize = 1;
            $var4.$itemDamage = 0;
            if (!nms_InventoryPlayer_addItemStackToInventory($par2World, $var4)) {
                $par2World = new nms_ItemStack;
                $par2World.$itemID = nms_Item_potion.$itemID0;
                $par2World.$stackSize = 1;
                $par2World.$itemDamage = 0;
                $var5 = 0;
                $ptr = 3;
                continue main;
            }
        }
        return $par1ItemStack;
    case 3:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par3EntityPlayer, $par2World, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var5, $var4, $var6, $var7, var$8, $ptr);
},
nms_ItemEnderEye = $rt_classWithoutFields(nms_Item),
nms_ItemEnderEye__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemEnderEye__init_0 = var_0 => {
    let var_1 = new nms_ItemEnderEye();
    nms_ItemEnderEye__init_(var_1, var_0);
    return var_1;
},
nms_ItemEnderEye_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, $var29, $var13, $var26, $var15, $var27, $var17, $var28, $var19, $var21, var$22, var$23, $var29_0, $var30, $var23, var$27, $var31, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var31 = $thread.pop();var$27 = $thread.pop();$var23 = $thread.pop();$var30 = $thread.pop();$var29_0 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var28 = $thread.pop();$var17 = $thread.pop();$var27 = $thread.pop();$var15 = $thread.pop();$var26 = $thread.pop();$var13 = $thread.pop();$var29 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7
        = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if ($par7) {
            nms_Block_$callClinit();
            if ($var11 == nms_Block_endPortalFrame.$blockID && !(!($var12 & 4) ? 0 : 1)) {
                if ($par3World.$isRemote)
                    return 1;
                $par7 = $var12 + 4 | 0;
                $var29 = 2;
                $ptr = 3;
                continue main;
            }
        }
        return 0;
    case 3:
        nms_World_setBlockMetadataWithNotify($par3World, $par4, $par5, $par6, $par7, $var29);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = nms_Block_endPortalFrame.$blockID;
        $ptr = 4;
    case 4:
        nms_World_func_96440_m($par3World, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        $var13 = 0;
        a: while (true) {
            if ($var13 >= 16) {
                $var11 = $var12 & 3;
                $var26 = 0;
                $var15 = 0;
                $var27 = 0;
                $var17 = 1;
                $var28 = nms_Direction_rotateRight.data[$var11];
                $var19 = (-2);
                if ($var19 <= 2) {
                    $var29 = $par4 + $rt_imul(nms_Direction_offsetX.data[$var28], $var19) | 0;
                    $var21 = $par6 + $rt_imul(nms_Direction_offsetZ.data[$var28], $var19) | 0;
                    $ptr = 5;
                    continue main;
                }
                b: {
                    if ($var17 && $var15 == ($var26 + 2 | 0)) {
                        $var27 = $var26;
                        if ($var27 <= $var15) {
                            var$22 = nms_Direction_offsetX.data;
                            $var29 = $par4 + $rt_imul(var$22[$var28], $var27) | 0;
                            var$23 = nms_Direction_offsetZ.data;
                            $var21 = $par6 + $rt_imul(var$23[$var28], $var27) | 0;
                            $par7 = $var29 + (var$22[$var11] * 4 | 0) | 0;
                            $var29 = $var21 + (var$23[$var11] * 4 | 0) | 0;
                            $ptr = 7;
                            continue main;
                        }
                        $var29 = $var26 - 1 | 0;
                        c: {
                            while (true) {
                                if ($var29 > ($var15 + 1 | 0))
                                    break c;
                                $var29_0 = 1;
                                if ($var29_0 <= 3)
                                    break;
                                $var29 = $var29 + 4 | 0;
                            }
                            var$23 = nms_Direction_offsetX.data;
                            $var21 = $par4 + $rt_imul(var$23[$var28], $var29) | 0;
                            var$22 = nms_Direction_offsetZ.data;
                            $var30 = $par6 + $rt_imul(var$22[$var28], $var29) | 0;
                            $par7 = $var21 + $rt_imul(var$23[$var11], $var29_0) | 0;
                            $var21 = $var30 + $rt_imul(var$22[$var11], $var29_0) | 0;
                            $ptr = 9;
                            continue main;
                        }
                        if ($var17)
                            while (true) {
                                if ($var26 > $var15)
                                    break b;
                                $var29 = 1;
                                if ($var29 <= 3) {
                                    var$23 = nms_Direction_offsetX.data;
                                    $var21 = $par4 + $rt_imul(var$23[$var28], $var26) | 0;
                                    var$22 = nms_Direction_offsetZ.data;
                                    $var30 = $par6 + $rt_imul(var$22[$var28], $var26) | 0;
                                    $var21 = $var21 + $rt_imul(var$23[$var11], $var29) | 0;
                                    $var30 = $var30 + $rt_imul(var$22[$var11], $var29) | 0;
                                    $var23 = nms_Block_endPortal.$blockID;
                                    $var17 = 0;
                                    $par7 = 2;
                                    $ptr = 11;
                                    continue main;
                                }
                                $var26 = $var26 + 1 | 0;
                            }
                    }
                }
                return 1;
            }
            nms_Item_$callClinit();
            $par1ItemStack = nms_Item_itemRand;
            var$27 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$27;
            $par1ItemStack.$seed = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var29 = 0;
            while (true) {
                $par7 = $rt_compare($var29, $par3World.$worldAccesses.$size0);
                if ($par7 >= 0)
                    break;
                if ($var29 < 0)
                    break a;
                if ($par7 >= 0)
                    break a;
                $var29 = $var29 + 1 | 0;
            }
            $var13 = $var13 + 1 | 0;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 5:
        $tmp = nms_World_getBlockId($par3World, $var29, $par5, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var30 = $tmp;
        if ($var30 == nms_Block_endPortalFrame.$blockID) {
            $ptr = 6;
            continue main;
        }
        $var19 = $var19 + 1 | 0;
        if ($var19 <= 2) {
            $var29 = $par4 + $rt_imul(nms_Direction_offsetX.data[$var28], $var19) | 0;
            $var21 = $par6 + $rt_imul(nms_Direction_offsetZ.data[$var28], $var19) | 0;
            continue main;
        }
        d: {
            if ($var17 && $var15 == ($var26 + 2 | 0)) {
                $var27 = $var26;
                if ($var27 <= $var15) {
                    var$22 = nms_Direction_offsetX.data;
                    $var29 = $par4 + $rt_imul(var$22[$var28], $var27) | 0;
                    var$23 = nms_Direction_offsetZ.data;
                    $var21 = $par6 + $rt_imul(var$23[$var28], $var27) | 0;
                    $par7 = $var29 + (var$22[$var11] * 4 | 0) | 0;
                    $var29 = $var21 + (var$23[$var11] * 4 | 0) | 0;
                    $ptr = 7;
                    continue main;
                }
                $var29 = $var26 - 1 | 0;
                e: {
                    while (true) {
                        if ($var29 > ($var15 + 1 | 0))
                            break e;
                        $var29_0 = 1;
                        if ($var29_0 <= 3)
                            break;
                        $var29 = $var29 + 4 | 0;
                    }
                    var$23 = nms_Direction_offsetX.data;
                    $var21 = $par4 + $rt_imul(var$23[$var28], $var29) | 0;
                    var$22 = nms_Direction_offsetZ.data;
                    $var30 = $par6 + $rt_imul(var$22[$var28], $var29) | 0;
                    $par7 = $var21 + $rt_imul(var$23[$var11], $var29_0) | 0;
                    $var21 = $var30 + $rt_imul(var$22[$var11], $var29_0) | 0;
                    $ptr = 9;
                    continue main;
                }
                if ($var17)
                    while (true) {
                        if ($var26 > $var15)
                            break d;
                        $var29 = 1;
                        if ($var29 <= 3) {
                            var$23 = nms_Direction_offsetX.data;
                            $var21 = $par4 + $rt_imul(var$23[$var28], $var26) | 0;
                            var$22 = nms_Direction_offsetZ.data;
                            $var30 = $par6 + $rt_imul(var$22[$var28], $var26) | 0;
                            $var21 = $var21 + $rt_imul(var$23[$var11], $var29) | 0;
                            $var30 = $var30 + $rt_imul(var$22[$var11], $var29) | 0;
                            $var23 = nms_Block_endPortal.$blockID;
                            $var17 = 0;
                            $par7 = 2;
                            $ptr = 11;
                            continue main;
                        }
                        $var26 = $var26 + 1 | 0;
                    }
            }
        }
        return 1;
    case 6:
        $tmp = nms_World_getBlockMetadata($par3World, $var29, $par5, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = $tmp;
        if (!(!($var23 & 4) ? 0 : 1))
            $var17 = 0;
        else {
            if ($var27)
                $var15 = $var19;
            else {
                $var27 = 1;
                $var15 = $var19;
                $var26 = $var19;
            }
            $var19 = $var19 + 1 | 0;
            if ($var19 <= 2) {
                $var29 = $par4 + $rt_imul(nms_Direction_offsetX.data[$var28], $var19) | 0;
                $var21 = $par6 + $rt_imul(nms_Direction_offsetZ.data[$var28], $var19) | 0;
                $ptr = 5;
                continue main;
            }
        }
        c: {
            if ($var17 && $var15 == ($var26 + 2 | 0)) {
                $var27 = $var26;
                if ($var27 <= $var15) {
                    var$22 = nms_Direction_offsetX.data;
                    $var29 = $par4 + $rt_imul(var$22[$var28], $var27) | 0;
                    var$23 = nms_Direction_offsetZ.data;
                    $var21 = $par6 + $rt_imul(var$23[$var28], $var27) | 0;
                    $par7 = $var29 + (var$22[$var11] * 4 | 0) | 0;
                    $var29 = $var21 + (var$23[$var11] * 4 | 0) | 0;
                    $ptr = 7;
                    continue main;
                }
                $var29 = $var26 - 1 | 0;
                f: {
                    while (true) {
                        if ($var29 > ($var15 + 1 | 0))
                            break f;
                        $var29_0 = 1;
                        if ($var29_0 <= 3)
                            break;
                        $var29 = $var29 + 4 | 0;
                    }
                    var$23 = nms_Direction_offsetX.data;
                    $var21 = $par4 + $rt_imul(var$23[$var28], $var29) | 0;
                    var$22 = nms_Direction_offsetZ.data;
                    $var30 = $par6 + $rt_imul(var$22[$var28], $var29) | 0;
                    $par7 = $var21 + $rt_imul(var$23[$var11], $var29_0) | 0;
                    $var21 = $var30 + $rt_imul(var$22[$var11], $var29_0) | 0;
                    $ptr = 9;
                    continue main;
                }
                if ($var17)
                    while (true) {
                        if ($var26 > $var15)
                            break c;
                        $var29 = 1;
                        if ($var29 <= 3) {
                            var$23 = nms_Direction_offsetX.data;
                            $var21 = $par4 + $rt_imul(var$23[$var28], $var26) | 0;
                            var$22 = nms_Direction_offsetZ.data;
                            $var30 = $par6 + $rt_imul(var$22[$var28], $var26) | 0;
                            $var21 = $var21 + $rt_imul(var$23[$var11], $var29) | 0;
                            $var30 = $var30 + $rt_imul(var$22[$var11], $var29) | 0;
                            $var23 = nms_Block_endPortal.$blockID;
                            $var17 = 0;
                            $par7 = 2;
                            $ptr = 11;
                            continue main;
                        }
                        $var26 = $var26 + 1 | 0;
                    }
            }
        }
        return 1;
    case 7:
        $tmp = nms_World_getBlockId($par3World, $par7, $par5, $var29);
        if ($rt_suspending()) {
            break main;
        }
        $var30 = $tmp;
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockMetadata($par3World, $par7, $par5, $var29);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = $tmp;
        if ($var30 == nms_Block_endPortalFrame.$blockID && (!($var23 & 4) ? 0 : 1)) {
            $var27 = $var27 + 1 | 0;
            if ($var27 <= $var15) {
                var$22 = nms_Direction_offsetX.data;
                $var29 = $par4 + $rt_imul(var$22[$var28], $var27) | 0;
                var$23 = nms_Direction_offsetZ.data;
                $var21 = $par6 + $rt_imul(var$23[$var28], $var27) | 0;
                $par7 = $var29 + (var$22[$var11] * 4 | 0) | 0;
                $var29 = $var21 + (var$23[$var11] * 4 | 0) | 0;
                $ptr = 7;
                continue main;
            }
        } else
            $var17 = 0;
        $var29 = $var26 - 1 | 0;
        while (true) {
            if ($var29 > ($var15 + 1 | 0)) {
                f: {
                    if ($var17)
                        while (true) {
                            if ($var26 > $var15)
                                break f;
                            $var29 = 1;
                            if ($var29 <= 3) {
                                var$23 = nms_Direction_offsetX.data;
                                $var21 = $par4 + $rt_imul(var$23[$var28], $var26) | 0;
                                var$22 = nms_Direction_offsetZ.data;
                                $var30 = $par6 + $rt_imul(var$22[$var28], $var26) | 0;
                                $var21 = $var21 + $rt_imul(var$23[$var11], $var29) | 0;
                                $var30 = $var30 + $rt_imul(var$22[$var11], $var29) | 0;
                                $var23 = nms_Block_endPortal.$blockID;
                                $var17 = 0;
                                $par7 = 2;
                                $ptr = 11;
                                continue main;
                            }
                            $var26 = $var26 + 1 | 0;
                        }
                }
                return 1;
            }
            $var29_0 = 1;
            if ($var29_0 <= 3)
                break;
            $var29 = $var29 + 4 | 0;
        }
        var$23 = nms_Direction_offsetX.data;
        $var21 = $par4 + $rt_imul(var$23[$var28], $var29) | 0;
        var$22 = nms_Direction_offsetZ.data;
        $var30 = $par6 + $rt_imul(var$22[$var28], $var29) | 0;
        $par7 = $var21 + $rt_imul(var$23[$var11], $var29_0) | 0;
        $var21 = $var30 + $rt_imul(var$22[$var11], $var29_0) | 0;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($par3World, $par7, $par5, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = $tmp;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockMetadata($par3World, $par7, $par5, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var31 = $tmp;
        if ($var23 == nms_Block_endPortalFrame.$blockID && (!($var31 & 4) ? 0 : 1)) {
            $var29_0 = $var29_0 + 1 | 0;
            $par7 = 3;
            $par7 = $rt_compare($var29_0, $par7);
            if ($par7 <= 0) {
                var$23 = nms_Direction_offsetX;
                var$23 = var$23.data;
                $par7 = var$23[$var28];
                $par7 = $rt_imul($par7, $var29);
                $var21 = $par4 + $par7 | 0;
                var$22 = nms_Direction_offsetZ;
                var$22 = var$22.data;
                $par7 = var$22[$var28];
                $par7 = $rt_imul($par7, $var29);
                $var30 = $par6 + $par7 | 0;
                $par7 = var$23[$var11];
                $par7 = $rt_imul($par7, $var29_0);
                $par7 = $var21 + $par7 | 0;
                $var21 = var$22[$var11];
                $var21 = $rt_imul($var21, $var29_0);
                $var21 = $var30 + $var21 | 0;
                $ptr = 9;
                continue main;
            }
        } else
            $var17 = 0;
        while (true) {
            $var29 = $var29 + 4 | 0;
            if ($var29 > ($var15 + 1 | 0)) {
                f: {
                    if ($var17)
                        while (true) {
                            if ($var26 > $var15)
                                break f;
                            $var29 = 1;
                            if ($var29 <= 3) {
                                var$23 = nms_Direction_offsetX.data;
                                $var21 = $par4 + $rt_imul(var$23[$var28], $var26) | 0;
                                var$22 = nms_Direction_offsetZ.data;
                                $var30 = $par6 + $rt_imul(var$22[$var28], $var26) | 0;
                                $var21 = $var21 + $rt_imul(var$23[$var11], $var29) | 0;
                                $var30 = $var30 + $rt_imul(var$22[$var11], $var29) | 0;
                                $var23 = nms_Block_endPortal.$blockID;
                                $var17 = 0;
                                $par7 = 2;
                                $ptr = 11;
                                continue main;
                            }
                            $var26 = $var26 + 1 | 0;
                        }
                }
                return 1;
            }
            $var29_0 = 1;
            $par7 = 3;
            $par7 = $rt_compare($var29_0, $par7);
            if ($par7 <= 0)
                break;
        }
        var$23 = nms_Direction_offsetX;
        var$23 = var$23.data;
        $par7 = var$23[$var28];
        $par7 = $rt_imul($par7, $var29);
        $var21 = $par4 + $par7 | 0;
        var$22 = nms_Direction_offsetZ;
        var$22 = var$22.data;
        $par7 = var$22[$var28];
        $par7 = $rt_imul($par7, $var29);
        $var30 = $par6 + $par7 | 0;
        $par7 = var$23[$var11];
        $par7 = $rt_imul($par7, $var29_0);
        $par7 = $var21 + $par7 | 0;
        $var21 = var$22[$var11];
        $var21 = $rt_imul($var21, $var29_0);
        $var21 = $var30 + $var21 | 0;
        $ptr = 9;
        continue main;
    case 11:
        nms_World_setBlock($par3World, $var21, $par5, $var30, $var23, $var17, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $var29 = $var29 + 1 | 0;
        while (true) {
            if ($var29 <= 3) {
                var$23 = nms_Direction_offsetX.data;
                $var21 = $par4 + $rt_imul(var$23[$var28], $var26) | 0;
                var$22 = nms_Direction_offsetZ.data;
                $var30 = $par6 + $rt_imul(var$22[$var28], $var26) | 0;
                $var21 = $var21 + $rt_imul(var$23[$var11], $var29) | 0;
                $var30 = $var30 + $rt_imul(var$22[$var11], $var29) | 0;
                $var23 = nms_Block_endPortal.$blockID;
                $var17 = 0;
                $par7 = 2;
                continue main;
            }
            $var26 = $var26 + 1 | 0;
            if ($var26 > $var15)
                break;
            $var29 = 1;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, $var29, $var13, $var26, $var15, $var27, $var17, $var28, $var19, $var21, var$22, var$23, $var29_0, $var30, $var23, var$27, $var31, $ptr);
},
nms_ItemEnderEye_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var5, $var4, var$6, var$7, $var6, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_Item_getMovingObjectPositionFromPlayer($this, $par2World, $par3EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 !== null && $var4.$typeOfHit === nms_EnumMovingObjectType_TILE) {
            $var5 = $var4.$blockX;
            var$6 = $var4.$blockY;
            var$7 = $var4.$blockZ;
            $ptr = 3;
            continue main;
        }
        if ($par2World.$isRemote)
            return $par1ItemStack;
        $var6 = $rt_s(1337);
        var$7 = $par3EntityPlayer.$posX | 0;
        $var5 = $par3EntityPlayer.$posY | 0;
        var$6 = $par3EntityPlayer.$posZ | 0;
        $var4 = $par2World.$chunkProvider.$currentChunkProvider;
        $ptr = 2;
    case 2:
        $tmp = $var4.$findClosestStructure($par2World, $var6, var$7, $var5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return $par1ItemStack;
        $var6 = new nms_EntityEnderEye;
        var$9 = $par3EntityPlayer.$posX;
        var$10 = $par3EntityPlayer.$posY + 1.62 - $par3EntityPlayer.$yOffset;
        var$11 = $par3EntityPlayer.$posZ;
        nms_Entity__init_($var6, $par2World);
        $var6.$despawnTimer = 0;
        var$12 = 0.25;
        var$13 = 0.25;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par2World, $var5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        if ($var5 == nms_Block_endPortalFrame.$blockID)
            return $par1ItemStack;
        if ($par2World.$isRemote)
            return $par1ItemStack;
        $var6 = $rt_s(1337);
        var$7 = $par3EntityPlayer.$posX | 0;
        $var5 = $par3EntityPlayer.$posY | 0;
        var$6 = $par3EntityPlayer.$posZ | 0;
        $var4 = $par2World.$chunkProvider.$currentChunkProvider;
        $ptr = 2;
        continue main;
    case 4:
        nms_Entity_setSize($var6, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition($var6, var$9, var$10, var$11);
        $var6.$yOffset = 0.0;
        nms_EntityEnderEye_moveTowards($var6, $var4.$x, $var4.$y, $var4.$z);
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par2World, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $rt_s(1167);
        var$13 = 0.5;
        $var4 = nms_Item_itemRand;
        var$14 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$14;
        var$12 = 0.4000000059604645 / (Long_lo(Long_shru(var$14, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 6;
    case 6:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, $var6, var$13, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = null;
        $var5 = 1002;
        var$6 = $par3EntityPlayer.$posX | 0;
        var$7 = $par3EntityPlayer.$posY | 0;
        var$15 = $par3EntityPlayer.$posZ | 0;
        var$16 = 0;
        $ptr = 7;
    case 7:
        nms_World_playAuxSFXAtEntity($par2World, $var6, $var5, var$6, var$7, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var5, $var4, var$6, var$7, $var6, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_ItemMonsterPlacer = $rt_classWithoutFields(nms_Item),
nms_ItemMonsterPlacer__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$hasSubtypes = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemMonsterPlacer__init_ = var_0 => {
    let var_1 = new nms_ItemMonsterPlacer();
    nms_ItemMonsterPlacer__init_0(var_1, var_0);
    return var_1;
},
nms_ItemMonsterPlacer_getItemDisplayName = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4, $var3, var$6, var$7, var$8, var$9, var$10;
    $var2 = $this.$unlocalizedName;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(399));
    var$4 = var$3.$length0;
    if ($var2 === null)
        $var2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, $var2);
    $var3 = new jl_String;
    var$6 = var$3.$buffer;
    var$7 = var$6.data;
    var$8 = var$3.$length0;
    var$9 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
        $var3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $var3);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(400));
        var$3 = new jl_String;
        var$6 = $var2.$buffer;
        var$7 = var$6.data;
        var$8 = $var2.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            nms_StatCollector_$callClinit();
            var$3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$3);
            $var2 = new jl_StringBuilder;
            $var2.$buffer = $rt_createCharArray(16);
            var$4 = $var2.$length0;
            if (var$3 === null)
                var$3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var2, var$4, var$3);
            var$3 = new jl_String;
            var$6 = $var2.$buffer;
            var$7 = var$6.data;
            var$8 = $var2.$length0;
            var$9 = var$7.length;
            if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                $var2 = jl_String_trim(var$3);
                var$8 = $par1ItemStack.$itemDamage;
                nms_EntityList_$callClinit();
                $par1ItemStack = nms_EntityList_IDtoClassMapping;
                if (var$8 >= (-128) && var$8 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$3 = jl_Integer_integerCache.data[var$8 + 128 | 0];
                } else {
                    var$3 = new jl_Integer;
                    var$3.$value = var$8;
                }
                if (var$3 === null) {
                    $par1ItemStack = $par1ItemStack.$elementData.data[0];
                    while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                        $par1ItemStack = $par1ItemStack.$next3;
                    }
                } else {
                    var$9 = var$3.$value;
                    var$6 = $par1ItemStack.$elementData.data;
                    $par1ItemStack = var$6[var$9 & (var$6.length - 1 | 0)];
                    while ($par1ItemStack !== null) {
                        if ($par1ItemStack.$origKeyHash == var$9) {
                            $var3 = $par1ItemStack.$key;
                            if (var$3 !== $var3 && !(var$3 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$9 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $par1ItemStack = $par1ItemStack.$next3;
                    }
                }
                $var3 = $par1ItemStack === null ? null : $par1ItemStack.$value0;
                if ($var3 === null)
                    $var3 = null;
                else {
                    $par1ItemStack = nms_EntityList_classToStringMapping;
                    var$10 = $var3;
                    if (!var$10.$id$)
                        var$10.$id$ = $rt_nextId();
                    var$9 = $var3.$id$;
                    var$6 = $par1ItemStack.$elementData.data;
                    $par1ItemStack = var$6[var$9 & (var$6.length - 1 | 0)];
                    while ($par1ItemStack !== null) {
                        if ($par1ItemStack.$origKeyHash == var$9) {
                            var$3 = $par1ItemStack.$key;
                            if ($var3 !== var$3 && !($var3 !== var$3 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $par1ItemStack = $par1ItemStack.$next3;
                    }
                    $var3 = $par1ItemStack === null ? null : $par1ItemStack.$value0;
                }
                a: {
                    if ($var3 !== null) {
                        $par1ItemStack = new jl_StringBuilder;
                        $par1ItemStack.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(1267));
                        jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $var3);
                        jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(400));
                        var$3 = new jl_String;
                        var$6 = $par1ItemStack.$buffer;
                        var$7 = var$6.data;
                        var$8 = $par1ItemStack.$length0;
                        var$9 = var$7.length;
                        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                            var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                            var$3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$3);
                            $par1ItemStack = new jl_StringBuilder;
                            $par1ItemStack.$buffer = $rt_createCharArray(16);
                            var$4 = $par1ItemStack.$length0;
                            if ($var2 === null)
                                $var2 = $rt_s(1);
                            jl_AbstractStringBuilder_insert($par1ItemStack, var$4, $var2);
                            var$8 = $par1ItemStack.$length0;
                            jl_AbstractStringBuilder_insertSpace($par1ItemStack, var$8, var$8 + 1 | 0);
                            $par1ItemStack.$buffer.data[var$8] = 32;
                            var$4 = $par1ItemStack.$length0;
                            if (var$3 === null)
                                var$3 = $rt_s(1);
                            jl_AbstractStringBuilder_insert($par1ItemStack, var$4, var$3);
                            $var2 = new jl_String;
                            var$6 = $par1ItemStack.$buffer;
                            var$7 = var$6.data;
                            var$8 = $par1ItemStack.$length0;
                            var$9 = var$7.length;
                            if (var$8 < 0)
                                break a;
                            if (var$8 > (var$9 - 0 | 0))
                                break a;
                            $var2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                        } else {
                            $par1ItemStack = new jl_IndexOutOfBoundsException;
                            $par1ItemStack.$suppressionEnabled = 1;
                            $par1ItemStack.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par1ItemStack);
                            $rt_throw($par1ItemStack);
                        }
                    }
                    return $var2;
                }
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                $par1ItemStack.$suppressionEnabled = 1;
                $par1ItemStack.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ItemStack);
                $rt_throw($par1ItemStack);
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_ItemMonsterPlacer_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, var$13, var$14, var$15, $var14, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var14 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $par4 = $par4 + nms_Facing_offsetsXForSide.data[$par7] | 0;
        $par5 = $par5 + nms_Facing_offsetsYForSide.data[$par7] | 0;
        $par6 = $par6 + nms_Facing_offsetsZForSide.data[$par7] | 0;
        $var12 = 0.0;
        if ($par7 == 1) {
            nms_Block_$callClinit();
            var$13 = nms_Block_blocksList.data;
            if (var$13[$var11] !== null && var$13[$var11].$getRenderType() == 11)
                $var12 = 0.5;
        }
        $par7 = $par1ItemStack.$itemDamage;
        var$14 = $par4 + 0.5;
        $var12 = $par5 + $var12;
        var$15 = $par6 + 0.5;
        $ptr = 2;
    case 2:
        $tmp = nms_ItemMonsterPlacer_spawnCreature($par3World, $par7, var$14, $var12, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 !== null) {
            if ($var14 instanceof nms_EntityLivingBase) {
                var$17 = $par1ItemStack.$stackTagCompound;
                if (var$17 !== null) {
                    a: {
                        var$17 = var$17.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= $rt_s(918).$nativeString.length)
                                    break a;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    $par6 = $rt_s(918).$hashCode1;
                    var$13 = var$17.$elementData.data;
                    var$17 = var$13[$par6 & (var$13.length - 1 | 0)];
                    while (var$17 !== null) {
                        if (var$17.$origKeyHash == $par6) {
                            b: {
                                var$18 = var$17.$key;
                                if ($rt_s(918) !== var$18) {
                                    if ($rt_s(918) === var$18)
                                        $par4 = 1;
                                    else if (var$18 instanceof jl_String) {
                                        var$18 = var$18;
                                        $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                    } else
                                        $par4 = 0;
                                    if (!$par4) {
                                        $par4 = 0;
                                        break b;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$17 = var$17.$next3;
                    }
                    if (var$17 === null ? 0 : 1) {
                        c: {
                            $par3World = $par1ItemStack.$stackTagCompound;
                            var$18 = $par3World.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break c;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$13 = var$18.$elementData.data;
                        var$18 = var$13[$par6 & (var$13.length - 1 | 0)];
                        while (var$18 !== null) {
                            if (var$18.$origKeyHash == $par6) {
                                d: {
                                    var$19 = var$18.$key;
                                    if ($rt_s(918) !== var$19) {
                                        if ($rt_s(918) === var$19)
                                            $par4 = 1;
                                        else if (!(var$19 instanceof jl_String))
                                            $par4 = 0;
                                        else {
                                            var$19 = var$19;
                                            $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                        }
                                        if (!$par4) {
                                            $par4 = 0;
                                            break d;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            var$18 = var$18.$next3;
                        }
                        if (!(var$18 === null ? 0 : 1)) {
                            var$18 = new nms_NBTTagCompound;
                            if ($rt_s(918) !== null)
                                var$18.$name = $rt_s(918);
                            else
                                var$18.$name = $rt_s(3);
                            $par3World = new ju_HashMap;
                            $par4 = ju_HashMap_calculateCapacity(16);
                            $par3World.$elementCount = 0;
                            var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                            var$13 = var$20.data;
                            $par3World.$elementData = var$20;
                            $par3World.$loadFactor = 0.75;
                            $par3World.$threshold = var$13.length * 0.75 | 0;
                            var$18.$tagMap = $par3World;
                        } else {
                            $par3World = $par3World.$tagMap;
                            if ($rt_s(918) !== null) {
                                e: {
                                    if (!$rt_s(918).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(918).$nativeString.length)
                                                break e;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par6 = $rt_s(918).$hashCode1;
                                var$13 = $par3World.$elementData.data;
                                $par3World = var$13[$par6 & (var$13.length - 1 | 0)];
                                while ($par3World !== null) {
                                    if ($par3World.$origKeyHash == $par6) {
                                        f: {
                                            var$18 = $par3World.$key;
                                            if ($rt_s(918) !== var$18) {
                                                if ($rt_s(918) !== var$18) {
                                                    if (var$18 instanceof jl_String) {
                                                        var$18 = var$18;
                                                        $par4 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                                    } else
                                                        $par4 = 0;
                                                } else
                                                    $par4 = 1;
                                                if (!$par4) {
                                                    $par4 = 0;
                                                    break f;
                                                }
                                            }
                                            $par4 = 1;
                                        }
                                        if ($par4)
                                            break;
                                    }
                                    $par3World = $par3World.$next3;
                                }
                            } else {
                                $par3World = $par3World.$elementData.data[0];
                                while ($par3World !== null && $par3World.$key !== null) {
                                    $par3World = $par3World.$next3;
                                }
                            }
                            var$18 = $par3World === null ? null : $par3World.$value0;
                        }
                        g: {
                            var$17 = var$18.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                        break g;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(919).$hashCode1;
                        var$13 = var$17.$elementData.data;
                        var$17 = var$13[$par6 & (var$13.length - 1 | 0)];
                        while (var$17 !== null) {
                            if (var$17.$origKeyHash == $par6) {
                                h: {
                                    var$18 = var$17.$key;
                                    if ($rt_s(919) !== var$18) {
                                        if ($rt_s(919) !== var$18) {
                                            if (var$18 instanceof jl_String) {
                                                var$18 = var$18;
                                                $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                            } else
                                                $par4 = 0;
                                        } else
                                            $par4 = 1;
                                        if (!$par4) {
                                            $par4 = 0;
                                            break h;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            var$17 = var$17.$next3;
                        }
                        $par4 = var$17 === null ? 0 : 1;
                    } else
                        $par4 = 0;
                } else
                    $par4 = 0;
                if ($par4) {
                    $par3World = $var14;
                    nms_Item_$callClinit();
                    $var14 = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
                    var$17 = $par1ItemStack.$stackTagCompound;
                    if (var$17 !== null) {
                        i: {
                            var$17 = var$17.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break i;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par6 = $rt_s(918).$hashCode1;
                        var$13 = var$17.$elementData.data;
                        var$17 = var$13[$par6 & (var$13.length - 1 | 0)];
                        while (var$17 !== null) {
                            if (var$17.$origKeyHash == $par6) {
                                j: {
                                    var$19 = var$17.$key;
                                    if ($rt_s(918) !== var$19) {
                                        if ($rt_s(918) !== var$19) {
                                            if (var$19 instanceof jl_String) {
                                                var$19 = var$19;
                                                $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            } else
                                                $par4 = 0;
                                        } else
                                            $par4 = 1;
                                        if (!$par4) {
                                            $par4 = 0;
                                            break j;
                                        }
                                    }
                                    $par4 = 1;
                                }
                                if ($par4)
                                    break;
                            }
                            var$17 = var$17.$next3;
                        }
                        if (var$17 === null ? 0 : 1) {
                            k: {
                                var$17 = $par1ItemStack.$stackTagCompound;
                                var$19 = var$17.$tagMap;
                                if (!$rt_s(918).$hashCode1) {
                                    $par4 = 0;
                                    while (true) {
                                        if ($par4 >= $rt_s(918).$nativeString.length)
                                            break k;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                        $par4 = $par4 + 1 | 0;
                                    }
                                }
                            }
                            $par6 = $rt_s(918).$hashCode1;
                            var$13 = var$19.$elementData.data;
                            var$19 = var$13[$par6 & (var$13.length - 1 | 0)];
                            while (var$19 !== null) {
                                if (var$19.$origKeyHash == $par6) {
                                    l: {
                                        var$21 = var$19.$key;
                                        if ($rt_s(918) !== var$21) {
                                            if ($rt_s(918) === var$21)
                                                $par4 = 1;
                                            else if (!(var$21 instanceof jl_String))
                                                $par4 = 0;
                                            else {
                                                var$21 = var$21;
                                                $par4 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                            }
                                            if (!$par4) {
                                                $par4 = 0;
                                                break l;
                                            }
                                        }
                                        $par4 = 1;
                                    }
                                    if ($par4)
                                        break;
                                }
                                var$19 = var$19.$next3;
                            }
                            if (!(var$19 === null ? 0 : 1)) {
                                var$21 = new nms_NBTTagCompound;
                                if ($rt_s(918) !== null)
                                    var$21.$name = $rt_s(918);
                                else
                                    var$21.$name = $rt_s(3);
                                var$17 = new ju_HashMap;
                                $par4 = ju_HashMap_calculateCapacity(16);
                                var$17.$elementCount = 0;
                                var$20 = $rt_createArray(ju_HashMap$HashEntry, $par4);
                                var$13 = var$20.data;
                                var$17.$elementData = var$20;
                                var$17.$loadFactor = 0.75;
                                var$17.$threshold = var$13.length * 0.75 | 0;
                                var$21.$tagMap = var$17;
                            } else {
                                var$17 = var$17.$tagMap;
                                if ($rt_s(918) === null) {
                                    var$17 = var$17.$elementData.data[0];
                                    while (var$17 !== null && var$17.$key !== null) {
                                        var$17 = var$17.$next3;
                                    }
                                } else {
                                    m: {
                                        if (!$rt_s(918).$hashCode1) {
                                            $par4 = 0;
                                            while (true) {
                                                if ($par4 >= $rt_s(918).$nativeString.length)
                                                    break m;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                                $par4 = $par4 + 1 | 0;
                                            }
                                        }
                                    }
                                    $par6 = $rt_s(918).$hashCode1;
                                    var$13 = var$17.$elementData.data;
                                    var$17 = var$13[$par6 & (var$13.length - 1 | 0)];
                                    while (var$17 !== null) {
                                        if (var$17.$origKeyHash == $par6) {
                                            n: {
                                                var$19 = var$17.$key;
                                                if ($rt_s(918) !== var$19) {
                                                    if ($rt_s(918) === var$19)
                                                        $par4 = 1;
                                                    else if (!(var$19 instanceof jl_String))
                                                        $par4 = 0;
                                                    else {
                                                        var$19 = var$19;
                                                        $par4 = $rt_s(918).$nativeString !== var$19.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$par4) {
                                                        $par4 = 0;
                                                        break n;
                                                    }
                                                }
                                                $par4 = 1;
                                            }
                                            if ($par4)
                                                break;
                                        }
                                        var$17 = var$17.$next3;
                                    }
                                }
                                var$21 = var$17 === null ? null : var$17.$value0;
                            }
                            o: {
                                var$18 = var$21.$tagMap;
                                if (!$rt_s(919).$hashCode1) {
                                    $par4 = 0;
                                    while (true) {
                                        if ($par4 >= $rt_s(919).$nativeString.length)
                                            break o;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                        $par4 = $par4 + 1 | 0;
                                    }
                                }
                            }
                            $par6 = $rt_s(919).$hashCode1;
                            var$13 = var$18.$elementData.data;
                            var$18 = var$13[$par6 & (var$13.length - 1 | 0)];
                            while (var$18 !== null) {
                                if (var$18.$origKeyHash == $par6) {
                                    p: {
                                        var$19 = var$18.$key;
                                        if ($rt_s(919) !== var$19) {
                                            if ($rt_s(919) === var$19)
                                                $par4 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $par4 = 0;
                                            else {
                                                var$19 = var$19;
                                                $par4 = $rt_s(919).$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$par4) {
                                                $par4 = 0;
                                                break p;
                                            }
                                        }
                                        $par4 = 1;
                                    }
                                    if ($par4)
                                        break;
                                }
                                var$18 = var$18.$next3;
                            }
                            if (var$18 === null ? 0 : 1) {
                                q: {
                                    var$17 = var$21.$tagMap;
                                    if (!$rt_s(919).$hashCode1) {
                                        $par4 = 0;
                                        while (true) {
                                            if ($par4 >= $rt_s(919).$nativeString.length)
                                                break q;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                                $par6 = $rt_s(919).$hashCode1;
                                var$13 = var$17.$elementData.data;
                                var$17 = var$13[$par6 & (var$13.length - 1 | 0)];
                                while (var$17 !== null) {
                                    if (var$17.$origKeyHash == $par6) {
                                        r: {
                                            var$18 = var$17.$key;
                                            if ($rt_s(919) !== var$18) {
                                                if ($rt_s(919) === var$18)
                                                    $par4 = 1;
                                                else if (!(var$18 instanceof jl_String))
                                                    $par4 = 0;
                                                else {
                                                    var$18 = var$18;
                                                    $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                                }
                                                if (!$par4) {
                                                    $par4 = 0;
                                                    break r;
                                                }
                                            }
                                            $par4 = 1;
                                        }
                                        if ($par4)
                                            break;
                                    }
                                    var$17 = var$17.$next3;
                                }
                                if (!(var$17 === null ? 0 : 1))
                                    $var14 = $rt_s(3);
                                else {
                                    var$17 = var$21.$tagMap;
                                    if ($rt_s(919) === null) {
                                        var$17 = var$17.$elementData.data[0];
                                        while (var$17 !== null && var$17.$key !== null) {
                                            var$17 = var$17.$next3;
                                        }
                                    } else {
                                        s: {
                                            if (!$rt_s(919).$hashCode1) {
                                                $par4 = 0;
                                                while (true) {
                                                    if ($par4 >= $rt_s(919).$nativeString.length)
                                                        break s;
                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par4) | 0;
                                                    $par4 = $par4 + 1 | 0;
                                                }
                                            }
                                        }
                                        $par6 = $rt_s(919).$hashCode1;
                                        var$13 = var$17.$elementData.data;
                                        var$17 = var$13[$par6 & (var$13.length - 1 | 0)];
                                        while (var$17 !== null) {
                                            if (var$17.$origKeyHash == $par6) {
                                                t: {
                                                    var$18 = var$17.$key;
                                                    if ($rt_s(919) !== var$18) {
                                                        if ($rt_s(919) === var$18)
                                                            $par4 = 1;
                                                        else if (!(var$18 instanceof jl_String))
                                                            $par4 = 0;
                                                        else {
                                                            var$18 = var$18;
                                                            $par4 = $rt_s(919).$nativeString !== var$18.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par4) {
                                                            $par4 = 0;
                                                            break t;
                                                        }
                                                    }
                                                    $par4 = 1;
                                                }
                                                if ($par4)
                                                    break;
                                            }
                                            var$17 = var$17.$next3;
                                        }
                                    }
                                    $var14 = (var$17 === null ? null : var$17.$value0).$data1;
                                }
                            }
                        }
                    }
                    nms_EntityLiving_setCustomNameTag($par3World, $var14);
                }
            }
            if (!$par2EntityPlayer.$capabilities.$isCreativeMode)
                $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, var$13, var$14, var$15, $var14, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_ItemMonsterPlacer_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var5, $var4, $var6, $var7, var$8, $var8, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2World.$isRemote)
            return $par1ItemStack;
        $var5 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_Item_getMovingObjectPositionFromPlayer($this, $par2World, $par3EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return $par1ItemStack;
        if ($var4.$typeOfHit !== nms_EnumMovingObjectType_TILE)
            return $par1ItemStack;
        $var5 = $var4.$blockX;
        $var6 = $var4.$blockY;
        $var7 = $var4.$blockZ;
        if (!($par3EntityPlayer.$capabilities.$allowEdit ? 1 : $par1ItemStack === null ? 0 : 1))
            return $par1ItemStack;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par2World, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            nms_Material_$callClinit();
            $var8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var8 = nms_Block_blocksList.data[var$8].$blockMaterial;
        }
        nms_Material_$callClinit();
        if ($var8 !== nms_Material_water)
            return $par1ItemStack;
        var$8 = $par1ItemStack.$itemDamage;
        var$10 = $var5;
        var$11 = $var6;
        var$12 = $var7;
        $ptr = 3;
    case 3:
        $tmp = nms_ItemMonsterPlacer_spawnCreature($par2World, var$8, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 !== null) {
            if ($var8 instanceof nms_EntityLivingBase) {
                $var4 = $par1ItemStack.$stackTagCompound;
                if ($var4 === null)
                    $var5 = 0;
                else {
                    a: {
                        $var4 = $var4.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var5 = 0;
                            while (true) {
                                if ($var5 >= $rt_s(918).$nativeString.length)
                                    break a;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var5) | 0;
                                $var5 = $var5 + 1 | 0;
                            }
                        }
                    }
                    $var7 = $rt_s(918).$hashCode1;
                    var$13 = $var4.$elementData.data;
                    $var4 = var$13[$var7 & (var$13.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == $var7) {
                            b: {
                                var$14 = $var4.$key;
                                if ($rt_s(918) !== var$14) {
                                    if ($rt_s(918) !== var$14) {
                                        if (var$14 instanceof jl_String) {
                                            var$14 = var$14;
                                            $var5 = $rt_s(918).$nativeString !== var$14.$nativeString ? 0 : 1;
                                        } else
                                            $var5 = 0;
                                    } else
                                        $var5 = 1;
                                    if (!$var5) {
                                        $var5 = 0;
                                        break b;
                                    }
                                }
                                $var5 = 1;
                            }
                            if ($var5)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                    if (!($var4 === null ? 0 : 1))
                        $var5 = 0;
                    else {
                        c: {
                            $par2World = $par1ItemStack.$stackTagCompound;
                            var$14 = $par2World.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                $var5 = 0;
                                while (true) {
                                    if ($var5 >= $rt_s(918).$nativeString.length)
                                        break c;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var5) | 0;
                                    $var5 = $var5 + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(918).$hashCode1;
                        var$13 = var$14.$elementData.data;
                        var$14 = var$13[$var7 & (var$13.length - 1 | 0)];
                        while (var$14 !== null) {
                            if (var$14.$origKeyHash == $var7) {
                                d: {
                                    var$15 = var$14.$key;
                                    if ($rt_s(918) !== var$15) {
                                        if ($rt_s(918) === var$15)
                                            $var5 = 1;
                                        else if (!(var$15 instanceof jl_String))
                                            $var5 = 0;
                                        else {
                                            var$15 = var$15;
                                            $var5 = $rt_s(918).$nativeString !== var$15.$nativeString ? 0 : 1;
                                        }
                                        if (!$var5) {
                                            $var5 = 0;
                                            break d;
                                        }
                                    }
                                    $var5 = 1;
                                }
                                if ($var5)
                                    break;
                            }
                            var$14 = var$14.$next3;
                        }
                        if (var$14 === null ? 0 : 1) {
                            $par2World = $par2World.$tagMap;
                            if ($rt_s(918) !== null) {
                                e: {
                                    if (!$rt_s(918).$hashCode1) {
                                        $var5 = 0;
                                        while (true) {
                                            if ($var5 >= $rt_s(918).$nativeString.length)
                                                break e;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var5) | 0;
                                            $var5 = $var5 + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(918).$hashCode1;
                                var$13 = $par2World.$elementData.data;
                                $par2World = var$13[$var7 & (var$13.length - 1 | 0)];
                                while ($par2World !== null) {
                                    if ($par2World.$origKeyHash == $var7) {
                                        f: {
                                            var$14 = $par2World.$key;
                                            if ($rt_s(918) !== var$14) {
                                                if ($rt_s(918) !== var$14) {
                                                    if (var$14 instanceof jl_String) {
                                                        var$14 = var$14;
                                                        $var5 = $rt_s(918).$nativeString !== var$14.$nativeString ? 0 : 1;
                                                    } else
                                                        $var5 = 0;
                                                } else
                                                    $var5 = 1;
                                                if (!$var5) {
                                                    $var5 = 0;
                                                    break f;
                                                }
                                            }
                                            $var5 = 1;
                                        }
                                        if ($var5)
                                            break;
                                    }
                                    $par2World = $par2World.$next3;
                                }
                            } else {
                                $par2World = $par2World.$elementData.data[0];
                                while ($par2World !== null && $par2World.$key !== null) {
                                    $par2World = $par2World.$next3;
                                }
                            }
                            var$14 = $par2World === null ? null : $par2World.$value0;
                        } else {
                            var$14 = new nms_NBTTagCompound;
                            if ($rt_s(918) !== null)
                                var$14.$name = $rt_s(918);
                            else
                                var$14.$name = $rt_s(3);
                            $par2World = new ju_HashMap;
                            $var5 = ju_HashMap_calculateCapacity(16);
                            $par2World.$elementCount = 0;
                            var$16 = $rt_createArray(ju_HashMap$HashEntry, $var5);
                            var$13 = var$16.data;
                            $par2World.$elementData = var$16;
                            $par2World.$loadFactor = 0.75;
                            $par2World.$threshold = var$13.length * 0.75 | 0;
                            var$14.$tagMap = $par2World;
                        }
                        g: {
                            $var4 = var$14.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var5 = 0;
                                while (true) {
                                    if ($var5 >= $rt_s(919).$nativeString.length)
                                        break g;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var5) | 0;
                                    $var5 = $var5 + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(919).$hashCode1;
                        var$13 = $var4.$elementData.data;
                        $var4 = var$13[$var7 & (var$13.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == $var7) {
                                h: {
                                    var$14 = $var4.$key;
                                    if ($rt_s(919) !== var$14) {
                                        if ($rt_s(919) !== var$14) {
                                            if (var$14 instanceof jl_String) {
                                                var$14 = var$14;
                                                $var5 = $rt_s(919).$nativeString !== var$14.$nativeString ? 0 : 1;
                                            } else
                                                $var5 = 0;
                                        } else
                                            $var5 = 1;
                                        if (!$var5) {
                                            $var5 = 0;
                                            break h;
                                        }
                                    }
                                    $var5 = 1;
                                }
                                if ($var5)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                        $var5 = $var4 === null ? 0 : 1;
                    }
                }
                if ($var5) {
                    $var8 = $var8;
                    $par2World = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
                    $var4 = $par1ItemStack.$stackTagCompound;
                    if ($var4 !== null) {
                        i: {
                            $var4 = $var4.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                $var5 = 0;
                                while (true) {
                                    if ($var5 >= $rt_s(918).$nativeString.length)
                                        break i;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var5) | 0;
                                    $var5 = $var5 + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(918).$hashCode1;
                        var$13 = $var4.$elementData.data;
                        $var4 = var$13[$var7 & (var$13.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == $var7) {
                                j: {
                                    var$15 = $var4.$key;
                                    if ($rt_s(918) !== var$15) {
                                        if ($rt_s(918) === var$15)
                                            $var5 = 1;
                                        else if (!(var$15 instanceof jl_String))
                                            $var5 = 0;
                                        else {
                                            var$15 = var$15;
                                            $var5 = $rt_s(918).$nativeString !== var$15.$nativeString ? 0 : 1;
                                        }
                                        if (!$var5) {
                                            $var5 = 0;
                                            break j;
                                        }
                                    }
                                    $var5 = 1;
                                }
                                if ($var5)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                        if ($var4 === null ? 0 : 1) {
                            k: {
                                $var4 = $par1ItemStack.$stackTagCompound;
                                var$15 = $var4.$tagMap;
                                if (!$rt_s(918).$hashCode1) {
                                    $var5 = 0;
                                    while (true) {
                                        if ($var5 >= $rt_s(918).$nativeString.length)
                                            break k;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var5) | 0;
                                        $var5 = $var5 + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(918).$hashCode1;
                            var$13 = var$15.$elementData.data;
                            var$15 = var$13[$var7 & (var$13.length - 1 | 0)];
                            while (var$15 !== null) {
                                if (var$15.$origKeyHash == $var7) {
                                    l: {
                                        var$17 = var$15.$key;
                                        if ($rt_s(918) !== var$17) {
                                            if ($rt_s(918) === var$17)
                                                $var5 = 1;
                                            else if (!(var$17 instanceof jl_String))
                                                $var5 = 0;
                                            else {
                                                var$17 = var$17;
                                                $var5 = $rt_s(918).$nativeString !== var$17.$nativeString ? 0 : 1;
                                            }
                                            if (!$var5) {
                                                $var5 = 0;
                                                break l;
                                            }
                                        }
                                        $var5 = 1;
                                    }
                                    if ($var5)
                                        break;
                                }
                                var$15 = var$15.$next3;
                            }
                            if (!(var$15 === null ? 0 : 1)) {
                                var$17 = new nms_NBTTagCompound;
                                if ($rt_s(918) !== null)
                                    var$17.$name = $rt_s(918);
                                else
                                    var$17.$name = $rt_s(3);
                                $var4 = new ju_HashMap;
                                $var5 = ju_HashMap_calculateCapacity(16);
                                $var4.$elementCount = 0;
                                var$16 = $rt_createArray(ju_HashMap$HashEntry, $var5);
                                var$13 = var$16.data;
                                $var4.$elementData = var$16;
                                $var4.$loadFactor = 0.75;
                                $var4.$threshold = var$13.length * 0.75 | 0;
                                var$17.$tagMap = $var4;
                            } else {
                                $var4 = $var4.$tagMap;
                                if ($rt_s(918) === null) {
                                    $var4 = $var4.$elementData.data[0];
                                    while ($var4 !== null && $var4.$key !== null) {
                                        $var4 = $var4.$next3;
                                    }
                                } else {
                                    m: {
                                        if (!$rt_s(918).$hashCode1) {
                                            $var5 = 0;
                                            while (true) {
                                                if ($var5 >= $rt_s(918).$nativeString.length)
                                                    break m;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var5) | 0;
                                                $var5 = $var5 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7 = $rt_s(918).$hashCode1;
                                    var$13 = $var4.$elementData.data;
                                    $var4 = var$13[$var7 & (var$13.length - 1 | 0)];
                                    while ($var4 !== null) {
                                        if ($var4.$origKeyHash == $var7) {
                                            n: {
                                                var$15 = $var4.$key;
                                                if ($rt_s(918) !== var$15) {
                                                    if ($rt_s(918) === var$15)
                                                        $var5 = 1;
                                                    else if (!(var$15 instanceof jl_String))
                                                        $var5 = 0;
                                                    else {
                                                        var$15 = var$15;
                                                        $var5 = $rt_s(918).$nativeString !== var$15.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var5) {
                                                        $var5 = 0;
                                                        break n;
                                                    }
                                                }
                                                $var5 = 1;
                                            }
                                            if ($var5)
                                                break;
                                        }
                                        $var4 = $var4.$next3;
                                    }
                                }
                                var$17 = $var4 === null ? null : $var4.$value0;
                            }
                            o: {
                                var$14 = var$17.$tagMap;
                                if (!$rt_s(919).$hashCode1) {
                                    $var5 = 0;
                                    while (true) {
                                        if ($var5 >= $rt_s(919).$nativeString.length)
                                            break o;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var5) | 0;
                                        $var5 = $var5 + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(919).$hashCode1;
                            var$13 = var$14.$elementData.data;
                            var$14 = var$13[$var7 & (var$13.length - 1 | 0)];
                            while (var$14 !== null) {
                                if (var$14.$origKeyHash == $var7) {
                                    p: {
                                        var$15 = var$14.$key;
                                        if ($rt_s(919) !== var$15) {
                                            if ($rt_s(919) === var$15)
                                                $var5 = 1;
                                            else if (!(var$15 instanceof jl_String))
                                                $var5 = 0;
                                            else {
                                                var$15 = var$15;
                                                $var5 = $rt_s(919).$nativeString !== var$15.$nativeString ? 0 : 1;
                                            }
                                            if (!$var5) {
                                                $var5 = 0;
                                                break p;
                                            }
                                        }
                                        $var5 = 1;
                                    }
                                    if ($var5)
                                        break;
                                }
                                var$14 = var$14.$next3;
                            }
                            if (var$14 === null ? 0 : 1) {
                                q: {
                                    $par2World = var$17.$tagMap;
                                    if (!$rt_s(919).$hashCode1) {
                                        $var5 = 0;
                                        while (true) {
                                            if ($var5 >= $rt_s(919).$nativeString.length)
                                                break q;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var5) | 0;
                                            $var5 = $var5 + 1 | 0;
                                        }
                                    }
                                }
                                $var7 = $rt_s(919).$hashCode1;
                                var$13 = $par2World.$elementData.data;
                                $par2World = var$13[$var7 & (var$13.length - 1 | 0)];
                                while ($par2World !== null) {
                                    if ($par2World.$origKeyHash == $var7) {
                                        r: {
                                            $var4 = $par2World.$key;
                                            if ($rt_s(919) !== $var4) {
                                                if ($rt_s(919) === $var4)
                                                    $var5 = 1;
                                                else if (!($var4 instanceof jl_String))
                                                    $var5 = 0;
                                                else {
                                                    $var4 = $var4;
                                                    $var5 = $rt_s(919).$nativeString !== $var4.$nativeString ? 0 : 1;
                                                }
                                                if (!$var5) {
                                                    $var5 = 0;
                                                    break r;
                                                }
                                            }
                                            $var5 = 1;
                                        }
                                        if ($var5)
                                            break;
                                    }
                                    $par2World = $par2World.$next3;
                                }
                                if (!($par2World === null ? 0 : 1))
                                    $par2World = $rt_s(3);
                                else {
                                    $par2World = var$17.$tagMap;
                                    if ($rt_s(919) === null) {
                                        var$15 = $par2World.$elementData.data[0];
                                        while (var$15 !== null && var$15.$key !== null) {
                                            var$15 = var$15.$next3;
                                        }
                                    } else {
                                        s: {
                                            if (!$rt_s(919).$hashCode1) {
                                                $var5 = 0;
                                                while (true) {
                                                    if ($var5 >= $rt_s(919).$nativeString.length)
                                                        break s;
                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var5) | 0;
                                                    $var5 = $var5 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var5 = $rt_s(919).$hashCode1;
                                        var$13 = $par2World.$elementData.data;
                                        var$15 = var$13[$var5 & (var$13.length - 1 | 0)];
                                        while (var$15 !== null) {
                                            if (var$15.$origKeyHash == $var5) {
                                                t: {
                                                    $par2World = var$15.$key;
                                                    if ($rt_s(919) !== $par2World) {
                                                        if ($rt_s(919) === $par2World)
                                                            $var6 = 1;
                                                        else if (!($par2World instanceof jl_String))
                                                            $var6 = 0;
                                                        else {
                                                            $var4 = $par2World;
                                                            $var6 = $rt_s(919).$nativeString !== $var4.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var6) {
                                                            $var6 = 0;
                                                            break t;
                                                        }
                                                    }
                                                    $var6 = 1;
                                                }
                                                if ($var6)
                                                    break;
                                            }
                                            var$15 = var$15.$next3;
                                        }
                                    }
                                    $par2World = (var$15 === null ? null : var$15.$value0).$data1;
                                }
                            }
                        }
                    }
                    nms_EntityLiving_setCustomNameTag($var8, $par2World);
                }
            }
            if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
                $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var5, $var4, $var6, $var7, var$8, $var8, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_ItemMonsterPlacer_spawnCreature = ($par0World, $par1, $par2, $par4, $par6) => {
    let $var10, var$7, $var9, var$9, var$10, $var8, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();$var10 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 =
        $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        $var10 = nms_EntityList_entityEggs;
        if ($par1 >= (-128) && $par1 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[$par1 + 128 | 0];
        } else {
            var$7 = new jl_Integer;
            var$7.$value = $par1;
        }
        if (var$7 === null) {
            $var10 = $var10.$elementData.data[0];
            while ($var10 !== null && $var10.$key !== null) {
                $var10 = $var10.$next3;
            }
        } else {
            $var9 = var$7.$value;
            var$9 = $var10.$elementData.data;
            $var10 = var$9[$var9 & (var$9.length - 1 | 0)];
            while ($var10 !== null) {
                if ($var10.$origKeyHash == $var9) {
                    var$10 = $var10.$key;
                    if (var$7 !== var$10 && !(var$7 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == $var9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var10 = $var10.$next3;
            }
        }
        if (!($var10 === null ? 0 : 1))
            return null;
        $var8 = null;
        $var9 = 0;
        var$12 = 24;
        var$13 = null;
        var$14 = $rt_s(1338);
        var$15 = $rt_s(9);
        a: {
            while ($var9 < 1) {
                $var10 = null;
                try {
                    var$10 = ju_HashMap_get(nms_EntityList_IDtoConstructorMapping, jl_Integer_valueOf($par1));
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$7);
                    var$7.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    var$7.$sb = $var8;
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                $var8 = $var10;
                if ($var8 !== null)
                    $var8.$worldObj = $par0World;
                else {
                    if (jl_System_errCache === null) {
                        $var10 = new otcic_JSStderrPrintStream;
                        var$10 = new ji_ByteArrayOutputStream;
                        var$10.$buf = $rt_createByteArray(32);
                        jl_Object__init_($var10);
                        $var10.$out0 = var$10;
                        var$10 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0(var$10, 16);
                        $var10.$sb = var$10;
                        $var10.$buffer0 = $rt_createCharArray(32);
                        $var10.$autoFlush = 0;
                        $var10.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var10;
                    }
                    $var10 = new jl_StringBuilder;
                    $var10.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var10, $var10.$length0, var$14);
                    jl_AbstractStringBuilder_insert0($var10, $var10.$length0, $par1, 10);
                    var$10 = new jl_String;
                    var$9 = $var10.$buffer;
                    var$16 = var$9.data;
                    var$17 = $var10.$length0;
                    var$18 = var$16.length;
                    if (var$17 < 0)
                        break a;
                    if (var$17 > (var$18 - 0 | 0))
                        break a;
                    var$10.$nativeString = $rt_charArrayToString(var$9.data, 0, var$17);
                    $rt_putStderr($rt_ustr(var$10));
                    $rt_putStderr($rt_ustr(var$15));
                }
                if ($var8 !== null && $var8 instanceof nms_EntityLivingBase) {
                    $var10 = $var8;
                    var$10 = $par0World.$rand0;
                    var$19 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$19;
                    var$20 = Long_lo(Long_shru(var$19, var$12)) / 1.6777216E7 * 360.0 % 360.0;
                    if (var$20 >= 180.0)
                        var$20 = var$20 - 360.0;
                    if (var$20 < (-180.0))
                        var$20 = var$20 + 360.0;
                    $var8.$posX = $par2;
                    $var8.$prevPosX = $par2;
                    $var8.$lastTickPosX = $par2;
                    var$21 = $par4 + $var8.$yOffset;
                    $var8.$posY = var$21;
                    $var8.$prevPosY = var$21;
                    $var8.$lastTickPosY = var$21;
                    $var8.$posZ = $par6;
                    $var8.$prevPosZ = $par6;
                    $var8.$lastTickPosZ = $par6;
                    $var8.$rotationYaw = var$20;
                    $var8.$rotationPitch = 0.0;
                    nms_Entity_setPosition($var8, $par2, var$21, $par6);
                    var$22 = $var10.$rotationYaw;
                    $var10.$rotationYawHead = var$22;
                    $var10.$renderYawOffset = var$22;
                    $ptr = 2;
                    continue main;
                }
                $var9 = $var9 + 1 | 0;
            }
            return $var8;
        }
        $par0World = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par0World);
        $rt_throw($par0World);
    case 1:
        b: {
            try {
                $tmp = var$10.$apply($par0World);
                if ($rt_suspending()) {
                    break main;
                }
                $var8 = $tmp;
                $var10 = $var8;
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$10 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                var$23 = 32;
                jl_Object__init_($var8);
                var$9 = $rt_createByteArray(var$23);
                $var8.$buf = var$9;
                var$23 = 0;
                ji_OutputStream__init_(var$7);
                var$7.$out0 = $var8;
                $var8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var8);
                var$7.$sb = $var8;
                var$17 = 32;
                var$9 = $rt_createCharArray(var$17);
                var$7.$buffer0 = var$9;
                var$7.$autoFlush = var$23;
                $var8 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = $var8;
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$10, var$7);
            $var8 = $var10;
        }
        c: {
            while (true) {
                if ($var8 !== null)
                    $var8.$worldObj = $par0World;
                else {
                    if (jl_System_errCache === null) {
                        $var10 = new otcic_JSStderrPrintStream;
                        var$10 = new ji_ByteArrayOutputStream;
                        var$10.$buf = $rt_createByteArray(32);
                        jl_Object__init_($var10);
                        $var10.$out0 = var$10;
                        var$10 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0(var$10, 16);
                        $var10.$sb = var$10;
                        $var10.$buffer0 = $rt_createCharArray(32);
                        $var10.$autoFlush = 0;
                        $var10.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var10;
                    }
                    $var10 = new jl_StringBuilder;
                    $var10.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var10, $var10.$length0, var$14);
                    jl_AbstractStringBuilder_insert0($var10, $var10.$length0, $par1, 10);
                    var$10 = new jl_String;
                    var$9 = $var10.$buffer;
                    var$16 = var$9.data;
                    var$17 = $var10.$length0;
                    var$18 = var$16.length;
                    if (var$17 < 0)
                        break c;
                    if (var$17 > (var$18 - 0 | 0))
                        break c;
                    var$10.$nativeString = $rt_charArrayToString(var$9.data, 0, var$17);
                    $rt_putStderr($rt_ustr(var$10));
                    $rt_putStderr($rt_ustr(var$15));
                }
                if ($var8 !== null && $var8 instanceof nms_EntityLivingBase) {
                    $var10 = $var8;
                    var$10 = $par0World.$rand0;
                    var$19 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$19;
                    var$20 = Long_lo(Long_shru(var$19, var$12)) / 1.6777216E7 * 360.0 % 360.0;
                    if (var$20 >= 180.0)
                        var$20 = var$20 - 360.0;
                    if (var$20 < (-180.0))
                        var$20 = var$20 + 360.0;
                    $var8.$posX = $par2;
                    $var8.$prevPosX = $par2;
                    $var8.$lastTickPosX = $par2;
                    var$21 = $par4 + $var8.$yOffset;
                    $var8.$posY = var$21;
                    $var8.$prevPosY = var$21;
                    $var8.$lastTickPosY = var$21;
                    $var8.$posZ = $par6;
                    $var8.$prevPosZ = $par6;
                    $var8.$lastTickPosZ = $par6;
                    $var8.$rotationYaw = var$20;
                    $var8.$rotationPitch = 0.0;
                    nms_Entity_setPosition($var8, $par2, var$21, $par6);
                    var$22 = $var10.$rotationYaw;
                    $var10.$rotationYawHead = var$22;
                    $var10.$renderYawOffset = var$22;
                    $ptr = 2;
                    continue main;
                }
                $var9 = $var9 + 1 | 0;
                if ($var9 >= 1)
                    break;
                $var10 = null;
                try {
                    var$10 = ju_HashMap_get(nms_EntityList_IDtoConstructorMapping, jl_Integer_valueOf($par1));
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$7 = jl_System_errCache;
                if (var$7 === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    var$23 = 32;
                    jl_Object__init_($var8);
                    var$9 = $rt_createByteArray(var$23);
                    $var8.$buf = var$9;
                    var$23 = 0;
                    ji_OutputStream__init_(var$7);
                    var$7.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    var$7.$sb = $var8;
                    var$17 = 32;
                    var$9 = $rt_createCharArray(var$17);
                    var$7.$buffer0 = var$9;
                    var$7.$autoFlush = var$23;
                    $var8 = jnci_UTF8Charset_INSTANCE;
                    var$7.$charset = $var8;
                    jl_System_errCache = var$7;
                }
                var$7 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$10, var$7);
                $var8 = $var10;
            }
            return $var8;
        }
        $par0World = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par0World);
        $rt_throw($par0World);
    case 2:
        $var10.$onSpawnWithEgg(var$13);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par0World, $var8);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $var10.$getLivingSound();
        if (var$10 === null) {
            d: {
                while (true) {
                    $var9 = $var9 + 1 | 0;
                    if ($var9 >= 1)
                        break;
                    $var10 = null;
                    try {
                        var$10 = ju_HashMap_get(nms_EntityList_IDtoConstructorMapping, jl_Integer_valueOf($par1));
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$10 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        $var8 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var8);
                        $var8.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_(var$7);
                        var$7.$out0 = $var8;
                        $var8 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var8);
                        var$7.$sb = $var8;
                        var$7.$buffer0 = $rt_createCharArray(32);
                        var$7.$autoFlush = 0;
                        var$7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                    $var8 = $var10;
                    if ($var8 !== null)
                        $var8.$worldObj = $par0World;
                    else {
                        if (jl_System_errCache === null) {
                            $var10 = new otcic_JSStderrPrintStream;
                            var$10 = new ji_ByteArrayOutputStream;
                            var$10.$buf = $rt_createByteArray(32);
                            jl_Object__init_($var10);
                            $var10.$out0 = var$10;
                            var$10 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_0(var$10, 16);
                            $var10.$sb = var$10;
                            $var10.$buffer0 = $rt_createCharArray(32);
                            $var10.$autoFlush = 0;
                            $var10.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var10;
                        }
                        $var10 = new jl_StringBuilder;
                        $var10.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($var10, $var10.$length0, var$14);
                        jl_AbstractStringBuilder_insert0($var10, $var10.$length0, $par1, 10);
                        var$10 = new jl_String;
                        var$9 = $var10.$buffer;
                        var$16 = var$9.data;
                        var$17 = $var10.$length0;
                        var$18 = var$16.length;
                        if (var$17 < 0)
                            break d;
                        if (var$17 > (var$18 - 0 | 0))
                            break d;
                        var$10.$nativeString = $rt_charArrayToString(var$9.data, 0, var$17);
                        $rt_putStderr($rt_ustr(var$10));
                        $rt_putStderr($rt_ustr(var$15));
                    }
                    if ($var8 === null)
                        continue;
                    if (!($var8 instanceof nms_EntityLivingBase))
                        continue;
                    else {
                        $var10 = $var8;
                        var$10 = $par0World.$rand0;
                        var$19 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$10.$seed = var$19;
                        var$20 = Long_lo(Long_shru(var$19, var$12)) / 1.6777216E7 * 360.0 % 360.0;
                        if (var$20 >= 180.0)
                            var$20 = var$20 - 360.0;
                        if (var$20 < (-180.0))
                            var$20 = var$20 + 360.0;
                        $var8.$posX = $par2;
                        $var8.$prevPosX = $par2;
                        $var8.$lastTickPosX = $par2;
                        var$21 = $par4 + $var8.$yOffset;
                        $var8.$posY = var$21;
                        $var8.$prevPosY = var$21;
                        $var8.$lastTickPosY = var$21;
                        $var8.$posZ = $par6;
                        $var8.$prevPosZ = $par6;
                        $var8.$lastTickPosZ = $par6;
                        $var8.$rotationYaw = var$20;
                        $var8.$rotationPitch = 0.0;
                        nms_Entity_setPosition($var8, $par2, var$21, $par6);
                        var$22 = $var10.$rotationYaw;
                        $var10.$rotationYawHead = var$22;
                        $var10.$renderYawOffset = var$22;
                        $ptr = 2;
                        continue main;
                    }
                }
                return $var8;
            }
            $par0World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par0World);
            $rt_throw($par0World);
        }
        var$22 = $var10.$getSoundVolume();
        var$24 = $var10.$getSoundPitch();
        var$7 = $var10.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_playSoundAtEntity(var$7, $var10, var$10, var$22, var$24);
        if ($rt_suspending()) {
            break main;
        }
        e: {
            while (true) {
                $var9 = $var9 + 1 | 0;
                if ($var9 >= 1)
                    break;
                $var10 = null;
                try {
                    var$10 = ju_HashMap_get(nms_EntityList_IDtoConstructorMapping, jl_Integer_valueOf($par1));
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$7);
                    var$7.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    var$7.$sb = $var8;
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                $var8 = $var10;
                if ($var8 !== null)
                    $var8.$worldObj = $par0World;
                else {
                    if (jl_System_errCache === null) {
                        $var10 = new otcic_JSStderrPrintStream;
                        var$10 = new ji_ByteArrayOutputStream;
                        var$10.$buf = $rt_createByteArray(32);
                        jl_Object__init_($var10);
                        $var10.$out0 = var$10;
                        var$10 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0(var$10, 16);
                        $var10.$sb = var$10;
                        $var10.$buffer0 = $rt_createCharArray(32);
                        $var10.$autoFlush = 0;
                        $var10.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var10;
                    }
                    $var10 = new jl_StringBuilder;
                    $var10.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var10, $var10.$length0, var$14);
                    jl_AbstractStringBuilder_insert0($var10, $var10.$length0, $par1, 10);
                    var$10 = new jl_String;
                    var$9 = $var10.$buffer;
                    var$16 = var$9.data;
                    var$17 = $var10.$length0;
                    var$18 = var$16.length;
                    if (var$17 < 0)
                        break e;
                    if (var$17 > (var$18 - 0 | 0))
                        break e;
                    var$10.$nativeString = $rt_charArrayToString(var$9.data, 0, var$17);
                    $rt_putStderr($rt_ustr(var$10));
                    $rt_putStderr($rt_ustr(var$15));
                }
                if ($var8 === null)
                    continue;
                if (!($var8 instanceof nms_EntityLivingBase))
                    continue;
                else {
                    $var10 = $var8;
                    var$10 = $par0World.$rand0;
                    var$19 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$19;
                    var$20 = Long_lo(Long_shru(var$19, var$12)) / 1.6777216E7 * 360.0 % 360.0;
                    if (var$20 >= 180.0)
                        var$20 = var$20 - 360.0;
                    if (var$20 < (-180.0))
                        var$20 = var$20 + 360.0;
                    $var8.$posX = $par2;
                    $var8.$prevPosX = $par2;
                    $var8.$lastTickPosX = $par2;
                    var$21 = $par4 + $var8.$yOffset;
                    $var8.$posY = var$21;
                    $var8.$prevPosY = var$21;
                    $var8.$lastTickPosY = var$21;
                    $var8.$posZ = $par6;
                    $var8.$prevPosZ = $par6;
                    $var8.$lastTickPosZ = $par6;
                    $var8.$rotationYaw = var$20;
                    $var8.$rotationPitch = 0.0;
                    nms_Entity_setPosition($var8, $par2, var$21, $par6);
                    var$22 = $var10.$rotationYaw;
                    $var10.$rotationYawHead = var$22;
                    $var10.$renderYawOffset = var$22;
                    $ptr = 2;
                    continue main;
                }
            }
            return $var8;
        }
        $par0World = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par0World);
        $rt_throw($par0World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par4, $par6, $var10, var$7, $var9, var$9, var$10, $var8, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $ptr);
},
nms_ItemExpBottle = $rt_classWithoutFields(nms_Item),
nms_ItemExpBottle__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemExpBottle__init_ = var_0 => {
    let var_1 = new nms_ItemExpBottle();
    nms_ItemExpBottle__init_0(var_1, var_0);
    return var_1;
},
nms_ItemExpBottle_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        var$4 = $rt_s(1167);
        var$5 = 0.5;
        nms_Item_$callClinit();
        var$6 = nms_Item_itemRand;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        var$8 = 0.4000000059604645 / (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity($par2World, $par3EntityPlayer, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par2World.$isRemote)
            return $par1ItemStack;
        var$4 = new nms_EntityExpBottle;
        $ptr = 2;
    case 2:
        nms_EntityThrowable__init_(var$4, $par2World, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par2World, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_ItemFireball = $rt_classWithoutFields(nms_Item),
nms_ItemFireball__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemFireball__init_0 = var_0 => {
    let var_1 = new nms_ItemFireball();
    nms_ItemFireball__init_(var_1, var_0);
    return var_1;
},
nms_ItemFireball_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3World.$isRemote)
            return 1;
        if (!$par7)
            $par5 = $par5 + (-1) | 0;
        if ($par7 == 1)
            $par5 = $par5 + 1 | 0;
        if ($par7 == 2)
            $par6 = $par6 + (-1) | 0;
        if ($par7 == 3)
            $par6 = $par6 + 1 | 0;
        if ($par7 == 4)
            $par4 = $par4 + (-1) | 0;
        if ($par7 == 5)
            $par4 = $par4 + 1 | 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if (!$par7)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11) {
            if (!$par2EntityPlayer.$capabilities.$isCreativeMode)
                $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
            return 1;
        }
        var$12 = $par4 + 0.5;
        var$13 = $par5 + 0.5;
        var$14 = $par6 + 0.5;
        var$15 = $rt_s(1165);
        $par8 = 1.0;
        nms_Item_$callClinit();
        var$16 = nms_Item_itemRand;
        var$17 = Long_and(Long_add(Long_mul(var$16.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$16.$seed = var$17;
        $par9 = Long_lo(Long_shru(var$17, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929;
        $ptr = 2;
    case 2:
        nms_World_playSoundEffect($par3World, var$12, var$13, var$14, var$15, $par8, $par9);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        $par7 = nms_Block_fire.$blockID;
        $var11 = 0;
        var$18 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var11, var$18);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par2EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_ItemWritableBook = $rt_classWithoutFields(nms_Item),
nms_ItemWritableBook__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
},
nms_ItemWritableBook__init_0 = var_0 => {
    let var_1 = new nms_ItemWritableBook();
    nms_ItemWritableBook__init_(var_1, var_0);
    return var_1;
},
nms_ItemWritableBook_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return $par1ItemStack;
},
nms_ItemWritableBook_getShareTag = $this => {
    return 1;
},
nms_ItemWritableBook_validBookTagPages = $par0NBTTagCompound => {
    let $var3, $var2, var$4, var$5, var$6, $var1, var$8;
    if ($par0NBTTagCompound === null)
        return 0;
    a: {
        $var3 = $par0NBTTagCompound.$tagMap;
        if (!$rt_s(1339).$hashCode1) {
            $var2 = 0;
            while (true) {
                if ($var2 >= $rt_s(1339).$nativeString.length)
                    break a;
                $rt_s(1339).$hashCode1 = (31 * $rt_s(1339).$hashCode1 | 0) + $rt_s(1339).$nativeString.charCodeAt($var2) | 0;
                $var2 = $var2 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1339).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$4) {
            b: {
                var$6 = $var3.$key;
                if ($rt_s(1339) !== var$6) {
                    if ($rt_s(1339) === var$6)
                        $var2 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var2 = 0;
                    else {
                        var$6 = var$6;
                        $var2 = $rt_s(1339).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var2) {
                        $var2 = 0;
                        break b;
                    }
                }
                $var2 = 1;
            }
            if ($var2)
                break;
        }
        $var3 = $var3.$next3;
    }
    if (!($var3 === null ? 0 : 1))
        return 0;
    c: {
        $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
        if (!$rt_s(1339).$hashCode1) {
            $var2 = 0;
            while (true) {
                if ($var2 >= $rt_s(1339).$nativeString.length)
                    break c;
                $rt_s(1339).$hashCode1 = (31 * $rt_s(1339).$hashCode1 | 0) + $rt_s(1339).$nativeString.charCodeAt($var2) | 0;
                $var2 = $var2 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1339).$hashCode1;
    var$5 = $par0NBTTagCompound.$elementData.data;
    $par0NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($par0NBTTagCompound !== null) {
        if ($par0NBTTagCompound.$origKeyHash == var$4) {
            d: {
                $var3 = $par0NBTTagCompound.$key;
                if ($rt_s(1339) !== $var3) {
                    if ($rt_s(1339) === $var3)
                        $var2 = 1;
                    else if (!($var3 instanceof jl_String))
                        $var2 = 0;
                    else {
                        $var3 = $var3;
                        $var2 = $rt_s(1339).$nativeString !== $var3.$nativeString ? 0 : 1;
                    }
                    if (!$var2) {
                        $var2 = 0;
                        break d;
                    }
                }
                $var2 = 1;
            }
            if ($var2)
                break;
        }
        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
    }
    $var1 = $par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0;
    $var2 = 0;
    e: {
        while (true) {
            $par0NBTTagCompound = $var1.$tagList;
            var$8 = $rt_compare($var2, $par0NBTTagCompound.$size0);
            if (var$8 >= 0)
                break;
            if ($var2 < 0)
                break e;
            if (var$8 >= 0)
                break e;
            $par0NBTTagCompound = $par0NBTTagCompound.$array.data[$var2].$data1;
            if ($par0NBTTagCompound === null)
                return 0;
            if ($par0NBTTagCompound.$nativeString.length > 256)
                return 0;
            $var2 = $var2 + 1 | 0;
        }
        return 1;
    }
    $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par0NBTTagCompound.$suppressionEnabled = 1;
    $par0NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par0NBTTagCompound);
},
nms_ItemEditableBook = $rt_classWithoutFields(nms_Item),
nms_ItemEditableBook__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$maxStackSize = 1;
},
nms_ItemEditableBook__init_0 = var_0 => {
    let var_1 = new nms_ItemEditableBook();
    nms_ItemEditableBook__init_(var_1, var_0);
    return var_1;
},
nms_ItemEditableBook_validBookTagContents = $par0NBTTagCompound => {
    let var$2, var$3, var$4, var$5, var$6, $var1, var$8;
    if (!nms_ItemWritableBook_validBookTagPages($par0NBTTagCompound))
        return 0;
    a: {
        var$2 = $par0NBTTagCompound.$tagMap;
        if (!$rt_s(1340).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1340).$nativeString.length)
                    break a;
                $rt_s(1340).$hashCode1 = (31 * $rt_s(1340).$hashCode1 | 0) + $rt_s(1340).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1340).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(1340) !== var$6) {
                    if ($rt_s(1340) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(1340).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        return 0;
    c: {
        var$2 = $par0NBTTagCompound.$tagMap;
        if (!$rt_s(1340).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1340).$nativeString.length)
                    break c;
                $rt_s(1340).$hashCode1 = (31 * $rt_s(1340).$hashCode1 | 0) + $rt_s(1340).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1340).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            d: {
                var$6 = var$2.$key;
                if ($rt_s(1340) !== var$6) {
                    if ($rt_s(1340) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(1340).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break d;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var1 = $rt_s(3);
    else {
        var$2 = $par0NBTTagCompound.$tagMap;
        if ($rt_s(1340) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            e: {
                if (!$rt_s(1340).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1340).$nativeString.length)
                            break e;
                        $rt_s(1340).$hashCode1 = (31 * $rt_s(1340).$hashCode1 | 0) + $rt_s(1340).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(1340).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    f: {
                        var$6 = var$2.$key;
                        if ($rt_s(1340) !== var$6) {
                            if ($rt_s(1340) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(1340).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break f;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var1 = (var$2 === null ? null : var$2.$value0).$data1;
    }
    if ($var1 !== null && $var1.$nativeString.length <= 16) {
        g: {
            $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
            if (!$rt_s(1341).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(1341).$nativeString.length)
                        break g;
                    $rt_s(1341).$hashCode1 = (31 * $rt_s(1341).$hashCode1 | 0) + $rt_s(1341).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(1341).$hashCode1;
        var$5 = $par0NBTTagCompound.$elementData.data;
        $par0NBTTagCompound = var$5[var$3 & (var$5.length - 1 | 0)];
        while ($par0NBTTagCompound !== null) {
            if ($par0NBTTagCompound.$origKeyHash == var$3) {
                h: {
                    var$2 = $par0NBTTagCompound.$key;
                    if ($rt_s(1341) !== var$2) {
                        if ($rt_s(1341) === var$2)
                            var$8 = 1;
                        else if (!(var$2 instanceof jl_String))
                            var$8 = 0;
                        else {
                            var$2 = var$2;
                            var$8 = $rt_s(1341).$nativeString !== var$2.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break h;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $par0NBTTagCompound = $par0NBTTagCompound.$next3;
        }
        var$3 = $par0NBTTagCompound === null ? 0 : 1;
    } else
        var$3 = 0;
    return var$3;
},
nms_ItemEditableBook_getItemDisplayName = ($this, $par1ItemStack) => {
    let $var3, var$3, var$4, var$5, var$6, var$7, var$8;
    $var3 = $par1ItemStack.$stackTagCompound;
    if ($var3 === null ? 0 : 1) {
        a: {
            $var3 = $var3.$tagMap;
            if (!$rt_s(1340).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(1340).$nativeString.length)
                        break a;
                    $rt_s(1340).$hashCode1 = (31 * $rt_s(1340).$hashCode1 | 0) + $rt_s(1340).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(1340).$hashCode1;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$4) {
                b: {
                    var$6 = $var3.$key;
                    if ($rt_s(1340) !== var$6) {
                        if ($rt_s(1340) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(1340).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $var3 = $var3.$next3;
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3 !== null)
            return nms_NBTTagString_toString($var3);
    }
    $par1ItemStack = $this.$unlocalizedName;
    $var3 = new jl_StringBuilder;
    $var3.$buffer = $rt_createCharArray(16);
    jl_StringBuilder_insert($var3, $var3.$length0, jl_String_toString($rt_s(399)));
    jl_StringBuilder_insert($var3, $var3.$length0, $par1ItemStack === null ? $rt_s(1) : jl_String_toString($par1ItemStack));
    var$6 = new jl_String;
    var$5 = $var3.$buffer;
    var$7 = var$5.data;
    var$8 = $var3.$length0;
    var$4 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$4 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
        nms_StatCollector_$callClinit();
        $var3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$6);
        $par1ItemStack = new jl_StringBuilder;
        $par1ItemStack.$buffer = $rt_createCharArray(16);
        var$3 = $par1ItemStack.$length0;
        if ($var3 === null)
            $var3 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par1ItemStack, var$3, $var3);
        jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(400));
        $var3 = new jl_String;
        var$5 = $par1ItemStack.$buffer;
        var$7 = var$5.data;
        var$8 = $par1ItemStack.$length0;
        var$4 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$4 - 0 | 0)) {
            $var3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
            $var3 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var3);
            $par1ItemStack = new jl_StringBuilder;
            $par1ItemStack.$buffer = $rt_createCharArray(16);
            var$3 = $par1ItemStack.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par1ItemStack, var$3, $var3);
            $var3 = new jl_String;
            var$5 = $par1ItemStack.$buffer;
            var$7 = var$5.data;
            var$8 = $par1ItemStack.$length0;
            var$4 = var$7.length;
            if (var$8 >= 0 && var$8 <= (var$4 - 0 | 0)) {
                $var3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
                return jl_String_trim($var3);
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_RuntimeException__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_ItemEditableBook_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    return $par1ItemStack;
},
nms_ItemEditableBook_getShareTag = $this => {
    return 1;
};
function nms_EntityItemFrame() {
    nms_EntityHanging.call(this);
    this.$itemDropChance = 0.0;
}
let nms_EntityItemFrame_entityInit = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$dataWatcher;
    var$2 = new nms_WatchableObject;
    var$3 = null;
    var$2.$dataValueId = 2;
    var$2.$watchedObject = var$3;
    var$2.$objectType = 5;
    var$2.$watched = 1;
    var$3 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$3, jl_Integer_integerCache.data[130], var$2);
    var$1.$isBlank = 0;
    nms_DataWatcher_addObject($this.$dataWatcher, 3, jl_Byte_byteCache.data[128]);
},
nms_EntityItemFrame_getWidthPixels = $this => {
    return 9;
},
nms_EntityItemFrame_getHeightPixels = $this => {
    return 9;
},
nms_EntityItemFrame_onBroken = ($this, $par1Entity) => {
    let $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[130];
        if (var$3 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = $var3.$elementData.data;
            $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$4) {
                    var$6 = $var3.$key;
                    if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        var$3 = ($var3 === null ? null : $var3.$value0).$watchedObject;
        if ($par1Entity instanceof nms_EntityPlayer && $par1Entity.$capabilities.$isCreativeMode) {
            $ptr = 2;
            continue main;
        }
        $par1Entity = new nms_ItemStack;
        nms_Item_$callClinit();
        $var3 = nms_Item_itemFrame;
        nms_ItemStack_$callClinit();
        $par1Entity.$itemID = $var3.$itemID0;
        $par1Entity.$stackSize = 1;
        $par1Entity.$itemDamage = 0;
        $var3 = new nms_EntityItem;
        var$6 = $this.$worldObj;
        var$7 = $this.$posX;
        var$8 = $this.$posY + 0.0;
        var$9 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_($var3, var$6, var$7, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $var3.$dataWatcher;
        var$6 = var$10.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[138];
        if (var$11 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$12 = jl_Integer_hashCode(var$11.$value);
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$12 & (var$5.length - 1 | 0)];
            while (var$6 !== null && !(var$6.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$11, var$6.$key))) {
                var$6 = var$6.$next3;
            }
        }
        var$13 = var$6 === null ? null : var$6.$value0;
        if (!($par1Entity !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = $par1Entity;
            var$13.$watched = 1;
            var$10.$objectChanged = 1;
        }
        var$11 = $var3.$dataWatcher;
        $par1Entity = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[138];
        if (var$13 === null) {
            $par1Entity = $par1Entity.$elementData.data[0];
            while ($par1Entity !== null && $par1Entity.$key !== null) {
                $par1Entity = $par1Entity.$next3;
            }
        } else {
            var$12 = jl_Integer_hashCode(var$13.$value);
            var$5 = $par1Entity.$elementData.data;
            $par1Entity = var$5[var$12 & (var$5.length - 1 | 0)];
            while ($par1Entity !== null && !($par1Entity.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$13, $par1Entity.$key))) {
                $par1Entity = $par1Entity.$next3;
            }
        }
        ($par1Entity === null ? null : $par1Entity.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        $var3.$delayBeforeCanPickup = 10;
        $par1Entity = $this.$worldObj;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityItemFrame_removeFrameFromMap($this, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_spawnEntityInWorld($par1Entity, $var3);
        if ($rt_suspending()) {
            break main;
        }
        if (var$3 !== null) {
            $par1Entity = $this.$rand;
            var$14 = Long_and(Long_add(Long_mul($par1Entity.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Entity.$seed = var$14;
            if (Long_lo(Long_shru(var$14, 24)) / 1.6777216E7 < $this.$itemDropChance) {
                var$6 = new nms_ItemStack;
                var$4 = var$3.$itemID;
                var$15 = var$3.$stackSize;
                var$12 = var$3.$itemDamage;
                var$6.$itemID = var$4;
                var$6.$stackSize = var$15;
                var$6.$itemDamage = var$12;
                if (var$12 < 0)
                    var$6.$itemDamage = 0;
                $par1Entity = var$3.$stackTagCompound;
                if ($par1Entity !== null) {
                    $var3 = new nms_NBTTagCompound;
                    var$3 = $par1Entity.$name;
                    if (var$3 === null)
                        var$3 = $rt_s(3);
                    $var3.$name = var$3;
                    var$3 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    var$3.$elementCount = 0;
                    var$16 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$5 = var$16.data;
                    var$3.$elementData = var$16;
                    var$3.$loadFactor = 0.75;
                    var$3.$threshold = var$5.length * 0.75 | 0;
                    $var3.$tagMap = var$3;
                    var$3 = $par1Entity.$tagMap;
                    if (var$3.$cachedKeySet === null) {
                        var$13 = new ju_HashMap$1;
                        var$13.$this$0 = var$3;
                        var$3.$cachedKeySet = var$13;
                    }
                    var$3 = var$3.$cachedKeySet.$iterator();
                    while (var$3.$hasNext()) {
                        var$13 = var$3.$next();
                        var$11 = $par1Entity.$tagMap;
                        if (var$13 === null) {
                            var$11 = var$11.$elementData.data[0];
                            while (var$11 !== null && var$11.$key !== null) {
                                var$11 = var$11.$next3;
                            }
                        } else {
                            a: {
                                if (!var$13.$hashCode1) {
                                    var$4 = 0;
                                    while (true) {
                                        if (var$4 >= var$13.$nativeString.length)
                                            break a;
                                        var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$4) | 0;
                                        var$4 = var$4 + 1 | 0;
                                    }
                                }
                            }
                            var$12 = var$13.$hashCode1;
                            var$5 = var$11.$elementData.data;
                            var$11 = var$5[var$12 & (var$5.length - 1 | 0)];
                            while (var$11 !== null) {
                                if (var$11.$origKeyHash == var$12) {
                                    b: {
                                        var$10 = var$11.$key;
                                        if (var$13 !== var$10) {
                                            if (var$13 === var$10)
                                                var$4 = 1;
                                            else if (!(var$10 instanceof jl_String))
                                                var$4 = 0;
                                            else {
                                                var$10 = var$10;
                                                var$4 = var$13.$nativeString !== var$10.$nativeString ? 0 : 1;
                                            }
                                            if (!var$4) {
                                                var$4 = 0;
                                                break b;
                                            }
                                        }
                                        var$4 = 1;
                                    }
                                    if (var$4)
                                        break;
                                }
                                var$11 = var$11.$next3;
                            }
                        }
                        var$11 = var$11 === null ? null : var$11.$value0;
                        var$11 = var$11.$copy();
                        var$10 = $var3.$tagMap;
                        if (var$13 !== null)
                            var$11.$name = var$13;
                        else
                            var$11.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$10, var$13, var$11);
                    }
                    var$6.$stackTagCompound = $var3;
                }
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 4:
        nms_EntityItemFrame_removeFrameFromMap($this, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if (!var$6.$stackSize)
            return;
        $par1Entity = new nms_EntityItem;
        $var3 = $this.$worldObj;
        var$7 = $this.$posX;
        var$8 = $this.$posY + 0.0;
        var$9 = $this.$posZ;
        $ptr = 5;
    case 5:
        nms_EntityItem__init_($par1Entity, $var3, var$7, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $par1Entity.$dataWatcher;
        $var3 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[138];
        if (var$11 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$12 = jl_Integer_hashCode(var$11.$value);
            var$5 = $var3.$elementData.data;
            $var3 = var$5[var$12 & (var$5.length - 1 | 0)];
            while ($var3 !== null && !($var3.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$11, $var3.$key))) {
                $var3 = $var3.$next3;
            }
        }
        var$3 = $var3 === null ? null : $var3.$value0;
        if (!(var$6 !== var$3.$watchedObject ? 0 : 1)) {
            var$3.$watchedObject = var$6;
            var$3.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$13 = $par1Entity.$dataWatcher;
        $var3 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[138];
        if (var$6 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$12 = jl_Integer_hashCode(var$6.$value);
            var$5 = $var3.$elementData.data;
            $var3 = var$5[var$12 & (var$5.length - 1 | 0)];
            while ($var3 !== null && !($var3.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$6, $var3.$key))) {
                $var3 = $var3.$next3;
            }
        }
        ($var3 === null ? null : $var3.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        $par1Entity.$delayBeforeCanPickup = 10;
        $var3 = $this.$worldObj;
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($var3, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityItemFrame_removeFrameFromMap = ($this, $par1ItemStack) => {
    let var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1ItemStack !== null) {
            var$2 = $par1ItemStack.$itemID;
            nms_Item_$callClinit();
            if (var$2 == nms_Item_map.$itemID0) {
                $var2 = nms_Item_itemsList.data[var$2];
                var$4 = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
            $par1ItemStack.$itemFrame = null;
        }
        return;
    case 1:
        $tmp = nms_ItemMap_getMapData($var2, $par1ItemStack, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var2 = $var2.$playersVisibleOnMap;
        var$2 = $this.$entityId;
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1342));
        jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$2, 10);
        var$5 = new jl_String;
        var$6 = var$4.$buffer;
        var$7 = var$6.data;
        var$8 = var$4.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            var$4 = ju_HashMap_removeByKey($var2, var$5);
            if (var$4 !== null) {
                var$5 = var$4.$chainBackward;
                var$4 = var$4.$chainForward;
                if (var$5 !== null) {
                    var$5.$chainForward = var$4;
                    if (var$4 === null)
                        $var2.$tail = var$5;
                    else
                        var$4.$chainBackward = var$5;
                } else {
                    $var2.$head = var$4;
                    if (var$4 === null)
                        $var2.$tail = null;
                    else
                        var$4.$chainBackward = null;
                }
            }
            $par1ItemStack.$itemFrame = null;
            return;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityItemFrame_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[130];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    if (var$2.$watchedObject !== null) {
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[130];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    var$3 = var$2.$key;
                    if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$8 = (var$2 === null ? null : var$2.$value0).$watchedObject;
        var$2 = new nms_NBTTagCompound;
        var$2.$name = $rt_s(3);
        var$6 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$6.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$5 = var$9.data;
        var$6.$elementData = var$9;
        var$6.$loadFactor = 0.75;
        var$6.$threshold = var$5.length * 0.75 | 0;
        var$2.$tagMap = var$6;
        var$4 = var$8.$itemID << 16 >> 16;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(914);
        var$3.$data2 = var$4;
        ju_HashMap_putImpl(var$6, $rt_s(914), var$3);
        var$4 = var$8.$stackSize << 24 >> 24;
        var$10 = var$2.$tagMap;
        var$6 = new nms_NBTTagByte;
        var$6.$name = $rt_s(915);
        var$6.$data0 = var$4;
        ju_HashMap_putImpl(var$10, $rt_s(915), var$6);
        var$4 = var$8.$itemDamage << 16 >> 16;
        var$10 = var$2.$tagMap;
        var$6 = new nms_NBTTagShort;
        var$6.$name = $rt_s(916);
        var$6.$data2 = var$4;
        ju_HashMap_putImpl(var$10, $rt_s(916), var$6);
        var$3 = var$8.$stackTagCompound;
        if (var$3 !== null) {
            var$10 = var$2.$tagMap;
            var$3.$name = $rt_s(917);
            ju_HashMap_putImpl(var$10, $rt_s(917), var$3);
        }
        var$3 = $par1NBTTagCompound.$tagMap;
        var$2.$name = $rt_s(1343);
        ju_HashMap_putImpl(var$3, $rt_s(1343), var$2);
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[131];
        if (var$10 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$7 = var$10.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$7) {
                    var$6 = var$3.$key;
                    if (var$10 !== var$6 && !(var$10 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$4 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value1 << 24 >> 24;
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(1344);
        var$3.$data0 = var$4;
        ju_HashMap_putImpl(var$6, $rt_s(1344), var$3);
        var$11 = $this.$itemDropChance;
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagFloat;
        var$3.$name = $rt_s(1345);
        var$3.$data5 = var$11;
        ju_HashMap_putImpl(var$6, $rt_s(1345), var$3);
    }
    nms_EntityHanging_writeEntityToNBT($this, $par1NBTTagCompound);
},
nms_EntityItemFrame_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1343).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1343).$nativeString.length)
                    break a;
                $rt_s(1343).$hashCode1 = (31 * $rt_s(1343).$hashCode1 | 0) + $rt_s(1343).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1343).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            b: {
                var$6 = $var2.$key;
                if ($rt_s(1343) !== var$6) {
                    if ($rt_s(1343) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(1343).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagCompound;
        if ($rt_s(1343) !== null)
            $var2.$name = $rt_s(1343);
        else
            $var2.$name = $rt_s(3);
        var$7 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$5 = var$8.data;
        var$7.$elementData = var$8;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$5.length * 0.75 | 0;
        $var2.$tagMap = var$7;
    } else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1343) !== null) {
            c: {
                if (!$rt_s(1343).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1343).$nativeString.length)
                            break c;
                        $rt_s(1343).$hashCode1 = (31 * $rt_s(1343).$hashCode1 | 0) + $rt_s(1343).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(1343).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$9 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$9) {
                    d: {
                        var$6 = $var2.$key;
                        if ($rt_s(1343) !== var$6) {
                            if ($rt_s(1343) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(1343).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    }
    if ($var2 !== null && !($var2.$tagMap.$elementCount ? 0 : 1)) {
        nms_ItemStack_$callClinit();
        var$7 = new nms_ItemStack;
        nms_ItemStack_readFromNBT(var$7, $var2);
        nms_Item_$callClinit();
        if (nms_Item_itemsList.data[var$7.$itemID] === null)
            var$7 = null;
        $var2 = new nms_ItemStack;
        var$3 = var$7.$itemID;
        var$9 = var$7.$stackSize;
        var$4 = var$7.$itemDamage;
        $var2.$itemID = var$3;
        $var2.$stackSize = var$9;
        $var2.$itemDamage = var$4;
        if (var$4 < 0)
            $var2.$itemDamage = 0;
        var$7 = var$7.$stackTagCompound;
        if (var$7 !== null) {
            var$6 = new nms_NBTTagCompound;
            var$10 = var$7.$name;
            if (var$10 === null)
                var$10 = $rt_s(3);
            var$6.$name = var$10;
            var$10 = new ju_HashMap;
            jl_Object__init_(var$10);
            var$3 = ju_HashMap_calculateCapacity(16);
            var$10.$elementCount = 0;
            var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
            var$5 = var$8.data;
            var$10.$elementData = var$8;
            var$10.$loadFactor = 0.75;
            var$10.$threshold = var$5.length * 0.75 | 0;
            var$6.$tagMap = var$10;
            var$10 = var$7.$tagMap;
            if (var$10.$cachedKeySet === null) {
                var$11 = new ju_HashMap$1;
                var$11.$this$0 = var$10;
                var$10.$cachedKeySet = var$11;
            }
            var$10 = var$10.$cachedKeySet.$iterator();
            while (var$10.$hasNext()) {
                var$11 = var$10.$next();
                var$12 = var$7.$tagMap;
                if (var$11 === null) {
                    var$12 = var$12.$elementData.data[0];
                    while (var$12 !== null && var$12.$key !== null) {
                        var$12 = var$12.$next3;
                    }
                } else {
                    e: {
                        if (!var$11.$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= var$11.$nativeString.length)
                                    break e;
                                var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$4 = var$11.$hashCode1;
                    var$5 = var$12.$elementData.data;
                    var$12 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$12 !== null) {
                        if (var$12.$origKeyHash == var$4) {
                            f: {
                                var$13 = var$12.$key;
                                if (var$11 !== var$13) {
                                    if (var$11 === var$13)
                                        var$3 = 1;
                                    else if (!(var$13 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$13 = var$13;
                                        var$3 = var$11.$nativeString !== var$13.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break f;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$12 = var$12.$next3;
                    }
                }
                var$12 = var$12 === null ? null : var$12.$value0;
                var$12 = var$12.$copy();
                var$13 = var$6.$tagMap;
                if (var$11 !== null)
                    var$12.$name = var$11;
                else
                    var$12.$name = $rt_s(3);
                ju_HashMap_putImpl(var$13, var$11, var$12);
            }
            $var2.$stackTagCompound = var$6;
        }
        $var2.$stackSize = 1;
        $var2.$itemFrame = $this;
        var$11 = $this.$dataWatcher;
        var$7 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[130];
        if (var$10 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$4 = var$10.$value;
            var$5 = var$7.$elementData.data;
            var$7 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$4) {
                    var$6 = var$7.$key;
                    if (var$10 !== var$6 && !(var$10 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$6 = var$7 === null ? null : var$7.$value0;
        if (!($var2 !== var$6.$watchedObject ? 0 : 1)) {
            var$6.$watchedObject = $var2;
            var$6.$watched = 1;
            var$11.$objectChanged = 1;
        }
        $var2 = $this.$dataWatcher;
        var$7 = $var2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[130];
        if (var$10 !== null) {
            var$4 = var$10.$value;
            var$5 = var$7.$elementData.data;
            var$7 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$4) {
                    var$6 = var$7.$key;
                    if (var$10 !== var$6 && !(var$10 !== var$6 ? (var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        } else {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        }
        var$7 = var$7 === null ? null : var$7.$value0;
        g: {
            var$7.$watched = 1;
            $var2.$objectChanged = 1;
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1344).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(1344).$nativeString.length)
                        break g;
                    $rt_s(1344).$hashCode1 = (31 * $rt_s(1344).$hashCode1 | 0) + $rt_s(1344).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(1344).$hashCode1;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                h: {
                    var$6 = $var2.$key;
                    if ($rt_s(1344) !== var$6) {
                        if ($rt_s(1344) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(1344).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break h;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1344) !== null) {
                i: {
                    if (!$rt_s(1344).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(1344).$nativeString.length)
                                break i;
                            $rt_s(1344).$hashCode1 = (31 * $rt_s(1344).$hashCode1 | 0) + $rt_s(1344).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(1344).$hashCode1;
                var$5 = $var2.$elementData.data;
                $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$4) {
                        j: {
                            var$6 = $var2.$key;
                            if ($rt_s(1344) !== var$6) {
                                if ($rt_s(1344) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(1344).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break j;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$9 = ($var2 === null ? null : $var2.$value0).$data0;
        } else
            var$9 = 0;
        var$7 = $this.$dataWatcher;
        var$3 = (var$9 % 4 | 0) << 24 >> 24;
        var$11 = jl_Byte_byteCache.data[var$3 + 128 | 0];
        $var2 = var$7.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[131];
        if (var$10 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            var$4 = var$10.$value;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    var$6 = $var2.$key;
                    if (var$10 !== var$6 && !(var$10 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$6 = $var2 === null ? null : $var2.$value0;
        $var2 = var$6.$watchedObject;
        if (!($var2 instanceof jl_Byte && $var2.$value1 == var$11.$value1 ? 1 : 0)) {
            var$6.$watchedObject = var$11;
            var$6.$watched = 1;
            var$7.$objectChanged = 1;
        }
        k: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1345).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(1345).$nativeString.length)
                        break k;
                    $rt_s(1345).$hashCode1 = (31 * $rt_s(1345).$hashCode1 | 0) + $rt_s(1345).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(1345).$hashCode1;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                l: {
                    var$6 = $var2.$key;
                    if ($rt_s(1345) !== var$6) {
                        if ($rt_s(1345) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(1345).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break l;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            m: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1345).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1345).$nativeString.length)
                            break m;
                        $rt_s(1345).$hashCode1 = (31 * $rt_s(1345).$hashCode1 | 0) + $rt_s(1345).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(1345).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    n: {
                        var$6 = $var2.$key;
                        if ($rt_s(1345) !== var$6) {
                            if ($rt_s(1345) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(1345).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break n;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                var$14 = 0.0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1345) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    o: {
                        if (!$rt_s(1345).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(1345).$nativeString.length)
                                    break o;
                                $rt_s(1345).$hashCode1 = (31 * $rt_s(1345).$hashCode1 | 0) + $rt_s(1345).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(1345).$hashCode1;
                    var$5 = $var2.$elementData.data;
                    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$4) {
                            p: {
                                var$6 = $var2.$key;
                                if ($rt_s(1345) !== var$6) {
                                    if ($rt_s(1345) === var$6)
                                        var$3 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$3 = $rt_s(1345).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break p;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                var$14 = ($var2 === null ? null : $var2.$value0).$data5;
            }
            $this.$itemDropChance = var$14;
        }
    }
    nms_EntityHanging_readEntityFromNBT($this, $par1NBTTagCompound);
},
nms_EntityItemFrame_interactFirst = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[130];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    if (var$2.$watchedObject === null) {
        var$2 = $par1EntityPlayer.$inventory0;
        var$7 = var$2.$currentItem;
        var$8 = var$7 < 9 && var$7 >= 0 ? var$2.$mainInventory.data[var$7] : null;
        if (var$8 !== null && !$this.$worldObj.$isRemote) {
            var$9 = new nms_ItemStack;
            var$4 = var$8.$itemID;
            var$7 = var$8.$stackSize;
            var$10 = var$8.$itemDamage;
            nms_ItemStack_$callClinit();
            var$9.$itemID = var$4;
            var$9.$stackSize = var$7;
            var$9.$itemDamage = var$10;
            if (var$10 < 0)
                var$9.$itemDamage = 0;
            var$6 = var$8.$stackTagCompound;
            if (var$6 !== null) {
                var$11 = new nms_NBTTagCompound;
                var$2 = var$6.$name;
                if (var$2 === null)
                    var$2 = $rt_s(3);
                var$11.$name = var$2;
                var$2 = new ju_HashMap;
                jl_Object__init_(var$2);
                var$4 = ju_HashMap_calculateCapacity(16);
                var$2.$elementCount = 0;
                var$12 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                var$5 = var$12.data;
                var$2.$elementData = var$12;
                var$2.$loadFactor = 0.75;
                var$2.$threshold = var$5.length * 0.75 | 0;
                var$11.$tagMap = var$2;
                var$2 = var$6.$tagMap;
                if (var$2.$cachedKeySet === null) {
                    var$3 = new ju_HashMap$1;
                    var$3.$this$0 = var$2;
                    var$2.$cachedKeySet = var$3;
                }
                var$13 = var$2.$cachedKeySet.$iterator();
                while (var$13.$hasNext()) {
                    var$14 = var$13.$next();
                    var$2 = var$6.$tagMap;
                    if (var$14 === null) {
                        var$15 = var$2.$elementData.data[0];
                        while (var$15 !== null && var$15.$key !== null) {
                            var$15 = var$15.$next3;
                        }
                    } else {
                        a: {
                            if (!var$14.$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= var$14.$nativeString.length)
                                        break a;
                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$4 = var$14.$hashCode1;
                        var$5 = var$2.$elementData.data;
                        var$15 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$15 !== null) {
                            if (var$15.$origKeyHash == var$4) {
                                b: {
                                    var$2 = var$15.$key;
                                    if (var$14 !== var$2) {
                                        if (var$14 === var$2)
                                            var$7 = 1;
                                        else if (!(var$2 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            var$2 = var$2;
                                            var$7 = var$14.$nativeString !== var$2.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break b;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            var$15 = var$15.$next3;
                        }
                    }
                    var$2 = var$15 === null ? null : var$15.$value0;
                    var$2 = var$2.$copy();
                    var$3 = var$11.$tagMap;
                    if (var$14 !== null)
                        var$2.$name = var$14;
                    else
                        var$2.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$3, var$14, var$2);
                }
                var$9.$stackTagCompound = var$11;
            }
            var$9.$stackSize = 1;
            var$9.$itemFrame = $this;
            var$11 = $this.$dataWatcher;
            var$2 = var$11.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[130];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$6.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$3 = var$2.$key;
                        if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = var$2 === null ? null : var$2.$value0;
            if (!(var$9 !== var$3.$watchedObject ? 0 : 1)) {
                var$3.$watchedObject = var$9;
                var$3.$watched = 1;
                var$11.$objectChanged = 1;
            }
            var$11 = $this.$dataWatcher;
            var$2 = var$11.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[130];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$6.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$3 = var$2.$key;
                        if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            (var$2 === null ? null : var$2.$value0).$watched = 1;
            var$11.$objectChanged = 1;
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                var$4 = var$8.$stackSize - 1 | 0;
                var$8.$stackSize = var$4;
                if (var$4 <= 0) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    var$4 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    var$5 = $par1EntityPlayer.$mainInventory;
                    var$7 = var$5.data.length;
                    if (var$4 >= var$7) {
                        var$4 = var$4 - var$7 | 0;
                        var$5 = $par1EntityPlayer.$armorInventory;
                    }
                    var$5.data[var$4] = var$2;
                }
            }
        }
    } else if (!$this.$worldObj.$isRemote) {
        $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[131];
        if (var$3 === null) {
            $par1EntityPlayer = $par1EntityPlayer.$elementData.data[0];
            while ($par1EntityPlayer !== null && $par1EntityPlayer.$key !== null) {
                $par1EntityPlayer = $par1EntityPlayer.$next3;
            }
        } else {
            var$10 = var$3.$value;
            var$5 = $par1EntityPlayer.$elementData.data;
            $par1EntityPlayer = var$5[var$10 & (var$5.length - 1 | 0)];
            while ($par1EntityPlayer !== null) {
                if ($par1EntityPlayer.$origKeyHash == var$10) {
                    var$2 = $par1EntityPlayer.$key;
                    if (var$3 !== var$2 && !(var$3 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityPlayer = $par1EntityPlayer.$next3;
            }
        }
        $par1EntityPlayer = $par1EntityPlayer === null ? null : $par1EntityPlayer.$value0;
        var$4 = $par1EntityPlayer.$watchedObject.$value1 + 1 | 0;
        $par1EntityPlayer = $this.$dataWatcher;
        var$4 = (var$4 % 4 | 0) << 24 >> 24;
        var$11 = jl_Byte_byteCache.data[var$4 + 128 | 0];
        var$2 = $par1EntityPlayer.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[131];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$10 = var$6.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$10) {
                    var$3 = var$2.$key;
                    if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = var$2 === null ? null : var$2.$value0;
        var$2 = var$3.$watchedObject;
        if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$11.$value1 ? 1 : 0)) {
            var$3.$watchedObject = var$11;
            var$3.$watched = 1;
            $par1EntityPlayer.$objectChanged = 1;
        }
    }
    return 1;
};
function nms_ItemSeedFood() {
    let a = this; nms_ItemFood.call(a);
    a.$cropId = 0;
    a.$soilId = 0;
}
let nms_ItemSeedFood__init_0 = ($this, $par1, $par2, $par3, $par4, $par5) => {
    nms_Item__init_($this, $par1);
    $this.$itemUseDuration = 32;
    $this.$healAmount = $par2;
    $this.$isWolfsFavoriteMeat = 0;
    $this.$saturationModifier = $par3;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabFood;
    $this.$cropId = $par4;
    $this.$soilId = $par5;
},
nms_ItemSeedFood__init_ = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_ItemSeedFood();
    nms_ItemSeedFood__init_0(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_ItemSeedFood_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7 != 1)
            return 0;
        $var11 = $par2EntityPlayer.$capabilities.$allowEdit;
        if ($var11)
            $par7 = 1;
        else if ($par1ItemStack === null)
            $par7 = 0;
        else {
            nms_Item_$callClinit();
            $par7 = 1;
        }
        if ($par7) {
            $par7 = $par5 + 1 | 0;
            if ($var11)
                $var11 = 1;
            else if ($par1ItemStack === null)
                $var11 = 0;
            else {
                nms_Item_$callClinit();
                $var11 = 1;
            }
            if ($var11) {
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 != $this.$soilId)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par3World, $par4, $par7, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1))
            return 0;
        $par5 = $this.$cropId;
        $var11 = 0;
        var$12 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par3World, $par4, $par7, $par6, $par5, $var11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, $ptr);
},
nms_ItemEmptyMap = $rt_classWithoutFields(nms_ItemMapBase),
nms_ItemEmptyMap__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
},
nms_ItemEmptyMap__init_ = var_0 => {
    let var_1 = new nms_ItemEmptyMap();
    nms_ItemEmptyMap__init_0(var_1, var_0);
    return var_1;
},
nms_ItemEmptyMap_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let $var4, var$5, var$6, $var6, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$5 = nms_Item_map;
        var$6 = 1;
        $var6 = $rt_s(575);
        var$8 = $par2World.$mapStorage;
        $ptr = 1;
    case 1:
        $tmp = nms_MapStorage_getUniqueDataId(var$8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_ItemStack_$callClinit();
        $var4.$itemID = var$5.$itemID0;
        $var4.$stackSize = var$6;
        $var4.$itemDamage = var$9;
        if (var$9 < 0)
            $var4.$itemDamage = 0;
        var$6 = $var4.$itemDamage;
        var$8 = new jl_StringBuilder;
        var$8.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1327));
        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$6, 10);
        var$5 = new jl_String;
        var$10 = var$8.$buffer;
        var$11 = var$10.data;
        var$9 = var$8.$length0;
        var$6 = var$11.length;
        if (var$9 >= 0 && var$9 <= (var$6 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$10.data, 0, var$9);
            $var6 = new nms_MapData;
            $var6.$mapName = var$5;
            $var6.$colors = $rt_createByteArray(16384);
            var$8 = new ju_ArrayList;
            var$8.$array = $rt_createArray(jl_Object, 10);
            $var6.$playersArrayList = var$8;
            var$8 = new ju_HashMap;
            var$12 = ju_HashMap_calculateCapacity(16);
            var$8.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$12);
            var$10 = var$11.data;
            var$8.$elementData = var$11;
            var$8.$loadFactor = 0.75;
            var$8.$threshold = var$10.length * 0.75 | 0;
            $var6.$playersHashMap = var$8;
            $var6.$playersVisibleOnMap = ju_LinkedHashMap__init_();
            nms_World_setItemData($par2World, var$5, $var6);
            $var6.$scale0 = 0;
            var$13 = $par3EntityPlayer.$posX / 128.0;
            $var6.$xCenter = Long_lo(Long_mul(Long_fromNumber(var$13 + jl_Math_sign(var$13) * 0.5), Long_fromInt(128)));
            var$14 = $par3EntityPlayer.$posZ / 128.0;
            $var6.$zCenter = Long_lo(Long_mul(Long_fromNumber(var$14 + jl_Math_sign(var$14) * 0.5), Long_fromInt(128)));
            $var6.$dimension0 = $par2World.$provider.$dimensionId << 24 >> 24;
            $var6.$dirty = 1;
            var$12 = $par1ItemStack.$stackSize - 1 | 0;
            $par1ItemStack.$stackSize = var$12;
            if (var$12 <= 0)
                return $var4;
            var$15 = $par3EntityPlayer.$inventory0;
            var$16 = new nms_ItemStack;
            var$12 = $var4.$itemID;
            var$9 = $var4.$stackSize;
            var$6 = $var4.$itemDamage;
            var$16.$itemID = var$12;
            var$16.$stackSize = var$9;
            var$16.$itemDamage = var$6;
            if (var$6 < 0)
                var$16.$itemDamage = 0;
            var$5 = $var4.$stackTagCompound;
            if (var$5 !== null) {
                $var6 = new nms_NBTTagCompound;
                $par2World = var$5.$name;
                if ($par2World === null)
                    $par2World = $rt_s(3);
                $var6.$name = $par2World;
                $par2World = new ju_HashMap;
                var$12 = ju_HashMap_calculateCapacity(16);
                $par2World.$elementCount = 0;
                var$10 = $rt_createArray(ju_HashMap$HashEntry, var$12);
                var$11 = var$10.data;
                $par2World.$elementData = var$10;
                $par2World.$loadFactor = 0.75;
                $par2World.$threshold = var$11.length * 0.75 | 0;
                $var6.$tagMap = $par2World;
                var$8 = var$5.$tagMap;
                if (var$8.$cachedKeySet === null) {
                    $par2World = new ju_HashMap$1;
                    $par2World.$this$0 = var$8;
                    var$8.$cachedKeySet = $par2World;
                }
                var$17 = var$8.$cachedKeySet.$iterator();
                while (var$17.$hasNext()) {
                    var$18 = var$17.$next();
                    $par2World = var$5.$tagMap;
                    if (var$18 === null) {
                        var$19 = $par2World.$elementData.data[0];
                        while (var$19 !== null && var$19.$key !== null) {
                            var$19 = var$19.$next3;
                        }
                    } else {
                        a: {
                            if (!var$18.$hashCode1) {
                                var$12 = 0;
                                while (true) {
                                    if (var$12 >= var$18.$nativeString.length)
                                        break a;
                                    var$18.$hashCode1 = (31 * var$18.$hashCode1 | 0) + var$18.$nativeString.charCodeAt(var$12) | 0;
                                    var$12 = var$12 + 1 | 0;
                                }
                            }
                        }
                        var$9 = var$18.$hashCode1;
                        var$10 = $par2World.$elementData.data;
                        var$19 = var$10[var$9 & (var$10.length - 1 | 0)];
                        while (var$19 !== null) {
                            if (var$19.$origKeyHash == var$9) {
                                b: {
                                    $par2World = var$19.$key;
                                    if (var$18 !== $par2World) {
                                        if (var$18 === $par2World)
                                            var$12 = 1;
                                        else if (!($par2World instanceof jl_String))
                                            var$12 = 0;
                                        else {
                                            $par2World = $par2World;
                                            var$12 = var$18.$nativeString !== $par2World.$nativeString ? 0 : 1;
                                        }
                                        if (!var$12) {
                                            var$12 = 0;
                                            break b;
                                        }
                                    }
                                    var$12 = 1;
                                }
                                if (var$12)
                                    break;
                            }
                            var$19 = var$19.$next3;
                        }
                    }
                    $par2World = var$19 === null ? null : var$19.$value0;
                    $par2World = $par2World.$copy();
                    var$8 = $var6.$tagMap;
                    if (var$18 !== null)
                        $par2World.$name = var$18;
                    else
                        $par2World.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$8, var$18, $par2World);
                }
                var$16.$stackTagCompound = $var6;
            }
            if (nms_InventoryPlayer_addItemStackToInventory(var$15, var$16))
                return $par1ItemStack;
            var$12 = 0;
            $ptr = 2;
            continue main;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par3EntityPlayer, $var4, var$12);
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, $var4, var$5, var$6, $var6, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_ItemSkull = $rt_classWithoutFields(nms_Item),
nms_ItemSkull_skullTypes = null,
nms_ItemSkull_field_94587_a = null,
nms_ItemSkull__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabDecorations;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemSkull__init_0 = var_0 => {
    let var_1 = new nms_ItemSkull();
    nms_ItemSkull__init_(var_1, var_0);
    return var_1;
},
nms_ItemSkull_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let var$11, var$12, var$13, $var11, var$15, $var12, $var13, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();var$15 = $thread.pop();$var11 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this =
        $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par7)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11) {
            nms_Material_$callClinit();
            var$12 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$12 = nms_Block_blocksList.data[var$11].$blockMaterial;
        }
        if (!var$12.$isSolid())
            return 0;
        var$13 = $rt_compare($par7, 1);
        if (!var$13)
            $par5 = $par5 + 1 | 0;
        if ($par7 == 2)
            $par6 = $par6 + (-1) | 0;
        if ($par7 == 3)
            $par6 = $par6 + 1 | 0;
        if ($par7 == 4)
            $par4 = $par4 + (-1) | 0;
        if ($par7 == 5)
            $par4 = $par4 + 1 | 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            var$11 = 1;
        else if ($par1ItemStack === null)
            var$11 = 0;
        else {
            nms_Item_$callClinit();
            var$11 = 1;
        }
        if (!var$11)
            return 0;
        nms_Block_$callClinit();
        var$12 = nms_Block_skull;
        $ptr = 2;
    case 2:
        $tmp = var$12.$canPlaceBlockAt($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11)
            return 0;
        $var11 = nms_Block_skull.$blockID;
        var$11 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par3World, $par4, $par5, $par6, $var11, $par7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 0;
        if (!var$13) {
            var$15 = $par2EntityPlayer.$rotationYaw * 16.0 / 360.0 + 0.5;
            $par7 = var$15 | 0;
            if (var$15 < $par7)
                $par7 = $par7 - 1 | 0;
            $var11 = $par7 & 15;
        }
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockTileEntity($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 !== null && $var12 instanceof nms_TileEntitySkull) {
            $var13 = $rt_s(3);
            $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
            if ($par2EntityPlayer === null ? 0 : 1) {
                a: {
                    $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                    if (!$rt_s(1346).$hashCode1) {
                        $par7 = 0;
                        while (true) {
                            if ($par7 >= $rt_s(1346).$nativeString.length)
                                break a;
                            $rt_s(1346).$hashCode1 = (31 * $rt_s(1346).$hashCode1 | 0) + $rt_s(1346).$nativeString.charCodeAt($par7) | 0;
                            $par7 = $par7 + 1 | 0;
                        }
                    }
                }
                var$13 = $rt_s(1346).$hashCode1;
                var$18 = $par2EntityPlayer.$elementData.data;
                $par2EntityPlayer = var$18[var$13 & (var$18.length - 1 | 0)];
                while ($par2EntityPlayer !== null) {
                    if ($par2EntityPlayer.$origKeyHash == var$13) {
                        b: {
                            var$12 = $par2EntityPlayer.$key;
                            if ($rt_s(1346) !== var$12) {
                                if ($rt_s(1346) === var$12)
                                    $par7 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $par7 = 0;
                                else {
                                    var$12 = var$12;
                                    $par7 = $rt_s(1346).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$par7) {
                                    $par7 = 0;
                                    break b;
                                }
                            }
                            $par7 = 1;
                        }
                        if ($par7)
                            break;
                    }
                    $par2EntityPlayer = $par2EntityPlayer.$next3;
                }
                if ($par2EntityPlayer === null ? 0 : 1) {
                    c: {
                        var$19 = $par1ItemStack.$stackTagCompound;
                        $par2EntityPlayer = var$19.$tagMap;
                        if (!$rt_s(1346).$hashCode1) {
                            var$13 = 0;
                            while (true) {
                                if (var$13 >= $rt_s(1346).$nativeString.length)
                                    break c;
                                $rt_s(1346).$hashCode1 = (31 * $rt_s(1346).$hashCode1 | 0) + $rt_s(1346).$nativeString.charCodeAt(var$13) | 0;
                                var$13 = var$13 + 1 | 0;
                            }
                        }
                    }
                    $par7 = $rt_s(1346).$hashCode1;
                    var$18 = $par2EntityPlayer.$elementData.data;
                    var$20 = var$18[$par7 & (var$18.length - 1 | 0)];
                    while (var$20 !== null) {
                        if (var$20.$origKeyHash == $par7) {
                            d: {
                                $par2EntityPlayer = var$20.$key;
                                if ($rt_s(1346) !== $par2EntityPlayer) {
                                    if ($rt_s(1346) === $par2EntityPlayer)
                                        var$11 = 1;
                                    else if (!($par2EntityPlayer instanceof jl_String))
                                        var$11 = 0;
                                    else {
                                        var$12 = $par2EntityPlayer;
                                        var$11 = $rt_s(1346).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$11) {
                                        var$11 = 0;
                                        break d;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        var$20 = var$20.$next3;
                    }
                    if (!(var$20 === null ? 0 : 1))
                        $var13 = $rt_s(3);
                    else {
                        $par2EntityPlayer = var$19.$tagMap;
                        if ($rt_s(1346) === null) {
                            var$19 = $par2EntityPlayer.$elementData.data[0];
                            while (var$19 !== null && var$19.$key !== null) {
                                var$19 = var$19.$next3;
                            }
                        } else {
                            e: {
                                if (!$rt_s(1346).$hashCode1) {
                                    $par7 = 0;
                                    while (true) {
                                        if ($par7 >= $rt_s(1346).$nativeString.length)
                                            break e;
                                        $rt_s(1346).$hashCode1 = (31 * $rt_s(1346).$hashCode1 | 0) + $rt_s(1346).$nativeString.charCodeAt($par7) | 0;
                                        $par7 = $par7 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1346).$hashCode1;
                            var$18 = $par2EntityPlayer.$elementData.data;
                            var$19 = var$18[var$11 & (var$18.length - 1 | 0)];
                            while (var$19 !== null) {
                                if (var$19.$origKeyHash == var$11) {
                                    f: {
                                        $par2EntityPlayer = var$19.$key;
                                        if ($rt_s(1346) !== $par2EntityPlayer) {
                                            if ($rt_s(1346) === $par2EntityPlayer)
                                                $par7 = 1;
                                            else if (!($par2EntityPlayer instanceof jl_String))
                                                $par7 = 0;
                                            else {
                                                $par2EntityPlayer = $par2EntityPlayer;
                                                $par7 = $rt_s(1346).$nativeString !== $par2EntityPlayer.$nativeString ? 0 : 1;
                                            }
                                            if (!$par7) {
                                                $par7 = 0;
                                                break f;
                                            }
                                        }
                                        $par7 = 1;
                                    }
                                    if ($par7)
                                        break;
                                }
                                var$19 = var$19.$next3;
                            }
                        }
                        $var13 = (var$19 === null ? null : var$19.$value0).$data1;
                    }
                }
            }
            $par2EntityPlayer = $var12;
            $par2EntityPlayer.$skullType = $par1ItemStack.$itemDamage;
            $par2EntityPlayer.$extraType = $var13;
            $par2EntityPlayer.$skullRotation = $var11;
            var$12 = nms_Block_skull;
            $ptr = 5;
            continue main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    case 5:
        nms_BlockSkull_makeWither(var$12, $par3World, $par4, $par5, $par6, $par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, var$11, var$12, var$13, $var11, var$15, $var12, $var13, var$18, var$19, var$20, $ptr);
},
nms_ItemSkull_getUnlocalizedName = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $var2 = $par1ItemStack.$itemDamage;
    if (!($var2 >= 0 && $var2 < nms_ItemSkull_skullTypes.data.length))
        $var2 = 0;
    $par1ItemStack = $this.$unlocalizedName;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(399));
    var$4 = var$3.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$3 = nms_ItemSkull_skullTypes.data[$var2];
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $par1ItemStack);
        var$4 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
        var$9.$buffer.data[var$4] = 46;
        $var2 = var$9.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, $var2, var$3);
        $par1ItemStack = new jl_String;
        var$5 = var$9.$buffer;
        var$6 = var$5.data;
        var$4 = var$9.$length0;
        var$7 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
            $par1ItemStack.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
            return $par1ItemStack;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_ItemSkull_getItemDisplayName = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        if ($par1ItemStack.$itemDamage == 3) {
            var$2 = $par1ItemStack.$stackTagCompound;
            if (var$2 === null ? 0 : 1) {
                b: {
                    var$2 = var$2.$tagMap;
                    if (!$rt_s(1346).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(1346).$nativeString.length)
                                break b;
                            $rt_s(1346).$hashCode1 = (31 * $rt_s(1346).$hashCode1 | 0) + $rt_s(1346).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(1346).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        c: {
                            var$6 = var$2.$key;
                            if ($rt_s(1346) !== var$6) {
                                if ($rt_s(1346) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(1346).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break c;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (var$2 === null ? 0 : 1) {
                    d: {
                        var$5 = $rt_createArray(jl_Object, 1);
                        var$6 = $par1ItemStack.$stackTagCompound;
                        $par1ItemStack = var$6.$tagMap;
                        if (!$rt_s(1346).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(1346).$nativeString.length)
                                    break d;
                                $rt_s(1346).$hashCode1 = (31 * $rt_s(1346).$hashCode1 | 0) + $rt_s(1346).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(1346).$hashCode1;
                    var$8 = $par1ItemStack.$elementData.data;
                    $par1ItemStack = var$8[var$4 & (var$8.length - 1 | 0)];
                    while ($par1ItemStack !== null) {
                        if ($par1ItemStack.$origKeyHash == var$4) {
                            e: {
                                var$2 = $par1ItemStack.$key;
                                if ($rt_s(1346) !== var$2) {
                                    if ($rt_s(1346) === var$2)
                                        var$7 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        var$2 = var$2;
                                        var$7 = $rt_s(1346).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break e;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $par1ItemStack = $par1ItemStack.$next3;
                    }
                    if (!($par1ItemStack === null ? 0 : 1))
                        $par1ItemStack = $rt_s(3);
                    else {
                        $par1ItemStack = var$6.$tagMap;
                        if ($rt_s(1346) === null) {
                            var$6 = $par1ItemStack.$elementData.data[0];
                            while (var$6 !== null && var$6.$key !== null) {
                                var$6 = var$6.$next3;
                            }
                        } else {
                            f: {
                                if (!$rt_s(1346).$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $rt_s(1346).$nativeString.length)
                                            break f;
                                        $rt_s(1346).$hashCode1 = (31 * $rt_s(1346).$hashCode1 | 0) + $rt_s(1346).$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$4 = $rt_s(1346).$hashCode1;
                            var$8 = $par1ItemStack.$elementData.data;
                            var$6 = var$8[var$4 & (var$8.length - 1 | 0)];
                            while (var$6 !== null) {
                                if (var$6.$origKeyHash == var$4) {
                                    g: {
                                        $par1ItemStack = var$6.$key;
                                        if ($rt_s(1346) !== $par1ItemStack) {
                                            if ($rt_s(1346) === $par1ItemStack)
                                                var$7 = 1;
                                            else if (!($par1ItemStack instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                $par1ItemStack = $par1ItemStack;
                                                var$7 = $rt_s(1346).$nativeString !== $par1ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break g;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$6 = var$6.$next3;
                            }
                        }
                        $par1ItemStack = (var$6 === null ? null : var$6.$value0).$data1;
                    }
                    var$5.data[0] = $par1ItemStack;
                    nms_StatCollector_$callClinit();
                    $par1ItemStack = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1347), var$5);
                    break a;
                }
            }
        }
        $par1ItemStack = nms_ItemSkull_getUnlocalizedName($this, $par1ItemStack);
        if ($par1ItemStack === null)
            var$9 = $rt_s(3);
        else {
            nms_StatCollector_$callClinit();
            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $par1ItemStack);
        }
        $par1ItemStack = new jl_StringBuilder;
        $par1ItemStack.$buffer = $rt_createCharArray(16);
        var$3 = $par1ItemStack.$length0;
        if (var$9 === null)
            var$9 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par1ItemStack, var$3, var$9);
        jl_AbstractStringBuilder_insert($par1ItemStack, $par1ItemStack.$length0, $rt_s(400));
        var$9 = new jl_String;
        var$5 = $par1ItemStack.$buffer;
        var$8 = var$5.data;
        var$7 = $par1ItemStack.$length0;
        var$4 = var$8.length;
        if (var$7 >= 0 && var$7 <= (var$4 - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            nms_StatCollector_$callClinit();
            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$9);
            $par1ItemStack = new jl_StringBuilder;
            $par1ItemStack.$buffer = $rt_createCharArray(16);
            var$3 = $par1ItemStack.$length0;
            if (var$9 === null)
                var$9 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par1ItemStack, var$3, var$9);
            var$9 = new jl_String;
            var$5 = $par1ItemStack.$buffer;
            var$8 = var$5.data;
            var$7 = $par1ItemStack.$length0;
            var$4 = var$8.length;
            if (var$7 >= 0 && var$7 <= (var$4 - 0 | 0)) {
                var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                $par1ItemStack = jl_String_trim(var$9);
                break a;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    return $par1ItemStack;
},
nms_ItemSkull__clinit_ = () => {
    nms_ItemSkull_skullTypes = $rt_wrapArray(jl_String, [$rt_s(1348), $rt_s(1349), $rt_s(1350), $rt_s(1351), $rt_s(1352)]);
    nms_ItemSkull_field_94587_a = $rt_wrapArray(jl_String, [$rt_s(1348), $rt_s(1349), $rt_s(1350), $rt_s(1353), $rt_s(1352)]);
},
nms_ItemCarrotOnAStick = $rt_classWithoutFields(nms_Item),
nms_ItemCarrotOnAStick__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTransport;
    $this.$maxStackSize = 1;
    $this.$maxDamage = 25;
},
nms_ItemCarrotOnAStick__init_ = var_0 => {
    let var_1 = new nms_ItemCarrotOnAStick();
    nms_ItemCarrotOnAStick__init_0(var_1, var_0);
    return var_1;
},
nms_ItemCarrotOnAStick_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, $var4, var$6, var$7, var$8, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2World = $par3EntityPlayer.$ridingEntity;
        var$4 = $par2World === null ? 0 : 1;
        if (var$4 && $par2World instanceof nms_EntityPig) {
            $var4 = $par2World.$aiControlledByPlayer;
            if (!$var4.$speedBoosted && $var4.$currentSpeed > $var4.$maxSpeed * 0.30000001192092896 ? 1 : 0) {
                nms_Item_$callClinit();
                if ((nms_Item_itemsList.data[$par1ItemStack.$itemID].$maxDamage - $par1ItemStack.$itemDamage | 0) >= 7) {
                    $var4.$speedBoosted = 1;
                    $var4.$speedBoostTime = 0;
                    $par2World = $var4.$thisEntity.$rand;
                    var$6 = Long_and(Long_add(Long_mul($par2World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2World.$seed = var$6;
                    var$7 = Long_lo(Long_shru(var$6, 17));
                    while (true) {
                        var$8 = var$7 % 841 | 0;
                        if (((var$7 - var$8 | 0) + 840 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul($par2World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2World.$seed = var$6;
                        var$7 = Long_lo(Long_shru(var$6, 17));
                    }
                    $var4.$maxSpeedBoostTime = var$8 + 140 | 0;
                    var$4 = 7;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return $par1ItemStack;
    case 1:
        nms_ItemStack_damageItem($par1ItemStack, var$4, $par3EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1ItemStack.$stackSize)
            return $par1ItemStack;
        $var5 = new nms_ItemStack;
        $var5.$itemID = nms_Item_fishingRod.$itemID0;
        $var5.$stackSize = 1;
        $var5.$itemDamage = 0;
        $var5.$stackTagCompound = $par1ItemStack.$stackTagCompound;
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, $var4, var$6, var$7, var$8, $var5, $ptr);
},
nms_ItemSimpleFoiled = $rt_classWithoutFields(nms_Item),
nms_ItemSimpleFoiled__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
},
nms_ItemSimpleFoiled__init_0 = var_0 => {
    let var_1 = new nms_ItemSimpleFoiled();
    nms_ItemSimpleFoiled__init_(var_1, var_0);
    return var_1;
},
nms_ItemFirework = $rt_classWithoutFields(nms_Item),
nms_ItemFirework__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
},
nms_ItemFirework__init_0 = var_0 => {
    let var_1 = new nms_ItemFirework();
    nms_ItemFirework__init_(var_1, var_0);
    return var_1;
},
nms_ItemFirework_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3World.$isRemote)
            return 0;
        $var11 = new nms_EntityFireworkRocket;
        var$12 = $par4 + $par8;
        var$13 = $par5 + $par9;
        var$14 = $par6 + $par10;
        $ptr = 1;
    case 1:
        nms_EntityFireworkRocket__init_($var11, $par3World, var$12, var$13, var$14, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par3World, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par2EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, var$13, var$14, $ptr);
},
nms_ItemFireworkCharge = $rt_classWithoutFields(nms_Item),
nms_ItemFireworkCharge__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
},
nms_ItemFireworkCharge__init_ = var_0 => {
    let var_1 = new nms_ItemFireworkCharge();
    nms_ItemFireworkCharge__init_0(var_1, var_0);
    return var_1;
},
nms_ItemEnchantedBook = $rt_classWithoutFields(nms_Item),
nms_ItemEnchantedBook__init_ = ($this, $par1) => {
    nms_Item__init_($this, $par1);
},
nms_ItemEnchantedBook__init_0 = var_0 => {
    let var_1 = new nms_ItemEnchantedBook();
    nms_ItemEnchantedBook__init_(var_1, var_0);
    return var_1;
},
nms_ItemEnchantedBook_isItemTool = ($this, $par1ItemStack) => {
    return 0;
},
nms_ItemEnchantedBook_addEnchantment = ($this, $par1ItemStack, $par2EnchantmentData) => {
    let $var7, $var4, var$5, var$6, $var6, $var3, $var5, var$10, var$11, var$12, var$13, var$14;
    a: {
        $var7 = $par1ItemStack.$stackTagCompound;
        if ($var7 !== null) {
            b: {
                $var7 = $var7.$tagMap;
                if (!$rt_s(1354).$hashCode1) {
                    $var4 = 0;
                    while (true) {
                        if ($var4 >= $rt_s(1354).$nativeString.length)
                            break b;
                        $rt_s(1354).$hashCode1 = (31 * $rt_s(1354).$hashCode1 | 0) + $rt_s(1354).$nativeString.charCodeAt($var4) | 0;
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            var$5 = $rt_s(1354).$hashCode1;
            var$6 = $var7.$elementData.data;
            $var7 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$5) {
                    c: {
                        $var6 = $var7.$key;
                        if ($rt_s(1354) !== $var6) {
                            if ($rt_s(1354) !== $var6) {
                                if ($var6 instanceof jl_String) {
                                    $var6 = $var6;
                                    $var4 = $rt_s(1354).$nativeString !== $var6.$nativeString ? 0 : 1;
                                } else
                                    $var4 = 0;
                            } else
                                $var4 = 1;
                            if (!$var4) {
                                $var4 = 0;
                                break c;
                            }
                        }
                        $var4 = 1;
                    }
                    if ($var4)
                        break;
                }
                $var7 = $var7.$next3;
            }
            if ($var7 === null ? 0 : 1) {
                d: {
                    $var7 = $par1ItemStack.$stackTagCompound.$tagMap;
                    if (!$rt_s(1354).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(1354).$nativeString.length)
                                break d;
                            $rt_s(1354).$hashCode1 = (31 * $rt_s(1354).$hashCode1 | 0) + $rt_s(1354).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(1354).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$5 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$5) {
                        e: {
                            $var6 = $var7.$key;
                            if ($rt_s(1354) !== $var6) {
                                if ($rt_s(1354) !== $var6) {
                                    if ($var6 instanceof jl_String) {
                                        $var6 = $var6;
                                        $var4 = $rt_s(1354).$nativeString !== $var6.$nativeString ? 0 : 1;
                                    } else
                                        $var4 = 0;
                                } else
                                    $var4 = 1;
                                if (!$var4) {
                                    $var4 = 0;
                                    break e;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                $var3 = $var7 === null ? null : $var7.$value0;
                break a;
            }
        }
        $var3 = new nms_NBTTagList;
        $var3.$name = $rt_s(3);
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $var3.$tagList = $var7;
    }
    $var4 = 1;
    $var5 = 0;
    f: {
        while (true) {
            $var7 = $var3.$tagList;
            var$10 = $rt_compare($var5, $var7.$size0);
            if (var$10 >= 0)
                break f;
            if ($var5 < 0)
                break;
            if (var$10 >= 0)
                break;
            g: {
                $var6 = $var7.$array.data[$var5];
                $var7 = $var6.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$10 = 0;
                    while (true) {
                        if (var$10 >= $rt_s(914).$nativeString.length)
                            break g;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$10) | 0;
                        var$10 = var$10 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(914).$hashCode1;
            var$6 = $var7.$elementData.data;
            var$11 = var$6[var$10 & (var$6.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$10) {
                    h: {
                        $var7 = var$11.$key;
                        if ($rt_s(914) !== $var7) {
                            if ($rt_s(914) === $var7)
                                var$5 = 1;
                            else if (!($var7 instanceof jl_String))
                                var$5 = 0;
                            else {
                                var$12 = $var7;
                                var$5 = $rt_s(914).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break h;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (!(var$11 === null ? 0 : 1))
                var$5 = 0;
            else {
                $var7 = $var6.$tagMap;
                if ($rt_s(914) === null) {
                    var$11 = $var7.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    i: {
                        if (!$rt_s(914).$hashCode1) {
                            var$10 = 0;
                            while (true) {
                                if (var$10 >= $rt_s(914).$nativeString.length)
                                    break i;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$10) | 0;
                                var$10 = var$10 + 1 | 0;
                            }
                        }
                    }
                    var$5 = $rt_s(914).$hashCode1;
                    var$6 = $var7.$elementData.data;
                    var$11 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$5) {
                            j: {
                                $var7 = var$11.$key;
                                if ($rt_s(914) !== $var7) {
                                    if ($rt_s(914) === $var7)
                                        var$10 = 1;
                                    else if (!($var7 instanceof jl_String))
                                        var$10 = 0;
                                    else {
                                        $var7 = $var7;
                                        var$10 = $rt_s(914).$nativeString !== $var7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$10) {
                                        var$10 = 0;
                                        break j;
                                    }
                                }
                                var$10 = 1;
                            }
                            if (var$10)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                var$5 = (var$11 === null ? null : var$11.$value0).$data2;
            }
            if (var$5 == $par2EnchantmentData.$enchantmentobj.$effectId) {
                k: {
                    var$12 = $var6.$tagMap;
                    if (!$rt_s(921).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(921).$nativeString.length)
                                break k;
                            $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(921).$hashCode1;
                var$6 = var$12.$elementData.data;
                var$12 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$5) {
                        l: {
                            var$13 = var$12.$key;
                            if ($rt_s(921) !== var$13) {
                                if ($rt_s(921) === var$13)
                                    $var4 = 1;
                                else if (!(var$13 instanceof jl_String))
                                    $var4 = 0;
                                else {
                                    var$13 = var$13;
                                    $var4 = $rt_s(921).$nativeString !== var$13.$nativeString ? 0 : 1;
                                }
                                if (!$var4) {
                                    $var4 = 0;
                                    break l;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                if (!(var$12 === null ? 0 : 1))
                    var$10 = 0;
                else {
                    var$12 = $var6.$tagMap;
                    if ($rt_s(921) === null) {
                        var$12 = var$12.$elementData.data[0];
                        while (var$12 !== null && var$12.$key !== null) {
                            var$12 = var$12.$next3;
                        }
                    } else {
                        m: {
                            if (!$rt_s(921).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(921).$nativeString.length)
                                        break m;
                                    $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$5 = $rt_s(921).$hashCode1;
                        var$6 = var$12.$elementData.data;
                        var$12 = var$6[var$5 & (var$6.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == var$5) {
                                n: {
                                    var$13 = var$12.$key;
                                    if ($rt_s(921) !== var$13) {
                                        if ($rt_s(921) === var$13)
                                            $var4 = 1;
                                        else if (!(var$13 instanceof jl_String))
                                            $var4 = 0;
                                        else {
                                            var$13 = var$13;
                                            $var4 = $rt_s(921).$nativeString !== var$13.$nativeString ? 0 : 1;
                                        }
                                        if (!$var4) {
                                            $var4 = 0;
                                            break n;
                                        }
                                    }
                                    $var4 = 1;
                                }
                                if ($var4)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                    }
                    var$10 = (var$12 === null ? null : var$12.$value0).$data2;
                }
                $var4 = $par2EnchantmentData.$enchantmentLevel;
                if (var$10 < $var4) {
                    $var4 = $var4 << 16 >> 16;
                    $var6 = $var6.$tagMap;
                    var$12 = new nms_NBTTagShort;
                    var$12.$name = $rt_s(921);
                    var$12.$data2 = $var4;
                    ju_HashMap_putImpl($var6, $rt_s(921), var$12);
                }
                $var4 = 0;
                break f;
            }
            $var5 = $var5 + 1 | 0;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    }
    if ($var4) {
        $var7 = new nms_NBTTagCompound;
        $var7.$name = $rt_s(3);
        var$12 = new ju_HashMap;
        $var4 = ju_HashMap_calculateCapacity(16);
        var$12.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, $var4);
        var$14 = var$6.data;
        var$12.$elementData = var$6;
        var$12.$loadFactor = 0.75;
        var$12.$threshold = var$14.length * 0.75 | 0;
        $var7.$tagMap = var$12;
        $var4 = $par2EnchantmentData.$enchantmentobj.$effectId << 16 >> 16;
        var$13 = new nms_NBTTagShort;
        var$13.$name = $rt_s(914);
        var$13.$data2 = $var4;
        ju_HashMap_putImpl(var$12, $rt_s(914), var$13);
        $var4 = $par2EnchantmentData.$enchantmentLevel << 16 >> 16;
        $var6 = $var7.$tagMap;
        $par2EnchantmentData = new nms_NBTTagShort;
        $par2EnchantmentData.$name = $rt_s(921);
        $par2EnchantmentData.$data2 = $var4;
        ju_HashMap_putImpl($var6, $rt_s(921), $par2EnchantmentData);
        $var3.$tagType = 10;
        $par2EnchantmentData = $var3.$tagList;
        ju_ArrayList_ensureCapacity($par2EnchantmentData, $par2EnchantmentData.$size0 + 1 | 0);
        var$6 = $par2EnchantmentData.$array.data;
        var$10 = $par2EnchantmentData.$size0;
        $par2EnchantmentData.$size0 = var$10 + 1 | 0;
        var$6[var$10] = $var7;
        $par2EnchantmentData.$modCount = $par2EnchantmentData.$modCount + 1 | 0;
    }
    if (!($par1ItemStack.$stackTagCompound === null ? 0 : 1)) {
        $par2EnchantmentData = new nms_NBTTagCompound;
        $par2EnchantmentData.$name = $rt_s(3);
        $var7 = new ju_HashMap;
        $var4 = ju_HashMap_calculateCapacity(16);
        $var7.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, $var4);
        var$14 = var$6.data;
        $var7.$elementData = var$6;
        $var7.$loadFactor = 0.75;
        $var7.$threshold = var$14.length * 0.75 | 0;
        $par2EnchantmentData.$tagMap = $var7;
        $par1ItemStack.$stackTagCompound = $par2EnchantmentData;
    }
    $par2EnchantmentData = $par1ItemStack.$stackTagCompound.$tagMap;
    $var3.$name = $rt_s(1354);
    ju_HashMap_putImpl($par2EnchantmentData, $rt_s(1354), $var3);
},
nms_ItemEnchantedBook_getEnchantedItemStack = ($this, $par1EnchantmentData) => {
    let $var2;
    $var2 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    $var2.$itemID = $this.$itemID0;
    $var2.$stackSize = 1;
    $var2.$itemDamage = 0;
    nms_ItemEnchantedBook_addEnchantment($this, $var2, $par1EnchantmentData);
    return $var2;
},
nms_ItemEnchantedBook_func_92114_b = ($this, $par1Random) => {
    return nms_ItemEnchantedBook_func_92112_a($this, $par1Random, 1, 1, 1);
},
nms_ItemEnchantedBook_func_92112_a = ($this, $par1Random, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $var7, var$9, var$10, $var5, $var6, var$13;
    nms_Enchantment_$callClinit();
    var$5 = nms_Enchantment_enchantmentsBookList.data;
    var$6 = var$5.length;
    var$7 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$7;
    $var7 = Long_lo(Long_shru(var$7, 17));
    var$9 = var$6 - 1 | 0;
    if (!(var$6 & var$9))
        var$10 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$6), Long_fromInt($var7)), 31));
    else
        while (true) {
            var$10 = $var7 % var$6 | 0;
            if ((($var7 - var$10 | 0) + var$9 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Random.$seed = var$7;
            $var7 = Long_lo(Long_shru(var$7, 17));
        }
    $var5 = var$5[var$10];
    $var6 = new nms_ItemStack;
    $var7 = $this.$itemID0;
    nms_ItemStack_$callClinit();
    $var6.$itemID = $var7;
    $var6.$stackSize = 1;
    $var6.$itemDamage = 0;
    $var7 = 1;
    var$10 = $var5.$getMaxLevel();
    if ($var7 < var$10) {
        var$9 = (var$10 - $var7 | 0) + 1 | 0;
        var$7 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$7;
        var$13 = Long_lo(Long_shru(var$7, 17));
        var$10 = var$9 - 1 | 0;
        if (!(var$9 & var$10))
            var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$13)), 31));
        else
            while (true) {
                var$6 = var$13 % var$9 | 0;
                if (((var$13 - var$6 | 0) + var$10 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1Random.$seed = var$7;
                var$13 = Long_lo(Long_shru(var$7, 17));
            }
        $var7 = var$6 + $var7 | 0;
    }
    $par1Random = new nms_EnchantmentData;
    $par1Random.$itemWeight = $var5.$weight;
    $par1Random.$enchantmentobj = $var5;
    $par1Random.$enchantmentLevel = $var7;
    nms_ItemEnchantedBook_addEnchantment($this, $var6, $par1Random);
    $par1Random = new nms_WeightedRandomChestContent;
    $par1Random.$itemWeight = $par4;
    $par1Random.$theItemId = $var6;
    $par1Random.$theMinimumChanceToGenerateItem = $par2;
    $par1Random.$theMaximumChanceToGenerateItem = $par3;
    return $par1Random;
},
nms_ItemLeash = $rt_classWithoutFields(nms_Item),
nms_ItemLeash__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTools;
},
nms_ItemLeash__init_ = var_0 => {
    let var_1 = new nms_ItemLeash();
    nms_ItemLeash__init_0(var_1, var_0);
    return var_1;
},
nms_ItemLeash_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        var$12 = nms_Block_blocksList.data;
        if (var$12[$var11] !== null && var$12[$var11].$getRenderType() == 11) {
            if ($par3World.$isRemote)
                return 1;
            $ptr = 2;
            continue main;
        }
        return 0;
    case 2:
        nms_ItemLeash_func_135066_a($par2EntityPlayer, $par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, var$12, $ptr);
},
nms_ItemLeash_func_135066_a = ($par0EntityPlayer, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var9, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var7, $var10$index, $var11, var$21, var$22, var$23, var$24, $var10$index_0, var$26, var$27, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var10$index_0 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();$var10$index = $thread.pop();$var7 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();$var6
        = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$par0EntityPlayer = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLeashKnot_getKnotForBlock($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = 0;
        $var9 = $rt_cls(nms_EntityLiving);
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par2;
        var$11 = var$10 - 7.0;
        var$12 = $par3;
        var$13 = var$12 - 7.0;
        var$14 = $par4;
        var$15 = var$14 - 7.0;
        var$16 = var$10 + 7.0;
        var$17 = var$12 + 7.0;
        $var7 = var$14 + 7.0;
        $var10$index = var$9.$nextPoolIndex;
        $var11 = var$9.$listAABB;
        var$21 = $var11.$size0;
        var$22 = $rt_compare($var10$index, var$21);
        if (var$22 >= 0) {
            var$23 = new nms_AxisAlignedBB;
            var$23.$minX0 = var$11;
            var$23.$minY0 = var$13;
            var$23.$minZ0 = var$15;
            var$23.$maxX0 = var$16;
            var$23.$maxY = var$17;
            var$23.$maxZ0 = $var7;
            ju_ArrayList_ensureCapacity($var11, var$21 + 1 | 0);
            var$24 = $var11.$array.data;
            $var10$index = $var11.$size0;
            $var11.$size0 = $var10$index + 1 | 0;
            var$24[$var10$index] = var$23;
            $var11.$modCount = $var11.$modCount + 1 | 0;
        } else if ($var10$index >= 0 && var$22 < 0) {
            var$23 = $var11.$array.data[$var10$index];
            var$23.$minX0 = var$11;
            var$23.$minY0 = var$13;
            var$23.$minZ0 = var$15;
            var$23.$maxX0 = var$16;
            var$23.$maxY = var$17;
            var$23.$maxZ0 = $var7;
        } else {
            $par0EntityPlayer = new jl_IndexOutOfBoundsException;
            $par0EntityPlayer.$suppressionEnabled = 1;
            $par0EntityPlayer.$writableStackTrace = 1;
            $rt_throw($par0EntityPlayer);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $var11 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, $var9, var$23, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 !== null) {
            $var10$index_0 = 0;
            var$22 = $var9.$modCount;
            var$26 = $var9.$size();
            var$10 = var$10 + 0.5;
            var$12 = var$12 + 0.5;
            var$14 = var$14 + 0.5;
            while ($var10$index_0 >= var$26 ? 0 : 1) {
                if (var$22 < $var9.$modCount) {
                    $par0EntityPlayer = new ju_ConcurrentModificationException;
                    $par0EntityPlayer.$suppressionEnabled = 1;
                    $par0EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par0EntityPlayer);
                }
                $var10$index = $var10$index_0 + 1 | 0;
                $var11 = $var9.$get($var10$index_0);
                if ($var11.$isLeashed && $var11.$leashedToEntity === $par0EntityPlayer) {
                    if ($var5 !== null) {
                        var$21 = 1;
                        $ptr = 5;
                        continue main;
                    }
                    $var5 = new nms_EntityLeashKnot;
                    nms_Entity__init_($var5, $par1World);
                    $var5.$yOffset = 0.0;
                    var$27 = 0.5;
                    var$28 = 0.5;
                    $ptr = 3;
                    continue main;
                }
                $var10$index_0 = $var10$index;
            }
        }
        return $var6;
    case 3:
        nms_Entity_setSize($var5, var$27, var$28);
        if ($rt_suspending()) {
            break main;
        }
        $var5.$xPosition1 = $par2;
        $var5.$yPosition0 = $par3;
        $var5.$zPosition1 = $par4;
        nms_Entity_setPosition($var5, var$10, var$12, var$14);
        $var5.$forceSpawn = 1;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par1World, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = 1;
        $ptr = 5;
    case 5:
        nms_EntityLiving_setLeashedToEntity($var11, $var5, var$21);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 1;
        while (true) {
            $var10$index_0 = $var10$index;
            if (!($var10$index_0 >= var$26 ? 0 : 1))
                break;
            if (var$22 < $var9.$modCount) {
                $par0EntityPlayer = new ju_ConcurrentModificationException;
                $par0EntityPlayer.$suppressionEnabled = 1;
                $par0EntityPlayer.$writableStackTrace = 1;
                $rt_throw($par0EntityPlayer);
            }
            $var10$index = $var10$index_0 + 1 | 0;
            $var11 = $var9.$get($var10$index_0);
            if (!$var11.$isLeashed)
                continue;
            if ($var11.$leashedToEntity === $par0EntityPlayer) {
                if ($var5 !== null) {
                    var$21 = 1;
                    continue main;
                }
                $var5 = new nms_EntityLeashKnot;
                nms_Entity__init_($var5, $par1World);
                $var5.$yOffset = 0.0;
                var$27 = 0.5;
                var$28 = 0.5;
                $ptr = 3;
                continue main;
            }
        }
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0EntityPlayer, $par1World, $par2, $par3, $par4, $var5, $var6, $var9, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var7, $var10$index, $var11, var$21, var$22, var$23, var$24, $var10$index_0, var$26, var$27, var$28, $ptr);
},
nms_ItemNameTag = $rt_classWithoutFields(nms_Item),
nms_ItemNameTag__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabTools;
},
nms_ItemNameTag__init_ = var_0 => {
    let var_1 = new nms_ItemNameTag();
    nms_ItemNameTag__init_0(var_1, var_0);
    return var_1;
},
nms_ItemNameTag_itemInteractionForEntity = ($this, $par1ItemStack, $par2EntityPlayer, $par3EntityLivingBase) => {
    let $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    $var4 = $par1ItemStack.$stackTagCompound;
    if ($var4 !== null) {
        a: {
            $var4 = $var4.$tagMap;
            if (!$rt_s(918).$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= $rt_s(918).$nativeString.length)
                        break a;
                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = $rt_s(918).$hashCode1;
        var$7 = $var4.$elementData.data;
        $var4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$6) {
                b: {
                    var$8 = $var4.$key;
                    if ($rt_s(918) !== var$8) {
                        if ($rt_s(918) !== var$8) {
                            if (var$8 instanceof jl_String) {
                                var$8 = var$8;
                                var$5 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                            } else
                                var$5 = 0;
                        } else
                            var$5 = 1;
                        if (!var$5) {
                            var$5 = 0;
                            break b;
                        }
                    }
                    var$5 = 1;
                }
                if (var$5)
                    break;
            }
            $var4 = $var4.$next3;
        }
        if ($var4 === null ? 0 : 1) {
            c: {
                $par2EntityPlayer = $par1ItemStack.$stackTagCompound;
                var$8 = $par2EntityPlayer.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(918).$nativeString.length)
                            break c;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$6) {
                    d: {
                        var$9 = var$8.$key;
                        if ($rt_s(918) !== var$9) {
                            if ($rt_s(918) !== var$9) {
                                if (var$9 instanceof jl_String) {
                                    var$9 = var$9;
                                    var$5 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                                } else
                                    var$5 = 0;
                            } else
                                var$5 = 1;
                            if (!var$5) {
                                var$5 = 0;
                                break d;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (var$8 === null ? 0 : 1) {
                $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                if ($rt_s(918) !== null) {
                    e: {
                        if (!$rt_s(918).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(918).$nativeString.length)
                                    break e;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(918).$hashCode1;
                    var$7 = $par2EntityPlayer.$elementData.data;
                    $par2EntityPlayer = var$7[var$6 & (var$7.length - 1 | 0)];
                    while ($par2EntityPlayer !== null) {
                        if ($par2EntityPlayer.$origKeyHash == var$6) {
                            f: {
                                var$8 = $par2EntityPlayer.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) !== var$8) {
                                        if (var$8 instanceof jl_String) {
                                            var$8 = var$8;
                                            var$5 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                        } else
                                            var$5 = 0;
                                    } else
                                        var$5 = 1;
                                    if (!var$5) {
                                        var$5 = 0;
                                        break f;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        $par2EntityPlayer = $par2EntityPlayer.$next3;
                    }
                } else {
                    $par2EntityPlayer = $par2EntityPlayer.$elementData.data[0];
                    while ($par2EntityPlayer !== null && $par2EntityPlayer.$key !== null) {
                        $par2EntityPlayer = $par2EntityPlayer.$next3;
                    }
                }
                $par2EntityPlayer = $par2EntityPlayer === null ? null : $par2EntityPlayer.$value0;
            } else {
                $par2EntityPlayer = new nms_NBTTagCompound;
                if ($rt_s(918) !== null)
                    $par2EntityPlayer.$name = $rt_s(918);
                else
                    $par2EntityPlayer.$name = $rt_s(3);
                $var4 = new ju_HashMap;
                var$5 = ju_HashMap_calculateCapacity(16);
                $var4.$elementCount = 0;
                var$10 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                var$7 = var$10.data;
                $var4.$elementData = var$10;
                $var4.$loadFactor = 0.75;
                $var4.$threshold = var$7.length * 0.75 | 0;
                $par2EntityPlayer.$tagMap = $var4;
            }
            g: {
                $par2EntityPlayer = $par2EntityPlayer.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(919).$nativeString.length)
                            break g;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(919).$hashCode1;
            var$7 = $par2EntityPlayer.$elementData.data;
            $par2EntityPlayer = var$7[var$6 & (var$7.length - 1 | 0)];
            while ($par2EntityPlayer !== null) {
                if ($par2EntityPlayer.$origKeyHash == var$6) {
                    h: {
                        var$8 = $par2EntityPlayer.$key;
                        if ($rt_s(919) !== var$8) {
                            if ($rt_s(919) === var$8)
                                var$5 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$5 = 0;
                            else {
                                var$8 = var$8;
                                var$5 = $rt_s(919).$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break h;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $par2EntityPlayer = $par2EntityPlayer.$next3;
            }
            var$5 = $par2EntityPlayer === null ? 0 : 1;
        } else
            var$5 = 0;
    } else
        var$5 = 0;
    if (!var$5)
        return 0;
    if (!($par3EntityLivingBase instanceof nms_EntityLiving))
        return 0;
    $var4 = $par3EntityLivingBase;
    nms_Item_$callClinit();
    $par2EntityPlayer = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemDisplayName($par1ItemStack);
    $par3EntityLivingBase = $par1ItemStack.$stackTagCompound;
    if ($par3EntityLivingBase !== null) {
        i: {
            $par3EntityLivingBase = $par3EntityLivingBase.$tagMap;
            if (!$rt_s(918).$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= $rt_s(918).$nativeString.length)
                        break i;
                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = $rt_s(918).$hashCode1;
        var$7 = $par3EntityLivingBase.$elementData.data;
        $par3EntityLivingBase = var$7[var$6 & (var$7.length - 1 | 0)];
        while ($par3EntityLivingBase !== null) {
            if ($par3EntityLivingBase.$origKeyHash == var$6) {
                j: {
                    var$8 = $par3EntityLivingBase.$key;
                    if ($rt_s(918) !== var$8) {
                        if ($rt_s(918) === var$8)
                            var$5 = 1;
                        else if (var$8 instanceof jl_String) {
                            var$8 = var$8;
                            var$5 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                        } else
                            var$5 = 0;
                        if (!var$5) {
                            var$5 = 0;
                            break j;
                        }
                    }
                    var$5 = 1;
                }
                if (var$5)
                    break;
            }
            $par3EntityLivingBase = $par3EntityLivingBase.$next3;
        }
        if ($par3EntityLivingBase === null ? 0 : 1) {
            k: {
                var$11 = $par1ItemStack.$stackTagCompound;
                $par3EntityLivingBase = var$11.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(918).$nativeString.length)
                            break k;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(918).$hashCode1;
            var$7 = $par3EntityLivingBase.$elementData.data;
            $par3EntityLivingBase = var$7[var$6 & (var$7.length - 1 | 0)];
            while ($par3EntityLivingBase !== null) {
                if ($par3EntityLivingBase.$origKeyHash == var$6) {
                    l: {
                        var$8 = $par3EntityLivingBase.$key;
                        if ($rt_s(918) !== var$8) {
                            if ($rt_s(918) === var$8)
                                var$5 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$5 = 0;
                            else {
                                var$8 = var$8;
                                var$5 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break l;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $par3EntityLivingBase = $par3EntityLivingBase.$next3;
            }
            if (!($par3EntityLivingBase === null ? 0 : 1)) {
                var$9 = new nms_NBTTagCompound;
                if ($rt_s(918) !== null)
                    var$9.$name = $rt_s(918);
                else
                    var$9.$name = $rt_s(3);
                $par3EntityLivingBase = new ju_HashMap;
                var$5 = ju_HashMap_calculateCapacity(16);
                $par3EntityLivingBase.$elementCount = 0;
                var$10 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                var$7 = var$10.data;
                $par3EntityLivingBase.$elementData = var$10;
                $par3EntityLivingBase.$loadFactor = 0.75;
                $par3EntityLivingBase.$threshold = var$7.length * 0.75 | 0;
                var$9.$tagMap = $par3EntityLivingBase;
            } else {
                $par3EntityLivingBase = var$11.$tagMap;
                if ($rt_s(918) === null) {
                    $par3EntityLivingBase = $par3EntityLivingBase.$elementData.data[0];
                    while ($par3EntityLivingBase !== null && $par3EntityLivingBase.$key !== null) {
                        $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(918).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(918).$nativeString.length)
                                    break m;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(918).$hashCode1;
                    var$7 = $par3EntityLivingBase.$elementData.data;
                    $par3EntityLivingBase = var$7[var$6 & (var$7.length - 1 | 0)];
                    while ($par3EntityLivingBase !== null) {
                        if ($par3EntityLivingBase.$origKeyHash == var$6) {
                            n: {
                                var$8 = $par3EntityLivingBase.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        var$5 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        var$8 = var$8;
                                        var$5 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break n;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                    }
                }
                var$9 = $par3EntityLivingBase === null ? null : $par3EntityLivingBase.$value0;
            }
            o: {
                $par3EntityLivingBase = var$9.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(919).$nativeString.length)
                            break o;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$12 = $rt_s(919).$hashCode1;
            var$7 = $par3EntityLivingBase.$elementData.data;
            var$11 = var$7[var$12 & (var$7.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$12) {
                    p: {
                        $par3EntityLivingBase = var$11.$key;
                        if ($rt_s(919) !== $par3EntityLivingBase) {
                            if ($rt_s(919) === $par3EntityLivingBase)
                                var$5 = 1;
                            else if (!($par3EntityLivingBase instanceof jl_String))
                                var$5 = 0;
                            else {
                                $par3EntityLivingBase = $par3EntityLivingBase;
                                var$5 = $rt_s(919).$nativeString !== $par3EntityLivingBase.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break p;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (var$11 === null ? 0 : 1) {
                q: {
                    $par3EntityLivingBase = var$9.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(919).$nativeString.length)
                                break q;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(919).$hashCode1;
                var$7 = $par3EntityLivingBase.$elementData.data;
                $par3EntityLivingBase = var$7[var$6 & (var$7.length - 1 | 0)];
                while ($par3EntityLivingBase !== null) {
                    if ($par3EntityLivingBase.$origKeyHash == var$6) {
                        r: {
                            var$8 = $par3EntityLivingBase.$key;
                            if ($rt_s(919) !== var$8) {
                                if ($rt_s(919) === var$8)
                                    var$5 = 1;
                                else if (!(var$8 instanceof jl_String))
                                    var$5 = 0;
                                else {
                                    var$8 = var$8;
                                    var$5 = $rt_s(919).$nativeString !== var$8.$nativeString ? 0 : 1;
                                }
                                if (!var$5) {
                                    var$5 = 0;
                                    break r;
                                }
                            }
                            var$5 = 1;
                        }
                        if (var$5)
                            break;
                    }
                    $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                }
                if (!($par3EntityLivingBase === null ? 0 : 1))
                    $par2EntityPlayer = $rt_s(3);
                else {
                    $par3EntityLivingBase = var$9.$tagMap;
                    if ($rt_s(919) === null) {
                        $par3EntityLivingBase = $par3EntityLivingBase.$elementData.data[0];
                        while ($par3EntityLivingBase !== null && $par3EntityLivingBase.$key !== null) {
                            $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                        }
                    } else {
                        s: {
                            if (!$rt_s(919).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(919).$nativeString.length)
                                        break s;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $rt_s(919).$hashCode1;
                        var$7 = $par3EntityLivingBase.$elementData.data;
                        $par3EntityLivingBase = var$7[var$6 & (var$7.length - 1 | 0)];
                        while ($par3EntityLivingBase !== null) {
                            if ($par3EntityLivingBase.$origKeyHash == var$6) {
                                t: {
                                    var$8 = $par3EntityLivingBase.$key;
                                    if ($rt_s(919) !== var$8) {
                                        if ($rt_s(919) === var$8)
                                            var$5 = 1;
                                        else if (!(var$8 instanceof jl_String))
                                            var$5 = 0;
                                        else {
                                            var$8 = var$8;
                                            var$5 = $rt_s(919).$nativeString !== var$8.$nativeString ? 0 : 1;
                                        }
                                        if (!var$5) {
                                            var$5 = 0;
                                            break t;
                                        }
                                    }
                                    var$5 = 1;
                                }
                                if (var$5)
                                    break;
                            }
                            $par3EntityLivingBase = $par3EntityLivingBase.$next3;
                        }
                    }
                    $par2EntityPlayer = ($par3EntityLivingBase === null ? null : $par3EntityLivingBase.$value0).$data1;
                }
            }
        }
    }
    nms_EntityLiving_setCustomNameTag($var4, $par2EntityPlayer);
    $var4.$persistenceRequired = 1;
    $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
    return 1;
};
function nms_ItemRecord() {
    nms_Item.call(this);
    this.$recordName = null;
}
let nms_ItemRecord_records = null,
nms_ItemRecord__init_0 = ($this, $par1, $par2Str) => {
    nms_Item__init_($this, $par1);
    $this.$recordName = $par2Str;
    $this.$maxStackSize = 1;
    nms_CreativeTabs_$callClinit();
    $this.$tabToDisplayOn = nms_CreativeTabs_tabMisc;
    ju_HashMap_putImpl(nms_ItemRecord_records, $par2Str, $this);
},
nms_ItemRecord__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemRecord();
    nms_ItemRecord__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ItemRecord_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        nms_Block_$callClinit();
        if ($par7 != nms_Block_jukebox.$blockID)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if ($par7)
            return 0;
        $par7 = $par3World.$isRemote;
        if ($par7)
            return 1;
        if (!$par7) {
            $ptr = 4;
            continue main;
        }
        $par2EntityPlayer = null;
        $par7 = 1005;
        var$11 = $this.$itemID0;
        $ptr = 3;
    case 3:
        nms_World_playAuxSFXAtEntity($par3World, $par2EntityPlayer, $par7, $par4, $par5, $par6, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    case 4:
        $tmp = nms_World_getBlockTileEntity($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par2EntityPlayer = $tmp;
        $par2EntityPlayer = $par2EntityPlayer;
        if ($par2EntityPlayer === null) {
            $par2EntityPlayer = null;
            $par7 = 1005;
            var$11 = $this.$itemID0;
            $ptr = 3;
            continue main;
        }
        var$12 = new nms_ItemStack;
        $par7 = $par1ItemStack.$itemID;
        var$11 = $par1ItemStack.$stackSize;
        var$13 = $par1ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$12.$itemID = $par7;
        var$12.$stackSize = var$11;
        var$12.$itemDamage = var$13;
        if (var$13 < 0)
            var$12.$itemDamage = 0;
        var$14 = $par1ItemStack.$stackTagCompound;
        if (var$14 !== null) {
            var$15 = new nms_NBTTagCompound;
            var$16 = var$14.$name;
            if (var$16 === null)
                var$16 = $rt_s(3);
            var$15.$name = var$16;
            var$16 = new ju_HashMap;
            jl_Object__init_(var$16);
            $par7 = ju_HashMap_calculateCapacity(16);
            var$16.$elementCount = 0;
            var$17 = $rt_createArray(ju_HashMap$HashEntry, $par7);
            var$18 = var$17.data;
            var$16.$elementData = var$17;
            var$16.$loadFactor = 0.75;
            var$16.$threshold = var$18.length * 0.75 | 0;
            var$15.$tagMap = var$16;
            var$19 = var$14.$tagMap;
            if (var$19.$cachedKeySet === null) {
                var$16 = new ju_HashMap$1;
                var$16.$this$0 = var$19;
                var$19.$cachedKeySet = var$16;
            }
            var$20 = var$19.$cachedKeySet.$iterator();
            while (var$20.$hasNext()) {
                var$21 = var$20.$next();
                var$16 = var$14.$tagMap;
                if (var$21 === null) {
                    var$22 = var$16.$elementData.data[0];
                    while (var$22 !== null && var$22.$key !== null) {
                        var$22 = var$22.$next3;
                    }
                } else {
                    a: {
                        if (!var$21.$hashCode1) {
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$21.$nativeString.length)
                                    break a;
                                var$21.$hashCode1 = (31 * var$21.$hashCode1 | 0) + var$21.$nativeString.charCodeAt(var$11) | 0;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    var$11 = var$21.$hashCode1;
                    var$18 = var$16.$elementData.data;
                    var$22 = var$18[var$11 & (var$18.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == var$11) {
                            b: {
                                var$16 = var$22.$key;
                                if (var$21 !== var$16) {
                                    if (var$21 === var$16)
                                        $par7 = 1;
                                    else if (!(var$16 instanceof jl_String))
                                        $par7 = 0;
                                    else {
                                        var$16 = var$16;
                                        $par7 = var$21.$nativeString !== var$16.$nativeString ? 0 : 1;
                                    }
                                    if (!$par7) {
                                        $par7 = 0;
                                        break b;
                                    }
                                }
                                $par7 = 1;
                            }
                            if ($par7)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                }
                var$16 = var$22 === null ? null : var$22.$value0;
                var$16 = var$16.$copy();
                var$19 = var$15.$tagMap;
                if (var$21 !== null)
                    var$16.$name = var$21;
                else
                    var$16.$name = $rt_s(3);
                ju_HashMap_putImpl(var$19, var$21, var$16);
            }
            var$12.$stackTagCompound = var$15;
        }
        $par2EntityPlayer.$record = var$12;
        $ptr = 5;
    case 5:
        nms_TileEntity_onInventoryChanged($par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = 1;
        var$11 = 2;
        $ptr = 6;
    case 6:
        nms_World_setBlockMetadataWithNotify($par3World, $par4, $par5, $par6, $par7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par2EntityPlayer = null;
        $par7 = 1005;
        var$11 = $this.$itemID0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_ItemRecord__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_ItemRecord_records = var$1;
},
nms_StatList = $rt_classWithoutFields(),
nms_StatList_oneShotStats = null,
nms_StatList_allStats = null,
nms_StatList_generalStats = null,
nms_StatList_itemStats = null,
nms_StatList_objectMineStats = null,
nms_StatList_startGameStat = null,
nms_StatList_createWorldStat = null,
nms_StatList_loadWorldStat = null,
nms_StatList_joinMultiplayerStat = null,
nms_StatList_leaveGameStat = null,
nms_StatList_minutesPlayedStat = null,
nms_StatList_distanceWalkedStat = null,
nms_StatList_distanceSwumStat = null,
nms_StatList_distanceFallenStat = null,
nms_StatList_distanceClimbedStat = null,
nms_StatList_distanceFlownStat = null,
nms_StatList_distanceDoveStat = null,
nms_StatList_distanceByMinecartStat = null,
nms_StatList_distanceByBoatStat = null,
nms_StatList_distanceByPigStat = null,
nms_StatList_jumpStat = null,
nms_StatList_dropStat = null,
nms_StatList_damageDealtStat = null,
nms_StatList_damageTakenStat = null,
nms_StatList_deathsStat = null,
nms_StatList_mobKillsStat = null,
nms_StatList_playerKillsStat = null,
nms_StatList_fishCaughtStat = null,
nms_StatList_mineBlockStatArray = null,
nms_StatList_objectCraftStats = null,
nms_StatList_objectUseStats = null,
nms_StatList_objectBreakStats = null,
nms_StatList_blockStatsInitialized = 0,
nms_StatList_itemStatsInitialized = 0,
nms_StatList_$callClinit = () => {
    nms_StatList_$callClinit = $rt_eraseClinit(nms_StatList);
    nms_StatList__clinit_();
},
nms_StatList__init_ = $this => {
    nms_StatList_$callClinit();
},
nms_StatList__init_0 = () => {
    let var_0 = new nms_StatList();
    nms_StatList__init_(var_0);
    return var_0;
},
nms_StatList_initBreakableStats = () => {
    nms_StatList_$callClinit();
    nms_StatList_objectUseStats = nms_StatList_initUsableStats(nms_StatList_objectUseStats, $rt_s(1355), 16908288, 0, 256);
    nms_StatList_objectBreakStats = nms_StatList_initBreakStats(nms_StatList_objectBreakStats, $rt_s(1356), 16973824, 0, 256);
    nms_StatList_blockStatsInitialized = 1;
    nms_StatList_initCraftableStats();
},
nms_StatList_initStats = () => {
    nms_StatList_$callClinit();
    nms_StatList_objectUseStats = nms_StatList_initUsableStats(nms_StatList_objectUseStats, $rt_s(1355), 16908288, 256, 32000);
    nms_StatList_objectBreakStats = nms_StatList_initBreakStats(nms_StatList_objectBreakStats, $rt_s(1356), 16973824, 256, 32000);
    nms_StatList_itemStatsInitialized = 1;
    nms_StatList_initCraftableStats();
},
nms_StatList_initCraftableStats = () => {
    let $var0, $var4, $var1$index, var$4, var$5, $var3, $var5, var$8, var$9, var$10, var$11, $var2, var$13, $var1$index_0;
    nms_StatList_$callClinit();
    a: {
        b: {
            if (nms_StatList_blockStatsInitialized && nms_StatList_itemStatsInitialized) {
                $var0 = ju_HashSet__init_();
                nms_CraftingManager_$callClinit();
                $var4 = nms_CraftingManager_instance.$recipes;
                $var1$index = 0;
                var$4 = $var4.$modCount;
                var$5 = $var4.$size();
                while (true) {
                    if (!($var1$index >= var$5 ? 0 : 1)) {
                        nms_FurnaceRecipes_$callClinit();
                        $var3 = nms_FurnaceRecipes_smeltingBase.$smeltingList;
                        if ($var3.$cachedValues === null) {
                            $var5 = new ju_HashMap$2;
                            $var5.$this$01 = $var3;
                            $var3.$cachedValues = $var5;
                        }
                        $var5 = $var3.$cachedValues.$iterator();
                        while ($var5.$hasNext()) {
                            var$8 = ($var5.$next()).$itemID;
                            if (var$8 >= (-128) && var$8 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                $var3 = jl_Integer_integerCache.data[var$8 + 128 | 0];
                            } else {
                                $var3 = new jl_Integer;
                                $var3.$value = var$8;
                            }
                            ju_HashMap_putImpl($var0.$backingMap, $var3, $var0);
                        }
                        nms_StatList_objectCraftStats = $rt_createArray(nms_StatBase, 32000);
                        $var5 = $var0.$backingMap;
                        if ($var5.$cachedKeySet === null) {
                            $var3 = new ju_HashMap$1;
                            $var3.$this$0 = $var5;
                            $var5.$cachedKeySet = $var3;
                        }
                        var$9 = $var5.$cachedKeySet.$iterator();
                        while (var$9.$hasNext()) {
                            $var5 = var$9.$next();
                            nms_Item_$callClinit();
                            var$10 = nms_Item_itemsList.data;
                            $var1$index = $var5.$value;
                            if (var$10[$var1$index] !== null) {
                                var$11 = $rt_createArray(jl_Object, 1);
                                $var0 = var$10[$var1$index].$getUnlocalizedName0();
                                $var4 = new jl_StringBuilder;
                                $var4.$buffer = $rt_createCharArray(16);
                                $var1$index = $var4.$length0;
                                if ($var0 === null)
                                    $var0 = $rt_s(1);
                                jl_AbstractStringBuilder_insert($var4, $var1$index, $var0);
                                jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(400));
                                $var2 = new jl_String;
                                var$13 = $var4.$buffer;
                                var$10 = var$13.data;
                                $var1$index_0 = $var4.$length0;
                                var$4 = var$10.length;
                                if ($var1$index_0 < 0)
                                    break a;
                                if ($var1$index_0 > (var$4 - 0 | 0))
                                    break a;
                                var$10 = var$11.data;
                                $var2.$nativeString = $rt_charArrayToString(var$13.data, 0, $var1$index_0);
                                nms_StatCollector_$callClinit();
                                var$10[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $var2);
                                $var3 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(1357), var$11);
                                var$10 = nms_StatList_objectCraftStats.data;
                                $var1$index = $var5.$value;
                                $var5 = new nms_StatCrafting;
                                var$8 = 16842752 + $var1$index | 0;
                                nms_StatBase_$callClinit();
                                $var0 = nms_StatBase_simpleStatType;
                                $var5.$statId = var$8;
                                $var5.$statName = $var3;
                                $var5.$type1 = $var0;
                                $var5.$itemID1 = $var1$index;
                                var$10[$var1$index] = nms_StatBase_registerStat($var5);
                            }
                        }
                        nms_StatList_replaceAllSimilarBlocks(nms_StatList_objectCraftStats);
                        break b;
                    }
                    if (var$4 < $var4.$modCount)
                        break;
                    $var1$index_0 = $var1$index + 1 | 0;
                    $var2 = $var4.$get($var1$index);
                    if ($var2.$getRecipeOutput() !== null) {
                        var$8 = ($var2.$getRecipeOutput()).$itemID;
                        if (var$8 >= (-128) && var$8 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var5 = jl_Integer_integerCache.data[var$8 + 128 | 0];
                        } else {
                            $var5 = new jl_Integer;
                            $var5.$value = var$8;
                        }
                        ju_HashMap_putImpl($var0.$backingMap, $var5, $var0);
                    }
                    $var1$index = $var1$index_0;
                }
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
        }
        return;
    }
    $var5 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($var5);
    $rt_throw($var5);
},
nms_StatList_initMinableStats = ($par0Str, $par1) => {
    let $var2, var$4, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var4, var$14, var$15;
    nms_StatList_$callClinit();
    $var2 = $rt_createArray(nms_StatBase, 256);
    var$4 = $var2.data;
    $var3 = 0;
    a: {
        b: {
            while ($var3 < 256) {
                nms_Block_$callClinit();
                var$6 = nms_Block_blocksList.data;
                if (var$6[$var3] !== null && var$6[$var3].$enableStats) {
                    var$7 = $rt_createArray(jl_Object, 1);
                    var$8 = var$6[$var3].$unlocalizedName0;
                    var$9 = new jl_StringBuilder;
                    var$9.$buffer = $rt_createCharArray(16);
                    jl_StringBuilder_insert0(var$9, var$9.$length0, $rt_s(703));
                    var$10 = var$9.$length0;
                    if (var$8 === null)
                        var$8 = $rt_s(1);
                    jl_StringBuilder_insert0(var$9, var$10, var$8);
                    var$8 = new jl_String;
                    var$6 = var$9.$buffer;
                    var$11 = var$6.data;
                    var$12 = var$9.$length0;
                    var$10 = var$11.length;
                    if (var$12 < 0)
                        break b;
                    if (var$12 > (var$10 - 0 | 0))
                        break b;
                    var$8.$nativeString = $rt_charArrayToString(var$6.data, 0, var$12);
                    $var4 = new jl_StringBuilder;
                    $var4.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var4, $var4.$length0, var$8);
                    jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(400));
                    var$9 = new jl_String;
                    var$6 = $var4.$buffer;
                    var$11 = var$6.data;
                    var$14 = $var4.$length0;
                    var$12 = var$11.length;
                    if (var$14 < 0)
                        break a;
                    if (var$14 > (var$12 - 0 | 0))
                        break a;
                    var$11 = var$7.data;
                    var$9.$nativeString = $rt_charArrayToString(var$6.data, 0, var$14);
                    nms_StatCollector_$callClinit();
                    var$11[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$9);
                    $var4 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par0Str, var$7);
                    var$8 = new nms_StatCrafting;
                    var$15 = $par1 + $var3 | 0;
                    nms_StatBase_$callClinit();
                    var$9 = nms_StatBase_simpleStatType;
                    var$8.$statId = var$15;
                    var$8.$statName = $var4;
                    var$8.$type1 = var$9;
                    var$8.$itemID1 = $var3;
                    var$4[$var3] = nms_StatBase_registerStat(var$8);
                    var$8 = nms_StatList_objectMineStats;
                    var$9 = var$4[$var3];
                    ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
                    var$6 = var$8.$array.data;
                    var$10 = var$8.$size0;
                    var$8.$size0 = var$10 + 1 | 0;
                    var$6[var$10] = var$9;
                    var$8.$modCount = var$8.$modCount + 1 | 0;
                }
                $var3 = $var3 + 1 | 0;
            }
            nms_StatList_replaceAllSimilarBlocks($var2);
            return $var2;
        }
        $par0Str = new jl_IndexOutOfBoundsException;
        jl_Exception__init_($par0Str);
        $rt_throw($par0Str);
    }
    $par0Str = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par0Str);
    $rt_throw($par0Str);
},
nms_StatList_initUsableStats = ($par0ArrayOfStatBase, $par1Str, $par2, $var5, $par4) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var6;
    nms_StatList_$callClinit();
    if ($par0ArrayOfStatBase === null)
        $par0ArrayOfStatBase = $rt_createArray(nms_StatBase, 32000);
    a: {
        while ($var5 < $par4) {
            nms_Item_$callClinit();
            var$6 = nms_Item_itemsList.data;
            if (var$6[$var5] !== null) {
                var$7 = $rt_createArray(jl_Object, 1);
                var$8 = var$6[$var5].$getUnlocalizedName0();
                var$9 = new jl_StringBuilder;
                var$9.$buffer = $rt_createCharArray(16);
                var$10 = var$9.$length0;
                if (var$8 === null)
                    var$8 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$9, var$10, var$8);
                jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(400));
                var$8 = new jl_String;
                var$11 = var$9.$buffer;
                var$6 = var$11.data;
                var$12 = var$9.$length0;
                var$13 = var$6.length;
                if (var$12 < 0)
                    break a;
                if (var$12 > (var$13 - 0 | 0))
                    break a;
                var$14 = $par0ArrayOfStatBase.data;
                var$6 = var$7.data;
                var$8.$nativeString = $rt_charArrayToString(var$11.data, 0, var$12);
                nms_StatCollector_$callClinit();
                var$6[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$8);
                $var6 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par1Str, var$7);
                var$8 = new nms_StatCrafting;
                var$10 = $par2 + $var5 | 0;
                nms_StatBase_$callClinit();
                var$9 = nms_StatBase_simpleStatType;
                var$8.$statId = var$10;
                var$8.$statName = $var6;
                var$8.$type1 = var$9;
                var$8.$itemID1 = $var5;
                var$14[$var5] = nms_StatBase_registerStat(var$8);
                if ($var5 >= 256) {
                    var$8 = nms_StatList_itemStats;
                    var$9 = var$14[$var5];
                    ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
                    var$7 = var$8.$array.data;
                    var$12 = var$8.$size0;
                    var$8.$size0 = var$12 + 1 | 0;
                    var$7[var$12] = var$9;
                    var$8.$modCount = var$8.$modCount + 1 | 0;
                }
            }
            $var5 = $var5 + 1 | 0;
        }
        nms_StatList_replaceAllSimilarBlocks($par0ArrayOfStatBase);
        return $par0ArrayOfStatBase;
    }
    $par1Str = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par1Str);
    $rt_throw($par1Str);
},
nms_StatList_initBreakStats = ($par0ArrayOfStatBase, $par1Str, $par2, $var5, $par4) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var6;
    nms_StatList_$callClinit();
    if ($par0ArrayOfStatBase === null)
        $par0ArrayOfStatBase = $rt_createArray(nms_StatBase, 32000);
    a: {
        while ($var5 < $par4) {
            nms_Item_$callClinit();
            var$6 = nms_Item_itemsList.data;
            if (var$6[$var5] !== null) {
                var$7 = var$6[$var5];
                if (var$7.$maxDamage > 0 && !var$7.$hasSubtypes ? 1 : 0) {
                    var$8 = $rt_createArray(jl_Object, 1);
                    var$9 = var$6[$var5].$getUnlocalizedName0();
                    var$7 = new jl_StringBuilder;
                    var$7.$buffer = $rt_createCharArray(16);
                    var$10 = var$7.$length0;
                    if (var$9 === null)
                        var$9 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$7, var$10, var$9);
                    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(400));
                    var$9 = new jl_String;
                    var$11 = var$7.$buffer;
                    var$6 = var$11.data;
                    var$12 = var$7.$length0;
                    var$13 = var$6.length;
                    if (var$12 < 0)
                        break a;
                    if (var$12 > (var$13 - 0 | 0))
                        break a;
                    var$14 = $par0ArrayOfStatBase.data;
                    var$6 = var$8.data;
                    var$9.$nativeString = $rt_charArrayToString(var$11.data, 0, var$12);
                    nms_StatCollector_$callClinit();
                    var$6[0] = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$9);
                    $var6 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par1Str, var$8);
                    var$7 = new nms_StatCrafting;
                    var$10 = $par2 + $var5 | 0;
                    nms_StatBase_$callClinit();
                    var$9 = nms_StatBase_simpleStatType;
                    var$7.$statId = var$10;
                    var$7.$statName = $var6;
                    var$7.$type1 = var$9;
                    var$7.$itemID1 = $var5;
                    var$14[$var5] = nms_StatBase_registerStat(var$7);
                }
            }
            $var5 = $var5 + 1 | 0;
        }
        nms_StatList_replaceAllSimilarBlocks($par0ArrayOfStatBase);
        return $par0ArrayOfStatBase;
    }
    $par1Str = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par1Str);
    $rt_throw($par1Str);
},
nms_StatList_replaceAllSimilarBlocks = $par0ArrayOfStatBase => {
    let var$2;
    nms_StatList_$callClinit();
    nms_Block_$callClinit();
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_waterStill.$blockID, nms_Block_waterMoving.$blockID);
    var$2 = nms_Block_lavaStill.$blockID;
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, var$2, var$2);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_pumpkinLantern.$blockID, nms_Block_pumpkin.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_furnaceBurning.$blockID, nms_Block_furnaceIdle.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_oreRedstoneGlowing.$blockID, nms_Block_oreRedstone.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_redstoneRepeaterActive.$blockID, nms_Block_redstoneRepeaterIdle.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_torchRedstoneActive.$blockID, nms_Block_torchRedstoneIdle.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_mushroomRed.$blockID, nms_Block_mushroomBrown.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_stoneDoubleSlab.$blockID, nms_Block_stoneSingleSlab.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_woodDoubleSlab.$blockID, nms_Block_woodSingleSlab.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_grass.$blockID, nms_Block_dirt.$blockID);
    nms_StatList_replaceSimilarBlocks($par0ArrayOfStatBase, nms_Block_tilledField.$blockID, nms_Block_dirt.$blockID);
};
let nms_StatList_replaceSimilarBlocks = ($par0ArrayOfStatBase, $par1, $par2) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    nms_StatList_$callClinit();
    $par0ArrayOfStatBase = $par0ArrayOfStatBase.data;
    if ($par0ArrayOfStatBase[$par1] !== null && $par0ArrayOfStatBase[$par2] === null)
        $par0ArrayOfStatBase[$par2] = $par0ArrayOfStatBase[$par1];
    else {
        var$4 = nms_StatList_allStats;
        var$5 = $par0ArrayOfStatBase[$par1];
        var$6 = var$4.$size0;
        var$7 = 0;
        a: {
            while (true) {
                var$8 = $rt_compare(var$7, var$6);
                if (var$8 >= 0) {
                    var$7 = (-1);
                    break a;
                }
                if (var$7 < 0)
                    break;
                if (var$8 >= 0)
                    break;
                var$9 = var$4.$array.data[var$7];
                if (var$5 === var$9 ? 1 : var$5 === null ? (var$9 !== null ? 0 : 1) : var$5 !== var$9 ? 0 : 1)
                    break a;
                var$7 = var$7 + 1 | 0;
            }
            var$9 = new jl_IndexOutOfBoundsException;
            var$9.$suppressionEnabled = 1;
            var$9.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$9);
            $rt_throw(var$9);
        }
        if (var$7 >= 0)
            ju_ArrayList_remove(var$4, var$7);
        var$9 = nms_StatList_objectMineStats;
        var$4 = $par0ArrayOfStatBase[$par1];
        var$7 = var$9.$size0;
        var$6 = 0;
        b: {
            while (true) {
                var$8 = $rt_compare(var$6, var$7);
                if (var$8 >= 0) {
                    var$6 = (-1);
                    break b;
                }
                if (var$6 < 0)
                    break;
                if (var$8 >= 0)
                    break;
                var$5 = var$9.$array.data[var$6];
                if (var$4 === var$5 ? 1 : var$4 === null ? (var$5 !== null ? 0 : 1) : var$4 !== var$5 ? 0 : 1)
                    break b;
                var$6 = var$6 + 1 | 0;
            }
            var$9 = new jl_IndexOutOfBoundsException;
            var$9.$suppressionEnabled = 1;
            var$9.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$9);
            $rt_throw(var$9);
        }
        if (var$6 >= 0)
            ju_ArrayList_remove(var$9, var$6);
        var$9 = nms_StatList_generalStats;
        var$4 = $par0ArrayOfStatBase[$par1];
        var$7 = var$9.$size0;
        var$8 = 0;
        c: {
            while (true) {
                var$6 = $rt_compare(var$8, var$7);
                if (var$6 >= 0) {
                    var$8 = (-1);
                    break c;
                }
                if (var$8 < 0)
                    break;
                if (var$6 >= 0)
                    break;
                var$5 = var$9.$array.data[var$8];
                if (var$4 === var$5 ? 1 : var$4 === null ? (var$5 !== null ? 0 : 1) : var$4 !== var$5 ? 0 : 1)
                    break c;
                var$8 = var$8 + 1 | 0;
            }
            var$9 = new jl_IndexOutOfBoundsException;
            var$9.$suppressionEnabled = 1;
            var$9.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$9);
            $rt_throw(var$9);
        }
        if (var$8 >= 0)
            ju_ArrayList_remove(var$9, var$8);
        $par0ArrayOfStatBase[$par1] = $par0ArrayOfStatBase[$par2];
    }
},
nms_StatList__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_StatList_oneShotStats = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_StatList_allStats = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_StatList_generalStats = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_StatList_itemStats = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_StatList_objectMineStats = var$1;
    var$5 = new nms_StatBasic;
    nms_StatBase_$callClinit();
    var$6 = nms_StatBase_simpleStatType;
    var$5.$statId = 1000;
    var$5.$statName = $rt_s(1358);
    var$5.$type1 = var$6;
    var$5.$isIndependent = 1;
    nms_StatBase_registerStat(var$5);
    nms_StatList_$callClinit();
    var$1 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$4 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$5;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_StatList_startGameStat = var$5;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 1001;
    var$1.$statName = $rt_s(1359);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_createWorldStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 1002;
    var$1.$statName = $rt_s(1360);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_loadWorldStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 1003;
    var$1.$statName = $rt_s(1361);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_joinMultiplayerStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 1004;
    var$1.$statName = $rt_s(1362);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_leaveGameStat = var$1;
    var$5 = new nms_StatBasic;
    var$1 = nms_StatBase_timeStatType;
    var$5.$statId = 1100;
    var$5.$statName = $rt_s(1363);
    var$5.$type1 = var$1;
    var$5.$isIndependent = 1;
    nms_StatBase_registerStat(var$5);
    var$1 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$4 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$5;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    nms_StatList_minutesPlayedStat = var$5;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2000;
    var$1.$statName = $rt_s(1364);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceWalkedStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2001;
    var$1.$statName = $rt_s(1365);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceSwumStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2002;
    var$1.$statName = $rt_s(1366);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceFallenStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2003;
    var$1.$statName = $rt_s(1367);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceClimbedStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2004;
    var$1.$statName = $rt_s(1368);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceFlownStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2005;
    var$1.$statName = $rt_s(1369);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceDoveStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2006;
    var$1.$statName = $rt_s(1370);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceByMinecartStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2007;
    var$1.$statName = $rt_s(1371);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceByBoatStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_distanceStatType;
    var$1.$statId = 2008;
    var$1.$statName = $rt_s(1372);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_distanceByPigStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 2010;
    var$1.$statName = $rt_s(1373);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_jumpStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 2011;
    var$1.$statName = $rt_s(1374);
    var$1.$type1 = var$6;
    var$1.$isIndependent = 1;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_dropStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_field_111202_k;
    var$1.$statId = 2020;
    var$1.$statName = $rt_s(1375);
    var$1.$type1 = var$6;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_damageDealtStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_field_111202_k;
    var$1.$statId = 2021;
    var$1.$statName = $rt_s(1376);
    var$1.$type1 = var$6;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_damageTakenStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 2022;
    var$1.$statName = $rt_s(1377);
    var$1.$type1 = var$6;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_deathsStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 2023;
    var$1.$statName = $rt_s(1378);
    var$1.$type1 = var$6;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_mobKillsStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 2024;
    var$1.$statName = $rt_s(1379);
    var$1.$type1 = var$6;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_playerKillsStat = var$1;
    var$1 = new nms_StatBasic;
    var$6 = nms_StatBase_simpleStatType;
    var$1.$statId = 2025;
    var$1.$statName = $rt_s(1380);
    var$1.$type1 = var$6;
    nms_StatBase_registerStat(var$1);
    var$5 = nms_StatList_generalStats;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$4 = var$5.$array.data;
    var$7 = var$5.$size0;
    var$5.$size0 = var$7 + 1 | 0;
    var$4[var$7] = var$1;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    nms_StatList_fishCaughtStat = var$1;
    nms_StatList_mineBlockStatArray = nms_StatList_initMinableStats($rt_s(1381), 16777216);
    nms_AchievementList_$callClinit();
};
function nms_StepSound() {
    let a = this; jl_Object.call(a);
    a.$stepSoundName = null;
    a.$stepSoundVolume = 0.0;
    a.$stepSoundPitch = 0.0;
}
let nms_StepSound_getVolume = $this => {
    return $this.$stepSoundVolume;
},
nms_StepSound_getPitch = $this => {
    return $this.$stepSoundPitch;
},
nms_StepSound_getBreakSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$stepSoundName;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1382));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_StepSound_getStepSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$stepSoundName;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1383));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_StepSound_getPlaceSound = $this => {
    return $this.$getBreakSound();
},
nms_StepSoundStone = $rt_classWithoutFields(nms_StepSound),
nms_StepSoundStone_getBreakSound = $this => {
    return $rt_s(1384);
},
nms_StepSoundStone_getPlaceSound = $this => {
    return $rt_s(1385);
},
nms_StepSoundSand = $rt_classWithoutFields(nms_StepSound),
nms_StepSoundSand_getBreakSound = $this => {
    return $rt_s(1386);
},
nms_StepSoundAnvil = $rt_classWithoutFields(nms_StepSound),
nms_StepSoundAnvil_getBreakSound = $this => {
    return $rt_s(1387);
},
nms_StepSoundAnvil_getPlaceSound = $this => {
    return $rt_s(1388);
},
nms_BlockStone = $rt_classWithoutFields(nms_Block),
nms_BlockStone_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_cobblestone.$blockID;
},
nms_BlockGrass = $rt_classWithoutFields(nms_Block),
nms_BlockGrass_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var9, $var8, $var7, $var10, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var6 = $par3 + 1 | 0;
        var$7 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, $var6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 >= 4) {
            var$7 = 1;
            $ptr = 2;
            continue main;
        }
        nms_Block_$callClinit();
        var$9 = nms_Block_lightOpacity.data;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, $var6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 >= 9) {
            $var6 = 0;
            var$10 = 17;
            var$11 = 2;
            var$8 = 4;
            if ($var6 < 4) {
                var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                $var9 = Long_lo(Long_shru(var$12, var$10));
                while (true) {
                    $var8 = $var9 % 3 | 0;
                    if ((($var9 - $var8 | 0) + var$11 | 0) >= 0)
                        break;
                    var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$12;
                    $var9 = Long_lo(Long_shru(var$12, var$10));
                }
                $var7 = ($par2 + $var8 | 0) - 1 | 0;
                var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                var$7 = Long_lo(Long_shru(var$12, var$10));
                while (true) {
                    $var9 = var$7 % 5 | 0;
                    if (((var$7 - $var9 | 0) + var$8 | 0) >= 0)
                        break;
                    var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$12;
                    var$7 = Long_lo(Long_shru(var$12, var$10));
                }
                $var8 = ($par3 + $var9 | 0) - 3 | 0;
                var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                var$7 = Long_lo(Long_shru(var$12, var$10));
                while (true) {
                    $var9 = var$7 % 3 | 0;
                    if (((var$7 - $var9 | 0) + var$11 | 0) >= 0)
                        break;
                    var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$12;
                    var$7 = Long_lo(Long_shru(var$12, var$10));
                }
                $var9 = ($par4 + $var9 | 0) - 1 | 0;
                var$7 = $var8 + 1 | 0;
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$9[var$7] <= 2) {
            var$7 = 1;
            $ptr = 2;
            continue main;
        }
        $var6 = nms_Block_dirt.$blockID;
        var$7 = 0;
        var$8 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var7, var$7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $tmp;
        nms_Block_$callClinit();
        if (var$17 == nms_Block_dirt.$blockID) {
            var$17 = 1;
            $ptr = 7;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 4)
            return;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        $var9 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var8 = $var9 % 3 | 0;
            if ((($var9 - $var8 | 0) + var$11 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            $var9 = Long_lo(Long_shru(var$12, var$10));
        }
        $var7 = ($par2 + $var8 | 0) - 1 | 0;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        var$7 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var9 = var$7 % 5 | 0;
            if (((var$7 - $var9 | 0) + var$8 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            var$7 = Long_lo(Long_shru(var$12, var$10));
        }
        $var8 = ($par3 + $var9 | 0) - 3 | 0;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        var$7 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var9 = var$7 % 3 | 0;
            if (((var$7 - $var9 | 0) + var$11 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            var$7 = Long_lo(Long_shru(var$12, var$10));
        }
        $var9 = ($par4 + $var9 | 0) - 1 | 0;
        var$7 = $var8 + 1 | 0;
        $ptr = 5;
        continue main;
    case 7:
        $tmp = nms_World_getBlockLightValue_do($par1World, $var7, var$7, $var9, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 >= 4 && nms_Block_lightOpacity.data[$var10] <= 2) {
            var$7 = nms_Block_grass.$blockID;
            $var10 = 0;
            var$17 = 3;
            $ptr = 8;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 4)
            return;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        $var9 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var8 = $var9 % 3 | 0;
            if ((($var9 - $var8 | 0) + var$11 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            $var9 = Long_lo(Long_shru(var$12, var$10));
        }
        $var7 = ($par2 + $var8 | 0) - 1 | 0;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        var$7 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var9 = var$7 % 5 | 0;
            if (((var$7 - $var9 | 0) + var$8 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            var$7 = Long_lo(Long_shru(var$12, var$10));
        }
        $var8 = ($par3 + $var9 | 0) - 3 | 0;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        var$7 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var9 = var$7 % 3 | 0;
            if (((var$7 - $var9 | 0) + var$11 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            var$7 = Long_lo(Long_shru(var$12, var$10));
        }
        $var9 = ($par4 + $var9 | 0) - 1 | 0;
        var$7 = $var8 + 1 | 0;
        $ptr = 5;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $var7, $var8, $var9, var$7, $var10, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 4)
            return;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        $var9 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var8 = $var9 % 3 | 0;
            if ((($var9 - $var8 | 0) + var$11 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            $var9 = Long_lo(Long_shru(var$12, var$10));
        }
        $var7 = ($par2 + $var8 | 0) - 1 | 0;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        var$7 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var9 = var$7 % 5 | 0;
            if (((var$7 - $var9 | 0) + var$8 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            var$7 = Long_lo(Long_shru(var$12, var$10));
        }
        $var8 = ($par3 + $var9 | 0) - 3 | 0;
        var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$12;
        var$7 = Long_lo(Long_shru(var$12, var$10));
        while (true) {
            $var9 = var$7 % 3 | 0;
            if (((var$7 - $var9 | 0) + var$11 | 0) >= 0)
                break;
            var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$12;
            var$7 = Long_lo(Long_shru(var$12, var$10));
        }
        $var9 = ($par4 + $var9 | 0) - 1 | 0;
        var$7 = $var8 + 1 | 0;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var9, $var8, $var7, $var10, var$17, $ptr);
},
nms_BlockGrass_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_dirt.$idDropped(0, $par2Random, $par3);
},
nms_BlockDirt = $rt_classWithoutFields(nms_Block),
nms_BlockWood = $rt_classWithoutFields(nms_Block),
nms_BlockWood_woodType = null,
nms_BlockWood_damageDropped = ($this, $par1) => {
    return $par1;
},
nms_BlockWood__clinit_ = () => {
    nms_BlockWood_woodType = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
},
nms_BlockFlower = $rt_classWithoutFields(nms_Block),
nms_BlockFlower__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockFlower__init_ = var_0 => {
    let var_1 = new nms_BlockFlower();
    nms_BlockFlower__init_0(var_1, var_0);
    return var_1;
},
nms_BlockFlower_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable) {
                    var$5 = 0;
                    break a;
                }
            }
            var$5 = 1;
        }
        if (!var$5)
            return 0;
        $par3 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$this.$canThisPlantGrowOnThisBlockID($par2) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockFlower_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_grass.$blockID && $par1 != nms_Block_dirt.$blockID && $par1 != nms_Block_tilledField.$blockID ? 0 : 1;
},
nms_BlockFlower_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$canBlockStay($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        $this.$dropBlockAsItemWithChance($par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$8 = 0;
        $par5 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockFlower_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$canBlockStay($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = 0;
        var$8 = 1.0;
        $ptr = 3;
    case 3:
        $this.$dropBlockAsItemWithChance($par1World, $par2, $par3, $par4, var$6, var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = 0;
        var$9 = 0;
        var$6 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$9, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, $ptr);
},
nms_BlockFlower_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getFullBlockLightValue($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 < 8) {
            $ptr = 3;
            continue main;
        }
        $par3 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$this.$canThisPlantGrowOnThisBlockID($par2) ? 0 : 1;
    case 3:
        $tmp = nms_World_canBlockSeeTheSky($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6)
            return 0;
        $par3 = $par3 - 1 | 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockFlower_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockFlower_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFlower_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFlower_getRenderType = $this => {
    return 1;
},
nms_BlockSapling = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockSapling_WOOD_TYPES = null,
nms_BlockSapling_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getFullBlockLightValue($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 < 8) {
            $ptr = 3;
            continue main;
        }
        var$6 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        if (!(!(var$7 != nms_Block_grass.$blockID && var$7 != nms_Block_dirt.$blockID && var$7 != nms_Block_tilledField.$blockID ? 0 : 1) ? 0 : 1)) {
            $ptr = 5;
            continue main;
        }
        var$6 = $par3 + 1 | 0;
        var$7 = 1;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_canBlockSeeTheSky($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            var$6 = $par3 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if (!0) {
            $ptr = 5;
            continue main;
        }
        var$6 = $par3 + 1 | 0;
        var$7 = 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, var$6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 >= 9) {
            var$8 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$8;
            var$9 = Long_lo(Long_shru(var$8, 17));
            while (true) {
                var$10 = var$9 % 7 | 0;
                if (((var$9 - var$10 | 0) + 6 | 0) >= 0)
                    break;
                var$8 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$8;
                var$9 = Long_lo(Long_shru(var$8, 17));
            }
            if (!var$10) {
                $ptr = 8;
                continue main;
            }
        }
        return;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = 0;
        var$11 = 1.0;
        $ptr = 6;
    case 6:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$6, var$11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$7 = 0;
        var$9 = 2;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $par3 + 1 | 0;
        var$7 = 1;
        $ptr = 4;
        continue main;
    case 8:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 & 8) {
            $ptr = 9;
            continue main;
        }
        var$6 = var$6 | 8;
        var$7 = 4;
        $ptr = 10;
        continue main;
    case 9:
        nms_BlockSapling_growTree($this, $par1World, $par2, $par3, $par4, $par5Random);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockSapling_growTree = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var8, $var6, $var7, $var9, $var10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var6 = $var8 & 3;
        $var7 = null;
        $var8 = 0;
        $var9 = 0;
        $var10 = 0;
        if ($var6 == 1) {
            $var7 = new nms_WorldGenTaiga2;
            $var7.$doBlockNotify = 1;
        } else if ($var6 == 2) {
            $var7 = new nms_WorldGenForest;
            $var7.$doBlockNotify = 1;
        } else if ($var6 != 3) {
            $var7 = new nms_WorldGenTrees;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = 4;
            $var7.$metaWood = 0;
            $var7.$metaLeaves = 0;
            $var7.$vinesGrow = 0;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$13 = var$12 % 10 | 0;
                if (((var$12 - var$13 | 0) + 9 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, 17));
            }
            if (!var$13)
                $var7 = nms_WorldGenBigTree__init_(1);
        } else {
            $var8 = 0;
            var$14 = 17;
            var$13 = 19;
            a: {
                while ($var8 >= (-1)) {
                    $var9 = 0;
                    if ($var9 >= (-1)) {
                        var$15 = $par2 + $var8 | 0;
                        var$16 = $par4 + $var9 | 0;
                        var$17 = 3;
                        $ptr = 13;
                        continue main;
                    }
                    if ($var7 !== null)
                        break a;
                    $var8 = $var8 + (-1) | 0;
                }
            }
            if ($var7 === null) {
                $var9 = 0;
                $var8 = 0;
                $var7 = new nms_WorldGenTrees;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
                while (true) {
                    var$13 = var$12 % 7 | 0;
                    if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$14));
                }
                var$12 = 4 + var$13 | 0;
                $var7.$doBlockNotify = 1;
                $var7.$minTreeHeight = var$12;
                $var7.$metaWood = 3;
                $var7.$metaLeaves = 3;
                $var7.$vinesGrow = 0;
            }
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$18, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $par2 + $var8 | 0;
        $var9 = $par4 + $var9 | 0;
        $ptr = 7;
        continue main;
    case 3:
        nms_World_setBlock($par1World, var$18, $par3, var$12, var$13, var$17, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$18 + 1 | 0;
        var$17 = 0;
        var$14 = 0;
        var$19 = 4;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, var$13, $par3, var$12, var$17, var$14, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$12 + 1 | 0;
        var$17 = 0;
        var$14 = 0;
        var$19 = 4;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, var$18, $par3, var$12, var$17, var$14, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 6;
    case 6:
        nms_World_setBlock($par1World, var$13, $par3, var$12, var$18, var$17, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $par2 + $var8 | 0;
        $var9 = $par4 + $var9 | 0;
        $ptr = 7;
    case 7:
        $tmp = $var7.$generate($par1World, $par5Random, $var8, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18)
            return;
        if (!$var10) {
            $var8 = $this.$blockID;
            $var9 = 4;
            $ptr = 8;
            continue main;
        }
        $par2 = $this.$blockID;
        $par4 = 4;
        $ptr = 9;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, $var6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        nms_World_setBlock($par1World, $var8, $par3, $var9, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $var8 + 1 | 0;
        $par4 = $this.$blockID;
        var$18 = 4;
        $ptr = 10;
    case 10:
        nms_World_setBlock($par1World, $par2, $par3, $var9, $par4, $var6, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $var9 + 1 | 0;
        $var9 = $this.$blockID;
        var$18 = 4;
        $ptr = 11;
    case 11:
        nms_World_setBlock($par1World, $var8, $par3, $par4, $var9, $var6, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $this.$blockID;
        $var9 = 4;
        $ptr = 12;
    case 12:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, $var6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 13:
        $tmp = nms_World_getBlockId($par1World, var$15, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18 == $this.$blockID) {
            $ptr = 14;
            continue main;
        }
        if (0) {
            var$17 = var$15 + 1 | 0;
            var$19 = 3;
            $ptr = 15;
            continue main;
        }
        $var9 = $var9 + (-1) | 0;
        b: {
            while (true) {
                if ($var9 >= (-1)) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    continue main;
                }
                if ($var7 !== null)
                    break b;
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break;
                $var9 = 0;
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 14:
        $tmp = nms_World_getBlockMetadata($par1World, var$15, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if ((var$18 & 3) != var$17 ? 0 : 1) {
            var$17 = var$15 + 1 | 0;
            var$19 = 3;
            $ptr = 15;
            continue main;
        }
        $var9 = $var9 + (-1) | 0;
        c: {
            while (true) {
                if ($var9 >= (-1)) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
                if ($var7 !== null)
                    break c;
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break;
                $var9 = 0;
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId($par1World, var$17, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18 == $this.$blockID) {
            $ptr = 16;
            continue main;
        }
        if (0) {
            var$19 = var$16 + 1 | 0;
            var$16 = 3;
            $ptr = 17;
            continue main;
        }
        $var9 = $var9 + (-1) | 0;
        b: {
            while (true) {
                if ($var9 >= (-1)) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
                if ($var7 !== null)
                    break b;
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break;
                $var9 = 0;
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 16:
        $tmp = nms_World_getBlockMetadata($par1World, var$17, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if ((var$18 & 3) != var$19 ? 0 : 1) {
            var$19 = var$16 + 1 | 0;
            var$16 = 3;
            $ptr = 17;
            continue main;
        }
        $var9 = $var9 + (-1) | 0;
        c: {
            while (true) {
                if ($var9 >= (-1)) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
                if ($var7 !== null)
                    break c;
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break;
                $var9 = 0;
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($par1World, var$15, $par3, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18 == $this.$blockID) {
            $ptr = 18;
            continue main;
        }
        if (0) {
            var$16 = 3;
            $ptr = 19;
            continue main;
        }
        $var9 = $var9 + (-1) | 0;
        b: {
            while (true) {
                if ($var9 >= (-1)) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
                if ($var7 !== null)
                    break b;
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break;
                $var9 = 0;
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 18:
        $tmp = nms_World_getBlockMetadata($par1World, var$15, $par3, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if ((var$18 & 3) != var$16 ? 0 : 1) {
            var$16 = 3;
            $ptr = 19;
            continue main;
        }
        $var9 = $var9 + (-1) | 0;
        c: {
            while (true) {
                if ($var9 >= (-1)) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
                if ($var7 !== null)
                    break c;
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break;
                $var9 = 0;
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 19:
        $tmp = nms_World_getBlockId($par1World, var$17, $par3, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18 == $this.$blockID) {
            $ptr = 20;
            continue main;
        }
        if (0) {
            $var7 = new nms_WorldGenHugeTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$18 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$12 = var$18 % 20 | 0;
                if (((var$18 - var$12 | 0) + var$13 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$18 = Long_lo(Long_shru(var$11, var$14));
            }
            var$18 = 10 + var$12 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$baseHeight = var$18;
            $var7.$woodMetadata = 3;
            $var7.$leavesMetadata = 3;
            $var10 = 1;
        } else {
            $var9 = $var9 + (-1) | 0;
            var$18 = (-1);
            var$18 = $rt_compare($var9, var$18);
            if (var$18 >= 0) {
                var$15 = $par2 + $var8 | 0;
                var$16 = $par4 + $var9 | 0;
                var$17 = 3;
                $ptr = 13;
                continue main;
            }
        }
        d: {
            while ($var7 === null) {
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break d;
                $var9 = 0;
                var$18 = (-1);
                var$18 = $rt_compare($var9, var$18);
                if (var$18 >= 0) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    case 20:
        $tmp = nms_World_getBlockMetadata($par1World, var$17, $par3, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if ((var$18 & 3) != var$16 ? 0 : 1) {
            $var7 = new nms_WorldGenHugeTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$18 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$12 = var$18 % 20 | 0;
                if (((var$18 - var$12 | 0) + var$13 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$18 = Long_lo(Long_shru(var$11, var$14));
            }
            var$18 = 10 + var$12 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$baseHeight = var$18;
            $var7.$woodMetadata = 3;
            $var7.$leavesMetadata = 3;
            $var10 = 1;
        } else {
            $var9 = $var9 + (-1) | 0;
            var$18 = (-1);
            var$18 = $rt_compare($var9, var$18);
            if (var$18 >= 0) {
                var$15 = $par2 + $var8 | 0;
                var$16 = $par4 + $var9 | 0;
                var$17 = 3;
                $ptr = 13;
                continue main;
            }
        }
        a: {
            while ($var7 === null) {
                $var8 = $var8 + (-1) | 0;
                if ($var8 < (-1))
                    break a;
                $var9 = 0;
                var$18 = (-1);
                var$18 = $rt_compare($var9, var$18);
                if (var$18 >= 0) {
                    var$15 = $par2 + $var8 | 0;
                    var$16 = $par4 + $var9 | 0;
                    var$17 = 3;
                    $ptr = 13;
                    continue main;
                }
            }
        }
        if ($var7 === null) {
            $var9 = 0;
            $var8 = 0;
            $var7 = new nms_WorldGenTrees;
            var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$14));
            while (true) {
                var$13 = var$12 % 7 | 0;
                if (((var$12 - var$13 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$11;
                var$12 = Long_lo(Long_shru(var$11, var$14));
            }
            var$12 = 4 + var$13 | 0;
            $var7.$doBlockNotify = 1;
            $var7.$minTreeHeight = var$12;
            $var7.$metaWood = 3;
            $var7.$metaLeaves = 3;
            $var7.$vinesGrow = 0;
        }
        if (!$var10) {
            var$18 = 0;
            var$12 = 0;
            var$13 = 4;
            $ptr = 2;
            continue main;
        }
        var$18 = $par2 + $var8 | 0;
        var$12 = $par4 + $var9 | 0;
        var$13 = 0;
        var$17 = 0;
        var$14 = 4;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var8, $var6, $var7, $var9, $var10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_BlockSapling_damageDropped = ($this, $par1) => {
    return $par1 & 3;
},
nms_BlockSapling__clinit_ = () => {
    nms_BlockSapling_WOOD_TYPES = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
},
nms_BlockFluid = $rt_classWithoutFields(nms_Block),
nms_BlockFluid_getEffectiveFlowDecay = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5) {
            nms_Material_$callClinit();
            var$6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (var$6 !== $this.$blockMaterial)
            return (-1);
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 >= 8)
            $var5 = 0;
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, var$6, $ptr);
},
nms_BlockFluid_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFluid_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFluid_canCollideCheck = ($this, $par1, $par2) => {
    return $par2 && !$par1 ? 1 : 0;
},
nms_BlockFluid_isBlockSolid = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let var$6, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6) {
            nms_Material_$callClinit();
            $var6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var6 = nms_Block_blocksList.data[var$6].$blockMaterial;
        }
        if ($var6 === $this.$blockMaterial)
            $par2 = 0;
        else if ($par5 == 1)
            $par2 = 1;
        else {
            nms_Material_$callClinit();
            if ($var6 !== nms_Material_ice) {
                $ptr = 2;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par1IBlockAccess = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $par1IBlockAccess = nms_Block_blocksList.data[$par2].$blockMaterial;
        }
        return $par1IBlockAccess.$isSolid();
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, var$6, $var6, $ptr);
},
nms_BlockFluid_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockFluid_getRenderType = $this => {
    return 4;
},
nms_BlockFluid_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
};
let nms_BlockFluid_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockFluid_getFlowVector = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var12, var$7, $var6, $var7, var$10, var$11, $var13, var$13, var$14, var$15, $var11, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var11 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var13 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var12 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$vecPool, 0.0, 0.0, 0.0);
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 2;
            continue main;
        }
        $var6 = (-1);
        $var7 = 0;
        var$10 = $par2 - 1 | 0;
        var$11 = $par4 - 1 | 0;
        $var13 = $par3 - 1 | 0;
        var$13 = $par3 - $par3 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        $ptr = 7;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 >= 8)
            $var6 = 0;
        $var7 = 0;
        var$10 = $par2 - 1 | 0;
        var$11 = $par4 - 1 | 0;
        $var13 = $par3 - 1 | 0;
        var$13 = $par3 - $par3 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 < 8)
            return nms_Vec3_normalize($var5);
        $var13 = 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 5;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if (!$var13) {
            $var11 = $par4 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $ptr = 8;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if (!$var13) {
            $var11 = $par4 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $ptr = 8;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 11;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if (!$var13) {
            $ptr = 8;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$14, $par3, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 9;
            continue main;
        }
        if ((-1) < 0) {
            $ptr = 12;
            continue main;
        }
        if ((-1) >= 0) {
            $var12 = (-1) - $var6 | 0;
            var$18 = $rt_imul(var$14 - $par2 | 0, $var12);
            var$19 = $rt_imul(var$13, $var12);
            var$20 = $rt_imul(var$15 - $par4 | 0, $var12);
            $var5 = nms_Vec3Pool_getVecFromPool($var5.$myVec3LocalPool, $var5.$xCoord + var$18, $var5.$yCoord + var$19, $var5.$zCoord + var$20);
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 14;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if (!$var13) {
            $var11 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 9:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$14, $par3, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 >= 8)
            $var11 = 0;
        if ($var11 < 0) {
            $ptr = 12;
            continue main;
        }
        if ($var11 >= 0) {
            $var12 = $var11 - $var6 | 0;
            var$18 = $rt_imul(var$14 - $par2 | 0, $var12);
            var$19 = $rt_imul(var$13, $var12);
            var$20 = $rt_imul(var$15 - $par4 | 0, $var12);
            $var5 = nms_Vec3Pool_getVecFromPool($var5.$myVec3LocalPool, $var5.$xCoord + var$18, $var5.$yCoord + var$19, $var5.$zCoord + var$20);
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        $ptr = 7;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 16;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if (!$var13) {
            $ptr = 8;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$14, $par3, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$17 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (!var$17.$blocksMovement()) {
            $ptr = 17;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        $ptr = 7;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $var11, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$17 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$17 !== nms_Material_ice) {
                $ptr = 19;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if (!$var13) {
            $var11 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (!var$13) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[var$13].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 22;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if (!$var13) {
            $var11 = $par3 + 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$14, $var13, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17 === $this.$blockMaterial) {
            $ptr = 20;
            continue main;
        }
        if ((-1) >= 0) {
            $var12 = (-1) - ($var6 - 8 | 0) | 0;
            var$20 = $rt_imul(var$14 - $par2 | 0, $var12);
            var$21 = $rt_imul(var$13, $var12);
            var$18 = $rt_imul(var$15 - $par4 | 0, $var12);
            $var5 = nms_Vec3Pool_getVecFromPool($var5.$myVec3LocalPool, $var5.$xCoord + var$20, $var5.$yCoord + var$21, $var5.$zCoord + var$18);
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        $ptr = 7;
        continue main;
    case 18:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$10, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var12 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 23;
                continue main;
            }
            $var12 = 0;
        }
        if ($var12)
            $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 19:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $var11, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $var11 = $par4 + 1 | 0;
            $ptr = 15;
            continue main;
        }
        $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 20:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$14, $var13, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 >= 8)
            $var12 = 0;
        if ($var12 >= 0) {
            $var12 = $var12 - ($var6 - 8 | 0) | 0;
            var$20 = $rt_imul(var$14 - $par2 | 0, $var12);
            var$21 = $rt_imul(var$13, $var12);
            var$18 = $rt_imul(var$15 - $par4 | 0, $var12);
            $var5 = nms_Vec3Pool_getVecFromPool($var5.$myVec3LocalPool, $var5.$xCoord + var$20, $var5.$yCoord + var$21, $var5.$zCoord + var$18);
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4) {
            $ptr = 3;
            continue main;
        }
        var$14 = !$var7 ? var$10 : $par2;
        var$15 = $var7 == 1 ? var$11 : $par4;
        if ($var7 == 2)
            var$14 = var$14 + 1 | 0;
        if ($var7 == 3)
            var$15 = var$15 + 1 | 0;
        $ptr = 7;
        continue main;
    case 21:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $par2 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_ice) {
                $ptr = 24;
                continue main;
            }
            $par2 = 0;
        }
        if ($par2)
            $var13 = 1;
        if ($var13) {
            $par1IBlockAccess = nms_Vec3_normalize($var5);
            $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
        }
        return nms_Vec3_normalize($var5);
    case 22:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if (!$var13) {
            $var12 = $par3 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 23:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$10, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            var$17 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$17.$isSolid())
            $var13 = 1;
        if ($var13) {
            $var13 = 1;
            if ($var13) {
                $par1IBlockAccess = nms_Vec3_normalize($var5);
                $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
            }
            return nms_Vec3_normalize($var5);
        }
        $par2 = $par2 + 1 | 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 21;
        continue main;
    case 24:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par1IBlockAccess = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $par1IBlockAccess = nms_Block_blocksList.data[$par2].$blockMaterial;
        }
        if ($par1IBlockAccess.$isSolid())
            $var13 = 1;
        if ($var13) {
            $par1IBlockAccess = nms_Vec3_normalize($var5);
            $var5 = nms_Vec3Pool_getVecFromPool($par1IBlockAccess.$myVec3LocalPool, $par1IBlockAccess.$xCoord + 0.0, $par1IBlockAccess.$yCoord + (-6.0), $par1IBlockAccess.$zCoord + 0.0);
        }
        return nms_Vec3_normalize($var5);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var12, var$7, $var6, $var7, var$10, var$11, $var13, var$13, var$14, var$15, $var11, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_BlockFluid_velocityToAddToEntity = ($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6Vec3) => {
    let $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockFluid_getFlowVector($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $par6Vec3.$xCoord = $par6Vec3.$xCoord + $var7.$xCoord;
        $par6Vec3.$yCoord = $par6Vec3.$yCoord + $var7.$yCoord;
        $par6Vec3.$zCoord = $par6Vec3.$zCoord + $var7.$zCoord;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6Vec3, $var7, $ptr);
},
nms_BlockFluid_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockFluid_checkForHarden($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockFluid_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockFluid_checkForHarden($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockFluid_checkForHarden = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $var6, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 == $this.$blockID) {
            var$6 = $this.$blockMaterial;
            nms_Material_$callClinit();
            if (var$6 === nms_Material_lava) {
                $var5 = 0;
                $var6 = $par4 - 1 | 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            var$8 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$8 === nms_Material_water)
            $var5 = 1;
        if (!$var5) {
            $var6 = $par4 + 1 | 0;
            $ptr = 3;
            continue main;
        }
        $var5 = 1;
        if (!$var5) {
            $var6 = $par2 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        $var5 = 1;
        if (!$var5) {
            $var6 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        $var5 = 1;
        if (!$var5) {
            $var6 = $par3 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var5 = 1;
        if (!$var5)
            return;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            var$8 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$8 === nms_Material_water)
            $var5 = 1;
        if (!$var5) {
            $var6 = $par2 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        $var5 = 1;
        if (!$var5) {
            $var6 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        $var5 = 1;
        if (!$var5) {
            $var6 = $par3 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var5 = 1;
        if (!$var5)
            return;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            var$8 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$8 === nms_Material_water)
            $var5 = 1;
        if (!$var5) {
            $var6 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        $var5 = 1;
        if (!$var5) {
            $var6 = $par3 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var5 = 1;
        if (!$var5)
            return;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            var$8 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$8 === nms_Material_water)
            $var5 = 1;
        if (!$var5) {
            $var6 = $par3 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var5 = 1;
        if (!$var5)
            return;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            var$8 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$8 === nms_Material_water)
            $var5 = 1;
        if (!$var5)
            return;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Block_$callClinit();
            $var5 = nms_Block_obsidian.$blockID;
            $var6 = 0;
            var$9 = 3;
            $ptr = 8;
            continue main;
        }
        if ($var6 > 4) {
            $ptr = 9;
            continue main;
        }
        nms_Block_$callClinit();
        $var5 = nms_Block_cobblestone.$blockID;
        $var6 = 0;
        var$9 = 3;
        $ptr = 10;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
    case 9:
        nms_BlockFluid_triggerLavaMixEffects($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $var6, var$8, var$9, $ptr);
},
nms_BlockFluid_triggerLavaMixEffects = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 + 0.5;
        var$6 = $par3 + 0.5;
        var$7 = $par4 + 0.5;
        var$8 = $rt_s(1389);
        var$9 = 0.5;
        var$10 = $par1World.$rand0;
        var$11 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$11;
        var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$11;
        var$12 = 2.5999999046325684 + (var$12 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.800000011920929;
        $ptr = 1;
    case 1:
        nms_World_playSoundEffect($par1World, var$5, var$6, var$7, var$8, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = 0;
        a: {
            while ($var5 < 8) {
                jl_Math_randomImpl();
                jl_Math_randomImpl();
                $par2 = 0;
                while (true) {
                    $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                    if ($par3 >= 0)
                        break;
                    if ($par2 < 0)
                        break a;
                    if ($par3 >= 0)
                        break a;
                    $par2 = $par2 + 1 | 0;
                }
                $var5 = $var5 + 1 | 0;
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var5, $ptr);
};
function nms_BlockFlowing() {
    let a = this; nms_BlockFluid.call(a);
    a.$numAdjacentSources = 0;
    a.$isOptimalFlowDirection = null;
    a.$flowCost = null;
}
let nms_BlockFlowing_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5;
    var$5 = $this.$blockMaterial;
    nms_Material_$callClinit();
    return var$5 === nms_Material_lava ? 0 : 1;
},
nms_BlockFlowing_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var13, var$7, $var6, $var7, var$10, $var9, $var12, $var11, $var14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$var11 = $thread.pop();$var12 = $thread.pop();$var9 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var13 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var13].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 2;
            continue main;
        }
        $var6 = (-1);
        $var7 = 1;
        var$10 = $this.$blockMaterial;
        nms_Material_$callClinit();
        var$7 = nms_Material_lava;
        if (var$10 === var$7 && !$par1World.$provider.$isHellWorld)
            $var7 = 2;
        $var9 = var$10 === nms_Material_water ? 5 : var$10 !== var$7 ? 0 : !$par1World.$provider.$hasNoSky ? 30 : 10;
        if ($var6 <= 0) {
            $ptr = 3;
            continue main;
        }
        $var13 = (-100);
        $this.$numAdjacentSources = 0;
        $var12 = $par2 - 1 | 0;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = 1;
        var$10 = $this.$blockMaterial;
        nms_Material_$callClinit();
        var$7 = nms_Material_lava;
        if (var$10 === var$7 && !$par1World.$provider.$isHellWorld)
            $var7 = 2;
        $var9 = var$10 === nms_Material_water ? 5 : var$10 !== var$7 ? 0 : !$par1World.$provider.$hasNoSky ? 30 : 10;
        if ($var6 <= 0) {
            $ptr = 3;
            continue main;
        }
        $var13 = (-100);
        $this.$numAdjacentSources = 0;
        $var12 = $par2 - 1 | 0;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var11 = $this.$blockID + 1 | 0;
        $var13 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $par3 - 1 | 0;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11)
            var$7 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 7;
            continue main;
        }
        if ((-1) >= 0) {
            if (!(-1))
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            $var13 = (-1) >= 8 ? 0 : (-1);
        }
        $var12 = $par2 + 1 | 0;
        $ptr = 9;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            var$10 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$10 = nms_Block_blocksList.data[$var13].$blockMaterial;
        }
        if (var$10 === $this.$blockMaterial)
            $var13 = 0;
        else {
            if (var$10 !== nms_Material_lava) {
                $ptr = 8;
                continue main;
            }
            $var13 = 0;
        }
        if (!$var13) {
            if ($var6 < 0)
                return;
            if (!$var6) {
                $ptr = 11;
                continue main;
            }
            $ptr = 12;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava) {
            $ptr = 10;
            continue main;
        }
        if ($var6 >= 8) {
            $ptr = 14;
            continue main;
        }
        $par3 = $var6 + 8 | 0;
        $ptr = 13;
        continue main;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $var12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            $var13 = $var11 >= 8 ? 0 : $var11;
        }
        $var12 = $par2 + 1 | 0;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, $par2, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!($var13 ? 0 : 1)) {
            if ($var6 < 0)
                return;
            if (!$var6) {
                $ptr = 11;
                continue main;
            }
            $ptr = 12;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava) {
            $ptr = 10;
            continue main;
        }
        if ($var6 >= 8) {
            $ptr = 14;
            continue main;
        }
        $par3 = $var6 + 8 | 0;
        $ptr = 13;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11)
            var$7 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 15;
            continue main;
        }
        $var11 = (-1);
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            if ($var11 >= 8)
                $var11 = 0;
            if ($var13 >= 0 && $var11 >= $var13)
                $var11 = $var13;
            $var13 = $var11;
        }
        $var12 = $par4 - 1 | 0;
        $ptr = 19;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par2, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3)
            $par5Random = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$par3].$blockMaterial;
        }
        if ($par5Random !== nms_Material_water) {
            if ($var6 >= 8) {
                $ptr = 14;
                continue main;
            }
            $par3 = $var6 + 8 | 0;
            $ptr = 13;
            continue main;
        }
        nms_Block_$callClinit();
        $var11 = nms_Block_stone.$blockID;
        $par3 = 0;
        $var13 = 3;
        $ptr = 16;
        continue main;
    case 11:
        $tmp = nms_BlockFlowing_getOptimalFlowDirections($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $var11 = $var6 + $var7 | 0;
        if ($var6 >= 8)
            $var11 = 1;
        if ($var11 >= 8)
            return;
        $var14 = $var14.data;
        if ($var14[0]) {
            $var13 = $par2 - 1 | 0;
            $ptr = 18;
            continue main;
        }
        if ($var14[1]) {
            $var13 = $par2 + 1 | 0;
            $ptr = 20;
            continue main;
        }
        if ($var14[2]) {
            $var13 = $par4 - 1 | 0;
            $ptr = 21;
            continue main;
        }
        if (!$var14[3])
            return;
        $par4 = $par4 + 1 | 0;
        $ptr = 22;
        continue main;
    case 12:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, $par2, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            return;
        $ptr = 11;
        continue main;
    case 13:
        nms_BlockFlowing_flowIntoBlock($this, $par1World, $par2, $var12, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 14:
        nms_BlockFlowing_flowIntoBlock($this, $par1World, $par2, $var12, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 15:
        $tmp = nms_World_getBlockMetadata($par1World, $var12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            if ($var11 >= 8)
                $var11 = 0;
            if ($var13 >= 0 && $var11 >= $var13)
                $var11 = $var13;
            $var13 = $var11;
        }
        $var12 = $par4 - 1 | 0;
        $ptr = 19;
        continue main;
    case 16:
        nms_World_setBlock($par1World, $par2, $var12, $par4, $var11, $par3, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 17;
    case 17:
        nms_BlockFluid_triggerLavaMixEffects($this, $par1World, $par2, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 18:
        nms_BlockFlowing_flowIntoBlock($this, $par1World, $var13, $par3, $par4, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var14[1]) {
            $var13 = $par2 + 1 | 0;
            $ptr = 20;
            continue main;
        }
        if ($var14[2]) {
            $var13 = $par4 - 1 | 0;
            $ptr = 21;
            continue main;
        }
        if (!$var14[3])
            return;
        $par4 = $par4 + 1 | 0;
        $ptr = 22;
        continue main;
    case 19:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11)
            var$7 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 23;
            continue main;
        }
        $var11 = (-1);
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            if ($var11 >= 8)
                $var11 = 0;
            if ($var13 >= 0 && $var11 >= $var13)
                $var11 = $var13;
            $var13 = $var11;
        }
        $var12 = $par4 + 1 | 0;
        $ptr = 24;
        continue main;
    case 20:
        nms_BlockFlowing_flowIntoBlock($this, $par1World, $var13, $par3, $par4, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var14[2]) {
            $var13 = $par4 - 1 | 0;
            $ptr = 21;
            continue main;
        }
        if (!$var14[3])
            return;
        $par4 = $par4 + 1 | 0;
        $ptr = 22;
        continue main;
    case 21:
        nms_BlockFlowing_flowIntoBlock($this, $par1World, $par2, $par3, $var13, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var14[3])
            return;
        $par4 = $par4 + 1 | 0;
        $ptr = 22;
    case 22:
        nms_BlockFlowing_flowIntoBlock($this, $par1World, $par2, $par3, $par4, $var11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 23:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            if ($var11 >= 8)
                $var11 = 0;
            if ($var13 >= 0 && $var11 >= $var13)
                $var11 = $var13;
            $var13 = $var11;
        }
        $var12 = $par4 + 1 | 0;
        $ptr = 24;
    case 24:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11)
            var$7 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 25;
            continue main;
        }
        $var11 = (-1);
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            if ($var11 >= 8)
                $var11 = 0;
            if ($var13 >= 0 && $var11 >= $var13)
                $var11 = $var13;
            $var13 = $var11;
        }
        $var12 = $var13 + $var7 | 0;
        if (!($var12 < 8 && $var13 >= 0))
            $var12 = (-1);
        $var11 = $par3 + 1 | 0;
        $ptr = 26;
        continue main;
    case 25:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 >= 0) {
            if (!$var11)
                $this.$numAdjacentSources = $this.$numAdjacentSources + 1 | 0;
            if ($var11 >= 8)
                $var11 = 0;
            if ($var13 >= 0 && $var11 >= $var13)
                $var11 = $var13;
            $var13 = $var11;
        }
        $var12 = $var13 + $var7 | 0;
        if (!($var12 < 8 && $var13 >= 0))
            $var12 = (-1);
        $var11 = $par3 + 1 | 0;
        $ptr = 26;
    case 26:
        $tmp = nms_World_getBlockId($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            var$7 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var13].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 27;
            continue main;
        }
        if ((-1) >= 0) {
            $ptr = 28;
            continue main;
        }
        if ($this.$numAdjacentSources >= 2 && $this.$blockMaterial === nms_Material_water) {
            $var11 = $par3 - 1 | 0;
            $ptr = 29;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    case 27:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if ($var13 >= 0) {
            $ptr = 28;
            continue main;
        }
        if ($this.$numAdjacentSources >= 2 && $this.$blockMaterial === nms_Material_water) {
            $var11 = $par3 - 1 | 0;
            $ptr = 29;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    case 28:
        $tmp = nms_World_getBlockId($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            var$7 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var13].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial) {
            $ptr = 30;
            continue main;
        }
        $var12 = (-1);
        if ($var12 < 8)
            $var12 = $var12 + 8 | 0;
        if ($this.$numAdjacentSources >= 2 && $this.$blockMaterial === nms_Material_water) {
            $var11 = $par3 - 1 | 0;
            $ptr = 29;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    case 29:
        $tmp = nms_World_getBlockId($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            var$10 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$10 = nms_Block_blocksList.data[$var13].$blockMaterial;
        }
        if (!var$10.$isSolid()) {
            $ptr = 33;
            continue main;
        }
        $var12 = 0;
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    case 30:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 < 8)
            $var12 = $var12 + 8 | 0;
        if ($this.$numAdjacentSources >= 2 && $this.$blockMaterial === nms_Material_water) {
            $var11 = $par3 - 1 | 0;
            $ptr = 29;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    case 31:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var11 = $this.$blockID + 1 | 0;
        $var13 = 2;
        $ptr = 32;
    case 32:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $par3 - 1 | 0;
        $ptr = 6;
        continue main;
    case 33:
        $tmp = nms_World_getBlockId($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            var$10 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$10 = nms_Block_blocksList.data[$var13].$blockMaterial;
        }
        if (var$10 === $this.$blockMaterial) {
            $ptr = 38;
            continue main;
        }
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    case 34:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $this.$blockID;
        $var13 = 0;
        $ptr = 35;
    case 35:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $var11, $var9, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $this.$blockID;
        $ptr = 36;
    case 36:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var12;
        $var12 = $par3 - 1 | 0;
        $ptr = 6;
        continue main;
    case 37:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var11, $var9, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var12;
        $var12 = $par3 - 1 | 0;
        $ptr = 6;
        continue main;
    case 38:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            $var12 = 0;
        if ($this.$blockMaterial === nms_Material_lava && $var6 < 8 && $var12 < 8 && $var12 > $var6) {
            var$15 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$15;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31)))
                $var9 = $var9 * 4 | 0;
        }
        if ($var12 == $var6) {
            $ptr = 31;
            continue main;
        }
        if ($var12 >= 0) {
            $var13 = 2;
            $ptr = 34;
            continue main;
        }
        $var11 = 0;
        $var9 = 0;
        $var13 = 3;
        $ptr = 37;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var13, var$7, $var6, $var7, var$10, $var9, $var12, $var11, $var14, var$15, $ptr);
},
nms_BlockFlowing_flowIntoBlock = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$7 === $this.$blockMaterial)
            $var6 = 0;
        else {
            nms_Material_$callClinit();
            if (var$7 !== nms_Material_lava) {
                $ptr = 2;
                continue main;
            }
            $var6 = 0;
        }
        if (!$var6)
            return;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 ? 0 : 1))
            return;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 <= 0) {
            var$8 = $this.$blockID;
            $var6 = 3;
            $ptr = 4;
            continue main;
        }
        var$7 = $this.$blockMaterial;
        nms_Material_$callClinit();
        if (var$7 === nms_Material_lava) {
            $ptr = 7;
            continue main;
        }
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data[$var6];
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$8, $par5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$8 = 0;
        var$10 = 1.0;
        $ptr = 6;
    case 6:
        var$9.$dropBlockAsItemWithChance($par1World, $par2, $par3, $par4, $var6, var$10, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $this.$blockID;
        $var6 = 3;
        $ptr = 4;
        continue main;
    case 7:
        nms_BlockFluid_triggerLavaMixEffects($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $this.$blockID;
        $var6 = 3;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, $ptr);
},
nms_BlockFlowing_calculateFlowCost = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var12, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var12 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = 1000;
        $var8 = 0;
        var$9 = $rt_compare($par6, 1);
        var$10 = $rt_compare($par6, 3);
        var$11 = $rt_compare($par6, 2);
        var$12 = $par2 - 1 | 0;
        var$13 = $par4 - 1 | 0;
        var$14 = $par3 - 1 | 0;
        var$15 = $rt_compare($par5, 4);
        var$16 = $par5 + 1 | 0;
        a: {
            while ($var8 < 4) {
                if (!(!$var8 && !var$9)) {
                    var$17 = $rt_compare($var8, 1);
                    if (!(!var$17 && !$par6)) {
                        var$18 = $rt_compare($var8, 2);
                        if (!(!var$18 && !var$10)) {
                            $var12 = $rt_compare($var8, 3);
                            if ($var12)
                                break a;
                            if (var$11)
                                break a;
                        }
                    }
                }
                $var8 = $var8 + 1 | 0;
            }
            return $var7;
        }
        var$20 = !$var8 ? var$12 : $par2;
        if (!var$17)
            var$20 = var$20 + 1 | 0;
        var$17 = !var$18 ? var$13 : $par4;
        if (!$var12)
            var$17 = var$17 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, var$20, $par3, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            $ptr = 2;
            continue main;
        }
        b: {
            while (true) {
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 4)
                    break;
                if (!$var8 && !var$9)
                    continue;
                var$17 = $rt_compare($var8, 1);
                if (!var$17 && !$par6)
                    continue;
                var$18 = $rt_compare($var8, 2);
                if (!var$18 && !var$10)
                    continue;
                $var12 = $rt_compare($var8, 3);
                if ($var12)
                    break b;
                if (var$11)
                    break b;
            }
            return $var7;
        }
        var$20 = !$var8 ? var$12 : $par2;
        if (!var$17)
            var$20 = var$20 + 1 | 0;
        var$17 = !var$18 ? var$13 : $par4;
        if (!$var12)
            var$17 = var$17 + 1 | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$20, $par3, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            nms_Material_$callClinit();
            var$21 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$21 = nms_Block_blocksList.data[$var12].$blockMaterial;
        }
        if (var$21 !== $this.$blockMaterial) {
            $ptr = 3;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, var$20, var$14, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            return $par5;
        if (var$15 < 0) {
            $ptr = 5;
            continue main;
        }
        c: {
            while (true) {
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 4)
                    break;
                if (!$var8 && !var$9)
                    continue;
                var$17 = $rt_compare($var8, 1);
                if (!var$17 && !$par6)
                    continue;
                var$18 = $rt_compare($var8, 2);
                if (!var$18 && !var$10)
                    continue;
                $var12 = $rt_compare($var8, 3);
                if ($var12)
                    break c;
                if (var$11)
                    break c;
            }
            return $var7;
        }
        var$20 = !$var8 ? var$12 : $par2;
        if (!var$17)
            var$20 = var$20 + 1 | 0;
        var$17 = !var$18 ? var$13 : $par4;
        if (!$var12)
            var$17 = var$17 + 1 | 0;
        $ptr = 1;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, var$20, $par3, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12) {
            $ptr = 3;
            continue main;
        }
        b: {
            while (true) {
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 4)
                    break;
                if (!$var8 && !var$9)
                    continue;
                var$17 = $rt_compare($var8, 1);
                if (!var$17 && !$par6)
                    continue;
                var$18 = $rt_compare($var8, 2);
                if (!var$18 && !var$10)
                    continue;
                $var12 = $rt_compare($var8, 3);
                if ($var12)
                    break b;
                if (var$11)
                    break b;
            }
            return $var7;
        }
        var$20 = !$var8 ? var$12 : $par2;
        if (!var$17)
            var$20 = var$20 + 1 | 0;
        var$17 = !var$18 ? var$13 : $par4;
        if (!$var12)
            var$17 = var$17 + 1 | 0;
        $ptr = 1;
        continue main;
    case 5:
        $tmp = nms_BlockFlowing_calculateFlowCost($this, $par1World, var$20, $par3, var$17, var$16, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 < $var7)
            $var7 = $var12;
        c: {
            while (true) {
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 4)
                    break;
                if (!$var8 && !var$9)
                    continue;
                var$17 = $rt_compare($var8, 1);
                if (!var$17 && !$par6)
                    continue;
                var$18 = $rt_compare($var8, 2);
                if (!var$18 && !var$10)
                    continue;
                $var12 = $rt_compare($var8, 3);
                if ($var12)
                    break c;
                if (var$11)
                    break c;
            }
            return $var7;
        }
        var$20 = !$var8 ? var$12 : $par2;
        if (!var$17)
            var$20 = var$20 + 1 | 0;
        var$17 = !var$18 ? var$13 : $par4;
        if (!$var12)
            var$17 = var$17 + 1 | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var12, var$20, var$21, $ptr);
},
nms_BlockFlowing_getOptimalFlowDirections = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, $var6, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        var$6 = $par2 - 1 | 0;
        var$7 = $par4 - 1 | 0;
        var$8 = $par3 - 1 | 0;
        if ($var5 >= 4) {
            var$9 = $this.$flowCost.data;
            $par2 = var$9[0];
            $var6 = 1;
            while ($var6 < 4) {
                if (var$9[$var6] < $par2)
                    $par2 = var$9[$var6];
                $var6 = $var6 + 1 | 0;
            }
            $par3 = 0;
            while ($par3 < 4) {
                var$11 = $this.$isOptimalFlowDirection;
                var$11.data[$par3] = var$9[$par3] != $par2 ? 0 : 1;
                $par3 = $par3 + 1 | 0;
            }
            return $this.$isOptimalFlowDirection;
        }
        $this.$flowCost.data[$var5] = 1000;
        var$12 = !$var5 ? var$6 : $par2;
        if ($var5 == 1)
            var$12 = var$12 + 1 | 0;
        var$13 = $var5 == 2 ? var$7 : $par4;
        if ($var5 == 3)
            var$13 = var$13 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, var$12, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            $ptr = 2;
            continue main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4) {
            var$9 = $this.$flowCost.data;
            $par2 = var$9[0];
            $var6 = 1;
            while ($var6 < 4) {
                if (var$9[$var6] < $par2)
                    $par2 = var$9[$var6];
                $var6 = $var6 + 1 | 0;
            }
            $par3 = 0;
            while ($par3 < 4) {
                var$11 = $this.$isOptimalFlowDirection;
                var$11.data[$par3] = var$9[$par3] != $par2 ? 0 : 1;
                $par3 = $par3 + 1 | 0;
            }
            return $this.$isOptimalFlowDirection;
        }
        $this.$flowCost.data[$var5] = 1000;
        var$12 = !$var5 ? var$6 : $par2;
        if ($var5 == 1)
            var$12 = var$12 + 1 | 0;
        var$13 = $var5 == 2 ? var$7 : $par4;
        if ($var5 == 3)
            var$13 = var$13 + 1 | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            var$14 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$14 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if (var$14 !== $this.$blockMaterial) {
            $ptr = 3;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_BlockFlowing_blockBlocksFlow($this, $par1World, var$12, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6) {
            var$9 = $this.$flowCost.data;
            $var6 = 1;
            $ptr = 5;
            continue main;
        }
        $this.$flowCost.data[$var5] = 0;
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4) {
            var$9 = $this.$flowCost.data;
            $par2 = var$9[0];
            $var6 = 1;
            while ($var6 < 4) {
                if (var$9[$var6] < $par2)
                    $par2 = var$9[$var6];
                $var6 = $var6 + 1 | 0;
            }
            $par3 = 0;
            while ($par3 < 4) {
                var$11 = $this.$isOptimalFlowDirection;
                var$11.data[$par3] = var$9[$par3] != $par2 ? 0 : 1;
                $par3 = $par3 + 1 | 0;
            }
            return $this.$isOptimalFlowDirection;
        }
        $this.$flowCost.data[$var5] = 1000;
        var$12 = !$var5 ? var$6 : $par2;
        if ($var5 == 1)
            var$12 = var$12 + 1 | 0;
        var$13 = $var5 == 2 ? var$7 : $par4;
        if ($var5 == 3)
            var$13 = var$13 + 1 | 0;
        $ptr = 1;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, var$12, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6) {
            $ptr = 3;
            continue main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4) {
            var$9 = $this.$flowCost.data;
            $par2 = var$9[0];
            $var6 = 1;
            while ($var6 < 4) {
                if (var$9[$var6] < $par2)
                    $par2 = var$9[$var6];
                $var6 = $var6 + 1 | 0;
            }
            $par3 = 0;
            while ($par3 < 4) {
                var$11 = $this.$isOptimalFlowDirection;
                var$11.data[$par3] = var$9[$par3] != $par2 ? 0 : 1;
                $par3 = $par3 + 1 | 0;
            }
            return $this.$isOptimalFlowDirection;
        }
        $this.$flowCost.data[$var5] = 1000;
        var$12 = !$var5 ? var$6 : $par2;
        if ($var5 == 1)
            var$12 = var$12 + 1 | 0;
        var$13 = $var5 == 2 ? var$7 : $par4;
        if ($var5 == 3)
            var$13 = var$13 + 1 | 0;
        $ptr = 1;
        continue main;
    case 5:
        $tmp = nms_BlockFlowing_calculateFlowCost($this, $par1World, var$12, $par3, var$13, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$9[$var5] = $var6;
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4) {
            var$9 = $this.$flowCost.data;
            $par2 = var$9[0];
            $var6 = 1;
            while ($var6 < 4) {
                if (var$9[$var6] < $par2)
                    $par2 = var$9[$var6];
                $var6 = $var6 + 1 | 0;
            }
            $par3 = 0;
            while ($par3 < 4) {
                var$11 = $this.$isOptimalFlowDirection;
                var$11.data[$par3] = var$9[$par3] != $par2 ? 0 : 1;
                $par3 = $par3 + 1 | 0;
            }
            return $this.$isOptimalFlowDirection;
        }
        $this.$flowCost.data[$var5] = 1000;
        var$12 = !$var5 ? var$6 : $par2;
        if ($var5 == 1)
            var$12 = var$12 + 1 | 0;
        var$13 = $var5 == 2 ? var$7 : $par4;
        if ($var5 == 3)
            var$13 = var$13 + 1 | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, var$8, var$9, $var6, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockFlowing_blockBlocksFlow = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        if ($var5 != nms_Block_doorWood.$blockID && $var5 != nms_Block_doorIron.$blockID && $var5 != nms_Block_signPost.$blockID && $var5 != nms_Block_ladder.$blockID && $var5 != nms_Block_reed.$blockID) {
            if (!$var5)
                return 0;
            $var6 = nms_Block_blocksList.data[$var5].$blockMaterial;
            nms_Material_$callClinit();
            return $var6 !== nms_Material_portal ? $var6.$blocksMovement() : 1;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $ptr);
},
nms_BlockFlowing_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockFluid_checkForHarden($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$6 = $this.$blockID;
        if (var$5 != var$6)
            return;
        var$7 = $this.$blockMaterial;
        nms_Material_$callClinit();
        var$8 = var$7 === nms_Material_water ? 5 : var$7 !== nms_Material_lava ? 0 : !$par1World.$provider.$hasNoSky ? 30 : 10;
        var$5 = 0;
        $ptr = 3;
    case 3:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$6, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockFlowing_func_82506_l = $this => {
    return 1;
},
nms_BlockStationary = $rt_classWithoutFields(nms_BlockFluid),
nms_BlockStationary_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5;
    var$5 = $this.$blockMaterial;
    nms_Material_$callClinit();
    return var$5 === nms_Material_lava ? 0 : 1;
},
nms_BlockStationary_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockFluid_checkForHarden($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 != $this.$blockID)
            return;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = $this.$blockID - 1 | 0;
        $par5 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $this.$blockID - 1 | 0;
        var$8 = $this.$blockMaterial;
        nms_Material_$callClinit();
        var$7 = var$8 === nms_Material_water ? 5 : var$8 !== nms_Material_lava ? 0 : !$par1World.$provider.$hasNoSky ? 30 : 10;
        var$6 = 0;
        $ptr = 5;
    case 5:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockStationary_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, $var7, var$10, $var6, $var9, var$13, $var8, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var8 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockMaterial;
        nms_Material_$callClinit();
        if (var$6 === nms_Material_lava) {
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            var$8 = 17;
            $var7 = Long_lo(Long_shru(var$7, var$8));
            var$10 = 2;
            while (true) {
                $var6 = $var7 % 3 | 0;
                if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var7 = Long_lo(Long_shru(var$7, var$8));
            }
            $var7 = 0;
            if ($var7 < $var6) {
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var9 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$13 = $var9 % 3 | 0;
                    if ((($var9 - var$13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var9 = Long_lo(Long_shru(var$7, var$8));
                }
                $par2 = $par2 + (var$13 - 1 | 0) | 0;
                $par3 = $par3 + 1 | 0;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var9 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$13 = $var9 % 3 | 0;
                    if ((($var9 - var$13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var9 = Long_lo(Long_shru(var$7, var$8));
                }
                $par4 = $par4 + (var$13 - 1 | 0) | 0;
                $ptr = 1;
                continue main;
            }
            if (!$var6) {
                $var9 = 0;
                if ($var9 < 3) {
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var7 = Long_lo(Long_shru(var$7, var$8));
                    while (true) {
                        $var6 = $var7 % 3 | 0;
                        if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par5Random.$seed = var$7;
                        $var7 = Long_lo(Long_shru(var$7, var$8));
                    }
                    $var7 = ($par2 + $var6 | 0) - 1 | 0;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var6 = Long_lo(Long_shru(var$7, var$8));
                    while (true) {
                        var$13 = $var6 % 3 | 0;
                        if ((($var6 - var$13 | 0) + var$10 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par5Random.$seed = var$7;
                        $var6 = Long_lo(Long_shru(var$7, var$8));
                    }
                    $var6 = ($par4 + var$13 | 0) - 1 | 0;
                    $var8 = $par3 + 1 | 0;
                    $ptr = 3;
                    continue main;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8) {
            $var8 = $par2 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        nms_Block_$callClinit();
        if (nms_Block_blocksList.data[$var8].$blockMaterial.$blocksMovement())
            return;
        $var7 = $var7 + 1 | 0;
        if ($var7 < $var6) {
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var9 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$13 = $var9 % 3 | 0;
                if ((($var9 - var$13 | 0) + var$10 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var9 = Long_lo(Long_shru(var$7, var$8));
            }
            $par2 = $par2 + (var$13 - 1 | 0) | 0;
            $par3 = $par3 + 1 | 0;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var9 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$13 = $var9 % 3 | 0;
                if ((($var9 - var$13 | 0) + var$10 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var9 = Long_lo(Long_shru(var$7, var$8));
            }
            $par4 = $par4 + (var$13 - 1 | 0) | 0;
            continue main;
        }
        if (!$var6) {
            $var9 = 0;
            if ($var9 < 3) {
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var7 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    $var6 = $var7 % 3 | 0;
                    if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var7 = Long_lo(Long_shru(var$7, var$8));
                }
                $var7 = ($par2 + $var6 | 0) - 1 | 0;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var6 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$13 = $var6 % 3 | 0;
                    if ((($var6 - var$13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var6 = Long_lo(Long_shru(var$7, var$8));
                }
                $var6 = ($par4 + var$13 | 0) - 1 | 0;
                $var8 = $par3 + 1 | 0;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        if (!var$6.$canBurn) {
            $var8 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_fire.$blockID;
        $var7 = 0;
        $var9 = 3;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (var$13 ? 0 : 1) {
            $ptr = 6;
            continue main;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 >= 3)
            return;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        $var7 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            $var6 = $var7 % 3 | 0;
            if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var7 = Long_lo(Long_shru(var$7, var$8));
        }
        $var7 = ($par2 + $var6 | 0) - 1 | 0;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        $var6 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            var$13 = $var6 % 3 | 0;
            if ((($var6 - var$13 | 0) + var$10 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var6 = Long_lo(Long_shru(var$7, var$8));
        }
        $var6 = ($par4 + var$13 | 0) - 1 | 0;
        $var8 = $par3 + 1 | 0;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        if (!var$6.$canBurn) {
            $var8 = $par4 - 1 | 0;
            $ptr = 7;
            continue main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_fire.$blockID;
        $var7 = 0;
        $var9 = 3;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var7, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (!var$13)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[var$13].$blockMaterial;
        }
        if (var$6.$canBurn) {
            nms_Block_$callClinit();
            var$13 = nms_Block_fire.$blockID;
            var$15 = 0;
            var$16 = 3;
            $ptr = 8;
            continue main;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 >= 3)
            return;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        $var7 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            $var6 = $var7 % 3 | 0;
            if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var7 = Long_lo(Long_shru(var$7, var$8));
        }
        $var7 = ($par2 + $var6 | 0) - 1 | 0;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        $var6 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            var$13 = $var6 % 3 | 0;
            if ((($var6 - var$13 | 0) + var$10 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var6 = Long_lo(Long_shru(var$7, var$8));
        }
        $var6 = ($par4 + var$13 | 0) - 1 | 0;
        $var8 = $par3 + 1 | 0;
        $ptr = 3;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        if (!var$6.$canBurn) {
            $var8 = $par4 + 1 | 0;
            $ptr = 9;
            continue main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_fire.$blockID;
        $var7 = 0;
        $var9 = 3;
        $ptr = 4;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $var7, $var8, $var6, var$13, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 >= 3)
            return;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        $var7 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            $var6 = $var7 % 3 | 0;
            if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var7 = Long_lo(Long_shru(var$7, var$8));
        }
        $var7 = ($par2 + $var6 | 0) - 1 | 0;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        $var6 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            var$13 = $var6 % 3 | 0;
            if ((($var6 - var$13 | 0) + var$10 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var6 = Long_lo(Long_shru(var$7, var$8));
        }
        $var6 = ($par4 + var$13 | 0) - 1 | 0;
        $var8 = $par3 + 1 | 0;
        $ptr = 3;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        if (!var$6.$canBurn) {
            $var8 = $par3 - 1 | 0;
            $ptr = 10;
            continue main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_fire.$blockID;
        $var7 = 0;
        $var9 = 3;
        $ptr = 4;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par2, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        if (!var$6.$canBurn) {
            $var8 = $par3 + 1 | 0;
            $ptr = 11;
            continue main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_fire.$blockID;
        $var7 = 0;
        $var9 = 3;
        $ptr = 4;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $par2, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        if (var$6.$canBurn) {
            nms_Block_$callClinit();
            $var8 = nms_Block_fire.$blockID;
            $var7 = 0;
            $var9 = 3;
            $ptr = 4;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 < $var6) {
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var9 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$13 = $var9 % 3 | 0;
                if ((($var9 - var$13 | 0) + var$10 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var9 = Long_lo(Long_shru(var$7, var$8));
            }
            $par2 = $par2 + (var$13 - 1 | 0) | 0;
            $par3 = $par3 + 1 | 0;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            $var9 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$13 = $var9 % 3 | 0;
                if ((($var9 - var$13 | 0) + var$10 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var9 = Long_lo(Long_shru(var$7, var$8));
            }
            $par4 = $par4 + (var$13 - 1 | 0) | 0;
            $ptr = 1;
            continue main;
        }
        if (!$var6) {
            $var9 = 0;
            if ($var9 < 3) {
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var7 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    $var6 = $var7 % 3 | 0;
                    if ((($var7 - $var6 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var7 = Long_lo(Long_shru(var$7, var$8));
                }
                $var7 = ($par2 + $var6 | 0) - 1 | 0;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                $var6 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$13 = $var6 % 3 | 0;
                    if ((($var6 - var$13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$7;
                    $var6 = Long_lo(Long_shru(var$7, var$8));
                }
                $var6 = ($par4 + var$13 | 0) - 1 | 0;
                $var8 = $par3 + 1 | 0;
                $ptr = 3;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, $var7, var$10, $var6, $var9, var$13, $var8, var$15, var$16, $ptr);
},
nms_BlockSand = $rt_classWithoutFields(nms_Block),
nms_BlockSand_fallInstantly = 0,
nms_BlockSand_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$blockID;
        var$6 = 2;
        var$7 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockSand_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        var$7 = 2;
        $par5 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$6, var$7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $ptr);
},
nms_BlockSand_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        nms_BlockSand_tryToFall($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $ptr);
},
nms_BlockSand_tryToFall = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var9, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var9 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_BlockSand_canFallBelow($par1World, $par2, var$5, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5 && $par3 >= 0) {
                if (!nms_BlockSand_fallInstantly && nms_World_checkChunksExist($par1World, $par2 - 32 | 0, $par3 - 32 | 0, $par4 - 32 | 0, $par2 + 32 | 0, $par3 + 32 | 0, $par4 + 32 | 0)) {
                    if ($par1World.$isRemote)
                        break a;
                    else {
                        $var9 = new nms_EntityFallingSand;
                        var$7 = $par2 + 0.5;
                        var$8 = $par3 + 0.5;
                        var$9 = $par4 + 0.5;
                        var$5 = $this.$blockID;
                        $ptr = 4;
                        continue main;
                    }
                }
                var$5 = 0;
                var$10 = 0;
                var$11 = 3;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par3 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockSand_canFallBelow($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 && $par3 > 0) {
            $par3 = $par3 + (-1) | 0;
            var$5 = $par3 - 1 | 0;
            continue main;
        }
        if ($par3 <= 0)
            return;
        var$5 = $this.$blockID;
        var$10 = 0;
        var$11 = 3;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $ptr = 5;
    case 5:
        nms_EntityFallingSand__init_($var9, $par1World, var$7, var$8, var$9, var$5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$onStartFalling($var9);
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($par1World, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var9, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockSand_onStartFalling = ($this, $par1EntityFallingSand) => {
    return;
},
nms_BlockSand_tickRate = ($this, $par1World) => {
    return 2;
},
nms_BlockSand_canFallBelow = ($par0World, $par1, $par2, $par3) => {
    let $var4, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par0World, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4)
            return 1;
        nms_Block_$callClinit();
        if ($var4 == nms_Block_fire.$blockID)
            return 1;
        $var5 = nms_Block_blocksList.data[$var4].$blockMaterial;
        nms_Material_$callClinit();
        return $var5 === nms_Material_water ? 1 : $var5 !== nms_Material_lava ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par3, $var4, $var5, $ptr);
},
nms_BlockSand_onFinishFalling = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return;
},
nms_BlockGravel = $rt_classWithoutFields(nms_BlockSand),
nms_BlockGravel__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_sand);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockGravel__init_ = var_0 => {
    let var_1 = new nms_BlockGravel();
    nms_BlockGravel__init_0(var_1, var_0);
    return var_1;
},
nms_BlockGravel_idDropped = ($this, $par1, $par2Random, $par3) => {
    let var$4, var$5, var$6, var$7;
    if ($par3 > 3)
        $par3 = 3;
    $par1 = 10 - ($par3 * 3 | 0) | 0;
    var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$4;
    var$5 = Long_lo(Long_shru(var$4, 17));
    var$6 = $par1 - 1 | 0;
    if (!($par1 & var$6))
        var$7 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$5)), 31));
    else
        while (true) {
            var$7 = var$5 % $par1 | 0;
            if (((var$5 - var$7 | 0) + var$6 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
    if (var$7)
        $par1 = $this.$blockID;
    else {
        nms_Item_$callClinit();
        $par1 = nms_Item_flint.$itemID0;
    }
    return $par1;
},
nms_BlockOre = $rt_classWithoutFields(nms_Block),
nms_BlockOre__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockOre__init_ = var_0 => {
    let var_1 = new nms_BlockOre();
    nms_BlockOre__init_0(var_1, var_0);
    return var_1;
},
nms_BlockOre_idDropped = ($this, $par1, $par2Random, $par3) => {
    $par1 = $this.$blockID;
    nms_Block_$callClinit();
    if ($par1 == nms_Block_oreCoal.$blockID) {
        nms_Item_$callClinit();
        $par1 = nms_Item_coal.$itemID0;
    } else if ($par1 == nms_Block_oreDiamond.$blockID) {
        nms_Item_$callClinit();
        $par1 = nms_Item_diamond.$itemID0;
    } else if ($par1 == nms_Block_oreLapis.$blockID) {
        nms_Item_$callClinit();
        $par1 = nms_Item_dyePowder.$itemID0;
    } else if ($par1 == nms_Block_oreEmerald.$blockID) {
        nms_Item_$callClinit();
        $par1 = nms_Item_emerald.$itemID0;
    } else if ($par1 == nms_Block_oreNetherQuartz.$blockID) {
        nms_Item_$callClinit();
        $par1 = nms_Item_netherQuartz.$itemID0;
    }
    return $par1;
},
nms_BlockOre_quantityDropped = ($this, $par1Random) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$blockID;
    nms_Block_$callClinit();
    if (var$2 != nms_Block_oreLapis.$blockID)
        var$2 = 1;
    else {
        var$3 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 5 | 0;
            if (((var$4 - var$5 | 0) + 4 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Random.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$2 = 4 + var$5 | 0;
    }
    return var$2;
},
nms_BlockOre_quantityDroppedWithBonus = ($this, $par1, $par2Random) => {
    let var$3, var$4, $var3, var$6, var$7, var$8, var$9;
    if ($par1 > 0 && $this.$blockID != nms_BlockOre_idDropped($this, 0, $par2Random, $par1)) {
        $par1 = $par1 + 2 | 0;
        var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        $var3 = $par1 - 1 | 0;
        if (!($par1 & $var3))
            var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$4)), 31));
        else
            while (true) {
                var$6 = var$4 % $par1 | 0;
                if (((var$4 - var$6 | 0) + $var3 | 0) >= 0)
                    break;
                var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$3;
                var$4 = Long_lo(Long_shru(var$3, 17));
            }
        $var3 = var$6 - 1 | 0;
        if ($var3 < 0)
            $var3 = 0;
        $par1 = $this.$blockID;
        nms_Block_$callClinit();
        if ($par1 != nms_Block_oreLapis.$blockID)
            var$6 = 1;
        else {
            var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$3;
            var$7 = Long_lo(Long_shru(var$3, 17));
            while (true) {
                var$8 = var$7 % 5 | 0;
                if (((var$7 - var$8 | 0) + 4 | 0) >= 0)
                    break;
                var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$3;
                var$7 = Long_lo(Long_shru(var$3, 17));
            }
            var$6 = 4 + var$8 | 0;
        }
        return $rt_imul(var$6, $var3 + 1 | 0);
    }
    $par1 = $this.$blockID;
    nms_Block_$callClinit();
    if ($par1 != nms_Block_oreLapis.$blockID)
        $par1 = 1;
    else {
        var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$9 = var$4 % 5 | 0;
            if (((var$4 - var$9 | 0) + 4 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        $par1 = 4 + var$9 | 0;
    }
    return $par1;
},
nms_BlockOre_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = nms_BlockOre_idDropped($this, $par5, $par1World.$rand0, $par7);
        $par7 = $this.$blockID;
        if ($par5 != $par7) {
            $var8 = 0;
            if ($par7 == nms_Block_oreCoal.$blockID) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                $par7 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    $par5 = $par7 % 3 | 0;
                    if ((($par7 - $par5 | 0) + 2 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    $par7 = Long_lo(Long_shru(var$10, 17));
                }
                $var8 = $par5 + 0 | 0;
            } else if ($par7 == nms_Block_oreDiamond.$blockID) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$12 = var$11 % 5 | 0;
                    if (((var$11 - var$12 | 0) + 4 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                }
                $var8 = var$12 + 3 | 0;
            } else if ($par7 == nms_Block_oreEmerald.$blockID) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$12 = var$11 % 5 | 0;
                    if (((var$11 - var$12 | 0) + 4 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                }
                $var8 = var$12 + 3 | 0;
            } else if ($par7 == nms_Block_oreLapis.$blockID) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                $var8 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$10, 17)))), 31)) + 2 | 0;
            } else if ($par7 == nms_Block_oreNetherQuartz.$blockID) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                $var8 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$10, 17)))), 31)) + 2 | 0;
            }
            if (!$par1World.$isRemote) {
                var$13 = $par2 + 0.5;
                var$14 = $par3 + 0.5;
                var$15 = $par4 + 0.5;
                if ($var8 > 0) {
                    $par2 = nms_EntityXPOrb_getXPSplit($var8);
                    $var8 = $var8 - $par2 | 0;
                    var$9 = new nms_EntityXPOrb;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 2:
        nms_EntityXPOrb__init_(var$9, $par1World, var$13, var$14, var$15, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1World, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($var8 <= 0)
            return;
        $par2 = nms_EntityXPOrb_getXPSplit($var8);
        $var8 = $var8 - $par2 | 0;
        var$9 = new nms_EntityXPOrb;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockOre_damageDropped = ($this, $par1) => {
    $par1 = $this.$blockID;
    nms_Block_$callClinit();
    return $par1 != nms_Block_oreLapis.$blockID ? 0 : 4;
},
nms_BlockRotatedPillar = $rt_classWithoutFields(nms_Block),
nms_BlockRotatedPillar_getRenderType = $this => {
    return 31;
},
nms_BlockRotatedPillar_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10, $var11;
    a: {
        $var10 = $par9 & 3;
        $var11 = 0;
        switch ($par5) {
            case 0:
            case 1:
                $var11 = 0;
                break a;
            case 2:
            case 3:
                $var11 = 8;
                break a;
            case 4:
            case 5:
                $var11 = 4;
                break a;
            default:
        }
    }
    return $var10 | $var11;
},
nms_BlockRotatedPillar_damageDropped = ($this, $par1) => {
    return $par1 & 3;
},
nms_BlockRotatedPillar_func_111050_e = ($this, $par1) => {
    return $par1 & 3;
},
nms_BlockRotatedPillar_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    var$2 = new nms_ItemStack;
    var$3 = $this.$blockID;
    $par1 = $par1 & 3;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = 1;
    var$2.$itemDamage = $par1;
    if ($par1 < 0)
        var$2.$itemDamage = 0;
    return var$2;
},
nms_BlockLog = $rt_classWithoutFields(nms_BlockRotatedPillar),
nms_BlockLog_woodType = null,
nms_BlockLog__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockLog__init_ = var_0 => {
    let var_1 = new nms_BlockLog();
    nms_BlockLog__init_0(var_1, var_0);
    return var_1;
},
nms_BlockLog_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockLog_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_wood.$blockID;
},
nms_BlockLog_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var9, $var10, $var11, var$11, var$12, var$13, $var12, $var13, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var7 = 4;
            if (nms_World_checkChunksExist($par1World, $par2 - 5 | 0, $par3 - 5 | 0, $par4 - 5 | 0, $par2 + 5 | 0, $par3 + 5 | 0, $par4 + 5 | 0)) {
                $par5 = (-4);
                $var9 = $par5;
                while (true) {
                    if ($var9 > $var7)
                        break a;
                    $var10 = $par5;
                    while ($var10 <= $var7) {
                        $var11 = $par5;
                        if ($var11 <= $var7) {
                            var$11 = $par2 + $var9 | 0;
                            var$12 = $par3 + $var10 | 0;
                            var$13 = $par4 + $var11 | 0;
                            $ptr = 1;
                            continue main;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var9 = $var9 + 1 | 0;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        nms_Block_$callClinit();
        if ($var12 == nms_Block_leaves.$blockID) {
            $ptr = 2;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        b: while (true) {
            if ($var11 <= $var7) {
                var$11 = $par2 + $var9 | 0;
                var$12 = $par3 + $var10 | 0;
                var$13 = $par4 + $var11 | 0;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 > $var7) {
                $var9 = $var9 + 1 | 0;
                if ($var9 > $var7)
                    break b;
                $var10 = $par5;
            }
            $var11 = $par5;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!($var13 & 8)) {
            $par6 = $var13 | 8;
            $var8 = 4;
            $ptr = 3;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        b: while (true) {
            if ($var11 <= $var7) {
                var$11 = $par2 + $var9 | 0;
                var$12 = $par3 + $var10 | 0;
                var$13 = $par4 + $var11 | 0;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 > $var7) {
                $var9 = $var9 + 1 | 0;
                if ($var9 > $var7)
                    break b;
                $var10 = $par5;
            }
            $var11 = $par5;
        }
        return;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, var$11, var$12, var$13, $par6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        a: while (true) {
            if ($var11 <= $var7) {
                var$11 = $par2 + $var9 | 0;
                var$12 = $par3 + $var10 | 0;
                var$13 = $par4 + $var11 | 0;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 > $var7) {
                $var9 = $var9 + 1 | 0;
                if ($var9 > $var7)
                    break a;
                $var10 = $par5;
            }
            $var11 = $par5;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var9, $var10, $var11, var$11, var$12, var$13, $var12, $var13, $var8, $ptr);
},
nms_BlockLog__clinit_ = () => {
    nms_BlockLog_woodType = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
};
function nms_BlockLeavesBase() {
    nms_Block.call(this);
    this.$graphicsLevel = 0;
}
function nms_BlockLeaves() {
    let a = this; nms_BlockLeavesBase.call(a);
    a.$iconArray = null;
    a.$adjacentTreeBlocks = null;
}
let nms_BlockLeaves_LEAF_TYPES = null,
nms_BlockLeaves_field_94396_b = null,
nms_BlockLeaves__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_leaves);
    $this.$graphicsLevel = 0;
    $this.$iconArray = $rt_createArray($rt_arraycls(nms_Icon), 2);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockLeaves__init_ = var_0 => {
    let var_1 = new nms_BlockLeaves();
    nms_BlockLeaves__init_0(var_1, var_0);
    return var_1;
},
nms_BlockLeaves_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var9, $var10, $var11, var$11, var$12, var$13, $var12, $var13, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var7 = 1;
            if (nms_World_checkChunksExist($par1World, $par2 - 2 | 0, $par3 - 2 | 0, $par4 - 2 | 0, $par2 + 2 | 0, $par3 + 2 | 0, $par4 + 2 | 0)) {
                $par5 = (-1);
                $var9 = $par5;
                while (true) {
                    if ($var9 > $var7)
                        break a;
                    $var10 = $par5;
                    while ($var10 <= $var7) {
                        $var11 = $par5;
                        if ($var11 <= $var7) {
                            var$11 = $par2 + $var9 | 0;
                            var$12 = $par3 + $var10 | 0;
                            var$13 = $par4 + $var11 | 0;
                            $ptr = 1;
                            continue main;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var9 = $var9 + 1 | 0;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        nms_Block_$callClinit();
        if ($var12 == nms_Block_leaves.$blockID) {
            $ptr = 2;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        b: while (true) {
            if ($var11 <= $var7) {
                var$11 = $par2 + $var9 | 0;
                var$12 = $par3 + $var10 | 0;
                var$13 = $par4 + $var11 | 0;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 > $var7) {
                $var9 = $var9 + 1 | 0;
                if ($var9 > $var7)
                    break b;
                $var10 = $par5;
            }
            $var11 = $par5;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $par6 = $var13 | 8;
        $var8 = 4;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, var$11, var$12, var$13, $par6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        a: while (true) {
            if ($var11 <= $var7) {
                var$11 = $par2 + $var9 | 0;
                var$12 = $par3 + $var10 | 0;
                var$13 = $par4 + $var11 | 0;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 > $var7) {
                $var9 = $var9 + 1 | 0;
                if ($var9 > $var7)
                    break a;
                $var10 = $par5;
            }
            $var11 = $par5;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var9, $var10, $var11, var$11, var$12, var$13, $var12, $var13, $var8, $ptr);
},
nms_BlockLeaves_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, $var7, $var9, $var10, $var11, $var12, $var12_0, $var13, $var14, $var8, $var15, $var13_0, $var14_0, $var15_0, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var15_0 = $thread.pop();$var14_0 = $thread.pop();$var13_0 = $thread.pop();$var15 = $thread.pop();$var8 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12_0 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5Random
        = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 & 8 && !($var6 & 4)) {
            $var7 = 4;
            $var9 = 32;
            $var10 = 1024;
            $var11 = 16;
            if ($this.$adjacentTreeBlocks === null)
                $this.$adjacentTreeBlocks = $rt_createIntArray(32768);
            a: {
                if (nms_World_checkChunksExist($par1World, $par2 - 5 | 0, $par3 - 5 | 0, $par4 - 5 | 0, $par2 + 5 | 0, $par3 + 5 | 0, $par4 + 5 | 0)) {
                    $var12 = (-4);
                    $var12_0 = $var12;
                    while ($var12_0 <= $var7) {
                        $var13 = $var12;
                        while ($var13 <= $var7) {
                            $var14 = $var12;
                            if ($var14 <= $var7) {
                                $var8 = $par2 + $var12_0 | 0;
                                $var15 = $par3 + $var13 | 0;
                                $var13_0 = $par4 + $var14 | 0;
                                $ptr = 6;
                                continue main;
                            }
                            $var13 = $var13 + 1 | 0;
                        }
                        $var12_0 = $var12_0 + 1 | 0;
                    }
                    $var15 = 1;
                    while (true) {
                        if ($var15 > 4)
                            break a;
                        $var13_0 = $var12;
                        while ($var13_0 <= $var7) {
                            $var14_0 = $var12;
                            while ($var14_0 <= $var7) {
                                $var15_0 = $var12;
                                while ($var15_0 <= $var7) {
                                    var$20 = $this.$adjacentTreeBlocks.data;
                                    $var12_0 = $var13_0 + $var11 | 0;
                                    var$21 = $rt_imul($var12_0, $var10);
                                    var$22 = $var14_0 + $var11 | 0;
                                    var$23 = $rt_imul(var$22, $var9);
                                    var$24 = var$21 + var$23 | 0;
                                    var$25 = (var$24 + $var15_0 | 0) + $var11 | 0;
                                    if (var$20[var$25] == ($var15 - 1 | 0)) {
                                        $var13 = (($rt_imul($var12_0 - 1 | 0, $var10) + var$23 | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var13 = (($rt_imul($var12_0 + 1 | 0, $var10) + var$23 | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var14 = ((var$21 + $rt_imul(var$22 - 1 | 0, $var9) | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var14] == (-2))
                                            var$20[$var14] = $var15;
                                        $var13 = ((var$21 + $rt_imul(var$22 + 1 | 0, $var9) | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var13 = var$24 + (($var15_0 + $var11 | 0) - 1 | 0) | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var13 = var$25 + 1 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                    }
                                    $var15_0 = $var15_0 + 1 | 0;
                                }
                                $var14_0 = $var14_0 + 1 | 0;
                            }
                            $var13_0 = $var13_0 + 1 | 0;
                        }
                        $var15 = $var15 + 1 | 0;
                    }
                }
            }
            if ($this.$adjacentTreeBlocks.data[16912] < 0) {
                $ptr = 2;
                continue main;
            }
            $var9 = $var6 & (-9);
            $var10 = 4;
            $ptr = 5;
            continue main;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var10 = 0;
        var$26 = 1.0;
        $ptr = 3;
    case 3:
        nms_BlockLeaves_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var9, var$26, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 0;
        $var10 = 0;
        $var13 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var9, $var10, $var13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var8, $var15, $var13_0);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        nms_Block_$callClinit();
        if ($var15 == nms_Block_wood.$blockID)
            $this.$adjacentTreeBlocks.data[(($rt_imul($var12_0 + $var11 | 0, $var10) + $rt_imul($var13 + $var11 | 0, $var9) | 0) + $var14 | 0) + $var11 | 0] = 0;
        else if ($var15 != nms_Block_leaves.$blockID)
            $this.$adjacentTreeBlocks.data[(($rt_imul($var12_0 + $var11 | 0, $var10) + $rt_imul($var13 + $var11 | 0, $var9) | 0) + $var14 | 0) + $var11 | 0] = (-1);
        else
            $this.$adjacentTreeBlocks.data[(($rt_imul($var12_0 + $var11 | 0, $var10) + $rt_imul($var13 + $var11 | 0, $var9) | 0) + $var14 | 0) + $var11 | 0] = (-2);
        $var14 = $var14 + 1 | 0;
        while ($var14 > $var7) {
            $var13 = $var13 + 1 | 0;
            while ($var13 > $var7) {
                $var12_0 = $var12_0 + 1 | 0;
                if ($var12_0 > $var7) {
                    $var15 = 1;
                    while ($var15 <= 4) {
                        $var13_0 = $var12;
                        while ($var13_0 <= $var7) {
                            $var14_0 = $var12;
                            while ($var14_0 <= $var7) {
                                $var15_0 = $var12;
                                while ($var15_0 <= $var7) {
                                    var$20 = $this.$adjacentTreeBlocks.data;
                                    $var12_0 = $var13_0 + $var11 | 0;
                                    var$21 = $rt_imul($var12_0, $var10);
                                    var$22 = $var14_0 + $var11 | 0;
                                    var$23 = $rt_imul(var$22, $var9);
                                    var$24 = var$21 + var$23 | 0;
                                    var$25 = (var$24 + $var15_0 | 0) + $var11 | 0;
                                    if (var$20[var$25] == ($var15 - 1 | 0)) {
                                        $var13 = (($rt_imul($var12_0 - 1 | 0, $var10) + var$23 | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var13 = (($rt_imul($var12_0 + 1 | 0, $var10) + var$23 | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var14 = ((var$21 + $rt_imul(var$22 - 1 | 0, $var9) | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var14] == (-2))
                                            var$20[$var14] = $var15;
                                        $var13 = ((var$21 + $rt_imul(var$22 + 1 | 0, $var9) | 0) + $var15_0 | 0) + $var11 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var13 = var$24 + (($var15_0 + $var11 | 0) - 1 | 0) | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                        $var13 = var$25 + 1 | 0;
                                        if (var$20[$var13] == (-2))
                                            var$20[$var13] = $var15;
                                    }
                                    $var15_0 = $var15_0 + 1 | 0;
                                }
                                $var14_0 = $var14_0 + 1 | 0;
                            }
                            $var13_0 = $var13_0 + 1 | 0;
                        }
                        $var15 = $var15 + 1 | 0;
                    }
                    if ($this.$adjacentTreeBlocks.data[16912] < 0) {
                        $ptr = 2;
                        continue main;
                    }
                    $var9 = $var6 & (-9);
                    $var10 = 4;
                    $ptr = 5;
                    continue main;
                }
                $var13 = $var12;
            }
            $var14 = $var12;
        }
        $var8 = $par2 + $var12_0 | 0;
        $var15 = $par3 + $var13 | 0;
        $var13_0 = $par4 + $var14 | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, $var7, $var9, $var10, $var11, $var12, $var12_0, $var13, $var14, $var8, $var15, $var13_0, $var14_0, $var15_0, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr);
},
nms_BlockLeaves_quantityDropped = ($this, $par1Random) => {
    let var$2, var$3, var$4;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 20 | 0;
        if (((var$3 - var$4 | 0) + 19 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return var$4 ? 0 : 1;
},
nms_BlockLeaves_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_sapling.$blockID;
},
nms_BlockLeaves_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$9, var$10, var$11, var$12, $var9, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            $var8 = 20;
            $par5 = $par5 & 3;
            if ($par5 == 3)
                $var8 = 40;
            if ($par7 > 0) {
                $var8 = $var8 - (2 << $par7) | 0;
                if ($var8 < 10)
                    $var8 = 10;
            }
            var$9 = $par1World.$rand0;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            var$11 = 17;
            var$12 = Long_lo(Long_shru(var$10, var$11));
            $var9 = $var8 - 1 | 0;
            if (!($var8 & $var9))
                var$14 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$14 = var$12 % $var8 | 0;
                    if (((var$12 - var$14 | 0) + $var9 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    var$12 = Long_lo(Long_shru(var$10, var$11));
                }
            if (!var$14) {
                nms_Block_$callClinit();
                $var9 = nms_Block_sapling.$blockID;
                var$9 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$9.$itemID = $var9;
                var$9.$stackSize = 1;
                var$9.$itemDamage = $par5;
                if ($par5 < 0)
                    var$9.$itemDamage = 0;
                $ptr = 1;
                continue main;
            }
            $var8 = 200;
            if ($par7 > 0) {
                $var8 = $var8 - (10 << $par7) | 0;
                if ($var8 < 40)
                    $var8 = 40;
            }
            if (!$par5) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                $var9 = Long_lo(Long_shru(var$10, var$11));
                $par5 = $var8 - 1 | 0;
                if (!($var8 & $par5))
                    $par7 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var9)), 31));
                else
                    while (true) {
                        $par7 = $var9 % $var8 | 0;
                        if ((($var9 - $par7 | 0) + $par5 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$9.$seed = var$10;
                        $var9 = Long_lo(Long_shru(var$10, var$11));
                    }
                if (!$par7) {
                    var$9 = new nms_ItemStack;
                    nms_Item_$callClinit();
                    var$15 = nms_Item_appleRed;
                    nms_ItemStack_$callClinit();
                    var$9.$itemID = var$15.$itemID0;
                    var$9.$stackSize = 1;
                    var$9.$itemDamage = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 200;
        if ($par7 > 0) {
            $var8 = $var8 - (10 << $par7) | 0;
            if ($var8 < 40)
                $var8 = 40;
        }
        if (!$par5) {
            var$9 = $par1World.$rand0;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var9 = Long_lo(Long_shru(var$10, var$11));
            $par5 = $var8 - 1 | 0;
            if (!($var8 & $par5))
                $par7 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var9)), 31));
            else
                while (true) {
                    $par7 = $var9 % $var8 | 0;
                    if ((($var9 - $par7 | 0) + $par5 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    $var9 = Long_lo(Long_shru(var$10, var$11));
                }
            if (!$par7) {
                var$9 = new nms_ItemStack;
                nms_Item_$callClinit();
                var$15 = nms_Item_appleRed;
                nms_ItemStack_$callClinit();
                var$9.$itemID = var$15.$itemID0;
                var$9.$stackSize = 1;
                var$9.$itemDamage = 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, var$9, var$10, var$11, var$12, $var9, var$14, var$15, $ptr);
},
nms_BlockLeaves_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            var$7 = $par2EntityPlayer.$inventory0;
            var$8 = var$7.$currentItem;
            var$9 = $rt_compare(var$8, 9);
            if ((var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null) !== null) {
                var$9 = (var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null).$itemID;
                nms_Item_$callClinit();
                if (var$9 == nms_Item_shears.$itemID0) {
                    nms_StatList_$callClinit();
                    var$7 = nms_StatList_mineBlockStatArray.data[$this.$blockID];
                    if (var$7 !== null && !var$7.$isIndependent)
                        a: {
                            var$10 = $par2EntityPlayer.$playerNetServerHandler;
                            var$11 = new nms_Packet200Statistic;
                            var$8 = var$7.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$11.$statisticId = var$8;
                            var$11.$amount = 1;
                            if (var$11 instanceof nms_Packet3Chat) {
                                var$7 = var$11;
                                var$8 = var$10.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break a;
                                if (var$8 == 1 && !var$7.$isServer)
                                    break a;
                            }
                            try {
                                $par2EntityPlayer = var$10.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$11 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $par2EntityPlayer = new otcic_JSStderrPrintStream;
                                var$7 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$7);
                                var$7.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($par2EntityPlayer, var$7);
                                $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                                $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                                $par2EntityPlayer.$autoFlush = 0;
                                $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $par2EntityPlayer;
                            }
                            jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                        }
                    $par2EntityPlayer = new nms_ItemStack;
                    nms_Block_$callClinit();
                    var$12 = nms_Block_leaves.$blockID;
                    $par6 = $par6 & 3;
                    nms_ItemStack_$callClinit();
                    $par2EntityPlayer.$itemID = var$12;
                    $par2EntityPlayer.$stackSize = 1;
                    $par2EntityPlayer.$itemDamage = $par6;
                    if ($par6 < 0)
                        $par2EntityPlayer.$itemDamage = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        nms_Block_harvestBlock($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, $par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2EntityPlayer, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2EntityPlayer = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par2EntityPlayer, var$7);
                $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par2EntityPlayer.$autoFlush = 0;
                $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par2EntityPlayer;
            }
            jl_Throwable_printStackTrace(var$11, jl_System_errCache);
        }
        $par2EntityPlayer = new nms_ItemStack;
        nms_Block_$callClinit();
        var$12 = nms_Block_leaves.$blockID;
        $par6 = $par6 & 3;
        nms_ItemStack_$callClinit();
        $par2EntityPlayer.$itemID = var$12;
        $par2EntityPlayer.$stackSize = 1;
        $par2EntityPlayer.$itemDamage = $par6;
        if ($par6 < 0)
            $par2EntityPlayer.$itemDamage = 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockLeaves_damageDropped = ($this, $par1) => {
    return $par1 & 3;
},
nms_BlockLeaves_isOpaqueCube = $this => {
    return $this.$graphicsLevel ? 0 : 1;
},
nms_BlockLeaves_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    var$2 = new nms_ItemStack;
    var$3 = $this.$blockID;
    $par1 = $par1 & 3;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = 1;
    var$2.$itemDamage = $par1;
    if ($par1 < 0)
        var$2.$itemDamage = 0;
    return var$2;
},
nms_BlockLeaves__clinit_ = () => {
    let var$1, var$2;
    nms_BlockLeaves_LEAF_TYPES = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
    var$1 = $rt_createArray($rt_arraycls(jl_String), 2);
    var$2 = var$1.data;
    var$2[0] = $rt_wrapArray(jl_String, [$rt_s(1390), $rt_s(1391), $rt_s(1392), $rt_s(1393)]);
    var$2[1] = $rt_wrapArray(jl_String, [$rt_s(1394), $rt_s(1395), $rt_s(1396), $rt_s(1397)]);
    nms_BlockLeaves_field_94396_b = var$1;
},
nms_BlockSponge = $rt_classWithoutFields(nms_Block),
nms_BlockSponge__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_sponge);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockSponge__init_0 = var_0 => {
    let var_1 = new nms_BlockSponge();
    nms_BlockSponge__init_(var_1, var_0);
    return var_1;
};
function nms_BlockBreakable() {
    let a = this; nms_Block.call(a);
    a.$localFlag = 0;
    a.$breakableBlockIcon = null;
}
let nms_BlockBreakable_isOpaqueCube = $this => {
    return 0;
},
nms_BlockGlass = $rt_classWithoutFields(nms_BlockBreakable),
nms_BlockGlass__init_ = ($this, $par1, $par2Material, $par3) => {
    nms_Block__init_($this, $par1, $par2Material);
    $this.$localFlag = $par3;
    $this.$breakableBlockIcon = $rt_s(733);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockGlass__init_0 = (var_0, var_1, var_2) => {
    let var_3 = new nms_BlockGlass();
    nms_BlockGlass__init_(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_BlockGlass_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockGlass_isOpaqueCube = $this => {
    return 0;
},
nms_BlockGlass_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockGlass_canSilkHarvest = $this => {
    return 1;
},
nms_ITileEntityProvider = $rt_classWithoutFields(0),
nms_BlockContainer = $rt_classWithoutFields(nms_Block),
nms_BlockContainer_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    return;
},
nms_BlockContainer_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockContainer_onBlockEventReceived = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        return $var7 === null ? 0 : $var7.$receiveClientEvent($par5, $par6);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $ptr);
};
function nms_BlockDispenser() {
    nms_BlockContainer.call(this);
    this.$random0 = null;
}
let nms_BlockDispenser_dispenseBehaviorRegistry = null,
nms_BlockDispenser__init_ = ($this, $par1) => {
    let var$2, var$3;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isBlockContainer = 1;
    var$2 = new nle_EaglercraftRandom;
    var$3 = Long_fromNumber(performance.now() * 1000000.0);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = var$3;
    $this.$random0 = var$2;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockDispenser__init_0 = var_0 => {
    let var_1 = new nms_BlockDispenser();
    nms_BlockDispenser__init_(var_1, var_0);
    return var_1;
},
nms_BlockDispenser_tickRate = ($this, $par1World) => {
    return 4;
},
nms_BlockDispenser_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockDispenser_setDispenserDefaultDirection($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockDispenser_setDispenserDefaultDirection = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, var$8, $var8, $var9, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var5 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$8 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = 3;
        nms_Block_$callClinit();
        var$11 = nms_Block_opaqueCubeLookup.data;
        if (var$11[$var5] && !var$11[$var6])
            $var9 = 3;
        if (var$11[$var6] && !var$11[$var5])
            $var9 = 2;
        if (var$11[$var7] && !var$11[$var8])
            $var9 = 5;
        if (var$11[$var8] && !var$11[$var7])
            $var9 = 4;
        $var5 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, var$8, $var8, $var9, var$11, $ptr);
},
nms_BlockDispenser_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        if ($var10 === null)
            return 1;
        $ptr = 2;
    case 2:
        nms_EntityPlayerMP_displayGUIDispenser($par5EntityPlayer, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $ptr);
},
nms_BlockDispenser_dispense = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, var$8, $var8, $var9, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = new nms_BlockSourceImpl;
        $var5.$worldObj4 = $par1World;
        $var5.$xPos = $par2;
        $var5.$yPos = $par3;
        $var5.$zPos = $par4;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $var6;
        if ($var6 !== null) {
            $var7 = nms_TileEntityDispenser_getRandomStackFromInventory($var6);
            if ($var7 < 0) {
                $var7 = 1001;
                var$8 = 0;
                $var5 = null;
                $ptr = 2;
                continue main;
            }
            $var8 = $var6.$dispenserContents.data[$var7];
            $var9 = $this.$getBehaviorForItemStack($var8);
            if ($var9 !== nms_IBehaviorDispenseItem_itemDispenseBehaviorProvider) {
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        nms_World_playAuxSFXAtEntity($par1World, $var5, $var7, $par2, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $tmp = $var9.$dispense($var5, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!$var10.$stackSize)
            $var10 = null;
        $var6.$dispenserContents.data[$var7] = $var10;
        if ($var10 !== null && $var10.$stackSize > 64)
            $var10.$stackSize = 64;
        $ptr = 4;
    case 4:
        nms_TileEntity_onInventoryChanged($var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, var$8, $var8, $var9, $var10, $ptr);
},
nms_BlockDispenser_getBehaviorForItemStack = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = nms_BlockDispenser_dispenseBehaviorRegistry;
    nms_Item_$callClinit();
    var$3 = nms_Item_itemsList.data[$par1ItemStack.$itemID];
    $par1ItemStack = var$2.$registryObjects;
    if (var$3 === null) {
        $par1ItemStack = $par1ItemStack.$elementData.data[0];
        while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
            $par1ItemStack = $par1ItemStack.$next3;
        }
    } else {
        var$4 = var$3.$hashCode();
        var$5 = $par1ItemStack.$elementData.data;
        $par1ItemStack = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($par1ItemStack !== null) {
            if ($par1ItemStack.$origKeyHash == var$4) {
                var$6 = $par1ItemStack.$key;
                if (var$3 !== var$6 && !var$3.$equals(var$6) ? 0 : 1)
                    break;
            }
            $par1ItemStack = $par1ItemStack.$next3;
        }
    }
    $par1ItemStack = $par1ItemStack === null ? null : $par1ItemStack.$value0;
    if ($par1ItemStack === null)
        $par1ItemStack = var$2.$defaultObject;
    return $par1ItemStack;
},
nms_BlockDispenser_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            $par5 = $par3 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var6 = 1;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = $par5 ? 1 : 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var8 = !($var7 & 8) ? 0 : 1;
        if ($var6 && !$var8) {
            $par5 = $this.$blockID;
            $var8 = 4;
            $var6 = 0;
            $ptr = 4;
            continue main;
        }
        if (!$var6 && $var8) {
            $var6 = $var7 & (-9);
            $par5 = 4;
            $ptr = 6;
            continue main;
        }
        return;
    case 4:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $var7 | 8;
        $var6 = 4;
        $ptr = 5;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, $ptr);
},
nms_BlockDispenser_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $this.$dispense0($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $ptr);
},
nms_BlockDispenser_createNewTileEntity = ($this, $par1World) => {
    return nms_TileEntityDispenser__init_0();
},
nms_BlockDispenser_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = nms_BlockPistonBase_determineOrientation($par1World, $par2, $par3, $par4, $par5EntityLivingBase);
        var$8 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $par6ItemStack.$stackTagCompound;
        if (var$9 === null)
            var$8 = 0;
        else {
            a: {
                var$9 = var$9.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$11 = var$9.$elementData.data;
            var$9 = var$11[var$10 & (var$11.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$10) {
                    b: {
                        var$12 = var$9.$key;
                        if ($rt_s(918) !== var$12) {
                            if ($rt_s(918) === var$12)
                                var$8 = 1;
                            else if (!(var$12 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$12 = var$12;
                                var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$9 = var$9.$next3;
            }
            if (!(var$9 === null ? 0 : 1))
                var$8 = 0;
            else {
                c: {
                    var$9 = $par6ItemStack.$stackTagCompound;
                    var$12 = var$9.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(918).$hashCode1;
                var$11 = var$12.$elementData.data;
                var$12 = var$11[var$10 & (var$11.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$10) {
                        d: {
                            var$13 = var$12.$key;
                            if ($rt_s(918) !== var$13) {
                                if ($rt_s(918) === var$13)
                                    var$8 = 1;
                                else if (!(var$13 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$13 = var$13;
                                    var$8 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break d;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                if (!(var$12 === null ? 0 : 1)) {
                    var$9 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$9.$name = $rt_s(918);
                    else
                        var$9.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$8 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                    var$14 = var$11.data;
                    $par5EntityLivingBase.$elementData = var$11;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$14.length * 0.75 | 0;
                    var$9.$tagMap = $par5EntityLivingBase;
                } else {
                    var$9 = var$9.$tagMap;
                    if ($rt_s(918) === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(918).$hashCode1;
                        var$11 = var$9.$elementData.data;
                        var$9 = var$11[var$8 & (var$11.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == var$8) {
                                f: {
                                    var$12 = var$9.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            $var7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break f;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    var$9 = var$9 === null ? null : var$9.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$9.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                var$13 = var$11[$var7 & (var$11.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == $var7) {
                        h: {
                            $par5EntityLivingBase = var$13.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$8 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$8 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break h;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
                var$8 = var$13 === null ? 0 : 1;
            }
        }
        if (!var$8)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        var$9 = $par1World;
        nms_Item_$callClinit();
        var$12 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par1World = $par6ItemStack.$stackTagCompound;
        if ($par1World !== null) {
            a: {
                $par1World = $par1World.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$11 = $par1World.$elementData.data;
            var$15 = var$11[$par3 & (var$11.length - 1 | 0)];
            while (var$15 !== null) {
                if (var$15.$origKeyHash == $par3) {
                    b: {
                        $par1World = var$15.$key;
                        if ($rt_s(918) !== $par1World) {
                            if ($rt_s(918) === $par1World)
                                $par2 = 1;
                            else if (!($par1World instanceof jl_String))
                                $par2 = 0;
                            else {
                                $par1World = $par1World;
                                $par2 = $rt_s(918).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break b;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                var$15 = var$15.$next3;
            }
            if (var$15 === null ? 0 : 1) {
                c: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    $par6ItemStack = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$11 = $par6ItemStack.$elementData.data;
                $par6ItemStack = var$11[$par4 & (var$11.length - 1 | 0)];
                while ($par6ItemStack !== null) {
                    if ($par6ItemStack.$origKeyHash == $par4) {
                        d: {
                            var$13 = $par6ItemStack.$key;
                            if ($rt_s(918) !== var$13) {
                                if ($rt_s(918) === var$13)
                                    $par2 = 1;
                                else if (!(var$13 instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    var$13 = var$13;
                                    $par2 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break d;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par6ItemStack = $par6ItemStack.$next3;
                }
                if (!($par6ItemStack === null ? 0 : 1)) {
                    var$13 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$13.$name = $rt_s(918);
                    else
                        var$13.$name = $rt_s(3);
                    $par1World = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par1World.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$14 = var$11.data;
                    $par1World.$elementData = var$11;
                    $par1World.$loadFactor = 0.75;
                    $par1World.$threshold = var$14.length * 0.75 | 0;
                    var$13.$tagMap = $par1World;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = $rt_s(918).$hashCode1;
                        var$11 = $par1World.$elementData.data;
                        $par1World = var$11[$par4 & (var$11.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par4) {
                                f: {
                                    $par6ItemStack = $par1World.$key;
                                    if ($rt_s(918) !== $par6ItemStack) {
                                        if ($rt_s(918) === $par6ItemStack)
                                            $par2 = 1;
                                        else if (!($par6ItemStack instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            $par6ItemStack = $par6ItemStack;
                                            $par2 = $rt_s(918).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break f;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    }
                    var$13 = $par1World === null ? null : $par1World.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$13.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[$par4 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        h: {
                            $par6ItemStack = $par5EntityLivingBase.$key;
                            if ($rt_s(919) !== $par6ItemStack) {
                                if ($rt_s(919) === $par6ItemStack)
                                    $par2 = 1;
                                else if (!($par6ItemStack instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par6ItemStack = $par6ItemStack;
                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break h;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    i: {
                        $par5EntityLivingBase = var$13.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$11 = $par5EntityLivingBase.$elementData.data;
                    $par5EntityLivingBase = var$11[$par4 & (var$11.length - 1 | 0)];
                    while ($par5EntityLivingBase !== null) {
                        if ($par5EntityLivingBase.$origKeyHash == $par4) {
                            j: {
                                $par6ItemStack = $par5EntityLivingBase.$key;
                                if ($rt_s(919) !== $par6ItemStack) {
                                    if ($rt_s(919) === $par6ItemStack)
                                        $par2 = 1;
                                    else if (!($par6ItemStack instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par6ItemStack = $par6ItemStack;
                                        $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break j;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                    }
                    if (!($par5EntityLivingBase === null ? 0 : 1))
                        var$12 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$13.$tagMap;
                        if ($rt_s(919) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            k: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break k;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(919).$hashCode1;
                            var$11 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$11[$par4 & (var$11.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    l: {
                                        $par6ItemStack = $par5EntityLivingBase.$key;
                                        if ($rt_s(919) !== $par6ItemStack) {
                                            if ($rt_s(919) === $par6ItemStack)
                                                $par2 = 1;
                                            else if (!($par6ItemStack instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par6ItemStack = $par6ItemStack;
                                                $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break l;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        var$12 = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                    }
                }
            }
        }
        var$9.$customName = var$12;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockDispenser_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var14, var$18, $var10, $var11, var$21, $var12, var$23, var$24, var$25, var$26, var$27, $var13, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();$var13 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var12 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();$var14 = $thread.pop();$var9
        = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var7 = $var7;
        if ($var7 === null) {
            $ptr = 2;
            continue main;
        }
        $var8 = 0;
        var$9 = 9;
        var$10 = 24;
        var$11 = 17;
        var$12 = $par2;
        var$13 = 138;
        var$14 = $par3;
        var$15 = $par4;
        while ($var8 < var$9) {
            $var9 = $var7.$dispenserContents.data[$var8];
            if ($var9 !== null) {
                $var14 = $this.$random0;
                var$18 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$18;
                $var10 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$18;
                $var11 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$21;
                $var12 = Long_lo(Long_shru(var$21, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$23 = var$12 + $var10;
                var$24 = var$14 + $var11;
                var$25 = var$15 + $var12;
                $par6 = $var9.$stackSize;
                if ($par6 > 0) {
                    $var14 = $this.$random0;
                    var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$11));
                    while (true) {
                        var$27 = var$26 % 21 | 0;
                        if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                            break;
                        var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$21;
                        var$26 = Long_lo(Long_shru(var$21, var$11));
                    }
                    $var13 = var$27 + 10 | 0;
                    if ($var13 > $par6)
                        $var13 = $par6;
                    $var9.$stackSize = $par6 - $var13 | 0;
                    $var14 = new nms_EntityItem;
                    var$29 = new nms_ItemStack;
                    var$27 = $var9.$itemID;
                    $par6 = $var9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$29.$itemID = var$27;
                    var$29.$stackSize = $var13;
                    var$29.$itemDamage = $par6;
                    if ($par6 < 0)
                        var$29.$itemDamage = 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $var8 = $var8 + 1 | 0;
        }
        $ptr = 3;
        continue main;
    case 2:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 4:
        nms_EntityItem__init_($var14, $par1World, var$23, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        var$30 = $var14.$dataWatcher;
        var$31 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$13];
        if (var$32 === null) {
            var$31 = var$31.$elementData.data[0];
            while (var$31 !== null && var$31.$key !== null) {
                var$31 = var$31.$next3;
            }
        } else {
            $par6 = var$32.$value;
            var$33 = var$31.$elementData.data;
            var$31 = var$33[$par6 & (var$33.length - 1 | 0)];
            while (var$31 !== null) {
                if (var$31.$origKeyHash == $par6) {
                    var$34 = var$31.$key;
                    if (var$32 !== var$34 && !jl_Integer_equals(var$32, var$34) ? 0 : 1)
                        break;
                }
                var$31 = var$31.$next3;
            }
        }
        var$34 = var$31 === null ? null : var$31.$value0;
        if (!(var$29 !== var$34.$watchedObject ? 0 : 1)) {
            var$34.$watchedObject = var$29;
            var$34.$watched = 1;
            var$30.$objectChanged = 1;
        }
        var$30 = $var14.$dataWatcher;
        var$31 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$13];
        if (var$32 === null) {
            var$31 = var$31.$elementData.data[0];
            while (var$31 !== null && var$31.$key !== null) {
                var$31 = var$31.$next3;
            }
        } else {
            $par6 = var$32.$value;
            var$33 = var$31.$elementData.data;
            var$31 = var$33[$par6 & (var$33.length - 1 | 0)];
            while (var$31 !== null) {
                if (var$31.$origKeyHash == $par6) {
                    var$34 = var$31.$key;
                    if (var$32 !== var$34 && !jl_Integer_equals(var$32, var$34) ? 0 : 1)
                        break;
                }
                var$31 = var$31.$next3;
            }
        }
        (var$31 === null ? null : var$31.$value0).$watched = 1;
        var$30.$objectChanged = 1;
        if ($var9.$stackTagCompound === null ? 0 : 1) {
            var$31 = nms_EntityItem_getEntityItem($var14);
            var$35 = $var9.$stackTagCompound;
            var$34 = new nms_NBTTagCompound;
            var$32 = var$35.$name;
            if (var$32 === null)
                var$32 = $rt_s(3);
            var$34.$name = var$32;
            var$32 = new ju_HashMap;
            $par6 = ju_HashMap_calculateCapacity(16);
            var$32.$elementCount = 0;
            var$36 = $rt_createArray(ju_HashMap$HashEntry, $par6);
            var$33 = var$36.data;
            var$32.$elementData = var$36;
            var$32.$loadFactor = 0.75;
            var$32.$threshold = var$33.length * 0.75 | 0;
            var$34.$tagMap = var$32;
            var$32 = var$35.$tagMap;
            if (var$32.$cachedKeySet === null) {
                var$30 = new ju_HashMap$1;
                var$30.$this$0 = var$32;
                var$32.$cachedKeySet = var$30;
            }
            var$32 = var$32.$cachedKeySet.$iterator();
            while (var$32.$hasNext()) {
                var$37 = var$32.$next();
                var$30 = var$35.$tagMap;
                if (var$37 === null) {
                    var$30 = var$30.$elementData.data[0];
                    while (var$30 !== null && var$30.$key !== null) {
                        var$30 = var$30.$next3;
                    }
                } else {
                    a: {
                        if (!var$37.$hashCode1) {
                            var$27 = 0;
                            while (true) {
                                if (var$27 >= var$37.$nativeString.length)
                                    break a;
                                var$37.$hashCode1 = (31 * var$37.$hashCode1 | 0) + var$37.$nativeString.charCodeAt(var$27) | 0;
                                var$27 = var$27 + 1 | 0;
                            }
                        }
                    }
                    var$27 = var$37.$hashCode1;
                    var$33 = var$30.$elementData.data;
                    var$30 = var$33[var$27 & (var$33.length - 1 | 0)];
                    while (var$30 !== null) {
                        if (var$30.$origKeyHash == var$27) {
                            b: {
                                var$29 = var$30.$key;
                                if (var$37 !== var$29) {
                                    if (var$37 === var$29)
                                        $par6 = 1;
                                    else if (!(var$29 instanceof jl_String))
                                        $par6 = 0;
                                    else {
                                        var$29 = var$29;
                                        $par6 = var$37.$nativeString !== var$29.$nativeString ? 0 : 1;
                                    }
                                    if (!$par6) {
                                        $par6 = 0;
                                        break b;
                                    }
                                }
                                $par6 = 1;
                            }
                            if ($par6)
                                break;
                        }
                        var$30 = var$30.$next3;
                    }
                }
                var$30 = var$30 === null ? null : var$30.$value0;
                var$30 = var$30.$copy();
                var$29 = var$34.$tagMap;
                if (var$37 !== null)
                    var$30.$name = var$37;
                else
                    var$30.$name = $rt_s(3);
                ju_HashMap_putImpl(var$29, var$37, var$30);
            }
            var$31.$stackTagCompound = var$34;
        }
        $var14.$motionX = nle_EaglercraftRandom_nextGaussian($this.$random0) * 0.05000000074505806;
        $var14.$motionY = nle_EaglercraftRandom_nextGaussian($this.$random0) * 0.05000000074505806 + 0.20000000298023224;
        $var14.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$random0) * 0.05000000074505806;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var14);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            $par6 = $var9.$stackSize;
            if ($par6 > 0) {
                $var14 = $this.$random0;
                var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$21;
                var$26 = Long_lo(Long_shru(var$21, var$11));
                while (true) {
                    var$27 = var$26 % 21 | 0;
                    if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                        break;
                    var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$11));
                }
                $var13 = var$27 + 10 | 0;
                if ($var13 > $par6)
                    $var13 = $par6;
                $var9.$stackSize = $par6 - $var13 | 0;
                $var14 = new nms_EntityItem;
                var$29 = new nms_ItemStack;
                var$27 = $var9.$itemID;
                $par6 = $var9.$itemDamage;
                nms_ItemStack_$callClinit();
                var$29.$itemID = var$27;
                var$29.$stackSize = $var13;
                var$29.$itemDamage = $par6;
                if ($par6 < 0)
                    var$29.$itemDamage = 0;
                $ptr = 4;
                continue main;
            }
            while (true) {
                $var8 = $var8 + 1 | 0;
                if ($var8 >= var$9)
                    break c;
                $var9 = $var7.$dispenserContents.data[$var8];
                if ($var9 === null)
                    continue;
                else
                    break;
            }
            $var14 = $this.$random0;
            var$18 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$18;
            $var10 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$18;
            $var11 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$21;
            $var12 = Long_lo(Long_shru(var$21, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$23 = var$12 + $var10;
            var$24 = var$14 + $var11;
            var$25 = var$15 + $var12;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var14, var$18, $var10, $var11, var$21, $var12, var$23, var$24, var$25, var$26, var$27, $var13, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr);
},
nms_BlockDispenser_getIPositionFromBlockSource = $par0IBlockSource => {
    let var$2, var$3, var$4, var$5, var$6, $var2, $var4, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par0IBlockSource = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par0IBlockSource.$worldObj4;
        var$3 = $par0IBlockSource.$xPos;
        var$4 = $par0IBlockSource.$yPos;
        var$5 = $par0IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        var$3 = var$4 & 7;
        var$6 = nms_EnumFacing_faceList.data;
        var$2 = var$6[var$3 % var$6.length | 0];
        $var2 = $par0IBlockSource.$xPos + 0.5 + 0.7 * var$2.$frontOffsetX;
        $var4 = $par0IBlockSource.$yPos + 0.5 + 0.7 * var$2.$frontOffsetY;
        $var6 = $par0IBlockSource.$zPos + 0.5 + 0.7 * var$2.$frontOffsetZ;
        $par0IBlockSource = new nms_PositionImpl;
        $par0IBlockSource.$x0 = $var2;
        $par0IBlockSource.$y0 = $var4;
        $par0IBlockSource.$z3 = $var6;
        return $par0IBlockSource;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0IBlockSource, var$2, var$3, var$4, var$5, var$6, $var2, $var4, $var6, $ptr);
},
nms_BlockDispenser_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockDispenser_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return nms_Container_calcRedstoneFromInventory($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockDispenser__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nms_RegistryDefaulted;
    var$2 = new nms_BehaviorDefaultDispenseItem;
    var$1.$registryObjects = nms_RegistrySimple_func_111054_a(var$1);
    var$1.$defaultObject = var$2;
    nms_BlockDispenser_dispenseBehaviorRegistry = var$1;
},
nms_BlockSandStone = $rt_classWithoutFields(nms_Block),
nms_BlockSandStone_SAND_STONE_TYPES = null,
nms_BlockSandStone_field_94405_b = null,
nms_BlockSandStone__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockSandStone__init_0 = var_0 => {
    let var_1 = new nms_BlockSandStone();
    nms_BlockSandStone__init_(var_1, var_0);
    return var_1;
},
nms_BlockSandStone_damageDropped = ($this, $par1) => {
    return $par1;
},
nms_BlockSandStone__clinit_ = () => {
    nms_BlockSandStone_SAND_STONE_TYPES = $rt_wrapArray(jl_String, [$rt_s(234), $rt_s(1398), $rt_s(1399)]);
    nms_BlockSandStone_field_94405_b = $rt_wrapArray(jl_String, [$rt_s(84), $rt_s(1400), $rt_s(1399)]);
},
nms_BlockNote = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockNote__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    $this.$isBlockContainer = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockNote__init_0 = var_0 => {
    let var_1 = new nms_BlockNote();
    nms_BlockNote__init_(var_1, var_0);
    return var_1;
},
nms_BlockNote_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var7 = $var7;
        if ($var7 !== null && $var7.$previousRedstoneState != $var6) {
            if ($var6) {
                $ptr = 3;
                continue main;
            }
            $var7.$previousRedstoneState = $var6;
        }
        return;
    case 3:
        nms_TileEntityNote_triggerNote($var7, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7.$previousRedstoneState = $var6;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockNote_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityPlayer = $tmp;
        $var10 = $par5EntityPlayer;
        if ($var10 === null)
            return 1;
        $var10.$note = (($var10.$note + 1 | 0) % 25 | 0) << 24 >> 24;
        $ptr = 2;
    case 2:
        nms_TileEntity_onInventoryChanged($var10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_TileEntityNote_triggerNote($var10, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $ptr);
},
nms_BlockNote_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityPlayer = $tmp;
        $var6 = $par5EntityPlayer;
        if ($var6 === null)
            return;
        $ptr = 2;
    case 2:
        nms_TileEntityNote_triggerNote($var6, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $var6, $ptr);
},
nms_BlockNote_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityNote;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
},
nms_BlockNote_onBlockEventReceived = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = jl_Math_powImpl(2.0, ($par6 - 12 | 0) / 12.0);
        $var8 = $rt_s(1401);
        if ($par5 == 1)
            $var8 = $rt_s(1402);
        if ($par5 == 2)
            $var8 = $rt_s(1403);
        if ($par5 == 3)
            $var8 = $rt_s(1404);
        if ($par5 == 4)
            $var8 = $rt_s(1405);
        var$9 = $par2 + 0.5;
        var$10 = $par3 + 0.5;
        var$11 = $par4 + 0.5;
        var$12 = new jl_StringBuilder;
        var$12.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$12, var$12.$length0, $rt_s(1406));
        jl_AbstractStringBuilder_insert(var$12, var$12.$length0, $var8);
        $var8 = new jl_String;
        var$13 = var$12.$buffer;
        var$14 = var$13.data;
        $par4 = var$12.$length0;
        $par2 = var$14.length;
        if ($par4 >= 0 && $par4 <= ($par2 - 0 | 0)) {
            $var8.$nativeString = $rt_charArrayToString(var$13.data, 0, $par4);
            var$15 = 3.0;
            $ptr = 1;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1World);
        $rt_throw($par1World);
    case 1:
        nms_World_playSoundEffect($par1World, var$9, var$10, var$11, $var8, var$15, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        a: {
            while (true) {
                $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                if ($par3 >= 0)
                    break;
                if ($par2 < 0)
                    break a;
                if ($par3 >= 0)
                    break a;
                $par2 = $par2 + 1 | 0;
            }
            return 1;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockDirectional = $rt_classWithoutFields(nms_Block),
nms_BlockBed = $rt_classWithoutFields(nms_BlockDirectional),
nms_BlockBed_footBlockToHeadBlockMap = null,
nms_BlockBed__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_cloth);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.5625;
    $this.$maxZ1 = 1.0;
},
nms_BlockBed__init_0 = var_0 => {
    let var_1 = new nms_BlockBed();
    nms_BlockBed__init_(var_1, var_0);
    return var_1;
},
nms_BlockBed_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $var12$index, $var11, var$13, $var17, var$15, var$16, var$17, $var19, $var20, $var12$index_0, $var21, $var14, var$23, var$24, var$25, var$26, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var14 = $thread.pop();$var21 = $thread.pop();$var12$index_0 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var17 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();$var12$index = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer
        = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!($var10 & 8) ? 0 : 1) {
            if ($par1World.$provider.$canRespawnHere()) {
                $ptr = 6;
                continue main;
            }
            $par6 = 0;
            $var12$index = 0;
            $var11 = 3;
            $ptr = 4;
            continue main;
        }
        $var11 = $var10 & 3;
        var$13 = nms_BlockBed_footBlockToHeadBlockMap.data;
        $par2 = $par2 + var$13[$var11].data[0] | 0;
        $par4 = $par4 + var$13[$var11].data[1] | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if ($par6 != $this.$blockID)
            return 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($par1World.$provider.$canRespawnHere()) {
            $ptr = 6;
            continue main;
        }
        $par6 = 0;
        $var12$index = 0;
        $var11 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par6, $var12$index, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $var10 & 3;
        var$13 = nms_BlockBed_footBlockToHeadBlockMap.data;
        $par6 = $par2 + var$13[$var17].data[0] | 0;
        $par2 = $par4 + var$13[$var17].data[1] | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par6, $par3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4 == $this.$blockID) {
            $par4 = 0;
            $var12$index = 0;
            $var10 = 3;
            $ptr = 8;
            continue main;
        }
        $par5EntityPlayer = null;
        var$15 = $par6 + 0.5;
        var$16 = $par3 + 0.5;
        var$17 = $par2 + 0.5;
        $par7 = 5.0;
        $par2 = 1;
        $par3 = 1;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBiomeGenForCoords($par1World, $par2, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        nms_BiomeGenBase_$callClinit();
        if ($var19 === nms_BiomeGenBase_hell) {
            $par6 = 0;
            $var12$index = 0;
            $var11 = 3;
            $ptr = 4;
            continue main;
        }
        if (!(!($var10 & 4) ? 0 : 1)) {
            $ptr = 9;
            continue main;
        }
        $var19 = null;
        $var20 = $par1World.$playerEntities;
        $var12$index_0 = 0;
        $var10 = $var20.$modCount;
        $var11 = $var20.$size();
        while (true) {
            if (!($var12$index_0 >= $var11 ? 0 : 1)) {
                if ($var19 !== null) {
                    nms_StringTranslate_$callClinit();
                    $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1407));
                    $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                    $var19 = new nms_Packet3Chat;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var19.$isServer = 1;
                    $par4 = $par1World.$nativeString.length;
                    $par3 = nms_Packet3Chat_maxChatLength;
                    if ($par4 > $par3)
                        $par1World = jl_String_substring($par1World, 0, $par3);
                    a: {
                        $var19.$message1 = $par1World;
                        $var19.$isServer = 1;
                        if ($var19 instanceof nms_Packet3Chat) {
                            $par1World = $var19;
                            $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                            if ($par3 == 2)
                                break a;
                            if ($par3 == 1 && !$par1World.$isServer)
                                break a;
                        }
                        try {
                            $par1World = $par5EntityPlayer.$netManager;
                            $ptr = 17;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1World = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $par5EntityPlayer = new otcic_JSStderrPrintStream;
                            $var19 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_($var19);
                            $var19.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                            $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                            $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                            $par5EntityPlayer.$autoFlush = 0;
                            $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $par5EntityPlayer;
                        }
                        jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                    }
                    return 1;
                }
                $ptr = 12;
                continue main;
            }
            if ($var10 < $var20.$modCount)
                break;
            $var12$index = $var12$index_0 + 1 | 0;
            $var21 = $var20.$get($var12$index_0);
            if ($var21.$sleeping) {
                $var14 = $var21.$playerLocation;
                if ($var14.$posX0 == $par2 && $var14.$posY0 == $par3 && $var14.$posZ0 == $par4)
                    $var19 = $var21;
            }
            $var12$index_0 = $var12$index;
        }
        $par1World = new ju_ConcurrentModificationException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 7:
        nms_WorldServer_newExplosion($par1World, $par5EntityPlayer, var$15, var$16, var$17, $par7, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 8:
        nms_World_setBlock($par1World, $par6, $par3, $par2, $par4, $var12$index, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityPlayer = null;
        var$15 = $par6 + 0.5;
        var$16 = $par3 + 0.5;
        var$17 = $par2 + 0.5;
        $par7 = 5.0;
        $par2 = 1;
        $par3 = 1;
        $ptr = 7;
        continue main;
    case 9:
        $tmp = nms_EntityPlayer_sleepInBedAt($par5EntityPlayer, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        if ($var20 === nms_EnumStatus_OK) {
            $var19 = new nms_Packet17Sleep;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var19.$field_73622_e = 0;
            $var19.$bedX = $par2;
            $var19.$bedY = $par3;
            $var19.$bedZ = $par4;
            $var11 = $par5EntityPlayer.$entityId;
            $var19.$entityID0 = $var11;
            $var21 = $par5EntityPlayer.$worldObj.$theEntityTracker.$trackedEntityIDs;
            $par6 = $var11 ^ ($var11 >>> 20 | 0) ^ ($var11 >>> 12 | 0);
            $var10 = $par6 ^ ($par6 >>> 7 | 0) ^ ($par6 >>> 4 | 0);
            var$13 = $var21.$slots.data;
            $var21 = var$13[$var10 & (var$13.length - 1 | 0)];
            b: {
                while ($var21 !== null) {
                    if ($var21.$hashEntry == $var11) {
                        $var21 = $var21.$valueEntry;
                        break b;
                    }
                    $var21 = $var21.$nextEntry0;
                }
                $var21 = null;
            }
            $var21 = $var21;
            if ($var21 !== null) {
                $var21 = $var21.$trackingPlayers.$backingMap;
                if ($var21.$cachedKeySet === null) {
                    $var14 = new ju_HashMap$1;
                    $var14.$this$0 = $var21;
                    jl_Object__init_($var14);
                    $var21.$cachedKeySet = $var14;
                }
                var$23 = $var21.$cachedKeySet.$iterator();
                $var12$index = $var19 instanceof nms_Packet3Chat;
                $var14 = $var19;
                while (var$23.$hasNext()) {
                    c: {
                        $var21 = (var$23.$next()).$playerNetServerHandler;
                        if ($var12$index) {
                            $var10 = $var21.$playerEntity.$chatVisibility;
                            if ($var10 == 2)
                                break c;
                            if ($var10 == 1 && !$var14.$isServer)
                                break c;
                        }
                        try {
                            $var21 = $var21.$netManager;
                            $ptr = 19;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var21 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$24 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$24, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$24;
                        }
                        jl_Throwable_printStackTrace($var21, jl_System_errCache);
                    }
                }
            }
            d: {
                $var21 = $par5EntityPlayer.$playerNetServerHandler;
                var$15 = $par5EntityPlayer.$posX;
                var$16 = $par5EntityPlayer.$posY;
                var$17 = $par5EntityPlayer.$posZ;
                $par7 = $par5EntityPlayer.$rotationYaw;
                $par8 = $par5EntityPlayer.$rotationPitch;
                $var21.$hasMoved = 0;
                $var21.$lastPosX = var$15;
                $var21.$lastPosY = var$16;
                $var21.$lastPosZ = var$17;
                nms_Entity_setPositionAndRotation($var21.$playerEntity, var$15, var$16, var$17, $par7, $par8);
                $var21 = $var21.$playerEntity.$playerNetServerHandler;
                $var14 = new nms_Packet13PlayerLookMove;
                var$25 = var$16 + 1.6200000047683716;
                $var14.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var14.$xPosition = var$15;
                $var14.$yPosition = var$25;
                $var14.$stance = var$16;
                $var14.$zPosition = var$17;
                $var14.$yaw = $par7;
                $var14.$pitch = $par8;
                $var14.$onGround0 = 0;
                $var14.$rotating = 1;
                $var14.$moving = 1;
                if ($var14 instanceof nms_Packet3Chat) {
                    var$24 = $var14;
                    $var12$index = $var21.$playerEntity.$chatVisibility;
                    if ($var12$index == 2)
                        break d;
                    if ($var12$index == 1 && !var$24.$isServer)
                        break d;
                }
                try {
                    $var21 = $var21.$netManager;
                    $ptr = 15;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var21 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var14 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($var14, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $var14;
                }
                jl_Throwable_printStackTrace($var21, jl_System_errCache);
            }
            e: {
                $var21 = $par5EntityPlayer.$playerNetServerHandler;
                if ($var19 instanceof nms_Packet3Chat) {
                    $var14 = $var19;
                    $var12$index = $var21.$playerEntity.$chatVisibility;
                    if ($var12$index == 2)
                        break e;
                    if ($var12$index == 1 && !$var14.$isServer)
                        break e;
                }
                try {
                    $var21 = $var21.$netManager;
                    $ptr = 18;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var19 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var21 = new otcic_JSStderrPrintStream;
                    $var14 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var14);
                    $var14.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var21, $var14);
                    $var21.$sb = jl_StringBuilder__init_();
                    $var21.$buffer0 = $rt_createCharArray(32);
                    $var21.$autoFlush = 0;
                    $var21.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var21;
                }
                jl_Throwable_printStackTrace($var19, jl_System_errCache);
            }
        }
        if ($var20 !== nms_EnumStatus_OK) {
            if ($var20 === nms_EnumStatus_NOT_POSSIBLE_NOW) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1408));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                f: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break f;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break f;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 14;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            } else if ($var20 === nms_EnumStatus_NOT_SAFE) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1409));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                g: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break g;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break g;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 16;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            }
            return 1;
        }
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        $var12$index = $par6 | 4;
        $par6 = 4;
        $ptr = 11;
    case 11:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var12$index, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 12:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        $var12$index = $par6 & (-5);
        $par6 = 4;
        $ptr = 13;
    case 13:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var12$index, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
        continue main;
    case 14:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1World, $var19);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par5EntityPlayer = new otcic_JSStderrPrintStream;
                $var19 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var19);
                $var19.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par5EntityPlayer.$autoFlush = 0;
                $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par5EntityPlayer;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        return 1;
    case 15:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var21, $var14);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var21 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var14 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var14, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var14;
            }
            jl_Throwable_printStackTrace($var21, jl_System_errCache);
        }
        i: {
            $var21 = $par5EntityPlayer.$playerNetServerHandler;
            if ($var19 instanceof nms_Packet3Chat) {
                $var14 = $var19;
                $var12$index = $var21.$playerEntity.$chatVisibility;
                if ($var12$index == 2)
                    break i;
                if ($var12$index == 1 && !$var14.$isServer)
                    break i;
            }
            try {
                $var21 = $var21.$netManager;
                $ptr = 18;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var19 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var21 = new otcic_JSStderrPrintStream;
                $var14 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var14);
                $var14.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var21, $var14);
                $var21.$sb = jl_StringBuilder__init_();
                $var21.$buffer0 = $rt_createCharArray(32);
                $var21.$autoFlush = 0;
                $var21.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var21;
            }
            jl_Throwable_printStackTrace($var19, jl_System_errCache);
        }
        if ($var20 !== nms_EnumStatus_OK) {
            if ($var20 === nms_EnumStatus_NOT_POSSIBLE_NOW) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1408));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                j: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break j;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break j;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 14;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            } else if ($var20 === nms_EnumStatus_NOT_SAFE) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1409));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                k: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break k;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break k;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 16;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            }
            return 1;
        }
        $ptr = 10;
        continue main;
    case 16:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1World, $var19);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par5EntityPlayer = new otcic_JSStderrPrintStream;
                $var19 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var19);
                $var19.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par5EntityPlayer.$autoFlush = 0;
                $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par5EntityPlayer;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        return 1;
    case 17:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1World, $var19);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par5EntityPlayer = new otcic_JSStderrPrintStream;
                $var19 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var19);
                $var19.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par5EntityPlayer.$autoFlush = 0;
                $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par5EntityPlayer;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        return 1;
    case 18:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var21, $var19);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var19 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var21 = new otcic_JSStderrPrintStream;
                $var14 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var14);
                $var14.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var21, $var14);
                $var21.$sb = jl_StringBuilder__init_();
                $var21.$buffer0 = $rt_createCharArray(32);
                $var21.$autoFlush = 0;
                $var21.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var21;
            }
            jl_Throwable_printStackTrace($var19, jl_System_errCache);
        }
        if ($var20 !== nms_EnumStatus_OK) {
            if ($var20 === nms_EnumStatus_NOT_POSSIBLE_NOW) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1408));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                l: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break l;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break l;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 14;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            } else if ($var20 === nms_EnumStatus_NOT_SAFE) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1409));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                m: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break m;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break m;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 16;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            }
            return 1;
        }
        $ptr = 10;
        continue main;
    case 19:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var21, $var19);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var21 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$24 = jl_System_errCache;
            if (var$24 === null) {
                var$24 = new otcic_JSStderrPrintStream;
                var$26 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$24, var$26);
                jl_System_errCache = var$24;
            }
            var$24 = jl_System_errCache;
            jl_Throwable_printStackTrace($var21, var$24);
        }
        i: while (true) {
            while (true) {
                if (!var$23.$hasNext())
                    break i;
                $var21 = (var$23.$next()).$playerNetServerHandler;
                if (!$var12$index)
                    break;
                $var10 = $var21.$playerEntity.$chatVisibility;
                if ($var10 == 2)
                    continue;
                if ($var10 != 1)
                    break;
                if ($var14.$isServer)
                    break;
            }
            try {
                $var21 = $var21.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var21 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$24 = jl_System_errCache;
            if (var$24 === null) {
                var$24 = new otcic_JSStderrPrintStream;
                var$26 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$24, var$26);
                jl_System_errCache = var$24;
            }
            var$24 = jl_System_errCache;
            jl_Throwable_printStackTrace($var21, var$24);
        }
        n: {
            $var21 = $par5EntityPlayer.$playerNetServerHandler;
            var$15 = $par5EntityPlayer.$posX;
            var$16 = $par5EntityPlayer.$posY;
            var$17 = $par5EntityPlayer.$posZ;
            $par7 = $par5EntityPlayer.$rotationYaw;
            $par8 = $par5EntityPlayer.$rotationPitch;
            $var21.$hasMoved = 0;
            $var21.$lastPosX = var$15;
            $var21.$lastPosY = var$16;
            $var21.$lastPosZ = var$17;
            nms_Entity_setPositionAndRotation($var21.$playerEntity, var$15, var$16, var$17, $par7, $par8);
            $var21 = $var21.$playerEntity.$playerNetServerHandler;
            $var14 = new nms_Packet13PlayerLookMove;
            var$25 = var$16 + 1.6200000047683716;
            $var14.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var14.$xPosition = var$15;
            $var14.$yPosition = var$25;
            $var14.$stance = var$16;
            $var14.$zPosition = var$17;
            $var14.$yaw = $par7;
            $var14.$pitch = $par8;
            $var14.$onGround0 = 0;
            $var14.$rotating = 1;
            $var14.$moving = 1;
            if ($var14 instanceof nms_Packet3Chat) {
                var$24 = $var14;
                $var12$index = $var21.$playerEntity.$chatVisibility;
                if ($var12$index == 2)
                    break n;
                if ($var12$index == 1 && !var$24.$isServer)
                    break n;
            }
            try {
                $var21 = $var21.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var21 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var14 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var14, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var14;
            }
            jl_Throwable_printStackTrace($var21, jl_System_errCache);
        }
        o: {
            $var21 = $par5EntityPlayer.$playerNetServerHandler;
            if ($var19 instanceof nms_Packet3Chat) {
                $var14 = $var19;
                $var12$index = $var21.$playerEntity.$chatVisibility;
                if ($var12$index == 2)
                    break o;
                if ($var12$index == 1 && !$var14.$isServer)
                    break o;
            }
            try {
                $var21 = $var21.$netManager;
                $ptr = 18;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var19 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var21 = new otcic_JSStderrPrintStream;
                $var14 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var14);
                $var14.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var21, $var14);
                $var21.$sb = jl_StringBuilder__init_();
                $var21.$buffer0 = $rt_createCharArray(32);
                $var21.$autoFlush = 0;
                $var21.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var21;
            }
            jl_Throwable_printStackTrace($var19, jl_System_errCache);
        }
        if ($var20 !== nms_EnumStatus_OK) {
            if ($var20 === nms_EnumStatus_NOT_POSSIBLE_NOW) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1408));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                p: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break p;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break p;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 14;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            } else if ($var20 === nms_EnumStatus_NOT_SAFE) {
                nms_StringTranslate_$callClinit();
                $par1World = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $rt_s(1409));
                $par5EntityPlayer = $par5EntityPlayer.$playerNetServerHandler;
                $var19 = new nms_Packet3Chat;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var19.$isServer = 1;
                $par4 = $par1World.$nativeString.length;
                $par3 = nms_Packet3Chat_maxChatLength;
                if ($par4 > $par3)
                    $par1World = jl_String_substring($par1World, 0, $par3);
                q: {
                    $var19.$message1 = $par1World;
                    $var19.$isServer = 1;
                    if ($var19 instanceof nms_Packet3Chat) {
                        $par1World = $var19;
                        $par3 = $par5EntityPlayer.$playerEntity.$chatVisibility;
                        if ($par3 == 2)
                            break q;
                        if ($par3 == 1 && !$par1World.$isServer)
                            break q;
                    }
                    try {
                        $par1World = $par5EntityPlayer.$netManager;
                        $ptr = 16;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1World = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par5EntityPlayer = new otcic_JSStderrPrintStream;
                        $var19 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var19);
                        $var19.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par5EntityPlayer, $var19);
                        $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                        $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                        $par5EntityPlayer.$autoFlush = 0;
                        $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par5EntityPlayer;
                    }
                    jl_Throwable_printStackTrace($par1World, jl_System_errCache);
                }
            }
            return 1;
        }
        $ptr = 10;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $var12$index, $var11, var$13, $var17, var$15, var$16, var$17, $var19, $var20, $var12$index_0, $var21, $var14, var$23, var$24, var$25, var$26, $ptr);
},
nms_BlockBed_getRenderType = $this => {
    return 14;
},
nms_BlockBed_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockBed_isOpaqueCube = $this => {
    return 0;
},
nms_BlockBed_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.5625;
    $this.$maxZ1 = 1.0;
},
nms_BlockBed_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $var6 & 3;
        var$8 = $var6 & 8;
        if (!(!var$8 ? 0 : 1)) {
            var$9 = nms_BlockBed_footBlockToHeadBlockMap.data;
            $par5 = $par2 + var$9[$var7].data[0] | 0;
            $var7 = $par4 + var$9[$var7].data[1] | 0;
            $ptr = 2;
            continue main;
        }
        var$9 = nms_BlockBed_footBlockToHeadBlockMap.data;
        $par5 = $par2 - var$9[$var7].data[0] | 0;
        $var7 = $par4 - var$9[$var7].data[1] | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == $this.$blockID)
            return;
        $par5 = 0;
        $var7 = 0;
        var$10 = 3;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == $this.$blockID)
            return;
        $par5 = 0;
        $var7 = 0;
        $var6 = 3;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par1World.$isRemote) {
            var$11 = 1.0;
            if (!(!var$8 ? 0 : 1)) {
                $par5 = 0;
                $ptr = 6;
                continue main;
            }
        }
        return;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var6, var$11, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockBed_idDropped = ($this, $par1, $par2Random, $par3) => {
    if (!($par1 & 8) ? 0 : 1)
        $par1 = 0;
    else {
        nms_Item_$callClinit();
        $par1 = nms_Item_bed.$itemID0;
    }
    return $par1;
},
nms_BlockBed_getNearestEmptyChunkCoordinates = ($par0World, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, var$9, var$10, var$11, $var12, $var9, $var10, $var11, $var13, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par0World, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $var5 & 3;
        $var7 = 0;
        var$9 = $par2 - 1 | 0;
        var$10 = $par2 + 1 | 0;
        while ($var7 <= 1) {
            var$11 = nms_BlockBed_footBlockToHeadBlockMap.data;
            $var12 = ($par1 - $rt_imul(var$11[$var6].data[0], $var7) | 0) - 1 | 0;
            $var9 = ($par3 - $rt_imul(var$11[$var6].data[1], $var7) | 0) - 1 | 0;
            $var10 = $var12 + 2 | 0;
            $var11 = $var9 + 2 | 0;
            while ($var12 <= $var10) {
                $var13 = $var9;
                if ($var13 <= $var11) {
                    nms_Block_$callClinit();
                    var$11 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var7 = $var7 + 1 | 0;
        }
        return null;
    case 2:
        $tmp = nms_World_getBlockId($par0World, $var12, var$9, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$17 = var$11[$var5];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par0World, $var12, var$9, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par0World, var$17, $var5)) {
            $ptr = 4;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        a: while (true) {
            if ($var13 <= $var11) {
                nms_Block_$callClinit();
                var$11 = nms_Block_blocksList.data;
                $ptr = 2;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var10) {
                $var7 = $var7 + 1 | 0;
                if ($var7 > 1)
                    break a;
                var$11 = nms_BlockBed_footBlockToHeadBlockMap.data;
                $var12 = ($par1 - $rt_imul(var$11[$var6].data[0], $var7) | 0) - 1 | 0;
                $var9 = ($par3 - $rt_imul(var$11[$var6].data[1], $var7) | 0) - 1 | 0;
                $var10 = $var12 + 2 | 0;
                $var11 = $var9 + 2 | 0;
            }
            $var13 = $var9;
        }
        return null;
    case 4:
        $tmp = nms_World_getBlockId($par0World, $var12, $par2, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5) {
            nms_Material_$callClinit();
            var$17 = nms_Material_air;
        } else
            var$17 = nms_Block_blocksList.data[$var5].$blockMaterial;
        if (!(!var$17.$isTranslucent ? var$17.$blocksMovement() : 0)) {
            $ptr = 5;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        b: while (true) {
            if ($var13 <= $var11) {
                nms_Block_$callClinit();
                var$11 = nms_Block_blocksList.data;
                $ptr = 2;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var10) {
                $var7 = $var7 + 1 | 0;
                if ($var7 > 1)
                    break b;
                var$11 = nms_BlockBed_footBlockToHeadBlockMap.data;
                $var12 = ($par1 - $rt_imul(var$11[$var6].data[0], $var7) | 0) - 1 | 0;
                $var9 = ($par3 - $rt_imul(var$11[$var6].data[1], $var7) | 0) - 1 | 0;
                $var10 = $var12 + 2 | 0;
                $var11 = $var9 + 2 | 0;
            }
            $var13 = $var9;
        }
        return null;
    case 5:
        $tmp = nms_World_getBlockId($par0World, $var12, var$10, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5) {
            nms_Material_$callClinit();
            var$17 = nms_Material_air;
        } else
            var$17 = nms_Block_blocksList.data[$var5].$blockMaterial;
        if (!(!var$17.$isTranslucent ? var$17.$blocksMovement() : 0)) {
            if ($par4 <= 0) {
                $par0World = new nms_ChunkCoordinates;
                $par0World.$posX0 = $var12;
                $par0World.$posY0 = $par2;
                $par0World.$posZ0 = $var13;
                return $par0World;
            }
            $par4 = $par4 + (-1) | 0;
        }
        $var13 = $var13 + 1 | 0;
        c: while (true) {
            if ($var13 <= $var11) {
                nms_Block_$callClinit();
                var$11 = nms_Block_blocksList.data;
                $ptr = 2;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var10) {
                $var7 = $var7 + 1 | 0;
                if ($var7 > 1)
                    break c;
                var$11 = nms_BlockBed_footBlockToHeadBlockMap.data;
                $var12 = ($par1 - $rt_imul(var$11[$var6].data[0], $var7) | 0) - 1 | 0;
                $var9 = ($par3 - $rt_imul(var$11[$var6].data[1], $var7) | 0) - 1 | 0;
                $var10 = $var12 + 2 | 0;
                $var11 = $var9 + 2 | 0;
            }
            $var13 = $var9;
        }
        return null;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par3, $par4, $var5, $var6, $var7, var$9, var$10, var$11, $var12, $var9, $var10, $var11, $var13, var$17, $ptr);
},
nms_BlockBed_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($par5 & 8) ? 0 : 1)
            return;
        $par7 = 0;
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $ptr);
},
nms_BlockBed_getMobilityFlag = $this => {
    return 1;
},
nms_BlockBed_onBlockHarvested = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer) => {
    let $var7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6EntityPlayer = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par6EntityPlayer.$capabilities.$isCreativeMode && (!($par5 & 8) ? 0 : 1)) {
            $var7 = $par5 & 3;
            var$8 = nms_BlockBed_footBlockToHeadBlockMap.data;
            $par2 = $par2 - var$8[$var7].data[0] | 0;
            $par4 = $par4 - var$8[$var7].data[1] | 0;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 != $this.$blockID)
            return;
        $par5 = 0;
        $var7 = 0;
        var$9 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer, $var7, var$8, var$9, $ptr);
},
nms_BlockBed__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray($rt_arraycls($rt_intcls), 4);
    var$2 = var$1.data;
    var$2[0] = $rt_createIntArrayFromData([0, 1]);
    var$2[1] = $rt_createIntArrayFromData([(-1), 0]);
    var$2[2] = $rt_createIntArrayFromData([0, (-1)]);
    var$2[3] = $rt_createIntArrayFromData([1, 0]);
    nms_BlockBed_footBlockToHeadBlockMap = var$1;
};
function nms_BlockRailBase() {
    nms_Block.call(this);
    this.$isPowered = 0;
}
let nms_BlockRailBase_isRailBlock = $par0 => {
    nms_Block_$callClinit();
    return $par0 != nms_Block_rail.$blockID && $par0 != nms_Block_railPowered.$blockID && $par0 != nms_Block_railDetector.$blockID && $par0 != nms_Block_railActivator.$blockID ? 0 : 1;
},
nms_BlockRailBase_isPowered = $this => {
    return $this.$isPowered;
},
nms_BlockRailBase_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockRailBase_isOpaqueCube = $this => {
    return 0;
},
nms_BlockRailBase_collisionRayTrace = ($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6Vec3 = $thread.pop();$par5Vec3 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRailBase_setBlockBoundsBasedOnState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_Block_collisionRayTrace($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3, $ptr);
},
nms_BlockRailBase_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 >= 2 && $var5 <= 5) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.625;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.125;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockRailBase_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockRailBase_getRenderType = $this => {
    return 9;
},
nms_BlockRailBase_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockRailBase_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = var$5[var$6];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, $par2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockRailBase_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par1World.$isRemote;
        if (!var$5) {
            var$6 = 1;
            if (!var$5) {
                var$7 = new nms_BlockBaseRailLogic;
                $ptr = 1;
                continue main;
            }
            if ($this.$isPowered) {
                var$5 = $this.$blockID;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 1:
        nms_BlockBaseRailLogic__init_(var$7, $this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $ptr = 3;
    case 3:
        nms_BlockBaseRailLogic_func_94511_a(var$7, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$isPowered)
            return;
        var$5 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_BlockRailBase_onNeighborBlockChange($this, $par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockRailBase_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, $var8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$7 = !$this.$isPowered ? $var6 : $var6 & 7;
        $var8 = 0;
        var$9 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$10 = nms_Block_blocksList.data;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$9, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$12 = var$10[var$11];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$9, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$12, var$9))
            $var8 = 1;
        if (var$7 == 2) {
            var$9 = $par2 + 1 | 0;
            var$10 = nms_Block_blocksList.data;
            $ptr = 4;
            continue main;
        }
        if (var$7 == 3) {
            var$9 = $par2 - 1 | 0;
            var$10 = nms_Block_blocksList.data;
            $ptr = 6;
            continue main;
        }
        if (var$7 == 4) {
            var$9 = $par4 - 1 | 0;
            var$10 = nms_Block_blocksList.data;
            $ptr = 8;
            continue main;
        }
        if (var$7 != 5) {
            if (!$var8) {
                $ptr = 12;
                continue main;
            }
            $ptr = 13;
            continue main;
        }
        var$9 = $par4 + 1 | 0;
        var$10 = nms_Block_blocksList.data;
        $ptr = 10;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$12 = var$10[var$11];
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$12, var$9))
            $var8 = 1;
        if (var$7 == 3) {
            var$9 = $par2 - 1 | 0;
            var$10 = nms_Block_blocksList.data;
            $ptr = 6;
            continue main;
        }
        if (var$7 == 4) {
            var$9 = $par4 - 1 | 0;
            var$10 = nms_Block_blocksList.data;
            $ptr = 8;
            continue main;
        }
        if (var$7 != 5) {
            if (!$var8) {
                $ptr = 12;
                continue main;
            }
            $ptr = 13;
            continue main;
        }
        var$9 = $par4 + 1 | 0;
        var$10 = nms_Block_blocksList.data;
        $ptr = 10;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$12 = var$10[var$11];
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$12, var$9))
            $var8 = 1;
        if (var$7 == 4) {
            var$9 = $par4 - 1 | 0;
            var$10 = nms_Block_blocksList.data;
            $ptr = 8;
            continue main;
        }
        if (var$7 != 5) {
            if (!$var8) {
                $ptr = 12;
                continue main;
            }
            $ptr = 13;
            continue main;
        }
        var$9 = $par4 + 1 | 0;
        var$10 = nms_Block_blocksList.data;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$12 = var$10[var$11];
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$12, var$9))
            $var8 = 1;
        if (var$7 != 5) {
            if (!$var8) {
                $ptr = 12;
                continue main;
            }
            $ptr = 13;
            continue main;
        }
        var$9 = $par4 + 1 | 0;
        var$10 = nms_Block_blocksList.data;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$12 = var$10[var$11];
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$12, var$9))
            $var8 = 1;
        if (!$var8) {
            $ptr = 12;
            continue main;
        }
        $ptr = 13;
        continue main;
    case 12:
        $this.$func_94358_a($par1World, $par2, $par3, $par4, $var6, var$7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 13:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$9 = 0;
        var$13 = 1.0;
        $ptr = 14;
    case 14:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$13, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$9 = 0;
        $var6 = 3;
        $ptr = 15;
    case 15:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$9, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, $var8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockRailBase_func_94358_a = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    return;
},
nms_BlockRailBase_refreshTrackShape = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        var$6 = new nms_BlockBaseRailLogic;
        $ptr = 1;
    case 1:
        nms_BlockBaseRailLogic__init_(var$6, $this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $ptr = 3;
    case 3:
        nms_BlockBaseRailLogic_func_94511_a(var$6, $par2, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockRailBase_getMobilityFlag = $this => {
    return 0;
},
nms_BlockRailBase_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isPowered)
            $par6 = $par6 & 7;
        if ($par6 != 2 && $par6 != 3 && $par6 != 4 && $par6 != 5) {
            if (!$this.$isPowered)
                return;
            $ptr = 2;
            continue main;
        }
        $par6 = $par3 + 1 | 0;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par6, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$isPowered)
            return;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 - 1 | 0;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockRailPowered = $rt_classWithoutFields(nms_BlockRailBase),
nms_BlockRailPowered__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$isPowered = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabTransport;
},
nms_BlockRailPowered__init_ = var_0 => {
    let var_1 = new nms_BlockRailPowered();
    nms_BlockRailPowered__init_0(var_1, var_0);
    return var_1;
},
nms_BlockRailPowered_func_94360_a = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7 >= 8)
            return 0;
        a: {
            $var8 = $par5 & 7;
            $var9 = 1;
            switch ($var8) {
                case 0:
                    if (!$par6) {
                        $par4 = $par4 + (-1) | 0;
                        break a;
                    }
                    $par4 = $par4 + 1 | 0;
                    break a;
                case 1:
                    if (!$par6) {
                        $par2 = $par2 + 1 | 0;
                        break a;
                    }
                    $par2 = $par2 + (-1) | 0;
                    break a;
                case 2:
                    if ($par6)
                        $par2 = $par2 + (-1) | 0;
                    else {
                        $par2 = $par2 + 1 | 0;
                        $par3 = $par3 + 1 | 0;
                        $var9 = 0;
                    }
                    $var8 = 1;
                    break a;
                case 3:
                    if (!$par6)
                        $par2 = $par2 + 1 | 0;
                    else {
                        $par2 = $par2 + (-1) | 0;
                        $par3 = $par3 + 1 | 0;
                        $var9 = 0;
                    }
                    $var8 = 1;
                    break a;
                case 4:
                    if ($par6)
                        $par4 = $par4 + 1 | 0;
                    else {
                        $par4 = $par4 + (-1) | 0;
                        $par3 = $par3 + 1 | 0;
                        $var9 = 0;
                    }
                    $var8 = 0;
                    break a;
                case 5:
                    if (!$par6)
                        $par4 = $par4 + (-1) | 0;
                    else {
                        $par4 = $par4 + 1 | 0;
                        $par3 = $par3 + 1 | 0;
                        $var9 = 0;
                    }
                    $var8 = 0;
                    break a;
                default:
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRailPowered_func_94361_a($this, $par1World, $par2, $par3, $par4, $par6, $par7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            $par2 = 1;
        else {
            if ($var9) {
                $par3 = $par3 - 1 | 0;
                $ptr = 2;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 2:
        $tmp = nms_BlockRailPowered_func_94361_a($this, $par1World, $par2, $par3, $par4, $par6, $par7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $var9, $ptr);
},
nms_BlockRailPowered_func_94361_a = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 != $this.$blockID)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var10 = $var9 & 7;
        if ($par7 == 1 && !($var10 && $var10 != 4 && $var10 != 5))
            return 0;
        if (!$par7 && !($var10 != 1 && $var10 != 2 && $var10 != 3))
            return 0;
        if (!($var9 & 8))
            return 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if ($par7)
            return 1;
        $par6 = $par6 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_BlockRailPowered_func_94360_a($this, $par1World, $par2, $par3, $par4, $var9, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $var9, $var10, $ptr);
},
nms_BlockRailPowered_func_94358_a = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8) {
            $var8 = 1;
            $par7 = 0;
            $ptr = 2;
            continue main;
        }
        if (1 && !($par5 & 8)) {
            $par5 = $par6 | 8;
            $par7 = 3;
            $ptr = 4;
            continue main;
        }
        if (!1 && $par5 & 8) {
            $par5 = 3;
            $ptr = 5;
            continue main;
        }
        if (!0)
            return;
        $par5 = $par3 - 1 | 0;
        $par7 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_BlockRailPowered_func_94360_a($this, $par1World, $par2, $par3, $par4, $par5, $var8, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7) {
            $par7 = 0;
            $var8 = 0;
            $ptr = 3;
            continue main;
        }
        if (1 && !($par5 & 8)) {
            $par5 = $par6 | 8;
            $par7 = 3;
            $ptr = 4;
            continue main;
        }
        if (!1 && $par5 & 8) {
            $par5 = 3;
            $ptr = 5;
            continue main;
        }
        if (!0)
            return;
        $par5 = $par3 - 1 | 0;
        $par7 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_BlockRailPowered_func_94360_a($this, $par1World, $par2, $par3, $par4, $par5, $par7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        $par7 = $par7 ? 1 : 0;
        if ($par7 && !($par5 & 8)) {
            $par5 = $par6 | 8;
            $par7 = 3;
            $ptr = 4;
            continue main;
        }
        if (!$par7 && $par5 & 8) {
            $par5 = 3;
            $ptr = 5;
            continue main;
        }
        if (!0)
            return;
        $par5 = $par3 - 1 | 0;
        $par7 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $par7);
        if ($rt_suspending()) {
            break main;
        }
        if (!1)
            return;
        $par5 = $par3 - 1 | 0;
        $par7 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        if (!1)
            return;
        $par5 = $par3 - 1 | 0;
        $par7 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par5, $par4, $par7);
        if ($rt_suspending()) {
            break main;
        }
        if ($par6 != 2 && $par6 != 3 && $par6 != 4 && $par6 != 5)
            return;
        $par3 = $par3 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 7;
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $ptr);
},
nms_BlockDetectorRail = $rt_classWithoutFields(nms_BlockRailBase),
nms_BlockDetectorRail__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$isPowered = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabTransport;
    $this.$needsRandomTick = 1;
},
nms_BlockDetectorRail__init_ = var_0 => {
    let var_1 = new nms_BlockDetectorRail();
    nms_BlockDetectorRail__init_0(var_1, var_0);
    return var_1;
},
nms_BlockDetectorRail_canProvidePower = $this => {
    return 1;
},
nms_BlockDetectorRail_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 & 8)
            return;
        $ptr = 2;
    case 2:
        nms_BlockDetectorRail_setStateIfMinecartInteractsWithRail($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $var6, $ptr);
},
nms_BlockDetectorRail_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 & 8))
            return;
        $ptr = 2;
    case 2:
        nms_BlockDetectorRail_setStateIfMinecartInteractsWithRail($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, $ptr);
},
nms_BlockDetectorRail_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !($par2 & 8) ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockDetectorRail_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !($par2 & 8) ? 0 : $par5 != 1 ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockDetectorRail_setStateIfMinecartInteractsWithRail = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $var9, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var9 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = !($par5 & 8) ? 0 : 1;
        $var7 = 0;
        var$8 = $rt_cls(nms_EntityMinecart);
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par2 + 0.125;
        var$11 = $par3;
        var$12 = $par4 + 0.125;
        var$13 = ($par2 + 1 | 0) - 0.125;
        var$14 = ($par3 + 1 | 0) - 0.125;
        var$15 = ($par4 + 1 | 0) - 0.125;
        var$16 = var$9.$nextPoolIndex;
        $var9 = var$9.$listAABB;
        var$18 = $var9.$size0;
        var$19 = $rt_compare(var$16, var$18);
        if (var$19 >= 0) {
            var$20 = new nms_AxisAlignedBB;
            var$20.$minX0 = var$10;
            var$20.$minY0 = var$11;
            var$20.$minZ0 = var$12;
            var$20.$maxX0 = var$13;
            var$20.$maxY = var$14;
            var$20.$maxZ0 = var$15;
            ju_ArrayList_ensureCapacity($var9, var$18 + 1 | 0);
            var$21 = $var9.$array.data;
            var$19 = $var9.$size0;
            $var9.$size0 = var$19 + 1 | 0;
            var$21[var$19] = var$20;
            $var9.$modCount = $var9.$modCount + 1 | 0;
        } else if (var$16 >= 0 && var$19 < 0) {
            var$20 = $var9.$array.data[var$16];
            var$20.$minX0 = var$10;
            var$20.$minY0 = var$11;
            var$20.$minZ0 = var$12;
            var$20.$maxX0 = var$13;
            var$20.$maxY = var$14;
            var$20.$maxZ0 = var$15;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $var9 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, var$8, var$20, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!($var9.$size0 ? 0 : 1))
            $var7 = 1;
        if ($var7 && !$var6) {
            var$16 = $par5 | 8;
            var$19 = 3;
            $ptr = 2;
            continue main;
        }
        if (!$var7 && $var6) {
            $par5 = $par5 & 7;
            var$16 = 3;
            $ptr = 7;
            continue main;
        }
        if (!$var7) {
            $par5 = $this.$blockID;
            $ptr = 5;
            continue main;
        }
        $par5 = $this.$blockID;
        var$19 = 20;
        var$16 = 0;
        $ptr = 6;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$16, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $par3 - 1 | 0;
        var$16 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$19, $par4, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = 0;
        while (true) {
            var$19 = $rt_compare(var$16, $par1World.$worldAccesses.$size0);
            if (var$19 >= 0) {
                if (!$var7 && $var6) {
                    $par5 = $par5 & 7;
                    var$16 = 3;
                    $ptr = 7;
                    continue main;
                }
                if (!$var7) {
                    $par5 = $this.$blockID;
                    $ptr = 5;
                    continue main;
                }
                $par5 = $this.$blockID;
                var$19 = 20;
                var$16 = 0;
                $ptr = 6;
                continue main;
            }
            if (var$16 < 0)
                break;
            if (var$19 >= 0)
                break;
            var$16 = var$16 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 5:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, var$19, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $this.$blockID;
        $ptr = 5;
        continue main;
    case 7:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $this.$blockID;
        $ptr = 8;
    case 8:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par3 - 1 | 0;
        var$16 = $this.$blockID;
        $ptr = 9;
    case 9:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par5, $par4, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = 0;
        while (true) {
            $par5 = $rt_compare(var$16, $par1World.$worldAccesses.$size0);
            if ($par5 >= 0) {
                if (!$var7) {
                    $par5 = $this.$blockID;
                    $ptr = 5;
                    continue main;
                }
                $par5 = $this.$blockID;
                var$19 = 20;
                var$16 = 0;
                $ptr = 6;
                continue main;
            }
            if (var$16 < 0)
                break;
            if ($par5 >= 0)
                break;
            var$16 = var$16 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $var9, var$18, var$19, var$20, var$21, $ptr);
},
nms_BlockDetectorRail_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par1World.$isRemote;
        if (!var$5) {
            var$6 = 1;
            if (!var$5) {
                var$7 = new nms_BlockBaseRailLogic;
                $ptr = 3;
                continue main;
            }
            if ($this.$isPowered) {
                var$5 = $this.$blockID;
                $ptr = 6;
                continue main;
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $ptr = 2;
    case 2:
        nms_BlockDetectorRail_setStateIfMinecartInteractsWithRail($this, $par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_BlockBaseRailLogic__init_(var$7, $this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $ptr = 5;
    case 5:
        nms_BlockBaseRailLogic_func_94511_a(var$7, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$isPowered) {
            $ptr = 1;
            continue main;
        }
        var$5 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_BlockRailBase_onNeighborBlockChange($this, $par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockDetectorRail_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockDetectorRail_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (($par5 & 8) <= 0)
            return 0;
        var$6 = $rt_cls(nms_EntityMinecart);
        $var7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$8 = $par2 + 0.125;
        var$9 = $par3;
        var$10 = $par4 + 0.125;
        var$11 = ($par2 + 1 | 0) - 0.125;
        var$12 = ($par3 + 1 | 0) - 0.125;
        var$13 = ($par4 + 1 | 0) - 0.125;
        $par3 = $var7.$nextPoolIndex;
        var$14 = $var7.$listAABB;
        $par2 = var$14.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$15 = new nms_AxisAlignedBB;
            var$15.$minX0 = var$8;
            var$15.$minY0 = var$9;
            var$15.$minZ0 = var$10;
            var$15.$maxX0 = var$11;
            var$15.$maxY = var$12;
            var$15.$maxZ0 = var$13;
            ju_ArrayList_ensureCapacity(var$14, $par2 + 1 | 0);
            var$16 = var$14.$array.data;
            $par3 = var$14.$size0;
            var$14.$size0 = $par3 + 1 | 0;
            var$16[$par3] = var$15;
            var$14.$modCount = var$14.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$15 = var$14.$array.data[$par3];
            var$15.$minX0 = var$8;
            var$15.$minY0 = var$9;
            var$15.$minZ0 = var$10;
            var$15.$maxX0 = var$11;
            var$15.$maxY = var$12;
            var$15.$maxZ0 = var$13;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var7.$nextPoolIndex = $var7.$nextPoolIndex + 1 | 0;
        $var7 = nms_IEntitySelector_selectInventories;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, var$6, var$15, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $par3 = $var7.$size0;
        if ($par3 <= 0)
            return 0;
        if (0 < $par3)
            return nms_Container_calcRedstoneFromInventory($var7.$array.data[0]);
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
};
function nms_BlockPistonBase() {
    nms_Block.call(this);
    this.$isSticky = 0;
}
let nms_BlockPistonBase__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_piston);
    $this.$isSticky = $par2;
    $this.$stepSound = nms_Block_soundStoneFootstep;
    $this.$blockHardness = 0.5;
    if ($this.$blockResistance < 2.5)
        $this.$blockResistance = 2.5;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockPistonBase__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockPistonBase();
    nms_BlockPistonBase__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockPistonBase_getRenderType = $this => {
    return 16;
},
nms_BlockPistonBase_isOpaqueCube = $this => {
    return 0;
},
nms_BlockPistonBase_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    return 0;
},
nms_BlockPistonBase_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = nms_BlockPistonBase_determineOrientation($par1World, $par2, $par3, $par4, $par5EntityLivingBase);
        var$8 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1World.$isRemote)
            return;
        $ptr = 2;
    case 2:
        nms_BlockPistonBase_updatePistonState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, $var7, var$8, $ptr);
},
nms_BlockPistonBase_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        nms_BlockPistonBase_updatePistonState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockPistonBase_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 !== null)
            return;
        $ptr = 2;
    case 2:
        nms_BlockPistonBase_updatePistonState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockPistonBase_updatePistonState = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $var5 & 7;
        if ($var6 == 7)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockPistonBase_isIndirectlyPowered($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 && !(!($var5 & 8) ? 0 : 1)) {
            $ptr = 3;
            continue main;
        }
        if (!$var7 && (!($var5 & 8) ? 0 : 1)) {
            var$8 = 2;
            $ptr = 4;
            continue main;
        }
        return;
    case 3:
        $tmp = nms_BlockPistonBase_canExtend($par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            nms_WorldServer_addBlockEvent($par1World, $par2, $par3, $par4, $this.$blockID, 0, $var6);
        return;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        nms_WorldServer_addBlockEvent($par1World, $par2, $par3, $par4, $this.$blockID, 1, $var6);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, var$8, $ptr);
},
nms_BlockPistonBase_isIndirectlyPowered = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5) {
            var$6 = $par3 - 1 | 0;
            var$7 = 0;
            $ptr = 1;
            continue main;
        }
        if ($par5 != 1) {
            var$6 = $par3 + 1 | 0;
            var$7 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par5 != 2) {
            var$6 = $par4 - 1 | 0;
            var$7 = 2;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 3) {
            var$6 = $par4 + 1 | 0;
            var$7 = 3;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            var$6 = $par2 + 1 | 0;
            var$7 = 5;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par5 = 0;
            $ptr = 6;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 7;
        continue main;
    case 1:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, var$6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            return 1;
        if ($par5 != 1) {
            var$6 = $par3 + 1 | 0;
            var$7 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par5 != 2) {
            var$6 = $par4 - 1 | 0;
            var$7 = 2;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 3) {
            var$6 = $par4 + 1 | 0;
            var$7 = 3;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            var$6 = $par2 + 1 | 0;
            var$7 = 5;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par5 = 0;
            $ptr = 6;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 7;
        continue main;
    case 2:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, var$6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            return 1;
        if ($par5 != 2) {
            var$6 = $par4 - 1 | 0;
            var$7 = 2;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 3) {
            var$6 = $par4 + 1 | 0;
            var$7 = 3;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            var$6 = $par2 + 1 | 0;
            var$7 = 5;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par5 = 0;
            $ptr = 6;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            return 1;
        if ($par5 != 3) {
            var$6 = $par4 + 1 | 0;
            var$7 = 3;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            var$6 = $par2 + 1 | 0;
            var$7 = 5;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par5 = 0;
            $ptr = 6;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            return 1;
        if ($par5 != 5) {
            var$6 = $par2 + 1 | 0;
            var$7 = 5;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par5 = 0;
            $ptr = 6;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, var$6, $par3, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            return 1;
        if ($par5 == 4) {
            $par5 = 0;
            $ptr = 6;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 <= 0 ? 0 : 1)
            return 1;
        $par5 = $par3 + 2 | 0;
        var$6 = 1;
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 <= 0 ? 0 : 1)
            return 1;
        $par5 = 0;
        $ptr = 6;
        continue main;
    case 8:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par5, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 <= 0 ? 0 : 1)
            return 1;
        $par3 = $par3 + 1 | 0;
        $par5 = $par4 - 1 | 0;
        var$6 = 2;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 <= 0 ? 0 : 1)
            return 1;
        $par5 = $par4 + 1 | 0;
        var$6 = 3;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 <= 0 ? 0 : 1)
            return 1;
        $par5 = $par2 - 1 | 0;
        var$6 = 4;
        $ptr = 11;
    case 11:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 <= 0 ? 0 : 1)
            return 1;
        $par2 = $par2 + 1 | 0;
        $par5 = 5;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 <= 0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $ptr);
},
nms_BlockPistonBase_onBlockEventReceived = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var8, $var9, $var7, $var16, var$11, var$12, var$13, var$14, $var14, var$16, var$17, $var10, $var11, $var12, $var13, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var14 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var16 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            $ptr = 1;
            continue main;
        }
        if (!$par5) {
            $ptr = 2;
            continue main;
        }
        if ($par5 != 1)
            return 1;
        $par5 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
        $var8 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
        $var9 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
        $ptr = 3;
        continue main;
    case 1:
        $tmp = nms_BlockPistonBase_isIndirectlyPowered($this, $par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 && $par5 == 1) {
            $par5 = $par6 | 8;
            $par6 = 2;
            $ptr = 6;
            continue main;
        }
        if (!$var7 && !$par5)
            return 0;
        if (!$par5) {
            $ptr = 2;
            continue main;
        }
        if ($par5 != 1)
            return 1;
        $par5 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
        $var8 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
        $var9 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_BlockPistonBase_tryExtend($this, $par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5)
            return 0;
        $par5 = $par6 | 8;
        $par6 = 2;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockTileEntity($par1World, $par5, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if ($var16 instanceof nms_TileEntityPiston) {
            $var16 = $var16;
            $ptr = 9;
            continue main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_pistonMoving.$blockID;
        $par5 = 3;
        $ptr = 7;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1410);
        var$14 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$17 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.25 + 0.6000000238418579;
        $ptr = 5;
    case 5:
        nms_World_playSoundEffect($par1World, var$11, var$12, var$13, $var16, var$14, var$17);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 0;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, $par6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $this.$blockID;
        $var16 = new nms_TileEntityPiston;
        nms_TileEntity_$callClinit();
        $var16.$blockMetadata = (-1);
        $var14 = new ju_ArrayList;
        $var14.$array = $rt_createArray(jl_Object, 10);
        $var16.$pushedObjects = $var14;
        $var16.$storedBlockID = $var9;
        $var16.$storedMetadata = $par6;
        $var16.$storedOrientation = $par6;
        $var16.$extending = 0;
        $var16.$shouldHeadBeRendered = 1;
        $ptr = 8;
    case 8:
        nms_World_setBlockTileEntity($par1World, $par2, $par3, $par4, $var16);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$isSticky) {
            $var8 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
            $var9 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
            $par5 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
            $par6 = 0;
            $var10 = 0;
            $var11 = 3;
            $ptr = 10;
            continue main;
        }
        $var8 = $par2 + (nms_Facing_offsetsXForSide.data[$par6] * 2 | 0) | 0;
        $var9 = $par3 + (nms_Facing_offsetsYForSide.data[$par6] * 2 | 0) | 0;
        $var10 = $par4 + (nms_Facing_offsetsZForSide.data[$par6] * 2 | 0) | 0;
        $ptr = 11;
        continue main;
    case 9:
        nms_TileEntityPiston_clearPistonTileEntity($var16);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        $var8 = nms_Block_pistonMoving.$blockID;
        $par5 = 3;
        $ptr = 7;
        continue main;
    case 10:
        nms_World_setBlock($par1World, $var8, $var9, $par5, $par6, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1411);
        var$17 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
        $ptr = 13;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockMetadata($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var13 = 0;
        if ($var11 == nms_Block_pistonMoving.$blockID) {
            $ptr = 14;
            continue main;
        }
        if (!$var13 && $var11 > 0) {
            $par5 = 0;
            $ptr = 16;
            continue main;
        }
        if (!$var13) {
            $par5 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
            $var8 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
            $par6 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
            $var9 = 0;
            $var10 = 0;
            $var11 = 3;
            $ptr = 15;
            continue main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1411);
        var$17 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
        $ptr = 13;
    case 13:
        nms_World_playSoundEffect($par1World, var$11, var$12, var$13, $var16, var$17, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 14:
        $tmp = nms_World_getBlockTileEntity($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 instanceof nms_TileEntityPiston) {
            $var15 = $var14;
            if ($var15.$storedOrientation == $par6 && $var15.$extending) {
                $ptr = 17;
                continue main;
            }
        }
        if (!$var13 && $var11 > 0) {
            $par5 = 0;
            $ptr = 16;
            continue main;
        }
        if (!$var13) {
            $par5 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
            $var8 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
            $par6 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
            $var9 = 0;
            $var10 = 0;
            $var11 = 3;
            $ptr = 15;
            continue main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1411);
        var$17 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
        $ptr = 13;
        continue main;
    case 15:
        nms_World_setBlock($par1World, $par5, $var8, $par6, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1411);
        var$17 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
        $ptr = 13;
        continue main;
    case 16:
        a: {
            $tmp = nms_BlockPistonBase_canPushBlock($var11, $par1World, $var8, $var9, $var10, $par5);
            if ($rt_suspending()) {
                break main;
            }
            $par5 = $tmp;
            if ($par5) {
                if (!nms_Block_blocksList.data[$var11].$getMobilityFlag())
                    break a;
                if ($var11 == nms_Block_pistonBase.$blockID)
                    break a;
                if ($var11 == nms_Block_pistonStickyBase.$blockID)
                    break a;
            }
            if (!$var13) {
                $par5 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
                $var8 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
                $par6 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
                $var9 = 0;
                $var10 = 0;
                $var11 = 3;
                $ptr = 15;
                continue main;
            }
            var$11 = $par2 + 0.5;
            var$12 = $par3 + 0.5;
            var$13 = $par4 + 0.5;
            $var16 = $rt_s(1411);
            var$17 = 0.5;
            $var14 = $par1World.$rand0;
            var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$16;
            var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
            $ptr = 13;
            continue main;
        }
        $par2 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
        $par3 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
        $par4 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
        $par5 = nms_Block_pistonMoving.$blockID;
        $var13 = 3;
        $ptr = 18;
        continue main;
    case 17:
        nms_TileEntityPiston_clearPistonTileEntity($var15);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var15.$storedBlockID;
        $var12 = $var15.$storedMetadata;
        $var13 = 1;
        if (!$var13 && $var11 > 0) {
            $par5 = 0;
            $ptr = 16;
            continue main;
        }
        if (!$var13) {
            $par5 = $par2 + nms_Facing_offsetsXForSide.data[$par6] | 0;
            $var8 = $par3 + nms_Facing_offsetsYForSide.data[$par6] | 0;
            $par6 = $par4 + nms_Facing_offsetsZForSide.data[$par6] | 0;
            $var9 = 0;
            $var10 = 0;
            $var11 = 3;
            $ptr = 15;
            continue main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1411);
        var$17 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
        $ptr = 13;
        continue main;
    case 18:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = new nms_TileEntityPiston;
        $var16.$blockMetadata = (-1);
        $var14 = new ju_ArrayList;
        $var14.$array = $rt_createArray(jl_Object, 10);
        $var16.$pushedObjects = $var14;
        $var16.$storedBlockID = $var11;
        $var16.$storedMetadata = $var12;
        $var16.$storedOrientation = $par6;
        $var16.$extending = 0;
        $var16.$shouldHeadBeRendered = 0;
        $ptr = 19;
    case 19:
        nms_World_setBlockTileEntity($par1World, $par2, $par3, $par4, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $par6 = 0;
        $var11 = 3;
        $ptr = 20;
    case 20:
        nms_World_setBlock($par1World, $var8, $var9, $var10, $par5, $par6, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $par2 + 0.5;
        var$12 = $par3 + 0.5;
        var$13 = $par4 + 0.5;
        $var16 = $rt_s(1411);
        var$17 = 0.5;
        $var14 = $par1World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$16;
        var$14 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.15000000596046448 + 0.6000000238418579;
        $ptr = 13;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var8, $var9, $var7, $var16, var$11, var$12, var$13, var$14, $var14, var$16, var$17, $var10, $var11, $var12, $var13, $var15, $ptr);
},
nms_BlockPistonBase_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!(!($var5 & 8) ? 0 : 1)) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else
            a: {
                switch ($var5 & 7) {
                    case 0:
                        break;
                    case 1:
                        $this.$minX1 = 0.0;
                        $this.$minY1 = 0.0;
                        $this.$minZ1 = 0.0;
                        $this.$maxX1 = 1.0;
                        $this.$maxY0 = 0.75;
                        $this.$maxZ1 = 1.0;
                        break a;
                    case 2:
                        $this.$minX1 = 0.0;
                        $this.$minY1 = 0.0;
                        $this.$minZ1 = 0.25;
                        $this.$maxX1 = 1.0;
                        $this.$maxY0 = 1.0;
                        $this.$maxZ1 = 1.0;
                        break a;
                    case 3:
                        $this.$minX1 = 0.0;
                        $this.$minY1 = 0.0;
                        $this.$minZ1 = 0.0;
                        $this.$maxX1 = 1.0;
                        $this.$maxY0 = 1.0;
                        $this.$maxZ1 = 0.75;
                        break a;
                    case 4:
                        $this.$minX1 = 0.25;
                        $this.$minY1 = 0.0;
                        $this.$minZ1 = 0.0;
                        $this.$maxX1 = 1.0;
                        $this.$maxY0 = 1.0;
                        $this.$maxZ1 = 1.0;
                        break a;
                    case 5:
                        $this.$minX1 = 0.0;
                        $this.$minY1 = 0.0;
                        $this.$minZ1 = 0.0;
                        $this.$maxX1 = 0.75;
                        $this.$maxY0 = 1.0;
                        $this.$maxZ1 = 1.0;
                        break a;
                    default:
                        break a;
                }
                $this.$minX1 = 0.0;
                $this.$minY1 = 0.25;
                $this.$minZ1 = 0.0;
                $this.$maxX1 = 1.0;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 1.0;
            }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockPistonBase_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockPistonBase_getCollisionBoundingBoxFromPool($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        if ($par1World !== null && nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$8 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$8[$par3] = $par1World;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, $ptr);
},
nms_BlockPistonBase_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockPistonBase_setBlockBoundsBasedOnState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$5 = $par2;
        var$6 = var$5 + $this.$minX1;
        var$7 = $par3;
        var$8 = var$7 + $this.$minY1;
        var$9 = $par4;
        var$10 = var$9 + $this.$minZ1;
        var$5 = var$5 + $this.$maxX1;
        var$7 = var$7 + $this.$maxY0;
        var$9 = var$9 + $this.$maxZ1;
        $par2 = $par1World.$nextPoolIndex;
        var$11 = $par1World.$listAABB;
        $par4 = var$11.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            var$12 = new nms_AxisAlignedBB;
            var$12.$minX0 = var$6;
            var$12.$minY0 = var$8;
            var$12.$minZ0 = var$10;
            var$12.$maxX0 = var$5;
            var$12.$maxY = var$7;
            var$12.$maxZ0 = var$9;
            ju_ArrayList_ensureCapacity(var$11, $par4 + 1 | 0);
            var$13 = var$11.$array.data;
            $par3 = var$11.$size0;
            var$11.$size0 = $par3 + 1 | 0;
            var$13[$par3] = var$12;
            var$11.$modCount = var$11.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            var$12 = var$11.$array.data[$par2];
            var$12.$minX0 = var$6;
            var$12.$minY0 = var$8;
            var$12.$minZ0 = var$10;
            var$12.$maxX0 = var$5;
            var$12.$maxY = var$7;
            var$12.$maxZ0 = var$9;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$12;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockPistonBase_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockPistonBase_determineOrientation = ($par0World, $par1, $par2, $par3, $par4EntityLivingBase) => {
    let var$6, $var5, var$8, $var7;
    var$6 = $par4EntityLivingBase.$posX - $par1;
    if (var$6 < 0.0)
        var$6 =  -var$6;
    if (var$6 < 2.0) {
        var$6 = $par4EntityLivingBase.$posZ - $par3;
        if (var$6 < 0.0)
            var$6 =  -var$6;
        if (var$6 < 2.0) {
            $var5 = $par4EntityLivingBase.$posY + 1.82 - $par4EntityLivingBase.$yOffset;
            var$8 = $par2;
            if ($var5 - var$8 > 2.0)
                return 1;
            if (var$8 - $var5 > 0.0)
                return 0;
        }
    }
    $var5 = $par4EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
    $par1 = $var5 | 0;
    if ($var5 < $par1)
        $par1 = $par1 - 1 | 0;
    $var7 = $par1 & 3;
    return !$var7 ? 2 : $var7 == 1 ? 5 : $var7 == 2 ? 3 : $var7 != 3 ? 0 : 4;
},
nms_BlockPistonBase_canPushBlock = ($par0, $par1World, $par2, $par3, $par4, $par5) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$par0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        if ($par0 == nms_Block_obsidian.$blockID)
            return 0;
        if ($par0 != nms_Block_pistonBase.$blockID && $par0 != nms_Block_pistonStickyBase.$blockID) {
            var$7 = nms_Block_blocksList.data;
            if (var$7[$par0].$blockHardness === (-1.0))
                return 0;
            if (var$7[$par0].$getMobilityFlag() == 2)
                return 0;
            if (nms_Block_blocksList.data[$par0].$getMobilityFlag() == 1) {
                if ($par5)
                    return 1;
                return 0;
            }
            return $rt_isInstance(nms_Block_blocksList.data[$par0], nms_ITileEntityProvider) ? 0 : 1;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 & 8) ? 0 : 1)
            return 0;
        return $rt_isInstance(nms_Block_blocksList.data[$par0], nms_ITileEntityProvider) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0, $par1World, $par2, $par3, $par4, $par5, var$7, $ptr);
},
nms_BlockPistonBase_canExtend = ($par0World, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par1 + nms_Facing_offsetsXForSide.data[$par4] | 0;
        $var6 = $par2 + nms_Facing_offsetsYForSide.data[$par4] | 0;
        $var7 = $par3 + nms_Facing_offsetsZForSide.data[$par4] | 0;
        $var8 = 0;
        if ($var8 >= 13)
            return 1;
        if ($var6 > 0 && $var6 < 255) {
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par0World, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9)
            return 1;
        $par1 = 1;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockPistonBase_canPushBlock($var9, $par0World, $var5, $var6, $var7, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (!$par1)
            return 0;
        nms_Block_$callClinit();
        if (nms_Block_blocksList.data[$var9].$getMobilityFlag() != 1) {
            if ($var8 == 12)
                return 0;
            $var5 = $var5 + nms_Facing_offsetsXForSide.data[$par4] | 0;
            $var6 = $var6 + nms_Facing_offsetsYForSide.data[$par4] | 0;
            $var7 = $var7 + nms_Facing_offsetsZForSide.data[$par4] | 0;
            $var8 = $var8 + 1 | 0;
            if ($var8 < 13) {
                if ($var6 > 0 && $var6 < 255) {
                    $ptr = 1;
                    continue main;
                }
                return 0;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par3, $par4, $var5, $var6, $var7, $var8, $var9, $ptr);
},
nms_BlockPistonBase_tryExtend = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var14, $var15, $var16, $var9, $var12, var$11, var$12, var$13, var$14, $var15_0, $var14_0, $var16_0, $var17, $var18, $var10, var$21, var$22, var$23, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var10 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16_0 = $thread.pop();$var14_0 = $thread.pop();$var15_0 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var12 = $thread.pop();$var9 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3
        = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var14 = $par2 + nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15 = $par3 + nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16 = $par4 + nms_Facing_offsetsZForSide.data[$par5] | 0;
        $var9 = 0;
        if ($var9 < 13) {
            if ($var15 > 0 && $var15 < 255) {
                $ptr = 3;
                continue main;
            }
            return 0;
        }
        $var12 = 0;
        var$11 = $rt_createIntArray(13).data;
        var$12 = $var14;
        var$13 = $var15;
        var$14 = $var16;
        if (var$12 == $par2 && var$13 == $par3 && var$14 == $par4) {
            if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
                return 1;
            $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
            $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
            $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
            $var15_0 = 0 + 1 | 0;
            $var14_0 = var$11[0];
            $ptr = 10;
            continue main;
        }
        $var14_0 = var$12 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15_0 = var$13 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16_0 = var$14 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var14_0, $var15_0, $var16_0);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $var14_0, $var15_0, $var16_0);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        if ($var17 == $this.$blockID && $var14_0 == $par2 && $var15_0 == $par3 && $var16_0 == $par4) {
            nms_Block_$callClinit();
            $var10 = nms_Block_pistonMoving.$blockID;
            $var9 = $par5 | (!$this.$isSticky ? 0 : 8);
            $var18 = 4;
            $ptr = 11;
            continue main;
        }
        nms_Block_$callClinit();
        $var9 = nms_Block_pistonMoving.$blockID;
        $var10 = 4;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var14, $var15, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10) {
            $var14_0 = 1;
            $ptr = 6;
            continue main;
        }
        $var12 = 0;
        var$11 = $rt_createIntArray(13).data;
        var$12 = $var14;
        var$13 = $var15;
        var$14 = $var16;
        if (var$12 == $par2 && var$13 == $par3 && var$14 == $par4) {
            if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
                return 1;
            $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
            $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
            $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
            $var15_0 = 0 + 1 | 0;
            $var14_0 = var$11[0];
            $ptr = 10;
            continue main;
        }
        $var14_0 = var$12 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15_0 = var$13 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16_0 = var$14 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $ptr = 1;
        continue main;
    case 4:
        nms_World_setBlock($par1World, var$12, var$13, var$14, $var9, $var18, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = new nms_TileEntityPiston;
        nms_TileEntity_$callClinit();
        var$21.$blockMetadata = (-1);
        var$22 = new ju_ArrayList;
        var$22.$array = $rt_createArray(jl_Object, 10);
        var$21.$pushedObjects = var$22;
        var$21.$storedBlockID = $var17;
        var$21.$storedMetadata = $var18;
        var$21.$storedOrientation = $par5;
        var$21.$extending = 1;
        var$21.$shouldHeadBeRendered = 0;
        $ptr = 5;
    case 5:
        nms_World_setBlockTileEntity($par1World, var$12, var$13, var$14, var$21);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var12 + 1 | 0;
        var$11[$var12] = $var17;
        $var12 = $var10;
        var$12 = $var14_0;
        var$13 = $var15_0;
        var$14 = $var16_0;
        if (var$12 == $par2 && var$13 == $par3 && var$14 == $par4) {
            if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
                return 1;
            $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
            $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
            $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
            $var15_0 = 0 + 1 | 0;
            $var14_0 = var$11[0];
            $ptr = 10;
            continue main;
        }
        $var14_0 = var$12 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15_0 = var$13 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16_0 = var$14 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $ptr = 1;
        continue main;
    case 6:
        $tmp = nms_BlockPistonBase_canPushBlock($var10, $par1World, $var14, $var15, $var16, $var14_0);
        if ($rt_suspending()) {
            break main;
        }
        $var14_0 = $tmp;
        if (!$var14_0)
            return 0;
        nms_Block_$callClinit();
        if (nms_Block_blocksList.data[$var10].$getMobilityFlag() == 1) {
            var$21 = nms_Block_blocksList.data[$var10];
            $ptr = 7;
            continue main;
        }
        if ($var9 == 12)
            return 0;
        $var14 = $var14 + nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15 = $var15 + nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16 = $var16 + nms_Facing_offsetsZForSide.data[$par5] | 0;
        $var9 = $var9 + 1 | 0;
        if ($var9 < 13) {
            if ($var15 > 0 && $var15 < 255) {
                $ptr = 3;
                continue main;
            }
            return 0;
        }
        $var12 = 0;
        var$11 = $rt_createIntArray(13).data;
        var$12 = $var14;
        var$13 = $var15;
        var$14 = $var16;
        if (var$12 == $par2 && var$13 == $par3 && var$14 == $par4) {
            if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
                return 1;
            $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
            $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
            $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
            $var15_0 = 0 + 1 | 0;
            $var14_0 = var$11[0];
            $ptr = 10;
            continue main;
        }
        $var14_0 = var$12 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15_0 = var$13 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16_0 = var$14 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $ptr = 1;
        continue main;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $var14, $var15, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var14_0 = $tmp;
        $var15_0 = 0;
        var$23 = 1.0;
        $ptr = 8;
    case 8:
        var$21.$dropBlockAsItemWithChance($par1World, $var14, $var15, $var16, $var14_0, var$23, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var14_0 = 0;
        $var15_0 = 0;
        $var10 = 3;
        $ptr = 9;
    case 9:
        nms_World_setBlock($par1World, $var14, $var15, $var16, $var14_0, $var15_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = 0;
        var$11 = $rt_createIntArray(13).data;
        var$12 = $var14;
        var$13 = $var15;
        var$14 = $var16;
        if (var$12 == $par2 && var$13 == $par3 && var$14 == $par4) {
            if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
                return 1;
            $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
            $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
            $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
            $var15_0 = 0 + 1 | 0;
            $var14_0 = var$11[0];
            $ptr = 10;
            continue main;
        }
        $var14_0 = var$12 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15_0 = var$13 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16_0 = var$14 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $ptr = 1;
        continue main;
    case 10:
        nms_World_notifyBlocksOfNeighborChange($par1World, $var14, $var15, $var16, $var14_0);
        if ($rt_suspending()) {
            break main;
        }
        $var14_0 = $var15_0;
        if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
            return 1;
        $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $var15_0 = $var14_0 + 1 | 0;
        $var14_0 = var$11[$var14_0];
        continue main;
    case 11:
        nms_World_setBlock($par1World, var$12, var$13, var$14, $var10, $var9, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = nms_Block_pistonExtension.$blockID;
        var$24 = $par5 | (!$this.$isSticky ? 0 : 8);
        var$21 = new nms_TileEntityPiston;
        nms_TileEntity_$callClinit();
        var$21.$blockMetadata = (-1);
        var$22 = new ju_ArrayList;
        var$22.$array = $rt_createArray(jl_Object, 10);
        var$21.$pushedObjects = var$22;
        var$21.$storedBlockID = $var18;
        var$21.$storedMetadata = var$24;
        var$21.$storedOrientation = $par5;
        var$21.$extending = 1;
        var$21.$shouldHeadBeRendered = 0;
        $ptr = 12;
    case 12:
        nms_World_setBlockTileEntity($par1World, var$12, var$13, var$14, var$21);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var12 + 1 | 0;
        var$11[$var12] = $var17;
        $var12 = $var10;
        var$12 = $var14_0;
        var$13 = $var15_0;
        var$14 = $var16_0;
        if (var$12 == $par2 && var$13 == $par3 && var$14 == $par4) {
            if ($var14 == $par2 && $var15 == $par3 && $var16 == $par4)
                return 1;
            $var14 = $var14 - nms_Facing_offsetsXForSide.data[$par5] | 0;
            $var15 = $var15 - nms_Facing_offsetsYForSide.data[$par5] | 0;
            $var16 = $var16 - nms_Facing_offsetsZForSide.data[$par5] | 0;
            $var15_0 = 0 + 1 | 0;
            $var14_0 = var$11[0];
            $ptr = 10;
            continue main;
        }
        $var14_0 = var$12 - nms_Facing_offsetsXForSide.data[$par5] | 0;
        $var15_0 = var$13 - nms_Facing_offsetsYForSide.data[$par5] | 0;
        $var16_0 = var$14 - nms_Facing_offsetsZForSide.data[$par5] | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var14, $var15, $var16, $var9, $var12, var$11, var$12, var$13, var$14, $var15_0, $var14_0, $var16_0, $var17, $var18, $var10, var$21, var$22, var$23, var$24, $ptr);
},
nms_BlockWeb = $rt_classWithoutFields(nms_Block),
nms_BlockWeb__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_web);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockWeb__init_0 = var_0 => {
    let var_1 = new nms_BlockWeb();
    nms_BlockWeb__init_(var_1, var_0);
    return var_1;
},
nms_BlockWeb_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    $par5Entity.$setInWeb();
},
nms_BlockWeb_isOpaqueCube = $this => {
    return 0;
},
nms_BlockWeb_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockWeb_getRenderType = $this => {
    return 1;
},
nms_BlockWeb_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockWeb_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_silk.$itemID0;
},
nms_BlockWeb_canSilkHarvest = $this => {
    return 1;
},
nms_BlockTallGrass = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockTallGrass_grassTypes = null,
nms_BlockTallGrass__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_vine);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.09999999403953552;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.09999999403953552;
    $this.$maxX1 = 0.8999999761581421;
    $this.$maxY0 = 0.800000011920929;
    $this.$maxZ1 = 0.8999999761581421;
},
nms_BlockTallGrass__init_ = var_0 => {
    let var_1 = new nms_BlockTallGrass();
    nms_BlockTallGrass__init_0(var_1, var_0);
    return var_1;
},
nms_BlockTallGrass_idDropped = ($this, $par1, $par2Random, $par3) => {
    let var$4;
    var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$4;
    if (Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$4, 17)))), 31)))
        $par1 = (-1);
    else {
        nms_Item_$callClinit();
        $par1 = nms_Item_seeds.$itemID0;
    }
    return $par1;
},
nms_BlockTallGrass_quantityDroppedWithBonus = ($this, $par1, $par2Random) => {
    let var$3, var$4, var$5, var$6;
    $par1 = ($par1 * 2 | 0) + 1 | 0;
    var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$3;
    var$4 = Long_lo(Long_shru(var$3, 17));
    var$5 = $par1 - 1 | 0;
    if (!($par1 & var$5))
        var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$4)), 31));
    else
        while (true) {
            var$6 = var$4 % $par1 | 0;
            if (((var$4 - var$6 | 0) + var$5 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
    return 1 + var$6 | 0;
},
nms_BlockTallGrass_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            var$7 = $par2EntityPlayer.$inventory0;
            var$8 = var$7.$currentItem;
            var$9 = $rt_compare(var$8, 9);
            if ((var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null) !== null) {
                var$9 = (var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null).$itemID;
                nms_Item_$callClinit();
                if (var$9 == nms_Item_shears.$itemID0) {
                    nms_StatList_$callClinit();
                    var$7 = nms_StatList_mineBlockStatArray.data[$this.$blockID];
                    if (var$7 !== null && !var$7.$isIndependent)
                        a: {
                            var$10 = $par2EntityPlayer.$playerNetServerHandler;
                            var$11 = new nms_Packet200Statistic;
                            var$8 = var$7.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$11.$statisticId = var$8;
                            var$11.$amount = 1;
                            if (var$11 instanceof nms_Packet3Chat) {
                                $par2EntityPlayer = var$11;
                                var$8 = var$10.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break a;
                                if (var$8 == 1 && !$par2EntityPlayer.$isServer)
                                    break a;
                            }
                            try {
                                $par2EntityPlayer = var$10.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par2EntityPlayer = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$7 = new otcic_JSStderrPrintStream;
                                var$11 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$11);
                                var$11.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$7, var$11);
                                var$7.$sb = jl_StringBuilder__init_();
                                var$7.$buffer0 = $rt_createCharArray(32);
                                var$7.$autoFlush = 0;
                                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$7;
                            }
                            jl_Throwable_printStackTrace($par2EntityPlayer, jl_System_errCache);
                        }
                    var$7 = new nms_ItemStack;
                    nms_Block_$callClinit();
                    $par2EntityPlayer = nms_Block_tallGrass;
                    nms_ItemStack_$callClinit();
                    var$7.$itemID = $par2EntityPlayer.$blockID;
                    var$7.$stackSize = 1;
                    var$7.$itemDamage = $par6;
                    if ($par6 < 0)
                        var$7.$itemDamage = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        nms_Block_harvestBlock($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2EntityPlayer, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$11);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($par2EntityPlayer, jl_System_errCache);
        }
        var$7 = new nms_ItemStack;
        nms_Block_$callClinit();
        $par2EntityPlayer = nms_Block_tallGrass;
        nms_ItemStack_$callClinit();
        var$7.$itemID = $par2EntityPlayer.$blockID;
        var$7.$stackSize = 1;
        var$7.$itemDamage = $par6;
        if ($par6 < 0)
            var$7.$itemDamage = 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockTallGrass__clinit_ = () => {
    nms_BlockTallGrass_grassTypes = $rt_wrapArray(jl_String, [$rt_s(76), $rt_s(77), $rt_s(78)]);
},
nms_BlockDeadBush = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockDeadBush__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_vine);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.09999999403953552;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.09999999403953552;
    $this.$maxX1 = 0.8999999761581421;
    $this.$maxY0 = 0.800000011920929;
    $this.$maxZ1 = 0.8999999761581421;
},
nms_BlockDeadBush__init_ = var_0 => {
    let var_1 = new nms_BlockDeadBush();
    nms_BlockDeadBush__init_0(var_1, var_0);
    return var_1;
},
nms_BlockDeadBush_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_sand.$blockID ? 0 : 1;
},
nms_BlockDeadBush_idDropped = ($this, $par1, $par2Random, $par3) => {
    return (-1);
},
nms_BlockDeadBush_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            var$7 = $par2EntityPlayer.$inventory0;
            var$8 = var$7.$currentItem;
            var$9 = $rt_compare(var$8, 9);
            if ((var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null) !== null) {
                var$9 = (var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null).$itemID;
                nms_Item_$callClinit();
                if (var$9 == nms_Item_shears.$itemID0) {
                    nms_StatList_$callClinit();
                    var$7 = nms_StatList_mineBlockStatArray.data[$this.$blockID];
                    if (var$7 !== null && !var$7.$isIndependent)
                        a: {
                            var$10 = $par2EntityPlayer.$playerNetServerHandler;
                            var$11 = new nms_Packet200Statistic;
                            var$8 = var$7.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$11.$statisticId = var$8;
                            var$11.$amount = 1;
                            if (var$11 instanceof nms_Packet3Chat) {
                                $par2EntityPlayer = var$11;
                                var$8 = var$10.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break a;
                                if (var$8 == 1 && !$par2EntityPlayer.$isServer)
                                    break a;
                            }
                            try {
                                $par2EntityPlayer = var$10.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par2EntityPlayer = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$7 = new otcic_JSStderrPrintStream;
                                var$11 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$11);
                                var$11.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$7, var$11);
                                var$7.$sb = jl_StringBuilder__init_();
                                var$7.$buffer0 = $rt_createCharArray(32);
                                var$7.$autoFlush = 0;
                                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$7;
                            }
                            jl_Throwable_printStackTrace($par2EntityPlayer, jl_System_errCache);
                        }
                    var$7 = new nms_ItemStack;
                    nms_Block_$callClinit();
                    $par2EntityPlayer = nms_Block_deadBush;
                    nms_ItemStack_$callClinit();
                    var$7.$itemID = $par2EntityPlayer.$blockID;
                    var$7.$stackSize = 1;
                    var$7.$itemDamage = $par6;
                    if ($par6 < 0)
                        var$7.$itemDamage = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        nms_Block_harvestBlock($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2EntityPlayer, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$11);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($par2EntityPlayer, jl_System_errCache);
        }
        var$7 = new nms_ItemStack;
        nms_Block_$callClinit();
        $par2EntityPlayer = nms_Block_deadBush;
        nms_ItemStack_$callClinit();
        var$7.$itemID = $par2EntityPlayer.$blockID;
        var$7.$stackSize = 1;
        var$7.$itemDamage = $par6;
        if ($par6 < 0)
            var$7.$itemDamage = 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockPistonExtension = $rt_classWithoutFields(nms_Block),
nms_BlockPistonExtension__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_piston);
    $this.$stepSound = nms_Block_soundStoneFootstep;
    $this.$blockHardness = 0.5;
    if ($this.$blockResistance < 2.5)
        $this.$blockResistance = 2.5;
},
nms_BlockPistonExtension__init_ = var_0 => {
    let var_1 = new nms_BlockPistonExtension();
    nms_BlockPistonExtension__init_0(var_1, var_0);
    return var_1;
},
nms_BlockPistonExtension_onBlockHarvested = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer) => {
    let $var7, $var8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6EntityPlayer = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par6EntityPlayer.$capabilities.$isCreativeMode)
            return;
        $var7 = $par5 & 7;
        $var8 = $par2 - nms_Facing_offsetsXForSide.data[$var7] | 0;
        var$9 = $par3 - nms_Facing_offsetsYForSide.data[$var7] | 0;
        $par5 = $par4 - nms_Facing_offsetsZForSide.data[$var7] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var8, var$9, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        nms_Block_$callClinit();
        if ($var8 != nms_Block_pistonBase.$blockID && $var8 != nms_Block_pistonStickyBase.$blockID)
            return;
        $par2 = $par2 - nms_Facing_offsetsXForSide.data[$var7] | 0;
        $par3 = $par3 - nms_Facing_offsetsYForSide.data[$var7] | 0;
        $par4 = $par4 - nms_Facing_offsetsZForSide.data[$var7] | 0;
        $par5 = 0;
        $var8 = 0;
        $var7 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var8, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer, $var7, $var8, var$9, $ptr);
},
nms_BlockPistonExtension_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = nms_Facing_oppositeSide.data[$par6 & 7];
        $par5 = $par2 + nms_Facing_offsetsXForSide.data[$var7] | 0;
        $par2 = $par3 + nms_Facing_offsetsYForSide.data[$var7] | 0;
        $par3 = $par4 + nms_Facing_offsetsZForSide.data[$var7] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        nms_Block_$callClinit();
        if ($var8 != nms_Block_pistonBase.$blockID && $var8 != nms_Block_pistonStickyBase.$blockID)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!(!($par4 & 8) ? 0 : 1))
            return;
        var$9 = nms_Block_blocksList.data[$var8];
        $par6 = 0;
        var$10 = 1.0;
        $ptr = 3;
    case 3:
        var$9.$dropBlockAsItemWithChance($par1World, $par5, $par2, $par3, $par4, var$10, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $par6 = 0;
        $var7 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par5, $par2, $par3, $par4, $par6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, var$9, var$10, $ptr);
},
nms_BlockPistonExtension_getRenderType = $this => {
    return 17;
},
nms_BlockPistonExtension_isOpaqueCube = $this => {
    return 0;
};
let nms_BlockPistonExtension_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockPistonExtension_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    return 0;
},
nms_BlockPistonExtension_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return 0;
},
nms_BlockPistonExtension_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockPistonExtension_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var8 = $tmp;
            switch ($var8 & 7) {
                case 0:
                    break;
                case 1:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.75;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$10 = $par2;
                    var$11 = var$10 + $this.$minX1;
                    var$12 = $par3;
                    var$13 = var$12 + $this.$minY1;
                    var$14 = $par4;
                    var$15 = var$14 + $this.$minZ1;
                    var$16 = var$10 + $this.$maxX1;
                    var$17 = var$12 + $this.$maxY0;
                    var$18 = var$14 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par1World = var$9.$listAABB;
                    $par4 = $par1World.$size0;
                    $par3 = $rt_compare($par2, $par4);
                    if ($par3 >= 0) {
                        $par7Entity = new nms_AxisAlignedBB;
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$13;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                        var$19 = $par1World.$array.data;
                        $par3 = $par1World.$size0;
                        $par1World.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par1World.$modCount = $par1World.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par3 < 0) {
                        $par7Entity = $par1World.$array.data[$par2];
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$13;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    $this.$minX1 = 0.375;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.375;
                    $this.$maxX1 = 0.625;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = 0.625;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$11 = var$10 + $this.$minX1;
                    var$20 = var$12 + $this.$minY1;
                    var$21 = var$14 + $this.$minZ1;
                    var$10 = var$10 + $this.$maxX1;
                    var$12 = var$12 + $this.$maxY0;
                    var$14 = var$14 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par7Entity = var$9.$listAABB;
                    $par3 = $par7Entity.$size0;
                    $par4 = $rt_compare($par2, $par3);
                    if ($par4 >= 0) {
                        $par1World = new nms_AxisAlignedBB;
                        $par1World.$minX0 = var$11;
                        $par1World.$minY0 = var$20;
                        $par1World.$minZ0 = var$21;
                        $par1World.$maxX0 = var$10;
                        $par1World.$maxY = var$12;
                        $par1World.$maxZ0 = var$14;
                        ju_ArrayList_ensureCapacity($par7Entity, $par3 + 1 | 0);
                        var$19 = $par7Entity.$array.data;
                        $par3 = $par7Entity.$size0;
                        $par7Entity.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par1World;
                        $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par4 < 0) {
                        $par1World = $par7Entity.$array.data[$par2];
                        $par1World.$minX0 = var$11;
                        $par1World.$minY0 = var$20;
                        $par1World.$minZ0 = var$21;
                        $par1World.$maxX0 = var$10;
                        $par1World.$maxY = var$12;
                        $par1World.$maxZ0 = var$14;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par1World;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    break a;
                case 2:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 0.25;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$10 = $par2;
                    var$11 = var$10 + $this.$minX1;
                    var$12 = $par3;
                    var$13 = var$12 + $this.$minY1;
                    var$14 = $par4;
                    var$15 = var$14 + $this.$minZ1;
                    var$16 = var$10 + $this.$maxX1;
                    var$17 = var$12 + $this.$maxY0;
                    var$18 = var$14 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par1World = var$9.$listAABB;
                    $par4 = $par1World.$size0;
                    $par3 = $rt_compare($par2, $par4);
                    if ($par3 >= 0) {
                        $par7Entity = new nms_AxisAlignedBB;
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$13;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                        var$19 = $par1World.$array.data;
                        $par3 = $par1World.$size0;
                        $par1World.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par1World.$modCount = $par1World.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par3 < 0) {
                        $par7Entity = $par1World.$array.data[$par2];
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$13;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    $this.$minX1 = 0.25;
                    $this.$minY1 = 0.375;
                    $this.$minZ1 = 0.25;
                    $this.$maxX1 = 0.75;
                    $this.$maxY0 = 0.625;
                    $this.$maxZ1 = 1.0;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$11 = var$10 + $this.$minX1;
                    var$20 = var$12 + $this.$minY1;
                    var$21 = var$14 + $this.$minZ1;
                    var$10 = var$10 + $this.$maxX1;
                    var$12 = var$12 + $this.$maxY0;
                    var$14 = var$14 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par7Entity = var$9.$listAABB;
                    $par3 = $par7Entity.$size0;
                    $par4 = $rt_compare($par2, $par3);
                    if ($par4 >= 0) {
                        $par1World = new nms_AxisAlignedBB;
                        $par1World.$minX0 = var$11;
                        $par1World.$minY0 = var$20;
                        $par1World.$minZ0 = var$21;
                        $par1World.$maxX0 = var$10;
                        $par1World.$maxY = var$12;
                        $par1World.$maxZ0 = var$14;
                        ju_ArrayList_ensureCapacity($par7Entity, $par3 + 1 | 0);
                        var$19 = $par7Entity.$array.data;
                        $par3 = $par7Entity.$size0;
                        $par7Entity.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par1World;
                        $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par4 < 0) {
                        $par1World = $par7Entity.$array.data[$par2];
                        $par1World.$minX0 = var$11;
                        $par1World.$minY0 = var$20;
                        $par1World.$minZ0 = var$21;
                        $par1World.$maxX0 = var$10;
                        $par1World.$maxY = var$12;
                        $par1World.$maxZ0 = var$14;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par1World;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    break a;
                case 3:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.75;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$10 = $par2;
                    var$11 = var$10 + $this.$minX1;
                    var$12 = $par3;
                    var$13 = var$12 + $this.$minY1;
                    var$14 = $par4;
                    var$15 = var$14 + $this.$minZ1;
                    var$16 = var$10 + $this.$maxX1;
                    var$17 = var$12 + $this.$maxY0;
                    var$18 = var$14 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par1World = var$9.$listAABB;
                    $par4 = $par1World.$size0;
                    $par3 = $rt_compare($par2, $par4);
                    if ($par3 >= 0) {
                        $par7Entity = new nms_AxisAlignedBB;
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$13;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                        var$19 = $par1World.$array.data;
                        $par3 = $par1World.$size0;
                        $par1World.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par1World.$modCount = $par1World.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par3 < 0) {
                        $par7Entity = $par1World.$array.data[$par2];
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$13;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    $this.$minX1 = 0.25;
                    $this.$minY1 = 0.375;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 0.75;
                    $this.$maxY0 = 0.625;
                    $this.$maxZ1 = 0.75;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$11 = var$10 + $this.$minX1;
                    var$20 = var$12 + $this.$minY1;
                    var$21 = var$14 + $this.$minZ1;
                    var$10 = var$10 + $this.$maxX1;
                    var$12 = var$12 + $this.$maxY0;
                    var$14 = var$14 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par7Entity = var$9.$listAABB;
                    $par3 = $par7Entity.$size0;
                    $par4 = $rt_compare($par2, $par3);
                    if ($par4 >= 0) {
                        $par1World = new nms_AxisAlignedBB;
                        $par1World.$minX0 = var$11;
                        $par1World.$minY0 = var$20;
                        $par1World.$minZ0 = var$21;
                        $par1World.$maxX0 = var$10;
                        $par1World.$maxY = var$12;
                        $par1World.$maxZ0 = var$14;
                        ju_ArrayList_ensureCapacity($par7Entity, $par3 + 1 | 0);
                        var$19 = $par7Entity.$array.data;
                        $par3 = $par7Entity.$size0;
                        $par7Entity.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par1World;
                        $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par4 < 0) {
                        $par1World = $par7Entity.$array.data[$par2];
                        $par1World.$minX0 = var$11;
                        $par1World.$minY0 = var$20;
                        $par1World.$minZ0 = var$21;
                        $par1World.$maxX0 = var$10;
                        $par1World.$maxY = var$12;
                        $par1World.$maxZ0 = var$14;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par1World;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    break a;
                case 4:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 0.25;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$10 = $par2;
                    var$11 = var$10 + $this.$minX1;
                    var$14 = $par3;
                    var$12 = var$14 + $this.$minY1;
                    var$13 = $par4;
                    var$15 = var$13 + $this.$minZ1;
                    var$16 = var$10 + $this.$maxX1;
                    var$17 = var$14 + $this.$maxY0;
                    var$18 = var$13 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par1World = var$9.$listAABB;
                    $par4 = $par1World.$size0;
                    $par3 = $rt_compare($par2, $par4);
                    if ($par3 >= 0) {
                        $par7Entity = new nms_AxisAlignedBB;
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$12;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                        var$19 = $par1World.$array.data;
                        $par3 = $par1World.$size0;
                        $par1World.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par1World.$modCount = $par1World.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par3 < 0) {
                        $par7Entity = $par1World.$array.data[$par2];
                        $par7Entity.$minX0 = var$11;
                        $par7Entity.$minY0 = var$12;
                        $par7Entity.$minZ0 = var$15;
                        $par7Entity.$maxX0 = var$16;
                        $par7Entity.$maxY = var$17;
                        $par7Entity.$maxZ0 = var$18;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    $this.$minX1 = 0.375;
                    $this.$minY1 = 0.25;
                    $this.$minZ1 = 0.25;
                    $this.$maxX1 = 0.625;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = 1.0;
                    $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$11 = var$10 + $this.$minX1;
                    var$20 = var$14 + $this.$minY1;
                    var$21 = var$13 + $this.$minZ1;
                    var$10 = var$10 + $this.$maxX1;
                    var$12 = var$14 + $this.$maxY0;
                    var$14 = var$13 + $this.$maxZ1;
                    $par3 = $par1World.$nextPoolIndex;
                    $par7Entity = $par1World.$listAABB;
                    $par2 = $par7Entity.$size0;
                    $par4 = $rt_compare($par3, $par2);
                    if ($par4 >= 0) {
                        var$9 = new nms_AxisAlignedBB;
                        var$9.$minX0 = var$11;
                        var$9.$minY0 = var$20;
                        var$9.$minZ0 = var$21;
                        var$9.$maxX0 = var$10;
                        var$9.$maxY = var$12;
                        var$9.$maxZ0 = var$14;
                        ju_ArrayList_ensureCapacity($par7Entity, $par2 + 1 | 0);
                        var$19 = $par7Entity.$array.data;
                        $par3 = $par7Entity.$size0;
                        $par7Entity.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = var$9;
                        $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
                    } else if ($par3 >= 0 && $par4 < 0) {
                        var$9 = $par7Entity.$array.data[$par3];
                        var$9.$minX0 = var$11;
                        var$9.$minY0 = var$20;
                        var$9.$minZ0 = var$21;
                        var$9.$maxX0 = var$10;
                        var$9.$maxY = var$12;
                        var$9.$maxZ0 = var$14;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$9)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = var$9;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    break a;
                case 5:
                    $this.$minX1 = 0.75;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$11 = $par2;
                    var$20 = var$11 + $this.$minX1;
                    var$21 = $par3;
                    var$10 = var$21 + $this.$minY1;
                    var$12 = $par4;
                    var$14 = var$12 + $this.$minZ1;
                    var$13 = var$11 + $this.$maxX1;
                    var$15 = var$21 + $this.$maxY0;
                    var$16 = var$12 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par1World = var$9.$listAABB;
                    $par4 = $par1World.$size0;
                    $par3 = $rt_compare($par2, $par4);
                    if ($par3 >= 0) {
                        $par7Entity = new nms_AxisAlignedBB;
                        $par7Entity.$minX0 = var$20;
                        $par7Entity.$minY0 = var$10;
                        $par7Entity.$minZ0 = var$14;
                        $par7Entity.$maxX0 = var$13;
                        $par7Entity.$maxY = var$15;
                        $par7Entity.$maxZ0 = var$16;
                        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                        var$19 = $par1World.$array.data;
                        $par3 = $par1World.$size0;
                        $par1World.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par1World.$modCount = $par1World.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par3 < 0) {
                        $par7Entity = $par1World.$array.data[$par2];
                        $par7Entity.$minX0 = var$20;
                        $par7Entity.$minY0 = var$10;
                        $par7Entity.$minZ0 = var$14;
                        $par7Entity.$maxX0 = var$13;
                        $par7Entity.$maxY = var$15;
                        $par7Entity.$maxZ0 = var$16;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.375;
                    $this.$minZ1 = 0.25;
                    $this.$maxX1 = 0.75;
                    $this.$maxY0 = 0.625;
                    $this.$maxZ1 = 0.75;
                    var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$20 = var$11 + $this.$minX1;
                    var$10 = var$21 + $this.$minY1;
                    var$14 = var$12 + $this.$minZ1;
                    var$11 = var$11 + $this.$maxX1;
                    var$21 = var$21 + $this.$maxY0;
                    var$12 = var$12 + $this.$maxZ1;
                    $par2 = var$9.$nextPoolIndex;
                    $par1World = var$9.$listAABB;
                    $par4 = $par1World.$size0;
                    $par3 = $rt_compare($par2, $par4);
                    if ($par3 >= 0) {
                        $par7Entity = new nms_AxisAlignedBB;
                        $par7Entity.$minX0 = var$20;
                        $par7Entity.$minY0 = var$10;
                        $par7Entity.$minZ0 = var$14;
                        $par7Entity.$maxX0 = var$11;
                        $par7Entity.$maxY = var$21;
                        $par7Entity.$maxZ0 = var$12;
                        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                        var$19 = $par1World.$array.data;
                        $par3 = $par1World.$size0;
                        $par1World.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par1World.$modCount = $par1World.$modCount + 1 | 0;
                    } else if ($par2 >= 0 && $par3 < 0) {
                        $par7Entity = $par1World.$array.data[$par2];
                        $par7Entity.$minX0 = var$20;
                        $par7Entity.$minY0 = var$10;
                        $par7Entity.$minZ0 = var$14;
                        $par7Entity.$maxX0 = var$11;
                        $par7Entity.$maxY = var$21;
                        $par7Entity.$maxZ0 = var$12;
                    } else {
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1World);
                        $rt_throw($par1World);
                    }
                    var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
                    if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                        ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                        var$19 = $par6List.$array.data;
                        $par3 = $par6List.$size0;
                        $par6List.$size0 = $par3 + 1 | 0;
                        var$19[$par3] = $par7Entity;
                        $par6List.$modCount = $par6List.$modCount + 1 | 0;
                    }
                    break a;
                default:
                    break a;
            }
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.25;
            $this.$maxZ1 = 1.0;
            var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$10 = $par2;
            var$11 = var$10 + $this.$minX1;
            var$12 = $par3;
            var$13 = var$12 + $this.$minY1;
            var$14 = $par4;
            var$15 = var$14 + $this.$minZ1;
            var$16 = var$10 + $this.$maxX1;
            var$17 = var$12 + $this.$maxY0;
            var$18 = var$14 + $this.$maxZ1;
            $par2 = var$9.$nextPoolIndex;
            $par1World = var$9.$listAABB;
            $par4 = $par1World.$size0;
            $par3 = $rt_compare($par2, $par4);
            if ($par3 >= 0) {
                $par7Entity = new nms_AxisAlignedBB;
                $par7Entity.$minX0 = var$11;
                $par7Entity.$minY0 = var$13;
                $par7Entity.$minZ0 = var$15;
                $par7Entity.$maxX0 = var$16;
                $par7Entity.$maxY = var$17;
                $par7Entity.$maxZ0 = var$18;
                ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                var$19 = $par1World.$array.data;
                $par3 = $par1World.$size0;
                $par1World.$size0 = $par3 + 1 | 0;
                var$19[$par3] = $par7Entity;
                $par1World.$modCount = $par1World.$modCount + 1 | 0;
            } else if ($par2 >= 0 && $par3 < 0) {
                $par7Entity = $par1World.$array.data[$par2];
                $par7Entity.$minX0 = var$11;
                $par7Entity.$minY0 = var$13;
                $par7Entity.$minZ0 = var$15;
                $par7Entity.$maxX0 = var$16;
                $par7Entity.$maxY = var$17;
                $par7Entity.$maxZ0 = var$18;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
            if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                var$19 = $par6List.$array.data;
                $par3 = $par6List.$size0;
                $par6List.$size0 = $par3 + 1 | 0;
                var$19[$par3] = $par7Entity;
                $par6List.$modCount = $par6List.$modCount + 1 | 0;
            }
            $this.$minX1 = 0.375;
            $this.$minY1 = 0.25;
            $this.$minZ1 = 0.375;
            $this.$maxX1 = 0.625;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.625;
            var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$11 = var$10 + $this.$minX1;
            var$20 = var$12 + $this.$minY1;
            var$21 = var$14 + $this.$minZ1;
            var$10 = var$10 + $this.$maxX1;
            var$12 = var$12 + $this.$maxY0;
            var$14 = var$14 + $this.$maxZ1;
            $par2 = var$9.$nextPoolIndex;
            $par7Entity = var$9.$listAABB;
            $par3 = $par7Entity.$size0;
            $par4 = $rt_compare($par2, $par3);
            if ($par4 >= 0) {
                $par1World = new nms_AxisAlignedBB;
                $par1World.$minX0 = var$11;
                $par1World.$minY0 = var$20;
                $par1World.$minZ0 = var$21;
                $par1World.$maxX0 = var$10;
                $par1World.$maxY = var$12;
                $par1World.$maxZ0 = var$14;
                ju_ArrayList_ensureCapacity($par7Entity, $par3 + 1 | 0);
                var$19 = $par7Entity.$array.data;
                $par3 = $par7Entity.$size0;
                $par7Entity.$size0 = $par3 + 1 | 0;
                var$19[$par3] = $par1World;
                $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
            } else if ($par2 >= 0 && $par4 < 0) {
                $par1World = $par7Entity.$array.data[$par2];
                $par1World.$minX0 = var$11;
                $par1World.$minY0 = var$20;
                $par1World.$minZ0 = var$21;
                $par1World.$maxX0 = var$10;
                $par1World.$maxY = var$12;
                $par1World.$maxZ0 = var$14;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
            if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
                ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                var$19 = $par6List.$array.data;
                $par3 = $par6List.$size0;
                $par6List.$size0 = $par3 + 1 | 0;
                var$19[$par3] = $par1World;
                $par6List.$modCount = $par6List.$modCount + 1 | 0;
            }
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_BlockPistonExtension_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            switch ($var5 & 7) {
                case 0:
                    break;
                case 1:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.75;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    break a;
                case 2:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 0.25;
                    break a;
                case 3:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.75;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    break a;
                case 4:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 0.25;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    break a;
                case 5:
                    $this.$minX1 = 0.75;
                    $this.$minY1 = 0.0;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 1.0;
                    $this.$maxZ1 = 1.0;
                    break a;
                default:
                    break a;
            }
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.25;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockPistonExtension_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var7, $var6, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var6 = $var7 & 7;
        var$8 = $par2 - nms_Facing_offsetsXForSide.data[$var6] | 0;
        var$9 = $par3 - nms_Facing_offsetsYForSide.data[$var6] | 0;
        $var7 = $par4 - nms_Facing_offsetsZForSide.data[$var6] | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$8, var$9, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if ($var7 != nms_Block_pistonBase.$blockID && $var7 != nms_Block_pistonStickyBase.$blockID) {
            $par5 = 0;
            $var7 = 0;
            var$8 = 3;
            $ptr = 4;
            continue main;
        }
        var$10 = nms_Block_blocksList.data[$var7];
        $par2 = $par2 - nms_Facing_offsetsXForSide.data[$var6] | 0;
        $par3 = $par3 - nms_Facing_offsetsYForSide.data[$var6] | 0;
        $par4 = $par4 - nms_Facing_offsetsZForSide.data[$var6] | 0;
        $ptr = 3;
    case 3:
        var$10.$onNeighborBlockChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var7, $var6, var$8, var$9, var$10, $ptr);
},
nms_BlockColored = $rt_classWithoutFields(nms_Block),
nms_BlockColored__init_0 = ($this, $par1, $par2Material) => {
    nms_Block__init_($this, $par1, $par2Material);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockColored__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockColored();
    nms_BlockColored__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockColored_damageDropped = ($this, $par1) => {
    return $par1;
},
nms_BlockPistonMoving = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockPistonMoving__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_piston);
    $this.$isBlockContainer = 1;
    $this.$blockHardness = (-1.0);
    if ($this.$blockResistance < (-5.0))
        $this.$blockResistance = (-5.0);
},
nms_BlockPistonMoving__init_ = var_0 => {
    let var_1 = new nms_BlockPistonMoving();
    nms_BlockPistonMoving__init_0(var_1, var_0);
    return var_1;
},
nms_BlockPistonMoving_createNewTileEntity = ($this, $par1World) => {
    return null;
},
nms_BlockPistonMoving_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    return;
},
nms_BlockPistonMoving_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 instanceof nms_TileEntityPiston) {
            $par1World = $var7;
            $ptr = 3;
            continue main;
        }
        $ptr = 2;
    case 2:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_TileEntityPiston_clearPistonTileEntity($par1World);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $ptr);
},
nms_BlockPistonMoving_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    return 0;
},
nms_BlockPistonMoving_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return 0;
},
nms_BlockPistonMoving_getRenderType = $this => {
    return (-1);
},
nms_BlockPistonMoving_isOpaqueCube = $this => {
    return 0;
},
nms_BlockPistonMoving_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockPistonMoving_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityPlayer = $tmp;
        if ($par5EntityPlayer !== null)
            return 0;
        $par6 = 0;
        var$10 = 0;
        var$11 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, var$11, $ptr);
},
nms_BlockPistonMoving_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
},
nms_BlockPistonMoving_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var8 = !(var$8 instanceof nms_TileEntityPiston) ? null : var$8;
        if ($var8 === null)
            return;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[$var8.$storedBlockID];
        $par7 = $var8.$storedMetadata;
        $par5 = 0;
        $par6 = 1.0;
        $ptr = 2;
    case 2:
        var$8.$dropBlockAsItemWithChance($par1World, $par2, $par3, $par4, $par7, $par6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, var$8, $var8, $ptr);
},
nms_BlockPistonMoving_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockPistonMoving_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $var6, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var5 = !($var5 instanceof nms_TileEntityPiston) ? null : $var5;
        if ($var5 === null)
            return null;
        var$6 = $var5.$lastProgress;
        $var6 = var$6 + ($var5.$progress - var$6) * 0.0;
        if ($var5.$extending)
            $var6 = 1.0 - $var6;
        var$8 = $var5.$storedBlockID;
        var$9 = $var5.$storedOrientation;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockPistonMoving_getAxisAlignedBB($this, $par1World, $par2, $par3, $par4, var$8, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $var6, var$8, var$9, $ptr);
},
nms_BlockPistonMoving_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var6, $var5, $var7, $var8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = !($var6 instanceof nms_TileEntityPiston) ? null : $var6;
        if ($var5 === null)
            return;
        nms_Block_$callClinit();
        $var6 = nms_Block_blocksList.data[$var5.$storedBlockID];
        if ($var6 !== null && $var6 !== $this) {
            $ptr = 2;
            continue main;
        }
        return;
    case 2:
        $var6.$setBlockBoundsBasedOnState($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var5.$lastProgress;
        $var7 = $var7 + ($var5.$progress - $var7) * 0.0;
        if ($var5.$extending)
            $var7 = 1.0 - $var7;
        $var8 = $var5.$storedOrientation;
        var$9 = $var6.$minX1;
        var$10 = nms_Facing_offsetsXForSide.data;
        $this.$minX1 = var$9 - var$10[$var8] * $var7;
        var$9 = $var6.$minY1;
        var$11 = nms_Facing_offsetsYForSide.data;
        $this.$minY1 = var$9 - var$11[$var8] * $var7;
        var$9 = $var6.$minZ1;
        var$12 = nms_Facing_offsetsZForSide.data;
        $this.$minZ1 = var$9 - var$12[$var8] * $var7;
        $this.$maxX1 = $var6.$maxX1 - var$10[$var8] * $var7;
        $this.$maxY0 = $var6.$maxY0 - var$11[$var8] * $var7;
        $this.$maxZ1 = $var6.$maxZ1 - var$12[$var8] * $var7;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var6, $var5, $var7, $var8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockPistonMoving_getAxisAlignedBB = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 && $par5 != $this.$blockID) {
            nms_Block_$callClinit();
            $var8 = nms_Block_blocksList.data[$par5];
            $ptr = 1;
            continue main;
        }
        return null;
    case 1:
        $tmp = $var8.$getCollisionBoundingBoxFromPool($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 === null)
            return null;
        var$9 = nms_Facing_offsetsXForSide.data;
        if (var$9[$par7] >= 0)
            $var8.$maxX0 = $var8.$maxX0 - var$9[$par7] * $par6;
        else
            $var8.$minX0 = $var8.$minX0 - var$9[$par7] * $par6;
        var$9 = nms_Facing_offsetsYForSide.data;
        if (var$9[$par7] >= 0)
            $var8.$maxY = $var8.$maxY - var$9[$par7] * $par6;
        else
            $var8.$minY0 = $var8.$minY0 - var$9[$par7] * $par6;
        var$9 = nms_Facing_offsetsZForSide.data;
        if (var$9[$par7] >= 0)
            $var8.$maxZ0 = $var8.$maxZ0 - var$9[$par7] * $par6;
        else
            $var8.$minZ0 = $var8.$minZ0 - var$9[$par7] * $par6;
        return $var8;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, var$9, $ptr);
},
nms_BlockMushroom = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockMushroom__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.4000000059604645;
    $this.$maxZ1 = 0.699999988079071;
    $this.$needsRandomTick = 1;
},
nms_BlockMushroom__init_ = var_0 => {
    let var_1 = new nms_BlockMushroom();
    nms_BlockMushroom__init_0(var_1, var_0);
    return var_1;
},
nms_BlockMushroom_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, $var9, $var7, $var8, $var10, $var11, var$13, var$14, $var6, var$16, var$17, $var9_0, $var10_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10_0 = $thread.pop();$var9_0 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var6 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$6;
        var$7 = 17;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var7 = $var9 % 25 | 0;
            if ((($var9 - $var7 | 0) + 24 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var7)
            return;
        $var7 = 5;
        $var8 = $par2 - 4 | 0;
        $var9 = $par2 + 4 | 0;
        $var10 = $par4 - 4 | 0;
        $var11 = $par4 + 4 | 0;
        var$13 = $par3 - 1 | 0;
        var$14 = $par3 + 1 | 0;
        a: while (true) {
            if ($var8 > $var9) {
                var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                $var7 = 2;
                while (true) {
                    $var8 = $var9 % 3 | 0;
                    if ((($var9 - $var8 | 0) + $var7 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                $var6 = ($par2 + $var8 | 0) - 1 | 0;
                var$16 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$16;
                $var9 = $par3 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
                var$17 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$17;
                $var9 = $var9 - Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$17, var$7)))), 31)) | 0;
                var$6 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$6;
                $var8 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var10 = $var8 % 3 | 0;
                    if ((($var8 - $var10 | 0) + $var7 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$6;
                    $var8 = Long_lo(Long_shru(var$6, var$7));
                }
                $var10 = ($par4 + $var10 | 0) - 1 | 0;
                $var11 = 0;
                var$6 = Long_fromInt(2);
                if ($var11 >= 4) {
                    $ptr = 2;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            $var9_0 = $var10;
            while ($var9_0 <= $var11) {
                $var10_0 = var$13;
                if ($var10_0 <= var$14)
                    break a;
                $var9_0 = $var9_0 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var8, $var10_0, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 == $this.$blockID) {
            $var7 = $var7 + (-1) | 0;
            if ($var7 <= 0)
                return;
        }
        $var10_0 = $var10_0 + 1 | 0;
        while ($var10_0 > var$14) {
            $var9_0 = $var9_0 + 1 | 0;
            while ($var9_0 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var9) {
                    var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    $var7 = 2;
                    while (true) {
                        $var8 = $var9 % 3 | 0;
                        if ((($var9 - $var8 | 0) + $var7 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par5Random.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    $var6 = ($par2 + $var8 | 0) - 1 | 0;
                    var$16 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$16;
                    $var9 = $par3 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
                    var$17 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$17;
                    $var9 = $var9 - Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$17, var$7)))), 31)) | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$6;
                    $var8 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var10 = $var8 % 3 | 0;
                        if ((($var8 - $var10 | 0) + $var7 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par5Random.$seed = var$6;
                        $var8 = Long_lo(Long_shru(var$6, var$7));
                    }
                    $var10 = ($par4 + $var10 | 0) - 1 | 0;
                    $var11 = 0;
                    var$6 = Long_fromInt(2);
                    if ($var11 >= 4) {
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                $var9_0 = $var10;
            }
            $var10_0 = var$13;
        }
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var6, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 ? 0 : 1))
            return;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var6, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 ? 0 : 1) {
            $ptr = 5;
            continue main;
        }
        $var6 = $par2;
        $var9 = $par3;
        $var10 = $par4;
        var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$17;
        $par3 = Long_lo(Long_shru(var$17, var$7));
        while (true) {
            $par4 = $par3 % 3 | 0;
            if ((($par3 - $par4 | 0) + $var7 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $par3 = Long_lo(Long_shru(var$17, var$7));
        }
        $var8 = ($var6 + $par4 | 0) - 1 | 0;
        var$16 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$16;
        $par2 = $var9 + Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$16;
        var$13 = $par2 - Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$17 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$17;
        $par3 = Long_lo(Long_shru(var$17, var$7));
        while (true) {
            $par4 = $par3 % 3 | 0;
            if ((($par3 - $par4 | 0) + $var7 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $par3 = Long_lo(Long_shru(var$17, var$7));
        }
        $var9_0 = ($var10 + $par4 | 0) - 1 | 0;
        $var11 = $var11 + 1 | 0;
        $par2 = $var6;
        $par3 = $var9;
        $par4 = $var10;
        $var6 = $var8;
        $var9 = var$13;
        $var10 = $var9_0;
        if ($var11 >= 4) {
            $ptr = 2;
            continue main;
        }
        continue main;
    case 4:
        $tmp = nms_BlockMushroom_canBlockStay($this, $par1World, $var6, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return;
        $par4 = $this.$blockID;
        $par2 = 0;
        $par3 = 2;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_BlockMushroom_canBlockStay($this, $par1World, $var6, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8) {
            $var6 = $par2;
            $var9 = $par3;
            $var10 = $par4;
        }
        var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$17;
        $par3 = Long_lo(Long_shru(var$17, var$7));
        while (true) {
            $par4 = $par3 % 3 | 0;
            if ((($par3 - $par4 | 0) + $var7 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $par3 = Long_lo(Long_shru(var$17, var$7));
        }
        $var8 = ($var6 + $par4 | 0) - 1 | 0;
        var$16 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$16;
        $par2 = $var9 + Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$16;
        var$13 = $par2 - Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$17 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$17;
        $par3 = Long_lo(Long_shru(var$17, var$7));
        while (true) {
            $par4 = $par3 % 3 | 0;
            if ((($par3 - $par4 | 0) + $var7 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $par3 = Long_lo(Long_shru(var$17, var$7));
        }
        $var9_0 = ($var10 + $par4 | 0) - 1 | 0;
        $var11 = $var11 + 1 | 0;
        $par2 = $var6;
        $par3 = $var9;
        $par4 = $var10;
        $var6 = $var8;
        $var9 = var$13;
        $var10 = $var9_0;
        if ($var11 >= 4) {
            $ptr = 2;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $var6, $var9, $var10, $par4, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, $var9, $var7, $var8, $var10, $var11, var$13, var$14, $var6, var$16, var$17, $var9_0, $var10_0, $ptr);
},
nms_BlockMushroom_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable) {
                    var$5 = 0;
                    break a;
                }
            }
            var$5 = 1;
        }
        if (var$5) {
            var$5 = $par3 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if (!0)
            return 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        if (!(!nms_Block_opaqueCubeLookup.data[var$5] ? 0 : 1))
            return 0;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockMushroom_canBlockStay($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockMushroom_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return nms_Block_opaqueCubeLookup.data[$par1];
},
nms_BlockMushroom_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3 >= 0 && $par3 < 256) {
            $var5 = $par3 - 1 | 0;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $var5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        if ($var5 == nms_Block_mycelium.$blockID)
            return 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getFullBlockLightValue($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 < 13 && nms_Block_opaqueCubeLookup.data[$var5] ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockMushroom_fertilizeMushroom = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, var$9, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$7 = 0;
        var$8 = 0;
        var$9 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = null;
        var$8 = $this.$blockID;
        nms_Block_$callClinit();
        if (var$8 == nms_Block_mushroomBrown.$blockID) {
            $var7 = new nms_WorldGenBigMushroom;
            $var7.$doBlockNotify = 1;
            $var7.$mushroomType = (-1);
            $var7.$mushroomType = 0;
        } else if (var$8 == nms_Block_mushroomRed.$blockID) {
            $var7 = new nms_WorldGenBigMushroom;
            $var7.$doBlockNotify = 1;
            $var7.$mushroomType = (-1);
            $var7.$mushroomType = 1;
        }
        if ($var7 !== null) {
            $ptr = 4;
            continue main;
        }
        var$7 = $this.$blockID;
        var$8 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return 0;
    case 4:
        $tmp = nms_WorldGenBigMushroom_generate($var7, $par1World, $par5Random, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7)
            return 1;
        var$7 = $this.$blockID;
        var$8 = 3;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, var$9, $var7, $ptr);
},
nms_BlockOreStorage = $rt_classWithoutFields(nms_Block),
nms_BlockOreStorage__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_iron);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockOreStorage__init_ = var_0 => {
    let var_1 = new nms_BlockOreStorage();
    nms_BlockOreStorage__init_0(var_1, var_0);
    return var_1;
};
function nms_BlockHalfSlab() {
    nms_Block.call(this);
    this.$isDoubleSlab = 0;
}
let nms_BlockHalfSlab_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isDoubleSlab) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!(!($par2 & 8) ? 0 : 1)) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.5;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.5;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockHalfSlab_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockHalfSlab_setBlockBoundsBasedOnState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$9 = $par2;
        var$10 = var$9 + $this.$minX1;
        var$11 = $par3;
        var$12 = var$11 + $this.$minY1;
        var$13 = $par4;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$11 = var$11 + $this.$maxY0;
        var$9 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$11;
            $par7Entity.$maxZ0 = var$9;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$16 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$16[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$11;
            $par7Entity.$maxZ0 = var$9;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$16 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$16[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_BlockHalfSlab_isOpaqueCube = $this => {
    return $this.$isDoubleSlab;
},
nms_BlockHalfSlab_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    if (!$this.$isDoubleSlab && !($par5 && !($par5 != 1 && $par7 > 0.5)))
        $par9 = $par9 | 8;
    return $par9;
},
nms_BlockHalfSlab_quantityDropped = ($this, $par1Random) => {
    return !$this.$isDoubleSlab ? 1 : 2;
},
nms_BlockHalfSlab_damageDropped = ($this, $par1) => {
    return $par1 & 7;
},
nms_BlockHalfSlab_renderAsNormalBlock = $this => {
    return $this.$isDoubleSlab;
},
nms_BlockStep = $rt_classWithoutFields(nms_BlockHalfSlab),
nms_BlockStep_blockStepTypes = null,
nms_BlockStep__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isDoubleSlab = $par2;
    if ($par2)
        nms_Block_opaqueCubeLookup.data[$par1] = 1;
    else {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.5;
        $this.$maxZ1 = 1.0;
    }
    nms_Block_lightOpacity.data[$this.$blockID] = 255;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockStep__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockStep();
    nms_BlockStep__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockStep_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_stoneSingleSlab.$blockID;
},
nms_BlockStep_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    var$2 = new nms_ItemStack;
    nms_Block_$callClinit();
    var$3 = nms_Block_stoneSingleSlab.$blockID;
    $par1 = $par1 & 7;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = 2;
    var$2.$itemDamage = $par1;
    if ($par1 < 0)
        var$2.$itemDamage = 0;
    return var$2;
},
nms_BlockStep_getFullSlabName = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    if (!($par1 >= 0 && $par1 < nms_BlockStep_blockStepTypes.data.length))
        $par1 = 0;
    var$2 = $this.$unlocalizedName0;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(703));
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$2 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$3 = nms_BlockStep_blockStepTypes.data[$par1];
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, var$2);
        var$4 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
        var$9.$buffer.data[var$4] = 46;
        $par1 = var$9.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, $par1, var$3);
        var$2 = new jl_String;
        var$5 = var$9.$buffer;
        var$6 = var$5.data;
        var$4 = var$9.$length0;
        var$7 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
            var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
            return var$2;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$2);
    $rt_throw(var$2);
},
nms_BlockStep__clinit_ = () => {
    nms_BlockStep_blockStepTypes = $rt_wrapArray(jl_String, [$rt_s(79), $rt_s(708), $rt_s(704), $rt_s(80), $rt_s(81), $rt_s(1412), $rt_s(830), $rt_s(659)]);
},
nms_BlockTNT = $rt_classWithoutFields(nms_Block),
nms_BlockTNT__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_tnt);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockTNT__init_0 = var_0 => {
    let var_1 = new nms_BlockTNT();
    nms_BlockTNT__init_(var_1, var_0);
    return var_1;
},
nms_BlockTNT_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5)
            return;
        var$5 = 1;
        var$6 = null;
        $ptr = 2;
    case 2:
        nms_BlockTNT_primeTnt($this, $par1World, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = 0;
        var$7 = 0;
        var$8 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockTNT_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5)
            return;
        $par5 = 1;
        var$6 = null;
        $ptr = 2;
    case 2:
        nms_BlockTNT_primeTnt($this, $par1World, $par2, $par3, $par4, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$7 = 0;
        var$8 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockTNT_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockTNT_onBlockDestroyedByExplosion = ($this, $par1World, $par2, $par3, $par4, $par5Explosion) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Explosion = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var6 = new nms_EntityTNTPrimed;
        var$7 = $par2 + 0.5;
        var$8 = $par3 + 0.5;
        var$9 = $par4 + 0.5;
        $par5Explosion = $par5Explosion.$exploder;
        $par5Explosion = $par5Explosion === null ? null : $par5Explosion instanceof nms_EntityTNTPrimed ? $par5Explosion.$tntPlacedBy : !($par5Explosion instanceof nms_EntityLivingBase) ? null : $par5Explosion;
        $ptr = 1;
    case 1:
        nms_EntityTNTPrimed__init_($var6, $par1World, var$7, var$8, var$9, $par5Explosion);
        if ($rt_suspending()) {
            break main;
        }
        $par5Explosion = $par1World.$rand0;
        $par3 = $var6.$fuse;
        $par4 = $par3 / 4 | 0;
        var$10 = Long_and(Long_add(Long_mul($par5Explosion.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Explosion.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        var$12 = $par4 - 1 | 0;
        if (!($par4 & var$12))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt($par4), Long_fromInt(var$11)), 31));
        else
            while (true) {
                var$13 = var$11 % $par4 | 0;
                if (((var$11 - var$13 | 0) + var$12 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par5Explosion.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Explosion.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
        $var6.$fuse = var$13 + ($par3 / 8 | 0) | 0;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1World, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Explosion, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockTNT_onBlockDestroyedByPlayer = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = null;
        $ptr = 1;
    case 1:
        nms_BlockTNT_primeTnt($this, $par1World, $par2, $par3, $par4, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockTNT_primeTnt = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityLivingBase) => {
    let $var7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6EntityLivingBase = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote && ($par5 & 1) == 1) {
            $var7 = new nms_EntityTNTPrimed;
            var$8 = $par2 + 0.5;
            var$9 = $par3 + 0.5;
            var$10 = $par4 + 0.5;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_EntityTNTPrimed__init_($var7, $par1World, var$8, var$9, var$10, $par6EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1World, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par6EntityLivingBase = $rt_s(1413);
        var$11 = 1.0;
        var$12 = 1.0;
        $ptr = 3;
    case 3:
        nms_World_playSoundAtEntity($par1World, $var7, $par6EntityLivingBase, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityLivingBase, $var7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockTNT_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $par5EntityPlayer.$inventory0;
        var$11 = var$10.$currentItem;
        $par6 = $rt_compare(var$11, 9);
        if (($par6 < 0 && var$11 >= 0 ? var$10.$mainInventory.data[var$11] : null) !== null) {
            $par6 = ($par6 < 0 && var$11 >= 0 ? var$10.$mainInventory.data[var$11] : null).$itemID;
            nms_Item_$callClinit();
            if ($par6 == nms_Item_flintAndSteel.$itemID0) {
                $par6 = 1;
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        nms_BlockTNT_primeTnt($this, $par1World, $par2, $par3, $par4, $par6, $par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = 0;
        var$11 = 0;
        var$12 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par6, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $par5EntityPlayer.$inventory0;
        $par3 = $par1World.$currentItem;
        $par1World = $par3 < 9 && $par3 >= 0 ? $par1World.$mainInventory.data[$par3] : null;
        $par2 = 1;
        $ptr = 3;
    case 3:
        nms_ItemStack_damageItem($par1World, $par2, $par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, var$11, var$12, $ptr);
},
nms_BlockTNT_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5Entity instanceof nms_EntityArrow && !$par1World.$isRemote) {
            a: {
                b: {
                    $var6 = $par5Entity;
                    if (!$var6.$isImmuneToFire) {
                        if ($var6.$fire > 0)
                            break b;
                        $par5Entity = $var6.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[128];
                        if (var$7 === null) {
                            $par5Entity = $par5Entity.$elementData.data[0];
                            while ($par5Entity !== null && $par5Entity.$key !== null) {
                                $par5Entity = $par5Entity.$next3;
                            }
                        } else {
                            var$8 = var$7.$value;
                            var$9 = $par5Entity.$elementData.data;
                            $par5Entity = var$9[var$8 & (var$9.length - 1 | 0)];
                            while ($par5Entity !== null) {
                                if ($par5Entity.$origKeyHash == var$8) {
                                    var$10 = $par5Entity.$key;
                                    if (var$7 !== var$10 && !jl_Integer_equals(var$7, var$10) ? 0 : 1)
                                        break;
                                }
                                $par5Entity = $par5Entity.$next3;
                            }
                        }
                        $par5Entity = $par5Entity === null ? null : $par5Entity.$value0;
                        if (!($par5Entity.$watchedObject.$value1 & 1) ? 0 : 1)
                            break b;
                    }
                    var$11 = 0;
                    break a;
                }
                var$11 = 1;
            }
            if (var$11) {
                var$12 = 1;
                $par5Entity = $var6.$shootingEntity;
                if (!($par5Entity instanceof nms_EntityLivingBase))
                    $par5Entity = null;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_BlockTNT_primeTnt($this, $par1World, $par2, $par3, $par4, var$12, $par5Entity);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = 0;
        var$12 = 0;
        var$8 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$11, var$12, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockTNT_canDropFromExplosion = ($this, $par1Explosion) => {
    return 0;
},
nms_BlockBookshelf = $rt_classWithoutFields(nms_Block),
nms_BlockBookshelf__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockBookshelf__init_0 = var_0 => {
    let var_1 = new nms_BlockBookshelf();
    nms_BlockBookshelf__init_(var_1, var_0);
    return var_1;
},
nms_BlockBookshelf_quantityDropped = ($this, $par1Random) => {
    return 3;
},
nms_BlockBookshelf_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_book.$itemID0;
},
nms_BlockObsidian = $rt_classWithoutFields(nms_BlockStone),
nms_BlockObsidian__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockObsidian__init_ = var_0 => {
    let var_1 = new nms_BlockObsidian();
    nms_BlockObsidian__init_0(var_1, var_0);
    return var_1;
},
nms_BlockObsidian_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockObsidian_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_obsidian.$blockID;
},
nms_BlockTorch = $rt_classWithoutFields(nms_Block),
nms_BlockTorch__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockTorch__init_ = var_0 => {
    let var_1 = new nms_BlockTorch();
    nms_BlockTorch__init_0(var_1, var_0);
    return var_1;
},
nms_BlockTorch_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockTorch_isOpaqueCube = $this => {
    return 0;
},
nms_BlockTorch_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockTorch_getRenderType = $this => {
    return 2;
},
nms_BlockTorch_canPlaceTorchOn = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$7 = var$5[$var5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, $var5))
            return 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        return $var5 != nms_Block_fence.$blockID && $var5 != nms_Block_netherFence.$blockID && $var5 != nms_Block_glass.$blockID && $var5 != nms_Block_cobblestoneWall.$blockID ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, var$7, $ptr);
},
nms_BlockTorch_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        var$6 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return 1;
        var$6 = $par2 + 1 | 0;
        var$5 = 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, var$6, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return 1;
        var$6 = $par4 - 1 | 0;
        var$5 = 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, var$6, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return 1;
        var$6 = $par4 + 1 | 0;
        var$5 = 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, var$6, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return 1;
        $par3 = $par3 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_BlockTorch_canPlaceTorchOn($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockTorch_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 == 1) {
            var$10 = $par3 - 1 | 0;
            $ptr = 1;
            continue main;
        }
        if ($par5 == 2) {
            var$10 = $par4 + 1 | 0;
            var$11 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 3) {
            var$10 = $par4 - 1 | 0;
            var$11 = 1;
            $ptr = 3;
            continue main;
        }
        if ($par5 == 4) {
            var$10 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5)
            return $par9;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 5;
        continue main;
    case 1:
        $tmp = nms_BlockTorch_canPlaceTorchOn($this, $par1World, $par2, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 5;
        if ($par5 == 2) {
            var$10 = $par4 + 1 | 0;
            var$11 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 3) {
            var$10 = $par4 - 1 | 0;
            var$11 = 1;
            $ptr = 3;
            continue main;
        }
        if ($par5 == 4) {
            var$10 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5)
            return $par9;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 4;
        if ($par5 == 3) {
            var$10 = $par4 - 1 | 0;
            var$11 = 1;
            $ptr = 3;
            continue main;
        }
        if ($par5 == 4) {
            var$10 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5)
            return $par9;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 3;
        if ($par5 == 4) {
            var$10 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5)
            return $par9;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, var$10, $par3, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 2;
        if ($par5 != 5)
            return $par9;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 5;
    case 5:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par5, $par3, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2)
            $par9 = 1;
        return $par9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, var$10, var$11, $ptr);
},
nms_BlockTorch_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return;
        $ptr = 2;
    case 2:
        $this.$onBlockAdded($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $ptr);
},
nms_BlockTorch_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            $ptr = 2;
            continue main;
        }
        var$5 = $par2 - 1 | 0;
        var$6 = 1;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_BlockTorch_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$5 = 1;
            var$6 = 2;
            $ptr = 6;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        var$6 = 1;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 != $this.$blockID)
            return;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$5 = 2;
            var$6 = 2;
            $ptr = 11;
            continue main;
        }
        var$5 = $par4 - 1 | 0;
        var$6 = 1;
        $ptr = 10;
        continue main;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 8;
    case 8:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = 0;
        var$6 = 0;
        var$8 = 3;
        $ptr = 9;
    case 9:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$5 = 3;
            var$6 = 2;
            $ptr = 13;
            continue main;
        }
        var$5 = $par4 + 1 | 0;
        var$6 = 1;
        $ptr = 12;
        continue main;
    case 11:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 12:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            var$5 = $par3 - 1 | 0;
            $ptr = 14;
            continue main;
        }
        var$5 = 4;
        var$6 = 2;
        $ptr = 15;
        continue main;
    case 13:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 14:
        $tmp = nms_BlockTorch_canPlaceTorchOn($this, $par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            $ptr = 2;
            continue main;
        }
        var$5 = 5;
        var$6 = 2;
        $ptr = 16;
        continue main;
    case 15:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 16:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockTorch_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockTorch_func_94397_d($this, $par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
};
let nms_BlockTorch_func_94397_d = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockTorch_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            $ptr = 2;
            continue main;
        }
        if (!1)
            return 1;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == $this.$blockID) {
            $ptr = 3;
            continue main;
        }
        if (!0)
            return 1;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 4;
    case 4:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        $var6 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, $var6);
        if ($rt_suspending()) {
            break main;
        }
        if (!0)
            return 1;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = 0;
        $par5 = $par2 - 1 | 0;
        var$6 = 1;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 1)
            $var7 = 1;
        $par5 = $par2 + 1 | 0;
        var$6 = 1;
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 2)
            $var7 = 1;
        $par5 = $par4 - 1 | 0;
        var$6 = 1;
        $ptr = 9;
    case 9:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 3)
            $var7 = 1;
        $par5 = $par4 + 1 | 0;
        var$6 = 1;
        $ptr = 10;
    case 10:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 4)
            $var7 = 1;
        $par5 = $par3 - 1 | 0;
        $ptr = 11;
    case 11:
        $tmp = nms_BlockTorch_canPlaceTorchOn($this, $par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 5)
            $var7 = 1;
        if (!$var7)
            return 0;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 13;
    case 13:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        $var6 = 3;
        $ptr = 14;
    case 14:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $var6, $var7, $ptr);
},
nms_BlockTorch_dropTorchIfCantStay = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockTorch_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 != $this.$blockID)
            return 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 4;
    case 4:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = 0;
        var$6 = 0;
        var$8 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockTorch_collisionRayTrace = ($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3) => {
    let var$7, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Vec3 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $var7 = var$7 & 7;
        if ($var7 == 1) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.3499999940395355;
            $this.$maxX1 = 0.30000001192092896;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.6499999761581421;
        } else if ($var7 == 2) {
            $this.$minX1 = 0.699999988079071;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.3499999940395355;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.6499999761581421;
        } else if ($var7 == 3) {
            $this.$minX1 = 0.3499999940395355;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.6499999761581421;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.30000001192092896;
        } else if ($var7 != 4) {
            $this.$minX1 = 0.4000000059604645;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.4000000059604645;
            $this.$maxX1 = 0.6000000238418579;
            $this.$maxY0 = 0.6000000238418579;
            $this.$maxZ1 = 0.6000000238418579;
        } else {
            $this.$minX1 = 0.3499999940395355;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.699999988079071;
            $this.$maxX1 = 0.6499999761581421;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 1.0;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_Block_collisionRayTrace($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3, var$7, $var7, $ptr);
};
function nms_BlockFire() {
    let a = this; nms_Block.call(a);
    a.$chanceToEncourageFire = null;
    a.$abilityToCatchFire = null;
}
let nms_BlockFire__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_fire);
    $this.$chanceToEncourageFire = $rt_createIntArray(256);
    $this.$abilityToCatchFire = $rt_createIntArray(256);
    $this.$needsRandomTick = 1;
},
nms_BlockFire__init_0 = var_0 => {
    let var_1 = new nms_BlockFire();
    nms_BlockFire__init_(var_1, var_0);
    return var_1;
},
nms_BlockFire_initializeBlock = $this => {
    let var$1, var$2, var$3, var$4;
    nms_Block_$callClinit();
    var$1 = nms_Block_planks.$blockID;
    var$2 = $this.$chanceToEncourageFire.data;
    var$2[var$1] = 5;
    var$3 = $this.$abilityToCatchFire.data;
    var$3[var$1] = 20;
    var$4 = nms_Block_woodDoubleSlab.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_woodSingleSlab.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_fence.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_stairsWoodOak.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_stairsWoodBirch.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_stairsWoodSpruce.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_stairsWoodJungle.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 20;
    var$4 = nms_Block_wood.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 5;
    var$4 = nms_Block_leaves.$blockID;
    var$2[var$4] = 30;
    var$3[var$4] = 60;
    var$4 = nms_Block_bookShelf.$blockID;
    var$2[var$4] = 30;
    var$3[var$4] = 20;
    var$4 = nms_Block_tnt.$blockID;
    var$2[var$4] = 15;
    var$3[var$4] = 100;
    var$4 = nms_Block_tallGrass.$blockID;
    var$2[var$4] = 60;
    var$3[var$4] = 100;
    var$4 = nms_Block_cloth.$blockID;
    var$2[var$4] = 30;
    var$3[var$4] = 60;
    var$4 = nms_Block_vine.$blockID;
    var$2[var$4] = 15;
    var$3[var$4] = 100;
    var$4 = nms_Block_coalBlock.$blockID;
    var$2[var$4] = 5;
    var$3[var$4] = 5;
    var$4 = nms_Block_hay.$blockID;
    var$2[var$4] = 60;
    var$3[var$4] = 20;
},
nms_BlockFire_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockFire_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFire_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFire_getRenderType = $this => {
    return 3;
},
nms_BlockFire_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockFire_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, $var15, $var9, $var14, $var6, var$13, var$14, var$15, $var7, var$17, var$18, $var10, var$20, var$21, $var8, var$23, var$24, var$25, $var11, $var12, $var13, $var16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var16 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var8 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var6 = $thread.pop();$var14 = $thread.pop();$var9 = $thread.pop();$var15 = $thread.pop();var$8
        = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$6 = ($par1World.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$7 = $rt_s(1414);
            var$8 = $rt_s(1414);
            if (var$7 !== var$8) {
                $var15 = var$7.$nativeString.length;
                $var9 = var$8.$nativeString.length;
                if ($var15 < $var9)
                    $var9 = $var15;
                $var14 = 0;
                b: {
                    while (true) {
                        if ($var14 >= $var9) {
                            var$7.$nativeString.length;
                            var$8.$nativeString.length;
                            break a;
                        }
                        if ($var14 < 0)
                            break b;
                        if ($var14 >= var$7.$nativeString.length)
                            break b;
                        $var6 = var$7.$nativeString.charCodeAt($var14);
                        if ($var14 < 0)
                            break;
                        if ($var14 >= var$8.$nativeString.length)
                            break;
                        if ($var6 - var$8.$nativeString.charCodeAt($var14) | 0)
                            break a;
                        $var14 = $var14 + 1 | 0;
                    }
                    $par1World = new jl_StringIndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                $par1World = new jl_StringIndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
        }
        var$8 = $rt_s(1414);
        c: {
            d: {
                e: while (true) {
                    if (var$6 === null) {
                        var$6 = null;
                        break c;
                    }
                    f: {
                        var$7 = var$6.$key0;
                        if (var$8 === var$7)
                            $var14 = 0;
                        else {
                            $var15 = var$8.$nativeString.length;
                            $var9 = var$7.$nativeString.length;
                            if ($var15 < $var9)
                                $var9 = $var15;
                            $var15 = 0;
                            while (true) {
                                if ($var15 >= $var9) {
                                    $var14 = var$8.$nativeString.length - var$7.$nativeString.length | 0;
                                    break f;
                                }
                                if ($var15 < 0)
                                    break d;
                                if ($var15 >= var$8.$nativeString.length)
                                    break d;
                                $var6 = var$8.$nativeString.charCodeAt($var15);
                                if ($var15 < 0)
                                    break e;
                                if ($var15 >= var$7.$nativeString.length)
                                    break e;
                                $var14 = $var6 - var$7.$nativeString.charCodeAt($var15) | 0;
                                if ($var14)
                                    break;
                                $var15 = $var15 + 1 | 0;
                            }
                        }
                    }
                    if (!$var14)
                        break c;
                    var$6 = $var14 >= 0 ? var$6.$right : var$6.$left;
                }
                $par1World = new jl_StringIndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            $par1World = new jl_StringIndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$8 = var$6 === null ? null : var$6.$value2;
        if (!(var$8 === null ? 0 : var$8.$valueBoolean))
            return;
        var$13 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        nms_Block_$callClinit();
        $var6 = $var14 != nms_Block_netherrack.$blockID ? 0 : 1;
        if ($par1World.$provider instanceof nms_WorldProviderEnd) {
            $ptr = 2;
            continue main;
        }
        var$14 = nms_Block_blocksList.data;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 == nms_Block_bedrock.$blockID)
            $var6 = 1;
        var$14 = nms_Block_blocksList.data;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        var$8 = var$14[$var14];
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, $var14)) {
            $ptr = 5;
            continue main;
        }
        if (!1) {
            $var14 = 0;
            $var15 = 0;
            $var9 = 3;
            $ptr = 6;
            continue main;
        }
        if (!$var6) {
            var$15 = $par1World.$prevRainingStrength;
            if (var$15 + ($par1World.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1) {
                $ptr = 8;
                continue main;
            }
        }
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_BlockFire_canNeighborBurn($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!($var14 ? 1 : 0)) {
            $var14 = 0;
            $var15 = 0;
            $var9 = 3;
            $ptr = 6;
            continue main;
        }
        if (!$var6) {
            var$15 = $par1World.$prevRainingStrength;
            if (var$15 + ($par1World.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1) {
                $ptr = 8;
                continue main;
            }
        }
        $ptr = 7;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var14, $var15, $var9);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var6) {
            var$15 = $par1World.$prevRainingStrength;
            if (var$15 + ($par1World.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1) {
                $ptr = 8;
                continue main;
            }
        }
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var15 = $rt_compare($var7, 15);
        if ($var15 < 0) {
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            var$18 = Long_lo(Long_shru(var$17, 17));
            while (true) {
                $var10 = var$18 % 3 | 0;
                if (((var$18 - $var10 | 0) + 2 | 0) >= 0)
                    break;
                var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$17;
                var$18 = Long_lo(Long_shru(var$17, 17));
            }
            $var14 = $var7 + ($var10 / 2 | 0) | 0;
            $var9 = 4;
            $ptr = 10;
            continue main;
        }
        $var9 = $this.$blockID;
        var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$17;
        var$20 = 17;
        $var10 = Long_lo(Long_shru(var$17, var$20));
        while (true) {
            var$21 = $var10 % 10 | 0;
            if ((($var10 - var$21 | 0) + 9 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $var10 = Long_lo(Long_shru(var$17, var$20));
        }
        $var14 = 30 + var$21 | 0;
        var$18 = 0;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_World_canLightningStrikeAt($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $par2 - 1 | 0;
            $ptr = 12;
            continue main;
        }
        $var14 = 0;
        $var15 = 0;
        $var6 = 3;
        $ptr = 11;
        continue main;
    case 9:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $var9, $var14, var$18);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var6) {
            $ptr = 13;
            continue main;
        }
        if ($var6) {
            $ptr = 15;
            continue main;
        }
        var$14 = $this.$chanceToEncourageFire.data;
        $ptr = 16;
        continue main;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var14, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $this.$blockID;
        var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$17;
        var$20 = 17;
        $var10 = Long_lo(Long_shru(var$17, var$20));
        while (true) {
            var$21 = $var10 % 10 | 0;
            if ((($var10 - var$21 | 0) + 9 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $var10 = Long_lo(Long_shru(var$17, var$20));
        }
        $var14 = 30 + var$21 | 0;
        var$18 = 0;
        $ptr = 9;
        continue main;
    case 11:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var14, $var15, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 12:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $par2 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        $var14 = 0;
        $var15 = 0;
        $var6 = 3;
        $ptr = 11;
        continue main;
    case 13:
        $tmp = nms_BlockFire_canNeighborBurn($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            var$14 = nms_Block_blocksList.data;
            $ptr = 17;
            continue main;
        }
        if ($var6) {
            $ptr = 15;
            continue main;
        }
        var$14 = $this.$chanceToEncourageFire.data;
        $ptr = 16;
        continue main;
    case 14:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $par4 - 1 | 0;
            $ptr = 19;
            continue main;
        }
        $var14 = 0;
        $var15 = 0;
        $var6 = 3;
        $ptr = 11;
        continue main;
    case 15:
        $tmp = nms_World_isBlockHighHumidity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = 0;
        if ($var8)
            $var9 = (-50);
        var$18 = $par2 + 1 | 0;
        $var14 = 300 + $var9 | 0;
        $ptr = 22;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $var14 = var$14[$var14] <= 0 ? 0 : 1;
        if (!$var14 && !$var15) {
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, var$20)))), 31))) {
                $var14 = 0;
                $var15 = 0;
                $var6 = 3;
                $ptr = 28;
                continue main;
            }
        }
        $ptr = 15;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $par5Random = var$14[$var14];
        $ptr = 18;
    case 18:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, $par5Random, $var14) && $var7 <= 3)
            return;
        $var14 = 0;
        $var15 = 0;
        $var6 = 3;
        $ptr = 20;
        continue main;
    case 19:
        $tmp = nms_World_canLightningStrikeAt($par1World, $par2, $par3, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $par4 + 1 | 0;
            $ptr = 21;
            continue main;
        }
        $var14 = 0;
        $var15 = 0;
        $var6 = 3;
        $ptr = 11;
        continue main;
    case 20:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var14, $var15, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 21:
        $tmp = nms_World_canLightningStrikeAt($par1World, $par2, $par3, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $ptr = 7;
            continue main;
        }
        $var14 = 0;
        $var15 = 0;
        $var6 = 3;
        $ptr = 11;
        continue main;
    case 22:
        nms_BlockFire_tryToCatchBlockOnFire($this, $par1World, var$18, $par3, $par4, $var14, $par5Random, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $par2 - 1 | 0;
        $ptr = 23;
    case 23:
        nms_BlockFire_tryToCatchBlockOnFire($this, $par1World, $var10, $par3, $par4, $var14, $par5Random, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 250 + $var9 | 0;
        $ptr = 24;
    case 24:
        nms_BlockFire_tryToCatchBlockOnFire($this, $par1World, $par2, var$13, $par4, $var15, $par5Random, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $par3 + 1 | 0;
        $ptr = 25;
    case 25:
        nms_BlockFire_tryToCatchBlockOnFire($this, $par1World, $par2, var$21, $par4, $var15, $par5Random, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$23 = $par4 - 1 | 0;
        $ptr = 26;
    case 26:
        nms_BlockFire_tryToCatchBlockOnFire($this, $par1World, $par2, $par3, var$23, $var14, $par5Random, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$24 = $par4 + 1 | 0;
        $ptr = 27;
    case 27:
        nms_BlockFire_tryToCatchBlockOnFire($this, $par1World, $par2, $par3, var$24, $var14, $par5Random, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$25 = $par3 + 4 | 0;
        $var9 = $var7 + 30 | 0;
        a: {
            while ($var10 <= var$18) {
                $var11 = var$23;
                while ($var11 <= var$24) {
                    $var12 = var$13;
                    while ($var12 <= var$25) {
                        if ($var10 != $par2)
                            break a;
                        if ($var12 != $par3)
                            break a;
                        if ($var11 != $par4)
                            break a;
                        $var12 = $var12 + 1 | 0;
                    }
                    $var11 = $var11 + 1 | 0;
                }
                $var10 = $var10 + 1 | 0;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    case 28:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var14, $var15, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 29:
        $tmp = nms_BlockFire_getChanceOfNeighborsEncouragingFire($this, $par1World, $var10, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 > 0) {
            $var15 = (($var14 + 40 | 0) + ($par1World.$difficultySetting * 7 | 0) | 0) / $var9 | 0;
            if ($var8)
                $var15 = $var15 / 2 | 0;
            if ($var15 > 0) {
                var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$17;
                $var16 = Long_lo(Long_shru(var$17, var$20));
                $var14 = $var13 - 1 | 0;
                if (!($var13 & $var14))
                    $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt($var13), Long_fromInt($var16)), 31));
                else
                    while (true) {
                        $var6 = $var16 % $var13 | 0;
                        if ((($var16 - $var6 | 0) + $var14 | 0) >= 0)
                            break;
                        var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par5Random.$seed = var$17;
                        $var16 = Long_lo(Long_shru(var$17, var$20));
                    }
                if ($var6 <= $var15) {
                    var$15 = $par1World.$prevRainingStrength;
                    if (var$15 + ($par1World.$rainingStrength - var$15) * 1.0 <= 0.2 ? 0 : 1) {
                        $ptr = 31;
                        continue main;
                    }
                    $var14 = $var10 - 1 | 0;
                    $ptr = 30;
                    continue main;
                }
            }
        }
        c: {
            g: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break g;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break c;
                if ($var12 != $par3)
                    break c;
                if ($var11 == $par4)
                    continue;
                else
                    break c;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        continue main;
    case 30:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var14, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $var10 + 1 | 0;
            $ptr = 32;
            continue main;
        }
        h: {
            i: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break i;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break h;
                if ($var12 != $par3)
                    break h;
                if ($var11 == $par4)
                    continue;
                else
                    break h;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    case 31:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var10, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $var10 - 1 | 0;
            $ptr = 30;
            continue main;
        }
        h: {
            i: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break i;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break h;
                if ($var12 != $par3)
                    break h;
                if ($var11 == $par4)
                    continue;
                else
                    break h;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    case 32:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var14, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $var11 - 1 | 0;
            $ptr = 33;
            continue main;
        }
        h: {
            i: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break i;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break h;
                if ($var12 != $par3)
                    break h;
                if ($var11 == $par4)
                    continue;
                else
                    break h;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    case 33:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var10, $var12, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            $var14 = $var11 + 1 | 0;
            $ptr = 34;
            continue main;
        }
        h: {
            i: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break i;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break h;
                if ($var12 != $par3)
                    break h;
                if ($var11 == $par4)
                    continue;
                else
                    break h;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    case 34:
        $tmp = nms_World_canLightningStrikeAt($par1World, $var10, $var12, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!$var14) {
            var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$17;
            $var14 = Long_lo(Long_shru(var$17, var$20));
            while (true) {
                $var15 = $var14 % 5 | 0;
                if ((($var14 - $var15 | 0) + 4 | 0) >= 0)
                    break;
                var$17 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$17;
                $var14 = Long_lo(Long_shru(var$17, var$20));
            }
            $var16 = $var7 + ($var15 / 4 | 0) | 0;
            if ($var16 > 15)
                $var16 = 15;
            $var14 = $this.$blockID;
            $var15 = 3;
            $ptr = 35;
            continue main;
        }
        j: {
            k: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break k;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break j;
                if ($var12 != $par3)
                    break j;
                if ($var11 == $par4)
                    continue;
                else
                    break j;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    case 35:
        nms_World_setBlock($par1World, $var10, $var12, $var11, $var14, $var16, $var15);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            h: while (true) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > var$25) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$24) {
                        $var10 = $var10 + 1 | 0;
                        if ($var10 > var$18)
                            break h;
                        $var11 = var$23;
                    }
                    $var12 = var$13;
                }
                if ($var10 != $par2)
                    break a;
                if ($var12 != $par3)
                    break a;
                if ($var11 == $par4)
                    continue;
                else
                    break a;
            }
            return;
        }
        $var13 = 100;
        if ($var12 > var$21)
            $var13 = $var13 + (($var12 - var$21 | 0) * 100 | 0) | 0;
        $ptr = 29;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, $var15, $var9, $var14, $var6, var$13, var$14, var$15, $var7, var$17, var$18, $var10, var$20, var$21, $var8, var$23, var$24, var$25, $var11, $var12, $var13, $var16, $ptr);
},
nms_BlockFire_func_82506_l = $this => {
    return 0;
},
nms_BlockFire_tryToCatchBlockOnFire = ($this, $par1World, $par2, $par3, $par4, $par5, $par6Random, $par7) => {
    let var$8, $var9, $var8, var$11, var$12, var$13, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6Random = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$8 = $this.$abilityToCatchFire.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var8 = var$8[$var9];
        var$11 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par6Random.$seed = var$11;
        var$12 = 17;
        var$13 = Long_lo(Long_shru(var$11, var$12));
        $var9 = $par5 - 1 | 0;
        if (!($par5 & $var9))
            $var10 = Long_lo(Long_shr(Long_mul(Long_fromInt($par5), Long_fromInt(var$13)), 31));
        else
            while (true) {
                $var10 = var$13 % $par5 | 0;
                if (((var$13 - $var10 | 0) + $var9 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par6Random.$seed = var$11;
                var$13 = Long_lo(Long_shru(var$11, var$12));
            }
        if ($var10 >= $var8)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        nms_Block_$callClinit();
        $var9 = $var9 != nms_Block_tnt.$blockID ? 0 : 1;
        $par5 = $par7 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par6Random.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, var$12));
        $var10 = $par5 - 1 | 0;
        if (!($par5 & $var10))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt($par5), Long_fromInt($var8)), 31));
        else
            while (true) {
                var$13 = $var8 % $par5 | 0;
                if ((($var8 - var$13 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par6Random.$seed = var$11;
                $var8 = Long_lo(Long_shru(var$11, var$12));
            }
        if (var$13 < 5) {
            $ptr = 4;
            continue main;
        }
        $par5 = 0;
        $par7 = 0;
        $var10 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $par7, $var10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var9)
            return;
        $par6Random = nms_Block_tnt;
        $par5 = 1;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_canLightningStrikeAt($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5) {
            $par5 = 0;
            $par7 = 0;
            $var10 = 3;
            $ptr = 3;
            continue main;
        }
        var$11 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par6Random.$seed = var$11;
        var$13 = Long_lo(Long_shru(var$11, var$12));
        while (true) {
            $var8 = var$13 % 5 | 0;
            if (((var$13 - $var8 | 0) + 4 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par6Random.$seed = var$11;
            var$13 = Long_lo(Long_shru(var$11, var$12));
        }
        $var10 = $par7 + ($var8 / 4 | 0) | 0;
        if ($var10 > 15)
            $var10 = 15;
        $par7 = $this.$blockID;
        $par5 = 3;
        $ptr = 6;
        continue main;
    case 5:
        $par6Random.$onBlockDestroyedByPlayer($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par7, $var10, $par5);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var9)
            return;
        $par6Random = nms_Block_tnt;
        $par5 = 1;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6Random, $par7, var$8, $var9, $var8, var$11, var$12, var$13, $var10, $ptr);
},
nms_BlockFire_canNeighborBurn = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 + 1 | 0;
        var$6 = $this.$chanceToEncourageFire.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$6[var$5] <= 0 ? 0 : 1)
            return 1;
        var$5 = $par2 - 1 | 0;
        var$6 = $this.$chanceToEncourageFire.data;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$6[var$5] <= 0 ? 0 : 1)
            return 1;
        var$5 = $par3 - 1 | 0;
        var$6 = $this.$chanceToEncourageFire.data;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$6[var$5] <= 0 ? 0 : 1)
            return 1;
        var$5 = $par3 + 1 | 0;
        var$6 = $this.$chanceToEncourageFire.data;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$6[var$5] <= 0 ? 0 : 1)
            return 1;
        var$5 = $par4 - 1 | 0;
        var$6 = $this.$chanceToEncourageFire.data;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$6[var$5] <= 0 ? 0 : 1)
            return 1;
        $par4 = $par4 + 1 | 0;
        var$6 = $this.$chanceToEncourageFire.data;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return var$6[$par2] <= 0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockFire_getChanceOfNeighborsEncouragingFire = ($this, $par1World, $par2, $par3, $par4) => {
    let $var6, $var6_0, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$var6_0 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        if (!($var6_0 ? 0 : 1))
            return 0;
        $var6_0 = $par2 + 1 | 0;
        var$7 = $this.$chanceToEncourageFire.data;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var6_0, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        $var6_0 = var$7[$var6_0];
        if ($var6_0 > $var6)
            $var6 = $var6_0;
        $var6_0 = $par2 - 1 | 0;
        var$7 = $this.$chanceToEncourageFire.data;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var6_0, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        $var6_0 = var$7[$var6_0];
        if ($var6_0 > $var6)
            $var6 = $var6_0;
        $var6_0 = $par3 - 1 | 0;
        var$7 = $this.$chanceToEncourageFire.data;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6_0, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        $var6_0 = var$7[$var6_0];
        if ($var6_0 > $var6)
            $var6 = $var6_0;
        $var6_0 = $par3 + 1 | 0;
        var$7 = $this.$chanceToEncourageFire.data;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6_0, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        $var6_0 = var$7[$var6_0];
        if ($var6_0 > $var6)
            $var6 = $var6_0;
        $var6_0 = $par4 - 1 | 0;
        var$7 = $this.$chanceToEncourageFire.data;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var6_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        $var6_0 = var$7[$var6_0];
        if ($var6_0 > $var6)
            $var6 = $var6_0;
        $par4 = $par4 + 1 | 0;
        var$7 = $this.$chanceToEncourageFire.data;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $par2 = var$7[$par2];
        if ($par2 > $var6)
            $var6 = $par2;
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var6, $var6_0, var$7, $ptr);
},
nms_BlockFire_isCollidable = $this => {
    return 0;
},
nms_BlockFire_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$8 = var$6[var$7];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, var$5))
            return 1;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockFire_canNeighborBurn($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockFire_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$8 = var$7[$par5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, $par5))
            return;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockFire_canNeighborBurn($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $par5 = 0;
        var$6 = 0;
        var$9 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, var$9, $ptr);
},
nms_BlockFire_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$provider.$dimensionId <= 0) {
            var$5 = $par3 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        var$6 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$8 = var$7[var$5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, var$5)) {
            $ptr = 4;
            continue main;
        }
        var$9 = $this.$blockID;
        var$8 = $par1World.$rand0;
        var$10 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        while (true) {
            var$12 = var$11 % 10 | 0;
            if (((var$11 - var$12 | 0) + 9 | 0) >= 0)
                break;
            var$10 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$10;
            var$11 = Long_lo(Long_shru(var$10, 17));
        }
        var$5 = 30 + var$12 | 0;
        var$6 = 0;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        if (var$5 == nms_Block_obsidian.$blockID) {
            var$8 = nms_Block_portal;
            $ptr = 5;
            continue main;
        }
        var$6 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
        continue main;
    case 4:
        $tmp = nms_BlockFire_canNeighborBurn($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            var$5 = 0;
            var$6 = 0;
            var$9 = 3;
            $ptr = 6;
            continue main;
        }
        var$9 = $this.$blockID;
        var$8 = $par1World.$rand0;
        var$10 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        while (true) {
            var$12 = var$11 % 10 | 0;
            if (((var$11 - var$12 | 0) + 9 | 0) >= 0)
                break;
            var$10 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$10;
            var$11 = Long_lo(Long_shru(var$10, 17));
        }
        var$5 = 30 + var$12 | 0;
        var$6 = 0;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_BlockPortal_tryToCreatePortal(var$8, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return;
        var$6 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$9, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockMobSpawner = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockMobSpawner__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isBlockContainer = 1;
},
nms_BlockMobSpawner__init_0 = var_0 => {
    let var_1 = new nms_BlockMobSpawner();
    nms_BlockMobSpawner__init_(var_1, var_0);
    return var_1;
},
nms_BlockMobSpawner_createNewTileEntity = ($this, $par1World) => {
    return nms_TileEntityMobSpawner__init_0();
},
nms_BlockMobSpawner_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
},
nms_BlockMobSpawner_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockMobSpawner_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, var$9, $var8, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $par1World.$rand0;
        var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$9;
        $var8 = Long_lo(Long_shru(var$9, 17));
        while (true) {
            var$11 = $var8 % 15 | 0;
            if ((($var8 - var$11 | 0) + 14 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$9;
            $var8 = Long_lo(Long_shru(var$9, 17));
        }
        $var8 = 15 + var$11 | 0;
        var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$9;
        $par5 = Long_lo(Long_shru(var$9, 17));
        while (true) {
            $par7 = $par5 % 15 | 0;
            if ((($par5 - $par7 | 0) + 14 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$9;
            $par5 = Long_lo(Long_shru(var$9, 17));
        }
        $var8 = $var8 + $par7 | 0;
        if (!$par1World.$isRemote) {
            var$12 = $par2 + 0.5;
            var$13 = $par3 + 0.5;
            var$14 = $par4 + 0.5;
            if ($var8 > 0) {
                $par2 = nms_EntityXPOrb_getXPSplit($var8);
                $var8 = $var8 - $par2 | 0;
                var$8 = new nms_EntityXPOrb;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_EntityXPOrb__init_(var$8, $par1World, var$12, var$13, var$14, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1World, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($var8 <= 0)
            return;
        $par2 = nms_EntityXPOrb_getXPSplit($var8);
        $var8 = $var8 - $par2 | 0;
        var$8 = new nms_EntityXPOrb;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, var$8, var$9, $var8, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockMobSpawner_isOpaqueCube = $this => {
    return 0;
};
function nms_BlockStairs() {
    let a = this; nms_Block.call(a);
    a.$modelBlock = null;
    a.$modelBlockMetadata = 0;
    a.$field_72156_cr = 0;
    a.$field_72160_cs = 0;
}
let nms_BlockStairs_field_72159_a = null,
nms_BlockStairs__init_0 = ($this, $par1, $par2Block, $par3) => {
    let var$4, var$5;
    nms_Block__init_($this, $par1, $par2Block.$blockMaterial);
    $this.$modelBlock = $par2Block;
    $this.$modelBlockMetadata = $par3;
    var$4 = $par2Block.$blockHardness;
    $this.$blockHardness = var$4;
    var$5 = $this.$blockResistance;
    var$4 = var$4 * 5.0;
    if (var$5 < var$4)
        $this.$blockResistance = var$4;
    $this.$blockResistance = $par2Block.$blockResistance / 3.0 * 3.0;
    $this.$stepSound = $par2Block.$stepSound;
    nms_Block_lightOpacity.data[$this.$blockID] = 255;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockStairs__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_BlockStairs();
    nms_BlockStairs__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_BlockStairs_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10;
    if (!$this.$field_72156_cr) {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
    } else {
        $par2 = $this.$field_72160_cs;
        var$5 = 0.5 * ($par2 % 2 | 0);
        var$6 = 0.5 * (($par2 / 2 | 0) % 2 | 0);
        var$7 = 0.5 * (($par2 / 4 | 0) % 2 | 0);
        var$8 = 0.5 + var$5;
        var$9 = 0.5 + var$6;
        var$10 = 0.5 + var$7;
        $this.$minX1 = var$5;
        $this.$minY1 = var$6;
        $this.$minZ1 = var$7;
        $this.$maxX1 = var$8;
        $this.$maxY0 = var$9;
        $this.$maxZ1 = var$10;
    }
},
nms_BlockStairs_isOpaqueCube = $this => {
    return 0;
},
nms_BlockStairs_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockStairs_getRenderType = $this => {
    return 10;
},
nms_BlockStairs_func_82542_g = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, $var9, $var10, $var11, $var12, $var13, $var15, $var14, $var16, $var15_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15_0 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $var5 & 3;
        $var7 = 0.5;
        $var8 = 1.0;
        var$9 = $var5 & 4;
        if (var$9) {
            $var7 = 0.0;
            $var8 = 0.5;
        }
        $var9 = 0.0;
        $var10 = 1.0;
        $var11 = 0.0;
        $var12 = 0.5;
        $var13 = 1;
        if (!$var6) {
            $var9 = 0.5;
            $var12 = 1.0;
            $var15 = $par2 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        if ($var6 == 1) {
            $var10 = 0.5;
            $var12 = 1.0;
            $var15 = $par2 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var6 == 2) {
            $var11 = 0.5;
            $var12 = 1.0;
            $var15 = $par4 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($var6 != 3) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
            return $var13;
        }
        $var15 = $par4 - 1 | 0;
        $ptr = 8;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 3;
    case 3:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var16 = 1;
                    break a;
                }
            }
            $var16 = 0;
        }
        if ($var16 && var$9 == ($var15 & 4)) {
            $var16 = $var15 & 3;
            if ($var16 == 3) {
                $var15 = $par4 + 1 | 0;
                $ptr = 10;
                continue main;
            }
            if ($var16 == 2) {
                $par4 = $par4 - 1 | 0;
                $ptr = 12;
                continue main;
            }
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 4:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 5;
    case 5:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15_0 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if ($var15 && var$9 == ($var15_0 & 4)) {
            $var16 = $var15_0 & 3;
            if ($var16 == 3) {
                $var14 = $par4 + 1 | 0;
                $ptr = 11;
                continue main;
            }
            if ($var16 == 2) {
                $par4 = $par4 - 1 | 0;
                $ptr = 14;
                continue main;
            }
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 6:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 7;
    case 7:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var15);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var16 = 1;
                    break a;
                }
            }
            $var16 = 0;
        }
        if ($var16 && var$9 == ($var15 & 4)) {
            $var16 = $var15 & 3;
            if ($var16 == 1) {
                $var14 = $par2 + 1 | 0;
                $ptr = 13;
                continue main;
            }
            if (!$var16) {
                $var15 = $par2 - 1 | 0;
                $ptr = 16;
                continue main;
            }
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 8:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 9;
    case 9:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var15);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var16 = 1;
                    break a;
                }
            }
            $var16 = 0;
        }
        if ($var16 && var$9 == ($var15 & 4)) {
            $var16 = $var15 & 3;
            if ($var16 == 1) {
                $var15 = $par2 + 1 | 0;
                $ptr = 15;
                continue main;
            }
            if (!$var16) {
                $var15 = $par2 - 1 | 0;
                $ptr = 18;
                continue main;
            }
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 10:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var15);
            if ($rt_suspending()) {
                break main;
            }
            $var14 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var14 = 1;
                    break a;
                }
            }
            $var14 = 0;
        }
        if ($var14) {
            $ptr = 17;
            continue main;
        }
        if (!0) {
            $var12 = 0.5;
            $var13 = 0;
        } else if ($var16 == 2) {
            $par4 = $par4 - 1 | 0;
            $ptr = 12;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 11:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var14);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if ($var15) {
            $ptr = 19;
            continue main;
        }
        if (!0) {
            $var12 = 0.5;
            $var13 = 0;
        } else if ($var16 == 2) {
            $par4 = $par4 - 1 | 0;
            $ptr = 14;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 12:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if (!$var15) {
            if (!0) {
                $var11 = 0.5;
                $var13 = 0;
            }
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
            return $var13;
        }
        $ptr = 20;
        continue main;
    case 13:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var14, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if ($var15) {
            $ptr = 21;
            continue main;
        }
        if (!0) {
            $var10 = 0.5;
            $var13 = 0;
        } else if (!$var16) {
            $var15 = $par2 - 1 | 0;
            $ptr = 16;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 14:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if (!$var15) {
            if (!0) {
                $var11 = 0.5;
                $var13 = 0;
            }
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
            return $var13;
        }
        $ptr = 22;
        continue main;
    case 15:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var14 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var14 = 1;
                    break a;
                }
            }
            $var14 = 0;
        }
        if ($var14) {
            $ptr = 23;
            continue main;
        }
        if (!0) {
            $var10 = 0.5;
            $var13 = 0;
        } else if (!$var16) {
            $var15 = $par2 - 1 | 0;
            $ptr = 18;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 16:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            if ($par2 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$par2] instanceof nms_BlockStairs) {
                    $par2 = 1;
                    break a;
                }
            }
            $par2 = 0;
        }
        if (!$par2) {
            if (!0) {
                $var9 = 0.5;
                $var13 = 0;
            }
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
            return $var13;
        }
        $ptr = 24;
        continue main;
    case 17:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1)) {
            $var12 = 0.5;
            $var13 = 0;
        } else if ($var16 == 2) {
            $par4 = $par4 - 1 | 0;
            $ptr = 12;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 18:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            if ($par2 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$par2] instanceof nms_BlockStairs) {
                    $par2 = 1;
                    break a;
                }
            }
            $par2 = 0;
        }
        if (!$par2) {
            if (!0) {
                $var9 = 0.5;
                $var13 = 0;
            }
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
            return $var13;
        }
        $ptr = 25;
        continue main;
    case 19:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1)) {
            $var12 = 0.5;
            $var13 = 0;
        } else if ($var16 == 2) {
            $par4 = $par4 - 1 | 0;
            $ptr = 14;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 20:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var11 = 0.5;
            $var13 = 0;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 21:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1)) {
            $var10 = 0.5;
            $var13 = 0;
        } else if (!$var16) {
            $var15 = $par2 - 1 | 0;
            $ptr = 16;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 22:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var11 = 0.5;
            $var13 = 0;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 23:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1)) {
            $var10 = 0.5;
            $var13 = 0;
        } else if (!$var16) {
            $var15 = $par2 - 1 | 0;
            $ptr = 18;
            continue main;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 24:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var9 = 0.5;
            $var13 = 0;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    case 25:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var9 = 0.5;
            $var13 = 0;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = $var7;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var8;
        $this.$maxZ1 = $var12;
        return $var13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $var7, $var8, var$9, $var9, $var10, $var11, $var12, $var13, $var15, $var14, $var16, $var15_0, $ptr);
},
nms_BlockStairs_func_82544_h = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, $var9, $var10, $var11, $var12, $var13, $var15, $var14, $var16, $var15_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15_0 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $var5 & 3;
        $var7 = 0.5;
        $var8 = 1.0;
        var$9 = $var5 & 4;
        if (var$9) {
            $var7 = 0.0;
            $var8 = 0.5;
        }
        $var9 = 0.0;
        $var10 = 0.5;
        $var11 = 0.5;
        $var12 = 1.0;
        $var13 = 0;
        if (!$var6) {
            $var15 = $par2 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if ($var6 == 1) {
            $var15 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var6 == 2) {
            $var15 = $par4 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($var6 != 3) {
            if ($var13) {
                $this.$minX1 = $var9;
                $this.$minY1 = $var7;
                $this.$minZ1 = $var11;
                $this.$maxX1 = $var10;
                $this.$maxY0 = $var8;
                $this.$maxZ1 = $var12;
            }
            return $var13;
        }
        $var15 = $par4 + 1 | 0;
        $ptr = 8;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 3;
    case 3:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var16 = 1;
                    break a;
                }
            }
            $var16 = 0;
        }
        if ($var16 && var$9 == ($var15 & 4)) {
            $var16 = $var15 & 3;
            if ($var16 == 3) {
                $var15 = $par4 - 1 | 0;
                $ptr = 10;
                continue main;
            }
            if ($var16 == 2) {
                $par4 = $par4 + 1 | 0;
                $ptr = 12;
                continue main;
            }
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 4:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 5;
    case 5:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15_0 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if ($var15 && var$9 == ($var15_0 & 4)) {
            $var9 = 0.5;
            $var10 = 1.0;
            $var16 = $var15_0 & 3;
            if ($var16 == 3) {
                $var14 = $par4 - 1 | 0;
                $ptr = 11;
                continue main;
            }
            if ($var16 == 2) {
                $par4 = $par4 + 1 | 0;
                $ptr = 14;
                continue main;
            }
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 6:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 7;
    case 7:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var15);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var16 = 1;
                    break a;
                }
            }
            $var16 = 0;
        }
        if ($var16 && var$9 == ($var15 & 4)) {
            $var11 = 0.0;
            $var12 = 0.5;
            $var16 = $var15 & 3;
            if ($var16 == 1) {
                $var14 = $par2 - 1 | 0;
                $ptr = 13;
                continue main;
            }
            if (!$var16) {
                $var15 = $par2 + 1 | 0;
                $ptr = 16;
                continue main;
            }
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 8:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $ptr = 9;
    case 9:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var15);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var16 = 1;
                    break a;
                }
            }
            $var16 = 0;
        }
        if ($var16 && var$9 == ($var15 & 4)) {
            $var16 = $var15 & 3;
            if ($var16 == 1) {
                $var15 = $par2 - 1 | 0;
                $ptr = 15;
                continue main;
            }
            if (!$var16) {
                $var15 = $par2 + 1 | 0;
                $ptr = 18;
                continue main;
            }
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 10:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var15);
            if ($rt_suspending()) {
                break main;
            }
            $var14 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var14 = 1;
                    break a;
                }
            }
            $var14 = 0;
        }
        if ($var14) {
            $ptr = 17;
            continue main;
        }
        if (!0) {
            $var11 = 0.0;
            $var12 = 0.5;
            $var13 = 1;
        } else if ($var16 == 2) {
            $par4 = $par4 + 1 | 0;
            $ptr = 12;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 11:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var14);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if ($var15) {
            $ptr = 19;
            continue main;
        }
        if (!0) {
            $var11 = 0.0;
            $var12 = 0.5;
            $var13 = 1;
        } else if ($var16 == 2) {
            $par4 = $par4 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 12:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if (!$var15) {
            if (!0) {
                $var11 = 0.5;
                $var12 = 1.0;
                $var13 = 1;
            }
            if ($var13) {
                $this.$minX1 = $var9;
                $this.$minY1 = $var7;
                $this.$minZ1 = $var11;
                $this.$maxX1 = $var10;
                $this.$maxY0 = $var8;
                $this.$maxZ1 = $var12;
            }
            return $var13;
        }
        $ptr = 20;
        continue main;
    case 13:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var14, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if ($var15) {
            $ptr = 21;
            continue main;
        }
        if (!0)
            $var13 = 1;
        else if (!$var16) {
            $var15 = $par2 + 1 | 0;
            $ptr = 16;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 14:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var15] instanceof nms_BlockStairs) {
                    $var15 = 1;
                    break a;
                }
            }
            $var15 = 0;
        }
        if (!$var15) {
            if (!0) {
                $var11 = 0.5;
                $var12 = 1.0;
                $var13 = 1;
            }
            if ($var13) {
                $this.$minX1 = $var9;
                $this.$minY1 = $var7;
                $this.$minZ1 = $var11;
                $this.$maxX1 = $var10;
                $this.$maxY0 = $var8;
                $this.$maxZ1 = $var12;
            }
            return $var13;
        }
        $ptr = 22;
        continue main;
    case 15:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var14 = $tmp;
            if ($var14 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var14] instanceof nms_BlockStairs) {
                    $var14 = 1;
                    break a;
                }
            }
            $var14 = 0;
        }
        if ($var14) {
            $ptr = 23;
            continue main;
        }
        if (!0)
            $var13 = 1;
        else if (!$var16) {
            $var15 = $par2 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 16:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            if ($par2 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$par2] instanceof nms_BlockStairs) {
                    $par2 = 1;
                    break a;
                }
            }
            $par2 = 0;
        }
        if (!$par2) {
            if (!0) {
                $var9 = 0.5;
                $var10 = 1.0;
                $var13 = 1;
            }
            if ($var13) {
                $this.$minX1 = $var9;
                $this.$minY1 = $var7;
                $this.$minZ1 = $var11;
                $this.$maxX1 = $var10;
                $this.$maxY0 = $var8;
                $this.$maxZ1 = $var12;
            }
            return $var13;
        }
        $ptr = 24;
        continue main;
    case 17:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1)) {
            $var11 = 0.0;
            $var12 = 0.5;
            $var13 = 1;
        } else if ($var16 == 2) {
            $par4 = $par4 + 1 | 0;
            $ptr = 12;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 18:
        a: {
            $tmp = nms_World_getBlockId($par1IBlockAccess, $var15, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            if ($par2 > 0) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$par2] instanceof nms_BlockStairs) {
                    $par2 = 1;
                    break a;
                }
            }
            $par2 = 0;
        }
        if (!$par2) {
            if (!0) {
                $var9 = 0.5;
                $var10 = 1.0;
                $var13 = 1;
            }
            if ($var13) {
                $this.$minX1 = $var9;
                $this.$minY1 = $var7;
                $this.$minZ1 = $var11;
                $this.$maxX1 = $var10;
                $this.$maxY0 = $var8;
                $this.$maxZ1 = $var12;
            }
            return $var13;
        }
        $ptr = 25;
        continue main;
    case 19:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1)) {
            $var11 = 0.0;
            $var12 = 0.5;
            $var13 = 1;
        } else if ($var16 == 2) {
            $par4 = $par4 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 20:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var11 = 0.5;
            $var12 = 1.0;
            $var13 = 1;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 21:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1))
            $var13 = 1;
        else if (!$var16) {
            $var15 = $par2 + 1 | 0;
            $ptr = 16;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 22:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var11 = 0.5;
            $var12 = 1.0;
            $var13 = 1;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 23:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if (!($var15 != $var5 ? 0 : 1))
            $var13 = 1;
        else if (!$var16) {
            $var15 = $par2 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 24:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var9 = 0.5;
            $var10 = 1.0;
            $var13 = 1;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    case 25:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $var15, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!($par2 != $var5 ? 0 : 1)) {
            $var9 = 0.5;
            $var10 = 1.0;
            $var13 = 1;
        }
        if ($var13) {
            $this.$minX1 = $var9;
            $this.$minY1 = $var7;
            $this.$minZ1 = $var11;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var8;
            $this.$maxZ1 = $var12;
        }
        return $var13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $var7, $var8, var$9, $var9, $var10, $var11, $var12, $var13, $var15, $var14, $var16, $var15_0, $ptr);
},
nms_BlockStairs_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 =
        $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!(var$8 & 4)) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.5;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.5;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par2;
        var$11 = var$10 + $this.$minX1;
        var$12 = $par3;
        var$13 = var$12 + $this.$minY1;
        var$14 = $par4;
        var$15 = var$14 + $this.$minZ1;
        var$16 = var$10 + $this.$maxX1;
        var$17 = var$12 + $this.$maxY0;
        var$18 = var$14 + $this.$maxZ1;
        var$19 = var$9.$nextPoolIndex;
        $par7Entity = var$9.$listAABB;
        var$8 = $par7Entity.$size0;
        var$20 = $rt_compare(var$19, var$8);
        if (var$20 >= 0) {
            var$21 = new nms_AxisAlignedBB;
            var$21.$minX0 = var$11;
            var$21.$minY0 = var$13;
            var$21.$minZ0 = var$15;
            var$21.$maxX0 = var$16;
            var$21.$maxY = var$17;
            var$21.$maxZ0 = var$18;
            ju_ArrayList_ensureCapacity($par7Entity, var$8 + 1 | 0);
            var$22 = $par7Entity.$array.data;
            var$19 = $par7Entity.$size0;
            $par7Entity.$size0 = var$19 + 1 | 0;
            var$22[var$19] = var$21;
            $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
        } else if (var$19 >= 0 && var$20 < 0) {
            var$21 = $par7Entity.$array.data[var$19];
            var$21.$minX0 = var$11;
            var$21.$minY0 = var$13;
            var$21.$minZ0 = var$15;
            var$21.$maxX0 = var$16;
            var$21.$maxY = var$17;
            var$21.$maxZ0 = var$18;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$21)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$22 = $par6List.$array.data;
            var$19 = $par6List.$size0;
            $par6List.$size0 = var$19 + 1 | 0;
            var$22[var$19] = var$21;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_BlockStairs_func_82542_g($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$21 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$11 = var$10 + $this.$minX1;
        var$13 = var$12 + $this.$minY1;
        var$18 = var$14 + $this.$minZ1;
        var$15 = var$10 + $this.$maxX1;
        var$16 = var$12 + $this.$maxY0;
        var$17 = var$14 + $this.$maxZ1;
        var$8 = var$21.$nextPoolIndex;
        $par7Entity = var$21.$listAABB;
        var$20 = $par7Entity.$size0;
        var$19 = $rt_compare(var$8, var$20);
        if (var$19 >= 0) {
            var$9 = new nms_AxisAlignedBB;
            var$9.$minX0 = var$11;
            var$9.$minY0 = var$13;
            var$9.$minZ0 = var$18;
            var$9.$maxX0 = var$15;
            var$9.$maxY = var$16;
            var$9.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par7Entity, var$20 + 1 | 0);
            var$22 = $par7Entity.$array.data;
            var$19 = $par7Entity.$size0;
            $par7Entity.$size0 = var$19 + 1 | 0;
            var$22[var$19] = var$9;
            $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
        } else if (var$8 >= 0 && var$19 < 0) {
            var$9 = $par7Entity.$array.data[var$8];
            var$9.$minX0 = var$11;
            var$9.$minY0 = var$13;
            var$9.$minZ0 = var$18;
            var$9.$maxX0 = var$15;
            var$9.$maxY = var$16;
            var$9.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$21.$nextPoolIndex = var$21.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$9)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$22 = $par6List.$array.data;
            var$8 = $par6List.$size0;
            $par6List.$size0 = var$8 + 1 | 0;
            var$22[var$8] = var$9;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        if (!$var8) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
            return;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_BlockStairs_func_82544_h($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2) {
            $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$11 = var$10 + $this.$minX1;
            var$13 = var$12 + $this.$minY1;
            var$18 = var$14 + $this.$minZ1;
            var$15 = var$10 + $this.$maxX1;
            var$16 = var$12 + $this.$maxY0;
            var$17 = var$14 + $this.$maxZ1;
            $par2 = $par1World.$nextPoolIndex;
            $par7Entity = $par1World.$listAABB;
            $par4 = $par7Entity.$size0;
            $par3 = $rt_compare($par2, $par4);
            if ($par3 >= 0) {
                var$9 = new nms_AxisAlignedBB;
                var$9.$minX0 = var$11;
                var$9.$minY0 = var$13;
                var$9.$minZ0 = var$18;
                var$9.$maxX0 = var$15;
                var$9.$maxY = var$16;
                var$9.$maxZ0 = var$17;
                ju_ArrayList_ensureCapacity($par7Entity, $par4 + 1 | 0);
                var$22 = $par7Entity.$array.data;
                $par3 = $par7Entity.$size0;
                $par7Entity.$size0 = $par3 + 1 | 0;
                var$22[$par3] = var$9;
                $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
            } else if ($par2 >= 0 && $par3 < 0) {
                var$9 = $par7Entity.$array.data[$par2];
                var$9.$minX0 = var$11;
                var$9.$minY0 = var$13;
                var$9.$minZ0 = var$18;
                var$9.$maxX0 = var$15;
                var$9.$maxY = var$16;
                var$9.$maxZ0 = var$17;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
            if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$9)) {
                ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                var$22 = $par6List.$array.data;
                $par3 = $par6List.$size0;
                $par6List.$size0 = $par3 + 1 | 0;
                var$22[$par3] = var$9;
                $par6List.$modCount = $par6List.$modCount + 1 | 0;
            }
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $var8, $ptr);
},
nms_BlockStairs_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$6.$onBlockClicked($par1World, $par2, $par3, $par4, $par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, var$6, $ptr);
},
nms_BlockStairs_onBlockDestroyedByPlayer = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$6.$onBlockDestroyedByPlayer($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockStairs_getExplosionResistance = ($this, $par1Entity) => {
    return $this.$modelBlock.$getExplosionResistance($par1Entity);
},
nms_BlockStairs_velocityToAddToEntity = ($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6Vec3) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$7.$velocityToAddToEntity($par1World, $par2, $par3, $par4, $par5Entity, $par6Vec3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6Vec3, var$7, $ptr);
},
nms_BlockStairs_isCollidable = $this => {
    return $this.$modelBlock.$isCollidable();
},
nms_BlockStairs_canCollideCheck = ($this, $par1, $par2) => {
    return $this.$modelBlock.$canCollideCheck($par1, $par2);
},
nms_BlockStairs_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        $tmp = var$5.$canPlaceBlockAt($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockStairs_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$5.$onBlockAdded($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockStairs_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$7.$breakBlock($par1World, $par2, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, var$7, $ptr);
},
nms_BlockStairs_onEntityWalking = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$6.$onEntityWalking($par1World, $par2, $par3, $par4, $par5Entity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, var$6, $ptr);
},
nms_BlockStairs_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$6.$updateTick($par1World, $par2, $par3, $par4, $par5Random);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $ptr);
},
nms_BlockStairs_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $this.$modelBlock;
        $par6 = 0;
        $par7 = 0.0;
        $par8 = 0.0;
        $par9 = 0.0;
        $ptr = 1;
    case 1:
        $tmp = var$10.$onBlockActivated($par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, $ptr);
},
nms_BlockStairs_onBlockDestroyedByExplosion = ($this, $par1World, $par2, $par3, $par4, $par5Explosion) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Explosion = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$modelBlock;
        $ptr = 1;
    case 1:
        var$6.$onBlockDestroyedByExplosion($par1World, $par2, $par3, $par4, $par5Explosion);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Explosion, var$6, $ptr);
},
nms_BlockStairs_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var8, $var7, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var8 = var$7 | 0;
        if (var$7 < $var8)
            $var8 = $var8 - 1 | 0;
        $var7 = $var8 & 3;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var8 = $var8 & 4;
        if (!$var7) {
            var$10 = 2 | $var8;
            var$11 = 2;
            $ptr = 2;
            continue main;
        }
        if ($var7 == 1) {
            var$10 = 1 | $var8;
            var$11 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 2) {
            var$10 = 3 | $var8;
            var$11 = 2;
            $ptr = 4;
            continue main;
        }
        if ($var7 != 3)
            return;
        $var7 = 0 | $var8;
        $var8 = 2;
        $ptr = 5;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 1) {
            var$10 = 1 | $var8;
            var$11 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 2) {
            var$10 = 3 | $var8;
            var$11 = 2;
            $ptr = 4;
            continue main;
        }
        if ($var7 != 3)
            return;
        $var7 = 0 | $var8;
        $var8 = 2;
        $ptr = 5;
        continue main;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 2) {
            var$10 = 3 | $var8;
            var$11 = 2;
            $ptr = 4;
            continue main;
        }
        if ($var7 != 3)
            return;
        $var7 = 0 | $var8;
        $var8 = 2;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 != 3)
            return;
        $var7 = 0 | $var8;
        $var8 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var8, $var7, var$10, var$11, $ptr);
},
nms_BlockStairs_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    if (!($par5 && !($par5 != 1 && $par7 > 0.5)))
        $par9 = $par9 | 4;
    return $par9;
},
nms_BlockStairs_collisionRayTrace = ($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3) => {
    let $var7, $var8, $var9, $var10, $var11, var$12, $var12, $var23, $var14, $var22, $var24, $var16, $var17, $var18, var$21, var$22, $var19, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();$var19 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var24 = $thread.pop();$var22 = $thread.pop();$var14 = $thread.pop();$var23 = $thread.pop();$var12 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Vec3 = $thread.pop();$par4 = $thread.pop();$par3
        = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $rt_createArray(nms_MovingObjectPosition, 8);
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = $var8 & 3;
        $var10 = ($var8 & 4) != 4 ? 0 : 1;
        $var11 = nms_BlockStairs_field_72159_a;
        $var8 = !$var10 ? 0 : 4;
        var$12 = $var7.data;
        $var11 = $var11.data[$var9 + $var8 | 0];
        $this.$field_72156_cr = 1;
        $var12 = 0;
        if ($var12 >= 8) {
            $var7 = $var11.data;
            $var23 = $var7.length;
            $var14 = 0;
            while ($var14 < $var23) {
                var$12[$var7[$var14]] = null;
                $var14 = $var14 + 1 | 0;
            }
            $var22 = null;
            $var24 = 0.0;
            $var16 = var$12.length;
            $var17 = 0;
            while ($var17 < $var16) {
                $var18 = var$12[$var17];
                if ($var18 !== null) {
                    $par1World = $var18.$hitVec;
                    var$21 = $par6Vec3.$xCoord - $par1World.$xCoord;
                    var$22 = $par6Vec3.$yCoord - $par1World.$yCoord;
                    $var19 = $par6Vec3.$zCoord - $par1World.$zCoord;
                    $var19 = var$21 * var$21 + var$22 * var$22 + $var19 * $var19;
                    if ($var19 > $var24) {
                        $var22 = $var18;
                        $var24 = $var19;
                    }
                }
                $var17 = $var17 + 1 | 0;
            }
            return $var22;
        }
        $var7 = $var11.data;
        $this.$field_72160_cs = $var12;
        $var14 = $var7.length;
        $var15 = 0;
        while ($var15 < $var14) {
            $var15 = $var15 + 1 | 0;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_Block_collisionRayTrace($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $var22 = $tmp;
        var$12[$var12] = $var22;
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 8) {
            $var7 = $var11.data;
            $var23 = $var7.length;
            $var14 = 0;
            while ($var14 < $var23) {
                var$12[$var7[$var14]] = null;
                $var14 = $var14 + 1 | 0;
            }
            $var22 = null;
            $var24 = 0.0;
            $var16 = var$12.length;
            $var17 = 0;
            while ($var17 < $var16) {
                $var18 = var$12[$var17];
                if ($var18 !== null) {
                    $par1World = $var18.$hitVec;
                    var$21 = $par6Vec3.$xCoord - $par1World.$xCoord;
                    var$22 = $par6Vec3.$yCoord - $par1World.$yCoord;
                    $var19 = $par6Vec3.$zCoord - $par1World.$zCoord;
                    $var19 = var$21 * var$21 + var$22 * var$22 + $var19 * $var19;
                    if ($var19 > $var24) {
                        $var22 = $var18;
                        $var24 = $var19;
                    }
                }
                $var17 = $var17 + 1 | 0;
            }
            return $var22;
        }
        $var7 = $var11.data;
        $this.$field_72160_cs = $var12;
        $var14 = $var7.length;
        $var15 = 0;
        while ($var15 < $var14) {
            $var15 = $var15 + 1 | 0;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3, $var7, $var8, $var9, $var10, $var11, var$12, $var12, $var23, $var14, $var22, $var24, $var16, $var17, $var18, var$21, var$22, $var19, $var15, $ptr);
},
nms_BlockStairs__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray($rt_arraycls($rt_intcls), 8);
    var$2 = var$1.data;
    var$2[0] = $rt_createIntArrayFromData([2, 6]);
    var$2[1] = $rt_createIntArrayFromData([3, 7]);
    var$2[2] = $rt_createIntArrayFromData([2, 3]);
    var$2[3] = $rt_createIntArrayFromData([6, 7]);
    var$2[4] = $rt_createIntArrayFromData([0, 4]);
    var$2[5] = $rt_createIntArrayFromData([1, 5]);
    var$2[6] = $rt_createIntArrayFromData([0, 1]);
    var$2[7] = $rt_createIntArrayFromData([4, 5]);
    nms_BlockStairs_field_72159_a = var$1;
};
function nms_BlockChest() {
    let a = this; nms_BlockContainer.call(a);
    a.$random1 = null;
    a.$chestType = 0;
}
let nms_BlockChest__init_0 = ($this, $par1, $par2) => {
    let var$3, var$4;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    $this.$isBlockContainer = 1;
    var$3 = new nle_EaglercraftRandom;
    var$4 = Long_fromNumber(performance.now() * 1000000.0);
    var$3.$seed = Long_fromInt(69);
    var$3.$haveNextNextGaussian = 0;
    var$3.$seed = var$4;
    $this.$random1 = var$3;
    $this.$chestType = $par2;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.0625;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0625;
    $this.$maxX1 = 0.9375;
    $this.$maxY0 = 0.875;
    $this.$maxZ1 = 0.9375;
},
nms_BlockChest__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockChest();
    nms_BlockChest__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockChest_isOpaqueCube = $this => {
    return 0;
},
nms_BlockChest_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockChest_getRenderType = $this => {
    return 22;
},
nms_BlockChest_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID) {
            $this.$minX1 = 0.0625;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.9375;
            $this.$maxY0 = 0.875;
            $this.$maxZ1 = 0.9375;
            return;
        }
        var$5 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID) {
            $this.$minX1 = 0.0625;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0625;
            $this.$maxX1 = 0.9375;
            $this.$maxY0 = 0.875;
            $this.$maxZ1 = 1.0;
            return;
        }
        var$5 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0625;
            $this.$maxX1 = 0.9375;
            $this.$maxY0 = 0.875;
            $this.$maxZ1 = 0.9375;
            return;
        }
        $par2 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2 != $this.$blockID) {
            $this.$minX1 = 0.0625;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0625;
            $this.$maxX1 = 0.9375;
            $this.$maxY0 = 0.875;
            $this.$maxZ1 = 0.9375;
        } else {
            $this.$minX1 = 0.0625;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0625;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.875;
            $this.$maxZ1 = 0.9375;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockChest_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, var$7, $var6, var$9, $var7, var$11, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockChest_unifyAdjacentChests($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par4 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$7 = $par4 + 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$9 = $par2 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$11 = $par2 + 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var5 == $this.$blockID) {
            $ptr = 6;
            continue main;
        }
        if ($var6 == $this.$blockID) {
            $ptr = 7;
            continue main;
        }
        if ($var7 == $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        if ($var8 != $this.$blockID)
            return;
        $ptr = 9;
        continue main;
    case 6:
        nms_BlockChest_unifyAdjacentChests($this, $par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        if ($var6 == $this.$blockID) {
            $ptr = 7;
            continue main;
        }
        if ($var7 == $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        if ($var8 != $this.$blockID)
            return;
        $ptr = 9;
        continue main;
    case 7:
        nms_BlockChest_unifyAdjacentChests($this, $par1World, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        if ($var8 != $this.$blockID)
            return;
        $ptr = 9;
        continue main;
    case 8:
        nms_BlockChest_unifyAdjacentChests($this, $par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if ($var8 != $this.$blockID)
            return;
        $ptr = 9;
    case 9:
        nms_BlockChest_unifyAdjacentChests($this, $par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, var$7, $var6, var$9, $var7, var$11, $var8, $ptr);
},
nms_BlockChest_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var7, var$9, $var8, var$11, $var9, var$13, $var10, $var11, var$16, var$17, $var12, var$19, var$20, var$21, var$22, var$23, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var12 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4
        = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$9 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$11 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        var$13 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$13, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var11 = 0;
        var$16 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        var$17 = var$16 | 0;
        if (var$16 < var$17)
            var$17 = var$17 - 1 | 0;
        $var12 = var$17 & 3;
        if (!$var12)
            $var11 = 2;
        if ($var12 == 1)
            $var11 = 5;
        if ($var12 == 2)
            $var11 = 3;
        if ($var12 == 3)
            $var11 = 4;
        $var12 = $this.$blockID;
        $var7 = $rt_compare($var7, $var12);
        if ($var7 && $var8 != $var12 && $var9 != $var12 && $var10 != $var12) {
            var$7 = 3;
            $ptr = 7;
            continue main;
        }
        a: {
            if (!($var7 && $var8 != $var12)) {
                if ($var11 == 4)
                    break a;
                if ($var11 == 5)
                    break a;
            }
            b: {
                var$7 = $this.$blockID;
                $var7 = $rt_compare($var9, var$7);
                if (!($var7 && $var10 != var$7)) {
                    if ($var11 == 2)
                        break b;
                    if ($var11 == 3)
                        break b;
                }
                var$19 = $par6ItemStack.$stackTagCompound;
                if (var$19 === null)
                    var$7 = 0;
                else {
                    c: {
                        var$19 = var$19.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(918).$nativeString.length)
                                    break c;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(918).$hashCode1;
                    var$20 = var$19.$elementData.data;
                    var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == var$9) {
                            d: {
                                var$21 = var$19.$key;
                                if ($rt_s(918) !== var$21) {
                                    if ($rt_s(918) === var$21)
                                        var$7 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        var$21 = var$21;
                                        var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break d;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                    if (!(var$19 === null ? 0 : 1))
                        var$7 = 0;
                    else {
                        e: {
                            var$19 = $par6ItemStack.$stackTagCompound;
                            var$21 = var$19.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                var$7 = 0;
                                while (true) {
                                    if (var$7 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                                    var$7 = var$7 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$20 = var$21.$elementData.data;
                        var$21 = var$20[var$9 & (var$20.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == var$9) {
                                f: {
                                    var$22 = var$21.$key;
                                    if ($rt_s(918) !== var$22) {
                                        if ($rt_s(918) === var$22)
                                            var$7 = 1;
                                        else if (!(var$22 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            var$22 = var$22;
                                            var$7 = $rt_s(918).$nativeString !== var$22.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break f;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1)) {
                            var$19 = new nms_NBTTagCompound;
                            if ($rt_s(918) !== null)
                                var$19.$name = $rt_s(918);
                            else
                                var$19.$name = $rt_s(3);
                            $par5EntityLivingBase = new ju_HashMap;
                            var$7 = ju_HashMap_calculateCapacity(16);
                            $par5EntityLivingBase.$elementCount = 0;
                            var$20 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                            var$23 = var$20.data;
                            $par5EntityLivingBase.$elementData = var$20;
                            $par5EntityLivingBase.$loadFactor = 0.75;
                            $par5EntityLivingBase.$threshold = var$23.length * 0.75 | 0;
                            var$19.$tagMap = $par5EntityLivingBase;
                        } else {
                            var$19 = var$19.$tagMap;
                            if ($rt_s(918) === null) {
                                var$19 = var$19.$elementData.data[0];
                                while (var$19 !== null && var$19.$key !== null) {
                                    var$19 = var$19.$next3;
                                }
                            } else {
                                g: {
                                    if (!$rt_s(918).$hashCode1) {
                                        var$9 = 0;
                                        while (true) {
                                            if (var$9 >= $rt_s(918).$nativeString.length)
                                                break g;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                            var$9 = var$9 + 1 | 0;
                                        }
                                    }
                                }
                                var$9 = $rt_s(918).$hashCode1;
                                var$20 = var$19.$elementData.data;
                                var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
                                while (var$19 !== null) {
                                    if (var$19.$origKeyHash == var$9) {
                                        h: {
                                            var$21 = var$19.$key;
                                            if ($rt_s(918) !== var$21) {
                                                if ($rt_s(918) === var$21)
                                                    var$7 = 1;
                                                else if (!(var$21 instanceof jl_String))
                                                    var$7 = 0;
                                                else {
                                                    var$21 = var$21;
                                                    var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                                }
                                                if (!var$7) {
                                                    var$7 = 0;
                                                    break h;
                                                }
                                            }
                                            var$7 = 1;
                                        }
                                        if (var$7)
                                            break;
                                    }
                                    var$19 = var$19.$next3;
                                }
                            }
                            var$19 = var$19 === null ? null : var$19.$value0;
                        }
                        i: {
                            $par5EntityLivingBase = var$19.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                var$7 = 0;
                                while (true) {
                                    if (var$7 >= $rt_s(919).$nativeString.length)
                                        break i;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$7) | 0;
                                    var$7 = var$7 + 1 | 0;
                                }
                            }
                        }
                        $var7 = $rt_s(919).$hashCode1;
                        var$20 = $par5EntityLivingBase.$elementData.data;
                        var$22 = var$20[$var7 & (var$20.length - 1 | 0)];
                        while (var$22 !== null) {
                            if (var$22.$origKeyHash == $var7) {
                                j: {
                                    $par5EntityLivingBase = var$22.$key;
                                    if ($rt_s(919) !== $par5EntityLivingBase) {
                                        if ($rt_s(919) === $par5EntityLivingBase)
                                            var$7 = 1;
                                        else if (!($par5EntityLivingBase instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            $par5EntityLivingBase = $par5EntityLivingBase;
                                            var$7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break j;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            var$22 = var$22.$next3;
                        }
                        var$7 = var$22 === null ? 0 : 1;
                    }
                }
                if (!var$7)
                    return;
                $ptr = 12;
                continue main;
            }
            if ($var7) {
                var$7 = 3;
                $ptr = 9;
                continue main;
            }
            var$7 = 3;
            $ptr = 10;
            continue main;
        }
        if ($var7) {
            var$7 = 3;
            $ptr = 5;
            continue main;
        }
        $var7 = 3;
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, var$9, $var11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = 3;
        $ptr = 8;
        continue main;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, var$7, $var11, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = 3;
        $ptr = 8;
        continue main;
    case 7:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $par6ItemStack.$stackTagCompound;
        if (var$19 === null)
            var$7 = 0;
        else {
            k: {
                var$19 = var$19.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(918).$nativeString.length)
                            break k;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$20 = var$19.$elementData.data;
            var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
            while (var$19 !== null) {
                if (var$19.$origKeyHash == var$9) {
                    l: {
                        var$21 = var$19.$key;
                        if ($rt_s(918) !== var$21) {
                            if ($rt_s(918) === var$21)
                                var$7 = 1;
                            else if (!(var$21 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$21 = var$21;
                                var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break l;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$19 = var$19.$next3;
            }
            if (!(var$19 === null ? 0 : 1))
                var$7 = 0;
            else {
                m: {
                    var$19 = $par6ItemStack.$stackTagCompound;
                    var$21 = var$19.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(918).$nativeString.length)
                                break m;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$20 = var$21.$elementData.data;
                var$21 = var$20[var$9 & (var$20.length - 1 | 0)];
                while (var$21 !== null) {
                    if (var$21.$origKeyHash == var$9) {
                        n: {
                            var$22 = var$21.$key;
                            if ($rt_s(918) !== var$22) {
                                if ($rt_s(918) === var$22)
                                    var$7 = 1;
                                else if (!(var$22 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    var$22 = var$22;
                                    var$7 = $rt_s(918).$nativeString !== var$22.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break n;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$21 = var$21.$next3;
                }
                if (!(var$21 === null ? 0 : 1)) {
                    var$19 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$19.$name = $rt_s(918);
                    else
                        var$19.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$7 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                    var$23 = var$20.data;
                    $par5EntityLivingBase.$elementData = var$20;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$23.length * 0.75 | 0;
                    var$19.$tagMap = $par5EntityLivingBase;
                } else {
                    var$19 = var$19.$tagMap;
                    if ($rt_s(918) === null) {
                        var$19 = var$19.$elementData.data[0];
                        while (var$19 !== null && var$19.$key !== null) {
                            var$19 = var$19.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$20 = var$19.$elementData.data;
                        var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
                        while (var$19 !== null) {
                            if (var$19.$origKeyHash == var$9) {
                                o: {
                                    var$21 = var$19.$key;
                                    if ($rt_s(918) !== var$21) {
                                        if ($rt_s(918) === var$21)
                                            var$7 = 1;
                                        else if (!(var$21 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            var$21 = var$21;
                                            var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break o;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            var$19 = var$19.$next3;
                        }
                    }
                    var$19 = var$19 === null ? null : var$19.$value0;
                }
                p: {
                    $par5EntityLivingBase = var$19.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(919).$nativeString.length)
                                break p;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(919).$hashCode1;
                var$20 = $par5EntityLivingBase.$elementData.data;
                var$22 = var$20[$var7 & (var$20.length - 1 | 0)];
                while (var$22 !== null) {
                    if (var$22.$origKeyHash == $var7) {
                        q: {
                            $par5EntityLivingBase = var$22.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break q;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$22 = var$22.$next3;
                }
                var$7 = var$22 === null ? 0 : 1;
            }
        }
        if (!var$7)
            return;
        $ptr = 12;
        continue main;
    case 8:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        r: {
            var$7 = $this.$blockID;
            $var7 = $rt_compare($var9, var$7);
            if (!($var7 && $var10 != var$7)) {
                if ($var11 == 2)
                    break r;
                if ($var11 == 3)
                    break r;
            }
            var$19 = $par6ItemStack.$stackTagCompound;
            if (var$19 === null)
                var$7 = 0;
            else {
                s: {
                    var$19 = var$19.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(918).$nativeString.length)
                                break s;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$20 = var$19.$elementData.data;
                var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
                while (var$19 !== null) {
                    if (var$19.$origKeyHash == var$9) {
                        t: {
                            var$21 = var$19.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) === var$21)
                                    var$7 = 1;
                                else if (!(var$21 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    var$21 = var$21;
                                    var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break t;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$19 = var$19.$next3;
                }
                if (!(var$19 === null ? 0 : 1))
                    var$7 = 0;
                else {
                    u: {
                        var$19 = $par6ItemStack.$stackTagCompound;
                        var$21 = var$19.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(918).$nativeString.length)
                                    break u;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(918).$hashCode1;
                    var$20 = var$21.$elementData.data;
                    var$21 = var$20[var$9 & (var$20.length - 1 | 0)];
                    while (var$21 !== null) {
                        if (var$21.$origKeyHash == var$9) {
                            v: {
                                var$22 = var$21.$key;
                                if ($rt_s(918) !== var$22) {
                                    if ($rt_s(918) === var$22)
                                        var$7 = 1;
                                    else if (!(var$22 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        var$22 = var$22;
                                        var$7 = $rt_s(918).$nativeString !== var$22.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break v;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        var$21 = var$21.$next3;
                    }
                    if (!(var$21 === null ? 0 : 1)) {
                        var$19 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$19.$name = $rt_s(918);
                        else
                            var$19.$name = $rt_s(3);
                        $par5EntityLivingBase = new ju_HashMap;
                        var$7 = ju_HashMap_calculateCapacity(16);
                        $par5EntityLivingBase.$elementCount = 0;
                        var$20 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                        var$23 = var$20.data;
                        $par5EntityLivingBase.$elementData = var$20;
                        $par5EntityLivingBase.$loadFactor = 0.75;
                        $par5EntityLivingBase.$threshold = var$23.length * 0.75 | 0;
                        var$19.$tagMap = $par5EntityLivingBase;
                    } else {
                        var$19 = var$19.$tagMap;
                        if ($rt_s(918) === null) {
                            var$19 = var$19.$elementData.data[0];
                            while (var$19 !== null && var$19.$key !== null) {
                                var$19 = var$19.$next3;
                            }
                        } else {
                            w: {
                                if (!$rt_s(918).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(918).$nativeString.length)
                                            break w;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = $rt_s(918).$hashCode1;
                            var$20 = var$19.$elementData.data;
                            var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
                            while (var$19 !== null) {
                                if (var$19.$origKeyHash == var$9) {
                                    x: {
                                        var$21 = var$19.$key;
                                        if ($rt_s(918) !== var$21) {
                                            if ($rt_s(918) === var$21)
                                                var$7 = 1;
                                            else if (!(var$21 instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                var$21 = var$21;
                                                var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break x;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$19 = var$19.$next3;
                            }
                        }
                        var$19 = var$19 === null ? null : var$19.$value0;
                    }
                    g: {
                        $par5EntityLivingBase = var$19.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(919).$nativeString.length)
                                    break g;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    $var7 = $rt_s(919).$hashCode1;
                    var$20 = $par5EntityLivingBase.$elementData.data;
                    var$22 = var$20[$var7 & (var$20.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var7) {
                            h: {
                                $par5EntityLivingBase = var$22.$key;
                                if ($rt_s(919) !== $par5EntityLivingBase) {
                                    if ($rt_s(919) === $par5EntityLivingBase)
                                        var$7 = 1;
                                    else if (!($par5EntityLivingBase instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $par5EntityLivingBase = $par5EntityLivingBase;
                                        var$7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break h;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    var$7 = var$22 === null ? 0 : 1;
                }
            }
            if (!var$7)
                return;
            $ptr = 12;
            continue main;
        }
        if ($var7) {
            var$7 = 3;
            $ptr = 9;
            continue main;
        }
        var$7 = 3;
        $ptr = 10;
        continue main;
    case 9:
        nms_World_setBlockMetadataWithNotify($par1World, var$13, $par3, $par4, $var11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = 3;
        $ptr = 11;
        continue main;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, var$11, $par3, $par4, $var11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = 3;
        $ptr = 11;
    case 11:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var11, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $par6ItemStack.$stackTagCompound;
        if (var$19 === null)
            var$7 = 0;
        else {
            k: {
                var$19 = var$19.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(918).$nativeString.length)
                            break k;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$20 = var$19.$elementData.data;
            var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
            while (var$19 !== null) {
                if (var$19.$origKeyHash == var$9) {
                    l: {
                        var$21 = var$19.$key;
                        if ($rt_s(918) !== var$21) {
                            if ($rt_s(918) === var$21)
                                var$7 = 1;
                            else if (!(var$21 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$21 = var$21;
                                var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break l;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$19 = var$19.$next3;
            }
            if (!(var$19 === null ? 0 : 1))
                var$7 = 0;
            else {
                m: {
                    var$19 = $par6ItemStack.$stackTagCompound;
                    var$21 = var$19.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(918).$nativeString.length)
                                break m;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$20 = var$21.$elementData.data;
                var$21 = var$20[var$9 & (var$20.length - 1 | 0)];
                while (var$21 !== null) {
                    if (var$21.$origKeyHash == var$9) {
                        n: {
                            var$22 = var$21.$key;
                            if ($rt_s(918) !== var$22) {
                                if ($rt_s(918) === var$22)
                                    var$7 = 1;
                                else if (!(var$22 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    var$22 = var$22;
                                    var$7 = $rt_s(918).$nativeString !== var$22.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break n;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$21 = var$21.$next3;
                }
                if (!(var$21 === null ? 0 : 1)) {
                    var$19 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$19.$name = $rt_s(918);
                    else
                        var$19.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$7 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                    var$23 = var$20.data;
                    $par5EntityLivingBase.$elementData = var$20;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$23.length * 0.75 | 0;
                    var$19.$tagMap = $par5EntityLivingBase;
                } else {
                    var$19 = var$19.$tagMap;
                    if ($rt_s(918) === null) {
                        var$19 = var$19.$elementData.data[0];
                        while (var$19 !== null && var$19.$key !== null) {
                            var$19 = var$19.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$20 = var$19.$elementData.data;
                        var$19 = var$20[var$9 & (var$20.length - 1 | 0)];
                        while (var$19 !== null) {
                            if (var$19.$origKeyHash == var$9) {
                                o: {
                                    var$21 = var$19.$key;
                                    if ($rt_s(918) !== var$21) {
                                        if ($rt_s(918) === var$21)
                                            var$7 = 1;
                                        else if (!(var$21 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            var$21 = var$21;
                                            var$7 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break o;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            var$19 = var$19.$next3;
                        }
                    }
                    var$19 = var$19 === null ? null : var$19.$value0;
                }
                p: {
                    $par5EntityLivingBase = var$19.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(919).$nativeString.length)
                                break p;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                $var7 = $rt_s(919).$hashCode1;
                var$20 = $par5EntityLivingBase.$elementData.data;
                var$22 = var$20[$var7 & (var$20.length - 1 | 0)];
                while (var$22 !== null) {
                    if (var$22.$origKeyHash == $var7) {
                        q: {
                            $par5EntityLivingBase = var$22.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break q;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$22 = var$22.$next3;
                }
                var$7 = var$22 === null ? 0 : 1;
            }
        }
        if (!var$7)
            return;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $par1World = $par1World;
        nms_Item_$callClinit();
        var$19 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase !== null) {
            k: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break k;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par4 = $rt_s(918).$hashCode1;
            var$20 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$20[$par4 & (var$20.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                    l: {
                        var$22 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$22) {
                            if ($rt_s(918) === var$22)
                                $par2 = 1;
                            else if (!(var$22 instanceof jl_String))
                                $par2 = 0;
                            else {
                                var$22 = var$22;
                                $par2 = $rt_s(918).$nativeString !== var$22.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break l;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if ($par5EntityLivingBase === null ? 0 : 1) {
                m: {
                    $par6ItemStack = $par6ItemStack.$stackTagCompound;
                    var$21 = $par6ItemStack.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break m;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$20 = var$21.$elementData.data;
                var$21 = var$20[$par4 & (var$20.length - 1 | 0)];
                while (var$21 !== null) {
                    if (var$21.$origKeyHash == $par4) {
                        n: {
                            var$22 = var$21.$key;
                            if ($rt_s(918) !== var$22) {
                                if ($rt_s(918) === var$22)
                                    $par2 = 1;
                                else if (!(var$22 instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    var$22 = var$22;
                                    $par2 = $rt_s(918).$nativeString !== var$22.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break n;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    var$21 = var$21.$next3;
                }
                if (!(var$21 === null ? 0 : 1)) {
                    var$21 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$21.$name = $rt_s(918);
                    else
                        var$21.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$23 = var$20.data;
                    $par5EntityLivingBase.$elementData = var$20;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$23.length * 0.75 | 0;
                    var$21.$tagMap = $par5EntityLivingBase;
                } else {
                    $par6ItemStack = $par6ItemStack.$tagMap;
                    if ($rt_s(918) === null) {
                        $par6ItemStack = $par6ItemStack.$elementData.data[0];
                        while ($par6ItemStack !== null && $par6ItemStack.$key !== null) {
                            $par6ItemStack = $par6ItemStack.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $par4 = 0;
                                while (true) {
                                    if ($par4 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par4) | 0;
                                    $par4 = $par4 + 1 | 0;
                                }
                            }
                        }
                        $par4 = $rt_s(918).$hashCode1;
                        var$20 = $par6ItemStack.$elementData.data;
                        $par6ItemStack = var$20[$par4 & (var$20.length - 1 | 0)];
                        while ($par6ItemStack !== null) {
                            if ($par6ItemStack.$origKeyHash == $par4) {
                                o: {
                                    var$21 = $par6ItemStack.$key;
                                    if ($rt_s(918) !== var$21) {
                                        if ($rt_s(918) === var$21)
                                            $par2 = 1;
                                        else if (!(var$21 instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            var$21 = var$21;
                                            $par2 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break o;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            $par6ItemStack = $par6ItemStack.$next3;
                        }
                    }
                    var$21 = $par6ItemStack === null ? null : $par6ItemStack.$value0;
                }
                p: {
                    $par5EntityLivingBase = var$21.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break p;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par3 = $rt_s(919).$hashCode1;
                var$20 = $par5EntityLivingBase.$elementData.data;
                var$24 = var$20[$par3 & (var$20.length - 1 | 0)];
                while (var$24 !== null) {
                    if (var$24.$origKeyHash == $par3) {
                        q: {
                            $par5EntityLivingBase = var$24.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    $par2 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    $par2 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break q;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    var$24 = var$24.$next3;
                }
                if (var$24 === null ? 0 : 1) {
                    y: {
                        $par5EntityLivingBase = var$21.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break y;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par3 = $rt_s(919).$hashCode1;
                    var$20 = $par5EntityLivingBase.$elementData.data;
                    var$22 = var$20[$par3 & (var$20.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $par3) {
                            z: {
                                $par5EntityLivingBase = var$22.$key;
                                if ($rt_s(919) !== $par5EntityLivingBase) {
                                    if ($rt_s(919) === $par5EntityLivingBase)
                                        $par2 = 1;
                                    else if (!($par5EntityLivingBase instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par5EntityLivingBase = $par5EntityLivingBase;
                                        $par2 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break z;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (!(var$22 === null ? 0 : 1))
                        var$19 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$21.$tagMap;
                        if ($rt_s(919) === null) {
                            var$21 = $par5EntityLivingBase.$elementData.data[0];
                            while (var$21 !== null && var$21.$key !== null) {
                                var$21 = var$21.$next3;
                            }
                        } else {
                            ba: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break ba;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par3 = $rt_s(919).$hashCode1;
                            var$20 = $par5EntityLivingBase.$elementData.data;
                            var$21 = var$20[$par3 & (var$20.length - 1 | 0)];
                            while (var$21 !== null) {
                                if (var$21.$origKeyHash == $par3) {
                                    bb: {
                                        $par5EntityLivingBase = var$21.$key;
                                        if ($rt_s(919) !== $par5EntityLivingBase) {
                                            if ($rt_s(919) === $par5EntityLivingBase)
                                                $par2 = 1;
                                            else if (!($par5EntityLivingBase instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par5EntityLivingBase = $par5EntityLivingBase;
                                                $par2 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break bb;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                var$21 = var$21.$next3;
                            }
                        }
                        var$19 = (var$21 === null ? null : var$21.$value0).$data1;
                    }
                }
            }
        }
        $par1World.$customName0 = var$19;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var7, var$9, $var8, var$11, $var9, var$13, $var10, $var11, var$16, var$17, $var12, var$19, var$20, var$21, var$22, var$23, var$24, $ptr);
},
nms_BlockChest_unifyAdjacentChests = ($this, $par1World, $par2, $par3, $par4) => {
    let $var11, $var5, var$7, $var6, $var11_0, $var7, var$11, $var8, $var13, $var10, var$15, $var14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();var$15 = $thread.pop();$var10 = $thread.pop();$var13 = $thread.pop();$var8 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();$var11_0 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var11 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var11 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$7 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var11_0 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var11_0, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$11 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var13 = $this.$blockID;
        $var10 = $rt_compare($var5, $var13);
        if ($var10 && $var6 != $var13) {
            $var10 = $rt_compare($var7, $var13);
            if ($var10 && $var8 != $var13) {
                $var13 = 3;
                nms_Block_$callClinit();
                var$15 = nms_Block_opaqueCubeLookup.data;
                if (var$15[$var5] && !var$15[$var6])
                    $var13 = 3;
                if (var$15[$var6] && !var$15[$var5])
                    $var13 = 2;
                if (var$15[$var7] && !var$15[$var8])
                    $var13 = 5;
                if (var$15[$var8] && !var$15[$var7])
                    $var13 = 4;
                $var14 = 3;
                $ptr = 13;
                continue main;
            }
            $var14 = $var10 ? var$11 : $var11_0;
            $ptr = 7;
            continue main;
        }
        $var14 = $var10 ? var$7 : $var11;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var11_0, $par3, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var14 = $var5 != $this.$blockID ? var$7 : $var11;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$11, $par3, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var11_0 = $tmp;
        $var13 = 5;
        if ($var5 != $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        $ptr = 9;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $var14, $par3, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var14 = $var7 != $this.$blockID ? var$11 : $var11_0;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 == 4)
            $var13 = 4;
        nms_Block_$callClinit();
        var$15 = nms_Block_opaqueCubeLookup.data;
        if (!(!var$15[$var7] && !var$15[$var10]) && !var$15[$var8] && !var$15[$var11_0])
            $var13 = 5;
        if (!(!var$15[$var8] && !var$15[$var11_0]) && !var$15[$var7] && !var$15[$var10])
            $var13 = 4;
        $var14 = 3;
        $ptr = 13;
        continue main;
    case 9:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 == 4)
            $var13 = 4;
        nms_Block_$callClinit();
        var$15 = nms_Block_opaqueCubeLookup.data;
        if (!(!var$15[$var7] && !var$15[$var10]) && !var$15[$var8] && !var$15[$var11_0])
            $var13 = 5;
        if (!(!var$15[$var8] && !var$15[$var11_0]) && !var$15[$var7] && !var$15[$var10])
            $var13 = 4;
        $var14 = 3;
        $ptr = 13;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $var14, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var13 = 3;
        if ($var7 != $this.$blockID) {
            $ptr = 11;
            continue main;
        }
        $ptr = 12;
        continue main;
    case 11:
        $tmp = nms_World_getBlockMetadata($par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 == 2)
            $var13 = 2;
        nms_Block_$callClinit();
        var$15 = nms_Block_opaqueCubeLookup.data;
        if (!(!var$15[$var5] && !var$15[$var10]) && !var$15[$var6] && !var$15[$var11])
            $var13 = 3;
        if (!(!var$15[$var6] && !var$15[$var11]) && !var$15[$var5] && !var$15[$var10])
            $var13 = 2;
        $var14 = 3;
        $ptr = 13;
        continue main;
    case 12:
        $tmp = nms_World_getBlockMetadata($par1World, $var11_0, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 == 2)
            $var13 = 2;
        nms_Block_$callClinit();
        var$15 = nms_Block_opaqueCubeLookup.data;
        if (!(!var$15[$var5] && !var$15[$var10]) && !var$15[$var6] && !var$15[$var11])
            $var13 = 3;
        if (!(!var$15[$var6] && !var$15[$var11]) && !var$15[$var5] && !var$15[$var10])
            $var13 = 2;
        $var14 = 3;
        $ptr = 13;
    case 13:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var11, $var5, var$7, $var6, $var11_0, $var7, var$11, $var8, $var13, $var10, var$15, $var14, $ptr);
},
nms_BlockChest_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        var$6 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 == $this.$blockID)
            $var5 = 1;
        var$7 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == $this.$blockID)
            $var5 = $var5 + 1 | 0;
        var$8 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9 == $this.$blockID)
            $var5 = $var5 + 1 | 0;
        var$10 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11 == $this.$blockID)
            $var5 = $var5 + 1 | 0;
        if ($var5 > 1)
            return 0;
        $ptr = 5;
    case 5:
        $tmp = nms_BlockChest_isThereANeighborChest($this, $par1World, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9)
            return 0;
        $ptr = 6;
    case 6:
        $tmp = nms_BlockChest_isThereANeighborChest($this, $par1World, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4)
            return 0;
        $ptr = 7;
    case 7:
        $tmp = nms_BlockChest_isThereANeighborChest($this, $par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4)
            return 0;
        $ptr = 8;
    case 8:
        $tmp = nms_BlockChest_isThereANeighborChest($this, $par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockChest_isThereANeighborChest = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 != $this.$blockID)
            return 0;
        var$5 = $par2 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID)
            return 1;
        var$5 = $par2 + 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID)
            return 1;
        var$5 = $par4 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID)
            return 1;
        $par4 = $par4 + 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 != $this.$blockID ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockChest_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var6 = $par1World;
        if ($var6 !== null) {
            $var6.$blockType = null;
            $var6.$blockMetadata = (-1);
            $var6.$adjacentChestChecked = 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockChest_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var14, var$18, $var10, $var11, var$21, $var12, var$23, var$24, var$25, var$26, var$27, $var13, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();$var13 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var12 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();$var14 = $thread.pop();$var9
        = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var7 = $var7;
        if ($var7 === null) {
            $ptr = 2;
            continue main;
        }
        $var8 = 0;
        var$9 = 27;
        var$10 = 24;
        var$11 = 17;
        var$12 = $par2;
        var$13 = 138;
        var$14 = $par3;
        var$15 = $par4;
        while ($var8 < var$9) {
            $var9 = $var7.$chestContents.data[$var8];
            if ($var9 !== null) {
                $var14 = $this.$random1;
                var$18 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$18;
                $var10 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$18;
                $var11 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$21;
                $var12 = Long_lo(Long_shru(var$21, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$23 = var$12 + $var10;
                var$24 = var$14 + $var11;
                var$25 = var$15 + $var12;
                $par6 = $var9.$stackSize;
                if ($par6 > 0) {
                    $var14 = $this.$random1;
                    var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$11));
                    while (true) {
                        var$27 = var$26 % 21 | 0;
                        if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                            break;
                        var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$21;
                        var$26 = Long_lo(Long_shru(var$21, var$11));
                    }
                    $var13 = var$27 + 10 | 0;
                    if ($var13 > $par6)
                        $var13 = $par6;
                    $var9.$stackSize = $par6 - $var13 | 0;
                    $var14 = new nms_EntityItem;
                    var$29 = new nms_ItemStack;
                    var$27 = $var9.$itemID;
                    $par6 = $var9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$29.$itemID = var$27;
                    var$29.$stackSize = $var13;
                    var$29.$itemDamage = $par6;
                    if ($par6 < 0)
                        var$29.$itemDamage = 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $var8 = $var8 + 1 | 0;
        }
        $ptr = 3;
        continue main;
    case 2:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 4:
        nms_EntityItem__init_($var14, $par1World, var$23, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        var$30 = $var14.$dataWatcher;
        var$31 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$13];
        if (var$32 === null) {
            var$31 = var$31.$elementData.data[0];
            while (var$31 !== null && var$31.$key !== null) {
                var$31 = var$31.$next3;
            }
        } else {
            $par6 = var$32.$value;
            var$33 = var$31.$elementData.data;
            var$31 = var$33[$par6 & (var$33.length - 1 | 0)];
            while (var$31 !== null) {
                if (var$31.$origKeyHash == $par6) {
                    var$34 = var$31.$key;
                    if (var$32 !== var$34 && !jl_Integer_equals(var$32, var$34) ? 0 : 1)
                        break;
                }
                var$31 = var$31.$next3;
            }
        }
        var$34 = var$31 === null ? null : var$31.$value0;
        if (!(var$29 !== var$34.$watchedObject ? 0 : 1)) {
            var$34.$watchedObject = var$29;
            var$34.$watched = 1;
            var$30.$objectChanged = 1;
        }
        var$30 = $var14.$dataWatcher;
        var$31 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$13];
        if (var$32 === null) {
            var$31 = var$31.$elementData.data[0];
            while (var$31 !== null && var$31.$key !== null) {
                var$31 = var$31.$next3;
            }
        } else {
            $par6 = var$32.$value;
            var$33 = var$31.$elementData.data;
            var$31 = var$33[$par6 & (var$33.length - 1 | 0)];
            while (var$31 !== null) {
                if (var$31.$origKeyHash == $par6) {
                    var$34 = var$31.$key;
                    if (var$32 !== var$34 && !jl_Integer_equals(var$32, var$34) ? 0 : 1)
                        break;
                }
                var$31 = var$31.$next3;
            }
        }
        (var$31 === null ? null : var$31.$value0).$watched = 1;
        var$30.$objectChanged = 1;
        $var14.$motionX = nle_EaglercraftRandom_nextGaussian($this.$random1) * 0.05000000074505806;
        $var14.$motionY = nle_EaglercraftRandom_nextGaussian($this.$random1) * 0.05000000074505806 + 0.20000000298023224;
        $var14.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$random1) * 0.05000000074505806;
        if ($var9.$stackTagCompound === null ? 0 : 1) {
            var$31 = nms_EntityItem_getEntityItem($var14);
            var$35 = $var9.$stackTagCompound;
            var$34 = new nms_NBTTagCompound;
            var$32 = var$35.$name;
            if (var$32 === null)
                var$32 = $rt_s(3);
            var$34.$name = var$32;
            var$32 = new ju_HashMap;
            $par6 = ju_HashMap_calculateCapacity(16);
            var$32.$elementCount = 0;
            var$36 = $rt_createArray(ju_HashMap$HashEntry, $par6);
            var$33 = var$36.data;
            var$32.$elementData = var$36;
            var$32.$loadFactor = 0.75;
            var$32.$threshold = var$33.length * 0.75 | 0;
            var$34.$tagMap = var$32;
            var$32 = var$35.$tagMap;
            if (var$32.$cachedKeySet === null) {
                var$30 = new ju_HashMap$1;
                var$30.$this$0 = var$32;
                var$32.$cachedKeySet = var$30;
            }
            var$32 = var$32.$cachedKeySet.$iterator();
            while (var$32.$hasNext()) {
                var$37 = var$32.$next();
                var$30 = var$35.$tagMap;
                if (var$37 === null) {
                    var$30 = var$30.$elementData.data[0];
                    while (var$30 !== null && var$30.$key !== null) {
                        var$30 = var$30.$next3;
                    }
                } else {
                    a: {
                        if (!var$37.$hashCode1) {
                            var$27 = 0;
                            while (true) {
                                if (var$27 >= var$37.$nativeString.length)
                                    break a;
                                var$37.$hashCode1 = (31 * var$37.$hashCode1 | 0) + var$37.$nativeString.charCodeAt(var$27) | 0;
                                var$27 = var$27 + 1 | 0;
                            }
                        }
                    }
                    var$27 = var$37.$hashCode1;
                    var$33 = var$30.$elementData.data;
                    var$30 = var$33[var$27 & (var$33.length - 1 | 0)];
                    while (var$30 !== null) {
                        if (var$30.$origKeyHash == var$27) {
                            b: {
                                var$29 = var$30.$key;
                                if (var$37 !== var$29) {
                                    if (var$37 === var$29)
                                        $par6 = 1;
                                    else if (!(var$29 instanceof jl_String))
                                        $par6 = 0;
                                    else {
                                        var$29 = var$29;
                                        $par6 = var$37.$nativeString !== var$29.$nativeString ? 0 : 1;
                                    }
                                    if (!$par6) {
                                        $par6 = 0;
                                        break b;
                                    }
                                }
                                $par6 = 1;
                            }
                            if ($par6)
                                break;
                        }
                        var$30 = var$30.$next3;
                    }
                }
                var$30 = var$30 === null ? null : var$30.$value0;
                var$30 = var$30.$copy();
                var$29 = var$34.$tagMap;
                if (var$37 !== null)
                    var$30.$name = var$37;
                else
                    var$30.$name = $rt_s(3);
                ju_HashMap_putImpl(var$29, var$37, var$30);
            }
            var$31.$stackTagCompound = var$34;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var14);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            $par6 = $var9.$stackSize;
            if ($par6 > 0) {
                $var14 = $this.$random1;
                var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$21;
                var$26 = Long_lo(Long_shru(var$21, var$11));
                while (true) {
                    var$27 = var$26 % 21 | 0;
                    if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                        break;
                    var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$11));
                }
                $var13 = var$27 + 10 | 0;
                if ($var13 > $par6)
                    $var13 = $par6;
                $var9.$stackSize = $par6 - $var13 | 0;
                $var14 = new nms_EntityItem;
                var$29 = new nms_ItemStack;
                var$27 = $var9.$itemID;
                $par6 = $var9.$itemDamage;
                nms_ItemStack_$callClinit();
                var$29.$itemID = var$27;
                var$29.$stackSize = $var13;
                var$29.$itemDamage = $par6;
                if ($par6 < 0)
                    var$29.$itemDamage = 0;
                $ptr = 4;
                continue main;
            }
            while (true) {
                $var8 = $var8 + 1 | 0;
                if ($var8 >= var$9)
                    break c;
                $var9 = $var7.$chestContents.data[$var8];
                if ($var9 === null)
                    continue;
                else
                    break;
            }
            $var14 = $this.$random1;
            var$18 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$18;
            $var10 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$18;
            $var11 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$21;
            $var12 = Long_lo(Long_shru(var$21, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$23 = var$12 + $var10;
            var$24 = var$14 + $var11;
            var$25 = var$15 + $var12;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var14, var$18, $var10, $var11, var$21, $var12, var$23, var$24, var$25, var$26, var$27, $var13, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr);
},
nms_BlockChest_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockChest_getInventory($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 === null)
            return 1;
        $ptr = 2;
    case 2:
        nms_EntityPlayerMP_displayGUIChest($par5EntityPlayer, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $ptr);
},
nms_BlockChest_getInventory = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $var5 = var$5;
        if ($var5 === null)
            return null;
        var$7 = $par3 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockChest_isOcelotBlockingChest($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        var$9 = $par2 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == $this.$blockID) {
            $ptr = 6;
            continue main;
        }
        var$10 = $par2 + 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        var$11 = $par4 - 1 | 0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, var$9, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        $ptr = 9;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == $this.$blockID) {
            $ptr = 11;
            continue main;
        }
        var$12 = $par4 + 1 | 0;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_isBlockNormalCube($par1World, var$10, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        $ptr = 12;
        continue main;
    case 9:
        $tmp = nms_BlockChest_isOcelotBlockingChest($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        var$10 = $par2 + 1 | 0;
        $ptr = 5;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (var$13 != $this.$blockID) {
            $ptr = 13;
            continue main;
        }
        $ptr = 14;
        continue main;
    case 11:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, var$7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        $ptr = 15;
        continue main;
    case 12:
        $tmp = nms_BlockChest_isOcelotBlockingChest($par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        var$11 = $par4 - 1 | 0;
        $ptr = 7;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == $this.$blockID) {
            var$5 = new nms_InventoryLargeChest;
            var$14 = $rt_s(1415);
            $ptr = 16;
            continue main;
        }
        var$5 = $var5;
        $ptr = 18;
        continue main;
    case 14:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, var$7, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        $ptr = 17;
        continue main;
    case 15:
        $tmp = nms_BlockChest_isOcelotBlockingChest($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        var$12 = $par4 + 1 | 0;
        $ptr = 10;
        continue main;
    case 16:
        $tmp = nms_World_getBlockTileEntity($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        var$15 = var$15;
        var$5.$name13 = var$14;
        if (var$15 === null)
            var$15 = $var5;
        var$5.$upperChest = var$15;
        var$5.$lowerChest = $var5;
        $ptr = 18;
        continue main;
    case 17:
        $tmp = nms_BlockChest_isOcelotBlockingChest($par1World, $par2, $par3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return null;
        $ptr = 13;
        continue main;
    case 18:
        $tmp = nms_World_getBlockId($par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == $this.$blockID) {
            $var5 = new nms_InventoryLargeChest;
            var$14 = $rt_s(1415);
            $ptr = 19;
            continue main;
        }
        $var5 = var$5;
        $ptr = 20;
        continue main;
    case 19:
        $tmp = nms_World_getBlockTileEntity($par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        var$15 = var$15;
        $var5.$name13 = var$14;
        if (var$15 === null)
            var$15 = var$5;
        $var5.$upperChest = var$5;
        $var5.$lowerChest = var$15;
        $ptr = 20;
    case 20:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4 == $this.$blockID) {
            var$5 = new nms_InventoryLargeChest;
            var$14 = $rt_s(1415);
            $ptr = 21;
            continue main;
        }
        var$5 = $var5;
        $ptr = 22;
        continue main;
    case 21:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        var$15 = var$15;
        var$5.$name13 = var$14;
        if (var$15 === null)
            var$15 = $var5;
        var$5.$upperChest = var$15;
        var$5.$lowerChest = $var5;
        $ptr = 22;
    case 22:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4 != $this.$blockID) {
            $var5 = var$5;
            return $var5;
        }
        $var5 = new nms_InventoryLargeChest;
        var$14 = $rt_s(1415);
        $ptr = 23;
    case 23:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $par1World = $par1World;
        $var5.$name13 = var$14;
        if ($par1World === null)
            $par1World = var$5;
        $var5.$upperChest = var$5;
        $var5.$lowerChest = $par1World;
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockChest_createNewTileEntity = ($this, $par1World) => {
    let $var2;
    $var2 = new nms_TileEntityChest;
    nms_TileEntity_$callClinit();
    $var2.$blockMetadata = (-1);
    $var2.$chestContents = $rt_createArray(nms_ItemStack, 36);
    $var2.$cachedChestType = (-1);
    return $var2;
},
nms_BlockChest_canProvidePower = $this => {
    return $this.$chestType != 1 ? 0 : 1;
},
nms_BlockChest_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$chestType != 1 ? 0 : 1))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1IBlockAccess = $tmp;
        $var6 = $par1IBlockAccess.$numUsingPlayers;
        $par2 = 0;
        if ($var6 >= $par2)
            $par2 = $var6 <= 15 ? $var6 : 15;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockChest_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 != 1)
            $par2 = 0;
        else {
            if ($this.$chestType != 1 ? 0 : 1) {
                $ptr = 1;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1IBlockAccess = $tmp;
        $par3 = $par1IBlockAccess.$numUsingPlayers;
        $par2 = 0;
        if ($par3 >= $par2)
            $par2 = $par3 <= 15 ? $par3 : 15;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockChest_isOcelotBlockingChest = ($par0World, $par1, $par2, $par3) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var4$index, $var4$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4$index_0 = $thread.pop();$var4$index = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $rt_cls(nms_EntityOcelot);
        var$6 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$7 = $par1;
        var$8 = $par2 + 1 | 0;
        var$9 = $par3;
        var$10 = $par1 + 1 | 0;
        var$11 = $par2 + 2 | 0;
        var$12 = $par3 + 1 | 0;
        $par1 = var$6.$nextPoolIndex;
        var$13 = var$6.$listAABB;
        $par3 = var$13.$size0;
        $par2 = $rt_compare($par1, $par3);
        if ($par2 >= 0) {
            var$14 = new nms_AxisAlignedBB;
            var$14.$minX0 = var$7;
            var$14.$minY0 = var$8;
            var$14.$minZ0 = var$9;
            var$14.$maxX0 = var$10;
            var$14.$maxY = var$11;
            var$14.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity(var$13, $par3 + 1 | 0);
            var$15 = var$13.$array.data;
            $par2 = var$13.$size0;
            var$13.$size0 = $par2 + 1 | 0;
            var$15[$par2] = var$14;
            var$13.$modCount = var$13.$modCount + 1 | 0;
        } else if ($par1 >= 0 && $par2 < 0) {
            var$14 = var$13.$array.data[$par1];
            var$14.$minX0 = var$7;
            var$14.$minY0 = var$8;
            var$14.$minZ0 = var$9;
            var$14.$maxX0 = var$10;
            var$14.$maxY = var$11;
            var$14.$maxZ0 = var$12;
        } else {
            $par0World = new jl_IndexOutOfBoundsException;
            $par0World.$suppressionEnabled = 1;
            $par0World.$writableStackTrace = 1;
            $rt_throw($par0World);
        }
        var$6.$nextPoolIndex = var$6.$nextPoolIndex + 1 | 0;
        var$13 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($par0World, $var5, var$14, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $par0World = $tmp;
        $var4$index = 0;
        $par1 = $par0World.$modCount;
        $par2 = $par0World.$size();
        while (true) {
            if (!($var4$index >= $par2 ? 0 : 1))
                return 0;
            if ($par1 < $par0World.$modCount) {
                $par0World = new ju_ConcurrentModificationException;
                $par0World.$suppressionEnabled = 1;
                $par0World.$writableStackTrace = 1;
                $rt_throw($par0World);
            }
            $var4$index_0 = $var4$index + 1 | 0;
            if (nms_EntityTameable_isSitting($par0World.$get($var4$index)))
                break;
            $var4$index = $var4$index_0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par3, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var4$index, $var4$index_0, $ptr);
},
nms_BlockChest_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockChest_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockChest_getInventory($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return nms_Container_calcRedstoneFromInventory($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
};
function nms_BlockRedstoneWire() {
    let a = this; nms_Block.call(a);
    a.$wiresProvidePower = 0;
    a.$blocksNeedingUpdate = null;
}
let nms_BlockRedstoneWire__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$wiresProvidePower = 1;
    $this.$blocksNeedingUpdate = ju_HashSet__init_();
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.0625;
    $this.$maxZ1 = 1.0;
},
nms_BlockRedstoneWire__init_0 = var_0 => {
    let var_1 = new nms_BlockRedstoneWire();
    nms_BlockRedstoneWire__init_(var_1, var_0);
    return var_1;
},
nms_BlockRedstoneWire_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockRedstoneWire_isOpaqueCube = $this => {
    return 0;
},
nms_BlockRedstoneWire_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockRedstoneWire_getRenderType = $this => {
    return 5;
},
nms_BlockRedstoneWire_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = var$5[var$6];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, var$6))
            return 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 == nms_Block_glowStone.$blockID ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockRedstoneWire_calculateCurrentChanges = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var15, var$10, $var10, $var11, $var12, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$var15 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var15 = 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 == $this.$blockID) {
            $ptr = 3;
            continue main;
        }
        $this.$wiresProvidePower = 0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 > $var15)
            $var15 = var$10;
        $this.$wiresProvidePower = 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getStrongestIndirectPower($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $this.$wiresProvidePower = 1;
        if ($var10 > 0 && $var10 > ($var15 - 1 | 0))
            $var15 = $var10;
        $var11 = 0;
        $var12 = 0;
        var$14 = $par2 - 1 | 0;
        var$15 = $par4 - 1 | 0;
        var$16 = $par3 + 1 | 0;
        var$17 = $rt_compare($par3, $par6);
        var$18 = $par3 - 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var10, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        var$20.$x = $par2;
        var$20.$y = $par3;
        var$20.$z = $par4;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        var$20.$x = var$14;
        var$20.$y = $par3;
        var$20.$z = $par4;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        var$20.$x = $par2 + 1 | 0;
        var$20.$y = $par3;
        var$20.$z = $par4;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        var$20.$x = $par2;
        var$20.$y = var$18;
        var$20.$z = $par4;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        var$20.$x = $par2;
        var$20.$y = var$16;
        var$20.$z = $par4;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        var$20.$x = $par2;
        var$20.$y = $par3;
        var$20.$z = var$15;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        $par1World = $this.$blocksNeedingUpdate;
        var$20 = new nms_ChunkPosition;
        $par4 = $par4 + 1 | 0;
        var$20.$x = $par2;
        var$20.$y = $par3;
        var$20.$z = $par4;
        ju_HashMap_putImpl($par1World.$backingMap, var$20, $par1World);
        return;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$19, $par3, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $tmp;
        if (var$21 == $this.$blockID) {
            $ptr = 7;
            continue main;
        }
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, var$19, $par3, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $tmp;
        if (var$21 > $var11)
            $var11 = var$21;
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockNormalCube($par1World, var$19, $par3, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $tmp;
        if (!var$21) {
            $ptr = 9;
            continue main;
        }
        $ptr = 10;
        continue main;
    case 9:
        $tmp = nms_World_isBlockNormalCube($par1World, var$19, $par3, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $tmp;
        if (!var$21 && !(!var$10 && $par6 == $par7) && var$17 <= 0) {
            $ptr = 11;
            continue main;
        }
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 10:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $tmp;
        if (var$21) {
            $ptr = 9;
            continue main;
        }
        if (!(!var$10 && $par6 == $par7) && var$17 >= 0) {
            $ptr = 12;
            continue main;
        }
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($par1World, var$19, var$18, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 == $this.$blockID) {
            $ptr = 13;
            continue main;
        }
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId($par1World, var$19, var$16, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 == $this.$blockID) {
            $ptr = 14;
            continue main;
        }
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 13:
        $tmp = nms_World_getBlockMetadata($par1World, var$19, var$18, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if ($par6 > $var11)
            $var11 = $par6;
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 14:
        $tmp = nms_World_getBlockMetadata($par1World, var$19, var$16, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if ($par6 > $var11)
            $var11 = $par6;
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 4) {
            $par6 = $var11 > $var15 ? $var11 - 1 | 0 : $var15 <= 0 ? 0 : $var15 + (-1) | 0;
            if ($var10 <= ($par6 - 1 | 0))
                $var10 = $par6;
            if ($var8 == $var10)
                return;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        var$19 = !$var12 ? var$14 : $par2;
        if ($var12 == 1)
            var$19 = var$19 + 1 | 0;
        $par6 = $var12 == 2 ? var$15 : $par4;
        if ($var12 == 3)
            $par6 = $par6 + 1 | 0;
        var$10 = $rt_compare(var$19, $par5);
        if (!var$10 && $par6 == $par7) {
            $ptr = 8;
            continue main;
        }
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $var15, var$10, $var10, $var11, $var12, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$6 = $this.$blockID;
        if (var$5 != var$6)
            return;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2 + 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par4 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 5;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par4 + 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par3 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 7;
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        var$5 = $this.$blockID;
        $ptr = 8;
    case 8:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockRedstoneWire_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        nms_BlockRedstoneWire_calculateCurrentChanges($this, $par1World, $par2, $par3, $par4, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$blocksNeedingUpdate.$backingMap;
        var$6 = var$5.$elementCount;
        if (var$6 < 0) {
            $par1World = new jl_IllegalArgumentException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$7 = $rt_createArray(jl_Object, var$6);
        if (var$5.$cachedKeySet === null) {
            var$8 = new ju_HashMap$1;
            var$8.$this$0 = var$5;
            jl_Object__init_(var$8);
            var$5.$cachedKeySet = var$8;
        }
        var$9 = var$7.data;
        var$5 = var$5.$cachedKeySet.$iterator();
        var$6 = 0;
        var$10 = var$9.length;
        while (var$6 < var$10) {
            var$9[var$6] = var$5.$next();
            var$6 = var$6 + 1 | 0;
        }
        var$8 = $this.$blocksNeedingUpdate.$backingMap;
        if (var$8.$elementCount > 0) {
            var$8.$elementCount = 0;
            var$7 = var$8.$elementData.data;
            var$5 = null;
            var$6 = 0;
            var$11 = var$7.length;
            if (var$6 > var$11) {
                $par1World = new jl_IllegalArgumentException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            while (var$6 < var$11) {
                var$12 = var$6 + 1 | 0;
                var$7[var$6] = var$5;
                var$6 = var$12;
            }
            var$8.$modCount1 = var$8.$modCount1 + 1 | 0;
        }
        var$6 = 0;
        var$11 = $rt_compare(var$6, var$10);
        if (var$11 >= 0) {
            var$11 = $par3 + 1 | 0;
            var$6 = $this.$blockID;
            $ptr = 2;
            continue main;
        }
        if (var$6 >= 0 && var$11 < 0) {
            var$8 = var$9[var$6];
            var$11 = var$8.$x;
            var$12 = var$8.$y;
            var$13 = var$8.$z;
            var$14 = $this.$blockID;
            $ptr = 12;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$11, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $par3 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$12, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $par2 - 1 | 0;
        $ptr = 4;
    case 4:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$13, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $par2 + 1 | 0;
        $ptr = 5;
    case 5:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $par4 - 1 | 0;
        $ptr = 6;
    case 6:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $par4 + 1 | 0;
        $ptr = 7;
    case 7:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockNormalCube($par1World, var$13, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (!var$15) {
            $ptr = 9;
            continue main;
        }
        $ptr = 10;
        continue main;
    case 9:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$13, var$12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 11;
        continue main;
    case 10:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$13, var$11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 11;
    case 11:
        $tmp = nms_World_isBlockNormalCube($par1World, var$14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (!var$13) {
            $ptr = 13;
            continue main;
        }
        $ptr = 14;
        continue main;
    case 12:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$6 + 1 | 0;
        var$11 = $rt_compare(var$6, var$10);
        if (var$11 >= 0) {
            var$11 = $par3 + 1 | 0;
            var$6 = $this.$blockID;
            $ptr = 2;
            continue main;
        }
        if (var$6 >= 0 && var$11 < 0) {
            var$8 = var$9[var$6];
            var$11 = var$8.$x;
            var$12 = var$8.$y;
            var$13 = var$8.$z;
            var$14 = $this.$blockID;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 13:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$14, var$12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 15;
        continue main;
    case 14:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$14, var$11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 15;
    case 15:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            $ptr = 16;
            continue main;
        }
        $ptr = 17;
        continue main;
    case 16:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$12, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 18;
        continue main;
    case 17:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$11, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 18;
    case 18:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3) {
            $ptr = 19;
            continue main;
        }
        $ptr = 20;
        continue main;
    case 19:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$12, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 20:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$11, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockRedstoneWire_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        var$7 = $par3 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$7, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $par3 - 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$8, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $par2 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$9, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $par2 - 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$10, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $par4 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 5;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$11, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par4 - 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
    case 7:
        nms_BlockRedstoneWire_calculateCurrentChanges($this, $par1World, $par2, $par3, $par4, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $this.$blocksNeedingUpdate.$backingMap;
        $par6 = var$12.$elementCount;
        if ($par6 < 0) {
            $par1World = new jl_IllegalArgumentException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$13 = $rt_createArray(jl_Object, $par6);
        if (var$12.$cachedKeySet === null) {
            var$14 = new ju_HashMap$1;
            var$14.$this$0 = var$12;
            jl_Object__init_(var$14);
            var$12.$cachedKeySet = var$14;
        }
        var$13 = var$13.data;
        var$12 = var$12.$cachedKeySet.$iterator();
        $par6 = 0;
        var$15 = var$13.length;
        while ($par6 < var$15) {
            var$13[$par6] = var$12.$next();
            $par6 = $par6 + 1 | 0;
        }
        var$12 = $this.$blocksNeedingUpdate.$backingMap;
        if (var$12.$elementCount > 0) {
            var$12.$elementCount = 0;
            var$16 = var$12.$elementData.data;
            var$14 = null;
            var$17 = 0;
            $par6 = var$16.length;
            if (var$17 > $par6) {
                $par1World = new jl_IllegalArgumentException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            while (var$17 < $par6) {
                var$18 = var$17 + 1 | 0;
                var$16[var$17] = var$14;
                var$17 = var$18;
            }
            var$12.$modCount1 = var$12.$modCount1 + 1 | 0;
        }
        $par6 = 0;
        var$18 = $rt_compare($par6, var$15);
        if (var$18 >= 0) {
            $ptr = 8;
            continue main;
        }
        if ($par6 >= 0 && var$18 < 0) {
            var$14 = var$13[$par6];
            var$18 = var$14.$x;
            var$17 = var$14.$y;
            var$19 = var$14.$z;
            var$20 = $this.$blockID;
            $ptr = 16;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 8:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
    case 9:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 10;
    case 10:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 11;
    case 11:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 12;
    case 12:
        $tmp = nms_World_isBlockNormalCube($par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if (!$par6) {
            $ptr = 13;
            continue main;
        }
        $ptr = 14;
        continue main;
    case 13:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$10, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 15;
        continue main;
    case 14:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$10, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 15;
    case 15:
        $tmp = nms_World_isBlockNormalCube($par1World, var$9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if (!$par6) {
            $ptr = 17;
            continue main;
        }
        $ptr = 18;
        continue main;
    case 16:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$18, var$17, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $par6 + 1 | 0;
        var$18 = $rt_compare($par6, var$15);
        if (var$18 >= 0) {
            $ptr = 8;
            continue main;
        }
        if ($par6 >= 0 && var$18 < 0) {
            var$14 = var$13[$par6];
            var$18 = var$14.$x;
            var$17 = var$14.$y;
            var$19 = var$14.$z;
            var$20 = $this.$blockID;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 17:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$9, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 19;
        continue main;
    case 18:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, var$9, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 19;
    case 19:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            $ptr = 20;
            continue main;
        }
        $ptr = 21;
        continue main;
    case 20:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 22;
        continue main;
    case 21:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 22;
    case 22:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3) {
            $ptr = 23;
            continue main;
        }
        $ptr = 24;
        continue main;
    case 23:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 24:
        nms_BlockRedstoneWire_notifyWireNeighborsOfNeighborChange($this, $par1World, $par2, var$7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_BlockRedstoneWire_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $var6, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $par5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$8 = var$6[$var6];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, $var6)) {
            $ptr = 3;
            continue main;
        }
        if (1) {
            $ptr = 6;
            continue main;
        }
        $par5 = 0;
        $var6 = 0;
        var$9 = 1.0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == nms_Block_glowStone.$blockID ? 1 : 0) {
            $ptr = 6;
            continue main;
        }
        $par5 = 0;
        $var6 = 0;
        var$9 = 1.0;
        $ptr = 4;
    case 4:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$9, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var6 = 0;
        var$10 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var6, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_BlockRedstoneWire_calculateCurrentChanges($this, $par1World, $par2, $par3, $par4, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $this.$blocksNeedingUpdate.$backingMap;
        $par2 = var$8.$elementCount;
        if ($par2 < 0) {
            $par1World = new jl_IllegalArgumentException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$6 = $rt_createArray(jl_Object, $par2);
        if (var$8.$cachedKeySet === null) {
            var$11 = new ju_HashMap$1;
            var$11.$this$0 = var$8;
            jl_Object__init_(var$11);
            var$8.$cachedKeySet = var$11;
        }
        var$6 = var$6.data;
        var$11 = var$8.$cachedKeySet.$iterator();
        $par3 = 0;
        $par2 = var$6.length;
        while ($par3 < $par2) {
            var$6[$par3] = var$11.$next();
            $par3 = $par3 + 1 | 0;
        }
        var$8 = $this.$blocksNeedingUpdate.$backingMap;
        if (var$8.$elementCount > 0) {
            var$8.$elementCount = 0;
            var$12 = var$8.$elementData.data;
            var$11 = null;
            $par3 = 0;
            $par4 = var$12.length;
            if ($par3 > $par4) {
                $par1World = new jl_IllegalArgumentException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            while ($par3 < $par4) {
                $par5 = $par3 + 1 | 0;
                var$12[$par3] = var$11;
                $par3 = $par5;
            }
            var$8.$modCount1 = var$8.$modCount1 + 1 | 0;
        }
        $par3 = 0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0)
            return;
        if ($par3 >= 0 && $par4 < 0) {
            var$8 = var$6[$par3];
            $par4 = var$8.$x;
            $par5 = var$8.$y;
            $var6 = var$8.$z;
            var$10 = $this.$blockID;
            $ptr = 7;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par4, $par5, $var6, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0)
            return;
        if ($par3 >= 0 && $par4 < 0) {
            var$8 = var$6[$par3];
            $par4 = var$8.$x;
            $par5 = var$8.$y;
            $var6 = var$8.$z;
            var$10 = $this.$blockID;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $var6, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockRedstoneWire_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_redstone.$itemID0;
},
nms_BlockRedstoneWire_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$wiresProvidePower)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRedstoneWire_isProvidingWeakPower($this, $par1IBlockAccess, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockRedstoneWire_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, $var7, var$11, $var8, var$13, var$14, $var9, var$16, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();var$16 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var8 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$wiresProvidePower)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            return 0;
        if ($par5 == 1)
            return $var6;
        var$7 = $par2 - 1 | 0;
        var$8 = 1;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, var$7, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            $ptr = 3;
            continue main;
        }
        if (!1) {
            $ptr = 5;
            continue main;
        }
        $var7 = 1;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        if (var$9 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 4;
            continue main;
        }
        if (!0) {
            $ptr = 5;
            continue main;
        }
        $var7 = 1;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!(var$8 != (var$9 & 3) ? 0 : 1)) {
            $ptr = 5;
            continue main;
        }
        $var7 = 1;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            var$8 = $par3 - 1 | 0;
            var$9 = (-1);
            $ptr = 7;
            continue main;
        }
        $var7 = 0;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
    case 6:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, var$11, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            $ptr = 8;
            continue main;
        }
        if (!1) {
            $ptr = 12;
            continue main;
        }
        $var8 = 1;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
        continue main;
    case 7:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, var$7, var$8, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if (!var$14) {
            $ptr = 9;
            continue main;
        }
        $var7 = 1 ? 1 : 0;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        if (var$9 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 10;
            continue main;
        }
        if (!0) {
            $ptr = 12;
            continue main;
        }
        $var8 = 1;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$7, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        nms_Block_$callClinit();
        if (var$14 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 11;
            continue main;
        }
        $var7 = 0 ? 1 : 0;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
        continue main;
    case 10:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!(var$8 != (var$9 & 3) ? 0 : 1)) {
            $ptr = 12;
            continue main;
        }
        $var8 = 1;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
        continue main;
    case 11:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$7, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var7 = (var$9 != (var$8 & 3) ? 0 : 1) ? 1 : 0;
        var$11 = $par2 + 1 | 0;
        var$8 = 3;
        $ptr = 6;
        continue main;
    case 12:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            var$8 = $par3 - 1 | 0;
            var$9 = (-1);
            $ptr = 14;
            continue main;
        }
        $var8 = 0;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
    case 13:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, $par2, $par3, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            $ptr = 15;
            continue main;
        }
        if (!1) {
            $ptr = 19;
            continue main;
        }
        $var9 = 1;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
        continue main;
    case 14:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, var$11, var$8, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if (!var$14) {
            $ptr = 16;
            continue main;
        }
        $var8 = 1 ? 1 : 0;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        if (var$8 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 17;
            continue main;
        }
        if (!0) {
            $ptr = 19;
            continue main;
        }
        $var9 = 1;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$11, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        nms_Block_$callClinit();
        if (var$14 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 18;
            continue main;
        }
        $var8 = 0 ? 1 : 0;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
        continue main;
    case 17:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!(var$14 != (var$8 & 3) ? 0 : 1)) {
            $ptr = 19;
            continue main;
        }
        $var9 = 1;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
        continue main;
    case 18:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$11, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var8 = (var$9 != (var$8 & 3) ? 0 : 1) ? 1 : 0;
        var$13 = $par4 - 1 | 0;
        var$14 = 2;
        $ptr = 13;
        continue main;
    case 19:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, $par2, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            var$14 = $par3 - 1 | 0;
            $var9 = (-1);
            $ptr = 21;
            continue main;
        }
        $var9 = 0;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
    case 20:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, $par2, $par3, var$16, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            $ptr = 22;
            continue main;
        }
        if (!1) {
            $ptr = 26;
            continue main;
        }
        $var10 = 1;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
        continue main;
    case 21:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, $par2, var$14, var$13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            $ptr = 23;
            continue main;
        }
        $var9 = 1 ? 1 : 0;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
        continue main;
    case 22:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        if (var$8 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 24;
            continue main;
        }
        if (!0) {
            $ptr = 26;
            continue main;
        }
        $var10 = 1;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
        continue main;
    case 23:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, var$14, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        if (var$8 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 25;
            continue main;
        }
        $var9 = 0 ? 1 : 0;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
        continue main;
    case 24:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!(var$14 != (var$8 & 3) ? 0 : 1)) {
            $ptr = 26;
            continue main;
        }
        $var10 = 1;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
        continue main;
    case 25:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, var$14, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var9 = ($var9 != (var$8 & 3) ? 0 : 1) ? 1 : 0;
        var$16 = $par4 + 1 | 0;
        var$14 = 0;
        $ptr = 20;
        continue main;
    case 26:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, $par2, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            var$8 = $par3 - 1 | 0;
            var$9 = (-1);
            $ptr = 28;
            continue main;
        }
        $var10 = 0;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
    case 27:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, $par2, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9) {
            if (!(!$var9 && !$var8 && !$var7 && !$var10 && $par5 >= 2 && $par5 <= 5) && !($par5 == 2 && $var9 && !$var7 && !$var8) && !($par5 == 3 && $var10 && !$var7 && !$var8) && !($par5 == 4 && $var7 && !$var9 && !$var10) && !($par5 == 5 && $var8 && !$var9 && !$var10))
                $var6 = 0;
            return $var6;
        }
        $ptr = 29;
        continue main;
    case 28:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, $par2, var$8, var$16, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if (!var$14) {
            $ptr = 30;
            continue main;
        }
        $var10 = 1 ? 1 : 0;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
        continue main;
    case 29:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            $ptr = 33;
            continue main;
        }
        var$9 = (-1);
        $ptr = 31;
        continue main;
    case 30:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, var$8, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        nms_Block_$callClinit();
        if (var$14 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 32;
            continue main;
        }
        $var10 = 0 ? 1 : 0;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
        continue main;
    case 31:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, var$7, var$8, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if (!var$14) {
            $ptr = 34;
            continue main;
        }
        if (1)
            $var7 = 1;
        $ptr = 33;
        continue main;
    case 32:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, var$8, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var10 = (var$9 != (var$8 & 3) ? 0 : 1) ? 1 : 0;
        var$8 = $par3 + 1 | 0;
        $ptr = 27;
        continue main;
    case 33:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            $ptr = 37;
            continue main;
        }
        var$9 = (-1);
        $ptr = 35;
        continue main;
    case 34:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$7, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        nms_Block_$callClinit();
        if (var$14 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 36;
            continue main;
        }
        if (0)
            $var7 = 1;
        $ptr = 33;
        continue main;
    case 35:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, var$11, var$8, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if (!var$14) {
            $ptr = 38;
            continue main;
        }
        if (1)
            $var8 = 1;
        $ptr = 37;
        continue main;
    case 36:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$7, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if (var$9 != (var$14 & 3) ? 0 : 1)
            $var7 = 1;
        $ptr = 33;
        continue main;
    case 37:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, $par2, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            $ptr = 41;
            continue main;
        }
        $par4 = (-1);
        $ptr = 39;
        continue main;
    case 38:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$11, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        nms_Block_$callClinit();
        if (var$14 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 40;
            continue main;
        }
        if (0)
            $var8 = 1;
        $ptr = 37;
        continue main;
    case 39:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, $par2, var$8, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            $ptr = 42;
            continue main;
        }
        if (1)
            $var9 = 1;
        $ptr = 41;
        continue main;
    case 40:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, var$11, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (var$9 != ($par4 & 3) ? 0 : 1)
            $var8 = 1;
        $ptr = 37;
        continue main;
    case 41:
        $tmp = nms_World_isBlockNormalCube($par1IBlockAccess, $par2, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3) {
            if (!(!$var9 && !$var8 && !$var7 && !$var10 && $par5 >= 2 && $par5 <= 5) && !($par5 == 2 && $var9 && !$var7 && !$var8) && !($par5 == 3 && $var10 && !$var7 && !$var8) && !($par5 == 4 && $var7 && !$var9 && !$var10) && !($par5 == 5 && $var8 && !$var9 && !$var10))
                $var6 = 0;
            return $var6;
        }
        $par3 = (-1);
        $ptr = 43;
        continue main;
    case 42:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        if (var$9 == nms_Block_redstoneRepeaterActive.$blockID) {
            $ptr = 44;
            continue main;
        }
        if (0)
            $var9 = 1;
        $ptr = 41;
        continue main;
    case 43:
        $tmp = nms_BlockRedstoneWire_isPowerProviderOrWire($par1IBlockAccess, $par2, var$8, var$16, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4) {
            if (1)
                $var10 = 1;
            if (!(!$var9 && !$var8 && !$var7 && !$var10 && $par5 >= 2 && $par5 <= 5) && !($par5 == 2 && $var9 && !$var7 && !$var8) && !($par5 == 3 && $var10 && !$var7 && !$var8) && !($par5 == 4 && $var7 && !$var9 && !$var10) && !($par5 == 5 && $var8 && !$var9 && !$var10))
                $var6 = 0;
            return $var6;
        }
        $ptr = 45;
        continue main;
    case 44:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        if ($par4 != (var$14 & 3) ? 0 : 1)
            $var9 = 1;
        $ptr = 41;
        continue main;
    case 45:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, var$8, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        nms_Block_$callClinit();
        if ($par4 != nms_Block_redstoneRepeaterActive.$blockID) {
            if (0)
                $var10 = 1;
            if (!(!$var9 && !$var8 && !$var7 && !$var10 && $par5 >= 2 && $par5 <= 5) && !($par5 == 2 && $var9 && !$var7 && !$var8) && !($par5 == 3 && $var10 && !$var7 && !$var8) && !($par5 == 4 && $var7 && !$var9 && !$var10) && !($par5 == 5 && $var8 && !$var9 && !$var10))
                $var6 = 0;
            return $var6;
        }
        $ptr = 46;
    case 46:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, var$8, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par3 != ($par2 & 3) ? 0 : 1)
            $var10 = 1;
        if (!(!$var9 && !$var8 && !$var7 && !$var10 && $par5 >= 2 && $par5 <= 5) && !($par5 == 2 && $var9 && !$var7 && !$var8) && !($par5 == 3 && $var10 && !$var7 && !$var8) && !($par5 == 4 && $var7 && !$var9 && !$var10) && !($par5 == 5 && $var8 && !$var9 && !$var10))
            $var6 = 0;
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, var$7, var$8, var$9, $var7, var$11, $var8, var$13, var$14, $var9, var$16, $var10, $ptr);
},
nms_BlockRedstoneWire_canProvidePower = $this => {
    return $this.$wiresProvidePower;
},
nms_BlockRedstoneWire_isPowerProviderOrWire = ($par0IBlockAccess, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0IBlockAccess = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par0IBlockAccess, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        if ($var5 == nms_Block_redstoneWire.$blockID)
            return 1;
        if (!$var5)
            return 0;
        if (!($var5 != nms_Block_redstoneRepeaterActive.$blockID && $var5 != nms_Block_redstoneRepeaterIdle.$blockID ? 0 : 1))
            return nms_Block_blocksList.data[$var5].$canProvidePower() && $par4 != (-1) ? 1 : 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par0IBlockAccess, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $par1 = $var6 & 3;
        return $par4 != $par1 && $par4 != nms_Direction_rotateOpposite.data[$par1] ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0IBlockAccess, $par1, $par2, $par3, $par4, $var5, $var6, $ptr);
},
nms_BlockWorkbench = $rt_classWithoutFields(nms_Block),
nms_BlockWorkbench__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockWorkbench__init_0 = var_0 => {
    let var_1 = new nms_BlockWorkbench();
    nms_BlockWorkbench__init_(var_1, var_0);
    return var_1;
},
nms_BlockWorkbench_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        a: {
            var$10 = ($par5EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
            $par5EntityPlayer.$currentWindowId = var$10;
            var$11 = $par5EntityPlayer.$playerNetServerHandler;
            $par1World = new nms_Packet100OpenWindow;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1World.$windowId2 = var$10;
            $par1World.$inventoryType = 1;
            $par1World.$windowTitle = $rt_s(1416);
            $par1World.$slotsCount0 = 9;
            $par1World.$useProvidedWindowTitle = 1;
            if ($par1World instanceof nms_Packet3Chat) {
                var$12 = $par1World;
                var$13 = var$11.$playerEntity.$chatVisibility;
                if (var$13 == 2)
                    break a;
                if (var$13 == 1 && !var$12.$isServer)
                    break a;
            }
            try {
                var$12 = var$11.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = new nms_ContainerWorkbench;
        var$12 = $par5EntityPlayer.$inventory0;
        var$11 = $par5EntityPlayer.$worldObj;
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$12, $par1World);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = new nms_ContainerWorkbench;
        var$12 = $par5EntityPlayer.$inventory0;
        var$11 = $par5EntityPlayer.$worldObj;
        $ptr = 2;
    case 2:
        nms_ContainerWorkbench__init_($par1World, var$12, var$11, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
    case 3:
        $par1World.$addCraftingToCrafters($par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockCrops = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockCrops__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.25;
    $this.$maxZ1 = 1.0;
    $this.$displayOnCreativeTab = null;
    $this.$blockHardness = 0.0;
    if ($this.$blockResistance < 0.0)
        $this.$blockResistance = 0.0;
    $this.$stepSound = nms_Block_soundGrassFootstep;
    $this.$enableStats = 0;
},
nms_BlockCrops__init_ = var_0 => {
    let var_1 = new nms_BlockCrops();
    nms_BlockCrops__init_0(var_1, var_0);
    return var_1;
},
nms_BlockCrops_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_tilledField.$blockID ? 0 : 1;
},
nms_BlockCrops_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $var6, $var7, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getFullBlockLightValue($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 < 8) {
            $ptr = 3;
            continue main;
        }
        var$6 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        if (!(!(var$6 != nms_Block_tilledField.$blockID ? 0 : 1) ? 0 : 1)) {
            $ptr = 5;
            continue main;
        }
        $var6 = $par3 + 1 | 0;
        var$6 = 1;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_canBlockSeeTheSky($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            var$6 = $par3 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if (!0) {
            $ptr = 5;
            continue main;
        }
        $var6 = $par3 + 1 | 0;
        var$6 = 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, $var6, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 < 9)
            return;
        $ptr = 8;
        continue main;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        $var6 = 0;
        $var7 = 1.0;
        $ptr = 6;
    case 6:
        $this.$dropBlockAsItemWithChance($par1World, $par2, $par3, $par4, var$6, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        $var6 = 0;
        var$9 = 2;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $par3 + 1 | 0;
        var$6 = 1;
        $ptr = 4;
        continue main;
    case 8:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 >= 7)
            return;
        $ptr = 9;
    case 9:
        $tmp = nms_BlockCrops_getGrowthRate($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$9 = (25.0 / $var7 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        var$12 = var$9 - 1 | 0;
        if (!(var$9 & var$12))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$11)), 31));
        else
            while (true) {
                var$13 = var$11 % var$9 | 0;
                if (((var$11 - var$13 | 0) + var$12 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
        if (var$13)
            return;
        var$6 = $var6 + 1 | 0;
        $var6 = 2;
        $ptr = 10;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$6, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $var6, $var7, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockCrops_fertilize = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $var5, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$6 = $par1World.$rand0;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        $var5 = var$5 + (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$7, 17)))), 31)) + 2 | 0) | 0;
        if ($var5 > 7)
            $var5 = 7;
        var$9 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $var5, var$9, $ptr);
},
nms_BlockCrops_getGrowthRate = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $var6, var$8, $var7, $var17, $var8, var$12, $var9, $var10, $var11, $var12, $var13, $var19, $var14, $var15, $var16, $var18, $var20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var20 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var19 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();$var17 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 1.0;
        var$6 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$8 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var17 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$12 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var19 = $this.$blockID;
        $var14 = $var8 != $var19 && $var9 != $var19 ? 0 : 1;
        $var15 = $var6 != $var19 && $var7 != $var19 ? 0 : 1;
        $var16 = $var10 != $var19 && $var11 != $var19 && $var12 != $var19 && $var13 != $var19 ? 0 : 1;
        $par3 = $par3 - 1 | 0;
        while ($var17 <= var$12) {
            $var18 = var$6;
            if ($var18 <= var$8) {
                $ptr = 9;
                continue main;
            }
            $var17 = $var17 + 1 | 0;
        }
        a: {
            if (!$var16) {
                if (!$var14)
                    break a;
                if (!$var15)
                    break a;
            }
            $var5 = $var5 / 2.0;
        }
        return $var5;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        $var20 = 0.0;
        nms_Block_$callClinit();
        if ($var19 == nms_Block_tilledField.$blockID) {
            $var20 = 1.0;
            $ptr = 10;
            continue main;
        }
        if (!($var17 == $par2 && $var18 == $par4))
            $var20 = $var20 / 4.0;
        $var5 = $var5 + $var20;
        $var18 = $var18 + 1 | 0;
        while (true) {
            if ($var18 <= var$8) {
                continue main;
            }
            $var17 = $var17 + 1 | 0;
            if ($var17 > var$12)
                break;
            $var18 = var$6;
        }
        b: {
            if (!$var16) {
                if (!$var14)
                    break b;
                if (!$var15)
                    break b;
            }
            $var5 = $var5 / 2.0;
        }
        return $var5;
    case 10:
        $tmp = nms_World_getBlockMetadata($par1World, $var17, $par3, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var19 > 0)
            $var20 = 3.0;
        if (!($var17 == $par2 && $var18 == $par4))
            $var20 = $var20 / 4.0;
        $var5 = $var5 + $var20;
        $var18 = $var18 + 1 | 0;
        while (true) {
            if ($var18 <= var$8) {
                $ptr = 9;
                continue main;
            }
            $var17 = $var17 + 1 | 0;
            if ($var17 > var$12)
                break;
            $var18 = var$6;
        }
        c: {
            if (!$var16) {
                if (!$var14)
                    break c;
                if (!$var15)
                    break c;
            }
            $var5 = $var5 / 2.0;
        }
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $var6, var$8, $var7, $var17, $var8, var$12, $var9, $var10, $var11, $var12, $var13, $var19, $var14, $var15, $var16, $var18, $var20, $ptr);
},
nms_BlockCrops_getRenderType = $this => {
    return 6;
},
nms_BlockCrops_getSeedItem = $this => {
    nms_Item_$callClinit();
    return nms_Item_seeds.$itemID0;
},
nms_BlockCrops_getCropItem = $this => {
    nms_Item_$callClinit();
    return nms_Item_wheat.$itemID0;
},
nms_BlockCrops_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, $var8, $var9, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$8 = 0;
        $ptr = 1;
    case 1:
        a: {
            nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, var$8);
            if ($rt_suspending()) {
                break main;
            }
            if (!$par1World.$isRemote && $par5 >= 7) {
                $var8 = 3 + $par7 | 0;
                $var9 = 0;
                var$11 = 17;
                var$12 = 14;
                while (true) {
                    if ($var9 >= $var8)
                        break a;
                    var$13 = $par1World.$rand0;
                    var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$13.$seed = var$14;
                    $par7 = Long_lo(Long_shru(var$14, var$11));
                    while (true) {
                        var$8 = $par7 % 15 | 0;
                        if ((($par7 - var$8 | 0) + var$12 | 0) >= 0)
                            break;
                        var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$13.$seed = var$14;
                        $par7 = Long_lo(Long_shru(var$14, var$11));
                    }
                    if (var$8 <= $par5) {
                        var$13 = new nms_ItemStack;
                        var$15 = $this.$getSeedItem();
                        nms_ItemStack_$callClinit();
                        var$13.$itemID = var$15;
                        var$13.$stackSize = 1;
                        var$13.$itemDamage = 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var9 = $var9 + 1 | 0;
                }
            }
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$13);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var9 = $var9 + 1 | 0;
            if ($var9 >= $var8)
                break;
            var$13 = $par1World.$rand0;
            var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$13.$seed = var$14;
            $par7 = Long_lo(Long_shru(var$14, var$11));
            while (true) {
                var$8 = $par7 % 15 | 0;
                if ((($par7 - var$8 | 0) + var$12 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$14;
                $par7 = Long_lo(Long_shru(var$14, var$11));
            }
            if (var$8 > $par5)
                continue;
            else {
                var$13 = new nms_ItemStack;
                var$15 = $this.$getSeedItem();
                nms_ItemStack_$callClinit();
                var$13.$itemID = var$15;
                var$13.$stackSize = 1;
                var$13.$itemDamage = 0;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, var$8, $var8, $var9, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockCrops_idDropped = ($this, $par1, $par2Random, $par3) => {
    return $par1 != 7 ? $this.$getSeedItem() : $this.$getCropItem();
},
nms_BlockCrops_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockFarmland = $rt_classWithoutFields(nms_Block),
nms_BlockFarmland__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_ground);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.9375;
    $this.$maxZ1 = 1.0;
    nms_Block_lightOpacity.data[$this.$blockID] = 255;
},
nms_BlockFarmland__init_ = var_0 => {
    let var_1 = new nms_BlockFarmland();
    nms_BlockFarmland__init_0(var_1, var_0);
    return var_1;
},
nms_BlockFarmland_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$6 = $par2 + 0 | 0;
    var$7 = $par3 + 0 | 0;
    var$8 = $par4 + 0 | 0;
    var$9 = $par2 + 1 | 0;
    var$10 = $par3 + 1 | 0;
    var$11 = $par4 + 1 | 0;
    $par2 = var$5.$nextPoolIndex;
    $par1World = var$5.$listAABB;
    $par4 = $par1World.$size0;
    $par3 = $rt_compare($par2, $par4);
    if ($par3 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$7;
        var$12.$minZ0 = var$8;
        var$12.$maxX0 = var$9;
        var$12.$maxY = var$10;
        var$12.$maxZ0 = var$11;
        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
        var$13 = $par1World.$array.data;
        $par3 = $par1World.$size0;
        $par1World.$size0 = $par3 + 1 | 0;
        var$13[$par3] = var$12;
        $par1World.$modCount = $par1World.$modCount + 1 | 0;
    } else if ($par2 >= 0 && $par3 < 0) {
        var$12 = $par1World.$array.data[$par2];
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$7;
        var$12.$minZ0 = var$8;
        var$12.$maxX0 = var$9;
        var$12.$maxY = var$10;
        var$12.$maxZ0 = var$11;
    } else {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
    return var$12;
},
nms_BlockFarmland_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFarmland_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFarmland_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockFarmland_isWaterNearby($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6) {
            var$7 = 7;
            $var6 = 2;
            $ptr = 2;
            continue main;
        }
        $var6 = $par3 + 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $tmp = nms_World_canLightningStrikeAt($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            $ptr = 4;
            continue main;
        }
        var$7 = 7;
        $var6 = 2;
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 <= 0) {
            $ptr = 5;
            continue main;
        }
        var$7 = $var6 - 1 | 0;
        $var6 = 2;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_BlockFarmland_isCropsNearby($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6)
            return;
        nms_Block_$callClinit();
        var$8 = nms_Block_dirt.$blockID;
        $var6 = 0;
        var$7 = 3;
        $ptr = 7;
        continue main;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$8, $var6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, $ptr);
},
nms_BlockFarmland_onFallenUpon = ($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            var$7 = $par1World.$rand0;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            if (Long_lo(Long_shru(var$8, 24)) / 1.6777216E7 < $par6 - 0.5) {
                if (!($par5Entity instanceof nms_EntityPlayer)) {
                    a: {
                        var$7 = ($par1World.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                        var$9 = $rt_s(1417);
                        $par5Entity = $rt_s(1417);
                        if (var$9 !== $par5Entity) {
                            var$10 = var$9.$nativeString.length;
                            var$11 = $par5Entity.$nativeString.length;
                            if (var$10 < var$11)
                                var$11 = var$10;
                            var$12 = 0;
                            b: {
                                while (true) {
                                    if (var$12 >= var$11) {
                                        var$9.$nativeString.length;
                                        $par5Entity.$nativeString.length;
                                        break a;
                                    }
                                    if (var$12 < 0)
                                        break b;
                                    if (var$12 >= var$9.$nativeString.length)
                                        break b;
                                    var$13 = var$9.$nativeString.charCodeAt(var$12);
                                    if (var$12 < 0)
                                        break;
                                    if (var$12 >= $par5Entity.$nativeString.length)
                                        break;
                                    if (var$13 - $par5Entity.$nativeString.charCodeAt(var$12) | 0)
                                        break a;
                                    var$12 = var$12 + 1 | 0;
                                }
                                $par1World = new jl_StringIndexOutOfBoundsException;
                                $par1World.$suppressionEnabled = 1;
                                $par1World.$writableStackTrace = 1;
                                $rt_throw($par1World);
                            }
                            $par1World = new jl_StringIndexOutOfBoundsException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                    }
                    var$9 = $rt_s(1417);
                    c: {
                        d: {
                            e: while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break c;
                                }
                                f: {
                                    $par5Entity = var$7.$key0;
                                    if (var$9 === $par5Entity)
                                        var$12 = 0;
                                    else {
                                        var$10 = var$9.$nativeString.length;
                                        var$11 = $par5Entity.$nativeString.length;
                                        if (var$10 < var$11)
                                            var$11 = var$10;
                                        var$10 = 0;
                                        while (true) {
                                            if (var$10 >= var$11) {
                                                var$12 = var$9.$nativeString.length - $par5Entity.$nativeString.length | 0;
                                                break f;
                                            }
                                            if (var$10 < 0)
                                                break d;
                                            if (var$10 >= var$9.$nativeString.length)
                                                break d;
                                            var$13 = var$9.$nativeString.charCodeAt(var$10);
                                            if (var$10 < 0)
                                                break e;
                                            if (var$10 >= $par5Entity.$nativeString.length)
                                                break e;
                                            var$12 = var$13 - $par5Entity.$nativeString.charCodeAt(var$10) | 0;
                                            if (var$12)
                                                break;
                                            var$10 = var$10 + 1 | 0;
                                        }
                                    }
                                }
                                if (!var$12)
                                    break c;
                                var$7 = var$12 >= 0 ? var$7.$right : var$7.$left;
                            }
                            $par1World = new jl_StringIndexOutOfBoundsException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                        $par1World = new jl_StringIndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    $par5Entity = var$7 === null ? null : var$7.$value2;
                    if (!($par5Entity === null ? 0 : $par5Entity.$valueBoolean))
                        return;
                }
                nms_Block_$callClinit();
                var$12 = nms_Block_dirt.$blockID;
                var$10 = 0;
                var$13 = 3;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$12, var$10, var$13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $par6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockFarmland_isCropsNearby = ($this, $par1World, $par2, $par3, $par4) => {
    let $var6, var$6, var$7, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par2 - 0 | 0;
        var$6 = $par2 + 0 | 0;
        var$7 = $par4 - 0 | 0;
        $par4 = $par4 + 0 | 0;
        $par3 = $par3 + 1 | 0;
        while ($var6 <= var$6) {
            $var7 = var$7;
            if ($var7 <= $par4) {
                $ptr = 1;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        nms_Block_$callClinit();
        if ($var8 != nms_Block_crops.$blockID && $var8 != nms_Block_melonStem.$blockID && $var8 != nms_Block_pumpkinStem.$blockID && $var8 != nms_Block_potato.$blockID && $var8 != nms_Block_carrot.$blockID) {
            $var7 = $var7 + 1 | 0;
            while (true) {
                if ($var7 <= $par4) {
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 > var$6)
                    break;
                $var7 = var$7;
            }
            return 0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var6, var$6, var$7, $var7, $var8, $ptr);
},
nms_BlockFarmland_isWaterNearby = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, $var6, $var7, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par2 - 4 | 0;
        var$6 = $par2 + 4 | 0;
        var$7 = $par3 + 1 | 0;
        var$8 = $par4 - 4 | 0;
        $par2 = $par4 + 4 | 0;
        while ($var5 <= var$6) {
            $var6 = $par3;
            while ($var6 <= var$7) {
                $var7 = var$8;
                if ($var7 <= $par2) {
                    $ptr = 1;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            nms_Material_$callClinit();
            var$11 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$11 = nms_Block_blocksList.data[$par4].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$11 === nms_Material_water)
            return 1;
        $var7 = $var7 + 1 | 0;
        a: while (true) {
            if ($var7 <= $par2) {
                continue main;
            }
            $var6 = $var6 + 1 | 0;
            while ($var6 > var$7) {
                $var5 = $var5 + 1 | 0;
                if ($var5 > var$6)
                    break a;
                $var6 = $par3;
            }
            $var7 = var$8;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, var$8, $var6, $var7, var$11, $ptr);
},
nms_BlockFarmland_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5 = $par3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            $var6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var6 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (!$var6.$isSolid())
            return;
        nms_Block_$callClinit();
        $par5 = nms_Block_dirt.$blockID;
        var$7 = 0;
        var$8 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, var$8, $ptr);
},
nms_BlockFarmland_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_dirt.$idDropped(0, $par2Random, $par3);
};
function nms_BlockFurnace() {
    let a = this; nms_BlockContainer.call(a);
    a.$furnaceRand = null;
    a.$isActive = 0;
}
let nms_BlockFurnace_keepFurnaceInventory = 0,
nms_BlockFurnace__init_0 = ($this, $par1, $par2) => {
    let var$3, var$4;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isBlockContainer = 1;
    var$3 = new nle_EaglercraftRandom;
    var$4 = Long_fromNumber(performance.now() * 1000000.0);
    var$3.$seed = Long_fromInt(69);
    var$3.$haveNextNextGaussian = 0;
    var$3.$seed = var$4;
    $this.$furnaceRand = var$3;
    $this.$isActive = $par2;
},
nms_BlockFurnace__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockFurnace();
    nms_BlockFurnace__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockFurnace_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_furnaceIdle.$blockID;
},
nms_BlockFurnace_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockFurnace_setDefaultDirection($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockFurnace_setDefaultDirection = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, var$8, $var8, $var9, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var5 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$8 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = 3;
        nms_Block_$callClinit();
        var$11 = nms_Block_opaqueCubeLookup.data;
        if (var$11[$var5] && !var$11[$var6])
            $var9 = 3;
        if (var$11[$var6] && !var$11[$var5])
            $var9 = 2;
        if (var$11[$var7] && !var$11[$var8])
            $var9 = 5;
        if (var$11[$var8] && !var$11[$var7])
            $var9 = 4;
        $var5 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, var$8, $var8, $var9, var$11, $ptr);
},
nms_BlockFurnace_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        if ($var10 === null)
            return 1;
        $par6 = ($par5EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
        $par5EntityPlayer.$currentWindowId = $par6;
        var$11 = $par5EntityPlayer.$playerNetServerHandler;
        $par1World = new nms_Packet100OpenWindow;
        var$12 = $var10.$field_94130_e;
        var$12 = !(var$12 !== null && var$12.$nativeString.length > 0 ? 1 : 0) ? $rt_s(1418) : $var10.$field_94130_e;
        $par4 = $var10.$furnaceItemStacks.data.length;
        var$13 = $var10.$field_94130_e;
        $par3 = var$13 !== null && var$13.$nativeString.length > 0 ? 1 : 0;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1World.$windowId2 = $par6;
            $par1World.$inventoryType = 2;
            $par1World.$windowTitle = var$12;
            $par1World.$slotsCount0 = $par4;
            $par1World.$useProvidedWindowTitle = $par3;
            if ($par1World instanceof nms_Packet3Chat) {
                var$12 = $par1World;
                $par3 = var$11.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break a;
                if ($par3 == 1 && !var$12.$isServer)
                    break a;
            }
            try {
                var$12 = var$11.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerFurnace__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
        continue main;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$12, $par1World);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerFurnace__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
    case 3:
        $par1World.$addCraftingToCrafters($par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, var$11, var$12, var$13, $ptr);
},
nms_BlockFurnace_updateFurnaceBlockState = ($par0, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$par0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_BlockFurnace_keepFurnaceInventory = 1;
        if (!$par0) {
            nms_Block_$callClinit();
            var$8 = nms_Block_furnaceIdle.$blockID;
            $par0 = 0;
            var$9 = 3;
            $ptr = 3;
            continue main;
        }
        nms_Block_$callClinit();
        var$8 = nms_Block_furnaceBurning.$blockID;
        $par0 = 0;
        var$9 = 3;
        $ptr = 4;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$8, $par0, var$9);
        if ($rt_suspending()) {
            break main;
        }
        nms_BlockFurnace_keepFurnaceInventory = 0;
        $par0 = 2;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$8, $par0, var$9);
        if ($rt_suspending()) {
            break main;
        }
        nms_BlockFurnace_keepFurnaceInventory = 0;
        $par0 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, $par0);
        if ($rt_suspending()) {
            break main;
        }
        if ($var6 === null)
            return;
        $var6.$tileEntityInvalid = 0;
        $ptr = 6;
    case 6:
        nms_World_setBlockTileEntity($par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0, $par1World, $par2, $par3, $par4, $var5, $var6, var$8, var$9, $ptr);
},
nms_BlockFurnace_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityFurnace;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    $par1World.$furnaceItemStacks = $rt_createArray(nms_ItemStack, 3);
    return $par1World;
},
nms_BlockFurnace_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, var$8, $var7, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        var$8 = var$7 | 0;
        if (var$7 < var$8)
            var$8 = var$8 - 1 | 0;
        $var7 = var$8 & 3;
        if (!$var7) {
            var$8 = 2;
            var$10 = 2;
            $ptr = 1;
            continue main;
        }
        if ($var7 == 1) {
            var$8 = 5;
            var$10 = 2;
            $ptr = 2;
            continue main;
        }
        if ($var7 == 2) {
            var$8 = 3;
            var$10 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 3) {
            $var7 = 4;
            var$8 = 2;
            $ptr = 4;
            continue main;
        }
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase === null)
            $var7 = 0;
        else {
            a: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$11 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == var$10) {
                    b: {
                        var$12 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$12) {
                            if ($rt_s(918) === var$12)
                                $var7 = 1;
                            else if (!(var$12 instanceof jl_String))
                                $var7 = 0;
                            else {
                                var$12 = var$12;
                                $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break b;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if (!($par5EntityLivingBase === null ? 0 : 1))
                $var7 = 0;
            else {
                c: {
                    var$13 = $par6ItemStack.$stackTagCompound;
                    $par5EntityLivingBase = var$13.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(918).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == var$10) {
                        d: {
                            var$12 = $par5EntityLivingBase.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $var7 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    var$12 = var$12;
                                    $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break d;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if (!($par5EntityLivingBase === null ? 0 : 1)) {
                    $par5EntityLivingBase = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par5EntityLivingBase.$name = $rt_s(918);
                    else
                        $par5EntityLivingBase.$name = $rt_s(3);
                    var$12 = new ju_HashMap;
                    $var7 = ju_HashMap_calculateCapacity(16);
                    var$12.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                    var$14 = var$11.data;
                    var$12.$elementData = var$11;
                    var$12.$loadFactor = 0.75;
                    var$12.$threshold = var$14.length * 0.75 | 0;
                    $par5EntityLivingBase.$tagMap = var$12;
                } else {
                    $par5EntityLivingBase = var$13.$tagMap;
                    if ($rt_s(918) === null) {
                        $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                        while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(918).$hashCode1;
                        var$11 = $par5EntityLivingBase.$elementData.data;
                        $par5EntityLivingBase = var$11[var$8 & (var$11.length - 1 | 0)];
                        while ($par5EntityLivingBase !== null) {
                            if ($par5EntityLivingBase.$origKeyHash == var$8) {
                                f: {
                                    var$12 = $par5EntityLivingBase.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            $var7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break f;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0;
                }
                g: {
                    $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                var$15 = var$11[var$8 & (var$11.length - 1 | 0)];
                while (var$15 !== null) {
                    if (var$15.$origKeyHash == var$8) {
                        h: {
                            $par5EntityLivingBase = var$15.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    $var7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    $var7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break h;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$15 = var$15.$next3;
                }
                $var7 = var$15 === null ? 0 : 1;
            }
        }
        if (!$var7)
            return;
        $ptr = 5;
        continue main;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 1) {
            var$8 = 5;
            var$10 = 2;
            $ptr = 2;
            continue main;
        }
        if ($var7 == 2) {
            var$8 = 3;
            var$10 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 3) {
            $var7 = 4;
            var$8 = 2;
            $ptr = 4;
            continue main;
        }
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase === null)
            $var7 = 0;
        else {
            i: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(918).$nativeString.length)
                            break i;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$11 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == var$10) {
                    j: {
                        var$12 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$12) {
                            if ($rt_s(918) === var$12)
                                $var7 = 1;
                            else if (!(var$12 instanceof jl_String))
                                $var7 = 0;
                            else {
                                var$12 = var$12;
                                $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break j;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if (!($par5EntityLivingBase === null ? 0 : 1))
                $var7 = 0;
            else {
                k: {
                    var$13 = $par6ItemStack.$stackTagCompound;
                    $par5EntityLivingBase = var$13.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(918).$nativeString.length)
                                break k;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(918).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == var$10) {
                        l: {
                            var$12 = $par5EntityLivingBase.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $var7 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    var$12 = var$12;
                                    $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break l;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if (!($par5EntityLivingBase === null ? 0 : 1)) {
                    $par5EntityLivingBase = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par5EntityLivingBase.$name = $rt_s(918);
                    else
                        $par5EntityLivingBase.$name = $rt_s(3);
                    var$12 = new ju_HashMap;
                    $var7 = ju_HashMap_calculateCapacity(16);
                    var$12.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                    var$14 = var$11.data;
                    var$12.$elementData = var$11;
                    var$12.$loadFactor = 0.75;
                    var$12.$threshold = var$14.length * 0.75 | 0;
                    $par5EntityLivingBase.$tagMap = var$12;
                } else {
                    $par5EntityLivingBase = var$13.$tagMap;
                    if ($rt_s(918) === null) {
                        $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                        while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    } else {
                        m: {
                            if (!$rt_s(918).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(918).$nativeString.length)
                                        break m;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(918).$hashCode1;
                        var$11 = $par5EntityLivingBase.$elementData.data;
                        $par5EntityLivingBase = var$11[var$8 & (var$11.length - 1 | 0)];
                        while ($par5EntityLivingBase !== null) {
                            if ($par5EntityLivingBase.$origKeyHash == var$8) {
                                n: {
                                    var$12 = $par5EntityLivingBase.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            $var7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break n;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0;
                }
                o: {
                    $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(919).$nativeString.length)
                                break o;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                var$15 = var$11[var$8 & (var$11.length - 1 | 0)];
                while (var$15 !== null) {
                    if (var$15.$origKeyHash == var$8) {
                        p: {
                            $par5EntityLivingBase = var$15.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    $var7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    $var7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break p;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$15 = var$15.$next3;
                }
                $var7 = var$15 === null ? 0 : 1;
            }
        }
        if (!$var7)
            return;
        $ptr = 5;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 2) {
            var$8 = 3;
            var$10 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 3) {
            $var7 = 4;
            var$8 = 2;
            $ptr = 4;
            continue main;
        }
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase === null)
            $var7 = 0;
        else {
            q: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(918).$nativeString.length)
                            break q;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$11 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == var$10) {
                    a: {
                        var$12 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$12) {
                            if ($rt_s(918) === var$12)
                                $var7 = 1;
                            else if (!(var$12 instanceof jl_String))
                                $var7 = 0;
                            else {
                                var$12 = var$12;
                                $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break a;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if (!($par5EntityLivingBase === null ? 0 : 1))
                $var7 = 0;
            else {
                r: {
                    var$13 = $par6ItemStack.$stackTagCompound;
                    $par5EntityLivingBase = var$13.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(918).$nativeString.length)
                                break r;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(918).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == var$10) {
                        c: {
                            var$12 = $par5EntityLivingBase.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $var7 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    var$12 = var$12;
                                    $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break c;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if (!($par5EntityLivingBase === null ? 0 : 1)) {
                    $par5EntityLivingBase = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par5EntityLivingBase.$name = $rt_s(918);
                    else
                        $par5EntityLivingBase.$name = $rt_s(3);
                    var$12 = new ju_HashMap;
                    $var7 = ju_HashMap_calculateCapacity(16);
                    var$12.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                    var$14 = var$11.data;
                    var$12.$elementData = var$11;
                    var$12.$loadFactor = 0.75;
                    var$12.$threshold = var$14.length * 0.75 | 0;
                    $par5EntityLivingBase.$tagMap = var$12;
                } else {
                    $par5EntityLivingBase = var$13.$tagMap;
                    if ($rt_s(918) === null) {
                        $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                        while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    } else {
                        s: {
                            if (!$rt_s(918).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(918).$nativeString.length)
                                        break s;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(918).$hashCode1;
                        var$11 = $par5EntityLivingBase.$elementData.data;
                        $par5EntityLivingBase = var$11[var$8 & (var$11.length - 1 | 0)];
                        while ($par5EntityLivingBase !== null) {
                            if ($par5EntityLivingBase.$origKeyHash == var$8) {
                                e: {
                                    var$12 = $par5EntityLivingBase.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            $var7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break e;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0;
                }
                t: {
                    $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(919).$nativeString.length)
                                break t;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                var$15 = var$11[var$8 & (var$11.length - 1 | 0)];
                while (var$15 !== null) {
                    if (var$15.$origKeyHash == var$8) {
                        g: {
                            $par5EntityLivingBase = var$15.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    $var7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    $var7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break g;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$15 = var$15.$next3;
                }
                $var7 = var$15 === null ? 0 : 1;
            }
        }
        if (!$var7)
            return;
        $ptr = 5;
        continue main;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 3) {
            $var7 = 4;
            var$8 = 2;
            $ptr = 4;
            continue main;
        }
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase === null)
            $var7 = 0;
        else {
            u: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(918).$nativeString.length)
                            break u;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$11 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == var$10) {
                    v: {
                        var$12 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$12) {
                            if ($rt_s(918) === var$12)
                                $var7 = 1;
                            else if (!(var$12 instanceof jl_String))
                                $var7 = 0;
                            else {
                                var$12 = var$12;
                                $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break v;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if (!($par5EntityLivingBase === null ? 0 : 1))
                $var7 = 0;
            else {
                w: {
                    var$13 = $par6ItemStack.$stackTagCompound;
                    $par5EntityLivingBase = var$13.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(918).$nativeString.length)
                                break w;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(918).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == var$10) {
                        x: {
                            var$12 = $par5EntityLivingBase.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $var7 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    var$12 = var$12;
                                    $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break x;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if (!($par5EntityLivingBase === null ? 0 : 1)) {
                    $par5EntityLivingBase = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par5EntityLivingBase.$name = $rt_s(918);
                    else
                        $par5EntityLivingBase.$name = $rt_s(3);
                    var$12 = new ju_HashMap;
                    $var7 = ju_HashMap_calculateCapacity(16);
                    var$12.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                    var$14 = var$11.data;
                    var$12.$elementData = var$11;
                    var$12.$loadFactor = 0.75;
                    var$12.$threshold = var$14.length * 0.75 | 0;
                    $par5EntityLivingBase.$tagMap = var$12;
                } else {
                    $par5EntityLivingBase = var$13.$tagMap;
                    if ($rt_s(918) === null) {
                        $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                        while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    } else {
                        y: {
                            if (!$rt_s(918).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(918).$nativeString.length)
                                        break y;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(918).$hashCode1;
                        var$11 = $par5EntityLivingBase.$elementData.data;
                        $par5EntityLivingBase = var$11[var$8 & (var$11.length - 1 | 0)];
                        while ($par5EntityLivingBase !== null) {
                            if ($par5EntityLivingBase.$origKeyHash == var$8) {
                                z: {
                                    var$12 = $par5EntityLivingBase.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            $var7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break z;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0;
                }
                ba: {
                    $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(919).$nativeString.length)
                                break ba;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                var$15 = var$11[var$8 & (var$11.length - 1 | 0)];
                while (var$15 !== null) {
                    if (var$15.$origKeyHash == var$8) {
                        bb: {
                            $par5EntityLivingBase = var$15.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    $var7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    $var7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break bb;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$15 = var$15.$next3;
                }
                $var7 = var$15 === null ? 0 : 1;
            }
        }
        if (!$var7)
            return;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase === null)
            $var7 = 0;
        else {
            bc: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(918).$nativeString.length)
                            break bc;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(918).$hashCode1;
            var$11 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == var$10) {
                    bd: {
                        var$12 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$12) {
                            if ($rt_s(918) === var$12)
                                $var7 = 1;
                            else if (!(var$12 instanceof jl_String))
                                $var7 = 0;
                            else {
                                var$12 = var$12;
                                $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break bd;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if (!($par5EntityLivingBase === null ? 0 : 1))
                $var7 = 0;
            else {
                be: {
                    var$13 = $par6ItemStack.$stackTagCompound;
                    $par5EntityLivingBase = var$13.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(918).$nativeString.length)
                                break be;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(918).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[var$10 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == var$10) {
                        bf: {
                            var$12 = $par5EntityLivingBase.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $var7 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    var$12 = var$12;
                                    $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break bf;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if (!($par5EntityLivingBase === null ? 0 : 1)) {
                    $par5EntityLivingBase = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par5EntityLivingBase.$name = $rt_s(918);
                    else
                        $par5EntityLivingBase.$name = $rt_s(3);
                    var$12 = new ju_HashMap;
                    $var7 = ju_HashMap_calculateCapacity(16);
                    var$12.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                    var$14 = var$11.data;
                    var$12.$elementData = var$11;
                    var$12.$loadFactor = 0.75;
                    var$12.$threshold = var$14.length * 0.75 | 0;
                    $par5EntityLivingBase.$tagMap = var$12;
                } else {
                    $par5EntityLivingBase = var$13.$tagMap;
                    if ($rt_s(918) === null) {
                        $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                        while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    } else {
                        bg: {
                            if (!$rt_s(918).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(918).$nativeString.length)
                                        break bg;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(918).$hashCode1;
                        var$11 = $par5EntityLivingBase.$elementData.data;
                        $par5EntityLivingBase = var$11[var$8 & (var$11.length - 1 | 0)];
                        while ($par5EntityLivingBase !== null) {
                            if ($par5EntityLivingBase.$origKeyHash == var$8) {
                                bh: {
                                    var$12 = $par5EntityLivingBase.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            $var7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var7 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break bh;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                        }
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0;
                }
                bi: {
                    $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(919).$nativeString.length)
                                break bi;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                var$15 = var$11[var$8 & (var$11.length - 1 | 0)];
                while (var$15 !== null) {
                    if (var$15.$origKeyHash == var$8) {
                        bj: {
                            $par5EntityLivingBase = var$15.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    $var7 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    $var7 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break bj;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$15 = var$15.$next3;
                }
                $var7 = var$15 === null ? 0 : 1;
            }
        }
        if (!$var7)
            return;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        var$12 = $par1World;
        nms_Item_$callClinit();
        var$16 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par1World = $par6ItemStack.$stackTagCompound;
        if ($par1World !== null) {
            bc: {
                $par1World = $par1World.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break bc;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$11 = $par1World.$elementData.data;
            var$13 = var$11[$par3 & (var$11.length - 1 | 0)];
            while (var$13 !== null) {
                if (var$13.$origKeyHash == $par3) {
                    bd: {
                        $par1World = var$13.$key;
                        if ($rt_s(918) !== $par1World) {
                            if ($rt_s(918) === $par1World)
                                $par2 = 1;
                            else if (!($par1World instanceof jl_String))
                                $par2 = 0;
                            else {
                                $par1World = $par1World;
                                $par2 = $rt_s(918).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break bd;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                var$13 = var$13.$next3;
            }
            if (var$13 === null ? 0 : 1) {
                be: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    $par6ItemStack = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break be;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$11 = $par6ItemStack.$elementData.data;
                $par6ItemStack = var$11[$par4 & (var$11.length - 1 | 0)];
                while ($par6ItemStack !== null) {
                    if ($par6ItemStack.$origKeyHash == $par4) {
                        bf: {
                            var$15 = $par6ItemStack.$key;
                            if ($rt_s(918) !== var$15) {
                                if ($rt_s(918) === var$15)
                                    $par2 = 1;
                                else if (!(var$15 instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    var$15 = var$15;
                                    $par2 = $rt_s(918).$nativeString !== var$15.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break bf;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par6ItemStack = $par6ItemStack.$next3;
                }
                if (!($par6ItemStack === null ? 0 : 1)) {
                    var$15 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$15.$name = $rt_s(918);
                    else
                        var$15.$name = $rt_s(3);
                    $par1World = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par1World.$elementCount = 0;
                    var$14 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$11 = var$14.data;
                    $par1World.$elementData = var$14;
                    $par1World.$loadFactor = 0.75;
                    $par1World.$threshold = var$11.length * 0.75 | 0;
                    var$15.$tagMap = $par1World;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        bg: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break bg;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = $rt_s(918).$hashCode1;
                        var$11 = $par1World.$elementData.data;
                        $par1World = var$11[$par4 & (var$11.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par4) {
                                bh: {
                                    $par6ItemStack = $par1World.$key;
                                    if ($rt_s(918) !== $par6ItemStack) {
                                        if ($rt_s(918) === $par6ItemStack)
                                            $par2 = 1;
                                        else if (!($par6ItemStack instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            $par6ItemStack = $par6ItemStack;
                                            $par2 = $rt_s(918).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break bh;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    }
                    var$15 = $par1World === null ? null : $par1World.$value0;
                }
                bi: {
                    $par5EntityLivingBase = var$15.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break bi;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$11 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$11[$par4 & (var$11.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        bj: {
                            $par6ItemStack = $par5EntityLivingBase.$key;
                            if ($rt_s(919) !== $par6ItemStack) {
                                if ($rt_s(919) === $par6ItemStack)
                                    $par2 = 1;
                                else if (!($par6ItemStack instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par6ItemStack = $par6ItemStack;
                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break bj;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    bk: {
                        $par5EntityLivingBase = var$15.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break bk;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$11 = $par5EntityLivingBase.$elementData.data;
                    $par5EntityLivingBase = var$11[$par4 & (var$11.length - 1 | 0)];
                    while ($par5EntityLivingBase !== null) {
                        if ($par5EntityLivingBase.$origKeyHash == $par4) {
                            bl: {
                                $par6ItemStack = $par5EntityLivingBase.$key;
                                if ($rt_s(919) !== $par6ItemStack) {
                                    if ($rt_s(919) === $par6ItemStack)
                                        $par2 = 1;
                                    else if (!($par6ItemStack instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par6ItemStack = $par6ItemStack;
                                        $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break bl;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                    }
                    if (!($par5EntityLivingBase === null ? 0 : 1))
                        var$16 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$15.$tagMap;
                        if ($rt_s(919) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            bm: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break bm;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(919).$hashCode1;
                            var$11 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$11[$par4 & (var$11.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    bn: {
                                        $par6ItemStack = $par5EntityLivingBase.$key;
                                        if ($rt_s(919) !== $par6ItemStack) {
                                            if ($rt_s(919) === $par6ItemStack)
                                                $par2 = 1;
                                            else if (!($par6ItemStack instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par6ItemStack = $par6ItemStack;
                                                $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break bn;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        var$16 = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                    }
                }
            }
        }
        var$12.$field_94130_e = var$16;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, var$8, $var7, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_BlockFurnace_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let var$7, $var7, $var8, var$10, var$11, var$12, var$13, var$14, var$15, $var9, var$17, $var10, var$19, $var11, $var12, var$22, var$23, var$24, var$25, $var13, var$27, $var14, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();$var14 = $thread.pop();var$27 = $thread.pop();$var13 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$19 = $thread.pop();$var10 = $thread.pop();var$17 = $thread.pop();$var9 = $thread.pop();var$15
        = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!nms_BlockFurnace_keepFurnaceInventory) {
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $var7 = var$7;
        if ($var7 === null) {
            $ptr = 1;
            continue main;
        }
        $var8 = 0;
        $par6 = 24;
        var$10 = 17;
        var$11 = $par2;
        var$12 = 138;
        var$13 = $par3;
        var$14 = $par4;
        while (true) {
            var$15 = $var7.$furnaceItemStacks.data;
            if ($var8 >= var$15.length)
                break;
            $var9 = var$15[$var8];
            if ($var9 !== null) {
                var$7 = $this.$furnaceRand;
                var$17 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$17;
                $var10 = Long_lo(Long_shru(var$17, $par6)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$19 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$19;
                $var11 = Long_lo(Long_shru(var$19, $par6)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$17 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$17;
                $var12 = Long_lo(Long_shru(var$17, $par6)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$22 = var$11 + $var10;
                var$23 = var$13 + $var11;
                var$24 = var$14 + $var12;
                var$25 = $var9.$stackSize;
                if (var$25 > 0) {
                    var$7 = $this.$furnaceRand;
                    var$17 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$17;
                    $var13 = Long_lo(Long_shru(var$17, var$10));
                    while (true) {
                        var$27 = $var13 % 21 | 0;
                        if ((($var13 - var$27 | 0) + 20 | 0) >= 0)
                            break;
                        var$17 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$17;
                        $var13 = Long_lo(Long_shru(var$17, var$10));
                    }
                    $var13 = var$27 + 10 | 0;
                    if ($var13 > var$25)
                        $var13 = var$25;
                    $var9.$stackSize = var$25 - $var13 | 0;
                    $var14 = new nms_EntityItem;
                    var$7 = new nms_ItemStack;
                    var$27 = $var9.$itemID;
                    var$29 = $var9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$7.$itemID = var$27;
                    var$7.$stackSize = $var13;
                    var$7.$itemDamage = var$29;
                    if (var$29 < 0)
                        var$7.$itemDamage = 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $var8 = $var8 + 1 | 0;
        }
        $ptr = 3;
    case 3:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    case 4:
        nms_EntityItem__init_($var14, $par1World, var$22, var$23, var$24);
        if ($rt_suspending()) {
            break main;
        }
        var$30 = $var14.$dataWatcher;
        var$31 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$12];
        if (var$32 === null) {
            var$31 = var$31.$elementData.data[0];
            while (var$31 !== null && var$31.$key !== null) {
                var$31 = var$31.$next3;
            }
        } else {
            var$27 = var$32.$value;
            var$15 = var$31.$elementData.data;
            var$31 = var$15[var$27 & (var$15.length - 1 | 0)];
            while (var$31 !== null) {
                if (var$31.$origKeyHash == var$27) {
                    var$33 = var$31.$key;
                    if (var$32 !== var$33 && !jl_Integer_equals(var$32, var$33) ? 0 : 1)
                        break;
                }
                var$31 = var$31.$next3;
            }
        }
        var$33 = var$31 === null ? null : var$31.$value0;
        if (!(var$7 !== var$33.$watchedObject ? 0 : 1)) {
            var$33.$watchedObject = var$7;
            var$33.$watched = 1;
            var$30.$objectChanged = 1;
        }
        var$31 = $var14.$dataWatcher;
        var$33 = var$31.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[var$12];
        if (var$7 === null) {
            var$33 = var$33.$elementData.data[0];
            while (var$33 !== null && var$33.$key !== null) {
                var$33 = var$33.$next3;
            }
        } else {
            $var13 = var$7.$value;
            var$15 = var$33.$elementData.data;
            var$33 = var$15[$var13 & (var$15.length - 1 | 0)];
            while (var$33 !== null) {
                if (var$33.$origKeyHash == $var13) {
                    var$32 = var$33.$key;
                    if (var$7 !== var$32 && !jl_Integer_equals(var$7, var$32) ? 0 : 1)
                        break;
                }
                var$33 = var$33.$next3;
            }
        }
        (var$33 === null ? null : var$33.$value0).$watched = 1;
        var$31.$objectChanged = 1;
        if ($var9.$stackTagCompound === null ? 0 : 1) {
            var$33 = nms_EntityItem_getEntityItem($var14);
            var$30 = $var9.$stackTagCompound;
            var$32 = new nms_NBTTagCompound;
            var$7 = var$30.$name;
            if (var$7 === null)
                var$7 = $rt_s(3);
            var$32.$name = var$7;
            var$7 = new ju_HashMap;
            var$29 = ju_HashMap_calculateCapacity(16);
            var$7.$elementCount = 0;
            var$34 = $rt_createArray(ju_HashMap$HashEntry, var$29);
            var$15 = var$34.data;
            var$7.$elementData = var$34;
            var$7.$loadFactor = 0.75;
            var$7.$threshold = var$15.length * 0.75 | 0;
            var$32.$tagMap = var$7;
            var$31 = var$30.$tagMap;
            if (var$31.$cachedKeySet === null) {
                var$7 = new ju_HashMap$1;
                var$7.$this$0 = var$31;
                var$31.$cachedKeySet = var$7;
            }
            var$35 = var$31.$cachedKeySet.$iterator();
            while (var$35.$hasNext()) {
                var$36 = var$35.$next();
                var$7 = var$30.$tagMap;
                if (var$36 === null) {
                    var$7 = var$7.$elementData.data[0];
                    while (var$7 !== null && var$7.$key !== null) {
                        var$7 = var$7.$next3;
                    }
                } else {
                    a: {
                        if (!var$36.$hashCode1) {
                            var$29 = 0;
                            while (true) {
                                if (var$29 >= var$36.$nativeString.length)
                                    break a;
                                var$36.$hashCode1 = (31 * var$36.$hashCode1 | 0) + var$36.$nativeString.charCodeAt(var$29) | 0;
                                var$29 = var$29 + 1 | 0;
                            }
                        }
                    }
                    $var13 = var$36.$hashCode1;
                    var$15 = var$7.$elementData.data;
                    var$7 = var$15[$var13 & (var$15.length - 1 | 0)];
                    while (var$7 !== null) {
                        if (var$7.$origKeyHash == $var13) {
                            b: {
                                var$31 = var$7.$key;
                                if (var$36 !== var$31) {
                                    if (var$36 === var$31)
                                        var$29 = 1;
                                    else if (!(var$31 instanceof jl_String))
                                        var$29 = 0;
                                    else {
                                        var$31 = var$31;
                                        var$29 = var$36.$nativeString !== var$31.$nativeString ? 0 : 1;
                                    }
                                    if (!var$29) {
                                        var$29 = 0;
                                        break b;
                                    }
                                }
                                var$29 = 1;
                            }
                            if (var$29)
                                break;
                        }
                        var$7 = var$7.$next3;
                    }
                }
                var$7 = var$7 === null ? null : var$7.$value0;
                var$7 = var$7.$copy();
                var$31 = var$32.$tagMap;
                if (var$36 !== null)
                    var$7.$name = var$36;
                else
                    var$7.$name = $rt_s(3);
                ju_HashMap_putImpl(var$31, var$36, var$7);
            }
            var$33.$stackTagCompound = var$32;
        }
        $var14.$motionX = nle_EaglercraftRandom_nextGaussian($this.$furnaceRand) * 0.05000000074505806;
        $var14.$motionY = nle_EaglercraftRandom_nextGaussian($this.$furnaceRand) * 0.05000000074505806 + 0.20000000298023224;
        $var14.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$furnaceRand) * 0.05000000074505806;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var14);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            var$25 = $var9.$stackSize;
            if (var$25 > 0) {
                var$7 = $this.$furnaceRand;
                var$17 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$17;
                $var13 = Long_lo(Long_shru(var$17, var$10));
                while (true) {
                    var$27 = $var13 % 21 | 0;
                    if ((($var13 - var$27 | 0) + 20 | 0) >= 0)
                        break;
                    var$17 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$17;
                    $var13 = Long_lo(Long_shru(var$17, var$10));
                }
                $var13 = var$27 + 10 | 0;
                if ($var13 > var$25)
                    $var13 = var$25;
                $var9.$stackSize = var$25 - $var13 | 0;
                $var14 = new nms_EntityItem;
                var$7 = new nms_ItemStack;
                var$27 = $var9.$itemID;
                var$29 = $var9.$itemDamage;
                nms_ItemStack_$callClinit();
                var$7.$itemID = var$27;
                var$7.$stackSize = $var13;
                var$7.$itemDamage = var$29;
                if (var$29 < 0)
                    var$7.$itemDamage = 0;
                $ptr = 4;
                continue main;
            }
            while (true) {
                $var8 = $var8 + 1 | 0;
                var$15 = $var7.$furnaceItemStacks.data;
                if ($var8 >= var$15.length)
                    break c;
                $var9 = var$15[$var8];
                if ($var9 === null)
                    continue;
                else
                    break;
            }
            var$7 = $this.$furnaceRand;
            var$17 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$17;
            $var10 = Long_lo(Long_shru(var$17, $par6)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$19 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$19;
            $var11 = Long_lo(Long_shru(var$19, $par6)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$17 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$17;
            $var12 = Long_lo(Long_shru(var$17, $par6)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$22 = var$11 + $var10;
            var$23 = var$13 + $var11;
            var$24 = var$14 + $var12;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, var$7, $var7, $var8, var$10, var$11, var$12, var$13, var$14, var$15, $var9, var$17, $var10, var$19, $var11, $var12, var$22, var$23, var$24, var$25, $var13, var$27, $var14, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, $ptr);
},
nms_BlockFurnace_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockFurnace_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return nms_Container_calcRedstoneFromInventory($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
};
function nms_BlockSign() {
    let a = this; nms_BlockContainer.call(a);
    a.$signEntityClass = null;
    a.$isFreestanding = 0;
}
let nms_BlockSign__init_0 = ($this, $par1, $par2Class, $par3) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    $this.$isBlockContainer = 1;
    $this.$isFreestanding = $par3;
    $this.$signEntityClass = $par2Class;
    $this.$minX1 = 0.25;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.25;
    $this.$maxX1 = 0.75;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 0.75;
},
nms_BlockSign__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_BlockSign();
    nms_BlockSign__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_BlockSign_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockSign_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isFreestanding)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        if ($var5 == 2) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.28125;
            $this.$minZ1 = 0.875;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.78125;
            $this.$maxZ1 = 1.0;
        }
        if ($var5 == 3) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.28125;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.78125;
            $this.$maxZ1 = 0.125;
        }
        if ($var5 == 4) {
            $this.$minX1 = 0.875;
            $this.$minY1 = 0.28125;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.78125;
            $this.$maxZ1 = 1.0;
        }
        if ($var5 == 5) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.28125;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.125;
            $this.$maxY0 = 0.78125;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockSign_getRenderType = $this => {
    return (-1);
},
nms_BlockSign_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockSign_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    return 1;
},
nms_BlockSign_isOpaqueCube = $this => {
    return 0;
},
nms_BlockSign_createNewTileEntity = ($this, $par1World) => {
    let $var3, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        try {
            $par1World = $this.$signEntityClass;
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var3 = $$je;
            } else {
                throw $$e;
            }
        }
        $par1World = new jl_RuntimeException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $par1World.$cause = $var3;
        $rt_throw($par1World);
    case 1:
        a: {
            try {
                $tmp = jl_Class_newInstance($par1World);
                if ($rt_suspending()) {
                    break main;
                }
                $par1World = $tmp;
                $par1World = $par1World;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            return $par1World;
        }
        $par1World = new jl_RuntimeException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $par1World.$cause = $var3;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $var3, $ptr);
},
nms_BlockSign_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_sign.$itemID0;
},
nms_BlockSign_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        if (!$this.$isFreestanding) {
            $ptr = 1;
            continue main;
        }
        $par5 = $par3 - 1 | 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var6 = 1;
        if ($var7 == 2) {
            $par5 = $par4 + 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 3) {
            $par5 = $par4 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var7 == 4) {
            $par5 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 9;
            continue main;
        }
        if (!$var6)
            return;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (!var$8.$isSolid())
            $var6 = 1;
        if (!$var6)
            return;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (var$8.$isSolid())
            $var6 = 0;
        if ($var7 == 3) {
            $par5 = $par4 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var7 == 4) {
            $par5 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 9;
            continue main;
        }
        if (!$var6)
            return;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (var$8.$isSolid())
            $var6 = 0;
        if ($var7 == 4) {
            $par5 = $par2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 9;
            continue main;
        }
        if (!$var6)
            return;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (var$8.$isSolid())
            $var6 = 0;
        if ($var7 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 9;
            continue main;
        }
        if (!$var6)
            return;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = 0;
        var$9 = 1.0;
        $ptr = 7;
    case 7:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$9, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var6 = 0;
        $var7 = 3;
        $ptr = 8;
    case 8:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (var$8.$isSolid())
            $var6 = 0;
        if (!$var6)
            return;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, var$9, $ptr);
};
function nms_TileEntity() {
    let a = this; jl_Object.call(a);
    a.$worldObj2 = null;
    a.$xCoord0 = 0;
    a.$yCoord0 = 0;
    a.$zCoord0 = 0;
    a.$tileEntityInvalid = 0;
    a.$blockMetadata = 0;
    a.$blockType = null;
}
let nms_TileEntity_nameToClassMap = null,
nms_TileEntity_classToNameMap = null,
nms_TileEntity_$callClinit = () => {
    nms_TileEntity_$callClinit = $rt_eraseClinit(nms_TileEntity);
    nms_TileEntity__clinit_();
},
nms_TileEntity__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntity__init_0 = () => {
    let var_0 = new nms_TileEntity();
    nms_TileEntity__init_(var_0);
    return var_0;
},
nms_TileEntity_getWorldObj = $this => {
    return $this.$worldObj2;
},
nms_TileEntity_setWorldObj = ($this, $par1World) => {
    $this.$worldObj2 = $par1World;
},
nms_TileEntity_hasWorldObj = $this => {
    return $this.$worldObj2 === null ? 0 : 1;
},
nms_TileEntity_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(349) !== var$2) {
                            if ($rt_s(349) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(349).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$4 = (var$7 === null ? null : var$7.$value0).$data;
    }
    e: {
        $this.$xCoord0 = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(351).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$8) {
                    l: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(351) !== var$2) {
                            if ($rt_s(351) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(351).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$zCoord0 = var$4;
},
nms_TileEntity_writeToNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    nms_TileEntity_$callClinit();
    $var2 = nms_TileEntity_classToNameMap;
    var$3 = $this.constructor;
    if (var$3 === null)
        var$4 = null;
    else {
        var$4 = var$3.classObject;
        if (var$4 === null) {
            var$4 = new jl_Class;
            var$4.$platformClass = var$3;
            var$3.classObject = var$4;
        }
    }
    if (var$4 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$3 = var$4;
        if (!var$3.$id$)
            var$3.$id$ = $rt_nextId();
        var$5 = var$4.$id$;
        var$6 = $var2.$elementData.data;
        $var2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$5) {
                var$3 = $var2.$key;
                if (var$4 !== var$3 && !(var$4 !== var$3 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 !== null) {
        var$7 = $par1NBTTagCompound.$tagMap;
        var$4 = new nms_NBTTagString;
        var$4.$name = $rt_s(914);
        var$4.$data1 = $var2;
        ju_HashMap_putImpl(var$7, $rt_s(914), var$4);
        var$8 = $this.$xCoord0;
        var$4 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagInt;
        var$3.$name = $rt_s(349);
        var$3.$data = var$8;
        ju_HashMap_putImpl(var$4, $rt_s(349), var$3);
        var$8 = $this.$yCoord0;
        var$4 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagInt;
        var$3.$name = $rt_s(350);
        var$3.$data = var$8;
        ju_HashMap_putImpl(var$4, $rt_s(350), var$3);
        var$8 = $this.$zCoord0;
        var$3 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagInt;
        $par1NBTTagCompound.$name = $rt_s(351);
        $par1NBTTagCompound.$data = var$8;
        ju_HashMap_putImpl(var$3, $rt_s(351), $par1NBTTagCompound);
        return;
    }
    $par1NBTTagCompound = new jl_RuntimeException;
    var$3 = $this.constructor;
    if (var$3 === null)
        $var2 = null;
    else {
        $var2 = var$3.classObject;
        if ($var2 === null) {
            $var2 = new jl_Class;
            $var2.$platformClass = var$3;
            var$3.classObject = $var2;
        }
    }
    if ($var2 === null)
        var$3 = $rt_s(1);
    else {
        var$3 = (!($var2.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !($var2.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
        if ($var2.$name1 === null)
            $var2.$name1 = $rt_str($var2.$platformClass.$meta.name);
        var$4 = $var2.$name1;
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert0($var2, $var2.$length0, var$3);
        var$8 = $var2.$length0;
        if (var$4 === null)
            var$4 = $rt_s(1);
        jl_StringBuilder_insert0($var2, var$8, var$4);
        var$3 = new jl_String;
        var$6 = $var2.$buffer;
        var$9 = var$6.data;
        var$10 = $var2.$length0;
        var$5 = var$9.length;
        if (var$10 >= 0 && var$10 <= (var$5 - 0 | 0))
            var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$10);
        else {
            $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
            jl_Exception__init_($par1NBTTagCompound);
            $rt_throw($par1NBTTagCompound);
        }
    }
    $var2 = new jl_StringBuilder;
    $var2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($var2, $var2.$length0, var$3);
    jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(1419));
    var$3 = new jl_String;
    var$6 = $var2.$buffer;
    var$9 = var$6.data;
    var$10 = $var2.$length0;
    var$5 = var$9.length;
    if (var$10 >= 0 && var$10 <= (var$5 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$10);
        $par1NBTTagCompound.$suppressionEnabled = 1;
        $par1NBTTagCompound.$writableStackTrace = 1;
        $par1NBTTagCompound.$message = var$3;
        $rt_throw($par1NBTTagCompound);
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntity_updateEntity = $this => {
    return;
},
nms_TileEntity_createAndLoadEntity = $par0NBTTagCompound => {
    let $var1, var$3, $var2, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();$par0NBTTagCompound = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_TileEntity_$callClinit();
        $var1 = null;
        a: {
            try {
                var$3 = $var1;
                $var2 = ju_HashMap_get(nms_TileEntity_nameToClassMap, nms_NBTTagCompound_getString($par0NBTTagCompound, $rt_s(914)));
                if ($var2 === null)
                    break a;
                var$3 = $var1;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var3);
            $var1 = var$3;
        }
        if ($var1 === null) {
            b: {
                nles_IntegratedServer_$callClinit();
                var$3 = nles_IntegratedServer_logger;
                $var3 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(914).$nativeString.length)
                            break b;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(914).$hashCode1;
            var$8 = $var3.$elementData.data;
            $var3 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$7) {
                    c: {
                        var$9 = $var3.$key;
                        if ($rt_s(914) !== var$9) {
                            if ($rt_s(914) === var$9)
                                var$6 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$9 = var$9;
                                var$6 = $rt_s(914).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break c;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                $var3 = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $par0NBTTagCompound = $par0NBTTagCompound.$elementData.data[0];
                    while ($par0NBTTagCompound !== null && $par0NBTTagCompound.$key !== null) {
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                } else {
                    d: {
                        if (!$rt_s(914).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(914).$nativeString.length)
                                    break d;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(914).$hashCode1;
                    var$8 = $par0NBTTagCompound.$elementData.data;
                    $par0NBTTagCompound = var$8[var$7 & (var$8.length - 1 | 0)];
                    while ($par0NBTTagCompound !== null) {
                        if ($par0NBTTagCompound.$origKeyHash == var$7) {
                            e: {
                                $var3 = $par0NBTTagCompound.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$6 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$6 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break e;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(1420));
            var$6 = $par0NBTTagCompound.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$6, $var3);
            $var2 = new jl_String;
            var$8 = $par0NBTTagCompound.$buffer;
            var$10 = var$8.data;
            var$11 = $par0NBTTagCompound.$length0;
            var$7 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$7 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString(var$8.data, 0, var$11);
                $var3 = var$3.$logger;
                $par0NBTTagCompound = jul_Level_WARNING;
                var$3 = new jul_LogRecord;
                var$3.$level = $par0NBTTagCompound;
                var$3.$message0 = $var2;
                var$3.$millis = jl_System_currentTimeMillis();
                var$12 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$12, Long_fromInt(1));
                var$3.$sequenceNumber = var$12;
                var$3.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log($var3, var$3);
                return $var1;
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par0NBTTagCompound);
        }
        $ptr = 2;
        continue main;
    case 1:
        a: {
            try {
                $tmp = jl_Class_newInstance($var2);
                if ($rt_suspending()) {
                    break main;
                }
                $var1 = $tmp;
                $var1 = $var1;
                var$3 = $var1;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var3);
            $var1 = var$3;
        }
        if ($var1 === null) {
            f: {
                nles_IntegratedServer_$callClinit();
                var$3 = nles_IntegratedServer_logger;
                $var3 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(914).$nativeString.length)
                            break f;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(914).$hashCode1;
            var$8 = $var3.$elementData.data;
            $var3 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$7) {
                    g: {
                        var$9 = $var3.$key;
                        if ($rt_s(914) !== var$9) {
                            if ($rt_s(914) === var$9)
                                var$6 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$9 = var$9;
                                var$6 = $rt_s(914).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break g;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                $var3 = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $par0NBTTagCompound = $par0NBTTagCompound.$elementData.data[0];
                    while ($par0NBTTagCompound !== null && $par0NBTTagCompound.$key !== null) {
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                } else {
                    h: {
                        if (!$rt_s(914).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(914).$nativeString.length)
                                    break h;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(914).$hashCode1;
                    var$8 = $par0NBTTagCompound.$elementData.data;
                    $par0NBTTagCompound = var$8[var$7 & (var$8.length - 1 | 0)];
                    while ($par0NBTTagCompound !== null) {
                        if ($par0NBTTagCompound.$origKeyHash == var$7) {
                            i: {
                                $var3 = $par0NBTTagCompound.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$6 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$6 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break i;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(1420));
            var$6 = $par0NBTTagCompound.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$6, $var3);
            $var2 = new jl_String;
            var$8 = $par0NBTTagCompound.$buffer;
            var$10 = var$8.data;
            var$11 = $par0NBTTagCompound.$length0;
            var$7 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$7 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString(var$8.data, 0, var$11);
                $var3 = var$3.$logger;
                $par0NBTTagCompound = jul_Level_WARNING;
                var$3 = new jul_LogRecord;
                var$3.$level = $par0NBTTagCompound;
                var$3.$message0 = $var2;
                var$3.$millis = jl_System_currentTimeMillis();
                var$12 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$12, Long_fromInt(1));
                var$3.$sequenceNumber = var$12;
                var$3.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log($var3, var$3);
                return $var1;
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par0NBTTagCompound);
        }
        $ptr = 2;
    case 2:
        $var1.$readFromNBT($par0NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        return $var1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0NBTTagCompound, $var1, var$3, $var2, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_TileEntity_onInventoryChanged = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj2;
        if (var$1 === null)
            return;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata(var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockMetadata = var$2;
        var$1 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        $ptr = 2;
    case 2:
        nms_World_markTileEntityChunkModified(var$1, var$2, var$3, var$4, $this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            var$1 = $this.$worldObj2;
            var$2 = $this.$xCoord0;
            var$3 = $this.$yCoord0;
            var$4 = $this.$zCoord0;
            $ptr = 3;
            continue main;
        }
        var$6 = $this.$blockType;
        if (var$6 === null)
            return;
        var$1 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        var$7 = var$6.$blockID;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId(var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$5[var$2];
        var$6 = $this.$blockType;
        if (var$6 === null)
            return;
        var$1 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        var$7 = var$6.$blockID;
        $ptr = 4;
    case 4:
        nms_World_func_96440_m(var$1, var$2, var$3, var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_TileEntity_getBlockType = $this => {
    let var$1, var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$blockType !== null)
            return $this.$blockType;
        nms_Block_$callClinit();
        var$1 = nms_Block_blocksList.data;
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $this.$blockType = var$1[var$3];
        return $this.$blockType;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $ptr);
},
nms_TileEntity_getDescriptionPacket = $this => {
    return null;
},
nms_TileEntity_isInvalid = $this => {
    return $this.$tileEntityInvalid;
},
nms_TileEntity_invalidate = $this => {
    $this.$tileEntityInvalid = 1;
},
nms_TileEntity_validate = $this => {
    $this.$tileEntityInvalid = 0;
},
nms_TileEntity_receiveClientEvent = ($this, $par1, $par2) => {
    return 0;
},
nms_TileEntity_updateContainingBlockInfo = $this => {
    $this.$blockType = null;
    $this.$blockMetadata = (-1);
},
nms_TileEntity__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$1 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        var$1.$elementCount = 0;
        var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$4 = var$3.data;
        var$1.$elementData = var$3;
        var$1.$loadFactor = 0.75;
        var$1.$threshold = var$4.length * 0.75 | 0;
        nms_TileEntity_nameToClassMap = var$1;
        var$1 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        var$1.$elementCount = 0;
        var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$4 = var$3.data;
        var$1.$elementData = var$3;
        var$1.$loadFactor = 0.75;
        var$1.$threshold = var$4.length * 0.75 | 0;
        nms_TileEntity_classToNameMap = var$1;
        var$5 = $rt_s(1421);
        nms_TileEntity_$callClinit();
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break a;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            b: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break b;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    c: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityFurnace));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityFurnace), var$5);
        var$5 = $rt_s(1423);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break c;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            d: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break d;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    e: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityChest));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityChest), var$5);
        var$5 = $rt_s(1424);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break e;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            f: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break f;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    g: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityEnderChest));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityEnderChest), var$5);
        var$5 = $rt_s(1425);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break g;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            h: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break h;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    i: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityRecordPlayer));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityRecordPlayer), var$5);
        var$5 = $rt_s(1426);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break i;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            j: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break j;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    k: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityDispenser));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityDispenser), var$5);
        var$5 = $rt_s(1427);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break k;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            l: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break l;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    m: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityDropper));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityDropper), var$5);
        var$5 = $rt_s(1428);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break m;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            n: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break n;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    o: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntitySign));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntitySign), var$5);
        var$5 = $rt_s(1429);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break o;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            p: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break p;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    q: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityMobSpawner));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityMobSpawner), var$5);
        var$5 = $rt_s(1430);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break q;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            r: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break r;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    s: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityNote));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityNote), var$5);
        var$5 = $rt_s(1431);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break s;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            t: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 !== var$8) {
                        if (var$8 instanceof jl_String) {
                            var$8 = var$8;
                            var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                        } else
                            var$2 = 0;
                    } else
                        var$2 = 1;
                    if (!var$2) {
                        var$2 = 0;
                        break t;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    u: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityPiston));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityPiston), var$5);
        var$5 = $rt_s(1432);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break u;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            v: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break v;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (var$6 === null ? 0 : 1) {
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    w: {
        ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityBrewingStand));
        ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityBrewingStand), var$5);
        var$5 = $rt_s(1433);
        var$6 = nms_TileEntity_nameToClassMap;
        if (!var$5.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$5.$nativeString.length)
                    break w;
                var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$7 = var$5.$hashCode1;
    var$4 = var$6.$elementData.data;
    var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$6 !== null) {
        if (var$6.$origKeyHash == var$7) {
            x: {
                var$8 = var$6.$key;
                if (var$5 !== var$8) {
                    if (var$5 === var$8)
                        var$2 = 1;
                    else if (!(var$8 instanceof jl_String))
                        var$2 = 0;
                    else {
                        var$8 = var$8;
                        var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (!var$2) {
                        var$2 = 0;
                        break x;
                    }
                }
                var$2 = 1;
            }
            if (var$2)
                break;
        }
        var$6 = var$6.$next3;
    }
    if (!(var$6 === null ? 0 : 1)) {
        y: {
            ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityEnchantmentTable));
            ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityEnchantmentTable), var$5);
            var$5 = $rt_s(1434);
            var$6 = nms_TileEntity_nameToClassMap;
            if (!var$5.$hashCode1) {
                var$2 = 0;
                while (true) {
                    if (var$2 >= var$5.$nativeString.length)
                        break y;
                    var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                    var$2 = var$2 + 1 | 0;
                }
            }
        }
        var$7 = var$5.$hashCode1;
        var$4 = var$6.$elementData.data;
        var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$7) {
                z: {
                    var$8 = var$6.$key;
                    if (var$5 !== var$8) {
                        if (var$5 === var$8)
                            var$2 = 1;
                        else if (var$8 instanceof jl_String) {
                            var$8 = var$8;
                            var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                        } else
                            var$2 = 0;
                        if (!var$2) {
                            var$2 = 0;
                            break z;
                        }
                    }
                    var$2 = 1;
                }
                if (var$2)
                    break;
            }
            var$6 = var$6.$next3;
        }
        if (!(var$6 === null ? 0 : 1)) {
            ba: {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityEndPortal));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityEndPortal), var$5);
                var$5 = $rt_s(1435);
                var$6 = nms_TileEntity_nameToClassMap;
                if (!var$5.$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= var$5.$nativeString.length)
                            break ba;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$7 = var$5.$hashCode1;
            var$4 = var$6.$elementData.data;
            var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    bb: {
                        var$8 = var$6.$key;
                        if (var$5 !== var$8) {
                            if (var$5 !== var$8) {
                                if (var$8 instanceof jl_String) {
                                    var$8 = var$8;
                                    var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                                } else
                                    var$2 = 0;
                            } else
                                var$2 = 1;
                            if (!var$2) {
                                var$2 = 0;
                                break bb;
                            }
                        }
                        var$2 = 1;
                    }
                    if (var$2)
                        break;
                }
                var$6 = var$6.$next3;
            }
            if (var$6 === null ? 0 : 1) {
                var$1 = new jl_IllegalArgumentException;
                var$6 = new jl_StringBuilder;
                var$6.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
                var$2 = var$6.$length0;
                if (var$5 === null)
                    var$5 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
                var$5 = new jl_String;
                var$4 = var$6.$buffer;
                var$3 = var$4.data;
                var$9 = var$6.$length0;
                var$7 = var$3.length;
                if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
                    var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    var$1.$message = var$5;
                    $rt_throw(var$1);
                }
                var$1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$1);
                $rt_throw(var$1);
            }
            bc: {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityCommandBlock));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityCommandBlock), var$5);
                var$5 = $rt_s(1436);
                var$6 = nms_TileEntity_nameToClassMap;
                if (!var$5.$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= var$5.$nativeString.length)
                            break bc;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$7 = var$5.$hashCode1;
            var$4 = var$6.$elementData.data;
            var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    bd: {
                        var$8 = var$6.$key;
                        if (var$5 !== var$8) {
                            if (var$5 !== var$8) {
                                if (var$8 instanceof jl_String) {
                                    var$8 = var$8;
                                    var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                                } else
                                    var$2 = 0;
                            } else
                                var$2 = 1;
                            if (!var$2) {
                                var$2 = 0;
                                break bd;
                            }
                        }
                        var$2 = 1;
                    }
                    if (var$2)
                        break;
                }
                var$6 = var$6.$next3;
            }
            if (var$6 === null ? 0 : 1) {
                var$1 = new jl_IllegalArgumentException;
                var$6 = new jl_StringBuilder;
                var$6.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
                var$2 = var$6.$length0;
                if (var$5 === null)
                    var$5 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
                var$5 = new jl_String;
                var$4 = var$6.$buffer;
                var$3 = var$4.data;
                var$9 = var$6.$length0;
                var$7 = var$3.length;
                if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
                    var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    var$1.$message = var$5;
                    $rt_throw(var$1);
                }
                var$1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$1);
                $rt_throw(var$1);
            }
            be: {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityBeacon));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityBeacon), var$5);
                var$5 = $rt_s(1437);
                var$6 = nms_TileEntity_nameToClassMap;
                if (!var$5.$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= var$5.$nativeString.length)
                            break be;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$7 = var$5.$hashCode1;
            var$4 = var$6.$elementData.data;
            var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    bf: {
                        var$8 = var$6.$key;
                        if (var$5 !== var$8) {
                            if (var$5 === var$8)
                                var$2 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$2 = 0;
                            else {
                                var$8 = var$8;
                                var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$2) {
                                var$2 = 0;
                                break bf;
                            }
                        }
                        var$2 = 1;
                    }
                    if (var$2)
                        break;
                }
                var$6 = var$6.$next3;
            }
            if (var$6 === null ? 0 : 1) {
                var$1 = new jl_IllegalArgumentException;
                var$6 = new jl_StringBuilder;
                var$6.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
                var$2 = var$6.$length0;
                if (var$5 === null)
                    var$5 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
                var$5 = new jl_String;
                var$4 = var$6.$buffer;
                var$3 = var$4.data;
                var$9 = var$6.$length0;
                var$7 = var$3.length;
                if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
                    var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    var$1.$message = var$5;
                    $rt_throw(var$1);
                }
                var$1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$1);
                $rt_throw(var$1);
            }
            bg: {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntitySkull));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntitySkull), var$5);
                var$5 = $rt_s(1438);
                var$6 = nms_TileEntity_nameToClassMap;
                if (!var$5.$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= var$5.$nativeString.length)
                            break bg;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$7 = var$5.$hashCode1;
            var$4 = var$6.$elementData.data;
            var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    bh: {
                        var$8 = var$6.$key;
                        if (var$5 !== var$8) {
                            if (var$5 === var$8)
                                var$2 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$2 = 0;
                            else {
                                var$8 = var$8;
                                var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$2) {
                                var$2 = 0;
                                break bh;
                            }
                        }
                        var$2 = 1;
                    }
                    if (var$2)
                        break;
                }
                var$6 = var$6.$next3;
            }
            if (var$6 === null ? 0 : 1) {
                var$1 = new jl_IllegalArgumentException;
                var$6 = new jl_StringBuilder;
                var$6.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
                var$2 = var$6.$length0;
                if (var$5 === null)
                    var$5 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
                var$5 = new jl_String;
                var$4 = var$6.$buffer;
                var$3 = var$4.data;
                var$9 = var$6.$length0;
                var$7 = var$3.length;
                if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
                    var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    var$1.$message = var$5;
                    $rt_throw(var$1);
                }
                var$1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$1);
                $rt_throw(var$1);
            }
            bi: {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityDaylightDetector));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityDaylightDetector), var$5);
                var$5 = $rt_s(1439);
                var$6 = nms_TileEntity_nameToClassMap;
                if (!var$5.$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= var$5.$nativeString.length)
                            break bi;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$7 = var$5.$hashCode1;
            var$4 = var$6.$elementData.data;
            var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    bj: {
                        var$8 = var$6.$key;
                        if (var$5 !== var$8) {
                            if (var$5 === var$8)
                                var$2 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$2 = 0;
                            else {
                                var$8 = var$8;
                                var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$2) {
                                var$2 = 0;
                                break bj;
                            }
                        }
                        var$2 = 1;
                    }
                    if (var$2)
                        break;
                }
                var$6 = var$6.$next3;
            }
            if (var$6 === null ? 0 : 1) {
                var$1 = new jl_IllegalArgumentException;
                var$6 = new jl_StringBuilder;
                var$6.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
                var$2 = var$6.$length0;
                if (var$5 === null)
                    var$5 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
                var$5 = new jl_String;
                var$4 = var$6.$buffer;
                var$3 = var$4.data;
                var$9 = var$6.$length0;
                var$7 = var$3.length;
                if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
                    var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    var$1.$message = var$5;
                    $rt_throw(var$1);
                }
                var$1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$1);
                $rt_throw(var$1);
            }
            bk: {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityHopper));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityHopper), var$5);
                var$5 = $rt_s(1440);
                var$6 = nms_TileEntity_nameToClassMap;
                if (!var$5.$hashCode1) {
                    var$2 = 0;
                    while (true) {
                        if (var$2 >= var$5.$nativeString.length)
                            break bk;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$2) | 0;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            var$7 = var$5.$hashCode1;
            var$4 = var$6.$elementData.data;
            var$6 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    bl: {
                        var$8 = var$6.$key;
                        if (var$5 !== var$8) {
                            if (var$5 === var$8)
                                var$2 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$2 = 0;
                            else {
                                var$8 = var$8;
                                var$2 = var$5.$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$2) {
                                var$2 = 0;
                                break bl;
                            }
                        }
                        var$2 = 1;
                    }
                    if (var$2)
                        break;
                }
                var$6 = var$6.$next3;
            }
            if (!(var$6 === null ? 0 : 1)) {
                ju_HashMap_putImpl(nms_TileEntity_nameToClassMap, var$5, $rt_cls(nms_TileEntityComparator));
                ju_HashMap_putImpl(nms_TileEntity_classToNameMap, $rt_cls(nms_TileEntityComparator), var$5);
                return;
            }
            var$1 = new jl_IllegalArgumentException;
            var$6 = new jl_StringBuilder;
            var$6.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
            var$2 = var$6.$length0;
            if (var$5 === null)
                var$5 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
            var$5 = new jl_String;
            var$4 = var$6.$buffer;
            var$3 = var$4.data;
            var$9 = var$6.$length0;
            var$7 = var$3.length;
            if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
                var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                var$1.$message = var$5;
                $rt_throw(var$1);
            }
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
        var$1 = new jl_IllegalArgumentException;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
        var$2 = var$6.$length0;
        if (var$5 === null)
            var$5 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
        var$5 = new jl_String;
        var$4 = var$6.$buffer;
        var$3 = var$4.data;
        var$9 = var$6.$length0;
        var$7 = var$3.length;
        if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$5;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$1);
        $rt_throw(var$1);
    }
    var$1 = new jl_IllegalArgumentException;
    var$6 = new jl_StringBuilder;
    var$6.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1422));
    var$2 = var$6.$length0;
    if (var$5 === null)
        var$5 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$2, var$5);
    var$5 = new jl_String;
    var$4 = var$6.$buffer;
    var$3 = var$4.data;
    var$9 = var$6.$length0;
    var$7 = var$3.length;
    if (var$9 >= 0 && var$9 <= (var$7 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$9);
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = var$5;
        $rt_throw(var$1);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$1);
    $rt_throw(var$1);
};
function nms_TileEntitySign() {
    let a = this; nms_TileEntity.call(a);
    a.$signText = null;
    a.$lineBeingEdited = 0;
    a.$isEditable = 0;
    a.$field_142011_d = null;
}
let nms_TileEntitySign__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$signText = $rt_wrapArray(jl_String, [$rt_s(3), $rt_s(3), $rt_s(3), $rt_s(3)]);
    $this.$lineBeingEdited = (-1);
    $this.$isEditable = 1;
},
nms_TileEntitySign__init_0 = () => {
    let var_0 = new nms_TileEntitySign();
    nms_TileEntitySign__init_(var_0);
    return var_0;
},
nms_TileEntitySign_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$signText.data[0];
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagString;
    var$4.$name = $rt_s(1441);
    var$4.$data1 = var$2;
    if (var$2 === null) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(177);
        $rt_throw(var$5);
    }
    ju_HashMap_putImpl(var$3, $rt_s(1441), var$4);
    var$2 = $this.$signText.data[1];
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagString;
    var$4.$name = $rt_s(1442);
    var$4.$data1 = var$2;
    if (var$2 === null) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(177);
        $rt_throw(var$5);
    }
    ju_HashMap_putImpl(var$3, $rt_s(1442), var$4);
    var$2 = $this.$signText.data[2];
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagString;
    var$4.$name = $rt_s(1443);
    var$4.$data1 = var$2;
    if (var$2 === null) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(177);
        $rt_throw(var$5);
    }
    ju_HashMap_putImpl(var$3, $rt_s(1443), var$4);
    var$2 = $this.$signText.data[3];
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagString;
    $par1NBTTagCompound.$name = $rt_s(1444);
    $par1NBTTagCompound.$data1 = var$2;
    if (var$2 !== null) {
        ju_HashMap_putImpl(var$4, $rt_s(1444), $par1NBTTagCompound);
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    var$5.$message = $rt_s(177);
    $rt_throw(var$5);
},
nms_TileEntitySign_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, $var2_0, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $this.$isEditable = 0;
    nms_TileEntity_readFromNBT($this, $par1NBTTagCompound);
    $var2 = 0;
    a: {
        while ($var2 < 4) {
            var$3 = $this.$signText;
            $var2_0 = $var2 + 1 | 0;
            var$5 = new jl_StringBuilder;
            var$5.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(1445));
            jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $var2_0, 10);
            var$6 = new jl_String;
            var$7 = var$5.$buffer;
            var$8 = var$7.data;
            var$9 = var$5.$length0;
            var$10 = var$8.length;
            if (var$9 < 0)
                break a;
            if (var$9 > (var$10 - 0 | 0))
                break a;
            b: {
                var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                var$5 = $par1NBTTagCompound.$tagMap;
                if (!var$6.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= var$6.$nativeString.length)
                            break b;
                        var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$10 = var$6.$hashCode1;
            var$7 = var$5.$elementData.data;
            var$11 = var$7[var$10 & (var$7.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$10) {
                    c: {
                        var$5 = var$11.$key;
                        if (var$6 !== var$5) {
                            if (var$6 === var$5)
                                var$9 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$9 = 0;
                            else {
                                var$5 = var$5;
                                var$9 = var$6.$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$9) {
                                var$9 = 0;
                                break c;
                            }
                        }
                        var$9 = 1;
                    }
                    if (var$9)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (!(var$11 === null ? 0 : 1))
                var$5 = $rt_s(3);
            else {
                var$5 = $par1NBTTagCompound.$tagMap;
                if (var$6 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    d: {
                        if (!var$6.$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= var$6.$nativeString.length)
                                    break d;
                                var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$12 = var$6.$hashCode1;
                    var$7 = var$5.$elementData.data;
                    var$5 = var$7[var$12 & (var$7.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$12) {
                            e: {
                                var$13 = var$5.$key;
                                if (var$6 !== var$13) {
                                    if (var$6 === var$13)
                                        var$9 = 1;
                                    else if (!(var$13 instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        var$13 = var$13;
                                        var$9 = var$6.$nativeString !== var$13.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break e;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$5 = (var$5 === null ? null : var$5.$value0).$data1;
            }
            var$3.data[$var2] = var$5;
            if ($this.$signText.data[$var2].$nativeString.length > 15) {
                var$7 = $this.$signText.data;
                var$7[$var2] = jl_String_substring(var$7[$var2], 0, 15);
            }
            $var2 = $var2_0;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntitySign_getDescriptionPacket = $this => {
    let $var1;
    $var1 = $rt_createArray(jl_String, 4);
    jl_System_fastArraycopy($this.$signText, 0, $var1, 0, 4);
    return nms_Packet130UpdateSign__init_1($this.$xCoord0, $this.$yCoord0, $this.$zCoord0, $var1);
},
nms_BlockDoor = $rt_classWithoutFields(nms_Block),
nms_BlockDoor__init_0 = ($this, $par1, $par2Material) => {
    nms_Block__init_($this, $par1, $par2Material);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 1.0;
},
nms_BlockDoor__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockDoor();
    nms_BlockDoor__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockDoor_isOpaqueCube = $this => {
    return 0;
},
nms_BlockDoor_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata($this, $par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        return !($var5 & 4) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockDoor_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockDoor_getRenderType = $this => {
    return 7;
},
nms_BlockDoor_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_BlockDoor_setDoorRotation($this, var$5);
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = $par2;
        var$7 = var$6 + $this.$minX1;
        var$8 = $par3;
        var$9 = var$8 + $this.$minY1;
        var$10 = $par4;
        var$11 = var$10 + $this.$minZ1;
        var$6 = var$6 + $this.$maxX1;
        var$8 = var$8 + $this.$maxY0;
        var$10 = var$10 + $this.$maxZ1;
        $par3 = $par1World.$nextPoolIndex;
        var$12 = $par1World.$listAABB;
        $par2 = var$12.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$7;
            var$13.$minY0 = var$9;
            var$13.$minZ0 = var$11;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$8;
            var$13.$maxZ0 = var$10;
            ju_ArrayList_ensureCapacity(var$12, $par2 + 1 | 0);
            var$14 = var$12.$array.data;
            $par2 = var$12.$size0;
            var$12.$size0 = $par2 + 1 | 0;
            var$14[$par2] = var$13;
            var$12.$modCount = var$12.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$13 = var$12.$array.data[$par3];
            var$13.$minX0 = var$7;
            var$13.$minY0 = var$9;
            var$13.$minZ0 = var$11;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$8;
            var$13.$maxZ0 = var$10;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockDoor_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata($this, $par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_BlockDoor_setDoorRotation($this, $par2);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockDoor_setDoorRotation = ($this, $par1) => {
    let $var3, $var4, $var5;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 2.0;
    $this.$maxZ1 = 1.0;
    $var3 = $par1 & 3;
    $var4 = !($par1 & 4) ? 0 : 1;
    $var5 = !($par1 & 16) ? 0 : 1;
    if (!$var3) {
        if (!$var4) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.1875;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else if ($var5) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.8125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.1875;
        }
    } else if ($var3 == 1) {
        if (!$var4) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.1875;
        } else if ($var5) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.1875;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.8125;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
    } else if ($var3 == 2) {
        if (!$var4) {
            $this.$minX1 = 0.8125;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else if ($var5) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.1875;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.8125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
    } else if ($var3 == 3) {
        if (!$var4) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.8125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else if ($var5) {
            $this.$minX1 = 0.8125;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.1875;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
    }
},
nms_BlockDoor_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    return;
},
nms_BlockDoor_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, $var10, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $this.$blockMaterial;
        nms_Material_$callClinit();
        if (var$10 === nms_Material_iron)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $par6 = $var10 & 7 ^ 4;
        if (!($var10 & 8)) {
            $var11 = 2;
            $ptr = 3;
            continue main;
        }
        $var11 = $par3 - 1 | 0;
        $var10 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $var11, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = 0;
        while (true) {
            $var11 = $rt_compare($par6, $par1World.$worldAccesses.$size0);
            if ($var11 >= 0) {
                $par6 = 1003;
                $var11 = 0;
                $ptr = 4;
                continue main;
            }
            if ($par6 < 0)
                break;
            if ($var11 >= 0)
                break;
            $par6 = $par6 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = 0;
        while (true) {
            $var11 = $rt_compare($par6, $par1World.$worldAccesses.$size0);
            if ($var11 >= 0) {
                $par6 = 1003;
                $var11 = 0;
                $ptr = 4;
                continue main;
            }
            if ($par6 < 0)
                break;
            if ($var11 >= 0)
                break;
            $par6 = $par6 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 4:
        nms_World_playAuxSFXAtEntity($par1World, $par5EntityPlayer, $par6, $par2, $par3, $par4, $var11);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, $var10, $var11, $ptr);
},
nms_BlockDoor_onPoweredBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ((!($var6 & 4) ? 0 : 1) == $par5)
            return;
        $var7 = $var6 & 7 ^ 4;
        if (!($var6 & 8)) {
            $par5 = 2;
            $ptr = 3;
            continue main;
        }
        $par5 = $par3 - 1 | 0;
        $var6 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par5, $par4, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        while (true) {
            $var6 = $rt_compare($par5, $par1World.$worldAccesses.$size0);
            if ($var6 >= 0) {
                var$8 = null;
                $par5 = 1003;
                $var6 = 0;
                $ptr = 4;
                continue main;
            }
            if ($par5 < 0)
                break;
            if ($var6 >= 0)
                break;
            $par5 = $par5 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        while (true) {
            $var6 = $rt_compare($par5, $par1World.$worldAccesses.$size0);
            if ($var6 >= 0) {
                var$8 = null;
                $par5 = 1003;
                $var6 = 0;
                $ptr = 4;
                continue main;
            }
            if ($par5 < 0)
                break;
            if ($var6 >= 0)
                break;
            $par5 = $par5 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 4:
        nms_World_playAuxSFXAtEntity($par1World, var$8, $par5, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, $ptr);
},
nms_BlockDoor_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 & 8) {
            $var7 = $par3 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var7 = 0;
        $var8 = $par3 + 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $var7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 != $this.$blockID) {
            $var8 = 0;
            var$9 = 0;
            var$10 = 3;
            $ptr = 4;
            continue main;
        }
        if ($par5 > 0 && $par5 != $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        return;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9 != $this.$blockID) {
            $var7 = 0;
            var$9 = 0;
            var$10 = 3;
            $ptr = 5;
            continue main;
        }
        var$10 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$11 = nms_Block_blocksList.data;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 > 0 && $par5 != $this.$blockID) {
            $ptr = 8;
            continue main;
        }
        return;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var7, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 1;
        var$10 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$11 = nms_Block_blocksList.data;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        var$12 = var$11[var$9];
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$12, var$9)) {
            $var7 = 0;
            var$9 = 0;
            var$10 = 3;
            $ptr = 9;
            continue main;
        }
        if (!$var7) {
            $ptr = 12;
            continue main;
        }
        if ($par1World.$isRemote)
            return;
        $par5 = 0;
        var$13 = 1.0;
        $ptr = 14;
        continue main;
    case 8:
        nms_BlockDoor_onNeighborBlockChange($this, $par1World, $par2, $var7, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var7, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 1;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par2, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9 == $this.$blockID) {
            var$14 = 0;
            var$9 = 0;
            var$10 = 3;
            $ptr = 11;
            continue main;
        }
        if (!$var7) {
            $ptr = 12;
            continue main;
        }
        if ($par1World.$isRemote)
            return;
        $par5 = 0;
        var$13 = 1.0;
        $ptr = 14;
        continue main;
    case 11:
        nms_World_setBlock($par1World, $par2, $var8, $par4, var$14, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var7) {
            $ptr = 12;
            continue main;
        }
        if ($par1World.$isRemote)
            return;
        $par5 = 0;
        var$13 = 1.0;
        $ptr = 14;
        continue main;
    case 12:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!$var7) {
            $ptr = 13;
            continue main;
        }
        $var8 = 1;
        a: {
            if (!$var8) {
                if ($par5 <= 0)
                    break a;
                if (!nms_Block_blocksList.data[$par5].$canProvidePower())
                    break a;
            }
            if ($par5 != $this.$blockID) {
                $ptr = 15;
                continue main;
            }
        }
        return;
    case 13:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var8 = $var7 ? 1 : 0;
        b: {
            if (!$var8) {
                if ($par5 <= 0)
                    break b;
                if (!nms_Block_blocksList.data[$par5].$canProvidePower())
                    break b;
            }
            if ($par5 != $this.$blockID) {
                $ptr = 15;
                continue main;
            }
        }
        return;
    case 14:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var6, var$13, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 15:
        nms_BlockDoor_onPoweredBlockChange($this, $par1World, $par2, $par3, $par4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockDoor_idDropped = ($this, $par1, $par2Random, $par3) => {
    if ($par1 & 8)
        $par1 = 0;
    else {
        $par2Random = $this.$blockMaterial;
        nms_Material_$callClinit();
        if ($par2Random !== nms_Material_iron) {
            nms_Item_$callClinit();
            $par1 = nms_Item_doorWood.$itemID0;
        } else {
            nms_Item_$callClinit();
            $par1 = nms_Item_doorIron.$itemID0;
        }
    }
    return $par1;
},
nms_BlockDoor_collisionRayTrace = ($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Vec3 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_BlockDoor_setDoorRotation($this, var$7);
        $ptr = 2;
    case 2:
        $tmp = nms_Block_collisionRayTrace($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3, var$7, $ptr);
},
nms_BlockDoor_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3 >= 255)
            return 0;
        var$5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$8 = var$6[var$7];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, var$5))
            return 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!(var$5 && !nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable ? 0 : 1))
            return 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !($par2 && !nms_Block_blocksList.data[$par2].$blockMaterial.$replaceable ? 0 : 1) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockDoor_getMobilityFlag = $this => {
    return 1;
},
nms_BlockDoor_getFullMetadata = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $var8, $var9, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = !($var5 & 8) ? 0 : 1;
        if ($var6) {
            $par3 = $par3 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = !($var8 & 1) ? 0 : 1;
        return $var5 & 7 | (!$var6 ? 0 : 8) | (!$var9 ? 0 : 16);
    case 3:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var8 = $var5;
        $var5 = $var7;
        $var9 = !($var8 & 1) ? 0 : 1;
        return $var5 & 7 | (!$var6 ? 0 : 8) | (!$var9 ? 0 : 16);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $var8, $var9, $var7, $ptr);
},
nms_BlockDoor_onBlockHarvested = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer) => {
    let var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6EntityPlayer = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par6EntityPlayer.$capabilities.$isCreativeMode && $par5 & 8) {
            var$7 = $par3 - 1 | 0;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3 != $this.$blockID)
            return;
        $par3 = 0;
        $par5 = 0;
        var$8 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, var$7, $par4, $par3, $par5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer, var$7, var$8, $ptr);
},
nms_BlockLadder = $rt_classWithoutFields(nms_Block),
nms_BlockLadder__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockLadder__init_ = var_0 => {
    let var_1 = new nms_BlockLadder();
    nms_BlockLadder__init_0(var_1, var_0);
    return var_1;
},
nms_BlockLadder_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_BlockLadder_updateLadderBounds($this, var$5);
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = $par2;
        var$7 = var$6 + $this.$minX1;
        var$8 = $par3;
        var$9 = var$8 + $this.$minY1;
        var$10 = $par4;
        var$11 = var$10 + $this.$minZ1;
        var$6 = var$6 + $this.$maxX1;
        var$8 = var$8 + $this.$maxY0;
        var$10 = var$10 + $this.$maxZ1;
        $par3 = $par1World.$nextPoolIndex;
        var$12 = $par1World.$listAABB;
        $par2 = var$12.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$7;
            var$13.$minY0 = var$9;
            var$13.$minZ0 = var$11;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$8;
            var$13.$maxZ0 = var$10;
            ju_ArrayList_ensureCapacity(var$12, $par2 + 1 | 0);
            var$14 = var$12.$array.data;
            $par2 = var$12.$size0;
            var$12.$size0 = $par2 + 1 | 0;
            var$14[$par2] = var$13;
            var$12.$modCount = var$12.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$13 = var$12.$array.data[$par3];
            var$13.$minX0 = var$7;
            var$13.$minY0 = var$9;
            var$13.$minZ0 = var$11;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$8;
            var$13.$maxZ0 = var$10;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockLadder_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_BlockLadder_updateLadderBounds($this, $par2);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockLadder_updateLadderBounds = ($this, $par1) => {
    if ($par1 == 2) {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.875;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
    }
    if ($par1 == 3) {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 0.125;
    }
    if ($par1 == 4) {
        $this.$minX1 = 0.875;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
    }
    if ($par1 == 5) {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 0.125;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
    }
},
nms_BlockLadder_isOpaqueCube = $this => {
    return 0;
},
nms_BlockLadder_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockLadder_getRenderType = $this => {
    return 8;
},
nms_BlockLadder_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        $par4 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockLadder_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par9 && $par5 != 2) {
            if ($par9 && $par5 != 3) {
                if ($par9 && $par5 != 4) {
                    if ($par9 && $par5 != 5)
                        return $par9;
                    $par2 = $par2 - 1 | 0;
                    $ptr = 4;
                    continue main;
                }
                var$10 = $par2 + 1 | 0;
                $ptr = 3;
                continue main;
            }
            var$10 = $par4 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        var$10 = $par4 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 2;
        if ($par9 && $par5 != 3) {
            if ($par9 && $par5 != 4) {
                if ($par9 && $par5 != 5)
                    return $par9;
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            var$10 = $par2 + 1 | 0;
            $ptr = 3;
            continue main;
        }
        var$10 = $par4 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 3;
        if ($par9 && $par5 != 4) {
            if ($par9 && $par5 != 5)
                return $par9;
            $par2 = $par2 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        var$10 = $par2 + 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, var$10, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            $par9 = 4;
        if ($par9 && $par5 != 5)
            return $par9;
        $par2 = $par2 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2)
            $par9 = 5;
        return $par9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, var$10, $ptr);
},
nms_BlockLadder_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = 0;
        if ($var6 == 2) {
            $par5 = $par4 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        if ($var6 == 3) {
            $par5 = $par4 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($var6 == 4) {
            $par5 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var6 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7)
            return;
        $par5 = 0;
        var$8 = 1.0;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            $var7 = 1;
        if ($var6 == 3) {
            $par5 = $par4 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($var6 == 4) {
            $par5 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var6 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7)
            return;
        $par5 = 0;
        var$8 = 1.0;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            $var7 = 1;
        if ($var6 == 4) {
            $par5 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($var6 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7)
            return;
        $par5 = 0;
        var$8 = 1.0;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            $var7 = 1;
        if ($var6 == 5) {
            $par5 = $par2 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7)
            return;
        $par5 = 0;
        var$8 = 1.0;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            $var7 = 1;
        if ($var7)
            return;
        $par5 = 0;
        var$8 = 1.0;
        $ptr = 6;
    case 6:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var6, var$8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var6 = 0;
        $var7 = 3;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, $ptr);
},
nms_BlockLadder_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockRail = $rt_classWithoutFields(nms_BlockRailBase),
nms_BlockRail__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$isPowered = 0;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabTransport;
},
nms_BlockRail__init_0 = var_0 => {
    let var_1 = new nms_BlockRail();
    nms_BlockRail__init_(var_1, var_0);
    return var_1;
},
nms_BlockRail_func_94358_a = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$par7].$canProvidePower()) {
                var$8 = new nms_BlockBaseRailLogic;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_BlockBaseRailLogic__init_(var$8, $this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_BlockBaseRailLogic_getNumberOfAdjacentTracks(var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == 3) {
            $par5 = 0;
            if (!$par1World.$isRemote) {
                var$8 = new nms_BlockBaseRailLogic;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 3:
        nms_BlockBaseRailLogic__init_(var$8, $this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $ptr = 5;
    case 5:
        nms_BlockBaseRailLogic_func_94511_a(var$8, $par2, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, var$8, $ptr);
},
nms_BlockLever = $rt_classWithoutFields(nms_Block),
nms_BlockLever__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockLever__init_ = var_0 => {
    let var_1 = new nms_BlockLever();
    nms_BlockLever__init_0(var_1, var_0);
    return var_1;
},
nms_BlockLever_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockLever_isOpaqueCube = $this => {
    return 0;
},
nms_BlockLever_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockLever_getRenderType = $this => {
    return 12;
},
nms_BlockLever_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par5) {
            var$6 = $par3 + 1 | 0;
            $ptr = 1;
            continue main;
        }
        if ($par5 == 1) {
            var$6 = $par3 - 1 | 0;
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 2) {
            var$6 = $par4 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 == 3) {
            var$6 = $par4 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            var$6 = $par2 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($par5 != 5)
            return 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
        continue main;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 1) {
                var$6 = $par3 - 1 | 0;
                nms_Block_$callClinit();
                var$7 = nms_Block_blocksList.data;
                $ptr = 2;
                continue main;
            }
            if ($par5 == 2) {
                var$6 = $par4 + 1 | 0;
                $ptr = 4;
                continue main;
            }
            if ($par5 == 3) {
                var$6 = $par4 - 1 | 0;
                $ptr = 5;
                continue main;
            }
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 6;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 7;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$9 = var$7[var$8];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$9, var$6))
            $par2 = 1;
        else {
            if ($par5 == 2) {
                var$6 = $par4 + 1 | 0;
                $ptr = 4;
                continue main;
            }
            if ($par5 == 3) {
                var$6 = $par4 - 1 | 0;
                $ptr = 5;
                continue main;
            }
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 6;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 7;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 3) {
                var$6 = $par4 - 1 | 0;
                $ptr = 5;
                continue main;
            }
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 6;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 7;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 5:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 6;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 7;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 7;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 7:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, var$9, $ptr);
};
let nms_BlockLever_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$8 = var$6[var$7];
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, var$5))
            return 1;
        $par3 = $par3 + 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockLever_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var11, $var12, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var11 = $par9 & 8;
        $var12 = (-1);
        if (!$par5) {
            $par9 = $par3 + 1 | 0;
            $ptr = 1;
            continue main;
        }
        if ($par5 == 1) {
            $par9 = $par3 - 1 | 0;
            nms_Block_$callClinit();
            var$12 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 2) {
            $par9 = $par4 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($par5 != 5)
            return $var12 + $var11 | 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
        continue main;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par9, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var12 = 0;
        if ($par5 == 1) {
            $par9 = $par3 - 1 | 0;
            nms_Block_$callClinit();
            var$12 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 2) {
            $par9 = $par4 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($par5 != 5)
            return $var12 + $var11 | 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par9, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        var$14 = var$12[var$13];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par9, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$14, $par9))
            $var12 = 5;
        if ($par5 == 2) {
            $par9 = $par4 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($par5 != 5)
            return $var12 + $var11 | 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var12 = 4;
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($par5 != 5)
            return $var12 + $var11 | 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var12 = 3;
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($par5 != 5)
            return $var12 + $var11 | 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, $par9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var12 = 2;
        if ($par5 != 5)
            return $var12 + $var11 | 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2)
            $var12 = 1;
        return $var12 + $var11 | 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $var11, $var12, var$12, var$13, var$14, $ptr);
},
nms_BlockLever_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let $var7, $var8, $var9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            $var8 = $var7 & 7;
            $var9 = $var7 & 8;
            switch (1) {
                case 0:
                    break;
                case 1:
                    $var7 = 5;
                    break a;
                case 2:
                    $var7 = 4;
                    break a;
                case 3:
                    $var7 = 3;
                    break a;
                case 4:
                    $var7 = 2;
                    break a;
                case 5:
                    $var7 = 1;
                    break a;
                default:
                    $var7 = (-1);
                    break a;
            }
            $var7 = 0;
        }
        if ($var8 == $var7) {
            var$10 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
            $var8 = var$10 | 0;
            if (var$10 < $var8)
                $var8 = $var8 - 1 | 0;
            if ($var8 & 1) {
                $var7 = 6 | $var9;
                $var8 = 2;
                $ptr = 2;
                continue main;
            }
            $var7 = 5 | $var9;
            $var8 = 2;
            $ptr = 3;
            continue main;
        }
        b: {
            switch (0) {
                case 0:
                    break;
                case 1:
                    $var7 = 5;
                    break b;
                case 2:
                    $var7 = 4;
                    break b;
                case 3:
                    $var7 = 3;
                    break b;
                case 4:
                    $var7 = 2;
                    break b;
                case 5:
                    $var7 = 1;
                    break b;
                default:
                    $var7 = (-1);
                    break b;
            }
            $var7 = 0;
        }
        if ($var8 != $var7)
            return;
        var$10 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var8 = var$10 | 0;
        if (var$10 < $var8)
            $var8 = $var8 - 1 | 0;
        if ($var8 & 1) {
            $var7 = 0 | $var9;
            $var8 = 2;
            $ptr = 4;
            continue main;
        }
        $var7 = 7 | $var9;
        $var8 = 2;
        $ptr = 5;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, $var7, $var8, $var9, var$10, $ptr);
},
nms_BlockLever_invertMetadata = $par0 => {
    switch ($par0) {
        case 0:
            break;
        case 1:
            return 5;
        case 2:
            return 4;
        case 3:
            return 3;
        case 4:
            return 2;
        case 5:
            return 1;
        default:
            return (-1);
    }
    return 0;
},
nms_BlockLever_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $var6, $var7, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockLever_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            $ptr = 2;
            continue main;
        }
        if (!1)
            return;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        $var6 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, $var6);
        if ($rt_suspending()) {
            break main;
        }
        if (!0)
            return;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = $par5 & 7;
        $var7 = 0;
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 1)
            $var7 = 1;
        $par5 = $par2 + 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 2)
            $var7 = 1;
        $par5 = $par4 - 1 | 0;
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 3)
            $var7 = 1;
        $par5 = $par4 + 1 | 0;
        $ptr = 9;
    case 9:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 4)
            $var7 = 1;
        $par5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$10 = nms_Block_blocksList.data;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$11 = var$10[var$6];
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$11, var$6) && $var6 == 5)
            $var7 = 1;
        var$10 = nms_Block_blocksList.data;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$11 = var$10[var$6];
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$11, $par5) && $var6 == 6)
            $var7 = 1;
        $par5 = $par3 + 1 | 0;
        $ptr = 14;
    case 14:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6 && !$var6)
            $var7 = 1;
        $ptr = 15;
    case 15:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 7)
            $var7 = 1;
        if (!$var7)
            return;
        $ptr = 16;
    case 16:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 17;
    case 17:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        $var6 = 3;
        $ptr = 18;
    case 18:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $var6, $var7, var$10, var$11, $ptr);
},
nms_BlockLever_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $var5 = $par2 & 7;
        if ($var5 == 1) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.3125;
            $this.$maxX1 = 0.375;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.6875;
        } else if ($var5 == 2) {
            $this.$minX1 = 0.625;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.3125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.6875;
        } else if ($var5 == 3) {
            $this.$minX1 = 0.3125;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.6875;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.375;
        } else if ($var5 == 4) {
            $this.$minX1 = 0.3125;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.625;
            $this.$maxX1 = 0.6875;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 1.0;
        } else if (!($var5 != 5 && $var5 != 6)) {
            $this.$minX1 = 0.25;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.25;
            $this.$maxX1 = 0.75;
            $this.$maxY0 = 0.6000000238418579;
            $this.$maxZ1 = 0.75;
        } else if (!($var5 && $var5 != 7)) {
            $this.$minX1 = 0.25;
            $this.$minY1 = 0.4000000059604645;
            $this.$minZ1 = 0.25;
            $this.$maxX1 = 0.75;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.75;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockLever_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, $var12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var11 = $var10 & 7;
        $var12 = 8 - ($var10 & 8) | 0;
        $par6 = $var11 + $var12 | 0;
        $var10 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $par2 + 0.5;
        var$14 = $par3 + 0.5;
        var$15 = $par4 + 0.5;
        $par5EntityPlayer = $rt_s(1446);
        $par8 = 0.30000001192092896;
        $par7 = $var12 <= 0 ? 0.5 : 0.6000000238418579;
        $ptr = 3;
    case 3:
        nms_World_playSoundEffect($par1World, var$13, var$14, var$15, $par5EntityPlayer, $par8, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        if ($var11 == 1) {
            $par2 = $par2 - 1 | 0;
            $par6 = $this.$blockID;
            $ptr = 5;
            continue main;
        }
        if ($var11 == 2) {
            $par2 = $par2 + 1 | 0;
            $par6 = $this.$blockID;
            $ptr = 6;
            continue main;
        }
        if ($var11 == 3) {
            $par4 = $par4 - 1 | 0;
            $par6 = $this.$blockID;
            $ptr = 7;
            continue main;
        }
        if ($var11 == 4) {
            $par4 = $par4 + 1 | 0;
            $par6 = $this.$blockID;
            $ptr = 8;
            continue main;
        }
        if ($var11 != 5 && $var11 != 6) {
            if ($var11 && $var11 != 7)
                return 1;
            $par3 = $par3 + 1 | 0;
            $par6 = $this.$blockID;
            $ptr = 10;
            continue main;
        }
        $par3 = $par3 - 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 9;
        continue main;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 8:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 9:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 10:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $var11, $var12, var$13, var$14, var$15, $ptr);
},
nms_BlockLever_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (($par6 & 8) <= 0)
            return;
        $par5 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $par6 & 7;
        if ($var7 == 1) {
            $par2 = $par2 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 2;
            continue main;
        }
        if ($var7 == 2) {
            $par2 = $par2 + 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 3) {
            $par4 = $par4 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 4;
            continue main;
        }
        if ($var7 == 4) {
            $par4 = $par4 + 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 5;
            continue main;
        }
        if ($var7 != 5 && $var7 != 6) {
            if ($var7 && $var7 != 7)
                return;
            $par3 = $par3 + 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 7;
            continue main;
        }
        $par3 = $par3 - 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $ptr);
},
nms_BlockLever_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return ($par2 & 8) <= 0 ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockLever_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 & 8))
            return 0;
        a: {
            $var7 = $var6 & 7;
            if (!$var7 && !$par5) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 7 && !$par5) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 6 && $par5 == 1) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 5 && $par5 == 1) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 4 && $par5 == 2) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 3 && $par5 == 3) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 2 && $par5 == 4) {
                $par2 = 15;
                break a;
            }
            if ($var7 == 1 && $par5 == 5) {
                $par2 = 15;
                break a;
            }
            $par2 = 0;
        }
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockLever_canProvidePower = $this => {
    return 1;
};
function nms_BlockBasePressurePlate() {
    nms_Block.call(this);
    this.$pressurePlateIconName = null;
}
let nms_BlockBasePressurePlate_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_BlockBasePressurePlate_func_94353_c_($this, $par2);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockBasePressurePlate_func_94353_c_ = ($this, $par1) => {
    if (!($this.$getPowerSupply($par1) <= 0 ? 0 : 1)) {
        $this.$minX1 = 0.0625;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0625;
        $this.$maxX1 = 0.9375;
        $this.$maxY0 = 0.0625;
        $this.$maxZ1 = 0.9375;
    } else {
        $this.$minX1 = 0.0625;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0625;
        $this.$maxX1 = 0.9375;
        $this.$maxY0 = 0.03125;
        $this.$maxZ1 = 0.9375;
    }
},
nms_BlockBasePressurePlate_tickRate = ($this, $par1World) => {
    return 20;
},
nms_BlockBasePressurePlate_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockBasePressurePlate_isOpaqueCube = $this => {
    return 0;
},
nms_BlockBasePressurePlate_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockBasePressurePlate_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    return 1;
},
nms_BlockBasePressurePlate_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = var$5[var$6];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, var$6))
            return 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return ($par2 != nms_Block_fence.$blockID && $par2 != nms_Block_netherFence.$blockID ? 0 : 1) ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockBasePressurePlate_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        var$7 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$9 = var$8[$par5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$9, $par5)) {
            $ptr = 3;
            continue main;
        }
        if (!$var6)
            return;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 != nms_Block_fence.$blockID && $par5 != nms_Block_netherFence.$blockID ? 0 : 1))
            $var6 = 1;
        if (!$var6)
            return;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$7 = 0;
        var$10 = 1.0;
        $ptr = 5;
    case 5:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$10, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$7 = 0;
        $var6 = 3;
        $ptr = 6;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, $ptr);
},
nms_BlockBasePressurePlate_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $this.$getPowerSupply($var6);
        if ($var6 <= 0)
            return;
        $ptr = 2;
    case 2:
        nms_BlockBasePressurePlate_setStateIfMobInteractsWithPlate($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, $ptr);
},
nms_BlockBasePressurePlate_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $this.$getPowerSupply($var6);
        if ($var6)
            return;
        $ptr = 2;
    case 2:
        nms_BlockBasePressurePlate_setStateIfMobInteractsWithPlate($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $var6, $ptr);
},
nms_BlockBasePressurePlate_setStateIfMobInteractsWithPlate = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$getPlateState($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $par5 <= 0 ? 0 : 1;
        $var8 = $var6 <= 0 ? 0 : 1;
        if ($par5 != $var6) {
            $par5 = $this.$getMetaFromWeight($var6);
            $var6 = 2;
            $ptr = 2;
            continue main;
        }
        if (!$var8 && $var7) {
            var$9 = $par2 + 0.5;
            var$10 = $par3 + 0.1;
            var$11 = $par4 + 0.5;
            var$12 = $rt_s(1447);
            var$13 = 0.30000001192092896;
            var$14 = 0.5;
            $ptr = 5;
            continue main;
        }
        if ($var8 && !$var7) {
            var$9 = $par2 + 0.5;
            var$10 = $par3 + 0.1;
            var$11 = $par4 + 0.5;
            var$12 = $rt_s(1447);
            var$13 = 0.30000001192092896;
            var$14 = 0.6000000238418579;
            $ptr = 7;
            continue main;
        }
        if (!$var8)
            return;
        $par5 = $this.$blockID;
        $var8 = $this.$tickRate($par1World);
        $var6 = 0;
        $ptr = 6;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par3 - 1 | 0;
        $var6 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par5, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        while (true) {
            $var6 = $rt_compare($par5, $par1World.$worldAccesses.$size0);
            if ($var6 >= 0) {
                if (!$var8 && $var7) {
                    var$9 = $par2 + 0.5;
                    var$10 = $par3 + 0.1;
                    var$11 = $par4 + 0.5;
                    var$12 = $rt_s(1447);
                    var$13 = 0.30000001192092896;
                    var$14 = 0.5;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 && !$var7) {
                    var$9 = $par2 + 0.5;
                    var$10 = $par3 + 0.1;
                    var$11 = $par4 + 0.5;
                    var$12 = $rt_s(1447);
                    var$13 = 0.30000001192092896;
                    var$14 = 0.6000000238418579;
                    $ptr = 7;
                    continue main;
                }
                if (!$var8)
                    return;
                $par5 = $this.$blockID;
                $var8 = $this.$tickRate($par1World);
                $var6 = 0;
                $ptr = 6;
                continue main;
            }
            if ($par5 < 0)
                break;
            if ($var6 >= 0)
                break;
            $par5 = $par5 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 5:
        nms_World_playSoundEffect($par1World, var$9, var$10, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var8)
            return;
        $par5 = $this.$blockID;
        $var8 = $this.$tickRate($par1World);
        $var6 = 0;
        $ptr = 6;
    case 6:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_World_playSoundEffect($par1World, var$9, var$10, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var8)
            return;
        $par5 = $this.$blockID;
        $var8 = $this.$tickRate($par1World);
        $var6 = 0;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockBasePressurePlate_getSensitiveAABB = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$4 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$5 = $par1 + 0.125;
    var$6 = $par2;
    var$7 = $par3 + 0.125;
    var$8 = ($par1 + 1 | 0) - 0.125;
    var$9 = var$6 + 0.25;
    var$10 = ($par3 + 1 | 0) - 0.125;
    $par2 = var$4.$nextPoolIndex;
    var$11 = var$4.$listAABB;
    $par1 = var$11.$size0;
    $par3 = $rt_compare($par2, $par1);
    if ($par3 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$5;
        var$12.$minY0 = var$6;
        var$12.$minZ0 = var$7;
        var$12.$maxX0 = var$8;
        var$12.$maxY = var$9;
        var$12.$maxZ0 = var$10;
        ju_ArrayList_ensureCapacity(var$11, $par1 + 1 | 0);
        var$13 = var$11.$array.data;
        $par2 = var$11.$size0;
        var$11.$size0 = $par2 + 1 | 0;
        var$13[$par2] = var$12;
        var$11.$modCount = var$11.$modCount + 1 | 0;
    } else if ($par2 >= 0 && $par3 < 0) {
        var$12 = var$11.$array.data[$par2];
        var$12.$minX0 = var$5;
        var$12.$minY0 = var$6;
        var$12.$minZ0 = var$7;
        var$12.$maxX0 = var$8;
        var$12.$maxY = var$9;
        var$12.$maxZ0 = var$10;
    } else {
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    }
    var$4.$nextPoolIndex = var$4.$nextPoolIndex + 1 | 0;
    return var$12;
},
nms_BlockBasePressurePlate_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$getPowerSupply($par6) <= 0)
            return;
        $par5 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 - 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockBasePressurePlate_func_94354_b_ = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 - 1 | 0;
        var$5 = $this.$blockID;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockBasePressurePlate_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $this.$getPowerSupply($par2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockBasePressurePlate_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 != 1)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $this.$getPowerSupply($par2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockBasePressurePlate_canProvidePower = $this => {
    return 1;
},
nms_BlockBasePressurePlate_getMobilityFlag = $this => {
    return 1;
};
function nms_BlockPressurePlate() {
    nms_BlockBasePressurePlate.call(this);
    this.$triggerMobType = null;
}
let nms_BlockPressurePlate__init_0 = ($this, $par1, $par2Str, $par3Material, $par4EnumMobType) => {
    nms_Block__init_($this, $par1, $par3Material);
    $this.$pressurePlateIconName = $par2Str;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$needsRandomTick = 1;
    nms_BlockBasePressurePlate_func_94353_c_($this, 1);
    $this.$triggerMobType = $par4EnumMobType;
},
nms_BlockPressurePlate__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_BlockPressurePlate();
    nms_BlockPressurePlate__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_BlockPressurePlate_getMetaFromWeight = ($this, $par1) => {
    return $par1 <= 0 ? 0 : 1;
},
nms_BlockPressurePlate_getPowerSupply = ($this, $par1) => {
    return $par1 != 1 ? 0 : 15;
},
nms_BlockPressurePlate_getPlateState = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var7, var$7, $var6$index, $var6$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6$index_0 = $thread.pop();$var6$index = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = null;
        if ($this.$triggerMobType === nms_EnumMobType_everything) {
            $var7 = null;
            $var5 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
            var$7 = null;
            $ptr = 1;
            continue main;
        }
        if ($this.$triggerMobType === nms_EnumMobType_mobs) {
            $var5 = $rt_cls(nms_EntityLivingBase);
            $var7 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
            var$7 = null;
            $ptr = 2;
            continue main;
        }
        if ($this.$triggerMobType !== nms_EnumMobType_players) {
            a: {
                if ($var5 !== null && !($var5.$size0 ? 0 : 1)) {
                    $var6$index = 0;
                    $par3 = $var5.$modCount;
                    $par4 = $var5.$size();
                    while (true) {
                        if (!($var6$index >= $par4 ? 0 : 1))
                            break a;
                        if ($par3 < $var5.$modCount) {
                            $par1World = new ju_ConcurrentModificationException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                        $var6$index_0 = $var6$index + 1 | 0;
                        if (!($var5.$get($var6$index)).$doesEntityNotTriggerPressurePlate())
                            break;
                        $var6$index = $var6$index_0;
                    }
                    return 15;
                }
            }
            return 0;
        }
        $var5 = $rt_cls(nms_EntityPlayer);
        $var7 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
        var$7 = null;
        $ptr = 3;
        continue main;
    case 1:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($par1World, $var7, $var5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($this.$triggerMobType === nms_EnumMobType_mobs) {
            $var5 = $rt_cls(nms_EntityLivingBase);
            $var7 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
            var$7 = null;
            $ptr = 2;
            continue main;
        }
        if ($this.$triggerMobType !== nms_EnumMobType_players) {
            b: {
                if ($var5 !== null && !($var5.$size0 ? 0 : 1)) {
                    $var6$index = 0;
                    $par3 = $var5.$modCount;
                    $par4 = $var5.$size();
                    while (true) {
                        if (!($var6$index >= $par4 ? 0 : 1))
                            break b;
                        if ($par3 < $var5.$modCount) {
                            $par1World = new ju_ConcurrentModificationException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                        $var6$index_0 = $var6$index + 1 | 0;
                        if (!($var5.$get($var6$index)).$doesEntityNotTriggerPressurePlate())
                            break;
                        $var6$index = $var6$index_0;
                    }
                    return 15;
                }
            }
            return 0;
        }
        $var5 = $rt_cls(nms_EntityPlayer);
        $var7 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
        var$7 = null;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, $var5, $var7, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($this.$triggerMobType !== nms_EnumMobType_players) {
            c: {
                if ($var5 !== null && !($var5.$size0 ? 0 : 1)) {
                    $var6$index = 0;
                    $par3 = $var5.$modCount;
                    $par4 = $var5.$size();
                    while (true) {
                        if (!($var6$index >= $par4 ? 0 : 1))
                            break c;
                        if ($par3 < $var5.$modCount) {
                            $par1World = new ju_ConcurrentModificationException;
                            $par1World.$suppressionEnabled = 1;
                            $par1World.$writableStackTrace = 1;
                            $rt_throw($par1World);
                        }
                        $var6$index_0 = $var6$index + 1 | 0;
                        if (!($var5.$get($var6$index)).$doesEntityNotTriggerPressurePlate())
                            break;
                        $var6$index = $var6$index_0;
                    }
                    return 15;
                }
            }
            return 0;
        }
        $var5 = $rt_cls(nms_EntityPlayer);
        $var7 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
        var$7 = null;
        $ptr = 3;
    case 3:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, $var5, $var7, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        d: {
            if ($var5 !== null && !($var5.$size0 ? 0 : 1)) {
                $var6$index = 0;
                $par3 = $var5.$modCount;
                $par4 = $var5.$size();
                while (true) {
                    if (!($var6$index >= $par4 ? 0 : 1))
                        break d;
                    if ($par3 < $var5.$modCount) {
                        $par1World = new ju_ConcurrentModificationException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    $var6$index_0 = $var6$index + 1 | 0;
                    if (!($var5.$get($var6$index)).$doesEntityNotTriggerPressurePlate())
                        break;
                    $var6$index = $var6$index_0;
                }
                return 15;
            }
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var7, var$7, $var6$index, $var6$index_0, $ptr);
},
nms_EnumMobType = $rt_classWithoutFields(jl_Enum),
nms_EnumMobType_everything = null,
nms_EnumMobType_mobs = null,
nms_EnumMobType_players = null,
nms_EnumMobType_$VALUES = null,
nms_EnumMobType_values = () => {
    return nms_EnumMobType_$VALUES.$clone0();
},
nms_EnumMobType__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = new nms_EnumMobType;
    var$1.$name0 = $rt_s(1448);
    var$1.$ordinal = 0;
    nms_EnumMobType_everything = var$1;
    var$2 = new nms_EnumMobType;
    var$2.$name0 = $rt_s(1449);
    var$2.$ordinal = 1;
    nms_EnumMobType_mobs = var$2;
    var$3 = new nms_EnumMobType;
    var$3.$name0 = $rt_s(215);
    var$3.$ordinal = 2;
    nms_EnumMobType_players = var$3;
    nms_EnumMobType_$VALUES = $rt_wrapArray(nms_EnumMobType, [var$1, var$2, var$3]);
};
function nms_BlockRedstoneOre() {
    nms_Block.call(this);
    this.$glowing = 0;
}
let nms_BlockRedstoneOre__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    if ($par2)
        $this.$needsRandomTick = 1;
    $this.$glowing = $par2;
},
nms_BlockRedstoneOre__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockRedstoneOre();
    nms_BlockRedstoneOre__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockRedstoneOre_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRedstoneOre_sparkle($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $this.$blockID;
        nms_Block_$callClinit();
        if (var$6 != nms_Block_oreRedstone.$blockID)
            return;
        var$7 = nms_Block_oreRedstoneGlowing.$blockID;
        var$6 = 0;
        var$8 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, var$6, var$7, var$8, $ptr);
},
nms_BlockRedstoneOre_onEntityWalking = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRedstoneOre_sparkle($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $this.$blockID;
        nms_Block_$callClinit();
        if (var$6 != nms_Block_oreRedstone.$blockID)
            return;
        var$7 = nms_Block_oreRedstoneGlowing.$blockID;
        var$6 = 0;
        var$8 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, var$6, var$7, var$8, $ptr);
},
nms_BlockRedstoneOre_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRedstoneOre_sparkle($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $this.$blockID;
        nms_Block_$callClinit();
        if ($par6 != nms_Block_oreRedstone.$blockID)
            return 0;
        $par6 = nms_Block_oreRedstoneGlowing.$blockID;
        var$10 = 0;
        var$11 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, var$11, $ptr);
},
nms_BlockRedstoneOre_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        nms_Block_$callClinit();
        if (var$6 != nms_Block_oreRedstoneGlowing.$blockID)
            return;
        var$6 = nms_Block_oreRedstone.$blockID;
        var$7 = 0;
        var$8 = 3;
        $ptr = 1;
    case 1:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, $ptr);
},
nms_BlockRedstoneOre_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_redstone.$itemID0;
},
nms_BlockRedstoneOre_quantityDroppedWithBonus = ($this, $par1, $par2Random) => {
    let var$3, var$4, var$5, var$6, var$7;
    var$3 = nms_BlockRedstoneOre_quantityDropped($this, $par2Random);
    $par1 = $par1 + 1 | 0;
    var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$4;
    var$5 = Long_lo(Long_shru(var$4, 17));
    var$6 = $par1 - 1 | 0;
    if (!($par1 & var$6))
        var$7 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$5)), 31));
    else
        while (true) {
            var$7 = var$5 % $par1 | 0;
            if (((var$5 - var$7 | 0) + var$6 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
    return var$3 + var$7 | 0;
},
nms_BlockRedstoneOre_quantityDropped = ($this, $par1Random) => {
    let var$2;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    return 4 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31)) | 0;
},
nms_BlockRedstoneOre_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, var$9, $var8, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        nms_Item_$callClinit();
        if (nms_Item_redstone.$itemID0 != $this.$blockID) {
            var$8 = $par1World.$rand0;
            var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$9;
            $par7 = Long_lo(Long_shru(var$9, 17));
            while (true) {
                $var8 = $par7 % 5 | 0;
                if ((($par7 - $var8 | 0) + 4 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$8.$seed = var$9;
                $par7 = Long_lo(Long_shru(var$9, 17));
            }
            $var8 = 1 + $var8 | 0;
            if (!$par1World.$isRemote) {
                var$11 = $par2 + 0.5;
                var$12 = $par3 + 0.5;
                var$13 = $par4 + 0.5;
                if ($var8 > 0) {
                    $par2 = nms_EntityXPOrb_getXPSplit($var8);
                    $var8 = $var8 - $par2 | 0;
                    var$8 = new nms_EntityXPOrb;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 2:
        nms_EntityXPOrb__init_(var$8, $par1World, var$11, var$12, var$13, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1World, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($var8 <= 0)
            return;
        $par2 = nms_EntityXPOrb_getXPSplit($var8);
        $var8 = $var8 - $par2 | 0;
        var$8 = new nms_EntityXPOrb;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, var$8, var$9, $var8, var$11, var$12, var$13, $ptr);
},
nms_BlockRedstoneOre_sparkle = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var8, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $var6, var$28, $var9, $var11, var$31, $var13, var$33, var$34, var$35, var$36, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();$var13 = $thread.pop();var$31 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();var$28 = $thread.pop();$var6 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15
        = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var8 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par1World.$rand0;
        $var8 = 0;
        var$7 = $par2;
        var$8 = 24;
        var$9 = $par3;
        var$10 = $par4;
        var$11 = $par3 + 1 | 0;
        var$12 = var$11;
        var$13 = var$12 + 0.0625;
        var$14 = $par3 - 1 | 0;
        var$15 = ($par3 + 0 | 0) - 0.0625;
        var$16 = $par4 + 1 | 0;
        var$17 = var$16;
        var$18 = var$17 + 0.0625;
        var$19 = $par4 - 1 | 0;
        var$20 = ($par4 + 0 | 0) - 0.0625;
        var$21 = $par2 + 1 | 0;
        var$22 = var$21;
        var$23 = var$22 + 0.0625;
        var$24 = $par2 - 1 | 0;
        var$25 = ($par2 + 0 | 0) - 0.0625;
        var$26 = $par2;
        $var6 = $par4;
        a: {
            while ($var8 < 6) {
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 3;
                    continue main;
                }
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 4;
                    continue main;
                }
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 6;
                    continue main;
                }
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break a;
                        if (var$35 >= 0)
                            break a;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$35 = $tmp;
        var$36 = var$33[var$35];
        if (!(var$36 !== null ? var$36.$isOpaqueCube() : 0))
            $var11 = var$13;
        b: {
            while (true) {
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 3;
                    continue main;
                }
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 4;
                    continue main;
                }
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 6;
                    continue main;
                }
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break b;
                        if (var$35 >= 0)
                            break b;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 6)
                    break;
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    continue main;
                }
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$14, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$35 = $tmp;
        var$36 = var$33[var$35];
        if (!(var$36 !== null ? var$36.$isOpaqueCube() : 0))
            $var11 = var$15;
        b: {
            while (true) {
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 3;
                    continue main;
                }
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 4;
                    continue main;
                }
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 6;
                    continue main;
                }
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break b;
                        if (var$35 >= 0)
                            break b;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 6)
                    break;
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    continue main;
                }
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$35 = $tmp;
        var$36 = var$33[var$35];
        if (!(var$36 !== null ? var$36.$isOpaqueCube() : 0))
            $var13 = var$18;
        b: {
            while (true) {
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 4;
                    continue main;
                }
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 6;
                    continue main;
                }
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break b;
                        if (var$35 >= 0)
                            break b;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 6)
                    break;
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    continue main;
                }
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$35 = $tmp;
        var$36 = var$33[var$35];
        if (!(var$36 !== null ? var$36.$isOpaqueCube() : 0))
            $var13 = var$20;
        b: {
            while (true) {
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 6;
                    continue main;
                }
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break b;
                        if (var$35 >= 0)
                            break b;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 6)
                    break;
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 3;
                    continue main;
                }
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    continue main;
                }
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$21, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$35 = $tmp;
        var$36 = var$33[var$35];
        if (!(var$36 !== null ? var$36.$isOpaqueCube() : 0))
            $var9 = var$23;
        b: {
            while (true) {
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 6;
                    continue main;
                }
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break b;
                        if (var$35 >= 0)
                            break b;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 6)
                    break;
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 3;
                    continue main;
                }
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 4;
                    continue main;
                }
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    continue main;
                }
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$24, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$35 = $tmp;
        var$36 = var$33[var$35];
        if (!(var$36 !== null ? var$36.$isOpaqueCube() : 0))
            $var9 = var$25;
        b: {
            while (true) {
                if (!($var9 >= var$26 && $var9 <= var$22 && $var11 >= 0.0 && $var11 <= var$12 && $var13 >= $var6 && $var13 <= var$17)) {
                    var$34 = 0;
                    while (true) {
                        var$35 = $rt_compare(var$34, $par1World.$worldAccesses.$size0);
                        if (var$35 >= 0)
                            break;
                        if (var$34 < 0)
                            break b;
                        if (var$35 >= 0)
                            break b;
                        var$34 = var$34 + 1 | 0;
                    }
                }
                $var8 = $var8 + 1 | 0;
                if ($var8 >= 6)
                    break;
                var$28 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var9 = var$7 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$28 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$28;
                $var11 = var$9 + Long_lo(Long_shru(var$28, var$8)) / 1.6777216E7;
                var$31 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$31;
                $var13 = var$10 + Long_lo(Long_shru(var$31, var$8)) / 1.6777216E7;
                if (!$var8) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                if ($var8 == 1) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                if ($var8 == 2) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 3;
                    continue main;
                }
                if ($var8 == 3) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 4;
                    continue main;
                }
                if ($var8 == 4) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 == 5) {
                    nms_Block_$callClinit();
                    var$33 = nms_Block_blocksList.data;
                    continue main;
                }
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var8, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $var6, var$28, $var9, $var11, var$31, $var13, var$33, var$34, var$35, var$36, $ptr);
},
nms_BlockRedstoneOre_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    var$2 = new nms_ItemStack;
    nms_Block_$callClinit();
    var$3 = nms_Block_oreRedstone;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    return var$2;
};
function nms_BlockRedstoneTorch() {
    nms_BlockTorch.call(this);
    this.$torchActive = 0;
}
let nms_BlockRedstoneTorch_redstoneUpdateInfoCache = null,
nms_BlockRedstoneTorch_checkForBurnout = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $var6, var$8, var$9, $var9, $var8, var$12, $var7;
    var$6 = nms_BlockRedstoneTorch_redstoneUpdateInfoCache;
    if ($par1World === null) {
        $var6 = var$6.$elementData.data[0];
        while ($var6 !== null && $var6.$key !== null) {
            $var6 = $var6.$next3;
        }
    } else {
        $var6 = $par1World;
        if (!$var6.$id$)
            $var6.$id$ = $rt_nextId();
        var$8 = $par1World.$id$;
        var$9 = var$6.$elementData.data;
        $var6 = var$9[var$8 & (var$9.length - 1 | 0)];
        while ($var6 !== null) {
            if ($var6.$origKeyHash == var$8) {
                $var9 = $var6.$key;
                if ($par1World !== $var9 && !($par1World !== $var9 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var6 = $var6.$next3;
        }
    }
    if (!($var6 === null ? 0 : 1)) {
        $var6 = nms_BlockRedstoneTorch_redstoneUpdateInfoCache;
        $var9 = new ju_ArrayList;
        $var9.$array = $rt_createArray(jl_Object, 10);
        ju_HashMap_putImpl($var6, $par1World, $var9);
    }
    var$6 = nms_BlockRedstoneTorch_redstoneUpdateInfoCache;
    if ($par1World === null) {
        $var6 = var$6.$elementData.data[0];
        while ($var6 !== null && $var6.$key !== null) {
            $var6 = $var6.$next3;
        }
    } else {
        $var6 = $par1World;
        if (!$var6.$id$)
            $var6.$id$ = $rt_nextId();
        $var8 = $par1World.$id$;
        var$9 = var$6.$elementData.data;
        $var6 = var$9[$var8 & (var$9.length - 1 | 0)];
        while ($var6 !== null) {
            if ($var6.$origKeyHash == $var8) {
                $var9 = $var6.$key;
                if ($par1World !== $var9 && !($par1World !== $var9 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var6 = $var6.$next3;
        }
    }
    $var6 = $var6 === null ? null : $var6.$value0;
    if ($par5) {
        $var9 = new nms_RedstoneUpdateInfo;
        var$12 = $par1World.$worldInfo.$getWorldTotalTime();
        $var9.$x2 = $par2;
        $var9.$y1 = $par3;
        $var9.$z4 = $par4;
        $var9.$updateTime = var$12;
        ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
        var$9 = $var6.$array.data;
        $var7 = $var6.$size0;
        $var6.$size0 = $var7 + 1 | 0;
        var$9[$var7] = $var9;
        $var6.$modCount = $var6.$modCount + 1 | 0;
    }
    $var7 = 0;
    $var8 = 0;
    a: {
        while (true) {
            $par5 = $rt_compare($var8, $var6.$size0);
            if ($par5 >= 0)
                break;
            if ($var8 < 0)
                break a;
            if ($par5 >= 0)
                break a;
            $var9 = $var6.$array.data[$var8];
            if ($var9.$x2 == $par2 && $var9.$y1 == $par3 && $var9.$z4 == $par4) {
                $var7 = $var7 + 1 | 0;
                if ($var7 >= 8)
                    return 1;
            }
            $var8 = $var8 + 1 | 0;
        }
        return 0;
    }
    $par1World = new jl_IndexOutOfBoundsException;
    $par1World.$suppressionEnabled = 1;
    $par1World.$writableStackTrace = 1;
    $rt_throw($par1World);
},
nms_BlockRedstoneTorch__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$torchActive = $par2;
    $this.$needsRandomTick = 1;
    $this.$displayOnCreativeTab = null;
},
nms_BlockRedstoneTorch__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockRedstoneTorch();
    nms_BlockRedstoneTorch__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockRedstoneTorch_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            $ptr = 2;
            continue main;
        }
        if (!$this.$torchActive)
            return;
        var$6 = $par3 - 1 | 0;
        var$5 = $this.$blockID;
        $ptr = 3;
        continue main;
    case 2:
        nms_BlockTorch_onBlockAdded($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$torchActive)
            return;
        var$6 = $par3 - 1 | 0;
        var$5 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$6, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par3 + 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 5;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2 + 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par4 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 7;
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $par4 + 1 | 0;
        var$5 = $this.$blockID;
        $ptr = 8;
    case 8:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockRedstoneTorch_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$torchActive)
            return;
        $par5 = $par3 - 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par5, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par3 + 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par5, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par2 - 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par5, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par2 + 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par5, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par4 - 1 | 0;
        $par6 = $this.$blockID;
        $ptr = 5;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $par4 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockRedstoneTorch_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$torchActive)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return $var6 == 5 && $par5 == 1 ? 0 : $var6 == 3 && $par5 == 3 ? 0 : $var6 == 4 && $par5 == 2 ? 0 : $var6 == 1 && $par5 == 5 ? 0 : $var6 == 2 && $par5 == 4 ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockRedstoneTorch_isIndirectlyPowered = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 == 5) {
            var$6 = $par3 - 1 | 0;
            var$7 = 0;
            $ptr = 2;
            continue main;
        }
        if ($var5 == 3) {
            var$6 = $par4 - 1 | 0;
            var$7 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var5 == 4) {
            var$6 = $par4 + 1 | 0;
            var$7 = 3;
            $ptr = 4;
            continue main;
        }
        if ($var5 == 1) {
            var$6 = $par2 - 1 | 0;
            var$7 = 4;
            $ptr = 5;
            continue main;
        }
        if ($var5 != 2)
            return 0;
        $par2 = $par2 + 1 | 0;
        var$6 = 5;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, var$6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            $par2 = 1;
        else {
            if ($var5 == 3) {
                var$6 = $par4 - 1 | 0;
                var$7 = 2;
                $ptr = 3;
                continue main;
            }
            if ($var5 == 4) {
                var$6 = $par4 + 1 | 0;
                var$7 = 3;
                $ptr = 4;
                continue main;
            }
            if ($var5 == 1) {
                var$6 = $par2 - 1 | 0;
                var$7 = 4;
                $ptr = 5;
                continue main;
            }
            if ($var5 == 2) {
                $par2 = $par2 + 1 | 0;
                var$6 = 5;
                $ptr = 6;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 3:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            $par2 = 1;
        else {
            if ($var5 == 4) {
                var$6 = $par4 + 1 | 0;
                var$7 = 3;
                $ptr = 4;
                continue main;
            }
            if ($var5 == 1) {
                var$6 = $par2 - 1 | 0;
                var$7 = 4;
                $ptr = 5;
                continue main;
            }
            if ($var5 == 2) {
                $par2 = $par2 + 1 | 0;
                var$6 = 5;
                $ptr = 6;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 4:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            $par2 = 1;
        else {
            if ($var5 == 1) {
                var$6 = $par2 - 1 | 0;
                var$7 = 4;
                $ptr = 5;
                continue main;
            }
            if ($var5 == 2) {
                $par2 = $par2 + 1 | 0;
                var$6 = 5;
                $ptr = 6;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 5:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, var$6, $par3, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 0 ? 0 : 1)
            $par2 = 1;
        else {
            if ($var5 == 2) {
                $par2 = $par2 + 1 | 0;
                var$6 = 5;
                $ptr = 6;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 6:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $par2, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !($par2 <= 0 ? 0 : 1) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, $ptr);
},
nms_BlockRedstoneTorch_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, $var7, var$10, var$11, var$12, $var8, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRedstoneTorch_isIndirectlyPowered($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$7 = nms_BlockRedstoneTorch_redstoneUpdateInfoCache;
        if ($par1World === null) {
            var$8 = var$7.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            $var7 = $par1World;
            if (!$var7.$id$)
                $var7.$id$ = $rt_nextId();
            var$10 = $par1World.$id$;
            var$11 = var$7.$elementData.data;
            var$8 = var$11[var$10 & (var$11.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$10) {
                    $var7 = var$8.$key;
                    if ($par1World !== $var7 && !($par1World !== $var7 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        $var7 = var$8 === null ? null : var$8.$value0;
        a: {
            while (true) {
                if ($var7 === null)
                    break a;
                if ($var7.$size() ? 0 : 1)
                    break a;
                var$12 = $par1World.$worldInfo.$getWorldTotalTime();
                if (0 >= $var7.$size0)
                    break;
                if (Long_le(Long_sub(var$12, $var7.$array.data[0].$updateTime), Long_fromInt(60)))
                    break a;
                ju_ArrayList_remove($var7, 0);
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        b: {
            if ($this.$torchActive) {
                if (!$var6)
                    break b;
                nms_Block_$callClinit();
                $var8 = nms_Block_torchRedstoneIdle.$blockID;
                $ptr = 2;
                continue main;
            }
            if (!$var6 && !nms_BlockRedstoneTorch_checkForBurnout($this, $par1World, $par2, $par3, $par4, 0)) {
                nms_Block_$callClinit();
                $var8 = nms_Block_torchRedstoneActive.$blockID;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        $var6 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, var$10, $var6);
        if ($rt_suspending()) {
            break main;
        }
        if (!nms_BlockRedstoneTorch_checkForBurnout($this, $par1World, $par2, $par3, $par4, 1))
            return;
        var$14 = $par2 + 0.5;
        var$15 = $par3 + 0.5;
        var$16 = $par4 + 0.5;
        $var7 = $rt_s(1389);
        var$17 = 0.5;
        var$8 = $par1World.$rand0;
        var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$18;
        var$19 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
        var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$18;
        var$20 = 2.5999999046325684 + (var$19 - Long_lo(Long_shru(var$18, 24)) / 1.6777216E7) * 0.800000011920929;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        $var6 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, var$10, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_playSoundEffect($par1World, var$14, var$15, var$16, $var7, var$17, var$20);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 0;
        c: {
            while ($var8 < 5) {
                var$12 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$12;
                $par5Random.$seed = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2 = 0;
                while (true) {
                    $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                    if ($par3 >= 0)
                        break;
                    if ($par2 < 0)
                        break c;
                    if ($par3 >= 0)
                        break c;
                    $par2 = $par2 + 1 | 0;
                }
                $var8 = $var8 + 1 | 0;
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, $var7, var$10, var$11, var$12, $var8, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_BlockRedstoneTorch_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockTorch_func_94397_d($this, $par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockRedstoneTorch_isIndirectlyPowered($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $par5 = $this.$torchActive;
        if (!($par5 && $var6) && !(!$par5 && !$var6))
            return;
        $par5 = $this.$blockID;
        var$7 = 2;
        $var6 = 0;
        $ptr = 3;
    case 3:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, $ptr);
},
nms_BlockRedstoneTorch_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRedstoneTorch_isProvidingWeakPower($this, $par1IBlockAccess, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockRedstoneTorch_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_torchRedstoneActive.$blockID;
},
nms_BlockRedstoneTorch_canProvidePower = $this => {
    return 1;
},
nms_BlockRedstoneTorch_isAssociatedBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_torchRedstoneIdle.$blockID && $par1 != nms_Block_torchRedstoneActive.$blockID ? 0 : 1;
},
nms_BlockRedstoneTorch__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_BlockRedstoneTorch_redstoneUpdateInfoCache = var$1;
};
function nms_BlockButton() {
    nms_Block.call(this);
    this.$sensible = 0;
}
let nms_BlockButton_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockButton_tickRate = ($this, $par1World) => {
    return !$this.$sensible ? 20 : 30;
},
nms_BlockButton_isOpaqueCube = $this => {
    return 0;
},
nms_BlockButton_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockButton_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 == 2) {
            var$6 = $par4 + 1 | 0;
            $ptr = 1;
            continue main;
        }
        if ($par5 == 3) {
            var$6 = $par4 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 4) {
            var$6 = $par2 + 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 5)
            return 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 3) {
                var$6 = $par4 - 1 | 0;
                $ptr = 2;
                continue main;
            }
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 3;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 3;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockButton_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        $par4 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockButton_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var11 = $var10 & 8;
        if ($par5 == 2) {
            $par9 = $par4 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            $ptr = 5;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            return 4 + $var11 | 0;
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            $ptr = 5;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            return 3 + $var11 | 0;
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 5) {
            $ptr = 5;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            return 2 + $var11 | 0;
        if ($par5 != 5) {
            $ptr = 5;
            continue main;
        }
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_BlockButton_getOrientation($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 + $var11 | 0;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return 1 + $var11 | 0;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $var10, $var11, $ptr);
},
nms_BlockButton_getOrientation = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 2;
        var$5 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 3;
        $par4 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$par2 ? 1 : 4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockButton_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockButton_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            $ptr = 2;
            continue main;
        }
        if (!1)
            return;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var6 = 0;
        $var7 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        if (!0)
            return;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = $par5 & 7;
        $var7 = 0;
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 1)
            $var7 = 1;
        $par5 = $par2 + 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 2)
            $var7 = 1;
        $par5 = $par4 - 1 | 0;
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 3)
            $var7 = 1;
        $par5 = $par4 + 1 | 0;
        $ptr = 9;
    case 9:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var6 == 4)
            $var7 = 1;
        if (!$var7)
            return;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = 0;
        var$7 = 1.0;
        $ptr = 11;
    case 11:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var6 = 0;
        $var7 = 3;
        $ptr = 12;
    case 12:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, $var7, $ptr);
},
nms_BlockButton_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_BlockButton_func_82534_e($this, $var5);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockButton_func_82534_e = ($this, $par1) => {
    let $var2, $var3, $var7, var$5;
    $var2 = $par1 & 7;
    $var3 = ($par1 & 8) <= 0 ? 0 : 1;
    $var7 = 0.125;
    if ($var3)
        $var7 = 0.0625;
    if ($var2 == 1) {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.375;
        $this.$minZ1 = 0.3125;
        $this.$maxX1 = $var7;
        $this.$maxY0 = 0.625;
        $this.$maxZ1 = 0.6875;
    } else if ($var2 == 2) {
        $this.$minX1 = 1.0 - $var7;
        $this.$minY1 = 0.375;
        $this.$minZ1 = 0.3125;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.625;
        $this.$maxZ1 = 0.6875;
    } else if ($var2 == 3) {
        $this.$minX1 = 0.3125;
        $this.$minY1 = 0.375;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 0.6875;
        $this.$maxY0 = 0.625;
        $this.$maxZ1 = $var7;
    } else if ($var2 == 4) {
        var$5 = 1.0 - $var7;
        $this.$minX1 = 0.3125;
        $this.$minY1 = 0.375;
        $this.$minZ1 = var$5;
        $this.$maxX1 = 0.6875;
        $this.$maxY0 = 0.625;
        $this.$maxZ1 = 1.0;
    }
},
nms_BlockButton_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    return;
},
nms_BlockButton_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, $var12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var11 = $var10 & 7;
        $var12 = 8 - ($var10 & 8) | 0;
        if (!$var12)
            return 1;
        $var10 = $var11 + $var12 | 0;
        $par6 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var10, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = 0;
        while (true) {
            $var10 = $rt_compare($par6, $par1World.$worldAccesses.$size0);
            if ($var10 >= 0) {
                var$13 = $par2 + 0.5;
                var$14 = $par3 + 0.5;
                var$15 = $par4 + 0.5;
                $par5EntityPlayer = $rt_s(1447);
                $par7 = 0.30000001192092896;
                $par8 = 0.6000000238418579;
                $ptr = 3;
                continue main;
            }
            if ($par6 < 0)
                break;
            if ($var10 >= 0)
                break;
            $par6 = $par6 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 3:
        nms_World_playSoundEffect($par1World, var$13, var$14, var$15, $par5EntityPlayer, $par7, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_BlockButton_func_82536_d($this, $par1World, $par2, $par3, $par4, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $this.$blockID;
        $var11 = !$this.$sensible ? 20 : 30;
        $var10 = 0;
        $ptr = 5;
    case 5:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par6, $var11, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $var11, $var12, var$13, var$14, var$15, $ptr);
},
nms_BlockButton_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (($par6 & 8) <= 0)
            return;
        $var7 = $par6 & 7;
        $ptr = 1;
    case 1:
        nms_BlockButton_func_82536_d($this, $par1World, $par2, $par3, $par4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $ptr);
},
nms_BlockButton_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return ($par2 & 8) <= 0 ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockButton_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 & 8))
            return 0;
        $var7 = $var6 & 7;
        return $var7 == 5 && $par5 == 1 ? 15 : $var7 == 4 && $par5 == 2 ? 15 : $var7 == 3 && $par5 == 3 ? 15 : $var7 == 2 && $par5 == 4 ? 15 : $var7 == 1 && $par5 == 5 ? 15 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockButton_canProvidePower = $this => {
    return 1;
},
nms_BlockButton_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 & 8))
            return;
        if ($this.$sensible) {
            $ptr = 5;
            continue main;
        }
        var$7 = $var6 & 7;
        $var6 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_BlockButton_func_82536_d($this, $par1World, $par2, $par3, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $par2 + 0.5;
        var$9 = $par3 + 0.5;
        var$10 = $par4 + 0.5;
        $par5Random = $rt_s(1447);
        var$11 = 0.30000001192092896;
        var$12 = 0.5;
        $ptr = 4;
    case 4:
        nms_World_playSoundEffect($par1World, var$8, var$9, var$10, $par5Random, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        a: {
            while (true) {
                $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                if ($par3 >= 0)
                    break;
                if ($par2 < 0)
                    break a;
                if ($par3 >= 0)
                    break a;
                $par2 = $par2 + 1 | 0;
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 5:
        nms_BlockButton_func_82535_o($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockButton_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote && $this.$sensible) {
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 & 8)
            return;
        $ptr = 2;
    case 2:
        nms_BlockButton_func_82535_o($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, var$6, $ptr);
},
nms_BlockButton_func_82535_o = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var9, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $var8, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var8 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 =
        $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $var5 & 7;
        $var7 = !($var5 & 8) ? 0 : 1;
        nms_BlockButton_func_82534_e($this, $var5);
        $var9 = $rt_cls(nms_EntityArrow);
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par2;
        var$11 = var$10 + $this.$minX1;
        var$12 = $par3;
        var$13 = var$12 + $this.$minY1;
        var$14 = $par4;
        var$15 = var$14 + $this.$minZ1;
        var$16 = var$10 + $this.$maxX1;
        var$17 = var$12 + $this.$maxY0;
        var$18 = var$14 + $this.$maxZ1;
        $var5 = var$9.$nextPoolIndex;
        var$19 = var$9.$listAABB;
        $var8 = var$19.$size0;
        var$21 = $rt_compare($var5, $var8);
        if (var$21 >= 0) {
            var$22 = new nms_AxisAlignedBB;
            var$22.$minX0 = var$11;
            var$22.$minY0 = var$13;
            var$22.$minZ0 = var$15;
            var$22.$maxX0 = var$16;
            var$22.$maxY = var$17;
            var$22.$maxZ0 = var$18;
            ju_ArrayList_ensureCapacity(var$19, $var8 + 1 | 0);
            var$23 = var$19.$array.data;
            var$21 = var$19.$size0;
            var$19.$size0 = var$21 + 1 | 0;
            var$23[var$21] = var$22;
            var$19.$modCount = var$19.$modCount + 1 | 0;
        } else if ($var5 >= 0 && var$21 < 0) {
            var$22 = var$19.$array.data[$var5];
            var$22.$minX0 = var$11;
            var$22.$minY0 = var$13;
            var$22.$minZ0 = var$15;
            var$22.$maxX0 = var$16;
            var$22.$maxY = var$17;
            var$22.$maxZ0 = var$18;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        var$9 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, $var9, var$22, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var8 = ($var9.$size0 ? 0 : 1) ? 0 : 1;
        if ($var8 && !$var7) {
            $var5 = $var6 | 8;
            var$21 = 3;
            $ptr = 3;
            continue main;
        }
        if (!$var8 && $var7) {
            $var5 = 3;
            $ptr = 5;
            continue main;
        }
        if (!$var8)
            return;
        $var5 = $this.$blockID;
        $var6 = !$this.$sensible ? 20 : 30;
        var$21 = 0;
        $ptr = 8;
        continue main;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, var$21);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_BlockButton_func_82536_d($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = 0;
        while (true) {
            var$21 = $rt_compare($var5, $par1World.$worldAccesses.$size0);
            if (var$21 >= 0) {
                var$11 = var$10 + 0.5;
                var$13 = var$12 + 0.5;
                var$15 = var$14 + 0.5;
                $var9 = $rt_s(1447);
                var$24 = 0.30000001192092896;
                var$25 = 0.6000000238418579;
                $ptr = 7;
                continue main;
            }
            if ($var5 < 0)
                break;
            if (var$21 >= 0)
                break;
            $var5 = $var5 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 6;
    case 6:
        nms_BlockButton_func_82536_d($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = 0;
        while (true) {
            var$21 = $rt_compare($var5, $par1World.$worldAccesses.$size0);
            if (var$21 >= 0) {
                var$11 = var$10 + 0.5;
                var$13 = var$12 + 0.5;
                var$15 = var$14 + 0.5;
                $var9 = $rt_s(1447);
                var$25 = 0.30000001192092896;
                var$24 = 0.5;
                $ptr = 9;
                continue main;
            }
            if ($var5 < 0)
                break;
            if (var$21 >= 0)
                break;
            $var5 = $var5 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 7:
        nms_World_playSoundEffect($par1World, var$11, var$13, var$15, $var9, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var8 && $var7) {
            $var5 = 3;
            $ptr = 5;
            continue main;
        }
        if (!$var8)
            return;
        $var5 = $this.$blockID;
        $var6 = !$this.$sensible ? 20 : 30;
        var$21 = 0;
        $ptr = 8;
    case 8:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $var5, $var6, var$21);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        nms_World_playSoundEffect($par1World, var$11, var$13, var$15, $var9, var$25, var$24);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var8)
            return;
        $var5 = $this.$blockID;
        $var6 = !$this.$sensible ? 20 : 30;
        var$21 = 0;
        $ptr = 8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, $var9, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $var8, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_BlockButton_func_82536_d = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 == 1) {
            $par2 = $par2 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 2) {
            $par2 = $par2 + 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 3;
            continue main;
        }
        if ($par5 == 3) {
            $par4 = $par4 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 4) {
            $par3 = $par3 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 5;
            continue main;
        }
        $par4 = $par4 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockButtonStone = $rt_classWithoutFields(nms_BlockButton),
nms_BlockButtonStone__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$sensible = 0;
},
nms_BlockButtonStone__init_0 = var_0 => {
    let var_1 = new nms_BlockButtonStone();
    nms_BlockButtonStone__init_(var_1, var_0);
    return var_1;
},
nms_BlockSnow = $rt_classWithoutFields(nms_Block),
nms_BlockSnow__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_snow);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
},
nms_BlockSnow__init_ = var_0 => {
    let var_1 = new nms_BlockSnow();
    nms_BlockSnow__init_0(var_1, var_0);
    return var_1;
},
nms_BlockSnow_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var5 = $var5 & 7;
        var$6 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$7 = $par2;
        var$8 = var$7 + $this.$minX1;
        var$9 = $par3 + $this.$minY1;
        var$10 = $par4;
        var$11 = var$10 + $this.$minZ1;
        var$7 = var$7 + $this.$maxX1;
        var$12 = $par3 + $var5 * 0.125;
        var$13 = var$10 + $this.$maxZ1;
        $par2 = var$6.$nextPoolIndex;
        $par1World = var$6.$listAABB;
        $par3 = $par1World.$size0;
        $par4 = $rt_compare($par2, $par3);
        if ($par4 >= 0) {
            var$14 = new nms_AxisAlignedBB;
            var$14.$minX0 = var$8;
            var$14.$minY0 = var$9;
            var$14.$minZ0 = var$11;
            var$14.$maxX0 = var$7;
            var$14.$maxY = var$12;
            var$14.$maxZ0 = var$13;
            ju_ArrayList_ensureCapacity($par1World, $par3 + 1 | 0);
            var$15 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$15[$par3] = var$14;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par4 < 0) {
            var$14 = $par1World.$array.data[$par2];
            var$14.$minX0 = var$8;
            var$14.$minY0 = var$9;
            var$14.$minZ0 = var$11;
            var$14.$maxX0 = var$7;
            var$14.$maxY = var$12;
            var$14.$maxZ0 = var$13;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$6.$nextPoolIndex = var$6.$nextPoolIndex + 1 | 0;
        return var$14;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockSnow_isOpaqueCube = $this => {
    return 0;
},
nms_BlockSnow_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockSnow_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        var$5 = (2 * (1 + ($par2 & 7) | 0) | 0) / 16.0;
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = var$5;
        $this.$maxZ1 = 1.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockSnow_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if (!$var5)
                $par2 = 0;
            else {
                if ($var5 == $this.$blockID) {
                    $ptr = 2;
                    continue main;
                }
                nms_Block_$callClinit();
                if ($var5 == nms_Block_leaves.$blockID)
                    break a;
                if (nms_Block_blocksList.data[$var5].$isOpaqueCube())
                    break a;
                $par2 = 0;
            }
            return $par2;
        }
        $ptr = 3;
        continue main;
    case 2:
        a: {
            $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par3 = $tmp;
            if (($par3 & 7) == 7)
                $par2 = 1;
            else {
                nms_Block_$callClinit();
                if ($var5 == nms_Block_leaves.$blockID)
                    break a;
                if (nms_Block_blocksList.data[$var5].$isOpaqueCube())
                    break a;
                $par2 = 0;
            }
            return $par2;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2) {
            nms_Material_$callClinit();
            $par1World = nms_Material_air;
        } else
            $par1World = nms_Block_blocksList.data[$par2].$blockMaterial;
        return $par1World.$blocksMovement();
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, $ptr);
},
nms_BlockSnow_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockSnow_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$8 = 0;
        $par5 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockSnow_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        $var7 = nms_Item_snowball.$itemID0;
        $var8 = $par6 & 7;
        var$9 = new nms_ItemStack;
        $par6 = $var8 + 1 | 0;
        nms_ItemStack_$callClinit();
        var$9.$itemID = $var7;
        var$9.$stackSize = $par6;
        var$9.$itemDamage = 0;
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = 0;
        $var8 = 0;
        $var7 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $par6, $var8, $var7);
        if ($rt_suspending()) {
            break main;
        }
        nms_StatList_$callClinit();
        $par1World = nms_StatList_mineBlockStatArray.data[$this.$blockID];
        if ($par1World !== null && !$par1World.$isIndependent)
            a: {
                var$9 = $par2EntityPlayer.$playerNetServerHandler;
                $par2EntityPlayer = new nms_Packet200Statistic;
                $par4 = $par1World.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par2EntityPlayer.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par2EntityPlayer.$statisticId = $par4;
                $par2EntityPlayer.$amount = 1;
                if ($par2EntityPlayer instanceof nms_Packet3Chat) {
                    $par1World = $par2EntityPlayer;
                    $par4 = var$9.$playerEntity.$chatVisibility;
                    if ($par4 == 2)
                        break a;
                    if ($par4 == 1 && !$par1World.$isServer)
                        break a;
                }
                try {
                    $par1World = var$9.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par2EntityPlayer = new otcic_JSStderrPrintStream;
                    var$9 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$9);
                    var$9.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($par2EntityPlayer, var$9);
                    $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                    $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                    $par2EntityPlayer.$autoFlush = 0;
                    $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $par2EntityPlayer;
                }
                jl_Throwable_printStackTrace($par1World, jl_System_errCache);
            }
        return;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1World, $par2EntityPlayer);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2EntityPlayer = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par2EntityPlayer, var$9);
                $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par2EntityPlayer.$autoFlush = 0;
                $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par2EntityPlayer;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, $var7, $var8, var$9, $ptr);
},
nms_BlockSnow_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_snowball.$itemID0;
},
nms_BlockSnow_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockSnow_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5Random = nms_EnumSkyBlock_Block;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getSavedLightValue($par1World, $par5Random, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 11)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$6 = 0;
        var$8 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$7, var$8, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$7 = 0;
        var$9 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, $ptr);
},
nms_BlockIce = $rt_classWithoutFields(nms_BlockBreakable),
nms_BlockIce__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_ice);
    $this.$localFlag = 0;
    $this.$breakableBlockIcon = $rt_s(797);
    $this.$slipperiness = 0.9800000190734863;
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockIce__init_ = var_0 => {
    let var_1 = new nms_BlockIce();
    nms_BlockIce__init_0(var_1, var_0);
    return var_1;
},
nms_BlockIce_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let var$7, $var8, $var9, $var7, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_StatList_$callClinit();
        var$7 = nms_StatList_mineBlockStatArray.data[$this.$blockID];
        if (var$7 !== null && !var$7.$isIndependent)
            a: {
                $var8 = $par2EntityPlayer.$playerNetServerHandler;
                $var9 = new nms_Packet200Statistic;
                $var7 = var$7.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$statisticId = $var7;
                $var9.$amount = 1;
                if ($var9 instanceof nms_Packet3Chat) {
                    var$7 = $var9;
                    $var7 = $var8.$playerEntity.$chatVisibility;
                    if ($var7 == 2)
                        break a;
                    if ($var7 == 1 && !var$7.$isServer)
                        break a;
                }
                try {
                    $var8 = $var8.$netManager;
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$7, $var8);
                    var$7.$sb = jl_StringBuilder__init_();
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace($var9, jl_System_errCache);
            }
        if (!$par2EntityPlayer.$capabilities.$disableDamage && !$par2EntityPlayer.$worldObj.$isRemote) {
            $var9 = $par2EntityPlayer.$foodStats;
            $var9.$foodExhaustionLevel = jl_Math_minImpl($var9.$foodExhaustionLevel + 0.02500000037252903, 40.0);
        }
        if ($this.$isBlockContainer ? 0 : 1) {
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            var$11 = nms_Enchantment_silkTouch.$effectId;
            $var9 = $par2EntityPlayer.$inventory0;
            var$12 = $var9.$currentItem;
            $var9 = var$12 < 9 && var$12 >= 0 ? $var9.$mainInventory.data[var$12] : null;
            if (nms_EnchantmentHelper_getEnchantmentLevel(var$11, $var9) <= 0 ? 0 : 1) {
                $var9 = nms_Block_createStackedBlock($this, $par6);
                if ($var9 === null)
                    return;
                $ptr = 6;
                continue main;
            }
        }
        if ($par1World.$provider.$isHellWorld) {
            $par6 = 0;
            $var7 = 0;
            var$11 = 3;
            $ptr = 2;
            continue main;
        }
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        $var7 = nms_Enchantment_fortune.$effectId;
        $par2EntityPlayer = $par2EntityPlayer.$inventory0;
        var$12 = $par2EntityPlayer.$currentItem;
        $var7 = nms_EnchantmentHelper_getEnchantmentLevel($var7, var$12 < 9 && var$12 >= 0 ? $par2EntityPlayer.$mainInventory.data[var$12] : null);
        var$13 = 1.0;
        $ptr = 3;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var8);
                $var8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, $var8);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        if (!$par2EntityPlayer.$capabilities.$disableDamage && !$par2EntityPlayer.$worldObj.$isRemote) {
            $var9 = $par2EntityPlayer.$foodStats;
            $var9.$foodExhaustionLevel = jl_Math_minImpl($var9.$foodExhaustionLevel + 0.02500000037252903, 40.0);
        }
        if ($this.$isBlockContainer ? 0 : 1) {
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            var$11 = nms_Enchantment_silkTouch.$effectId;
            $var9 = $par2EntityPlayer.$inventory0;
            var$12 = $var9.$currentItem;
            $var9 = var$12 < 9 && var$12 >= 0 ? $var9.$mainInventory.data[var$12] : null;
            if (nms_EnchantmentHelper_getEnchantmentLevel(var$11, $var9) <= 0 ? 0 : 1) {
                $var9 = nms_Block_createStackedBlock($this, $par6);
                if ($var9 === null)
                    return;
                $ptr = 6;
                continue main;
            }
        }
        if ($par1World.$provider.$isHellWorld) {
            $par6 = 0;
            $var7 = 0;
            var$11 = 3;
            $ptr = 2;
            continue main;
        }
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        $var7 = nms_Enchantment_fortune.$effectId;
        $par2EntityPlayer = $par2EntityPlayer.$inventory0;
        var$12 = $par2EntityPlayer.$currentItem;
        $var7 = nms_EnchantmentHelper_getEnchantmentLevel($var7, var$12 < 9 && var$12 >= 0 ? $par2EntityPlayer.$mainInventory.data[var$12] : null);
        var$13 = 1.0;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $par6, $var7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par3, $par4, $par5, $par6, var$13, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $par4 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par3, $par6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if (!$par6) {
            nms_Material_$callClinit();
            $var8 = nms_Material_air;
        } else
            $var8 = nms_Block_blocksList.data[$par6].$blockMaterial;
        if (!$var8.$blocksMovement() && !$var8.$isLiquid())
            return;
        $par6 = nms_Block_waterMoving.$blockID;
        $var7 = 0;
        var$11 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $par6, $var7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, var$7, $var8, $var9, $var7, var$11, var$12, var$13, $ptr);
},
nms_BlockIce_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockIce_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5Random = nms_EnumSkyBlock_Block;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getSavedLightValue($par1World, $par5Random, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        if (var$6 <= (11 - nms_Block_lightOpacity.data[$this.$blockID] | 0))
            return;
        if (!$par1World.$provider.$isHellWorld) {
            $ptr = 2;
            continue main;
        }
        var$6 = 0;
        var$7 = 0;
        var$8 = 3;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = 0;
        var$9 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$6, var$9, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = nms_Block_waterStill.$blockID;
        var$7 = 0;
        var$8 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, $ptr);
},
nms_BlockIce_getMobilityFlag = $this => {
    return 0;
},
nms_BlockSnowBlock = $rt_classWithoutFields(nms_Block),
nms_BlockSnowBlock__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_craftedSnow);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockSnowBlock__init_ = var_0 => {
    let var_1 = new nms_BlockSnowBlock();
    nms_BlockSnowBlock__init_0(var_1, var_0);
    return var_1;
},
nms_BlockSnowBlock_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_snowball.$itemID0;
},
nms_BlockSnowBlock_quantityDropped = ($this, $par1Random) => {
    return 4;
},
nms_BlockSnowBlock_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5Random = nms_EnumSkyBlock_Block;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getSavedLightValue($par1World, $par5Random, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 <= 11)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$6 = 0;
        var$8 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$7, var$8, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$7 = 0;
        var$9 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, $ptr);
};
let nms_BlockCactus = $rt_classWithoutFields(nms_Block),
nms_BlockCactus__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_cactus);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockCactus__init_0 = var_0 => {
    let var_1 = new nms_BlockCactus();
    nms_BlockCactus__init_(var_1, var_0);
    return var_1;
},
nms_BlockCactus_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $var7, $var6, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!($var7 ? 0 : 1))
            return;
        $var6 = 1;
        $var7 = $par3 - $var6 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $var7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 != $this.$blockID) {
            if ($var6 >= 3)
                return;
            $ptr = 3;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        $var7 = $par3 - $var6 | 0;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 != 15) {
            $var7 = $var7 + 1 | 0;
            $var6 = 4;
            $ptr = 4;
            continue main;
        }
        $var7 = $this.$blockID;
        $var6 = 0;
        var$9 = 3;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlock($par1World, $par2, var$6, $par4, $var7, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 0;
        $var6 = 4;
        $ptr = 6;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
    case 7:
        $tmp = nms_BlockCactus_canBlockStay($this, $par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3)
            return;
        $par3 = 1;
        $ptr = 8;
    case 8:
        nms_World_destroyBlock($par1World, $par2, var$6, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $var7, $var6, var$9, $ptr);
},
nms_BlockCactus_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$6 = $par2 + 0.0625;
    var$7 = $par3;
    var$8 = $par4 + 0.0625;
    var$9 = ($par2 + 1 | 0) - 0.0625;
    var$10 = ($par3 + 1 | 0) - 0.0625;
    var$11 = ($par4 + 1 | 0) - 0.0625;
    $par2 = var$5.$nextPoolIndex;
    $par1World = var$5.$listAABB;
    $par4 = $par1World.$size0;
    $par3 = $rt_compare($par2, $par4);
    if ($par3 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$7;
        var$12.$minZ0 = var$8;
        var$12.$maxX0 = var$9;
        var$12.$maxY = var$10;
        var$12.$maxZ0 = var$11;
        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
        var$13 = $par1World.$array.data;
        $par3 = $par1World.$size0;
        $par1World.$size0 = $par3 + 1 | 0;
        var$13[$par3] = var$12;
        $par1World.$modCount = $par1World.$modCount + 1 | 0;
    } else if ($par2 >= 0 && $par3 < 0) {
        var$12 = $par1World.$array.data[$par2];
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$7;
        var$12.$minZ0 = var$8;
        var$12.$maxX0 = var$9;
        var$12.$maxY = var$10;
        var$12.$maxZ0 = var$11;
    } else {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
    return var$12;
},
nms_BlockCactus_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockCactus_isOpaqueCube = $this => {
    return 0;
},
nms_BlockCactus_getRenderType = $this => {
    return 13;
},
nms_BlockCactus_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable) {
                    var$5 = 0;
                    break a;
                }
            }
            var$5 = 1;
        }
        if (!var$5)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockCactus_canBlockStay($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockCactus_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockCactus_canBlockStay($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $par5 = 1;
        $ptr = 2;
    case 2:
        nms_World_destroyBlock($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockCactus_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5) {
            nms_Material_$callClinit();
            var$6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (var$6.$isSolid())
            return 0;
        $var5 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (var$6.$isSolid())
            return 0;
        $var5 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (var$6.$isSolid())
            return 0;
        $var5 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            var$6 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (var$6.$isSolid())
            return 0;
        $par3 = $par3 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        return $var5 != nms_Block_cactus.$blockID && $var5 != nms_Block_sand.$blockID ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $ptr);
},
nms_BlockCactus_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1World = nms_DamageSource_cactus;
        var$6 = 1.0;
        $ptr = 1;
    case 1:
        $par5Entity.$attackEntityFrom($par1World, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, var$6, $ptr);
},
nms_BlockClay = $rt_classWithoutFields(nms_Block),
nms_BlockClay__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_clay);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockClay__init_ = var_0 => {
    let var_1 = new nms_BlockClay();
    nms_BlockClay__init_0(var_1, var_0);
    return var_1;
},
nms_BlockClay_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_clay.$itemID0;
},
nms_BlockClay_quantityDropped = ($this, $par1Random) => {
    return 4;
},
nms_BlockReed = $rt_classWithoutFields(nms_Block),
nms_BlockReed__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$minX1 = 0.125;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.125;
    $this.$maxX1 = 0.875;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 0.875;
    $this.$needsRandomTick = 1;
},
nms_BlockReed__init_ = var_0 => {
    let var_1 = new nms_BlockReed();
    nms_BlockReed__init_0(var_1, var_0);
    return var_1;
},
nms_BlockReed_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $var7, $var6, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!($var7 ? 0 : 1))
            return;
        $var6 = 1;
        $var7 = $par3 - $var6 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $var7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 != $this.$blockID) {
            if ($var6 >= 3)
                return;
            $ptr = 3;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        $var7 = $par3 - $var6 | 0;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 != 15) {
            $var7 = $var7 + 1 | 0;
            $var6 = 4;
            $ptr = 4;
            continue main;
        }
        $var7 = $this.$blockID;
        $var6 = 0;
        var$9 = 3;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlock($par1World, $par2, var$6, $par4, $var7, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 0;
        $var6 = 4;
        $ptr = 6;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $var7, $var6, var$9, $ptr);
},
nms_BlockReed_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if ($var5 == $this.$blockID)
                $par2 = 1;
            else {
                nms_Block_$callClinit();
                if ($var5 == nms_Block_grass.$blockID)
                    break a;
                if ($var5 == nms_Block_dirt.$blockID)
                    break a;
                if ($var5 == nms_Block_sand.$blockID)
                    break a;
                $par2 = 0;
            }
            return $par2;
        }
        $par3 = $par2 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else
            var$7 = nms_Block_blocksList.data[$par3].$blockMaterial;
        nms_Material_$callClinit();
        if (var$7 === nms_Material_water)
            return 1;
        $par3 = $par2 + 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par3, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ((!$par3 ? nms_Material_air : nms_Block_blocksList.data[$par3].$blockMaterial) === nms_Material_water)
            return 1;
        $par3 = $par4 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ((!$par3 ? nms_Material_air : nms_Block_blocksList.data[$par3].$blockMaterial) === nms_Material_water)
            return 1;
        $par3 = $par4 + 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return (!$par2 ? nms_Material_air : nms_Block_blocksList.data[$par2].$blockMaterial) !== nms_Material_water ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, var$7, $ptr);
},
nms_BlockReed_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockReed_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        var$8 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockReed_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockReed_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockReed_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockReed_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_reed.$itemID0;
},
nms_BlockReed_isOpaqueCube = $this => {
    return 0;
},
nms_BlockReed_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockReed_getRenderType = $this => {
    return 1;
},
nms_BlockJukeBox = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockJukeBox__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    $this.$isBlockContainer = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockJukeBox__init_ = var_0 => {
    let var_1 = new nms_BlockJukeBox();
    nms_BlockJukeBox__init_0(var_1, var_0);
    return var_1;
},
nms_BlockJukeBox_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if (!$par6)
            return 0;
        $ptr = 2;
    case 2:
        nms_BlockJukeBox_ejectRecord($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $ptr);
},
nms_BlockJukeBox_ejectRecord = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, $var6, var$8, var$9, var$10, $var8, $var10, var$13, $var12, $var14, var$16, var$17, var$18, var$19, var$20, var$21, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $var5 = var$5;
        if ($var5 !== null) {
            $var6 = $var5.$record;
            if ($var6 !== null) {
                var$8 = 1005;
                var$9 = 0;
                var$5 = null;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_World_playAuxSFXAtEntity($par1World, var$5, var$8, $par2, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = 0;
        while (true) {
            var$8 = $rt_compare(var$9, $par1World.$worldAccesses.$size0);
            if (var$8 >= 0) {
                $var5.$record = null;
                $ptr = 3;
                continue main;
            }
            if (var$9 < 0)
                break;
            if (var$8 >= 0)
                break;
            var$9 = var$9 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 3:
        nms_TileEntity_onInventoryChanged($var5);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = 0;
        var$8 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$9, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par1World.$rand0;
        var$10 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$10;
        $var8 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 0.699999988079071 + 0.15000000596046448;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$10;
        $var10 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 0.699999988079071 + 0.06000000238418579 + 0.6;
        var$13 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$13;
        $var12 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 0.699999988079071 + 0.15000000596046448;
        $var14 = new nms_ItemStack;
        var$9 = $var6.$itemID;
        var$8 = $var6.$stackSize;
        var$16 = $var6.$itemDamage;
        nms_ItemStack_$callClinit();
        $var14.$itemID = var$9;
        $var14.$stackSize = var$8;
        $var14.$itemDamage = var$16;
        if (var$16 < 0)
            $var14.$itemDamage = 0;
        var$17 = $var6.$stackTagCompound;
        if (var$17 !== null) {
            var$18 = new nms_NBTTagCompound;
            var$5 = var$17.$name;
            if (var$5 === null)
                var$5 = $rt_s(3);
            var$18.$name = var$5;
            var$5 = new ju_HashMap;
            var$9 = ju_HashMap_calculateCapacity(16);
            var$5.$elementCount = 0;
            var$19 = $rt_createArray(ju_HashMap$HashEntry, var$9);
            var$20 = var$19.data;
            var$5.$elementData = var$19;
            var$5.$loadFactor = 0.75;
            var$5.$threshold = var$20.length * 0.75 | 0;
            var$18.$tagMap = var$5;
            var$5 = var$17.$tagMap;
            if (var$5.$cachedKeySet === null) {
                $var6 = new ju_HashMap$1;
                $var6.$this$0 = var$5;
                var$5.$cachedKeySet = $var6;
            }
            var$21 = var$5.$cachedKeySet.$iterator();
            while (var$21.$hasNext()) {
                $var5 = var$21.$next();
                var$5 = var$17.$tagMap;
                if ($var5 === null) {
                    $var15 = var$5.$elementData.data[0];
                    while ($var15 !== null && $var15.$key !== null) {
                        $var15 = $var15.$next3;
                    }
                } else {
                    a: {
                        if (!$var5.$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $var5.$nativeString.length)
                                    break a;
                                $var5.$hashCode1 = (31 * $var5.$hashCode1 | 0) + $var5.$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $var5.$hashCode1;
                    var$19 = var$5.$elementData.data;
                    $var15 = var$19[var$8 & (var$19.length - 1 | 0)];
                    while ($var15 !== null) {
                        if ($var15.$origKeyHash == var$8) {
                            b: {
                                var$5 = $var15.$key;
                                if ($var5 !== var$5) {
                                    if ($var5 === var$5)
                                        var$9 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        var$5 = var$5;
                                        var$9 = $var5.$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break b;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        $var15 = $var15.$next3;
                    }
                }
                var$5 = $var15 === null ? null : $var15.$value0;
                var$5 = var$5.$copy();
                $var6 = var$18.$tagMap;
                if ($var5 !== null)
                    var$5.$name = $var5;
                else
                    var$5.$name = $rt_s(3);
                ju_HashMap_putImpl($var6, $var5, var$5);
            }
            $var14.$stackTagCompound = var$18;
        }
        $var15 = new nms_EntityItem;
        $var8 = $par2 + $var8;
        $var10 = $par3 + $var10;
        $var12 = $par4 + $var12;
        $ptr = 5;
    case 5:
        nms_EntityItem__init_($var15, $par1World, $var8, $var10, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var15.$dataWatcher;
        var$5 = $var5.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var6 = jl_Integer_integerCache.data[138];
        if ($var6 === null) {
            var$17 = var$5.$elementData.data[0];
            while (var$17 !== null && var$17.$key !== null) {
                var$17 = var$17.$next3;
            }
        } else {
            $par3 = $var6.$value;
            var$19 = var$5.$elementData.data;
            var$17 = var$19[$par3 & (var$19.length - 1 | 0)];
            while (var$17 !== null) {
                if (var$17.$origKeyHash == $par3) {
                    var$5 = var$17.$key;
                    if ($var6 !== var$5 && !jl_Integer_equals($var6, var$5) ? 0 : 1)
                        break;
                }
                var$17 = var$17.$next3;
            }
        }
        $var6 = var$17 === null ? null : var$17.$value0;
        if (!($var14 !== $var6.$watchedObject ? 0 : 1)) {
            $var6.$watchedObject = $var14;
            $var6.$watched = 1;
            $var5.$objectChanged = 1;
        }
        $var14 = $var15.$dataWatcher;
        var$5 = $var14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[138];
        if ($var5 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            $par4 = $var5.$value;
            var$19 = var$5.$elementData.data;
            var$5 = var$19[$par4 & (var$19.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == $par4) {
                    $var6 = var$5.$key;
                    if ($var5 !== $var6 && !jl_Integer_equals($var5, $var6) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        (var$5 === null ? null : var$5.$value0).$watched = 1;
        $var14.$objectChanged = 1;
        $var15.$delayBeforeCanPickup = 10;
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($par1World, $var15);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, $var6, var$8, var$9, var$10, $var8, $var10, var$13, $var12, $var14, var$16, var$17, var$18, var$19, var$20, var$21, $var15, $ptr);
},
nms_BlockJukeBox_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockJukeBox_ejectRecord($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockJukeBox_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $par7 = 0;
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $ptr);
},
nms_BlockJukeBox_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityRecordPlayer;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
},
nms_BlockJukeBox_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockJukeBox_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var6 = $par1World.$record;
        if ($var6 === null)
            $par2 = 0;
        else {
            $par2 = $var6.$itemID + 1 | 0;
            nms_Item_$callClinit();
            $par2 = $par2 - nms_Item_record13.$itemID0 | 0;
        }
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $ptr);
};
function nms_BlockFence() {
    nms_Block.call(this);
    this.$field_94464_a = null;
}
let nms_BlockFence__init_0 = ($this, $par1, $par2Str, $par3Material) => {
    nms_Block__init_($this, $par1, $par3Material);
    $this.$field_94464_a = $par2Str;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockFence__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_BlockFence();
    nms_BlockFence__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_BlockFence_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var15, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List
        = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$8 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$8 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        var$8 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1World, var$8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        var$8 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1World, var$8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var12 = 0.375;
        $var13 = 0.625;
        $var14 = 0.375;
        $var15 = 0.625;
        if ($var8)
            $var14 = 0.0;
        if ($var9)
            $var15 = 1.0;
        if (!(!$var8 && !$var9)) {
            $this.$minX1 = 0.375;
            $this.$minY1 = 0.0;
            $this.$minZ1 = $var14;
            $this.$maxX1 = 0.625;
            $this.$maxY0 = 1.5;
            $this.$maxZ1 = $var15;
            $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$17 = $par2;
            var$18 = var$17 + $this.$minX1;
            var$19 = $par3;
            var$20 = var$19 + $this.$minY1;
            var$21 = $par4;
            var$22 = var$21 + $this.$minZ1;
            var$23 = var$17 + $this.$maxX1;
            var$19 = var$19 + $this.$maxY0;
            var$21 = var$21 + $this.$maxZ1;
            var$8 = $par7Entity.$nextPoolIndex;
            $par1World = $par7Entity.$listAABB;
            var$24 = $par1World.$size0;
            var$25 = $rt_compare(var$8, var$24);
            if (var$25 >= 0) {
                var$26 = new nms_AxisAlignedBB;
                var$26.$minX0 = var$18;
                var$26.$minY0 = var$20;
                var$26.$minZ0 = var$22;
                var$26.$maxX0 = var$23;
                var$26.$maxY = var$19;
                var$26.$maxZ0 = var$21;
                ju_ArrayList_ensureCapacity($par1World, var$24 + 1 | 0);
                var$27 = $par1World.$array.data;
                var$24 = $par1World.$size0;
                $par1World.$size0 = var$24 + 1 | 0;
                var$27[var$24] = var$26;
                $par1World.$modCount = $par1World.$modCount + 1 | 0;
            } else if (var$8 >= 0 && var$25 < 0) {
                var$26 = $par1World.$array.data[var$8];
                var$26.$minX0 = var$18;
                var$26.$minY0 = var$20;
                var$26.$minZ0 = var$22;
                var$26.$maxX0 = var$23;
                var$26.$maxY = var$19;
                var$26.$maxZ0 = var$21;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
            if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$26)) {
                ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                var$27 = $par6List.$array.data;
                var$24 = $par6List.$size0;
                $par6List.$size0 = var$24 + 1 | 0;
                var$27[var$24] = var$26;
                $par6List.$modCount = $par6List.$modCount + 1 | 0;
            }
        }
        $var14 = 0.375;
        $var15 = 0.625;
        if ($var10)
            $var12 = 0.0;
        if ($var11)
            $var13 = 1.0;
        a: {
            if (!$var10 && !$var11) {
                if ($var8)
                    break a;
                if ($var9)
                    break a;
            }
            $this.$minX1 = $var12;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.375;
            $this.$maxX1 = $var13;
            $this.$maxY0 = 1.5;
            $this.$maxZ1 = 0.625;
            var$26 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$18 = $par2;
            var$19 = var$18 + $this.$minX1;
            var$20 = $par3;
            var$21 = var$20 + $this.$minY1;
            var$22 = $par4;
            var$23 = var$22 + $this.$minZ1;
            var$18 = var$18 + $this.$maxX1;
            var$20 = var$20 + $this.$maxY0;
            var$22 = var$22 + $this.$maxZ1;
            $par2 = var$26.$nextPoolIndex;
            $par1World = var$26.$listAABB;
            $par4 = $par1World.$size0;
            $par3 = $rt_compare($par2, $par4);
            if ($par3 >= 0) {
                $par7Entity = new nms_AxisAlignedBB;
                $par7Entity.$minX0 = var$19;
                $par7Entity.$minY0 = var$21;
                $par7Entity.$minZ0 = var$23;
                $par7Entity.$maxX0 = var$18;
                $par7Entity.$maxY = var$20;
                $par7Entity.$maxZ0 = var$22;
                ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                var$27 = $par1World.$array.data;
                $par3 = $par1World.$size0;
                $par1World.$size0 = $par3 + 1 | 0;
                var$27[$par3] = $par7Entity;
                $par1World.$modCount = $par1World.$modCount + 1 | 0;
            } else if ($par2 >= 0 && $par3 < 0) {
                $par7Entity = $par1World.$array.data[$par2];
                $par7Entity.$minX0 = var$19;
                $par7Entity.$minY0 = var$21;
                $par7Entity.$minZ0 = var$23;
                $par7Entity.$maxX0 = var$18;
                $par7Entity.$maxY = var$20;
                $par7Entity.$maxZ0 = var$22;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            var$26.$nextPoolIndex = var$26.$nextPoolIndex + 1 | 0;
            if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                var$27 = $par6List.$array.data;
                $par3 = $par6List.$size0;
                $par6List.$size0 = $par3 + 1 | 0;
                var$27[$par3] = $par7Entity;
                $par6List.$modCount = $par6List.$modCount + 1 | 0;
            }
        }
        if ($var8)
            $var14 = 0.0;
        if ($var9)
            $var15 = 1.0;
        $this.$minX1 = $var12;
        $this.$minY1 = 0.0;
        $this.$minZ1 = $var14;
        $this.$maxX1 = $var13;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = $var15;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var15, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $ptr);
},
nms_BlockFence_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var6, $var5, $var7, $var8, $var9, $var10, $var11, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1IBlockAccess, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1IBlockAccess, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1IBlockAccess, $var7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $par2 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_BlockFence_canConnectFenceTo($this, $par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = 0.375;
        $var10 = 0.625;
        $var11 = 0.375;
        $var12 = 0.625;
        if ($var5)
            $var11 = 0.0;
        if ($var6)
            $var12 = 1.0;
        if ($var7)
            $var9 = 0.0;
        if ($var8)
            $var10 = 1.0;
        $this.$minX1 = $var9;
        $this.$minY1 = 0.0;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = $var12;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var6, $var5, $var7, $var8, $var9, $var10, $var11, $var12, $ptr);
},
nms_BlockFence_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFence_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFence_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    return 0;
},
nms_BlockFence_getRenderType = $this => {
    return 11;
},
nms_BlockFence_canConnectFenceTo = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 != $this.$blockID) {
            nms_Block_$callClinit();
            if ($var5 != nms_Block_fenceGate.$blockID) {
                a: {
                    $var6 = nms_Block_blocksList.data[$var5];
                    if ($var6 !== null) {
                        $par1IBlockAccess = $var6.$blockMaterial;
                        if ((!$par1IBlockAccess.$isTranslucent ? $par1IBlockAccess.$blocksMovement() : 0) && $var6.$renderAsNormalBlock()) {
                            $par1IBlockAccess = $var6.$blockMaterial;
                            nms_Material_$callClinit();
                            if ($par1IBlockAccess === nms_Material_pumpkin) {
                                $par2 = 0;
                                break a;
                            }
                            $par2 = 1;
                            break a;
                        }
                    }
                    $par2 = 0;
                }
                return $par2;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $ptr);
},
nms_BlockFence_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_ItemLeash_func_135066_a($par5EntityPlayer, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $ptr);
};
function nms_BlockPumpkin() {
    nms_BlockDirectional.call(this);
    this.$blockType1 = 0;
}
let nms_BlockPumpkin__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_pumpkin);
    $this.$needsRandomTick = 1;
    $this.$blockType1 = $par2;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockPumpkin__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockPumpkin();
    nms_BlockPumpkin__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockPumpkin_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var8, var$7, $var6, $var10, $var7, var$11, var$12, var$13, $var5, var$15, $var9, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var9 = $thread.pop();var$15 = $thread.pop();$var5 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var8 = $thread.pop();var$5 = $thread.pop();$par4 =
        $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        nms_Block_$callClinit();
        if ($var8 != nms_Block_blockSnow.$blockID) {
            $ptr = 2;
            continue main;
        }
        $var8 = $par3 - 2 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 != nms_Block_blockIron.$blockID)
            return;
        var$7 = $par3 - 2 | 0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 != nms_Block_blockSnow.$blockID) {
            $ptr = 2;
            continue main;
        }
        if ($par1World.$isRemote) {
            $var10 = 0;
            a: {
                while ($var10 < 120) {
                    $var7 = $par1World.$rand0;
                    var$11 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var7.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var7.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var7.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var7.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var7.$seed = var$11;
                    $var7.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2 = 0;
                    while (true) {
                        $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                        if ($par3 >= 0)
                            break;
                        if ($par2 < 0)
                            break a;
                        if ($par3 >= 0)
                            break a;
                        $par2 = $par2 + 1 | 0;
                    }
                    $var10 = $var10 + 1 | 0;
                }
                return;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var6 = 0;
        $var10 = 0;
        var$12 = 2;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, var$7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 != nms_Block_blockIron.$blockID)
            return;
        var$13 = $par2 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$13, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 == nms_Block_blockIron.$blockID) {
            $var8 = $par2 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        $var5 = 0;
        var$15 = $par4 - 1 | 0;
        $ptr = 15;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, $var10, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        $var10 = 0;
        var$12 = 2;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par1World, $par2, var$5, $par4, $var6, $var10, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        $var10 = 0;
        var$12 = 2;
        $ptr = 8;
    case 8:
        nms_World_setBlock($par1World, $par2, $var8, $par4, $var6, $var10, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = new nms_EntitySnowman;
        $ptr = 9;
    case 9:
        nms_EntitySnowman__init_($var9, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $par2 + 0.5;
        var$18 = $par3 - 1.95;
        var$19 = $par4 + 0.5;
        $var9.$posX = var$17;
        $var9.$prevPosX = var$17;
        $var9.$lastTickPosX = var$17;
        var$18 = var$18 + $var9.$yOffset;
        $var9.$posY = var$18;
        $var9.$prevPosY = var$18;
        $var9.$lastTickPosY = var$18;
        $var9.$posZ = var$19;
        $var9.$prevPosZ = var$19;
        $var9.$lastTickPosZ = var$19;
        $var9.$rotationYaw = 0.0;
        $var9.$rotationPitch = 0.0;
        nms_Entity_setPosition($var9, var$17, var$18, var$19);
        $ptr = 10;
    case 10:
        nms_World_spawnEntityInWorld($par1World, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        $ptr = 11;
    case 11:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 12;
    case 12:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 13;
    case 13:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $var8, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 0;
        b: {
            while ($var10 < 120) {
                $var7 = $par1World.$rand0;
                var$11 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var7.$seed = var$11;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var7.$seed = var$11;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var7.$seed = var$11;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var7.$seed = var$11;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var7.$seed = var$11;
                $var7.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2 = 0;
                while (true) {
                    $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                    if ($par3 >= 0)
                        break;
                    if ($par2 < 0)
                        break b;
                    if ($par3 >= 0)
                        break b;
                    $par2 = $par2 + 1 | 0;
                }
                $var10 = $var10 + 1 | 0;
            }
            return;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 14:
        $tmp = nms_World_getBlockId($par1World, $var8, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var5 = $var8 != nms_Block_blockIron.$blockID ? 0 : 1;
        var$15 = $par4 - 1 | 0;
        $ptr = 15;
    case 15:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 == nms_Block_blockIron.$blockID) {
            $var8 = $par4 + 1 | 0;
            $ptr = 16;
            continue main;
        }
        if (!$var5 && !0)
            return;
        $var10 = 0;
        $var8 = 0;
        $var6 = 2;
        $ptr = 17;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var6 = $var8 != nms_Block_blockIron.$blockID ? 0 : 1;
        if (!$var5 && !$var6)
            return;
        $var10 = 0;
        $var8 = 0;
        $var6 = 2;
        $ptr = 17;
    case 17:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var10, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 0;
        $var6 = 0;
        $var10 = 2;
        $ptr = 18;
    case 18:
        nms_World_setBlock($par1World, $par2, var$5, $par4, $var8, $var6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 0;
        $var6 = 0;
        $var10 = 2;
        $ptr = 19;
    case 19:
        nms_World_setBlock($par1World, $par2, var$7, $par4, $var8, $var6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var5) {
            $var8 = 0;
            $var6 = 0;
            $var10 = 2;
            $ptr = 20;
            continue main;
        }
        $var8 = 0;
        $var6 = 0;
        $var10 = 2;
        $ptr = 22;
        continue main;
    case 20:
        nms_World_setBlock($par1World, $par2, var$5, var$15, $var8, $var6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $par4 + 1 | 0;
        $var6 = 0;
        $var10 = 0;
        var$12 = 2;
        $ptr = 21;
    case 21:
        nms_World_setBlock($par1World, $par2, var$5, $var8, $var6, $var10, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = new nms_EntityIronGolem;
        $ptr = 24;
        continue main;
    case 22:
        nms_World_setBlock($par1World, var$13, var$5, $par4, $var8, $var6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $par2 + 1 | 0;
        $var6 = 0;
        $var10 = 0;
        var$12 = 2;
        $ptr = 23;
    case 23:
        nms_World_setBlock($par1World, $var8, var$5, $par4, $var6, $var10, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = new nms_EntityIronGolem;
        $ptr = 24;
    case 24:
        nms_EntityIronGolem__init_($var7, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var7.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$20 = jl_Integer_integerCache.data[144];
        if (var$20 === null) {
            $var9 = $var9.$elementData.data[0];
            while ($var9 !== null && $var9.$key !== null) {
                $var9 = $var9.$next3;
            }
        } else {
            $var10 = var$20.$value;
            var$21 = $var9.$elementData.data;
            $var9 = var$21[$var10 & (var$21.length - 1 | 0)];
            while ($var9 !== null) {
                if ($var9.$origKeyHash == $var10) {
                    var$22 = $var9.$key;
                    if (var$20 !== var$22 && !(var$20 === var$22 ? 1 : var$22 instanceof jl_Integer && var$22.$value == $var10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var9 = $var9.$next3;
            }
        }
        $var6 = ($var9 === null ? null : $var9.$value0).$watchedObject.$value1;
        $var9 = $var7.$dataWatcher;
        $var8 = ($var6 | 1) << 24 >> 24;
        var$23 = jl_Byte_byteCache.data[$var8 + 128 | 0];
        var$22 = $var9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$24 = jl_Integer_integerCache.data[144];
        if (var$24 === null) {
            var$22 = var$22.$elementData.data[0];
            while (var$22 !== null && var$22.$key !== null) {
                var$22 = var$22.$next3;
            }
        } else {
            $var10 = var$24.$value;
            var$21 = var$22.$elementData.data;
            var$22 = var$21[$var10 & (var$21.length - 1 | 0)];
            while (var$22 !== null) {
                if (var$22.$origKeyHash == $var10) {
                    var$20 = var$22.$key;
                    if (var$24 !== var$20 && !(var$24 === var$20 ? 1 : var$20 instanceof jl_Integer && var$20.$value == $var10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$22 = var$22.$next3;
            }
        }
        var$20 = var$22 === null ? null : var$22.$value0;
        var$22 = var$20.$watchedObject;
        if (!(var$22 instanceof jl_Byte && var$22.$value1 == var$23.$value1 ? 1 : 0)) {
            var$20.$watchedObject = var$23;
            var$20.$watched = 1;
            $var9.$objectChanged = 1;
        }
        var$17 = $par2 + 0.5;
        var$18 = $par3 - 1.95;
        var$19 = $par4 + 0.5;
        $var7.$posX = var$17;
        $var7.$prevPosX = var$17;
        $var7.$lastTickPosX = var$17;
        var$18 = var$18 + $var7.$yOffset;
        $var7.$posY = var$18;
        $var7.$prevPosY = var$18;
        $var7.$lastTickPosY = var$18;
        $var7.$posZ = var$19;
        $var7.$prevPosZ = var$19;
        $var7.$lastTickPosZ = var$19;
        $var7.$rotationYaw = 0.0;
        $var7.$rotationPitch = 0.0;
        nms_Entity_setPosition($var7, var$17, var$18, var$19);
        $ptr = 25;
    case 25:
        nms_World_spawnEntityInWorld($par1World, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 0;
        c: while (true) {
            if ($var8 >= 120) {
                $var8 = 0;
                $ptr = 26;
                continue main;
            }
            $var7 = $par1World.$rand0;
            var$25 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$25;
            var$11 = Long_and(Long_add(Long_mul(var$25, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$11;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$11;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$11;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$11;
            $var7.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6 = 0;
            while (true) {
                $var10 = $rt_compare($var6, $par1World.$worldAccesses.$size0);
                if ($var10 >= 0)
                    break;
                if ($var6 < 0)
                    break c;
                if ($var10 >= 0)
                    break c;
                $var6 = $var6 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 26:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 27;
    case 27:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 28;
    case 28:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$7, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var5) {
            $par3 = 0;
            $ptr = 29;
            continue main;
        }
        $par3 = 0;
        $ptr = 31;
        continue main;
    case 29:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, var$15, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par4 + 1 | 0;
        $par4 = 0;
        $ptr = 30;
    case 30:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 31:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$13, var$5, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $par2 + 1 | 0;
        $par3 = 0;
        $ptr = 32;
    case 32:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$5, $par4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var8, var$7, $var6, $var10, $var7, var$11, var$12, var$13, $var5, var$15, $var9, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_BlockPumpkin_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5) {
            nms_Block_$callClinit();
            if (!nms_Block_blocksList.data[$var5].$blockMaterial.$replaceable)
                return 0;
        }
        $par3 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$7 = var$6[$var5];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, $par2) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, $ptr);
},
nms_BlockPumpkin_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 2.5;
        $var7 = var$7 | 0;
        if (var$7 < $var7)
            $var7 = $var7 - 1 | 0;
        $var7 = $var7 & 3;
        var$9 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var7, var$9, $ptr);
},
nms_BlockNetherrack = $rt_classWithoutFields(nms_Block),
nms_BlockNetherrack__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockNetherrack__init_ = var_0 => {
    let var_1 = new nms_BlockNetherrack();
    nms_BlockNetherrack__init_0(var_1, var_0);
    return var_1;
},
nms_BlockSoulSand = $rt_classWithoutFields(nms_Block),
nms_BlockSoulSand__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_sand);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockSoulSand__init_0 = var_0 => {
    let var_1 = new nms_BlockSoulSand();
    nms_BlockSoulSand__init_(var_1, var_0);
    return var_1;
},
nms_BlockSoulSand_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$6 = $par2;
    var$7 = $par3;
    var$8 = $par4;
    var$9 = $par2 + 1 | 0;
    var$10 = ($par3 + 1 | 0) - 0.125;
    var$11 = $par4 + 1 | 0;
    $par2 = var$5.$nextPoolIndex;
    $par1World = var$5.$listAABB;
    $par4 = $par1World.$size0;
    $par3 = $rt_compare($par2, $par4);
    if ($par3 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$7;
        var$12.$minZ0 = var$8;
        var$12.$maxX0 = var$9;
        var$12.$maxY = var$10;
        var$12.$maxZ0 = var$11;
        ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
        var$13 = $par1World.$array.data;
        $par3 = $par1World.$size0;
        $par1World.$size0 = $par3 + 1 | 0;
        var$13[$par3] = var$12;
        $par1World.$modCount = $par1World.$modCount + 1 | 0;
    } else if ($par2 >= 0 && $par3 < 0) {
        var$12 = $par1World.$array.data[$par2];
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$7;
        var$12.$minZ0 = var$8;
        var$12.$maxX0 = var$9;
        var$12.$maxY = var$10;
        var$12.$maxZ0 = var$11;
    } else {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
    return var$12;
},
nms_BlockSoulSand_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    $par5Entity.$motionX = $par5Entity.$motionX * 0.4;
    $par5Entity.$motionZ = $par5Entity.$motionZ * 0.4;
},
nms_BlockGlowStone = $rt_classWithoutFields(nms_Block),
nms_BlockGlowStone__init_ = ($this, $par1, $par2Material) => {
    nms_Block__init_($this, $par1, $par2Material);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockGlowStone__init_0 = (var_0, var_1) => {
    let var_2 = new nms_BlockGlowStone();
    nms_BlockGlowStone__init_(var_2, var_0, var_1);
    return var_2;
},
nms_BlockGlowStone_quantityDroppedWithBonus = ($this, $par1, $par2Random) => {
    let var$3, var$4, var$5, var$6, var$7;
    var$3 = nms_BlockGlowStone_quantityDropped($this, $par2Random);
    $par1 = $par1 + 1 | 0;
    var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$4;
    var$5 = Long_lo(Long_shru(var$4, 17));
    var$6 = $par1 - 1 | 0;
    if (!($par1 & var$6))
        var$7 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$5)), 31));
    else
        while (true) {
            var$7 = var$5 % $par1 | 0;
            if (((var$5 - var$7 | 0) + var$6 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
    $par1 = var$3 + var$7 | 0;
    var$6 = 1;
    if ($par1 >= var$6)
        var$6 = $par1 <= 4 ? $par1 : 4;
    return var$6;
},
nms_BlockGlowStone_quantityDropped = ($this, $par1Random) => {
    let var$2, var$3, var$4;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 3 | 0;
        if (((var$3 - var$4 | 0) + 2 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return 2 + var$4 | 0;
},
nms_BlockGlowStone_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_glowstone.$itemID0;
},
nms_BlockPortal = $rt_classWithoutFields(nms_BlockBreakable),
nms_BlockPortal__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_portal);
    $this.$localFlag = 0;
    $this.$breakableBlockIcon = $rt_s(152);
    $this.$needsRandomTick = 1;
},
nms_BlockPortal__init_ = var_0 => {
    let var_1 = new nms_BlockPortal();
    nms_BlockPortal__init_0(var_1, var_0);
    return var_1;
},
nms_BlockPortal_updateTick = ($this, $par1World, $par2, $var6, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$var6 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$provider.$isSurfaceWorld()) {
            var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
            while (true) {
                var$8 = var$7 % 2000 | 0;
                if (((var$7 - var$8 | 0) + 1999 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$6;
                var$7 = Long_lo(Long_shru(var$6, 17));
            }
            if (var$8 < $par1World.$difficultySetting) {
                nms_Block_$callClinit();
                var$9 = nms_Block_blocksList.data;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        $par5Random = var$9[var$10];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, $par5Random, var$10) && $var6 > 0) {
            $var6 = $var6 + (-1) | 0;
            nms_Block_$callClinit();
            var$9 = nms_Block_blocksList.data;
            $ptr = 1;
            continue main;
        }
        if ($var6 <= 0)
            return;
        var$10 = $var6 + 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10)
            return;
        var$10 = 57;
        var$11 = $par2 + 0.5;
        var$12 = $var6 + 1.1;
        var$13 = $par4 + 0.5;
        $ptr = 4;
    case 4:
        $tmp = nms_ItemMonsterPlacer_spawnCreature($par1World, var$10, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 !== null)
            $var7.$timeUntilPortal = 900;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $var6, $par4, $par5Random, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var7, $ptr);
},
nms_BlockPortal_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockPortal_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 == $this.$blockID) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.375;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.625;
            return;
        }
        $par2 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2 == $this.$blockID) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.375;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.625;
        } else {
            $this.$minX1 = 0.375;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.625;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockPortal_isOpaqueCube = $this => {
    return 0;
},
nms_BlockPortal_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockPortal_tryToCreatePortal = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var9, $var10, var$9, var$10, $var7, $var8, $var8_0, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var8_0 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        $var6 = 0;
        $var9 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        nms_Block_$callClinit();
        if ($var10 != nms_Block_obsidian.$blockID) {
            $var9 = $par2 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var5 = 1;
        $var9 = $par4 - 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var9, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == nms_Block_obsidian.$blockID)
            $var5 = 1;
        $var9 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 != nms_Block_obsidian.$blockID) {
            $var9 = $par4 + 1 | 0;
            $ptr = 4;
            continue main;
        }
        $var6 = 1;
        if ($var5 == $var6)
            return 0;
        var$9 = $par2 - $var5 | 0;
        var$10 = $par4 - $var6 | 0;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == nms_Block_obsidian.$blockID)
            $var6 = 1;
        if ($var5 == $var6)
            return 0;
        var$9 = $par2 - $var5 | 0;
        var$10 = $par4 - $var6 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9) {
            var$9 = $par2;
            var$10 = $par4;
        }
        $var7 = (-1);
        a: while (true) {
            $var8 = $rt_compare($var7, 2);
            if ($var8 > 0) {
                $par2 = 0;
                while ($par2 < 2) {
                    $var8 = 0;
                    if ($var8 < 3) {
                        $var7 = var$9 + $rt_imul($var5, $par2) | 0;
                        $var8_0 = $par3 + $var8 | 0;
                        var$14 = var$10 + $rt_imul($var6, $par2) | 0;
                        $par4 = nms_Block_portal.$blockID;
                        $var9 = 0;
                        $var10 = 2;
                        $ptr = 6;
                        continue main;
                    }
                    $par2 = $par2 + 1 | 0;
                }
                return 1;
            }
            $var8_0 = (-1);
            while (true) {
                $var10 = $rt_compare($var8_0, 3);
                if ($var10 > 0)
                    break;
                $par2 = $rt_compare($var7, (-1));
                $var9 = $par2 && $var8 && $var8_0 != (-1) && $var10 ? 0 : 1;
                if ($par2 && $var8)
                    break a;
                if ($var8_0 != (-1) && $var10)
                    break a;
                $var8_0 = $var8_0 + 1 | 0;
            }
            $var7 = $var7 + 1 | 0;
        }
        $par2 = var$9 + $rt_imul($var5, $var7) | 0;
        $par4 = $par3 + $var8_0 | 0;
        $var10 = var$10 + $rt_imul($var6, $var7) | 0;
        $ptr = 7;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $var7, $var8_0, var$14, $par4, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $var8 + 1 | 0;
        while (true) {
            if ($var8 < 3) {
                $var7 = var$9 + $rt_imul($var5, $par2) | 0;
                $var8_0 = $par3 + $var8 | 0;
                var$14 = var$10 + $rt_imul($var6, $par2) | 0;
                $par4 = nms_Block_portal.$blockID;
                $var9 = 0;
                $var10 = 2;
                continue main;
            }
            $par2 = $par2 + 1 | 0;
            if ($par2 >= 2)
                break;
            $var8 = 0;
        }
        return 1;
    case 7:
        b: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par4, $var10);
            if ($rt_suspending()) {
                break main;
            }
            $var10 = $tmp;
            if ($var9) {
                if ($var10 == nms_Block_obsidian.$blockID)
                    break b;
                return 0;
            }
            if ($var10 && $var10 != nms_Block_fire.$blockID)
                return 0;
        }
        while (true) {
            $var8_0 = $var8_0 + 1 | 0;
            while (true) {
                $var10 = $rt_compare($var8_0, 3);
                if ($var10 <= 0)
                    break;
                $var7 = $var7 + 1 | 0;
                $var8 = $rt_compare($var7, 2);
                if ($var8 > 0) {
                    $par2 = 0;
                    while ($par2 < 2) {
                        $var8 = 0;
                        if ($var8 < 3) {
                            $var7 = var$9 + $rt_imul($var5, $par2) | 0;
                            $var8_0 = $par3 + $var8 | 0;
                            var$14 = var$10 + $rt_imul($var6, $par2) | 0;
                            $par4 = nms_Block_portal.$blockID;
                            $var9 = 0;
                            $var10 = 2;
                            $ptr = 6;
                            continue main;
                        }
                        $par2 = $par2 + 1 | 0;
                    }
                    return 1;
                }
                $var8_0 = (-1);
            }
            $par2 = $rt_compare($var7, (-1));
            $var9 = $par2 && $var8 && $var8_0 != (-1) && $var10 ? 0 : 1;
            if ($par2 && $var8)
                break;
            if ($var8_0 == (-1))
                continue;
            if (!$var10)
                continue;
            else
                break;
        }
        $par2 = var$9 + $rt_imul($var5, $var7) | 0;
        $par4 = $par3 + $var8_0 | 0;
        $var10 = var$10 + $rt_imul($var6, $var7) | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var9, $var10, var$9, var$10, $var7, $var8, $var8_0, var$14, $ptr);
},
nms_BlockPortal_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var11, $var9, $var8, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();$var11 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        $var7 = 1;
        $var11 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 != $this.$blockID) {
            $par5 = $par2 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var6 = 1;
        $var7 = 0;
        $var8 = $par3;
        $var10 = $var8 - 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == $this.$blockID) {
            $var6 = 1;
            $var7 = 0;
        }
        $var8 = $par3;
        $var10 = $var8 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $var10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 != $this.$blockID) {
            $ptr = 4;
            continue main;
        }
        $var8 = $var8 + (-1) | 0;
        $var10 = $var8 - 1 | 0;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $var10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        nms_Block_$callClinit();
        if ($par5 != nms_Block_obsidian.$blockID) {
            $par5 = 0;
            $var9 = 0;
            $var10 = 3;
            $ptr = 5;
            continue main;
        }
        $var9 = 1;
        if ($var9 < 4) {
            $par5 = $var8 + $var9 | 0;
            $ptr = 6;
            continue main;
        }
        if ($var9 == 3) {
            $par5 = $var8 + $var9 | 0;
            $ptr = 8;
            continue main;
        }
        $par5 = 0;
        $var9 = 0;
        $var10 = 3;
        $ptr = 7;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == $this.$blockID) {
            $var9 = $var9 + 1 | 0;
            if ($var9 < 4) {
                $par5 = $var8 + $var9 | 0;
                continue main;
            }
        }
        if ($var9 == 3) {
            $par5 = $var8 + $var9 | 0;
            $ptr = 8;
            continue main;
        }
        $par5 = 0;
        $var9 = 0;
        $var10 = 3;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == nms_Block_obsidian.$blockID) {
            $ptr = 9;
            continue main;
        }
        $par5 = 0;
        $var9 = 0;
        $var10 = 3;
        $ptr = 7;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 != $this.$blockID) {
            $par5 = $par2 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var10 = 1;
        $par5 = $par4 - 1 | 0;
        $ptr = 11;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var10 = $par5 == $this.$blockID ? 1 : 0;
        $par5 = $par4 - 1 | 0;
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 != $this.$blockID) {
            $par5 = $par4 + 1 | 0;
            $ptr = 12;
            continue main;
        }
        if ($var10 && 1) {
            $par5 = 0;
            $var9 = 0;
            $var10 = 3;
            $ptr = 16;
            continue main;
        }
        $par5 = $par2 + $var6 | 0;
        $var9 = $par4 + $var7 | 0;
        $ptr = 13;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var11 = $par5 == $this.$blockID ? 1 : 0;
        if ($var10 && $var11) {
            $par5 = 0;
            $var9 = 0;
            $var10 = 3;
            $ptr = 16;
            continue main;
        }
        $par5 = $par2 + $var6 | 0;
        $var9 = $par4 + $var7 | 0;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 != nms_Block_obsidian.$blockID) {
            $var10 = $par2 - $var6 | 0;
            $var6 = $par4 - $var7 | 0;
            $ptr = 14;
            continue main;
        }
        $var10 = $par2 - $var6 | 0;
        $var8 = $par4 - $var7 | 0;
        $ptr = 15;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId($par1World, $var10, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 == nms_Block_obsidian.$blockID) {
            $ptr = 18;
            continue main;
        }
        $par5 = 0;
        $var9 = 0;
        $var10 = 3;
        $ptr = 17;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId($par1World, $var10, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 == $this.$blockID)
            return;
        $var10 = $par2 - $var6 | 0;
        $var6 = $par4 - $var7 | 0;
        $ptr = 14;
        continue main;
    case 16:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 17:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 18:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 == $this.$blockID)
            return;
        $par5 = 0;
        $var9 = 0;
        $var10 = 3;
        $ptr = 17;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var11, $var9, $var8, $var10, $ptr);
},
nms_BlockPortal_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockPortal_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    if ($par5Entity.$ridingEntity === null && $par5Entity.$riddenByEntity === null)
        nms_Entity_setInPortal($par5Entity);
},
nms_BlockCake = $rt_classWithoutFields(nms_Block),
nms_BlockCake__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_cake);
    $this.$needsRandomTick = 1;
},
nms_BlockCake__init_0 = var_0 => {
    let var_1 = new nms_BlockCake();
    nms_BlockCake__init_(var_1, var_0);
    return var_1;
},
nms_BlockCake_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $this.$minX1 = (1 + ($var5 * 2 | 0) | 0) / 16.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0625;
        $this.$maxX1 = 0.9375;
        $this.$maxY0 = 0.5;
        $this.$maxZ1 = 0.9375;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockCake_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var7, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var7 = (1 + ($var5 * 2 | 0) | 0) / 16.0;
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$7 = $par2 + $var7;
        var$8 = $par3;
        var$9 = $par4 + 0.0625;
        var$10 = ($par2 + 1 | 0) - 0.0625;
        var$11 = $par3 + 0.5 - 0.0625;
        var$12 = ($par4 + 1 | 0) - 0.0625;
        $par3 = $par1World.$nextPoolIndex;
        var$13 = $par1World.$listAABB;
        $par2 = var$13.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$14 = new nms_AxisAlignedBB;
            var$14.$minX0 = var$7;
            var$14.$minY0 = var$8;
            var$14.$minZ0 = var$9;
            var$14.$maxX0 = var$10;
            var$14.$maxY = var$11;
            var$14.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity(var$13, $par2 + 1 | 0);
            var$15 = var$13.$array.data;
            $par3 = var$13.$size0;
            var$13.$size0 = $par3 + 1 | 0;
            var$15[$par3] = var$14;
            var$13.$modCount = var$13.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$14 = var$13.$array.data[$par3];
            var$14.$minX0 = var$7;
            var$14.$minY0 = var$8;
            var$14.$minZ0 = var$9;
            var$14.$maxX0 = var$10;
            var$14.$maxY = var$11;
            var$14.$maxZ0 = var$12;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$14;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var7, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockCake_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockCake_isOpaqueCube = $this => {
    return 0;
},
nms_BlockCake_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $par5EntityPlayer.$foodStats;
        var$11 = var$10.$foodLevel;
        $par6 = var$11 >= 20 ? 0 : 1;
        if (!($par6 && !$par5EntityPlayer.$capabilities.$disableDamage ? 1 : 0))
            return 1;
        $par6 = 2 + var$11 | 0;
        var$11 = 20;
        if ($par6 < var$11)
            var$11 = $par6;
        var$10.$foodLevel = var$11;
        var$10.$foodSaturationLevel = jl_Math_minImpl(var$10.$foodSaturationLevel + 0.4000000059604645, var$11);
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        var$11 = $par6 + 1 | 0;
        if (var$11 < 6) {
            $par6 = 2;
            $ptr = 2;
            continue main;
        }
        $par6 = 0;
        var$11 = 0;
        var$12 = 3;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$11, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par6, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, var$11, var$12, $ptr);
},
nms_BlockCake_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par5EntityPlayer.$foodStats;
        var$7 = var$6.$foodLevel;
        var$8 = var$7 >= 20 ? 0 : 1;
        if (!(var$8 && !$par5EntityPlayer.$capabilities.$disableDamage ? 1 : 0))
            return;
        var$8 = 2 + var$7 | 0;
        var$7 = 20;
        if (var$8 < var$7)
            var$7 = var$8;
        var$6.$foodLevel = var$7;
        var$6.$foodSaturationLevel = jl_Math_minImpl(var$6.$foodSaturationLevel + 0.4000000059604645, var$7);
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$8 = var$8 + 1 | 0;
        if (var$8 < 6) {
            var$7 = 2;
            $ptr = 2;
            continue main;
        }
        var$8 = 0;
        var$7 = 0;
        var$9 = 3;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$8, var$7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, var$6, var$7, var$8, var$9, $ptr);
},
nms_BlockCake_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable) {
                    var$5 = 0;
                    break a;
                }
            }
            var$5 = 1;
        }
        if (!var$5)
            return 0;
        $par3 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2) {
            nms_Material_$callClinit();
            $par1World = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2].$blockMaterial;
        }
        return $par1World.$isSolid();
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockCake_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            nms_Material_$callClinit();
            var$6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$par5].$blockMaterial;
        }
        if (var$6.$isSolid())
            return;
        var$7 = 0;
        var$8 = 0;
        $par5 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockCake_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2) {
            nms_Material_$callClinit();
            $par1World = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2].$blockMaterial;
        }
        return $par1World.$isSolid();
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockCake_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockCake_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
};
function nms_BlockRedstoneLogic() {
    nms_BlockDirectional.call(this);
    this.$isRepeaterPowered = 0;
}
let nms_BlockRedstoneLogic_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockRedstoneLogic_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$8 = var$6[var$7];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, var$5))
            return 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 && !nms_Block_blocksList.data[$par2].$blockMaterial.$replaceable ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockRedstoneLogic_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = var$5[var$6];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, $par2) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockRedstoneLogic_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = $this.$func_94476_e($par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7)
            return;
        $ptr = 3;
    case 3:
        $tmp = $this.$isGettingInput($par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$7 = $this.$isRepeaterPowered;
        if (var$7 && !$var7) {
            var$7 = ($this.$func_94484_i()).$blockID;
            $var7 = 2;
            $ptr = 5;
            continue main;
        }
        if (var$7)
            return;
        var$7 = ($this.$func_94485_e()).$blockID;
        var$9 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7)
            return;
        var$7 = ($this.$func_94485_e()).$blockID;
        $var6 = $this.$func_94481_j_($var6);
        $var7 = (-1);
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$7, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, $var7, var$9, $ptr);
},
nms_BlockRedstoneLogic_func_96470_c = ($this, $par1) => {
    return $this.$isRepeaterPowered;
},
nms_BlockRedstoneLogic_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRedstoneLogic_isProvidingWeakPower($this, $par1IBlockAccess, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockRedstoneLogic_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$this.$func_96470_c($var6))
            return 0;
        $var7 = $var6 & 3;
        if (!$var7 && $par5 == 3) {
            $ptr = 2;
            continue main;
        }
        if ($var7 == 1 && $par5 == 4) {
            $ptr = 3;
            continue main;
        }
        if ($var7 == 2 && $par5 == 2) {
            $ptr = 4;
            continue main;
        }
        if ($var7 == 3 && $par5 == 5) {
            $ptr = 5;
            continue main;
        }
        return 0;
    case 2:
        $tmp = $this.$func_94480_d($par1IBlockAccess, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    case 3:
        $tmp = $this.$func_94480_d($par1IBlockAccess, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    case 4:
        $tmp = $this.$func_94480_d($par1IBlockAccess, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    case 5:
        $tmp = $this.$func_94480_d($par1IBlockAccess, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockRedstoneLogic_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$9 = var$7[var$8];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$9, var$8) ? 0 : 1) {
            $ptr = 3;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 3:
        $this.$func_94479_f($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$8 = 0;
        var$10 = 1.0;
        $ptr = 5;
    case 5:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$10, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$8 = 0;
        var$11 = 3;
        $ptr = 6;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par2 + 1 | 0;
        var$8 = $this.$blockID;
        $ptr = 7;
    case 7:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par5, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par2 - 1 | 0;
        var$8 = $this.$blockID;
        $ptr = 8;
    case 8:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par5, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par4 + 1 | 0;
        var$8 = $this.$blockID;
        $ptr = 9;
    case 9:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par4 - 1 | 0;
        var$8 = $this.$blockID;
        $ptr = 10;
    case 10:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $this.$blockID;
        $ptr = 11;
    case 11:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$6, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 12;
    case 12:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockRedstoneLogic_func_94479_f = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = $this.$func_94476_e($par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 3;
    case 3:
        a: {
            $tmp = $this.$isGettingInput($par1World, $par2, $par3, $par4, $var6);
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            $par5 = $this.$isRepeaterPowered;
            if (!($par5 && !$var7)) {
                if ($par5)
                    break a;
                if (!$var7)
                    break a;
            }
            if (!nms_WorldServer_isBlockTickScheduledThisTick($par1World, $par2, $par3, $par4, $this.$blockID)) {
                $var8 = (-1);
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 4:
        $tmp = nms_BlockRedstoneLogic_func_83011_d($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            $var8 = (-3);
        else if ($this.$isRepeaterPowered)
            $var8 = (-2);
        $par5 = $this.$blockID;
        $var7 = $this.$func_94481_j_($var6);
        $ptr = 5;
    case 5:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, $ptr);
},
nms_BlockRedstoneLogic_func_94476_e = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    return 0;
},
nms_BlockRedstoneLogic_isGettingInput = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$getInputStrength($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 <= 0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockRedstoneLogic_getInputStrength = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par5 & 3;
        $var7 = $par2 + nms_Direction_offsetX.data[$var6] | 0;
        $var8 = $par4 + nms_Direction_offsetZ.data[$var6] | 0;
        $par2 = nms_Direction_directionToFacing.data[$var6];
        $ptr = 1;
    case 1:
        $tmp = nms_World_getIndirectPowerLevelTo($par1World, $var7, $par3, $var8, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 >= 15)
            return $var9;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var7, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_Block_$callClinit();
        if ($par2 != nms_Block_redstoneWire.$blockID) {
            $par2 = 0;
            if ($var9 > $par2)
                $par2 = $var9;
            $var9 = $par2;
            return $var9;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $var7, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($var9 > $par2)
            $par2 = $var9;
        $var9 = $par2;
        return $var9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, $var9, $ptr);
},
nms_BlockRedstoneLogic_func_94482_f = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        switch ($par5 & 3) {
            case 0:
            case 2:
                $var6 = $par2 - 1 | 0;
                $par5 = 4;
                $ptr = 1;
                continue main;
            case 1:
            case 3:
                $par5 = $par4 + 1 | 0;
                $var6 = 3;
                $ptr = 3;
                continue main;
            default:
        }
        return 0;
    case 1:
        $tmp = nms_BlockRedstoneLogic_func_94488_g($this, $par1IBlockAccess, $var6, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var6 = $par2 + 1 | 0;
        $par2 = 5;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockRedstoneLogic_func_94488_g($this, $par1IBlockAccess, $var6, $par3, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par5 > $par2)
            $par2 = $par5;
        return $par2;
    case 3:
        $tmp = nms_BlockRedstoneLogic_func_94488_g($this, $par1IBlockAccess, $par2, $par3, $par5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par4 = $par4 - 1 | 0;
        $var6 = 2;
        $ptr = 4;
    case 4:
        $tmp = nms_BlockRedstoneLogic_func_94488_g($this, $par1IBlockAccess, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par5 > $par2)
            $par2 = $par5;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockRedstoneLogic_func_94488_g = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$this.$func_94477_d($var6))
            return 0;
        nms_Block_$callClinit();
        if ($var6 == nms_Block_redstoneWire.$blockID) {
            $ptr = 3;
            continue main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7)
            return 0;
        var$8 = nms_Block_blocksList.data[var$7];
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    case 4:
        $tmp = var$8.$isProvidingStrongPower($par1IBlockAccess, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, var$7, var$8, $ptr);
},
nms_BlockRedstoneLogic_canProvidePower = $this => {
    return 1;
},
nms_BlockRedstoneLogic_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var8, $var7, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var8 = var$7 | 0;
        if (var$7 < $var8)
            $var8 = $var8 - 1 | 0;
        $var7 = (($var8 & 3) + 2 | 0) % 4 | 0;
        $var8 = 3;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = $this.$isGettingInput($par1World, $par2, $par3, $par4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8)
            return;
        $var7 = $this.$blockID;
        $var8 = 1;
        var$10 = 0;
        $ptr = 3;
    case 3:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $var7, $var8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var8, $var7, var$10, $ptr);
},
nms_BlockRedstoneLogic_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRedstoneLogic_func_94483_i_($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockRedstoneLogic_func_94483_i_ = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var5, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $var5 = var$5 & 3;
        if ($var5 == 1) {
            var$5 = $par2 + 1 | 0;
            var$7 = $this.$blockID;
            if (!$par1World.$isRemote) {
                $ptr = 3;
                continue main;
            }
            var$7 = $this.$blockID;
            var$8 = 4;
            $ptr = 2;
            continue main;
        }
        if ($var5 == 3) {
            var$5 = $par2 - 1 | 0;
            var$7 = $this.$blockID;
            if (!$par1World.$isRemote) {
                $ptr = 5;
                continue main;
            }
            var$7 = $this.$blockID;
            var$8 = 5;
            $ptr = 4;
            continue main;
        }
        if ($var5 == 2) {
            var$5 = $par4 + 1 | 0;
            var$7 = $this.$blockID;
            if (!$par1World.$isRemote) {
                $ptr = 8;
                continue main;
            }
            var$7 = $this.$blockID;
            var$8 = 2;
            $ptr = 7;
            continue main;
        }
        if ($var5)
            return;
        $par4 = $par4 - 1 | 0;
        var$5 = $this.$blockID;
        if (!$par1World.$isRemote) {
            $ptr = 11;
            continue main;
        }
        var$5 = $this.$blockID;
        var$7 = 3;
        $ptr = 10;
        continue main;
    case 2:
        nms_World_notifyBlocksOfNeighborChange0($par1World, var$5, $par3, $par4, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5 == 3) {
            var$5 = $par2 - 1 | 0;
            var$7 = $this.$blockID;
            if (!$par1World.$isRemote) {
                $ptr = 5;
                continue main;
            }
            var$7 = $this.$blockID;
            var$8 = 5;
            $ptr = 4;
            continue main;
        }
        if ($var5 == 2) {
            var$5 = $par4 + 1 | 0;
            var$7 = $this.$blockID;
            if (!$par1World.$isRemote) {
                $ptr = 8;
                continue main;
            }
            var$7 = $this.$blockID;
            var$8 = 2;
            $ptr = 7;
            continue main;
        }
        if ($var5)
            return;
        $par4 = $par4 - 1 | 0;
        var$5 = $this.$blockID;
        if (!$par1World.$isRemote) {
            $ptr = 11;
            continue main;
        }
        var$5 = $this.$blockID;
        var$7 = 3;
        $ptr = 10;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data[var$8];
        if (var$9 !== null) {
            $ptr = 6;
            continue main;
        }
        var$7 = $this.$blockID;
        var$8 = 4;
        $ptr = 2;
        continue main;
    case 4:
        nms_World_notifyBlocksOfNeighborChange0($par1World, var$5, $par3, $par4, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5 == 2) {
            var$5 = $par4 + 1 | 0;
            var$7 = $this.$blockID;
            if (!$par1World.$isRemote) {
                $ptr = 8;
                continue main;
            }
            var$7 = $this.$blockID;
            var$8 = 2;
            $ptr = 7;
            continue main;
        }
        if ($var5)
            return;
        $par4 = $par4 - 1 | 0;
        var$5 = $this.$blockID;
        if (!$par1World.$isRemote) {
            $ptr = 11;
            continue main;
        }
        var$5 = $this.$blockID;
        var$7 = 3;
        $ptr = 10;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data[var$8];
        if (var$9 !== null) {
            $ptr = 9;
            continue main;
        }
        var$7 = $this.$blockID;
        var$8 = 5;
        $ptr = 4;
        continue main;
    case 6:
        var$9.$onNeighborBlockChange($par1World, var$5, $par3, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$blockID;
        var$8 = 4;
        $ptr = 2;
        continue main;
    case 7:
        nms_World_notifyBlocksOfNeighborChange0($par1World, $par2, $par3, var$5, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5)
            return;
        $par4 = $par4 - 1 | 0;
        var$5 = $this.$blockID;
        if (!$par1World.$isRemote) {
            $ptr = 11;
            continue main;
        }
        var$5 = $this.$blockID;
        var$7 = 3;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data[var$8];
        if (var$9 !== null) {
            $ptr = 12;
            continue main;
        }
        var$7 = $this.$blockID;
        var$8 = 2;
        $ptr = 7;
        continue main;
    case 9:
        var$9.$onNeighborBlockChange($par1World, var$5, $par3, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$blockID;
        var$8 = 5;
        $ptr = 4;
        continue main;
    case 10:
        nms_World_notifyBlocksOfNeighborChange0($par1World, $par2, $par3, $par4, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data[var$7];
        if (var$9 !== null) {
            $ptr = 13;
            continue main;
        }
        var$5 = $this.$blockID;
        var$7 = 3;
        $ptr = 10;
        continue main;
    case 12:
        var$9.$onNeighborBlockChange($par1World, $par2, $par3, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$blockID;
        var$8 = 2;
        $ptr = 7;
        continue main;
    case 13:
        var$9.$onNeighborBlockChange($par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$blockID;
        var$7 = 3;
        $ptr = 10;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var5, var$7, var$8, var$9, $ptr);
},
nms_BlockRedstoneLogic_onBlockDestroyedByPlayer = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$isRepeaterPowered)
            return;
        var$6 = $par2 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$6, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par2 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par5, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par4 + 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par4 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 4;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $par3 - 1 | 0;
        var$6 = $this.$blockID;
        $ptr = 5;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par5, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockRedstoneLogic_isOpaqueCube = $this => {
    return 0;
},
nms_BlockRedstoneLogic_func_94477_d = ($this, $par1) => {
    let $var2;
    nms_Block_$callClinit();
    $var2 = nms_Block_blocksList.data[$par1];
    return $var2 !== null && $var2.$canProvidePower() ? 1 : 0;
},
nms_BlockRedstoneLogic_func_94480_d = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    return 15;
},
nms_BlockRedstoneLogic_func_94487_f = ($this, $par1) => {
    return $par1 != ($this.$func_94485_e()).$blockID && $par1 != ($this.$func_94484_i()).$blockID ? 0 : 1;
},
nms_BlockRedstoneLogic_func_83011_d = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par5 & 3;
        $par5 = $par2 - nms_Direction_offsetX.data[$var6] | 0;
        $var7 = $par4 - nms_Direction_offsetZ.data[$var6] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par5, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        $par5 = $var7 != nms_Block_redstoneRepeaterActive.$blockID && $var7 != nms_Block_redstoneRepeaterIdle.$blockID ? 0 : 1;
        if (!(!$par5 && !($var7 != nms_Block_redstoneComparatorActive.$blockID && $var7 != nms_Block_redstoneComparatorIdle.$blockID ? 0 : 1) ? 0 : 1))
            return 0;
        $par2 = $par2 - nms_Direction_offsetX.data[$var6] | 0;
        $par4 = $par4 - nms_Direction_offsetZ.data[$var6] | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        return ($var7 & 3) == $var6 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockRedstoneLogic_func_94486_g = ($this, $par1) => {
    return $this.$func_94481_j_($par1);
},
nms_BlockRedstoneLogic_isAssociatedBlockID = ($this, $par1) => {
    return $par1 != ($this.$func_94485_e()).$blockID && $par1 != ($this.$func_94484_i()).$blockID ? 0 : 1;
},
nms_BlockRedstoneRepeater = $rt_classWithoutFields(nms_BlockRedstoneLogic),
nms_BlockRedstoneRepeater_repeaterTorchOffset = null,
nms_BlockRedstoneRepeater_repeaterState = null,
nms_BlockRedstoneRepeater__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$isRepeaterPowered = $par2;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
},
nms_BlockRedstoneRepeater__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockRedstoneRepeater();
    nms_BlockRedstoneRepeater__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockRedstoneRepeater_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $par6 = ((($var10 & 12) >> 2) + 1 | 0) << 2 & 12 | $var10 & 3;
        $var10 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $ptr);
},
nms_BlockRedstoneRepeater_func_94481_j_ = ($this, $par1) => {
    return nms_BlockRedstoneRepeater_repeaterState.data[($par1 & 12) >> 2] * 2 | 0;
},
nms_BlockRedstoneRepeater_func_94485_e = $this => {
    nms_Block_$callClinit();
    return nms_Block_redstoneRepeaterActive;
},
nms_BlockRedstoneRepeater_func_94484_i = $this => {
    nms_Block_$callClinit();
    return nms_Block_redstoneRepeaterIdle;
},
nms_BlockRedstoneRepeater_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_redstoneRepeater.$itemID0;
},
nms_BlockRedstoneRepeater_getRenderType = $this => {
    return 15;
},
nms_BlockRedstoneRepeater_func_94476_e = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRedstoneLogic_func_94482_f($this, $par1IBlockAccess, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 <= 0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockRedstoneRepeater_func_94477_d = ($this, $par1) => {
    let var$2;
    nms_Block_$callClinit();
    var$2 = $par1 != nms_Block_redstoneRepeaterActive.$blockID && $par1 != nms_Block_redstoneRepeaterIdle.$blockID ? 0 : 1;
    return !var$2 && !($par1 != nms_Block_redstoneComparatorActive.$blockID && $par1 != nms_Block_redstoneComparatorIdle.$blockID ? 0 : 1) ? 0 : 1;
},
nms_BlockRedstoneRepeater_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRedstoneLogic_func_94483_i_($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockRedstoneRepeater__clinit_ = () => {
    nms_BlockRedstoneRepeater_repeaterTorchOffset = $rt_createDoubleArrayFromData([(-0.0625), 0.0625, 0.1875, 0.3125]);
    nms_BlockRedstoneRepeater_repeaterState = $rt_createIntArrayFromData([1, 2, 3, 4]);
},
nms_BlockLockedChest = $rt_classWithoutFields(nms_Block),
nms_BlockLockedChest__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
},
nms_BlockLockedChest__init_0 = var_0 => {
    let var_1 = new nms_BlockLockedChest();
    nms_BlockLockedChest__init_(var_1, var_0);
    return var_1;
},
nms_BlockLockedChest_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    return 1;
},
nms_BlockLockedChest_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = 0;
        var$7 = 0;
        var$8 = 3;
        $ptr = 1;
    case 1:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, $ptr);
},
nms_BlockTrapDoor = $rt_classWithoutFields(nms_Block),
nms_BlockTrapDoor__init_ = ($this, $par1, $par2Material) => {
    nms_Block__init_($this, $par1, $par2Material);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 1.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockTrapDoor__init_0 = (var_0, var_1) => {
    let var_2 = new nms_BlockTrapDoor();
    nms_BlockTrapDoor__init_(var_2, var_0, var_1);
    return var_2;
},
nms_BlockTrapDoor_isOpaqueCube = $this => {
    return 0;
};
let nms_BlockTrapDoor_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockTrapDoor_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return (!($par2 & 4) ? 0 : 1) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockTrapDoor_getRenderType = $this => {
    return 0;
},
nms_BlockTrapDoor_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_BlockTrapDoor_setBlockBoundsForBlockRender($this, var$5);
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = $par2;
        var$7 = var$6 + $this.$minX1;
        var$8 = $par3;
        var$9 = var$8 + $this.$minY1;
        var$10 = $par4;
        var$11 = var$10 + $this.$minZ1;
        var$6 = var$6 + $this.$maxX1;
        var$8 = var$8 + $this.$maxY0;
        var$10 = var$10 + $this.$maxZ1;
        $par3 = $par1World.$nextPoolIndex;
        var$12 = $par1World.$listAABB;
        $par2 = var$12.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$7;
            var$13.$minY0 = var$9;
            var$13.$minZ0 = var$11;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$8;
            var$13.$maxZ0 = var$10;
            ju_ArrayList_ensureCapacity(var$12, $par2 + 1 | 0);
            var$14 = var$12.$array.data;
            $par2 = var$12.$size0;
            var$12.$size0 = $par2 + 1 | 0;
            var$14[$par2] = var$13;
            var$12.$modCount = var$12.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$13 = var$12.$array.data[$par3];
            var$13.$minX0 = var$7;
            var$13.$minY0 = var$9;
            var$13.$minZ0 = var$11;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$8;
            var$13.$maxZ0 = var$10;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockTrapDoor_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_BlockTrapDoor_setBlockBoundsForBlockRender($this, $par2);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockTrapDoor_setBlockBoundsForBlockRender = ($this, $par1) => {
    if (!($par1 & 8)) {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.1875;
        $this.$maxZ1 = 1.0;
    } else {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.8125;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
    }
    if (!($par1 & 4) ? 0 : 1) {
        $par1 = $par1 & 3;
        if (!$par1) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.8125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
        if ($par1 == 1) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.1875;
        }
        if ($par1 == 2) {
            $this.$minX1 = 0.8125;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
        if ($par1 == 3) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.1875;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        }
    }
},
nms_BlockTrapDoor_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    return;
},
nms_BlockTrapDoor_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $this.$blockMaterial;
        nms_Material_$callClinit();
        if (var$10 === nms_Material_iron)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $par6 = $var10 ^ 4;
        $var10 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 1003;
        $par6 = 0;
        $ptr = 3;
    case 3:
        nms_World_playAuxSFXAtEntity($par1World, $par5EntityPlayer, $var10, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, $var10, $ptr);
},
nms_BlockTrapDoor_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, $var9, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$7 = $var6 & 3;
        $var9 = var$7 ? $par4 : $par4 + 1 | 0;
        if (var$7 == 1)
            $var9 = $var9 + (-1) | 0;
        var$9 = var$7 != 2 ? $par2 : $par2 + 1 | 0;
        if (var$7 == 3)
            var$9 = var$9 + (-1) | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$9, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (nms_BlockTrapDoor_isValidSupportBlock(var$10)) {
            $ptr = 3;
            continue main;
        }
        var$10 = 0;
        $var9 = 0;
        var$9 = 3;
        $ptr = 4;
        continue main;
    case 3:
        a: {
            $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var9 = $tmp;
            if (!$var9) {
                if ($par5 > 0) {
                    nms_Block_$callClinit();
                    if (nms_Block_blocksList.data[$par5].$canProvidePower())
                        break a;
                }
                return;
            }
        }
        $ptr = 6;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$10, $var9, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = 0;
        var$11 = 1.0;
        $ptr = 5;
    case 5:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var6, var$11, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
        continue main;
    case 6:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (((var$10 & 4) <= 0 ? 0 : 1) == $var9)
            return;
        $par5 = var$10 ^ 4;
        var$10 = 2;
        $ptr = 7;
    case 7:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = null;
        var$10 = 1003;
        $par5 = 0;
        $ptr = 8;
    case 8:
        nms_World_playAuxSFXAtEntity($par1World, var$12, var$10, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, $var9, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockTrapDoor_collisionRayTrace = ($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6Vec3 = $thread.pop();$par5Vec3 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_BlockTrapDoor_setBlockBoundsForBlockRender($this, var$7);
        $ptr = 2;
    case 2:
        $tmp = nms_Block_collisionRayTrace($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Vec3, $par6Vec3, var$7, $ptr);
},
nms_BlockTrapDoor_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10;
    $var10 = 0;
    if ($par5 == 2)
        $var10 = 0;
    if ($par5 == 3)
        $var10 = 1;
    if ($par5 == 4)
        $var10 = 2;
    if ($par5 == 5)
        $var10 = 3;
    if ($par5 != 1 && $par5 && $par7 > 0.5)
        $var10 = $var10 | 8;
    return $var10;
},
nms_BlockTrapDoor_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par5)
            return 0;
        if ($par5 == 1)
            return 0;
        if ($par5 == 2)
            $par4 = $par4 + 1 | 0;
        if ($par5 == 3)
            $par4 = $par4 + (-1) | 0;
        if ($par5 == 4)
            $par2 = $par2 + 1 | 0;
        if ($par5 == 5)
            $par2 = $par2 + (-1) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return nms_BlockTrapDoor_isValidSupportBlock($par2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockTrapDoor_isValidSupportBlock = $par0 => {
    let $var1, var$3;
    if ($par0 <= 0)
        return 0;
    a: {
        b: {
            nms_Block_$callClinit();
            $var1 = nms_Block_blocksList.data[$par0];
            if ($var1 !== null) {
                var$3 = $var1.$blockMaterial;
                if ((!var$3.$isTranslucent ? var$3.$blocksMovement() : 0) && $var1.$renderAsNormalBlock())
                    break b;
            }
            if ($var1 !== nms_Block_glowStone && !($var1 instanceof nms_BlockHalfSlab) && !($var1 instanceof nms_BlockStairs)) {
                $par0 = 0;
                break a;
            }
        }
        $par0 = 1;
    }
    return $par0;
},
nms_BlockSilverfish = $rt_classWithoutFields(nms_Block),
nms_BlockSilverfish_silverfishStoneTypes = null,
nms_BlockSilverfish__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_clay);
    $this.$blockHardness = 0.0;
    if ($this.$blockResistance < 0.0)
        $this.$blockResistance = 0.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockSilverfish__init_ = var_0 => {
    let var_1 = new nms_BlockSilverfish();
    nms_BlockSilverfish__init_0(var_1, var_0);
    return var_1;
},
nms_BlockSilverfish_onBlockDestroyedByPlayer = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var6 = new nms_EntitySilverfish;
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($var6, $par1World);
        var$7 = new nms_ChunkCoordinates;
        var$7.$posX0 = 0;
        var$7.$posY0 = 0;
        var$7.$posZ0 = 0;
        $var6.$homePosition = var$7;
        $var6.$maximumHomeDistance = (-1.0);
        var$7 = new nms_EntityAIMoveTowardsRestriction;
        var$7.$theEntity0 = $var6;
        var$7.$movementSpeed = 1.0;
        var$7.$mutexBits = 1;
        $var6.$field_110178_bs = var$7;
        $var6.$experienceValue = 5;
        var$8 = 0.30000001192092896;
        var$9 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($var6, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $par2 + 0.5;
        var$11 = $par3;
        var$12 = $par4 + 0.5;
        $var6.$posX = var$10;
        $var6.$prevPosX = var$10;
        $var6.$lastTickPosX = var$10;
        var$11 = var$11 + $var6.$yOffset;
        $var6.$posY = var$11;
        $var6.$prevPosY = var$11;
        $var6.$lastTickPosY = var$11;
        $var6.$posZ = var$12;
        $var6.$prevPosZ = var$12;
        $var6.$lastTickPosZ = var$12;
        $var6.$rotationYaw = 0.0;
        $var6.$rotationPitch = 0.0;
        nms_Entity_setPosition($var6, var$10, var$11, var$12);
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1World, $var6);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityLiving_spawnExplosionParticle($var6);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockSilverfish_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockSilverfish_createStackedBlock = ($this, $par1) => {
    let $var2, var$3;
    nms_Block_$callClinit();
    $var2 = nms_Block_stone;
    if ($par1 == 1)
        $var2 = nms_Block_cobblestone;
    if ($par1 == 2)
        $var2 = nms_Block_stoneBrick;
    var$3 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    var$3.$itemID = $var2.$blockID;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    return var$3;
},
nms_BlockSilverfish__clinit_ = () => {
    nms_BlockSilverfish_silverfishStoneTypes = $rt_wrapArray(jl_String, [$rt_s(79), $rt_s(80), $rt_s(81)]);
},
nms_BlockStoneBrick = $rt_classWithoutFields(nms_Block),
nms_BlockStoneBrick_STONE_BRICK_TYPES = null,
nms_BlockStoneBrick_field_94407_b = null,
nms_BlockStoneBrick__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockStoneBrick__init_0 = var_0 => {
    let var_1 = new nms_BlockStoneBrick();
    nms_BlockStoneBrick__init_(var_1, var_0);
    return var_1;
},
nms_BlockStoneBrick_damageDropped = ($this, $par1) => {
    return $par1;
},
nms_BlockStoneBrick__clinit_ = () => {
    let var$1, var$2;
    nms_BlockStoneBrick_STONE_BRICK_TYPES = $rt_wrapArray(jl_String, [$rt_s(234), $rt_s(85), $rt_s(1450), $rt_s(1398)]);
    var$1 = $rt_createArray(jl_String, 4);
    var$2 = var$1.data;
    var$2[0] = null;
    var$2[1] = $rt_s(85);
    var$2[2] = $rt_s(1450);
    var$2[3] = $rt_s(1400);
    nms_BlockStoneBrick_field_94407_b = var$1;
};
function nms_BlockMushroomCap() {
    nms_Block.call(this);
    this.$mushroomType0 = 0;
}
let nms_BlockMushroomCap_field_94429_a = null,
nms_BlockMushroomCap__init_0 = ($this, $par1, $par2Material, $par3) => {
    nms_Block__init_($this, $par1, $par2Material);
    $this.$mushroomType0 = $par3;
},
nms_BlockMushroomCap__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_BlockMushroomCap();
    nms_BlockMushroomCap__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_BlockMushroomCap_quantityDropped = ($this, $par1Random) => {
    let var$2, var$3, var$4, $var2;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 10 | 0;
        if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    $var2 = var$4 - 7 | 0;
    if ($var2 < 0)
        $var2 = 0;
    return $var2;
},
nms_BlockMushroomCap_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_mushroomBrown.$blockID + $this.$mushroomType0 | 0;
},
nms_BlockMushroomCap__clinit_ = () => {
    nms_BlockMushroomCap_field_94429_a = $rt_wrapArray(jl_String, [$rt_s(82), $rt_s(83)]);
};
function nms_BlockPane() {
    let a = this; nms_Block.call(a);
    a.$sideTextureIndex = null;
    a.$canDropItself = 0;
    a.$field_94402_c = null;
}
let nms_BlockPane__init_0 = ($this, $par1, $par2Str, $par3Str, $par4Material, $par5) => {
    nms_Block__init_($this, $par1, $par4Material);
    $this.$sideTextureIndex = $par3Str;
    $this.$canDropItself = $par5;
    $this.$field_94402_c = $par2Str;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockPane__init_ = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_BlockPane();
    nms_BlockPane__init_0(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_BlockPane_idDropped = ($this, $par1, $par2Random, $par3) => {
    return !$this.$canDropItself ? 0 : $this.$blockID;
},
nms_BlockPane_isOpaqueCube = $this => {
    return 0;
},
nms_BlockPane_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockPane_getRenderType = $this => {
    return 18;
},
nms_BlockPane_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, $var8, $var9, $var10, $var11, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 =
        $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$8 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        $var8 = !nms_Block_opaqueCubeLookup.data[var$8] && var$8 != $this.$blockID && var$8 != nms_Block_glass.$blockID ? 0 : 1;
        var$8 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var9 = !nms_Block_opaqueCubeLookup.data[var$8] && var$8 != $this.$blockID && var$8 != nms_Block_glass.$blockID ? 0 : 1;
        var$8 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var10 = !nms_Block_opaqueCubeLookup.data[var$8] && var$8 != $this.$blockID && var$8 != nms_Block_glass.$blockID ? 0 : 1;
        var$8 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var11 = !nms_Block_opaqueCubeLookup.data[var$8] && var$8 != $this.$blockID && var$8 != nms_Block_glass.$blockID ? 0 : 1;
        a: {
            b: {
                if (!($var10 && $var11)) {
                    if ($var10)
                        break b;
                    if ($var11)
                        break b;
                    if ($var8)
                        break b;
                    if ($var9)
                        break b;
                }
                $this.$minX1 = 0.0;
                $this.$minY1 = 0.0;
                $this.$minZ1 = 0.4375;
                $this.$maxX1 = 1.0;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 0.5625;
                $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$13 = $par2;
                var$14 = var$13 + $this.$minX1;
                var$15 = $par3;
                var$16 = var$15 + $this.$minY1;
                var$17 = $par4;
                var$18 = var$17 + $this.$minZ1;
                var$13 = var$13 + $this.$maxX1;
                var$15 = var$15 + $this.$maxY0;
                var$17 = var$17 + $this.$maxZ1;
                var$19 = $par7Entity.$nextPoolIndex;
                $par1World = $par7Entity.$listAABB;
                var$8 = $par1World.$size0;
                var$20 = $rt_compare(var$19, var$8);
                if (var$20 >= 0) {
                    var$21 = new nms_AxisAlignedBB;
                    var$21.$minX0 = var$14;
                    var$21.$minY0 = var$16;
                    var$21.$minZ0 = var$18;
                    var$21.$maxX0 = var$13;
                    var$21.$maxY = var$15;
                    var$21.$maxZ0 = var$17;
                    ju_ArrayList_ensureCapacity($par1World, var$8 + 1 | 0);
                    var$22 = $par1World.$array.data;
                    var$19 = $par1World.$size0;
                    $par1World.$size0 = var$19 + 1 | 0;
                    var$22[var$19] = var$21;
                    $par1World.$modCount = $par1World.$modCount + 1 | 0;
                } else if (var$19 >= 0 && var$20 < 0) {
                    var$21 = $par1World.$array.data[var$19];
                    var$21.$minX0 = var$14;
                    var$21.$minY0 = var$16;
                    var$21.$minZ0 = var$18;
                    var$21.$maxX0 = var$13;
                    var$21.$maxY = var$15;
                    var$21.$maxZ0 = var$17;
                } else {
                    $par1World = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1World);
                    $rt_throw($par1World);
                }
                $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
                if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$21)) {
                    ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                    var$22 = $par6List.$array.data;
                    var$19 = $par6List.$size0;
                    $par6List.$size0 = var$19 + 1 | 0;
                    var$22[var$19] = var$21;
                    $par6List.$modCount = $par6List.$modCount + 1 | 0;
                }
                break a;
            }
            if ($var10 && !$var11) {
                $this.$minX1 = 0.0;
                $this.$minY1 = 0.0;
                $this.$minZ1 = 0.4375;
                $this.$maxX1 = 0.5;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 0.5625;
                var$21 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$13 = $par2;
                var$14 = var$13 + $this.$minX1;
                var$15 = $par3;
                var$16 = var$15 + $this.$minY1;
                var$17 = $par4;
                var$18 = var$17 + $this.$minZ1;
                var$13 = var$13 + $this.$maxX1;
                var$15 = var$15 + $this.$maxY0;
                var$17 = var$17 + $this.$maxZ1;
                var$8 = var$21.$nextPoolIndex;
                $par1World = var$21.$listAABB;
                var$20 = $par1World.$size0;
                var$19 = $rt_compare(var$8, var$20);
                if (var$19 >= 0) {
                    $par7Entity = new nms_AxisAlignedBB;
                    $par7Entity.$minX0 = var$14;
                    $par7Entity.$minY0 = var$16;
                    $par7Entity.$minZ0 = var$18;
                    $par7Entity.$maxX0 = var$13;
                    $par7Entity.$maxY = var$15;
                    $par7Entity.$maxZ0 = var$17;
                    ju_ArrayList_ensureCapacity($par1World, var$20 + 1 | 0);
                    var$22 = $par1World.$array.data;
                    var$19 = $par1World.$size0;
                    $par1World.$size0 = var$19 + 1 | 0;
                    var$22[var$19] = $par7Entity;
                    $par1World.$modCount = $par1World.$modCount + 1 | 0;
                } else if (var$8 >= 0 && var$19 < 0) {
                    $par7Entity = $par1World.$array.data[var$8];
                    $par7Entity.$minX0 = var$14;
                    $par7Entity.$minY0 = var$16;
                    $par7Entity.$minZ0 = var$18;
                    $par7Entity.$maxX0 = var$13;
                    $par7Entity.$maxY = var$15;
                    $par7Entity.$maxZ0 = var$17;
                } else {
                    $par1World = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1World);
                    $rt_throw($par1World);
                }
                var$21.$nextPoolIndex = var$21.$nextPoolIndex + 1 | 0;
                if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                    ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                    var$22 = $par6List.$array.data;
                    var$19 = $par6List.$size0;
                    $par6List.$size0 = var$19 + 1 | 0;
                    var$22[var$19] = $par7Entity;
                    $par6List.$modCount = $par6List.$modCount + 1 | 0;
                }
            } else if (!$var10 && $var11) {
                $this.$minX1 = 0.5;
                $this.$minY1 = 0.0;
                $this.$minZ1 = 0.4375;
                $this.$maxX1 = 1.0;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 0.5625;
                var$21 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$17 = $par2;
                var$23 = var$17 + $this.$minX1;
                var$18 = $par3;
                var$13 = var$18 + $this.$minY1;
                var$14 = $par4;
                var$15 = var$14 + $this.$minZ1;
                var$16 = var$17 + $this.$maxX1;
                var$17 = var$18 + $this.$maxY0;
                var$14 = var$14 + $this.$maxZ1;
                var$8 = var$21.$nextPoolIndex;
                $par1World = var$21.$listAABB;
                var$20 = $par1World.$size0;
                var$19 = $rt_compare(var$8, var$20);
                if (var$19 >= 0) {
                    $par7Entity = new nms_AxisAlignedBB;
                    $par7Entity.$minX0 = var$23;
                    $par7Entity.$minY0 = var$13;
                    $par7Entity.$minZ0 = var$15;
                    $par7Entity.$maxX0 = var$16;
                    $par7Entity.$maxY = var$17;
                    $par7Entity.$maxZ0 = var$14;
                    ju_ArrayList_ensureCapacity($par1World, var$20 + 1 | 0);
                    var$22 = $par1World.$array.data;
                    var$19 = $par1World.$size0;
                    $par1World.$size0 = var$19 + 1 | 0;
                    var$22[var$19] = $par7Entity;
                    $par1World.$modCount = $par1World.$modCount + 1 | 0;
                } else if (var$8 >= 0 && var$19 < 0) {
                    $par7Entity = $par1World.$array.data[var$8];
                    $par7Entity.$minX0 = var$23;
                    $par7Entity.$minY0 = var$13;
                    $par7Entity.$minZ0 = var$15;
                    $par7Entity.$maxX0 = var$16;
                    $par7Entity.$maxY = var$17;
                    $par7Entity.$maxZ0 = var$14;
                } else {
                    $par1World = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1World);
                    $rt_throw($par1World);
                }
                var$21.$nextPoolIndex = var$21.$nextPoolIndex + 1 | 0;
                if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                    ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                    var$22 = $par6List.$array.data;
                    var$19 = $par6List.$size0;
                    $par6List.$size0 = var$19 + 1 | 0;
                    var$22[var$19] = $par7Entity;
                    $par6List.$modCount = $par6List.$modCount + 1 | 0;
                }
            }
        }
        c: {
            d: {
                if (!($var8 && $var9)) {
                    if ($var10)
                        break d;
                    if ($var11)
                        break d;
                    if ($var8)
                        break d;
                    if ($var9)
                        break d;
                }
                $this.$minX1 = 0.4375;
                $this.$minY1 = 0.0;
                $this.$minZ1 = 0.0;
                $this.$maxX1 = 0.5625;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 1.0;
                var$21 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$13 = $par2;
                var$14 = var$13 + $this.$minX1;
                var$15 = $par3;
                var$16 = var$15 + $this.$minY1;
                var$17 = $par4;
                var$18 = var$17 + $this.$minZ1;
                var$13 = var$13 + $this.$maxX1;
                var$15 = var$15 + $this.$maxY0;
                var$17 = var$17 + $this.$maxZ1;
                $par2 = var$21.$nextPoolIndex;
                $par1World = var$21.$listAABB;
                $par4 = $par1World.$size0;
                $par3 = $rt_compare($par2, $par4);
                if ($par3 >= 0) {
                    $par7Entity = new nms_AxisAlignedBB;
                    $par7Entity.$minX0 = var$14;
                    $par7Entity.$minY0 = var$16;
                    $par7Entity.$minZ0 = var$18;
                    $par7Entity.$maxX0 = var$13;
                    $par7Entity.$maxY = var$15;
                    $par7Entity.$maxZ0 = var$17;
                    ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                    var$22 = $par1World.$array.data;
                    $par3 = $par1World.$size0;
                    $par1World.$size0 = $par3 + 1 | 0;
                    var$22[$par3] = $par7Entity;
                    $par1World.$modCount = $par1World.$modCount + 1 | 0;
                } else if ($par2 >= 0 && $par3 < 0) {
                    $par7Entity = $par1World.$array.data[$par2];
                    $par7Entity.$minX0 = var$14;
                    $par7Entity.$minY0 = var$16;
                    $par7Entity.$minZ0 = var$18;
                    $par7Entity.$maxX0 = var$13;
                    $par7Entity.$maxY = var$15;
                    $par7Entity.$maxZ0 = var$17;
                } else {
                    $par1World = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1World);
                    $rt_throw($par1World);
                }
                var$21.$nextPoolIndex = var$21.$nextPoolIndex + 1 | 0;
                if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                    ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                    var$22 = $par6List.$array.data;
                    $par3 = $par6List.$size0;
                    $par6List.$size0 = $par3 + 1 | 0;
                    var$22[$par3] = $par7Entity;
                    $par6List.$modCount = $par6List.$modCount + 1 | 0;
                }
                break c;
            }
            if ($var8 && !$var9) {
                $this.$minX1 = 0.4375;
                $this.$minY1 = 0.0;
                $this.$minZ1 = 0.0;
                $this.$maxX1 = 0.5625;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 0.5;
                var$21 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$13 = $par2;
                var$14 = var$13 + $this.$minX1;
                var$15 = $par3;
                var$16 = var$15 + $this.$minY1;
                var$17 = $par4;
                var$18 = var$17 + $this.$minZ1;
                var$13 = var$13 + $this.$maxX1;
                var$15 = var$15 + $this.$maxY0;
                var$17 = var$17 + $this.$maxZ1;
                $par2 = var$21.$nextPoolIndex;
                $par1World = var$21.$listAABB;
                $par4 = $par1World.$size0;
                $par3 = $rt_compare($par2, $par4);
                if ($par3 >= 0) {
                    $par7Entity = new nms_AxisAlignedBB;
                    $par7Entity.$minX0 = var$14;
                    $par7Entity.$minY0 = var$16;
                    $par7Entity.$minZ0 = var$18;
                    $par7Entity.$maxX0 = var$13;
                    $par7Entity.$maxY = var$15;
                    $par7Entity.$maxZ0 = var$17;
                    ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
                    var$22 = $par1World.$array.data;
                    $par3 = $par1World.$size0;
                    $par1World.$size0 = $par3 + 1 | 0;
                    var$22[$par3] = $par7Entity;
                    $par1World.$modCount = $par1World.$modCount + 1 | 0;
                } else if ($par2 >= 0 && $par3 < 0) {
                    $par7Entity = $par1World.$array.data[$par2];
                    $par7Entity.$minX0 = var$14;
                    $par7Entity.$minY0 = var$16;
                    $par7Entity.$minZ0 = var$18;
                    $par7Entity.$maxX0 = var$13;
                    $par7Entity.$maxY = var$15;
                    $par7Entity.$maxZ0 = var$17;
                } else {
                    $par1World = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1World);
                    $rt_throw($par1World);
                }
                var$21.$nextPoolIndex = var$21.$nextPoolIndex + 1 | 0;
                if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
                    ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                    var$22 = $par6List.$array.data;
                    $par3 = $par6List.$size0;
                    $par6List.$size0 = $par3 + 1 | 0;
                    var$22[$par3] = $par7Entity;
                    $par6List.$modCount = $par6List.$modCount + 1 | 0;
                }
            } else if (!$var8 && $var9) {
                $this.$minX1 = 0.4375;
                $this.$minY1 = 0.0;
                $this.$minZ1 = 0.5;
                $this.$maxX1 = 0.5625;
                $this.$maxY0 = 1.0;
                $this.$maxZ1 = 1.0;
                $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$13 = $par2;
                var$14 = var$13 + $this.$minX1;
                var$15 = $par3;
                var$16 = var$15 + $this.$minY1;
                var$17 = $par4;
                var$18 = var$17 + $this.$minZ1;
                var$13 = var$13 + $this.$maxX1;
                var$15 = var$15 + $this.$maxY0;
                var$17 = var$17 + $this.$maxZ1;
                $par2 = $par1World.$nextPoolIndex;
                $par7Entity = $par1World.$listAABB;
                $par4 = $par7Entity.$size0;
                $par3 = $rt_compare($par2, $par4);
                if ($par3 >= 0) {
                    var$21 = new nms_AxisAlignedBB;
                    var$21.$minX0 = var$14;
                    var$21.$minY0 = var$16;
                    var$21.$minZ0 = var$18;
                    var$21.$maxX0 = var$13;
                    var$21.$maxY = var$15;
                    var$21.$maxZ0 = var$17;
                    ju_ArrayList_ensureCapacity($par7Entity, $par4 + 1 | 0);
                    var$22 = $par7Entity.$array.data;
                    $par3 = $par7Entity.$size0;
                    $par7Entity.$size0 = $par3 + 1 | 0;
                    var$22[$par3] = var$21;
                    $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
                } else if ($par2 >= 0 && $par3 < 0) {
                    var$21 = $par7Entity.$array.data[$par2];
                    var$21.$minX0 = var$14;
                    var$21.$minY0 = var$16;
                    var$21.$minZ0 = var$18;
                    var$21.$maxX0 = var$13;
                    var$21.$maxY = var$15;
                    var$21.$maxZ0 = var$17;
                } else {
                    $par1World = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1World);
                    $rt_throw($par1World);
                }
                $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
                if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$21)) {
                    ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                    var$22 = $par6List.$array.data;
                    $par3 = $par6List.$size0;
                    $par6List.$size0 = $par3 + 1 | 0;
                    var$22[$par3] = var$21;
                    $par6List.$modCount = $par6List.$modCount + 1 | 0;
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, $var8, $var9, $var10, $var11, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_BlockPane_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var12, $var10, $var9, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var10 = $thread.pop();$var12 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0.4375;
        $var6 = 0.5625;
        $var7 = 0.4375;
        $var8 = 0.5625;
        $var12 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        nms_Block_$callClinit();
        $var9 = !nms_Block_opaqueCubeLookup.data[$var10] && $var10 != $this.$blockID && $var10 != nms_Block_glass.$blockID ? 0 : 1;
        $var12 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var10 = !nms_Block_opaqueCubeLookup.data[$var10] && $var10 != $this.$blockID && $var10 != nms_Block_glass.$blockID ? 0 : 1;
        $var12 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $var12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var11 = !nms_Block_opaqueCubeLookup.data[$var11] && $var11 != $this.$blockID && $var11 != nms_Block_glass.$blockID ? 0 : 1;
        $par2 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $var12 = !nms_Block_opaqueCubeLookup.data[$par2] && $par2 != $this.$blockID && $par2 != nms_Block_glass.$blockID ? 0 : 1;
        a: {
            b: {
                if (!($var11 && $var12)) {
                    if ($var11)
                        break b;
                    if ($var12)
                        break b;
                    if ($var9)
                        break b;
                    if ($var10)
                        break b;
                }
                $var5 = 0.0;
                $var6 = 1.0;
                break a;
            }
            if ($var11 && !$var12)
                $var5 = 0.0;
            else if (!$var11 && $var12)
                $var6 = 1.0;
        }
        c: {
            d: {
                if (!($var9 && $var10)) {
                    if ($var11)
                        break d;
                    if ($var12)
                        break d;
                    if ($var9)
                        break d;
                    if ($var10)
                        break d;
                }
                $var7 = 0.0;
                $var8 = 1.0;
                break c;
            }
            if ($var9 && !$var10)
                $var7 = 0.0;
            else if (!$var9 && $var10)
                $var8 = 1.0;
        }
        $this.$minX1 = $var5;
        $this.$minY1 = 0.0;
        $this.$minZ1 = $var7;
        $this.$maxX1 = $var6;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = $var8;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $var7, $var8, $var12, $var10, $var9, $var11, $ptr);
},
nms_BlockPane_canSilkHarvest = $this => {
    return 1;
},
nms_BlockPane_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    var$2 = new nms_ItemStack;
    var$3 = $this.$blockID;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = 1;
    var$2.$itemDamage = $par1;
    if ($par1 < 0)
        var$2.$itemDamage = 0;
    return var$2;
},
nms_BlockMelon = $rt_classWithoutFields(nms_Block),
nms_BlockMelon__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_pumpkin);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockMelon__init_0 = var_0 => {
    let var_1 = new nms_BlockMelon();
    nms_BlockMelon__init_(var_1, var_0);
    return var_1;
},
nms_BlockMelon_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_melon.$itemID0;
},
nms_BlockMelon_quantityDropped = ($this, $par1Random) => {
    let var$2, var$3, var$4;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 5 | 0;
        if (((var$3 - var$4 | 0) + 4 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return 3 + var$4 | 0;
},
nms_BlockMelon_quantityDroppedWithBonus = ($this, $par1, $par2Random) => {
    let var$3, var$4, var$5, var$6, var$7, $var3;
    var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$3;
    var$4 = Long_lo(Long_shru(var$3, 17));
    while (true) {
        var$5 = var$4 % 5 | 0;
        if (((var$4 - var$5 | 0) + 4 | 0) >= 0)
            break;
        var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
    }
    var$6 = 3 + var$5 | 0;
    var$7 = 1 + $par1 | 0;
    var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$3;
    $var3 = Long_lo(Long_shru(var$3, 17));
    var$4 = var$7 - 1 | 0;
    if (!(var$7 & var$4))
        $par1 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$7), Long_fromInt($var3)), 31));
    else
        while (true) {
            $par1 = $var3 % var$7 | 0;
            if ((($var3 - $par1 | 0) + var$4 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$3;
            $var3 = Long_lo(Long_shru(var$3, 17));
        }
    $var3 = var$6 + $par1 | 0;
    if ($var3 > 9)
        $var3 = 9;
    return $var3;
};
function nms_BlockStem() {
    nms_BlockFlower.call(this);
    this.$fruitType = null;
}
let nms_BlockStem__init_0 = ($this, $par1, $par2Block) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$fruitType = $par2Block;
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.375;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.375;
    $this.$maxX1 = 0.625;
    $this.$maxY0 = 0.25;
    $this.$maxZ1 = 0.625;
    $this.$displayOnCreativeTab = null;
},
nms_BlockStem__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockStem();
    nms_BlockStem__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockStem_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_tilledField.$blockID ? 0 : 1;
},
nms_BlockStem_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var7, var$7, $var6, $var8, var$10, $var11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getFullBlockLightValue($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 < 8) {
            $ptr = 3;
            continue main;
        }
        $var7 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $var7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if (!(!($var7 != nms_Block_tilledField.$blockID ? 0 : 1) ? 0 : 1)) {
            $ptr = 5;
            continue main;
        }
        var$7 = $par3 + 1 | 0;
        $var7 = 1;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_canBlockSeeTheSky($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7) {
            $var7 = $par3 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if (!0) {
            $ptr = 5;
            continue main;
        }
        var$7 = $par3 + 1 | 0;
        $var7 = 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, var$7, $par4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 < 9)
            return;
        $ptr = 8;
        continue main;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$7 = 0;
        $var6 = 1.0;
        $ptr = 6;
    case 6:
        nms_BlockStem_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var7, $var6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 0;
        var$7 = 0;
        $var8 = 2;
        $ptr = 7;
    case 7:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var7, var$7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $par3 + 1 | 0;
        $var7 = 1;
        $ptr = 4;
        continue main;
    case 8:
        $tmp = nms_BlockStem_getGrowthModifier($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = (25.0 / $var6 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$10;
        $var11 = 17;
        var$12 = Long_lo(Long_shru(var$10, $var11));
        var$7 = $var7 - 1 | 0;
        if (!($var7 & var$7))
            $var8 = Long_lo(Long_shr(Long_mul(Long_fromInt($var7), Long_fromInt(var$12)), 31));
        else
            while (true) {
                $var8 = var$12 % $var7 | 0;
                if (((var$12 - $var8 | 0) + var$7 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$10;
                var$12 = Long_lo(Long_shru(var$10, $var11));
            }
        if ($var8)
            return;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 >= 7) {
            $var7 = $par2 - 1 | 0;
            $ptr = 10;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        var$7 = 2;
        $ptr = 11;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $var7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 == $this.$fruitType.$blockID)
            return;
        var$7 = $par2 + 1 | 0;
        $ptr = 12;
        continue main;
    case 11:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 12:
        $tmp = nms_World_getBlockId($par1World, var$7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 == $this.$fruitType.$blockID)
            return;
        var$7 = $par4 - 1 | 0;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 == $this.$fruitType.$blockID)
            return;
        $var8 = $par4 + 1 | 0;
        $ptr = 14;
    case 14:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 == $this.$fruitType.$blockID)
            return;
        var$10 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$10;
        $var8 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$10, $var11)))), 31));
        if ($var8)
            $var7 = $par2;
        if ($var8 == 1)
            $var7 = $var7 + 1 | 0;
        if ($var8 != 2)
            var$7 = $par4;
        if ($var8 == 3)
            var$7 = var$7 + 1 | 0;
        $par2 = $par3 - 1 | 0;
        $ptr = 15;
    case 15:
        $tmp = nms_World_getBlockId($par1World, $var7, $par2, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 16;
    case 16:
        a: {
            $tmp = nms_World_getBlockId($par1World, $var7, $par3, var$7);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            if (!$par2) {
                nms_Block_$callClinit();
                if ($var11 == nms_Block_tilledField.$blockID)
                    break a;
                if ($var11 == nms_Block_dirt.$blockID)
                    break a;
                if ($var11 == nms_Block_grass.$blockID)
                    break a;
            }
            return;
        }
        $var8 = $this.$fruitType.$blockID;
        $par2 = 0;
        $par4 = 3;
        $ptr = 17;
    case 17:
        nms_World_setBlock($par1World, $var7, $par3, var$7, $var8, $par2, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var7, var$7, $var6, $var8, var$10, $var11, var$12, $ptr);
},
nms_BlockStem_getGrowthModifier = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $var6, var$8, $var7, $var17, $var8, var$12, $var9, $var10, $var11, $var12, $var13, $var19, $var14, $var15, $var16, $var18, $var20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var20 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var19 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();$var17 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 1.0;
        var$6 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$8 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var17 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$12 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$12, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var19 = $this.$blockID;
        $var14 = $var8 != $var19 && $var9 != $var19 ? 0 : 1;
        $var15 = $var6 != $var19 && $var7 != $var19 ? 0 : 1;
        $var16 = $var10 != $var19 && $var11 != $var19 && $var12 != $var19 && $var13 != $var19 ? 0 : 1;
        $par3 = $par3 - 1 | 0;
        while ($var17 <= var$12) {
            $var18 = var$6;
            if ($var18 <= var$8) {
                $ptr = 9;
                continue main;
            }
            $var17 = $var17 + 1 | 0;
        }
        a: {
            if (!$var16) {
                if (!$var14)
                    break a;
                if (!$var15)
                    break a;
            }
            $var5 = $var5 / 2.0;
        }
        return $var5;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var17, $par3, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        $var20 = 0.0;
        nms_Block_$callClinit();
        if ($var19 == nms_Block_tilledField.$blockID) {
            $var20 = 1.0;
            $ptr = 10;
            continue main;
        }
        if (!($var17 == $par2 && $var18 == $par4))
            $var20 = $var20 / 4.0;
        $var5 = $var5 + $var20;
        $var18 = $var18 + 1 | 0;
        while (true) {
            if ($var18 <= var$8) {
                continue main;
            }
            $var17 = $var17 + 1 | 0;
            if ($var17 > var$12)
                break;
            $var18 = var$6;
        }
        b: {
            if (!$var16) {
                if (!$var14)
                    break b;
                if (!$var15)
                    break b;
            }
            $var5 = $var5 / 2.0;
        }
        return $var5;
    case 10:
        $tmp = nms_World_getBlockMetadata($par1World, $var17, $par3, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var19 > 0)
            $var20 = 3.0;
        if (!($var17 == $par2 && $var18 == $par4))
            $var20 = $var20 / 4.0;
        $var5 = $var5 + $var20;
        $var18 = $var18 + 1 | 0;
        while (true) {
            if ($var18 <= var$8) {
                $ptr = 9;
                continue main;
            }
            $var17 = $var17 + 1 | 0;
            if ($var17 > var$12)
                break;
            $var18 = var$6;
        }
        c: {
            if (!$var16) {
                if (!$var14)
                    break c;
                if (!$var15)
                    break c;
            }
            $var5 = $var5 / 2.0;
        }
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $var6, var$8, $var7, $var17, $var8, var$12, $var9, $var10, $var11, $var12, $var13, $var19, $var14, $var15, $var16, $var18, $var20, $ptr);
},
nms_BlockStem_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        var$5 = (($par2 * 2 | 0) + 2 | 0) / 16.0;
        $this.$maxY0 = var$5;
        var$6 = var$5;
        $this.$minX1 = 0.375;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.375;
        $this.$maxX1 = 0.625;
        $this.$maxY0 = var$6;
        $this.$maxZ1 = 0.625;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockStem_getRenderType = $this => {
    return 19;
},
nms_BlockStem_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$9, $var9, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
            if ($rt_suspending()) {
                break main;
            }
            if (!$par1World.$isRemote) {
                $var8 = null;
                var$9 = $this.$fruitType;
                if (var$9 === nms_Block_pumpkin) {
                    nms_Item_$callClinit();
                    $var8 = nms_Item_pumpkinSeeds;
                }
                if (var$9 === nms_Block_melon) {
                    nms_Item_$callClinit();
                    $var8 = nms_Item_melonSeeds;
                }
                $var9 = 0;
                var$11 = 17;
                var$12 = 14;
                while (true) {
                    if ($var9 >= 3)
                        break a;
                    var$9 = $par1World.$rand0;
                    var$13 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$13;
                    $par7 = Long_lo(Long_shru(var$13, var$11));
                    while (true) {
                        var$14 = $par7 % 15 | 0;
                        if ((($par7 - var$14 | 0) + var$12 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$9.$seed = var$13;
                        $par7 = Long_lo(Long_shru(var$13, var$11));
                    }
                    if (var$14 <= $par5) {
                        var$9 = new nms_ItemStack;
                        nms_ItemStack_$callClinit();
                        var$9.$itemID = $var8.$itemID0;
                        var$9.$stackSize = 1;
                        var$9.$itemDamage = 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var9 = $var9 + 1 | 0;
                }
            }
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var9 = $var9 + 1 | 0;
            if ($var9 >= 3)
                break;
            var$9 = $par1World.$rand0;
            var$13 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$13;
            $par7 = Long_lo(Long_shru(var$13, var$11));
            while (true) {
                var$14 = $par7 % 15 | 0;
                if ((($par7 - var$14 | 0) + var$12 | 0) >= 0)
                    break;
                var$13 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$13;
                $par7 = Long_lo(Long_shru(var$13, var$11));
            }
            if (var$14 > $par5)
                continue;
            else {
                var$9 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$9.$itemID = $var8.$itemID0;
                var$9.$stackSize = 1;
                var$9.$itemDamage = 0;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, var$9, $var9, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockStem_idDropped = ($this, $par1, $par2Random, $par3) => {
    return (-1);
},
nms_BlockStem_quantityDropped = ($this, $par1Random) => {
    return 1;
},
nms_BlockVine = $rt_classWithoutFields(nms_Block),
nms_BlockVine__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_vine);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockVine__init_ = var_0 => {
    let var_1 = new nms_BlockVine();
    nms_BlockVine__init_0(var_1, var_0);
    return var_1;
},
nms_BlockVine_getRenderType = $this => {
    return 20;
},
nms_BlockVine_isOpaqueCube = $this => {
    return 0;
},
nms_BlockVine_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockVine_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = 1.0;
        $var8 = 1.0;
        $var9 = 1.0;
        $var10 = 0.0;
        $var11 = 0.0;
        $var12 = 0.0;
        $var13 = $var6 <= 0 ? 0 : 1;
        if ($var6 & 2) {
            $var10 = jl_Math_maxImpl($var10, 0.0625);
            $var7 = 0.0;
            $var8 = 0.0;
            $var11 = 1.0;
            $var9 = 0.0;
            $var12 = 1.0;
            $var13 = 1;
        }
        if ($var6 & 8) {
            $var7 = jl_Math_minImpl($var7, 0.9375);
            $var10 = 1.0;
            $var8 = 0.0;
            $var11 = 1.0;
            $var9 = 0.0;
            $var12 = 1.0;
            $var13 = 1;
        }
        if ($var6 & 4) {
            $var12 = jl_Math_maxImpl($var12, 0.0625);
            $var9 = 0.0;
            $var7 = 0.0;
            $var10 = 1.0;
            $var8 = 0.0;
            $var11 = 1.0;
            $var13 = 1;
        }
        if ($var6 & 1) {
            $var9 = jl_Math_minImpl($var9, 0.9375);
            $var12 = 1.0;
            $var7 = 0.0;
            $var10 = 1.0;
            $var8 = 0.0;
            $var11 = 1.0;
            $var13 = 1;
        }
        if ($var13) {
            $this.$minX1 = $var7;
            $this.$minY1 = $var8;
            $this.$minZ1 = $var9;
            $this.$maxX1 = $var10;
            $this.$maxY0 = $var11;
            $this.$maxZ1 = $var12;
            return;
        }
        $par3 = $par3 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par2 = 0;
        else {
            nms_Block_$callClinit();
            $par1IBlockAccess = nms_Block_blocksList.data[$par2];
            $par2 = $par1IBlockAccess.$renderAsNormalBlock() && $par1IBlockAccess.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if ($par2) {
            $var8 = jl_Math_minImpl($var8, 0.9375);
            $var11 = 1.0;
            $var7 = 0.0;
            $var10 = 1.0;
            $var9 = 0.0;
            $var12 = 1.0;
        }
        $this.$minX1 = $var7;
        $this.$minY1 = $var8;
        $this.$minZ1 = $var9;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var11;
        $this.$maxZ1 = $var12;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $ptr);
},
nms_BlockVine_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockVine_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        switch ($par5) {
            case 1:
                $par3 = $par3 + 1 | 0;
                $ptr = 1;
                continue main;
            case 2:
                $par4 = $par4 + 1 | 0;
                $ptr = 2;
                continue main;
            case 3:
                $par4 = $par4 - 1 | 0;
                $ptr = 3;
                continue main;
            case 4:
                $par2 = $par2 + 1 | 0;
                $ptr = 4;
                continue main;
            case 5:
                $par2 = $par2 - 1 | 0;
                $ptr = 5;
                continue main;
            default:
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par2 = 0;
        else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2];
            $par2 = $par1World.$renderAsNormalBlock() && $par1World.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        return $par2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par2 = 0;
        else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2];
            $par2 = $par1World.$renderAsNormalBlock() && $par1World.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        return $par2;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par2 = 0;
        else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2];
            $par2 = $par1World.$renderAsNormalBlock() && $par1World.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        return $par2;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par2 = 0;
        else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2];
            $par2 = $par1World.$renderAsNormalBlock() && $par1World.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        return $par2;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            $par2 = 0;
        else {
            nms_Block_$callClinit();
            $par1World = nms_Block_blocksList.data[$par2];
            $par2 = $par1World.$renderAsNormalBlock() && $par1World.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockVine_canVineStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $var7, var$8, $var8, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 <= 0)
            var$6 = $var5;
        else {
            $var7 = 0;
            var$8 = $par3 + 1 | 0;
            var$6 = $var5;
            while ($var7 <= 3) {
                $var8 = 1 << $var7;
                if ($var5 & $var8) {
                    var$10 = $par2 + nms_Direction_offsetX.data[$var7] | 0;
                    var$11 = $par4 + nms_Direction_offsetZ.data[$var7] | 0;
                    $ptr = 4;
                    continue main;
                }
                $var7 = $var7 + 1 | 0;
            }
        }
        if (!var$6) {
            var$11 = $par3 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        if (var$6 == $var5)
            return 1;
        var$11 = 2;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11)
            var$11 = 0;
        else {
            nms_Block_$callClinit();
            var$12 = nms_Block_blocksList.data[var$11];
            var$11 = var$12.$renderAsNormalBlock() && var$12.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if (!var$11)
            return 0;
        if (var$6 == $var5)
            return 1;
        var$11 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$6, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 4:
        $tmp = nms_World_getBlockId($par1World, var$10, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11)
            var$11 = 0;
        else {
            nms_Block_$callClinit();
            var$12 = nms_Block_blocksList.data[var$11];
            var$11 = var$12.$renderAsNormalBlock() && var$12.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if (!var$11) {
            $ptr = 5;
            continue main;
        }
        while (true) {
            $var7 = $var7 + 1 | 0;
            if ($var7 > 3) {
                if (!var$6) {
                    var$11 = $par3 + 1 | 0;
                    $ptr = 2;
                    continue main;
                }
                if (var$6 == $var5)
                    return 1;
                var$11 = 2;
                $ptr = 3;
                continue main;
            }
            $var8 = 1 << $var7;
            if ($var5 & $var8)
                break;
        }
        var$10 = $par2 + nms_Direction_offsetX.data[$var7] | 0;
        var$11 = $par4 + nms_Direction_offsetZ.data[$var7] | 0;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11 == $this.$blockID) {
            $ptr = 6;
            continue main;
        }
        var$6 = var$6 & ($var8 ^ (-1));
        while (true) {
            $var7 = $var7 + 1 | 0;
            if ($var7 > 3) {
                if (!var$6) {
                    var$11 = $par3 + 1 | 0;
                    $ptr = 2;
                    continue main;
                }
                if (var$6 == $var5)
                    return 1;
                var$11 = 2;
                $ptr = 3;
                continue main;
            }
            $var8 = 1 << $var7;
            if ($var5 & $var8)
                break;
        }
        var$10 = $par2 + nms_Direction_offsetX.data[$var7] | 0;
        var$11 = $par4 + nms_Direction_offsetZ.data[$var7] | 0;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!(var$11 & $var8))
            var$6 = var$6 & ($var8 ^ (-1));
        while (true) {
            $var7 = $var7 + 1 | 0;
            if ($var7 > 3) {
                if (!var$6) {
                    var$11 = $par3 + 1 | 0;
                    $ptr = 2;
                    continue main;
                }
                if (var$6 == $var5)
                    return 1;
                var$11 = 2;
                $ptr = 3;
                continue main;
            }
            $var8 = 1 << $var7;
            if ($var5 & $var8)
                break;
        }
        var$10 = $par2 + nms_Direction_offsetX.data[$var7] | 0;
        var$11 = $par4 + nms_Direction_offsetZ.data[$var7] | 0;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $var7, var$8, $var8, var$10, var$11, var$12, $ptr);
},
nms_BlockVine_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockVine_canVineStay($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = 0;
        $par5 = 0;
        var$6 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$8, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockVine_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $var13, $var7, $var8, $var9, $var6, $var10, $var6_0, $var14, $var12, $var10_0, $var11, $var12_0, $var14_0, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();$var14_0 = $thread.pop();$var12_0 = $thread.pop();$var11 = $thread.pop();$var10_0 = $thread.pop();$var12 = $thread.pop();$var14 = $thread.pop();$var6_0 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var13 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            $par5Random = $par1World.$rand0;
            var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$6;
            $var13 = 17;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$6, $var13)))), 31))) {
                $var7 = 5;
                $var8 = 0;
                $var9 = $par2 - 4 | 0;
                $var6 = $par2 + 4 | 0;
                $var10 = $par4 - 4 | 0;
                $var6_0 = $par4 + 4 | 0;
                $var14 = $par3 - 1 | 0;
                $var12 = $par3 + 1 | 0;
                a: while (true) {
                    if ($var9 > $var6) {
                        $ptr = 1;
                        continue main;
                    }
                    $var10_0 = $var10;
                    while ($var10_0 <= $var6_0) {
                        $var11 = $var14;
                        if ($var11 <= $var12)
                            break a;
                        $var10_0 = $var10_0 + 1 | 0;
                    }
                    $var9 = $var9 + 1 | 0;
                }
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $par5Random = $par1World.$rand0;
        var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$6;
        $var7 = Long_lo(Long_shru(var$6, $var13));
        while (true) {
            $var10 = $var7 % 6 | 0;
            if ((($var7 - $var10 | 0) + 5 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$6;
            $var7 = Long_lo(Long_shru(var$6, $var13));
        }
        $var11 = nms_Direction_facingToDirection.data[$var10];
        if ($var10 == 1 && $par3 < 255) {
            $ptr = 3;
            continue main;
        }
        if ($var10 >= 2 && $var10 <= 5) {
            $var6 = 1 << $var11;
            if (!($var9 & $var6)) {
                if ($var8)
                    return;
                $var7 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
                $var13 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
                $ptr = 7;
                continue main;
            }
        }
        if ($par3 <= 1)
            return;
        $ptr = 4;
        continue main;
    case 2:
        b: {
            $tmp = nms_World_getBlockId($par1World, $var9, $var11, $var10_0);
            if ($rt_suspending()) {
                break main;
            }
            $var12_0 = $tmp;
            if ($var12_0 == $this.$blockID) {
                $var7 = $var7 + (-1) | 0;
                if ($var7 <= 0) {
                    $var8 = 1;
                    break b;
                }
            }
            $var11 = $var11 + 1 | 0;
            c: while (true) {
                if ($var11 <= $var12) {
                    continue main;
                }
                $var10_0 = $var10_0 + 1 | 0;
                while ($var10_0 > $var6_0) {
                    $var9 = $var9 + 1 | 0;
                    if ($var9 > $var6)
                        break c;
                    $var10_0 = $var10;
                }
                $var11 = $var14;
            }
        }
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $var12, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $var6 ? 0 : 1;
        d: {
            if (!$var6) {
                e: {
                    if ($var10 >= 2 && $var10 <= 5) {
                        $var6 = 1 << $var11;
                        if (!($var9 & $var6))
                            break e;
                    }
                    if ($par3 <= 1)
                        break d;
                    $ptr = 4;
                    continue main;
                }
                if ($var8)
                    return;
                $var7 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
                $var13 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
                $ptr = 7;
                continue main;
            }
            if ($var8)
                return;
            $par5Random = $par1World.$rand0;
            var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$6;
            $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$6, $var13)))), 31)) & $var9;
            if ($var12_0 > 0) {
                $var13 = 0;
                if ($var13 <= 3) {
                    $par3 = $par2 + nms_Direction_offsetX.data[$var13] | 0;
                    $var6 = $par4 + nms_Direction_offsetZ.data[$var13] | 0;
                    $ptr = 12;
                    continue main;
                }
                if ($var12_0 > 0) {
                    $par3 = $this.$blockID;
                    $var6 = 2;
                    $ptr = 16;
                    continue main;
                }
            }
        }
        return;
    case 4:
        b: {
            $tmp = nms_World_getBlockId($par1World, $par2, $var14, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var12 = $tmp;
            if ($var12) {
                if ($var12 != $this.$blockID)
                    break b;
                $par5Random = $par1World.$rand0;
                var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$6;
                $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$6, $var13)))), 31)) & $var9;
                $ptr = 5;
                continue main;
            }
            $par5Random = $par1World.$rand0;
            var$6 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$6;
            $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$6, $var13)))), 31)) & $var9;
            if ($var13 > 0) {
                $var6 = $this.$blockID;
                $par3 = 2;
                $ptr = 6;
                continue main;
            }
        }
        return;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var14, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var14_0 = $tmp;
        $par3 = $var14_0 | $var13;
        if ($var14_0 == $par3)
            return;
        $var6 = 2;
        $ptr = 8;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par2, $var14, $par4, $var6, $var13, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $var7, $par3, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $tmp;
        if ($var12_0) {
            nms_Block_$callClinit();
            var$20 = nms_Block_blocksList.data;
            if (var$20[$var12_0] !== null) {
                $par5Random = var$20[$var12_0].$blockMaterial;
                $var7 = !$par5Random.$isTranslucent ? $par5Random.$blocksMovement() : 0;
                if ($var7 && nms_Block_blocksList.data[$var12_0].$renderAsNormalBlock()) {
                    $var6 = $var9 | $var6;
                    $var7 = 2;
                    $ptr = 18;
                    continue main;
                }
                return;
            }
        }
        $var13 = ($var11 + 1 | 0) & 3;
        $var14 = ($var11 + 3 | 0) & 3;
        $var10 = 1 << $var13;
        $var8 = $var9 & $var10;
        if ($var8) {
            var$20 = nms_Direction_offsetX.data;
            $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var13] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var13] | 0;
            $ptr = 9;
            continue main;
        }
        $var10 = 1 << $var14;
        $var10_0 = $var9 & $var10;
        if ($var10_0) {
            var$20 = nms_Direction_offsetX.data;
            $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
            $ptr = 10;
            continue main;
        }
        if ($var8) {
            var$20 = nms_Direction_offsetX.data;
            $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var13] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var13] | 0;
            $ptr = 11;
            continue main;
        }
        if (!$var10_0) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        var$20 = nms_Direction_offsetX.data;
        $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
        var$20 = nms_Direction_offsetZ.data;
        $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
        $ptr = 14;
        continue main;
    case 8:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $var14, $par4, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var6 = 0;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$var6];
            $var6 = $par5Random.$renderAsNormalBlock() && $par5Random.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if ($var6) {
            $par2 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $par4 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $var6 = $this.$blockID;
            $var7 = 2;
            $ptr = 15;
            continue main;
        }
        $var10 = 1 << $var14;
        $var10_0 = $var9 & $var10;
        if ($var10_0) {
            var$20 = nms_Direction_offsetX.data;
            $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
            $ptr = 10;
            continue main;
        }
        if ($var8) {
            var$20 = nms_Direction_offsetX.data;
            $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var13] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var13] | 0;
            $ptr = 11;
            continue main;
        }
        if (!$var10_0) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        var$20 = nms_Direction_offsetX.data;
        $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
        var$20 = nms_Direction_offsetZ.data;
        $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
        $ptr = 14;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var6 = 0;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$var6];
            $var6 = $par5Random.$renderAsNormalBlock() && $par5Random.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if ($var6) {
            $par2 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $par4 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $var6 = $this.$blockID;
            $var7 = 2;
            $ptr = 17;
            continue main;
        }
        if ($var8) {
            var$20 = nms_Direction_offsetX.data;
            $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var13] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var13] | 0;
            $ptr = 11;
            continue main;
        }
        if (!$var10_0) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        var$20 = nms_Direction_offsetX.data;
        $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
        var$20 = nms_Direction_offsetZ.data;
        $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
        $ptr = 14;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 ? 0 : 1) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var13] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var13] | 0;
            $ptr = 19;
            continue main;
        }
        if (!$var10_0) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        var$20 = nms_Direction_offsetX.data;
        $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
        var$20 = nms_Direction_offsetZ.data;
        $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
        $ptr = 14;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId($par1World, $par3, $var12, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3)
            $par3 = 0;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$par3];
            $par3 = $par5Random.$renderAsNormalBlock() && $par5Random.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if (!$par3)
            $var12_0 = $var12_0 & (1 << $var13 ^ (-1));
        $var13 = $var13 + 1 | 0;
        if ($var13 > 3) {
            if ($var12_0 <= 0)
                return;
            $par3 = $this.$blockID;
            $var6 = 2;
            $ptr = 16;
            continue main;
        }
        $par3 = $par2 + nms_Direction_offsetX.data[$var13] | 0;
        $var6 = $par4 + nms_Direction_offsetZ.data[$var13] | 0;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $var6, $var12, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var6 = 0;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$var6];
            $var6 = $par5Random.$renderAsNormalBlock() && $par5Random.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if (!$var6)
            return;
        $par2 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
        $par4 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
        $var6 = $this.$blockID;
        $var7 = 0;
        $var9 = 2;
        $ptr = 20;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 ? 0 : 1)) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        $var6 = $par2 + nms_Direction_offsetX.data[$var14] | 0;
        $var7 = $par4 + nms_Direction_offsetZ.data[$var14] | 0;
        $ptr = 21;
        continue main;
    case 15:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, $var10, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 16:
        nms_World_setBlock($par1World, $par2, $var12, $par4, $par3, $var12_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 17:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, $var10, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 18:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 19:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var6 = 0;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$var6];
            $var6 = $par5Random.$renderAsNormalBlock() && $par5Random.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if ($var6) {
            var$20 = nms_Direction_offsetX.data;
            $par2 = ($par2 + var$20[$var11] | 0) + var$20[$var13] | 0;
            var$20 = nms_Direction_offsetZ.data;
            $par4 = ($par4 + var$20[$var11] | 0) + var$20[$var13] | 0;
            $var6 = $this.$blockID;
            $var7 = 1 << (($var11 + 2 | 0) & 3);
            $var9 = 2;
            $ptr = 22;
            continue main;
        }
        if (!$var10_0) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        var$20 = nms_Direction_offsetX.data;
        $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
        var$20 = nms_Direction_offsetZ.data;
        $var7 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
        $ptr = 14;
        continue main;
    case 20:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 21:
        $tmp = nms_World_getBlockId($par1World, $var6, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var6 = 0;
        else {
            nms_Block_$callClinit();
            $par5Random = nms_Block_blocksList.data[$var6];
            $var6 = $par5Random.$renderAsNormalBlock() && $par5Random.$blockMaterial.$blocksMovement() ? 1 : 0;
        }
        if (!$var6) {
            $var6 = $par2 + nms_Direction_offsetX.data[$var11] | 0;
            $var7 = $par4 + nms_Direction_offsetZ.data[$var11] | 0;
            $ptr = 13;
            continue main;
        }
        var$20 = nms_Direction_offsetX.data;
        $var6 = ($par2 + var$20[$var11] | 0) + var$20[$var14] | 0;
        var$20 = nms_Direction_offsetZ.data;
        $par4 = ($par4 + var$20[$var11] | 0) + var$20[$var14] | 0;
        $var7 = $this.$blockID;
        $par2 = 1 << (($var11 + 2 | 0) & 3);
        $var9 = 2;
        $ptr = 23;
        continue main;
    case 22:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 23:
        nms_World_setBlock($par1World, $var6, $par3, $par4, $var7, $par2, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $var13, $var7, $var8, $var9, $var6, $var10, $var6_0, $var14, $var12, $var10_0, $var11, $var12_0, $var14_0, var$20, $ptr);
},
nms_BlockVine_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10;
    a: {
        $var10 = 0;
        switch ($par5) {
            case 2:
                $var10 = 1;
                break a;
            case 3:
                $var10 = 4;
                break a;
            case 4:
                $var10 = 8;
                break a;
            case 5:
                $var10 = 2;
                break a;
            default:
        }
    }
    if ($var10)
        $par9 = $var10;
    return $par9;
},
nms_BlockVine_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
},
nms_BlockVine_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockVine_harvestBlock = ($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6) => {
    let var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            var$7 = $par2EntityPlayer.$inventory0;
            var$8 = var$7.$currentItem;
            var$9 = $rt_compare(var$8, 9);
            if ((var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null) !== null) {
                var$9 = (var$9 < 0 && var$8 >= 0 ? var$7.$mainInventory.data[var$8] : null).$itemID;
                nms_Item_$callClinit();
                if (var$9 == nms_Item_shears.$itemID0) {
                    nms_StatList_$callClinit();
                    var$7 = nms_StatList_mineBlockStatArray.data[$this.$blockID];
                    if (var$7 !== null && !var$7.$isIndependent)
                        a: {
                            var$10 = $par2EntityPlayer.$playerNetServerHandler;
                            var$11 = new nms_Packet200Statistic;
                            var$9 = var$7.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$11.$statisticId = var$9;
                            var$11.$amount = 1;
                            if (var$11 instanceof nms_Packet3Chat) {
                                $par2EntityPlayer = var$11;
                                $par6 = var$10.$playerEntity.$chatVisibility;
                                if ($par6 == 2)
                                    break a;
                                if ($par6 == 1 && !$par2EntityPlayer.$isServer)
                                    break a;
                            }
                            try {
                                $par2EntityPlayer = var$10.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$11 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $par2EntityPlayer = new otcic_JSStderrPrintStream;
                                var$7 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$7);
                                var$7.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($par2EntityPlayer, var$7);
                                $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                                $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                                $par2EntityPlayer.$autoFlush = 0;
                                $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $par2EntityPlayer;
                            }
                            jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                        }
                    var$7 = new nms_ItemStack;
                    nms_Block_$callClinit();
                    $par2EntityPlayer = nms_Block_vine;
                    nms_ItemStack_$callClinit();
                    var$7.$itemID = $par2EntityPlayer.$blockID;
                    var$7.$stackSize = 1;
                    var$7.$itemDamage = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        nms_Block_harvestBlock($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par3, $par4, $par5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2EntityPlayer, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2EntityPlayer = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par2EntityPlayer, var$7);
                $par2EntityPlayer.$sb = jl_StringBuilder__init_();
                $par2EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par2EntityPlayer.$autoFlush = 0;
                $par2EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par2EntityPlayer;
            }
            jl_Throwable_printStackTrace(var$11, jl_System_errCache);
        }
        var$7 = new nms_ItemStack;
        nms_Block_$callClinit();
        $par2EntityPlayer = nms_Block_vine;
        nms_ItemStack_$callClinit();
        var$7.$itemID = $par2EntityPlayer.$blockID;
        var$7.$stackSize = 1;
        var$7.$itemDamage = 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, $par3, $par4, $par5, $par6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockFenceGate = $rt_classWithoutFields(nms_BlockDirectional),
nms_BlockFenceGate__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockFenceGate__init_0 = var_0 => {
    let var_1 = new nms_BlockFenceGate();
    nms_BlockFenceGate__init_(var_1, var_0);
    return var_1;
},
nms_BlockFenceGate_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            nms_Material_$callClinit();
            var$6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[var$5].$blockMaterial;
        }
        if (!var$6.$isSolid())
            return 0;
        $ptr = 2;
    case 2:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            if ($par2) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[$par2].$blockMaterial.$replaceable) {
                    $par2 = 0;
                    break a;
                }
            }
            $par2 = 1;
        }
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockFenceGate_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!($var5 & 4) ? 0 : 1)
            var$6 = null;
        else if ($var5 != 2 && $var5) {
            $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$7 = $par2;
            var$8 = var$7 + 0.375;
            var$9 = $par3;
            var$10 = $par4;
            var$11 = var$7 + 0.625;
            var$12 = $par3 + 1.5;
            var$13 = $par4 + 1 | 0;
            $par2 = $par1World.$nextPoolIndex;
            var$14 = $par1World.$listAABB;
            $par3 = var$14.$size0;
            $par4 = $rt_compare($par2, $par3);
            if ($par4 >= 0) {
                var$6 = new nms_AxisAlignedBB;
                var$6.$minX0 = var$8;
                var$6.$minY0 = var$9;
                var$6.$minZ0 = var$10;
                var$6.$maxX0 = var$11;
                var$6.$maxY = var$12;
                var$6.$maxZ0 = var$13;
                ju_ArrayList_ensureCapacity(var$14, $par3 + 1 | 0);
                var$15 = var$14.$array.data;
                $par3 = var$14.$size0;
                var$14.$size0 = $par3 + 1 | 0;
                var$15[$par3] = var$6;
                var$14.$modCount = var$14.$modCount + 1 | 0;
            } else if ($par2 >= 0 && $par4 < 0) {
                var$6 = var$14.$array.data[$par2];
                var$6.$minX0 = var$8;
                var$6.$minY0 = var$9;
                var$6.$minZ0 = var$10;
                var$6.$maxX0 = var$11;
                var$6.$maxY = var$12;
                var$6.$maxZ0 = var$13;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        } else {
            $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$8 = $par2;
            var$9 = $par3;
            var$16 = $par4;
            var$10 = var$16 + 0.375;
            var$12 = $par2 + 1 | 0;
            var$13 = $par3 + 1.5;
            var$11 = var$16 + 0.625;
            $par2 = $par1World.$nextPoolIndex;
            var$14 = $par1World.$listAABB;
            $par4 = var$14.$size0;
            $par3 = $rt_compare($par2, $par4);
            if ($par3 >= 0) {
                var$6 = new nms_AxisAlignedBB;
                var$6.$minX0 = var$8;
                var$6.$minY0 = var$9;
                var$6.$minZ0 = var$10;
                var$6.$maxX0 = var$12;
                var$6.$maxY = var$13;
                var$6.$maxZ0 = var$11;
                ju_ArrayList_ensureCapacity(var$14, $par4 + 1 | 0);
                var$15 = var$14.$array.data;
                $par3 = var$14.$size0;
                var$14.$size0 = $par3 + 1 | 0;
                var$15[$par3] = var$6;
                var$14.$modCount = var$14.$modCount + 1 | 0;
            } else if ($par2 >= 0 && $par3 < 0) {
                var$6 = var$14.$array.data[$par2];
                var$6.$minX0 = var$8;
                var$6.$minY0 = var$9;
                var$6.$minZ0 = var$10;
                var$6.$maxX0 = var$12;
                var$6.$maxY = var$13;
                var$6.$maxZ0 = var$11;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        }
        return var$6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_BlockFenceGate_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $var5 = $par2 & 3;
        if ($var5 != 2 && $var5) {
            $this.$minX1 = 0.375;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.625;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.375;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.625;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockFenceGate_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFenceGate_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFenceGate_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !($par2 & 4) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockFenceGate_getRenderType = $this => {
    return 21;
},
nms_BlockFenceGate_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var7 = var$7 | 0;
        if (var$7 < $var7)
            $var7 = $var7 - 1 | 0;
        $var7 = ($var7 & 3) % 4 | 0;
        var$9 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var7, var$9, $ptr);
},
nms_BlockFenceGate_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, var$11, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!($var10 & 4) ? 0 : 1) {
            $par6 = $var10 & (-5);
            $var10 = 2;
            $ptr = 2;
            continue main;
        }
        var$11 = $par5EntityPlayer.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var11 = var$11 | 0;
        if (var$11 < $var11)
            $var11 = $var11 - 1 | 0;
        $var11 = ($var11 & 3) % 4 | 0;
        if (($var10 & 3) != (($var11 + 2 | 0) % 4 | 0))
            $var11 = $var10;
        $par6 = $var11 | 4;
        $var10 = 2;
        $ptr = 4;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 1003;
        $par6 = 0;
        $ptr = 3;
    case 3:
        nms_World_playAuxSFXAtEntity($par1World, $par5EntityPlayer, $var10, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 1003;
        $par6 = 0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, var$11, $var11, $ptr);
},
nms_BlockFenceGate_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 2;
    case 2:
        a: {
            $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            if (!$var7) {
                if ($par5 <= 0)
                    break a;
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[$par5].$canProvidePower())
                    break a;
            }
            if ($var7 && !(!($var6 & 4) ? 0 : 1)) {
                $par5 = $var6 | 4;
                $var6 = 2;
                $ptr = 3;
                continue main;
            }
            if (!$var7 && (!($var6 & 4) ? 0 : 1)) {
                $par5 = $var6 & (-5);
                $var6 = 2;
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = null;
        $par5 = 1003;
        $var6 = 0;
        $ptr = 4;
    case 4:
        nms_World_playAuxSFXAtEntity($par1World, var$8, $par5, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = null;
        $var6 = 1003;
        $par5 = 0;
        $ptr = 6;
    case 6:
        nms_World_playAuxSFXAtEntity($par1World, var$8, $var6, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, $ptr);
},
nms_BlockMycelium = $rt_classWithoutFields(nms_Block),
nms_BlockMycelium__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_grass);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockMycelium__init_ = var_0 => {
    let var_1 = new nms_BlockMycelium();
    nms_BlockMycelium__init_0(var_1, var_0);
    return var_1;
},
nms_BlockMycelium_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, $var8, $var9, var$9, var$10, var$11, var$12, var$13, var$14, $var7, $var10, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $var6 = $par3 + 1 | 0;
        $var8 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, $var6, $par4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 >= 4) {
            $var8 = 1;
            $ptr = 2;
            continue main;
        }
        nms_Block_$callClinit();
        var$9 = nms_Block_lightOpacity.data;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockLightValue_do($par1World, $par2, $var6, $par4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 >= 9) {
            $var6 = 0;
            var$10 = 17;
            var$11 = 2;
            var$12 = 4;
            if ($var6 < 4) {
                var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$13;
                $var9 = Long_lo(Long_shru(var$13, var$10));
                while (true) {
                    var$14 = $var9 % 3 | 0;
                    if ((($var9 - var$14 | 0) + var$11 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$13;
                    $var9 = Long_lo(Long_shru(var$13, var$10));
                }
                $var7 = ($par2 + var$14 | 0) - 1 | 0;
                var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$13;
                $var8 = Long_lo(Long_shru(var$13, var$10));
                while (true) {
                    $var9 = $var8 % 5 | 0;
                    if ((($var8 - $var9 | 0) + var$12 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$13;
                    $var8 = Long_lo(Long_shru(var$13, var$10));
                }
                $var8 = ($par3 + $var9 | 0) - 3 | 0;
                var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$13;
                var$14 = Long_lo(Long_shru(var$13, var$10));
                while (true) {
                    $var10 = var$14 % 3 | 0;
                    if (((var$14 - $var10 | 0) + var$11 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$13;
                    var$14 = Long_lo(Long_shru(var$13, var$10));
                }
                $var9 = ($par4 + $var10 | 0) - 1 | 0;
                var$14 = $var8 + 1 | 0;
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (var$9[$var8] <= 2) {
            $var8 = 1;
            $ptr = 2;
            continue main;
        }
        $var6 = nms_Block_dirt.$blockID;
        $var8 = 0;
        $var9 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var6, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var7, var$14, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $tmp;
        nms_Block_$callClinit();
        if (var$17 == nms_Block_dirt.$blockID) {
            var$17 = 1;
            $ptr = 7;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 4)
            return;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            var$14 = $var9 % 3 | 0;
            if ((($var9 - var$14 | 0) + var$11 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$10));
        }
        $var7 = ($par2 + var$14 | 0) - 1 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $var8 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            $var9 = $var8 % 5 | 0;
            if ((($var8 - $var9 | 0) + var$12 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            $var8 = Long_lo(Long_shru(var$13, var$10));
        }
        $var8 = ($par3 + $var9 | 0) - 3 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        var$14 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            $var10 = var$14 % 3 | 0;
            if (((var$14 - $var10 | 0) + var$11 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            var$14 = Long_lo(Long_shru(var$13, var$10));
        }
        $var9 = ($par4 + $var10 | 0) - 1 | 0;
        var$14 = $var8 + 1 | 0;
        $ptr = 5;
        continue main;
    case 7:
        $tmp = nms_World_getBlockLightValue_do($par1World, $var7, var$14, $var9, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $tmp;
        if (var$17 >= 4 && nms_Block_lightOpacity.data[$var10] <= 2) {
            var$14 = $this.$blockID;
            $var10 = 0;
            var$17 = 3;
            $ptr = 8;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 4)
            return;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            var$14 = $var9 % 3 | 0;
            if ((($var9 - var$14 | 0) + var$11 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$10));
        }
        $var7 = ($par2 + var$14 | 0) - 1 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $var8 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            $var9 = $var8 % 5 | 0;
            if ((($var8 - $var9 | 0) + var$12 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            $var8 = Long_lo(Long_shru(var$13, var$10));
        }
        $var8 = ($par3 + $var9 | 0) - 3 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        var$14 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            $var10 = var$14 % 3 | 0;
            if (((var$14 - $var10 | 0) + var$11 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            var$14 = Long_lo(Long_shru(var$13, var$10));
        }
        $var9 = ($par4 + $var10 | 0) - 1 | 0;
        var$14 = $var8 + 1 | 0;
        $ptr = 5;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $var7, $var8, $var9, var$14, $var10, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 4)
            return;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            var$14 = $var9 % 3 | 0;
            if ((($var9 - var$14 | 0) + var$11 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$10));
        }
        $var7 = ($par2 + var$14 | 0) - 1 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $var8 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            $var9 = $var8 % 5 | 0;
            if ((($var8 - $var9 | 0) + var$12 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            $var8 = Long_lo(Long_shru(var$13, var$10));
        }
        $var8 = ($par3 + $var9 | 0) - 3 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        var$14 = Long_lo(Long_shru(var$13, var$10));
        while (true) {
            $var10 = var$14 % 3 | 0;
            if (((var$14 - $var10 | 0) + var$11 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$13;
            var$14 = Long_lo(Long_shru(var$13, var$10));
        }
        $var9 = ($par4 + $var10 | 0) - 1 | 0;
        var$14 = $var8 + 1 | 0;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, $var8, $var9, var$9, var$10, var$11, var$12, var$13, var$14, $var7, $var10, var$17, $ptr);
},
nms_BlockMycelium_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_dirt.$idDropped(0, $par2Random, $par3);
},
nms_BlockLilyPad = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockLilyPad__init_ = ($this, $par1) => {
    let var$2;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    var$2 = nms_CreativeTabs_tabDecorations;
    $this.$displayOnCreativeTab = var$2;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.015625;
    $this.$maxZ1 = 1.0;
    $this.$displayOnCreativeTab = var$2;
},
nms_BlockLilyPad__init_0 = var_0 => {
    let var_1 = new nms_BlockLilyPad();
    nms_BlockLilyPad__init_(var_1, var_0);
    return var_1;
},
nms_BlockLilyPad_getRenderType = $this => {
    return 23;
},
nms_BlockLilyPad_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7Entity !== null && $par7Entity instanceof nms_EntityBoat)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockLilyPad_getCollisionBoundingBoxFromPool($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        if ($par1World !== null && nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$8 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$8[$par3] = $par1World;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, $ptr);
},
nms_BlockLilyPad_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$5 = $par2;
    var$6 = var$5 + $this.$minX1;
    var$7 = $par3;
    var$8 = var$7 + $this.$minY1;
    var$9 = $par4;
    var$10 = var$9 + $this.$minZ1;
    var$5 = var$5 + $this.$maxX1;
    var$7 = var$7 + $this.$maxY0;
    var$9 = var$9 + $this.$maxZ1;
    $par2 = $par1World.$nextPoolIndex;
    var$11 = $par1World.$listAABB;
    $par4 = var$11.$size0;
    $par3 = $rt_compare($par2, $par4);
    if ($par3 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$8;
        var$12.$minZ0 = var$10;
        var$12.$maxX0 = var$5;
        var$12.$maxY = var$7;
        var$12.$maxZ0 = var$9;
        ju_ArrayList_ensureCapacity(var$11, $par4 + 1 | 0);
        var$13 = var$11.$array.data;
        $par3 = var$11.$size0;
        var$11.$size0 = $par3 + 1 | 0;
        var$13[$par3] = var$12;
        var$11.$modCount = var$11.$modCount + 1 | 0;
    } else if ($par2 >= 0 && $par3 < 0) {
        var$12 = var$11.$array.data[$par2];
        var$12.$minX0 = var$6;
        var$12.$minY0 = var$8;
        var$12.$minZ0 = var$10;
        var$12.$maxX0 = var$5;
        var$12.$maxY = var$7;
        var$12.$maxZ0 = var$9;
    } else {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
    return var$12;
};
let nms_BlockLilyPad_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_waterStill.$blockID ? 0 : 1;
},
nms_BlockLilyPad_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3 >= 0 && $par3 < 256) {
            var$5 = $par3 - 1 | 0;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3) {
            nms_Material_$callClinit();
            var$6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$par3].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$6 !== nms_Material_water)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_BlockNetherStalk = $rt_classWithoutFields(nms_BlockFlower),
nms_BlockNetherStalk__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.25;
    $this.$maxZ1 = 1.0;
    $this.$displayOnCreativeTab = null;
},
nms_BlockNetherStalk__init_0 = var_0 => {
    let var_1 = new nms_BlockNetherStalk();
    nms_BlockNetherStalk__init_(var_1, var_0);
    return var_1;
},
nms_BlockNetherStalk_canThisPlantGrowOnThisBlockID = ($this, $par1) => {
    nms_Block_$callClinit();
    return $par1 != nms_Block_slowSand.$blockID ? 0 : 1;
},
nms_BlockNetherStalk_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_Block_$callClinit();
        return $par2 != nms_Block_slowSand.$blockID ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockNetherStalk_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 < 3) {
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 17));
            while (true) {
                var$9 = var$8 % 10 | 0;
                if (((var$8 - var$9 | 0) + 9 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$7;
                var$8 = Long_lo(Long_shru(var$7, 17));
            }
            if (!var$9) {
                var$10 = $var6 + 1 | 0;
                var$8 = 2;
                $ptr = 6;
                continue main;
            }
        }
        var$10 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        nms_Block_$callClinit();
        if (var$10 != nms_Block_slowSand.$blockID ? 0 : 1)
            return;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        var$8 = 0;
        var$11 = 1.0;
        $ptr = 4;
    case 4:
        nms_BlockNetherStalk_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$10, var$11, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = 0;
        var$8 = 0;
        var$9 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$10, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$10, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $par3 - 1 | 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockNetherStalk_getRenderType = $this => {
    return 6;
},
nms_BlockNetherStalk_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$9, var$10, var$11, var$12, var$13, $var9, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var9 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            $var8 = 1;
            if ($par5 >= 3) {
                var$9 = $par1World.$rand0;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$12 = var$11 % 3 | 0;
                    if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                }
                $var8 = 2 + var$12 | 0;
                if ($par7 > 0) {
                    $par5 = $par7 + 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                    $par7 = $par5 - 1 | 0;
                    if (!($par5 & $par7))
                        var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt($par5), Long_fromInt(var$11)), 31));
                    else
                        while (true) {
                            var$13 = var$11 % $par5 | 0;
                            if (((var$11 - var$13 | 0) + $par7 | 0) >= 0)
                                break;
                            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$9.$seed = var$10;
                            var$11 = Long_lo(Long_shru(var$10, 17));
                        }
                    $var8 = $var8 + var$13 | 0;
                }
            }
            $var9 = 0;
            if ($var9 < $var8) {
                var$9 = new nms_ItemStack;
                nms_Item_$callClinit();
                var$15 = nms_Item_netherStalkSeeds;
                nms_ItemStack_$callClinit();
                var$9.$itemID = var$15.$itemID0;
                var$9.$stackSize = 1;
                var$9.$itemDamage = 0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 >= $var8)
            return;
        var$9 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$15 = nms_Item_netherStalkSeeds;
        nms_ItemStack_$callClinit();
        var$9.$itemID = var$15.$itemID0;
        var$9.$stackSize = 1;
        var$9.$itemDamage = 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, var$9, var$10, var$11, var$12, var$13, $var9, var$15, $ptr);
},
nms_BlockNetherStalk_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
},
nms_BlockNetherStalk_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockEnchantmentTable = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockEnchantmentTable__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isBlockContainer = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.75;
    $this.$maxZ1 = 1.0;
    nms_Block_lightOpacity.data[$this.$blockID] = 0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockEnchantmentTable__init_ = var_0 => {
    let var_1 = new nms_BlockEnchantmentTable();
    nms_BlockEnchantmentTable__init_0(var_1, var_0);
    return var_1;
},
nms_BlockEnchantmentTable_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockEnchantmentTable_isOpaqueCube = $this => {
    return 0;
},
nms_BlockEnchantmentTable_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityEnchantmentTable;
    nms_TileEntityEnchantmentTable_$callClinit();
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
},
nms_BlockEnchantmentTable_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        $par1World = $var10.$field_94136_s;
        if (!($par1World !== null && $par1World.$nativeString.length > 0 ? 1 : 0))
            $par1World = null;
        else {
            $par1World = $var10.$field_94136_s;
            $par1World = !($par1World !== null && $par1World.$nativeString.length > 0 ? 1 : 0) ? $rt_s(1451) : $var10.$field_94136_s;
        }
        $ptr = 2;
    case 2:
        nms_EntityPlayerMP_displayGUIEnchantment($par5EntityPlayer, $par2, $par3, $par4, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $ptr);
},
nms_BlockEnchantmentTable_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par6ItemStack.$stackTagCompound;
        if (var$7 === null)
            var$8 = 0;
        else {
            a: {
                var$7 = var$7.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$10 = var$7.$elementData.data;
            var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$9) {
                    b: {
                        var$11 = var$7.$key;
                        if ($rt_s(918) !== var$11) {
                            if ($rt_s(918) === var$11)
                                var$8 = 1;
                            else if (!(var$11 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$11 = var$11;
                                var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$7 = var$7.$next3;
            }
            if (!(var$7 === null ? 0 : 1))
                var$8 = 0;
            else {
                c: {
                    var$7 = $par6ItemStack.$stackTagCompound;
                    var$11 = var$7.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$10 = var$11.$elementData.data;
                var$11 = var$10[var$9 & (var$10.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$9) {
                        d: {
                            var$12 = var$11.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    var$8 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$12 = var$12;
                                    var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break d;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
                if (!(var$11 === null ? 0 : 1)) {
                    var$7 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$7.$name = $rt_s(918);
                    else
                        var$7.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$8 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$10 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                    var$13 = var$10.data;
                    $par5EntityLivingBase.$elementData = var$10;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$13.length * 0.75 | 0;
                    var$7.$tagMap = $par5EntityLivingBase;
                } else {
                    var$7 = var$7.$tagMap;
                    if ($rt_s(918) === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$10 = var$7.$elementData.data;
                        var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$9) {
                                f: {
                                    var$11 = var$7.$key;
                                    if ($rt_s(918) !== var$11) {
                                        if ($rt_s(918) === var$11)
                                            var$8 = 1;
                                        else if (!(var$11 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$11 = var$11;
                                            var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break f;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$7 = var$7 === null ? null : var$7.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$7.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                var$12 = var$10[var$14 & (var$10.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$14) {
                        h: {
                            $par5EntityLivingBase = var$12.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$8 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$8 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break h;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                var$8 = var$12 === null ? 0 : 1;
            }
        }
        if (!var$8)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        var$7 = $par1World;
        nms_Item_$callClinit();
        var$11 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par1World = $par6ItemStack.$stackTagCompound;
        if ($par1World !== null) {
            a: {
                $par1World = $par1World.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$10 = $par1World.$elementData.data;
            var$15 = var$10[$par3 & (var$10.length - 1 | 0)];
            while (var$15 !== null) {
                if (var$15.$origKeyHash == $par3) {
                    b: {
                        $par1World = var$15.$key;
                        if ($rt_s(918) !== $par1World) {
                            if ($rt_s(918) === $par1World)
                                $par2 = 1;
                            else if (!($par1World instanceof jl_String))
                                $par2 = 0;
                            else {
                                $par1World = $par1World;
                                $par2 = $rt_s(918).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break b;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                var$15 = var$15.$next3;
            }
            if (var$15 === null ? 0 : 1) {
                c: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    $par6ItemStack = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par2 = $rt_s(918).$hashCode1;
                var$10 = $par6ItemStack.$elementData.data;
                $par6ItemStack = var$10[$par2 & (var$10.length - 1 | 0)];
                while ($par6ItemStack !== null) {
                    if ($par6ItemStack.$origKeyHash == $par2) {
                        d: {
                            var$12 = $par6ItemStack.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $par3 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $par3 = 0;
                                else {
                                    var$12 = var$12;
                                    $par3 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$par3) {
                                    $par3 = 0;
                                    break d;
                                }
                            }
                            $par3 = 1;
                        }
                        if ($par3)
                            break;
                    }
                    $par6ItemStack = $par6ItemStack.$next3;
                }
                if (!($par6ItemStack === null ? 0 : 1)) {
                    var$12 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$12.$name = $rt_s(918);
                    else
                        var$12.$name = $rt_s(3);
                    $par1World = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par1World.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$10 = var$13.data;
                    $par1World.$elementData = var$13;
                    $par1World.$loadFactor = 0.75;
                    $par1World.$threshold = var$10.length * 0.75 | 0;
                    var$12.$tagMap = $par1World;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par2 = $rt_s(918).$hashCode1;
                        var$10 = $par1World.$elementData.data;
                        $par1World = var$10[$par2 & (var$10.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par2) {
                                f: {
                                    $par6ItemStack = $par1World.$key;
                                    if ($rt_s(918) !== $par6ItemStack) {
                                        if ($rt_s(918) === $par6ItemStack)
                                            $par3 = 1;
                                        else if (!($par6ItemStack instanceof jl_String))
                                            $par3 = 0;
                                        else {
                                            $par6ItemStack = $par6ItemStack;
                                            $par3 = $rt_s(918).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                        }
                                        if (!$par3) {
                                            $par3 = 0;
                                            break f;
                                        }
                                    }
                                    $par3 = 1;
                                }
                                if ($par3)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    }
                    var$12 = $par1World === null ? null : $par1World.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$12.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        h: {
                            $par6ItemStack = $par5EntityLivingBase.$key;
                            if ($rt_s(919) !== $par6ItemStack) {
                                if ($rt_s(919) === $par6ItemStack)
                                    $par2 = 1;
                                else if (!($par6ItemStack instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par6ItemStack = $par6ItemStack;
                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break h;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    i: {
                        $par5EntityLivingBase = var$12.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$10 = $par5EntityLivingBase.$elementData.data;
                    $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                    while ($par5EntityLivingBase !== null) {
                        if ($par5EntityLivingBase.$origKeyHash == $par4) {
                            j: {
                                $par6ItemStack = $par5EntityLivingBase.$key;
                                if ($rt_s(919) !== $par6ItemStack) {
                                    if ($rt_s(919) === $par6ItemStack)
                                        $par2 = 1;
                                    else if (!($par6ItemStack instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par6ItemStack = $par6ItemStack;
                                        $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break j;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                    }
                    if (!($par5EntityLivingBase === null ? 0 : 1))
                        var$11 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$12.$tagMap;
                        if ($rt_s(919) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            k: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break k;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(919).$hashCode1;
                            var$10 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    l: {
                                        $par6ItemStack = $par5EntityLivingBase.$key;
                                        if ($rt_s(919) !== $par6ItemStack) {
                                            if ($rt_s(919) === $par6ItemStack)
                                                $par2 = 1;
                                            else if (!($par6ItemStack instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par6ItemStack = $par6ItemStack;
                                                $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break l;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        var$11 = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                    }
                }
            }
        }
        var$7.$field_94136_s = var$11;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
};
function nms_BlockBrewingStand() {
    nms_BlockContainer.call(this);
    this.$rand4 = null;
}
let nms_BlockBrewingStand__init_ = ($this, $par1) => {
    let var$2, var$3;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_iron);
    $this.$isBlockContainer = 1;
    var$2 = new nle_EaglercraftRandom;
    var$3 = Long_fromNumber(performance.now() * 1000000.0);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = var$3;
    $this.$rand4 = var$2;
},
nms_BlockBrewingStand__init_0 = var_0 => {
    let var_1 = new nms_BlockBrewingStand();
    nms_BlockBrewingStand__init_(var_1, var_0);
    return var_1;
},
nms_BlockBrewingStand_isOpaqueCube = $this => {
    return 0;
},
nms_BlockBrewingStand_getRenderType = $this => {
    return 25;
},
nms_BlockBrewingStand_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityBrewingStand;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    $par1World.$brewingItemStacks = $rt_createArray(nms_ItemStack, 4);
    return $par1World;
},
nms_BlockBrewingStand_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockBrewingStand_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$minX1 = 0.4375;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.4375;
        $this.$maxX1 = 0.5625;
        $this.$maxY0 = 0.875;
        $this.$maxZ1 = 0.5625;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$9 = $par2;
        var$10 = var$9 + $this.$minX1;
        var$11 = $par3;
        var$12 = var$11 + $this.$minY1;
        var$13 = $par4;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.125;
        $this.$maxZ1 = 1.0;
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$19 = var$9 + $this.$minX1;
        var$10 = var$11 + $this.$minY1;
        var$16 = var$13 + $this.$minZ1;
        var$9 = var$9 + $this.$maxX1;
        var$17 = var$11 + $this.$maxY0;
        var$11 = var$13 + $this.$maxZ1;
        $par2 = $par1World.$nextPoolIndex;
        $par7Entity = $par1World.$listAABB;
        $par4 = $par7Entity.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            var$8 = new nms_AxisAlignedBB;
            var$8.$minX0 = var$19;
            var$8.$minY0 = var$10;
            var$8.$minZ0 = var$16;
            var$8.$maxX0 = var$9;
            var$8.$maxY = var$17;
            var$8.$maxZ0 = var$11;
            ju_ArrayList_ensureCapacity($par7Entity, $par4 + 1 | 0);
            var$18 = $par7Entity.$array.data;
            $par3 = $par7Entity.$size0;
            $par7Entity.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            var$8 = $par7Entity.$array.data[$par2];
            var$8.$minX0 = var$19;
            var$8.$minY0 = var$10;
            var$8.$minZ0 = var$16;
            var$8.$maxX0 = var$9;
            var$8.$maxY = var$17;
            var$8.$maxZ0 = var$11;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$8)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_BlockBrewingStand_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        if ($var10 === null)
            return 1;
        $par6 = ($par5EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
        $par5EntityPlayer.$currentWindowId = $par6;
        var$11 = $par5EntityPlayer.$playerNetServerHandler;
        $par1World = new nms_Packet100OpenWindow;
        var$12 = $var10.$field_94132_e;
        var$12 = !(var$12 !== null && var$12.$nativeString.length > 0 ? 1 : 0) ? $rt_s(1452) : $var10.$field_94132_e;
        $par4 = $var10.$brewingItemStacks.data.length;
        var$13 = $var10.$field_94132_e;
        $par3 = var$13 !== null && var$13.$nativeString.length > 0 ? 1 : 0;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1World.$windowId2 = $par6;
            $par1World.$inventoryType = 5;
            $par1World.$windowTitle = var$12;
            $par1World.$slotsCount0 = $par4;
            $par1World.$useProvidedWindowTitle = $par3;
            if ($par1World instanceof nms_Packet3Chat) {
                var$12 = $par1World;
                $par3 = var$11.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break a;
                if ($par3 == 1 && !var$12.$isServer)
                    break a;
            }
            try {
                var$12 = var$11.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerBrewingStand__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
        continue main;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$12, $par1World);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerBrewingStand__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
    case 3:
        $par1World.$addCraftingToCrafters($par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, var$11, var$12, var$13, $ptr);
},
nms_BlockBrewingStand_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par6ItemStack.$stackTagCompound;
        if (var$7 === null)
            var$8 = 0;
        else {
            a: {
                var$7 = var$7.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$10 = var$7.$elementData.data;
            var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$9) {
                    b: {
                        var$11 = var$7.$key;
                        if ($rt_s(918) !== var$11) {
                            if ($rt_s(918) === var$11)
                                var$8 = 1;
                            else if (!(var$11 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$11 = var$11;
                                var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$7 = var$7.$next3;
            }
            if (!(var$7 === null ? 0 : 1))
                var$8 = 0;
            else {
                c: {
                    var$7 = $par6ItemStack.$stackTagCompound;
                    var$11 = var$7.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$10 = var$11.$elementData.data;
                var$11 = var$10[var$9 & (var$10.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$9) {
                        d: {
                            var$12 = var$11.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    var$8 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$12 = var$12;
                                    var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break d;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
                if (!(var$11 === null ? 0 : 1)) {
                    var$7 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$7.$name = $rt_s(918);
                    else
                        var$7.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$8 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$10 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                    var$13 = var$10.data;
                    $par5EntityLivingBase.$elementData = var$10;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$13.length * 0.75 | 0;
                    var$7.$tagMap = $par5EntityLivingBase;
                } else {
                    var$7 = var$7.$tagMap;
                    if ($rt_s(918) === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$10 = var$7.$elementData.data;
                        var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$9) {
                                f: {
                                    var$11 = var$7.$key;
                                    if ($rt_s(918) !== var$11) {
                                        if ($rt_s(918) === var$11)
                                            var$8 = 1;
                                        else if (!(var$11 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$11 = var$11;
                                            var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break f;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$7 = var$7 === null ? null : var$7.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$7.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                var$12 = var$10[var$14 & (var$10.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$14) {
                        h: {
                            $par5EntityLivingBase = var$12.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$8 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$8 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break h;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                var$8 = var$12 === null ? 0 : 1;
            }
        }
        if (!var$8)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        var$7 = $par1World;
        nms_Item_$callClinit();
        var$11 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par1World = $par6ItemStack.$stackTagCompound;
        if ($par1World !== null) {
            a: {
                $par1World = $par1World.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$10 = $par1World.$elementData.data;
            var$15 = var$10[$par3 & (var$10.length - 1 | 0)];
            while (var$15 !== null) {
                if (var$15.$origKeyHash == $par3) {
                    b: {
                        $par1World = var$15.$key;
                        if ($rt_s(918) !== $par1World) {
                            if ($rt_s(918) === $par1World)
                                $par2 = 1;
                            else if (!($par1World instanceof jl_String))
                                $par2 = 0;
                            else {
                                $par1World = $par1World;
                                $par2 = $rt_s(918).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break b;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                var$15 = var$15.$next3;
            }
            if (var$15 === null ? 0 : 1) {
                c: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    $par6ItemStack = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par2 = $rt_s(918).$hashCode1;
                var$10 = $par6ItemStack.$elementData.data;
                $par6ItemStack = var$10[$par2 & (var$10.length - 1 | 0)];
                while ($par6ItemStack !== null) {
                    if ($par6ItemStack.$origKeyHash == $par2) {
                        d: {
                            var$12 = $par6ItemStack.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $par3 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $par3 = 0;
                                else {
                                    var$12 = var$12;
                                    $par3 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$par3) {
                                    $par3 = 0;
                                    break d;
                                }
                            }
                            $par3 = 1;
                        }
                        if ($par3)
                            break;
                    }
                    $par6ItemStack = $par6ItemStack.$next3;
                }
                if (!($par6ItemStack === null ? 0 : 1)) {
                    var$12 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$12.$name = $rt_s(918);
                    else
                        var$12.$name = $rt_s(3);
                    $par1World = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par1World.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$10 = var$13.data;
                    $par1World.$elementData = var$13;
                    $par1World.$loadFactor = 0.75;
                    $par1World.$threshold = var$10.length * 0.75 | 0;
                    var$12.$tagMap = $par1World;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par2 = $rt_s(918).$hashCode1;
                        var$10 = $par1World.$elementData.data;
                        $par1World = var$10[$par2 & (var$10.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par2) {
                                f: {
                                    $par6ItemStack = $par1World.$key;
                                    if ($rt_s(918) !== $par6ItemStack) {
                                        if ($rt_s(918) === $par6ItemStack)
                                            $par3 = 1;
                                        else if (!($par6ItemStack instanceof jl_String))
                                            $par3 = 0;
                                        else {
                                            $par6ItemStack = $par6ItemStack;
                                            $par3 = $rt_s(918).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                        }
                                        if (!$par3) {
                                            $par3 = 0;
                                            break f;
                                        }
                                    }
                                    $par3 = 1;
                                }
                                if ($par3)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    }
                    var$12 = $par1World === null ? null : $par1World.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$12.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        h: {
                            $par6ItemStack = $par5EntityLivingBase.$key;
                            if ($rt_s(919) !== $par6ItemStack) {
                                if ($rt_s(919) === $par6ItemStack)
                                    $par2 = 1;
                                else if (!($par6ItemStack instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par6ItemStack = $par6ItemStack;
                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break h;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    i: {
                        $par5EntityLivingBase = var$12.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$10 = $par5EntityLivingBase.$elementData.data;
                    $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                    while ($par5EntityLivingBase !== null) {
                        if ($par5EntityLivingBase.$origKeyHash == $par4) {
                            j: {
                                $par6ItemStack = $par5EntityLivingBase.$key;
                                if ($rt_s(919) !== $par6ItemStack) {
                                    if ($rt_s(919) === $par6ItemStack)
                                        $par2 = 1;
                                    else if (!($par6ItemStack instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par6ItemStack = $par6ItemStack;
                                        $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break j;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                    }
                    if (!($par5EntityLivingBase === null ? 0 : 1))
                        var$11 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$12.$tagMap;
                        if ($rt_s(919) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            k: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break k;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(919).$hashCode1;
                            var$10 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    l: {
                                        $par6ItemStack = $par5EntityLivingBase.$key;
                                        if ($rt_s(919) !== $par6ItemStack) {
                                            if ($rt_s(919) === $par6ItemStack)
                                                $par2 = 1;
                                            else if (!($par6ItemStack instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par6ItemStack = $par6ItemStack;
                                                $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break l;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        var$11 = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                    }
                }
            }
        }
        var$7.$field_94132_e = var$11;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockBrewingStand_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, $var9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $var10, var$18, $var11, $var12, var$21, $var13, var$23, var$24, var$25, var$26, var$27, $var14, $var15, var$30, var$31, var$32, var$33, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var13 = $thread.pop();var$21 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$18 = $thread.pop();$var10 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12
        = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            if ($var7 instanceof nms_TileEntityBrewingStand) {
                $var8 = $var7;
                $var9 = 0;
                var$10 = 24;
                var$11 = 17;
                var$12 = $par2;
                var$13 = 138;
                var$14 = $par3;
                var$15 = $par4;
                while (true) {
                    var$16 = $var8.$brewingItemStacks.data;
                    $par5 = $rt_compare($var9, var$16.length);
                    if ($par5 >= 0)
                        break a;
                    $var10 = $var9 >= 0 && $par5 < 0 ? var$16[$var9] : null;
                    if ($var10 !== null) {
                        $var7 = $this.$rand4;
                        var$18 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var7.$seed = var$18;
                        $var11 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                        var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var7.$seed = var$18;
                        $var12 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                        var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var7.$seed = var$21;
                        $var13 = Long_lo(Long_shru(var$21, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                        var$23 = var$12 + $var11;
                        var$24 = var$14 + $var12;
                        var$25 = var$15 + $var13;
                        $par5 = $var10.$stackSize;
                        if ($par5 > 0) {
                            $var7 = $this.$rand4;
                            var$21 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var7.$seed = var$21;
                            var$26 = Long_lo(Long_shru(var$21, var$11));
                            while (true) {
                                var$27 = var$26 % 21 | 0;
                                if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                                    break;
                                var$21 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var7.$seed = var$21;
                                var$26 = Long_lo(Long_shru(var$21, var$11));
                            }
                            $var14 = var$27 + 10 | 0;
                            if ($var14 > $par5)
                                $var14 = $par5;
                            $var10.$stackSize = $par5 - $var14 | 0;
                            $var15 = new nms_EntityItem;
                            $var7 = new nms_ItemStack;
                            $par6 = $var10.$itemID;
                            $par5 = $var10.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var7.$itemID = $par6;
                            $var7.$stackSize = $var14;
                            $var7.$itemDamage = $par5;
                            if ($par5 < 0)
                                $var7.$itemDamage = 0;
                            $ptr = 3;
                            continue main;
                        }
                    }
                    $var9 = $var9 + 1 | 0;
                }
            }
        }
        $ptr = 2;
    case 2:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_EntityItem__init_($var15, $par1World, var$23, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        var$30 = $var15.$dataWatcher;
        var$31 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$13];
        if (var$32 === null) {
            var$33 = var$31.$elementData.data[0];
            while (var$33 !== null && var$33.$key !== null) {
                var$33 = var$33.$next3;
            }
        } else {
            $par6 = var$32.$value;
            var$16 = var$31.$elementData.data;
            var$33 = var$16[$par6 & (var$16.length - 1 | 0)];
            while (var$33 !== null) {
                if (var$33.$origKeyHash == $par6) {
                    var$31 = var$33.$key;
                    if (var$32 !== var$31 && !jl_Integer_equals(var$32, var$31) ? 0 : 1)
                        break;
                }
                var$33 = var$33.$next3;
            }
        }
        var$32 = var$33 === null ? null : var$33.$value0;
        if (!($var7 !== var$32.$watchedObject ? 0 : 1)) {
            var$32.$watchedObject = $var7;
            var$32.$watched = 1;
            var$30.$objectChanged = 1;
        }
        var$30 = $var15.$dataWatcher;
        $var7 = var$30.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$13];
        if (var$32 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            $var14 = var$32.$value;
            var$16 = $var7.$elementData.data;
            $var7 = var$16[$var14 & (var$16.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == $var14) {
                    var$31 = $var7.$key;
                    if (var$32 !== var$31 && !jl_Integer_equals(var$32, var$31) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        ($var7 === null ? null : $var7.$value0).$watched = 1;
        var$30.$objectChanged = 1;
        $var15.$motionX = nle_EaglercraftRandom_nextGaussian($this.$rand4) * 0.05000000074505806;
        $var15.$motionY = nle_EaglercraftRandom_nextGaussian($this.$rand4) * 0.05000000074505806 + 0.20000000298023224;
        $var15.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$rand4) * 0.05000000074505806;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par1World, $var15);
        if ($rt_suspending()) {
            break main;
        }
        a: while (true) {
            $par5 = $var10.$stackSize;
            if ($par5 > 0) {
                $var7 = $this.$rand4;
                var$21 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var7.$seed = var$21;
                var$26 = Long_lo(Long_shru(var$21, var$11));
                while (true) {
                    var$27 = var$26 % 21 | 0;
                    if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                        break;
                    var$21 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var7.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$11));
                }
                $var14 = var$27 + 10 | 0;
                if ($var14 > $par5)
                    $var14 = $par5;
                $var10.$stackSize = $par5 - $var14 | 0;
                $var15 = new nms_EntityItem;
                $var7 = new nms_ItemStack;
                $par6 = $var10.$itemID;
                $par5 = $var10.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = $par6;
                $var7.$stackSize = $var14;
                $var7.$itemDamage = $par5;
                if ($par5 < 0)
                    $var7.$itemDamage = 0;
                $ptr = 3;
                continue main;
            }
            while (true) {
                $var9 = $var9 + 1 | 0;
                var$16 = $var8.$brewingItemStacks.data;
                $par5 = $rt_compare($var9, var$16.length);
                if ($par5 >= 0)
                    break a;
                $var10 = $var9 >= 0 && $par5 < 0 ? var$16[$var9] : null;
                if ($var10 === null)
                    continue;
                else
                    break;
            }
            $var7 = $this.$rand4;
            var$18 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$18;
            $var11 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$18;
            $var12 = Long_lo(Long_shru(var$18, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$21;
            $var13 = Long_lo(Long_shru(var$21, var$10)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$23 = var$12 + $var11;
            var$24 = var$14 + $var12;
            var$25 = var$15 + $var13;
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, $var9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $var10, var$18, $var11, $var12, var$21, $var13, var$23, var$24, var$25, var$26, var$27, $var14, $var15, var$30, var$31, var$32, var$33, $ptr);
},
nms_BlockBrewingStand_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_brewingStand.$itemID0;
},
nms_BlockBrewingStand_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockBrewingStand_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return nms_Container_calcRedstoneFromInventory($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockCauldron = $rt_classWithoutFields(nms_Block),
nms_BlockCauldron__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_iron);
},
nms_BlockCauldron__init_ = var_0 => {
    let var_1 = new nms_BlockCauldron();
    nms_BlockCauldron__init_0(var_1, var_0);
    return var_1;
},
nms_BlockCauldron_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.3125;
        $this.$maxZ1 = 1.0;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$9 = $par2;
        var$10 = var$9 + $this.$minX1;
        var$11 = $par3;
        var$12 = var$11 + $this.$minY1;
        var$13 = $par4;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 0.125;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = var$9 + $this.$minX1;
        var$14 = var$11 + $this.$minY1;
        var$15 = var$13 + $this.$minZ1;
        var$16 = var$9 + $this.$maxX1;
        var$17 = var$11 + $this.$maxY0;
        var$19 = var$13 + $this.$maxZ1;
        $par3 = $par7Entity.$nextPoolIndex;
        $par1World = $par7Entity.$listAABB;
        $par2 = $par1World.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$8 = new nms_AxisAlignedBB;
            var$8.$minX0 = var$12;
            var$8.$minY0 = var$14;
            var$8.$minZ0 = var$15;
            var$8.$maxX0 = var$16;
            var$8.$maxY = var$17;
            var$8.$maxZ0 = var$19;
            ju_ArrayList_ensureCapacity($par1World, $par2 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par2 = $par1World.$size0;
            $par1World.$size0 = $par2 + 1 | 0;
            var$18[$par2] = var$8;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$8 = $par1World.$array.data[$par3];
            var$8.$minX0 = var$12;
            var$8.$minY0 = var$14;
            var$8.$minZ0 = var$15;
            var$8.$maxX0 = var$16;
            var$8.$maxY = var$17;
            var$8.$maxZ0 = var$19;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$8)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 0.125;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9 + $this.$minX1;
        var$12 = var$11 + $this.$minY1;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.875;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9 + $this.$minX1;
        var$12 = var$11 + $this.$minY1;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.875;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9 + $this.$minX1;
        var$12 = var$11 + $this.$minY1;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par3 = $par7Entity.$nextPoolIndex;
        $par1World = $par7Entity.$listAABB;
        $par2 = $par1World.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$8 = new nms_AxisAlignedBB;
            var$8.$minX0 = var$10;
            var$8.$minY0 = var$12;
            var$8.$minZ0 = var$14;
            var$8.$maxX0 = var$15;
            var$8.$maxY = var$16;
            var$8.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par2 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$8 = $par1World.$array.data[$par3];
            var$8.$minX0 = var$10;
            var$8.$minY0 = var$12;
            var$8.$minZ0 = var$14;
            var$8.$maxX0 = var$15;
            var$8.$maxY = var$16;
            var$8.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$8)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_BlockCauldron_isOpaqueCube = $this => {
    return 0;
},
nms_BlockCauldron_getRenderType = $this => {
    return 24;
},
nms_BlockCauldron_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockCauldron_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var14, var$11, $var10, $var12, $var13, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();var$11 = $thread.pop();$var14 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6
        = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $var14 = $par5EntityPlayer.$inventory0;
        var$11 = $var14.$currentItem;
        $var10 = var$11 < 9 && var$11 >= 0 ? $var14.$mainInventory.data[var$11] : null;
        if ($var10 === null)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        var$11 = $var10.$itemID;
        nms_Item_$callClinit();
        if (var$11 == nms_Item_bucketWater.$itemID0) {
            if ($var12 >= 3)
                return 1;
            if (!$par5EntityPlayer.$capabilities.$isCreativeMode) {
                $par5EntityPlayer = $par5EntityPlayer.$inventory0;
                $par6 = $par5EntityPlayer.$currentItem;
                $var14 = new nms_ItemStack;
                $var13 = nms_Item_bucketEmpty;
                nms_ItemStack_$callClinit();
                $var14.$itemID = $var13.$itemID0;
                $var14.$stackSize = 1;
                $var14.$itemDamage = 0;
                var$15 = $par5EntityPlayer.$mainInventory;
                var$11 = var$15.data.length;
                if ($par6 >= var$11) {
                    $par6 = $par6 - var$11 | 0;
                    var$15 = $par5EntityPlayer.$armorInventory;
                }
                var$15.data[$par6] = $var14;
            }
            $par6 = 3;
            var$11 = 2;
            $ptr = 2;
            continue main;
        }
        a: {
            if (var$11 == nms_Item_glassBottle.$itemID0) {
                if ($var12 <= 0)
                    break a;
                $var13 = new nms_ItemStack;
                $var14 = nms_Item_potion;
                nms_ItemStack_$callClinit();
                $var13.$itemID = $var14.$itemID0;
                $var13.$stackSize = 1;
                $var13.$itemDamage = 0;
                if (!nms_InventoryPlayer_addItemStackToInventory($par5EntityPlayer.$inventory0, $var13)) {
                    $var14 = new nms_EntityItem;
                    var$16 = $par2 + 0.5;
                    var$17 = $par3 + 1.5;
                    var$18 = $par4 + 0.5;
                    $ptr = 4;
                    continue main;
                }
                if ($par5EntityPlayer instanceof nms_EntityPlayerMP) {
                    b: {
                        $var14 = $par5EntityPlayer.$inventoryContainer;
                        $var13 = nms_Container_getInventory($var14);
                        var$19 = $par5EntityPlayer.$playerNetServerHandler;
                        var$20 = nms_Packet104WindowItems__init_($var14.$windowId, $var13);
                        if (var$20 instanceof nms_Packet3Chat) {
                            $var14 = var$20;
                            var$11 = var$19.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break b;
                            if (var$11 == 1 && !$var14.$isServer)
                                break b;
                        }
                        try {
                            $var14 = var$19.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var14 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var13 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_($var13, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = $var13;
                        }
                        jl_Throwable_printStackTrace($var14, jl_System_errCache);
                    }
                    $var14 = $par5EntityPlayer.$playerNetServerHandler;
                    $var13 = new nms_Packet103SetSlot;
                    var$20 = $par5EntityPlayer.$inventory0.$itemStack;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var13.$windowId1 = (-1);
                    $var13.$itemSlot = (-1);
                    if (var$20 !== null) {
                        var$19 = new nms_ItemStack;
                        $par6 = var$20.$itemID;
                        var$11 = var$20.$stackSize;
                        var$21 = var$20.$itemDamage;
                        var$19.$itemID = $par6;
                        var$19.$stackSize = var$11;
                        var$19.$itemDamage = var$21;
                        if (var$21 < 0)
                            var$19.$itemDamage = 0;
                        var$20 = var$20.$stackTagCompound;
                        if (var$20 !== null) {
                            var$22 = new nms_NBTTagCompound;
                            var$23 = var$20.$name;
                            if (var$23 === null)
                                var$23 = $rt_s(3);
                            var$22.$name = var$23;
                            var$22.$tagMap = ju_HashMap__init_0(16, 0.75);
                            var$23 = var$20.$tagMap;
                            if (var$23.$cachedKeySet === null) {
                                var$24 = new ju_HashMap$1;
                                var$24.$this$0 = var$23;
                                ju_AbstractCollection__init_(var$24);
                                var$23.$cachedKeySet = var$24;
                            }
                            var$23 = var$23.$cachedKeySet.$iterator();
                            while (var$23.$hasNext()) {
                                var$24 = var$23.$next();
                                var$25 = var$20.$tagMap;
                                if (var$24 === null) {
                                    var$25 = var$25.$elementData.data[0];
                                    while (var$25 !== null && var$25.$key !== null) {
                                        var$25 = var$25.$next3;
                                    }
                                } else {
                                    c: {
                                        if (!var$24.$hashCode1) {
                                            $par6 = 0;
                                            while (true) {
                                                if ($par6 >= var$24.$nativeString.length)
                                                    break c;
                                                var$24.$hashCode1 = (31 * var$24.$hashCode1 | 0) + var$24.$nativeString.charCodeAt($par6) | 0;
                                                $par6 = $par6 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$21 = var$24.$hashCode1;
                                    var$15 = var$25.$elementData.data;
                                    var$25 = var$15[var$21 & (var$15.length - 1 | 0)];
                                    while (var$25 !== null && !(var$25.$origKeyHash == var$21 && ju_HashMap_areEqualKeys(var$24, var$25.$key))) {
                                        var$25 = var$25.$next3;
                                    }
                                }
                                var$25 = var$25 === null ? null : var$25.$value0;
                                var$25 = var$25.$copy();
                                var$26 = var$22.$tagMap;
                                if (var$24 !== null)
                                    var$25.$name = var$24;
                                else
                                    var$25.$name = $rt_s(3);
                                ju_HashMap_putImpl(var$26, var$24, var$25);
                            }
                            var$19.$stackTagCompound = var$22;
                        }
                        var$20 = var$19;
                    }
                    d: {
                        $var13.$myItemStack = var$20;
                        if ($var13 instanceof nms_Packet3Chat) {
                            var$20 = $var13;
                            var$11 = $var14.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break d;
                            if (var$11 == 1 && !var$20.$isServer)
                                break d;
                        }
                        try {
                            $var14 = $var14.$netManager;
                            $ptr = 10;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var14 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var13 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_($var13, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = $var13;
                        }
                        jl_Throwable_printStackTrace($var14, jl_System_errCache);
                    }
                }
                $par6 = $var10.$stackSize - 1 | 0;
                $var10.$stackSize = $par6;
                if ($par6 <= 0) {
                    $par5EntityPlayer = $par5EntityPlayer.$inventory0;
                    $par6 = $par5EntityPlayer.$currentItem;
                    $var14 = null;
                    var$15 = $par5EntityPlayer.$mainInventory;
                    var$11 = var$15.data.length;
                    if ($par6 >= var$11) {
                        $par6 = $par6 - var$11 | 0;
                        var$15 = $par5EntityPlayer.$armorInventory;
                    }
                    var$15.data[$par6] = $var14;
                }
                $par6 = $var12 - 1 | 0;
                var$11 = 2;
                $ptr = 7;
                continue main;
            }
            if ($var12 > 0) {
                var$15 = nms_Item_itemsList.data;
                if (var$15[var$11] instanceof nms_ItemArmor) {
                    $var14 = var$15[var$11].$material;
                    $par5EntityPlayer = nms_EnumArmorMaterial_CLOTH;
                    if ($var14 === $par5EntityPlayer) {
                        if (var$15[var$11].$material === $par5EntityPlayer) {
                            var$20 = $var10.$stackTagCompound;
                            if (var$20 !== null) {
                                e: {
                                    $var14 = var$20.$tagMap;
                                    if (!$rt_s(918).$hashCode1) {
                                        $par6 = 0;
                                        while (true) {
                                            if ($par6 >= $rt_s(918).$nativeString.length)
                                                break e;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                            $par6 = $par6 + 1 | 0;
                                        }
                                    }
                                }
                                var$21 = $rt_s(918).$hashCode1;
                                var$15 = $var14.$elementData.data;
                                $var14 = var$15[var$21 & (var$15.length - 1 | 0)];
                                while ($var14 !== null) {
                                    if ($var14.$origKeyHash == var$21) {
                                        f: {
                                            $var13 = $var14.$key;
                                            if ($rt_s(918) !== $var13) {
                                                if ($rt_s(918) === $var13)
                                                    $par6 = 1;
                                                else if (!($var13 instanceof jl_String))
                                                    $par6 = 0;
                                                else {
                                                    $var13 = $var13;
                                                    $par6 = $rt_s(918).$nativeString !== $var13.$nativeString ? 0 : 1;
                                                }
                                                if (!$par6) {
                                                    $par6 = 0;
                                                    break f;
                                                }
                                            }
                                            $par6 = 1;
                                        }
                                        if ($par6)
                                            break;
                                    }
                                    $var14 = $var14.$next3;
                                }
                                if (!($var14 === null ? 0 : 1)) {
                                    var$20 = new nms_NBTTagCompound;
                                    if ($rt_s(918) !== null)
                                        var$20.$name = $rt_s(918);
                                    else
                                        var$20.$name = $rt_s(3);
                                    $par5EntityPlayer = new ju_HashMap;
                                    $par6 = ju_HashMap_calculateCapacity(16);
                                    $par5EntityPlayer.$elementCount = 0;
                                    var$27 = $rt_createArray(ju_HashMap$HashEntry, $par6);
                                    var$15 = var$27.data;
                                    $par5EntityPlayer.$elementData = var$27;
                                    $par5EntityPlayer.$loadFactor = 0.75;
                                    $par5EntityPlayer.$threshold = var$15.length * 0.75 | 0;
                                    var$20.$tagMap = $par5EntityPlayer;
                                } else {
                                    $var14 = var$20.$tagMap;
                                    if ($rt_s(918) === null) {
                                        $var14 = $var14.$elementData.data[0];
                                        while ($var14 !== null && $var14.$key !== null) {
                                            $var14 = $var14.$next3;
                                        }
                                    } else {
                                        g: {
                                            if (!$rt_s(918).$hashCode1) {
                                                $par6 = 0;
                                                while (true) {
                                                    if ($par6 >= $rt_s(918).$nativeString.length)
                                                        break g;
                                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par6) | 0;
                                                    $par6 = $par6 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$21 = $rt_s(918).$hashCode1;
                                        var$15 = $var14.$elementData.data;
                                        $var14 = var$15[var$21 & (var$15.length - 1 | 0)];
                                        while ($var14 !== null) {
                                            if ($var14.$origKeyHash == var$21) {
                                                h: {
                                                    $var13 = $var14.$key;
                                                    if ($rt_s(918) !== $var13) {
                                                        if ($rt_s(918) === $var13)
                                                            $par6 = 1;
                                                        else if (!($var13 instanceof jl_String))
                                                            $par6 = 0;
                                                        else {
                                                            $var13 = $var13;
                                                            $par6 = $rt_s(918).$nativeString !== $var13.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par6) {
                                                            $par6 = 0;
                                                            break h;
                                                        }
                                                    }
                                                    $par6 = 1;
                                                }
                                                if ($par6)
                                                    break;
                                            }
                                            $var14 = $var14.$next3;
                                        }
                                    }
                                    var$20 = $var14 === null ? null : $var14.$value0;
                                }
                                i: {
                                    $var14 = var$20.$tagMap;
                                    if (!$rt_s(1120).$hashCode1) {
                                        $par6 = 0;
                                        while (true) {
                                            if ($par6 >= $rt_s(1120).$nativeString.length)
                                                break i;
                                            $rt_s(1120).$hashCode1 = (31 * $rt_s(1120).$hashCode1 | 0) + $rt_s(1120).$nativeString.charCodeAt($par6) | 0;
                                            $par6 = $par6 + 1 | 0;
                                        }
                                    }
                                }
                                var$11 = $rt_s(1120).$hashCode1;
                                var$15 = $var14.$elementData.data;
                                $var14 = var$15[var$11 & (var$15.length - 1 | 0)];
                                while ($var14 !== null) {
                                    if ($var14.$origKeyHash == var$11) {
                                        j: {
                                            $var13 = $var14.$key;
                                            if ($rt_s(1120) !== $var13) {
                                                if ($rt_s(1120) === $var13)
                                                    $par6 = 1;
                                                else if (!($var13 instanceof jl_String))
                                                    $par6 = 0;
                                                else {
                                                    $var13 = $var13;
                                                    $par6 = $rt_s(1120).$nativeString !== $var13.$nativeString ? 0 : 1;
                                                }
                                                if (!$par6) {
                                                    $par6 = 0;
                                                    break j;
                                                }
                                            }
                                            $par6 = 1;
                                        }
                                        if ($par6)
                                            break;
                                    }
                                    $var14 = $var14.$next3;
                                }
                                if ($var14 === null ? 0 : 1)
                                    ju_HashMap_removeByKey(var$20.$tagMap, $rt_s(1120));
                            }
                        }
                        $par6 = $var12 - 1 | 0;
                        var$11 = 2;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
        }
        return 1;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 4:
        nms_EntityItem__init_($var14, $par1World, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$23 = $var14.$dataWatcher;
        var$20 = var$23.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$22 = jl_Integer_integerCache.data[138];
        if (var$22 === null) {
            var$20 = var$20.$elementData.data[0];
            while (var$20 !== null && var$20.$key !== null) {
                var$20 = var$20.$next3;
            }
        } else {
            var$21 = var$22.$value;
            var$15 = var$20.$elementData.data;
            var$20 = var$15[var$21 & (var$15.length - 1 | 0)];
            while (var$20 !== null) {
                if (var$20.$origKeyHash == var$21) {
                    var$19 = var$20.$key;
                    if (var$22 !== var$19 && !jl_Integer_equals(var$22, var$19) ? 0 : 1)
                        break;
                }
                var$20 = var$20.$next3;
            }
        }
        var$19 = var$20 === null ? null : var$20.$value0;
        if (!($var13 !== var$19.$watchedObject ? 0 : 1)) {
            var$19.$watchedObject = $var13;
            var$19.$watched = 1;
            var$23.$objectChanged = 1;
        }
        var$22 = $var14.$dataWatcher;
        $var13 = var$22.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$19 = jl_Integer_integerCache.data[138];
        if (var$19 === null) {
            $var13 = $var13.$elementData.data[0];
            while ($var13 !== null && $var13.$key !== null) {
                $var13 = $var13.$next3;
            }
        } else {
            var$21 = var$19.$value;
            var$15 = $var13.$elementData.data;
            $var13 = var$15[var$21 & (var$15.length - 1 | 0)];
            while ($var13 !== null) {
                if ($var13.$origKeyHash == var$21) {
                    var$20 = $var13.$key;
                    if (var$19 !== var$20 && !jl_Integer_equals(var$19, var$20) ? 0 : 1)
                        break;
                }
                $var13 = $var13.$next3;
            }
        }
        ($var13 === null ? null : $var13.$value0).$watched = 1;
        var$22.$objectChanged = 1;
        $ptr = 11;
        continue main;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $this.$blockID;
        $ptr = 6;
    case 6:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 7:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $this.$blockID;
        $ptr = 8;
    case 8:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 9:
        k: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var14, var$20);
                if ($rt_suspending()) {
                    break main;
                }
                break k;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var14 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var13 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var13, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var13;
            }
            jl_Throwable_printStackTrace($var14, jl_System_errCache);
        }
        $var14 = $par5EntityPlayer.$playerNetServerHandler;
        $var13 = new nms_Packet103SetSlot;
        var$20 = $par5EntityPlayer.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var13.$windowId1 = (-1);
        $var13.$itemSlot = (-1);
        if (var$20 !== null) {
            var$19 = new nms_ItemStack;
            $par6 = var$20.$itemID;
            var$11 = var$20.$stackSize;
            var$21 = var$20.$itemDamage;
            var$19.$itemID = $par6;
            var$19.$stackSize = var$11;
            var$19.$itemDamage = var$21;
            if (var$21 < 0)
                var$19.$itemDamage = 0;
            var$20 = var$20.$stackTagCompound;
            if (var$20 !== null) {
                var$22 = new nms_NBTTagCompound;
                var$23 = var$20.$name;
                if (var$23 === null)
                    var$23 = $rt_s(3);
                var$22.$name = var$23;
                var$22.$tagMap = ju_HashMap__init_0(16, 0.75);
                var$23 = var$20.$tagMap;
                if (var$23.$cachedKeySet === null) {
                    var$24 = new ju_HashMap$1;
                    var$24.$this$0 = var$23;
                    ju_AbstractCollection__init_(var$24);
                    var$23.$cachedKeySet = var$24;
                }
                var$23 = var$23.$cachedKeySet.$iterator();
                while (var$23.$hasNext()) {
                    var$24 = var$23.$next();
                    var$25 = var$20.$tagMap;
                    if (var$24 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        l: {
                            if (!var$24.$hashCode1) {
                                $par6 = 0;
                                while (true) {
                                    if ($par6 >= var$24.$nativeString.length)
                                        break l;
                                    var$24.$hashCode1 = (31 * var$24.$hashCode1 | 0) + var$24.$nativeString.charCodeAt($par6) | 0;
                                    $par6 = $par6 + 1 | 0;
                                }
                            }
                        }
                        var$21 = var$24.$hashCode1;
                        var$15 = var$25.$elementData.data;
                        var$25 = var$15[var$21 & (var$15.length - 1 | 0)];
                        while (var$25 !== null && !(var$25.$origKeyHash == var$21 && ju_HashMap_areEqualKeys(var$24, var$25.$key))) {
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = var$22.$tagMap;
                    if (var$24 !== null)
                        var$25.$name = var$24;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$24, var$25);
                }
                var$19.$stackTagCompound = var$22;
            }
            var$20 = var$19;
        }
        m: {
            $var13.$myItemStack = var$20;
            if ($var13 instanceof nms_Packet3Chat) {
                var$20 = $var13;
                var$11 = $var14.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    break m;
                if (var$11 == 1 && !var$20.$isServer)
                    break m;
            }
            try {
                $var14 = $var14.$netManager;
                $ptr = 10;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var14 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var13 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var13, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var13;
            }
            jl_Throwable_printStackTrace($var14, jl_System_errCache);
        }
        $par6 = $var10.$stackSize - 1 | 0;
        $var10.$stackSize = $par6;
        if ($par6 <= 0) {
            $par5EntityPlayer = $par5EntityPlayer.$inventory0;
            $par6 = $par5EntityPlayer.$currentItem;
            $var14 = null;
            var$15 = $par5EntityPlayer.$mainInventory;
            var$11 = var$15.data.length;
            if ($par6 >= var$11) {
                $par6 = $par6 - var$11 | 0;
                var$15 = $par5EntityPlayer.$armorInventory;
            }
            var$15.data[$par6] = $var14;
        }
        $par6 = $var12 - 1 | 0;
        var$11 = 2;
        $ptr = 7;
        continue main;
    case 10:
        k: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var14, $var13);
                if ($rt_suspending()) {
                    break main;
                }
                break k;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var14 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var13 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var13, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var13;
            }
            jl_Throwable_printStackTrace($var14, jl_System_errCache);
        }
        $par6 = $var10.$stackSize - 1 | 0;
        $var10.$stackSize = $par6;
        if ($par6 <= 0) {
            $par5EntityPlayer = $par5EntityPlayer.$inventory0;
            $par6 = $par5EntityPlayer.$currentItem;
            $var14 = null;
            var$15 = $par5EntityPlayer.$mainInventory;
            var$11 = var$15.data.length;
            if ($par6 >= var$11) {
                $par6 = $par6 - var$11 | 0;
                var$15 = $par5EntityPlayer.$armorInventory;
            }
            var$15.data[$par6] = $var14;
        }
        $par6 = $var12 - 1 | 0;
        var$11 = 2;
        $ptr = 7;
        continue main;
    case 11:
        nms_World_spawnEntityInWorld($par1World, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $var10.$stackSize - 1 | 0;
        $var10.$stackSize = $par6;
        if ($par6 <= 0) {
            $par5EntityPlayer = $par5EntityPlayer.$inventory0;
            $par6 = $par5EntityPlayer.$currentItem;
            $var14 = null;
            var$15 = $par5EntityPlayer.$mainInventory;
            var$11 = var$15.data.length;
            if ($par6 >= var$11) {
                $par6 = $par6 - var$11 | 0;
                var$15 = $par5EntityPlayer.$armorInventory;
            }
            var$15.data[$par6] = $var14;
        }
        $par6 = $var12 - 1 | 0;
        var$11 = 2;
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var14, var$11, $var10, $var12, $var13, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $ptr);
},
nms_BlockCauldron_fillWithRain = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par1World.$rand0;
        var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$6;
        var$7 = Long_lo(Long_shru(var$6, 17));
        while (true) {
            var$8 = var$7 % 20 | 0;
            if (((var$7 - var$8 | 0) + 19 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
        }
        if (var$8 != 1)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 >= 3)
            return;
        $var5 = $var5 + 1 | 0;
        var$7 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $var5, $ptr);
},
nms_BlockCauldron_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_cauldron.$itemID0;
},
nms_BlockCauldron_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockCauldron_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockEndPortal = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockEndPortal_bossDefeated = 0,
nms_BlockEndPortal__init_0 = ($this, $par1, $par2Material) => {
    nms_Block__init_($this, $par1, $par2Material);
    $this.$isBlockContainer = 1;
    nms_Block_lightValue.data[$this.$blockID] = 15;
},
nms_BlockEndPortal__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockEndPortal();
    nms_BlockEndPortal__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockEndPortal_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityEndPortal;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
},
nms_BlockEndPortal_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.0625;
    $this.$maxZ1 = 1.0;
},
nms_BlockEndPortal_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    return;
},
nms_BlockEndPortal_isOpaqueCube = $this => {
    return 0;
},
nms_BlockEndPortal_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockEndPortal_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockEndPortal_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5Entity.$ridingEntity === null && $par5Entity.$riddenByEntity === null && !$par1World.$isRemote) {
            $par2 = 1;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $par5Entity.$travelToDimension($par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, $ptr);
},
nms_BlockEndPortal_getRenderType = $this => {
    return (-1);
},
nms_BlockEndPortal_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!nms_BlockEndPortal_bossDefeated && $par1World.$provider.$dimensionId) {
            var$5 = 0;
            var$6 = 0;
            var$7 = 3;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockEndPortalFrame = $rt_classWithoutFields(nms_Block),
nms_BlockEndPortalFrame__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
},
nms_BlockEndPortalFrame__init_ = var_0 => {
    let var_1 = new nms_BlockEndPortalFrame();
    nms_BlockEndPortalFrame__init_0(var_1, var_0);
    return var_1;
},
nms_BlockEndPortalFrame_isOpaqueCube = $this => {
    return 0;
},
nms_BlockEndPortalFrame_getRenderType = $this => {
    return 26;
},
nms_BlockEndPortalFrame_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $var8, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var8 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB
        = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$8 = 0.0;
        $this.$minX1 = var$8;
        $this.$minY1 = var$8;
        $this.$minZ1 = var$8;
        var$9 = 1.0;
        $this.$maxX1 = var$9;
        var$10 = 0.8125;
        $this.$maxY0 = var$10;
        $this.$maxZ1 = var$9;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = $par2;
        var$13 = var$12 + $this.$minX1;
        var$14 = $par3;
        var$15 = var$14 + $this.$minY1;
        var$16 = $par4;
        var$17 = var$16 + $this.$minZ1;
        var$18 = var$12 + $this.$maxX1;
        var$19 = var$14 + $this.$maxY0;
        var$20 = var$16 + $this.$maxZ1;
        var$21 = var$11.$nextPoolIndex;
        $par7Entity = var$11.$listAABB;
        $var8 = $par7Entity.$size0;
        var$23 = $rt_compare(var$21, $var8);
        if (var$23 >= 0) {
            var$24 = new nms_AxisAlignedBB;
            var$24.$minX0 = var$13;
            var$24.$minY0 = var$15;
            var$24.$minZ0 = var$17;
            var$24.$maxX0 = var$18;
            var$24.$maxY = var$19;
            var$24.$maxZ0 = var$20;
            ju_ArrayList_ensureCapacity($par7Entity, $var8 + 1 | 0);
            var$25 = $par7Entity.$array.data;
            var$21 = $par7Entity.$size0;
            $par7Entity.$size0 = var$21 + 1 | 0;
            var$25[var$21] = var$24;
            $par7Entity.$modCount = $par7Entity.$modCount + 1 | 0;
        } else if (var$21 >= 0 && var$23 < 0) {
            var$24 = $par7Entity.$array.data[var$21];
            var$24.$minX0 = var$13;
            var$24.$minY0 = var$15;
            var$24.$minZ0 = var$17;
            var$24.$maxX0 = var$18;
            var$24.$maxY = var$19;
            var$24.$maxZ0 = var$20;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$24)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$25 = $par6List.$array.data;
            var$21 = $par6List.$size0;
            $par6List.$size0 = var$21 + 1 | 0;
            var$25[var$21] = var$24;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!($var8 & 4) ? 0 : 1) {
            $this.$minX1 = 0.3125;
            $this.$minY1 = var$10;
            $this.$minZ1 = 0.3125;
            $this.$maxX1 = 0.6875;
            $this.$maxY0 = var$9;
            $this.$maxZ1 = 0.6875;
            $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$13 = var$12 + $this.$minX1;
            var$15 = var$14 + $this.$minY1;
            var$17 = var$16 + $this.$minZ1;
            var$18 = var$12 + $this.$maxX1;
            var$12 = var$14 + $this.$maxY0;
            var$14 = var$16 + $this.$maxZ1;
            $par4 = $par7Entity.$nextPoolIndex;
            var$11 = $par7Entity.$listAABB;
            $par3 = var$11.$size0;
            $par2 = $rt_compare($par4, $par3);
            if ($par2 >= 0) {
                $par1World = new nms_AxisAlignedBB;
                $par1World.$minX0 = var$13;
                $par1World.$minY0 = var$15;
                $par1World.$minZ0 = var$17;
                $par1World.$maxX0 = var$18;
                $par1World.$maxY = var$12;
                $par1World.$maxZ0 = var$14;
                ju_ArrayList_ensureCapacity(var$11, $par3 + 1 | 0);
                var$25 = var$11.$array.data;
                $par3 = var$11.$size0;
                var$11.$size0 = $par3 + 1 | 0;
                var$25[$par3] = $par1World;
                var$11.$modCount = var$11.$modCount + 1 | 0;
            } else if ($par4 >= 0 && $par2 < 0) {
                $par1World = var$11.$array.data[$par4];
                $par1World.$minX0 = var$13;
                $par1World.$minY0 = var$15;
                $par1World.$minZ0 = var$17;
                $par1World.$maxX0 = var$18;
                $par1World.$maxY = var$12;
                $par1World.$maxZ0 = var$14;
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1World);
                $rt_throw($par1World);
            }
            $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
            if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par1World)) {
                ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
                var$25 = $par6List.$array.data;
                $par3 = $par6List.$size0;
                $par6List.$size0 = $par3 + 1 | 0;
                var$25[$par3] = $par1World;
                $par6List.$modCount = $par6List.$modCount + 1 | 0;
            }
        }
        $this.$minX1 = var$8;
        $this.$minY1 = var$8;
        $this.$minZ1 = var$8;
        $this.$maxX1 = var$9;
        $this.$maxY0 = var$10;
        $this.$maxZ1 = var$9;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $var8, var$23, var$24, var$25, $ptr);
},
nms_BlockEndPortalFrame_idDropped = ($this, $par1, $par2Random, $par3) => {
    return 0;
},
nms_BlockEndPortalFrame_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var7 = var$7 | 0;
        if (var$7 < $var7)
            $var7 = $var7 - 1 | 0;
        $var7 = (($var7 & 3) + 2 | 0) % 4 | 0;
        var$9 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var7, var$9, $ptr);
},
nms_BlockEndPortalFrame_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockEndPortalFrame_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return !(!($var6 & 4) ? 0 : 1) ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockDragonEgg = $rt_classWithoutFields(nms_Block),
nms_BlockDragonEgg__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_dragonEgg);
    $this.$minX1 = 0.0625;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0625;
    $this.$maxX1 = 0.9375;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 0.9375;
};
let nms_BlockDragonEgg__init_ = var_0 => {
    let var_1 = new nms_BlockDragonEgg();
    nms_BlockDragonEgg__init_0(var_1, var_0);
    return var_1;
},
nms_BlockDragonEgg_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$blockID;
        var$6 = 5;
        var$7 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockDragonEgg_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        var$7 = 5;
        $par5 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$6, var$7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $ptr);
},
nms_BlockDragonEgg_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockDragonEgg_fallIfPossible($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $ptr);
},
nms_BlockDragonEgg_fallIfPossible = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $var6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockSand_canFallBelow($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 && $par3 >= 0) {
            if (!nms_BlockSand_fallInstantly && nms_World_checkChunksExist($par1World, $par2 - 32 | 0, $par3 - 32 | 0, $par4 - 32 | 0, $par2 + 32 | 0, $par3 + 32 | 0, $par4 + 32 | 0)) {
                $var6 = new nms_EntityFallingSand;
                var$7 = $par2 + 0.5;
                var$8 = $par3 + 0.5;
                var$9 = $par4 + 0.5;
                $par2 = $this.$blockID;
                $par3 = 0;
                $ptr = 4;
                continue main;
            }
            var$5 = 0;
            var$10 = 0;
            var$11 = 3;
            $ptr = 2;
            continue main;
        }
        return;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par3 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockSand_canFallBelow($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 && $par3 > 0) {
            $par3 = $par3 + (-1) | 0;
            var$5 = $par3 - 1 | 0;
            continue main;
        }
        if ($par3 <= 0)
            return;
        var$5 = $this.$blockID;
        var$10 = 0;
        var$11 = 2;
        $ptr = 6;
        continue main;
    case 4:
        nms_EntityFallingSand__init_($var6, $par1World, var$7, var$8, var$9, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$5, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $var6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockDragonEgg_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockDragonEgg_teleportNearby($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $ptr);
},
nms_BlockDragonEgg_onBlockClicked = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockDragonEgg_teleportNearby($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $ptr);
},
nms_BlockDragonEgg_teleportNearby = ($this, $par1World, $par2, $par3, $par4) => {
    let $var8, $var5, $var9, var$8, var$9, var$10, var$11, $var6, $var7, $var10, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var9 = $thread.pop();$var5 = $thread.pop();$var8 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 == $this.$blockID) {
            $var5 = 0;
            $var9 = 17;
            var$8 = Long_fromInt(16);
            var$9 = Long_fromInt(8);
            if ($var5 < 1000) {
                var$10 = $par1World.$rand0;
                var$11 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$10.$seed = var$11;
                $var6 = $par2 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$10.$seed = var$11;
                $var6 = $var6 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$10.$seed = var$11;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$10.$seed = var$11;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$10.$seed = var$11;
                $var10 = $par4 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
                var$15 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$10.$seed = var$15;
                $var8 = $var10 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$15, $var9)))), 31)) | 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10) {
            $var5 = $var5 + 1 | 0;
            if ($var5 >= 1000)
                return;
            var$10 = $par1World.$rand0;
            var$11 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$11;
            $var6 = $par2 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$11;
            $var6 = $var6 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$11;
            $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$11;
            $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$11;
            $var10 = $par4 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$11, $var9)))), 31)) | 0;
            var$15 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$15;
            $var8 = $var10 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$15, $var9)))), 31)) | 0;
            continue main;
        }
        if ($par1World.$isRemote) {
            $var10 = 0;
            a: {
                while ($var10 < 128) {
                    var$10 = $par1World.$rand0;
                    var$11 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$10.$seed = var$11;
                    var$10.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2 = 0;
                    while (true) {
                        $par3 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                        if ($par3 >= 0)
                            break;
                        if ($par2 < 0)
                            break a;
                        if ($par3 >= 0)
                            break a;
                        $par2 = $par2 + 1 | 0;
                    }
                    $var10 = $var10 + 1 | 0;
                }
                return;
            }
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var9 = $this.$blockID;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var10 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $var6, $var7, $var8, $var9, $var5, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 0;
        $var9 = 0;
        $var5 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $var8, $var9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var8, $var5, $var9, var$8, var$9, var$10, var$11, $var6, $var7, $var10, var$15, $ptr);
},
nms_BlockDragonEgg_isOpaqueCube = $this => {
    return 0;
},
nms_BlockDragonEgg_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockDragonEgg_getRenderType = $this => {
    return 27;
};
function nms_BlockRedstoneLight() {
    nms_Block.call(this);
    this.$powered = 0;
}
let nms_BlockRedstoneLight__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_redstoneLight);
    $this.$powered = $par2;
    if ($par2)
        nms_Block_lightValue.data[$this.$blockID] = 15;
},
nms_BlockRedstoneLight__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockRedstoneLight();
    nms_BlockRedstoneLight__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockRedstoneLight_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            if ($this.$powered) {
                $ptr = 1;
                continue main;
            }
            if (!$this.$powered) {
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            if ($this.$powered)
                return;
            $ptr = 2;
            continue main;
        }
        var$5 = $this.$blockID;
        var$6 = 4;
        var$7 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5)
            return;
        nms_Block_$callClinit();
        var$7 = nms_Block_redstoneLampActive.$blockID;
        var$5 = 0;
        var$6 = 2;
        $ptr = 4;
        continue main;
    case 3:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockRedstoneLight_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            if ($this.$powered) {
                $ptr = 1;
                continue main;
            }
            if (!$this.$powered) {
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5) {
            if ($this.$powered)
                return;
            $ptr = 2;
            continue main;
        }
        $par5 = $this.$blockID;
        var$6 = 4;
        var$7 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5)
            return;
        nms_Block_$callClinit();
        var$7 = nms_Block_redstoneLampActive.$blockID;
        $par5 = 0;
        var$6 = 2;
        $ptr = 4;
        continue main;
    case 3:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $ptr);
},
nms_BlockRedstoneLight_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote && $this.$powered) {
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            return;
        nms_Block_$callClinit();
        var$7 = nms_Block_redstoneLampIdle.$blockID;
        var$6 = 0;
        var$8 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, $ptr);
},
nms_BlockRedstoneLight_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_redstoneLampIdle.$blockID;
},
nms_BlockWoodSlab = $rt_classWithoutFields(nms_BlockHalfSlab),
nms_BlockWoodSlab_woodType = null,
nms_BlockWoodSlab__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    $this.$isDoubleSlab = $par2;
    if ($par2)
        nms_Block_opaqueCubeLookup.data[$par1] = 1;
    else {
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.5;
        $this.$maxZ1 = 1.0;
    }
    nms_Block_lightOpacity.data[$this.$blockID] = 255;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockWoodSlab__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockWoodSlab();
    nms_BlockWoodSlab__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockWoodSlab_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_woodSingleSlab.$blockID;
},
nms_BlockWoodSlab_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    var$2 = new nms_ItemStack;
    nms_Block_$callClinit();
    var$3 = nms_Block_woodSingleSlab.$blockID;
    $par1 = $par1 & 7;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = 2;
    var$2.$itemDamage = $par1;
    if ($par1 < 0)
        var$2.$itemDamage = 0;
    return var$2;
},
nms_BlockWoodSlab_getFullSlabName = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    if (!($par1 >= 0 && $par1 < nms_BlockWoodSlab_woodType.data.length))
        $par1 = 0;
    var$2 = $this.$unlocalizedName0;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(703));
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$2 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$3 = nms_BlockWoodSlab_woodType.data[$par1];
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, var$2);
        var$4 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
        var$9.$buffer.data[var$4] = 46;
        $par1 = var$9.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, $par1, var$3);
        var$2 = new jl_String;
        var$5 = var$9.$buffer;
        var$6 = var$5.data;
        var$4 = var$9.$length0;
        var$7 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
            var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
            return var$2;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$2);
    $rt_throw(var$2);
},
nms_BlockWoodSlab__clinit_ = () => {
    nms_BlockWoodSlab_woodType = $rt_wrapArray(jl_String, [$rt_s(72), $rt_s(73), $rt_s(74), $rt_s(75)]);
},
nms_BlockCocoa = $rt_classWithoutFields(nms_BlockDirectional),
nms_BlockCocoa__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
},
nms_BlockCocoa__init_0 = var_0 => {
    let var_1 = new nms_BlockCocoa();
    nms_BlockCocoa__init_(var_1, var_0);
    return var_1;
},
nms_BlockCocoa_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, $var6, var$11, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockCocoa_canBlockStay($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6) {
            $ptr = 2;
            continue main;
        }
        $par5Random = $par1World.$rand0;
        var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$7;
        var$8 = Long_lo(Long_shru(var$7, 17));
        while (true) {
            var$9 = var$8 % 5 | 0;
            if (((var$8 - var$9 | 0) + 4 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5Random.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 17));
        }
        if (var$9)
            return;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        $var6 = 0;
        var$11 = 1.0;
        $ptr = 3;
    case 3:
        nms_BlockCocoa_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, var$6, var$11, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        $var6 = 0;
        $var7 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = ($var6 & 12) >> 2;
        if ($var7 >= 2)
            return;
        var$6 = ($var7 + 1 | 0) << 2 | $var6 & 3;
        $var6 = 2;
        $ptr = 6;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$6, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, $var6, var$11, $var7, $ptr);
},
nms_BlockCocoa_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $var6, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = $var6 & 3;
        $par2 = $par2 + nms_Direction_offsetX.data[$var5] | 0;
        $var5 = $par4 + nms_Direction_offsetZ.data[$var5] | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        if ($var6 != nms_Block_wood.$blockID)
            return 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return ($par2 & 3) != 3 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var6, $var5, $ptr);
},
nms_BlockCocoa_getRenderType = $this => {
    return 28;
},
nms_BlockCocoa_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockCocoa_isOpaqueCube = $this => {
    return 0;
},
nms_BlockCocoa_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockCocoa_setBlockBoundsBasedOnState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$5 = $par2;
        var$6 = var$5 + $this.$minX1;
        var$7 = $par3;
        var$8 = var$7 + $this.$minY1;
        var$9 = $par4;
        var$10 = var$9 + $this.$minZ1;
        var$5 = var$5 + $this.$maxX1;
        var$7 = var$7 + $this.$maxY0;
        var$9 = var$9 + $this.$maxZ1;
        $par2 = $par1World.$nextPoolIndex;
        var$11 = $par1World.$listAABB;
        $par4 = var$11.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            var$12 = new nms_AxisAlignedBB;
            var$12.$minX0 = var$6;
            var$12.$minY0 = var$8;
            var$12.$minZ0 = var$10;
            var$12.$maxX0 = var$5;
            var$12.$maxY = var$7;
            var$12.$maxZ0 = var$9;
            ju_ArrayList_ensureCapacity(var$11, $par4 + 1 | 0);
            var$13 = var$11.$array.data;
            $par3 = var$11.$size0;
            var$11.$size0 = $par3 + 1 | 0;
            var$13[$par3] = var$12;
            var$11.$modCount = var$11.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            var$12 = var$11.$array.data[$par2];
            var$12.$minX0 = var$6;
            var$12.$minY0 = var$8;
            var$12.$minZ0 = var$10;
            var$12.$maxX0 = var$5;
            var$12.$maxY = var$7;
            var$12.$maxZ0 = var$9;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$12;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockCocoa_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $var8, $var9, var$9, $var10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            $var6 = $var5 & 3;
            $par3 = (($var5 & 12) >> 2) * 2 | 0;
            $var8 = 4 + $par3 | 0;
            $var9 = 5 + $par3 | 0;
            var$9 = $var8;
            $var10 = var$9 / 2.0;
            switch ($var6) {
                case 0:
                    break;
                case 1:
                    var$11 = (12.0 - $var9) / 16.0;
                    var$12 = (8.0 - $var10) / 16.0;
                    var$9 = (1.0 + var$9) / 16.0;
                    $var10 = (8.0 + $var10) / 16.0;
                    $this.$minX1 = 0.0625;
                    $this.$minY1 = var$11;
                    $this.$minZ1 = var$12;
                    $this.$maxX1 = var$9;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = $var10;
                    break a;
                case 2:
                    var$12 = (8.0 - $var10) / 16.0;
                    var$11 = (12.0 - $var9) / 16.0;
                    $var10 = (8.0 + $var10) / 16.0;
                    var$9 = (1.0 + var$9) / 16.0;
                    $this.$minX1 = var$12;
                    $this.$minY1 = var$11;
                    $this.$minZ1 = 0.0625;
                    $this.$maxX1 = $var10;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = var$9;
                    break a;
                case 3:
                    var$12 = (15.0 - var$9) / 16.0;
                    var$13 = (12.0 - $var9) / 16.0;
                    var$9 = (8.0 - $var10) / 16.0;
                    $var10 = (8.0 + $var10) / 16.0;
                    $this.$minX1 = var$12;
                    $this.$minY1 = var$13;
                    $this.$minZ1 = var$9;
                    $this.$maxX1 = 0.9375;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = $var10;
                    break a;
                default:
                    break a;
            }
            var$11 = (8.0 - $var10) / 16.0;
            var$12 = (12.0 - $var9) / 16.0;
            var$9 = (15.0 - var$9) / 16.0;
            $var10 = (8.0 + $var10) / 16.0;
            $this.$minX1 = var$11;
            $this.$minY1 = var$12;
            $this.$minZ1 = var$9;
            $this.$maxX1 = $var10;
            $this.$maxY0 = 0.75;
            $this.$maxZ1 = 0.9375;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $var8, $var9, var$9, $var10, var$11, var$12, var$13, $ptr);
},
nms_BlockCocoa_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        $var7 = var$7 | 0;
        if (var$7 < $var7)
            $var7 = $var7 - 1 | 0;
        $var7 = (($var7 & 3) + 0 | 0) % 4 | 0;
        var$9 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var7, var$9, $ptr);
},
nms_BlockCocoa_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    if (!($par5 != 1 && $par5))
        $par5 = 2;
    return nms_Direction_rotateOpposite.data[nms_Direction_facingToDirection.data[$par5]];
},
nms_BlockCocoa_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockCocoa_canBlockStay($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_BlockCocoa_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$8 = 0;
        $par5 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$6, var$8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockCocoa_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, $var10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = ($par5 & 12) >> 2;
        $var9 = 1;
        if ($var8 >= 2)
            $var9 = 3;
        $var10 = 0;
        if ($var10 >= $var9)
            return;
        var$11 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$12 = nms_Item_dyePowder;
        nms_ItemStack_$callClinit();
        var$11.$itemID = var$12.$itemID0;
        var$11.$stackSize = 1;
        var$11.$itemDamage = 3;
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + 1 | 0;
        if ($var10 >= $var9)
            return;
        var$11 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$12 = nms_Item_dyePowder;
        nms_ItemStack_$callClinit();
        var$11.$itemID = var$12.$itemID0;
        var$11.$stackSize = 1;
        var$11.$itemDamage = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $var9, $var10, var$11, var$12, $ptr);
},
nms_BlockEnderChest = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockEnderChest__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isBlockContainer = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.0625;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0625;
    $this.$maxX1 = 0.9375;
    $this.$maxY0 = 0.875;
    $this.$maxZ1 = 0.9375;
},
nms_BlockEnderChest__init_0 = var_0 => {
    let var_1 = new nms_BlockEnderChest();
    nms_BlockEnderChest__init_(var_1, var_0);
    return var_1;
},
nms_BlockEnderChest_isOpaqueCube = $this => {
    return 0;
},
nms_BlockEnderChest_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockEnderChest_getRenderType = $this => {
    return 22;
},
nms_BlockEnderChest_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_obsidian.$blockID;
},
nms_BlockEnderChest_quantityDropped = ($this, $par1Random) => {
    return 8;
},
nms_BlockEnderChest_canSilkHarvest = $this => {
    return 1;
},
nms_BlockEnderChest_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let $var7, var$8, var$9, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = 0;
        var$8 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        var$9 = var$8 | 0;
        if (var$8 < var$9)
            var$9 = var$9 - 1 | 0;
        $var8 = var$9 & 3;
        if (!$var8)
            $var7 = 2;
        if ($var8 == 1)
            $var7 = 5;
        if ($var8 == 2)
            $var7 = 3;
        if ($var8 == 3)
            $var7 = 4;
        $var8 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, $var7, var$8, var$9, $var8, $ptr);
},
nms_BlockEnderChest_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $par5EntityPlayer.$theInventoryEnderChest;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var11 = $var11;
        if ($var10 !== null && $var11 !== null) {
            $par3 = $par3 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        return 1;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2)
            return 1;
        if ($par1World.$isRemote)
            return 1;
        $var10.$associatedChest = $var11;
        $ptr = 3;
    case 3:
        nms_EntityPlayerMP_displayGUIChest($par5EntityPlayer, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $var11, $ptr);
},
nms_BlockEnderChest_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityEnderChest;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
},
nms_BlockTripWireSource = $rt_classWithoutFields(nms_Block),
nms_BlockTripWireSource__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$needsRandomTick = 1;
},
nms_BlockTripWireSource__init_0 = var_0 => {
    let var_1 = new nms_BlockTripWireSource();
    nms_BlockTripWireSource__init_(var_1, var_0);
    return var_1;
},
nms_BlockTripWireSource_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockTripWireSource_isOpaqueCube = $this => {
    return 0;
},
nms_BlockTripWireSource_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockTripWireSource_getRenderType = $this => {
    return 29;
},
nms_BlockTripWireSource_canPlaceBlockOnSide = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 == 2) {
            var$6 = $par4 + 1 | 0;
            $ptr = 1;
            continue main;
        }
        if ($par5 == 3) {
            var$6 = $par4 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 4) {
            var$6 = $par2 + 1 | 0;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 5)
            return 0;
        $par2 = $par2 - 1 | 0;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 3) {
                var$6 = $par4 - 1 | 0;
                $ptr = 2;
                continue main;
            }
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 3;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 4) {
                var$6 = $par2 + 1 | 0;
                $ptr = 3;
                continue main;
            }
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6)
            $par2 = 1;
        else {
            if ($par5 == 5) {
                $par2 = $par2 - 1 | 0;
                $ptr = 4;
                continue main;
            }
            $par2 = 0;
        }
        return $par2;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !$par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockTripWireSource_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par2 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockNormalCube($par1World, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        var$5 = $par4 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5)
            return 1;
        $par4 = $par4 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockTripWireSource_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = 0;
        if ($par5 == 2) {
            $par9 = $par4 + 1 | 0;
            var$11 = 1;
            $ptr = 1;
            continue main;
        }
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            var$11 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 5)
            return $var10;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, $par9, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var10 = 2;
        if ($par5 == 3) {
            $par9 = $par4 - 1 | 0;
            var$11 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 5)
            return $var10;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par2, $par3, $par9, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var10 = 0;
        if ($par5 == 4) {
            $par9 = $par2 + 1 | 0;
            var$11 = 1;
            $ptr = 3;
            continue main;
        }
        if ($par5 != 5)
            return $var10;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par9, $par3, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = $tmp;
        if ($par9)
            $var10 = 1;
        if ($par5 != 5)
            return $var10;
        $par5 = $par2 - 1 | 0;
        $par2 = 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isBlockNormalCubeDefault($par1World, $par5, $par3, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2)
            $var10 = 3;
        return $var10;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $var10, var$11, $ptr);
};
let nms_BlockTripWireSource_onPostBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        var$7 = 0;
        var$8 = (-1);
        var$9 = 0;
        $ptr = 1;
    case 1:
        nms_BlockTripWireSource_func_72143_a($this, $par1World, $par2, $par3, $par4, var$6, $par5, var$7, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, var$9, $ptr);
},
nms_BlockTripWireSource_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var7, var$7, $var8, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 == $this.$blockID)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockTripWireSource_canPlaceBlockAt($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            $ptr = 2;
            continue main;
        }
        if (!1)
            return;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $var7 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var7 = 0;
        $var8 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        if (!0)
            return;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $var6 & 3;
        $var8 = 0;
        $par5 = $par2 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var7 == 3)
            $var8 = 1;
        $par5 = $par2 + 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isBlockNormalCube($par1World, $par5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var7 == 1)
            $var8 = 1;
        $par5 = $par4 - 1 | 0;
        $ptr = 8;
    case 8:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && !$var7)
            $var8 = 1;
        $par5 = $par4 + 1 | 0;
        $ptr = 9;
    case 9:
        $tmp = nms_World_isBlockNormalCube($par1World, $par2, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5 && $var7 == 2)
            $var8 = 1;
        if (!$var8)
            return;
        $par5 = 0;
        var$7 = 1.0;
        $ptr = 10;
    case 10:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var6, var$7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var7 = 0;
        $var8 = 3;
        $ptr = 11;
    case 11:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var7, var$7, $var8, $var6, $ptr);
},
nms_BlockTripWireSource_func_72143_a = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, $var12, $var13, $var14, $var21, $var19, var$17, $var15, $var16, $var17, $var18, $var20, $var24, $var22, $var23, $var24_0, $var25, $var26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var26 = $thread.pop();$var25 = $thread.pop();$var24_0 = $thread.pop();$var23 = $thread.pop();$var22 = $thread.pop();$var24 = $thread.pop();$var20 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();var$17 = $thread.pop();$var19 = $thread.pop();$var21 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7
        = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $par6 & 3;
        $var11 = ($par6 & 4) != 4 ? 0 : 1;
        $var12 = ($par6 & 8) != 8 ? 0 : 1;
        nms_Block_$callClinit();
        $var13 = $par5 != nms_Block_tripWireSource.$blockID ? 0 : 1;
        $var14 = 0;
        $var21 = $par3 - 1 | 0;
        $var19 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $var21, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        var$17 = $var19[$par6];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var21, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        $var15 = nms_World_isBlockTopFacingSurfaceSolid($par1World, var$17, $par6) ? 0 : 1;
        $var16 = nms_Direction_offsetX.data[$var10];
        $var17 = nms_Direction_offsetZ.data[$var10];
        $var18 = 0;
        $var19 = $rt_createIntArray(42).data;
        $var20 = 1;
        $var24 = 10;
        if ($var20 < 42) {
            $var21 = $par2 + $rt_imul($var16, $var20) | 0;
            $var22 = $par4 + $rt_imul($var17, $var20) | 0;
            $ptr = 3;
            continue main;
        }
        $var20 = $var18;
        $par9 = $var13 & ($var20 <= 1 ? 0 : 1);
        $var14 = $var14 & $par9;
        $par8 = (!$par9 ? 0 : 4) | (!$var14 ? 0 : 8);
        $var13 = $var10 | $par8;
        if ($var20 <= 0) {
            $ptr = 6;
            continue main;
        }
        $var21 = $par2 + $rt_imul($var16, $var20) | 0;
        $var22 = $par4 + $rt_imul($var17, $var20) | 0;
        $var23 = nms_Direction_rotateOpposite.data[$var10];
        $par6 = $var23 | $par8;
        $par8 = 3;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var21, $par3, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = $tmp;
        if ($var23 == nms_Block_tripWireSource.$blockID) {
            $ptr = 4;
            continue main;
        }
        if ($var23 != nms_Block_tripWire.$blockID && $var20 != $par8) {
            $var19[$var20] = (-1);
            $var13 = 0;
        } else {
            $var23 = $rt_compare($var20, $par8);
            if ($var23) {
                $ptr = 5;
                continue main;
            }
            $var24_0 = $par9;
            $var25 = ($var24_0 & 8) == 8 ? 0 : 1;
            $var26 = ($var24_0 & 1) != 1 ? 0 : 1;
            $var13 = $var13 & ((($var24_0 & 2) != 2 ? 0 : 1) != $var15 ? 0 : 1);
            $var14 = $var14 | ($var25 && $var26 ? 1 : 0);
            $var19[$var20] = $var24_0;
            if (!$var23) {
                $par6 = 0;
                $ptr = 13;
                continue main;
            }
        }
        $var20 = $var20 + 1 | 0;
        if ($var20 < 42) {
            $var21 = $par2 + $rt_imul($var16, $var20) | 0;
            $var22 = $par4 + $rt_imul($var17, $var20) | 0;
            continue main;
        }
        $var20 = $var18;
        $par9 = $var13 & ($var20 <= 1 ? 0 : 1);
        $var14 = $var14 & $par9;
        $par8 = (!$par9 ? 0 : 4) | (!$var14 ? 0 : 8);
        $var13 = $var10 | $par8;
        if ($var20 <= 0) {
            $ptr = 6;
            continue main;
        }
        $var21 = $par2 + $rt_imul($var16, $var20) | 0;
        $var22 = $par4 + $rt_imul($var17, $var20) | 0;
        $var23 = nms_Direction_rotateOpposite.data[$var10];
        $par6 = $var23 | $par8;
        $par8 = 3;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $var21, $par3, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var24 = $tmp;
        if (($var24 & 3) != nms_Direction_rotateOpposite.data[$var10])
            $var20 = $var18;
        $par9 = $var13 & ($var20 <= 1 ? 0 : 1);
        $var14 = $var14 & $par9;
        $par8 = (!$par9 ? 0 : 4) | (!$var14 ? 0 : 8);
        $var13 = $var10 | $par8;
        if ($var20 <= 0) {
            $ptr = 6;
            continue main;
        }
        $var21 = $par2 + $rt_imul($var16, $var20) | 0;
        $var22 = $par4 + $rt_imul($var17, $var20) | 0;
        $var23 = nms_Direction_rotateOpposite.data[$var10];
        $par6 = $var23 | $par8;
        $par8 = 3;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1World, $var21, $par3, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var24_0 = $tmp;
        $var25 = ($var24_0 & 8) == 8 ? 0 : 1;
        $var26 = ($var24_0 & 1) != 1 ? 0 : 1;
        $var13 = $var13 & ((($var24_0 & 2) != 2 ? 0 : 1) != $var15 ? 0 : 1);
        $var14 = $var14 | ($var25 && $var26 ? 1 : 0);
        $var19[$var20] = $var24_0;
        if (!$var23) {
            $par6 = 0;
            $ptr = 13;
            continue main;
        }
        $var20 = $var20 + 1 | 0;
        if ($var20 < 42) {
            $var21 = $par2 + $rt_imul($var16, $var20) | 0;
            $var22 = $par4 + $rt_imul($var17, $var20) | 0;
            $ptr = 3;
            continue main;
        }
        $var20 = $var18;
        $par9 = $var13 & ($var20 <= 1 ? 0 : 1);
        $var14 = $var14 & $par9;
        $par8 = (!$par9 ? 0 : 4) | (!$var14 ? 0 : 8);
        $var13 = $var10 | $par8;
        if ($var20 <= 0) {
            $ptr = 6;
            continue main;
        }
        $var21 = $par2 + $rt_imul($var16, $var20) | 0;
        $var22 = $par4 + $rt_imul($var17, $var20) | 0;
        $var23 = nms_Direction_rotateOpposite.data[$var10];
        $par6 = $var23 | $par8;
        $par8 = 3;
        $ptr = 7;
        continue main;
    case 6:
        nms_BlockTripWireSource_playSoundEffect($this, $par1World, $par2, $par3, $par4, $par9, $var14, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 > 0) {
            $par5 = 3;
            $ptr = 10;
            continue main;
        }
        a: {
            if ($var11 != $par9) {
                $var21 = 1;
                while (true) {
                    if ($var21 >= $var20)
                        break a;
                    $var22 = $par2 + $rt_imul($var16, $var21) | 0;
                    $var23 = $par4 + $rt_imul($var17, $var21) | 0;
                    $var24 = $var19[$var21];
                    if ($var24 >= 0) {
                        $par6 = !$par9 ? $var24 & (-5) : $var24 | 4;
                        $par5 = 3;
                        $ptr = 12;
                        continue main;
                    }
                    $var21 = $var21 + 1 | 0;
                }
            }
        }
        return;
    case 7:
        nms_World_setBlockMetadataWithNotify($par1World, $var21, $par3, $var22, $par6, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
    case 8:
        nms_BlockTripWireSource_notifyNeighborOfChange($this, $par1World, $var21, $par3, $var22, $var23);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
    case 9:
        nms_BlockTripWireSource_playSoundEffect($this, $par1World, $var21, $par3, $var22, $par9, $var14, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 6;
        continue main;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var13, $par5);
        if ($rt_suspending()) {
            break main;
        }
        if ($par7) {
            $ptr = 11;
            continue main;
        }
        a: {
            if ($var11 != $par9) {
                $var21 = 1;
                while (true) {
                    if ($var21 >= $var20)
                        break a;
                    $var22 = $par2 + $rt_imul($var16, $var21) | 0;
                    $var23 = $par4 + $rt_imul($var17, $var21) | 0;
                    $var24 = $var19[$var21];
                    if ($var24 >= 0) {
                        $par6 = !$par9 ? $var24 & (-5) : $var24 | 4;
                        $par5 = 3;
                        $ptr = 12;
                        continue main;
                    }
                    $var21 = $var21 + 1 | 0;
                }
            }
        }
        return;
    case 11:
        nms_BlockTripWireSource_notifyNeighborOfChange($this, $par1World, $par2, $par3, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        b: {
            if ($var11 != $par9) {
                $var21 = 1;
                while (true) {
                    if ($var21 >= $var20)
                        break b;
                    $var22 = $par2 + $rt_imul($var16, $var21) | 0;
                    $var23 = $par4 + $rt_imul($var17, $var21) | 0;
                    $var24 = $var19[$var21];
                    if ($var24 >= 0) {
                        $par6 = !$par9 ? $var24 & (-5) : $var24 | 4;
                        $par5 = 3;
                        $ptr = 12;
                        continue main;
                    }
                    $var21 = $var21 + 1 | 0;
                }
            }
        }
        return;
    case 12:
        nms_World_setBlockMetadataWithNotify($par1World, $var22, $par3, $var23, $par6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var21 = $var21 + 1 | 0;
            if ($var21 >= $var20)
                break;
            $var22 = $par2 + $rt_imul($var16, $var21) | 0;
            $var23 = $par4 + $rt_imul($var17, $var21) | 0;
            $var24 = $var19[$var21];
            if ($var24 < 0)
                continue;
            else {
                $par6 = !$par9 ? $var24 & (-5) : $var24 | 4;
                $par5 = 3;
                continue main;
            }
        }
        return;
    case 13:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, $var24, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $var13 & $var25;
        $var20 = $var20 + 1 | 0;
        if ($var20 < 42) {
            $var21 = $par2 + $rt_imul($var16, $var20) | 0;
            $var22 = $par4 + $rt_imul($var17, $var20) | 0;
            $ptr = 3;
            continue main;
        }
        $var20 = $var18;
        $par9 = $var13 & ($var20 <= 1 ? 0 : 1);
        $var14 = $var14 & $par9;
        $par8 = (!$par9 ? 0 : 4) | (!$var14 ? 0 : 8);
        $var13 = $var10 | $par8;
        if ($var20 <= 0) {
            $ptr = 6;
            continue main;
        }
        $var21 = $par2 + $rt_imul($var16, $var20) | 0;
        $var22 = $par4 + $rt_imul($var17, $var20) | 0;
        $var23 = nms_Direction_rotateOpposite.data[$var10];
        $par6 = $var23 | $par8;
        $par8 = 3;
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $var10, $var11, $var12, $var13, $var14, $var21, $var19, var$17, $var15, $var16, $var17, $var18, $var20, $var24, $var22, $var23, $var24_0, $var25, $var26, $ptr);
},
nms_BlockTripWireSource_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$8 = 1;
        var$9 = (-1);
        var$10 = 0;
        $ptr = 2;
    case 2:
        nms_BlockTripWireSource_func_72143_a($this, $par1World, $par2, $par3, $par4, var$6, var$7, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_BlockTripWireSource_playSoundEffect = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8) => {
    let var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par6 && !$par8) {
            var$9 = $par2 + 0.5;
            var$10 = $par3 + 0.1;
            var$11 = $par4 + 0.5;
            var$12 = $rt_s(1446);
            var$13 = 0.4000000059604645;
            var$14 = 0.6000000238418579;
            $ptr = 1;
            continue main;
        }
        if (!$par6 && $par8) {
            var$9 = $par2 + 0.5;
            var$10 = $par3 + 0.1;
            var$11 = $par4 + 0.5;
            var$12 = $rt_s(1446);
            var$13 = 0.4000000059604645;
            var$14 = 0.5;
            $ptr = 2;
            continue main;
        }
        if ($par5 && !$par7) {
            var$9 = $par2 + 0.5;
            var$10 = $par3 + 0.1;
            var$11 = $par4 + 0.5;
            var$12 = $rt_s(1446);
            var$13 = 0.4000000059604645;
            var$14 = 0.699999988079071;
            $ptr = 3;
            continue main;
        }
        if (!$par5 && $par7) {
            var$10 = $par2 + 0.5;
            var$11 = $par3 + 0.1;
            var$9 = $par4 + 0.5;
            var$12 = $rt_s(1453);
            var$13 = 0.4000000059604645;
            var$15 = $par1World.$rand0;
            var$16 = Long_and(Long_add(Long_mul(var$15.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$15.$seed = var$16;
            var$14 = 1.2000000476837158 / (Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.8999999761581421);
            $ptr = 4;
            continue main;
        }
        return;
    case 1:
        nms_World_playSoundEffect($par1World, var$9, var$10, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_playSoundEffect($par1World, var$9, var$10, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_playSoundEffect($par1World, var$9, var$10, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_playSoundEffect($par1World, var$10, var$11, var$9, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_BlockTripWireSource_notifyNeighborOfChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$blockID;
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 == 3) {
            $par2 = $par2 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 2;
            continue main;
        }
        if ($par5 == 1) {
            $par2 = $par2 + 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 3;
            continue main;
        }
        if (!$par5) {
            $par4 = $par4 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 4;
            continue main;
        }
        if ($par5 != 2)
            return;
        $par4 = $par4 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 5;
        continue main;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_BlockTripWireSource_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $var5 = $par2 & 3;
        if ($var5 == 3) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.3125;
            $this.$maxX1 = 0.375;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.6875;
        } else if ($var5 == 1) {
            $this.$minX1 = 0.625;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.3125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.6875;
        } else if (!$var5) {
            $this.$minX1 = 0.3125;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.6875;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 0.375;
        } else if ($var5 == 2) {
            $this.$minX1 = 0.3125;
            $this.$minY1 = 0.20000000298023224;
            $this.$minZ1 = 0.625;
            $this.$maxX1 = 0.6875;
            $this.$maxY0 = 0.800000011920929;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockTripWireSource_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, $var9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = ($par6 & 4) != 4 ? 0 : 1;
        $var8 = ($par6 & 8) != 8 ? 0 : 1;
        if (!$var7 && !$var8) {
            if (!$var8)
                return;
            $par5 = $this.$blockID;
            $ptr = 2;
            continue main;
        }
        $par5 = 0;
        $var7 = 0;
        $var9 = (-1);
        var$10 = 0;
        $ptr = 1;
    case 1:
        nms_BlockTripWireSource_func_72143_a($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var8)
            return;
        $par5 = $this.$blockID;
        $ptr = 2;
    case 2:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $par6 & 3;
        if ($var9 == 3) {
            $par2 = $par2 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 3;
            continue main;
        }
        if ($var9 == 1) {
            $par2 = $par2 + 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 4;
            continue main;
        }
        if (!$var9) {
            $par4 = $par4 - 1 | 0;
            $par5 = $this.$blockID;
            $ptr = 5;
            continue main;
        }
        if ($var9 != 2)
            return;
        $par4 = $par4 + 1 | 0;
        $par5 = $this.$blockID;
        $ptr = 6;
        continue main;
    case 3:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, $var9, var$10, $ptr);
},
nms_BlockTripWireSource_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return ($par2 & 8) != 8 ? 0 : 15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockTripWireSource_isProvidingStrongPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (($var6 & 8) != 8)
            return 0;
        $var7 = $var6 & 3;
        return $var7 == 2 && $par5 == 2 ? 15 : !$var7 && $par5 == 3 ? 15 : $var7 == 1 && $par5 == 4 ? 15 : $var7 == 3 && $par5 == 5 ? 15 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockTripWireSource_canProvidePower = $this => {
    return 1;
},
nms_BlockTripWire = $rt_classWithoutFields(nms_Block),
nms_BlockTripWire__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.15625;
    $this.$maxZ1 = 1.0;
    $this.$needsRandomTick = 1;
},
nms_BlockTripWire__init_0 = var_0 => {
    let var_1 = new nms_BlockTripWire();
    nms_BlockTripWire__init_(var_1, var_0);
    return var_1;
},
nms_BlockTripWire_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    return null;
},
nms_BlockTripWire_isOpaqueCube = $this => {
    return 0;
},
nms_BlockTripWire_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockTripWire_getRenderType = $this => {
    return 30;
},
nms_BlockTripWire_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_silk.$itemID0;
},
nms_BlockTripWire_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $var8, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = ($var6 & 2) != 2 ? 0 : 1;
        $par5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$10 = var$8[$var8];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($var7 == (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$10, $par5) ? 0 : 1))
            return;
        $par5 = 0;
        var$11 = 1.0;
        $ptr = 4;
    case 4:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $var6, var$11, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        $var7 = 0;
        $var8 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, var$8, $var8, var$10, var$11, $ptr);
},
nms_BlockTripWire_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = ($var5 & 4) != 4 ? 0 : 1;
        if (!(($var5 & 2) != 2 ? 0 : 1)) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.09375;
            $this.$maxZ1 = 1.0;
        } else if (!$var6) {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.5;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0625;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 0.15625;
            $this.$maxZ1 = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $ptr);
},
nms_BlockTripWire_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, $var5, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$8 = var$6[$var5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var5 = !nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, $var5) ? 2 : 0;
        var$5 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_BlockTripWire_func_72149_e($this, $par1World, $par2, $par3, $par4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, $var5, var$8, $ptr);
},
nms_BlockTripWire_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5 = $par6 | 1;
        $ptr = 1;
    case 1:
        nms_BlockTripWire_func_72149_e($this, $par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockTripWire_onBlockHarvested = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer) => {
    let var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6EntityPlayer = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1World.$isRemote) {
            $par6EntityPlayer = $par6EntityPlayer.$inventory0;
            var$7 = $par6EntityPlayer.$currentItem;
            var$8 = $rt_compare(var$7, 9);
            if ((var$8 < 0 && var$7 >= 0 ? $par6EntityPlayer.$mainInventory.data[var$7] : null) !== null) {
                var$8 = (var$8 < 0 && var$7 >= 0 ? $par6EntityPlayer.$mainInventory.data[var$7] : null).$itemID;
                nms_Item_$callClinit();
                if (var$8 == nms_Item_shears.$itemID0) {
                    $par5 = $par5 | 8;
                    var$8 = 4;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer, var$7, var$8, $ptr);
},
nms_BlockTripWire_func_72149_e = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $var9, $var10, var$11, var$12, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        while ($var6 < 2) {
            $var7 = 1;
            if ($var7 < 42) {
                $var8 = $par2 + $rt_imul(nms_Direction_offsetX.data[$var6], $var7) | 0;
                $var9 = $par4 + $rt_imul(nms_Direction_offsetZ.data[$var6], $var7) | 0;
                $ptr = 1;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var8, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        nms_Block_$callClinit();
        if ($var10 == nms_Block_tripWireSource.$blockID) {
            $ptr = 2;
            continue main;
        }
        a: {
            if ($var10 == nms_Block_tripWire.$blockID) {
                $var7 = $var7 + 1 | 0;
                $var8 = 42;
                $var8 = $rt_compare($var7, $var8);
                if ($var8 < 0)
                    break a;
            }
            while (true) {
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 2)
                    break;
                $var7 = 1;
                $var8 = 42;
                $var8 = $rt_compare($var7, $var8);
                if ($var8 >= 0)
                    continue;
                else
                    break a;
            }
            return;
        }
        $var8 = $par2 + $rt_imul(nms_Direction_offsetX.data[$var6], $var7) | 0;
        $var9 = $par4 + $rt_imul(nms_Direction_offsetZ.data[$var6], $var7) | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $var8, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if ((var$11 & 3) == nms_Direction_rotateOpposite.data[$var6]) {
            var$12 = nms_Block_tripWireSource;
            $ptr = 3;
            continue main;
        }
        while (true) {
            $var6 = $var6 + 1 | 0;
            if ($var6 >= 2)
                break;
            $var7 = 1;
            if ($var7 >= 42)
                continue;
            else {
                $var8 = $par2 + $rt_imul(nms_Direction_offsetX.data[$var6], $var7) | 0;
                $var9 = $par4 + $rt_imul(nms_Direction_offsetZ.data[$var6], $var7) | 0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $var8, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        var$11 = 1;
        $ptr = 4;
    case 4:
        nms_BlockTripWireSource_func_72143_a(var$12, $par1World, $var8, $par3, $var9, $var10, $var11, var$11, $var7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var6 = $var6 + 1 | 0;
            if ($var6 >= 2)
                break;
            $var7 = 1;
            if ($var7 >= 42)
                continue;
            else {
                $var8 = $par2 + $rt_imul(nms_Direction_offsetX.data[$var6], $var7) | 0;
                $var9 = $par4 + $rt_imul(nms_Direction_offsetZ.data[$var6], $var7) | 0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, $var9, $var10, var$11, var$12, $var11, $ptr);
},
nms_BlockTripWire_onEntityCollidedWithBlock = ($this, $par1World, $par2, $par3, $par4, $par5Entity) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Entity = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if ((var$6 & 1) == 1)
            return;
        $ptr = 2;
    case 2:
        nms_BlockTripWire_updateTripWireState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Entity, var$6, $ptr);
},
nms_BlockTripWire_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if ((var$6 & 1) != 1)
            return;
        $ptr = 2;
    case 2:
        nms_BlockTripWire_updateTripWireState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, var$6, $ptr);
},
nms_BlockTripWire_updateTripWireState = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var10, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var8, var$19, $var9$index, var$21, var$22, $var9$index_0, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();$var9$index_0 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var9$index = $thread.pop();var$19 = $thread.pop();$var8 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3
        = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = ($var5 & 1) != 1 ? 0 : 1;
        $var7 = 0;
        $var10 = null;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par2;
        var$11 = var$10 + $this.$minX1;
        var$12 = $par3;
        var$13 = var$12 + $this.$minY1;
        var$14 = $par4;
        var$15 = var$14 + $this.$minZ1;
        var$10 = var$10 + $this.$maxX1;
        var$16 = var$12 + $this.$maxY0;
        var$12 = var$14 + $this.$maxZ1;
        var$17 = var$9.$nextPoolIndex;
        $var8 = var$9.$listAABB;
        var$19 = $var8.$size0;
        $var9$index = $rt_compare(var$17, var$19);
        if ($var9$index >= 0) {
            var$21 = new nms_AxisAlignedBB;
            var$21.$minX0 = var$11;
            var$21.$minY0 = var$13;
            var$21.$minZ0 = var$15;
            var$21.$maxX0 = var$10;
            var$21.$maxY = var$16;
            var$21.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity($var8, var$19 + 1 | 0);
            var$22 = $var8.$array.data;
            $var9$index = $var8.$size0;
            $var8.$size0 = $var9$index + 1 | 0;
            var$22[$var9$index] = var$21;
            $var8.$modCount = $var8.$modCount + 1 | 0;
        } else if (var$17 >= 0 && $var9$index < 0) {
            var$21 = $var8.$array.data[var$17];
            var$21.$minX0 = var$11;
            var$21.$minY0 = var$13;
            var$21.$minZ0 = var$15;
            var$21.$maxX0 = var$10;
            var$21.$maxY = var$16;
            var$21.$maxZ0 = var$12;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $var8 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($par1World, $var10, var$21, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$17 = $var8.$size0 ? 0 : 1;
        a: {
            if (!var$17) {
                $var9$index_0 = 0;
                var$19 = $var8.$modCount;
                var$24 = $var8.$size();
                while (true) {
                    if (!($var9$index_0 >= var$24 ? 0 : 1))
                        break a;
                    if (var$19 < $var8.$modCount)
                        break;
                    $var9$index = $var9$index_0 + 1 | 0;
                    if (!($var8.$get($var9$index_0)).$doesEntityNotTriggerPressurePlate()) {
                        $var7 = 1;
                        break a;
                    }
                    $var9$index_0 = $var9$index;
                }
                $par1World = new ju_ConcurrentModificationException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
        }
        if ($var7 && !$var6)
            $var5 = $var5 | 1;
        if (!$var7 && $var6)
            $var5 = $var5 & (-2);
        if ($var7 != $var6) {
            var$17 = 3;
            $ptr = 3;
            continue main;
        }
        if (!$var7)
            return;
        var$17 = $this.$blockID;
        var$19 = 10;
        $var9$index = 0;
        $ptr = 5;
        continue main;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var5, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_BlockTripWire_func_72149_e($this, $par1World, $par2, $par3, $par4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var7)
            return;
        var$17 = $this.$blockID;
        var$19 = 10;
        $var9$index = 0;
        $ptr = 5;
    case 5:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, var$17, var$19, $var9$index);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, $var10, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var8, var$19, $var9$index, var$21, var$22, $var9$index_0, var$24, $ptr);
},
nms_BlockCommandBlock = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockCommandBlock__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_iron);
    $this.$isBlockContainer = 1;
},
nms_BlockCommandBlock__init_ = var_0 => {
    let var_1 = new nms_BlockCommandBlock();
    nms_BlockCommandBlock__init_0(var_1, var_0);
    return var_1;
},
nms_BlockCommandBlock_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityCommandBlock;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    $par1World.$command = $rt_s(3);
    $par1World.$commandSenderName = $rt_s(1454);
    return $par1World;
},
nms_BlockCommandBlock_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var8 = !($var7 & 1) ? 0 : 1;
        if ($var6 && !$var8) {
            $par5 = $var7 | 1;
            $var7 = 4;
            $ptr = 3;
            continue main;
        }
        if (!$var6 && $var8) {
            $var7 = $var7 & (-2);
            $par5 = 4;
            $ptr = 5;
            continue main;
        }
        return;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $this.$blockID;
        $var6 = 1;
        $var7 = 0;
        $ptr = 4;
    case 4:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $par5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, $ptr);
},
nms_BlockCommandBlock_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 !== null && $var6 instanceof nms_TileEntityCommandBlock) {
            $var7 = $var6;
            if ($par1World.$isRemote)
                var$8 = 0;
            else {
                $par5Random = nms_MinecraftServer_mcServer;
                if ($par5Random !== null) {
                    $var6 = $par5Random.$commandManager;
                    $par5Random = $var7.$command;
                    $ptr = 2;
                    continue main;
                }
                var$8 = 0;
            }
            $var7.$succesCount = var$8;
            var$8 = $this.$blockID;
            $ptr = 3;
            continue main;
        }
        return;
    case 2:
        $tmp = nms_CommandHandler_executeCommand($var6, $var7, $par5Random);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var7.$succesCount = var$8;
        var$8 = $this.$blockID;
        $ptr = 3;
    case 3:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, $var7, var$8, $ptr);
},
nms_BlockCommandBlock_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        if ($var10 !== null && $var10 instanceof nms_TileEntitySign)
            a: {
                $var10.$field_142011_d = $par5EntityPlayer;
                $par1World = $par5EntityPlayer.$playerNetServerHandler;
                $par5EntityPlayer = new nms_Packet133TileEditorOpen;
                $par3 = $var10.$xCoord0;
                $par4 = $var10.$yCoord0;
                $par6 = $var10.$zCoord0;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par5EntityPlayer.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par5EntityPlayer.$field_142037_a = 0;
                $par5EntityPlayer.$field_142035_b = $par3;
                $par5EntityPlayer.$field_142036_c = $par4;
                $par5EntityPlayer.$field_142034_d = $par6;
                if ($par5EntityPlayer instanceof nms_Packet3Chat) {
                    $var10 = $par5EntityPlayer;
                    $par3 = $par1World.$playerEntity.$chatVisibility;
                    if ($par3 == 2)
                        break a;
                    if ($par3 == 1 && !$var10.$isServer)
                        break a;
                }
                try {
                    $par1World = $par1World.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par5EntityPlayer = new otcic_JSStderrPrintStream;
                    $var10 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var10);
                    $var10.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($par5EntityPlayer, $var10);
                    $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                    $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                    $par5EntityPlayer.$autoFlush = 0;
                    $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $par5EntityPlayer;
                }
                jl_Throwable_printStackTrace($par1World, jl_System_errCache);
            }
        return 1;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1World, $par5EntityPlayer);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par5EntityPlayer = new otcic_JSStderrPrintStream;
                $var10 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var10);
                $var10.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($par5EntityPlayer, $var10);
                $par5EntityPlayer.$sb = jl_StringBuilder__init_();
                $par5EntityPlayer.$buffer0 = $rt_createCharArray(32);
                $par5EntityPlayer.$autoFlush = 0;
                $par5EntityPlayer.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par5EntityPlayer;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $ptr);
},
nms_BlockCommandBlock_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockCommandBlock_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return $var6 !== null && $var6 instanceof nms_TileEntityCommandBlock ? $var6.$succesCount : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $ptr);
},
nms_BlockCommandBlock_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let $var7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var7 = $par1World;
        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
        if ($par5EntityLivingBase === null)
            $par2 = 0;
        else {
            a: {
                $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$8 = $par5EntityLivingBase.$elementData.data;
            $par5EntityLivingBase = var$8[$par3 & (var$8.length - 1 | 0)];
            while ($par5EntityLivingBase !== null) {
                if ($par5EntityLivingBase.$origKeyHash == $par3) {
                    b: {
                        var$9 = $par5EntityLivingBase.$key;
                        if ($rt_s(918) !== var$9) {
                            if ($rt_s(918) === var$9)
                                $par2 = 1;
                            else if (!(var$9 instanceof jl_String))
                                $par2 = 0;
                            else {
                                var$9 = var$9;
                                $par2 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break b;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
            }
            if ($par5EntityLivingBase === null ? 0 : 1) {
                c: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    var$9 = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$8 = var$9.$elementData.data;
                var$9 = var$8[$par4 & (var$8.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $par4) {
                        d: {
                            var$10 = var$9.$key;
                            if ($rt_s(918) !== var$10) {
                                if ($rt_s(918) !== var$10) {
                                    if (var$10 instanceof jl_String) {
                                        var$10 = var$10;
                                        $par2 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    } else
                                        $par2 = 0;
                                } else
                                    $par2 = 1;
                                if (!$par2) {
                                    $par2 = 0;
                                    break d;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
                if (!(var$9 === null ? 0 : 1)) {
                    $par1World = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par1World.$name = $rt_s(918);
                    else
                        $par1World.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$8 = var$11.data;
                    $par5EntityLivingBase.$elementData = var$11;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$8.length * 0.75 | 0;
                    $par1World.$tagMap = $par5EntityLivingBase;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) !== null) {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = $rt_s(918).$hashCode1;
                        var$8 = $par1World.$elementData.data;
                        $par1World = var$8[$par4 & (var$8.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par4) {
                                f: {
                                    var$9 = $par1World.$key;
                                    if ($rt_s(918) !== var$9) {
                                        if ($rt_s(918) !== var$9) {
                                            if (!(var$9 instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                var$9 = var$9;
                                                $par2 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            $par2 = 1;
                                        if (!$par2) {
                                            $par2 = 0;
                                            break f;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    }
                    $par1World = $par1World === null ? null : $par1World.$value0;
                }
                g: {
                    $par1World = $par1World.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$8 = $par1World.$elementData.data;
                $par1World = var$8[$par4 & (var$8.length - 1 | 0)];
                while ($par1World !== null) {
                    if ($par1World.$origKeyHash == $par4) {
                        h: {
                            var$9 = $par1World.$key;
                            if ($rt_s(919) !== var$9) {
                                if ($rt_s(919) !== var$9) {
                                    if (var$9 instanceof jl_String) {
                                        var$9 = var$9;
                                        $par2 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    } else
                                        $par2 = 0;
                                } else
                                    $par2 = 1;
                                if (!$par2) {
                                    $par2 = 0;
                                    break h;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par1World = $par1World.$next3;
                }
                $par2 = $par1World === null ? 0 : 1;
            } else
                $par2 = 0;
        }
        if ($par2) {
            nms_Item_$callClinit();
            $par1World = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
            $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
            if ($par5EntityLivingBase !== null) {
                i: {
                    $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par3 = 0;
                        while (true) {
                            if ($par3 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par3) | 0;
                            $par3 = $par3 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$8 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$8[$par4 & (var$8.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        j: {
                            var$10 = $par5EntityLivingBase.$key;
                            if ($rt_s(918) !== var$10) {
                                if ($rt_s(918) === var$10)
                                    $par2 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    var$10 = var$10;
                                    $par2 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break j;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    k: {
                        $par5EntityLivingBase = $par6ItemStack.$stackTagCompound;
                        var$9 = $par5EntityLivingBase.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(918).$hashCode1;
                    var$8 = var$9.$elementData.data;
                    var$9 = var$8[$par4 & (var$8.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == $par4) {
                            l: {
                                var$10 = var$9.$key;
                                if ($rt_s(918) !== var$10) {
                                    if ($rt_s(918) === var$10)
                                        $par2 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        var$10 = var$10;
                                        $par2 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break l;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                    if (!(var$9 === null ? 0 : 1)) {
                        $par5EntityLivingBase = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            $par5EntityLivingBase.$name = $rt_s(918);
                        else
                            $par5EntityLivingBase.$name = $rt_s(3);
                        $par6ItemStack = new ju_HashMap;
                        $par2 = ju_HashMap_calculateCapacity(16);
                        $par6ItemStack.$elementCount = 0;
                        var$11 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                        var$8 = var$11.data;
                        $par6ItemStack.$elementData = var$11;
                        $par6ItemStack.$loadFactor = 0.75;
                        $par6ItemStack.$threshold = var$8.length * 0.75 | 0;
                        $par5EntityLivingBase.$tagMap = $par6ItemStack;
                    } else {
                        $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                        if ($rt_s(918) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(918).$hashCode1;
                            var$8 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$8[$par4 & (var$8.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    n: {
                                        var$9 = $par5EntityLivingBase.$key;
                                        if ($rt_s(918) !== var$9) {
                                            if ($rt_s(918) === var$9)
                                                $par2 = 1;
                                            else if (!(var$9 instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                var$9 = var$9;
                                                $par2 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break n;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0;
                    }
                    o: {
                        var$9 = $par5EntityLivingBase.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$8 = var$9.$elementData.data;
                    var$9 = var$8[$par4 & (var$8.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == $par4) {
                            p: {
                                var$10 = var$9.$key;
                                if ($rt_s(919) !== var$10) {
                                    if ($rt_s(919) === var$10)
                                        $par2 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        var$10 = var$10;
                                        $par2 = $rt_s(919).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break p;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                    if (var$9 === null ? 0 : 1) {
                        q: {
                            $par6ItemStack = $par5EntityLivingBase.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = $rt_s(919).$hashCode1;
                        var$8 = $par6ItemStack.$elementData.data;
                        $par6ItemStack = var$8[$par4 & (var$8.length - 1 | 0)];
                        while ($par6ItemStack !== null) {
                            if ($par6ItemStack.$origKeyHash == $par4) {
                                r: {
                                    var$9 = $par6ItemStack.$key;
                                    if ($rt_s(919) !== var$9) {
                                        if ($rt_s(919) === var$9)
                                            $par2 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            var$9 = var$9;
                                            $par2 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break r;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            $par6ItemStack = $par6ItemStack.$next3;
                        }
                        if (!($par6ItemStack === null ? 0 : 1))
                            $par1World = $rt_s(3);
                        else {
                            $par5EntityLivingBase = $par5EntityLivingBase.$tagMap;
                            if ($rt_s(919) === null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                                while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $par2 = 0;
                                        while (true) {
                                            if ($par2 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                            $par2 = $par2 + 1 | 0;
                                        }
                                    }
                                }
                                $par4 = $rt_s(919).$hashCode1;
                                var$8 = $par5EntityLivingBase.$elementData.data;
                                $par5EntityLivingBase = var$8[$par4 & (var$8.length - 1 | 0)];
                                while ($par5EntityLivingBase !== null) {
                                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                        t: {
                                            $par6ItemStack = $par5EntityLivingBase.$key;
                                            if ($rt_s(919) !== $par6ItemStack) {
                                                if ($rt_s(919) === $par6ItemStack)
                                                    $par2 = 1;
                                                else if (!($par6ItemStack instanceof jl_String))
                                                    $par2 = 0;
                                                else {
                                                    $par6ItemStack = $par6ItemStack;
                                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                                }
                                                if (!$par2) {
                                                    $par2 = 0;
                                                    break t;
                                                }
                                            }
                                            $par2 = 1;
                                        }
                                        if ($par2)
                                            break;
                                    }
                                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                                }
                            }
                            $par1World = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                        }
                    }
                }
            }
            $var7.$commandSenderName = $par1World;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, $var7, var$8, var$9, var$10, var$11, $ptr);
},
nms_BlockCommandBlock_quantityDropped = ($this, $par1Random) => {
    return 0;
},
nms_BlockBeacon = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockBeacon__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_glass);
    $this.$isBlockContainer = 1;
    $this.$blockHardness = 3.0;
    if ($this.$blockResistance < 15.0)
        $this.$blockResistance = 15.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabMisc;
},
nms_BlockBeacon__init_0 = var_0 => {
    let var_1 = new nms_BlockBeacon();
    nms_BlockBeacon__init_(var_1, var_0);
    return var_1;
},
nms_BlockBeacon_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityBeacon;
    nms_TileEntityBeacon_$callClinit();
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    $par1World.$levels = (-1);
    return $par1World;
},
nms_BlockBeacon_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        if ($var10 === null)
            return 1;
        $par4 = ($par5EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
        $par5EntityPlayer.$currentWindowId = $par4;
        var$11 = $par5EntityPlayer.$playerNetServerHandler;
        $par1World = new nms_Packet100OpenWindow;
        var$12 = $var10.$field_94048_i;
        var$12 = !(var$12 !== null && var$12.$nativeString.length > 0 ? 1 : 0) ? $rt_s(1455) : $var10.$field_94048_i;
        var$13 = $var10.$field_94048_i;
        $par6 = var$13 !== null && var$13.$nativeString.length > 0 ? 1 : 0;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1World.$windowId2 = $par4;
            $par1World.$inventoryType = 7;
            $par1World.$windowTitle = var$12;
            $par1World.$slotsCount0 = 1;
            $par1World.$useProvidedWindowTitle = $par6;
            if ($par1World instanceof nms_Packet3Chat) {
                var$12 = $par1World;
                $par3 = var$11.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break a;
                if ($par3 == 1 && !var$12.$isServer)
                    break a;
            }
            try {
                var$12 = var$11.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerBeacon__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
        continue main;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$12, $par1World);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerBeacon__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
    case 3:
        $par1World.$addCraftingToCrafters($par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, var$11, var$12, var$13, $ptr);
},
nms_BlockBeacon_isOpaqueCube = $this => {
    return 0;
},
nms_BlockBeacon_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockBeacon_getRenderType = $this => {
    return 34;
},
nms_BlockBeacon_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par6ItemStack.$stackTagCompound;
        if (var$7 === null)
            var$8 = 0;
        else {
            a: {
                var$7 = var$7.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$10 = var$7.$elementData.data;
            var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$9) {
                    b: {
                        var$11 = var$7.$key;
                        if ($rt_s(918) !== var$11) {
                            if ($rt_s(918) === var$11)
                                var$8 = 1;
                            else if (!(var$11 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$11 = var$11;
                                var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$7 = var$7.$next3;
            }
            if (!(var$7 === null ? 0 : 1))
                var$8 = 0;
            else {
                c: {
                    var$7 = $par6ItemStack.$stackTagCompound;
                    var$11 = var$7.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$10 = var$11.$elementData.data;
                var$11 = var$10[var$9 & (var$10.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$9) {
                        d: {
                            var$12 = var$11.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    var$8 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$12 = var$12;
                                    var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break d;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
                if (!(var$11 === null ? 0 : 1)) {
                    var$7 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$7.$name = $rt_s(918);
                    else
                        var$7.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$8 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$10 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                    var$13 = var$10.data;
                    $par5EntityLivingBase.$elementData = var$10;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$13.length * 0.75 | 0;
                    var$7.$tagMap = $par5EntityLivingBase;
                } else {
                    var$7 = var$7.$tagMap;
                    if ($rt_s(918) === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$10 = var$7.$elementData.data;
                        var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$9) {
                                f: {
                                    var$11 = var$7.$key;
                                    if ($rt_s(918) !== var$11) {
                                        if ($rt_s(918) === var$11)
                                            var$8 = 1;
                                        else if (!(var$11 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$11 = var$11;
                                            var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break f;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$7 = var$7 === null ? null : var$7.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$7.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                var$12 = var$10[var$14 & (var$10.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$14) {
                        h: {
                            $par5EntityLivingBase = var$12.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$8 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$8 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break h;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                var$8 = var$12 === null ? 0 : 1;
            }
        }
        if (!var$8)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        var$7 = $par1World;
        nms_Item_$callClinit();
        var$11 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par1World = $par6ItemStack.$stackTagCompound;
        if ($par1World !== null) {
            a: {
                $par1World = $par1World.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$10 = $par1World.$elementData.data;
            var$15 = var$10[$par3 & (var$10.length - 1 | 0)];
            while (var$15 !== null) {
                if (var$15.$origKeyHash == $par3) {
                    b: {
                        $par1World = var$15.$key;
                        if ($rt_s(918) !== $par1World) {
                            if ($rt_s(918) === $par1World)
                                $par2 = 1;
                            else if (!($par1World instanceof jl_String))
                                $par2 = 0;
                            else {
                                $par1World = $par1World;
                                $par2 = $rt_s(918).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break b;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                var$15 = var$15.$next3;
            }
            if (var$15 === null ? 0 : 1) {
                c: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    $par6ItemStack = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par2 = $rt_s(918).$hashCode1;
                var$10 = $par6ItemStack.$elementData.data;
                $par6ItemStack = var$10[$par2 & (var$10.length - 1 | 0)];
                while ($par6ItemStack !== null) {
                    if ($par6ItemStack.$origKeyHash == $par2) {
                        d: {
                            var$12 = $par6ItemStack.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    $par3 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $par3 = 0;
                                else {
                                    var$12 = var$12;
                                    $par3 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$par3) {
                                    $par3 = 0;
                                    break d;
                                }
                            }
                            $par3 = 1;
                        }
                        if ($par3)
                            break;
                    }
                    $par6ItemStack = $par6ItemStack.$next3;
                }
                if (!($par6ItemStack === null ? 0 : 1)) {
                    var$12 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$12.$name = $rt_s(918);
                    else
                        var$12.$name = $rt_s(3);
                    $par1World = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par1World.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$10 = var$13.data;
                    $par1World.$elementData = var$13;
                    $par1World.$loadFactor = 0.75;
                    $par1World.$threshold = var$10.length * 0.75 | 0;
                    var$12.$tagMap = $par1World;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par2 = $rt_s(918).$hashCode1;
                        var$10 = $par1World.$elementData.data;
                        $par1World = var$10[$par2 & (var$10.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par2) {
                                f: {
                                    $par6ItemStack = $par1World.$key;
                                    if ($rt_s(918) !== $par6ItemStack) {
                                        if ($rt_s(918) === $par6ItemStack)
                                            $par3 = 1;
                                        else if (!($par6ItemStack instanceof jl_String))
                                            $par3 = 0;
                                        else {
                                            $par6ItemStack = $par6ItemStack;
                                            $par3 = $rt_s(918).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                        }
                                        if (!$par3) {
                                            $par3 = 0;
                                            break f;
                                        }
                                    }
                                    $par3 = 1;
                                }
                                if ($par3)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    }
                    var$12 = $par1World === null ? null : $par1World.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$12.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        h: {
                            $par6ItemStack = $par5EntityLivingBase.$key;
                            if ($rt_s(919) !== $par6ItemStack) {
                                if ($rt_s(919) === $par6ItemStack)
                                    $par2 = 1;
                                else if (!($par6ItemStack instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par6ItemStack = $par6ItemStack;
                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break h;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    i: {
                        $par5EntityLivingBase = var$12.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$10 = $par5EntityLivingBase.$elementData.data;
                    $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                    while ($par5EntityLivingBase !== null) {
                        if ($par5EntityLivingBase.$origKeyHash == $par4) {
                            j: {
                                $par6ItemStack = $par5EntityLivingBase.$key;
                                if ($rt_s(919) !== $par6ItemStack) {
                                    if ($rt_s(919) === $par6ItemStack)
                                        $par2 = 1;
                                    else if (!($par6ItemStack instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par6ItemStack = $par6ItemStack;
                                        $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break j;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                    }
                    if (!($par5EntityLivingBase === null ? 0 : 1))
                        var$11 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$12.$tagMap;
                        if ($rt_s(919) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            k: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break k;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(919).$hashCode1;
                            var$10 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    l: {
                                        $par6ItemStack = $par5EntityLivingBase.$key;
                                        if ($rt_s(919) !== $par6ItemStack) {
                                            if ($rt_s(919) === $par6ItemStack)
                                                $par2 = 1;
                                            else if (!($par6ItemStack instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par6ItemStack = $par6ItemStack;
                                                $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break l;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        var$11 = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                    }
                }
            }
        }
        var$7.$field_94048_i = var$11;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_BlockWall = $rt_classWithoutFields(nms_Block),
nms_BlockWall_types = null;
let nms_BlockWall__init_ = ($this, $par1, $par2Block) => {
    let var$3, var$4;
    nms_Block__init_($this, $par1, $par2Block.$blockMaterial);
    var$3 = $par2Block.$blockHardness;
    $this.$blockHardness = var$3;
    var$4 = $this.$blockResistance;
    var$3 = var$3 * 5.0;
    if (var$4 < var$3)
        $this.$blockResistance = var$3;
    $this.$blockResistance = $par2Block.$blockResistance / 3.0 * 3.0;
    $this.$stepSound = $par2Block.$stepSound;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockWall__init_0 = (var_0, var_1) => {
    let var_2 = new nms_BlockWall();
    nms_BlockWall__init_(var_2, var_0, var_1);
    return var_2;
},
nms_BlockWall_getRenderType = $this => {
    return 32;
},
nms_BlockWall_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockWall_getBlocksMovement = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    return 0;
},
nms_BlockWall_isOpaqueCube = $this => {
    return 0;
},
nms_BlockWall_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var6, $var5, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockWall_canConnectWallTo($this, $par1IBlockAccess, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockWall_canConnectWallTo($this, $par1IBlockAccess, $par2, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $par2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockWall_canConnectWallTo($this, $par1IBlockAccess, $var7, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $par2 = $par2 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_BlockWall_canConnectWallTo($this, $par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = 0.25;
        $var10 = 0.75;
        $var11 = 0.25;
        $var12 = 0.75;
        $var13 = 1.0;
        if ($var5)
            $var11 = 0.0;
        if ($var6)
            $var12 = 1.0;
        if ($var7)
            $var9 = 0.0;
        if ($var8)
            $var10 = 1.0;
        if ($var5 && $var6 && !$var7 && !$var8) {
            $var13 = 0.8125;
            $var9 = 0.3125;
            $var10 = 0.6875;
        } else if (!$var5 && !$var6 && $var7 && $var8) {
            $var13 = 0.8125;
            $var11 = 0.3125;
            $var12 = 0.6875;
        }
        $this.$minX1 = $var9;
        $this.$minY1 = 0.0;
        $this.$minZ1 = $var11;
        $this.$maxX1 = $var10;
        $this.$maxY0 = $var13;
        $this.$maxZ1 = $var12;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var6, $var5, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $ptr);
},
nms_BlockWall_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockWall_setBlockBoundsBasedOnState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$maxY0 = 1.5;
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$5 = $par2;
        var$6 = var$5 + $this.$minX1;
        var$7 = $par3;
        var$8 = var$7 + $this.$minY1;
        var$9 = $par4;
        var$10 = var$9 + $this.$minZ1;
        var$11 = var$5 + $this.$maxX1;
        var$5 = var$7 + $this.$maxY0;
        var$7 = var$9 + $this.$maxZ1;
        $par2 = $par1World.$nextPoolIndex;
        var$12 = $par1World.$listAABB;
        $par4 = var$12.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$6;
            var$13.$minY0 = var$8;
            var$13.$minZ0 = var$10;
            var$13.$maxX0 = var$11;
            var$13.$maxY = var$5;
            var$13.$maxZ0 = var$7;
            ju_ArrayList_ensureCapacity(var$12, $par4 + 1 | 0);
            var$14 = var$12.$array.data;
            $par3 = var$12.$size0;
            var$12.$size0 = $par3 + 1 | 0;
            var$14[$par3] = var$13;
            var$12.$modCount = var$12.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            var$13 = var$12.$array.data[$par2];
            var$13.$minX0 = var$6;
            var$13.$minY0 = var$8;
            var$13.$minZ0 = var$10;
            var$13.$maxX0 = var$11;
            var$13.$maxY = var$5;
            var$13.$maxZ0 = var$7;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockWall_canConnectWallTo = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 != $this.$blockID) {
            nms_Block_$callClinit();
            if ($var5 != nms_Block_fenceGate.$blockID) {
                a: {
                    $var6 = nms_Block_blocksList.data[$var5];
                    if ($var6 !== null) {
                        $par1IBlockAccess = $var6.$blockMaterial;
                        if ((!$par1IBlockAccess.$isTranslucent ? $par1IBlockAccess.$blocksMovement() : 0) && $var6.$renderAsNormalBlock()) {
                            $par1IBlockAccess = $var6.$blockMaterial;
                            nms_Material_$callClinit();
                            if ($par1IBlockAccess === nms_Material_pumpkin) {
                                $par2 = 0;
                                break a;
                            }
                            $par2 = 1;
                            break a;
                        }
                    }
                    $par2 = 0;
                }
                return $par2;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $var6, $ptr);
},
nms_BlockWall_damageDropped = ($this, $par1) => {
    return $par1;
},
nms_BlockWall__clinit_ = () => {
    nms_BlockWall_types = $rt_wrapArray(jl_String, [$rt_s(84), $rt_s(85)]);
},
nms_BlockFlowerPot = $rt_classWithoutFields(nms_Block),
nms_BlockFlowerPot__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$minX1 = 0.3125;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.3125;
    $this.$maxX1 = 0.6875;
    $this.$maxY0 = 0.375;
    $this.$maxZ1 = 0.6875;
},
nms_BlockFlowerPot__init_ = var_0 => {
    let var_1 = new nms_BlockFlowerPot();
    nms_BlockFlowerPot__init_0(var_1, var_0);
    return var_1;
},
nms_BlockFlowerPot_isOpaqueCube = $this => {
    return 0;
},
nms_BlockFlowerPot_getRenderType = $this => {
    return 33;
},
nms_BlockFlowerPot_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockFlowerPot_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $par5EntityPlayer.$inventory0;
        $var11 = $var10.$currentItem;
        $var10 = $var11 < 9 && $var11 >= 0 ? $var10.$mainInventory.data[$var11] : null;
        if ($var10 === null)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $tmp;
        if ($par6)
            return 0;
        $var11 = nms_BlockFlowerPot_getMetaForPlant($var10);
        if ($var11 <= 0)
            return 0;
        $par6 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var11, $par6);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par5EntityPlayer.$capabilities.$isCreativeMode) {
            $par2 = $var10.$stackSize - 1 | 0;
            $var10.$stackSize = $par2;
            if ($par2 <= 0) {
                $par1World = $par5EntityPlayer.$inventory0;
                $par2 = $par1World.$currentItem;
                $par5EntityPlayer = null;
                var$12 = $par1World.$mainInventory;
                $par3 = var$12.data.length;
                if ($par2 >= $par3) {
                    $par2 = $par2 - $par3 | 0;
                    var$12 = $par1World.$armorInventory;
                }
                var$12.data[$par2] = $par5EntityPlayer;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $var11, var$12, $ptr);
},
nms_BlockFlowerPot_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable) {
                    var$5 = 0;
                    break a;
                }
            }
            var$5 = 1;
        }
        if (!var$5)
            return 0;
        $par3 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$7 = var$6[var$5];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !nms_World_isBlockTopFacingSurfaceSolid($par1World, var$7, $par2) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_BlockFlowerPot_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$8 = var$7[$par5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, var$8, $par5))
            return;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$9 = 1.0;
        $ptr = 4;
    case 4:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$9, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 > 0) {
            var$8 = nms_BlockFlowerPot_getPlantForMeta($par5);
            if (var$8 !== null) {
                $ptr = 6;
                continue main;
            }
        }
        var$10 = 0;
        $par5 = 0;
        var$6 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$10, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = 0;
        $par5 = 0;
        var$6 = 3;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_BlockFlowerPot_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 > 0) {
            $var8 = nms_BlockFlowerPot_getPlantForMeta($par5);
            if ($var8 !== null) {
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $var8, $ptr);
},
nms_BlockFlowerPot_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_flowerPot.$itemID0;
},
nms_BlockFlowerPot_getPlantForMeta = $par0 => {
    let var$2, var$3;
    switch ($par0) {
        case 1:
            var$2 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$3 = nms_Block_plantRed;
            nms_ItemStack_$callClinit();
            var$2.$itemID = var$3.$blockID;
            var$2.$stackSize = 1;
            var$2.$itemDamage = 0;
            return var$2;
        case 2:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_plantYellow;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            return var$3;
        case 3:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_sapling;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            return var$3;
        case 4:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_sapling;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 1;
            return var$3;
        case 5:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_sapling;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 2;
            return var$3;
        case 6:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_sapling;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 3;
            return var$3;
        case 7:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_mushroomRed;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            return var$3;
        case 8:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_mushroomBrown;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            return var$3;
        case 9:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_cactus;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            return var$3;
        case 10:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_deadBush;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            return var$3;
        case 11:
            var$3 = new nms_ItemStack;
            nms_Block_$callClinit();
            var$2 = nms_Block_tallGrass;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$2.$blockID;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 2;
            return var$3;
        default:
    }
    return null;
},
nms_BlockFlowerPot_getMetaForPlant = $par0ItemStack => {
    let $var1;
    nms_Item_$callClinit();
    $var1 = nms_Item_itemsList.data[$par0ItemStack.$itemID].$itemID0;
    nms_Block_$callClinit();
    if ($var1 == nms_Block_plantRed.$blockID)
        return 1;
    if ($var1 == nms_Block_plantYellow.$blockID)
        return 2;
    if ($var1 == nms_Block_cactus.$blockID)
        return 9;
    if ($var1 == nms_Block_mushroomBrown.$blockID)
        return 8;
    if ($var1 == nms_Block_mushroomRed.$blockID)
        return 7;
    if ($var1 == nms_Block_deadBush.$blockID)
        return 10;
    a: {
        if ($var1 == nms_Block_sapling.$blockID) {
            switch ($par0ItemStack.$itemDamage) {
                case 0:
                    break;
                case 1:
                    return 4;
                case 2:
                    return 5;
                case 3:
                    return 6;
                default:
                    break a;
            }
            return 3;
        }
    }
    b: {
        if ($var1 == nms_Block_tallGrass.$blockID)
            switch ($par0ItemStack.$itemDamage) {
                case 2:
                    return 11;
                default:
                    break b;
            }
    }
    return 0;
},
nms_BlockCarrot = $rt_classWithoutFields(nms_BlockCrops),
nms_BlockCarrot__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.25;
    $this.$maxZ1 = 1.0;
    $this.$displayOnCreativeTab = null;
    $this.$blockHardness = 0.0;
    if ($this.$blockResistance < 0.0)
        $this.$blockResistance = 0.0;
    $this.$stepSound = nms_Block_soundGrassFootstep;
    $this.$enableStats = 0;
},
nms_BlockCarrot__init_0 = var_0 => {
    let var_1 = new nms_BlockCarrot();
    nms_BlockCarrot__init_(var_1, var_0);
    return var_1;
},
nms_BlockCarrot_getSeedItem = $this => {
    nms_Item_$callClinit();
    return nms_Item_carrot.$itemID0;
},
nms_BlockCarrot_getCropItem = $this => {
    nms_Item_$callClinit();
    return nms_Item_carrot.$itemID0;
},
nms_BlockPotato = $rt_classWithoutFields(nms_BlockCrops),
nms_BlockPotato__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_plants);
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.30000001192092896;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.30000001192092896;
    $this.$maxX1 = 0.699999988079071;
    $this.$maxY0 = 0.6000000238418579;
    $this.$maxZ1 = 0.699999988079071;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$needsRandomTick = 1;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.25;
    $this.$maxZ1 = 1.0;
    $this.$displayOnCreativeTab = null;
    $this.$blockHardness = 0.0;
    if ($this.$blockResistance < 0.0)
        $this.$blockResistance = 0.0;
    $this.$stepSound = nms_Block_soundGrassFootstep;
    $this.$enableStats = 0;
},
nms_BlockPotato__init_ = var_0 => {
    let var_1 = new nms_BlockPotato();
    nms_BlockPotato__init_0(var_1, var_0);
    return var_1;
},
nms_BlockPotato_getSeedItem = $this => {
    nms_Item_$callClinit();
    return nms_Item_potato.$itemID0;
},
nms_BlockPotato_getCropItem = $this => {
    nms_Item_$callClinit();
    return nms_Item_potato.$itemID0;
},
nms_BlockPotato_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockCrops_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par1World.$isRemote && $par5 >= 7) {
            var$8 = $par1World.$rand0;
            var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$9;
            var$10 = Long_lo(Long_shru(var$9, 17));
            while (true) {
                var$11 = var$10 % 50 | 0;
                if (((var$10 - var$11 | 0) + 49 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$8.$seed = var$9;
                var$10 = Long_lo(Long_shru(var$9, 17));
            }
            if (!var$11) {
                var$8 = new nms_ItemStack;
                nms_Item_$callClinit();
                var$12 = nms_Item_poisonousPotato;
                nms_ItemStack_$callClinit();
                var$8.$itemID = var$12.$itemID0;
                var$8.$stackSize = 1;
                var$8.$itemDamage = 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_BlockButtonWood = $rt_classWithoutFields(nms_BlockButton),
nms_BlockButtonWood__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$sensible = 1;
},
nms_BlockButtonWood__init_ = var_0 => {
    let var_1 = new nms_BlockButtonWood();
    nms_BlockButtonWood__init_0(var_1, var_0);
    return var_1;
},
nms_BlockSkull = $rt_classWithoutFields(nms_BlockContainer),
nms_BlockSkull__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$isBlockContainer = 1;
    $this.$minX1 = 0.25;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.25;
    $this.$maxX1 = 0.75;
    $this.$maxY0 = 0.5;
    $this.$maxZ1 = 0.75;
},
nms_BlockSkull__init_0 = var_0 => {
    let var_1 = new nms_BlockSkull();
    nms_BlockSkull__init_(var_1, var_0);
    return var_1;
},
nms_BlockSkull_getRenderType = $this => {
    return (-1);
},
nms_BlockSkull_isOpaqueCube = $this => {
    return 0;
},
nms_BlockSkull_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockSkull_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $par2 = $tmp;
            switch ($par2 & 7) {
                case 1:
                    break;
                case 2:
                    $this.$minX1 = 0.25;
                    $this.$minY1 = 0.25;
                    $this.$minZ1 = 0.5;
                    $this.$maxX1 = 0.75;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = 1.0;
                    break a;
                case 3:
                    $this.$minX1 = 0.25;
                    $this.$minY1 = 0.25;
                    $this.$minZ1 = 0.0;
                    $this.$maxX1 = 0.75;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = 0.5;
                    break a;
                case 4:
                    $this.$minX1 = 0.5;
                    $this.$minY1 = 0.25;
                    $this.$minZ1 = 0.25;
                    $this.$maxX1 = 1.0;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = 0.75;
                    break a;
                case 5:
                    $this.$minX1 = 0.0;
                    $this.$minY1 = 0.25;
                    $this.$minZ1 = 0.25;
                    $this.$maxX1 = 0.5;
                    $this.$maxY0 = 0.75;
                    $this.$maxZ1 = 0.75;
                    break a;
                default:
            }
            $this.$minX1 = 0.25;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.25;
            $this.$maxX1 = 0.75;
            $this.$maxY0 = 0.5;
            $this.$maxZ1 = 0.75;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockSkull_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockSkull_setBlockBoundsBasedOnState($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$5 = $par2;
        var$6 = var$5 + $this.$minX1;
        var$7 = $par3;
        var$8 = var$7 + $this.$minY1;
        var$9 = $par4;
        var$10 = var$9 + $this.$minZ1;
        var$5 = var$5 + $this.$maxX1;
        var$7 = var$7 + $this.$maxY0;
        var$9 = var$9 + $this.$maxZ1;
        $par2 = $par1World.$nextPoolIndex;
        var$11 = $par1World.$listAABB;
        $par4 = var$11.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            var$12 = new nms_AxisAlignedBB;
            var$12.$minX0 = var$6;
            var$12.$minY0 = var$8;
            var$12.$minZ0 = var$10;
            var$12.$maxX0 = var$5;
            var$12.$maxY = var$7;
            var$12.$maxZ0 = var$9;
            ju_ArrayList_ensureCapacity(var$11, $par4 + 1 | 0);
            var$13 = var$11.$array.data;
            $par3 = var$11.$size0;
            var$11.$size0 = $par3 + 1 | 0;
            var$13[$par3] = var$12;
            var$11.$modCount = var$11.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            var$12 = var$11.$array.data[$par2];
            var$12.$minX0 = var$6;
            var$12.$minY0 = var$8;
            var$12.$minZ0 = var$10;
            var$12.$maxX0 = var$5;
            var$12.$maxY = var$7;
            var$12.$maxZ0 = var$9;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1World);
            $rt_throw($par1World);
        }
        $par1World.$nextPoolIndex = $par1World.$nextPoolIndex + 1 | 0;
        return var$12;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockSkull_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 2.5;
        $var7 = var$7 | 0;
        if (var$7 < $var7)
            $var7 = $var7 - 1 | 0;
        $var7 = $var7 & 3;
        var$9 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, $var7, var$9, $ptr);
},
nms_BlockSkull_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntitySkull;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    $par1World.$extraType = $rt_s(3);
    return $par1World;
},
nms_BlockSkull_damageDropped = ($this, $par1) => {
    return $par1;
},
nms_BlockSkull_dropBlockAsItemWithChance = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7) => {
    return;
};
let nms_BlockSkull_onBlockHarvested = ($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6EntityPlayer = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par6EntityPlayer.$capabilities.$isCreativeMode)
            return;
        $par5 = $par5 | 8;
        var$7 = 4;
        $ptr = 1;
    case 1:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6EntityPlayer, var$7, $ptr);
},
nms_BlockSkull_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, var$9, $var8, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return;
        if ($par6 & 8) {
            $ptr = 1;
            continue main;
        }
        $var7 = new nms_ItemStack;
        nms_Item_$callClinit();
        $par5 = nms_Item_skull.$itemID0;
        $par6 = 1;
        $ptr = 2;
        continue main;
    case 1:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 !== null && var$8 instanceof nms_TileEntitySkull) {
            var$9 = var$8.$skullType;
            nms_ItemStack_$callClinit();
            $var7.$itemID = $par5;
            $var7.$stackSize = $par6;
            $var7.$itemDamage = var$9;
            if (var$9 < 0)
                $var7.$itemDamage = 0;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_ItemStack_$callClinit();
        $var7.$itemID = $par5;
        $var7.$stackSize = $par6;
        $var7.$itemDamage = var$9;
        if (var$9 < 0)
            $var7.$itemDamage = 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var8 = var$8;
        if ($var8.$skullType == 3) {
            var$8 = $var8.$extraType;
            if (var$8 !== null && var$8.$nativeString.length > 0) {
                var$8 = new nms_NBTTagCompound;
                var$8.$name = $rt_s(3);
                var$11 = new ju_HashMap;
                $par5 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$12 = $rt_createArray(ju_HashMap$HashEntry, $par5);
                var$13 = var$12.data;
                var$11.$elementData = var$12;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$13.length * 0.75 | 0;
                var$8.$tagMap = var$11;
                $var7.$stackTagCompound = var$8;
                $var8 = $var8.$extraType;
                var$14 = new nms_NBTTagString;
                var$14.$name = $rt_s(1346);
                var$14.$data1 = $var8;
                if ($var8 !== null)
                    ju_HashMap_putImpl(var$11, $rt_s(1346), var$14);
                else {
                    var$8 = new jl_IllegalArgumentException;
                    var$8.$suppressionEnabled = 1;
                    var$8.$writableStackTrace = 1;
                    var$8.$message = $rt_s(177);
                    $rt_throw(var$8);
                }
            }
        }
        $ptr = 5;
    case 5:
        nms_Block_dropBlockAsItem_do($this, $par1World, $par2, $par3, $par4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, var$8, var$9, $var8, var$11, var$12, var$13, var$14, $ptr);
},
nms_BlockSkull_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_skull.$itemID0;
},
nms_BlockSkull_makeWither = ($this, $par1World, $par2, $par3, $par4, $par5TileEntitySkull) => {
    let $var6, $var7, var$8, var$9, var$10, var$11, $var9, var$13, var$14, $var9_0, $var8, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $var8_0, var$25, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var8_0 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var8 = $thread.pop();$var9_0 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6
        = $thread.pop();$par5TileEntitySkull = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5TileEntitySkull.$skullType == 1 && $par3 >= 2 && $par1World.$difficultySetting > 0 && !$par1World.$isRemote) {
            nms_Block_$callClinit();
            $var6 = nms_Block_slowSand.$blockID;
            $var7 = (-2);
            var$8 = $par3 - 1 | 0;
            var$9 = $par3 - 2 | 0;
            if ($var7 <= 0) {
                var$10 = $par4 + $var7 | 0;
                $ptr = 1;
                continue main;
            }
            var$10 = (-2);
            if (var$10 <= 0) {
                var$11 = $par2 + var$10 | 0;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, var$8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            var$11 = var$10 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            $ptr = 4;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$11, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            var$13 = var$11 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, var$9, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            var$13 = var$10 + 2 | 0;
            $ptr = 6;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$13, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            $ptr = 7;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            var$14 = 1;
            $ptr = 8;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$13, var$9, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            var$14 = var$11 + 2 | 0;
            $ptr = 9;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $this.$blockID) {
            $ptr = 10;
            continue main;
        }
        if (0) {
            var$14 = 1;
            $ptr = 13;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, var$14, var$8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var6) {
            $var7 = 1;
            $ptr = 11;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 10:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par5TileEntitySkull = $tmp;
        if ($par5TileEntitySkull !== null && $par5TileEntitySkull instanceof nms_TileEntitySkull ? ($par5TileEntitySkull.$skullType != var$14 ? 0 : 1) : 0) {
            var$14 = 1;
            $ptr = 13;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $this.$blockID) {
            $ptr = 12;
            continue main;
        }
        if (0) {
            $var7 = 1;
            $ptr = 15;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 12:
        $tmp = nms_World_getBlockTileEntity($par1World, var$11, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5TileEntitySkull = $tmp;
        if ($par5TileEntitySkull !== null && $par5TileEntitySkull instanceof nms_TileEntitySkull ? ($par5TileEntitySkull.$skullType != $var7 ? 0 : 1) : 0) {
            $var7 = 1;
            $ptr = 15;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $this.$blockID) {
            $ptr = 14;
            continue main;
        }
        if (0) {
            var$14 = 1;
            $ptr = 17;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 14:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par5TileEntitySkull = $tmp;
        if ($par5TileEntitySkull !== null && $par5TileEntitySkull instanceof nms_TileEntitySkull ? ($par5TileEntitySkull.$skullType != var$14 ? 0 : 1) : 0) {
            var$14 = 1;
            $ptr = 17;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId($par1World, var$13, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $this.$blockID) {
            $ptr = 16;
            continue main;
        }
        if (0) {
            $var7 = 1;
            $ptr = 19;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 16:
        $tmp = nms_World_getBlockTileEntity($par1World, var$13, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5TileEntitySkull = $tmp;
        if ($par5TileEntitySkull !== null && $par5TileEntitySkull instanceof nms_TileEntitySkull ? ($par5TileEntitySkull.$skullType != $var7 ? 0 : 1) : 0) {
            $var7 = 1;
            $ptr = 19;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $this.$blockID) {
            $ptr = 18;
            continue main;
        }
        if (0) {
            $par4 = 8;
            $var9 = 2;
            $ptr = 21;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 18:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $par5TileEntitySkull = $tmp;
        if ($par5TileEntitySkull !== null && $par5TileEntitySkull instanceof nms_TileEntitySkull ? ($par5TileEntitySkull.$skullType != var$14 ? 0 : 1) : 0) {
            $par4 = 8;
            $var9 = 2;
            $ptr = 21;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 <= 0) {
            var$10 = $par4 + $var7 | 0;
            $ptr = 1;
            continue main;
        }
        var$10 = (-2);
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 19:
        $tmp = nms_World_getBlockId($par1World, var$14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $this.$blockID) {
            $ptr = 20;
            continue main;
        }
        if (0) {
            $par2 = 8;
            $var9 = 2;
            $ptr = 32;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 20:
        $tmp = nms_World_getBlockTileEntity($par1World, var$14, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5TileEntitySkull = $tmp;
        if ($par5TileEntitySkull !== null && $par5TileEntitySkull instanceof nms_TileEntitySkull ? ($par5TileEntitySkull.$skullType != $var7 ? 0 : 1) : 0) {
            $par2 = 8;
            $var9 = 2;
            $ptr = 32;
            continue main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 > 0)
            return;
        var$11 = $par2 + var$10 | 0;
        $ptr = 3;
        continue main;
    case 21:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, var$10, $par4, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 8;
        $var9 = 2;
        $ptr = 22;
    case 22:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, var$11, $par4, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 8;
        $var9 = 2;
        $ptr = 23;
    case 23:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, var$13, $par4, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 24;
    case 24:
        nms_World_setBlock($par1World, $par2, $par3, var$10, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 25;
    case 25:
        nms_World_setBlock($par1World, $par2, $par3, var$11, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 26;
    case 26:
        nms_World_setBlock($par1World, $par2, $par3, var$13, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 27;
    case 27:
        nms_World_setBlock($par1World, $par2, var$8, var$10, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 28;
    case 28:
        nms_World_setBlock($par1World, $par2, var$8, var$11, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 29;
    case 29:
        nms_World_setBlock($par1World, $par2, var$8, var$13, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 30;
    case 30:
        nms_World_setBlock($par1World, $par2, var$9, var$11, $par4, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par1World.$isRemote) {
            $var8 = new nms_EntityWither;
            $ptr = 31;
            continue main;
        }
        $var9_0 = 0;
        a: while (true) {
            if ($var9_0 >= 120) {
                $par4 = 0;
                $ptr = 43;
                continue main;
            }
            $par5TileEntitySkull = $par1World.$rand0;
            var$17 = Long_and(Long_add(Long_mul($par5TileEntitySkull.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$17;
            var$18 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            $par5TileEntitySkull.$seed = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par4 = 0;
            while (true) {
                $var9 = $rt_compare($par4, $par1World.$worldAccesses.$size0);
                if ($var9 >= 0)
                    break;
                if ($par4 < 0)
                    break a;
                if ($var9 >= 0)
                    break a;
                $par4 = $par4 + 1 | 0;
            }
            $var9_0 = $var9_0 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 31:
        nms_EntityWither__init_($var8, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $par2 + 0.5;
        var$20 = $par3 - 1.45;
        var$21 = var$10 + 1.5;
        $var8.$posX = var$19;
        $var8.$prevPosX = var$19;
        $var8.$lastTickPosX = var$19;
        var$22 = var$20 + $var8.$yOffset;
        $var8.$posY = var$22;
        $var8.$prevPosY = var$22;
        $var8.$lastTickPosY = var$22;
        $var8.$posZ = var$21;
        $var8.$prevPosZ = var$21;
        $var8.$lastTickPosZ = var$21;
        $var8.$rotationYaw = 90.0;
        $var8.$rotationPitch = 0.0;
        nms_Entity_setPosition($var8, var$19, var$22, var$21);
        $var8.$renderYawOffset = 90.0;
        $par5TileEntitySkull = $var8.$dataWatcher;
        var$23 = new jl_Integer;
        var$23.$value = 220;
        $var8_0 = $par5TileEntitySkull.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$25 = jl_Integer_integerCache.data[148];
        if (var$25 === null) {
            $var8_0 = $var8_0.$elementData.data[0];
            while ($var8_0 !== null && $var8_0.$key !== null) {
                $var8_0 = $var8_0.$next3;
            }
        } else {
            $var9_0 = var$25.$value;
            var$26 = $var8_0.$elementData.data;
            $var8_0 = var$26[$var9_0 & (var$26.length - 1 | 0)];
            while ($var8_0 !== null) {
                if ($var8_0.$origKeyHash == $var9_0) {
                    var$27 = $var8_0.$key;
                    if (var$25 !== var$27 && !jl_Integer_equals(var$25, var$27) ? 0 : 1)
                        break;
                }
                $var8_0 = $var8_0.$next3;
            }
        }
        var$27 = $var8_0 === null ? null : $var8_0.$value0;
        $var8_0 = var$27.$watchedObject;
        if (!(var$23 === $var8_0 ? 1 : $var8_0 instanceof jl_Integer && $var8_0.$value == var$23.$value ? 1 : 0)) {
            var$27.$watchedObject = var$23;
            var$27.$watched = 1;
            $par5TileEntitySkull.$objectChanged = 1;
        }
        $par5TileEntitySkull = nms_EntityLivingBase_getEntityAttribute($var8, nms_SharedMonsterAttributes_maxHealth);
        if ($par5TileEntitySkull.$field_111133_g) {
            $par5TileEntitySkull.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par5TileEntitySkull);
            $par5TileEntitySkull.$field_111133_g = 0;
        }
        nms_EntityLivingBase_setHealth($var8, $par5TileEntitySkull.$field_111139_h / 3.0);
        $ptr = 57;
        continue main;
    case 32:
        nms_World_setBlockMetadataWithNotify($par1World, var$11, $par3, $par4, $par2, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 8;
        $var9 = 2;
        $ptr = 33;
    case 33:
        nms_World_setBlockMetadataWithNotify($par1World, var$13, $par3, $par4, $par2, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 8;
        $var9 = 2;
        $ptr = 34;
    case 34:
        nms_World_setBlockMetadataWithNotify($par1World, var$14, $par3, $par4, $par2, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 0;
        $var9_0 = 0;
        $par2 = 2;
        $ptr = 35;
    case 35:
        nms_World_setBlock($par1World, var$11, $par3, $par4, $var9, $var9_0, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 36;
    case 36:
        nms_World_setBlock($par1World, var$13, $par3, $par4, $par2, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 37;
    case 37:
        nms_World_setBlock($par1World, var$14, $par3, $par4, $par2, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 38;
    case 38:
        nms_World_setBlock($par1World, var$11, var$8, $par4, $par2, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 39;
    case 39:
        nms_World_setBlock($par1World, var$13, var$8, $par4, $par2, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 40;
    case 40:
        nms_World_setBlock($par1World, var$14, var$8, $par4, $par2, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $var9 = 0;
        $var9_0 = 2;
        $ptr = 41;
    case 41:
        nms_World_setBlock($par1World, var$13, var$9, $par4, $par2, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par1World.$isRemote) {
            $var8_0 = new nms_EntityWither;
            $ptr = 42;
            continue main;
        }
        $var9 = 0;
        a: while (true) {
            if ($var9 >= 120) {
                $par2 = 0;
                $ptr = 50;
                continue main;
            }
            $par5TileEntitySkull = $par1World.$rand0;
            var$17 = Long_and(Long_add(Long_mul($par5TileEntitySkull.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$17;
            var$18 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            $par5TileEntitySkull.$seed = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2 = 0;
            while (true) {
                $var9_0 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                if ($var9_0 >= 0)
                    break;
                if ($par2 < 0)
                    break a;
                if ($var9_0 >= 0)
                    break a;
                $par2 = $par2 + 1 | 0;
            }
            $var9 = $var9 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 42:
        nms_EntityWither__init_($var8_0, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        var$22 = var$11 + 1.5;
        var$19 = $par3 - 1.45;
        var$20 = $par4 + 0.5;
        $var8_0.$posX = var$22;
        $var8_0.$prevPosX = var$22;
        $var8_0.$lastTickPosX = var$22;
        var$19 = var$19 + $var8_0.$yOffset;
        $var8_0.$posY = var$19;
        $var8_0.$prevPosY = var$19;
        $var8_0.$lastTickPosY = var$19;
        $var8_0.$posZ = var$20;
        $var8_0.$prevPosZ = var$20;
        $var8_0.$lastTickPosZ = var$20;
        $var8_0.$rotationYaw = 0.0;
        $var8_0.$rotationPitch = 0.0;
        nms_Entity_setPosition($var8_0, var$22, var$19, var$20);
        $par5TileEntitySkull = $var8_0.$dataWatcher;
        $var8 = new jl_Integer;
        $var8.$value = 220;
        var$27 = $par5TileEntitySkull.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$23 = jl_Integer_integerCache.data[148];
        if (var$23 === null) {
            var$27 = var$27.$elementData.data[0];
            while (var$27 !== null && var$27.$key !== null) {
                var$27 = var$27.$next3;
            }
        } else {
            $var9_0 = var$23.$value;
            var$26 = var$27.$elementData.data;
            var$27 = var$26[$var9_0 & (var$26.length - 1 | 0)];
            while (var$27 !== null) {
                if (var$27.$origKeyHash == $var9_0) {
                    var$25 = var$27.$key;
                    if (var$23 !== var$25 && !jl_Integer_equals(var$23, var$25) ? 0 : 1)
                        break;
                }
                var$27 = var$27.$next3;
            }
        }
        var$25 = var$27 === null ? null : var$27.$value0;
        var$27 = var$25.$watchedObject;
        if (!($var8 === var$27 ? 1 : var$27 instanceof jl_Integer && var$27.$value == $var8.$value ? 1 : 0)) {
            var$25.$watchedObject = $var8;
            var$25.$watched = 1;
            $par5TileEntitySkull.$objectChanged = 1;
        }
        $par5TileEntitySkull = nms_EntityLivingBase_getEntityAttribute($var8_0, nms_SharedMonsterAttributes_maxHealth);
        if ($par5TileEntitySkull.$field_111133_g) {
            $par5TileEntitySkull.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par5TileEntitySkull);
            $par5TileEntitySkull.$field_111133_g = 0;
        }
        nms_EntityLivingBase_setHealth($var8_0, $par5TileEntitySkull.$field_111139_h / 3.0);
        $ptr = 58;
        continue main;
    case 43:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $ptr = 44;
    case 44:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$11, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = 0;
        $ptr = 45;
    case 45:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, $par3, var$13, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 46;
    case 46:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$8, var$10, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 47;
    case 47:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$8, var$11, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 48;
    case 48:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$8, var$13, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = 0;
        $ptr = 49;
    case 49:
        nms_World_notifyBlocksOfNeighborChange($par1World, $par2, var$9, var$11, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 50:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$11, $par3, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $ptr = 51;
    case 51:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$13, $par3, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $ptr = 52;
    case 52:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$14, $par3, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $ptr = 53;
    case 53:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$11, var$8, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $ptr = 54;
    case 54:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$13, var$8, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $ptr = 55;
    case 55:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$14, var$8, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0;
        $ptr = 56;
    case 56:
        nms_World_notifyBlocksOfNeighborChange($par1World, var$13, var$9, $par4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 57:
        nms_World_spawnEntityInWorld($par1World, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var9_0 = 0;
        b: while (true) {
            if ($var9_0 >= 120) {
                $par4 = 0;
                $ptr = 43;
                continue main;
            }
            $par5TileEntitySkull = $par1World.$rand0;
            var$17 = Long_and(Long_add(Long_mul($par5TileEntitySkull.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$17;
            var$18 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            $par5TileEntitySkull.$seed = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par4 = 0;
            while (true) {
                $var9 = $rt_compare($par4, $par1World.$worldAccesses.$size0);
                if ($var9 >= 0)
                    break;
                if ($par4 < 0)
                    break b;
                if ($var9 >= 0)
                    break b;
                $par4 = $par4 + 1 | 0;
            }
            $var9_0 = $var9_0 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 58:
        nms_World_spawnEntityInWorld($par1World, $var8_0);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 0;
        b: while (true) {
            if ($var9 >= 120) {
                $par2 = 0;
                $ptr = 50;
                continue main;
            }
            $par5TileEntitySkull = $par1World.$rand0;
            var$17 = Long_and(Long_add(Long_mul($par5TileEntitySkull.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$17;
            var$18 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par5TileEntitySkull.$seed = var$18;
            $par5TileEntitySkull.$seed = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2 = 0;
            while (true) {
                $var9_0 = $rt_compare($par2, $par1World.$worldAccesses.$size0);
                if ($var9_0 >= 0)
                    break;
                if ($par2 < 0)
                    break b;
                if ($var9_0 >= 0)
                    break b;
                $par2 = $par2 + 1 | 0;
            }
            $var9 = $var9 + 1 | 0;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5TileEntitySkull, $var6, $var7, var$8, var$9, var$10, var$11, $var9, var$13, var$14, $var9_0, $var8, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $var8_0, var$25, var$26, var$27, $ptr);
},
nms_BlockAnvil = $rt_classWithoutFields(nms_BlockSand),
nms_BlockAnvil_statuses = null,
nms_BlockAnvil_anvilIconNames = null,
nms_BlockAnvil__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_anvil);
    nms_Block_lightOpacity.data[$this.$blockID] = 0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
},
nms_BlockAnvil__init_0 = var_0 => {
    let var_1 = new nms_BlockAnvil();
    nms_BlockAnvil__init_(var_1, var_0);
    return var_1;
},
nms_BlockAnvil_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockAnvil_isOpaqueCube = $this => {
    return 0;
},
nms_BlockAnvil_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, var$8, $var7, $var8, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par5EntityLivingBase.$rotationYaw * 4.0 / 360.0 + 0.5;
        var$8 = var$7 | 0;
        if (var$7 < var$8)
            var$8 = var$8 - 1 | 0;
        $var7 = var$8 & 3;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var8 = var$8 >> 2;
        $var7 = ($var7 + 1 | 0) % 4 | 0;
        if (!$var7) {
            var$8 = 2 | $var8 << 2;
            var$11 = 2;
            $ptr = 2;
            continue main;
        }
        if ($var7 == 1) {
            var$8 = 3 | $var8 << 2;
            var$11 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 2) {
            var$8 = 0 | $var8 << 2;
            var$11 = 2;
            $ptr = 4;
            continue main;
        }
        if ($var7 != 3)
            return;
        $var7 = 1 | $var8 << 2;
        var$8 = 2;
        $ptr = 5;
        continue main;
    case 2:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 1) {
            var$8 = 3 | $var8 << 2;
            var$11 = 2;
            $ptr = 3;
            continue main;
        }
        if ($var7 == 2) {
            var$8 = 0 | $var8 << 2;
            var$11 = 2;
            $ptr = 4;
            continue main;
        }
        if ($var7 != 3)
            return;
        $var7 = 1 | $var8 << 2;
        var$8 = 2;
        $ptr = 5;
        continue main;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 == 2) {
            var$8 = 0 | $var8 << 2;
            var$11 = 2;
            $ptr = 4;
            continue main;
        }
        if ($var7 != 3)
            return;
        $var7 = 1 | $var8 << 2;
        var$8 = 2;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 != 3)
            return;
        $var7 = 1 | $var8 << 2;
        var$8 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, var$8, $var7, $var8, var$11, $ptr);
},
nms_BlockAnvil_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        a: {
            var$10 = ($par5EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
            $par5EntityPlayer.$currentWindowId = var$10;
            var$11 = $par5EntityPlayer.$playerNetServerHandler;
            $par1World = new nms_Packet100OpenWindow;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1World.$windowId2 = var$10;
            $par1World.$inventoryType = 8;
            $par1World.$windowTitle = $rt_s(1456);
            $par1World.$slotsCount0 = 9;
            $par1World.$useProvidedWindowTitle = 1;
            if ($par1World instanceof nms_Packet3Chat) {
                var$12 = $par1World;
                var$13 = var$11.$playerEntity.$chatVisibility;
                if (var$13 == 2)
                    break a;
                if (var$13 == 1 && !var$12.$isServer)
                    break a;
            }
            try {
                var$12 = var$11.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerRepair__init_($par5EntityPlayer.$inventory0, $par5EntityPlayer.$worldObj, $par2, $par3, $par4, $par5EntityPlayer);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$12, $par1World);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerRepair__init_($par5EntityPlayer.$inventory0, $par5EntityPlayer.$worldObj, $par2, $par3, $par4, $par5EntityPlayer);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 2;
    case 2:
        $par1World.$addCraftingToCrafters($par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BlockAnvil_getRenderType = $this => {
    return 35;
},
nms_BlockAnvil_damageDropped = ($this, $par1) => {
    return $par1 >> 2;
},
nms_BlockAnvil_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $var5 = $par2 & 3;
        if ($var5 != 3 && $var5 != 1) {
            $this.$minX1 = 0.125;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.0;
            $this.$maxX1 = 0.875;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 1.0;
        } else {
            $this.$minX1 = 0.0;
            $this.$minY1 = 0.0;
            $this.$minZ1 = 0.125;
            $this.$maxX1 = 1.0;
            $this.$maxY0 = 1.0;
            $this.$maxZ1 = 0.875;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $var5, $ptr);
},
nms_BlockAnvil_onStartFalling = ($this, $par1EntityFallingSand) => {
    $par1EntityFallingSand.$isAnvil = 1;
},
nms_BlockAnvil_onFinishFalling = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5 = 1022;
        var$6 = 0;
        var$7 = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity($par1World, var$7, $par5, $par2, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, $ptr);
},
nms_BlockAnvil__clinit_ = () => {
    nms_BlockAnvil_statuses = $rt_wrapArray(jl_String, [$rt_s(1457), $rt_s(1458), $rt_s(1459)]);
    nms_BlockAnvil_anvilIconNames = $rt_wrapArray(jl_String, [$rt_s(1460), $rt_s(1461), $rt_s(1462)]);
};
function nms_BlockPressurePlateWeighted() {
    nms_BlockBasePressurePlate.call(this);
    this.$maxItemsWeighted = 0;
}
let nms_BlockPressurePlateWeighted__init_0 = ($this, $par1, $par2Str, $par3Material, $par4) => {
    nms_Block__init_($this, $par1, $par3Material);
    $this.$pressurePlateIconName = $par2Str;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$needsRandomTick = 1;
    nms_BlockBasePressurePlate_func_94353_c_($this, 15);
    $this.$maxItemsWeighted = $par4;
},
nms_BlockPressurePlateWeighted__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_BlockPressurePlateWeighted();
    nms_BlockPressurePlateWeighted__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_BlockPressurePlateWeighted_getPlateState = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var7, var$7, var$8, $var6$index, $var6$index_0, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var6$index_0 = $thread.pop();$var6$index = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        $var7 = $rt_cls(nms_EntityItem);
        var$7 = nms_BlockBasePressurePlate_getSensitiveAABB($this, $par2, $par3, $par4);
        var$8 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($par1World, $var7, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $var6$index = 0;
        $par3 = var$7.$modCount;
        $par4 = var$7.$size();
        a: {
            while (true) {
                if (!($var6$index >= $par4 ? 0 : 1))
                    break a;
                if ($par3 < var$7.$modCount)
                    break;
                $var6$index_0 = $var6$index + 1 | 0;
                $var5 = $var5 + (nms_EntityItem_getEntityItem(var$7.$get($var6$index))).$stackSize | 0;
                if ($var5 >= $this.$maxItemsWeighted)
                    break a;
                $var6$index = $var6$index_0;
            }
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($var5 <= 0)
            return 0;
        $par2 = $this.$maxItemsWeighted;
        if ($par2 < $var5)
            $var5 = $par2;
        $var8 = $var5 / $par2 * 15.0;
        $par2 = $var8 | 0;
        if ($var8 > $par2)
            $par2 = $par2 + 1 | 0;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var7, var$7, var$8, $var6$index, $var6$index_0, $var8, $ptr);
},
nms_BlockPressurePlateWeighted_getPowerSupply = ($this, $par1) => {
    return $par1;
},
nms_BlockPressurePlateWeighted_getMetaFromWeight = ($this, $par1) => {
    return $par1;
},
nms_BlockPressurePlateWeighted_tickRate = ($this, $par1World) => {
    return 10;
},
nms_BlockComparator = $rt_classWithoutFields(nms_BlockRedstoneLogic),
nms_BlockComparator__init_0 = ($this, $par1, $par2) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_circuits);
    $this.$isRepeaterPowered = $par2;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.125;
    $this.$maxZ1 = 1.0;
    $this.$isBlockContainer = 1;
},
nms_BlockComparator__init_ = (var_0, var_1) => {
    let var_2 = new nms_BlockComparator();
    nms_BlockComparator__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_BlockComparator_idDropped = ($this, $par1, $par2Random, $par3) => {
    nms_Item_$callClinit();
    return nms_Item_comparator.$itemID0;
},
nms_BlockComparator_func_94481_j_ = ($this, $par1) => {
    return 2;
},
nms_BlockComparator_func_94485_e = $this => {
    nms_Block_$callClinit();
    return nms_Block_redstoneComparatorActive;
},
nms_BlockComparator_func_94484_i = $this => {
    nms_Block_$callClinit();
    return nms_Block_redstoneComparatorIdle;
},
nms_BlockComparator_getRenderType = $this => {
    return 37;
},
nms_BlockComparator_func_96470_c = ($this, $par1) => {
    return !$this.$isRepeaterPowered && !($par1 & 8) ? 0 : 1;
},
nms_BlockComparator_func_94480_d = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1IBlockAccess = $tmp;
        return $par1IBlockAccess.$outputSignal;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockComparator_isGettingInput = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 >= 15)
            return 1;
        if (!$var6)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_BlockRedstoneLogic_func_94482_f($this, $par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        return !$var7 ? 1 : $var6 < $var7 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockComparator_getInputStrength = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $var9, $var10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_BlockRedstoneLogic_getInputStrength($this, $par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = $par5 & 3;
        $var8 = $par2 + nms_Direction_offsetX.data[$var7] | 0;
        $var9 = $par4 + nms_Direction_offsetZ.data[$var7] | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, $par3, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var10].$hasComparatorInputOverride()) {
                var$11 = nms_Block_blocksList.data[$var10];
                $par2 = nms_Direction_rotateOpposite.data[$var7];
                $ptr = 3;
                continue main;
            }
            if ($var6 < 15) {
                var$11 = nms_Block_blocksList.data[$var10];
                if (var$11 === null)
                    $par2 = 0;
                else {
                    var$12 = var$11.$blockMaterial;
                    $par2 = !var$12.$isTranslucent ? var$12.$blocksMovement() : 0;
                    $par2 = $par2 && var$11.$renderAsNormalBlock() && !var$11.$canProvidePower() ? 1 : 0;
                }
                if ($par2) {
                    $par2 = $var8 + nms_Direction_offsetX.data[$var7] | 0;
                    $par4 = $var9 + nms_Direction_offsetZ.data[$var7] | 0;
                    $ptr = 4;
                    continue main;
                }
            }
        }
        return $var6;
    case 3:
        $tmp = var$11.$getComparatorInputOverride($par1World, $var8, $par3, $var9, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return $var6;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 > 0 && nms_Block_blocksList.data[$par5].$hasComparatorInputOverride()) {
            var$11 = nms_Block_blocksList.data[$par5];
            $par5 = nms_Direction_rotateOpposite.data[$var7];
            $ptr = 5;
            continue main;
        }
        return $var6;
    case 5:
        $tmp = var$11.$getComparatorInputOverride($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var7, $var8, $var9, $var10, var$11, var$12, $ptr);
},
nms_BlockComparator_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, $var11, $var12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var11 = $this.$isRepeaterPowered | (!($var10 & 8) ? 0 : 1);
        $var12 = (($var10 & 4) != 4 ? 0 : 1) ? 0 : 1;
        $var11 = (!$var12 ? 0 : 4) | (!$var11 ? 0 : 8);
        var$13 = $par2 + 0.5;
        var$14 = $par3 + 0.5;
        var$15 = $par4 + 0.5;
        $par5EntityPlayer = $rt_s(1446);
        $par7 = 0.30000001192092896;
        $par8 = !$var12 ? 0.5 : 0.550000011920929;
        $ptr = 2;
    case 2:
        nms_World_playSoundEffect($par1World, var$13, var$14, var$15, $par5EntityPlayer, $par7, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $par6 = $var11 | $var10 & 3;
        $var10 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par6, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5EntityPlayer = $par1World.$rand0;
        $ptr = 4;
    case 4:
        nms_BlockComparator_func_96476_c($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, $var11, $var12, var$13, var$14, var$15, $ptr);
},
nms_BlockComparator_func_94479_f = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $var6, $var8, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (nms_WorldServer_isBlockTickScheduledThisTick($par1World, $par2, $par3, $par4, $this.$blockID))
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (($var6 & 4) != 4 ? 0 : 1) {
            $ptr = 2;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockRedstoneLogic_func_94482_f($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $par5 = $par5 - $var8 | 0;
        $var7 = 0;
        if ($par5 > $var7)
            $var7 = $par5;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if ($var7 != var$9.$outputSignal) {
            $ptr = 6;
            continue main;
        }
        $var7 = !$this.$isRepeaterPowered && !($var6 & 8) ? 0 : 1;
        $ptr = 9;
        continue main;
    case 6:
        $tmp = nms_BlockRedstoneLogic_func_83011_d($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5) {
            $var8 = $this.$blockID;
            $par5 = 2;
            $var7 = 0;
            $ptr = 7;
            continue main;
        }
        $var7 = $this.$blockID;
        $var8 = 2;
        $par5 = (-1);
        $ptr = 8;
        continue main;
    case 7:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $var8, $par5, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        nms_WorldServer_scheduleBlockUpdateWithPriority($par1World, $par2, $par3, $par4, $var7, $var8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 >= 15)
            $par5 = 1;
        else {
            if ($par5) {
                $ptr = 10;
                continue main;
            }
            $par5 = 0;
        }
        if ($var7 == $par5)
            return;
        $ptr = 6;
        continue main;
    case 10:
        $tmp = nms_BlockRedstoneLogic_func_94482_f($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var7 == (!$var8 ? 1 : $par5 < $var8 ? 0 : 1))
            return;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $var6, $var8, $var7, var$9, $ptr);
},
nms_BlockComparator_func_96476_c = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, $var9, $var10, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$7 = $rt_compare($var6 & 4, 4);
        if (var$7 ? 0 : 1) {
            $ptr = 2;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockRedstoneLogic_func_94482_f($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var9 = $var9 - $var10 | 0;
        $var7 = 0;
        if ($var9 > $var7)
            $var7 = $var9;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5Random = $tmp;
        $var8 = $par5Random.$outputSignal;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5Random = $tmp;
        $par5Random.$outputSignal = $var7;
        if ($var8 == $var7 && (var$7 ? 0 : 1))
            return;
        $ptr = 7;
    case 7:
        $tmp = nms_BlockComparator_getInputStrength($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 >= 15)
            $var9 = 1;
        else {
            if ($var9) {
                $ptr = 8;
                continue main;
            }
            $var9 = 0;
        }
        $var10 = !$this.$isRepeaterPowered && !($var6 & 8) ? 0 : 1;
        if ($var10 && !$var9) {
            $var9 = $var6 & (-9);
            $var10 = 2;
            $ptr = 10;
            continue main;
        }
        if (!$var10 && $var9) {
            $var9 = $var6 | 8;
            $var10 = 2;
            $ptr = 11;
            continue main;
        }
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_BlockRedstoneLogic_func_94482_f($this, $par1World, $par2, $par3, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var9 = !$var10 ? 1 : $var9 < $var10 ? 0 : 1;
        $var10 = !$this.$isRepeaterPowered && !($var6 & 8) ? 0 : 1;
        if ($var10 && !$var9) {
            $var9 = $var6 & (-9);
            $var10 = 2;
            $ptr = 10;
            continue main;
        }
        if (!$var10 && $var9) {
            $var9 = $var6 | 8;
            $var10 = 2;
            $ptr = 11;
            continue main;
        }
        $ptr = 9;
    case 9:
        nms_BlockRedstoneLogic_func_94483_i_($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
        continue main;
    case 11:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 9;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, $var9, $var10, $var7, $var8, $ptr);
},
nms_BlockComparator_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    let $var6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5Random = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$isRepeaterPowered) {
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        nms_BlockComparator_func_96476_c($this, $par1World, $par2, $par3, $par4, $par5Random);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_redstoneComparatorIdle.$blockID;
        $var6 = $var6 | 8;
        var$8 = 4;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par2, $par3, $par4, var$7, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5Random, $var6, var$7, var$8, $ptr);
},
nms_BlockComparator_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BlockRedstoneLogic_func_94483_i_($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = new nms_TileEntityComparator;
        nms_TileEntity_$callClinit();
        var$5.$blockMetadata = (-1);
        $ptr = 2;
    case 2:
        nms_World_setBlockTileEntity($par1World, $par2, $par3, $par4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockComparator_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_BlockRedstoneLogic_func_94483_i_($this, $par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $ptr);
},
nms_BlockComparator_onBlockEventReceived = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        return $var7 === null ? 0 : $var7.$receiveClientEvent($par5, $par6);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $ptr);
},
nms_BlockComparator_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityComparator;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
};
function nms_BlockDaylightDetector() {
    nms_BlockContainer.call(this);
    this.$iconArray0 = null;
}
let nms_BlockDaylightDetector__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_wood);
    $this.$isBlockContainer = 1;
    $this.$iconArray0 = $rt_createArray(nms_Icon, 2);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.375;
    $this.$maxZ1 = 1.0;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockDaylightDetector__init_0 = var_0 => {
    let var_1 = new nms_BlockDaylightDetector();
    nms_BlockDaylightDetector__init_(var_1, var_0);
    return var_1;
},
nms_BlockDaylightDetector_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.375;
    $this.$maxZ1 = 1.0;
},
nms_BlockDaylightDetector_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockDaylightDetector_updateTick = ($this, $par1World, $par2, $par3, $par4, $par5Random) => {
    return;
},
nms_BlockDaylightDetector_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    return;
},
nms_BlockDaylightDetector_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    return;
},
nms_BlockDaylightDetector_updateLightLevel = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, var$6, $var6, $var7, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$provider.$hasNoSky)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$6 = nms_EnumSkyBlock_Sky;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getSavedLightValue($par1World, var$6, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $var6 - $par1World.$skylightSubtracted | 0;
        $var7 = $par1World.$provider.$calculateCelestialAngle($par1World.$worldInfo.$getWorldTime(), 1.0) * 3.1415927410125732 * 2.0;
        var$9 = $var7 >= 3.1415927410125732 ? $var7 + (6.2831854820251465 - $var7) * 0.20000000298023224 : $var7 + (0.0 - $var7) * 0.20000000298023224;
        var$9 = $var6 * nms_MathHelper_SIN_TABLE.data[(var$9 * 10430.3779296875 + 16384.0 | 0) & 65535];
        $var6 = var$9 + jl_Math_sign0(var$9) * 0.5 | 0;
        if ($var6 < 0)
            $var6 = 0;
        if ($var6 > 15)
            $var6 = 15;
        if ($var5 == $var6)
            return;
        $var5 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, var$6, $var6, $var7, var$9, $ptr);
},
nms_BlockDaylightDetector_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockDaylightDetector_isOpaqueCube = $this => {
    return 0;
},
nms_BlockDaylightDetector_canProvidePower = $this => {
    return 1;
},
nms_BlockDaylightDetector_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityDaylightDetector;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    return $par1World;
},
nms_BlockPoweredOre = $rt_classWithoutFields(nms_BlockOreStorage),
nms_BlockPoweredOre__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_iron);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
},
nms_BlockPoweredOre__init_ = var_0 => {
    let var_1 = new nms_BlockPoweredOre();
    nms_BlockPoweredOre__init_0(var_1, var_0);
    return var_1;
},
nms_BlockPoweredOre_canProvidePower = $this => {
    return 1;
},
nms_BlockPoweredOre_isProvidingWeakPower = ($this, $par1IBlockAccess, $par2, $par3, $par4, $par5) => {
    return 15;
};
function nms_BlockHopper() {
    nms_BlockContainer.call(this);
    this.$field_94457_a = null;
}
let nms_BlockHopper__init_ = ($this, $par1) => {
    let var$2, var$3;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_iron);
    $this.$isBlockContainer = 1;
    var$2 = new nle_EaglercraftRandom;
    var$3 = Long_fromNumber(performance.now() * 1000000.0);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = var$3;
    $this.$field_94457_a = var$2;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 1.0;
},
nms_BlockHopper__init_0 = var_0 => {
    let var_1 = new nms_BlockHopper();
    nms_BlockHopper__init_(var_1, var_0);
    return var_1;
},
nms_BlockHopper_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 1.0;
    $this.$maxZ1 = 1.0;
},
nms_BlockHopper_addCollisionBoxesToList = ($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity) => {
    let var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par7Entity = $thread.pop();$par6List = $thread.pop();$par5AxisAlignedBB = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.625;
        $this.$maxZ1 = 1.0;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$9 = $par2;
        var$10 = var$9 + $this.$minX1;
        var$11 = $par3;
        var$12 = var$11 + $this.$minY1;
        var$13 = $par4;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 0.125;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = var$9 + $this.$minX1;
        var$14 = var$11 + $this.$minY1;
        var$15 = var$13 + $this.$minZ1;
        var$16 = var$9 + $this.$maxX1;
        var$17 = var$11 + $this.$maxY0;
        var$19 = var$13 + $this.$maxZ1;
        $par3 = $par7Entity.$nextPoolIndex;
        $par1World = $par7Entity.$listAABB;
        $par2 = $par1World.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$8 = new nms_AxisAlignedBB;
            var$8.$minX0 = var$12;
            var$8.$minY0 = var$14;
            var$8.$minZ0 = var$15;
            var$8.$maxX0 = var$16;
            var$8.$maxY = var$17;
            var$8.$maxZ0 = var$19;
            ju_ArrayList_ensureCapacity($par1World, $par2 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par2 = $par1World.$size0;
            $par1World.$size0 = $par2 + 1 | 0;
            var$18[$par2] = var$8;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$8 = $par1World.$array.data[$par3];
            var$8.$minX0 = var$12;
            var$8.$minY0 = var$14;
            var$8.$minZ0 = var$15;
            var$8.$maxX0 = var$16;
            var$8.$maxY = var$17;
            var$8.$maxZ0 = var$19;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$8)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 0.125;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9 + $this.$minX1;
        var$12 = var$11 + $this.$minY1;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.875;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9 + $this.$minX1;
        var$12 = var$11 + $this.$minY1;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par2 = var$8.$nextPoolIndex;
        $par1World = var$8.$listAABB;
        $par4 = $par1World.$size0;
        $par3 = $rt_compare($par2, $par4);
        if ($par3 >= 0) {
            $par7Entity = new nms_AxisAlignedBB;
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par4 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par2 >= 0 && $par3 < 0) {
            $par7Entity = $par1World.$array.data[$par2];
            $par7Entity.$minX0 = var$10;
            $par7Entity.$minY0 = var$12;
            $par7Entity.$minZ0 = var$14;
            $par7Entity.$maxX0 = var$15;
            $par7Entity.$maxY = var$16;
            $par7Entity.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, $par7Entity)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = $par7Entity;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.875;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        $par7Entity = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9 + $this.$minX1;
        var$12 = var$11 + $this.$minY1;
        var$14 = var$13 + $this.$minZ1;
        var$15 = var$9 + $this.$maxX1;
        var$16 = var$11 + $this.$maxY0;
        var$17 = var$13 + $this.$maxZ1;
        $par3 = $par7Entity.$nextPoolIndex;
        $par1World = $par7Entity.$listAABB;
        $par2 = $par1World.$size0;
        $par4 = $rt_compare($par3, $par2);
        if ($par4 >= 0) {
            var$8 = new nms_AxisAlignedBB;
            var$8.$minX0 = var$10;
            var$8.$minY0 = var$12;
            var$8.$minZ0 = var$14;
            var$8.$maxX0 = var$15;
            var$8.$maxY = var$16;
            var$8.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($par1World, $par2 + 1 | 0);
            var$18 = $par1World.$array.data;
            $par3 = $par1World.$size0;
            $par1World.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        } else if ($par3 >= 0 && $par4 < 0) {
            var$8 = $par1World.$array.data[$par3];
            var$8.$minX0 = var$10;
            var$8.$minY0 = var$12;
            var$8.$minZ0 = var$14;
            var$8.$maxX0 = var$15;
            var$8.$maxY = var$16;
            var$8.$maxZ0 = var$17;
        } else {
            $par1World = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1World);
            $rt_throw($par1World);
        }
        $par7Entity.$nextPoolIndex = $par7Entity.$nextPoolIndex + 1 | 0;
        if (nms_AxisAlignedBB_intersectsWith($par5AxisAlignedBB, var$8)) {
            ju_ArrayList_ensureCapacity($par6List, $par6List.$size0 + 1 | 0);
            var$18 = $par6List.$array.data;
            $par3 = $par6List.$size0;
            $par6List.$size0 = $par3 + 1 | 0;
            var$18[$par3] = var$8;
            $par6List.$modCount = $par6List.$modCount + 1 | 0;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 1.0;
        $this.$maxZ1 = 1.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5AxisAlignedBB, $par6List, $par7Entity, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_BlockHopper_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let $var10;
    $var10 = nms_Facing_oppositeSide.data[$par5];
    if ($var10 == 1)
        $var10 = 0;
    return $var10;
},
nms_BlockHopper_createNewTileEntity = ($this, $par1World) => {
    $par1World = new nms_TileEntityHopper;
    nms_TileEntity_$callClinit();
    $par1World.$blockMetadata = (-1);
    $par1World.$hopperItemStacks = $rt_createArray(nms_ItemStack, 5);
    $par1World.$transferCooldown = (-1);
    return $par1World;
},
nms_BlockHopper_onBlockPlacedBy = ($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ItemStack = $thread.pop();$par5EntityLivingBase = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $par6ItemStack.$stackTagCompound;
        if (var$7 === null)
            var$8 = 0;
        else {
            a: {
                var$7 = var$7.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(918).$hashCode1;
            var$10 = var$7.$elementData.data;
            var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$9) {
                    b: {
                        var$11 = var$7.$key;
                        if ($rt_s(918) !== var$11) {
                            if ($rt_s(918) === var$11)
                                var$8 = 1;
                            else if (!(var$11 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$11 = var$11;
                                var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$7 = var$7.$next3;
            }
            if (!(var$7 === null ? 0 : 1))
                var$8 = 0;
            else {
                c: {
                    var$7 = $par6ItemStack.$stackTagCompound;
                    var$11 = var$7.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(918).$hashCode1;
                var$10 = var$11.$elementData.data;
                var$11 = var$10[var$9 & (var$10.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$9) {
                        d: {
                            var$12 = var$11.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) === var$12)
                                    var$8 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$12 = var$12;
                                    var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break d;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
                if (!(var$11 === null ? 0 : 1)) {
                    var$7 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$7.$name = $rt_s(918);
                    else
                        var$7.$name = $rt_s(3);
                    $par5EntityLivingBase = new ju_HashMap;
                    var$8 = ju_HashMap_calculateCapacity(16);
                    $par5EntityLivingBase.$elementCount = 0;
                    var$10 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                    var$13 = var$10.data;
                    $par5EntityLivingBase.$elementData = var$10;
                    $par5EntityLivingBase.$loadFactor = 0.75;
                    $par5EntityLivingBase.$threshold = var$13.length * 0.75 | 0;
                    var$7.$tagMap = $par5EntityLivingBase;
                } else {
                    var$7 = var$7.$tagMap;
                    if ($rt_s(918) === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                var$9 = 0;
                                while (true) {
                                    if (var$9 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$9) | 0;
                                    var$9 = var$9 + 1 | 0;
                                }
                            }
                        }
                        var$9 = $rt_s(918).$hashCode1;
                        var$10 = var$7.$elementData.data;
                        var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$9) {
                                f: {
                                    var$11 = var$7.$key;
                                    if ($rt_s(918) !== var$11) {
                                        if ($rt_s(918) === var$11)
                                            var$8 = 1;
                                        else if (!(var$11 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$11 = var$11;
                                            var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break f;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$7 = var$7 === null ? null : var$7.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$7.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                var$12 = var$10[var$14 & (var$10.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$14) {
                        h: {
                            $par5EntityLivingBase = var$12.$key;
                            if ($rt_s(919) !== $par5EntityLivingBase) {
                                if ($rt_s(919) === $par5EntityLivingBase)
                                    var$8 = 1;
                                else if (!($par5EntityLivingBase instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $par5EntityLivingBase = $par5EntityLivingBase;
                                    var$8 = $rt_s(919).$nativeString !== $par5EntityLivingBase.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break h;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                var$8 = var$12 === null ? 0 : 1;
            }
        }
        if (!var$8)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var7 = $par1World;
        nms_Item_$callClinit();
        var$7 = nms_Item_itemsList.data[$par6ItemStack.$itemID].$getItemDisplayName($par6ItemStack);
        $par1World = $par6ItemStack.$stackTagCompound;
        if ($par1World !== null) {
            a: {
                $par1World = $par1World.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $par2 = 0;
                    while (true) {
                        if ($par2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                        $par2 = $par2 + 1 | 0;
                    }
                }
            }
            $par3 = $rt_s(918).$hashCode1;
            var$10 = $par1World.$elementData.data;
            var$12 = var$10[$par3 & (var$10.length - 1 | 0)];
            while (var$12 !== null) {
                if (var$12.$origKeyHash == $par3) {
                    b: {
                        $par1World = var$12.$key;
                        if ($rt_s(918) !== $par1World) {
                            if ($rt_s(918) === $par1World)
                                $par2 = 1;
                            else if (!($par1World instanceof jl_String))
                                $par2 = 0;
                            else {
                                $par1World = $par1World;
                                $par2 = $rt_s(918).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!$par2) {
                                $par2 = 0;
                                break b;
                            }
                        }
                        $par2 = 1;
                    }
                    if ($par2)
                        break;
                }
                var$12 = var$12.$next3;
            }
            if (var$12 === null ? 0 : 1) {
                c: {
                    $par1World = $par6ItemStack.$stackTagCompound;
                    $par6ItemStack = $par1World.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(918).$hashCode1;
                var$10 = $par6ItemStack.$elementData.data;
                $par6ItemStack = var$10[$par4 & (var$10.length - 1 | 0)];
                while ($par6ItemStack !== null) {
                    if ($par6ItemStack.$origKeyHash == $par4) {
                        d: {
                            var$11 = $par6ItemStack.$key;
                            if ($rt_s(918) !== var$11) {
                                if ($rt_s(918) === var$11)
                                    $par2 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    var$11 = var$11;
                                    $par2 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break d;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par6ItemStack = $par6ItemStack.$next3;
                }
                if (!($par6ItemStack === null ? 0 : 1)) {
                    var$11 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$11.$name = $rt_s(918);
                    else
                        var$11.$name = $rt_s(3);
                    $par1World = new ju_HashMap;
                    $par2 = ju_HashMap_calculateCapacity(16);
                    $par1World.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                    var$10 = var$13.data;
                    $par1World.$elementData = var$13;
                    $par1World.$loadFactor = 0.75;
                    $par1World.$threshold = var$10.length * 0.75 | 0;
                    var$11.$tagMap = $par1World;
                } else {
                    $par1World = $par1World.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1World = $par1World.$elementData.data[0];
                        while ($par1World !== null && $par1World.$key !== null) {
                            $par1World = $par1World.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = $rt_s(918).$hashCode1;
                        var$10 = $par1World.$elementData.data;
                        $par1World = var$10[$par4 & (var$10.length - 1 | 0)];
                        while ($par1World !== null) {
                            if ($par1World.$origKeyHash == $par4) {
                                f: {
                                    $par6ItemStack = $par1World.$key;
                                    if ($rt_s(918) !== $par6ItemStack) {
                                        if ($rt_s(918) === $par6ItemStack)
                                            $par2 = 1;
                                        else if (!($par6ItemStack instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            $par6ItemStack = $par6ItemStack;
                                            $par2 = $rt_s(918).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break f;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            $par1World = $par1World.$next3;
                        }
                    }
                    var$11 = $par1World === null ? null : $par1World.$value0;
                }
                g: {
                    $par5EntityLivingBase = var$11.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $par2 = 0;
                        while (true) {
                            if ($par2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                            $par2 = $par2 + 1 | 0;
                        }
                    }
                }
                $par4 = $rt_s(919).$hashCode1;
                var$10 = $par5EntityLivingBase.$elementData.data;
                $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                while ($par5EntityLivingBase !== null) {
                    if ($par5EntityLivingBase.$origKeyHash == $par4) {
                        h: {
                            $par6ItemStack = $par5EntityLivingBase.$key;
                            if ($rt_s(919) !== $par6ItemStack) {
                                if ($rt_s(919) === $par6ItemStack)
                                    $par2 = 1;
                                else if (!($par6ItemStack instanceof jl_String))
                                    $par2 = 0;
                                else {
                                    $par6ItemStack = $par6ItemStack;
                                    $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                }
                                if (!$par2) {
                                    $par2 = 0;
                                    break h;
                                }
                            }
                            $par2 = 1;
                        }
                        if ($par2)
                            break;
                    }
                    $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                }
                if ($par5EntityLivingBase === null ? 0 : 1) {
                    i: {
                        $par5EntityLivingBase = var$11.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = $rt_s(919).$hashCode1;
                    var$10 = $par5EntityLivingBase.$elementData.data;
                    $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                    while ($par5EntityLivingBase !== null) {
                        if ($par5EntityLivingBase.$origKeyHash == $par4) {
                            j: {
                                $par6ItemStack = $par5EntityLivingBase.$key;
                                if ($rt_s(919) !== $par6ItemStack) {
                                    if ($rt_s(919) === $par6ItemStack)
                                        $par2 = 1;
                                    else if (!($par6ItemStack instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        $par6ItemStack = $par6ItemStack;
                                        $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break j;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                    }
                    if (!($par5EntityLivingBase === null ? 0 : 1))
                        var$7 = $rt_s(3);
                    else {
                        $par5EntityLivingBase = var$11.$tagMap;
                        if ($rt_s(919) === null) {
                            $par5EntityLivingBase = $par5EntityLivingBase.$elementData.data[0];
                            while ($par5EntityLivingBase !== null && $par5EntityLivingBase.$key !== null) {
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        } else {
                            k: {
                                if (!$rt_s(919).$hashCode1) {
                                    $par2 = 0;
                                    while (true) {
                                        if ($par2 >= $rt_s(919).$nativeString.length)
                                            break k;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($par2) | 0;
                                        $par2 = $par2 + 1 | 0;
                                    }
                                }
                            }
                            $par4 = $rt_s(919).$hashCode1;
                            var$10 = $par5EntityLivingBase.$elementData.data;
                            $par5EntityLivingBase = var$10[$par4 & (var$10.length - 1 | 0)];
                            while ($par5EntityLivingBase !== null) {
                                if ($par5EntityLivingBase.$origKeyHash == $par4) {
                                    l: {
                                        $par6ItemStack = $par5EntityLivingBase.$key;
                                        if ($rt_s(919) !== $par6ItemStack) {
                                            if ($rt_s(919) === $par6ItemStack)
                                                $par2 = 1;
                                            else if (!($par6ItemStack instanceof jl_String))
                                                $par2 = 0;
                                            else {
                                                $par6ItemStack = $par6ItemStack;
                                                $par2 = $rt_s(919).$nativeString !== $par6ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!$par2) {
                                                $par2 = 0;
                                                break l;
                                            }
                                        }
                                        $par2 = 1;
                                    }
                                    if ($par2)
                                        break;
                                }
                                $par5EntityLivingBase = $par5EntityLivingBase.$next3;
                            }
                        }
                        var$7 = ($par5EntityLivingBase === null ? null : $par5EntityLivingBase.$value0).$data1;
                    }
                }
            }
        }
        $var7.$inventoryName = var$7;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityLivingBase, $par6ItemStack, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var7, $ptr);
},
nms_BlockHopper_onBlockAdded = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$6 = var$5 & 7;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$8 = var$7 ? 0 : 1;
        if (var$8 == ((var$5 & 8) == 8 ? 0 : 1))
            return;
        var$7 = var$6 | (!var$8 ? 8 : 0);
        var$5 = 4;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, var$7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BlockHopper_onBlockActivated = ($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9) => {
    let $var10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5EntityPlayer = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1World.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var10 = $par1World;
        if ($var10 === null)
            return 1;
        $par6 = ($par5EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
        $par5EntityPlayer.$currentWindowId = $par6;
        var$11 = $par5EntityPlayer.$playerNetServerHandler;
        $par1World = new nms_Packet100OpenWindow;
        var$12 = $var10.$inventoryName;
        var$13 = !(var$12 !== null && var$12.$nativeString.length > 0 ? 1 : 0) ? $rt_s(1463) : $var10.$inventoryName;
        $par4 = $var10.$hopperItemStacks.data.length;
        var$12 = $var10.$inventoryName;
        $par3 = var$12 !== null && var$12.$nativeString.length > 0 ? 1 : 0;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1World.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1World.$windowId2 = $par6;
            $par1World.$inventoryType = 9;
            $par1World.$windowTitle = var$13;
            $par1World.$slotsCount0 = $par4;
            $par1World.$useProvidedWindowTitle = $par3;
            if ($par1World instanceof nms_Packet3Chat) {
                var$12 = $par1World;
                $par3 = var$11.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    break a;
                if ($par3 == 1 && !var$12.$isServer)
                    break a;
            }
            try {
                var$11 = var$11.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerHopper__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
        continue main;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$11, $par1World);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$11);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $par1World = nms_ContainerHopper__init_($par5EntityPlayer.$inventory0, $var10);
        $par5EntityPlayer.$openContainer = $par1World;
        $par1World.$windowId = $par5EntityPlayer.$currentWindowId;
        $ptr = 3;
    case 3:
        $par1World.$addCraftingToCrafters($par5EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5EntityPlayer, $par6, $par7, $par8, $par9, $var10, var$11, var$12, var$13, $ptr);
},
nms_BlockHopper_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = var$6 & 7;
        $ptr = 2;
    case 2:
        $tmp = nms_World_isBlockIndirectlyGettingPowered($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par5 = $par5 ? 0 : 1;
        if ($par5 == ((var$6 & 8) == 8 ? 0 : 1))
            return;
        $par5 = var$7 | (!$par5 ? 8 : 0);
        var$8 = 4;
        $ptr = 3;
    case 3:
        nms_World_setBlockMetadataWithNotify($par1World, $par2, $par3, $par4, $par5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockHopper_breakBlock = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var14, var$18, $var10, $var11, var$21, $var12, var$23, var$24, var$25, var$26, var$27, $var13, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();$var13 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var12 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();$var14 = $thread.pop();$var9
        = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var7 = $var7;
        if ($var7 === null) {
            $ptr = 2;
            continue main;
        }
        $var8 = 0;
        var$9 = 24;
        var$10 = 17;
        var$11 = $par2;
        var$12 = 138;
        var$13 = $par3;
        var$14 = $par4;
        while (true) {
            var$15 = $var7.$hopperItemStacks.data;
            if ($var8 >= var$15.length)
                break;
            $var9 = var$15[$var8];
            if ($var9 !== null) {
                $var14 = $this.$field_94457_a;
                var$18 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$18;
                $var10 = Long_lo(Long_shru(var$18, var$9)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$18;
                $var11 = Long_lo(Long_shru(var$18, var$9)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$21;
                $var12 = Long_lo(Long_shru(var$21, var$9)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$23 = var$11 + $var10;
                var$24 = var$13 + $var11;
                var$25 = var$14 + $var12;
                $par6 = $var9.$stackSize;
                if ($par6 > 0) {
                    $var14 = $this.$field_94457_a;
                    var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$10));
                    while (true) {
                        var$27 = var$26 % 21 | 0;
                        if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                            break;
                        var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$21;
                        var$26 = Long_lo(Long_shru(var$21, var$10));
                    }
                    $var13 = var$27 + 10 | 0;
                    if ($var13 > $par6)
                        $var13 = $par6;
                    $var9.$stackSize = $par6 - $var13 | 0;
                    $var14 = new nms_EntityItem;
                    var$29 = new nms_ItemStack;
                    var$30 = $var9.$itemID;
                    $par6 = $var9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$29.$itemID = var$30;
                    var$29.$stackSize = $var13;
                    var$29.$itemDamage = $par6;
                    if ($par6 < 0)
                        var$29.$itemDamage = 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $var8 = $var8 + 1 | 0;
        }
        $ptr = 3;
        continue main;
    case 2:
        nms_World_removeBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_func_96440_m($par1World, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 4:
        nms_EntityItem__init_($var14, $par1World, var$23, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        var$31 = $var14.$dataWatcher;
        var$32 = var$31.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$33 = jl_Integer_integerCache.data[var$12];
        if (var$33 === null) {
            var$32 = var$32.$elementData.data[0];
            while (var$32 !== null && var$32.$key !== null) {
                var$32 = var$32.$next3;
            }
        } else {
            $par6 = var$33.$value;
            var$15 = var$32.$elementData.data;
            var$32 = var$15[$par6 & (var$15.length - 1 | 0)];
            while (var$32 !== null) {
                if (var$32.$origKeyHash == $par6) {
                    var$34 = var$32.$key;
                    if (var$33 !== var$34 && !jl_Integer_equals(var$33, var$34) ? 0 : 1)
                        break;
                }
                var$32 = var$32.$next3;
            }
        }
        var$34 = var$32 === null ? null : var$32.$value0;
        if (!(var$29 !== var$34.$watchedObject ? 0 : 1)) {
            var$34.$watchedObject = var$29;
            var$34.$watched = 1;
            var$31.$objectChanged = 1;
        }
        var$34 = $var14.$dataWatcher;
        var$31 = var$34.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$32 = jl_Integer_integerCache.data[var$12];
        if (var$32 === null) {
            var$31 = var$31.$elementData.data[0];
            while (var$31 !== null && var$31.$key !== null) {
                var$31 = var$31.$next3;
            }
        } else {
            var$30 = var$32.$value;
            var$15 = var$31.$elementData.data;
            var$31 = var$15[var$30 & (var$15.length - 1 | 0)];
            while (var$31 !== null) {
                if (var$31.$origKeyHash == var$30) {
                    var$29 = var$31.$key;
                    if (var$32 !== var$29 && !jl_Integer_equals(var$32, var$29) ? 0 : 1)
                        break;
                }
                var$31 = var$31.$next3;
            }
        }
        (var$31 === null ? null : var$31.$value0).$watched = 1;
        var$34.$objectChanged = 1;
        if ($var9.$stackTagCompound === null ? 0 : 1) {
            var$31 = nms_EntityItem_getEntityItem($var14);
            var$35 = $var9.$stackTagCompound;
            var$29 = new nms_NBTTagCompound;
            var$32 = var$35.$name;
            if (var$32 === null)
                var$32 = $rt_s(3);
            var$29.$name = var$32;
            var$32 = new ju_HashMap;
            $par6 = ju_HashMap_calculateCapacity(16);
            var$32.$elementCount = 0;
            var$36 = $rt_createArray(ju_HashMap$HashEntry, $par6);
            var$15 = var$36.data;
            var$32.$elementData = var$36;
            var$32.$loadFactor = 0.75;
            var$32.$threshold = var$15.length * 0.75 | 0;
            var$29.$tagMap = var$32;
            var$32 = var$35.$tagMap;
            if (var$32.$cachedKeySet === null) {
                var$34 = new ju_HashMap$1;
                var$34.$this$0 = var$32;
                var$32.$cachedKeySet = var$34;
            }
            var$32 = var$32.$cachedKeySet.$iterator();
            while (var$32.$hasNext()) {
                var$34 = var$32.$next();
                var$33 = var$35.$tagMap;
                if (var$34 === null) {
                    var$33 = var$33.$elementData.data[0];
                    while (var$33 !== null && var$33.$key !== null) {
                        var$33 = var$33.$next3;
                    }
                } else {
                    a: {
                        if (!var$34.$hashCode1) {
                            $par6 = 0;
                            while (true) {
                                if ($par6 >= var$34.$nativeString.length)
                                    break a;
                                var$34.$hashCode1 = (31 * var$34.$hashCode1 | 0) + var$34.$nativeString.charCodeAt($par6) | 0;
                                $par6 = $par6 + 1 | 0;
                            }
                        }
                    }
                    var$30 = var$34.$hashCode1;
                    var$15 = var$33.$elementData.data;
                    var$33 = var$15[var$30 & (var$15.length - 1 | 0)];
                    while (var$33 !== null) {
                        if (var$33.$origKeyHash == var$30) {
                            b: {
                                var$37 = var$33.$key;
                                if (var$34 !== var$37) {
                                    if (var$34 === var$37)
                                        $par6 = 1;
                                    else if (!(var$37 instanceof jl_String))
                                        $par6 = 0;
                                    else {
                                        var$37 = var$37;
                                        $par6 = var$34.$nativeString !== var$37.$nativeString ? 0 : 1;
                                    }
                                    if (!$par6) {
                                        $par6 = 0;
                                        break b;
                                    }
                                }
                                $par6 = 1;
                            }
                            if ($par6)
                                break;
                        }
                        var$33 = var$33.$next3;
                    }
                }
                var$33 = var$33 === null ? null : var$33.$value0;
                var$33 = var$33.$copy();
                var$37 = var$29.$tagMap;
                if (var$34 !== null)
                    var$33.$name = var$34;
                else
                    var$33.$name = $rt_s(3);
                ju_HashMap_putImpl(var$37, var$34, var$33);
            }
            var$31.$stackTagCompound = var$29;
        }
        $var14.$motionX = nle_EaglercraftRandom_nextGaussian($this.$field_94457_a) * 0.05000000074505806;
        $var14.$motionY = nle_EaglercraftRandom_nextGaussian($this.$field_94457_a) * 0.05000000074505806 + 0.20000000298023224;
        $var14.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$field_94457_a) * 0.05000000074505806;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var14);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            $par6 = $var9.$stackSize;
            if ($par6 > 0) {
                $var14 = $this.$field_94457_a;
                var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$21;
                var$26 = Long_lo(Long_shru(var$21, var$10));
                while (true) {
                    var$27 = var$26 % 21 | 0;
                    if (((var$26 - var$27 | 0) + 20 | 0) >= 0)
                        break;
                    var$21 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$21;
                    var$26 = Long_lo(Long_shru(var$21, var$10));
                }
                $var13 = var$27 + 10 | 0;
                if ($var13 > $par6)
                    $var13 = $par6;
                $var9.$stackSize = $par6 - $var13 | 0;
                $var14 = new nms_EntityItem;
                var$29 = new nms_ItemStack;
                var$30 = $var9.$itemID;
                $par6 = $var9.$itemDamage;
                nms_ItemStack_$callClinit();
                var$29.$itemID = var$30;
                var$29.$stackSize = $var13;
                var$29.$itemDamage = $par6;
                if ($par6 < 0)
                    var$29.$itemDamage = 0;
                $ptr = 4;
                continue main;
            }
            while (true) {
                $var8 = $var8 + 1 | 0;
                var$15 = $var7.$hopperItemStacks.data;
                if ($var8 >= var$15.length)
                    break c;
                $var9 = var$15[$var8];
                if ($var9 === null)
                    continue;
                else
                    break;
            }
            $var14 = $this.$field_94457_a;
            var$18 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$18;
            $var10 = Long_lo(Long_shru(var$18, var$9)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$18;
            $var11 = Long_lo(Long_shru(var$18, var$9)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$21 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$21;
            $var12 = Long_lo(Long_shru(var$21, var$9)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$23 = var$11 + $var10;
            var$24 = var$13 + $var11;
            var$25 = var$14 + $var12;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var14, var$18, $var10, $var11, var$21, $var12, var$23, var$24, var$25, var$26, var$27, $var13, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr);
},
nms_BlockHopper_getRenderType = $this => {
    return 38;
},
nms_BlockHopper_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockHopper_isOpaqueCube = $this => {
    return 0;
},
nms_BlockHopper_hasComparatorInputOverride = $this => {
    return 1;
},
nms_BlockHopper_getComparatorInputOverride = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return nms_Container_calcRedstoneFromInventory($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $ptr);
},
nms_BlockQuartz = $rt_classWithoutFields(nms_Block),
nms_BlockQuartz_quartzBlockTypes = null,
nms_BlockQuartz_quartzBlockTextureTypes = null,
nms_BlockQuartz__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockQuartz__init_0 = var_0 => {
    let var_1 = new nms_BlockQuartz();
    nms_BlockQuartz__init_(var_1, var_0);
    return var_1;
},
nms_BlockQuartz_onBlockPlaced = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    a: {
        if ($par9 == 2)
            switch ($par5) {
                case 0:
                case 1:
                    $par9 = 2;
                    break a;
                case 2:
                case 3:
                    $par9 = 4;
                    break a;
                case 4:
                case 5:
                    $par9 = 3;
                    break a;
                default:
            }
    }
    return $par9;
},
nms_BlockQuartz_damageDropped = ($this, $par1) => {
    if (!($par1 != 3 && $par1 != 4))
        $par1 = 2;
    return $par1;
},
nms_BlockQuartz_createStackedBlock = ($this, $par1) => {
    let var$2, var$3;
    if ($par1 != 3 && $par1 != 4)
        var$2 = nms_Block_createStackedBlock($this, $par1);
    else {
        var$2 = new nms_ItemStack;
        var$3 = $this.$blockID;
        nms_ItemStack_$callClinit();
        var$2.$itemID = var$3;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 2;
    }
    return var$2;
},
nms_BlockQuartz_getRenderType = $this => {
    return 39;
},
nms_BlockQuartz__clinit_ = () => {
    let var$1, var$2;
    nms_BlockQuartz_quartzBlockTypes = $rt_wrapArray(jl_String, [$rt_s(234), $rt_s(1398), $rt_s(1464)]);
    var$1 = $rt_createArray(jl_String, 5);
    var$2 = var$1.data;
    var$2[0] = $rt_s(1465);
    var$2[1] = $rt_s(1398);
    var$2[2] = $rt_s(1464);
    var$2[3] = null;
    var$2[4] = null;
    nms_BlockQuartz_quartzBlockTextureTypes = var$1;
};
function nms_BlockDropper() {
    nms_BlockDispenser.call(this);
    this.$dropperDefaultBehaviour = null;
}
let nms_BlockDropper__init_ = ($this, $par1) => {
    let var$2, var$3;
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_rock);
    $this.$isBlockContainer = 1;
    var$2 = new nle_EaglercraftRandom;
    var$3 = Long_fromNumber(performance.now() * 1000000.0);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = var$3;
    $this.$random0 = var$2;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabRedstone;
    $this.$dropperDefaultBehaviour = new nms_BehaviorDefaultDispenseItem;
},
nms_BlockDropper__init_0 = var_0 => {
    let var_1 = new nms_BlockDropper();
    nms_BlockDropper__init_(var_1, var_0);
    return var_1;
},
nms_BlockDropper_getBehaviorForItemStack = ($this, $par1ItemStack) => {
    return $this.$dropperDefaultBehaviour;
},
nms_BlockDropper_createNewTileEntity = ($this, $par1World) => {
    return nms_TileEntityDropper__init_0();
},
nms_BlockDropper_dispense = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var9, $var8, var$10, var$11, var$12, $var10, $var11, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = new nms_BlockSourceImpl;
        $var5.$worldObj4 = $par1World;
        $var5.$xPos = $par2;
        $var5.$yPos = $par3;
        $var5.$zPos = $par4;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $var6;
        if ($var6 === null)
            return;
        $var7 = nms_TileEntityDispenser_getRandomStackFromInventory($var6);
        if ($var7 < 0) {
            $var7 = 1001;
            $var9 = 0;
            $var5 = null;
            $ptr = 4;
            continue main;
        }
        $var8 = $var6.$dispenserContents.data[$var7];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var9 = $var9 & 7;
        var$10 = $par2 + nms_Facing_offsetsXForSide.data[$var9] | 0;
        var$11 = $par3 + nms_Facing_offsetsYForSide.data[$var9] | 0;
        var$12 = $par4 + nms_Facing_offsetsZForSide.data[$var9] | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_TileEntityHopper_getInventoryAtLocation($par1World, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 === null) {
            $par1World = $this.$dropperDefaultBehaviour;
            $ptr = 5;
            continue main;
        }
        $var5 = null;
        $par2 = $var8.$itemID;
        $par3 = $var8.$itemDamage;
        nms_ItemStack_$callClinit();
        if ($par3 < 0)
            $par3 = 0;
        $par1World = $var8.$stackTagCompound;
        if ($par1World !== null) {
            $var5 = new nms_NBTTagCompound;
            $var11 = $par1World.$name;
            if ($var11 === null)
                $var11 = $rt_s(3);
            $var5.$name = $var11;
            $var11 = new ju_HashMap;
            $par4 = ju_HashMap_calculateCapacity(16);
            $var11.$elementCount = 0;
            var$15 = $rt_createArray(ju_HashMap$HashEntry, $par4);
            var$16 = var$15.data;
            $var11.$elementData = var$15;
            $var11.$loadFactor = 0.75;
            $var11.$threshold = var$16.length * 0.75 | 0;
            $var5.$tagMap = $var11;
            $var11 = $par1World.$tagMap;
            if ($var11.$cachedKeySet === null) {
                var$17 = new ju_HashMap$1;
                var$17.$this$0 = $var11;
                $var11.$cachedKeySet = var$17;
            }
            $var11 = $var11.$cachedKeySet.$iterator();
            while ($var11.$hasNext()) {
                var$17 = $var11.$next();
                var$18 = $par1World.$tagMap;
                if (var$17 === null) {
                    var$18 = var$18.$elementData.data[0];
                    while (var$18 !== null && var$18.$key !== null) {
                        var$18 = var$18.$next3;
                    }
                } else {
                    a: {
                        if (!var$17.$hashCode1) {
                            $par4 = 0;
                            while (true) {
                                if ($par4 >= var$17.$nativeString.length)
                                    break a;
                                var$17.$hashCode1 = (31 * var$17.$hashCode1 | 0) + var$17.$nativeString.charCodeAt($par4) | 0;
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    var$19 = var$17.$hashCode1;
                    var$16 = var$18.$elementData.data;
                    var$18 = var$16[var$19 & (var$16.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == var$19) {
                            b: {
                                var$20 = var$18.$key;
                                if (var$17 !== var$20) {
                                    if (var$17 === var$20)
                                        $par4 = 1;
                                    else if (!(var$20 instanceof jl_String))
                                        $par4 = 0;
                                    else {
                                        var$20 = var$20;
                                        $par4 = var$17.$nativeString !== var$20.$nativeString ? 0 : 1;
                                    }
                                    if (!$par4) {
                                        $par4 = 0;
                                        break b;
                                    }
                                }
                                $par4 = 1;
                            }
                            if ($par4)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                }
                var$18 = var$18 === null ? null : var$18.$value0;
                var$18 = var$18.$copy();
                var$20 = $var5.$tagMap;
                if (var$17 !== null)
                    var$18.$name = var$17;
                else
                    var$18.$name = $rt_s(3);
                ju_HashMap_putImpl(var$20, var$17, var$18);
            }
        }
        $var11 = new nms_ItemStack;
        $var11.$itemID = $par2;
        $var11.$stackSize = 1;
        $var11.$itemDamage = $par3;
        if ($par3 < 0)
            $var11.$itemDamage = 0;
        if ($var5 !== null) {
            var$17 = new nms_NBTTagCompound;
            $par1World = $var5.$name;
            if ($par1World === null)
                $par1World = $rt_s(3);
            var$17.$name = $par1World;
            $par1World = new ju_HashMap;
            $par2 = ju_HashMap_calculateCapacity(16);
            $par1World.$elementCount = 0;
            var$15 = $rt_createArray(ju_HashMap$HashEntry, $par2);
            var$16 = var$15.data;
            $par1World.$elementData = var$15;
            $par1World.$loadFactor = 0.75;
            $par1World.$threshold = var$16.length * 0.75 | 0;
            var$17.$tagMap = $par1World;
            $par1World = $var5.$tagMap;
            if ($par1World.$cachedKeySet === null) {
                var$18 = new ju_HashMap$1;
                var$18.$this$0 = $par1World;
                $par1World.$cachedKeySet = var$18;
            }
            $par1World = $par1World.$cachedKeySet.$iterator();
            while ($par1World.$hasNext()) {
                var$18 = $par1World.$next();
                var$20 = $var5.$tagMap;
                if (var$18 === null) {
                    var$20 = var$20.$elementData.data[0];
                    while (var$20 !== null && var$20.$key !== null) {
                        var$20 = var$20.$next3;
                    }
                } else {
                    c: {
                        if (!var$18.$hashCode1) {
                            $par2 = 0;
                            while (true) {
                                if ($par2 >= var$18.$nativeString.length)
                                    break c;
                                var$18.$hashCode1 = (31 * var$18.$hashCode1 | 0) + var$18.$nativeString.charCodeAt($par2) | 0;
                                $par2 = $par2 + 1 | 0;
                            }
                        }
                    }
                    $par4 = var$18.$hashCode1;
                    var$16 = var$20.$elementData.data;
                    var$20 = var$16[$par4 & (var$16.length - 1 | 0)];
                    while (var$20 !== null) {
                        if (var$20.$origKeyHash == $par4) {
                            d: {
                                var$21 = var$20.$key;
                                if (var$18 !== var$21) {
                                    if (var$18 === var$21)
                                        $par2 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $par2 = 0;
                                    else {
                                        var$21 = var$21;
                                        $par2 = var$18.$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$par2) {
                                        $par2 = 0;
                                        break d;
                                    }
                                }
                                $par2 = 1;
                            }
                            if ($par2)
                                break;
                        }
                        var$20 = var$20.$next3;
                    }
                }
                var$20 = var$20 === null ? null : var$20.$value0;
                var$20 = var$20.$copy();
                var$21 = var$17.$tagMap;
                if (var$18 !== null)
                    var$20.$name = var$18;
                else
                    var$20.$name = $rt_s(3);
                ju_HashMap_putImpl(var$21, var$18, var$20);
            }
            $var11.$stackTagCompound = var$17;
        }
        $par2 = nms_Facing_oppositeSide.data[$var9];
        $ptr = 7;
        continue main;
    case 4:
        nms_World_playAuxSFXAtEntity($par1World, $var5, $var7, $par2, $par3, $par4, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_BehaviorDefaultDispenseItem_dispense($par1World, $var5, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 !== null && !$var11.$stackSize)
            $var11 = null;
        $var6.$dispenserContents.data[$var7] = $var11;
        if ($var11 !== null && $var11.$stackSize > 64)
            $var11.$stackSize = 64;
        $ptr = 6;
    case 6:
        nms_TileEntity_onInventoryChanged($var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        $tmp = nms_TileEntityHopper_insertStack($var10, $var11, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 !== null) {
            $var11 = new nms_ItemStack;
            $par2 = $var8.$itemID;
            $par3 = $var8.$stackSize;
            $par4 = $var8.$itemDamage;
            $var11.$itemID = $par2;
            $var11.$stackSize = $par3;
            $var11.$itemDamage = $par4;
            if ($par4 < 0)
                $var11.$itemDamage = 0;
            $par1World = $var8.$stackTagCompound;
            if ($par1World !== null) {
                $var5 = new nms_NBTTagCompound;
                var$17 = $par1World.$name;
                if (var$17 === null)
                    var$17 = $rt_s(3);
                $var5.$name = var$17;
                var$17 = new ju_HashMap;
                $par2 = ju_HashMap_calculateCapacity(16);
                var$17.$elementCount = 0;
                var$15 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                var$16 = var$15.data;
                var$17.$elementData = var$15;
                var$17.$loadFactor = 0.75;
                var$17.$threshold = var$16.length * 0.75 | 0;
                $var5.$tagMap = var$17;
                var$17 = $par1World.$tagMap;
                if (var$17.$cachedKeySet === null) {
                    var$18 = new ju_HashMap$1;
                    var$18.$this$0 = var$17;
                    var$17.$cachedKeySet = var$18;
                }
                var$17 = var$17.$cachedKeySet.$iterator();
                while (var$17.$hasNext()) {
                    var$18 = var$17.$next();
                    var$20 = $par1World.$tagMap;
                    if (var$18 === null) {
                        var$20 = var$20.$elementData.data[0];
                        while (var$20 !== null && var$20.$key !== null) {
                            var$20 = var$20.$next3;
                        }
                    } else {
                        e: {
                            if (!var$18.$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= var$18.$nativeString.length)
                                        break e;
                                    var$18.$hashCode1 = (31 * var$18.$hashCode1 | 0) + var$18.$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = var$18.$hashCode1;
                        var$16 = var$20.$elementData.data;
                        var$20 = var$16[$par4 & (var$16.length - 1 | 0)];
                        while (var$20 !== null) {
                            if (var$20.$origKeyHash == $par4) {
                                f: {
                                    var$21 = var$20.$key;
                                    if (var$18 !== var$21) {
                                        if (var$18 === var$21)
                                            $par2 = 1;
                                        else if (!(var$21 instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            var$21 = var$21;
                                            $par2 = var$18.$nativeString !== var$21.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break f;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            var$20 = var$20.$next3;
                        }
                    }
                    var$20 = var$20 === null ? null : var$20.$value0;
                    var$20 = var$20.$copy();
                    var$21 = $var5.$tagMap;
                    if (var$18 !== null)
                        var$20.$name = var$18;
                    else
                        var$20.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$21, var$18, var$20);
                }
                $var11.$stackTagCompound = $var5;
            }
        } else {
            $var11 = new nms_ItemStack;
            $par2 = $var8.$itemID;
            $par3 = $var8.$stackSize;
            $par4 = $var8.$itemDamage;
            $var11.$itemID = $par2;
            $var11.$stackSize = $par3;
            $var11.$itemDamage = $par4;
            if ($par4 < 0)
                $var11.$itemDamage = 0;
            $par1World = $var8.$stackTagCompound;
            if ($par1World !== null) {
                $var5 = new nms_NBTTagCompound;
                var$17 = $par1World.$name;
                if (var$17 === null)
                    var$17 = $rt_s(3);
                $var5.$name = var$17;
                var$17 = new ju_HashMap;
                $par2 = ju_HashMap_calculateCapacity(16);
                var$17.$elementCount = 0;
                var$15 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                var$16 = var$15.data;
                var$17.$elementData = var$15;
                var$17.$loadFactor = 0.75;
                var$17.$threshold = var$16.length * 0.75 | 0;
                $var5.$tagMap = var$17;
                var$17 = $par1World.$tagMap;
                if (var$17.$cachedKeySet === null) {
                    var$18 = new ju_HashMap$1;
                    var$18.$this$0 = var$17;
                    var$17.$cachedKeySet = var$18;
                }
                var$17 = var$17.$cachedKeySet.$iterator();
                while (var$17.$hasNext()) {
                    var$18 = var$17.$next();
                    var$20 = $par1World.$tagMap;
                    if (var$18 === null) {
                        var$20 = var$20.$elementData.data[0];
                        while (var$20 !== null && var$20.$key !== null) {
                            var$20 = var$20.$next3;
                        }
                    } else {
                        g: {
                            if (!var$18.$hashCode1) {
                                $par2 = 0;
                                while (true) {
                                    if ($par2 >= var$18.$nativeString.length)
                                        break g;
                                    var$18.$hashCode1 = (31 * var$18.$hashCode1 | 0) + var$18.$nativeString.charCodeAt($par2) | 0;
                                    $par2 = $par2 + 1 | 0;
                                }
                            }
                        }
                        $par4 = var$18.$hashCode1;
                        var$16 = var$20.$elementData.data;
                        var$20 = var$16[$par4 & (var$16.length - 1 | 0)];
                        while (var$20 !== null) {
                            if (var$20.$origKeyHash == $par4) {
                                h: {
                                    var$21 = var$20.$key;
                                    if (var$18 !== var$21) {
                                        if (var$18 === var$21)
                                            $par2 = 1;
                                        else if (!(var$21 instanceof jl_String))
                                            $par2 = 0;
                                        else {
                                            var$21 = var$21;
                                            $par2 = var$18.$nativeString !== var$21.$nativeString ? 0 : 1;
                                        }
                                        if (!$par2) {
                                            $par2 = 0;
                                            break h;
                                        }
                                    }
                                    $par2 = 1;
                                }
                                if ($par2)
                                    break;
                            }
                            var$20 = var$20.$next3;
                        }
                    }
                    var$20 = var$20 === null ? null : var$20.$value0;
                    var$20 = var$20.$copy();
                    var$21 = $var5.$tagMap;
                    if (var$18 !== null)
                        var$20.$name = var$18;
                    else
                        var$20.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$21, var$18, var$20);
                }
                $var11.$stackTagCompound = $var5;
            }
            $par2 = $var11.$stackSize - 1 | 0;
            $var11.$stackSize = $par2;
            if (!$par2)
                $var11 = null;
        }
        $var6.$dispenserContents.data[$var7] = $var11;
        if ($var11 !== null && $var11.$stackSize > 64)
            $var11.$stackSize = 64;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $var7, $var9, $var8, var$10, var$11, var$12, $var10, $var11, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_BlockHay = $rt_classWithoutFields(nms_BlockRotatedPillar),
nms_BlockHay__init_ = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_grass);
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabBlock;
},
nms_BlockHay__init_0 = var_0 => {
    let var_1 = new nms_BlockHay();
    nms_BlockHay__init_(var_1, var_0);
    return var_1;
},
nms_BlockHay_getRenderType = $this => {
    return 31;
},
nms_BlockCarpet = $rt_classWithoutFields(nms_Block),
nms_BlockCarpet__init_0 = ($this, $par1) => {
    nms_Material_$callClinit();
    nms_Block__init_($this, $par1, nms_Material_materialCarpet);
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.0625;
    $this.$maxZ1 = 1.0;
    $this.$needsRandomTick = 1;
    nms_CreativeTabs_$callClinit();
    $this.$displayOnCreativeTab = nms_CreativeTabs_tabDecorations;
    $this.$minX1 = 0.0;
    $this.$minY1 = 0.0;
    $this.$minZ1 = 0.0;
    $this.$maxX1 = 1.0;
    $this.$maxY0 = 0.0625;
    $this.$maxZ1 = 1.0;
},
nms_BlockCarpet__init_ = var_0 => {
    let var_1 = new nms_BlockCarpet();
    nms_BlockCarpet__init_0(var_1, var_0);
    return var_1;
},
nms_BlockCarpet_getCollisionBoundingBoxFromPool = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$6 = $par2;
    var$7 = var$6 + $this.$minX1;
    var$8 = $par3 + $this.$minY1;
    var$9 = $par4;
    var$10 = var$9 + $this.$minZ1;
    var$6 = var$6 + $this.$maxX1;
    var$11 = $par3 + 0.0;
    var$9 = var$9 + $this.$maxZ1;
    $par3 = var$5.$nextPoolIndex;
    $par1World = var$5.$listAABB;
    $par2 = $par1World.$size0;
    $par4 = $rt_compare($par3, $par2);
    if ($par4 >= 0) {
        var$12 = new nms_AxisAlignedBB;
        var$12.$minX0 = var$7;
        var$12.$minY0 = var$8;
        var$12.$minZ0 = var$10;
        var$12.$maxX0 = var$6;
        var$12.$maxY = var$11;
        var$12.$maxZ0 = var$9;
        ju_ArrayList_ensureCapacity($par1World, $par2 + 1 | 0);
        var$13 = $par1World.$array.data;
        $par2 = $par1World.$size0;
        $par1World.$size0 = $par2 + 1 | 0;
        var$13[$par2] = var$12;
        $par1World.$modCount = $par1World.$modCount + 1 | 0;
    } else if ($par3 >= 0 && $par4 < 0) {
        var$12 = $par1World.$array.data[$par3];
        var$12.$minX0 = var$7;
        var$12.$minY0 = var$8;
        var$12.$minZ0 = var$10;
        var$12.$maxX0 = var$6;
        var$12.$maxY = var$11;
        var$12.$maxZ0 = var$9;
    } else {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
    return var$12;
},
nms_BlockCarpet_isOpaqueCube = $this => {
    return 0;
},
nms_BlockCarpet_renderAsNormalBlock = $this => {
    return 0;
},
nms_BlockCarpet_setBlockBoundsBasedOnState = ($this, $par1IBlockAccess, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IBlockAccess = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_World_getBlockMetadata($par1IBlockAccess, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$minX1 = 0.0;
        $this.$minY1 = 0.0;
        $this.$minZ1 = 0.0;
        $this.$maxX1 = 1.0;
        $this.$maxY0 = 0.0625;
        $this.$maxZ1 = 1.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockAccess, $par2, $par3, $par4, $ptr);
},
nms_BlockCarpet_canPlaceBlockAt = ($this, $par1World, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
            if ($rt_suspending()) {
                break main;
            }
            var$5 = $tmp;
            if (var$5) {
                nms_Block_$callClinit();
                if (!nms_Block_blocksList.data[var$5].$blockMaterial.$replaceable) {
                    var$5 = 0;
                    break a;
                }
            }
            var$5 = 1;
        }
        if (!var$5)
            return 0;
        $par3 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return !(($par2 ? 0 : 1) ? 0 : 1) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, var$5, $ptr);
},
nms_BlockCarpet_onNeighborBlockChange = ($this, $par1World, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par5 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (($par5 ? 0 : 1) ? 0 : 1)
            return;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        var$6 = 0;
        var$7 = 1.0;
        $ptr = 3;
    case 3:
        nms_Block_dropBlockAsItemWithChance($this, $par1World, $par2, $par3, $par4, $par5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        var$8 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_BlockCarpet_canBlockStay = ($this, $par1World, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = $par3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return ($par2 ? 0 : 1) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $ptr);
},
nms_BlockCarpet_damageDropped = ($this, $par1) => {
    return $par1;
};
function nms_ItemBlock() {
    nms_Item.call(this);
    this.$blockID0 = 0;
}
let nms_ItemBlock__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
},
nms_ItemBlock__init_ = var_0 => {
    let var_1 = new nms_ItemBlock();
    nms_ItemBlock__init_0(var_1, var_0);
    return var_1;
},
nms_ItemBlock_getBlockID = $this => {
    return $this.$blockID0;
},
nms_ItemBlock_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var13, $var14, $var12, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var12 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        if ($var11 == nms_Block_snow.$blockID) {
            $ptr = 2;
            continue main;
        }
        if ($var11 != nms_Block_vine.$blockID && $var11 != nms_Block_tallGrass.$blockID && $var11 != nms_Block_deadBush.$blockID) {
            if (!$par7)
                $par5 = $par5 + (-1) | 0;
            if ($par7 == 1)
                $par5 = $par5 + 1 | 0;
            if ($par7 == 2)
                $par6 = $par6 + (-1) | 0;
            if ($par7 == 3)
                $par6 = $par6 + 1 | 0;
            if ($par7 == 4)
                $par4 = $par4 + (-1) | 0;
            if ($par7 == 5)
                $par4 = $par4 + 1 | 0;
        }
        if (!$par1ItemStack.$stackSize)
            return 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var13 = 1;
        else {
            nms_Item_$callClinit();
            $var13 = 1;
        }
        if (!$var13)
            return 0;
        if ($par5 == 255 && nms_Block_blocksList.data[$this.$blockID0].$blockMaterial.$isSolid())
            return 0;
        $var13 = $this.$blockID0;
        $var14 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (($var13 & 7) < 1)
            $par7 = 1;
        else if ($var11 != nms_Block_vine.$blockID && $var11 != nms_Block_tallGrass.$blockID && $var11 != nms_Block_deadBush.$blockID) {
            if (!$par7)
                $par5 = $par5 + (-1) | 0;
            if ($par7 == 1)
                $par5 = $par5 + 1 | 0;
            if ($par7 == 2)
                $par6 = $par6 + (-1) | 0;
            if ($par7 == 3)
                $par6 = $par6 + 1 | 0;
            if ($par7 == 4)
                $par4 = $par4 + (-1) | 0;
            if ($par7 == 5)
                $par4 = $par4 + 1 | 0;
        }
        if (!$par1ItemStack.$stackSize)
            return 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var13 = 1;
        else {
            nms_Item_$callClinit();
            $var13 = 1;
        }
        if (!$var13)
            return 0;
        if ($par5 == 255 && nms_Block_blocksList.data[$this.$blockID0].$blockMaterial.$isSolid())
            return 0;
        $var13 = $this.$blockID0;
        $var14 = 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_canPlaceEntityOnSide($par3World, $var13, $par4, $par5, $par6, $var14, $par7, $par2EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13)
            return 0;
        $var12 = nms_Block_blocksList.data[$this.$blockID0];
        $var13 = $this.$getMetadata($par1ItemStack.$itemDamage);
        var$15 = nms_Block_blocksList.data[$this.$blockID0];
        $ptr = 4;
    case 4:
        $tmp = var$15.$onBlockPlaced($par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $par7 = $this.$blockID0;
        $var13 = 3;
        $ptr = 5;
    case 5:
        $tmp = nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var14, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 1;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        $var13 = $this.$blockID0;
        if ($par7 == $var13) {
            var$15 = nms_Block_blocksList.data[$var13];
            $ptr = 8;
            continue main;
        }
        var$16 = $par4 + 0.5;
        var$17 = $par5 + 0.5;
        var$18 = $par6 + 0.5;
        $par2EntityPlayer = $var12.$stepSound.$getPlaceSound();
        $var12 = $var12.$stepSound;
        $par9 = ($var12.$stepSoundVolume + 1.0) / 2.0;
        $par8 = $var12.$stepSoundPitch * 0.800000011920929;
        $ptr = 7;
    case 7:
        nms_World_playSoundEffect($par3World, var$16, var$17, var$18, $par2EntityPlayer, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    case 8:
        var$15.$onBlockPlacedBy($par3World, $par4, $par5, $par6, $par2EntityPlayer, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par2EntityPlayer = nms_Block_blocksList.data[$this.$blockID0];
        $ptr = 9;
    case 9:
        $par2EntityPlayer.$onPostBlockPlaced($par3World, $par4, $par5, $par6, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $par4 + 0.5;
        var$17 = $par5 + 0.5;
        var$18 = $par6 + 0.5;
        $par2EntityPlayer = $var12.$stepSound.$getPlaceSound();
        $var12 = $var12.$stepSound;
        $par9 = ($var12.$stepSoundVolume + 1.0) / 2.0;
        $par8 = $var12.$stepSoundPitch * 0.800000011920929;
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var13, $var14, $var12, var$15, var$16, var$17, var$18, $ptr);
},
nms_ItemBlock_getUnlocalizedName0 = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_Block_$callClinit();
    $par1ItemStack = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(703));
    var$3 = var$2.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return $par1ItemStack;
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
},
nms_ItemBlock_getUnlocalizedName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    nms_Block_$callClinit();
    var$1 = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(703));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$1);
    $rt_throw(var$1);
},
nms_ItemCloth = $rt_classWithoutFields(nms_ItemBlock),
nms_ItemCloth__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemCloth__init_ = var_0 => {
    let var_1 = new nms_ItemCloth();
    nms_ItemCloth__init_0(var_1, var_0);
    return var_1;
},
nms_ItemCloth_getMetadata = ($this, $par1) => {
    return $par1;
},
nms_ItemCloth_getUnlocalizedName = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = nms_ItemBlock_getUnlocalizedName($this);
    $par1ItemStack = nms_ItemDye_dyeColorNames.data[($par1ItemStack.$itemDamage ^ (-1)) & 15];
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$5 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$5, var$5 + 1 | 0);
    var$3.$buffer.data[var$5] = 46;
    var$4 = var$3.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$6 = var$3.$buffer;
    var$7 = var$6.data;
    var$5 = var$3.$length0;
    var$8 = var$7.length;
    if (var$5 >= 0 && var$5 <= (var$8 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$6.data, 0, var$5);
        return $par1ItemStack;
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ItemStack);
    $rt_throw($par1ItemStack);
};
function nms_ItemMultiTextureTile() {
    let a = this; nms_ItemBlock.call(a);
    a.$theBlock = null;
    a.$field_82804_b = null;
}
let nms_ItemMultiTextureTile__init_0 = ($this, $par1, $par2Block, $par3ArrayOfStr) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
    $this.$theBlock = $par2Block;
    $this.$field_82804_b = $par3ArrayOfStr;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemMultiTextureTile__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_ItemMultiTextureTile();
    nms_ItemMultiTextureTile__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ItemMultiTextureTile_getMetadata = ($this, $par1) => {
    return $par1;
},
nms_ItemMultiTextureTile_getUnlocalizedName = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $var2 = $par1ItemStack.$itemDamage;
    if (!($var2 >= 0 && $var2 < $this.$field_82804_b.data.length))
        $var2 = 0;
    nms_Block_$callClinit();
    $par1ItemStack = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_StringBuilder_insert0(var$3, var$3.$length0, $rt_s(703));
    var$4 = var$3.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_StringBuilder_insert0(var$3, var$4, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$3 = $this.$field_82804_b.data[$var2];
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $par1ItemStack);
        var$4 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
        var$9.$buffer.data[var$4] = 46;
        $var2 = var$9.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, $var2, var$3);
        $par1ItemStack = new jl_String;
        var$5 = var$9.$buffer;
        var$6 = var$5.data;
        var$4 = var$9.$length0;
        var$7 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
            $par1ItemStack.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
            return $par1ItemStack;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_Exception__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
};
function nms_ItemSlab() {
    let a = this; nms_ItemBlock.call(a);
    a.$isFullBlock = 0;
    a.$theHalfSlab = null;
    a.$doubleSlab = null;
}
let nms_ItemSlab__init_0 = ($this, $par1, $par2BlockHalfSlab, $par3BlockHalfSlab, $par4) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
    $this.$theHalfSlab = $par2BlockHalfSlab;
    $this.$doubleSlab = $par3BlockHalfSlab;
    $this.$isFullBlock = $par4;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemSlab__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ItemSlab();
    nms_ItemSlab__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ItemSlab_getMetadata = ($this, $par1) => {
    return $par1;
},
nms_ItemSlab_getUnlocalizedName = ($this, $par1ItemStack) => {
    return $this.$theHalfSlab.$getFullSlabName($par1ItemStack.$itemDamage);
},
nms_ItemSlab_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, $var13, $var14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer
        = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isFullBlock) {
            $ptr = 1;
            continue main;
        }
        if (!$par1ItemStack.$stackSize)
            return 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var11 = 1;
        else {
            nms_Item_$callClinit();
            $var11 = 1;
        }
        if (!$var11)
            return 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_ItemBlock_onItemUse($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        return $par4;
    case 2:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var13 = $var12 & 7;
        $var14 = !($var12 & 8) ? 0 : 1;
        a: {
            if (!($par7 == 1 && !$var14)) {
                if ($par7)
                    break a;
                if (!$var14)
                    break a;
            }
            if ($var11 == $this.$theHalfSlab.$blockID && $var13 == $par1ItemStack.$itemDamage) {
                $par2EntityPlayer = $this.$doubleSlab;
                var$15 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$16 = $par4;
                var$17 = var$16 + $par2EntityPlayer.$minX1;
                var$18 = $par5;
                var$19 = var$18 + $par2EntityPlayer.$minY1;
                var$20 = $par6;
                var$21 = var$20 + $par2EntityPlayer.$minZ1;
                var$16 = var$16 + $par2EntityPlayer.$maxX1;
                var$18 = var$18 + $par2EntityPlayer.$maxY0;
                var$20 = var$20 + $par2EntityPlayer.$maxZ1;
                $par7 = var$15.$nextPoolIndex;
                $par2EntityPlayer = var$15.$listAABB;
                $var12 = $par2EntityPlayer.$size0;
                $var11 = $rt_compare($par7, $var12);
                if ($var11 >= 0) {
                    var$22 = new nms_AxisAlignedBB;
                    var$22.$minX0 = var$17;
                    var$22.$minY0 = var$19;
                    var$22.$minZ0 = var$21;
                    var$22.$maxX0 = var$16;
                    var$22.$maxY = var$18;
                    var$22.$maxZ0 = var$20;
                    ju_ArrayList_ensureCapacity($par2EntityPlayer, $var12 + 1 | 0);
                    var$23 = $par2EntityPlayer.$array.data;
                    $var11 = $par2EntityPlayer.$size0;
                    $par2EntityPlayer.$size0 = $var11 + 1 | 0;
                    var$23[$var11] = var$22;
                    $par2EntityPlayer.$modCount = $par2EntityPlayer.$modCount + 1 | 0;
                } else if ($par7 >= 0 && $var11 < 0) {
                    var$22 = $par2EntityPlayer.$array.data[$par7];
                    var$22.$minX0 = var$17;
                    var$22.$minY0 = var$19;
                    var$22.$minZ0 = var$21;
                    var$22.$maxX0 = var$16;
                    var$22.$maxY = var$18;
                    var$22.$maxZ0 = var$20;
                } else {
                    $par1ItemStack = new jl_IndexOutOfBoundsException;
                    $par1ItemStack.$suppressionEnabled = 1;
                    $par1ItemStack.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1ItemStack);
                    $rt_throw($par1ItemStack);
                }
                var$15.$nextPoolIndex = var$15.$nextPoolIndex + 1 | 0;
                $par2EntityPlayer = null;
                $ptr = 6;
                continue main;
            }
        }
        $ptr = 4;
    case 4:
        $tmp = nms_ItemSlab_func_77888_a($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11)
            return 1;
        $ptr = 5;
    case 5:
        $tmp = nms_ItemBlock_onItemUse($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        return $par4;
    case 6:
        $tmp = nms_World_checkNoEntityCollision($par3World, var$22, $par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 1;
        $var11 = $this.$doubleSlab.$blockID;
        $par7 = 3;
        $ptr = 7;
    case 7:
        $tmp = nms_World_setBlock($par3World, $par4, $par5, $par6, $var11, $var13, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 1;
        var$16 = $par4 + 0.5;
        var$17 = $par5 + 0.5;
        var$18 = $par6 + 0.5;
        $par2EntityPlayer = $this.$doubleSlab.$stepSound.$getPlaceSound();
        var$15 = $this.$doubleSlab.$stepSound;
        $par9 = (var$15.$stepSoundVolume + 1.0) / 2.0;
        $par8 = var$15.$stepSoundPitch * 0.800000011920929;
        $ptr = 8;
    case 8:
        nms_World_playSoundEffect($par3World, var$16, var$17, var$18, $par2EntityPlayer, $par9, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, $var13, $var14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_ItemSlab_func_77888_a = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, $var10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par7)
            $par5 = $par5 + (-1) | 0;
        if ($par7 == 1)
            $par5 = $par5 + 1 | 0;
        if ($par7 == 2)
            $par6 = $par6 + (-1) | 0;
        if ($par7 == 3)
            $par6 = $par6 + 1 | 0;
        if ($par7 == 4)
            $par4 = $par4 + (-1) | 0;
        if ($par7 == 5)
            $par4 = $par4 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var10 = $var9 & 7;
        if ($var8 == $this.$theHalfSlab.$blockID && $var10 == $par1ItemStack.$itemDamage) {
            $par2EntityPlayer = $this.$doubleSlab;
            var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$12 = $par4;
            var$13 = var$12 + $par2EntityPlayer.$minX1;
            var$14 = $par5;
            var$15 = var$14 + $par2EntityPlayer.$minY1;
            var$16 = $par6;
            var$17 = var$16 + $par2EntityPlayer.$minZ1;
            var$18 = var$12 + $par2EntityPlayer.$maxX1;
            var$12 = var$14 + $par2EntityPlayer.$maxY0;
            var$14 = var$16 + $par2EntityPlayer.$maxZ1;
            $par7 = var$11.$nextPoolIndex;
            $par2EntityPlayer = var$11.$listAABB;
            $var9 = $par2EntityPlayer.$size0;
            $var8 = $rt_compare($par7, $var9);
            if ($var8 >= 0) {
                var$19 = new nms_AxisAlignedBB;
                var$19.$minX0 = var$13;
                var$19.$minY0 = var$15;
                var$19.$minZ0 = var$17;
                var$19.$maxX0 = var$18;
                var$19.$maxY = var$12;
                var$19.$maxZ0 = var$14;
                ju_ArrayList_ensureCapacity($par2EntityPlayer, $var9 + 1 | 0);
                var$20 = $par2EntityPlayer.$array.data;
                $var8 = $par2EntityPlayer.$size0;
                $par2EntityPlayer.$size0 = $var8 + 1 | 0;
                var$20[$var8] = var$19;
                $par2EntityPlayer.$modCount = $par2EntityPlayer.$modCount + 1 | 0;
            } else if ($par7 >= 0 && $var8 < 0) {
                var$19 = $par2EntityPlayer.$array.data[$par7];
                var$19.$minX0 = var$13;
                var$19.$minY0 = var$15;
                var$19.$minZ0 = var$17;
                var$19.$maxX0 = var$18;
                var$19.$maxY = var$12;
                var$19.$maxZ0 = var$14;
            } else {
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                $par1ItemStack.$suppressionEnabled = 1;
                $par1ItemStack.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1ItemStack);
                $rt_throw($par1ItemStack);
            }
            var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
            $par2EntityPlayer = null;
            $ptr = 3;
            continue main;
        }
        return 0;
    case 3:
        $tmp = nms_World_checkNoEntityCollision($par3World, var$19, $par2EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 1;
        $par7 = $this.$doubleSlab.$blockID;
        $var8 = 3;
        $ptr = 4;
    case 4:
        $tmp = nms_World_setBlock($par3World, $par4, $par5, $par6, $par7, $var10, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par7 = $tmp;
        if (!$par7)
            return 1;
        var$12 = $par4 + 0.5;
        var$13 = $par5 + 0.5;
        var$14 = $par6 + 0.5;
        $par2EntityPlayer = $this.$doubleSlab.$stepSound.$getPlaceSound();
        var$19 = $this.$doubleSlab.$stepSound;
        var$21 = (var$19.$stepSoundVolume + 1.0) / 2.0;
        var$22 = var$19.$stepSoundPitch * 0.800000011920929;
        $ptr = 5;
    case 5:
        nms_World_playSoundEffect($par3World, var$12, var$13, var$14, $par2EntityPlayer, var$21, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $var8, $var9, $var10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_ItemLeaves = $rt_classWithoutFields(nms_ItemBlock),
nms_ItemLeaves__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemLeaves__init_ = var_0 => {
    let var_1 = new nms_ItemLeaves();
    nms_ItemLeaves__init_0(var_1, var_0);
    return var_1;
},
nms_ItemLeaves_getMetadata = ($this, $par1) => {
    return $par1 | 4;
},
nms_ItemLeaves_getUnlocalizedName = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $var2 = $par1ItemStack.$itemDamage;
    if (!($var2 >= 0 && $var2 < nms_BlockLeaves_LEAF_TYPES.data.length))
        $var2 = 0;
    nms_Block_$callClinit();
    $par1ItemStack = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_StringBuilder_insert0(var$3, var$3.$length0, $rt_s(703));
    var$4 = var$3.$length0;
    if ($par1ItemStack === null)
        $par1ItemStack = $rt_s(1);
    jl_StringBuilder_insert0(var$3, var$4, $par1ItemStack);
    $par1ItemStack = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        $par1ItemStack.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$3 = nms_BlockLeaves_LEAF_TYPES.data[$var2];
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $par1ItemStack);
        var$4 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
        var$9.$buffer.data[var$4] = 46;
        $var2 = var$9.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, $var2, var$3);
        $par1ItemStack = new jl_String;
        var$5 = var$9.$buffer;
        var$6 = var$5.data;
        var$4 = var$9.$length0;
        var$7 = var$6.length;
        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
            $par1ItemStack.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
            return $par1ItemStack;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    jl_Exception__init_($par1ItemStack);
    $rt_throw($par1ItemStack);
};
function nms_ItemColored() {
    let a = this; nms_ItemBlock.call(a);
    a.$blockRef = null;
    a.$blockNames = null;
}
let nms_ItemColored__init_0 = ($this, $par1, $par2) => {
    nms_Item__init_($this, $par1);
    $par1 = $par1 + 256 | 0;
    $this.$blockID0 = $par1;
    nms_Block_$callClinit();
    $this.$blockRef = nms_Block_blocksList.data[$par1];
    if ($par2) {
        $this.$maxDamage = 0;
        $this.$hasSubtypes = 1;
    }
},
nms_ItemColored__init_ = (var_0, var_1) => {
    let var_2 = new nms_ItemColored();
    nms_ItemColored__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ItemColored_getMetadata = ($this, $par1) => {
    return $par1;
},
nms_ItemColored_setBlockNames = ($this, $par1ArrayOfStr) => {
    $this.$blockNames = $par1ArrayOfStr;
    return $this;
},
nms_ItemColored_getUnlocalizedName = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9;
    var$2 = $this.$blockNames;
    if (var$2 === null) {
        nms_Block_$callClinit();
        $par1ItemStack = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert0(var$3, var$3.$length0, $rt_s(703));
        var$4 = var$3.$length0;
        if ($par1ItemStack === null)
            $par1ItemStack = $rt_s(1);
        jl_StringBuilder_insert0(var$3, var$4, $par1ItemStack);
        $par1ItemStack = new jl_String;
        var$2 = var$3.$buffer;
        var$5 = var$2.data;
        var$6 = var$3.$length0;
        var$7 = var$5.length;
        if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
            $par1ItemStack.$nativeString = $rt_charArrayToString(var$2.data, 0, var$6);
            return $par1ItemStack;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        jl_Exception__init_($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    a: {
        b: {
            $var2 = $par1ItemStack.$itemDamage;
            if ($var2 >= 0 && $var2 < var$2.data.length) {
                nms_Block_$callClinit();
                $par1ItemStack = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                jl_StringBuilder_insert0(var$3, var$3.$length0, $rt_s(703));
                var$4 = var$3.$length0;
                if ($par1ItemStack === null)
                    $par1ItemStack = $rt_s(1);
                jl_StringBuilder_insert0(var$3, var$4, $par1ItemStack);
                $par1ItemStack = new jl_String;
                var$2 = var$3.$buffer;
                var$5 = var$2.data;
                var$6 = var$3.$length0;
                var$7 = var$5.length;
                if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
                    $par1ItemStack.$nativeString = $rt_charArrayToString(var$2.data, 0, var$6);
                    var$3 = $this.$blockNames.data[$var2];
                    var$9 = new jl_StringBuilder;
                    var$9.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $par1ItemStack);
                    var$6 = var$9.$length0;
                    jl_AbstractStringBuilder_insertSpace(var$9, var$6, var$6 + 1 | 0);
                    var$9.$buffer.data[var$6] = 46;
                    var$4 = var$9.$length0;
                    if (var$3 === null)
                        var$3 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$9, var$4, var$3);
                    $par1ItemStack = new jl_String;
                    var$2 = var$9.$buffer;
                    var$5 = var$2.data;
                    var$6 = var$9.$length0;
                    var$7 = var$5.length;
                    if (var$6 < 0)
                        break a;
                    if (var$6 > (var$7 - 0 | 0))
                        break a;
                    $par1ItemStack.$nativeString = $rt_charArrayToString(var$2.data, 0, var$6);
                    break b;
                }
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                jl_Exception__init_($par1ItemStack);
                $rt_throw($par1ItemStack);
            }
            nms_Block_$callClinit();
            $par1ItemStack = nms_Block_blocksList.data[$this.$blockID0].$unlocalizedName0;
            var$3 = new jl_StringBuilder;
            var$3.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert0(var$3, var$3.$length0, $rt_s(703));
            var$4 = var$3.$length0;
            if ($par1ItemStack === null)
                $par1ItemStack = $rt_s(1);
            jl_StringBuilder_insert0(var$3, var$4, $par1ItemStack);
            $par1ItemStack = new jl_String;
            var$2 = var$3.$buffer;
            var$5 = var$2.data;
            var$6 = var$3.$length0;
            var$7 = var$5.length;
            if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0))
                $par1ItemStack.$nativeString = $rt_charArrayToString(var$2.data, 0, var$6);
            else {
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                jl_Exception__init_($par1ItemStack);
                $rt_throw($par1ItemStack);
            }
        }
        return $par1ItemStack;
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1ItemStack);
    $rt_throw($par1ItemStack);
};
function nms_ItemBlockWithMetadata() {
    nms_ItemBlock.call(this);
    this.$theBlock0 = null;
}
let nms_ItemBlockWithMetadata_getMetadata = ($this, $par1) => {
    return $par1;
},
nms_ItemSnow = $rt_classWithoutFields(nms_ItemBlockWithMetadata),
nms_ItemSnow__init_ = ($this, $par1, $par2Block) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
    $this.$theBlock0 = $par2Block;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemSnow__init_0 = (var_0, var_1) => {
    let var_2 = new nms_ItemSnow();
    nms_ItemSnow__init_(var_2, var_0, var_1);
    return var_2;
},
nms_ItemSnow_onItemUse = ($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, $var13, $var14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3World = $thread.pop();$par2EntityPlayer = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1ItemStack.$stackSize)
            return 0;
        if ($par2EntityPlayer.$capabilities.$allowEdit)
            $var11 = 1;
        else {
            nms_Item_$callClinit();
            $var11 = 1;
        }
        if (!$var11)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        if ($var11 != nms_Block_snow.$blockID) {
            $ptr = 2;
            continue main;
        }
        $var12 = nms_Block_blocksList.data[$this.$blockID0];
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_ItemBlock_onItemUse($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        return $par4;
    case 3:
        $tmp = nms_World_getBlockMetadata($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var14 = $var13 & 7;
        if ($var14 > 6) {
            $ptr = 2;
            continue main;
        }
        $ptr = 4;
    case 4:
        $tmp = $var12.$getCollisionBoundingBoxFromPool($par3World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        var$16 = null;
        $ptr = 5;
    case 5:
        $tmp = nms_World_checkNoEntityCollision($par3World, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11) {
            $ptr = 2;
            continue main;
        }
        $var11 = ($var14 + 1 | 0) | $var13 & (-8);
        $var13 = 2;
        $ptr = 6;
    case 6:
        $tmp = nms_World_setBlockMetadataWithNotify($par3World, $par4, $par5, $par6, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11) {
            $ptr = 2;
            continue main;
        }
        var$17 = $par4 + 0.5;
        var$18 = $par5 + 0.5;
        var$19 = $par6 + 0.5;
        $par2EntityPlayer = $var12.$stepSound.$getPlaceSound();
        $var12 = $var12.$stepSound;
        $par8 = ($var12.$stepSoundVolume + 1.0) / 2.0;
        $par9 = $var12.$stepSoundPitch * 0.800000011920929;
        $ptr = 7;
    case 7:
        nms_World_playSoundEffect($par3World, var$17, var$18, var$19, $par2EntityPlayer, $par8, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2EntityPlayer, $par3World, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, $var13, $var14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_ItemLilyPad = $rt_classWithoutFields(nms_ItemColored),
nms_ItemLilyPad__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $par1 = $par1 + 256 | 0;
    $this.$blockID0 = $par1;
    nms_Block_$callClinit();
    $this.$blockRef = nms_Block_blocksList.data[$par1];
},
nms_ItemLilyPad__init_ = var_0 => {
    let var_1 = new nms_ItemLilyPad();
    nms_ItemLilyPad__init_0(var_1, var_0);
    return var_1;
},
nms_ItemLilyPad_onItemRightClick = ($this, $par1ItemStack, $par2World, $par3EntityPlayer) => {
    let var$4, $var4, $var5, $var6, $var7, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2World = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_Item_getMovingObjectPositionFromPlayer($this, $par2World, $par3EntityPlayer, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return $par1ItemStack;
        if ($var4.$typeOfHit !== nms_EnumMovingObjectType_TILE)
            return $par1ItemStack;
        $var5 = $var4.$blockX;
        $var6 = $var4.$blockY;
        $var7 = $var4.$blockZ;
        if (!($par3EntityPlayer.$capabilities.$allowEdit ? 1 : $par1ItemStack === null ? 0 : 1))
            return $par1ItemStack;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par2World, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4) {
            nms_Material_$callClinit();
            $var4 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var4 = nms_Block_blocksList.data[var$4].$blockMaterial;
        }
        nms_Material_$callClinit();
        if ($var4 !== nms_Material_water)
            return $par1ItemStack;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par2World, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4)
            return $par1ItemStack;
        var$4 = $var6 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par2World, $var5, var$4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 ? 0 : 1))
            return $par1ItemStack;
        nms_Block_$callClinit();
        $var6 = nms_Block_waterlily.$blockID;
        var$9 = 0;
        var$10 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par2World, $var5, var$4, $var7, $var6, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3EntityPlayer.$capabilities.$isCreativeMode)
            $par1ItemStack.$stackSize = $par1ItemStack.$stackSize - 1 | 0;
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2World, $par3EntityPlayer, var$4, $var4, $var5, $var6, $var7, var$9, var$10, $ptr);
},
nms_ItemPiston = $rt_classWithoutFields(nms_ItemBlock),
nms_ItemPiston__init_0 = ($this, $par1) => {
    nms_Item__init_($this, $par1);
    $this.$blockID0 = $par1 + 256 | 0;
},
nms_ItemPiston__init_ = var_0 => {
    let var_1 = new nms_ItemPiston();
    nms_ItemPiston__init_0(var_1, var_0);
    return var_1;
},
nms_ItemPiston_getMetadata = ($this, $par1) => {
    return 7;
},
nms_ItemAnvilBlock = $rt_classWithoutFields(nms_ItemMultiTextureTile),
nms_ItemAnvilBlock__init_0 = ($this, $par1Block) => {
    let var$2, var$3;
    var$2 = $par1Block.$blockID - 256 | 0;
    var$3 = nms_BlockAnvil_statuses;
    nms_Item__init_($this, var$2);
    $this.$blockID0 = var$2 + 256 | 0;
    $this.$theBlock = $par1Block;
    $this.$field_82804_b = var$3;
    $this.$maxDamage = 0;
    $this.$hasSubtypes = 1;
},
nms_ItemAnvilBlock__init_ = var_0 => {
    let var_1 = new nms_ItemAnvilBlock();
    nms_ItemAnvilBlock__init_0(var_1, var_0);
    return var_1;
},
nms_ItemAnvilBlock_getMetadata = ($this, $par1) => {
    return $par1 << 2;
},
nms_NBTTagEnd = $rt_classWithoutFields(nms_NBTBase),
nms_NBTTagEnd__init_ = $this => {
    $this.$name = $rt_s(3);
},
nms_NBTTagEnd__init_0 = () => {
    let var_0 = new nms_NBTTagEnd();
    nms_NBTTagEnd__init_(var_0);
    return var_0;
},
nms_NBTTagEnd_load = ($this, $par1DataInput, $par2) => {
    return;
},
nms_NBTTagEnd_write = ($this, $par1DataOutput) => {
    return;
},
nms_NBTTagEnd_getId = $this => {
    return 0;
},
nms_NBTTagEnd_toString = $this => {
    return $rt_s(296);
},
nms_NBTTagEnd_copy = $this => {
    let var$1;
    var$1 = new nms_NBTTagEnd;
    var$1.$name = $rt_s(3);
    return var$1;
},
jl_NegativeArraySizeException = $rt_classWithoutFields(jl_RuntimeException),
jl_NegativeArraySizeException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_NegativeArraySizeException__init_0 = () => {
    let var_0 = new jl_NegativeArraySizeException();
    jl_NegativeArraySizeException__init_(var_0);
    return var_0;
},
jnci_AsciiCharset = $rt_classWithoutFields(jnc_Charset),
jnci_AsciiCharset__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_String, 0);
    var$2 = var$1.data;
    jnc_Charset_checkCanonicalName($rt_s(899));
    var$3 = var$2.length;
    var$4 = 0;
    while (var$4 < var$3) {
        jnc_Charset_checkCanonicalName(var$2[var$4]);
        var$4 = var$4 + 1 | 0;
    }
    $this.$canonicalName = $rt_s(899);
    $this.$aliases = var$1.$clone0();
},
jnci_AsciiCharset__init_0 = () => {
    let var_0 = new jnci_AsciiCharset();
    jnci_AsciiCharset__init_(var_0);
    return var_0;
},
jnci_AsciiCharset_newDecoder = $this => {
    let var$1;
    var$1 = new jnci_AsciiDecoder;
    jnc_CharsetDecoder__init_(var$1, $this, 1.0, 1.0);
    var$1.$inArray0 = $rt_createByteArray(512);
    var$1.$outArray0 = $rt_createCharArray(512);
    return var$1;
},
jnci_AsciiCharset_newEncoder = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jnci_AsciiEncoder;
    var$2 = $rt_createByteArray(1);
    var$3 = var$2.data;
    var$3[0] = 63;
    var$4 = jnc_CodingErrorAction_REPORT;
    var$1.$malformedAction = var$4;
    var$1.$unmappableAction = var$4;
    var$5 = var$3.length;
    if (var$5 && var$5 >= var$1.$maxBytesPerChar) {
        var$1.$charset0 = $this;
        var$1.$replacement1 = var$2.$clone0();
        var$1.$averageBytesPerChar = 1.0;
        var$1.$maxBytesPerChar = 1.0;
        var$1.$inArray = $rt_createCharArray(512);
        var$1.$outArray = $rt_createByteArray(512);
        return var$1;
    }
    var$4 = new jl_IllegalArgumentException;
    jl_Throwable__init_0(var$4, $rt_s(910));
    $rt_throw(var$4);
},
jnci_Iso8859Charset = $rt_classWithoutFields(jnc_Charset),
jnci_Iso8859Charset__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_String, 0);
    var$2 = var$1.data;
    jnc_Charset_checkCanonicalName($rt_s(900));
    var$3 = var$2.length;
    var$4 = 0;
    while (var$4 < var$3) {
        jnc_Charset_checkCanonicalName(var$2[var$4]);
        var$4 = var$4 + 1 | 0;
    }
    $this.$canonicalName = $rt_s(900);
    $this.$aliases = var$1.$clone0();
},
jnci_Iso8859Charset__init_0 = () => {
    let var_0 = new jnci_Iso8859Charset();
    jnci_Iso8859Charset__init_(var_0);
    return var_0;
},
jnci_Iso8859Charset_newDecoder = $this => {
    let var$1;
    var$1 = new jnci_Iso8859Decoder;
    jnc_CharsetDecoder__init_(var$1, $this, 1.0, 1.0);
    var$1.$inArray0 = $rt_createByteArray(512);
    var$1.$outArray0 = $rt_createCharArray(512);
    return var$1;
},
jnci_Iso8859Charset_newEncoder = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new jnci_Iso8859Encoder;
    var$2 = $rt_createByteArray(1);
    var$3 = var$2.data;
    var$3[0] = 63;
    var$4 = jnc_CodingErrorAction_REPORT;
    var$1.$malformedAction = var$4;
    var$1.$unmappableAction = var$4;
    var$5 = var$3.length;
    if (var$5 && var$5 >= var$1.$maxBytesPerChar) {
        var$1.$charset0 = $this;
        var$1.$replacement1 = var$2.$clone0();
        var$1.$averageBytesPerChar = 1.0;
        var$1.$maxBytesPerChar = 1.0;
        var$1.$inArray = $rt_createCharArray(512);
        var$1.$outArray = $rt_createByteArray(512);
        return var$1;
    }
    var$4 = new jl_IllegalArgumentException;
    jl_Throwable__init_0(var$4, $rt_s(910));
    $rt_throw(var$4);
};
function jnci_UTF16Charset() {
    let a = this; jnc_Charset.call(a);
    a.$bom = 0;
    a.$littleEndian = 0;
}
let jnci_UTF16Charset_newDecoder = $this => {
    let var$1, var$2, var$3;
    var$1 = new jnci_UTF16Decoder;
    var$2 = $this.$bom;
    var$3 = $this.$littleEndian;
    jnc_CharsetDecoder__init_(var$1, $this, 0.5, 0.5);
    var$1.$inArray0 = $rt_createByteArray(512);
    var$1.$outArray0 = $rt_createCharArray(512);
    var$1.$bom1 = var$2;
    var$1.$littleEndian0 = var$3;
    return var$1;
},
jnci_UTF16Charset_newEncoder = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = new jnci_UTF16Encoder;
    var$2 = $this.$bom;
    var$3 = $this.$littleEndian;
    var$4 = $rt_createByteArray(1);
    var$5 = var$4.data;
    var$5[0] = 63;
    var$6 = jnc_CodingErrorAction_REPORT;
    var$1.$malformedAction = var$6;
    var$1.$unmappableAction = var$6;
    var$7 = var$5.length;
    if (var$7 && var$7 >= var$1.$maxBytesPerChar) {
        var$1.$charset0 = $this;
        var$1.$replacement1 = var$4.$clone0();
        var$1.$averageBytesPerChar = 2.0;
        var$1.$maxBytesPerChar = 4.0;
        var$1.$inArray = $rt_createCharArray(512);
        var$1.$outArray = $rt_createByteArray(512);
        var$1.$bom0 = var$2;
        var$1.$littleEndian1 = var$3;
        return var$1;
    }
    var$6 = new jl_IllegalArgumentException;
    jl_Throwable__init_0(var$6, $rt_s(910));
    $rt_throw(var$6);
};
function jt_DateFormatSymbols() {
    let a = this; jl_Object.call(a);
    a.$locale = null;
    a.$ampms0 = null;
    a.$eras0 = null;
    a.$months0 = null;
    a.$shortMonths0 = null;
    a.$shortWeekdays = null;
    a.$weekdays = null;
    a.$zoneStrings = null;
}
let jt_DateFormatSymbols__init_ = $this => {
    ju_Locale_$callClinit();
    $this.$locale = ju_Locale_defaultLocale;
},
jt_DateFormatSymbols__init_0 = () => {
    let var_0 = new jt_DateFormatSymbols();
    jt_DateFormatSymbols__init_(var_0);
    return var_0;
},
jt_DateFormatSymbols_clone = $this => {
    let $symbols, var$2, var$3, $i, var$5, var$6, var$7, var$8, var$9, var$10;
    $symbols = new jt_DateFormatSymbols;
    $symbols.$locale = $this.$locale;
    var$2 = $this.$ampms0;
    if (var$2 !== null) {
        var$3 = var$2.data;
        $i = var$3.length;
        var$5 = var$2.constructor;
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = var$5.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = var$5;
                var$5.classObject = var$6;
            }
        }
        var$6 = jl_Class_getComponentType(var$6);
        if (var$6 === null) {
            $symbols = new jl_NullPointerException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if (var$6 === $rt_cls($rt_voidcls)) {
            $symbols = new jl_IllegalArgumentException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if ($i < 0) {
            $symbols = new jl_NegativeArraySizeException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        var$7 = jlr_Array_newInstanceImpl(var$6.$platformClass, $i);
        var$8 = 0;
        while (var$8 < $i) {
            var$7.data[var$8] = var$3[var$8];
            var$8 = var$8 + 1 | 0;
        }
        $symbols.$ampms0 = var$7;
    }
    var$2 = $this.$eras0;
    if (var$2 !== null) {
        var$3 = var$2.data;
        $i = var$3.length;
        var$5 = var$2.constructor;
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = var$5.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = var$5;
                var$5.classObject = var$6;
            }
        }
        var$6 = jl_Class_getComponentType(var$6);
        if (var$6 === null) {
            $symbols = new jl_NullPointerException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if (var$6 === $rt_cls($rt_voidcls)) {
            $symbols = new jl_IllegalArgumentException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if ($i < 0) {
            $symbols = new jl_NegativeArraySizeException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        var$7 = jlr_Array_newInstanceImpl(var$6.$platformClass, $i);
        var$8 = 0;
        while (var$8 < $i) {
            var$7.data[var$8] = var$3[var$8];
            var$8 = var$8 + 1 | 0;
        }
        $symbols.$eras0 = var$7;
    }
    var$2 = $this.$months0;
    if (var$2 !== null) {
        var$3 = var$2.data;
        $i = var$3.length;
        var$5 = var$2.constructor;
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = var$5.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = var$5;
                var$5.classObject = var$6;
            }
        }
        var$6 = jl_Class_getComponentType(var$6);
        if (var$6 === null) {
            $symbols = new jl_NullPointerException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if (var$6 === $rt_cls($rt_voidcls)) {
            $symbols = new jl_IllegalArgumentException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if ($i < 0) {
            $symbols = new jl_NegativeArraySizeException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        var$7 = jlr_Array_newInstanceImpl(var$6.$platformClass, $i);
        var$8 = 0;
        while (var$8 < $i) {
            var$7.data[var$8] = var$3[var$8];
            var$8 = var$8 + 1 | 0;
        }
        $symbols.$months0 = var$7;
    }
    var$2 = $this.$shortMonths0;
    if (var$2 !== null) {
        var$3 = var$2.data;
        $i = var$3.length;
        var$5 = var$2.constructor;
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = var$5.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = var$5;
                var$5.classObject = var$6;
            }
        }
        var$6 = jl_Class_getComponentType(var$6);
        if (var$6 === null) {
            $symbols = new jl_NullPointerException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if (var$6 === $rt_cls($rt_voidcls)) {
            $symbols = new jl_IllegalArgumentException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if ($i < 0) {
            $symbols = new jl_NegativeArraySizeException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        var$7 = jlr_Array_newInstanceImpl(var$6.$platformClass, $i);
        var$8 = 0;
        while (var$8 < $i) {
            var$7.data[var$8] = var$3[var$8];
            var$8 = var$8 + 1 | 0;
        }
        $symbols.$shortMonths0 = var$7;
    }
    var$2 = $this.$shortWeekdays;
    if (var$2 !== null) {
        var$3 = var$2.data;
        var$2 = var$2.$clone0();
        $i = var$3.length;
        var$5 = var$2.constructor;
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = var$5.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = var$5;
                var$5.classObject = var$6;
            }
        }
        var$6 = jl_Class_getComponentType(var$6);
        if (var$6 === null) {
            $symbols = new jl_NullPointerException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if (var$6 === $rt_cls($rt_voidcls)) {
            $symbols = new jl_IllegalArgumentException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if ($i < 0) {
            $symbols = new jl_NegativeArraySizeException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        var$2 = var$2.data;
        var$6 = jlr_Array_newInstanceImpl(var$6.$platformClass, $i);
        var$8 = var$2.length;
        if ($i < var$8)
            var$8 = $i;
        $i = 0;
        while ($i < var$8) {
            var$6.data[$i] = var$2[$i];
            $i = $i + 1 | 0;
        }
        $symbols.$shortWeekdays = var$6;
    }
    var$2 = $this.$weekdays;
    if (var$2 !== null) {
        var$3 = var$2.data;
        $i = var$3.length;
        var$5 = var$2.constructor;
        if (var$5 === null)
            var$6 = null;
        else {
            var$6 = var$5.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = var$5;
                var$5.classObject = var$6;
            }
        }
        var$6 = jl_Class_getComponentType(var$6);
        if (var$6 === null) {
            $symbols = new jl_NullPointerException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if (var$6 === $rt_cls($rt_voidcls)) {
            $symbols = new jl_IllegalArgumentException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        if ($i < 0) {
            $symbols = new jl_NegativeArraySizeException;
            $symbols.$suppressionEnabled = 1;
            $symbols.$writableStackTrace = 1;
            $rt_throw($symbols);
        }
        var$7 = jlr_Array_newInstanceImpl(var$6.$platformClass, $i);
        var$8 = 0;
        while (var$8 < $i) {
            var$7.data[var$8] = var$3[var$8];
            var$8 = var$8 + 1 | 0;
        }
        $symbols.$weekdays = var$7;
    }
    a: {
        var$2 = $this.$zoneStrings;
        if (var$2 !== null) {
            $symbols.$zoneStrings = $rt_createArray($rt_arraycls(jl_String), var$2.data.length);
            $i = 0;
            while (true) {
                var$2 = $this.$zoneStrings.data;
                if ($i >= var$2.length)
                    break a;
                var$3 = $symbols.$zoneStrings;
                var$9 = var$2[$i];
                var$8 = var$2[$i].data.length;
                var$5 = var$9.constructor;
                if (var$5 === null)
                    var$6 = null;
                else {
                    var$6 = var$5.classObject;
                    if (var$6 === null) {
                        var$6 = new jl_Class;
                        var$6.$platformClass = var$5;
                        var$5.classObject = var$6;
                    }
                }
                var$6 = jl_Class_getComponentType(var$6);
                if (var$6 === null) {
                    $symbols = new jl_NullPointerException;
                    $symbols.$suppressionEnabled = 1;
                    $symbols.$writableStackTrace = 1;
                    $rt_throw($symbols);
                }
                if (var$6 === $rt_cls($rt_voidcls)) {
                    $symbols = new jl_IllegalArgumentException;
                    $symbols.$suppressionEnabled = 1;
                    $symbols.$writableStackTrace = 1;
                    $rt_throw($symbols);
                }
                if (var$8 < 0) {
                    $symbols = new jl_NegativeArraySizeException;
                    $symbols.$suppressionEnabled = 1;
                    $symbols.$writableStackTrace = 1;
                    $rt_throw($symbols);
                }
                var$2 = var$9.data;
                var$7 = jlr_Array_newInstanceImpl(var$6.$platformClass, var$8);
                var$10 = var$2.length;
                if (var$8 < var$10)
                    var$10 = var$8;
                var$8 = 0;
                while (var$8 < var$10) {
                    var$7.data[var$8] = var$2[var$8];
                    var$8 = var$8 + 1 | 0;
                }
                var$3.data[$i] = var$7;
                $i = $i + 1 | 0;
            }
        }
    }
    return $symbols;
},
jt_DateFormatSymbols_getShortWeekdays = $this => {
    let var$1, var$2, var$3, $cldrWeekdays, $i, var$6, var$7, $i_0;
    a: {
        if ($this.$shortWeekdays === null) {
            $this.$shortWeekdays = $rt_createArray(jl_String, 8);
            var$1 = $this.$locale;
            var$2 = var$1.$languageCode;
            var$3 = var$1.$countryCode;
            if (otciu_CLDRHelper_$$metadata$$6 === null)
                otciu_CLDRHelper_$$metadata$$6 = otciu_CLDRHelper_getShortWeekdayMap$$create();
            $cldrWeekdays = otciu_CLDRHelper_resolveDateFormatSymbols(otciu_CLDRHelper_$$metadata$$6, var$2, var$3);
            $i = 0;
            while (true) {
                if ($i >= 7)
                    break a;
                var$6 = $cldrWeekdays.data;
                var$7 = $this.$shortWeekdays.data;
                $i_0 = $i + 1 | 0;
                var$7[$i_0] = var$6[$i];
                $i = $i_0;
            }
        }
    }
    return $this.$shortWeekdays.$clone0();
},
jt_DateFormatSymbols_getWeekdays = $this => {
    let var$1, var$2, var$3, $cldrWeekdays, $i, var$6, var$7, $i_0;
    a: {
        if ($this.$weekdays === null) {
            $this.$weekdays = $rt_createArray(jl_String, 8);
            var$1 = $this.$locale;
            var$2 = var$1.$languageCode;
            var$3 = var$1.$countryCode;
            if (otciu_CLDRHelper_$$metadata$$5 === null)
                otciu_CLDRHelper_$$metadata$$5 = otciu_CLDRHelper_getWeekdayMap$$create();
            $cldrWeekdays = otciu_CLDRHelper_resolveDateFormatSymbols(otciu_CLDRHelper_$$metadata$$5, var$2, var$3);
            $i = 0;
            while (true) {
                if ($i >= 7)
                    break a;
                var$6 = $cldrWeekdays.data;
                var$7 = $this.$weekdays.data;
                $i_0 = $i + 1 | 0;
                var$7[$i_0] = var$6[$i];
                $i = $i_0;
            }
        }
    }
    return $this.$weekdays.$clone0();
},
nms_IBehaviorDispenseItem = $rt_classWithoutFields(0),
nms_IBehaviorDispenseItem_itemDispenseBehaviorProvider = null,
nms_IBehaviorDispenseItem__clinit_ = () => {
    nms_IBehaviorDispenseItem_itemDispenseBehaviorProvider = new nms_BehaviorDispenseItemProvider;
},
nms_BehaviorDefaultDispenseItem = $rt_classWithoutFields(),
nms_BehaviorDefaultDispenseItem__init_ = $this => {
    return;
},
nms_BehaviorDefaultDispenseItem__init_0 = () => {
    let var_0 = new nms_BehaviorDefaultDispenseItem();
    nms_BehaviorDefaultDispenseItem__init_(var_0);
    return var_0;
},
nms_BehaviorDefaultDispenseItem_dispense = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$dispenseStack($par1IBlockSource, $par2ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $ptr = 2;
    case 2:
        $this.$playDispenseSound($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $par2ItemStack = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par2ItemStack, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[var$4 % var$7.length | 0];
        $par2ItemStack = $par1IBlockSource.$worldObj4;
        var$4 = 2000;
        var$9 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$10 = $par1IBlockSource.$zPos;
        var$6 = (var$8.$frontOffsetX + 1 | 0) + ((var$8.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 4;
    case 4:
        nms_World_playAuxSFXAtEntity($par2ItemStack, $par1IBlockSource, var$4, var$9, var$5, var$10, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_BehaviorDefaultDispenseItem_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $var4, $var5, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[var$4 % var$7.length | 0];
        $ptr = 2;
    case 2:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = new nms_ItemStack;
        var$5 = $par2ItemStack.$itemID;
        var$6 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $var5.$itemID = var$5;
        $var5.$stackSize = 1;
        $var5.$itemDamage = var$6;
        if (var$6 < 0)
            $var5.$itemDamage = 0;
        var$11 = $par2ItemStack.$stackTagCompound;
        if (var$11 !== null) {
            var$12 = new nms_NBTTagCompound;
            var$3 = var$11.$name;
            if (var$3 === null)
                var$3 = $rt_s(3);
            var$12.$name = var$3;
            var$3 = new ju_HashMap;
            var$5 = ju_HashMap_calculateCapacity(16);
            var$3.$elementCount = 0;
            var$13 = $rt_createArray(ju_HashMap$HashEntry, var$5);
            var$7 = var$13.data;
            var$3.$elementData = var$13;
            var$3.$loadFactor = 0.75;
            var$3.$threshold = var$7.length * 0.75 | 0;
            var$12.$tagMap = var$3;
            var$3 = var$11.$tagMap;
            if (var$3.$cachedKeySet === null) {
                var$14 = new ju_HashMap$1;
                var$14.$this$0 = var$3;
                var$3.$cachedKeySet = var$14;
            }
            var$15 = var$3.$cachedKeySet.$iterator();
            while (var$15.$hasNext()) {
                var$3 = var$15.$next();
                var$14 = var$11.$tagMap;
                if (var$3 === null) {
                    var$16 = var$14.$elementData.data[0];
                    while (var$16 !== null && var$16.$key !== null) {
                        var$16 = var$16.$next3;
                    }
                } else {
                    a: {
                        if (!var$3.$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= var$3.$nativeString.length)
                                    break a;
                                var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$17 = var$3.$hashCode1;
                    var$7 = var$14.$elementData.data;
                    var$16 = var$7[var$17 & (var$7.length - 1 | 0)];
                    while (var$16 !== null) {
                        if (var$16.$origKeyHash == var$17) {
                            b: {
                                var$14 = var$16.$key;
                                if (var$3 !== var$14) {
                                    if (var$3 === var$14)
                                        var$5 = 1;
                                    else if (!(var$14 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        var$14 = var$14;
                                        var$5 = var$3.$nativeString !== var$14.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break b;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$16 = var$16.$next3;
                    }
                }
                var$14 = var$16 === null ? null : var$16.$value0;
                var$14 = var$14.$copy();
                var$18 = var$12.$tagMap;
                if (var$3 !== null)
                    var$14.$name = var$3;
                else
                    var$14.$name = $rt_s(3);
                ju_HashMap_putImpl(var$18, var$3, var$14);
            }
            $var5.$stackTagCompound = var$12;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        $par1IBlockSource = $par1IBlockSource.$worldObj4;
        var$4 = 6;
        $ptr = 3;
    case 3:
        nms_BehaviorDefaultDispenseItem_doDispense($par1IBlockSource, $var5, var$4, var$8, $var4);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, var$3, var$4, var$5, var$6, var$7, var$8, $var4, $var5, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_BehaviorDefaultDispenseItem_doDispense = ($par0World, $par1ItemStack, $par2, $par3EnumFacing, $par4IPosition) => {
    let $var5, $var7, $var9, $var11, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$par4IPosition = $thread.pop();$par3EnumFacing = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par4IPosition.$x0;
        $var7 = $par4IPosition.$y0;
        $var9 = $par4IPosition.$z3;
        $var11 = new nms_EntityItem;
        $var7 = $var7 - 0.3;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_($var11, $par0World, $var5, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $var11.$dataWatcher;
        $par4IPosition = var$10.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[138];
        if (var$11 === null) {
            var$12 = $par4IPosition.$elementData.data[0];
            while (var$12 !== null && var$12.$key !== null) {
                var$12 = var$12.$next3;
            }
        } else {
            var$13 = var$11.$value;
            var$14 = $par4IPosition.$elementData.data;
            var$12 = var$14[var$13 & (var$14.length - 1 | 0)];
            while (var$12 !== null) {
                if (var$12.$origKeyHash == var$13) {
                    $par4IPosition = var$12.$key;
                    if (var$11 !== $par4IPosition && !jl_Integer_equals(var$11, $par4IPosition) ? 0 : 1)
                        break;
                }
                var$12 = var$12.$next3;
            }
        }
        var$11 = var$12 === null ? null : var$12.$value0;
        if (!($par1ItemStack !== var$11.$watchedObject ? 0 : 1)) {
            var$11.$watchedObject = $par1ItemStack;
            var$11.$watched = 1;
            var$10.$objectChanged = 1;
        }
        var$10 = $var11.$dataWatcher;
        $par1ItemStack = var$10.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[138];
        if (var$11 === null) {
            $par1ItemStack = $par1ItemStack.$elementData.data[0];
            while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                $par1ItemStack = $par1ItemStack.$next3;
            }
        } else {
            var$15 = var$11.$value;
            var$14 = $par1ItemStack.$elementData.data;
            $par1ItemStack = var$14[var$15 & (var$14.length - 1 | 0)];
            while ($par1ItemStack !== null) {
                if ($par1ItemStack.$origKeyHash == var$15) {
                    $par4IPosition = $par1ItemStack.$key;
                    if (var$11 !== $par4IPosition && !jl_Integer_equals(var$11, $par4IPosition) ? 0 : 1)
                        break;
                }
                $par1ItemStack = $par1ItemStack.$next3;
            }
        }
        ($par1ItemStack === null ? null : $par1ItemStack.$value0).$watched = 1;
        var$10.$objectChanged = 1;
        $par1ItemStack = $par0World.$rand0;
        var$16 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1ItemStack.$seed = var$16;
        var$17 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$16, 22))), 27);
        var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1ItemStack.$seed = var$16;
        $var12 = Long_toNumber(Long_add(var$17, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * 0.1 + 0.2;
        $var9 = $par3EnumFacing.$frontOffsetX * $var12;
        $var11.$motionX = $var9;
        $var11.$motionY = 0.20000000298023224;
        $var11.$motionZ = $par3EnumFacing.$frontOffsetZ * $var12;
        $var7 = nle_EaglercraftRandom_nextGaussian($par1ItemStack) * 0.007499999832361937;
        $var5 = $par2;
        $var11.$motionX = $var9 + $var7 * $var5;
        $var11.$motionY = $var11.$motionY + nle_EaglercraftRandom_nextGaussian($par0World.$rand0) * 0.007499999832361937 * $var5;
        $var11.$motionZ = $var11.$motionZ + nle_EaglercraftRandom_nextGaussian($par0World.$rand0) * 0.007499999832361937 * $var5;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par0World, $var11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1ItemStack, $par2, $par3EnumFacing, $par4IPosition, $var5, $var7, $var9, $var11, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var12, $ptr);
},
nms_BehaviorDefaultDispenseItem_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1000;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$7 = 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_BehaviorDefaultDispenseItem_spawnDispenseParticles = ($this, $par1IBlockSource, $par2EnumFacing) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2EnumFacing = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1IBlockSource.$worldObj4;
        var$4 = 2000;
        var$5 = $par1IBlockSource.$xPos;
        var$6 = $par1IBlockSource.$yPos;
        var$7 = $par1IBlockSource.$zPos;
        var$8 = ($par2EnumFacing.$frontOffsetX + 1 | 0) + (($par2EnumFacing.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$3, $par1IBlockSource, var$4, var$5, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2EnumFacing, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_BehaviorProjectileDispense = $rt_classWithoutFields(nms_BehaviorDefaultDispenseItem),
nms_BehaviorProjectileDispense_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var3, $var4, $var6, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1IBlockSource.$worldObj4;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var6 = $par1IBlockSource.$worldObj4;
        var$6 = $par1IBlockSource.$xPos;
        var$7 = $par1IBlockSource.$yPos;
        var$8 = $par1IBlockSource.$zPos;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($var6, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$6 = var$7 & 7;
        var$9 = nms_EnumFacing_faceList.data;
        $par1IBlockSource = var$9[var$6 % var$9.length | 0];
        $ptr = 3;
    case 3:
        $tmp = $this.$getProjectileEntity($var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6.$setThrowableHeading($par1IBlockSource.$frontOffsetX, $par1IBlockSource.$frontOffsetY + 0.10000000149011612, $par1IBlockSource.$frontOffsetZ, $this.$func_82500_b(), $this.$func_82498_a());
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($var3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$10 = $par2ItemStack.$stackTagCompound;
        if (var$10 !== null) {
            $var6 = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            $var6.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$9 = var$11.data;
            $var6.$elementData = var$11;
            $var6.$loadFactor = 0.75;
            $var6.$threshold = var$9.length * 0.75 | 0;
            $var4 = var$10.$tagMap;
            if ($var4.$cachedKeySet === null) {
                $par1IBlockSource = new ju_HashMap$1;
                $par1IBlockSource.$this$0 = $var4;
                $var4.$cachedKeySet = $par1IBlockSource;
            }
            var$12 = $var4.$cachedKeySet.$iterator();
            while (var$12.$hasNext()) {
                var$13 = var$12.$next();
                $par1IBlockSource = var$10.$tagMap;
                if (var$13 === null) {
                    $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                    while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                } else {
                    a: {
                        if (!var$13.$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= var$13.$nativeString.length)
                                    break a;
                                var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$13.$hashCode1;
                    var$9 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$9[var$8 & (var$9.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == var$8) {
                            b: {
                                $var4 = $par1IBlockSource.$key;
                                if (var$13 !== $var4) {
                                    if (var$13 === $var4)
                                        var$7 = 1;
                                    else if (!($var4 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $var4 = $var4;
                                        var$7 = var$13.$nativeString !== $var4.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break b;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                }
                $par1IBlockSource = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                $par1IBlockSource = $par1IBlockSource.$copy();
                if (var$13 !== null)
                    $par1IBlockSource.$name = var$13;
                else
                    $par1IBlockSource.$name = $rt_s(3);
                ju_HashMap_putImpl($var6, var$13, $par1IBlockSource);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var3, $var4, $var6, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_BehaviorProjectileDispense_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1002;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$7 = 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_BehaviorProjectileDispense_func_82498_a = $this => {
    return 6.0;
},
nms_BehaviorProjectileDispense_func_82500_b = $this => {
    return 1.100000023841858;
},
nms_DispenserBehaviorArrow = $rt_classWithoutFields(nms_BehaviorProjectileDispense),
nms_DispenserBehaviorArrow__init_ = $this => {
    return;
},
nms_DispenserBehaviorArrow__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorArrow();
    nms_DispenserBehaviorArrow__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorArrow_getProjectileEntity = ($this, $par1World, $par2IPosition) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2IPosition = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = new nms_EntityArrow;
        var$4 = $par2IPosition.$x0;
        var$5 = $par2IPosition.$y0;
        var$6 = $par2IPosition.$z3;
        nms_Entity__init_($var3, $par1World);
        $var3.$xTile = (-1);
        $var3.$yTile = (-1);
        $var3.$zTile = (-1);
        $var3.$damage = 2.0;
        $var3.$renderDistanceWeight = 10.0;
        var$7 = 0.5;
        var$8 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($var3, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition($var3, var$4, var$5, var$6);
        $var3.$yOffset = 0.0;
        $var3.$canBePickedUp = 1;
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2IPosition, $var3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_DispenserBehaviorEgg = $rt_classWithoutFields(nms_BehaviorProjectileDispense),
nms_DispenserBehaviorEgg__init_ = $this => {
    return;
},
nms_DispenserBehaviorEgg__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorEgg();
    nms_DispenserBehaviorEgg__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorEgg_getProjectileEntity = ($this, $par1World, $par2IPosition) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2IPosition = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = new nms_EntityEgg;
        var$4 = $par2IPosition.$x0;
        var$5 = $par2IPosition.$y0;
        var$6 = $par2IPosition.$z3;
        nms_Entity__init_(var$3, $par1World);
        var$3.$xTile0 = (-1);
        var$3.$yTile0 = (-1);
        var$3.$zTile0 = (-1);
        var$3.$ticksInGround = 0;
        var$7 = 0.25;
        var$8 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$3, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition(var$3, var$4, var$5, var$6);
        var$3.$yOffset = 0.0;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2IPosition, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_DispenserBehaviorSnowball = $rt_classWithoutFields(nms_BehaviorProjectileDispense),
nms_DispenserBehaviorSnowball__init_ = $this => {
    return;
},
nms_DispenserBehaviorSnowball__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorSnowball();
    nms_DispenserBehaviorSnowball__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorSnowball_getProjectileEntity = ($this, $par1World, $par2IPosition) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2IPosition = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = new nms_EntitySnowball;
        var$4 = $par2IPosition.$x0;
        var$5 = $par2IPosition.$y0;
        var$6 = $par2IPosition.$z3;
        nms_Entity__init_(var$3, $par1World);
        var$3.$xTile0 = (-1);
        var$3.$yTile0 = (-1);
        var$3.$zTile0 = (-1);
        var$3.$ticksInGround = 0;
        var$7 = 0.25;
        var$8 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$3, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition(var$3, var$4, var$5, var$6);
        var$3.$yOffset = 0.0;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2IPosition, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_DispenserBehaviorExperience = $rt_classWithoutFields(nms_BehaviorProjectileDispense),
nms_DispenserBehaviorExperience__init_ = $this => {
    return;
},
nms_DispenserBehaviorExperience__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorExperience();
    nms_DispenserBehaviorExperience__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorExperience_getProjectileEntity = ($this, $par1World, $par2IPosition) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2IPosition = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = new nms_EntityExpBottle;
        var$4 = $par2IPosition.$x0;
        var$5 = $par2IPosition.$y0;
        var$6 = $par2IPosition.$z3;
        nms_Entity__init_(var$3, $par1World);
        var$3.$xTile0 = (-1);
        var$3.$yTile0 = (-1);
        var$3.$zTile0 = (-1);
        var$3.$ticksInGround = 0;
        var$7 = 0.25;
        var$8 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$3, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition(var$3, var$4, var$5, var$6);
        var$3.$yOffset = 0.0;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2IPosition, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_DispenserBehaviorExperience_func_82498_a = $this => {
    return 3.0;
},
nms_DispenserBehaviorExperience_func_82500_b = $this => {
    return 1.375;
};
function nms_DispenserBehaviorPotion() {
    jl_Object.call(this);
    this.$defaultDispenserItemBehavior0 = null;
}
let nms_DispenserBehaviorPotion__init_ = $this => {
    $this.$defaultDispenserItemBehavior0 = new nms_BehaviorDefaultDispenseItem;
},
nms_DispenserBehaviorPotion__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorPotion();
    nms_DispenserBehaviorPotion__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorPotion_dispense = ($this, $par1IBlockSource, $par2ItemStack) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!(!($par2ItemStack.$itemDamage & 16384) ? 0 : 1)) {
            var$3 = $par1IBlockSource.$worldObj4;
            var$4 = $par1IBlockSource.$xPos;
            var$5 = $par1IBlockSource.$yPos;
            var$6 = $par1IBlockSource.$zPos;
            $ptr = 1;
            continue main;
        }
        var$3 = new nms_DispenserBehaviorPotionProjectile;
        var$3.$dispenserPotionBehavior = $this;
        var$3.$potionItemStack = $par2ItemStack;
        var$7 = $par1IBlockSource.$worldObj4;
        $ptr = 3;
        continue main;
    case 1:
        $tmp = nms_World_getBlockMetadata(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$8 = nms_EnumFacing_faceList.data;
        var$9 = var$8[var$4 % var$8.length | 0];
        $ptr = 2;
    case 2:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        var$10 = new nms_ItemStack;
        var$5 = $par2ItemStack.$itemID;
        var$6 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$10.$itemID = var$5;
        var$10.$stackSize = 1;
        var$10.$itemDamage = var$6;
        if (var$6 < 0)
            var$10.$itemDamage = 0;
        var$7 = $par2ItemStack.$stackTagCompound;
        if (var$7 !== null) {
            var$11 = new nms_NBTTagCompound;
            var$12 = var$7.$name;
            if (var$12 === null)
                var$12 = $rt_s(3);
            var$11.$name = var$12;
            var$12 = new ju_HashMap;
            ju_AbstractMap__init_(var$12);
            var$5 = ju_HashMap_calculateCapacity(16);
            var$12.$elementCount = 0;
            var$12.$elementData = ju_HashMap_newElementArray(var$12, var$5);
            var$12.$loadFactor = 0.75;
            ju_HashMap_computeThreshold(var$12);
            var$11.$tagMap = var$12;
            var$12 = var$7.$tagMap;
            if (var$12.$cachedKeySet === null) {
                var$13 = new ju_HashMap$1;
                var$13.$this$0 = var$12;
                jl_Object__init_(var$13);
                var$12.$cachedKeySet = var$13;
            }
            var$12 = var$12.$cachedKeySet.$iterator();
            while (var$12.$hasNext()) {
                var$13 = var$12.$next();
                var$14 = var$7.$tagMap;
                if (var$13 === null) {
                    var$14 = var$14.$elementData.data[0];
                    while (var$14 !== null && var$14.$key !== null) {
                        var$14 = var$14.$next3;
                    }
                } else {
                    a: {
                        if (!var$13.$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= var$13.$nativeString.length)
                                    break a;
                                var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$15 = var$13.$hashCode1;
                    var$8 = var$14.$elementData.data;
                    var$14 = var$8[var$15 & (var$8.length - 1 | 0)];
                    while (var$14 !== null) {
                        if (var$14.$origKeyHash == var$15) {
                            var$16 = var$14.$key;
                            if (var$13 !== var$16 && !jl_String_equals(var$13, var$16) ? 0 : 1)
                                break;
                        }
                        var$14 = var$14.$next3;
                    }
                }
                var$14 = var$14 === null ? null : var$14.$value0;
                var$14 = var$14.$copy();
                var$16 = var$11.$tagMap;
                if (var$13 !== null)
                    var$14.$name = var$13;
                else
                    var$14.$name = $rt_s(3);
                ju_HashMap_putImpl(var$16, var$13, var$14);
            }
            var$10.$stackTagCompound = var$11;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        var$7 = $par1IBlockSource.$worldObj4;
        var$4 = 6;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$10 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata(var$10, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$8 = nms_EnumFacing_faceList.data;
        var$10 = var$8[var$4 % var$8.length | 0];
        $ptr = 5;
    case 5:
        $tmp = nms_DispenserBehaviorPotionProjectile_getProjectileEntity(var$3, var$7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        nms_EntityThrowable_setThrowableHeading(var$3, var$10.$frontOffsetX, var$10.$frontOffsetY + 0.10000000149011612, var$10.$frontOffsetZ, 1.375, 3.0);
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld(var$7, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$3 = $par2ItemStack.$stackTagCompound;
        if (var$3 !== null) {
            var$13 = new ju_HashMap;
            ju_AbstractMap__init_(var$13);
            var$5 = ju_HashMap_calculateCapacity(16);
            var$13.$elementCount = 0;
            var$13.$elementData = ju_HashMap_newElementArray(var$13, var$5);
            var$13.$loadFactor = 0.75;
            ju_HashMap_computeThreshold(var$13);
            var$10 = var$3.$tagMap;
            if (var$10.$cachedKeySet === null) {
                var$7 = new ju_HashMap$1;
                var$7.$this$0 = var$10;
                jl_Object__init_(var$7);
                var$10.$cachedKeySet = var$7;
            }
            var$10 = var$10.$cachedKeySet.$iterator();
            while (var$10.$hasNext()) {
                var$7 = var$10.$next();
                var$11 = var$3.$tagMap;
                if (var$7 === null) {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    a: {
                        if (!var$7.$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= var$7.$nativeString.length)
                                    break a;
                                var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$15 = var$7.$hashCode1;
                    var$8 = var$11.$elementData.data;
                    var$11 = var$8[var$15 & (var$8.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$15) {
                            var$12 = var$11.$key;
                            if (var$7 !== var$12 && !jl_String_equals(var$7, var$12) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                var$11 = var$11 === null ? null : var$11.$value0;
                var$11 = var$11.$copy();
                if (var$7 !== null)
                    var$11.$name = var$7;
                else
                    var$11.$name = $rt_s(3);
                ju_HashMap_putImpl(var$13, var$7, var$11);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        var$10 = $par1IBlockSource.$worldObj4;
        var$4 = 1002;
        var$17 = $par1IBlockSource.$xPos;
        var$15 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$5 = 0;
        var$3 = null;
        $ptr = 11;
        continue main;
    case 7:
        nms_BehaviorDefaultDispenseItem_doDispense(var$7, var$10, var$4, var$9, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $par1IBlockSource.$worldObj4;
        var$4 = 1000;
        var$17 = $par1IBlockSource.$xPos;
        var$15 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$5 = 0;
        var$3 = null;
        $ptr = 8;
    case 8:
        nms_World_playAuxSFXAtEntity(var$10, var$3, var$4, var$17, var$15, var$6, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockMetadata(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$8 = nms_EnumFacing_faceList.data;
        var$10 = var$8[var$4 % var$8.length | 0];
        var$3 = $par1IBlockSource.$worldObj4;
        var$4 = 2000;
        var$18 = $par1IBlockSource.$xPos;
        var$19 = $par1IBlockSource.$yPos;
        var$17 = $par1IBlockSource.$zPos;
        var$5 = (var$10.$frontOffsetX + 1 | 0) + ((var$10.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 10;
    case 10:
        nms_World_playAuxSFXAtEntity(var$3, $par1IBlockSource, var$4, var$18, var$19, var$17, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    case 11:
        nms_World_playAuxSFXAtEntity(var$10, var$3, var$4, var$17, var$15, var$6, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockMetadata(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$8 = nms_EnumFacing_faceList.data;
        var$10 = var$8[var$4 % var$8.length | 0];
        var$3 = $par1IBlockSource.$worldObj4;
        var$4 = 2000;
        var$18 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$19 = $par1IBlockSource.$zPos;
        var$6 = (var$10.$frontOffsetX + 1 | 0) + ((var$10.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 13;
    case 13:
        nms_World_playAuxSFXAtEntity(var$3, $par1IBlockSource, var$4, var$18, var$5, var$19, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_DispenserBehaviorMobEgg = $rt_classWithoutFields(nms_BehaviorDefaultDispenseItem),
nms_DispenserBehaviorMobEgg__init_ = $this => {
    return;
},
nms_DispenserBehaviorMobEgg__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorMobEgg();
    nms_DispenserBehaviorMobEgg__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorMobEgg_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var10, var$4, var$5, var$6, var$7, $var4, $var6, $var8, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var10 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var10, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var10 = var$7[var$4 % var$7.length | 0];
        $var4 = $par1IBlockSource.$xPos + 0.5 + $var10.$frontOffsetX;
        $var6 = $par1IBlockSource.$yPos + 0.20000000298023224;
        $var8 = $par1IBlockSource.$zPos + 0.5 + $var10.$frontOffsetZ;
        $par1IBlockSource = $par1IBlockSource.$worldObj4;
        var$4 = $par2ItemStack.$itemDamage;
        $ptr = 2;
    case 2:
        $tmp = nms_ItemMonsterPlacer_spawnCreature($par1IBlockSource, var$4, $var4, $var6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 instanceof nms_EntityLivingBase) {
            var$11 = $par2ItemStack.$stackTagCompound;
            if (var$11 !== null) {
                a: {
                    var$11 = var$11.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(918).$nativeString.length)
                                break a;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(918).$hashCode1;
                var$7 = var$11.$elementData.data;
                var$11 = var$7[var$6 & (var$7.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$6) {
                        b: {
                            var$12 = var$11.$key;
                            if ($rt_s(918) !== var$12) {
                                if ($rt_s(918) !== var$12) {
                                    if (var$12 instanceof jl_String) {
                                        var$12 = var$12;
                                        var$4 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break b;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
                if (var$11 === null ? 0 : 1) {
                    c: {
                        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                        var$12 = $par1IBlockSource.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(918).$nativeString.length)
                                    break c;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(918).$hashCode1;
                    var$7 = var$12.$elementData.data;
                    var$12 = var$7[var$6 & (var$7.length - 1 | 0)];
                    while (var$12 !== null) {
                        if (var$12.$origKeyHash == var$6) {
                            d: {
                                var$13 = var$12.$key;
                                if ($rt_s(918) !== var$13) {
                                    if ($rt_s(918) === var$13)
                                        var$4 = 1;
                                    else if (!(var$13 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$13 = var$13;
                                        var$4 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break d;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$12 = var$12.$next3;
                    }
                    if (!(var$12 === null ? 0 : 1)) {
                        $par1IBlockSource = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            $par1IBlockSource.$name = $rt_s(918);
                        else
                            $par1IBlockSource.$name = $rt_s(3);
                        var$11 = new ju_HashMap;
                        var$4 = ju_HashMap_calculateCapacity(16);
                        var$11.$elementCount = 0;
                        var$14 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                        var$7 = var$14.data;
                        var$11.$elementData = var$14;
                        var$11.$loadFactor = 0.75;
                        var$11.$threshold = var$7.length * 0.75 | 0;
                        $par1IBlockSource.$tagMap = var$11;
                    } else {
                        $par1IBlockSource = $par1IBlockSource.$tagMap;
                        if ($rt_s(918) === null) {
                            $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                            while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                                $par1IBlockSource = $par1IBlockSource.$next3;
                            }
                        } else {
                            e: {
                                if (!$rt_s(918).$hashCode1) {
                                    var$4 = 0;
                                    while (true) {
                                        if (var$4 >= $rt_s(918).$nativeString.length)
                                            break e;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                                        var$4 = var$4 + 1 | 0;
                                    }
                                }
                            }
                            var$6 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            $par1IBlockSource = var$7[var$6 & (var$7.length - 1 | 0)];
                            while ($par1IBlockSource !== null) {
                                if ($par1IBlockSource.$origKeyHash == var$6) {
                                    f: {
                                        var$12 = $par1IBlockSource.$key;
                                        if ($rt_s(918) !== var$12) {
                                            if ($rt_s(918) === var$12)
                                                var$4 = 1;
                                            else if (var$12 instanceof jl_String) {
                                                var$12 = var$12;
                                                var$4 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                            } else
                                                var$4 = 0;
                                            if (!var$4) {
                                                var$4 = 0;
                                                break f;
                                            }
                                        }
                                        var$4 = 1;
                                    }
                                    if (var$4)
                                        break;
                                }
                                $par1IBlockSource = $par1IBlockSource.$next3;
                            }
                        }
                        $par1IBlockSource = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                    }
                    g: {
                        $par1IBlockSource = $par1IBlockSource.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break g;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[var$6 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == var$6) {
                            h: {
                                var$12 = $par1IBlockSource.$key;
                                if ($rt_s(919) !== var$12) {
                                    if ($rt_s(919) === var$12)
                                        var$4 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$12 = var$12;
                                        var$4 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break h;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    var$4 = $par1IBlockSource === null ? 0 : 1;
                } else
                    var$4 = 0;
            } else
                var$4 = 0;
            if (var$4) {
                $par1IBlockSource = $var10;
                nms_Item_$callClinit();
                $var10 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
                var$11 = $par2ItemStack.$stackTagCompound;
                if (var$11 !== null) {
                    i: {
                        var$11 = var$11.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(918).$nativeString.length)
                                    break i;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(918).$hashCode1;
                    var$7 = var$11.$elementData.data;
                    var$11 = var$7[var$6 & (var$7.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$6) {
                            j: {
                                var$13 = var$11.$key;
                                if ($rt_s(918) !== var$13) {
                                    if ($rt_s(918) === var$13)
                                        var$4 = 1;
                                    else if (!(var$13 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$13 = var$13;
                                        var$4 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break j;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                    if (var$11 === null ? 0 : 1) {
                        k: {
                            var$12 = $par2ItemStack.$stackTagCompound;
                            var$13 = var$12.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(918).$nativeString.length)
                                        break k;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $rt_s(918).$hashCode1;
                        var$7 = var$13.$elementData.data;
                        var$13 = var$7[var$6 & (var$7.length - 1 | 0)];
                        while (var$13 !== null) {
                            if (var$13.$origKeyHash == var$6) {
                                l: {
                                    var$15 = var$13.$key;
                                    if ($rt_s(918) !== var$15) {
                                        if ($rt_s(918) === var$15)
                                            var$4 = 1;
                                        else if (!(var$15 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$15 = var$15;
                                            var$4 = $rt_s(918).$nativeString !== var$15.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break l;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$13 = var$13.$next3;
                        }
                        if (var$13 === null ? 0 : 1) {
                            var$12 = var$12.$tagMap;
                            if ($rt_s(918) === null) {
                                var$12 = var$12.$elementData.data[0];
                                while (var$12 !== null && var$12.$key !== null) {
                                    var$12 = var$12.$next3;
                                }
                            } else {
                                m: {
                                    if (!$rt_s(918).$hashCode1) {
                                        var$4 = 0;
                                        while (true) {
                                            if (var$4 >= $rt_s(918).$nativeString.length)
                                                break m;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$4) | 0;
                                            var$4 = var$4 + 1 | 0;
                                        }
                                    }
                                }
                                var$6 = $rt_s(918).$hashCode1;
                                var$7 = var$12.$elementData.data;
                                var$12 = var$7[var$6 & (var$7.length - 1 | 0)];
                                while (var$12 !== null) {
                                    if (var$12.$origKeyHash == var$6) {
                                        n: {
                                            var$13 = var$12.$key;
                                            if ($rt_s(918) !== var$13) {
                                                if ($rt_s(918) === var$13)
                                                    var$4 = 1;
                                                else if (!(var$13 instanceof jl_String))
                                                    var$4 = 0;
                                                else {
                                                    var$13 = var$13;
                                                    var$4 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                                }
                                                if (!var$4) {
                                                    var$4 = 0;
                                                    break n;
                                                }
                                            }
                                            var$4 = 1;
                                        }
                                        if (var$4)
                                            break;
                                    }
                                    var$12 = var$12.$next3;
                                }
                            }
                            var$13 = var$12 === null ? null : var$12.$value0;
                        } else {
                            var$13 = new nms_NBTTagCompound;
                            if ($rt_s(918) !== null)
                                var$13.$name = $rt_s(918);
                            else
                                var$13.$name = $rt_s(3);
                            var$11 = new ju_HashMap;
                            var$4 = ju_HashMap_calculateCapacity(16);
                            var$11.$elementCount = 0;
                            var$14 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                            var$7 = var$14.data;
                            var$11.$elementData = var$14;
                            var$11.$loadFactor = 0.75;
                            var$11.$threshold = var$7.length * 0.75 | 0;
                            var$13.$tagMap = var$11;
                        }
                        o: {
                            var$12 = var$13.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(919).$nativeString.length)
                                        break o;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $rt_s(919).$hashCode1;
                        var$7 = var$12.$elementData.data;
                        var$12 = var$7[var$6 & (var$7.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == var$6) {
                                p: {
                                    var$15 = var$12.$key;
                                    if ($rt_s(919) !== var$15) {
                                        if ($rt_s(919) === var$15)
                                            var$4 = 1;
                                        else if (!(var$15 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$15 = var$15;
                                            var$4 = $rt_s(919).$nativeString !== var$15.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break p;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                        if (var$12 === null ? 0 : 1) {
                            q: {
                                var$11 = var$13.$tagMap;
                                if (!$rt_s(919).$hashCode1) {
                                    var$4 = 0;
                                    while (true) {
                                        if (var$4 >= $rt_s(919).$nativeString.length)
                                            break q;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                        var$4 = var$4 + 1 | 0;
                                    }
                                }
                            }
                            var$6 = $rt_s(919).$hashCode1;
                            var$7 = var$11.$elementData.data;
                            var$11 = var$7[var$6 & (var$7.length - 1 | 0)];
                            while (var$11 !== null) {
                                if (var$11.$origKeyHash == var$6) {
                                    r: {
                                        var$12 = var$11.$key;
                                        if ($rt_s(919) !== var$12) {
                                            if ($rt_s(919) === var$12)
                                                var$4 = 1;
                                            else if (!(var$12 instanceof jl_String))
                                                var$4 = 0;
                                            else {
                                                var$12 = var$12;
                                                var$4 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                                            }
                                            if (!var$4) {
                                                var$4 = 0;
                                                break r;
                                            }
                                        }
                                        var$4 = 1;
                                    }
                                    if (var$4)
                                        break;
                                }
                                var$11 = var$11.$next3;
                            }
                            if (!(var$11 === null ? 0 : 1))
                                $var10 = $rt_s(3);
                            else {
                                var$11 = var$13.$tagMap;
                                if ($rt_s(919) === null) {
                                    var$11 = var$11.$elementData.data[0];
                                    while (var$11 !== null && var$11.$key !== null) {
                                        var$11 = var$11.$next3;
                                    }
                                } else {
                                    s: {
                                        if (!$rt_s(919).$hashCode1) {
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $rt_s(919).$nativeString.length)
                                                    break s;
                                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$6 = $rt_s(919).$hashCode1;
                                    var$7 = var$11.$elementData.data;
                                    var$11 = var$7[var$6 & (var$7.length - 1 | 0)];
                                    while (var$11 !== null) {
                                        if (var$11.$origKeyHash == var$6) {
                                            t: {
                                                var$12 = var$11.$key;
                                                if ($rt_s(919) !== var$12) {
                                                    if ($rt_s(919) === var$12)
                                                        var$4 = 1;
                                                    else if (!(var$12 instanceof jl_String))
                                                        var$4 = 0;
                                                    else {
                                                        var$12 = var$12;
                                                        var$4 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                                                    }
                                                    if (!var$4) {
                                                        var$4 = 0;
                                                        break t;
                                                    }
                                                }
                                                var$4 = 1;
                                            }
                                            if (var$4)
                                                break;
                                        }
                                        var$11 = var$11.$next3;
                                    }
                                }
                                $var10 = (var$11 === null ? null : var$11.$value0).$data1;
                            }
                        }
                    }
                }
                nms_EntityLiving_setCustomNameTag($par1IBlockSource, $var10);
            }
        }
        var$5 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
        if ($par1IBlockSource !== null) {
            var$15 = new ju_HashMap;
            var$5 = ju_HashMap_calculateCapacity(16);
            var$15.$elementCount = 0;
            var$14 = $rt_createArray(ju_HashMap$HashEntry, var$5);
            var$7 = var$14.data;
            var$15.$elementData = var$14;
            var$15.$loadFactor = 0.75;
            var$15.$threshold = var$7.length * 0.75 | 0;
            $var10 = $par1IBlockSource.$tagMap;
            if ($var10.$cachedKeySet === null) {
                var$11 = new ju_HashMap$1;
                var$11.$this$0 = $var10;
                $var10.$cachedKeySet = var$11;
            }
            $var10 = $var10.$cachedKeySet.$iterator();
            while ($var10.$hasNext()) {
                var$11 = $var10.$next();
                var$12 = $par1IBlockSource.$tagMap;
                if (var$11 === null) {
                    var$12 = var$12.$elementData.data[0];
                    while (var$12 !== null && var$12.$key !== null) {
                        var$12 = var$12.$next3;
                    }
                } else {
                    u: {
                        if (!var$11.$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= var$11.$nativeString.length)
                                    break u;
                                var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$16 = var$11.$hashCode1;
                    var$7 = var$12.$elementData.data;
                    var$12 = var$7[var$16 & (var$7.length - 1 | 0)];
                    while (var$12 !== null) {
                        if (var$12.$origKeyHash == var$16) {
                            v: {
                                var$13 = var$12.$key;
                                if (var$11 !== var$13) {
                                    if (var$11 === var$13)
                                        var$5 = 1;
                                    else if (!(var$13 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        var$13 = var$13;
                                        var$5 = var$11.$nativeString !== var$13.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break v;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$12 = var$12.$next3;
                    }
                }
                var$12 = var$12 === null ? null : var$12.$value0;
                var$12 = var$12.$copy();
                if (var$11 !== null)
                    var$12.$name = var$11;
                else
                    var$12.$name = $rt_s(3);
                ju_HashMap_putImpl(var$15, var$11, var$12);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var10, var$4, var$5, var$6, var$7, $var4, $var6, $var8, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_DispenserBehaviorFireworks = $rt_classWithoutFields(nms_BehaviorDefaultDispenseItem),
nms_DispenserBehaviorFireworks__init_ = $this => {
    return;
},
nms_DispenserBehaviorFireworks__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorFireworks();
    nms_DispenserBehaviorFireworks__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorFireworks_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var10, var$4, var$5, var$6, var$7, $var4, $var6, $var8, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var10 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var10, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var10 = var$7[var$4 % var$7.length | 0];
        $var4 = $par1IBlockSource.$xPos + 0.5 + $var10.$frontOffsetX;
        $var6 = $par1IBlockSource.$yPos + 0.20000000298023224;
        $var8 = $par1IBlockSource.$zPos + 0.5 + $var10.$frontOffsetZ;
        $var10 = new nms_EntityFireworkRocket;
        var$11 = $par1IBlockSource.$worldObj4;
        $ptr = 2;
    case 2:
        nms_EntityFireworkRocket__init_($var10, var$11, $var4, $var6, $var8, $par2ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par1IBlockSource = $par1IBlockSource.$worldObj4;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1IBlockSource, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
        if ($par1IBlockSource !== null) {
            var$12 = new ju_HashMap;
            var$5 = ju_HashMap_calculateCapacity(16);
            var$12.$elementCount = 0;
            var$13 = $rt_createArray(ju_HashMap$HashEntry, var$5);
            var$7 = var$13.data;
            var$12.$elementData = var$13;
            var$12.$loadFactor = 0.75;
            var$12.$threshold = var$7.length * 0.75 | 0;
            var$11 = $par1IBlockSource.$tagMap;
            if (var$11.$cachedKeySet === null) {
                $var10 = new ju_HashMap$1;
                $var10.$this$0 = var$11;
                var$11.$cachedKeySet = $var10;
            }
            $var10 = var$11.$cachedKeySet.$iterator();
            while ($var10.$hasNext()) {
                var$11 = $var10.$next();
                var$14 = $par1IBlockSource.$tagMap;
                if (var$11 === null) {
                    var$14 = var$14.$elementData.data[0];
                    while (var$14 !== null && var$14.$key !== null) {
                        var$14 = var$14.$next3;
                    }
                } else {
                    a: {
                        if (!var$11.$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= var$11.$nativeString.length)
                                    break a;
                                var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$5 = var$11.$hashCode1;
                    var$7 = var$14.$elementData.data;
                    var$14 = var$7[var$5 & (var$7.length - 1 | 0)];
                    while (var$14 !== null) {
                        if (var$14.$origKeyHash == var$5) {
                            b: {
                                var$15 = var$14.$key;
                                if (var$11 !== var$15) {
                                    if (var$11 === var$15)
                                        var$6 = 1;
                                    else if (!(var$15 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$15 = var$15;
                                        var$6 = var$11.$nativeString !== var$15.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break b;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$14 = var$14.$next3;
                    }
                }
                var$14 = var$14 === null ? null : var$14.$value0;
                var$14 = var$14.$copy();
                if (var$11 !== null)
                    var$14.$name = var$11;
                else
                    var$14.$name = $rt_s(3);
                ju_HashMap_putImpl(var$12, var$11, var$14);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var10, var$4, var$5, var$6, var$7, $var4, $var6, $var8, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_DispenserBehaviorFireworks_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1002;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$7 = 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_DispenserBehaviorFireball = $rt_classWithoutFields(nms_BehaviorDefaultDispenseItem),
nms_DispenserBehaviorFireball__init_ = $this => {
    return;
},
nms_DispenserBehaviorFireball__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorFireball();
    nms_DispenserBehaviorFireball__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorFireball_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var4, var$4, var$5, var$6, var$7, var$8, $var5, $var7, $var9, $var11, $var12, $var13, $var15, $var17, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var4, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$4 = var$5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[var$4 % var$7.length | 0];
        $ptr = 2;
    case 2:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = $var4.$x0;
        $var7 = var$8.$frontOffsetX * 0.30000001192092896;
        $var5 = $var5 + $var7;
        $var7 = $var4.$y0 + $var7;
        $var9 = $var4.$z3 + var$8.$frontOffsetZ * 0.30000001192092896;
        $var11 = $par1IBlockSource.$worldObj4;
        $var12 = $var11.$rand0;
        $var13 = nle_EaglercraftRandom_nextGaussian($var12) * 0.05 + var$8.$frontOffsetX;
        $var15 = nle_EaglercraftRandom_nextGaussian($var12) * 0.05 + var$8.$frontOffsetY;
        $var17 = nle_EaglercraftRandom_nextGaussian($var12) * 0.05 + var$8.$frontOffsetZ;
        $par1IBlockSource = new nms_EntitySmallFireball;
        $ptr = 3;
    case 3:
        nms_EntityFireball__init_0($par1IBlockSource, $var11, $var5, $var7, $var9, $var13, $var15, $var17);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = 0.3125;
        var$18 = 0.3125;
        $ptr = 4;
    case 4:
        nms_Entity_setSize($par1IBlockSource, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($var11, $par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
        if ($par1IBlockSource !== null) {
            var$19 = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            var$19.$elementCount = 0;
            var$20 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$7 = var$20.data;
            var$19.$elementData = var$20;
            var$19.$loadFactor = 0.75;
            var$19.$threshold = var$7.length * 0.75 | 0;
            $var4 = $par1IBlockSource.$tagMap;
            if ($var4.$cachedKeySet === null) {
                $var11 = new ju_HashMap$1;
                $var11.$this$0 = $var4;
                $var4.$cachedKeySet = $var11;
            }
            $var4 = $var4.$cachedKeySet.$iterator();
            while ($var4.$hasNext()) {
                $var11 = $var4.$next();
                var$8 = $par1IBlockSource.$tagMap;
                if ($var11 === null) {
                    var$8 = var$8.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                } else {
                    a: {
                        if (!$var11.$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $var11.$nativeString.length)
                                    break a;
                                $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$21 = $var11.$hashCode1;
                    var$7 = var$8.$elementData.data;
                    var$8 = var$7[var$21 & (var$7.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == var$21) {
                            b: {
                                $var12 = var$8.$key;
                                if ($var11 !== $var12) {
                                    if ($var11 === $var12)
                                        var$5 = 1;
                                    else if (!($var12 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        $var12 = $var12;
                                        var$5 = $var11.$nativeString !== $var12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break b;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                }
                var$8 = var$8 === null ? null : var$8.$value0;
                var$8 = var$8.$copy();
                if ($var11 !== null)
                    var$8.$name = $var11;
                else
                    var$8.$name = $rt_s(3);
                ju_HashMap_putImpl(var$19, $var11, var$8);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var4, var$4, var$5, var$6, var$7, var$8, $var5, $var7, $var9, $var11, $var12, $var13, $var15, $var17, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_DispenserBehaviorFireball_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1009;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$7 = 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
};
function nms_DispenserBehaviorBoat() {
    nms_BehaviorDefaultDispenseItem.call(this);
    this.$defaultDispenserItemBehavior1 = null;
}
let nms_DispenserBehaviorBoat__init_ = $this => {
    $this.$defaultDispenserItemBehavior1 = new nms_BehaviorDefaultDispenseItem;
},
nms_DispenserBehaviorBoat__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorBoat();
    nms_DispenserBehaviorBoat__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorBoat_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var4, var$4, $var12, $var11, var$7, $var17, $var13, $var7, $var5, var$12, $var15, var$14, $var9, $var14, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var14 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();$var15 = $thread.pop();var$12 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();$var13 = $thread.pop();$var17 = $thread.pop();var$7 = $thread.pop();$var11 = $thread.pop();$var12
        = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        $var12 = $par1IBlockSource.$yPos;
        $var11 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var4, var$4, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        var$4 = $var12 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var17 = var$7[var$4 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        $var13 = $par1IBlockSource.$xPos;
        $var7 = $var13 + 0.5;
        $var11 = $var17.$frontOffsetX;
        $var5 = $var7 + $var11 * 1.125;
        var$4 = $par1IBlockSource.$yPos;
        $var7 = var$4 + 0.5;
        $var12 = $var17.$frontOffsetY;
        $var7 = $var7 + $var12 * 1.125;
        var$12 = $par1IBlockSource.$zPos;
        $var15 = var$12 + 0.5;
        var$14 = $var17.$frontOffsetZ;
        $var9 = $var15 + var$14 * 1.125;
        $var11 = $var13 + $var11 | 0;
        $var12 = var$4 + $var12 | 0;
        $var13 = var$12 + var$14 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4) {
            nms_Material_$callClinit();
            $var14 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var14 = nms_Block_blocksList.data[var$4].$blockMaterial;
        }
        nms_Material_$callClinit();
        $var17 = nms_Material_water;
        if ($var17 !== $var14 ? 0 : 1) {
            $var17 = new nms_EntityBoat;
            $var7 = $var7 + 1.0;
            nms_Entity__init_($var17, $var4);
            $var17.$field_70279_a = 1;
            $var17.$speedMultiplier = 0.07;
            $var17.$preventEntitySpawning = 1;
            var$17 = 1.5;
            var$18 = 0.6000000238418579;
            $ptr = 3;
            continue main;
        }
        if (nms_Material_air !== $var14 ? 0 : 1) {
            var$4 = $var12 - 1 | 0;
            $ptr = 7;
            continue main;
        }
        $var4 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        $var12 = $par1IBlockSource.$yPos;
        $var11 = $par1IBlockSource.$zPos;
        $ptr = 5;
        continue main;
    case 3:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $var17.$height0 / 2.0;
        $var17.$yOffset = var$18;
        nms_Entity_setPosition($var17, $var5, $var7 + var$18, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var7;
        $var17.$prevPosZ = $var9;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($var4, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
        if ($par1IBlockSource !== null) {
            var$19 = new ju_HashMap;
            $var12 = ju_HashMap_calculateCapacity(16);
            var$19.$elementCount = 0;
            var$20 = $rt_createArray(ju_HashMap$HashEntry, $var12);
            var$7 = var$20.data;
            var$19.$elementData = var$20;
            var$19.$loadFactor = 0.75;
            var$19.$threshold = var$7.length * 0.75 | 0;
            $var4 = $par1IBlockSource.$tagMap;
            if ($var4.$cachedKeySet === null) {
                $var17 = new ju_HashMap$1;
                $var17.$this$0 = $var4;
                $var4.$cachedKeySet = $var17;
            }
            $var4 = $var4.$cachedKeySet.$iterator();
            while ($var4.$hasNext()) {
                $var17 = $var4.$next();
                var$21 = $par1IBlockSource.$tagMap;
                if ($var17 === null) {
                    var$21 = var$21.$elementData.data[0];
                    while (var$21 !== null && var$21.$key !== null) {
                        var$21 = var$21.$next3;
                    }
                } else {
                    a: {
                        if (!$var17.$hashCode1) {
                            $var12 = 0;
                            while (true) {
                                if ($var12 >= $var17.$nativeString.length)
                                    break a;
                                $var17.$hashCode1 = (31 * $var17.$hashCode1 | 0) + $var17.$nativeString.charCodeAt($var12) | 0;
                                $var12 = $var12 + 1 | 0;
                            }
                        }
                    }
                    $var13 = $var17.$hashCode1;
                    var$7 = var$21.$elementData.data;
                    var$21 = var$7[$var13 & (var$7.length - 1 | 0)];
                    while (var$21 !== null) {
                        if (var$21.$origKeyHash == $var13) {
                            b: {
                                $var14 = var$21.$key;
                                if ($var17 !== $var14) {
                                    if ($var17 === $var14)
                                        $var12 = 1;
                                    else if (!($var14 instanceof jl_String))
                                        $var12 = 0;
                                    else {
                                        $var14 = $var14;
                                        $var12 = $var17.$nativeString !== $var14.$nativeString ? 0 : 1;
                                    }
                                    if (!$var12) {
                                        $var12 = 0;
                                        break b;
                                    }
                                }
                                $var12 = 1;
                            }
                            if ($var12)
                                break;
                        }
                        var$21 = var$21.$next3;
                    }
                }
                var$21 = var$21 === null ? null : var$21.$value0;
                var$21 = var$21.$copy();
                if ($var17 !== null)
                    var$21.$name = $var17;
                else
                    var$21.$name = $rt_s(3);
                ju_HashMap_putImpl(var$19, $var17, var$21);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    case 5:
        $tmp = nms_World_getBlockMetadata($var4, var$4, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        var$4 = $var12 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$22 = var$7[var$4 % var$7.length | 0];
        $ptr = 6;
    case 6:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var17 = new nms_ItemStack;
        $var12 = $par2ItemStack.$itemID;
        $var11 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $var17.$itemID = $var12;
        $var17.$stackSize = 1;
        $var17.$itemDamage = $var11;
        if ($var11 < 0)
            $var17.$itemDamage = 0;
        var$21 = $par2ItemStack.$stackTagCompound;
        if (var$21 !== null) {
            $var14 = new nms_NBTTagCompound;
            var$19 = var$21.$name;
            if (var$19 === null)
                var$19 = $rt_s(3);
            $var14.$name = var$19;
            var$19 = new ju_HashMap;
            ju_AbstractMap__init_(var$19);
            $var12 = ju_HashMap_calculateCapacity(16);
            var$19.$elementCount = 0;
            var$19.$elementData = ju_HashMap_newElementArray(var$19, $var12);
            var$19.$loadFactor = 0.75;
            ju_HashMap_computeThreshold(var$19);
            $var14.$tagMap = var$19;
            var$19 = var$21.$tagMap;
            if (var$19.$cachedKeySet === null) {
                var$23 = new ju_HashMap$1;
                var$23.$this$0 = var$19;
                jl_Object__init_(var$23);
                var$19.$cachedKeySet = var$23;
            }
            var$19 = var$19.$cachedKeySet.$iterator();
            while (var$19.$hasNext()) {
                var$23 = var$19.$next();
                var$24 = var$21.$tagMap;
                if (var$23 === null) {
                    var$24 = var$24.$elementData.data[0];
                    while (var$24 !== null && var$24.$key !== null) {
                        var$24 = var$24.$next3;
                    }
                } else {
                    a: {
                        if (!var$23.$hashCode1) {
                            $var12 = 0;
                            while (true) {
                                if ($var12 >= var$23.$nativeString.length)
                                    break a;
                                var$23.$hashCode1 = (31 * var$23.$hashCode1 | 0) + var$23.$nativeString.charCodeAt($var12) | 0;
                                $var12 = $var12 + 1 | 0;
                            }
                        }
                    }
                    $var13 = var$23.$hashCode1;
                    var$7 = var$24.$elementData.data;
                    var$24 = var$7[$var13 & (var$7.length - 1 | 0)];
                    while (var$24 !== null) {
                        if (var$24.$origKeyHash == $var13) {
                            var$25 = var$24.$key;
                            if (var$23 !== var$25 && !jl_String_equals(var$23, var$25) ? 0 : 1)
                                break;
                        }
                        var$24 = var$24.$next3;
                    }
                }
                var$24 = var$24 === null ? null : var$24.$value0;
                var$24 = var$24.$copy();
                var$25 = $var14.$tagMap;
                if (var$23 !== null)
                    var$24.$name = var$23;
                else
                    var$24.$name = $rt_s(3);
                ju_HashMap_putImpl(var$25, var$23, var$24);
            }
            $var17.$stackTagCompound = $var14;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        var$21 = $par1IBlockSource.$worldObj4;
        var$4 = 6;
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($var4, $var11, var$4, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            var$21 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$21 = nms_Block_blocksList.data[var$4].$blockMaterial;
        }
        if (!($var17 !== var$21 ? 0 : 1)) {
            $var4 = $par1IBlockSource.$worldObj4;
            var$4 = $par1IBlockSource.$xPos;
            $var12 = $par1IBlockSource.$yPos;
            $var11 = $par1IBlockSource.$zPos;
            $ptr = 5;
            continue main;
        }
        $var17 = new nms_EntityBoat;
        $var7 = $var7 + 0.0;
        nms_Entity__init_($var17, $var4);
        $var17.$field_70279_a = 1;
        $var17.$speedMultiplier = 0.07;
        $var17.$preventEntitySpawning = 1;
        var$17 = 1.5;
        var$18 = 0.6000000238418579;
        $ptr = 3;
        continue main;
    case 8:
        nms_BehaviorDefaultDispenseItem_doDispense(var$21, $var17, var$4, var$22, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $par1IBlockSource.$worldObj4;
        var$4 = 1000;
        var$14 = $par1IBlockSource.$xPos;
        $var13 = $par1IBlockSource.$yPos;
        $var11 = $par1IBlockSource.$zPos;
        $var12 = 0;
        $var4 = null;
        $ptr = 9;
    case 9:
        nms_World_playAuxSFXAtEntity($var17, $var4, var$4, var$14, $var13, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        $var12 = $par1IBlockSource.$yPos;
        $var11 = $par1IBlockSource.$zPos;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockMetadata($var4, var$4, $var12, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        var$4 = $var12 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var17 = var$7[var$4 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        var$4 = 2000;
        var$26 = $par1IBlockSource.$xPos;
        var$12 = $par1IBlockSource.$yPos;
        var$14 = $par1IBlockSource.$zPos;
        $var12 = ($var17.$frontOffsetX + 1 | 0) + (($var17.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 11;
    case 11:
        nms_World_playAuxSFXAtEntity($var4, $par1IBlockSource, var$4, var$26, var$12, var$14, $var12);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var4, var$4, $var12, $var11, var$7, $var17, $var13, $var7, $var5, var$12, $var15, var$14, $var9, $var14, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr);
},
nms_DispenserBehaviorBoat_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1000;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$7 = 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
};
function nms_DispenserBehaviorFilledBucket() {
    nms_BehaviorDefaultDispenseItem.call(this);
    this.$defaultDispenserItemBehavior = null;
}
let nms_DispenserBehaviorFilledBucket__init_ = $this => {
    $this.$defaultDispenserItemBehavior = new nms_BehaviorDefaultDispenseItem;
},
nms_DispenserBehaviorFilledBucket__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorFilledBucket();
    nms_DispenserBehaviorFilledBucket__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorFilledBucket_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var3, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        $var3 = nms_Item_itemsList.data[$par2ItemStack.$itemID];
        $var4 = $par1IBlockSource.$xPos;
        $var5 = $par1IBlockSource.$yPos;
        $var6 = $par1IBlockSource.$zPos;
        var$7 = $par1IBlockSource.$worldObj4;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata(var$7, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$9 = var$8 & 7;
        var$10 = nms_EnumFacing_faceList.data;
        var$11 = var$10[var$9 % var$10.length | 0];
        var$7 = $par1IBlockSource.$worldObj4;
        var$9 = $var4 + var$11.$frontOffsetX | 0;
        $var4 = $var5 + var$11.$frontOffsetY | 0;
        $var6 = $var6 + var$11.$frontOffsetZ | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_ItemBucket_tryPlaceContainedLiquid($var3, var$7, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9) {
            $par2ItemStack.$itemID = nms_Item_bucketEmpty.$itemID0;
            $par2ItemStack.$stackSize = 1;
            return $par2ItemStack;
        }
        $var3 = $par1IBlockSource.$worldObj4;
        var$9 = $par1IBlockSource.$xPos;
        $var4 = $par1IBlockSource.$yPos;
        $var6 = $par1IBlockSource.$zPos;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($var3, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$9 = $var4 & 7;
        var$10 = nms_EnumFacing_faceList.data;
        var$12 = var$10[var$9 % var$10.length | 0];
        $ptr = 4;
    case 4:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        var$7 = new nms_ItemStack;
        $var4 = $par2ItemStack.$itemID;
        $var6 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$7.$itemID = $var4;
        var$7.$stackSize = 1;
        var$7.$itemDamage = $var6;
        if ($var6 < 0)
            var$7.$itemDamage = 0;
        var$11 = $par2ItemStack.$stackTagCompound;
        if (var$11 !== null) {
            var$13 = new nms_NBTTagCompound;
            var$14 = var$11.$name;
            if (var$14 === null)
                var$14 = $rt_s(3);
            var$13.$name = var$14;
            var$14 = new ju_HashMap;
            ju_AbstractMap__init_(var$14);
            $var4 = ju_HashMap_calculateCapacity(16);
            var$14.$elementCount = 0;
            var$14.$elementData = ju_HashMap_newElementArray(var$14, $var4);
            var$14.$loadFactor = 0.75;
            ju_HashMap_computeThreshold(var$14);
            var$13.$tagMap = var$14;
            var$14 = var$11.$tagMap;
            if (var$14.$cachedKeySet === null) {
                var$15 = new ju_HashMap$1;
                var$15.$this$0 = var$14;
                jl_Object__init_(var$15);
                var$14.$cachedKeySet = var$15;
            }
            var$14 = var$14.$cachedKeySet.$iterator();
            while (var$14.$hasNext()) {
                var$16 = var$14.$next();
                var$15 = var$11.$tagMap;
                if (var$16 === null) {
                    var$15 = var$15.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                } else {
                    a: {
                        if (!var$16.$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= var$16.$nativeString.length)
                                    break a;
                                var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    $var5 = var$16.$hashCode1;
                    var$10 = var$15.$elementData.data;
                    var$15 = var$10[$var5 & (var$10.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == $var5) {
                            var$17 = var$15.$key;
                            if (var$16 !== var$17 && !jl_String_equals(var$16, var$17) ? 0 : 1)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                }
                var$15 = var$15 === null ? null : var$15.$value0;
                var$15 = var$15.$copy();
                var$17 = var$13.$tagMap;
                if (var$16 !== null)
                    var$15.$name = var$16;
                else
                    var$15.$name = $rt_s(3);
                ju_HashMap_putImpl(var$17, var$16, var$15);
            }
            var$7.$stackTagCompound = var$13;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        var$11 = $par1IBlockSource.$worldObj4;
        var$9 = 6;
        $ptr = 5;
    case 5:
        nms_BehaviorDefaultDispenseItem_doDispense(var$11, var$7, var$9, var$12, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $par1IBlockSource.$worldObj4;
        var$9 = 1000;
        var$8 = $par1IBlockSource.$xPos;
        $var5 = $par1IBlockSource.$yPos;
        $var6 = $par1IBlockSource.$zPos;
        $var4 = 0;
        $var3 = null;
        $ptr = 6;
    case 6:
        nms_World_playAuxSFXAtEntity(var$7, $var3, var$9, var$8, $var5, $var6, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $par1IBlockSource.$worldObj4;
        var$9 = $par1IBlockSource.$xPos;
        $var4 = $par1IBlockSource.$yPos;
        $var6 = $par1IBlockSource.$zPos;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockMetadata($var3, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$9 = $var4 & 7;
        var$10 = nms_EnumFacing_faceList.data;
        var$7 = var$10[var$9 % var$10.length | 0];
        $var3 = $par1IBlockSource.$worldObj4;
        var$9 = 2000;
        var$18 = $par1IBlockSource.$xPos;
        var$19 = $par1IBlockSource.$yPos;
        var$8 = $par1IBlockSource.$zPos;
        $var4 = (var$7.$frontOffsetX + 1 | 0) + ((var$7.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 8;
    case 8:
        nms_World_playAuxSFXAtEntity($var3, $par1IBlockSource, var$9, var$18, var$19, var$8, $var4);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var3, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
};
function nms_DispenserBehaviorEmptyBucket() {
    nms_BehaviorDefaultDispenseItem.call(this);
    this.$defaultDispenserItemBehavior2 = null;
}
let nms_DispenserBehaviorEmptyBucket__init_ = $this => {
    $this.$defaultDispenserItemBehavior2 = new nms_BehaviorDefaultDispenseItem;
},
nms_DispenserBehaviorEmptyBucket__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorEmptyBucket();
    nms_DispenserBehaviorEmptyBucket__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorEmptyBucket_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var10, $var5, $var6, $var9, var$7, $var4, $var7, $var8, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var10 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos;
        $var6 = $par1IBlockSource.$yPos;
        $var9 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var10, $var5, $var6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = $var6 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var10 = var$7[$var5 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos + $var10.$frontOffsetX | 0;
        $var6 = $par1IBlockSource.$yPos + $var10.$frontOffsetY | 0;
        $var7 = $par1IBlockSource.$zPos + $var10.$frontOffsetZ | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            nms_Material_$callClinit();
            $var8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var8 = nms_Block_blocksList.data[$var9].$blockMaterial;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        nms_Material_$callClinit();
        var$11 = nms_Material_water !== $var8 ? 0 : 1;
        a: {
            if (var$11 && !$var9) {
                nms_Item_$callClinit();
                $var10 = nms_Item_bucketWater;
            } else {
                if (!(nms_Material_lava !== $var8 ? 0 : 1))
                    break a;
                if ($var9)
                    break a;
                nms_Item_$callClinit();
                $var10 = nms_Item_bucketLava;
            }
            $var9 = 0;
            var$11 = 0;
            var$12 = 3;
            $ptr = 4;
            continue main;
        }
        $var10 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos;
        $var6 = $par1IBlockSource.$yPos;
        $var9 = $par1IBlockSource.$zPos;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlock($var4, $var5, $var6, $var7, $var9, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $par2ItemStack.$stackSize - 1 | 0;
        $par2ItemStack.$stackSize = $var5;
        if (!$var5) {
            $par2ItemStack.$itemID = $var10.$itemID0;
            $par2ItemStack.$stackSize = 1;
            return $par2ItemStack;
        }
        $var8 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos;
        $var6 = $par1IBlockSource.$yPos;
        $var9 = $par1IBlockSource.$zPos;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_getBlockMetadata($var10, $var5, $var6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = $var6 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$13 = var$7[$var5 % var$7.length | 0];
        $ptr = 6;
    case 6:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var8 = new nms_ItemStack;
        $var6 = $par2ItemStack.$itemID;
        $var9 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $var8.$itemID = $var6;
        $var8.$stackSize = 1;
        $var8.$itemDamage = $var9;
        if ($var9 < 0)
            $var8.$itemDamage = 0;
        $var4 = $par2ItemStack.$stackTagCompound;
        if ($var4 !== null) {
            var$14 = new nms_NBTTagCompound;
            var$15 = $var4.$name;
            if (var$15 === null)
                var$15 = $rt_s(3);
            var$14.$name = var$15;
            var$15 = new ju_HashMap;
            jl_Object__init_(var$15);
            $var6 = ju_HashMap_calculateCapacity(16);
            var$15.$elementCount = 0;
            var$16 = $rt_createArray(ju_HashMap$HashEntry, $var6);
            var$7 = var$16.data;
            var$15.$elementData = var$16;
            var$15.$loadFactor = 0.75;
            var$15.$threshold = var$7.length * 0.75 | 0;
            var$14.$tagMap = var$15;
            var$15 = $var4.$tagMap;
            if (var$15.$cachedKeySet === null) {
                var$17 = new ju_HashMap$1;
                var$17.$this$0 = var$15;
                var$15.$cachedKeySet = var$17;
            }
            var$15 = var$15.$cachedKeySet.$iterator();
            while (var$15.$hasNext()) {
                var$17 = var$15.$next();
                var$18 = $var4.$tagMap;
                if (var$17 === null) {
                    var$19 = var$18.$elementData.data[0];
                    while (var$19 !== null && var$19.$key !== null) {
                        var$19 = var$19.$next3;
                    }
                } else {
                    b: {
                        if (!var$17.$hashCode1) {
                            $var6 = 0;
                            while (true) {
                                if ($var6 >= var$17.$nativeString.length)
                                    break b;
                                var$17.$hashCode1 = (31 * var$17.$hashCode1 | 0) + var$17.$nativeString.charCodeAt($var6) | 0;
                                $var6 = $var6 + 1 | 0;
                            }
                        }
                    }
                    $var9 = var$17.$hashCode1;
                    var$7 = var$18.$elementData.data;
                    var$19 = var$7[$var9 & (var$7.length - 1 | 0)];
                    while (var$19 !== null) {
                        if (var$19.$origKeyHash == $var9) {
                            c: {
                                var$18 = var$19.$key;
                                if (var$17 !== var$18) {
                                    if (var$17 === var$18)
                                        $var6 = 1;
                                    else if (!(var$18 instanceof jl_String))
                                        $var6 = 0;
                                    else {
                                        var$18 = var$18;
                                        $var6 = var$17.$nativeString !== var$18.$nativeString ? 0 : 1;
                                    }
                                    if (!$var6) {
                                        $var6 = 0;
                                        break c;
                                    }
                                }
                                $var6 = 1;
                            }
                            if ($var6)
                                break;
                        }
                        var$19 = var$19.$next3;
                    }
                }
                var$18 = var$19 === null ? null : var$19.$value0;
                var$18 = var$18.$copy();
                var$20 = var$14.$tagMap;
                if (var$17 !== null)
                    var$18.$name = var$17;
                else
                    var$18.$name = $rt_s(3);
                ju_HashMap_putImpl(var$20, var$17, var$18);
            }
            $var8.$stackTagCompound = var$14;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        $par1IBlockSource = $par1IBlockSource.$worldObj4;
        $var5 = 6;
        $ptr = 15;
        continue main;
    case 7:
        $tmp = nms_World_getBlockTileEntity($var8, $var5, $var6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var8 = $var8;
        $var4 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $var4.$itemID = $var10.$itemID0;
        $var4.$stackSize = 1;
        $var4.$itemDamage = 0;
        $ptr = 8;
    case 8:
        $tmp = nms_TileEntityDispenser_addItem($var8, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 >= 0)
            return $par2ItemStack;
        $var6 = $var10.$itemID0;
        $var5 = 0;
        $var10 = $par1IBlockSource.$worldObj4;
        $var9 = $par1IBlockSource.$xPos;
        var$11 = $par1IBlockSource.$yPos;
        var$12 = $par1IBlockSource.$zPos;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockMetadata($var10, $var9, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        $var9 = var$11 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var4 = var$7[$var9 % var$7.length | 0];
        $ptr = 10;
    case 10:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var8 = new nms_ItemStack;
        $var8.$itemID = $var6;
        $var8.$stackSize = 1;
        $var8.$itemDamage = $var5;
        var$14 = $par1IBlockSource.$worldObj4;
        $var5 = 6;
        $ptr = 11;
    case 11:
        nms_BehaviorDefaultDispenseItem_doDispense(var$14, $var8, $var5, $var4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $par1IBlockSource.$worldObj4;
        $var5 = 1000;
        var$12 = $par1IBlockSource.$xPos;
        var$11 = $par1IBlockSource.$yPos;
        $var9 = $par1IBlockSource.$zPos;
        $var6 = 0;
        $var10 = null;
        $ptr = 12;
    case 12:
        nms_World_playAuxSFXAtEntity($var8, $var10, $var5, var$12, var$11, $var9, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos;
        $var6 = $par1IBlockSource.$yPos;
        $var9 = $par1IBlockSource.$zPos;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockMetadata($var10, $var5, $var6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = $var6 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var8 = var$7[$var5 % var$7.length | 0];
        $var10 = $par1IBlockSource.$worldObj4;
        $var5 = 2000;
        var$21 = $par1IBlockSource.$xPos;
        $var7 = $par1IBlockSource.$yPos;
        var$12 = $par1IBlockSource.$zPos;
        $var6 = ($var8.$frontOffsetX + 1 | 0) + (($var8.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 14;
    case 14:
        nms_World_playAuxSFXAtEntity($var10, $par1IBlockSource, $var5, var$21, $var7, var$12, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    case 15:
        nms_BehaviorDefaultDispenseItem_doDispense($par1IBlockSource, $var8, $var5, var$13, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var10, $var5, $var6, $var9, var$7, $var4, $var7, $var8, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
};
function nms_DispenserBehaviorFire() {
    nms_BehaviorDefaultDispenseItem.call(this);
    this.$field_96466_b = 0;
}
let nms_DispenserBehaviorFire__init_ = $this => {
    $this.$field_96466_b = 1;
},
nms_DispenserBehaviorFire__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorFire();
    nms_DispenserBehaviorFire__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorFire_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var4, $var5, $var6, var$6, var$7, var$8, $var7, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos;
        $var6 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var4, $var5, $var6, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$6 = var$6 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[var$6 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos + var$8.$frontOffsetX | 0;
        $var6 = $par1IBlockSource.$yPos + var$8.$frontOffsetY | 0;
        $var7 = $par1IBlockSource.$zPos + var$8.$frontOffsetZ | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!(var$6 ? 0 : 1)) {
            $ptr = 3;
            continue main;
        }
        nms_Block_$callClinit();
        var$6 = nms_Block_fire.$blockID;
        var$10 = 0;
        var$11 = 3;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        $par1IBlockSource = nms_Block_tnt;
        if (var$6 != $par1IBlockSource.$blockID) {
            $this.$field_96466_b = 0;
            return $par2ItemStack;
        }
        var$6 = 1;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_setBlock($var4, $var5, $var6, $var7, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_ItemStack_attemptDamageItem($par2ItemStack, 1, $var4.$rand0))
            $par2ItemStack.$stackSize = 0;
        return $par2ItemStack;
    case 5:
        $par1IBlockSource.$onBlockDestroyedByPlayer($var4, $var5, $var6, $var7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = 0;
        var$10 = 0;
        var$11 = 3;
        $ptr = 6;
    case 6:
        nms_World_setBlock($var4, $var5, $var6, $var7, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var4, $var5, $var6, var$6, var$7, var$8, $var7, var$10, var$11, $ptr);
},
nms_DispenserBehaviorFire_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$field_96466_b) {
            var$2 = $par1IBlockSource.$worldObj4;
            var$3 = 1001;
            var$4 = $par1IBlockSource.$xPos;
            var$5 = $par1IBlockSource.$yPos;
            var$6 = $par1IBlockSource.$zPos;
            var$7 = 0;
            $par1IBlockSource = null;
            $ptr = 1;
            continue main;
        }
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1000;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$7 = $par1IBlockSource.$zPos;
        var$6 = 0;
        $par1IBlockSource = null;
        $ptr = 2;
        continue main;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
};
function nms_DispenserBehaviorDye() {
    nms_BehaviorDefaultDispenseItem.call(this);
    this.$field_96461_b = 0;
}
let nms_DispenserBehaviorDye__init_ = $this => {
    $this.$field_96461_b = 1;
},
nms_DispenserBehaviorDye__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorDye();
    nms_DispenserBehaviorDye__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorDye_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var4, var$4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var7, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();$var7 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2ItemStack.$itemDamage == 15) {
            $var4 = $par1IBlockSource.$worldObj4;
            var$4 = $par1IBlockSource.$xPos;
            $var5 = $par1IBlockSource.$yPos;
            $var6 = $par1IBlockSource.$zPos;
            $ptr = 3;
            continue main;
        }
        $var4 = $par1IBlockSource.$worldObj4;
        var$4 = $par1IBlockSource.$xPos;
        $var5 = $par1IBlockSource.$yPos;
        $var6 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var4, var$4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$4 = $var5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[var$4 % var$7.length | 0];
        $ptr = 2;
    case 2:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$9 = new nms_ItemStack;
        var$4 = $par2ItemStack.$itemID;
        $var5 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$9.$itemID = var$4;
        var$9.$stackSize = 1;
        var$9.$itemDamage = $var5;
        if ($var5 < 0)
            var$9.$itemDamage = 0;
        var$10 = $par2ItemStack.$stackTagCompound;
        if (var$10 !== null) {
            var$11 = new nms_NBTTagCompound;
            var$12 = var$10.$name;
            if (var$12 === null)
                var$12 = $rt_s(3);
            var$11.$name = var$12;
            var$12 = new ju_HashMap;
            jl_Object__init_(var$12);
            var$4 = ju_HashMap_calculateCapacity(16);
            var$12.$elementCount = 0;
            var$7 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$13 = var$7.data;
            var$12.$elementData = var$7;
            var$12.$loadFactor = 0.75;
            var$12.$threshold = var$13.length * 0.75 | 0;
            var$11.$tagMap = var$12;
            var$12 = var$10.$tagMap;
            if (var$12.$cachedKeySet === null) {
                var$14 = new ju_HashMap$1;
                var$14.$this$0 = var$12;
                var$12.$cachedKeySet = var$14;
            }
            var$15 = var$12.$cachedKeySet.$iterator();
            while (var$15.$hasNext()) {
                var$16 = var$15.$next();
                var$12 = var$10.$tagMap;
                if (var$16 === null) {
                    var$17 = var$12.$elementData.data[0];
                    while (var$17 !== null && var$17.$key !== null) {
                        var$17 = var$17.$next3;
                    }
                } else {
                    a: {
                        if (!var$16.$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= var$16.$nativeString.length)
                                    break a;
                                var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$4 = var$16.$hashCode1;
                    var$7 = var$12.$elementData.data;
                    var$17 = var$7[var$4 & (var$7.length - 1 | 0)];
                    while (var$17 !== null) {
                        if (var$17.$origKeyHash == var$4) {
                            b: {
                                var$12 = var$17.$key;
                                if (var$16 !== var$12) {
                                    if (var$16 === var$12)
                                        $var5 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        $var5 = 0;
                                    else {
                                        var$12 = var$12;
                                        $var5 = var$16.$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!$var5) {
                                        $var5 = 0;
                                        break b;
                                    }
                                }
                                $var5 = 1;
                            }
                            if ($var5)
                                break;
                        }
                        var$17 = var$17.$next3;
                    }
                }
                var$12 = var$17 === null ? null : var$17.$value0;
                var$12 = var$12.$copy();
                var$14 = var$11.$tagMap;
                if (var$16 !== null)
                    var$12.$name = var$16;
                else
                    var$12.$name = $rt_s(3);
                ju_HashMap_putImpl(var$14, var$16, var$12);
            }
            var$9.$stackTagCompound = var$11;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        $par1IBlockSource = $par1IBlockSource.$worldObj4;
        var$4 = 6;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($var4, var$4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$4 = $var5 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$12 = var$7[var$4 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos + var$12.$frontOffsetX | 0;
        $var6 = $par1IBlockSource.$yPos + var$12.$frontOffsetY | 0;
        $var7 = $par1IBlockSource.$zPos + var$12.$frontOffsetZ | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_ItemDye_func_96604_a($par2ItemStack, $var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            $this.$field_96461_b = 0;
        else if (!$var4.$isRemote) {
            var$19 = 2005;
            var$4 = 0;
            $par1IBlockSource = null;
            $ptr = 6;
            continue main;
        }
        return $par2ItemStack;
    case 5:
        nms_BehaviorDefaultDispenseItem_doDispense($par1IBlockSource, var$9, var$4, var$8, $var4);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    case 6:
        nms_World_playAuxSFXAtEntity($var4, $par1IBlockSource, var$19, $var5, $var6, $var7, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var4, var$4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var7, var$19, $ptr);
},
nms_DispenserBehaviorDye_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$field_96461_b) {
            var$2 = $par1IBlockSource.$worldObj4;
            var$3 = 1001;
            var$4 = $par1IBlockSource.$xPos;
            var$5 = $par1IBlockSource.$yPos;
            var$6 = $par1IBlockSource.$zPos;
            var$7 = 0;
            $par1IBlockSource = null;
            $ptr = 1;
            continue main;
        }
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1000;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$7 = $par1IBlockSource.$zPos;
        var$6 = 0;
        $par1IBlockSource = null;
        $ptr = 2;
        continue main;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_DispenserBehaviorTNT = $rt_classWithoutFields(nms_BehaviorDefaultDispenseItem),
nms_DispenserBehaviorTNT__init_ = $this => {
    return;
},
nms_DispenserBehaviorTNT__init_0 = () => {
    let var_0 = new nms_DispenserBehaviorTNT();
    nms_DispenserBehaviorTNT__init_(var_0);
    return var_0;
},
nms_DispenserBehaviorTNT_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var4, $var5, $var6, $var7, var$7, $var8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos;
        $var6 = $par1IBlockSource.$yPos;
        $var7 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = $var6 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var8 = var$7[$var5 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        $var5 = $par1IBlockSource.$xPos + $var8.$frontOffsetX | 0;
        $var6 = $par1IBlockSource.$yPos + $var8.$frontOffsetY | 0;
        $var7 = $par1IBlockSource.$zPos + $var8.$frontOffsetZ | 0;
        $var8 = new nms_EntityTNTPrimed;
        var$9 = $var5 + 0.5;
        var$10 = $var6 + 0.5;
        var$11 = $var7 + 0.5;
        $par1IBlockSource = null;
        $ptr = 2;
    case 2:
        nms_EntityTNTPrimed__init_($var8, $var4, var$9, var$10, var$11, $par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($var4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var4, $var5, $var6, $var7, var$7, $var8, var$9, var$10, var$11, $ptr);
};
function nms_LowerStringMap() {
    jl_Object.call(this);
    this.$internalMap = null;
}
let nms_LowerStringMap__init_ = $this => {
    $this.$internalMap = ju_LinkedHashMap__init_();
},
nms_LowerStringMap__init_0 = () => {
    let var_0 = new nms_LowerStringMap();
    nms_LowerStringMap__init_(var_0);
    return var_0;
},
nms_LowerStringMap_values = $this => {
    let var$1, var$2;
    var$1 = $this.$internalMap;
    if (var$1.$cachedValues === null) {
        var$2 = new ju_LinkedHashMapValues;
        var$2.$base = var$1;
        var$2.$reversed = 0;
        var$1.$cachedValues = var$2;
    }
    return var$1.$cachedValues;
},
otji_EventHandler = $rt_classWithoutFields(0);
function nles_VirtualFilesystem$AsyncHandlers$1() {
    jl_Object.call(this);
    this.$val$cb11 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$1_handleEvent$exported$0 = var$0 => {
    let var$1, var$2, var$3, var$4;
    var$1 = var$0.$val$cb11;
    var$2 = new nles_VirtualFilesystem$DatabaseOpen;
    var$3 = null;
    var$4 = null;
    var$2.$failedInit = 0;
    var$2.$failedLocked = 1;
    var$2.$failedError = var$3;
    var$2.$database = var$4;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$2() {
    let a = this; jl_Object.call(a);
    a.$val$cb12 = null;
    a.$val$f = null;
}
let nles_VirtualFilesystem$AsyncHandlers$2_handleEvent$exported$0 = var$0 => {
    let var$1, var$2, var$3, var$4;
    var$1 = var$0.$val$cb12;
    var$2 = new nles_VirtualFilesystem$DatabaseOpen;
    var$3 = null;
    var$4 = var$0.$val$f.result;
    var$2.$failedInit = 0;
    var$2.$failedLocked = 0;
    var$2.$failedError = var$3;
    var$2.$database = var$4;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$3() {
    jl_Object.call(this);
    this.$val$cb13 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$3_handleEvent$exported$0 = var$0 => {
    let var$1, var$2, var$3;
    var$1 = var$0.$val$cb13;
    var$2 = new nles_VirtualFilesystem$DatabaseOpen;
    var$3 = null;
    var$2.$failedInit = 0;
    var$2.$failedLocked = 0;
    var$2.$failedError = $rt_s(1466);
    var$2.$database = var$3;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$4() {
    jl_Object.call(this);
    this.$val$f0 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$4_handleEvent$exported$0 = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = var$0.$val$f0.result;
    var$3 = otji_IDBObjectStoreParameters_create$js_body$_1();
    var$4 = $rt_createArray(jl_String, 1).data;
    var$4[0] = $rt_s(1467);
    var$5 = var$4.length;
    var$6 = new Array(var$5);
    var$7 = 0;
    while (var$7 < var$5) {
        var$8 = $rt_ustr(var$4[var$7]);
        var$6[var$7] = var$8;
        var$7 = var$7 + 1 | 0;
    }
    var$3.keyPath = var$6;
    var$2.createObjectStore("filesystem", var$3);
};
function jl_Long() {
    jl_Number.call(this);
    this.$value7 = Long_ZERO;
}
let jl_Long_TYPE = null,
jl_Long_valueOf = $value => {
    let var$2;
    var$2 = new jl_Long;
    var$2.$value7 = $value;
    return var$2;
},
jl_Long_decode = $nm => {
    let $index, $negaive, $radix, $value, var$6, $maxValue, var$8, $digit;
    if ($nm.$nativeString.length ? 0 : 1) {
        $nm = new jl_NumberFormatException;
        $nm.$suppressionEnabled = 1;
        $nm.$writableStackTrace = 1;
        $nm.$message = $rt_s(1468);
        $rt_throw($nm);
    }
    $index = 0;
    $negaive = 0;
    if ($index >= $nm.$nativeString.length) {
        $nm = new jl_StringIndexOutOfBoundsException;
        $nm.$suppressionEnabled = 1;
        $nm.$writableStackTrace = 1;
        $rt_throw($nm);
    }
    if ($nm.$nativeString.charCodeAt($index) == 43)
        $index = 1;
    else {
        if ($index >= $nm.$nativeString.length) {
            $nm = new jl_StringIndexOutOfBoundsException;
            $nm.$suppressionEnabled = 1;
            $nm.$writableStackTrace = 1;
            $rt_throw($nm);
        }
        if ($nm.$nativeString.charCodeAt($index) == 45) {
            $index = 1;
            $negaive = 1;
        }
    }
    if ($index >= $nm.$nativeString.length) {
        $nm = new jl_NumberFormatException;
        $nm.$suppressionEnabled = 1;
        $nm.$writableStackTrace = 1;
        $nm.$message = $rt_s(1469);
        $rt_throw($nm);
    }
    $radix = 10;
    if ($index >= 0 && $index < $nm.$nativeString.length) {
        a: {
            if ($nm.$nativeString.charCodeAt($index) == 35) {
                $radix = 16;
                $index = $index + 1 | 0;
            } else {
                if ($index >= 0 && $index < $nm.$nativeString.length) {
                    if ($nm.$nativeString.charCodeAt($index) != 48)
                        break a;
                    $index = $index + 1 | 0;
                    if ($index == $nm.$nativeString.length) {
                        $nm = new jl_Long;
                        $nm.$value7 = Long_ZERO;
                        return $nm;
                    }
                    if ($index >= 0 && $index < $nm.$nativeString.length) {
                        b: {
                            if ($nm.$nativeString.charCodeAt($index) != 120) {
                                if ($index >= 0 && $index < $nm.$nativeString.length) {
                                    if ($nm.$nativeString.charCodeAt($index) == 88)
                                        break b;
                                    $radix = 8;
                                    break a;
                                }
                                $nm = new jl_StringIndexOutOfBoundsException;
                                $nm.$suppressionEnabled = 1;
                                $nm.$writableStackTrace = 1;
                                $rt_throw($nm);
                            }
                        }
                        $radix = 16;
                        $index = $index + 1 | 0;
                        break a;
                    }
                    $nm = new jl_StringIndexOutOfBoundsException;
                    $nm.$suppressionEnabled = 1;
                    $nm.$writableStackTrace = 1;
                    $rt_throw($nm);
                }
                $nm = new jl_StringIndexOutOfBoundsException;
                $nm.$suppressionEnabled = 1;
                $nm.$writableStackTrace = 1;
                $rt_throw($nm);
            }
        }
        if ($index >= $nm.$nativeString.length) {
            $nm = new jl_NumberFormatException;
            $nm.$suppressionEnabled = 1;
            $nm.$writableStackTrace = 1;
            $nm.$message = $rt_s(1469);
            $rt_throw($nm);
        }
        $value = Long_ZERO;
        var$6 = Long_fromInt($radix);
        $maxValue = Long_add(Long_fromInt(1), Long_div(Long_create(4294967295, 2147483647), var$6));
        c: {
            while (true) {
                if ($index >= $nm.$nativeString.length) {
                    if ($negaive)
                        $value = Long_neg($value);
                    $nm = new jl_Long;
                    $nm.$value7 = $value;
                    return $nm;
                }
                var$8 = $index + 1 | 0;
                if ($index < 0)
                    break;
                if ($index >= $nm.$nativeString.length)
                    break;
                $digit = jl_Long_decodeDigit($nm.$nativeString.charCodeAt($index));
                if ($digit < 0)
                    break c;
                if ($digit >= $radix)
                    break c;
                if (Long_gt($value, $maxValue)) {
                    $nm = new jl_NumberFormatException;
                    $nm.$suppressionEnabled = 1;
                    $nm.$writableStackTrace = 1;
                    $nm.$message = $rt_s(1470);
                    $rt_throw($nm);
                }
                $value = Long_add(Long_mul($value, var$6), Long_fromInt($digit));
                if (Long_lt($value, Long_ZERO)) {
                    if ($negaive && Long_eq($value, Long_create(0, 2147483648)) && var$8 == $nm.$nativeString.length) {
                        $nm = new jl_Long;
                        $nm.$value7 = Long_create(0, 2147483648);
                        return $nm;
                    }
                    $nm = new jl_NumberFormatException;
                    $nm.$suppressionEnabled = 1;
                    $nm.$writableStackTrace = 1;
                    $nm.$message = $rt_s(1471);
                    $rt_throw($nm);
                }
                $index = var$8;
            }
            $nm = new jl_StringIndexOutOfBoundsException;
            $nm.$suppressionEnabled = 1;
            $nm.$writableStackTrace = 1;
            $rt_throw($nm);
        }
        $nm = new jl_NumberFormatException;
        $nm.$suppressionEnabled = 1;
        $nm.$writableStackTrace = 1;
        $nm.$message = $rt_s(1469);
        $rt_throw($nm);
    }
    $nm = new jl_StringIndexOutOfBoundsException;
    $nm.$suppressionEnabled = 1;
    $nm.$writableStackTrace = 1;
    $rt_throw($nm);
},
jl_Long_decodeDigit = $c => {
    if ($c >= 48 && $c <= 57)
        return $c - 48 | 0;
    if ($c >= 97 && $c <= 122)
        return ($c - 97 | 0) + 10 | 0;
    if ($c >= 65 && $c <= 90)
        return ($c - 65 | 0) + 10 | 0;
    return (-1);
},
jl_Long_intValue = $this => {
    return Long_lo($this.$value7);
},
jl_Long_longValue = $this => {
    return $this.$value7;
},
jl_Long_doubleValue = $this => {
    return Long_toNumber($this.$value7);
},
jl_Long_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$value7;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert4(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$2);
    $rt_throw(var$2);
},
jl_Long_hashCode = $this => {
    let var$1;
    var$1 = $this.$value7;
    return Long_lo(var$1) ^ Long_hi(var$1);
},
jl_Long_equals = ($this, $other) => {
    if ($this === $other)
        return 1;
    return $other instanceof jl_Long && Long_eq($other.$value7, $this.$value7) ? 1 : 0;
},
jl_Long_numberOfLeadingZeros = $i => {
    let $n, var$3;
    if (Long_eq($i, Long_ZERO))
        return 64;
    $n = 0;
    var$3 = Long_shru($i, 32);
    if (Long_ne(var$3, Long_ZERO))
        $n = 32;
    else
        var$3 = $i;
    $i = Long_shru(var$3, 16);
    if (Long_eq($i, Long_ZERO))
        $i = var$3;
    else
        $n = $n | 16;
    var$3 = Long_shru($i, 8);
    if (Long_eq(var$3, Long_ZERO))
        var$3 = $i;
    else
        $n = $n | 8;
    $i = Long_shru(var$3, 4);
    if (Long_eq($i, Long_ZERO))
        $i = var$3;
    else
        $n = $n | 4;
    var$3 = Long_shru($i, 2);
    if (Long_eq(var$3, Long_ZERO))
        var$3 = $i;
    else
        $n = $n | 2;
    if (Long_ne(Long_shru(var$3, 1), Long_ZERO))
        $n = $n | 1;
    return (64 - $n | 0) - 1 | 0;
},
jl_Long_divideUnsigned = (var$1, var$2) => {
    return Long_udiv(var$1, var$2);
},
jl_Long_remainderUnsigned = (var$1, var$2) => {
    return Long_urem(var$1, var$2);
},
jl_Long_compareUnsigned = (var$1, var$2) => {
    return Long_ucompare(var$1, var$2);
},
jl_Long_compareTo = ($this, var$1) => {
    var$1 = var$1;
    return Long_compare($this.$value7, var$1.$value7);
},
jl_Long__clinit_ = () => {
    jl_Long_TYPE = $rt_cls($rt_longcls);
};
function jt_NumberFormat() {
    let a = this; jt_Format.call(a);
    a.$groupingUsed = 0;
    a.$parseIntegerOnly = 0;
    a.$maximumIntegerDigits = 0;
    a.$minimumIntegerDigits = 0;
    a.$maximumFractionDigits = 0;
    a.$minimumFractionDigits = 0;
    a.$roundingMode = null;
    a.$currency = null;
}
function jt_DecimalFormat() {
    let a = this; jt_NumberFormat.call(a);
    a.$symbols = null;
    a.$positivePrefix = null;
    a.$negativePrefix = null;
    a.$positiveSuffix = null;
    a.$negativeSuffix = null;
    a.$multiplier = 0;
    a.$groupingSize = 0;
    a.$decimalSeparatorAlwaysShown = 0;
    a.$exponentDigits = 0;
    a.$pattern3 = null;
}
let jt_DecimalFormat_POW10_ARRAY = null,
jt_DecimalFormat_POW10_INT_ARRAY = null,
jt_DecimalFormat__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    ju_Locale_$callClinit();
    var$1 = ju_Locale_defaultLocale;
    var$2 = var$1.$languageCode;
    var$3 = var$1.$countryCode;
    if (otciu_CLDRHelper_$$metadata$$17 === null)
        otciu_CLDRHelper_$$metadata$$17 = otciu_CLDRHelper_getNumberFormatMap$$create();
    var$4 = otciu_CLDRHelper_$$metadata$$17;
    if (var$3.$nativeString.length ? 0 : 1)
        var$1 = var$2;
    else {
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert(var$5, var$5.$length0, var$2 === null ? $rt_s(1) : jl_String_toString(var$2));
        var$6 = var$5.$length0;
        jl_AbstractStringBuilder_insertSpace(var$5, var$6, var$6 + 1 | 0);
        var$5.$buffer.data[var$6] = 45;
        jl_StringBuilder_insert(var$5, var$5.$length0, jl_String_toString(var$3));
        var$1 = new jl_String;
        var$7 = var$5.$buffer;
        var$8 = var$7.data;
        var$9 = var$5.$length0;
        var$6 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$6 - 0 | 0))
            var$1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
        else {
            var$1 = new jl_IndexOutOfBoundsException;
            jl_RuntimeException__init_(var$1);
            $rt_throw(var$1);
        }
    }
    var$4 = ((var$4.hasOwnProperty($rt_ustr(var$1)) ? var$4[$rt_ustr(var$1)] : var$4.hasOwnProperty($rt_ustr(var$2)) ? var$4[$rt_ustr(var$2)] : var$4.root).value !== null ? $rt_str((var$4.hasOwnProperty($rt_ustr(var$1)) ? var$4[$rt_ustr(var$1)] : var$4.hasOwnProperty($rt_ustr(var$2)) ? var$4[$rt_ustr(var$2)] : var$4.root).value) : null);
    var$1 = new jt_DecimalFormatSymbols;
    var$1.$locale1 = ju_Locale_defaultLocale;
    jt_DecimalFormatSymbols_initData(var$1);
    jt_DecimalFormat__init_($this, var$4, var$1);
},
jt_DecimalFormat__init_1 = () => {
    let var_0 = new jt_DecimalFormat();
    jt_DecimalFormat__init_0(var_0);
    return var_0;
},
jt_DecimalFormat__init_ = ($this, $pattern, $value) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je;
    $this.$groupingUsed = 1;
    $this.$maximumIntegerDigits = 40;
    $this.$minimumIntegerDigits = 1;
    $this.$maximumFractionDigits = 3;
    $this.$roundingMode = jm_RoundingMode_HALF_EVEN;
    ju_Locale_$callClinit();
    var$3 = ju_Locale_defaultLocale;
    if (var$3 === null) {
        $pattern = new jl_NullPointerException;
        $pattern.$suppressionEnabled = 1;
        $pattern.$writableStackTrace = 1;
        $rt_throw($pattern);
    }
    var$4 = var$3.$languageCode;
    var$3 = var$3.$countryCode;
    if (var$3.$nativeString.length ? 0 : 1) {
        if (otciu_CLDRHelper_$$metadata$$0 === null)
            otciu_CLDRHelper_$$metadata$$0 = otciu_CLDRHelper_getLikelySubtagsMap$$create();
        var$3 = otciu_CLDRHelper_$$metadata$$0;
        if (var$3.hasOwnProperty($rt_ustr(var$4)))
            var$4 = (var$3[$rt_ustr(var$4)].value !== null ? $rt_str(var$3[$rt_ustr(var$4)].value) : null);
        var$5 = jl_String_lastIndexOf0(var$4, 95, var$4.$nativeString.length - 1 | 0);
        var$3 = var$5 <= 0 ? $rt_s(3) : jl_String_substring(var$4, var$5 + 1 | 0, var$4.$nativeString.length);
    }
    if (otcic_CurrencyHelper_$$metadata$$1 === null)
        otcic_CurrencyHelper_$$metadata$$1 = otcic_CurrencyHelper_getCountryToCurrencyMap$$create();
    var$4 = otcic_CurrencyHelper_$$metadata$$1;
    if (!var$4.hasOwnProperty($rt_ustr(var$3)))
        var$3 = null;
    else {
        var$4 = (var$4[$rt_ustr(var$3)].value !== null ? $rt_str(var$4[$rt_ustr(var$3)].value) : null);
        if (var$4 === null) {
            $pattern = new jl_NullPointerException;
            $pattern.$suppressionEnabled = 1;
            $pattern.$writableStackTrace = 1;
            $rt_throw($pattern);
        }
        a: {
            ju_Currency_initCurrencies();
            var$3 = ju_Currency_currencies;
            if (!var$4.$hashCode1) {
                var$6 = 0;
                while (true) {
                    if (var$6 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$6) | 0;
                    var$6 = var$6 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = var$3.$elementData.data;
        var$3 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$6) {
                b: {
                    var$8 = var$3.$key;
                    if (var$4 !== var$8) {
                        if (var$4 === var$8)
                            var$9 = 1;
                        else if (!(var$8 instanceof jl_String))
                            var$9 = 0;
                        else {
                            var$8 = var$8;
                            var$9 = var$4.$nativeString !== var$8.$nativeString ? 0 : 1;
                        }
                        if (!var$9) {
                            var$9 = 0;
                            break b;
                        }
                    }
                    var$9 = 1;
                }
                if (var$9)
                    break;
            }
            var$3 = var$3.$next3;
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 === null) {
            $pattern = new jl_IllegalArgumentException;
            $value = new jl_StringBuilder;
            $value.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert($value, $value.$length0, jl_String_toString($rt_s(1472)));
            jl_StringBuilder_insert($value, $value.$length0, var$4 === null ? $rt_s(1) : jl_String_toString(var$4));
            var$4 = new jl_String;
            var$7 = $value.$buffer;
            var$10 = var$7.data;
            var$5 = $value.$length0;
            var$6 = var$10.length;
            if (var$5 >= 0 && var$5 <= (var$6 - 0 | 0)) {
                var$4.$nativeString = $rt_charArrayToString(var$7.data, 0, var$5);
                $pattern.$suppressionEnabled = 1;
                $pattern.$writableStackTrace = 1;
                $pattern.$message = var$4;
                $rt_throw($pattern);
            }
            $pattern = new jl_IndexOutOfBoundsException;
            $pattern.$suppressionEnabled = 1;
            $pattern.$writableStackTrace = 1;
            $rt_throw($pattern);
        }
    }
    $this.$currency = var$3;
    $this.$positivePrefix = $rt_createArray(jt_DecimalFormat$FormatField, 0);
    var$7 = $rt_createArray(jt_DecimalFormat$FormatField, 1);
    var$10 = var$7.data;
    var$4 = new jt_DecimalFormat$TextField;
    var$4.$text = $rt_s(1157);
    var$10[0] = var$4;
    $this.$negativePrefix = var$7;
    $this.$positiveSuffix = $rt_createArray(jt_DecimalFormat$FormatField, 0);
    $this.$negativeSuffix = $rt_createArray(jt_DecimalFormat$FormatField, 0);
    $this.$multiplier = 1;
    c: {
        try {
            $value = jl_Object_clone($value);
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
                $value = $$je;
                break c;
            } else {
                throw $$e;
            }
        }
        $this.$symbols = $value;
        $value = new jt_DecimalFormatParser;
        jt_DecimalFormatParser_parse($value, $pattern);
        jt_DecimalFormatParser_apply($value, $this);
        $this.$pattern3 = $pattern;
        return;
    }
    var$4 = new jl_AssertionError;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    var$4.$message = $rt_s(1473);
    var$4.$cause = $value;
    $rt_throw(var$4);
},
jt_DecimalFormat__init_2 = (var_0, var_1) => {
    let var_2 = new jt_DecimalFormat();
    jt_DecimalFormat__init_(var_2, var_0, var_1);
    return var_2;
},
jt_DecimalFormat_format = ($this, $value, $buffer, $field) => {
    let var$4, var$5, var$6, var$7, $analysisResult;
    if (isNaN($value) ? 1 : 0) {
        var$4 = $this.$positivePrefix.data;
        var$5 = var$4.length;
        var$6 = 0;
        while (var$6 < var$5) {
            var$4[var$6].$render($this, $buffer);
            var$6 = var$6 + 1 | 0;
        }
        $field = $this.$symbols.$nan;
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $field);
        var$4 = $this.$positiveSuffix;
        if (var$4 !== null) {
            var$4 = var$4.data;
            var$6 = var$4.length;
            var$7 = 0;
            while (var$7 < var$6) {
                var$4[var$7].$render($this, $buffer);
                var$7 = var$7 + 1 | 0;
            }
        }
    } else if (!(!isFinite($value) ? 1 : 0)) {
        $analysisResult = jt_DecimalFormat$Constants_doubleAnalysisResult;
        otcit_DoubleAnalyzer_analyze($value, $analysisResult);
        if ($this.$exponentDigits <= 0)
            jt_DecimalFormat_formatRegular0($this, $analysisResult.$mantissa, $analysisResult.$exponent, $analysisResult.$sign2 ? 0 : 1, $buffer);
        else
            jt_DecimalFormat_formatExponent0($this, $analysisResult.$mantissa, $analysisResult.$exponent, $analysisResult.$sign2 ? 0 : 1, $buffer);
    } else {
        var$6 = $rt_compare($value, 0.0);
        var$4 = (var$6 <= 0 ? $this.$negativePrefix : $this.$positivePrefix).data;
        var$7 = var$4.length;
        var$5 = 0;
        while (var$5 < var$7) {
            var$4[var$5].$render($this, $buffer);
            var$5 = var$5 + 1 | 0;
        }
        $field = $this.$symbols.$infinity;
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $field);
        if (var$6 <= 0 ? 0 : 1) {
            var$4 = $this.$positiveSuffix;
            if (var$4 !== null) {
                var$4 = var$4.data;
                var$6 = var$4.length;
                var$7 = 0;
                while (var$7 < var$6) {
                    var$4[var$7].$render($this, $buffer);
                    var$7 = var$7 + 1 | 0;
                }
            }
        } else {
            var$4 = $this.$negativeSuffix;
            if (var$4 === null) {
                var$4 = $this.$positiveSuffix;
                if (var$4 === null)
                    var$4 = $rt_createArray(jt_DecimalFormat$FormatField, 0);
            }
            var$4 = var$4.data;
            var$6 = var$4.length;
            var$7 = 0;
            while (var$7 < var$6) {
                var$4[var$7].$render($this, $buffer);
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    return $buffer;
},
jt_DecimalFormat_formatExponent0 = ($this, $mantissa, $exponent, $sign, $buffer) => {
    let $visibleExponent, $mantissaLength, $requiredSize, $multiplierDigits, $tenMultiplier, var$10, var$11, var$12, $limit, $significantSize, $exponentMultiplier, $i, $delta, $newMantissaLength, var$19, $exponentPos, $i_0, $mantissaDigitMask, $limit_0, $count, $exponentLength, $exponentLength_0, $exponentDigit;
    $visibleExponent = jt_DecimalFormat_fastLn10($this, $mantissa);
    $mantissaLength = $visibleExponent + 1 | 0;
    $requiredSize = $this.$multiplier;
    if ($requiredSize != 1) {
        $multiplierDigits = jt_DecimalFormat_fastLn100($this, $requiredSize);
        $tenMultiplier = jt_DecimalFormat_POW10_INT_ARRAY.data[$multiplierDigits];
        $requiredSize = $this.$multiplier;
        if ($tenMultiplier == $requiredSize)
            $exponent = $exponent + $multiplierDigits | 0;
        else {
            var$10 = Long_fromInt($requiredSize);
            if (Long_ge($mantissa, Long_div(Long_create(4294967295, 2147483647), var$10))) {
                var$11 = new jm_BigDecimal;
                var$12 = jm_BigInteger_valueOf($mantissa);
                $exponent = $visibleExponent - $exponent | 0;
                jm_BigDecimal_$callClinit();
                if (var$12 === null) {
                    $buffer = new jl_NullPointerException;
                    $buffer.$suppressionEnabled = 1;
                    $buffer.$writableStackTrace = 1;
                    $rt_throw($buffer);
                }
                var$11.$scale = $exponent;
                var$11.$intVal = var$12;
                $sign = jm_BitLevel_bitLength(var$12);
                var$11.$bitLength0 = $sign;
                if ($sign < 64)
                    var$11.$smallValue = jm_BigInteger_longValue(var$12);
                jt_DecimalFormat_formatExponent($this, var$11, $buffer);
                return;
            }
            $mantissa = Long_mul($mantissa, var$10);
            $visibleExponent = jt_DecimalFormat_fastLn10($this, $mantissa);
            $mantissaLength = $visibleExponent + 1 | 0;
        }
    }
    $limit = $this.$minimumIntegerDigits;
    $significantSize = $limit + $this.$maximumFractionDigits | 0;
    $exponentMultiplier = ($this.$maximumIntegerDigits - $limit | 0) + 1 | 0;
    if ($exponentMultiplier <= 1) {
        $requiredSize = $limit - 1 | 0;
        $exponentMultiplier = $exponent - $requiredSize | 0;
        $i = $visibleExponent - $requiredSize | 0;
    } else {
        $delta = $exponent - $rt_imul($exponent / $exponentMultiplier | 0, $exponentMultiplier) | 0;
        $exponentMultiplier = $exponent - $delta | 0;
        $i = $visibleExponent - $delta | 0;
    }
    if ($significantSize < 0)
        $mantissa = Long_ZERO;
    else if ($significantSize < $mantissaLength) {
        $mantissa = jt_DecimalFormat_applyRounding($this, $mantissa, $mantissaLength, $significantSize, $sign);
        $newMantissaLength = jt_DecimalFormat_fastLn10($this, $mantissa) + 1 | 0;
        if ($newMantissaLength > $mantissaLength) {
            $exponentMultiplier = $exponentMultiplier + 1 | 0;
            $i = $i + 1 | 0;
            $mantissaLength = $newMantissaLength;
        }
    }
    var$19 = (!$sign ? $this.$negativePrefix : $this.$positivePrefix).data;
    $exponent = var$19.length;
    $requiredSize = 0;
    while ($requiredSize < $exponent) {
        var$19[$requiredSize].$render($this, $buffer);
        $requiredSize = $requiredSize + 1 | 0;
    }
    $exponentPos = 0;
    if ($i > $exponentPos)
        $exponentPos = $i;
    $i_0 = $mantissaLength - 1 | 0;
    while ($i_0 >= $exponentPos) {
        $mantissaDigitMask = jt_DecimalFormat_POW10_ARRAY.data[$i_0];
        $requiredSize = Long_lo(Long_div($mantissa, $mantissaDigitMask));
        $exponent = ($this.$symbols.$zeroDigit + $requiredSize | 0) & 65535;
        $limit = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $limit, $limit + 1 | 0);
        $buffer.$buffer.data[$limit] = $exponent;
        $mantissa = Long_rem($mantissa, $mantissaDigitMask);
        $i_0 = $i_0 + (-1) | 0;
    }
    $i_0 = $exponentPos - 1 | 0;
    while ($i_0 >= $i) {
        $requiredSize = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $requiredSize, $requiredSize + 1 | 0);
        $buffer.$buffer.data[$requiredSize] = 48;
        $i_0 = $i_0 + (-1) | 0;
    }
    a: {
        $limit_0 = $significantSize - ($mantissaLength - $i | 0) | 0;
        $requiredSize = $limit_0 - ($this.$maximumFractionDigits - $this.$minimumFractionDigits | 0) | 0;
        if ($requiredSize <= 0) {
            if (Long_eq($mantissa, Long_ZERO))
                break a;
            if ($limit_0 <= 0)
                break a;
        }
        $limit = $this.$symbols.$decimalSeparator;
        $exponent = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
        $buffer.$buffer.data[$exponent] = $limit;
        $limit_0 = $i - $limit_0 | 0;
        if (0 > $limit_0)
            $limit_0 = 0;
        $count = 0;
        $i = $i - 1 | 0;
        b: {
            while ($i >= $limit_0) {
                $mantissaDigitMask = jt_DecimalFormat_POW10_ARRAY.data[$i];
                $exponent = Long_lo(Long_div($mantissa, $mantissaDigitMask));
                $limit = ($this.$symbols.$zeroDigit + $exponent | 0) & 65535;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = $limit;
                $mantissa = Long_rem($mantissa, $mantissaDigitMask);
                $count = $count + 1 | 0;
                if (Long_eq($mantissa, Long_ZERO))
                    break b;
                $i = $i + (-1) | 0;
            }
        }
        while (true) {
            $exponent = $count + 1 | 0;
            if ($count >= $requiredSize)
                break a;
            $limit_0 = $buffer.$length0;
            jl_AbstractStringBuilder_insertSpace($buffer, $limit_0, $limit_0 + 1 | 0);
            $buffer.$buffer.data[$limit_0] = 48;
            $count = $exponent;
        }
    }
    var$11 = $this.$symbols.$exponentSeparator;
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, var$11);
    if ($exponentMultiplier < 0) {
        $exponentMultiplier =  -$exponentMultiplier | 0;
        $requiredSize = $this.$symbols.$minusSign;
        $exponent = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
        $buffer.$buffer.data[$exponent] = $requiredSize;
    }
    $exponentLength = $this.$exponentDigits;
    $exponentLength_0 = jt_DecimalFormat_fastLn100($this, $exponentMultiplier) + 1 | 0;
    if ($exponentLength > $exponentLength_0)
        $exponentLength_0 = $exponentLength;
    $i = $exponentLength_0 - 1 | 0;
    while ($i >= 0) {
        $exponentDigit = jt_DecimalFormat_POW10_INT_ARRAY.data[$i];
        $exponent = $exponentMultiplier / $exponentDigit | 0;
        $exponent = ($this.$symbols.$zeroDigit + $exponent | 0) & 65535;
        $requiredSize = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $requiredSize, $requiredSize + 1 | 0);
        $buffer.$buffer.data[$requiredSize] = $exponent;
        $exponentMultiplier = $exponentMultiplier % $exponentDigit | 0;
        $i = $i + (-1) | 0;
    }
    if ($sign) {
        var$19 = $this.$positiveSuffix;
        if (var$19 !== null) {
            var$19 = var$19.data;
            $exponent = var$19.length;
            $sign = 0;
            while ($sign < $exponent) {
                var$19[$sign].$render($this, $buffer);
                $sign = $sign + 1 | 0;
            }
        }
    } else {
        var$19 = $this.$negativeSuffix;
        if (var$19 === null) {
            var$19 = $this.$positiveSuffix;
            if (var$19 === null)
                var$19 = $rt_createArray(jt_DecimalFormat$FormatField, 0);
        }
        var$19 = var$19.data;
        $exponent = var$19.length;
        $sign = 0;
        while ($sign < $exponent) {
            var$19[$sign].$render($this, $buffer);
            $sign = $sign + 1 | 0;
        }
    }
},
jt_DecimalFormat_formatRegular0 = ($this, $mantissa, $exponent, $sign, $buffer) => {
    let $mantissaLength, $fracZeros, $multiplierDigits, $tenMultiplier, var$9, var$10, var$11, $roundingPos, $newMantissaLength, var$14, $intLength, $digitPos, $i, $significantIntDigits, $mantissaDigit, $mantissaDigitMask, $fracZeros_0, $i_0, $significantFracDigits;
    $mantissaLength = jt_DecimalFormat_fastLn10($this, $mantissa) + 1 | 0;
    $fracZeros = $exponent + 1 | 0;
    $exponent = $this.$multiplier;
    if ($exponent != 1) {
        $multiplierDigits = jt_DecimalFormat_fastLn100($this, $exponent);
        $tenMultiplier = jt_DecimalFormat_POW10_INT_ARRAY.data[$multiplierDigits];
        $exponent = $this.$multiplier;
        if ($tenMultiplier == $exponent)
            $fracZeros = $fracZeros + $multiplierDigits | 0;
        else {
            var$9 = Long_fromInt($exponent);
            if (Long_ge($mantissa, Long_div(Long_create(4294967295, 2147483647), var$9))) {
                var$10 = new jm_BigDecimal;
                var$11 = jm_BigInteger_valueOf($mantissa);
                $exponent = $mantissaLength - $fracZeros | 0;
                jm_BigDecimal_$callClinit();
                if (var$11 === null) {
                    $buffer = new jl_NullPointerException;
                    $buffer.$suppressionEnabled = 1;
                    $buffer.$writableStackTrace = 1;
                    $rt_throw($buffer);
                }
                var$10.$scale = $exponent;
                var$10.$intVal = var$11;
                $sign = jm_BitLevel_bitLength(var$11);
                var$10.$bitLength0 = $sign;
                if ($sign < 64)
                    var$10.$smallValue = jm_BigInteger_longValue(var$11);
                jt_DecimalFormat_formatRegular($this, var$10, $buffer);
                return;
            }
            $mantissa = Long_mul($mantissa, var$9);
            $mantissaLength = jt_DecimalFormat_fastLn10($this, $mantissa) + 1 | 0;
        }
    }
    $roundingPos = $fracZeros + $this.$maximumFractionDigits | 0;
    if ($roundingPos < 0)
        $mantissa = Long_ZERO;
    else if ($roundingPos < $mantissaLength) {
        $mantissa = jt_DecimalFormat_applyRounding($this, $mantissa, $mantissaLength, $roundingPos, $sign);
        $newMantissaLength = jt_DecimalFormat_fastLn10($this, $mantissa) + 1 | 0;
        if ($newMantissaLength > $mantissaLength) {
            $fracZeros = $fracZeros + 1 | 0;
            $mantissaLength = $newMantissaLength;
        }
    }
    var$14 = (!$sign ? $this.$negativePrefix : $this.$positivePrefix).data;
    $exponent = var$14.length;
    $multiplierDigits = 0;
    while ($multiplierDigits < $exponent) {
        var$14[$multiplierDigits].$render($this, $buffer);
        $multiplierDigits = $multiplierDigits + 1 | 0;
    }
    $intLength = 0;
    if ($intLength <= $fracZeros)
        $intLength = $fracZeros;
    $tenMultiplier = $this.$minimumIntegerDigits;
    $digitPos = ($intLength <= $tenMultiplier ? $tenMultiplier : $intLength) - 1 | 0;
    $i = $tenMultiplier - 1 | 0;
    while ($i >= $intLength) {
        $multiplierDigits = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $multiplierDigits, $multiplierDigits + 1 | 0);
        $buffer.$buffer.data[$multiplierDigits] = 48;
        if ($this.$groupingUsed) {
            $exponent = $this.$groupingSize;
            if ($exponent > 0 && !($digitPos % $exponent | 0) && $digitPos > 0) {
                $multiplierDigits = $this.$symbols.$groupingSeparator;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = $multiplierDigits;
            }
        }
        $digitPos = $digitPos + (-1) | 0;
        $i = $i + (-1) | 0;
    }
    $significantIntDigits = $mantissaLength >= $intLength ? $intLength : $mantissaLength;
    $mantissaDigit = $mantissaLength - 1 | 0;
    $i = 0;
    while ($i < $significantIntDigits) {
        var$14 = jt_DecimalFormat_POW10_ARRAY.data;
        $exponent = $mantissaDigit + (-1) | 0;
        $mantissaDigitMask = var$14[$mantissaDigit];
        $multiplierDigits = Long_lo(Long_div($mantissa, $mantissaDigitMask));
        if ($multiplierDigits < 0)
            $multiplierDigits =  -$multiplierDigits | 0;
        $tenMultiplier = ($this.$symbols.$zeroDigit + $multiplierDigits | 0) & 65535;
        $multiplierDigits = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $multiplierDigits, $multiplierDigits + 1 | 0);
        $buffer.$buffer.data[$multiplierDigits] = $tenMultiplier;
        $mantissa = Long_rem($mantissa, $mantissaDigitMask);
        if ($this.$groupingUsed) {
            $multiplierDigits = $this.$groupingSize;
            if ($multiplierDigits > 0 && !($digitPos % $multiplierDigits | 0) && $digitPos > 0) {
                $tenMultiplier = $this.$symbols.$groupingSeparator;
                $multiplierDigits = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $multiplierDigits, $multiplierDigits + 1 | 0);
                $buffer.$buffer.data[$multiplierDigits] = $tenMultiplier;
            }
        }
        $digitPos = $digitPos + (-1) | 0;
        $i = $i + 1 | 0;
        $mantissaDigit = $exponent;
    }
    $tenMultiplier = $intLength - $significantIntDigits | 0;
    $i = 0;
    while ($i < $tenMultiplier) {
        $multiplierDigits = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $multiplierDigits, $multiplierDigits + 1 | 0);
        $buffer.$buffer.data[$multiplierDigits] = 48;
        if ($this.$groupingUsed) {
            $exponent = $this.$groupingSize;
            if ($exponent > 0 && !($digitPos % $exponent | 0) && $digitPos > 0) {
                $multiplierDigits = $this.$symbols.$groupingSeparator;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = $multiplierDigits;
            }
        }
        $digitPos = $digitPos + (-1) | 0;
        $i = $i + 1 | 0;
    }
    a: {
        if (Long_eq($mantissa, Long_ZERO)) {
            if ($this.$minimumFractionDigits) {
                $multiplierDigits = $this.$symbols.$decimalSeparator;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = $multiplierDigits;
                $i = 0;
                while ($i < $this.$minimumFractionDigits) {
                    $exponent = $buffer.$length0;
                    jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                    $buffer.$buffer.data[$exponent] = 48;
                    $i = $i + 1 | 0;
                }
            } else if ($this.$decimalSeparatorAlwaysShown) {
                $multiplierDigits = $this.$symbols.$decimalSeparator;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = $multiplierDigits;
            }
        } else {
            $multiplierDigits = $this.$symbols.$decimalSeparator;
            $exponent = $buffer.$length0;
            jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
            $buffer.$buffer.data[$exponent] = $multiplierDigits;
            $fracZeros_0 = $this.$maximumFractionDigits;
            $fracZeros =  -$fracZeros | 0;
            if (0 > $fracZeros)
                $fracZeros = 0;
            if ($fracZeros_0 < $fracZeros)
                $fracZeros = $fracZeros_0;
            $i = 0;
            $i_0 = 0;
            while ($i_0 < $fracZeros) {
                $i = $i + 1 | 0;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = 48;
                $i_0 = $i_0 + 1 | 0;
            }
            $significantFracDigits = $this.$maximumFractionDigits - $i | 0;
            if ($significantFracDigits >= $mantissaDigit)
                $significantFracDigits = $mantissaDigit;
            $i_0 = 0;
            b: {
                while (true) {
                    if ($i_0 >= $significantFracDigits)
                        break b;
                    if (Long_eq($mantissa, Long_ZERO))
                        break;
                    $i = $i + 1 | 0;
                    $mantissaDigitMask = jt_DecimalFormat_POW10_ARRAY.data[$mantissaDigit];
                    $multiplierDigits = Long_lo(Long_div($mantissa, $mantissaDigitMask));
                    if ($multiplierDigits < 0)
                        $multiplierDigits =  -$multiplierDigits | 0;
                    $multiplierDigits = ($this.$symbols.$zeroDigit + $multiplierDigits | 0) & 65535;
                    $exponent = $buffer.$length0;
                    jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                    $buffer.$buffer.data[$exponent] = $multiplierDigits;
                    $mantissa = Long_rem($mantissa, $mantissaDigitMask);
                    $mantissaDigit = $mantissaDigit + (-1) | 0;
                    $i_0 = $i_0 + 1 | 0;
                }
            }
            while (true) {
                if ($i >= $this.$minimumFractionDigits)
                    break a;
                $exponent = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $exponent, $exponent + 1 | 0);
                $buffer.$buffer.data[$exponent] = 48;
                $i = $i + 1 | 0;
            }
        }
    }
    if ($sign) {
        var$14 = $this.$positiveSuffix;
        if (var$14 !== null) {
            var$14 = var$14.data;
            $exponent = var$14.length;
            $sign = 0;
            while ($sign < $exponent) {
                var$14[$sign].$render($this, $buffer);
                $sign = $sign + 1 | 0;
            }
        }
    } else {
        var$14 = $this.$negativeSuffix;
        if (var$14 === null) {
            var$14 = $this.$positiveSuffix;
            if (var$14 === null)
                var$14 = $rt_createArray(jt_DecimalFormat$FormatField, 0);
        }
        var$14 = var$14.data;
        $exponent = var$14.length;
        $sign = 0;
        while ($sign < $exponent) {
            var$14[$sign].$render($this, $buffer);
            $sign = $sign + 1 | 0;
        }
    }
},
jt_DecimalFormat_formatExponent = ($this, $value, $buffer) => {
    let $positive, var$4, var$5, $mantissaLength, $i, $exponent, $requiredSize, $significantSize, $exponentMultiplier, $limit, $i_0, $delta, $parts, $exponentPos, $mantissaDigitMask, $limit_0, $count, var$20, $exponentLength, $exponentLength_0, $exponentDigit;
    $positive = $this.$multiplier;
    if ($positive != 1) {
        var$4 = Long_fromInt($positive);
        jm_BigDecimal_$callClinit();
        $positive = Long_compare(var$4, Long_ZERO);
        if ($positive >= 0 && Long_lt(var$4, Long_fromInt(11)))
            var$5 = jm_BigDecimal_BI_SCALED_BY_ZERO.data[Long_lo(var$4)];
        else {
            var$5 = new jm_BigDecimal;
            var$5.$smallValue = var$4;
            var$5.$scale = 0;
            if ($positive < 0)
                var$4 = Long_xor(var$4, Long_fromInt(-1));
            var$5.$bitLength0 = 64 - jl_Long_numberOfLeadingZeros(var$4) | 0;
        }
        $value = jm_BigDecimal_multiply($value, var$5);
    }
    jm_BigDecimal_$callClinit();
    $positive = jm_BigDecimal_compareTo($value, jm_BigDecimal_ZERO) < 0 ? 0 : 1;
    $mantissaLength = jm_BigDecimal_precision($value);
    $i = $mantissaLength - 1 | 0;
    $exponent = $i - $value.$scale | 0;
    if ($value.$intVal === null)
        $value.$intVal = jm_BigInteger_valueOf($value.$smallValue);
    var$5 = $value.$intVal;
    $requiredSize = $this.$minimumIntegerDigits;
    $significantSize = $requiredSize + $this.$maximumFractionDigits | 0;
    $exponentMultiplier = ($this.$maximumIntegerDigits - $requiredSize | 0) + 1 | 0;
    if ($exponentMultiplier <= 1) {
        $limit = $requiredSize - 1 | 0;
        $exponent = $exponent - $limit | 0;
        $i_0 = $i - $limit | 0;
    } else {
        $delta = $exponent - $rt_imul($exponent / $exponentMultiplier | 0, $exponentMultiplier) | 0;
        $exponent = $exponent - $delta | 0;
        $i_0 = $i - $delta | 0;
    }
    if ($significantSize < 0)
        var$5 = jm_BigInteger_ZERO;
    else if ($significantSize < $mantissaLength)
        var$5 = jt_DecimalFormat_applyRounding0($this, var$5, $mantissaLength, $significantSize);
    $parts = (!$positive ? $this.$negativePrefix : $this.$positivePrefix).data;
    $limit = $parts.length;
    $requiredSize = 0;
    while ($requiredSize < $limit) {
        $parts[$requiredSize].$render($this, $buffer);
        $requiredSize = $requiredSize + 1 | 0;
    }
    $exponentPos = 0;
    if ($i_0 > $exponentPos)
        $exponentPos = $i_0;
    $mantissaDigitMask = jm_BigInteger_ONE;
    $value = jm_BigInteger_TEN;
    $requiredSize = $i;
    while ($requiredSize) {
        if ($requiredSize & 1) {
            if (!$value.$sign1)
                $mantissaDigitMask = jm_BigInteger_ZERO;
            else if (!$mantissaDigitMask.$sign1)
                $mantissaDigitMask = jm_BigInteger_ZERO;
            else {
                jm_Multiplication_$callClinit();
                $mantissaDigitMask = jm_Multiplication_karatsuba($mantissaDigitMask, $value);
            }
        }
        $limit = $value.$sign1;
        if (!$limit)
            $value = jm_BigInteger_ZERO;
        else if (!$limit)
            $value = jm_BigInteger_ZERO;
        else {
            jm_Multiplication_$callClinit();
            $value = jm_Multiplication_karatsuba($value, $value);
        }
        $requiredSize = $requiredSize >>> 1 | 0;
    }
    while ($i >= $exponentPos) {
        $parts = (jm_BigInteger_divideAndRemainder(var$5, $mantissaDigitMask)).data;
        $value = $parts[0];
        $requiredSize = $rt_imul($value.$sign1, $value.$digits.data[0]);
        if ($requiredSize < 0)
            $requiredSize =  -$requiredSize | 0;
        $requiredSize = ($this.$symbols.$zeroDigit + $requiredSize | 0) & 65535;
        $limit = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $limit, $limit + 1 | 0);
        $buffer.$buffer.data[$limit] = $requiredSize;
        var$5 = $parts[1];
        $mantissaDigitMask = jm_BigInteger_divide($mantissaDigitMask, jm_BigInteger_TEN);
        $i = $i + (-1) | 0;
    }
    $i = $exponentPos - 1 | 0;
    while ($i >= $i_0) {
        $limit_0 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $limit_0, $limit_0 + 1 | 0);
        $buffer.$buffer.data[$limit_0] = 48;
        $i = $i + (-1) | 0;
    }
    a: {
        $mantissaLength = $significantSize - ($mantissaLength - $i_0 | 0) | 0;
        $requiredSize = $mantissaLength - ($this.$maximumFractionDigits - $this.$minimumFractionDigits | 0) | 0;
        if ($requiredSize <= 0) {
            if (jm_BigInteger_equals(var$5, jm_BigInteger_ZERO))
                break a;
            if ($mantissaLength <= 0)
                break a;
        }
        $limit_0 = $this.$symbols.$decimalSeparator;
        $significantSize = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $significantSize, $significantSize + 1 | 0);
        $buffer.$buffer.data[$significantSize] = $limit_0;
        $limit_0 = $i_0 - $mantissaLength | 0;
        if (0 > $limit_0)
            $limit_0 = 0;
        $count = 0;
        $i_0 = $i_0 - 1 | 0;
        b: {
            while ($i_0 >= $limit_0) {
                var$20 = (jm_BigInteger_divideAndRemainder(var$5, $mantissaDigitMask)).data;
                $value = var$20[0];
                $mantissaLength = $rt_imul($value.$sign1, $value.$digits.data[0]);
                if ($mantissaLength < 0)
                    $mantissaLength =  -$mantissaLength | 0;
                $significantSize = ($this.$symbols.$zeroDigit + $mantissaLength | 0) & 65535;
                $mantissaLength = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $mantissaLength, $mantissaLength + 1 | 0);
                $buffer.$buffer.data[$mantissaLength] = $significantSize;
                var$5 = var$20[1];
                $count = $count + 1 | 0;
                if (jm_BigInteger_equals(var$5, jm_BigInteger_ZERO))
                    break b;
                $mantissaDigitMask = jm_BigInteger_divide($mantissaDigitMask, jm_BigInteger_TEN);
                $i_0 = $i_0 + (-1) | 0;
            }
        }
        while (true) {
            $mantissaLength = $count + 1 | 0;
            if ($count >= $requiredSize)
                break a;
            $limit_0 = $buffer.$length0;
            jl_AbstractStringBuilder_insertSpace($buffer, $limit_0, $limit_0 + 1 | 0);
            $buffer.$buffer.data[$limit_0] = 48;
            $count = $mantissaLength;
        }
    }
    $value = $this.$symbols.$exponentSeparator;
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $value);
    if ($exponent < 0) {
        $exponent =  -$exponent | 0;
        $significantSize = $this.$symbols.$minusSign;
        $mantissaLength = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $mantissaLength, $mantissaLength + 1 | 0);
        $buffer.$buffer.data[$mantissaLength] = $significantSize;
    }
    $exponentLength = $this.$exponentDigits;
    $exponentLength_0 = jt_DecimalFormat_fastLn100($this, $exponent) + 1 | 0;
    if ($exponentLength > $exponentLength_0)
        $exponentLength_0 = $exponentLength;
    $i_0 = $exponentLength_0 - 1 | 0;
    while ($i_0 >= 0) {
        $exponentDigit = jt_DecimalFormat_POW10_INT_ARRAY.data[$i_0];
        $limit = $exponent / $exponentDigit | 0;
        $significantSize = ($this.$symbols.$zeroDigit + $limit | 0) & 65535;
        $mantissaLength = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $mantissaLength, $mantissaLength + 1 | 0);
        $buffer.$buffer.data[$mantissaLength] = $significantSize;
        $exponent = $exponent % $exponentDigit | 0;
        $i_0 = $i_0 + (-1) | 0;
    }
    if ($positive) {
        $parts = $this.$positiveSuffix;
        if ($parts !== null) {
            $parts = $parts.data;
            $limit = $parts.length;
            $positive = 0;
            while ($positive < $limit) {
                $parts[$positive].$render($this, $buffer);
                $positive = $positive + 1 | 0;
            }
        }
    } else {
        $parts = $this.$negativeSuffix;
        if ($parts === null) {
            $parts = $this.$positiveSuffix;
            if ($parts === null)
                $parts = $rt_createArray(jt_DecimalFormat$FormatField, 0);
        }
        $parts = $parts.data;
        $limit = $parts.length;
        $positive = 0;
        while ($positive < $limit) {
            $parts[$positive].$render($this, $buffer);
            $positive = $positive + 1 | 0;
        }
    }
},
jt_DecimalFormat_formatRegular = ($this, $value, $buffer) => {
    let $positive, var$4, var$5, $significantFracDigits, $exponent, $roundingPos, $parts, $i, $intLength, $digitPos, $i_0, $significantIntDigits, $mantissaDigitMask, $fracZeros, $fracZeros_0, $i_1, $significantFracDigits_0, var$20;
    $positive = $this.$multiplier;
    if ($positive != 1) {
        var$4 = Long_fromInt($positive);
        jm_BigDecimal_$callClinit();
        $positive = Long_compare(var$4, Long_ZERO);
        if ($positive >= 0 && Long_lt(var$4, Long_fromInt(11)))
            var$5 = jm_BigDecimal_BI_SCALED_BY_ZERO.data[Long_lo(var$4)];
        else {
            var$5 = new jm_BigDecimal;
            var$5.$smallValue = var$4;
            var$5.$scale = 0;
            if ($positive < 0)
                var$4 = Long_xor(var$4, Long_fromInt(-1));
            var$5.$bitLength0 = 64 - jl_Long_numberOfLeadingZeros(var$4) | 0;
        }
        $value = jm_BigDecimal_multiply($value, var$5);
    }
    if ($value.$intVal === null)
        $value.$intVal = jm_BigInteger_valueOf($value.$smallValue);
    var$5 = $value.$intVal;
    $positive = jm_BigInteger_compareTo(var$5, jm_BigInteger_ZERO) < 0 ? 0 : 1;
    $significantFracDigits = jm_BigDecimal_precision($value);
    $exponent = jm_BigDecimal_precision($value) - $value.$scale | 0;
    $roundingPos = $exponent + $this.$maximumFractionDigits | 0;
    if ($roundingPos < 0)
        var$5 = jm_BigInteger_ZERO;
    else if ($roundingPos < $significantFracDigits)
        var$5 = jt_DecimalFormat_applyRounding0($this, var$5, $significantFracDigits, $roundingPos);
    $parts = (!$positive ? $this.$negativePrefix : $this.$positivePrefix).data;
    $roundingPos = $parts.length;
    $i = 0;
    while ($i < $roundingPos) {
        $parts[$i].$render($this, $buffer);
        $i = $i + 1 | 0;
    }
    $intLength = 0;
    if ($intLength <= $exponent)
        $intLength = $exponent;
    $i = $this.$minimumIntegerDigits;
    $digitPos = ($intLength <= $i ? $i : $intLength) - 1 | 0;
    $i_0 = $i - 1 | 0;
    while ($i_0 >= $intLength) {
        $i = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $i, $i + 1 | 0);
        $buffer.$buffer.data[$i] = 48;
        if ($this.$groupingUsed) {
            $roundingPos = $this.$groupingSize;
            if ($roundingPos > 0 && !($digitPos % $roundingPos | 0) && $digitPos > 0) {
                $i = $this.$symbols.$groupingSeparator;
                $roundingPos = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
                $buffer.$buffer.data[$roundingPos] = $i;
            }
        }
        $digitPos = $digitPos + (-1) | 0;
        $i_0 = $i_0 + (-1) | 0;
    }
    $significantIntDigits = $significantFracDigits >= $intLength ? $intLength : $significantFracDigits;
    $mantissaDigitMask = jm_BigInteger_ONE;
    $i = $significantFracDigits - 1 | 0;
    $value = jm_BigInteger_TEN;
    while ($i) {
        if ($i & 1) {
            if (!$value.$sign1)
                $mantissaDigitMask = jm_BigInteger_ZERO;
            else if (!$mantissaDigitMask.$sign1)
                $mantissaDigitMask = jm_BigInteger_ZERO;
            else {
                jm_Multiplication_$callClinit();
                $mantissaDigitMask = jm_Multiplication_karatsuba($mantissaDigitMask, $value);
            }
        }
        $roundingPos = $value.$sign1;
        if (!$roundingPos)
            $value = jm_BigInteger_ZERO;
        else if (!$roundingPos)
            $value = jm_BigInteger_ZERO;
        else {
            jm_Multiplication_$callClinit();
            $value = jm_Multiplication_karatsuba($value, $value);
        }
        $i = $i >>> 1 | 0;
    }
    $i_0 = 0;
    while ($i_0 < $significantIntDigits) {
        $parts = (jm_BigInteger_divideAndRemainder(var$5, $mantissaDigitMask)).data;
        $value = $parts[0];
        $i = $rt_imul($value.$sign1, $value.$digits.data[0]);
        if ($i < 0)
            $i =  -$i | 0;
        $i = ($this.$symbols.$zeroDigit + $i | 0) & 65535;
        $roundingPos = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
        $buffer.$buffer.data[$roundingPos] = $i;
        var$5 = $parts[1];
        if ($this.$groupingUsed) {
            $roundingPos = $this.$groupingSize;
            if ($roundingPos > 0 && !($digitPos % $roundingPos | 0) && $digitPos > 0) {
                $i = $this.$symbols.$groupingSeparator;
                $roundingPos = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
                $buffer.$buffer.data[$roundingPos] = $i;
            }
        }
        $digitPos = $digitPos + (-1) | 0;
        $significantFracDigits = $significantFracDigits + (-1) | 0;
        $mantissaDigitMask = jm_BigInteger_divide($mantissaDigitMask, jm_BigInteger_TEN);
        $i_0 = $i_0 + 1 | 0;
    }
    $significantIntDigits = $intLength - $significantIntDigits | 0;
    $i_0 = 0;
    while ($i_0 < $significantIntDigits) {
        $roundingPos = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
        $buffer.$buffer.data[$roundingPos] = 48;
        if ($this.$groupingUsed) {
            $roundingPos = $this.$groupingSize;
            if ($roundingPos > 0 && !($digitPos % $roundingPos | 0) && $digitPos > 0) {
                $i = $this.$symbols.$groupingSeparator;
                $roundingPos = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
                $buffer.$buffer.data[$roundingPos] = $i;
            }
        }
        $digitPos = $digitPos + (-1) | 0;
        $i_0 = $i_0 + 1 | 0;
    }
    a: {
        if (jm_BigInteger_equals(var$5, jm_BigInteger_ZERO)) {
            if ($this.$minimumFractionDigits) {
                $i = $this.$symbols.$decimalSeparator;
                $roundingPos = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
                $buffer.$buffer.data[$roundingPos] = $i;
                $i = 0;
                while ($i < $this.$minimumFractionDigits) {
                    $fracZeros = $buffer.$length0;
                    jl_AbstractStringBuilder_insertSpace($buffer, $fracZeros, $fracZeros + 1 | 0);
                    $buffer.$buffer.data[$fracZeros] = 48;
                    $i = $i + 1 | 0;
                }
            } else if ($this.$decimalSeparatorAlwaysShown) {
                $significantFracDigits = $this.$symbols.$decimalSeparator;
                $i = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $i, $i + 1 | 0);
                $buffer.$buffer.data[$i] = $significantFracDigits;
            }
        } else {
            $i = $this.$symbols.$decimalSeparator;
            $roundingPos = $buffer.$length0;
            jl_AbstractStringBuilder_insertSpace($buffer, $roundingPos, $roundingPos + 1 | 0);
            $buffer.$buffer.data[$roundingPos] = $i;
            $fracZeros = $this.$maximumFractionDigits;
            $fracZeros_0 =  -$exponent | 0;
            if (0 > $fracZeros_0)
                $fracZeros_0 = 0;
            if ($fracZeros < $fracZeros_0)
                $fracZeros_0 = $fracZeros;
            $i_0 = 0;
            $i_1 = 0;
            while ($i_1 < $fracZeros_0) {
                $i_0 = $i_0 + 1 | 0;
                $i = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $i, $i + 1 | 0);
                $buffer.$buffer.data[$i] = 48;
                $i_1 = $i_1 + 1 | 0;
            }
            $significantFracDigits_0 = $this.$maximumFractionDigits - $i_0 | 0;
            if ($significantFracDigits_0 < $significantFracDigits)
                $significantFracDigits = $significantFracDigits_0;
            $i = 0;
            b: {
                while (true) {
                    if ($i >= $significantFracDigits)
                        break b;
                    if (jm_BigInteger_equals(var$5, jm_BigInteger_ZERO))
                        break;
                    $i_0 = $i_0 + 1 | 0;
                    var$20 = (jm_BigInteger_divideAndRemainder(var$5, $mantissaDigitMask)).data;
                    $value = var$20[0];
                    $fracZeros = $rt_imul($value.$sign1, $value.$digits.data[0]);
                    if ($fracZeros < 0)
                        $fracZeros =  -$fracZeros | 0;
                    $significantIntDigits = ($this.$symbols.$zeroDigit + $fracZeros | 0) & 65535;
                    $fracZeros = $buffer.$length0;
                    jl_AbstractStringBuilder_insertSpace($buffer, $fracZeros, $fracZeros + 1 | 0);
                    $buffer.$buffer.data[$fracZeros] = $significantIntDigits;
                    var$5 = var$20[1];
                    $mantissaDigitMask = jm_BigInteger_divide($mantissaDigitMask, jm_BigInteger_TEN);
                    $i = $i + 1 | 0;
                }
            }
            while (true) {
                if ($i_0 >= $this.$minimumFractionDigits)
                    break a;
                $significantFracDigits = $buffer.$length0;
                jl_AbstractStringBuilder_insertSpace($buffer, $significantFracDigits, $significantFracDigits + 1 | 0);
                $buffer.$buffer.data[$significantFracDigits] = 48;
                $i_0 = $i_0 + 1 | 0;
            }
        }
    }
    if ($positive) {
        $parts = $this.$positiveSuffix;
        if ($parts !== null) {
            $parts = $parts.data;
            $roundingPos = $parts.length;
            $positive = 0;
            while ($positive < $roundingPos) {
                $parts[$positive].$render($this, $buffer);
                $positive = $positive + 1 | 0;
            }
        }
    } else {
        $parts = $this.$negativeSuffix;
        if ($parts === null) {
            $parts = $this.$positiveSuffix;
            if ($parts === null)
                $parts = $rt_createArray(jt_DecimalFormat$FormatField, 0);
        }
        $parts = $parts.data;
        $roundingPos = $parts.length;
        $positive = 0;
        while ($positive < $roundingPos) {
            $parts[$positive].$render($this, $buffer);
            $positive = $positive + 1 | 0;
        }
    }
},
jt_DecimalFormat_applyRounding = ($this, $mantissa, $mantissaLength, $exponent, $sign) => {
    let $rounding, var$6, var$7, var$8;
    a: {
        $rounding = jt_DecimalFormat_POW10_ARRAY.data[$mantissaLength - $exponent | 0];
        jt_DecimalFormat$1_$callClinit();
        switch (jt_DecimalFormat$1_$SwitchMap$java$math$RoundingMode.data[$this.$roundingMode.$ordinal]) {
            case 1:
                $mantissa = Long_mul(Long_div($mantissa, $rounding), $rounding);
                if (!$sign)
                    break a;
                $mantissa = Long_add($mantissa, $rounding);
                break a;
            case 2:
                $mantissa = Long_mul(Long_div($mantissa, $rounding), $rounding);
                if ($sign)
                    break a;
                $mantissa = Long_add($mantissa, $rounding);
                break a;
            case 3:
                $mantissa = Long_add(Long_mul(Long_div($mantissa, $rounding), $rounding), $rounding);
                break a;
            case 4:
                $mantissa = Long_mul(Long_div($mantissa, $rounding), $rounding);
                break a;
            case 5:
                if (Long_eq(Long_rem($mantissa, $rounding), Long_ZERO))
                    break a;
                var$6 = new jl_ArithmeticException;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                var$6.$message = $rt_s(1474);
                $rt_throw(var$6);
            case 6:
                var$7 = Long_rem($mantissa, $rounding);
                var$8 = Long_div($rounding, Long_fromInt(2));
                if (Long_eq(var$7, var$8)) {
                    $mantissa = Long_mul(Long_div($mantissa, $rounding), $rounding);
                    break a;
                }
                $mantissa = Long_mul(Long_div(Long_add($mantissa, var$8), $rounding), $rounding);
                break a;
            case 7:
                var$8 = Long_rem($mantissa, $rounding);
                var$7 = Long_div($rounding, Long_fromInt(2));
                if (Long_ne(var$8, var$7)) {
                    $mantissa = Long_mul(Long_div(Long_add($mantissa, var$7), $rounding), $rounding);
                    break a;
                }
                $mantissa = Long_add(Long_mul(Long_div($mantissa, $rounding), $rounding), $rounding);
                break a;
            case 8:
                var$8 = Long_rem($mantissa, $rounding);
                var$7 = Long_div($rounding, Long_fromInt(2));
                if (Long_ne(var$8, var$7)) {
                    $mantissa = Long_mul(Long_div(Long_add($mantissa, var$7), $rounding), $rounding);
                    break a;
                }
                $mantissa = Long_mul(Long_div($mantissa, $rounding), $rounding);
                if (Long_eq(Long_rem(Long_div($mantissa, $rounding), Long_fromInt(2)), Long_ZERO))
                    break a;
                $mantissa = Long_add($mantissa, $rounding);
                break a;
            default:
        }
    }
    return $mantissa;
},
jt_DecimalFormat_applyRounding0 = ($this, $mantissa, $mantissaLength, $exponent) => {
    let $rounding, $signedRounding, var$6;
    $rounding = jm_BigInteger_ONE;
    $mantissaLength = $mantissaLength - $exponent | 0;
    $signedRounding = jm_BigInteger_TEN;
    while ($mantissaLength) {
        if ($mantissaLength & 1) {
            if (!$signedRounding.$sign1)
                $rounding = jm_BigInteger_ZERO;
            else if (!$rounding.$sign1)
                $rounding = jm_BigInteger_ZERO;
            else {
                jm_Multiplication_$callClinit();
                $rounding = jm_Multiplication_karatsuba($rounding, $signedRounding);
            }
        }
        $exponent = $signedRounding.$sign1;
        if (!$exponent)
            $signedRounding = jm_BigInteger_ZERO;
        else if (!$exponent)
            $signedRounding = jm_BigInteger_ZERO;
        else {
            jm_Multiplication_$callClinit();
            $signedRounding = jm_Multiplication_karatsuba($signedRounding, $signedRounding);
        }
        $mantissaLength = $mantissaLength >>> 1 | 0;
    }
    if (jm_BigInteger_compareTo($mantissa, jm_BigInteger_ZERO) >= 0)
        $signedRounding = $rounding;
    else {
        $mantissaLength = $rounding.$sign1;
        if (!$mantissaLength)
            $signedRounding = $rounding;
        else {
            $signedRounding = new jm_BigInteger;
            $mantissaLength =  -$mantissaLength | 0;
            $exponent = $rounding.$numberLength;
            var$6 = $rounding.$digits;
            $signedRounding.$firstNonzeroDigit = (-2);
            $signedRounding.$sign1 = $mantissaLength;
            $signedRounding.$numberLength = $exponent;
            $signedRounding.$digits = var$6;
        }
    }
    a: {
        jt_DecimalFormat$1_$callClinit();
        switch (jt_DecimalFormat$1_$SwitchMap$java$math$RoundingMode.data[$this.$roundingMode.$ordinal]) {
            case 1:
                $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                if (jm_BigInteger_compareTo($mantissa, jm_BigInteger_ZERO) < 0)
                    break a;
                $mantissa = jm_Elementary_add($mantissa, $rounding);
                break a;
            case 2:
                $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                if (jm_BigInteger_compareTo($mantissa, jm_BigInteger_ZERO) > 0)
                    break a;
                $mantissa = jm_Elementary_subtract($mantissa, $rounding);
                break a;
            case 3:
                $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                $mantissa = jm_Elementary_add($mantissa, $signedRounding);
                break a;
            case 4:
                $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                break a;
            case 5:
                if (!jm_BigInteger_equals(jm_BigInteger_remainder($mantissa, $rounding), jm_BigInteger_ZERO))
                    break a;
                $mantissa = new jl_ArithmeticException;
                $mantissa.$suppressionEnabled = 1;
                $mantissa.$writableStackTrace = 1;
                $mantissa.$message = $rt_s(1474);
                $rt_throw($mantissa);
            case 6:
                if (jm_BigInteger_equals(jm_BigInteger_remainder($mantissa, $rounding), jm_BigInteger_divide($signedRounding, jm_BigInteger_valueOf(Long_fromInt(2))))) {
                    $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                    if (!$rounding.$sign1)
                        $mantissa = jm_BigInteger_ZERO;
                    else if (!$mantissa.$sign1)
                        $mantissa = jm_BigInteger_ZERO;
                    else {
                        jm_Multiplication_$callClinit();
                        $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                    }
                    break a;
                }
                $mantissa = jm_BigInteger_divide(jm_Elementary_add($mantissa, jm_BigInteger_divide($signedRounding, jm_BigInteger_valueOf(Long_fromInt(2)))), $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                break a;
            case 7:
                if (!jm_BigInteger_equals(jm_BigInteger_remainder($mantissa, $rounding), jm_BigInteger_divide($signedRounding, jm_BigInteger_valueOf(Long_fromInt(2))))) {
                    $mantissa = jm_BigInteger_divide(jm_Elementary_add($mantissa, jm_BigInteger_divide($signedRounding, jm_BigInteger_valueOf(Long_fromInt(2)))), $rounding);
                    if (!$rounding.$sign1)
                        $mantissa = jm_BigInteger_ZERO;
                    else if (!$mantissa.$sign1)
                        $mantissa = jm_BigInteger_ZERO;
                    else {
                        jm_Multiplication_$callClinit();
                        $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                    }
                    break a;
                }
                $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                $mantissa = jm_Elementary_add($mantissa, $signedRounding);
                break a;
            case 8:
                if (!jm_BigInteger_equals(jm_BigInteger_remainder($mantissa, $rounding), jm_BigInteger_divide($signedRounding, jm_BigInteger_valueOf(Long_fromInt(2))))) {
                    $mantissa = jm_BigInteger_divide(jm_Elementary_add($mantissa, jm_BigInteger_divide($signedRounding, jm_BigInteger_valueOf(Long_fromInt(2)))), $rounding);
                    if (!$rounding.$sign1)
                        $mantissa = jm_BigInteger_ZERO;
                    else if (!$mantissa.$sign1)
                        $mantissa = jm_BigInteger_ZERO;
                    else {
                        jm_Multiplication_$callClinit();
                        $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                    }
                    break a;
                }
                $mantissa = jm_BigInteger_divide($mantissa, $rounding);
                if (!$rounding.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else if (!$mantissa.$sign1)
                    $mantissa = jm_BigInteger_ZERO;
                else {
                    jm_Multiplication_$callClinit();
                    $mantissa = jm_Multiplication_karatsuba($mantissa, $rounding);
                }
                if (jm_BigInteger_equals(jm_BigInteger_remainder(jm_BigInteger_divide($mantissa, $rounding), jm_BigInteger_valueOf(Long_fromInt(2))), jm_BigInteger_ZERO))
                    break a;
                $mantissa = jm_Elementary_add($mantissa, $signedRounding);
                break a;
            default:
        }
    }
    return $mantissa;
},
jt_DecimalFormat_fastLn10 = ($this, $value) => {
    let $result;
    if (Long_eq($value, Long_create(0, 2147483648)))
        return 18;
    $result = 0;
    if (Long_ge($value, Long_create(1874919424, 2328306))) {
        $result = 16;
        $value = Long_div($value, Long_create(1874919424, 2328306));
    }
    if (Long_ge($value, Long_fromInt(100000000))) {
        $result = $result + 8 | 0;
        $value = Long_div($value, Long_fromInt(100000000));
    }
    if (Long_ge($value, Long_fromInt(10000))) {
        $result = $result + 4 | 0;
        $value = Long_div($value, Long_fromInt(10000));
    }
    if (Long_ge($value, Long_fromInt(100))) {
        $result = $result + 2 | 0;
        $value = Long_div($value, Long_fromInt(100));
    }
    if (Long_ge($value, Long_fromInt(10)))
        $result = $result + 1 | 0;
    return $result;
},
jt_DecimalFormat_fastLn100 = ($this, $value) => {
    let $result;
    $result = 0;
    if ($value >= 100000000) {
        $result = 8;
        $value = $value / 100000000 | 0;
    }
    if ($value >= 10000) {
        $result = $result + 4 | 0;
        $value = $value / 10000 | 0;
    }
    if ($value >= 100) {
        $result = $result + 2 | 0;
        $value = $value / 100 | 0;
    }
    if ($value >= 10)
        $result = $result + 1 | 0;
    return $result;
},
jt_DecimalFormat__clinit_ = () => {
    jt_DecimalFormat_POW10_ARRAY = $rt_createLongArrayFromData([Long_fromInt(1), Long_fromInt(10), Long_fromInt(100), Long_fromInt(1000), Long_fromInt(10000), Long_fromInt(100000), Long_fromInt(1000000), Long_fromInt(10000000), Long_fromInt(100000000), Long_fromInt(1000000000), Long_create(1410065408, 2), Long_create(1215752192, 23), Long_create(3567587328, 232), Long_create(1316134912, 2328), Long_create(276447232, 23283), Long_create(2764472320, 232830), Long_create(1874919424, 2328306), Long_create(1569325056, 23283064),
    Long_create(2808348672, 232830643)]);
    jt_DecimalFormat_POW10_INT_ARRAY = $rt_createIntArrayFromData([1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]);
},
nms_Icon = $rt_classWithoutFields(0);
function nms_NBTTagByte() {
    nms_NBTBase.call(this);
    this.$data0 = 0;
}
let nms_NBTTagByte_write = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$data0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_NBTTagByte_load = ($this, $par1DataInput, $par2) => {
    $par2 = $par1DataInput.$in.$read();
    if ($par2 >= 0) {
        $this.$data0 = $par2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_NBTTagByte_getId = $this => {
    return 1;
},
nms_NBTTagByte_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data0;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$1 = var$1 << 24 >> 24;
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagByte_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagByte;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data0;
    var$1.$name = var$2;
    var$1.$data0 = var$3;
    return var$1;
},
nms_NBTTagByte_equals = ($this, $par1Obj) => {
    let $var2;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    return $this.$data0 != $var2.$data0 ? 0 : 1;
},
nms_NBTTagByte_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1 ^ 1 ^ $this.$data0;
};
function nms_NBTTagShort() {
    nms_NBTBase.call(this);
    this.$data2 = 0;
}
let nms_NBTTagShort_write = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$data2);
},
nms_NBTTagShort_load = ($this, $par1DataInput, $par2) => {
    $this.$data2 = ji_DataInputStream_readShort($par1DataInput);
},
nms_NBTTagShort_getId = $this => {
    return 2;
},
nms_NBTTagShort_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data2;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$1 = var$1 << 16 >> 16;
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagShort_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagShort;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data2;
    var$1.$name = var$2;
    var$1.$data2 = var$3;
    return var$1;
},
nms_NBTTagShort_equals = ($this, $par1Obj) => {
    let $var2;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    return $this.$data2 != $var2.$data2 ? 0 : 1;
},
nms_NBTTagShort_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1 ^ 2 ^ $this.$data2;
};
function nms_NBTTagInt() {
    nms_NBTBase.call(this);
    this.$data = 0;
}
let nms_NBTTagInt_write = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$data);
},
nms_NBTTagInt_load = ($this, $par1DataInput, $par2) => {
    $this.$data = ji_DataInputStream_readInt($par1DataInput);
},
nms_NBTTagInt_getId = $this => {
    return 3;
},
nms_NBTTagInt_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagInt_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagInt;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data;
    var$1.$name = var$2;
    var$1.$data = var$3;
    return var$1;
},
nms_NBTTagInt_equals = ($this, $par1Obj) => {
    let $var2;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    return $this.$data != $var2.$data ? 0 : 1;
},
nms_NBTTagInt_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1 ^ 3 ^ $this.$data;
};
function nms_NBTTagLong() {
    nms_NBTBase.call(this);
    this.$data6 = Long_ZERO;
}
let nms_NBTTagLong_write = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeLong($par1DataOutput, $this.$data6);
},
nms_NBTTagLong_load = ($this, $par1DataInput, $par2) => {
    $this.$data6 = ji_DataInputStream_readLong($par1DataInput);
},
nms_NBTTagLong_getId = $this => {
    return 4;
},
nms_NBTTagLong_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data6;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert4(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagLong_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagLong;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data6;
    var$1.$name = var$2;
    var$1.$data6 = var$3;
    return var$1;
},
nms_NBTTagLong_equals = ($this, $par1Obj) => {
    let $var2;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    return Long_ne($this.$data6, $var2.$data6) ? 0 : 1;
},
nms_NBTTagLong_hashCode = $this => {
    let var$1, var$2, var$3;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$2 = var$1.$hashCode1 ^ 4;
    var$3 = $this.$data6;
    return var$2 ^ Long_lo(Long_xor(var$3, Long_shru(var$3, 32)));
};
function nms_NBTTagFloat() {
    nms_NBTBase.call(this);
    this.$data5 = 0.0;
}
let nms_NBTTagFloat_write = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$data5;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$2) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$2));
},
nms_NBTTagFloat_load = ($this, $par1DataInput, $par2) => {
    $this.$data5 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
},
nms_NBTTagFloat_getId = $this => {
    return 5;
},
nms_NBTTagFloat_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data5;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert5(var$2, var$2.$length0, var$1);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagFloat_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagFloat;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data5;
    var$1.$name = var$2;
    var$1.$data5 = var$3;
    return var$1;
},
nms_NBTTagFloat_equals = ($this, $par1Obj) => {
    let $var2;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    return $this.$data5 !== $var2.$data5 ? 0 : 1;
},
nms_NBTTagFloat_hashCode = $this => {
    let var$1, var$2, var$3;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$2 = var$1.$hashCode1 ^ 5;
    var$3 = $this.$data5;
    return var$2 ^ ((isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
};
function nms_NBTTagDouble() {
    nms_NBTBase.call(this);
    this.$data7 = 0.0;
}
let nms_NBTTagDouble_write = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$data7;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
},
nms_NBTTagDouble_load = ($this, $par1DataInput, $par2) => {
    $this.$data7 = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
},
nms_NBTTagDouble_getId = $this => {
    return 6;
},
nms_NBTTagDouble_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data7;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert2(var$2, var$2.$length0, var$1);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagDouble_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagDouble;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data7;
    var$1.$name = var$2;
    var$1.$data7 = var$3;
    return var$1;
},
nms_NBTTagDouble_equals = ($this, $par1Obj) => {
    let $var2;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    $var2 = $par1Obj;
    return $this.$data7 !== $var2.$data7 ? 0 : 1;
},
nms_NBTTagDouble_hashCode = $this => {
    let var$1, $var1, var$3, var$4;
    var$1 = $this.$data7;
    $var1 = !(isNaN(var$1) ? 1 : 0) ? $rt_doubleToRawLongBits(var$1) : Long_create(0, 2146959360);
    a: {
        var$3 = $this.$name;
        if (!var$3.$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= var$3.$nativeString.length)
                    break a;
                var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    return var$3.$hashCode1 ^ 6 ^ Long_lo(Long_xor($var1, Long_shru($var1, 32)));
};
function nms_NBTTagByteArray() {
    nms_NBTBase.call(this);
    this.$byteArray = null;
}
let nms_NBTTagByteArray_write = ($this, $par1DataOutput) => {
    let var$2, var$3;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$byteArray.data.length);
    var$2 = $this.$byteArray;
    var$3 = var$2.data.length;
    $par1DataOutput.$out0.$write1(var$2, 0, var$3);
    $par1DataOutput.$written = $par1DataOutput.$written + var$3 | 0;
},
nms_NBTTagByteArray_load = ($this, $par1DataInput, $par2) => {
    let var$3, var$4;
    var$3 = $rt_createByteArray(ji_DataInputStream_readInt($par1DataInput));
    var$4 = var$3.data;
    $this.$byteArray = var$3;
    ji_DataInputStream_readFully($par1DataInput, var$3, 0, var$4.length);
},
nms_NBTTagByteArray_getId = $this => {
    return 7;
},
nms_NBTTagByteArray_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$byteArray.data.length;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$2.$buffer.data[var$3] = 91;
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1475));
    var$4 = new jl_String;
    var$5 = var$2.$buffer;
    var$6 = var$5.data;
    var$7 = var$2.$length0;
    var$3 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$3 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$4;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagByteArray_copy = $this => {
    let var$1, var$2, $var1, var$4, var$5;
    var$1 = $this.$byteArray;
    var$2 = var$1.data.length;
    $var1 = $rt_createByteArray(var$2);
    jl_System_fastArraycopy(var$1, 0, $var1, 0, var$2);
    var$4 = new nms_NBTTagByteArray;
    var$5 = $this.$name;
    if (var$5 === null)
        var$5 = $rt_s(3);
    var$4.$name = var$5;
    var$4.$byteArray = $var1;
    return var$4;
},
nms_NBTTagByteArray_equals = ($this, $par1Obj) => {
    return !nms_NBTBase_equals($this, $par1Obj) ? 0 : ju_Arrays_equals0($this.$byteArray, $par1Obj.$byteArray);
},
nms_NBTTagByteArray_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$2 = var$1.$hashCode1 ^ 7;
    var$3 = $this.$byteArray;
    if (var$3 === null)
        var$4 = 0;
    else {
        var$4 = 1;
        var$5 = 0;
        while (true) {
            var$6 = var$3.data;
            if (var$5 >= var$6.length)
                break;
            var$4 = (31 * var$4 | 0) + var$6[var$5] | 0;
            var$5 = var$5 + 1 | 0;
        }
    }
    return var$2 ^ var$4;
};
function nms_NBTTagString() {
    nms_NBTBase.call(this);
    this.$data1 = null;
}
let nms_NBTTagString__init_0 = ($this, $par1Str, $par2Str) => {
    if ($par1Str !== null)
        $this.$name = $par1Str;
    else
        $this.$name = $rt_s(3);
    $this.$data1 = $par2Str;
    if ($par2Str !== null)
        return;
    $par2Str = new jl_IllegalArgumentException;
    $par2Str.$suppressionEnabled = 1;
    $par2Str.$writableStackTrace = 1;
    $par2Str.$message = $rt_s(177);
    $rt_throw($par2Str);
},
nms_NBTTagString__init_ = (var_0, var_1) => {
    let var_2 = new nms_NBTTagString();
    nms_NBTTagString__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_NBTTagString_write = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$data1;
    var$3 = ji_DataOutputStream_countUTFBytes($par1DataOutput, var$2);
    if (Long_gt(var$3, Long_fromInt(65535))) {
        $par1DataOutput = new ji_IOException;
        $par1DataOutput.$suppressionEnabled = 1;
        $par1DataOutput.$writableStackTrace = 1;
        $par1DataOutput.$message = $rt_s(127);
        $rt_throw($par1DataOutput);
    }
    var$4 = Long_lo(var$3);
    var$5 = $rt_createByteArray(var$4 + 2 | 0);
    var$6 = var$5.data;
    var$6[0] = var$4 >> 8 << 24 >> 24;
    var$6[1] = var$4 << 24 >> 24;
    var$4 = ji_DataOutputStream_writeUTFBytesToBuffer($par1DataOutput, var$2, var$5, 2);
    $par1DataOutput.$out0.$write1(var$5, 0, var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + var$4 | 0;
},
nms_NBTTagString_load = ($this, $par1DataInput, $par2) => {
    let var$3, var$4;
    $par2 = ji_DataInputStream_readUnsignedShort($par1DataInput);
    var$3 = $rt_createByteArray($par2);
    var$4 = $rt_createCharArray($par2);
    ji_DataInputStream_readFully($par1DataInput, var$3, 0, $par2);
    $this.$data1 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, $par2);
},
nms_NBTTagString_getId = $this => {
    return 8;
},
nms_NBTTagString_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$data1;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_NBTTagString_copy = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_NBTTagString;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    var$3 = $this.$data1;
    var$1.$name = var$2;
    var$1.$data1 = var$3;
    if (var$3 !== null)
        return var$1;
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(177);
    $rt_throw(var$2);
},
nms_NBTTagString_equals = ($this, $par1Obj) => {
    let $var2, var$3;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    a: {
        b: {
            $var2 = $par1Obj;
            $par1Obj = $this.$data1;
            if (!($par1Obj === null && $var2.$data1 === null)) {
                if ($par1Obj === null)
                    break b;
                $var2 = $var2.$data1;
                if ($par1Obj === $var2)
                    var$3 = 1;
                else if (!($var2 instanceof jl_String))
                    var$3 = 0;
                else {
                    $var2 = $var2;
                    var$3 = $par1Obj.$nativeString !== $var2.$nativeString ? 0 : 1;
                }
                if (!var$3)
                    break b;
            }
            var$3 = 1;
            break a;
        }
        var$3 = 0;
    }
    return var$3;
},
nms_NBTTagString_hashCode = $this => {
    let var$1, var$2, var$3;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    b: {
        var$2 = var$1.$hashCode1 ^ 8;
        var$1 = $this.$data1;
        if (!var$1.$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= var$1.$nativeString.length)
                    break b;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    return var$2 ^ var$1.$hashCode1;
};
function nms_NBTTagList() {
    let a = this; nms_NBTBase.call(a);
    a.$tagList = null;
    a.$tagType = 0;
}
let nms_NBTTagList__init_ = $this => {
    let var$1;
    $this.$name = $rt_s(3);
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$tagList = var$1;
},
nms_NBTTagList__init_0 = () => {
    let var_0 = new nms_NBTTagList();
    nms_NBTTagList__init_(var_0);
    return var_0;
},
nms_NBTTagList_write = ($this, $par1DataOutput) => {
    let var$2, var$3, $var2;
    var$2 = $this.$tagList;
    var$3 = var$2.$size0;
    if (var$3 ? 0 : 1)
        $this.$tagType = 1;
    else {
        if (0 >= var$3) {
            $par1DataOutput = new jl_IndexOutOfBoundsException;
            $par1DataOutput.$suppressionEnabled = 1;
            $par1DataOutput.$writableStackTrace = 1;
            $rt_throw($par1DataOutput);
        }
        $this.$tagType = var$2.$array.data[0].$getId();
    }
    $var2 = $this.$tagType;
    $par1DataOutput.$out0.$write0($var2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$tagList.$size0);
    $var2 = 0;
    a: {
        while (true) {
            var$2 = $this.$tagList;
            var$3 = $rt_compare($var2, var$2.$size0);
            if (var$3 >= 0)
                break;
            if ($var2 < 0)
                break a;
            if (var$3 >= 0)
                break a;
            var$2.$array.data[$var2].$write3($par1DataOutput);
            $var2 = $var2 + 1 | 0;
        }
        return;
    }
    $par1DataOutput = new jl_IndexOutOfBoundsException;
    $par1DataOutput.$suppressionEnabled = 1;
    $par1DataOutput.$writableStackTrace = 1;
    $rt_throw($par1DataOutput);
},
nms_NBTTagList_load = ($this, $par1DataInput, $par2) => {
    let $var3, var$4, $var4, var$6, $var5, var$8, var$9;
    if ($par2 > 512) {
        $par1DataInput = new jl_RuntimeException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $par1DataInput.$message = $rt_s(308);
        $rt_throw($par1DataInput);
    }
    $var3 = $par1DataInput.$in.$read();
    if ($var3 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$tagType = $var3 << 24 >> 24;
    $var3 = ji_DataInputStream_readInt($par1DataInput);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $this.$tagList = var$4;
    $var4 = 0;
    var$4 = null;
    var$6 = $par2 + 1 | 0;
    while ($var4 < $var3) {
        $var5 = nms_NBTBase_newTag($this.$tagType, var$4);
        $var5.$load($par1DataInput, var$6);
        var$8 = $this.$tagList;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$9 = var$8.$array.data;
        $par2 = var$8.$size0;
        var$8.$size0 = $par2 + 1 | 0;
        var$9[$par2] = $var5;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $var4 = $var4 + 1 | 0;
    }
},
nms_NBTTagList_getId = $this => {
    return 9;
},
nms_NBTTagList_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    a: {
        var$1 = $this.$tagList.$size0;
        switch ($this.$tagType) {
            case 0:
                break;
            case 1:
                var$2 = $rt_s(1476);
                break a;
            case 2:
                var$2 = $rt_s(1477);
                break a;
            case 3:
                var$2 = $rt_s(1478);
                break a;
            case 4:
                var$2 = $rt_s(1479);
                break a;
            case 5:
                var$2 = $rt_s(1480);
                break a;
            case 6:
                var$2 = $rt_s(1481);
                break a;
            case 7:
                var$2 = $rt_s(1482);
                break a;
            case 8:
                var$2 = $rt_s(1483);
                break a;
            case 9:
                var$2 = $rt_s(1484);
                break a;
            case 10:
                var$2 = $rt_s(1485);
                break a;
            case 11:
                var$2 = $rt_s(1486);
                break a;
            default:
                var$2 = $rt_s(179);
                break a;
        }
        var$2 = $rt_s(1487);
    }
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, var$1, 10);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1488));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$2);
    var$2 = new jl_String;
    var$4 = var$3.$buffer;
    var$5 = var$4.data;
    var$6 = var$3.$length0;
    var$1 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$1 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$2;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagList_tagAt = ($this, $par1) => {
    let var$2;
    var$2 = $this.$tagList;
    if ($par1 >= 0 && $par1 < var$2.$size0)
        return var$2.$array.data[$par1];
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
nms_NBTTagList_tagCount = $this => {
    return $this.$tagList.$size0;
},
nms_NBTTagList_copy = $this => {
    let $var1, var$2, $var2$index, var$4, var$5, $var2$index_0, $var4, $var3, var$9;
    $var1 = new nms_NBTTagList;
    var$2 = $this.$name;
    if (var$2 === null)
        var$2 = $rt_s(3);
    $var1.$name = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $var1.$tagList = var$2;
    $var1.$tagType = $this.$tagType;
    var$2 = $this.$tagList;
    $var2$index = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    while ($var2$index >= var$5 ? 0 : 1) {
        if (var$4 < var$2.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var2$index_0 = $var2$index + 1 | 0;
        $var4 = (var$2.$get($var2$index)).$copy();
        $var3 = $var1.$tagList;
        ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
        var$9 = $var3.$array.data;
        $var2$index = $var3.$size0;
        $var3.$size0 = $var2$index + 1 | 0;
        var$9[$var2$index] = $var4;
        $var3.$modCount = $var3.$modCount + 1 | 0;
        $var2$index = $var2$index_0;
    }
    return $var1;
},
nms_NBTTagList_equals = ($this, $par1Obj) => {
    let $var2;
    if (nms_NBTBase_equals($this, $par1Obj)) {
        $var2 = $par1Obj;
        if ($this.$tagType == $var2.$tagType)
            return ju_AbstractList_equals($this.$tagList, $var2.$tagList);
    }
    return 0;
},
nms_NBTTagList_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$2 = var$1.$hashCode1 ^ 9;
    var$1 = $this.$tagList;
    var$3 = 1;
    var$4 = 0;
    while (var$4 < var$1.$size0) {
        var$3 = 31 * var$3 | 0;
        var$5 = var$1.$array.data[var$4];
        var$3 = var$3 + (var$5 !== null ? var$5.$hashCode() : 0) | 0;
        var$4 = var$4 + 1 | 0;
    }
    return var$2 ^ var$3;
};
function nms_NBTTagIntArray() {
    nms_NBTBase.call(this);
    this.$intArray = null;
}
let nms_NBTTagIntArray_write = ($this, $par1DataOutput) => {
    let $var2, var$3;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$intArray.data.length);
    $var2 = 0;
    while (true) {
        var$3 = $this.$intArray.data;
        if ($var2 >= var$3.length)
            break;
        ji_DataOutputStream_writeInt($par1DataOutput, var$3[$var2]);
        $var2 = $var2 + 1 | 0;
    }
},
nms_NBTTagIntArray_load = ($this, $par1DataInput, $par2) => {
    let $var3, $var4;
    $var3 = ji_DataInputStream_readInt($par1DataInput);
    $this.$intArray = $rt_createIntArray($var3);
    $var4 = 0;
    while ($var4 < $var3) {
        $this.$intArray.data[$var4] = ji_DataInputStream_readInt($par1DataInput);
        $var4 = $var4 + 1 | 0;
    }
},
nms_NBTTagIntArray_getId = $this => {
    return 11;
},
nms_NBTTagIntArray_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$intArray.data.length;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$2.$buffer.data[var$3] = 91;
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1475));
    var$4 = new jl_String;
    var$5 = var$2.$buffer;
    var$6 = var$5.data;
    var$7 = var$2.$length0;
    var$3 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$3 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$4;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_NBTTagIntArray_copy = $this => {
    let var$1, var$2, $var1, var$4, var$5;
    var$1 = $this.$intArray;
    var$2 = var$1.data.length;
    $var1 = $rt_createIntArray(var$2);
    jl_System_fastArraycopy(var$1, 0, $var1, 0, var$2);
    var$4 = new nms_NBTTagIntArray;
    var$5 = $this.$name;
    if (var$5 === null)
        var$5 = $rt_s(3);
    var$4.$name = var$5;
    var$4.$intArray = $var1;
    return var$4;
},
nms_NBTTagIntArray_equals = ($this, $par1Obj) => {
    let $var2, var$3, var$4;
    if (!nms_NBTBase_equals($this, $par1Obj))
        return 0;
    a: {
        b: {
            $var2 = $par1Obj;
            var$3 = $this.$intArray;
            if (!(var$3 === null && $var2.$intArray === null)) {
                if (var$3 === null)
                    break b;
                if (!ju_Arrays_equals1(var$3, $var2.$intArray))
                    break b;
            }
            var$4 = 1;
            break a;
        }
        var$4 = 0;
    }
    return var$4;
},
nms_NBTTagIntArray_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    a: {
        var$1 = $this.$name;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    var$2 = var$1.$hashCode1 ^ 11;
    var$3 = $this.$intArray;
    if (var$3 === null)
        var$4 = 0;
    else {
        var$4 = 1;
        var$5 = 0;
        while (true) {
            var$6 = var$3.data;
            if (var$5 >= var$6.length)
                break;
            var$4 = (31 * var$4 | 0) + var$6[var$5] | 0;
            var$5 = var$5 + 1 | 0;
        }
    }
    return var$2 ^ var$4;
},
otciu_CLDRHelper = $rt_classWithoutFields(),
otciu_CLDRHelper_$$metadata$$0 = null,
otciu_CLDRHelper_$$metadata$$1 = null,
otciu_CLDRHelper_$$metadata$$2 = null,
otciu_CLDRHelper_$$metadata$$3 = null,
otciu_CLDRHelper_$$metadata$$4 = null,
otciu_CLDRHelper_$$metadata$$5 = null,
otciu_CLDRHelper_$$metadata$$6 = null,
otciu_CLDRHelper_$$metadata$$7 = null,
otciu_CLDRHelper_$$metadata$$10 = null,
otciu_CLDRHelper_$$metadata$$12 = null,
otciu_CLDRHelper_$$metadata$$13 = null,
otciu_CLDRHelper_$$metadata$$14 = null,
otciu_CLDRHelper_$$metadata$$17 = null,
otciu_CLDRHelper_$$metadata$$20 = null,
otciu_CLDRHelper_$$metadata$$21 = null,
otciu_CLDRHelper__init_ = $this => {
    return;
},
otciu_CLDRHelper__init_0 = () => {
    let var_0 = new otciu_CLDRHelper();
    otciu_CLDRHelper__init_(var_0);
    return var_0;
},
otciu_CLDRHelper_resolveDateFormatSymbols = ($map, $language, $country) => {
    let $localeCode, $arrayRes, var$6, $result, var$8, var$9, $i;
    if ($country.$nativeString.length ? 0 : 1)
        $localeCode = $language;
    else {
        $arrayRes = new jl_StringBuilder;
        $arrayRes.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($arrayRes, $arrayRes.$length0, $language === null ? $rt_s(1) : $language);
        var$6 = $arrayRes.$length0;
        jl_AbstractStringBuilder_insertSpace($arrayRes, var$6, var$6 + 1 | 0);
        $arrayRes.$buffer.data[var$6] = 45;
        jl_AbstractStringBuilder_insert($arrayRes, $arrayRes.$length0, $country);
        $localeCode = new jl_String;
        $result = $arrayRes.$buffer;
        var$8 = $result.data;
        var$9 = $arrayRes.$length0;
        var$6 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$6 - 0 | 0))
            $localeCode.$nativeString = $rt_charArrayToString($result.data, 0, var$9);
        else {
            $map = new jl_IndexOutOfBoundsException;
            $map.$suppressionEnabled = 1;
            $map.$writableStackTrace = 1;
            $rt_throw($map);
        }
    }
    $arrayRes = $map.hasOwnProperty($rt_ustr($localeCode)) ? $map[$rt_ustr($localeCode)] : $map.hasOwnProperty($rt_ustr($language)) ? $map[$rt_ustr($language)] : $map.root;
    $result = $rt_createArray(jl_String, $arrayRes.length);
    var$8 = $result.data;
    $i = 0;
    var$6 = var$8.length;
    while ($i < var$6) {
        var$8[$i] = ($arrayRes[$i].value !== null ? $rt_str($arrayRes[$i].value) : null);
        $i = $i + 1 | 0;
    }
    return $result;
},
otciu_CLDRHelper_getTimeZoneName = ($language, $country, $id) => {
    let $locale, $localization, $separator, var$7, var$8, var$9, $area, $territory, $timeZones;
    if ($country.$nativeString.length ? 0 : 1)
        $locale = $language;
    else {
        $localization = new jl_StringBuilder;
        $localization.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($localization, $localization.$length0, $language === null ? $rt_s(1) : $language);
        $separator = $localization.$length0;
        jl_AbstractStringBuilder_insertSpace($localization, $separator, $separator + 1 | 0);
        $localization.$buffer.data[$separator] = 45;
        jl_AbstractStringBuilder_insert($localization, $localization.$length0, $country);
        $locale = new jl_String;
        var$7 = $localization.$buffer;
        var$8 = var$7.data;
        $separator = $localization.$length0;
        var$9 = var$8.length;
        if ($separator >= 0 && $separator <= (var$9 - 0 | 0))
            $locale.$nativeString = $rt_charArrayToString(var$7.data, 0, $separator);
        else {
            $language = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($language);
            $rt_throw($language);
        }
    }
    if (otciu_CLDRHelper_$$metadata$$7 === null)
        otciu_CLDRHelper_$$metadata$$7 = otciu_CLDRHelper_getTimeZoneLocalizationMap$$create();
    if (otciu_CLDRHelper_$$metadata$$7.hasOwnProperty($rt_ustr($locale)))
        $language = $locale;
    if (otciu_CLDRHelper_$$metadata$$7 === null)
        otciu_CLDRHelper_$$metadata$$7 = otciu_CLDRHelper_getTimeZoneLocalizationMap$$create();
    if (!otciu_CLDRHelper_$$metadata$$7.hasOwnProperty($rt_ustr($language)))
        return null;
    if (otciu_CLDRHelper_$$metadata$$7 === null)
        otciu_CLDRHelper_$$metadata$$7 = otciu_CLDRHelper_getTimeZoneLocalizationMap$$create();
    $localization = otciu_CLDRHelper_$$metadata$$7[$rt_ustr($language)];
    $separator = jl_String_indexOf($id, 47, 0);
    if ($separator < 0)
        return null;
    $area = jl_String_substring($id, 0, $separator);
    $territory = jl_String_substring($id, $separator + 1 | 0, $id.$nativeString.length);
    if (!$localization.timeZones.hasOwnProperty($rt_ustr($area)))
        return null;
    $timeZones = $localization.timeZones[$rt_ustr($area)];
    if (!$timeZones.hasOwnProperty($rt_ustr($territory)))
        return null;
    return ($timeZones[$rt_ustr($territory)].value !== null ? $rt_str($timeZones[$rt_ustr($territory)].value) : null);
},
otciu_CLDRHelper_getLikelySubtagsMap$$create = () => {
    return {"ksh": {"value" : "ksh-Latn-DE"}, "ksj": {"value" : "ksj-Latn-ZZ"}, "tdu": {"value" : "tdu-Latn-MY"}, "cch": {"value" : "cch-Latn-NG"}, "und-Khar": {"value" : "pra-Khar-PK"}, "gkn": {"value" : "gkn-Latn-ZZ"}, "ksr": {"value" : "ksr-Latn-ZZ"}, "und-Mani": {"value" : "xmn-Mani-CN"}, "gkp": {"value" : "gkp-Latn-ZZ"}, "xmf": {"value" : "xmf-Geor-GE"}, "ccp": {"value" : "ccp-Cakm-BD"}, "ted": {"value" : "ted-Latn-ZZ"}, "und-Mand": {"value" : "myz-Mand-IR"}, "ktb": {"value" : "ktb-Ethi-ZZ"}, "xmn": {"value"
    : "xmn-Mani-CN"}, "sd-Sind": {"value" : "sd-Sind-IN"}, "xmr": {"value" : "xmr-Merc-SD"}, "tem": {"value" : "tem-Latn-SL"}, "und-Mroo": {"value" : "mro-Mroo-BD"}, "teo": {"value" : "teo-Latn-UG"}, "tet": {"value" : "tet-Latn-TL"}, "ktm": {"value" : "ktm-Latn-ZZ"}, "glk": {"value" : "glk-Arab-IR"}, "kto": {"value" : "kto-Latn-ZZ"}, "ktr": {"value" : "ktr-Latn-MY"}, "und-Soyo": {"value" : "cmg-Soyo-MN"}, "xna": {"value" : "xna-Narb-SA"}, "tfi": {"value" : "tfi-Latn-ZZ"}, "kub": {"value" : "kub-Latn-ZZ"}, "kue":
    {"value" : "kue-Latn-ZZ"}, "kud": {"value" : "kud-Latn-ZZ"}, "xnr": {"value" : "xnr-Deva-IN"}, "ceb": {"value" : "ceb-Latn-PH"}, "kuj": {"value" : "kuj-Latn-ZZ"}, "kum": {"value" : "kum-Cyrl-RU"}, "kun": {"value" : "kun-Latn-ZZ"}, "gmm": {"value" : "gmm-Latn-ZZ"}, "kup": {"value" : "kup-Latn-ZZ"}, "kus": {"value" : "kus-Latn-ZZ"}, "gmv": {"value" : "gmv-Ethi-ZZ"}, "tgc": {"value" : "tgc-Latn-ZZ"}, "xog": {"value" : "xog-Latn-UG"}, "und-Arab-YT": {"value" : "swb-Arab-YT"}, "und-Latn-ET": {"value" : "en-Latn-ET"}
    , "xon": {"value" : "xon-Latn-ZZ"}, "ha-CM": {"value" : "ha-Arab-CM"}, "gnd": {"value" : "gnd-Latn-ZZ"}, "kvg": {"value" : "kvg-Latn-ZZ"}, "tgo": {"value" : "tgo-Latn-ZZ"}, "cfa": {"value" : "cfa-Latn-ZZ"}, "gng": {"value" : "gng-Latn-ZZ"}, "tgu": {"value" : "tgu-Latn-ZZ"}, "und-Latn-GE": {"value" : "ku-Latn-GE"}, "kvr": {"value" : "kvr-Latn-ID"}, "kvx": {"value" : "kvx-Arab-PK"}, "und-Gujr": {"value" : "gu-Gujr-IN"}, "thl": {"value" : "thl-Deva-NP"}, "xpr": {"value" : "xpr-Prti-IR"}, "thq": {"value" : "thq-Deva-NP"}
    , "god": {"value" : "god-Latn-ZZ"}, "gof": {"value" : "gof-Ethi-ZZ"}, "kwj": {"value" : "kwj-Latn-ZZ"}, "ky-Arab": {"value" : "ky-Arab-CN"}, "thr": {"value" : "thr-Deva-NP"}, "goi": {"value" : "goi-Latn-ZZ"}, "cgg": {"value" : "cgg-Latn-UG"}, "kwo": {"value" : "kwo-Latn-ZZ"}, "gom": {"value" : "gom-Deva-IN"}, "kwq": {"value" : "kwq-Latn-ZZ"}, "gon": {"value" : "gon-Telu-IN"}, "gos": {"value" : "gos-Latn-NL"}, "gor": {"value" : "gor-Latn-ID"}, "und-Latn-CY": {"value" : "tr-Latn-CY"}, "got": {"value" : "got-Goth-UA"}
    , "tif": {"value" : "tif-Latn-ZZ"}, "tig": {"value" : "tig-Ethi-ER"}, "kxa": {"value" : "kxa-Latn-ZZ"}, "kxc": {"value" : "kxc-Ethi-ZZ"}, "pag": {"value" : "pag-Latn-PH"}, "tik": {"value" : "tik-Latn-ZZ"}, "kxe": {"value" : "kxe-Latn-ZZ"}, "tim": {"value" : "tim-Latn-ZZ"}, "pal": {"value" : "pal-Phli-IR"}, "tio": {"value" : "tio-Latn-ZZ"}, "pam": {"value" : "pam-Latn-PH"}, "und-Marc": {"value" : "bo-Marc-CN"}, "pap": {"value" : "pap-Latn-AW"}, "und-Latn-CN": {"value" : "za-Latn-CN"}, "tiv": {"value" : "tiv-Latn-NG"}
    , "kxm": {"value" : "kxm-Thai-TH"}, "kxp": {"value" : "kxp-Arab-PK"}, "pau": {"value" : "pau-Latn-PW"}, "chk": {"value" : "chk-Latn-FM"}, "chm": {"value" : "chm-Cyrl-RU"}, "xrb": {"value" : "xrb-Latn-ZZ"}, "chp": {"value" : "chp-Latn-CA"}, "cho": {"value" : "cho-Latn-US"}, "kxw": {"value" : "kxw-Latn-ZZ"}, "und-Latn-DZ": {"value" : "fr-Latn-DZ"}, "chr": {"value" : "chr-Cher-US"}, "kxz": {"value" : "kxz-Latn-ZZ"}, "und-Batk": {"value" : "bbc-Batk-ID"}, "und-Bass": {"value" : "bsq-Bass-LR"}, "kye": {"value"
    : "kye-Latn-ZZ"}, "pbi": {"value" : "pbi-Latn-ZZ"}, "und-Deva-MU": {"value" : "bho-Deva-MU"}, "cic": {"value" : "cic-Latn-US"}, "und-Sgnw": {"value" : "ase-Sgnw-US"}, "xsa": {"value" : "xsa-Sarb-YE"}, "kyx": {"value" : "kyx-Latn-ZZ"}, "xsi": {"value" : "xsi-Latn-ZZ"}, "pcd": {"value" : "pcd-Latn-FR"}, "und-Latn-AM": {"value" : "ku-Latn-AM"}, "xsm": {"value" : "xsm-Latn-ZZ"}, "tkl": {"value" : "tkl-Latn-TK"}, "und-Thai-CN": {"value" : "lcp-Thai-CN"}, "grb": {"value" : "grb-Latn-ZZ"}, "xsr": {"value" : "xsr-Deva-NP"}
    , "und-Latn-AF": {"value" : "tk-Latn-AF"}, "grc": {"value" : "grc-Cprt-CY"}, "kzj": {"value" : "kzj-Latn-MY"}, "tkr": {"value" : "tkr-Latn-AZ"}, "cja": {"value" : "cja-Arab-KH"}, "pcm": {"value" : "pcm-Latn-NG"}, "tkt": {"value" : "tkt-Deva-NP"}, "und-Olck": {"value" : "sat-Olck-IN"}, "kzr": {"value" : "kzr-Latn-ZZ"}, "kzt": {"value" : "kzt-Latn-MY"}, "cjm": {"value" : "cjm-Cham-VN"}, "grt": {"value" : "grt-Beng-IN"}, "und-Arab-TJ": {"value" : "fa-Arab-TJ"}, "und-Arab-TG": {"value" : "apd-Arab-TG"}, "und-Arab-TH":
    {"value" : "mfa-Arab-TH"}, "und-Deva-PK": {"value" : "btv-Deva-PK"}, "grw": {"value" : "grw-Latn-ZZ"}, "cjv": {"value" : "cjv-Latn-ZZ"}, "pdc": {"value" : "pdc-Latn-US"}, "tlf": {"value" : "tlf-Latn-ZZ"}, "und-Arab-TR": {"value" : "az-Arab-TR"}, "ckb": {"value" : "ckb-Arab-IQ"}, "tly": {"value" : "tly-Latn-AZ"}, "pdt": {"value" : "pdt-Latn-CA"}, "tlx": {"value" : "tlx-Latn-ZZ"}, "ckl": {"value" : "ckl-Latn-ZZ"}, "cko": {"value" : "cko-Latn-ZZ"}, "gsw": {"value" : "gsw-Latn-CH"}, "ped": {"value" : "ped-Latn-ZZ"}
    , "tmh": {"value" : "tmh-Latn-NE"}, "cky": {"value" : "cky-Latn-ZZ"}, "kk-Arab": {"value" : "kk-Arab-CN"}, "und-Runr": {"value" : "non-Runr-SE"}, "cla": {"value" : "cla-Latn-ZZ"}, "peo": {"value" : "peo-Xpeo-IR"}, "tmy": {"value" : "tmy-Latn-ZZ"}, "pex": {"value" : "pex-Latn-ZZ"}, "ky-TR": {"value" : "ky-Latn-TR"}, "tnh": {"value" : "tnh-Latn-ZZ"}, "guc": {"value" : "guc-Latn-CO"}, "gub": {"value" : "gub-Latn-BR"}, "gud": {"value" : "gud-Latn-ZZ"}, "pfl": {"value" : "pfl-Latn-DE"}, "cme": {"value" : "cme-Latn-ZZ"}
    , "cmg": {"value" : "cmg-Soyo-MN"}, "gur": {"value" : "gur-Latn-GH"}, "xwe": {"value" : "xwe-Latn-ZZ"}, "guw": {"value" : "guw-Latn-ZZ"}, "tof": {"value" : "tof-Latn-ZZ"}, "gux": {"value" : "gux-Latn-ZZ"}, "guz": {"value" : "guz-Latn-KE"}, "tog": {"value" : "tog-Latn-MW"}, "gvf": {"value" : "gvf-Latn-ZZ"}, "toq": {"value" : "toq-Latn-ZZ"}, "gvr": {"value" : "gvr-Deva-NP"}, "und-Guru": {"value" : "pa-Guru-IN"}, "gvs": {"value" : "gvs-Latn-ZZ"}, "tpi": {"value" : "tpi-Latn-PG"}, "tpm": {"value" : "tpm-Latn-ZZ"}
    , "und-Tfng": {"value" : "zgh-Tfng-MA"}, "gwc": {"value" : "gwc-Arab-ZZ"}, "und-Arab-PK": {"value" : "ur-Arab-PK"}, "phl": {"value" : "phl-Arab-ZZ"}, "und-Aghb": {"value" : "lez-Aghb-RU"}, "phn": {"value" : "phn-Phnx-LB"}, "gwi": {"value" : "gwi-Latn-CA"}, "tpz": {"value" : "tpz-Latn-ZZ"}, "cop": {"value" : "cop-Copt-EG"}, "gwt": {"value" : "gwt-Arab-ZZ"}, "lab": {"value" : "lab-Lina-GR"}, "lad": {"value" : "lad-Hebr-IL"}, "lah": {"value" : "lah-Arab-PK"}, "pil": {"value" : "pil-Latn-ZZ"}, "lag": {"value"
    : "lag-Latn-TZ"}, "tqo": {"value" : "tqo-Latn-ZZ"}, "laj": {"value" : "laj-Latn-UG"}, "pip": {"value" : "pip-Latn-ZZ"}, "und-Khmr": {"value" : "km-Khmr-KH"}, "las": {"value" : "las-Latn-ZZ"}, "sd-Deva": {"value" : "sd-Deva-IN"}, "und-Khoj": {"value" : "sd-Khoj-IN"}, "cps": {"value" : "cps-Latn-PH"}, "kk-AF": {"value" : "kk-Arab-AF"}, "und-Arab-MU": {"value" : "ur-Arab-MU"}, "lbe": {"value" : "lbe-Cyrl-RU"}, "und-Arab-NG": {"value" : "ha-Arab-NG"}, "gyi": {"value" : "gyi-Latn-ZZ"}, "tru": {"value" : "tru-Latn-TR"}
    , "trw": {"value" : "trw-Arab-ZZ"}, "trv": {"value" : "trv-Latn-TW"}, "lbu": {"value" : "lbu-Latn-ZZ"}, "lbw": {"value" : "lbw-Latn-ID"}, "tsd": {"value" : "tsd-Grek-GR"}, "tsf": {"value" : "tsf-Deva-NP"}, "pka": {"value" : "pka-Brah-IN"}, "tsg": {"value" : "tsg-Latn-PH"}, "tsj": {"value" : "tsj-Tibt-BT"}, "und-Deva-FJ": {"value" : "hif-Deva-FJ"}, "pko": {"value" : "pko-Latn-KE"}, "lcm": {"value" : "lcm-Latn-ZZ"}, "crh": {"value" : "crh-Cyrl-UA"}, "lcp": {"value" : "lcp-Thai-CN"}, "tsw": {"value" : "tsw-Latn-ZZ"}
    , "crj": {"value" : "crj-Cans-CA"}, "crl": {"value" : "crl-Cans-CA"}, "und-Arab-MN": {"value" : "kk-Arab-MN"}, "crk": {"value" : "crk-Cans-CA"}, "crm": {"value" : "crm-Cans-CA"}, "und-Arab-MM": {"value" : "rhg-Arab-MM"}, "pla": {"value" : "pla-Latn-ZZ"}, "tte": {"value" : "tte-Latn-ZZ"}, "crs": {"value" : "crs-Latn-SC"}, "ttd": {"value" : "ttd-Latn-ZZ"}, "ldb": {"value" : "ldb-Latn-ZZ"}, "ttj": {"value" : "ttj-Latn-UG"}, "kk-CN": {"value" : "kk-Arab-CN"}, "und-Yiii": {"value" : "ii-Yiii-CN"}, "tts": {"value"
    : "tts-Thai-TH"}, "csb": {"value" : "csb-Latn-PL"}, "ttr": {"value" : "ttr-Latn-ZZ"}, "ttt": {"value" : "ttt-Latn-AZ"}, "csw": {"value" : "csw-Cans-CA"}, "tuh": {"value" : "tuh-Latn-ZZ"}, "led": {"value" : "led-Latn-ZZ"}, "tul": {"value" : "tul-Latn-ZZ"}, "lee": {"value" : "lee-Latn-ZZ"}, "tum": {"value" : "tum-Latn-MW"}, "und-Arab-KH": {"value" : "cja-Arab-KH"}, "tuq": {"value" : "tuq-Latn-ZZ"}, "ctd": {"value" : "ctd-Pauc-MM"}, "lem": {"value" : "lem-Latn-ZZ"}, "lep": {"value" : "lep-Lepc-IN"}, "pms":
    {"value" : "pms-Latn-IT"}, "leq": {"value" : "leq-Latn-ZZ"}, "und-Pauc": {"value" : "ctd-Pauc-MM"}, "und-Sogo": {"value" : "sog-Sogo-UZ"}, "leu": {"value" : "leu-Latn-ZZ"}, "lez": {"value" : "lez-Cyrl-RU"}, "tvd": {"value" : "tvd-Latn-ZZ"}, "mn-CN": {"value" : "mn-Mong-CN"}, "sr-TR": {"value" : "sr-Latn-TR"}, "png": {"value" : "png-Latn-ZZ"}, "tvl": {"value" : "tvl-Latn-TV"}, "und-Brah": {"value" : "pka-Brah-IN"}, "und-Brai": {"value" : "fr-Brai-FR"}, "pnn": {"value" : "pnn-Latn-ZZ"}, "tvu": {"value" : "tvu-Latn-ZZ"}
    , "pnt": {"value" : "pnt-Grek-GR"}, "uz-CN": {"value" : "uz-Cyrl-CN"}, "ha-SD": {"value" : "ha-Arab-SD"}, "twh": {"value" : "twh-Latn-ZZ"}, "und-Takr": {"value" : "doi-Takr-IN"}, "lgg": {"value" : "lgg-Latn-ZZ"}, "pon": {"value" : "pon-Latn-FM"}, "twq": {"value" : "twq-Latn-NE"}, "und-Arab-ID": {"value" : "ms-Arab-ID"}, "und-Arab-IN": {"value" : "ur-Arab-IN"}, "ppa": {"value" : "ppa-Deva-IN"}, "txg": {"value" : "txg-Tang-CN"}, "yam": {"value" : "yam-Latn-ZZ"}, "und-Talu": {"value" : "khb-Talu-CN"}, "yao":
    {"value" : "yao-Latn-MZ"}, "yap": {"value" : "yap-Latn-FM"}, "yas": {"value" : "yas-Latn-ZZ"}, "yat": {"value" : "yat-Latn-ZZ"}, "ppo": {"value" : "ppo-Latn-ZZ"}, "yav": {"value" : "yav-Latn-CM"}, "yay": {"value" : "yay-Latn-ZZ"}, "yaz": {"value" : "yaz-Latn-ZZ"}, "und-Tale": {"value" : "tdd-Tale-CN"}, "ybb": {"value" : "ybb-Latn-CM"}, "yba": {"value" : "yba-Latn-ZZ"}, "tya": {"value" : "tya-Latn-ZZ"}, "lia": {"value" : "lia-Latn-ZZ"}, "lid": {"value" : "lid-Latn-ZZ"}, "und-Latn-TW": {"value" : "trv-Latn-TW"}
    , "lif": {"value" : "lif-Deva-NP"}, "lih": {"value" : "lih-Latn-ZZ"}, "lig": {"value" : "lig-Latn-ZZ"}, "lij": {"value" : "lij-Latn-IT"}, "hag": {"value" : "hag-Latn-ZZ"}, "und-Latn-TN": {"value" : "fr-Latn-TN"}, "tyv": {"value" : "tyv-Cyrl-RU"}, "yby": {"value" : "yby-Latn-ZZ"}, "und-Arab-GB": {"value" : "ks-Arab-GB"}, "hak": {"value" : "hak-Hans-CN"}, "und-Taml": {"value" : "ta-Taml-IN"}, "ham": {"value" : "ham-Latn-ZZ"}, "lis": {"value" : "lis-Lisu-CN"}, "und-Latn-SY": {"value" : "fr-Latn-SY"}, "ky-Latn":
    {"value" : "ky-Latn-TR"}, "pra": {"value" : "pra-Khar-PK"}, "haw": {"value" : "haw-Latn-US"}, "haz": {"value" : "haz-Arab-AF"}, "ku-LB": {"value" : "ku-Arab-LB"}, "prd": {"value" : "prd-Arab-IR"}, "prg": {"value" : "prg-Latn-001"}, "tzm": {"value" : "tzm-Latn-MA"}, "hbb": {"value" : "hbb-Latn-ZZ"}, "und-Latn-UA": {"value" : "pl-Latn-UA"}, "ljp": {"value" : "ljp-Latn-ID"}, "und-Tang": {"value" : "txg-Tang-CN"}, "yue-Hans": {"value" : "yue-Hans-CN"}, "und-Latn-RU": {"value" : "krl-Latn-RU"}, "lki": {"value"
    : "lki-Arab-IR"}, "pss": {"value" : "pss-Latn-ZZ"}, "lkt": {"value" : "lkt-Latn-US"}, "sr-RO": {"value" : "sr-Latn-RO"}, "und-Arab-CN": {"value" : "ug-Arab-CN"}, "lle": {"value" : "lle-Latn-ZZ"}, "und-Cyrl": {"value" : "ru-Cyrl-RU"}, "uz-AF": {"value" : "uz-Arab-AF"}, "yer": {"value" : "yer-Latn-ZZ"}, "und-Beng": {"value" : "bn-Beng-BD"}, "ptp": {"value" : "ptp-Latn-ZZ"}, "lln": {"value" : "lln-Latn-ZZ"}, "sr-RU": {"value" : "sr-Latn-RU"}, "hdy": {"value" : "hdy-Ethi-ZZ"}, "unr-NP": {"value" : "unr-Deva-NP"}
    , "und-Mend": {"value" : "men-Mend-SL"}, "lmn": {"value" : "lmn-Telu-IN"}, "lmp": {"value" : "lmp-Latn-ZZ"}, "lmo": {"value" : "lmo-Latn-IT"}, "puu": {"value" : "puu-Latn-GA"}, "und-Arab-CC": {"value" : "ms-Arab-CC"}, "pal-Phlp": {"value" : "pal-Phlp-CN"}, "ygr": {"value" : "ygr-Latn-ZZ"}, "ygw": {"value" : "ygw-Latn-ZZ"}, "lns": {"value" : "lns-Latn-ZZ"}, "ky-CN": {"value" : "ky-Arab-CN"}, "lnu": {"value" : "lnu-Latn-ZZ"}, "pwa": {"value" : "pwa-Latn-ZZ"}, "und-Chrs": {"value" : "xco-Chrs-UZ"}, "und-Mahj":
    {"value" : "hi-Mahj-IN"}, "rif-NL": {"value" : "rif-Latn-NL"}, "loj": {"value" : "loj-Latn-ZZ"}, "lol": {"value" : "lol-Latn-CD"}, "lok": {"value" : "lok-Latn-ZZ"}, "lor": {"value" : "lor-Latn-ZZ"}, "und-Sora": {"value" : "srb-Sora-IN"}, "los": {"value" : "los-Latn-ZZ"}, "loz": {"value" : "loz-Latn-ZM"}, "und-202": {"value" : "en-Latn-NG"}, "und-Latn-MR": {"value" : "fr-Latn-MR"}, "ku-Yezi": {"value" : "ku-Yezi-GE"}, "hhy": {"value" : "hhy-Latn-ZZ"}, "hia": {"value" : "hia-Latn-ZZ"}, "hif": {"value" : "hif-Latn-FJ"}
    , "dad": {"value" : "dad-Latn-ZZ"}, "hih": {"value" : "hih-Latn-ZZ"}, "hig": {"value" : "hig-Latn-ZZ"}, "daf": {"value" : "daf-Latn-ZZ"}, "ubu": {"value" : "ubu-Latn-ZZ"}, "dah": {"value" : "dah-Latn-ZZ"}, "hil": {"value" : "hil-Latn-PH"}, "dag": {"value" : "dag-Latn-ZZ"}, "und-Mero": {"value" : "xmr-Mero-SD"}, "dak": {"value" : "dak-Latn-US"}, "und-Merc": {"value" : "xmr-Merc-SD"}, "dar": {"value" : "dar-Cyrl-RU"}, "dav": {"value" : "dav-Latn-KE"}, "lrc": {"value" : "lrc-Arab-IR"}, "yko": {"value" : "yko-Latn-ZZ"}
    , "und-Latn-MK": {"value" : "sq-Latn-MK"}, "und-Latn-MM": {"value" : "kac-Latn-MM"}, "dbd": {"value" : "dbd-Latn-ZZ"}, "und-Latn-MO": {"value" : "pt-Latn-MO"}, "und-Latn-MA": {"value" : "fr-Latn-MA"}, "und-Bali": {"value" : "ban-Bali-ID"}, "und-Tavt": {"value" : "blt-Tavt-VN"}, "dbq": {"value" : "dbq-Latn-ZZ"}, "yle": {"value" : "yle-Latn-ZZ"}, "ylg": {"value" : "ylg-Latn-ZZ"}, "und-Maka": {"value" : "mak-Maka-ID"}, "yll": {"value" : "yll-Latn-ZZ"}, "udm": {"value" : "udm-Cyrl-RU"}, "dcc": {"value" : "dcc-Arab-IN"}
    , "yml": {"value" : "yml-Latn-ZZ"}, "hla": {"value" : "hla-Latn-ZZ"}, "und-Latn-IR": {"value" : "tk-Latn-IR"}, "ltg": {"value" : "ltg-Latn-LV"}, "und-Latn-KM": {"value" : "fr-Latn-KM"}, "ddn": {"value" : "ddn-Latn-ZZ"}, "hlu": {"value" : "hlu-Hluw-TR"}, "lua": {"value" : "lua-Latn-CD"}, "und-Bamu": {"value" : "bax-Bamu-CM"}, "hmd": {"value" : "hmd-Plrd-CN"}, "ded": {"value" : "ded-Latn-ZZ"}, "luo": {"value" : "luo-Latn-KE"}, "und-142": {"value" : "zh-Hans-CN"}, "und-143": {"value" : "uz-Latn-UZ"}, "den":
    {"value" : "den-Latn-CA"}, "und-Gran": {"value" : "sa-Gran-IN"}, "hmt": {"value" : "hmt-Latn-ZZ"}, "uga": {"value" : "uga-Ugar-SY"}, "luz": {"value" : "luz-Arab-IR"}, "luy": {"value" : "luy-Latn-KE"}, "und-145": {"value" : "ar-Arab-SA"}, "und-Cakm": {"value" : "ccp-Cakm-BD"}, "und-Dupl": {"value" : "fr-Dupl-FR"}, "yon": {"value" : "yon-Latn-ZZ"}, "ug-MN": {"value" : "ug-Cyrl-MN"}, "hne": {"value" : "hne-Deva-IN"}, "hnd": {"value" : "hnd-Arab-PK"}, "hnj": {"value" : "hnj-Hmng-LA"}, "hno": {"value" : "hno-Arab-PK"}
    , "hnn": {"value" : "hnn-Latn-PH"}, "ug-KZ": {"value" : "ug-Cyrl-KZ"}, "und-154": {"value" : "en-Latn-GB"}, "und-155": {"value" : "de-Latn-DE"}, "und-150": {"value" : "ru-Cyrl-RU"}, "und-151": {"value" : "ru-Cyrl-RU"}, "und-Sylo": {"value" : "syl-Sylo-BD"}, "hoc": {"value" : "hoc-Deva-IN"}, "dga": {"value" : "dga-Latn-ZZ"}, "lwl": {"value" : "lwl-Thai-TH"}, "und-Ital": {"value" : "ett-Ital-IT"}, "hoj": {"value" : "hoj-Deva-IN"}, "dgh": {"value" : "dgh-Latn-ZZ"}, "dgi": {"value" : "dgi-Latn-ZZ"}, "dgl": {"value"
    : "dgl-Arab-ZZ"}, "hot": {"value" : "hot-Latn-ZZ"}, "dgr": {"value" : "dgr-Latn-CA"}, "dgz": {"value" : "dgz-Latn-ZZ"}, "yrb": {"value" : "yrb-Latn-ZZ"}, "yre": {"value" : "yre-Latn-ZZ"}, "und-Lyci": {"value" : "xlc-Lyci-TR"}, "und-Cans": {"value" : "cr-Cans-CA"}, "und-Hluw": {"value" : "hlu-Hluw-TR"}, "und-Nand": {"value" : "sa-Nand-IN"}, "yrl": {"value" : "yrl-Latn-BR"}, "dia": {"value" : "dia-Latn-ZZ"}, "und-Grek": {"value" : "el-Grek-GR"}, "und-Mong": {"value" : "mn-Mong-CN"}, "und-Lydi": {"value" :
    "xld-Lydi-TR"}, "yss": {"value" : "yss-Latn-ZZ"}, "und-Newa": {"value" : "new-Newa-NP"}, "lzh": {"value" : "lzh-Hans-CN"}, "dje": {"value" : "dje-Latn-NE"}, "lzz": {"value" : "lzz-Latn-TR"}, "uli": {"value" : "uli-Latn-FM"}, "hsb": {"value" : "hsb-Latn-DE"}, "und-Xsux": {"value" : "akk-Xsux-IQ"}, "hsn": {"value" : "hsn-Hans-CN"}, "und-Cari": {"value" : "xcr-Cari-TR"}, "und-Syrc": {"value" : "syr-Syrc-IQ"}, "yua": {"value" : "yua-Latn-MX"}, "yue": {"value" : "yue-Hant-HK"}, "umb": {"value" : "umb-Latn-AO"}
    , "yuj": {"value" : "yuj-Latn-ZZ"}, "yut": {"value" : "yut-Latn-ZZ"}, "yuw": {"value" : "yuw-Latn-ZZ"}, "und-Bopo": {"value" : "zh-Bopo-TW"}, "und-Yezi": {"value" : "ku-Yezi-GE"}, "und": {"value" : "en-Latn-US"}, "und-Egyp": {"value" : "egy-Egyp-EG"}, "und-Tglg": {"value" : "fil-Tglg-PH"}, "unr": {"value" : "unr-Beng-IN"}, "hui": {"value" : "hui-Latn-ZZ"}, "und-Elba": {"value" : "sq-Elba-AL"}, "unx": {"value" : "unx-Beng-IN"}, "und-Narb": {"value" : "xna-Narb-SA"}, "pa-PK": {"value" : "pa-Arab-PK"}, "und-Hebr-CA":
    {"value" : "yi-Hebr-CA"}, "uok": {"value" : "uok-Latn-ZZ"}, "und-Geor": {"value" : "ka-Geor-GE"}, "und-Shrd": {"value" : "sa-Shrd-IN"}, "dnj": {"value" : "dnj-Latn-CI"}, "und-Diak": {"value" : "dv-Diak-MV"}, "dob": {"value" : "dob-Latn-ZZ"}, "und-Mymr-TH": {"value" : "mnw-Mymr-TH"}, "doi": {"value" : "doi-Arab-IN"}, "dop": {"value" : "dop-Latn-ZZ"}, "und-Sund": {"value" : "su-Sund-ID"}, "dow": {"value" : "dow-Latn-ZZ"}, "sr-ME": {"value" : "sr-Latn-ME"}, "und-Hung": {"value" : "hu-Hung-HU"}, "mad": {"value"
    : "mad-Latn-ID"}, "mag": {"value" : "mag-Deva-IN"}, "maf": {"value" : "maf-Latn-CM"}, "mai": {"value" : "mai-Deva-IN"}, "mak": {"value" : "mak-Latn-ID"}, "man": {"value" : "man-Latn-GM"}, "mas": {"value" : "mas-Latn-KE"}, "maw": {"value" : "maw-Latn-ZZ"}, "maz": {"value" : "maz-Latn-MX"}, "uri": {"value" : "uri-Latn-ZZ"}, "mbh": {"value" : "mbh-Latn-ZZ"}, "urt": {"value" : "urt-Latn-ZZ"}, "mbo": {"value" : "mbo-Latn-ZZ"}, "urw": {"value" : "urw-Latn-ZZ"}, "mbq": {"value" : "mbq-Latn-ZZ"}, "mbu": {"value"
    : "mbu-Latn-ZZ"}, "und-Hebr-GB": {"value" : "yi-Hebr-GB"}, "usa": {"value" : "usa-Latn-ZZ"}, "mbw": {"value" : "mbw-Latn-ZZ"}, "mci": {"value" : "mci-Latn-ZZ"}, "dri": {"value" : "dri-Latn-ZZ"}, "mcq": {"value" : "mcq-Latn-ZZ"}, "drh": {"value" : "drh-Mong-CN"}, "mcp": {"value" : "mcp-Latn-ZZ"}, "mcr": {"value" : "mcr-Latn-ZZ"}, "mcu": {"value" : "mcu-Latn-ZZ"}, "drs": {"value" : "drs-Ethi-ZZ"}, "mda": {"value" : "mda-Latn-ZZ"}, "mdf": {"value" : "mdf-Cyrl-RU"}, "mde": {"value" : "mde-Arab-ZZ"}, "mdh": {"value"
    : "mdh-Latn-PH"}, "dsb": {"value" : "dsb-Latn-DE"}, "mdj": {"value" : "mdj-Latn-ZZ"}, "utr": {"value" : "utr-Latn-ZZ"}, "mdr": {"value" : "mdr-Latn-ID"}, "mdx": {"value" : "mdx-Ethi-ZZ"}, "mee": {"value" : "mee-Latn-ZZ"}, "med": {"value" : "med-Latn-ZZ"}, "mek": {"value" : "mek-Latn-ZZ"}, "men": {"value" : "men-Latn-SL"}, "az-RU": {"value" : "az-Cyrl-RU"}, "mis-Medf": {"value" : "mis-Medf-NG"}, "mer": {"value" : "mer-Latn-KE"}, "dtm": {"value" : "dtm-Latn-ML"}, "meu": {"value" : "meu-Latn-ZZ"}, "met": {"value"
    : "met-Latn-ZZ"}, "dtp": {"value" : "dtp-Latn-MY"}, "dts": {"value" : "dts-Latn-ZZ"}, "uvh": {"value" : "uvh-Latn-ZZ"}, "dty": {"value" : "dty-Deva-NP"}, "mfa": {"value" : "mfa-Arab-TH"}, "uvl": {"value" : "uvl-Latn-ZZ"}, "mfe": {"value" : "mfe-Latn-MU"}, "dua": {"value" : "dua-Latn-CM"}, "dud": {"value" : "dud-Latn-ZZ"}, "duc": {"value" : "duc-Latn-ZZ"}, "mfn": {"value" : "mfn-Latn-ZZ"}, "dug": {"value" : "dug-Latn-ZZ"}, "mfo": {"value" : "mfo-Latn-ZZ"}, "mfq": {"value" : "mfq-Latn-ZZ"}, "und-Phag": {"value"
    : "lzh-Phag-CN"}, "dva": {"value" : "dva-Latn-ZZ"}, "mgh": {"value" : "mgh-Latn-MZ"}, "mgl": {"value" : "mgl-Latn-ZZ"}, "mgo": {"value" : "mgo-Latn-CM"}, "mgp": {"value" : "mgp-Deva-NP"}, "mgy": {"value" : "mgy-Latn-TZ"}, "zag": {"value" : "zag-Latn-SD"}, "mhi": {"value" : "mhi-Latn-ZZ"}, "mhl": {"value" : "mhl-Latn-ZZ"}, "dww": {"value" : "dww-Latn-ZZ"}, "mif": {"value" : "mif-Latn-ZZ"}, "und-Mymr-IN": {"value" : "kht-Mymr-IN"}, "min": {"value" : "min-Latn-ID"}, "mis": {"value" : "mis-Hatr-IQ"}, "ian":
    {"value" : "ian-Latn-ZZ"}, "miw": {"value" : "miw-Latn-ZZ"}, "iar": {"value" : "iar-Latn-ZZ"}, "uz-Arab": {"value" : "uz-Arab-AF"}, "ibb": {"value" : "ibb-Latn-NG"}, "iba": {"value" : "iba-Latn-MY"}, "dyo": {"value" : "dyo-Latn-SN"}, "dyu": {"value" : "dyu-Latn-BF"}, "iby": {"value" : "iby-Latn-ZZ"}, "zdj": {"value" : "zdj-Arab-KM"}, "ica": {"value" : "ica-Latn-ZZ"}, "mki": {"value" : "mki-Arab-ZZ"}, "und-Wcho": {"value" : "nnp-Wcho-IN"}, "ich": {"value" : "ich-Latn-ZZ"}, "mkl": {"value" : "mkl-Latn-ZZ"}
    , "dzg": {"value" : "dzg-Latn-ZZ"}, "mkp": {"value" : "mkp-Latn-ZZ"}, "zea": {"value" : "zea-Latn-NL"}, "mkw": {"value" : "mkw-Latn-ZZ"}, "mle": {"value" : "mle-Latn-ZZ"}, "idd": {"value" : "idd-Latn-ZZ"}, "idi": {"value" : "idi-Latn-ZZ"}, "lif-Limb": {"value" : "lif-Limb-IN"}, "mlp": {"value" : "mlp-Latn-ZZ"}, "mls": {"value" : "mls-Latn-SD"}, "idu": {"value" : "idu-Latn-ZZ"}, "quc": {"value" : "quc-Latn-GT"}, "qug": {"value" : "qug-Latn-EC"}, "und-Jamo": {"value" : "ko-Jamo-KR"}, "mmo": {"value" : "mmo-Latn-ZZ"}
    , "mmu": {"value" : "mmu-Latn-ZZ"}, "mmx": {"value" : "mmx-Latn-ZZ"}, "zgh": {"value" : "zgh-Tfng-MA"}, "mna": {"value" : "mna-Latn-ZZ"}, "mnf": {"value" : "mnf-Latn-ZZ"}, "ife": {"value" : "ife-Latn-TG"}, "mni": {"value" : "mni-Beng-IN"}, "mnw": {"value" : "mnw-Mymr-MM"}, "moa": {"value" : "moa-Latn-ZZ"}, "moe": {"value" : "moe-Latn-CA"}, "igb": {"value" : "igb-Latn-ZZ"}, "ige": {"value" : "ige-Latn-ZZ"}, "moh": {"value" : "moh-Latn-CA"}, "und-Hebr-SE": {"value" : "yi-Hebr-SE"}, "zhx": {"value" : "zhx-Nshu-CN"}
    , "mos": {"value" : "mos-Latn-BF"}, "und-Shaw": {"value" : "en-Shaw-GB"}, "zia": {"value" : "zia-Latn-ZZ"}, "mox": {"value" : "mox-Latn-ZZ"}, "vag": {"value" : "vag-Latn-ZZ"}, "vai": {"value" : "vai-Vaii-LR"}, "van": {"value" : "van-Latn-ZZ"}, "mpp": {"value" : "mpp-Latn-ZZ"}, "mpt": {"value" : "mpt-Latn-ZZ"}, "mps": {"value" : "mps-Latn-ZZ"}, "mpx": {"value" : "mpx-Latn-ZZ"}, "und-Hebr-US": {"value" : "yi-Hebr-US"}, "hi-Latn": {"value" : "hi-Latn-IN"}, "mql": {"value" : "mql-Latn-ZZ"}, "und-Hebr-UA": {"value"
    : "yi-Hebr-UA"}, "mrd": {"value" : "mrd-Deva-NP"}, "zkt": {"value" : "zkt-Kits-CN"}, "mrj": {"value" : "mrj-Cyrl-RU"}, "ijj": {"value" : "ijj-Latn-ZZ"}, "mro": {"value" : "mro-Mroo-BD"}, "und-Modi": {"value" : "mr-Modi-IN"}, "ebu": {"value" : "ebu-Latn-KE"}, "zlm": {"value" : "zlm-Latn-TG"}, "arc-Palm": {"value" : "arc-Palm-SY"}, "ikk": {"value" : "ikk-Latn-ZZ"}, "ikt": {"value" : "ikt-Latn-CA"}, "ikw": {"value" : "ikw-Latn-ZZ"}, "vec": {"value" : "vec-Latn-IT"}, "ikx": {"value" : "ikx-Latn-ZZ"}, "zmi":
    {"value" : "zmi-Latn-MY"}, "mtc": {"value" : "mtc-Latn-ZZ"}, "mtf": {"value" : "mtf-Latn-ZZ"}, "vep": {"value" : "vep-Latn-RU"}, "zh-Bopo": {"value" : "zh-Bopo-TW"}, "mti": {"value" : "mti-Latn-ZZ"}, "und-Ethi": {"value" : "am-Ethi-ET"}, "mtr": {"value" : "mtr-Deva-IN"}, "und-Thai-LA": {"value" : "kdt-Thai-LA"}, "ilo": {"value" : "ilo-Latn-PH"}, "zne": {"value" : "zne-Latn-ZZ"}, "mua": {"value" : "mua-Latn-CM"}, "und-Thai-KH": {"value" : "kdt-Thai-KH"}, "imo": {"value" : "imo-Latn-ZZ"}, "mus": {"value" :
    "mus-Latn-US"}, "mur": {"value" : "mur-Latn-ZZ"}, "mva": {"value" : "mva-Latn-ZZ"}, "inh": {"value" : "inh-Cyrl-RU"}, "mvn": {"value" : "mvn-Latn-ZZ"}, "efi": {"value" : "efi-Latn-NG"}, "mvy": {"value" : "mvy-Arab-PK"}, "und-Java": {"value" : "jv-Java-ID"}, "mwk": {"value" : "mwk-Latn-ML"}, "mwr": {"value" : "mwr-Deva-IN"}, "und-021": {"value" : "en-Latn-US"}, "egl": {"value" : "egl-Latn-IT"}, "mww": {"value" : "mww-Hmnp-US"}, "mwv": {"value" : "mwv-Latn-ID"}, "iou": {"value" : "iou-Latn-ZZ"}, "und-029":
    {"value" : "es-Latn-CU"}, "vic": {"value" : "vic-Latn-SX"}, "egy": {"value" : "egy-Egyp-EG"}, "und-Ugar": {"value" : "uga-Ugar-SY"}, "mxc": {"value" : "mxc-Latn-ZW"}, "raj": {"value" : "raj-Deva-IN"}, "rai": {"value" : "rai-Latn-ZZ"}, "rao": {"value" : "rao-Latn-ZZ"}, "viv": {"value" : "viv-Latn-ZZ"}, "mxm": {"value" : "mxm-Latn-ZZ"}, "und-034": {"value" : "hi-Deva-IN"}, "und-030": {"value" : "zh-Hans-CN"}, "und-039": {"value" : "it-Latn-IT"}, "und-035": {"value" : "id-Latn-ID"}, "ug-Cyrl": {"value" : "ug-Cyrl-KZ"}
    , "myk": {"value" : "myk-Latn-ZZ"}, "mym": {"value" : "mym-Ethi-ZZ"}, "aai": {"value" : "aai-Latn-ZZ"}, "aak": {"value" : "aak-Latn-ZZ"}, "myw": {"value" : "myw-Latn-ZZ"}, "myv": {"value" : "myv-Cyrl-RU"}, "myx": {"value" : "myx-Latn-UG"}, "myz": {"value" : "myz-Mand-IR"}, "und-Sinh": {"value" : "si-Sinh-LK"}, "und-Sind": {"value" : "sd-Sind-IN"}, "aau": {"value" : "aau-Latn-ZZ"}, "rcf": {"value" : "rcf-Latn-RE"}, "und-Orkh": {"value" : "otk-Orkh-MN"}, "mzk": {"value" : "mzk-Latn-ZZ"}, "mzn": {"value" :
    "mzn-Arab-IR"}, "iri": {"value" : "iri-Latn-ZZ"}, "mzm": {"value" : "mzm-Latn-ZZ"}, "mzp": {"value" : "mzp-Latn-ZZ"}, "und-053": {"value" : "en-Latn-AU"}, "abi": {"value" : "abi-Latn-ZZ"}, "und-054": {"value" : "en-Latn-PG"}, "mzw": {"value" : "mzw-Latn-ZZ"}, "mzz": {"value" : "mzz-Latn-ZZ"}, "abr": {"value" : "abr-Latn-GH"}, "abq": {"value" : "abq-Cyrl-ZZ"}, "abt": {"value" : "abt-Latn-ZZ"}, "und-057": {"value" : "en-Latn-GU"}, "aby": {"value" : "aby-Latn-ZZ"}, "eka": {"value" : "eka-Latn-ZZ"}, "vls": {"value"
    : "vls-Latn-BE"}, "ace": {"value" : "ace-Latn-ID"}, "acd": {"value" : "acd-Latn-ZZ"}, "ach": {"value" : "ach-Latn-UG"}, "vmf": {"value" : "vmf-Latn-DE"}, "eky": {"value" : "eky-Kali-MM"}, "rej": {"value" : "rej-Latn-ID"}, "rel": {"value" : "rel-Latn-ZZ"}, "ada": {"value" : "ada-Latn-GH"}, "res": {"value" : "res-Latn-ZZ"}, "vmw": {"value" : "vmw-Latn-MZ"}, "ade": {"value" : "ade-Latn-ZZ"}, "adj": {"value" : "adj-Latn-ZZ"}, "und-Hira": {"value" : "ja-Hira-JP"}, "adp": {"value" : "adp-Tibt-BT"}, "adz": {"value"
    : "adz-Latn-ZZ"}, "ady": {"value" : "ady-Cyrl-RU"}, "ema": {"value" : "ema-Latn-ZZ"}, "und-Deva": {"value" : "hi-Deva-IN"}, "aeb": {"value" : "aeb-Arab-TN"}, "emi": {"value" : "emi-Latn-ZZ"}, "und-009": {"value" : "en-Latn-AU"}, "aey": {"value" : "aey-Latn-ZZ"}, "und-002": {"value" : "en-Latn-NG"}, "und-003": {"value" : "en-Latn-US"}, "und-005": {"value" : "pt-Latn-BR"}, "rgn": {"value" : "rgn-Latn-IT"}, "vot": {"value" : "vot-Latn-RU"}, "enn": {"value" : "enn-Latn-ZZ"}, "enq": {"value" : "enq-Latn-ZZ"}
    , "und-011": {"value" : "en-Latn-NG"}, "rhg": {"value" : "rhg-Arab-MM"}, "und-017": {"value" : "sw-Latn-CD"}, "und-018": {"value" : "en-Latn-ZA"}, "und-019": {"value" : "en-Latn-US"}, "und-013": {"value" : "es-Latn-MX"}, "und-014": {"value" : "sw-Latn-TZ"}, "und-015": {"value" : "ar-Arab-EG"}, "agc": {"value" : "agc-Latn-ZZ"}, "und-Zanb": {"value" : "cmg-Zanb-MN"}, "iwm": {"value" : "iwm-Latn-ZZ"}, "agd": {"value" : "agd-Latn-ZZ"}, "agg": {"value" : "agg-Latn-ZZ"}, "iws": {"value" : "iws-Latn-ZZ"}, "agm":
    {"value" : "agm-Latn-ZZ"}, "ago": {"value" : "ago-Latn-ZZ"}, "agq": {"value" : "agq-Latn-CM"}, "ria": {"value" : "ria-Latn-IN"}, "rif": {"value" : "rif-Tfng-MA"}, "nac": {"value" : "nac-Latn-ZZ"}, "naf": {"value" : "naf-Latn-ZZ"}, "nak": {"value" : "nak-Latn-ZZ"}, "nan": {"value" : "nan-Hans-CN"}, "aha": {"value" : "aha-Latn-ZZ"}, "nap": {"value" : "nap-Latn-IT"}, "naq": {"value" : "naq-Latn-NA"}, "zza": {"value" : "zza-Latn-TR"}, "nas": {"value" : "nas-Latn-ZZ"}, "ahl": {"value" : "ahl-Latn-ZZ"}, "en-Shaw":
    {"value" : "en-Shaw-GB"}, "und-Copt": {"value" : "cop-Copt-EG"}, "aho": {"value" : "aho-Ahom-IN"}, "vro": {"value" : "vro-Latn-EE"}, "rjs": {"value" : "rjs-Deva-NP"}, "nca": {"value" : "nca-Latn-ZZ"}, "ncf": {"value" : "ncf-Latn-ZZ"}, "nce": {"value" : "nce-Latn-ZZ"}, "nch": {"value" : "nch-Latn-MX"}, "izh": {"value" : "izh-Latn-RU"}, "izi": {"value" : "izi-Latn-ZZ"}, "rkt": {"value" : "rkt-Beng-BD"}, "nco": {"value" : "nco-Latn-ZZ"}, "eri": {"value" : "eri-Latn-ZZ"}, "ajg": {"value" : "ajg-Latn-ZZ"}, "ncu":
    {"value" : "ncu-Latn-ZZ"}, "ndc": {"value" : "ndc-Latn-MZ"}, "esg": {"value" : "esg-Gonm-IN"}, "nds": {"value" : "nds-Latn-DE"}, "akk": {"value" : "akk-Xsux-IQ"}, "esu": {"value" : "esu-Latn-US"}, "neb": {"value" : "neb-Latn-ZZ"}, "rmf": {"value" : "rmf-Latn-FI"}, "und-061": {"value" : "sm-Latn-WS"}, "und-Limb": {"value" : "lif-Limb-IN"}, "vun": {"value" : "vun-Latn-TZ"}, "ff-Adlm": {"value" : "ff-Adlm-GN"}, "vut": {"value" : "vut-Latn-ZZ"}, "rmo": {"value" : "rmo-Latn-CH"}, "ala": {"value" : "ala-Latn-ZZ"}
    , "rmt": {"value" : "rmt-Arab-IR"}, "rmu": {"value" : "rmu-Latn-SE"}, "ali": {"value" : "ali-Latn-ZZ"}, "nex": {"value" : "nex-Latn-ZZ"}, "new": {"value" : "new-Deva-NP"}, "aln": {"value" : "aln-Latn-XK"}, "etr": {"value" : "etr-Latn-ZZ"}, "und-Rohg": {"value" : "rhg-Rohg-MM"}, "ett": {"value" : "ett-Ital-IT"}, "rna": {"value" : "rna-Latn-ZZ"}, "etu": {"value" : "etu-Latn-ZZ"}, "alt": {"value" : "alt-Cyrl-RU"}, "etx": {"value" : "etx-Latn-ZZ"}, "rng": {"value" : "rng-Latn-MZ"}, "und-Linb": {"value" : "grc-Linb-GR"}
    , "und-Lina": {"value" : "lab-Lina-GR"}, "und-Jpan": {"value" : "ja-Jpan-JP"}, "man-GN": {"value" : "man-Nkoo-GN"}, "nfr": {"value" : "nfr-Latn-ZZ"}, "amm": {"value" : "amm-Latn-ZZ"}, "und-Arab": {"value" : "ar-Arab-EG"}, "amo": {"value" : "amo-Latn-NG"}, "amn": {"value" : "amn-Latn-ZZ"}, "rob": {"value" : "rob-Latn-ID"}, "amp": {"value" : "amp-Latn-ZZ"}, "ngb": {"value" : "ngb-Latn-ZZ"}, "rof": {"value" : "rof-Latn-TZ"}, "nga": {"value" : "nga-Latn-ZZ"}, "ngl": {"value" : "ngl-Latn-MZ"}, "roo": {"value"
    : "roo-Latn-ZZ"}, "anc": {"value" : "anc-Latn-ZZ"}, "ank": {"value" : "ank-Latn-ZZ"}, "ann": {"value" : "ann-Latn-ZZ"}, "und-Bhks": {"value" : "sa-Bhks-IN"}, "nhb": {"value" : "nhb-Latn-ZZ"}, "nhe": {"value" : "nhe-Latn-MX"}, "any": {"value" : "any-Latn-ZZ"}, "und-Orya": {"value" : "or-Orya-IN"}, "ewo": {"value" : "ewo-Latn-CM"}, "nhw": {"value" : "nhw-Latn-MX"}, "aoj": {"value" : "aoj-Latn-ZZ"}, "aom": {"value" : "aom-Latn-ZZ"}, "zh-Hanb": {"value" : "zh-Hanb-TW"}, "und-Kits": {"value" : "zkt-Kits-CN"}
    , "jab": {"value" : "jab-Latn-ZZ"}, "nif": {"value" : "nif-Latn-ZZ"}, "aoz": {"value" : "aoz-Latn-ID"}, "nij": {"value" : "nij-Latn-ID"}, "nii": {"value" : "nii-Latn-ZZ"}, "zh-PH": {"value" : "zh-Hant-PH"}, "nin": {"value" : "nin-Latn-ZZ"}, "zh-Hant": {"value" : "zh-Hant-TW"}, "zh-PF": {"value" : "zh-Hant-PF"}, "und-Ahom": {"value" : "aho-Ahom-IN"}, "apd": {"value" : "apd-Arab-TG"}, "apc": {"value" : "apc-Arab-ZZ"}, "ape": {"value" : "ape-Latn-ZZ"}, "jam": {"value" : "jam-Latn-JM"}, "zh-PA": {"value" : "zh-Hant-PA"}
    , "niu": {"value" : "niu-Latn-NU"}, "niz": {"value" : "niz-Latn-ZZ"}, "niy": {"value" : "niy-Latn-ZZ"}, "ext": {"value" : "ext-Latn-ES"}, "apr": {"value" : "apr-Latn-ZZ"}, "aps": {"value" : "aps-Latn-ZZ"}, "apz": {"value" : "apz-Latn-ZZ"}, "rro": {"value" : "rro-Latn-ZZ"}, "njo": {"value" : "njo-Latn-IN"}, "jbo": {"value" : "jbo-Latn-001"}, "jbu": {"value" : "jbu-Latn-ZZ"}, "zh-MO": {"value" : "zh-Hant-MO"}, "nkg": {"value" : "nkg-Latn-ZZ"}, "zh-MY": {"value" : "zh-Hant-MY"}, "arc": {"value" : "arc-Armi-IR"}
    , "nko": {"value" : "nko-Latn-ZZ"}, "arh": {"value" : "arh-Latn-ZZ"}, "pa-Arab": {"value" : "pa-Arab-PK"}, "und-Mtei": {"value" : "mni-Mtei-IN"}, "arn": {"value" : "arn-Latn-CL"}, "aro": {"value" : "aro-Latn-BO"}, "und-Cyrl-RO": {"value" : "bg-Cyrl-RO"}, "arq": {"value" : "arq-Arab-DZ"}, "ars": {"value" : "ars-Arab-SA"}, "arz": {"value" : "arz-Arab-EG"}, "ary": {"value" : "ary-Arab-MA"}, "rtm": {"value" : "rtm-Latn-FJ"}, "asa": {"value" : "asa-Latn-TZ"}, "und-Grek-TR": {"value" : "bgx-Grek-TR"}, "ase": {"value"
    : "ase-Sgnw-US"}, "asg": {"value" : "asg-Latn-ZZ"}, "aso": {"value" : "aso-Latn-ZZ"}, "ast": {"value" : "ast-Latn-ES"}, "rue": {"value" : "rue-Cyrl-UA"}, "rug": {"value" : "rug-Latn-SB"}, "nmg": {"value" : "nmg-Latn-CM"}, "ata": {"value" : "ata-Latn-ZZ"}, "jen": {"value" : "jen-Latn-ZZ"}, "atg": {"value" : "atg-Latn-ZZ"}, "atj": {"value" : "atj-Latn-CA"}, "nmz": {"value" : "nmz-Latn-ZZ"}, "unr-Deva": {"value" : "unr-Deva-NP"}, "nnf": {"value" : "nnf-Latn-ZZ"}, "nnh": {"value" : "nnh-Latn-CM"}, "nnk": {"value"
    : "nnk-Latn-ZZ"}, "nnm": {"value" : "nnm-Latn-ZZ"}, "nnp": {"value" : "nnp-Wcho-IN"}, "az-IR": {"value" : "az-Arab-IR"}, "und-Adlm": {"value" : "ff-Adlm-GN"}, "az-IQ": {"value" : "az-Arab-IQ"}, "und-Nbat": {"value" : "arc-Nbat-JO"}, "sd-Khoj": {"value" : "sd-Khoj-IN"}, "nod": {"value" : "nod-Lana-TH"}, "auy": {"value" : "auy-Latn-ZZ"}, "noe": {"value" : "noe-Deva-IN"}, "rwk": {"value" : "rwk-Latn-TZ"}, "und-Cyrl-MD": {"value" : "uk-Cyrl-MD"}, "rwo": {"value" : "rwo-Latn-ZZ"}, "non": {"value" : "non-Runr-SE"}
    , "nop": {"value" : "nop-Latn-ZZ"}, "jgk": {"value" : "jgk-Latn-ZZ"}, "jgo": {"value" : "jgo-Latn-CM"}, "und-Vaii": {"value" : "vai-Vaii-LR"}, "nou": {"value" : "nou-Latn-ZZ"}, "avl": {"value" : "avl-Arab-ZZ"}, "avn": {"value" : "avn-Latn-ZZ"}, "wae": {"value" : "wae-Latn-CH"}, "avt": {"value" : "avt-Latn-ZZ"}, "avu": {"value" : "avu-Latn-ZZ"}, "waj": {"value" : "waj-Latn-ZZ"}, "wal": {"value" : "wal-Ethi-ET"}, "wan": {"value" : "wan-Latn-ZZ"}, "zh-HK": {"value" : "zh-Hant-HK"}, "war": {"value" : "war-Latn-PH"}
    , "awa": {"value" : "awa-Deva-IN"}, "und-Plrd": {"value" : "hmd-Plrd-CN"}, "awb": {"value" : "awb-Latn-ZZ"}, "awo": {"value" : "awo-Latn-ZZ"}, "und-Knda": {"value" : "kn-Knda-IN"}, "zh-ID": {"value" : "zh-Hant-ID"}, "jib": {"value" : "jib-Latn-ZZ"}, "awx": {"value" : "awx-Latn-ZZ"}, "wbp": {"value" : "wbp-Latn-AU"}, "und-Sidd": {"value" : "sa-Sidd-IN"}, "fab": {"value" : "fab-Latn-ZZ"}, "wbr": {"value" : "wbr-Deva-IN"}, "faa": {"value" : "faa-Latn-ZZ"}, "wbq": {"value" : "wbq-Telu-IN"}, "und-Kali": {"value"
    : "eky-Kali-MM"}, "fag": {"value" : "fag-Latn-ZZ"}, "nqo": {"value" : "nqo-Nkoo-GN"}, "fai": {"value" : "fai-Latn-ZZ"}, "ryu": {"value" : "ryu-Kana-JP"}, "fan": {"value" : "fan-Latn-GQ"}, "wci": {"value" : "wci-Latn-ZZ"}, "nrb": {"value" : "nrb-Latn-ZZ"}, "und-Phlp": {"value" : "pal-Phlp-CN"}, "ayb": {"value" : "ayb-Latn-ZZ"}, "und-Phli": {"value" : "pal-Phli-IR"}, "cu-Glag": {"value" : "cu-Glag-BG"}, "und-Cyrl-XK": {"value" : "sr-Cyrl-XK"}, "az-Arab": {"value" : "az-Arab-IR"}, "ks-Deva": {"value" : "ks-Deva-IN"}
    , "und-Thai": {"value" : "th-Thai-TH"}, "nsk": {"value" : "nsk-Cans-CA"}, "nsn": {"value" : "nsn-Latn-ZZ"}, "nso": {"value" : "nso-Latn-ZA"}, "und-Thaa": {"value" : "dv-Thaa-MV"}, "und-Nshu": {"value" : "zhx-Nshu-CN"}, "nss": {"value" : "nss-Latn-ZZ"}, "zh-VN": {"value" : "zh-Hant-VN"}, "und-Hmnp": {"value" : "mww-Hmnp-US"}, "und-Kana": {"value" : "ja-Kana-JP"}, "und-Hmng": {"value" : "hnj-Hmng-LA"}, "wer": {"value" : "wer-Latn-ZZ"}, "zh-TW": {"value" : "zh-Hant-TW"}, "ntm": {"value" : "ntm-Latn-ZZ"}, "ntr":
    {"value" : "ntr-Latn-ZZ"}, "zh-US": {"value" : "zh-Hant-US"}, "und-Xpeo": {"value" : "peo-Xpeo-IR"}, "jmc": {"value" : "jmc-Latn-TZ"}, "nui": {"value" : "nui-Latn-ZZ"}, "jml": {"value" : "jml-Deva-NP"}, "nup": {"value" : "nup-Latn-ZZ"}, "und-Cyrl-SK": {"value" : "uk-Cyrl-SK"}, "nus": {"value" : "nus-Latn-SS"}, "nuv": {"value" : "nuv-Latn-ZZ"}, "nux": {"value" : "nux-Latn-ZZ"}, "zh-TH": {"value" : "zh-Hant-TH"}, "wgi": {"value" : "wgi-Latn-ZZ"}, "und-Phnx": {"value" : "phn-Phnx-LB"}, "und-Cyrl-TR": {"value"
    : "kbd-Cyrl-TR"}, "ffi": {"value" : "ffi-Latn-ZZ"}, "und-Elym": {"value" : "arc-Elym-IR"}, "ffm": {"value" : "ffm-Latn-ML"}, "und-Rjng": {"value" : "rej-Rjng-ID"}, "whg": {"value" : "whg-Latn-ZZ"}, "nwb": {"value" : "nwb-Latn-ZZ"}, "zh-SR": {"value" : "zh-Hant-SR"}, "wib": {"value" : "wib-Latn-ZZ"}, "und-Hebr": {"value" : "he-Hebr-IL"}, "saf": {"value" : "saf-Latn-GH"}, "sah": {"value" : "sah-Cyrl-RU"}, "saq": {"value" : "saq-Latn-KE"}, "wiu": {"value" : "wiu-Latn-ZZ"}, "sas": {"value" : "sas-Latn-ID"},
    "wiv": {"value" : "wiv-Latn-ZZ"}, "nxq": {"value" : "nxq-Latn-CN"}, "sat": {"value" : "sat-Olck-IN"}, "nxr": {"value" : "nxr-Latn-ZZ"}, "sav": {"value" : "sav-Latn-SN"}, "saz": {"value" : "saz-Saur-IN"}, "wja": {"value" : "wja-Latn-ZZ"}, "sba": {"value" : "sba-Latn-ZZ"}, "sbe": {"value" : "sbe-Latn-ZZ"}, "wji": {"value" : "wji-Latn-ZZ"}, "mn-Mong": {"value" : "mn-Mong-CN"}, "und-419": {"value" : "es-Latn-419"}, "fia": {"value" : "fia-Arab-SD"}, "sbp": {"value" : "sbp-Latn-TZ"}, "und-NO": {"value" : "nb-Latn-NO"}
    , "nyn": {"value" : "nyn-Latn-UG"}, "nym": {"value" : "nym-Latn-TZ"}, "und-NL": {"value" : "nl-Latn-NL"}, "und-NP": {"value" : "ne-Deva-NP"}, "fil": {"value" : "fil-Latn-PH"}, "bal": {"value" : "bal-Arab-PK"}, "ban": {"value" : "ban-Latn-ID"}, "bap": {"value" : "bap-Deva-NP"}, "fit": {"value" : "fit-Latn-SE"}, "bar": {"value" : "bar-Latn-AT"}, "bas": {"value" : "bas-Latn-CM"}, "bav": {"value" : "bav-Latn-ZZ"}, "bax": {"value" : "bax-Bamu-CM"}, "jra": {"value" : "jra-Latn-ZZ"}, "sck": {"value" : "sck-Deva-IN"}
    , "nzi": {"value" : "nzi-Latn-GH"}, "scl": {"value" : "scl-Arab-ZZ"}, "sco": {"value" : "sco-Latn-GB"}, "scn": {"value" : "scn-Latn-IT"}, "aa": {"value" : "aa-Latn-ET"}, "bba": {"value" : "bba-Latn-ZZ"}, "und-MN": {"value" : "mn-Cyrl-MN"}, "ab": {"value" : "ab-Cyrl-GE"}, "und-MM": {"value" : "my-Mymr-MM"}, "und-Osma": {"value" : "so-Osma-SO"}, "bbc": {"value" : "bbc-Latn-ID"}, "scs": {"value" : "scs-Latn-CA"}, "und-ML": {"value" : "bm-Latn-ML"}, "bbb": {"value" : "bbb-Latn-ZZ"}, "und-MK": {"value" : "mk-Cyrl-MK"}
    , "ae": {"value" : "ae-Avst-IR"}, "und-MR": {"value" : "ar-Arab-MR"}, "af": {"value" : "af-Latn-ZA"}, "bbd": {"value" : "bbd-Latn-ZZ"}, "und-MQ": {"value" : "fr-Latn-MQ"}, "und-Wara": {"value" : "hoc-Wara-IN"}, "und-MO": {"value" : "zh-Hant-MO"}, "und-MV": {"value" : "dv-Thaa-MV"}, "und-MU": {"value" : "mfe-Latn-MU"}, "ak": {"value" : "ak-Latn-GH"}, "und-MT": {"value" : "mt-Latn-MT"}, "bbj": {"value" : "bbj-Latn-CM"}, "am": {"value" : "am-Ethi-ET"}, "und-MZ": {"value" : "pt-Latn-MZ"}, "an": {"value" : "an-Latn-ES"}
    , "und-MY": {"value" : "ms-Latn-MY"}, "und-MX": {"value" : "es-Latn-MX"}, "ar": {"value" : "ar-Arab-EG"}, "bbp": {"value" : "bbp-Latn-ZZ"}, "as": {"value" : "as-Beng-IN"}, "bbr": {"value" : "bbr-Latn-ZZ"}, "sdc": {"value" : "sdc-Latn-IT"}, "und-NC": {"value" : "fr-Latn-NC"}, "av": {"value" : "av-Cyrl-RU"}, "sdh": {"value" : "sdh-Arab-IR"}, "und-NA": {"value" : "af-Latn-NA"}, "ay": {"value" : "ay-Latn-BO"}, "az": {"value" : "az-Latn-AZ"}, "und-NE": {"value" : "ha-Latn-NE"}, "und-NI": {"value" : "es-Latn-NI"}
    , "ba": {"value" : "ba-Cyrl-RU"}, "wls": {"value" : "wls-Latn-WF"}, "und-Kore": {"value" : "ko-Kore-KR"}, "und-LK": {"value" : "si-Sinh-LK"}, "be": {"value" : "be-Cyrl-BY"}, "bcf": {"value" : "bcf-Latn-ZZ"}, "bg": {"value" : "bg-Cyrl-BG"}, "bch": {"value" : "bch-Latn-ZZ"}, "bi": {"value" : "bi-Latn-VU"}, "und-LU": {"value" : "fr-Latn-LU"}, "bci": {"value" : "bci-Latn-CI"}, "und-LT": {"value" : "lt-Latn-LT"}, "und-LS": {"value" : "st-Latn-LS"}, "bm": {"value" : "bm-Latn-ML"}, "bcn": {"value" : "bcn-Latn-ZZ"}
    , "bn": {"value" : "bn-Beng-BD"}, "und-LY": {"value" : "ar-Arab-LY"}, "bcm": {"value" : "bcm-Latn-ZZ"}, "bo": {"value" : "bo-Tibt-CN"}, "bco": {"value" : "bco-Latn-ZZ"}, "und-LV": {"value" : "lv-Latn-LV"}, "br": {"value" : "br-Latn-FR"}, "bcq": {"value" : "bcq-Ethi-ZZ"}, "bs": {"value" : "bs-Latn-BA"}, "bcu": {"value" : "bcu-Latn-ZZ"}, "sef": {"value" : "sef-Latn-CI"}, "und-MA": {"value" : "ar-Arab-MA"}, "sei": {"value" : "sei-Latn-MX"}, "seh": {"value" : "seh-Latn-MZ"}, "und-MF": {"value" : "fr-Latn-MF"}
    , "wmo": {"value" : "wmo-Latn-ZZ"}, "und-ME": {"value" : "sr-Latn-ME"}, "und-MD": {"value" : "ro-Latn-MD"}, "und-MC": {"value" : "fr-Latn-MC"}, "ca": {"value" : "ca-Latn-ES"}, "und-MG": {"value" : "mg-Latn-MG"}, "ses": {"value" : "ses-Latn-ML"}, "ce": {"value" : "ce-Cyrl-RU"}, "und-Cyrl-BA": {"value" : "sr-Cyrl-BA"}, "bdd": {"value" : "bdd-Latn-ZZ"}, "und-KP": {"value" : "ko-Kore-KP"}, "ch": {"value" : "ch-Latn-GU"}, "und-KM": {"value" : "ar-Arab-KM"}, "und-KR": {"value" : "ko-Kore-KR"}, "co": {"value" :
    "co-Latn-FR"}, "flr": {"value" : "flr-Latn-ZZ"}, "und-KW": {"value" : "ar-Arab-KW"}, "wnc": {"value" : "wnc-Latn-ZZ"}, "und-Dogr": {"value" : "doi-Dogr-IN"}, "cr": {"value" : "cr-Cans-CA"}, "cs": {"value" : "cs-Latn-CZ"}, "cu": {"value" : "cu-Cyrl-RU"}, "und-KZ": {"value" : "ru-Cyrl-KZ"}, "cv": {"value" : "cv-Cyrl-RU"}, "wni": {"value" : "wni-Arab-KM"}, "und-LA": {"value" : "lo-Laoo-LA"}, "cy": {"value" : "cy-Latn-GB"}, "und-LB": {"value" : "ar-Arab-LB"}, "und-LI": {"value" : "de-Latn-LI"}, "da": {"value"
    : "da-Latn-DK"}, "und-Cyrl-AL": {"value" : "mk-Cyrl-AL"}, "wnu": {"value" : "wnu-Latn-ZZ"}, "de": {"value" : "de-Latn-DE"}, "bef": {"value" : "bef-Latn-ZZ"}, "beh": {"value" : "beh-Latn-ZZ"}, "und-JO": {"value" : "ar-Arab-JO"}, "bej": {"value" : "bej-Arab-SD"}, "fmp": {"value" : "fmp-Latn-ZZ"}, "jut": {"value" : "jut-Latn-DK"}, "bem": {"value" : "bem-Latn-ZM"}, "und-JP": {"value" : "ja-Jpan-JP"}, "wob": {"value" : "wob-Latn-ZZ"}, "sga": {"value" : "sga-Ogam-IE"}, "bet": {"value" : "bet-Latn-ZZ"}, "dv": {"value"
    : "dv-Thaa-MV"}, "bex": {"value" : "bex-Latn-ZZ"}, "bew": {"value" : "bew-Latn-ID"}, "bez": {"value" : "bez-Latn-TZ"}, "dz": {"value" : "dz-Tibt-BT"}, "ms-ID": {"value" : "ms-Latn-ID"}, "wos": {"value" : "wos-Latn-ZZ"}, "und-KH": {"value" : "km-Khmr-KH"}, "und-KG": {"value" : "ky-Cyrl-KG"}, "sgs": {"value" : "sgs-Latn-LT"}, "und-KE": {"value" : "sw-Latn-KE"}, "ee": {"value" : "ee-Latn-GH"}, "bfd": {"value" : "bfd-Latn-CM"}, "sgw": {"value" : "sgw-Ethi-ZZ"}, "und-IN": {"value" : "hi-Deva-IN"}, "und-IL": {"value"
    : "he-Hebr-IL"}, "el": {"value" : "el-Grek-GR"}, "sgz": {"value" : "sgz-Latn-ZZ"}, "und-IR": {"value" : "fa-Arab-IR"}, "en": {"value" : "en-Latn-US"}, "und-IQ": {"value" : "ar-Arab-IQ"}, "und-Perm": {"value" : "kv-Perm-RU"}, "eo": {"value" : "eo-Latn-001"}, "bfq": {"value" : "bfq-Taml-IN"}, "es": {"value" : "es-Latn-ES"}, "und-IT": {"value" : "it-Latn-IT"}, "et": {"value" : "et-Latn-EE"}, "und-IS": {"value" : "is-Latn-IS"}, "eu": {"value" : "eu-Latn-ES"}, "bft": {"value" : "bft-Arab-PK"}, "bfy": {"value"
    : "bfy-Deva-IN"}, "shi": {"value" : "shi-Tfng-MA"}, "shk": {"value" : "shk-Latn-ZZ"}, "shn": {"value" : "shn-Mymr-MM"}, "fod": {"value" : "fod-Latn-ZZ"}, "fa": {"value" : "fa-Arab-IR"}, "bgc": {"value" : "bgc-Deva-IN"}, "ff": {"value" : "ff-Latn-SN"}, "shu": {"value" : "shu-Arab-ZZ"}, "fi": {"value" : "fi-Latn-FI"}, "fj": {"value" : "fj-Latn-FJ"}, "fon": {"value" : "fon-Latn-BJ"}, "und-HM": {"value" : "und-Latn-HM"}, "und-HK": {"value" : "zh-Hant-HK"}, "bgn": {"value" : "bgn-Arab-PK"}, "for": {"value" :
    "for-Latn-ZZ"}, "fo": {"value" : "fo-Latn-FO"}, "und-HN": {"value" : "es-Latn-HN"}, "fr": {"value" : "fr-Latn-FR"}, "und-HU": {"value" : "hu-Latn-HU"}, "und-HT": {"value" : "ht-Latn-HT"}, "ku-Arab": {"value" : "ku-Arab-IQ"}, "sid": {"value" : "sid-Latn-ET"}, "und-HR": {"value" : "hr-Latn-HR"}, "sig": {"value" : "sig-Latn-ZZ"}, "bgx": {"value" : "bgx-Grek-TR"}, "fy": {"value" : "fy-Latn-NL"}, "sim": {"value" : "sim-Latn-ZZ"}, "sil": {"value" : "sil-Latn-ZZ"}, "fpe": {"value" : "fpe-Latn-ZZ"}, "ga": {"value"
    : "ga-Latn-IE"}, "bhb": {"value" : "bhb-Deva-IN"}, "gd": {"value" : "gd-Latn-GB"}, "und-ID": {"value" : "id-Latn-ID"}, "und-IC": {"value" : "es-Latn-IC"}, "bhg": {"value" : "bhg-Latn-ZZ"}, "und-GH": {"value" : "ak-Latn-GH"}, "bhi": {"value" : "bhi-Deva-IN"}, "und-GF": {"value" : "fr-Latn-GF"}, "und-GE": {"value" : "ka-Geor-GE"}, "und-GL": {"value" : "kl-Latn-GL"}, "gl": {"value" : "gl-Latn-ES"}, "bhl": {"value" : "bhl-Latn-ZZ"}, "gn": {"value" : "gn-Latn-PY"}, "bho": {"value" : "bho-Deva-IN"}, "und-GP":
    {"value" : "fr-Latn-GP"}, "und-GN": {"value" : "fr-Latn-GN"}, "und-GT": {"value" : "es-Latn-GT"}, "und-GS": {"value" : "und-Latn-GS"}, "gu": {"value" : "gu-Gujr-IN"}, "und-GR": {"value" : "el-Grek-GR"}, "gv": {"value" : "gv-Latn-IM"}, "und-GQ": {"value" : "es-Latn-GQ"}, "und-Palm": {"value" : "arc-Palm-SY"}, "und-GW": {"value" : "pt-Latn-GW"}, "bhy": {"value" : "bhy-Latn-ZZ"}, "ha": {"value" : "ha-Latn-NG"}, "wrs": {"value" : "wrs-Latn-ZZ"}, "bib": {"value" : "bib-Latn-ZZ"}, "sjr": {"value" : "sjr-Latn-ZZ"}
    , "he": {"value" : "he-Hebr-IL"}, "big": {"value" : "big-Latn-ZZ"}, "hi": {"value" : "hi-Deva-IN"}, "und-Cyrl-GE": {"value" : "ab-Cyrl-GE"}, "bik": {"value" : "bik-Latn-PH"}, "bin": {"value" : "bin-Latn-NG"}, "und-Cham": {"value" : "cjm-Cham-VN"}, "und-FI": {"value" : "fi-Latn-FI"}, "bim": {"value" : "bim-Latn-ZZ"}, "ho": {"value" : "ho-Latn-PG"}, "tg-PK": {"value" : "tg-Arab-PK"}, "und-FO": {"value" : "fo-Latn-FO"}, "bio": {"value" : "bio-Latn-ZZ"}, "fqs": {"value" : "fqs-Latn-ZZ"}, "hr": {"value" : "hr-Latn-HR"}
    , "skc": {"value" : "skc-Latn-ZZ"}, "wsg": {"value" : "wsg-Gong-IN"}, "biq": {"value" : "biq-Latn-ZZ"}, "ht": {"value" : "ht-Latn-HT"}, "hu": {"value" : "hu-Latn-HU"}, "und-FR": {"value" : "fr-Latn-FR"}, "wsk": {"value" : "wsk-Latn-ZZ"}, "hy": {"value" : "hy-Armn-AM"}, "hz": {"value" : "hz-Latn-NA"}, "frc": {"value" : "frc-Latn-US"}, "ia": {"value" : "ia-Latn-001"}, "sks": {"value" : "sks-Latn-ZZ"}, "id": {"value" : "id-Latn-ID"}, "skr": {"value" : "skr-Arab-PK"}, "ig": {"value" : "ig-Latn-NG"}, "und-GA":
    {"value" : "fr-Latn-GA"}, "bji": {"value" : "bji-Ethi-ZZ"}, "ii": {"value" : "ii-Yiii-CN"}, "bjh": {"value" : "bjh-Latn-ZZ"}, "und-EE": {"value" : "et-Latn-EE"}, "ik": {"value" : "ik-Latn-US"}, "bjj": {"value" : "bjj-Deva-IN"}, "und-EC": {"value" : "es-Latn-EC"}, "und-Cprt": {"value" : "grc-Cprt-CY"}, "frp": {"value" : "frp-Latn-FR"}, "in": {"value" : "in-Latn-ID"}, "bjo": {"value" : "bjo-Latn-ZZ"}, "frs": {"value" : "frs-Latn-DE"}, "io": {"value" : "io-Latn-001"}, "und-EH": {"value" : "ar-Arab-EH"}, "bjn":
    {"value" : "bjn-Latn-ID"}, "frr": {"value" : "frr-Latn-DE"}, "und-EG": {"value" : "ar-Arab-EG"}, "is": {"value" : "is-Latn-IS"}, "sld": {"value" : "sld-Latn-ZZ"}, "bjr": {"value" : "bjr-Latn-ZZ"}, "it": {"value" : "it-Latn-IT"}, "iu": {"value" : "iu-Cans-CA"}, "und-ER": {"value" : "ti-Ethi-ER"}, "bjt": {"value" : "bjt-Latn-SN"}, "iw": {"value" : "iw-Hebr-IL"}, "und-Tirh": {"value" : "mai-Tirh-IN"}, "sli": {"value" : "sli-Latn-PL"}, "und-EU": {"value" : "en-Latn-GB"}, "wtm": {"value" : "wtm-Deva-IN"}, "sll":
    {"value" : "sll-Latn-ZZ"}, "und-ET": {"value" : "am-Ethi-ET"}, "bjz": {"value" : "bjz-Latn-ZZ"}, "und-ES": {"value" : "es-Latn-ES"}, "und-EZ": {"value" : "de-Latn-EZ"}, "ja": {"value" : "ja-Jpan-JP"}, "zh-GF": {"value" : "zh-Hant-GF"}, "bkc": {"value" : "bkc-Latn-ZZ"}, "zh-GB": {"value" : "zh-Hant-GB"}, "und-Cyrl-GR": {"value" : "mk-Cyrl-GR"}, "ji": {"value" : "ji-Hebr-UA"}, "und-DE": {"value" : "de-Latn-DE"}, "sly": {"value" : "sly-Latn-ID"}, "bkm": {"value" : "bkm-Latn-CM"}, "sma": {"value" : "sma-Latn-SE"}
    , "bkq": {"value" : "bkq-Latn-ZZ"}, "und-DK": {"value" : "da-Latn-DK"}, "und-DJ": {"value" : "aa-Latn-DJ"}, "bkv": {"value" : "bkv-Latn-ZZ"}, "jv": {"value" : "jv-Latn-ID"}, "bku": {"value" : "bku-Latn-PH"}, "jw": {"value" : "jw-Latn-ID"}, "und-DO": {"value" : "es-Latn-DO"}, "smj": {"value" : "smj-Latn-SE"}, "smn": {"value" : "smn-Latn-FI"}, "ka": {"value" : "ka-Geor-GE"}, "smq": {"value" : "smq-Latn-ZZ"}, "wuu": {"value" : "wuu-Hans-CN"}, "smp": {"value" : "smp-Samr-IL"}, "sms": {"value" : "sms-Latn-FI"}
    , "wuv": {"value" : "wuv-Latn-ZZ"}, "und-DZ": {"value" : "ar-Arab-DZ"}, "kg": {"value" : "kg-Latn-CD"}, "und-EA": {"value" : "es-Latn-EA"}, "ki": {"value" : "ki-Latn-KE"}, "kj": {"value" : "kj-Latn-NA"}, "kk": {"value" : "kk-Cyrl-KZ"}, "man-Nkoo": {"value" : "man-Nkoo-GN"}, "und-CD": {"value" : "sw-Latn-CD"}, "kl": {"value" : "kl-Latn-GL"}, "und-Telu": {"value" : "te-Telu-IN"}, "km": {"value" : "km-Khmr-KH"}, "kn": {"value" : "kn-Knda-IN"}, "ko": {"value" : "ko-Kore-KR"}, "und-CH": {"value" : "de-Latn-CH"}
    , "und-CG": {"value" : "fr-Latn-CG"}, "und-CF": {"value" : "fr-Latn-CF"}, "kr": {"value" : "kr-Latn-ZZ"}, "ks": {"value" : "ks-Arab-IN"}, "und-CL": {"value" : "es-Latn-CL"}, "snc": {"value" : "snc-Latn-ZZ"}, "ku": {"value" : "ku-Latn-TR"}, "blt": {"value" : "blt-Tavt-VN"}, "kv": {"value" : "kv-Cyrl-RU"}, "und-CI": {"value" : "fr-Latn-CI"}, "kw": {"value" : "kw-Latn-GB"}, "und-CP": {"value" : "und-Latn-CP"}, "und-CO": {"value" : "es-Latn-CO"}, "ky": {"value" : "ky-Cyrl-KG"}, "und-CN": {"value" : "zh-Hans-CN"}
    , "und-CM": {"value" : "fr-Latn-CM"}, "snk": {"value" : "snk-Latn-ML"}, "fub": {"value" : "fub-Arab-CM"}, "und-CR": {"value" : "es-Latn-CR"}, "fud": {"value" : "fud-Latn-WF"}, "snp": {"value" : "snp-Latn-ZZ"}, "la": {"value" : "la-Latn-VA"}, "und-CW": {"value" : "pap-Latn-CW"}, "fuf": {"value" : "fuf-Latn-GN"}, "lb": {"value" : "lb-Latn-LU"}, "und-CV": {"value" : "pt-Latn-CV"}, "fue": {"value" : "fue-Latn-ZZ"}, "und-CU": {"value" : "es-Latn-CU"}, "fuh": {"value" : "fuh-Latn-ZZ"}, "und-CZ": {"value" : "cs-Latn-CZ"}
    , "lg": {"value" : "lg-Latn-UG"}, "und-CY": {"value" : "el-Grek-CY"}, "bmh": {"value" : "bmh-Latn-ZZ"}, "snx": {"value" : "snx-Latn-ZZ"}, "li": {"value" : "li-Latn-NL"}, "sny": {"value" : "sny-Latn-ZZ"}, "wwa": {"value" : "wwa-Latn-ZZ"}, "bmk": {"value" : "bmk-Latn-ZZ"}, "und-Cher": {"value" : "chr-Cher-US"}, "fur": {"value" : "fur-Latn-IT"}, "ln": {"value" : "ln-Latn-CD"}, "und-BA": {"value" : "bs-Latn-BA"}, "fuq": {"value" : "fuq-Latn-NE"}, "lo": {"value" : "lo-Laoo-LA"}, "und-BG": {"value" : "bg-Cyrl-BG"}
    , "und-BF": {"value" : "fr-Latn-BF"}, "fuv": {"value" : "fuv-Latn-NG"}, "und-BE": {"value" : "nl-Latn-BE"}, "bmq": {"value" : "bmq-Latn-ML"}, "und-BD": {"value" : "bn-Beng-BD"}, "lt": {"value" : "lt-Latn-LT"}, "lu": {"value" : "lu-Latn-CD"}, "und-BJ": {"value" : "fr-Latn-BJ"}, "lv": {"value" : "lv-Latn-LV"}, "ogc": {"value" : "ogc-Latn-ZZ"}, "sog": {"value" : "sog-Sogd-UZ"}, "und-BI": {"value" : "rn-Latn-BI"}, "bmu": {"value" : "bmu-Latn-ZZ"}, "fuy": {"value" : "fuy-Latn-ZZ"}, "und-BH": {"value" : "ar-Arab-BH"}
    , "und-BO": {"value" : "es-Latn-BO"}, "und-BN": {"value" : "ms-Latn-BN"}, "sok": {"value" : "sok-Latn-ZZ"}, "und-BL": {"value" : "fr-Latn-BL"}, "und-BR": {"value" : "pt-Latn-BR"}, "und-BQ": {"value" : "pap-Latn-BQ"}, "soq": {"value" : "soq-Latn-ZZ"}, "und-BV": {"value" : "und-Latn-BV"}, "und-BT": {"value" : "dz-Tibt-BT"}, "sou": {"value" : "sou-Thai-TH"}, "bng": {"value" : "bng-Latn-ZZ"}, "mg": {"value" : "mg-Latn-MG"}, "und-BY": {"value" : "be-Cyrl-BY"}, "und-Glag": {"value" : "cu-Glag-BG"}, "mh": {"value"
    : "mh-Latn-MH"}, "mi": {"value" : "mi-Latn-NZ"}, "soy": {"value" : "soy-Latn-ZZ"}, "mk": {"value" : "mk-Cyrl-MK"}, "ml": {"value" : "ml-Mlym-IN"}, "bnm": {"value" : "bnm-Latn-ZZ"}, "mn": {"value" : "mn-Cyrl-MN"}, "mo": {"value" : "mo-Latn-RO"}, "und-Prti": {"value" : "xpr-Prti-IR"}, "fvr": {"value" : "fvr-Latn-SD"}, "und-AF": {"value" : "fa-Arab-AF"}, "bnp": {"value" : "bnp-Latn-ZZ"}, "mr": {"value" : "mr-Deva-IN"}, "und-AE": {"value" : "ar-Arab-AE"}, "ms": {"value" : "ms-Latn-MY"}, "spd": {"value" : "spd-Latn-ZZ"}
    , "und-AD": {"value" : "ca-Latn-AD"}, "mt": {"value" : "mt-Latn-MT"}, "my": {"value" : "my-Mymr-MM"}, "zh-BN": {"value" : "zh-Hant-BN"}, "und-AM": {"value" : "hy-Armn-AM"}, "spl": {"value" : "spl-Latn-ZZ"}, "und-AL": {"value" : "sq-Latn-AL"}, "und-AR": {"value" : "es-Latn-AR"}, "und-AQ": {"value" : "und-Latn-AQ"}, "na": {"value" : "na-Latn-NR"}, "und-AO": {"value" : "pt-Latn-AO"}, "nb": {"value" : "nb-Latn-NO"}, "nd": {"value" : "nd-Latn-ZW"}, "und-AT": {"value" : "de-Latn-AT"}, "ne": {"value" : "ne-Deva-NP"}
    , "sps": {"value" : "sps-Latn-ZZ"}, "und-AS": {"value" : "sm-Latn-AS"}, "und-AZ": {"value" : "az-Latn-AZ"}, "ng": {"value" : "ng-Latn-NA"}, "und-AX": {"value" : "sv-Latn-AX"}, "und-AW": {"value" : "nl-Latn-AW"}, "boj": {"value" : "boj-Latn-ZZ"}, "nl": {"value" : "nl-Latn-NL"}, "bon": {"value" : "bon-Latn-ZZ"}, "nn": {"value" : "nn-Latn-NO"}, "bom": {"value" : "bom-Latn-ZZ"}, "no": {"value" : "no-Latn-NO"}, "nr": {"value" : "nr-Latn-ZA"}, "arc-Nbat": {"value" : "arc-Nbat-JO"}, "und-Medf": {"value" : "mis-Medf-NG"}
    , "nv": {"value" : "nv-Latn-US"}, "kaa": {"value" : "kaa-Cyrl-UZ"}, "ny": {"value" : "ny-Latn-MW"}, "kac": {"value" : "kac-Latn-MM"}, "kab": {"value" : "kab-Latn-DZ"}, "kad": {"value" : "kad-Latn-ZZ"}, "kai": {"value" : "kai-Latn-ZZ"}, "oc": {"value" : "oc-Latn-FR"}, "zh-AU": {"value" : "zh-Hant-AU"}, "kaj": {"value" : "kaj-Latn-NG"}, "kam": {"value" : "kam-Latn-KE"}, "und-Tagb": {"value" : "tbw-Tagb-PH"}, "kao": {"value" : "kao-Latn-ML"}, "und-Ogam": {"value" : "sga-Ogam-IE"}, "om": {"value" : "om-Latn-ET"}
    , "srb": {"value" : "srb-Sora-IN"}, "or": {"value" : "or-Orya-IN"}, "tg-Arab": {"value" : "tg-Arab-PK"}, "os": {"value" : "os-Cyrl-GE"}, "und-Sogd": {"value" : "sog-Sogd-UZ"}, "bpy": {"value" : "bpy-Beng-IN"}, "kbd": {"value" : "kbd-Cyrl-RU"}, "srn": {"value" : "srn-Latn-SR"}, "pa": {"value" : "pa-Guru-IN"}, "srr": {"value" : "srr-Latn-SN"}, "bqc": {"value" : "bqc-Latn-ZZ"}, "und-Kthi": {"value" : "bho-Kthi-IN"}, "kbm": {"value" : "kbm-Latn-ZZ"}, "kbp": {"value" : "kbp-Latn-ZZ"}, "srx": {"value" : "srx-Deva-IN"}
    , "bqi": {"value" : "bqi-Arab-IR"}, "kbq": {"value" : "kbq-Latn-ZZ"}, "pl": {"value" : "pl-Latn-PL"}, "bqp": {"value" : "bqp-Latn-ZZ"}, "kbx": {"value" : "kbx-Latn-ZZ"}, "kby": {"value" : "kby-Arab-NE"}, "ps": {"value" : "ps-Arab-AF"}, "pt": {"value" : "pt-Latn-BR"}, "ssd": {"value" : "ssd-Latn-ZZ"}, "und-Nkoo": {"value" : "man-Nkoo-GN"}, "bqv": {"value" : "bqv-Latn-CI"}, "ssg": {"value" : "ssg-Latn-ZZ"}, "und-Mymr": {"value" : "my-Mymr-MM"}, "kcg": {"value" : "kcg-Latn-NG"}, "bra": {"value" : "bra-Deva-IN"}
    , "kck": {"value" : "kck-Latn-ZW"}, "kcl": {"value" : "kcl-Latn-ZZ"}, "okr": {"value" : "okr-Latn-ZZ"}, "ssy": {"value" : "ssy-Latn-ER"}, "brh": {"value" : "brh-Arab-PK"}, "okv": {"value" : "okv-Latn-ZZ"}, "kct": {"value" : "kct-Latn-ZZ"}, "und-Hani": {"value" : "zh-Hani-CN"}, "und-Bugi": {"value" : "bug-Bugi-ID"}, "und-Hang": {"value" : "ko-Hang-KR"}, "qu": {"value" : "qu-Latn-PE"}, "brx": {"value" : "brx-Deva-IN"}, "und-Samr": {"value" : "smp-Samr-IL"}, "brz": {"value" : "brz-Latn-ZZ"}, "stk": {"value"
    : "stk-Latn-ZZ"}, "und-Hano": {"value" : "hnn-Hano-PH"}, "kde": {"value" : "kde-Latn-TZ"}, "kdh": {"value" : "kdh-Arab-TG"}, "stq": {"value" : "stq-Latn-DE"}, "kdl": {"value" : "kdl-Latn-ZZ"}, "bsj": {"value" : "bsj-Latn-ZZ"}, "und-Hanb": {"value" : "zh-Hanb-TW"}, "kdt": {"value" : "kdt-Thai-TH"}, "rm": {"value" : "rm-Latn-CH"}, "rn": {"value" : "rn-Latn-BI"}, "ro": {"value" : "ro-Latn-RO"}, "sua": {"value" : "sua-Latn-ZZ"}, "und-Deva-BT": {"value" : "ne-Deva-BT"}, "bsq": {"value" : "bsq-Bass-LR"}, "bst":
    {"value" : "bst-Ethi-ZZ"}, "sue": {"value" : "sue-Latn-ZZ"}, "bss": {"value" : "bss-Latn-CM"}, "ru": {"value" : "ru-Cyrl-RU"}, "und-Buhd": {"value" : "bku-Buhd-PH"}, "rw": {"value" : "rw-Latn-RW"}, "kea": {"value" : "kea-Latn-CV"}, "suk": {"value" : "suk-Latn-TZ"}, "grc-Linb": {"value" : "grc-Linb-GR"}, "sa": {"value" : "sa-Deva-IN"}, "sc": {"value" : "sc-Latn-IT"}, "sus": {"value" : "sus-Latn-GN"}, "sd": {"value" : "sd-Arab-PK"}, "sur": {"value" : "sur-Latn-ZZ"}, "se": {"value" : "se-Latn-NO"}, "sg": {"value"
    : "sg-Latn-CF"}, "ken": {"value" : "ken-Latn-CM"}, "si": {"value" : "si-Sinh-LK"}, "und-Hant": {"value" : "zh-Hant-TW"}, "und-Hans": {"value" : "zh-Hans-CN"}, "sk": {"value" : "sk-Latn-SK"}, "sl": {"value" : "sl-Latn-SI"}, "sm": {"value" : "sm-Latn-WS"}, "sn": {"value" : "sn-Latn-ZW"}, "bto": {"value" : "bto-Latn-PH"}, "so": {"value" : "so-Latn-SO"}, "sq": {"value" : "sq-Latn-AL"}, "sr": {"value" : "sr-Cyrl-RS"}, "ss": {"value" : "ss-Latn-ZA"}, "kez": {"value" : "kez-Latn-ZZ"}, "st": {"value" : "st-Latn-ZA"}
    , "su": {"value" : "su-Latn-ID"}, "btt": {"value" : "btt-Latn-ZZ"}, "sv": {"value" : "sv-Latn-SE"}, "sw": {"value" : "sw-Latn-TZ"}, "btv": {"value" : "btv-Deva-PK"}, "ong": {"value" : "ong-Latn-ZZ"}, "ta": {"value" : "ta-Taml-IN"}, "onn": {"value" : "onn-Latn-ZZ"}, "bua": {"value" : "bua-Cyrl-RU"}, "bud": {"value" : "bud-Latn-ZZ"}, "buc": {"value" : "buc-Latn-YT"}, "te": {"value" : "te-Telu-IN"}, "tg": {"value" : "tg-Cyrl-TJ"}, "th": {"value" : "th-Thai-TH"}, "und-Gong": {"value" : "wsg-Gong-IN"}, "bug":
    {"value" : "bug-Latn-ID"}, "kfo": {"value" : "kfo-Latn-CI"}, "ons": {"value" : "ons-Latn-ZZ"}, "ti": {"value" : "ti-Ethi-ET"}, "kfr": {"value" : "kfr-Deva-IN"}, "tk": {"value" : "tk-Latn-TM"}, "tl": {"value" : "tl-Latn-PH"}, "und-Lisu": {"value" : "lis-Lisu-CN"}, "buk": {"value" : "buk-Latn-ZZ"}, "tn": {"value" : "tn-Latn-ZA"}, "bum": {"value" : "bum-Latn-CM"}, "to": {"value" : "to-Latn-TO"}, "buo": {"value" : "buo-Latn-ZZ"}, "swc": {"value" : "swc-Latn-CD"}, "tr": {"value" : "tr-Latn-TR"}, "und-Gonm": {"value"
    : "esg-Gonm-IN"}, "kfy": {"value" : "kfy-Deva-IN"}, "swb": {"value" : "swb-Arab-YT"}, "ts": {"value" : "ts-Latn-ZA"}, "tt": {"value" : "tt-Cyrl-RU"}, "bus": {"value" : "bus-Latn-ZZ"}, "swg": {"value" : "swg-Latn-DE"}, "buu": {"value" : "buu-Latn-ZZ"}, "ty": {"value" : "ty-Latn-PF"}, "kge": {"value" : "kge-Latn-ID"}, "kgf": {"value" : "kgf-Latn-ZZ"}, "swp": {"value" : "swp-Latn-ZZ"}, "bvb": {"value" : "bvb-Latn-GQ"}, "ug": {"value" : "ug-Arab-CN"}, "swv": {"value" : "swv-Deva-IN"}, "kgp": {"value" : "kgp-Latn-BR"}
    , "uk": {"value" : "uk-Cyrl-UA"}, "ur": {"value" : "ur-Arab-PK"}, "kk-IR": {"value" : "kk-Arab-IR"}, "khb": {"value" : "khb-Talu-CN"}, "kha": {"value" : "kha-Latn-IN"}, "uz": {"value" : "uz-Latn-UZ"}, "sxn": {"value" : "sxn-Latn-ID"}, "xav": {"value" : "xav-Latn-BR"}, "opm": {"value" : "opm-Latn-ZZ"}, "bwd": {"value" : "bwd-Latn-ZZ"}, "und-Mlym": {"value" : "ml-Mlym-IN"}, "ve": {"value" : "ve-Latn-ZA"}, "khn": {"value" : "khn-Deva-IN"}, "sxw": {"value" : "sxw-Latn-ZZ"}, "vi": {"value" : "vi-Latn-VN"}, "khq":
    {"value" : "khq-Latn-ML"}, "kht": {"value" : "kht-Mymr-IN"}, "khs": {"value" : "khs-Latn-ZZ"}, "vo": {"value" : "vo-Latn-001"}, "khw": {"value" : "khw-Arab-PK"}, "bwr": {"value" : "bwr-Latn-ZZ"}, "khz": {"value" : "khz-Latn-ZZ"}, "und-ZW": {"value" : "sn-Latn-ZW"}, "xbi": {"value" : "xbi-Latn-ZZ"}, "gaa": {"value" : "gaa-Latn-GH"}, "syl": {"value" : "syl-Beng-BD"}, "wa": {"value" : "wa-Latn-BE"}, "gag": {"value" : "gag-Latn-MD"}, "gaf": {"value" : "gaf-Latn-ZZ"}, "kij": {"value" : "kij-Latn-ZZ"}, "syr":
    {"value" : "syr-Syrc-IQ"}, "und-YE": {"value" : "ar-Arab-YE"}, "gah": {"value" : "gah-Latn-ZZ"}, "gaj": {"value" : "gaj-Latn-ZZ"}, "gam": {"value" : "gam-Latn-ZZ"}, "bxh": {"value" : "bxh-Latn-ZZ"}, "gan": {"value" : "gan-Hans-CN"}, "kiu": {"value" : "kiu-Latn-TR"}, "kiw": {"value" : "kiw-Latn-ZZ"}, "wo": {"value" : "wo-Latn-SN"}, "gaw": {"value" : "gaw-Latn-ZZ"}, "und-Sarb": {"value" : "xsa-Sarb-YE"}, "gay": {"value" : "gay-Latn-ID"}, "und-YT": {"value" : "fr-Latn-YT"}, "kjd": {"value" : "kjd-Latn-ZZ"}
    , "szl": {"value" : "szl-Latn-PL"}, "xco": {"value" : "xco-Chrs-UZ"}, "xcr": {"value" : "xcr-Cari-TR"}, "gba": {"value" : "gba-Latn-ZZ"}, "und-Mult": {"value" : "skr-Mult-PK"}, "kjg": {"value" : "kjg-Laoo-LA"}, "gbf": {"value" : "gbf-Latn-ZZ"}, "oro": {"value" : "oro-Latn-ZZ"}, "und-Hatr": {"value" : "mis-Hatr-IQ"}, "bye": {"value" : "bye-Latn-ZZ"}, "xh": {"value" : "xh-Latn-ZA"}, "gbm": {"value" : "gbm-Deva-IN"}, "oru": {"value" : "oru-Arab-ZZ"}, "kjs": {"value" : "kjs-Latn-ZZ"}, "byn": {"value" : "byn-Ethi-ER"}
    , "und-XK": {"value" : "sq-Latn-XK"}, "yue-CN": {"value" : "yue-Hans-CN"}, "und-Lepc": {"value" : "lep-Lepc-IN"}, "byr": {"value" : "byr-Latn-ZZ"}, "kjy": {"value" : "kjy-Latn-ZZ"}, "osa": {"value" : "osa-Osge-US"}, "bys": {"value" : "bys-Latn-ZZ"}, "byv": {"value" : "byv-Latn-CM"}, "gbz": {"value" : "gbz-Arab-IR"}, "gby": {"value" : "gby-Latn-ZZ"}, "byx": {"value" : "byx-Latn-ZZ"}, "kkc": {"value" : "kkc-Latn-ZZ"}, "und-VU": {"value" : "bi-Latn-VU"}, "bza": {"value" : "bza-Latn-ZZ"}, "und-Goth": {"value"
    : "got-Goth-UA"}, "kkj": {"value" : "kkj-Latn-CM"}, "bze": {"value" : "bze-Latn-ML"}, "und-Avst": {"value" : "ae-Avst-IR"}, "bzf": {"value" : "bzf-Latn-ZZ"}, "yi": {"value" : "yi-Hebr-001"}, "bzh": {"value" : "bzh-Latn-ZZ"}, "und-WF": {"value" : "fr-Latn-WF"}, "yo": {"value" : "yo-Latn-NG"}, "gcr": {"value" : "gcr-Latn-GF"}, "ota": {"value" : "ota-Arab-ZZ"}, "und-WS": {"value" : "sm-Latn-WS"}, "bzw": {"value" : "bzw-Latn-ZZ"}, "und-UZ": {"value" : "uz-Latn-UZ"}, "und-UY": {"value" : "es-Latn-UY"}, "otk":
    {"value" : "otk-Orkh-MN"}, "xes": {"value" : "xes-Latn-ZZ"}, "za": {"value" : "za-Latn-CN"}, "gde": {"value" : "gde-Latn-ZZ"}, "kln": {"value" : "kln-Latn-KE"}, "und-VA": {"value" : "it-Latn-VA"}, "zh": {"value" : "zh-Hans-CN"}, "gdn": {"value" : "gdn-Latn-ZZ"}, "klq": {"value" : "klq-Latn-ZZ"}, "und-Saur": {"value" : "saz-Saur-IN"}, "klt": {"value" : "klt-Latn-ZZ"}, "und-VE": {"value" : "es-Latn-VE"}, "gdr": {"value" : "gdr-Latn-ZZ"}, "klx": {"value" : "klx-Latn-ZZ"}, "und-VN": {"value" : "vi-Latn-VN"}
    , "kk-MN": {"value" : "kk-Arab-MN"}, "zu": {"value" : "zu-Latn-ZA"}, "und-Armn": {"value" : "hy-Armn-AM"}, "kmb": {"value" : "kmb-Latn-AO"}, "und-TR": {"value" : "tr-Latn-TR"}, "geb": {"value" : "geb-Latn-ZZ"}, "und-TW": {"value" : "zh-Hant-TW"}, "kmh": {"value" : "kmh-Latn-ZZ"}, "und-TV": {"value" : "tvl-Latn-TV"}, "und-TZ": {"value" : "sw-Latn-TZ"}, "kmo": {"value" : "kmo-Latn-ZZ"}, "gej": {"value" : "gej-Latn-ZZ"}, "und-UA": {"value" : "uk-Cyrl-UA"}, "gel": {"value" : "gel-Latn-ZZ"}, "kms": {"value" :
    "kms-Latn-ZZ"}, "kmu": {"value" : "kmu-Latn-ZZ"}, "kmw": {"value" : "kmw-Latn-ZZ"}, "und-Tibt": {"value" : "bo-Tibt-CN"}, "und-UG": {"value" : "sw-Latn-UG"}, "und-Armi": {"value" : "arc-Armi-IR"}, "gez": {"value" : "gez-Ethi-ET"}, "und-ST": {"value" : "pt-Latn-ST"}, "knf": {"value" : "knf-Latn-GW"}, "und-SR": {"value" : "nl-Latn-SR"}, "und-SV": {"value" : "es-Latn-SV"}, "und-SY": {"value" : "ar-Arab-SY"}, "knp": {"value" : "knp-Latn-ZZ"}, "gfk": {"value" : "gfk-Latn-ZZ"}, "und-TD": {"value" : "fr-Latn-TD"}
    , "und-TH": {"value" : "th-Thai-TH"}, "und-TG": {"value" : "fr-Latn-TG"}, "und-TF": {"value" : "fr-Latn-TF"}, "und-TM": {"value" : "tk-Latn-TM"}, "und-TL": {"value" : "pt-Latn-TL"}, "und-TK": {"value" : "tkl-Latn-TK"}, "und-TJ": {"value" : "tg-Cyrl-TJ"}, "und-TO": {"value" : "to-Latn-TO"}, "und-TN": {"value" : "ar-Arab-TN"}, "und-RS": {"value" : "sr-Cyrl-RS"}, "koi": {"value" : "koi-Cyrl-RU"}, "und-RW": {"value" : "rw-Latn-RW"}, "kok": {"value" : "kok-Deva-IN"}, "und-RU": {"value" : "ru-Cyrl-RU"}, "kol":
    {"value" : "kol-Latn-ZZ"}, "kos": {"value" : "kos-Latn-FM"}, "ggn": {"value" : "ggn-Deva-NP"}, "und-SD": {"value" : "ar-Arab-SD"}, "und-SC": {"value" : "fr-Latn-SC"}, "und-SA": {"value" : "ar-Arab-SA"}, "koz": {"value" : "koz-Latn-ZZ"}, "und-SE": {"value" : "sv-Latn-SE"}, "und-SK": {"value" : "sk-Latn-SK"}, "und-SJ": {"value" : "nb-Latn-SJ"}, "und-SI": {"value" : "sl-Latn-SI"}, "taj": {"value" : "taj-Deva-NP"}, "und-SO": {"value" : "so-Latn-SO"}, "tal": {"value" : "tal-Latn-ZZ"}, "und-SN": {"value" : "fr-Latn-SN"}
    , "und-Osge": {"value" : "osa-Osge-US"}, "und-SM": {"value" : "it-Latn-SM"}, "kpf": {"value" : "kpf-Latn-ZZ"}, "tan": {"value" : "tan-Latn-ZZ"}, "kpe": {"value" : "kpe-Latn-LR"}, "und-QO": {"value" : "en-Latn-DG"}, "taq": {"value" : "taq-Latn-ZZ"}, "kpo": {"value" : "kpo-Latn-ZZ"}, "kpr": {"value" : "kpr-Latn-ZZ"}, "kpx": {"value" : "kpx-Latn-ZZ"}, "ghs": {"value" : "ghs-Latn-ZZ"}, "und-Lana": {"value" : "nod-Lana-TH"}, "tbc": {"value" : "tbc-Latn-ZZ"}, "und-RE": {"value" : "fr-Latn-RE"}, "tbd": {"value"
    : "tbd-Latn-ZZ"}, "tbg": {"value" : "tbg-Latn-ZZ"}, "tbf": {"value" : "tbf-Latn-ZZ"}, "und-RO": {"value" : "ro-Latn-RO"}, "kqb": {"value" : "kqb-Latn-ZZ"}, "tbo": {"value" : "tbo-Latn-ZZ"}, "kqf": {"value" : "kqf-Latn-ZZ"}, "und-PT": {"value" : "pt-Latn-PT"}, "und-PS": {"value" : "ar-Arab-PS"}, "cad": {"value" : "cad-Latn-US"}, "und-PR": {"value" : "es-Latn-PR"}, "tbw": {"value" : "tbw-Latn-PH"}, "und-PY": {"value" : "gn-Latn-PY"}, "gim": {"value" : "gim-Latn-ZZ"}, "und-PW": {"value" : "pau-Latn-PW"}, "gil":
    {"value" : "gil-Latn-KI"}, "kqs": {"value" : "kqs-Latn-ZZ"}, "tbz": {"value" : "tbz-Latn-ZZ"}, "und-Laoo": {"value" : "lo-Laoo-LA"}, "can": {"value" : "can-Latn-ZZ"}, "und-QA": {"value" : "ar-Arab-QA"}, "kqy": {"value" : "kqy-Ethi-ZZ"}, "ms-CC": {"value" : "ms-Arab-CC"}, "tci": {"value" : "tci-Latn-ZZ"}, "krc": {"value" : "krc-Cyrl-RU"}, "krj": {"value" : "krj-Latn-PH"}, "kri": {"value" : "kri-Latn-SL"}, "ozm": {"value" : "ozm-Latn-ZZ"}, "und-OM": {"value" : "ar-Arab-OM"}, "krl": {"value" : "krl-Latn-RU"}
    , "gjk": {"value" : "gjk-Arab-PK"}, "cbj": {"value" : "cbj-Latn-ZZ"}, "gjn": {"value" : "gjn-Latn-ZZ"}, "tcy": {"value" : "tcy-Knda-IN"}, "xla": {"value" : "xla-Latn-ZZ"}, "krs": {"value" : "krs-Latn-ZZ"}, "xlc": {"value" : "xlc-Lyci-TR"}, "kru": {"value" : "kru-Deva-IN"}, "und-PA": {"value" : "es-Latn-PA"}, "xld": {"value" : "xld-Lydi-TR"}, "gju": {"value" : "gju-Arab-PK"}, "und-PE": {"value" : "es-Latn-PE"}, "tdd": {"value" : "tdd-Tale-CN"}, "tdg": {"value" : "tdg-Deva-NP"}, "tdh": {"value" : "tdh-Deva-NP"}
    , "und-PH": {"value" : "fil-Latn-PH"}, "und-PG": {"value" : "tpi-Latn-PG"}, "ksb": {"value" : "ksb-Latn-TZ"}, "und-PF": {"value" : "fr-Latn-PF"}, "und-PM": {"value" : "fr-Latn-PM"}, "ksd": {"value" : "ksd-Latn-ZZ"}, "und-PL": {"value" : "pl-Latn-PL"}, "und-PK": {"value" : "ur-Arab-PK"}, "ksf": {"value" : "ksf-Latn-CM"}};
},
otciu_CLDRHelper_getErasMap$$create = () => {
    return {"root": [{"value" : "BCE"}, {"value" : "CE"}], "en": [{"value" : "BC"}, {"value" : "AD"}]};
},
otciu_CLDRHelper_getAmPmMap$$create = () => {
    return {"root": [{"value" : "AM"}, {"value" : "PM"}], "en": [{"value" : "AM"}, {"value" : "PM"}]};
},
otciu_CLDRHelper_getMonthMap$$create = () => {
    return {"root": [{"value" : "M01"}, {"value" : "M02"}, {"value" : "M03"}, {"value" : "M04"}, {"value" : "M05"}, {"value" : "M06"}, {"value" : "M07"}, {"value" : "M08"}, {"value" : "M09"}, {"value" : "M10"}, {"value" : "M11"}, {"value" : "M12"}], "en": [{"value" : "January"}, {"value" : "February"}, {"value" : "March"}, {"value" : "April"}, {"value" : "May"}, {"value" : "June"}, {"value" : "July"}, {"value" : "August"}, {"value" : "September"}, {"value" : "October"}, {"value" : "November"}, {"value" : "December"}
    ]};
},
otciu_CLDRHelper_getShortMonthMap$$create = () => {
    return {"root": [{"value" : "M01"}, {"value" : "M02"}, {"value" : "M03"}, {"value" : "M04"}, {"value" : "M05"}, {"value" : "M06"}, {"value" : "M07"}, {"value" : "M08"}, {"value" : "M09"}, {"value" : "M10"}, {"value" : "M11"}, {"value" : "M12"}], "en": [{"value" : "Jan"}, {"value" : "Feb"}, {"value" : "Mar"}, {"value" : "Apr"}, {"value" : "May"}, {"value" : "Jun"}, {"value" : "Jul"}, {"value" : "Aug"}, {"value" : "Sep"}, {"value" : "Oct"}, {"value" : "Nov"}, {"value" : "Dec"}]};
},
otciu_CLDRHelper_getWeekdayMap$$create = () => {
    return {"root": [{"value" : "Sun"}, {"value" : "Mon"}, {"value" : "Tue"}, {"value" : "Wed"}, {"value" : "Thu"}, {"value" : "Fri"}, {"value" : "Sat"}], "en": [{"value" : "Sunday"}, {"value" : "Monday"}, {"value" : "Tuesday"}, {"value" : "Wednesday"}, {"value" : "Thursday"}, {"value" : "Friday"}, {"value" : "Saturday"}]};
},
otciu_CLDRHelper_getShortWeekdayMap$$create = () => {
    return {"root": [{"value" : "Sun"}, {"value" : "Mon"}, {"value" : "Tue"}, {"value" : "Wed"}, {"value" : "Thu"}, {"value" : "Fri"}, {"value" : "Sat"}], "en": [{"value" : "Sun"}, {"value" : "Mon"}, {"value" : "Tue"}, {"value" : "Wed"}, {"value" : "Thu"}, {"value" : "Fri"}, {"value" : "Sat"}]};
},
otciu_CLDRHelper_getTimeZoneLocalizationMap$$create = () => {
    return {"root": {"timeZones" : {"Asia": {"Gaza": {"value" : "Gaza"}, "Makassar": {"value" : "Makassar"}, "Ulaanbaatar": {"value" : "Ulaanbaatar"}, "Vladivostok": {"value" : "Vladivostok"}, "Tashkent": {"value" : "Tashkent"}, "Beirut": {"value" : "Beirut"}, "Qyzylorda": {"value" : "Qyzylorda"}, "Hong_Kong": {"value" : "Hong Kong"}, "Phnom_Penh": {"value" : "Phnom Penh"}, "Kabul": {"value" : "Kabul"}, "Riyadh": {"value" : "Riyadh"}, "Ashgabat": {"value" : "Ashgabat"}, "Chita": {"value" : "Chita"}, "Aqtau":
    {"value" : "Aqtau"}, "Tokyo": {"value" : "Tokyo"}, "Baku": {"value" : "Baku"}, "Aqtobe": {"value" : "Aqtobe"}, "Novosibirsk": {"value" : "Novosibirsk"}, "Kamchatka": {"value" : "Kamchatka"}, "Nicosia": {"value" : "Nicosia"}, "Pontianak": {"value" : "Pontianak"}, "Qostanay": {"value" : "Qostanay"}, "Barnaul": {"value" : "Barnaul"}, "Jerusalem": {"value" : "Jerusalem"}, "Kuala_Lumpur": {"value" : "Kuala Lumpur"}, "Novokuznetsk": {"value" : "Novokuznetsk"}, "Bahrain": {"value" : "Bahrain"}, "Kuching": {"value"
    : "Kuching"}, "Bangkok": {"value" : "Bangkok"}, "Srednekolymsk": {"value" : "Srednekolymsk"}, "Karachi": {"value" : "Karachi"}, "Aden": {"value" : "Aden"}, "Irkutsk": {"value" : "Irkutsk"}, "Hovd": {"value" : "Hovd"}, "Katmandu": {"value" : "Kathmandu"}, "Baghdad": {"value" : "Baghdad"}, "Samarkand": {"value" : "Samarkand"}, "Thimphu": {"value" : "Thimphu"}, "Dhaka": {"value" : "Dhaka"}, "Yerevan": {"value" : "Yerevan"}, "Muscat": {"value" : "Muscat"}, "Saigon": {"value" : "Ho Chi Minh"}, "Dili": {"value"
    : "Dili"}, "Singapore": {"value" : "Singapore"}, "Rangoon": {"value" : "Yangon"}, "Damascus": {"value" : "Damascus"}, "Taipei": {"value" : "Taipei"}, "Amman": {"value" : "Amman"}, "Choibalsan": {"value" : "Choibalsan"}, "Macau": {"value" : "Macao"}, "Jayapura": {"value" : "Jayapura"}, "Manila": {"value" : "Manila"}, "Oral": {"value" : "Oral"}, "Dubai": {"value" : "Dubai"}, "Yakutsk": {"value" : "Yakutsk"}, "Seoul": {"value" : "Seoul"}, "Hebron": {"value" : "Hebron"}, "Qatar": {"value" : "Qatar"}, "Bishkek":
    {"value" : "Bishkek"}, "Tomsk": {"value" : "Tomsk"}, "Colombo": {"value" : "Colombo"}, "Khandyga": {"value" : "Khandyga"}, "Yekaterinburg": {"value" : "Yekaterinburg"}, "Dushanbe": {"value" : "Dushanbe"}, "Famagusta": {"value" : "Famagusta"}, "Kuwait": {"value" : "Kuwait"}, "Magadan": {"value" : "Magadan"}, "Pyongyang": {"value" : "Pyongyang"}, "Tehran": {"value" : "Tehran"}, "Sakhalin": {"value" : "Sakhalin"}, "Calcutta": {"value" : "Kolkata"}, "Urumqi": {"value" : "Urumqi"}, "Shanghai": {"value" : "Shanghai"}
    , "Atyrau": {"value" : "Atyrau"}, "Almaty": {"value" : "Almaty"}, "Tbilisi": {"value" : "Tbilisi"}, "Anadyr": {"value" : "Anadyr"}, "Brunei": {"value" : "Brunei"}, "Krasnoyarsk": {"value" : "Krasnoyarsk"}, "Vientiane": {"value" : "Vientiane"}, "Omsk": {"value" : "Omsk"}, "Jakarta": {"value" : "Jakarta"}, "Ust-Nera": {"value" : "Ust-Nera"}}, "Pacific": {"Easter": {"value" : "Easter"}, "Fiji": {"value" : "Fiji"}, "Port_Moresby": {"value" : "Port Moresby"}, "Kiritimati": {"value" : "Kiritimati"}, "Kosrae":
    {"value" : "Kosrae"}, "Kwajalein": {"value" : "Kwajalein"}, "Auckland": {"value" : "Auckland"}, "Efate": {"value" : "Efate"}, "Johnston": {"value" : "Johnston"}, "Niue": {"value" : "Niue"}, "Majuro": {"value" : "Majuro"}, "Truk": {"value" : "Chuuk"}, "Ponape": {"value" : "Pohnpei"}, "Guadalcanal": {"value" : "Guadalcanal"}, "Guam": {"value" : "Guam"}, "Chatham": {"value" : "Chatham"}, "Midway": {"value" : "Midway"}, "Tahiti": {"value" : "Tahiti"}, "Pago_Pago": {"value" : "Pago Pago"}, "Galapagos": {"value"
    : "Galapagos"}, "Funafuti": {"value" : "Funafuti"}, "Marquesas": {"value" : "Marquesas"}, "Rarotonga": {"value" : "Rarotonga"}, "Tarawa": {"value" : "Tarawa"}, "Saipan": {"value" : "Saipan"}, "Gambier": {"value" : "Gambier"}, "Tongatapu": {"value" : "Tongatapu"}, "Wallis": {"value" : "Wallis"}, "Fakaofo": {"value" : "Fakaofo"}, "Wake": {"value" : "Wake"}, "Enderbury": {"value" : "Enderbury"}, "Pitcairn": {"value" : "Pitcairn"}, "Apia": {"value" : "Apia"}, "Noumea": {"value" : "Noumea"}, "Palau": {"value"
    : "Palau"}, "Nauru": {"value" : "Nauru"}, "Bougainville": {"value" : "Bougainville"}, "Norfolk": {"value" : "Norfolk"}}, "Etc": {"Unknown": {"value" : "Unknown"}}, "Europe": {"Belgrade": {"value" : "Belgrade"}, "Saratov": {"value" : "Saratov"}, "Gibraltar": {"value" : "Gibraltar"}, "Bucharest": {"value" : "Bucharest"}, "Dublin": {"value" : "Dublin"}, "Zaporozhye": {"value" : "Zaporozhye"}, "Kiev": {"value" : "Kiev"}, "Zurich": {"value" : "Zurich"}, "Copenhagen": {"value" : "Copenhagen"}, "Rome": {"value"
    : "Rome"}, "Zagreb": {"value" : "Zagreb"}, "Monaco": {"value" : "Monaco"}, "Luxembourg": {"value" : "Luxembourg"}, "Jersey": {"value" : "Jersey"}, "Istanbul": {"value" : "Istanbul"}, "Ulyanovsk": {"value" : "Ulyanovsk"}, "Samara": {"value" : "Samara"}, "Sarajevo": {"value" : "Sarajevo"}, "Chisinau": {"value" : "Chisinau"}, "Vatican": {"value" : "Vatican"}, "Brussels": {"value" : "Brussels"}, "Oslo": {"value" : "Oslo"}, "Warsaw": {"value" : "Warsaw"}, "Berlin": {"value" : "Berlin"}, "Lisbon": {"value" : "Lisbon"}
    , "Athens": {"value" : "Athens"}, "Podgorica": {"value" : "Podgorica"}, "San_Marino": {"value" : "San Marino"}, "Simferopol": {"value" : "Simferopol"}, "Bratislava": {"value" : "Bratislava"}, "Stockholm": {"value" : "Stockholm"}, "Prague": {"value" : "Prague"}, "Uzhgorod": {"value" : "Uzhgorod"}, "Astrakhan": {"value" : "Astrakhan"}, "Budapest": {"value" : "Budapest"}, "Madrid": {"value" : "Madrid"}, "Vaduz": {"value" : "Vaduz"}, "London": {"value" : "London"}, "Vilnius": {"value" : "Vilnius"}, "Isle_of_Man":
    {"value" : "Isle of Man"}, "Sofia": {"value" : "Sofia"}, "Kirov": {"value" : "Kirov"}, "Tallinn": {"value" : "Tallinn"}, "Moscow": {"value" : "Moscow"}, "Malta": {"value" : "Malta"}, "Busingen": {"value" : "Busingen"}, "Amsterdam": {"value" : "Amsterdam"}, "Andorra": {"value" : "Andorra"}, "Riga": {"value" : "Riga"}, "Vienna": {"value" : "Vienna"}, "Helsinki": {"value" : "Helsinki"}, "Minsk": {"value" : "Minsk"}, "Kaliningrad": {"value" : "Kaliningrad"}, "Ljubljana": {"value" : "Ljubljana"}, "Mariehamn":
    {"value" : "Mariehamn"}, "Skopje": {"value" : "Skopje"}, "Tirane": {"value" : "Tirane"}, "Guernsey": {"value" : "Guernsey"}, "Volgograd": {"value" : "Volgograd"}, "Paris": {"value" : "Paris"}}, "America": {"Belem": {"value" : "Belem"}, "Guayaquil": {"value" : "Guayaquil"}, "Costa_Rica": {"value" : "Costa Rica"}, "Hermosillo": {"value" : "Hermosillo"}, "Punta_Arenas": {"value" : "Punta Arenas"}, "Iqaluit": {"value" : "Iqaluit"}, "Godthab": {"value" : "Nuuk"}, "Jujuy": {"value" : "Jujuy"}, "El_Salvador": {"value"
    : "El Salvador"}, "Monterrey": {"value" : "Monterrey"}, "Bahia": {"value" : "Bahia"}, "Sao_Paulo": {"value" : "Sao Paulo"}, "Grenada": {"value" : "Grenada"}, "Grand_Turk": {"value" : "Grand Turk"}, "Montserrat": {"value" : "Montserrat"}, "Guadeloupe": {"value" : "Guadeloupe"}, "Panama": {"value" : "Panama"}, "Guatemala": {"value" : "Guatemala"}, "Guyana": {"value" : "Guyana"}, "Swift_Current": {"value" : "Swift Current"}, "Puerto_Rico": {"value" : "Puerto Rico"}, "Moncton": {"value" : "Moncton"}, "Danmarkshavn":
    {"value" : "Danmarkshavn"}, "Nome": {"value" : "Nome"}, "Porto_Velho": {"value" : "Porto Velho"}, "Cuiaba": {"value" : "Cuiaba"}, "Pangnirtung": {"value" : "Pangnirtung"}, "Kralendijk": {"value" : "Kralendijk"}, "Belize": {"value" : "Belize"}, "Anguilla": {"value" : "Anguilla"}, "Santiago": {"value" : "Santiago"}, "Boise": {"value" : "Boise"}, "Creston": {"value" : "Creston"}, "Miquelon": {"value" : "Miquelon"}, "Jamaica": {"value" : "Jamaica"}, "Buenos_Aires": {"value" : "Buenos Aires"}, "Rankin_Inlet":
    {"value" : "Rankin Inlet"}, "Toronto": {"value" : "Toronto"}, "Eirunepe": {"value" : "Eirunepe"}, "Dawson": {"value" : "Dawson"}, "Nassau": {"value" : "Nassau"}, "Vancouver": {"value" : "Vancouver"}, "Noronha": {"value" : "Noronha"}, "Regina": {"value" : "Regina"}, "St_Vincent": {"value" : "St. Vincent"}, "Scoresbysund": {"value" : "Ittoqqortoormiit"}, "Louisville": {"value" : "Louisville"}, "Aruba": {"value" : "Aruba"}, "Thule": {"value" : "Thule"}, "Rio_Branco": {"value" : "Rio Branco"}, "Los_Angeles":
    {"value" : "Los Angeles"}, "St_Thomas": {"value" : "St. Thomas"}, "Cordoba": {"value" : "Cordoba"}, "Cancun": {"value" : "Cancun"}, "Coral_Harbour": {"value" : "Atikokan"}, "Maceio": {"value" : "Maceio"}, "Sitka": {"value" : "Sitka"}, "Denver": {"value" : "Denver"}, "Cayman": {"value" : "Cayman"}, "Nipigon": {"value" : "Nipigon"}, "Thunder_Bay": {"value" : "Thunder Bay"}, "Havana": {"value" : "Havana"}, "Campo_Grande": {"value" : "Campo Grande"}, "Cambridge_Bay": {"value" : "Cambridge Bay"}, "Fortaleza":
    {"value" : "Fortaleza"}, "Managua": {"value" : "Managua"}, "Menominee": {"value" : "Menominee"}, "Halifax": {"value" : "Halifax"}, "Ojinaga": {"value" : "Ojinaga"}, "Glace_Bay": {"value" : "Glace Bay"}, "Lower_Princes": {"value" : "Lower Prince’s Quarter"}, "Mendoza": {"value" : "Mendoza"}, "Yakutat": {"value" : "Yakutat"}, "Detroit": {"value" : "Detroit"}, "Merida": {"value" : "Merida"}, "Bahia_Banderas": {"value" : "Bahia Banderas"}, "Matamoros": {"value" : "Matamoros"}, "St_Barthelemy": {"value" : "St. Barthelemy"}
    , "Boa_Vista": {"value" : "Boa Vista"}, "Metlakatla": {"value" : "Metlakatla"}, "Tortola": {"value" : "Tortola"}, "Inuvik": {"value" : "Inuvik"}, "Port_of_Spain": {"value" : "Port of Spain"}, "New_York": {"value" : "New York"}, "Paramaribo": {"value" : "Paramaribo"}, "Manaus": {"value" : "Manaus"}, "Resolute": {"value" : "Resolute"}, "Curacao": {"value" : "Curacao"}, "Bogota": {"value" : "Bogota"}, "Adak": {"value" : "Adak"}, "Caracas": {"value" : "Caracas"}, "Mazatlan": {"value" : "Mazatlan"}, "St_Kitts":
    {"value" : "St. Kitts"}, "Mexico_City": {"value" : "Mexico City"}, "Edmonton": {"value" : "Edmonton"}, "Araguaina": {"value" : "Araguaina"}, "Santo_Domingo": {"value" : "Santo Domingo"}, "Indianapolis": {"value" : "Indianapolis"}, "Whitehorse": {"value" : "Whitehorse"}, "Yellowknife": {"value" : "Yellowknife"}, "Asuncion": {"value" : "Asuncion"}, "Santarem": {"value" : "Santarem"}, "Antigua": {"value" : "Antigua"}, "Winnipeg": {"value" : "Winnipeg"}, "Recife": {"value" : "Recife"}, "Lima": {"value" : "Lima"}
    , "Martinique": {"value" : "Martinique"}, "Phoenix": {"value" : "Phoenix"}, "Goose_Bay": {"value" : "Goose Bay"}, "St_Johns": {"value" : "St. John’s"}, "Montevideo": {"value" : "Montevideo"}, "St_Lucia": {"value" : "St. Lucia"}, "Chicago": {"value" : "Chicago"}, "Chihuahua": {"value" : "Chihuahua"}, "La_Paz": {"value" : "La Paz"}, "Blanc-Sablon": {"value" : "Blanc-Sablon"}, "Catamarca": {"value" : "Catamarca"}, "Tijuana": {"value" : "Tijuana"}, "Barbados": {"value" : "Barbados"}, "Anchorage": {"value" :
    "Anchorage"}, "Port-au-Prince": {"value" : "Port-au-Prince"}, "Rainy_River": {"value" : "Rainy River"}, "Cayenne": {"value" : "Cayenne"}, "Tegucigalpa": {"value" : "Tegucigalpa"}, "Juneau": {"value" : "Juneau"}, "Marigot": {"value" : "Marigot"}, "Dawson_Creek": {"value" : "Dawson Creek"}, "Dominica": {"value" : "Dominica"}, "Fort_Nelson": {"value" : "Fort Nelson"}}, "Africa": {"Tunis": {"value" : "Tunis"}, "Maputo": {"value" : "Maputo"}, "Casablanca": {"value" : "Casablanca"}, "Johannesburg": {"value" :
    "Johannesburg"}, "Addis_Ababa": {"value" : "Addis Ababa"}, "Lagos": {"value" : "Lagos"}, "Accra": {"value" : "Accra"}, "Nairobi": {"value" : "Nairobi"}, "Brazzaville": {"value" : "Brazzaville"}, "Lubumbashi": {"value" : "Lubumbashi"}, "Banjul": {"value" : "Banjul"}, "Porto-Novo": {"value" : "Porto-Novo"}, "Lusaka": {"value" : "Lusaka"}, "Kigali": {"value" : "Kigali"}, "Ouagadougou": {"value" : "Ouagadougou"}, "Freetown": {"value" : "Freetown"}, "Ndjamena": {"value" : "Ndjamena"}, "Conakry": {"value" : "Conakry"}
    , "Niamey": {"value" : "Niamey"}, "Maseru": {"value" : "Maseru"}, "El_Aaiun": {"value" : "El Aaiun"}, "Sao_Tome": {"value" : "Sao Tome"}, "Ceuta": {"value" : "Ceuta"}, "Khartoum": {"value" : "Khartoum"}, "Algiers": {"value" : "Algiers"}, "Bangui": {"value" : "Bangui"}, "Bujumbura": {"value" : "Bujumbura"}, "Gaborone": {"value" : "Gaborone"}, "Juba": {"value" : "Juba"}, "Dar_es_Salaam": {"value" : "Dar es Salaam"}, "Windhoek": {"value" : "Windhoek"}, "Harare": {"value" : "Harare"}, "Tripoli": {"value" : "Tripoli"}
    , "Libreville": {"value" : "Libreville"}, "Malabo": {"value" : "Malabo"}, "Abidjan": {"value" : "Abidjan"}, "Luanda": {"value" : "Luanda"}, "Lome": {"value" : "Lome"}, "Nouakchott": {"value" : "Nouakchott"}, "Bissau": {"value" : "Bissau"}, "Kinshasa": {"value" : "Kinshasa"}, "Asmera": {"value" : "Asmara"}, "Mogadishu": {"value" : "Mogadishu"}, "Djibouti": {"value" : "Djibouti"}, "Douala": {"value" : "Douala"}, "Kampala": {"value" : "Kampala"}, "Dakar": {"value" : "Dakar"}, "Cairo": {"value" : "Cairo"}, "Blantyre":
    {"value" : "Blantyre"}, "Monrovia": {"value" : "Monrovia"}, "Mbabane": {"value" : "Mbabane"}, "Bamako": {"value" : "Bamako"}}, "Indian": {"Reunion": {"value" : "Reunion"}, "Maldives": {"value" : "Maldives"}, "Christmas": {"value" : "Christmas"}, "Antananarivo": {"value" : "Antananarivo"}, "Chagos": {"value" : "Chagos"}, "Mahe": {"value" : "Mahe"}, "Mayotte": {"value" : "Mayotte"}, "Kerguelen": {"value" : "Kerguelen"}, "Mauritius": {"value" : "Mauritius"}, "Cocos": {"value" : "Cocos"}, "Comoro": {"value"
    : "Comoro"}}, "Antarctica": {"Macquarie": {"value" : "Macquarie"}, "Palmer": {"value" : "Palmer"}, "Casey": {"value" : "Casey"}, "Troll": {"value" : "Troll"}, "Vostok": {"value" : "Vostok"}, "DumontDUrville": {"value" : "Dumont d’Urville"}, "Syowa": {"value" : "Syowa"}, "Mawson": {"value" : "Mawson"}, "McMurdo": {"value" : "McMurdo"}, "Davis": {"value" : "Davis"}, "Rothera": {"value" : "Rothera"}}, "Australia": {"Broken_Hill": {"value" : "Broken Hill"}, "Darwin": {"value" : "Darwin"}, "Brisbane": {"value"
    : "Brisbane"}, "Currie": {"value" : "Currie"}, "Lord_Howe": {"value" : "Lord Howe"}, "Lindeman": {"value" : "Lindeman"}, "Adelaide": {"value" : "Adelaide"}, "Perth": {"value" : "Perth"}, "Eucla": {"value" : "Eucla"}, "Melbourne": {"value" : "Melbourne"}, "Sydney": {"value" : "Sydney"}, "Hobart": {"value" : "Hobart"}}, "Arctic": {"Longyearbyen": {"value" : "Longyearbyen"}}, "Atlantic": {"St_Helena": {"value" : "St. Helena"}, "Reykjavik": {"value" : "Reykjavik"}, "Stanley": {"value" : "Stanley"}, "Madeira":
    {"value" : "Madeira"}, "Canary": {"value" : "Canary"}, "Faeroe": {"value" : "Faroe"}, "Bermuda": {"value" : "Bermuda"}, "Azores": {"value" : "Azores"}, "South_Georgia": {"value" : "South Georgia"}, "Cape_Verde": {"value" : "Cape Verde"}}}}, "en": {"timeZones" : {"Asia": {"Gaza": {"value" : "Gaza"}, "Makassar": {"value" : "Makassar"}, "Ulaanbaatar": {"value" : "Ulaanbaatar"}, "Vladivostok": {"value" : "Vladivostok"}, "Tashkent": {"value" : "Tashkent"}, "Beirut": {"value" : "Beirut"}, "Qyzylorda": {"value"
    : "Qyzylorda"}, "Hong_Kong": {"value" : "Hong Kong"}, "Phnom_Penh": {"value" : "Phnom Penh"}, "Kabul": {"value" : "Kabul"}, "Riyadh": {"value" : "Riyadh"}, "Ashgabat": {"value" : "Ashgabat"}, "Chita": {"value" : "Chita"}, "Aqtau": {"value" : "Aqtau"}, "Tokyo": {"value" : "Tokyo"}, "Baku": {"value" : "Baku"}, "Aqtobe": {"value" : "Aqtobe"}, "Novosibirsk": {"value" : "Novosibirsk"}, "Kamchatka": {"value" : "Kamchatka"}, "Nicosia": {"value" : "Nicosia"}, "Pontianak": {"value" : "Pontianak"}, "Qostanay": {"value"
    : "Kostanay"}, "Barnaul": {"value" : "Barnaul"}, "Jerusalem": {"value" : "Jerusalem"}, "Kuala_Lumpur": {"value" : "Kuala Lumpur"}, "Novokuznetsk": {"value" : "Novokuznetsk"}, "Bahrain": {"value" : "Bahrain"}, "Kuching": {"value" : "Kuching"}, "Bangkok": {"value" : "Bangkok"}, "Srednekolymsk": {"value" : "Srednekolymsk"}, "Karachi": {"value" : "Karachi"}, "Aden": {"value" : "Aden"}, "Irkutsk": {"value" : "Irkutsk"}, "Hovd": {"value" : "Hovd"}, "Katmandu": {"value" : "Kathmandu"}, "Baghdad": {"value" : "Baghdad"}
    , "Samarkand": {"value" : "Samarkand"}, "Thimphu": {"value" : "Thimphu"}, "Dhaka": {"value" : "Dhaka"}, "Yerevan": {"value" : "Yerevan"}, "Muscat": {"value" : "Muscat"}, "Saigon": {"value" : "Ho Chi Minh City"}, "Dili": {"value" : "Dili"}, "Singapore": {"value" : "Singapore"}, "Rangoon": {"value" : "Yangon"}, "Damascus": {"value" : "Damascus"}, "Taipei": {"value" : "Taipei"}, "Amman": {"value" : "Amman"}, "Choibalsan": {"value" : "Choibalsan"}, "Macau": {"value" : "Macao"}, "Jayapura": {"value" : "Jayapura"}
    , "Manila": {"value" : "Manila"}, "Oral": {"value" : "Oral"}, "Dubai": {"value" : "Dubai"}, "Yakutsk": {"value" : "Yakutsk"}, "Seoul": {"value" : "Seoul"}, "Hebron": {"value" : "Hebron"}, "Qatar": {"value" : "Qatar"}, "Bishkek": {"value" : "Bishkek"}, "Tomsk": {"value" : "Tomsk"}, "Colombo": {"value" : "Colombo"}, "Khandyga": {"value" : "Khandyga"}, "Yekaterinburg": {"value" : "Yekaterinburg"}, "Dushanbe": {"value" : "Dushanbe"}, "Famagusta": {"value" : "Famagusta"}, "Kuwait": {"value" : "Kuwait"}, "Magadan":
    {"value" : "Magadan"}, "Pyongyang": {"value" : "Pyongyang"}, "Tehran": {"value" : "Tehran"}, "Sakhalin": {"value" : "Sakhalin"}, "Calcutta": {"value" : "Kolkata"}, "Urumqi": {"value" : "Urumqi"}, "Shanghai": {"value" : "Shanghai"}, "Atyrau": {"value" : "Atyrau"}, "Almaty": {"value" : "Almaty"}, "Tbilisi": {"value" : "Tbilisi"}, "Anadyr": {"value" : "Anadyr"}, "Brunei": {"value" : "Brunei"}, "Krasnoyarsk": {"value" : "Krasnoyarsk"}, "Vientiane": {"value" : "Vientiane"}, "Omsk": {"value" : "Omsk"}, "Jakarta":
    {"value" : "Jakarta"}, "Ust-Nera": {"value" : "Ust-Nera"}}, "Pacific": {"Easter": {"value" : "Easter"}, "Fiji": {"value" : "Fiji"}, "Port_Moresby": {"value" : "Port Moresby"}, "Kiritimati": {"value" : "Kiritimati"}, "Kosrae": {"value" : "Kosrae"}, "Kwajalein": {"value" : "Kwajalein"}, "Auckland": {"value" : "Auckland"}, "Efate": {"value" : "Efate"}, "Johnston": {"value" : "Johnston"}, "Niue": {"value" : "Niue"}, "Majuro": {"value" : "Majuro"}, "Truk": {"value" : "Chuuk"}, "Ponape": {"value" : "Pohnpei"}
    , "Guadalcanal": {"value" : "Guadalcanal"}, "Guam": {"value" : "Guam"}, "Chatham": {"value" : "Chatham"}, "Midway": {"value" : "Midway"}, "Tahiti": {"value" : "Tahiti"}, "Pago_Pago": {"value" : "Pago Pago"}, "Galapagos": {"value" : "Galapagos"}, "Funafuti": {"value" : "Funafuti"}, "Marquesas": {"value" : "Marquesas"}, "Rarotonga": {"value" : "Rarotonga"}, "Tarawa": {"value" : "Tarawa"}, "Saipan": {"value" : "Saipan"}, "Gambier": {"value" : "Gambier"}, "Tongatapu": {"value" : "Tongatapu"}, "Wallis": {"value"
    : "Wallis"}, "Fakaofo": {"value" : "Fakaofo"}, "Wake": {"value" : "Wake"}, "Enderbury": {"value" : "Enderbury"}, "Pitcairn": {"value" : "Pitcairn"}, "Apia": {"value" : "Apia"}, "Noumea": {"value" : "Noumea"}, "Palau": {"value" : "Palau"}, "Nauru": {"value" : "Nauru"}, "Bougainville": {"value" : "Bougainville"}, "Norfolk": {"value" : "Norfolk"}}, "Etc": {"Unknown": {"value" : "Unknown City"}}, "Europe": {"Belgrade": {"value" : "Belgrade"}, "Saratov": {"value" : "Saratov"}, "Gibraltar": {"value" : "Gibraltar"}
    , "Bucharest": {"value" : "Bucharest"}, "Dublin": {"value" : "Dublin"}, "Zaporozhye": {"value" : "Zaporozhye"}, "Kiev": {"value" : "Kiev"}, "Zurich": {"value" : "Zurich"}, "Copenhagen": {"value" : "Copenhagen"}, "Rome": {"value" : "Rome"}, "Zagreb": {"value" : "Zagreb"}, "Monaco": {"value" : "Monaco"}, "Luxembourg": {"value" : "Luxembourg"}, "Jersey": {"value" : "Jersey"}, "Istanbul": {"value" : "Istanbul"}, "Ulyanovsk": {"value" : "Ulyanovsk"}, "Samara": {"value" : "Samara"}, "Sarajevo": {"value" : "Sarajevo"}
    , "Chisinau": {"value" : "Chisinau"}, "Vatican": {"value" : "Vatican"}, "Brussels": {"value" : "Brussels"}, "Oslo": {"value" : "Oslo"}, "Warsaw": {"value" : "Warsaw"}, "Berlin": {"value" : "Berlin"}, "Lisbon": {"value" : "Lisbon"}, "Athens": {"value" : "Athens"}, "Podgorica": {"value" : "Podgorica"}, "San_Marino": {"value" : "San Marino"}, "Simferopol": {"value" : "Simferopol"}, "Bratislava": {"value" : "Bratislava"}, "Stockholm": {"value" : "Stockholm"}, "Prague": {"value" : "Prague"}, "Uzhgorod": {"value"
    : "Uzhhorod"}, "Astrakhan": {"value" : "Astrakhan"}, "Budapest": {"value" : "Budapest"}, "Madrid": {"value" : "Madrid"}, "Vaduz": {"value" : "Vaduz"}, "London": {"value" : "London"}, "Vilnius": {"value" : "Vilnius"}, "Isle_of_Man": {"value" : "Isle of Man"}, "Sofia": {"value" : "Sofia"}, "Kirov": {"value" : "Kirov"}, "Tallinn": {"value" : "Tallinn"}, "Moscow": {"value" : "Moscow"}, "Malta": {"value" : "Malta"}, "Busingen": {"value" : "Busingen"}, "Amsterdam": {"value" : "Amsterdam"}, "Andorra": {"value"
    : "Andorra"}, "Riga": {"value" : "Riga"}, "Vienna": {"value" : "Vienna"}, "Helsinki": {"value" : "Helsinki"}, "Minsk": {"value" : "Minsk"}, "Kaliningrad": {"value" : "Kaliningrad"}, "Ljubljana": {"value" : "Ljubljana"}, "Mariehamn": {"value" : "Mariehamn"}, "Skopje": {"value" : "Skopje"}, "Tirane": {"value" : "Tirane"}, "Guernsey": {"value" : "Guernsey"}, "Volgograd": {"value" : "Volgograd"}, "Paris": {"value" : "Paris"}}, "America": {"Belem": {"value" : "Belem"}, "Guayaquil": {"value" : "Guayaquil"}, "Costa_Rica":
    {"value" : "Costa Rica"}, "Hermosillo": {"value" : "Hermosillo"}, "Punta_Arenas": {"value" : "Punta Arenas"}, "Iqaluit": {"value" : "Iqaluit"}, "Godthab": {"value" : "Nuuk"}, "Jujuy": {"value" : "Jujuy"}, "El_Salvador": {"value" : "El Salvador"}, "Monterrey": {"value" : "Monterrey"}, "Bahia": {"value" : "Bahia"}, "Sao_Paulo": {"value" : "Sao Paulo"}, "Grenada": {"value" : "Grenada"}, "Grand_Turk": {"value" : "Grand Turk"}, "Montserrat": {"value" : "Montserrat"}, "Guadeloupe": {"value" : "Guadeloupe"}, "Panama":
    {"value" : "Panama"}, "Guatemala": {"value" : "Guatemala"}, "Guyana": {"value" : "Guyana"}, "Swift_Current": {"value" : "Swift Current"}, "Puerto_Rico": {"value" : "Puerto Rico"}, "Moncton": {"value" : "Moncton"}, "Danmarkshavn": {"value" : "Danmarkshavn"}, "Nome": {"value" : "Nome"}, "Porto_Velho": {"value" : "Porto Velho"}, "Cuiaba": {"value" : "Cuiaba"}, "Pangnirtung": {"value" : "Pangnirtung"}, "Kralendijk": {"value" : "Kralendijk"}, "Belize": {"value" : "Belize"}, "Anguilla": {"value" : "Anguilla"}
    , "Santiago": {"value" : "Santiago"}, "Boise": {"value" : "Boise"}, "Creston": {"value" : "Creston"}, "Miquelon": {"value" : "Miquelon"}, "Jamaica": {"value" : "Jamaica"}, "Buenos_Aires": {"value" : "Buenos Aires"}, "Rankin_Inlet": {"value" : "Rankin Inlet"}, "Toronto": {"value" : "Toronto"}, "Eirunepe": {"value" : "Eirunepe"}, "Dawson": {"value" : "Dawson"}, "Nassau": {"value" : "Nassau"}, "Vancouver": {"value" : "Vancouver"}, "Noronha": {"value" : "Noronha"}, "Regina": {"value" : "Regina"}, "St_Vincent":
    {"value" : "St. Vincent"}, "Scoresbysund": {"value" : "Ittoqqortoormiit"}, "Louisville": {"value" : "Louisville"}, "Aruba": {"value" : "Aruba"}, "Thule": {"value" : "Thule"}, "Rio_Branco": {"value" : "Rio Branco"}, "Los_Angeles": {"value" : "Los Angeles"}, "St_Thomas": {"value" : "St. Thomas"}, "Cordoba": {"value" : "Cordoba"}, "Cancun": {"value" : "Cancun"}, "Coral_Harbour": {"value" : "Atikokan"}, "Maceio": {"value" : "Maceio"}, "Sitka": {"value" : "Sitka"}, "Denver": {"value" : "Denver"}, "Cayman": {"value"
    : "Cayman"}, "Nipigon": {"value" : "Nipigon"}, "Thunder_Bay": {"value" : "Thunder Bay"}, "Havana": {"value" : "Havana"}, "Campo_Grande": {"value" : "Campo Grande"}, "Cambridge_Bay": {"value" : "Cambridge Bay"}, "Fortaleza": {"value" : "Fortaleza"}, "Managua": {"value" : "Managua"}, "Menominee": {"value" : "Menominee"}, "Halifax": {"value" : "Halifax"}, "Ojinaga": {"value" : "Ojinaga"}, "Glace_Bay": {"value" : "Glace Bay"}, "Lower_Princes": {"value" : "Lower Prince’s Quarter"}, "Mendoza": {"value" : "Mendoza"}
    , "Yakutat": {"value" : "Yakutat"}, "Detroit": {"value" : "Detroit"}, "Merida": {"value" : "Merida"}, "Bahia_Banderas": {"value" : "Bahia Banderas"}, "Matamoros": {"value" : "Matamoros"}, "St_Barthelemy": {"value" : "St. Barthélemy"}, "Boa_Vista": {"value" : "Boa Vista"}, "Metlakatla": {"value" : "Metlakatla"}, "Tortola": {"value" : "Tortola"}, "Inuvik": {"value" : "Inuvik"}, "Port_of_Spain": {"value" : "Port of Spain"}, "New_York": {"value" : "New York"}, "Paramaribo": {"value" : "Paramaribo"}, "Manaus":
    {"value" : "Manaus"}, "Resolute": {"value" : "Resolute"}, "Curacao": {"value" : "Curaçao"}, "Bogota": {"value" : "Bogota"}, "Adak": {"value" : "Adak"}, "Caracas": {"value" : "Caracas"}, "Mazatlan": {"value" : "Mazatlan"}, "St_Kitts": {"value" : "St. Kitts"}, "Mexico_City": {"value" : "Mexico City"}, "Edmonton": {"value" : "Edmonton"}, "Araguaina": {"value" : "Araguaina"}, "Santo_Domingo": {"value" : "Santo Domingo"}, "Indianapolis": {"value" : "Indianapolis"}, "Whitehorse": {"value" : "Whitehorse"}, "Yellowknife":
    {"value" : "Yellowknife"}, "Asuncion": {"value" : "Asunción"}, "Santarem": {"value" : "Santarem"}, "Antigua": {"value" : "Antigua"}, "Winnipeg": {"value" : "Winnipeg"}, "Recife": {"value" : "Recife"}, "Lima": {"value" : "Lima"}, "Martinique": {"value" : "Martinique"}, "Phoenix": {"value" : "Phoenix"}, "Goose_Bay": {"value" : "Goose Bay"}, "St_Johns": {"value" : "St. John’s"}, "Montevideo": {"value" : "Montevideo"}, "St_Lucia": {"value" : "St. Lucia"}, "Chicago": {"value" : "Chicago"}, "Chihuahua": {"value"
    : "Chihuahua"}, "La_Paz": {"value" : "La Paz"}, "Blanc-Sablon": {"value" : "Blanc-Sablon"}, "Catamarca": {"value" : "Catamarca"}, "Tijuana": {"value" : "Tijuana"}, "Barbados": {"value" : "Barbados"}, "Anchorage": {"value" : "Anchorage"}, "Port-au-Prince": {"value" : "Port-au-Prince"}, "Rainy_River": {"value" : "Rainy River"}, "Cayenne": {"value" : "Cayenne"}, "Tegucigalpa": {"value" : "Tegucigalpa"}, "Juneau": {"value" : "Juneau"}, "Marigot": {"value" : "Marigot"}, "Dawson_Creek": {"value" : "Dawson Creek"}
    , "Dominica": {"value" : "Dominica"}, "Fort_Nelson": {"value" : "Fort Nelson"}}, "Africa": {"Tunis": {"value" : "Tunis"}, "Maputo": {"value" : "Maputo"}, "Casablanca": {"value" : "Casablanca"}, "Johannesburg": {"value" : "Johannesburg"}, "Addis_Ababa": {"value" : "Addis Ababa"}, "Lagos": {"value" : "Lagos"}, "Accra": {"value" : "Accra"}, "Nairobi": {"value" : "Nairobi"}, "Brazzaville": {"value" : "Brazzaville"}, "Lubumbashi": {"value" : "Lubumbashi"}, "Banjul": {"value" : "Banjul"}, "Porto-Novo": {"value"
    : "Porto-Novo"}, "Lusaka": {"value" : "Lusaka"}, "Kigali": {"value" : "Kigali"}, "Ouagadougou": {"value" : "Ouagadougou"}, "Freetown": {"value" : "Freetown"}, "Ndjamena": {"value" : "Ndjamena"}, "Conakry": {"value" : "Conakry"}, "Niamey": {"value" : "Niamey"}, "Maseru": {"value" : "Maseru"}, "El_Aaiun": {"value" : "El Aaiun"}, "Sao_Tome": {"value" : "São Tomé"}, "Ceuta": {"value" : "Ceuta"}, "Khartoum": {"value" : "Khartoum"}, "Algiers": {"value" : "Algiers"}, "Bangui": {"value" : "Bangui"}, "Bujumbura":
    {"value" : "Bujumbura"}, "Gaborone": {"value" : "Gaborone"}, "Juba": {"value" : "Juba"}, "Dar_es_Salaam": {"value" : "Dar es Salaam"}, "Windhoek": {"value" : "Windhoek"}, "Harare": {"value" : "Harare"}, "Tripoli": {"value" : "Tripoli"}, "Libreville": {"value" : "Libreville"}, "Malabo": {"value" : "Malabo"}, "Abidjan": {"value" : "Abidjan"}, "Luanda": {"value" : "Luanda"}, "Lome": {"value" : "Lome"}, "Nouakchott": {"value" : "Nouakchott"}, "Bissau": {"value" : "Bissau"}, "Kinshasa": {"value" : "Kinshasa"}
    , "Asmera": {"value" : "Asmara"}, "Mogadishu": {"value" : "Mogadishu"}, "Djibouti": {"value" : "Djibouti"}, "Douala": {"value" : "Douala"}, "Kampala": {"value" : "Kampala"}, "Dakar": {"value" : "Dakar"}, "Cairo": {"value" : "Cairo"}, "Blantyre": {"value" : "Blantyre"}, "Monrovia": {"value" : "Monrovia"}, "Mbabane": {"value" : "Mbabane"}, "Bamako": {"value" : "Bamako"}}, "Indian": {"Reunion": {"value" : "Réunion"}, "Maldives": {"value" : "Maldives"}, "Christmas": {"value" : "Christmas"}, "Antananarivo": {"value"
    : "Antananarivo"}, "Chagos": {"value" : "Chagos"}, "Mahe": {"value" : "Mahe"}, "Mayotte": {"value" : "Mayotte"}, "Kerguelen": {"value" : "Kerguelen"}, "Mauritius": {"value" : "Mauritius"}, "Cocos": {"value" : "Cocos"}, "Comoro": {"value" : "Comoro"}}, "Antarctica": {"Macquarie": {"value" : "Macquarie"}, "Palmer": {"value" : "Palmer"}, "Casey": {"value" : "Casey"}, "Troll": {"value" : "Troll"}, "Vostok": {"value" : "Vostok"}, "DumontDUrville": {"value" : "Dumont d’Urville"}, "Syowa": {"value" : "Syowa"},
    "Mawson": {"value" : "Mawson"}, "McMurdo": {"value" : "McMurdo"}, "Davis": {"value" : "Davis"}, "Rothera": {"value" : "Rothera"}}, "Australia": {"Broken_Hill": {"value" : "Broken Hill"}, "Darwin": {"value" : "Darwin"}, "Brisbane": {"value" : "Brisbane"}, "Currie": {"value" : "Currie"}, "Lord_Howe": {"value" : "Lord Howe"}, "Lindeman": {"value" : "Lindeman"}, "Adelaide": {"value" : "Adelaide"}, "Perth": {"value" : "Perth"}, "Eucla": {"value" : "Eucla"}, "Melbourne": {"value" : "Melbourne"}, "Sydney": {"value"
    : "Sydney"}, "Hobart": {"value" : "Hobart"}}, "Arctic": {"Longyearbyen": {"value" : "Longyearbyen"}}, "Atlantic": {"St_Helena": {"value" : "St. Helena"}, "Reykjavik": {"value" : "Reykjavik"}, "Stanley": {"value" : "Stanley"}, "Madeira": {"value" : "Madeira"}, "Canary": {"value" : "Canary"}, "Faeroe": {"value" : "Faroe"}, "Bermuda": {"value" : "Bermuda"}, "Azores": {"value" : "Azores"}, "South_Georgia": {"value" : "South Georgia"}, "Cape_Verde": {"value" : "Cape Verde"}}}}};
},
otciu_CLDRHelper_getDefaultLocale$$create = () => {
    return {"value" : "en_GB"};
},
otciu_CLDRHelper_getMinimalDaysInFirstWeek$$create = () => {
    return {"DE": {"value" : 4}, "PT": {"value" : 4}, "DK": {"value" : 4}, "LT": {"value" : 4}, "LU": {"value" : 4}, "HU": {"value" : 4}, "MC": {"value" : 4}, "UM": {"value" : 1}, "IE": {"value" : 4}, "US": {"value" : 1}, "EE": {"value" : 4}, "AD": {"value" : 4}, "IM": {"value" : 4}, "MQ": {"value" : 4}, "IS": {"value" : 4}, "IT": {"value" : 4}, "VA": {"value" : 4}, "AN": {"value" : 4}, "ES": {"value" : 4}, "001": {"value" : 1}, "AT": {"value" : 4}, "RE": {"value" : 4}, "VI": {"value" : 1}, "AX": {"value" :
    4}, "JE": {"value" : 4}, "NL": {"value" : 4}, "NO": {"value" : 4}, "BE": {"value" : 4}, "FI": {"value" : 4}, "RU": {"value" : 4}, "FJ": {"value" : 4}, "BG": {"value" : 4}, "FO": {"value" : 4}, "FR": {"value" : 4}, "SE": {"value" : 4}, "SJ": {"value" : 4}, "SK": {"value" : 4}, "SM": {"value" : 4}, "GB": {"value" : 4}, "GF": {"value" : 4}, "GG": {"value" : 4}, "GI": {"value" : 4}, "CH": {"value" : 4}, "GP": {"value" : 4}, "GR": {"value" : 4}, "GU": {"value" : 1}, "CZ": {"value" : 4}, "PL": {"value" : 4}, "LI":
    {"value" : 4}};
},
otciu_CLDRHelper_getFirstDayOfWeek$$create = () => {
    return {"PR": {"value" : 1}, "HK": {"value" : 1}, "PT": {"value" : 1}, "HN": {"value" : 1}, "PY": {"value" : 1}, "HR": {"value" : 2}, "YE": {"value" : 1}, "HU": {"value" : 2}, "QA": {"value" : 7}, "ID": {"value" : 1}, "IE": {"value" : 2}, "AD": {"value" : 2}, "IL": {"value" : 1}, "AE": {"value" : 7}, "AF": {"value" : 7}, "IN": {"value" : 1}, "AG": {"value" : 1}, "ZA": {"value" : 1}, "AI": {"value" : 2}, "IQ": {"value" : 7}, "IR": {"value" : 7}, "IS": {"value" : 2}, "AL": {"value" : 2}, "IT": {"value" : 2}
    , "AM": {"value" : 2}, "AN": {"value" : 2}, "001": {"value" : 2}, "AR": {"value" : 2}, "AS": {"value" : 1}, "AT": {"value" : 2}, "RE": {"value" : 2}, "AU": {"value" : 1}, "AX": {"value" : 2}, "AZ": {"value" : 2}, "RO": {"value" : 2}, "ZW": {"value" : 1}, "BA": {"value" : 2}, "RS": {"value" : 2}, "BD": {"value" : 1}, "BE": {"value" : 2}, "JM": {"value" : 1}, "RU": {"value" : 2}, "BG": {"value" : 2}, "JO": {"value" : 7}, "BH": {"value" : 7}, "JP": {"value" : 1}, "BM": {"value" : 2}, "BN": {"value" : 2}, "SA":
    {"value" : 1}, "BR": {"value" : 1}, "BS": {"value" : 1}, "SD": {"value" : 7}, "BT": {"value" : 1}, "SE": {"value" : 2}, "SG": {"value" : 1}, "BW": {"value" : 1}, "SI": {"value" : 2}, "BY": {"value" : 2}, "BZ": {"value" : 1}, "SK": {"value" : 2}, "KE": {"value" : 1}, "SM": {"value" : 2}, "KG": {"value" : 2}, "KH": {"value" : 1}, "CA": {"value" : 1}, "SV": {"value" : 1}, "CH": {"value" : 2}, "SY": {"value" : 7}, "KR": {"value" : 1}, "CL": {"value" : 2}, "CM": {"value" : 2}, "CN": {"value" : 1}, "CO": {"value"
    : 1}, "KW": {"value" : 7}, "CR": {"value" : 2}, "KZ": {"value" : 2}, "TH": {"value" : 1}, "LA": {"value" : 1}, "CY": {"value" : 2}, "LB": {"value" : 2}, "TJ": {"value" : 2}, "CZ": {"value" : 2}, "TM": {"value" : 2}, "LI": {"value" : 2}, "TR": {"value" : 2}, "LK": {"value" : 2}, "TT": {"value" : 1}, "DE": {"value" : 2}, "TW": {"value" : 1}, "DJ": {"value" : 7}, "DK": {"value" : 2}, "LT": {"value" : 2}, "DM": {"value" : 1}, "LU": {"value" : 2}, "LV": {"value" : 2}, "DO": {"value" : 1}, "UA": {"value" : 2}
    , "LY": {"value" : 7}, "DZ": {"value" : 7}, "MC": {"value" : 2}, "MD": {"value" : 2}, "ME": {"value" : 2}, "UM": {"value" : 1}, "MH": {"value" : 1}, "EC": {"value" : 2}, "MK": {"value" : 2}, "US": {"value" : 1}, "EE": {"value" : 2}, "MM": {"value" : 1}, "MN": {"value" : 2}, "EG": {"value" : 7}, "MO": {"value" : 1}, "MQ": {"value" : 2}, "UY": {"value" : 2}, "UZ": {"value" : 2}, "MT": {"value" : 1}, "MV": {"value" : 6}, "MX": {"value" : 1}, "VA": {"value" : 2}, "MY": {"value" : 2}, "MZ": {"value" : 1}, "ES":
    {"value" : 2}, "ET": {"value" : 1}, "VE": {"value" : 1}, "GB-alt-variant": {"value" : 1}, "VI": {"value" : 1}, "VN": {"value" : 2}, "NI": {"value" : 1}, "NL": {"value" : 2}, "NO": {"value" : 2}, "NP": {"value" : 1}, "FI": {"value" : 2}, "FJ": {"value" : 2}, "FO": {"value" : 2}, "FR": {"value" : 2}, "NZ": {"value" : 2}, "GB": {"value" : 2}, "WS": {"value" : 1}, "GE": {"value" : 2}, "OM": {"value" : 7}, "GF": {"value" : 2}, "GP": {"value" : 2}, "GR": {"value" : 2}, "GT": {"value" : 1}, "GU": {"value" : 1}
    , "PA": {"value" : 1}, "XK": {"value" : 2}, "PE": {"value" : 1}, "PH": {"value" : 1}, "PK": {"value" : 1}, "PL": {"value" : 2}};
},
otciu_CLDRHelper_getDateFormatMap$$create = () => {
    return {"root": {"fullFormat" : "y MMMM d, EEEE", "mediumFormat" : "y MMM d", "longFormat" : "y MMMM d", "shortFormat" : "y-MM-dd"}, "en": {"fullFormat" : "EEEE, MMMM d, y", "mediumFormat" : "MMM d, y", "longFormat" : "MMMM d, y", "shortFormat" : "M/d/yy"}};
},
otciu_CLDRHelper_getNumberFormatMap$$create = () => {
    return {"root": {"value" : "#,##0.###"}, "en": {"value" : "#,##0.###"}};
},
otciu_CLDRHelper_getDecimalDataMap$$create = () => {
    return {"root": {"exponentSeparator" : "E", "minusSign" : 45, "perMille" : 8240, "decimalSeparator" : 46, "listSeparator" : 59, "naN" : "NaN", "infinity" : "∞", "groupingSeparator" : 44, "percent" : 37}, "en": {"exponentSeparator" : "E", "minusSign" : 45, "perMille" : 8240, "decimalSeparator" : 46, "listSeparator" : 59, "naN" : "NaN", "infinity" : "∞", "groupingSeparator" : 44, "percent" : 37}};
},
otciu_CLDRHelper_getCurrencyMap$$create = () => {
    return {"root": {"UGS": {"symbol" : "UGS", "name" : "UGS"}, "FJD": {"symbol" : "FJD", "name" : "FJD"}, "MXN": {"symbol" : "MX$", "name" : "MXN"}, "STD": {"symbol" : "STD", "name" : "STD"}, "BRR": {"symbol" : "BRR", "name" : "BRR"}, "LVL": {"symbol" : "LVL", "name" : "LVL"}, "SCR": {"symbol" : "SCR", "name" : "SCR"}, "CDF": {"symbol" : "CDF", "name" : "CDF"}, "MXP": {"symbol" : "MXP", "name" : "MXP"}, "ZAL": {"symbol" : "ZAL", "name" : "ZAL"}, "BBD": {"symbol" : "BBD", "name" : "BBD"}, "HNL": {"symbol" :
    "HNL", "name" : "HNL"}, "UGX": {"symbol" : "UGX", "name" : "UGX"}, "LVR": {"symbol" : "LVR", "name" : "LVR"}, "MXV": {"symbol" : "MXV", "name" : "MXV"}, "ZAR": {"symbol" : "ZAR", "name" : "ZAR"}, "BRZ": {"symbol" : "BRZ", "name" : "BRZ"}, "STN": {"symbol" : "STN", "name" : "STN"}, "CUC": {"symbol" : "CUC", "name" : "CUC"}, "BSD": {"symbol" : "BSD", "name" : "BSD"}, "SDD": {"symbol" : "SDD", "name" : "SDD"}, "SDG": {"symbol" : "SDG", "name" : "SDG"}, "ZRN": {"symbol" : "ZRN", "name" : "ZRN"}, "IQD": {"symbol"
    : "IQD", "name" : "IQD"}, "SDP": {"symbol" : "SDP", "name" : "SDP"}, "CUP": {"symbol" : "CUP", "name" : "CUP"}, "GMD": {"symbol" : "GMD", "name" : "GMD"}, "TWD": {"symbol" : "NT$", "name" : "TWD"}, "RSD": {"symbol" : "RSD", "name" : "RSD"}, "ZRZ": {"symbol" : "ZRZ", "name" : "ZRZ"}, "UYI": {"symbol" : "UYI", "name" : "UYI"}, "MYR": {"symbol" : "MYR", "name" : "MYR"}, "FKP": {"symbol" : "FKP", "name" : "FKP"}, "UYP": {"symbol" : "UYP", "name" : "UYP"}, "XOF": {"symbol" : "CFA", "name" : "XOF"}, "ARA": {"symbol"
    : "ARA", "name" : "ARA"}, "UYU": {"symbol" : "UYU", "name" : "UYU"}, "SUR": {"symbol" : "SUR", "name" : "SUR"}, "UYW": {"symbol" : "UYW", "name" : "UYW"}, "CVE": {"symbol" : "CVE", "name" : "CVE"}, "OMR": {"symbol" : "OMR", "name" : "OMR"}, "KES": {"symbol" : "KES", "name" : "KES"}, "SEK": {"symbol" : "SEK", "name" : "SEK"}, "MZE": {"symbol" : "MZE", "name" : "MZE"}, "ARL": {"symbol" : "ARL", "name" : "ARL"}, "ARM": {"symbol" : "ARM", "name" : "ARM"}, "BTN": {"symbol" : "BTN", "name" : "BTN"}, "GNF": {"symbol"
    : "GNF", "name" : "GNF"}, "ARP": {"symbol" : "ARP", "name" : "ARP"}, "MZN": {"symbol" : "MZN", "name" : "MZN"}, "MZM": {"symbol" : "MZM", "name" : "MZM"}, "SVC": {"symbol" : "SVC", "name" : "SVC"}, "ARS": {"symbol" : "ARS", "name" : "ARS"}, "QAR": {"symbol" : "QAR", "name" : "QAR"}, "IRR": {"symbol" : "IRR", "name" : "IRR"}, "NLG": {"symbol" : "NLG", "name" : "NLG"}, "GNS": {"symbol" : "GNS", "name" : "GNS"}, "XPD": {"symbol" : "XPD", "name" : "XPD"}, "THB": {"symbol" : "THB", "name" : "THB"}, "UZS": {"symbol"
    : "UZS", "name" : "UZS"}, "XPF": {"symbol" : "CFPF", "name" : "XPF"}, "BDT": {"symbol" : "BDT", "name" : "BDT"}, "LYD": {"symbol" : "LYD", "name" : "LYD"}, "BUK": {"symbol" : "BUK", "name" : "BUK"}, "KWD": {"symbol" : "KWD", "name" : "KWD"}, "XPT": {"symbol" : "XPT", "name" : "XPT"}, "RUB": {"symbol" : "RUB", "name" : "RUB"}, "ISK": {"symbol" : "ISK", "name" : "ISK"}, "BEC": {"symbol" : "BEC", "name" : "BEC"}, "ISJ": {"symbol" : "ISJ", "name" : "ISJ"}, "BEF": {"symbol" : "BEF", "name" : "BEF"}, "MKD": {"symbol"
    : "MKD", "name" : "MKD"}, "BEL": {"symbol" : "BEL", "name" : "BEL"}, "RUR": {"symbol" : "RUR", "name" : "RUR"}, "DZD": {"symbol" : "DZD", "name" : "DZD"}, "PAB": {"symbol" : "PAB", "name" : "PAB"}, "MKN": {"symbol" : "MKN", "name" : "MKN"}, "SGD": {"symbol" : "SGD", "name" : "SGD"}, "KGS": {"symbol" : "KGS", "name" : "KGS"}, "HRD": {"symbol" : "HRD", "name" : "HRD"}, "XAF": {"symbol" : "FCFA", "name" : "XAF"}, "XAG": {"symbol" : "XAG", "name" : "XAG"}, "ATS": {"symbol" : "ATS", "name" : "ATS"}, "CHF": {"symbol"
    : "CHF", "name" : "CHF"}, "HRK": {"symbol" : "HRK", "name" : "HRK"}, "ITL": {"symbol" : "ITL", "name" : "ITL"}, "CHE": {"symbol" : "CHE", "name" : "CHE"}, "DJF": {"symbol" : "DJF", "name" : "DJF"}, "MLF": {"symbol" : "MLF", "name" : "MLF"}, "XRE": {"symbol" : "XRE", "name" : "XRE"}, "TZS": {"symbol" : "TZS", "name" : "TZS"}, "ADP": {"symbol" : "ADP", "name" : "ADP"}, "VND": {"symbol" : "₫", "name" : "VND"}, "XAU": {"symbol" : "XAU", "name" : "XAU"}, "AUD": {"symbol" : "A$", "name" : "AUD"}, "CHW": {"symbol"
    : "CHW", "name" : "CHW"}, "KHR": {"symbol" : "KHR", "name" : "KHR"}, "IDR": {"symbol" : "IDR", "name" : "IDR"}, "XBA": {"symbol" : "XBA", "name" : "XBA"}, "KYD": {"symbol" : "KYD", "name" : "KYD"}, "VNN": {"symbol" : "VNN", "name" : "VNN"}, "XBC": {"symbol" : "XBC", "name" : "XBC"}, "YDD": {"symbol" : "YDD", "name" : "YDD"}, "XBB": {"symbol" : "XBB", "name" : "XBB"}, "BWP": {"symbol" : "BWP", "name" : "BWP"}, "GQE": {"symbol" : "GQE", "name" : "GQE"}, "SHP": {"symbol" : "SHP", "name" : "SHP"}, "CYP": {"symbol"
    : "CYP", "name" : "CYP"}, "XBD": {"symbol" : "XBD", "name" : "XBD"}, "TJS": {"symbol" : "TJS", "name" : "TJS"}, "TJR": {"symbol" : "TJR", "name" : "TJR"}, "AED": {"symbol" : "AED", "name" : "AED"}, "RWF": {"symbol" : "RWF", "name" : "RWF"}, "DKK": {"symbol" : "DKK", "name" : "DKK"}, "BGL": {"symbol" : "BGL", "name" : "BGL"}, "ZWD": {"symbol" : "ZWD", "name" : "ZWD"}, "BGN": {"symbol" : "BGN", "name" : "BGN"}, "BGM": {"symbol" : "BGM", "name" : "BGM"}, "YUD": {"symbol" : "YUD", "name" : "YUD"}, "MMK": {"symbol"
    : "MMK", "name" : "MMK"}, "BGO": {"symbol" : "BGO", "name" : "BGO"}, "NOK": {"symbol" : "NOK", "name" : "NOK"}, "SYP": {"symbol" : "SYP", "name" : "SYP"}, "ZWL": {"symbol" : "ZWL", "name" : "ZWL"}, "YUM": {"symbol" : "YUM", "name" : "YUM"}, "LKR": {"symbol" : "LKR", "name" : "LKR"}, "YUN": {"symbol" : "YUN", "name" : "YUN"}, "ZWR": {"symbol" : "ZWR", "name" : "ZWR"}, "CZK": {"symbol" : "CZK", "name" : "CZK"}, "IEP": {"symbol" : "IEP", "name" : "IEP"}, "YUR": {"symbol" : "YUR", "name" : "YUR"}, "GRD": {"symbol"
    : "GRD", "name" : "GRD"}, "XCD": {"symbol" : "EC$", "name" : "XCD"}, "HTG": {"symbol" : "HTG", "name" : "HTG"}, "XSU": {"symbol" : "XSU", "name" : "XSU"}, "AFA": {"symbol" : "AFA", "name" : "AFA"}, "BHD": {"symbol" : "BHD", "name" : "BHD"}, "SIT": {"symbol" : "SIT", "name" : "SIT"}, "PTE": {"symbol" : "PTE", "name" : "PTE"}, "KZT": {"symbol" : "KZT", "name" : "KZT"}, "SZL": {"symbol" : "SZL", "name" : "SZL"}, "YER": {"symbol" : "YER", "name" : "YER"}, "AFN": {"symbol" : "AFN", "name" : "AFN"}, "BYB": {"symbol"
    : "BYB", "name" : "BYB"}, "RHD": {"symbol" : "RHD", "name" : "RHD"}, "AWG": {"symbol" : "AWG", "name" : "AWG"}, "NPR": {"symbol" : "NPR", "name" : "NPR"}, "MNT": {"symbol" : "MNT", "name" : "MNT"}, "GBP": {"symbol" : "£", "name" : "GBP"}, "BYN": {"symbol" : "BYN", "name" : "BYN"}, "XTS": {"symbol" : "XTS", "name" : "XTS"}, "HUF": {"symbol" : "HUF", "name" : "HUF"}, "BYR": {"symbol" : "BYR", "name" : "BYR"}, "BIF": {"symbol" : "BIF", "name" : "BIF"}, "XUA": {"symbol" : "XUA", "name" : "XUA"}, "XDR": {"symbol"
    : "XDR", "name" : "XDR"}, "BZD": {"symbol" : "BZD", "name" : "BZD"}, "MOP": {"symbol" : "MOP", "name" : "MOP"}, "NAD": {"symbol" : "NAD", "name" : "NAD"}, "SKK": {"symbol" : "SKK", "name" : "SKK"}, "PEI": {"symbol" : "PEI", "name" : "PEI"}, "TMM": {"symbol" : "TMM", "name" : "TMM"}, "PEN": {"symbol" : "PEN", "name" : "PEN"}, "WST": {"symbol" : "WST", "name" : "WST"}, "TMT": {"symbol" : "TMT", "name" : "TMT"}, "FRF": {"symbol" : "FRF", "name" : "FRF"}, "CLF": {"symbol" : "CLF", "name" : "CLF"}, "CLE": {"symbol"
    : "CLE", "name" : "CLE"}, "PES": {"symbol" : "PES", "name" : "PES"}, "GTQ": {"symbol" : "GTQ", "name" : "GTQ"}, "CLP": {"symbol" : "CLP", "name" : "CLP"}, "XEU": {"symbol" : "XEU", "name" : "XEU"}, "TND": {"symbol" : "TND", "name" : "TND"}, "SLL": {"symbol" : "SLL", "name" : "SLL"}, "XFO": {"symbol" : "XFO", "name" : "XFO"}, "DOP": {"symbol" : "DOP", "name" : "DOP"}, "KMF": {"symbol" : "KMF", "name" : "KMF"}, "XFU": {"symbol" : "XFU", "name" : "XFU"}, "GEK": {"symbol" : "GEK", "name" : "GEK"}, "GEL": {"symbol"
    : "GEL", "name" : "GEL"}, "MAD": {"symbol" : "MAD", "name" : "MAD"}, "MAF": {"symbol" : "MAF", "name" : "MAF"}, "AZM": {"symbol" : "AZM", "name" : "AZM"}, "TOP": {"symbol" : "TOP", "name" : "TOP"}, "AZN": {"symbol" : "AZN", "name" : "AZN"}, "PGK": {"symbol" : "PGK", "name" : "PGK"}, "CNH": {"symbol" : "CNH", "name" : "CNH"}, "UAH": {"symbol" : "UAH", "name" : "UAH"}, "UAK": {"symbol" : "UAK", "name" : "UAK"}, "ERN": {"symbol" : "ERN", "name" : "ERN"}, "TPE": {"symbol" : "TPE", "name" : "TPE"}, "MRO": {"symbol"
    : "MRO", "name" : "MRO"}, "CNX": {"symbol" : "CNX", "name" : "CNX"}, "CNY": {"symbol" : "CN¥", "name" : "CNY"}, "MRU": {"symbol" : "MRU", "name" : "MRU"}, "ESA": {"symbol" : "ESA", "name" : "ESA"}, "GWE": {"symbol" : "GWE", "name" : "GWE"}, "ESB": {"symbol" : "ESB", "name" : "ESB"}, "BMD": {"symbol" : "BMD", "name" : "BMD"}, "PHP": {"symbol" : "PHP", "name" : "PHP"}, "XXX": {"symbol" : "¤", "name" : "XXX"}, "PYG": {"symbol" : "PYG", "name" : "PYG"}, "JMD": {"symbol" : "JMD", "name" : "JMD"}, "GWP": {"symbol"
    : "GWP", "name" : "GWP"}, "ESP": {"symbol" : "ESP", "name" : "ESP"}, "COP": {"symbol" : "COP", "name" : "COP"}, "USD": {"symbol" : "US$", "name" : "USD"}, "COU": {"symbol" : "COU", "name" : "COU"}, "MCF": {"symbol" : "MCF", "name" : "MCF"}, "USN": {"symbol" : "USN", "name" : "USN"}, "ETB": {"symbol" : "ETB", "name" : "ETB"}, "VEB": {"symbol" : "VEB", "name" : "VEB"}, "ECS": {"symbol" : "ECS", "name" : "ECS"}, "USS": {"symbol" : "USS", "name" : "USS"}, "SOS": {"symbol" : "SOS", "name" : "SOS"}, "VEF": {"symbol"
    : "VEF", "name" : "VEF"}, "VUV": {"symbol" : "VUV", "name" : "VUV"}, "LAK": {"symbol" : "LAK", "name" : "LAK"}, "BND": {"symbol" : "BND", "name" : "BND"}, "ECV": {"symbol" : "ECV", "name" : "ECV"}, "ZMK": {"symbol" : "ZMK", "name" : "ZMK"}, "LRD": {"symbol" : "LRD", "name" : "LRD"}, "ALK": {"symbol" : "ALK", "name" : "ALK"}, "ALL": {"symbol" : "ALL", "name" : "ALL"}, "GHC": {"symbol" : "GHC", "name" : "GHC"}, "MTL": {"symbol" : "MTL", "name" : "MTL"}, "VES": {"symbol" : "VES", "name" : "VES"}, "ZMW": {"symbol"
    : "ZMW", "name" : "ZMW"}, "MTP": {"symbol" : "MTP", "name" : "MTP"}, "ILP": {"symbol" : "ILP", "name" : "ILP"}, "MDC": {"symbol" : "MDC", "name" : "MDC"}, "ILR": {"symbol" : "ILR", "name" : "ILR"}, "TRL": {"symbol" : "TRL", "name" : "TRL"}, "ILS": {"symbol" : "₪", "name" : "ILS"}, "GHS": {"symbol" : "GHS", "name" : "GHS"}, "GYD": {"symbol" : "GYD", "name" : "GYD"}, "KPW": {"symbol" : "KPW", "name" : "KPW"}, "BOB": {"symbol" : "BOB", "name" : "BOB"}, "MDL": {"symbol" : "MDL", "name" : "MDL"}, "AMD": {"symbol"
    : "AMD", "name" : "AMD"}, "TRY": {"symbol" : "TRY", "name" : "TRY"}, "LBP": {"symbol" : "LBP", "name" : "LBP"}, "BOL": {"symbol" : "BOL", "name" : "BOL"}, "JOD": {"symbol" : "JOD", "name" : "JOD"}, "HKD": {"symbol" : "HK$", "name" : "HKD"}, "BOP": {"symbol" : "BOP", "name" : "BOP"}, "EUR": {"symbol" : "€", "name" : "EUR"}, "LSL": {"symbol" : "LSL", "name" : "LSL"}, "CAD": {"symbol" : "CA$", "name" : "CAD"}, "BOV": {"symbol" : "BOV", "name" : "BOV"}, "EEK": {"symbol" : "EEK", "name" : "EEK"}, "MUR": {"symbol"
    : "MUR", "name" : "MUR"}, "ROL": {"symbol" : "ROL", "name" : "ROL"}, "GIP": {"symbol" : "GIP", "name" : "GIP"}, "RON": {"symbol" : "RON", "name" : "RON"}, "NGN": {"symbol" : "NGN", "name" : "NGN"}, "CRC": {"symbol" : "CRC", "name" : "CRC"}, "PKR": {"symbol" : "PKR", "name" : "PKR"}, "ANG": {"symbol" : "ANG", "name" : "ANG"}, "KRH": {"symbol" : "KRH", "name" : "KRH"}, "SRD": {"symbol" : "SRD", "name" : "SRD"}, "LTL": {"symbol" : "LTL", "name" : "LTL"}, "SAR": {"symbol" : "SAR", "name" : "SAR"}, "TTD": {"symbol"
    : "TTD", "name" : "TTD"}, "MVP": {"symbol" : "MVP", "name" : "MVP"}, "MVR": {"symbol" : "MVR", "name" : "MVR"}, "KRO": {"symbol" : "KRO", "name" : "KRO"}, "SRG": {"symbol" : "SRG", "name" : "SRG"}, "DDM": {"symbol" : "DDM", "name" : "DDM"}, "INR": {"symbol" : "₹", "name" : "INR"}, "LTT": {"symbol" : "LTT", "name" : "LTT"}, "KRW": {"symbol" : "₩", "name" : "KRW"}, "JPY": {"symbol" : "JP¥", "name" : "JPY"}, "AOA": {"symbol" : "AOA", "name" : "AOA"}, "PLN": {"symbol" : "PLN", "name" : "PLN"}, "SBD": {"symbol"
    : "SBD", "name" : "SBD"}, "CSD": {"symbol" : "CSD", "name" : "CSD"}, "CSK": {"symbol" : "CSK", "name" : "CSK"}, "LUC": {"symbol" : "LUC", "name" : "LUC"}, "LUF": {"symbol" : "LUF", "name" : "LUF"}, "AOK": {"symbol" : "AOK", "name" : "AOK"}, "PLZ": {"symbol" : "PLZ", "name" : "PLZ"}, "AON": {"symbol" : "AON", "name" : "AON"}, "MWK": {"symbol" : "MWK", "name" : "MWK"}, "LUL": {"symbol" : "LUL", "name" : "LUL"}, "AOR": {"symbol" : "AOR", "name" : "AOR"}, "BAD": {"symbol" : "BAD", "name" : "BAD"}, "MGA": {"symbol"
    : "MGA", "name" : "MGA"}, "NIC": {"symbol" : "NIC", "name" : "NIC"}, "FIM": {"symbol" : "FIM", "name" : "FIM"}, "DEM": {"symbol" : "DEM", "name" : "DEM"}, "MGF": {"symbol" : "MGF", "name" : "MGF"}, "BAM": {"symbol" : "BAM", "name" : "BAM"}, "BAN": {"symbol" : "BAN", "name" : "BAN"}, "EGP": {"symbol" : "EGP", "name" : "EGP"}, "SSP": {"symbol" : "SSP", "name" : "SSP"}, "BRC": {"symbol" : "BRC", "name" : "BRC"}, "BRB": {"symbol" : "BRB", "name" : "BRB"}, "BRE": {"symbol" : "BRE", "name" : "BRE"}, "NIO": {"symbol"
    : "NIO", "name" : "NIO"}, "NZD": {"symbol" : "NZ$", "name" : "NZD"}, "BRL": {"symbol" : "R$", "name" : "BRL"}, "BRN": {"symbol" : "BRN", "name" : "BRN"}}, "en": {"UGS": {"symbol" : "UGS", "name" : "Ugandan Shilling (1966–1987)"}, "FJD": {"symbol" : "FJD", "name" : "Fijian Dollar"}, "MXN": {"symbol" : "MX$", "name" : "Mexican Peso"}, "STD": {"symbol" : "STD", "name" : "São Tomé & Príncipe Dobra (1977–2017)"}, "BRR": {"symbol" : "BRR", "name" : "Brazilian Cruzeiro (1993–1994)"}, "LVL": {"symbol" : "LVL", "name"
    : "Latvian Lats"}, "SCR": {"symbol" : "SCR", "name" : "Seychellois Rupee"}, "CDF": {"symbol" : "CDF", "name" : "Congolese Franc"}, "MXP": {"symbol" : "MXP", "name" : "Mexican Silver Peso (1861–1992)"}, "ZAL": {"symbol" : "ZAL", "name" : "South African Rand (financial)"}, "BBD": {"symbol" : "BBD", "name" : "Barbadian Dollar"}, "HNL": {"symbol" : "HNL", "name" : "Honduran Lempira"}, "UGX": {"symbol" : "UGX", "name" : "Ugandan Shilling"}, "LVR": {"symbol" : "LVR", "name" : "Latvian Ruble"}, "MXV": {"symbol"
    : "MXV", "name" : "Mexican Investment Unit"}, "ZAR": {"symbol" : "ZAR", "name" : "South African Rand"}, "BRZ": {"symbol" : "BRZ", "name" : "Brazilian Cruzeiro (1942–1967)"}, "STN": {"symbol" : "STN", "name" : "São Tomé & Príncipe Dobra"}, "CUC": {"symbol" : "CUC", "name" : "Cuban Convertible Peso"}, "BSD": {"symbol" : "BSD", "name" : "Bahamian Dollar"}, "SDD": {"symbol" : "SDD", "name" : "Sudanese Dinar (1992–2007)"}, "SDG": {"symbol" : "SDG", "name" : "Sudanese Pound"}, "ZRN": {"symbol" : "ZRN", "name"
    : "Zairean New Zaire (1993–1998)"}, "IQD": {"symbol" : "IQD", "name" : "Iraqi Dinar"}, "SDP": {"symbol" : "SDP", "name" : "Sudanese Pound (1957–1998)"}, "CUP": {"symbol" : "CUP", "name" : "Cuban Peso"}, "GMD": {"symbol" : "GMD", "name" : "Gambian Dalasi"}, "TWD": {"symbol" : "NT$", "name" : "New Taiwan Dollar"}, "RSD": {"symbol" : "RSD", "name" : "Serbian Dinar"}, "ZRZ": {"symbol" : "ZRZ", "name" : "Zairean Zaire (1971–1993)"}, "UYI": {"symbol" : "UYI", "name" : "Uruguayan Peso (Indexed Units)"}, "MYR":
    {"symbol" : "MYR", "name" : "Malaysian Ringgit"}, "FKP": {"symbol" : "FKP", "name" : "Falkland Islands Pound"}, "UYP": {"symbol" : "UYP", "name" : "Uruguayan Peso (1975–1993)"}, "XOF": {"symbol" : "CFA", "name" : "West African CFA Franc"}, "ARA": {"symbol" : "ARA", "name" : "Argentine Austral"}, "UYU": {"symbol" : "UYU", "name" : "Uruguayan Peso"}, "SUR": {"symbol" : "SUR", "name" : "Soviet Rouble"}, "UYW": {"symbol" : "UYW", "name" : "Uruguayan Nominal Wage Index Unit"}, "CVE": {"symbol" : "CVE", "name"
    : "Cape Verdean Escudo"}, "OMR": {"symbol" : "OMR", "name" : "Omani Rial"}, "KES": {"symbol" : "KES", "name" : "Kenyan Shilling"}, "SEK": {"symbol" : "SEK", "name" : "Swedish Krona"}, "MZE": {"symbol" : "MZE", "name" : "Mozambican Escudo"}, "ARL": {"symbol" : "ARL", "name" : "Argentine Peso Ley (1970–1983)"}, "ARM": {"symbol" : "ARM", "name" : "Argentine Peso (1881–1970)"}, "BTN": {"symbol" : "BTN", "name" : "Bhutanese Ngultrum"}, "GNF": {"symbol" : "GNF", "name" : "Guinean Franc"}, "ARP": {"symbol" : "ARP",
    "name" : "Argentine Peso (1983–1985)"}, "MZN": {"symbol" : "MZN", "name" : "Mozambican Metical"}, "MZM": {"symbol" : "MZM", "name" : "Mozambican Metical (1980–2006)"}, "SVC": {"symbol" : "SVC", "name" : "Salvadoran Colón"}, "ARS": {"symbol" : "ARS", "name" : "Argentine Peso"}, "QAR": {"symbol" : "QAR", "name" : "Qatari Rial"}, "IRR": {"symbol" : "IRR", "name" : "Iranian Rial"}, "NLG": {"symbol" : "NLG", "name" : "Dutch Guilder"}, "GNS": {"symbol" : "GNS", "name" : "Guinean Syli"}, "XPD": {"symbol" : "XPD",
    "name" : "Palladium"}, "THB": {"symbol" : "THB", "name" : "Thai Baht"}, "UZS": {"symbol" : "UZS", "name" : "Uzbekistani Som"}, "XPF": {"symbol" : "CFPF", "name" : "CFP Franc"}, "BDT": {"symbol" : "BDT", "name" : "Bangladeshi Taka"}, "LYD": {"symbol" : "LYD", "name" : "Libyan Dinar"}, "BUK": {"symbol" : "BUK", "name" : "Burmese Kyat"}, "KWD": {"symbol" : "KWD", "name" : "Kuwaiti Dinar"}, "XPT": {"symbol" : "XPT", "name" : "Platinum"}, "RUB": {"symbol" : "RUB", "name" : "Russian Ruble"}, "ISK": {"symbol" :
    "ISK", "name" : "Icelandic Króna"}, "BEC": {"symbol" : "BEC", "name" : "Belgian Franc (convertible)"}, "ISJ": {"symbol" : "ISJ", "name" : "Icelandic Króna (1918–1981)"}, "BEF": {"symbol" : "BEF", "name" : "Belgian Franc"}, "MKD": {"symbol" : "MKD", "name" : "Macedonian Denar"}, "BEL": {"symbol" : "BEL", "name" : "Belgian Franc (financial)"}, "RUR": {"symbol" : "RUR", "name" : "Russian Ruble (1991–1998)"}, "DZD": {"symbol" : "DZD", "name" : "Algerian Dinar"}, "PAB": {"symbol" : "PAB", "name" : "Panamanian Balboa"}
    , "MKN": {"symbol" : "MKN", "name" : "Macedonian Denar (1992–1993)"}, "SGD": {"symbol" : "SGD", "name" : "Singapore Dollar"}, "KGS": {"symbol" : "KGS", "name" : "Kyrgystani Som"}, "HRD": {"symbol" : "HRD", "name" : "Croatian Dinar"}, "XAF": {"symbol" : "FCFA", "name" : "Central African CFA Franc"}, "XAG": {"symbol" : "XAG", "name" : "Silver"}, "ATS": {"symbol" : "ATS", "name" : "Austrian Schilling"}, "CHF": {"symbol" : "CHF", "name" : "Swiss Franc"}, "HRK": {"symbol" : "HRK", "name" : "Croatian Kuna"}, "ITL":
    {"symbol" : "ITL", "name" : "Italian Lira"}, "CHE": {"symbol" : "CHE", "name" : "WIR Euro"}, "DJF": {"symbol" : "DJF", "name" : "Djiboutian Franc"}, "MLF": {"symbol" : "MLF", "name" : "Malian Franc"}, "XRE": {"symbol" : "XRE", "name" : "RINET Funds"}, "TZS": {"symbol" : "TZS", "name" : "Tanzanian Shilling"}, "ADP": {"symbol" : "ADP", "name" : "Andorran Peseta"}, "VND": {"symbol" : "₫", "name" : "Vietnamese Dong"}, "XAU": {"symbol" : "XAU", "name" : "Gold"}, "AUD": {"symbol" : "A$", "name" : "Australian Dollar"}
    , "CHW": {"symbol" : "CHW", "name" : "WIR Franc"}, "KHR": {"symbol" : "KHR", "name" : "Cambodian Riel"}, "IDR": {"symbol" : "IDR", "name" : "Indonesian Rupiah"}, "XBA": {"symbol" : "XBA", "name" : "European Composite Unit"}, "KYD": {"symbol" : "KYD", "name" : "Cayman Islands Dollar"}, "VNN": {"symbol" : "VNN", "name" : "Vietnamese Dong (1978–1985)"}, "XBC": {"symbol" : "XBC", "name" : "European Unit of Account (XBC)"}, "YDD": {"symbol" : "YDD", "name" : "Yemeni Dinar"}, "XBB": {"symbol" : "XBB", "name" :
    "European Monetary Unit"}, "BWP": {"symbol" : "BWP", "name" : "Botswanan Pula"}, "GQE": {"symbol" : "GQE", "name" : "Equatorial Guinean Ekwele"}, "SHP": {"symbol" : "SHP", "name" : "St. Helena Pound"}, "CYP": {"symbol" : "CYP", "name" : "Cypriot Pound"}, "XBD": {"symbol" : "XBD", "name" : "European Unit of Account (XBD)"}, "TJS": {"symbol" : "TJS", "name" : "Tajikistani Somoni"}, "TJR": {"symbol" : "TJR", "name" : "Tajikistani Ruble"}, "AED": {"symbol" : "AED", "name" : "United Arab Emirates Dirham"}, "RWF":
    {"symbol" : "RWF", "name" : "Rwandan Franc"}, "DKK": {"symbol" : "DKK", "name" : "Danish Krone"}, "BGL": {"symbol" : "BGL", "name" : "Bulgarian Hard Lev"}, "ZWD": {"symbol" : "ZWD", "name" : "Zimbabwean Dollar (1980–2008)"}, "BGN": {"symbol" : "BGN", "name" : "Bulgarian Lev"}, "BGM": {"symbol" : "BGM", "name" : "Bulgarian Socialist Lev"}, "YUD": {"symbol" : "YUD", "name" : "Yugoslavian Hard Dinar (1966–1990)"}, "MMK": {"symbol" : "MMK", "name" : "Myanmar Kyat"}, "BGO": {"symbol" : "BGO", "name" : "Bulgarian Lev (1879–1952)"}
    , "NOK": {"symbol" : "NOK", "name" : "Norwegian Krone"}, "SYP": {"symbol" : "SYP", "name" : "Syrian Pound"}, "ZWL": {"symbol" : "ZWL", "name" : "Zimbabwean Dollar (2009)"}, "YUM": {"symbol" : "YUM", "name" : "Yugoslavian New Dinar (1994–2002)"}, "LKR": {"symbol" : "LKR", "name" : "Sri Lankan Rupee"}, "YUN": {"symbol" : "YUN", "name" : "Yugoslavian Convertible Dinar (1990–1992)"}, "ZWR": {"symbol" : "ZWR", "name" : "Zimbabwean Dollar (2008)"}, "CZK": {"symbol" : "CZK", "name" : "Czech Koruna"}, "IEP": {"symbol"
    : "IEP", "name" : "Irish Pound"}, "YUR": {"symbol" : "YUR", "name" : "Yugoslavian Reformed Dinar (1992–1993)"}, "GRD": {"symbol" : "GRD", "name" : "Greek Drachma"}, "XCD": {"symbol" : "EC$", "name" : "East Caribbean Dollar"}, "HTG": {"symbol" : "HTG", "name" : "Haitian Gourde"}, "XSU": {"symbol" : "XSU", "name" : "Sucre"}, "AFA": {"symbol" : "AFA", "name" : "Afghan Afghani (1927–2002)"}, "BHD": {"symbol" : "BHD", "name" : "Bahraini Dinar"}, "SIT": {"symbol" : "SIT", "name" : "Slovenian Tolar"}, "PTE": {"symbol"
    : "PTE", "name" : "Portuguese Escudo"}, "KZT": {"symbol" : "KZT", "name" : "Kazakhstani Tenge"}, "SZL": {"symbol" : "SZL", "name" : "Swazi Lilangeni"}, "YER": {"symbol" : "YER", "name" : "Yemeni Rial"}, "AFN": {"symbol" : "AFN", "name" : "Afghan Afghani"}, "BYB": {"symbol" : "BYB", "name" : "Belarusian Ruble (1994–1999)"}, "RHD": {"symbol" : "RHD", "name" : "Rhodesian Dollar"}, "AWG": {"symbol" : "AWG", "name" : "Aruban Florin"}, "NPR": {"symbol" : "NPR", "name" : "Nepalese Rupee"}, "MNT": {"symbol" : "MNT",
    "name" : "Mongolian Tugrik"}, "GBP": {"symbol" : "£", "name" : "British Pound"}, "BYN": {"symbol" : "BYN", "name" : "Belarusian Ruble"}, "XTS": {"symbol" : "XTS", "name" : "Testing Currency Code"}, "HUF": {"symbol" : "HUF", "name" : "Hungarian Forint"}, "BYR": {"symbol" : "BYR", "name" : "Belarusian Ruble (2000–2016)"}, "BIF": {"symbol" : "BIF", "name" : "Burundian Franc"}, "XUA": {"symbol" : "XUA", "name" : "ADB Unit of Account"}, "XDR": {"symbol" : "XDR", "name" : "Special Drawing Rights"}, "BZD": {"symbol"
    : "BZD", "name" : "Belize Dollar"}, "MOP": {"symbol" : "MOP", "name" : "Macanese Pataca"}, "NAD": {"symbol" : "NAD", "name" : "Namibian Dollar"}, "SKK": {"symbol" : "SKK", "name" : "Slovak Koruna"}, "PEI": {"symbol" : "PEI", "name" : "Peruvian Inti"}, "TMM": {"symbol" : "TMM", "name" : "Turkmenistani Manat (1993–2009)"}, "PEN": {"symbol" : "PEN", "name" : "Peruvian Sol"}, "WST": {"symbol" : "WST", "name" : "Samoan Tala"}, "TMT": {"symbol" : "TMT", "name" : "Turkmenistani Manat"}, "FRF": {"symbol" : "FRF",
    "name" : "French Franc"}, "CLF": {"symbol" : "CLF", "name" : "Chilean Unit of Account (UF)"}, "CLE": {"symbol" : "CLE", "name" : "Chilean Escudo"}, "PES": {"symbol" : "PES", "name" : "Peruvian Sol (1863–1965)"}, "GTQ": {"symbol" : "GTQ", "name" : "Guatemalan Quetzal"}, "CLP": {"symbol" : "CLP", "name" : "Chilean Peso"}, "XEU": {"symbol" : "XEU", "name" : "European Currency Unit"}, "TND": {"symbol" : "TND", "name" : "Tunisian Dinar"}, "SLL": {"symbol" : "SLL", "name" : "Sierra Leonean Leone"}, "XFO": {"symbol"
    : "XFO", "name" : "French Gold Franc"}, "DOP": {"symbol" : "DOP", "name" : "Dominican Peso"}, "KMF": {"symbol" : "KMF", "name" : "Comorian Franc"}, "XFU": {"symbol" : "XFU", "name" : "French UIC-Franc"}, "GEK": {"symbol" : "GEK", "name" : "Georgian Kupon Larit"}, "GEL": {"symbol" : "GEL", "name" : "Georgian Lari"}, "MAD": {"symbol" : "MAD", "name" : "Moroccan Dirham"}, "MAF": {"symbol" : "MAF", "name" : "Moroccan Franc"}, "AZM": {"symbol" : "AZM", "name" : "Azerbaijani Manat (1993–2006)"}, "TOP": {"symbol"
    : "TOP", "name" : "Tongan Paʻanga"}, "AZN": {"symbol" : "AZN", "name" : "Azerbaijani Manat"}, "PGK": {"symbol" : "PGK", "name" : "Papua New Guinean Kina"}, "CNH": {"symbol" : "CNH", "name" : "Chinese Yuan (offshore)"}, "UAH": {"symbol" : "UAH", "name" : "Ukrainian Hryvnia"}, "UAK": {"symbol" : "UAK", "name" : "Ukrainian Karbovanets"}, "ERN": {"symbol" : "ERN", "name" : "Eritrean Nakfa"}, "TPE": {"symbol" : "TPE", "name" : "Timorese Escudo"}, "MRO": {"symbol" : "MRO", "name" : "Mauritanian Ouguiya (1973–2017)"}
    , "CNX": {"symbol" : "CNX", "name" : "Chinese People’s Bank Dollar"}, "CNY": {"symbol" : "CN¥", "name" : "Chinese Yuan"}, "MRU": {"symbol" : "MRU", "name" : "Mauritanian Ouguiya"}, "ESA": {"symbol" : "ESA", "name" : "Spanish Peseta (A account)"}, "GWE": {"symbol" : "GWE", "name" : "Portuguese Guinea Escudo"}, "ESB": {"symbol" : "ESB", "name" : "Spanish Peseta (convertible account)"}, "BMD": {"symbol" : "BMD", "name" : "Bermudan Dollar"}, "PHP": {"symbol" : "PHP", "name" : "Philippine Piso"}, "XXX": {"symbol"
    : "¤", "name" : "Unknown Currency"}, "PYG": {"symbol" : "PYG", "name" : "Paraguayan Guarani"}, "JMD": {"symbol" : "JMD", "name" : "Jamaican Dollar"}, "GWP": {"symbol" : "GWP", "name" : "Guinea-Bissau Peso"}, "ESP": {"symbol" : "ESP", "name" : "Spanish Peseta"}, "COP": {"symbol" : "COP", "name" : "Colombian Peso"}, "USD": {"symbol" : "$", "name" : "US Dollar"}, "COU": {"symbol" : "COU", "name" : "Colombian Real Value Unit"}, "MCF": {"symbol" : "MCF", "name" : "Monegasque Franc"}, "USN": {"symbol" : "USN",
    "name" : "US Dollar (Next day)"}, "ETB": {"symbol" : "ETB", "name" : "Ethiopian Birr"}, "VEB": {"symbol" : "VEB", "name" : "Venezuelan Bolívar (1871–2008)"}, "ECS": {"symbol" : "ECS", "name" : "Ecuadorian Sucre"}, "USS": {"symbol" : "USS", "name" : "US Dollar (Same day)"}, "SOS": {"symbol" : "SOS", "name" : "Somali Shilling"}, "VEF": {"symbol" : "VEF", "name" : "Venezuelan Bolívar (2008–2018)"}, "VUV": {"symbol" : "VUV", "name" : "Vanuatu Vatu"}, "LAK": {"symbol" : "LAK", "name" : "Laotian Kip"}, "BND":
    {"symbol" : "BND", "name" : "Brunei Dollar"}, "ECV": {"symbol" : "ECV", "name" : "Ecuadorian Unit of Constant Value"}, "ZMK": {"symbol" : "ZMK", "name" : "Zambian Kwacha (1968–2012)"}, "LRD": {"symbol" : "LRD", "name" : "Liberian Dollar"}, "ALK": {"symbol" : "ALK", "name" : "Albanian Lek (1946–1965)"}, "ALL": {"symbol" : "ALL", "name" : "Albanian Lek"}, "GHC": {"symbol" : "GHC", "name" : "Ghanaian Cedi (1979–2007)"}, "MTL": {"symbol" : "MTL", "name" : "Maltese Lira"}, "VES": {"symbol" : "VES", "name" : "Venezuelan Bolívar"}
    , "ZMW": {"symbol" : "ZMW", "name" : "Zambian Kwacha"}, "MTP": {"symbol" : "MTP", "name" : "Maltese Pound"}, "ILP": {"symbol" : "ILP", "name" : "Israeli Pound"}, "MDC": {"symbol" : "MDC", "name" : "Moldovan Cupon"}, "ILR": {"symbol" : "ILR", "name" : "Israeli Shekel (1980–1985)"}, "TRL": {"symbol" : "TRL", "name" : "Turkish Lira (1922–2005)"}, "ILS": {"symbol" : "₪", "name" : "Israeli New Shekel"}, "GHS": {"symbol" : "GHS", "name" : "Ghanaian Cedi"}, "GYD": {"symbol" : "GYD", "name" : "Guyanaese Dollar"}
    , "KPW": {"symbol" : "KPW", "name" : "North Korean Won"}, "BOB": {"symbol" : "BOB", "name" : "Bolivian Boliviano"}, "MDL": {"symbol" : "MDL", "name" : "Moldovan Leu"}, "AMD": {"symbol" : "AMD", "name" : "Armenian Dram"}, "TRY": {"symbol" : "TRY", "name" : "Turkish Lira"}, "LBP": {"symbol" : "LBP", "name" : "Lebanese Pound"}, "BOL": {"symbol" : "BOL", "name" : "Bolivian Boliviano (1863–1963)"}, "JOD": {"symbol" : "JOD", "name" : "Jordanian Dinar"}, "HKD": {"symbol" : "HK$", "name" : "Hong Kong Dollar"}, "BOP":
    {"symbol" : "BOP", "name" : "Bolivian Peso"}, "EUR": {"symbol" : "€", "name" : "Euro"}, "LSL": {"symbol" : "LSL", "name" : "Lesotho Loti"}, "CAD": {"symbol" : "CA$", "name" : "Canadian Dollar"}, "BOV": {"symbol" : "BOV", "name" : "Bolivian Mvdol"}, "EEK": {"symbol" : "EEK", "name" : "Estonian Kroon"}, "MUR": {"symbol" : "MUR", "name" : "Mauritian Rupee"}, "ROL": {"symbol" : "ROL", "name" : "Romanian Leu (1952–2006)"}, "GIP": {"symbol" : "GIP", "name" : "Gibraltar Pound"}, "RON": {"symbol" : "RON", "name"
    : "Romanian Leu"}, "NGN": {"symbol" : "NGN", "name" : "Nigerian Naira"}, "CRC": {"symbol" : "CRC", "name" : "Costa Rican Colón"}, "PKR": {"symbol" : "PKR", "name" : "Pakistani Rupee"}, "ANG": {"symbol" : "ANG", "name" : "Netherlands Antillean Guilder"}, "KRH": {"symbol" : "KRH", "name" : "South Korean Hwan (1953–1962)"}, "SRD": {"symbol" : "SRD", "name" : "Surinamese Dollar"}, "LTL": {"symbol" : "LTL", "name" : "Lithuanian Litas"}, "SAR": {"symbol" : "SAR", "name" : "Saudi Riyal"}, "TTD": {"symbol" : "TTD",
    "name" : "Trinidad & Tobago Dollar"}, "MVP": {"symbol" : "MVP", "name" : "Maldivian Rupee (1947–1981)"}, "MVR": {"symbol" : "MVR", "name" : "Maldivian Rufiyaa"}, "KRO": {"symbol" : "KRO", "name" : "South Korean Won (1945–1953)"}, "SRG": {"symbol" : "SRG", "name" : "Surinamese Guilder"}, "DDM": {"symbol" : "DDM", "name" : "East German Mark"}, "INR": {"symbol" : "₹", "name" : "Indian Rupee"}, "LTT": {"symbol" : "LTT", "name" : "Lithuanian Talonas"}, "KRW": {"symbol" : "₩", "name" : "South Korean Won"}, "JPY":
    {"symbol" : "¥", "name" : "Japanese Yen"}, "AOA": {"symbol" : "AOA", "name" : "Angolan Kwanza"}, "PLN": {"symbol" : "PLN", "name" : "Polish Zloty"}, "SBD": {"symbol" : "SBD", "name" : "Solomon Islands Dollar"}, "CSD": {"symbol" : "CSD", "name" : "Serbian Dinar (2002–2006)"}, "CSK": {"symbol" : "CSK", "name" : "Czechoslovak Hard Koruna"}, "LUC": {"symbol" : "LUC", "name" : "Luxembourgian Convertible Franc"}, "LUF": {"symbol" : "LUF", "name" : "Luxembourgian Franc"}, "AOK": {"symbol" : "AOK", "name" : "Angolan Kwanza (1977–1991)"}
    , "PLZ": {"symbol" : "PLZ", "name" : "Polish Zloty (1950–1995)"}, "AON": {"symbol" : "AON", "name" : "Angolan New Kwanza (1990–2000)"}, "MWK": {"symbol" : "MWK", "name" : "Malawian Kwacha"}, "LUL": {"symbol" : "LUL", "name" : "Luxembourg Financial Franc"}, "AOR": {"symbol" : "AOR", "name" : "Angolan Readjusted Kwanza (1995–1999)"}, "BAD": {"symbol" : "BAD", "name" : "Bosnia-Herzegovina Dinar (1992–1994)"}, "MGA": {"symbol" : "MGA", "name" : "Malagasy Ariary"}, "NIC": {"symbol" : "NIC", "name" : "Nicaraguan Córdoba (1988–1991)"}
    , "FIM": {"symbol" : "FIM", "name" : "Finnish Markka"}, "DEM": {"symbol" : "DEM", "name" : "German Mark"}, "MGF": {"symbol" : "MGF", "name" : "Malagasy Franc"}, "BAM": {"symbol" : "BAM", "name" : "Bosnia-Herzegovina Convertible Mark"}, "BAN": {"symbol" : "BAN", "name" : "Bosnia-Herzegovina New Dinar (1994–1997)"}, "EGP": {"symbol" : "EGP", "name" : "Egyptian Pound"}, "SSP": {"symbol" : "SSP", "name" : "South Sudanese Pound"}, "BRC": {"symbol" : "BRC", "name" : "Brazilian Cruzado (1986–1989)"}, "BRB": {"symbol"
    : "BRB", "name" : "Brazilian New Cruzeiro (1967–1986)"}, "BRE": {"symbol" : "BRE", "name" : "Brazilian Cruzeiro (1990–1993)"}, "NIO": {"symbol" : "NIO", "name" : "Nicaraguan Córdoba"}, "NZD": {"symbol" : "NZ$", "name" : "New Zealand Dollar"}, "BRL": {"symbol" : "R$", "name" : "Brazilian Real"}, "BRN": {"symbol" : "BRN", "name" : "Brazilian New Cruzado (1989–1990)"}}};
},
otpp_ResourceAccessor = $rt_classWithoutFields(),
otpp_ResourceAccessor__init_ = $this => {
    return;
},
otpp_ResourceAccessor__init_0 = () => {
    let var_0 = new otpp_ResourceAccessor();
    otpp_ResourceAccessor__init_(var_0);
    return var_0;
},
otpp_ResourceAccessor_keys = var$1 => {
    let result = [];
    for (let key in var$1) {
        result.push(key);
    }
    return result;
};
function ju_LinkedHashMap() {
    let a = this; ju_HashMap.call(a);
    a.$accessOrder = 0;
    a.$head = null;
    a.$tail = null;
}
let ju_LinkedHashMap__init_0 = $this => {
    let var$1, var$2, var$3;
    var$1 = ju_HashMap_calculateCapacity(16);
    $this.$elementCount = 0;
    var$2 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, var$1);
    var$3 = var$2.data;
    $this.$elementData = var$2;
    $this.$loadFactor = 0.75;
    $this.$threshold = var$3.length * 0.75 | 0;
    $this.$accessOrder = 0;
    $this.$head = null;
},
ju_LinkedHashMap__init_ = () => {
    let var_0 = new ju_LinkedHashMap();
    ju_LinkedHashMap__init_0(var_0);
    return var_0;
},
ju_LinkedHashMap_newElementArray = ($this, $s) => {
    return $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, $s);
},
ju_LinkedHashMap_getOrDefault = ($this, $key, $defaultValue) => {
    let $entry, $hash, $index, var$6, var$7;
    if ($key === null) {
        $entry = $this.$elementData.data[0];
        while ($entry !== null && $entry.$key !== null) {
            $entry = $entry.$next3;
        }
        $entry = $entry;
    } else {
        $hash = $key.$hashCode();
        $index = $hash & 2147483647;
        var$6 = $this.$elementData.data;
        var$7 = var$6[$index % var$6.length | 0];
        while (var$7 !== null) {
            if (var$7.$origKeyHash == $hash) {
                $entry = var$7.$key;
                if ($key !== $entry && !$key.$equals($entry) ? 0 : 1)
                    break;
            }
            var$7 = var$7.$next3;
        }
        $entry = var$7;
    }
    if ($entry === null)
        return $defaultValue;
    if ($this.$accessOrder)
        ju_LinkedHashMap_linkEntry($this, $entry, 0);
    return $entry.$value0;
},
ju_LinkedHashMap_get = ($this, $key) => {
    return ju_LinkedHashMap_getOrDefault($this, $key, null);
},
ju_LinkedHashMap_createHashedEntry = ($this, $key, $index, $hash, $first) => {
    let $entry, var$6, var$7;
    $entry = new ju_LinkedHashMap$LinkedHashMapEntry;
    var$6 = null;
    $entry.$key = $key;
    $entry.$value0 = var$6;
    $entry.$origKeyHash = $hash;
    $entry.$chainForward = null;
    $entry.$chainBackward = null;
    var$7 = $this.$elementData.data;
    $entry.$next3 = var$7[$index];
    var$7[$index] = $entry;
    if (!$first) {
        $key = $this.$tail;
        if ($key === null)
            $this.$head = $entry;
        else
            $key.$chainForward = $entry;
        $entry.$chainBackward = $key;
        $this.$tail = $entry;
    } else {
        $key = $this.$head;
        if ($key === null)
            $this.$tail = $entry;
        else
            $key.$chainBackward = $entry;
        $entry.$chainForward = $key;
        $this.$head = $entry;
    }
    return $entry;
},
ju_LinkedHashMap_put = ($this, $key, $value) => {
    let $oldSize;
    $oldSize = $this.$elementCount;
    return ju_LinkedHashMap_putImpl($this, $key, $value, 0, $this.$accessOrder);
},
ju_LinkedHashMap_putImpl = ($this, $key, $value, $first, $forceMotion) => {
    let $hash, var$6, var$7, $index, $entry, $existing;
    if (!$this.$elementCount) {
        $this.$head = null;
        $this.$tail = null;
    }
    $hash = $key !== null ? $key.$hashCode() : 0;
    var$6 = $hash & 2147483647;
    var$7 = $this.$elementData.data;
    $index = var$6 % var$7.length | 0;
    if ($key === null) {
        $entry = var$7[0];
        while ($entry !== null && $entry.$key !== null) {
            $entry = $entry.$next3;
        }
    } else {
        $entry = var$7[$index];
        while ($entry !== null) {
            if ($entry.$origKeyHash == $hash) {
                $existing = $entry.$key;
                if ($key !== $existing && !$key.$equals($existing) ? 0 : 1)
                    break;
            }
            $entry = $entry.$next3;
        }
    }
    $entry = $entry;
    if ($entry === null) {
        $this.$modCount1 = $this.$modCount1 + 1 | 0;
        $forceMotion = $this.$elementCount + 1 | 0;
        $this.$elementCount = $forceMotion;
        if ($forceMotion > $this.$threshold) {
            ju_HashMap_rehash($this, $this.$elementData.data.length);
            $index = var$6 % $this.$elementData.data.length | 0;
        }
        $entry = ju_LinkedHashMap_createHashedEntry($this, $key, $index, $hash, $first);
    } else if ($forceMotion)
        ju_LinkedHashMap_linkEntry($this, $entry, $first);
    $existing = $entry.$value0;
    $entry.$value0 = $value;
    return $existing;
},
ju_LinkedHashMap_linkEntry = ($this, $entry, $first) => {
    let $n, $p;
    if (!$first) {
        $n = $entry.$chainForward;
        if ($n === null)
            return;
        $p = $entry.$chainBackward;
        if ($p === null)
            $this.$head = $n;
        else
            $p.$chainForward = $n;
        $n.$chainBackward = $p;
        $n = $this.$tail;
        if ($n !== null)
            $n.$chainForward = $entry;
        $entry.$chainBackward = $n;
        $entry.$chainForward = null;
        $this.$tail = $entry;
    } else {
        $p = $entry.$chainBackward;
        if ($p === null)
            return;
        $n = $entry.$chainForward;
        if ($n === null)
            $this.$tail = $p;
        else
            $n.$chainBackward = $p;
        $p.$chainForward = $n;
        $n = $this.$head;
        if ($n !== null)
            $n.$chainBackward = $entry;
        $entry.$chainForward = $n;
        $entry.$chainBackward = null;
        $this.$head = $entry;
    }
},
ju_LinkedHashMap_keySet = $this => {
    let var$1;
    if ($this.$cachedKeySet === null) {
        var$1 = new ju_LinkedHashMapKeySet;
        var$1.$base1 = $this;
        var$1.$reversed1 = 0;
        $this.$cachedKeySet = var$1;
    }
    return $this.$cachedKeySet;
},
ju_Enumeration = $rt_classWithoutFields(0),
ju_Hashtable$1 = $rt_classWithoutFields(),
ju_Hashtable$1__init_ = $this => {
    return;
},
ju_Hashtable$1__init_0 = () => {
    let var_0 = new ju_Hashtable$1();
    ju_Hashtable$1__init_(var_0);
    return var_0;
},
ju_Iterator = $rt_classWithoutFields(0),
ju_Hashtable$2 = $rt_classWithoutFields(),
ju_Hashtable$2__init_ = $this => {
    return;
},
ju_Hashtable$2__init_0 = () => {
    let var_0 = new ju_Hashtable$2();
    ju_Hashtable$2__init_(var_0);
    return var_0;
};
function nle_MD5Digest() {
    nles_GeneralDigest.call(this);
    this.$X0 = null;
}
let nle_MD5Digest__init_ = $this => {
    $this.$xBuf = $rt_createByteArray(4);
    $this.$xBufOff = 0;
    $this.$X0 = $rt_createIntArray(16);
},
nle_MD5Digest__init_0 = () => {
    let var_0 = new nle_MD5Digest();
    nle_MD5Digest__init_(var_0);
    return var_0;
},
nms_CreativeTabCombat = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabBlock = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabDeco = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabRedstone = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabTransport = $rt_classWithoutFields(nms_CreativeTabs),
nms_EnumEnchantmentType = $rt_classWithoutFields(jl_Enum),
nms_EnumEnchantmentType_all = null,
nms_EnumEnchantmentType_armor = null,
nms_EnumEnchantmentType_armor_feet = null,
nms_EnumEnchantmentType_armor_legs = null,
nms_EnumEnchantmentType_armor_torso = null,
nms_EnumEnchantmentType_armor_head = null,
nms_EnumEnchantmentType_weapon = null,
nms_EnumEnchantmentType_digger = null,
nms_EnumEnchantmentType_bow = null,
nms_EnumEnchantmentType_$VALUES = null,
nms_EnumEnchantmentType_values = () => {
    return nms_EnumEnchantmentType_$VALUES.$clone0();
},
nms_EnumEnchantmentType_canEnchantItem = ($this, $par1Item) => {
    let var$2;
    if ($this === nms_EnumEnchantmentType_all)
        return 1;
    if (!($par1Item instanceof nms_ItemArmor))
        return $par1Item instanceof nms_ItemSword ? ($this !== nms_EnumEnchantmentType_weapon ? 0 : 1) : $par1Item instanceof nms_ItemTool ? ($this !== nms_EnumEnchantmentType_digger ? 0 : 1) : !($par1Item instanceof nms_ItemBow) ? 0 : $this !== nms_EnumEnchantmentType_bow ? 0 : 1;
    if ($this === nms_EnumEnchantmentType_armor)
        return 1;
    var$2 = $par1Item.$armorType;
    return !var$2 ? ($this !== nms_EnumEnchantmentType_armor_head ? 0 : 1) : var$2 == 2 ? ($this !== nms_EnumEnchantmentType_armor_legs ? 0 : 1) : var$2 == 1 ? ($this !== nms_EnumEnchantmentType_armor_torso ? 0 : 1) : var$2 != 3 ? 0 : $this !== nms_EnumEnchantmentType_armor_feet ? 0 : 1;
},
nms_EnumEnchantmentType_$values = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_EnumEnchantmentType, 9);
    var$2 = var$1.data;
    var$2[0] = nms_EnumEnchantmentType_all;
    var$2[1] = nms_EnumEnchantmentType_armor;
    var$2[2] = nms_EnumEnchantmentType_armor_feet;
    var$2[3] = nms_EnumEnchantmentType_armor_legs;
    var$2[4] = nms_EnumEnchantmentType_armor_torso;
    var$2[5] = nms_EnumEnchantmentType_armor_head;
    var$2[6] = nms_EnumEnchantmentType_weapon;
    var$2[7] = nms_EnumEnchantmentType_digger;
    var$2[8] = nms_EnumEnchantmentType_bow;
    return var$1;
},
nms_EnumEnchantmentType__clinit_ = () => {
    let var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1489);
    var$1.$ordinal = 0;
    nms_EnumEnchantmentType_all = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1490);
    var$1.$ordinal = 1;
    nms_EnumEnchantmentType_armor = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1491);
    var$1.$ordinal = 2;
    nms_EnumEnchantmentType_armor_feet = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1492);
    var$1.$ordinal = 3;
    nms_EnumEnchantmentType_armor_legs = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1493);
    var$1.$ordinal = 4;
    nms_EnumEnchantmentType_armor_torso = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1494);
    var$1.$ordinal = 5;
    nms_EnumEnchantmentType_armor_head = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1495);
    var$1.$ordinal = 6;
    nms_EnumEnchantmentType_weapon = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(1496);
    var$1.$ordinal = 7;
    nms_EnumEnchantmentType_digger = var$1;
    var$1 = new nms_EnumEnchantmentType;
    var$1.$name0 = $rt_s(411);
    var$1.$ordinal = 8;
    nms_EnumEnchantmentType_bow = var$1;
    nms_EnumEnchantmentType_$VALUES = nms_EnumEnchantmentType_$values();
},
nms_CreativeTabMisc = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabSearch = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabFood = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabTools = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabBrewing = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabMaterial = $rt_classWithoutFields(nms_CreativeTabs),
nms_CreativeTabInventory = $rt_classWithoutFields(nms_CreativeTabs),
nms_BehaviorDispenseArmor = $rt_classWithoutFields(nms_BehaviorDefaultDispenseItem),
nms_BehaviorDispenseArmor__init_ = $this => {
    return;
},
nms_BehaviorDispenseArmor__init_0 = () => {
    let var_0 = new nms_BehaviorDispenseArmor();
    nms_BehaviorDispenseArmor__init_(var_0);
    return var_0;
},
nms_BehaviorDispenseArmor_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var8, $var10, $var4, $var5, var$7, $var6, $var9, var$10, var$11, var$12, var$13, var$14, var$15, $var7, $var12, $var11, var$19, var$20, var$21, var$22, var$23, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var11 = $thread.pop();$var12 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var10 = $thread.pop();$var8 =
        $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $par1IBlockSource.$worldObj4;
        $var10 = $par1IBlockSource.$xPos;
        $var4 = $par1IBlockSource.$yPos;
        $var5 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var8, $var10, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var10 = $var4 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        $var8 = var$7[$var10 % var$7.length | 0];
        $var4 = $par1IBlockSource.$xPos + $var8.$frontOffsetX | 0;
        $var5 = $par1IBlockSource.$yPos + $var8.$frontOffsetY | 0;
        $var6 = $par1IBlockSource.$zPos + $var8.$frontOffsetZ | 0;
        $var9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $var4;
        var$11 = $var5;
        var$12 = $var6;
        var$13 = $var4 + 1 | 0;
        var$14 = $var5 + 1 | 0;
        var$15 = $var6 + 1 | 0;
        $var4 = $var9.$nextPoolIndex;
        $var8 = $var9.$listAABB;
        $var10 = $var8.$size0;
        $var5 = $rt_compare($var4, $var10);
        if ($var5 >= 0) {
            $var7 = new nms_AxisAlignedBB;
            $var7.$minX0 = var$10;
            $var7.$minY0 = var$11;
            $var7.$minZ0 = var$12;
            $var7.$maxX0 = var$13;
            $var7.$maxY = var$14;
            $var7.$maxZ0 = var$15;
            ju_ArrayList_ensureCapacity($var8, $var10 + 1 | 0);
            var$7 = $var8.$array.data;
            $var4 = $var8.$size0;
            $var8.$size0 = $var4 + 1 | 0;
            var$7[$var4] = $var7;
            $var8.$modCount = $var8.$modCount + 1 | 0;
        } else if ($var4 >= 0 && $var5 < 0) {
            $var7 = $var8.$array.data[$var4];
            $var7.$minX0 = var$10;
            $var7.$minY0 = var$11;
            $var7.$minZ0 = var$12;
            $var7.$maxX0 = var$13;
            $var7.$maxY = var$14;
            $var7.$maxZ0 = var$15;
        } else {
            $par1IBlockSource = new jl_IndexOutOfBoundsException;
            $par1IBlockSource.$suppressionEnabled = 1;
            $par1IBlockSource.$writableStackTrace = 1;
            $rt_throw($par1IBlockSource);
        }
        $var9.$nextPoolIndex = $var9.$nextPoolIndex + 1 | 0;
        $var12 = $par1IBlockSource.$worldObj4;
        $var8 = $rt_cls(nms_EntityLivingBase);
        $var9 = new nms_EntitySelectorArmoredMob;
        $var9.$field_96567_c = $par2ItemStack;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var12, $var8, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var4 = $var8.$size0;
        if ($var4 <= 0) {
            $var8 = $par1IBlockSource.$worldObj4;
            $var10 = $par1IBlockSource.$xPos;
            $var4 = $par1IBlockSource.$yPos;
            $var5 = $par1IBlockSource.$zPos;
            $ptr = 3;
            continue main;
        }
        if (0 >= $var4) {
            $par1IBlockSource = new jl_IndexOutOfBoundsException;
            $par1IBlockSource.$suppressionEnabled = 1;
            $par1IBlockSource.$writableStackTrace = 1;
            $rt_throw($par1IBlockSource);
        }
        $var9 = $var8.$array.data[0];
        $var10 = !($var9 instanceof nms_EntityPlayer) ? 0 : 1;
        $var11 = nms_EntityLiving_getArmorPosition($par2ItemStack);
        $var12 = new nms_ItemStack;
        $var4 = $par2ItemStack.$itemID;
        $var5 = $par2ItemStack.$stackSize;
        $var6 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $var12.$itemID = $var4;
        $var12.$stackSize = $var5;
        $var12.$itemDamage = $var6;
        if ($var6 < 0)
            $var12.$itemDamage = 0;
        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
        if ($par1IBlockSource !== null) {
            $var8 = new nms_NBTTagCompound;
            $var7 = $par1IBlockSource.$name;
            if ($var7 === null)
                $var7 = $rt_s(3);
            $var8.$name = $var7;
            $var7 = new ju_HashMap;
            $var4 = ju_HashMap_calculateCapacity(16);
            $var7.$elementCount = 0;
            var$19 = $rt_createArray(ju_HashMap$HashEntry, $var4);
            var$7 = var$19.data;
            $var7.$elementData = var$19;
            $var7.$loadFactor = 0.75;
            $var7.$threshold = var$7.length * 0.75 | 0;
            $var8.$tagMap = $var7;
            $var7 = $par1IBlockSource.$tagMap;
            if ($var7.$cachedKeySet === null) {
                var$20 = new ju_HashMap$1;
                var$20.$this$0 = $var7;
                $var7.$cachedKeySet = var$20;
            }
            $var7 = $var7.$cachedKeySet.$iterator();
            while ($var7.$hasNext()) {
                var$20 = $var7.$next();
                var$21 = $par1IBlockSource.$tagMap;
                if (var$20 === null) {
                    var$21 = var$21.$elementData.data[0];
                    while (var$21 !== null && var$21.$key !== null) {
                        var$21 = var$21.$next3;
                    }
                } else {
                    a: {
                        if (!var$20.$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= var$20.$nativeString.length)
                                    break a;
                                var$20.$hashCode1 = (31 * var$20.$hashCode1 | 0) + var$20.$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    $var6 = var$20.$hashCode1;
                    var$7 = var$21.$elementData.data;
                    var$21 = var$7[$var6 & (var$7.length - 1 | 0)];
                    while (var$21 !== null) {
                        if (var$21.$origKeyHash == $var6) {
                            b: {
                                var$22 = var$21.$key;
                                if (var$20 !== var$22) {
                                    if (var$20 === var$22)
                                        $var4 = 1;
                                    else if (!(var$22 instanceof jl_String))
                                        $var4 = 0;
                                    else {
                                        var$22 = var$22;
                                        $var4 = var$20.$nativeString !== var$22.$nativeString ? 0 : 1;
                                    }
                                    if (!$var4) {
                                        $var4 = 0;
                                        break b;
                                    }
                                }
                                $var4 = 1;
                            }
                            if ($var4)
                                break;
                        }
                        var$21 = var$21.$next3;
                    }
                }
                var$21 = var$21 === null ? null : var$21.$value0;
                var$21 = var$21.$copy();
                var$22 = $var8.$tagMap;
                if (var$20 !== null)
                    var$21.$name = var$20;
                else
                    var$21.$name = $rt_s(3);
                ju_HashMap_putImpl(var$22, var$20, var$21);
            }
            $var12.$stackTagCompound = $var8;
        }
        $var12.$stackSize = 1;
        $var10 = $var11 - $var10 | 0;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($var8, $var10, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var10 = $var4 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$23 = var$7[$var10 % var$7.length | 0];
        $ptr = 4;
    case 4:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = new nms_ItemStack;
        $var4 = $par2ItemStack.$itemID;
        $var5 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $var9.$itemID = $var4;
        $var9.$stackSize = 1;
        $var9.$itemDamage = $var5;
        if ($var5 < 0)
            $var9.$itemDamage = 0;
        $var7 = $par2ItemStack.$stackTagCompound;
        if ($var7 !== null) {
            $var12 = new nms_NBTTagCompound;
            var$20 = $var7.$name;
            if (var$20 === null)
                var$20 = $rt_s(3);
            $var12.$name = var$20;
            var$20 = new ju_HashMap;
            jl_Object__init_(var$20);
            $var4 = ju_HashMap_calculateCapacity(16);
            var$20.$elementCount = 0;
            var$19 = $rt_createArray(ju_HashMap$HashEntry, $var4);
            var$7 = var$19.data;
            var$20.$elementData = var$19;
            var$20.$loadFactor = 0.75;
            var$20.$threshold = var$7.length * 0.75 | 0;
            $var12.$tagMap = var$20;
            var$20 = $var7.$tagMap;
            if (var$20.$cachedKeySet === null) {
                var$21 = new ju_HashMap$1;
                var$21.$this$0 = var$20;
                var$20.$cachedKeySet = var$21;
            }
            var$20 = var$20.$cachedKeySet.$iterator();
            while (var$20.$hasNext()) {
                var$21 = var$20.$next();
                var$22 = $var7.$tagMap;
                if (var$21 === null) {
                    var$22 = var$22.$elementData.data[0];
                    while (var$22 !== null && var$22.$key !== null) {
                        var$22 = var$22.$next3;
                    }
                } else {
                    c: {
                        if (!var$21.$hashCode1) {
                            $var6 = 0;
                            while (true) {
                                if ($var6 >= var$21.$nativeString.length)
                                    break c;
                                var$21.$hashCode1 = (31 * var$21.$hashCode1 | 0) + var$21.$nativeString.charCodeAt($var6) | 0;
                                $var6 = $var6 + 1 | 0;
                            }
                        }
                    }
                    $var6 = var$21.$hashCode1;
                    var$7 = var$22.$elementData.data;
                    var$22 = var$7[$var6 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var6) {
                            a: {
                                var$24 = var$22.$key;
                                if (var$21 !== var$24) {
                                    if (var$21 === var$24)
                                        $var4 = 1;
                                    else if (!(var$24 instanceof jl_String))
                                        $var4 = 0;
                                    else {
                                        var$24 = var$24;
                                        $var4 = var$21.$nativeString !== var$24.$nativeString ? 0 : 1;
                                    }
                                    if (!$var4) {
                                        $var4 = 0;
                                        break a;
                                    }
                                }
                                $var4 = 1;
                            }
                            if ($var4)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                }
                var$22 = var$22 === null ? null : var$22.$value0;
                var$22 = var$22.$copy();
                var$24 = $var12.$tagMap;
                if (var$21 !== null)
                    var$22.$name = var$21;
                else
                    var$22.$name = $rt_s(3);
                ju_HashMap_putImpl(var$24, var$21, var$22);
            }
            $var9.$stackTagCompound = $var12;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        $par1IBlockSource = $par1IBlockSource.$worldObj4;
        $var10 = 6;
        $ptr = 5;
    case 5:
        nms_BehaviorDefaultDispenseItem_doDispense($par1IBlockSource, $var9, $var10, var$23, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    case 6:
        $var9.$setCurrentItemOrArmor($var10, $var12);
        if ($rt_suspending()) {
            break main;
        }
        if ($var9 instanceof nms_EntityLiving)
            $var9.$equipmentDropChances.data[$var11] = 2.0;
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var8, $var10, $var4, $var5, var$7, $var6, $var9, var$10, var$11, var$12, var$13, var$14, var$15, $var7, $var12, $var11, var$19, var$20, var$21, var$22, var$23, var$24, $ptr);
},
nms_SharedMonsterAttributes = $rt_classWithoutFields(),
nms_SharedMonsterAttributes_maxHealth = null,
nms_SharedMonsterAttributes_followRange = null,
nms_SharedMonsterAttributes_knockbackResistance = null,
nms_SharedMonsterAttributes_movementSpeed = null,
nms_SharedMonsterAttributes_attackDamage = null,
nms_SharedMonsterAttributes__init_ = $this => {
    return;
},
nms_SharedMonsterAttributes__init_0 = () => {
    let var_0 = new nms_SharedMonsterAttributes();
    nms_SharedMonsterAttributes__init_(var_0);
    return var_0;
},
nms_SharedMonsterAttributes_func_111260_a = ($par0BaseAttributeMap, $par1NBTTagList) => {
    let $var3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $var3 = 0;
    a: {
        b: {
            while (true) {
                var$4 = $par1NBTTagList.$tagList;
                var$5 = $rt_compare($var3, var$4.$size0);
                if (var$5 >= 0)
                    break;
                if ($var3 < 0)
                    break a;
                if (var$5 >= 0)
                    break a;
                c: {
                    $var4 = var$4.$array.data[$var3];
                    var$7 = $var4.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(919).$nativeString.length)
                                break c;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(919).$hashCode1;
                var$9 = var$7.$elementData.data;
                var$7 = var$9[var$8 & (var$9.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$8) {
                        d: {
                            var$10 = var$7.$key;
                            if ($rt_s(919) !== var$10) {
                                if ($rt_s(919) === var$10)
                                    var$5 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    var$5 = 0;
                                else {
                                    var$10 = var$10;
                                    var$5 = $rt_s(919).$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!var$5) {
                                    var$5 = 0;
                                    break d;
                                }
                            }
                            var$5 = 1;
                        }
                        if (var$5)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
                if (!(var$7 === null ? 0 : 1))
                    var$11 = $rt_s(3);
                else {
                    var$7 = $var4.$tagMap;
                    if ($rt_s(919) === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(919).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(919).$nativeString.length)
                                        break e;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(919).$hashCode1;
                        var$9 = var$7.$elementData.data;
                        var$7 = var$9[var$8 & (var$9.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$8) {
                                f: {
                                    var$10 = var$7.$key;
                                    if ($rt_s(919) !== var$10) {
                                        if ($rt_s(919) === var$10)
                                            var$5 = 1;
                                        else if (!(var$10 instanceof jl_String))
                                            var$5 = 0;
                                        else {
                                            var$10 = var$10;
                                            var$5 = $rt_s(919).$nativeString !== var$10.$nativeString ? 0 : 1;
                                        }
                                        if (!var$5) {
                                            var$5 = 0;
                                            break f;
                                        }
                                    }
                                    var$5 = 1;
                                }
                                if (var$5)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$11 = (var$7 === null ? null : var$7.$value0).$data1;
                }
                var$4 = $par0BaseAttributeMap.$attributesByName.$internalMap;
                var$7 = var$11.$nativeString.toLowerCase();
                var$4 = ju_LinkedHashMap_getOrDefault(var$4, var$7 === var$11.$nativeString ? var$11 : jl_String__init_0(var$7), null);
                if (var$4 === null) {
                    var$4 = $par0BaseAttributeMap.$field_111163_c.$internalMap;
                    var$7 = var$11.$nativeString.toLowerCase();
                    if (var$7 !== var$11.$nativeString)
                        var$11 = jl_String__init_0(var$7);
                    var$4 = ju_LinkedHashMap_getOrDefault(var$4, var$11, null);
                }
                if (var$4 !== null)
                    nms_SharedMonsterAttributes_func_111258_a(var$4, $var4);
                else {
                    if (jl_System_outCache === null) {
                        var$4 = new otcic_JSStdoutPrintStream;
                        var$7 = new ji_ByteArrayOutputStream;
                        var$7.$buf = $rt_createByteArray(32);
                        var$4.$out0 = var$7;
                        var$7 = new jl_StringBuilder;
                        jl_Object__init_(var$7);
                        var$7.$buffer = $rt_createCharArray(16);
                        var$4.$sb = var$7;
                        var$4.$buffer0 = $rt_createCharArray(32);
                        var$4.$autoFlush = 0;
                        var$4.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_outCache = var$4;
                    }
                    g: {
                        var$4 = $var4.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(919).$nativeString.length)
                                    break g;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(919).$hashCode1;
                    var$9 = var$4.$elementData.data;
                    var$4 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$8) {
                            h: {
                                var$7 = var$4.$key;
                                if ($rt_s(919) !== var$7) {
                                    if ($rt_s(919) === var$7)
                                        var$5 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$5 = $rt_s(919).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break h;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                    if (!(var$4 === null ? 0 : 1))
                        var$7 = $rt_s(3);
                    else {
                        var$4 = $var4.$tagMap;
                        if ($rt_s(919) === null) {
                            var$4 = var$4.$elementData.data[0];
                            while (var$4 !== null && var$4.$key !== null) {
                                var$4 = var$4.$next3;
                            }
                        } else {
                            i: {
                                if (!$rt_s(919).$hashCode1) {
                                    var$5 = 0;
                                    while (true) {
                                        if (var$5 >= $rt_s(919).$nativeString.length)
                                            break i;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                        var$5 = var$5 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $rt_s(919).$hashCode1;
                            var$9 = var$4.$elementData.data;
                            var$4 = var$9[var$8 & (var$9.length - 1 | 0)];
                            while (var$4 !== null) {
                                if (var$4.$origKeyHash == var$8) {
                                    j: {
                                        var$7 = var$4.$key;
                                        if ($rt_s(919) !== var$7) {
                                            if ($rt_s(919) === var$7)
                                                var$5 = 1;
                                            else if (!(var$7 instanceof jl_String))
                                                var$5 = 0;
                                            else {
                                                var$7 = var$7;
                                                var$5 = $rt_s(919).$nativeString !== var$7.$nativeString ? 0 : 1;
                                            }
                                            if (!var$5) {
                                                var$5 = 0;
                                                break j;
                                            }
                                        }
                                        var$5 = 1;
                                    }
                                    if (var$5)
                                        break;
                                }
                                var$4 = var$4.$next3;
                            }
                        }
                        var$7 = (var$4 === null ? null : var$4.$value0).$data1;
                    }
                    var$4 = new jl_StringBuilder;
                    var$4.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1497));
                    var$5 = var$4.$length0;
                    if (var$7 === null)
                        var$7 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$4, var$5, var$7);
                    var$5 = var$4.$length0;
                    jl_AbstractStringBuilder_insertSpace(var$4, var$5, var$5 + 1 | 0);
                    var$9 = var$4.$buffer;
                    var$12 = var$9.data;
                    var$12[var$5] = 39;
                    var$7 = new jl_String;
                    var$13 = var$4.$length0;
                    var$8 = var$12.length;
                    if (var$13 < 0)
                        break b;
                    if (var$13 > (var$8 - 0 | 0))
                        break b;
                    var$7.$nativeString = $rt_charArrayToString(var$9.data, 0, var$13);
                    $rt_putStdout($rt_ustr(var$7));
                    $rt_putStdout("\n");
                }
                $var3 = $var3 + 1 | 0;
            }
            return;
        }
        $par0BaseAttributeMap = new jl_IndexOutOfBoundsException;
        $par0BaseAttributeMap.$suppressionEnabled = 1;
        $par0BaseAttributeMap.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par0BaseAttributeMap);
        $rt_throw($par0BaseAttributeMap);
    }
    $par0BaseAttributeMap = new jl_IndexOutOfBoundsException;
    $par0BaseAttributeMap.$suppressionEnabled = 1;
    $par0BaseAttributeMap.$writableStackTrace = 1;
    $rt_throw($par0BaseAttributeMap);
},
nms_SharedMonsterAttributes_func_111258_a = ($par0AttributeInstance, $par1NBTTagCompound) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, $var5, $var2, var$11, $var4, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20;
    a: {
        var$3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1498).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1498).$nativeString.length)
                    break a;
                $rt_s(1498).$hashCode1 = (31 * $rt_s(1498).$hashCode1 | 0) + $rt_s(1498).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(1498).$hashCode1;
    var$5 = var$3.$elementData.data;
    var$3 = var$5[$var3 & (var$5.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == $var3) {
            b: {
                var$6 = var$3.$key;
                if ($rt_s(1498) !== var$6) {
                    if ($rt_s(1498) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(1498).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break b;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (var$3 === null ? 0 : 1) {
        var$3 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1498) !== null) {
            c: {
                if (!$rt_s(1498).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1498).$nativeString.length)
                            break c;
                        $rt_s(1498).$hashCode1 = (31 * $rt_s(1498).$hashCode1 | 0) + $rt_s(1498).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(1498).$hashCode1;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[$var3 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $var3) {
                    d: {
                        var$6 = var$3.$key;
                        if ($rt_s(1498) !== var$6) {
                            if ($rt_s(1498) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$7 = $rt_s(1498).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$7 = 0;
                            } else
                                var$7 = 1;
                            if (!var$7) {
                                var$7 = 0;
                                break d;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$3 = var$3.$next3;
            }
        } else {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        }
        var$8 = (var$3 === null ? null : var$3.$value0).$data7;
    } else
        var$8 = 0.0;
    if (var$8 !== $par0AttributeInstance.$baseValue) {
        $par0AttributeInstance.$baseValue = var$8;
        $par0AttributeInstance.$field_111133_g = 1;
        $var5 = $par0AttributeInstance.$field_111138_a;
        if ($par0AttributeInstance.$field_111136_b.$shouldWatch) {
            $var5 = $var5.$field_111162_d;
            ju_HashMap_putImpl($var5.$backingMap, $par0AttributeInstance, $var5);
        }
    }
    e: {
        var$3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1499).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1499).$nativeString.length)
                    break e;
                $rt_s(1499).$hashCode1 = (31 * $rt_s(1499).$hashCode1 | 0) + $rt_s(1499).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(1499).$hashCode1;
    var$5 = var$3.$elementData.data;
    var$3 = var$5[$var3 & (var$5.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == $var3) {
            f: {
                var$6 = var$3.$key;
                if ($rt_s(1499) !== var$6) {
                    if ($rt_s(1499) === var$6)
                        var$7 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$7 = 0;
                    else {
                        var$6 = var$6;
                        var$7 = $rt_s(1499).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$7) {
                        var$7 = 0;
                        break f;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$3 = var$3.$next3;
    }
    $var3 = var$3 === null ? 0 : 1;
    g: {
        h: {
            if ($var3) {
                i: {
                    var$3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1499).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1499).$nativeString.length)
                                break i;
                            $rt_s(1499).$hashCode1 = (31 * $rt_s(1499).$hashCode1 | 0) + $rt_s(1499).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var3 = $rt_s(1499).$hashCode1;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[$var3 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == $var3) {
                        j: {
                            var$6 = var$3.$key;
                            if ($rt_s(1499) !== var$6) {
                                if ($rt_s(1499) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$7 = $rt_s(1499).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$7 = 0;
                                } else
                                    var$7 = 1;
                                if (!var$7) {
                                    var$7 = 0;
                                    break j;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
                if (!(var$3 === null ? 0 : 1)) {
                    $var2 = new nms_NBTTagList;
                    if ($rt_s(1499) !== null)
                        $var2.$name = $rt_s(1499);
                    else
                        $var2.$name = $rt_s(3);
                    $par1NBTTagCompound = new ju_ArrayList;
                    $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                    $var2.$tagList = $par1NBTTagCompound;
                } else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(1499) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        k: {
                            if (!$rt_s(1499).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(1499).$nativeString.length)
                                        break k;
                                    $rt_s(1499).$hashCode1 = (31 * $rt_s(1499).$hashCode1 | 0) + $rt_s(1499).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        $var3 = $rt_s(1499).$hashCode1;
                        var$5 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$5[$var3 & (var$5.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == $var3) {
                                l: {
                                    var$3 = $par1NBTTagCompound.$key;
                                    if ($rt_s(1499) !== var$3) {
                                        if ($rt_s(1499) === var$3)
                                            var$7 = 1;
                                        else if (!(var$3 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            var$3 = var$3;
                                            var$7 = $rt_s(1499).$nativeString !== var$3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break l;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $var2 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
                }
                $var3 = 0;
                while (true) {
                    $par1NBTTagCompound = $var2.$tagList;
                    var$7 = $rt_compare($var3, $par1NBTTagCompound.$size0);
                    if (var$7 >= 0)
                        break h;
                    if ($var3 < 0)
                        break g;
                    if (var$7 >= 0)
                        break g;
                    m: {
                        var$3 = $par1NBTTagCompound.$array.data[$var3];
                        var$6 = new nle_ProfileUUID;
                        $var5 = var$3.$tagMap;
                        if (!$rt_s(1264).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(1264).$nativeString.length)
                                    break m;
                                $rt_s(1264).$hashCode1 = (31 * $rt_s(1264).$hashCode1 | 0) + $rt_s(1264).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1264).$hashCode1;
                    var$5 = $var5.$elementData.data;
                    $var5 = var$5[var$11 & (var$5.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$11) {
                            n: {
                                $var4 = $var5.$key;
                                if ($rt_s(1264) !== $var4) {
                                    if ($rt_s(1264) === $var4)
                                        var$7 = 1;
                                    else if (!($var4 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $var4 = $var4;
                                        var$7 = $rt_s(1264).$nativeString !== $var4.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break n;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if ($var5 === null ? 0 : 1) {
                        $var5 = var$3.$tagMap;
                        if ($rt_s(1264) !== null) {
                            o: {
                                if (!$rt_s(1264).$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $rt_s(1264).$nativeString.length)
                                            break o;
                                        $rt_s(1264).$hashCode1 = (31 * $rt_s(1264).$hashCode1 | 0) + $rt_s(1264).$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1264).$hashCode1;
                            var$5 = $var5.$elementData.data;
                            $var5 = var$5[var$11 & (var$5.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    p: {
                                        $var4 = $var5.$key;
                                        if ($rt_s(1264) !== $var4) {
                                            if ($rt_s(1264) === $var4)
                                                var$7 = 1;
                                            else if (!($var4 instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                $var4 = $var4;
                                                var$7 = $rt_s(1264).$nativeString !== $var4.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break p;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        }
                        var$13 = ($var5 === null ? null : $var5.$value0).$data6;
                    } else
                        var$13 = Long_ZERO;
                    q: {
                        $var5 = var$3.$tagMap;
                        if (!$rt_s(1265).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(1265).$nativeString.length)
                                    break q;
                                $rt_s(1265).$hashCode1 = (31 * $rt_s(1265).$hashCode1 | 0) + $rt_s(1265).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1265).$hashCode1;
                    var$5 = $var5.$elementData.data;
                    $var5 = var$5[var$11 & (var$5.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$11) {
                            r: {
                                $var4 = $var5.$key;
                                if ($rt_s(1265) !== $var4) {
                                    if ($rt_s(1265) !== $var4) {
                                        if ($var4 instanceof jl_String) {
                                            $var4 = $var4;
                                            var$7 = $rt_s(1265).$nativeString !== $var4.$nativeString ? 0 : 1;
                                        } else
                                            var$7 = 0;
                                    } else
                                        var$7 = 1;
                                    if (!var$7) {
                                        var$7 = 0;
                                        break r;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if ($var5 === null ? 0 : 1) {
                        $var5 = var$3.$tagMap;
                        if ($rt_s(1265) === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            s: {
                                if (!$rt_s(1265).$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $rt_s(1265).$nativeString.length)
                                            break s;
                                        $rt_s(1265).$hashCode1 = (31 * $rt_s(1265).$hashCode1 | 0) + $rt_s(1265).$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1265).$hashCode1;
                            var$5 = $var5.$elementData.data;
                            $var5 = var$5[var$11 & (var$5.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    t: {
                                        $var4 = $var5.$key;
                                        if ($rt_s(1265) !== $var4) {
                                            if ($rt_s(1265) !== $var4) {
                                                if ($var4 instanceof jl_String) {
                                                    $var4 = $var4;
                                                    var$7 = $rt_s(1265).$nativeString !== $var4.$nativeString ? 0 : 1;
                                                } else
                                                    var$7 = 0;
                                            } else
                                                var$7 = 1;
                                            if (!var$7) {
                                                var$7 = 0;
                                                break t;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$14 = ($var5 === null ? null : $var5.$value0).$data6;
                    } else
                        var$14 = Long_ZERO;
                    u: {
                        nle_ProfileUUID_$callClinit();
                        var$6.$mostSigBits = var$13;
                        var$6.$leastSigBits = var$14;
                        $var4 = new nms_AttributeModifier;
                        $var5 = var$3.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(919).$nativeString.length)
                                    break u;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(919).$hashCode1;
                    var$5 = $var5.$elementData.data;
                    $var5 = var$5[var$11 & (var$5.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$11) {
                            v: {
                                var$15 = $var5.$key;
                                if ($rt_s(919) !== var$15) {
                                    if ($rt_s(919) === var$15)
                                        var$7 = 1;
                                    else if (!(var$15 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        var$15 = var$15;
                                        var$7 = $rt_s(919).$nativeString !== var$15.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break v;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if ($var5 === null ? 0 : 1) {
                        $var5 = var$3.$tagMap;
                        if ($rt_s(919) !== null) {
                            w: {
                                if (!$rt_s(919).$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $rt_s(919).$nativeString.length)
                                            break w;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(919).$hashCode1;
                            var$5 = $var5.$elementData.data;
                            $var5 = var$5[var$11 & (var$5.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    x: {
                                        var$15 = $var5.$key;
                                        if ($rt_s(919) !== var$15) {
                                            if ($rt_s(919) !== var$15) {
                                                if (var$15 instanceof jl_String) {
                                                    var$15 = var$15;
                                                    var$7 = $rt_s(919).$nativeString !== var$15.$nativeString ? 0 : 1;
                                                } else
                                                    var$7 = 0;
                                            } else
                                                var$7 = 1;
                                            if (!var$7) {
                                                var$7 = 0;
                                                break x;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        }
                        var$16 = ($var5 === null ? null : $var5.$value0).$data1;
                    } else
                        var$16 = $rt_s(3);
                    y: {
                        $par1NBTTagCompound = var$3.$tagMap;
                        if (!$rt_s(1500).$hashCode1) {
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= $rt_s(1500).$nativeString.length)
                                    break y;
                                $rt_s(1500).$hashCode1 = (31 * $rt_s(1500).$hashCode1 | 0) + $rt_s(1500).$nativeString.charCodeAt(var$11) | 0;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1500).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$5[var$11 & (var$5.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$11) {
                            z: {
                                $var5 = $par1NBTTagCompound.$key;
                                if ($rt_s(1500) !== $var5) {
                                    if ($rt_s(1500) !== $var5) {
                                        if ($var5 instanceof jl_String) {
                                            $var5 = $var5;
                                            var$7 = $rt_s(1500).$nativeString !== $var5.$nativeString ? 0 : 1;
                                        } else
                                            var$7 = 0;
                                    } else
                                        var$7 = 1;
                                    if (!var$7) {
                                        var$7 = 0;
                                        break z;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                    if (!($par1NBTTagCompound === null ? 0 : 1))
                        var$17 = 0.0;
                    else {
                        $par1NBTTagCompound = var$3.$tagMap;
                        if ($rt_s(1500) === null) {
                            var$18 = $par1NBTTagCompound.$elementData.data[0];
                            while (var$18 !== null && var$18.$key !== null) {
                                var$18 = var$18.$next3;
                            }
                        } else {
                            ba: {
                                if (!$rt_s(1500).$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $rt_s(1500).$nativeString.length)
                                            break ba;
                                        $rt_s(1500).$hashCode1 = (31 * $rt_s(1500).$hashCode1 | 0) + $rt_s(1500).$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$19 = $rt_s(1500).$hashCode1;
                            var$5 = $par1NBTTagCompound.$elementData.data;
                            var$18 = var$5[var$19 & (var$5.length - 1 | 0)];
                            while (var$18 !== null) {
                                if (var$18.$origKeyHash == var$19) {
                                    bb: {
                                        $par1NBTTagCompound = var$18.$key;
                                        if ($rt_s(1500) !== $par1NBTTagCompound) {
                                            if ($rt_s(1500) === $par1NBTTagCompound)
                                                var$7 = 1;
                                            else if (!($par1NBTTagCompound instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                $par1NBTTagCompound = $par1NBTTagCompound;
                                                var$7 = $rt_s(1500).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break bb;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$18 = var$18.$next3;
                            }
                        }
                        var$17 = (var$18 === null ? null : var$18.$value0).$data7;
                    }
                    bc: {
                        $par1NBTTagCompound = var$3.$tagMap;
                        if (!$rt_s(1501).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(1501).$nativeString.length)
                                    break bc;
                                $rt_s(1501).$hashCode1 = (31 * $rt_s(1501).$hashCode1 | 0) + $rt_s(1501).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$19 = $rt_s(1501).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    var$18 = var$5[var$19 & (var$5.length - 1 | 0)];
                    while (var$18 !== null) {
                        if (var$18.$origKeyHash == var$19) {
                            bd: {
                                $par1NBTTagCompound = var$18.$key;
                                if ($rt_s(1501) !== $par1NBTTagCompound) {
                                    if ($rt_s(1501) === $par1NBTTagCompound)
                                        var$7 = 1;
                                    else if (!($par1NBTTagCompound instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $par1NBTTagCompound = $par1NBTTagCompound;
                                        var$7 = $rt_s(1501).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break bd;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        var$18 = var$18.$next3;
                    }
                    if (!(var$18 === null ? 0 : 1))
                        var$11 = 0;
                    else {
                        $par1NBTTagCompound = var$3.$tagMap;
                        if ($rt_s(1501) === null) {
                            var$3 = $par1NBTTagCompound.$elementData.data[0];
                            while (var$3 !== null && var$3.$key !== null) {
                                var$3 = var$3.$next3;
                            }
                        } else {
                            be: {
                                if (!$rt_s(1501).$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $rt_s(1501).$nativeString.length)
                                            break be;
                                        $rt_s(1501).$hashCode1 = (31 * $rt_s(1501).$hashCode1 | 0) + $rt_s(1501).$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$19 = $rt_s(1501).$hashCode1;
                            var$5 = $par1NBTTagCompound.$elementData.data;
                            var$3 = var$5[var$19 & (var$5.length - 1 | 0)];
                            while (var$3 !== null) {
                                if (var$3.$origKeyHash == var$19) {
                                    bf: {
                                        $par1NBTTagCompound = var$3.$key;
                                        if ($rt_s(1501) !== $par1NBTTagCompound) {
                                            if ($rt_s(1501) === $par1NBTTagCompound)
                                                var$7 = 1;
                                            else if (!($par1NBTTagCompound instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                $par1NBTTagCompound = $par1NBTTagCompound;
                                                var$7 = $rt_s(1501).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break bf;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$3 = var$3.$next3;
                            }
                        }
                        var$11 = (var$3 === null ? null : var$3.$value0).$data;
                    }
                    $var4.$isSaved = 1;
                    $var4.$id1 = var$6;
                    $var4.$name3 = var$16;
                    $var4.$amount0 = var$17;
                    $var4.$operation = var$11;
                    if (var$16 === null) {
                        $par0AttributeInstance = new jl_NullPointerException;
                        $par0AttributeInstance.$suppressionEnabled = 1;
                        $par0AttributeInstance.$writableStackTrace = 1;
                        $rt_throw($par0AttributeInstance);
                    }
                    if (var$16 === $rt_s(3))
                        var$7 = 1;
                    else if (!($rt_s(3) instanceof jl_String))
                        var$7 = 0;
                    else {
                        $par1NBTTagCompound = $rt_s(3);
                        var$7 = var$16.$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                    }
                    if (var$7) {
                        $par1NBTTagCompound = new jl_IllegalArgumentException;
                        $par1NBTTagCompound.$suppressionEnabled = 1;
                        $par1NBTTagCompound.$writableStackTrace = 1;
                        $par1NBTTagCompound.$message = $rt_s(1279);
                        $rt_throw($par1NBTTagCompound);
                    }
                    if (var$11 < 0 && var$11 > 2) {
                        $par1NBTTagCompound = new jl_IllegalArgumentException;
                        $par1NBTTagCompound.$suppressionEnabled = 1;
                        $par1NBTTagCompound.$writableStackTrace = 1;
                        $par1NBTTagCompound.$message = $rt_s(1280);
                        $rt_throw($par1NBTTagCompound);
                    }
                    var$6 = $var4.$id1;
                    $par1NBTTagCompound = $par0AttributeInstance.$field_111135_e;
                    if (var$6 === null) {
                        $var5 = $par1NBTTagCompound.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    } else {
                        var$13 = var$6.$mostSigBits;
                        var$20 = var$6.$leastSigBits;
                        var$14 = Long_xor(var$13, var$20);
                        var$19 = Long_hi(var$14) ^ Long_lo(var$14);
                        var$5 = $par1NBTTagCompound.$elementData.data;
                        $var5 = var$5[var$19 & (var$5.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == var$19) {
                                bg: {
                                    var$3 = $var5.$key;
                                    if (var$6 !== var$3) {
                                        if (null !== var$3 && var$3 instanceof nle_ProfileUUID) {
                                            $par1NBTTagCompound = var$3;
                                            var$7 = Long_eq(var$13, $par1NBTTagCompound.$mostSigBits) && Long_eq(var$20, $par1NBTTagCompound.$leastSigBits) ? 1 : 0;
                                        } else
                                            var$7 = 0;
                                        if (!var$7) {
                                            var$7 = 0;
                                            break bg;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    }
                    $var5 = $var5 === null ? null : $var5.$value0;
                    if ($var5 !== null)
                        nms_ModifiableAttributeInstance_removeModifier($par0AttributeInstance, $var5);
                    nms_ModifiableAttributeInstance_applyModifier($par0AttributeInstance, $var4);
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        return;
    }
    $par0AttributeInstance = new jl_IndexOutOfBoundsException;
    $par0AttributeInstance.$suppressionEnabled = 1;
    $par0AttributeInstance.$writableStackTrace = 1;
    $rt_throw($par0AttributeInstance);
},
nms_SharedMonsterAttributes__clinit_ = () => {
    let var$1;
    var$1 = nms_RangedAttribute__init_($rt_s(1502), 20.0, 0.0, 1.7976931348623157E308);
    var$1.$field_111119_c = $rt_s(1503);
    var$1.$shouldWatch = 1;
    nms_SharedMonsterAttributes_maxHealth = var$1;
    var$1 = nms_RangedAttribute__init_($rt_s(1504), 32.0, 0.0, 2048.0);
    var$1.$field_111119_c = $rt_s(1505);
    nms_SharedMonsterAttributes_followRange = var$1;
    var$1 = nms_RangedAttribute__init_($rt_s(1506), 0.0, 0.0, 1.0);
    var$1.$field_111119_c = $rt_s(1507);
    nms_SharedMonsterAttributes_knockbackResistance = var$1;
    var$1 = nms_RangedAttribute__init_($rt_s(1508), 0.699999988079071, 0.0, 1.7976931348623157E308);
    var$1.$field_111119_c = $rt_s(1509);
    var$1.$shouldWatch = 1;
    nms_SharedMonsterAttributes_movementSpeed = var$1;
    nms_SharedMonsterAttributes_attackDamage = nms_RangedAttribute__init_($rt_s(1510), 2.0, 0.0, 1.7976931348623157E308);
},
nms_PotionAttackDamage = $rt_classWithoutFields(nms_Potion),
nms_PotionAttackDamage_func_111183_a = ($this, $par1, $par2AttributeModifier) => {
    let var$3;
    var$3 = $this.$id0;
    nms_Potion_$callClinit();
    return var$3 != nms_Potion_weakness.$id0 ? 1.3 * ($par1 + 1 | 0) : (-0.5) * ($par1 + 1 | 0);
},
nms_PotionHealth = $rt_classWithoutFields(nms_Potion),
nms_PotionHealth_isInstant = $this => {
    return 1;
},
nms_PotionHealth_isReady = ($this, $par1, $par2) => {
    return $par1 < 1 ? 0 : 1;
},
nms_PotionHealthBoost = $rt_classWithoutFields(nms_Potion);
let nms_PotionHealthBoost_removeAttributesModifiersFromEntity = ($this, $par1EntityLivingBase, $par2BaseAttributeMap, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$4 = $this.$field_111188_I;
    var$5 = new ju_HashMap$EntryIterator;
    var$5.$associatedMap = var$4;
    var$5.$expectedModCount = var$4.$modCount1;
    var$5.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext(var$5)) {
        ju_HashMap$AbstractMapIterator_makeNext(var$5);
        var$6 = var$5.$currentEntry0;
        var$4 = var$6.$key;
        var$7 = $par2BaseAttributeMap.$attributes;
        if (var$4 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            a: {
                var$8 = var$4.$field_111115_a;
                if (!var$8.$hashCode1) {
                    $par3 = 0;
                    while (true) {
                        if ($par3 >= var$8.$nativeString.length)
                            break a;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt($par3) | 0;
                        $par3 = $par3 + 1 | 0;
                    }
                }
            }
            $par3 = var$8.$hashCode1;
            var$9 = var$7.$elementData.data;
            var$7 = var$9[$par3 & (var$9.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == $par3) {
                    var$8 = var$7.$key;
                    if (var$4 !== var$8 && !jl_Object_equals(var$4, var$8) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$7 = var$7 === null ? null : var$7.$value0;
        if (var$7 !== null)
            nms_ModifiableAttributeInstance_removeModifier(var$7, var$6.$value0);
    }
    $par2BaseAttributeMap = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[134];
    if (var$7 === null) {
        $par2BaseAttributeMap = $par2BaseAttributeMap.$elementData.data[0];
        while ($par2BaseAttributeMap !== null && $par2BaseAttributeMap.$key !== null) {
            $par2BaseAttributeMap = $par2BaseAttributeMap.$next3;
        }
    } else {
        var$10 = var$7.$value;
        var$9 = $par2BaseAttributeMap.$elementData.data;
        $par2BaseAttributeMap = var$9[var$10 & (var$9.length - 1 | 0)];
        while ($par2BaseAttributeMap !== null) {
            if ($par2BaseAttributeMap.$origKeyHash == var$10) {
                var$4 = $par2BaseAttributeMap.$key;
                if (var$7 !== var$4 && !(var$7 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$10 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par2BaseAttributeMap = $par2BaseAttributeMap.$next3;
        }
    }
    var$11 = ($par2BaseAttributeMap === null ? null : $par2BaseAttributeMap.$value0).$watchedObject.$value3;
    $par2BaseAttributeMap = nms_EntityLivingBase_getEntityAttribute($par1EntityLivingBase, nms_SharedMonsterAttributes_maxHealth);
    if ($par2BaseAttributeMap.$field_111133_g) {
        $par2BaseAttributeMap.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par2BaseAttributeMap);
        $par2BaseAttributeMap.$field_111133_g = 0;
    }
    if (var$11 > $par2BaseAttributeMap.$field_111139_h) {
        $par2BaseAttributeMap = nms_EntityLivingBase_getEntityAttribute($par1EntityLivingBase, nms_SharedMonsterAttributes_maxHealth);
        if ($par2BaseAttributeMap.$field_111133_g) {
            $par2BaseAttributeMap.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par2BaseAttributeMap);
            $par2BaseAttributeMap.$field_111133_g = 0;
        }
        nms_EntityLivingBase_setHealth($par1EntityLivingBase, $par2BaseAttributeMap.$field_111139_h);
    }
},
nms_PotionAbsoption = $rt_classWithoutFields(nms_Potion),
nms_PotionAbsoption_removeAttributesModifiersFromEntity = ($this, $par1EntityLivingBase, $par2BaseAttributeMap, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $par1EntityLivingBase.$setAbsorptionAmount($par1EntityLivingBase.$getAbsorptionAmount() - (4 * ($par3 + 1 | 0) | 0));
    $par1EntityLivingBase = $this.$field_111188_I;
    var$4 = new ju_HashMap$EntryIterator;
    var$4.$associatedMap = $par1EntityLivingBase;
    var$4.$expectedModCount = $par1EntityLivingBase.$modCount1;
    var$4.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext(var$4)) {
        ju_HashMap$AbstractMapIterator_makeNext(var$4);
        var$5 = var$4.$currentEntry0;
        $par1EntityLivingBase = var$5.$key;
        var$6 = $par2BaseAttributeMap.$attributes;
        if ($par1EntityLivingBase === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            a: {
                var$7 = $par1EntityLivingBase.$field_111115_a;
                if (!var$7.$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= var$7.$nativeString.length)
                            break a;
                        var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$9 = var$7.$hashCode1;
            var$10 = var$6.$elementData.data;
            var$6 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$9) {
                    var$7 = var$6.$key;
                    if ($par1EntityLivingBase !== var$7 && !jl_Object_equals($par1EntityLivingBase, var$7) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$6 = var$6 === null ? null : var$6.$value0;
        if (var$6 !== null)
            nms_ModifiableAttributeInstance_removeModifier(var$6, var$5.$value0);
    }
},
nms_PotionAbsoption_applyAttributesModifiersToEntity = ($this, $par1EntityLivingBase, $par2BaseAttributeMap, $par3) => {
    $par1EntityLivingBase.$setAbsorptionAmount($par1EntityLivingBase.$getAbsorptionAmount() + (4 * ($par3 + 1 | 0) | 0));
    nms_Potion_applyAttributesModifiersToEntity($this, $par1EntityLivingBase, $par2BaseAttributeMap, $par3);
},
nms_MaterialTransparent = $rt_classWithoutFields(nms_Material),
nms_MaterialTransparent_isSolid = $this => {
    return 0;
},
nms_MaterialTransparent_getCanBlockGrass = $this => {
    return 0;
},
nms_MaterialTransparent_blocksMovement = $this => {
    return 0;
};
function nms_MapColor() {
    let a = this; jl_Object.call(a);
    a.$colorValue = 0;
    a.$colorIndex = 0;
}
let nms_MapColor_mapColorArray = null,
nms_MapColor_airColor = null,
nms_MapColor_grassColor = null,
nms_MapColor_sandColor = null,
nms_MapColor_clothColor = null,
nms_MapColor_tntColor = null,
nms_MapColor_iceColor = null,
nms_MapColor_ironColor = null,
nms_MapColor_foliageColor = null,
nms_MapColor_snowColor = null,
nms_MapColor_clayColor = null,
nms_MapColor_dirtColor = null,
nms_MapColor_stoneColor = null,
nms_MapColor_waterColor = null,
nms_MapColor_woodColor = null,
nms_MapColor__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = $rt_createArray(nms_MapColor, 16);
    var$2 = var$1.data;
    nms_MapColor_mapColorArray = var$1;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 0;
    var$3.$colorValue = 0;
    var$2[0] = var$3;
    nms_MapColor_airColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 1;
    var$3.$colorValue = 8368696;
    var$2[1] = var$3;
    nms_MapColor_grassColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 2;
    var$3.$colorValue = 16247203;
    var$2[2] = var$3;
    nms_MapColor_sandColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 3;
    var$3.$colorValue = 10987431;
    var$2[3] = var$3;
    nms_MapColor_clothColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 4;
    var$3.$colorValue = 16711680;
    var$2[4] = var$3;
    nms_MapColor_tntColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 5;
    var$3.$colorValue = 10526975;
    var$2[5] = var$3;
    nms_MapColor_iceColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 6;
    var$3.$colorValue = 10987431;
    var$2[6] = var$3;
    nms_MapColor_ironColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 7;
    var$3.$colorValue = 31744;
    var$2[7] = var$3;
    nms_MapColor_foliageColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 8;
    var$3.$colorValue = 16777215;
    var$2[8] = var$3;
    nms_MapColor_snowColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 9;
    var$3.$colorValue = 10791096;
    var$2[9] = var$3;
    nms_MapColor_clayColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 10;
    var$3.$colorValue = 12020271;
    var$2[10] = var$3;
    nms_MapColor_dirtColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 11;
    var$3.$colorValue = 7368816;
    var$2[11] = var$3;
    nms_MapColor_stoneColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 12;
    var$3.$colorValue = 4210943;
    var$2[12] = var$3;
    nms_MapColor_waterColor = var$3;
    var$3 = new nms_MapColor;
    var$3.$colorIndex = 13;
    var$3.$colorValue = 6837042;
    var$2[13] = var$3;
    nms_MapColor_woodColor = var$3;
},
nms_MaterialLiquid = $rt_classWithoutFields(nms_Material),
nms_MaterialLiquid_isLiquid = $this => {
    return 1;
},
nms_MaterialLiquid_blocksMovement = $this => {
    return 0;
},
nms_MaterialLiquid_isSolid = $this => {
    return 0;
},
nms_MaterialLogic = $rt_classWithoutFields(nms_Material),
nms_MaterialLogic_isSolid = $this => {
    return 0;
},
nms_MaterialLogic_getCanBlockGrass = $this => {
    return 0;
},
nms_MaterialLogic_blocksMovement = $this => {
    return 0;
},
nms_MaterialPortal = $rt_classWithoutFields(nms_Material),
nms_MaterialPortal_isSolid = $this => {
    return 0;
},
nms_MaterialPortal_getCanBlockGrass = $this => {
    return 0;
},
nms_MaterialPortal_blocksMovement = $this => {
    return 0;
},
nms_MaterialWeb = $rt_classWithoutFields(nms_Material),
nms_MaterialWeb_blocksMovement = $this => {
    return 0;
};
function nms_BehaviorDispenseMinecart() {
    nms_BehaviorDefaultDispenseItem.call(this);
    this.$behaviourDefaultDispenseItem = null;
}
let nms_BehaviorDispenseMinecart__init_ = $this => {
    $this.$behaviourDefaultDispenseItem = new nms_BehaviorDefaultDispenseItem;
},
nms_BehaviorDispenseMinecart__init_0 = () => {
    let var_0 = new nms_BehaviorDispenseMinecart();
    nms_BehaviorDispenseMinecart__init_(var_0);
    return var_0;
},
nms_BehaviorDispenseMinecart_dispenseStack = ($this, $par1IBlockSource, $par2ItemStack) => {
    let $var4, $var11, $var12, $var13, var$7, var$8, var$9, $var7, $var5, var$12, $var9, $var14, $var15, $var17, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11
        = $thread.pop();$var4 = $thread.pop();$par2ItemStack = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par1IBlockSource.$worldObj4;
        $var11 = $par1IBlockSource.$xPos;
        $var12 = $par1IBlockSource.$yPos;
        $var13 = $par1IBlockSource.$zPos;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockMetadata($var4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var11 = $var12 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[$var11 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        var$9 = $par1IBlockSource.$xPos;
        $var7 = var$9 + 0.5;
        $var11 = var$8.$frontOffsetX;
        $var5 = $var7 + $var11 * 1.125;
        var$12 = $par1IBlockSource.$yPos;
        $var9 = var$12 + 0.5;
        $var12 = var$8.$frontOffsetY;
        $var7 = $var9 + $var12 * 1.125;
        $var14 = $par1IBlockSource.$zPos;
        $var15 = $var14 + 0.5;
        $var13 = var$8.$frontOffsetZ;
        $var9 = $var15 + $var13 * 1.125;
        $var11 = var$9 + $var11 | 0;
        $var12 = var$12 + $var12 | 0;
        $var13 = $var14 + $var13 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if (!nms_BlockRailBase_isRailBlock($var14)) {
            if (!$var14) {
                $var12 = $var12 - 1 | 0;
                $ptr = 5;
                continue main;
            }
            $var4 = $par1IBlockSource.$worldObj4;
            $var11 = $par1IBlockSource.$xPos;
            $var12 = $par1IBlockSource.$yPos;
            $var13 = $par1IBlockSource.$zPos;
            $ptr = 3;
            continue main;
        }
        $var15 = $var7 + 0.0;
        nms_Item_$callClinit();
        switch (nms_Item_itemsList.data[$par2ItemStack.$itemID].$minecartType) {
            case 1:
                $var17 = new nms_EntityMinecartChest;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 6;
                continue main;
            case 2:
                break;
            case 3:
                $var17 = new nms_EntityMinecartTNT;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 8;
                continue main;
            case 4:
                $var17 = new nms_EntityMinecartMobSpawner;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 9;
                continue main;
            case 5:
                $var17 = new nms_EntityMinecartHopper;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 10;
                continue main;
            default:
                $var17 = new nms_EntityMinecartEmpty;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 11;
                continue main;
        }
        $var17 = new nms_EntityMinecartFurnace;
        nms_Entity__init_($var17, $var4);
        $var17.$preventEntitySpawning = 1;
        var$17 = 0.9800000190734863;
        var$18 = 0.699999988079071;
        $ptr = 7;
        continue main;
    case 3:
        $tmp = nms_World_getBlockMetadata($var4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var11 = $var12 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$19 = var$7[$var11 % var$7.length | 0];
        $ptr = 4;
    case 4:
        $tmp = nms_BlockDispenser_getIPositionFromBlockSource($par1IBlockSource);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$8 = new nms_ItemStack;
        $var12 = $par2ItemStack.$itemID;
        $var13 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$8.$itemID = $var12;
        var$8.$stackSize = 1;
        var$8.$itemDamage = $var13;
        if ($var13 < 0)
            var$8.$itemDamage = 0;
        var$20 = $par2ItemStack.$stackTagCompound;
        if (var$20 !== null) {
            var$21 = new nms_NBTTagCompound;
            var$22 = var$20.$name;
            if (var$22 === null)
                var$22 = $rt_s(3);
            var$21.$name = var$22;
            var$22 = new ju_HashMap;
            ju_AbstractMap__init_(var$22);
            $var12 = ju_HashMap_calculateCapacity(16);
            var$22.$elementCount = 0;
            var$22.$elementData = ju_HashMap_newElementArray(var$22, $var12);
            var$22.$loadFactor = 0.75;
            ju_HashMap_computeThreshold(var$22);
            var$21.$tagMap = var$22;
            var$22 = var$20.$tagMap;
            if (var$22.$cachedKeySet === null) {
                $var17 = new ju_HashMap$1;
                $var17.$this$0 = var$22;
                jl_Object__init_($var17);
                var$22.$cachedKeySet = $var17;
            }
            var$22 = var$22.$cachedKeySet.$iterator();
            while (var$22.$hasNext()) {
                $var17 = var$22.$next();
                var$23 = var$20.$tagMap;
                if ($var17 === null) {
                    var$23 = var$23.$elementData.data[0];
                    while (var$23 !== null && var$23.$key !== null) {
                        var$23 = var$23.$next3;
                    }
                } else {
                    a: {
                        if (!$var17.$hashCode1) {
                            $var12 = 0;
                            while (true) {
                                if ($var12 >= $var17.$nativeString.length)
                                    break a;
                                $var17.$hashCode1 = (31 * $var17.$hashCode1 | 0) + $var17.$nativeString.charCodeAt($var12) | 0;
                                $var12 = $var12 + 1 | 0;
                            }
                        }
                    }
                    $var14 = $var17.$hashCode1;
                    var$7 = var$23.$elementData.data;
                    var$23 = var$7[$var14 & (var$7.length - 1 | 0)];
                    while (var$23 !== null) {
                        if (var$23.$origKeyHash == $var14) {
                            var$24 = var$23.$key;
                            if ($var17 !== var$24 && !jl_String_equals($var17, var$24) ? 0 : 1)
                                break;
                        }
                        var$23 = var$23.$next3;
                    }
                }
                var$23 = var$23 === null ? null : var$23.$value0;
                var$23 = var$23.$copy();
                var$24 = var$21.$tagMap;
                if ($var17 !== null)
                    var$23.$name = $var17;
                else
                    var$23.$name = $rt_s(3);
                ju_HashMap_putImpl(var$24, $var17, var$23);
            }
            var$8.$stackTagCompound = var$21;
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        var$20 = $par1IBlockSource.$worldObj4;
        $var11 = 6;
        $ptr = 12;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($var4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!nms_BlockRailBase_isRailBlock($var11)) {
            $var4 = $par1IBlockSource.$worldObj4;
            $var11 = $par1IBlockSource.$xPos;
            $var12 = $par1IBlockSource.$yPos;
            $var13 = $par1IBlockSource.$zPos;
            $ptr = 3;
            continue main;
        }
        $var15 = $var7 + (-1.0);
        nms_Item_$callClinit();
        switch (nms_Item_itemsList.data[$par2ItemStack.$itemID].$minecartType) {
            case 1:
                $var17 = new nms_EntityMinecartChest;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 6;
                continue main;
            case 2:
                break;
            case 3:
                $var17 = new nms_EntityMinecartTNT;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 8;
                continue main;
            case 4:
                $var17 = new nms_EntityMinecartMobSpawner;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 9;
                continue main;
            case 5:
                $var17 = new nms_EntityMinecartHopper;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 10;
                continue main;
            default:
                $var17 = new nms_EntityMinecartEmpty;
                nms_Entity__init_($var17, $var4);
                $var17.$preventEntitySpawning = 1;
                var$17 = 0.9800000190734863;
                var$18 = 0.699999988079071;
                $ptr = 11;
                continue main;
        }
        $var17 = new nms_EntityMinecartFurnace;
        nms_Entity__init_($var17, $var4);
        $var17.$preventEntitySpawning = 1;
        var$17 = 0.9800000190734863;
        var$18 = 0.699999988079071;
        $ptr = 7;
        continue main;
    case 6:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$yOffset = $var17.$height0 / 2.0;
        $var17.$field_82344_g = null;
        nms_Entity_setPosition($var17, $var5, $var15, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var15;
        $var17.$prevPosZ = $var9;
        $var17.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        $var17.$dropContentsWhenDead = 1;
        var$8 = $par2ItemStack.$stackTagCompound;
        if (var$8 === null)
            $var11 = 0;
        else {
            b: {
                var$8 = var$8.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var11 = 0;
                    while (true) {
                        if ($var11 >= $rt_s(918).$nativeString.length)
                            break b;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                        $var11 = $var11 + 1 | 0;
                    }
                }
            }
            $var13 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var13) {
                    c: {
                        var$20 = var$8.$key;
                        if ($rt_s(918) !== var$20) {
                            if ($rt_s(918) !== var$20) {
                                if (var$20 instanceof jl_String) {
                                    var$20 = var$20;
                                    $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                } else
                                    $var11 = 0;
                            } else
                                $var11 = 1;
                            if (!$var11) {
                                $var11 = 0;
                                break c;
                            }
                        }
                        $var11 = 1;
                    }
                    if ($var11)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                $var11 = 0;
            else {
                d: {
                    $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                    var$20 = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break d;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = var$20.$elementData.data;
                var$20 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == $var13) {
                        e: {
                            var$21 = var$20.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) !== var$21) {
                                    if (var$21 instanceof jl_String) {
                                        var$21 = var$21;
                                        $var11 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break e;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
                if (!(var$20 === null ? 0 : 1)) {
                    var$20 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$20.$name = $rt_s(918);
                    else
                        var$20.$name = $rt_s(3);
                    $par1IBlockSource = new ju_HashMap;
                    $var11 = ju_HashMap_calculateCapacity(16);
                    $par1IBlockSource.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                    var$7 = var$25.data;
                    $par1IBlockSource.$elementData = var$25;
                    $par1IBlockSource.$loadFactor = 0.75;
                    $par1IBlockSource.$threshold = var$7.length * 0.75 | 0;
                    var$20.$tagMap = $par1IBlockSource;
                } else {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                        while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var13 = $rt_s(918).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                        while ($par1IBlockSource !== null) {
                            if ($par1IBlockSource.$origKeyHash == $var13) {
                                g: {
                                    var$20 = $par1IBlockSource.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var11 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break g;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    }
                    var$20 = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                }
                h: {
                    var$8 = var$20.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(919).$nativeString.length)
                                break h;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(919).$hashCode1;
                var$7 = var$8.$elementData.data;
                var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == $var13) {
                        i: {
                            var$20 = var$8.$key;
                            if ($rt_s(919) !== var$20) {
                                if ($rt_s(919) === var$20)
                                    $var11 = 1;
                                else if (!(var$20 instanceof jl_String))
                                    $var11 = 0;
                                else {
                                    var$20 = var$20;
                                    $var11 = $rt_s(919).$nativeString !== var$20.$nativeString ? 0 : 1;
                                }
                                if (!$var11) {
                                    $var11 = 0;
                                    break i;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                $var11 = var$8 === null ? 0 : 1;
            }
        }
        if ($var11) {
            var$21 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
            $par1IBlockSource = $par2ItemStack.$stackTagCompound;
            if ($par1IBlockSource !== null) {
                j: {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break j;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = $par1IBlockSource.$elementData.data;
                $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                while ($par1IBlockSource !== null) {
                    if ($par1IBlockSource.$origKeyHash == $var13) {
                        k: {
                            var$8 = $par1IBlockSource.$key;
                            if ($rt_s(918) !== var$8) {
                                if ($rt_s(918) !== var$8) {
                                    if (var$8 instanceof jl_String) {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break k;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    $par1IBlockSource = $par1IBlockSource.$next3;
                }
                if ($par1IBlockSource === null ? 0 : 1) {
                    l: {
                        var$22 = $par2ItemStack.$stackTagCompound;
                        $par1IBlockSource = var$22.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(918).$nativeString.length)
                                    break l;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(918).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[$var12 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == $var12) {
                            m: {
                                var$8 = $par1IBlockSource.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        $var11 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break m;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    if (!($par1IBlockSource === null ? 0 : 1)) {
                        var$24 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$24.$name = $rt_s(918);
                        else
                            var$24.$name = $rt_s(3);
                        $par1IBlockSource = new ju_HashMap;
                        $var11 = ju_HashMap_calculateCapacity(16);
                        $par1IBlockSource.$elementCount = 0;
                        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                        var$25 = var$7.data;
                        $par1IBlockSource.$elementData = var$7;
                        $par1IBlockSource.$loadFactor = 0.75;
                        $par1IBlockSource.$threshold = var$25.length * 0.75 | 0;
                        var$24.$tagMap = $par1IBlockSource;
                    } else {
                        $par1IBlockSource = var$22.$tagMap;
                        if ($rt_s(918) === null) {
                            var$20 = $par1IBlockSource.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            n: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var11 = 0;
                                    while (true) {
                                        if ($var11 >= $rt_s(918).$nativeString.length)
                                            break n;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                        $var11 = $var11 + 1 | 0;
                                    }
                                }
                            }
                            $var12 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            var$20 = var$7[$var12 & (var$7.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $var12) {
                                    o: {
                                        $par1IBlockSource = var$20.$key;
                                        if ($rt_s(918) !== $par1IBlockSource) {
                                            if ($rt_s(918) === $par1IBlockSource)
                                                $var11 = 1;
                                            else if (!($par1IBlockSource instanceof jl_String))
                                                $var11 = 0;
                                            else {
                                                $par1IBlockSource = $par1IBlockSource;
                                                $var11 = $rt_s(918).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                            }
                                            if (!$var11) {
                                                $var11 = 0;
                                                break o;
                                            }
                                        }
                                        $var11 = 1;
                                    }
                                    if ($var11)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$24 = var$20 === null ? null : var$20.$value0;
                    }
                    p: {
                        $par1IBlockSource = var$24.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(919).$nativeString.length)
                                    break p;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    var$22 = var$7[$var12 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var12) {
                            q: {
                                $par1IBlockSource = var$22.$key;
                                if ($rt_s(919) !== $par1IBlockSource) {
                                    if ($rt_s(919) === $par1IBlockSource)
                                        $var11 = 1;
                                    else if (!($par1IBlockSource instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        $par1IBlockSource = $par1IBlockSource;
                                        $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break q;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (var$22 === null ? 0 : 1) {
                        r: {
                            $par1IBlockSource = var$24.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(919).$nativeString.length)
                                        break r;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var12 = $rt_s(919).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == $var12) {
                                s: {
                                    $par1IBlockSource = var$21.$key;
                                    if ($rt_s(919) !== $par1IBlockSource) {
                                        if ($rt_s(919) === $par1IBlockSource)
                                            $var11 = 1;
                                        else if (!($par1IBlockSource instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            $par1IBlockSource = $par1IBlockSource;
                                            $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break s;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1))
                            var$21 = $rt_s(3);
                        else {
                            $par1IBlockSource = var$24.$tagMap;
                            if ($rt_s(919) === null) {
                                var$21 = $par1IBlockSource.$elementData.data[0];
                                while (var$21 !== null && var$21.$key !== null) {
                                    var$21 = var$21.$next3;
                                }
                            } else {
                                t: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var11 = 0;
                                        while (true) {
                                            if ($var11 >= $rt_s(919).$nativeString.length)
                                                break t;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                            $var11 = $var11 + 1 | 0;
                                        }
                                    }
                                }
                                $var12 = $rt_s(919).$hashCode1;
                                var$7 = $par1IBlockSource.$elementData.data;
                                var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                                while (var$21 !== null) {
                                    if (var$21.$origKeyHash == $var12) {
                                        u: {
                                            $par1IBlockSource = var$21.$key;
                                            if ($rt_s(919) !== $par1IBlockSource) {
                                                if ($rt_s(919) === $par1IBlockSource)
                                                    $var11 = 1;
                                                else if (!($par1IBlockSource instanceof jl_String))
                                                    $var11 = 0;
                                                else {
                                                    $par1IBlockSource = $par1IBlockSource;
                                                    $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                                }
                                                if (!$var11) {
                                                    $var11 = 0;
                                                    break u;
                                                }
                                            }
                                            $var11 = 1;
                                        }
                                        if ($var11)
                                            break;
                                    }
                                    var$21 = var$21.$next3;
                                }
                            }
                            var$21 = (var$21 === null ? null : var$21.$value0).$data1;
                        }
                    }
                }
            }
            $var17.$entityName = var$21;
        }
        $ptr = 16;
        continue main;
    case 7:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$yOffset = $var17.$height0 / 2.0;
        $var17.$field_82344_g = null;
        nms_Entity_setPosition($var17, $var5, $var15, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var15;
        $var17.$prevPosZ = $var9;
        var$8 = $par2ItemStack.$stackTagCompound;
        if (var$8 === null)
            $var11 = 0;
        else {
            b: {
                var$8 = var$8.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var11 = 0;
                    while (true) {
                        if ($var11 >= $rt_s(918).$nativeString.length)
                            break b;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                        $var11 = $var11 + 1 | 0;
                    }
                }
            }
            $var13 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var13) {
                    c: {
                        var$20 = var$8.$key;
                        if ($rt_s(918) !== var$20) {
                            if ($rt_s(918) !== var$20) {
                                if (var$20 instanceof jl_String) {
                                    var$20 = var$20;
                                    $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                } else
                                    $var11 = 0;
                            } else
                                $var11 = 1;
                            if (!$var11) {
                                $var11 = 0;
                                break c;
                            }
                        }
                        $var11 = 1;
                    }
                    if ($var11)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                $var11 = 0;
            else {
                d: {
                    $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                    var$20 = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break d;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = var$20.$elementData.data;
                var$20 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == $var13) {
                        e: {
                            var$21 = var$20.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) !== var$21) {
                                    if (var$21 instanceof jl_String) {
                                        var$21 = var$21;
                                        $var11 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break e;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
                if (!(var$20 === null ? 0 : 1)) {
                    var$20 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$20.$name = $rt_s(918);
                    else
                        var$20.$name = $rt_s(3);
                    $par1IBlockSource = new ju_HashMap;
                    $var11 = ju_HashMap_calculateCapacity(16);
                    $par1IBlockSource.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                    var$7 = var$25.data;
                    $par1IBlockSource.$elementData = var$25;
                    $par1IBlockSource.$loadFactor = 0.75;
                    $par1IBlockSource.$threshold = var$7.length * 0.75 | 0;
                    var$20.$tagMap = $par1IBlockSource;
                } else {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                        while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var13 = $rt_s(918).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                        while ($par1IBlockSource !== null) {
                            if ($par1IBlockSource.$origKeyHash == $var13) {
                                g: {
                                    var$20 = $par1IBlockSource.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var11 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break g;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    }
                    var$20 = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                }
                h: {
                    var$8 = var$20.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(919).$nativeString.length)
                                break h;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(919).$hashCode1;
                var$7 = var$8.$elementData.data;
                var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == $var13) {
                        i: {
                            var$20 = var$8.$key;
                            if ($rt_s(919) !== var$20) {
                                if ($rt_s(919) === var$20)
                                    $var11 = 1;
                                else if (!(var$20 instanceof jl_String))
                                    $var11 = 0;
                                else {
                                    var$20 = var$20;
                                    $var11 = $rt_s(919).$nativeString !== var$20.$nativeString ? 0 : 1;
                                }
                                if (!$var11) {
                                    $var11 = 0;
                                    break i;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                $var11 = var$8 === null ? 0 : 1;
            }
        }
        if ($var11) {
            var$21 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
            $par1IBlockSource = $par2ItemStack.$stackTagCompound;
            if ($par1IBlockSource !== null) {
                j: {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break j;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = $par1IBlockSource.$elementData.data;
                $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                while ($par1IBlockSource !== null) {
                    if ($par1IBlockSource.$origKeyHash == $var13) {
                        k: {
                            var$8 = $par1IBlockSource.$key;
                            if ($rt_s(918) !== var$8) {
                                if ($rt_s(918) !== var$8) {
                                    if (var$8 instanceof jl_String) {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break k;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    $par1IBlockSource = $par1IBlockSource.$next3;
                }
                if ($par1IBlockSource === null ? 0 : 1) {
                    l: {
                        var$22 = $par2ItemStack.$stackTagCompound;
                        $par1IBlockSource = var$22.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(918).$nativeString.length)
                                    break l;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(918).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[$var12 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == $var12) {
                            m: {
                                var$8 = $par1IBlockSource.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        $var11 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break m;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    if (!($par1IBlockSource === null ? 0 : 1)) {
                        var$24 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$24.$name = $rt_s(918);
                        else
                            var$24.$name = $rt_s(3);
                        $par1IBlockSource = new ju_HashMap;
                        $var11 = ju_HashMap_calculateCapacity(16);
                        $par1IBlockSource.$elementCount = 0;
                        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                        var$25 = var$7.data;
                        $par1IBlockSource.$elementData = var$7;
                        $par1IBlockSource.$loadFactor = 0.75;
                        $par1IBlockSource.$threshold = var$25.length * 0.75 | 0;
                        var$24.$tagMap = $par1IBlockSource;
                    } else {
                        $par1IBlockSource = var$22.$tagMap;
                        if ($rt_s(918) === null) {
                            var$20 = $par1IBlockSource.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            n: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var11 = 0;
                                    while (true) {
                                        if ($var11 >= $rt_s(918).$nativeString.length)
                                            break n;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                        $var11 = $var11 + 1 | 0;
                                    }
                                }
                            }
                            $var12 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            var$20 = var$7[$var12 & (var$7.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $var12) {
                                    o: {
                                        $par1IBlockSource = var$20.$key;
                                        if ($rt_s(918) !== $par1IBlockSource) {
                                            if ($rt_s(918) === $par1IBlockSource)
                                                $var11 = 1;
                                            else if (!($par1IBlockSource instanceof jl_String))
                                                $var11 = 0;
                                            else {
                                                $par1IBlockSource = $par1IBlockSource;
                                                $var11 = $rt_s(918).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                            }
                                            if (!$var11) {
                                                $var11 = 0;
                                                break o;
                                            }
                                        }
                                        $var11 = 1;
                                    }
                                    if ($var11)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$24 = var$20 === null ? null : var$20.$value0;
                    }
                    p: {
                        $par1IBlockSource = var$24.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(919).$nativeString.length)
                                    break p;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    var$22 = var$7[$var12 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var12) {
                            q: {
                                $par1IBlockSource = var$22.$key;
                                if ($rt_s(919) !== $par1IBlockSource) {
                                    if ($rt_s(919) === $par1IBlockSource)
                                        $var11 = 1;
                                    else if (!($par1IBlockSource instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        $par1IBlockSource = $par1IBlockSource;
                                        $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break q;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (var$22 === null ? 0 : 1) {
                        r: {
                            $par1IBlockSource = var$24.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(919).$nativeString.length)
                                        break r;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var12 = $rt_s(919).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == $var12) {
                                s: {
                                    $par1IBlockSource = var$21.$key;
                                    if ($rt_s(919) !== $par1IBlockSource) {
                                        if ($rt_s(919) === $par1IBlockSource)
                                            $var11 = 1;
                                        else if (!($par1IBlockSource instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            $par1IBlockSource = $par1IBlockSource;
                                            $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break s;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1))
                            var$21 = $rt_s(3);
                        else {
                            $par1IBlockSource = var$24.$tagMap;
                            if ($rt_s(919) === null) {
                                var$21 = $par1IBlockSource.$elementData.data[0];
                                while (var$21 !== null && var$21.$key !== null) {
                                    var$21 = var$21.$next3;
                                }
                            } else {
                                t: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var11 = 0;
                                        while (true) {
                                            if ($var11 >= $rt_s(919).$nativeString.length)
                                                break t;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                            $var11 = $var11 + 1 | 0;
                                        }
                                    }
                                }
                                $var12 = $rt_s(919).$hashCode1;
                                var$7 = $par1IBlockSource.$elementData.data;
                                var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                                while (var$21 !== null) {
                                    if (var$21.$origKeyHash == $var12) {
                                        u: {
                                            $par1IBlockSource = var$21.$key;
                                            if ($rt_s(919) !== $par1IBlockSource) {
                                                if ($rt_s(919) === $par1IBlockSource)
                                                    $var11 = 1;
                                                else if (!($par1IBlockSource instanceof jl_String))
                                                    $var11 = 0;
                                                else {
                                                    $par1IBlockSource = $par1IBlockSource;
                                                    $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                                }
                                                if (!$var11) {
                                                    $var11 = 0;
                                                    break u;
                                                }
                                            }
                                            $var11 = 1;
                                        }
                                        if ($var11)
                                            break;
                                    }
                                    var$21 = var$21.$next3;
                                }
                            }
                            var$21 = (var$21 === null ? null : var$21.$value0).$data1;
                        }
                    }
                }
            }
            $var17.$entityName = var$21;
        }
        $ptr = 16;
        continue main;
    case 8:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$yOffset = $var17.$height0 / 2.0;
        $var17.$field_82344_g = null;
        nms_Entity_setPosition($var17, $var5, $var15, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var15;
        $var17.$prevPosZ = $var9;
        $var17.$minecartTNTFuse = (-1);
        var$8 = $par2ItemStack.$stackTagCompound;
        if (var$8 === null)
            $var11 = 0;
        else {
            b: {
                var$8 = var$8.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var11 = 0;
                    while (true) {
                        if ($var11 >= $rt_s(918).$nativeString.length)
                            break b;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                        $var11 = $var11 + 1 | 0;
                    }
                }
            }
            $var13 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var13) {
                    c: {
                        var$20 = var$8.$key;
                        if ($rt_s(918) !== var$20) {
                            if ($rt_s(918) !== var$20) {
                                if (var$20 instanceof jl_String) {
                                    var$20 = var$20;
                                    $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                } else
                                    $var11 = 0;
                            } else
                                $var11 = 1;
                            if (!$var11) {
                                $var11 = 0;
                                break c;
                            }
                        }
                        $var11 = 1;
                    }
                    if ($var11)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                $var11 = 0;
            else {
                d: {
                    $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                    var$20 = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break d;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = var$20.$elementData.data;
                var$20 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == $var13) {
                        e: {
                            var$21 = var$20.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) !== var$21) {
                                    if (var$21 instanceof jl_String) {
                                        var$21 = var$21;
                                        $var11 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break e;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
                if (!(var$20 === null ? 0 : 1)) {
                    var$20 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$20.$name = $rt_s(918);
                    else
                        var$20.$name = $rt_s(3);
                    $par1IBlockSource = new ju_HashMap;
                    $var11 = ju_HashMap_calculateCapacity(16);
                    $par1IBlockSource.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                    var$7 = var$25.data;
                    $par1IBlockSource.$elementData = var$25;
                    $par1IBlockSource.$loadFactor = 0.75;
                    $par1IBlockSource.$threshold = var$7.length * 0.75 | 0;
                    var$20.$tagMap = $par1IBlockSource;
                } else {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                        while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var13 = $rt_s(918).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                        while ($par1IBlockSource !== null) {
                            if ($par1IBlockSource.$origKeyHash == $var13) {
                                g: {
                                    var$20 = $par1IBlockSource.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var11 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break g;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    }
                    var$20 = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                }
                h: {
                    var$8 = var$20.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(919).$nativeString.length)
                                break h;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(919).$hashCode1;
                var$7 = var$8.$elementData.data;
                var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == $var13) {
                        i: {
                            var$20 = var$8.$key;
                            if ($rt_s(919) !== var$20) {
                                if ($rt_s(919) === var$20)
                                    $var11 = 1;
                                else if (!(var$20 instanceof jl_String))
                                    $var11 = 0;
                                else {
                                    var$20 = var$20;
                                    $var11 = $rt_s(919).$nativeString !== var$20.$nativeString ? 0 : 1;
                                }
                                if (!$var11) {
                                    $var11 = 0;
                                    break i;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                $var11 = var$8 === null ? 0 : 1;
            }
        }
        if ($var11) {
            var$21 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
            $par1IBlockSource = $par2ItemStack.$stackTagCompound;
            if ($par1IBlockSource !== null) {
                j: {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break j;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = $par1IBlockSource.$elementData.data;
                $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                while ($par1IBlockSource !== null) {
                    if ($par1IBlockSource.$origKeyHash == $var13) {
                        k: {
                            var$8 = $par1IBlockSource.$key;
                            if ($rt_s(918) !== var$8) {
                                if ($rt_s(918) !== var$8) {
                                    if (var$8 instanceof jl_String) {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break k;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    $par1IBlockSource = $par1IBlockSource.$next3;
                }
                if ($par1IBlockSource === null ? 0 : 1) {
                    l: {
                        var$22 = $par2ItemStack.$stackTagCompound;
                        $par1IBlockSource = var$22.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(918).$nativeString.length)
                                    break l;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(918).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[$var12 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == $var12) {
                            m: {
                                var$8 = $par1IBlockSource.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        $var11 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break m;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    if (!($par1IBlockSource === null ? 0 : 1)) {
                        var$24 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$24.$name = $rt_s(918);
                        else
                            var$24.$name = $rt_s(3);
                        $par1IBlockSource = new ju_HashMap;
                        $var11 = ju_HashMap_calculateCapacity(16);
                        $par1IBlockSource.$elementCount = 0;
                        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                        var$25 = var$7.data;
                        $par1IBlockSource.$elementData = var$7;
                        $par1IBlockSource.$loadFactor = 0.75;
                        $par1IBlockSource.$threshold = var$25.length * 0.75 | 0;
                        var$24.$tagMap = $par1IBlockSource;
                    } else {
                        $par1IBlockSource = var$22.$tagMap;
                        if ($rt_s(918) === null) {
                            var$20 = $par1IBlockSource.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            n: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var11 = 0;
                                    while (true) {
                                        if ($var11 >= $rt_s(918).$nativeString.length)
                                            break n;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                        $var11 = $var11 + 1 | 0;
                                    }
                                }
                            }
                            $var12 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            var$20 = var$7[$var12 & (var$7.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $var12) {
                                    o: {
                                        $par1IBlockSource = var$20.$key;
                                        if ($rt_s(918) !== $par1IBlockSource) {
                                            if ($rt_s(918) === $par1IBlockSource)
                                                $var11 = 1;
                                            else if (!($par1IBlockSource instanceof jl_String))
                                                $var11 = 0;
                                            else {
                                                $par1IBlockSource = $par1IBlockSource;
                                                $var11 = $rt_s(918).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                            }
                                            if (!$var11) {
                                                $var11 = 0;
                                                break o;
                                            }
                                        }
                                        $var11 = 1;
                                    }
                                    if ($var11)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$24 = var$20 === null ? null : var$20.$value0;
                    }
                    p: {
                        $par1IBlockSource = var$24.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(919).$nativeString.length)
                                    break p;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    var$22 = var$7[$var12 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var12) {
                            q: {
                                $par1IBlockSource = var$22.$key;
                                if ($rt_s(919) !== $par1IBlockSource) {
                                    if ($rt_s(919) === $par1IBlockSource)
                                        $var11 = 1;
                                    else if (!($par1IBlockSource instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        $par1IBlockSource = $par1IBlockSource;
                                        $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break q;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (var$22 === null ? 0 : 1) {
                        r: {
                            $par1IBlockSource = var$24.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(919).$nativeString.length)
                                        break r;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var12 = $rt_s(919).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == $var12) {
                                s: {
                                    $par1IBlockSource = var$21.$key;
                                    if ($rt_s(919) !== $par1IBlockSource) {
                                        if ($rt_s(919) === $par1IBlockSource)
                                            $var11 = 1;
                                        else if (!($par1IBlockSource instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            $par1IBlockSource = $par1IBlockSource;
                                            $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break s;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1))
                            var$21 = $rt_s(3);
                        else {
                            $par1IBlockSource = var$24.$tagMap;
                            if ($rt_s(919) === null) {
                                var$21 = $par1IBlockSource.$elementData.data[0];
                                while (var$21 !== null && var$21.$key !== null) {
                                    var$21 = var$21.$next3;
                                }
                            } else {
                                t: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var11 = 0;
                                        while (true) {
                                            if ($var11 >= $rt_s(919).$nativeString.length)
                                                break t;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                            $var11 = $var11 + 1 | 0;
                                        }
                                    }
                                }
                                $var12 = $rt_s(919).$hashCode1;
                                var$7 = $par1IBlockSource.$elementData.data;
                                var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                                while (var$21 !== null) {
                                    if (var$21.$origKeyHash == $var12) {
                                        u: {
                                            $par1IBlockSource = var$21.$key;
                                            if ($rt_s(919) !== $par1IBlockSource) {
                                                if ($rt_s(919) === $par1IBlockSource)
                                                    $var11 = 1;
                                                else if (!($par1IBlockSource instanceof jl_String))
                                                    $var11 = 0;
                                                else {
                                                    $par1IBlockSource = $par1IBlockSource;
                                                    $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                                }
                                                if (!$var11) {
                                                    $var11 = 0;
                                                    break u;
                                                }
                                            }
                                            $var11 = 1;
                                        }
                                        if ($var11)
                                            break;
                                    }
                                    var$21 = var$21.$next3;
                                }
                            }
                            var$21 = (var$21 === null ? null : var$21.$value0).$data1;
                        }
                    }
                }
            }
            $var17.$entityName = var$21;
        }
        $ptr = 16;
        continue main;
    case 9:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$yOffset = $var17.$height0 / 2.0;
        $var17.$field_82344_g = null;
        nms_Entity_setPosition($var17, $var5, $var15, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var15;
        $var17.$prevPosZ = $var9;
        $par1IBlockSource = new nms_EntityMinecartMobSpawnerLogic;
        $par1IBlockSource.$spawnDelay = 20;
        $par1IBlockSource.$mobID = $rt_s(1309);
        $par1IBlockSource.$minSpawnDelay = 200;
        $par1IBlockSource.$maxSpawnDelay = 800;
        $par1IBlockSource.$spawnCount = 4;
        $par1IBlockSource.$maxNearbyEntities = 6;
        $par1IBlockSource.$activatingRangeFromPlayer = 16;
        $par1IBlockSource.$spawnRange = 4;
        $par1IBlockSource.$spawnerMinecart = $var17;
        $var17.$mobSpawnerLogic = $par1IBlockSource;
        var$8 = $par2ItemStack.$stackTagCompound;
        if (var$8 === null)
            $var11 = 0;
        else {
            b: {
                var$8 = var$8.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var11 = 0;
                    while (true) {
                        if ($var11 >= $rt_s(918).$nativeString.length)
                            break b;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                        $var11 = $var11 + 1 | 0;
                    }
                }
            }
            $var13 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var13) {
                    c: {
                        var$20 = var$8.$key;
                        if ($rt_s(918) !== var$20) {
                            if ($rt_s(918) !== var$20) {
                                if (var$20 instanceof jl_String) {
                                    var$20 = var$20;
                                    $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                } else
                                    $var11 = 0;
                            } else
                                $var11 = 1;
                            if (!$var11) {
                                $var11 = 0;
                                break c;
                            }
                        }
                        $var11 = 1;
                    }
                    if ($var11)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                $var11 = 0;
            else {
                d: {
                    $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                    var$20 = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break d;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = var$20.$elementData.data;
                var$20 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == $var13) {
                        e: {
                            var$21 = var$20.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) !== var$21) {
                                    if (var$21 instanceof jl_String) {
                                        var$21 = var$21;
                                        $var11 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break e;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
                if (!(var$20 === null ? 0 : 1)) {
                    var$20 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$20.$name = $rt_s(918);
                    else
                        var$20.$name = $rt_s(3);
                    $par1IBlockSource = new ju_HashMap;
                    $var11 = ju_HashMap_calculateCapacity(16);
                    $par1IBlockSource.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                    var$7 = var$25.data;
                    $par1IBlockSource.$elementData = var$25;
                    $par1IBlockSource.$loadFactor = 0.75;
                    $par1IBlockSource.$threshold = var$7.length * 0.75 | 0;
                    var$20.$tagMap = $par1IBlockSource;
                } else {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                        while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var13 = $rt_s(918).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                        while ($par1IBlockSource !== null) {
                            if ($par1IBlockSource.$origKeyHash == $var13) {
                                g: {
                                    var$20 = $par1IBlockSource.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var11 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break g;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    }
                    var$20 = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                }
                h: {
                    var$8 = var$20.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(919).$nativeString.length)
                                break h;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(919).$hashCode1;
                var$7 = var$8.$elementData.data;
                var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == $var13) {
                        i: {
                            var$20 = var$8.$key;
                            if ($rt_s(919) !== var$20) {
                                if ($rt_s(919) === var$20)
                                    $var11 = 1;
                                else if (!(var$20 instanceof jl_String))
                                    $var11 = 0;
                                else {
                                    var$20 = var$20;
                                    $var11 = $rt_s(919).$nativeString !== var$20.$nativeString ? 0 : 1;
                                }
                                if (!$var11) {
                                    $var11 = 0;
                                    break i;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                $var11 = var$8 === null ? 0 : 1;
            }
        }
        if ($var11) {
            var$21 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
            $par1IBlockSource = $par2ItemStack.$stackTagCompound;
            if ($par1IBlockSource !== null) {
                j: {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break j;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = $par1IBlockSource.$elementData.data;
                $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                while ($par1IBlockSource !== null) {
                    if ($par1IBlockSource.$origKeyHash == $var13) {
                        k: {
                            var$8 = $par1IBlockSource.$key;
                            if ($rt_s(918) !== var$8) {
                                if ($rt_s(918) !== var$8) {
                                    if (var$8 instanceof jl_String) {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break k;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    $par1IBlockSource = $par1IBlockSource.$next3;
                }
                if ($par1IBlockSource === null ? 0 : 1) {
                    l: {
                        var$22 = $par2ItemStack.$stackTagCompound;
                        $par1IBlockSource = var$22.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(918).$nativeString.length)
                                    break l;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(918).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[$var12 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == $var12) {
                            m: {
                                var$8 = $par1IBlockSource.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        $var11 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break m;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    if (!($par1IBlockSource === null ? 0 : 1)) {
                        var$24 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$24.$name = $rt_s(918);
                        else
                            var$24.$name = $rt_s(3);
                        $par1IBlockSource = new ju_HashMap;
                        $var11 = ju_HashMap_calculateCapacity(16);
                        $par1IBlockSource.$elementCount = 0;
                        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                        var$25 = var$7.data;
                        $par1IBlockSource.$elementData = var$7;
                        $par1IBlockSource.$loadFactor = 0.75;
                        $par1IBlockSource.$threshold = var$25.length * 0.75 | 0;
                        var$24.$tagMap = $par1IBlockSource;
                    } else {
                        $par1IBlockSource = var$22.$tagMap;
                        if ($rt_s(918) === null) {
                            var$20 = $par1IBlockSource.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            n: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var11 = 0;
                                    while (true) {
                                        if ($var11 >= $rt_s(918).$nativeString.length)
                                            break n;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                        $var11 = $var11 + 1 | 0;
                                    }
                                }
                            }
                            $var12 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            var$20 = var$7[$var12 & (var$7.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $var12) {
                                    o: {
                                        $par1IBlockSource = var$20.$key;
                                        if ($rt_s(918) !== $par1IBlockSource) {
                                            if ($rt_s(918) === $par1IBlockSource)
                                                $var11 = 1;
                                            else if (!($par1IBlockSource instanceof jl_String))
                                                $var11 = 0;
                                            else {
                                                $par1IBlockSource = $par1IBlockSource;
                                                $var11 = $rt_s(918).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                            }
                                            if (!$var11) {
                                                $var11 = 0;
                                                break o;
                                            }
                                        }
                                        $var11 = 1;
                                    }
                                    if ($var11)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$24 = var$20 === null ? null : var$20.$value0;
                    }
                    p: {
                        $par1IBlockSource = var$24.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(919).$nativeString.length)
                                    break p;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    var$22 = var$7[$var12 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var12) {
                            q: {
                                $par1IBlockSource = var$22.$key;
                                if ($rt_s(919) !== $par1IBlockSource) {
                                    if ($rt_s(919) === $par1IBlockSource)
                                        $var11 = 1;
                                    else if (!($par1IBlockSource instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        $par1IBlockSource = $par1IBlockSource;
                                        $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break q;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (var$22 === null ? 0 : 1) {
                        r: {
                            $par1IBlockSource = var$24.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(919).$nativeString.length)
                                        break r;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var12 = $rt_s(919).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == $var12) {
                                s: {
                                    $par1IBlockSource = var$21.$key;
                                    if ($rt_s(919) !== $par1IBlockSource) {
                                        if ($rt_s(919) === $par1IBlockSource)
                                            $var11 = 1;
                                        else if (!($par1IBlockSource instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            $par1IBlockSource = $par1IBlockSource;
                                            $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break s;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1))
                            var$21 = $rt_s(3);
                        else {
                            $par1IBlockSource = var$24.$tagMap;
                            if ($rt_s(919) === null) {
                                var$21 = $par1IBlockSource.$elementData.data[0];
                                while (var$21 !== null && var$21.$key !== null) {
                                    var$21 = var$21.$next3;
                                }
                            } else {
                                t: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var11 = 0;
                                        while (true) {
                                            if ($var11 >= $rt_s(919).$nativeString.length)
                                                break t;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                            $var11 = $var11 + 1 | 0;
                                        }
                                    }
                                }
                                $var12 = $rt_s(919).$hashCode1;
                                var$7 = $par1IBlockSource.$elementData.data;
                                var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                                while (var$21 !== null) {
                                    if (var$21.$origKeyHash == $var12) {
                                        u: {
                                            $par1IBlockSource = var$21.$key;
                                            if ($rt_s(919) !== $par1IBlockSource) {
                                                if ($rt_s(919) === $par1IBlockSource)
                                                    $var11 = 1;
                                                else if (!($par1IBlockSource instanceof jl_String))
                                                    $var11 = 0;
                                                else {
                                                    $par1IBlockSource = $par1IBlockSource;
                                                    $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                                }
                                                if (!$var11) {
                                                    $var11 = 0;
                                                    break u;
                                                }
                                            }
                                            $var11 = 1;
                                        }
                                        if ($var11)
                                            break;
                                    }
                                    var$21 = var$21.$next3;
                                }
                            }
                            var$21 = (var$21 === null ? null : var$21.$value0).$data1;
                        }
                    }
                }
            }
            $var17.$entityName = var$21;
        }
        $ptr = 16;
        continue main;
    case 10:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$yOffset = $var17.$height0 / 2.0;
        $var17.$field_82344_g = null;
        nms_Entity_setPosition($var17, $var5, $var15, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var15;
        $var17.$prevPosZ = $var9;
        $var17.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        $var17.$dropContentsWhenDead = 1;
        $var17.$isBlocked = 1;
        $var17.$transferTicker = (-1);
        var$8 = $par2ItemStack.$stackTagCompound;
        if (var$8 === null)
            $var11 = 0;
        else {
            b: {
                var$8 = var$8.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var11 = 0;
                    while (true) {
                        if ($var11 >= $rt_s(918).$nativeString.length)
                            break b;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                        $var11 = $var11 + 1 | 0;
                    }
                }
            }
            $var13 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var13) {
                    c: {
                        var$20 = var$8.$key;
                        if ($rt_s(918) !== var$20) {
                            if ($rt_s(918) !== var$20) {
                                if (var$20 instanceof jl_String) {
                                    var$20 = var$20;
                                    $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                } else
                                    $var11 = 0;
                            } else
                                $var11 = 1;
                            if (!$var11) {
                                $var11 = 0;
                                break c;
                            }
                        }
                        $var11 = 1;
                    }
                    if ($var11)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                $var11 = 0;
            else {
                d: {
                    $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                    var$20 = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break d;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = var$20.$elementData.data;
                var$20 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == $var13) {
                        e: {
                            var$21 = var$20.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) !== var$21) {
                                    if (var$21 instanceof jl_String) {
                                        var$21 = var$21;
                                        $var11 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break e;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
                if (!(var$20 === null ? 0 : 1)) {
                    var$20 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$20.$name = $rt_s(918);
                    else
                        var$20.$name = $rt_s(3);
                    $par1IBlockSource = new ju_HashMap;
                    $var11 = ju_HashMap_calculateCapacity(16);
                    $par1IBlockSource.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                    var$7 = var$25.data;
                    $par1IBlockSource.$elementData = var$25;
                    $par1IBlockSource.$loadFactor = 0.75;
                    $par1IBlockSource.$threshold = var$7.length * 0.75 | 0;
                    var$20.$tagMap = $par1IBlockSource;
                } else {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                        while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var13 = $rt_s(918).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                        while ($par1IBlockSource !== null) {
                            if ($par1IBlockSource.$origKeyHash == $var13) {
                                g: {
                                    var$20 = $par1IBlockSource.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var11 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break g;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    }
                    var$20 = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                }
                h: {
                    var$8 = var$20.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(919).$nativeString.length)
                                break h;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(919).$hashCode1;
                var$7 = var$8.$elementData.data;
                var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == $var13) {
                        i: {
                            var$20 = var$8.$key;
                            if ($rt_s(919) !== var$20) {
                                if ($rt_s(919) === var$20)
                                    $var11 = 1;
                                else if (!(var$20 instanceof jl_String))
                                    $var11 = 0;
                                else {
                                    var$20 = var$20;
                                    $var11 = $rt_s(919).$nativeString !== var$20.$nativeString ? 0 : 1;
                                }
                                if (!$var11) {
                                    $var11 = 0;
                                    break i;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                $var11 = var$8 === null ? 0 : 1;
            }
        }
        if ($var11) {
            var$21 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
            $par1IBlockSource = $par2ItemStack.$stackTagCompound;
            if ($par1IBlockSource !== null) {
                j: {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break j;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = $par1IBlockSource.$elementData.data;
                $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                while ($par1IBlockSource !== null) {
                    if ($par1IBlockSource.$origKeyHash == $var13) {
                        k: {
                            var$8 = $par1IBlockSource.$key;
                            if ($rt_s(918) !== var$8) {
                                if ($rt_s(918) !== var$8) {
                                    if (var$8 instanceof jl_String) {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break k;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    $par1IBlockSource = $par1IBlockSource.$next3;
                }
                if ($par1IBlockSource === null ? 0 : 1) {
                    l: {
                        var$22 = $par2ItemStack.$stackTagCompound;
                        $par1IBlockSource = var$22.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(918).$nativeString.length)
                                    break l;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(918).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[$var12 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == $var12) {
                            m: {
                                var$8 = $par1IBlockSource.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        $var11 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break m;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    if (!($par1IBlockSource === null ? 0 : 1)) {
                        var$24 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$24.$name = $rt_s(918);
                        else
                            var$24.$name = $rt_s(3);
                        $par1IBlockSource = new ju_HashMap;
                        $var11 = ju_HashMap_calculateCapacity(16);
                        $par1IBlockSource.$elementCount = 0;
                        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                        var$25 = var$7.data;
                        $par1IBlockSource.$elementData = var$7;
                        $par1IBlockSource.$loadFactor = 0.75;
                        $par1IBlockSource.$threshold = var$25.length * 0.75 | 0;
                        var$24.$tagMap = $par1IBlockSource;
                    } else {
                        $par1IBlockSource = var$22.$tagMap;
                        if ($rt_s(918) === null) {
                            var$20 = $par1IBlockSource.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            n: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var11 = 0;
                                    while (true) {
                                        if ($var11 >= $rt_s(918).$nativeString.length)
                                            break n;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                        $var11 = $var11 + 1 | 0;
                                    }
                                }
                            }
                            $var12 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            var$20 = var$7[$var12 & (var$7.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $var12) {
                                    o: {
                                        $par1IBlockSource = var$20.$key;
                                        if ($rt_s(918) !== $par1IBlockSource) {
                                            if ($rt_s(918) === $par1IBlockSource)
                                                $var11 = 1;
                                            else if (!($par1IBlockSource instanceof jl_String))
                                                $var11 = 0;
                                            else {
                                                $par1IBlockSource = $par1IBlockSource;
                                                $var11 = $rt_s(918).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                            }
                                            if (!$var11) {
                                                $var11 = 0;
                                                break o;
                                            }
                                        }
                                        $var11 = 1;
                                    }
                                    if ($var11)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$24 = var$20 === null ? null : var$20.$value0;
                    }
                    p: {
                        $par1IBlockSource = var$24.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(919).$nativeString.length)
                                    break p;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    var$22 = var$7[$var12 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var12) {
                            q: {
                                $par1IBlockSource = var$22.$key;
                                if ($rt_s(919) !== $par1IBlockSource) {
                                    if ($rt_s(919) === $par1IBlockSource)
                                        $var11 = 1;
                                    else if (!($par1IBlockSource instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        $par1IBlockSource = $par1IBlockSource;
                                        $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break q;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (var$22 === null ? 0 : 1) {
                        r: {
                            $par1IBlockSource = var$24.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(919).$nativeString.length)
                                        break r;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var12 = $rt_s(919).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == $var12) {
                                s: {
                                    $par1IBlockSource = var$21.$key;
                                    if ($rt_s(919) !== $par1IBlockSource) {
                                        if ($rt_s(919) === $par1IBlockSource)
                                            $var11 = 1;
                                        else if (!($par1IBlockSource instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            $par1IBlockSource = $par1IBlockSource;
                                            $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break s;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1))
                            var$21 = $rt_s(3);
                        else {
                            $par1IBlockSource = var$24.$tagMap;
                            if ($rt_s(919) === null) {
                                var$21 = $par1IBlockSource.$elementData.data[0];
                                while (var$21 !== null && var$21.$key !== null) {
                                    var$21 = var$21.$next3;
                                }
                            } else {
                                t: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var11 = 0;
                                        while (true) {
                                            if ($var11 >= $rt_s(919).$nativeString.length)
                                                break t;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                            $var11 = $var11 + 1 | 0;
                                        }
                                    }
                                }
                                $var12 = $rt_s(919).$hashCode1;
                                var$7 = $par1IBlockSource.$elementData.data;
                                var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                                while (var$21 !== null) {
                                    if (var$21.$origKeyHash == $var12) {
                                        u: {
                                            $par1IBlockSource = var$21.$key;
                                            if ($rt_s(919) !== $par1IBlockSource) {
                                                if ($rt_s(919) === $par1IBlockSource)
                                                    $var11 = 1;
                                                else if (!($par1IBlockSource instanceof jl_String))
                                                    $var11 = 0;
                                                else {
                                                    $par1IBlockSource = $par1IBlockSource;
                                                    $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                                }
                                                if (!$var11) {
                                                    $var11 = 0;
                                                    break u;
                                                }
                                            }
                                            $var11 = 1;
                                        }
                                        if ($var11)
                                            break;
                                    }
                                    var$21 = var$21.$next3;
                                }
                            }
                            var$21 = (var$21 === null ? null : var$21.$value0).$data1;
                        }
                    }
                }
            }
            $var17.$entityName = var$21;
        }
        $ptr = 16;
        continue main;
    case 11:
        nms_Entity_setSize($var17, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$yOffset = $var17.$height0 / 2.0;
        $var17.$field_82344_g = null;
        nms_Entity_setPosition($var17, $var5, $var15, $var9);
        $var17.$motionX = 0.0;
        $var17.$motionY = 0.0;
        $var17.$motionZ = 0.0;
        $var17.$prevPosX = $var5;
        $var17.$prevPosY = $var15;
        $var17.$prevPosZ = $var9;
        var$8 = $par2ItemStack.$stackTagCompound;
        if (var$8 === null)
            $var11 = 0;
        else {
            b: {
                var$8 = var$8.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var11 = 0;
                    while (true) {
                        if ($var11 >= $rt_s(918).$nativeString.length)
                            break b;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                        $var11 = $var11 + 1 | 0;
                    }
                }
            }
            $var13 = $rt_s(918).$hashCode1;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var13) {
                    c: {
                        var$20 = var$8.$key;
                        if ($rt_s(918) !== var$20) {
                            if ($rt_s(918) !== var$20) {
                                if (var$20 instanceof jl_String) {
                                    var$20 = var$20;
                                    $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                } else
                                    $var11 = 0;
                            } else
                                $var11 = 1;
                            if (!$var11) {
                                $var11 = 0;
                                break c;
                            }
                        }
                        $var11 = 1;
                    }
                    if ($var11)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                $var11 = 0;
            else {
                d: {
                    $par1IBlockSource = $par2ItemStack.$stackTagCompound;
                    var$20 = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break d;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = var$20.$elementData.data;
                var$20 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$20 !== null) {
                    if (var$20.$origKeyHash == $var13) {
                        e: {
                            var$21 = var$20.$key;
                            if ($rt_s(918) !== var$21) {
                                if ($rt_s(918) !== var$21) {
                                    if (var$21 instanceof jl_String) {
                                        var$21 = var$21;
                                        $var11 = $rt_s(918).$nativeString !== var$21.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break e;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$20 = var$20.$next3;
                }
                if (!(var$20 === null ? 0 : 1)) {
                    var$20 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$20.$name = $rt_s(918);
                    else
                        var$20.$name = $rt_s(3);
                    $par1IBlockSource = new ju_HashMap;
                    $var11 = ju_HashMap_calculateCapacity(16);
                    $par1IBlockSource.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                    var$7 = var$25.data;
                    $par1IBlockSource.$elementData = var$25;
                    $par1IBlockSource.$loadFactor = 0.75;
                    $par1IBlockSource.$threshold = var$7.length * 0.75 | 0;
                    var$20.$tagMap = $par1IBlockSource;
                } else {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1IBlockSource = $par1IBlockSource.$elementData.data[0];
                        while ($par1IBlockSource !== null && $par1IBlockSource.$key !== null) {
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    } else {
                        f: {
                            if (!$rt_s(918).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(918).$nativeString.length)
                                        break f;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var13 = $rt_s(918).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                        while ($par1IBlockSource !== null) {
                            if ($par1IBlockSource.$origKeyHash == $var13) {
                                g: {
                                    var$20 = $par1IBlockSource.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var11 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var11 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break g;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            $par1IBlockSource = $par1IBlockSource.$next3;
                        }
                    }
                    var$20 = $par1IBlockSource === null ? null : $par1IBlockSource.$value0;
                }
                h: {
                    var$8 = var$20.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(919).$nativeString.length)
                                break h;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(919).$hashCode1;
                var$7 = var$8.$elementData.data;
                var$8 = var$7[$var13 & (var$7.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == $var13) {
                        i: {
                            var$20 = var$8.$key;
                            if ($rt_s(919) !== var$20) {
                                if ($rt_s(919) === var$20)
                                    $var11 = 1;
                                else if (!(var$20 instanceof jl_String))
                                    $var11 = 0;
                                else {
                                    var$20 = var$20;
                                    $var11 = $rt_s(919).$nativeString !== var$20.$nativeString ? 0 : 1;
                                }
                                if (!$var11) {
                                    $var11 = 0;
                                    break i;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                $var11 = var$8 === null ? 0 : 1;
            }
        }
        if ($var11) {
            var$21 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$getItemDisplayName($par2ItemStack);
            $par1IBlockSource = $par2ItemStack.$stackTagCompound;
            if ($par1IBlockSource !== null) {
                j: {
                    $par1IBlockSource = $par1IBlockSource.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var11 = 0;
                        while (true) {
                            if ($var11 >= $rt_s(918).$nativeString.length)
                                break j;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                            $var11 = $var11 + 1 | 0;
                        }
                    }
                }
                $var13 = $rt_s(918).$hashCode1;
                var$7 = $par1IBlockSource.$elementData.data;
                $par1IBlockSource = var$7[$var13 & (var$7.length - 1 | 0)];
                while ($par1IBlockSource !== null) {
                    if ($par1IBlockSource.$origKeyHash == $var13) {
                        k: {
                            var$8 = $par1IBlockSource.$key;
                            if ($rt_s(918) !== var$8) {
                                if ($rt_s(918) !== var$8) {
                                    if (var$8 instanceof jl_String) {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    } else
                                        $var11 = 0;
                                } else
                                    $var11 = 1;
                                if (!$var11) {
                                    $var11 = 0;
                                    break k;
                                }
                            }
                            $var11 = 1;
                        }
                        if ($var11)
                            break;
                    }
                    $par1IBlockSource = $par1IBlockSource.$next3;
                }
                if ($par1IBlockSource === null ? 0 : 1) {
                    l: {
                        var$22 = $par2ItemStack.$stackTagCompound;
                        $par1IBlockSource = var$22.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(918).$nativeString.length)
                                    break l;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(918).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    $par1IBlockSource = var$7[$var12 & (var$7.length - 1 | 0)];
                    while ($par1IBlockSource !== null) {
                        if ($par1IBlockSource.$origKeyHash == $var12) {
                            m: {
                                var$8 = $par1IBlockSource.$key;
                                if ($rt_s(918) !== var$8) {
                                    if ($rt_s(918) === var$8)
                                        $var11 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        var$8 = var$8;
                                        $var11 = $rt_s(918).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break m;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        $par1IBlockSource = $par1IBlockSource.$next3;
                    }
                    if (!($par1IBlockSource === null ? 0 : 1)) {
                        var$24 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$24.$name = $rt_s(918);
                        else
                            var$24.$name = $rt_s(3);
                        $par1IBlockSource = new ju_HashMap;
                        $var11 = ju_HashMap_calculateCapacity(16);
                        $par1IBlockSource.$elementCount = 0;
                        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var11);
                        var$25 = var$7.data;
                        $par1IBlockSource.$elementData = var$7;
                        $par1IBlockSource.$loadFactor = 0.75;
                        $par1IBlockSource.$threshold = var$25.length * 0.75 | 0;
                        var$24.$tagMap = $par1IBlockSource;
                    } else {
                        $par1IBlockSource = var$22.$tagMap;
                        if ($rt_s(918) === null) {
                            var$20 = $par1IBlockSource.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            n: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var11 = 0;
                                    while (true) {
                                        if ($var11 >= $rt_s(918).$nativeString.length)
                                            break n;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var11) | 0;
                                        $var11 = $var11 + 1 | 0;
                                    }
                                }
                            }
                            $var12 = $rt_s(918).$hashCode1;
                            var$7 = $par1IBlockSource.$elementData.data;
                            var$20 = var$7[$var12 & (var$7.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == $var12) {
                                    o: {
                                        $par1IBlockSource = var$20.$key;
                                        if ($rt_s(918) !== $par1IBlockSource) {
                                            if ($rt_s(918) === $par1IBlockSource)
                                                $var11 = 1;
                                            else if (!($par1IBlockSource instanceof jl_String))
                                                $var11 = 0;
                                            else {
                                                $par1IBlockSource = $par1IBlockSource;
                                                $var11 = $rt_s(918).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                            }
                                            if (!$var11) {
                                                $var11 = 0;
                                                break o;
                                            }
                                        }
                                        $var11 = 1;
                                    }
                                    if ($var11)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$24 = var$20 === null ? null : var$20.$value0;
                    }
                    p: {
                        $par1IBlockSource = var$24.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var11 = 0;
                            while (true) {
                                if ($var11 >= $rt_s(919).$nativeString.length)
                                    break p;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                $var11 = $var11 + 1 | 0;
                            }
                        }
                    }
                    $var12 = $rt_s(919).$hashCode1;
                    var$7 = $par1IBlockSource.$elementData.data;
                    var$22 = var$7[$var12 & (var$7.length - 1 | 0)];
                    while (var$22 !== null) {
                        if (var$22.$origKeyHash == $var12) {
                            q: {
                                $par1IBlockSource = var$22.$key;
                                if ($rt_s(919) !== $par1IBlockSource) {
                                    if ($rt_s(919) === $par1IBlockSource)
                                        $var11 = 1;
                                    else if (!($par1IBlockSource instanceof jl_String))
                                        $var11 = 0;
                                    else {
                                        $par1IBlockSource = $par1IBlockSource;
                                        $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                    }
                                    if (!$var11) {
                                        $var11 = 0;
                                        break q;
                                    }
                                }
                                $var11 = 1;
                            }
                            if ($var11)
                                break;
                        }
                        var$22 = var$22.$next3;
                    }
                    if (var$22 === null ? 0 : 1) {
                        r: {
                            $par1IBlockSource = var$24.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var11 = 0;
                                while (true) {
                                    if ($var11 >= $rt_s(919).$nativeString.length)
                                        break r;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                    $var11 = $var11 + 1 | 0;
                                }
                            }
                        }
                        $var12 = $rt_s(919).$hashCode1;
                        var$7 = $par1IBlockSource.$elementData.data;
                        var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                        while (var$21 !== null) {
                            if (var$21.$origKeyHash == $var12) {
                                s: {
                                    $par1IBlockSource = var$21.$key;
                                    if ($rt_s(919) !== $par1IBlockSource) {
                                        if ($rt_s(919) === $par1IBlockSource)
                                            $var11 = 1;
                                        else if (!($par1IBlockSource instanceof jl_String))
                                            $var11 = 0;
                                        else {
                                            $par1IBlockSource = $par1IBlockSource;
                                            $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                        }
                                        if (!$var11) {
                                            $var11 = 0;
                                            break s;
                                        }
                                    }
                                    $var11 = 1;
                                }
                                if ($var11)
                                    break;
                            }
                            var$21 = var$21.$next3;
                        }
                        if (!(var$21 === null ? 0 : 1))
                            var$21 = $rt_s(3);
                        else {
                            $par1IBlockSource = var$24.$tagMap;
                            if ($rt_s(919) === null) {
                                var$21 = $par1IBlockSource.$elementData.data[0];
                                while (var$21 !== null && var$21.$key !== null) {
                                    var$21 = var$21.$next3;
                                }
                            } else {
                                t: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var11 = 0;
                                        while (true) {
                                            if ($var11 >= $rt_s(919).$nativeString.length)
                                                break t;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var11) | 0;
                                            $var11 = $var11 + 1 | 0;
                                        }
                                    }
                                }
                                $var12 = $rt_s(919).$hashCode1;
                                var$7 = $par1IBlockSource.$elementData.data;
                                var$21 = var$7[$var12 & (var$7.length - 1 | 0)];
                                while (var$21 !== null) {
                                    if (var$21.$origKeyHash == $var12) {
                                        u: {
                                            $par1IBlockSource = var$21.$key;
                                            if ($rt_s(919) !== $par1IBlockSource) {
                                                if ($rt_s(919) === $par1IBlockSource)
                                                    $var11 = 1;
                                                else if (!($par1IBlockSource instanceof jl_String))
                                                    $var11 = 0;
                                                else {
                                                    $par1IBlockSource = $par1IBlockSource;
                                                    $var11 = $rt_s(919).$nativeString !== $par1IBlockSource.$nativeString ? 0 : 1;
                                                }
                                                if (!$var11) {
                                                    $var11 = 0;
                                                    break u;
                                                }
                                            }
                                            $var11 = 1;
                                        }
                                        if ($var11)
                                            break;
                                    }
                                    var$21 = var$21.$next3;
                                }
                            }
                            var$21 = (var$21 === null ? null : var$21.$value0).$data1;
                        }
                    }
                }
            }
            $var17.$entityName = var$21;
        }
        $ptr = 16;
        continue main;
    case 12:
        nms_BehaviorDefaultDispenseItem_doDispense(var$20, var$8, $var11, var$19, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $par1IBlockSource.$worldObj4;
        $var11 = 1000;
        var$12 = $par1IBlockSource.$xPos;
        $var14 = $par1IBlockSource.$yPos;
        $var13 = $par1IBlockSource.$zPos;
        $var12 = 0;
        $var4 = null;
        $ptr = 13;
    case 13:
        nms_World_playAuxSFXAtEntity(var$8, $var4, $var11, var$12, $var14, $var13, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $par1IBlockSource.$worldObj4;
        $var11 = $par1IBlockSource.$xPos;
        $var12 = $par1IBlockSource.$yPos;
        $var13 = $par1IBlockSource.$zPos;
        $ptr = 14;
    case 14:
        $tmp = nms_World_getBlockMetadata($var4, $var11, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $var11 = $var12 & 7;
        var$7 = nms_EnumFacing_faceList.data;
        var$8 = var$7[$var11 % var$7.length | 0];
        $var4 = $par1IBlockSource.$worldObj4;
        $var11 = 2000;
        $var13 = $par1IBlockSource.$xPos;
        $var12 = $par1IBlockSource.$yPos;
        var$12 = $par1IBlockSource.$zPos;
        $var14 = (var$8.$frontOffsetX + 1 | 0) + ((var$8.$frontOffsetZ + 1 | 0) * 3 | 0) | 0;
        $par1IBlockSource = null;
        $ptr = 15;
    case 15:
        nms_World_playAuxSFXAtEntity($var4, $par1IBlockSource, $var11, $var13, $var12, var$12, $var14);
        if ($rt_suspending()) {
            break main;
        }
        return $par2ItemStack;
    case 16:
        nms_World_spawnEntityInWorld($var4, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $par2ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        $par1IBlockSource = $par2ItemStack.$stackTagCompound;
        if ($par1IBlockSource !== null) {
            var$22 = new ju_HashMap;
            $var12 = ju_HashMap_calculateCapacity(16);
            var$22.$elementCount = 0;
            var$25 = $rt_createArray(ju_HashMap$HashEntry, $var12);
            var$7 = var$25.data;
            var$22.$elementData = var$25;
            var$22.$loadFactor = 0.75;
            var$22.$threshold = var$7.length * 0.75 | 0;
            $var4 = $par1IBlockSource.$tagMap;
            if ($var4.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = $var4;
                $var4.$cachedKeySet = var$8;
            }
            $var4 = $var4.$cachedKeySet.$iterator();
            while ($var4.$hasNext()) {
                var$8 = $var4.$next();
                var$20 = $par1IBlockSource.$tagMap;
                if (var$8 === null) {
                    var$20 = var$20.$elementData.data[0];
                    while (var$20 !== null && var$20.$key !== null) {
                        var$20 = var$20.$next3;
                    }
                } else {
                    a: {
                        if (!var$8.$hashCode1) {
                            $var12 = 0;
                            while (true) {
                                if ($var12 >= var$8.$nativeString.length)
                                    break a;
                                var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt($var12) | 0;
                                $var12 = $var12 + 1 | 0;
                            }
                        }
                    }
                    $var14 = var$8.$hashCode1;
                    var$7 = var$20.$elementData.data;
                    var$20 = var$7[$var14 & (var$7.length - 1 | 0)];
                    while (var$20 !== null) {
                        if (var$20.$origKeyHash == $var14) {
                            v: {
                                var$21 = var$20.$key;
                                if (var$8 !== var$21) {
                                    if (var$8 === var$21)
                                        $var12 = 1;
                                    else if (!(var$21 instanceof jl_String))
                                        $var12 = 0;
                                    else {
                                        var$21 = var$21;
                                        $var12 = var$8.$nativeString !== var$21.$nativeString ? 0 : 1;
                                    }
                                    if (!$var12) {
                                        $var12 = 0;
                                        break v;
                                    }
                                }
                                $var12 = 1;
                            }
                            if ($var12)
                                break;
                        }
                        var$20 = var$20.$next3;
                    }
                }
                var$20 = var$20 === null ? null : var$20.$value0;
                var$20 = var$20.$copy();
                if (var$8 !== null)
                    var$20.$name = var$8;
                else
                    var$20.$name = $rt_s(3);
                ju_HashMap_putImpl(var$22, var$8, var$20);
            }
        }
        $par2ItemStack.$stackSize = $par2ItemStack.$stackSize - 1 | 0;
        return $par2ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, $par2ItemStack, $var4, $var11, $var12, $var13, var$7, var$8, var$9, $var7, $var5, var$12, $var9, $var14, $var15, $var17, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_BehaviorDispenseMinecart_playDispenseSound = ($this, $par1IBlockSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IBlockSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1IBlockSource.$worldObj4;
        var$3 = 1000;
        var$4 = $par1IBlockSource.$xPos;
        var$5 = $par1IBlockSource.$yPos;
        var$6 = $par1IBlockSource.$zPos;
        var$7 = 0;
        $par1IBlockSource = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity(var$2, $par1IBlockSource, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IBlockSource, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_StatBasic = $rt_classWithoutFields(nms_StatBase),
nms_StatCollector = $rt_classWithoutFields(),
nms_StatCollector_localizedName = null,
nms_StatCollector_$callClinit = () => {
    nms_StatCollector_$callClinit = $rt_eraseClinit(nms_StatCollector);
    nms_StatCollector__clinit_();
},
nms_StatCollector__init_ = $this => {
    nms_StatCollector_$callClinit();
},
nms_StatCollector__init_0 = () => {
    let var_0 = new nms_StatCollector();
    nms_StatCollector__init_(var_0);
    return var_0;
},
nms_StatCollector_translateToLocal = $par0Str => {
    nms_StatCollector_$callClinit();
    return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $par0Str);
},
nms_StatCollector_translateToLocalFormatted = ($par0Str, $par1ArrayOfObj) => {
    nms_StatCollector_$callClinit();
    return nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $par0Str, $par1ArrayOfObj);
},
nms_StatCollector__clinit_ = () => {
    nms_StringTranslate_$callClinit();
    nms_StatCollector_localizedName = nms_StringTranslate_instance;
};
function nms_StatCrafting() {
    nms_StatBase.call(this);
    this.$itemID1 = 0;
}
function nms_CraftingManager() {
    jl_Object.call(this);
    this.$recipes = null;
}
let nms_CraftingManager_instance = null,
nms_CraftingManager_$callClinit = () => {
    nms_CraftingManager_$callClinit = $rt_eraseClinit(nms_CraftingManager);
    nms_CraftingManager__clinit_();
},
nms_CraftingManager__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    nms_CraftingManager_$callClinit();
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$recipes = var$1;
    nms_RecipesTools_addRecipes(nms_RecipesTools__init_0(), $this);
    nms_RecipesWeapons_addRecipes(nms_RecipesWeapons__init_0(), $this);
    nms_RecipesIngots_addRecipes(nms_RecipesIngots__init_0(), $this);
    nms_RecipesFood_addRecipes(new nms_RecipesFood, $this);
    nms_RecipesCrafting_addRecipes(new nms_RecipesCrafting, $this);
    nms_RecipesArmor_addRecipes(nms_RecipesArmor__init_0(), $this);
    nms_RecipesDyes_addRecipes(new nms_RecipesDyes, $this);
    var$1 = $this.$recipes;
    var$2 = new nms_RecipesArmorDyes;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$recipes;
    var$2 = new nms_RecipesMapCloning;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$recipes;
    var$2 = nms_RecipesMapExtending__init_0();
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$recipes;
    var$2 = new nms_RecipeFireworks;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$2 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$1 = nms_Item_paper;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$1.$itemID0;
    var$2.$stackSize = 3;
    var$2.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$1 = new jl_Character;
        var$1.$value5 = 35;
    } else {
        var$1 = var$6[35];
        if (var$1 === null) {
            var$1 = new jl_Character;
            var$1.$value5 = 35;
            var$6[35] = var$1;
        }
    }
    var$5[1] = var$1;
    var$5[2] = nms_Item_reed;
    nms_CraftingManager_addRecipe($this, var$2, var$3);
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_book.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$2 = nms_Item_paper;
    var$5[0] = var$2;
    var$5[1] = var$2;
    var$5[2] = var$2;
    var$5[3] = nms_Item_leather;
    nms_CraftingManager_addShapelessRecipe($this, var$1, var$3);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_writableBook.$itemID0;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = nms_Item_book;
    var$5[1] = nms_ItemStack__init_7(nms_Item_dyePowder.$itemID0, 1, 0);
    var$5[2] = nms_Item_feather;
    nms_CraftingManager_addShapelessRecipe($this, var$2, var$3);
    var$1 = new nms_ItemStack;
    nms_Block_$callClinit();
    nms_ItemStack__init_4(var$1, nms_Block_fence.$blockID, 2, 0);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_cobblestoneWall, 6, 0);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_cobblestone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_cobblestoneWall, 6, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_cobblestoneMossy;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_netherFence, 6);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_netherBrick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_fenceGate, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1512);
    var$5[1] = $rt_s(1512);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_stick;
    var$5[4] = jl_Character_valueOf(87);
    var$5[5] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_jukebox, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_planks;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_diamond;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_leash, 2);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1514);
    var$5[1] = $rt_s(1515);
    var$5[2] = $rt_s(1516);
    var$5[3] = jl_Character_valueOf(126);
    var$5[4] = nms_Item_silk;
    var$5[5] = jl_Character_valueOf(79);
    var$5[6] = nms_Item_slimeBall;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_music, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_planks;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_redstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_bookShelf, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1517);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_planks;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_book;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_blockSnow, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_snowball;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_snow, 6);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_blockSnow;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_blockClay, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_clay;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_brick, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_brick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_glowStone, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_glowstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_blockNetherQuartz, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_netherQuartz;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_cloth, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_silk;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_tnt, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1519);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1519);
    var$5[3] = jl_Character_valueOf(88);
    var$5[4] = nms_Item_gunpowder;
    var$5[5] = jl_Character_valueOf(35);
    var$5[6] = nms_Block_sand;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 3);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_cobblestone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 0);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_stone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_sandStone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 4);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_brick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 5);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_stoneBrick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 6);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_netherBrick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_stoneSingleSlab, 6, 7);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_blockNetherQuartz;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_woodSingleSlab, 6, 0);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_planks, 1, 0);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_woodSingleSlab, 6, 2);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_planks, 1, 2);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_woodSingleSlab, 6, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_planks, 1, 1);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_woodSingleSlab, 6, 3);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_planks, 1, 3);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_ladder, 3);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1511);
    var$5[2] = $rt_s(1520);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_doorWood, 1);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = $rt_s(1518);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_trapdoor, 2);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_doorIron, 1);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$5[2] = $rt_s(1518);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_sign, 3);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$5[2] = $rt_s(1521);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_planks;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_cake, 1);
    var$3 = $rt_createArray(jl_Object, 11);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1522);
    var$5[1] = $rt_s(1523);
    var$5[2] = $rt_s(1524);
    var$5[3] = jl_Character_valueOf(65);
    var$5[4] = nms_Item_bucketMilk;
    var$5[5] = jl_Character_valueOf(66);
    var$5[6] = nms_Item_sugar;
    var$5[7] = jl_Character_valueOf(67);
    var$5[8] = nms_Item_wheat;
    var$5[9] = jl_Character_valueOf(69);
    var$5[10] = nms_Item_egg;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_sugar, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Item_reed;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_planks, 4, 0);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_wood, 1, 0);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_planks, 4, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_wood, 1, 1);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_planks, 4, 2);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_wood, 1, 2);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_1(nms_Block_planks, 4, 3);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_ItemStack__init_1(nms_Block_wood, 1, 3);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_stick, 4);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = $rt_s(130);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_torchWood, 4);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1525);
    var$5[1] = $rt_s(130);
    var$5[2] = jl_Character_valueOf(88);
    var$5[3] = nms_Item_coal;
    var$5[4] = jl_Character_valueOf(35);
    var$5[5] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_torchWood, 4);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1525);
    var$5[1] = $rt_s(130);
    var$5[2] = jl_Character_valueOf(88);
    var$5[3] = nms_ItemStack__init_3(nms_Item_coal, 1, 1);
    var$5[4] = jl_Character_valueOf(35);
    var$5[5] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_bowlEmpty, 4);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1526);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_glassBottle, 3);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1526);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_glass;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_rail, 16);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1527);
    var$5[1] = $rt_s(1519);
    var$5[2] = $rt_s(1527);
    var$5[3] = jl_Character_valueOf(88);
    var$5[4] = nms_Item_ingotIron;
    var$5[5] = jl_Character_valueOf(35);
    var$5[6] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_railPowered, 6);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1527);
    var$5[1] = $rt_s(1519);
    var$5[2] = $rt_s(1528);
    var$5[3] = jl_Character_valueOf(88);
    var$5[4] = nms_Item_ingotGold;
    var$5[5] = jl_Character_valueOf(82);
    var$5[6] = nms_Item_redstone;
    var$5[7] = jl_Character_valueOf(35);
    var$5[8] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_railActivator, 6);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1529);
    var$5[1] = $rt_s(1519);
    var$5[2] = $rt_s(1529);
    var$5[3] = jl_Character_valueOf(88);
    var$5[4] = nms_Item_ingotIron;
    var$5[5] = jl_Character_valueOf(35);
    var$5[6] = nms_Block_torchRedstoneActive;
    var$5[7] = jl_Character_valueOf(83);
    var$5[8] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_railDetector, 6);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1527);
    var$5[1] = $rt_s(1519);
    var$5[2] = $rt_s(1528);
    var$5[3] = jl_Character_valueOf(88);
    var$5[4] = nms_Item_ingotIron;
    var$5[5] = jl_Character_valueOf(82);
    var$5[6] = nms_Item_redstone;
    var$5[7] = jl_Character_valueOf(35);
    var$5[8] = nms_Block_pressurePlateStone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_minecartEmpty, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_cauldron, 1);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1520);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_brewingStand, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1530);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_cobblestone;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Item_blazeRod;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pumpkinLantern, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1531);
    var$5[1] = $rt_s(1532);
    var$5[2] = jl_Character_valueOf(65);
    var$5[3] = nms_Block_pumpkin;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Block_torchWood;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_minecartCrate, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1531);
    var$5[1] = $rt_s(1532);
    var$5[2] = jl_Character_valueOf(65);
    var$5[3] = nms_Block_chest;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Item_minecartEmpty;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_minecartPowered, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1531);
    var$5[1] = $rt_s(1532);
    var$5[2] = jl_Character_valueOf(65);
    var$5[3] = nms_Block_furnaceIdle;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Item_minecartEmpty;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_minecartTnt, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1531);
    var$5[1] = $rt_s(1532);
    var$5[2] = jl_Character_valueOf(65);
    var$5[3] = nms_Block_tnt;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Item_minecartEmpty;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_minecartHopper, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1531);
    var$5[1] = $rt_s(1532);
    var$5[2] = jl_Character_valueOf(65);
    var$5[3] = nms_Block_hopperBlock;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Item_minecartEmpty;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_boat, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1511);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_bucketEmpty, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1526);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_flowerPot, 1);
    var$3 = $rt_createArray(jl_Object, 4);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1520);
    var$5[1] = $rt_s(1526);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_brick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_flintAndSteel, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1533);
    var$5[1] = $rt_s(1534);
    var$5[2] = jl_Character_valueOf(65);
    var$5[3] = nms_Item_ingotIron;
    var$5[4] = jl_Character_valueOf(66);
    var$5[5] = nms_Item_flint;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_bread, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Item_wheat;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsWoodOak, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_ItemStack__init_1(nms_Block_planks, 1, 0);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsWoodBirch, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_ItemStack__init_1(nms_Block_planks, 1, 2);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsWoodSpruce, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_ItemStack__init_1(nms_Block_planks, 1, 1);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsWoodJungle, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_ItemStack__init_1(nms_Block_planks, 1, 3);
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_fishingRod, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1537);
    var$5[1] = $rt_s(1538);
    var$5[2] = $rt_s(1539);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_stick;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_silk;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_carrotOnAStick, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1540);
    var$5[1] = $rt_s(1541);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_fishingRod;
    var$5[4] = jl_Character_valueOf(88);
    var$5[5] = nms_Item_carrot;
    nms_ShapedRecipes_func_92100_c(nms_CraftingManager_addRecipe($this, var$1, var$3));
    var$1 = nms_ItemStack__init_(nms_Block_stairsCobblestone, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_cobblestone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsBrick, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_brick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsStoneBrick, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_stoneBrick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsNetherBrick, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_netherBrick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsSandStone, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_sandStone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stairsNetherQuartz, 4);
    var$3 = $rt_createArray(jl_Object, 5);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1535);
    var$5[1] = $rt_s(1536);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_blockNetherQuartz;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_painting, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_stick;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Block_cloth;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_itemFrame, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_stick;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_leather;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_3(nms_Item_appleGold, 1, 0);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_ingotGold;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_appleRed;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_3(nms_Item_appleGold, 1, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_blockGold;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_appleRed;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_3(nms_Item_goldenCarrot, 1, 0);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_goldNugget;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_carrot;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_speckledMelon, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_goldNugget;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_melon;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_lever, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1525);
    var$5[1] = $rt_s(130);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_cobblestone;
    var$5[4] = jl_Character_valueOf(88);
    var$5[5] = nms_Item_stick;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_tripWireSource, 2);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1542);
    var$5[1] = $rt_s(1543);
    var$5[2] = $rt_s(130);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_planks;
    var$5[5] = jl_Character_valueOf(83);
    var$5[6] = nms_Item_stick;
    var$5[7] = jl_Character_valueOf(73);
    var$5[8] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_torchRedstoneActive, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1525);
    var$5[1] = $rt_s(130);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Item_stick;
    var$5[4] = jl_Character_valueOf(88);
    var$5[5] = nms_Item_redstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_redstoneRepeater, 1);
    var$3 = $rt_createArray(jl_Object, 8);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1513);
    var$5[1] = $rt_s(1544);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_torchRedstoneActive;
    var$5[4] = jl_Character_valueOf(88);
    var$5[5] = nms_Item_redstone;
    var$5[6] = jl_Character_valueOf(73);
    var$5[7] = nms_Block_stone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_comparator, 1);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1526);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1544);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_torchRedstoneActive;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_netherQuartz;
    var$5[7] = jl_Character_valueOf(73);
    var$5[8] = nms_Block_stone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_pocketSundial, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1526);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1526);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_ingotGold;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_redstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_compass, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1526);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1526);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_ingotIron;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_redstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_emptyMap, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Item_paper;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_compass;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_stoneButton, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_stone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_woodenButton, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(130);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pressurePlateStone, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_stone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pressurePlatePlanks, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pressurePlateIron, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pressurePlateGold, 1);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = jl_Character_valueOf(35);
    var$5[2] = nms_Item_ingotGold;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_dispenser, 1);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1545);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_cobblestone;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_bow;
    var$5[7] = jl_Character_valueOf(82);
    var$5[8] = nms_Item_redstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_dropper, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1520);
    var$5[2] = $rt_s(1545);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_cobblestone;
    var$5[5] = jl_Character_valueOf(82);
    var$5[6] = nms_Item_redstone;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pistonBase, 1);
    var$3 = $rt_createArray(jl_Object, 11);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1546);
    var$5[1] = $rt_s(1513);
    var$5[2] = $rt_s(1545);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_cobblestone;
    var$5[5] = jl_Character_valueOf(88);
    var$5[6] = nms_Item_ingotIron;
    var$5[7] = jl_Character_valueOf(82);
    var$5[8] = nms_Item_redstone;
    var$5[9] = jl_Character_valueOf(84);
    var$5[10] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_pistonStickyBase, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1543);
    var$5[1] = $rt_s(1547);
    var$5[2] = jl_Character_valueOf(83);
    var$5[3] = nms_Item_slimeBall;
    var$5[4] = jl_Character_valueOf(80);
    var$5[5] = nms_Block_pistonBase;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_bed, 1);
    var$3 = $rt_createArray(jl_Object, 6);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1517);
    var$5[2] = jl_Character_valueOf(35);
    var$5[3] = nms_Block_cloth;
    var$5[4] = jl_Character_valueOf(88);
    var$5[5] = nms_Block_planks;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_enchantmentTable, 1);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1530);
    var$5[1] = $rt_s(1548);
    var$5[2] = $rt_s(1511);
    var$5[3] = jl_Character_valueOf(35);
    var$5[4] = nms_Block_obsidian;
    var$5[5] = jl_Character_valueOf(66);
    var$5[6] = nms_Item_book;
    var$5[7] = jl_Character_valueOf(68);
    var$5[8] = nms_Item_diamond;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_(nms_Block_anvil, 1);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1544);
    var$5[1] = $rt_s(1549);
    var$5[2] = $rt_s(1550);
    var$5[3] = jl_Character_valueOf(73);
    var$5[4] = nms_Block_blockIron;
    var$5[5] = jl_Character_valueOf(105);
    var$5[6] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_eyeOfEnder, 1);
    var$3 = $rt_createArray(jl_Object, 2);
    var$5 = var$3.data;
    var$5[0] = nms_Item_enderPearl;
    var$5[1] = nms_Item_blazePowder;
    nms_CraftingManager_addShapelessRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_fireballCharge, 3);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = nms_Item_gunpowder;
    var$5[1] = nms_Item_blazePowder;
    var$5[2] = nms_Item_coal;
    nms_CraftingManager_addShapelessRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_0(nms_Item_fireballCharge, 3);
    var$3 = $rt_createArray(jl_Object, 3);
    var$5 = var$3.data;
    var$5[0] = nms_Item_gunpowder;
    var$5[1] = nms_Item_blazePowder;
    var$5[2] = nms_ItemStack__init_3(nms_Item_coal, 1, 1);
    nms_CraftingManager_addShapelessRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_6(nms_Block_daylightSensor);
    var$3 = $rt_createArray(jl_Object, 9);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1551);
    var$5[1] = $rt_s(1552);
    var$5[2] = $rt_s(1553);
    var$5[3] = jl_Character_valueOf(71);
    var$5[4] = nms_Block_glass;
    var$5[5] = jl_Character_valueOf(81);
    var$5[6] = nms_Item_netherQuartz;
    var$5[7] = jl_Character_valueOf(87);
    var$5[8] = nms_Block_woodSingleSlab;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    var$1 = nms_ItemStack__init_6(nms_Block_hopperBlock);
    var$3 = $rt_createArray(jl_Object, 7);
    var$5 = var$3.data;
    var$5[0] = $rt_s(1554);
    var$5[1] = $rt_s(1555);
    var$5[2] = $rt_s(1556);
    var$5[3] = jl_Character_valueOf(73);
    var$5[4] = nms_Item_ingotIron;
    var$5[5] = jl_Character_valueOf(67);
    var$5[6] = nms_Block_chest;
    nms_CraftingManager_addRecipe($this, var$1, var$3);
    ju_Collections_sort($this.$recipes, nms_RecipeSorter__init_($this));
},
nms_CraftingManager__init_0 = () => {
    let var_0 = new nms_CraftingManager();
    nms_CraftingManager__init_(var_0);
    return var_0;
},
nms_CraftingManager_addRecipe = ($this, $par1ItemStack, $par2ArrayOfObj) => {
    let $var14, $var3, $var4, $var5, $var6, var$8, $var8, $var11, $var17, $var7, $var9, var$14, $var16, $var12, var$17, $var13, $var15, $var10, var$21, var$22, var$23;
    a: {
        $var14 = $par2ArrayOfObj.data;
        $var3 = $rt_s(3);
        $var4 = 0;
        $var5 = 0;
        $var6 = 0;
        if (!$rt_isInstance($var14[$var4], $rt_arraycls(jl_String))) {
            while (true) {
                if (!($var14[$var4] instanceof jl_String)) {
                    var$8 = $var4;
                    break a;
                }
                $var8 = $var4 + 1 | 0;
                $var11 = $var14[$var4];
                $var6 = $var6 + 1 | 0;
                $var5 = $var11.$nativeString.length;
                $var17 = new jl_StringBuilder;
                $var17.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var17, $var17.$length0, $var3);
                jl_AbstractStringBuilder_insert($var17, $var17.$length0, $var11);
                $var3 = new jl_String;
                $par2ArrayOfObj = $var17.$buffer;
                $var7 = $par2ArrayOfObj.data;
                $var4 = $var17.$length0;
                var$8 = $var7.length;
                if ($var4 < 0)
                    break;
                if ($var4 > (var$8 - 0 | 0))
                    break;
                $var3.$nativeString = $rt_charArrayToString($par2ArrayOfObj.data, 0, $var4);
                $var4 = $var8;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        var$8 = 1;
        $var7 = $var14[$var4];
        $var8 = 0;
        while (true) {
            $par2ArrayOfObj = $var7.data;
            if ($var8 >= $par2ArrayOfObj.length)
                break a;
            $var9 = $par2ArrayOfObj[$var8];
            $var6 = $var6 + 1 | 0;
            $var5 = $var9.$nativeString.length;
            $var17 = new jl_StringBuilder;
            $var17.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var17, $var17.$length0, $var3);
            jl_AbstractStringBuilder_insert($var17, $var17.$length0, $var9.$toString());
            $var3 = new jl_String;
            $par2ArrayOfObj = $var17.$buffer;
            var$14 = $par2ArrayOfObj.data;
            $var4 = $var17.$length0;
            $var16 = var$14.length;
            if ($var4 < 0)
                break;
            if ($var4 > ($var16 - 0 | 0))
                break;
            $var3.$nativeString = $rt_charArrayToString($par2ArrayOfObj.data, 0, $var4);
            $var8 = $var8 + 1 | 0;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ItemStack);
        $rt_throw($par1ItemStack);
    }
    $var12 = new ju_HashMap;
    var$17 = ju_HashMap_calculateCapacity(16);
    $var12.$elementCount = 0;
    $var7 = $rt_createArray(ju_HashMap$HashEntry, var$17);
    $par2ArrayOfObj = $var7.data;
    $var12.$elementData = $var7;
    $var12.$loadFactor = 0.75;
    $var12.$threshold = $par2ArrayOfObj.length * 0.75 | 0;
    while (var$8 < $var14.length) {
        $var13 = $var14[var$8];
        $var15 = null;
        var$17 = var$8 + 1 | 0;
        if ($var14[var$17] instanceof nms_Item) {
            $var15 = new nms_ItemStack;
            $var17 = $var14[var$17];
            nms_ItemStack_$callClinit();
            $var15.$itemID = $var17.$itemID0;
            $var15.$stackSize = 1;
            $var15.$itemDamage = 0;
        } else if ($var14[var$17] instanceof nms_Block) {
            $var15 = new nms_ItemStack;
            $var17 = $var14[var$17];
            nms_ItemStack_$callClinit();
            $var15.$itemID = $var17.$blockID;
            $var15.$stackSize = 1;
            $var15.$itemDamage = 32767;
        } else if ($var14[var$17] instanceof nms_ItemStack)
            $var15 = $var14[var$17];
        ju_HashMap_putImpl($var12, $var13, $var15);
        var$8 = var$8 + 2 | 0;
    }
    $var8 = $rt_imul($var5, $var6);
    $var14 = $rt_createArray(nms_ItemStack, $var8);
    var$14 = $var14.data;
    $var16 = 0;
    while (true) {
        if ($var16 >= $var8) {
            $var17 = new nms_ShapedRecipes;
            $var17.$recipeOutputItemID = $par1ItemStack.$itemID;
            $var17.$recipeWidth = $var5;
            $var17.$recipeHeight = $var6;
            $var17.$recipeItems = $var14;
            $var17.$recipeOutput = $par1ItemStack;
            $par1ItemStack = $this.$recipes;
            ju_ArrayList_ensureCapacity($par1ItemStack, $par1ItemStack.$size0 + 1 | 0);
            $par2ArrayOfObj = $par1ItemStack.$array.data;
            $var4 = $par1ItemStack.$size0;
            $par1ItemStack.$size0 = $var4 + 1 | 0;
            $par2ArrayOfObj[$var4] = $var17;
            $par1ItemStack.$modCount = $par1ItemStack.$modCount + 1 | 0;
            return $var17;
        }
        if ($var16 < 0)
            break;
        if ($var16 >= $var3.$nativeString.length)
            break;
        $var10 = $var3.$nativeString.charCodeAt($var16);
        $var7 = jl_Character_characterCache.data;
        var$21 = $rt_compare($var10, $var7.length);
        if (var$21 >= 0) {
            $var17 = new jl_Character;
            $var17.$value5 = $var10;
        } else {
            $var17 = $var7[$var10];
            if ($var17 === null) {
                $var17 = new jl_Character;
                $var17.$value5 = $var10;
                $var7[$var10] = $var17;
            }
        }
        $var4 = $var17.$value5;
        $par2ArrayOfObj = $var12.$elementData.data;
        var$8 = $par2ArrayOfObj.length - 1 | 0;
        $var9 = $par2ArrayOfObj[$var4 & var$8];
        while ($var9 !== null) {
            if ($var9.$origKeyHash == $var4) {
                $var11 = $var9.$key;
                if ($var17 !== $var11 && !($var17 === $var11 ? 1 : $var11 instanceof jl_Character && $var11.$value5 == $var4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var9 = $var9.$next3;
        }
        if (!($var9 === null ? 0 : 1))
            var$14[$var16] = null;
        else {
            if (var$21 >= 0) {
                $var17 = new jl_Character;
                $var17.$value5 = $var10;
            } else {
                $var17 = $var7[$var10];
                if ($var17 === null) {
                    $var17 = new jl_Character;
                    $var17.$value5 = $var10;
                    $var7[$var10] = $var17;
                }
            }
            $var4 = $var17.$value5;
            $var9 = $par2ArrayOfObj[$var4 & var$8];
            while ($var9 !== null) {
                if ($var9.$origKeyHash == $var4) {
                    $var11 = $var9.$key;
                    if ($var17 !== $var11 && !($var17 === $var11 ? 1 : $var11 instanceof jl_Character && $var11.$value5 == $var4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var9 = $var9.$next3;
            }
            $var9 = $var9 === null ? null : $var9.$value0;
            $var17 = new nms_ItemStack;
            var$17 = $var9.$itemID;
            $var4 = $var9.$stackSize;
            var$8 = $var9.$itemDamage;
            nms_ItemStack_$callClinit();
            $var17.$itemID = var$17;
            $var17.$stackSize = $var4;
            $var17.$itemDamage = var$8;
            if (var$8 < 0)
                $var17.$itemDamage = 0;
            $var9 = $var9.$stackTagCompound;
            if ($var9 !== null) {
                $var11 = new nms_NBTTagCompound;
                $var13 = $var9.$name;
                if ($var13 === null)
                    $var13 = $rt_s(3);
                $var11.$name = $var13;
                $var13 = new ju_HashMap;
                var$17 = ju_HashMap_calculateCapacity(16);
                $var13.$elementCount = 0;
                $var7 = $rt_createArray(ju_HashMap$HashEntry, var$17);
                $par2ArrayOfObj = $var7.data;
                $var13.$elementData = $var7;
                $var13.$loadFactor = 0.75;
                $var13.$threshold = $par2ArrayOfObj.length * 0.75 | 0;
                $var11.$tagMap = $var13;
                $var15 = $var9.$tagMap;
                if ($var15.$cachedKeySet === null) {
                    $var13 = new ju_HashMap$1;
                    $var13.$this$0 = $var15;
                    $var15.$cachedKeySet = $var13;
                }
                var$22 = $var15.$cachedKeySet.$iterator();
                while (var$22.$hasNext()) {
                    var$23 = var$22.$next();
                    $var13 = $var9.$tagMap;
                    if (var$23 === null) {
                        $var13 = $var13.$elementData.data[0];
                        while ($var13 !== null && $var13.$key !== null) {
                            $var13 = $var13.$next3;
                        }
                    } else {
                        b: {
                            if (!var$23.$hashCode1) {
                                var$17 = 0;
                                while (true) {
                                    if (var$17 >= var$23.$nativeString.length)
                                        break b;
                                    var$23.$hashCode1 = (31 * var$23.$hashCode1 | 0) + var$23.$nativeString.charCodeAt(var$17) | 0;
                                    var$17 = var$17 + 1 | 0;
                                }
                            }
                        }
                        $var4 = var$23.$hashCode1;
                        $par2ArrayOfObj = $var13.$elementData.data;
                        $var13 = $par2ArrayOfObj[$var4 & ($par2ArrayOfObj.length - 1 | 0)];
                        while ($var13 !== null) {
                            if ($var13.$origKeyHash == $var4) {
                                c: {
                                    $var15 = $var13.$key;
                                    if (var$23 !== $var15) {
                                        if (var$23 === $var15)
                                            var$17 = 1;
                                        else if (!($var15 instanceof jl_String))
                                            var$17 = 0;
                                        else {
                                            $var15 = $var15;
                                            var$17 = var$23.$nativeString !== $var15.$nativeString ? 0 : 1;
                                        }
                                        if (!var$17) {
                                            var$17 = 0;
                                            break c;
                                        }
                                    }
                                    var$17 = 1;
                                }
                                if (var$17)
                                    break;
                            }
                            $var13 = $var13.$next3;
                        }
                    }
                    $var13 = $var13 === null ? null : $var13.$value0;
                    $var13 = $var13.$copy();
                    $var15 = $var11.$tagMap;
                    if (var$23 !== null)
                        $var13.$name = var$23;
                    else
                        $var13.$name = $rt_s(3);
                    ju_HashMap_putImpl($var15, var$23, $var13);
                }
                $var17.$stackTagCompound = $var11;
            }
            var$14[$var16] = $var17;
        }
        $var16 = $var16 + 1 | 0;
    }
    $par1ItemStack = new jl_StringIndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    $rt_throw($par1ItemStack);
},
nms_CraftingManager_addShapelessRecipe = ($this, $par1ItemStack, $par2ArrayOfObj) => {
    let var$3, $var3, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17;
    var$3 = $par2ArrayOfObj.data;
    $var3 = new ju_ArrayList;
    $var3.$array = $rt_createArray(jl_Object, 10);
    $var5 = var$3.length;
    $var6 = 0;
    while (true) {
        if ($var6 >= $var5) {
            $var7 = $this.$recipes;
            var$8 = new nms_ShapelessRecipes;
            var$8.$recipeOutput0 = $par1ItemStack;
            var$8.$recipeItems2 = $var3;
            ju_ArrayList_ensureCapacity($var7, $var7.$size0 + 1 | 0);
            $par2ArrayOfObj = $var7.$array.data;
            var$9 = $var7.$size0;
            $var7.$size0 = var$9 + 1 | 0;
            $par2ArrayOfObj[var$9] = var$8;
            $var7.$modCount = $var7.$modCount + 1 | 0;
            return;
        }
        $var7 = var$3[$var6];
        if (!($var7 instanceof nms_ItemStack)) {
            if ($var7 instanceof nms_Item) {
                var$8 = new nms_ItemStack;
                $var7 = $var7;
                nms_ItemStack_$callClinit();
                var$8.$itemID = $var7.$itemID0;
                var$8.$stackSize = 1;
                var$8.$itemDamage = 0;
                ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                $par2ArrayOfObj = $var3.$array.data;
                var$9 = $var3.$size0;
                $var3.$size0 = var$9 + 1 | 0;
                $par2ArrayOfObj[var$9] = var$8;
                $var3.$modCount = $var3.$modCount + 1 | 0;
            } else {
                if (!($var7 instanceof nms_Block))
                    break;
                var$8 = new nms_ItemStack;
                $var7 = $var7;
                nms_ItemStack_$callClinit();
                var$8.$itemID = $var7.$blockID;
                var$8.$stackSize = 1;
                var$8.$itemDamage = 0;
                ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                $par2ArrayOfObj = $var3.$array.data;
                var$9 = $var3.$size0;
                $var3.$size0 = var$9 + 1 | 0;
                $par2ArrayOfObj[var$9] = var$8;
                $var3.$modCount = $var3.$modCount + 1 | 0;
            }
        } else {
            var$8 = $var7;
            $var7 = new nms_ItemStack;
            var$10 = var$8.$itemID;
            var$9 = var$8.$stackSize;
            var$11 = var$8.$itemDamage;
            nms_ItemStack_$callClinit();
            $var7.$itemID = var$10;
            $var7.$stackSize = var$9;
            $var7.$itemDamage = var$11;
            if (var$11 < 0)
                $var7.$itemDamage = 0;
            var$8 = var$8.$stackTagCompound;
            if (var$8 !== null) {
                var$12 = new nms_NBTTagCompound;
                var$13 = var$8.$name;
                if (var$13 === null)
                    var$13 = $rt_s(3);
                var$12.$name = var$13;
                var$13 = new ju_HashMap;
                var$10 = ju_HashMap_calculateCapacity(16);
                var$13.$elementCount = 0;
                var$14 = $rt_createArray(ju_HashMap$HashEntry, var$10);
                $par2ArrayOfObj = var$14.data;
                var$13.$elementData = var$14;
                var$13.$loadFactor = 0.75;
                var$13.$threshold = $par2ArrayOfObj.length * 0.75 | 0;
                var$12.$tagMap = var$13;
                var$15 = var$8.$tagMap;
                if (var$15.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$15;
                    var$15.$cachedKeySet = var$13;
                }
                var$13 = var$15.$cachedKeySet.$iterator();
                while (var$13.$hasNext()) {
                    var$15 = var$13.$next();
                    var$16 = var$8.$tagMap;
                    if (var$15 === null) {
                        var$16 = var$16.$elementData.data[0];
                        while (var$16 !== null && var$16.$key !== null) {
                            var$16 = var$16.$next3;
                        }
                    } else {
                        a: {
                            if (!var$15.$hashCode1) {
                                var$10 = 0;
                                while (true) {
                                    if (var$10 >= var$15.$nativeString.length)
                                        break a;
                                    var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$10) | 0;
                                    var$10 = var$10 + 1 | 0;
                                }
                            }
                        }
                        var$11 = var$15.$hashCode1;
                        $par2ArrayOfObj = var$16.$elementData.data;
                        var$16 = $par2ArrayOfObj[var$11 & ($par2ArrayOfObj.length - 1 | 0)];
                        while (var$16 !== null) {
                            if (var$16.$origKeyHash == var$11) {
                                b: {
                                    var$17 = var$16.$key;
                                    if (var$15 !== var$17) {
                                        if (var$15 === var$17)
                                            var$10 = 1;
                                        else if (!(var$17 instanceof jl_String))
                                            var$10 = 0;
                                        else {
                                            var$17 = var$17;
                                            var$10 = var$15.$nativeString !== var$17.$nativeString ? 0 : 1;
                                        }
                                        if (!var$10) {
                                            var$10 = 0;
                                            break b;
                                        }
                                    }
                                    var$10 = 1;
                                }
                                if (var$10)
                                    break;
                            }
                            var$16 = var$16.$next3;
                        }
                    }
                    var$16 = var$16 === null ? null : var$16.$value0;
                    var$16 = var$16.$copy();
                    var$17 = var$12.$tagMap;
                    if (var$15 !== null)
                        var$16.$name = var$15;
                    else
                        var$16.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$17, var$15, var$16);
                }
                $var7.$stackTagCompound = var$12;
            }
            ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
            $par2ArrayOfObj = $var3.$array.data;
            var$9 = $var3.$size0;
            $var3.$size0 = var$9 + 1 | 0;
            $par2ArrayOfObj[var$9] = $var7;
            $var3.$modCount = $var3.$modCount + 1 | 0;
        }
        $var6 = $var6 + 1 | 0;
    }
    $par1ItemStack = new jl_RuntimeException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    $par1ItemStack.$message = $rt_s(1557);
    $rt_throw($par1ItemStack);
},
nms_CraftingManager_findMatchingRecipe = ($this, $par1InventoryCrafting, $par2World) => {
    let $var3, $var4, $var5, $var6, var$7, var$8, $var7, $var10, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2World = $thread.pop();$par1InventoryCrafting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 0;
        $var4 = null;
        $var5 = null;
        $var6 = 0;
        while (true) {
            var$7 = $par1InventoryCrafting.$stackList.data;
            var$8 = $rt_compare($var6, var$7.length);
            if (var$8 >= 0)
                break;
            $var7 = var$8 < 0 ? var$7[$var6] : null;
            if ($var7 !== null) {
                if (!$var3)
                    $var4 = $var7;
                if ($var3 == 1)
                    $var5 = $var7;
                $var3 = $var3 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        if ($var3 == 2) {
            $var3 = $var4.$itemID;
            if ($var3 == $var5.$itemID && $var4.$stackSize == 1 && $var5.$stackSize == 1) {
                nms_Item_$callClinit();
                var$7 = nms_Item_itemsList.data;
                $var7 = var$7[$var3];
                if ($var7.$maxDamage > 0 && !$var7.$hasSubtypes ? 1 : 0) {
                    var$8 = var$7[$var3].$maxDamage;
                    $var10 = var$8 - (((var$8 - $var4.$itemDamage | 0) + (var$8 - $var5.$itemDamage | 0) | 0) + ((var$8 * 5 | 0) / 100 | 0) | 0) | 0;
                    if ($var10 < 0)
                        $var10 = 0;
                    $par1InventoryCrafting = new nms_ItemStack;
                    nms_ItemStack_$callClinit();
                    $par1InventoryCrafting.$itemID = $var3;
                    $par1InventoryCrafting.$stackSize = 1;
                    $par1InventoryCrafting.$itemDamage = $var10;
                    if ($var10 < 0)
                        $par1InventoryCrafting.$itemDamage = 0;
                    return $par1InventoryCrafting;
                }
            }
        }
        $var3 = 0;
        $var7 = $this.$recipes;
        var$8 = $rt_compare($var3, $var7.$size0);
        if (var$8 >= 0)
            return null;
        if ($var3 >= 0 && var$8 < 0) {
            $var12 = $var7.$array.data[$var3];
            $ptr = 1;
            continue main;
        }
        $par1InventoryCrafting = new jl_IndexOutOfBoundsException;
        $par1InventoryCrafting.$suppressionEnabled = 1;
        $par1InventoryCrafting.$writableStackTrace = 1;
        $rt_throw($par1InventoryCrafting);
    case 1:
        $tmp = $var12.$matches0($par1InventoryCrafting, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return $var12.$getCraftingResult($par1InventoryCrafting);
        $var3 = $var3 + 1 | 0;
        $var7 = $this.$recipes;
        var$8 = $rt_compare($var3, $var7.$size0);
        if (var$8 >= 0)
            return null;
        if ($var3 >= 0 && var$8 < 0) {
            $var12 = $var7.$array.data[$var3];
            continue main;
        }
        $par1InventoryCrafting = new jl_IndexOutOfBoundsException;
        $par1InventoryCrafting.$suppressionEnabled = 1;
        $par1InventoryCrafting.$writableStackTrace = 1;
        $rt_throw($par1InventoryCrafting);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1InventoryCrafting, $par2World, $var3, $var4, $var5, $var6, var$7, var$8, $var7, $var10, $var12, $ptr);
},
nms_CraftingManager__clinit_ = () => {
    nms_CraftingManager_instance = nms_CraftingManager__init_0();
};
function nms_FurnaceRecipes() {
    let a = this; jl_Object.call(a);
    a.$smeltingList = null;
    a.$experienceList = null;
}
let nms_FurnaceRecipes_smeltingBase = null,
nms_FurnaceRecipes_$callClinit = () => {
    nms_FurnaceRecipes_$callClinit = $rt_eraseClinit(nms_FurnaceRecipes);
    nms_FurnaceRecipes__clinit_();
},
nms_FurnaceRecipes__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_FurnaceRecipes_$callClinit();
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$smeltingList = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$experienceList = var$1;
    nms_Block_$callClinit();
    var$2 = nms_Block_oreIron.$blockID;
    var$5 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$1 = nms_Item_ingotIron;
    nms_ItemStack_$callClinit();
    var$5.$itemID = var$1.$itemID0;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$1 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$1, var$6, var$5);
    var$1 = $this.$experienceList;
    var$2 = var$5.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.699999988079071;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$2 = nms_Block_oreGold.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_ingotGold.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 1.0;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_oreDiamond.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_diamond.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 1.0;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_sand.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Block_glass.$blockID;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.10000000149011612;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Item_porkRaw.$itemID0;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_porkCooked.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.3499999940395355;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Item_beefRaw.$itemID0;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_beefCooked.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.3499999940395355;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Item_chickenRaw.$itemID0;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_chickenCooked.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.3499999940395355;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Item_fishRaw.$itemID0;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_fishCooked.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.3499999940395355;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_cobblestone.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Block_stone.$blockID;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.10000000149011612;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Item_clay.$itemID0;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_brick.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.30000001192092896;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_blockClay.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Block_hardenedClay.$blockID;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.3499999940395355;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$7 = nms_Block_cactus.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_dyePowder.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 2;
    var$5 = $this.$smeltingList;
    if (var$7 >= (-128) && var$7 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$7 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$7;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.20000000298023224;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_wood.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_coal.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 1;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$8 = var$1.$itemID;
    if (var$8 >= (-128) && var$8 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$8 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$8;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.15000000596046448;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_oreEmerald.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_emerald.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 1.0;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Item_potato.$itemID0;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_bakedPotato.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.3499999940395355;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_netherrack.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_netherrackBrick.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.10000000149011612;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_oreCoal.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_coal.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.10000000149011612;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_oreRedstone.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_redstone.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.699999988079071;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_oreLapis.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_dyePowder.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 4;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.20000000298023224;
    ju_HashMap_putImpl(var$5, var$1, var$6);
    var$2 = nms_Block_oreNetherQuartz.$blockID;
    var$1 = new nms_ItemStack;
    var$1.$itemID = nms_Item_netherQuartz.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    var$5 = $this.$smeltingList;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$5 = $this.$experienceList;
    var$2 = var$1.$itemID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$2;
    }
    var$6 = new jl_Float;
    var$6.$value3 = 0.20000000298023224;
    ju_HashMap_putImpl(var$5, var$1, var$6);
},
nms_FurnaceRecipes__init_0 = () => {
    let var_0 = new nms_FurnaceRecipes();
    nms_FurnaceRecipes__init_(var_0);
    return var_0;
},
nms_FurnaceRecipes__clinit_ = () => {
    nms_FurnaceRecipes_smeltingBase = nms_FurnaceRecipes__init_0();
},
nms_IRecipe = $rt_classWithoutFields(0);
function jt_DecimalFormatSymbols() {
    let a = this; jl_Object.call(a);
    a.$locale1 = null;
    a.$zeroDigit = 0;
    a.$groupingSeparator = 0;
    a.$decimalSeparator = 0;
    a.$perMill = 0;
    a.$percent = 0;
    a.$digit = 0;
    a.$patternSeparator = 0;
    a.$nan = null;
    a.$infinity = null;
    a.$minusSign = 0;
    a.$monetaryDecimalSeparator = 0;
    a.$exponentSeparator = null;
}
let jt_DecimalFormatSymbols__init_ = $this => {
    ju_Locale_$callClinit();
    $this.$locale1 = ju_Locale_defaultLocale;
    jt_DecimalFormatSymbols_initData($this);
},
jt_DecimalFormatSymbols__init_0 = () => {
    let var_0 = new jt_DecimalFormatSymbols();
    jt_DecimalFormatSymbols__init_(var_0);
    return var_0;
},
jt_DecimalFormatSymbols_initData = $this => {
    let var$1, var$2, var$3, var$4, $data, var$6, var$7, var$8, var$9;
    var$1 = $this.$locale1;
    var$2 = var$1.$languageCode;
    var$3 = var$1.$countryCode;
    if (otciu_CLDRHelper_$$metadata$$20 === null)
        otciu_CLDRHelper_$$metadata$$20 = otciu_CLDRHelper_getDecimalDataMap$$create();
    var$4 = otciu_CLDRHelper_$$metadata$$20;
    if (var$3.$nativeString.length ? 0 : 1)
        var$1 = var$2;
    else {
        $data = new jl_StringBuilder;
        $data.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($data, $data.$length0, var$2 === null ? $rt_s(1) : var$2);
        var$6 = $data.$length0;
        jl_AbstractStringBuilder_insertSpace($data, var$6, var$6 + 1 | 0);
        $data.$buffer.data[var$6] = 45;
        jl_AbstractStringBuilder_insert($data, $data.$length0, var$3);
        var$1 = new jl_String;
        var$7 = $data.$buffer;
        var$8 = var$7.data;
        var$6 = $data.$length0;
        var$9 = var$8.length;
        if (var$6 >= 0 && var$6 <= (var$9 - 0 | 0))
            var$1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$6);
        else {
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
    }
    $data = var$4.hasOwnProperty($rt_ustr(var$1)) ? var$4[$rt_ustr(var$1)] : var$4.hasOwnProperty($rt_ustr(var$2)) ? var$4[$rt_ustr(var$2)] : var$4.root;
    $this.$zeroDigit = 48;
    $this.$groupingSeparator = $data.groupingSeparator & 65535;
    $this.$decimalSeparator = $data.decimalSeparator & 65535;
    $this.$perMill = $data.perMille & 65535;
    $this.$percent = $data.percent & 65535;
    $this.$digit = 35;
    $this.$patternSeparator = 59;
    $this.$nan = ($data.naN !== null ? $rt_str($data.naN) : null);
    $this.$infinity = ($data.infinity !== null ? $rt_str($data.infinity) : null);
    $this.$minusSign = $data.minusSign & 65535;
    $this.$monetaryDecimalSeparator = $data.decimalSeparator & 65535;
    $this.$exponentSeparator = ($data.exponentSeparator !== null ? $rt_str($data.exponentSeparator) : null);
},
nms_IStatType = $rt_classWithoutFields(0),
nms_StatTypeSimple = $rt_classWithoutFields(),
nms_StatTypeSimple__init_ = $this => {
    return;
},
nms_StatTypeSimple__init_0 = () => {
    let var_0 = new nms_StatTypeSimple();
    nms_StatTypeSimple__init_(var_0);
    return var_0;
},
nms_StatTypeTime = $rt_classWithoutFields(),
nms_StatTypeTime__init_ = $this => {
    return;
},
nms_StatTypeTime__init_0 = () => {
    let var_0 = new nms_StatTypeTime();
    nms_StatTypeTime__init_(var_0);
    return var_0;
},
nms_StatTypeDistance = $rt_classWithoutFields(),
nms_StatTypeDistance__init_ = $this => {
    return;
},
nms_StatTypeDistance__init_0 = () => {
    let var_0 = new nms_StatTypeDistance();
    nms_StatTypeDistance__init_(var_0);
    return var_0;
},
nms_StatTypeFloat = $rt_classWithoutFields(),
nms_StatTypeFloat__init_ = $this => {
    return;
},
nms_StatTypeFloat__init_0 = () => {
    let var_0 = new nms_StatTypeFloat();
    nms_StatTypeFloat__init_(var_0);
    return var_0;
},
nms_IRegistry = $rt_classWithoutFields(0);
function nms_RegistrySimple() {
    jl_Object.call(this);
    this.$registryObjects = null;
}
let nms_RegistrySimple__init_ = $this => {
    $this.$registryObjects = nms_RegistrySimple_func_111054_a($this);
},
nms_RegistrySimple__init_0 = () => {
    let var_0 = new nms_RegistrySimple();
    nms_RegistrySimple__init_(var_0);
    return var_0;
},
nms_RegistrySimple_func_111054_a = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    return var$1;
};
function nms_RegistryDefaulted() {
    nms_RegistrySimple.call(this);
    this.$defaultObject = null;
}
function cjj_Adler32() {
    let a = this; jl_Object.call(a);
    a.$s1 = Long_ZERO;
    a.$s2 = Long_ZERO;
}
let cjj_Adler32__init_0 = $this => {
    $this.$s1 = Long_fromInt(1);
    $this.$s2 = Long_ZERO;
},
cjj_Adler32__init_ = () => {
    let var_0 = new cjj_Adler32();
    cjj_Adler32__init_0(var_0);
    return var_0;
},
cjj_Adler32_reset = ($this, $init) => {
    $this.$s1 = Long_and($init, Long_fromInt(65535));
    $this.$s2 = Long_and(Long_shr($init, 16), Long_fromInt(65535));
},
cjj_Adler32_reset0 = $this => {
    $this.$s1 = Long_fromInt(1);
    $this.$s2 = Long_ZERO;
},
cjj_Adler32_getValue = $this => {
    return Long_or(Long_shl($this.$s2, 16), $this.$s1);
},
cjj_Adler32_update = ($this, $buf, $index, $len) => {
    let var$4, var$5, $len1, $len2, var$8, $k, var$10;
    if ($len == 1) {
        $buf = $buf.data;
        var$4 = Long_add($this.$s1, Long_fromInt($buf[$index] & 255));
        $this.$s1 = var$4;
        var$5 = Long_add($this.$s2, var$4);
        $this.$s2 = var$5;
        $this.$s1 = Long_rem(var$4, Long_fromInt(65521));
        $this.$s2 = Long_rem(var$5, Long_fromInt(65521));
        return;
    }
    $len1 = $len / 5552 | 0;
    $len2 = $len % 5552 | 0;
    while (true) {
        var$8 = $len1 + (-1) | 0;
        if ($len1 <= 0)
            break;
        $k = 5552;
        while (true) {
            $len1 = $k + (-1) | 0;
            if ($k <= 0)
                break;
            var$10 = $buf.data;
            var$4 = $this.$s1;
            $len = $index + 1 | 0;
            var$4 = Long_add(var$4, Long_fromInt(var$10[$index] & 255));
            $this.$s1 = var$4;
            $this.$s2 = Long_add($this.$s2, var$4);
            $k = $len1;
            $index = $len;
        }
        $this.$s1 = Long_rem($this.$s1, Long_fromInt(65521));
        $this.$s2 = Long_rem($this.$s2, Long_fromInt(65521));
        $len1 = var$8;
    }
    while (true) {
        $len = $len2 + (-1) | 0;
        if ($len2 <= 0)
            break;
        var$10 = $buf.data;
        var$4 = $this.$s1;
        var$8 = $index + 1 | 0;
        var$4 = Long_add(var$4, Long_fromInt(var$10[$index] & 255));
        $this.$s1 = var$4;
        $this.$s2 = Long_add($this.$s2, var$4);
        $len2 = $len;
        $index = var$8;
    }
    $this.$s1 = Long_rem($this.$s1, Long_fromInt(65521));
    $this.$s2 = Long_rem($this.$s2, Long_fromInt(65521));
};
function cjj_Inflate() {
    let a = this; jl_Object.call(a);
    a.$mode = 0;
    a.$method0 = 0;
    a.$was = Long_ZERO;
    a.$need = Long_ZERO;
    a.$marker = 0;
    a.$wrap1 = 0;
    a.$wbits = 0;
    a.$blocks = null;
    a.$z0 = null;
    a.$flags2 = 0;
    a.$need_bytes = 0;
    a.$crcbuf = null;
    a.$gheader = null;
    a.$tmp_string = null;
}
let cjj_Inflate_mark = null,
cjj_Inflate__init_0 = ($this, $z) => {
    $this.$was = Long_fromInt(-1);
    $this.$need_bytes = (-1);
    $this.$crcbuf = $rt_createByteArray(4);
    $this.$gheader = null;
    $this.$tmp_string = null;
    $this.$z0 = $z;
},
cjj_Inflate__init_ = var_0 => {
    let var_1 = new cjj_Inflate();
    cjj_Inflate__init_0(var_1, var_0);
    return var_1;
},
cjj_Inflate_inflateInit = ($this, $w) => {
    let var$2, var$3;
    var$2 = $this.$z0;
    var$2.$msg = null;
    $this.$blocks = null;
    $this.$wrap1 = 0;
    if ($w < 0)
        $w =  -$w | 0;
    else if ($w & 1073741824) {
        $this.$wrap1 = 4;
        $w = $w & (-1073741825);
        if ($w < 48)
            $w = $w & 15;
    } else if ($w & (-32)) {
        $this.$wrap1 = 4;
        $w = $w & 15;
    } else {
        $this.$wrap1 = ($w >> 4) + 1 | 0;
        if ($w < 48)
            $w = $w & 15;
    }
    if ($w >= 8 && $w <= 15) {
        $this.$wbits = $w;
        var$3 = cjj_InfBlocks__init_0(var$2, 1 << $w);
        $this.$blocks = var$3;
        var$2 = $this.$z0;
        if (var$2 !== null) {
            var$2.$total_out = Long_ZERO;
            var$2.$total_in = Long_ZERO;
            var$2.$msg = null;
            $this.$mode = 14;
            $this.$need_bytes = (-1);
            cjj_InfBlocks_reset(var$3);
        }
        return 0;
    }
    return (-2);
},
cjj_Inflate_inflate = ($this, $f) => {
    let $e, var$3, $r, var$5, var$6, var$7, var$8, var$9, $b, $foo, var$12, $$je;
    $e = $this.$z0;
    if ($e !== null && $e.$next_in !== null) {
        var$3 = $f != 4 ? 0 : (-5);
        $r = (-5);
        a: {
            b: {
                c: {
                    d: {
                        e: {
                            f: {
                                g: {
                                    h: {
                                        i: while (true) {
                                            j: {
                                                k: {
                                                    l: {
                                                        m: {
                                                            n: {
                                                                o: {
                                                                    p: {
                                                                        q: {
                                                                            r: {
                                                                                s: {
                                                                                    t: {
                                                                                        u: {
                                                                                            v: {
                                                                                                w: {
                                                                                                    switch ($this.$mode) {
                                                                                                        case 6:
                                                                                                            $this.$mode = 13;
                                                                                                            $this.$z0.$msg = $rt_s(1558);
                                                                                                            $this.$marker = 0;
                                                                                                            return (-2);
                                                                                                        case 7:
                                                                                                            break w;
                                                                                                        case 12:
                                                                                                            break e;
                                                                                                        case 13:
                                                                                                            return (-3);
                                                                                                        case 14:
                                                                                                            if (!$this.$wrap1) {
                                                                                                                $this.$mode = 7;
                                                                                                                continue i;
                                                                                                            }
                                                                                                            try {
                                                                                                                $r = cjj_Inflate_readBytes($this, 2, $r, var$3);
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof cjj_Inflate$Return) {
                                                                                                                    $e = $$je;
                                                                                                                    return $e.$r;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            $f = $this.$wrap1;
                                                                                                            var$5 = $rt_compare($f, 4);
                                                                                                            if (!(var$5 && !($f & 2))) {
                                                                                                                var$6 = $this.$need;
                                                                                                                if (Long_eq(var$6, Long_fromInt(35615))) {
                                                                                                                    if (!var$5)
                                                                                                                        $this.$wrap1 = 2;
                                                                                                                    var$7 = $this.$z0;
                                                                                                                    $e = new cjj_CRC32;
                                                                                                                    $e.$v = 0;
                                                                                                                    var$7.$adler = $e;
                                                                                                                    $f = 0;
                                                                                                                    while ($f < 2) {
                                                                                                                        $this.$crcbuf.data[$f] = Long_lo(Long_and(var$6, Long_fromInt(255))) << 24 >> 24;
                                                                                                                        var$6 = Long_shr(var$6, 8);
                                                                                                                        $f = $f + 1 | 0;
                                                                                                                    }
                                                                                                                    $e.$update0($this.$crcbuf, 0, 2);
                                                                                                                    if ($this.$gheader === null) {
                                                                                                                        $e = new cjj_GZIPHeader;
                                                                                                                        $e.$text1 = 0;
                                                                                                                        $e.$fhcrc = 0;
                                                                                                                        $e.$os0 = 255;
                                                                                                                        $e.$done0 = 0;
                                                                                                                        $e.$mtime = Long_ZERO;
                                                                                                                        $this.$gheader = $e;
                                                                                                                    }
                                                                                                                    $this.$mode = 23;
                                                                                                                    continue i;
                                                                                                                }
                                                                                                            }
                                                                                                            if ($f & 2) {
                                                                                                                $this.$mode = 13;
                                                                                                                $this.$z0.$msg = $rt_s(1559);
                                                                                                                continue i;
                                                                                                            }
                                                                                                            $this.$flags2 = 0;
                                                                                                            var$8 = $this.$need;
                                                                                                            var$9 = Long_lo(var$8) & 255;
                                                                                                            $this.$method0 = var$9;
                                                                                                            $b = Long_lo(Long_shr(var$8, 8)) & 255;
                                                                                                            if (!($f & 1 && !(((var$9 << 8) + $b | 0) % 31 | 0)) && (var$9 & 15) != 8) {
                                                                                                                if (var$5) {
                                                                                                                    $this.$mode = 13;
                                                                                                                    $this.$z0.$msg = $rt_s(1559);
                                                                                                                    continue i;
                                                                                                                }
                                                                                                                $e = $this.$z0;
                                                                                                                $e.$next_in_index = $e.$next_in_index - 2 | 0;
                                                                                                                $e.$avail_in = $e.$avail_in + 2 | 0;
                                                                                                                $e.$total_in = Long_sub($e.$total_in, Long_fromInt(2));
                                                                                                                $this.$wrap1 = 0;
                                                                                                                $this.$mode = 7;
                                                                                                                continue i;
                                                                                                            }
                                                                                                            if ((var$9 & 15) != 8) {
                                                                                                                $this.$mode = 13;
                                                                                                                $this.$z0.$msg = $rt_s(1560);
                                                                                                                continue i;
                                                                                                            }
                                                                                                            if (!var$5)
                                                                                                                $this.$wrap1 = 1;
                                                                                                            if (((var$9 >> 4) + 8 | 0) > $this.$wbits) {
                                                                                                                $this.$mode = 13;
                                                                                                                $this.$z0.$msg = $rt_s(1561);
                                                                                                                continue i;
                                                                                                            }
                                                                                                            $e = $this.$z0;
                                                                                                            var$7 = new cjj_Adler32;
                                                                                                            var$7.$s1 = Long_fromInt(1);
                                                                                                            var$7.$s2 = Long_ZERO;
                                                                                                            $e.$adler = var$7;
                                                                                                            if ($b & 32) {
                                                                                                                $this.$mode = 2;
                                                                                                                break d;
                                                                                                            }
                                                                                                            $this.$mode = 7;
                                                                                                            continue i;
                                                                                                        case 23:
                                                                                                            try {
                                                                                                                $r = cjj_Inflate_readBytes($this, 2, $r, var$3);
                                                                                                            } catch ($$e) {
                                                                                                                $$je = $rt_wrapException($$e);
                                                                                                                if ($$je instanceof cjj_Inflate$Return) {
                                                                                                                    $e = $$je;
                                                                                                                    return $e.$r;
                                                                                                                } else {
                                                                                                                    throw $$e;
                                                                                                                }
                                                                                                            }
                                                                                                            var$8 = $this.$need;
                                                                                                            $f = Long_lo(var$8) & 65535;
                                                                                                            $this.$flags2 = $f;
                                                                                                            if (($f & 255) != 8) {
                                                                                                                $this.$z0.$msg = $rt_s(1560);
                                                                                                                $this.$mode = 13;
                                                                                                                continue i;
                                                                                                            }
                                                                                                            if ($f & 57344) {
                                                                                                                $this.$z0.$msg = $rt_s(1562);
                                                                                                                $this.$mode = 13;
                                                                                                                continue i;
                                                                                                            }
                                                                                                            if ($f & 512) {
                                                                                                                var$9 = 0;
                                                                                                                while (var$9 < 2) {
                                                                                                                    $this.$crcbuf.data[var$9] = Long_lo(Long_and(var$8, Long_fromInt(255))) << 24 >> 24;
                                                                                                                    var$8 = Long_shr(var$8, 8);
                                                                                                                    var$9 = var$9 + 1 | 0;
                                                                                                                }
                                                                                                                $this.$z0.$adler.$update0($this.$crcbuf, 0, 2);
                                                                                                            }
                                                                                                            $this.$mode = 16;
                                                                                                            break p;
                                                                                                        case 2:
                                                                                                            break d;
                                                                                                        case 3:
                                                                                                            break c;
                                                                                                        case 4:
                                                                                                            break b;
                                                                                                        case 5:
                                                                                                            var$3 = $r;
                                                                                                            break a;
                                                                                                        case 8:
                                                                                                            break v;
                                                                                                        case 9:
                                                                                                            break u;
                                                                                                        case 10:
                                                                                                            break t;
                                                                                                        case 11:
                                                                                                            break s;
                                                                                                        case 15:
                                                                                                            break r;
                                                                                                        case 16:
                                                                                                            break p;
                                                                                                        case 17:
                                                                                                            break o;
                                                                                                        case 18:
                                                                                                            break n;
                                                                                                        case 19:
                                                                                                            break q;
                                                                                                        case 20:
                                                                                                            break l;
                                                                                                        case 21:
                                                                                                            break k;
                                                                                                        case 22:
                                                                                                            break;
                                                                                                        default:
                                                                                                            return (-2);
                                                                                                    }
                                                                                                    break j;
                                                                                                }
                                                                                                $r = cjj_InfBlocks_proc($this.$blocks, $r);
                                                                                                if ($r == (-3)) {
                                                                                                    $this.$mode = 13;
                                                                                                    $this.$marker = 0;
                                                                                                    continue i;
                                                                                                }
                                                                                                if (!$r)
                                                                                                    $r = var$3;
                                                                                                if ($r != 1)
                                                                                                    break i;
                                                                                                $this.$was = $this.$z0.$adler.$getValue0();
                                                                                                cjj_InfBlocks_reset($this.$blocks);
                                                                                                if (!$this.$wrap1) {
                                                                                                    $this.$mode = 12;
                                                                                                    $r = var$3;
                                                                                                    continue i;
                                                                                                }
                                                                                                $this.$mode = 8;
                                                                                                $r = var$3;
                                                                                            }
                                                                                            $e = $this.$z0;
                                                                                            $f = $e.$avail_in;
                                                                                            if (!$f)
                                                                                                return $r;
                                                                                            $e.$avail_in = $f - 1 | 0;
                                                                                            $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
                                                                                            $foo = $e.$next_in.data;
                                                                                            $f = $e.$next_in_index;
                                                                                            $e.$next_in_index = $f + 1 | 0;
                                                                                            $this.$need = Long_and(Long_fromInt(($foo[$f] & 255) << 24), Long_create(4278190080, 0));
                                                                                            $this.$mode = 9;
                                                                                            $r = var$3;
                                                                                        }
                                                                                        $e = $this.$z0;
                                                                                        $f = $e.$avail_in;
                                                                                        if (!$f)
                                                                                            return $r;
                                                                                        $e.$avail_in = $f - 1 | 0;
                                                                                        $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
                                                                                        var$8 = $this.$need;
                                                                                        $foo = $e.$next_in.data;
                                                                                        $f = $e.$next_in_index;
                                                                                        $e.$next_in_index = $f + 1 | 0;
                                                                                        $this.$need = Long_add(var$8, Long_and(Long_fromInt(($foo[$f] & 255) << 16), Long_fromInt(16711680)));
                                                                                        $this.$mode = 10;
                                                                                        $r = var$3;
                                                                                    }
                                                                                    $e = $this.$z0;
                                                                                    $f = $e.$avail_in;
                                                                                    if (!$f)
                                                                                        return $r;
                                                                                    $e.$avail_in = $f - 1 | 0;
                                                                                    $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
                                                                                    var$8 = $this.$need;
                                                                                    $foo = $e.$next_in.data;
                                                                                    $f = $e.$next_in_index;
                                                                                    $e.$next_in_index = $f + 1 | 0;
                                                                                    $this.$need = Long_add(var$8, Long_and(Long_fromInt(($foo[$f] & 255) << 8), Long_fromInt(65280)));
                                                                                    $this.$mode = 11;
                                                                                    $r = var$3;
                                                                                }
                                                                                $e = $this.$z0;
                                                                                $f = $e.$avail_in;
                                                                                if (!$f)
                                                                                    return $r;
                                                                                $e.$avail_in = $f - 1 | 0;
                                                                                $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
                                                                                var$8 = $this.$need;
                                                                                $foo = $e.$next_in.data;
                                                                                $f = $e.$next_in_index;
                                                                                $e.$next_in_index = $f + 1 | 0;
                                                                                var$8 = Long_add(var$8, Long_and(Long_fromInt($foo[$f]), Long_fromInt(255)));
                                                                                $this.$need = var$8;
                                                                                $f = $this.$flags2;
                                                                                if ($f)
                                                                                    $this.$need = Long_and(Long_or(Long_or(Long_or(Long_shr(Long_and(var$8, Long_fromInt(-16777216)), 24), Long_shr(Long_and(var$8, Long_fromInt(16711680)), 8)), Long_shl(Long_and(var$8, Long_fromInt(65280)), 8)), Long_shl(Long_and(var$8, Long_fromInt(65535)), 24)), Long_create(4294967295, 0));
                                                                                $r = Long_lo($this.$was);
                                                                                var$8 = $this.$need;
                                                                                if ($r != Long_lo(var$8))
                                                                                    $e.$msg = $rt_s(1563);
                                                                                else if ($f) {
                                                                                    $e = $this.$gheader;
                                                                                    if ($e !== null)
                                                                                        $e.$crc3 = var$8;
                                                                                }
                                                                                $this.$mode = 15;
                                                                                $r = var$3;
                                                                            }
                                                                            if (!($this.$wrap1 && $this.$flags2)) {
                                                                                $e = $this.$z0.$msg;
                                                                                if ($e === null)
                                                                                    break f;
                                                                                if ($e === $rt_s(1563))
                                                                                    $f = 1;
                                                                                else if (!($rt_s(1563) instanceof jl_String))
                                                                                    $f = 0;
                                                                                else {
                                                                                    var$7 = $rt_s(1563);
                                                                                    $f = $e.$nativeString !== var$7.$nativeString ? 0 : 1;
                                                                                }
                                                                                if (!$f)
                                                                                    break f;
                                                                                $this.$mode = 13;
                                                                                $this.$marker = 5;
                                                                                continue i;
                                                                            }
                                                                            try {
                                                                                $r = cjj_Inflate_readBytes($this, 4, $r, var$3);
                                                                            } catch ($$e) {
                                                                                $$je = $rt_wrapException($$e);
                                                                                if ($$je instanceof cjj_Inflate$Return) {
                                                                                    $e = $$je;
                                                                                    return $e.$r;
                                                                                } else {
                                                                                    throw $$e;
                                                                                }
                                                                            }
                                                                            $e = $this.$z0.$msg;
                                                                            if ($e !== null) {
                                                                                if ($e === $rt_s(1563))
                                                                                    $f = 1;
                                                                                else if (!($rt_s(1563) instanceof jl_String))
                                                                                    $f = 0;
                                                                                else {
                                                                                    var$7 = $rt_s(1563);
                                                                                    $f = $e.$nativeString !== var$7.$nativeString ? 0 : 1;
                                                                                }
                                                                                if ($f) {
                                                                                    $this.$mode = 13;
                                                                                    $this.$marker = 5;
                                                                                    continue i;
                                                                                }
                                                                            }
                                                                            var$8 = $this.$need;
                                                                            $e = $this.$z0;
                                                                            if (Long_eq(var$8, Long_and($e.$total_out, Long_create(4294967295, 0)))) {
                                                                                $e.$msg = null;
                                                                                break f;
                                                                            }
                                                                            $e.$msg = $rt_s(1564);
                                                                            $this.$mode = 13;
                                                                            continue i;
                                                                        }
                                                                        break m;
                                                                    }
                                                                    try {
                                                                        $r = cjj_Inflate_readBytes($this, 4, $r, var$3);
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof cjj_Inflate$Return) {
                                                                            $e = $$je;
                                                                            return $e.$r;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    $e = $this.$gheader;
                                                                    if ($e !== null)
                                                                        $e.$time2 = $this.$need;
                                                                    if ($this.$flags2 & 512) {
                                                                        var$8 = $this.$need;
                                                                        var$9 = 0;
                                                                        while (var$9 < 4) {
                                                                            $this.$crcbuf.data[var$9] = Long_lo(Long_and(var$8, Long_fromInt(255))) << 24 >> 24;
                                                                            var$8 = Long_shr(var$8, 8);
                                                                            var$9 = var$9 + 1 | 0;
                                                                        }
                                                                        $this.$z0.$adler.$update0($this.$crcbuf, 0, 4);
                                                                    }
                                                                    $this.$mode = 17;
                                                                }
                                                                try {
                                                                    $r = cjj_Inflate_readBytes($this, 2, $r, var$3);
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof cjj_Inflate$Return) {
                                                                        $e = $$je;
                                                                        return $e.$r;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                                $e = $this.$gheader;
                                                                if ($e !== null) {
                                                                    $f = Long_lo($this.$need);
                                                                    $e.$xflags = $f & 255;
                                                                    $e.$os0 = $f >> 8 & 255;
                                                                }
                                                                if ($this.$flags2 & 512) {
                                                                    var$8 = $this.$need;
                                                                    var$9 = 0;
                                                                    while (var$9 < 2) {
                                                                        $this.$crcbuf.data[var$9] = Long_lo(Long_and(var$8, Long_fromInt(255))) << 24 >> 24;
                                                                        var$8 = Long_shr(var$8, 8);
                                                                        var$9 = var$9 + 1 | 0;
                                                                    }
                                                                    $this.$z0.$adler.$update0($this.$crcbuf, 0, 2);
                                                                }
                                                                $this.$mode = 18;
                                                            }
                                                            if (!($this.$flags2 & 1024)) {
                                                                $e = $this.$gheader;
                                                                if ($e !== null)
                                                                    $e.$extra = null;
                                                            } else {
                                                                try {
                                                                    $r = cjj_Inflate_readBytes($this, 2, $r, var$3);
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof cjj_Inflate$Return) {
                                                                        $e = $$je;
                                                                        return $e.$r;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                                $e = $this.$gheader;
                                                                if ($e !== null)
                                                                    $e.$extra = $rt_createByteArray(Long_lo($this.$need) & 65535);
                                                                if ($this.$flags2 & 512) {
                                                                    var$8 = $this.$need;
                                                                    var$9 = 0;
                                                                    while (var$9 < 2) {
                                                                        $this.$crcbuf.data[var$9] = Long_lo(Long_and(var$8, Long_fromInt(255))) << 24 >> 24;
                                                                        var$8 = Long_shr(var$8, 8);
                                                                        var$9 = var$9 + 1 | 0;
                                                                    }
                                                                    $this.$z0.$adler.$update0($this.$crcbuf, 0, 2);
                                                                }
                                                            }
                                                            $this.$mode = 19;
                                                        }
                                                        if (!($this.$flags2 & 1024)) {
                                                            $e = $this.$gheader;
                                                            if ($e !== null)
                                                                $e.$extra = null;
                                                        } else
                                                            x: {
                                                                try {
                                                                    $r = cjj_Inflate_readBytes0($this, $r, var$3);
                                                                    if ($this.$gheader === null)
                                                                        break x;
                                                                    $foo = ji_ByteArrayOutputStream_toByteArray($this.$tmp_string);
                                                                    var$12 = $foo.data;
                                                                    $this.$tmp_string = null;
                                                                    $f = var$12.length;
                                                                    var$12 = $this.$gheader.$extra;
                                                                    if ($f != var$12.data.length) {
                                                                        $this.$z0.$msg = $rt_s(1565);
                                                                        $this.$mode = 13;
                                                                        continue i;
                                                                    }
                                                                    jl_System_fastArraycopy($foo, 0, var$12, 0, $f);
                                                                    break x;
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof cjj_Inflate$Return) {
                                                                        $e = $$je;
                                                                        return $e.$r;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                            }
                                                        $this.$mode = 20;
                                                    }
                                                    y: {
                                                        if (!($this.$flags2 & 2048)) {
                                                            $e = $this.$gheader;
                                                            if ($e !== null)
                                                                $e.$name14 = null;
                                                        } else {
                                                            z: {
                                                                try {
                                                                    $r = cjj_Inflate_readString($this, $r, var$3);
                                                                    $e = $this.$gheader;
                                                                    if ($e === null)
                                                                        break z;
                                                                    $e.$name14 = ji_ByteArrayOutputStream_toByteArray($this.$tmp_string);
                                                                    break z;
                                                                } catch ($$e) {
                                                                    $$je = $rt_wrapException($$e);
                                                                    if ($$je instanceof cjj_Inflate$Return) {
                                                                        $e = $$je;
                                                                        break h;
                                                                    } else {
                                                                        throw $$e;
                                                                    }
                                                                }
                                                            }
                                                            try {
                                                                $this.$tmp_string = null;
                                                                break y;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof cjj_Inflate$Return) {
                                                                    $e = $$je;
                                                                    break h;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    $this.$mode = 21;
                                                }
                                                ba: {
                                                    if (!($this.$flags2 & 4096)) {
                                                        $e = $this.$gheader;
                                                        if ($e !== null)
                                                            $e.$comment = null;
                                                    } else {
                                                        bb: {
                                                            try {
                                                                $r = cjj_Inflate_readString($this, $r, var$3);
                                                                $e = $this.$gheader;
                                                                if ($e === null)
                                                                    break bb;
                                                                $e.$comment = ji_ByteArrayOutputStream_toByteArray($this.$tmp_string);
                                                                break bb;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof cjj_Inflate$Return) {
                                                                    $e = $$je;
                                                                    break g;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                        }
                                                        try {
                                                            $this.$tmp_string = null;
                                                            break ba;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof cjj_Inflate$Return) {
                                                                $e = $$je;
                                                                break g;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                    }
                                                }
                                                $this.$mode = 22;
                                            }
                                            if ($this.$flags2 & 512) {
                                                try {
                                                    $r = cjj_Inflate_readBytes($this, 2, $r, var$3);
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof cjj_Inflate$Return) {
                                                        $e = $$je;
                                                        return $e.$r;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $e = $this.$gheader;
                                                if ($e !== null)
                                                    $e.$hcrc = Long_lo(Long_and($this.$need, Long_fromInt(65535)));
                                                if (Long_ne($this.$need, Long_and($this.$z0.$adler.$getValue0(), Long_fromInt(65535)))) {
                                                    $this.$mode = 13;
                                                    $this.$z0.$msg = $rt_s(1566);
                                                    $this.$marker = 5;
                                                    continue;
                                                }
                                            }
                                            $e = $this.$z0;
                                            var$7 = new cjj_CRC32;
                                            var$7.$v = 0;
                                            $e.$adler = var$7;
                                            $this.$mode = 7;
                                        }
                                        return $r;
                                    }
                                    return $e.$r;
                                }
                                return $e.$r;
                            }
                            $this.$mode = 12;
                        }
                        return 1;
                    }
                    $e = $this.$z0;
                    var$9 = $e.$avail_in;
                    if (!var$9)
                        return $r;
                    $e.$avail_in = var$9 - 1 | 0;
                    $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
                    $foo = $e.$next_in.data;
                    $r = $e.$next_in_index;
                    $e.$next_in_index = $r + 1 | 0;
                    $this.$need = Long_and(Long_fromInt(($foo[$r] & 255) << 24), Long_create(4278190080, 0));
                    $this.$mode = 3;
                    $r = var$3;
                }
                $e = $this.$z0;
                $f = $e.$avail_in;
                if (!$f)
                    return $r;
                $e.$avail_in = $f - 1 | 0;
                $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
                var$8 = $this.$need;
                $foo = $e.$next_in.data;
                $r = $e.$next_in_index;
                $e.$next_in_index = $r + 1 | 0;
                $this.$need = Long_add(var$8, Long_and(Long_fromInt(($foo[$r] & 255) << 16), Long_fromInt(16711680)));
                $this.$mode = 4;
                $r = var$3;
            }
            $e = $this.$z0;
            $f = $e.$avail_in;
            if (!$f)
                return $r;
            $e.$avail_in = $f - 1 | 0;
            $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
            var$8 = $this.$need;
            $foo = $e.$next_in.data;
            $f = $e.$next_in_index;
            $e.$next_in_index = $f + 1 | 0;
            $this.$need = Long_add(var$8, Long_and(Long_fromInt(($foo[$f] & 255) << 8), Long_fromInt(65280)));
            $this.$mode = 5;
        }
        $e = $this.$z0;
        $f = $e.$avail_in;
        if (!$f)
            return var$3;
        $e.$avail_in = $f - 1 | 0;
        $e.$total_in = Long_add($e.$total_in, Long_fromInt(1));
        var$8 = $this.$need;
        $foo = $e.$next_in.data;
        $f = $e.$next_in_index;
        $e.$next_in_index = $f + 1 | 0;
        var$8 = Long_add(var$8, Long_and(Long_fromInt($foo[$f]), Long_fromInt(255)));
        $this.$need = var$8;
        $e.$adler.$reset0(var$8);
        $this.$mode = 6;
        return 2;
    }
    if ($f == 4 && $this.$mode == 14)
        return 0;
    return (-2);
},
cjj_Inflate_readBytes = ($this, $n, $r, $f) => {
    let var$4, var$5, var$6, var$7, var$8;
    if ($this.$need_bytes == (-1)) {
        $this.$need_bytes = $n;
        $this.$need = Long_ZERO;
    }
    while (true) {
        var$4 = $this.$need_bytes;
        if (var$4 <= 0) {
            if ($n == 2)
                $this.$need = Long_and($this.$need, Long_fromInt(65535));
            else if ($n == 4)
                $this.$need = Long_and($this.$need, Long_create(4294967295, 0));
            $this.$need_bytes = (-1);
            return $r;
        }
        var$5 = $this.$z0;
        var$6 = var$5.$avail_in;
        if (!var$6)
            break;
        var$5.$avail_in = var$6 - 1 | 0;
        var$5.$total_in = Long_add(var$5.$total_in, Long_fromInt(1));
        var$7 = $this.$need;
        var$8 = var$5.$next_in.data;
        var$6 = var$5.$next_in_index;
        var$5.$next_in_index = var$6 + 1 | 0;
        $this.$need = Long_or(var$7, Long_fromInt((var$8[var$6] & 255) << (($n - var$4 | 0) * 8 | 0)));
        $this.$need_bytes = var$4 - 1 | 0;
        $r = $f;
    }
    var$5 = new cjj_Inflate$Return;
    var$5.$this$07 = $this;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    var$5.$r = $r;
    $rt_throw(var$5);
},
cjj_Inflate_readString = ($this, $r, $f) => {
    let var$3, var$4, var$5, var$6;
    if ($this.$tmp_string === null) {
        var$3 = new ji_ByteArrayOutputStream;
        var$3.$buf = $rt_createByteArray(32);
        $this.$tmp_string = var$3;
    }
    while (true) {
        var$3 = $this.$z0;
        var$4 = var$3.$avail_in;
        if (!var$4) {
            var$3 = new cjj_Inflate$Return;
            var$3.$this$07 = $this;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$r = $r;
            $rt_throw(var$3);
        }
        var$3.$avail_in = var$4 - 1 | 0;
        var$3.$total_in = Long_add(var$3.$total_in, Long_fromInt(1));
        var$5 = var$3.$next_in;
        var$6 = var$5.data;
        $r = var$3.$next_in_index;
        var$4 = var$6[$r];
        if (var$4)
            ji_ByteArrayOutputStream_write0($this.$tmp_string, var$5, $r, 1);
        var$3 = $this.$z0;
        var$3.$adler.$update0(var$3.$next_in, var$3.$next_in_index, 1);
        var$3 = $this.$z0;
        var$3.$next_in_index = var$3.$next_in_index + 1 | 0;
        if (!var$4)
            break;
        $r = $f;
    }
    return $f;
},
cjj_Inflate_readBytes0 = ($this, $r, $f) => {
    let var$3, var$4;
    if ($this.$tmp_string === null) {
        var$3 = new ji_ByteArrayOutputStream;
        var$3.$buf = $rt_createByteArray(32);
        $this.$tmp_string = var$3;
    }
    while (Long_gt($this.$need, Long_ZERO)) {
        var$3 = $this.$z0;
        var$4 = var$3.$avail_in;
        if (!var$4) {
            var$3 = new cjj_Inflate$Return;
            var$3.$this$07 = $this;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$r = $r;
            $rt_throw(var$3);
        }
        var$3.$avail_in = var$4 - 1 | 0;
        var$3.$total_in = Long_add(var$3.$total_in, Long_fromInt(1));
        ji_ByteArrayOutputStream_write0($this.$tmp_string, var$3.$next_in, var$3.$next_in_index, 1);
        var$3 = $this.$z0;
        var$3.$adler.$update0(var$3.$next_in, var$3.$next_in_index, 1);
        var$3 = $this.$z0;
        var$3.$next_in_index = var$3.$next_in_index + 1 | 0;
        $this.$need = Long_sub($this.$need, Long_fromInt(1));
        $r = $f;
    }
    return $r;
},
cjj_Inflate__clinit_ = () => {
    cjj_Inflate_mark = $rt_createByteArrayFromData([0, 0, (-1), (-1)]);
};
function ju_Calendar() {
    let a = this; jl_Object.call(a);
    a.$areFieldsSet = 0;
    a.$fields = null;
    a.$isSet = null;
    a.$isTimeSet = 0;
    a.$time = Long_ZERO;
    a.$lastTimeFieldSet = 0;
    a.$lastDateFieldSet = 0;
    a.$lenient = 0;
    a.$firstDayOfWeek = 0;
    a.$minimalDaysInFirstWeek = 0;
    a.$zone = null;
}
let ju_Calendar_fieldNames = null,
ju_Calendar_firstDayOfWeekCache = 0,
ju_Calendar_minimalDaysInFirstWeekCache = 0,
ju_Calendar_cacheFor = null,
ju_Calendar_resolveFirstDayOfWeek = $locale => {
    let var$2, $dayMap, $country, var$5;
    if ($locale === ju_Calendar_cacheFor) {
        var$2 = ju_Calendar_firstDayOfWeekCache;
        if (var$2 >= 0)
            return var$2;
    }
    $dayMap = $locale.$languageCode;
    $country = $locale.$countryCode;
    if ($country.$nativeString.length ? 0 : 1) {
        if (otciu_CLDRHelper_$$metadata$$0 === null)
            otciu_CLDRHelper_$$metadata$$0 = otciu_CLDRHelper_getLikelySubtagsMap$$create();
        $locale = otciu_CLDRHelper_$$metadata$$0;
        if ($locale.hasOwnProperty($rt_ustr($dayMap)))
            $dayMap = ($locale[$rt_ustr($dayMap)].value !== null ? $rt_str($locale[$rt_ustr($dayMap)].value) : null);
        var$5 = jl_String_lastIndexOf0($dayMap, 95, $dayMap.$nativeString.length - 1 | 0);
        $country = var$5 <= 0 ? $rt_s(3) : jl_String_substring($dayMap, var$5 + 1 | 0, $dayMap.$nativeString.length);
    }
    if (otciu_CLDRHelper_$$metadata$$13 === null)
        otciu_CLDRHelper_$$metadata$$13 = otciu_CLDRHelper_getFirstDayOfWeek$$create();
    $dayMap = otciu_CLDRHelper_$$metadata$$13;
    var$2 = $dayMap.hasOwnProperty($rt_ustr($country)) ? $dayMap[$rt_ustr($country)].value : $dayMap[$rt_ustr($rt_s(1567))].value;
    ju_Calendar_firstDayOfWeekCache = var$2;
    return var$2;
},
ju_Calendar_resolveMinimalDaysInFirstWeek = $locale => {
    let var$2, $dayMap, $country, var$5;
    if ($locale === ju_Calendar_cacheFor) {
        var$2 = ju_Calendar_minimalDaysInFirstWeekCache;
        if (var$2 >= 0)
            return var$2;
    }
    $dayMap = $locale.$languageCode;
    $country = $locale.$countryCode;
    if ($country.$nativeString.length ? 0 : 1) {
        if (otciu_CLDRHelper_$$metadata$$0 === null)
            otciu_CLDRHelper_$$metadata$$0 = otciu_CLDRHelper_getLikelySubtagsMap$$create();
        $locale = otciu_CLDRHelper_$$metadata$$0;
        if ($locale.hasOwnProperty($rt_ustr($dayMap)))
            $dayMap = ($locale[$rt_ustr($dayMap)].value !== null ? $rt_str($locale[$rt_ustr($dayMap)].value) : null);
        var$5 = jl_String_lastIndexOf0($dayMap, 95, $dayMap.$nativeString.length - 1 | 0);
        $country = var$5 <= 0 ? $rt_s(3) : jl_String_substring($dayMap, var$5 + 1 | 0, $dayMap.$nativeString.length);
    }
    if (otciu_CLDRHelper_$$metadata$$12 === null)
        otciu_CLDRHelper_$$metadata$$12 = otciu_CLDRHelper_getMinimalDaysInFirstWeek$$create();
    $dayMap = otciu_CLDRHelper_$$metadata$$12;
    var$2 = $dayMap.hasOwnProperty($rt_ustr($country)) ? $dayMap[$rt_ustr($country)].value : $dayMap[$rt_ustr($rt_s(1567))].value;
    ju_Calendar_minimalDaysInFirstWeekCache = var$2;
    return var$2;
},
ju_Calendar_set = ($this, $field, $value) => {
    $this.$fields.data[$field] = $value;
    $this.$isSet.data[$field] = 1;
    $this.$areFieldsSet = 0;
    $this.$isTimeSet = 0;
    if ($field > 2 && $field < 9)
        $this.$lastDateFieldSet = $field;
    if (!($field != 10 && $field != 11))
        $this.$lastTimeFieldSet = $field;
    if ($field == 9)
        $this.$lastTimeFieldSet = 10;
},
ju_Calendar__clinit_ = () => {
    ju_Calendar_fieldNames = $rt_wrapArray(jl_String, [$rt_s(1568), $rt_s(1569), $rt_s(1570), $rt_s(1571), $rt_s(1572), $rt_s(1573), $rt_s(1574), $rt_s(1575), $rt_s(1576), $rt_s(1577), $rt_s(1578), $rt_s(1579), $rt_s(1580), $rt_s(1581), $rt_s(1582), $rt_s(1583), $rt_s(1584)]);
    ju_Calendar_firstDayOfWeekCache = (-1);
    ju_Calendar_minimalDaysInFirstWeekCache = (-1);
};
function cjj_Deflate() {
    let a = this; jl_Object.call(a);
    a.$strm = null;
    a.$status = 0;
    a.$pending_buf = null;
    a.$pending_buf_size = 0;
    a.$pending_out = 0;
    a.$pending = 0;
    a.$wrap2 = 0;
    a.$data_type = 0;
    a.$method = 0;
    a.$last_flush = 0;
    a.$w_size = 0;
    a.$w_bits = 0;
    a.$w_mask = 0;
    a.$window0 = null;
    a.$window_size = 0;
    a.$prev = null;
    a.$head0 = null;
    a.$ins_h = 0;
    a.$hash_size = 0;
    a.$hash_bits = 0;
    a.$hash_mask = 0;
    a.$hash_shift = 0;
    a.$block_start = 0;
    a.$match_length = 0;
    a.$prev_match = 0;
    a.$match_available = 0;
    a.$strstart = 0;
    a.$match_start = 0;
    a.$lookahead = 0;
    a.$prev_length = 0;
    a.$max_chain_length = 0;
    a.$max_lazy_match = 0;
    a.$level0 = 0;
    a.$strategy = 0;
    a.$good_match = 0;
    a.$nice_match = 0;
    a.$dyn_ltree = null;
    a.$dyn_dtree = null;
    a.$bl_tree = null;
    a.$l_desc = null;
    a.$d_desc = null;
    a.$bl_desc = null;
    a.$bl_count = null;
    a.$next_code = null;
    a.$heap = null;
    a.$heap_len = 0;
    a.$heap_max = 0;
    a.$depth0 = null;
    a.$l_buf = null;
    a.$lit_bufsize = 0;
    a.$last_lit = 0;
    a.$d_buf = 0;
    a.$opt_len = 0;
    a.$static_len = 0;
    a.$matches1 = 0;
    a.$last_eob_len = 0;
    a.$bi_buf = 0;
    a.$bi_valid = 0;
    a.$gheader0 = null;
}
let cjj_Deflate_config_table = null,
cjj_Deflate_z_errmsg = null,
cjj_Deflate__init_0 = ($this, $strm) => {
    $this.$wrap2 = 1;
    $this.$l_desc = new cjj_Tree;
    $this.$d_desc = new cjj_Tree;
    $this.$bl_desc = new cjj_Tree;
    $this.$bl_count = $rt_createShortArray(16);
    $this.$next_code = $rt_createShortArray(16);
    $this.$heap = $rt_createIntArray(573);
    $this.$depth0 = $rt_createByteArray(573);
    $this.$gheader0 = null;
    $this.$strm = $strm;
    $this.$dyn_ltree = $rt_createShortArray(1146);
    $this.$dyn_dtree = $rt_createShortArray(122);
    $this.$bl_tree = $rt_createShortArray(78);
},
cjj_Deflate__init_ = var_0 => {
    let var_1 = new cjj_Deflate();
    cjj_Deflate__init_0(var_1, var_0);
    return var_1;
},
cjj_Deflate_lm_init = $this => {
    let var$1, var$2, $i;
    $this.$window_size = 2 * $this.$w_size | 0;
    var$1 = $this.$head0.data;
    var$2 = $this.$hash_size - 1 | 0;
    var$1[var$2] = 0;
    $i = 0;
    while ($i < var$2) {
        var$1[$i] = 0;
        $i = $i + 1 | 0;
    }
    var$1 = cjj_Deflate_config_table.data;
    var$2 = $this.$level0;
    $this.$max_lazy_match = var$1[var$2].$max_lazy;
    $this.$good_match = var$1[var$2].$good_length;
    $this.$nice_match = var$1[var$2].$nice_length;
    $this.$max_chain_length = var$1[var$2].$max_chain;
    $this.$strstart = 0;
    $this.$block_start = 0;
    $this.$lookahead = 0;
    $this.$prev_length = 2;
    $this.$match_length = 2;
    $this.$match_available = 0;
    $this.$ins_h = 0;
},
cjj_Deflate_tr_init = $this => {
    let var$1;
    var$1 = $this.$l_desc;
    var$1.$dyn_tree = $this.$dyn_ltree;
    cjj_StaticTree_$callClinit();
    var$1.$stat_desc = cjj_StaticTree_static_l_desc;
    var$1 = $this.$d_desc;
    var$1.$dyn_tree = $this.$dyn_dtree;
    var$1.$stat_desc = cjj_StaticTree_static_d_desc;
    var$1 = $this.$bl_desc;
    var$1.$dyn_tree = $this.$bl_tree;
    var$1.$stat_desc = cjj_StaticTree_static_bl_desc;
    $this.$bi_buf = 0;
    $this.$bi_valid = 0;
    $this.$last_eob_len = 8;
    cjj_Deflate_init_block($this);
},
cjj_Deflate_init_block = $this => {
    let $i;
    $i = 0;
    while ($i < 286) {
        $this.$dyn_ltree.data[$i * 2 | 0] = 0;
        $i = $i + 1 | 0;
    }
    $i = 0;
    while ($i < 30) {
        $this.$dyn_dtree.data[$i * 2 | 0] = 0;
        $i = $i + 1 | 0;
    }
    $i = 0;
    while ($i < 19) {
        $this.$bl_tree.data[$i * 2 | 0] = 0;
        $i = $i + 1 | 0;
    }
    $this.$dyn_ltree.data[512] = 1;
    $this.$static_len = 0;
    $this.$opt_len = 0;
    $this.$matches1 = 0;
    $this.$last_lit = 0;
},
cjj_Deflate_pqdownheap = ($this, $tree, $k) => {
    let $v, $j, var$5, var$6;
    $v = $this.$heap.data[$k];
    $j = $k << 1;
    a: {
        while (true) {
            var$5 = $rt_compare($j, $this.$heap_len);
            if (var$5 > 0)
                break a;
            if (var$5 >= 0)
                var$5 = $j;
            else {
                var$6 = $this.$heap.data;
                var$5 = $j + 1 | 0;
                if (!cjj_Deflate_smaller($tree, var$6[var$5], var$6[$j], $this.$depth0))
                    var$5 = $j;
            }
            if (cjj_Deflate_smaller($tree, $v, $this.$heap.data[var$5], $this.$depth0))
                break;
            var$6 = $this.$heap.data;
            var$6[$k] = var$6[var$5];
            $j = var$5 << 1;
            $k = var$5;
        }
    }
    $this.$heap.data[$k] = $v;
},
cjj_Deflate_smaller = ($tree, $n, $m, $depth) => {
    let $tn2;
    a: {
        b: {
            $tree = $tree.data;
            $tn2 = $rt_compare($tree[$n * 2 | 0], $tree[$m * 2 | 0]);
            if ($tn2 >= 0) {
                if ($tn2)
                    break b;
                $tree = $depth.data;
                if ($tree[$n] > $tree[$m])
                    break b;
            }
            $n = 1;
            break a;
        }
        $n = 0;
    }
    return $n;
},
cjj_Deflate_scan_tree = ($this, $tree, $max_code) => {
    let $prevlen, $nextlen, $count, $max_count, $min_count, $n, var$9, var$10;
    $tree = $tree.data;
    $prevlen = (-1);
    $nextlen = $tree[1];
    $count = 0;
    $max_count = 7;
    $min_count = 4;
    if (!$nextlen) {
        $max_count = 138;
        $min_count = 3;
    }
    $tree[(($max_code + 1 | 0) * 2 | 0) + 1 | 0] = (-1);
    $n = 0;
    while ($n <= $max_code) {
        $n = $n + 1 | 0;
        var$9 = $tree[($n * 2 | 0) + 1 | 0];
        $count = $count + 1 | 0;
        if (!($count < $max_count && $nextlen == var$9)) {
            if ($count < $min_count) {
                var$10 = $this.$bl_tree.data;
                $prevlen = $nextlen * 2 | 0;
                var$10[$prevlen] = (var$10[$prevlen] + $count | 0) << 16 >> 16;
            } else if (!$nextlen) {
                if ($count > 10) {
                    var$10 = $this.$bl_tree.data;
                    var$10[36] = (var$10[36] + 1 | 0) << 16 >> 16;
                } else {
                    var$10 = $this.$bl_tree.data;
                    var$10[34] = (var$10[34] + 1 | 0) << 16 >> 16;
                }
            } else {
                if ($nextlen != $prevlen) {
                    var$10 = $this.$bl_tree.data;
                    $max_count = $nextlen * 2 | 0;
                    var$10[$max_count] = (var$10[$max_count] + 1 | 0) << 16 >> 16;
                }
                var$10 = $this.$bl_tree.data;
                var$10[32] = (var$10[32] + 1 | 0) << 16 >> 16;
            }
            $count = 0;
            if (!var$9) {
                $max_count = 138;
                $min_count = 3;
                $prevlen = $nextlen;
            } else if ($nextlen != var$9) {
                $max_count = 7;
                $min_count = 4;
                $prevlen = $nextlen;
            } else {
                $max_count = 6;
                $min_count = 3;
                $prevlen = $nextlen;
            }
        }
        $nextlen = var$9;
    }
},
cjj_Deflate_build_bl_tree = $this => {
    let $max_blindex;
    cjj_Deflate_scan_tree($this, $this.$dyn_ltree, $this.$l_desc.$max_code);
    cjj_Deflate_scan_tree($this, $this.$dyn_dtree, $this.$d_desc.$max_code);
    cjj_Tree_build_tree($this.$bl_desc, $this);
    $max_blindex = 18;
    a: {
        while (true) {
            if ($max_blindex < 3)
                break a;
            if ($this.$bl_tree.data[(cjj_Tree_bl_order.data[$max_blindex] * 2 | 0) + 1 | 0])
                break;
            $max_blindex = $max_blindex + (-1) | 0;
        }
    }
    $this.$opt_len = $this.$opt_len + ((((3 * ($max_blindex + 1 | 0) | 0) + 5 | 0) + 5 | 0) + 4 | 0) | 0;
    return $max_blindex;
},
cjj_Deflate_send_all_trees = ($this, $lcodes, $dcodes, $blcodes) => {
    let $rank;
    cjj_Deflate_send_bits($this, $lcodes - 257 | 0, 5);
    $dcodes = $dcodes - 1 | 0;
    cjj_Deflate_send_bits($this, $dcodes, 5);
    cjj_Deflate_send_bits($this, $blcodes - 4 | 0, 4);
    $rank = 0;
    while ($rank < $blcodes) {
        cjj_Deflate_send_bits($this, $this.$bl_tree.data[(cjj_Tree_bl_order.data[$rank] * 2 | 0) + 1 | 0], 3);
        $rank = $rank + 1 | 0;
    }
    cjj_Deflate_send_tree($this, $this.$dyn_ltree, $lcodes - 1 | 0);
    cjj_Deflate_send_tree($this, $this.$dyn_dtree, $dcodes);
},
cjj_Deflate_send_tree = ($this, $tree, $max_code) => {
    let var$3, $prevlen, $nextlen, $count, $max_count, $min_count, $n, var$10;
    var$3 = $tree.data;
    $prevlen = (-1);
    $nextlen = var$3[1];
    $count = 0;
    $max_count = 7;
    $min_count = 4;
    if (!$nextlen) {
        $max_count = 138;
        $min_count = 3;
    }
    $n = 0;
    while ($n <= $max_code) {
        $n = $n + 1 | 0;
        var$10 = var$3[($n * 2 | 0) + 1 | 0];
        $count = $count + 1 | 0;
        if (!($count < $max_count && $nextlen == var$10)) {
            if ($count < $min_count)
                while (true) {
                    $tree = $this.$bl_tree.data;
                    $min_count = $nextlen * 2 | 0;
                    cjj_Deflate_send_bits($this, $tree[$min_count] & 65535, $tree[$min_count + 1 | 0] & 65535);
                    $count = $count + (-1) | 0;
                    if (!$count)
                        break;
                }
            else if (!$nextlen) {
                if ($count > 10) {
                    $tree = $this.$bl_tree.data;
                    cjj_Deflate_send_bits($this, $tree[36] & 65535, $tree[37] & 65535);
                    cjj_Deflate_send_bits($this, $count - 11 | 0, 7);
                } else {
                    $tree = $this.$bl_tree.data;
                    cjj_Deflate_send_bits($this, $tree[34] & 65535, $tree[35] & 65535);
                    cjj_Deflate_send_bits($this, $count - 3 | 0, 3);
                }
            } else {
                if ($nextlen != $prevlen) {
                    $tree = $this.$bl_tree.data;
                    $max_count = $nextlen * 2 | 0;
                    cjj_Deflate_send_bits($this, $tree[$max_count] & 65535, $tree[$max_count + 1 | 0] & 65535);
                    $count = $count + (-1) | 0;
                }
                $tree = $this.$bl_tree.data;
                cjj_Deflate_send_bits($this, $tree[32] & 65535, $tree[33] & 65535);
                cjj_Deflate_send_bits($this, $count - 3 | 0, 2);
            }
            $count = 0;
            if (!var$10) {
                $max_count = 138;
                $min_count = 3;
                $prevlen = $nextlen;
            } else if ($nextlen != var$10) {
                $max_count = 7;
                $min_count = 4;
                $prevlen = $nextlen;
            } else {
                $max_count = 6;
                $min_count = 3;
                $prevlen = $nextlen;
            }
        }
        $nextlen = var$10;
    }
},
cjj_Deflate_send_bits = ($this, $value, $length) => {
    let var$3, var$4, var$5, var$6, var$7, var$8;
    var$3 = $this.$bi_valid;
    if (var$3 <= (16 - $length | 0)) {
        $this.$bi_buf = ($this.$bi_buf | $value << var$3 & 65535) << 16 >> 16;
        $this.$bi_valid = var$3 + $length | 0;
    } else {
        var$4 = ($this.$bi_buf | $value << var$3 & 65535) << 16 >> 16;
        $this.$bi_buf = var$4;
        var$5 = var$4 << 24 >> 24;
        var$6 = $this.$pending_buf.data;
        var$7 = $this.$pending;
        var$8 = var$7 + 1 | 0;
        $this.$pending = var$8;
        var$6[var$7] = var$5;
        var$5 = (var$4 >>> 8 | 0) << 24 >> 24;
        $this.$pending = var$8 + 1 | 0;
        var$6[var$8] = var$5;
        $this.$bi_buf = ($value >>> (16 - var$3 | 0) | 0) << 16 >> 16;
        $this.$bi_valid = var$3 + ($length - 16 | 0) | 0;
    }
},
cjj_Deflate__tr_align = $this => {
    let var$1;
    cjj_Deflate_send_bits($this, 2, 3);
    cjj_StaticTree_$callClinit();
    var$1 = cjj_StaticTree_static_ltree.data;
    cjj_Deflate_send_bits($this, var$1[512] & 65535, var$1[513] & 65535);
    cjj_Deflate_bi_flush($this);
    if ((((1 + $this.$last_eob_len | 0) + 10 | 0) - $this.$bi_valid | 0) < 9) {
        cjj_Deflate_send_bits($this, 2, 3);
        var$1 = cjj_StaticTree_static_ltree.data;
        cjj_Deflate_send_bits($this, var$1[512] & 65535, var$1[513] & 65535);
        cjj_Deflate_bi_flush($this);
    }
    $this.$last_eob_len = 7;
},
cjj_Deflate__tr_tally = ($this, $dist, $lc) => {
    let var$3, $in_length, $dcode, var$6, var$7, $out_length;
    var$3 = $this.$pending_buf.data;
    $in_length = $this.$d_buf;
    $dcode = $this.$last_lit;
    var$6 = $in_length + ($dcode * 2 | 0) | 0;
    var$3[var$6] = ($dist >>> 8 | 0) << 24 >> 24;
    var$3[var$6 + 1 | 0] = $dist << 24 >> 24;
    $this.$l_buf.data[$dcode] = $lc << 24 >> 24;
    var$6 = $dcode + 1 | 0;
    $this.$last_lit = var$6;
    if (!$dist) {
        var$3 = $this.$dyn_ltree.data;
        $dist = $lc * 2 | 0;
        var$3[$dist] = (var$3[$dist] + 1 | 0) << 16 >> 16;
    } else {
        $this.$matches1 = $this.$matches1 + 1 | 0;
        $in_length = $dist + (-1) | 0;
        var$7 = $this.$dyn_ltree.data;
        $dist = ((cjj_Tree__length_code.data[$lc] + 256 | 0) + 1 | 0) * 2 | 0;
        var$7[$dist] = (var$7[$dist] + 1 | 0) << 16 >> 16;
        var$7 = $this.$dyn_dtree;
        $dist = $in_length < 256 ? cjj_Tree__dist_code.data[$in_length] : cjj_Tree__dist_code.data[256 + ($in_length >>> 7 | 0) | 0];
        var$3 = var$7.data;
        $dist = $dist * 2 | 0;
        var$3[$dist] = (var$3[$dist] + 1 | 0) << 16 >> 16;
    }
    if (!(var$6 & 8191) && $this.$level0 > 2) {
        $out_length = var$6 * 8 | 0;
        $in_length = $this.$strstart - $this.$block_start | 0;
        $dcode = 0;
        while ($dcode < 30) {
            $out_length = Long_lo(Long_add(Long_fromInt($out_length), Long_mul(Long_fromInt($this.$dyn_dtree.data[$dcode * 2 | 0]), Long_add(Long_fromInt(5), Long_fromInt(cjj_Tree_extra_dbits.data[$dcode])))));
            $dcode = $dcode + 1 | 0;
        }
        $dist = $out_length >>> 3 | 0;
        if ($this.$matches1 < (var$6 / 2 | 0) && $dist < ($in_length / 2 | 0))
            return 1;
    }
    return var$6 != ($this.$lit_bufsize - 1 | 0) ? 0 : 1;
},
cjj_Deflate_compress_block = ($this, $ltree, $dtree) => {
    let $lx, var$4, $dist, $lc, var$7, $code, var$9, $extra;
    a: {
        $lx = 0;
        if ($this.$last_lit)
            while (true) {
                var$4 = $this.$pending_buf.data;
                $dist = $this.$d_buf + ($lx * 2 | 0) | 0;
                $dist = var$4[$dist] << 8 & 65280 | var$4[$dist + 1 | 0] & 255;
                $lc = $this.$l_buf.data[$lx] & 255;
                $lx = $lx + 1 | 0;
                if (!$dist) {
                    var$4 = $ltree.data;
                    $lc = $lc * 2 | 0;
                    cjj_Deflate_send_bits($this, var$4[$lc] & 65535, var$4[$lc + 1 | 0] & 65535);
                } else {
                    var$7 = $ltree.data;
                    $code = cjj_Tree__length_code.data[$lc];
                    var$9 = (($code + 256 | 0) + 1 | 0) * 2 | 0;
                    cjj_Deflate_send_bits($this, var$7[var$9] & 65535, var$7[var$9 + 1 | 0] & 65535);
                    $extra = cjj_Tree_extra_lbits.data[$code];
                    if ($extra)
                        cjj_Deflate_send_bits($this, $lc - cjj_Tree_base_length.data[$code] | 0, $extra);
                    $dist = $dist + (-1) | 0;
                    var$9 = $dist < 256 ? cjj_Tree__dist_code.data[$dist] : cjj_Tree__dist_code.data[256 + ($dist >>> 7 | 0) | 0];
                    var$4 = $dtree.data;
                    $code = var$9 * 2 | 0;
                    cjj_Deflate_send_bits($this, var$4[$code] & 65535, var$4[$code + 1 | 0] & 65535);
                    $lc = cjj_Tree_extra_dbits.data[var$9];
                    if ($lc)
                        cjj_Deflate_send_bits($this, $dist - cjj_Tree_base_dist.data[var$9] | 0, $lc);
                }
                if ($lx >= $this.$last_lit)
                    break a;
            }
    }
    $ltree = $ltree.data;
    cjj_Deflate_send_bits($this, $ltree[512] & 65535, $ltree[513] & 65535);
    $this.$last_eob_len = $ltree[513];
},
cjj_Deflate_set_data_type = $this => {
    let $n, $ascii_freq, $bin_freq;
    $n = 0;
    $ascii_freq = 0;
    $bin_freq = 0;
    while ($n < 7) {
        $bin_freq = $bin_freq + $this.$dyn_ltree.data[$n * 2 | 0] | 0;
        $n = $n + 1 | 0;
    }
    while ($n < 128) {
        $ascii_freq = $ascii_freq + $this.$dyn_ltree.data[$n * 2 | 0] | 0;
        $n = $n + 1 | 0;
    }
    while ($n < 256) {
        $bin_freq = $bin_freq + $this.$dyn_ltree.data[$n * 2 | 0] | 0;
        $n = $n + 1 | 0;
    }
    $this.$data_type = ($bin_freq <= ($ascii_freq >>> 2 | 0) ? 1 : 0) << 24 >> 24;
},
cjj_Deflate_bi_flush = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $this.$bi_valid;
    if (var$1 == 16) {
        var$2 = $this.$bi_buf;
        var$1 = var$2 << 24 >> 24;
        var$3 = $this.$pending_buf.data;
        var$4 = $this.$pending;
        var$5 = var$4 + 1 | 0;
        $this.$pending = var$5;
        var$3[var$4] = var$1;
        var$2 = (var$2 >>> 8 | 0) << 24 >> 24;
        $this.$pending = var$5 + 1 | 0;
        var$3[var$5] = var$2;
        $this.$bi_buf = 0;
        $this.$bi_valid = 0;
    } else if (var$1 >= 8) {
        var$5 = $this.$bi_buf;
        var$2 = var$5 << 24 >> 24;
        var$3 = $this.$pending_buf.data;
        var$6 = $this.$pending;
        $this.$pending = var$6 + 1 | 0;
        var$3[var$6] = var$2;
        $this.$bi_buf = (var$5 >>> 8 | 0) << 16 >> 16;
        $this.$bi_valid = var$1 - 8 | 0;
    }
},
cjj_Deflate_deflate_stored = ($this, $flush) => {
    let var$2, $max_block_size, var$4, $max_start;
    var$2 = $this.$pending_buf_size - 5 | 0;
    if (65535 <= var$2)
        var$2 = 65535;
    while (true) {
        if ($this.$lookahead <= 1) {
            cjj_Deflate_fill_window($this);
            $max_block_size = $this.$lookahead;
            if (!$max_block_size && !$flush)
                return 0;
            if (!$max_block_size) {
                $flush = $rt_compare($flush, 4);
                $max_block_size = $flush ? 0 : 1;
                var$2 = $this.$block_start;
                cjj_Deflate__tr_flush_block($this, var$2 < 0 ? (-1) : var$2, $this.$strstart - var$2 | 0, $max_block_size);
                $this.$block_start = $this.$strstart;
                cjj_ZStream_flush_pending($this.$strm);
                if ($this.$strm.$avail_out)
                    return $flush ? 1 : 3;
                return $flush ? 0 : 2;
            }
        }
        $max_block_size = $this.$strstart + $this.$lookahead | 0;
        $this.$strstart = $max_block_size;
        $this.$lookahead = 0;
        var$4 = $this.$block_start;
        $max_start = var$4 + var$2 | 0;
        if (!($max_block_size && $max_block_size < $max_start)) {
            $this.$lookahead = $max_block_size - $max_start | 0;
            $this.$strstart = $max_start;
            cjj_Deflate__tr_flush_block($this, var$4 < 0 ? (-1) : var$4, $max_start - var$4 | 0, 0);
            $this.$block_start = $this.$strstart;
            cjj_ZStream_flush_pending($this.$strm);
            if (!$this.$strm.$avail_out)
                return 0;
        }
        $max_block_size = $this.$strstart;
        var$4 = $this.$block_start;
        $max_start = $max_block_size - var$4 | 0;
        if ($max_start < ($this.$w_size - 262 | 0))
            continue;
        if (var$4 < 0)
            var$4 = (-1);
        cjj_Deflate__tr_flush_block($this, var$4, $max_start, 0);
        $this.$block_start = $this.$strstart;
        cjj_ZStream_flush_pending($this.$strm);
        if (!$this.$strm.$avail_out)
            break;
    }
    return 0;
},
cjj_Deflate__tr_flush_block = ($this, $buf, $stored_len, $eof) => {
    let $max_blindex, $static_lenb, $opt_lenb, var$7, var$8, var$9;
    $max_blindex = 0;
    if ($this.$level0 <= 0) {
        $static_lenb = $stored_len + 5 | 0;
        $opt_lenb = $static_lenb;
    } else {
        if ($this.$data_type == 2)
            cjj_Deflate_set_data_type($this);
        cjj_Tree_build_tree($this.$l_desc, $this);
        cjj_Tree_build_tree($this.$d_desc, $this);
        $max_blindex = cjj_Deflate_build_bl_tree($this);
        $opt_lenb = (($this.$opt_len + 3 | 0) + 7 | 0) >>> 3 | 0;
        $static_lenb = (($this.$static_len + 3 | 0) + 7 | 0) >>> 3 | 0;
        if ($static_lenb <= $opt_lenb)
            $opt_lenb = $static_lenb;
    }
    if (($stored_len + 4 | 0) <= $opt_lenb && $buf != (-1)) {
        cjj_Deflate_send_bits($this, 0 + (!$eof ? 0 : 1) | 0, 3);
        $static_lenb = $this.$bi_valid;
        if ($static_lenb > 8) {
            $max_blindex = $this.$bi_buf;
            $static_lenb = $max_blindex << 24 >> 24;
            var$7 = $this.$pending_buf.data;
            var$8 = $this.$pending;
            $opt_lenb = var$8 + 1 | 0;
            $this.$pending = $opt_lenb;
            var$7[var$8] = $static_lenb;
            $max_blindex = ($max_blindex >>> 8 | 0) << 24 >> 24;
            $this.$pending = $opt_lenb + 1 | 0;
            var$7[$opt_lenb] = $max_blindex;
        } else if ($static_lenb > 0) {
            $max_blindex = $this.$bi_buf << 24 >> 24;
            var$7 = $this.$pending_buf.data;
            $opt_lenb = $this.$pending;
            $this.$pending = $opt_lenb + 1 | 0;
            var$7[$opt_lenb] = $max_blindex;
        }
        $this.$bi_buf = 0;
        $this.$bi_valid = 0;
        $this.$last_eob_len = 8;
        $opt_lenb = $stored_len << 16 >> 16;
        var$8 = $opt_lenb << 24 >> 24;
        var$7 = $this.$pending_buf;
        var$9 = var$7.data;
        $max_blindex = $this.$pending;
        $static_lenb = $max_blindex + 1 | 0;
        $this.$pending = $static_lenb;
        var$9[$max_blindex] = var$8;
        $max_blindex = ($opt_lenb >>> 8 | 0) << 24 >> 24;
        var$8 = $static_lenb + 1 | 0;
        $this.$pending = var$8;
        var$9[$static_lenb] = $max_blindex;
        $max_blindex = ($stored_len ^ (-1)) << 16 >> 16;
        $static_lenb = $max_blindex << 24 >> 24;
        $opt_lenb = var$8 + 1 | 0;
        $this.$pending = $opt_lenb;
        var$9[var$8] = $static_lenb;
        $max_blindex = ($max_blindex >>> 8 | 0) << 24 >> 24;
        $static_lenb = $opt_lenb + 1 | 0;
        $this.$pending = $static_lenb;
        var$9[$opt_lenb] = $max_blindex;
        jl_System_fastArraycopy($this.$window0, $buf, var$7, $static_lenb, $stored_len);
        $this.$pending = $this.$pending + $stored_len | 0;
    } else if ($static_lenb == $opt_lenb) {
        cjj_Deflate_send_bits($this, 2 + (!$eof ? 0 : 1) | 0, 3);
        cjj_StaticTree_$callClinit();
        cjj_Deflate_compress_block($this, cjj_StaticTree_static_ltree, cjj_StaticTree_static_dtree);
    } else {
        cjj_Deflate_send_bits($this, 4 + (!$eof ? 0 : 1) | 0, 3);
        cjj_Deflate_send_all_trees($this, $this.$l_desc.$max_code + 1 | 0, $this.$d_desc.$max_code + 1 | 0, $max_blindex + 1 | 0);
        cjj_Deflate_compress_block($this, $this.$dyn_ltree, $this.$dyn_dtree);
    }
    cjj_Deflate_init_block($this);
    if ($eof) {
        $stored_len = $this.$bi_valid;
        if ($stored_len > 8) {
            $buf = $this.$bi_buf;
            $stored_len = $buf << 24 >> 24;
            var$7 = $this.$pending_buf.data;
            $max_blindex = $this.$pending;
            $eof = $max_blindex + 1 | 0;
            $this.$pending = $eof;
            var$7[$max_blindex] = $stored_len;
            $buf = ($buf >>> 8 | 0) << 24 >> 24;
            $this.$pending = $eof + 1 | 0;
            var$7[$eof] = $buf;
        } else if ($stored_len > 0) {
            $buf = $this.$bi_buf << 24 >> 24;
            var$7 = $this.$pending_buf.data;
            $eof = $this.$pending;
            $this.$pending = $eof + 1 | 0;
            var$7[$eof] = $buf;
        }
        $this.$bi_buf = 0;
        $this.$bi_valid = 0;
    }
},
cjj_Deflate_fill_window = $this => {
    let $n, var$2, $m, $more, var$5, $p, var$7;
    while (true) {
        $n = $this.$window_size;
        var$2 = $this.$lookahead;
        $n = $n - var$2 | 0;
        $m = $this.$strstart;
        $more = $n - $m | 0;
        if (!$more && !$m && !var$2)
            $more = $this.$w_size;
        else if ($more == (-1))
            $more = $more + (-1) | 0;
        else {
            var$2 = $this.$w_size;
            if ($m >= ((var$2 + var$2 | 0) - 262 | 0)) {
                var$5 = $this.$window0;
                jl_System_fastArraycopy(var$5, var$2, var$5, 0, var$2);
                $n = $this.$match_start;
                var$2 = $this.$w_size;
                $this.$match_start = $n - var$2 | 0;
                $this.$strstart = $this.$strstart - var$2 | 0;
                $this.$block_start = $this.$block_start - var$2 | 0;
                $n = $this.$hash_size;
                $p = $n;
                while (true) {
                    var$5 = $this.$head0.data;
                    $p = $p + (-1) | 0;
                    $m = var$5[$p] & 65535;
                    var$5[$p] = $m < var$2 ? 0 : ($m - var$2 | 0) << 16 >> 16;
                    $n = $n + (-1) | 0;
                    if (!$n)
                        break;
                }
                $m = var$2;
                $p = var$2;
                while (true) {
                    var$5 = $this.$prev.data;
                    $m = $m + (-1) | 0;
                    $n = var$5[$m] & 65535;
                    var$5[$m] = $n < var$2 ? 0 : ($n - var$2 | 0) << 16 >> 16;
                    $p = $p + (-1) | 0;
                    if (!$p)
                        break;
                }
                $more = $more + var$2 | 0;
            }
        }
        var$7 = $this.$strm;
        if (!var$7.$avail_in)
            return;
        $n = cjj_ZStream_read_buf(var$7, $this.$window0, $this.$strstart + $this.$lookahead | 0, $more);
        $n = $this.$lookahead + $n | 0;
        $this.$lookahead = $n;
        if ($n >= 3) {
            var$5 = $this.$window0.data;
            var$2 = $this.$strstart;
            $m = var$5[var$2] & 255;
            $this.$ins_h = $m;
            $this.$ins_h = ($m << $this.$hash_shift ^ var$5[var$2 + 1 | 0] & 255) & $this.$hash_mask;
        }
        if ($n >= 262)
            break;
        if ($this.$strm.$avail_in)
            continue;
        else
            break;
    }
},
cjj_Deflate_deflate_fast = ($this, $flush) => {
    let $hash_head, var$3, var$4, var$5, var$6, $bflush;
    $hash_head = 0;
    while (true) {
        if ($this.$lookahead < 262) {
            cjj_Deflate_fill_window($this);
            var$3 = $this.$lookahead;
            if (var$3 < 262 && !$flush)
                return 0;
            if (!var$3) {
                $flush = $rt_compare($flush, 4);
                $hash_head = $flush ? 0 : 1;
                var$3 = $this.$block_start;
                cjj_Deflate__tr_flush_block($this, var$3 < 0 ? (-1) : var$3, $this.$strstart - var$3 | 0, $hash_head);
                $this.$block_start = $this.$strstart;
                cjj_ZStream_flush_pending($this.$strm);
                if (!$this.$strm.$avail_out) {
                    if ($flush)
                        return 0;
                    return 2;
                }
                return $flush ? 1 : 3;
            }
        }
        if ($this.$lookahead >= 3) {
            $hash_head = $this.$ins_h << $this.$hash_shift;
            var$4 = $this.$window0.data;
            var$3 = $this.$strstart;
            var$5 = ($hash_head ^ var$4[var$3 + 2 | 0] & 255) & $this.$hash_mask;
            $this.$ins_h = var$5;
            var$4 = $this.$head0.data;
            $hash_head = var$4[var$5] & 65535;
            $this.$prev.data[var$3 & $this.$w_mask] = var$4[var$5];
            var$4[var$5] = var$3 << 16 >> 16;
        }
        if (Long_ne(Long_fromInt($hash_head), Long_ZERO) && (($this.$strstart - $hash_head | 0) & 65535) <= ($this.$w_size - 262 | 0) && $this.$strategy != 2)
            $this.$match_length = cjj_Deflate_longest_match($this, $hash_head);
        var$6 = $this.$match_length;
        if (var$6 < 3) {
            $bflush = cjj_Deflate__tr_tally($this, 0, $this.$window0.data[$this.$strstart] & 255);
            $this.$lookahead = $this.$lookahead - 1 | 0;
            $this.$strstart = $this.$strstart + 1 | 0;
        } else {
            $bflush = cjj_Deflate__tr_tally($this, $this.$strstart - $this.$match_start | 0, var$6 - 3 | 0);
            var$3 = $this.$lookahead;
            var$5 = $this.$match_length;
            var$3 = var$3 - var$5 | 0;
            $this.$lookahead = var$3;
            if (var$5 <= $this.$max_lazy_match && var$3 >= 3) {
                $this.$match_length = var$5 - 1 | 0;
                while (true) {
                    var$3 = $this.$strstart + 1 | 0;
                    $this.$strstart = var$3;
                    var$5 = ($this.$ins_h << $this.$hash_shift ^ $this.$window0.data[var$3 + 2 | 0] & 255) & $this.$hash_mask;
                    $this.$ins_h = var$5;
                    var$4 = $this.$head0.data;
                    $hash_head = var$4[var$5] & 65535;
                    $this.$prev.data[var$3 & $this.$w_mask] = var$4[var$5];
                    var$4[var$5] = var$3 << 16 >> 16;
                    var$5 = $this.$match_length - 1 | 0;
                    $this.$match_length = var$5;
                    if (var$5)
                        continue;
                    else
                        break;
                }
                $this.$strstart = var$3 + 1 | 0;
            } else {
                var$3 = $this.$strstart + var$5 | 0;
                $this.$strstart = var$3;
                $this.$match_length = 0;
                var$4 = $this.$window0.data;
                var$5 = var$4[var$3] & 255;
                $this.$ins_h = var$5;
                $this.$ins_h = (var$5 << $this.$hash_shift ^ var$4[var$3 + 1 | 0] & 255) & $this.$hash_mask;
            }
        }
        if (!$bflush)
            continue;
        var$5 = $this.$block_start;
        cjj_Deflate__tr_flush_block($this, var$5 < 0 ? (-1) : var$5, $this.$strstart - var$5 | 0, 0);
        $this.$block_start = $this.$strstart;
        cjj_ZStream_flush_pending($this.$strm);
        if (!$this.$strm.$avail_out)
            break;
    }
    return 0;
},
cjj_Deflate_deflate_slow = ($this, $flush) => {
    let $hash_head, $bflush, var$4, $max_insert, var$6, var$7;
    $hash_head = 0;
    while (true) {
        if ($this.$lookahead < 262) {
            cjj_Deflate_fill_window($this);
            $bflush = $this.$lookahead;
            if ($bflush < 262 && !$flush)
                return 0;
            if (!$bflush) {
                if ($this.$match_available) {
                    cjj_Deflate__tr_tally($this, 0, $this.$window0.data[$this.$strstart - 1 | 0] & 255);
                    $this.$match_available = 0;
                }
                $flush = $rt_compare($flush, 4);
                $hash_head = $flush ? 0 : 1;
                $bflush = $this.$block_start;
                cjj_Deflate__tr_flush_block($this, $bflush < 0 ? (-1) : $bflush, $this.$strstart - $bflush | 0, $hash_head);
                $this.$block_start = $this.$strstart;
                cjj_ZStream_flush_pending($this.$strm);
                if (!$this.$strm.$avail_out) {
                    if ($flush)
                        return 0;
                    return 2;
                }
                return $flush ? 1 : 3;
            }
        }
        if ($this.$lookahead >= 3) {
            $hash_head = $this.$ins_h << $this.$hash_shift;
            var$4 = $this.$window0.data;
            $bflush = $this.$strstart;
            $max_insert = ($hash_head ^ var$4[$bflush + 2 | 0] & 255) & $this.$hash_mask;
            $this.$ins_h = $max_insert;
            var$4 = $this.$head0.data;
            $hash_head = var$4[$max_insert] & 65535;
            $this.$prev.data[$bflush & $this.$w_mask] = var$4[$max_insert];
            var$4[$max_insert] = $bflush << 16 >> 16;
        }
        a: {
            $max_insert = $this.$match_length;
            $this.$prev_length = $max_insert;
            $this.$prev_match = $this.$match_start;
            $this.$match_length = 2;
            if ($hash_head && $max_insert < $this.$max_lazy_match && (($this.$strstart - $hash_head | 0) & 65535) <= ($this.$w_size - 262 | 0)) {
                if ($this.$strategy != 2)
                    $this.$match_length = cjj_Deflate_longest_match($this, $hash_head);
                $bflush = $this.$match_length;
                if ($bflush <= 5) {
                    if ($this.$strategy != 1) {
                        if ($bflush != 3)
                            break a;
                        if (($this.$strstart - $this.$match_start | 0) <= 4096)
                            break a;
                    }
                    $this.$match_length = 2;
                }
            }
        }
        var$6 = $this.$prev_length;
        if (!(var$6 >= 3 && $this.$match_length <= var$6)) {
            if (!$this.$match_available) {
                $this.$match_available = 1;
                $this.$strstart = $this.$strstart + 1 | 0;
                $this.$lookahead = $this.$lookahead - 1 | 0;
                continue;
            }
            if (cjj_Deflate__tr_tally($this, 0, $this.$window0.data[$this.$strstart - 1 | 0] & 255)) {
                $max_insert = $this.$block_start;
                cjj_Deflate__tr_flush_block($this, $max_insert < 0 ? (-1) : $max_insert, $this.$strstart - $max_insert | 0, 0);
                $this.$block_start = $this.$strstart;
                cjj_ZStream_flush_pending($this.$strm);
            }
            $this.$strstart = $this.$strstart + 1 | 0;
            $this.$lookahead = $this.$lookahead - 1 | 0;
            if (!$this.$strm.$avail_out)
                break;
            continue;
        }
        $bflush = $this.$strstart;
        $max_insert = ($bflush + $this.$lookahead | 0) - 3 | 0;
        $bflush = cjj_Deflate__tr_tally($this, ($bflush - 1 | 0) - $this.$prev_match | 0, var$6 - 3 | 0);
        var$7 = $this.$lookahead;
        var$6 = $this.$prev_length;
        $this.$lookahead = var$7 - (var$6 - 1 | 0) | 0;
        $this.$prev_length = var$6 - 2 | 0;
        while (true) {
            var$7 = $this.$strstart + 1 | 0;
            $this.$strstart = var$7;
            if (var$7 <= $max_insert) {
                var$6 = ($this.$ins_h << $this.$hash_shift ^ $this.$window0.data[var$7 + 2 | 0] & 255) & $this.$hash_mask;
                $this.$ins_h = var$6;
                var$4 = $this.$head0.data;
                $hash_head = var$4[var$6] & 65535;
                $this.$prev.data[var$7 & $this.$w_mask] = var$4[var$6];
                var$4[var$6] = var$7 << 16 >> 16;
            }
            var$6 = $this.$prev_length - 1 | 0;
            $this.$prev_length = var$6;
            if (!var$6)
                break;
        }
        $this.$match_available = 0;
        $this.$match_length = 2;
        $max_insert = var$7 + 1 | 0;
        $this.$strstart = $max_insert;
        if ($bflush) {
            var$7 = $this.$block_start;
            cjj_Deflate__tr_flush_block($this, var$7 < 0 ? (-1) : var$7, $max_insert - var$7 | 0, 0);
            $this.$block_start = $this.$strstart;
            cjj_ZStream_flush_pending($this.$strm);
            if (!$this.$strm.$avail_out)
                return 0;
        }
    }
    return 0;
},
cjj_Deflate_longest_match = ($this, $cur_match) => {
    let $chain_length, $scan, $best_len, $len, $limit, $nice_match, $wmask, $strend, var$10, $scan_end1, $scan_end, var$13, var$14, var$15, var$16;
    $chain_length = $this.$max_chain_length;
    $scan = $this.$strstart;
    $best_len = $this.$prev_length;
    $len = $this.$w_size - 262 | 0;
    $limit = $scan <= $len ? 0 : $scan - $len | 0;
    $nice_match = $this.$nice_match;
    $wmask = $this.$w_mask;
    $strend = $scan + 258 | 0;
    var$10 = $this.$window0.data;
    $len = $scan + $best_len | 0;
    $scan_end1 = var$10[$len - 1 | 0];
    $scan_end = var$10[$len];
    if ($best_len >= $this.$good_match)
        $chain_length = $chain_length >> 2;
    var$13 = $this.$lookahead;
    if ($nice_match > var$13)
        $nice_match = var$13;
    var$14 = $strend - 258 | 0;
    a: {
        while (true) {
            $len = $cur_match + $best_len | 0;
            if (var$10[$len] == $scan_end && var$10[$len - 1 | 0] == $scan_end1 && var$10[$cur_match] == var$10[$scan]) {
                var$15 = $cur_match + 1 | 0;
                if (var$10[var$15] == var$10[$scan + 1 | 0]) {
                    $len = $scan + 2 | 0;
                    $scan = var$15 + 1 | 0;
                    b: {
                        while (true) {
                            $len = $len + 1 | 0;
                            var$15 = var$10[$len];
                            $scan = $scan + 1 | 0;
                            if (var$15 != var$10[$scan])
                                break;
                            $len = $len + 1 | 0;
                            var$15 = var$10[$len];
                            var$16 = $scan + 1 | 0;
                            if (var$15 != var$10[var$16])
                                break b;
                            $len = $len + 1 | 0;
                            $scan = var$10[$len];
                            var$15 = var$16 + 1 | 0;
                            if ($scan != var$10[var$15])
                                break b;
                            $len = $len + 1 | 0;
                            var$16 = var$10[$len];
                            $scan = var$15 + 1 | 0;
                            if (var$16 != var$10[$scan])
                                break b;
                            $len = $len + 1 | 0;
                            var$15 = var$10[$len];
                            $scan = $scan + 1 | 0;
                            if (var$15 != var$10[$scan])
                                break b;
                            $len = $len + 1 | 0;
                            var$15 = var$10[$len];
                            $scan = $scan + 1 | 0;
                            if (var$15 != var$10[$scan])
                                break b;
                            $len = $len + 1 | 0;
                            var$15 = var$10[$len];
                            $scan = $scan + 1 | 0;
                            if (var$15 != var$10[$scan])
                                break b;
                            $len = $len + 1 | 0;
                            var$15 = var$10[$len];
                            $scan = $scan + 1 | 0;
                            if (var$15 != var$10[$scan])
                                break b;
                            if ($len >= $strend)
                                break b;
                        }
                    }
                    $len = 258 - ($strend - $len | 0) | 0;
                    if ($len <= $best_len)
                        $scan = var$14;
                    else {
                        $this.$match_start = $cur_match;
                        if ($len >= $nice_match)
                            break;
                        $scan_end = var$14 + $len | 0;
                        $scan_end1 = var$10[$scan_end - 1 | 0];
                        $scan_end = var$10[$scan_end];
                        $scan = var$14;
                        $best_len = $len;
                    }
                }
            }
            $cur_match = $this.$prev.data[$cur_match & $wmask] & 65535;
            if ($cur_match <= $limit) {
                $len = $best_len;
                break a;
            }
            $chain_length = $chain_length + (-1) | 0;
            if (!$chain_length) {
                $len = $best_len;
                break a;
            }
        }
    }
    if ($len > var$13)
        return var$13;
    return $len;
},
cjj_Deflate_deflateInit0 = ($this, $level, $bits) => {
    return cjj_Deflate_deflateInit($this, $level, 8, $bits, 8, 0);
},
cjj_Deflate_deflateInit = ($this, $level, $method, $windowBits, $memLevel, $strategy) => {
    let $wrap, var$7, var$8, var$9;
    $wrap = 1;
    var$7 = $this.$strm;
    var$7.$msg = null;
    if ($level == (-1))
        $level = 6;
    if ($windowBits < 0) {
        $wrap = 0;
        $windowBits =  -$windowBits | 0;
    } else if ($windowBits > 15) {
        $wrap = 2;
        $windowBits = $windowBits + (-16) | 0;
        var$8 = new cjj_CRC32;
        var$8.$v = 0;
        var$7.$adler = var$8;
    }
    a: {
        if ($memLevel < 1)
            break a;
        if ($memLevel > 9)
            break a;
        if ($method != 8)
            break a;
        if ($windowBits < 9)
            break a;
        if ($windowBits > 15)
            break a;
        if ($level < 0)
            break a;
        if ($level > 9)
            break a;
        if ($strategy < 0)
            break a;
        if ($strategy <= 2) {
            var$7.$dstate = $this;
            $this.$wrap2 = $wrap;
            $this.$w_bits = $windowBits;
            $windowBits = 1 << $windowBits;
            $this.$w_size = $windowBits;
            $this.$w_mask = $windowBits - 1 | 0;
            $wrap = $memLevel + 7 | 0;
            $this.$hash_bits = $wrap;
            var$9 = 1 << $wrap;
            $this.$hash_size = var$9;
            $this.$hash_mask = var$9 - 1 | 0;
            $this.$hash_shift = (($wrap + 3 | 0) - 1 | 0) / 3 | 0;
            $this.$window0 = $rt_createByteArray($windowBits * 2 | 0);
            $this.$prev = $rt_createShortArray($windowBits);
            $this.$head0 = $rt_createShortArray(var$9);
            $windowBits = 1 << ($memLevel + 6 | 0);
            $this.$lit_bufsize = $windowBits;
            $memLevel = $windowBits * 3 | 0;
            $this.$pending_buf = $rt_createByteArray($memLevel);
            $this.$pending_buf_size = $memLevel;
            $this.$d_buf = $windowBits;
            $this.$l_buf = $rt_createByteArray($windowBits);
            $this.$level0 = $level;
            $this.$strategy = $strategy;
            $this.$method = $method << 24 >> 24;
            return cjj_Deflate_deflateReset($this);
        }
    }
    return (-2);
},
cjj_Deflate_deflateReset = $this => {
    let var$1, var$2;
    var$1 = $this.$strm;
    var$1.$total_out = Long_ZERO;
    var$1.$total_in = Long_ZERO;
    var$1.$msg = null;
    var$1.$data_type0 = 2;
    $this.$pending = 0;
    $this.$pending_out = 0;
    var$2 = $this.$wrap2;
    if (var$2 < 0)
        $this.$wrap2 =  -var$2 | 0;
    $this.$status = $this.$wrap2 ? 42 : 113;
    var$1.$adler.$reset();
    $this.$last_flush = 0;
    cjj_Deflate_tr_init($this);
    cjj_Deflate_lm_init($this);
    return 0;
},
cjj_Deflate_deflateEnd = $this => {
    let var$1;
    var$1 = $this.$status;
    if (var$1 != 42 && var$1 != 113 && var$1 != 666)
        return (-2);
    $this.$pending_buf = null;
    $this.$l_buf = null;
    $this.$head0 = null;
    $this.$prev = null;
    $this.$window0 = null;
    return var$1 != 113 ? 0 : (-3);
},
cjj_Deflate_deflateParams = ($this, $_level, $_strategy) => {
    let $err, var$4, var$5, var$6;
    $err = 0;
    if ($_level == (-1))
        $_level = 6;
    if ($_level >= 0 && $_level <= 9 && $_strategy >= 0 && $_strategy <= 2) {
        var$4 = cjj_Deflate_config_table.data;
        if (var$4[$this.$level0].$func != var$4[$_level].$func) {
            var$5 = $this.$strm;
            if (Long_ne(var$5.$total_in, Long_ZERO)) {
                var$6 = var$5.$dstate;
                if (var$6 === null)
                    $err = (-2);
                else {
                    $err = cjj_Deflate_deflate(var$6, 1);
                    if ($err == 1)
                        var$5.$finished1 = 1;
                }
            }
        }
        if ($this.$level0 != $_level) {
            $this.$level0 = $_level;
            var$4 = cjj_Deflate_config_table.data;
            $this.$max_lazy_match = var$4[$_level].$max_lazy;
            $this.$good_match = var$4[$_level].$good_length;
            $this.$nice_match = var$4[$_level].$nice_length;
            $this.$max_chain_length = var$4[$_level].$max_chain;
        }
        $this.$strategy = $_strategy;
        return $err;
    }
    return (-2);
},
cjj_Deflate_deflate = ($this, $flush) => {
    let var$2, var$3, $header, $old_flush, $level_flags, $bstate, var$8, var$9, $i, $adler, var$12, var$13, var$14;
    var$2 = $rt_compare($flush, 4);
    if (var$2 <= 0 && $flush >= 0) {
        a: {
            var$3 = $this.$strm;
            if (var$3.$next_out !== null && !(var$3.$next_in === null && var$3.$avail_in)) {
                $header = $this.$status;
                if ($header != 666)
                    break a;
                if (!var$2)
                    break a;
            }
            var$3.$msg = cjj_Deflate_z_errmsg.data[4];
            return (-2);
        }
        if (!var$3.$avail_out) {
            var$3.$msg = cjj_Deflate_z_errmsg.data[7];
            return (-5);
        }
        $old_flush = $this.$last_flush;
        $this.$last_flush = $flush;
        if ($header == 42) {
            if ($this.$wrap2 == 2) {
                cjj_GZIPHeader_put(cjj_Deflate_getGZIPHeader($this), $this);
                $this.$status = 113;
                $this.$strm.$adler.$reset();
            } else {
                $header = (8 + (($this.$w_bits - 8 | 0) << 4) | 0) << 8;
                $level_flags = (($this.$level0 - 1 | 0) & 255) >> 1;
                if ($level_flags > 3)
                    $level_flags = 3;
                $header = $header | $level_flags << 6;
                $level_flags = $this.$strstart;
                if ($level_flags)
                    $header = $header | 32;
                $header = $header + (31 - ($header % 31 | 0) | 0) | 0;
                $this.$status = 113;
                $bstate = $header >> 8 << 24 >> 24;
                var$8 = $this.$pending_buf.data;
                var$9 = $this.$pending;
                $i = var$9 + 1 | 0;
                $this.$pending = $i;
                var$8[var$9] = $bstate;
                $header = $header << 24 >> 24;
                $this.$pending = $i + 1 | 0;
                var$8[$i] = $header;
                if ($level_flags) {
                    $adler = var$3.$adler.$getValue0();
                    $header = Long_lo(Long_shru($adler, 16));
                    $level_flags = $header >> 8 << 24 >> 24;
                    var$8 = $this.$pending_buf.data;
                    $i = $this.$pending;
                    $bstate = $i + 1 | 0;
                    $this.$pending = $bstate;
                    var$8[$i] = $level_flags;
                    $header = $header << 24 >> 24;
                    $i = $bstate + 1 | 0;
                    $this.$pending = $i;
                    var$8[$bstate] = $header;
                    $header = Long_lo(Long_and($adler, Long_fromInt(65535)));
                    $level_flags = $header >> 8 << 24 >> 24;
                    $bstate = $i + 1 | 0;
                    $this.$pending = $bstate;
                    var$8[$i] = $level_flags;
                    $header = $header << 24 >> 24;
                    $this.$pending = $bstate + 1 | 0;
                    var$8[$bstate] = $header;
                }
                $this.$strm.$adler.$reset();
            }
        }
        b: {
            if ($this.$pending) {
                cjj_ZStream_flush_pending($this.$strm);
                if ($this.$strm.$avail_out)
                    break b;
                $this.$last_flush = (-1);
                return 0;
            }
            var$3 = $this.$strm;
            if (!var$3.$avail_in && $flush <= $old_flush && var$2) {
                var$3.$msg = cjj_Deflate_z_errmsg.data[7];
                return (-5);
            }
        }
        $header = $rt_compare($this.$status, 666);
        if (!$header) {
            var$3 = $this.$strm;
            if (var$3.$avail_in) {
                var$3.$msg = cjj_Deflate_z_errmsg.data[7];
                return (-5);
            }
        }
        c: {
            if (!$this.$strm.$avail_in && !$this.$lookahead) {
                if (!$flush)
                    break c;
                if (!$header)
                    break c;
            }
            d: {
                $bstate = (-1);
                switch (cjj_Deflate_config_table.data[$this.$level0].$func) {
                    case 0:
                        $bstate = cjj_Deflate_deflate_stored($this, $flush);
                        break d;
                    case 1:
                        $bstate = cjj_Deflate_deflate_fast($this, $flush);
                        break d;
                    case 2:
                        $bstate = cjj_Deflate_deflate_slow($this, $flush);
                        break d;
                    default:
                }
            }
            $header = $rt_compare($bstate, 2);
            if (!($header && $bstate != 3))
                $this.$status = 666;
            if ($bstate && $header) {
                if ($bstate != 1)
                    break c;
                e: {
                    if ($flush == 1)
                        cjj_Deflate__tr_align($this);
                    else {
                        cjj_Deflate_send_bits($this, 0, 3);
                        $bstate = $this.$bi_valid;
                        if ($bstate > 8) {
                            $level_flags = $this.$bi_buf;
                            $bstate = $level_flags << 24 >> 24;
                            var$8 = $this.$pending_buf.data;
                            var$9 = $this.$pending;
                            $i = var$9 + 1 | 0;
                            $this.$pending = $i;
                            var$8[var$9] = $bstate;
                            $level_flags = ($level_flags >>> 8 | 0) << 24 >> 24;
                            $this.$pending = $i + 1 | 0;
                            var$8[$i] = $level_flags;
                        } else if ($bstate > 0) {
                            $level_flags = $this.$bi_buf << 24 >> 24;
                            var$8 = $this.$pending_buf.data;
                            $i = $this.$pending;
                            $this.$pending = $i + 1 | 0;
                            var$8[$i] = $level_flags;
                        }
                        $this.$bi_buf = 0;
                        $this.$bi_valid = 0;
                        $this.$last_eob_len = 8;
                        var$12 = $this.$pending_buf;
                        var$8 = var$12.data;
                        $i = $this.$pending;
                        var$13 = $i + 1 | 0;
                        $this.$pending = var$13;
                        var$8[$i] = 0;
                        var$9 = var$13 + 1 | 0;
                        $this.$pending = var$9;
                        var$8[var$13] = 0;
                        $i = var$9 + 1 | 0;
                        $this.$pending = $i;
                        var$8[var$9] = (-1);
                        $bstate = $i + 1 | 0;
                        $this.$pending = $bstate;
                        var$8[$i] = (-1);
                        jl_System_fastArraycopy($this.$window0, 0, var$12, $bstate, 0);
                        $this.$pending = $this.$pending + 0 | 0;
                        if ($flush == 3) {
                            $i = 0;
                            while (true) {
                                if ($i >= $this.$hash_size)
                                    break e;
                                $this.$head0.data[$i] = 0;
                                $i = $i + 1 | 0;
                            }
                        }
                    }
                }
                cjj_ZStream_flush_pending($this.$strm);
                if ($this.$strm.$avail_out)
                    break c;
                $this.$last_flush = (-1);
                return 0;
            }
            if (!$this.$strm.$avail_out)
                $this.$last_flush = (-1);
            return 0;
        }
        if (var$2)
            return 0;
        $flush = $this.$wrap2;
        if ($flush <= 0)
            return 1;
        if ($flush != 2) {
            $adler = $this.$strm.$adler.$getValue0();
            $flush = Long_lo(Long_shru($adler, 16));
            var$2 = $flush >> 8 << 24 >> 24;
            var$8 = $this.$pending_buf.data;
            $old_flush = $this.$pending;
            $header = $old_flush + 1 | 0;
            $this.$pending = $header;
            var$8[$old_flush] = var$2;
            $flush = $flush << 24 >> 24;
            var$2 = $header + 1 | 0;
            $this.$pending = var$2;
            var$8[$header] = $flush;
            $flush = Long_lo(Long_and($adler, Long_fromInt(65535)));
            $header = $flush >> 8 << 24 >> 24;
            $old_flush = var$2 + 1 | 0;
            $this.$pending = $old_flush;
            var$8[var$2] = $header;
            $flush = $flush << 24 >> 24;
            $this.$pending = $old_flush + 1 | 0;
            var$8[$old_flush] = $flush;
        } else {
            $adler = $this.$strm.$adler.$getValue0();
            $flush = Long_lo(Long_and($adler, Long_fromInt(255))) << 24 >> 24;
            var$8 = $this.$pending_buf.data;
            $header = $this.$pending;
            $level_flags = $header + 1 | 0;
            $this.$pending = $level_flags;
            var$8[$header] = $flush;
            $flush = Long_lo(Long_and(Long_shr($adler, 8), Long_fromInt(255))) << 24 >> 24;
            $old_flush = $level_flags + 1 | 0;
            $this.$pending = $old_flush;
            var$8[$level_flags] = $flush;
            $flush = Long_lo(Long_and(Long_shr($adler, 16), Long_fromInt(255))) << 24 >> 24;
            $header = $old_flush + 1 | 0;
            $this.$pending = $header;
            var$8[$old_flush] = $flush;
            $flush = Long_lo(Long_and(Long_shr($adler, 24), Long_fromInt(255))) << 24 >> 24;
            $old_flush = $header + 1 | 0;
            $this.$pending = $old_flush;
            var$8[$header] = $flush;
            var$14 = $this.$strm.$total_in;
            $flush = Long_lo(Long_and(var$14, Long_fromInt(255))) << 24 >> 24;
            $header = $old_flush + 1 | 0;
            $this.$pending = $header;
            var$8[$old_flush] = $flush;
            $flush = Long_lo(Long_and(Long_shr(var$14, 8), Long_fromInt(255))) << 24 >> 24;
            $old_flush = $header + 1 | 0;
            $this.$pending = $old_flush;
            var$8[$header] = $flush;
            $flush = Long_lo(Long_and(Long_shr(var$14, 16), Long_fromInt(255))) << 24 >> 24;
            $header = $old_flush + 1 | 0;
            $this.$pending = $header;
            var$8[$old_flush] = $flush;
            $flush = Long_lo(Long_and(Long_shr(var$14, 24), Long_fromInt(255))) << 24 >> 24;
            $this.$pending = $header + 1 | 0;
            var$8[$header] = $flush;
            (cjj_Deflate_getGZIPHeader($this)).$crc3 = $adler;
        }
        cjj_ZStream_flush_pending($this.$strm);
        $flush = $this.$wrap2;
        if ($flush > 0)
            $this.$wrap2 =  -$flush | 0;
        return !$this.$pending ? 1 : 0;
    }
    return (-2);
},
cjj_Deflate_getGZIPHeader = $this => {
    let var$1;
    jl_Object_monitorEnterSync($this);
    try {
        if ($this.$gheader0 === null) {
            var$1 = new cjj_GZIPHeader;
            var$1.$text1 = 0;
            var$1.$fhcrc = 0;
            var$1.$os0 = 255;
            var$1.$done0 = 0;
            var$1.$mtime = Long_ZERO;
            $this.$gheader0 = var$1;
        }
        return $this.$gheader0;
    } finally {
        jl_Object_monitorExitSync($this);
    }
},
cjj_Deflate__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = $rt_createArray(cjj_Deflate$Config, 10);
    var$2 = var$1.data;
    cjj_Deflate_config_table = var$1;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 0;
    var$3.$max_lazy = 0;
    var$3.$nice_length = 0;
    var$3.$max_chain = 0;
    var$3.$func = 0;
    var$2[0] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 4;
    var$3.$max_lazy = 4;
    var$3.$nice_length = 8;
    var$3.$max_chain = 4;
    var$3.$func = 1;
    var$2[1] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 4;
    var$3.$max_lazy = 5;
    var$3.$nice_length = 16;
    var$3.$max_chain = 8;
    var$3.$func = 1;
    var$2[2] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 4;
    var$3.$max_lazy = 6;
    var$3.$nice_length = 32;
    var$3.$max_chain = 32;
    var$3.$func = 1;
    var$2[3] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 4;
    var$3.$max_lazy = 4;
    var$3.$nice_length = 16;
    var$3.$max_chain = 16;
    var$3.$func = 2;
    var$2[4] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 8;
    var$3.$max_lazy = 16;
    var$3.$nice_length = 32;
    var$3.$max_chain = 32;
    var$3.$func = 2;
    var$2[5] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 8;
    var$3.$max_lazy = 16;
    var$3.$nice_length = 128;
    var$3.$max_chain = 128;
    var$3.$func = 2;
    var$2[6] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 8;
    var$3.$max_lazy = 32;
    var$3.$nice_length = 128;
    var$3.$max_chain = 256;
    var$3.$func = 2;
    var$2[7] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 32;
    var$3.$max_lazy = 128;
    var$3.$nice_length = 258;
    var$3.$max_chain = 1024;
    var$3.$func = 2;
    var$2[8] = var$3;
    var$3 = new cjj_Deflate$Config;
    var$3.$good_length = 32;
    var$3.$max_lazy = 258;
    var$3.$nice_length = 258;
    var$3.$max_chain = 4096;
    var$3.$func = 2;
    var$2[9] = var$3;
    cjj_Deflate_z_errmsg = $rt_wrapArray(jl_String, [$rt_s(1558), $rt_s(1585), $rt_s(3), $rt_s(1586), $rt_s(1587), $rt_s(1588), $rt_s(1589), $rt_s(1590), $rt_s(1591), $rt_s(3)]);
},
otrf_VirtualFileSystemProvider = $rt_classWithoutFields(),
otrf_VirtualFileSystemProvider_instance = null,
otrf_VirtualFileSystemProvider__init_ = $this => {
    return;
},
otrf_VirtualFileSystemProvider__init_0 = () => {
    let var_0 = new otrf_VirtualFileSystemProvider();
    otrf_VirtualFileSystemProvider__init_(var_0);
    return var_0;
};
function ju_MapEntry() {
    let a = this; jl_Object.call(a);
    a.$key = null;
    a.$value0 = null;
}
let ju_MapEntry_equals = ($this, $object) => {
    let $entry, var$3, var$4;
    if ($this === $object)
        return 1;
    if (!$rt_isInstance($object, ju_Map$Entry))
        return 0;
    $entry = $object;
    $object = $this.$key;
    var$3 = $entry.$getKey();
    var$4 = $object === var$3 ? 1 : $object !== null ? $object.$equals(var$3) : var$3 !== null ? 0 : 1;
    a: {
        if (var$4) {
            $object = $this.$value0;
            $entry = $entry.$getValue();
            if ($object === $entry ? 1 : $object !== null ? $object.$equals($entry) : $entry !== null ? 0 : 1) {
                var$4 = 1;
                break a;
            }
        }
        var$4 = 0;
    }
    return var$4;
},
ju_MapEntry_getKey = $this => {
    return $this.$key;
},
ju_MapEntry_getValue = $this => {
    return $this.$value0;
},
ju_MapEntry_hashCode = $this => {
    let var$1, var$2;
    var$1 = $this.$key;
    var$2 = var$1 !== null ? var$1.$hashCode() : 0;
    var$1 = $this.$value0;
    return var$2 ^ (var$1 !== null ? var$1.$hashCode() : 0);
},
ju_MapEntry_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$key;
    var$2 = $this.$value0;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1 === null ? $rt_s(1) : var$1.$toString());
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 61;
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$2 === null ? $rt_s(1) : var$2.$toString());
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$4 = var$3.$length0;
    var$7 = var$6.length;
    if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function ju_Hashtable$Entry() {
    let a = this; ju_MapEntry.call(a);
    a.$next7 = null;
    a.$hashcode = 0;
}
let jt_DecimalFormat$FormatField = $rt_classWithoutFields(0);
function jt_DecimalFormat$TextField() {
    jl_Object.call(this);
    this.$text = null;
}
let jt_DecimalFormat$TextField_render = ($this, $format, $buffer) => {
    $format = $this.$text;
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $format);
},
jt_DecimalFormat$TextField_equals = ($this, $obj) => {
    let $other, var$3;
    if ($this === $obj)
        return 1;
    if (!($obj instanceof jt_DecimalFormat$TextField))
        return 0;
    $other = $obj;
    $obj = $this.$text;
    $other = $other.$text;
    if ($obj === $other)
        var$3 = 1;
    else if (!($other instanceof jl_String))
        var$3 = 0;
    else {
        $other = $other;
        var$3 = $obj.$nativeString !== $other.$nativeString ? 0 : 1;
    }
    return var$3;
},
jt_DecimalFormat$TextField_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$text;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1;
};
function cjj_InfBlocks() {
    let a = this; jl_Object.call(a);
    a.$mode1 = 0;
    a.$left0 = 0;
    a.$table0 = 0;
    a.$index8 = 0;
    a.$blens = null;
    a.$bb = null;
    a.$tb = null;
    a.$bl = null;
    a.$bd = null;
    a.$tl = null;
    a.$td = null;
    a.$tli = null;
    a.$tdi = null;
    a.$codes = null;
    a.$last0 = 0;
    a.$bitk = 0;
    a.$bitb = 0;
    a.$hufts = null;
    a.$window = null;
    a.$end2 = 0;
    a.$read4 = 0;
    a.$write8 = 0;
    a.$check = 0;
    a.$inftree = null;
    a.$z1 = null;
}
let cjj_InfBlocks_inflate_mask = null,
cjj_InfBlocks_border = null,
cjj_InfBlocks__init_ = ($this, $z, $w) => {
    let var$3;
    $this.$bb = $rt_createIntArray(1);
    $this.$tb = $rt_createIntArray(1);
    $this.$bl = $rt_createIntArray(1);
    $this.$bd = $rt_createIntArray(1);
    $this.$tl = $rt_createArray($rt_arraycls($rt_intcls), 1);
    $this.$td = $rt_createArray($rt_arraycls($rt_intcls), 1);
    $this.$tli = $rt_createIntArray(1);
    $this.$tdi = $rt_createIntArray(1);
    var$3 = new cjj_InfTree;
    var$3.$hn = null;
    var$3.$v0 = null;
    var$3.$c = null;
    var$3.$r0 = null;
    var$3.$u = null;
    var$3.$x1 = null;
    $this.$inftree = var$3;
    $this.$z1 = $z;
    var$3 = new cjj_InfCodes;
    var$3.$tree_index = 0;
    var$3.$z2 = $z;
    var$3.$s = $this;
    $this.$codes = var$3;
    $this.$hufts = $rt_createIntArray(4320);
    $this.$window = $rt_createByteArray($w);
    $this.$end2 = $w;
    $this.$check = $z.$istate.$wrap1 ? 1 : 0;
    $this.$mode1 = 0;
    cjj_InfBlocks_reset($this);
},
cjj_InfBlocks__init_0 = (var_0, var_1) => {
    let var_2 = new cjj_InfBlocks();
    cjj_InfBlocks__init_(var_2, var_0, var_1);
    return var_2;
},
cjj_InfBlocks_reset = $this => {
    let var$1;
    var$1 = $this.$mode1;
    var$1 != 4 && var$1 != 5;
    $this.$mode1 = 0;
    $this.$bitk = 0;
    $this.$bitb = 0;
    $this.$write8 = 0;
    $this.$read4 = 0;
    if ($this.$check)
        $this.$z1.$adler.$reset();
},
cjj_InfBlocks_proc = ($this, $r) => {
    let var$2, $p, $n, $b, $k, $q, $j, $m, var$10, $i, $t, $c, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $i_0;
    var$2 = $this.$z1;
    $p = var$2.$next_in_index;
    $n = var$2.$avail_in;
    $b = $this.$bitb;
    $k = $this.$bitk;
    $q = $this.$write8;
    $j = $this.$read4;
    $m = $q >= $j ? $this.$end2 - $q | 0 : ($j - $q | 0) - 1 | 0;
    a: {
        b: {
            c: {
                d: {
                    e: while (true) {
                        f: {
                            g: {
                                h: {
                                    i: {
                                        j: {
                                            switch ($this.$mode1) {
                                                case 2:
                                                    break f;
                                                case 9:
                                                    $this.$bitb = $b;
                                                    $this.$bitk = $k;
                                                    var$2 = $this.$z1;
                                                    var$2.$avail_in = $n;
                                                    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                    var$2.$next_in_index = $p;
                                                    $this.$write8 = $q;
                                                    return cjj_InfBlocks_inflate_flush($this, (-3));
                                                case 0:
                                                    break j;
                                                case 1:
                                                    break;
                                                case 3:
                                                    while ($k < 14) {
                                                        if (!$n) {
                                                            $this.$bitb = $b;
                                                            $this.$bitk = $k;
                                                            var$2 = $this.$z1;
                                                            var$2.$avail_in = $n;
                                                            var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                            var$2.$next_in_index = $p;
                                                            $this.$write8 = $q;
                                                            return cjj_InfBlocks_inflate_flush($this, $r);
                                                        }
                                                        $r = 0;
                                                        $n = $n + (-1) | 0;
                                                        var$10 = $this.$z1.$next_in.data;
                                                        $j = $p + 1 | 0;
                                                        $b = $b | (var$10[$p] & 255) << $k;
                                                        $k = $k + 8 | 0;
                                                        $p = $j;
                                                    }
                                                    $j = $b & 16383;
                                                    $this.$table0 = $j;
                                                    $i = $j & 31;
                                                    if ($i > 29)
                                                        break d;
                                                    $j = $j >> 5 & 31;
                                                    if ($j > 29)
                                                        break d;
                                                    k: {
                                                        l: {
                                                            $j = (258 + $i | 0) + $j | 0;
                                                            var$10 = $this.$blens;
                                                            if (var$10 !== null) {
                                                                var$10 = var$10.data;
                                                                if (var$10.length >= $j)
                                                                    break l;
                                                            }
                                                            $this.$blens = $rt_createIntArray($j);
                                                            break k;
                                                        }
                                                        $i = 0;
                                                        while (true) {
                                                            if ($i >= $j)
                                                                break k;
                                                            var$10[$i] = 0;
                                                            $i = $i + 1 | 0;
                                                        }
                                                    }
                                                    $b = $b >>> 14 | 0;
                                                    $k = $k + (-14) | 0;
                                                    $this.$index8 = 0;
                                                    $this.$mode1 = 4;
                                                    break i;
                                                case 4:
                                                    break i;
                                                case 5:
                                                    break h;
                                                case 6:
                                                    break g;
                                                case 7:
                                                    break b;
                                                case 8:
                                                    break a;
                                                default:
                                                    $this.$bitb = $b;
                                                    $this.$bitk = $k;
                                                    var$2 = $this.$z1;
                                                    var$2.$avail_in = $n;
                                                    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                    var$2.$next_in_index = $p;
                                                    $this.$write8 = $q;
                                                    return cjj_InfBlocks_inflate_flush($this, (-2));
                                            }
                                            while ($k < 32) {
                                                if (!$n) {
                                                    $this.$bitb = $b;
                                                    $this.$bitk = $k;
                                                    var$2 = $this.$z1;
                                                    var$2.$avail_in = $n;
                                                    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                    var$2.$next_in_index = $p;
                                                    $this.$write8 = $q;
                                                    return cjj_InfBlocks_inflate_flush($this, $r);
                                                }
                                                $r = 0;
                                                $n = $n + (-1) | 0;
                                                var$10 = $this.$z1.$next_in.data;
                                                $j = $p + 1 | 0;
                                                $b = $b | (var$10[$p] & 255) << $k;
                                                $k = $k + 8 | 0;
                                                $p = $j;
                                            }
                                            $j = (($b ^ (-1)) >>> 16 | 0) & 65535;
                                            $i = $b & 65535;
                                            if ($j != $i) {
                                                $this.$mode1 = 9;
                                                var$2 = $this.$z1;
                                                var$2.$msg = $rt_s(1592);
                                                $this.$bitb = $b;
                                                $this.$bitk = $k;
                                                var$2.$avail_in = $n;
                                                var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                var$2.$next_in_index = $p;
                                                $this.$write8 = $q;
                                                return cjj_InfBlocks_inflate_flush($this, (-3));
                                            }
                                            $this.$left0 = $i;
                                            $k = 0;
                                            $this.$mode1 = $i ? 2 : !$this.$last0 ? 0 : 7;
                                            $b = $k;
                                            continue e;
                                        }
                                        while ($k < 3) {
                                            if (!$n) {
                                                $this.$bitb = $b;
                                                $this.$bitk = $k;
                                                var$2 = $this.$z1;
                                                var$2.$avail_in = $n;
                                                var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                var$2.$next_in_index = $p;
                                                $this.$write8 = $q;
                                                return cjj_InfBlocks_inflate_flush($this, $r);
                                            }
                                            $r = 0;
                                            $n = $n + (-1) | 0;
                                            var$10 = $this.$z1.$next_in.data;
                                            $j = $p + 1 | 0;
                                            $b = $b | (var$10[$p] & 255) << $k;
                                            $k = $k + 8 | 0;
                                            $p = $j;
                                        }
                                        m: {
                                            $t = $b & 7;
                                            $this.$last0 = $t & 1;
                                            switch ($t >>> 1 | 0) {
                                                case 0:
                                                    $j = $b >>> 3 | 0;
                                                    $i = $k + (-3) | 0;
                                                    $c = $i & 7;
                                                    $b = $j >>> $c | 0;
                                                    $k = $i - $c | 0;
                                                    $this.$mode1 = 1;
                                                    break m;
                                                case 1:
                                                    var$10 = $this.$bl.data;
                                                    var$14 = $this.$bd.data;
                                                    var$15 = $this.$tl.data;
                                                    var$16 = $this.$td.data;
                                                    var$10[0] = 9;
                                                    var$14[0] = 5;
                                                    var$15[0] = cjj_InfTree_fixed_tl;
                                                    var$16[0] = cjj_InfTree_fixed_td;
                                                    var$17 = $this.$codes;
                                                    $i = var$10[0];
                                                    $c = var$14[0];
                                                    var$10 = var$15[0];
                                                    var$14 = var$16[0];
                                                    var$17.$mode2 = 0;
                                                    var$17.$lbits = $i << 24 >> 24;
                                                    var$17.$dbits = $c << 24 >> 24;
                                                    var$17.$ltree = var$10;
                                                    var$17.$ltree_index = 0;
                                                    var$17.$dtree = var$14;
                                                    var$17.$dtree_index = 0;
                                                    var$17.$tree = null;
                                                    $b = $b >>> 3 | 0;
                                                    $k = $k + (-3) | 0;
                                                    $this.$mode1 = 6;
                                                    break m;
                                                case 2:
                                                    $b = $b >>> 3 | 0;
                                                    $k = $k + (-3) | 0;
                                                    $this.$mode1 = 3;
                                                    break m;
                                                case 3:
                                                    $r = $b >>> 3 | 0;
                                                    $j = $k + (-3) | 0;
                                                    $this.$mode1 = 9;
                                                    var$2 = $this.$z1;
                                                    var$2.$msg = $rt_s(1593);
                                                    $this.$bitb = $r;
                                                    $this.$bitk = $j;
                                                    var$2.$avail_in = $n;
                                                    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                    var$2.$next_in_index = $p;
                                                    $this.$write8 = $q;
                                                    return cjj_InfBlocks_inflate_flush($this, (-3));
                                                default:
                                            }
                                        }
                                        continue e;
                                    }
                                    while (true) {
                                        $j = $this.$index8;
                                        if ($j >= (4 + ($this.$table0 >>> 10 | 0) | 0))
                                            break;
                                        while ($k < 3) {
                                            if (!$n) {
                                                $this.$bitb = $b;
                                                $this.$bitk = $k;
                                                var$2 = $this.$z1;
                                                var$2.$avail_in = $n;
                                                var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                var$2.$next_in_index = $p;
                                                $this.$write8 = $q;
                                                return cjj_InfBlocks_inflate_flush($this, $r);
                                            }
                                            $r = 0;
                                            $n = $n + (-1) | 0;
                                            var$10 = $this.$z1.$next_in.data;
                                            $i = $p + 1 | 0;
                                            $b = $b | (var$10[$p] & 255) << $k;
                                            $k = $k + 8 | 0;
                                            $p = $i;
                                        }
                                        var$14 = $this.$blens.data;
                                        var$10 = cjj_InfBlocks_border.data;
                                        $this.$index8 = $j + 1 | 0;
                                        var$14[var$10[$j]] = $b & 7;
                                        $b = $b >>> 3 | 0;
                                        $k = $k + (-3) | 0;
                                    }
                                    while (true) {
                                        $j = $this.$index8;
                                        if ($j >= 19)
                                            break;
                                        var$14 = $this.$blens.data;
                                        var$10 = cjj_InfBlocks_border.data;
                                        $this.$index8 = $j + 1 | 0;
                                        var$14[var$10[$j]] = 0;
                                    }
                                    var$10 = $this.$bb;
                                    var$10.data[0] = 7;
                                    $j = cjj_InfTree_inflate_trees_bits($this.$inftree, $this.$blens, var$10, $this.$tb, $this.$hufts, $this.$z1);
                                    if ($j) {
                                        if ($j == (-3)) {
                                            $this.$blens = null;
                                            $this.$mode1 = 9;
                                        }
                                        $this.$bitb = $b;
                                        $this.$bitk = $k;
                                        var$2 = $this.$z1;
                                        var$2.$avail_in = $n;
                                        var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                        var$2.$next_in_index = $p;
                                        $this.$write8 = $q;
                                        return cjj_InfBlocks_inflate_flush($this, $j);
                                    }
                                    $this.$index8 = 0;
                                    $this.$mode1 = 5;
                                }
                                while (true) {
                                    $j = $this.$table0;
                                    $i = $this.$index8;
                                    $c = $j & 31;
                                    $m = 258 + $c | 0;
                                    $j = $j >> 5 & 31;
                                    $m = $m + $j | 0;
                                    if ($i >= $m)
                                        break;
                                    $j = $this.$bb.data[0];
                                    while ($k < $j) {
                                        if (!$n) {
                                            $this.$bitb = $b;
                                            $this.$bitk = $k;
                                            var$2 = $this.$z1;
                                            var$2.$avail_in = $n;
                                            var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                            var$2.$next_in_index = $p;
                                            $this.$write8 = $q;
                                            return cjj_InfBlocks_inflate_flush($this, $r);
                                        }
                                        $r = 0;
                                        $n = $n + (-1) | 0;
                                        var$10 = $this.$z1.$next_in.data;
                                        $c = $p + 1 | 0;
                                        $b = $b | (var$10[$p] & 255) << $k;
                                        $k = $k + 8 | 0;
                                        $p = $c;
                                    }
                                    var$10 = $this.$tb.data;
                                    var$18 = $this.$hufts.data;
                                    $c = var$10[0];
                                    var$14 = cjj_InfBlocks_inflate_mask.data;
                                    var$19 = var$18[(($c + ($b & var$14[$j]) | 0) * 3 | 0) + 1 | 0];
                                    $c = var$18[((var$10[0] + ($b & var$14[var$19]) | 0) * 3 | 0) + 2 | 0];
                                    var$20 = $rt_compare($c, 16);
                                    if (var$20 < 0) {
                                        $b = $b >>> var$19 | 0;
                                        $k = $k - var$19 | 0;
                                        var$10 = $this.$blens.data;
                                        $this.$index8 = $i + 1 | 0;
                                        var$10[$i] = $c;
                                    } else {
                                        $j = $rt_compare($c, 18);
                                        $i_0 = !$j ? 7 : $c - 14 | 0;
                                        $j = $j ? 3 : 11;
                                        while ($k < (var$19 + $i_0 | 0)) {
                                            if (!$n) {
                                                $this.$bitb = $b;
                                                $this.$bitk = $k;
                                                var$2 = $this.$z1;
                                                var$2.$avail_in = $n;
                                                var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                                var$2.$next_in_index = $p;
                                                $this.$write8 = $q;
                                                return cjj_InfBlocks_inflate_flush($this, $r);
                                            }
                                            $r = 0;
                                            $n = $n + (-1) | 0;
                                            var$10 = $this.$z1.$next_in.data;
                                            $c = $p + 1 | 0;
                                            $b = $b | (var$10[$p] & 255) << $k;
                                            $k = $k + 8 | 0;
                                            $p = $c;
                                        }
                                        $c = $b >>> var$19 | 0;
                                        $t = $k - var$19 | 0;
                                        $j = $j + ($c & var$14[$i_0]) | 0;
                                        $b = $c >>> $i_0 | 0;
                                        $k = $t - $i_0 | 0;
                                        if (($i + $j | 0) > $m)
                                            break c;
                                        if (!var$20 && $i < 1)
                                            break c;
                                        $m = var$20 ? 0 : $this.$blens.data[$i - 1 | 0];
                                        while (true) {
                                            var$10 = $this.$blens.data;
                                            $c = $i + 1 | 0;
                                            var$10[$i] = $m;
                                            $j = $j + (-1) | 0;
                                            if (!$j)
                                                break;
                                            $i = $c;
                                        }
                                        $this.$index8 = $c;
                                    }
                                }
                                $this.$tb.data[0] = (-1);
                                var$10 = $this.$bl;
                                var$10.data[0] = 9;
                                var$14 = $this.$bd;
                                var$14.data[0] = 6;
                                $j = cjj_InfTree_inflate_trees_dynamic($this.$inftree, 257 + $c | 0, 1 + $j | 0, $this.$blens, var$10, var$14, $this.$tli, $this.$tdi, $this.$hufts, $this.$z1);
                                if ($j) {
                                    if ($j == (-3)) {
                                        $this.$blens = null;
                                        $this.$mode1 = 9;
                                    }
                                    $this.$bitb = $b;
                                    $this.$bitk = $k;
                                    var$2 = $this.$z1;
                                    var$2.$avail_in = $n;
                                    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                    var$2.$next_in_index = $p;
                                    $this.$write8 = $q;
                                    return cjj_InfBlocks_inflate_flush($this, $j);
                                }
                                var$2 = $this.$codes;
                                $j = $this.$bl.data[0];
                                $i = $this.$bd.data[0];
                                var$10 = $this.$hufts;
                                $m = $this.$tli.data[0];
                                $c = $this.$tdi.data[0];
                                var$2.$mode2 = 0;
                                var$2.$lbits = $j << 24 >> 24;
                                var$2.$dbits = $i << 24 >> 24;
                                var$2.$ltree = var$10;
                                var$2.$ltree_index = $m;
                                var$2.$dtree = var$10;
                                var$2.$dtree_index = $c;
                                var$2.$tree = null;
                                $this.$mode1 = 6;
                            }
                            $this.$bitb = $b;
                            $this.$bitk = $k;
                            var$2 = $this.$z1;
                            var$2.$avail_in = $n;
                            var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                            var$2.$next_in_index = $p;
                            $this.$write8 = $q;
                            $r = cjj_InfCodes_proc($this.$codes, $r);
                            if ($r != 1)
                                break e;
                            $r = 0;
                            var$2 = $this.$z1;
                            $p = var$2.$next_in_index;
                            $n = var$2.$avail_in;
                            $b = $this.$bitb;
                            $k = $this.$bitk;
                            $q = $this.$write8;
                            $j = $this.$read4;
                            $m = $q >= $j ? $this.$end2 - $q | 0 : ($j - $q | 0) - 1 | 0;
                            if ($this.$last0) {
                                $this.$mode1 = 7;
                                break b;
                            }
                            $this.$mode1 = 0;
                            continue e;
                        }
                        if (!$n) {
                            $this.$bitb = $b;
                            $this.$bitk = $k;
                            var$2 = $this.$z1;
                            var$2.$avail_in = $n;
                            var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                            var$2.$next_in_index = $p;
                            $this.$write8 = $q;
                            return cjj_InfBlocks_inflate_flush($this, $r);
                        }
                        if (!$m) {
                            $j = $this.$end2;
                            if ($q == $j) {
                                $i = $this.$read4;
                                if ($i) {
                                    $q = 0;
                                    $m = $q >= $i ? $j - $q | 0 : ($i - $q | 0) - 1 | 0;
                                }
                            }
                            if (!$m) {
                                $this.$write8 = $q;
                                $r = cjj_InfBlocks_inflate_flush($this, $r);
                                $q = $this.$write8;
                                $j = $this.$read4;
                                $m = $q >= $j ? $this.$end2 - $q | 0 : ($j - $q | 0) - 1 | 0;
                                $i = $this.$end2;
                                if ($q == $i && $j) {
                                    $q = 0;
                                    $m = $q >= $j ? $i - $q | 0 : ($j - $q | 0) - 1 | 0;
                                }
                                if (!$m) {
                                    $this.$bitb = $b;
                                    $this.$bitk = $k;
                                    var$2 = $this.$z1;
                                    var$2.$avail_in = $n;
                                    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                                    var$2.$next_in_index = $p;
                                    $this.$write8 = $q;
                                    return cjj_InfBlocks_inflate_flush($this, $r);
                                }
                            }
                        }
                        $r = 0;
                        $j = $this.$left0;
                        if ($j > $n)
                            $j = $n;
                        if ($j > $m)
                            $j = $m;
                        jl_System_fastArraycopy($this.$z1.$next_in, $p, $this.$window, $q, $j);
                        $p = $p + $j | 0;
                        $n = $n - $j | 0;
                        $q = $q + $j | 0;
                        $m = $m - $j | 0;
                        $j = $this.$left0 - $j | 0;
                        $this.$left0 = $j;
                        if ($j)
                            continue;
                        $this.$mode1 = !$this.$last0 ? 0 : 7;
                    }
                    return cjj_InfBlocks_inflate_flush($this, $r);
                }
                $this.$mode1 = 9;
                var$2 = $this.$z1;
                var$2.$msg = $rt_s(1594);
                $this.$bitb = $b;
                $this.$bitk = $k;
                var$2.$avail_in = $n;
                var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
                var$2.$next_in_index = $p;
                $this.$write8 = $q;
                return cjj_InfBlocks_inflate_flush($this, (-3));
            }
            $this.$blens = null;
            $this.$mode1 = 9;
            var$2 = $this.$z1;
            var$2.$msg = $rt_s(1595);
            $this.$bitb = $b;
            $this.$bitk = $k;
            var$2.$avail_in = $n;
            var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
            var$2.$next_in_index = $p;
            $this.$write8 = $q;
            return cjj_InfBlocks_inflate_flush($this, (-3));
        }
        $this.$write8 = $q;
        $r = cjj_InfBlocks_inflate_flush($this, $r);
        $q = $this.$write8;
        $j = $this.$read4;
        if ($j != $q) {
            $this.$bitb = $b;
            $this.$bitk = $k;
            var$2 = $this.$z1;
            var$2.$avail_in = $n;
            var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
            var$2.$next_in_index = $p;
            $this.$write8 = $q;
            return cjj_InfBlocks_inflate_flush($this, $r);
        }
        $this.$mode1 = 8;
    }
    $this.$bitb = $b;
    $this.$bitk = $k;
    var$2 = $this.$z1;
    var$2.$avail_in = $n;
    var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt($p - var$2.$next_in_index | 0));
    var$2.$next_in_index = $p;
    $this.$write8 = $q;
    return cjj_InfBlocks_inflate_flush($this, 1);
},
cjj_InfBlocks_inflate_flush = ($this, $r) => {
    let var$2, $p, $q, var$5, $n, var$7;
    var$2 = $this.$z1;
    $p = var$2.$next_out_index;
    $q = $this.$read4;
    var$5 = $this.$write8;
    if ($q > var$5)
        var$5 = $this.$end2;
    $n = var$5 - $q | 0;
    var$5 = var$2.$avail_out;
    if ($n > var$5)
        $n = var$5;
    if ($n && $r == (-5))
        $r = 0;
    var$2.$avail_out = var$5 - $n | 0;
    var$2.$total_out = Long_add(var$2.$total_out, Long_fromInt($n));
    if ($this.$check && $n > 0)
        var$2.$adler.$update0($this.$window, $q, $n);
    jl_System_fastArraycopy($this.$window, $q, $this.$z1.$next_out, $p, $n);
    var$5 = $p + $n | 0;
    var$7 = $q + $n | 0;
    $p = $this.$end2;
    if (var$7 == $p) {
        if ($this.$write8 == $p)
            $this.$write8 = 0;
        $p = $this.$write8 - 0 | 0;
        var$2 = $this.$z1;
        $q = var$2.$avail_out;
        if ($p > $q)
            $p = $q;
        if ($p && $r == (-5))
            $r = 0;
        var$2.$avail_out = $q - $p | 0;
        var$2.$total_out = Long_add(var$2.$total_out, Long_fromInt($p));
        if ($this.$check && $p > 0)
            var$2.$adler.$update0($this.$window, 0, $p);
        jl_System_fastArraycopy($this.$window, 0, $this.$z1.$next_out, var$5, $p);
        var$5 = var$5 + $p | 0;
        var$7 = 0 + $p | 0;
    }
    $this.$z1.$next_out_index = var$5;
    $this.$read4 = var$7;
    return $r;
},
cjj_InfBlocks__clinit_ = () => {
    cjj_InfBlocks_inflate_mask = $rt_createIntArrayFromData([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535]);
    cjj_InfBlocks_border = $rt_createIntArrayFromData([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
};
function jnc_IllegalCharsetNameException() {
    jl_IllegalArgumentException.call(this);
    this.$charsetName0 = null;
}
let jl_CloneNotSupportedException = $rt_classWithoutFields(jl_Exception),
jl_CloneNotSupportedException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_CloneNotSupportedException__init_0 = () => {
    let var_0 = new jl_CloneNotSupportedException();
    jl_CloneNotSupportedException__init_(var_0);
    return var_0;
};
function ju_GregorianCalendar() {
    let a = this; ju_Calendar.call(a);
    a.$gregorianCutover = Long_ZERO;
    a.$changeYear = 0;
    a.$julianSkew = 0;
    a.$isCached = 0;
    a.$cachedFields = null;
    a.$nextMidnightMillis = Long_ZERO;
    a.$lastMidnightMillis = Long_ZERO;
    a.$currentYearSkew = 0;
    a.$lastYearSkew = 0;
}
let ju_GregorianCalendar_daysInMonth = null,
ju_GregorianCalendar_daysInYear = null,
ju_GregorianCalendar_maximums = null,
ju_GregorianCalendar_minimums = null,
ju_GregorianCalendar_leastMaximums = null,
ju_GregorianCalendar__init_1 = $this => {
    let var$1, var$2, var$3, var$4, $$je;
    ju_Locale_$callClinit();
    var$1 = ju_Locale_defaultLocale;
    ju_TimeZone_$callClinit();
    if (ju_TimeZone_defaultTz === null) {
        var$2 = otcit_DateTimeZoneProvider_detectTimezone();
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = new ju_IANATimeZone;
            var$3.$id5 = var$2.$iID;
            var$3.$underlyingZone = var$2;
            var$4 = var$2.$getStandardOffset(jl_System_currentTimeMillis());
            var$3.$rawOffset = var$4;
            var$3.$diff =  -var$4 | 0;
        }
        ju_TimeZone_defaultTz = var$3;
        if (var$3 === null)
            ju_TimeZone_defaultTz = ju_TimeZone_GMT;
    }
    var$2 = ju_TimeZone_defaultTz;
    a: {
        try {
            var$3 = jl_Object_clone(var$2);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
            } else {
                throw $$e;
            }
        }
        var$3 = null;
    }
    var$3.$rawOffset = var$2.$rawOffset;
    var$3.$underlyingZone = var$2.$underlyingZone;
    ju_GregorianCalendar__init_($this, var$3, var$1);
},
ju_GregorianCalendar__init_0 = () => {
    let var_0 = new ju_GregorianCalendar();
    ju_GregorianCalendar__init_1(var_0);
    return var_0;
},
ju_GregorianCalendar__init_ = ($this, $timezone, $locale) => {
    let var$3;
    $this.$fields = $rt_createIntArray(17);
    $this.$isSet = $rt_createBooleanArray(17);
    $this.$areFieldsSet = 0;
    $this.$isTimeSet = 0;
    $this.$lenient = 1;
    $this.$zone = $timezone;
    $this.$areFieldsSet = 0;
    $this.$fields = $rt_createIntArray(17);
    $this.$isSet = $rt_createBooleanArray(17);
    $this.$areFieldsSet = 0;
    $this.$isTimeSet = 0;
    $this.$lenient = 1;
    $this.$firstDayOfWeek = ju_Calendar_resolveFirstDayOfWeek($locale);
    $this.$isCached = 0;
    $this.$minimalDaysInFirstWeek = ju_Calendar_resolveMinimalDaysInFirstWeek($locale);
    $this.$isCached = 0;
    ju_Calendar_cacheFor = $locale;
    $this.$gregorianCutover = Long_create(4184124416, 4294964450);
    $this.$changeYear = 1582;
    $this.$julianSkew = 13;
    $this.$cachedFields = $rt_createIntArrayFromData([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
    $this.$currentYearSkew = 10;
    var$3 = jl_System_currentTimeMillis();
    if (!($this.$isTimeSet && $this.$areFieldsSet && Long_eq($this.$time, var$3))) {
        $this.$time = var$3;
        $this.$isTimeSet = 1;
        $this.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields($this);
        $this.$areFieldsSet = 1;
    }
},
ju_GregorianCalendar__init_2 = (var_0, var_1) => {
    let var_2 = new ju_GregorianCalendar();
    ju_GregorianCalendar__init_(var_2, var_0, var_1);
    return var_2;
},
ju_GregorianCalendar_add = ($this, $field, $value) => {
    let $multiplier, var$4, var$5, $days, $month, var$8;
    if (!$value)
        return;
    if ($field >= 0 && $field < 15) {
        $this.$isCached = 0;
        if (!$field) {
            if (!$this.$isTimeSet) {
                ju_GregorianCalendar_computeTime($this);
                $this.$isTimeSet = 1;
            }
            if (!$this.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($this);
                $this.$areFieldsSet = 1;
            }
            if ($this.$fields.data[0] != 1) {
                if ($value <= 0)
                    return;
                ju_Calendar_set($this, 0, 1);
            } else {
                if ($value >= 0)
                    return;
                ju_Calendar_set($this, 0, 0);
            }
            if (!$this.$isTimeSet) {
                ju_GregorianCalendar_computeTime($this);
                $this.$isTimeSet = 1;
            }
            if (!$this.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($this);
                $this.$areFieldsSet = 1;
            }
            return;
        }
        if ($field != 1 && $field != 2) {
            $multiplier = Long_ZERO;
            if (!$this.$isTimeSet) {
                ju_GregorianCalendar_computeTime($this);
                $this.$isTimeSet = 1;
            }
            a: {
                switch ($field) {
                    case 3:
                    case 4:
                    case 8:
                        $multiplier = Long_fromInt(604800000);
                        break a;
                    case 5:
                    case 6:
                    case 7:
                        $multiplier = Long_fromInt(86400000);
                        break a;
                    case 9:
                        $multiplier = Long_fromInt(43200000);
                        break a;
                    case 10:
                    case 11:
                        $this.$time = Long_add($this.$time, Long_mul(Long_fromInt($value), Long_fromInt(3600000)));
                        break a;
                    case 12:
                        $this.$time = Long_add($this.$time, Long_mul(Long_fromInt($value), Long_fromInt(60000)));
                        break a;
                    case 13:
                        $this.$time = Long_add($this.$time, Long_mul(Long_fromInt($value), Long_fromInt(1000)));
                        break a;
                    case 14:
                        $this.$time = Long_add($this.$time, Long_fromInt($value));
                        break a;
                    default:
                }
            }
            if (Long_gt($multiplier, Long_ZERO)) {
                var$4 = $this.$time;
                var$5 = $this.$zone;
                $days = (var$5.$rawOffset + var$5.$diff | 0) + var$5.$underlyingZone.$getOffset0(var$4) | 0;
                var$4 = Long_add($this.$time, Long_mul(Long_fromInt($value), $multiplier));
                $this.$time = var$4;
                var$5 = $this.$zone;
                $value = (var$5.$rawOffset + var$5.$diff | 0) + var$5.$underlyingZone.$getOffset0(var$4) | 0;
                if ($value != $days)
                    $this.$time = Long_add($this.$time, Long_fromInt($days - $value | 0));
            }
            $this.$areFieldsSet = 0;
            if (!$this.$isTimeSet) {
                ju_GregorianCalendar_computeTime($this);
                $this.$isTimeSet = 1;
            }
            if (!$this.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($this);
                $this.$areFieldsSet = 1;
            }
            return;
        }
        if (!$this.$isTimeSet) {
            ju_GregorianCalendar_computeTime($this);
            $this.$isTimeSet = 1;
        }
        if (!$this.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($this);
            $this.$areFieldsSet = 1;
        }
        if ($field == 2) {
            $month = $this.$fields.data[2] + $value | 0;
            if ($month >= 0)
                $value = $month / 12 | 0;
            else {
                $value = ($month - 11 | 0) / 12 | 0;
                $month = 12 + ($month % 12 | 0) | 0;
            }
            ju_Calendar_set($this, 2, $month % 12 | 0);
        }
        ju_Calendar_set($this, 1, $this.$fields.data[1] + $value | 0);
        $field = ju_GregorianCalendar_isLeapYear($this, $this.$fields.data[1]);
        var$8 = $this.$fields.data;
        $value = var$8[2];
        $days = $field && $value == 1 ? ju_GregorianCalendar_daysInMonth.data[$value] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$value];
        if (var$8[5] > $days)
            ju_Calendar_set($this, 5, $days);
        if (!$this.$isTimeSet) {
            ju_GregorianCalendar_computeTime($this);
            $this.$isTimeSet = 1;
        }
        if (!$this.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($this);
            $this.$areFieldsSet = 1;
        }
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
ju_GregorianCalendar_fullFieldsCalc = ($this, $timeVal, $millis, $zoneOffset) => {
    let $days, var$5, var$6, $dayOfYear, var$8, $month, $leapYear, $date, var$12, $week, var$14, $daysFromStart;
    $days = Long_div($timeVal, Long_fromInt(86400000));
    if ($millis < 0) {
        $millis = $millis + 86400000 | 0;
        $days = Long_sub($days, Long_fromInt(1));
    }
    $millis = $millis + $zoneOffset | 0;
    while ($millis < 0) {
        $millis = $millis + 86400000 | 0;
        $days = Long_sub($days, Long_fromInt(1));
    }
    while ($millis >= 86400000) {
        $millis = $millis - 86400000 | 0;
        $days = Long_add($days, Long_fromInt(1));
    }
    var$5 = Long_fromInt($zoneOffset);
    var$6 = Long_add($timeVal, var$5);
    $dayOfYear = ju_GregorianCalendar_computeYearAndDay($this, $days, var$6);
    var$8 = $this.$fields.data;
    var$8[6] = $dayOfYear;
    if (var$8[1] == $this.$changeYear && Long_le($this.$gregorianCutover, var$6))
        $dayOfYear = $dayOfYear + $this.$currentYearSkew | 0;
    $month = $dayOfYear / 32 | 0;
    $leapYear = ju_GregorianCalendar_isLeapYear($this, var$8[1]);
    $date = $dayOfYear - ($leapYear && $month > 1 ? ju_GregorianCalendar_daysInYear.data[$month] + 1 | 0 : ju_GregorianCalendar_daysInYear.data[$month]) | 0;
    if ($date > ($leapYear && $month == 1 ? ju_GregorianCalendar_daysInMonth.data[$month] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$month])) {
        $date = $date - ($leapYear && $month == 1 ? ju_GregorianCalendar_daysInMonth.data[$month] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$month]) | 0;
        $month = $month + 1 | 0;
    }
    var$8 = $this.$fields;
    var$6 = Long_sub($days, Long_fromInt(3));
    $dayOfYear = Long_lo(Long_rem(var$6, Long_fromInt(7)));
    if (Long_lt(var$6, Long_ZERO) && $dayOfYear < 0)
        $dayOfYear = $dayOfYear + 7 | 0;
    var$8.data[7] = $dayOfYear + 1 | 0;
    var$12 = $this.$zone;
    $week = (var$12.$rawOffset + var$12.$diff | 0) + var$12.$underlyingZone.$getOffset0($timeVal) | 0;
    var$8 = $this.$fields.data;
    if (var$8[1] > 0)
        $week = $week - $zoneOffset | 0;
    var$8[16] = $week;
    if (!$week)
        var$14 = $days;
    else {
        $millis = $millis + $week | 0;
        if ($millis < 0) {
            $millis = $millis + 86400000 | 0;
            var$14 = Long_sub($days, Long_fromInt(1));
        } else if ($millis < 86400000)
            var$14 = $days;
        else {
            $millis = $millis - 86400000 | 0;
            var$14 = Long_add($days, Long_fromInt(1));
        }
        if (Long_ne($days, var$14)) {
            $days = Long_add(Long_sub($timeVal, var$5), Long_fromInt($week));
            $week = ju_GregorianCalendar_computeYearAndDay($this, var$14, $days);
            var$8 = $this.$fields.data;
            var$8[6] = $week;
            if (var$8[1] == $this.$changeYear && Long_le($this.$gregorianCutover, $days))
                $week = $week + $this.$currentYearSkew | 0;
            $month = $week / 32 | 0;
            $leapYear = ju_GregorianCalendar_isLeapYear($this, var$8[1]);
            $date = $week - ($leapYear && $month > 1 ? ju_GregorianCalendar_daysInYear.data[$month] + 1 | 0 : ju_GregorianCalendar_daysInYear.data[$month]) | 0;
            if ($date > ($leapYear && $month == 1 ? ju_GregorianCalendar_daysInMonth.data[$month] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$month])) {
                $date = $date - ($leapYear && $month == 1 ? ju_GregorianCalendar_daysInMonth.data[$month] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$month]) | 0;
                $month = $month + 1 | 0;
            }
            var$8 = $this.$fields;
            $timeVal = Long_sub(var$14, Long_fromInt(3));
            $daysFromStart = Long_lo(Long_rem($timeVal, Long_fromInt(7)));
            if (Long_lt($timeVal, Long_ZERO) && $daysFromStart < 0)
                $daysFromStart = $daysFromStart + 7 | 0;
            var$8.data[7] = $daysFromStart + 1 | 0;
        }
    }
    var$8 = $this.$fields.data;
    var$8[14] = $millis % 1000 | 0;
    $millis = $millis / 1000 | 0;
    var$8[13] = $millis % 60 | 0;
    $millis = $millis / 60 | 0;
    var$8[12] = $millis % 60 | 0;
    var$8[11] = ($millis / 60 | 0) % 24 | 0;
    var$8[9] = var$8[11] <= 11 ? 0 : 1;
    var$8[10] = var$8[11] % 12 | 0;
    if (var$8[1] > 0)
        var$8[0] = 1;
    else {
        var$8[0] = 0;
        var$8[1] = ( -var$8[1] | 0) + 1 | 0;
    }
    var$8[2] = $month;
    var$8[5] = $date;
    $zoneOffset = $date - 1 | 0;
    var$8[8] = ($zoneOffset / 7 | 0) + 1 | 0;
    $timeVal = Long_sub(Long_sub(var$14, Long_fromInt($date)), Long_fromInt(2));
    $days = Long_fromInt($this.$firstDayOfWeek - 1 | 0);
    $timeVal = Long_sub($timeVal, $days);
    $millis = Long_lo(Long_rem($timeVal, Long_fromInt(7)));
    if (Long_lt($timeVal, Long_ZERO) && $millis < 0)
        $millis = $millis + 7 | 0;
    var$8[4] = (($zoneOffset + $millis | 0) / 7 | 0) + 1 | 0;
    $timeVal = Long_sub(Long_sub(Long_sub(var$14, Long_fromInt(3)), Long_fromInt(var$8[6] - 1 | 0)), $days);
    $daysFromStart = Long_lo(Long_rem($timeVal, Long_fromInt(7)));
    if (Long_lt($timeVal, Long_ZERO) && $daysFromStart < 0)
        $daysFromStart = $daysFromStart + 7 | 0;
    $millis = ((var$8[6] - 1 | 0) + $daysFromStart | 0) / 7 | 0;
    $zoneOffset = 7 - $daysFromStart | 0;
    $dayOfYear = $this.$minimalDaysInFirstWeek;
    $week = $millis + ($zoneOffset < $dayOfYear ? 0 : 1) | 0;
    if (!$week) {
        $timeVal = Long_fromInt($daysFromStart - (!ju_GregorianCalendar_isLeapYear($this, var$8[1] - 1 | 0) ? 1 : 2) | 0);
        $daysFromStart = Long_lo(Long_rem($timeVal, Long_fromInt(7)));
        if (Long_lt($timeVal, Long_ZERO) && $daysFromStart < 0)
            $daysFromStart = $daysFromStart + 7 | 0;
        var$8[3] = (7 - $daysFromStart | 0) < $this.$minimalDaysInFirstWeek ? 52 : 53;
    } else {
        $millis = var$8[6];
        $zoneOffset = !$leapYear ? 366 : 367;
        $timeVal = Long_fromInt($daysFromStart + (!$leapYear ? 1 : 2) | 0);
        $month = Long_lo(Long_rem($timeVal, Long_fromInt(7)));
        if (Long_lt($timeVal, Long_ZERO) && $month < 0)
            $month = $month + 7 | 0;
        if ($millis < ($zoneOffset - $month | 0))
            var$8[3] = $week;
        else {
            $timeVal = Long_fromInt($daysFromStart + (!$leapYear ? 1 : 2) | 0);
            $daysFromStart = Long_lo(Long_rem($timeVal, Long_fromInt(7)));
            if (Long_lt($timeVal, Long_ZERO) && $daysFromStart < 0)
                $daysFromStart = $daysFromStart + 7 | 0;
            if ((7 - $daysFromStart | 0) >= $dayOfYear)
                $week = 1;
            var$8[3] = $week;
        }
    }
},
ju_GregorianCalendar_cachedFieldsCheckAndGet = ($this, $timeVal, $newTimeMillis, $newTimeMillisAdjusted, $millis, $zoneOffset) => {
    let var$6, $dstOffset, var$8, var$9, var$10;
    a: {
        b: {
            var$6 = $this.$fields.data;
            $dstOffset = var$6[16];
            if ($this.$isCached) {
                var$8 = $this.$nextMidnightMillis;
                if (Long_lt($newTimeMillis, var$8)) {
                    var$9 = $this.$lastMidnightMillis;
                    if (Long_gt($newTimeMillis, var$9)) {
                        var$10 = $this.$cachedFields.data;
                        if (var$10[4] == $zoneOffset && !(!$dstOffset && Long_ge($newTimeMillisAdjusted, var$8))) {
                            if (!$dstOffset)
                                break b;
                            if (Long_gt($newTimeMillisAdjusted, var$9))
                                break b;
                        }
                    }
                }
            }
            ju_GregorianCalendar_fullFieldsCalc($this, $timeVal, $millis, $zoneOffset);
            $this.$isCached = 0;
            break a;
        }
        var$6[1] = var$10[0];
        var$6[2] = var$10[1];
        var$6[5] = var$10[2];
        var$6[7] = var$10[3];
        var$6[0] = var$10[5];
        var$6[3] = var$10[6];
        var$6[4] = var$10[7];
        var$6[6] = var$10[8];
        var$6[8] = var$10[9];
    }
},
ju_GregorianCalendar_computeFields = $this => {
    let var$1, var$2, var$3, var$4, $millis, var$6, $dstOffset, $offset, $newTime, $i, var$11;
    var$1 = $this.$time;
    var$2 = $this.$zone;
    var$3 = (var$2.$rawOffset + var$2.$diff | 0) + var$2.$underlyingZone.$getOffset0(var$1) | 0;
    if (!$this.$isSet.data[15])
        $this.$fields.data[15] = var$3;
    var$4 = $this.$time;
    $millis = Long_lo(Long_rem(var$4, Long_fromInt(86400000)));
    var$6 = $this.$fields.data;
    $dstOffset = var$6[16];
    $offset = var$3 + $dstOffset | 0;
    $newTime = Long_add(var$4, Long_fromInt($offset));
    $i = Long_compare(var$4, Long_ZERO);
    if ($i > 0 && Long_lt($newTime, Long_ZERO) && $offset > 0)
        $newTime = Long_create(4294967295, 2147483647);
    else if ($i < 0 && Long_gt($newTime, Long_ZERO) && $offset < 0)
        $newTime = Long_create(0, 2147483648);
    if (!$this.$isCached)
        ju_GregorianCalendar_fullFieldsCalc($this, var$4, $millis, var$3);
    else {
        $offset = (($millis >= 0 ? $millis : $millis + 86400000 | 0) + var$3 | 0) + $dstOffset | 0;
        if ($offset < 0)
            $offset = $offset + 86400000 | 0;
        else if ($offset >= 86400000)
            $offset = $offset - 86400000 | 0;
        var$6[14] = $offset % 1000 | 0;
        $offset = $offset / 1000 | 0;
        var$6[13] = $offset % 60 | 0;
        $offset = $offset / 60 | 0;
        var$6[12] = $offset % 60 | 0;
        var$6[11] = ($offset / 60 | 0) % 24 | 0;
        var$6[9] = var$6[11] <= 11 ? 0 : 1;
        var$6[10] = var$6[11] % 12 | 0;
        $offset = Long_compare($newTime, Long_ZERO);
        ju_GregorianCalendar_cachedFieldsCheckAndGet($this, var$4, $newTime, $offset > 0 && $offset < 0 && !$dstOffset ? Long_create(4294967295, 2147483647) : $offset >= 0 ? $newTime : $offset <= 0 ? $newTime : $dstOffset ? Long_create(0, 2147483648) : $newTime, $millis, var$3);
    }
    $i = 0;
    while ($i < 17) {
        $this.$isSet.data[$i] = 1;
        $i = $i + 1 | 0;
    }
    if (!$this.$isCached && Long_ne($newTime, Long_create(4294967295, 2147483647)) && Long_ne($newTime, Long_create(0, 2147483648))) {
        var$11 = $this.$cachedFields.data;
        var$6 = $this.$fields.data;
        var$11[0] = var$6[1];
        var$11[1] = var$6[2];
        var$11[2] = var$6[5];
        var$11[3] = var$6[7];
        var$11[4] = var$3;
        var$11[5] = var$6[0];
        var$11[6] = var$6[3];
        var$11[7] = var$6[4];
        var$11[8] = var$6[6];
        var$11[9] = var$6[8];
        $this.$nextMidnightMillis = Long_add($newTime, Long_fromInt(((0 + ((((23 - var$6[11] | 0) * 60 | 0) * 60 | 0) * 1000 | 0) | 0) + (((59 - var$6[12] | 0) * 60 | 0) * 1000 | 0) | 0) + ((59 - var$6[13] | 0) * 1000 | 0) | 0));
        $this.$lastMidnightMillis = Long_sub($newTime, Long_fromInt(((((var$6[11] * 60 | 0) * 60 | 0) * 1000 | 0) + ((var$6[12] * 60 | 0) * 1000 | 0) | 0) + (var$6[13] * 1000 | 0) | 0));
        $this.$isCached = 1;
    }
},
ju_GregorianCalendar_computeTime = $this => {
    let var$1, var$2, var$3, $hour, $timeVal, $year, $weekMonthSet, $useMonth, $useWeekYear, $days, var$11, $skew, $dayOfWeek, var$14, $skew_0, $leapYear, $month, $useDate;
    a: {
        if (!$this.$lenient) {
            b: {
                c: {
                    var$1 = $this.$isSet.data;
                    if (var$1[11]) {
                        var$2 = $this.$fields.data;
                        if (var$2[11] >= 0 && var$2[11] <= 23)
                            break c;
                        var$3 = new jl_IllegalArgumentException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    if (var$1[10]) {
                        var$2 = $this.$fields.data;
                        if (var$2[10] < 0)
                            break b;
                        if (var$2[10] > 11)
                            break b;
                    }
                }
                d: {
                    if (var$1[12]) {
                        var$2 = $this.$fields.data;
                        if (var$2[12] < 0)
                            break d;
                        if (var$2[12] > 59)
                            break d;
                    }
                    e: {
                        if (var$1[13]) {
                            var$2 = $this.$fields.data;
                            if (var$2[13] < 0)
                                break e;
                            if (var$2[13] > 59)
                                break e;
                        }
                        f: {
                            if (var$1[14]) {
                                var$2 = $this.$fields.data;
                                if (var$2[14] < 0)
                                    break f;
                                if (var$2[14] > 999)
                                    break f;
                            }
                            if (var$1[3]) {
                                var$2 = $this.$fields.data;
                                if (!(var$2[3] >= 1 && var$2[3] <= 53)) {
                                    var$3 = new jl_IllegalArgumentException;
                                    var$3.$suppressionEnabled = 1;
                                    var$3.$writableStackTrace = 1;
                                    $rt_throw(var$3);
                                }
                            }
                            g: {
                                if (var$1[7]) {
                                    var$2 = $this.$fields.data;
                                    if (var$2[7] < 1)
                                        break g;
                                    if (var$2[7] > 7)
                                        break g;
                                }
                                if (var$1[8]) {
                                    var$2 = $this.$fields.data;
                                    if (!(var$2[8] >= 1 && var$2[8] <= 6)) {
                                        var$3 = new jl_IllegalArgumentException;
                                        var$3.$suppressionEnabled = 1;
                                        var$3.$writableStackTrace = 1;
                                        $rt_throw(var$3);
                                    }
                                }
                                h: {
                                    if (var$1[4]) {
                                        var$2 = $this.$fields.data;
                                        if (var$2[4] < 1)
                                            break h;
                                        if (var$2[4] > 6)
                                            break h;
                                    }
                                    if (var$1[9]) {
                                        var$2 = $this.$fields.data;
                                        if (var$2[9] && var$2[9] != 1) {
                                            var$3 = new jl_IllegalArgumentException;
                                            var$3.$suppressionEnabled = 1;
                                            var$3.$writableStackTrace = 1;
                                            $rt_throw(var$3);
                                        }
                                    }
                                    if (var$1[10]) {
                                        var$2 = $this.$fields.data;
                                        if (!(var$2[10] >= 0 && var$2[10] <= 11)) {
                                            var$3 = new jl_IllegalArgumentException;
                                            var$3.$suppressionEnabled = 1;
                                            var$3.$writableStackTrace = 1;
                                            $rt_throw(var$3);
                                        }
                                    }
                                    i: {
                                        if (var$1[1]) {
                                            if (var$1[0]) {
                                                var$2 = $this.$fields.data;
                                                if (!var$2[0] && !(var$2[1] >= 1 && var$2[1] <= 292269054)) {
                                                    var$3 = new jl_IllegalArgumentException;
                                                    var$3.$suppressionEnabled = 1;
                                                    var$3.$writableStackTrace = 1;
                                                    $rt_throw(var$3);
                                                }
                                            }
                                            var$2 = $this.$fields.data;
                                            if (var$2[1] < 1)
                                                break i;
                                            if (var$2[1] > 292278994)
                                                break i;
                                        }
                                        if (!var$1[2])
                                            break a;
                                        var$1 = $this.$fields.data;
                                        if (var$1[2] >= 0 && var$1[2] <= 11)
                                            break a;
                                        var$3 = new jl_IllegalArgumentException;
                                        var$3.$suppressionEnabled = 1;
                                        var$3.$writableStackTrace = 1;
                                        $rt_throw(var$3);
                                    }
                                    var$3 = new jl_IllegalArgumentException;
                                    var$3.$suppressionEnabled = 1;
                                    var$3.$writableStackTrace = 1;
                                    $rt_throw(var$3);
                                }
                                var$3 = new jl_IllegalArgumentException;
                                var$3.$suppressionEnabled = 1;
                                var$3.$writableStackTrace = 1;
                                $rt_throw(var$3);
                            }
                            var$3 = new jl_IllegalArgumentException;
                            var$3.$suppressionEnabled = 1;
                            var$3.$writableStackTrace = 1;
                            $rt_throw(var$3);
                        }
                        var$3 = new jl_IllegalArgumentException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    var$3 = new jl_IllegalArgumentException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                }
                var$3 = new jl_IllegalArgumentException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            $rt_throw(var$3);
        }
    }
    $hour = Long_ZERO;
    var$1 = $this.$isSet.data;
    if (var$1[11] && $this.$lastTimeFieldSet != 10)
        $hour = Long_fromInt($this.$fields.data[11]);
    else if (var$1[10]) {
        var$2 = $this.$fields.data;
        $hour = Long_fromInt((var$2[9] * 12 | 0) + var$2[10] | 0);
    }
    $timeVal = Long_mul($hour, Long_fromInt(3600000));
    if (var$1[12])
        $timeVal = Long_add($timeVal, Long_mul(Long_fromInt($this.$fields.data[12]), Long_fromInt(60000)));
    if (var$1[13])
        $timeVal = Long_add($timeVal, Long_mul(Long_fromInt($this.$fields.data[13]), Long_fromInt(1000)));
    if (var$1[14])
        $timeVal = Long_add($timeVal, Long_fromInt($this.$fields.data[14]));
    $year = !var$1[1] ? 1970 : $this.$fields.data[1];
    if (var$1[0]) {
        var$2 = $this.$fields.data;
        if (var$2[0] && var$2[0] != 1) {
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            $rt_throw(var$3);
        }
        if (!var$2[0])
            $year = 1 - $year | 0;
    }
    $weekMonthSet = !var$1[4] && !var$1[8] ? 0 : 1;
    $useMonth = !(!var$1[5] && !var$1[2] && !$weekMonthSet) && $this.$lastDateFieldSet != 6 ? 1 : 0;
    if ($useMonth) {
        $useWeekYear = $this.$lastDateFieldSet;
        if (!($useWeekYear != 7 && $useWeekYear != 3)) {
            if (var$1[3] && var$1[7])
                $useMonth = $useWeekYear != 3 && $weekMonthSet && var$1[7] ? 1 : 0;
            else if (var$1[6])
                $useMonth = var$1[5] && var$1[2] ? 1 : 0;
        }
    }
    if (!$useMonth) {
        $useWeekYear = var$1[3] && $this.$lastDateFieldSet != 6 ? 1 : 0;
        if ($useWeekYear && var$1[6])
            $useWeekYear = var$1[7];
        $days = ju_GregorianCalendar_daysFromBaseYear($this, $year);
        if (!$useWeekYear) {
            var$1 = $this.$isSet.data;
            if (var$1[6]) {
                if (!$this.$lenient) {
                    var$1 = $this.$fields.data;
                    if (!(var$1[6] >= 1 && var$1[6] <= (365 + (!ju_GregorianCalendar_isLeapYear($this, $year) ? 0 : 1) | 0))) {
                        var$3 = new jl_IllegalArgumentException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                }
                $days = Long_add($days, Long_fromInt($this.$fields.data[6] - 1 | 0));
            } else if (var$1[7]) {
                var$11 = Long_sub(Long_fromInt($this.$fields.data[7] - 1 | 0), Long_sub($days, Long_fromInt(3)));
                $skew = Long_lo(Long_rem(var$11, Long_fromInt(7)));
                if (Long_lt(var$11, Long_ZERO) && $skew < 0)
                    $skew = $skew + 7 | 0;
                $days = Long_add($days, Long_fromInt($skew));
            }
        } else {
            $dayOfWeek = !$this.$isSet.data[7] ? $this.$firstDayOfWeek - 1 | 0 : $this.$fields.data[7] - 1 | 0;
            var$11 = Long_sub($days, Long_fromInt(3));
            var$14 = Long_sub(var$11, Long_fromInt($this.$firstDayOfWeek - 1 | 0));
            $skew = Long_lo(Long_rem(var$14, Long_fromInt(7)));
            if (Long_lt(var$14, Long_ZERO) && $skew < 0)
                $skew = $skew + 7 | 0;
            $skew_0 = ($this.$fields.data[3] - 1 | 0) * 7 | 0;
            var$11 = Long_sub(Long_fromInt($skew + $dayOfWeek | 0), var$11);
            $leapYear = Long_lo(Long_rem(var$11, Long_fromInt(7)));
            if (Long_lt(var$11, Long_ZERO) && $leapYear < 0)
                $leapYear = $leapYear + 7 | 0;
            $days = Long_add($days, Long_fromInt(($skew_0 + $leapYear | 0) - $skew | 0));
            if ((7 - $skew | 0) < $this.$minimalDaysInFirstWeek)
                $days = Long_add($days, Long_fromInt(7));
        }
    } else {
        $month = $this.$fields.data[2];
        $year = $year + ($month / 12 | 0) | 0;
        $skew_0 = $month % 12 | 0;
        if ($skew_0 < 0) {
            $year = $year + (-1) | 0;
            $skew_0 = $skew_0 + 12 | 0;
        }
        $leapYear = ju_GregorianCalendar_isLeapYear($this, $year);
        $days = Long_add(ju_GregorianCalendar_daysFromBaseYear($this, $year), Long_fromInt($leapYear && $skew_0 > 1 ? ju_GregorianCalendar_daysInYear.data[$skew_0] + 1 | 0 : ju_GregorianCalendar_daysInYear.data[$skew_0]));
        var$1 = $this.$isSet.data;
        $useDate = var$1[5];
        if ($useDate) {
            $useWeekYear = $this.$lastDateFieldSet;
            if (!($useWeekYear != 7 && $useWeekYear != 4 && $useWeekYear != 8))
                $useDate = var$1[7] && $weekMonthSet ? 0 : 1;
        }
        if ($useDate) {
            if (!$this.$lenient) {
                var$1 = $this.$fields.data;
                if (!(var$1[5] >= 1 && var$1[5] <= ($leapYear && $skew_0 == 1 ? ju_GregorianCalendar_daysInMonth.data[$skew_0] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$skew_0]))) {
                    var$3 = new jl_IllegalArgumentException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                }
            }
            $days = Long_add($days, Long_fromInt($this.$fields.data[5] - 1 | 0));
        } else {
            $dayOfWeek = !var$1[7] ? $this.$firstDayOfWeek - 1 | 0 : $this.$fields.data[7] - 1 | 0;
            if (var$1[4] && $this.$lastDateFieldSet != 8) {
                var$11 = Long_sub(Long_sub($days, Long_fromInt(3)), Long_fromInt($this.$firstDayOfWeek - 1 | 0));
                $skew_0 = Long_lo(Long_rem(var$11, Long_fromInt(7)));
                if (Long_lt(var$11, Long_ZERO) && $skew_0 < 0)
                    $skew_0 = $skew_0 + 7 | 0;
                $leapYear = ($this.$fields.data[4] - 1 | 0) * 7 | 0;
                $hour = Long_sub(Long_fromInt($skew_0 + $dayOfWeek | 0), Long_sub($days, Long_fromInt(2)));
                $useWeekYear = Long_lo(Long_rem($hour, Long_fromInt(7)));
                if (Long_lt($hour, Long_ZERO) && $useWeekYear < 0)
                    $useWeekYear = $useWeekYear + 7 | 0;
                $days = Long_add($days, Long_fromInt(($leapYear + $useWeekYear | 0) - $skew_0 | 0));
            } else if (var$1[8]) {
                var$2 = $this.$fields.data;
                if (var$2[8] >= 0) {
                    var$11 = Long_sub(Long_fromInt($dayOfWeek), Long_sub($days, Long_fromInt(3)));
                    $skew = Long_lo(Long_rem(var$11, Long_fromInt(7)));
                    if (Long_lt(var$11, Long_ZERO) && $skew < 0)
                        $skew = $skew + 7 | 0;
                    $days = Long_add($days, Long_fromInt($skew + ((var$2[8] - 1 | 0) * 7 | 0) | 0));
                } else {
                    $weekMonthSet = $leapYear && $skew_0 == 1 ? ju_GregorianCalendar_daysInMonth.data[$skew_0] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$skew_0];
                    var$11 = Long_sub(Long_fromInt($dayOfWeek), Long_sub(Long_add($days, Long_fromInt($leapYear && $skew_0 == 1 ? ju_GregorianCalendar_daysInMonth.data[$skew_0] + 1 | 0 : ju_GregorianCalendar_daysInMonth.data[$skew_0])), Long_fromInt(3)));
                    $skew = Long_lo(Long_rem(var$11, Long_fromInt(7)));
                    if (Long_lt(var$11, Long_ZERO) && $skew < 0)
                        $skew = $skew + 7 | 0;
                    $days = Long_add($days, Long_fromInt(($weekMonthSet + $skew | 0) + (var$2[8] * 7 | 0) | 0));
                }
            } else if (var$1[7]) {
                var$11 = Long_sub($days, Long_fromInt(3));
                var$14 = Long_sub(var$11, Long_fromInt($this.$firstDayOfWeek - 1 | 0));
                $skew = Long_lo(Long_rem(var$14, Long_fromInt(7)));
                if (Long_lt(var$14, Long_ZERO) && $skew < 0)
                    $skew = $skew + 7 | 0;
                var$11 = Long_sub(Long_fromInt($skew + $dayOfWeek | 0), var$11);
                $skew_0 = Long_lo(Long_rem(var$11, Long_fromInt(7)));
                if (Long_lt(var$11, Long_ZERO) && $skew_0 < 0)
                    $skew_0 = $skew_0 + 7 | 0;
                var$11 = Long_fromInt($skew_0 - $skew | 0);
                $skew = Long_lo(Long_rem(var$11, Long_fromInt(7)));
                if (Long_lt(var$11, Long_ZERO) && $skew < 0)
                    $skew = $skew + 7 | 0;
                $days = Long_add($days, Long_fromInt($skew));
            }
        }
    }
    $this.$lastDateFieldSet = 0;
    $hour = Long_add($timeVal, Long_mul($days, Long_fromInt(86400000)));
    $useWeekYear = $this.$changeYear;
    if ($year == $useWeekYear) {
        $timeVal = $this.$gregorianCutover;
        var$11 = Long_mul(Long_fromInt((($useWeekYear / 100 | 0) - ($useWeekYear / 400 | 0) | 0) - 2 | 0), Long_fromInt(86400000));
        if (Long_ge($hour, Long_add($timeVal, var$11)))
            $hour = Long_sub($hour, var$11);
    }
    var$3 = $this.$zone;
    $this.$time = Long_sub($hour, Long_fromInt((var$3.$rawOffset + var$3.$diff | 0) + var$3.$underlyingZone.$getOffset0($hour) | 0));
},
ju_GregorianCalendar_computeYearAndDay = ($this, $dayCount, $localTime) => {
    let $year, var$4, var$5, var$6;
    $year = 1970;
    $localTime = Long_ge($localTime, $this.$gregorianCutover) ? $dayCount : Long_sub($dayCount, Long_fromInt($this.$julianSkew));
    while (true) {
        var$4 = Long_lo(Long_div($localTime, Long_fromInt(365)));
        if (!var$4)
            break;
        $year = $year + var$4 | 0;
        $localTime = Long_sub($dayCount, ju_GregorianCalendar_daysFromBaseYear($this, $year));
    }
    if (Long_lt($localTime, Long_ZERO)) {
        $year = $year - 1 | 0;
        var$5 = !ju_GregorianCalendar_isLeapYear($this, $year) ? 365 : 366;
        var$6 = $this.$changeYear;
        if ($year == var$6)
            var$5 = var$5 - $this.$currentYearSkew | 0;
        if ($year == (var$6 - 1 | 0))
            var$5 = var$5 - $this.$lastYearSkew | 0;
        $localTime = Long_add($localTime, Long_fromInt(var$5));
    }
    $this.$fields.data[1] = $year;
    return Long_lo($localTime) + 1 | 0;
},
ju_GregorianCalendar_daysFromBaseYear = ($this, $iyear) => {
    let $year, $days, var$4;
    $year = Long_fromInt($iyear);
    if (Long_lt($year, Long_fromInt(1970))) {
        if (Long_le($year, Long_fromInt($this.$changeYear)))
            return Long_add(Long_add(Long_mul(Long_sub($year, Long_fromInt(1970)), Long_fromInt(365)), Long_div(Long_sub($year, Long_fromInt(1972)), Long_fromInt(4))), Long_fromInt($this.$julianSkew));
        $days = Long_add(Long_mul(Long_sub($year, Long_fromInt(1970)), Long_fromInt(365)), Long_div(Long_sub($year, Long_fromInt(1972)), Long_fromInt(4)));
        $year = Long_sub($year, Long_fromInt(2000));
        return Long_add(Long_sub($days, Long_div($year, Long_fromInt(100))), Long_div($year, Long_fromInt(400)));
    }
    $days = Long_add(Long_mul(Long_sub($year, Long_fromInt(1970)), Long_fromInt(365)), Long_div(Long_sub($year, Long_fromInt(1969)), Long_fromInt(4)));
    var$4 = $this.$changeYear;
    $iyear = Long_compare($year, Long_fromInt(var$4));
    return $iyear > 0 ? Long_sub($days, Long_sub(Long_div(Long_sub($year, Long_fromInt(1901)), Long_fromInt(100)), Long_div(Long_sub($year, Long_fromInt(1601)), Long_fromInt(400)))) : !$iyear ? Long_add($days, Long_fromInt($this.$currentYearSkew)) : Long_ne($year, Long_fromInt(var$4 - 1 | 0)) ? Long_add($days, Long_fromInt($this.$julianSkew)) : Long_add($days, Long_fromInt($this.$lastYearSkew));
},
ju_GregorianCalendar_isLeapYear = ($this, $year) => {
    if ($year <= $this.$changeYear)
        return $year % 4 | 0 ? 0 : 1;
    a: {
        b: {
            if (!($year % 4 | 0)) {
                if ($year % 100 | 0)
                    break b;
                if (!($year % 400 | 0))
                    break b;
            }
            $year = 0;
            break a;
        }
        $year = 1;
    }
    return $year;
},
ju_GregorianCalendar__clinit_ = () => {
    ju_GregorianCalendar_daysInMonth = $rt_createByteArrayFromData([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]);
    ju_GregorianCalendar_daysInYear = $rt_createIntArrayFromData([0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]);
    ju_GregorianCalendar_maximums = $rt_createIntArrayFromData([1, 292278994, 11, 53, 6, 31, 366, 7, 6, 1, 11, 23, 59, 59, 999, 50400000, 7200000]);
    ju_GregorianCalendar_minimums = $rt_createIntArrayFromData([0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, (-46800000), 0]);
    ju_GregorianCalendar_leastMaximums = $rt_createIntArrayFromData([1, 292269054, 11, 50, 3, 28, 355, 7, 3, 1, 11, 23, 59, 59, 999, 50400000, 1200000]);
};
function cjj_Tree() {
    let a = this; jl_Object.call(a);
    a.$dyn_tree = null;
    a.$max_code = 0;
    a.$stat_desc = null;
}
let cjj_Tree_extra_lbits = null,
cjj_Tree_extra_dbits = null,
cjj_Tree_extra_blbits = null,
cjj_Tree_bl_order = null,
cjj_Tree__dist_code = null,
cjj_Tree__length_code = null,
cjj_Tree_base_length = null,
cjj_Tree_base_dist = null,
cjj_Tree__init_ = $this => {
    return;
},
cjj_Tree__init_0 = () => {
    let var_0 = new cjj_Tree();
    cjj_Tree__init_(var_0);
    return var_0;
},
cjj_Tree_gen_bitlen = ($this, $s) => {
    let $tree, var$3, $stree, $extra, $base, $max_length, $overflow, $bits, var$10, var$11, $h, $n, $m, var$15, $xbits, $f;
    $tree = $this.$dyn_tree;
    var$3 = $this.$stat_desc;
    $stree = var$3.$static_tree;
    $extra = var$3.$extra_bits;
    $base = var$3.$extra_base;
    $max_length = var$3.$max_length;
    $overflow = 0;
    $bits = 0;
    while ($bits <= 15) {
        $s.$bl_count.data[$bits] = 0;
        $bits = $bits + 1 | 0;
    }
    var$10 = $tree.data;
    var$11 = $s.$heap.data;
    $bits = $s.$heap_max;
    var$10[(var$11[$bits] * 2 | 0) + 1 | 0] = 0;
    $h = $bits + 1 | 0;
    while ($h < 573) {
        $n = var$11[$h];
        $bits = $n * 2 | 0;
        $m = $bits + 1 | 0;
        var$15 = var$10[(var$10[$m] * 2 | 0) + 1 | 0] + 1 | 0;
        if (var$15 > $max_length) {
            $overflow = $overflow + 1 | 0;
            var$15 = $max_length;
        }
        var$10[$m] = var$15 << 16 >> 16;
        if ($n <= $this.$max_code) {
            $tree = $s.$bl_count.data;
            $tree[var$15] = ($tree[var$15] + 1 | 0) << 16 >> 16;
            $xbits = 0;
            if ($n >= $base)
                $xbits = $extra.data[$n - $base | 0];
            $f = var$10[$bits];
            $s.$opt_len = $s.$opt_len + $rt_imul($f, var$15 + $xbits | 0) | 0;
            if ($stree !== null) {
                $tree = $stree.data;
                $s.$static_len = $s.$static_len + $rt_imul($f, $tree[$m] + $xbits | 0) | 0;
            }
        }
        $h = $h + 1 | 0;
    }
    if (!$overflow)
        return;
    $base = $max_length - 1 | 0;
    while (true) {
        $n = $base;
        while (true) {
            $tree = $s.$bl_count.data;
            if ($tree[$n])
                break;
            $n = $n + (-1) | 0;
        }
        $tree[$n] = ($tree[$n] - 1 | 0) << 16 >> 16;
        $bits = $n + 1 | 0;
        $tree[$bits] = ($tree[$bits] + 2 | 0) << 16 >> 16;
        $tree[$max_length] = ($tree[$max_length] - 1 | 0) << 16 >> 16;
        $overflow = $overflow + (-2) | 0;
        if ($overflow <= 0)
            break;
    }
    while ($max_length) {
        $n = $tree[$max_length];
        while ($n) {
            $h = $h + (-1) | 0;
            $m = var$11[$h];
            if ($m > $this.$max_code)
                continue;
            $overflow = $m * 2 | 0;
            $bits = $overflow + 1 | 0;
            if (var$10[$bits] != $max_length) {
                $s.$opt_len = Long_lo(Long_add(Long_fromInt($s.$opt_len), Long_mul(Long_sub(Long_fromInt($max_length), Long_fromInt(var$10[$bits])), Long_fromInt(var$10[$overflow]))));
                var$10[$bits] = $max_length << 16 >> 16;
            }
            $n = $n + (-1) | 0;
        }
        $max_length = $max_length + (-1) | 0;
    }
},
cjj_Tree_build_tree = ($this, $s) => {
    let $tree, var$3, $stree, $node, $max_code, $n, var$8, $m, $node_0, var$11, var$12, var$13, var$14;
    $tree = $this.$dyn_tree;
    var$3 = $this.$stat_desc;
    $stree = var$3.$static_tree;
    $node = var$3.$elems;
    $max_code = (-1);
    $s.$heap_len = 0;
    $s.$heap_max = 573;
    $n = 0;
    while ($n < $node) {
        var$8 = $tree.data;
        $m = $n * 2 | 0;
        if (!var$8[$m])
            var$8[$m + 1 | 0] = 0;
        else {
            var$8 = $s.$heap.data;
            $m = $s.$heap_len + 1 | 0;
            $s.$heap_len = $m;
            var$8[$m] = $n;
            $s.$depth0.data[$n] = 0;
            $max_code = $n;
        }
        $n = $n + 1 | 0;
    }
    while (true) {
        $m = $s.$heap_len;
        if ($m >= 2)
            break;
        var$8 = $s.$heap;
        $node_0 = $m + 1 | 0;
        $s.$heap_len = $node_0;
        if ($max_code >= 2)
            $m = 0;
        else {
            $max_code = $max_code + 1 | 0;
            $m = $max_code;
        }
        var$8 = var$8.data;
        var$11 = $tree.data;
        var$8[$node_0] = $m;
        $n = $m * 2 | 0;
        var$11[$n] = 1;
        $s.$depth0.data[$m] = 0;
        $s.$opt_len = $s.$opt_len - 1 | 0;
        if ($stree === null)
            continue;
        var$8 = $stree.data;
        $s.$static_len = $s.$static_len - var$8[$n + 1 | 0] | 0;
    }
    $this.$max_code = $max_code;
    $m = $m / 2 | 0;
    while ($m >= 1) {
        cjj_Deflate_pqdownheap($s, $tree, $m);
        $m = $m + (-1) | 0;
    }
    while (true) {
        var$8 = $tree.data;
        $stree = $s.$heap.data;
        var$12 = $stree[1];
        $n = $s.$heap_len;
        $s.$heap_len = $n - 1 | 0;
        $stree[1] = $stree[$n];
        cjj_Deflate_pqdownheap($s, $tree, 1);
        $stree = $s.$heap.data;
        $m = $stree[1];
        $node_0 = $s.$heap_max - 1 | 0;
        $s.$heap_max = $node_0;
        $stree[$node_0] = var$12;
        $node_0 = $node_0 - 1 | 0;
        $s.$heap_max = $node_0;
        $stree[$node_0] = $m;
        var$13 = $node * 2 | 0;
        $node_0 = var$12 * 2 | 0;
        var$14 = var$8[$node_0];
        $n = $m * 2 | 0;
        var$8[var$13] = (var$14 + var$8[$n] | 0) << 16 >> 16;
        var$11 = $s.$depth0.data;
        var$12 = var$11[var$12];
        var$13 = var$11[$m];
        if (var$12 > var$13)
            var$13 = var$12;
        var$11[$node] = (var$13 + 1 | 0) << 24 >> 24;
        $m = $node_0 + 1 | 0;
        $node_0 = $n + 1 | 0;
        $n = $node << 16 >> 16;
        var$8[$node_0] = $n;
        var$8[$m] = $n;
        $node_0 = $node + 1 | 0;
        $stree[1] = $node;
        cjj_Deflate_pqdownheap($s, $tree, 1);
        if ($s.$heap_len < 2)
            break;
        $node = $node_0;
    }
    var$8 = $s.$heap.data;
    $m = $s.$heap_max - 1 | 0;
    $s.$heap_max = $m;
    var$8[$m] = var$8[1];
    cjj_Tree_gen_bitlen($this, $s);
    cjj_Tree_gen_codes($tree, $max_code, $s.$bl_count, $s.$next_code);
},
cjj_Tree_gen_codes = ($tree, $max_code, $bl_count, $next_code) => {
    let $code, $bits, $n, $len, var$9;
    $next_code = $next_code.data;
    $code = 0;
    $next_code[0] = 0;
    $bits = 1;
    while ($bits <= 15) {
        $code = ($code + $bl_count.data[$bits - 1 | 0] | 0) << 1 << 16 >> 16;
        $next_code[$bits] = $code;
        $bits = $bits + 1 | 0;
    }
    $n = 0;
    while ($n <= $max_code) {
        $bl_count = $tree.data;
        $code = $n * 2 | 0;
        $len = $bl_count[$code + 1 | 0];
        if ($len) {
            var$9 = $next_code[$len];
            $next_code[$len] = (var$9 + 1 | 0) << 16 >> 16;
            $bits = 0;
            while (true) {
                $bits = $bits | var$9 & 1;
                var$9 = var$9 >>> 1 | 0;
                $bits = $bits << 1;
                $len = $len + (-1) | 0;
                if ($len <= 0)
                    break;
            }
            $bl_count[$code] = ($bits >>> 1 | 0) << 16 >> 16;
        }
        $n = $n + 1 | 0;
    }
},
cjj_Tree__clinit_ = () => {
    cjj_Tree_extra_lbits = $rt_createIntArrayFromData([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]);
    cjj_Tree_extra_dbits = $rt_createIntArrayFromData([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]);
    cjj_Tree_extra_blbits = $rt_createIntArrayFromData([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]);
    cjj_Tree_bl_order = $rt_createByteArrayFromData([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
    cjj_Tree__dist_code = $rt_createByteArrayFromData([0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
    13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
    15, 15, 15, 15, 15, 0, 0, 16, 17, 18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
    27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
    29, 29, 29, 29, 29]);
    cjj_Tree__length_code = $rt_createByteArrayFromData([0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23,
    23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28]);
    cjj_Tree_base_length = $rt_createIntArrayFromData([0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 0]);
    cjj_Tree_base_dist = $rt_createIntArrayFromData([0, 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576]);
},
nms_Attribute = $rt_classWithoutFields(0);
function nms_BaseAttribute() {
    let a = this; jl_Object.call(a);
    a.$field_111115_a = null;
    a.$defaultValue = 0.0;
    a.$shouldWatch = 0;
}
let nms_BaseAttribute_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$field_111115_a;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1;
};
function nms_RangedAttribute() {
    let a = this; nms_BaseAttribute.call(a);
    a.$minimumValue = 0.0;
    a.$maximumValue = 0.0;
    a.$field_111119_c = null;
}
let nms_RangedAttribute__init_0 = ($this, $par1Str, $par2, $par4, $par6) => {
    let var$5;
    $this.$field_111115_a = $par1Str;
    $this.$defaultValue = $par2;
    if ($par1Str === null) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(1596);
        $rt_throw(var$5);
    }
    $this.$minimumValue = $par4;
    $this.$maximumValue = $par6;
    if ($par4 > $par6) {
        $par1Str = new jl_IllegalArgumentException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $par1Str.$message = $rt_s(1597);
        $rt_throw($par1Str);
    }
    if ($par2 < $par4) {
        $par1Str = new jl_IllegalArgumentException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $par1Str.$message = $rt_s(1598);
        $rt_throw($par1Str);
    }
    if ($par2 <= $par6)
        return;
    $par1Str = new jl_IllegalArgumentException;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    $par1Str.$message = $rt_s(1599);
    $rt_throw($par1Str);
},
nms_RangedAttribute__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_RangedAttribute();
    nms_RangedAttribute__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
};
function jm_RoundingMode() {
    jl_Enum.call(this);
    this.$bigDecimalRM = 0;
}
let jm_RoundingMode_UP = null,
jm_RoundingMode_DOWN = null,
jm_RoundingMode_CEILING = null,
jm_RoundingMode_FLOOR = null,
jm_RoundingMode_HALF_UP = null,
jm_RoundingMode_HALF_DOWN = null,
jm_RoundingMode_HALF_EVEN = null,
jm_RoundingMode_UNNECESSARY = null,
jm_RoundingMode_$VALUES = null,
jm_RoundingMode_values = () => {
    return jm_RoundingMode_$VALUES.$clone0();
},
jm_RoundingMode_$values = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(jm_RoundingMode, 8);
    var$2 = var$1.data;
    var$2[0] = jm_RoundingMode_UP;
    var$2[1] = jm_RoundingMode_DOWN;
    var$2[2] = jm_RoundingMode_CEILING;
    var$2[3] = jm_RoundingMode_FLOOR;
    var$2[4] = jm_RoundingMode_HALF_UP;
    var$2[5] = jm_RoundingMode_HALF_DOWN;
    var$2[6] = jm_RoundingMode_HALF_EVEN;
    var$2[7] = jm_RoundingMode_UNNECESSARY;
    return var$1;
},
jm_RoundingMode__clinit_ = () => {
    let var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1600);
    var$1.$ordinal = 0;
    var$1.$bigDecimalRM = 0;
    jm_RoundingMode_UP = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1601);
    var$1.$ordinal = 1;
    var$1.$bigDecimalRM = 1;
    jm_RoundingMode_DOWN = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1602);
    var$1.$ordinal = 2;
    var$1.$bigDecimalRM = 2;
    jm_RoundingMode_CEILING = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1603);
    var$1.$ordinal = 3;
    var$1.$bigDecimalRM = 3;
    jm_RoundingMode_FLOOR = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1604);
    var$1.$ordinal = 4;
    var$1.$bigDecimalRM = 4;
    jm_RoundingMode_HALF_UP = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1605);
    var$1.$ordinal = 5;
    var$1.$bigDecimalRM = 5;
    jm_RoundingMode_HALF_DOWN = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1606);
    var$1.$ordinal = 6;
    var$1.$bigDecimalRM = 6;
    jm_RoundingMode_HALF_EVEN = var$1;
    var$1 = new jm_RoundingMode;
    var$1.$name0 = $rt_s(1607);
    var$1.$ordinal = 7;
    var$1.$bigDecimalRM = 7;
    jm_RoundingMode_UNNECESSARY = var$1;
    jm_RoundingMode_$VALUES = jm_RoundingMode_$values();
};
function ju_Currency() {
    jl_Object.call(this);
    this.$resource = null;
}
let ju_Currency_currencies = null,
ju_Currency_initCurrencies = () => {
    let $resources, $i, $resource, var$4, var$5, var$6;
    if (ju_Currency_currencies !== null)
        return;
    ju_Currency_currencies = ju_HashMap__init_();
    if (otcic_CurrencyHelper_$$metadata$$0 === null)
        otcic_CurrencyHelper_$$metadata$$0 = otcic_CurrencyHelper_getCurrencies$$create();
    $resources = otcic_CurrencyHelper_$$metadata$$0;
    $i = 0;
    while ($i < $resources.length) {
        $resource = $resources[$i];
        var$4 = ju_Currency_currencies;
        var$5 = ($resource.code !== null ? $rt_str($resource.code) : null);
        var$6 = new ju_Currency;
        var$6.$resource = $resource;
        ju_HashMap_putImpl(var$4, var$5, var$6);
        $i = $i + 1 | 0;
    }
},
ju_Currency_toString = $this => {
    return ($this.$resource.code !== null ? $rt_str($this.$resource.code) : null);
};
function cjj_InfTree() {
    let a = this; jl_Object.call(a);
    a.$hn = null;
    a.$v0 = null;
    a.$c = null;
    a.$r0 = null;
    a.$u = null;
    a.$x1 = null;
}
let cjj_InfTree_fixed_tl = null,
cjj_InfTree_fixed_td = null,
cjj_InfTree_cplens = null,
cjj_InfTree_cplext = null,
cjj_InfTree_cpdist = null,
cjj_InfTree_cpdext = null,
cjj_InfTree__init_ = $this => {
    $this.$hn = null;
    $this.$v0 = null;
    $this.$c = null;
    $this.$r0 = null;
    $this.$u = null;
    $this.$x1 = null;
},
cjj_InfTree__init_0 = () => {
    let var_0 = new cjj_InfTree();
    cjj_InfTree__init_(var_0);
    return var_0;
},
cjj_InfTree_huft_build = ($this, $b, $bindex, $n, $s, $d, $e, $t, $m, $hp, $hn, $v) => {
    let $p, $i, var$14, var$15, $a, $l, $j, $y, $xp, $mask, $w, $f, var$24, var$25, $h, $q, $z, $a_0;
    $p = 0;
    $i = $n;
    while (true) {
        var$14 = $b.data;
        var$15 = $this.$c.data;
        $a = var$14[$bindex + $p | 0];
        var$15[$a] = var$15[$a] + 1 | 0;
        $p = $p + 1 | 0;
        $i = $i + (-1) | 0;
        if (!$i)
            break;
    }
    if (var$15[0] == $n) {
        $b = $t.data;
        $d = $m.data;
        $b[0] = (-1);
        $d[0] = 0;
        return 0;
    }
    $b = $m.data;
    $l = $b[0];
    $j = 1;
    a: {
        while (true) {
            if ($j > 15)
                break a;
            if (var$15[$j])
                break;
            $j = $j + 1 | 0;
        }
    }
    if ($l < $j)
        $l = $j;
    $p = 15;
    b: {
        while (true) {
            if (!$p)
                break b;
            if (var$15[$p])
                break;
            $p = $p + (-1) | 0;
        }
    }
    if ($l > $p)
        $l = $p;
    $b[0] = $l;
    $y = 1 << $j;
    $xp = $j;
    while (true) {
        if ($xp >= $p) {
            $i = $y - var$15[$p] | 0;
            if ($i < 0)
                return (-3);
            var$15[$p] = var$15[$p] + $i | 0;
            $b = $this.$x1.data;
            $mask = 0;
            $b[1] = $mask;
            $w = 1;
            $xp = 2;
            $f = $p;
            while (true) {
                $f = $f + (-1) | 0;
                if (!$f)
                    break;
                $mask = $mask + var$15[$w] | 0;
                $b[$xp] = $mask;
                $xp = $xp + 1 | 0;
                $w = $w + 1 | 0;
            }
            $a = 0;
            $xp = 0;
            while (true) {
                $f = var$14[$bindex + $xp | 0];
                if ($f) {
                    $m = $v.data;
                    $w = $b[$f];
                    $b[$f] = $w + 1 | 0;
                    $m[$w] = $a;
                }
                $xp = $xp + 1 | 0;
                $a = $a + 1 | 0;
                if ($a >= $n)
                    break;
            }
            $xp = $b[$p];
            var$24 = 0;
            $b[0] = var$24;
            var$25 = 0;
            $h = (-1);
            $w =  -$l | 0;
            $this.$u.data[0] = 0;
            $q = 0;
            $z = 0;
            c: while (true) {
                if ($j > $p)
                    return $i && $p != 1 ? (-5) : 0;
                $a = $this.$c.data[$j];
                while (true) {
                    $a_0 = $a + (-1) | 0;
                    if (!$a)
                        break;
                    $y = $a_0 + 1 | 0;
                    while (true) {
                        $f = $w + $l | 0;
                        if ($j <= $f)
                            break;
                        $h = $h + 1 | 0;
                        $mask = $p - $f | 0;
                        if ($mask > $l)
                            $mask = $l;
                        d: {
                            $w = $j - $f | 0;
                            $bindex = 1 << $w;
                            if ($bindex > $y) {
                                $bindex = $bindex - $y | 0;
                                if ($w < $mask) {
                                    $n = $j;
                                    while (true) {
                                        $w = $w + 1 | 0;
                                        if ($w >= $mask)
                                            break;
                                        $bindex = $bindex << 1;
                                        $b = $this.$c.data;
                                        $n = $n + 1 | 0;
                                        if ($bindex <= $b[$n])
                                            break d;
                                        $bindex = $bindex - $b[$n] | 0;
                                    }
                                }
                            }
                        }
                        $m = $hn.data;
                        $z = 1 << $w;
                        if (($m[0] + $z | 0) > 1440)
                            break c;
                        $b = $this.$u.data;
                        $q = $m[0];
                        $b[$h] = $q;
                        $m[0] = $m[0] + $z | 0;
                        if (!$h) {
                            $t.data[0] = $q;
                            $w = $f;
                            continue;
                        }
                        $this.$x1.data[$h] = var$24;
                        $m = $this.$r0;
                        var$15 = $m.data;
                        var$15[0] = $w << 24 >> 24;
                        var$15[1] = $l << 24 >> 24;
                        $mask = var$24 >>> ($f - $l | 0) | 0;
                        $n = $h - 1 | 0;
                        var$15[2] = ($q - $b[$n] | 0) - $mask | 0;
                        jl_System_fastArraycopy($m, 0, $hp, ($b[$n] + $mask | 0) * 3 | 0, 3);
                        $w = $f;
                    }
                    var$15 = $this.$r0.data;
                    $f = $j - $w | 0;
                    var$15[1] = $f << 24 >> 24;
                    if (var$25 >= $xp)
                        var$15[0] = 192;
                    else {
                        var$14 = $v.data;
                        if (var$14[var$25] >= $s) {
                            $b = $e.data;
                            $m = $d.data;
                            var$15[0] = (($b[var$14[var$25] - $s | 0] + 16 | 0) + 64 | 0) << 24 >> 24;
                            $n = var$25 + 1 | 0;
                            var$15[2] = $m[var$14[var$25] - $s | 0];
                            var$25 = $n;
                        } else {
                            var$15[0] = (var$14[var$25] >= 256 ? 96 : 0) << 24 >> 24;
                            $n = var$25 + 1 | 0;
                            var$15[2] = var$14[var$25];
                            var$25 = $n;
                        }
                    }
                    $f = 1 << $f;
                    $bindex = var$24 >>> $w | 0;
                    while ($bindex < $z) {
                        jl_System_fastArraycopy($this.$r0, 0, $hp, ($q + $bindex | 0) * 3 | 0, 3);
                        $bindex = $bindex + $f | 0;
                    }
                    $bindex = 1 << ($j - 1 | 0);
                    while (var$24 & $bindex) {
                        var$24 = var$24 ^ $bindex;
                        $bindex = $bindex >>> 1 | 0;
                    }
                    var$24 = var$24 ^ $bindex;
                    $mask = (1 << $w) - 1 | 0;
                    while ((var$24 & $mask) != $this.$x1.data[$h]) {
                        $h = $h + (-1) | 0;
                        $w = $w - $l | 0;
                        $mask = (1 << $w) - 1 | 0;
                    }
                    $a = $a_0;
                }
                $j = $j + 1 | 0;
            }
            return (-3);
        }
        $a = $y - var$15[$xp] | 0;
        if ($a < 0)
            break;
        $xp = $xp + 1 | 0;
        $y = $a << 1;
    }
    return (-3);
},
cjj_InfTree_inflate_trees_bits = ($this, $c, $bb, $tb, $hp, $z) => {
    let var$6, $result;
    cjj_InfTree_initWorkArea($this, 19);
    var$6 = $this.$hn;
    var$6.data[0] = 0;
    $result = cjj_InfTree_huft_build($this, $c, 0, 19, 19, null, null, $tb, $bb, $hp, var$6, $this.$v0);
    if ($result == (-3))
        $z.$msg = $rt_s(1608);
    else if (!($result != (-5) && $bb.data[0])) {
        $z.$msg = $rt_s(1609);
        $result = (-3);
    }
    return $result;
},
cjj_InfTree_inflate_trees_dynamic = ($this, $nl, $nd, $c, $bl, $bd, $tl, $td, $hp, $z) => {
    let var$10, $result;
    cjj_InfTree_initWorkArea($this, 288);
    var$10 = $this.$hn;
    var$10.data[0] = 0;
    $result = cjj_InfTree_huft_build($this, $c, 0, $nl, 257, cjj_InfTree_cplens, cjj_InfTree_cplext, $tl, $bl, $hp, var$10, $this.$v0);
    if (!$result && $bl.data[0]) {
        cjj_InfTree_initWorkArea($this, 288);
        $nd = cjj_InfTree_huft_build($this, $c, $nl, $nd, 0, cjj_InfTree_cpdist, cjj_InfTree_cpdext, $td, $bd, $hp, $this.$hn, $this.$v0);
        if (!$nd && !(!$bd.data[0] && $nl > 257))
            return 0;
        if ($nd == (-3))
            $z.$msg = $rt_s(1610);
        else if ($nd == (-5)) {
            $z.$msg = $rt_s(1611);
            $nd = (-3);
        } else if ($nd != (-4)) {
            $z.$msg = $rt_s(1612);
            $nd = (-3);
        }
        return $nd;
    }
    if ($result == (-3))
        $z.$msg = $rt_s(1613);
    else if ($result != (-4)) {
        $z.$msg = $rt_s(1614);
        $result = (-3);
    }
    return $result;
},
cjj_InfTree_initWorkArea = ($this, $vsize) => {
    let $i;
    if ($this.$hn === null) {
        $this.$hn = $rt_createIntArray(1);
        $this.$v0 = $rt_createIntArray($vsize);
        $this.$c = $rt_createIntArray(16);
        $this.$r0 = $rt_createIntArray(3);
        $this.$u = $rt_createIntArray(15);
        $this.$x1 = $rt_createIntArray(16);
    }
    if ($this.$v0.data.length < $vsize)
        $this.$v0 = $rt_createIntArray($vsize);
    $i = 0;
    while ($i < $vsize) {
        $this.$v0.data[$i] = 0;
        $i = $i + 1 | 0;
    }
    $i = 0;
    while ($i < 16) {
        $this.$c.data[$i] = 0;
        $i = $i + 1 | 0;
    }
    $i = 0;
    while ($i < 3) {
        $this.$r0.data[$i] = 0;
        $i = $i + 1 | 0;
    }
    jl_System_fastArraycopy($this.$c, 0, $this.$u, 0, 15);
    jl_System_fastArraycopy($this.$c, 0, $this.$x1, 0, 16);
},
cjj_InfTree__clinit_ = () => {
    cjj_InfTree_fixed_tl = $rt_createIntArrayFromData([96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 160, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0,
    9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180,
    0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 162, 0,
    8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13,
    0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174, 0, 8, 7, 0, 8,
    135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136,
    0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8, 130, 0,
    8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8,
    78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69,
    0, 9, 235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0,
    9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255]);
    cjj_InfTree_fixed_td = $rt_createIntArrayFromData([80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5, 8193, 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5, 24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577]);
    cjj_InfTree_cplens = $rt_createIntArrayFromData([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0]);
    cjj_InfTree_cplext = $rt_createIntArrayFromData([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112]);
    cjj_InfTree_cpdist = $rt_createIntArrayFromData([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577]);
    cjj_InfTree_cpdext = $rt_createIntArrayFromData([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]);
};
function cjj_InfCodes() {
    let a = this; jl_Object.call(a);
    a.$mode2 = 0;
    a.$len0 = 0;
    a.$tree = null;
    a.$tree_index = 0;
    a.$need0 = 0;
    a.$lit = 0;
    a.$get8 = 0;
    a.$dist = 0;
    a.$lbits = 0;
    a.$dbits = 0;
    a.$ltree = null;
    a.$ltree_index = 0;
    a.$dtree = null;
    a.$dtree_index = 0;
    a.$z2 = null;
    a.$s = null;
}
let cjj_InfCodes_inflate_mask = null,
cjj_InfCodes_proc = ($this, $r) => {
    let var$2, var$3, $n, var$5, var$6, $q, $f, $m, var$10, var$11, $j, $tindex, $e;
    var$2 = $this.$z2;
    var$3 = var$2.$next_in_index;
    $n = var$2.$avail_in;
    var$2 = $this.$s;
    var$5 = var$2.$bitb;
    var$6 = var$2.$bitk;
    $q = var$2.$write8;
    $f = var$2.$read4;
    $m = $q >= $f ? var$2.$end2 - $q | 0 : ($f - $q | 0) - 1 | 0;
    a: {
        b: while (true) {
            c: {
                d: {
                    e: {
                        f: {
                            g: {
                                switch ($this.$mode2) {
                                    case 0:
                                        break f;
                                    case 2:
                                        $f = $this.$get8;
                                        while (var$6 < $f) {
                                            if (!$n) {
                                                var$2 = $this.$s;
                                                var$2.$bitb = var$5;
                                                var$2.$bitk = var$6;
                                                var$10 = $this.$z2;
                                                var$10.$avail_in = $n;
                                                var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                                                var$10.$next_in_index = var$3;
                                                var$2.$write8 = $q;
                                                return cjj_InfBlocks_inflate_flush(var$2, $r);
                                            }
                                            $r = 0;
                                            $n = $n + (-1) | 0;
                                            var$11 = $this.$z2.$next_in.data;
                                            $j = var$3 + 1 | 0;
                                            var$5 = var$5 | (var$11[var$3] & 255) << var$6;
                                            var$6 = var$6 + 8 | 0;
                                            var$3 = $j;
                                        }
                                        $this.$len0 = $this.$len0 + (var$5 & cjj_InfCodes_inflate_mask.data[$f]) | 0;
                                        var$5 = var$5 >> $f;
                                        var$6 = var$6 - $f | 0;
                                        $this.$need0 = $this.$dbits;
                                        $this.$tree = $this.$dtree;
                                        $this.$tree_index = $this.$dtree_index;
                                        $this.$mode2 = 3;
                                        break g;
                                    case 4:
                                        $j = $this.$get8;
                                        while (var$6 < $j) {
                                            if (!$n) {
                                                var$2 = $this.$s;
                                                var$2.$bitb = var$5;
                                                var$2.$bitk = var$6;
                                                var$10 = $this.$z2;
                                                var$10.$avail_in = $n;
                                                var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                                                var$10.$next_in_index = var$3;
                                                var$2.$write8 = $q;
                                                return cjj_InfBlocks_inflate_flush(var$2, $r);
                                            }
                                            $r = 0;
                                            $n = $n + (-1) | 0;
                                            var$11 = $this.$z2.$next_in.data;
                                            $f = var$3 + 1 | 0;
                                            var$5 = var$5 | (var$11[var$3] & 255) << var$6;
                                            var$6 = var$6 + 8 | 0;
                                            var$3 = $f;
                                        }
                                        $this.$dist = $this.$dist + (var$5 & cjj_InfCodes_inflate_mask.data[$j]) | 0;
                                        var$5 = var$5 >> $j;
                                        var$6 = var$6 - $j | 0;
                                        $this.$mode2 = 5;
                                        break c;
                                    case 6:
                                        break d;
                                    case 7:
                                        if (var$6 > 7) {
                                            var$6 = var$6 + (-8) | 0;
                                            $n = $n + 1 | 0;
                                            var$3 = var$3 + (-1) | 0;
                                        }
                                        var$2 = $this.$s;
                                        var$2.$write8 = $q;
                                        $r = cjj_InfBlocks_inflate_flush(var$2, $r);
                                        var$2 = $this.$s;
                                        $q = var$2.$write8;
                                        $f = var$2.$read4;
                                        if ($f != $q) {
                                            var$2.$bitb = var$5;
                                            var$2.$bitk = var$6;
                                            var$10 = $this.$z2;
                                            var$10.$avail_in = $n;
                                            var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                                            var$10.$next_in_index = var$3;
                                            var$2.$write8 = $q;
                                            return cjj_InfBlocks_inflate_flush(var$2, $r);
                                        }
                                        $this.$mode2 = 8;
                                        break a;
                                    case 9:
                                        var$2 = $this.$s;
                                        var$2.$bitb = var$5;
                                        var$2.$bitk = var$6;
                                        var$10 = $this.$z2;
                                        var$10.$avail_in = $n;
                                        var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                                        var$10.$next_in_index = var$3;
                                        var$2.$write8 = $q;
                                        return cjj_InfBlocks_inflate_flush(var$2, (-3));
                                    case 1:
                                        break e;
                                    case 3:
                                        break;
                                    case 5:
                                        break c;
                                    case 8:
                                        break a;
                                    default:
                                        var$2 = $this.$s;
                                        var$2.$bitb = var$5;
                                        var$2.$bitk = var$6;
                                        var$10 = $this.$z2;
                                        var$10.$avail_in = $n;
                                        var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                                        var$10.$next_in_index = var$3;
                                        var$2.$write8 = $q;
                                        return cjj_InfBlocks_inflate_flush(var$2, (-2));
                                }
                            }
                            $f = $this.$need0;
                            while (var$6 < $f) {
                                if (!$n) {
                                    var$2 = $this.$s;
                                    var$2.$bitb = var$5;
                                    var$2.$bitk = var$6;
                                    var$10 = $this.$z2;
                                    var$10.$avail_in = $n;
                                    var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                                    var$10.$next_in_index = var$3;
                                    var$2.$write8 = $q;
                                    return cjj_InfBlocks_inflate_flush(var$2, $r);
                                }
                                $r = 0;
                                $n = $n + (-1) | 0;
                                var$11 = $this.$z2.$next_in.data;
                                $j = var$3 + 1 | 0;
                                var$5 = var$5 | (var$11[var$3] & 255) << var$6;
                                var$6 = var$6 + 8 | 0;
                                var$3 = $j;
                            }
                            $f = ($this.$tree_index + (var$5 & cjj_InfCodes_inflate_mask.data[$f]) | 0) * 3 | 0;
                            var$11 = $this.$tree.data;
                            $j = $f + 1 | 0;
                            var$5 = var$5 >> var$11[$j];
                            var$6 = var$6 - var$11[$j] | 0;
                            $j = var$11[$f];
                            if ($j & 16) {
                                $this.$get8 = $j & 15;
                                $this.$dist = var$11[$f + 2 | 0];
                                $this.$mode2 = 4;
                                continue b;
                            }
                            if ($j & 64) {
                                $this.$mode2 = 9;
                                var$2 = $this.$z2;
                                var$2.$msg = $rt_s(1615);
                                var$10 = $this.$s;
                                var$10.$bitb = var$5;
                                var$10.$bitk = var$6;
                                var$2.$avail_in = $n;
                                var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt(var$3 - var$2.$next_in_index | 0));
                                var$2.$next_in_index = var$3;
                                var$10.$write8 = $q;
                                return cjj_InfBlocks_inflate_flush(var$10, (-3));
                            }
                            $this.$need0 = $j;
                            $this.$tree_index = ($f / 3 | 0) + var$11[$f + 2 | 0] | 0;
                            continue b;
                        }
                        if ($m >= 258 && $n >= 10) {
                            var$2 = $this.$s;
                            var$2.$bitb = var$5;
                            var$2.$bitk = var$6;
                            var$10 = $this.$z2;
                            var$10.$avail_in = $n;
                            var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                            var$10.$next_in_index = var$3;
                            var$2.$write8 = $q;
                            $r = cjj_InfCodes_inflate_fast($this, $this.$lbits, $this.$dbits, $this.$ltree, $this.$ltree_index, $this.$dtree, $this.$dtree_index, var$2, var$10);
                            var$2 = $this.$z2;
                            var$3 = var$2.$next_in_index;
                            $n = var$2.$avail_in;
                            var$2 = $this.$s;
                            var$5 = var$2.$bitb;
                            var$6 = var$2.$bitk;
                            $q = var$2.$write8;
                            $f = var$2.$read4;
                            $m = $q >= $f ? var$2.$end2 - $q | 0 : ($f - $q | 0) - 1 | 0;
                            if ($r) {
                                $this.$mode2 = $r != 1 ? 9 : 7;
                                continue b;
                            }
                        }
                        $this.$need0 = $this.$lbits;
                        $this.$tree = $this.$ltree;
                        $this.$tree_index = $this.$ltree_index;
                        $this.$mode2 = 1;
                    }
                    $j = $this.$need0;
                    while (var$6 < $j) {
                        if (!$n) {
                            var$2 = $this.$s;
                            var$2.$bitb = var$5;
                            var$2.$bitk = var$6;
                            var$10 = $this.$z2;
                            var$10.$avail_in = $n;
                            var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                            var$10.$next_in_index = var$3;
                            var$2.$write8 = $q;
                            return cjj_InfBlocks_inflate_flush(var$2, $r);
                        }
                        $r = 0;
                        $n = $n + (-1) | 0;
                        var$11 = $this.$z2.$next_in.data;
                        $f = var$3 + 1 | 0;
                        var$5 = var$5 | (var$11[var$3] & 255) << var$6;
                        var$6 = var$6 + 8 | 0;
                        var$3 = $f;
                    }
                    $tindex = ($this.$tree_index + (var$5 & cjj_InfCodes_inflate_mask.data[$j]) | 0) * 3 | 0;
                    var$11 = $this.$tree.data;
                    $f = $tindex + 1 | 0;
                    var$5 = var$5 >>> var$11[$f] | 0;
                    var$6 = var$6 - var$11[$f] | 0;
                    $e = var$11[$tindex];
                    if (!$e) {
                        $this.$lit = var$11[$tindex + 2 | 0];
                        $this.$mode2 = 6;
                        continue b;
                    }
                    if ($e & 16) {
                        $this.$get8 = $e & 15;
                        $this.$len0 = var$11[$tindex + 2 | 0];
                        $this.$mode2 = 2;
                        continue b;
                    }
                    if (!($e & 64)) {
                        $this.$need0 = $e;
                        $this.$tree_index = ($tindex / 3 | 0) + var$11[$tindex + 2 | 0] | 0;
                        continue b;
                    }
                    if (!($e & 32)) {
                        $this.$mode2 = 9;
                        var$2 = $this.$z2;
                        var$2.$msg = $rt_s(1616);
                        var$10 = $this.$s;
                        var$10.$bitb = var$5;
                        var$10.$bitk = var$6;
                        var$2.$avail_in = $n;
                        var$2.$total_in = Long_add(var$2.$total_in, Long_fromInt(var$3 - var$2.$next_in_index | 0));
                        var$2.$next_in_index = var$3;
                        var$10.$write8 = $q;
                        return cjj_InfBlocks_inflate_flush(var$10, (-3));
                    }
                    $this.$mode2 = 7;
                    continue b;
                }
                if ($m)
                    $f = $q;
                else {
                    var$2 = $this.$s;
                    $j = var$2.$end2;
                    if ($q != $j)
                        $f = $q;
                    else {
                        $tindex = var$2.$read4;
                        if (!$tindex)
                            $f = $q;
                        else {
                            $f = 0;
                            $m = $f >= $tindex ? $j - $f | 0 : ($tindex - $f | 0) - 1 | 0;
                        }
                    }
                    if (!$m) {
                        var$2.$write8 = $f;
                        $r = cjj_InfBlocks_inflate_flush(var$2, $r);
                        var$2 = $this.$s;
                        $f = var$2.$write8;
                        $j = var$2.$read4;
                        $m = $f >= $j ? var$2.$end2 - $f | 0 : ($j - $f | 0) - 1 | 0;
                        $tindex = var$2.$end2;
                        if ($f == $tindex && $j) {
                            $f = 0;
                            $m = $f >= $j ? $tindex - $f | 0 : ($j - $f | 0) - 1 | 0;
                        }
                        if (!$m) {
                            var$2.$bitb = var$5;
                            var$2.$bitk = var$6;
                            var$10 = $this.$z2;
                            var$10.$avail_in = $n;
                            var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
                            var$10.$next_in_index = var$3;
                            var$2.$write8 = $f;
                            return cjj_InfBlocks_inflate_flush(var$2, $r);
                        }
                    }
                }
                $r = 0;
                var$11 = $this.$s.$window.data;
                $q = $f + 1 | 0;
                var$11[$f] = $this.$lit << 24 >> 24;
                $m = $m + (-1) | 0;
                $this.$mode2 = 0;
                continue b;
            }
            $f = $q - $this.$dist | 0;
            while ($f < 0) {
                $f = $f + $this.$s.$end2 | 0;
            }
            while ($this.$len0) {
                if ($m)
                    $j = $q;
                else {
                    var$2 = $this.$s;
                    $tindex = var$2.$end2;
                    if ($q != $tindex)
                        $j = $q;
                    else {
                        $e = var$2.$read4;
                        if (!$e)
                            $j = $q;
                        else {
                            $j = 0;
                            $m = $j >= $e ? $tindex - $j | 0 : ($e - $j | 0) - 1 | 0;
                        }
                    }
                    if (!$m) {
                        var$2.$write8 = $j;
                        $r = cjj_InfBlocks_inflate_flush(var$2, $r);
                        var$2 = $this.$s;
                        $j = var$2.$write8;
                        $tindex = var$2.$read4;
                        $m = $j >= $tindex ? var$2.$end2 - $j | 0 : ($tindex - $j | 0) - 1 | 0;
                        $e = var$2.$end2;
                        if ($j == $e && $tindex) {
                            $j = 0;
                            $m = $j >= $tindex ? $e - $j | 0 : ($tindex - $j | 0) - 1 | 0;
                        }
                        if (!$m)
                            break b;
                    }
                }
                var$2 = $this.$s;
                var$11 = var$2.$window.data;
                $q = $j + 1 | 0;
                $tindex = $f + 1 | 0;
                var$11[$j] = var$11[$f];
                $m = $m + (-1) | 0;
                $f = $tindex == var$2.$end2 ? 0 : $tindex;
                $this.$len0 = $this.$len0 - 1 | 0;
            }
            $this.$mode2 = 0;
        }
        var$2.$bitb = var$5;
        var$2.$bitk = var$6;
        var$10 = $this.$z2;
        var$10.$avail_in = $n;
        var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
        var$10.$next_in_index = var$3;
        var$2.$write8 = $j;
        return cjj_InfBlocks_inflate_flush(var$2, $r);
    }
    var$2 = $this.$s;
    var$2.$bitb = var$5;
    var$2.$bitk = var$6;
    var$10 = $this.$z2;
    var$10.$avail_in = $n;
    var$10.$total_in = Long_add(var$10.$total_in, Long_fromInt(var$3 - var$10.$next_in_index | 0));
    var$10.$next_in_index = var$3;
    var$2.$write8 = $q;
    return cjj_InfBlocks_inflate_flush(var$2, 1);
},
cjj_InfCodes_inflate_fast = ($this, $bl, $bd, $tl, $tl_index, $td, $td_index, $s, $z) => {
    let $p, $n, $b, $k, $q, $r, $m, var$16, $ml, $md, var$19, $t, $tp_index_t_3, $d, var$23, $c;
    $p = $z.$next_in_index;
    $n = $z.$avail_in;
    $b = $s.$bitb;
    $k = $s.$bitk;
    $q = $s.$write8;
    $r = $s.$read4;
    $m = $q >= $r ? $s.$end2 - $q | 0 : ($r - $q | 0) - 1 | 0;
    var$16 = cjj_InfCodes_inflate_mask.data;
    $ml = var$16[$bl];
    $md = var$16[$bd];
    while (true) {
        if ($k < 20) {
            $n = $n + (-1) | 0;
            var$16 = $z.$next_in.data;
            $bl = $p + 1 | 0;
            $b = $b | (var$16[$p] & 255) << $k;
            $k = $k + 8 | 0;
            $p = $bl;
            continue;
        }
        a: {
            var$19 = $tl.data;
            $t = $b & $ml;
            $tp_index_t_3 = ($tl_index + $t | 0) * 3 | 0;
            $bd = var$19[$tp_index_t_3];
            if (!$bd) {
                $bl = $tp_index_t_3 + 1 | 0;
                $b = $b >> var$19[$bl];
                $k = $k - var$19[$bl] | 0;
                var$16 = $s.$window.data;
                $d = $q + 1 | 0;
                var$16[$q] = var$19[$tp_index_t_3 + 2 | 0] << 24 >> 24;
                $m = $m + (-1) | 0;
            } else {
                while (true) {
                    $bl = $tp_index_t_3 + 1 | 0;
                    $b = $b >> var$19[$bl];
                    $k = $k - var$19[$bl] | 0;
                    if ($bd & 16) {
                        $bd = $bd & 15;
                        $bl = var$19[$tp_index_t_3 + 2 | 0];
                        var$23 = cjj_InfCodes_inflate_mask.data;
                        $c = $bl + ($b & var$23[$bd]) | 0;
                        $bl = $b >> $bd;
                        $bd = $k - $bd | 0;
                        while ($bd < 15) {
                            $n = $n + (-1) | 0;
                            var$16 = $z.$next_in.data;
                            $r = $p + 1 | 0;
                            $bl = $bl | (var$16[$p] & 255) << $bd;
                            $bd = $bd + 8 | 0;
                            $p = $r;
                        }
                        var$16 = $td.data;
                        $r = $bl & $md;
                        $d = ($td_index + $r | 0) * 3 | 0;
                        $b = var$16[$d];
                        while (true) {
                            $k = $d + 1 | 0;
                            $bl = $bl >> var$16[$k];
                            $bd = $bd - var$16[$k] | 0;
                            if ($b & 16)
                                break;
                            if ($b & 64) {
                                $z.$msg = $rt_s(1615);
                                $tl_index = $z.$avail_in - $n | 0;
                                $td_index = $bd >> 3;
                                if ($td_index < $tl_index)
                                    $tl_index = $td_index;
                                $td_index = $n + $tl_index | 0;
                                $r = $p - $tl_index | 0;
                                $bd = $bd - ($tl_index << 3) | 0;
                                $s.$bitb = $bl;
                                $s.$bitk = $bd;
                                $z.$avail_in = $td_index;
                                $z.$total_in = Long_add($z.$total_in, Long_fromInt($r - $z.$next_in_index | 0));
                                $z.$next_in_index = $r;
                                $s.$write8 = $q;
                                return (-3);
                            }
                            $r = ($r + var$16[$d + 2 | 0] | 0) + ($bl & var$23[$b]) | 0;
                            $d = ($td_index + $r | 0) * 3 | 0;
                            $b = var$16[$d];
                        }
                        $r = $b & 15;
                        while ($bd < $r) {
                            $n = $n + (-1) | 0;
                            var$19 = $z.$next_in.data;
                            $b = $p + 1 | 0;
                            $bl = $bl | (var$19[$p] & 255) << $bd;
                            $bd = $bd + 8 | 0;
                            $p = $b;
                        }
                        $d = var$16[$d + 2 | 0] + ($bl & var$23[$r]) | 0;
                        $b = $bl >> $r;
                        $k = $bd - $r | 0;
                        $m = $m - $c | 0;
                        if ($q >= $d) {
                            $r = $q - $d | 0;
                            $bl = $q - $r | 0;
                            if ($bl > 0 && 2 > $bl) {
                                var$16 = $s.$window.data;
                                $bl = $q + 1 | 0;
                                $bd = $r + 1 | 0;
                                var$16[$q] = var$16[$r];
                                $q = $bl + 1 | 0;
                                $r = $bd + 1 | 0;
                                var$16[$bl] = var$16[$bd];
                                $c = $c + (-2) | 0;
                            } else {
                                var$16 = $s.$window;
                                jl_System_fastArraycopy(var$16, $r, var$16, $q, 2);
                                $q = $q + 2 | 0;
                                $r = $r + 2 | 0;
                                $c = $c + (-2) | 0;
                            }
                        } else {
                            $r = $q - $d | 0;
                            while (true) {
                                $bl = $s.$end2;
                                $r = $r + $bl | 0;
                                if ($r >= 0)
                                    break;
                            }
                            $bl = $bl - $r | 0;
                            if ($c > $bl) {
                                $c = $c - $bl | 0;
                                $bd = $q - $r | 0;
                                if ($bd > 0 && $bl > $bd) {
                                    $bd = $q;
                                    while (true) {
                                        var$16 = $s.$window.data;
                                        $q = $bd + 1 | 0;
                                        $d = $r + 1 | 0;
                                        var$16[$bd] = var$16[$r];
                                        $bl = $bl + (-1) | 0;
                                        if (!$bl)
                                            break;
                                        $bd = $q;
                                        $r = $d;
                                    }
                                } else {
                                    var$16 = $s.$window;
                                    jl_System_fastArraycopy(var$16, $r, var$16, $q, $bl);
                                    $q = $q + $bl | 0;
                                }
                                $r = 0;
                            }
                        }
                        $bl = $q - $r | 0;
                        if ($bl > 0 && $c > $bl) {
                            while (true) {
                                var$16 = $s.$window.data;
                                $d = $q + 1 | 0;
                                $bl = $r + 1 | 0;
                                var$16[$q] = var$16[$r];
                                $c = $c + (-1) | 0;
                                if (!$c)
                                    break;
                                $q = $d;
                                $r = $bl;
                            }
                            break a;
                        }
                        var$16 = $s.$window;
                        jl_System_fastArraycopy(var$16, $r, var$16, $q, $c);
                        $d = $q + $c | 0;
                        break a;
                    }
                    if ($bd & 64) {
                        if ($bd & 32) {
                            $c = $z.$avail_in - $n | 0;
                            $bl = $k >> 3;
                            if ($bl < $c)
                                $c = $bl;
                            $bl = $n + $c | 0;
                            $bd = $p - $c | 0;
                            $tl_index = $k - ($c << 3) | 0;
                            $s.$bitb = $b;
                            $s.$bitk = $tl_index;
                            $z.$avail_in = $bl;
                            $z.$total_in = Long_add($z.$total_in, Long_fromInt($bd - $z.$next_in_index | 0));
                            $z.$next_in_index = $bd;
                            $s.$write8 = $q;
                            return 1;
                        }
                        $z.$msg = $rt_s(1616);
                        $c = $z.$avail_in - $n | 0;
                        $bl = $k >> 3;
                        if ($bl < $c)
                            $c = $bl;
                        $bl = $n + $c | 0;
                        $bd = $p - $c | 0;
                        $tl_index = $k - ($c << 3) | 0;
                        $s.$bitb = $b;
                        $s.$bitk = $tl_index;
                        $z.$avail_in = $bl;
                        $z.$total_in = Long_add($z.$total_in, Long_fromInt($bd - $z.$next_in_index | 0));
                        $z.$next_in_index = $bd;
                        $s.$write8 = $q;
                        return (-3);
                    }
                    $t = ($t + var$19[$tp_index_t_3 + 2 | 0] | 0) + ($b & cjj_InfCodes_inflate_mask.data[$bd]) | 0;
                    $tp_index_t_3 = ($tl_index + $t | 0) * 3 | 0;
                    $bd = var$19[$tp_index_t_3];
                    if (!$bd)
                        break;
                }
                $bl = $tp_index_t_3 + 1 | 0;
                $b = $b >> var$19[$bl];
                $k = $k - var$19[$bl] | 0;
                var$16 = $s.$window.data;
                $d = $q + 1 | 0;
                var$16[$q] = var$19[$tp_index_t_3 + 2 | 0] << 24 >> 24;
                $m = $m + (-1) | 0;
            }
        }
        if ($m < 258)
            break;
        if ($n < 10)
            break;
        $q = $d;
    }
    $c = $z.$avail_in - $n | 0;
    $bl = $k >> 3;
    if ($bl < $c)
        $c = $bl;
    $bl = $n + $c | 0;
    $bd = $p - $c | 0;
    $tl_index = $k - ($c << 3) | 0;
    $s.$bitb = $b;
    $s.$bitk = $tl_index;
    $z.$avail_in = $bl;
    $z.$total_in = Long_add($z.$total_in, Long_fromInt($bd - $z.$next_in_index | 0));
    $z.$next_in_index = $bd;
    $s.$write8 = $d;
    return 0;
},
cjj_InfCodes__clinit_ = () => {
    cjj_InfCodes_inflate_mask = $rt_createIntArrayFromData([0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535]);
};
function cjj_Deflate$Config() {
    let a = this; jl_Object.call(a);
    a.$good_length = 0;
    a.$max_lazy = 0;
    a.$nice_length = 0;
    a.$max_chain = 0;
    a.$func = 0;
}
let otrf_VirtualFileSystem = $rt_classWithoutFields(0);
function otrfm_InMemoryVirtualFileSystem() {
    let a = this; jl_Object.call(a);
    a.$root0 = null;
    a.$userDir = null;
}
let otrfm_InMemoryVirtualFileSystem__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new otrfm_InMemoryVirtualDirectory;
    var$1.$lastModified = jl_System_currentTimeMillis();
    var$1.$name12 = $rt_s(3);
    var$2 = new ju_LinkedHashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    var$2.$accessOrder = 0;
    var$2.$head = null;
    var$1.$children0 = var$2;
    $this.$root0 = var$1;
    $this.$userDir = $rt_s(166);
},
otrfm_InMemoryVirtualFileSystem__init_ = () => {
    let var_0 = new otrfm_InMemoryVirtualFileSystem();
    otrfm_InMemoryVirtualFileSystem__init_0(var_0);
    return var_0;
};
function nms_RecipesTools() {
    let a = this; jl_Object.call(a);
    a.$recipePatterns = null;
    a.$recipeItems3 = null;
}
let nms_RecipesTools__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray($rt_arraycls(jl_String), 4);
    var$2 = var$1.data;
    var$2[0] = $rt_wrapArray(jl_String, [$rt_s(1517), $rt_s(1526), $rt_s(1526)]);
    var$2[1] = $rt_wrapArray(jl_String, [$rt_s(1525), $rt_s(130), $rt_s(130)]);
    var$2[2] = $rt_wrapArray(jl_String, [$rt_s(1617), $rt_s(1618), $rt_s(1619)]);
    var$2[3] = $rt_wrapArray(jl_String, [$rt_s(1617), $rt_s(1619), $rt_s(1619)]);
    $this.$recipePatterns = var$1;
    var$1 = $rt_createArray($rt_arraycls(jl_Object), 5);
    var$2 = var$1.data;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    nms_Block_$callClinit();
    var$4[0] = nms_Block_planks;
    var$4[1] = nms_Block_cobblestone;
    nms_Item_$callClinit();
    var$4[2] = nms_Item_ingotIron;
    var$4[3] = nms_Item_diamond;
    var$4[4] = nms_Item_ingotGold;
    var$2[0] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_pickaxeWood;
    var$4[1] = nms_Item_pickaxeStone;
    var$4[2] = nms_Item_pickaxeIron;
    var$4[3] = nms_Item_pickaxeDiamond;
    var$4[4] = nms_Item_pickaxeGold;
    var$2[1] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_shovelWood;
    var$4[1] = nms_Item_shovelStone;
    var$4[2] = nms_Item_shovelIron;
    var$4[3] = nms_Item_shovelDiamond;
    var$4[4] = nms_Item_shovelGold;
    var$2[2] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_axeWood;
    var$4[1] = nms_Item_axeStone;
    var$4[2] = nms_Item_axeIron;
    var$4[3] = nms_Item_axeDiamond;
    var$4[4] = nms_Item_axeGold;
    var$2[3] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_hoeWood;
    var$4[1] = nms_Item_hoeStone;
    var$4[2] = nms_Item_hoeIron;
    var$4[3] = nms_Item_hoeDiamond;
    var$4[4] = nms_Item_hoeGold;
    var$2[4] = var$3;
    $this.$recipeItems3 = var$1;
},
nms_RecipesTools__init_0 = () => {
    let var_0 = new nms_RecipesTools();
    nms_RecipesTools__init_(var_0);
    return var_0;
},
nms_RecipesTools_addRecipes = ($this, $par1CraftingManager) => {
    let $var2, var$3, $var3, $var4, $var4_0, $var5, var$8, var$9, var$10, var$11;
    $var2 = 0;
    while (true) {
        var$3 = $this.$recipeItems3.data;
        if ($var2 >= var$3[0].data.length)
            break;
        $var3 = var$3[0].data[$var2];
        $var4 = 0;
        while (true) {
            var$3 = $this.$recipeItems3.data;
            if ($var4 >= (var$3.length - 1 | 0))
                break;
            $var4_0 = $var4 + 1 | 0;
            $var5 = var$3[$var4_0].data[$var2];
            var$8 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$8.$itemID = $var5.$itemID0;
            var$8.$stackSize = 1;
            var$8.$itemDamage = 0;
            var$3 = $rt_createArray(jl_Object, 5);
            var$9 = var$3.data;
            var$9[0] = $this.$recipePatterns.data[$var4];
            var$10 = jl_Character_characterCache.data;
            var$11 = var$10.length;
            if (35 >= var$11) {
                $var5 = new jl_Character;
                $var5.$value5 = 35;
            } else {
                $var5 = var$10[35];
                if ($var5 === null) {
                    $var5 = new jl_Character;
                    $var5.$value5 = 35;
                    var$10[35] = $var5;
                }
            }
            var$9[1] = $var5;
            nms_Item_$callClinit();
            var$9[2] = nms_Item_stick;
            if (88 >= var$11) {
                $var5 = new jl_Character;
                $var5.$value5 = 88;
            } else {
                $var5 = var$10[88];
                if ($var5 === null) {
                    $var5 = new jl_Character;
                    $var5.$value5 = 88;
                    var$10[88] = $var5;
                }
            }
            var$9[3] = $var5;
            var$9[4] = $var3;
            nms_CraftingManager_addRecipe($par1CraftingManager, var$8, var$3);
            $var4 = $var4_0;
        }
        $var2 = $var2 + 1 | 0;
    }
    var$8 = new nms_ItemStack;
    nms_Item_$callClinit();
    $var5 = nms_Item_shears;
    nms_ItemStack_$callClinit();
    var$8.$itemID = $var5.$itemID0;
    var$8.$stackSize = 1;
    var$8.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 4);
    var$10 = var$3.data;
    var$10[0] = $rt_s(1619);
    var$10[1] = $rt_s(1540);
    var$9 = jl_Character_characterCache.data;
    if (35 >= var$9.length) {
        $var5 = new jl_Character;
        $var5.$value5 = 35;
    } else {
        $var5 = var$9[35];
        if ($var5 === null) {
            $var5 = new jl_Character;
            $var5.$value5 = 35;
            var$9[35] = $var5;
        }
    }
    var$10[2] = $var5;
    var$10[3] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$8, var$3);
};
function nms_RecipesWeapons() {
    let a = this; jl_Object.call(a);
    a.$recipePatterns1 = null;
    a.$recipeItems1 = null;
}
let nms_RecipesWeapons__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray($rt_arraycls(jl_String), 1);
    var$1.data[0] = $rt_wrapArray(jl_String, [$rt_s(1525), $rt_s(1525), $rt_s(130)]);
    $this.$recipePatterns1 = var$1;
    var$1 = $rt_createArray($rt_arraycls(jl_Object), 2);
    var$2 = var$1.data;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    nms_Block_$callClinit();
    var$4[0] = nms_Block_planks;
    var$4[1] = nms_Block_cobblestone;
    nms_Item_$callClinit();
    var$4[2] = nms_Item_ingotIron;
    var$4[3] = nms_Item_diamond;
    var$4[4] = nms_Item_ingotGold;
    var$2[0] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_swordWood;
    var$4[1] = nms_Item_swordStone;
    var$4[2] = nms_Item_swordIron;
    var$4[3] = nms_Item_swordDiamond;
    var$4[4] = nms_Item_swordGold;
    var$2[1] = var$3;
    $this.$recipeItems1 = var$1;
},
nms_RecipesWeapons__init_0 = () => {
    let var_0 = new nms_RecipesWeapons();
    nms_RecipesWeapons__init_(var_0);
    return var_0;
},
nms_RecipesWeapons_addRecipes = ($this, $par1CraftingManager) => {
    let $var2, var$3, $var3, $var4, $var4_0, $var5, var$8, var$9, var$10, var$11, var$12;
    $var2 = 0;
    while (true) {
        var$3 = $this.$recipeItems1.data;
        if ($var2 >= var$3[0].data.length)
            break;
        $var3 = var$3[0].data[$var2];
        $var4 = 0;
        while (true) {
            var$3 = $this.$recipeItems1.data;
            if ($var4 >= (var$3.length - 1 | 0))
                break;
            $var4_0 = $var4 + 1 | 0;
            $var5 = var$3[$var4_0].data[$var2];
            var$8 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$8.$itemID = $var5.$itemID0;
            var$8.$stackSize = 1;
            var$8.$itemDamage = 0;
            var$9 = $rt_createArray(jl_Object, 5);
            var$10 = var$9.data;
            var$10[0] = $this.$recipePatterns1.data[$var4];
            var$3 = jl_Character_characterCache.data;
            var$11 = var$3.length;
            if (35 >= var$11) {
                $var5 = new jl_Character;
                $var5.$value5 = 35;
            } else {
                $var5 = var$3[35];
                if ($var5 === null) {
                    $var5 = new jl_Character;
                    $var5.$value5 = 35;
                    var$3[35] = $var5;
                }
            }
            var$10[1] = $var5;
            nms_Item_$callClinit();
            var$10[2] = nms_Item_stick;
            if (88 >= var$11) {
                $var5 = new jl_Character;
                $var5.$value5 = 88;
            } else {
                $var5 = var$3[88];
                if ($var5 === null) {
                    $var5 = new jl_Character;
                    $var5.$value5 = 88;
                    var$3[88] = $var5;
                }
            }
            var$10[3] = $var5;
            var$10[4] = $var3;
            nms_CraftingManager_addRecipe($par1CraftingManager, var$8, var$9);
            $var4 = $var4_0;
        }
        $var2 = $var2 + 1 | 0;
    }
    $var5 = new nms_ItemStack;
    nms_Item_$callClinit();
    $var3 = nms_Item_bow;
    nms_ItemStack_$callClinit();
    $var5.$itemID = $var3.$itemID0;
    $var5.$stackSize = 1;
    $var5.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 7);
    var$9 = var$3.data;
    var$9[0] = $rt_s(1538);
    var$9[1] = $rt_s(1539);
    var$9[2] = $rt_s(1538);
    var$10 = jl_Character_characterCache.data;
    var$12 = var$10.length;
    if (88 >= var$12) {
        $var3 = new jl_Character;
        $var3.$value5 = 88;
    } else {
        $var3 = var$10[88];
        if ($var3 === null) {
            $var3 = new jl_Character;
            $var3.$value5 = 88;
            var$10[88] = $var3;
        }
    }
    var$9[3] = $var3;
    var$9[4] = nms_Item_silk;
    if (35 >= var$12) {
        $var3 = new jl_Character;
        $var3.$value5 = 35;
    } else {
        $var3 = var$10[35];
        if ($var3 === null) {
            $var3 = new jl_Character;
            $var3.$value5 = 35;
            var$10[35] = $var3;
        }
    }
    var$9[5] = $var3;
    var$9[6] = nms_Item_stick;
    nms_CraftingManager_addRecipe($par1CraftingManager, $var5, var$3);
    $var3 = new nms_ItemStack;
    $var3.$itemID = nms_Item_arrow.$itemID0;
    $var3.$stackSize = 4;
    $var3.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 9);
    var$9 = var$3.data;
    var$9[0] = $rt_s(1525);
    var$9[1] = $rt_s(130);
    var$9[2] = $rt_s(355);
    var$10 = jl_Character_characterCache.data;
    var$11 = var$10.length;
    if (89 >= var$11) {
        $var5 = new jl_Character;
        $var5.$value5 = 89;
    } else {
        $var5 = var$10[89];
        if ($var5 === null) {
            $var5 = new jl_Character;
            $var5.$value5 = 89;
            var$10[89] = $var5;
        }
    }
    var$9[3] = $var5;
    var$9[4] = nms_Item_feather;
    if (88 >= var$11) {
        $var5 = new jl_Character;
        $var5.$value5 = 88;
    } else {
        $var5 = var$10[88];
        if ($var5 === null) {
            $var5 = new jl_Character;
            $var5.$value5 = 88;
            var$10[88] = $var5;
        }
    }
    var$9[5] = $var5;
    var$9[6] = nms_Item_flint;
    if (35 >= var$11) {
        $var5 = new jl_Character;
        $var5.$value5 = 35;
    } else {
        $var5 = var$10[35];
        if ($var5 === null) {
            $var5 = new jl_Character;
            $var5.$value5 = 35;
            var$10[35] = $var5;
        }
    }
    var$9[7] = $var5;
    var$9[8] = nms_Item_stick;
    nms_CraftingManager_addRecipe($par1CraftingManager, $var3, var$3);
};
function nms_RecipesIngots() {
    jl_Object.call(this);
    this.$recipeItems4 = null;
}
let nms_RecipesIngots__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $rt_createArray($rt_arraycls(jl_Object), 8);
    var$2 = var$1.data;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    nms_Block_$callClinit();
    var$4[0] = nms_Block_blockGold;
    var$5 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$6 = nms_Item_ingotGold;
    nms_ItemStack_$callClinit();
    var$5.$itemID = var$6.$itemID0;
    var$5.$stackSize = 9;
    var$5.$itemDamage = 0;
    var$4[1] = var$5;
    var$2[0] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_blockIron;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_ingotIron.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 0;
    var$4[1] = var$6;
    var$2[1] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_blockDiamond;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_diamond.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 0;
    var$4[1] = var$6;
    var$2[2] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_blockEmerald;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_emerald.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 0;
    var$4[1] = var$6;
    var$2[3] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_blockLapis;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_dyePowder.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 4;
    var$4[1] = var$6;
    var$2[4] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_blockRedstone;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_redstone.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 0;
    var$4[1] = var$6;
    var$2[5] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_coalBlock;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_coal.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 0;
    var$4[1] = var$6;
    var$2[6] = var$3;
    var$3 = $rt_createArray(jl_Object, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Block_hay;
    var$6 = new nms_ItemStack;
    var$6.$itemID = nms_Item_wheat.$itemID0;
    var$6.$stackSize = 9;
    var$6.$itemDamage = 0;
    var$4[1] = var$6;
    var$2[7] = var$3;
    $this.$recipeItems4 = var$1;
},
nms_RecipesIngots__init_0 = () => {
    let var_0 = new nms_RecipesIngots();
    nms_RecipesIngots__init_(var_0);
    return var_0;
},
nms_RecipesIngots_addRecipes = ($this, $par1CraftingManager) => {
    let $var2, var$3, $var3, $var4, var$6, var$7, var$8, var$9;
    $var2 = 0;
    while (true) {
        var$3 = $this.$recipeItems4.data;
        if ($var2 >= var$3.length)
            break;
        $var3 = var$3[$var2].data[0];
        $var4 = var$3[$var2].data[1];
        var$6 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$6.$itemID = $var3.$blockID;
        var$6.$stackSize = 1;
        var$6.$itemDamage = 0;
        var$3 = $rt_createArray(jl_Object, 5);
        var$7 = var$3.data;
        var$7[0] = $rt_s(1511);
        var$7[1] = $rt_s(1511);
        var$7[2] = $rt_s(1511);
        var$8 = jl_Character_characterCache.data;
        if (35 >= var$8.length) {
            var$9 = new jl_Character;
            var$9.$value5 = 35;
        } else {
            var$9 = var$8[35];
            if (var$9 === null) {
                var$9 = new jl_Character;
                var$9.$value5 = 35;
                var$8[35] = var$9;
            }
        }
        var$7[3] = var$9;
        var$7[4] = $var4;
        nms_CraftingManager_addRecipe($par1CraftingManager, var$6, var$3);
        var$3 = $rt_createArray(jl_Object, 3);
        var$7 = var$3.data;
        var$7[0] = $rt_s(130);
        var$8 = jl_Character_characterCache.data;
        if (35 >= var$8.length) {
            var$6 = new jl_Character;
            var$6.$value5 = 35;
        } else {
            var$6 = var$8[35];
            if (var$6 === null) {
                var$6 = new jl_Character;
                var$6.$value5 = 35;
                var$8[35] = var$6;
            }
        }
        var$7[1] = var$6;
        var$7[2] = $var3;
        nms_CraftingManager_addRecipe($par1CraftingManager, $var4, var$3);
        $var2 = $var2 + 1 | 0;
    }
    $var4 = new nms_ItemStack;
    nms_Item_$callClinit();
    $var3 = nms_Item_ingotGold;
    nms_ItemStack_$callClinit();
    $var4.$itemID = $var3.$itemID0;
    $var4.$stackSize = 1;
    $var4.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 5);
    var$7 = var$3.data;
    var$7[0] = $rt_s(1511);
    var$7[1] = $rt_s(1511);
    var$7[2] = $rt_s(1511);
    var$8 = jl_Character_characterCache.data;
    if (35 >= var$8.length) {
        $var3 = new jl_Character;
        $var3.$value5 = 35;
    } else {
        $var3 = var$8[35];
        if ($var3 === null) {
            $var3 = new jl_Character;
            $var3.$value5 = 35;
            var$8[35] = $var3;
        }
    }
    var$7[3] = $var3;
    var$7[4] = nms_Item_goldNugget;
    nms_CraftingManager_addRecipe($par1CraftingManager, $var4, var$3);
    $var3 = new nms_ItemStack;
    $var3.$itemID = nms_Item_goldNugget.$itemID0;
    $var3.$stackSize = 9;
    $var3.$itemDamage = 0;
    var$3 = $rt_createArray(jl_Object, 3);
    var$7 = var$3.data;
    var$7[0] = $rt_s(130);
    var$8 = jl_Character_characterCache.data;
    if (35 >= var$8.length) {
        $var4 = new jl_Character;
        $var4.$value5 = 35;
    } else {
        $var4 = var$8[35];
        if ($var4 === null) {
            $var4 = new jl_Character;
            $var4.$value5 = 35;
            var$8[35] = $var4;
        }
    }
    var$7[1] = $var4;
    var$7[2] = nms_Item_ingotGold;
    nms_CraftingManager_addRecipe($par1CraftingManager, $var3, var$3);
},
nms_RecipesFood = $rt_classWithoutFields(),
nms_RecipesFood__init_ = $this => {
    return;
},
nms_RecipesFood__init_0 = () => {
    let var_0 = new nms_RecipesFood();
    nms_RecipesFood__init_(var_0);
    return var_0;
},
nms_RecipesFood_addRecipes = ($this, $par1CraftingManager) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$3 = nms_Item_bowlSoup;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3.$itemID0;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 3);
    var$5 = var$4.data;
    nms_Block_$callClinit();
    var$5[0] = nms_Block_mushroomBrown;
    var$5[1] = nms_Block_mushroomRed;
    var$5[2] = nms_Item_bowlEmpty;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$2, var$4);
    var$3 = new nms_ItemStack;
    var$3.$itemID = nms_Item_cookie.$itemID0;
    var$3.$stackSize = 8;
    var$3.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 5);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1513);
    var$6 = jl_Character_characterCache.data;
    var$7 = var$6.length;
    if (88 >= var$7) {
        var$2 = new jl_Character;
        var$2.$value5 = 88;
    } else {
        var$2 = var$6[88];
        if (var$2 === null) {
            var$2 = new jl_Character;
            var$2.$value5 = 88;
            var$6[88] = var$2;
        }
    }
    var$5[1] = var$2;
    var$8 = new nms_ItemStack;
    var$8.$itemID = nms_Item_dyePowder.$itemID0;
    var$8.$stackSize = 1;
    var$8.$itemDamage = 3;
    var$5[2] = var$8;
    if (35 >= var$7) {
        var$2 = new jl_Character;
        var$2.$value5 = 35;
    } else {
        var$2 = var$6[35];
        if (var$2 === null) {
            var$2 = new jl_Character;
            var$2.$value5 = 35;
            var$6[35] = var$2;
        }
    }
    var$5[3] = var$2;
    var$5[4] = nms_Item_wheat;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$3, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_melon.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 5);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1620);
    var$5[1] = $rt_s(1620);
    var$5[2] = $rt_s(1620);
    var$6 = jl_Character_characterCache.data;
    if (77 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 77;
    } else {
        var$3 = var$6[77];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 77;
            var$6[77] = var$3;
        }
    }
    var$5[3] = var$3;
    var$5[4] = nms_Item_melon;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_melonSeeds.$itemID0;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 3);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1621);
    var$6 = jl_Character_characterCache.data;
    if (77 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 77;
    } else {
        var$3 = var$6[77];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 77;
            var$6[77] = var$3;
        }
    }
    var$5[1] = var$3;
    var$5[2] = nms_Item_melon;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_pumpkinSeeds.$itemID0;
    var$2.$stackSize = 4;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 3);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1621);
    var$6 = jl_Character_characterCache.data;
    if (77 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 77;
    } else {
        var$3 = var$6[77];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 77;
            var$6[77] = var$3;
        }
    }
    var$5[1] = var$3;
    var$5[2] = nms_Block_pumpkin;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_pumpkinPie.$itemID0;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 3);
    var$5 = var$4.data;
    var$5[0] = nms_Block_pumpkin;
    var$5[1] = nms_Item_sugar;
    var$5[2] = nms_Item_egg;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_fermentedSpiderEye.$itemID0;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 3);
    var$5 = var$4.data;
    var$5[0] = nms_Item_spiderEye;
    var$5[1] = nms_Block_mushroomBrown;
    var$5[2] = nms_Item_sugar;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_blazePowder.$itemID0;
    var$2.$stackSize = 2;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 1);
    var$4.data[0] = nms_Item_blazeRod;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Item_magmaCream.$itemID0;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 2);
    var$5 = var$4.data;
    var$5[0] = nms_Item_blazePowder;
    var$5[1] = nms_Item_slimeBall;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$2, var$4);
},
nms_RecipesCrafting = $rt_classWithoutFields(),
nms_RecipesCrafting__init_ = $this => {
    return;
},
nms_RecipesCrafting__init_0 = () => {
    let var_0 = new nms_RecipesCrafting();
    nms_RecipesCrafting__init_(var_0);
    return var_0;
},
nms_RecipesCrafting_addRecipes = ($this, $par1CraftingManager) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = new nms_ItemStack;
    nms_Block_$callClinit();
    var$3 = nms_Block_chest;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 5);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1520);
    var$5[2] = $rt_s(1511);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[3] = var$3;
    var$5[4] = nms_Block_planks;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_chestTrapped.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 5);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1622);
    var$6 = jl_Character_characterCache.data;
    var$7 = var$6.length;
    if (35 < var$7) {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    } else {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    }
    var$5[1] = var$3;
    var$5[2] = nms_Block_chest;
    if (45 < var$7) {
        var$3 = var$6[45];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 45;
            var$6[45] = var$3;
        }
    } else {
        var$3 = new jl_Character;
        var$3.$value5 = 45;
    }
    var$5[3] = var$3;
    var$5[4] = nms_Block_tripWireSource;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_enderChest.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 7);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1623);
    var$5[2] = $rt_s(1511);
    var$6 = jl_Character_characterCache.data;
    var$7 = var$6.length;
    if (35 < var$7) {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    } else {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    }
    var$5[3] = var$3;
    var$5[4] = nms_Block_obsidian;
    if (69 < var$7) {
        var$3 = var$6[69];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 69;
            var$6[69] = var$3;
        }
    } else {
        var$3 = new jl_Character;
        var$3.$value5 = 69;
    }
    var$5[5] = var$3;
    nms_Item_$callClinit();
    var$5[6] = nms_Item_eyeOfEnder;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_furnaceIdle.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 5);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1520);
    var$5[2] = $rt_s(1511);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[3] = var$3;
    var$5[4] = nms_Block_cobblestone;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_workbench.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$5[3] = nms_Block_planks;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_sandStone.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$5[3] = nms_Block_sand;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$8 = nms_Block_sandStone;
    var$2.$itemID = var$8.$blockID;
    var$2.$stackSize = 4;
    var$2.$itemDamage = 2;
    var$5 = $rt_createArray(jl_Object, 4);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1518);
    var$6[1] = $rt_s(1518);
    var$4 = jl_Character_characterCache.data;
    if (35 >= var$4.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$4[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$4[35] = var$3;
        }
    }
    var$6[2] = var$3;
    var$6[3] = var$8;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$5);
    var$3 = new nms_ItemStack;
    var$3.$itemID = nms_Block_sandStone.$blockID;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 1;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(130);
    var$5[1] = $rt_s(130);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$2 = new jl_Character;
        var$2.$value5 = 35;
    } else {
        var$2 = var$6[35];
        if (var$2 === null) {
            var$2 = new jl_Character;
            var$2.$value5 = 35;
            var$6[35] = var$2;
        }
    }
    var$5[2] = var$2;
    var$8 = new nms_ItemStack;
    var$8.$itemID = nms_Block_stoneSingleSlab.$blockID;
    var$8.$stackSize = 1;
    var$8.$itemDamage = 1;
    var$5[3] = var$8;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$3, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_blockNetherQuartz.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 1;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(130);
    var$5[1] = $rt_s(130);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = nms_Block_stoneSingleSlab.$blockID;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 7;
    var$5[3] = var$3;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$9 = nms_Block_blockNetherQuartz.$blockID;
    var$2.$itemID = var$9;
    var$2.$stackSize = 2;
    var$2.$itemDamage = 2;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(130);
    var$5[1] = $rt_s(130);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$9;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5[3] = var$3;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_stoneBrick.$blockID;
    var$2.$stackSize = 4;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1518);
    var$5[1] = $rt_s(1518);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$5[3] = nms_Block_stone;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_fenceIron.$blockID;
    var$2.$stackSize = 16;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$5[3] = nms_Item_ingotIron;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_thinGlass.$blockID;
    var$2.$stackSize = 16;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1511);
    var$5[1] = $rt_s(1511);
    var$6 = jl_Character_characterCache.data;
    if (35 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 35;
    } else {
        var$3 = var$6[35];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 35;
            var$6[35] = var$3;
        }
    }
    var$5[2] = var$3;
    var$5[3] = nms_Block_glass;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_redstoneLampIdle.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 7);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1624);
    var$5[1] = $rt_s(1625);
    var$5[2] = $rt_s(1624);
    var$6 = jl_Character_characterCache.data;
    var$7 = var$6.length;
    if (82 >= var$7) {
        var$3 = new jl_Character;
        var$3.$value5 = 82;
    } else {
        var$3 = var$6[82];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 82;
            var$6[82] = var$3;
        }
    }
    var$5[3] = var$3;
    var$5[4] = nms_Item_redstone;
    if (71 >= var$7) {
        var$3 = new jl_Character;
        var$3.$value5 = 71;
    } else {
        var$3 = var$6[71];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 71;
            var$6[71] = var$3;
        }
    }
    var$5[5] = var$3;
    var$5[6] = nms_Block_glowStone;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_beacon.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 9);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1551);
    var$5[1] = $rt_s(1626);
    var$5[2] = $rt_s(1627);
    var$6 = jl_Character_characterCache.data;
    var$9 = var$6.length;
    if (71 >= var$9) {
        var$3 = new jl_Character;
        var$3.$value5 = 71;
    } else {
        var$3 = var$6[71];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 71;
            var$6[71] = var$3;
        }
    }
    var$5[3] = var$3;
    var$5[4] = nms_Block_glass;
    if (83 >= var$9) {
        var$3 = new jl_Character;
        var$3.$value5 = 83;
    } else {
        var$3 = var$6[83];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 83;
            var$6[83] = var$3;
        }
    }
    var$5[5] = var$3;
    var$5[6] = nms_Item_netherStar;
    if (79 >= var$9) {
        var$3 = new jl_Character;
        var$3.$value5 = 79;
    } else {
        var$3 = var$6[79];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 79;
            var$6[79] = var$3;
        }
    }
    var$5[7] = var$3;
    var$5[8] = nms_Block_obsidian;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
    var$2 = new nms_ItemStack;
    var$2.$itemID = nms_Block_netherBrick.$blockID;
    var$2.$stackSize = 1;
    var$2.$itemDamage = 0;
    var$4 = $rt_createArray(jl_Object, 4);
    var$5 = var$4.data;
    var$5[0] = $rt_s(1628);
    var$5[1] = $rt_s(1628);
    var$6 = jl_Character_characterCache.data;
    if (78 >= var$6.length) {
        var$3 = new jl_Character;
        var$3.$value5 = 78;
    } else {
        var$3 = var$6[78];
        if (var$3 === null) {
            var$3 = new jl_Character;
            var$3.$value5 = 78;
            var$6[78] = var$3;
        }
    }
    var$5[2] = var$3;
    var$5[3] = nms_Item_netherrackBrick;
    nms_CraftingManager_addRecipe($par1CraftingManager, var$2, var$4);
};
function nms_RecipesArmor() {
    let a = this; jl_Object.call(a);
    a.$recipePatterns0 = null;
    a.$recipeItems0 = null;
}
let nms_RecipesArmor__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray($rt_arraycls(jl_String), 4);
    var$2 = var$1.data;
    var$2[0] = $rt_wrapArray(jl_String, [$rt_s(1517), $rt_s(1527)]);
    var$2[1] = $rt_wrapArray(jl_String, [$rt_s(1527), $rt_s(1517), $rt_s(1517)]);
    var$2[2] = $rt_wrapArray(jl_String, [$rt_s(1517), $rt_s(1527), $rt_s(1527)]);
    var$2[3] = $rt_wrapArray(jl_String, [$rt_s(1527), $rt_s(1527)]);
    $this.$recipePatterns0 = var$1;
    var$1 = $rt_createArray($rt_arraycls(jl_Object), 5);
    var$2 = var$1.data;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    nms_Item_$callClinit();
    var$4[0] = nms_Item_leather;
    nms_Block_$callClinit();
    var$4[1] = nms_Block_fire;
    var$4[2] = nms_Item_ingotIron;
    var$4[3] = nms_Item_diamond;
    var$4[4] = nms_Item_ingotGold;
    var$2[0] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_helmetLeather;
    var$4[1] = nms_Item_helmetChain;
    var$4[2] = nms_Item_helmetIron;
    var$4[3] = nms_Item_helmetDiamond;
    var$4[4] = nms_Item_helmetGold;
    var$2[1] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_plateLeather;
    var$4[1] = nms_Item_plateChain;
    var$4[2] = nms_Item_plateIron;
    var$4[3] = nms_Item_plateDiamond;
    var$4[4] = nms_Item_plateGold;
    var$2[2] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_legsLeather;
    var$4[1] = nms_Item_legsChain;
    var$4[2] = nms_Item_legsIron;
    var$4[3] = nms_Item_legsDiamond;
    var$4[4] = nms_Item_legsGold;
    var$2[3] = var$3;
    var$3 = $rt_createArray(jl_Object, 5);
    var$4 = var$3.data;
    var$4[0] = nms_Item_bootsLeather;
    var$4[1] = nms_Item_bootsChain;
    var$4[2] = nms_Item_bootsIron;
    var$4[3] = nms_Item_bootsDiamond;
    var$4[4] = nms_Item_bootsGold;
    var$2[4] = var$3;
    $this.$recipeItems0 = var$1;
},
nms_RecipesArmor__init_0 = () => {
    let var_0 = new nms_RecipesArmor();
    nms_RecipesArmor__init_(var_0);
    return var_0;
},
nms_RecipesArmor_addRecipes = ($this, $par1CraftingManager) => {
    let $var2, var$3, $var3, $var4, var$6, $var4_0, $var5, var$9, var$10;
    $var2 = 0;
    while (true) {
        var$3 = $this.$recipeItems0.data;
        if ($var2 >= var$3[0].data.length)
            break;
        $var3 = var$3[0].data[$var2];
        $var4 = 0;
        while (true) {
            var$6 = $this.$recipeItems0.data;
            if ($var4 >= (var$6.length - 1 | 0))
                break;
            $var4_0 = $var4 + 1 | 0;
            $var5 = var$6[$var4_0].data[$var2];
            var$9 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$9.$itemID = $var5.$itemID0;
            var$9.$stackSize = 1;
            var$9.$itemDamage = 0;
            var$6 = $rt_createArray(jl_Object, 3);
            var$10 = var$6.data;
            var$10[0] = $this.$recipePatterns0.data[$var4];
            var$3 = jl_Character_characterCache.data;
            if (88 >= var$3.length) {
                $var5 = new jl_Character;
                $var5.$value5 = 88;
            } else {
                $var5 = var$3[88];
                if ($var5 === null) {
                    $var5 = new jl_Character;
                    $var5.$value5 = 88;
                    var$3[88] = $var5;
                }
            }
            var$10[1] = $var5;
            var$10[2] = $var3;
            nms_CraftingManager_addRecipe($par1CraftingManager, var$9, var$6);
            $var4 = $var4_0;
        }
        $var2 = $var2 + 1 | 0;
    }
},
nms_RecipesDyes = $rt_classWithoutFields(),
nms_RecipesDyes__init_ = $this => {
    return;
},
nms_RecipesDyes__init_0 = () => {
    let var_0 = new nms_RecipesDyes();
    nms_RecipesDyes__init_(var_0);
    return var_0;
},
nms_RecipesDyes_addRecipes = ($this, $par1CraftingManager) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    $var2 = 0;
    while ($var2 < 16) {
        var$3 = new nms_ItemStack;
        nms_Block_$callClinit();
        var$4 = nms_Block_cloth;
        var$5 = ($var2 ^ (-1)) & 15;
        nms_ItemStack_$callClinit();
        var$6 = var$4.$blockID;
        var$3.$itemID = var$6;
        var$3.$stackSize = 1;
        var$3.$itemDamage = var$5;
        if (var$5 < 0)
            var$3.$itemDamage = 0;
        var$7 = $rt_createArray(jl_Object, 2);
        var$4 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$4.$itemID = nms_Item_dyePowder.$itemID0;
        var$4.$stackSize = 1;
        var$4.$itemDamage = $var2;
        if ($var2 < 0)
            var$4.$itemDamage = 0;
        var$8 = var$7.data;
        var$8[0] = var$4;
        var$4 = new nms_ItemStack;
        var$4.$itemID = nms_Item_itemsList.data[var$6].$itemID0;
        var$4.$stackSize = 1;
        var$4.$itemDamage = 0;
        var$8[1] = var$4;
        nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
        var$3 = new nms_ItemStack;
        var$3.$itemID = nms_Block_stainedClay.$blockID;
        var$3.$stackSize = 8;
        var$3.$itemDamage = var$5;
        if (var$5 < 0)
            var$3.$itemDamage = 0;
        var$7 = $rt_createArray(jl_Object, 7);
        var$8 = var$7.data;
        var$8[0] = $rt_s(1511);
        var$8[1] = $rt_s(1513);
        var$8[2] = $rt_s(1511);
        var$9 = jl_Character_characterCache.data;
        var$5 = var$9.length;
        if (35 >= var$5) {
            var$4 = new jl_Character;
            var$4.$value5 = 35;
        } else {
            var$4 = var$9[35];
            if (var$4 === null) {
                var$4 = new jl_Character;
                var$4.$value5 = 35;
                var$9[35] = var$4;
            }
        }
        var$8[3] = var$4;
        var$4 = new nms_ItemStack;
        var$4.$itemID = nms_Block_hardenedClay.$blockID;
        var$4.$stackSize = 1;
        var$4.$itemDamage = 0;
        var$8[4] = var$4;
        if (88 >= var$5) {
            var$4 = new jl_Character;
            var$4.$value5 = 88;
        } else {
            var$4 = var$9[88];
            if (var$4 === null) {
                var$4 = new jl_Character;
                var$4.$value5 = 88;
                var$9[88] = var$4;
            }
        }
        var$8[5] = var$4;
        var$4 = new nms_ItemStack;
        var$4.$itemID = nms_Item_dyePowder.$itemID0;
        var$4.$stackSize = 1;
        var$4.$itemDamage = $var2;
        if ($var2 < 0)
            var$4.$itemDamage = 0;
        var$8[6] = var$4;
        nms_CraftingManager_addRecipe($par1CraftingManager, var$3, var$7);
        $var2 = $var2 + 1 | 0;
    }
    var$4 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$3 = nms_Item_dyePowder;
    nms_ItemStack_$callClinit();
    var$4.$itemID = var$3.$itemID0;
    var$4.$stackSize = 2;
    var$4.$itemDamage = 11;
    var$7 = $rt_createArray(jl_Object, 1);
    var$8 = var$7.data;
    nms_Block_$callClinit();
    var$8[0] = nms_Block_plantYellow;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$4, var$7);
    var$3 = new nms_ItemStack;
    var$3.$itemID = nms_Item_dyePowder.$itemID0;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 1;
    var$7 = $rt_createArray(jl_Object, 1);
    var$7.data[0] = nms_Block_plantRed;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$3.$itemID = nms_Item_dyePowder.$itemID0;
    var$3.$stackSize = 3;
    var$3.$itemDamage = 15;
    var$7 = $rt_createArray(jl_Object, 1);
    var$7.data[0] = nms_Item_bone;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 9;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 1;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 14;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 1;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 11;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 10;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 2;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 8;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 0;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 7;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 8;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$11 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$11;
    var$3.$stackSize = 3;
    var$3.$itemDamage = 7;
    var$7 = $rt_createArray(jl_Object, 3);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$11;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 0;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$11;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[1] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$11;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[2] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 12;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 4;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 6;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 4;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 2;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 5;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 4;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 1;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 2;
    var$3.$itemDamage = 13;
    var$7 = $rt_createArray(jl_Object, 2);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 5;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 9;
    var$8[1] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 3;
    var$3.$itemDamage = 13;
    var$7 = $rt_createArray(jl_Object, 3);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 4;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 1;
    var$8[1] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 9;
    var$8[2] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    var$3 = new nms_ItemStack;
    var$10 = nms_Item_dyePowder.$itemID0;
    var$3.$itemID = var$10;
    var$3.$stackSize = 4;
    var$3.$itemDamage = 13;
    var$7 = $rt_createArray(jl_Object, 4);
    var$8 = var$7.data;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 4;
    var$8[0] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 1;
    var$8[1] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 1;
    var$8[2] = var$4;
    var$4 = new nms_ItemStack;
    var$4.$itemID = var$10;
    var$4.$stackSize = 1;
    var$4.$itemDamage = 15;
    var$8[3] = var$4;
    nms_CraftingManager_addShapelessRecipe($par1CraftingManager, var$3, var$7);
    $var2 = 0;
    while ($var2 < 16) {
        var$3 = new nms_ItemStack;
        var$3.$itemID = nms_Block_carpet.$blockID;
        var$3.$stackSize = 3;
        var$3.$itemDamage = $var2;
        if ($var2 < 0)
            var$3.$itemDamage = 0;
        var$7 = $rt_createArray(jl_Object, 3);
        var$8 = var$7.data;
        var$8[0] = $rt_s(1518);
        var$9 = jl_Character_characterCache.data;
        if (35 >= var$9.length) {
            var$4 = new jl_Character;
            var$4.$value5 = 35;
        } else {
            var$4 = var$9[35];
            if (var$4 === null) {
                var$4 = new jl_Character;
                var$4.$value5 = 35;
                var$9[35] = var$4;
            }
        }
        var$8[1] = var$4;
        var$4 = new nms_ItemStack;
        var$4.$itemID = nms_Block_cloth.$blockID;
        var$4.$stackSize = 1;
        var$4.$itemDamage = $var2;
        if ($var2 < 0)
            var$4.$itemDamage = 0;
        var$8[2] = var$4;
        nms_CraftingManager_addRecipe($par1CraftingManager, var$3, var$7);
        $var2 = $var2 + 1 | 0;
    }
},
nms_RecipesArmorDyes = $rt_classWithoutFields(),
nms_RecipesArmorDyes__init_ = $this => {
    return;
},
nms_RecipesArmorDyes__init_0 = () => {
    let var_0 = new nms_RecipesArmorDyes();
    nms_RecipesArmorDyes__init_(var_0);
    return var_0;
},
nms_RecipesArmorDyes_matches = ($this, $par1InventoryCrafting, $par2World) => {
    let $var3, $var4, $var5, var$6, var$7, $var6, var$9;
    $var3 = null;
    $var4 = new ju_ArrayList;
    $var4.$array = $rt_createArray(jl_Object, 10);
    $var5 = 0;
    a: {
        while (true) {
            var$6 = $par1InventoryCrafting.$stackList.data;
            var$7 = $rt_compare($var5, var$6.length);
            if (var$7 >= 0)
                return $var3 !== null && !($var4.$size0 ? 0 : 1) ? 1 : 0;
            $var6 = var$7 < 0 ? var$6[$var5] : null;
            if ($var6 !== null) {
                nms_Item_$callClinit();
                var$6 = nms_Item_itemsList.data;
                var$7 = $var6.$itemID;
                if (var$6[var$7] instanceof nms_ItemArmor) {
                    if (var$6[var$7].$material !== nms_EnumArmorMaterial_CLOTH)
                        break a;
                    if ($var3 !== null)
                        break a;
                    $var3 = $var6;
                } else {
                    if (var$7 != nms_Item_dyePowder.$itemID0)
                        break;
                    ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
                    var$6 = $var4.$array.data;
                    var$9 = $var4.$size0;
                    $var4.$size0 = var$9 + 1 | 0;
                    var$6[var$9] = $var6;
                    $var4.$modCount = $var4.$modCount + 1 | 0;
                }
            }
            $var5 = $var5 + 1 | 0;
        }
        return 0;
    }
    return 0;
},
nms_RecipesArmorDyes_getCraftingResult = ($this, $par1InventoryCrafting) => {
    let $var2, $var3, $var4, $var5, $var6, $var7, $var14, $var9, $var13, $var9_0, $var10, $var11, $var8, $var15, $var16, $var17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $var10_0, $var12;
    $var2 = null;
    $var3 = $rt_createIntArray(3).data;
    $var4 = 0;
    $var5 = 0;
    $var6 = null;
    $var7 = 0;
    while (true) {
        $var14 = $par1InventoryCrafting.$stackList.data;
        $var9 = $rt_compare($var7, $var14.length);
        if ($var9 >= 0) {
            if ($var6 === null)
                return null;
            $var9 = $var3[0] / $var5 | 0;
            $var13 = $var3[1] / $var5 | 0;
            $var9_0 = $var3[2] / $var5 | 0;
            $var10 = $var4 / $var5;
            $var4 = $var13 <= $var9_0 ? $var9_0 : $var13;
            if ($var9 > $var4)
                $var4 = $var9;
            $var11 = $var4;
            nms_ItemArmor_func_82813_b($var6, $var2, (((($var9 * $var10 / $var11 | 0) << 8) + ($var13 * $var10 / $var11 | 0) | 0) << 8) + ($var9_0 * $var10 / $var11 | 0) | 0);
            return $var2;
        }
        $var8 = $var9 < 0 ? $var14[$var7] : null;
        if ($var8 !== null) {
            nms_Item_$callClinit();
            $var14 = nms_Item_itemsList.data;
            $var15 = $var8.$itemID;
            if (!($var14[$var15] instanceof nms_ItemArmor)) {
                if ($var15 != nms_Item_dyePowder.$itemID0)
                    return null;
                $var14 = nms_EntitySheep_fleeceColorTable.data[($var8.$itemDamage ^ (-1)) & 15].data;
                $var15 = $var14[0] * 255.0 | 0;
                $var16 = $var14[1] * 255.0 | 0;
                $var17 = $var14[2] * 255.0 | 0;
                $var13 = $var16 <= $var17 ? $var17 : $var16;
                if ($var15 > $var13)
                    $var13 = $var15;
                $var4 = $var4 + $var13 | 0;
                $var3[0] = $var3[0] + $var15 | 0;
                $var3[1] = $var3[1] + $var16 | 0;
                $var3[2] = $var3[2] + $var17 | 0;
                $var5 = $var5 + 1 | 0;
            } else {
                $var6 = $var14[$var15];
                if ($var6.$material !== nms_EnumArmorMaterial_CLOTH)
                    break;
                if ($var2 !== null)
                    break;
                $var2 = new nms_ItemStack;
                $var9 = $var8.$stackSize;
                $var13 = $var8.$itemDamage;
                nms_ItemStack_$callClinit();
                $var2.$itemID = $var15;
                $var2.$stackSize = $var9;
                $var2.$itemDamage = $var13;
                if ($var13 < 0)
                    $var2.$itemDamage = 0;
                var$18 = $var8.$stackTagCompound;
                if (var$18 !== null) {
                    var$19 = new nms_NBTTagCompound;
                    var$20 = var$18.$name;
                    if (var$20 === null)
                        var$20 = $rt_s(3);
                    var$19.$name = var$20;
                    var$20 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$20.$elementCount = 0;
                    var$21 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    $var14 = var$21.data;
                    var$20.$elementData = var$21;
                    var$20.$loadFactor = 0.75;
                    var$20.$threshold = $var14.length * 0.75 | 0;
                    var$19.$tagMap = var$20;
                    var$20 = var$18.$tagMap;
                    if (var$20.$cachedKeySet === null) {
                        var$22 = new ju_HashMap$1;
                        var$22.$this$0 = var$20;
                        var$20.$cachedKeySet = var$22;
                    }
                    var$20 = var$20.$cachedKeySet.$iterator();
                    while (var$20.$hasNext()) {
                        var$22 = var$20.$next();
                        var$23 = var$18.$tagMap;
                        if (var$22 === null) {
                            var$23 = var$23.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            a: {
                                if (!var$22.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$22.$nativeString.length)
                                            break a;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            $var15 = var$22.$hashCode1;
                            $var14 = var$23.$elementData.data;
                            var$23 = $var14[$var15 & ($var14.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == $var15) {
                                    b: {
                                        var$24 = var$23.$key;
                                        if (var$22 !== var$24) {
                                            if (var$22 === var$24)
                                                $var9 = 1;
                                            else if (!(var$24 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$24 = var$24;
                                                $var9 = var$22.$nativeString !== var$24.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break b;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$23 = var$23 === null ? null : var$23.$value0;
                        var$23 = var$23.$copy();
                        var$24 = var$19.$tagMap;
                        if (var$22 !== null)
                            var$23.$name = var$22;
                        else
                            var$23.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$24, var$22, var$23);
                    }
                    $var2.$stackTagCompound = var$19;
                }
                $var2.$stackSize = 1;
                if ($var6.$material !== nms_EnumArmorMaterial_CLOTH)
                    $var9 = 0;
                else {
                    var$19 = $var8.$stackTagCompound;
                    if (!(var$19 === null ? 0 : 1))
                        $var9 = 0;
                    else {
                        c: {
                            var$19 = var$19.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                $var15 = 0;
                                while (true) {
                                    if ($var15 >= $rt_s(918).$nativeString.length)
                                        break c;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var15) | 0;
                                    $var15 = $var15 + 1 | 0;
                                }
                            }
                        }
                        $var15 = $rt_s(918).$hashCode1;
                        $var14 = var$19.$elementData.data;
                        var$19 = $var14[$var15 & ($var14.length - 1 | 0)];
                        while (var$19 !== null) {
                            if (var$19.$origKeyHash == $var15) {
                                d: {
                                    var$20 = var$19.$key;
                                    if ($rt_s(918) !== var$20) {
                                        if ($rt_s(918) === var$20)
                                            $var9 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            $var9 = 0;
                                        else {
                                            var$20 = var$20;
                                            $var9 = $rt_s(918).$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!$var9) {
                                            $var9 = 0;
                                            break d;
                                        }
                                    }
                                    $var9 = 1;
                                }
                                if ($var9)
                                    break;
                            }
                            var$19 = var$19.$next3;
                        }
                        if (!(var$19 === null ? 0 : 1))
                            $var9 = 0;
                        else {
                            e: {
                                var$23 = $var8.$stackTagCompound;
                                var$18 = var$23.$tagMap;
                                if (!$rt_s(918).$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= $rt_s(918).$nativeString.length)
                                            break e;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            $var13 = $rt_s(918).$hashCode1;
                            $var14 = var$18.$elementData.data;
                            var$22 = $var14[$var13 & ($var14.length - 1 | 0)];
                            while (var$22 !== null) {
                                if (var$22.$origKeyHash == $var13) {
                                    f: {
                                        var$18 = var$22.$key;
                                        if ($rt_s(918) !== var$18) {
                                            if ($rt_s(918) === var$18)
                                                $var9 = 1;
                                            else if (!(var$18 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$18 = var$18;
                                                $var9 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break f;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$22 = var$22.$next3;
                            }
                            if (!(var$22 === null ? 0 : 1)) {
                                var$18 = new nms_NBTTagCompound;
                                if ($rt_s(918) !== null)
                                    var$18.$name = $rt_s(918);
                                else
                                    var$18.$name = $rt_s(3);
                                var$19 = new ju_HashMap;
                                $var9 = ju_HashMap_calculateCapacity(16);
                                var$19.$elementCount = 0;
                                $var14 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                                var$21 = $var14.data;
                                var$19.$elementData = $var14;
                                var$19.$loadFactor = 0.75;
                                var$19.$threshold = var$21.length * 0.75 | 0;
                                var$18.$tagMap = var$19;
                            } else {
                                var$18 = var$23.$tagMap;
                                if ($rt_s(918) === null) {
                                    var$22 = var$18.$elementData.data[0];
                                    while (var$22 !== null && var$22.$key !== null) {
                                        var$22 = var$22.$next3;
                                    }
                                } else {
                                    g: {
                                        if (!$rt_s(918).$hashCode1) {
                                            $var9 = 0;
                                            while (true) {
                                                if ($var9 >= $rt_s(918).$nativeString.length)
                                                    break g;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var9) | 0;
                                                $var9 = $var9 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var13 = $rt_s(918).$hashCode1;
                                    $var14 = var$18.$elementData.data;
                                    var$22 = $var14[$var13 & ($var14.length - 1 | 0)];
                                    while (var$22 !== null) {
                                        if (var$22.$origKeyHash == $var13) {
                                            h: {
                                                var$18 = var$22.$key;
                                                if ($rt_s(918) !== var$18) {
                                                    if ($rt_s(918) === var$18)
                                                        $var9 = 1;
                                                    else if (!(var$18 instanceof jl_String))
                                                        $var9 = 0;
                                                    else {
                                                        var$18 = var$18;
                                                        $var9 = $rt_s(918).$nativeString !== var$18.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var9) {
                                                        $var9 = 0;
                                                        break h;
                                                    }
                                                }
                                                $var9 = 1;
                                            }
                                            if ($var9)
                                                break;
                                        }
                                        var$22 = var$22.$next3;
                                    }
                                }
                                var$18 = var$22 === null ? null : var$22.$value0;
                            }
                            i: {
                                var$18 = var$18.$tagMap;
                                if (!$rt_s(1120).$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= $rt_s(1120).$nativeString.length)
                                            break i;
                                        $rt_s(1120).$hashCode1 = (31 * $rt_s(1120).$hashCode1 | 0) + $rt_s(1120).$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            $var13 = $rt_s(1120).$hashCode1;
                            $var14 = var$18.$elementData.data;
                            var$22 = $var14[$var13 & ($var14.length - 1 | 0)];
                            while (var$22 !== null) {
                                if (var$22.$origKeyHash == $var13) {
                                    j: {
                                        var$18 = var$22.$key;
                                        if ($rt_s(1120) !== var$18) {
                                            if ($rt_s(1120) === var$18)
                                                $var9 = 1;
                                            else if (!(var$18 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$18 = var$18;
                                                $var9 = $rt_s(1120).$nativeString !== var$18.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break j;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$22 = var$22.$next3;
                            }
                            $var9 = var$22 === null ? 0 : 1;
                        }
                    }
                }
                if ($var9) {
                    $var9 = nms_ItemArmor_getColor($var6, $var2);
                    $var10_0 = ($var9 >> 16 & 255) / 255.0;
                    $var11 = ($var9 >> 8 & 255) / 255.0;
                    $var12 = ($var9 & 255) / 255.0;
                    $var4 = $var4 + jl_Math_maxImpl($var10_0, jl_Math_maxImpl($var11, $var12)) * 255.0 | 0;
                    $var3[0] = $var3[0] + $var10_0 * 255.0 | 0;
                    $var3[1] = $var3[1] + $var11 * 255.0 | 0;
                    $var3[2] = $var3[2] + $var12 * 255.0 | 0;
                    $var5 = $var5 + 1 | 0;
                }
            }
        }
        $var7 = $var7 + 1 | 0;
    }
    return null;
},
nms_RecipesArmorDyes_getRecipeSize = $this => {
    return 10;
},
nms_RecipesArmorDyes_getRecipeOutput = $this => {
    return null;
},
nms_RecipesMapCloning = $rt_classWithoutFields(),
nms_RecipesMapCloning__init_ = $this => {
    return;
},
nms_RecipesMapCloning__init_0 = () => {
    let var_0 = new nms_RecipesMapCloning();
    nms_RecipesMapCloning__init_(var_0);
    return var_0;
},
nms_RecipesMapCloning_matches = ($this, $par1InventoryCrafting, $par2World) => {
    let $var3, $var4, $var5, var$6, var$7, $var6;
    $var3 = 0;
    $var4 = null;
    $var5 = 0;
    while (true) {
        var$6 = $par1InventoryCrafting.$stackList.data;
        var$7 = $rt_compare($var5, var$6.length);
        if (var$7 >= 0)
            return $var4 !== null && $var3 > 0 ? 1 : 0;
        $var6 = var$7 < 0 ? var$6[$var5] : null;
        if ($var6 !== null) {
            var$7 = $var6.$itemID;
            nms_Item_$callClinit();
            if (var$7 == nms_Item_map.$itemID0) {
                if ($var4 !== null)
                    return 0;
                $var4 = $var6;
            } else {
                if (var$7 != nms_Item_emptyMap.$itemID0)
                    break;
                $var3 = $var3 + 1 | 0;
            }
        }
        $var5 = $var5 + 1 | 0;
    }
    return 0;
},
nms_RecipesMapCloning_getCraftingResult = ($this, $par1InventoryCrafting) => {
    let $var2, $var3, $var4, var$5, var$6, $var5, $var6, var$9, var$10, var$11;
    $var2 = 0;
    $var3 = null;
    $var4 = 0;
    while (true) {
        var$5 = $par1InventoryCrafting.$stackList.data;
        var$6 = $rt_compare($var4, var$5.length);
        if (var$6 >= 0)
            break;
        $var5 = var$6 < 0 ? var$5[$var4] : null;
        if ($var5 !== null) {
            var$6 = $var5.$itemID;
            nms_Item_$callClinit();
            if (var$6 == nms_Item_map.$itemID0) {
                if ($var3 !== null)
                    return null;
                $var3 = $var5;
            } else {
                if (var$6 != nms_Item_emptyMap.$itemID0)
                    return null;
                $var2 = $var2 + 1 | 0;
            }
        }
        $var4 = $var4 + 1 | 0;
    }
    if ($var3 !== null && $var2 >= 1) {
        $var6 = new nms_ItemStack;
        nms_Item_$callClinit();
        $par1InventoryCrafting = nms_Item_map;
        $var2 = $var2 + 1 | 0;
        var$6 = $var3.$itemDamage;
        nms_ItemStack_$callClinit();
        $var6.$itemID = $par1InventoryCrafting.$itemID0;
        $var6.$stackSize = $var2;
        $var6.$itemDamage = var$6;
        if (var$6 < 0)
            $var6.$itemDamage = 0;
        $var5 = $var3.$stackTagCompound;
        if ($var5 === null)
            $var2 = 0;
        else {
            a: {
                $var5 = $var5.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    $var2 = 0;
                    while (true) {
                        if ($var2 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var2) | 0;
                        $var2 = $var2 + 1 | 0;
                    }
                }
            }
            $var4 = $rt_s(918).$hashCode1;
            var$5 = $var5.$elementData.data;
            $var5 = var$5[$var4 & (var$5.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var4) {
                    b: {
                        var$9 = $var5.$key;
                        if ($rt_s(918) !== var$9) {
                            if ($rt_s(918) !== var$9) {
                                if (var$9 instanceof jl_String) {
                                    var$9 = var$9;
                                    $var2 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                                } else
                                    $var2 = 0;
                            } else
                                $var2 = 1;
                            if (!$var2) {
                                $var2 = 0;
                                break b;
                            }
                        }
                        $var2 = 1;
                    }
                    if ($var2)
                        break;
                }
                $var5 = $var5.$next3;
            }
            if (!($var5 === null ? 0 : 1))
                $var2 = 0;
            else {
                c: {
                    $par1InventoryCrafting = $var3.$stackTagCompound;
                    var$9 = $par1InventoryCrafting.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var2 = 0;
                        while (true) {
                            if ($var2 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var2) | 0;
                            $var2 = $var2 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(918).$hashCode1;
                var$5 = var$9.$elementData.data;
                var$9 = var$5[var$6 & (var$5.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == var$6) {
                        d: {
                            var$10 = var$9.$key;
                            if ($rt_s(918) !== var$10) {
                                if ($rt_s(918) !== var$10) {
                                    if (var$10 instanceof jl_String) {
                                        var$10 = var$10;
                                        $var2 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    } else
                                        $var2 = 0;
                                } else
                                    $var2 = 1;
                                if (!$var2) {
                                    $var2 = 0;
                                    break d;
                                }
                            }
                            $var2 = 1;
                        }
                        if ($var2)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
                if (!(var$9 === null ? 0 : 1)) {
                    $par1InventoryCrafting = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        $par1InventoryCrafting.$name = $rt_s(918);
                    else
                        $par1InventoryCrafting.$name = $rt_s(3);
                    $var5 = new ju_HashMap;
                    $var2 = ju_HashMap_calculateCapacity(16);
                    $var5.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $var2);
                    var$5 = var$11.data;
                    $var5.$elementData = var$11;
                    $var5.$loadFactor = 0.75;
                    $var5.$threshold = var$5.length * 0.75 | 0;
                    $par1InventoryCrafting.$tagMap = $var5;
                } else {
                    $par1InventoryCrafting = $par1InventoryCrafting.$tagMap;
                    if ($rt_s(918) === null) {
                        $par1InventoryCrafting = $par1InventoryCrafting.$elementData.data[0];
                        while ($par1InventoryCrafting !== null && $par1InventoryCrafting.$key !== null) {
                            $par1InventoryCrafting = $par1InventoryCrafting.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                $var2 = 0;
                                while (true) {
                                    if ($var2 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var2) | 0;
                                    $var2 = $var2 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $rt_s(918).$hashCode1;
                        var$5 = $par1InventoryCrafting.$elementData.data;
                        $par1InventoryCrafting = var$5[var$6 & (var$5.length - 1 | 0)];
                        while ($par1InventoryCrafting !== null) {
                            if ($par1InventoryCrafting.$origKeyHash == var$6) {
                                f: {
                                    var$9 = $par1InventoryCrafting.$key;
                                    if ($rt_s(918) !== var$9) {
                                        if ($rt_s(918) === var$9)
                                            $var2 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            $var2 = 0;
                                        else {
                                            var$9 = var$9;
                                            $var2 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!$var2) {
                                            $var2 = 0;
                                            break f;
                                        }
                                    }
                                    $var2 = 1;
                                }
                                if ($var2)
                                    break;
                            }
                            $par1InventoryCrafting = $par1InventoryCrafting.$next3;
                        }
                    }
                    $par1InventoryCrafting = $par1InventoryCrafting === null ? null : $par1InventoryCrafting.$value0;
                }
                g: {
                    $par1InventoryCrafting = $par1InventoryCrafting.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        $var2 = 0;
                        while (true) {
                            if ($var2 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var2) | 0;
                            $var2 = $var2 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(919).$hashCode1;
                var$5 = $par1InventoryCrafting.$elementData.data;
                $par1InventoryCrafting = var$5[var$6 & (var$5.length - 1 | 0)];
                while ($par1InventoryCrafting !== null) {
                    if ($par1InventoryCrafting.$origKeyHash == var$6) {
                        h: {
                            var$9 = $par1InventoryCrafting.$key;
                            if ($rt_s(919) !== var$9) {
                                if ($rt_s(919) === var$9)
                                    $var2 = 1;
                                else if (!(var$9 instanceof jl_String))
                                    $var2 = 0;
                                else {
                                    var$9 = var$9;
                                    $var2 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                }
                                if (!$var2) {
                                    $var2 = 0;
                                    break h;
                                }
                            }
                            $var2 = 1;
                        }
                        if ($var2)
                            break;
                    }
                    $par1InventoryCrafting = $par1InventoryCrafting.$next3;
                }
                $var2 = $par1InventoryCrafting === null ? 0 : 1;
            }
        }
        if ($var2) {
            $par1InventoryCrafting = nms_Item_itemsList.data[$var3.$itemID].$getItemDisplayName($var3);
            $var5 = $var3.$stackTagCompound;
            if ($var5 !== null) {
                i: {
                    $var5 = $var5.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        $var2 = 0;
                        while (true) {
                            if ($var2 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var2) | 0;
                            $var2 = $var2 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(918).$hashCode1;
                var$5 = $var5.$elementData.data;
                $var5 = var$5[var$6 & (var$5.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == var$6) {
                        j: {
                            var$10 = $var5.$key;
                            if ($rt_s(918) !== var$10) {
                                if ($rt_s(918) !== var$10) {
                                    if (var$10 instanceof jl_String) {
                                        var$10 = var$10;
                                        $var2 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    } else
                                        $var2 = 0;
                                } else
                                    $var2 = 1;
                                if (!$var2) {
                                    $var2 = 0;
                                    break j;
                                }
                            }
                            $var2 = 1;
                        }
                        if ($var2)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
                if ($var5 === null ? 0 : 1) {
                    k: {
                        $var3 = $var3.$stackTagCompound;
                        var$9 = $var3.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            $var2 = 0;
                            while (true) {
                                if ($var2 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var2) | 0;
                                $var2 = $var2 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(918).$hashCode1;
                    var$5 = var$9.$elementData.data;
                    var$9 = var$5[var$6 & (var$5.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$6) {
                            l: {
                                var$10 = var$9.$key;
                                if ($rt_s(918) !== var$10) {
                                    if ($rt_s(918) === var$10)
                                        $var2 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        $var2 = 0;
                                    else {
                                        var$10 = var$10;
                                        $var2 = $rt_s(918).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!$var2) {
                                        $var2 = 0;
                                        break l;
                                    }
                                }
                                $var2 = 1;
                            }
                            if ($var2)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                    if (!(var$9 === null ? 0 : 1)) {
                        var$9 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$9.$name = $rt_s(918);
                        else
                            var$9.$name = $rt_s(3);
                        $var3 = new ju_HashMap;
                        $var2 = ju_HashMap_calculateCapacity(16);
                        $var3.$elementCount = 0;
                        var$11 = $rt_createArray(ju_HashMap$HashEntry, $var2);
                        var$5 = var$11.data;
                        $var3.$elementData = var$11;
                        $var3.$loadFactor = 0.75;
                        $var3.$threshold = var$5.length * 0.75 | 0;
                        var$9.$tagMap = $var3;
                    } else {
                        $var3 = $var3.$tagMap;
                        if ($rt_s(918) === null) {
                            $var3 = $var3.$elementData.data[0];
                            while ($var3 !== null && $var3.$key !== null) {
                                $var3 = $var3.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var2 = 0;
                                    while (true) {
                                        if ($var2 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var2) | 0;
                                        $var2 = $var2 + 1 | 0;
                                    }
                                }
                            }
                            var$6 = $rt_s(918).$hashCode1;
                            var$5 = $var3.$elementData.data;
                            $var3 = var$5[var$6 & (var$5.length - 1 | 0)];
                            while ($var3 !== null) {
                                if ($var3.$origKeyHash == var$6) {
                                    n: {
                                        var$9 = $var3.$key;
                                        if ($rt_s(918) !== var$9) {
                                            if ($rt_s(918) === var$9)
                                                $var2 = 1;
                                            else if (!(var$9 instanceof jl_String))
                                                $var2 = 0;
                                            else {
                                                var$9 = var$9;
                                                $var2 = $rt_s(918).$nativeString !== var$9.$nativeString ? 0 : 1;
                                            }
                                            if (!$var2) {
                                                $var2 = 0;
                                                break n;
                                            }
                                        }
                                        $var2 = 1;
                                    }
                                    if ($var2)
                                        break;
                                }
                                $var3 = $var3.$next3;
                            }
                        }
                        var$9 = $var3 === null ? null : $var3.$value0;
                    }
                    o: {
                        $var5 = var$9.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(919).$hashCode1;
                    var$5 = $var5.$elementData.data;
                    $var5 = var$5[var$6 & (var$5.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$6) {
                            p: {
                                var$10 = $var5.$key;
                                if ($rt_s(919) !== var$10) {
                                    if ($rt_s(919) === var$10)
                                        $var2 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        $var2 = 0;
                                    else {
                                        var$10 = var$10;
                                        $var2 = $rt_s(919).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!$var2) {
                                        $var2 = 0;
                                        break p;
                                    }
                                }
                                $var2 = 1;
                            }
                            if ($var2)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if ($var5 === null ? 0 : 1) {
                        q: {
                            $var3 = var$9.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                $var2 = 0;
                                while (true) {
                                    if ($var2 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var2) | 0;
                                    $var2 = $var2 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $rt_s(919).$hashCode1;
                        var$5 = $var3.$elementData.data;
                        $var3 = var$5[var$6 & (var$5.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$6) {
                                r: {
                                    $var5 = $var3.$key;
                                    if ($rt_s(919) !== $var5) {
                                        if ($rt_s(919) === $var5)
                                            $var2 = 1;
                                        else if (!($var5 instanceof jl_String))
                                            $var2 = 0;
                                        else {
                                            $var5 = $var5;
                                            $var2 = $rt_s(919).$nativeString !== $var5.$nativeString ? 0 : 1;
                                        }
                                        if (!$var2) {
                                            $var2 = 0;
                                            break r;
                                        }
                                    }
                                    $var2 = 1;
                                }
                                if ($var2)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                        if (!($var3 === null ? 0 : 1))
                            $par1InventoryCrafting = $rt_s(3);
                        else {
                            $var3 = var$9.$tagMap;
                            if ($rt_s(919) === null) {
                                $var3 = $var3.$elementData.data[0];
                                while ($var3 !== null && $var3.$key !== null) {
                                    $var3 = $var3.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        $var2 = 0;
                                        while (true) {
                                            if ($var2 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var2) | 0;
                                            $var2 = $var2 + 1 | 0;
                                        }
                                    }
                                }
                                var$6 = $rt_s(919).$hashCode1;
                                var$5 = $var3.$elementData.data;
                                $var3 = var$5[var$6 & (var$5.length - 1 | 0)];
                                while ($var3 !== null) {
                                    if ($var3.$origKeyHash == var$6) {
                                        t: {
                                            $var5 = $var3.$key;
                                            if ($rt_s(919) !== $var5) {
                                                if ($rt_s(919) === $var5)
                                                    $var2 = 1;
                                                else if (!($var5 instanceof jl_String))
                                                    $var2 = 0;
                                                else {
                                                    $var5 = $var5;
                                                    $var2 = $rt_s(919).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                }
                                                if (!$var2) {
                                                    $var2 = 0;
                                                    break t;
                                                }
                                            }
                                            $var2 = 1;
                                        }
                                        if ($var2)
                                            break;
                                    }
                                    $var3 = $var3.$next3;
                                }
                            }
                            $par1InventoryCrafting = ($var3 === null ? null : $var3.$value0).$data1;
                        }
                    }
                }
            }
            nms_ItemStack_setItemName($var6, $par1InventoryCrafting);
        }
        return $var6;
    }
    return null;
},
nms_RecipesMapCloning_getRecipeSize = $this => {
    return 9;
},
nms_RecipesMapCloning_getRecipeOutput = $this => {
    return null;
};
function nms_ShapedRecipes() {
    let a = this; jl_Object.call(a);
    a.$recipeWidth = 0;
    a.$recipeHeight = 0;
    a.$recipeItems = null;
    a.$recipeOutput = null;
    a.$recipeOutputItemID = 0;
    a.$field_92101_f = 0;
}
let nms_ShapedRecipes_getRecipeOutput = $this => {
    return $this.$recipeOutput;
},
nms_ShapedRecipes_matches = ($this, $par1InventoryCrafting, $par2World) => {
    let $var3, $var4;
    $var3 = 0;
    while ($var3 <= (3 - $this.$recipeWidth | 0)) {
        $var4 = 0;
        while ($var4 <= (3 - $this.$recipeHeight | 0)) {
            if (nms_ShapedRecipes_checkMatch($this, $par1InventoryCrafting, $var3, $var4, 1))
                return 1;
            if (nms_ShapedRecipes_checkMatch($this, $par1InventoryCrafting, $var3, $var4, 0))
                return 1;
            $var4 = $var4 + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    return 0;
},
nms_ShapedRecipes_checkMatch = ($this, $par1InventoryCrafting, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, var$10, var$11, $var10, var$13;
    $var5 = 0;
    a: {
        while ($var5 < 3) {
            $var6 = 0;
            while ($var6 < 3) {
                $var7 = $var5 - $par2 | 0;
                $var8 = $var6 - $par3 | 0;
                $var9 = null;
                if ($var7 >= 0 && $var8 >= 0) {
                    var$10 = $this.$recipeWidth;
                    if ($var7 < var$10 && $var8 < $this.$recipeHeight)
                        $var9 = !$par4 ? $this.$recipeItems.data[$var7 + $rt_imul($var8, var$10) | 0] : $this.$recipeItems.data[((var$10 - $var7 | 0) - 1 | 0) + $rt_imul($var8, var$10) | 0];
                }
                b: {
                    if ($var5 >= 0) {
                        var$10 = $par1InventoryCrafting.$inventoryWidth;
                        if ($var5 < var$10) {
                            var$10 = $var5 + $rt_imul($var6, var$10) | 0;
                            var$11 = $par1InventoryCrafting.$stackList.data;
                            $var10 = var$10 < var$11.length ? var$11[var$10] : null;
                            break b;
                        }
                    }
                    $var10 = null;
                }
                if (!($var10 === null && $var9 === null)) {
                    if ($var10 === null && $var9 !== null)
                        break a;
                    if ($var10 !== null && $var9 === null)
                        break a;
                    if ($var9.$itemID != $var10.$itemID)
                        return 0;
                    var$13 = $var9.$itemDamage;
                    if (var$13 != 32767 && var$13 != $var10.$itemDamage)
                        return 0;
                }
                $var6 = $var6 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        return 1;
    }
    return 0;
},
nms_ShapedRecipes_getCraftingResult = ($this, $par1InventoryCrafting) => {
    let $var4, $var2, var$4, var$5, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    $var4 = $this.$recipeOutput;
    $var2 = new nms_ItemStack;
    var$4 = $var4.$itemID;
    var$5 = $var4.$stackSize;
    $var3 = $var4.$itemDamage;
    nms_ItemStack_$callClinit();
    $var2.$itemID = var$4;
    $var2.$stackSize = var$5;
    $var2.$itemDamage = $var3;
    if ($var3 < 0)
        $var2.$itemDamage = 0;
    var$7 = $var4.$stackTagCompound;
    if (var$7 !== null) {
        var$8 = new nms_NBTTagCompound;
        $var4 = var$7.$name;
        if ($var4 === null)
            $var4 = $rt_s(3);
        var$8.$name = $var4;
        $var4 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        $var4.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$10 = var$9.data;
        $var4.$elementData = var$9;
        $var4.$loadFactor = 0.75;
        $var4.$threshold = var$10.length * 0.75 | 0;
        var$8.$tagMap = $var4;
        var$11 = var$7.$tagMap;
        if (var$11.$cachedKeySet === null) {
            $var4 = new ju_HashMap$1;
            $var4.$this$0 = var$11;
            var$11.$cachedKeySet = $var4;
        }
        var$12 = var$11.$cachedKeySet.$iterator();
        while (var$12.$hasNext()) {
            var$13 = var$12.$next();
            $var4 = var$7.$tagMap;
            if (var$13 === null) {
                $var4 = $var4.$elementData.data[0];
                while ($var4 !== null && $var4.$key !== null) {
                    $var4 = $var4.$next3;
                }
            } else {
                a: {
                    if (!var$13.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= var$13.$nativeString.length)
                                break a;
                            var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$5 = var$13.$hashCode1;
                var$10 = $var4.$elementData.data;
                $var4 = var$10[var$5 & (var$10.length - 1 | 0)];
                while ($var4 !== null) {
                    if ($var4.$origKeyHash == var$5) {
                        b: {
                            var$11 = $var4.$key;
                            if (var$13 !== var$11) {
                                if (var$13 === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = var$13.$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break b;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var4 = $var4.$next3;
                }
            }
            $var4 = $var4 === null ? null : $var4.$value0;
            $var4 = $var4.$copy();
            var$11 = var$8.$tagMap;
            if (var$13 !== null)
                $var4.$name = var$13;
            else
                $var4.$name = $rt_s(3);
            ju_HashMap_putImpl(var$11, var$13, $var4);
        }
        $var2.$stackTagCompound = var$8;
    }
    c: {
        if ($this.$field_92101_f) {
            $var3 = 0;
            while (true) {
                var$10 = $par1InventoryCrafting.$stackList.data;
                var$4 = $rt_compare($var3, var$10.length);
                if (var$4 >= 0)
                    break c;
                $var4 = var$4 < 0 ? var$10[$var3] : null;
                if ($var4 !== null) {
                    var$7 = $var4.$stackTagCompound;
                    if (var$7 === null ? 0 : 1) {
                        var$8 = new nms_NBTTagCompound;
                        $var4 = var$7.$name;
                        if ($var4 === null)
                            $var4 = $rt_s(3);
                        var$8.$name = $var4;
                        $var4 = new ju_HashMap;
                        var$4 = ju_HashMap_calculateCapacity(16);
                        $var4.$elementCount = 0;
                        var$10 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                        var$9 = var$10.data;
                        $var4.$elementData = var$10;
                        $var4.$loadFactor = 0.75;
                        $var4.$threshold = var$9.length * 0.75 | 0;
                        var$8.$tagMap = $var4;
                        $var4 = var$7.$tagMap;
                        if ($var4.$cachedKeySet === null) {
                            var$11 = new ju_HashMap$1;
                            var$11.$this$0 = $var4;
                            $var4.$cachedKeySet = var$11;
                        }
                        var$12 = $var4.$cachedKeySet.$iterator();
                        while (var$12.$hasNext()) {
                            var$13 = var$12.$next();
                            $var4 = var$7.$tagMap;
                            if (var$13 === null) {
                                var$14 = $var4.$elementData.data[0];
                                while (var$14 !== null && var$14.$key !== null) {
                                    var$14 = var$14.$next3;
                                }
                            } else {
                                d: {
                                    if (!var$13.$hashCode1) {
                                        var$4 = 0;
                                        while (true) {
                                            if (var$4 >= var$13.$nativeString.length)
                                                break d;
                                            var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$4) | 0;
                                            var$4 = var$4 + 1 | 0;
                                        }
                                    }
                                }
                                var$5 = var$13.$hashCode1;
                                var$10 = $var4.$elementData.data;
                                var$14 = var$10[var$5 & (var$10.length - 1 | 0)];
                                while (var$14 !== null) {
                                    if (var$14.$origKeyHash == var$5) {
                                        e: {
                                            $var4 = var$14.$key;
                                            if (var$13 !== $var4) {
                                                if (var$13 === $var4)
                                                    var$4 = 1;
                                                else if (!($var4 instanceof jl_String))
                                                    var$4 = 0;
                                                else {
                                                    $var4 = $var4;
                                                    var$4 = var$13.$nativeString !== $var4.$nativeString ? 0 : 1;
                                                }
                                                if (!var$4) {
                                                    var$4 = 0;
                                                    break e;
                                                }
                                            }
                                            var$4 = 1;
                                        }
                                        if (var$4)
                                            break;
                                    }
                                    var$14 = var$14.$next3;
                                }
                            }
                            $var4 = var$14 === null ? null : var$14.$value0;
                            $var4 = $var4.$copy();
                            var$11 = var$8.$tagMap;
                            if (var$13 !== null)
                                $var4.$name = var$13;
                            else
                                $var4.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$11, var$13, $var4);
                        }
                        $var2.$stackTagCompound = var$8;
                    }
                }
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    return $var2;
},
nms_ShapedRecipes_getRecipeSize = $this => {
    return $rt_imul($this.$recipeWidth, $this.$recipeHeight);
},
nms_ShapedRecipes_func_92100_c = $this => {
    $this.$field_92101_f = 1;
    return $this;
},
nms_RecipesMapExtending = $rt_classWithoutFields(nms_ShapedRecipes),
nms_RecipesMapExtending__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $rt_createArray(nms_ItemStack, 9);
    var$2 = var$1.data;
    var$3 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$4 = nms_Item_paper;
    nms_ItemStack_$callClinit();
    var$5 = var$4.$itemID0;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[0] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[1] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[2] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[3] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = nms_Item_map.$itemID0;
    var$3.$stackSize = 0;
    var$3.$itemDamage = 32767;
    var$2[4] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[5] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[6] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[7] = var$3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$5;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$2[8] = var$3;
    var$3 = new nms_ItemStack;
    var$6 = nms_Item_emptyMap.$itemID0;
    var$3.$itemID = var$6;
    var$3.$stackSize = 0;
    var$3.$itemDamage = 0;
    $this.$recipeOutputItemID = var$6;
    $this.$recipeWidth = 3;
    $this.$recipeHeight = 3;
    $this.$recipeItems = var$1;
    $this.$recipeOutput = var$3;
},
nms_RecipesMapExtending__init_0 = () => {
    let var_0 = new nms_RecipesMapExtending();
    nms_RecipesMapExtending__init_(var_0);
    return var_0;
},
nms_RecipesMapExtending_matches = ($this, $par1InventoryCrafting, $par2World) => {
    let $var4, $var3, var$5, var$6, $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();$par2World = $thread.pop();$par1InventoryCrafting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_ShapedRecipes_matches($this, $par1InventoryCrafting, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4)
            return 0;
        $var3 = null;
        $var4 = 0;
        while (true) {
            var$5 = $par1InventoryCrafting.$stackList.data;
            var$6 = $rt_compare($var4, var$5.length);
            if (var$6 >= 0)
                break;
            if ($var3 !== null)
                break;
            $var5 = var$6 < 0 ? var$5[$var4] : null;
            if ($var5 !== null) {
                var$6 = $var5.$itemID;
                nms_Item_$callClinit();
                if (var$6 == nms_Item_map.$itemID0)
                    $var3 = $var5;
            }
            $var4 = $var4 + 1 | 0;
        }
        if ($var3 === null)
            return 0;
        nms_Item_$callClinit();
        $par1InventoryCrafting = nms_Item_map;
        $ptr = 2;
    case 2:
        $tmp = nms_ItemMap_getMapData($par1InventoryCrafting, $var3, $par2World);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        return $var6 === null ? 0 : $var6.$scale0 >= 4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1InventoryCrafting, $par2World, $var4, $var3, var$5, var$6, $var5, $var6, $ptr);
},
nms_RecipesMapExtending_getCraftingResult = ($this, $par1InventoryCrafting) => {
    let $var2, $var3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $var2 = null;
    $var3 = 0;
    while (true) {
        var$4 = $par1InventoryCrafting.$stackList.data;
        var$5 = $rt_compare($var3, var$4.length);
        if (var$5 >= 0)
            break;
        if ($var2 !== null)
            break;
        $var4 = var$5 < 0 ? var$4[$var3] : null;
        if ($var4 !== null) {
            var$5 = $var4.$itemID;
            nms_Item_$callClinit();
            if (var$5 == nms_Item_map.$itemID0)
                $var2 = $var4;
        }
        $var3 = $var3 + 1 | 0;
    }
    $par1InventoryCrafting = new nms_ItemStack;
    $var3 = $var2.$itemID;
    var$5 = $var2.$stackSize;
    var$7 = $var2.$itemDamage;
    nms_ItemStack_$callClinit();
    $par1InventoryCrafting.$itemID = $var3;
    $par1InventoryCrafting.$stackSize = var$5;
    $par1InventoryCrafting.$itemDamage = var$7;
    if (var$7 < 0)
        $par1InventoryCrafting.$itemDamage = 0;
    $var2 = $var2.$stackTagCompound;
    if ($var2 !== null) {
        var$8 = new nms_NBTTagCompound;
        $var4 = $var2.$name;
        if ($var4 === null)
            $var4 = $rt_s(3);
        var$8.$name = $var4;
        $var4 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        $var4.$elementCount = 0;
        var$4 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$9 = var$4.data;
        $var4.$elementData = var$4;
        $var4.$loadFactor = 0.75;
        $var4.$threshold = var$9.length * 0.75 | 0;
        var$8.$tagMap = $var4;
        $var4 = $var2.$tagMap;
        if ($var4.$cachedKeySet === null) {
            var$10 = new ju_HashMap$1;
            var$10.$this$0 = $var4;
            $var4.$cachedKeySet = var$10;
        }
        var$11 = $var4.$cachedKeySet.$iterator();
        while (var$11.$hasNext()) {
            var$12 = var$11.$next();
            $var4 = $var2.$tagMap;
            if (var$12 === null) {
                var$13 = $var4.$elementData.data[0];
                while (var$13 !== null && var$13.$key !== null) {
                    var$13 = var$13.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$5 = var$12.$hashCode1;
                var$4 = $var4.$elementData.data;
                var$13 = var$4[var$5 & (var$4.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$5) {
                        b: {
                            $var4 = var$13.$key;
                            if (var$12 !== $var4) {
                                if (var$12 === $var4)
                                    $var3 = 1;
                                else if (!($var4 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    $var4 = $var4;
                                    $var3 = var$12.$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break b;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
            }
            $var4 = var$13 === null ? null : var$13.$value0;
            $var4 = $var4.$copy();
            var$10 = var$8.$tagMap;
            if (var$12 !== null)
                $var4.$name = var$12;
            else
                $var4.$name = $rt_s(3);
            ju_HashMap_putImpl(var$10, var$12, $var4);
        }
        $par1InventoryCrafting.$stackTagCompound = var$8;
    }
    $par1InventoryCrafting.$stackSize = 1;
    if ($par1InventoryCrafting.$stackTagCompound === null) {
        $var2 = new nms_NBTTagCompound;
        $var2.$name = $rt_s(3);
        var$8 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        var$8.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$4 = var$9.data;
        var$8.$elementData = var$9;
        var$8.$loadFactor = 0.75;
        var$8.$threshold = var$4.length * 0.75 | 0;
        $var2.$tagMap = var$8;
        $par1InventoryCrafting.$stackTagCompound = $var2;
    }
    $var4 = $par1InventoryCrafting.$stackTagCompound.$tagMap;
    var$8 = new nms_NBTTagByte;
    var$8.$name = $rt_s(1328);
    var$8.$data0 = 1;
    ju_HashMap_putImpl($var4, $rt_s(1328), var$8);
    return $par1InventoryCrafting;
};
function nms_RecipeFireworks() {
    jl_Object.call(this);
    this.$field_92102_a = null;
}
let nms_RecipeFireworks__init_ = $this => {
    return;
},
nms_RecipeFireworks__init_0 = () => {
    let var_0 = new nms_RecipeFireworks();
    nms_RecipeFireworks__init_(var_0);
    return var_0;
},
nms_RecipeFireworks_matches = ($this, $par1InventoryCrafting, $par2World) => {
    let $var3, $var4, $var5, $var6, $var7, $var8, $var9, $var18, $var17, $var10, $var16, $var24, $var19, $var25, $var22, $var26, $var11, $var23, $var12, $var13, $var14, $var27, $var15, $var20, $var21, var$28;
    $this.$field_92102_a = null;
    $var3 = 0;
    $var4 = 0;
    $var5 = 0;
    $var6 = 0;
    $var7 = 0;
    $var8 = 0;
    $var9 = 0;
    a: while (true) {
        $var18 = $par1InventoryCrafting.$stackList.data;
        $var17 = $rt_compare($var9, $var18.length);
        if ($var17 >= 0) {
            $var17 = $var7 + ($var5 + $var8 | 0) | 0;
            if ($var4 <= 3) {
                $var7 = $rt_compare($var3, 1);
                if ($var7 <= 0) {
                    $var9 = $rt_compare($var4, 1);
                    if ($var9 >= 0 && !$var7 && !$var17) {
                        $par2World = new nms_ItemStack;
                        nms_Item_$callClinit();
                        $var10 = nms_Item_firework;
                        nms_ItemStack_$callClinit();
                        $par2World.$itemID = $var10.$itemID0;
                        $par2World.$stackSize = 1;
                        $par2World.$itemDamage = 0;
                        $this.$field_92102_a = $par2World;
                        if ($var6 > 0) {
                            $var16 = new nms_NBTTagCompound;
                            $var16.$name = $rt_s(3);
                            $par2World = new ju_HashMap;
                            $var3 = ju_HashMap_calculateCapacity(16);
                            $par2World.$elementCount = 0;
                            $var18 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                            $var24 = $var18.data;
                            $par2World.$elementData = $var18;
                            $par2World.$loadFactor = 0.75;
                            $par2World.$threshold = $var24.length * 0.75 | 0;
                            $var16.$tagMap = $par2World;
                            $var19 = new nms_NBTTagCompound;
                            $var19.$name = $rt_s(1629);
                            $par2World = new ju_HashMap;
                            $var3 = ju_HashMap_calculateCapacity(16);
                            $par2World.$elementCount = 0;
                            $var18 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                            $var24 = $var18.data;
                            $par2World.$elementData = $var18;
                            $par2World.$loadFactor = 0.75;
                            $par2World.$threshold = $var24.length * 0.75 | 0;
                            $var19.$tagMap = $par2World;
                            $var25 = new nms_NBTTagList;
                            $var25.$name = $rt_s(1630);
                            $par2World = new ju_ArrayList;
                            $par2World.$array = $rt_createArray(jl_Object, 10);
                            $var25.$tagList = $par2World;
                            $var22 = 0;
                            while (true) {
                                $var18 = $par1InventoryCrafting.$stackList.data;
                                $var3 = $rt_compare($var22, $var18.length);
                                if ($var3 >= 0)
                                    break;
                                $var26 = $var3 < 0 ? $var18[$var22] : null;
                                if ($var26 !== null && $var26.$itemID == nms_Item_fireworkCharge.$itemID0) {
                                    $par2World = $var26.$stackTagCompound;
                                    if ($par2World === null ? 0 : 1) {
                                        b: {
                                            $par2World = $par2World.$tagMap;
                                            if (!$rt_s(1631).$hashCode1) {
                                                $var3 = 0;
                                                while (true) {
                                                    if ($var3 >= $rt_s(1631).$nativeString.length)
                                                        break b;
                                                    $rt_s(1631).$hashCode1 = (31 * $rt_s(1631).$hashCode1 | 0) + $rt_s(1631).$nativeString.charCodeAt($var3) | 0;
                                                    $var3 = $var3 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var17 = $rt_s(1631).$hashCode1;
                                        $var18 = $par2World.$elementData.data;
                                        $var11 = $var18[$var17 & ($var18.length - 1 | 0)];
                                        while ($var11 !== null) {
                                            if ($var11.$origKeyHash == $var17) {
                                                c: {
                                                    $par2World = $var11.$key;
                                                    if ($rt_s(1631) !== $par2World) {
                                                        if ($rt_s(1631) === $par2World)
                                                            $var3 = 1;
                                                        else if (!($par2World instanceof jl_String))
                                                            $var3 = 0;
                                                        else {
                                                            $par2World = $par2World;
                                                            $var3 = $rt_s(1631).$nativeString !== $par2World.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var3) {
                                                            $var3 = 0;
                                                            break c;
                                                        }
                                                    }
                                                    $var3 = 1;
                                                }
                                                if ($var3)
                                                    break;
                                            }
                                            $var11 = $var11.$next3;
                                        }
                                        if ($var11 === null ? 0 : 1) {
                                            d: {
                                                $var26 = $var26.$stackTagCompound;
                                                $par2World = $var26.$tagMap;
                                                if (!$rt_s(1631).$hashCode1) {
                                                    $var3 = 0;
                                                    while (true) {
                                                        if ($var3 >= $rt_s(1631).$nativeString.length)
                                                            break d;
                                                        $rt_s(1631).$hashCode1 = (31 * $rt_s(1631).$hashCode1 | 0) + $rt_s(1631).$nativeString.charCodeAt($var3) | 0;
                                                        $var3 = $var3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $var17 = $rt_s(1631).$hashCode1;
                                            $var18 = $par2World.$elementData.data;
                                            $var11 = $var18[$var17 & ($var18.length - 1 | 0)];
                                            while ($var11 !== null) {
                                                if ($var11.$origKeyHash == $var17) {
                                                    e: {
                                                        $par2World = $var11.$key;
                                                        if ($rt_s(1631) !== $par2World) {
                                                            if ($rt_s(1631) === $par2World)
                                                                $var3 = 1;
                                                            else if (!($par2World instanceof jl_String))
                                                                $var3 = 0;
                                                            else {
                                                                $par2World = $par2World;
                                                                $var3 = $rt_s(1631).$nativeString !== $par2World.$nativeString ? 0 : 1;
                                                            }
                                                            if (!$var3) {
                                                                $var3 = 0;
                                                                break e;
                                                            }
                                                        }
                                                        $var3 = 1;
                                                    }
                                                    if ($var3)
                                                        break;
                                                }
                                                $var11 = $var11.$next3;
                                            }
                                            if (!($var11 === null ? 0 : 1)) {
                                                $var10 = new nms_NBTTagCompound;
                                                if ($rt_s(1631) !== null)
                                                    $var10.$name = $rt_s(1631);
                                                else
                                                    $var10.$name = $rt_s(3);
                                                $par2World = new ju_HashMap;
                                                $var3 = ju_HashMap_calculateCapacity(16);
                                                $par2World.$elementCount = 0;
                                                $var18 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                                                $var24 = $var18.data;
                                                $par2World.$elementData = $var18;
                                                $par2World.$loadFactor = 0.75;
                                                $par2World.$threshold = $var24.length * 0.75 | 0;
                                                $var10.$tagMap = $par2World;
                                            } else {
                                                $par2World = $var26.$tagMap;
                                                if ($rt_s(1631) === null) {
                                                    $var11 = $par2World.$elementData.data[0];
                                                    while ($var11 !== null && $var11.$key !== null) {
                                                        $var11 = $var11.$next3;
                                                    }
                                                } else {
                                                    f: {
                                                        if (!$rt_s(1631).$hashCode1) {
                                                            $var3 = 0;
                                                            while (true) {
                                                                if ($var3 >= $rt_s(1631).$nativeString.length)
                                                                    break f;
                                                                $rt_s(1631).$hashCode1 = (31 * $rt_s(1631).$hashCode1 | 0) + $rt_s(1631).$nativeString.charCodeAt($var3) | 0;
                                                                $var3 = $var3 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    $var17 = $rt_s(1631).$hashCode1;
                                                    $var18 = $par2World.$elementData.data;
                                                    $var11 = $var18[$var17 & ($var18.length - 1 | 0)];
                                                    while ($var11 !== null) {
                                                        if ($var11.$origKeyHash == $var17) {
                                                            g: {
                                                                $par2World = $var11.$key;
                                                                if ($rt_s(1631) !== $par2World) {
                                                                    if ($rt_s(1631) === $par2World)
                                                                        $var3 = 1;
                                                                    else if (!($par2World instanceof jl_String))
                                                                        $var3 = 0;
                                                                    else {
                                                                        $par2World = $par2World;
                                                                        $var3 = $rt_s(1631).$nativeString !== $par2World.$nativeString ? 0 : 1;
                                                                    }
                                                                    if (!$var3) {
                                                                        $var3 = 0;
                                                                        break g;
                                                                    }
                                                                }
                                                                $var3 = 1;
                                                            }
                                                            if ($var3)
                                                                break;
                                                        }
                                                        $var11 = $var11.$next3;
                                                    }
                                                }
                                                $var10 = $var11 === null ? null : $var11.$value0;
                                            }
                                            $var25.$tagType = 10;
                                            $par2World = $var25.$tagList;
                                            ju_ArrayList_ensureCapacity($par2World, $par2World.$size0 + 1 | 0);
                                            $var18 = $par2World.$array.data;
                                            $var17 = $par2World.$size0;
                                            $par2World.$size0 = $var17 + 1 | 0;
                                            $var18[$var17] = $var10;
                                            $par2World.$modCount = $par2World.$modCount + 1 | 0;
                                        }
                                    }
                                }
                                $var22 = $var22 + 1 | 0;
                            }
                            $par2World = $var19.$tagMap;
                            $var25.$name = $rt_s(1630);
                            ju_HashMap_putImpl($par2World, $rt_s(1630), $var25);
                            $var3 = $var4 << 24 >> 24;
                            $var10 = $var19.$tagMap;
                            $par2World = new nms_NBTTagByte;
                            $par2World.$name = $rt_s(1632);
                            $par2World.$data0 = $var3;
                            ju_HashMap_putImpl($var10, $rt_s(1632), $par2World);
                            $par2World = $var16.$tagMap;
                            $var19.$name = $rt_s(1629);
                            ju_HashMap_putImpl($par2World, $rt_s(1629), $var19);
                            $this.$field_92102_a.$stackTagCompound = $var16;
                        }
                        return 1;
                    }
                    if (!$var9 && !$var3 && !$var6 && $var5 > 0 && $var8 <= 1) {
                        $par2World = new nms_ItemStack;
                        nms_Item_$callClinit();
                        $var10 = nms_Item_fireworkCharge;
                        nms_ItemStack_$callClinit();
                        $par2World.$itemID = $var10.$itemID0;
                        $par2World.$stackSize = 1;
                        $par2World.$itemDamage = 0;
                        $this.$field_92102_a = $par2World;
                        $var16 = new nms_NBTTagCompound;
                        $var16.$name = $rt_s(3);
                        $par2World = new ju_HashMap;
                        $var3 = ju_HashMap_calculateCapacity(16);
                        $par2World.$elementCount = 0;
                        $var24 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                        $var18 = $var24.data;
                        $par2World.$elementData = $var24;
                        $par2World.$loadFactor = 0.75;
                        $par2World.$threshold = $var18.length * 0.75 | 0;
                        $var16.$tagMap = $par2World;
                        $var19 = new nms_NBTTagCompound;
                        $var19.$name = $rt_s(1631);
                        $par2World = new ju_HashMap;
                        $var3 = ju_HashMap_calculateCapacity(16);
                        $par2World.$elementCount = 0;
                        $var24 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                        $var18 = $var24.data;
                        $par2World.$elementData = $var24;
                        $par2World.$loadFactor = 0.75;
                        $par2World.$threshold = $var18.length * 0.75 | 0;
                        $var19.$tagMap = $par2World;
                        $var23 = 0;
                        $var12 = new ju_ArrayList;
                        $var12.$array = $rt_createArray(jl_Object, 10);
                        $var13 = 0;
                        while (true) {
                            $var18 = $par1InventoryCrafting.$stackList.data;
                            $var3 = $rt_compare($var13, $var18.length);
                            if ($var3 >= 0)
                                break;
                            $var14 = $var3 < 0 ? $var18[$var13] : null;
                            if ($var14 !== null) {
                                $var3 = $var14.$itemID;
                                if ($var3 != nms_Item_dyePowder.$itemID0) {
                                    if ($var3 == nms_Item_glowstone.$itemID0) {
                                        $var25 = $var19.$tagMap;
                                        $var10 = new nms_NBTTagByte;
                                        $var10.$name = $rt_s(1633);
                                        $var10.$data0 = 1;
                                        ju_HashMap_putImpl($var25, $rt_s(1633), $var10);
                                    } else if ($var3 == nms_Item_diamond.$itemID0) {
                                        $var25 = $var19.$tagMap;
                                        $var10 = new nms_NBTTagByte;
                                        $var10.$name = $rt_s(1634);
                                        $var10.$data0 = 1;
                                        ju_HashMap_putImpl($var25, $rt_s(1634), $var10);
                                    } else if ($var3 == nms_Item_fireballCharge.$itemID0)
                                        $var23 = 1;
                                    else if ($var3 == nms_Item_feather.$itemID0)
                                        $var23 = 4;
                                    else if ($var3 == nms_Item_goldNugget.$itemID0)
                                        $var23 = 2;
                                    else if ($var3 == nms_Item_skull.$itemID0)
                                        $var23 = 3;
                                } else {
                                    $var3 = nms_ItemDye_dyeColors.data[$var14.$itemDamage];
                                    if ($var3 >= (-128) && $var3 <= 127) {
                                        jl_Integer_ensureIntegerCache();
                                        $par2World = jl_Integer_integerCache.data[$var3 + 128 | 0];
                                    } else {
                                        $par2World = new jl_Integer;
                                        $par2World.$value = $var3;
                                    }
                                    ju_ArrayList_ensureCapacity($var12, $var12.$size0 + 1 | 0);
                                    $var18 = $var12.$array.data;
                                    $var4 = $var12.$size0;
                                    $var12.$size0 = $var4 + 1 | 0;
                                    $var18[$var4] = $par2World;
                                    $var12.$modCount = $var12.$modCount + 1 | 0;
                                }
                            }
                            $var13 = $var13 + 1 | 0;
                        }
                        $var17 = $var12.$size0;
                        $var24 = $rt_createIntArray($var17);
                        $var18 = $var24.data;
                        $var27 = 0;
                        $var3 = $var18.length;
                        while (true) {
                            if ($var27 >= $var3) {
                                $var10 = $var19.$tagMap;
                                $par2World = new nms_NBTTagIntArray;
                                $par2World.$name = $rt_s(1635);
                                $par2World.$intArray = $var24;
                                ju_HashMap_putImpl($var10, $rt_s(1635), $par2World);
                                $var10 = $var19.$tagMap;
                                $par2World = new nms_NBTTagByte;
                                $par2World.$name = $rt_s(1636);
                                $par2World.$data0 = $var23;
                                ju_HashMap_putImpl($var10, $rt_s(1636), $par2World);
                                $par2World = $var16.$tagMap;
                                $var19.$name = $rt_s(1631);
                                ju_HashMap_putImpl($par2World, $rt_s(1631), $var19);
                                $this.$field_92102_a.$stackTagCompound = $var16;
                                return 1;
                            }
                            if ($var27 < 0)
                                break;
                            if ($var27 >= $var17)
                                break;
                            $var18[$var27] = $var12.$array.data[$var27].$value;
                            $var27 = $var27 + 1 | 0;
                        }
                        $par1InventoryCrafting = new jl_IndexOutOfBoundsException;
                        $par1InventoryCrafting.$suppressionEnabled = 1;
                        $par1InventoryCrafting.$writableStackTrace = 1;
                        $rt_throw($par1InventoryCrafting);
                    }
                    if (!$var4 && !$var3 && $var6 == 1 && $var5 > 0 && $var5 == $var17) {
                        $var15 = new ju_ArrayList;
                        $var15.$array = $rt_createArray(jl_Object, 10);
                        $var17 = 0;
                        while (true) {
                            $var18 = $par1InventoryCrafting.$stackList.data;
                            $var3 = $rt_compare($var17, $var18.length);
                            if ($var3 >= 0)
                                break;
                            $var11 = $var3 < 0 ? $var18[$var17] : null;
                            if ($var11 !== null) {
                                $var3 = $var11.$itemID;
                                nms_Item_$callClinit();
                                if ($var3 == nms_Item_dyePowder.$itemID0) {
                                    $var3 = nms_ItemDye_dyeColors.data[$var11.$itemDamage];
                                    if ($var3 >= (-128) && $var3 <= 127) {
                                        jl_Integer_ensureIntegerCache();
                                        $par2World = jl_Integer_integerCache.data[$var3 + 128 | 0];
                                    } else {
                                        $par2World = new jl_Integer;
                                        $par2World.$value = $var3;
                                    }
                                    ju_ArrayList_ensureCapacity($var15, $var15.$size0 + 1 | 0);
                                    $var18 = $var15.$array.data;
                                    $var4 = $var15.$size0;
                                    $var15.$size0 = $var4 + 1 | 0;
                                    $var18[$var4] = $par2World;
                                    $var15.$modCount = $var15.$modCount + 1 | 0;
                                } else if ($var3 == nms_Item_fireworkCharge.$itemID0) {
                                    $par2World = new nms_ItemStack;
                                    $var4 = $var11.$stackSize;
                                    $var5 = $var11.$itemDamage;
                                    nms_ItemStack_$callClinit();
                                    $par2World.$itemID = $var3;
                                    $par2World.$stackSize = $var4;
                                    $par2World.$itemDamage = $var5;
                                    if ($var5 < 0)
                                        $par2World.$itemDamage = 0;
                                    $var10 = $var11.$stackTagCompound;
                                    if ($var10 !== null) {
                                        $var16 = new nms_NBTTagCompound;
                                        $var19 = $var10.$name;
                                        if ($var19 === null)
                                            $var19 = $rt_s(3);
                                        $var16.$name = $var19;
                                        $var19 = new ju_HashMap;
                                        $var3 = ju_HashMap_calculateCapacity(16);
                                        $var19.$elementCount = 0;
                                        $var24 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                                        $var18 = $var24.data;
                                        $var19.$elementData = $var24;
                                        $var19.$loadFactor = 0.75;
                                        $var19.$threshold = $var18.length * 0.75 | 0;
                                        $var16.$tagMap = $var19;
                                        $var19 = $var10.$tagMap;
                                        if ($var19.$cachedKeySet === null) {
                                            $var25 = new ju_HashMap$1;
                                            $var25.$this$0 = $var19;
                                            $var19.$cachedKeySet = $var25;
                                        }
                                        $var19 = $var19.$cachedKeySet.$iterator();
                                        while ($var19.$hasNext()) {
                                            $var25 = $var19.$next();
                                            $var11 = $var10.$tagMap;
                                            if ($var25 === null) {
                                                $var11 = $var11.$elementData.data[0];
                                                while ($var11 !== null && $var11.$key !== null) {
                                                    $var11 = $var11.$next3;
                                                }
                                            } else {
                                                h: {
                                                    if (!$var25.$hashCode1) {
                                                        $var3 = 0;
                                                        while (true) {
                                                            if ($var3 >= $var25.$nativeString.length)
                                                                break h;
                                                            $var25.$hashCode1 = (31 * $var25.$hashCode1 | 0) + $var25.$nativeString.charCodeAt($var3) | 0;
                                                            $var3 = $var3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                $var5 = $var25.$hashCode1;
                                                $var18 = $var11.$elementData.data;
                                                $var11 = $var18[$var5 & ($var18.length - 1 | 0)];
                                                while ($var11 !== null) {
                                                    if ($var11.$origKeyHash == $var5) {
                                                        i: {
                                                            $var26 = $var11.$key;
                                                            if ($var25 !== $var26) {
                                                                if ($var25 === $var26)
                                                                    $var3 = 1;
                                                                else if (!($var26 instanceof jl_String))
                                                                    $var3 = 0;
                                                                else {
                                                                    $var26 = $var26;
                                                                    $var3 = $var25.$nativeString !== $var26.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$var3) {
                                                                    $var3 = 0;
                                                                    break i;
                                                                }
                                                            }
                                                            $var3 = 1;
                                                        }
                                                        if ($var3)
                                                            break;
                                                    }
                                                    $var11 = $var11.$next3;
                                                }
                                            }
                                            $var11 = $var11 === null ? null : $var11.$value0;
                                            $var11 = $var11.$copy();
                                            $var26 = $var16.$tagMap;
                                            if ($var25 !== null)
                                                $var11.$name = $var25;
                                            else
                                                $var11.$name = $rt_s(3);
                                            ju_HashMap_putImpl($var26, $var25, $var11);
                                        }
                                        $par2World.$stackTagCompound = $var16;
                                    }
                                    $this.$field_92102_a = $par2World;
                                    $par2World.$stackSize = 1;
                                }
                            }
                            $var17 = $var17 + 1 | 0;
                        }
                        $var17 = $var15.$size0;
                        $var18 = $rt_createIntArray($var17);
                        $var24 = $var18.data;
                        $var20 = 0;
                        $var3 = $var24.length;
                        while (true) {
                            if ($var20 >= $var3) {
                                $par1InventoryCrafting = $this.$field_92102_a;
                                if ($par1InventoryCrafting !== null) {
                                    $var16 = $par1InventoryCrafting.$stackTagCompound;
                                    if ($var16 === null ? 0 : 1) {
                                        j: {
                                            $par2World = $var16.$tagMap;
                                            if (!$rt_s(1631).$hashCode1) {
                                                $var3 = 0;
                                                while (true) {
                                                    if ($var3 >= $rt_s(1631).$nativeString.length)
                                                        break j;
                                                    $rt_s(1631).$hashCode1 = (31 * $rt_s(1631).$hashCode1 | 0) + $rt_s(1631).$nativeString.charCodeAt($var3) | 0;
                                                    $var3 = $var3 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var17 = $rt_s(1631).$hashCode1;
                                        $var24 = $par2World.$elementData.data;
                                        $par2World = $var24[$var17 & ($var24.length - 1 | 0)];
                                        while ($par2World !== null) {
                                            if ($par2World.$origKeyHash == $var17) {
                                                k: {
                                                    $var10 = $par2World.$key;
                                                    if ($rt_s(1631) !== $var10) {
                                                        if ($rt_s(1631) === $var10)
                                                            $var3 = 1;
                                                        else if (!($var10 instanceof jl_String))
                                                            $var3 = 0;
                                                        else {
                                                            $var10 = $var10;
                                                            $var3 = $rt_s(1631).$nativeString !== $var10.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var3) {
                                                            $var3 = 0;
                                                            break k;
                                                        }
                                                    }
                                                    $var3 = 1;
                                                }
                                                if ($var3)
                                                    break;
                                            }
                                            $par2World = $par2World.$next3;
                                        }
                                        if (!($par2World === null ? 0 : 1)) {
                                            $var21 = new nms_NBTTagCompound;
                                            if ($rt_s(1631) !== null)
                                                $var21.$name = $rt_s(1631);
                                            else
                                                $var21.$name = $rt_s(3);
                                            $par1InventoryCrafting = new ju_HashMap;
                                            $var3 = ju_HashMap_calculateCapacity(16);
                                            $par1InventoryCrafting.$elementCount = 0;
                                            var$28 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                                            $var24 = var$28.data;
                                            $par1InventoryCrafting.$elementData = var$28;
                                            $par1InventoryCrafting.$loadFactor = 0.75;
                                            $par1InventoryCrafting.$threshold = $var24.length * 0.75 | 0;
                                            $var21.$tagMap = $par1InventoryCrafting;
                                        } else {
                                            $par2World = $var16.$tagMap;
                                            if ($rt_s(1631) === null) {
                                                $par2World = $par2World.$elementData.data[0];
                                                while ($par2World !== null && $par2World.$key !== null) {
                                                    $par2World = $par2World.$next3;
                                                }
                                            } else {
                                                l: {
                                                    if (!$rt_s(1631).$hashCode1) {
                                                        $var3 = 0;
                                                        while (true) {
                                                            if ($var3 >= $rt_s(1631).$nativeString.length)
                                                                break l;
                                                            $rt_s(1631).$hashCode1 = (31 * $rt_s(1631).$hashCode1 | 0) + $rt_s(1631).$nativeString.charCodeAt($var3) | 0;
                                                            $var3 = $var3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                $var17 = $rt_s(1631).$hashCode1;
                                                $var24 = $par2World.$elementData.data;
                                                $par2World = $var24[$var17 & ($var24.length - 1 | 0)];
                                                while ($par2World !== null) {
                                                    if ($par2World.$origKeyHash == $var17) {
                                                        m: {
                                                            $var10 = $par2World.$key;
                                                            if ($rt_s(1631) !== $var10) {
                                                                if ($rt_s(1631) === $var10)
                                                                    $var3 = 1;
                                                                else if (!($var10 instanceof jl_String))
                                                                    $var3 = 0;
                                                                else {
                                                                    $var10 = $var10;
                                                                    $var3 = $rt_s(1631).$nativeString !== $var10.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$var3) {
                                                                    $var3 = 0;
                                                                    break m;
                                                                }
                                                            }
                                                            $var3 = 1;
                                                        }
                                                        if ($var3)
                                                            break;
                                                    }
                                                    $par2World = $par2World.$next3;
                                                }
                                            }
                                            $var21 = $par2World === null ? null : $par2World.$value0;
                                        }
                                        if ($var21 === null)
                                            return 0;
                                        $var10 = $var21.$tagMap;
                                        $par2World = new nms_NBTTagIntArray;
                                        $par2World.$name = $rt_s(1637);
                                        $par2World.$intArray = $var18;
                                        ju_HashMap_putImpl($var10, $rt_s(1637), $par2World);
                                        return 1;
                                    }
                                }
                                return 0;
                            }
                            if ($var20 < 0)
                                break;
                            if ($var20 >= $var17)
                                break;
                            $var24[$var20] = $var15.$array.data[$var20].$value;
                            $var20 = $var20 + 1 | 0;
                        }
                        $par1InventoryCrafting = new jl_IndexOutOfBoundsException;
                        $par1InventoryCrafting.$suppressionEnabled = 1;
                        $par1InventoryCrafting.$writableStackTrace = 1;
                        $rt_throw($par1InventoryCrafting);
                    }
                    return 0;
                }
            }
            return 0;
        }
        $var10 = $var17 < 0 ? $var18[$var9] : null;
        n: {
            if ($var10 === null)
                break n;
            $var17 = $var10.$itemID;
            nms_Item_$callClinit();
            if ($var17 == nms_Item_gunpowder.$itemID0) {
                $var4 = $var4 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_fireworkCharge.$itemID0) {
                $var6 = $var6 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_dyePowder.$itemID0) {
                $var5 = $var5 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_paper.$itemID0) {
                $var3 = $var3 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_glowstone.$itemID0) {
                $var7 = $var7 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_diamond.$itemID0) {
                $var7 = $var7 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_fireballCharge.$itemID0) {
                $var8 = $var8 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_feather.$itemID0) {
                $var8 = $var8 + 1 | 0;
                break n;
            }
            if ($var17 == nms_Item_goldNugget.$itemID0) {
                $var8 = $var8 + 1 | 0;
                break n;
            }
            if ($var17 != nms_Item_skull.$itemID0)
                break a;
            $var8 = $var8 + 1 | 0;
        }
        $var9 = $var9 + 1 | 0;
    }
    return 0;
},
nms_RecipeFireworks_getCraftingResult = ($this, $par1InventoryCrafting) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $par1InventoryCrafting = $this.$field_92102_a;
    var$2 = new nms_ItemStack;
    var$3 = $par1InventoryCrafting.$itemID;
    var$4 = $par1InventoryCrafting.$stackSize;
    var$5 = $par1InventoryCrafting.$itemDamage;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = var$4;
    var$2.$itemDamage = var$5;
    if (var$5 < 0)
        var$2.$itemDamage = 0;
    $par1InventoryCrafting = $par1InventoryCrafting.$stackTagCompound;
    if ($par1InventoryCrafting !== null) {
        var$6 = new nms_NBTTagCompound;
        var$7 = $par1InventoryCrafting.$name;
        if (var$7 === null)
            var$7 = $rt_s(3);
        var$6.$name = var$7;
        var$7 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$9 = var$8.data;
        var$7.$elementData = var$8;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$9.length * 0.75 | 0;
        var$6.$tagMap = var$7;
        var$10 = $par1InventoryCrafting.$tagMap;
        if (var$10.$cachedKeySet === null) {
            var$7 = new ju_HashMap$1;
            var$7.$this$0 = var$10;
            var$10.$cachedKeySet = var$7;
        }
        var$11 = var$10.$cachedKeySet.$iterator();
        while (var$11.$hasNext()) {
            var$12 = var$11.$next();
            var$7 = $par1InventoryCrafting.$tagMap;
            if (var$12 === null) {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = var$12.$hashCode1;
                var$9 = var$7.$elementData.data;
                var$7 = var$9[var$4 & (var$9.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$4) {
                        b: {
                            var$10 = var$7.$key;
                            if (var$12 !== var$10) {
                                if (var$12 === var$10)
                                    var$3 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$10 = var$10;
                                    var$3 = var$12.$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break b;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$7 = var$7 === null ? null : var$7.$value0;
            var$13 = var$7.$copy();
            var$7 = var$6.$tagMap;
            if (var$12 !== null)
                var$13.$name = var$12;
            else
                var$13.$name = $rt_s(3);
            ju_HashMap_putImpl(var$7, var$12, var$13);
        }
        var$2.$stackTagCompound = var$6;
    }
    return var$2;
},
nms_RecipeFireworks_getRecipeSize = $this => {
    return 10;
},
nms_RecipeFireworks_getRecipeOutput = $this => {
    return $this.$field_92102_a;
};
function nms_RecipeSorter() {
    jl_Object.call(this);
    this.$craftingManager = null;
}
let nms_RecipeSorter__init_0 = ($this, $par1CraftingManager) => {
    $this.$craftingManager = $par1CraftingManager;
},
nms_RecipeSorter__init_ = var_0 => {
    let var_1 = new nms_RecipeSorter();
    nms_RecipeSorter__init_0(var_1, var_0);
    return var_1;
},
nms_RecipeSorter_compareRecipes = ($this, $par1IRecipe, $par2IRecipe) => {
    return $par1IRecipe instanceof nms_ShapelessRecipes && $par2IRecipe instanceof nms_ShapedRecipes ? 1 : $par2IRecipe instanceof nms_ShapelessRecipes && $par1IRecipe instanceof nms_ShapedRecipes ? (-1) : $par2IRecipe.$getRecipeSize() < $par1IRecipe.$getRecipeSize() ? (-1) : $par2IRecipe.$getRecipeSize() <= $par1IRecipe.$getRecipeSize() ? 0 : 1;
},
nms_RecipeSorter_compare = ($this, $par1Obj, $par2Obj) => {
    return nms_RecipeSorter_compareRecipes($this, $par1Obj, $par2Obj);
},
ju_Collections = $rt_classWithoutFields(),
ju_Collections_EMPTY_SET = null,
ju_Collections_EMPTY_MAP = null,
ju_Collections_EMPTY_LIST = null,
ju_Collections_EMPTY_ITERATOR = null,
ju_Collections_EMPTY_LIST_ITERATOR = null,
ju_Collections_reverseOrder = null,
ju_Collections__init_ = $this => {
    return;
},
ju_Collections__init_0 = () => {
    let var_0 = new ju_Collections();
    ju_Collections__init_(var_0);
    return var_0;
},
ju_Collections_sort = ($list, $c) => {
    let $array, var$4, $i, var$6;
    if ($c === null)
        $c = ju_Comparator$NaturalOrder_INSTANCE;
    $array = $rt_createArray(jl_Object, $list.$size0);
    var$4 = $array.data;
    ju_AbstractCollection_toArray($list, $array);
    ju_Arrays_sort($array, $c);
    $i = 0;
    var$6 = var$4.length;
    a: {
        while ($i < var$6) {
            $c = var$4[$i];
            if ($i < 0)
                break a;
            if ($i >= $list.$size0)
                break a;
            $list.$array.data[$i] = $c;
            $i = $i + 1 | 0;
        }
        return;
    }
    $list = new jl_IndexOutOfBoundsException;
    $list.$suppressionEnabled = 1;
    $list.$writableStackTrace = 1;
    $rt_throw($list);
},
ju_Collections__clinit_ = () => {
    ju_Collections_EMPTY_SET = new ju_Collections$1;
    ju_Collections_EMPTY_MAP = new ju_Collections$2;
    ju_Collections_EMPTY_LIST = new ju_Collections$3;
    ju_Collections_EMPTY_ITERATOR = new ju_Collections$4;
    ju_Collections_EMPTY_LIST_ITERATOR = new ju_Collections$5;
    ju_Collections_reverseOrder = new ju_Collections$_clinit_$lambda$_59_0;
},
otcic_CurrencyHelper = $rt_classWithoutFields(),
otcic_CurrencyHelper_$$metadata$$0 = null,
otcic_CurrencyHelper_$$metadata$$1 = null,
otcic_CurrencyHelper__init_ = $this => {
    return;
},
otcic_CurrencyHelper__init_0 = () => {
    let var_0 = new otcic_CurrencyHelper();
    otcic_CurrencyHelper__init_(var_0);
    return var_0;
},
otcic_CurrencyHelper_getCurrencies$$create = () => {
    return [{"code" : "AFN", "fractionDigits" : 2, "numericCode" : 971}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "ALL", "fractionDigits" : 2, "numericCode" : 8}, {"code" : "DZD", "fractionDigits" : 2, "numericCode" : 12}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "AOA", "fractionDigits" : 2, "numericCode" : 973}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : null,
    "fractionDigits" : 0, "numericCode" : 0}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : "ARS", "fractionDigits" : 2, "numericCode" : 32}, {"code" : "AMD", "fractionDigits" : 2, "numericCode" : 51}, {"code" : "AWG", "fractionDigits" : 2, "numericCode" : 533}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "AZN", "fractionDigits" : 2, "numericCode" : 944}, {"code" : "BSD", "fractionDigits" : 2, "numericCode"
    : 44}, {"code" : "BHD", "fractionDigits" : 3, "numericCode" : 48}, {"code" : "BDT", "fractionDigits" : 2, "numericCode" : 50}, {"code" : "BBD", "fractionDigits" : 2, "numericCode" : 52}, {"code" : "BYR", "fractionDigits" : 0, "numericCode" : 974}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "BZD", "fractionDigits" : 2, "numericCode" : 84}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "BMD", "fractionDigits" : 2, "numericCode" : 60}, {"code" : "BTN", "fractionDigits"
    : 2, "numericCode" : 64}, {"code" : "INR", "fractionDigits" : 2, "numericCode" : 356}, {"code" : "BOB", "fractionDigits" : 2, "numericCode" : 68}, {"code" : "BOV", "fractionDigits" : 2, "numericCode" : 984}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "BAM", "fractionDigits" : 2, "numericCode" : 977}, {"code" : "BWP", "fractionDigits" : 2, "numericCode" : 72}, {"code" : "NOK", "fractionDigits" : 2, "numericCode" : 578}, {"code" : "BRL", "fractionDigits" : 2, "numericCode" : 986}
    , {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "BND", "fractionDigits" : 2, "numericCode" : 96}, {"code" : "BGN", "fractionDigits" : 2, "numericCode" : 975}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "BIF", "fractionDigits" : 0, "numericCode" : 108}, {"code" : "KHR", "fractionDigits" : 2, "numericCode" : 116}, {"code" : "XAF", "fractionDigits" : 0, "numericCode" : 950}, {"code" : "CAD", "fractionDigits" : 2, "numericCode" : 124}, {"code" : "CVE", "fractionDigits"
    : 2, "numericCode" : 132}, {"code" : "KYD", "fractionDigits" : 2, "numericCode" : 136}, {"code" : "XAF", "fractionDigits" : 0, "numericCode" : 950}, {"code" : "XAF", "fractionDigits" : 0, "numericCode" : 950}, {"code" : "CLF", "fractionDigits" : 4, "numericCode" : 990}, {"code" : "CLP", "fractionDigits" : 0, "numericCode" : 152}, {"code" : "CNY", "fractionDigits" : 2, "numericCode" : 156}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}
    , {"code" : "COP", "fractionDigits" : 2, "numericCode" : 170}, {"code" : "COU", "fractionDigits" : 2, "numericCode" : 970}, {"code" : "KMF", "fractionDigits" : 0, "numericCode" : 174}, {"code" : "XAF", "fractionDigits" : 0, "numericCode" : 950}, {"code" : "CDF", "fractionDigits" : 2, "numericCode" : 976}, {"code" : "NZD", "fractionDigits" : 2, "numericCode" : 554}, {"code" : "CRC", "fractionDigits" : 2, "numericCode" : 188}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "HRK", "fractionDigits"
    : 2, "numericCode" : 191}, {"code" : "CUC", "fractionDigits" : 2, "numericCode" : 931}, {"code" : "CUP", "fractionDigits" : 2, "numericCode" : 192}, {"code" : "ANG", "fractionDigits" : 2, "numericCode" : 532}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "CZK", "fractionDigits" : 2, "numericCode" : 203}, {"code" : "DKK", "fractionDigits" : 2, "numericCode" : 208}, {"code" : "DJF", "fractionDigits" : 0, "numericCode" : 262}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" :
    951}, {"code" : "DOP", "fractionDigits" : 2, "numericCode" : 214}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "EGP", "fractionDigits" : 2, "numericCode" : 818}, {"code" : "SVC", "fractionDigits" : 2, "numericCode" : 222}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "XAF", "fractionDigits" : 0, "numericCode" : 950}, {"code" : "ERN", "fractionDigits" : 2, "numericCode" : 232}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "ETB",
    "fractionDigits" : 2, "numericCode" : 230}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "FKP", "fractionDigits" : 2, "numericCode" : 238}, {"code" : "DKK", "fractionDigits" : 2, "numericCode" : 208}, {"code" : "FJD", "fractionDigits" : 2, "numericCode" : 242}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "XPF", "fractionDigits" : 0,
    "numericCode" : 953}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "XAF", "fractionDigits" : 0, "numericCode" : 950}, {"code" : "GMD", "fractionDigits" : 2, "numericCode" : 270}, {"code" : "GEL", "fractionDigits" : 2, "numericCode" : 981}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "GHS", "fractionDigits" : 2, "numericCode" : 936}, {"code" : "GIP", "fractionDigits" : 2, "numericCode" : 292}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}
    , {"code" : "DKK", "fractionDigits" : 2, "numericCode" : 208}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "GTQ", "fractionDigits" : 2, "numericCode" : 320}, {"code" : "GBP", "fractionDigits" : 2, "numericCode" : 826}, {"code" : "GNF", "fractionDigits" : 0, "numericCode" : 324}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "GYD", "fractionDigits"
    : 2, "numericCode" : 328}, {"code" : "HTG", "fractionDigits" : 2, "numericCode" : 332}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "HNL", "fractionDigits" : 2, "numericCode" : 340}, {"code" : "HKD", "fractionDigits" : 2, "numericCode" : 344}, {"code" : "HUF", "fractionDigits" : 2, "numericCode" : 348}, {"code" : "ISK", "fractionDigits" : 0, "numericCode" : 352}
    , {"code" : "INR", "fractionDigits" : 2, "numericCode" : 356}, {"code" : "IDR", "fractionDigits" : 2, "numericCode" : 360}, {"code" : "XDR", "fractionDigits" : -1, "numericCode" : 960}, {"code" : "IRR", "fractionDigits" : 2, "numericCode" : 364}, {"code" : "IQD", "fractionDigits" : 3, "numericCode" : 368}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "GBP", "fractionDigits" : 2, "numericCode" : 826}, {"code" : "ILS", "fractionDigits" : 2, "numericCode" : 376}, {"code" : "EUR", "fractionDigits"
    : 2, "numericCode" : 978}, {"code" : "JMD", "fractionDigits" : 2, "numericCode" : 388}, {"code" : "JPY", "fractionDigits" : 0, "numericCode" : 392}, {"code" : "GBP", "fractionDigits" : 2, "numericCode" : 826}, {"code" : "JOD", "fractionDigits" : 3, "numericCode" : 400}, {"code" : "KZT", "fractionDigits" : 2, "numericCode" : 398}, {"code" : "KES", "fractionDigits" : 2, "numericCode" : 404}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "KPW", "fractionDigits" : 2, "numericCode" : 408}
    , {"code" : "KRW", "fractionDigits" : 0, "numericCode" : 410}, {"code" : "KWD", "fractionDigits" : 3, "numericCode" : 414}, {"code" : "KGS", "fractionDigits" : 2, "numericCode" : 417}, {"code" : "LAK", "fractionDigits" : 2, "numericCode" : 418}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "LBP", "fractionDigits" : 2, "numericCode" : 422}, {"code" : "LSL", "fractionDigits" : 2, "numericCode" : 426}, {"code" : "ZAR", "fractionDigits" : 2, "numericCode" : 710}, {"code" : "LRD", "fractionDigits"
    : 2, "numericCode" : 430}, {"code" : "LYD", "fractionDigits" : 3, "numericCode" : 434}, {"code" : "CHF", "fractionDigits" : 2, "numericCode" : 756}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "MOP", "fractionDigits" : 2, "numericCode" : 446}, {"code" : "MKD", "fractionDigits" : 2, "numericCode" : 807}, {"code" : "MGA", "fractionDigits" : 2, "numericCode" : 969}, {"code" : "MWK", "fractionDigits" : 2, "numericCode" :
    454}, {"code" : "MYR", "fractionDigits" : 2, "numericCode" : 458}, {"code" : "MVR", "fractionDigits" : 2, "numericCode" : 462}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "MRO", "fractionDigits" : 2, "numericCode" : 478}, {"code" : "MUR", "fractionDigits" : 2, "numericCode" : 480}, {"code" : "EUR",
    "fractionDigits" : 2, "numericCode" : 978}, {"code" : "XUA", "fractionDigits" : -1, "numericCode" : 965}, {"code" : "MXN", "fractionDigits" : 2, "numericCode" : 484}, {"code" : "MXV", "fractionDigits" : 2, "numericCode" : 979}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "MDL", "fractionDigits" : 2, "numericCode" : 498}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "MNT", "fractionDigits" : 2, "numericCode" : 496}, {"code" : "EUR", "fractionDigits" : 2,
    "numericCode" : 978}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : "MAD", "fractionDigits" : 2, "numericCode" : 504}, {"code" : "MZN", "fractionDigits" : 2, "numericCode" : 943}, {"code" : "MMK", "fractionDigits" : 2, "numericCode" : 104}, {"code" : "NAD", "fractionDigits" : 2, "numericCode" : 516}, {"code" : "ZAR", "fractionDigits" : 2, "numericCode" : 710}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "NPR", "fractionDigits" : 2, "numericCode" : 524},
    {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "XPF", "fractionDigits" : 0, "numericCode" : 953}, {"code" : "NZD", "fractionDigits" : 2, "numericCode" : 554}, {"code" : "NIO", "fractionDigits" : 2, "numericCode" : 558}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "NGN", "fractionDigits" : 2, "numericCode" : 566}, {"code" : "NZD", "fractionDigits" : 2, "numericCode" : 554}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "USD", "fractionDigits"
    : 2, "numericCode" : 840}, {"code" : "NOK", "fractionDigits" : 2, "numericCode" : 578}, {"code" : "OMR", "fractionDigits" : 3, "numericCode" : 512}, {"code" : "PKR", "fractionDigits" : 2, "numericCode" : 586}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : null, "fractionDigits" : 0, "numericCode" : 0}, {"code" : "PAB", "fractionDigits" : 2, "numericCode" : 590}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "PGK", "fractionDigits" : 2, "numericCode" : 598}
    , {"code" : "PYG", "fractionDigits" : 0, "numericCode" : 600}, {"code" : "PEN", "fractionDigits" : 2, "numericCode" : 604}, {"code" : "PHP", "fractionDigits" : 2, "numericCode" : 608}, {"code" : "NZD", "fractionDigits" : 2, "numericCode" : 554}, {"code" : "PLN", "fractionDigits" : 2, "numericCode" : 985}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "QAR", "fractionDigits" : 2, "numericCode" : 634}, {"code" : "EUR", "fractionDigits"
    : 2, "numericCode" : 978}, {"code" : "RON", "fractionDigits" : 2, "numericCode" : 946}, {"code" : "RUB", "fractionDigits" : 2, "numericCode" : 643}, {"code" : "RWF", "fractionDigits" : 0, "numericCode" : 646}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "SHP", "fractionDigits" : 2, "numericCode" : 654}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" :
    978}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "XCD", "fractionDigits" : 2, "numericCode" : 951}, {"code" : "WST", "fractionDigits" : 2, "numericCode" : 882}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "STD", "fractionDigits" : 2, "numericCode" : 678}, {"code" : "SAR", "fractionDigits" : 2, "numericCode" : 682}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "RSD", "fractionDigits" : 2, "numericCode" : 941}, {"code" : "SCR",
    "fractionDigits" : 2, "numericCode" : 690}, {"code" : "SLL", "fractionDigits" : 2, "numericCode" : 694}, {"code" : "SGD", "fractionDigits" : 2, "numericCode" : 702}, {"code" : "ANG", "fractionDigits" : 2, "numericCode" : 532}, {"code" : "XSU", "fractionDigits" : -1, "numericCode" : 994}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "SBD", "fractionDigits" : 2, "numericCode" : 90}, {"code" : "SOS", "fractionDigits" : 2,
    "numericCode" : 706}, {"code" : "ZAR", "fractionDigits" : 2, "numericCode" : 710}, {"code" : null, "fractionDigits" : 0, "numericCode" : 0}, {"code" : "SSP", "fractionDigits" : 2, "numericCode" : 728}, {"code" : "EUR", "fractionDigits" : 2, "numericCode" : 978}, {"code" : "LKR", "fractionDigits" : 2, "numericCode" : 144}, {"code" : "SDG", "fractionDigits" : 2, "numericCode" : 938}, {"code" : "SRD", "fractionDigits" : 2, "numericCode" : 968}, {"code" : "NOK", "fractionDigits" : 2, "numericCode" : 578}, {"code"
    : "SZL", "fractionDigits" : 2, "numericCode" : 748}, {"code" : "SEK", "fractionDigits" : 2, "numericCode" : 752}, {"code" : "CHE", "fractionDigits" : 2, "numericCode" : 947}, {"code" : "CHF", "fractionDigits" : 2, "numericCode" : 756}, {"code" : "CHW", "fractionDigits" : 2, "numericCode" : 948}, {"code" : "SYP", "fractionDigits" : 2, "numericCode" : 760}, {"code" : "TWD", "fractionDigits" : 2, "numericCode" : 901}, {"code" : "TJS", "fractionDigits" : 2, "numericCode" : 972}, {"code" : "TZS", "fractionDigits"
    : 2, "numericCode" : 834}, {"code" : "THB", "fractionDigits" : 2, "numericCode" : 764}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "XOF", "fractionDigits" : 0, "numericCode" : 952}, {"code" : "NZD", "fractionDigits" : 2, "numericCode" : 554}, {"code" : "TOP", "fractionDigits" : 2, "numericCode" : 776}, {"code" : "TTD", "fractionDigits" : 2, "numericCode" : 780}, {"code" : "TND", "fractionDigits" : 3, "numericCode" : 788}, {"code" : "TRY", "fractionDigits" : 2, "numericCode" :
    949}, {"code" : "TMT", "fractionDigits" : 2, "numericCode" : 934}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "AUD", "fractionDigits" : 2, "numericCode" : 36}, {"code" : "UGX", "fractionDigits" : 0, "numericCode" : 800}, {"code" : "UAH", "fractionDigits" : 2, "numericCode" : 980}, {"code" : "AED", "fractionDigits" : 2, "numericCode" : 784}, {"code" : "GBP", "fractionDigits" : 2, "numericCode" : 826}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "USN",
    "fractionDigits" : 2, "numericCode" : 997}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "UYI", "fractionDigits" : 0, "numericCode" : 940}, {"code" : "UYU", "fractionDigits" : 2, "numericCode" : 858}, {"code" : "UZS", "fractionDigits" : 2, "numericCode" : 860}, {"code" : "VUV", "fractionDigits" : 0, "numericCode" : 548}, {"code" : "VEF", "fractionDigits" : 2, "numericCode" : 937}, {"code" : "VND", "fractionDigits" : 0, "numericCode" : 704}, {"code" : "USD", "fractionDigits" : 2,
    "numericCode" : 840}, {"code" : "USD", "fractionDigits" : 2, "numericCode" : 840}, {"code" : "XPF", "fractionDigits" : 0, "numericCode" : 953}, {"code" : "MAD", "fractionDigits" : 2, "numericCode" : 504}, {"code" : "YER", "fractionDigits" : 2, "numericCode" : 886}, {"code" : "ZMW", "fractionDigits" : 2, "numericCode" : 967}, {"code" : "ZWL", "fractionDigits" : 2, "numericCode" : 932}, {"code" : "XBA", "fractionDigits" : -1, "numericCode" : 955}, {"code" : "XBB", "fractionDigits" : -1, "numericCode" : 956}
    , {"code" : "XBC", "fractionDigits" : -1, "numericCode" : 957}, {"code" : "XBD", "fractionDigits" : -1, "numericCode" : 958}, {"code" : "XTS", "fractionDigits" : -1, "numericCode" : 963}, {"code" : "XXX", "fractionDigits" : -1, "numericCode" : 999}, {"code" : "XAU", "fractionDigits" : -1, "numericCode" : 959}, {"code" : "XPD", "fractionDigits" : -1, "numericCode" : 964}, {"code" : "XPT", "fractionDigits" : -1, "numericCode" : 962}, {"code" : "XAG", "fractionDigits" : -1, "numericCode" : 961}];
},
otcic_CurrencyHelper_getCountryToCurrencyMap$$create = () => {
    return {"": {"value" : "CYP"}, "PR": {"value" : "USD"}, "PT": {"value" : "EUR"}, "PW": {"value" : "USD"}, "PY": {"value" : "PYG"}, "QA": {"value" : "QAR"}, "AC": {"value" : "SHP"}, "AD": {"value" : "EUR"}, "AE": {"value" : "AED"}, "AF": {"value" : "AFN"}, "AG": {"value" : "XCD"}, "AI": {"value" : "XCD"}, "AL": {"value" : "ALL"}, "AM": {"value" : "AMD"}, "AN": {"value" : "ANG"}, "AO": {"value" : "AOA"}, "242": {"value" : "Brazzaville"}, "AQ": {"value" : ""}, "AR": {"value" : "ARS"}, "243": {"value" : "Kinshasa"}
    , "AS": {"value" : "USD"}, "AT": {"value" : "EUR"}, "RE": {"value" : "EUR"}, "AU": {"value" : ""}, "AW": {"value" : "AWG"}, "AX": {"value" : "EUR"}, "AZ": {"value" : "AMD"}, "RO": {"value" : "RON"}, "BA": {"value" : "BAM"}, "BB": {"value" : "BBD"}, "RS": {"value" : "RSD"}, "BD": {"value" : "BDT"}, "BE": {"value" : "EUR"}, "RU": {"value" : "RUB"}, "BF": {"value" : "XOF"}, "BG": {"value" : "BGN"}, "RW": {"value" : "RWF"}, "27": {"value" : ""}, "BH": {"value" : "BHD"}, "BI": {"value" : "BIF"}, "BJ": {"value"
    : "XOF"}, "BM": {"value" : "BMD"}, "BN": {"value" : "BND"}, "BO": {"value" : "BOB"}, "SA": {"value" : "SAR"}, "SB": {"value" : "SBD"}, "BR": {"value" : "BRL"}, "SC": {"value" : "SCR"}, "SD": {"value" : "SDD"}, "BT": {"value" : "BTN"}, "SE": {"value" : "SEK"}, "SG": {"value" : "SGD"}, "BV": {"value" : ""}, "BW": {"value" : "BWP"}, "SH": {"value" : "SHP"}, "SI": {"value" : "EUR"}, "BY": {"value" : "BYR"}, "SJ": {"value" : "NOK"}, "BZ": {"value" : "BZD"}, "SK": {"value" : "SKK"}, "SL": {"value" : "SLL"}, "SM":
    {"value" : "EUR"}, "SN": {"value" : "XOF"}, "SO": {"value" : ""}, "CA": {"value" : "CAD"}, "SR": {"value" : "SRD"}, "CC": {"value" : "AUD"}, "ST": {"value" : "STD"}, "CF": {"value" : "XAF"}, "SV": {"value" : "USD"}, "CH": {"value" : "CHF"}, "CI": {"value" : "XOF"}, "SY": {"value" : "SYP"}, "SZ": {"value" : "SZL"}, "CK": {"value" : "NZD"}, "CL": {"value" : "CLP"}, "CM": {"value" : "XAF"}, "CO": {"value" : "COP"}, "TA": {"value" : "SHP"}, "CR": {"value" : "CRC"}, "TC": {"value" : "USD"}, "TD": {"value" : "XAF"}
    , "CU": {"value" : "CUP"}, "TF": {"value" : ""}, "CV": {"value" : "CVE"}, "TG": {"value" : "XOF"}, "TH": {"value" : "THB"}, "CX": {"value" : "AUD"}, "CY": {"value" : "TRY"}, "TJ": {"value" : "TJS"}, "CZ": {"value" : "CZK"}, "TK": {"value" : "NZD"}, "TL": {"value" : "USD"}, "TM": {"value" : "TMM"}, "TN": {"value" : "TND"}, "TO": {"value" : "TOP"}, "TR": {"value" : "TRY"}, "TT": {"value" : "TTD"}, "DE": {"value" : "EUR"}, "TV": {"value" : "AUD"}, "DJ": {"value" : "DJF"}, "TZ": {"value" : "TZS"}, "DK": {"value"
    : "DKK"}, "DM": {"value" : "XCD"}, "DO": {"value" : "DOP"}, "UA": {"value" : "UAH"}, "UG": {"value" : "UGX"}, "DZ": {"value" : "DZD"}, "UM": {"value" : ""}, "EC": {"value" : "USD"}, "US": {"value" : "USD"}, "EE": {"value" : "EEK"}, "EG": {"value" : "EGP"}, "UY": {"value" : "UYU"}, "UZ": {"value" : "UZS"}, "VA": {"value" : "EUR"}, "ER": {"value" : "ERN"}, "VC": {"value" : "XCD"}, "ES": {"value" : "EUR"}, "ET": {"value" : "ETB"}, "VE": {"value" : "VEB"}, "VG": {"value" : "USD"}, "VI": {"value" : "USD"}, "VN":
    {"value" : "VND"}, "VU": {"value" : "VUV"}, "FI": {"value" : "EUR"}, "FJ": {"value" : "FJD"}, "FK": {"value" : "FKP"}, "FM": {"value" : "USD"}, "FO": {"value" : "DKK"}, "FR": {"value" : "EUR"}, "WF": {"value" : "XPF"}, "850": {"value" : "Pyongyang"}, "GA": {"value" : "XAF"}, "GB": {"value" : "GBP"}, "WS": {"value" : "WST"}, "GD": {"value" : "XCD"}, "GE": {"value" : "RUB and GEL"}, "GF": {"value" : "EUR"}, "GG": {"value" : "GGP"}, "GH": {"value" : "GHC"}, "GI": {"value" : "GIP"}, "GL": {"value" : "DKK"},
    "GN": {"value" : "GNF"}, "GP": {"value" : "EUR"}, "GQ": {"value" : "XAF"}, "GR": {"value" : "EUR"}, "GS": {"value" : ""}, "GT": {"value" : "GTQ"}, "GU": {"value" : "USD"}, "GW": {"value" : "XOF"}, "GY": {"value" : "GYD"}, "-241": {"value" : "Nassau"}, "82": {"value" : "Seoul"}, "86": {"value" : "Beijing"}, "HK": {"value" : "HKD"}, "HM": {"value" : ""}, "HN": {"value" : "HNL"}, "HR": {"value" : "HRK"}, "HT": {"value" : "HTG"}, "YE": {"value" : "YER"}, "HU": {"value" : "HUF"}, "ID": {"value" : "IDR"}, "YT":
    {"value" : "EUR"}, "IE": {"value" : "EUR"}, "IL": {"value" : "ILS"}, "IM": {"value" : "IMP"}, "IN": {"value" : "INR"}, "IO": {"value" : ""}, "IQ": {"value" : "IQD"}, "IR": {"value" : "IRR"}, "IS": {"value" : "ISK"}, "IT": {"value" : "EUR"}, "ZM": {"value" : "ZMK"}, "886": {"value" : "Taipei"}, "JE": {"value" : "JEP"}, "ZW": {"value" : "ZWD"}, "JM": {"value" : "JMD"}, "JO": {"value" : "JOD"}, "JP": {"value" : "JPY"}, "KE": {"value" : "KES"}, "KG": {"value" : "KGS"}, "KH": {"value" : "KHR"}, "KI": {"value"
    : "AUD"}, "KM": {"value" : "KMF"}, "KN": {"value" : "XCD"}, "KW": {"value" : "KWD"}, "KY": {"value" : "KYD"}, "KZ": {"value" : "KZT"}, "LA": {"value" : "LAK"}, "LB": {"value" : "LBP"}, "LC": {"value" : "XCD"}, "LI": {"value" : "CHF"}, "LK": {"value" : "LKR"}, "LR": {"value" : "LRD"}, "LS": {"value" : "LSL"}, "LT": {"value" : "LTL"}, "LU": {"value" : "EUR"}, "LV": {"value" : "LVL"}, "LY": {"value" : "LYD"}, "MA": {"value" : "MAD"}, "MC": {"value" : "EUR"}, "MD": {"value" : ""}, "ME": {"value" : "EUR"}, "MG":
    {"value" : "MGA"}, "MH": {"value" : "USD"}, "MK": {"value" : "MKD"}, "ML": {"value" : "XOF"}, "MM": {"value" : "MMK"}, "MN": {"value" : "MNT"}, "MO": {"value" : "MOP"}, "MP": {"value" : "USD"}, "MQ": {"value" : "EUR"}, "MR": {"value" : "MRO"}, "MS": {"value" : "XCD"}, "MT": {"value" : "MTL"}, "MU": {"value" : "MUR"}, "MV": {"value" : "MVR"}, "MW": {"value" : "MWK"}, "MX": {"value" : "MXN"}, "MY": {"value" : "MYR"}, "MZ": {"value" : "MZM"}, "NA": {"value" : "NAD"}, "NC": {"value" : "XPF"}, "NE": {"value"
    : "XOF"}, "NF": {"value" : "AUD"}, "NG": {"value" : "NGN"}, "NI": {"value" : "NIO"}, "NL": {"value" : "EUR"}, "NO": {"value" : "NOK"}, "NP": {"value" : "NPR"}, "NR": {"value" : "AUD"}, "NU": {"value" : "NZD"}, "NZ": {"value" : "NZD"}, "OM": {"value" : "OMR"}, "220": {"value" : "Banjul"}, "PA": {"value" : "PAB"}, "PE": {"value" : "PEN"}, "PF": {"value" : ""}, "PG": {"value" : "PGK"}, "PH": {"value" : "PHP"}, "PK": {"value" : "PKR"}, "PL": {"value" : "PLN"}, "PM": {"value" : "EUR"}, "PN": {"value" : "NZD"}
    };
};
function ju_TimeZone() {
    jl_Object.call(this);
    this.$id5 = null;
}
let ju_TimeZone_defaultTz = null,
ju_TimeZone_GMT = null,
ju_TimeZone_$callClinit = () => {
    ju_TimeZone_$callClinit = $rt_eraseClinit(ju_TimeZone);
    ju_TimeZone__clinit_();
},
ju_TimeZone_detectTimezone = () => {
    let $innerTz, var$2, var$3;
    ju_TimeZone_$callClinit();
    $innerTz = otcit_DateTimeZoneProvider_detectTimezone();
    if ($innerTz === null)
        var$2 = null;
    else {
        var$2 = new ju_IANATimeZone;
        var$2.$id5 = $innerTz.$iID;
        var$2.$underlyingZone = $innerTz;
        var$3 = $innerTz.$getStandardOffset(jl_System_currentTimeMillis());
        var$2.$rawOffset = var$3;
        var$2.$diff =  -var$3 | 0;
    }
    return var$2;
},
ju_TimeZone_getTimeZone = $name => {
    let $jodaZone, $hour, $sign, $position, $formattedName, var$7, $index, $raw, $minute, $$je;
    ju_TimeZone_$callClinit();
    $jodaZone = otcit_DateTimeZoneProvider_getTimeZone($name);
    if ($jodaZone !== null) {
        $name = new ju_IANATimeZone;
        $name.$id5 = $jodaZone.$iID;
        $name.$underlyingZone = $jodaZone;
        $hour = $jodaZone.$getStandardOffset(jl_System_currentTimeMillis());
        $name.$rawOffset = $hour;
        $name.$diff =  -$hour | 0;
        return $name;
    }
    $hour = $name === $rt_s(1638) ? 1 : jl_String_startsWith($name, $rt_s(1638), 0);
    a: {
        if ($hour && $name.$nativeString.length > 3) {
            if (3 >= $name.$nativeString.length) {
                $name = new jl_StringIndexOutOfBoundsException;
                $name.$suppressionEnabled = 1;
                $name.$writableStackTrace = 1;
                $rt_throw($name);
            }
            $sign = $name.$nativeString.charCodeAt(3);
            if (!($sign != 43 && $sign != 45)) {
                $position = $rt_createIntArray(1);
                $formattedName = ju_TimeZone_formatTimeZoneName($name, 4);
                $hour = ju_TimeZone_parseNumber($formattedName, 4, $position);
                if ($hour >= 0 && $hour <= 23) {
                    var$7 = $position.data;
                    $index = var$7[0];
                    if ($index == (-1))
                        break a;
                    else {
                        b: {
                            c: {
                                $raw = $rt_imul($hour, 3600000);
                                if ($index < $formattedName.$nativeString.length) {
                                    if ($index >= 0 && $index < $formattedName.$nativeString.length) {
                                        if ($formattedName.$nativeString.charCodeAt($index) != 58)
                                            break c;
                                        else {
                                            $minute = ju_TimeZone_parseNumber($formattedName, $index + 1 | 0, $position);
                                            if (var$7[0] != (-1) && $minute >= 0 && $minute <= 59) {
                                                $raw = $raw + ($minute * 60000 | 0) | 0;
                                                break b;
                                            }
                                            $name = ju_TimeZone_GMT;
                                            d: {
                                                try {
                                                    $jodaZone = jl_Object_clone($name);
                                                    break d;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_CloneNotSupportedException) {
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                $jodaZone = null;
                                            }
                                            $jodaZone.$rawOffset = $name.$rawOffset;
                                            $jodaZone.$underlyingZone = $name.$underlyingZone;
                                            return $jodaZone;
                                        }
                                    }
                                    $name = new jl_StringIndexOutOfBoundsException;
                                    $name.$suppressionEnabled = 1;
                                    $name.$writableStackTrace = 1;
                                    $rt_throw($name);
                                }
                            }
                            if ($index > 6)
                                $raw = $hour * 60000 | 0;
                        }
                        if ($sign == 45)
                            $raw =  -$raw | 0;
                        $name = new ju_IANATimeZone;
                        $jodaZone = new otcit_FixedDateTimeZone;
                        $jodaZone.$iID = $formattedName;
                        $jodaZone.$iWallOffset0 = $raw;
                        $jodaZone.$iStandardOffset3 = $raw;
                        $name.$id5 = $formattedName;
                        $name.$underlyingZone = $jodaZone;
                        jl_System_currentTimeMillis();
                        $hour = $jodaZone.$iStandardOffset3;
                        $name.$rawOffset = $hour;
                        $name.$diff =  -$hour | 0;
                        return $name;
                    }
                }
                $name = ju_TimeZone_GMT;
                e: {
                    try {
                        $jodaZone = jl_Object_clone($name);
                        break e;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_CloneNotSupportedException) {
                        } else {
                            throw $$e;
                        }
                    }
                    $jodaZone = null;
                }
                $jodaZone.$rawOffset = $name.$rawOffset;
                $jodaZone.$underlyingZone = $name.$underlyingZone;
                return $jodaZone;
            }
        }
    }
    $name = ju_TimeZone_GMT;
    f: {
        try {
            $jodaZone = jl_Object_clone($name);
            break f;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
            } else {
                throw $$e;
            }
        }
        $jodaZone = null;
    }
    $jodaZone.$rawOffset = $name.$rawOffset;
    $jodaZone.$underlyingZone = $name.$underlyingZone;
    return $jodaZone;
},
ju_TimeZone_formatTimeZoneName = ($name, $offset) => {
    let $buf, $length, var$5, var$6, var$7, var$8, var$9;
    ju_TimeZone_$callClinit();
    $buf = new jl_StringBuilder;
    $buf.$buffer = $rt_createCharArray(16);
    $length = $name.$nativeString.length;
    var$5 = jl_String_substring($name, 0, $offset);
    jl_AbstractStringBuilder_insert($buf, $buf.$length0, var$5);
    a: {
        b: {
            while (true) {
                if ($offset >= $length) {
                    var$5 = new jl_String;
                    var$6 = $buf.$buffer;
                    var$7 = var$6.data;
                    var$8 = $buf.$length0;
                    var$9 = var$7.length;
                    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                        var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                        if (jl_String_indexOf0(var$5, $rt_s(1639), 0) == (-1)) {
                            var$8 = $buf.$length0;
                            jl_AbstractStringBuilder_insertSpace($buf, var$8, var$8 + 1 | 0);
                            $buf.$buffer.data[var$8] = 58;
                            jl_AbstractStringBuilder_insert($buf, $buf.$length0, $rt_s(1640));
                        }
                        var$5 = new jl_String;
                        var$6 = $buf.$buffer;
                        var$7 = var$6.data;
                        var$8 = $buf.$length0;
                        var$9 = var$7.length;
                        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                            var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                            if (jl_String_indexOf0(var$5, $rt_s(1639), 0) == 5) {
                                jl_AbstractStringBuilder_insertSpace($buf, 4, 5);
                                $buf.$buffer.data[4] = 48;
                            }
                            $name = new jl_String;
                            var$6 = $buf.$buffer;
                            var$7 = var$6.data;
                            var$8 = $buf.$length0;
                            var$9 = var$7.length;
                            if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
                                $name.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                                return $name;
                            }
                            $name = new jl_IndexOutOfBoundsException;
                            $name.$suppressionEnabled = 1;
                            $name.$writableStackTrace = 1;
                            $rt_throw($name);
                        }
                        $name = new jl_IndexOutOfBoundsException;
                        $name.$suppressionEnabled = 1;
                        $name.$writableStackTrace = 1;
                        $rt_throw($name);
                    }
                    $name = new jl_IndexOutOfBoundsException;
                    $name.$suppressionEnabled = 1;
                    $name.$writableStackTrace = 1;
                    $rt_throw($name);
                }
                if ($offset < 0)
                    break b;
                if ($offset >= $name.$nativeString.length)
                    break b;
                var$9 = jl_Character_getNumericValue($name.$nativeString.charCodeAt($offset));
                if (var$9 >= 10)
                    var$9 = (-1);
                if (var$9 == (-1)) {
                    if ($offset < 0)
                        break;
                    if ($offset >= $name.$nativeString.length)
                        break;
                    if ($name.$nativeString.charCodeAt($offset) == 58) {
                        var$9 = $buf.$length0;
                        jl_AbstractStringBuilder_insertSpace($buf, var$9, var$9 + 1 | 0);
                        $buf.$buffer.data[var$9] = 58;
                    }
                } else {
                    if ($offset < 0)
                        break a;
                    if ($offset >= $name.$nativeString.length)
                        break a;
                    var$9 = $name.$nativeString.charCodeAt($offset);
                    var$8 = $buf.$length0;
                    jl_AbstractStringBuilder_insertSpace($buf, var$8, var$8 + 1 | 0);
                    $buf.$buffer.data[var$8] = var$9;
                    if (($length - ($offset + 1 | 0) | 0) == 2) {
                        var$9 = $buf.$length0;
                        jl_AbstractStringBuilder_insertSpace($buf, var$9, var$9 + 1 | 0);
                        $buf.$buffer.data[var$9] = 58;
                    }
                }
                $offset = $offset + 1 | 0;
            }
            $name = new jl_StringIndexOutOfBoundsException;
            $name.$suppressionEnabled = 1;
            $name.$writableStackTrace = 1;
            $rt_throw($name);
        }
        $name = new jl_StringIndexOutOfBoundsException;
        $name.$suppressionEnabled = 1;
        $name.$writableStackTrace = 1;
        $rt_throw($name);
    }
    $name = new jl_StringIndexOutOfBoundsException;
    $name.$suppressionEnabled = 1;
    $name.$writableStackTrace = 1;
    $rt_throw($name);
},
ju_TimeZone_parseNumber = ($string, $offset, $position) => {
    let $length, $result, var$6, $digit;
    ju_TimeZone_$callClinit();
    $length = $string.$nativeString.length;
    $result = 0;
    var$6 = $offset;
    a: {
        while (true) {
            if (var$6 >= $length)
                break a;
            if (var$6 < 0)
                break;
            if (var$6 >= $string.$nativeString.length)
                break;
            $digit = jl_Character_getNumericValue($string.$nativeString.charCodeAt(var$6));
            if ($digit >= 10)
                $digit = (-1);
            if ($digit == (-1))
                break a;
            var$6 = var$6 + 1 | 0;
            $result = ($result * 10 | 0) + $digit | 0;
        }
        $string = new jl_StringIndexOutOfBoundsException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    if (var$6 == $offset)
        var$6 = (-1);
    $position.data[0] = var$6;
    return $result;
},
ju_TimeZone__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = new ju_IANATimeZone;
    var$2 = new otcit_FixedDateTimeZone;
    var$2.$iID = $rt_s(1638);
    var$2.$iWallOffset0 = 0;
    var$2.$iStandardOffset3 = 0;
    ju_TimeZone_$callClinit();
    var$1.$id5 = $rt_s(1638);
    var$1.$underlyingZone = var$2;
    jl_System_currentTimeMillis();
    var$3 = var$2.$iStandardOffset3;
    var$1.$rawOffset = var$3;
    var$1.$diff =  -var$3 | 0;
    ju_TimeZone_GMT = var$1;
};
function otrfm_AbstractInMemoryVirtualFile() {
    let a = this; jl_Object.call(a);
    a.$name12 = null;
    a.$parent0 = null;
    a.$lastModified = Long_ZERO;
    a.$readOnly1 = 0;
}
function otrfm_InMemoryVirtualDirectory() {
    otrfm_AbstractInMemoryVirtualFile.call(this);
    this.$children0 = null;
}
let otrfm_InMemoryVirtualDirectory_isDirectory = $this => {
    return 1;
},
otrfm_InMemoryVirtualDirectory_isFile = $this => {
    return 0;
},
otrfm_InMemoryVirtualDirectory_getChildFile = ($this, $fileName) => {
    return ju_LinkedHashMap_getOrDefault($this.$children0, $fileName, null);
},
otrfm_InMemoryVirtualDirectory_createAccessor = ($this, $readable, $writable, $append) => {
    return null;
},
otrfm_InMemoryVirtualDirectory_createFile = ($this, $fileName) => {
    let $file, var$3, var$4, var$5, var$6;
    if (!($this.$readOnly1 ? 0 : 1)) {
        $fileName = new ji_IOException;
        $fileName.$suppressionEnabled = 1;
        $fileName.$writableStackTrace = 1;
        $fileName.$message = $rt_s(1641);
        $rt_throw($fileName);
    }
    $file = $this.$children0;
    if ($fileName === null) {
        $file = $file.$elementData.data[0];
        while ($file !== null && $file.$key !== null) {
            $file = $file.$next3;
        }
    } else {
        a: {
            if (!$fileName.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $fileName.$nativeString.length)
                        break a;
                    $fileName.$hashCode1 = (31 * $fileName.$hashCode1 | 0) + $fileName.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $fileName.$hashCode1;
        var$5 = $file.$elementData.data;
        $file = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($file !== null) {
            if ($file.$origKeyHash == var$4) {
                b: {
                    var$6 = $file.$key;
                    if ($fileName !== var$6) {
                        if ($fileName === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $fileName.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $file = $file.$next3;
        }
    }
    if ($file === null ? 0 : 1)
        return null;
    $file = new otrfm_InMemoryVirtualFile;
    $file.$lastModified = jl_System_currentTimeMillis();
    $file.$name12 = $fileName;
    $file.$data13 = $rt_createByteArray(0);
    otrfm_InMemoryVirtualDirectory_adoptFile($this, $file);
    return $file;
},
otrfm_InMemoryVirtualDirectory_adoptFile = ($this, $file) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = $this.$children0;
    var$3 = $file.$name12;
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                b: {
                    var$7 = var$2.$key;
                    if (var$3 !== var$7) {
                        if (var$3 === var$7)
                            var$4 = 1;
                        else if (!(var$7 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$7 = var$7;
                            var$4 = var$3.$nativeString !== var$7.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break b;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1)) {
        $file.$parent0 = $this;
        var$2 = $this.$children0;
        var$3 = $file.$name12;
        var$5 = var$2.$elementCount;
        ju_LinkedHashMap_putImpl(var$2, var$3, $file, 0, var$2.$accessOrder);
        $this.$lastModified = jl_System_currentTimeMillis();
        return;
    }
    var$2 = new jl_IllegalArgumentException;
    var$7 = $file.$name12;
    $file = new jl_StringBuilder;
    $file.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($file, $file.$length0, $rt_s(1642));
    var$4 = $file.$length0;
    if (var$7 === null)
        var$7 = $rt_s(1);
    jl_AbstractStringBuilder_insert($file, var$4, var$7);
    jl_AbstractStringBuilder_insert($file, $file.$length0, $rt_s(1643));
    var$3 = new jl_String;
    var$6 = $file.$buffer;
    var$8 = var$6.data;
    var$9 = $file.$length0;
    var$5 = var$8.length;
    if (var$9 >= 0 && var$9 <= (var$5 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$9);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$3;
        $rt_throw(var$2);
    }
    $file = new jl_IndexOutOfBoundsException;
    $file.$suppressionEnabled = 1;
    $file.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($file);
    $rt_throw($file);
};
function cjj_StaticTree() {
    let a = this; jl_Object.call(a);
    a.$static_tree = null;
    a.$extra_bits = null;
    a.$extra_base = 0;
    a.$elems = 0;
    a.$max_length = 0;
}
let cjj_StaticTree_static_ltree = null,
cjj_StaticTree_static_dtree = null,
cjj_StaticTree_static_l_desc = null,
cjj_StaticTree_static_d_desc = null,
cjj_StaticTree_static_bl_desc = null,
cjj_StaticTree_$callClinit = () => {
    cjj_StaticTree_$callClinit = $rt_eraseClinit(cjj_StaticTree);
    cjj_StaticTree__clinit_();
},
cjj_StaticTree__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $rt_createShortArrayFromData([12, 8, 140, 8, 76, 8, 204, 8, 44, 8, 172, 8, 108, 8, 236, 8, 28, 8, 156, 8, 92, 8, 220, 8, 60, 8, 188, 8, 124, 8, 252, 8, 2, 8, 130, 8, 66, 8, 194, 8, 34, 8, 162, 8, 98, 8, 226, 8, 18, 8, 146, 8, 82, 8, 210, 8, 50, 8, 178, 8, 114, 8, 242, 8, 10, 8, 138, 8, 74, 8, 202, 8, 42, 8, 170, 8, 106, 8, 234, 8, 26, 8, 154, 8, 90, 8, 218, 8, 58, 8, 186, 8, 122, 8, 250, 8, 6, 8, 134, 8, 70, 8, 198, 8, 38, 8, 166, 8, 102, 8, 230, 8, 22, 8, 150, 8, 86, 8, 214, 8, 54, 8, 182, 8, 118,
    8, 246, 8, 14, 8, 142, 8, 78, 8, 206, 8, 46, 8, 174, 8, 110, 8, 238, 8, 30, 8, 158, 8, 94, 8, 222, 8, 62, 8, 190, 8, 126, 8, 254, 8, 1, 8, 129, 8, 65, 8, 193, 8, 33, 8, 161, 8, 97, 8, 225, 8, 17, 8, 145, 8, 81, 8, 209, 8, 49, 8, 177, 8, 113, 8, 241, 8, 9, 8, 137, 8, 73, 8, 201, 8, 41, 8, 169, 8, 105, 8, 233, 8, 25, 8, 153, 8, 89, 8, 217, 8, 57, 8, 185, 8, 121, 8, 249, 8, 5, 8, 133, 8, 69, 8, 197, 8, 37, 8, 165, 8, 101, 8, 229, 8, 21, 8, 149, 8, 85, 8, 213, 8, 53, 8, 181, 8, 117, 8, 245, 8, 13, 8, 141, 8,
    77, 8, 205, 8, 45, 8, 173, 8, 109, 8, 237, 8, 29, 8, 157, 8, 93, 8, 221, 8, 61, 8, 189, 8, 125, 8, 253, 8, 19, 9, 275, 9, 147, 9, 403, 9, 83, 9, 339, 9, 211, 9, 467, 9, 51, 9, 307, 9, 179, 9, 435, 9, 115, 9, 371, 9, 243, 9, 499, 9, 11, 9, 267, 9, 139, 9, 395, 9, 75, 9, 331, 9, 203, 9, 459, 9, 43, 9, 299, 9, 171, 9, 427, 9, 107, 9, 363, 9, 235, 9, 491, 9, 27, 9, 283, 9, 155, 9, 411, 9, 91, 9, 347, 9, 219, 9, 475, 9, 59, 9, 315, 9, 187, 9, 443, 9, 123, 9, 379, 9, 251, 9, 507, 9, 7, 9, 263, 9, 135, 9, 391,
    9, 71, 9, 327, 9, 199, 9, 455, 9, 39, 9, 295, 9, 167, 9, 423, 9, 103, 9, 359, 9, 231, 9, 487, 9, 23, 9, 279, 9, 151, 9, 407, 9, 87, 9, 343, 9, 215, 9, 471, 9, 55, 9, 311, 9, 183, 9, 439, 9, 119, 9, 375, 9, 247, 9, 503, 9, 15, 9, 271, 9, 143, 9, 399, 9, 79, 9, 335, 9, 207, 9, 463, 9, 47, 9, 303, 9, 175, 9, 431, 9, 111, 9, 367, 9, 239, 9, 495, 9, 31, 9, 287, 9, 159, 9, 415, 9, 95, 9, 351, 9, 223, 9, 479, 9, 63, 9, 319, 9, 191, 9, 447, 9, 127, 9, 383, 9, 255, 9, 511, 9, 0, 7, 64, 7, 32, 7, 96, 7, 16, 7, 80,
    7, 48, 7, 112, 7, 8, 7, 72, 7, 40, 7, 104, 7, 24, 7, 88, 7, 56, 7, 120, 7, 4, 7, 68, 7, 36, 7, 100, 7, 20, 7, 84, 7, 52, 7, 116, 7, 3, 8, 131, 8, 67, 8, 195, 8, 35, 8, 163, 8, 99, 8, 227, 8]);
    cjj_StaticTree_static_ltree = var$1;
    var$2 = $rt_createShortArrayFromData([0, 5, 16, 5, 8, 5, 24, 5, 4, 5, 20, 5, 12, 5, 28, 5, 2, 5, 18, 5, 10, 5, 26, 5, 6, 5, 22, 5, 14, 5, 30, 5, 1, 5, 17, 5, 9, 5, 25, 5, 5, 5, 21, 5, 13, 5, 29, 5, 3, 5, 19, 5, 11, 5, 27, 5, 7, 5, 23, 5]);
    cjj_StaticTree_static_dtree = var$2;
    var$3 = new cjj_StaticTree;
    var$4 = cjj_Tree_extra_lbits;
    cjj_StaticTree_$callClinit();
    var$3.$static_tree = var$1;
    var$3.$extra_bits = var$4;
    var$3.$extra_base = 257;
    var$3.$elems = 286;
    var$3.$max_length = 15;
    cjj_StaticTree_static_l_desc = var$3;
    var$3 = new cjj_StaticTree;
    var$1 = cjj_Tree_extra_dbits;
    var$3.$static_tree = var$2;
    var$3.$extra_bits = var$1;
    var$3.$extra_base = 0;
    var$3.$elems = 30;
    var$3.$max_length = 15;
    cjj_StaticTree_static_d_desc = var$3;
    var$3 = new cjj_StaticTree;
    var$5 = null;
    var$1 = cjj_Tree_extra_blbits;
    var$3.$static_tree = var$5;
    var$3.$extra_bits = var$1;
    var$3.$extra_base = 0;
    var$3.$elems = 19;
    var$3.$max_length = 7;
    cjj_StaticTree_static_bl_desc = var$3;
},
ju_TemplateCollections$AbstractImmutableSet = $rt_classWithoutFields(ju_AbstractSet),
ju_Collections$1 = $rt_classWithoutFields(ju_TemplateCollections$AbstractImmutableSet),
ju_Collections$1__init_ = $this => {
    return;
},
ju_Collections$1__init_0 = () => {
    let var_0 = new ju_Collections$1();
    ju_Collections$1__init_(var_0);
    return var_0;
},
ju_TemplateCollections$AbstractImmutableMap = $rt_classWithoutFields(ju_AbstractMap),
ju_Collections$2 = $rt_classWithoutFields(ju_TemplateCollections$AbstractImmutableMap),
ju_Collections$2__init_ = $this => {
    return;
},
ju_Collections$2__init_0 = () => {
    let var_0 = new ju_Collections$2();
    ju_Collections$2__init_(var_0);
    return var_0;
},
ju_TemplateCollections$AbstractImmutableList = $rt_classWithoutFields(ju_AbstractList),
ju_Collections$3 = $rt_classWithoutFields(ju_TemplateCollections$AbstractImmutableList),
ju_Collections$3__init_ = $this => {
    return;
},
ju_Collections$3__init_0 = () => {
    let var_0 = new ju_Collections$3();
    ju_Collections$3__init_(var_0);
    return var_0;
},
ju_Collections$4 = $rt_classWithoutFields(),
ju_Collections$4__init_ = $this => {
    return;
},
ju_Collections$4__init_0 = () => {
    let var_0 = new ju_Collections$4();
    ju_Collections$4__init_(var_0);
    return var_0;
},
ju_ListIterator = $rt_classWithoutFields(0),
ju_Collections$5 = $rt_classWithoutFields(),
ju_Collections$5__init_ = $this => {
    return;
},
ju_Collections$5__init_0 = () => {
    let var_0 = new ju_Collections$5();
    ju_Collections$5__init_(var_0);
    return var_0;
},
ju_Collections$_clinit_$lambda$_59_0 = $rt_classWithoutFields(),
ju_Collections$_clinit_$lambda$_59_0__init_ = var$0 => {
    return;
},
ju_Collections$_clinit_$lambda$_59_0__init_0 = () => {
    let var_0 = new ju_Collections$_clinit_$lambda$_59_0();
    ju_Collections$_clinit_$lambda$_59_0__init_(var_0);
    return var_0;
};
function ju_IANATimeZone() {
    let a = this; ju_TimeZone.call(a);
    a.$underlyingZone = null;
    a.$rawOffset = 0;
    a.$diff = 0;
}
let ju_IANATimeZone_clone = $this => {
    let var$1, $$je;
    a: {
        try {
            var$1 = jl_Object_clone($this);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
            } else {
                throw $$e;
            }
        }
        var$1 = null;
    }
    var$1.$rawOffset = $this.$rawOffset;
    var$1.$underlyingZone = $this.$underlyingZone;
    return var$1;
};
function otcit_DateTimeZone() {
    jl_Object.call(this);
    this.$iID = null;
}
let otcit_StorableDateTimeZone = $rt_classWithoutFields(otcit_DateTimeZone),
otcit_StorableDateTimeZone_readTimeArray = ($flow, $array) => {
    let $index, var$4, var$5, $count, $t, var$8, var$9, var$10;
    $index = 0;
    while (true) {
        var$4 = $array.data;
        if ($index >= var$4.length)
            break;
        var$5 = otci_Base46_decodeUnsigned($flow);
        $count = var$5 / 2 | 0;
        if (var$5 % 2 | 0)
            $count =  -$count | 0;
        if ($count < 0) {
            var$5 = $count ^ (-1);
            while (true) {
                $t = var$5 + (-1) | 0;
                if (var$5 <= 0)
                    break;
                $count = $index + 1 | 0;
                var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
                var$9 = Long_div(var$8, Long_fromInt(2));
                if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
                    var$9 = Long_neg(var$9);
                var$4[$index] = Long_lo((Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000))));
                var$5 = $t;
                $index = $count;
            }
        } else {
            var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
            var$9 = Long_div(var$8, Long_fromInt(2));
            if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
                var$9 = Long_neg(var$9);
            $t = Long_lo((Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000))));
            while (true) {
                var$5 = $count + (-1) | 0;
                if ($count <= 0)
                    break;
                var$10 = $index + 1 | 0;
                var$4[$index] = $t;
                $count = var$5;
                $index = var$10;
            }
        }
    }
};
function otcit_FixedDateTimeZone() {
    let a = this; otcit_StorableDateTimeZone.call(a);
    a.$iWallOffset0 = 0;
    a.$iStandardOffset3 = 0;
}
let otcit_FixedDateTimeZone_getOffset = ($this, $instant) => {
    return $this.$iWallOffset0;
},
otcit_FixedDateTimeZone_getStandardOffset = ($this, $instant) => {
    return $this.$iStandardOffset3;
},
otcit_FixedDateTimeZone_previousTransition = ($this, $instant) => {
    return $instant;
},
otcit_DateTimeZoneProvider = $rt_classWithoutFields(),
otcit_DateTimeZoneProvider_cache = null,
otcit_DateTimeZoneProvider_$$metadata$$0 = null,
otcit_DateTimeZoneProvider__init_ = $this => {
    return;
},
otcit_DateTimeZoneProvider__init_0 = () => {
    let var_0 = new otcit_DateTimeZoneProvider();
    otcit_DateTimeZoneProvider__init_(var_0);
    return var_0;
},
otcit_DateTimeZoneProvider_getTimeZone = $id => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = otcit_DateTimeZoneProvider_cache;
    if ($id === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$id.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $id.$nativeString.length)
                        break a;
                    $id.$hashCode1 = (31 * $id.$hashCode1 | 0) + $id.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $id.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($id !== var$6) {
                        if ($id === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $id.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        ju_HashMap_putImpl(otcit_DateTimeZoneProvider_cache, $id, otcit_DateTimeZoneProvider_createTimeZone($id));
    var$2 = otcit_DateTimeZoneProvider_cache;
    if ($id === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        c: {
            if (!$id.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $id.$nativeString.length)
                        break c;
                    $id.$hashCode1 = (31 * $id.$hashCode1 | 0) + $id.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $id.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                d: {
                    var$6 = var$2.$key;
                    if ($id !== var$6) {
                        if ($id === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $id.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break d;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? null : var$2.$value0;
},
otcit_DateTimeZoneProvider_createTimeZone = $id => {
    let $res, $data, $flow, var$5, var$6, var$7, var$8, $aliasId, var$10, var$11, var$12, var$13, var$14;
    $res = otcit_DateTimeZoneProvider_getTimeZoneResource($id);
    if ($res === null)
        return null;
    $data = ($res.data !== null ? $rt_str($res.data) : null);
    $flow = new otci_CharFlow;
    var$5 = $rt_createCharArray($data.$nativeString.length);
    var$6 = var$5.data;
    var$7 = 0;
    var$8 = var$6.length;
    while (true) {
        if (var$7 >= var$8) {
            $flow.$characters = var$5;
            if (otci_Base46_decodeUnsigned($flow) == 4) {
                $aliasId = jl_String_substring($data, $flow.$pointer, $data.$nativeString.length);
                $res = new otcit_AliasDateTimeZone;
                $data = otcit_DateTimeZoneProvider_getTimeZone($aliasId);
                if ($id !== null) {
                    $res.$iID = $id;
                    $res.$innerZone = $data;
                    return $res;
                }
                $res = new jl_IllegalArgumentException;
                $res.$suppressionEnabled = 1;
                $res.$writableStackTrace = 1;
                $res.$message = $rt_s(1644);
                $rt_throw($res);
            }
            $res = new otci_CharFlow;
            var$5 = $rt_createCharArray($data.$nativeString.length);
            var$6 = var$5.data;
            var$7 = 0;
            var$8 = var$6.length;
            while (true) {
                if (var$7 >= var$8) {
                    a: {
                        b: {
                            $res.$characters = var$5;
                            var$7 = otci_Base46_decodeUnsigned($res);
                            switch (var$7) {
                                case 0:
                                    break;
                                case 1:
                                    var$10 = Long_fromInt(otci_Base46_decodeUnsigned($res));
                                    var$11 = Long_div(var$10, Long_fromInt(2));
                                    if (Long_ne(Long_rem(var$10, Long_fromInt(2)), Long_ZERO))
                                        var$11 = Long_neg(var$11);
                                    var$7 = Long_lo((Long_ne(Long_and(var$11, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$11, 1) : Long_mul(Long_shr(var$11, 1), Long_fromInt(1800000))));
                                    var$12 = Long_fromInt(otci_Base46_decodeUnsigned($res));
                                    var$11 = Long_div(var$12, Long_fromInt(2));
                                    if (Long_ne(Long_rem(var$12, Long_fromInt(2)), Long_ZERO))
                                        var$11 = Long_neg(var$11);
                                    var$8 = Long_lo((Long_ne(Long_and(var$11, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$11, 1) : Long_mul(Long_shr(var$11, 1), Long_fromInt(1800000))));
                                    $res = new otcit_FixedDateTimeZone;
                                    if ($id !== null) {
                                        $res.$iID = $id;
                                        $res.$iWallOffset0 = var$7;
                                        $res.$iStandardOffset3 = var$8;
                                        break a;
                                    }
                                    $res = new jl_IllegalArgumentException;
                                    $res.$suppressionEnabled = 1;
                                    $res.$writableStackTrace = 1;
                                    $res.$message = $rt_s(1644);
                                    $rt_throw($res);
                                case 2:
                                case 4:
                                    break b;
                                case 3:
                                    var$10 = Long_fromInt(otci_Base46_decodeUnsigned($res));
                                    var$11 = Long_div(var$10, Long_fromInt(2));
                                    if (Long_ne(Long_rem(var$10, Long_fromInt(2)), Long_ZERO))
                                        var$11 = Long_neg(var$11);
                                    var$7 = Long_lo((Long_ne(Long_and(var$11, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$11, 1) : Long_mul(Long_shr(var$11, 1), Long_fromInt(1800000))));
                                    $data = otcit_DateTimeZoneBuilder$OfYear_read($res);
                                    var$12 = Long_fromInt(otci_Base46_decodeUnsigned($res));
                                    var$11 = Long_div(var$12, Long_fromInt(2));
                                    if (Long_ne(Long_rem(var$12, Long_fromInt(2)), Long_ZERO))
                                        var$11 = Long_neg(var$11);
                                    var$8 = Long_lo((Long_ne(Long_and(var$11, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$11, 1) : Long_mul(Long_shr(var$11, 1), Long_fromInt(1800000))));
                                    $aliasId = new otcit_DateTimeZoneBuilder$Recurrence;
                                    $aliasId.$iOfYear = $data;
                                    $aliasId.$iSaveMillis = var$8;
                                    $data = otcit_DateTimeZoneBuilder$OfYear_read($res);
                                    var$12 = Long_fromInt(otci_Base46_decodeUnsigned($res));
                                    var$11 = Long_div(var$12, Long_fromInt(2));
                                    if (Long_ne(Long_rem(var$12, Long_fromInt(2)), Long_ZERO))
                                        var$11 = Long_neg(var$11);
                                    var$8 = Long_lo((Long_ne(Long_and(var$11, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$11, 1) : Long_mul(Long_shr(var$11, 1), Long_fromInt(1800000))));
                                    $flow = new otcit_DateTimeZoneBuilder$Recurrence;
                                    $flow.$iOfYear = $data;
                                    $flow.$iSaveMillis = var$8;
                                    $res = new otcit_DateTimeZoneBuilder$DSTZone;
                                    if ($id === null) {
                                        $res = new jl_IllegalArgumentException;
                                        $res.$suppressionEnabled = 1;
                                        $res.$writableStackTrace = 1;
                                        $res.$message = $rt_s(1644);
                                        $rt_throw($res);
                                    }
                                    $res.$iID = $id;
                                    $id = new ju_GregorianCalendar;
                                    if (otcit_DateTimeZoneBuilder_gmtCache === null)
                                        otcit_DateTimeZoneBuilder_gmtCache = ju_TimeZone_getTimeZone($rt_s(1645));
                                    var$13 = otcit_DateTimeZoneBuilder_gmtCache;
                                    ju_Locale_$callClinit();
                                    ju_GregorianCalendar__init_($id, var$13, ju_Locale_defaultLocale);
                                    $res.$calendar = $id;
                                    $res.$iStandardOffset2 = var$7;
                                    $res.$iStartRecurrence = $aliasId;
                                    $res.$iEndRecurrence = $flow;
                                    break a;
                                case 5:
                                    $res = otcit_DateTimeZoneBuilder$RuleBasedZone_readZone($id, $res);
                                    break a;
                                default:
                                    break b;
                            }
                            $res = otcit_DateTimeZoneBuilder$PrecalculatedZone_readZone($id, $res);
                            break a;
                        }
                        $id = new jl_IllegalArgumentException;
                        $res = new jl_StringBuilder;
                        $res.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert($res, $res.$length0, $rt_s(1646));
                        jl_AbstractStringBuilder_insert0($res, $res.$length0, var$7, 10);
                        $data = new jl_String;
                        var$5 = $res.$buffer;
                        var$6 = var$5.data;
                        var$8 = $res.$length0;
                        var$14 = var$6.length;
                        if (var$8 >= 0 && var$8 <= (var$14 - 0 | 0)) {
                            $data.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
                            $id.$suppressionEnabled = 1;
                            $id.$writableStackTrace = 1;
                            $id.$message = $data;
                            $rt_throw($id);
                        }
                        $id = new jl_IndexOutOfBoundsException;
                        $id.$suppressionEnabled = 1;
                        $id.$writableStackTrace = 1;
                        $rt_throw($id);
                    }
                    return $res;
                }
                if (var$7 < 0)
                    break;
                if (var$7 >= $data.$nativeString.length)
                    break;
                var$6[var$7] = $data.$nativeString.charCodeAt(var$7);
                var$7 = var$7 + 1 | 0;
            }
            $id = new jl_StringIndexOutOfBoundsException;
            $id.$suppressionEnabled = 1;
            $id.$writableStackTrace = 1;
            $rt_throw($id);
        }
        if (var$7 < 0)
            break;
        if (var$7 >= $data.$nativeString.length)
            break;
        var$6[var$7] = $data.$nativeString.charCodeAt(var$7);
        var$7 = var$7 + 1 | 0;
    }
    $id = new jl_StringIndexOutOfBoundsException;
    $id.$suppressionEnabled = 1;
    $id.$writableStackTrace = 1;
    $rt_throw($id);
},
otcit_DateTimeZoneProvider_getIds = () => {
    let $ids, $area, var$3, var$4, var$5, var$6, $areaName, var$8, var$9, var$10, $id, var$12, var$13, var$14, var$15;
    $ids = new ju_ArrayList;
    $ids.$array = $rt_createArray(jl_Object, 10);
    if (otcit_DateTimeZoneProvider_$$metadata$$0 === null)
        otcit_DateTimeZoneProvider_$$metadata$$0 = otcit_DateTimeZoneProvider_getResource$$create();
    $area = otpp_ResourceAccessor_keys(otcit_DateTimeZoneProvider_$$metadata$$0);
    var$3 = $area.length;
    var$4 = $rt_createArray(jl_String, var$3).data;
    var$5 = 0;
    while (var$5 < var$3) {
        var$4[var$5] = ($area[var$5] !== null ? $rt_str($area[var$5]) : null);
        var$5 = var$5 + 1 | 0;
    }
    var$5 = var$4.length;
    var$6 = 0;
    a: {
        while (var$6 < var$5) {
            $areaName = var$4[var$6];
            if (otcit_DateTimeZoneProvider_$$metadata$$0 === null)
                otcit_DateTimeZoneProvider_$$metadata$$0 = otcit_DateTimeZoneProvider_getResource$$create();
            $area = otpp_ResourceAccessor_keys(otcit_DateTimeZoneProvider_$$metadata$$0[$rt_ustr($areaName)]);
            var$3 = $area.length;
            var$8 = $rt_createArray(jl_String, var$3).data;
            var$9 = 0;
            while (var$9 < var$3) {
                var$8[var$9] = ($area[var$9] !== null ? $rt_str($area[var$9]) : null);
                var$9 = var$9 + 1 | 0;
            }
            var$9 = var$8.length;
            var$10 = 0;
            while (var$10 < var$9) {
                $id = var$8[var$10];
                if (!($areaName.$nativeString.length ? 0 : 1)) {
                    $area = new jl_StringBuilder;
                    $area.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($area, $area.$length0, $areaName);
                    var$12 = $area.$length0;
                    jl_AbstractStringBuilder_insertSpace($area, var$12, var$12 + 1 | 0);
                    $area.$buffer.data[var$12] = 47;
                    var$3 = $area.$length0;
                    if ($id === null)
                        $id = $rt_s(1);
                    jl_AbstractStringBuilder_insert($area, var$3, $id);
                    $id = new jl_String;
                    var$13 = $area.$buffer;
                    var$14 = var$13.data;
                    var$12 = $area.$length0;
                    var$15 = var$14.length;
                    if (var$12 < 0)
                        break a;
                    if (var$12 > (var$15 - 0 | 0))
                        break a;
                    $id.$nativeString = $rt_charArrayToString(var$13.data, 0, var$12);
                }
                ju_ArrayList_ensureCapacity($ids, $ids.$size0 + 1 | 0);
                var$13 = $ids.$array.data;
                var$12 = $ids.$size0;
                $ids.$size0 = var$12 + 1 | 0;
                var$13[var$12] = $id;
                $ids.$modCount = $ids.$modCount + 1 | 0;
                var$10 = var$10 + 1 | 0;
            }
            var$6 = var$6 + 1 | 0;
        }
        return ju_AbstractCollection_toArray($ids, $rt_createArray(jl_String, $ids.$size0));
    }
    $ids = new jl_IndexOutOfBoundsException;
    $ids.$suppressionEnabled = 1;
    $ids.$writableStackTrace = 1;
    $rt_throw($ids);
},
otcit_DateTimeZoneProvider_detectTimezone = () => {
    let $zones, $time, $offset, var$4, $i, $tzOffset, $id, $scoreTable, $tzOffset_0, var$10, var$11, $zoneMap, $j, $tz, $queue, $timeInQueue, $score, var$18, var$19, var$20, $prev, $prevZones;
    $zones = new ju_ArrayList;
    $zones.$array = $rt_createArray(jl_Object, 10);
    $time = jl_System_currentTimeMillis();
    $offset =  -(new Date(Long_toNumber(jl_System_currentTimeMillis()))).getTimezoneOffset() | 0;
    var$4 = (otcit_DateTimeZoneProvider_getIds()).data;
    $i = var$4.length;
    $tzOffset = 0;
    while ($tzOffset < $i) {
        $id = var$4[$tzOffset];
        $scoreTable = otcit_DateTimeZoneProvider_cache;
        if ($id === null) {
            $scoreTable = $scoreTable.$elementData.data[0];
            while ($scoreTable !== null && $scoreTable.$key !== null) {
                $scoreTable = $scoreTable.$next3;
            }
        } else {
            a: {
                if (!$id.$hashCode1) {
                    $tzOffset_0 = 0;
                    while (true) {
                        if ($tzOffset_0 >= $id.$nativeString.length)
                            break a;
                        $id.$hashCode1 = (31 * $id.$hashCode1 | 0) + $id.$nativeString.charCodeAt($tzOffset_0) | 0;
                        $tzOffset_0 = $tzOffset_0 + 1 | 0;
                    }
                }
            }
            var$10 = $id.$hashCode1;
            var$11 = $scoreTable.$elementData.data;
            $scoreTable = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($scoreTable !== null) {
                if ($scoreTable.$origKeyHash == var$10) {
                    b: {
                        $zoneMap = $scoreTable.$key;
                        if ($id !== $zoneMap) {
                            if ($id === $zoneMap)
                                $tzOffset_0 = 1;
                            else if (!($zoneMap instanceof jl_String))
                                $tzOffset_0 = 0;
                            else {
                                $zoneMap = $zoneMap;
                                $tzOffset_0 = $id.$nativeString !== $zoneMap.$nativeString ? 0 : 1;
                            }
                            if (!$tzOffset_0) {
                                $tzOffset_0 = 0;
                                break b;
                            }
                        }
                        $tzOffset_0 = 1;
                    }
                    if ($tzOffset_0)
                        break;
                }
                $scoreTable = $scoreTable.$next3;
            }
        }
        if (!($scoreTable === null ? 0 : 1))
            ju_HashMap_putImpl(otcit_DateTimeZoneProvider_cache, $id, otcit_DateTimeZoneProvider_createTimeZone($id));
        $scoreTable = otcit_DateTimeZoneProvider_cache;
        if ($id === null) {
            $scoreTable = $scoreTable.$elementData.data[0];
            while ($scoreTable !== null && $scoreTable.$key !== null) {
                $scoreTable = $scoreTable.$next3;
            }
        } else {
            c: {
                if (!$id.$hashCode1) {
                    $tzOffset_0 = 0;
                    while (true) {
                        if ($tzOffset_0 >= $id.$nativeString.length)
                            break c;
                        $id.$hashCode1 = (31 * $id.$hashCode1 | 0) + $id.$nativeString.charCodeAt($tzOffset_0) | 0;
                        $tzOffset_0 = $tzOffset_0 + 1 | 0;
                    }
                }
            }
            $tzOffset_0 = $id.$hashCode1;
            var$11 = $scoreTable.$elementData.data;
            $scoreTable = var$11[$tzOffset_0 & (var$11.length - 1 | 0)];
            while ($scoreTable !== null) {
                if ($scoreTable.$origKeyHash == $tzOffset_0) {
                    d: {
                        $zoneMap = $scoreTable.$key;
                        if ($id !== $zoneMap) {
                            if ($id === $zoneMap)
                                $j = 1;
                            else if (!($zoneMap instanceof jl_String))
                                $j = 0;
                            else {
                                $zoneMap = $zoneMap;
                                $j = $id.$nativeString !== $zoneMap.$nativeString ? 0 : 1;
                            }
                            if (!$j) {
                                $j = 0;
                                break d;
                            }
                        }
                        $j = 1;
                    }
                    if ($j)
                        break;
                }
                $scoreTable = $scoreTable.$next3;
            }
        }
        $tz = $scoreTable === null ? null : $scoreTable.$value0;
        if (!($tz instanceof otcit_AliasDateTimeZone)) {
            $tzOffset_0 = ($tz.$getOffset0($time) / 60000 | 0) - $offset | 0;
            if ($tzOffset_0 < 0)
                $tzOffset_0 =  -$tzOffset_0 | 0;
            if ($tzOffset_0 <= 120 && Long_ne($tz.$previousTransition($time), $time)) {
                $id = new otcit_DateTimeZoneProvider$Score;
                $id.$tz = $tz;
                ju_ArrayList_ensureCapacity($zones, $zones.$size0 + 1 | 0);
                var$11 = $zones.$array.data;
                $j = $zones.$size0;
                $zones.$size0 = $j + 1 | 0;
                var$11[$j] = $id;
                $zones.$modCount = $zones.$modCount + 1 | 0;
            }
        }
        $tzOffset = $tzOffset + 1 | 0;
    }
    $scoreTable = new ju_ArrayList;
    $scoreTable.$array = $rt_createArray(jl_Object, 10);
    $tzOffset_0 = 0;
    $i = $zones.$modCount;
    $tzOffset = $zones.$size();
    while (true) {
        if (!($tzOffset_0 >= $tzOffset ? 0 : 1)) {
            $zoneMap = ju_HashMap__init_();
            $queue = new ju_PriorityQueue;
            $i = $zones.$size0;
            $id = new otcit_DateTimeZoneProvider$1;
            if ($i < 1) {
                $zones = new jl_IllegalArgumentException;
                $zones.$suppressionEnabled = 1;
                $zones.$writableStackTrace = 1;
                $rt_throw($zones);
            }
            $queue.$data9 = $rt_createArray(jl_Object, $i);
            $queue.$originalComparator0 = $id;
            $queue.$comparator0 = $id;
            $timeInQueue = ju_HashSet__init_();
            $id = new jl_Long;
            $id.$value7 = $time;
            if (!ju_PriorityQueue_offer($queue, $id)) {
                $zones = new jl_IllegalStateException;
                $zones.$suppressionEnabled = 1;
                $zones.$writableStackTrace = 1;
                $rt_throw($zones);
            }
            $score = new jl_Long;
            $score.$value7 = $time;
            $id = new ju_ArrayList;
            $offset = $zones.$size0;
            if ($offset < 0) {
                $zones = new jl_IllegalArgumentException;
                $zones.$suppressionEnabled = 1;
                $zones.$writableStackTrace = 1;
                $rt_throw($zones);
            }
            $id.$array = $rt_createArray(jl_Object, $offset);
            $tzOffset_0 = 0;
            $tzOffset = $zones.$modCount;
            $zones.$size();
            $j = 0;
            while (true) {
                var$4 = $id.$array.data;
                $offset = var$4.length;
                if ($j >= $offset) {
                    $id.$size0 = $offset;
                    ju_HashMap_putImpl($zoneMap, $score, $id);
                    e: {
                        f: {
                            g: {
                                h: {
                                    i: {
                                        j: {
                                            k: {
                                                l: {
                                                    m: {
                                                        n: while (true) {
                                                            $offset = $queue.$size6;
                                                            if ($offset ? 0 : 1)
                                                                break e;
                                                            if ($scoreTable.$size0 <= 1)
                                                                break e;
                                                            if ($offset ? 0 : 1) {
                                                                $zones = new ju_NoSuchElementException;
                                                                $zones.$suppressionEnabled = 1;
                                                                $zones.$writableStackTrace = 1;
                                                                $rt_throw($zones);
                                                            }
                                                            if (!$offset)
                                                                $zones = null;
                                                            else {
                                                                $zones = $queue.$data9.data[0];
                                                                ju_PriorityQueue_removeAt($queue, 0);
                                                            }
                                                            var$18 = $zones.$value7;
                                                            $id = new jl_Long;
                                                            $id.$value7 = var$18;
                                                            $zones = ju_HashMap_removeByKey($timeInQueue.$backingMap, $id);
                                                            $zones = new jl_Long;
                                                            $zones.$value7 = var$18;
                                                            $zones = ju_HashMap_removeByKey($zoneMap, $zones);
                                                            $zones = $zones === null ? null : $zones.$value0;
                                                            $offset =  -(new Date(Long_toNumber(var$18))).getTimezoneOffset() | 0;
                                                            var$19 = $zones.$modCount;
                                                            var$10 = $zones.$size();
                                                            $tzOffset = 0;
                                                            while ($tzOffset >= var$10 ? 0 : 1) {
                                                                if (var$19 < $zones.$modCount) {
                                                                    $zones = new ju_ConcurrentModificationException;
                                                                    $zones.$suppressionEnabled = 1;
                                                                    $zones.$writableStackTrace = 1;
                                                                    $rt_throw($zones);
                                                                }
                                                                var$20 = $tzOffset + 1 | 0;
                                                                $score = $zones.$get($tzOffset);
                                                                $prev = $score.$tz.$previousTransition(var$18);
                                                                if (Long_eq($prev, var$18)) {
                                                                    $j = $scoreTable.$size0;
                                                                    if (0 >= $j) {
                                                                        $zones = new jl_IndexOutOfBoundsException;
                                                                        $zones.$suppressionEnabled = 1;
                                                                        $zones.$writableStackTrace = 1;
                                                                        $rt_throw($zones);
                                                                    }
                                                                    var$4 = $scoreTable.$array.data;
                                                                    if (var$4[0] === $score)
                                                                        break n;
                                                                    $i = 0;
                                                                    o: {
                                                                        while (true) {
                                                                            $tzOffset = $rt_compare($i, $j);
                                                                            if ($tzOffset >= 0) {
                                                                                $i = (-1);
                                                                                break o;
                                                                            }
                                                                            if ($i < 0)
                                                                                break g;
                                                                            if ($tzOffset >= 0)
                                                                                break g;
                                                                            $id = var$4[$i];
                                                                            if ($score === $id ? 1 : $score === null ? ($id !== null ? 0 : 1) : $score !== $id ? 0 : 1)
                                                                                break;
                                                                            $i = $i + 1 | 0;
                                                                        }
                                                                    }
                                                                    if ($i >= 0)
                                                                        ju_ArrayList_remove($scoreTable, $i);
                                                                } else {
                                                                    $i = ($score.$tz.$getOffset0(var$18) / 60000 | 0) - $offset | 0;
                                                                    if ($i < 0)
                                                                        $i =  -$i | 0;
                                                                    if ($i > 120) {
                                                                        $j = $scoreTable.$size0;
                                                                        $i = 0;
                                                                        p: {
                                                                            while (true) {
                                                                                $tzOffset = $rt_compare($i, $j);
                                                                                if ($tzOffset >= 0) {
                                                                                    $i = (-1);
                                                                                    break p;
                                                                                }
                                                                                if ($i < 0)
                                                                                    break h;
                                                                                if ($tzOffset >= 0)
                                                                                    break h;
                                                                                $id = $scoreTable.$array.data[$i];
                                                                                if ($score === $id ? 1 : $score === null ? ($id !== null ? 0 : 1) : $score !== $id ? 0 : 1)
                                                                                    break;
                                                                                $i = $i + 1 | 0;
                                                                            }
                                                                        }
                                                                        if ($i >= 0)
                                                                            ju_ArrayList_remove($scoreTable, $i);
                                                                        $tzOffset = var$20;
                                                                        continue;
                                                                    }
                                                                    $tz = new jl_Long;
                                                                    $tz.$value7 = $prev;
                                                                    $j = Long_lo($prev) ^ Long_hi($prev);
                                                                    var$4 = $zoneMap.$elementData.data;
                                                                    $id = var$4[$j & (var$4.length - 1 | 0)];
                                                                    while ($id !== null) {
                                                                        if ($id.$origKeyHash == $j) {
                                                                            $prevZones = $id.$key;
                                                                            if ($tz !== $prevZones && !($tz === $prevZones ? 1 : $prevZones instanceof jl_Long && Long_eq($prevZones.$value7, $prev) ? 1 : 0) ? 0 : 1)
                                                                                break;
                                                                        }
                                                                        $id = $id.$next3;
                                                                    }
                                                                    $id = $id === null ? null : $id.$value0;
                                                                    if ($id === null) {
                                                                        $id = new ju_ArrayList;
                                                                        $id.$array = $rt_createArray(jl_Object, 10);
                                                                        ju_HashMap_putImpl($zoneMap, $tz, $id);
                                                                    }
                                                                    $prevZones = $id;
                                                                    ju_ArrayList_ensureCapacity($prevZones, $prevZones.$size0 + 1 | 0);
                                                                    var$4 = $prevZones.$array.data;
                                                                    $tzOffset = $prevZones.$size0;
                                                                    $prevZones.$size0 = $tzOffset + 1 | 0;
                                                                    var$4[$tzOffset] = $score;
                                                                    $prevZones.$modCount = $prevZones.$modCount + 1 | 0;
                                                                    $score = new jl_Long;
                                                                    $score.$value7 = $prev;
                                                                    if (ju_HashMap_putImpl($timeInQueue.$backingMap, $score, $timeInQueue) !== null ? 0 : 1) {
                                                                        $id = new jl_Long;
                                                                        $id.$value7 = $prev;
                                                                        if (!ju_PriorityQueue_offer($queue, $id)) {
                                                                            $zones = new jl_IllegalStateException;
                                                                            $zones.$suppressionEnabled = 1;
                                                                            $zones.$writableStackTrace = 1;
                                                                            $rt_throw($zones);
                                                                        }
                                                                    }
                                                                }
                                                                $tzOffset = var$20;
                                                            }
                                                            $tzOffset = $scoreTable.$size0;
                                                            if ($tzOffset == 1)
                                                                break f;
                                                            if (0 >= $tzOffset) {
                                                                $zones = new jl_IndexOutOfBoundsException;
                                                                $zones.$suppressionEnabled = 1;
                                                                $zones.$writableStackTrace = 1;
                                                                $rt_throw($zones);
                                                            }
                                                            if (Long_eq($scoreTable.$array.data[0].$tz.$previousTransition(var$18), var$18))
                                                                break f;
                                                            var$20 = $scoreTable.$size0;
                                                            if (var$20 > 1) {
                                                                var$10 = $rt_compare(0, var$20);
                                                                if (var$10 >= 0) {
                                                                    $zones = new jl_IndexOutOfBoundsException;
                                                                    $zones.$suppressionEnabled = 1;
                                                                    $zones.$writableStackTrace = 1;
                                                                    $rt_throw($zones);
                                                                }
                                                                var$4 = $scoreTable.$array.data;
                                                                $i = var$4[0].$value12 + 2880 | 0;
                                                                if (1 >= var$20) {
                                                                    $zones = new jl_IndexOutOfBoundsException;
                                                                    $zones.$suppressionEnabled = 1;
                                                                    $zones.$writableStackTrace = 1;
                                                                    $rt_throw($zones);
                                                                }
                                                                if ($i < var$4[1].$value12) {
                                                                    if (var$10 < 0)
                                                                        return var$4[0].$tz;
                                                                    $zones = new jl_IndexOutOfBoundsException;
                                                                    $zones.$suppressionEnabled = 1;
                                                                    $zones.$writableStackTrace = 1;
                                                                    $rt_throw($zones);
                                                                }
                                                            }
                                                            $i = var$20 - 1 | 0;
                                                            while ($i >= 0) {
                                                                if ($i < 0)
                                                                    break i;
                                                                if ($i >= $scoreTable.$size0)
                                                                    break i;
                                                                $score = $scoreTable.$array.data[$i];
                                                                $tzOffset = $score.$tz.$getOffset0(var$18) / 60000 | 0;
                                                                if ($tzOffset != $offset) {
                                                                    $j = $score.$value12;
                                                                    var$10 = Long_lo(Long_div(Long_sub($time, var$18), Long_fromInt(60000)));
                                                                    $tzOffset = $tzOffset - $offset | 0;
                                                                    if ($tzOffset < 0)
                                                                        $tzOffset =  -$tzOffset | 0;
                                                                    $score.$value12 = $j + ($rt_imul(var$10, $tzOffset) / 30 | 0) | 0;
                                                                }
                                                                $j = $i + 1 | 0;
                                                                while (true) {
                                                                    var$19 = $scoreTable.$size0;
                                                                    $tzOffset = $rt_compare($j, var$19);
                                                                    if ($tzOffset >= 0)
                                                                        break;
                                                                    var$10 = $score.$value12;
                                                                    if ($j < 0)
                                                                        break l;
                                                                    if ($tzOffset >= 0)
                                                                        break l;
                                                                    var$4 = $scoreTable.$array.data;
                                                                    if (var$10 <= var$4[$j].$value12)
                                                                        break;
                                                                    var$10 = $j - 1 | 0;
                                                                    if ($j < 0)
                                                                        break j;
                                                                    if ($tzOffset >= 0)
                                                                        break j;
                                                                    $zones = var$4[$j];
                                                                    if (var$10 < 0)
                                                                        break k;
                                                                    if (var$10 >= var$19)
                                                                        break k;
                                                                    var$4[var$10] = $zones;
                                                                    $j = $j + 1 | 0;
                                                                }
                                                                $tzOffset = $j - 1 | 0;
                                                                if ($tzOffset < 0)
                                                                    break m;
                                                                if ($tzOffset >= var$19)
                                                                    break m;
                                                                $scoreTable.$array.data[$tzOffset] = $score;
                                                                $i = $i + (-1) | 0;
                                                            }
                                                            $time = var$18;
                                                        }
                                                        return $score.$tz;
                                                    }
                                                    $zones = new jl_IndexOutOfBoundsException;
                                                    $zones.$suppressionEnabled = 1;
                                                    $zones.$writableStackTrace = 1;
                                                    $rt_throw($zones);
                                                }
                                                $zones = new jl_IndexOutOfBoundsException;
                                                $zones.$suppressionEnabled = 1;
                                                $zones.$writableStackTrace = 1;
                                                $rt_throw($zones);
                                            }
                                            $zones = new jl_IndexOutOfBoundsException;
                                            $zones.$suppressionEnabled = 1;
                                            $zones.$writableStackTrace = 1;
                                            $rt_throw($zones);
                                        }
                                        $zones = new jl_IndexOutOfBoundsException;
                                        $zones.$suppressionEnabled = 1;
                                        $zones.$writableStackTrace = 1;
                                        $rt_throw($zones);
                                    }
                                    $zones = new jl_IndexOutOfBoundsException;
                                    $zones.$suppressionEnabled = 1;
                                    $zones.$writableStackTrace = 1;
                                    $rt_throw($zones);
                                }
                                $zones = new jl_IndexOutOfBoundsException;
                                $zones.$suppressionEnabled = 1;
                                $zones.$writableStackTrace = 1;
                                $rt_throw($zones);
                            }
                            $zones = new jl_IndexOutOfBoundsException;
                            $zones.$suppressionEnabled = 1;
                            $zones.$writableStackTrace = 1;
                            $rt_throw($zones);
                        }
                        if (0 < $scoreTable.$size0)
                            return $scoreTable.$array.data[0].$tz;
                        $zones = new jl_IndexOutOfBoundsException;
                        $zones.$suppressionEnabled = 1;
                        $zones.$writableStackTrace = 1;
                        $rt_throw($zones);
                    }
                    if (0 < $scoreTable.$size0)
                        return $scoreTable.$array.data[0].$tz;
                    $zones = new jl_IndexOutOfBoundsException;
                    $zones.$suppressionEnabled = 1;
                    $zones.$writableStackTrace = 1;
                    $rt_throw($zones);
                }
                if ($tzOffset < $zones.$modCount)
                    break;
                $i = $tzOffset_0 + 1 | 0;
                var$4[$j] = $zones.$get($tzOffset_0);
                $j = $j + 1 | 0;
                $tzOffset_0 = $i;
            }
            $zones = new ju_ConcurrentModificationException;
            $zones.$suppressionEnabled = 1;
            $zones.$writableStackTrace = 1;
            $rt_throw($zones);
        }
        if ($i < $zones.$modCount)
            break;
        $j = $tzOffset_0 + 1 | 0;
        $id = $zones.$get($tzOffset_0);
        ju_ArrayList_ensureCapacity($scoreTable, $scoreTable.$size0 + 1 | 0);
        var$4 = $scoreTable.$array.data;
        $tzOffset_0 = $scoreTable.$size0;
        $scoreTable.$size0 = $tzOffset_0 + 1 | 0;
        var$4[$tzOffset_0] = $id;
        $scoreTable.$modCount = $scoreTable.$modCount + 1 | 0;
        $tzOffset_0 = $j;
    }
    $zones = new ju_ConcurrentModificationException;
    $zones.$suppressionEnabled = 1;
    $zones.$writableStackTrace = 1;
    $rt_throw($zones);
},
otcit_DateTimeZoneProvider_getTimeZoneResource = $locationName => {
    let $sepIndex, $areaName, $area;
    $sepIndex = jl_String_indexOf($locationName, 47, 0);
    if ($sepIndex < 0)
        $areaName = $rt_s(3);
    else {
        $areaName = jl_String_substring($locationName, 0, $sepIndex);
        $locationName = jl_String_substring($locationName, $sepIndex + 1 | 0, $locationName.$nativeString.length);
    }
    if (otcit_DateTimeZoneProvider_$$metadata$$0 === null)
        otcit_DateTimeZoneProvider_$$metadata$$0 = otcit_DateTimeZoneProvider_getResource$$create();
    if (!otcit_DateTimeZoneProvider_$$metadata$$0.hasOwnProperty($rt_ustr($areaName)))
        return null;
    if (otcit_DateTimeZoneProvider_$$metadata$$0 === null)
        otcit_DateTimeZoneProvider_$$metadata$$0 = otcit_DateTimeZoneProvider_getResource$$create();
    $area = otcit_DateTimeZoneProvider_$$metadata$$0[$rt_ustr($areaName)];
    return !$area.hasOwnProperty($rt_ustr($locationName)) ? null : $area[$rt_ustr($locationName)];
},
otcit_DateTimeZoneProvider__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    otcit_DateTimeZoneProvider_cache = var$1;
},
otcit_DateTimeZoneProvider_getResource$$create = () => {
    return {"": {"PRC": {"data" : ")Asia/Shanghai"}, "Singapore": {"data" : ")Asia/Singapore"}, "UTC": {"data" : ")Etc/UTC"}, "Hongkong": {"data" : ")Asia/Hong_Kong"}, "Egypt": {"data" : ")Africa/Cairo"}, "UCT": {"data" : ")Etc/UTC"}, "WET": {"data" : "+#  9{q#/\')%=)1/#%3\'=) %# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Kwajalein": {"data" : ")Pacific/Kwajalein"}, "NZ": {"data" : ")Pacific/Auckland"}, "Libya": {"data" : ")Africa/Tripoli"}, "Portugal": {"data" : ")Europe/Lisbon"}, "Iceland": {"data" : ")Atlantic/Reykjavik"}
    , "Zulu": {"data" : ")Etc/UTC"}, "EST5EDT": {"data" : "+# tUFm#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Iran": {"data" : ")Asia/Tehran"}, "PST8PDT": {"data" : "+# H#UFm#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Eire": {"data" : ")Europe/Dublin"}, "Poland": {"data" : ")Europe/Warsaw"}, "GB": {"data" : ")Europe/London"}, "CST6CDT": {"data" : "+# (#UFm#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "GMT-0": {"data" : ")Etc/GMT"}, "GMT+0": {"data" : ")Etc/GMT"}, "Universal": {"data" : ")Etc/UTC"}, "GMT0": {"data" : ")Etc/GMT"}, "Japan": {"data" : ")Asia/Tokyo"}, "EST": {"data" : "+# t# "}, "ROC": {"data" : ")Asia/Taipei"}, "HST": {"data" : "+# i## "}, "NZ-CHAT": {"data" : ")Pacific/Chatham"}, "Navajo": {"data" : ")America/Denver"}, "GMT": {"data" : ")Etc/GMT"}, "Greenwich": {"data" : ")Etc/GMT"}, "MST": {"data" : "+# 8## "}, "MST7MDT": {"data" : "+# 8#UFm#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "ROK": {"data" : ")Asia/Seoul"}, "W-SU": {"data" : ")Europe/Moscow"}, "Cuba": {"data" : ")America/Havana"}, "CET": {"data" : "+# 1f>m##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 F#/7)%=11/#53\'=1 %#15%1 %d53\'=1 [ 5\'\'=11^ 55\'=1  "}, "Turkey": {"data" : ")Europe/Istanbul"}, "EET": {"data" : "+# A9{q#/\')%=)1/#%3\'=) %# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Israel": {"data" : ")Asia/Jerusalem"}, "GB-Eire": {"data" : ")Europe/London"}, "Jamaica": {"data" : ")America/Jamaica"}
    , "MET": {"data" : "+# 1f>m##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 F#/7)%=11/#53\'=1 %#15%1 %d53\'=1 [ 5\'\'=11^ 55\'=1  "}}, "Europe": {"Belgrade": {"data" : "+/ .V2F)#yi#)#%  1#P%))j!% 1=\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #)#%  1##1+A111##13b1 1#]#)72#  117/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Saratov": {"data" : "+3 :XHs3#Lm# /%  Q#O)-v  bAG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11z1\'2#1 Q-?/))% 1 O53\'=1 K,#5\'\'=11n1\'B#1 b#\'1\':#1 Q1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b#/15.#1 Q#+1911 b# "}
    , "Gibraltar": {"data" : "+) 06i.##ii#)1)   B%V##1+v11 #15%1 %#1)A11 #13f1 %#1\'&#11 #13>#1 %#1\'>#11 #13:#1 %#1\'6#11 #15*#1 %#1)-11 #15-1 %#1\'.#11 #15A1 %#7)b=11 \'73b=1  #7)E=11%\'7)b=11\'W75)=1 O#7)E=11%\'7)b=11%#7)E=11%\'7)b=11%#7)E=11%#7)b=11%#7)E=11%\'7)b=11%#7)E=11%#7)b=11 #77b=1 %#7%!#=11%#7+)=)A +71E=)1\'+7))=)A #73b=)1%#7))%)A #7/E=)1 \'75)=1  #7)E=11%#1\'b11 #1)U)A #11I)1 #17)1 %#1\'Y11 #15B#1 %#1)-11 #15>#1 %+7)Y=11++75v=1 %#7)b=11 ?75)=1 ;#7)E=11%\'7)b=11%#7)E=11#))Y1 1#,#)#%  117/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Bucharest": {"data" : "+/ c4HX+#8k#)5%  c4HX+#i#)/&#  A=%#1+v 1 ?75%=  ;;7))= 1g##)+2# 1 #-3\'=  %#))5!%1 #-3\'=) \'1\':#1 A-3/7)%=11\'d53\'=1 [ 5\'\'=11K)#%  A1O#))5!%1 #-3\'=) M+5\'\'= 1++53\'=  \')#%  A1h//)%= 1\'d-3\'=  [ -\'\'= 1^ -5\'=  \')#%  A-ld%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Dublin": {"data" : "+7 q6PB##ii#)1)  q6PB##X#1+v11q6PB###15%1  Q #1+v11 #15%1 %#1)A11 #13f1 %#1\'&#11 #13>#1 %#1\'>#11 #13:#1 %#1\'6#11 #15*#1 %#1)-11 #15-1 #)99   !#\'#1\'6#11 #15*#1 %#1)-11 #15-1 %#1\'.#11 #15A1 %#7)b=11 \'73b=1  #7)E=11%\'7)b=11\'W75)=1 O#7)E=11%\'7)b=11%#7)E=11%\'7)b=11%#7)E=11%#7)b=11%#7)E=11%\'7)b=11%#7)E=11%#7)b=11 #77b=1 %#7%!#=11#1%*#11 #;1591  #\'1\'b11 ##17)1  #\'1)j1  v\'#1\'b11 #1)U)A #11I)1 #17)1 %#1\'Y11 #15B#1 %#1)-11 #15>#1 %+7)Y=11++75v=1 %#7)b=11 ?75)=1 ;#7)E=11%\'7)b=11%#7)E=11%\'7)b=11%#7)E=11%+5\'\'=11+?75!#=1"
    + " 3/7\'n=11%#1%j11#)52#  1=-# 5B#13%C\'\'b=1 CC\'5!#=13% %\'\'=)  C\'5!#=)3%7\'5z=)3% %5\'=)3 "}, "Zaporozhye": {"data" : ")Europe/Kyiv"}, "Kiev": {"data" : ")Europe/Kyiv"}, "Zurich": {"data" : "+) !L0o##Xg#)/b  F2FX##m#)-%  1)&%\'/+%%)1\'\'/5%%1 e#)#%  113/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Copenhagen": {"data" : ")Europe/Berlin"}, "Belfast": {"data" : ")Europe/London"}, "Rome": {"data" : "+- kP,a%#0i#)9Q  kP,a%#4# 5B#!% 1U!##)-1 1 \')5%   #))% 1%#)\'I 1 #)5=  %#)\') 1 #)55  %#)\'v 1 #)3n  r#)-^ 1)#17)1 %#1\':#11 #1511 #)3I  15\'#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)-1  1>#\'#1\':#11 #1511 %#1))11 #13f1 %#)))11 #)3^) %#1\'f11 #1591 %#1\'b 1 #155  %#1%:#11 #15-1 j+7+z= 1+#)3*#  %+73z=   #1-% 1%#1+B# 1 #53\'=  %\'7+z= 1\'#53\'=  %#15%  %#1-- 1 \'53\'=   #1+.# 1%#1-% 1 +53\'=  \'#1+># 1%+7+z= 1\'#15%  %#13>#  \')#%  15//\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Zagreb": {"data" : ")Europe/Belgrade"}, "Monaco": {"data" : ")Europe/Paris"}, "Luxembourg": {"data" : ")Europe/Brussels"}, "Kyiv": {"data" : "+3 Z}{R-#ii#)#%  Z}{R-#y#)+)  A#;)-v  Q#O)3r  11\'#1)%11)#17)1 %#1\':#11 #1511 #)79  QA|#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11r)/%11A#\')3:#9 A1[/7)%=11\'d53\'=1 [ 5\'\'=11^ 55\'=1 #)+U  A-hd%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Tiraspol": {"data" : ")Europe/Chisinau"}, "Jersey": {"data" : ")Europe/London"}, "Istanbul": {"data" : "+; kia4-#ii#)#%  !i>:-#@#)5%  AV#9#)+% 1 #)5%  1#)\'6# 1 #)5*#  %#))- 1 #)5-  %#)\'.# 1 #)5A  )#)+U 1 \')5%   #)+% 1^#)/% 1 #)59   #)9% 1%#)3v  %#))% 1-#)5A  %#)-% 1 #)5%  %\'/)b= 1\'3/5)=  +#))I 1%#))b 1%#))z 1M#)/^ 1%#)5>#  %#)+^ 1 #)5%  E#)--)1 //5B#=1 +#)\'B#11%#)\'z11%#)\'v11%\'/)%=11\'\'/5^=1  #)-:#  #)-:#  Q=7//5B#=1  #)\'v11%\'/)%=11\'\'/5^=1  #)-:#  5#)/B#11 #)5)1 \')7%1 AE\'#)/B#11 #)5)1 )#1)r)1 #136#) %?5\'\'=)1?G53\'=) \'#1\'r)1%O5\'\'=)1KK55\'=) \')#%  A-8#d%3\'=) [ %\'\'=)1^ %5\'=) ` \'2#) A## \'6#) A-H#d%3\'=) [ %\'\'=)1^ %5\'="
    + ") l \'>#) A## \'B#) A-T#d%3\'=) [ %\'\'=)1^ %5\'=) p 5*#)1A## 7A) A-X#d%3\'=) [ %\'\'=)1^ %5\'=) t)3=  Q# "}, "Ulyanovsk": {"data" : "+3 !HBD5#Lm# /%  Q#O)-v  bAG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 Q-C/))% 1 O53\'=1 K,#5\'\'=11n1\'B#1 A-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 Q1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b#/15.#1 Q#+1\'2#1 b# "}, "Samara": {"data" : "+5 J,{e5#Lm# /%  Q#O)-v  b#7)#2#  bA[#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 Q-C/))% 1 O53\'=1 K,#5\'\'=11n1\'B#1 A-K/))% 1 O53\'=1 K,#5\'\'=11n13:#1 Q##)5r9 b1K/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 #1\'6#1 Q-0#O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b# "}
    , "Nicosia": {"data" : ")Asia/Nicosia"}, "Sarajevo": {"data" : ")Europe/Belgrade"}, "Chisinau": {"data" : "+5 2<D2-#ii#)#%  &NT0-#a#)%^  c4HX+#W)/&#  A-%#1+v 1 ?75%=  ;;7))= 1\')1^ 1A#\')/f  19\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)1&#  QA$##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11r)+91 A-G/))% 1 O53\'=1 K,#5\'\'=11j)#%  A1`//)%= 1\'d-3\'=  [ -\'\'= 1^ -5\'=  \')#%  A)  -\'\'=11  -5\'=9  "}, "Vatican": {"data" : ")Europe/Rome"}, "Brussels": {"data" : "+3 Fs.x#ii#)#%  Fs.x#S)+%4JVK  #|)7A  1#+)+%  11 #))>#!%1 #)5%) %\'7)^%11\'\'73^%1 # 7Mz  :# #1\'E 1 \'75%9!%  #1\'%!%1%#1%Y!%1 #15!#!% %#1\'Y!%1 #15*#!% %#1\'*#!%1 775%9!% 3#1)v!%1%#1\':#!%1%#1)1!%1%#1)f!%1%#1)E!%1%#1)Y!%1 K75)=1 G#1)v11%#1)U11%#1)n11%#1)-11%#1\'.#11%#1)A11%#1\'B#11%#1)n11%#1)111%#1\'2#11%#1)b11 #17n1 %#1%*#11#1+r1 1A$#\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)3-  193#1%*#111#13f1 %#1))11 #13b1 %#1+n11 #15=1 D#)#%  19 /\')%=)1/#%3\'=) %# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Oslo": {"data" : ")Europe/Berlin"}, "Warsaw": {"data" : "+3 wF,P)#ii#)#%  wF,P)#T#)15  11%#))>#!%1 #)5%) %\'7)^%11\'\'73^%1 #)3b9 A) \'13b1  #1)^11/)-%  1)3\'13b1  #1)^11x)-!#1 1A$#\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)5%  1r0#\'13b1  #1)^11*##1)-11 #)511 %#)):# 1 #)7%  %#1)Y 1 #15=1 %#1+111 +75%=1 \'#1)j11%#1)I11A#1-))1 \'53\'=)  #1\'>#)1%#1+B#)1 +75%=) \'#1)-)1%/5+\'=)1++53\'=) W)#%  15 /7)%=)1/#53\'=) %#15%) %d53\'=) [ 5\'\'=)1?)#%  11O/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Berlin": {"data" : "++ V:oq%#@k#))%  1M!##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #)+&#1 1- #)+&#1A #)3&#91 #17j1 \')#%  1A #1)Y11 #15=1 %+75%=1 +#1)991 #1+M1A #)-:#91%#1)j11%#1)I11D#)#%  15//\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Lisbon": {"data" : "+1 ,8Z{##yi#)#%  ,8Z{##8# #%   g#1#)-f!%1 #)7%) %#1%6#!%1 315Y!% /#1\'%!%1%#1%6#!%1%#1%:#!%1%#1%6#!%1-#1)b!%1 #15Y!% )#1)f!%1 /75%9!% +#1)E!%1%#1)Y!%1%#1)r!%1)#1)j!%1 \'75%9!%  #1))!%1)#1)=!%1 375%9!% /#1\'>#!%1%#1)j!%1%#1)-!%1%#1\'.#!%1%#1)^!%1 #17j!% %#1%&#!%1 \'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%#7)%9!%1 #75%9!% %l7)%=11ll75%=1 \'))-1 1#K)3.#)  I<#l7)%=11ll75%=1 Q#1\'2# 1 #13*#  %\'7)%= 1\'#15%  %/53\'=) +#5\'\'= 1%\'5\'\'=)1%#5\'\'=11#13*#)  -;/7)%=)1\'d53\'=) [ 5\'\'=)1O132#) 11`/"
    + "\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=) # \'B#)  -hd%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Athens": {"data" : "+- Vwu(+#Hk#)3Y  Vwu(+#x)/6#ec6# A-b#)/= 1 #)3%  E#))= 1#))>#  19G#)/= 1 #)3%  E#))= 1%#)7)9 %#)\'># 1 #)51  \'))1  A^\'#)\'># 1 #)51  E#)/% 1 #)7)  !##1)Q 1 #17.#  %#1)M11 #15I1 %\'7)%=11\'#13.#1 %#)3&#A %#))%j1 #)3:#1 %#))% 1 #)36#  \')#%  A13/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Podgorica": {"data" : ")Europe/Belgrade"}, "San_Marino": {"data" : ")Europe/Rome"}, "Simferopol": {"data" : "+? 6c>>/#ii#)#%  :@@</#y#)+)  A#;)-v  Q#O)7%  19\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #))U  QA$##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11r)#%  Q##)/%1 A#+)\'r  A-`/7)%=11\'d53\'=1 [ 5\'\'=11W)+%  Q1h/7)%=11\'d53\'=1 [ 5\'\'=11^ 55\'=1 #1\'B# 1Q##152#9 Q#\'%\'\'=) A-ld%3\'=) [ %\'\'=)1^ %5\'=) l)\'>#1 b##15.#1 Q# "}
    , "Bratislava": {"data" : ")Europe/Prague"}, "Stockholm": {"data" : ")Europe/Berlin"}, "Prague": {"data" : "+/ J4B*\'#Lg#)#%  J4B*\'#m#)5%  1M*##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #)+E  11 #7)%%11 #15%1 %#1+911 /75%=1 -)9%931#\')%!#1 11\'#1+911 /75%=1 +\'7)^=11%#1)E11@#)#%  15+/\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Uzhgorod": {"data" : ")Europe/Kyiv"}, "Astrakhan": {"data" : "+3 _Zu<5#am#)+%  Q#;)-v  bAG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 Q-C/))% 1 O53\'=1 K,#5\'\'=11n1\'B#1 b#\'1\':#1 Q1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b#/15.#1 Q#+1\'2#1 b# "}
    , "Budapest": {"data" : "+- wo4*)#4k#)7%  11.##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 #)#%  1- \'))^11\'+/3^%9  #))511x))=!% 1=\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #)#%  1j4#+/3^%9  #))511*##)+%!%1 #)7%) %#1\'B#11 #)5=1 %+7)1=11++75%=1 5#)+!# 1 #)5-  %#)+z11 #)5)9 %\'/-%=11\'\'-3\'=9 !##))9 1 #)36#) %+-\'\'= 1++-3\'=) \')#%  11?/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Madrid": {"data" : "+) T(@j#ak# #%   bf#))^!%1 \'159*%  #))9!%15#))b!%1 #151*% )#))f!%1 /75%9*% +#))E!%1%#))^ 1%#))r!%1A#)-b!%1 #15)*% %#)))!%1 #))>#!%A #)5- 1%#15=*% \')\'b!% 1^\'#15=*% -#)+)!%1 #)3%) %//)U9!%1/\'/5%=) %\'-3\'=) -#))>#!%1 #)5)) *#\'/)Q9!%1\'\'/5%=) %#)\'2#!%1 \'-3\'=)  #)))!%1%#1))11 #15%1 \')#%  15+/\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Vaduz": {"data" : ")Europe/Zurich"}, "London": {"data" : "++ ei(\'#@g#)9%   Z%!\'#1+v11 #15%1 %#1)A11 #13f1 %#1\'&#11 #13>#1 %#1\'>#11 #13:#1 %#1\'6#11 #15*#1 %#1)-11 #15-1 %#1\'.#11 #15A1 %#7)b=11 \'73b=1  #7)E=11%\'7)b=11\'W75)=1 O#7)E=11%\'7)b=11%#7)E=11%\'7)b=11%#7)E=11%#7)b=11%#7)E=11%\'7)b=11%#7)E=11%#7)b=11 #77b=1 %#7%!#=11%#7+)=)A +71E=)1\'+7))=)A #73b=)1%#7))%)A #7/E=)1 \'75)=1  #7)E=11%#1\'b11 #1)U)A #11I)1 #17)1 %#1\'Y11 #15B#1 %#1)-11 #15>#1 %+7)Y=11++75v=1 %#7)b=11 ?75)=1 ;#7)E=11%\'7)b=11%#7)E=11%\'7)b=11%#7)E=11%+5\'\'=11+?75!#=1 3/7\'n=11%#1%j11#)52#  1#/ 5B#1  =K?75!#"
    + "=1  #1%j111C7\'b=11CC75!#=1 %[%\'\'=)1[C\'5!#=) %7\'5z=) \')#%   -hd%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Vilnius": {"data" : "+? smaH+#ii#)#%  wF,P)#]#)#%  _*e,+#+)5I  1#\')/Q  A##)5E  1#t)1-  Q#\')-&#  19\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)1%  QA$##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 A-C/))% 1 O53\'=1 K,#5\'\'=11n13:#1 A1[/7)%=11\'d53\'=1 [ 5\'\'=11^ 55\'=1 +)#%  A## \':#) 1-pd%3\'=) [ %\'\'=)1^ %5\'=) / 5B#) A#3)#%  A-(#d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Isle_of_Man":
    {"data" : ")Europe/London"}, "Sofia": {"data" : "+5 gJ{})#ii#)#%  !i>:-#[)7>#  A#,%)7)9 1=+#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #)#%  1##)))9 A#P#)\'B#!% A5 #)\'B#!%1 #)5%) %+/)%9!%1+#)3:#) %#)32#1 \')3.#9 A-7/7)%=11\'d53\'=1 [ 5\'\'=11K)#%  A1[//)%= 1\'d-3\'=  [ -\'\'= 1^ -5\'=  \')#%  A-ld%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Kirov": {"data" : "+1 J42_5#Lm# /%  Q#O)-v  bAG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 Q-C/))% 1 O53\'=1 K,#5\'\'=11n1\'B#1 b#\'1\':#1 Q1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b#/15.#1 Q# "}
    , "Tallinn": {"data" : "+; ke*>+#ii#)#%  ke*>+#a#)%%  11+#))>#!%1 #)5%) %\'7)^%11\'\'73^%1 \')/%  ke*>+#+)+%  A#p)19  Q#\')3^  19\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)3z  QA$##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#11A##13&#1 A1S/7)%=11\'d53\'=1 [ 5\'\'=11^ 55\'=1 +)3z  A-pd%3\'=) [ %\'\'=)1^ %5\'=) /)5B#A A#/)%v  A-$#d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Moscow": {"data" : "+7 !DT&1#ii#)#%  !DT&1#X#)/-  >V*,1=%#)/%!%1 #)96#  %#)+B#w#A #)3b)1%#)+B#!%A # /% 1 #)1b  # /%  QE\'#)+B#w#A #)3b)1%#)+B#!%A # /% 1 #)1b  )#)%Y!%1 #)\'r!%A #)3% 1 #)5%  #)5%  Q=+#)+B#!%A # /% 1 #)1b  )#)%Y!%1 #)\'r!%A #)3% 1 #)5%  \')5%  A#C)-v  QAG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 A-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 Q1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b#/15.#1 Q# "}
    , "Malta": {"data" : "+) V!2,\'#@k#)7)  1N#!##)-1 1 \')5%   #))% 1%#)\'I 1 #)5=  %#)\') 1 #)55  %#)\'v 1 #)3n  r#)-^ 1)#17)1 %#1\':#11 #1511 %#1))11 #13f1 %#)))11 #)3^) %#1\'f11 #1591 %#1\'b 1 #155  %#1%:#11 #15-1 j+7+z= 1+#)3*#  %+73z=   #1-% 1%#1+B# 1 #53\'=  %\'7+z= 1\'#53\'=  %#15%  %#1-- 1 \'53\'=  %)\'B#  1= #1\'B# 1 #13:#  %#1)v 1 #13b  %3/)^=1137/3^=1  #)\'B#11\')#%  113/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Busingen": {"data" : ")Europe/Zurich"}, "Amsterdam": {"data" : ")Europe/Brussels"}, "Andorra":
    {"data" : "+) 6*{=#ak#)#%   #}#)3>#  1#e#)\'B#1 11C/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Riga": {"data" : "+? .g*2+#ii#)#%  .g*2+#a#))^11.g*2+##)3b9 .g*2+#\'))%11.g*2+##)+z9 .g*2+#?)+M  A#[)15  Q#\')/%  19\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)5U  QA$##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v5\'\'=11A##53\'=1 A) ?5\'\'=11??53\'=1 \')#v  A-ld%3\'=) [ %\'\'=)1^ %5\'=) 3)%:#  A#\')#)  A-|d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Vienna": {"data" : "+1 V*.P\'#@k#))%  11!##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 +)#%  1) #1)511 #13U1 t1)%1 1E$#\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #1))111##1)Q1 1#\')#%  1E0##1)511 #13U1 .##1)Y11 #15=1 %\'75%=1 \'#1)911%#1)j11F##))9 1 #)36#  \')#%  113/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Helsinki": {"data" : "+) _B,B+#ai#)+B#  _B,B+#u#)+%  A1v#))- 1 #)51) c#\'-\'\'=11\'\'-3\'=9 \')#%  A1;/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Minsk": {"data" : "+3 FZsu+#ii#)#%  *D6u+#y#)+)  A#;)-v  Q#O)-6#  19\'#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)/-  QA$##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11r)#%  Q#\'1\'B#1 A1K/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 Q# "}, "Kaliningrad": {"data" : "+/ .V2F)#@k#))%  1M!##))>#!%1 #)5%) %\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 %#13b1 #))I  A9\'#1)-11 #)511 %#)):# 1 #)7%  %#1)Y 1 #15=1 #))=  QA,##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 A1C/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 Q#/15.#1 A# "}
    , "Ljubljana": {"data" : ")Europe/Belgrade"}, "Mariehamn": {"data" : ")Europe/Helsinki"}, "Skopje": {"data" : ")Europe/Belgrade"}, "Tirane": {"data" : "+) *,Z8)#8m#)#%  1#0#)-b  1*# #)-b 1)#)7)9 %#)\':#11 #))I9 B##)+1 1 #)5)  %#)+% 1 #)5)  %#)+) 1 #)5-  %#)+A 1 #)5)  %#)+9 1 #)5%  %#)+5 1 #)3>#  %#)+- 1 #)51  %#)).# 1 #)32#  %#)+) 1 #)5-  %#))j 1 #)5%  %#))% 1#)/%  11?/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Guernsey": {"data" : ")Europe/London"}, "Volgograd": {"data" : "+7 V6(R3#Pm#)#-  Q#K)-v  b#D#)7M  bAi##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11z1\'2#1 Q-?/))% 1 O53\'=1 K,#5\'\'=11n1\'B#1 b#\'1\':#1 Q1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 b#/15.#1 Q#3156#1 b#+192#1 Q# "}
    , "Paris": {"data" : "+/ _N&O#8k#)\'b  _N&O#t)\'M   >#5#1-Y!%1 /75%=!% +#1\'&#!%1%#1\'E!%1%#1\'%!%1%#1%Y!%1 #15!#!% %#1\'Y!%1 #15*#!% %#1\'*#!%1 d75%9!% `#1+.#!%1%#1\':#!%1%#1)1!%1%#1)f!%1%#1)E!%1%#1)Y!%1%#1)r!%1%#1)Q!%1%#1)j!%1%#1))!%1%#1\'*#!%1%#1)=!%1%#1\'>#!%1%#1)j!%1%#1)-!%1%#1\'.#!%1%#1)^!%1 #17j!% %#)%*#11#)-Y!% 1A$#\'7)^%11\'\'73^%1 z#1)%11)#17)1 %#1\':#11 #1511 %\'7)%%11\'#15)1 #)1*#   9\'#)\':#1A #)5191%#))-1A #)5A)1%#)))1A #)3b9 #)3b9 19\'#))-1A #)5A)1%#)))1A #)3b9 B##)\'6#)1 #)3.#) \')#%  19 /\')%=)1/#%3\'=) %# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    }, "Africa": {"Tunis": {"data" : "+\' k$J2%#mi#)+Q  _N&O#@#)\'M  1*#6##1)^!%1 #17j!% %#1%*#!%1%#)59  %#)\'E 1 #)7)9 %#)\':#11 #))f1  #))*#11 #)511 %\'/)%%11\'#)5A  %#)3b  F##1)># 1 #13&#  %#1+% 1 #15%  I#1-% 1 +53\'=  \'#1\'.# 1%#1+% 1^#1+% 1 #13>#) %+5\'\'=11++55\'=1  "}, "Maputo": {"data" : "+% &ZB}-#ik#)\'%  A# "}, "Casablanca": {"data" : "++ qJkZ##4m#)5.#   ^.##)3Q 1 #)7n  %#)%*# 15#)7j  5#)-M 1 #)5:#  f#)--&#1 #)5%  =#)-&# 1 #)3%  )\')+% 1\'#)1%  %#)36#  %#)-% 1 #)11  ;)\'b  1#+)#%   6#C#)-% 1 #)11  >##)-% 1 #)3%  %#)-% 1 #)1v  %#)+) 1 #)1A  %#))- 1 #)/B#  %\'-)\'=11\'#)/r9  #)1r11 #)3>#9 %#)/=9  #)1I11 7-5\'=9 33-\'\'=113#)-6#9  #)1)11%#)-Y9  #)/n11%#)-59  #)/I11%#)+v9  #)/)11%#)+U9  #)-f11#)56#9 1J-77-5\'=9 33-\'\'=11\'#)+v9  #)/)11%#)+U9  #)-f11%#)+593 #)-E1 %#))n93 #)+B#1 %#))M93 #)+b1 %#)\'2#93 #)+A1 %#)\'n93 #))!#1 %#)\'I93 #))Y1 %#)%!#93 #))91 %#)%^"
    + "93 #)\'z1 %#)%=93 #)\'Y1 %#)#!#93 #)\'51 %#)#Y93 #)%j1  #)9>#93%#)%I1  #)9z93%#)#.#1  #)9Y93%#)#j1  #)76#93%#)#E1  #)7r93 #)9*#1 %#)7593 #)9f1 %#)56#93 #)9E1 %#)5n93 #)7!#1 %#)5193 #)7^1 %#)3.#93 #)5B#1 %#)3j93 #)5!#1 %#)3)93 #)5Y1 %#)1*#93 #)3:#1 %#)1I93 #)3v1 %#)1)93 #)3U1 %#)/&#93 #)16#1 %#)/E93 #)1r1 %#)/%93 #)151 %#)-!#93 #)/6#1 %#)-=93 #)/n1 %#)+>#93 #)/11 %#)+^93 #)-.#1 %#)+=93 #)-j1 %#))6#93 #)-)1 %#))U93 #)+*#1 %#))593 #)+I1 %#)\'6#93 #)+)1 %#)\'Q93 #))!#1 %#)\'193 #))A1 %#)%f93 #)\'B#1 %#)%E93 #)\'!#1 %#)"
    + "%%93 #)\'=1 %#)#b93 #)%2#1 %#)#A93 #)%Q1  #)9B#93%#)%11  #)9b93%#)#2#1  #)9=93%#)#M1  #)7z93%#)#-1  #)7Y93 #)9.#1 %#)7993 #)9M1 %#)5v93 #)9)1 %#)5U93 #)7f1 %#)5593 #)7E1 %#)3r93 #)7%1 %#)3M93 #)5b1 %#)12#93 #)5A1 %#)1n93 #)3>#1 %#)1M93 #)3^1 %#)/.#93 #)391 %#)/j93 #)1z1 %#)/I93 #)1Y1 %#)-*#93 #)191 %#)-b93 #)/v1 %#)-%93 #)/U1 %#)+&#93 #)-6#1 %#)+b93 #)-r1 %#))>#93 #)-M1 %#))z93 #)+2#1 %#))Y93 #)+n1 %#)\'>#93 #)+M1  "}, "Johannesburg": {"data" : "+\' s40!-#<k#)%A  9#O)\'%  A)c#\'/3^=11 \'/\'^=1  "}, "Addis_Ababa":
    {"data" : ")Africa/Nairobi"}, "Lagos": {"data" : "++ Z]Nd#qk#)/%   #/)/%  Z]Nd#;)#%  )#7)3%  1# "}, "Accra": {"data" : ")Africa/Abidjan"}, "Nairobi": {"data" : "+- s4,u/#}k#)+%  I#t)/%  Q#+)#5  I#;)9B#eP<Xn ZToo1#;)1%  Q# "}, "Brazzaville": {"data" : ")Africa/Lagos"}, "Lubumbashi": {"data" : ")Africa/Maputo"}, "Banjul": {"data" : ")Africa/Abidjan"}, "Porto-Novo": {"data" : ")Africa/Lagos"}, "Lusaka": {"data" : ")Africa/Maputo"}, "Kigali": {"data" : ")Africa/Maputo"}, "Ouagadougou": {"data" : ")Africa/Abidjan"}
    , "Freetown": {"data" : ")Africa/Abidjan"}, "Ndjamena": {"data" : "+) !}H6\'#0m#)#%  1#y%)5Y 11#\')\'A  1# "}, "Conakry": {"data" : ")Africa/Abidjan"}, "Niamey": {"data" : ")Africa/Lagos"}, "Maseru": {"data" : ")Africa/Johannesburg"}, "El_Aaiun": {"data" : "+) 8_2o%#,o#)#%  3#q#))Y   J#+#)-&# 1 #)3%  )\')+% 1\'#)1%  %#)36#  %#)-% 1 #)11  >##)-% 1 #)3%  %#)-% 1 #)1v  %#)+) 1 #)1A  %#))- 1 #)/B#  %\'-)\'=11\'#)/r9  #)1r11 #)3>#9 %#)/=9  #)1I11 7-5\'=9 33-\'\'=113#)-6#9  #)1)11%#)-Y9  #)/n11%#)-59  #)/I11%#)+v9  #)/)11%#)+U9  #)-f11#)56#9 1J-77-5\'=9 33-\'\'=11\'#)+v9  #)/)11%#)+U9  #)-f11%#)+593 #)-E1 %#))n93 #)+B#1 %#))M93 #)+b1 %#)\'2#93 #)+A1 %#)\'n93 #))!#1 %#)\'I93 #))Y1 %#)%!#93 #))91 %#)%^93 #)\'z1 %#)%=93 #)\'Y1 %#)#!#93 #)\'51 %#)#Y93 #)%j1  #)9>#93%#)%I1  #)9z93%#)#.#1 "
    + " #)9Y93%#)#j1  #)76#93%#)#E1  #)7r93 #)9*#1 %#)7593 #)9f1 %#)56#93 #)9E1 %#)5n93 #)7!#1 %#)5193 #)7^1 %#)3.#93 #)5B#1 %#)3j93 #)5!#1 %#)3)93 #)5Y1 %#)1*#93 #)3:#1 %#)1I93 #)3v1 %#)1)93 #)3U1 %#)/&#93 #)16#1 %#)/E93 #)1r1 %#)/%93 #)151 %#)-!#93 #)/6#1 %#)-=93 #)/n1 %#)+>#93 #)/11 %#)+^93 #)-.#1 %#)+=93 #)-j1 %#))6#93 #)-)1 %#))U93 #)+*#1 %#))593 #)+I1 %#)\'6#93 #)+)1 %#)\'Q93 #))!#1 %#)\'193 #))A1 %#)%f93 #)\'B#1 %#)%E93 #)\'!#1 %#)%%93 #)\'=1 %#)#b93 #)%2#1 %#)#A93 #)%Q1  #)9B#93%#)%11  #)9b93%#)#2#1  #)9=93%#)#M"
    + "1  #)7z93%#)#-1  #)7Y93 #)9.#1 %#)7993 #)9M1 %#)5v93 #)9)1 %#)5U93 #)7f1 %#)5593 #)7E1 %#)3r93 #)7%1 %#)3M93 #)5b1 %#)12#93 #)5A1 %#)1n93 #)3>#1 %#)1M93 #)3^1 %#)/.#93 #)391 %#)/j93 #)1z1 %#)/I93 #)1Y1 %#)-*#93 #)191 %#)-b93 #)/v1 %#)-%93 #)/U1 %#)+&#93 #)-6#1 %#)+b93 #)-r1 %#))>#93 #)-M1 %#))z93 #)+2#1 %#))Y93 #)+n1 %#)\'>#93 #)+M1  "}, "Sao_Tome": {"data" : "++ kmFJ##yi#)#%  ,8Z{##8# #%   #]))#%) 1#\')#%1  # "}, "Ceuta": {"data" : "+3 P*J.##ak# #%   #h)+9!%1 ##)5=!%  #;)#%   E;\'159*%  #))9!%15#))b!%1 #151*% )#))f!%1 /75%9*% +#))E!%1%#))^ 1%#))r!%1#)#%   #a#)#%   E #)--&#1 #)5%  =#)-&# 1 #)3%  )\')+% 1\'#)1%  %#)36#  %#)-% 1 #)11  ;)\'b  1#+)#%  11G/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Khartoum": {"data" : "+) Vwq{-#}m#)#%  A1c##)+% 1 `)5^  [#))># 1%W-)\'= 1`)#^&# Q#h)7%  A# "}, "Algiers": {"data" : "+5 6g(^#8k#)\'b  _N&O#t)\'M   M5#1-Y!%1 /75%=!% +#1\'&#!%1%#1\'E!%1%#1\'%!%1%#1%Y!%1 #15!#!% %#1\'Y!%1 #1-v!% j#13M!%1 #)7n) \')%*#1 15\'#13M!%1 #)7n) 5\'/)%%11\'#)5A1 %#)3b) \')5=   #K)#:#  1#?))Y   9p\'/)%%11 #)3b) .##1)*#!%1 #13.#!% 9#)+9 1 #)5v  #)5v  19;#1)*#!%1 #13.#!% 9#)+9 1 #)5v  %#)\'&#)1 #)3z9 \')5.#   1\'#)\'&#)1 #)3z9 )#))*# 1 #)5B#1 \')+%  1# "}, "Bangui": {"data" : ")Africa/Lagos"}
    , "Bujumbura": {"data" : ")Africa/Maputo"}, "Gaborone": {"data" : ")Africa/Maputo"}, "Juba": {"data" : "+) .&oi-#}m#)#%  A1c##)+% 1 `)5^  [#))># 1%W-)\'= 1`)#^&# Q#x)%%  A# "}, "Dar_es_Salaam": {"data" : ")Africa/Nairobi"}, "Windhoek": {"data" : "+- Z$__\'#<k#)%A  9#O)\'%  A#e#)3r11A#\')\'v1 A#(%)\'v  A-1#)\'v 3 $#/3%=1 ||/)%=13 "}, "Harare": {"data" : ")Africa/Maputo"}, "Tripoli": {"data" : "+3 N*$o%#Pm#)#%  19B##)5Y11%#)#%  %#)5E11%#)#%  %#)3># 1%#)#%  /)#%  A#$#)#%  1A0##)#%  .#+))% 1+/)5%   #))9 1%#))1 1 #)5-  %+))% 1++)5%  \')+1  A#;)3>#  11G+))% 1++)5%  A#))1 1 #)51  #)51  A#`)7I1 11`#))1 1 #)51  b#-\'\'5)1 #-5\'51 #)5*#1 A# "}
    , "Libreville": {"data" : ")Africa/Lagos"}, "Malabo": {"data" : ")Africa/Lagos"}, "Abidjan": {"data" : "+% uqip#0m#)#%   # "}, "Luanda": {"data" : ")Africa/Lagos"}, "Lome": {"data" : ")Africa/Abidjan"}, "Nouakchott": {"data" : ")Africa/Abidjan"}, "Bissau": {"data" : "+\' Dya@\'#0m# #%) 3#i%)#%   # "}, "Asmara": {"data" : ")Africa/Nairobi"}, "Kinshasa": {"data" : ")Africa/Lagos"}, "Asmera": {"data" : ")Africa/Asmara"}, "Timbuktu": {"data" : ")Africa/Abidjan"}, "Mogadishu": {"data" : ")Africa/Nairobi"}, "Djibouti":
    {"data" : ")Africa/Nairobi"}, "Douala": {"data" : ")Africa/Lagos"}, "Kampala": {"data" : ")Africa/Nairobi"}, "Dakar": {"data" : ")Africa/Abidjan"}, "Cairo": {"data" : "+% VcVc-#]k#)5%  AN#g##)/^ 1 #)5%  %#))^ 1 #)3b  %+))% 1+#)52#  %+)7%   #))b 1Q#)+I 1 \')5%   #)+% 1%|)+%)1|;)3>#9 %8#)5%9 S#)/*#)1%#)/Q)1%3)+%)1%#)+9)1%3)+%)1%`5)\'5 1`K-5%5  %#)3z  %#/3)5  %#-3%5  %#)1v  %#)1M   #)3I 1 #-5%5  1#)+b 1 #)-2#   #)1% 1 #-5%5  E -)\'5 1  -7%5   "}, "Blantyre": {"data" : ")Africa/Maputo"}, "Monrovia": {"data"
    : "+) L8B>%#qi#)#%  L8B>%#]#)\'%  u8eD%#@%)#=   # "}, "Mbabane": {"data" : ")Africa/Johannesburg"}, "Bamako": {"data" : ")Africa/Abidjan"}}, "Canada": {"Yukon": {"data" : ")America/Whitehorse"}, "Mountain": {"data" : ")America/Edmonton"}, "Pacific": {"data" : ")America/Vancouver"}, "Central": {"data" : ")America/Winnipeg"}, "Eastern": {"data" : ")America/Toronto"}, "Newfoundland": {"data" : ")America/St_Johns"}, "Saskatchewan": {"data" : ")America/Regina"}, "Atlantic": {"data" : ")America/Halifax"}}, "Asia":
    {"Tashkent": {"data" : "++ {TJq=#am#)+)  r#;)-v  &#16%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n)\'B#1 r-K/))% 1 O53\'=1 K,#5\'\'=11j)#%  r# "}, "Beirut": {"data" : "+% Zq,Z/#ii#)#%  A&#g##)\'6# 1 #)5*#  %#))- 1 #)5-  %#)\'.# 1 #)5A  %#))z 1 #)3b  N#3)+% 133)5%  M#)-z 1 7)5%  33)+% 1%#))># 1 #)3>#  9/)+% 1/?)5b  /#)-% 1%#)+I 1%+)+% 1 #)51  % -\'\'= 1 7-3\'=  % -5\'=   "}, "Hong_Kong": {"data" : "+- _Z(NQ#mk# 5:#N# F##]#)-^91F###)5%A)F###)9*#  V##3)7j1 F#Y%#))v 1 #19%= %#1)U=1 #17>#= %#1+)=1 3756#== /3/)%==1 O/5B#== KK/\'j==1%O/)b==1OO/5b== /#)9>#=19#)+U=1 #)5v=  "}
    , "Kabul": {"data" : "+\' {(Po=#4k#)#%  b#H%)#%  j# "}, "Chita": {"data" : "+1 &:*@Q#Lm#)9^  F##O)-v  V#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 F#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 V#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 g##/15.#1 F##+)\'2#1 V## "}, "Baku": {"data" : "+/ s8_a5#am#)+)  Q#L#)\'%  b1&#/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 Q-K/))% 1 O53\'=1 K,#5\'\'=11j53\'=1 b#3)#%  b-` %\'\'=)1+d%3\'=) % %5\'=) \')#%  b) l-\'\'=A1ll-5\'=I  "}, "Kathmandu": {"data"
    : "+\' k}J<E#Pm#)#%  z#u%)#%  &J_NE# "}, "Aqtobe": {"data" : "+3 Rem89#am#)+)  b#;)-v  r#8%))% 1r##)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 r1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 r# "}, "Kamchatka": {"data" : "+/ V>e!f#Xm#)7I  w##C)-v  *%AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 w#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 *%1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 #1\'6#1 w#-0#O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 *%# "}, "Istanbul":
    {"data" : ")Europe/Istanbul"}, "Nicosia": {"data" : "+\' s}(0/#Tm#)7Y  AEB%#))U 1 #)5Q  %#)+^ 1 #)5M  %//)%= 1/#)3*#  %#)5)  %l-3\'=  dh-\'\'= 1#)3%  A-h %\'\'=)1+d%3\'=) % %5\'=)  "}, "Pontianak": {"data" : "+3 2$@JO#}k#)+%  2$@JO#(#)7%  >##K)#:#  V##/)3!#  >##/)+%  F##+)+%  >##[)#%  F##(#)#%  6## "}, "Qostanay": {"data" : "+5 6!J];#am#)+)  b#;)-v  r#8%))% 1r##)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 r1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 &##t)\'%  r# "}
    , "Kuala_Lumpur": {"data" : ")Asia/Singapore"}, "Hanoi": {"data" : "+1 Ra{aM#uk#)/%  J<ZqM#7)+%  6##D#)9B#!% F##/)\'Y!% V###)3)  6##+))%  F##?)5%  6## "}, "Novokuznetsk": {"data" : "+/ .J$cE#am#)+%  &##;)-v  6#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 &#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 6#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 #1\'6#1 &#-0#O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 6## "}, "Bahrain": {"data" : ")Asia/Qatar"}, "Bangkok": {"data" : "+\' 2$DTK#ii#)#%  2$DTK#i#))%  6## "}
    , "Srednekolymsk": {"data" : "+/ &.({b#am#)+)  g##;)-v  w#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 g#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 w#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 *%#/15.#1 w## "}, "Karachi": {"data" : "+- F_<D=#yk#)#%  z#T#)3% 1z#/)5^  z#;)3>#  r#t)\'.#  r5B##/))= 1 #/5)=  9#)-% 1 \')7%   #))^ 1 "}, "Aden": {"data" : ")Asia/Riyadh"}, "Irkutsk": {"data" : "+1 !8FBM#ii#)#%  !8FBM#i#)#*#  6##K)-v  F#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 6#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 F#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 V##/15.#1 F## "}
    , "Hovd": {"data" : "+\' c@w]G#qk#)1%  &##4\')#%  6#E5\'))% 1\'#)5%  )W-\'\'= 1[[-3\'=  -#-)\'911 7-3\'91 33-\'\'911E\'-\'\'911\'\'-3\'9   "}, "Katmandu": {"data" : ")Asia/Kathmandu"}, "Ashkhabad": {"data" : ")Asia/Ashgabat"}, "Samarkand": {"data" : "+/ 6gPB=#am#)+)  b#;)-v  r#8%))% 1r##)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11j)#%  r# "}, "Thimphu": {"data" : "+\' V{26G#ao#)1^  z#i#)5%  &## "}, "Ujung_Pandang": {"data" : ")Asia/Makassar"}, "Muscat": {"data" : ")Asia/Dubai"}, "Amman": {"data"
    : "+\' *LFc/#}m#)#%  AF#o##)-9 1 +)5%  \'/)+% 1\'#)7%  %#)5%  %#))># 1 #)3>#  =#))% 1 #)5%  %+/)%5 1+3/5%5  \'#)+A 1%#))2# 1%#))f 1 #)32#  %#))I 1 \'/5%5   7/)%5 13#/3^5  %/73^5  %#1/% 1 /53\'5  +\'5\'\'1 1%K-)%5 1G#15&#  %#15^  %#53\'5  %755\'5  )#)9r  %?-)%5 1?C55\'5   #-\'%5 1#156#  Q# "}, "Choibalsan": {"data" : "++ :(<TQ#qk#)1%  6##4\')#%  F##7))%  V#= \'))% 1\'#)5%  )W-\'\'= 1[[-3\'=  -#-)\'911 7-3\'91 33-\'\'911+)\'B#  F#1?7-3\'91 33-\'\'911E\'-\'\'911\'\'-3\'9   "}, "Thimbu": {"data" : ")Asia/Thimphu"}
    , "Jayapura": {"data" : "+) s]a0^#$o#)7%  V##S)3%  _##t)#%  V## "}, "Oral": {"data" : "+5 6kJ!7#am#)+)  Q#;)-v  r#8%))% 1r##)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11v1\'.#1 b-C/))% 1 O53\'=1 K,#5\'\'=11j1#n1 r-O/))% 1 O53\'=1 K,#5\'\'=11j1\':#1 b1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 r# "}, "Dubai": {"data" : "+% !qFq7#Pm#)#%  b# "}, "Chungking": {"data" : ")Asia/Chongqing"}, "Yakutsk": {"data" : "+/ 6!ZmW#Lm#)9^  F##O)-v  V#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 F#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 V#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 g##/15.#1 V## "}
    , "Seoul": {"data" : "+- 2$86W#}k#))%  N##3)#%  V##L#)3A  V#9-#)-% 1 #)3U  %#))- 1 +/3A=  \'#))% 1%#)+9 1/)\'v  N#A7+/3A=   #)+9 11#)+5 1 #)3E  %#)+r 1 #)3>#  %//+%= 1///3j=  \')1I  V#13//+%= 1///3j=  2#\'/+A=11\'\'/5A=9  "}, "Hebron": {"data" : "+- oN.R/#]k#)5%  AEg## +B#*%1 # 3>#*%  # 7b*%1)3 5B#*% /\' \'B#*%1%\' )^*%1)# +z*%A # 1B#*%1 \' 5B#*% %)+^  A9E#)+I 1 \')5%   #)+% 1%C)+%)1C;)3>#9 %#)5%9 \')-5  AN#K# )2#*%1 # 3v*% f#)/= 1 #)5U  %#))r 1 #)1B#  5#11)*%1 #13U*% 1#1+5*%1 #11*#*% %#))Y 1 #)3%  %#)+j 1 #)3=  %#))^ 1 #)3U  %#))I 1 #)31  %#))># 1 #)3-  %#)\'*# 1 #)1.#  %#)\'&# 1 #)3%  %#)\':# 1 #)39  %#))) 1 #)35  %#))% 1 #)16#  %#)\'B# 1 #)3-  %#)\'^ 1 #)3b  #)#%  A5/7/)%5 13#/3^5  %/73^5  %#1/% 1 /53\'5  -)#%  Ak) ;/)^5 1;3/5^5  %#)5%) %#)511 %\'))% 1\'#)3z  "
    + "%#)3U1 %\'-\'\'5 1\'#)3%  %#)31) %#)\'.# 1 #)1M  %#))%ec6#1 #)1%   #)1># 1 #)3>#  %+-)%5 1+#)3v) %#)32#  %#)5&#  %#)\'6# 1 #)5!#) %+-\'>#9)1++-5>#9) %#)\':# 1 #-5>#9  %\'-\'>#9 1\'#)5&#) %#)5:#) %#)\'2# 1 W-5>#91 S#)):#11%#))r11%#))Q11%8#-\'>#911l#)5j1 %#)5I1 %#)3*#1 %#)3f1 %#)3%1  #)5r11 4#-5>#91 0##)1&#1  #)5511%#)1b1  #)32#11%#)1%1  #)3n11%#)/!#1  #)3-11%#)/^1  #)1.#11%#)->#1  #)1j11%#)-z1  #)1-11%#)-91  #)/*#11%#)+:#1  #)/I11%#)+v1  #)/)11%#)+91  #)-&#11%#))2#1  #)-A11%#))Q1  #)+B#11%#))11  #)+!#11%#)+A11%#)):#11%#)"
    + ")Y11%#))911% -\'>#911E#)5r1 %#)5Q1 %#)511 %#)3n1 %#)3I1  #)5z11  -5>#91 %#)3)1  #)5Y11%#)1j1  #)5911%#)1I1  #)3v11%#)/*#1  #)3Q11%#)/f1  #)3111%#)/E1  #)1r11%#)-&#1  #)1Q11%#)-^1  #)/2#11%#)-=1  #)/n11%#)+!#1  #)/M11%#)+^1  #)-.#11%#)):#1  #)-f11%#))v1  #)-E11%#))U1  #)+*#11 "}, "Yekaterinburg": {"data" : "+1 >F&!;#@m#)/-  s<}&9#/)/^A b#O)-v  rAG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 r1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 &##/15.#1 r# "}
    , "Famagusta": {"data" : "++ k]o:/#Tm#)7Y  AEB%#))U 1 #)5Q  %#)+^ 1 #)5M  %//)%= 1/#)3*#  %#)5)  %l-3\'=  dh-\'\'= 1#)3%  A-h %\'\'=)1+d%3\'=) % %5\'=) t)3A  Q#\' 5:#) A-X# %\'\'=)1+d%3\'=) % %5\'=)  "}, "Tel_Aviv": {"data" : ")Asia/Jerusalem"}, "Kuwait": {"data" : ")Asia/Riyadh"}, "Calcutta": {"data" : ")Asia/Kolkata"}, "Urumqi": {"data" : "+% .BmiE#qm#)#%  &## "}, "Shanghai": {"data" : "+\' {eZ$U#ak#)#%  F#Yj#))U 1 #)5%  v#)-% 1 #)5U  %#)\'^ 1 #)7)  %#)#B# 1-#)3)  %#)+^ 1 #)5%  %#))^ 1 #)7%  %\')+% 1\'\')5%  #)+6#  F#-Z##)+111 7/3M=1 33/)M=11 "}
    , "Atyrau": {"data" : "+3 .J4.7#am#)+)  Q#;)-v  r#8%)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 r1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 M1\'6#1 b-`O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 r# "}, "Tbilisi": {"data" : "+7 Z8mX3#ii#)#%  Z8mX3#y#)+)  Q#L#)\'%  b1&#/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 Q-K/))% 1 O53\'=1 K,#5\'\'=11j)#%  Q)O -\'\'= 1+d-3\'=  %-3\'=  b-W -\'\'= 1+d-3\'=  % -5\'=  #-5\'= 1b#\'-\'\'=  b-d -\'\'= 1+d-3\'=  % -5\'=  C)-2#  Q-tO53\'=1 K,#5\'\'=11[[55\'=1 5-\'\'=1 b# "}
    , "Anadyr": {"data" : "+1 &gL&n#am#)+)  *%#;)-v  :%9G#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %1)%  *%Aa%#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 w#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 *%1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 #1\'6#1 w#-0#O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 *%# "}, "Brunei": {"data" : ")Asia/Kuching"}, "Vientiane": {"data" : ")Asia/Bangkok"}, "Jakarta": {"data" : "+3 Za@uM#4i#)1I  Za@uM#L% 9B#aiokU 6NuVO#G)7%  >##K)\'!#  V##/)3!#  >##/)+%  F##+)+%  >##[)#%  6## "}
    , "Gaza": {"data" : "+9 F&yD/#]k#)5%  AEg## +B#*%1 # 3>#*%  # 7b*%1)3 5B#*% /\' \'B#*%1%\' )^*%1)# +z*%A # 1B#*%1 \' 5B#*% %)+^  A9E#)+I 1 \')5%   #)+% 1%C)+%)1C;)3>#9 %#)5%9 \')-5  AN#K# )2#*%1 # 3v*% f#)/= 1 #)5U  %#))r 1 #)1B#  5#11)*%1 #13U*% 1#1+5*%1 #11*#*% %#))Y 1 #)3%  %#)+j 1 #)3=  %#))^ 1 #)3U  %#))I 1 #)31  %#))># 1 #)3-  %#)\'*# 1 #)1.#  %#)\'&# 1 #)3%  %#)\':# 1 #)39  %#))) 1 #)35  %#))% 1 #)16#  %#)\'B# 1 #)3-  %#)\'^ 1 #)3b  #)#%  A5/7/)%5 13#/3^5  %/73^5  %#1/% 1 /53\'5  -)#%  AE ;/)^5 1;3/5^5  %#)5%) %#)511 %\'))% 1\'#)3z  %"
    + "#)3U1 %\'-\'\'5 1\'#)3%  #)1:#  A##)3%  A=+\'))% 1 #)3U1 %\'-\'\'5 1\'#)3%  %#)31) %#)\'.# 1 #)1M  #)#%  A##)\'2#ec6# AA+\'-\'\'5 1 #)31) %#)\'.# 1 #)1M  %#))%ec6#1 #)1%   #)1># 1 #)3>#  #)1%  A#\')#%  A:)\'#))%ec6#1 #)1%   #)1># 1 #)3>#  %+-)%5 1+#)3v) %#)32#  %#)5&#  %#)\'6# 1 #)5!#) %+-\'>#9)1++-5>#9) %#)\':# 1 #-5>#9  %\'-\'>#9 1\'#)5&#) %#)5:#) %#)\'2# 1 W-5>#91 S#)):#11%#))r11%#))Q11%8#-\'>#911l#)5j1 %#)5I1 %#)3*#1 %#)3f1 %#)3%1  #)5r11 4#-5>#91 0##)1&#1  #)5511%#)1b1  #)32#11%#)1%1  #)3n11%#)/!#1  #)3-11%#)/^1  #)1.#11%#)->#"
    + "1  #)1j11%#)-z1  #)1-11%#)-91  #)/*#11%#)+:#1  #)/I11%#)+v1  #)/)11%#)+91  #)-&#11%#))2#1  #)-A11%#))Q1  #)+B#11%#))11  #)+!#11%#)+A11%#)):#11%#))Y11%#))911% -\'>#911E#)5r1 %#)5Q1 %#)511 %#)3n1 %#)3I1  #)5z11  -5>#91 %#)3)1  #)5Y11%#)1j1  #)5911%#)1I1  #)3v11%#)/*#1  #)3Q11%#)/f1  #)3111%#)/E1  #)1r11%#)-&#1  #)1Q11%#)-^1  #)/2#11%#)-=1  #)/n11%#)+!#1  #)/M11%#)+^1  #)-.#11%#)):#1  #)-f11%#))v1  #)-E11%#))U1  #)+*#11 "}, "Makassar": {"data" : "++ ..ZXS#Pm#)#%  ..ZXS#S)7%  F##K)%E  V##/)3!#  F## "}, "Ulaanbaatar":
    {"data" : "+\' gN0wM#qk#)1%  6##4\')#%  F#E5\'))% 1\'#)5%  )W-\'\'= 1[[-3\'=  -#-)\'911 7-3\'91 33-\'\'911E\'-\'\'911\'\'-3\'9   "}, "Harbin": {"data" : ")Asia/Shanghai"}, "Vladivostok": {"data" : "+/ wga:Y#Xm#)7^  V##C)-v  g#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 V#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 g#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 w##/15.#1 g## "}, "Qyzylorda": {"data" : "+9 w>a$=#am#)+)  b#;)-v  r#8%))% 1r##)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11n13:#1 r-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 &#-O/))% 1 O53\'=1 K,#5\'\'=11j1\':#1 r1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 &##[)9v  r# "}
    , "Phnom_Penh": {"data" : ")Asia/Bangkok"}, "Riyadh": {"data" : "+% Vcg!5#ao#)\'Y  Q# "}, "Ashgabat": {"data" : "++ ocmP9#am#)+)  b#;)-v  r16%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n)\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11j)#n1 r# "}, "Aqtau": {"data" : "+3 R<ii5#am#)+)  b#;)-v  r#8%)5%  &##\'))%  r1\'/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 b-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 r-O/))% 1 O53\'=1 K,#5\'\'=11b13*#1 b1W/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 r# "}, "Tokyo": {"data" : "+% og:{[#(k# 9B#># V#1_%#/+)= 1 //3A92% +#/))= 1%\'/+)= 1 "}
    , "Novosibirsk": {"data" : "+3 o.kiC#Lm#)9YQ &##O)-v  6#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 &#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 6#-O/))% 1 O53\'=1 K,#5\'\'=11f)+!#  &#1S/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 6##/15.#1 &##+1/&#1 6## "}, "Barnaul": {"data" : "+3 .6!{C#Lm#)9I  &##O)-v  6#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 &#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 6#-O/))% 1 O53\'=1 K,#5\'\'=11^)+6#  &#1[/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 6##/15.#1 &##+1\'2#1 6## "}
    , "Jerusalem": {"data" : "+\' N*HT/#ii#)#%  *]oR/#a#)#%  Ac\'z# +B#*%1 # 3>#*%  # 7b*%1)3 5B#*% /\' \'B#*%1%\' )^*%1)# +z*%A # 1B#*%1 \' 5B#*%  # )>#*%1%# )^*%1 # 3Y*% %# \'B#*%1 # 7I*% %# )n*%1 # 5j*% %# )M*%1 # 3Q*% %# -Q*%1 # 3M*% %# -M*%1 # 3I*% %# -)*%1 # 3:#*% %# )2#*%1 # 3v*% f#)/= 1 #)5U  %#))r 1 #)1B#  5#11)*%1 #13U*% 1#1+5*%1 #11*#*% %#))Y 1 #)3%  %#)+j 1 #)3=  %#))^ 1 #)3U  %#))I 1 #)31  %#))># 1 #)3-  %#)\'*# 1 #)1.#  %#)\'&# 1 #)3%  %#)\':# 1 #)39  %#))) 1 #)35  %#))% 1 #)16#  %#)\'B# 1 #)3-  %#)\'^ 1 #)3b  %#)\'v 1 #)3Y  %#)\'r 1 #)"
    + "39  %#)))11 #)3-1 %#))Y11 #)59) %#))E)1 #)3&#) %#)\':#)1 #)5=) %#)\'6#)1 #)5-) %#))=)1 #)3z) %?-)%511?#)5E1 %#)5%1 %#)3b1 %#)551 %#)32#1 %#)3Q1 %#)5)1 %#)3!#1 % /\'!#511  -5\'=1  "}, "Kolkata": {"data" : "+1 {eRyE#]g#)-6#  >Z4yE#d)#%  66u4C#X#)#%  z#T#)5% 1z#\')+^  z##)3% 1z#/)5^  z# "}, "Kuching": {"data" : "++ gc2_O#im#)\'%  >##?)#%  F#));)3Y sH>(#;;)9Y  \')%b  V##/)3Q  F## "}, "Dacca": {"data" : ")Asia/Dhaka"}, "Baghdad": {"data" : "+) V6(R3#4k#)#%  g_uP3#8#)#%  Q#m%)+%  QA #)+% 1 +)5%  \'#)\'B# 1%\'))% 1 753\'=) 335\'\'=)1%d1)%91dd15%9  "}
    , "Dhaka": {"data" : "+/ VkgDG#4k#)#%  >Z4yE#8%)5%  .##\')+^  z##)3%  .##G)3>#  &##T%)#%  &#) #)-n!%1 #)9B#eP<Xn  "}, "Yerevan": {"data" : "+/ c$uR3#am#)+)  Q#L#)\'%  b1&#/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 Q-K/))% 1 O53\'=1 K,#5\'\'=11^13&#1 b#+)#%  b-WO53\'=1 K,#5\'\'=11[[55\'=1 \')#%  b) #5\'\'=11 #55\'=1  "}, "Saigon": {"data" : ")Asia/Ho_Chi_Minh"}, "Dili": {"data" : "++ ZHXwU#0m#)#%  F##@#)%v!% V##P#)+-  F##(#)3f  V## "}, "Singapore": {"data" : "+3 B4<:M#ak#)#%  B4<:M#3)-%  6##8#)#% sH>(#6##/)#%  6NuVO#7)3%  >##\')%b  V##/)3Q  >##X# 9B#F# F## "}
    , "Rangoon": {"data" : ")Asia/Yangon"}, "Damascus": {"data" : "+\' :m!k/#Pm#)#%  Ak# //)^=11///5%=1 c##)):#11 #)5%1 %+)+%11+#)3>#1 %#)5%1 %#)3>#1 %#))&#11 K)5%1 GO)+%11\'\')3%1 5\'))E11\'\')5%1 )#)%b11 #)5E1 %#)\'%11 \')5B#1  #)\'^11%#)\'B#11 #)5%1 %#))%11 #)3>#1 %#))% 1 \')5%   #))A 1%#)\'.# 1 #)3*#  %+))% 1+O)5%  C\'-\'\'% 1%?))% 1 #)3z  %#-\'\'5 1 #/7%5  %#/)%5 1 #)7%  %#-\'\'5 1%\'/)%5 1%K-\'\'5 1WW-5\'5  #)56#  Q# "}, "Taipei": {"data" : "+) 6s>&U#Lk#)#%  F##m#)5%  V##C)3v) F#^%#)+^ 1 #)5%  %#))^ 1 #)7%  %/)+% 1//)5%  %#)\'% 1 +)7%  \';))% 13;)5%  \'\')-% 1U\'))% 1\'\')5%  1#)/% 1 #)5%   "}
    , "Macau": {"data" : "+) :<o@Q#mk#)5>#  F##]#)9v!% V#-%\'))>#!%1\'#)7f!% %#)3>#!% +)5%  F#.#/\'))>#!%1 #)3>#!% -#1)>#!%1 #13>#!% %#1)n!%1 #17>#!% %#1+)!%1 #15B#!% %\'7)%9!%1\'\'55\'9!% %#1\'B#!%1 #156#!% %\'7)%9!%1\'#17%!% %\'55\'9!%  +7\'f9!%1\'#175!% %C/7%== ??/\'j==1%C/)b==1C\'/5b=5 %G/5b== /#)9>#=1)\'/)b==1-#)+U=1 #/5b==  "}, "Manila": {"data" : "++ (!48,##4g#)9B#  J$FyS#H%)+M  F#)Z##)7% 1%#)%%  7)+%  V##+)7%  F#5?#)%%  f#))Q 1 #)/%  &##)\'z 1 #)3v   "}, "Ulan_Bator": {"data" : ")Asia/Ulaanbaatar"},
    "Kashgar": {"data" : ")Asia/Urumqi"}, "Qatar": {"data" : "+\' >{8&7#Pm#)#%  b#<%)-%  Q# "}, "Bishkek": {"data" : "+- Z}g}?#am#)+)  r#;)-v  &#16%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 r-K/))% 1 O53\'=1 K,#5\'\'=11n)1B#1 r1%37)== 133-3\'=  %C-\'\'=51C?-5\'=5 \')1Q  &## "}, "Chongqing": {"data" : ")Asia/Shanghai"}, "Tomsk": {"data" : "+3 N>{4E#Lm#)9z  &##O)-v  6#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 &#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 6#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 A)+%9 &#-lO53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 6##/15.#1 &##+1+:#1 6## "}
    , "Colombo": {"data" : "+3 ooR,C#ii#)#%  N{q,C#0#)#%  z#X#)#5 )z##)3% 1z#/)5b1 z#8%)+*#  .###)5.#% &##K))^% z# "}, "Khandyga": {"data" : "+3 V&y&[#Lm#)9^  F##O)-v  V#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 F#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 V#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 9)#%  g#-tO53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 w###13U  g##/15.#1 V## "}, "Dushanbe": {"data" : "++ .ZTg=#am#)+)  r#;)-v  &#16%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#11r##13E1 r# "}, "Magadan":
    {"data" : "+1 Ns<@b#am#)+)  g##;)-v  w#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 g#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 w#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 *%#/15.#1 g##+1)&#1 w## "}, "Pyongyang": {"data" : "+- s$8{U#}k#))%  N##3)#%  V##L#)1&#  V##(\')1^  N##/)+1&% V## "}, "Tehran": {"data" : "++ BX:$7#@m#)#%  BX:$7#p)-U  Y-,##)#%  w%#)\'v!%1 #)5v  #)5v  b=y%#)#%  w%#)\'v!%1 #)5v  %#)\'*# 1 #)15) %#)+2# 1 #)3n  #)#%  YZ#\'#)\'*# 1 #)15) %#)+2# 1 #)3n  %#)\'v 1 #)3!#  M#)+- 1%/)\'z 133)3z  %#)\'v 1 #)3v  %+)\'z 1++)3z  %#)\'v 1 #)3v  %+)\'z 1++)3z  %#)\'v 1 #)3v  %#)\'z 1 #)3z  -#)\'v 1 #)3v  %+)\'z 1++)3z  %#)\'v 1 #)3v  %+)\'z 1++)3z  %#)\'v 1 #)3v  %+)\'z 1++)3z  %#)\'v 1 #)3v  %\')\'z 1\'\')3z   "}
    , "Sakhalin": {"data" : "+3 !$HX^#qk#)1!#  V##i#)1*#  w#A(##)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 g#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 w#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 U5\'\'=1 g#-WO53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 w##/15.#1 g##+1\'2#1 w## "}, "Yangon": {"data" : "++ :egZI#ii#)#%  :egZI#i#)#%  .##|)+%  V##/)+-  .## "}, "Almaty": {"data" : "+/ *0yNA#am#)+)  r#;)-v  &#16%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 r-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 &#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 915B#1 &##t)\'%  r# "}
    , "Krasnoyarsk": {"data" : "+/ *TouG#Pm#)#9  &##K)-v  6#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 &#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 6#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 F##/15.#1 6## "}, "Omsk": {"data" : "+/ F6ae?#Lm#)7Y  r#O)-v  &#AG#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 r-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 &#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 6##/15.#1 &## "}, "Macao": {"data" : ")Asia/Macau"}, "Ho_Chi_Minh": {"data"
    : "+5 J<ZqM#uk#)/%  J<ZqM#7)+%  6##D#)9B#!% F##/)\'Y!% V###)3)  6##+))%  F##C)/%) 6##3)9B#!% F##d)-U  6## "}, "Ust-Nera": {"data" : "+3 R4Xc^#Lm#)9^  F##O)-v  V#9G#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  )))%  w#A]%#)%Y!%1 #)\'r!%A #)3% 1 #)5%  Z%/))% 1/+)5%  %O53\'=1 K,#5\'\'=11n1\'B#1 g#-K/))% 1 O53\'=1 K,#5\'\'=11j1#n1 w#1O/))% 1 O53\'=1 K,#5\'\'=11[[55\'=1 \'1\'2#1 *%##13U  w##/15.#1 g## "}}, "Etc": {"UTC": {"data" : "+#  # "}, "UCT": {"data" : ")Etc/UTC"}, "Zulu": {"data" : ")Etc/UTC"}, "GMT+9":
    {"data" : "+# X## "}, "GMT-10": {"data" : "+# g## "}, "GMT-11": {"data" : "+# w## "}, "GMT+5": {"data" : "+# t# "}, "GMT-7": {"data" : "+# 6## "}, "GMT+12": {"data" : "+# ,%# "}, "GMT+6": {"data" : "+# (## "}, "GMT-8": {"data" : "+# F## "}, "GMT+11": {"data" : "+# y## "}, "GMT+7": {"data" : "+# 8## "}, "GMT-9": {"data" : "+# V## "}, "GMT+10": {"data" : "+# i## "}, "GMT+8": {"data" : "+# H## "}, "GMT+1": {"data" : "+# 3# "}, "GMT-3": {"data" : "+# Q# "}, "GMT+2": {"data" : "+# C# "}, "GMT-4": {"data" : "+# b# "}
    , "GMT+3": {"data" : "+# S# "}, "GMT-5": {"data" : "+# r# "}, "GMT+4": {"data" : "+# d# "}, "GMT-6": {"data" : "+# &## "}, "GMT-0": {"data" : ")Etc/GMT"}, "GMT-1": {"data" : "+# 1# "}, "GMT+0": {"data" : ")Etc/GMT"}, "GMT-2": {"data" : "+# A# "}, "Universal": {"data" : ")Etc/UTC"}, "GMT0": {"data" : ")Etc/GMT"}, "GMT-12": {"data" : "+# *%# "}, "GMT-13": {"data" : "+# :%# "}, "GMT-14": {"data" : "+# J%# "}, "GMT": {"data" : "+#  # "}, "Greenwich": {"data" : ")Etc/GMT"}}, "Pacific": {"Easter": {"data" : "+) i._JO#4k#)#%  i._JO#q#)3%  8#M73)3% 1/3))%  V## 7-A1%# \'>#9  # 7!#A1%# \':#9 %# \'Y9 \'+\'5E=A1 [\'\'E=9 W# 3>#A1%W\'5E=A15 \'Y9 (#6#K[\'\'E=9 W# 3>#A1%W\'5E=A1 # )Q9 %+\'\'E=9 +\'\'5E=A1%# 3bA1%7\'\'E=9 7;\'5E=A1 # \'>#9 %#\'\'E=9  # 32#A1%# )19  O\'5E=A1K?\'\'E=9 %# \'>#9 %#\'\'E=9 %#\')%=9 %#\'+)=9  #\'1b=A1%+\')!#=9 ++\'3)=A1)+\'+E=9 ++\'1E=A1% \'))=9  +\'3)=A1%#\'3E=A1% \'3)=A1 "}
    , "Fiji": {"data" : "+% wViBn#<m#)5.#  *%QZ\'\'/7%=11 \'-%\'=9 E#)7:#11%#-\'\'=9  //5v=11+#/\'%=9 %\'/#j=9 %#/#j=1  3/7%=11/;/#Q=9 +#/7A=11%#)9r11 "}, "Port_Moresby": {"data" : "+\' FNLT`#ii#)#%  gB.T`#`)#%  g## "}, "Kiritimati": {"data" : "+) 8{eed#ak#)#%  Hk$>f#H\')5%  i##`)9B#  J%# "}, "Pohnpei": {"data" : ")Pacific/Guadalcanal"}, "Chuuk": {"data" : ")Pacific/Port_Moresby"}, "Yap": {"data" : ")Pacific/Chuuk"}, "Kosrae": {"data" : "+5 0g,8v#4g#)9B#  B<Lyf#P%)#%  w##W)5%  V##7)%%  w##l)#%  g##3))%  V##3)1%  w##(#)5%  *%#@#)#%  w## "}
    , "Kwajalein": {"data" : "+/ {mBsh#ak#)#%  w##X#)#%  g##3))%  V##/)%9  w##,#)5%  ,%#(#)1v  *%# "}, "Auckland": {"data" : "+\' F6aLl#8i#)7)  !%=V%#)7911%#)\'11  7/5A=1)33/\'^=1 %;-)\'=1 ;;-3\'=1)9#)#%  #)#%  *%QS;-)\'=1 ;;-3\'=1)9#)#%  6##77%=11%#5%\'=1  W55\'=11SW7\'%=1  #75A=11%d75%=11dh7\'^=1   53\'=11% 7)%=1  "}, "Efate": {"data" : "+% cy&*j#0m#)#U  w#9_%# 9z&#1%# \'>#&# EC/3!#= 1??/\'!#=  %\'/#!#=  \'#/5!#= 1 "}, "Johnston": {"data" : ")Pacific/Honolulu"}, "Niue": {"data" : "+\' yooHj#uo#)5b  (__Jj#S)/%  y## "}
    , "Majuro": {"data" : ")Pacific/Tarawa"}, "Truk": {"data" : ")Pacific/Chuuk"}, "Ponape": {"data" : ")Pacific/Pohnpei"}, "Guadalcanal": {"data" : "+% !,T<f#0m#)5%  w## "}, "Honolulu": {"data" : "++ i.wod#Lk#)#U&# q##]#))>#11q###)+v&# q#5`\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 +)-A1 i## "}, "Guam": {"data" : "+- uyy.!##4g#)9B#  Z(]$`#P%)#%  g##i#)9I  V##/)/B#  g#Y^#)-2#11)#)#:#1 9#)3%11)#)#.#ec6#  #)-z11 #)1B#1 %\'-)\'=11\'\'/3%=1 )#)9b11%#)%&#1 )#)+.#11 #)1z4!28\' %#))&#11 #)16#1 $#)9!#  g## "}, "Chatham":
    {"data" : "+\' ke>@p#8i#)7)  _o:Fp#H\')#%  FN8!tE6##77%=m:HH)1%#5%\'=m:HH)  W55\'=m:HH)1SW7\'%=m:HH)  #75A=m:HH)1%d75%=m:HH)1dh7\'^=m:HH)   53\'=m:HH)1% 7)%=m:HH)  "}, "Midway": {"data" : ")Pacific/Pago_Pago"}, "Kanton": {"data" : "+)  #8o#)1B#  ,%#q#)5%  y##`)9B#  :%# "}, "Tahiti": {"data" : "+% <@.(b#0m#)5%  i## "}, "Pago_Pago": {"data" : "+\' gk!Xr#<k#)/5  i6VXj#p)#%  y## "}, "Galapagos": {"data" : "+\' $<c4G#}m#)#%  t#H%)#%  (#)9#)76# 1%#)%5   "}, "Funafuti": {"data" : ")Pacific/Tarawa"}, "Marquesas":
    {"data" : "+% @6qu[#0m#)5%  a## "}, "Rarotonga": {"data" : "+) _*qwv#Xk#)9.#  qwe8f#@%)5b  q##0#)7Q  i#- #)7Q )%S/\'%=  SO-5\'= ) "}, "Tarawa": {"data" : "+% _:H*l#ak#)#%  *%# "}, "Saipan": {"data" : ")Pacific/Guam"}, "Gambier": {"data" : "+% my{wY#0m#)5%  X## "}, "Tongatapu": {"data" : "+) c4]Zp#Xo#)3I  ZyX_p#d)#%  :%#a#)#%  :%9 #15=11%#1\'n1  \'/7%=11 \'-#\'=1 Y#/7%=11%#/#^=9  "}, "Wallis": {"data" : ")Pacific/Tarawa"}, "Fakaofo": {"data" : "+\' 44ocj#ak#)#%  y##m))9>#  :%# "}, "Wake": {"data" : ")Pacific/Tarawa"}
    , "Samoa": {"data" : ")Pacific/Pago_Pago"}, "Enderbury": {"data" : ")Pacific/Kanton"}, "Pitcairn": {"data" : "+\' X!}sW#ak#)#%  P##8)))2#  H## "}, "Apia": {"data" : "++ R}mBr#<k#)/5  }$imj#p)#%  $%#e#)#%  y#-Z%#-3\'= 1%#/)%9A  #-3\'991#)9>#  :%5\'#-3\'= 1%#/)%9A  #-3\'991%G/)%=A GC-3\'=91 "}, "Noumea": {"data" : "+% 2(_ah#0m#)#U  w#1o%\'/9%= 1 \')%2#  f#19%11%#1\')1  "}, "Palau": {"data" : "+\' ik4B&##4g#)9B#  g6DoY#P%)#%  V## "}, "Nauru": {"data" : "++ >k8kh#Tm#)#^  !%#x)1:#  V##/)3A  !%#P#)%I1 *%# "},
    "Bougainville": {"data" : "+- gJ>Bd#ii#)#%  gB.T`#`)#%  g##(%)/%  V##/)1v  g##$\')96#1 w## "}, "Norfolk": {"data" : "+/ B0Z!j#ak#)#%  !<y!j#4%)#%  !%#$#152#11!%#\'1\')1 !%#i#1511 w##3)/%  w#1l;55\'=11 #5\'\'=1 % 7)%=1   75%=11 "}}, "America": {"Belem": {"data" : "+\' (62F5#8m#)#%  Svf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  S# "}, "Guayaquil": {"data" : "+\' y:D,C#4k#)#%  qB6oA#m#)#%  t)_%#)76# 1%#)%5   "}
    , "Argentina/Buenos_Aires": {"data" : "+/ ({LR9#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  SA+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S5\'#/5%= 1%#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1 "}, "Costa_Rica": {"data" : "+\' u4!$E#4k#)#%  u4!$E#D#)#^  (#5R%\'-%\'= 1\'\'/-%=  M\'/#^9 1\'#)/%  %#)\'^   "}, "Hermosillo": {"data"
    : "+3 (&JkO#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (##K))&#  8##?)#Y  H##x)#%  8#1t#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %)#%  8## "}, "Punta_Arenas": {"data" : "+= }uH4?#4k#)#%  Dy00?#t)#I  t#;)/%  Dy00?#+)3I  d#\')/%  Dy00?#C)3%  t) 3)3% 1/3))%  #)3%  d#K)-%  t##)1%  d#3)1:# 1t#\'))%  t##)+v!% dB#p3))%  V## 7-A1%# \'>#9  # 7!#A1%# \':#9 %# \'Y9 \'+\'5E=A1 [\'\'E=9 W# 3>#A1%W\'5E=A1 # )Q9 %+\'\'E=9 +\'\'5E=A1%# 3bA1%7\'\'E=9 7;\'5E=A1 # \'>#9 %#\'\'E=9  # 32#A1%# )19  O\'5E=A1K?\'\'E=9 %# \'>#9 %#\'\'E=9 %#\')%=9 %#\'+)=9  #\'1b=A1%+\')!#=9 ++\'3)=A1)+\'+E=9 ++\'1E=A1))91  S# "}
    , "Iqaluit": {"data" : "+)  #Lo#)1%  tA$##)+*#11 #)7%  !##)%E11-# 1Y!%1 #)3>#1 2#[-)\'=11[P#-5\'=1 pp/)%=11=)5B#1 (#-,#S-)\'=11SH#-5\'=1 pp/)%=119)5:#1 t50#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Godthab": {"data" : ")America/Nuuk"}, "Jujuy": {"data" : ")America/Argentina/Jujuy"}, "El_Salvador": {"data" : "+% 4mg,G#Tm#)#%  (#)s%\'/+%= 1\'\'-3\'=   "}, "Monterrey": {"data" : "+) 4<FPK#Xm# #%Q (##u%)#%  (#-xe#-5\'=1 @#K-)\'=11%p/)%=11f)#%  (#Ae##)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1  "}
    , "Bahia": {"data" : "++ (Ns81#8m#)#%  S{#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1%#)%f   #)5r 1%#)%E   #)5*# 1%#)#B#   +/5M= 1\'\'/%^=  %#)%M   #)59 1%#)%b   #)59 1%#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1 7/%^=  3#)7- 1%#)5n 1#)3&#  S#C)5b  S53#)%*#   #/5A= 1%G/5^= 1G//%^=  %#/%z=  #)5v  S# "}, "Indiana/Winamac": {"data" : "+1 <,0VE#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#1 [-)\'=11[C-3\'=1 %\'-5\'=1 %/-3\'=1 \'))>#1 t#C)#%  t1(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11))#%  t#T#)))1 (#5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1 #)\'M1 t1i#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Sao_Paulo": {"data" : "+) T@i}3#8m#)#%  SAf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1#)5!# 1S#\')#%  S2%\'#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1%#)%f   #)5r 1%#)%E   #)5*# 1%#)#B#   +/5M= 1\'\'/%^=  %#)%M   #)59 1%#)%b   #)59 1%#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1 7/%^=  3#)7- 1%#)5n 1%#)7) 1%#)5b 1%#)75 1%#)%*#   #/5A= 1%G/5^= 1G//%^=  %#/%z=  %\'/%^=  %#/%z=  %//%^=  \'#/7%= 1 "}
    , "Grenada": {"data" : ")America/Puerto_Rico"}, "Grand_Turk": {"data" : "+- e4V8?#4k#)#%  a>DLA#|)%%  t#y%)#%  t9Se#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1 C)\'A1 d#/)\'M9 t18%e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Montserrat": {"data" : ")America/Puerto_Rico"}, "Guadeloupe": {"data" : ")America/Puerto_Rico"}, "Panama": {"data" : "+\' (2H&C#4k#)#%  8R$.C#l))z  t# "}, "Guatemala": {"data" : "+% L0gFG#Hm#)55  (#AF%#)7*# 1%#)%&#  E#)+v 1 #)3z  A#)\'!# 1 #)3=  ^#))># 1 #)5%   "}, "Guyana": {"data"
    : "++ (R]L9#,m#)1%  d#3)\'%  $qi&9#]%)1%  S#h)\':#) d# "}, "Swift_Current": {"data" : "++ iNR,O#qk#)3%  8#5U#))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 \'-)\'=1 8#9\'# 1Y!%1 #-3\'=1 %#/)A=11 #/5A=1 %K-)\'=11KK-3\'=1 =)#%  8#5=#-)\'=11 #-5\'=1 )+-)\'=11+#-5\'=1 %\'-3\'=1 O-)\'=1 (## "}, "Puerto_Rico": {"data" : "+) 4T{0=#Xk#)\'6#&# d#u#)+-  d5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  d# "}, "Moncton": {"data" : "+3 }<ys;#ui#)9E  t#p)-^  d)b#))Y11 #)52#1 `)#%  dA +/-A=)1++/3A=) %+/-%=)1++/3%=) %#)+2#)1 +/3v9) \'#)+n)1%#)+1)1\')#%  d5(##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 \')#%  d5?+/3v9)  #)+1)150#-)\'=110#K-3\'=1 %`-5\'=1 \')#%  d58## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11U)#%  d1(%0#-)\'=11``-5\'=1 vW/)%=ec6#1WW-5\'=ec6# \')#%  d1L#H#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Danmarkshavn": {"data" : "+) 4m*!)#@m#)/6#  S#m%))91 S5//\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=) #)#%   # "}, "Fort_Wayne": {"data" : ")America/Indiana/Indianapolis"}, "Nome": {"data" : "+3 RT4et#4i#)5nT**cK }LDLh#L#)1r&# y##q#)#%  y#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  y##x))%  y##+)#%  y#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11-)5>#1 X#-de#-5\'=1 D##-%\'=11%K-)\'=11-)7>#  X#9de#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Porto_Velho": {"data" :
    "+\' 4T6c;#8m#)#%  dvf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  d# "}, "Cuiaba": {"data" : "+) i6.$9#8m#)#%  d{#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1%#)%f   #)5r 1%#)%E   #)5*# 1%#)#B#   +/5M= 1\'\'/%^=  %#)%M   #)59 1%#)%b   #)59 1%#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1 7/%^=  3#)7- 1%#)5n 1#)3&#  d#\')5%  dY/7/%^=  /#)5n 1%#)7) 1%#)5b 1%#)75 1%#)%*#   #/5A= 1%G/5^= 1G//%^=  %#/%z=  %\'/%^=  %#/%z=  %//%^=  \'#/7%= 1 "}
    , "Pangnirtung": {"data" : ")America/Iqaluit"}, "Kralendijk": {"data" : ")America/Curacao"}, "Indiana/Vincennes": {"data" : "+1 ]i:iE#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#E #-)\'=11 #-3\'=1 =\'-)\'=11\';-3\'=1 3#)+% 1%?-)\'=11/#-5\'=1 %#-3\'=1 %\'-5\'=1 \')).#1 t#7)#%  t1(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11))#%  t#T#)))1 (#5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1 #)711 t1i#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Indiana/Indianapolis": {"data" : "+7 yogLE#ui# 7jV# (#)R#\'-\'\'=11\'\'-5\'=1 \')#%  (#)v#)-z11 W-3\'=1 Q)#%  (#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#-7#)-z11 W-3\'=1 CC-)\'=11\'))&#1 t#+)3:#1 (##\'))2#1 t#O)#%  t1(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11))#%  t#T#)#%  t5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Belize": {"data" : "+% ],uuE#0m#))%  (#M9$#/5)= )|$#/%E=   #)-6# 1-# 1Y!%1 #)9b  )t/5)= )pt/%E=  5#)95 1%#)%E  A#)9j 1%#)%Q   "}, "Indiana/Marengo": {"data" : "+3 }uXPE#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ;)#%  (#1 #-)\'=11 #-3\'=1 -;-)\'=11;;-3\'=1 \'))>#1 t#C)#%  t5(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911#)#911(###)52#1 t5?e#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11I)#%  t#@#)#%  t5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Anguilla": {"data" : ")America/Puerto_Rico"}
    , "Argentina/Ushuaia": {"data" : "+5 <iZ]=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  SA+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)+>#  d##)-r  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}, "Santiago": {"data" : "+= Dy00?#4k#)#%  Dy00?#t)#I  t#;)/%  Dy00?#+)3I  d#\')/%  Dy00?#C)3%  t) 3)3% 1/3))%  #)3%  d#K)-%  t##)1%  d#3)/^ 1d##)1:# 1t#\'))%  t##)+v!% dR#p3))%  V## 7-A1%# \'>#9  # 7!#A1%# \':#9 %# \'Y9 \'+\'5E=A1 [\'\'E=9 W# 3>#A1%W\'5E=A1 # )Q9 %+\'\'E=9 +\'\'5E=A1%# 3bA1%7\'\'E=9 7;\'5E=A1 # \'>#9 %#\'\'E=9  # 32#A1%# )19  O\'5E=A1K?\'\'E=9 %# \'>#9 %#\'\'E=9 %#\')%=9 %#\'+)=9  #\'1b=A1%+\')!#=9 ++\'3)=A1)+\'+E=9 ++\'1E=A1% \'))=9  +\'3)=A1%#\'3E=A1% \'3)=A1 "}
    , "Argentina/Catamarca": {"data" : "+9 T}k*=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1%)\'-  d##)5r  S1/#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)-%  d##)-r  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}, "Argentina/ComodRivadavia": {"data" : ")America/Argentina/Catamarca"}, "Boise":
    {"data" : "++ H6*wQ#ui# 7jg# H#)R#\'-\'\'=11\'\'-5\'=1 3)+U1 8#A7\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911#)#%  8###)%-1 8#A?e#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Creston": {"data" : ")America/Phoenix"}, "Miquelon": {"data" : "+) u${$9#,m#)-^  d#$\')+%  S#?)#%  S5WS-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Jamaica": {"data" : "++ a>DLA#4k#)#%  a>DLA#|)%%  t#e%)#%  t5?e#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11))#%  t# "}, "Buenos_Aires":
    {"data" : ")America/Argentina/Buenos_Aires"}, "Rankin_Inlet": {"data" : "+)  #,q#)#%  (#5S# 1Y!%1 #)3>#1 2#[-)\'=11[P#-5\'=1 pp/)%=119)5:#1 t#\'))%9 (#54#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Toronto": {"data" : "+- ],y!C#Hk#)#%  t)!##))Y11 #)52#1 \')#%  tU #)\'>#&%1 #)5.#  %#)+)11 #)3.#  %#)+^11 #)3^1 %\'/+A=11\'3/3^=1 +//+%=11 K/3*#=1 GG/)*#=11%+-)\'=11+\'-3\'=1 /1%E1 t5(##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 \')#%  t9C+-)\'=115/-3\'=1 +4#-)\'=11(#\'-7\'=1 %7-3\'=1 %d-5\'=1 \')#%  t=<## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Eirunepe": {"data" : "+/ yR(}=#8m#)#%  tvf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  t#7)36#  t5\'#)%E   #)5*# 1%#)#B#   +/5M= 1\'\'/%^=  %)3z  t#[)-&#  d#7)7I  t# "}, "Dawson": {"data" : "+- 4H$u[#]k#)1r  X#=j#))Y11 #)52#1 %#)+*#11 #)7%  !##)%E11-# 1Y!%1 #)3>#1 t)#%  X#) #-)\'= A #-5\'=1 C)56#  H##?)#%  H#=T## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1 W)7%  8## "}
    , "Argentina/Mendoza": {"data" : "+A u0eg=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1))\'1  d##)5^ 1d#\')\'%  d##)5^ 1d#\')\'%  d##)5j  S13#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)+!#  d##)3.#  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}, "Nassau": {"data" : ")America/Toronto"}
    , "Vancouver": {"data" : "+\' <@:FU#yi#)#%  H#EN##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 %i#-)\'=11i##)3:#1 %[-3\'=1 %y#-5\'=1 n)#%  H#5WS-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Noronha": {"data" : "+/ e}cy-#8m#)#%  C*#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1#)3f  C#G)3>#  C9\'#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1%)5^  C#\')3U  C1\'#)%2#   \'/5A= 1 7/%^=  3#)7- 1#)5%  C# "}
    , "Argentina/Cordoba": {"data" : "+3 (_2i;#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1%)\'-  d##)5r  S1/#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S5\'#/5%= 1%#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1 "}, "Argentina/La_Rioja": {"data" : "+9 Hw>@=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1%)\'%  d##)+=  S1/#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)-%  d##)-r  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}
    , "Regina": {"data" : "+\' }8.JM#qk#)3%  8#fU#))Y11 #)52#1 Q3/+%= 133/5%=  -3/)A= 13#/5A=  %#/5%=  %+/5A=  %#)%E11-# 1Y!%1 #-3\'=1 %#/)A=11 #/5A=1 %K-)\'=11KK-3\'=1 )#-)\'=11 #-5\'=1 \'-)\'=1 (## "}, "St_Vincent": {"data" : ")America/Puerto_Rico"}, "Scoresbysund": {"data" : "++ i{]c)#@m#)/6#  C#m%))91 C1//7)%=11+#15%1 %d53\'=1 [ 5\'\'=11#)\':#  313/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=) 8#)\'B#  C-}#d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Louisville": {"data" : ")America/Kentucky/Louisville"}, "Aruba": {"data" : ")America/Puerto_Rico"}
    , "North_Dakota/Center": {"data" : "+\' yF*eK#ui# 7j_# 8#MR#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11Y)5*#1 (#5,#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Thule": {"data" : "+% 8&Fg=#@m#)/6#  d9:\'\'-\'\'=11\'\'-3\'=1 %W/)%=11WW-5\'=1 % /\'A=11  /7%=1  "}, "Argentina/San_Juan": {"data" : "+9 $(ia=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1%)\'%  d##)+=  S1/#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)+B#  d##)/*#  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}
    , "Rio_Branco": {"data" : "++ PwaR=#8m#)#%  tvf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  t#t)-&#  d#7)7I  t# "}, "Los_Angeles": {"data" : "+) 0Z2BS#ui# 7jg# H#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  H#5)#)\'Y4!28\'1%#)#%1 %d-)\'=)1dO-3\'=1 %3-5\'=1 \')#%  H#I|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "St_Thomas": {"data"
    : ")America/Puerto_Rico"}, "Cordoba": {"data" : ")America/Argentina/Cordoba"}, "Cancun": {"data" : "++ XogXE#Xm# #%Q (##X%)9!#  t1D##)%Q 1 #)/>#  !%3/)%=1133-5\'=1 ))1)1 (#A,%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 =)%%1 t# "}, "Coral_Harbour": {"data" : ")America/Panama"}, "Ensenada": {"data" : ")America/Tijuana"}, "Maceio": {"data" : "+3 <0:_/#8m#)#%  S*#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1#)3f  S#7)5U  S5+#)#B#   +/5M= 1\'\'/%^=  %#)%M   #)59 1#)31  S#/)3>#  S9\'#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1%)5z  S#\')3U  S1\'#)%2#   \'/5A= 1 7/%^=  3#)7- 1#)5%  S# "}
    , "Sitka": {"data" : "+1 FF,2&##4i#)5nB# ,]L![#L#)1r&# H##q#)#%  H#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  H##$#)#%  H#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11-)5>#1 X#-de#-5\'=1 D##-%\'=11%K-)\'=11-)7>#  X#9de#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Denver": {"data" : "+- PNHPM#ui# 7j_# 8#)R#\'-\'\'=11\'\'-5\'=1 \')#%  8#- \'-\'\'=11\'#-5\'=1 %#)+z1 x)#%  8#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  8#10#\'-\'\'=11 #)+z1 w#\'-)\'=11\'\'-5\'=1 \')#%  8#I|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Porto_Acre": {"data" : ")America/Rio_Branco"}, "Cayman": {"data" : ")America/Panama"}, "Nipigon": {"data" : ")America/Toronto"}, "Thunder_Bay": {"data" : ")America/Toronto"}, "Havana": {"data" : "+\' PZB_C#4k#)#%  0ga_C#T#)/n&# tc#-#)-I 1 #)5I  Q+/-%= 1++/3%=  -\'/-%= 1\'\'/3%=  n#)-% 1 #)3>#  %#)+:# 1 #)5)  %#))A 1 \'/3A=   #))Y 1%C-)\'= 1C+-5\'=  %+)5A  %+-5\'=  %#)+= 1 S/5A=  O\'/\'^= 1%3/+5= 1%//\'Y= 1%?/)%= 1;375A=  %#159  %#15Q  %\'5\'\'= 1\'755\'=  //7)%= 1%#5\'\'= 1)355\'=  /#7\'A= 1%#7\'^= 1%\'7\'A= 1%#7\'^= 1 #17U  %#1)% 1  77%=  % 7\'A= 1 "}
    , "Campo_Grande": {"data" : "+% (o_c7#8m#)#%  dN%f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1%#)%f   #)5r 1%#)%E   #)5*# 1%#)#B#   +/5M= 1\'\'/%^=  %#)%M   #)59 1%#)%b   #)59 1%#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1 7/%^=  3#)7- 1%#)5n 1%#)7) 1%#)5b 1%#)75 1%#)%*#   #/5A= 1%G/5^= 1G//%^=  %#/%z=  %\'/%^=  %#/%z=  %//%^=  \'#/7%= 1 "}, "Rosario": {"data" :
    ")America/Argentina/Cordoba"}, "Cambridge_Bay": {"data" : "+-  #Pm#)#%  8#A\'#)+*#11 #)7%  !##)%E11-# 1Y!%1 #)3>#1 2#[-)\'=11[P#-5\'=1 pp/)%=11=)5B#1 (#-,#S-)\'=11SH#-5\'=1 pp/)%=119)5:#1 t##)75  (##\'))%9 8#54#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Fortaleza": {"data" : "+/ 8wc81#8m#)#%  S*#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1#)3f  S#G)3>#  S9\'#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1%)5z  S#\')3U  S1\'#)%2#   \'/5A= 1 7/%^=  3#)7- 1#)5%  S# "}
    , "Managua": {"data" : "+3 ]T}NE#4k#)#%  L,0PE#y#)-!#  (##e#)+%  t#+)%b  (#)1\'/\'b= 1\'\'/-!#%  S)#%A t##)3&#  (##\')#%  t#3)#%  (#9l\'/\'b= 1\'\'/-!#%  *##))I 1 #/5%=  %#))>#11 #/5%=)  "}, "Menominee": {"data" : "++ iV*kE#}i#)3j&# (#5J#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#1 #-)\'=11 #-3\'=1 r#-)\'=11 #-5\'=1 /))2#1 t#3)):#1 (#I8## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Halifax": {"data" : "+/ @J:];#ek#)-^  d)Y#))% 1 #)5%  +)#%  d) #))Y11 #)52#1 \')#%  dJ#/#))% 1 #)5%  1#)+E 1 #)1:#  %#)+9 1 \')35   #))># 1%+/+%= 1+#)31  %#)3^  %#)36#  %#)+b 1 #)3U  %#)+% 1 #)3.#  %//+A= 1/#)3E  %#)3-  %#)3^  %\'/3&#%   #)+% 1%#))># 1 #)5)  %#)+r 1 #)3b  %#)-) 1 #)3>#  %#)-% 1 #)3Y  %\'/+%= 1\'3/3&#%  +#)+6# 1%\'/+%= 1\'1%E1 d5(##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 \')#%  dIG3/3&#%  \'\'/+%= 15/-)\'=11//-3\'=1 )/-)\'=11//-3\'=1 )/-)\'=11//-3\'=1 -O-)\'=11OO-5\'=1 \')#%  d=<## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%"
    + "=1  "}, "Ojinaga": {"data" : "+7 HFoDM#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (##m%)#%  (#1$%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 ))#%  (###/)%=9 8#A,%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 Q)#%  8#1u#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1 `)5>#1 (###)7>#  (#1H%e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Argentina/Tucuman": {"data" : "+7 Lu4};#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1%)\'-  d##)5r  S1/#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)-%  d##)-U  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1 "}
    , "Glace_Bay": {"data" : "+- HN:q9#ek#)-^  d5b#))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 C)#%  d1?/-)\'=11//-3\'=1 )/-)\'=11//-3\'=1 #)#%  d#l)#%  d1d/-)\'=11//-3\'=1 -O-)\'=11OO-5\'=1 \')#%  d=<## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Lower_Princes": {"data" : ")America/Curacao"}, "Indiana/Petersburg": {"data" : "+1 8BmcE#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 K)#%  (#1 #)+% 1 7-3\'=1 3C-)\'=11//-5\'=1 \'))*#1 t#\')5>#1 (#=x# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11E)5>#1 t#<#)))1 (#5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1 #)711 t1i#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Montreal": {"data" : ")America/Toronto"}, "Mendoza": {"data" : ")America/Argentina/Mendoza"}, "Yakutat": {"data" : "+/ VoL6$##4i#)5n(8eJQ y2,{[#L#)1r&# X##q#)#%  X#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  X##$#)#%  X#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11-)7>#  X#9de#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Detroit": {"data" : "+5 Hg&mC#qk#)#%  (##K)+^1 t#4#)#%  t5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  t))#-)\'=11 #-3\'=1 p)-Yec6# t1|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=111)#%  t#3)#%  t98## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11#)#%  t##))2#1 t=Ce#-5\'=1 H##)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Santa_Isabel": {"data" : ")America/Tijuana"}, "Merida": {"data" : "+) qoq4G#Xm# #%Q (##X%)9!#  t#\')9)  (#AH##)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1  "}, "Bahia_Banderas": {"data" : "+3 eL&VM#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (##K))&#  8##?)#Y  H##x)#%  8#At#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 Q))11 (#1G#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1  "}, "Matamoros": {"data" : "++ 0##Xm# #%Q (##u%)#%  (#-xe#-5\'=1 @#K-)\'=11%p/)%=11f)#%  (#Ae##)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 Q)#%  (#1u#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Indiana/Vevay": {"data" : "+- @V}6E#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 G))*#1 t#`)#%  t1(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11#)#%  t#L#)#%  t5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "St_Barthelemy": {"data" : ")America/Port_of_Spain"}, "Argentina/San_Luis": {"data" : "+A ](F6=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1))#% 1S##)\'Y  d##)5^ 1d#\')\'%  d##)-%  S#C)5- 1d#\')\'-  S#3)+B#  d##)/*#  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)#v  d) \'/\'A=  +\'/5A= 1\')5M  S# "}
    , "Boa_Vista": {"data" : "++ yZ@!;#8m#)#%  dvf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  d#O)3>#  d9\'#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1%)5^  d# "}, "Indiana/Tell_City": {"data" : "+1 ]ycXE#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#1E#)+% 1 7-3\'=1 3?-)\'=11++-5\'=1 \')).#1 t#/)5:#1 (#1|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=111))2#1 t1(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11))#%  t#T#)))1 (#5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Metlakatla": {"data" : "+5 N:u{&##4i#)5n${w>S $ia4Y#L#)1r&# H##q#)#%  H#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  H##$#)#%  H#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11-)5>#1 H##H#)7%1 X#1,%e#-5\'=1 pp/)%=11% /\'A=11  /7%=1 O)711 H##\')#r1 X#1<%e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Tortola": {"data" : ")America/Puerto_Rico"}, "Nuuk": {"data" : "++ 0c6*7#@m#)/6#  S#m%))91 S5//\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=) 4# \'.#) C## 5:#) C-y#d%3\'=) [ %\'\'=)1^ %5\'=)  "}
    , "Argentina/Jujuy": {"data" : "+; Xc$!=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1))\'1  d##)56# 1d#\')\'f  d##)59 1S#\')#%  S13#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S5\'#/5%= 1%#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}, "North_Dakota/New_Salem": {"data" : "+\' iJ4gK#ui# 7j_# 8#MR#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11-)5.#1 (#5X#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Inuvik": {"data" : "+)  #yo#)#%  H#1C# 1Y!%1 #)3>#1 2#[-)\'=11[P#-5\'=1 2#-)\'=1 8#1P## 1Y!%1 #)3>#1 2#[-)\'=11[P#-5\'=1 .#)#%  8#=T## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Port_of_Spain": {"data" : ")America/Puerto_Rico"}, "New_York": {"data" : "+- eTwq?#ui# 7jN# t)R#\'-\'\'=11\'\'-5\'=1 \')#%  t1 #-\'\'=11 #-5\'=1 %}#-)\'=11}#L#-3\'=1 Q)#%  t5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  t50##-\'\'=11 #-5\'=1 %}#-)\'=11}#L#-3\'=1 %O-5\'=1 \')#%  tI|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Paramaribo": {"data" : "++ @B*o7#,m#)#%  m$Xo7#(#)#%  Pkwm7#K)5%  [#e#)5%  S# "}, "Manaus": {"data" : "++ eewq9#8m#)#%  dvf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  d#7)36#  d5\'#)%E   #)5*# 1%#)#B#   +/5M= 1\'\'/%^=  %)3z  d# "}, "Resolute": {"data" : "+-  #ao#)1B#  (#5+# 1Y!%1 #)3>#1 2#[-)\'=11[P#-5\'=1 pp/)%=119)5:#1 t#\'))%9 (#-4#S-)\'=11SH#-5\'=1 pp/)%=11#)5:#1 t#\')\'M9 (#1L#H#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Curacao": {"data" : ")America/Puerto_Rico"}, "North_Dakota/Beulah": {"data" : "+\' ykmmK#ui# 7j_# 8#UR#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1 /)7=1 (#1u#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Bogota": {"data" : "+\' ,$Ps?#yi#)\'U  ,$Ps?#@#)7!#  t)F\'#)+- 1%#)%=   "}, "Ciudad_Juarez": {"data" : "+7 q!6oM#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (##m%)#%  (#1$%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 ))#%  (###/)%=9 8#A,%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 Q)#%  8#1u#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1 `)5>#1 (###)7>#  8#1H%e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Adak": {"data" : "+3 wV8>p#4i#)5n8,ZNI XJ@sl#L#)1r&# y##q#)#%  y#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  y##x))%  y##+)#%  y#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11-)5>#1 i#-de#-5\'=1 D##-%\'=11%K-)\'=11-)7>#  i#9de#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Caracas": {"data" : "+- Te.B=#4k#)#%  e0}@=#|)%Q  l#@%)#%  d#q#)9E9 l#G)+%5 d# "}, "Mazatlan": {"data" : "+1 TiTmM#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (##K))&#  8##?)#Y  H##x)#%  8#At#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1  "}
    , "St_Kitts": {"data" : ")America/Puerto_Rico"}, "Argentina/Salta": {"data" : "+5 D]2$=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S=+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1%)\'-  d##)5r  S1/#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S5\'#/5%= 1%#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}, "Mexico_City": {"data" : "+/ D}s8K#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (#Y\'#)+%!%1 #)5%  A#)%5 1 #)-*#  %#)9E 1%#))%  )#)9b 1%#)+%  9#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 #)3>#1 (##\')%r  (#1\'#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1  "}
    , "Edmonton": {"data" : "+\' }8*@Q#uk#)3%  8#UQ\'/)A=11\'#)52#1 %#)+2#1 %/-)\'=11/#-5\'=1 %+-3\'=1 n#)%E11-# 1Y!%1 #-3\'=1 )#-)\'=11 #-3\'=1 *#[-)\'=11[P#-5\'=1 n)#%  8#5WS-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Kentucky/Louisville": {"data" : "+3 ,DmDE#ui# 7jV# (#)R#\'-\'\'=11\'\'-5\'=1 +)#%  (#1 #)+%11 #)3%1 r#-)\'=11 #-3\'=1 \')#%  (#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#=7#-)\'=11 #-3\'=1 5#-)\'=ec6#1 #)-)1 1O-)\'=11O7-3\'=1 %7-5\'=1 #)/!#1 t#?)#%  t5$## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911#)#911(###)52#1 tA?e#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Araguaina": {"data" : "+/ $aD@5#8m#)#%  S*#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1#)3f  S#7)3Y  Sb+#)#B#   +/5M= 1\'\'/%^=  %#)%M   #)59 1%#)%b   #)59 1%#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1 7/%^=  3#)7- 1%#)5n 1#)3&#  S#G)5v  S13G/5^= 1G//%^=  %#/%z=  %\'/%^=  %)3%  S# "}, "Santo_Domingo": {"data" : "+- X_F}=#4k#)#%  T$F!?#u#))%&# t9J##)5># 1%#)%6#  )3-5\'= )/#)%v  %#)#r  %+)#v  #)52#  d#0#)5:#1 t-L#e#-5\'=1 @#K-)\'=11%p/)%=119)9-) d# "}
    , "Indiana/Knox": {"data" : "+/ (VBVE#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 +)#%  (#5 [-)\'=11[?-3\'=1 %\'-5\'=1 %\'-3\'=1 %+-5\'=1 \')):#1 t#\')52#1 (#Al# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11^)52#1 t#`)))1 (#5e#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Indianapolis": {"data" : ")America/Indiana/Indianapolis"}, "Whitehorse": {"data" : "+- i>{yY#]k#)1r  X#=j#))Y11 #)52#1 %#)+*#11 #)7%  !##)%E11-# 1Y!%1 #)3>#1 t)#%  X#) #-)\'= A #-5\'=1 \')%2#  H##[)#%  H#=T## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1 W)7%  8## "}
    , "Yellowknife": {"data" : ")America/Edmonton"}, "Kentucky/Monticello": {"data" : "++ X:q2E#ui# 7jV# (#5R#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (##|)#%  (#A$## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=119)5:#1 t5L#e#-5\'=1 @#K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Asuncion": {"data" : "++ 8VgB9#4k#)#%  8VgB9#m#)5I  d#m#)5%  S#+))%  dz%W)5% 1W/)\'%  %S))%  +#)5z 1%#)5% 1%#)59 1%#)\'%   #)55 1%#)\'B#   +)5% 1\'\'-%\'=  %#)\'%   7/5%= 13#-%\'=  %//\'%=  %+/)%=  +\'/3%= 1%7/5^= 133/\'A=  % /5%= 1 +/)A=  % /\'z=   "}
    , "Santarem": {"data" : "+) 4]Ne7#8m#)#%  dvf#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1#)3Q  d#t)-&#  S# "}, "Antigua": {"data" : ")America/Puerto_Rico"}, "Virgin": {"data" : ")America/St_Thomas"}, "Winnipeg": {"data" : "+\' 8Z0oI#(k#)/b  (#&#:##))!# 1 #)3f  )#))Y11 #)52#1 n#)+b11 #)3.#1 5#)%E11-# 1Y!%1 #-3\'=1 %#)+Q11 #)5U1 %+-)\'=11++-3\'=1 %#)+%11 #)3>#1 %G-)\'=11G?-3\'=1 %#-5\'=1 %#-3\'=1 -#-)\'=11 #)3z1 -t5)\'=11te#55\'=1 ll7)%=11\')#%  (#5H#S-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Recife": {"data" : "+/ m]4N/#8m#)#%  S*#f#)5-z1%\'))%  \'#)5- 1f/)9% 1+#))b) %\'))%  %#)\'%  I#)9E 1%#)\'%  %#)#B# 1 #)\'B#   #)9% 1%+)\'%  +\')7% 1j#)7) 1%#)\'^   #)5*# 1%#)%Y   #)5*# 1%#)%=   #)5b 1%#)#:#   #)5^ 1%#)%M   #)5v 1#)3f  S#G)3>#  S9\'#)\'%   #)5M 1%#)%v   #)5- 1%#)%2#   \'/5A= 1%)5^  S#\')3U  S1\'#)%2#   \'/5A= 1 7/%^=  3#)7- 1#)5%  S# "}, "Lima": {"data" : "+\' }PwPA#4k#)#%  ysuRA#l)/6#  tI>##)#% 1 #))%   \'-3\'= 1 \'/\'&#=  !%\')#% 1\'\'))%  -#)#% 1 #))%  1#)#% 1 #))%   "}, "Shiprock":
    {"data" : ")America/Denver"}, "Martinique": {"data" : "++ X_J*;#4k#)#%  X_J*;#x)+%  d#$\'))9 1d##)36#  d# "}, "Phoenix": {"data" : "+/ PsB$Q#ui# 7j_# 8#-R#\'-\'\'=11\'\'-5\'=1 !##)%E11+)#%ec6# 8###))%ec6# 8#%+#)%E11+)5%ec6# 8##$#)#%  8#1|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=115)\'v  8## "}, "Goose_Bay": {"data" : "+5 T4sy9#yi#)#%  umw<7#P#)#%  umw<7) #))Y11 #)52#1 \')#%  umw<7#d)\'>#  [#\')#%  [1d`/+%=!%1``-5\'=!% %7/+E% 177/5)%  \')+M  [5(##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 \')#%  [=K7/+E% 177/5)%  53/+A=1133/5)=1 %T#-)\'=11T#C-3\'=1 %0#-5\'=1 r)\'^1 dE`T#-)\'=11T#C-3\'=1 %0#-5\'=1 %#/)%=ec6#1 p-5\'=ec6# l#/)%=ec6#A%h/)%=ec6#1%3/\'A=ec6#13//7%=ec6# \')7%  d1]#H#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "St_Johns": {"data" : "+1 umw<7#yi#)#%  umw<7)J##))A11 #)3f1 \')#%  umw<7) #))Y11 #)52#1 \')#%  umw<79+#))A11 #)3f1 )#)+5!%1 #)1Q!% %`/+%=!%1``-5\'=!% #)\'>#  [9d#)+5!%1 #)1Q!% %`/+%=!%1``-5\'=!% %7/+E% 177/5)%  \')+M  [5(##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 \')#%  [UK7/+E% 177/5)%  53/+A=1133/5)=1 %T#-)\'=11T#C-3\'=1 %0#-5\'=1 %#/)%=ec6#1 p-5\'=ec6# l#/)%=ec6#A%h/)%=ec6#1%3/\'A=ec6#13//7%=ec6# \')7%  [1]#H#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}, "Montevideo": {"data" : "+7 HoF&9#}k#)-I  HoF&9#S)+%  d#/)5%  [A +)5% )\'+))%  =7-5\'= )3?-)%=  +#)5% )%#)52# )%#)1% )%#)9Y )#)9Y  SAC?-)%=   #)1% )%#)9Y )%#)\'Y  b#)+&# ) #)7^  %#)#f 1 #)\'9  #)#%  SA\'#)+&# ) #)7^  %#)#f 1 #)\'9  5#))1 1 #)3.#  -#)+2# ) #)9%  #)#%  S9/#))1 1 #)3.#  -#)+2# ) #)9%  )#))*# 1 #)-Y  #)#%  SI+#)+2# ) #)9%  )#))*# 1 #)-Y  )#))!# 1 #)/b  )#)#U 9 #)\'I ) #)3%   #)9z 1#)#%  S9+#))!# 1 #)/b  )#)#U 9 #)\'I ) #)3%   #)9z 1#)\'I  S9+#))!# 1 #)/b  )#)#U 9 #)\'I ) #)3%   #)9z 1#)9z  S:#+#))!# 1 #)/b  )#)#U 9 #)\'I ) #)3%  "
    + " #)9z 1%#)\'>#  %#)9n 1%#)\'9   #)91 1%\'/\'%=  \'#)9f 1%#)):# 1%#)\'b  =#)9Y 1%#)%6#   #)9M 1%#)\'5   #)5:# 1%#)%*#   \'/5v= 1 \'/\'%=   #)5j 1%#)%6#  M#)3n 1%#)\'2#1  #)5E11%G/\'A=1 GC/5%=11 "}, "St_Lucia": {"data" : ")America/Puerto_Rico"}, "Knox_IN": {"data" : ")America/Indiana/Knox"}, "Chicago": {"data" : "+1 DXLkE#ui# 7jV# (#)R#\'-\'\'=11\'\'-5\'=1 \')#%  (#5 #)-U11 \'-5\'=1  #-\'\'=11%y#-)\'=11y#H#-3\'=1 j)\'%1 t##)7^1 (#1d\'-5\'=1  #-\'\'=11%y#-)\'=11y#H#-3\'=1 Q)#%  (#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  (#50#\'-5\'=1  #-\'\'=11%y#-)\'=11y#H#-3\'=1 %O-5\'=1 \')#%  (#I|# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Chihuahua": {"data" : "+3 $T:gM#Xm# #%Y 8##7)-I!% (##/)7^  8#)%#)+%!%1 #)5%  \'))%  (##m%)#%  (#1$%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 ))#%  (###/)%=9 8#A,%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 #)5>#1 (## "}, "La_Paz": {"data" : "+) qc.Z=#4k#)#%  qc.Z=#m#)5^ 1qc.Z=#\')\'v  d# "}, "Blanc-Sablon": {"data" : ")America/Puerto_Rico"}, "Catamarca": {"data" : ")America/Argentina/Catamarca"}, "Tijuana": {"data" : "+G yo**S#Xm# #%Y 8##+)#%  H##/)-I!% 8##/)7^  H##\'))% 1H###)3>#  H##O))&# 1H##/ 1Y!%1H###)7Q  H##/))5 1H##\')#Y  H##7)#%  H#-7#)#%1 %d-)\'=)1dO-3\'=1 #)#%  H##`)#%  H#1Ge#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11I)#%  H#9$%#)%Q 1 #)/>#  !%3/)%=1133-5\'=1 %#/+%=11 #-3\'=1 #)#%  H#-P#e#-5\'=1 @#K-)\'=11%p/)%=111)%r  H#1\'#/+%=11 #-3\'=1 %t/)%=11tt-5\'=1 Q)#%  H#1u#e#-5\'=1 pp/)%=11% /\'A=11  /7%=1  "}
    , "Barbados": {"data" : "+) q.$k9#,m#)16#  d9B## )nI1 # 1B#Q %# +)I1 # 35Q %# )II) # 3IQ #)#%  d1\'# +)I1 # 35Q %# )II) # 3IQ \')#%  d=\'# )II) # 3IQ J##)-Q11 \'/5%=1  +/)^=11\'#)3>#1 %#)3*#1  "}, "Atka": {"data" : ")America/Adak"}, "Anchorage": {"data" : "+1 cL0&|#4i#)5n]&VBO mTH.b#L#)1r&# i##q#)#%  i#=(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=119))%  i##+)#%  i#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=11-)5>#1 X#-de#-5\'=1 D##-%\'=11%K-)\'=11-)7>#  X#9de#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Port-au-Prince": {"data" : "+\' 4]FP?#4k#)#%  (oVN?#4#)#&#&# tMs%#)+A 1%/-)\'= 133-5\'=  %G7)%=)1GG55\'=) A\'/)%= 1\'\'-5\'=  9//\'A=11///7%=1 ) /\'A=11  /7%=1  "}, "Rainy_River": {"data" : ")America/Winnipeg"}, "Cayenne": {"data" : "+\' uu.67#,m#)/%  d#L%)5%  S# "}, "Tegucigalpa": {"data" : "+% u}2cE#Tm#))%  (#1s%\'/+%= 1\'\'-3\'=  j#/+%= 1 #/1%%   "}, "Juneau": {"data" : "+5 20oB&##4i#)5nDFu!S @sgmY#L#)1r&# H##q#)#%  H#5(#\'-\'\'=11\'\'-5\'=1 !##)%E11-# 1Y!%1 #)3>#1 \')#%  H##$#)#%  H#=(## 1Y!%1 #)3>#1 ze#-5\'=1 e#;-)\'=11%#)#911%#-%\'=11%K-)\'=119))2#1 X#-We#-5\'=1 D##-%\'=11%K-)\'=119)5.#1 H#-We#-5\'=1 D##-%\'=11%K-)\'=11-)5>#1 X#-de#-5\'=1 D##-%\'=11%K-)\'=11-)7>#  X#9de#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}
    , "Marigot": {"data" : ")America/Port_of_Spain"}, "Atikokan": {"data" : ")America/Panama"}, "Argentina/Rio_Gallegos": {"data" : "+5 e]_o=#Dk#)5B#  (_2i;#0#)+%  d#K)9%  dn #)9% 1%#))%   #)5^ 1%C)\'%  C?)7% 1%#)/% 1%#)-^   #)5^ 1)#)1%   #)5^ 1-#)\'%   #)5% 1f#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  SA+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  Y#)9% 1%3/\'%=  3//5^= 1=#/5%= 1#)5-  d-K3/\'%=  9#/5%= 1%#)\'-  #)\'-  S#3)-%  d##)-r  S13#)\'-  =#)9># 1%\'/\'^=  \'#/5^= 1#)5j  S# "}, "Dawson_Creek": {"data"
    : "+) D4oiS#yi#)#%  H#5N##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 +)#%  H#1\'i#-)\'=11i##)3:#1 %[-3\'=1 %y#-5\'=1 N#)1>#1 8## "}, "Dominica": {"data" : ")America/Puerto_Rico"}, "Fort_Nelson": {"data" : "+- aF,>U#yi#)#%  H#=N##))Y11 #)52#1 &##)%E11-# 1Y!%1 #)3>#1 %i#-)\'=11i##)3:#1 #)#%  H##\')#%  H#1\'i#-)\'=11i##)3:#1 %[-3\'=1 %y#-5\'=1 n)#%  H#5WS-)\'=11SH#-5\'=1 pp/)%=11% /\'A=11  /7%=1 C)\'A1 8## "}}, "Brazil": {"DeNoronha": {"data" : ")America/Noronha"}, "West": {"data" : ")America/Manaus"}, "Acre": {"data"
    : ")America/Rio_Branco"}, "East": {"data" : ")America/Sao_Paulo"}}, "Indian": {"Reunion": {"data" : ")Asia/Dubai"}, "Maldives": {"data" : "+\' *yug?#ii#)#%  *yug?#P\')#%  r# "}, "Christmas": {"data" : ")Asia/Bangkok"}, "Antananarivo": {"data" : ")Africa/Nairobi"}, "Chagos": {"data" : "+\' FJ6R?#yk#)#%  r#u\')#%  &## "}, "Mahe": {"data" : ")Asia/Dubai"}, "Mayotte": {"data" : ")Africa/Nairobi"}, "Kerguelen": {"data" : ")Indian/Maldives"}, "Mauritius": {"data" : "+% &{*@9#yk#)#%  b1:\'#)5I 1%#)\'v  *##-5\'=11%#-\'\'=1  "}
    , "Cocos": {"data" : ")Asia/Yangon"}, "Comoro": {"data" : ")Africa/Nairobi"}}, "Mexico": {"General": {"data" : ")America/Mexico_City"}, "BajaNorte": {"data" : ")America/Tijuana"}, "BajaSur": {"data" : ")America/Mazatlan"}}, "Antarctica": {"Macquarie": {"data" : "+3  #Xk#)7%  g##h)5%11g##\')%%  g#) #1#%11 #5\'\'=1 +1)%   #<#)\'*#  g#%7\'5\'\'=1 $#)#%  g#r0%\'7\'%=1 *%#75%=11%#7\':#=1  h55\'=11d+7\'A=1 %#5%\'=1 %C7\'%=1 %\'5\'\'=1 %+7\'%=1  #75^=11%/7\'^=1 /#75z=11%+55\'=11%C75%=11C[5\'\'=1 7#51\'=11% 75%=115#7)%=1 %#5\'\'=1 % 7)%=1 +)#% 1g##\')#%  g#-K 75%=119#5\'\'=1 % 7)%=1  "}
    , "Palmer": {"data" : "++  #Lq#)#%  d=+#)5%   #)9^ 1%+)\'%  ++)5^ 1%#)))   \'/5%= 1 \'/)%=  #)55  S1+\'/5%= 1 \'/)%=  5#)#!# 1 #)+%  C)+%  d&#K[\'\'E=9 W# 3>#A1%W\'5E=A1 # )Q9 %+\'\'E=9 +\'\'5E=A1%# 3bA1%7\'\'E=9 7;\'5E=A1 # \'>#9 %#\'\'E=9  # 32#A1%# )19  O\'5E=A1K?\'\'E=9 %# \'>#9 %#\'\'E=9 %#\')%=9 %#\'+)=9  #\'1b=A1%+\')!#=9 ++\'3)=A1)+\'+E=9 ++\'1E=A1))91  S# "}, "Casey": {"data" : "+E  #]q#)#%  F##i#)5j1 w##\')\'51 F##\')56#1 w##\' %vN# F##3)5z  w##+)\'MA F###)5=A w##\')\'f9 F###)519 w##\')\'A9 F###)51ec6# w##\')\'Y  F###)5-ec6# w##\')\'U  F###)5)ec6# w##\')\'E9 F## "}
    , "Troll": {"data" : "+%  #4u#)%Q   )  %\'\'=)A\' %5\'=)  "}, "Vostok": {"data" : "++  #,q#)9b  6##]#)%%   ##)7%  6##<#)9j1 r# "}, "DumontDUrville": {"data" : ")Pacific/Port_Moresby"}, "Syowa": {"data" : ")Asia/Riyadh"}, "South_Pole": {"data" : ")Antarctica/McMurdo"}, "Mawson": {"data" : "+\'  #}o#)%U  &##H%)5j1 r# "}, "McMurdo": {"data" : ")Pacific/Auckland"}, "Davis": {"data" : "+1  #,q#)#U  6##?)7%   #7)%%  6##i#)5j1 r#\' \'Ig# 6##\')56#1 r#\' %vg# 6## "}, "Rothera": {"data" : "+%  #yq#)9%  S# "}}, "Arctic":
    {"Longyearbyen": {"data" : ")Europe/Oslo"}}, "Australia": {"Lord_Howe": {"data" : "+) &w}*f#Hk#)%%  g##i\')\'%  o#- /-5\'=11+//\'%=1  #-5\'=1)#)/%  o#Y3/-5\'=11+//\'%=1  #-5\'=1)%//\'^=1 /#)5n1)%S-5\'=1)G7/\'%=1 %G-\'\'=1 7#-1\'=1)%;-5\'=1)\'#/)%=1 %#-\'\'=1 % /)%=1   /5%=1) "}, "Lindeman": {"data" : "+) JaDy`#Hk#)#%  g#=z#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-118#)#%  g#1 #55\'=11%#5%\'=1 f+55\'=11\'+7\'%=1 #)/%  g#) \'55\'=11 \'7\'%=1  "}, "Tasmania": {"data" : ")Australia/Hobart"}
    , "Victoria": {"data" : ")Australia/Melbourne"}, "West": {"data" : ")Australia/Perth"}, "Adelaide": {"data" : "+) {@mc[#Hk#)%%  V##3)+%  _#=j#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-118#)#%  _#^ [55\'=11%#15n11%t55\'=11T##1%2#1 %S7\'%=1 %37\'^=1 %#1\'-1 %#1\'z1 %#1\'=1 %#1\'r1 %K5\'\'=1 %#1))1 %#5\'\'=1 % 7)%=1   75%=11 "}, "Perth": {"data" : "+\' 2TXoQ#Hk#)9%  F#=z#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-11#)/%  F#EB##55\'=11%#7\'%=1 A#55\'=11%#7\'%=1 =#17f11%#7\'%=1 Y#19-11%+5\'\'=1 +\'55\'=11 "}
    , "South": {"data" : ")Australia/Adelaide"}, "Eucla": {"data" : "+\' B$}ZW#Hk#)9%  N>N.Y=z#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-11#)/%  N>N.YEB##55\'=11%#7\'%=1 A#55\'=11%#7\'%=1 =#17f11%#7\'%=1 Y#19-11%+5\'\'=1 +\'55\'=11 "}, "LHI": {"data" : ")Australia/Lord_Howe"}, "Melbourne": {"data" : "+\' BDi(`#Hk#)%%  g#=z#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-118#)#%  g#Y [55\'=11W#5%\'=1 %S7\'%=1 %37\'^=1 3\'75^=11%O55\'=11C/7\'%=1 %K5\'\'=1 7#51\'=11%;55\'=11\'#7)%=1 %#5\'\'=1 % 7)%=1   75%=11 "}
    , "Hobart": {"data" : "+) oRyV`#Hk#)3%  g#1v#75%=11%#5\'\'=1  \'75z=11 \'7\'%=1 #)5&#  g#=+#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-11(#)#%  g#r0%\'7\'%=1 *%#75%=11%#7\':#=1  h55\'=11d+7\'A=1 %#5%\'=1 %C7\'%=1 %\'5\'\'=1 %+7\'%=1  #75^=11%/7\'^=1 /#75z=11%+55\'=11%C75%=11C[5\'\'=1 7#51\'=11% 75%=115#7)%=1 %#5\'\'=1 % 7)%=1  "}, "Broken_Hill": {"data" : "+- &w(@^#Hk#)%%  g##\')1!#  V##/)+%  _#=j#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-118#)#%  _#M [55\'=11W#1%2#1 %C7\'%=1 %#7)%=1 %+7\'%=1 %/7\'^=1 /#15n11%S55\'=11G77\'%=1 %G5\'\'=1 7#51\'=11#)#%  _#=Wt55\'=11W#1\'r1 %K5\'\'=1 %#1))1 %#5\'\'=1 % 7)%=1   75%=11 "}
    , "Darwin": {"data" : "+\' o:D&Y#Hk#)%%  V##3)+%  _#=j#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-11 "}, "ACT": {"data" : ")Australia/Sydney"}, "Brisbane": {"data" : "+\' 2,@mb#Hk#)#%  g#=z#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-118#)#%  g#1 #55\'=11%#5%\'=1 f+55\'=11\'+7\'%=1  "}, "NSW": {"data" : ")Australia/Sydney"}, "Currie": {"data" : ")Australia/Hobart"}, "Yancowinna": {"data" : ")Australia/Broken_Hill"}, "Canberra": {"data" : ")Australia/Sydney"}, "North": {"data"
    : ")Australia/Darwin"}, "Sydney": {"data" : "+\' .wFHb#Hk#)%%  g#=z#1#%11 #5\'\'=1 *##1#%11 #5\'\'=1  #132#11%\'5\'\'=1 \'#15-118#)#%  g#b [55\'=11W#1%2#1 %C7\'%=1 %#7)%=1 %+7\'%=1 %/7\'^=1 /#15n11%S55\'=11G77\'%=1 %G5\'\'=1 7#51\'=11%;55\'=11\'#7)%=1 %#5\'\'=1 % 7)%=1   75%=11 "}, "Queensland": {"data" : ")Australia/Brisbane"}}, "Chile": {"EasterIsland": {"data" : ")Pacific/Easter"}, "Continental": {"data" : ")America/Santiago"}}, "Atlantic": {"St_Helena": {"data" : ")Africa/Abidjan"}, "Reykjavik": {"data"
    : ")Africa/Abidjan"}, "Stanley": {"data" : "+- @gTF9#4k#)#%  @gTF9#|)\'Q  d9*#\'-3\'= 1 3/\'n=  /#)5% 1%+-3\'= 1%#)#%  g##-3\'= 1#)+%  S5i##)#%  g##-3\'= 1%\'-)\'=  \'#)3b 1%`/3E= 1^)3^  d9\'\'-)\'=  \'#)3b 1%`/3E= 1[[/)b=  %G/)^=1 GG/3%=11#)351 S# "}, "Faroe": {"data" : "+\' DyeJ##}k#)#M   #4\')#%   13/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Madeira": {"data" : "+; ]<aZ\'#yi#)#%  ]<aZ\'#8# #%) 3J#1#)-f!%1 #)7%) %#1%6#!%1 315Y!% /#1\'%!%1%#1%6#!%1%#1%:#!%1%#1%6#!%1-#1)b!%1 #15Y!% )#1)f!%1 /75%9!% +#1)E!%1%#1)Y!%1%#1)r!%1)#1)j!%1 \'75%9!%  #1))!%1)#1)=!%1 375%9!% /#1\'>#!%1%#1)j!%1%#1)-!%1%#1\'.#!%1%#1)^!%1 #17j!% %#1%&#!%1 \'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% -1)*#w# 39+\'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% -11^w# 3A+\'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w#1)1)fw# 39\'/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w"
    + "#1)116#w# 3=\'/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%1)zw# 35+/7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%11.#w# 35+/7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A#1)vw# 35//7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A#11*#w# 3E//7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%#7)%9!%1 #75%9!% %l7)%=11ll75%=1 \'))-1  Ipl7)%=11ll75%=1 Q#1\'2# 1 #13*#  %\'7)%= 1\'#15%  %/53\'=) +#5\'\'= 1%\'5\'\'=)1%#5\'\'=11#13*#)  1;/\')%=)1\'d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Canary":
    {"data" : "++ <is<\'#Xm#)\'%  3#(#)3>#)  #P#1)9 1 ## 36#)  5//\')%=)1+# 5%) %d%3\'=) [ %\'\'=)1^ %5\'=)  "}, "Faeroe": {"data" : ")Atlantic/Faroe"}, "Jan_Mayen": {"data" : ")Europe/Berlin"}, "Bermuda": {"data" : "++ T4Bu;#4k#)#%  T4Bu;12##))9 1 #)5%  %#))Y 1 #)3b  S)#%1 dYS#))Y 1 #)3b  &##)#M11 #)5j1 %#)\'v11 #)5B#1 %\'/\'A=11\'\'/7%=1 )#/+^=11 #/3A=1 %3/+z=1133/3%=1 1#/+z=11 #-5\'=1 l))6#1 d1<## 1Y!%1 #)3>#1 :#S-)\'=11SH#-5\'=1 >#)#%  d9Ge#-5\'=1 D##-%\'=11%K-)\'=11%p/)%=11% /\'A=11  /7%=1  "}, "Azores":
    {"data" : "+? 0Z.P+#yi#)#%  4TF.-#8# #%1 CJ#1#)-f!%1 #)7%) %#1%6#!%1 315Y!% /#1\'%!%1%#1%6#!%1%#1%:#!%1%#1%6#!%1-#1)b!%1 #15Y!% )#1)f!%1 /75%9!% +#1)E!%1%#1)Y!%1%#1)r!%1)#1)j!%1 \'75%9!%  #1))!%1)#1)=!%1 375%9!% /#1\'>#!%1%#1)j!%1%#1)-!%1%#1\'.#!%1%#1)^!%1 #17j!% %#1%&#!%1 \'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% -1)*#w# C9+\'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% -11^w# CA+\'155!%  #1)5!%1%/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w#1)1)fw# C9\'/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w"
    + "#1)116#w# C=\'/7\'A9!%1/#1)*#w#A #11^w#1 /75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%1)zw# C5+/7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%11.#w# C5+/7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A#1)vw# C5//7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A#11*#w# CE//7\'A9!%1//75&#9!% +#1)fw#A +71*#9w#1\'\'7)v9w#A%#7)%9!%1 #75%9!% %l7)%=11ll75%=1 \'))-1 3Ipl7)%=11ll75%=1 Q#1\'2# 1 #13*#  %\'7)%= 1\'#15%  %/53\'=) +#5\'\'= 1%\'5\'\'=)1%#5\'\'=11#13*#) 3-;/7)%=)1\'d53\'=) [ 5\'\'=)1O132#)  -`/\')%=)1\'d%3\'=) [ %\'\'=)1S \'6#) 31d/\')%=)1\'d%3\'=) [ %"
    + "\'\'=)1^ %5\'=)  "}, "South_Georgia": {"data" : "+% i_>o/#4k#)#%  C# "}, "Cape_Verde": {"data" : "++ X2y$+#0m# #%1 C#@#)3% 1C#/)5^  C#@#)7*#1 3# "}}, "US": {"Aleutian": {"data" : ")America/Adak"}, "Mountain": {"data" : ")America/Denver"}, "Pacific": {"data" : ")America/Los_Angeles"}, "East-Indiana": {"data" : ")America/Indiana/Indianapolis"}, "Hawaii": {"data" : ")Pacific/Honolulu"}, "Alaska": {"data" : ")America/Anchorage"}, "Central": {"data" : ")America/Chicago"}, "Eastern": {"data" : ")America/New_York"}
    , "Indiana-Starke": {"data" : ")America/Indiana/Knox"}, "Arizona": {"data" : ")America/Phoenix"}, "Samoa": {"data" : ")Pacific/Pago_Pago"}, "Michigan": {"data" : ")America/Detroit"}}};
},
ju_AbstractQueue = $rt_classWithoutFields(ju_AbstractCollection);
function ju_PriorityQueue() {
    let a = this; ju_AbstractQueue.call(a);
    a.$data9 = null;
    a.$comparator0 = null;
    a.$originalComparator0 = null;
    a.$size6 = 0;
    a.$version0 = 0;
}
let ju_PriorityQueue__init_ = $this => {
    let var$1;
    var$1 = null;
    $this.$data9 = $rt_createArray(jl_Object, 1);
    $this.$originalComparator0 = var$1;
    $this.$comparator0 = ju_Comparator$NaturalOrder_INSTANCE;
},
ju_PriorityQueue__init_0 = () => {
    let var_0 = new ju_PriorityQueue();
    ju_PriorityQueue__init_(var_0);
    return var_0;
},
ju_PriorityQueue_offer = ($this, $e) => {
    let $current, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $current_0;
    if ($e === null) {
        $e = new jl_NullPointerException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $rt_throw($e);
    }
    $current = $this.$size6 + 1 | 0;
    var$3 = $this.$data9;
    var$4 = var$3.data;
    var$5 = var$4.length;
    if (var$5 < $current) {
        var$6 = (var$5 * 3 | 0) / 2 | 0;
        if ($current > var$6)
            var$6 = $current;
        var$7 = var$3.constructor;
        if (var$7 === null)
            var$8 = null;
        else {
            var$8 = var$7.classObject;
            if (var$8 === null) {
                var$8 = new jl_Class;
                var$8.$platformClass = var$7;
                var$7.classObject = var$8;
            }
        }
        var$8 = jl_Class_getComponentType(var$8);
        if (var$8 === null) {
            $e = new jl_NullPointerException;
            $e.$suppressionEnabled = 1;
            $e.$writableStackTrace = 1;
            $rt_throw($e);
        }
        if (var$8 === $rt_cls($rt_voidcls)) {
            $e = new jl_IllegalArgumentException;
            $e.$suppressionEnabled = 1;
            $e.$writableStackTrace = 1;
            $rt_throw($e);
        }
        if (var$6 < 0) {
            $e = new jl_NegativeArraySizeException;
            $e.$suppressionEnabled = 1;
            $e.$writableStackTrace = 1;
            $rt_throw($e);
        }
        var$9 = jlr_Array_newInstanceImpl(var$8.$platformClass, var$6);
        if (var$6 < var$5)
            var$5 = var$6;
        $current = 0;
        while ($current < var$5) {
            var$9.data[$current] = var$4[$current];
            $current = $current + 1 | 0;
        }
        $this.$data9 = var$9;
    }
    $current = $this.$size6;
    while ($current > 0) {
        $current_0 = ($current - 1 | 0) / 2 | 0;
        if ($this.$comparator0.$compare($e, $this.$data9.data[$current_0]) >= 0)
            break;
        var$3 = $this.$data9.data;
        var$3[$current] = var$3[$current_0];
        $current = $current_0;
    }
    $this.$data9.data[$current] = $e;
    $this.$size6 = $this.$size6 + 1 | 0;
    $this.$version0 = $this.$version0 + 1 | 0;
    return 1;
},
ju_PriorityQueue_size = $this => {
    return $this.$size6;
},
ju_PriorityQueue_removeAt = ($this, $index) => {
    let $item, $next, $next_0, var$5, var$6, var$7;
    $this.$version0 = $this.$version0 + 1 | 0;
    $item = $this.$data9.data[$this.$size6 - 1 | 0];
    a: {
        while (true) {
            $next = ($index * 2 | 0) + 1 | 0;
            $next_0 = $next + 1 | 0;
            var$5 = $this.$size6;
            if ($next >= var$5)
                break;
            if ($next_0 < var$5) {
                var$6 = $this.$comparator0;
                var$7 = $this.$data9.data;
                if (var$6.$compare(var$7[$next], var$7[$next_0]) >= 0)
                    $next = $next_0;
            }
            if ($this.$comparator0.$compare($item, $this.$data9.data[$next]) <= 0)
                break a;
            var$7 = $this.$data9.data;
            var$7[$index] = var$7[$next];
            $index = $next;
        }
    }
    var$7 = $this.$data9.data;
    var$7[$index] = $item;
    $index = $this.$size6 - 1 | 0;
    $this.$size6 = $index;
    var$7[$index] = null;
},
otcit_DateTimeZoneProvider$1 = $rt_classWithoutFields(),
otcit_DateTimeZoneProvider$1__init_ = $this => {
    return;
},
otcit_DateTimeZoneProvider$1__init_0 = () => {
    let var_0 = new otcit_DateTimeZoneProvider$1();
    otcit_DateTimeZoneProvider$1__init_(var_0);
    return var_0;
},
otcit_DateTimeZoneProvider$1_compare = ($this, var$1, var$2) => {
    var$1 = var$1;
    return Long_compare(var$2.$value7, var$1.$value7);
};
function otcit_AliasDateTimeZone() {
    otcit_StorableDateTimeZone.call(this);
    this.$innerZone = null;
}
let otcit_AliasDateTimeZone_getOffset = ($this, $instant) => {
    return $this.$innerZone.$getOffset0($instant);
},
otcit_AliasDateTimeZone_getStandardOffset = ($this, $instant) => {
    return $this.$innerZone.$getStandardOffset($instant);
},
otcit_AliasDateTimeZone_previousTransition = ($this, $instant) => {
    return $this.$innerZone.$previousTransition($instant);
};
function otcit_DateTimeZoneProvider$Score() {
    let a = this; jl_Object.call(a);
    a.$tz = null;
    a.$value12 = 0;
}
let juf_Function = $rt_classWithoutFields(0),
otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0 = $rt_classWithoutFields(),
otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0__init_ = var$0 => {
    return;
},
otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0__init_0 = () => {
    let var_0 = new otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0();
    otcit_DateTimeZoneProvider$detectTimezone$lambda$_4_0__init_(var_0);
    return var_0;
};
function otci_CharFlow() {
    let a = this; jl_Object.call(a);
    a.$characters = null;
    a.$pointer = 0;
}
let otci_Base46 = $rt_classWithoutFields(),
otci_Base46__init_ = $this => {
    return;
},
otci_Base46__init_0 = () => {
    let var_0 = new otci_Base46();
    otci_Base46__init_(var_0);
    return var_0;
},
otci_Base46_decodeUnsigned = $seq => {
    let $number, $pos, var$4, $hasMore, $digit;
    $number = 0;
    $pos = 1;
    while (true) {
        var$4 = $seq.$characters.data;
        $hasMore = $seq.$pointer;
        $seq.$pointer = $hasMore + 1 | 0;
        $digit = var$4[$hasMore];
        $digit = $digit < 34 ? $digit - 32 | 0 : $digit >= 92 ? ($digit - 32 | 0) - 2 | 0 : ($digit - 32 | 0) - 1 | 0;
        $hasMore = ($digit % 2 | 0) != 1 ? 0 : 1;
        $number = $number + $rt_imul($pos, $digit / 2 | 0) | 0;
        $pos = $pos * 46 | 0;
        if (!$hasMore)
            break;
    }
    return $number;
},
otci_Base46_decodeUnsignedLong = $seq => {
    let $number, $pos, var$4, $digit, var$6, $hasMore;
    $number = Long_ZERO;
    $pos = Long_fromInt(1);
    while (true) {
        var$4 = $seq.$characters.data;
        $digit = $seq.$pointer;
        $seq.$pointer = $digit + 1 | 0;
        var$6 = var$4[$digit];
        $digit = var$6 < 34 ? var$6 - 32 | 0 : var$6 >= 92 ? (var$6 - 32 | 0) - 2 | 0 : (var$6 - 32 | 0) - 1 | 0;
        $hasMore = ($digit % 2 | 0) != 1 ? 0 : 1;
        $number = Long_add($number, Long_mul($pos, Long_fromInt($digit / 2 | 0)));
        $pos = Long_mul($pos, Long_fromInt(46));
        if (!$hasMore)
            break;
    }
    return $number;
};
function otcit_DateTimeZoneBuilder$PrecalculatedZone() {
    let a = this; otcit_StorableDateTimeZone.call(a);
    a.$iTransitions = null;
    a.$iWallOffsets = null;
    a.$iStandardOffsets = null;
    a.$iTailZone = null;
}
let otcit_DateTimeZoneBuilder$PrecalculatedZone_create = ($id, $outputID, $transitions, $tailZone) => {
    let $size, $trans, var$7, $wallOffsets, var$9, $standardOffsets, var$11, $last, $i, var$14, $tr;
    $size = $transitions.$size0;
    if (!$size) {
        $id = new jl_IllegalArgumentException;
        $id.$suppressionEnabled = 1;
        $id.$writableStackTrace = 1;
        $rt_throw($id);
    }
    $trans = $rt_createLongArray($size);
    var$7 = $trans.data;
    $wallOffsets = $rt_createIntArray($size);
    var$9 = $wallOffsets.data;
    $standardOffsets = $rt_createIntArray($size);
    var$11 = $standardOffsets.data;
    $last = null;
    $i = 0;
    while (true) {
        var$14 = $rt_compare($i, $size);
        if (var$14 >= 0) {
            $transitions = new otcit_DateTimeZoneBuilder$PrecalculatedZone;
            if (!$outputID)
                $id = $rt_s(3);
            if ($id !== null) {
                $transitions.$iID = $id;
                $transitions.$iTransitions = $trans;
                $transitions.$iWallOffsets = $wallOffsets;
                $transitions.$iStandardOffsets = $standardOffsets;
                $transitions.$iTailZone = $tailZone;
                return $transitions;
            }
            $transitions = new jl_IllegalArgumentException;
            $transitions.$suppressionEnabled = 1;
            $transitions.$writableStackTrace = 1;
            $transitions.$message = $rt_s(1644);
            $rt_throw($transitions);
        }
        if ($i < 0)
            break;
        if (var$14 >= 0)
            break;
        $tr = $transitions.$array.data[$i];
        if ($last === null)
            var$14 = 1;
        else
            a: {
                b: {
                    if (Long_gt($tr.$iMillis, $last.$iMillis)) {
                        if ($tr.$iWallOffset != $last.$iWallOffset)
                            break b;
                        if ($tr.$iStandardOffset0 != $last.$iStandardOffset0)
                            break b;
                    }
                    var$14 = 0;
                    break a;
                }
                var$14 = 1;
            }
        if (!var$14) {
            $transitions = new jl_IllegalArgumentException;
            $transitions.$suppressionEnabled = 1;
            $transitions.$writableStackTrace = 1;
            $transitions.$message = $id;
            $rt_throw($transitions);
        }
        var$7[$i] = $tr.$iMillis;
        var$9[$i] = $tr.$iWallOffset;
        var$11[$i] = $tr.$iStandardOffset0;
        $i = $i + 1 | 0;
        $last = $tr;
    }
    $id = new jl_IndexOutOfBoundsException;
    $id.$suppressionEnabled = 1;
    $id.$writableStackTrace = 1;
    $rt_throw($id);
},
otcit_DateTimeZoneBuilder$PrecalculatedZone_readZone = ($id, $flow) => {
    let $length, $firstLongIsMin, $transitions, $wallOffsets, $standardOffsets, var$8, var$9, var$10, var$11, $i, var$13, $tailZone, var$15, var$16, var$17, $result;
    $length = otci_Base46_decodeUnsigned($flow);
    $firstLongIsMin = !($length & 1) ? 0 : 1;
    a: {
        $length = $length >>> 1 | 0;
        $transitions = $rt_createLongArray($length);
        $wallOffsets = $rt_createIntArray($length);
        $standardOffsets = $rt_createIntArray($length);
        if (!$firstLongIsMin) {
            var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
            var$9 = Long_div(var$8, Long_fromInt(2));
            if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
                var$9 = Long_neg(var$9);
            var$10 = Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000));
            var$11 = $transitions.data;
            var$11[0] = var$10;
            $i = 1;
            while (true) {
                if ($i >= $length)
                    break a;
                var$10 = var$11[$i - 1 | 0];
                var$9 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
                var$13 = Long_div(var$9, Long_fromInt(2));
                if (Long_ne(Long_rem(var$9, Long_fromInt(2)), Long_ZERO))
                    var$13 = Long_neg(var$13);
                var$11[$i] = Long_add(Long_add(var$10, Long_ne(Long_and(var$13, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$13, 1) : Long_mul(Long_shr(var$13, 1), Long_fromInt(1800000))), Long_fromInt(657000000));
                $i = $i + 1 | 0;
            }
        }
        var$11 = $transitions.data;
        var$11[0] = Long_create(0, 2147483648);
        if (var$11.length > 1) {
            var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
            var$9 = Long_div(var$8, Long_fromInt(2));
            if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
                var$9 = Long_neg(var$9);
            var$11[1] = Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000));
            $i = 2;
            while ($i < $length) {
                var$13 = var$11[$i - 1 | 0];
                var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
                var$9 = Long_div(var$8, Long_fromInt(2));
                if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
                    var$9 = Long_neg(var$9);
                var$11[$i] = Long_add(Long_add(var$13, Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000))), Long_fromInt(657000000));
                $i = $i + 1 | 0;
            }
        }
    }
    otcit_StorableDateTimeZone_readTimeArray($flow, $wallOffsets);
    otcit_StorableDateTimeZone_readTimeArray($flow, $standardOffsets);
    var$11 = $flow.$characters.data;
    $firstLongIsMin = $flow.$pointer;
    $length = $firstLongIsMin + 1 | 0;
    $flow.$pointer = $length;
    if (var$11[$firstLongIsMin] != 121)
        $tailZone = null;
    else {
        $flow.$pointer = $length + 1 | 0;
        var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
        var$9 = Long_div(var$8, Long_fromInt(2));
        if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
            var$9 = Long_neg(var$9);
        $length = Long_lo((Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000))));
        $tailZone = otcit_DateTimeZoneBuilder$OfYear_read($flow);
        var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
        var$9 = Long_div(var$8, Long_fromInt(2));
        if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
            var$9 = Long_neg(var$9);
        $firstLongIsMin = Long_lo((Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000))));
        var$15 = new otcit_DateTimeZoneBuilder$Recurrence;
        var$15.$iOfYear = $tailZone;
        var$15.$iSaveMillis = $firstLongIsMin;
        $tailZone = otcit_DateTimeZoneBuilder$OfYear_read($flow);
        var$8 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
        var$9 = Long_div(var$8, Long_fromInt(2));
        if (Long_ne(Long_rem(var$8, Long_fromInt(2)), Long_ZERO))
            var$9 = Long_neg(var$9);
        $firstLongIsMin = Long_lo((Long_ne(Long_and(var$9, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$9, 1) : Long_mul(Long_shr(var$9, 1), Long_fromInt(1800000))));
        var$16 = new otcit_DateTimeZoneBuilder$Recurrence;
        var$16.$iOfYear = $tailZone;
        var$16.$iSaveMillis = $firstLongIsMin;
        $tailZone = new otcit_DateTimeZoneBuilder$DSTZone;
        if ($id === null) {
            $flow = new jl_IllegalArgumentException;
            $flow.$suppressionEnabled = 1;
            $flow.$writableStackTrace = 1;
            $flow.$message = $rt_s(1644);
            $rt_throw($flow);
        }
        $tailZone.$iID = $id;
        $flow = new ju_GregorianCalendar;
        if (otcit_DateTimeZoneBuilder_gmtCache === null)
            otcit_DateTimeZoneBuilder_gmtCache = ju_TimeZone_getTimeZone($rt_s(1645));
        var$17 = otcit_DateTimeZoneBuilder_gmtCache;
        ju_Locale_$callClinit();
        ju_GregorianCalendar__init_($flow, var$17, ju_Locale_defaultLocale);
        $tailZone.$calendar = $flow;
        $tailZone.$iStandardOffset2 = $length;
        $tailZone.$iStartRecurrence = var$15;
        $tailZone.$iEndRecurrence = var$16;
    }
    $result = new otcit_DateTimeZoneBuilder$PrecalculatedZone;
    if ($id === null) {
        $flow = new jl_IllegalArgumentException;
        $flow.$suppressionEnabled = 1;
        $flow.$writableStackTrace = 1;
        $flow.$message = $rt_s(1644);
        $rt_throw($flow);
    }
    $result.$iID = $id;
    $result.$iTransitions = $transitions;
    $result.$iWallOffsets = $wallOffsets;
    $result.$iStandardOffsets = $standardOffsets;
    $result.$iTailZone = $tailZone;
    if (otcit_DateTimeZoneBuilder$PrecalculatedZone_isCachable($result)) {
        if ($result instanceof otcit_CachedDateTimeZone)
            $result = $result;
        else {
            $id = new otcit_CachedDateTimeZone;
            $flow = $result.$iID;
            if ($flow === null) {
                $flow = new jl_IllegalArgumentException;
                $flow.$suppressionEnabled = 1;
                $flow.$writableStackTrace = 1;
                $flow.$message = $rt_s(1644);
                $rt_throw($flow);
            }
            $id.$iID = $flow;
            $id.$iInfoCache = $rt_createArray(otcit_CachedDateTimeZone$Info, otcit_CachedDateTimeZone_cInfoCacheMask + 1 | 0);
            $id.$iZone = $result;
            $result = $id;
        }
    }
    return $result;
},
otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset = ($this, $instant) => {
    let $transitions, var$3, $i, var$5, var$6, var$7, var$8, var$9, var$10, $$je;
    $transitions = $this.$iTransitions;
    var$3 = $transitions.data.length;
    $i = ju_Arrays_binarySearch($transitions, 0, var$3, $instant);
    if ($i >= 0)
        return $this.$iWallOffsets.data[$i];
    var$5 = $i ^ (-1);
    if (var$5 < var$3) {
        if (var$5 <= 0)
            return 0;
        return $this.$iWallOffsets.data[var$5 - 1 | 0];
    }
    var$6 = $this.$iTailZone;
    if (var$6 === null)
        return $this.$iWallOffsets.data[var$5 - 1 | 0];
    var$5 = var$6.$iStandardOffset2;
    var$7 = var$6.$iStartRecurrence;
    var$8 = var$6.$iEndRecurrence;
    a: {
        b: {
            try {
                var$9 = otcit_DateTimeZoneBuilder$Recurrence_next(var$7, $instant, var$5, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis(var$8), var$6.$calendar);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_IllegalArgumentException) {
                    break b;
                } else if ($$je instanceof jl_ArithmeticException) {
                    break b;
                } else {
                    throw $$e;
                }
            }
            break a;
        }
        var$9 = $instant;
    }
    c: {
        d: {
            try {
                var$10 = otcit_DateTimeZoneBuilder$Recurrence_next(var$8, $instant, var$5, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis(var$7), var$6.$calendar);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_IllegalArgumentException) {
                    break d;
                } else if ($$je instanceof jl_ArithmeticException) {
                    break d;
                } else {
                    throw $$e;
                }
            }
            break c;
        }
        var$10 = $instant;
    }
    if (Long_gt(var$9, var$10))
        var$8 = var$7;
    return var$5 + var$8.$iSaveMillis | 0;
},
otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset = ($this, $instant) => {
    let $transitions, var$3, $i, var$5, var$6;
    $transitions = $this.$iTransitions;
    var$3 = $transitions.data.length;
    $i = ju_Arrays_binarySearch($transitions, 0, var$3, $instant);
    if ($i >= 0)
        return $this.$iStandardOffsets.data[$i];
    var$5 = $i ^ (-1);
    if (var$5 < var$3) {
        if (var$5 <= 0)
            return 0;
        return $this.$iStandardOffsets.data[var$5 - 1 | 0];
    }
    var$6 = $this.$iTailZone;
    if (var$6 !== null)
        return var$6.$iStandardOffset2;
    return $this.$iStandardOffsets.data[var$5 - 1 | 0];
},
otcit_DateTimeZoneBuilder$PrecalculatedZone_nextTransition = ($this, $instant) => {
    let $transitions, var$3, var$4, $i, var$6, var$7, $end;
    $transitions = $this.$iTransitions;
    var$3 = $transitions.data;
    var$4 = var$3.length;
    $i = ju_Arrays_binarySearch($transitions, 0, var$4, $instant);
    var$6 = $i < 0 ? $i ^ (-1) : $i + 1 | 0;
    if (var$6 < var$4)
        return var$3[var$6];
    var$7 = $this.$iTailZone;
    if (var$7 === null)
        return $instant;
    $end = var$3[var$4 - 1 | 0];
    if (Long_ge($instant, $end))
        $end = $instant;
    return otcit_DateTimeZoneBuilder$DSTZone_nextTransition(var$7, $end);
},
otcit_DateTimeZoneBuilder$PrecalculatedZone_previousTransition = ($this, $instant) => {
    let $transitions, var$3, var$4, $i, var$6, $prev, var$8;
    $transitions = $this.$iTransitions;
    var$3 = $transitions.data;
    var$4 = var$3.length;
    $i = ju_Arrays_binarySearch($transitions, 0, var$4, $instant);
    if ($i >= 0) {
        if (Long_le($instant, Long_create(0, 2147483648)))
            return $instant;
        return Long_sub($instant, Long_fromInt(1));
    }
    var$6 = $i ^ (-1);
    if (var$6 < var$4) {
        if (var$6 > 0) {
            $prev = var$3[var$6 - 1 | 0];
            if (Long_gt($prev, Long_create(0, 2147483648)))
                return Long_sub($prev, Long_fromInt(1));
        }
        return $instant;
    }
    var$8 = $this.$iTailZone;
    if (var$8 !== null) {
        $prev = otcit_DateTimeZoneBuilder$DSTZone_previousTransition(var$8, $instant);
        if (Long_lt($prev, $instant))
            return $prev;
    }
    $prev = var$3[var$6 - 1 | 0];
    if (Long_le($prev, Long_create(0, 2147483648)))
        return $instant;
    return Long_sub($prev, Long_fromInt(1));
},
otcit_DateTimeZoneBuilder$PrecalculatedZone_isCachable = $this => {
    let $transitions, var$2, $distances, $count, $i, $diff;
    if ($this.$iTailZone !== null)
        return 1;
    $transitions = $this.$iTransitions.data;
    var$2 = $transitions.length;
    if (var$2 <= 1)
        return 0;
    $distances = 0.0;
    $count = 0;
    $i = 1;
    while ($i < var$2) {
        $diff = Long_sub($transitions[$i], $transitions[$i - 1 | 0]);
        if (Long_lt($diff, Long_create(3028857856, 14))) {
            $distances = $distances + Long_toNumber($diff);
            $count = $count + 1 | 0;
        }
        $i = $i + 1 | 0;
    }
    if ($count > 0 && $distances / $count / 8.64E7 >= 25.0)
        return 1;
    return 0;
};
function otcit_DateTimeZoneBuilder$DSTZone() {
    let a = this; otcit_StorableDateTimeZone.call(a);
    a.$iStandardOffset2 = 0;
    a.$iStartRecurrence = null;
    a.$iEndRecurrence = null;
    a.$calendar = null;
}
let otcit_DateTimeZoneBuilder$DSTZone_getOffset = ($this, $instant) => {
    let var$2, var$3, var$4, var$5, var$6, $$je;
    var$2 = $this.$iStandardOffset2;
    var$3 = $this.$iStartRecurrence;
    var$4 = $this.$iEndRecurrence;
    a: {
        b: {
            try {
                var$5 = otcit_DateTimeZoneBuilder$Recurrence_next(var$3, $instant, var$2, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis(var$4), $this.$calendar);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_IllegalArgumentException) {
                    break b;
                } else if ($$je instanceof jl_ArithmeticException) {
                    break b;
                } else {
                    throw $$e;
                }
            }
            break a;
        }
        var$5 = $instant;
    }
    c: {
        d: {
            try {
                var$6 = otcit_DateTimeZoneBuilder$Recurrence_next(var$4, $instant, var$2, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis(var$3), $this.$calendar);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_IllegalArgumentException) {
                    break d;
                } else if ($$je instanceof jl_ArithmeticException) {
                    break d;
                } else {
                    throw $$e;
                }
            }
            break c;
        }
        var$6 = $instant;
    }
    if (Long_gt(var$5, var$6))
        var$4 = var$3;
    return var$2 + var$4.$iSaveMillis | 0;
},
otcit_DateTimeZoneBuilder$DSTZone_getStandardOffset = ($this, $instant) => {
    return $this.$iStandardOffset2;
},
otcit_DateTimeZoneBuilder$DSTZone_nextTransition = ($this, $end) => {
    let $standardOffset, $startRecurrence, $endRecurrence, $start, var$6, $end_0, $$je;
    $standardOffset = $this.$iStandardOffset2;
    $startRecurrence = $this.$iStartRecurrence;
    $endRecurrence = $this.$iEndRecurrence;
    a: {
        b: {
            try {
                c: {
                    try {
                        $start = otcit_DateTimeZoneBuilder$Recurrence_next($startRecurrence, $end, $standardOffset, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis($endRecurrence), $this.$calendar);
                        var$6 = Long_compare($end, Long_ZERO);
                        if (var$6 <= 0)
                            break c;
                        if (Long_ge($start, Long_ZERO))
                            break c;
                        $start = $end;
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_IllegalArgumentException) {
                            break b;
                        } else {
                            throw $$e;
                        }
                    }
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_ArithmeticException) {
                } else {
                    throw $$e;
                }
            }
        }
        $start = $end;
    }
    d: {
        e: {
            try {
                f: {
                    try {
                        $end_0 = otcit_DateTimeZoneBuilder$Recurrence_next($endRecurrence, $end, $standardOffset, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis($startRecurrence), $this.$calendar);
                        if (var$6 <= 0)
                            break f;
                        if (Long_ge($end_0, Long_ZERO))
                            break f;
                        $end_0 = $end;
                        break f;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_IllegalArgumentException) {
                            break e;
                        } else {
                            throw $$e;
                        }
                    }
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_ArithmeticException) {
                } else {
                    throw $$e;
                }
            }
        }
        $end_0 = $end;
    }
    if (Long_gt($start, $end_0))
        $start = $end_0;
    return $start;
},
otcit_DateTimeZoneBuilder$DSTZone_previousTransition = ($this, $instant) => {
    let $end, $standardOffset, $startRecurrence, $endRecurrence, $start, var$7, $end_0, $$je;
    $end = Long_add($instant, Long_fromInt(1));
    $standardOffset = $this.$iStandardOffset2;
    $startRecurrence = $this.$iStartRecurrence;
    $endRecurrence = $this.$iEndRecurrence;
    a: {
        b: {
            try {
                c: {
                    try {
                        $start = otcit_DateTimeZoneBuilder$Recurrence_previous($startRecurrence, $end, $standardOffset, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis($endRecurrence));
                        var$7 = Long_compare($end, Long_ZERO);
                        if (var$7 >= 0)
                            break c;
                        if (Long_le($start, Long_ZERO))
                            break c;
                        $start = $end;
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_IllegalArgumentException) {
                            break b;
                        } else {
                            throw $$e;
                        }
                    }
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_ArithmeticException) {
                } else {
                    throw $$e;
                }
            }
        }
        $start = $end;
    }
    d: {
        e: {
            try {
                f: {
                    try {
                        $end_0 = otcit_DateTimeZoneBuilder$Recurrence_previous($endRecurrence, $end, $standardOffset, otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis($startRecurrence));
                        if (var$7 >= 0)
                            break f;
                        if (Long_le($end_0, Long_ZERO))
                            break f;
                        $end_0 = $end;
                        break f;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_IllegalArgumentException) {
                            break e;
                        } else {
                            throw $$e;
                        }
                    }
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_ArithmeticException) {
                } else {
                    throw $$e;
                }
            }
        }
        $end_0 = $end;
    }
    if (Long_gt($start, $end_0))
        $end_0 = $start;
    return Long_sub($end_0, Long_fromInt(1));
};
function otcit_DateTimeZoneBuilder$RuleBasedZone() {
    let a = this; otcit_StorableDateTimeZone.call(a);
    a.$builder = null;
    a.$zone0 = null;
}
let otcit_DateTimeZoneBuilder$RuleBasedZone_getOffset = ($this, $instant) => {
    if ($this.$zone0 === null)
        $this.$zone0 = otcit_DateTimeZoneBuilder_toDateTimeZone($this.$builder, $this.$iID, 1);
    return $this.$zone0.$getOffset0($instant);
},
otcit_DateTimeZoneBuilder$RuleBasedZone_getStandardOffset = ($this, $instant) => {
    if ($this.$zone0 === null)
        $this.$zone0 = otcit_DateTimeZoneBuilder_toDateTimeZone($this.$builder, $this.$iID, 1);
    return $this.$zone0.$getStandardOffset($instant);
},
otcit_DateTimeZoneBuilder$RuleBasedZone_previousTransition = ($this, $instant) => {
    if ($this.$zone0 === null)
        $this.$zone0 = otcit_DateTimeZoneBuilder_toDateTimeZone($this.$builder, $this.$iID, 1);
    return $this.$zone0.$previousTransition($instant);
},
otcit_DateTimeZoneBuilder$RuleBasedZone_readZone = ($id, $flow) => {
    let $builder, var$4, $ruleSetCount, $currentYear, $i, $rs, var$9, var$10, $ruleCount, $j, $toYear, $fromYear, $year, $recurrence, var$17, var$18;
    $builder = new otcit_DateTimeZoneBuilder;
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $builder.$iRuleSets = var$4;
    $ruleSetCount = otci_Base46_decodeUnsigned($flow);
    $currentYear = (-2147483648);
    $i = 0;
    while ($i < $ruleSetCount) {
        $rs = new otcit_DateTimeZoneBuilder$RuleSet;
        var$4 = new ju_ArrayList;
        var$4.$array = $rt_createArray(jl_Object, 10);
        $rs.$iRules = var$4;
        $rs.$iUpperYear = 2147483647;
        var$9 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
        var$10 = Long_div(var$9, Long_fromInt(2));
        if (Long_ne(Long_rem(var$9, Long_fromInt(2)), Long_ZERO))
            var$10 = Long_neg(var$10);
        $rs.$iInitialSaveMillis = Long_lo((Long_ne(Long_and(var$10, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$10, 1) : Long_mul(Long_shr(var$10, 1), Long_fromInt(1800000))));
        var$9 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
        var$10 = Long_div(var$9, Long_fromInt(2));
        if (Long_ne(Long_rem(var$9, Long_fromInt(2)), Long_ZERO))
            var$10 = Long_neg(var$10);
        $rs.$iStandardOffset1 = Long_lo((Long_ne(Long_and(var$10, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$10, 1) : Long_mul(Long_shr(var$10, 1), Long_fromInt(1800000))));
        $ruleCount = otci_Base46_decodeUnsigned($flow);
        if ($ruleCount & 1)
            $rs.$iInitialNameKey = $rt_s(1647);
        $ruleCount = $ruleCount >>> 1 | 0;
        $j = 0;
        while ($j < $ruleCount) {
            $toYear = otci_Base46_decodeUnsigned($flow);
            $fromYear = $toYear / 2 | 0;
            if ($toYear % 2 | 0)
                $fromYear =  -$fromYear | 0;
            if ($currentYear != (-2147483648))
                $fromYear = $fromYear + $currentYear | 0;
            $toYear = otci_Base46_decodeUnsigned($flow);
            if (!$toYear) {
                $year = 2147483647;
                $currentYear = $fromYear;
            } else {
                $year = $toYear + (-1) | 0;
                $currentYear = !($year & 1) ? $year >>> 1 | 0 : ( -($year >>> 1 | 0) | 0) - 1 | 0;
                if ($fromYear != (-2147483648))
                    $currentYear = $currentYear + $fromYear | 0;
                $year = $currentYear;
            }
            var$4 = otcit_DateTimeZoneBuilder$OfYear_read($flow);
            var$9 = Long_fromInt(otci_Base46_decodeUnsigned($flow));
            var$10 = Long_div(var$9, Long_fromInt(2));
            if (Long_ne(Long_rem(var$9, Long_fromInt(2)), Long_ZERO))
                var$10 = Long_neg(var$10);
            $toYear = Long_lo((Long_ne(Long_and(var$10, Long_fromInt(1)), Long_ZERO) ? Long_shr(var$10, 1) : Long_mul(Long_shr(var$10, 1), Long_fromInt(1800000))));
            $recurrence = new otcit_DateTimeZoneBuilder$Recurrence;
            $recurrence.$iOfYear = var$4;
            $recurrence.$iSaveMillis = $toYear;
            var$4 = $rs.$iRules;
            var$17 = new otcit_DateTimeZoneBuilder$Rule;
            var$17.$iRecurrence = $recurrence;
            var$17.$iFromYear = $fromYear;
            var$17.$iToYear = $year;
            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
            var$18 = var$4.$array.data;
            $fromYear = var$4.$size0;
            var$4.$size0 = $fromYear + 1 | 0;
            var$18[$fromYear] = var$17;
            var$4.$modCount = var$4.$modCount + 1 | 0;
            $j = $j + 1 | 0;
        }
        $year = otci_Base46_decodeUnsigned($flow);
        if (!$year)
            $rs.$iUpperYear = 2147483647;
        else {
            $year = $year + (-1) | 0;
            $year = !($year & 1) ? $year >>> 1 | 0 : ( -($year >>> 1 | 0) | 0) - 1 | 0;
            $currentYear = $currentYear != (-2147483648) ? $year + $currentYear | 0 : $year;
            $rs.$iUpperYear = $currentYear;
            $rs.$iUpperOfYear = otcit_DateTimeZoneBuilder$OfYear_read($flow);
        }
        var$4 = $builder.$iRuleSets;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$18 = var$4.$array.data;
        $fromYear = var$4.$size0;
        var$4.$size0 = $fromYear + 1 | 0;
        var$18[$fromYear] = $rs;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $i = $i + 1 | 0;
    }
    $flow = new otcit_DateTimeZoneBuilder$RuleBasedZone;
    if ($id !== null) {
        $flow.$iID = $id;
        $flow.$builder = $builder;
        return $flow;
    }
    $flow = new jl_IllegalArgumentException;
    $flow.$suppressionEnabled = 1;
    $flow.$writableStackTrace = 1;
    $flow.$message = $rt_s(1644);
    $rt_throw($flow);
};
function otcit_CachedDateTimeZone() {
    let a = this; otcit_StorableDateTimeZone.call(a);
    a.$iZone = null;
    a.$iInfoCache = null;
}
let otcit_CachedDateTimeZone_cInfoCacheMask = 0,
otcit_CachedDateTimeZone_getOffset = ($this, $instant) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$2 = Long_hi($instant);
    var$3 = $this.$iInfoCache.data;
    var$4 = var$2 & otcit_CachedDateTimeZone_cInfoCacheMask;
    var$5 = var$3[var$4];
    if (!(var$5 !== null && Long_hi(var$5.$iPeriodStart) == var$2)) {
        var$6 = Long_and($instant, Long_create(0, 4294967295));
        var$5 = new otcit_CachedDateTimeZone$Info;
        var$7 = $this.$iZone;
        var$5.$iOffset = (-2147483648);
        var$5.$iStandardOffset = (-2147483648);
        var$5.$iPeriodStart = var$6;
        var$5.$iZoneRef = var$7;
        var$8 = Long_or(var$6, Long_create(4294967295, 0));
        var$7 = var$5;
        a: {
            while (true) {
                var$9 = otcit_DateTimeZoneBuilder$PrecalculatedZone_nextTransition($this.$iZone, var$6);
                if (Long_eq(var$9, var$6))
                    break a;
                if (Long_gt(var$9, var$8))
                    break;
                var$10 = new otcit_CachedDateTimeZone$Info;
                var$11 = $this.$iZone;
                var$10.$iOffset = (-2147483648);
                var$10.$iStandardOffset = (-2147483648);
                var$10.$iPeriodStart = var$9;
                var$10.$iZoneRef = var$11;
                var$7.$iNextInfo = var$10;
                var$6 = var$9;
                var$7 = var$10;
            }
        }
        var$3[var$4] = var$5;
    }
    b: {
        var$7 = var$5.$iNextInfo;
        if (var$7 !== null) {
            var$6 = var$7.$iPeriodStart;
            if (Long_ge($instant, var$6)) {
                c: {
                    var$5 = var$7.$iNextInfo;
                    if (var$5 !== null) {
                        var$8 = var$5.$iPeriodStart;
                        if (Long_ge($instant, var$8)) {
                            d: {
                                var$7 = var$5.$iNextInfo;
                                if (var$7 !== null) {
                                    var$6 = var$7.$iPeriodStart;
                                    if (Long_ge($instant, var$6)) {
                                        e: {
                                            var$5 = var$7.$iNextInfo;
                                            if (var$5 !== null) {
                                                var$8 = var$5.$iPeriodStart;
                                                if (Long_ge($instant, var$8)) {
                                                    f: {
                                                        var$7 = var$5.$iNextInfo;
                                                        if (var$7 !== null) {
                                                            var$6 = var$7.$iPeriodStart;
                                                            if (Long_ge($instant, var$6)) {
                                                                g: {
                                                                    var$5 = var$7.$iNextInfo;
                                                                    if (var$5 !== null) {
                                                                        var$8 = var$5.$iPeriodStart;
                                                                        if (Long_ge($instant, var$8)) {
                                                                            h: {
                                                                                var$7 = var$5.$iNextInfo;
                                                                                if (var$7 !== null) {
                                                                                    var$6 = var$7.$iPeriodStart;
                                                                                    if (Long_ge($instant, var$6)) {
                                                                                        var$5 = var$7.$iNextInfo;
                                                                                        if (var$5 !== null && Long_ge($instant, var$5.$iPeriodStart))
                                                                                            var$4 = otcit_CachedDateTimeZone$Info_getOffset(var$5, $instant);
                                                                                        else {
                                                                                            if (var$7.$iOffset == (-2147483648))
                                                                                                var$7.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$7.$iZoneRef, var$6);
                                                                                            var$4 = var$7.$iOffset;
                                                                                        }
                                                                                        break h;
                                                                                    }
                                                                                }
                                                                                if (var$5.$iOffset == (-2147483648))
                                                                                    var$5.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$5.$iZoneRef, var$8);
                                                                                var$4 = var$5.$iOffset;
                                                                            }
                                                                            break g;
                                                                        }
                                                                    }
                                                                    if (var$7.$iOffset == (-2147483648))
                                                                        var$7.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$7.$iZoneRef, var$6);
                                                                    var$4 = var$7.$iOffset;
                                                                }
                                                                break f;
                                                            }
                                                        }
                                                        if (var$5.$iOffset == (-2147483648))
                                                            var$5.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$5.$iZoneRef, var$8);
                                                        var$4 = var$5.$iOffset;
                                                    }
                                                    break e;
                                                }
                                            }
                                            if (var$7.$iOffset == (-2147483648))
                                                var$7.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$7.$iZoneRef, var$6);
                                            var$4 = var$7.$iOffset;
                                        }
                                        break d;
                                    }
                                }
                                if (var$5.$iOffset == (-2147483648))
                                    var$5.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$5.$iZoneRef, var$8);
                                var$4 = var$5.$iOffset;
                            }
                            break c;
                        }
                    }
                    if (var$7.$iOffset == (-2147483648))
                        var$7.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$7.$iZoneRef, var$6);
                    var$4 = var$7.$iOffset;
                }
                break b;
            }
        }
        if (var$5.$iOffset == (-2147483648))
            var$5.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$5.$iZoneRef, var$5.$iPeriodStart);
        var$4 = var$5.$iOffset;
    }
    return var$4;
},
otcit_CachedDateTimeZone_getStandardOffset = ($this, $instant) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$2 = Long_hi($instant);
    var$3 = $this.$iInfoCache.data;
    var$4 = var$2 & otcit_CachedDateTimeZone_cInfoCacheMask;
    var$5 = var$3[var$4];
    if (!(var$5 !== null && Long_hi(var$5.$iPeriodStart) == var$2)) {
        var$6 = Long_and($instant, Long_create(0, 4294967295));
        var$5 = new otcit_CachedDateTimeZone$Info;
        var$7 = $this.$iZone;
        var$5.$iOffset = (-2147483648);
        var$5.$iStandardOffset = (-2147483648);
        var$5.$iPeriodStart = var$6;
        var$5.$iZoneRef = var$7;
        var$8 = Long_or(var$6, Long_create(4294967295, 0));
        var$7 = var$5;
        a: {
            while (true) {
                var$9 = otcit_DateTimeZoneBuilder$PrecalculatedZone_nextTransition($this.$iZone, var$6);
                if (Long_eq(var$9, var$6))
                    break a;
                if (Long_gt(var$9, var$8))
                    break;
                var$10 = new otcit_CachedDateTimeZone$Info;
                var$11 = $this.$iZone;
                var$10.$iOffset = (-2147483648);
                var$10.$iStandardOffset = (-2147483648);
                var$10.$iPeriodStart = var$9;
                var$10.$iZoneRef = var$11;
                var$7.$iNextInfo = var$10;
                var$6 = var$9;
                var$7 = var$10;
            }
        }
        var$3[var$4] = var$5;
    }
    b: {
        var$7 = var$5.$iNextInfo;
        if (var$7 !== null) {
            var$6 = var$7.$iPeriodStart;
            if (Long_ge($instant, var$6)) {
                c: {
                    var$5 = var$7.$iNextInfo;
                    if (var$5 !== null) {
                        var$8 = var$5.$iPeriodStart;
                        if (Long_ge($instant, var$8)) {
                            d: {
                                var$7 = var$5.$iNextInfo;
                                if (var$7 !== null) {
                                    var$6 = var$7.$iPeriodStart;
                                    if (Long_ge($instant, var$6)) {
                                        e: {
                                            var$5 = var$7.$iNextInfo;
                                            if (var$5 !== null) {
                                                var$8 = var$5.$iPeriodStart;
                                                if (Long_ge($instant, var$8)) {
                                                    f: {
                                                        var$7 = var$5.$iNextInfo;
                                                        if (var$7 !== null) {
                                                            var$6 = var$7.$iPeriodStart;
                                                            if (Long_ge($instant, var$6)) {
                                                                g: {
                                                                    var$5 = var$7.$iNextInfo;
                                                                    if (var$5 !== null) {
                                                                        var$8 = var$5.$iPeriodStart;
                                                                        if (Long_ge($instant, var$8)) {
                                                                            h: {
                                                                                var$7 = var$5.$iNextInfo;
                                                                                if (var$7 !== null) {
                                                                                    var$6 = var$7.$iPeriodStart;
                                                                                    if (Long_ge($instant, var$6)) {
                                                                                        var$5 = var$7.$iNextInfo;
                                                                                        if (var$5 !== null && Long_ge($instant, var$5.$iPeriodStart))
                                                                                            var$4 = otcit_CachedDateTimeZone$Info_getStandardOffset(var$5, $instant);
                                                                                        else {
                                                                                            if (var$7.$iStandardOffset == (-2147483648))
                                                                                                var$7.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$7.$iZoneRef, var$6);
                                                                                            var$4 = var$7.$iStandardOffset;
                                                                                        }
                                                                                        break h;
                                                                                    }
                                                                                }
                                                                                if (var$5.$iStandardOffset == (-2147483648))
                                                                                    var$5.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$5.$iZoneRef, var$8);
                                                                                var$4 = var$5.$iStandardOffset;
                                                                            }
                                                                            break g;
                                                                        }
                                                                    }
                                                                    if (var$7.$iStandardOffset == (-2147483648))
                                                                        var$7.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$7.$iZoneRef, var$6);
                                                                    var$4 = var$7.$iStandardOffset;
                                                                }
                                                                break f;
                                                            }
                                                        }
                                                        if (var$5.$iStandardOffset == (-2147483648))
                                                            var$5.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$5.$iZoneRef, var$8);
                                                        var$4 = var$5.$iStandardOffset;
                                                    }
                                                    break e;
                                                }
                                            }
                                            if (var$7.$iStandardOffset == (-2147483648))
                                                var$7.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$7.$iZoneRef, var$6);
                                            var$4 = var$7.$iStandardOffset;
                                        }
                                        break d;
                                    }
                                }
                                if (var$5.$iStandardOffset == (-2147483648))
                                    var$5.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$5.$iZoneRef, var$8);
                                var$4 = var$5.$iStandardOffset;
                            }
                            break c;
                        }
                    }
                    if (var$7.$iStandardOffset == (-2147483648))
                        var$7.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$7.$iZoneRef, var$6);
                    var$4 = var$7.$iStandardOffset;
                }
                break b;
            }
        }
        if (var$5.$iStandardOffset == (-2147483648))
            var$5.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$5.$iZoneRef, var$5.$iPeriodStart);
        var$4 = var$5.$iStandardOffset;
    }
    return var$4;
},
otcit_CachedDateTimeZone_previousTransition = ($this, $instant) => {
    return otcit_DateTimeZoneBuilder$PrecalculatedZone_previousTransition($this.$iZone, $instant);
},
otcit_CachedDateTimeZone__clinit_ = () => {
    otcit_CachedDateTimeZone_cInfoCacheMask = 511;
};
function otcit_DateTimeZoneBuilder$Recurrence() {
    let a = this; jl_Object.call(a);
    a.$iOfYear = null;
    a.$iSaveMillis = 0;
}
let otcit_DateTimeZoneBuilder$Recurrence_next = ($this, $instant, $standardOffset, $saveMillis, $calendar) => {
    return otcit_DateTimeZoneBuilder$OfYear_next($this.$iOfYear, $instant, $standardOffset, $saveMillis, $calendar);
},
otcit_DateTimeZoneBuilder$Recurrence_previous = ($this, $instant, $standardOffset, $saveMillis) => {
    return otcit_DateTimeZoneBuilder$OfYear_previous($this.$iOfYear, $instant, $standardOffset, $saveMillis);
},
otcit_DateTimeZoneBuilder$Recurrence_getSaveMillis = $this => {
    return $this.$iSaveMillis;
};
function otcit_DateTimeZoneBuilder() {
    jl_Object.call(this);
    this.$iRuleSets = null;
}
let otcit_DateTimeZoneBuilder_gmtCache = null,
otcit_DateTimeZoneBuilder__init_ = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$iRuleSets = var$1;
},
otcit_DateTimeZoneBuilder__init_0 = () => {
    let var_0 = new otcit_DateTimeZoneBuilder();
    otcit_DateTimeZoneBuilder__init_(var_0);
    return var_0;
},
otcit_DateTimeZoneBuilder_toDateTimeZone = ($this, $id, $outputID) => {
    let $transitions, $tailZone, $millis, $ruleSetCount, $calendar, $zone, $i, var$10, var$11, $tr, $next, $rs, var$15, var$16, var$17, var$18, var$19, var$20;
    if ($id === null) {
        $id = new jl_IllegalArgumentException;
        $id.$suppressionEnabled = 1;
        $id.$writableStackTrace = 1;
        $rt_throw($id);
    }
    $transitions = new ju_ArrayList;
    $transitions.$array = $rt_createArray(jl_Object, 10);
    $tailZone = null;
    $millis = Long_create(0, 2147483648);
    $ruleSetCount = $this.$iRuleSets.$size0;
    $calendar = new ju_GregorianCalendar;
    if (otcit_DateTimeZoneBuilder_gmtCache === null)
        otcit_DateTimeZoneBuilder_gmtCache = ju_TimeZone_getTimeZone($rt_s(1645));
    $zone = otcit_DateTimeZoneBuilder_gmtCache;
    ju_Locale_$callClinit();
    ju_GregorianCalendar__init_($calendar, $zone, ju_Locale_defaultLocale);
    $i = 0;
    var$10 = $ruleSetCount - 1 | 0;
    a: {
        b: while (true) {
            if ($i >= $ruleSetCount) {
                var$11 = $transitions.$size0;
                if (!var$11) {
                    if ($tailZone !== null)
                        return $tailZone;
                    $transitions = new otcit_FixedDateTimeZone;
                    $transitions.$iID = $id;
                    $transitions.$iWallOffset0 = 0;
                    $transitions.$iStandardOffset3 = 0;
                    return $transitions;
                }
                if (var$11 == 1 && $tailZone === null) {
                    if (0 >= var$11) {
                        $id = new jl_IndexOutOfBoundsException;
                        $id.$suppressionEnabled = 1;
                        $id.$writableStackTrace = 1;
                        $rt_throw($id);
                    }
                    $tr = $transitions.$array.data[0];
                    var$11 = $tr.$iWallOffset;
                    $outputID = $tr.$iStandardOffset0;
                    $transitions = new otcit_FixedDateTimeZone;
                    $transitions.$iID = $id;
                    $transitions.$iWallOffset0 = var$11;
                    $transitions.$iStandardOffset3 = $outputID;
                    return $transitions;
                }
                $zone = otcit_DateTimeZoneBuilder$PrecalculatedZone_create($id, $outputID, $transitions, $tailZone);
                if (!otcit_DateTimeZoneBuilder$PrecalculatedZone_isCachable($zone))
                    return $zone;
                if ($zone instanceof otcit_CachedDateTimeZone)
                    $id = $zone;
                else {
                    $id = new otcit_CachedDateTimeZone;
                    $transitions = $zone.$iID;
                    if ($transitions === null) {
                        $transitions = new jl_IllegalArgumentException;
                        $transitions.$suppressionEnabled = 1;
                        $transitions.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($transitions);
                        $transitions.$message = $rt_s(1644);
                        $rt_throw($transitions);
                    }
                    $id.$iID = $transitions;
                    $id.$iInfoCache = $rt_createArray(otcit_CachedDateTimeZone$Info, otcit_CachedDateTimeZone_cInfoCacheMask + 1 | 0);
                    $id.$iZone = $zone;
                }
                return $id;
            }
            $next = $this.$iRuleSets;
            if ($i < 0)
                break a;
            if ($i >= $next.$size0)
                break a;
            $rs = $next.$array.data[$i];
            $next = otcit_DateTimeZoneBuilder$RuleSet_firstTransition($rs, $millis, $calendar);
            if ($next !== null) {
                otcit_DateTimeZoneBuilder_addTransition($this, $transitions, $next);
                $millis = $next.$iMillis;
                var$11 = $next.$iWallOffset - $next.$iStandardOffset0 | 0;
                $next = new otcit_DateTimeZoneBuilder$RuleSet;
                $next.$iStandardOffset1 = $rs.$iStandardOffset1;
                $tr = new ju_ArrayList;
                var$15 = $rs.$iRules;
                var$16 = var$15.$size0;
                if (var$16 < 0) {
                    $id = new jl_IllegalArgumentException;
                    $id.$suppressionEnabled = 1;
                    $id.$writableStackTrace = 1;
                    $rt_throw($id);
                }
                $tr.$array = $rt_createArray(jl_Object, var$16);
                var$16 = var$15.$modCount;
                var$15.$size();
                var$17 = 0;
                var$18 = 0;
                while (true) {
                    var$19 = $tr.$array.data;
                    var$20 = var$19.length;
                    if (var$17 >= var$20)
                        break;
                    if (var$16 < var$15.$modCount)
                        break b;
                    var$20 = var$18 + 1 | 0;
                    var$19[var$17] = var$15.$get(var$18);
                    var$17 = var$17 + 1 | 0;
                    var$18 = var$20;
                }
                $tr.$size0 = var$20;
                $next.$iRules = $tr;
                $next.$iInitialSaveMillis = $rs.$iInitialSaveMillis;
                $next.$iUpperYear = $rs.$iUpperYear;
                $next.$iUpperOfYear = $rs.$iUpperOfYear;
                c: {
                    while (true) {
                        $zone = otcit_DateTimeZoneBuilder$RuleSet_nextTransition($next, $millis, var$11, $calendar);
                        if ($zone === null)
                            break c;
                        if (otcit_DateTimeZoneBuilder_addTransition($this, $transitions, $zone) && $tailZone !== null)
                            break;
                        $millis = $zone.$iMillis;
                        var$11 = $zone.$iWallOffset - $zone.$iStandardOffset0 | 0;
                        if ($tailZone !== null)
                            continue;
                        if ($i != var$10)
                            continue;
                        $tailZone = otcit_DateTimeZoneBuilder$RuleSet_buildTailZone($next, $id);
                    }
                }
                var$20 = $next.$iUpperYear;
                $millis = var$20 == 2147483647 ? Long_create(4294967295, 2147483647) : otcit_DateTimeZoneBuilder$OfYear_setInstant($next.$iUpperOfYear, var$20, $next.$iStandardOffset1, var$11);
            }
            $i = $i + 1 | 0;
        }
        $id = new ju_ConcurrentModificationException;
        $id.$suppressionEnabled = 1;
        $id.$writableStackTrace = 1;
        $rt_throw($id);
    }
    $id = new jl_IndexOutOfBoundsException;
    $id.$suppressionEnabled = 1;
    $id.$writableStackTrace = 1;
    $rt_throw($id);
},
otcit_DateTimeZoneBuilder_addTransition = ($this, $transitions, $tr) => {
    let $size, var$4, var$5, $last, $offsetForLast, $offsetForNew, $lastLocal;
    $size = $transitions.$size0;
    if (!$size) {
        ju_ArrayList_ensureCapacity($transitions, $size + 1 | 0);
        var$4 = $transitions.$array.data;
        $size = $transitions.$size0;
        $transitions.$size0 = $size + 1 | 0;
        var$4[$size] = $tr;
        $transitions.$modCount = $transitions.$modCount + 1 | 0;
        return 1;
    }
    var$5 = $size - 1 | 0;
    if (var$5 >= 0 && var$5 < $size) {
        var$4 = $transitions.$array.data;
        $last = var$4[var$5];
        if ($last === null)
            $offsetForLast = 1;
        else
            a: {
                b: {
                    if (Long_gt($tr.$iMillis, $last.$iMillis)) {
                        if ($tr.$iWallOffset != $last.$iWallOffset)
                            break b;
                        if ($tr.$iStandardOffset0 != $last.$iStandardOffset0)
                            break b;
                    }
                    $offsetForLast = 0;
                    break a;
                }
                $offsetForLast = 1;
            }
        if (!$offsetForLast)
            return 0;
        $offsetForLast = 0;
        if ($size >= 2) {
            $offsetForLast = $size - 2 | 0;
            if ($offsetForLast >= 0 && $offsetForLast < $size)
                $offsetForLast = var$4[$offsetForLast].$iWallOffset;
            else {
                $transitions = new jl_IndexOutOfBoundsException;
                $transitions.$suppressionEnabled = 1;
                $transitions.$writableStackTrace = 1;
                $rt_throw($transitions);
            }
        }
        $offsetForNew = $last.$iWallOffset;
        $lastLocal = Long_add($last.$iMillis, Long_fromInt($offsetForLast));
        if (Long_eq(Long_add($tr.$iMillis, Long_fromInt($offsetForNew)), $lastLocal)) {
            ju_ArrayList_remove($transitions, var$5);
            return otcit_DateTimeZoneBuilder_addTransition($this, $transitions, $tr);
        }
        ju_ArrayList_ensureCapacity($transitions, $size + 1 | 0);
        var$4 = $transitions.$array.data;
        $size = $transitions.$size0;
        $transitions.$size0 = $size + 1 | 0;
        var$4[$size] = $tr;
        $transitions.$modCount = $transitions.$modCount + 1 | 0;
        return 1;
    }
    $transitions = new jl_IndexOutOfBoundsException;
    $transitions.$suppressionEnabled = 1;
    $transitions.$writableStackTrace = 1;
    $rt_throw($transitions);
};
function otcit_DateTimeZoneBuilder$RuleSet() {
    let a = this; jl_Object.call(a);
    a.$iStandardOffset1 = 0;
    a.$iRules = null;
    a.$iInitialNameKey = null;
    a.$iInitialSaveMillis = 0;
    a.$iUpperYear = 0;
    a.$iUpperOfYear = null;
}
let otcit_DateTimeZoneBuilder$RuleSet_YEAR_LIMIT = 0,
otcit_DateTimeZoneBuilder$RuleSet__init_ = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$iRules = var$1;
    $this.$iUpperYear = 2147483647;
},
otcit_DateTimeZoneBuilder$RuleSet__init_0 = () => {
    let var_0 = new otcit_DateTimeZoneBuilder$RuleSet();
    otcit_DateTimeZoneBuilder$RuleSet__init_(var_0);
    return var_0;
},
otcit_DateTimeZoneBuilder$RuleSet_firstTransition = ($this, $firstMillis, $calendar) => {
    let $saveMillis, var$4, $copy, $first, var$7, var$8, var$9, $millis, $rule;
    if ($this.$iInitialNameKey !== null) {
        $calendar = new otcit_DateTimeZoneBuilder$Transition;
        $saveMillis = $this.$iStandardOffset1;
        var$4 = $saveMillis + $this.$iInitialSaveMillis | 0;
        $calendar.$iMillis = $firstMillis;
        $calendar.$iWallOffset = var$4;
        $calendar.$iStandardOffset0 = $saveMillis;
        return $calendar;
    }
    $copy = new ju_ArrayList;
    $first = $this.$iRules;
    $saveMillis = $first.$size0;
    if ($saveMillis < 0) {
        $calendar = new jl_IllegalArgumentException;
        $calendar.$suppressionEnabled = 1;
        $calendar.$writableStackTrace = 1;
        $rt_throw($calendar);
    }
    $copy.$array = $rt_createArray(jl_Object, $saveMillis);
    var$7 = 0;
    var$8 = $first.$modCount;
    $first.$size();
    $saveMillis = 0;
    while (true) {
        var$9 = $copy.$array.data;
        var$4 = var$9.length;
        if ($saveMillis >= var$4) {
            $copy.$size0 = var$4;
            $millis = Long_create(0, 2147483648);
            $saveMillis = 0;
            $first = null;
            a: {
                while (true) {
                    $rule = otcit_DateTimeZoneBuilder$RuleSet_nextTransition($this, $millis, $saveMillis, $calendar);
                    if ($rule === null)
                        break;
                    $millis = $rule.$iMillis;
                    $saveMillis = Long_compare($millis, $firstMillis);
                    if (!$saveMillis) {
                        $first = new otcit_DateTimeZoneBuilder$Transition;
                        $first.$iMillis = $firstMillis;
                        $first.$iWallOffset = $rule.$iWallOffset;
                        $first.$iStandardOffset0 = $rule.$iStandardOffset0;
                        break a;
                    }
                    if ($saveMillis > 0) {
                        b: {
                            if ($first === null) {
                                $calendar = $this.$iRules;
                                var$4 = 0;
                                var$7 = $calendar.$modCount;
                                var$8 = $calendar.$size();
                                while (true) {
                                    if (!(var$4 >= var$8 ? 0 : 1))
                                        break b;
                                    if (var$7 < $calendar.$modCount)
                                        break;
                                    $saveMillis = var$4 + 1 | 0;
                                    var$4 = ($calendar.$get(var$4)).$iRecurrence.$iSaveMillis;
                                    if (!var$4) {
                                        $first = new otcit_DateTimeZoneBuilder$Transition;
                                        $saveMillis = $this.$iStandardOffset1;
                                        $first.$iMillis = $firstMillis;
                                        $first.$iWallOffset = $saveMillis + var$4 | 0;
                                        $first.$iStandardOffset0 = $saveMillis;
                                        break b;
                                    }
                                    var$4 = $saveMillis;
                                }
                                $calendar = new ju_ConcurrentModificationException;
                                $calendar.$suppressionEnabled = 1;
                                $calendar.$writableStackTrace = 1;
                                $rt_throw($calendar);
                            }
                        }
                        if ($first !== null)
                            break a;
                        $first = new otcit_DateTimeZoneBuilder$Transition;
                        $saveMillis = $this.$iStandardOffset1;
                        $first.$iMillis = $firstMillis;
                        $first.$iWallOffset = $saveMillis;
                        $first.$iStandardOffset0 = $saveMillis;
                        break a;
                    }
                    $first = new otcit_DateTimeZoneBuilder$Transition;
                    $first.$iMillis = $firstMillis;
                    $first.$iWallOffset = $rule.$iWallOffset;
                    $first.$iStandardOffset0 = $rule.$iStandardOffset0;
                    $saveMillis = $rule.$iWallOffset - $rule.$iStandardOffset0 | 0;
                }
            }
            $this.$iRules = $copy;
            return $first;
        }
        if (var$8 < $first.$modCount)
            break;
        var$4 = var$7 + 1 | 0;
        var$9[$saveMillis] = $first.$get(var$7);
        $saveMillis = $saveMillis + 1 | 0;
        var$7 = var$4;
    }
    $calendar = new ju_ConcurrentModificationException;
    $calendar.$suppressionEnabled = 1;
    $calendar.$writableStackTrace = 1;
    $rt_throw($calendar);
},
otcit_DateTimeZoneBuilder$RuleSet_nextTransition = ($this, $instant, $saveMillis, $calendar) => {
    let $nextRule, $nextMillis, $nextYear, $rule, $it, var$9, var$10, var$11, $next;
    $nextRule = null;
    $nextMillis = Long_create(4294967295, 2147483647);
    $nextYear = 2147483647;
    $rule = $this.$iRules;
    $it = new ju_AbstractList$1;
    $it.$this$00 = $rule;
    $it.$modCount0 = $rule.$modCount;
    $it.$size3 = $rule.$size();
    $it.$removeIndex = (-1);
    while (true) {
        var$9 = $it.$index;
        if (!(var$9 >= $it.$size3 ? 0 : 1)) {
            if ($nextRule === null)
                return null;
            if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, $nextMillis))) {
                $calendar.$time = $nextMillis;
                $calendar.$isTimeSet = 1;
                $calendar.$areFieldsSet = 0;
                ju_GregorianCalendar_computeFields($calendar);
                $calendar.$areFieldsSet = 1;
            }
            if (!$calendar.$isTimeSet) {
                ju_GregorianCalendar_computeTime($calendar);
                $calendar.$isTimeSet = 1;
            }
            if (!$calendar.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($calendar);
                $calendar.$areFieldsSet = 1;
            }
            if ($calendar.$fields.data[1] >= otcit_DateTimeZoneBuilder$RuleSet_YEAR_LIMIT)
                return null;
            var$10 = $this.$iUpperYear;
            if (var$10 < 2147483647 && Long_ge($nextMillis, otcit_DateTimeZoneBuilder$OfYear_setInstant($this.$iUpperOfYear, var$10, $this.$iStandardOffset1, $saveMillis)))
                return null;
            $calendar = new otcit_DateTimeZoneBuilder$Transition;
            $saveMillis = $this.$iStandardOffset1;
            $calendar.$iMillis = $nextMillis;
            $calendar.$iWallOffset = $saveMillis + $nextRule.$iRecurrence.$iSaveMillis | 0;
            $calendar.$iStandardOffset0 = $saveMillis;
            return $calendar;
        }
        var$11 = $it.$modCount0;
        $rule = $it.$this$00;
        if (var$11 < $rule.$modCount)
            break;
        $it.$removeIndex = var$9;
        $it.$index = var$9 + 1 | 0;
        $rule = $rule.$get(var$9);
        if ($rule.$iFromYear > $nextYear)
            continue;
        $next = otcit_DateTimeZoneBuilder$Rule_next($rule, $instant, $this.$iStandardOffset1, $saveMillis, $calendar);
        if (Long_le($next, $instant)) {
            ju_AbstractList$1_remove($it);
            continue;
        }
        if (Long_le($next, $nextMillis)) {
            if (!$calendar.$isTimeSet) {
                ju_GregorianCalendar_computeTime($calendar);
                $calendar.$isTimeSet = 1;
            }
            if (!$calendar.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($calendar);
                $calendar.$areFieldsSet = 1;
            }
            $nextYear = $calendar.$fields.data[1];
            $nextRule = $rule;
            $nextMillis = $next;
        }
    }
    $calendar = new ju_ConcurrentModificationException;
    $calendar.$suppressionEnabled = 1;
    $calendar.$writableStackTrace = 1;
    $rt_throw($calendar);
},
otcit_DateTimeZoneBuilder$RuleSet_buildTailZone = ($this, $id) => {
    let $startRule, var$3, var$4, $endRule, var$6, var$7, var$8;
    $startRule = $this.$iRules;
    var$3 = $startRule.$size0;
    if (var$3 == 2) {
        if (0 >= var$3) {
            $id = new jl_IndexOutOfBoundsException;
            $id.$suppressionEnabled = 1;
            $id.$writableStackTrace = 1;
            $rt_throw($id);
        }
        var$4 = $startRule.$array.data;
        $startRule = var$4[0];
        if (1 >= var$3) {
            $id = new jl_IndexOutOfBoundsException;
            $id.$suppressionEnabled = 1;
            $id.$writableStackTrace = 1;
            $rt_throw($id);
        }
        $endRule = var$4[1];
        if ($startRule.$iToYear == 2147483647 && $endRule.$iToYear == 2147483647) {
            var$6 = new otcit_DateTimeZoneBuilder$DSTZone;
            var$7 = $this.$iStandardOffset1;
            $startRule = $startRule.$iRecurrence;
            $endRule = $endRule.$iRecurrence;
            if ($id === null) {
                $startRule = new jl_IllegalArgumentException;
                $startRule.$suppressionEnabled = 1;
                $startRule.$writableStackTrace = 1;
                $startRule.$message = $rt_s(1644);
                $rt_throw($startRule);
            }
            var$6.$iID = $id;
            $id = new ju_GregorianCalendar;
            if (otcit_DateTimeZoneBuilder_gmtCache === null)
                otcit_DateTimeZoneBuilder_gmtCache = ju_TimeZone_getTimeZone($rt_s(1645));
            var$8 = otcit_DateTimeZoneBuilder_gmtCache;
            ju_Locale_$callClinit();
            ju_GregorianCalendar__init_($id, var$8, ju_Locale_defaultLocale);
            var$6.$calendar = $id;
            var$6.$iStandardOffset2 = var$7;
            var$6.$iStartRecurrence = $startRule;
            var$6.$iEndRecurrence = $endRule;
            return var$6;
        }
    }
    return null;
},
otcit_DateTimeZoneBuilder$RuleSet__clinit_ = () => {
    let $calendar, var$2, var$3, var$4, var$5, $$je;
    $calendar = new ju_GregorianCalendar;
    ju_Locale_$callClinit();
    var$2 = ju_Locale_defaultLocale;
    ju_TimeZone_$callClinit();
    if (ju_TimeZone_defaultTz === null) {
        var$3 = otcit_DateTimeZoneProvider_detectTimezone();
        if (var$3 === null)
            var$4 = null;
        else {
            var$4 = new ju_IANATimeZone;
            var$4.$id5 = var$3.$iID;
            var$4.$underlyingZone = var$3;
            var$5 = var$3.$getStandardOffset(jl_System_currentTimeMillis());
            var$4.$rawOffset = var$5;
            var$4.$diff =  -var$5 | 0;
        }
        ju_TimeZone_defaultTz = var$4;
        if (var$4 === null)
            ju_TimeZone_defaultTz = ju_TimeZone_GMT;
    }
    var$3 = ju_TimeZone_defaultTz;
    a: {
        try {
            var$4 = jl_Object_clone(var$3);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
            } else {
                throw $$e;
            }
        }
        var$4 = null;
    }
    var$4.$rawOffset = var$3.$rawOffset;
    var$4.$underlyingZone = var$3.$underlyingZone;
    ju_GregorianCalendar__init_($calendar, var$4, var$2);
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    if (!$calendar.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    otcit_DateTimeZoneBuilder$RuleSet_YEAR_LIMIT = $calendar.$fields.data[1] + 100 | 0;
};
function otcit_DateTimeZoneBuilder$Rule() {
    let a = this; jl_Object.call(a);
    a.$iRecurrence = null;
    a.$iFromYear = 0;
    a.$iToYear = 0;
}
let otcit_DateTimeZoneBuilder$Rule_next = ($this, $instant, $standardOffset, $saveMillis, $calendar) => {
    let $wallOffset, $year, var$7, var$8, $next;
    $wallOffset = $standardOffset + $saveMillis | 0;
    if (Long_eq($instant, Long_create(0, 2147483648)))
        $year = (-2147483648);
    else {
        var$7 = Long_add($instant, Long_fromInt($wallOffset));
        if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, var$7))) {
            $calendar.$time = var$7;
            $calendar.$isTimeSet = 1;
            $calendar.$areFieldsSet = 0;
            ju_GregorianCalendar_computeFields($calendar);
            $calendar.$areFieldsSet = 1;
        }
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        if (!$calendar.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($calendar);
            $calendar.$areFieldsSet = 1;
        }
        $year = $calendar.$fields.data[1];
    }
    if ($year > $this.$iToYear)
        return $instant;
    if ($year >= $this.$iFromYear)
        var$8 = $instant;
    else {
        if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, Long_ZERO))) {
            $calendar.$time = Long_ZERO;
            $calendar.$isTimeSet = 1;
            $calendar.$areFieldsSet = 0;
            ju_GregorianCalendar_computeFields($calendar);
            $calendar.$areFieldsSet = 1;
        }
        ju_Calendar_set($calendar, 1, $this.$iFromYear);
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        var$8 = Long_sub(Long_sub($calendar.$time, Long_fromInt($wallOffset)), Long_fromInt(1));
    }
    $next = otcit_DateTimeZoneBuilder$OfYear_next($this.$iRecurrence.$iOfYear, var$8, $standardOffset, $saveMillis, $calendar);
    if (Long_le($next, $instant))
        $instant = $next;
    else {
        var$8 = Long_add($next, Long_fromInt($wallOffset));
        if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, var$8))) {
            $calendar.$time = var$8;
            $calendar.$isTimeSet = 1;
            $calendar.$areFieldsSet = 0;
            ju_GregorianCalendar_computeFields($calendar);
            $calendar.$areFieldsSet = 1;
        }
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        if (!$calendar.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($calendar);
            $calendar.$areFieldsSet = 1;
        }
        if ($calendar.$fields.data[1] <= $this.$iToYear)
            $instant = $next;
    }
    return $instant;
};
function otcit_DateTimeZoneBuilder$OfYear() {
    let a = this; jl_Object.call(a);
    a.$iMode = 0;
    a.$iMonthOfYear = 0;
    a.$iDayOfMonth = 0;
    a.$iDayOfWeek = 0;
    a.$iAdvance = 0;
    a.$iMillisOfDay = 0;
}
let otcit_DateTimeZoneBuilder$OfYear__init_ = ($this, $mode, $monthOfYear, $dayOfMonth, $dayOfWeek, $advanceDayOfWeek, $millisOfDay) => {
    let var$7, var$8, var$9, var$10, var$11;
    if ($mode != 117 && $mode != 119 && $mode != 115) {
        var$7 = new jl_IllegalArgumentException;
        var$8 = new jl_StringBuilder;
        var$8.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1648));
        $monthOfYear = var$8.$length0;
        jl_AbstractStringBuilder_insertSpace(var$8, $monthOfYear, $monthOfYear + 1 | 0);
        var$9 = var$8.$buffer;
        var$10 = var$9.data;
        var$10[$monthOfYear] = $mode;
        var$11 = new jl_String;
        $monthOfYear = var$8.$length0;
        $dayOfMonth = var$10.length;
        if ($monthOfYear >= 0 && $monthOfYear <= ($dayOfMonth - 0 | 0)) {
            var$11.$nativeString = $rt_charArrayToString(var$9.data, 0, $monthOfYear);
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            var$7.$message = var$11;
            $rt_throw(var$7);
        }
        var$7 = new jl_IndexOutOfBoundsException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        $rt_throw(var$7);
    }
    $this.$iMode = $mode;
    $this.$iMonthOfYear = $monthOfYear;
    $this.$iDayOfMonth = $dayOfMonth;
    $this.$iDayOfWeek = $dayOfWeek;
    $this.$iAdvance = $advanceDayOfWeek;
    $this.$iMillisOfDay = $millisOfDay;
},
otcit_DateTimeZoneBuilder$OfYear__init_0 = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new otcit_DateTimeZoneBuilder$OfYear();
    otcit_DateTimeZoneBuilder$OfYear__init_(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
},
otcit_DateTimeZoneBuilder$OfYear_read = $flow => {
    let $flags, $advance, $hasDayOfWeek, $mode, $monthOfYear, $modeBits, $dayOfMonth, $dayOfWeek, var$10;
    $flags = otci_Base46_decodeUnsigned($flow);
    $advance = !($flags & 1) ? 0 : 1;
    $hasDayOfWeek = !($flags & 2) ? 0 : 1;
    a: {
        switch (($flags >>> 2 | 0) & 3) {
            case 1:
                $mode = 119;
                break a;
            case 2:
                $mode = 115;
                break a;
            default:
        }
        $mode = 117;
    }
    $monthOfYear = otci_Base46_decodeUnsigned($flow);
    $modeBits = otci_Base46_decodeUnsigned($flow);
    $dayOfMonth = $modeBits / 2 | 0;
    if ($modeBits % 2 | 0)
        $dayOfMonth =  -$dayOfMonth | 0;
    if (!$hasDayOfWeek)
        $dayOfWeek = 0;
    else {
        $hasDayOfWeek = otci_Base46_decodeUnsigned($flow);
        $dayOfWeek = $hasDayOfWeek / 2 | 0;
        if ($hasDayOfWeek % 2 | 0)
            $dayOfWeek =  -$dayOfWeek | 0;
    }
    var$10 = otci_Base46_decodeUnsignedLong($flow);
    return otcit_DateTimeZoneBuilder$OfYear__init_0($mode, $monthOfYear, $dayOfMonth, $dayOfWeek, $advance, Long_lo((Long_ne(Long_and(var$10, Long_fromInt(1)), Long_ZERO) ? Long_shru(var$10, 1) : Long_mul(Long_shru(var$10, 1), Long_fromInt(1800000)))));
},
otcit_DateTimeZoneBuilder$OfYear_setInstant = ($this, $year, $offset, $saveMillis) => {
    let var$4, var$5, $calendar;
    var$4 = $this.$iMode;
    if (var$4 == 119)
        $offset = $offset + $saveMillis | 0;
    else if (var$4 != 115)
        $offset = 0;
    if (otcit_DateTimeZoneBuilder_gmtCache === null)
        otcit_DateTimeZoneBuilder_gmtCache = ju_TimeZone_getTimeZone($rt_s(1645));
    var$5 = otcit_DateTimeZoneBuilder_gmtCache;
    $calendar = new ju_GregorianCalendar;
    ju_Locale_$callClinit();
    ju_GregorianCalendar__init_($calendar, var$5, ju_Locale_defaultLocale);
    if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, Long_ZERO))) {
        $calendar.$time = Long_ZERO;
        $calendar.$isTimeSet = 1;
        $calendar.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    ju_Calendar_set($calendar, 1, $year);
    ju_Calendar_set($calendar, 2, $this.$iMonthOfYear - 1 | 0);
    ju_Calendar_set($calendar, 10, 0);
    ju_Calendar_set($calendar, 12, 0);
    ju_Calendar_set($calendar, 13, 0);
    ju_Calendar_set($calendar, 14, 0);
    ju_GregorianCalendar_add($calendar, 14, $this.$iMillisOfDay);
    $year = $this.$iDayOfMonth;
    if ($year >= 0)
        ju_Calendar_set($calendar, 5, $year);
    else {
        ju_Calendar_set($calendar, 5, 1);
        ju_GregorianCalendar_add($calendar, 2, 1);
        ju_GregorianCalendar_add($calendar, 5, $this.$iDayOfMonth);
    }
    if ($this.$iDayOfWeek)
        otcit_DateTimeZoneBuilder$OfYear_setDayOfWeek($this, $calendar);
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    return Long_sub($calendar.$time, Long_fromInt($offset));
},
otcit_DateTimeZoneBuilder$OfYear_next = ($this, $instant, $offset, $saveMillis, $calendar) => {
    let var$5, var$6, var$7;
    var$5 = $this.$iMode;
    if (var$5 == 119)
        $offset = $offset + $saveMillis | 0;
    else if (var$5 != 115)
        $offset = 0;
    var$6 = Long_fromInt($offset);
    var$7 = Long_add($instant, var$6);
    if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, var$7))) {
        $calendar.$time = var$7;
        $calendar.$isTimeSet = 1;
        $calendar.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    ju_Calendar_set($calendar, 2, $this.$iMonthOfYear - 1 | 0);
    ju_Calendar_set($calendar, 5, 1);
    ju_Calendar_set($calendar, 11, 0);
    ju_Calendar_set($calendar, 12, 0);
    ju_Calendar_set($calendar, 13, 0);
    ju_Calendar_set($calendar, 14, 0);
    ju_GregorianCalendar_add($calendar, 14, $this.$iMillisOfDay);
    otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthNext($this, $calendar);
    if (!$this.$iDayOfWeek) {
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        if (Long_le($calendar.$time, var$7)) {
            ju_GregorianCalendar_add($calendar, 1, 1);
            otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthNext($this, $calendar);
        }
    } else {
        otcit_DateTimeZoneBuilder$OfYear_setDayOfWeek($this, $calendar);
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        if (Long_le($calendar.$time, var$7)) {
            ju_GregorianCalendar_add($calendar, 1, 1);
            ju_Calendar_set($calendar, 2, $this.$iMonthOfYear - 1 | 0);
            otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthNext($this, $calendar);
            otcit_DateTimeZoneBuilder$OfYear_setDayOfWeek($this, $calendar);
        }
    }
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    return Long_sub($calendar.$time, var$6);
},
otcit_DateTimeZoneBuilder$OfYear_previous = ($this, $instant, $offset, $saveMillis) => {
    let var$4, var$5, $calendar, var$7;
    var$4 = $this.$iMode;
    if (var$4 == 119)
        $offset = $offset + $saveMillis | 0;
    else if (var$4 != 115)
        $offset = 0;
    var$5 = Long_fromInt($offset);
    $instant = Long_add($instant, var$5);
    $calendar = new ju_GregorianCalendar;
    if (otcit_DateTimeZoneBuilder_gmtCache === null)
        otcit_DateTimeZoneBuilder_gmtCache = ju_TimeZone_getTimeZone($rt_s(1645));
    var$7 = otcit_DateTimeZoneBuilder_gmtCache;
    ju_Locale_$callClinit();
    ju_GregorianCalendar__init_($calendar, var$7, ju_Locale_defaultLocale);
    if (!($calendar.$isTimeSet && $calendar.$areFieldsSet && Long_eq($calendar.$time, $instant))) {
        $calendar.$time = $instant;
        $calendar.$isTimeSet = 1;
        $calendar.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    ju_Calendar_set($calendar, 2, $this.$iMonthOfYear - 1 | 0);
    ju_Calendar_set($calendar, 5, 1);
    ju_Calendar_set($calendar, 11, 0);
    ju_Calendar_set($calendar, 12, 0);
    ju_Calendar_set($calendar, 13, 0);
    ju_Calendar_set($calendar, 14, 0);
    ju_GregorianCalendar_add($calendar, 14, $this.$iMillisOfDay);
    otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthPrevious($this, $calendar);
    if (!$this.$iDayOfWeek) {
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        if (Long_ge($calendar.$time, $instant)) {
            ju_GregorianCalendar_add($calendar, 1, (-1));
            otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthPrevious($this, $calendar);
        }
    } else {
        otcit_DateTimeZoneBuilder$OfYear_setDayOfWeek($this, $calendar);
        if (!$calendar.$isTimeSet) {
            ju_GregorianCalendar_computeTime($calendar);
            $calendar.$isTimeSet = 1;
        }
        if (Long_ge($calendar.$time, $instant)) {
            ju_GregorianCalendar_add($calendar, 1, (-1));
            ju_Calendar_set($calendar, 2, $this.$iMonthOfYear - 1 | 0);
            otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthPrevious($this, $calendar);
            otcit_DateTimeZoneBuilder$OfYear_setDayOfWeek($this, $calendar);
        }
    }
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    return Long_sub($calendar.$time, var$5);
},
otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthNext = ($this, $calendar) => {
    let var$2;
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    if (!$calendar.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    a: {
        if ($calendar.$fields.data[2] == 1) {
            if (!$calendar.$isTimeSet) {
                ju_GregorianCalendar_computeTime($calendar);
                $calendar.$isTimeSet = 1;
            }
            if (!$calendar.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($calendar);
                $calendar.$areFieldsSet = 1;
            }
            if ($calendar.$fields.data[5] == 29)
                while (true) {
                    if (!$calendar.$isTimeSet) {
                        ju_GregorianCalendar_computeTime($calendar);
                        $calendar.$isTimeSet = 1;
                    }
                    if (!$calendar.$areFieldsSet) {
                        ju_GregorianCalendar_computeFields($calendar);
                        $calendar.$areFieldsSet = 1;
                    }
                    if (ju_GregorianCalendar_isLeapYear($calendar, $calendar.$fields.data[1]))
                        break a;
                    ju_GregorianCalendar_add($calendar, 1, 1);
                }
        }
    }
    var$2 = $this.$iDayOfMonth;
    if (var$2 >= 0)
        ju_Calendar_set($calendar, 5, var$2);
    else {
        ju_Calendar_set($calendar, 5, 1);
        ju_GregorianCalendar_add($calendar, 2, 1);
        ju_GregorianCalendar_add($calendar, 5, $this.$iDayOfMonth);
    }
},
otcit_DateTimeZoneBuilder$OfYear_setDayOfMonthPrevious = ($this, $calendar) => {
    let var$2;
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    if (!$calendar.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    a: {
        if ($calendar.$fields.data[2] == 1) {
            if (!$calendar.$isTimeSet) {
                ju_GregorianCalendar_computeTime($calendar);
                $calendar.$isTimeSet = 1;
            }
            if (!$calendar.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($calendar);
                $calendar.$areFieldsSet = 1;
            }
            if ($calendar.$fields.data[5] == 29)
                while (true) {
                    if (!$calendar.$isTimeSet) {
                        ju_GregorianCalendar_computeTime($calendar);
                        $calendar.$isTimeSet = 1;
                    }
                    if (!$calendar.$areFieldsSet) {
                        ju_GregorianCalendar_computeFields($calendar);
                        $calendar.$areFieldsSet = 1;
                    }
                    if (ju_GregorianCalendar_isLeapYear($calendar, $calendar.$fields.data[1]))
                        break a;
                    ju_GregorianCalendar_add($calendar, 1, (-1));
                }
        }
    }
    var$2 = $this.$iDayOfMonth;
    if (var$2 >= 0)
        ju_Calendar_set($calendar, 5, var$2);
    else {
        ju_Calendar_set($calendar, 5, 1);
        ju_GregorianCalendar_add($calendar, 2, 1);
        ju_GregorianCalendar_add($calendar, 5, $this.$iDayOfMonth);
    }
},
otcit_DateTimeZoneBuilder$OfYear_setDayOfWeek = ($this, $calendar) => {
    let $dayOfWeek, $daysToAdd;
    if (!$calendar.$isTimeSet) {
        ju_GregorianCalendar_computeTime($calendar);
        $calendar.$isTimeSet = 1;
    }
    if (!$calendar.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($calendar);
        $calendar.$areFieldsSet = 1;
    }
    $dayOfWeek = $calendar.$fields.data[7];
    $daysToAdd = ($this.$iDayOfWeek == 7 ? 1 : $dayOfWeek + 1 | 0) - $dayOfWeek | 0;
    if ($daysToAdd) {
        if (!$this.$iAdvance) {
            if ($daysToAdd > 0)
                $daysToAdd = $daysToAdd + (-7) | 0;
        } else if ($daysToAdd < 0)
            $daysToAdd = $daysToAdd + 7 | 0;
        ju_GregorianCalendar_add($calendar, 5, $daysToAdd);
    }
};
function otcit_CachedDateTimeZone$Info() {
    let a = this; jl_Object.call(a);
    a.$iPeriodStart = Long_ZERO;
    a.$iZoneRef = null;
    a.$iNextInfo = null;
    a.$iOffset = 0;
    a.$iStandardOffset = 0;
}
let otcit_CachedDateTimeZone$Info_getOffset = ($this, $millis) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$iNextInfo;
    if (var$2 !== null) {
        var$3 = var$2.$iPeriodStart;
        if (Long_ge($millis, var$3)) {
            a: {
                var$4 = var$2.$iNextInfo;
                if (var$4 !== null) {
                    var$5 = var$4.$iPeriodStart;
                    if (Long_ge($millis, var$5)) {
                        b: {
                            var$2 = var$4.$iNextInfo;
                            if (var$2 !== null) {
                                var$3 = var$2.$iPeriodStart;
                                if (Long_ge($millis, var$3)) {
                                    c: {
                                        var$4 = var$2.$iNextInfo;
                                        if (var$4 !== null) {
                                            var$5 = var$4.$iPeriodStart;
                                            if (Long_ge($millis, var$5)) {
                                                d: {
                                                    var$2 = var$4.$iNextInfo;
                                                    if (var$2 !== null) {
                                                        var$3 = var$2.$iPeriodStart;
                                                        if (Long_ge($millis, var$3)) {
                                                            e: {
                                                                var$4 = var$2.$iNextInfo;
                                                                if (var$4 !== null) {
                                                                    var$5 = var$4.$iPeriodStart;
                                                                    if (Long_ge($millis, var$5)) {
                                                                        f: {
                                                                            var$2 = var$4.$iNextInfo;
                                                                            if (var$2 !== null) {
                                                                                var$3 = var$2.$iPeriodStart;
                                                                                if (Long_ge($millis, var$3)) {
                                                                                    g: {
                                                                                        var$4 = var$2.$iNextInfo;
                                                                                        if (var$4 !== null) {
                                                                                            var$5 = var$4.$iPeriodStart;
                                                                                            if (Long_ge($millis, var$5)) {
                                                                                                var$2 = var$4.$iNextInfo;
                                                                                                if (var$2 !== null && Long_ge($millis, var$2.$iPeriodStart))
                                                                                                    var$6 = otcit_CachedDateTimeZone$Info_getOffset(var$2, $millis);
                                                                                                else {
                                                                                                    if (var$4.$iOffset == (-2147483648))
                                                                                                        var$4.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$4.$iZoneRef, var$5);
                                                                                                    var$6 = var$4.$iOffset;
                                                                                                }
                                                                                                break g;
                                                                                            }
                                                                                        }
                                                                                        if (var$2.$iOffset == (-2147483648))
                                                                                            var$2.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$2.$iZoneRef, var$3);
                                                                                        var$6 = var$2.$iOffset;
                                                                                    }
                                                                                    break f;
                                                                                }
                                                                            }
                                                                            if (var$4.$iOffset == (-2147483648))
                                                                                var$4.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$4.$iZoneRef, var$5);
                                                                            var$6 = var$4.$iOffset;
                                                                        }
                                                                        break e;
                                                                    }
                                                                }
                                                                if (var$2.$iOffset == (-2147483648))
                                                                    var$2.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$2.$iZoneRef, var$3);
                                                                var$6 = var$2.$iOffset;
                                                            }
                                                            break d;
                                                        }
                                                    }
                                                    if (var$4.$iOffset == (-2147483648))
                                                        var$4.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$4.$iZoneRef, var$5);
                                                    var$6 = var$4.$iOffset;
                                                }
                                                break c;
                                            }
                                        }
                                        if (var$2.$iOffset == (-2147483648))
                                            var$2.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$2.$iZoneRef, var$3);
                                        var$6 = var$2.$iOffset;
                                    }
                                    break b;
                                }
                            }
                            if (var$4.$iOffset == (-2147483648))
                                var$4.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$4.$iZoneRef, var$5);
                            var$6 = var$4.$iOffset;
                        }
                        break a;
                    }
                }
                if (var$2.$iOffset == (-2147483648))
                    var$2.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset(var$2.$iZoneRef, var$3);
                var$6 = var$2.$iOffset;
            }
            return var$6;
        }
    }
    if ($this.$iOffset == (-2147483648))
        $this.$iOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getOffset($this.$iZoneRef, $this.$iPeriodStart);
    return $this.$iOffset;
},
otcit_CachedDateTimeZone$Info_getStandardOffset = ($this, $millis) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$iNextInfo;
    if (var$2 !== null) {
        var$3 = var$2.$iPeriodStart;
        if (Long_ge($millis, var$3)) {
            a: {
                var$4 = var$2.$iNextInfo;
                if (var$4 !== null) {
                    var$5 = var$4.$iPeriodStart;
                    if (Long_ge($millis, var$5)) {
                        b: {
                            var$2 = var$4.$iNextInfo;
                            if (var$2 !== null) {
                                var$3 = var$2.$iPeriodStart;
                                if (Long_ge($millis, var$3)) {
                                    c: {
                                        var$4 = var$2.$iNextInfo;
                                        if (var$4 !== null) {
                                            var$5 = var$4.$iPeriodStart;
                                            if (Long_ge($millis, var$5)) {
                                                d: {
                                                    var$2 = var$4.$iNextInfo;
                                                    if (var$2 !== null) {
                                                        var$3 = var$2.$iPeriodStart;
                                                        if (Long_ge($millis, var$3)) {
                                                            e: {
                                                                var$4 = var$2.$iNextInfo;
                                                                if (var$4 !== null) {
                                                                    var$5 = var$4.$iPeriodStart;
                                                                    if (Long_ge($millis, var$5)) {
                                                                        f: {
                                                                            var$2 = var$4.$iNextInfo;
                                                                            if (var$2 !== null) {
                                                                                var$3 = var$2.$iPeriodStart;
                                                                                if (Long_ge($millis, var$3)) {
                                                                                    g: {
                                                                                        var$4 = var$2.$iNextInfo;
                                                                                        if (var$4 !== null) {
                                                                                            var$5 = var$4.$iPeriodStart;
                                                                                            if (Long_ge($millis, var$5)) {
                                                                                                var$2 = var$4.$iNextInfo;
                                                                                                if (var$2 !== null && Long_ge($millis, var$2.$iPeriodStart))
                                                                                                    var$6 = otcit_CachedDateTimeZone$Info_getStandardOffset(var$2, $millis);
                                                                                                else {
                                                                                                    if (var$4.$iStandardOffset == (-2147483648))
                                                                                                        var$4.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$4.$iZoneRef, var$5);
                                                                                                    var$6 = var$4.$iStandardOffset;
                                                                                                }
                                                                                                break g;
                                                                                            }
                                                                                        }
                                                                                        if (var$2.$iStandardOffset == (-2147483648))
                                                                                            var$2.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$2.$iZoneRef, var$3);
                                                                                        var$6 = var$2.$iStandardOffset;
                                                                                    }
                                                                                    break f;
                                                                                }
                                                                            }
                                                                            if (var$4.$iStandardOffset == (-2147483648))
                                                                                var$4.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$4.$iZoneRef, var$5);
                                                                            var$6 = var$4.$iStandardOffset;
                                                                        }
                                                                        break e;
                                                                    }
                                                                }
                                                                if (var$2.$iStandardOffset == (-2147483648))
                                                                    var$2.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$2.$iZoneRef, var$3);
                                                                var$6 = var$2.$iStandardOffset;
                                                            }
                                                            break d;
                                                        }
                                                    }
                                                    if (var$4.$iStandardOffset == (-2147483648))
                                                        var$4.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$4.$iZoneRef, var$5);
                                                    var$6 = var$4.$iStandardOffset;
                                                }
                                                break c;
                                            }
                                        }
                                        if (var$2.$iStandardOffset == (-2147483648))
                                            var$2.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$2.$iZoneRef, var$3);
                                        var$6 = var$2.$iStandardOffset;
                                    }
                                    break b;
                                }
                            }
                            if (var$4.$iStandardOffset == (-2147483648))
                                var$4.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$4.$iZoneRef, var$5);
                            var$6 = var$4.$iStandardOffset;
                        }
                        break a;
                    }
                }
                if (var$2.$iStandardOffset == (-2147483648))
                    var$2.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset(var$2.$iZoneRef, var$3);
                var$6 = var$2.$iStandardOffset;
            }
            return var$6;
        }
    }
    if ($this.$iStandardOffset == (-2147483648))
        $this.$iStandardOffset = otcit_DateTimeZoneBuilder$PrecalculatedZone_getStandardOffset($this.$iZoneRef, $this.$iPeriodStart);
    return $this.$iStandardOffset;
},
otciu_UnicodeHelper = $rt_classWithoutFields(),
otciu_UnicodeHelper__init_ = $this => {
    return;
},
otciu_UnicodeHelper__init_0 = () => {
    let var_0 = new otciu_UnicodeHelper();
    otciu_UnicodeHelper__init_(var_0);
    return var_0;
},
otciu_UnicodeHelper_decodeIntPairsDiff = $text => {
    let $flow, $data, var$4, $sz, var$6, $j, $lastKey, $lastValue, $i, var$11, var$12;
    $flow = new otci_CharFlow;
    $data = $rt_createCharArray($text.$nativeString.length);
    var$4 = $data.data;
    $sz = 0;
    var$6 = var$4.length;
    while (true) {
        if ($sz >= var$6) {
            $flow.$characters = $data;
            $sz = otci_Base46_decodeUnsigned($flow);
            $data = $rt_createIntArray($sz * 2 | 0);
            var$4 = $data.data;
            $j = 0;
            $lastKey = 0;
            $lastValue = 0;
            $i = 0;
            while ($i < $sz) {
                var$11 = otci_Base46_decodeUnsigned($flow);
                var$12 = var$11 / 2 | 0;
                if (var$11 % 2 | 0)
                    var$12 =  -var$12 | 0;
                $lastKey = $lastKey + var$12 | 0;
                var$11 = otci_Base46_decodeUnsigned($flow);
                var$6 = var$11 / 2 | 0;
                if (var$11 % 2 | 0)
                    var$6 =  -var$6 | 0;
                $lastValue = $lastValue + var$6 | 0;
                var$6 = $j + 1 | 0;
                var$4[$j] = $lastKey;
                $j = var$6 + 1 | 0;
                var$4[var$6] = $lastValue;
                $i = $i + 1 | 0;
            }
            return $data;
        }
        if ($sz < 0)
            break;
        if ($sz >= $text.$nativeString.length)
            break;
        var$4[$sz] = $text.$nativeString.charCodeAt($sz);
        $sz = $sz + 1 | 0;
    }
    $text = new jl_StringIndexOutOfBoundsException;
    $text.$suppressionEnabled = 1;
    $text.$writableStackTrace = 1;
    $rt_throw($text);
},
otciu_UnicodeHelper_decodeCaseMapping = $text => {
    let $flow, $data, var$4, $sz, var$6, $last, $i, var$9, var$10, var$11;
    $flow = new otci_CharFlow;
    $data = $rt_createCharArray($text.$nativeString.length);
    var$4 = $data.data;
    $sz = 0;
    var$6 = var$4.length;
    while (true) {
        if ($sz >= var$6) {
            $flow.$characters = $data;
            $sz = otci_Base46_decodeUnsigned($flow);
            $data = $rt_createIntArray($sz * 2 | 0);
            var$4 = $data.data;
            $last = 0;
            $i = 0;
            while ($i < $sz) {
                $last = $last + otci_Base46_decodeUnsigned($flow) | 0;
                var$6 = $i * 2 | 0;
                var$4[var$6] = $last;
                var$9 = var$6 + 1 | 0;
                var$10 = otci_Base46_decodeUnsigned($flow);
                var$11 = var$10 / 2 | 0;
                if (var$10 % 2 | 0)
                    var$11 =  -var$11 | 0;
                var$4[var$9] = var$11;
                $i = $i + 1 | 0;
            }
            return $data;
        }
        if ($sz < 0)
            break;
        if ($sz >= $text.$nativeString.length)
            break;
        var$4[$sz] = $text.$nativeString.charCodeAt($sz);
        $sz = $sz + 1 | 0;
    }
    $text = new jl_StringIndexOutOfBoundsException;
    $text.$suppressionEnabled = 1;
    $text.$writableStackTrace = 1;
    $rt_throw($text);
},
otciu_UnicodeHelper_createCharMapping = $data => {
    let $result, var$3, $last, $lastValue, $i, var$7, $key, $value, var$10, var$11, var$12;
    $result = $rt_createIntArray(65536);
    var$3 = $result.data;
    $last = 0;
    $lastValue = 0;
    $i = 0;
    a: {
        while (true) {
            var$7 = $data.data;
            if ($i >= var$7.length)
                break a;
            $key = var$7[$i];
            $value = var$7[$i + 1 | 0];
            var$10 = var$3.length;
            if ($key < var$10)
                var$10 = $key;
            else if ($key == $last)
                break;
            if ($last > var$10) {
                var$11 = new jl_IllegalArgumentException;
                var$11.$suppressionEnabled = 1;
                var$11.$writableStackTrace = 1;
                $rt_throw(var$11);
            }
            while ($last < var$10) {
                var$12 = $last + 1 | 0;
                var$3[$last] = $lastValue;
                $last = var$12;
            }
            $i = $i + 2 | 0;
            $last = var$10;
            $lastValue = $value;
        }
    }
    var$11 = new otciu_CharMapping;
    var$11.$binarySearchTable0 = $data;
    var$11.$fastTable = $result;
    return var$11;
},
otciu_UnicodeHelper_decodeByte = $c => {
    if ($c > 92)
        return (($c - 32 | 0) - 2 | 0) << 24 >> 24;
    if ($c <= 34)
        return ($c - 32 | 0) << 24 >> 24;
    return (($c - 32 | 0) - 1 | 0) << 24 >> 24;
},
otciu_UnicodeHelper_extractRle = $encoded => {
    let $ranges, var$3, var$4, $index, $rangeIndex, $codePoint, $i, var$9, var$10, $b, $count, $pos, $j, $digit, $buffer, var$17, var$18, var$19;
    $ranges = $rt_createArray(otciu_UnicodeHelper$Range, 16384);
    var$3 = $ranges.data;
    var$4 = $rt_createByteArray(16384).data;
    $index = 0;
    $rangeIndex = 0;
    $codePoint = 0;
    $i = 0;
    a: {
        b: {
            c: {
                while (true) {
                    if ($i >= $encoded.$nativeString.length) {
                        var$9 = $ranges.constructor;
                        if (var$9 === null)
                            $encoded = null;
                        else {
                            $encoded = var$9.classObject;
                            if ($encoded === null) {
                                $encoded = new jl_Class;
                                $encoded.$platformClass = var$9;
                                var$9.classObject = $encoded;
                            }
                        }
                        $encoded = jl_Class_getComponentType($encoded);
                        if ($encoded === null) {
                            $encoded = new jl_NullPointerException;
                            $encoded.$suppressionEnabled = 1;
                            $encoded.$writableStackTrace = 1;
                            $rt_throw($encoded);
                        }
                        if ($encoded === $rt_cls($rt_voidcls)) {
                            $encoded = new jl_IllegalArgumentException;
                            $encoded.$suppressionEnabled = 1;
                            $encoded.$writableStackTrace = 1;
                            $rt_throw($encoded);
                        }
                        if ($rangeIndex < 0) {
                            $encoded = new jl_NegativeArraySizeException;
                            $encoded.$suppressionEnabled = 1;
                            $encoded.$writableStackTrace = 1;
                            $rt_throw($encoded);
                        }
                        var$10 = jlr_Array_newInstanceImpl($encoded.$platformClass, $rangeIndex);
                        $index = var$3.length;
                        if ($rangeIndex < $index)
                            $index = $rangeIndex;
                        $rangeIndex = 0;
                        while ($rangeIndex < $index) {
                            var$10.data[$rangeIndex] = var$3[$rangeIndex];
                            $rangeIndex = $rangeIndex + 1 | 0;
                        }
                        return var$10;
                    }
                    if ($i < 0)
                        break c;
                    if ($i >= $encoded.$nativeString.length)
                        break c;
                    $b = otciu_UnicodeHelper_decodeByte($encoded.$nativeString.charCodeAt($i));
                    if ($b == 64) {
                        $i = $i + 1 | 0;
                        if ($i < 0)
                            break b;
                        if ($i >= $encoded.$nativeString.length)
                            break b;
                        $b = otciu_UnicodeHelper_decodeByte($encoded.$nativeString.charCodeAt($i));
                        $count = 0;
                        $pos = 1;
                        $j = 0;
                        while ($j < 3) {
                            $i = $i + 1 | 0;
                            if ($i < 0)
                                break a;
                            if ($i >= $encoded.$nativeString.length)
                                break a;
                            $count = $count | $rt_imul($pos, otciu_UnicodeHelper_decodeByte($encoded.$nativeString.charCodeAt($i)));
                            $pos = $pos * 64 | 0;
                            $j = $j + 1 | 0;
                        }
                    } else if ($b < 32)
                        $count = 1;
                    else {
                        $b = ($b - 32 | 0) << 24 >> 24;
                        $i = $i + 1 | 0;
                        if ($i < 0)
                            break;
                        if ($i >= $encoded.$nativeString.length)
                            break;
                        $count = otciu_UnicodeHelper_decodeByte($encoded.$nativeString.charCodeAt($i));
                    }
                    if (!$b && $count >= 128) {
                        if ($index > 0) {
                            $digit = $rangeIndex + 1 | 0;
                            var$9 = new otciu_UnicodeHelper$Range;
                            $b = $codePoint + $index | 0;
                            $buffer = $rt_createByteArray($index);
                            $j = var$4.length;
                            if ($index < $j)
                                $j = $index;
                            var$17 = $buffer.data;
                            var$18 = 0;
                            while (var$18 < $j) {
                                var$17[var$18] = var$4[var$18];
                                var$18 = var$18 + 1 | 0;
                            }
                            var$9.$start4 = $codePoint;
                            var$9.$end3 = $b;
                            var$9.$data14 = $buffer;
                            var$3[$rangeIndex] = var$9;
                            $rangeIndex = $digit;
                        }
                        $codePoint = $codePoint + ($index + $count | 0) | 0;
                        $index = 0;
                    } else {
                        $pos = $index + $count | 0;
                        $j = var$4.length;
                        if ($pos < $j)
                            var$18 = $rangeIndex;
                        else {
                            var$18 = $rangeIndex + 1 | 0;
                            var$9 = new otciu_UnicodeHelper$Range;
                            var$19 = $codePoint + $index | 0;
                            $buffer = $rt_createByteArray($index);
                            if ($index < $j)
                                $j = $index;
                            var$17 = $buffer.data;
                            $index = 0;
                            while ($index < $j) {
                                var$17[$index] = var$4[$index];
                                $index = $index + 1 | 0;
                            }
                            var$9.$start4 = $codePoint;
                            var$9.$end3 = var$19;
                            var$9.$data14 = $buffer;
                            var$3[$rangeIndex] = var$9;
                            $codePoint = $codePoint + $pos | 0;
                            $index = 0;
                        }
                        while (true) {
                            $rangeIndex = $count + (-1) | 0;
                            if ($count <= 0)
                                break;
                            $digit = $index + 1 | 0;
                            var$4[$index] = $b;
                            $index = $digit;
                            $count = $rangeIndex;
                        }
                        $rangeIndex = var$18;
                    }
                    $i = $i + 1 | 0;
                }
                $encoded = new jl_StringIndexOutOfBoundsException;
                $encoded.$suppressionEnabled = 1;
                $encoded.$writableStackTrace = 1;
                $rt_throw($encoded);
            }
            $encoded = new jl_StringIndexOutOfBoundsException;
            $encoded.$suppressionEnabled = 1;
            $encoded.$writableStackTrace = 1;
            $rt_throw($encoded);
        }
        $encoded = new jl_StringIndexOutOfBoundsException;
        $encoded.$suppressionEnabled = 1;
        $encoded.$writableStackTrace = 1;
        $rt_throw($encoded);
    }
    $encoded = new jl_StringIndexOutOfBoundsException;
    $encoded.$suppressionEnabled = 1;
    $encoded.$writableStackTrace = 1;
    $rt_throw($encoded);
},
jl_StringIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException),
jl_StringIndexOutOfBoundsException__init_0 = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_StringIndexOutOfBoundsException__init_ = () => {
    let var_0 = new jl_StringIndexOutOfBoundsException();
    jl_StringIndexOutOfBoundsException__init_0(var_0);
    return var_0;
};
function jn_Buffer() {
    let a = this; jl_Object.call(a);
    a.$capacity = 0;
    a.$position1 = 0;
    a.$limit = 0;
    a.$mark0 = 0;
}
let jn_Buffer__init_ = ($this, $capacity) => {
    $this.$mark0 = (-1);
    $this.$capacity = $capacity;
    $this.$limit = $capacity;
},
jn_Buffer_position0 = $this => {
    return $this.$position1;
},
jn_Buffer_position = ($this, $newPosition) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if ($newPosition >= 0 && $newPosition <= $this.$limit) {
        $this.$position1 = $newPosition;
        if ($newPosition < $this.$mark0)
            $this.$mark0 = 0;
        return $this;
    }
    var$2 = new jl_IllegalArgumentException;
    var$3 = $this.$limit;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1649));
    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newPosition, 10);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1650));
    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$3, 10);
    var$3 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$3, var$3 + 1 | 0);
    var$5 = var$4.$buffer;
    var$6 = var$5.data;
    var$6[var$3] = 93;
    var$7 = new jl_String;
    var$3 = var$4.$length0;
    var$8 = var$6.length;
    if (var$3 >= 0 && var$3 <= (var$8 - 0 | 0)) {
        var$7.$nativeString = $rt_charArrayToString(var$5.data, 0, var$3);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$7;
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jn_Buffer_hasRemaining = $this => {
    return $this.$position1 >= $this.$limit ? 0 : 1;
},
jl_Readable = $rt_classWithoutFields(0),
jn_CharBuffer = $rt_classWithoutFields(jn_Buffer),
jn_CharBuffer_wrap = ($array, $offset, $length) => {
    let var$4, var$5, var$6, var$7;
    var$4 = $array.data;
    var$5 = new jn_CharBufferOverArray;
    var$6 = var$4.length;
    var$7 = $offset + $length | 0;
    var$5.$mark0 = (-1);
    var$5.$capacity = var$6;
    var$5.$limit = var$6;
    var$5.$position1 = $offset;
    var$5.$limit = var$7;
    var$5.$start1 = 0;
    var$5.$readOnly = 0;
    var$5.$array0 = $array;
    return var$5;
},
jn_CharBuffer_get = ($this, $dst, $offset, $length) => {
    let var$4, var$5, $i, var$7, var$8, var$9, $pos, var$11, var$12;
    if ($offset >= 0) {
        var$4 = $dst.data;
        var$5 = var$4.length;
        if ($offset <= var$5) {
            $i = $offset + $length | 0;
            if ($i > var$5) {
                var$7 = new jl_IndexOutOfBoundsException;
                var$8 = new jl_StringBuilder;
                var$8.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1651));
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $i, 10);
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1652));
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$5, 10);
                var$9 = new jl_String;
                $dst = var$8.$buffer;
                var$4 = $dst.data;
                $length = var$8.$length0;
                var$5 = var$4.length;
                if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                    var$9.$nativeString = $rt_charArrayToString($dst.data, 0, $length);
                    var$7.$suppressionEnabled = 1;
                    var$7.$writableStackTrace = 1;
                    var$7.$message = var$9;
                    $rt_throw(var$7);
                }
                var$7 = new jl_IndexOutOfBoundsException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                $rt_throw(var$7);
            }
            var$5 = $this.$limit;
            $pos = $this.$position1;
            if ((var$5 - $pos | 0) < $length) {
                var$7 = new jn_BufferUnderflowException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                $rt_throw(var$7);
            }
            if ($length >= 0) {
                $i = 0;
                var$11 = $pos;
                while ($i < $length) {
                    var$12 = $offset + 1 | 0;
                    var$5 = var$11 + 1 | 0;
                    var$4[$offset] = $this.$array0.data[var$11 + $this.$start1 | 0];
                    $i = $i + 1 | 0;
                    $offset = var$12;
                    var$11 = var$5;
                }
                $this.$position1 = $pos + $length | 0;
                return $this;
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$8 = new jl_StringBuilder;
            var$8.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1653));
            jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $length, 10);
            jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1654));
            var$9 = new jl_String;
            $dst = var$8.$buffer;
            var$4 = $dst.data;
            $length = var$8.$length0;
            var$5 = var$4.length;
            if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                var$9.$nativeString = $rt_charArrayToString($dst.data, 0, $length);
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                var$7.$message = var$9;
                $rt_throw(var$7);
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            $rt_throw(var$7);
        }
    }
    $dst = $dst.data;
    var$7 = new jl_IndexOutOfBoundsException;
    $length = $dst.length;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1655));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $offset, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1650));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $length, 10);
    $length = var$8.$length0;
    jl_AbstractStringBuilder_insertSpace(var$8, $length, $length + 1 | 0);
    $dst = var$8.$buffer;
    var$4 = $dst.data;
    var$4[$length] = 41;
    var$9 = new jl_String;
    $length = var$8.$length0;
    var$5 = var$4.length;
    if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString($dst.data, 0, $length);
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        var$7.$message = var$9;
        $rt_throw(var$7);
    }
    var$7 = new jl_IndexOutOfBoundsException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    $rt_throw(var$7);
},
jn_CharBuffer_put0 = ($this, $src, $offset, $length) => {
    let var$4, var$5, $pos, var$7, $i, var$9, var$10, var$11, var$12;
    if ($this.$readOnly) {
        var$4 = new jn_ReadOnlyBufferException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$5 = $this.$limit;
    $pos = $this.$position1;
    if ((var$5 - $pos | 0) < $length) {
        var$4 = new jn_BufferOverflowException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($offset >= 0) {
        var$7 = $src.data;
        var$5 = var$7.length;
        if ($offset <= var$5) {
            $i = $offset + $length | 0;
            if ($i > var$5) {
                var$4 = new jl_IndexOutOfBoundsException;
                var$9 = new jl_StringBuilder;
                var$9.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1656));
                jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $i, 10);
                jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1652));
                jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, var$5, 10);
                var$10 = new jl_String;
                $src = var$9.$buffer;
                var$7 = $src.data;
                $length = var$9.$length0;
                var$5 = var$7.length;
                if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                    var$10.$nativeString = $rt_charArrayToString($src.data, 0, $length);
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    var$4.$message = var$10;
                    $rt_throw(var$4);
                }
                var$4 = new jl_IndexOutOfBoundsException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$4);
                $rt_throw(var$4);
            }
            if ($length >= 0) {
                $i = 0;
                var$11 = $pos;
                while ($i < $length) {
                    var$12 = var$11 + 1 | 0;
                    var$5 = $offset + 1 | 0;
                    $this.$array0.data[var$11 + $this.$start1 | 0] = var$7[$offset];
                    $i = $i + 1 | 0;
                    var$11 = var$12;
                    $offset = var$5;
                }
                $this.$position1 = $pos + $length | 0;
                return $this;
            }
            var$4 = new jl_IndexOutOfBoundsException;
            var$9 = new jl_StringBuilder;
            var$9.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1653));
            jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $length, 10);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1654));
            var$10 = new jl_String;
            $src = var$9.$buffer;
            var$7 = $src.data;
            $length = var$9.$length0;
            var$5 = var$7.length;
            if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString($src.data, 0, $length);
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                var$4.$message = var$10;
                $rt_throw(var$4);
            }
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$4);
            $rt_throw(var$4);
        }
    }
    $src = $src.data;
    var$4 = new jl_IndexOutOfBoundsException;
    $length = $src.length;
    var$9 = new jl_StringBuilder;
    var$9.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1655));
    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $offset, 10);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1650));
    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $length, 10);
    $length = var$9.$length0;
    jl_AbstractStringBuilder_insertSpace(var$9, $length, $length + 1 | 0);
    $src = var$9.$buffer;
    var$7 = $src.data;
    var$7[$length] = 41;
    var$10 = new jl_String;
    $length = var$9.$length0;
    var$5 = var$7.length;
    if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
        var$10.$nativeString = $rt_charArrayToString($src.data, 0, $length);
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        var$4.$message = var$10;
        $rt_throw(var$4);
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$4);
    $rt_throw(var$4);
},
jn_CharBuffer_put = ($this, $src, $start, $end) => {
    let $sz, var$5, var$6, var$7, var$8, var$9, $pos, $pos_0;
    if ($this.$readOnly) {
        $src = new jn_ReadOnlyBufferException;
        $src.$suppressionEnabled = 1;
        $src.$writableStackTrace = 1;
        $rt_throw($src);
    }
    $sz = $end - $start | 0;
    if (($this.$limit - $this.$position1 | 0) < $sz) {
        $src = new jn_BufferOverflowException;
        $src.$suppressionEnabled = 1;
        $src.$writableStackTrace = 1;
        $rt_throw($src);
    }
    if ($start >= 0 && $start <= $src.$nativeString.length) {
        if ($end > $src.$nativeString.length) {
            var$5 = new jl_IndexOutOfBoundsException;
            $sz = $src.$nativeString.length;
            $src = new jl_StringBuilder;
            $src.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($src, $src.$length0, $rt_s(1656));
            jl_AbstractStringBuilder_insert0($src, $src.$length0, $end, 10);
            jl_AbstractStringBuilder_insert($src, $src.$length0, $rt_s(1657));
            jl_AbstractStringBuilder_insert0($src, $src.$length0, $sz, 10);
            var$6 = new jl_String;
            var$7 = $src.$buffer;
            var$8 = var$7.data;
            $end = $src.$length0;
            var$9 = var$8.length;
            if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
                var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                var$5.$message = var$6;
                $rt_throw(var$5);
            }
            $src = new jl_IndexOutOfBoundsException;
            $src.$suppressionEnabled = 1;
            $src.$writableStackTrace = 1;
            $rt_throw($src);
        }
        if ($start <= $end) {
            $pos = $this.$position1;
            a: {
                while ($start < $end) {
                    $pos_0 = $pos + 1 | 0;
                    var$9 = $start + 1 | 0;
                    if ($start < 0)
                        break a;
                    if ($start >= $src.$nativeString.length)
                        break a;
                    $this.$array0.data[$pos + $this.$start1 | 0] = $src.$nativeString.charCodeAt($start);
                    $pos = $pos_0;
                    $start = var$9;
                }
                $this.$position1 = $this.$position1 + $sz | 0;
                return $this;
            }
            $src = new jl_StringIndexOutOfBoundsException;
            $src.$suppressionEnabled = 1;
            $src.$writableStackTrace = 1;
            $rt_throw($src);
        }
        $src = new jl_IndexOutOfBoundsException;
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(1658));
        jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $start, 10);
        jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(1659));
        jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $end, 10);
        var$6 = new jl_String;
        var$7 = var$5.$buffer;
        var$8 = var$7.data;
        $end = var$5.$length0;
        var$9 = var$8.length;
        if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
            var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
            $src.$suppressionEnabled = 1;
            $src.$writableStackTrace = 1;
            $src.$message = var$6;
            $rt_throw($src);
        }
        $src = new jl_IndexOutOfBoundsException;
        $src.$suppressionEnabled = 1;
        $src.$writableStackTrace = 1;
        $rt_throw($src);
    }
    var$5 = new jl_IndexOutOfBoundsException;
    $sz = $src.$nativeString.length;
    $src = new jl_StringBuilder;
    $src.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($src, $src.$length0, $rt_s(1658));
    jl_AbstractStringBuilder_insert0($src, $src.$length0, $start, 10);
    jl_AbstractStringBuilder_insert($src, $src.$length0, $rt_s(1650));
    jl_AbstractStringBuilder_insert0($src, $src.$length0, $sz, 10);
    $end = $src.$length0;
    jl_AbstractStringBuilder_insertSpace($src, $end, $end + 1 | 0);
    var$7 = $src.$buffer;
    var$8 = var$7.data;
    var$8[$end] = 41;
    var$6 = new jl_String;
    $end = $src.$length0;
    var$9 = var$8.length;
    if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = var$6;
        $rt_throw(var$5);
    }
    $src = new jl_IndexOutOfBoundsException;
    $src.$suppressionEnabled = 1;
    $src.$writableStackTrace = 1;
    $rt_throw($src);
};
function jn_ByteBuffer() {
    let a = this; jn_Buffer.call(a);
    a.$start2 = 0;
    a.$array2 = null;
    a.$order = null;
}
let jn_ByteBuffer_get = ($this, $dst, $offset, $length) => {
    let var$4, var$5, $pos, var$7, var$8, var$9, var$10, $i, var$12;
    if ($offset >= 0) {
        var$4 = $dst.data;
        var$5 = var$4.length;
        if ($offset <= var$5) {
            $pos = $offset + $length | 0;
            if ($pos > var$5) {
                var$7 = new jl_IndexOutOfBoundsException;
                var$8 = new jl_StringBuilder;
                var$8.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1660));
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $pos, 10);
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1652));
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$5, 10);
                var$9 = new jl_String;
                $dst = var$8.$buffer;
                var$4 = $dst.data;
                $length = var$8.$length0;
                var$5 = var$4.length;
                if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                    var$9.$nativeString = $rt_charArrayToString($dst.data, 0, $length);
                    var$7.$suppressionEnabled = 1;
                    var$7.$writableStackTrace = 1;
                    var$7.$message = var$9;
                    $rt_throw(var$7);
                }
                var$7 = new jl_IndexOutOfBoundsException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                $rt_throw(var$7);
            }
            var$5 = $this.$limit;
            var$10 = $this.$position1;
            if ((var$5 - var$10 | 0) < $length) {
                var$7 = new jn_BufferUnderflowException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                $rt_throw(var$7);
            }
            if ($length >= 0) {
                $pos = var$10 + $this.$start2 | 0;
                $i = 0;
                while ($i < $length) {
                    var$12 = $offset + 1 | 0;
                    $dst = $this.$array2.data;
                    var$5 = $pos + 1 | 0;
                    var$4[$offset] = $dst[$pos];
                    $i = $i + 1 | 0;
                    $offset = var$12;
                    $pos = var$5;
                }
                $this.$position1 = var$10 + $length | 0;
                return $this;
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$8 = new jl_StringBuilder;
            var$8.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1653));
            jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $length, 10);
            jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1654));
            var$9 = new jl_String;
            $dst = var$8.$buffer;
            var$4 = $dst.data;
            $length = var$8.$length0;
            var$5 = var$4.length;
            if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                var$9.$nativeString = $rt_charArrayToString($dst.data, 0, $length);
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                var$7.$message = var$9;
                $rt_throw(var$7);
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            $rt_throw(var$7);
        }
    }
    $dst = $dst.data;
    var$7 = new jl_IndexOutOfBoundsException;
    $length = $dst.length;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1655));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $offset, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1650));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $length, 10);
    $length = var$8.$length0;
    jl_AbstractStringBuilder_insertSpace(var$8, $length, $length + 1 | 0);
    $dst = var$8.$buffer;
    var$4 = $dst.data;
    var$4[$length] = 41;
    var$9 = new jl_String;
    $length = var$8.$length0;
    var$5 = var$4.length;
    if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString($dst.data, 0, $length);
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        var$7.$message = var$9;
        $rt_throw(var$7);
    }
    var$7 = new jl_IndexOutOfBoundsException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    $rt_throw(var$7);
},
jn_ByteBuffer_put = ($this, $src, $offset, $length) => {
    let var$4, var$5, var$6, var$7, $pos, var$9, var$10, $i, var$12;
    if (!$length)
        return $this;
    if ($this.$readOnly0) {
        var$4 = new jn_ReadOnlyBufferException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$5 = $this.$limit;
    var$6 = $this.$position1;
    if ((var$5 - var$6 | 0) < $length) {
        var$4 = new jn_BufferOverflowException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($offset >= 0) {
        var$7 = $src.data;
        var$5 = var$7.length;
        if ($offset <= var$5) {
            $pos = $offset + $length | 0;
            if ($pos > var$5) {
                var$4 = new jl_IndexOutOfBoundsException;
                var$9 = new jl_StringBuilder;
                var$9.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1661));
                jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $pos, 10);
                jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1652));
                jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, var$5, 10);
                var$10 = new jl_String;
                $src = var$9.$buffer;
                var$7 = $src.data;
                $length = var$9.$length0;
                var$5 = var$7.length;
                if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                    var$10.$nativeString = $rt_charArrayToString($src.data, 0, $length);
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    var$4.$message = var$10;
                    $rt_throw(var$4);
                }
                var$4 = new jl_IndexOutOfBoundsException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            if ($length >= 0) {
                $pos = var$6 + $this.$start2 | 0;
                $i = 0;
                while ($i < $length) {
                    $src = $this.$array2.data;
                    var$12 = $pos + 1 | 0;
                    var$5 = $offset + 1 | 0;
                    $src[$pos] = var$7[$offset];
                    $i = $i + 1 | 0;
                    $pos = var$12;
                    $offset = var$5;
                }
                $this.$position1 = var$6 + $length | 0;
                return $this;
            }
            var$4 = new jl_IndexOutOfBoundsException;
            var$9 = new jl_StringBuilder;
            var$9.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1653));
            jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $length, 10);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1654));
            var$10 = new jl_String;
            $src = var$9.$buffer;
            var$7 = $src.data;
            $length = var$9.$length0;
            var$5 = var$7.length;
            if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString($src.data, 0, $length);
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                var$4.$message = var$10;
                $rt_throw(var$4);
            }
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
    }
    $src = $src.data;
    var$4 = new jl_IndexOutOfBoundsException;
    $length = $src.length;
    var$9 = new jl_StringBuilder;
    var$9.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1655));
    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $offset, 10);
    jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1650));
    jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $length, 10);
    $length = var$9.$length0;
    jl_AbstractStringBuilder_insertSpace(var$9, $length, $length + 1 | 0);
    $src = var$9.$buffer;
    var$7 = $src.data;
    var$7[$length] = 41;
    var$10 = new jl_String;
    $length = var$9.$length0;
    var$5 = var$7.length;
    if ($length >= 0 && $length <= (var$5 - 0 | 0)) {
        var$10.$nativeString = $rt_charArrayToString($src.data, 0, $length);
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        var$4.$message = var$10;
        $rt_throw(var$4);
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
jn_ByteBuffer_clear = $this => {
    $this.$position1 = 0;
    $this.$limit = $this.$capacity;
    $this.$mark0 = (-1);
    return $this;
},
nms_IBlockAccess = $rt_classWithoutFields(0);
function nms_World() {
    let a = this; jl_Object.call(a);
    a.$scheduledUpdatesAreImmediate = 0;
    a.$loadedEntityList = null;
    a.$unloadedEntityList = null;
    a.$loadedTileEntityList = null;
    a.$addedTileEntityList = null;
    a.$entityRemoval = null;
    a.$playerEntities = null;
    a.$weatherEffects = null;
    a.$cloudColour = Long_ZERO;
    a.$skylightSubtracted = 0;
    a.$updateLCG = 0;
    a.$DIST_HASH_MAGIC = 1013904223;
    a.$prevRainingStrength = 0.0;
    a.$rainingStrength = 0.0;
    a.$prevThunderingStrength = 0.0;
    a.$thunderingStrength = 0.0;
    a.$lastLightningBolt = 0;
    a.$difficultySetting = 0;
    a.$rand0 = null;
    a.$provider = null;
    a.$worldAccesses = null;
    a.$chunkProvider = null;
    a.$saveHandler0 = null;
    a.$worldInfo = null;
    a.$findingSpawnPoint = 0;
    a.$mapStorage = null;
    a.$villageCollectionObj = null;
    a.$villageSiegeObj = null;
    a.$vecPool = null;
    a.$theCalendar = null;
    a.$worldScoreboard = null;
    a.$collidingBoundingBoxes = null;
    a.$scanningTileEntities = 0;
    a.$spawnHostileMobs = 0;
    a.$spawnPeacefulMobs = 0;
    a.$activeChunkSet = null;
    a.$ambientTickCountdown = 0;
    a.$lightUpdateBlockList = null;
    a.$isRemote = 0;
}
let nms_World_getBiomeGenForCoords = ($this, $par1, $par2) => {
    let var$3, var$4, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1 >> 4;
        var$4 = $par2 >> 4;
        if (!nms_World_chunkExists($this, var$3, var$4))
            return $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par2);
        $ptr = 1;
    case 1:
        $tmp = nms_World_getChunkFromChunkCoords($this, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 === null)
            return $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par2);
        return nms_Chunk_getBiomeGenForWorldCoords($var3, $par1 & 15, $par2 & 15, $this.$provider.$worldChunkMgr);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, $var3, $ptr);
},
nms_World_getWorldChunkManager = $this => {
    return $this.$provider.$worldChunkMgr;
},
nms_World__init_ = ($this, $par1ISaveHandler, $par2Str, $par3WorldSettings, $par4WorldProvider) => {
    let $var7, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$par4WorldProvider = $thread.pop();$par3WorldSettings = $thread.pop();$par2Str = $thread.pop();$par1ISaveHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$loadedEntityList = $var7;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$unloadedEntityList = $var7;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$loadedTileEntityList = $var7;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$addedTileEntityList = $var7;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$entityRemoval = $var7;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$playerEntities = $var7;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$weatherEffects = $var7;
        $this.$cloudColour = Long_fromInt(16777215);
        $this.$updateLCG = Long_lo(Long_shru(Long_and(Long_add(Long_mul(Long_fromNumber(performance.now() * 1000000.0), Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535)), 16));
        $this.$DIST_HASH_MAGIC = 1013904223;
        var$6 = new nle_EaglercraftRandom;
        var$7 = Long_fromNumber(performance.now() * 1000000.0);
        var$6.$seed = Long_fromInt(69);
        var$6.$haveNextNextGaussian = 0;
        var$6.$seed = var$7;
        $this.$rand0 = var$6;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$worldAccesses = $var7;
        $var7 = new nms_VillageSiege;
        $var7.$field_75536_c = (-1);
        $var7.$worldObj12 = $this;
        $this.$villageSiegeObj = $var7;
        var$8 = new nms_Vec3Pool;
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        var$8.$vec3Cache = $var7;
        var$8.$truncateArrayResetThreshold = 300;
        var$8.$minimumSize = 2000;
        $this.$vecPool = var$8;
        $this.$theCalendar = ju_GregorianCalendar__init_0();
        $this.$worldScoreboard = nms_Scoreboard__init_0();
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $this.$collidingBoundingBoxes = $var7;
        $this.$spawnHostileMobs = 1;
        $this.$spawnPeacefulMobs = 1;
        $this.$activeChunkSet = ju_HashSet__init_();
        $var7 = $this.$rand0;
        var$9 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var7.$seed = var$9;
        var$10 = Long_lo(Long_shru(var$9, 17));
        while (true) {
            var$11 = var$10 % 12000 | 0;
            if (((var$10 - var$11 | 0) + 11999 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var7.$seed = var$9;
            var$10 = Long_lo(Long_shru(var$9, 17));
        }
        $this.$ambientTickCountdown = var$11;
        $this.$lightUpdateBlockList = $rt_createIntArray(32768);
        $this.$saveHandler0 = $par1ISaveHandler;
        $var7 = new nms_MapStorage;
        $var7.$loadedDataMap = ju_HashMap__init_();
        var$8 = new ju_ArrayList;
        var$8.$array = $rt_createArray(jl_Object, 10);
        $var7.$loadedDataList = var$8;
        $var7.$idCounts = ju_HashMap__init_();
        $var7.$saveHandler = $par1ISaveHandler;
        $ptr = 1;
    case 1:
        nms_MapStorage_loadIdCounts($var7);
        if ($rt_suspending()) {
            break main;
        }
        $this.$mapStorage = $var7;
        $ptr = 2;
    case 2:
        $tmp = nles_VFSSaveHandler_loadWorldInfo($par1ISaveHandler);
        if ($rt_suspending()) {
            break main;
        }
        $par1ISaveHandler = $tmp;
        $this.$worldInfo = $par1ISaveHandler;
        if ($par4WorldProvider !== null)
            $this.$provider = $par4WorldProvider;
        else if ($par1ISaveHandler !== null && $par1ISaveHandler.$getVanillaDimension()) {
            var$12 = $this.$worldInfo.$getVanillaDimension();
            if (var$12 == (-1)) {
                $par1ISaveHandler = new nms_WorldProviderHell;
                $par1ISaveHandler.$lightBrightnessTable = $rt_createFloatArray(16);
                $par1ISaveHandler.$colorsSunriseSunset = $rt_createFloatArray(4);
            } else if (!var$12) {
                $par1ISaveHandler = new nms_WorldProviderSurface;
                $par1ISaveHandler.$lightBrightnessTable = $rt_createFloatArray(16);
                $par1ISaveHandler.$colorsSunriseSunset = $rt_createFloatArray(4);
            } else if (var$12 != 1)
                $par1ISaveHandler = null;
            else {
                $par1ISaveHandler = new nms_WorldProviderEnd;
                $par1ISaveHandler.$lightBrightnessTable = $rt_createFloatArray(16);
                $par1ISaveHandler.$colorsSunriseSunset = $rt_createFloatArray(4);
            }
            $this.$provider = $par1ISaveHandler;
        } else {
            $par1ISaveHandler = new nms_WorldProviderSurface;
            $par1ISaveHandler.$lightBrightnessTable = $rt_createFloatArray(16);
            $par1ISaveHandler.$colorsSunriseSunset = $rt_createFloatArray(4);
            $this.$provider = $par1ISaveHandler;
        }
        $par1ISaveHandler = $this.$worldInfo;
        if ($par1ISaveHandler !== null)
            $par1ISaveHandler.$setWorldName($par2Str);
        else
            $this.$worldInfo = nms_WorldInfo__init_2($par3WorldSettings, $par2Str);
        $par1ISaveHandler = $this.$provider;
        $par1ISaveHandler.$worldObj15 = $this;
        $par1ISaveHandler.$terrainType4 = $this.$worldInfo.$getTerrainType();
        $par1ISaveHandler.$field_82913_c = $this.$worldInfo.$generatorOptions;
        $par1ISaveHandler.$registerWorldChunkManager();
        $par1ISaveHandler.$generateLightBrightnessTable();
        $par2Str = nms_ChunkProviderServer__init_($this, nles_VFSSaveHandler_getChunkLoader($this.$saveHandler0, $this.$provider), $this.$provider.$createChunkGenerator());
        $this.$theChunkProviderServer = $par2Str;
        $this.$chunkProvider = $par2Str;
        if (!$this.$worldInfo.$isInitialized()) {
            $ptr = 4;
            continue main;
        }
        $par1ISaveHandler = $this.$mapStorage;
        $par3WorldSettings = new nms_World$_init_$lambda$_3_0;
        $par2Str = $rt_s(1662);
        $ptr = 3;
    case 3:
        a: {
            $tmp = nms_MapStorage_loadData($par1ISaveHandler, $par3WorldSettings, $par2Str);
            if ($rt_suspending()) {
                break main;
            }
            $par1ISaveHandler = $tmp;
            $var7 = $par1ISaveHandler;
            if ($var7 !== null) {
                $this.$villageCollectionObj = $var7;
                $var7.$worldObj11 = $this;
                $par1ISaveHandler = $var7.$villageList;
                var$13 = 0;
                var$10 = $par1ISaveHandler.$modCount;
                var$11 = $par1ISaveHandler.$size();
                while (true) {
                    if (!(var$13 >= var$11 ? 0 : 1))
                        break a;
                    if (var$10 < $par1ISaveHandler.$modCount)
                        break;
                    var$12 = var$13 + 1 | 0;
                    ($par1ISaveHandler.$get(var$13)).$worldObj10 = $this;
                    var$13 = var$12;
                }
                $par1ISaveHandler = new ju_ConcurrentModificationException;
                $par1ISaveHandler.$suppressionEnabled = 1;
                $par1ISaveHandler.$writableStackTrace = 1;
                $rt_throw($par1ISaveHandler);
            }
            b: {
                $par1ISaveHandler = new nms_VillageCollection;
                $par1ISaveHandler.$mapName = $rt_s(1662);
                $par2Str = new ju_ArrayList;
                $par2Str.$array = $rt_createArray(jl_Object, 10);
                $par1ISaveHandler.$villagerPositionsList = $par2Str;
                $par2Str = new ju_ArrayList;
                $par2Str.$array = $rt_createArray(jl_Object, 10);
                $par1ISaveHandler.$newDoors = $par2Str;
                $par2Str = new ju_ArrayList;
                $par2Str.$array = $rt_createArray(jl_Object, 10);
                $par1ISaveHandler.$villageList = $par2Str;
                $par1ISaveHandler.$worldObj11 = $this;
                $par1ISaveHandler.$dirty = 1;
                $this.$villageCollectionObj = $par1ISaveHandler;
                $par2Str = $this.$mapStorage;
                $par4WorldProvider = $par2Str.$loadedDataMap;
                if (!$rt_s(1662).$hashCode1) {
                    var$12 = 0;
                    while (true) {
                        if (var$12 >= $rt_s(1662).$nativeString.length)
                            break b;
                        $rt_s(1662).$hashCode1 = (31 * $rt_s(1662).$hashCode1 | 0) + $rt_s(1662).$nativeString.charCodeAt(var$12) | 0;
                        var$12 = var$12 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(1662).$hashCode1;
            var$14 = $par4WorldProvider.$elementData.data;
            $par4WorldProvider = var$14[var$11 & (var$14.length - 1 | 0)];
            while ($par4WorldProvider !== null) {
                if ($par4WorldProvider.$origKeyHash == var$11) {
                    c: {
                        $var7 = $par4WorldProvider.$key;
                        if ($rt_s(1662) !== $var7) {
                            if ($rt_s(1662) === $var7)
                                var$12 = 1;
                            else if (!($var7 instanceof jl_String))
                                var$12 = 0;
                            else {
                                $var7 = $var7;
                                var$12 = $rt_s(1662).$nativeString !== $var7.$nativeString ? 0 : 1;
                            }
                            if (!var$12) {
                                var$12 = 0;
                                break c;
                            }
                        }
                        var$12 = 1;
                    }
                    if (var$12)
                        break;
                }
                $par4WorldProvider = $par4WorldProvider.$next3;
            }
            if ($par4WorldProvider === null ? 0 : 1) {
                $par4WorldProvider = $par2Str.$loadedDataList;
                $var7 = ju_HashMap_removeByKey($par2Str.$loadedDataMap, $rt_s(1662));
                $var7 = $var7 === null ? null : $var7.$value0;
                var$11 = $par4WorldProvider.$size0;
                var$12 = 0;
                d: {
                    while (true) {
                        if (var$12 >= var$11) {
                            var$12 = (-1);
                            break d;
                        }
                        if (var$12 < 0)
                            break;
                        if (var$12 >= $par4WorldProvider.$size0)
                            break;
                        var$8 = $par4WorldProvider.$array.data[var$12];
                        if ($var7 === var$8 ? 1 : $var7 !== null ? $var7.$equals(var$8) : var$8 !== null ? 0 : 1)
                            break d;
                        var$12 = var$12 + 1 | 0;
                    }
                    $par1ISaveHandler = new jl_IndexOutOfBoundsException;
                    $par1ISaveHandler.$suppressionEnabled = 1;
                    $par1ISaveHandler.$writableStackTrace = 1;
                    $rt_throw($par1ISaveHandler);
                }
                if (var$12 >= 0)
                    ju_ArrayList_remove($par4WorldProvider, var$12);
            }
            ju_HashMap_putImpl($par2Str.$loadedDataMap, $rt_s(1662), $par1ISaveHandler);
            $par2Str = $par2Str.$loadedDataList;
            ju_ArrayList_ensureCapacity($par2Str, $par2Str.$size0 + 1 | 0);
            var$14 = $par2Str.$array.data;
            var$10 = $par2Str.$size0;
            $par2Str.$size0 = var$10 + 1 | 0;
            var$14[var$10] = $par1ISaveHandler;
            $par2Str.$modCount = $par2Str.$modCount + 1 | 0;
        }
        var$12 = nms_World_calculateSkylightSubtracted($this, 1.0);
        if (var$12 != $this.$skylightSubtracted)
            $this.$skylightSubtracted = var$12;
        if ($this.$worldInfo.$isRaining()) {
            $this.$rainingStrength = 1.0;
            if ($this.$worldInfo.$isThundering())
                $this.$thunderingStrength = 1.0;
        }
        return;
    case 4:
        nms_WorldServer_initialize($this, $par3WorldSettings);
        if ($rt_suspending()) {
            break main;
        }
        $this.$worldInfo.$setServerInitialized(1);
        $par1ISaveHandler = $this.$mapStorage;
        $par3WorldSettings = new nms_World$_init_$lambda$_3_0;
        $par2Str = $rt_s(1662);
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ISaveHandler, $par2Str, $par3WorldSettings, $par4WorldProvider, $var7, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_World_getFirstUncoveredBlock = ($this, $par1, $par2) => {
    let $var3, $var3_0, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var3_0 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 63;
        $var3_0 = $var3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $var3_0, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 ? 0 : 1) {
            $ptr = 2;
            continue main;
        }
        $var3 = $var3_0;
        $var3_0 = $var3 + 1 | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, $var3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, $var3_0, var$5, $ptr);
},
nms_World_getBlockId = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par3 >= (-30000000) && $par1 < 30000000 && $par3 < 30000000) {
            if ($par2 < 0)
                return 0;
            if ($par2 >= 256)
                return 0;
            var$4 = $par1 >> 4;
            var$5 = $par3 >> 4;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_World_getChunkFromChunkCoords($this, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return var$6.$getBlockID($par1 & 15, $par2, $par3 & 15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, $ptr);
},
nms_World_isAirBlock = ($this, $par1, $par2, $par3) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $ptr);
},
nms_World_blockHasTileEntity = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        return var$5[$var4] !== null && var$5[$var4].$isBlockContainer ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, $ptr);
},
nms_World_blockGetRenderType = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        return var$5[$var4] === null ? (-1) : var$5[$var4].$getRenderType();
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, $ptr);
},
nms_World_blockExists = ($this, $par1, $par2, $par3) => {
    return $par2 >= 0 && $par2 < 256 ? nms_World_chunkExists($this, $par1 >> 4, $par3 >> 4) : 0;
},
nms_World_doChunksNearChunkExist = ($this, $par1, $par2, $par3, $par4) => {
    return nms_World_checkChunksExist($this, $par1 - $par4 | 0, $par2 - $par4 | 0, $par3 - $par4 | 0, $par1 + $par4 | 0, $par2 + $par4 | 0, $par3 + $par4 | 0);
},
nms_World_checkChunksExist = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8;
    if ($par5 >= 0 && $par2 < 256) {
        $var7 = $par1 >> 4;
        $par1 = $par3 >> 4;
        $par2 = $par4 >> 4;
        $par3 = $par6 >> 4;
        while ($var7 <= $par2) {
            $var8 = $par1;
            while ($var8 <= $par3) {
                if (!nms_World_chunkExists($this, $var7, $var8))
                    return 0;
                $var8 = $var8 + 1 | 0;
            }
            $var7 = $var7 + 1 | 0;
        }
        return 1;
    }
    return 0;
},
nms_World_chunkExists = ($this, $par1, $par2) => {
    let var$3, var$4, var$5;
    var$3 = $this.$chunkProvider.$loadedChunkHashMap;
    var$4 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
    $par1 = Long_lo(Long_xor(var$4, Long_shru(var$4, 32)));
    $par1 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
    $par1 = $par1 ^ ($par1 >>> 7 | 0) ^ ($par1 >>> 4 | 0);
    var$5 = var$3.$hashArray.data;
    var$3 = var$5[$par1 & (var$5.length - 1 | 0)];
    a: {
        while (true) {
            if (var$3 === null) {
                var$3 = null;
                break a;
            }
            if (Long_eq(var$3.$key1, var$4))
                break;
            var$3 = var$3.$nextEntry;
        }
    }
    return var$3 === null ? 0 : 1;
},
nms_World_getChunkFromBlockCoords = ($this, $par1, $par2) => {
    let var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1 >> 4;
        $par1 = $par2 >> 4;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getChunkFromChunkCoords($this, var$3, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, $ptr);
},
nms_World_getChunkFromChunkCoords = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$chunkProvider;
        var$4 = var$3.$loadedChunkHashMap;
        var$5 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
        var$6 = Long_lo(Long_xor(var$5, Long_shru(var$5, 32)));
        var$6 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        var$7 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
        var$8 = var$4.$hashArray.data;
        var$4 = var$8[var$7 & (var$8.length - 1 | 0)];
        a: {
            while (var$4 !== null) {
                if (Long_eq(var$4.$key1, var$5)) {
                    var$4 = var$4.$value4;
                    break a;
                }
                var$4 = var$4.$nextEntry;
            }
            var$4 = null;
        }
        b: {
            var$4 = var$4;
            if (var$4 === null) {
                if (var$3.$worldObj0.$findingSpawnPoint)
                    break b;
                if (var$3.$loadChunkOnProvideRequest)
                    break b;
                var$4 = var$3.$defaultEmptyChunk;
            }
            return var$4;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$3, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_World_setBlock = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var8, var$8, var$9, $var10, var$11, $var9, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par3 >= (-30000000) && $par1 < 30000000 && $par3 < 30000000) {
            if ($par2 < 0)
                return 0;
            if ($par2 >= 256)
                return 0;
            $var8 = $par1 >> 4;
            var$8 = $par3 >> 4;
            var$9 = $this.$chunkProvider;
            $var10 = var$9.$loadedChunkHashMap;
            var$11 = Long_or(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$8), Long_create(4294967295, 0)), 32));
            $var9 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
            $var9 = $var9 ^ ($var9 >>> 20 | 0) ^ ($var9 >>> 12 | 0);
            var$13 = $var9 ^ ($var9 >>> 7 | 0) ^ ($var9 >>> 4 | 0);
            var$14 = $var10.$hashArray.data;
            $var10 = var$14[var$13 & (var$14.length - 1 | 0)];
            a: {
                while ($var10 !== null) {
                    if (Long_eq($var10.$key1, var$11)) {
                        $var10 = $var10.$value4;
                        break a;
                    }
                    $var10 = $var10.$nextEntry;
                }
                $var10 = null;
            }
            b: {
                $var10 = $var10;
                if ($var10 === null) {
                    if (var$9.$worldObj0.$findingSpawnPoint)
                        break b;
                    if (var$9.$loadChunkOnProvideRequest)
                        break b;
                    $var10 = var$9.$defaultEmptyChunk;
                }
                $var8 = 0;
                var$8 = $par6 & 1;
                if (var$8)
                    $var8 = $var10.$getBlockID($par1 & 15, $par2, $par3 & 15);
                var$15 = $par1 & 15;
                $var9 = $par3 & 15;
                $ptr = 2;
                continue main;
            }
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$9, $var8, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $var8 = 0;
        var$8 = $par6 & 1;
        if (var$8)
            $var8 = $var10.$getBlockID($par1 & 15, $par2, $par3 & 15);
        var$15 = $par1 & 15;
        $var9 = $par3 & 15;
        $ptr = 2;
    case 2:
        $tmp = $var10.$setBlockIDWithMetadata(var$15, $par2, $var9, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($this.$provider.$hasNoSky) {
            $var10 = nms_EnumSkyBlock_Block;
            $ptr = 3;
            continue main;
        }
        $var10 = nms_EnumSkyBlock_Sky;
        $ptr = 4;
        continue main;
    case 3:
        c: {
            nms_World_updateLightByType($this, $var10, $par1, $par2, $par3);
            if ($rt_suspending()) {
                break main;
            }
            if ($var9) {
                if ($par6 & 2) {
                    if (!$this.$isRemote)
                        break c;
                    if (!($par6 & 4))
                        break c;
                }
                if (!$this.$isRemote && var$8) {
                    $ptr = 6;
                    continue main;
                }
            }
            return $var9;
        }
        $ptr = 5;
        continue main;
    case 4:
        nms_World_updateLightByType($this, $var10, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = nms_EnumSkyBlock_Block;
        $ptr = 3;
        continue main;
    case 5:
        nms_World_markBlockForUpdate($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$isRemote && var$8) {
            $ptr = 6;
            continue main;
        }
        return $var9;
    case 6:
        nms_World_notifyBlocksOfNeighborChange($this, $par1, $par2, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        $var10 = nms_Block_blocksList.data[$par4];
        if ($var10 !== null && $var10.$hasComparatorInputOverride()) {
            $ptr = 7;
            continue main;
        }
        return $var9;
    case 7:
        nms_World_func_96440_m($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return $var9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, $var8, var$8, var$9, $var10, var$11, $var9, var$13, var$14, var$15, $ptr);
},
nms_World_getBlockMaterial = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            nms_Material_$callClinit();
            var$5 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data[$var4].$blockMaterial;
        }
        return var$5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, $ptr);
},
nms_World_getBlockMetadata = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par3 >= (-30000000) && $par1 < 30000000 && $par3 < 30000000) {
            if ($par2 < 0)
                return 0;
            if ($par2 >= 256)
                return 0;
            var$4 = $par1 >> 4;
            var$5 = $par3 >> 4;
            var$6 = $this.$chunkProvider;
            var$7 = var$6.$loadedChunkHashMap;
            var$8 = Long_or(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32));
            var$9 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
            var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
            var$10 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
            var$11 = var$7.$hashArray.data;
            var$7 = var$11[var$10 & (var$11.length - 1 | 0)];
            a: {
                while (var$7 !== null) {
                    if (Long_eq(var$7.$key1, var$8)) {
                        var$7 = var$7.$value4;
                        break a;
                    }
                    var$7 = var$7.$nextEntry;
                }
                var$7 = null;
            }
            b: {
                var$7 = var$7;
                if (var$7 === null) {
                    if (var$6.$worldObj0.$findingSpawnPoint)
                        break b;
                    if (var$6.$loadChunkOnProvideRequest)
                        break b;
                    var$7 = var$6.$defaultEmptyChunk;
                }
                return var$7.$getBlockMetadata($par1 & 15, $par2, $par3 & 15);
            }
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$6, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7.$getBlockMetadata($par1 & 15, $par2, $par3 & 15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_World_setBlockMetadataWithNotify = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let $var7, $var8, var$8, $var11, var$10, $var9, $var10, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$10 = $thread.pop();$var11 = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par3 >= (-30000000) && $par1 < 30000000 && $par3 < 30000000) {
            if ($par2 < 0)
                return 0;
            if ($par2 >= 256)
                return 0;
            $var7 = $par1 >> 4;
            $var8 = $par3 >> 4;
            var$8 = $this.$chunkProvider;
            $var11 = var$8.$loadedChunkHashMap;
            var$10 = Long_or(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), 32));
            $var9 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
            $var9 = $var9 ^ ($var9 >>> 20 | 0) ^ ($var9 >>> 12 | 0);
            $var10 = $var9 ^ ($var9 >>> 7 | 0) ^ ($var9 >>> 4 | 0);
            var$13 = $var11.$hashArray.data;
            $var11 = var$13[$var10 & (var$13.length - 1 | 0)];
            a: {
                while ($var11 !== null) {
                    if (Long_eq($var11.$key1, var$10)) {
                        $var11 = $var11.$value4;
                        break a;
                    }
                    $var11 = $var11.$nextEntry;
                }
                $var11 = null;
            }
            b: {
                $var11 = $var11;
                if ($var11 === null) {
                    if (var$8.$worldObj0.$findingSpawnPoint)
                        break b;
                    if (var$8.$loadChunkOnProvideRequest)
                        break b;
                    $var11 = var$8.$defaultEmptyChunk;
                }
                $var7 = $par1 & 15;
                $var8 = $par3 & 15;
                $ptr = 1;
                continue main;
            }
            $ptr = 2;
            continue main;
        }
        return 0;
    case 1:
        c: {
            $tmp = $var11.$setBlockMetadata($var7, $par2, $var8, $par4);
            if ($rt_suspending()) {
                break main;
            }
            $var9 = $tmp;
            if ($var9) {
                $var10 = $var11.$getBlockID($var7, $par2, $var8);
                if ($par5 & 2) {
                    if (!$this.$isRemote)
                        break c;
                    if (!($par5 & 4))
                        break c;
                }
                if (!$this.$isRemote && $par5 & 1) {
                    $ptr = 4;
                    continue main;
                }
            }
            return $var9;
        }
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$8, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var7 = $par1 & 15;
        $var8 = $par3 & 15;
        $ptr = 1;
        continue main;
    case 3:
        nms_World_markBlockForUpdate($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$isRemote && $par5 & 1) {
            $ptr = 4;
            continue main;
        }
        return $var9;
    case 4:
        nms_World_notifyBlocksOfNeighborChange($this, $par1, $par2, $par3, $var10);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        $var11 = nms_Block_blocksList.data[$var10];
        if ($var11 !== null && $var11.$hasComparatorInputOverride()) {
            $ptr = 5;
            continue main;
        }
        return $var9;
    case 5:
        nms_World_func_96440_m($this, $par1, $par2, $par3, $var10);
        if ($rt_suspending()) {
            break main;
        }
        return $var9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $var7, $var8, var$8, $var11, var$10, $var9, $var10, var$13, $ptr);
},
nms_World_setBlockToAir = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 0;
        var$5 = 0;
        var$6 = 3;
        $ptr = 1;
    case 1:
        $tmp = nms_World_setBlock($this, $par1, $par2, $par3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, $ptr);
},
nms_World_destroyBlock = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 <= 0)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$7 = 2001;
        var$8 = $var5 + ($var6 << 12) | 0;
        var$9 = null;
        $ptr = 3;
    case 3:
        nms_World_playAuxSFXAtEntity($this, var$9, var$7, $par1, $par2, $par3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par4) {
            $var6 = 0;
            $par4 = 0;
            $var5 = 3;
            $ptr = 4;
            continue main;
        }
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data[$var5];
        $par4 = 0;
        var$10 = 1.0;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_setBlock($this, $par1, $par2, $par3, $var6, $par4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    case 5:
        var$9.$dropBlockAsItemWithChance($this, $par1, $par2, $par3, $var6, var$10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        $par4 = 0;
        $var5 = 3;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, $var6, var$7, var$8, var$9, var$10, $ptr);
},
nms_World_setBlock0 = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = 0;
        var$6 = 3;
        $ptr = 1;
    case 1:
        $tmp = nms_World_setBlock($this, $par1, $par2, $par3, $par4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, $ptr);
},
nms_World_markBlockForUpdate = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 0;
        var$5 = $par1 >> 4;
        var$6 = $par3 >> 4;
        var$7 = $par1 & 15;
        $par1 = $par3 & 15;
        var$8 = $this.$worldAccesses;
        $par3 = $rt_compare($var4, var$8.$size0);
        if ($par3 >= 0)
            return;
        if ($var4 >= 0 && $par3 < 0) {
            var$8 = var$8.$array.data[$var4].$theWorldServer.$thePlayerManager0;
            $par3 = 0;
            $ptr = 1;
            continue main;
        }
        var$8 = new jl_IndexOutOfBoundsException;
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        $rt_throw(var$8);
    case 1:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher(var$8, var$5, var$6, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 !== null)
            nms_PlayerInstance_flagChunkForUpdate(var$8, var$7, $par2, $par1);
        $var4 = $var4 + 1 | 0;
        var$8 = $this.$worldAccesses;
        $par3 = $rt_compare($var4, var$8.$size0);
        if ($par3 >= 0)
            return;
        if ($var4 >= 0 && $par3 < 0) {
            var$8 = var$8.$array.data[$var4].$theWorldServer.$thePlayerManager0;
            $par3 = 0;
            continue main;
        }
        var$8 = new jl_IndexOutOfBoundsException;
        var$8.$suppressionEnabled = 1;
        var$8.$writableStackTrace = 1;
        $rt_throw(var$8);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, var$6, var$7, var$8, $ptr);
},
nms_World_notifyBlockChange = ($this, $par1, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_World_notifyBlocksOfNeighborChange($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $ptr);
},
nms_World_markBlocksDirtyVertical = ($this, $par1, $par2, $par3, $var5) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3 <= $var5) {
            var$5 = $par3;
            $par3 = $var5;
            $var5 = var$5;
        }
        if (!$this.$provider.$hasNoSky && $var5 <= $par3) {
            var$6 = nms_EnumSkyBlock_Sky;
            $ptr = 1;
            continue main;
        }
        $par1 = 0;
        a: {
            while (true) {
                $par2 = $rt_compare($par1, $this.$worldAccesses.$size0);
                if ($par2 >= 0)
                    break;
                if ($par1 < 0)
                    break a;
                if ($par2 >= 0)
                    break a;
                $par1 = $par1 + 1 | 0;
            }
            return;
        }
        var$6 = new jl_IndexOutOfBoundsException;
        var$6.$suppressionEnabled = 1;
        var$6.$writableStackTrace = 1;
        $rt_throw(var$6);
    case 1:
        nms_World_updateLightByType($this, var$6, $par1, $var5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 > $par3) {
            $par1 = 0;
            b: {
                while (true) {
                    $par2 = $rt_compare($par1, $this.$worldAccesses.$size0);
                    if ($par2 >= 0)
                        break;
                    if ($par1 < 0)
                        break b;
                    if ($par2 >= 0)
                        break b;
                    $par1 = $par1 + 1 | 0;
                }
                return;
            }
            var$6 = new jl_IndexOutOfBoundsException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        var$6 = nms_EnumSkyBlock_Sky;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var5, var$5, var$6, $ptr);
},
nms_World_markBlockRangeForRenderUpdate = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8;
    $var7 = 0;
    a: {
        while (true) {
            $par1 = $rt_compare($var7, $this.$worldAccesses.$size0);
            if ($par1 >= 0)
                break;
            if ($var7 < 0)
                break a;
            if ($par1 >= 0)
                break a;
            $var7 = $var7 + 1 | 0;
        }
        return;
    }
    var$8 = new jl_IndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
nms_World_notifyBlocksOfNeighborChange = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $par1 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 1;
            continue main;
        }
        var$5 = $par1 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 2;
            continue main;
        }
        var$5 = $par2 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId($this, var$5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 !== null) {
            $ptr = 3;
            continue main;
        }
        var$5 = $par1 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 2;
            continue main;
        }
        var$5 = $par2 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($this, var$5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 !== null) {
            $ptr = 5;
            continue main;
        }
        var$5 = $par2 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 3:
        var$7.$onNeighborBlockChange($this, var$5, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par1 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 2;
            continue main;
        }
        var$5 = $par2 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($this, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 !== null) {
            $ptr = 7;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 5:
        var$7.$onNeighborBlockChange($this, var$5, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($this, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 !== null) {
            $ptr = 9;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 7:
        var$7.$onNeighborBlockChange($this, $par1, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2 + 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 !== null) {
            $ptr = 11;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 9:
        var$7.$onNeighborBlockChange($this, $par1, var$5, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par3 - 1 | 0;
        if (!$this.$isRemote) {
            $ptr = 8;
            continue main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$5];
        if (var$7 === null)
            return;
        $ptr = 12;
        continue main;
    case 11:
        var$7.$onNeighborBlockChange($this, $par1, $par2, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        if ($this.$isRemote)
            return;
        $ptr = 10;
        continue main;
    case 12:
        var$7.$onNeighborBlockChange($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, $ptr);
},
nms_World_notifyBlocksOfNeighborChange0 = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par5 != 4) {
            var$6 = $par1 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 1;
                continue main;
            }
        }
        if ($par5 != 5) {
            var$6 = $par1 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 2;
                continue main;
            }
        }
        if ($par5) {
            var$6 = $par2 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 4;
                continue main;
            }
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($this, var$6, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 3;
            continue main;
        }
        if ($par5 != 5) {
            var$6 = $par1 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 2;
                continue main;
            }
        }
        if ($par5) {
            var$6 = $par2 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 4;
                continue main;
            }
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId($this, var$6, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 5;
            continue main;
        }
        if ($par5) {
            var$6 = $par2 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 4;
                continue main;
            }
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 3:
        var$8.$onNeighborBlockChange($this, var$6, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 != 5) {
            var$6 = $par1 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 2;
                continue main;
            }
        }
        if ($par5) {
            var$6 = $par2 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 4;
                continue main;
            }
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 4:
        $tmp = nms_World_getBlockId($this, $par1, var$6, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 7;
            continue main;
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 5:
        var$8.$onNeighborBlockChange($this, var$6, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5) {
            var$6 = $par2 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 4;
                continue main;
            }
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 6:
        $tmp = nms_World_getBlockId($this, $par1, var$6, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 9;
            continue main;
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 7:
        var$8.$onNeighborBlockChange($this, $par1, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 != 1) {
            var$6 = $par2 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 6;
                continue main;
            }
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 8:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 11;
            continue main;
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 9:
        var$8.$onNeighborBlockChange($this, $par1, var$6, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 != 2) {
            var$6 = $par3 - 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 8;
                continue main;
            }
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 10:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[$par5];
        if (var$8 === null)
            return;
        $ptr = 12;
        continue main;
    case 11:
        var$8.$onNeighborBlockChange($this, $par1, $par2, var$6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        if ($par5 != 3) {
            $par3 = $par3 + 1 | 0;
            if (!$this.$isRemote) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 12:
        var$8.$onNeighborBlockChange($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, var$6, var$7, var$8, $ptr);
},
nms_World_notifyBlockOfNeighborChange = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isRemote)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        $var6 = nms_Block_blocksList.data[$var5];
        if ($var6 === null)
            return;
        $ptr = 2;
    case 2:
        $var6.$onNeighborBlockChange($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, $var6, $ptr);
},
nms_World_canBlockSeeTheSky = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par1 >> 4;
        var$5 = $par3 >> 4;
        var$6 = $this.$chunkProvider;
        var$7 = var$6.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32));
        var$9 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
        var$10 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
        var$11 = var$7.$hashArray.data;
        var$7 = var$11[var$10 & (var$11.length - 1 | 0)];
        a: {
            while (var$7 !== null) {
                if (Long_eq(var$7.$key1, var$8)) {
                    var$7 = var$7.$value4;
                    break a;
                }
                var$7 = var$7.$nextEntry;
            }
            var$7 = null;
        }
        b: {
            var$7 = var$7;
            if (var$7 === null) {
                if (var$6.$worldObj0.$findingSpawnPoint)
                    break b;
                if (var$6.$loadChunkOnProvideRequest)
                    break b;
                var$7 = var$6.$defaultEmptyChunk;
            }
            return var$7.$canBlockSeeTheSky($par1 & 15, $par2, $par3 & 15);
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$6, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7.$canBlockSeeTheSky($par1 & 15, $par2, $par3 & 15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_World_getFullBlockLightValue = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2 < 0)
            return 0;
        if ($par2 >= 256)
            $par2 = 255;
        var$4 = $par1 >> 4;
        var$5 = $par3 >> 4;
        var$6 = $this.$chunkProvider;
        var$7 = var$6.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32));
        var$9 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
        var$10 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
        var$11 = var$7.$hashArray.data;
        var$7 = var$11[var$10 & (var$11.length - 1 | 0)];
        a: {
            while (var$7 !== null) {
                if (Long_eq(var$7.$key1, var$8)) {
                    var$7 = var$7.$value4;
                    break a;
                }
                var$7 = var$7.$nextEntry;
            }
            var$7 = null;
        }
        b: {
            var$7 = var$7;
            if (var$7 === null) {
                if (var$6.$worldObj0.$findingSpawnPoint)
                    break b;
                if (var$6.$loadChunkOnProvideRequest)
                    break b;
                var$7 = var$6.$defaultEmptyChunk;
            }
            return var$7.$getBlockLightValue($par1 & 15, $par2, $par3 & 15, 0);
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$6, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7.$getBlockLightValue($par1 & 15, $par2, $par3 & 15, 0);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_World_getBlockLightValue = ($this, $par1, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do($this, $par1, $par2, $par3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $ptr);
},
nms_World_getBlockLightValue_do = ($this, $par1, $par2, $par3, $par4) => {
    let $var6, $var7, var$7, var$8, var$9, $var8, $var9, var$12, $var5, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$var5 = $thread.pop();var$12 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par3 >= (-30000000) && $par1 < 30000000 && $par3 < 30000000) {
            if ($par4) {
                $ptr = 1;
                continue main;
            }
            if ($par2 < 0)
                return 0;
            if ($par2 >= 256)
                $par2 = 255;
            $var6 = $par1 >> 4;
            $var7 = $par3 >> 4;
            var$7 = $this.$chunkProvider;
            var$8 = var$7.$loadedChunkHashMap;
            var$9 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), 32));
            $par4 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
            $var8 = $par4 ^ ($par4 >>> 20 | 0) ^ ($par4 >>> 12 | 0);
            $var9 = $var8 ^ ($var8 >>> 7 | 0) ^ ($var8 >>> 4 | 0);
            var$12 = var$8.$hashArray.data;
            var$8 = var$12[$var9 & (var$12.length - 1 | 0)];
            a: {
                while (var$8 !== null) {
                    if (Long_eq(var$8.$key1, var$9)) {
                        var$8 = var$8.$value4;
                        break a;
                    }
                    var$8 = var$8.$nextEntry;
                }
                var$8 = null;
            }
            b: {
                var$8 = var$8;
                if (var$8 === null) {
                    if (var$7.$worldObj0.$findingSpawnPoint)
                        break b;
                    if (var$7.$loadChunkOnProvideRequest)
                        break b;
                    var$8 = var$7.$defaultEmptyChunk;
                }
                return var$8.$getBlockLightValue($par1 & 15, $par2, $par3 & 15, $this.$skylightSubtracted);
            }
            $ptr = 7;
            continue main;
        }
        return 15;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        if (nms_Block_useNeighborBrightness.data[$var5]) {
            $par4 = $par2 + 1 | 0;
            $var6 = 0;
            $ptr = 2;
            continue main;
        }
        if ($par2 < 0)
            return 0;
        if ($par2 >= 256)
            $par2 = 255;
        $var6 = $par1 >> 4;
        $var7 = $par3 >> 4;
        var$7 = $this.$chunkProvider;
        var$8 = var$7.$loadedChunkHashMap;
        var$9 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), 32));
        $par4 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
        $var8 = $par4 ^ ($par4 >>> 20 | 0) ^ ($par4 >>> 12 | 0);
        $var9 = $var8 ^ ($var8 >>> 7 | 0) ^ ($var8 >>> 4 | 0);
        var$12 = var$8.$hashArray.data;
        var$8 = var$12[$var9 & (var$12.length - 1 | 0)];
        c: {
            while (var$8 !== null) {
                if (Long_eq(var$8.$key1, var$9)) {
                    var$8 = var$8.$value4;
                    break c;
                }
                var$8 = var$8.$nextEntry;
            }
            var$8 = null;
        }
        d: {
            var$8 = var$8;
            if (var$8 === null) {
                if (var$7.$worldObj0.$findingSpawnPoint)
                    break d;
                if (var$7.$loadChunkOnProvideRequest)
                    break d;
                var$8 = var$7.$defaultEmptyChunk;
            }
            return var$8.$getBlockLightValue($par1 & 15, $par2, $par3 & 15, $this.$skylightSubtracted);
        }
        $ptr = 7;
        continue main;
    case 2:
        $tmp = nms_World_getBlockLightValue_do($this, $par1, $par4, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $par4 = $par1 + 1 | 0;
        $var7 = 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockLightValue_do($this, $par4, $par2, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $par4 = $par1 - 1 | 0;
        $var8 = 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockLightValue_do($this, $par4, $par2, $par3, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $par4 = $par3 + 1 | 0;
        $var9 = 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockLightValue_do($this, $par1, $par2, $par4, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $par3 = $par3 - 1 | 0;
        $par4 = 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockLightValue_do($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var7 <= $var6)
            $var7 = $var6;
        if ($var8 <= $var7)
            $var8 = $var7;
        if ($var9 <= $var8)
            $var9 = $var8;
        if ($var10 <= $var9)
            $var10 = $var9;
        return $var10;
    case 7:
        $tmp = nms_ChunkProviderServer_loadChunk(var$7, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$8.$getBlockLightValue($par1 & 15, $par2, $par3 & 15, $this.$skylightSubtracted);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var6, $var7, var$7, var$8, var$9, $var8, $var9, var$12, $var5, $var10, $ptr);
},
nms_World_getHeightValue = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par2 >= (-30000000) && $par1 < 30000000 && $par2 < 30000000) {
            var$3 = $par1 >> 4;
            var$4 = $par2 >> 4;
            var$5 = $this.$chunkProvider;
            var$6 = var$5.$loadedChunkHashMap;
            var$7 = Long_or(Long_and(Long_fromInt(var$3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), 32));
            var$8 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
            var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
            var$9 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
            var$10 = var$6.$hashArray.data;
            var$11 = var$9 & (var$10.length - 1 | 0);
            var$6 = var$10[var$11];
            a: {
                while (true) {
                    if (var$6 === null) {
                        var$6 = null;
                        break a;
                    }
                    if (Long_eq(var$6.$key1, var$7))
                        break;
                    var$6 = var$6.$nextEntry;
                }
            }
            if (!(var$6 === null ? 0 : 1))
                return 0;
            var$6 = var$10[var$11];
            b: {
                while (var$6 !== null) {
                    if (Long_eq(var$6.$key1, var$7)) {
                        var$6 = var$6.$value4;
                        break b;
                    }
                    var$6 = var$6.$nextEntry;
                }
                var$6 = null;
            }
            c: {
                var$6 = var$6;
                if (var$6 === null) {
                    if (var$5.$worldObj0.$findingSpawnPoint)
                        break c;
                    if (var$5.$loadChunkOnProvideRequest)
                        break c;
                    var$6 = var$5.$defaultEmptyChunk;
                }
                return var$6.$getHeightValue($par1 & 15, $par2 & 15);
            }
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return var$6.$getHeightValue($par1 & 15, $par2 & 15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_World_getChunkHeightMapMinimum = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par2 >= (-30000000) && $par1 < 30000000 && $par2 < 30000000) {
            var$3 = $par1 >> 4;
            $par1 = $par2 >> 4;
            var$4 = $this.$chunkProvider;
            var$5 = var$4.$loadedChunkHashMap;
            var$6 = Long_or(Long_and(Long_fromInt(var$3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), 32));
            $par2 = Long_lo(Long_xor(var$6, Long_shru(var$6, 32)));
            $par2 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
            var$7 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
            var$8 = var$5.$hashArray.data;
            var$9 = var$7 & (var$8.length - 1 | 0);
            var$5 = var$8[var$9];
            a: {
                while (true) {
                    if (var$5 === null) {
                        var$5 = null;
                        break a;
                    }
                    if (Long_eq(var$5.$key1, var$6))
                        break;
                    var$5 = var$5.$nextEntry;
                }
            }
            if (!(var$5 === null ? 0 : 1))
                return 0;
            var$5 = var$8[var$9];
            b: {
                while (var$5 !== null) {
                    if (Long_eq(var$5.$key1, var$6)) {
                        var$5 = var$5.$value4;
                        break b;
                    }
                    var$5 = var$5.$nextEntry;
                }
                var$5 = null;
            }
            c: {
                var$5 = var$5;
                if (var$5 === null) {
                    if (var$4.$worldObj0.$findingSpawnPoint)
                        break c;
                    if (var$4.$loadChunkOnProvideRequest)
                        break c;
                    var$5 = var$4.$defaultEmptyChunk;
                }
                return var$5.$heightMapMinimum;
            }
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$4, var$3, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5.$heightMapMinimum;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_World_getSavedLightValue = ($this, $par1EnumSkyBlock, $par2, $par3, $par4) => {
    let $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1EnumSkyBlock = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par3 < 0)
            $par3 = 0;
        if ($par3 >= 256)
            $par3 = 255;
        if ($par2 >= (-30000000) && $par4 >= (-30000000) && $par2 < 30000000 && $par4 < 30000000) {
            $var5 = $par2 >> 4;
            $var6 = $par4 >> 4;
            var$7 = $this.$chunkProvider;
            var$8 = var$7.$loadedChunkHashMap;
            var$9 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), 32));
            var$10 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
            var$10 = var$10 ^ (var$10 >>> 20 | 0) ^ (var$10 >>> 12 | 0);
            var$10 = var$10 ^ (var$10 >>> 7 | 0) ^ (var$10 >>> 4 | 0);
            var$11 = var$8.$hashArray.data;
            var$12 = var$10 & (var$11.length - 1 | 0);
            var$8 = var$11[var$12];
            a: {
                while (true) {
                    if (var$8 === null) {
                        var$8 = null;
                        break a;
                    }
                    if (Long_eq(var$8.$key1, var$9))
                        break;
                    var$8 = var$8.$nextEntry;
                }
            }
            if (!(var$8 === null ? 0 : 1))
                return $par1EnumSkyBlock.$defaultLightValue;
            var$8 = var$11[var$12];
            b: {
                while (var$8 !== null) {
                    if (Long_eq(var$8.$key1, var$9)) {
                        var$8 = var$8.$value4;
                        break b;
                    }
                    var$8 = var$8.$nextEntry;
                }
                var$8 = null;
            }
            c: {
                var$8 = var$8;
                if (var$8 === null) {
                    if (var$7.$worldObj0.$findingSpawnPoint)
                        break c;
                    if (var$7.$loadChunkOnProvideRequest)
                        break c;
                    var$8 = var$7.$defaultEmptyChunk;
                }
                return var$8.$getSavedLightValue($par1EnumSkyBlock, $par2 & 15, $par3, $par4 & 15);
            }
            $ptr = 1;
            continue main;
        }
        return $par1EnumSkyBlock.$defaultLightValue;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$7, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$8.$getSavedLightValue($par1EnumSkyBlock, $par2 & 15, $par3, $par4 & 15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EnumSkyBlock, $par2, $par3, $par4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_World_setLightValue = ($this, $par1EnumSkyBlock, $par2, $par3, $par4, $par5) => {
    let var$6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1EnumSkyBlock = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                c: {
                    if ($par2 >= (-30000000) && $par4 >= (-30000000) && $par2 < 30000000 && $par4 < 30000000 && $par3 >= 0 && $par3 < 256) {
                        var$6 = $par2 >> 4;
                        $var7 = $par4 >> 4;
                        var$8 = $this.$chunkProvider;
                        var$9 = var$8.$loadedChunkHashMap;
                        var$10 = Long_or(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), 32));
                        var$11 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                        var$11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                        var$11 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                        var$12 = var$9.$hashArray.data;
                        var$13 = var$11 & (var$12.length - 1 | 0);
                        var$9 = var$12[var$13];
                        d: {
                            while (true) {
                                if (var$9 === null) {
                                    var$9 = null;
                                    break d;
                                }
                                if (Long_eq(var$9.$key1, var$10))
                                    break;
                                var$9 = var$9.$nextEntry;
                            }
                        }
                        if (var$9 === null ? 0 : 1) {
                            var$9 = var$12[var$13];
                            e: {
                                while (var$9 !== null) {
                                    if (Long_eq(var$9.$key1, var$10)) {
                                        var$9 = var$9.$value4;
                                        break e;
                                    }
                                    var$9 = var$9.$nextEntry;
                                }
                                var$9 = null;
                            }
                            var$9 = var$9;
                            if (var$9 === null) {
                                if (var$8.$worldObj0.$findingSpawnPoint)
                                    break a;
                                if (var$8.$loadChunkOnProvideRequest)
                                    break a;
                                var$9 = var$8.$defaultEmptyChunk;
                            }
                            var$9.$setLightValue0($par1EnumSkyBlock, $par2 & 15, $par3, $par4 & 15, $par5);
                            $var7 = 0;
                            while (true) {
                                $par2 = $rt_compare($var7, $this.$worldAccesses.$size0);
                                if ($par2 >= 0)
                                    break c;
                                if ($var7 < 0)
                                    break b;
                                if ($par2 >= 0)
                                    break b;
                                $var7 = $var7 + 1 | 0;
                            }
                        }
                    }
                }
                return;
            }
            $par1EnumSkyBlock = new jl_IndexOutOfBoundsException;
            $par1EnumSkyBlock.$suppressionEnabled = 1;
            $par1EnumSkyBlock.$writableStackTrace = 1;
            $rt_throw($par1EnumSkyBlock);
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$8, var$6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        var$9.$setLightValue0($par1EnumSkyBlock, $par2 & 15, $par3, $par4 & 15, $par5);
        $var7 = 0;
        a: {
            while (true) {
                $par2 = $rt_compare($var7, $this.$worldAccesses.$size0);
                if ($par2 >= 0)
                    break;
                if ($var7 < 0)
                    break a;
                if ($par2 >= 0)
                    break a;
                $var7 = $var7 + 1 | 0;
            }
            return;
        }
        $par1EnumSkyBlock = new jl_IndexOutOfBoundsException;
        $par1EnumSkyBlock.$suppressionEnabled = 1;
        $par1EnumSkyBlock.$writableStackTrace = 1;
        $rt_throw($par1EnumSkyBlock);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EnumSkyBlock, $par2, $par3, $par4, $par5, var$6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_World_markBlockForRenderUpdate = ($this, $par1, $par2, $par3) => {
    let $var4, var$5;
    $var4 = 0;
    a: {
        while (true) {
            $par1 = $rt_compare($var4, $this.$worldAccesses.$size0);
            if ($par1 >= 0)
                break;
            if ($var4 < 0)
                break a;
            if ($par1 >= 0)
                break a;
            $var4 = $var4 + 1 | 0;
        }
        return;
    }
    var$5 = new jl_IndexOutOfBoundsException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    $rt_throw(var$5);
},
nms_World_getLightBrightness = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$provider.$lightBrightnessTable.data;
        var$5 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do($this, $par1, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return var$4[$par1];
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $ptr);
},
nms_World_isDaytime = $this => {
    return $this.$skylightSubtracted >= 4 ? 0 : 1;
},
nms_World_clip0 = ($this, $par1Vec3, $par2Vec3) => {
    let var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2Vec3 = $thread.pop();$par1Vec3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = 0;
        var$4 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_rayTraceBlocks_do_do($this, $par1Vec3, $par2Vec3, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1Vec3 = $tmp;
        return $par1Vec3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Vec3, $par2Vec3, var$3, var$4, $ptr);
},
nms_World_clip = ($this, $par1Vec3, $par2Vec3, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2Vec3 = $thread.pop();$par1Vec3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_rayTraceBlocks_do_do($this, $par1Vec3, $par2Vec3, $par3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1Vec3 = $tmp;
        return $par1Vec3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Vec3, $par2Vec3, $par3, var$4, $ptr);
},
nms_World_rayTraceBlocks_do_do = ($this, $par1Vec3, $par2Vec3, $par3, $par4) => {
    let var$5, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var39, $var40, $var41, $var15, $var17, $var19, $var35, $var36, $var21, $var23, $var25, var$26, $var27, var$28, $var29, var$30, $var31, $var42, $var34, $var14, $var37, $var38, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var38 = $thread.pop();$var37 = $thread.pop();$var14 = $thread.pop();$var34 = $thread.pop();$var42 = $thread.pop();$var31 = $thread.pop();var$30 = $thread.pop();$var29 = $thread.pop();var$28 = $thread.pop();$var27 = $thread.pop();var$26 = $thread.pop();$var25 = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();$var36 = $thread.pop();$var35 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var41 = $thread.pop();$var40 = $thread.pop();$var39
        = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Vec3 = $thread.pop();$par1Vec3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if (!(isNaN($par2Vec3.$xCoord) ? 1 : 0) && !(isNaN($par2Vec3.$yCoord) ? 1 : 0) && !(isNaN($par2Vec3.$zCoord) ? 1 : 0)) {
                var$5 = $par2Vec3.$xCoord;
                $var5 = var$5 | 0;
                if (var$5 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$5 = $par2Vec3.$yCoord;
                $var6 = var$5 | 0;
                if (var$5 < $var6)
                    $var6 = $var6 - 1 | 0;
                var$5 = $par2Vec3.$zCoord;
                $var7 = var$5 | 0;
                if (var$5 < $var7)
                    $var7 = $var7 - 1 | 0;
                var$5 = $par1Vec3.$xCoord;
                $var8 = var$5 | 0;
                if (var$5 < $var8)
                    $var8 = $var8 - 1 | 0;
                var$5 = $par1Vec3.$yCoord;
                $var9 = var$5 | 0;
                if (var$5 < $var9)
                    $var9 = $var9 - 1 | 0;
                var$5 = $par1Vec3.$zCoord;
                $var10 = var$5 | 0;
                if (var$5 < $var10)
                    $var10 = $var10 - 1 | 0;
                $ptr = 1;
                continue main;
            }
            return null;
        }
        return null;
    case 1:
        $tmp = nms_World_getBlockId($this, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($this, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        nms_Block_$callClinit();
        $var13 = nms_Block_blocksList.data[$var11];
        if ($par4 && $var13 !== null) {
            $ptr = 3;
            continue main;
        }
        if ($var11 > 0 && $var13.$canCollideCheck($var12, $par3)) {
            $ptr = 4;
            continue main;
        }
        $var11 = 200 + (-1) | 0;
        if (200 < 0)
            return null;
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if ($var8 == $var5 && $var9 == $var6 && $var10 == $var7)
                return null;
            $var39 = 1;
            $var40 = 1;
            $var41 = 1;
            $var15 = 999.0;
            $var17 = 999.0;
            $var19 = 999.0;
            $var35 = $rt_compare($var5, $var8);
            if ($var35 > 0)
                $var15 = $var8 + 1.0;
            else if ($var35 >= 0)
                $var39 = 0;
            else
                $var15 = $var8 + 0.0;
            $var36 = $rt_compare($var6, $var9);
            if ($var36 > 0)
                $var17 = $var9 + 1.0;
            else if ($var36 >= 0)
                $var40 = 0;
            else
                $var17 = $var9 + 0.0;
            $var8 = $rt_compare($var7, $var10);
            if ($var8 > 0)
                $var19 = $var10 + 1.0;
            else if ($var8 >= 0)
                $var41 = 0;
            else
                $var19 = $var10 + 0.0;
            $var21 = 999.0;
            $var23 = 999.0;
            $var25 = 999.0;
            var$26 = $par2Vec3.$xCoord;
            var$5 = $par1Vec3.$xCoord;
            $var27 = var$26 - var$5;
            var$26 = $par2Vec3.$yCoord;
            var$28 = $par1Vec3.$yCoord;
            $var29 = var$26 - var$28;
            var$26 = $par2Vec3.$zCoord;
            var$30 = $par1Vec3.$zCoord;
            $var31 = var$26 - var$30;
            if ($var39)
                $var21 = ($var15 - var$5) / $var27;
            if ($var40)
                $var23 = ($var17 - var$28) / $var29;
            if ($var41)
                $var25 = ($var19 - var$30) / $var31;
            if ($var21 < $var23 && $var21 < $var25) {
                $var42 = $var35 <= 0 ? 5 : 4;
                $par1Vec3.$xCoord = $var15;
                $par1Vec3.$yCoord = var$28 + $var29 * $var21;
                $par1Vec3.$zCoord = var$30 + $var31 * $var21;
            } else if ($var23 >= $var25) {
                $var42 = $var8 <= 0 ? 3 : 2;
                $par1Vec3.$xCoord = var$5 + $var27 * $var25;
                $par1Vec3.$yCoord = var$28 + $var29 * $var25;
                $par1Vec3.$zCoord = $var19;
            } else {
                $var42 = $var36 <= 0 ? 1 : 0;
                $par1Vec3.$xCoord = var$5 + $var27 * $var23;
                $par1Vec3.$yCoord = $var17;
                $par1Vec3.$zCoord = var$30 + $var31 * $var23;
            }
            $var34 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $par1Vec3.$xCoord, $par1Vec3.$yCoord, $par1Vec3.$zCoord);
            var$5 = $par1Vec3.$xCoord;
            $var8 = var$5 | 0;
            if (var$5 < $var8)
                $var8 = $var8 - 1 | 0;
            var$5 = $var8;
            $var34.$xCoord = var$5;
            $var8 = var$5 | 0;
            if ($var42 == 5) {
                $var8 = $var8 + (-1) | 0;
                $var34.$xCoord = var$5 + 1.0;
            }
            var$5 = $par1Vec3.$yCoord;
            $var9 = var$5 | 0;
            if (var$5 < $var9)
                $var9 = $var9 - 1 | 0;
            var$5 = $var9;
            $var34.$yCoord = var$5;
            $var9 = var$5 | 0;
            if ($var42 == 1) {
                $var9 = $var9 + (-1) | 0;
                $var34.$yCoord = var$5 + 1.0;
            }
            var$26 = $par1Vec3.$zCoord;
            $var35 = var$26 | 0;
            if (var$26 < $var35)
                $var35 = $var35 - 1 | 0;
            var$26 = $var35;
            $var34.$zCoord = var$26;
            $var10 = var$26 | 0;
            if ($var42 == 3) {
                $var10 = $var10 + (-1) | 0;
                $var34.$zCoord = var$26 + 1.0;
            }
            $ptr = 5;
            continue main;
        }
        return null;
    case 3:
        $tmp = $var13.$getCollisionBoundingBoxFromPool($this, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 !== null && $var11 > 0 && $var13.$canCollideCheck($var12, $par3)) {
            $ptr = 4;
            continue main;
        }
        $var11 = 200 + (-1) | 0;
        if (200 < 0)
            return null;
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if ($var8 == $var5 && $var9 == $var6 && $var10 == $var7)
                return null;
            $var39 = 1;
            $var40 = 1;
            $var41 = 1;
            $var15 = 999.0;
            $var17 = 999.0;
            $var19 = 999.0;
            $var35 = $rt_compare($var5, $var8);
            if ($var35 > 0)
                $var15 = $var8 + 1.0;
            else if ($var35 >= 0)
                $var39 = 0;
            else
                $var15 = $var8 + 0.0;
            $var36 = $rt_compare($var6, $var9);
            if ($var36 > 0)
                $var17 = $var9 + 1.0;
            else if ($var36 >= 0)
                $var40 = 0;
            else
                $var17 = $var9 + 0.0;
            $var8 = $rt_compare($var7, $var10);
            if ($var8 > 0)
                $var19 = $var10 + 1.0;
            else if ($var8 >= 0)
                $var41 = 0;
            else
                $var19 = $var10 + 0.0;
            $var21 = 999.0;
            $var23 = 999.0;
            $var25 = 999.0;
            var$26 = $par2Vec3.$xCoord;
            var$5 = $par1Vec3.$xCoord;
            $var27 = var$26 - var$5;
            var$26 = $par2Vec3.$yCoord;
            var$28 = $par1Vec3.$yCoord;
            $var29 = var$26 - var$28;
            var$26 = $par2Vec3.$zCoord;
            var$30 = $par1Vec3.$zCoord;
            $var31 = var$26 - var$30;
            if ($var39)
                $var21 = ($var15 - var$5) / $var27;
            if ($var40)
                $var23 = ($var17 - var$28) / $var29;
            if ($var41)
                $var25 = ($var19 - var$30) / $var31;
            if ($var21 < $var23 && $var21 < $var25) {
                $var42 = $var35 <= 0 ? 5 : 4;
                $par1Vec3.$xCoord = $var15;
                $par1Vec3.$yCoord = var$28 + $var29 * $var21;
                $par1Vec3.$zCoord = var$30 + $var31 * $var21;
            } else if ($var23 >= $var25) {
                $var42 = $var8 <= 0 ? 3 : 2;
                $par1Vec3.$xCoord = var$5 + $var27 * $var25;
                $par1Vec3.$yCoord = var$28 + $var29 * $var25;
                $par1Vec3.$zCoord = $var19;
            } else {
                $var42 = $var36 <= 0 ? 1 : 0;
                $par1Vec3.$xCoord = var$5 + $var27 * $var23;
                $par1Vec3.$yCoord = $var17;
                $par1Vec3.$zCoord = var$30 + $var31 * $var23;
            }
            $var34 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $par1Vec3.$xCoord, $par1Vec3.$yCoord, $par1Vec3.$zCoord);
            var$5 = $par1Vec3.$xCoord;
            $var8 = var$5 | 0;
            if (var$5 < $var8)
                $var8 = $var8 - 1 | 0;
            var$5 = $var8;
            $var34.$xCoord = var$5;
            $var8 = var$5 | 0;
            if ($var42 == 5) {
                $var8 = $var8 + (-1) | 0;
                $var34.$xCoord = var$5 + 1.0;
            }
            var$5 = $par1Vec3.$yCoord;
            $var9 = var$5 | 0;
            if (var$5 < $var9)
                $var9 = $var9 - 1 | 0;
            var$5 = $var9;
            $var34.$yCoord = var$5;
            $var9 = var$5 | 0;
            if ($var42 == 1) {
                $var9 = $var9 + (-1) | 0;
                $var34.$yCoord = var$5 + 1.0;
            }
            var$26 = $par1Vec3.$zCoord;
            $var35 = var$26 | 0;
            if (var$26 < $var35)
                $var35 = $var35 - 1 | 0;
            var$26 = $var35;
            $var34.$zCoord = var$26;
            $var10 = var$26 | 0;
            if ($var42 == 3) {
                $var10 = $var10 + (-1) | 0;
                $var34.$zCoord = var$26 + 1.0;
            }
            $ptr = 5;
            continue main;
        }
        return null;
    case 4:
        $tmp = $var13.$collisionRayTrace($this, $var8, $var9, $var10, $par1Vec3, $par2Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 !== null)
            return $var14;
        $var11 = 200 + (-1) | 0;
        if (200 < 0)
            return null;
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if ($var8 == $var5 && $var9 == $var6 && $var10 == $var7)
                return null;
            $var39 = 1;
            $var40 = 1;
            $var41 = 1;
            $var15 = 999.0;
            $var17 = 999.0;
            $var19 = 999.0;
            $var35 = $rt_compare($var5, $var8);
            if ($var35 > 0)
                $var15 = $var8 + 1.0;
            else if ($var35 >= 0)
                $var39 = 0;
            else
                $var15 = $var8 + 0.0;
            $var36 = $rt_compare($var6, $var9);
            if ($var36 > 0)
                $var17 = $var9 + 1.0;
            else if ($var36 >= 0)
                $var40 = 0;
            else
                $var17 = $var9 + 0.0;
            $var8 = $rt_compare($var7, $var10);
            if ($var8 > 0)
                $var19 = $var10 + 1.0;
            else if ($var8 >= 0)
                $var41 = 0;
            else
                $var19 = $var10 + 0.0;
            $var21 = 999.0;
            $var23 = 999.0;
            $var25 = 999.0;
            var$26 = $par2Vec3.$xCoord;
            var$5 = $par1Vec3.$xCoord;
            $var27 = var$26 - var$5;
            var$26 = $par2Vec3.$yCoord;
            var$28 = $par1Vec3.$yCoord;
            $var29 = var$26 - var$28;
            var$26 = $par2Vec3.$zCoord;
            var$30 = $par1Vec3.$zCoord;
            $var31 = var$26 - var$30;
            if ($var39)
                $var21 = ($var15 - var$5) / $var27;
            if ($var40)
                $var23 = ($var17 - var$28) / $var29;
            if ($var41)
                $var25 = ($var19 - var$30) / $var31;
            if ($var21 < $var23 && $var21 < $var25) {
                $var42 = $var35 <= 0 ? 5 : 4;
                $par1Vec3.$xCoord = $var15;
                $par1Vec3.$yCoord = var$28 + $var29 * $var21;
                $par1Vec3.$zCoord = var$30 + $var31 * $var21;
            } else if ($var23 >= $var25) {
                $var42 = $var8 <= 0 ? 3 : 2;
                $par1Vec3.$xCoord = var$5 + $var27 * $var25;
                $par1Vec3.$yCoord = var$28 + $var29 * $var25;
                $par1Vec3.$zCoord = $var19;
            } else {
                $var42 = $var36 <= 0 ? 1 : 0;
                $par1Vec3.$xCoord = var$5 + $var27 * $var23;
                $par1Vec3.$yCoord = $var17;
                $par1Vec3.$zCoord = var$30 + $var31 * $var23;
            }
            $var34 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $par1Vec3.$xCoord, $par1Vec3.$yCoord, $par1Vec3.$zCoord);
            var$5 = $par1Vec3.$xCoord;
            $var8 = var$5 | 0;
            if (var$5 < $var8)
                $var8 = $var8 - 1 | 0;
            var$5 = $var8;
            $var34.$xCoord = var$5;
            $var8 = var$5 | 0;
            if ($var42 == 5) {
                $var8 = $var8 + (-1) | 0;
                $var34.$xCoord = var$5 + 1.0;
            }
            var$5 = $par1Vec3.$yCoord;
            $var9 = var$5 | 0;
            if (var$5 < $var9)
                $var9 = $var9 - 1 | 0;
            var$5 = $var9;
            $var34.$yCoord = var$5;
            $var9 = var$5 | 0;
            if ($var42 == 1) {
                $var9 = $var9 + (-1) | 0;
                $var34.$yCoord = var$5 + 1.0;
            }
            var$26 = $par1Vec3.$zCoord;
            $var35 = var$26 | 0;
            if (var$26 < $var35)
                $var35 = $var35 - 1 | 0;
            var$26 = $var35;
            $var34.$zCoord = var$26;
            $var10 = var$26 | 0;
            if ($var42 == 3) {
                $var10 = $var10 + (-1) | 0;
                $var34.$zCoord = var$26 + 1.0;
            }
            $ptr = 5;
            continue main;
        }
        return null;
    case 5:
        $tmp = nms_World_getBlockId($this, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var35 = $tmp;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata($this, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var36 = $tmp;
        $var37 = nms_Block_blocksList.data[$var35];
        if ($par4 && $var37 !== null) {
            $ptr = 7;
            continue main;
        }
        if ($var35 > 0 && $var37.$canCollideCheck($var36, $par3)) {
            $ptr = 8;
            continue main;
        }
        $var12 = $var11;
        $var11 = $var12 + (-1) | 0;
        if ($var12 < 0)
            return null;
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if ($var8 == $var5 && $var9 == $var6 && $var10 == $var7)
                return null;
            $var39 = 1;
            $var40 = 1;
            $var41 = 1;
            $var15 = 999.0;
            $var17 = 999.0;
            $var19 = 999.0;
            $var35 = $rt_compare($var5, $var8);
            if ($var35 > 0)
                $var15 = $var8 + 1.0;
            else if ($var35 >= 0)
                $var39 = 0;
            else
                $var15 = $var8 + 0.0;
            $var36 = $rt_compare($var6, $var9);
            if ($var36 > 0)
                $var17 = $var9 + 1.0;
            else if ($var36 >= 0)
                $var40 = 0;
            else
                $var17 = $var9 + 0.0;
            $var8 = $rt_compare($var7, $var10);
            if ($var8 > 0)
                $var19 = $var10 + 1.0;
            else if ($var8 >= 0)
                $var41 = 0;
            else
                $var19 = $var10 + 0.0;
            $var21 = 999.0;
            $var23 = 999.0;
            $var25 = 999.0;
            var$26 = $par2Vec3.$xCoord;
            var$5 = $par1Vec3.$xCoord;
            $var27 = var$26 - var$5;
            var$26 = $par2Vec3.$yCoord;
            var$28 = $par1Vec3.$yCoord;
            $var29 = var$26 - var$28;
            var$26 = $par2Vec3.$zCoord;
            var$30 = $par1Vec3.$zCoord;
            $var31 = var$26 - var$30;
            if ($var39)
                $var21 = ($var15 - var$5) / $var27;
            if ($var40)
                $var23 = ($var17 - var$28) / $var29;
            if ($var41)
                $var25 = ($var19 - var$30) / $var31;
            if ($var21 < $var23 && $var21 < $var25) {
                $var42 = $var35 <= 0 ? 5 : 4;
                $par1Vec3.$xCoord = $var15;
                $par1Vec3.$yCoord = var$28 + $var29 * $var21;
                $par1Vec3.$zCoord = var$30 + $var31 * $var21;
            } else if ($var23 >= $var25) {
                $var42 = $var8 <= 0 ? 3 : 2;
                $par1Vec3.$xCoord = var$5 + $var27 * $var25;
                $par1Vec3.$yCoord = var$28 + $var29 * $var25;
                $par1Vec3.$zCoord = $var19;
            } else {
                $var42 = $var36 <= 0 ? 1 : 0;
                $par1Vec3.$xCoord = var$5 + $var27 * $var23;
                $par1Vec3.$yCoord = $var17;
                $par1Vec3.$zCoord = var$30 + $var31 * $var23;
            }
            $var34 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $par1Vec3.$xCoord, $par1Vec3.$yCoord, $par1Vec3.$zCoord);
            var$5 = $par1Vec3.$xCoord;
            $var8 = var$5 | 0;
            if (var$5 < $var8)
                $var8 = $var8 - 1 | 0;
            var$5 = $var8;
            $var34.$xCoord = var$5;
            $var8 = var$5 | 0;
            if ($var42 == 5) {
                $var8 = $var8 + (-1) | 0;
                $var34.$xCoord = var$5 + 1.0;
            }
            var$5 = $par1Vec3.$yCoord;
            $var9 = var$5 | 0;
            if (var$5 < $var9)
                $var9 = $var9 - 1 | 0;
            var$5 = $var9;
            $var34.$yCoord = var$5;
            $var9 = var$5 | 0;
            if ($var42 == 1) {
                $var9 = $var9 + (-1) | 0;
                $var34.$yCoord = var$5 + 1.0;
            }
            var$26 = $par1Vec3.$zCoord;
            $var35 = var$26 | 0;
            if (var$26 < $var35)
                $var35 = $var35 - 1 | 0;
            var$26 = $var35;
            $var34.$zCoord = var$26;
            $var10 = var$26 | 0;
            if ($var42 == 3) {
                $var10 = $var10 + (-1) | 0;
                $var34.$zCoord = var$26 + 1.0;
            }
            $ptr = 5;
            continue main;
        }
        return null;
    case 7:
        $tmp = $var37.$getCollisionBoundingBoxFromPool($this, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if ($var13 !== null && $var35 > 0 && $var37.$canCollideCheck($var36, $par3)) {
            $ptr = 8;
            continue main;
        }
        $var12 = $var11;
        $var11 = $var12 + (-1) | 0;
        if ($var12 < 0)
            return null;
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if ($var8 == $var5 && $var9 == $var6 && $var10 == $var7)
                return null;
            $var39 = 1;
            $var40 = 1;
            $var41 = 1;
            $var15 = 999.0;
            $var17 = 999.0;
            $var19 = 999.0;
            $var35 = $rt_compare($var5, $var8);
            if ($var35 > 0)
                $var15 = $var8 + 1.0;
            else if ($var35 >= 0)
                $var39 = 0;
            else
                $var15 = $var8 + 0.0;
            $var36 = $rt_compare($var6, $var9);
            if ($var36 > 0)
                $var17 = $var9 + 1.0;
            else if ($var36 >= 0)
                $var40 = 0;
            else
                $var17 = $var9 + 0.0;
            $var8 = $rt_compare($var7, $var10);
            if ($var8 > 0)
                $var19 = $var10 + 1.0;
            else if ($var8 >= 0)
                $var41 = 0;
            else
                $var19 = $var10 + 0.0;
            $var21 = 999.0;
            $var23 = 999.0;
            $var25 = 999.0;
            var$26 = $par2Vec3.$xCoord;
            var$5 = $par1Vec3.$xCoord;
            $var27 = var$26 - var$5;
            var$26 = $par2Vec3.$yCoord;
            var$28 = $par1Vec3.$yCoord;
            $var29 = var$26 - var$28;
            var$26 = $par2Vec3.$zCoord;
            var$30 = $par1Vec3.$zCoord;
            $var31 = var$26 - var$30;
            if ($var39)
                $var21 = ($var15 - var$5) / $var27;
            if ($var40)
                $var23 = ($var17 - var$28) / $var29;
            if ($var41)
                $var25 = ($var19 - var$30) / $var31;
            if ($var21 < $var23 && $var21 < $var25) {
                $var42 = $var35 <= 0 ? 5 : 4;
                $par1Vec3.$xCoord = $var15;
                $par1Vec3.$yCoord = var$28 + $var29 * $var21;
                $par1Vec3.$zCoord = var$30 + $var31 * $var21;
            } else if ($var23 >= $var25) {
                $var42 = $var8 <= 0 ? 3 : 2;
                $par1Vec3.$xCoord = var$5 + $var27 * $var25;
                $par1Vec3.$yCoord = var$28 + $var29 * $var25;
                $par1Vec3.$zCoord = $var19;
            } else {
                $var42 = $var36 <= 0 ? 1 : 0;
                $par1Vec3.$xCoord = var$5 + $var27 * $var23;
                $par1Vec3.$yCoord = $var17;
                $par1Vec3.$zCoord = var$30 + $var31 * $var23;
            }
            $var34 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $par1Vec3.$xCoord, $par1Vec3.$yCoord, $par1Vec3.$zCoord);
            var$5 = $par1Vec3.$xCoord;
            $var8 = var$5 | 0;
            if (var$5 < $var8)
                $var8 = $var8 - 1 | 0;
            var$5 = $var8;
            $var34.$xCoord = var$5;
            $var8 = var$5 | 0;
            if ($var42 == 5) {
                $var8 = $var8 + (-1) | 0;
                $var34.$xCoord = var$5 + 1.0;
            }
            var$5 = $par1Vec3.$yCoord;
            $var9 = var$5 | 0;
            if (var$5 < $var9)
                $var9 = $var9 - 1 | 0;
            var$5 = $var9;
            $var34.$yCoord = var$5;
            $var9 = var$5 | 0;
            if ($var42 == 1) {
                $var9 = $var9 + (-1) | 0;
                $var34.$yCoord = var$5 + 1.0;
            }
            var$26 = $par1Vec3.$zCoord;
            $var35 = var$26 | 0;
            if (var$26 < $var35)
                $var35 = $var35 - 1 | 0;
            var$26 = $var35;
            $var34.$zCoord = var$26;
            $var10 = var$26 | 0;
            if ($var42 == 3) {
                $var10 = $var10 + (-1) | 0;
                $var34.$zCoord = var$26 + 1.0;
            }
            $ptr = 5;
            continue main;
        }
        return null;
    case 8:
        $tmp = $var37.$collisionRayTrace($this, $var8, $var9, $var10, $par1Vec3, $par2Vec3);
        if ($rt_suspending()) {
            break main;
        }
        $var38 = $tmp;
        if ($var38 !== null)
            return $var38;
        $var12 = $var11;
        $var11 = $var12 + (-1) | 0;
        if ($var12 < 0)
            return null;
        if (!(isNaN($par1Vec3.$xCoord) ? 1 : 0) && !(isNaN($par1Vec3.$yCoord) ? 1 : 0) && !(isNaN($par1Vec3.$zCoord) ? 1 : 0)) {
            if ($var8 == $var5 && $var9 == $var6 && $var10 == $var7)
                return null;
            $var39 = 1;
            $var40 = 1;
            $var41 = 1;
            $var15 = 999.0;
            $var17 = 999.0;
            $var19 = 999.0;
            $var35 = $rt_compare($var5, $var8);
            if ($var35 > 0)
                $var15 = $var8 + 1.0;
            else if ($var35 >= 0)
                $var39 = 0;
            else
                $var15 = $var8 + 0.0;
            $var36 = $rt_compare($var6, $var9);
            if ($var36 > 0)
                $var17 = $var9 + 1.0;
            else if ($var36 >= 0)
                $var40 = 0;
            else
                $var17 = $var9 + 0.0;
            $var8 = $rt_compare($var7, $var10);
            if ($var8 > 0)
                $var19 = $var10 + 1.0;
            else if ($var8 >= 0)
                $var41 = 0;
            else
                $var19 = $var10 + 0.0;
            $var21 = 999.0;
            $var23 = 999.0;
            $var25 = 999.0;
            var$26 = $par2Vec3.$xCoord;
            var$5 = $par1Vec3.$xCoord;
            $var27 = var$26 - var$5;
            var$26 = $par2Vec3.$yCoord;
            var$28 = $par1Vec3.$yCoord;
            $var29 = var$26 - var$28;
            var$26 = $par2Vec3.$zCoord;
            var$30 = $par1Vec3.$zCoord;
            $var31 = var$26 - var$30;
            if ($var39)
                $var21 = ($var15 - var$5) / $var27;
            if ($var40)
                $var23 = ($var17 - var$28) / $var29;
            if ($var41)
                $var25 = ($var19 - var$30) / $var31;
            if ($var21 < $var23 && $var21 < $var25) {
                $var42 = $var35 <= 0 ? 5 : 4;
                $par1Vec3.$xCoord = $var15;
                $par1Vec3.$yCoord = var$28 + $var29 * $var21;
                $par1Vec3.$zCoord = var$30 + $var31 * $var21;
            } else if ($var23 >= $var25) {
                $var42 = $var8 <= 0 ? 3 : 2;
                $par1Vec3.$xCoord = var$5 + $var27 * $var25;
                $par1Vec3.$yCoord = var$28 + $var29 * $var25;
                $par1Vec3.$zCoord = $var19;
            } else {
                $var42 = $var36 <= 0 ? 1 : 0;
                $par1Vec3.$xCoord = var$5 + $var27 * $var23;
                $par1Vec3.$yCoord = $var17;
                $par1Vec3.$zCoord = var$30 + $var31 * $var23;
            }
            $var34 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $par1Vec3.$xCoord, $par1Vec3.$yCoord, $par1Vec3.$zCoord);
            var$5 = $par1Vec3.$xCoord;
            $var8 = var$5 | 0;
            if (var$5 < $var8)
                $var8 = $var8 - 1 | 0;
            var$5 = $var8;
            $var34.$xCoord = var$5;
            $var8 = var$5 | 0;
            if ($var42 == 5) {
                $var8 = $var8 + (-1) | 0;
                $var34.$xCoord = var$5 + 1.0;
            }
            var$5 = $par1Vec3.$yCoord;
            $var9 = var$5 | 0;
            if (var$5 < $var9)
                $var9 = $var9 - 1 | 0;
            var$5 = $var9;
            $var34.$yCoord = var$5;
            $var9 = var$5 | 0;
            if ($var42 == 1) {
                $var9 = $var9 + (-1) | 0;
                $var34.$yCoord = var$5 + 1.0;
            }
            var$26 = $par1Vec3.$zCoord;
            $var35 = var$26 | 0;
            if (var$26 < $var35)
                $var35 = $var35 - 1 | 0;
            var$26 = $var35;
            $var34.$zCoord = var$26;
            $var10 = var$26 | 0;
            if ($var42 == 3) {
                $var10 = $var10 + (-1) | 0;
                $var34.$zCoord = var$26 + 1.0;
            }
            $ptr = 5;
            continue main;
        }
        return null;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Vec3, $par2Vec3, $par3, $par4, var$5, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var39, $var40, $var41, $var15, $var17, $var19, $var35, $var36, $var21, $var23, $var25, var$26, $var27, var$28, $var29, var$30, $var31, $var42, $var34, $var14, $var37, $var38, $ptr);
},
nms_World_playSoundAtEntity = ($this, $par1Entity, $par2Str, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Str = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Entity !== null && $par2Str !== null) {
            $var5 = 0;
            var$6 = $rt_compare($par3, 1.0);
            var$7 = null;
            var$8 = 16.0 * $par3;
            var$9 = $this.$worldAccesses;
            var$10 = $rt_compare($var5, var$9.$size0);
            if (var$10 < 0) {
                if ($var5 >= 0 && var$10 < 0) {
                    var$11 = var$9.$array.data[$var5];
                    var$12 = $par1Entity.$posX;
                    var$13 = $par1Entity.$posY - $par1Entity.$yOffset;
                    var$14 = $par1Entity.$posZ;
                    var$15 = var$11.$mcServer.$serverConfigManager;
                    var$16 = var$6 <= 0 ? 16.0 : var$8;
                    var$10 = var$11.$theWorldServer.$provider.$dimensionId;
                    var$9 = nms_Packet62LevelSound__init_($par2Str, var$12, var$13, var$14, $par3, $par4);
                    $ptr = 1;
                    continue main;
                }
                $par1Entity = new jl_IndexOutOfBoundsException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$7, var$12, var$13, var$14, var$16, var$10, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        var$9 = $this.$worldAccesses;
        var$10 = $rt_compare($var5, var$9.$size0);
        if (var$10 >= 0)
            return;
        if ($var5 >= 0 && var$10 < 0) {
            var$11 = var$9.$array.data[$var5];
            var$12 = $par1Entity.$posX;
            var$13 = $par1Entity.$posY - $par1Entity.$yOffset;
            var$14 = $par1Entity.$posZ;
            var$15 = var$11.$mcServer.$serverConfigManager;
            var$16 = var$6 <= 0 ? 16.0 : var$8;
            var$10 = var$11.$theWorldServer.$provider.$dimensionId;
            var$9 = nms_Packet62LevelSound__init_($par2Str, var$12, var$13, var$14, $par3, $par4);
            continue main;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        $rt_throw($par1Entity);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2Str, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_World_playSoundToNearExcept = ($this, $par1EntityPlayer, $par2Str, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Str = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1EntityPlayer !== null && $par2Str !== null) {
            $var5 = 0;
            var$6 = $rt_compare($par3, 1.0);
            var$7 = 16.0 * $par3;
            var$8 = $this.$worldAccesses;
            var$9 = $rt_compare($var5, var$8.$size0);
            if (var$9 < 0) {
                if ($var5 >= 0 && var$9 < 0) {
                    var$10 = var$8.$array.data[$var5];
                    var$11 = $par1EntityPlayer.$posX;
                    var$12 = $par1EntityPlayer.$posY - $par1EntityPlayer.$yOffset;
                    var$13 = $par1EntityPlayer.$posZ;
                    var$14 = var$10.$mcServer.$serverConfigManager;
                    var$15 = var$6 <= 0 ? 16.0 : var$7;
                    var$9 = var$10.$theWorldServer.$provider.$dimensionId;
                    var$8 = nms_Packet62LevelSound__init_($par2Str, var$11, var$12, var$13, $par3, $par4);
                    $ptr = 1;
                    continue main;
                }
                $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                $par1EntityPlayer.$suppressionEnabled = 1;
                $par1EntityPlayer.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayer);
            }
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$14, $par1EntityPlayer, var$11, var$12, var$13, var$15, var$9, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        var$8 = $this.$worldAccesses;
        var$9 = $rt_compare($var5, var$8.$size0);
        if (var$9 >= 0)
            return;
        if ($var5 >= 0 && var$9 < 0) {
            var$10 = var$8.$array.data[$var5];
            var$11 = $par1EntityPlayer.$posX;
            var$12 = $par1EntityPlayer.$posY - $par1EntityPlayer.$yOffset;
            var$13 = $par1EntityPlayer.$posZ;
            var$14 = var$10.$mcServer.$serverConfigManager;
            var$15 = var$6 <= 0 ? 16.0 : var$7;
            var$9 = var$10.$theWorldServer.$provider.$dimensionId;
            var$8 = nms_Packet62LevelSound__init_($par2Str, var$11, var$12, var$13, $par3, $par4);
            continue main;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2Str, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_World_playSoundEffect = ($this, $par1, $par3, $par5, $par7Str, $par8, $par9) => {
    let $var10, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7Str = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par7Str !== null) {
            $var10 = 0;
            var$8 = $rt_compare($par8, 1.0);
            var$9 = null;
            var$10 = 16.0 * $par8;
            var$11 = $this.$worldAccesses;
            var$12 = $rt_compare($var10, var$11.$size0);
            if (var$12 < 0) {
                if ($var10 >= 0 && var$12 < 0) {
                    var$13 = var$11.$array.data[$var10];
                    var$14 = var$13.$mcServer.$serverConfigManager;
                    var$15 = var$8 <= 0 ? 16.0 : var$10;
                    var$12 = var$13.$theWorldServer.$provider.$dimensionId;
                    var$11 = nms_Packet62LevelSound__init_($par7Str, $par1, $par3, $par5, $par8, $par9);
                    $ptr = 1;
                    continue main;
                }
                $par7Str = new jl_IndexOutOfBoundsException;
                $par7Str.$suppressionEnabled = 1;
                $par7Str.$writableStackTrace = 1;
                $rt_throw($par7Str);
            }
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$14, var$9, $par1, $par3, $par5, var$15, var$12, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + 1 | 0;
        var$11 = $this.$worldAccesses;
        var$12 = $rt_compare($var10, var$11.$size0);
        if (var$12 >= 0)
            return;
        if ($var10 >= 0 && var$12 < 0) {
            var$13 = var$11.$array.data[$var10];
            var$14 = var$13.$mcServer.$serverConfigManager;
            var$15 = var$8 <= 0 ? 16.0 : var$10;
            var$12 = var$13.$theWorldServer.$provider.$dimensionId;
            var$11 = nms_Packet62LevelSound__init_($par7Str, $par1, $par3, $par5, $par8, $par9);
            continue main;
        }
        $par7Str = new jl_IndexOutOfBoundsException;
        $par7Str.$suppressionEnabled = 1;
        $par7Str.$writableStackTrace = 1;
        $rt_throw($par7Str);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, $par7Str, $par8, $par9, $var10, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_World_playSound = ($this, $par1, $par3, $par5, $par7Str, $par8, $par9, $par10) => {
    return;
},
nms_World_playRecord = ($this, $par1Str, $par2, $par3, $par4) => {
    let $var5;
    $var5 = 0;
    a: {
        while (true) {
            $par2 = $rt_compare($var5, $this.$worldAccesses.$size0);
            if ($par2 >= 0)
                break;
            if ($var5 < 0)
                break a;
            if ($par2 >= 0)
                break a;
            $var5 = $var5 + 1 | 0;
        }
        return;
    }
    $par1Str = new jl_IndexOutOfBoundsException;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    $rt_throw($par1Str);
},
nms_World_spawnParticle = ($this, $par1Str, $par2, $par4, $par6, $par8, $par10, $par12) => {
    let $var14, var$9;
    $var14 = 0;
    a: {
        while (true) {
            var$9 = $rt_compare($var14, $this.$worldAccesses.$size0);
            if (var$9 >= 0)
                break;
            if ($var14 < 0)
                break a;
            if (var$9 >= 0)
                break a;
            $var14 = $var14 + 1 | 0;
        }
        return;
    }
    $par1Str = new jl_IndexOutOfBoundsException;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    $rt_throw($par1Str);
},
nms_World_spawnEntityInWorld = ($this, $par1Entity) => {
    let var$2, $var2, $var3, $var4, var$6, $var5, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1Entity.$posX / 16.0;
        $var2 = var$2 | 0;
        if (var$2 < $var2)
            $var2 = $var2 - 1 | 0;
        var$2 = $par1Entity.$posZ / 16.0;
        $var3 = var$2 | 0;
        if (var$2 < $var3)
            $var3 = $var3 - 1 | 0;
        $var4 = $par1Entity.$forceSpawn;
        var$6 = $par1Entity instanceof nms_EntityPlayer;
        if (var$6)
            $var4 = 1;
        if (!$var4) {
            $var5 = $this.$chunkProvider.$loadedChunkHashMap;
            var$8 = Long_or(Long_and(Long_fromInt($var2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), 32));
            $var4 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
            $var4 = $var4 ^ ($var4 >>> 20 | 0) ^ ($var4 >>> 12 | 0);
            var$9 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
            var$10 = $var5.$hashArray.data;
            $var5 = var$10[var$9 & (var$10.length - 1 | 0)];
            a: {
                while (true) {
                    if ($var5 === null) {
                        $var5 = null;
                        break a;
                    }
                    if (Long_eq($var5.$key1, var$8))
                        break;
                    $var5 = $var5.$nextEntry;
                }
            }
            if (!($var5 === null ? 0 : 1))
                return 0;
        }
        if (var$6) {
            $var5 = $par1Entity;
            var$11 = $this.$playerEntities;
            ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
            var$10 = var$11.$array.data;
            var$6 = var$11.$size0;
            var$11.$size0 = var$6 + 1 | 0;
            var$10[var$6] = $var5;
            var$11.$modCount = var$11.$modCount + 1 | 0;
            nms_WorldServer_updateAllPlayersSleepingFlag($this);
        }
        $var5 = $this.$chunkProvider;
        var$11 = $var5.$loadedChunkHashMap;
        var$12 = Long_or(Long_and(Long_fromInt($var2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), 32));
        var$13 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
        $var4 = var$13 ^ (var$13 >>> 20 | 0) ^ (var$13 >>> 12 | 0);
        $var4 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$10 = var$11.$hashArray.data;
        var$11 = var$10[$var4 & (var$10.length - 1 | 0)];
        b: {
            while (var$11 !== null) {
                if (Long_eq(var$11.$key1, var$12)) {
                    var$11 = var$11.$value4;
                    break b;
                }
                var$11 = var$11.$nextEntry;
            }
            var$11 = null;
        }
        c: {
            var$11 = var$11;
            if (var$11 === null) {
                if ($var5.$worldObj0.$findingSpawnPoint)
                    break c;
                if ($var5.$loadChunkOnProvideRequest)
                    break c;
                var$11 = $var5.$defaultEmptyChunk;
            }
            var$11.$addEntity($par1Entity);
            $var5 = $this.$loadedEntityList;
            ju_ArrayList_ensureCapacity($var5, $var5.$size0 + 1 | 0);
            var$10 = $var5.$array.data;
            var$6 = $var5.$size0;
            $var5.$size0 = var$6 + 1 | 0;
            var$10[var$6] = $par1Entity;
            $var5.$modCount = $var5.$modCount + 1 | 0;
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        nms_WorldServer_onEntityAdded($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk($var5, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$11.$addEntity($par1Entity);
        $var5 = $this.$loadedEntityList;
        ju_ArrayList_ensureCapacity($var5, $var5.$size0 + 1 | 0);
        var$10 = $var5.$array.data;
        var$6 = $var5.$size0;
        $var5.$size0 = var$6 + 1 | 0;
        var$10[var$6] = $par1Entity;
        $var5.$modCount = $var5.$modCount + 1 | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, $var2, $var3, $var4, var$6, $var5, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_World_removeEntity = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1Entity.$riddenByEntity;
        if (var$2 !== null) {
            var$3 = null;
            $ptr = 1;
            continue main;
        }
        if ($par1Entity.$ridingEntity === null) {
            $ptr = 2;
            continue main;
        }
        var$2 = null;
        $ptr = 3;
        continue main;
    case 1:
        var$2.$mountEntity(var$3);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1Entity.$ridingEntity === null) {
            $ptr = 2;
            continue main;
        }
        var$2 = null;
        $ptr = 3;
        continue main;
    case 2:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if ($par1Entity instanceof nms_EntityPlayer) {
            var$2 = $this.$playerEntities;
            var$4 = var$2.$size0;
            var$5 = 0;
            a: {
                while (true) {
                    if (var$5 >= var$4) {
                        var$5 = (-1);
                        break a;
                    }
                    if (var$5 < 0)
                        break;
                    if (var$5 >= var$2.$size0)
                        break;
                    var$3 = var$2.$array.data[var$5];
                    if ($par1Entity === var$3 ? 1 : $par1Entity !== null ? $par1Entity.$equals(var$3) : var$3 !== null ? 0 : 1)
                        break a;
                    var$5 = var$5 + 1 | 0;
                }
                $par1Entity = new jl_IndexOutOfBoundsException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Entity);
                $rt_throw($par1Entity);
            }
            if (var$5 >= 0)
                ju_ArrayList_remove(var$2, var$5);
            nms_WorldServer_updateAllPlayersSleepingFlag($this);
        }
        return;
    case 3:
        $par1Entity.$mountEntity(var$2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, $ptr);
};
let nms_World_removePlayerEntityDangerously = ($this, $par1Entity) => {
    let var$2, var$3, $var2, var$5, $var3, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if ($par1Entity instanceof nms_EntityPlayer) {
            var$2 = $this.$playerEntities;
            var$3 = var$2.$size0;
            $var2 = 0;
            a: {
                while (true) {
                    if ($var2 >= var$3) {
                        $var2 = (-1);
                        break a;
                    }
                    if ($var2 < 0)
                        break;
                    if ($var2 >= var$2.$size0)
                        break;
                    var$5 = var$2.$array.data[$var2];
                    if ($par1Entity === var$5 ? 1 : $par1Entity !== null ? $par1Entity.$equals(var$5) : var$5 !== null ? 0 : 1)
                        break a;
                    $var2 = $var2 + 1 | 0;
                }
                $par1Entity = new jl_IndexOutOfBoundsException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Entity);
                $rt_throw($par1Entity);
            }
            if ($var2 >= 0)
                ju_ArrayList_remove(var$2, $var2);
            nms_WorldServer_updateAllPlayersSleepingFlag($this);
        }
        b: {
            $var2 = $par1Entity.$chunkCoordX;
            $var3 = $par1Entity.$chunkCoordZ;
            if ($par1Entity.$addedToChunk) {
                var$5 = $this.$chunkProvider;
                var$2 = var$5.$loadedChunkHashMap;
                var$7 = Long_or(Long_and(Long_fromInt($var2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), 32));
                var$8 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
                var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
                var$3 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                var$9 = var$2.$hashArray.data;
                var$3 = var$3 & (var$9.length - 1 | 0);
                var$2 = var$9[var$3];
                c: {
                    while (true) {
                        if (var$2 === null) {
                            var$2 = null;
                            break c;
                        }
                        if (Long_eq(var$2.$key1, var$7))
                            break;
                        var$2 = var$2.$nextEntry;
                    }
                }
                if (var$2 === null ? 0 : 1) {
                    var$2 = var$9[var$3];
                    d: {
                        while (var$2 !== null) {
                            if (Long_eq(var$2.$key1, var$7)) {
                                var$2 = var$2.$value4;
                                break d;
                            }
                            var$2 = var$2.$nextEntry;
                        }
                        var$2 = null;
                    }
                    var$2 = var$2;
                    if (var$2 === null) {
                        if (var$5.$worldObj0.$findingSpawnPoint)
                            break b;
                        if (var$5.$loadChunkOnProvideRequest)
                            break b;
                        var$2 = var$5.$defaultEmptyChunk;
                    }
                    var$2.$removeEntity($par1Entity);
                }
            }
            var$2 = $this.$loadedEntityList;
            var$3 = var$2.$size0;
            $var2 = 0;
            e: {
                f: {
                    while (true) {
                        if ($var2 >= var$3) {
                            $var2 = (-1);
                            break f;
                        }
                        if ($var2 < 0)
                            break e;
                        if ($var2 >= var$2.$size0)
                            break e;
                        var$5 = var$2.$array.data[$var2];
                        if ($par1Entity === var$5 ? 1 : $par1Entity !== null ? $par1Entity.$equals(var$5) : var$5 !== null ? 0 : 1)
                            break;
                        $var2 = $var2 + 1 | 0;
                    }
                }
                if ($var2 >= 0)
                    ju_ArrayList_remove(var$2, $var2);
                nms_WorldServer_onEntityRemoved($this, $par1Entity);
                return;
            }
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Entity);
            $rt_throw($par1Entity);
        }
        $ptr = 2;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        var$2.$removeEntity($par1Entity);
        var$2 = $this.$loadedEntityList;
        var$3 = var$2.$size0;
        $var2 = 0;
        g: {
            a: {
                while (true) {
                    if ($var2 >= var$3) {
                        $var2 = (-1);
                        break a;
                    }
                    if ($var2 < 0)
                        break g;
                    if ($var2 >= var$2.$size0)
                        break g;
                    var$5 = var$2.$array.data[$var2];
                    if ($par1Entity === var$5 ? 1 : $par1Entity !== null ? $par1Entity.$equals(var$5) : var$5 !== null ? 0 : 1)
                        break;
                    $var2 = $var2 + 1 | 0;
                }
            }
            if ($var2 >= 0)
                ju_ArrayList_remove(var$2, $var2);
            nms_WorldServer_onEntityRemoved($this, $par1Entity);
            return;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Entity);
        $rt_throw($par1Entity);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, $var2, var$5, $var3, var$7, var$8, var$9, $ptr);
},
nms_World_addWorldAccess = ($this, $par1IWorldAccess) => {
    let var$2, var$3, var$4;
    var$2 = $this.$worldAccesses;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$3 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$3[var$4] = $par1IWorldAccess;
    var$2.$modCount = var$2.$modCount + 1 | 0;
},
nms_World_getCollidingBoundingBoxes = ($this, $par1Entity, $par2AxisAlignedBB) => {
    let $var12, var$4, var$5, $var11, $var13, var$8, $var5, $var14, $var3, $var4, $var6, $var7, $var8, var$16, var$17, var$18, var$19, var$20, $var15, $var10, var$23, $var16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var16 = $thread.pop();var$23 = $thread.pop();$var10 = $thread.pop();$var15 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var14 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var12 = $thread.pop();$par2AxisAlignedBB
        = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var12 = $this.$collidingBoundingBoxes;
        var$4 = $var12.$array;
        var$5 = 0;
        $var11 = $var12.$size0;
        $var13 = null;
        if (var$5 > $var11) {
            $par1Entity = new jl_IllegalArgumentException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            $rt_throw($par1Entity);
        }
        while (var$5 < $var11) {
            var$8 = var$4.data;
            $var5 = var$5 + 1 | 0;
            var$8[var$5] = $var13;
            var$5 = $var5;
        }
        $var12.$size0 = 0;
        $var12.$modCount = $var12.$modCount + 1 | 0;
        $var14 = $par2AxisAlignedBB.$minX0;
        $var3 = $var14 | 0;
        if ($var14 < $var3)
            $var3 = $var3 - 1 | 0;
        $var14 = $par2AxisAlignedBB.$maxX0 + 1.0;
        $var4 = $var14 | 0;
        if ($var14 < $var4)
            $var4 = $var4 - 1 | 0;
        $var14 = $par2AxisAlignedBB.$minY0;
        $var5 = $var14 | 0;
        if ($var14 < $var5)
            $var5 = $var5 - 1 | 0;
        $var14 = $par2AxisAlignedBB.$maxY + 1.0;
        $var6 = $var14 | 0;
        if ($var14 < $var6)
            $var6 = $var6 - 1 | 0;
        $var14 = $par2AxisAlignedBB.$minZ0;
        $var7 = $var14 | 0;
        if ($var14 < $var7)
            $var7 = $var7 - 1 | 0;
        $var14 = $par2AxisAlignedBB.$maxZ0 + 1.0;
        $var8 = $var14 | 0;
        if ($var14 < $var8)
            $var8 = $var8 - 1 | 0;
        var$5 = $var5 - 1 | 0;
        a: while (true) {
            if ($var3 >= $var4) {
                var$16 = $par2AxisAlignedBB.$minX0 - 0.25;
                var$17 = $par2AxisAlignedBB.$minY0 - 0.25;
                var$18 = $par2AxisAlignedBB.$minZ0 - 0.25;
                var$19 = $par2AxisAlignedBB.$maxX0 + 0.25;
                var$20 = $par2AxisAlignedBB.$maxY + 0.25;
                $var14 = $par2AxisAlignedBB.$maxZ0 + 0.25;
                $var15 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$5 = $var15.$nextPoolIndex;
                $var12 = $var15.$listAABB;
                $var5 = $var12.$size0;
                $var11 = $rt_compare(var$5, $var5);
                if ($var11 >= 0) {
                    $var13 = new nms_AxisAlignedBB;
                    $var13.$minX0 = var$16;
                    $var13.$minY0 = var$17;
                    $var13.$minZ0 = var$18;
                    $var13.$maxX0 = var$19;
                    $var13.$maxY = var$20;
                    $var13.$maxZ0 = $var14;
                    ju_ArrayList_ensureCapacity($var12, $var5 + 1 | 0);
                    var$4 = $var12.$array.data;
                    $var11 = $var12.$size0;
                    $var12.$size0 = $var11 + 1 | 0;
                    var$4[$var11] = $var13;
                    $var12.$modCount = $var12.$modCount + 1 | 0;
                } else if (var$5 >= 0 && $var11 < 0) {
                    $var13 = $var12.$array.data[var$5];
                    $var13.$minX0 = var$16;
                    $var13.$minY0 = var$17;
                    $var13.$minZ0 = var$18;
                    $var13.$maxX0 = var$19;
                    $var13.$maxY = var$20;
                    $var13.$maxZ0 = $var14;
                } else {
                    $par1Entity = new jl_IndexOutOfBoundsException;
                    $par1Entity.$suppressionEnabled = 1;
                    $par1Entity.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1Entity);
                    $rt_throw($par1Entity);
                }
                $var15.$nextPoolIndex = $var15.$nextPoolIndex + 1 | 0;
                $var12 = null;
                $ptr = 1;
                continue main;
            }
            $var10 = $var7;
            while ($var10 < $var8) {
                $var5 = $var3 >> 4;
                $var11 = $var10 >> 4;
                $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                var$23 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var11), Long_create(4294967295, 0)), 32));
                $var11 = Long_lo(Long_xor(var$23, Long_shru(var$23, 32)));
                $var11 = $var11 ^ ($var11 >>> 20 | 0) ^ ($var11 >>> 12 | 0);
                $var16 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
                var$4 = $var12.$hashArray.data;
                $var12 = var$4[$var16 & (var$4.length - 1 | 0)];
                b: {
                    while (true) {
                        if ($var12 === null) {
                            $var12 = null;
                            break b;
                        }
                        if (Long_eq($var12.$key1, var$23))
                            break;
                        $var12 = $var12.$nextEntry;
                    }
                }
                if ($var12 === null ? 0 : 1) {
                    $var11 = var$5;
                    if ($var11 < $var6)
                        break a;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($this, $par1Entity, $var13, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        $var16 = 0;
        c: {
            d: {
                while (true) {
                    var$5 = $rt_compare($var16, $var15.$size0);
                    if (var$5 >= 0)
                        break;
                    if ($var16 < 0)
                        break c;
                    if (var$5 >= 0)
                        break c;
                    $var13 = $var15.$array.data[$var16].$getBoundingBox();
                    if ($var13 !== null && nms_AxisAlignedBB_intersectsWith($var13, $par2AxisAlignedBB)) {
                        $var12 = $this.$collidingBoundingBoxes;
                        ju_ArrayList_ensureCapacity($var12, $var12.$size0 + 1 | 0);
                        var$4 = $var12.$array.data;
                        $var11 = $var12.$size0;
                        $var12.$size0 = $var11 + 1 | 0;
                        var$4[$var11] = $var13;
                        $var12.$modCount = $var12.$modCount + 1 | 0;
                    }
                    if ($var16 < 0)
                        break d;
                    if ($var16 >= $var15.$size0)
                        break d;
                    $var12 = $par1Entity.$getCollisionBox($var15.$array.data[$var16]);
                    if ($var12 !== null && nms_AxisAlignedBB_intersectsWith($var12, $par2AxisAlignedBB)) {
                        $var13 = $this.$collidingBoundingBoxes;
                        ju_ArrayList_ensureCapacity($var13, $var13.$size0 + 1 | 0);
                        var$4 = $var13.$array.data;
                        $var11 = $var13.$size0;
                        $var13.$size0 = $var11 + 1 | 0;
                        var$4[$var11] = $var12;
                        $var13.$modCount = $var13.$modCount + 1 | 0;
                    }
                    $var16 = $var16 + 1 | 0;
                }
                return $this.$collidingBoundingBoxes;
            }
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            $rt_throw($par1Entity);
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        $rt_throw($par1Entity);
    case 2:
        $tmp = nms_World_getBlockId($this, $var3, $var11, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var12 = var$4[$var5];
        if ($var12 !== null) {
            $var13 = $this.$collidingBoundingBoxes;
            $ptr = 3;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        while ($var11 >= $var6) {
            while (true) {
                $var10 = $var10 + 1 | 0;
                while ($var10 >= $var8) {
                    $var3 = $var3 + 1 | 0;
                    if ($var3 >= $var4) {
                        var$16 = $par2AxisAlignedBB.$minX0 - 0.25;
                        var$17 = $par2AxisAlignedBB.$minY0 - 0.25;
                        var$18 = $par2AxisAlignedBB.$minZ0 - 0.25;
                        var$19 = $par2AxisAlignedBB.$maxX0 + 0.25;
                        var$20 = $par2AxisAlignedBB.$maxY + 0.25;
                        $var14 = $par2AxisAlignedBB.$maxZ0 + 0.25;
                        $var15 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                        var$5 = $var15.$nextPoolIndex;
                        $var12 = $var15.$listAABB;
                        $var5 = $var12.$size0;
                        $var11 = $rt_compare(var$5, $var5);
                        if ($var11 >= 0) {
                            $var13 = new nms_AxisAlignedBB;
                            $var13.$minX0 = var$16;
                            $var13.$minY0 = var$17;
                            $var13.$minZ0 = var$18;
                            $var13.$maxX0 = var$19;
                            $var13.$maxY = var$20;
                            $var13.$maxZ0 = $var14;
                            ju_ArrayList_ensureCapacity($var12, $var5 + 1 | 0);
                            var$4 = $var12.$array.data;
                            $var11 = $var12.$size0;
                            $var12.$size0 = $var11 + 1 | 0;
                            var$4[$var11] = $var13;
                            $var12.$modCount = $var12.$modCount + 1 | 0;
                        } else if (var$5 >= 0 && $var11 < 0) {
                            $var13 = $var12.$array.data[var$5];
                            $var13.$minX0 = var$16;
                            $var13.$minY0 = var$17;
                            $var13.$minZ0 = var$18;
                            $var13.$maxX0 = var$19;
                            $var13.$maxY = var$20;
                            $var13.$maxZ0 = $var14;
                        } else {
                            $par1Entity = new jl_IndexOutOfBoundsException;
                            $par1Entity.$suppressionEnabled = 1;
                            $par1Entity.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par1Entity);
                            $rt_throw($par1Entity);
                        }
                        $var15.$nextPoolIndex = $var15.$nextPoolIndex + 1 | 0;
                        $var12 = null;
                        $ptr = 1;
                        continue main;
                    }
                    $var10 = $var7;
                }
                $var5 = $var3 >> 4;
                $var11 = $var10 >> 4;
                $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                var$23 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var11), Long_create(4294967295, 0)), 32));
                $var11 = Long_lo(Long_xor(var$23, Long_shru(var$23, 32)));
                $var11 = $var11 ^ ($var11 >>> 20 | 0) ^ ($var11 >>> 12 | 0);
                $var16 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
                var$4 = $var12.$hashArray.data;
                $var12 = var$4[$var16 & (var$4.length - 1 | 0)];
                e: {
                    while (true) {
                        if ($var12 === null) {
                            $var12 = null;
                            break e;
                        }
                        if (Long_eq($var12.$key1, var$23))
                            break;
                        $var12 = $var12.$nextEntry;
                    }
                }
                if (!($var12 === null ? 0 : 1))
                    continue;
                else
                    break;
            }
            $var11 = var$5;
        }
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        continue main;
    case 3:
        $var12.$addCollisionBoxesToList($this, $var3, $var11, $var10, $par2AxisAlignedBB, $var13, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        while ($var11 >= $var6) {
            while (true) {
                $var10 = $var10 + 1 | 0;
                while ($var10 >= $var8) {
                    $var3 = $var3 + 1 | 0;
                    if ($var3 >= $var4) {
                        var$16 = $par2AxisAlignedBB.$minX0 - 0.25;
                        var$17 = $par2AxisAlignedBB.$minY0 - 0.25;
                        var$18 = $par2AxisAlignedBB.$minZ0 - 0.25;
                        var$19 = $par2AxisAlignedBB.$maxX0 + 0.25;
                        var$20 = $par2AxisAlignedBB.$maxY + 0.25;
                        $var14 = $par2AxisAlignedBB.$maxZ0 + 0.25;
                        $var15 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                        var$5 = $var15.$nextPoolIndex;
                        $var12 = $var15.$listAABB;
                        $var5 = $var12.$size0;
                        $var11 = $rt_compare(var$5, $var5);
                        if ($var11 >= 0) {
                            $var13 = new nms_AxisAlignedBB;
                            $var13.$minX0 = var$16;
                            $var13.$minY0 = var$17;
                            $var13.$minZ0 = var$18;
                            $var13.$maxX0 = var$19;
                            $var13.$maxY = var$20;
                            $var13.$maxZ0 = $var14;
                            ju_ArrayList_ensureCapacity($var12, $var5 + 1 | 0);
                            var$4 = $var12.$array.data;
                            $var11 = $var12.$size0;
                            $var12.$size0 = $var11 + 1 | 0;
                            var$4[$var11] = $var13;
                            $var12.$modCount = $var12.$modCount + 1 | 0;
                        } else if (var$5 >= 0 && $var11 < 0) {
                            $var13 = $var12.$array.data[var$5];
                            $var13.$minX0 = var$16;
                            $var13.$minY0 = var$17;
                            $var13.$minZ0 = var$18;
                            $var13.$maxX0 = var$19;
                            $var13.$maxY = var$20;
                            $var13.$maxZ0 = $var14;
                        } else {
                            $par1Entity = new jl_IndexOutOfBoundsException;
                            $par1Entity.$suppressionEnabled = 1;
                            $par1Entity.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par1Entity);
                            $rt_throw($par1Entity);
                        }
                        $var15.$nextPoolIndex = $var15.$nextPoolIndex + 1 | 0;
                        $var12 = null;
                        $ptr = 1;
                        continue main;
                    }
                    $var10 = $var7;
                }
                $var5 = $var3 >> 4;
                $var11 = $var10 >> 4;
                $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                var$23 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var11), Long_create(4294967295, 0)), 32));
                $var11 = Long_lo(Long_xor(var$23, Long_shru(var$23, 32)));
                $var11 = $var11 ^ ($var11 >>> 20 | 0) ^ ($var11 >>> 12 | 0);
                $var16 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
                var$4 = $var12.$hashArray.data;
                $var12 = var$4[$var16 & (var$4.length - 1 | 0)];
                f: {
                    while (true) {
                        if ($var12 === null) {
                            $var12 = null;
                            break f;
                        }
                        if (Long_eq($var12.$key1, var$23))
                            break;
                        $var12 = $var12.$nextEntry;
                    }
                }
                if (!($var12 === null ? 0 : 1))
                    continue;
                else
                    break;
            }
            $var11 = var$5;
        }
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2AxisAlignedBB, $var12, var$4, var$5, $var11, $var13, var$8, $var5, $var14, $var3, $var4, $var6, $var7, $var8, var$16, var$17, var$18, var$19, var$20, $var15, $var10, var$23, $var16, $ptr);
},
nms_World_getCollidingBlockBounds = ($this, $par1AxisAlignedBB) => {
    let $var11, var$3, $var9, $var10, var$6, var$7, $var2, var$9, $var3, $var4, $var5, $var6, $var7, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$3 = $thread.pop();$var11 = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var11 = $this.$collidingBoundingBoxes;
        var$3 = $var11.$array;
        $var9 = 0;
        $var10 = $var11.$size0;
        var$6 = null;
        if ($var9 > $var10) {
            $par1AxisAlignedBB = new jl_IllegalArgumentException;
            $par1AxisAlignedBB.$suppressionEnabled = 1;
            $par1AxisAlignedBB.$writableStackTrace = 1;
            $rt_throw($par1AxisAlignedBB);
        }
        while ($var9 < $var10) {
            var$7 = var$3.data;
            $var2 = $var9 + 1 | 0;
            var$7[$var9] = var$6;
            $var9 = $var2;
        }
        $var11.$size0 = 0;
        $var11.$modCount = $var11.$modCount + 1 | 0;
        var$9 = $par1AxisAlignedBB.$minX0;
        $var2 = var$9 | 0;
        if (var$9 < $var2)
            $var2 = $var2 - 1 | 0;
        var$9 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var3 = var$9 | 0;
        if (var$9 < $var3)
            $var3 = $var3 - 1 | 0;
        var$9 = $par1AxisAlignedBB.$minY0;
        $var4 = var$9 | 0;
        if (var$9 < $var4)
            $var4 = $var4 - 1 | 0;
        var$9 = $par1AxisAlignedBB.$maxY + 1.0;
        $var5 = var$9 | 0;
        if (var$9 < $var5)
            $var5 = $var5 - 1 | 0;
        var$9 = $par1AxisAlignedBB.$minZ0;
        $var6 = var$9 | 0;
        if (var$9 < $var6)
            $var6 = $var6 - 1 | 0;
        var$9 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var7 = var$9 | 0;
        if (var$9 < $var7)
            $var7 = $var7 - 1 | 0;
        $var4 = $var4 - 1 | 0;
        var$6 = null;
        while ($var2 < $var3) {
            $var9 = $var6;
            while ($var9 < $var7) {
                var$15 = $var2 >> 4;
                $var10 = $var9 >> 4;
                $var11 = $this.$chunkProvider.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt(var$15), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                $var10 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                var$17 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                var$3 = $var11.$hashArray.data;
                $var11 = var$3[var$17 & (var$3.length - 1 | 0)];
                a: {
                    while (true) {
                        if ($var11 === null) {
                            $var11 = null;
                            break a;
                        }
                        if (Long_eq($var11.$key1, var$16))
                            break;
                        $var11 = $var11.$nextEntry;
                    }
                }
                if ($var11 === null ? 0 : 1) {
                    $var10 = $var4;
                    if ($var10 < $var5) {
                        nms_Block_$callClinit();
                        var$3 = nms_Block_blocksList.data;
                        $ptr = 1;
                        continue main;
                    }
                }
                $var9 = $var9 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        return $this.$collidingBoundingBoxes;
    case 1:
        $tmp = nms_World_getBlockId($this, $var2, $var10, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        $var11 = var$3[var$15];
        if ($var11 !== null) {
            var$18 = $this.$collidingBoundingBoxes;
            $ptr = 2;
            continue main;
        }
        $var10 = $var10 + 1 | 0;
        b: while (true) {
            if ($var10 < $var5) {
                nms_Block_$callClinit();
                var$3 = nms_Block_blocksList.data;
                continue main;
            }
            while (true) {
                $var9 = $var9 + 1 | 0;
                while ($var9 >= $var7) {
                    $var2 = $var2 + 1 | 0;
                    if ($var2 >= $var3)
                        break b;
                    $var9 = $var6;
                }
                var$15 = $var2 >> 4;
                $var10 = $var9 >> 4;
                $var11 = $this.$chunkProvider.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt(var$15), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                $var10 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                var$17 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                var$3 = $var11.$hashArray.data;
                $var11 = var$3[var$17 & (var$3.length - 1 | 0)];
                c: {
                    while (true) {
                        if ($var11 === null) {
                            $var11 = null;
                            break c;
                        }
                        if (Long_eq($var11.$key1, var$16))
                            break;
                        $var11 = $var11.$nextEntry;
                    }
                }
                if (!($var11 === null ? 0 : 1))
                    continue;
                else
                    break;
            }
            $var10 = $var4;
        }
        return $this.$collidingBoundingBoxes;
    case 2:
        $var11.$addCollisionBoxesToList($this, $var2, $var10, $var9, $par1AxisAlignedBB, var$18, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + 1 | 0;
        d: while (true) {
            if ($var10 < $var5) {
                nms_Block_$callClinit();
                var$3 = nms_Block_blocksList.data;
                $ptr = 1;
                continue main;
            }
            while (true) {
                $var9 = $var9 + 1 | 0;
                while ($var9 >= $var7) {
                    $var2 = $var2 + 1 | 0;
                    if ($var2 >= $var3)
                        break d;
                    $var9 = $var6;
                }
                var$15 = $var2 >> 4;
                $var10 = $var9 >> 4;
                $var11 = $this.$chunkProvider.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt(var$15), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                $var10 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                var$17 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                var$3 = $var11.$hashArray.data;
                $var11 = var$3[var$17 & (var$3.length - 1 | 0)];
                e: {
                    while (true) {
                        if ($var11 === null) {
                            $var11 = null;
                            break e;
                        }
                        if (Long_eq($var11.$key1, var$16))
                            break;
                        $var11 = $var11.$nextEntry;
                    }
                }
                if (!($var11 === null ? 0 : 1))
                    continue;
                else
                    break;
            }
            $var10 = $var4;
        }
        return $this.$collidingBoundingBoxes;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, $var11, var$3, $var9, $var10, var$6, var$7, $var2, var$9, $var3, $var4, $var5, $var6, $var7, var$15, var$16, var$17, var$18, $ptr);
},
nms_World_calculateSkylightSubtracted = ($this, $par1) => {
    let $var3, var$3, $var2, var$5;
    $var3 = $this.$provider.$calculateCelestialAngle($this.$worldInfo.$getWorldTime(), $par1) * 3.1415927410125732 * 2.0;
    $var3 = 1.0 - (nms_MathHelper_SIN_TABLE.data[($var3 * 10430.3779296875 + 16384.0 | 0) & 65535] * 2.0 + 0.5);
    if ($var3 < 0.0)
        $var3 = 0.0;
    if ($var3 > 1.0)
        $var3 = 1.0;
    var$3 = 1.0 - $var3;
    $var3 = $this.$prevRainingStrength;
    $var2 = $var3 + ($this.$rainingStrength - $var3) * $par1;
    var$5 = var$3 * (1.0 - $var2 * 5.0 / 16.0);
    $var3 = $this.$prevThunderingStrength;
    return (1.0 - var$5 * (1.0 - ($var3 + ($this.$thunderingStrength - $var3) * $par1) * $var2 * 5.0 / 16.0)) * 11.0 | 0;
},
nms_World_getCelestialAngle = ($this, $par1) => {
    return $this.$provider.$calculateCelestialAngle($this.$worldInfo.$getWorldTime(), $par1);
},
nms_World_getCurrentMoonPhaseFactor = $this => {
    return nms_WorldProvider_moonPhaseFactors.data[Long_lo(Long_div($this.$worldInfo.$getWorldTime(), Long_fromInt(24000))) % 8 | 0];
},
nms_World_getCelestialAngleRadians = ($this, $par1) => {
    return $this.$provider.$calculateCelestialAngle($this.$worldInfo.$getWorldTime(), $par1) * 3.1415927410125732 * 2.0;
},
nms_World_getPrecipitationHeight = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1 >> 4;
        var$4 = $par2 >> 4;
        var$5 = $this.$chunkProvider;
        var$6 = var$5.$loadedChunkHashMap;
        var$7 = Long_or(Long_and(Long_fromInt(var$3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), 32));
        var$8 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
        var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
        var$9 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
        var$10 = var$6.$hashArray.data;
        var$6 = var$10[var$9 & (var$10.length - 1 | 0)];
        a: {
            while (var$6 !== null) {
                if (Long_eq(var$6.$key1, var$7)) {
                    var$6 = var$6.$value4;
                    break a;
                }
                var$6 = var$6.$nextEntry;
            }
            var$6 = null;
        }
        b: {
            var$6 = var$6;
            if (var$6 === null) {
                if (var$5.$worldObj0.$findingSpawnPoint)
                    break b;
                if (var$5.$loadChunkOnProvideRequest)
                    break b;
                var$6 = var$5.$defaultEmptyChunk;
            }
            return nms_Chunk_getPrecipitationHeight(var$6, $par1 & 15, $par2 & 15);
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return nms_Chunk_getPrecipitationHeight(var$6, $par1 & 15, $par2 & 15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_World_getTopSolidOrLiquidBlock = ($this, $par1, $par2) => {
    let $var5, var$4, var$5, var$6, var$7, $var4, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var5 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par1 >> 4;
        var$4 = $par2 >> 4;
        var$5 = $this.$chunkProvider;
        var$6 = var$5.$loadedChunkHashMap;
        var$7 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), 32));
        $var4 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
        $var4 = $var4 ^ ($var4 >>> 20 | 0) ^ ($var4 >>> 12 | 0);
        var$9 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$10 = var$6.$hashArray.data;
        var$6 = var$10[var$9 & (var$10.length - 1 | 0)];
        a: {
            while (var$6 !== null) {
                if (Long_eq(var$6.$key1, var$7)) {
                    var$6 = var$6.$value4;
                    break a;
                }
                var$6 = var$6.$nextEntry;
            }
            var$6 = null;
        }
        b: {
            var$6 = var$6;
            if (var$6 === null) {
                if (var$5.$worldObj0.$findingSpawnPoint)
                    break b;
                if (var$5.$loadChunkOnProvideRequest)
                    break b;
                var$6 = var$5.$defaultEmptyChunk;
            }
            var$10 = var$6.$storageArrays.data;
            $var4 = var$10.length - 1 | 0;
            c: {
                while ($var4 >= 0) {
                    if (var$10[$var4] !== null) {
                        $var4 = var$10[$var4].$yBase;
                        break c;
                    }
                    $var4 = $var4 + (-1) | 0;
                }
                $var4 = 0;
            }
            $var4 = $var4 + 15 | 0;
            $par1 = $par1 & 15;
            $par2 = $par2 & 15;
            while ($var4 > 0) {
                $var5 = var$6.$getBlockID($par1, $var4, $par2);
                if ($var5) {
                    nms_Block_$callClinit();
                    if (nms_Block_blocksList.data[$var5].$blockMaterial.$blocksMovement() && nms_Block_blocksList.data[$var5].$blockMaterial !== nms_Material_leaves)
                        return $var4 + 1 | 0;
                }
                $var4 = $var4 + (-1) | 0;
            }
            return (-1);
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, $var5, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$10 = var$6.$storageArrays.data;
        $var4 = var$10.length - 1 | 0;
        a: {
            while ($var4 >= 0) {
                if (var$10[$var4] !== null) {
                    $var4 = var$10[$var4].$yBase;
                    break a;
                }
                $var4 = $var4 + (-1) | 0;
            }
            $var4 = 0;
        }
        $var4 = $var4 + 15 | 0;
        $par1 = $par1 & 15;
        $par2 = $par2 & 15;
        while ($var4 > 0) {
            $var5 = var$6.$getBlockID($par1, $var4, $par2);
            if ($var5) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var5].$blockMaterial.$blocksMovement() && nms_Block_blocksList.data[$var5].$blockMaterial !== nms_Material_leaves)
                    return $var4 + 1 | 0;
            }
            $var4 = $var4 + (-1) | 0;
        }
        return (-1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var5, var$4, var$5, var$6, var$7, $var4, var$9, var$10, $ptr);
},
nms_World_updateEntities = $this => {
    let $var1, $var12, $var10, $var2, $var9, $var3, var$7, var$8, $var14, $var13, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var9 = $thread.pop();$var2 = $thread.pop();$var10 = $thread.pop();$var12 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        $var12 = $this.$weatherEffects;
        $var10 = $rt_compare($var1, $var12.$size0);
        if ($var10 < 0) {
            if ($var1 >= 0 && $var10 < 0) {
                $var2 = $var12.$array.data[$var1];
                $var2.$ticksExisted = $var2.$ticksExisted + 1 | 0;
                $ptr = 1;
                continue main;
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $var12 = $this.$loadedEntityList;
        $var9 = $this.$unloadedEntityList;
        if ($var9 === null) {
            $var12 = new jl_NullPointerException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $var12.$message = $rt_s(3);
            $rt_throw($var12);
        }
        $var2 = new ju_AbstractList$1;
        $var2.$this$00 = $var12;
        $var2.$modCount0 = $var12.$modCount;
        $var2.$size3 = $var12.$size();
        $var2.$removeIndex = (-1);
        a: while (true) {
            $var1 = $var2.$index;
            if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                $var1 = 0;
                b: {
                    while (true) {
                        $var12 = $this.$unloadedEntityList;
                        $var10 = $rt_compare($var1, $var12.$size0);
                        if ($var10 >= 0) {
                            $var1 = 0;
                            while (true) {
                                $var12 = $this.$unloadedEntityList;
                                $var3 = $var12.$size0;
                                $var10 = $rt_compare($var1, $var3);
                                if ($var10 >= 0) {
                                    var$7 = $var12.$array;
                                    $var1 = 0;
                                    $var9 = null;
                                    if ($var1 > $var3) {
                                        $var12 = new jl_IllegalArgumentException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    while ($var1 < $var3) {
                                        var$8 = var$7.data;
                                        $var10 = $var1 + 1 | 0;
                                        var$8[$var1] = $var9;
                                        $var1 = $var10;
                                    }
                                    $var12.$size0 = 0;
                                    $var12.$modCount = $var12.$modCount + 1 | 0;
                                    $var1 = 0;
                                    c: {
                                        while (true) {
                                            $var12 = $this.$loadedEntityList;
                                            $var10 = $rt_compare($var1, $var12.$size0);
                                            if ($var10 >= 0) {
                                                $this.$scanningTileEntities = 1;
                                                $var12 = $this.$loadedTileEntityList;
                                                $var14 = new ju_AbstractList$1;
                                                $var14.$this$00 = $var12;
                                                $var14.$modCount0 = $var12.$modCount;
                                                $var14.$size3 = $var12.$size();
                                                $var14.$removeIndex = (-1);
                                                d: {
                                                    while (true) {
                                                        $var1 = $var14.$index;
                                                        if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                                                            $this.$scanningTileEntities = 0;
                                                            $var12 = $this.$entityRemoval;
                                                            $var1 = $var12.$size0 ? 0 : 1;
                                                            e: {
                                                                if (!$var1) {
                                                                    $var9 = $this.$loadedTileEntityList;
                                                                    $var2 = new ju_AbstractList$1;
                                                                    $var2.$this$00 = $var9;
                                                                    $var2.$modCount0 = $var9.$modCount;
                                                                    $var2.$size3 = $var9.$size();
                                                                    $var2.$removeIndex = (-1);
                                                                    f: while (true) {
                                                                        $var1 = $var2.$index;
                                                                        if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                                                            $var12 = $this.$entityRemoval;
                                                                            var$8 = $var12.$array;
                                                                            $var10 = 0;
                                                                            $var3 = $var12.$size0;
                                                                            $var9 = null;
                                                                            if ($var10 > $var3) {
                                                                                $var12 = new jl_IllegalArgumentException;
                                                                                $var12.$suppressionEnabled = 1;
                                                                                $var12.$writableStackTrace = 1;
                                                                                $rt_throw($var12);
                                                                            }
                                                                            while ($var10 < $var3) {
                                                                                var$7 = var$8.data;
                                                                                $var1 = $var10 + 1 | 0;
                                                                                var$7[$var10] = $var9;
                                                                                $var10 = $var1;
                                                                            }
                                                                            $var12.$size0 = 0;
                                                                            $var12.$modCount = $var12.$modCount + 1 | 0;
                                                                            break e;
                                                                        }
                                                                        $var3 = $var2.$modCount0;
                                                                        $var9 = $var2.$this$00;
                                                                        if ($var3 < $var9.$modCount) {
                                                                            $var12 = new ju_ConcurrentModificationException;
                                                                            $var12.$suppressionEnabled = 1;
                                                                            $var12.$writableStackTrace = 1;
                                                                            $rt_throw($var12);
                                                                        }
                                                                        $var2.$removeIndex = $var1;
                                                                        $var2.$index = $var1 + 1 | 0;
                                                                        $var9 = $var9.$get($var1);
                                                                        $var13 = $var12.$modCount;
                                                                        var$11 = $var12.$size();
                                                                        var$12 = 0;
                                                                        g: {
                                                                            while (true) {
                                                                                if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                                    $var1 = 0;
                                                                                    break g;
                                                                                }
                                                                                if ($var13 < $var12.$modCount)
                                                                                    break f;
                                                                                $var3 = var$12 + 1 | 0;
                                                                                $var14 = $var12.$get(var$12);
                                                                                if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                                                                    break;
                                                                                var$12 = $var3;
                                                                            }
                                                                            $var1 = 1;
                                                                        }
                                                                        if ($var1)
                                                                            ju_AbstractList$1_remove($var2);
                                                                    }
                                                                    $var12 = new ju_ConcurrentModificationException;
                                                                    $var12.$suppressionEnabled = 1;
                                                                    $var12.$writableStackTrace = 1;
                                                                    $rt_throw($var12);
                                                                }
                                                            }
                                                            $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                                                            h: {
                                                                i: {
                                                                    if (!$var1) {
                                                                        $var10 = 0;
                                                                        var$13 = 0;
                                                                        while (true) {
                                                                            $var12 = $this.$addedTileEntityList;
                                                                            $var3 = $var12.$size0;
                                                                            $var1 = $rt_compare($var10, $var3);
                                                                            if ($var1 >= 0) {
                                                                                var$7 = $var12.$array;
                                                                                $var1 = 0;
                                                                                $var9 = null;
                                                                                if ($var1 > $var3) {
                                                                                    $var12 = new jl_IllegalArgumentException;
                                                                                    $var12.$suppressionEnabled = 1;
                                                                                    $var12.$writableStackTrace = 1;
                                                                                    $rt_throw($var12);
                                                                                }
                                                                                while ($var1 < $var3) {
                                                                                    var$8 = var$7.data;
                                                                                    $var10 = $var1 + 1 | 0;
                                                                                    var$8[$var1] = $var9;
                                                                                    $var1 = $var10;
                                                                                }
                                                                                $var12.$size0 = 0;
                                                                                $var12.$modCount = $var12.$modCount + 1 | 0;
                                                                                break i;
                                                                            }
                                                                            if ($var10 < 0)
                                                                                break;
                                                                            if ($var1 >= 0)
                                                                                break;
                                                                            $var12 = $var12.$array.data[$var10];
                                                                            if (!$var12.$tileEntityInvalid) {
                                                                                $var9 = $this.$loadedTileEntityList;
                                                                                $var13 = $var9.$modCount;
                                                                                var$11 = $var9.$size();
                                                                                var$12 = var$13;
                                                                                j: {
                                                                                    while (true) {
                                                                                        if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                                            $var1 = 0;
                                                                                            break j;
                                                                                        }
                                                                                        if ($var13 < $var9.$modCount) {
                                                                                            $var12 = new ju_ConcurrentModificationException;
                                                                                            $var12.$suppressionEnabled = 1;
                                                                                            $var12.$writableStackTrace = 1;
                                                                                            $rt_throw($var12);
                                                                                        }
                                                                                        $var3 = var$12 + 1 | 0;
                                                                                        $var2 = $var9.$get(var$12);
                                                                                        if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                                                            break;
                                                                                        var$12 = $var3;
                                                                                    }
                                                                                    $var1 = 1;
                                                                                }
                                                                                if (!$var1) {
                                                                                    $var9 = $this.$loadedTileEntityList;
                                                                                    ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                                                                    var$7 = $var9.$array.data;
                                                                                    $var3 = $var9.$size0;
                                                                                    $var9.$size0 = $var3 + 1 | 0;
                                                                                    var$7[$var3] = $var12;
                                                                                    $var9.$modCount = $var9.$modCount + 1 | 0;
                                                                                }
                                                                                $var3 = $var12.$xCoord0 >> 4;
                                                                                $var1 = $var12.$zCoord0 >> 4;
                                                                                $var2 = $this.$chunkProvider;
                                                                                $var9 = $var2.$loadedChunkHashMap;
                                                                                var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                                                $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                                                $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                                                                var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                                                                var$7 = $var9.$hashArray.data;
                                                                                var$11 = var$12 & (var$7.length - 1 | 0);
                                                                                $var9 = var$7[var$11];
                                                                                k: {
                                                                                    while (true) {
                                                                                        if ($var9 === null) {
                                                                                            $var9 = null;
                                                                                            break k;
                                                                                        }
                                                                                        if (Long_eq($var9.$key1, var$14))
                                                                                            break;
                                                                                        $var9 = $var9.$nextEntry;
                                                                                    }
                                                                                }
                                                                                if ($var9 === null ? 0 : 1) {
                                                                                    $var9 = var$7[var$11];
                                                                                    l: {
                                                                                        while ($var9 !== null) {
                                                                                            if (Long_eq($var9.$key1, var$14)) {
                                                                                                $var9 = $var9.$value4;
                                                                                                break l;
                                                                                            }
                                                                                            $var9 = $var9.$nextEntry;
                                                                                        }
                                                                                        $var9 = null;
                                                                                    }
                                                                                    $var9 = $var9;
                                                                                    if ($var9 === null) {
                                                                                        if ($var2.$worldObj0.$findingSpawnPoint)
                                                                                            break h;
                                                                                        if ($var2.$loadChunkOnProvideRequest)
                                                                                            break h;
                                                                                        $var9 = $var2.$defaultEmptyChunk;
                                                                                    }
                                                                                    if ($var9 !== null) {
                                                                                        $var3 = $var12.$xCoord0 & 15;
                                                                                        $var13 = $var12.$yCoord0;
                                                                                        $var1 = $var12.$zCoord0 & 15;
                                                                                        $ptr = 10;
                                                                                        continue main;
                                                                                    }
                                                                                }
                                                                                $var1 = $var12.$xCoord0;
                                                                                $var3 = $var12.$yCoord0;
                                                                                $var13 = $var12.$zCoord0;
                                                                                var$11 = 0;
                                                                                var$12 = $var1 >> 4;
                                                                                var$15 = $var13 >> 4;
                                                                                $var1 = $var1 & 15;
                                                                                var$16 = $var13 & 15;
                                                                                $var12 = $this.$worldAccesses;
                                                                                $var13 = $rt_compare(var$11, $var12.$size0);
                                                                                if ($var13 < 0) {
                                                                                    if (var$11 >= 0 && $var13 < 0) {
                                                                                        $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                                                        $var13 = 0;
                                                                                        $ptr = 8;
                                                                                        continue main;
                                                                                    }
                                                                                    $var12 = new jl_IndexOutOfBoundsException;
                                                                                    $var12.$suppressionEnabled = 1;
                                                                                    $var12.$writableStackTrace = 1;
                                                                                    $rt_throw($var12);
                                                                                }
                                                                            }
                                                                            $var10 = $var10 + 1 | 0;
                                                                        }
                                                                        $var12 = new jl_IndexOutOfBoundsException;
                                                                        $var12.$suppressionEnabled = 1;
                                                                        $var12.$writableStackTrace = 1;
                                                                        $rt_throw($var12);
                                                                    }
                                                                }
                                                                return;
                                                            }
                                                            $ptr = 9;
                                                            continue main;
                                                        }
                                                        $var10 = $var14.$modCount0;
                                                        $var12 = $var14.$this$00;
                                                        if ($var10 < $var12.$modCount)
                                                            break;
                                                        $var14.$removeIndex = $var1;
                                                        $var14.$index = $var1 + 1 | 0;
                                                        $var9 = $var12.$get($var1);
                                                        if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                                                            $var1 = $var9.$xCoord0;
                                                            $var10 = $var9.$yCoord0;
                                                            $var3 = $var9.$zCoord0;
                                                            if ($var10 >= 0 && $var10 < 256) {
                                                                $var10 = $var1 >> 4;
                                                                $var1 = $var3 >> 4;
                                                                $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                                                                var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                                $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                                $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                                                                $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                                                                var$7 = $var12.$hashArray.data;
                                                                $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                                                                m: {
                                                                    while (true) {
                                                                        if ($var12 === null) {
                                                                            $var12 = null;
                                                                            break m;
                                                                        }
                                                                        if (Long_eq($var12.$key1, var$14))
                                                                            break;
                                                                        $var12 = $var12.$nextEntry;
                                                                    }
                                                                }
                                                                $var1 = $var12 === null ? 0 : 1;
                                                            } else
                                                                $var1 = 0;
                                                            if ($var1) {
                                                                $ptr = 4;
                                                                continue main;
                                                            }
                                                        }
                                                        if ($var9.$tileEntityInvalid) {
                                                            ju_AbstractList$1_remove($var14);
                                                            $var1 = $var9.$xCoord0 >> 4;
                                                            $var10 = $var9.$zCoord0 >> 4;
                                                            $var2 = $this.$chunkProvider;
                                                            $var12 = $var2.$loadedChunkHashMap;
                                                            var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                                                            $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                            $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                                                            var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                                                            var$7 = $var12.$hashArray.data;
                                                            $var13 = var$11 & (var$7.length - 1 | 0);
                                                            $var12 = var$7[$var13];
                                                            n: {
                                                                while (true) {
                                                                    if ($var12 === null) {
                                                                        $var12 = null;
                                                                        break n;
                                                                    }
                                                                    if (Long_eq($var12.$key1, var$14))
                                                                        break;
                                                                    $var12 = $var12.$nextEntry;
                                                                }
                                                            }
                                                            if ($var12 === null ? 0 : 1) {
                                                                $var12 = var$7[$var13];
                                                                o: {
                                                                    while ($var12 !== null) {
                                                                        if (Long_eq($var12.$key1, var$14)) {
                                                                            $var12 = $var12.$value4;
                                                                            break o;
                                                                        }
                                                                        $var12 = $var12.$nextEntry;
                                                                    }
                                                                    $var12 = null;
                                                                }
                                                                $var12 = $var12;
                                                                if ($var12 === null) {
                                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                                        break d;
                                                                    if ($var2.$loadChunkOnProvideRequest)
                                                                        break d;
                                                                    $var12 = $var2.$defaultEmptyChunk;
                                                                }
                                                                if ($var12 !== null) {
                                                                    $var1 = $var9.$xCoord0 & 15;
                                                                    $var10 = $var9.$yCoord0;
                                                                    $var3 = $var9.$zCoord0 & 15;
                                                                    $ptr = 7;
                                                                    continue main;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    $var12 = new ju_ConcurrentModificationException;
                                                    $var12.$suppressionEnabled = 1;
                                                    $var12.$writableStackTrace = 1;
                                                    $rt_throw($var12);
                                                }
                                                $ptr = 6;
                                                continue main;
                                            }
                                            if ($var1 < 0)
                                                break;
                                            if ($var10 >= 0)
                                                break;
                                            p: {
                                                $var2 = $var12.$array.data[$var1];
                                                $var12 = $var2.$ridingEntity;
                                                if ($var12 !== null) {
                                                    if (!$var12.$isDead && $var12.$riddenByEntity === $var2)
                                                        break p;
                                                    $var12.$riddenByEntity = null;
                                                    $var2.$ridingEntity = null;
                                                }
                                                if (!$var2.$isDead) {
                                                    $ptr = 2;
                                                    continue main;
                                                }
                                                if ($var2.$isDead) {
                                                    $var3 = $var2.$chunkCoordX;
                                                    $var13 = $var2.$chunkCoordZ;
                                                    if ($var2.$addedToChunk) {
                                                        $var9 = $this.$chunkProvider;
                                                        $var12 = $var9.$loadedChunkHashMap;
                                                        var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                                                        $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                        $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                                                        var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                                                        var$7 = $var12.$hashArray.data;
                                                        var$11 = var$12 & (var$7.length - 1 | 0);
                                                        $var12 = var$7[var$11];
                                                        q: {
                                                            while (true) {
                                                                if ($var12 === null) {
                                                                    $var12 = null;
                                                                    break q;
                                                                }
                                                                if (Long_eq($var12.$key1, var$14))
                                                                    break;
                                                                $var12 = $var12.$nextEntry;
                                                            }
                                                        }
                                                        if ($var12 === null ? 0 : 1) {
                                                            $var12 = var$7[var$11];
                                                            r: {
                                                                while ($var12 !== null) {
                                                                    if (Long_eq($var12.$key1, var$14)) {
                                                                        $var12 = $var12.$value4;
                                                                        break r;
                                                                    }
                                                                    $var12 = $var12.$nextEntry;
                                                                }
                                                                $var12 = null;
                                                            }
                                                            $var12 = $var12;
                                                            if ($var12 === null) {
                                                                if ($var9.$worldObj0.$findingSpawnPoint)
                                                                    break c;
                                                                if ($var9.$loadChunkOnProvideRequest)
                                                                    break c;
                                                                $var12 = $var9.$defaultEmptyChunk;
                                                            }
                                                            $var12.$removeEntity($var2);
                                                        }
                                                    }
                                                    $var12 = $this.$loadedEntityList;
                                                    $var10 = $var1 + (-1) | 0;
                                                    ju_ArrayList_remove($var12, $var1);
                                                    nms_WorldServer_onEntityRemoved($this, $var2);
                                                    $var1 = $var10;
                                                }
                                            }
                                            $var1 = $var1 + 1 | 0;
                                        }
                                        $var12 = new jl_IndexOutOfBoundsException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    $ptr = 5;
                                    continue main;
                                }
                                if ($var1 < 0)
                                    break;
                                if ($var10 >= 0)
                                    break;
                                nms_WorldServer_onEntityRemoved($this, $var12.$array.data[$var1]);
                                $var1 = $var1 + 1 | 0;
                            }
                            $var12 = new jl_IndexOutOfBoundsException;
                            $var12.$suppressionEnabled = 1;
                            $var12.$writableStackTrace = 1;
                            $rt_throw($var12);
                        }
                        if ($var1 < 0)
                            break;
                        if ($var10 >= 0)
                            break;
                        $var2 = $var12.$array.data[$var1];
                        $var3 = $var2.$chunkCoordX;
                        $var13 = $var2.$chunkCoordZ;
                        if ($var2.$addedToChunk) {
                            $var9 = $this.$chunkProvider;
                            $var12 = $var9.$loadedChunkHashMap;
                            var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                            $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                            $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                            var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                            var$7 = $var12.$hashArray.data;
                            var$11 = var$12 & (var$7.length - 1 | 0);
                            $var12 = var$7[var$11];
                            s: {
                                while (true) {
                                    if ($var12 === null) {
                                        $var12 = null;
                                        break s;
                                    }
                                    if (Long_eq($var12.$key1, var$14))
                                        break;
                                    $var12 = $var12.$nextEntry;
                                }
                            }
                            if ($var12 === null ? 0 : 1) {
                                $var12 = var$7[var$11];
                                t: {
                                    while ($var12 !== null) {
                                        if (Long_eq($var12.$key1, var$14)) {
                                            $var12 = $var12.$value4;
                                            break t;
                                        }
                                        $var12 = $var12.$nextEntry;
                                    }
                                    $var12 = null;
                                }
                                $var12 = $var12;
                                if ($var12 === null) {
                                    if ($var9.$worldObj0.$findingSpawnPoint)
                                        break b;
                                    if ($var9.$loadChunkOnProvideRequest)
                                        break b;
                                    $var12 = $var9.$defaultEmptyChunk;
                                }
                                $var12.$removeEntity($var2);
                            }
                        }
                        $var1 = $var1 + 1 | 0;
                    }
                    $var12 = new jl_IndexOutOfBoundsException;
                    $var12.$suppressionEnabled = 1;
                    $var12.$writableStackTrace = 1;
                    $rt_throw($var12);
                }
                $ptr = 3;
                continue main;
            }
            $var3 = $var2.$modCount0;
            $var12 = $var2.$this$00;
            if ($var3 < $var12.$modCount) {
                $var12 = new ju_ConcurrentModificationException;
                $var12.$suppressionEnabled = 1;
                $var12.$writableStackTrace = 1;
                $rt_throw($var12);
            }
            $var2.$removeIndex = $var1;
            $var2.$index = $var1 + 1 | 0;
            $var12 = $var12.$get($var1);
            $var13 = $var9.$modCount;
            var$11 = $var9.$size();
            var$12 = 0;
            u: {
                while (true) {
                    if (!(var$12 >= var$11 ? 0 : 1)) {
                        $var1 = 0;
                        break u;
                    }
                    if ($var13 < $var9.$modCount)
                        break a;
                    $var3 = var$12 + 1 | 0;
                    $var14 = $var9.$get(var$12);
                    if ($var14 === $var12 ? 1 : $var14 !== null ? $var14.$equals($var12) : $var12 !== null ? 0 : 1)
                        break;
                    var$12 = $var3;
                }
                $var1 = 1;
            }
            if ($var1)
                ju_AbstractList$1_remove($var2);
        }
        $var12 = new ju_ConcurrentModificationException;
        $var12.$suppressionEnabled = 1;
        $var12.$writableStackTrace = 1;
        $rt_throw($var12);
    case 1:
        $var2.$onUpdate();
        if ($rt_suspending()) {
            break main;
        }
        if (!$var2.$isDead)
            $var10 = $var1;
        else {
            $var12 = $this.$weatherEffects;
            $var10 = $var1 + (-1) | 0;
            ju_ArrayList_remove($var12, $var1);
        }
        $var1 = $var10 + 1 | 0;
        $var12 = $this.$weatherEffects;
        $var10 = $rt_compare($var1, $var12.$size0);
        if ($var10 < 0) {
            if ($var1 >= 0 && $var10 < 0) {
                $var2 = $var12.$array.data[$var1];
                $var2.$ticksExisted = $var2.$ticksExisted + 1 | 0;
                continue main;
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $var12 = $this.$loadedEntityList;
        $var9 = $this.$unloadedEntityList;
        if ($var9 === null) {
            $var12 = new jl_NullPointerException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $var12.$message = $rt_s(3);
            $rt_throw($var12);
        }
        $var2 = new ju_AbstractList$1;
        $var2.$this$00 = $var12;
        $var2.$modCount0 = $var12.$modCount;
        $var2.$size3 = $var12.$size();
        $var2.$removeIndex = (-1);
        v: while (true) {
            $var1 = $var2.$index;
            if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                $var1 = 0;
                w: {
                    while (true) {
                        $var12 = $this.$unloadedEntityList;
                        $var10 = $rt_compare($var1, $var12.$size0);
                        if ($var10 >= 0) {
                            $var1 = 0;
                            while (true) {
                                $var12 = $this.$unloadedEntityList;
                                $var3 = $var12.$size0;
                                $var10 = $rt_compare($var1, $var3);
                                if ($var10 >= 0) {
                                    var$7 = $var12.$array;
                                    $var1 = 0;
                                    $var9 = null;
                                    if ($var1 > $var3) {
                                        $var12 = new jl_IllegalArgumentException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    while ($var1 < $var3) {
                                        var$8 = var$7.data;
                                        $var10 = $var1 + 1 | 0;
                                        var$8[$var1] = $var9;
                                        $var1 = $var10;
                                    }
                                    $var12.$size0 = 0;
                                    $var12.$modCount = $var12.$modCount + 1 | 0;
                                    $var1 = 0;
                                    x: {
                                        while (true) {
                                            $var12 = $this.$loadedEntityList;
                                            $var10 = $rt_compare($var1, $var12.$size0);
                                            if ($var10 >= 0) {
                                                $this.$scanningTileEntities = 1;
                                                $var12 = $this.$loadedTileEntityList;
                                                $var14 = new ju_AbstractList$1;
                                                $var14.$this$00 = $var12;
                                                $var14.$modCount0 = $var12.$modCount;
                                                $var14.$size3 = $var12.$size();
                                                $var14.$removeIndex = (-1);
                                                y: {
                                                    while (true) {
                                                        $var1 = $var14.$index;
                                                        if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                                                            $this.$scanningTileEntities = 0;
                                                            $var12 = $this.$entityRemoval;
                                                            $var1 = $var12.$size0 ? 0 : 1;
                                                            z: {
                                                                if (!$var1) {
                                                                    $var9 = $this.$loadedTileEntityList;
                                                                    $var2 = new ju_AbstractList$1;
                                                                    $var2.$this$00 = $var9;
                                                                    $var2.$modCount0 = $var9.$modCount;
                                                                    $var2.$size3 = $var9.$size();
                                                                    $var2.$removeIndex = (-1);
                                                                    ba: while (true) {
                                                                        $var1 = $var2.$index;
                                                                        if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                                                            $var12 = $this.$entityRemoval;
                                                                            var$8 = $var12.$array;
                                                                            $var10 = 0;
                                                                            $var3 = $var12.$size0;
                                                                            $var9 = null;
                                                                            if ($var10 > $var3) {
                                                                                $var12 = new jl_IllegalArgumentException;
                                                                                $var12.$suppressionEnabled = 1;
                                                                                $var12.$writableStackTrace = 1;
                                                                                $rt_throw($var12);
                                                                            }
                                                                            while ($var10 < $var3) {
                                                                                var$7 = var$8.data;
                                                                                $var1 = $var10 + 1 | 0;
                                                                                var$7[$var10] = $var9;
                                                                                $var10 = $var1;
                                                                            }
                                                                            $var12.$size0 = 0;
                                                                            $var12.$modCount = $var12.$modCount + 1 | 0;
                                                                            break z;
                                                                        }
                                                                        $var3 = $var2.$modCount0;
                                                                        $var9 = $var2.$this$00;
                                                                        if ($var3 < $var9.$modCount) {
                                                                            $var12 = new ju_ConcurrentModificationException;
                                                                            $var12.$suppressionEnabled = 1;
                                                                            $var12.$writableStackTrace = 1;
                                                                            $rt_throw($var12);
                                                                        }
                                                                        $var2.$removeIndex = $var1;
                                                                        $var2.$index = $var1 + 1 | 0;
                                                                        $var9 = $var9.$get($var1);
                                                                        $var13 = $var12.$modCount;
                                                                        var$11 = $var12.$size();
                                                                        var$12 = 0;
                                                                        bb: {
                                                                            while (true) {
                                                                                if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                                    $var1 = 0;
                                                                                    break bb;
                                                                                }
                                                                                if ($var13 < $var12.$modCount)
                                                                                    break ba;
                                                                                $var3 = var$12 + 1 | 0;
                                                                                $var14 = $var12.$get(var$12);
                                                                                if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                                                                    break;
                                                                                var$12 = $var3;
                                                                            }
                                                                            $var1 = 1;
                                                                        }
                                                                        if ($var1)
                                                                            ju_AbstractList$1_remove($var2);
                                                                    }
                                                                    $var12 = new ju_ConcurrentModificationException;
                                                                    $var12.$suppressionEnabled = 1;
                                                                    $var12.$writableStackTrace = 1;
                                                                    $rt_throw($var12);
                                                                }
                                                            }
                                                            $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                                                            bc: {
                                                                bd: {
                                                                    if (!$var1) {
                                                                        $var10 = 0;
                                                                        var$13 = 0;
                                                                        while (true) {
                                                                            $var12 = $this.$addedTileEntityList;
                                                                            $var3 = $var12.$size0;
                                                                            $var1 = $rt_compare($var10, $var3);
                                                                            if ($var1 >= 0) {
                                                                                var$7 = $var12.$array;
                                                                                $var1 = 0;
                                                                                $var9 = null;
                                                                                if ($var1 > $var3) {
                                                                                    $var12 = new jl_IllegalArgumentException;
                                                                                    $var12.$suppressionEnabled = 1;
                                                                                    $var12.$writableStackTrace = 1;
                                                                                    $rt_throw($var12);
                                                                                }
                                                                                while ($var1 < $var3) {
                                                                                    var$8 = var$7.data;
                                                                                    $var10 = $var1 + 1 | 0;
                                                                                    var$8[$var1] = $var9;
                                                                                    $var1 = $var10;
                                                                                }
                                                                                $var12.$size0 = 0;
                                                                                $var12.$modCount = $var12.$modCount + 1 | 0;
                                                                                break bd;
                                                                            }
                                                                            if ($var10 < 0)
                                                                                break;
                                                                            if ($var1 >= 0)
                                                                                break;
                                                                            $var12 = $var12.$array.data[$var10];
                                                                            if (!$var12.$tileEntityInvalid) {
                                                                                $var9 = $this.$loadedTileEntityList;
                                                                                $var13 = $var9.$modCount;
                                                                                var$11 = $var9.$size();
                                                                                var$12 = var$13;
                                                                                be: {
                                                                                    while (true) {
                                                                                        if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                                            $var1 = 0;
                                                                                            break be;
                                                                                        }
                                                                                        if ($var13 < $var9.$modCount) {
                                                                                            $var12 = new ju_ConcurrentModificationException;
                                                                                            $var12.$suppressionEnabled = 1;
                                                                                            $var12.$writableStackTrace = 1;
                                                                                            $rt_throw($var12);
                                                                                        }
                                                                                        $var3 = var$12 + 1 | 0;
                                                                                        $var2 = $var9.$get(var$12);
                                                                                        if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                                                            break;
                                                                                        var$12 = $var3;
                                                                                    }
                                                                                    $var1 = 1;
                                                                                }
                                                                                if (!$var1) {
                                                                                    $var9 = $this.$loadedTileEntityList;
                                                                                    ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                                                                    var$7 = $var9.$array.data;
                                                                                    $var3 = $var9.$size0;
                                                                                    $var9.$size0 = $var3 + 1 | 0;
                                                                                    var$7[$var3] = $var12;
                                                                                    $var9.$modCount = $var9.$modCount + 1 | 0;
                                                                                }
                                                                                $var3 = $var12.$xCoord0 >> 4;
                                                                                $var1 = $var12.$zCoord0 >> 4;
                                                                                $var2 = $this.$chunkProvider;
                                                                                $var9 = $var2.$loadedChunkHashMap;
                                                                                var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                                                $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                                                $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                                                                var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                                                                var$7 = $var9.$hashArray.data;
                                                                                var$11 = var$12 & (var$7.length - 1 | 0);
                                                                                $var9 = var$7[var$11];
                                                                                bf: {
                                                                                    while (true) {
                                                                                        if ($var9 === null) {
                                                                                            $var9 = null;
                                                                                            break bf;
                                                                                        }
                                                                                        if (Long_eq($var9.$key1, var$14))
                                                                                            break;
                                                                                        $var9 = $var9.$nextEntry;
                                                                                    }
                                                                                }
                                                                                if ($var9 === null ? 0 : 1) {
                                                                                    $var9 = var$7[var$11];
                                                                                    bg: {
                                                                                        while ($var9 !== null) {
                                                                                            if (Long_eq($var9.$key1, var$14)) {
                                                                                                $var9 = $var9.$value4;
                                                                                                break bg;
                                                                                            }
                                                                                            $var9 = $var9.$nextEntry;
                                                                                        }
                                                                                        $var9 = null;
                                                                                    }
                                                                                    $var9 = $var9;
                                                                                    if ($var9 === null) {
                                                                                        if ($var2.$worldObj0.$findingSpawnPoint)
                                                                                            break bc;
                                                                                        if ($var2.$loadChunkOnProvideRequest)
                                                                                            break bc;
                                                                                        $var9 = $var2.$defaultEmptyChunk;
                                                                                    }
                                                                                    if ($var9 !== null) {
                                                                                        $var3 = $var12.$xCoord0 & 15;
                                                                                        $var13 = $var12.$yCoord0;
                                                                                        $var1 = $var12.$zCoord0 & 15;
                                                                                        $ptr = 10;
                                                                                        continue main;
                                                                                    }
                                                                                }
                                                                                $var1 = $var12.$xCoord0;
                                                                                $var3 = $var12.$yCoord0;
                                                                                $var13 = $var12.$zCoord0;
                                                                                var$11 = 0;
                                                                                var$12 = $var1 >> 4;
                                                                                var$15 = $var13 >> 4;
                                                                                $var1 = $var1 & 15;
                                                                                var$16 = $var13 & 15;
                                                                                $var12 = $this.$worldAccesses;
                                                                                $var13 = $rt_compare(var$11, $var12.$size0);
                                                                                if ($var13 < 0) {
                                                                                    if (var$11 >= 0 && $var13 < 0) {
                                                                                        $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                                                        $var13 = 0;
                                                                                        $ptr = 8;
                                                                                        continue main;
                                                                                    }
                                                                                    $var12 = new jl_IndexOutOfBoundsException;
                                                                                    $var12.$suppressionEnabled = 1;
                                                                                    $var12.$writableStackTrace = 1;
                                                                                    $rt_throw($var12);
                                                                                }
                                                                            }
                                                                            $var10 = $var10 + 1 | 0;
                                                                        }
                                                                        $var12 = new jl_IndexOutOfBoundsException;
                                                                        $var12.$suppressionEnabled = 1;
                                                                        $var12.$writableStackTrace = 1;
                                                                        $rt_throw($var12);
                                                                    }
                                                                }
                                                                return;
                                                            }
                                                            $ptr = 9;
                                                            continue main;
                                                        }
                                                        $var10 = $var14.$modCount0;
                                                        $var12 = $var14.$this$00;
                                                        if ($var10 < $var12.$modCount)
                                                            break;
                                                        $var14.$removeIndex = $var1;
                                                        $var14.$index = $var1 + 1 | 0;
                                                        $var9 = $var12.$get($var1);
                                                        if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                                                            $var1 = $var9.$xCoord0;
                                                            $var10 = $var9.$yCoord0;
                                                            $var3 = $var9.$zCoord0;
                                                            if ($var10 >= 0 && $var10 < 256) {
                                                                $var10 = $var1 >> 4;
                                                                $var1 = $var3 >> 4;
                                                                $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                                                                var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                                $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                                $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                                                                $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                                                                var$7 = $var12.$hashArray.data;
                                                                $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                                                                bh: {
                                                                    while (true) {
                                                                        if ($var12 === null) {
                                                                            $var12 = null;
                                                                            break bh;
                                                                        }
                                                                        if (Long_eq($var12.$key1, var$14))
                                                                            break;
                                                                        $var12 = $var12.$nextEntry;
                                                                    }
                                                                }
                                                                $var1 = $var12 === null ? 0 : 1;
                                                            } else
                                                                $var1 = 0;
                                                            if ($var1) {
                                                                $ptr = 4;
                                                                continue main;
                                                            }
                                                        }
                                                        if ($var9.$tileEntityInvalid) {
                                                            ju_AbstractList$1_remove($var14);
                                                            $var1 = $var9.$xCoord0 >> 4;
                                                            $var10 = $var9.$zCoord0 >> 4;
                                                            $var2 = $this.$chunkProvider;
                                                            $var12 = $var2.$loadedChunkHashMap;
                                                            var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                                                            $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                            $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                                                            var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                                                            var$7 = $var12.$hashArray.data;
                                                            $var13 = var$11 & (var$7.length - 1 | 0);
                                                            $var12 = var$7[$var13];
                                                            bi: {
                                                                while (true) {
                                                                    if ($var12 === null) {
                                                                        $var12 = null;
                                                                        break bi;
                                                                    }
                                                                    if (Long_eq($var12.$key1, var$14))
                                                                        break;
                                                                    $var12 = $var12.$nextEntry;
                                                                }
                                                            }
                                                            if ($var12 === null ? 0 : 1) {
                                                                $var12 = var$7[$var13];
                                                                bj: {
                                                                    while ($var12 !== null) {
                                                                        if (Long_eq($var12.$key1, var$14)) {
                                                                            $var12 = $var12.$value4;
                                                                            break bj;
                                                                        }
                                                                        $var12 = $var12.$nextEntry;
                                                                    }
                                                                    $var12 = null;
                                                                }
                                                                $var12 = $var12;
                                                                if ($var12 === null) {
                                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                                        break y;
                                                                    if ($var2.$loadChunkOnProvideRequest)
                                                                        break y;
                                                                    $var12 = $var2.$defaultEmptyChunk;
                                                                }
                                                                if ($var12 !== null) {
                                                                    $var1 = $var9.$xCoord0 & 15;
                                                                    $var10 = $var9.$yCoord0;
                                                                    $var3 = $var9.$zCoord0 & 15;
                                                                    $ptr = 7;
                                                                    continue main;
                                                                }
                                                            }
                                                        }
                                                    }
                                                    $var12 = new ju_ConcurrentModificationException;
                                                    $var12.$suppressionEnabled = 1;
                                                    $var12.$writableStackTrace = 1;
                                                    $rt_throw($var12);
                                                }
                                                $ptr = 6;
                                                continue main;
                                            }
                                            if ($var1 < 0)
                                                break;
                                            if ($var10 >= 0)
                                                break;
                                            bk: {
                                                $var2 = $var12.$array.data[$var1];
                                                $var12 = $var2.$ridingEntity;
                                                if ($var12 !== null) {
                                                    if (!$var12.$isDead && $var12.$riddenByEntity === $var2)
                                                        break bk;
                                                    $var12.$riddenByEntity = null;
                                                    $var2.$ridingEntity = null;
                                                }
                                                if (!$var2.$isDead) {
                                                    $ptr = 2;
                                                    continue main;
                                                }
                                                if ($var2.$isDead) {
                                                    $var3 = $var2.$chunkCoordX;
                                                    $var13 = $var2.$chunkCoordZ;
                                                    if ($var2.$addedToChunk) {
                                                        $var9 = $this.$chunkProvider;
                                                        $var12 = $var9.$loadedChunkHashMap;
                                                        var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                                                        $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                        $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                                                        var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                                                        var$7 = $var12.$hashArray.data;
                                                        var$11 = var$12 & (var$7.length - 1 | 0);
                                                        $var12 = var$7[var$11];
                                                        bl: {
                                                            while (true) {
                                                                if ($var12 === null) {
                                                                    $var12 = null;
                                                                    break bl;
                                                                }
                                                                if (Long_eq($var12.$key1, var$14))
                                                                    break;
                                                                $var12 = $var12.$nextEntry;
                                                            }
                                                        }
                                                        if ($var12 === null ? 0 : 1) {
                                                            $var12 = var$7[var$11];
                                                            bm: {
                                                                while ($var12 !== null) {
                                                                    if (Long_eq($var12.$key1, var$14)) {
                                                                        $var12 = $var12.$value4;
                                                                        break bm;
                                                                    }
                                                                    $var12 = $var12.$nextEntry;
                                                                }
                                                                $var12 = null;
                                                            }
                                                            $var12 = $var12;
                                                            if ($var12 === null) {
                                                                if ($var9.$worldObj0.$findingSpawnPoint)
                                                                    break x;
                                                                if ($var9.$loadChunkOnProvideRequest)
                                                                    break x;
                                                                $var12 = $var9.$defaultEmptyChunk;
                                                            }
                                                            $var12.$removeEntity($var2);
                                                        }
                                                    }
                                                    $var12 = $this.$loadedEntityList;
                                                    $var10 = $var1 + (-1) | 0;
                                                    ju_ArrayList_remove($var12, $var1);
                                                    nms_WorldServer_onEntityRemoved($this, $var2);
                                                    $var1 = $var10;
                                                }
                                            }
                                            $var1 = $var1 + 1 | 0;
                                        }
                                        $var12 = new jl_IndexOutOfBoundsException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    $ptr = 5;
                                    continue main;
                                }
                                if ($var1 < 0)
                                    break;
                                if ($var10 >= 0)
                                    break;
                                nms_WorldServer_onEntityRemoved($this, $var12.$array.data[$var1]);
                                $var1 = $var1 + 1 | 0;
                            }
                            $var12 = new jl_IndexOutOfBoundsException;
                            $var12.$suppressionEnabled = 1;
                            $var12.$writableStackTrace = 1;
                            $rt_throw($var12);
                        }
                        if ($var1 < 0)
                            break;
                        if ($var10 >= 0)
                            break;
                        $var2 = $var12.$array.data[$var1];
                        $var3 = $var2.$chunkCoordX;
                        $var13 = $var2.$chunkCoordZ;
                        if ($var2.$addedToChunk) {
                            $var9 = $this.$chunkProvider;
                            $var12 = $var9.$loadedChunkHashMap;
                            var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                            $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                            $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                            var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                            var$7 = $var12.$hashArray.data;
                            var$11 = var$12 & (var$7.length - 1 | 0);
                            $var12 = var$7[var$11];
                            bn: {
                                while (true) {
                                    if ($var12 === null) {
                                        $var12 = null;
                                        break bn;
                                    }
                                    if (Long_eq($var12.$key1, var$14))
                                        break;
                                    $var12 = $var12.$nextEntry;
                                }
                            }
                            if ($var12 === null ? 0 : 1) {
                                $var12 = var$7[var$11];
                                bo: {
                                    while ($var12 !== null) {
                                        if (Long_eq($var12.$key1, var$14)) {
                                            $var12 = $var12.$value4;
                                            break bo;
                                        }
                                        $var12 = $var12.$nextEntry;
                                    }
                                    $var12 = null;
                                }
                                $var12 = $var12;
                                if ($var12 === null) {
                                    if ($var9.$worldObj0.$findingSpawnPoint)
                                        break w;
                                    if ($var9.$loadChunkOnProvideRequest)
                                        break w;
                                    $var12 = $var9.$defaultEmptyChunk;
                                }
                                $var12.$removeEntity($var2);
                            }
                        }
                        $var1 = $var1 + 1 | 0;
                    }
                    $var12 = new jl_IndexOutOfBoundsException;
                    $var12.$suppressionEnabled = 1;
                    $var12.$writableStackTrace = 1;
                    $rt_throw($var12);
                }
                $ptr = 3;
                continue main;
            }
            $var3 = $var2.$modCount0;
            $var12 = $var2.$this$00;
            if ($var3 < $var12.$modCount) {
                $var12 = new ju_ConcurrentModificationException;
                $var12.$suppressionEnabled = 1;
                $var12.$writableStackTrace = 1;
                $rt_throw($var12);
            }
            $var2.$removeIndex = $var1;
            $var2.$index = $var1 + 1 | 0;
            $var12 = $var12.$get($var1);
            $var13 = $var9.$modCount;
            var$11 = $var9.$size();
            var$12 = 0;
            bp: {
                while (true) {
                    if (!(var$12 >= var$11 ? 0 : 1)) {
                        $var1 = 0;
                        break bp;
                    }
                    if ($var13 < $var9.$modCount)
                        break v;
                    $var3 = var$12 + 1 | 0;
                    $var14 = $var9.$get(var$12);
                    if ($var14 === $var12 ? 1 : $var14 !== null ? $var14.$equals($var12) : $var12 !== null ? 0 : 1)
                        break;
                    var$12 = $var3;
                }
                $var1 = 1;
            }
            if ($var1)
                ju_AbstractList$1_remove($var2);
        }
        $var12 = new ju_ConcurrentModificationException;
        $var12.$suppressionEnabled = 1;
        $var12.$writableStackTrace = 1;
        $rt_throw($var12);
    case 2:
        nms_World_updateEntity($this, $var2);
        if ($rt_suspending()) {
            break main;
        }
        bq: {
            br: while (true) {
                if ($var2.$isDead) {
                    $var3 = $var2.$chunkCoordX;
                    $var13 = $var2.$chunkCoordZ;
                    if ($var2.$addedToChunk) {
                        $var9 = $this.$chunkProvider;
                        $var12 = $var9.$loadedChunkHashMap;
                        var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                        $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                        $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                        var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                        var$7 = $var12.$hashArray.data;
                        var$11 = var$12 & (var$7.length - 1 | 0);
                        $var12 = var$7[var$11];
                        bs: {
                            while (true) {
                                if ($var12 === null) {
                                    $var12 = null;
                                    break bs;
                                }
                                if (Long_eq($var12.$key1, var$14))
                                    break;
                                $var12 = $var12.$nextEntry;
                            }
                        }
                        if ($var12 === null ? 0 : 1) {
                            $var12 = var$7[var$11];
                            bt: {
                                while ($var12 !== null) {
                                    if (Long_eq($var12.$key1, var$14)) {
                                        $var12 = $var12.$value4;
                                        break bt;
                                    }
                                    $var12 = $var12.$nextEntry;
                                }
                                $var12 = null;
                            }
                            $var12 = $var12;
                            if ($var12 === null) {
                                if ($var9.$worldObj0.$findingSpawnPoint)
                                    break bq;
                                if ($var9.$loadChunkOnProvideRequest)
                                    break bq;
                                $var12 = $var9.$defaultEmptyChunk;
                            }
                            $var12.$removeEntity($var2);
                        }
                    }
                    $var12 = $this.$loadedEntityList;
                    $var10 = $var1 + (-1) | 0;
                    ju_ArrayList_remove($var12, $var1);
                    nms_WorldServer_onEntityRemoved($this, $var2);
                    $var1 = $var10;
                }
                bu: {
                    while (true) {
                        $var1 = $var1 + 1 | 0;
                        $var12 = $this.$loadedEntityList;
                        $var10 = $rt_compare($var1, $var12.$size0);
                        if ($var10 >= 0) {
                            $this.$scanningTileEntities = 1;
                            $var12 = $this.$loadedTileEntityList;
                            $var14 = new ju_AbstractList$1;
                            $var14.$this$00 = $var12;
                            $var14.$modCount0 = $var12.$modCount;
                            $var14.$size3 = $var12.$size();
                            $var14.$removeIndex = (-1);
                            bv: {
                                while (true) {
                                    $var1 = $var14.$index;
                                    if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                                        $this.$scanningTileEntities = 0;
                                        $var12 = $this.$entityRemoval;
                                        $var1 = $var12.$size0 ? 0 : 1;
                                        bw: {
                                            if (!$var1) {
                                                $var9 = $this.$loadedTileEntityList;
                                                $var2 = new ju_AbstractList$1;
                                                $var2.$this$00 = $var9;
                                                $var2.$modCount0 = $var9.$modCount;
                                                $var2.$size3 = $var9.$size();
                                                $var2.$removeIndex = (-1);
                                                r: while (true) {
                                                    $var1 = $var2.$index;
                                                    if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                                        $var12 = $this.$entityRemoval;
                                                        var$8 = $var12.$array;
                                                        $var10 = 0;
                                                        $var3 = $var12.$size0;
                                                        $var9 = null;
                                                        if ($var10 > $var3) {
                                                            $var12 = new jl_IllegalArgumentException;
                                                            $var12.$suppressionEnabled = 1;
                                                            $var12.$writableStackTrace = 1;
                                                            $rt_throw($var12);
                                                        }
                                                        while ($var10 < $var3) {
                                                            var$7 = var$8.data;
                                                            $var1 = $var10 + 1 | 0;
                                                            var$7[$var10] = $var9;
                                                            $var10 = $var1;
                                                        }
                                                        $var12.$size0 = 0;
                                                        $var12.$modCount = $var12.$modCount + 1 | 0;
                                                        break bw;
                                                    }
                                                    $var3 = $var2.$modCount0;
                                                    $var9 = $var2.$this$00;
                                                    if ($var3 < $var9.$modCount) {
                                                        $var12 = new ju_ConcurrentModificationException;
                                                        $var12.$suppressionEnabled = 1;
                                                        $var12.$writableStackTrace = 1;
                                                        $rt_throw($var12);
                                                    }
                                                    $var2.$removeIndex = $var1;
                                                    $var2.$index = $var1 + 1 | 0;
                                                    $var9 = $var9.$get($var1);
                                                    $var13 = $var12.$modCount;
                                                    var$11 = $var12.$size();
                                                    var$12 = 0;
                                                    bx: {
                                                        while (true) {
                                                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                $var1 = 0;
                                                                break bx;
                                                            }
                                                            if ($var13 < $var12.$modCount)
                                                                break r;
                                                            $var3 = var$12 + 1 | 0;
                                                            $var14 = $var12.$get(var$12);
                                                            if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                                                break;
                                                            var$12 = $var3;
                                                        }
                                                        $var1 = 1;
                                                    }
                                                    if ($var1)
                                                        ju_AbstractList$1_remove($var2);
                                                }
                                                $var12 = new ju_ConcurrentModificationException;
                                                $var12.$suppressionEnabled = 1;
                                                $var12.$writableStackTrace = 1;
                                                $rt_throw($var12);
                                            }
                                        }
                                        $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                                        by: {
                                            bz: {
                                                if (!$var1) {
                                                    $var10 = 0;
                                                    var$13 = 0;
                                                    while (true) {
                                                        $var12 = $this.$addedTileEntityList;
                                                        $var3 = $var12.$size0;
                                                        $var1 = $rt_compare($var10, $var3);
                                                        if ($var1 >= 0) {
                                                            var$7 = $var12.$array;
                                                            $var1 = 0;
                                                            $var9 = null;
                                                            if ($var1 > $var3) {
                                                                $var12 = new jl_IllegalArgumentException;
                                                                $var12.$suppressionEnabled = 1;
                                                                $var12.$writableStackTrace = 1;
                                                                $rt_throw($var12);
                                                            }
                                                            while ($var1 < $var3) {
                                                                var$8 = var$7.data;
                                                                $var10 = $var1 + 1 | 0;
                                                                var$8[$var1] = $var9;
                                                                $var1 = $var10;
                                                            }
                                                            $var12.$size0 = 0;
                                                            $var12.$modCount = $var12.$modCount + 1 | 0;
                                                            break bz;
                                                        }
                                                        if ($var10 < 0)
                                                            break;
                                                        if ($var1 >= 0)
                                                            break;
                                                        $var12 = $var12.$array.data[$var10];
                                                        if (!$var12.$tileEntityInvalid) {
                                                            $var9 = $this.$loadedTileEntityList;
                                                            $var13 = $var9.$modCount;
                                                            var$11 = $var9.$size();
                                                            var$12 = var$13;
                                                            bA: {
                                                                while (true) {
                                                                    if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                        $var1 = 0;
                                                                        break bA;
                                                                    }
                                                                    if ($var13 < $var9.$modCount) {
                                                                        $var12 = new ju_ConcurrentModificationException;
                                                                        $var12.$suppressionEnabled = 1;
                                                                        $var12.$writableStackTrace = 1;
                                                                        $rt_throw($var12);
                                                                    }
                                                                    $var3 = var$12 + 1 | 0;
                                                                    $var2 = $var9.$get(var$12);
                                                                    if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                                        break;
                                                                    var$12 = $var3;
                                                                }
                                                                $var1 = 1;
                                                            }
                                                            if (!$var1) {
                                                                $var9 = $this.$loadedTileEntityList;
                                                                ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                                                var$7 = $var9.$array.data;
                                                                $var3 = $var9.$size0;
                                                                $var9.$size0 = $var3 + 1 | 0;
                                                                var$7[$var3] = $var12;
                                                                $var9.$modCount = $var9.$modCount + 1 | 0;
                                                            }
                                                            $var3 = $var12.$xCoord0 >> 4;
                                                            $var1 = $var12.$zCoord0 >> 4;
                                                            $var2 = $this.$chunkProvider;
                                                            $var9 = $var2.$loadedChunkHashMap;
                                                            var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                            $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                            $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                                            var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                                            var$7 = $var9.$hashArray.data;
                                                            var$11 = var$12 & (var$7.length - 1 | 0);
                                                            $var9 = var$7[var$11];
                                                            z: {
                                                                while (true) {
                                                                    if ($var9 === null) {
                                                                        $var9 = null;
                                                                        break z;
                                                                    }
                                                                    if (Long_eq($var9.$key1, var$14))
                                                                        break;
                                                                    $var9 = $var9.$nextEntry;
                                                                }
                                                            }
                                                            if ($var9 === null ? 0 : 1) {
                                                                $var9 = var$7[var$11];
                                                                bb: {
                                                                    while ($var9 !== null) {
                                                                        if (Long_eq($var9.$key1, var$14)) {
                                                                            $var9 = $var9.$value4;
                                                                            break bb;
                                                                        }
                                                                        $var9 = $var9.$nextEntry;
                                                                    }
                                                                    $var9 = null;
                                                                }
                                                                $var9 = $var9;
                                                                if ($var9 === null) {
                                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                                        break by;
                                                                    if ($var2.$loadChunkOnProvideRequest)
                                                                        break by;
                                                                    $var9 = $var2.$defaultEmptyChunk;
                                                                }
                                                                if ($var9 !== null) {
                                                                    $var3 = $var12.$xCoord0 & 15;
                                                                    $var13 = $var12.$yCoord0;
                                                                    $var1 = $var12.$zCoord0 & 15;
                                                                    $ptr = 10;
                                                                    continue main;
                                                                }
                                                            }
                                                            $var1 = $var12.$xCoord0;
                                                            $var3 = $var12.$yCoord0;
                                                            $var13 = $var12.$zCoord0;
                                                            var$11 = 0;
                                                            var$12 = $var1 >> 4;
                                                            var$15 = $var13 >> 4;
                                                            $var1 = $var1 & 15;
                                                            var$16 = $var13 & 15;
                                                            $var12 = $this.$worldAccesses;
                                                            $var13 = $rt_compare(var$11, $var12.$size0);
                                                            if ($var13 < 0) {
                                                                if (var$11 >= 0 && $var13 < 0) {
                                                                    $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                                    $var13 = 0;
                                                                    $ptr = 8;
                                                                    continue main;
                                                                }
                                                                $var12 = new jl_IndexOutOfBoundsException;
                                                                $var12.$suppressionEnabled = 1;
                                                                $var12.$writableStackTrace = 1;
                                                                $rt_throw($var12);
                                                            }
                                                        }
                                                        $var10 = $var10 + 1 | 0;
                                                    }
                                                    $var12 = new jl_IndexOutOfBoundsException;
                                                    $var12.$suppressionEnabled = 1;
                                                    $var12.$writableStackTrace = 1;
                                                    $rt_throw($var12);
                                                }
                                            }
                                            return;
                                        }
                                        $ptr = 9;
                                        continue main;
                                    }
                                    $var10 = $var14.$modCount0;
                                    $var12 = $var14.$this$00;
                                    if ($var10 < $var12.$modCount)
                                        break;
                                    $var14.$removeIndex = $var1;
                                    $var14.$index = $var1 + 1 | 0;
                                    $var9 = $var12.$get($var1);
                                    if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                                        $var1 = $var9.$xCoord0;
                                        $var10 = $var9.$yCoord0;
                                        $var3 = $var9.$zCoord0;
                                        if ($var10 >= 0 && $var10 < 256) {
                                            $var10 = $var1 >> 4;
                                            $var1 = $var3 >> 4;
                                            $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                                            var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                            $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                            $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                                            $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                                            var$7 = $var12.$hashArray.data;
                                            $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                                            bB: {
                                                while (true) {
                                                    if ($var12 === null) {
                                                        $var12 = null;
                                                        break bB;
                                                    }
                                                    if (Long_eq($var12.$key1, var$14))
                                                        break;
                                                    $var12 = $var12.$nextEntry;
                                                }
                                            }
                                            $var1 = $var12 === null ? 0 : 1;
                                        } else
                                            $var1 = 0;
                                        if ($var1) {
                                            $ptr = 4;
                                            continue main;
                                        }
                                    }
                                    if ($var9.$tileEntityInvalid) {
                                        ju_AbstractList$1_remove($var14);
                                        $var1 = $var9.$xCoord0 >> 4;
                                        $var10 = $var9.$zCoord0 >> 4;
                                        $var2 = $this.$chunkProvider;
                                        $var12 = $var2.$loadedChunkHashMap;
                                        var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                                        $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                        $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                                        var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                                        var$7 = $var12.$hashArray.data;
                                        $var13 = var$11 & (var$7.length - 1 | 0);
                                        $var12 = var$7[$var13];
                                        bC: {
                                            while (true) {
                                                if ($var12 === null) {
                                                    $var12 = null;
                                                    break bC;
                                                }
                                                if (Long_eq($var12.$key1, var$14))
                                                    break;
                                                $var12 = $var12.$nextEntry;
                                            }
                                        }
                                        if ($var12 === null ? 0 : 1) {
                                            $var12 = var$7[$var13];
                                            bD: {
                                                while ($var12 !== null) {
                                                    if (Long_eq($var12.$key1, var$14)) {
                                                        $var12 = $var12.$value4;
                                                        break bD;
                                                    }
                                                    $var12 = $var12.$nextEntry;
                                                }
                                                $var12 = null;
                                            }
                                            $var12 = $var12;
                                            if ($var12 === null) {
                                                if ($var2.$worldObj0.$findingSpawnPoint)
                                                    break bv;
                                                if ($var2.$loadChunkOnProvideRequest)
                                                    break bv;
                                                $var12 = $var2.$defaultEmptyChunk;
                                            }
                                            if ($var12 !== null) {
                                                $var1 = $var9.$xCoord0 & 15;
                                                $var10 = $var9.$yCoord0;
                                                $var3 = $var9.$zCoord0 & 15;
                                                $ptr = 7;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                                $var12 = new ju_ConcurrentModificationException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                            $ptr = 6;
                            continue main;
                        }
                        if ($var1 < 0)
                            break br;
                        if ($var10 >= 0)
                            break br;
                        $var2 = $var12.$array.data[$var1];
                        $var12 = $var2.$ridingEntity;
                        if ($var12 === null)
                            break bu;
                        if ($var12.$isDead)
                            break;
                        if ($var12.$riddenByEntity !== $var2)
                            break;
                    }
                    $var12.$riddenByEntity = null;
                    $var2.$ridingEntity = null;
                }
                if ($var2.$isDead)
                    continue;
                else {
                    continue main;
                }
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk($var9, $var3, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        bq: {
            bE: while (true) {
                $var12.$removeEntity($var2);
                while (true) {
                    $var1 = $var1 + 1 | 0;
                    $var12 = $this.$unloadedEntityList;
                    $var10 = $rt_compare($var1, $var12.$size0);
                    if ($var10 >= 0) {
                        $var1 = 0;
                        while (true) {
                            $var12 = $this.$unloadedEntityList;
                            $var3 = $var12.$size0;
                            $var10 = $rt_compare($var1, $var3);
                            if ($var10 >= 0) {
                                var$7 = $var12.$array;
                                $var1 = 0;
                                $var9 = null;
                                if ($var1 > $var3) {
                                    $var12 = new jl_IllegalArgumentException;
                                    $var12.$suppressionEnabled = 1;
                                    $var12.$writableStackTrace = 1;
                                    $rt_throw($var12);
                                }
                                while ($var1 < $var3) {
                                    var$8 = var$7.data;
                                    $var10 = $var1 + 1 | 0;
                                    var$8[$var1] = $var9;
                                    $var1 = $var10;
                                }
                                $var12.$size0 = 0;
                                $var12.$modCount = $var12.$modCount + 1 | 0;
                                $var1 = 0;
                                bF: {
                                    while (true) {
                                        $var12 = $this.$loadedEntityList;
                                        $var10 = $rt_compare($var1, $var12.$size0);
                                        if ($var10 >= 0) {
                                            $this.$scanningTileEntities = 1;
                                            $var12 = $this.$loadedTileEntityList;
                                            $var14 = new ju_AbstractList$1;
                                            $var14.$this$00 = $var12;
                                            $var14.$modCount0 = $var12.$modCount;
                                            $var14.$size3 = $var12.$size();
                                            $var14.$removeIndex = (-1);
                                            bC: {
                                                while (true) {
                                                    $var1 = $var14.$index;
                                                    if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                                                        $this.$scanningTileEntities = 0;
                                                        $var12 = $this.$entityRemoval;
                                                        $var1 = $var12.$size0 ? 0 : 1;
                                                        bG: {
                                                            if (!$var1) {
                                                                $var9 = $this.$loadedTileEntityList;
                                                                $var2 = new ju_AbstractList$1;
                                                                $var2.$this$00 = $var9;
                                                                $var2.$modCount0 = $var9.$modCount;
                                                                $var2.$size3 = $var9.$size();
                                                                $var2.$removeIndex = (-1);
                                                                m: while (true) {
                                                                    $var1 = $var2.$index;
                                                                    if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                                                        $var12 = $this.$entityRemoval;
                                                                        var$8 = $var12.$array;
                                                                        $var10 = 0;
                                                                        $var3 = $var12.$size0;
                                                                        $var9 = null;
                                                                        if ($var10 > $var3) {
                                                                            $var12 = new jl_IllegalArgumentException;
                                                                            $var12.$suppressionEnabled = 1;
                                                                            $var12.$writableStackTrace = 1;
                                                                            $rt_throw($var12);
                                                                        }
                                                                        while ($var10 < $var3) {
                                                                            var$7 = var$8.data;
                                                                            $var1 = $var10 + 1 | 0;
                                                                            var$7[$var10] = $var9;
                                                                            $var10 = $var1;
                                                                        }
                                                                        $var12.$size0 = 0;
                                                                        $var12.$modCount = $var12.$modCount + 1 | 0;
                                                                        break bG;
                                                                    }
                                                                    $var3 = $var2.$modCount0;
                                                                    $var9 = $var2.$this$00;
                                                                    if ($var3 < $var9.$modCount) {
                                                                        $var12 = new ju_ConcurrentModificationException;
                                                                        $var12.$suppressionEnabled = 1;
                                                                        $var12.$writableStackTrace = 1;
                                                                        $rt_throw($var12);
                                                                    }
                                                                    $var2.$removeIndex = $var1;
                                                                    $var2.$index = $var1 + 1 | 0;
                                                                    $var9 = $var9.$get($var1);
                                                                    $var13 = $var12.$modCount;
                                                                    var$11 = $var12.$size();
                                                                    var$12 = 0;
                                                                    bz: {
                                                                        while (true) {
                                                                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                                $var1 = 0;
                                                                                break bz;
                                                                            }
                                                                            if ($var13 < $var12.$modCount)
                                                                                break m;
                                                                            $var3 = var$12 + 1 | 0;
                                                                            $var14 = $var12.$get(var$12);
                                                                            if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                                                                break;
                                                                            var$12 = $var3;
                                                                        }
                                                                        $var1 = 1;
                                                                    }
                                                                    if ($var1)
                                                                        ju_AbstractList$1_remove($var2);
                                                                }
                                                                $var12 = new ju_ConcurrentModificationException;
                                                                $var12.$suppressionEnabled = 1;
                                                                $var12.$writableStackTrace = 1;
                                                                $rt_throw($var12);
                                                            }
                                                        }
                                                        $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                                                        z: {
                                                            f: {
                                                                if (!$var1) {
                                                                    $var10 = 0;
                                                                    var$13 = 0;
                                                                    while (true) {
                                                                        $var12 = $this.$addedTileEntityList;
                                                                        $var3 = $var12.$size0;
                                                                        $var1 = $rt_compare($var10, $var3);
                                                                        if ($var1 >= 0) {
                                                                            var$7 = $var12.$array;
                                                                            $var1 = 0;
                                                                            $var9 = null;
                                                                            if ($var1 > $var3) {
                                                                                $var12 = new jl_IllegalArgumentException;
                                                                                $var12.$suppressionEnabled = 1;
                                                                                $var12.$writableStackTrace = 1;
                                                                                $rt_throw($var12);
                                                                            }
                                                                            while ($var1 < $var3) {
                                                                                var$8 = var$7.data;
                                                                                $var10 = $var1 + 1 | 0;
                                                                                var$8[$var1] = $var9;
                                                                                $var1 = $var10;
                                                                            }
                                                                            $var12.$size0 = 0;
                                                                            $var12.$modCount = $var12.$modCount + 1 | 0;
                                                                            break f;
                                                                        }
                                                                        if ($var10 < 0)
                                                                            break;
                                                                        if ($var1 >= 0)
                                                                            break;
                                                                        $var12 = $var12.$array.data[$var10];
                                                                        if (!$var12.$tileEntityInvalid) {
                                                                            $var9 = $this.$loadedTileEntityList;
                                                                            $var13 = $var9.$modCount;
                                                                            var$11 = $var9.$size();
                                                                            var$12 = var$13;
                                                                            bb: {
                                                                                while (true) {
                                                                                    if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                                        $var1 = 0;
                                                                                        break bb;
                                                                                    }
                                                                                    if ($var13 < $var9.$modCount) {
                                                                                        $var12 = new ju_ConcurrentModificationException;
                                                                                        $var12.$suppressionEnabled = 1;
                                                                                        $var12.$writableStackTrace = 1;
                                                                                        $rt_throw($var12);
                                                                                    }
                                                                                    $var3 = var$12 + 1 | 0;
                                                                                    $var2 = $var9.$get(var$12);
                                                                                    if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                                                        break;
                                                                                    var$12 = $var3;
                                                                                }
                                                                                $var1 = 1;
                                                                            }
                                                                            if (!$var1) {
                                                                                $var9 = $this.$loadedTileEntityList;
                                                                                ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                                                                var$7 = $var9.$array.data;
                                                                                $var3 = $var9.$size0;
                                                                                $var9.$size0 = $var3 + 1 | 0;
                                                                                var$7[$var3] = $var12;
                                                                                $var9.$modCount = $var9.$modCount + 1 | 0;
                                                                            }
                                                                            $var3 = $var12.$xCoord0 >> 4;
                                                                            $var1 = $var12.$zCoord0 >> 4;
                                                                            $var2 = $this.$chunkProvider;
                                                                            $var9 = $var2.$loadedChunkHashMap;
                                                                            var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                                            $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                                            $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                                                            var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                                                            var$7 = $var9.$hashArray.data;
                                                                            var$11 = var$12 & (var$7.length - 1 | 0);
                                                                            $var9 = var$7[var$11];
                                                                            bH: {
                                                                                while (true) {
                                                                                    if ($var9 === null) {
                                                                                        $var9 = null;
                                                                                        break bH;
                                                                                    }
                                                                                    if (Long_eq($var9.$key1, var$14))
                                                                                        break;
                                                                                    $var9 = $var9.$nextEntry;
                                                                                }
                                                                            }
                                                                            if ($var9 === null ? 0 : 1) {
                                                                                $var9 = var$7[var$11];
                                                                                bd: {
                                                                                    while ($var9 !== null) {
                                                                                        if (Long_eq($var9.$key1, var$14)) {
                                                                                            $var9 = $var9.$value4;
                                                                                            break bd;
                                                                                        }
                                                                                        $var9 = $var9.$nextEntry;
                                                                                    }
                                                                                    $var9 = null;
                                                                                }
                                                                                $var9 = $var9;
                                                                                if ($var9 === null) {
                                                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                                                        break z;
                                                                                    if ($var2.$loadChunkOnProvideRequest)
                                                                                        break z;
                                                                                    $var9 = $var2.$defaultEmptyChunk;
                                                                                }
                                                                                if ($var9 !== null) {
                                                                                    $var3 = $var12.$xCoord0 & 15;
                                                                                    $var13 = $var12.$yCoord0;
                                                                                    $var1 = $var12.$zCoord0 & 15;
                                                                                    $ptr = 10;
                                                                                    continue main;
                                                                                }
                                                                            }
                                                                            $var1 = $var12.$xCoord0;
                                                                            $var3 = $var12.$yCoord0;
                                                                            $var13 = $var12.$zCoord0;
                                                                            var$11 = 0;
                                                                            var$12 = $var1 >> 4;
                                                                            var$15 = $var13 >> 4;
                                                                            $var1 = $var1 & 15;
                                                                            var$16 = $var13 & 15;
                                                                            $var12 = $this.$worldAccesses;
                                                                            $var13 = $rt_compare(var$11, $var12.$size0);
                                                                            if ($var13 < 0) {
                                                                                if (var$11 >= 0 && $var13 < 0) {
                                                                                    $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                                                    $var13 = 0;
                                                                                    $ptr = 8;
                                                                                    continue main;
                                                                                }
                                                                                $var12 = new jl_IndexOutOfBoundsException;
                                                                                $var12.$suppressionEnabled = 1;
                                                                                $var12.$writableStackTrace = 1;
                                                                                $rt_throw($var12);
                                                                            }
                                                                        }
                                                                        $var10 = $var10 + 1 | 0;
                                                                    }
                                                                    $var12 = new jl_IndexOutOfBoundsException;
                                                                    $var12.$suppressionEnabled = 1;
                                                                    $var12.$writableStackTrace = 1;
                                                                    $rt_throw($var12);
                                                                }
                                                            }
                                                            return;
                                                        }
                                                        $ptr = 9;
                                                        continue main;
                                                    }
                                                    $var10 = $var14.$modCount0;
                                                    $var12 = $var14.$this$00;
                                                    if ($var10 < $var12.$modCount)
                                                        break;
                                                    $var14.$removeIndex = $var1;
                                                    $var14.$index = $var1 + 1 | 0;
                                                    $var9 = $var12.$get($var1);
                                                    if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                                                        $var1 = $var9.$xCoord0;
                                                        $var10 = $var9.$yCoord0;
                                                        $var3 = $var9.$zCoord0;
                                                        if ($var10 >= 0 && $var10 < 256) {
                                                            $var10 = $var1 >> 4;
                                                            $var1 = $var3 >> 4;
                                                            $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                                                            var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                            $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                            $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                                                            $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                                                            var$7 = $var12.$hashArray.data;
                                                            $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                                                            bl: {
                                                                while (true) {
                                                                    if ($var12 === null) {
                                                                        $var12 = null;
                                                                        break bl;
                                                                    }
                                                                    if (Long_eq($var12.$key1, var$14))
                                                                        break;
                                                                    $var12 = $var12.$nextEntry;
                                                                }
                                                            }
                                                            $var1 = $var12 === null ? 0 : 1;
                                                        } else
                                                            $var1 = 0;
                                                        if ($var1) {
                                                            $ptr = 4;
                                                            continue main;
                                                        }
                                                    }
                                                    if ($var9.$tileEntityInvalid) {
                                                        ju_AbstractList$1_remove($var14);
                                                        $var1 = $var9.$xCoord0 >> 4;
                                                        $var10 = $var9.$zCoord0 >> 4;
                                                        $var2 = $this.$chunkProvider;
                                                        $var12 = $var2.$loadedChunkHashMap;
                                                        var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                                                        $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                        $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                                                        var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                                                        var$7 = $var12.$hashArray.data;
                                                        $var13 = var$11 & (var$7.length - 1 | 0);
                                                        $var12 = var$7[$var13];
                                                        bI: {
                                                            while (true) {
                                                                if ($var12 === null) {
                                                                    $var12 = null;
                                                                    break bI;
                                                                }
                                                                if (Long_eq($var12.$key1, var$14))
                                                                    break;
                                                                $var12 = $var12.$nextEntry;
                                                            }
                                                        }
                                                        if ($var12 === null ? 0 : 1) {
                                                            $var12 = var$7[$var13];
                                                            y: {
                                                                while ($var12 !== null) {
                                                                    if (Long_eq($var12.$key1, var$14)) {
                                                                        $var12 = $var12.$value4;
                                                                        break y;
                                                                    }
                                                                    $var12 = $var12.$nextEntry;
                                                                }
                                                                $var12 = null;
                                                            }
                                                            $var12 = $var12;
                                                            if ($var12 === null) {
                                                                if ($var2.$worldObj0.$findingSpawnPoint)
                                                                    break bC;
                                                                if ($var2.$loadChunkOnProvideRequest)
                                                                    break bC;
                                                                $var12 = $var2.$defaultEmptyChunk;
                                                            }
                                                            if ($var12 !== null) {
                                                                $var1 = $var9.$xCoord0 & 15;
                                                                $var10 = $var9.$yCoord0;
                                                                $var3 = $var9.$zCoord0 & 15;
                                                                $ptr = 7;
                                                                continue main;
                                                            }
                                                        }
                                                    }
                                                }
                                                $var12 = new ju_ConcurrentModificationException;
                                                $var12.$suppressionEnabled = 1;
                                                $var12.$writableStackTrace = 1;
                                                $rt_throw($var12);
                                            }
                                            $ptr = 6;
                                            continue main;
                                        }
                                        if ($var1 < 0)
                                            break;
                                        if ($var10 >= 0)
                                            break;
                                        w: {
                                            $var2 = $var12.$array.data[$var1];
                                            $var12 = $var2.$ridingEntity;
                                            if ($var12 !== null) {
                                                if (!$var12.$isDead && $var12.$riddenByEntity === $var2)
                                                    break w;
                                                $var12.$riddenByEntity = null;
                                                $var2.$ridingEntity = null;
                                            }
                                            if (!$var2.$isDead) {
                                                $ptr = 2;
                                                continue main;
                                            }
                                            if ($var2.$isDead) {
                                                $var3 = $var2.$chunkCoordX;
                                                $var13 = $var2.$chunkCoordZ;
                                                if ($var2.$addedToChunk) {
                                                    $var9 = $this.$chunkProvider;
                                                    $var12 = $var9.$loadedChunkHashMap;
                                                    var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                                                    $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                    $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                                                    var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                                                    var$7 = $var12.$hashArray.data;
                                                    var$11 = var$12 & (var$7.length - 1 | 0);
                                                    $var12 = var$7[var$11];
                                                    bJ: {
                                                        while (true) {
                                                            if ($var12 === null) {
                                                                $var12 = null;
                                                                break bJ;
                                                            }
                                                            if (Long_eq($var12.$key1, var$14))
                                                                break;
                                                            $var12 = $var12.$nextEntry;
                                                        }
                                                    }
                                                    if ($var12 === null ? 0 : 1) {
                                                        $var12 = var$7[var$11];
                                                        bB: {
                                                            while ($var12 !== null) {
                                                                if (Long_eq($var12.$key1, var$14)) {
                                                                    $var12 = $var12.$value4;
                                                                    break bB;
                                                                }
                                                                $var12 = $var12.$nextEntry;
                                                            }
                                                            $var12 = null;
                                                        }
                                                        $var12 = $var12;
                                                        if ($var12 === null) {
                                                            if ($var9.$worldObj0.$findingSpawnPoint)
                                                                break bF;
                                                            if ($var9.$loadChunkOnProvideRequest)
                                                                break bF;
                                                            $var12 = $var9.$defaultEmptyChunk;
                                                        }
                                                        $var12.$removeEntity($var2);
                                                    }
                                                }
                                                $var12 = $this.$loadedEntityList;
                                                $var10 = $var1 + (-1) | 0;
                                                ju_ArrayList_remove($var12, $var1);
                                                nms_WorldServer_onEntityRemoved($this, $var2);
                                                $var1 = $var10;
                                            }
                                        }
                                        $var1 = $var1 + 1 | 0;
                                    }
                                    $var12 = new jl_IndexOutOfBoundsException;
                                    $var12.$suppressionEnabled = 1;
                                    $var12.$writableStackTrace = 1;
                                    $rt_throw($var12);
                                }
                                $ptr = 5;
                                continue main;
                            }
                            if ($var1 < 0)
                                break;
                            if ($var10 >= 0)
                                break;
                            nms_WorldServer_onEntityRemoved($this, $var12.$array.data[$var1]);
                            $var1 = $var1 + 1 | 0;
                        }
                        $var12 = new jl_IndexOutOfBoundsException;
                        $var12.$suppressionEnabled = 1;
                        $var12.$writableStackTrace = 1;
                        $rt_throw($var12);
                    }
                    if ($var1 < 0)
                        break bE;
                    if ($var10 >= 0)
                        break bE;
                    $var2 = $var12.$array.data[$var1];
                    $var3 = $var2.$chunkCoordX;
                    $var13 = $var2.$chunkCoordZ;
                    if (!$var2.$addedToChunk)
                        continue;
                    $var9 = $this.$chunkProvider;
                    $var12 = $var9.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                    var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                    var$7 = $var12.$hashArray.data;
                    var$11 = var$12 & (var$7.length - 1 | 0);
                    $var12 = var$7[var$11];
                    bK: {
                        while (true) {
                            if ($var12 === null) {
                                $var12 = null;
                                break bK;
                            }
                            if (Long_eq($var12.$key1, var$14))
                                break;
                            $var12 = $var12.$nextEntry;
                        }
                    }
                    if (!($var12 === null ? 0 : 1))
                        continue;
                    else
                        break;
                }
                $var12 = var$7[var$11];
                bL: {
                    while ($var12 !== null) {
                        if (Long_eq($var12.$key1, var$14)) {
                            $var12 = $var12.$value4;
                            break bL;
                        }
                        $var12 = $var12.$nextEntry;
                    }
                    $var12 = null;
                }
                $var12 = $var12;
                if ($var12 !== null)
                    continue;
                if ($var9.$worldObj0.$findingSpawnPoint)
                    break bq;
                if ($var9.$loadChunkOnProvideRequest)
                    break bq;
                $var12 = $var9.$defaultEmptyChunk;
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        continue main;
    case 4:
        $var9.$updateEntity0();
        if ($rt_suspending()) {
            break main;
        }
        br: {
            while (true) {
                if ($var9.$tileEntityInvalid) {
                    ju_AbstractList$1_remove($var14);
                    $var1 = $var9.$xCoord0 >> 4;
                    $var10 = $var9.$zCoord0 >> 4;
                    $var2 = $this.$chunkProvider;
                    $var12 = $var2.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                    $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                    var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                    var$7 = $var12.$hashArray.data;
                    $var13 = var$11 & (var$7.length - 1 | 0);
                    $var12 = var$7[$var13];
                    a: {
                        while (true) {
                            if ($var12 === null) {
                                $var12 = null;
                                break a;
                            }
                            if (Long_eq($var12.$key1, var$14))
                                break;
                            $var12 = $var12.$nextEntry;
                        }
                    }
                    if ($var12 === null ? 0 : 1) {
                        $var12 = var$7[$var13];
                        bp: {
                            while ($var12 !== null) {
                                if (Long_eq($var12.$key1, var$14)) {
                                    $var12 = $var12.$value4;
                                    break bp;
                                }
                                $var12 = $var12.$nextEntry;
                            }
                            $var12 = null;
                        }
                        $var12 = $var12;
                        if ($var12 === null) {
                            if ($var2.$worldObj0.$findingSpawnPoint)
                                break br;
                            if ($var2.$loadChunkOnProvideRequest)
                                break br;
                            $var12 = $var2.$defaultEmptyChunk;
                        }
                        if ($var12 !== null) {
                            $var1 = $var9.$xCoord0 & 15;
                            $var10 = $var9.$yCoord0;
                            $var3 = $var9.$zCoord0 & 15;
                            $ptr = 7;
                            continue main;
                        }
                    }
                }
                $var1 = $var14.$index;
                if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                    $this.$scanningTileEntities = 0;
                    $var12 = $this.$entityRemoval;
                    $var1 = $var12.$size0 ? 0 : 1;
                    t: {
                        if (!$var1) {
                            $var9 = $this.$loadedTileEntityList;
                            $var2 = new ju_AbstractList$1;
                            $var2.$this$00 = $var9;
                            $var2.$modCount0 = $var9.$modCount;
                            $var2.$size3 = $var9.$size();
                            $var2.$removeIndex = (-1);
                            bB: while (true) {
                                $var1 = $var2.$index;
                                if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                    $var12 = $this.$entityRemoval;
                                    var$8 = $var12.$array;
                                    $var10 = 0;
                                    $var3 = $var12.$size0;
                                    $var9 = null;
                                    if ($var10 > $var3) {
                                        $var12 = new jl_IllegalArgumentException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    while ($var10 < $var3) {
                                        var$7 = var$8.data;
                                        $var1 = $var10 + 1 | 0;
                                        var$7[$var10] = $var9;
                                        $var10 = $var1;
                                    }
                                    $var12.$size0 = 0;
                                    $var12.$modCount = $var12.$modCount + 1 | 0;
                                    break t;
                                }
                                $var3 = $var2.$modCount0;
                                $var9 = $var2.$this$00;
                                if ($var3 < $var9.$modCount) {
                                    $var12 = new ju_ConcurrentModificationException;
                                    $var12.$suppressionEnabled = 1;
                                    $var12.$writableStackTrace = 1;
                                    $rt_throw($var12);
                                }
                                $var2.$removeIndex = $var1;
                                $var2.$index = $var1 + 1 | 0;
                                $var9 = $var9.$get($var1);
                                $var13 = $var12.$modCount;
                                var$11 = $var12.$size();
                                var$12 = 0;
                                bM: {
                                    while (true) {
                                        if (!(var$12 >= var$11 ? 0 : 1)) {
                                            $var1 = 0;
                                            break bM;
                                        }
                                        if ($var13 < $var12.$modCount)
                                            break bB;
                                        $var3 = var$12 + 1 | 0;
                                        $var14 = $var12.$get(var$12);
                                        if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                            break;
                                        var$12 = $var3;
                                    }
                                    $var1 = 1;
                                }
                                if ($var1)
                                    ju_AbstractList$1_remove($var2);
                            }
                            $var12 = new ju_ConcurrentModificationException;
                            $var12.$suppressionEnabled = 1;
                            $var12.$writableStackTrace = 1;
                            $rt_throw($var12);
                        }
                    }
                    $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                    bN: {
                        r: {
                            if (!$var1) {
                                $var10 = 0;
                                var$13 = 0;
                                while (true) {
                                    $var12 = $this.$addedTileEntityList;
                                    $var3 = $var12.$size0;
                                    $var1 = $rt_compare($var10, $var3);
                                    if ($var1 >= 0) {
                                        var$7 = $var12.$array;
                                        $var1 = 0;
                                        $var9 = null;
                                        if ($var1 > $var3) {
                                            $var12 = new jl_IllegalArgumentException;
                                            $var12.$suppressionEnabled = 1;
                                            $var12.$writableStackTrace = 1;
                                            $rt_throw($var12);
                                        }
                                        while ($var1 < $var3) {
                                            var$8 = var$7.data;
                                            $var10 = $var1 + 1 | 0;
                                            var$8[$var1] = $var9;
                                            $var1 = $var10;
                                        }
                                        $var12.$size0 = 0;
                                        $var12.$modCount = $var12.$modCount + 1 | 0;
                                        break r;
                                    }
                                    if ($var10 < 0)
                                        break;
                                    if ($var1 >= 0)
                                        break;
                                    $var12 = $var12.$array.data[$var10];
                                    if (!$var12.$tileEntityInvalid) {
                                        $var9 = $this.$loadedTileEntityList;
                                        $var13 = $var9.$modCount;
                                        var$11 = $var9.$size();
                                        var$12 = var$13;
                                        bO: {
                                            while (true) {
                                                if (!(var$12 >= var$11 ? 0 : 1)) {
                                                    $var1 = 0;
                                                    break bO;
                                                }
                                                if ($var13 < $var9.$modCount) {
                                                    $var12 = new ju_ConcurrentModificationException;
                                                    $var12.$suppressionEnabled = 1;
                                                    $var12.$writableStackTrace = 1;
                                                    $rt_throw($var12);
                                                }
                                                $var3 = var$12 + 1 | 0;
                                                $var2 = $var9.$get(var$12);
                                                if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                    break;
                                                var$12 = $var3;
                                            }
                                            $var1 = 1;
                                        }
                                        if (!$var1) {
                                            $var9 = $this.$loadedTileEntityList;
                                            ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                            var$7 = $var9.$array.data;
                                            $var3 = $var9.$size0;
                                            $var9.$size0 = $var3 + 1 | 0;
                                            var$7[$var3] = $var12;
                                            $var9.$modCount = $var9.$modCount + 1 | 0;
                                        }
                                        $var3 = $var12.$xCoord0 >> 4;
                                        $var1 = $var12.$zCoord0 >> 4;
                                        $var2 = $this.$chunkProvider;
                                        $var9 = $var2.$loadedChunkHashMap;
                                        var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                        $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                        $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                        var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                        var$7 = $var9.$hashArray.data;
                                        var$11 = var$12 & (var$7.length - 1 | 0);
                                        $var9 = var$7[var$11];
                                        bP: {
                                            while (true) {
                                                if ($var9 === null) {
                                                    $var9 = null;
                                                    break bP;
                                                }
                                                if (Long_eq($var9.$key1, var$14))
                                                    break;
                                                $var9 = $var9.$nextEntry;
                                            }
                                        }
                                        if ($var9 === null ? 0 : 1) {
                                            $var9 = var$7[var$11];
                                            bQ: {
                                                while ($var9 !== null) {
                                                    if (Long_eq($var9.$key1, var$14)) {
                                                        $var9 = $var9.$value4;
                                                        break bQ;
                                                    }
                                                    $var9 = $var9.$nextEntry;
                                                }
                                                $var9 = null;
                                            }
                                            $var9 = $var9;
                                            if ($var9 === null) {
                                                if ($var2.$worldObj0.$findingSpawnPoint)
                                                    break bN;
                                                if ($var2.$loadChunkOnProvideRequest)
                                                    break bN;
                                                $var9 = $var2.$defaultEmptyChunk;
                                            }
                                            if ($var9 !== null) {
                                                $var3 = $var12.$xCoord0 & 15;
                                                $var13 = $var12.$yCoord0;
                                                $var1 = $var12.$zCoord0 & 15;
                                                $ptr = 10;
                                                continue main;
                                            }
                                        }
                                        $var1 = $var12.$xCoord0;
                                        $var3 = $var12.$yCoord0;
                                        $var13 = $var12.$zCoord0;
                                        var$11 = 0;
                                        var$12 = $var1 >> 4;
                                        var$15 = $var13 >> 4;
                                        $var1 = $var1 & 15;
                                        var$16 = $var13 & 15;
                                        $var12 = $this.$worldAccesses;
                                        $var13 = $rt_compare(var$11, $var12.$size0);
                                        if ($var13 < 0) {
                                            if (var$11 >= 0 && $var13 < 0) {
                                                $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                $var13 = 0;
                                                $ptr = 8;
                                                continue main;
                                            }
                                            $var12 = new jl_IndexOutOfBoundsException;
                                            $var12.$suppressionEnabled = 1;
                                            $var12.$writableStackTrace = 1;
                                            $rt_throw($var12);
                                        }
                                    }
                                    $var10 = $var10 + 1 | 0;
                                }
                                $var12 = new jl_IndexOutOfBoundsException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                        }
                        return;
                    }
                    $ptr = 9;
                    continue main;
                }
                $var10 = $var14.$modCount0;
                $var12 = $var14.$this$00;
                if ($var10 < $var12.$modCount)
                    break;
                $var14.$removeIndex = $var1;
                $var14.$index = $var1 + 1 | 0;
                $var9 = $var12.$get($var1);
                if ($var9.$tileEntityInvalid)
                    continue;
                if (!($var9.$worldObj2 === null ? 0 : 1))
                    continue;
                $var1 = $var9.$xCoord0;
                $var10 = $var9.$yCoord0;
                $var3 = $var9.$zCoord0;
                if ($var10 >= 0 && $var10 < 256) {
                    $var10 = $var1 >> 4;
                    $var1 = $var3 >> 4;
                    $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                    $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                    $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                    var$7 = $var12.$hashArray.data;
                    $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                    w: {
                        while (true) {
                            if ($var12 === null) {
                                $var12 = null;
                                break w;
                            }
                            if (Long_eq($var12.$key1, var$14))
                                break;
                            $var12 = $var12.$nextEntry;
                        }
                    }
                    $var1 = $var12 === null ? 0 : 1;
                } else
                    $var1 = 0;
                if (!$var1)
                    continue;
                else {
                    continue main;
                }
            }
            $var12 = new ju_ConcurrentModificationException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_ChunkProviderServer_loadChunk($var9, $var3, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        bE: {
            br: while (true) {
                $var12.$removeEntity($var2);
                while (true) {
                    $var12 = $this.$loadedEntityList;
                    $var10 = $var1 + (-1) | 0;
                    ju_ArrayList_remove($var12, $var1);
                    nms_WorldServer_onEntityRemoved($this, $var2);
                    $var1 = $var10;
                    while (true) {
                        $var1 = $var1 + 1 | 0;
                        $var12 = $this.$loadedEntityList;
                        $var10 = $rt_compare($var1, $var12.$size0);
                        if ($var10 >= 0) {
                            $this.$scanningTileEntities = 1;
                            $var12 = $this.$loadedTileEntityList;
                            $var14 = new ju_AbstractList$1;
                            $var14.$this$00 = $var12;
                            $var14.$modCount0 = $var12.$modCount;
                            $var14.$size3 = $var12.$size();
                            $var14.$removeIndex = (-1);
                            bR: {
                                while (true) {
                                    $var1 = $var14.$index;
                                    if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                                        $this.$scanningTileEntities = 0;
                                        $var12 = $this.$entityRemoval;
                                        $var1 = $var12.$size0 ? 0 : 1;
                                        bS: {
                                            if (!$var1) {
                                                $var9 = $this.$loadedTileEntityList;
                                                $var2 = new ju_AbstractList$1;
                                                $var2.$this$00 = $var9;
                                                $var2.$modCount0 = $var9.$modCount;
                                                $var2.$size3 = $var9.$size();
                                                $var2.$removeIndex = (-1);
                                                bT: while (true) {
                                                    $var1 = $var2.$index;
                                                    if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                                        $var12 = $this.$entityRemoval;
                                                        var$8 = $var12.$array;
                                                        $var10 = 0;
                                                        $var3 = $var12.$size0;
                                                        $var9 = null;
                                                        if ($var10 > $var3) {
                                                            $var12 = new jl_IllegalArgumentException;
                                                            $var12.$suppressionEnabled = 1;
                                                            $var12.$writableStackTrace = 1;
                                                            $rt_throw($var12);
                                                        }
                                                        while ($var10 < $var3) {
                                                            var$7 = var$8.data;
                                                            $var1 = $var10 + 1 | 0;
                                                            var$7[$var10] = $var9;
                                                            $var10 = $var1;
                                                        }
                                                        $var12.$size0 = 0;
                                                        $var12.$modCount = $var12.$modCount + 1 | 0;
                                                        break bS;
                                                    }
                                                    $var3 = $var2.$modCount0;
                                                    $var9 = $var2.$this$00;
                                                    if ($var3 < $var9.$modCount) {
                                                        $var12 = new ju_ConcurrentModificationException;
                                                        $var12.$suppressionEnabled = 1;
                                                        $var12.$writableStackTrace = 1;
                                                        $rt_throw($var12);
                                                    }
                                                    $var2.$removeIndex = $var1;
                                                    $var2.$index = $var1 + 1 | 0;
                                                    $var9 = $var9.$get($var1);
                                                    $var13 = $var12.$modCount;
                                                    var$11 = $var12.$size();
                                                    var$12 = 0;
                                                    bm: {
                                                        while (true) {
                                                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                $var1 = 0;
                                                                break bm;
                                                            }
                                                            if ($var13 < $var12.$modCount)
                                                                break bT;
                                                            $var3 = var$12 + 1 | 0;
                                                            $var14 = $var12.$get(var$12);
                                                            if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                                                break;
                                                            var$12 = $var3;
                                                        }
                                                        $var1 = 1;
                                                    }
                                                    if ($var1)
                                                        ju_AbstractList$1_remove($var2);
                                                }
                                                $var12 = new ju_ConcurrentModificationException;
                                                $var12.$suppressionEnabled = 1;
                                                $var12.$writableStackTrace = 1;
                                                $rt_throw($var12);
                                            }
                                        }
                                        $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                                        bU: {
                                            bh: {
                                                if (!$var1) {
                                                    $var10 = 0;
                                                    var$13 = 0;
                                                    while (true) {
                                                        $var12 = $this.$addedTileEntityList;
                                                        $var3 = $var12.$size0;
                                                        $var1 = $rt_compare($var10, $var3);
                                                        if ($var1 >= 0) {
                                                            var$7 = $var12.$array;
                                                            $var1 = 0;
                                                            $var9 = null;
                                                            if ($var1 > $var3) {
                                                                $var12 = new jl_IllegalArgumentException;
                                                                $var12.$suppressionEnabled = 1;
                                                                $var12.$writableStackTrace = 1;
                                                                $rt_throw($var12);
                                                            }
                                                            while ($var1 < $var3) {
                                                                var$8 = var$7.data;
                                                                $var10 = $var1 + 1 | 0;
                                                                var$8[$var1] = $var9;
                                                                $var1 = $var10;
                                                            }
                                                            $var12.$size0 = 0;
                                                            $var12.$modCount = $var12.$modCount + 1 | 0;
                                                            break bh;
                                                        }
                                                        if ($var10 < 0)
                                                            break;
                                                        if ($var1 >= 0)
                                                            break;
                                                        $var12 = $var12.$array.data[$var10];
                                                        if (!$var12.$tileEntityInvalid) {
                                                            $var9 = $this.$loadedTileEntityList;
                                                            $var13 = $var9.$modCount;
                                                            var$11 = $var9.$size();
                                                            var$12 = var$13;
                                                            bV: {
                                                                while (true) {
                                                                    if (!(var$12 >= var$11 ? 0 : 1)) {
                                                                        $var1 = 0;
                                                                        break bV;
                                                                    }
                                                                    if ($var13 < $var9.$modCount) {
                                                                        $var12 = new ju_ConcurrentModificationException;
                                                                        $var12.$suppressionEnabled = 1;
                                                                        $var12.$writableStackTrace = 1;
                                                                        $rt_throw($var12);
                                                                    }
                                                                    $var3 = var$12 + 1 | 0;
                                                                    $var2 = $var9.$get(var$12);
                                                                    if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                                        break;
                                                                    var$12 = $var3;
                                                                }
                                                                $var1 = 1;
                                                            }
                                                            if (!$var1) {
                                                                $var9 = $this.$loadedTileEntityList;
                                                                ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                                                var$7 = $var9.$array.data;
                                                                $var3 = $var9.$size0;
                                                                $var9.$size0 = $var3 + 1 | 0;
                                                                var$7[$var3] = $var12;
                                                                $var9.$modCount = $var9.$modCount + 1 | 0;
                                                            }
                                                            $var3 = $var12.$xCoord0 >> 4;
                                                            $var1 = $var12.$zCoord0 >> 4;
                                                            $var2 = $this.$chunkProvider;
                                                            $var9 = $var2.$loadedChunkHashMap;
                                                            var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                                            $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                                            $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                                            var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                                            var$7 = $var9.$hashArray.data;
                                                            var$11 = var$12 & (var$7.length - 1 | 0);
                                                            $var9 = var$7[var$11];
                                                            e: {
                                                                while (true) {
                                                                    if ($var9 === null) {
                                                                        $var9 = null;
                                                                        break e;
                                                                    }
                                                                    if (Long_eq($var9.$key1, var$14))
                                                                        break;
                                                                    $var9 = $var9.$nextEntry;
                                                                }
                                                            }
                                                            if ($var9 === null ? 0 : 1) {
                                                                $var9 = var$7[var$11];
                                                                g: {
                                                                    while ($var9 !== null) {
                                                                        if (Long_eq($var9.$key1, var$14)) {
                                                                            $var9 = $var9.$value4;
                                                                            break g;
                                                                        }
                                                                        $var9 = $var9.$nextEntry;
                                                                    }
                                                                    $var9 = null;
                                                                }
                                                                $var9 = $var9;
                                                                if ($var9 === null) {
                                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                                        break bU;
                                                                    if ($var2.$loadChunkOnProvideRequest)
                                                                        break bU;
                                                                    $var9 = $var2.$defaultEmptyChunk;
                                                                }
                                                                if ($var9 !== null) {
                                                                    $var3 = $var12.$xCoord0 & 15;
                                                                    $var13 = $var12.$yCoord0;
                                                                    $var1 = $var12.$zCoord0 & 15;
                                                                    $ptr = 10;
                                                                    continue main;
                                                                }
                                                            }
                                                            $var1 = $var12.$xCoord0;
                                                            $var3 = $var12.$yCoord0;
                                                            $var13 = $var12.$zCoord0;
                                                            var$11 = 0;
                                                            var$12 = $var1 >> 4;
                                                            var$15 = $var13 >> 4;
                                                            $var1 = $var1 & 15;
                                                            var$16 = $var13 & 15;
                                                            $var12 = $this.$worldAccesses;
                                                            $var13 = $rt_compare(var$11, $var12.$size0);
                                                            if ($var13 < 0) {
                                                                if (var$11 >= 0 && $var13 < 0) {
                                                                    $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                                    $var13 = 0;
                                                                    $ptr = 8;
                                                                    continue main;
                                                                }
                                                                $var12 = new jl_IndexOutOfBoundsException;
                                                                $var12.$suppressionEnabled = 1;
                                                                $var12.$writableStackTrace = 1;
                                                                $rt_throw($var12);
                                                            }
                                                        }
                                                        $var10 = $var10 + 1 | 0;
                                                    }
                                                    $var12 = new jl_IndexOutOfBoundsException;
                                                    $var12.$suppressionEnabled = 1;
                                                    $var12.$writableStackTrace = 1;
                                                    $rt_throw($var12);
                                                }
                                            }
                                            return;
                                        }
                                        $ptr = 9;
                                        continue main;
                                    }
                                    $var10 = $var14.$modCount0;
                                    $var12 = $var14.$this$00;
                                    if ($var10 < $var12.$modCount)
                                        break;
                                    $var14.$removeIndex = $var1;
                                    $var14.$index = $var1 + 1 | 0;
                                    $var9 = $var12.$get($var1);
                                    if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                                        $var1 = $var9.$xCoord0;
                                        $var10 = $var9.$yCoord0;
                                        $var3 = $var9.$zCoord0;
                                        if ($var10 >= 0 && $var10 < 256) {
                                            $var10 = $var1 >> 4;
                                            $var1 = $var3 >> 4;
                                            $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                                            var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                            $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                            $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                                            $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                                            var$7 = $var12.$hashArray.data;
                                            $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                                            bW: {
                                                while (true) {
                                                    if ($var12 === null) {
                                                        $var12 = null;
                                                        break bW;
                                                    }
                                                    if (Long_eq($var12.$key1, var$14))
                                                        break;
                                                    $var12 = $var12.$nextEntry;
                                                }
                                            }
                                            $var1 = $var12 === null ? 0 : 1;
                                        } else
                                            $var1 = 0;
                                        if ($var1) {
                                            $ptr = 4;
                                            continue main;
                                        }
                                    }
                                    if ($var9.$tileEntityInvalid) {
                                        ju_AbstractList$1_remove($var14);
                                        $var1 = $var9.$xCoord0 >> 4;
                                        $var10 = $var9.$zCoord0 >> 4;
                                        $var2 = $this.$chunkProvider;
                                        $var12 = $var2.$loadedChunkHashMap;
                                        var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                                        $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                        $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                                        var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                                        var$7 = $var12.$hashArray.data;
                                        $var13 = var$11 & (var$7.length - 1 | 0);
                                        $var12 = var$7[$var13];
                                        bX: {
                                            while (true) {
                                                if ($var12 === null) {
                                                    $var12 = null;
                                                    break bX;
                                                }
                                                if (Long_eq($var12.$key1, var$14))
                                                    break;
                                                $var12 = $var12.$nextEntry;
                                            }
                                        }
                                        if ($var12 === null ? 0 : 1) {
                                            $var12 = var$7[$var13];
                                            bY: {
                                                while ($var12 !== null) {
                                                    if (Long_eq($var12.$key1, var$14)) {
                                                        $var12 = $var12.$value4;
                                                        break bY;
                                                    }
                                                    $var12 = $var12.$nextEntry;
                                                }
                                                $var12 = null;
                                            }
                                            $var12 = $var12;
                                            if ($var12 === null) {
                                                if ($var2.$worldObj0.$findingSpawnPoint)
                                                    break bR;
                                                if ($var2.$loadChunkOnProvideRequest)
                                                    break bR;
                                                $var12 = $var2.$defaultEmptyChunk;
                                            }
                                            if ($var12 !== null) {
                                                $var1 = $var9.$xCoord0 & 15;
                                                $var10 = $var9.$yCoord0;
                                                $var3 = $var9.$zCoord0 & 15;
                                                $ptr = 7;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                                $var12 = new ju_ConcurrentModificationException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                            $ptr = 6;
                            continue main;
                        }
                        if ($var1 < 0)
                            break br;
                        if ($var10 >= 0)
                            break br;
                        $var2 = $var12.$array.data[$var1];
                        $var12 = $var2.$ridingEntity;
                        if ($var12 !== null) {
                            if (!$var12.$isDead && $var12.$riddenByEntity === $var2)
                                continue;
                            $var12.$riddenByEntity = null;
                            $var2.$ridingEntity = null;
                        }
                        if (!$var2.$isDead) {
                            $ptr = 2;
                            continue main;
                        }
                        if ($var2.$isDead)
                            break;
                    }
                    $var3 = $var2.$chunkCoordX;
                    $var13 = $var2.$chunkCoordZ;
                    if (!$var2.$addedToChunk)
                        continue;
                    $var9 = $this.$chunkProvider;
                    $var12 = $var9.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var10 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                    var$12 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                    var$7 = $var12.$hashArray.data;
                    var$11 = var$12 & (var$7.length - 1 | 0);
                    $var12 = var$7[var$11];
                    u: {
                        while (true) {
                            if ($var12 === null) {
                                $var12 = null;
                                break u;
                            }
                            if (Long_eq($var12.$key1, var$14))
                                break;
                            $var12 = $var12.$nextEntry;
                        }
                    }
                    if (!($var12 === null ? 0 : 1))
                        continue;
                    else
                        break;
                }
                $var12 = var$7[var$11];
                bZ: {
                    while ($var12 !== null) {
                        if (Long_eq($var12.$key1, var$14)) {
                            $var12 = $var12.$value4;
                            break bZ;
                        }
                        $var12 = $var12.$nextEntry;
                    }
                    $var12 = null;
                }
                $var12 = $var12;
                if ($var12 !== null)
                    continue;
                if ($var9.$worldObj0.$findingSpawnPoint)
                    break bE;
                if ($var9.$loadChunkOnProvideRequest)
                    break bE;
                $var12 = $var9.$defaultEmptyChunk;
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        continue main;
    case 6:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, $var1, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        br: {
            b0: while (true) {
                if ($var12 !== null) {
                    $var1 = $var9.$xCoord0 & 15;
                    $var10 = $var9.$yCoord0;
                    $var3 = $var9.$zCoord0 & 15;
                    $ptr = 7;
                    continue main;
                }
                while (true) {
                    $var1 = $var14.$index;
                    if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                        $this.$scanningTileEntities = 0;
                        $var12 = $this.$entityRemoval;
                        $var1 = $var12.$size0 ? 0 : 1;
                        t: {
                            if (!$var1) {
                                $var9 = $this.$loadedTileEntityList;
                                $var2 = new ju_AbstractList$1;
                                $var2.$this$00 = $var9;
                                $var2.$modCount0 = $var9.$modCount;
                                $var2.$size3 = $var9.$size();
                                $var2.$removeIndex = (-1);
                                bB: while (true) {
                                    $var1 = $var2.$index;
                                    if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                        $var12 = $this.$entityRemoval;
                                        var$8 = $var12.$array;
                                        $var10 = 0;
                                        $var3 = $var12.$size0;
                                        $var9 = null;
                                        if ($var10 > $var3) {
                                            $var12 = new jl_IllegalArgumentException;
                                            $var12.$suppressionEnabled = 1;
                                            $var12.$writableStackTrace = 1;
                                            $rt_throw($var12);
                                        }
                                        while ($var10 < $var3) {
                                            var$7 = var$8.data;
                                            $var1 = $var10 + 1 | 0;
                                            var$7[$var10] = $var9;
                                            $var10 = $var1;
                                        }
                                        $var12.$size0 = 0;
                                        $var12.$modCount = $var12.$modCount + 1 | 0;
                                        break t;
                                    }
                                    $var3 = $var2.$modCount0;
                                    $var9 = $var2.$this$00;
                                    if ($var3 < $var9.$modCount) {
                                        $var12 = new ju_ConcurrentModificationException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    $var2.$removeIndex = $var1;
                                    $var2.$index = $var1 + 1 | 0;
                                    $var9 = $var9.$get($var1);
                                    $var13 = $var12.$modCount;
                                    var$11 = $var12.$size();
                                    var$12 = 0;
                                    bM: {
                                        while (true) {
                                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                                $var1 = 0;
                                                break bM;
                                            }
                                            if ($var13 < $var12.$modCount)
                                                break bB;
                                            $var3 = var$12 + 1 | 0;
                                            $var14 = $var12.$get(var$12);
                                            if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                                break;
                                            var$12 = $var3;
                                        }
                                        $var1 = 1;
                                    }
                                    if ($var1)
                                        ju_AbstractList$1_remove($var2);
                                }
                                $var12 = new ju_ConcurrentModificationException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                        }
                        $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                        bN: {
                            r: {
                                if (!$var1) {
                                    $var10 = 0;
                                    var$13 = 0;
                                    while (true) {
                                        $var12 = $this.$addedTileEntityList;
                                        $var3 = $var12.$size0;
                                        $var1 = $rt_compare($var10, $var3);
                                        if ($var1 >= 0) {
                                            var$7 = $var12.$array;
                                            $var1 = 0;
                                            $var9 = null;
                                            if ($var1 > $var3) {
                                                $var12 = new jl_IllegalArgumentException;
                                                $var12.$suppressionEnabled = 1;
                                                $var12.$writableStackTrace = 1;
                                                $rt_throw($var12);
                                            }
                                            while ($var1 < $var3) {
                                                var$8 = var$7.data;
                                                $var10 = $var1 + 1 | 0;
                                                var$8[$var1] = $var9;
                                                $var1 = $var10;
                                            }
                                            $var12.$size0 = 0;
                                            $var12.$modCount = $var12.$modCount + 1 | 0;
                                            break r;
                                        }
                                        if ($var10 < 0)
                                            break;
                                        if ($var1 >= 0)
                                            break;
                                        $var12 = $var12.$array.data[$var10];
                                        if (!$var12.$tileEntityInvalid) {
                                            $var9 = $this.$loadedTileEntityList;
                                            $var13 = $var9.$modCount;
                                            var$11 = $var9.$size();
                                            var$12 = var$13;
                                            bO: {
                                                while (true) {
                                                    if (!(var$12 >= var$11 ? 0 : 1)) {
                                                        $var1 = 0;
                                                        break bO;
                                                    }
                                                    if ($var13 < $var9.$modCount) {
                                                        $var12 = new ju_ConcurrentModificationException;
                                                        $var12.$suppressionEnabled = 1;
                                                        $var12.$writableStackTrace = 1;
                                                        $rt_throw($var12);
                                                    }
                                                    $var3 = var$12 + 1 | 0;
                                                    $var2 = $var9.$get(var$12);
                                                    if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                        break;
                                                    var$12 = $var3;
                                                }
                                                $var1 = 1;
                                            }
                                            if (!$var1) {
                                                $var9 = $this.$loadedTileEntityList;
                                                ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                                var$7 = $var9.$array.data;
                                                $var3 = $var9.$size0;
                                                $var9.$size0 = $var3 + 1 | 0;
                                                var$7[$var3] = $var12;
                                                $var9.$modCount = $var9.$modCount + 1 | 0;
                                            }
                                            $var3 = $var12.$xCoord0 >> 4;
                                            $var1 = $var12.$zCoord0 >> 4;
                                            $var2 = $this.$chunkProvider;
                                            $var9 = $var2.$loadedChunkHashMap;
                                            var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                            $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                            $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                            var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                            var$7 = $var9.$hashArray.data;
                                            var$11 = var$12 & (var$7.length - 1 | 0);
                                            $var9 = var$7[var$11];
                                            bP: {
                                                while (true) {
                                                    if ($var9 === null) {
                                                        $var9 = null;
                                                        break bP;
                                                    }
                                                    if (Long_eq($var9.$key1, var$14))
                                                        break;
                                                    $var9 = $var9.$nextEntry;
                                                }
                                            }
                                            if ($var9 === null ? 0 : 1) {
                                                $var9 = var$7[var$11];
                                                bQ: {
                                                    while ($var9 !== null) {
                                                        if (Long_eq($var9.$key1, var$14)) {
                                                            $var9 = $var9.$value4;
                                                            break bQ;
                                                        }
                                                        $var9 = $var9.$nextEntry;
                                                    }
                                                    $var9 = null;
                                                }
                                                $var9 = $var9;
                                                if ($var9 === null) {
                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                        break bN;
                                                    if ($var2.$loadChunkOnProvideRequest)
                                                        break bN;
                                                    $var9 = $var2.$defaultEmptyChunk;
                                                }
                                                if ($var9 !== null) {
                                                    $var3 = $var12.$xCoord0 & 15;
                                                    $var13 = $var12.$yCoord0;
                                                    $var1 = $var12.$zCoord0 & 15;
                                                    $ptr = 10;
                                                    continue main;
                                                }
                                            }
                                            $var1 = $var12.$xCoord0;
                                            $var3 = $var12.$yCoord0;
                                            $var13 = $var12.$zCoord0;
                                            var$11 = 0;
                                            var$12 = $var1 >> 4;
                                            var$15 = $var13 >> 4;
                                            $var1 = $var1 & 15;
                                            var$16 = $var13 & 15;
                                            $var12 = $this.$worldAccesses;
                                            $var13 = $rt_compare(var$11, $var12.$size0);
                                            if ($var13 < 0) {
                                                if (var$11 >= 0 && $var13 < 0) {
                                                    $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                    $var13 = 0;
                                                    $ptr = 8;
                                                    continue main;
                                                }
                                                $var12 = new jl_IndexOutOfBoundsException;
                                                $var12.$suppressionEnabled = 1;
                                                $var12.$writableStackTrace = 1;
                                                $rt_throw($var12);
                                            }
                                        }
                                        $var10 = $var10 + 1 | 0;
                                    }
                                    $var12 = new jl_IndexOutOfBoundsException;
                                    $var12.$suppressionEnabled = 1;
                                    $var12.$writableStackTrace = 1;
                                    $rt_throw($var12);
                                }
                            }
                            return;
                        }
                        $ptr = 9;
                        continue main;
                    }
                    $var10 = $var14.$modCount0;
                    $var12 = $var14.$this$00;
                    if ($var10 < $var12.$modCount)
                        break b0;
                    $var14.$removeIndex = $var1;
                    $var14.$index = $var1 + 1 | 0;
                    $var9 = $var12.$get($var1);
                    if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                        $var1 = $var9.$xCoord0;
                        $var10 = $var9.$yCoord0;
                        $var3 = $var9.$zCoord0;
                        if ($var10 >= 0 && $var10 < 256) {
                            $var10 = $var1 >> 4;
                            $var1 = $var3 >> 4;
                            $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                            var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                            $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                            $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                            $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                            var$7 = $var12.$hashArray.data;
                            $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                            b1: {
                                while (true) {
                                    if ($var12 === null) {
                                        $var12 = null;
                                        break b1;
                                    }
                                    if (Long_eq($var12.$key1, var$14))
                                        break;
                                    $var12 = $var12.$nextEntry;
                                }
                            }
                            $var1 = $var12 === null ? 0 : 1;
                        } else
                            $var1 = 0;
                        if ($var1) {
                            $ptr = 4;
                            continue main;
                        }
                    }
                    if (!$var9.$tileEntityInvalid)
                        continue;
                    ju_AbstractList$1_remove($var14);
                    $var1 = $var9.$xCoord0 >> 4;
                    $var10 = $var9.$zCoord0 >> 4;
                    $var2 = $this.$chunkProvider;
                    $var12 = $var2.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                    $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                    var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                    var$7 = $var12.$hashArray.data;
                    $var13 = var$11 & (var$7.length - 1 | 0);
                    $var12 = var$7[$var13];
                    bF: {
                        while (true) {
                            if ($var12 === null) {
                                $var12 = null;
                                break bF;
                            }
                            if (Long_eq($var12.$key1, var$14))
                                break;
                            $var12 = $var12.$nextEntry;
                        }
                    }
                    if (!($var12 === null ? 0 : 1))
                        continue;
                    else
                        break;
                }
                $var12 = var$7[$var13];
                s: {
                    while ($var12 !== null) {
                        if (Long_eq($var12.$key1, var$14)) {
                            $var12 = $var12.$value4;
                            break s;
                        }
                        $var12 = $var12.$nextEntry;
                    }
                    $var12 = null;
                }
                $var12 = $var12;
                if ($var12 !== null)
                    continue;
                if ($var2.$worldObj0.$findingSpawnPoint)
                    break br;
                if ($var2.$loadChunkOnProvideRequest)
                    break br;
                $var12 = $var2.$defaultEmptyChunk;
            }
            $var12 = new ju_ConcurrentModificationException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        continue main;
    case 7:
        $var12.$removeChunkBlockTileEntity($var1, $var10, $var3);
        if ($rt_suspending()) {
            break main;
        }
        bE: {
            while (true) {
                $var1 = $var14.$index;
                if (!($var1 >= $var14.$size3 ? 0 : 1)) {
                    $this.$scanningTileEntities = 0;
                    $var12 = $this.$entityRemoval;
                    $var1 = $var12.$size0 ? 0 : 1;
                    t: {
                        if (!$var1) {
                            $var9 = $this.$loadedTileEntityList;
                            $var2 = new ju_AbstractList$1;
                            $var2.$this$00 = $var9;
                            $var2.$modCount0 = $var9.$modCount;
                            $var2.$size3 = $var9.$size();
                            $var2.$removeIndex = (-1);
                            bB: while (true) {
                                $var1 = $var2.$index;
                                if (!($var1 >= $var2.$size3 ? 0 : 1)) {
                                    $var12 = $this.$entityRemoval;
                                    var$8 = $var12.$array;
                                    $var10 = 0;
                                    $var3 = $var12.$size0;
                                    $var9 = null;
                                    if ($var10 > $var3) {
                                        $var12 = new jl_IllegalArgumentException;
                                        $var12.$suppressionEnabled = 1;
                                        $var12.$writableStackTrace = 1;
                                        $rt_throw($var12);
                                    }
                                    while ($var10 < $var3) {
                                        var$7 = var$8.data;
                                        $var1 = $var10 + 1 | 0;
                                        var$7[$var10] = $var9;
                                        $var10 = $var1;
                                    }
                                    $var12.$size0 = 0;
                                    $var12.$modCount = $var12.$modCount + 1 | 0;
                                    break t;
                                }
                                $var3 = $var2.$modCount0;
                                $var9 = $var2.$this$00;
                                if ($var3 < $var9.$modCount) {
                                    $var12 = new ju_ConcurrentModificationException;
                                    $var12.$suppressionEnabled = 1;
                                    $var12.$writableStackTrace = 1;
                                    $rt_throw($var12);
                                }
                                $var2.$removeIndex = $var1;
                                $var2.$index = $var1 + 1 | 0;
                                $var9 = $var9.$get($var1);
                                $var13 = $var12.$modCount;
                                var$11 = $var12.$size();
                                var$12 = 0;
                                bM: {
                                    while (true) {
                                        if (!(var$12 >= var$11 ? 0 : 1)) {
                                            $var1 = 0;
                                            break bM;
                                        }
                                        if ($var13 < $var12.$modCount)
                                            break bB;
                                        $var3 = var$12 + 1 | 0;
                                        $var14 = $var12.$get(var$12);
                                        if ($var14 === $var9 ? 1 : $var14 !== null ? $var14.$equals($var9) : $var9 !== null ? 0 : 1)
                                            break;
                                        var$12 = $var3;
                                    }
                                    $var1 = 1;
                                }
                                if ($var1)
                                    ju_AbstractList$1_remove($var2);
                            }
                            $var12 = new ju_ConcurrentModificationException;
                            $var12.$suppressionEnabled = 1;
                            $var12.$writableStackTrace = 1;
                            $rt_throw($var12);
                        }
                    }
                    $var1 = $this.$addedTileEntityList.$size0 ? 0 : 1;
                    bN: {
                        r: {
                            if (!$var1) {
                                $var10 = 0;
                                var$13 = 0;
                                while (true) {
                                    $var12 = $this.$addedTileEntityList;
                                    $var3 = $var12.$size0;
                                    $var1 = $rt_compare($var10, $var3);
                                    if ($var1 >= 0) {
                                        var$7 = $var12.$array;
                                        $var1 = 0;
                                        $var9 = null;
                                        if ($var1 > $var3) {
                                            $var12 = new jl_IllegalArgumentException;
                                            $var12.$suppressionEnabled = 1;
                                            $var12.$writableStackTrace = 1;
                                            $rt_throw($var12);
                                        }
                                        while ($var1 < $var3) {
                                            var$8 = var$7.data;
                                            $var10 = $var1 + 1 | 0;
                                            var$8[$var1] = $var9;
                                            $var1 = $var10;
                                        }
                                        $var12.$size0 = 0;
                                        $var12.$modCount = $var12.$modCount + 1 | 0;
                                        break r;
                                    }
                                    if ($var10 < 0)
                                        break;
                                    if ($var1 >= 0)
                                        break;
                                    $var12 = $var12.$array.data[$var10];
                                    if (!$var12.$tileEntityInvalid) {
                                        $var9 = $this.$loadedTileEntityList;
                                        $var13 = $var9.$modCount;
                                        var$11 = $var9.$size();
                                        var$12 = var$13;
                                        bO: {
                                            while (true) {
                                                if (!(var$12 >= var$11 ? 0 : 1)) {
                                                    $var1 = 0;
                                                    break bO;
                                                }
                                                if ($var13 < $var9.$modCount) {
                                                    $var12 = new ju_ConcurrentModificationException;
                                                    $var12.$suppressionEnabled = 1;
                                                    $var12.$writableStackTrace = 1;
                                                    $rt_throw($var12);
                                                }
                                                $var3 = var$12 + 1 | 0;
                                                $var2 = $var9.$get(var$12);
                                                if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                                    break;
                                                var$12 = $var3;
                                            }
                                            $var1 = 1;
                                        }
                                        if (!$var1) {
                                            $var9 = $this.$loadedTileEntityList;
                                            ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                                            var$7 = $var9.$array.data;
                                            $var3 = $var9.$size0;
                                            $var9.$size0 = $var3 + 1 | 0;
                                            var$7[$var3] = $var12;
                                            $var9.$modCount = $var9.$modCount + 1 | 0;
                                        }
                                        $var3 = $var12.$xCoord0 >> 4;
                                        $var1 = $var12.$zCoord0 >> 4;
                                        $var2 = $this.$chunkProvider;
                                        $var9 = $var2.$loadedChunkHashMap;
                                        var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                        $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                                        $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                                        var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                                        var$7 = $var9.$hashArray.data;
                                        var$11 = var$12 & (var$7.length - 1 | 0);
                                        $var9 = var$7[var$11];
                                        bP: {
                                            while (true) {
                                                if ($var9 === null) {
                                                    $var9 = null;
                                                    break bP;
                                                }
                                                if (Long_eq($var9.$key1, var$14))
                                                    break;
                                                $var9 = $var9.$nextEntry;
                                            }
                                        }
                                        if ($var9 === null ? 0 : 1) {
                                            $var9 = var$7[var$11];
                                            bQ: {
                                                while ($var9 !== null) {
                                                    if (Long_eq($var9.$key1, var$14)) {
                                                        $var9 = $var9.$value4;
                                                        break bQ;
                                                    }
                                                    $var9 = $var9.$nextEntry;
                                                }
                                                $var9 = null;
                                            }
                                            $var9 = $var9;
                                            if ($var9 === null) {
                                                if ($var2.$worldObj0.$findingSpawnPoint)
                                                    break bN;
                                                if ($var2.$loadChunkOnProvideRequest)
                                                    break bN;
                                                $var9 = $var2.$defaultEmptyChunk;
                                            }
                                            if ($var9 !== null) {
                                                $var3 = $var12.$xCoord0 & 15;
                                                $var13 = $var12.$yCoord0;
                                                $var1 = $var12.$zCoord0 & 15;
                                                $ptr = 10;
                                                continue main;
                                            }
                                        }
                                        $var1 = $var12.$xCoord0;
                                        $var3 = $var12.$yCoord0;
                                        $var13 = $var12.$zCoord0;
                                        var$11 = 0;
                                        var$12 = $var1 >> 4;
                                        var$15 = $var13 >> 4;
                                        $var1 = $var1 & 15;
                                        var$16 = $var13 & 15;
                                        $var12 = $this.$worldAccesses;
                                        $var13 = $rt_compare(var$11, $var12.$size0);
                                        if ($var13 < 0) {
                                            if (var$11 >= 0 && $var13 < 0) {
                                                $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                                $var13 = 0;
                                                $ptr = 8;
                                                continue main;
                                            }
                                            $var12 = new jl_IndexOutOfBoundsException;
                                            $var12.$suppressionEnabled = 1;
                                            $var12.$writableStackTrace = 1;
                                            $rt_throw($var12);
                                        }
                                    }
                                    $var10 = $var10 + 1 | 0;
                                }
                                $var12 = new jl_IndexOutOfBoundsException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                        }
                        return;
                    }
                    $ptr = 9;
                    continue main;
                }
                $var10 = $var14.$modCount0;
                $var12 = $var14.$this$00;
                if ($var10 < $var12.$modCount)
                    break;
                $var14.$removeIndex = $var1;
                $var14.$index = $var1 + 1 | 0;
                $var9 = $var12.$get($var1);
                if (!$var9.$tileEntityInvalid && ($var9.$worldObj2 === null ? 0 : 1)) {
                    $var1 = $var9.$xCoord0;
                    $var10 = $var9.$yCoord0;
                    $var3 = $var9.$zCoord0;
                    if ($var10 >= 0 && $var10 < 256) {
                        $var10 = $var1 >> 4;
                        $var1 = $var3 >> 4;
                        $var12 = $this.$chunkProvider.$loadedChunkHashMap;
                        var$14 = Long_or(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                        $var1 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                        $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                        $var3 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                        var$7 = $var12.$hashArray.data;
                        $var12 = var$7[$var3 & (var$7.length - 1 | 0)];
                        b2: {
                            while (true) {
                                if ($var12 === null) {
                                    $var12 = null;
                                    break b2;
                                }
                                if (Long_eq($var12.$key1, var$14))
                                    break;
                                $var12 = $var12.$nextEntry;
                            }
                        }
                        $var1 = $var12 === null ? 0 : 1;
                    } else
                        $var1 = 0;
                    if ($var1) {
                        $ptr = 4;
                        continue main;
                    }
                }
                if (!$var9.$tileEntityInvalid)
                    continue;
                ju_AbstractList$1_remove($var14);
                $var1 = $var9.$xCoord0 >> 4;
                $var10 = $var9.$zCoord0 >> 4;
                $var2 = $this.$chunkProvider;
                $var12 = $var2.$loadedChunkHashMap;
                var$14 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                $var3 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                var$11 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                var$7 = $var12.$hashArray.data;
                $var13 = var$11 & (var$7.length - 1 | 0);
                $var12 = var$7[$var13];
                b3: {
                    while (true) {
                        if ($var12 === null) {
                            $var12 = null;
                            break b3;
                        }
                        if (Long_eq($var12.$key1, var$14))
                            break;
                        $var12 = $var12.$nextEntry;
                    }
                }
                if (!($var12 === null ? 0 : 1))
                    continue;
                $var12 = var$7[$var13];
                b4: {
                    while ($var12 !== null) {
                        if (Long_eq($var12.$key1, var$14)) {
                            $var12 = $var12.$value4;
                            break b4;
                        }
                        $var12 = $var12.$nextEntry;
                    }
                    $var12 = null;
                }
                $var12 = $var12;
                if ($var12 === null) {
                    if ($var2.$worldObj0.$findingSpawnPoint)
                        break bE;
                    if ($var2.$loadChunkOnProvideRequest)
                        break bE;
                    $var12 = $var2.$defaultEmptyChunk;
                }
                if ($var12 === null)
                    continue;
                else {
                    $var1 = $var9.$xCoord0 & 15;
                    $var10 = $var9.$yCoord0;
                    $var3 = $var9.$zCoord0 & 15;
                    continue main;
                }
            }
            $var12 = new ju_ConcurrentModificationException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $ptr = 6;
        continue main;
    case 8:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($var12, var$12, var$15, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 !== null)
            nms_PlayerInstance_flagChunkForUpdate($var12, $var1, $var3, var$16);
        var$11 = var$11 + 1 | 0;
        br: {
            bK: {
                a: while (true) {
                    $var12 = $this.$worldAccesses;
                    $var13 = $rt_compare(var$11, $var12.$size0);
                    if ($var13 < 0) {
                        if (var$11 >= 0 && $var13 < 0) {
                            $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                            $var13 = 0;
                            continue main;
                        }
                        $var12 = new jl_IndexOutOfBoundsException;
                        $var12.$suppressionEnabled = 1;
                        $var12.$writableStackTrace = 1;
                        $rt_throw($var12);
                    }
                    while (true) {
                        $var10 = $var10 + 1 | 0;
                        $var12 = $this.$addedTileEntityList;
                        $var3 = $var12.$size0;
                        $var1 = $rt_compare($var10, $var3);
                        if ($var1 >= 0) {
                            var$7 = $var12.$array;
                            $var1 = 0;
                            $var9 = null;
                            if ($var1 > $var3) {
                                $var12 = new jl_IllegalArgumentException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                            while ($var1 < $var3) {
                                var$8 = var$7.data;
                                $var10 = $var1 + 1 | 0;
                                var$8[$var1] = $var9;
                                $var1 = $var10;
                            }
                            $var12.$size0 = 0;
                            $var12.$modCount = $var12.$modCount + 1 | 0;
                            return;
                        }
                        if ($var10 < 0)
                            break bK;
                        if ($var1 >= 0)
                            break bK;
                        $var12 = $var12.$array.data[$var10];
                        if ($var12.$tileEntityInvalid)
                            continue;
                        else
                            break;
                    }
                    $var9 = $this.$loadedTileEntityList;
                    $var13 = $var9.$modCount;
                    var$11 = $var9.$size();
                    var$12 = var$13;
                    b5: {
                        while (true) {
                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                $var1 = 0;
                                break b5;
                            }
                            if ($var13 < $var9.$modCount)
                                break a;
                            $var3 = var$12 + 1 | 0;
                            $var2 = $var9.$get(var$12);
                            if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                break;
                            var$12 = $var3;
                        }
                        $var1 = 1;
                    }
                    if (!$var1) {
                        $var9 = $this.$loadedTileEntityList;
                        ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                        var$7 = $var9.$array.data;
                        $var3 = $var9.$size0;
                        $var9.$size0 = $var3 + 1 | 0;
                        var$7[$var3] = $var12;
                        $var9.$modCount = $var9.$modCount + 1 | 0;
                    }
                    $var3 = $var12.$xCoord0 >> 4;
                    $var1 = $var12.$zCoord0 >> 4;
                    $var2 = $this.$chunkProvider;
                    $var9 = $var2.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                    $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                    var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                    var$7 = $var9.$hashArray.data;
                    var$11 = var$12 & (var$7.length - 1 | 0);
                    $var9 = var$7[var$11];
                    bF: {
                        while (true) {
                            if ($var9 === null) {
                                $var9 = null;
                                break bF;
                            }
                            if (Long_eq($var9.$key1, var$14))
                                break;
                            $var9 = $var9.$nextEntry;
                        }
                    }
                    if ($var9 === null ? 0 : 1) {
                        $var9 = var$7[var$11];
                        b6: {
                            while ($var9 !== null) {
                                if (Long_eq($var9.$key1, var$14)) {
                                    $var9 = $var9.$value4;
                                    break b6;
                                }
                                $var9 = $var9.$nextEntry;
                            }
                            $var9 = null;
                        }
                        $var9 = $var9;
                        if ($var9 === null) {
                            if ($var2.$worldObj0.$findingSpawnPoint)
                                break br;
                            if ($var2.$loadChunkOnProvideRequest)
                                break br;
                            $var9 = $var2.$defaultEmptyChunk;
                        }
                        if ($var9 !== null) {
                            $var3 = $var12.$xCoord0 & 15;
                            $var13 = $var12.$yCoord0;
                            $var1 = $var12.$zCoord0 & 15;
                            $ptr = 10;
                            continue main;
                        }
                    }
                    $var1 = $var12.$xCoord0;
                    $var3 = $var12.$yCoord0;
                    $var13 = $var12.$zCoord0;
                    var$11 = 0;
                    var$12 = $var1 >> 4;
                    var$15 = $var13 >> 4;
                    $var1 = $var1 & 15;
                    var$16 = $var13 & 15;
                }
                $var12 = new ju_ConcurrentModificationException;
                $var12.$suppressionEnabled = 1;
                $var12.$writableStackTrace = 1;
                $rt_throw($var12);
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $ptr = 9;
    case 9:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, $var3, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        bE: {
            b0: {
                bK: while (true) {
                    if ($var9 !== null) {
                        $var3 = $var12.$xCoord0 & 15;
                        $var13 = $var12.$yCoord0;
                        $var1 = $var12.$zCoord0 & 15;
                        $ptr = 10;
                        continue main;
                    }
                    while (true) {
                        $var1 = $var12.$xCoord0;
                        $var3 = $var12.$yCoord0;
                        $var13 = $var12.$zCoord0;
                        var$11 = 0;
                        var$12 = $var1 >> 4;
                        var$15 = $var13 >> 4;
                        $var1 = $var1 & 15;
                        var$16 = $var13 & 15;
                        $var12 = $this.$worldAccesses;
                        $var13 = $rt_compare(var$11, $var12.$size0);
                        if ($var13 < 0) {
                            if (var$11 >= 0 && $var13 < 0) {
                                $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                                $var13 = 0;
                                $ptr = 8;
                                continue main;
                            }
                            $var12 = new jl_IndexOutOfBoundsException;
                            $var12.$suppressionEnabled = 1;
                            $var12.$writableStackTrace = 1;
                            $rt_throw($var12);
                        }
                        while (true) {
                            $var10 = $var10 + 1 | 0;
                            $var12 = $this.$addedTileEntityList;
                            $var3 = $var12.$size0;
                            $var1 = $rt_compare($var10, $var3);
                            if ($var1 >= 0) {
                                var$7 = $var12.$array;
                                $var1 = 0;
                                $var9 = null;
                                if ($var1 > $var3) {
                                    $var12 = new jl_IllegalArgumentException;
                                    $var12.$suppressionEnabled = 1;
                                    $var12.$writableStackTrace = 1;
                                    $rt_throw($var12);
                                }
                                while ($var1 < $var3) {
                                    var$8 = var$7.data;
                                    $var10 = $var1 + 1 | 0;
                                    var$8[$var1] = $var9;
                                    $var1 = $var10;
                                }
                                $var12.$size0 = 0;
                                $var12.$modCount = $var12.$modCount + 1 | 0;
                                return;
                            }
                            if ($var10 < 0)
                                break b0;
                            if ($var1 >= 0)
                                break b0;
                            $var12 = $var12.$array.data[$var10];
                            if ($var12.$tileEntityInvalid)
                                continue;
                            else
                                break;
                        }
                        $var9 = $this.$loadedTileEntityList;
                        $var13 = $var9.$modCount;
                        var$11 = $var9.$size();
                        var$12 = var$13;
                        b5: {
                            while (true) {
                                if (!(var$12 >= var$11 ? 0 : 1)) {
                                    $var1 = 0;
                                    break b5;
                                }
                                if ($var13 < $var9.$modCount)
                                    break bK;
                                $var3 = var$12 + 1 | 0;
                                $var2 = $var9.$get(var$12);
                                if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                    break;
                                var$12 = $var3;
                            }
                            $var1 = 1;
                        }
                        if (!$var1) {
                            $var9 = $this.$loadedTileEntityList;
                            ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                            var$7 = $var9.$array.data;
                            $var3 = $var9.$size0;
                            $var9.$size0 = $var3 + 1 | 0;
                            var$7[$var3] = $var12;
                            $var9.$modCount = $var9.$modCount + 1 | 0;
                        }
                        $var3 = $var12.$xCoord0 >> 4;
                        $var1 = $var12.$zCoord0 >> 4;
                        $var2 = $this.$chunkProvider;
                        $var9 = $var2.$loadedChunkHashMap;
                        var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                        $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                        $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                        var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                        var$7 = $var9.$hashArray.data;
                        var$11 = var$12 & (var$7.length - 1 | 0);
                        $var9 = var$7[var$11];
                        bF: {
                            while (true) {
                                if ($var9 === null) {
                                    $var9 = null;
                                    break bF;
                                }
                                if (Long_eq($var9.$key1, var$14))
                                    break;
                                $var9 = $var9.$nextEntry;
                            }
                        }
                        if (!($var9 === null ? 0 : 1))
                            continue;
                        else
                            break;
                    }
                    $var9 = var$7[var$11];
                    s: {
                        while ($var9 !== null) {
                            if (Long_eq($var9.$key1, var$14)) {
                                $var9 = $var9.$value4;
                                break s;
                            }
                            $var9 = $var9.$nextEntry;
                        }
                        $var9 = null;
                    }
                    $var9 = $var9;
                    if ($var9 !== null)
                        continue;
                    if ($var2.$worldObj0.$findingSpawnPoint)
                        break bE;
                    if ($var2.$loadChunkOnProvideRequest)
                        break bE;
                    $var9 = $var2.$defaultEmptyChunk;
                }
                $var12 = new ju_ConcurrentModificationException;
                $var12.$suppressionEnabled = 1;
                $var12.$writableStackTrace = 1;
                $rt_throw($var12);
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        continue main;
    case 10:
        $var9.$setChunkBlockTileEntity($var3, $var13, $var1, $var12);
        if ($rt_suspending()) {
            break main;
        }
        bE: {
            b0: {
                bK: while (true) {
                    $var1 = $var12.$xCoord0;
                    $var3 = $var12.$yCoord0;
                    $var13 = $var12.$zCoord0;
                    var$11 = 0;
                    var$12 = $var1 >> 4;
                    var$15 = $var13 >> 4;
                    $var1 = $var1 & 15;
                    var$16 = $var13 & 15;
                    $var12 = $this.$worldAccesses;
                    $var13 = $rt_compare(var$11, $var12.$size0);
                    if ($var13 < 0) {
                        if (var$11 >= 0 && $var13 < 0) {
                            $var12 = $var12.$array.data[var$11].$theWorldServer.$thePlayerManager0;
                            $var13 = 0;
                            $ptr = 8;
                            continue main;
                        }
                        $var12 = new jl_IndexOutOfBoundsException;
                        $var12.$suppressionEnabled = 1;
                        $var12.$writableStackTrace = 1;
                        $rt_throw($var12);
                    }
                    while (true) {
                        $var10 = $var10 + 1 | 0;
                        $var12 = $this.$addedTileEntityList;
                        $var3 = $var12.$size0;
                        $var1 = $rt_compare($var10, $var3);
                        if ($var1 >= 0) {
                            var$7 = $var12.$array;
                            $var1 = 0;
                            $var9 = null;
                            if ($var1 > $var3) {
                                $var12 = new jl_IllegalArgumentException;
                                $var12.$suppressionEnabled = 1;
                                $var12.$writableStackTrace = 1;
                                $rt_throw($var12);
                            }
                            while ($var1 < $var3) {
                                var$8 = var$7.data;
                                $var10 = $var1 + 1 | 0;
                                var$8[$var1] = $var9;
                                $var1 = $var10;
                            }
                            $var12.$size0 = 0;
                            $var12.$modCount = $var12.$modCount + 1 | 0;
                            return;
                        }
                        if ($var10 < 0)
                            break b0;
                        if ($var1 >= 0)
                            break b0;
                        $var12 = $var12.$array.data[$var10];
                        if ($var12.$tileEntityInvalid)
                            continue;
                        else
                            break;
                    }
                    $var9 = $this.$loadedTileEntityList;
                    $var13 = $var9.$modCount;
                    var$11 = $var9.$size();
                    var$12 = var$13;
                    v: {
                        while (true) {
                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                $var1 = 0;
                                break v;
                            }
                            if ($var13 < $var9.$modCount)
                                break bK;
                            $var3 = var$12 + 1 | 0;
                            $var2 = $var9.$get(var$12);
                            if ($var2 === $var12 ? 1 : $var2 !== null ? $var2.$equals($var12) : $var12 !== null ? 0 : 1)
                                break;
                            var$12 = $var3;
                        }
                        $var1 = 1;
                    }
                    if (!$var1) {
                        $var9 = $this.$loadedTileEntityList;
                        ju_ArrayList_ensureCapacity($var9, $var9.$size0 + 1 | 0);
                        var$7 = $var9.$array.data;
                        $var3 = $var9.$size0;
                        $var9.$size0 = $var3 + 1 | 0;
                        var$7[$var3] = $var12;
                        $var9.$modCount = $var9.$modCount + 1 | 0;
                    }
                    $var3 = $var12.$xCoord0 >> 4;
                    $var1 = $var12.$zCoord0 >> 4;
                    $var2 = $this.$chunkProvider;
                    $var9 = $var2.$loadedChunkHashMap;
                    var$14 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                    $var13 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                    $var13 = $var13 ^ ($var13 >>> 20 | 0) ^ ($var13 >>> 12 | 0);
                    var$12 = $var13 ^ ($var13 >>> 7 | 0) ^ ($var13 >>> 4 | 0);
                    var$7 = $var9.$hashArray.data;
                    var$11 = var$12 & (var$7.length - 1 | 0);
                    $var9 = var$7[var$11];
                    b3: {
                        while (true) {
                            if ($var9 === null) {
                                $var9 = null;
                                break b3;
                            }
                            if (Long_eq($var9.$key1, var$14))
                                break;
                            $var9 = $var9.$nextEntry;
                        }
                    }
                    if (!($var9 === null ? 0 : 1))
                        continue;
                    $var9 = var$7[var$11];
                    b4: {
                        while ($var9 !== null) {
                            if (Long_eq($var9.$key1, var$14)) {
                                $var9 = $var9.$value4;
                                break b4;
                            }
                            $var9 = $var9.$nextEntry;
                        }
                        $var9 = null;
                    }
                    $var9 = $var9;
                    if ($var9 === null) {
                        if ($var2.$worldObj0.$findingSpawnPoint)
                            break bE;
                        if ($var2.$loadChunkOnProvideRequest)
                            break bE;
                        $var9 = $var2.$defaultEmptyChunk;
                    }
                    if ($var9 === null)
                        continue;
                    else {
                        $var3 = $var12.$xCoord0 & 15;
                        $var13 = $var12.$yCoord0;
                        $var1 = $var12.$zCoord0 & 15;
                        continue main;
                    }
                }
                $var12 = new ju_ConcurrentModificationException;
                $var12.$suppressionEnabled = 1;
                $var12.$writableStackTrace = 1;
                $rt_throw($var12);
            }
            $var12 = new jl_IndexOutOfBoundsException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            $rt_throw($var12);
        }
        $ptr = 9;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var12, $var10, $var2, $var9, $var3, var$7, var$8, $var14, $var13, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_World_addTileEntity = ($this, $par1Collection) => {
    let var$2, var$3, var$4, var$5;
    if (!$this.$scanningTileEntities) {
        var$2 = $this.$loadedTileEntityList;
        $par1Collection = $par1Collection.$iterator();
        while ($par1Collection.$hasNext()) {
            var$3 = $par1Collection.$next();
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$4 = var$2.$array.data;
            var$5 = var$2.$size0;
            var$2.$size0 = var$5 + 1 | 0;
            var$4[var$5] = var$3;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        }
    } else {
        var$2 = $this.$addedTileEntityList;
        $par1Collection = $par1Collection.$iterator();
        while ($par1Collection.$hasNext()) {
            var$3 = $par1Collection.$next();
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$4 = var$2.$array.data;
            var$5 = var$2.$size0;
            var$2.$size0 = var$5 + 1 | 0;
            var$4[var$5] = var$3;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        }
    }
},
nms_World_updateEntity = ($this, $par1Entity) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$2 = 1;
            if (!$this.$mcServer0.$canSpawnAnimals) {
                if ($par1Entity instanceof nms_EntityAnimal)
                    break a;
                if ($par1Entity instanceof nms_EntityWaterMob)
                    break a;
            }
            if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
                $ptr = 3;
                continue main;
            }
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        nms_World_updateEntityWithOptionalForce($this, $par1Entity, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
            $ptr = 3;
            continue main;
        }
        $ptr = 1;
        continue main;
    case 3:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, $ptr);
},
nms_World_updateEntityWithOptionalForce = ($this, $par1Entity, $par2) => {
    let var$3, $var3, $var4, $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, $var5, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var5 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1Entity.$posX;
        $var3 = var$3 | 0;
        if (var$3 < $var3)
            $var3 = $var3 - 1 | 0;
        var$3 = $par1Entity.$posZ;
        $var4 = var$3 | 0;
        if (var$3 < $var4)
            $var4 = $var4 - 1 | 0;
        a: {
            b: {
                if (!($par2 && !nms_World_checkChunksExist($this, $var3 - 32 | 0, 0, $var4 - 32 | 0, $var3 + 32 | 0, 0, $var4 + 32 | 0))) {
                    $par1Entity.$lastTickPosX = $par1Entity.$posX;
                    $par1Entity.$lastTickPosY = $par1Entity.$posY;
                    $par1Entity.$lastTickPosZ = $par1Entity.$posZ;
                    $par1Entity.$prevRotationYaw = $par1Entity.$rotationYaw;
                    $par1Entity.$prevRotationPitch = $par1Entity.$rotationPitch;
                    if ($par2 && $par1Entity.$addedToChunk) {
                        $par1Entity.$ticksExisted = $par1Entity.$ticksExisted + 1 | 0;
                        if ($par1Entity.$ridingEntity === null) {
                            $ptr = 1;
                            continue main;
                        }
                        $ptr = 2;
                        continue main;
                    }
                    if (!(!(isNaN($par1Entity.$posX) ? 1 : 0) && !(!isFinite($par1Entity.$posX) ? 1 : 0)))
                        $par1Entity.$posX = $par1Entity.$lastTickPosX;
                    if (!(!(isNaN($par1Entity.$posY) ? 1 : 0) && !(!isFinite($par1Entity.$posY) ? 1 : 0)))
                        $par1Entity.$posY = $par1Entity.$lastTickPosY;
                    if (!(!(isNaN($par1Entity.$posZ) ? 1 : 0) && !(!isFinite($par1Entity.$posZ) ? 1 : 0)))
                        $par1Entity.$posZ = $par1Entity.$lastTickPosZ;
                    if (!(!(isNaN($par1Entity.$rotationPitch) ? 1 : 0) && !(!isFinite($par1Entity.$rotationPitch) ? 1 : 0)))
                        $par1Entity.$rotationPitch = $par1Entity.$prevRotationPitch;
                    if (!(!(isNaN($par1Entity.$rotationYaw) ? 1 : 0) && !(!isFinite($par1Entity.$rotationYaw) ? 1 : 0)))
                        $par1Entity.$rotationYaw = $par1Entity.$prevRotationYaw;
                    var$3 = $par1Entity.$posX / 16.0;
                    $var6 = var$3 | 0;
                    if (var$3 < $var6)
                        $var6 = $var6 - 1 | 0;
                    var$3 = $par1Entity.$posY / 16.0;
                    $var7 = var$3 | 0;
                    if (var$3 < $var7)
                        $var7 = $var7 - 1 | 0;
                    var$3 = $par1Entity.$posZ / 16.0;
                    $var8 = var$3 | 0;
                    if (var$3 < $var8)
                        $var8 = $var8 - 1 | 0;
                    var$9 = $par1Entity.$addedToChunk;
                    if (!(var$9 && $par1Entity.$chunkCoordX == $var6 && $par1Entity.$chunkCoordY == $var7 && $par1Entity.$chunkCoordZ == $var8)) {
                        if (var$9) {
                            var$9 = $par1Entity.$chunkCoordX;
                            var$10 = $par1Entity.$chunkCoordZ;
                            var$11 = $this.$chunkProvider;
                            var$12 = var$11.$loadedChunkHashMap;
                            var$13 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), 32));
                            $var7 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                            $var7 = $var7 ^ ($var7 >>> 20 | 0) ^ ($var7 >>> 12 | 0);
                            $var5 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
                            var$15 = var$12.$hashArray.data;
                            $var3 = $var5 & (var$15.length - 1 | 0);
                            var$12 = var$15[$var3];
                            c: {
                                while (true) {
                                    if (var$12 === null) {
                                        var$12 = null;
                                        break c;
                                    }
                                    if (Long_eq(var$12.$key1, var$13))
                                        break;
                                    var$12 = var$12.$nextEntry;
                                }
                            }
                            if (var$12 === null ? 0 : 1) {
                                var$12 = var$15[$var3];
                                d: {
                                    while (var$12 !== null) {
                                        if (Long_eq(var$12.$key1, var$13)) {
                                            var$12 = var$12.$value4;
                                            break d;
                                        }
                                        var$12 = var$12.$nextEntry;
                                    }
                                    var$12 = null;
                                }
                                var$12 = var$12;
                                if (var$12 === null) {
                                    if (var$11.$worldObj0.$findingSpawnPoint)
                                        break a;
                                    if (var$11.$loadChunkOnProvideRequest)
                                        break a;
                                    var$12 = var$11.$defaultEmptyChunk;
                                }
                                var$12.$removeEntityAtIndex($par1Entity, $par1Entity.$chunkCoordY);
                            }
                        }
                        var$11 = $this.$chunkProvider;
                        var$12 = var$11.$loadedChunkHashMap;
                        var$13 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), 32));
                        var$9 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                        var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                        $var7 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
                        var$15 = var$12.$hashArray.data;
                        var$10 = $var7 & (var$15.length - 1 | 0);
                        var$12 = var$15[var$10];
                        e: {
                            while (true) {
                                if (var$12 === null) {
                                    var$12 = null;
                                    break e;
                                }
                                if (Long_eq(var$12.$key1, var$13))
                                    break;
                                var$12 = var$12.$nextEntry;
                            }
                        }
                        if (!(var$12 === null ? 0 : 1))
                            $par1Entity.$addedToChunk = 0;
                        else {
                            $par1Entity.$addedToChunk = 1;
                            var$12 = var$15[var$10];
                            f: {
                                while (var$12 !== null) {
                                    if (Long_eq(var$12.$key1, var$13)) {
                                        var$12 = var$12.$value4;
                                        break f;
                                    }
                                    var$12 = var$12.$nextEntry;
                                }
                                var$12 = null;
                            }
                            var$12 = var$12;
                            if (var$12 === null) {
                                if (var$11.$worldObj0.$findingSpawnPoint)
                                    break b;
                                if (var$11.$loadChunkOnProvideRequest)
                                    break b;
                                var$12 = var$11.$defaultEmptyChunk;
                            }
                            var$12.$addEntity($par1Entity);
                        }
                    }
                    if ($par2 && $par1Entity.$addedToChunk) {
                        var$12 = $par1Entity.$riddenByEntity;
                        if (var$12 !== null) {
                            if (!var$12.$isDead && var$12.$ridingEntity === $par1Entity) {
                                g: {
                                    $par2 = 1;
                                    if (!$this.$mcServer0.$canSpawnAnimals) {
                                        if (var$12 instanceof nms_EntityAnimal)
                                            break g;
                                        if (var$12 instanceof nms_EntityWaterMob)
                                            break g;
                                    }
                                    if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance(var$12, nms_INpc)) {
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $ptr = 3;
                                    continue main;
                                }
                                $ptr = 4;
                                continue main;
                            }
                            var$12.$ridingEntity = null;
                            $par1Entity.$riddenByEntity = null;
                        }
                    }
                }
                return;
            }
            $ptr = 6;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 1:
        $par1Entity.$onUpdate();
        if ($rt_suspending()) {
            break main;
        }
        if (!(!(isNaN($par1Entity.$posX) ? 1 : 0) && !(!isFinite($par1Entity.$posX) ? 1 : 0)))
            $par1Entity.$posX = $par1Entity.$lastTickPosX;
        if (!(!(isNaN($par1Entity.$posY) ? 1 : 0) && !(!isFinite($par1Entity.$posY) ? 1 : 0)))
            $par1Entity.$posY = $par1Entity.$lastTickPosY;
        if (!(!(isNaN($par1Entity.$posZ) ? 1 : 0) && !(!isFinite($par1Entity.$posZ) ? 1 : 0)))
            $par1Entity.$posZ = $par1Entity.$lastTickPosZ;
        if (!(!(isNaN($par1Entity.$rotationPitch) ? 1 : 0) && !(!isFinite($par1Entity.$rotationPitch) ? 1 : 0)))
            $par1Entity.$rotationPitch = $par1Entity.$prevRotationPitch;
        if (!(!(isNaN($par1Entity.$rotationYaw) ? 1 : 0) && !(!isFinite($par1Entity.$rotationYaw) ? 1 : 0)))
            $par1Entity.$rotationYaw = $par1Entity.$prevRotationYaw;
        var$3 = $par1Entity.$posX / 16.0;
        $var6 = var$3 | 0;
        if (var$3 < $var6)
            $var6 = $var6 - 1 | 0;
        var$3 = $par1Entity.$posY / 16.0;
        $var7 = var$3 | 0;
        if (var$3 < $var7)
            $var7 = $var7 - 1 | 0;
        var$3 = $par1Entity.$posZ / 16.0;
        $var8 = var$3 | 0;
        if (var$3 < $var8)
            $var8 = $var8 - 1 | 0;
        h: {
            i: {
                var$9 = $par1Entity.$addedToChunk;
                if (!(var$9 && $par1Entity.$chunkCoordX == $var6 && $par1Entity.$chunkCoordY == $var7 && $par1Entity.$chunkCoordZ == $var8)) {
                    if (var$9) {
                        var$9 = $par1Entity.$chunkCoordX;
                        var$10 = $par1Entity.$chunkCoordZ;
                        var$11 = $this.$chunkProvider;
                        var$12 = var$11.$loadedChunkHashMap;
                        var$13 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), 32));
                        $var7 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                        $var7 = $var7 ^ ($var7 >>> 20 | 0) ^ ($var7 >>> 12 | 0);
                        $var5 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
                        var$15 = var$12.$hashArray.data;
                        $var3 = $var5 & (var$15.length - 1 | 0);
                        var$12 = var$15[$var3];
                        j: {
                            while (true) {
                                if (var$12 === null) {
                                    var$12 = null;
                                    break j;
                                }
                                if (Long_eq(var$12.$key1, var$13))
                                    break;
                                var$12 = var$12.$nextEntry;
                            }
                        }
                        if (var$12 === null ? 0 : 1) {
                            var$12 = var$15[$var3];
                            k: {
                                while (var$12 !== null) {
                                    if (Long_eq(var$12.$key1, var$13)) {
                                        var$12 = var$12.$value4;
                                        break k;
                                    }
                                    var$12 = var$12.$nextEntry;
                                }
                                var$12 = null;
                            }
                            var$12 = var$12;
                            if (var$12 === null) {
                                if (var$11.$worldObj0.$findingSpawnPoint)
                                    break h;
                                if (var$11.$loadChunkOnProvideRequest)
                                    break h;
                                var$12 = var$11.$defaultEmptyChunk;
                            }
                            var$12.$removeEntityAtIndex($par1Entity, $par1Entity.$chunkCoordY);
                        }
                    }
                    var$11 = $this.$chunkProvider;
                    var$12 = var$11.$loadedChunkHashMap;
                    var$13 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), 32));
                    var$9 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                    var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                    $var7 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
                    var$15 = var$12.$hashArray.data;
                    var$10 = $var7 & (var$15.length - 1 | 0);
                    var$12 = var$15[var$10];
                    l: {
                        while (true) {
                            if (var$12 === null) {
                                var$12 = null;
                                break l;
                            }
                            if (Long_eq(var$12.$key1, var$13))
                                break;
                            var$12 = var$12.$nextEntry;
                        }
                    }
                    if (!(var$12 === null ? 0 : 1))
                        $par1Entity.$addedToChunk = 0;
                    else {
                        $par1Entity.$addedToChunk = 1;
                        var$12 = var$15[var$10];
                        m: {
                            while (var$12 !== null) {
                                if (Long_eq(var$12.$key1, var$13)) {
                                    var$12 = var$12.$value4;
                                    break m;
                                }
                                var$12 = var$12.$nextEntry;
                            }
                            var$12 = null;
                        }
                        var$12 = var$12;
                        if (var$12 === null) {
                            if (var$11.$worldObj0.$findingSpawnPoint)
                                break i;
                            if (var$11.$loadChunkOnProvideRequest)
                                break i;
                            var$12 = var$11.$defaultEmptyChunk;
                        }
                        var$12.$addEntity($par1Entity);
                    }
                }
                if ($par2 && $par1Entity.$addedToChunk) {
                    var$12 = $par1Entity.$riddenByEntity;
                    if (var$12 !== null) {
                        if (!var$12.$isDead && var$12.$ridingEntity === $par1Entity) {
                            n: {
                                $par2 = 1;
                                if (!$this.$mcServer0.$canSpawnAnimals) {
                                    if (var$12 instanceof nms_EntityAnimal)
                                        break n;
                                    if (var$12 instanceof nms_EntityWaterMob)
                                        break n;
                                }
                                if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance(var$12, nms_INpc)) {
                                    $ptr = 5;
                                    continue main;
                                }
                                $ptr = 3;
                                continue main;
                            }
                            $ptr = 4;
                            continue main;
                        }
                        var$12.$ridingEntity = null;
                        $par1Entity.$riddenByEntity = null;
                    }
                }
                return;
            }
            $ptr = 6;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 2:
        $par1Entity.$updateRidden();
        if ($rt_suspending()) {
            break main;
        }
        if (!(!(isNaN($par1Entity.$posX) ? 1 : 0) && !(!isFinite($par1Entity.$posX) ? 1 : 0)))
            $par1Entity.$posX = $par1Entity.$lastTickPosX;
        if (!(!(isNaN($par1Entity.$posY) ? 1 : 0) && !(!isFinite($par1Entity.$posY) ? 1 : 0)))
            $par1Entity.$posY = $par1Entity.$lastTickPosY;
        if (!(!(isNaN($par1Entity.$posZ) ? 1 : 0) && !(!isFinite($par1Entity.$posZ) ? 1 : 0)))
            $par1Entity.$posZ = $par1Entity.$lastTickPosZ;
        if (!(!(isNaN($par1Entity.$rotationPitch) ? 1 : 0) && !(!isFinite($par1Entity.$rotationPitch) ? 1 : 0)))
            $par1Entity.$rotationPitch = $par1Entity.$prevRotationPitch;
        if (!(!(isNaN($par1Entity.$rotationYaw) ? 1 : 0) && !(!isFinite($par1Entity.$rotationYaw) ? 1 : 0)))
            $par1Entity.$rotationYaw = $par1Entity.$prevRotationYaw;
        var$3 = $par1Entity.$posX / 16.0;
        $var6 = var$3 | 0;
        if (var$3 < $var6)
            $var6 = $var6 - 1 | 0;
        var$3 = $par1Entity.$posY / 16.0;
        $var7 = var$3 | 0;
        if (var$3 < $var7)
            $var7 = $var7 - 1 | 0;
        var$3 = $par1Entity.$posZ / 16.0;
        $var8 = var$3 | 0;
        if (var$3 < $var8)
            $var8 = $var8 - 1 | 0;
        h: {
            i: {
                var$9 = $par1Entity.$addedToChunk;
                if (!(var$9 && $par1Entity.$chunkCoordX == $var6 && $par1Entity.$chunkCoordY == $var7 && $par1Entity.$chunkCoordZ == $var8)) {
                    if (var$9) {
                        var$9 = $par1Entity.$chunkCoordX;
                        var$10 = $par1Entity.$chunkCoordZ;
                        var$11 = $this.$chunkProvider;
                        var$12 = var$11.$loadedChunkHashMap;
                        var$13 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), 32));
                        $var7 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                        $var7 = $var7 ^ ($var7 >>> 20 | 0) ^ ($var7 >>> 12 | 0);
                        $var5 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
                        var$15 = var$12.$hashArray.data;
                        $var3 = $var5 & (var$15.length - 1 | 0);
                        var$12 = var$15[$var3];
                        j: {
                            while (true) {
                                if (var$12 === null) {
                                    var$12 = null;
                                    break j;
                                }
                                if (Long_eq(var$12.$key1, var$13))
                                    break;
                                var$12 = var$12.$nextEntry;
                            }
                        }
                        if (var$12 === null ? 0 : 1) {
                            var$12 = var$15[$var3];
                            k: {
                                while (var$12 !== null) {
                                    if (Long_eq(var$12.$key1, var$13)) {
                                        var$12 = var$12.$value4;
                                        break k;
                                    }
                                    var$12 = var$12.$nextEntry;
                                }
                                var$12 = null;
                            }
                            var$12 = var$12;
                            if (var$12 === null) {
                                if (var$11.$worldObj0.$findingSpawnPoint)
                                    break h;
                                if (var$11.$loadChunkOnProvideRequest)
                                    break h;
                                var$12 = var$11.$defaultEmptyChunk;
                            }
                            var$12.$removeEntityAtIndex($par1Entity, $par1Entity.$chunkCoordY);
                        }
                    }
                    var$11 = $this.$chunkProvider;
                    var$12 = var$11.$loadedChunkHashMap;
                    var$13 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), 32));
                    var$9 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                    var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                    $var7 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
                    var$15 = var$12.$hashArray.data;
                    var$10 = $var7 & (var$15.length - 1 | 0);
                    var$12 = var$15[var$10];
                    l: {
                        while (true) {
                            if (var$12 === null) {
                                var$12 = null;
                                break l;
                            }
                            if (Long_eq(var$12.$key1, var$13))
                                break;
                            var$12 = var$12.$nextEntry;
                        }
                    }
                    if (!(var$12 === null ? 0 : 1))
                        $par1Entity.$addedToChunk = 0;
                    else {
                        $par1Entity.$addedToChunk = 1;
                        var$12 = var$15[var$10];
                        m: {
                            while (var$12 !== null) {
                                if (Long_eq(var$12.$key1, var$13)) {
                                    var$12 = var$12.$value4;
                                    break m;
                                }
                                var$12 = var$12.$nextEntry;
                            }
                            var$12 = null;
                        }
                        var$12 = var$12;
                        if (var$12 === null) {
                            if (var$11.$worldObj0.$findingSpawnPoint)
                                break i;
                            if (var$11.$loadChunkOnProvideRequest)
                                break i;
                            var$12 = var$11.$defaultEmptyChunk;
                        }
                        var$12.$addEntity($par1Entity);
                    }
                }
                if ($par2 && $par1Entity.$addedToChunk) {
                    var$12 = $par1Entity.$riddenByEntity;
                    if (var$12 !== null) {
                        if (!var$12.$isDead && var$12.$ridingEntity === $par1Entity) {
                            n: {
                                $par2 = 1;
                                if (!$this.$mcServer0.$canSpawnAnimals) {
                                    if (var$12 instanceof nms_EntityAnimal)
                                        break n;
                                    if (var$12 instanceof nms_EntityWaterMob)
                                        break n;
                                }
                                if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance(var$12, nms_INpc)) {
                                    $ptr = 5;
                                    continue main;
                                }
                                $ptr = 3;
                                continue main;
                            }
                            $ptr = 4;
                            continue main;
                        }
                        var$12.$ridingEntity = null;
                        $par1Entity.$riddenByEntity = null;
                    }
                }
                return;
            }
            $ptr = 6;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 3:
        nms_World_updateEntityWithOptionalForce($this, var$12, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        var$12.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance(var$12, nms_INpc)) {
            $ptr = 5;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 5:
        var$12.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
        continue main;
    case 6:
        $tmp = nms_ChunkProviderServer_loadChunk(var$11, $var6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        var$12.$addEntity($par1Entity);
        if ($par2 && $par1Entity.$addedToChunk) {
            var$12 = $par1Entity.$riddenByEntity;
            if (var$12 !== null) {
                if (!var$12.$isDead && var$12.$ridingEntity === $par1Entity) {
                    o: {
                        $par2 = 1;
                        if (!$this.$mcServer0.$canSpawnAnimals) {
                            if (var$12 instanceof nms_EntityAnimal)
                                break o;
                            if (var$12 instanceof nms_EntityWaterMob)
                                break o;
                        }
                        if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance(var$12, nms_INpc)) {
                            $ptr = 5;
                            continue main;
                        }
                        $ptr = 3;
                        continue main;
                    }
                    $ptr = 4;
                    continue main;
                }
                var$12.$ridingEntity = null;
                $par1Entity.$riddenByEntity = null;
            }
        }
        return;
    case 7:
        $tmp = nms_ChunkProviderServer_loadChunk(var$11, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        var$12.$removeEntityAtIndex($par1Entity, $par1Entity.$chunkCoordY);
        var$11 = $this.$chunkProvider;
        var$12 = var$11.$loadedChunkHashMap;
        var$13 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), 32));
        var$9 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
        var$9 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
        $var7 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
        var$15 = var$12.$hashArray.data;
        var$10 = $var7 & (var$15.length - 1 | 0);
        var$12 = var$15[var$10];
        p: {
            while (true) {
                if (var$12 === null) {
                    var$12 = null;
                    break p;
                }
                if (Long_eq(var$12.$key1, var$13))
                    break;
                var$12 = var$12.$nextEntry;
            }
        }
        var$9 = var$12 === null ? 0 : 1;
        q: {
            if (!var$9)
                $par1Entity.$addedToChunk = 0;
            else {
                $par1Entity.$addedToChunk = 1;
                var$12 = var$15[var$10];
                r: {
                    while (var$12 !== null) {
                        if (Long_eq(var$12.$key1, var$13)) {
                            var$12 = var$12.$value4;
                            break r;
                        }
                        var$12 = var$12.$nextEntry;
                    }
                    var$12 = null;
                }
                var$12 = var$12;
                if (var$12 === null) {
                    if (var$11.$worldObj0.$findingSpawnPoint)
                        break q;
                    if (var$11.$loadChunkOnProvideRequest)
                        break q;
                    var$12 = var$11.$defaultEmptyChunk;
                }
                var$12.$addEntity($par1Entity);
            }
            if ($par2 && $par1Entity.$addedToChunk) {
                var$12 = $par1Entity.$riddenByEntity;
                if (var$12 !== null) {
                    if (!var$12.$isDead && var$12.$ridingEntity === $par1Entity) {
                        i: {
                            $par2 = 1;
                            if (!$this.$mcServer0.$canSpawnAnimals) {
                                if (var$12 instanceof nms_EntityAnimal)
                                    break i;
                                if (var$12 instanceof nms_EntityWaterMob)
                                    break i;
                            }
                            if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance(var$12, nms_INpc)) {
                                $ptr = 5;
                                continue main;
                            }
                            $ptr = 3;
                            continue main;
                        }
                        $ptr = 4;
                        continue main;
                    }
                    var$12.$ridingEntity = null;
                    $par1Entity.$riddenByEntity = null;
                }
            }
            return;
        }
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, var$3, $var3, $var4, $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, $var5, var$15, $ptr);
},
nms_World_checkNoEntityCollision0 = ($this, $par1AxisAlignedBB) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision($this, $par1AxisAlignedBB, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, var$2, var$3, $ptr);
},
nms_World_checkNoEntityCollision = ($this, $par1AxisAlignedBB, $par2Entity) => {
    let $var5, $var3, $var4, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();$par2Entity = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = null;
        $var3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($this, $var5, $par1AxisAlignedBB, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var4 = 0;
        a: {
            while (true) {
                var$6 = $rt_compare($var4, $var3.$size0);
                if (var$6 >= 0)
                    break;
                if ($var4 < 0)
                    break a;
                if (var$6 >= 0)
                    break a;
                $var5 = $var3.$array.data[$var4];
                if (!$var5.$isDead && $var5.$preventEntitySpawning && $var5 !== $par2Entity)
                    return 0;
                $var4 = $var4 + 1 | 0;
            }
            return 1;
        }
        $par1AxisAlignedBB = new jl_IndexOutOfBoundsException;
        $par1AxisAlignedBB.$suppressionEnabled = 1;
        $par1AxisAlignedBB.$writableStackTrace = 1;
        $rt_throw($par1AxisAlignedBB);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, $par2Entity, $var5, $var3, $var4, var$6, $ptr);
},
nms_World_checkBlockCollision = ($this, $par1AxisAlignedBB) => {
    let var$2, $var2, var$4, $var3, $var4, var$7, $var5, $var6, var$10, $var7, $var9, $var10, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1AxisAlignedBB.$minX0;
        $var2 = var$2 | 0;
        if (var$2 < $var2)
            $var2 = $var2 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$minY0;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$7 = $par1AxisAlignedBB.$maxY + 1.0;
        $var5 = var$7 | 0;
        if (var$7 < $var5)
            $var5 = $var5 - 1 | 0;
        var$7 = $par1AxisAlignedBB.$minZ0;
        $var6 = var$7 | 0;
        if (var$7 < $var6)
            $var6 = $var6 - 1 | 0;
        var$10 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var7 = var$10 | 0;
        if (var$10 < $var7)
            $var7 = $var7 - 1 | 0;
        if (var$2 < 0.0)
            $var2 = $var2 + (-1) | 0;
        if (var$4 < 0.0)
            $var4 = $var4 + (-1) | 0;
        if (var$7 < 0.0)
            $var6 = $var6 + (-1) | 0;
        while ($var2 < $var3) {
            $var9 = $var4;
            while ($var9 < $var5) {
                $var10 = $var6;
                if ($var10 < $var7) {
                    nms_Block_$callClinit();
                    var$14 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                $var9 = $var9 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($this, $var2, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (var$14[var$15] !== null)
            return 1;
        $var10 = $var10 + 1 | 0;
        a: while (true) {
            if ($var10 < $var7) {
                nms_Block_$callClinit();
                var$14 = nms_Block_blocksList.data;
                continue main;
            }
            $var9 = $var9 + 1 | 0;
            while ($var9 >= $var5) {
                $var2 = $var2 + 1 | 0;
                if ($var2 >= $var3)
                    break a;
                $var9 = $var4;
            }
            $var10 = $var6;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, var$2, $var2, var$4, $var3, $var4, var$7, $var5, $var6, var$10, $var7, $var9, $var10, var$14, var$15, $ptr);
},
nms_World_isAnyLiquid = ($this, $par1AxisAlignedBB) => {
    let var$2, $var2, var$4, $var3, $var4, var$7, $var5, $var6, var$10, $var7, $var9, $var10, var$14, var$15, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1AxisAlignedBB.$minX0;
        $var2 = var$2 | 0;
        if (var$2 < $var2)
            $var2 = $var2 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$minY0;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$7 = $par1AxisAlignedBB.$maxY + 1.0;
        $var5 = var$7 | 0;
        if (var$7 < $var5)
            $var5 = $var5 - 1 | 0;
        var$7 = $par1AxisAlignedBB.$minZ0;
        $var6 = var$7 | 0;
        if (var$7 < $var6)
            $var6 = $var6 - 1 | 0;
        var$10 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var7 = var$10 | 0;
        if (var$10 < $var7)
            $var7 = $var7 - 1 | 0;
        if (var$2 < 0.0)
            $var2 = $var2 + (-1) | 0;
        if (var$4 < 0.0)
            $var4 = $var4 + (-1) | 0;
        if (var$7 < 0.0)
            $var6 = $var6 + (-1) | 0;
        while ($var2 < $var3) {
            $var9 = $var4;
            while ($var9 < $var5) {
                $var10 = $var6;
                if ($var10 < $var7) {
                    nms_Block_$callClinit();
                    var$14 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                $var9 = $var9 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($this, $var2, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        $var11 = var$14[var$15];
        if ($var11 !== null && $var11.$blockMaterial.$isLiquid())
            return 1;
        $var10 = $var10 + 1 | 0;
        a: while (true) {
            if ($var10 < $var7) {
                nms_Block_$callClinit();
                var$14 = nms_Block_blocksList.data;
                continue main;
            }
            $var9 = $var9 + 1 | 0;
            while ($var9 >= $var5) {
                $var2 = $var2 + 1 | 0;
                if ($var2 >= $var3)
                    break a;
                $var9 = $var4;
            }
            $var10 = $var6;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, var$2, $var2, var$4, $var3, $var4, var$7, $var5, $var6, var$10, $var7, $var9, $var10, var$14, var$15, $var11, $ptr);
},
nms_World_isBoundingBoxBurning = ($this, $par1AxisAlignedBB) => {
    let var$2, $var2, $var3, $var4, $var5, $var6, $var7, $var9, $var10, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1AxisAlignedBB.$minX0;
        $var2 = var$2 | 0;
        if (var$2 < $var2)
            $var2 = $var2 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var3 = var$2 | 0;
        if (var$2 < $var3)
            $var3 = $var3 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$minY0;
        $var4 = var$2 | 0;
        if (var$2 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$maxY + 1.0;
        $var5 = var$2 | 0;
        if (var$2 < $var5)
            $var5 = $var5 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$minZ0;
        $var6 = var$2 | 0;
        if (var$2 < $var6)
            $var6 = $var6 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var7 = var$2 | 0;
        if (var$2 < $var7)
            $var7 = $var7 - 1 | 0;
        a: {
            if (nms_World_checkChunksExist($this, $var2, $var4, $var6, $var3, $var5, $var7))
                while (true) {
                    if ($var2 >= $var3)
                        break a;
                    $var9 = $var4;
                    while ($var9 < $var5) {
                        $var10 = $var6;
                        if ($var10 < $var7) {
                            $ptr = 1;
                            continue main;
                        }
                        $var9 = $var9 + 1 | 0;
                    }
                    $var2 = $var2 + 1 | 0;
                }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($this, $var2, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        if ($var11 != nms_Block_fire.$blockID && $var11 != nms_Block_lavaMoving.$blockID && $var11 != nms_Block_lavaStill.$blockID) {
            $var10 = $var10 + 1 | 0;
            b: while (true) {
                if ($var10 < $var7) {
                    continue main;
                }
                $var9 = $var9 + 1 | 0;
                while ($var9 >= $var5) {
                    $var2 = $var2 + 1 | 0;
                    if ($var2 >= $var3)
                        break b;
                    $var9 = $var4;
                }
                $var10 = $var6;
            }
            return 0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, var$2, $var2, $var3, $var4, $var5, $var6, $var7, $var9, $var10, $var11, $ptr);
},
nms_World_handleMaterialAcceleration = ($this, $par1AxisAlignedBB, $par2Material, $par3Entity) => {
    let var$4, $var4, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var13, $var14, var$15, $var16, var$17, $var15, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();$var15 = $thread.pop();var$17 = $thread.pop();$var16 = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$par3Entity = $thread.pop();$par2Material = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par1AxisAlignedBB.$minX0;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var5 = var$4 | 0;
        if (var$4 < $var5)
            $var5 = $var5 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$minY0;
        $var6 = var$4 | 0;
        if (var$4 < $var6)
            $var6 = $var6 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$maxY + 1.0;
        $var7 = var$4 | 0;
        if (var$4 < $var7)
            $var7 = $var7 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$minZ0;
        $var8 = var$4 | 0;
        if (var$4 < $var8)
            $var8 = $var8 - 1 | 0;
        var$4 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var9 = var$4 | 0;
        if (var$4 < $var9)
            $var9 = $var9 - 1 | 0;
        if (!nms_World_checkChunksExist($this, $var4, $var6, $var8, $var5, $var7, $var9))
            return 0;
        $var10 = 0;
        $var11 = nms_Vec3Pool_getVecFromPool($this.$vecPool, 0.0, 0.0, 0.0);
        var$4 = $var7;
        while ($var4 < $var5) {
            $var13 = $var6;
            while ($var13 < $var7) {
                $var14 = $var8;
                if ($var14 < $var9) {
                    nms_Block_$callClinit();
                    var$15 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                $var13 = $var13 + 1 | 0;
            }
            $var4 = $var4 + 1 | 0;
        }
        var$4 = $var11.$xCoord;
        var$4 = var$4 * var$4;
        $var16 = $var11.$yCoord;
        var$4 = var$4 + $var16 * $var16;
        $var16 = $var11.$zCoord;
        if (jl_Math_sqrt(var$4 + $var16 * $var16) > 0.0 && $par3Entity.$isPushedByWater()) {
            $par1AxisAlignedBB = nms_Vec3_normalize($var11);
            $par3Entity.$motionX = $par3Entity.$motionX + $par1AxisAlignedBB.$xCoord * 0.014;
            $par3Entity.$motionY = $par3Entity.$motionY + $par1AxisAlignedBB.$yCoord * 0.014;
            $par3Entity.$motionZ = $par3Entity.$motionZ + $par1AxisAlignedBB.$zCoord * 0.014;
        }
        return $var10;
    case 1:
        $tmp = nms_World_getBlockId($this, $var4, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $tmp;
        $var15 = var$15[var$17];
        if ($var15 !== null && $var15.$blockMaterial === $par2Material) {
            var$19 = $var13 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        a: while (true) {
            if ($var14 < $var9) {
                nms_Block_$callClinit();
                var$15 = nms_Block_blocksList.data;
                continue main;
            }
            $var13 = $var13 + 1 | 0;
            while ($var13 >= $var7) {
                $var4 = $var4 + 1 | 0;
                if ($var4 >= $var5)
                    break a;
                $var13 = $var6;
            }
            $var14 = $var8;
        }
        var$4 = $var11.$xCoord;
        var$4 = var$4 * var$4;
        $var16 = $var11.$yCoord;
        var$4 = var$4 + $var16 * $var16;
        $var16 = $var11.$zCoord;
        if (jl_Math_sqrt(var$4 + $var16 * $var16) > 0.0 && $par3Entity.$isPushedByWater()) {
            $par1AxisAlignedBB = nms_Vec3_normalize($var11);
            $par3Entity.$motionX = $par3Entity.$motionX + $par1AxisAlignedBB.$xCoord * 0.014;
            $par3Entity.$motionY = $par3Entity.$motionY + $par1AxisAlignedBB.$yCoord * 0.014;
            $par3Entity.$motionZ = $par3Entity.$motionZ + $par1AxisAlignedBB.$zCoord * 0.014;
        }
        return $var10;
    case 2:
        $tmp = nms_World_getBlockMetadata($this, $var4, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $tmp;
        if (var$17 >= 8)
            var$17 = 0;
        if (var$4 >= var$19 - (var$17 + 1 | 0) / 9.0) {
            $var10 = 1;
            $ptr = 3;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        a: while (true) {
            if ($var14 < $var9) {
                nms_Block_$callClinit();
                var$15 = nms_Block_blocksList.data;
                $ptr = 1;
                continue main;
            }
            $var13 = $var13 + 1 | 0;
            while ($var13 >= $var7) {
                $var4 = $var4 + 1 | 0;
                if ($var4 >= $var5)
                    break a;
                $var13 = $var6;
            }
            $var14 = $var8;
        }
        var$4 = $var11.$xCoord;
        var$4 = var$4 * var$4;
        $var16 = $var11.$yCoord;
        var$4 = var$4 + $var16 * $var16;
        $var16 = $var11.$zCoord;
        if (jl_Math_sqrt(var$4 + $var16 * $var16) > 0.0 && $par3Entity.$isPushedByWater()) {
            $par1AxisAlignedBB = nms_Vec3_normalize($var11);
            $par3Entity.$motionX = $par3Entity.$motionX + $par1AxisAlignedBB.$xCoord * 0.014;
            $par3Entity.$motionY = $par3Entity.$motionY + $par1AxisAlignedBB.$yCoord * 0.014;
            $par3Entity.$motionZ = $par3Entity.$motionZ + $par1AxisAlignedBB.$zCoord * 0.014;
        }
        return $var10;
    case 3:
        $var15.$velocityToAddToEntity($this, $var4, $var13, $var14, $par3Entity, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $var14 + 1 | 0;
        b: while (true) {
            if ($var14 < $var9) {
                nms_Block_$callClinit();
                var$15 = nms_Block_blocksList.data;
                $ptr = 1;
                continue main;
            }
            $var13 = $var13 + 1 | 0;
            while ($var13 >= $var7) {
                $var4 = $var4 + 1 | 0;
                if ($var4 >= $var5)
                    break b;
                $var13 = $var6;
            }
            $var14 = $var8;
        }
        var$4 = $var11.$xCoord;
        var$4 = var$4 * var$4;
        $var16 = $var11.$yCoord;
        var$4 = var$4 + $var16 * $var16;
        $var16 = $var11.$zCoord;
        if (jl_Math_sqrt(var$4 + $var16 * $var16) > 0.0 && $par3Entity.$isPushedByWater()) {
            $par1AxisAlignedBB = nms_Vec3_normalize($var11);
            $par3Entity.$motionX = $par3Entity.$motionX + $par1AxisAlignedBB.$xCoord * 0.014;
            $par3Entity.$motionY = $par3Entity.$motionY + $par1AxisAlignedBB.$yCoord * 0.014;
            $par3Entity.$motionZ = $par3Entity.$motionZ + $par1AxisAlignedBB.$zCoord * 0.014;
        }
        return $var10;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, $par2Material, $par3Entity, var$4, $var4, $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var13, $var14, var$15, $var16, var$17, $var15, var$19, $ptr);
},
nms_World_isMaterialInBB = ($this, $par1AxisAlignedBB, $par2Material) => {
    let var$3, $var3, $var4, var$6, $var5, $var6, $var7, $var8, $var10, $var11, var$13, var$14, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2Material = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $par1AxisAlignedBB.$minX0;
        $var3 = var$3 | 0;
        if (var$3 < $var3)
            $var3 = $var3 - 1 | 0;
        var$3 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var4 = var$3 | 0;
        if (var$3 < $var4)
            $var4 = $var4 - 1 | 0;
        var$6 = $par1AxisAlignedBB.$minY0;
        $var5 = var$6 | 0;
        if (var$6 < $var5)
            $var5 = $var5 - 1 | 0;
        var$6 = $par1AxisAlignedBB.$maxY + 1.0;
        $var6 = var$6 | 0;
        if (var$6 < $var6)
            $var6 = $var6 - 1 | 0;
        var$6 = $par1AxisAlignedBB.$minZ0;
        $var7 = var$6 | 0;
        if (var$6 < $var7)
            $var7 = $var7 - 1 | 0;
        var$6 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var8 = var$6 | 0;
        if (var$6 < $var8)
            $var8 = $var8 - 1 | 0;
        while ($var3 < $var4) {
            $var10 = $var5;
            while ($var10 < $var6) {
                $var11 = $var7;
                if ($var11 < $var8) {
                    nms_Block_$callClinit();
                    var$13 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($this, $var3, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        $var12 = var$13[var$14];
        if ($var12 !== null && $var12.$blockMaterial === $par2Material)
            return 1;
        $var11 = $var11 + 1 | 0;
        a: while (true) {
            if ($var11 < $var8) {
                nms_Block_$callClinit();
                var$13 = nms_Block_blocksList.data;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= $var6) {
                $var3 = $var3 + 1 | 0;
                if ($var3 >= $var4)
                    break a;
                $var10 = $var5;
            }
            $var11 = $var7;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, $par2Material, var$3, $var3, $var4, var$6, $var5, $var6, $var7, $var8, $var10, $var11, var$13, var$14, $var12, $ptr);
},
nms_World_isAABBInMaterial = ($this, $par1AxisAlignedBB, $par2Material) => {
    let $var14, $var3, $var4, $var5, $var6, var$8, $var7, $var8, $var10, $var11, var$13, $var13, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();$var13 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var14 = $thread.pop();$par2Material = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var14 = $par1AxisAlignedBB.$minX0;
        $var3 = $var14 | 0;
        if ($var14 < $var3)
            $var3 = $var3 - 1 | 0;
        $var14 = $par1AxisAlignedBB.$maxX0 + 1.0;
        $var4 = $var14 | 0;
        if ($var14 < $var4)
            $var4 = $var4 - 1 | 0;
        $var14 = $par1AxisAlignedBB.$minY0;
        $var5 = $var14 | 0;
        if ($var14 < $var5)
            $var5 = $var5 - 1 | 0;
        $var14 = $par1AxisAlignedBB.$maxY + 1.0;
        $var6 = $var14 | 0;
        if ($var14 < $var6)
            $var6 = $var6 - 1 | 0;
        var$8 = $par1AxisAlignedBB.$minZ0;
        $var7 = var$8 | 0;
        if (var$8 < $var7)
            $var7 = $var7 - 1 | 0;
        $var14 = $par1AxisAlignedBB.$maxZ0 + 1.0;
        $var8 = $var14 | 0;
        if ($var14 < $var8)
            $var8 = $var8 - 1 | 0;
        while ($var3 < $var4) {
            $var10 = $var5;
            while ($var10 < $var6) {
                $var11 = $var7;
                if ($var11 < $var8) {
                    nms_Block_$callClinit();
                    var$13 = nms_Block_blocksList.data;
                    $ptr = 1;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($this, $var3, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var12 = var$13[$var13];
        if ($var12 !== null && $var12.$blockMaterial === $par2Material) {
            $ptr = 2;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        a: while (true) {
            if ($var11 < $var8) {
                nms_Block_$callClinit();
                var$13 = nms_Block_blocksList.data;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= $var6) {
                $var3 = $var3 + 1 | 0;
                if ($var3 >= $var4)
                    break a;
                $var10 = $var5;
            }
            $var11 = $var7;
        }
        return 0;
    case 2:
        $tmp = nms_World_getBlockMetadata($this, $var3, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var14 = $var10 + 1 | 0;
        if ($var13 < 8)
            $var14 = $var14 - $var13 / 8.0;
        if ($var14 >= $par1AxisAlignedBB.$minY0)
            return 1;
        $var11 = $var11 + 1 | 0;
        b: while (true) {
            if ($var11 < $var8) {
                nms_Block_$callClinit();
                var$13 = nms_Block_blocksList.data;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= $var6) {
                $var3 = $var3 + 1 | 0;
                if ($var3 >= $var4)
                    break b;
                $var10 = $var5;
            }
            $var11 = $var7;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, $par2Material, $var14, $var3, $var4, $var5, $var6, var$8, $var7, $var8, $var10, $var11, var$13, $var13, $var12, $ptr);
},
nms_World_createExplosion = ($this, $par1Entity, $par2, $par4, $par6, $par8, $par9) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_WorldServer_newExplosion($this, $par1Entity, $par2, $par4, $par6, $par8, var$7, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity = $tmp;
        return $par1Entity;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par4, $par6, $par8, $par9, var$7, $ptr);
},
nms_World_getBlockDensity = ($this, $par1Vec3, $par2AxisAlignedBB) => {
    let $var3, $var5, $var7, $var9, $var10, $var11, $var12, $var16, $var14, $var18, var$13, var$14, var$15, var$16, var$17, $var13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var18 = $thread.pop();$var14 = $thread.pop();$var16 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Vec3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 1.0 / (($par2AxisAlignedBB.$maxX0 - $par2AxisAlignedBB.$minX0) * 2.0 + 1.0);
        $var5 = 1.0 / (($par2AxisAlignedBB.$maxY - $par2AxisAlignedBB.$minY0) * 2.0 + 1.0);
        $var7 = 1.0 / (($par2AxisAlignedBB.$maxZ0 - $par2AxisAlignedBB.$minZ0) * 2.0 + 1.0);
        $var9 = 0;
        $var10 = 0;
        $var11 = 0.0;
        while ($var11 <= 1.0) {
            $var12 = 0.0;
            while ($var12 <= 1.0) {
                if (0.0 <= 1.0) {
                    $var16 = $par2AxisAlignedBB.$minX0;
                    $var14 = $var16 + ($par2AxisAlignedBB.$maxX0 - $var16) * $var11;
                    $var16 = $par2AxisAlignedBB.$minY0;
                    $var16 = $var16 + ($par2AxisAlignedBB.$maxY - $var16) * $var12;
                    $var18 = $par2AxisAlignedBB.$minZ0;
                    var$13 = $par2AxisAlignedBB.$maxZ0 - $var18;
                    var$14 = 0.0;
                    $var18 = $var18 + var$13 * var$14;
                    var$15 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $var14, $var16, $var18);
                    var$16 = 0;
                    var$17 = 0;
                    $ptr = 1;
                    continue main;
                }
                $var12 = $var12 + $var5;
            }
            $var11 = $var11 + $var3;
        }
        return $var9 / $var10;
    case 1:
        $tmp = nms_World_rayTraceBlocks_do_do($this, var$15, $par1Vec3, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (var$15 === null)
            $var9 = $var9 + 1 | 0;
        $var10 = $var10 + 1 | 0;
        $var13 = var$14 + $var7;
        a: while (true) {
            if ($var13 <= 1.0) {
                $var16 = $par2AxisAlignedBB.$minX0;
                $var14 = $var16 + ($par2AxisAlignedBB.$maxX0 - $var16) * $var11;
                $var16 = $par2AxisAlignedBB.$minY0;
                $var16 = $var16 + ($par2AxisAlignedBB.$maxY - $var16) * $var12;
                $var18 = $par2AxisAlignedBB.$minZ0;
                var$13 = $par2AxisAlignedBB.$maxZ0 - $var18;
                var$14 = $var13;
                $var18 = $var18 + var$13 * var$14;
                var$15 = nms_Vec3Pool_getVecFromPool($this.$vecPool, $var14, $var16, $var18);
                var$16 = 0;
                var$17 = 0;
                continue main;
            }
            $var12 = $var12 + $var5;
            while ($var12 > 1.0) {
                $var11 = $var11 + $var3;
                if ($var11 > 1.0)
                    break a;
                $var12 = 0.0;
            }
            $var13 = 0.0;
        }
        return $var9 / $var10;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Vec3, $par2AxisAlignedBB, $var3, $var5, $var7, $var9, $var10, $var11, $var12, $var16, $var14, $var18, var$13, var$14, var$15, var$16, var$17, $var13, $ptr);
},
nms_World_extinguishFire = ($this, $par1EntityPlayer, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par5)
            $par3 = $par3 + (-1) | 0;
        if ($par5 == 1)
            $par3 = $par3 + 1 | 0;
        if ($par5 == 2)
            $par4 = $par4 + (-1) | 0;
        if ($par5 == 3)
            $par4 = $par4 + 1 | 0;
        if ($par5 == 4)
            $par2 = $par2 + (-1) | 0;
        if ($par5 == 5)
            $par2 = $par2 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        nms_Block_$callClinit();
        if ($par5 != nms_Block_fire.$blockID)
            return 0;
        $par5 = 1004;
        var$6 = 0;
        $ptr = 2;
    case 2:
        nms_World_playAuxSFXAtEntity($this, $par1EntityPlayer, $par5, $par2, $par3, $par4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = 0;
        var$6 = 0;
        var$7 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock($this, $par2, $par3, $par4, $par5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $par3, $par4, $par5, var$6, var$7, $ptr);
},
nms_World_getBlockTileEntity = ($this, $par1, $par2, $par3) => {
    let $var4, $var6, $var5, $var5_0, $var6_0, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6_0 = $thread.pop();$var5_0 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2 >= 0 && $par2 < 256) {
            a: {
                $var4 = null;
                if (!$this.$scanningTileEntities)
                    $var6 = $var4;
                else {
                    $var5 = 0;
                    while (true) {
                        $var6 = $this.$addedTileEntityList;
                        $var5_0 = $rt_compare($var5, $var6.$size0);
                        if ($var5_0 >= 0) {
                            $var6 = $var4;
                            break a;
                        }
                        if ($var5 < 0)
                            break;
                        if ($var5_0 >= 0)
                            break;
                        $var6 = $var6.$array.data[$var5];
                        if (!$var6.$tileEntityInvalid && $var6.$xCoord0 == $par1 && $var6.$yCoord0 == $par2 && $var6.$zCoord0 == $par3)
                            break a;
                        $var5 = $var5 + 1 | 0;
                    }
                    $var6 = new jl_IndexOutOfBoundsException;
                    $var6.$suppressionEnabled = 1;
                    $var6.$writableStackTrace = 1;
                    $rt_throw($var6);
                }
            }
            b: {
                if ($var6 === null) {
                    $var5 = $par1 >> 4;
                    $var5_0 = $par3 >> 4;
                    $var4 = $this.$chunkProvider;
                    $var6_0 = $var4.$loadedChunkHashMap;
                    var$9 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var5_0), Long_create(4294967295, 0)), 32));
                    var$10 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
                    var$10 = var$10 ^ (var$10 >>> 20 | 0) ^ (var$10 >>> 12 | 0);
                    var$11 = var$10 ^ (var$10 >>> 7 | 0) ^ (var$10 >>> 4 | 0);
                    var$12 = $var6_0.$hashArray.data;
                    $var6_0 = var$12[var$11 & (var$12.length - 1 | 0)];
                    c: {
                        while ($var6_0 !== null) {
                            if (Long_eq($var6_0.$key1, var$9)) {
                                $var6_0 = $var6_0.$value4;
                                break c;
                            }
                            $var6_0 = $var6_0.$nextEntry;
                        }
                        $var6_0 = null;
                    }
                    $var6_0 = $var6_0;
                    if ($var6_0 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break b;
                        if ($var4.$loadChunkOnProvideRequest)
                            break b;
                        $var6_0 = $var4.$defaultEmptyChunk;
                    }
                    if ($var6_0 !== null) {
                        $var5 = $par1 & 15;
                        $var5_0 = $par3 & 15;
                        $ptr = 2;
                        continue main;
                    }
                }
                d: {
                    e: {
                        if ($var6 !== null)
                            $var6_0 = $var6;
                        else {
                            $var5_0 = 0;
                            while (true) {
                                $var4 = $this.$addedTileEntityList;
                                $var5 = $rt_compare($var5_0, $var4.$size0);
                                if ($var5 >= 0) {
                                    $var6_0 = $var6;
                                    break e;
                                }
                                if ($var5_0 < 0)
                                    break d;
                                if ($var5 >= 0)
                                    break d;
                                $var6_0 = $var4.$array.data[$var5_0];
                                if (!$var6_0.$tileEntityInvalid && $var6_0.$xCoord0 == $par1 && $var6_0.$yCoord0 == $par2 && $var6_0.$zCoord0 == $par3)
                                    break;
                                $var5_0 = $var5_0 + 1 | 0;
                            }
                        }
                    }
                    return $var6_0;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            $ptr = 1;
            continue main;
        }
        return null;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var5, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        if ($var6_0 === null) {
            f: {
                a: {
                    if ($var6 !== null)
                        $var6_0 = $var6;
                    else {
                        $var5_0 = 0;
                        while (true) {
                            $var4 = $this.$addedTileEntityList;
                            $var5 = $rt_compare($var5_0, $var4.$size0);
                            if ($var5 >= 0) {
                                $var6_0 = $var6;
                                break a;
                            }
                            if ($var5_0 < 0)
                                break f;
                            if ($var5 >= 0)
                                break f;
                            $var6_0 = $var4.$array.data[$var5_0];
                            if (!$var6_0.$tileEntityInvalid && $var6_0.$xCoord0 == $par1 && $var6_0.$yCoord0 == $par2 && $var6_0.$zCoord0 == $par3)
                                break;
                            $var5_0 = $var5_0 + 1 | 0;
                        }
                    }
                }
                return $var6_0;
            }
            $var6 = new jl_IndexOutOfBoundsException;
            $var6.$suppressionEnabled = 1;
            $var6.$writableStackTrace = 1;
            $rt_throw($var6);
        }
        $var5 = $par1 & 15;
        $var5_0 = $par3 & 15;
        $ptr = 2;
    case 2:
        $tmp = $var6_0.$getChunkBlockTileEntity($var5, $par2, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        g: {
            f: {
                if ($var6 !== null)
                    $var6_0 = $var6;
                else {
                    $var5_0 = 0;
                    while (true) {
                        $var4 = $this.$addedTileEntityList;
                        $var5 = $rt_compare($var5_0, $var4.$size0);
                        if ($var5 >= 0) {
                            $var6_0 = $var6;
                            break f;
                        }
                        if ($var5_0 < 0)
                            break g;
                        if ($var5 >= 0)
                            break g;
                        $var6_0 = $var4.$array.data[$var5_0];
                        if (!$var6_0.$tileEntityInvalid && $var6_0.$xCoord0 == $par1 && $var6_0.$yCoord0 == $par2 && $var6_0.$zCoord0 == $par3)
                            break;
                        $var5_0 = $var5_0 + 1 | 0;
                    }
                }
            }
            return $var6_0;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var6, $var5, $var5_0, $var6_0, var$9, var$10, var$11, var$12, $ptr);
},
nms_World_setBlockTileEntity = ($this, $par1, $par2, $par3, $par4TileEntity) => {
    let $var6, var$6, var$7, var$8, $var5, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$par4TileEntity = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($par4TileEntity !== null && !$par4TileEntity.$tileEntityInvalid) {
                if (!$this.$scanningTileEntities) {
                    $var6 = $this.$loadedTileEntityList;
                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                    var$6 = $var6.$array.data;
                    var$7 = $var6.$size0;
                    $var6.$size0 = var$7 + 1 | 0;
                    var$6[var$7] = $par4TileEntity;
                    $var6.$modCount = $var6.$modCount + 1 | 0;
                    var$7 = $par1 >> 4;
                    var$8 = $par3 >> 4;
                    $var6 = $this.$chunkProvider;
                    $var5 = $var6.$loadedChunkHashMap;
                    var$10 = Long_or(Long_and(Long_fromInt(var$7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$8), Long_create(4294967295, 0)), 32));
                    var$11 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                    var$11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                    var$12 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                    var$6 = $var5.$hashArray.data;
                    $var5 = var$6[var$12 & (var$6.length - 1 | 0)];
                    b: {
                        while ($var5 !== null) {
                            if (Long_eq($var5.$key1, var$10)) {
                                $var5 = $var5.$value4;
                                break b;
                            }
                            $var5 = $var5.$nextEntry;
                        }
                        $var5 = null;
                    }
                    c: {
                        $var5 = $var5;
                        if ($var5 === null) {
                            if ($var6.$worldObj0.$findingSpawnPoint)
                                break c;
                            if ($var6.$loadChunkOnProvideRequest)
                                break c;
                            $var5 = $var6.$defaultEmptyChunk;
                        }
                        if ($var5 === null)
                            break a;
                        var$11 = $par1 & 15;
                        $par1 = $par3 & 15;
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 1;
                    continue main;
                }
                $par4TileEntity.$xCoord0 = $par1;
                $par4TileEntity.$yCoord0 = $par2;
                $par4TileEntity.$zCoord0 = $par3;
                $var6 = $this.$addedTileEntityList;
                $var5 = new ju_AbstractList$1;
                $var5.$this$00 = $var6;
                $var5.$modCount0 = $var6.$modCount;
                $var5.$size3 = $var6.$size();
                $var5.$removeIndex = (-1);
                while (true) {
                    var$11 = $var5.$index;
                    if (!(var$11 >= $var5.$size3 ? 0 : 1)) {
                        $var6 = $this.$addedTileEntityList;
                        ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                        var$6 = $var6.$array.data;
                        $par2 = $var6.$size0;
                        $var6.$size0 = $par2 + 1 | 0;
                        var$6[$par2] = $par4TileEntity;
                        $var6.$modCount = $var6.$modCount + 1 | 0;
                        break a;
                    }
                    var$7 = $var5.$modCount0;
                    $var6 = $var5.$this$00;
                    if (var$7 < $var6.$modCount)
                        break;
                    $var5.$removeIndex = var$11;
                    $var5.$index = var$11 + 1 | 0;
                    $var6 = $var6.$get(var$11);
                    if ($var6.$xCoord0 == $par1 && $var6.$yCoord0 == $par2 && $var6.$zCoord0 == $par3) {
                        $ptr = 3;
                        continue main;
                    }
                }
                $par4TileEntity = new ju_ConcurrentModificationException;
                $par4TileEntity.$suppressionEnabled = 1;
                $par4TileEntity.$writableStackTrace = 1;
                $rt_throw($par4TileEntity);
            }
        }
        return;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 === null)
            return;
        var$11 = $par1 & 15;
        $par1 = $par3 & 15;
        $ptr = 2;
    case 2:
        $var5.$setChunkBlockTileEntity(var$11, $par2, $par1, $par4TileEntity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $var6.$invalidate();
        if ($rt_suspending()) {
            break main;
        }
        ju_AbstractList$1_remove($var5);
        while (true) {
            var$11 = $var5.$index;
            if (!(var$11 >= $var5.$size3 ? 0 : 1)) {
                $var6 = $this.$addedTileEntityList;
                ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                var$6 = $var6.$array.data;
                $par2 = $var6.$size0;
                $var6.$size0 = $par2 + 1 | 0;
                var$6[$par2] = $par4TileEntity;
                $var6.$modCount = $var6.$modCount + 1 | 0;
                return;
            }
            var$7 = $var5.$modCount0;
            $var6 = $var5.$this$00;
            if (var$7 < $var6.$modCount)
                break;
            $var5.$removeIndex = var$11;
            $var5.$index = var$11 + 1 | 0;
            $var6 = $var6.$get(var$11);
            if ($var6.$xCoord0 != $par1)
                continue;
            if ($var6.$yCoord0 != $par2)
                continue;
            if ($var6.$zCoord0 != $par3)
                continue;
            else {
                continue main;
            }
        }
        $par4TileEntity = new ju_ConcurrentModificationException;
        $par4TileEntity.$suppressionEnabled = 1;
        $par4TileEntity.$writableStackTrace = 1;
        $rt_throw($par4TileEntity);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4TileEntity, $var6, var$6, var$7, var$8, $var5, var$10, var$11, var$12, $ptr);
},
nms_World_removeBlockTileEntity = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 !== null && $this.$scanningTileEntities) {
            $ptr = 2;
            continue main;
        }
        if ($var4 !== null) {
            var$5 = $this.$addedTileEntityList;
            var$6 = var$5.$size0;
            var$7 = 0;
            a: {
                while (true) {
                    var$8 = $rt_compare(var$7, var$6);
                    if (var$8 >= 0) {
                        var$7 = (-1);
                        break a;
                    }
                    if (var$7 < 0)
                        break;
                    if (var$8 >= 0)
                        break;
                    var$9 = var$5.$array.data[var$7];
                    if ($var4 === var$9 ? 1 : $var4 === null ? (var$9 !== null ? 0 : 1) : $var4 !== var$9 ? 0 : 1)
                        break a;
                    var$7 = var$7 + 1 | 0;
                }
                var$9 = new jl_IndexOutOfBoundsException;
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$9);
                $rt_throw(var$9);
            }
            if (var$7 >= 0)
                ju_ArrayList_remove(var$5, var$7);
            var$9 = $this.$loadedTileEntityList;
            var$7 = var$9.$size0;
            var$8 = 0;
            b: {
                while (true) {
                    var$6 = $rt_compare(var$8, var$7);
                    if (var$6 >= 0) {
                        var$8 = (-1);
                        break b;
                    }
                    if (var$8 < 0)
                        break;
                    if (var$6 >= 0)
                        break;
                    var$5 = var$9.$array.data[var$8];
                    if ($var4 === var$5 ? 1 : $var4 === null ? (var$5 !== null ? 0 : 1) : $var4 !== var$5 ? 0 : 1)
                        break b;
                    var$8 = var$8 + 1 | 0;
                }
                var$9 = new jl_IndexOutOfBoundsException;
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$9);
                $rt_throw(var$9);
            }
            if (var$8 >= 0)
                ju_ArrayList_remove(var$9, var$8);
        }
        var$10 = $par1 >> 4;
        var$11 = $par3 >> 4;
        var$9 = $this.$chunkProvider;
        $var4 = var$9.$loadedChunkHashMap;
        var$12 = Long_or(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$11), Long_create(4294967295, 0)), 32));
        var$8 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
        var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
        var$7 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
        var$13 = $var4.$hashArray.data;
        $var4 = var$13[var$7 & (var$13.length - 1 | 0)];
        c: {
            while ($var4 !== null) {
                if (Long_eq($var4.$key1, var$12)) {
                    $var4 = $var4.$value4;
                    break c;
                }
                $var4 = $var4.$nextEntry;
            }
            $var4 = null;
        }
        d: {
            $var4 = $var4;
            if ($var4 === null) {
                if (var$9.$worldObj0.$findingSpawnPoint)
                    break d;
                if (var$9.$loadChunkOnProvideRequest)
                    break d;
                $var4 = var$9.$defaultEmptyChunk;
            }
            if ($var4 === null)
                return;
            var$8 = $par1 & 15;
            $par1 = $par3 & 15;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 2:
        $var4.$invalidate();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $this.$addedTileEntityList;
        $par3 = var$9.$size0;
        $par1 = 0;
        e: {
            f: {
                while (true) {
                    $par2 = $rt_compare($par1, $par3);
                    if ($par2 >= 0) {
                        $par1 = (-1);
                        break f;
                    }
                    if ($par1 < 0)
                        break e;
                    if ($par2 >= 0)
                        break e;
                    var$5 = var$9.$array.data[$par1];
                    if ($var4 === var$5 ? 1 : $var4 === null ? (var$5 !== null ? 0 : 1) : $var4 !== var$5 ? 0 : 1)
                        break;
                    $par1 = $par1 + 1 | 0;
                }
            }
            if ($par1 >= 0)
                ju_ArrayList_remove(var$9, $par1);
            return;
        }
        var$9 = new jl_IndexOutOfBoundsException;
        var$9.$suppressionEnabled = 1;
        var$9.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$9);
        $rt_throw(var$9);
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk(var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return;
        var$8 = $par1 & 15;
        $par1 = $par3 & 15;
        $ptr = 4;
    case 4:
        $var4.$removeChunkBlockTileEntity(var$8, $par2, $par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_World_markTileEntityForDespawn = ($this, $par1TileEntity) => {
    let var$2, var$3, var$4;
    var$2 = $this.$entityRemoval;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$3 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$3[var$4] = $par1TileEntity;
    var$2.$modCount = var$2.$modCount + 1 | 0;
},
nms_World_isBlockOpaqueCube = ($this, $par1, $par2, $par3) => {
    let var$4, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        $var4 = var$4[$par1];
        return $var4 !== null ? $var4.$isOpaqueCube() : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $var4, $ptr);
},
nms_World_isBlockNormalCube = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data[$par1];
        if (var$4 === null)
            $par1 = 0;
        else {
            var$5 = var$4.$blockMaterial;
            $par1 = !var$5.$isTranslucent ? var$5.$blocksMovement() : 0;
            $par1 = $par1 && var$4.$renderAsNormalBlock() && !var$4.$canProvidePower() ? 1 : 0;
        }
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $ptr);
},
nms_World_isBlockFullCube = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            if (var$5[$var4] !== null) {
                $var5 = var$5[$var4];
                $ptr = 2;
                continue main;
            }
        }
        return 0;
    case 2:
        $tmp = $var5.$getCollisionBoundingBoxFromPool($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        return $var5 !== null && ($var5.$maxX0 - $var5.$minX0 + $var5.$maxY - $var5.$minY0 + $var5.$maxZ0 - $var5.$minZ0) / 3.0 >= 1.0 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, $var5, $ptr);
},
nms_World_doesBlockHaveSolidTopSurface = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $var4 = var$4[var$5];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return nms_World_isBlockTopFacingSurfaceSolid($this, $var4, $par1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $var4, $ptr);
},
nms_World_isBlockTopFacingSurfaceSolid = ($this, $par1Block, $par2) => {
    let var$3, var$4;
    if ($par1Block === null)
        $par2 = 0;
    else {
        var$3 = $par1Block.$blockMaterial;
        var$4 = !var$3.$isTranslucent ? var$3.$blocksMovement() : 0;
        $par2 = var$4 && $par1Block.$renderAsNormalBlock() ? 1 : $par1Block instanceof nms_BlockStairs ? (($par2 & 4) != 4 ? 0 : 1) : $par1Block instanceof nms_BlockHalfSlab ? (($par2 & 8) != 8 ? 0 : 1) : $par1Block instanceof nms_BlockHopper ? 1 : !($par1Block instanceof nms_BlockSnow) ? 0 : ($par2 & 7) != 7 ? 0 : 1;
    }
    return $par2;
},
nms_World_isBlockNormalCubeDefault = ($this, $par1, $par2, $par3, $par4) => {
    let $var6, var$6, var$7, $var5, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 >= (-30000000) && $par3 >= (-30000000) && $par1 < 30000000 && $par3 < 30000000) {
            $var6 = $this.$chunkProvider;
            var$6 = $par1 >> 4;
            var$7 = $par3 >> 4;
            $var5 = $var6.$loadedChunkHashMap;
            var$9 = Long_or(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$7), Long_create(4294967295, 0)), 32));
            var$10 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
            var$10 = var$10 ^ (var$10 >>> 20 | 0) ^ (var$10 >>> 12 | 0);
            var$11 = var$10 ^ (var$10 >>> 7 | 0) ^ (var$10 >>> 4 | 0);
            var$12 = $var5.$hashArray.data;
            $var5 = var$12[var$11 & (var$12.length - 1 | 0)];
            a: {
                while ($var5 !== null) {
                    if (Long_eq($var5.$key1, var$9)) {
                        $var5 = $var5.$value4;
                        break a;
                    }
                    $var5 = $var5.$nextEntry;
                }
                $var5 = null;
            }
            b: {
                $var5 = $var5;
                if ($var5 === null) {
                    if ($var6.$worldObj0.$findingSpawnPoint)
                        break b;
                    if ($var6.$loadChunkOnProvideRequest)
                        break b;
                    $var5 = $var6.$defaultEmptyChunk;
                }
                if ($var5 !== null && !$var5.$isEmpty()) {
                    nms_Block_$callClinit();
                    var$12 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
                return $par4;
            }
            $ptr = 1;
            continue main;
        }
        return $par4;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var6, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 !== null && !$var5.$isEmpty()) {
            nms_Block_$callClinit();
            var$12 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        return $par4;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        $var6 = var$12[$par1];
        if ($var6 === null)
            $par1 = 0;
        else {
            $var5 = $var6.$blockMaterial;
            $par1 = !$var5.$isTranslucent ? $var5.$blocksMovement() : 0;
            $par1 = $par1 && $var6.$renderAsNormalBlock() ? 1 : 0;
        }
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var6, var$6, var$7, $var5, var$9, var$10, var$11, var$12, $ptr);
},
nms_World_calculateInitialSkylight = $this => {
    let $var1;
    $var1 = nms_World_calculateSkylightSubtracted($this, 1.0);
    if ($var1 != $this.$skylightSubtracted)
        $this.$skylightSubtracted = $var1;
},
nms_World_setAllowedSpawnTypes = ($this, $par1, $par2) => {
    $this.$spawnHostileMobs = $par1;
    $this.$spawnPeacefulMobs = $par2;
},
nms_World_updateWeather = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, $var2, var$8;
    if (!$this.$provider.$hasNoSky) {
        $var1 = $this.$worldInfo.$getThunderTime();
        if ($var1 <= 0) {
            if (!$this.$worldInfo.$isThundering()) {
                var$2 = $this.$worldInfo;
                var$3 = $this.$rand0;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$5 = Long_lo(Long_shru(var$4, 17));
                while (true) {
                    var$6 = var$5 % 168000 | 0;
                    if (((var$5 - var$6 | 0) + 167999 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                }
                var$2.$setThunderTime(var$6 + 12000 | 0);
            } else {
                var$2 = $this.$worldInfo;
                var$3 = $this.$rand0;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$5 = Long_lo(Long_shru(var$4, 17));
                while (true) {
                    var$6 = var$5 % 12000 | 0;
                    if (((var$5 - var$6 | 0) + 11999 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                }
                var$2.$setThunderTime(var$6 + 3600 | 0);
            }
        } else {
            $var1 = $var1 + (-1) | 0;
            $this.$worldInfo.$setThunderTime($var1);
            if ($var1 <= 0) {
                var$2 = $this.$worldInfo;
                var$2.$setThundering(var$2.$isThundering() ? 0 : 1);
            }
        }
        $var2 = $this.$worldInfo.$getRainTime();
        if ($var2 <= 0) {
            if (!$this.$worldInfo.$isRaining()) {
                var$2 = $this.$worldInfo;
                var$3 = $this.$rand0;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$6 = Long_lo(Long_shru(var$4, 17));
                while (true) {
                    var$8 = var$6 % 168000 | 0;
                    if (((var$6 - var$8 | 0) + 167999 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$6 = Long_lo(Long_shru(var$4, 17));
                }
                var$2.$setRainTime(var$8 + 12000 | 0);
            } else {
                var$2 = $this.$worldInfo;
                var$3 = $this.$rand0;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$5 = Long_lo(Long_shru(var$4, 17));
                while (true) {
                    var$6 = var$5 % 12000 | 0;
                    if (((var$5 - var$6 | 0) + 11999 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                }
                var$2.$setRainTime(var$6 + 12000 | 0);
            }
        } else {
            $var1 = $var2 + (-1) | 0;
            $this.$worldInfo.$setRainTime($var1);
            if ($var1 <= 0) {
                var$2 = $this.$worldInfo;
                var$2.$setRaining(var$2.$isRaining() ? 0 : 1);
            }
        }
        $this.$prevRainingStrength = $this.$rainingStrength;
        if (!$this.$worldInfo.$isRaining())
            $this.$rainingStrength = $this.$rainingStrength - 0.01;
        else
            $this.$rainingStrength = $this.$rainingStrength + 0.01;
        if ($this.$rainingStrength < 0.0)
            $this.$rainingStrength = 0.0;
        if ($this.$rainingStrength > 1.0)
            $this.$rainingStrength = 1.0;
        $this.$prevThunderingStrength = $this.$thunderingStrength;
        if (!$this.$worldInfo.$isThundering())
            $this.$thunderingStrength = $this.$thunderingStrength - 0.01;
        else
            $this.$thunderingStrength = $this.$thunderingStrength + 0.01;
        if ($this.$thunderingStrength < 0.0)
            $this.$thunderingStrength = 0.0;
        if ($this.$thunderingStrength > 1.0)
            $this.$thunderingStrength = 1.0;
    }
},
nms_World_toggleRain = $this => {
    $this.$worldInfo.$setRainTime(1);
},
nms_World_setActivePlayerChunksAndCheckLight = $this => {
    let $var2, var$2, var$3, $var1, $var8, $var3, var$7, $var5, $var4, var$10, $var6, $var7, $var4_0, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var4_0 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var8 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$activeChunkSet.$backingMap;
        if ($var2.$elementCount > 0) {
            $var2.$elementCount = 0;
            var$2 = $var2.$elementData.data;
            var$3 = null;
            $var1 = 0;
            $var8 = var$2.length;
            if ($var1 > $var8) {
                $var2 = new jl_IllegalArgumentException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var2);
                $rt_throw($var2);
            }
            while ($var1 < $var8) {
                $var3 = $var1 + 1 | 0;
                var$2[$var1] = var$3;
                $var1 = $var3;
            }
            $var2.$modCount1 = $var2.$modCount1 + 1 | 0;
        }
        $var1 = 0;
        while (true) {
            $var2 = $this.$playerEntities;
            $var3 = $var2.$size0;
            $var8 = $rt_compare($var1, $var3);
            if ($var8 >= 0) {
                $var1 = $this.$ambientTickCountdown;
                if ($var1 > 0)
                    $this.$ambientTickCountdown = $var1 - 1 | 0;
                if ($var3 ? 0 : 1)
                    return;
                var$3 = $this.$rand0;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $var5 = Long_lo(Long_shru(var$7, 17));
                $var1 = $var3 - 1 | 0;
                if (!($var3 & $var1))
                    $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($var3), Long_fromInt($var5)), 31));
                else
                    while (true) {
                        $var4 = $var5 % $var3 | 0;
                        if ((($var5 - $var4 | 0) + $var1 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$7;
                        $var5 = Long_lo(Long_shru(var$7, 17));
                    }
                if ($var4 >= 0 && $var4 < $var3) {
                    $var2 = $var2.$array.data[$var4];
                    var$10 = $var2.$posX;
                    $var5 = var$10 | 0;
                    if (var$10 < $var5)
                        $var5 = $var5 - 1 | 0;
                    var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$7;
                    $var3 = Long_lo(Long_shru(var$7, 17));
                    while (true) {
                        $var4 = $var3 % 11 | 0;
                        if ((($var3 - $var4 | 0) + 10 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$7;
                        $var3 = Long_lo(Long_shru(var$7, 17));
                    }
                    $var3 = ($var5 + $var4 | 0) - 5 | 0;
                    var$10 = $var2.$posY;
                    $var6 = var$10 | 0;
                    if (var$10 < $var6)
                        $var6 = $var6 - 1 | 0;
                    var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$7;
                    $var4 = Long_lo(Long_shru(var$7, 17));
                    while (true) {
                        $var5 = $var4 % 11 | 0;
                        if ((($var4 - $var5 | 0) + 10 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$7;
                        $var4 = Long_lo(Long_shru(var$7, 17));
                    }
                    $var4 = ($var6 + $var5 | 0) - 5 | 0;
                    var$10 = $var2.$posZ;
                    $var7 = var$10 | 0;
                    if (var$10 < $var7)
                        $var7 = $var7 - 1 | 0;
                    var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$7;
                    $var5 = Long_lo(Long_shru(var$7, 17));
                    while (true) {
                        $var6 = $var5 % 11 | 0;
                        if ((($var5 - $var6 | 0) + 10 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$7;
                        $var5 = Long_lo(Long_shru(var$7, 17));
                    }
                    $var8 = ($var7 + $var6 | 0) - 5 | 0;
                    if ($this.$provider.$hasNoSky) {
                        $var2 = nms_EnumSkyBlock_Block;
                        $ptr = 1;
                        continue main;
                    }
                    $var2 = nms_EnumSkyBlock_Sky;
                    $ptr = 2;
                    continue main;
                }
                $var2 = new jl_IndexOutOfBoundsException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $rt_throw($var2);
            }
            if ($var1 < 0)
                break;
            if ($var8 >= 0)
                break;
            $var2 = $var2.$array.data[$var1];
            var$10 = $var2.$posX / 16.0;
            $var3 = var$10 | 0;
            if (var$10 < $var3)
                $var3 = $var3 - 1 | 0;
            var$10 = $var2.$posZ / 16.0;
            $var4_0 = var$10 | 0;
            if (var$10 < $var4_0)
                $var4_0 = $var4_0 - 1 | 0;
            $var6 = (-7);
            while ($var6 <= 7) {
                $var7 = (-7);
                while ($var7 <= 7) {
                    $var2 = $this.$activeChunkSet;
                    var$3 = new nms_ChunkCoordIntPair;
                    $var4 = $var6 + $var3 | 0;
                    var$14 = $var7 + $var4_0 | 0;
                    var$3.$chunkXPos = $var4;
                    var$3.$chunkZPos = var$14;
                    ju_HashMap_putImpl($var2.$backingMap, var$3, $var2);
                    $var7 = $var7 + 1 | 0;
                }
                $var6 = $var6 + 1 | 0;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    case 1:
        nms_World_updateLightByType($this, $var2, $var3, $var4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_updateLightByType($this, $var2, $var3, $var4, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = nms_EnumSkyBlock_Block;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, $var1, $var8, $var3, var$7, $var5, $var4, var$10, $var6, $var7, $var4_0, var$14, $ptr);
},
nms_World_moodSoundAndLightCheck = ($this, $par1, $par2, $par3Chunk) => {
    let $var4, $var5, $var6, $var7, $var8, var$9, var$10, $var9, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var9 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 =
        $thread.pop();$par3Chunk = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$ambientTickCountdown && !$this.$isRemote) {
                $var4 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                $this.$updateLCG = $var4;
                $var4 = $var4 >> 2;
                $var5 = $var4 & 15;
                $var6 = $var4 >> 8 & 15;
                $var7 = $var4 >> 16 & 127;
                $var8 = $par3Chunk.$getBlockID($var5, $var7, $var6);
                $var5 = $var5 + $par1 | 0;
                var$9 = $var6 + $par2 | 0;
                if (!$var8) {
                    if ($var7 < 0)
                        $var4 = 0;
                    else {
                        $var6 = $var7 >= 256 ? 255 : $var7;
                        $var8 = $var5 >> 4;
                        var$10 = var$9 >> 4;
                        $var9 = $this.$chunkProvider;
                        var$12 = $var9.$loadedChunkHashMap;
                        var$13 = Long_or(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), 32));
                        $par1 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                        $par1 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
                        $par2 = $par1 ^ ($par1 >>> 7 | 0) ^ ($par1 >>> 4 | 0);
                        var$14 = var$12.$hashArray.data;
                        var$12 = var$14[$par2 & (var$14.length - 1 | 0)];
                        b: {
                            while (var$12 !== null) {
                                if (Long_eq(var$12.$key1, var$13)) {
                                    var$12 = var$12.$value4;
                                    break b;
                                }
                                var$12 = var$12.$nextEntry;
                            }
                            var$12 = null;
                        }
                        var$12 = var$12;
                        if (var$12 === null) {
                            if ($var9.$worldObj0.$findingSpawnPoint)
                                break a;
                            if ($var9.$loadChunkOnProvideRequest)
                                break a;
                            var$12 = $var9.$defaultEmptyChunk;
                        }
                        $var4 = var$12.$getBlockLightValue($var5 & 15, $var6, var$9 & 15, 0);
                    }
                    $var9 = $this.$rand0;
                    var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var9.$seed = var$15;
                    $par2 = 17;
                    if ($var4 <= Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$15, $par2)))), 31))) {
                        $var9 = nms_EnumSkyBlock_Sky;
                        $ptr = 2;
                        continue main;
                    }
                }
            }
            $ptr = 1;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 1:
        nms_Chunk_enqueueRelightChecks($par3Chunk);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $tmp = nms_World_getSavedLightValue($this, $var9, $var5, $var7, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if ($par1 <= 0) {
            var$16 = $var5 + 0.5;
            var$17 = $var7 + 0.5;
            var$18 = var$9 + 0.5;
            $var9 = nms_World_getClosestPlayer($this, var$16, var$17, var$18, 8.0);
            if ($var9 !== null) {
                var$19 = $var9.$posX - var$16;
                var$20 = $var9.$posY - var$17;
                var$21 = $var9.$posZ - var$18;
                if (var$19 * var$19 + var$20 * var$20 + var$21 * var$21 > 4.0) {
                    var$12 = $rt_s(1663);
                    var$22 = 0.699999988079071;
                    $var9 = $this.$rand0;
                    var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var9.$seed = var$15;
                    var$23 = 0.800000011920929 + Long_lo(Long_shru(var$15, 24)) / 1.6777216E7 * 0.20000000298023224;
                    $par1 = 0;
                    $var9 = null;
                    var$19 = 16.0;
                    var$24 = $this.$worldAccesses;
                    $var4 = $rt_compare($par1, var$24.$size0);
                    if ($var4 < 0) {
                        if ($par1 >= 0 && $var4 < 0) {
                            var$24 = var$24.$array.data[$par1];
                            var$25 = var$24.$mcServer.$serverConfigManager;
                            $var4 = var$24.$theWorldServer.$provider.$dimensionId;
                            var$24 = nms_Packet62LevelSound__init_(var$12, var$16, var$17, var$18, var$22, var$23);
                            $ptr = 4;
                            continue main;
                        }
                        $par3Chunk = new jl_IndexOutOfBoundsException;
                        $par3Chunk.$suppressionEnabled = 1;
                        $par3Chunk.$writableStackTrace = 1;
                        $rt_throw($par3Chunk);
                    }
                    $var9 = $this.$rand0;
                    var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var9.$seed = var$15;
                    $var7 = Long_lo(Long_shru(var$15, $par2));
                    while (true) {
                        $var5 = $var7 % 12000 | 0;
                        if ((($var7 - $var5 | 0) + 11999 | 0) >= 0)
                            break;
                        var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var9.$seed = var$15;
                        $var7 = Long_lo(Long_shru(var$15, $par2));
                    }
                    $this.$ambientTickCountdown = $var5 + 6000 | 0;
                }
            }
        }
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk($var9, $var8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        $var4 = var$12.$getBlockLightValue($var5 & 15, $var6, var$9 & 15, 0);
        $var9 = $this.$rand0;
        var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var9.$seed = var$15;
        $par2 = 17;
        if ($var4 > Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$15, $par2)))), 31))) {
            $ptr = 1;
            continue main;
        }
        $var9 = nms_EnumSkyBlock_Sky;
        $ptr = 2;
        continue main;
    case 4:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$25, $var9, var$16, var$17, var$18, var$19, $var4, var$24);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $par1 + 1 | 0;
        var$24 = $this.$worldAccesses;
        $var4 = $rt_compare($par1, var$24.$size0);
        if ($var4 >= 0) {
            $var9 = $this.$rand0;
            var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var9.$seed = var$15;
            $var7 = Long_lo(Long_shru(var$15, $par2));
            while (true) {
                $var5 = $var7 % 12000 | 0;
                if ((($var7 - $var5 | 0) + 11999 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var9.$seed = var$15;
                $var7 = Long_lo(Long_shru(var$15, $par2));
            }
            $this.$ambientTickCountdown = $var5 + 6000 | 0;
            $ptr = 1;
            continue main;
        }
        if ($par1 >= 0 && $var4 < 0) {
            var$24 = var$24.$array.data[$par1];
            var$25 = var$24.$mcServer.$serverConfigManager;
            $var4 = var$24.$theWorldServer.$provider.$dimensionId;
            var$24 = nms_Packet62LevelSound__init_(var$12, var$16, var$17, var$18, var$22, var$23);
            continue main;
        }
        $par3Chunk = new jl_IndexOutOfBoundsException;
        $par3Chunk.$suppressionEnabled = 1;
        $par3Chunk.$writableStackTrace = 1;
        $rt_throw($par3Chunk);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3Chunk, $var4, $var5, $var6, $var7, $var8, var$9, var$10, $var9, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_World_isBlockFreezable = ($this, $par1, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_canBlockFreeze($this, $par1, $par2, $par3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $ptr);
},
nms_World_isBlockFreezableNaturally = ($this, $par1, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_canBlockFreeze($this, $par1, $par2, $par3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $ptr);
},
nms_World_canBlockFreeze = ($this, $par1, $par2, $par3, $par4) => {
    let $var7, var$6, var$7, $var5, var$9, $var8, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $par1 >> 4;
        var$6 = $par3 >> 4;
        var$7 = $this.$chunkProvider;
        $var5 = var$7.$loadedChunkHashMap;
        var$9 = Long_or(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), 32));
        $var8 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
        $var8 = $var8 ^ ($var8 >>> 20 | 0) ^ ($var8 >>> 12 | 0);
        $var8 = $var8 ^ ($var8 >>> 7 | 0) ^ ($var8 >>> 4 | 0);
        var$11 = $var5.$hashArray.data;
        var$12 = $var8 & (var$11.length - 1 | 0);
        $var5 = var$11[var$12];
        a: {
            while (true) {
                if ($var5 === null) {
                    $var5 = null;
                    break a;
                }
                if (Long_eq($var5.$key1, var$9))
                    break;
                $var5 = $var5.$nextEntry;
            }
        }
        $var8 = $var5 === null ? 0 : 1;
        b: {
            c: {
                if ($var8) {
                    $var5 = var$11[var$12];
                    d: {
                        while ($var5 !== null) {
                            if (Long_eq($var5.$key1, var$9)) {
                                $var5 = $var5.$value4;
                                break d;
                            }
                            $var5 = $var5.$nextEntry;
                        }
                        $var5 = null;
                    }
                    var$13 = $var5;
                    if (var$13 === null) {
                        if (var$7.$worldObj0.$findingSpawnPoint)
                            break b;
                        if (var$7.$loadChunkOnProvideRequest)
                            break b;
                        var$13 = var$7.$defaultEmptyChunk;
                    }
                    if (var$13 !== null) {
                        $var5 = nms_Chunk_getBiomeGenForWorldCoords(var$13, $par1 & 15, $par3 & 15, $this.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var5 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3);
            }
            if ($var5.$temperature > 0.15000000596046448)
                return 0;
            if ($par2 >= 0 && $par2 < 256) {
                $var5 = nms_EnumSkyBlock_Block;
                $ptr = 1;
                continue main;
            }
            return 0;
        }
        $ptr = 3;
        continue main;
    case 1:
        $tmp = nms_World_getSavedLightValue($this, $var5, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 >= 10)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if ($var7 != nms_Block_waterStill.$blockID && $var7 != nms_Block_waterMoving.$blockID)
            return 0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk(var$7, $var7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        $var5 = var$13 === null ? $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3) : nms_Chunk_getBiomeGenForWorldCoords(var$13, $par1 & 15, $par3 & 15, $this.$provider.$worldChunkMgr);
        if ($var5.$temperature > 0.15000000596046448)
            return 0;
        if ($par2 >= 0 && $par2 < 256) {
            $var5 = nms_EnumSkyBlock_Block;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 4:
        $tmp = nms_World_getBlockMetadata($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8)
            return 0;
        if (!$par4)
            return 1;
        $var8 = 1;
        $par4 = $par1 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($this, $par4, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            nms_Material_$callClinit();
            var$13 = nms_Material_air;
        } else
            var$13 = nms_Block_blocksList.data[$par4].$blockMaterial;
        nms_Material_$callClinit();
        if (var$13 !== nms_Material_water)
            $var8 = 0;
        if ($var8) {
            $par4 = $par1 + 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($var8) {
            $par4 = $par3 - 1 | 0;
            $ptr = 7;
            continue main;
        }
        if (!$var8) {
            if ($var8)
                return 0;
            return 1;
        }
        $par3 = $par3 + 1 | 0;
        $ptr = 8;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($this, $par4, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ((!$par4 ? nms_Material_air : nms_Block_blocksList.data[$par4].$blockMaterial) !== nms_Material_water)
            $var8 = 0;
        if ($var8) {
            $par4 = $par3 - 1 | 0;
            $ptr = 7;
            continue main;
        }
        if (!$var8) {
            if ($var8)
                return 0;
            return 1;
        }
        $par3 = $par3 + 1 | 0;
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ((!$par4 ? nms_Material_air : nms_Block_blocksList.data[$par4].$blockMaterial) !== nms_Material_water)
            $var8 = 0;
        if (!$var8) {
            if ($var8)
                return 0;
            return 1;
        }
        $par3 = $par3 + 1 | 0;
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if ((!$par1 ? nms_Material_air : nms_Block_blocksList.data[$par1].$blockMaterial) !== nms_Material_water)
            $var8 = 0;
        if ($var8)
            return 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var7, var$6, var$7, $var5, var$9, $var8, var$11, var$12, var$13, $ptr);
},
nms_World_canSnowAt = ($this, $par1, $par2, $par3) => {
    let $var7, var$5, var$6, $var4, var$8, $var6, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $par1 >> 4;
        var$5 = $par3 >> 4;
        var$6 = $this.$chunkProvider;
        $var4 = var$6.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32));
        $var6 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        $var6 = $var6 ^ ($var6 >>> 20 | 0) ^ ($var6 >>> 12 | 0);
        var$10 = $var6 ^ ($var6 >>> 7 | 0) ^ ($var6 >>> 4 | 0);
        var$11 = $var4.$hashArray.data;
        var$12 = var$10 & (var$11.length - 1 | 0);
        $var4 = var$11[var$12];
        a: {
            while (true) {
                if ($var4 === null) {
                    $var4 = null;
                    break a;
                }
                if (Long_eq($var4.$key1, var$8))
                    break;
                $var4 = $var4.$nextEntry;
            }
        }
        $var6 = $var4 === null ? 0 : 1;
        b: {
            c: {
                if ($var6) {
                    $var4 = var$11[var$12];
                    d: {
                        while ($var4 !== null) {
                            if (Long_eq($var4.$key1, var$8)) {
                                $var4 = $var4.$value4;
                                break d;
                            }
                            $var4 = $var4.$nextEntry;
                        }
                        $var4 = null;
                    }
                    var$13 = $var4;
                    if (var$13 === null) {
                        if (var$6.$worldObj0.$findingSpawnPoint)
                            break b;
                        if (var$6.$loadChunkOnProvideRequest)
                            break b;
                        var$13 = var$6.$defaultEmptyChunk;
                    }
                    if (var$13 !== null) {
                        $var4 = nms_Chunk_getBiomeGenForWorldCoords(var$13, $par1 & 15, $par3 & 15, $this.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3);
            }
            if ($var4.$temperature > 0.15000000596046448)
                return 0;
            if ($par2 >= 0 && $par2 < 256) {
                $var4 = nms_EnumSkyBlock_Block;
                $ptr = 1;
                continue main;
            }
            return 0;
        }
        $ptr = 4;
        continue main;
    case 1:
        $tmp = nms_World_getSavedLightValue($this, $var4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 >= 10)
            return 0;
        $var6 = $par2 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, $var6, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7)
            return 0;
        nms_Block_$callClinit();
        $var4 = nms_Block_snow;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_ChunkProviderServer_loadChunk(var$6, $var7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        $var4 = var$13 === null ? $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3) : nms_Chunk_getBiomeGenForWorldCoords(var$13, $par1 & 15, $par3 & 15, $this.$provider.$worldChunkMgr);
        if ($var4.$temperature > 0.15000000596046448)
            return 0;
        if ($par2 >= 0 && $par2 < 256) {
            $var4 = nms_EnumSkyBlock_Block;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 5:
        $tmp = $var4.$canPlaceBlockAt($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if ($par1 && $var6 && $var6 != nms_Block_ice.$blockID && nms_Block_blocksList.data[$var6].$blockMaterial.$blocksMovement())
            return 1;
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var7, var$5, var$6, $var4, var$8, $var6, var$10, var$11, var$12, var$13, $ptr);
},
nms_World_updateAllLightTypes = ($this, $par1, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$provider.$hasNoSky) {
            var$4 = nms_EnumSkyBlock_Block;
            $ptr = 1;
            continue main;
        }
        var$4 = nms_EnumSkyBlock_Sky;
        $ptr = 2;
        continue main;
    case 1:
        nms_World_updateLightByType($this, var$4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_updateLightByType($this, var$4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = nms_EnumSkyBlock_Block;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $ptr);
},
nms_World_computeLightValue = ($this, $par1, $par2, $par3, $par4EnumSkyBlock) => {
    let $var8, $var7, var$7, var$8, var$9, $var9, var$11, $var5, $var6, $var10, $var11, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$par4EnumSkyBlock = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($par4EnumSkyBlock === nms_EnumSkyBlock_Sky) {
                $var8 = $par1 >> 4;
                $var7 = $par3 >> 4;
                var$7 = $this.$chunkProvider;
                var$8 = var$7.$loadedChunkHashMap;
                var$9 = Long_or(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), 32));
                $var9 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
                $var9 = $var9 ^ ($var9 >>> 20 | 0) ^ ($var9 >>> 12 | 0);
                $var9 = $var9 ^ ($var9 >>> 7 | 0) ^ ($var9 >>> 4 | 0);
                var$11 = var$8.$hashArray.data;
                var$8 = var$11[$var9 & (var$11.length - 1 | 0)];
                b: {
                    while (var$8 !== null) {
                        if (Long_eq(var$8.$key1, var$9)) {
                            var$8 = var$8.$value4;
                            break b;
                        }
                        var$8 = var$8.$nextEntry;
                    }
                    var$8 = null;
                }
                var$8 = var$8;
                if (var$8 === null) {
                    if (var$7.$worldObj0.$findingSpawnPoint)
                        break a;
                    if (var$7.$loadChunkOnProvideRequest)
                        break a;
                    var$8 = var$7.$defaultEmptyChunk;
                }
                if (var$8.$canBlockSeeTheSky($par1 & 15, $par2, $par3 & 15))
                    return 15;
            }
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($par4EnumSkyBlock === nms_EnumSkyBlock_Sky)
            $var6 = 0;
        else {
            nms_Block_$callClinit();
            $var6 = nms_Block_lightValue.data[$var5];
        }
        nms_Block_$callClinit();
        $var7 = nms_Block_lightOpacity.data[$var5];
        if ($var7 >= 15 && nms_Block_lightValue.data[$var5] > 0)
            $var7 = 1;
        if ($var7 < 1)
            $var7 = 1;
        if ($var7 >= 15)
            return 0;
        if ($var6 >= 14)
            return $var6;
        $var8 = 0;
        if ($var8 >= 6)
            return $var6;
        $var9 = $par1 + nms_Facing_offsetsXForSide.data[$var8] | 0;
        $var10 = $par2 + nms_Facing_offsetsYForSide.data[$var8] | 0;
        $var11 = $par3 + nms_Facing_offsetsZForSide.data[$var8] | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$7, $var8, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8.$canBlockSeeTheSky($par1 & 15, $par2, $par3 & 15))
            return 15;
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getSavedLightValue($this, $par4EnumSkyBlock, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var12 = $var9 - $var7 | 0;
        if ($var12 <= $var6)
            $var12 = $var6;
        if ($var12 >= 14)
            return $var12;
        $var8 = $var8 + 1 | 0;
        $var6 = $var12;
        if ($var8 >= 6)
            return $var6;
        $var9 = $par1 + nms_Facing_offsetsXForSide.data[$var8] | 0;
        $var10 = $par2 + nms_Facing_offsetsYForSide.data[$var8] | 0;
        $var11 = $par3 + nms_Facing_offsetsZForSide.data[$var8] | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4EnumSkyBlock, $var8, $var7, var$7, var$8, var$9, $var9, var$11, $var5, $var6, $var10, $var11, $var12, $ptr);
},
nms_World_updateLightByType = ($this, $par1EnumSkyBlock, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, $var9, $var10, $var11, $var12, $var13, $var10_0, $var14, $var15, $var22, $var16, $var17, $var23, $var18, $var19, $var20, $var21, $var22_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var22_0 = $thread.pop();$var21 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var23 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var22 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var10_0 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5
        = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1EnumSkyBlock = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!nms_World_checkChunksExist($this, $par2 - 17 | 0, $par3 - 17 | 0, $par4 - 17 | 0, $par2 + 17 | 0, $par3 + 17 | 0, $par4 + 17 | 0))
            return;
        $var5 = 0;
        $var6 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_computeLightValue($this, $par2, $par3, $par4, $par1EnumSkyBlock);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var8 = $rt_compare($var8, $var7);
        if ($var8 > 0) {
            var$9 = $this.$lightUpdateBlockList.data;
            $var8 = 1;
            var$9[$var6] = 133152;
        } else if ($var8 >= 0)
            $var8 = $var6;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var8 = 1;
            var$9[$var6] = 133152 | $var7 << 18;
            if ($var5 < $var8) {
                var$9 = $this.$lightUpdateBlockList.data;
                $var6 = $var5 + 1 | 0;
                $var9 = var$9[$var5];
                $var10 = (($var9 & 63) - 32 | 0) + $par2 | 0;
                $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
                $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
                $var13 = $var9 >> 18 & 15;
                $ptr = 5;
                continue main;
            }
            $var5 = 0;
        }
        if ($var5 >= $var8)
            return;
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var10_0, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $ptr = 4;
    case 4:
        $tmp = nms_World_computeLightValue($this, $var10_0, $var11, $var12, $par1EnumSkyBlock);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $var7 = $rt_compare($var14, $var13);
        if ($var7) {
            $ptr = 6;
            continue main;
        }
        $var5 = $var6;
        if ($var5 >= $var8)
            return;
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $ptr = 3;
        continue main;
    case 5:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var10, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 == $var13) {
            $var7 = 0;
            $ptr = 7;
            continue main;
        }
        $var5 = $var6;
        if ($var5 >= $var8) {
            $var5 = 0;
            if ($var5 >= $var8)
                return;
            var$9 = $this.$lightUpdateBlockList.data;
            $var6 = $var5 + 1 | 0;
            $var9 = var$9[$var5];
            $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
            $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
            $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
            $ptr = 3;
            continue main;
        }
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $var13 = $var9 >> 18 & 15;
        continue main;
    case 6:
        nms_World_setLightValue($this, $par1EnumSkyBlock, $var10_0, $var11, $var12, $var14);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 <= 0)
            $var5 = $var6;
        else {
            $var7 = $var10_0 - $par2 | 0;
            $var15 = $var7 < 0 ?  -$var7 | 0 : $var7;
            $var22 = $var11 - $par3 | 0;
            $var16 = $var22 < 0 ?  -$var22 | 0 : $var22;
            $var10 = $var12 - $par4 | 0;
            $var17 = $var10 < 0 ?  -$var10 | 0 : $var10;
            $var23 = $var8 >= ($this.$lightUpdateBlockList.data.length - 6 | 0) ? 0 : 1;
            if ((($var15 + $var16 | 0) + $var17 | 0) < 17 && $var23) {
                $var17 = $var10_0 - 1 | 0;
                $ptr = 9;
                continue main;
            }
            $var5 = $var6;
        }
        if ($var5 >= $var8)
            return;
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $ptr = 3;
        continue main;
    case 7:
        nms_World_setLightValue($this, $par1EnumSkyBlock, $var10, $var11, $var12, $var7);
        if ($rt_suspending()) {
            break main;
        }
        if ($var13 <= 0)
            $var5 = $var6;
        else {
            $var15 = $var10 - $par2 | 0;
            if ($var15 < 0)
                $var15 =  -$var15 | 0;
            $var16 = $var11 - $par3 | 0;
            if ($var16 < 0)
                $var16 =  -$var16 | 0;
            $var17 = $var12 - $par4 | 0;
            if ($var17 < 0)
                $var17 =  -$var17 | 0;
            if ((($var15 + $var16 | 0) + $var17 | 0) >= 17)
                $var5 = $var6;
            else {
                $var18 = 0;
                if ($var18 < 6) {
                    $var19 = $var10 + nms_Facing_offsetsXForSide.data[$var18] | 0;
                    $var20 = $var11 + nms_Facing_offsetsYForSide.data[$var18] | 0;
                    $var21 = $var12 + nms_Facing_offsetsZForSide.data[$var18] | 0;
                    $var22_0 = 1;
                    nms_Block_$callClinit();
                    var$9 = nms_Block_lightOpacity.data;
                    $ptr = 8;
                    continue main;
                }
                $var5 = $var6;
            }
        }
        if ($var5 >= $var8) {
            $var5 = 0;
            if ($var5 >= $var8)
                return;
            var$9 = $this.$lightUpdateBlockList.data;
            $var6 = $var5 + 1 | 0;
            $var9 = var$9[$var5];
            $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
            $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
            $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
            $ptr = 3;
            continue main;
        }
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $var13 = $var9 >> 18 & 15;
        $ptr = 5;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($this, $var19, $var20, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var22 = var$9[$var7];
        if ($var22_0 > $var22)
            $var22 = $var22_0;
        $ptr = 10;
        continue main;
    case 9:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var17, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 >= $var14)
            $var15 = $var8;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var15 = $var8 + 1 | 0;
            var$9[$var8] = ((($var17 - $par2 | 0) + 32 | 0) + (($var22 + 32 | 0) << 6) | 0) + (($var10 + 32 | 0) << 12) | 0;
        }
        $var9 = $var10_0 + 1 | 0;
        $ptr = 11;
        continue main;
    case 10:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var19, $var20, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var17 = $var13 - $var22 | 0;
        if ($var7 == $var17) {
            var$9 = $this.$lightUpdateBlockList.data;
            if ($var8 < var$9.length) {
                $var7 = $var8 + 1 | 0;
                var$9[$var8] = (($var19 - $par2 | 0) + 32 | 0) | (($var20 - $par3 | 0) + 32 | 0) << 6 | (($var21 - $par4 | 0) + 32 | 0) << 12 | $var17 << 18;
                $var8 = $var7;
            }
        }
        $var18 = $var18 + 1 | 0;
        if ($var18 < 6) {
            $var19 = $var10 + nms_Facing_offsetsXForSide.data[$var18] | 0;
            $var20 = $var11 + nms_Facing_offsetsYForSide.data[$var18] | 0;
            $var21 = $var12 + nms_Facing_offsetsZForSide.data[$var18] | 0;
            $var22_0 = 1;
            nms_Block_$callClinit();
            var$9 = nms_Block_lightOpacity.data;
            $ptr = 8;
            continue main;
        }
        $var5 = $var6;
        if ($var5 >= $var8) {
            $var5 = 0;
            if ($var5 >= $var8)
                return;
            var$9 = $this.$lightUpdateBlockList.data;
            $var6 = $var5 + 1 | 0;
            $var9 = var$9[$var5];
            $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
            $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
            $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
            $ptr = 3;
            continue main;
        }
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $var13 = $var9 >> 18 & 15;
        $ptr = 5;
        continue main;
    case 11:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var9, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 >= $var14)
            $var16 = $var15;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var16 = $var15 + 1 | 0;
            var$9[$var15] = ((($var9 - $par2 | 0) + 32 | 0) + (($var22 + 32 | 0) << 6) | 0) + (($var10 + 32 | 0) << 12) | 0;
        }
        $var9 = $var11 - 1 | 0;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var10_0, $var9, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 >= $var14)
            $var15 = $var16;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var15 = $var16 + 1 | 0;
            var$9[$var16] = (($var7 + 32 | 0) + ((($var9 - $par3 | 0) + 32 | 0) << 6) | 0) + (($var10 + 32 | 0) << 12) | 0;
        }
        $var17 = $var11 + 1 | 0;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var10_0, $var17, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 >= $var14)
            $var8 = $var15;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var8 = $var15 + 1 | 0;
            var$9[$var15] = (($var7 + 32 | 0) + ((($var17 - $par3 | 0) + 32 | 0) << 6) | 0) + (($var10 + 32 | 0) << 12) | 0;
        }
        $var9 = $var12 - 1 | 0;
        $ptr = 14;
    case 14:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var10_0, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        if ($var17 >= $var14)
            $var17 = $var8;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var17 = $var8 + 1 | 0;
            var$9[$var8] = (($var7 + 32 | 0) + (($var22 + 32 | 0) << 6) | 0) + ((($var9 - $par4 | 0) + 32 | 0) << 12) | 0;
        }
        $var9 = $var12 + 1 | 0;
        $ptr = 15;
    case 15:
        $tmp = nms_World_getSavedLightValue($this, $par1EnumSkyBlock, $var10_0, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 >= $var14)
            $var8 = $var17;
        else {
            var$9 = $this.$lightUpdateBlockList.data;
            $var8 = $var17 + 1 | 0;
            var$9[$var17] = (($var7 + 32 | 0) + (($var22 + 32 | 0) << 6) | 0) + ((($var9 - $par4 | 0) + 32 | 0) << 12) | 0;
        }
        $var5 = $var6;
        if ($var5 >= $var8)
            return;
        var$9 = $this.$lightUpdateBlockList.data;
        $var6 = $var5 + 1 | 0;
        $var9 = var$9[$var5];
        $var10_0 = (($var9 & 63) - 32 | 0) + $par2 | 0;
        $var11 = (($var9 >> 6 & 63) - 32 | 0) + $par3 | 0;
        $var12 = (($var9 >> 12 & 63) - 32 | 0) + $par4 | 0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EnumSkyBlock, $par2, $par3, $par4, $var5, $var6, $var7, $var8, var$9, $var9, $var10, $var11, $var12, $var13, $var10_0, $var14, $var15, $var22, $var16, $var17, $var23, $var18, $var19, $var20, $var21, $var22_0, $ptr);
},
nms_World_getEntitiesWithinAABBExcludingEntity0 = ($this, $par1Entity, $par2AxisAlignedBB) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($this, $par1Entity, $par2AxisAlignedBB, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity = $tmp;
        return $par1Entity;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2AxisAlignedBB, var$3, $ptr);
},
nms_World_getEntitiesWithinAABBExcludingEntity = ($this, $par1Entity, $par2AxisAlignedBB, $par3IEntitySelector) => {
    let $var4, var$5, $var5, $var6, $var7, $var8, $var10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3IEntitySelector = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        var$5 = ($par2AxisAlignedBB.$minX0 - 2.0) / 16.0;
        $var5 = var$5 | 0;
        if (var$5 < $var5)
            $var5 = $var5 - 1 | 0;
        var$5 = ($par2AxisAlignedBB.$maxX0 + 2.0) / 16.0;
        $var6 = var$5 | 0;
        if (var$5 < $var6)
            $var6 = $var6 - 1 | 0;
        var$5 = ($par2AxisAlignedBB.$minZ0 - 2.0) / 16.0;
        $var7 = var$5 | 0;
        if (var$5 < $var7)
            $var7 = $var7 - 1 | 0;
        var$5 = ($par2AxisAlignedBB.$maxZ0 + 2.0) / 16.0;
        $var8 = var$5 | 0;
        if (var$5 < $var8)
            $var8 = $var8 - 1 | 0;
        a: {
            while ($var5 <= $var6) {
                $var10 = $var7;
                while ($var10 <= $var8) {
                    var$11 = $this.$chunkProvider;
                    var$12 = var$11.$loadedChunkHashMap;
                    var$13 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                    var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                    var$15 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                    var$14 = var$15 ^ (var$15 >>> 7 | 0) ^ (var$15 >>> 4 | 0);
                    var$16 = var$12.$hashArray.data;
                    var$15 = var$14 & (var$16.length - 1 | 0);
                    var$12 = var$16[var$15];
                    b: {
                        while (true) {
                            if (var$12 === null) {
                                var$12 = null;
                                break b;
                            }
                            if (Long_eq(var$12.$key1, var$13))
                                break;
                            var$12 = var$12.$nextEntry;
                        }
                    }
                    if (var$12 === null ? 0 : 1) {
                        var$12 = var$16[var$15];
                        c: {
                            while (var$12 !== null) {
                                if (Long_eq(var$12.$key1, var$13)) {
                                    var$12 = var$12.$value4;
                                    break c;
                                }
                                var$12 = var$12.$nextEntry;
                            }
                            var$12 = null;
                        }
                        var$12 = var$12;
                        if (var$12 === null) {
                            if (var$11.$worldObj0.$findingSpawnPoint)
                                break a;
                            if (var$11.$loadChunkOnProvideRequest)
                                break a;
                            var$12 = var$11.$defaultEmptyChunk;
                        }
                        var$12.$getEntitiesWithinAABBForEntity($par1Entity, $par2AxisAlignedBB, $var4, $par3IEntitySelector);
                    }
                    $var10 = $var10 + 1 | 0;
                }
                $var5 = $var5 + 1 | 0;
            }
            return $var4;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$11, $var5, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        d: {
            e: while (true) {
                var$12.$getEntitiesWithinAABBForEntity($par1Entity, $par2AxisAlignedBB, $var4, $par3IEntitySelector);
                while (true) {
                    $var10 = $var10 + 1 | 0;
                    while ($var10 > $var8) {
                        $var5 = $var5 + 1 | 0;
                        if ($var5 > $var6)
                            break e;
                        $var10 = $var7;
                    }
                    var$11 = $this.$chunkProvider;
                    var$12 = var$11.$loadedChunkHashMap;
                    var$13 = Long_or(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                    var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                    var$15 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                    var$14 = var$15 ^ (var$15 >>> 7 | 0) ^ (var$15 >>> 4 | 0);
                    var$16 = var$12.$hashArray.data;
                    var$15 = var$14 & (var$16.length - 1 | 0);
                    var$12 = var$16[var$15];
                    f: {
                        while (true) {
                            if (var$12 === null) {
                                var$12 = null;
                                break f;
                            }
                            if (Long_eq(var$12.$key1, var$13))
                                break;
                            var$12 = var$12.$nextEntry;
                        }
                    }
                    if (!(var$12 === null ? 0 : 1))
                        continue;
                    else
                        break;
                }
                var$12 = var$16[var$15];
                b: {
                    while (var$12 !== null) {
                        if (Long_eq(var$12.$key1, var$13)) {
                            var$12 = var$12.$value4;
                            break b;
                        }
                        var$12 = var$12.$nextEntry;
                    }
                    var$12 = null;
                }
                var$12 = var$12;
                if (var$12 !== null)
                    continue;
                if (var$11.$worldObj0.$findingSpawnPoint)
                    break d;
                if (var$11.$loadChunkOnProvideRequest)
                    break d;
                var$12 = var$11.$defaultEmptyChunk;
            }
            return $var4;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2AxisAlignedBB, $par3IEntitySelector, $var4, var$5, $var5, $var6, $var7, $var8, $var10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
};
let nms_World_getEntitiesWithinAABB = ($this, $par1Class, $par2AxisAlignedBB) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Class = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($this, $par1Class, $par2AxisAlignedBB, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $par1Class = $tmp;
        return $par1Class;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Class, $par2AxisAlignedBB, var$3, $ptr);
},
nms_World_selectEntitiesWithinAABB = ($this, $par1Class, $par2AxisAlignedBB, $par3IEntitySelector) => {
    let var$4, $var4, $var5, $var6, $var7, $var8, $var10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$par3IEntitySelector = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Class = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = ($par2AxisAlignedBB.$minX0 - 2.0) / 16.0;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$4 = ($par2AxisAlignedBB.$maxX0 + 2.0) / 16.0;
        $var5 = var$4 | 0;
        if (var$4 < $var5)
            $var5 = $var5 - 1 | 0;
        var$4 = ($par2AxisAlignedBB.$minZ0 - 2.0) / 16.0;
        $var6 = var$4 | 0;
        if (var$4 < $var6)
            $var6 = $var6 - 1 | 0;
        var$4 = ($par2AxisAlignedBB.$maxZ0 + 2.0) / 16.0;
        $var7 = var$4 | 0;
        if (var$4 < $var7)
            $var7 = $var7 - 1 | 0;
        $var8 = new ju_ArrayList;
        $var8.$array = $rt_createArray(jl_Object, 10);
        while ($var4 <= $var5) {
            $var10 = $var6;
            while ($var10 <= $var7) {
                var$11 = $this.$chunkProvider;
                var$12 = var$11.$loadedChunkHashMap;
                var$13 = Long_or(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
                var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                var$15 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                var$14 = var$15 ^ (var$15 >>> 7 | 0) ^ (var$15 >>> 4 | 0);
                var$16 = var$12.$hashArray.data;
                var$15 = var$14 & (var$16.length - 1 | 0);
                var$12 = var$16[var$15];
                a: {
                    while (true) {
                        if (var$12 === null) {
                            var$12 = null;
                            break a;
                        }
                        if (Long_eq(var$12.$key1, var$13))
                            break;
                        var$12 = var$12.$nextEntry;
                    }
                }
                if (var$12 === null ? 0 : 1) {
                    var$12 = var$16[var$15];
                    b: {
                        while (var$12 !== null) {
                            if (Long_eq(var$12.$key1, var$13)) {
                                var$12 = var$12.$value4;
                                break b;
                            }
                            var$12 = var$12.$nextEntry;
                        }
                        var$12 = null;
                    }
                    c: {
                        var$12 = var$12;
                        if (var$12 === null) {
                            if (var$11.$worldObj0.$findingSpawnPoint)
                                break c;
                            if (var$11.$loadChunkOnProvideRequest)
                                break c;
                            var$12 = var$11.$defaultEmptyChunk;
                        }
                        $ptr = 1;
                        continue main;
                    }
                    $ptr = 2;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var4 = $var4 + 1 | 0;
        }
        return $var8;
    case 1:
        var$12.$getEntitiesOfTypeWithinAAAB($par1Class, $par2AxisAlignedBB, $var8, $par3IEntitySelector);
        if ($rt_suspending()) {
            break main;
        }
        d: while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 > $var7) {
                $var4 = $var4 + 1 | 0;
                if ($var4 > $var5)
                    break d;
                $var10 = $var6;
            }
            var$11 = $this.$chunkProvider;
            var$12 = var$11.$loadedChunkHashMap;
            var$13 = Long_or(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10), Long_create(4294967295, 0)), 32));
            var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
            var$15 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
            var$14 = var$15 ^ (var$15 >>> 7 | 0) ^ (var$15 >>> 4 | 0);
            var$16 = var$12.$hashArray.data;
            var$15 = var$14 & (var$16.length - 1 | 0);
            var$12 = var$16[var$15];
            e: {
                while (true) {
                    if (var$12 === null) {
                        var$12 = null;
                        break e;
                    }
                    if (Long_eq(var$12.$key1, var$13))
                        break;
                    var$12 = var$12.$nextEntry;
                }
            }
            if (!(var$12 === null ? 0 : 1))
                continue;
            else {
                var$12 = var$16[var$15];
                f: {
                    while (var$12 !== null) {
                        if (Long_eq(var$12.$key1, var$13)) {
                            var$12 = var$12.$value4;
                            break f;
                        }
                        var$12 = var$12.$nextEntry;
                    }
                    var$12 = null;
                }
                g: {
                    var$12 = var$12;
                    if (var$12 === null) {
                        if (var$11.$worldObj0.$findingSpawnPoint)
                            break g;
                        if (var$11.$loadChunkOnProvideRequest)
                            break g;
                        var$12 = var$11.$defaultEmptyChunk;
                    }
                    continue main;
                }
                $ptr = 2;
                continue main;
            }
        }
        return $var8;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$11, $var4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Class, $par2AxisAlignedBB, $par3IEntitySelector, var$4, $var4, $var5, $var6, $var7, $var8, $var10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_World_findNearestEntityWithinAABB = ($this, $par1Class, $par2AxisAlignedBB, $par3Entity) => {
    let $var5, $var4, $var6, $var8, var$8, $var9, $var10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$par3Entity = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Class = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($this, $par1Class, $par2AxisAlignedBB, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = null;
        $var6 = 1.7976931348623157E308;
        $var8 = 0;
        a: {
            while (true) {
                var$8 = $rt_compare($var8, $var4.$size0);
                if (var$8 >= 0)
                    break;
                if ($var8 < 0)
                    break a;
                if (var$8 >= 0)
                    break a;
                $var9 = $var4.$array.data[$var8];
                if ($var9 !== $par3Entity) {
                    $var10 = $par3Entity.$posX - $var9.$posX;
                    var$11 = $par3Entity.$posY - $var9.$posY;
                    var$12 = $par3Entity.$posZ - $var9.$posZ;
                    $var10 = $var10 * $var10 + var$11 * var$11 + var$12 * var$12;
                    if ($var10 <= $var6) {
                        $var5 = $var9;
                        $var6 = $var10;
                    }
                }
                $var8 = $var8 + 1 | 0;
            }
            return $var5;
        }
        $par1Class = new jl_IndexOutOfBoundsException;
        $par1Class.$suppressionEnabled = 1;
        $par1Class.$writableStackTrace = 1;
        $rt_throw($par1Class);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Class, $par2AxisAlignedBB, $par3Entity, $var5, $var4, $var6, $var8, var$8, $var9, $var10, var$11, var$12, $ptr);
},
nms_World_markTileEntityChunkModified = ($this, $par1, $par2, $par3, $par4TileEntity) => {
    let var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4TileEntity = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par2 >= 0 && $par2 < 256) {
            var$5 = $par1 >> 4;
            $par2 = $par3 >> 4;
            $par4TileEntity = $this.$chunkProvider.$loadedChunkHashMap;
            var$6 = Long_or(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
            $par2 = Long_lo(Long_xor(var$6, Long_shru(var$6, 32)));
            $par2 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
            $par2 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
            var$7 = $par4TileEntity.$hashArray.data;
            $par4TileEntity = var$7[$par2 & (var$7.length - 1 | 0)];
            a: {
                while (true) {
                    if ($par4TileEntity === null) {
                        $par4TileEntity = null;
                        break a;
                    }
                    if (Long_eq($par4TileEntity.$key1, var$6))
                        break;
                    $par4TileEntity = $par4TileEntity.$nextEntry;
                }
            }
            $par2 = $par4TileEntity === null ? 0 : 1;
        } else
            $par2 = 0;
        b: {
            if ($par2) {
                $par2 = $par1 >> 4;
                $par1 = $par3 >> 4;
                var$8 = $this.$chunkProvider;
                $par4TileEntity = var$8.$loadedChunkHashMap;
                var$6 = Long_or(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), 32));
                $par3 = Long_lo(Long_xor(var$6, Long_shru(var$6, 32)));
                $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                var$9 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                var$7 = $par4TileEntity.$hashArray.data;
                $par4TileEntity = var$7[var$9 & (var$7.length - 1 | 0)];
                c: {
                    while ($par4TileEntity !== null) {
                        if (Long_eq($par4TileEntity.$key1, var$6)) {
                            $par4TileEntity = $par4TileEntity.$value4;
                            break c;
                        }
                        $par4TileEntity = $par4TileEntity.$nextEntry;
                    }
                    $par4TileEntity = null;
                }
                $par4TileEntity = $par4TileEntity;
                if ($par4TileEntity === null) {
                    if (var$8.$worldObj0.$findingSpawnPoint)
                        break b;
                    if (var$8.$loadChunkOnProvideRequest)
                        break b;
                    $par4TileEntity = var$8.$defaultEmptyChunk;
                }
                $par4TileEntity.$setChunkModified();
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$8, $par2, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $par4TileEntity = $tmp;
        $par4TileEntity.$setChunkModified();
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4TileEntity, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_World_addLoadedEntities = ($this, $par1List) => {
    let var$2, var$3, var$4, var$5, $var2, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1List = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$loadedEntityList;
        var$3 = 0;
        var$4 = $par1List.$modCount;
        var$5 = $par1List.$size();
        while (true) {
            if (!(var$3 >= var$5 ? 0 : 1)) {
                $var2 = 0;
                var$4 = $rt_compare($var2, $par1List.$size0);
                if (var$4 >= 0)
                    return;
                if ($var2 >= 0 && var$4 < 0) {
                    var$2 = $par1List.$array.data[$var2];
                    $ptr = 1;
                    continue main;
                }
                $par1List = new jl_IndexOutOfBoundsException;
                $par1List.$suppressionEnabled = 1;
                $par1List.$writableStackTrace = 1;
                $rt_throw($par1List);
            }
            if (var$4 < $par1List.$modCount)
                break;
            var$7 = var$3 + 1 | 0;
            var$8 = $par1List.$get(var$3);
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$9 = var$2.$array.data;
            var$3 = var$2.$size0;
            var$2.$size0 = var$3 + 1 | 0;
            var$9[var$3] = var$8;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$3 = var$7;
        }
        $par1List = new ju_ConcurrentModificationException;
        $par1List.$suppressionEnabled = 1;
        $par1List.$writableStackTrace = 1;
        $rt_throw($par1List);
    case 1:
        nms_WorldServer_onEntityAdded($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        var$4 = $rt_compare($var2, $par1List.$size0);
        if (var$4 >= 0)
            return;
        if ($var2 >= 0 && var$4 < 0) {
            var$2 = $par1List.$array.data[$var2];
            continue main;
        }
        $par1List = new jl_IndexOutOfBoundsException;
        $par1List.$suppressionEnabled = 1;
        $par1List.$writableStackTrace = 1;
        $rt_throw($par1List);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1List, var$2, var$3, var$4, var$5, $var2, var$7, var$8, var$9, $ptr);
},
nms_World_unloadEntities = ($this, $par1List) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$unloadedEntityList;
    var$3 = 0;
    var$4 = $par1List.$modCount;
    var$5 = $par1List.$size();
    while (var$3 >= var$5 ? 0 : 1) {
        if (var$4 < $par1List.$modCount) {
            $par1List = new ju_ConcurrentModificationException;
            $par1List.$suppressionEnabled = 1;
            $par1List.$writableStackTrace = 1;
            $rt_throw($par1List);
        }
        var$6 = var$3 + 1 | 0;
        var$7 = $par1List.$get(var$3);
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$8 = var$2.$array.data;
        var$3 = var$2.$size0;
        var$2.$size0 = var$3 + 1 | 0;
        var$8[var$3] = var$7;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$3 = var$6;
    }
},
nms_World_canPlaceEntityOnSide = ($this, $par1, $par2, $par3, $par4, $par5, $par6, $par7Entity, $par8ItemStack) => {
    let $var9, var$10, $var10, $var11, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$par8ItemStack = $thread.pop();$par7Entity = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        nms_Block_$callClinit();
        var$10 = nms_Block_blocksList.data;
        $var10 = var$10[$var9];
        $var11 = var$10[$par1];
        $ptr = 2;
    case 2:
        $tmp = $var11.$getCollisionBoundingBoxFromPool($this, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($par5)
            $var12 = null;
        if ($var12 !== null) {
            $ptr = 3;
            continue main;
        }
        if ($var10 !== null && !($var10 !== nms_Block_waterMoving && $var10 !== nms_Block_waterStill && $var10 !== nms_Block_lavaMoving && $var10 !== nms_Block_lavaStill && $var10 !== nms_Block_fire && !$var10.$blockMaterial.$replaceable))
            $var10 = null;
        a: {
            if ($var10 !== null) {
                $par7Entity = $var10.$blockMaterial;
                nms_Material_$callClinit();
                if ($par7Entity === nms_Material_circuits && $var11 === nms_Block_anvil) {
                    $par1 = 1;
                    break a;
                }
            }
            if ($par1 > 0 && $var10 === null) {
                $ptr = 4;
                continue main;
            }
            $par1 = 0;
        }
        return $par1;
    case 3:
        $tmp = nms_World_checkNoEntityCollision($this, $var12, $par7Entity);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5)
            return 0;
        if ($var10 !== null && !($var10 !== nms_Block_waterMoving && $var10 !== nms_Block_waterStill && $var10 !== nms_Block_lavaMoving && $var10 !== nms_Block_lavaStill && $var10 !== nms_Block_fire && !$var10.$blockMaterial.$replaceable))
            $var10 = null;
        b: {
            if ($var10 !== null) {
                $par7Entity = $var10.$blockMaterial;
                nms_Material_$callClinit();
                if ($par7Entity === nms_Material_circuits && $var11 === nms_Block_anvil) {
                    $par1 = 1;
                    break b;
                }
            }
            if ($par1 > 0 && $var10 === null) {
                $ptr = 4;
                continue main;
            }
            $par1 = 0;
        }
        return $par1;
    case 4:
        $tmp = $var11.$canPlaceBlockOnSide($this, $par2, $par3, $par4, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return !$par1 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, $par7Entity, $par8ItemStack, $var9, var$10, $var10, $var11, $var12, $ptr);
},
nms_World_getPathEntityToEntity = ($this, $par1Entity, $par2Entity, $par3, $par4, $par5, $par6, $par7) => {
    let var$8, $var8, var$10, $var9, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Entity
        = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$8 = $par1Entity.$posX;
        $var8 = var$8 | 0;
        if (var$8 < $var8)
            $var8 = $var8 - 1 | 0;
        var$10 = $par1Entity.$posY + 1.0;
        $var9 = var$10 | 0;
        if (var$10 < $var9)
            $var9 = $var9 - 1 | 0;
        var$10 = $par1Entity.$posZ;
        $var10 = var$10 | 0;
        if (var$10 < $var10)
            $var10 = $var10 - 1 | 0;
        $var11 = $par3 + 16.0 | 0;
        $var12 = $var8 - $var11 | 0;
        $var13 = $var9 - $var11 | 0;
        $var14 = $var10 - $var11 | 0;
        $var15 = $var8 + $var11 | 0;
        $var16 = $var9 + $var11 | 0;
        $var17 = $var10 + $var11 | 0;
        $var18 = new nms_ChunkCache;
        $var11 = 0;
        $ptr = 1;
    case 1:
        nms_ChunkCache__init_($var18, $this, $var12, $var13, $var14, $var15, $var16, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = new nms_PathFinder;
        var$22 = new nms_Path;
        var$22.$pathPoints = $rt_createArray(nms_PathPoint, 1024);
        $var19.$path1 = var$22;
        $var19.$pointMap = nms_IntHashMap__init_();
        $var19.$pathOptions = $rt_createArray(nms_PathPoint, 32);
        $var19.$worldMap = $var18;
        $var19.$isWoddenDoorAllowed = $par4;
        $var19.$isMovementBlockAllowed = $par5;
        $var19.$isPathingInWater = $par6;
        $var19.$canEntityDrown = $par7;
        var$10 = $par2Entity.$posX;
        var$8 = $par2Entity.$boundingBox0.$minY0;
        var$23 = $par2Entity.$posZ;
        $ptr = 2;
    case 2:
        $tmp = nms_PathFinder_createEntityPathTo($var19, $par1Entity, var$10, var$8, var$23, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        return $var19;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2Entity, $par3, $par4, $par5, $par6, $par7, var$8, $var8, var$10, $var9, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, var$22, var$23, $ptr);
},
nms_World_getEntityPathToXYZ = ($this, $par1Entity, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9) => {
    let var$10, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, $var20, $var21, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var21 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4
        = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $par1Entity.$posX;
        $var10 = var$10 | 0;
        if (var$10 < $var10)
            $var10 = $var10 - 1 | 0;
        var$10 = $par1Entity.$posY;
        $var11 = var$10 | 0;
        if (var$10 < $var11)
            $var11 = $var11 - 1 | 0;
        var$10 = $par1Entity.$posZ;
        $var12 = var$10 | 0;
        if (var$10 < $var12)
            $var12 = $var12 - 1 | 0;
        $var13 = $par5 + 8.0 | 0;
        $var14 = $var10 - $var13 | 0;
        $var15 = $var11 - $var13 | 0;
        $var16 = $var12 - $var13 | 0;
        $var17 = $var10 + $var13 | 0;
        $var18 = $var11 + $var13 | 0;
        $var19 = $var12 + $var13 | 0;
        $var20 = new nms_ChunkCache;
        $var12 = 0;
        $ptr = 1;
    case 1:
        nms_ChunkCache__init_($var20, $this, $var14, $var15, $var16, $var17, $var18, $var19, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = new nms_PathFinder;
        var$23 = new nms_Path;
        var$23.$pathPoints = $rt_createArray(nms_PathPoint, 1024);
        $var21.$path1 = var$23;
        $var21.$pointMap = nms_IntHashMap__init_();
        $var21.$pathOptions = $rt_createArray(nms_PathPoint, 32);
        $var21.$worldMap = $var20;
        $var21.$isWoddenDoorAllowed = $par6;
        $var21.$isMovementBlockAllowed = $par7;
        $var21.$isPathingInWater = $par8;
        $var21.$canEntityDrown = $par9;
        var$24 = $par2 + 0.5;
        var$10 = $par3 + 0.5;
        var$25 = $par4 + 0.5;
        $ptr = 2;
    case 2:
        $tmp = nms_PathFinder_createEntityPathTo($var21, $par1Entity, var$24, var$10, var$25, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        return $var21;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par9, var$10, $var10, $var11, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, $var20, $var21, var$23, var$24, var$25, $ptr);
},
nms_World_isBlockProvidingPowerTo = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            return 0;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[$var5];
        $ptr = 2;
    case 2:
        $tmp = var$6.$isProvidingStrongPower($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, var$6, $ptr);
},
nms_World_getBlockPowerInput = ($this, $par1, $par2, $par3) => {
    let $var5, var$5, var$6, $var5_0, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var5_0 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        var$5 = $par2 - 1 | 0;
        var$6 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5_0 = $tmp;
        if ($var5_0) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var5_0];
            $ptr = 2;
            continue main;
        }
        $var5_0 = 0;
        if ($var5 > $var5_0)
            $var5_0 = $var5;
        if ($var5_0 >= 15)
            return $var5_0;
        var$6 = $par2 + 1 | 0;
        var$5 = 1;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = var$8.$isProvidingStrongPower($this, $par1, var$5, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var5_0 = $tmp;
        if ($var5 > $var5_0)
            $var5_0 = $var5;
        if ($var5_0 >= 15)
            return $var5_0;
        var$6 = $par2 + 1 | 0;
        var$5 = 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($this, $par1, var$6, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var5];
            $ptr = 4;
            continue main;
        }
        var$6 = 0;
        if ($var5_0 > var$6)
            var$6 = $var5_0;
        if (var$6 >= 15)
            return var$6;
        var$5 = $par3 - 1 | 0;
        $var5_0 = 2;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = var$8.$isProvidingStrongPower($this, $par1, var$6, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if ($var5_0 > var$6)
            var$6 = $var5_0;
        if (var$6 >= 15)
            return var$6;
        var$5 = $par3 - 1 | 0;
        $var5_0 = 2;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var5];
            $ptr = 6;
            continue main;
        }
        var$5 = 0;
        if (var$6 > var$5)
            var$5 = var$6;
        if (var$5 >= 15)
            return var$5;
        $var5_0 = $par3 + 1 | 0;
        $var5 = 3;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = var$8.$isProvidingStrongPower($this, $par1, $par2, var$5, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$6 > var$5)
            var$5 = var$6;
        if (var$5 >= 15)
            return var$5;
        $var5_0 = $par3 + 1 | 0;
        $var5 = 3;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[var$6];
            $ptr = 8;
            continue main;
        }
        $var5_0 = 0;
        if (var$5 > $var5_0)
            $var5_0 = var$5;
        if ($var5_0 >= 15)
            return $var5_0;
        $var5 = $par1 - 1 | 0;
        var$6 = 4;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = var$8.$isProvidingStrongPower($this, $par1, $par2, $var5_0, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var5_0 = $tmp;
        if (var$5 > $var5_0)
            $var5_0 = var$5;
        if ($var5_0 >= 15)
            return $var5_0;
        $var5 = $par1 - 1 | 0;
        var$6 = 4;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($this, $var5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[var$5];
            $ptr = 10;
            continue main;
        }
        var$5 = 0;
        if ($var5_0 > var$5)
            var$5 = $var5_0;
        if (var$5 >= 15)
            return var$5;
        $par1 = $par1 + 1 | 0;
        $var5 = 5;
        $ptr = 11;
        continue main;
    case 10:
        $tmp = var$8.$isProvidingStrongPower($this, $var5, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if ($var5_0 > var$5)
            var$5 = $var5_0;
        if (var$5 >= 15)
            return var$5;
        $par1 = $par1 + 1 | 0;
        $var5 = 5;
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6) {
            $par2 = 0;
            if (var$5 > $par2)
                $par2 = var$5;
            return $par2;
        }
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        $ptr = 12;
    case 12:
        $tmp = var$8.$isProvidingStrongPower($this, $par1, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (var$5 > $par2)
            $par2 = var$5;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var5, var$5, var$6, $var5_0, var$8, $ptr);
},
nms_World_getIndirectPowerOutput = ($this, $par1, $par2, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getIndirectPowerLevelTo($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1 <= 0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $ptr);
},
nms_World_getIndirectPowerLevelTo = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[$var5];
        if (var$6 === null)
            $var5 = 0;
        else {
            var$7 = var$6.$blockMaterial;
            $var5 = !var$7.$isTranslucent ? var$7.$blocksMovement() : 0;
            $var5 = $var5 && var$6.$renderAsNormalBlock() && !var$6.$canProvidePower() ? 1 : 0;
        }
        if (!$var5) {
            $ptr = 2;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            return 0;
        var$6 = nms_Block_blocksList.data[$var5];
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockPowerInput($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    case 4:
        $tmp = var$6.$isProvidingWeakPower($this, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, var$6, var$7, $ptr);
},
nms_World_isBlockIndirectlyGettingPowered = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par2 - 1 | 0;
        var$5 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, var$4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 === null)
            var$6 = 0;
        else {
            var$8 = var$7.$blockMaterial;
            var$6 = !var$8.$isTranslucent ? var$8.$blocksMovement() : 0;
            var$6 = var$6 && var$7.$renderAsNormalBlock() && !var$7.$canProvidePower() ? 1 : 0;
        }
        if (!var$6) {
            $ptr = 2;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, var$4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            var$7 = nms_Block_blocksList.data[var$6];
            $ptr = 4;
            continue main;
        }
        if (0 > 0)
            return 1;
        var$5 = $par2 + 1 | 0;
        var$4 = 1;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_getBlockPowerInput($this, $par1, var$4, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$5 = $par2 + 1 | 0;
        var$4 = 1;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = var$7.$isProvidingWeakPower($this, $par1, var$4, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$5 = $par2 + 1 | 0;
        var$4 = 1;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($this, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$7 = nms_Block_blocksList.data[var$6];
        if (var$7 === null)
            var$6 = 0;
        else {
            var$8 = var$7.$blockMaterial;
            var$6 = !var$8.$isTranslucent ? var$8.$blocksMovement() : 0;
            var$6 = var$6 && var$7.$renderAsNormalBlock() && !var$7.$canProvidePower() ? 1 : 0;
        }
        if (!var$6) {
            $ptr = 6;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($this, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            var$7 = nms_Block_blocksList.data[var$6];
            $ptr = 8;
            continue main;
        }
        if (0 > 0)
            return 1;
        var$4 = $par3 - 1 | 0;
        var$6 = 2;
        $ptr = 9;
        continue main;
    case 7:
        $tmp = nms_World_getBlockPowerInput($this, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$4 = $par3 - 1 | 0;
        var$6 = 2;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = var$7.$isProvidingWeakPower($this, $par1, var$5, $par3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$4 = $par3 - 1 | 0;
        var$6 = 2;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$7 = nms_Block_blocksList.data[var$5];
        if (var$7 === null)
            var$5 = 0;
        else {
            var$8 = var$7.$blockMaterial;
            var$5 = !var$8.$isTranslucent ? var$8.$blocksMovement() : 0;
            var$5 = var$5 && var$7.$renderAsNormalBlock() && !var$7.$canProvidePower() ? 1 : 0;
        }
        if (!var$5) {
            $ptr = 10;
            continue main;
        }
        $ptr = 11;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$7 = nms_Block_blocksList.data[var$5];
            $ptr = 12;
            continue main;
        }
        if (0 > 0)
            return 1;
        var$6 = $par3 + 1 | 0;
        var$4 = 3;
        $ptr = 13;
        continue main;
    case 11:
        $tmp = nms_World_getBlockPowerInput($this, $par1, $par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$6 = $par3 + 1 | 0;
        var$4 = 3;
        $ptr = 13;
        continue main;
    case 12:
        $tmp = var$7.$isProvidingWeakPower($this, $par1, $par2, var$4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$6 = $par3 + 1 | 0;
        var$4 = 3;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$7 = nms_Block_blocksList.data[var$5];
        if (var$7 === null)
            var$5 = 0;
        else {
            var$8 = var$7.$blockMaterial;
            var$5 = !var$8.$isTranslucent ? var$8.$blocksMovement() : 0;
            var$5 = var$5 && var$7.$renderAsNormalBlock() && !var$7.$canProvidePower() ? 1 : 0;
        }
        if (!var$5) {
            $ptr = 14;
            continue main;
        }
        $ptr = 15;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId($this, $par1, $par2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$7 = nms_Block_blocksList.data[var$5];
            $ptr = 16;
            continue main;
        }
        if (0 > 0)
            return 1;
        var$4 = $par1 - 1 | 0;
        var$6 = 4;
        $ptr = 17;
        continue main;
    case 15:
        $tmp = nms_World_getBlockPowerInput($this, $par1, $par2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$4 = $par1 - 1 | 0;
        var$6 = 4;
        $ptr = 17;
        continue main;
    case 16:
        $tmp = var$7.$isProvidingWeakPower($this, $par1, $par2, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$4 = $par1 - 1 | 0;
        var$6 = 4;
        $ptr = 17;
    case 17:
        $tmp = nms_World_getBlockId($this, var$4, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        var$7 = nms_Block_blocksList.data[var$5];
        if (var$7 === null)
            var$5 = 0;
        else {
            var$8 = var$7.$blockMaterial;
            var$5 = !var$8.$isTranslucent ? var$8.$blocksMovement() : 0;
            var$5 = var$5 && var$7.$renderAsNormalBlock() && !var$7.$canProvidePower() ? 1 : 0;
        }
        if (!var$5) {
            $ptr = 18;
            continue main;
        }
        $ptr = 19;
        continue main;
    case 18:
        $tmp = nms_World_getBlockId($this, var$4, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$7 = nms_Block_blocksList.data[var$5];
            $ptr = 20;
            continue main;
        }
        if (0 > 0)
            return 1;
        var$5 = $par1 + 1 | 0;
        var$4 = 5;
        $ptr = 21;
        continue main;
    case 19:
        $tmp = nms_World_getBlockPowerInput($this, var$4, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$5 = $par1 + 1 | 0;
        var$4 = 5;
        $ptr = 21;
        continue main;
    case 20:
        $tmp = var$7.$isProvidingWeakPower($this, var$4, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5 > 0)
            return 1;
        var$5 = $par1 + 1 | 0;
        var$4 = 5;
        $ptr = 21;
    case 21:
        $tmp = nms_World_getBlockId($this, var$5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        var$7 = nms_Block_blocksList.data[$par1];
        if (var$7 === null)
            $par1 = 0;
        else {
            var$8 = var$7.$blockMaterial;
            $par1 = !var$8.$isTranslucent ? var$8.$blocksMovement() : 0;
            $par1 = $par1 && var$7.$renderAsNormalBlock() && !var$7.$canProvidePower() ? 1 : 0;
        }
        if (!$par1) {
            $ptr = 22;
            continue main;
        }
        $ptr = 23;
        continue main;
    case 22:
        $tmp = nms_World_getBlockId($this, var$5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (!$par1)
            return 0 <= 0 ? 0 : 1;
        var$7 = nms_Block_blocksList.data[$par1];
        $ptr = 24;
        continue main;
    case 23:
        $tmp = nms_World_getBlockPowerInput($this, var$5, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1 <= 0 ? 0 : 1;
    case 24:
        $tmp = var$7.$isProvidingWeakPower($this, var$5, $par2, $par3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return $par1 <= 0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_World_getStrongestIndirectPower = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 0;
        $var5 = 0;
        if ($var5 >= 6)
            return $var4;
        $var6 = $par1 + nms_Facing_offsetsXForSide.data[$var5] | 0;
        var$7 = $par2 + nms_Facing_offsetsYForSide.data[$var5] | 0;
        var$8 = $par3 + nms_Facing_offsetsZForSide.data[$var5] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $var6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$10 = nms_Block_blocksList.data[var$9];
        if (var$10 === null)
            var$9 = 0;
        else {
            var$11 = var$10.$blockMaterial;
            var$9 = !var$11.$isTranslucent ? var$11.$blocksMovement() : 0;
            var$9 = var$9 && var$10.$renderAsNormalBlock() && !var$10.$canProvidePower() ? 1 : 0;
        }
        if (!var$9) {
            $ptr = 2;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($this, $var6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9) {
            var$10 = nms_Block_blocksList.data[var$9];
            $ptr = 4;
            continue main;
        }
        if (0 >= 15)
            return 15;
        if (0 > $var4)
            $var4 = 0;
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 6)
            return $var4;
        $var6 = $par1 + nms_Facing_offsetsXForSide.data[$var5] | 0;
        var$7 = $par2 + nms_Facing_offsetsYForSide.data[$var5] | 0;
        var$8 = $par3 + nms_Facing_offsetsZForSide.data[$var5] | 0;
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getBlockPowerInput($this, $var6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 >= 15)
            return 15;
        if ($var6 > $var4)
            $var4 = $var6;
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 6)
            return $var4;
        $var6 = $par1 + nms_Facing_offsetsXForSide.data[$var5] | 0;
        var$7 = $par2 + nms_Facing_offsetsYForSide.data[$var5] | 0;
        var$8 = $par3 + nms_Facing_offsetsZForSide.data[$var5] | 0;
        $ptr = 1;
        continue main;
    case 4:
        $tmp = var$10.$isProvidingWeakPower($this, $var6, var$7, var$8, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 >= 15)
            return 15;
        if ($var6 > $var4)
            $var4 = $var6;
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 6)
            return $var4;
        $var6 = $par1 + nms_Facing_offsetsXForSide.data[$var5] | 0;
        var$7 = $par2 + nms_Facing_offsetsYForSide.data[$var5] | 0;
        var$8 = $par3 + nms_Facing_offsetsZForSide.data[$var5] | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_World_getClosestPlayerToEntity = ($this, $par1Entity, $par2) => {
    return nms_World_getClosestPlayer($this, $par1Entity.$posX, $par1Entity.$posY, $par1Entity.$posZ, $par2);
},
nms_World_getClosestPlayer = ($this, $par1, $par3, $par5, $par7) => {
    let $var9, $var11, $var12, var$8, $var13, var$10, $var14, var$12, var$13;
    $var9 = (-1.0);
    $var11 = null;
    $var12 = 0;
    var$8 = $rt_compare($par7, 0.0);
    $par7 = $par7 * $par7;
    a: {
        while (true) {
            $var13 = $this.$playerEntities;
            var$10 = $rt_compare($var12, $var13.$size0);
            if (var$10 >= 0)
                break;
            if ($var12 < 0)
                break a;
            if (var$10 >= 0)
                break a;
            $var13 = $var13.$array.data[$var12];
            $var14 = $var13.$posX - $par1;
            var$12 = $var13.$posY - $par3;
            var$13 = $var13.$posZ - $par5;
            $var14 = $var14 * $var14 + var$12 * var$12 + var$13 * var$13;
            if (!(var$8 >= 0 && $var14 >= $par7) && !($var9 !== (-1.0) && $var14 >= $var9)) {
                $var9 = $var14;
                $var11 = $var13;
            }
            $var12 = $var12 + 1 | 0;
        }
        return $var11;
    }
    $var11 = new jl_IndexOutOfBoundsException;
    $var11.$suppressionEnabled = 1;
    $var11.$writableStackTrace = 1;
    $rt_throw($var11);
},
nms_World_getClosestVulnerablePlayerToEntity = ($this, $par1Entity, $par2) => {
    return nms_World_getClosestVulnerablePlayer($this, $par1Entity.$posX, $par1Entity.$posY, $par1Entity.$posZ, $par2);
},
nms_World_getClosestVulnerablePlayer = ($this, $par1, $par3, $par5, $par7) => {
    let $var9, $var11, $var12, var$8, var$9, var$10, var$11, $var13, var$13, $var14, var$15, var$16, var$17, var$18, var$19, var$20, $var18;
    $var9 = (-1.0);
    $var11 = null;
    $var12 = 0;
    var$8 = $par7 * 0.800000011920929;
    var$9 = $rt_compare($par7, 0.0);
    a: {
        while (true) {
            var$10 = $this.$playerEntities;
            var$11 = $rt_compare($var12, var$10.$size0);
            if (var$11 >= 0)
                break;
            if ($var12 < 0)
                break a;
            if (var$11 >= 0)
                break a;
            $var13 = var$10.$array.data[$var12];
            if (!$var13.$capabilities.$disableDamage && nms_EntityLivingBase_isEntityAlive($var13)) {
                var$13 = $var13.$posX - $par1;
                $var14 = $var13.$posY - $par3;
                var$15 = $var13.$posZ - $par5;
                $var14 = var$13 * var$13 + $var14 * $var14 + var$15 * var$15;
                var$10 = $var13.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$16 = jl_Integer_integerCache.data[128];
                if (var$16 === null) {
                    var$17 = var$10.$elementData.data[0];
                    while (var$17 !== null && var$17.$key !== null) {
                        var$17 = var$17.$next3;
                    }
                } else {
                    var$18 = var$16.$value;
                    var$19 = var$10.$elementData.data;
                    var$17 = var$19[var$18 & (var$19.length - 1 | 0)];
                    while (var$17 !== null) {
                        if (var$17.$origKeyHash == var$18) {
                            var$10 = var$17.$key;
                            if (var$16 !== var$10 && !jl_Integer_equals(var$16, var$10) ? 0 : 1)
                                break;
                        }
                        var$17 = var$17.$next3;
                    }
                }
                var$10 = var$17 === null ? null : var$17.$value0;
                var$13 = (!(var$10.$watchedObject.$value1 & 2) ? 0 : 1) ? var$8 : $par7;
                var$16 = $var13.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$10 = jl_Integer_integerCache.data[128];
                if (var$10 === null) {
                    var$16 = var$16.$elementData.data[0];
                    while (var$16 !== null && var$16.$key !== null) {
                        var$16 = var$16.$next3;
                    }
                } else {
                    var$20 = var$10.$value;
                    var$19 = var$16.$elementData.data;
                    var$16 = var$19[var$20 & (var$19.length - 1 | 0)];
                    while (var$16 !== null) {
                        if (var$16.$origKeyHash == var$20) {
                            var$17 = var$16.$key;
                            if (var$10 !== var$17 && !jl_Integer_equals(var$10, var$17) ? 0 : 1)
                                break;
                        }
                        var$16 = var$16.$next3;
                    }
                }
                var$10 = var$16 === null ? null : var$16.$value0;
                if (!(var$10.$watchedObject.$value1 & 32) ? 0 : 1) {
                    $var18 = nms_EntityPlayer_getArmorVisibility($var13);
                    if ($var18 < 0.10000000149011612)
                        $var18 = 0.10000000149011612;
                    var$13 = var$13 * 0.699999988079071 * $var18;
                }
                if (!(var$9 >= 0 && $var14 >= var$13 * var$13) && !($var9 !== (-1.0) && $var14 >= $var9)) {
                    $var9 = $var14;
                    $var11 = $var13;
                }
            }
            $var12 = $var12 + 1 | 0;
        }
        return $var11;
    }
    var$10 = new jl_IndexOutOfBoundsException;
    var$10.$suppressionEnabled = 1;
    var$10.$writableStackTrace = 1;
    $rt_throw(var$10);
},
nms_World_getPlayerEntityByName = ($this, $par1Str) => {
    let $var2, var$3, var$4;
    $var2 = 0;
    a: {
        while (true) {
            var$3 = $this.$playerEntities;
            var$4 = $rt_compare($var2, var$3.$size0);
            if (var$4 >= 0)
                break;
            if ($var2 < 0)
                break a;
            if (var$4 >= 0)
                break a;
            var$3 = var$3.$array.data[$var2].$username;
            if ($par1Str === var$3)
                var$4 = 1;
            else if (!(var$3 instanceof jl_String))
                var$4 = 0;
            else {
                var$3 = var$3;
                var$4 = $par1Str.$nativeString !== var$3.$nativeString ? 0 : 1;
            }
            if (var$4) {
                $par1Str = $this.$playerEntities;
                if ($var2 >= 0 && $var2 < $par1Str.$size0)
                    return $par1Str.$array.data[$var2];
                $par1Str = new jl_IndexOutOfBoundsException;
                $par1Str.$suppressionEnabled = 1;
                $par1Str.$writableStackTrace = 1;
                $rt_throw($par1Str);
            }
            $var2 = $var2 + 1 | 0;
        }
        return null;
    }
    $par1Str = new jl_IndexOutOfBoundsException;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    $rt_throw($par1Str);
},
nms_World_checkSessionLock = $this => {
    return;
},
nms_World_getSeed = $this => {
    return $this.$worldInfo.$getSeed();
},
nms_World_getTotalWorldTime = $this => {
    return $this.$worldInfo.$getWorldTotalTime();
},
nms_World_getWorldTime = $this => {
    return $this.$worldInfo.$getWorldTime();
},
nms_World_setWorldTime = ($this, $par1) => {
    $this.$worldInfo.$setWorldTime($par1);
},
nms_World_getSpawnPoint = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new nms_ChunkCoordinates;
    var$2 = $this.$worldInfo.$getSpawnX();
    var$3 = $this.$worldInfo.$getSpawnY();
    var$4 = $this.$worldInfo.$getSpawnZ();
    var$1.$posX0 = var$2;
    var$1.$posY0 = var$3;
    var$1.$posZ0 = var$4;
    return var$1;
},
nms_World_getChunkProvider = $this => {
    return $this.$chunkProvider;
},
nms_World_getSaveHandler = $this => {
    return $this.$saveHandler0;
},
nms_World_getWorldInfo = $this => {
    return $this.$worldInfo;
},
nms_World_getGameRules = $this => {
    return $this.$worldInfo.$getGameRulesInstance();
},
nms_World_getWeightedThunderStrength = ($this, $par1) => {
    let var$2, var$3;
    var$2 = $this.$prevThunderingStrength;
    var$2 = var$2 + ($this.$thunderingStrength - var$2) * $par1;
    var$3 = $this.$prevRainingStrength;
    return var$2 * (var$3 + ($this.$rainingStrength - var$3) * $par1);
},
nms_World_getRainStrength = ($this, $par1) => {
    let var$2;
    var$2 = $this.$prevRainingStrength;
    return var$2 + ($this.$rainingStrength - var$2) * $par1;
},
nms_World_isThundering = $this => {
    let var$1, var$2;
    var$1 = $this.$prevThunderingStrength;
    var$1 = var$1 + ($this.$thunderingStrength - var$1) * 1.0;
    var$2 = $this.$prevRainingStrength;
    return var$1 * (var$2 + ($this.$rainingStrength - var$2) * 1.0) <= 0.9 ? 0 : 1;
},
nms_World_isRaining = $this => {
    let var$1;
    var$1 = $this.$prevRainingStrength;
    return var$1 + ($this.$rainingStrength - var$1) * 1.0 <= 0.2 ? 0 : 1;
},
nms_World_canLightningStrikeAt = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$prevRainingStrength;
        if (!(var$4 + ($this.$rainingStrength - var$4) * 1.0 <= 0.2 ? 0 : 1))
            return 0;
        var$5 = $par1 >> 4;
        var$6 = $par3 >> 4;
        $var4 = $this.$chunkProvider;
        var$8 = $var4.$loadedChunkHashMap;
        var$9 = Long_or(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), 32));
        var$10 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
        var$11 = var$10 ^ (var$10 >>> 20 | 0) ^ (var$10 >>> 12 | 0);
        var$12 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
        var$13 = var$8.$hashArray.data;
        var$8 = var$13[var$12 & (var$13.length - 1 | 0)];
        a: {
            while (var$8 !== null) {
                if (Long_eq(var$8.$key1, var$9)) {
                    var$8 = var$8.$value4;
                    break a;
                }
                var$8 = var$8.$nextEntry;
            }
            var$8 = null;
        }
        b: {
            var$8 = var$8;
            if (var$8 === null) {
                if ($var4.$worldObj0.$findingSpawnPoint)
                    break b;
                if ($var4.$loadChunkOnProvideRequest)
                    break b;
                var$8 = $var4.$defaultEmptyChunk;
            }
            var$11 = $par1 & 15;
            var$14 = $par3 & 15;
            if (!var$8.$canBlockSeeTheSky(var$11, $par2, var$14))
                return 0;
            $var4 = $this.$chunkProvider;
            var$13 = $var4.$loadedChunkHashMap.$hashArray.data;
            var$8 = var$13[var$12 & (var$13.length - 1 | 0)];
            c: {
                while (var$8 !== null) {
                    if (Long_eq(var$8.$key1, var$9)) {
                        var$8 = var$8.$value4;
                        break c;
                    }
                    var$8 = var$8.$nextEntry;
                }
                var$8 = null;
            }
            d: {
                var$8 = var$8;
                if (var$8 === null) {
                    if ($var4.$worldObj0.$findingSpawnPoint)
                        break d;
                    if ($var4.$loadChunkOnProvideRequest)
                        break d;
                    var$8 = $var4.$defaultEmptyChunk;
                }
                if (nms_Chunk_getPrecipitationHeight(var$8, var$11, var$14) > $par2)
                    return 0;
                $var4 = $this.$chunkProvider;
                var$13 = $var4.$loadedChunkHashMap.$hashArray.data;
                var$10 = var$12 & (var$13.length - 1 | 0);
                var$8 = var$13[var$10];
                e: {
                    while (true) {
                        if (var$8 === null) {
                            var$8 = null;
                            break e;
                        }
                        if (Long_eq(var$8.$key1, var$9))
                            break;
                        var$8 = var$8.$nextEntry;
                    }
                }
                $par2 = var$8 === null ? 0 : 1;
                f: {
                    g: {
                        if ($par2) {
                            var$8 = var$13[var$10];
                            h: {
                                while (var$8 !== null) {
                                    if (Long_eq(var$8.$key1, var$9)) {
                                        var$8 = var$8.$value4;
                                        break h;
                                    }
                                    var$8 = var$8.$nextEntry;
                                }
                                var$8 = null;
                            }
                            var$8 = var$8;
                            if (var$8 === null) {
                                if ($var4.$worldObj0.$findingSpawnPoint)
                                    break f;
                                if ($var4.$loadChunkOnProvideRequest)
                                    break f;
                                var$8 = $var4.$defaultEmptyChunk;
                            }
                            if (var$8 !== null) {
                                $var4 = nms_Chunk_getBiomeGenForWorldCoords(var$8, var$11, var$14, $this.$provider.$worldChunkMgr);
                                break g;
                            }
                        }
                        $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3);
                    }
                    $par1 = $var4.$enableSnow;
                    return $par1 ? 0 : !$par1 ? $var4.$enableRain : 0;
                }
                $ptr = 3;
                continue main;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$11 = $par1 & 15;
        var$14 = $par3 & 15;
        if (!var$8.$canBlockSeeTheSky(var$11, $par2, var$14))
            return 0;
        $var4 = $this.$chunkProvider;
        var$13 = $var4.$loadedChunkHashMap.$hashArray.data;
        var$8 = var$13[var$12 & (var$13.length - 1 | 0)];
        i: {
            while (var$8 !== null) {
                if (Long_eq(var$8.$key1, var$9)) {
                    var$8 = var$8.$value4;
                    break i;
                }
                var$8 = var$8.$nextEntry;
            }
            var$8 = null;
        }
        j: {
            var$8 = var$8;
            if (var$8 === null) {
                if ($var4.$worldObj0.$findingSpawnPoint)
                    break j;
                if ($var4.$loadChunkOnProvideRequest)
                    break j;
                var$8 = $var4.$defaultEmptyChunk;
            }
            if (nms_Chunk_getPrecipitationHeight(var$8, var$11, var$14) > $par2)
                return 0;
            $var4 = $this.$chunkProvider;
            var$13 = $var4.$loadedChunkHashMap.$hashArray.data;
            var$10 = var$12 & (var$13.length - 1 | 0);
            var$8 = var$13[var$10];
            k: {
                while (true) {
                    if (var$8 === null) {
                        var$8 = null;
                        break k;
                    }
                    if (Long_eq(var$8.$key1, var$9))
                        break;
                    var$8 = var$8.$nextEntry;
                }
            }
            $par2 = var$8 === null ? 0 : 1;
            l: {
                m: {
                    if ($par2) {
                        var$8 = var$13[var$10];
                        n: {
                            while (var$8 !== null) {
                                if (Long_eq(var$8.$key1, var$9)) {
                                    var$8 = var$8.$value4;
                                    break n;
                                }
                                var$8 = var$8.$nextEntry;
                            }
                            var$8 = null;
                        }
                        var$8 = var$8;
                        if (var$8 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break l;
                            if ($var4.$loadChunkOnProvideRequest)
                                break l;
                            var$8 = $var4.$defaultEmptyChunk;
                        }
                        if (var$8 !== null) {
                            $var4 = nms_Chunk_getBiomeGenForWorldCoords(var$8, var$11, var$14, $this.$provider.$worldChunkMgr);
                            break m;
                        }
                    }
                    $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3);
                }
                $par1 = $var4.$enableSnow;
                return $par1 ? 0 : !$par1 ? $var4.$enableRain : 0;
            }
            $ptr = 3;
            continue main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (nms_Chunk_getPrecipitationHeight(var$8, var$11, var$14) > $par2)
            return 0;
        $var4 = $this.$chunkProvider;
        var$13 = $var4.$loadedChunkHashMap.$hashArray.data;
        var$10 = var$12 & (var$13.length - 1 | 0);
        var$8 = var$13[var$10];
        i: {
            while (true) {
                if (var$8 === null) {
                    var$8 = null;
                    break i;
                }
                if (Long_eq(var$8.$key1, var$9))
                    break;
                var$8 = var$8.$nextEntry;
            }
        }
        $par2 = var$8 === null ? 0 : 1;
        o: {
            k: {
                if ($par2) {
                    var$8 = var$13[var$10];
                    p: {
                        while (var$8 !== null) {
                            if (Long_eq(var$8.$key1, var$9)) {
                                var$8 = var$8.$value4;
                                break p;
                            }
                            var$8 = var$8.$nextEntry;
                        }
                        var$8 = null;
                    }
                    var$8 = var$8;
                    if (var$8 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break o;
                        if ($var4.$loadChunkOnProvideRequest)
                            break o;
                        var$8 = $var4.$defaultEmptyChunk;
                    }
                    if (var$8 !== null) {
                        $var4 = nms_Chunk_getBiomeGenForWorldCoords(var$8, var$11, var$14, $this.$provider.$worldChunkMgr);
                        break k;
                    }
                }
                $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3);
            }
            $par1 = $var4.$enableSnow;
            return $par1 ? 0 : !$par1 ? $var4.$enableRain : 0;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $var4 = var$8 === null ? $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3) : nms_Chunk_getBiomeGenForWorldCoords(var$8, var$11, var$14, $this.$provider.$worldChunkMgr);
        $par1 = $var4.$enableSnow;
        return $par1 ? 0 : !$par1 ? $var4.$enableRain : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_World_isBlockHighHumidity = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par1 >> 4;
        var$5 = $par3 >> 4;
        $var4 = $this.$chunkProvider;
        var$7 = $var4.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32));
        $par2 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        $par2 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
        var$9 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
        var$10 = var$7.$hashArray.data;
        var$9 = var$9 & (var$10.length - 1 | 0);
        var$7 = var$10[var$9];
        a: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break a;
                }
                if (Long_eq(var$7.$key1, var$8))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        $par2 = var$7 === null ? 0 : 1;
        b: {
            c: {
                if ($par2) {
                    var$7 = var$10[var$9];
                    d: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$8)) {
                                var$7 = var$7.$value4;
                                break d;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break b;
                        if ($var4.$loadChunkOnProvideRequest)
                            break b;
                        var$7 = $var4.$defaultEmptyChunk;
                    }
                    if (var$7 !== null) {
                        $var4 = nms_Chunk_getBiomeGenForWorldCoords(var$7, $par1 & 15, $par3 & 15, $this.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3);
            }
            return $var4.$rainfall <= 0.8500000238418579 ? 0 : 1;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $var4 = var$7 === null ? $this.$provider.$worldChunkMgr.$getBiomeGenAt($par1, $par3) : nms_Chunk_getBiomeGenForWorldCoords(var$7, $par1 & 15, $par3 & 15, $this.$provider.$worldChunkMgr);
        return $var4.$rainfall <= 0.8500000238418579 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, $ptr);
},
nms_World_setItemData = ($this, $par1Str, $par2WorldSavedData) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$3 = $this.$mapStorage;
    if ($par2WorldSavedData === null) {
        $par1Str = new jl_RuntimeException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $par1Str.$message = $rt_s(1664);
        $rt_throw($par1Str);
    }
    var$4 = var$3.$loadedDataMap;
    if ($par1Str === null) {
        var$5 = var$4.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$6 = 0;
                while (true) {
                    if (var$6 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$6) | 0;
                    var$6 = var$6 + 1 | 0;
                }
            }
        }
        var$7 = $par1Str.$hashCode1;
        var$8 = var$4.$elementData.data;
        var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$7) {
                b: {
                    var$4 = var$5.$key;
                    if ($par1Str !== var$4) {
                        if ($par1Str === var$4)
                            var$6 = 1;
                        else if (!(var$4 instanceof jl_String))
                            var$6 = 0;
                        else {
                            var$4 = var$4;
                            var$6 = $par1Str.$nativeString !== var$4.$nativeString ? 0 : 1;
                        }
                        if (!var$6) {
                            var$6 = 0;
                            break b;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            var$5 = var$5.$next3;
        }
    }
    if (var$5 === null ? 0 : 1) {
        var$4 = var$3.$loadedDataList;
        var$9 = ju_HashMap_removeByKey(var$3.$loadedDataMap, $par1Str);
        var$9 = var$9 === null ? null : var$9.$value0;
        var$10 = var$4.$size0;
        var$6 = 0;
        c: {
            while (true) {
                if (var$6 >= var$10) {
                    var$6 = (-1);
                    break c;
                }
                if (var$6 < 0)
                    break;
                if (var$6 >= var$4.$size0)
                    break;
                var$5 = var$4.$array.data[var$6];
                if (var$9 === var$5 ? 1 : var$9 !== null ? var$9.$equals(var$5) : var$5 !== null ? 0 : 1)
                    break c;
                var$6 = var$6 + 1 | 0;
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1Str);
            $rt_throw($par1Str);
        }
        if (var$6 >= 0)
            ju_ArrayList_remove(var$4, var$6);
    }
    ju_HashMap_putImpl(var$3.$loadedDataMap, $par1Str, $par2WorldSavedData);
    $par1Str = var$3.$loadedDataList;
    ju_ArrayList_ensureCapacity($par1Str, $par1Str.$size0 + 1 | 0);
    var$8 = $par1Str.$array.data;
    var$7 = $par1Str.$size0;
    $par1Str.$size0 = var$7 + 1 | 0;
    var$8[var$7] = $par2WorldSavedData;
    $par1Str.$modCount = $par1Str.$modCount + 1 | 0;
},
nms_World_loadItemData = ($this, $par1Class, $par2Str) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2Str = $thread.pop();$par1Class = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$mapStorage;
        $ptr = 1;
    case 1:
        $tmp = nms_MapStorage_loadData(var$3, $par1Class, $par2Str);
        if ($rt_suspending()) {
            break main;
        }
        $par1Class = $tmp;
        return $par1Class;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Class, $par2Str, var$3, $ptr);
},
nms_World_getUniqueDataId = ($this, $par1Str) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$mapStorage;
        $ptr = 1;
    case 1:
        $tmp = nms_MapStorage_getUniqueDataId(var$2, $par1Str);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, var$2, var$3, $ptr);
},
nms_World_func_82739_e = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        a: {
            b: {
                while (true) {
                    var$7 = $this.$worldAccesses;
                    var$8 = $rt_compare($var6, var$7.$size0);
                    if (var$8 >= 0)
                        break;
                    if ($var6 < 0)
                        break b;
                    if (var$8 >= 0)
                        break b;
                    var$9 = var$7.$array.data[$var6].$mcServer.$serverConfigManager;
                    var$10 = new nms_Packet61DoorChange;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$10.$sfxID = $par1;
                    var$10.$posX1 = $par2;
                    var$10.$posY1 = $par3;
                    var$10.$posZ1 = $par4;
                    var$10.$auxData = $par5;
                    var$10.$disableRelativeVolume = 1;
                    var$11 = 0;
                    var$12 = var$10 instanceof nms_Packet3Chat;
                    var$13 = var$10;
                    while (true) {
                        var$7 = var$9.$playerEntityList;
                        var$8 = $rt_compare(var$11, var$7.$size0);
                        if (var$8 >= 0)
                            break;
                        if (var$11 < 0)
                            break a;
                        if (var$8 >= 0)
                            break a;
                        c: {
                            var$14 = var$7.$array.data[var$11].$playerNetServerHandler;
                            if (var$12) {
                                var$8 = var$14.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break c;
                                if (var$8 == 1 && !var$13.$isServer)
                                    break c;
                            }
                            try {
                                var$7 = var$14.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$14 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$14, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$14;
                            }
                            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                        }
                        var$11 = var$11 + 1 | 0;
                    }
                    $var6 = $var6 + 1 | 0;
                }
                return;
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            $rt_throw(var$7);
        }
        var$7 = new jl_IndexOutOfBoundsException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$7);
        $rt_throw(var$7);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$10);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$14 = jl_System_errCache;
            if (var$14 === null) {
                var$14 = new otcic_JSStderrPrintStream;
                var$15 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_ByteArrayOutputStream__init_1(var$15, var$8);
                var$8 = 0;
                ji_PrintStream__init_(var$14, var$15, var$8);
                jl_System_errCache = var$14;
            }
            var$14 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$14);
        }
        d: {
            c: {
                e: while (true) {
                    while (true) {
                        var$11 = var$11 + 1 | 0;
                        while (true) {
                            var$7 = var$9.$playerEntityList;
                            var$8 = $rt_compare(var$11, var$7.$size0);
                            if (var$8 < 0)
                                break;
                            $var6 = $var6 + 1 | 0;
                            var$7 = $this.$worldAccesses;
                            var$8 = $rt_compare($var6, var$7.$size0);
                            if (var$8 >= 0)
                                break e;
                            if ($var6 < 0)
                                break d;
                            if (var$8 >= 0)
                                break d;
                            var$9 = var$7.$array.data[$var6].$mcServer.$serverConfigManager;
                            var$10 = new nms_Packet61DoorChange;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$10.$sfxID = $par1;
                            var$10.$posX1 = $par2;
                            var$10.$posY1 = $par3;
                            var$10.$posZ1 = $par4;
                            var$10.$auxData = $par5;
                            var$10.$disableRelativeVolume = 1;
                            var$11 = 0;
                            var$12 = var$10 instanceof nms_Packet3Chat;
                            var$13 = var$10;
                        }
                        if (var$11 < 0)
                            break c;
                        if (var$8 >= 0)
                            break c;
                        var$14 = var$7.$array.data[var$11].$playerNetServerHandler;
                        if (!var$12)
                            break;
                        var$8 = var$14.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            continue;
                        if (var$8 != 1)
                            break;
                        if (var$13.$isServer)
                            break;
                    }
                    try {
                        var$7 = var$14.$netManager;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    var$14 = jl_System_errCache;
                    if (var$14 === null) {
                        var$14 = new otcic_JSStderrPrintStream;
                        var$15 = new ji_ByteArrayOutputStream;
                        var$8 = 32;
                        ji_ByteArrayOutputStream__init_1(var$15, var$8);
                        var$8 = 0;
                        ji_PrintStream__init_(var$14, var$15, var$8);
                        jl_System_errCache = var$14;
                    }
                    var$14 = jl_System_errCache;
                    jl_Throwable_printStackTrace(var$7, var$14);
                }
                return;
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$7);
            $rt_throw(var$7);
        }
        var$7 = new jl_IndexOutOfBoundsException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        $rt_throw(var$7);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_World_playAuxSFX = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = null;
        $ptr = 1;
    case 1:
        nms_World_playAuxSFXAtEntity($this, var$6, $par1, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_World_playAuxSFXAtEntity = ($this, $par1EntityPlayer, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = 0;
        var$8 = $par3;
        var$9 = $par4;
        var$10 = $par5;
        var$11 = $this.$worldAccesses;
        var$12 = $rt_compare($var7, var$11.$size0);
        if (var$12 >= 0)
            return;
        if ($var7 >= 0 && var$12 < 0) {
            var$13 = var$11.$array.data[$var7];
            var$14 = var$13.$mcServer.$serverConfigManager;
            var$15 = 64.0;
            var$16 = var$13.$theWorldServer.$provider.$dimensionId;
            var$11 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$11.$sfxID = $par2;
            var$11.$posX1 = $par3;
            var$11.$posY1 = $par4;
            var$11.$posZ1 = $par5;
            var$11.$auxData = $par6;
            var$11.$disableRelativeVolume = 0;
            $ptr = 1;
            continue main;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$14, $par1EntityPlayer, var$8, var$9, var$10, var$15, var$16, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        var$11 = $this.$worldAccesses;
        var$12 = $rt_compare($var7, var$11.$size0);
        if (var$12 >= 0)
            return;
        if ($var7 >= 0 && var$12 < 0) {
            var$13 = var$11.$array.data[$var7];
            var$14 = var$13.$mcServer.$serverConfigManager;
            var$15 = 64.0;
            var$16 = var$13.$theWorldServer.$provider.$dimensionId;
            var$11 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$11.$sfxID = $par2;
            var$11.$posX1 = $par3;
            var$11.$posY1 = $par4;
            var$11.$posZ1 = $par5;
            var$11.$auxData = $par6;
            var$11.$disableRelativeVolume = 0;
            continue main;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $par3, $par4, $par5, $par6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_World_getHeight = $this => {
    return 256;
},
nms_World_getActualHeight = $this => {
    return !$this.$provider.$hasNoSky ? 256 : 128;
},
nms_World_getMinecartSoundUpdater = ($this, $par1EntityMinecart) => {
    return null;
},
nms_World_setRandomSeed = ($this, $par1, $par2, $par3) => {
    let $var4, var$5;
    $var4 = Long_add(Long_add(Long_add(Long_mul(Long_fromInt($par1), Long_create(2570712328, 79)), Long_mul(Long_fromInt($par2), Long_create(4048968661, 30))), $this.$worldInfo.$getSeed()), Long_fromInt($par3));
    var$5 = $this.$rand0;
    var$5.$seed = $var4;
    return var$5;
},
nms_World_findClosestStructure = ($this, $par1Str, $par2, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$chunkProvider.$currentChunkProvider;
        $ptr = 1;
    case 1:
        $tmp = var$5.$findClosestStructure($this, $par1Str, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1Str = $tmp;
        return $par1Str;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par2, $par3, $par4, var$5, $ptr);
},
nms_World_destroyBlockInWorldPartially = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        $var7 = $this.$worldAccesses;
        var$8 = $rt_compare($var6, $var7.$size0);
        if (var$8 >= 0)
            return;
        if ($var6 >= 0 && var$8 < 0) {
            $var7 = $var7.$array.data[$var6];
            $ptr = 1;
            continue main;
        }
        $var7 = new jl_IndexOutOfBoundsException;
        $var7.$suppressionEnabled = 1;
        $var7.$writableStackTrace = 1;
        $rt_throw($var7);
    case 1:
        nms_WorldManager_destroyBlockPartially($var7, $par1, $par2, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        $var7 = $this.$worldAccesses;
        var$8 = $rt_compare($var6, $var7.$size0);
        if (var$8 >= 0)
            return;
        if ($var6 >= 0 && var$8 < 0) {
            $var7 = $var7.$array.data[$var6];
            continue main;
        }
        $var7 = new jl_IndexOutOfBoundsException;
        $var7.$suppressionEnabled = 1;
        $var7.$writableStackTrace = 1;
        $rt_throw($var7);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $var6, $var7, var$8, $ptr);
},
nms_World_getWorldVec3Pool = $this => {
    return $this.$vecPool;
},
nms_World_getCurrentDate = $this => {
    let var$1, var$2;
    if (Long_eq(Long_rem($this.$worldInfo.$getWorldTotalTime(), Long_fromInt(600)), Long_ZERO)) {
        var$1 = $this.$theCalendar;
        nles_SysUtil_$callClinit();
        var$2 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        if (!(var$1.$isTimeSet && var$1.$areFieldsSet && Long_eq(var$1.$time, var$2))) {
            var$1.$time = var$2;
            var$1.$isTimeSet = 1;
            var$1.$areFieldsSet = 0;
            ju_GregorianCalendar_computeFields(var$1);
            var$1.$areFieldsSet = 1;
        }
    }
    return $this.$theCalendar;
};
let nms_World_getScoreboard = $this => {
    return $this.$worldScoreboard;
},
nms_World_func_96440_m = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, $var9, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        if ($var5 >= 4)
            return;
        $var6 = $par1 + nms_Direction_offsetX.data[$var5] | 0;
        $var7 = $par3 + nms_Direction_offsetZ.data[$var5] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($this, $var6, $par2, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8) {
            nms_Block_$callClinit();
            var$9 = nms_Block_blocksList.data;
            $var9 = var$9[$var8];
            if ($var8 != nms_Block_redstoneComparatorActive.$blockID && $var8 != nms_Block_redstoneComparatorIdle.$blockID ? 0 : 1) {
                $ptr = 2;
                continue main;
            }
            var$11 = var$9[$var8];
            if (var$11 === null)
                var$12 = 0;
            else {
                $var9 = var$11.$blockMaterial;
                var$12 = !$var9.$isTranslucent ? $var9.$blocksMovement() : 0;
                var$12 = var$12 && var$11.$renderAsNormalBlock() && !var$11.$canProvidePower() ? 1 : 0;
            }
            if (var$12) {
                $var8 = $var6 + nms_Direction_offsetX.data[$var5] | 0;
                $var6 = $var7 + nms_Direction_offsetZ.data[$var5] | 0;
                $ptr = 3;
                continue main;
            }
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4)
            return;
        $var6 = $par1 + nms_Direction_offsetX.data[$var5] | 0;
        $var7 = $par3 + nms_Direction_offsetZ.data[$var5] | 0;
        continue main;
    case 2:
        $var9.$onNeighborBlockChange($this, $var6, $par2, $var7, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4)
            return;
        $var6 = $par1 + nms_Direction_offsetX.data[$var5] | 0;
        $var7 = $par3 + nms_Direction_offsetZ.data[$var5] | 0;
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($this, $var8, $par2, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$11 = nms_Block_blocksList.data[$var7];
        if ($var7 != nms_Block_redstoneComparatorActive.$blockID && $var7 != nms_Block_redstoneComparatorIdle.$blockID ? 0 : 1) {
            $ptr = 4;
            continue main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4)
            return;
        $var6 = $par1 + nms_Direction_offsetX.data[$var5] | 0;
        $var7 = $par3 + nms_Direction_offsetZ.data[$var5] | 0;
        $ptr = 1;
        continue main;
    case 4:
        var$11.$onNeighborBlockChange($this, $var8, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= 4)
            return;
        $var6 = $par1 + nms_Direction_offsetX.data[$var5] | 0;
        $var7 = $par3 + nms_Direction_offsetZ.data[$var5] | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, $var6, $var7, $var8, var$9, $var9, var$11, var$12, $ptr);
},
nms_World_getLocationTensionFactor = ($this, $par1, $par3, $par5) => {
    let var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $par1 | 0;
        if ($par1 < var$4)
            var$4 = var$4 - 1 | 0;
        var$5 = $par3 | 0;
        if ($par3 < var$5)
            var$5 = var$5 - 1 | 0;
        var$6 = $par5 | 0;
        if ($par5 < var$6)
            var$6 = var$6 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getTensionFactorForBlock($this, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, var$5, var$6, var$7, $ptr);
},
nms_World_getTensionFactorForBlock = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, var$6, var$7, var$8, var$9, var$10, $var6, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 0.0;
        $var5 = $this.$difficultySetting != 3 ? 0 : 1;
        if ($par2 >= 0 && $par2 < 256) {
            var$6 = $par1 >> 4;
            $par2 = $par3 >> 4;
            var$7 = $this.$chunkProvider.$loadedChunkHashMap;
            var$8 = Long_or(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
            $par2 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
            $par2 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
            var$9 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
            var$10 = var$7.$hashArray.data;
            var$7 = var$10[var$9 & (var$10.length - 1 | 0)];
            a: {
                while (true) {
                    if (var$7 === null) {
                        var$7 = null;
                        break a;
                    }
                    if (Long_eq(var$7.$key1, var$8))
                        break;
                    var$7 = var$7.$nextEntry;
                }
            }
            $par2 = var$7 === null ? 0 : 1;
        } else
            $par2 = 0;
        b: {
            if ($par2) {
                $var6 = nms_WorldProvider_moonPhaseFactors.data[Long_lo(Long_div($this.$worldInfo.$getWorldTime(), Long_fromInt(24000))) % 8 | 0];
                $par2 = $par1 >> 4;
                $par1 = $par3 >> 4;
                var$7 = $this.$chunkProvider;
                var$12 = var$7.$loadedChunkHashMap;
                var$13 = Long_or(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), 32));
                $par3 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                $par3 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                var$10 = var$12.$hashArray.data;
                var$12 = var$10[$par3 & (var$10.length - 1 | 0)];
                c: {
                    while (var$12 !== null) {
                        if (Long_eq(var$12.$key1, var$13)) {
                            var$12 = var$12.$value4;
                            break c;
                        }
                        var$12 = var$12.$nextEntry;
                    }
                    var$12 = null;
                }
                var$12 = var$12;
                if (var$12 === null) {
                    if (var$7.$worldObj0.$findingSpawnPoint)
                        break b;
                    if (var$7.$loadChunkOnProvideRequest)
                        break b;
                    var$12 = var$7.$defaultEmptyChunk;
                }
                var$14 = Long_toNumber(var$12.$inhabitedTime) / 3600000.0;
                var$15 = 0.0;
                if (var$14 >= var$15)
                    var$15 = var$14 <= 1.0 ? var$14 : 1.0;
                $var4 = $var4 + var$15 * (!$var5 ? 0.75 : 1.0) + $var6 * 0.25;
            }
            $par1 = $this.$difficultySetting;
            if ($par1 < 2)
                $var4 = $var4 * $par1 / 2.0;
            var$15 = 0.0;
            var$16 = !$var5 ? 1.0 : 1.5;
            if ($var4 >= var$15)
                var$15 = $var4 <= var$16 ? $var4 : var$16;
            return var$15;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$7, $par2, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        var$14 = Long_toNumber(var$12.$inhabitedTime) / 3600000.0;
        var$15 = 0.0;
        if (var$14 >= var$15)
            var$15 = var$14 <= 1.0 ? var$14 : 1.0;
        $var4 = $var4 + var$15 * (!$var5 ? 0.75 : 1.0) + $var6 * 0.25;
        $par1 = $this.$difficultySetting;
        if ($par1 < 2)
            $var4 = $var4 * $par1 / 2.0;
        var$15 = 0.0;
        var$16 = !$var5 ? 1.0 : 1.5;
        if ($var4 >= var$15)
            var$15 = $var4 <= var$16 ? $var4 : var$16;
        return var$15;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var5, var$6, var$7, var$8, var$9, var$10, $var6, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_IProgressUpdate = $rt_classWithoutFields(0),
nms_MinecraftException = $rt_classWithoutFields(jl_Exception),
nles_SkinsPlugin = $rt_classWithoutFields(),
nles_SkinsPlugin_skinCollection = null,
nles_SkinsPlugin_capeCollection = null,
nles_SkinsPlugin_lastSkinLayerUpdate = null,
nles_SkinsPlugin_SKIN_DATA_SIZE = null,
nles_SkinsPlugin_CAPE_DATA_SIZE = null,
nles_SkinsPlugin__init_ = $this => {
    return;
},
nles_SkinsPlugin__init_0 = () => {
    let var_0 = new nles_SkinsPlugin();
    nles_SkinsPlugin__init_(var_0);
    return var_0;
},
nles_SkinsPlugin__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nles_SkinsPlugin_skinCollection = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nles_SkinsPlugin_capeCollection = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nles_SkinsPlugin_lastSkinLayerUpdate = var$1;
    nles_SkinsPlugin_SKIN_DATA_SIZE = $rt_createIntArrayFromData([8192, 16384, (-9), (-9), 1, 16384, (-9)]);
    nles_SkinsPlugin_CAPE_DATA_SIZE = $rt_createIntArrayFromData([4096, (-9), 1]);
};
function nles_VirtualFilesystem$listVFiles$lambda$_9_0() {
    jl_Object.call(this);
    this.$_06 = null;
}
let nles_VirtualFilesystem$listVFiles$lambda$_9_0_next = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5;
    var$2 = var$0.$_06;
    var$3 = new nles_VFile;
    var$4 = $rt_createArray(jl_Object, 1);
    var$4.data[0] = var$1.$path;
    var$3.$path = nles_VFile_createPath(var$4);
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
},
jl_ArrayIndexOutOfBoundsException = $rt_classWithoutFields(jl_IndexOutOfBoundsException),
jl_ArrayIndexOutOfBoundsException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_ArrayIndexOutOfBoundsException__init_0 = () => {
    let var_0 = new jl_ArrayIndexOutOfBoundsException();
    jl_ArrayIndexOutOfBoundsException__init_(var_0);
    return var_0;
};
function ju_HashMap$HashEntry() {
    let a = this; ju_MapEntry.call(a);
    a.$origKeyHash = 0;
    a.$next3 = null;
}
function ju_LinkedHashMap$LinkedHashMapEntry() {
    let a = this; ju_HashMap$HashEntry.call(a);
    a.$chainForward = null;
    a.$chainBackward = null;
}
let ju_IllegalFormatException = $rt_classWithoutFields(jl_IllegalArgumentException),
ju_IllegalFormatException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ju_IllegalFormatException__init_0 = () => {
    let var_0 = new ju_IllegalFormatException();
    ju_IllegalFormatException__init_(var_0);
    return var_0;
};
function ju_AbstractList$1() {
    let a = this; jl_Object.call(a);
    a.$index = 0;
    a.$modCount0 = 0;
    a.$size3 = 0;
    a.$removeIndex = 0;
    a.$this$00 = null;
}
let ju_AbstractList$1_hasNext = $this => {
    return $this.$index >= $this.$size3 ? 0 : 1;
},
ju_AbstractList$1_next = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$modCount0;
    var$2 = $this.$this$00;
    if (var$1 >= var$2.$modCount) {
        var$3 = $this.$index;
        $this.$removeIndex = var$3;
        $this.$index = var$3 + 1 | 0;
        return var$2.$get(var$3);
    }
    var$2 = new ju_ConcurrentModificationException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ju_AbstractList$1_remove = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$removeIndex;
    if (var$1 < 0) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$3 = $this.$modCount0;
    var$2 = $this.$this$00;
    if (var$3 < var$2.$modCount) {
        var$2 = new ju_ConcurrentModificationException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$2.$remove0(var$1);
    $this.$modCount0 = $this.$this$00.$modCount;
    var$1 = $this.$removeIndex;
    var$3 = $this.$index;
    if (var$1 < var$3)
        $this.$index = var$3 - 1 | 0;
    $this.$size3 = $this.$size3 - 1 | 0;
    $this.$removeIndex = (-1);
},
juz_ZipException = $rt_classWithoutFields(ji_IOException),
juz_ZipException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
juz_ZipException__init_0 = () => {
    let var_0 = new juz_ZipException();
    juz_ZipException__init_(var_0);
    return var_0;
},
jus_BaseStream = $rt_classWithoutFields(0),
jus_Stream = $rt_classWithoutFields(0),
jusi_SimpleStreamImpl = $rt_classWithoutFields();
function jusi_StreamOverSpliterator() {
    jusi_SimpleStreamImpl.call(this);
    this.$spliterator = null;
}
let juz_DataFormatException = $rt_classWithoutFields(jl_Exception),
juz_DataFormatException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
juz_DataFormatException__init_0 = () => {
    let var_0 = new juz_DataFormatException();
    juz_DataFormatException__init_(var_0);
    return var_0;
};
function juz_GZIPInputStream() {
    let a = this; juz_InflaterInputStream.call(a);
    a.$crc = null;
    a.$eos = 0;
}
let juz_GZIPInputStream__init_0 = ($this, $is) => {
    juz_GZIPInputStream__init_($this, $is, 512);
},
juz_GZIPInputStream__init_1 = var_0 => {
    let var_1 = new juz_GZIPInputStream();
    juz_GZIPInputStream__init_0(var_1, var_0);
    return var_1;
},
juz_GZIPInputStream__init_ = ($this, $is, $size) => {
    let var$3, $header, var$5, $max, $length, $flags, $hcrc, $result, var$11, $crc16, $$je;
    var$3 = new juz_Inflater;
    var$3.$nowrap = 1;
    a: {
        try {
            var$3.$impl = cjj_Inflater__init_(1);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof cjj_GZIPException) {
            } else {
                throw $$e;
            }
        }
    }
    $this.$in = $is;
    if ($is === null) {
        $is = new jl_NullPointerException;
        $is.$suppressionEnabled = 1;
        $is.$writableStackTrace = 1;
        $rt_throw($is);
    }
    if ($size <= 0) {
        $is = new jl_IllegalArgumentException;
        $is.$suppressionEnabled = 1;
        $is.$writableStackTrace = 1;
        $rt_throw($is);
    }
    $this.$inf = var$3;
    $this.$buf2 = $rt_createByteArray($size);
    $is = new juz_CRC32;
    var$3 = new cjj_CRC32;
    var$3.$v = 0;
    $is.$impl0 = var$3;
    $this.$crc = $is;
    $header = $rt_createByteArray(10);
    var$5 = $header.data;
    $size = 0;
    $max = var$5.length;
    $length = $max;
    while (true) {
        if ($length <= 0) {
            if ((var$5[0] & 255 | (var$5[1] & 255) << 8) != 35615) {
                $is = new ji_IOException;
                $is.$suppressionEnabled = 1;
                $is.$writableStackTrace = 1;
                $rt_throw($is);
            }
            $flags = var$5[3];
            $hcrc = !($flags & 2) ? 0 : 1;
            if ($hcrc)
                juz_CRC32_update($this.$crc, $header, 0, $max);
            b: {
                if ($flags & 4) {
                    $max = 0;
                    $result = 2;
                    while (true) {
                        if ($result <= 0) {
                            if ($hcrc)
                                juz_CRC32_update($this.$crc, $header, 0, 2);
                            $length = var$5[0] & 255 | (var$5[1] & 255) << 8;
                            while (true) {
                                if ($length <= 0)
                                    break b;
                                var$11 = $this.$buf2;
                                $max = var$11.data.length;
                                if ($length <= $max)
                                    $max = $length;
                                $result = $this.$in.$read1(var$11, 0, $max);
                                if ($result == (-1))
                                    break;
                                if ($hcrc)
                                    juz_CRC32_update($this.$crc, $this.$buf2, 0, $result);
                                $length = $length - $result | 0;
                            }
                            $is = new ji_EOFException;
                            $is.$suppressionEnabled = 1;
                            $is.$writableStackTrace = 1;
                            $rt_throw($is);
                        }
                        $size = $this.$in.$read1($header, $max, $result);
                        if ($size == (-1))
                            break;
                        $max = $max + $size | 0;
                        $result = $result - $size | 0;
                    }
                    $is = new ji_EOFException;
                    $is.$suppressionEnabled = 1;
                    $is.$writableStackTrace = 1;
                    $rt_throw($is);
                }
            }
            if ($flags & 8) {
                while (true) {
                    $size = $this.$in.$read();
                    if ($size <= 0)
                        break;
                    if (!$hcrc)
                        continue;
                    $is = $this.$crc.$impl0;
                    var$11 = $rt_createByteArray(1);
                    var$11.data[0] = $size << 24 >> 24;
                    cjj_CRC32_update($is, var$11, 0, 1);
                }
                if ($size == (-1)) {
                    $is = new ji_EOFException;
                    $is.$suppressionEnabled = 1;
                    $is.$writableStackTrace = 1;
                    $rt_throw($is);
                }
                if ($hcrc) {
                    $is = $this.$crc.$impl0;
                    var$11 = $rt_createByteArray(1);
                    var$11.data[0] = $size << 24 >> 24;
                    cjj_CRC32_update($is, var$11, 0, 1);
                }
            }
            if ($flags & 16) {
                while (true) {
                    $size = $this.$in.$read();
                    if ($size <= 0)
                        break;
                    if (!$hcrc)
                        continue;
                    $is = $this.$crc.$impl0;
                    var$11 = $rt_createByteArray(1);
                    var$11.data[0] = $size << 24 >> 24;
                    cjj_CRC32_update($is, var$11, 0, 1);
                }
                if ($size == (-1)) {
                    $is = new ji_EOFException;
                    $is.$suppressionEnabled = 1;
                    $is.$writableStackTrace = 1;
                    $rt_throw($is);
                }
                if ($hcrc) {
                    $is = $this.$crc.$impl0;
                    var$11 = $rt_createByteArray(1);
                    var$11.data[0] = $size << 24 >> 24;
                    cjj_CRC32_update($is, var$11, 0, 1);
                }
            }
            c: {
                if ($hcrc) {
                    $size = 0;
                    $length = 2;
                    while (true) {
                        if ($length <= 0) {
                            $crc16 = var$5[0] & 255 | (var$5[1] & 255) << 8;
                            $is = $this.$crc;
                            var$3 = $is.$impl0;
                            if (Long_ne(Long_and(Long_and(Long_fromInt(var$3.$v), Long_create(4294967295, 0)), Long_fromInt(65535)), Long_fromInt($crc16))) {
                                $is = new ji_IOException;
                                $is.$suppressionEnabled = 1;
                                $is.$writableStackTrace = 1;
                                $rt_throw($is);
                            }
                            var$3.$v = 0;
                            $is.$tbytes = Long_ZERO;
                            break c;
                        }
                        $flags = $this.$in.$read1($header, $size, $length);
                        if ($flags == (-1))
                            break;
                        $size = $size + $flags | 0;
                        $length = $length - $flags | 0;
                    }
                    $is = new ji_EOFException;
                    $is.$suppressionEnabled = 1;
                    $is.$writableStackTrace = 1;
                    $rt_throw($is);
                }
            }
            return;
        }
        $crc16 = $this.$in.$read1($header, $size, $length);
        if ($crc16 == (-1))
            break;
        $size = $size + $crc16 | 0;
        $length = $length - $crc16 | 0;
    }
    $is = new ji_EOFException;
    $is.$suppressionEnabled = 1;
    $is.$writableStackTrace = 1;
    $rt_throw($is);
},
juz_GZIPInputStream__init_2 = (var_0, var_1) => {
    let var_2 = new juz_GZIPInputStream();
    juz_GZIPInputStream__init_(var_2, var_0, var_1);
    return var_2;
},
juz_GZIPInputStream_close = $this => {
    let var$1;
    $this.$eos = 1;
    if (!$this.$closed) {
        var$1 = $this.$inf;
        var$1.$inRead = 0;
        var$1.$inLength = 0;
        var$1.$impl = null;
        $this.$closed = 1;
        $this.$eof = 1;
        $this.$in.$close();
    }
},
juz_GZIPInputStream_getLong = ($this, $buffer, $off) => {
    $buffer = $buffer.data;
    return Long_or(Long_or(Long_or(Long_or(Long_ZERO, Long_fromInt($buffer[$off] & 255)), Long_fromInt(($buffer[$off + 1 | 0] & 255) << 8)), Long_fromInt(($buffer[$off + 2 | 0] & 255) << 16)), Long_shl(Long_fromInt($buffer[$off + 3 | 0] & 255), 24));
},
juz_GZIPInputStream_read = ($this, $buffer, $off, $nbytes) => {
    let var$4, $bytesRead, $$je;
    if ($this.$closed) {
        var$4 = new ji_IOException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    if ($this.$eos)
        return (-1);
    $bytesRead = $buffer.data.length;
    if ($off <= $bytesRead && $nbytes >= 0 && $off >= 0 && ($bytesRead - $off | 0) >= $nbytes) {
        a: {
            try {
                $bytesRead = juz_InflaterInputStream_read($this, $buffer, $off, $nbytes);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                var$4 = $$je;

            }
            $this.$eos = $this.$eof;
            $rt_throw(var$4);
        }
        $this.$eos = $this.$eof;
        if ($bytesRead != (-1))
            juz_CRC32_update($this.$crc, $buffer, $off, $bytesRead);
        if ($this.$eos)
            juz_GZIPInputStream_verifyCrc($this);
        return $bytesRead;
    }
    var$4 = new jl_ArrayIndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
},
juz_GZIPInputStream_verifyCrc = $this => {
    let var$1, $size, $b, $copySize, var$5;
    var$1 = $this.$inf;
    $size = var$1.$inLength - var$1.$inRead | 0;
    $b = $rt_createByteArray(8);
    $copySize = $size <= 8 ? $size : 8;
    jl_System_fastArraycopy($this.$buf2, $this.$len - $size | 0, $b, 0, $copySize);
    var$5 = 8 - $copySize | 0;
    while (true) {
        if (var$5 <= 0) {
            if (Long_ne(juz_GZIPInputStream_getLong($this, $b, 0), Long_and(Long_fromInt($this.$crc.$impl0.$v), Long_create(4294967295, 0)))) {
                var$1 = new ji_IOException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            var$5 = Long_lo((juz_GZIPInputStream_getLong($this, $b, 4)));
            var$1 = $this.$inf.$impl;
            if (var$1 === null) {
                var$1 = new jl_IllegalStateException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            if (var$5 == Long_lo(var$1.$total_out))
                return;
            var$1 = new ji_IOException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        $size = $this.$in.$read1($b, $copySize, var$5);
        if ($size == (-1))
            break;
        $copySize = $copySize + $size | 0;
        var$5 = var$5 - $size | 0;
    }
    var$1 = new ji_EOFException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
};
function nms_RegionFileChunkBuffer() {
    let a = this; ji_ByteArrayOutputStream.call(a);
    a.$chunkX0 = 0;
    a.$chunkZ0 = 0;
    a.$regionFile = null;
}
let nms_RegionFileChunkBuffer_close = $this => {
    nms_RegionFile_write0($this.$regionFile, $this.$chunkX0, $this.$chunkZ0, $this.$buf, $this.$count0);
};
function ju_HashMap$HashMapEntrySet() {
    ju_AbstractSet.call(this);
    this.$associatedMap0 = null;
}
let ju_HashMap$HashMapEntrySet_size = $this => {
    return $this.$associatedMap0.$elementCount;
},
ju_HashMap$HashMapEntrySet_contains = ($this, $object) => {
    let $oEntry, var$3, $entry, var$5, var$6, var$7;
    if (!$rt_isInstance($object, ju_Map$Entry))
        return 0;
    $oEntry = $object;
    $object = $this.$associatedMap0;
    var$3 = $oEntry.$getKey();
    if (var$3 === null) {
        $entry = $object.$elementData.data[0];
        while ($entry !== null && $entry.$key !== null) {
            $entry = $entry.$next3;
        }
    } else {
        var$5 = var$3.$hashCode();
        var$6 = $object.$elementData.data;
        $entry = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($entry !== null) {
            if ($entry.$origKeyHash == var$5) {
                $object = $entry.$key;
                if (var$3 !== $object && !var$3.$equals($object) ? 0 : 1)
                    break;
            }
            $entry = $entry.$next3;
        }
    }
    a: {
        if ($entry !== null) {
            $object = $entry.$value0;
            $oEntry = $oEntry.$getValue();
            if ($object === $oEntry ? 1 : $object !== null ? $object.$equals($oEntry) : $oEntry !== null ? 0 : 1) {
                var$7 = 1;
                break a;
            }
        }
        var$7 = 0;
    }
    return var$7;
},
ju_HashMap$HashMapEntrySet_iterator = $this => {
    let var$1, var$2;
    var$1 = new ju_HashMap$EntryIterator;
    var$2 = $this.$associatedMap0;
    var$1.$associatedMap = var$2;
    var$1.$expectedModCount = var$2.$modCount1;
    var$1.$futureEntry0 = null;
    return var$1;
};
function jur_Pattern() {
    let a = this; jl_Object.call(a);
    a.$lexemes = null;
    a.$flags1 = 0;
    a.$backRefs = null;
    a.$needsBackRefReplacement = 0;
    a.$globalGroupIndex = 0;
    a.$compCount = 0;
    a.$consCount = 0;
    a.$start5 = null;
}
let jur_Pattern_split = ($this, $inputSeq, $limit) => {
    let $res, $mat, $index, $curPos, var$7, var$8, var$9, var$10;
    $res = new ju_ArrayList;
    $res.$array = $rt_createArray(jl_Object, 10);
    $mat = jur_Matcher__init_($this, $inputSeq);
    $index = 0;
    $curPos = 0;
    if (!$inputSeq.$nativeString.length) {
        var$7 = $rt_createArray(jl_String, 1);
        var$7.data[0] = $rt_s(3);
        return var$7;
    }
    a: {
        while (true) {
            if (!jur_Matcher_find($mat))
                break a;
            var$8 = $index + 1 | 0;
            if (var$8 >= $limit && $limit > 0)
                break a;
            var$9 = $mat.$matchResult;
            if (!var$9.$valid) {
                $inputSeq = new jl_IllegalStateException;
                $inputSeq.$suppressionEnabled = 1;
                $inputSeq.$writableStackTrace = 1;
                $rt_throw($inputSeq);
            }
            if (0 >= var$9.$groupCount) {
                $inputSeq = new jl_IndexOutOfBoundsException;
                $res = new jl_StringBuilder;
                $res.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert0($res, $res.$length0, 0, 10);
                $mat = new jl_String;
                var$7 = $res.$buffer;
                var$10 = var$7.data;
                $index = $res.$length0;
                $curPos = var$10.length;
                if ($index >= 0 && $index <= ($curPos - 0 | 0)) {
                    $mat.$nativeString = $rt_charArrayToString(var$7.data, 0, $index);
                    $inputSeq.$suppressionEnabled = 1;
                    $inputSeq.$writableStackTrace = 1;
                    $inputSeq.$message = $mat;
                    $rt_throw($inputSeq);
                }
                $inputSeq = new jl_IndexOutOfBoundsException;
                $inputSeq.$suppressionEnabled = 1;
                $inputSeq.$writableStackTrace = 1;
                $rt_throw($inputSeq);
            }
            var$9 = jl_String_substring($inputSeq, $curPos, var$9.$groupBounds.data[0]);
            ju_ArrayList_ensureCapacity($res, $res.$size0 + 1 | 0);
            var$7 = $res.$array.data;
            $index = $res.$size0;
            $res.$size0 = $index + 1 | 0;
            var$7[$index] = var$9;
            $res.$modCount = $res.$modCount + 1 | 0;
            var$9 = $mat.$matchResult;
            if (!var$9.$valid)
                break;
            if (0 >= var$9.$groupCount) {
                $inputSeq = new jl_IndexOutOfBoundsException;
                $res = new jl_StringBuilder;
                $res.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert0($res, $res.$length0, 0, 10);
                $mat = new jl_String;
                var$7 = $res.$buffer;
                var$10 = var$7.data;
                $index = $res.$length0;
                $curPos = var$10.length;
                if ($index >= 0 && $index <= ($curPos - 0 | 0)) {
                    $mat.$nativeString = $rt_charArrayToString(var$7.data, 0, $index);
                    $inputSeq.$suppressionEnabled = 1;
                    $inputSeq.$writableStackTrace = 1;
                    $inputSeq.$message = $mat;
                    $rt_throw($inputSeq);
                }
                $inputSeq = new jl_IndexOutOfBoundsException;
                $inputSeq.$suppressionEnabled = 1;
                $inputSeq.$writableStackTrace = 1;
                $rt_throw($inputSeq);
            }
            $curPos = var$9.$groupBounds.data[1];
            $index = var$8;
        }
        $inputSeq = new jl_IllegalStateException;
        $inputSeq.$suppressionEnabled = 1;
        $inputSeq.$writableStackTrace = 1;
        $rt_throw($inputSeq);
    }
    b: {
        $inputSeq = jl_String_substring($inputSeq, $curPos, $inputSeq.$nativeString.length);
        ju_ArrayList_ensureCapacity($res, $res.$size0 + 1 | 0);
        var$7 = $res.$array.data;
        var$8 = $res.$size0;
        $res.$size0 = var$8 + 1 | 0;
        var$7[var$8] = $inputSeq;
        $res.$modCount = $res.$modCount + 1 | 0;
        $index = $index + 1 | 0;
        if (!$limit) {
            while (true) {
                $index = $index + (-1) | 0;
                if ($index < 0)
                    break b;
                if ($index < 0)
                    break;
                if ($index >= $res.$size0)
                    break;
                if ($res.$array.data[$index].$nativeString.length)
                    break b;
                ju_ArrayList_remove($res, $index);
            }
            $inputSeq = new jl_IndexOutOfBoundsException;
            $inputSeq.$suppressionEnabled = 1;
            $inputSeq.$writableStackTrace = 1;
            $rt_throw($inputSeq);
        }
    }
    if ($index < 0)
        $index = 0;
    return ju_AbstractCollection_toArray($res, $rt_createArray(jl_String, $index));
},
jur_Pattern_compile = ($pattern, $flags) => {
    let var$3;
    if ($pattern === null) {
        $pattern = new jl_NullPointerException;
        $pattern.$suppressionEnabled = 1;
        $pattern.$writableStackTrace = 1;
        $pattern.$message = $rt_s(1665);
        $rt_throw($pattern);
    }
    if ($flags && ($flags | 255) != 255) {
        $pattern = new jl_IllegalArgumentException;
        $pattern.$suppressionEnabled = 1;
        $pattern.$writableStackTrace = 1;
        $pattern.$message = $rt_s(3);
        $rt_throw($pattern);
    }
    jur_AbstractSet_counter = 1;
    var$3 = new jur_Pattern;
    var$3.$backRefs = $rt_createArray(jur_FSet, 10);
    var$3.$globalGroupIndex = (-1);
    var$3.$compCount = (-1);
    var$3.$consCount = (-1);
    return jur_Pattern_compileImpl(var$3, $pattern, $flags);
},
jur_Pattern_compileImpl = ($this, $pattern, $flags) => {
    let var$3, var$4, var$5;
    $this.$lexemes = jur_Lexer__init_($pattern, $flags);
    $this.$flags1 = $flags;
    $pattern = jur_Pattern_processExpression($this, (-1), $flags, null);
    $this.$start5 = $pattern;
    var$3 = $this.$lexemes;
    if (!var$3.$ch && !var$3.$lookAhead && var$3.$index0 == var$3.$patternFullLength && !(var$3.$curST === null ? 0 : 1) ? 1 : 0) {
        if ($this.$needsBackRefReplacement)
            $pattern.$processSecondPass();
        return $this;
    }
    $pattern = new jur_PatternSyntaxException;
    var$4 = var$3.$orig;
    var$5 = var$3.$curToc;
    $pattern.$suppressionEnabled = 1;
    $pattern.$writableStackTrace = 1;
    $pattern.$index3 = (-1);
    $pattern.$desc = $rt_s(3);
    $pattern.$pattern = var$4;
    $pattern.$index3 = var$5;
    $rt_throw($pattern);
},
jur_Pattern_processAlternations = ($this, $last) => {
    let $auxRange, var$3, var$4, var$5, $rangeSet, var$7;
    $auxRange = new jur_CharClass;
    var$3 = $this.$flags1;
    var$4 = (var$3 & 2) != 2 ? 0 : 1;
    var$5 = (var$3 & 64) != 64 ? 0 : 1;
    $rangeSet = new ju_BitSet;
    $rangeSet.$data4 = $rt_createIntArray(64);
    $auxRange.$lowHighSurrogates = $rangeSet;
    $rangeSet = new ju_BitSet;
    $rangeSet.$data4 = $rt_createIntArray(2);
    $auxRange.$bits = $rangeSet;
    $auxRange.$ci = var$4;
    $auxRange.$uci = var$5;
    while (true) {
        var$7 = $this.$lexemes;
        var$3 = var$7.$ch;
        if (!var$3 && !var$7.$lookAhead && var$7.$index0 == var$7.$patternFullLength && !(var$7.$curST === null ? 0 : 1) ? 1 : 0)
            break;
        var$5 = !var$3 && !var$7.$lookAhead && var$7.$index0 == var$7.$patternFullLength && !(var$7.$curST === null ? 0 : 1) ? 1 : 0;
        if (!(!var$5 && !(var$7.$curST === null ? 0 : 1) && (var$3 < 0 ? 0 : 1) ? 1 : 0))
            break;
        var$5 = var$7.$lookAhead;
        if (var$5 && var$5 != (-536870788) && var$5 != (-536870871))
            break;
        jur_Lexer_movePointer(var$7);
        jur_CharClass_add0($auxRange, var$7.$lookBack);
        $rangeSet = $this.$lexemes;
        if ($rangeSet.$ch != (-536870788))
            continue;
        jur_Lexer_movePointer($rangeSet);
    }
    $rangeSet = jur_Pattern_processRangeSet($this, $auxRange);
    $rangeSet.$setNext($last);
    return $rangeSet;
},
jur_Pattern_processExpression = ($this, $ch, $newFlags, $last) => {
    let $children, $saveFlags, $saveChangedFlags, $fSet, var$8, $child, var$10, var$11, var$12;
    $children = new ju_ArrayList;
    $children.$array = $rt_createArray(jl_Object, 10);
    $saveFlags = $this.$flags1;
    $saveChangedFlags = 0;
    if ($newFlags != $saveFlags)
        $this.$flags1 = $newFlags;
    a: {
        switch ($ch) {
            case -1073741784:
                $fSet = new jur_NonCapFSet;
                var$8 = $this.$consCount + 1 | 0;
                $this.$consCount = var$8;
                jur_FSet_$callClinit();
                $newFlags = jur_AbstractSet_counter;
                jur_AbstractSet_counter = $newFlags + 1 | 0;
                $last = new jl_AbstractStringBuilder;
                $last.$buffer = $rt_createCharArray(20);
                $fSet.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $newFlags, 10)).$toString();
                $fSet.$groupIndex0 = var$8;
                break a;
            case -536870872:
            case -268435416:
                break;
            case -134217688:
            case -67108824:
                $fSet = new jur_BehindFSet;
                var$8 = $this.$consCount + 1 | 0;
                $this.$consCount = var$8;
                jur_FSet_$callClinit();
                $newFlags = jur_AbstractSet_counter;
                jur_AbstractSet_counter = $newFlags + 1 | 0;
                $last = new jl_AbstractStringBuilder;
                $last.$buffer = $rt_createCharArray(20);
                $fSet.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $newFlags, 10)).$toString();
                $fSet.$groupIndex0 = var$8;
                break a;
            case -33554392:
                $fSet = new jur_AtomicFSet;
                var$8 = $this.$consCount + 1 | 0;
                $this.$consCount = var$8;
                jur_FSet_$callClinit();
                $newFlags = jur_AbstractSet_counter;
                jur_AbstractSet_counter = $newFlags + 1 | 0;
                $last = new jl_AbstractStringBuilder;
                $last.$buffer = $rt_createCharArray(20);
                $fSet.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $newFlags, 10)).$toString();
                $fSet.$groupIndex0 = var$8;
                break a;
            default:
                var$8 = $this.$globalGroupIndex + 1 | 0;
                $this.$globalGroupIndex = var$8;
                if ($last === null) {
                    $fSet = jur_FinalSet__init_0();
                    $saveChangedFlags = 1;
                } else {
                    $fSet = new jur_FSet;
                    jur_FSet_$callClinit();
                    $newFlags = jur_AbstractSet_counter;
                    jur_AbstractSet_counter = $newFlags + 1 | 0;
                    $last = new jl_AbstractStringBuilder;
                    $last.$buffer = $rt_createCharArray(20);
                    $fSet.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $newFlags, 10)).$toString();
                    $fSet.$groupIndex0 = var$8;
                }
                $newFlags = $this.$globalGroupIndex;
                if ($newFlags <= (-1))
                    break a;
                if ($newFlags >= 10)
                    break a;
                $this.$backRefs.data[$newFlags] = $fSet;
                break a;
        }
        $fSet = jur_AheadFSet__init_0();
    }
    while (true) {
        $child = $this.$lexemes;
        var$10 = $child.$ch;
        var$11 = !var$10 && !$child.$lookAhead && $child.$index0 == $child.$patternFullLength && !($child.$curST === null ? 0 : 1) ? 1 : 0;
        var$11 = !var$11 && !($child.$curST === null ? 0 : 1) && (var$10 < 0 ? 0 : 1) ? 1 : 0;
        if (var$11 && $child.$lookAhead == (-536870788))
            $child = jur_Pattern_processAlternations($this, $fSet);
        else if (var$10 == (-536870788)) {
            $child = new jur_EmptySet;
            var$11 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$11 + 1 | 0;
            $last = new jl_AbstractStringBuilder;
            $last.$buffer = $rt_createCharArray(20);
            $child.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, var$11, 10)).$toString();
            $child.$next4 = $fSet;
            $child.$charCount0 = 1;
            $child.$type = 1;
            $child.$charCount0 = 0;
            jur_Lexer_movePointer($this.$lexemes);
        } else {
            $child = jur_Pattern_processSubExpression($this, $fSet);
            $last = $this.$lexemes;
            if ($last.$ch == (-536870788))
                jur_Lexer_movePointer($last);
        }
        if ($child !== null) {
            ju_ArrayList_ensureCapacity($children, $children.$size0 + 1 | 0);
            var$12 = $children.$array.data;
            var$10 = $children.$size0;
            $children.$size0 = var$10 + 1 | 0;
            var$12[var$10] = $child;
            $children.$modCount = $children.$modCount + 1 | 0;
        }
        $child = $this.$lexemes;
        var$11 = $child.$ch;
        if (!var$11 && !$child.$lookAhead && $child.$index0 == $child.$patternFullLength && !($child.$curST === null ? 0 : 1) ? 1 : 0)
            break;
        if (var$11 == (-536870871))
            break;
    }
    if ($child.$lookBack == (-536870788)) {
        $child = new jur_EmptySet;
        $newFlags = jur_AbstractSet_counter;
        jur_AbstractSet_counter = $newFlags + 1 | 0;
        $last = new jl_AbstractStringBuilder;
        $last.$buffer = $rt_createCharArray(20);
        $child.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $newFlags, 10)).$toString();
        $child.$next4 = $fSet;
        $child.$charCount0 = 1;
        $child.$type = 1;
        $child.$charCount0 = 0;
        ju_ArrayList_ensureCapacity($children, $children.$size0 + 1 | 0);
        var$12 = $children.$array.data;
        var$11 = $children.$size0;
        $children.$size0 = var$11 + 1 | 0;
        var$12[var$11] = $child;
        $children.$modCount = $children.$modCount + 1 | 0;
    }
    if ($this.$flags1 != $saveFlags && !$saveChangedFlags) {
        $this.$flags1 = $saveFlags;
        $child = $this.$lexemes;
        $child.$flags = $saveFlags;
        $child.$lookAhead = $child.$ch;
        $child.$lookAheadST = $child.$curST;
        var$11 = $child.$curToc;
        $child.$index0 = var$11 + 1 | 0;
        $child.$lookAheadToc = var$11;
        jur_Lexer_movePointer($child);
    }
    switch ($ch) {
        case -1073741784:
            break;
        case -536870872:
            $child = new jur_PositiveLookAhead;
            $ch = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $ch + 1 | 0;
            $last = new jl_AbstractStringBuilder;
            jl_Object__init_($last);
            $last.$buffer = $rt_createCharArray(20);
            $child.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $ch, 10)).$toString();
            $child.$children = $children;
            $child.$fSet = $fSet;
            $child.$groupIndex = $fSet.$groupIndex0;
            return $child;
        case -268435416:
            $child = new jur_NegativeLookAhead;
            $newFlags = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $newFlags + 1 | 0;
            $last = new jl_AbstractStringBuilder;
            jl_Object__init_($last);
            $last.$buffer = $rt_createCharArray(20);
            $child.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $newFlags, 10)).$toString();
            $child.$children = $children;
            $child.$fSet = $fSet;
            $child.$groupIndex = $fSet.$groupIndex0;
            return $child;
        case -134217688:
            $last = new jur_PositiveLookBehind;
            $ch = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $ch + 1 | 0;
            $child = new jl_AbstractStringBuilder;
            jl_Object__init_($child);
            $child.$buffer = $rt_createCharArray(20);
            $last.$index1 = (jl_AbstractStringBuilder_insert0($child, $child.$length0, $ch, 10)).$toString();
            $last.$children = $children;
            $last.$fSet = $fSet;
            $last.$groupIndex = $fSet.$groupIndex0;
            return $last;
        case -67108824:
            $last = new jur_NegativeLookBehind;
            $ch = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $ch + 1 | 0;
            $child = new jl_AbstractStringBuilder;
            jl_Object__init_($child);
            $child.$buffer = $rt_createCharArray(20);
            $last.$index1 = (jl_AbstractStringBuilder_insert0($child, $child.$length0, $ch, 10)).$toString();
            $last.$children = $children;
            $last.$fSet = $fSet;
            $last.$groupIndex = $fSet.$groupIndex0;
            return $last;
        case -33554392:
            $last = new jur_AtomicJointSet;
            $newFlags = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $newFlags + 1 | 0;
            $child = new jl_AbstractStringBuilder;
            $child.$buffer = $rt_createCharArray(20);
            $last.$index1 = (jl_AbstractStringBuilder_insert0($child, $child.$length0, $newFlags, 10)).$toString();
            $last.$children = $children;
            $last.$fSet = $fSet;
            $last.$groupIndex = $fSet.$groupIndex0;
            return $last;
        default:
            $newFlags = $children.$size0;
            switch ($newFlags) {
                case 0:
                    $last = new jur_EmptySet;
                    $ch = jur_AbstractSet_counter;
                    jur_AbstractSet_counter = $ch + 1 | 0;
                    $children = new jl_AbstractStringBuilder;
                    $children.$buffer = $rt_createCharArray(20);
                    $last.$index1 = (jl_AbstractStringBuilder_insert0($children, $children.$length0, $ch, 10)).$toString();
                    $last.$next4 = $fSet;
                    $last.$charCount0 = 1;
                    $last.$type = 1;
                    $last.$charCount0 = 0;
                    return $last;
                case 1:
                    $last = new jur_SingleSet;
                    if (0 >= $newFlags) {
                        $last = new jl_IndexOutOfBoundsException;
                        $last.$suppressionEnabled = 1;
                        $last.$writableStackTrace = 1;
                        $rt_throw($last);
                    }
                    $children = $children.$array.data[0];
                    jur_JointSet__init_($last);
                    $last.$kid = $children;
                    $last.$fSet = $fSet;
                    $last.$groupIndex = $fSet.$groupIndex0;
                    return $last;
                default:
            }
            $last = new jur_JointSet;
            $ch = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $ch + 1 | 0;
            $child = new jl_AbstractStringBuilder;
            $child.$buffer = $rt_createCharArray(20);
            $last.$index1 = (jl_AbstractStringBuilder_insert0($child, $child.$length0, $ch, 10)).$toString();
            $last.$children = $children;
            $last.$fSet = $fSet;
            $last.$groupIndex = $fSet.$groupIndex0;
            return $last;
    }
    $child = new jur_NonCapJointSet;
    $ch = jur_AbstractSet_counter;
    jur_AbstractSet_counter = $ch + 1 | 0;
    $last = new jl_AbstractStringBuilder;
    $last.$buffer = $rt_createCharArray(20);
    $child.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, $ch, 10)).$toString();
    $child.$children = $children;
    $child.$fSet = $fSet;
    $child.$groupIndex = $fSet.$groupIndex0;
    return $child;
},
jur_Pattern_processSequence = $this => {
    let $substring, var$2, var$3, $ch, var$5, var$6, var$7, var$8, var$9, var$10;
    $substring = new jl_StringBuffer;
    $substring.$buffer = $rt_createCharArray(16);
    while (true) {
        var$2 = $this.$lexemes;
        var$3 = var$2.$ch;
        if (!var$3 && !var$2.$lookAhead && var$2.$index0 == var$2.$patternFullLength && !(var$2.$curST === null ? 0 : 1) ? 1 : 0)
            break;
        $ch = !var$3 && !var$2.$lookAhead && var$2.$index0 == var$2.$patternFullLength && !(var$2.$curST === null ? 0 : 1) ? 1 : 0;
        if (!(!$ch && !(var$2.$curST === null ? 0 : 1) && (var$3 < 0 ? 0 : 1) ? 1 : 0))
            break;
        if (var$3 <= 56319 && var$3 >= 55296 ? 1 : 0)
            break;
        if (var$3 <= 57343 && var$3 >= 56320 ? 1 : 0)
            break;
        var$5 = var$2.$lookAheadST;
        var$3 = var$5 === null ? 0 : 1;
        if (!(!var$3 && !var$2.$lookAhead)) {
            var$3 = var$5 === null ? 0 : 1;
            if (!(!var$3 && (var$2.$lookAhead < 0 ? 0 : 1))) {
                var$6 = var$2.$lookAhead;
                if (var$6 != (-536870871) && (var$6 & (-2147418113)) != (-2147483608) && var$6 != (-536870788) && var$6 != (-536870876))
                    break;
            }
        }
        jur_Lexer_movePointer(var$2);
        $ch = var$2.$lookBack;
        if (!($ch >= 65536 && $ch <= 1114111 ? 1 : 0)) {
            var$3 = $ch & 65535;
            $ch = $substring.$length0;
            jl_AbstractStringBuilder_insertSpace($substring, $ch, $ch + 1 | 0);
            $substring.$buffer.data[$ch] = var$3;
        } else {
            var$7 = (jl_Character_toChars($ch)).data;
            var$3 = 0;
            $ch = var$7.length;
            var$6 = $substring.$length0;
            jl_AbstractStringBuilder_insertSpace($substring, var$6, var$6 + $ch | 0);
            var$8 = $ch + var$3 | 0;
            while (var$3 < var$8) {
                var$9 = $substring.$buffer.data;
                var$10 = var$6 + 1 | 0;
                $ch = var$3 + 1 | 0;
                var$9[var$6] = var$7[var$3];
                var$6 = var$10;
                var$3 = $ch;
            }
        }
    }
    $ch = $this.$flags1;
    if (!(($ch & 2) != 2 ? 0 : 1))
        return jur_SequenceSet__init_($substring);
    if (!(($ch & 64) != 64 ? 0 : 1)) {
        var$2 = new jur_CISequenceSet;
        var$3 = jur_AbstractSet_counter;
        jur_AbstractSet_counter = var$3 + 1 | 0;
        var$5 = new jl_AbstractStringBuilder;
        var$5.$buffer = $rt_createCharArray(20);
        var$2.$index1 = (jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$3, 10)).$toString();
        var$2.$charCount0 = 1;
        var$5 = new jl_String;
        var$7 = $substring.$buffer;
        var$9 = var$7.data;
        $ch = $substring.$length0;
        var$6 = var$9.length;
        if ($ch >= 0 && $ch <= (var$6 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $ch);
            var$2.$string3 = var$5;
            var$2.$charCount0 = $substring.$length0;
            return var$2;
        }
        $substring = new jl_IndexOutOfBoundsException;
        $substring.$suppressionEnabled = 1;
        $substring.$writableStackTrace = 1;
        $rt_throw($substring);
    }
    var$2 = new jur_UCISequenceSet;
    var$3 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$3 + 1 | 0;
    var$5 = new jl_AbstractStringBuilder;
    var$5.$buffer = $rt_createCharArray(20);
    var$2.$index1 = (jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$3, 10)).$toString();
    var$2.$charCount0 = 1;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    $ch = 0;
    while (true) {
        var$3 = $rt_compare($ch, $substring.$length0);
        if (var$3 >= 0) {
            $substring = new jl_String;
            var$7 = var$5.$buffer;
            var$9 = var$7.data;
            var$6 = var$5.$length0;
            var$3 = var$9.length;
            if (var$6 >= 0 && var$6 <= (var$3 - 0 | 0)) {
                $substring.$nativeString = $rt_charArrayToString(var$7.data, 0, var$6);
                var$2.$string4 = $substring;
                var$2.$charCount0 = var$5.$length0;
                return var$2;
            }
            $substring = new jl_IndexOutOfBoundsException;
            $substring.$suppressionEnabled = 1;
            $substring.$writableStackTrace = 1;
            $rt_throw($substring);
        }
        if ($ch < 0)
            break;
        if (var$3 >= 0)
            break;
        var$3 = $substring.$buffer.data[$ch];
        if (jl_Character_upperCaseMapping === null) {
            if (jl_Character_$$metadata$$1 === null)
                jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
            jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
        }
        var$3 = jl_Character_mapChar(jl_Character_upperCaseMapping, var$3) & 65535;
        if (jl_Character_lowerCaseMapping === null) {
            if (jl_Character_$$metadata$$0 === null)
                jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
            jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
        }
        var$8 = jl_Character_mapChar(jl_Character_lowerCaseMapping, var$3) & 65535;
        var$6 = var$5.$length0;
        jl_AbstractStringBuilder_insertSpace(var$5, var$6, var$6 + 1 | 0);
        var$5.$buffer.data[var$6] = var$8;
        $ch = $ch + 1 | 0;
    }
    $substring = new jl_IndexOutOfBoundsException;
    $substring.$suppressionEnabled = 1;
    $substring.$writableStackTrace = 1;
    $rt_throw($substring);
},
jur_Pattern_processDecomposedChar = $this => {
    let $codePoints, $curSymb, $curSymbIndex, var$4, var$5, var$6, $codePointsHangul, $readCodePoints, var$9;
    $codePoints = $rt_createIntArray(4);
    $curSymb = (-1);
    $curSymbIndex = (-1);
    var$4 = $this.$lexemes;
    var$5 = var$4.$ch;
    if (!(!var$5 && !var$4.$lookAhead && var$4.$index0 == var$4.$patternFullLength && !(var$4.$curST === null ? 0 : 1) ? 1 : 0)) {
        var$6 = !var$5 && !var$4.$lookAhead && var$4.$index0 == var$4.$patternFullLength && !(var$4.$curST === null ? 0 : 1) ? 1 : 0;
        if (!var$6 && !(var$4.$curST === null ? 0 : 1) && (var$5 < 0 ? 0 : 1) ? 1 : 0) {
            $codePointsHangul = $codePoints.data;
            jur_Lexer_movePointer(var$4);
            $curSymb = var$4.$lookBack;
            $codePointsHangul[0] = $curSymb;
            $curSymbIndex = $curSymb - 4352 | 0;
        }
    }
    if ($curSymbIndex >= 0 && $curSymbIndex < 19) {
        $codePointsHangul = $rt_createCharArray(3);
        $codePoints = $codePointsHangul.data;
        $codePoints[0] = $curSymb & 65535;
        var$4 = $this.$lexemes;
        var$6 = var$4.$ch;
        $readCodePoints = var$6 - 4449 | 0;
        if ($readCodePoints >= 0 && $readCodePoints < 21) {
            $codePoints[1] = var$6 & 65535;
            jur_Lexer_movePointer(var$4);
            var$4 = $this.$lexemes;
            var$6 = var$4.$ch;
            $curSymb = var$6 - 4519 | 0;
            if ($curSymb >= 0 && $curSymb < 28) {
                $codePoints[2] = var$6 & 65535;
                jur_Lexer_movePointer(var$4);
                var$4 = new jur_HangulDecomposedCharSet;
                jur_JointSet__init_(var$4);
                var$4.$decomposedChar = $codePointsHangul;
                var$4.$decomposedCharLength0 = 3;
                return var$4;
            }
            var$4 = new jur_HangulDecomposedCharSet;
            jur_JointSet__init_(var$4);
            var$4.$decomposedChar = $codePointsHangul;
            var$4.$decomposedCharLength0 = 2;
            return var$4;
        }
        $curSymb = $this.$flags1;
        if (!(($curSymb & 2) != 2 ? 0 : 1)) {
            var$4 = new jur_CharSet;
            $readCodePoints = $codePoints[0];
            $curSymb = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $curSymb + 1 | 0;
            var$9 = new jl_AbstractStringBuilder;
            var$9.$buffer = $rt_createCharArray(20);
            var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $curSymb, 10)).$toString();
            var$4.$charCount0 = 1;
            var$4.$ch0 = $readCodePoints;
            return var$4;
        }
        if (!(($curSymb & 64) != 64 ? 0 : 1)) {
            var$4 = new jur_CICharSet;
            $readCodePoints = $codePoints[0];
            $curSymb = jur_AbstractSet_counter;
            jur_AbstractSet_counter = $curSymb + 1 | 0;
            var$9 = new jl_AbstractStringBuilder;
            var$9.$buffer = $rt_createCharArray(20);
            var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $curSymb, 10)).$toString();
            var$4.$charCount0 = 1;
            var$4.$ch2 = $readCodePoints;
            var$4.$supplement = jur_Pattern_getSupplement($readCodePoints);
            return var$4;
        }
        var$4 = new jur_UCICharSet;
        $readCodePoints = $codePoints[0];
        $curSymb = jur_AbstractSet_counter;
        jur_AbstractSet_counter = $curSymb + 1 | 0;
        var$9 = new jl_AbstractStringBuilder;
        var$9.$buffer = $rt_createCharArray(20);
        var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $curSymb, 10)).$toString();
        var$4.$charCount0 = 1;
        if (jl_Character_upperCaseMapping === null) {
            if (jl_Character_$$metadata$$1 === null)
                jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
            jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
        }
        $readCodePoints = jl_Character_mapChar(jl_Character_upperCaseMapping, $readCodePoints) & 65535;
        if (jl_Character_lowerCaseMapping === null) {
            if (jl_Character_$$metadata$$0 === null)
                jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
            jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
        }
        var$4.$ch3 = jl_Character_mapChar(jl_Character_lowerCaseMapping, $readCodePoints) & 65535;
        return var$4;
    }
    $codePointsHangul = $codePoints.data;
    $curSymb = 1;
    while ($curSymb < 4) {
        var$4 = $this.$lexemes;
        var$6 = var$4.$ch;
        if (!var$6 && !var$4.$lookAhead && var$4.$index0 == var$4.$patternFullLength && !(var$4.$curST === null ? 0 : 1) ? 1 : 0)
            break;
        $readCodePoints = !var$6 && !var$4.$lookAhead && var$4.$index0 == var$4.$patternFullLength && !(var$4.$curST === null ? 0 : 1) ? 1 : 0;
        if (!(!$readCodePoints && !(var$4.$curST === null ? 0 : 1) && (var$6 < 0 ? 0 : 1) ? 1 : 0))
            break;
        $readCodePoints = $curSymb + 1 | 0;
        jur_Lexer_movePointer(var$4);
        $codePointsHangul[$curSymb] = var$4.$lookBack;
        $curSymb = $readCodePoints;
    }
    if ($curSymb == 1) {
        $readCodePoints = $codePointsHangul[0];
        if (!(jur_Lexer_singleDecompTable.$get4($readCodePoints) == jur_Lexer_singleDecompTableSize ? 0 : 1))
            return jur_Pattern_processCharSet($this, $codePointsHangul[0]);
    }
    $curSymbIndex = $this.$flags1;
    if (!(($curSymbIndex & 2) != 2 ? 0 : 1)) {
        var$4 = new jur_DecomposedCharSet;
        jur_JointSet__init_(var$4);
        var$4.$readCharsForCodePoint = 1;
        var$4.$decomposedChar0 = $codePoints;
        var$4.$decomposedCharLength = $curSymb;
        return var$4;
    }
    if (($curSymbIndex & 64) != 64 ? 0 : 1) {
        var$4 = new jur_UCIDecomposedCharSet;
        jur_JointSet__init_(var$4);
        var$4.$readCharsForCodePoint = 1;
        var$4.$decomposedChar0 = $codePoints;
        var$4.$decomposedCharLength = $curSymb;
        return var$4;
    }
    var$4 = new jur_CIDecomposedCharSet;
    jur_JointSet__init_(var$4);
    var$4.$readCharsForCodePoint = 1;
    var$4.$decomposedChar0 = $codePoints;
    var$4.$decomposedCharLength = $curSymb;
    return var$4;
},
jur_Pattern_processSubExpression = ($this, $last) => {
    let $term, var$3, var$4, $cur, $next, var$7, var$8, var$9;
    $term = $this.$lexemes;
    var$3 = $term.$ch;
    var$4 = !var$3 && !$term.$lookAhead && $term.$index0 == $term.$patternFullLength && !($term.$curST === null ? 0 : 1) ? 1 : 0;
    var$4 = !var$4 && !($term.$curST === null ? 0 : 1) && (var$3 < 0 ? 0 : 1) ? 1 : 0;
    if (var$4 && !($term.$lookAheadST === null ? 0 : 1) && ($term.$lookAhead < 0 ? 0 : 1)) {
        if (!(($this.$flags1 & 128) != 128 ? 0 : 1)) {
            var$4 = var$3 <= 56319 && var$3 >= 55296 ? 1 : 0;
            $cur = !var$4 && !(var$3 <= 57343 && var$3 >= 56320 ? 1 : 0) ? jur_Pattern_processSequence($this) : jur_Pattern_processQuantifier($this, $last, jur_Pattern_processTerminal($this, $last));
        } else {
            $cur = jur_Pattern_processDecomposedChar($this);
            $next = $this.$lexemes;
            var$4 = $next.$ch;
            if (!(!var$4 && !$next.$lookAhead && $next.$index0 == $next.$patternFullLength && !($next.$curST === null ? 0 : 1) ? 1 : 0) && !(var$4 == (-536870871) && !($last instanceof jur_FinalSet)) && var$4 != (-536870788)) {
                var$7 = !var$4 && !$next.$lookAhead && $next.$index0 == $next.$patternFullLength && !($next.$curST === null ? 0 : 1) ? 1 : 0;
                if (!(!var$7 && !($next.$curST === null ? 0 : 1) && (var$4 < 0 ? 0 : 1) ? 1 : 0))
                    $cur = jur_Pattern_processQuantifier($this, $last, $cur);
            }
        }
    } else if (var$3 != (-536870871))
        $cur = jur_Pattern_processQuantifier($this, $last, jur_Pattern_processTerminal($this, $last));
    else {
        if ($last instanceof jur_FinalSet) {
            $last = new jur_PatternSyntaxException;
            $next = $term.$orig;
            var$7 = $term.$curToc;
            $last.$suppressionEnabled = 1;
            $last.$writableStackTrace = 1;
            $last.$index3 = (-1);
            $last.$desc = $rt_s(3);
            $last.$pattern = $next;
            $last.$index3 = var$7;
            $rt_throw($last);
        }
        $cur = new jur_EmptySet;
        var$4 = jur_AbstractSet_counter;
        jur_AbstractSet_counter = var$4 + 1 | 0;
        $term = new jl_AbstractStringBuilder;
        $term.$buffer = $rt_createCharArray(20);
        $cur.$index1 = (jl_AbstractStringBuilder_insert0($term, $term.$length0, var$4, 10)).$toString();
        $cur.$next4 = $last;
        $cur.$charCount0 = 1;
        $cur.$type = 1;
        $cur.$charCount0 = 0;
    }
    $term = $this.$lexemes;
    var$3 = $term.$ch;
    var$4 = !var$3 && !$term.$lookAhead && $term.$index0 == $term.$patternFullLength && !($term.$curST === null ? 0 : 1) ? 1 : 0;
    if (!var$4 && !(var$3 == (-536870871) && !($last instanceof jur_FinalSet)) && var$3 != (-536870788)) {
        $next = jur_Pattern_processSubExpression($this, $last);
        if ($cur instanceof jur_LeafQuantifierSet && !($cur instanceof jur_CompositeQuantifierSet) && !($cur instanceof jur_GroupQuantifierSet) && !($cur instanceof jur_AltQuantifierSet)) {
            $last = $cur;
            if (!$next.$first($last.$innerSet)) {
                $cur = new jur_UnifiedQuantifierSet;
                $term = $last.$innerSet;
                var$8 = $last.$next4;
                var$9 = $last.$type;
                var$4 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$4 + 1 | 0;
                $last = new jl_AbstractStringBuilder;
                $last.$buffer = $rt_createCharArray(20);
                $cur.$index1 = (jl_AbstractStringBuilder_insert0($last, $last.$length0, var$4, 10)).$toString();
                $cur.$next4 = var$8;
                $cur.$innerSet = $term;
                $cur.$type = var$9;
                $cur.$leaf = $term;
                $term.$setNext($cur);
            }
        }
        if (($next.$getType0() & 65535) != 43)
            $cur.$setNext($next);
        else
            $cur.$setNext($next.$innerSet);
    } else {
        if ($cur === null)
            return null;
        $cur.$setNext($last);
    }
    if (($cur.$getType0() & 65535) != 43)
        return $cur;
    return $cur.$innerSet;
},
jur_Pattern_processQuantifier = ($this, $last, $term) => {
    let $q, $quant, var$5, $q_0, var$7, $leaf, var$9;
    $q = $this.$lexemes;
    $quant = $q.$ch;
    if ($term !== null && !($term instanceof jur_LeafSet)) {
        switch ($quant) {
            case -2147483606:
                jur_Lexer_movePointer($q);
                $q = new jur_PossessiveGroupQuantifierSet;
                var$5 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$5 + 1 | 0;
                $q_0 = new jl_AbstractStringBuilder;
                $q_0.$buffer = $rt_createCharArray(20);
                $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$5, 10)).$toString();
                $q.$next4 = $last;
                $q.$innerSet = $term;
                $q.$type = $quant;
                jur_FSet_$callClinit();
                $term.$setNext(jur_FSet_posFSet);
                return $q;
            case -2147483605:
                jur_Lexer_movePointer($q);
                $q = new jur_PosPlusGroupQuantifierSet;
                var$7 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$7 + 1 | 0;
                $q_0 = new jl_AbstractStringBuilder;
                $q_0.$buffer = $rt_createCharArray(20);
                $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
                $q.$next4 = $last;
                $q.$innerSet = $term;
                $q.$type = (-2147483606);
                jur_FSet_$callClinit();
                $term.$setNext(jur_FSet_posFSet);
                return $q;
            case -2147483585:
                jur_Lexer_movePointer($q);
                $q = new jur_PosAltGroupQuantifierSet;
                var$7 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$7 + 1 | 0;
                $q_0 = new jl_AbstractStringBuilder;
                jl_Object__init_($q_0);
                $q_0.$buffer = $rt_createCharArray(20);
                $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
                $q.$next4 = $last;
                $q.$innerSet = $term;
                $q.$type = (-536870849);
                jur_FSet_$callClinit();
                $term.$setNext(jur_FSet_posFSet);
                return $q;
            case -2147483525:
                $q_0 = new jur_PosCompositeGroupQuantifierSet;
                $leaf = $q.$curST;
                jur_Lexer_movePointer($q);
                $q = $leaf;
                var$5 = $this.$compCount + 1 | 0;
                $this.$compCount = var$5;
                var$9 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$9 + 1 | 0;
                $leaf = new jl_AbstractStringBuilder;
                jl_Object__init_($leaf);
                $leaf.$buffer = $rt_createCharArray(20);
                $q_0.$index1 = (jl_AbstractStringBuilder_insert0($leaf, $leaf.$length0, var$9, 10)).$toString();
                $q_0.$next4 = $last;
                $q_0.$innerSet = $term;
                $q_0.$type = (-536870849);
                $q_0.$quantifier = $q;
                $q_0.$setCounter = var$5;
                jur_FSet_$callClinit();
                $term.$setNext(jur_FSet_posFSet);
                return $q_0;
            case -1073741782:
            case -1073741781:
                jur_Lexer_movePointer($q);
                $q = new jur_ReluctantGroupQuantifierSet;
                var$5 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$5 + 1 | 0;
                $q_0 = new jl_AbstractStringBuilder;
                $q_0.$buffer = $rt_createCharArray(20);
                $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$5, 10)).$toString();
                $q.$next4 = $last;
                $q.$innerSet = $term;
                $q.$type = $quant;
                $term.$setNext($q);
                return $q;
            case -1073741761:
                jur_Lexer_movePointer($q);
                $q = new jur_RelAltGroupQuantifierSet;
                var$7 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$7 + 1 | 0;
                $q_0 = new jl_AbstractStringBuilder;
                jl_Object__init_($q_0);
                $q_0.$buffer = $rt_createCharArray(20);
                $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
                $q.$next4 = $last;
                $q.$innerSet = $term;
                $q.$type = (-536870849);
                $term.$setNext($last);
                return $q;
            case -1073741701:
                $q_0 = new jur_RelCompositeGroupQuantifierSet;
                $leaf = $q.$curST;
                jur_Lexer_movePointer($q);
                $q = $leaf;
                var$7 = $this.$compCount + 1 | 0;
                $this.$compCount = var$7;
                var$9 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$9 + 1 | 0;
                $leaf = new jl_AbstractStringBuilder;
                jl_Object__init_($leaf);
                $leaf.$buffer = $rt_createCharArray(20);
                $q_0.$index1 = (jl_AbstractStringBuilder_insert0($leaf, $leaf.$length0, var$9, 10)).$toString();
                $q_0.$next4 = $last;
                $q_0.$innerSet = $term;
                $q_0.$type = (-536870849);
                $q_0.$quantifier = $q;
                $q_0.$setCounter = var$7;
                $term.$setNext($q_0);
                return $q_0;
            case -536870870:
            case -536870869:
                jur_Lexer_movePointer($q);
                if ($term.$getType0() != (-2147483602)) {
                    $q = new jur_GroupQuantifierSet;
                    var$5 = jur_AbstractSet_counter;
                    jur_AbstractSet_counter = var$5 + 1 | 0;
                    $q_0 = new jl_AbstractStringBuilder;
                    $q_0.$buffer = $rt_createCharArray(20);
                    $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$5, 10)).$toString();
                    $q.$next4 = $last;
                    $q.$innerSet = $term;
                    $q.$type = $quant;
                } else {
                    var$7 = $this.$flags1;
                    if ((var$7 & 32) != 32 ? 0 : 1) {
                        $q = new jur_DotAllQuantifierSet;
                        var$5 = jur_AbstractSet_counter;
                        jur_AbstractSet_counter = var$5 + 1 | 0;
                        $q_0 = new jl_AbstractStringBuilder;
                        $q_0.$buffer = $rt_createCharArray(20);
                        $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$5, 10)).$toString();
                        $q.$next4 = $last;
                        $q.$innerSet = $term;
                        $q.$type = $quant;
                    } else {
                        $q = new jur_DotQuantifierSet;
                        if (!(var$7 & 1)) {
                            $q_0 = jur_AbstractLineTerminator_unicodeLT;
                            if ($q_0 === null) {
                                $q_0 = new jur_AbstractLineTerminator$2;
                                jur_AbstractLineTerminator_unicodeLT = $q_0;
                            }
                        } else {
                            $q_0 = jur_AbstractLineTerminator_unixLT;
                            if ($q_0 === null) {
                                $q_0 = new jur_AbstractLineTerminator$1;
                                jur_AbstractLineTerminator_unixLT = $q_0;
                            }
                        }
                        var$5 = jur_AbstractSet_counter;
                        jur_AbstractSet_counter = var$5 + 1 | 0;
                        $leaf = new jl_AbstractStringBuilder;
                        $leaf.$buffer = $rt_createCharArray(20);
                        $q.$index1 = (jl_AbstractStringBuilder_insert0($leaf, $leaf.$length0, var$5, 10)).$toString();
                        $q.$next4 = $last;
                        $q.$innerSet = $term;
                        $q.$type = $quant;
                        $q.$lt = $q_0;
                    }
                }
                $term.$setNext($q);
                return $q;
            case -536870849:
                jur_Lexer_movePointer($q);
                $q = new jur_AltGroupQuantifierSet;
                var$7 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$7 + 1 | 0;
                $q_0 = new jl_AbstractStringBuilder;
                $q_0.$buffer = $rt_createCharArray(20);
                $q.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
                $q.$next4 = $last;
                $q.$innerSet = $term;
                $q.$type = (-536870849);
                $term.$setNext($last);
                return $q;
            case -536870789:
                $q_0 = new jur_CompositeGroupQuantifierSet;
                $leaf = $q.$curST;
                jur_Lexer_movePointer($q);
                $q = $leaf;
                var$7 = $this.$compCount + 1 | 0;
                $this.$compCount = var$7;
                var$9 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$9 + 1 | 0;
                $leaf = new jl_AbstractStringBuilder;
                $leaf.$buffer = $rt_createCharArray(20);
                $q_0.$index1 = (jl_AbstractStringBuilder_insert0($leaf, $leaf.$length0, var$9, 10)).$toString();
                $q_0.$next4 = $last;
                $q_0.$innerSet = $term;
                $q_0.$type = (-536870849);
                $q_0.$quantifier = $q;
                $q_0.$setCounter = var$7;
                $term.$setNext($q_0);
                return $q_0;
            default:
        }
        return $term;
    }
    $leaf = null;
    if ($term !== null)
        $leaf = $term;
    switch ($quant) {
        case -2147483606:
        case -2147483605:
            jur_Lexer_movePointer($q);
            $q = new jur_PossessiveQuantifierSet;
            var$5 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$5 + 1 | 0;
            $term = new jl_AbstractStringBuilder;
            $term.$buffer = $rt_createCharArray(20);
            $q.$index1 = (jl_AbstractStringBuilder_insert0($term, $term.$length0, var$5, 10)).$toString();
            $q.$next4 = $last;
            $q.$innerSet = $leaf;
            $q.$type = $quant;
            $q.$leaf = $leaf;
            $leaf.$next4 = $q;
            return $q;
        case -2147483585:
            jur_Lexer_movePointer($q);
            $term = new jur_PossessiveAltQuantifierSet;
            var$7 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$7 + 1 | 0;
            $q = new jl_AbstractStringBuilder;
            jl_Object__init_($q);
            $q.$buffer = $rt_createCharArray(20);
            $term.$index1 = (jl_AbstractStringBuilder_insert0($q, $q.$length0, var$7, 10)).$toString();
            $term.$next4 = $last;
            $term.$innerSet = $leaf;
            $term.$type = (-2147483585);
            $term.$leaf = $leaf;
            return $term;
        case -2147483525:
            $term = new jur_PossessiveCompositeQuantifierSet;
            $q_0 = $q.$curST;
            jur_Lexer_movePointer($q);
            $q = $q_0;
            var$7 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$7 + 1 | 0;
            $q_0 = new jl_AbstractStringBuilder;
            jl_Object__init_($q_0);
            $q_0.$buffer = $rt_createCharArray(20);
            $term.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
            $term.$next4 = $last;
            $term.$innerSet = $leaf;
            $term.$type = (-2147483525);
            $term.$leaf = $leaf;
            $term.$quantifier0 = $q;
            return $term;
        case -1073741782:
        case -1073741781:
            jur_Lexer_movePointer($q);
            $q = new jur_ReluctantQuantifierSet;
            var$5 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$5 + 1 | 0;
            $term = new jl_AbstractStringBuilder;
            $term.$buffer = $rt_createCharArray(20);
            $q.$index1 = (jl_AbstractStringBuilder_insert0($term, $term.$length0, var$5, 10)).$toString();
            $q.$next4 = $last;
            $q.$innerSet = $leaf;
            $q.$type = $quant;
            $q.$leaf = $leaf;
            $leaf.$next4 = $q;
            return $q;
        case -1073741761:
            jur_Lexer_movePointer($q);
            $term = new jur_ReluctantAltQuantifierSet;
            var$7 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$7 + 1 | 0;
            $q = new jl_AbstractStringBuilder;
            jl_Object__init_($q);
            $q.$buffer = $rt_createCharArray(20);
            $term.$index1 = (jl_AbstractStringBuilder_insert0($q, $q.$length0, var$7, 10)).$toString();
            $term.$next4 = $last;
            $term.$innerSet = $leaf;
            $term.$type = (-1073741761);
            $term.$leaf = $leaf;
            return $term;
        case -1073741701:
            $term = new jur_ReluctantCompositeQuantifierSet;
            $q_0 = $q.$curST;
            jur_Lexer_movePointer($q);
            $q = $q_0;
            var$7 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$7 + 1 | 0;
            $q_0 = new jl_AbstractStringBuilder;
            jl_Object__init_($q_0);
            $q_0.$buffer = $rt_createCharArray(20);
            $term.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
            $term.$next4 = $last;
            $term.$innerSet = $leaf;
            $term.$type = (-1073741701);
            $term.$leaf = $leaf;
            $term.$quantifier0 = $q;
            return $term;
        case -536870870:
        case -536870869:
            jur_Lexer_movePointer($q);
            $q = new jur_LeafQuantifierSet;
            var$5 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$5 + 1 | 0;
            $term = new jl_AbstractStringBuilder;
            $term.$buffer = $rt_createCharArray(20);
            $q.$index1 = (jl_AbstractStringBuilder_insert0($term, $term.$length0, var$5, 10)).$toString();
            $q.$next4 = $last;
            $q.$innerSet = $leaf;
            $q.$type = $quant;
            $q.$leaf = $leaf;
            $leaf.$next4 = $q;
            return $q;
        case -536870849:
            jur_Lexer_movePointer($q);
            $term = new jur_AltQuantifierSet;
            var$7 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$7 + 1 | 0;
            $q = new jl_AbstractStringBuilder;
            $q.$buffer = $rt_createCharArray(20);
            $term.$index1 = (jl_AbstractStringBuilder_insert0($q, $q.$length0, var$7, 10)).$toString();
            $term.$next4 = $last;
            $term.$innerSet = $leaf;
            $term.$type = (-536870849);
            $term.$leaf = $leaf;
            return $term;
        case -536870789:
            $term = new jur_CompositeQuantifierSet;
            $q_0 = $q.$curST;
            jur_Lexer_movePointer($q);
            $q = $q_0;
            var$7 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$7 + 1 | 0;
            $q_0 = new jl_AbstractStringBuilder;
            $q_0.$buffer = $rt_createCharArray(20);
            $term.$index1 = (jl_AbstractStringBuilder_insert0($q_0, $q_0.$length0, var$7, 10)).$toString();
            $term.$next4 = $last;
            $term.$innerSet = $leaf;
            $term.$type = (-536870789);
            $term.$leaf = $leaf;
            $term.$quantifier0 = $q;
            return $term;
        default:
    }
    return $term;
},
jur_Pattern_processTerminal = ($this, $last) => {
    let $term, var$3, var$4, $ch, $newFlags, $cc, $negative, $number, var$10, var$11, var$12;
    $term = null;
    var$3 = $last instanceof jur_FinalSet;
    while (true) {
        a: {
            var$4 = $this.$lexemes;
            $ch = var$4.$ch;
            if (($ch & (-2147418113)) == (-2147483608)) {
                jur_Lexer_movePointer(var$4);
                $newFlags = ($ch & 16711680) >> 16;
                $ch = $ch & (-16711681);
                if ($ch == (-16777176))
                    $this.$flags1 = $newFlags;
                else {
                    if ($ch != (-1073741784))
                        $newFlags = $this.$flags1;
                    $term = jur_Pattern_processExpression($this, $ch, $newFlags, $last);
                    var$4 = $this.$lexemes;
                    if (var$4.$ch != (-536870871)) {
                        $last = new jur_PatternSyntaxException;
                        $cc = var$4.$orig;
                        $negative = var$4.$curToc;
                        $last.$suppressionEnabled = 1;
                        $last.$writableStackTrace = 1;
                        $last.$index3 = (-1);
                        $last.$desc = $rt_s(3);
                        $last.$pattern = $cc;
                        $last.$index3 = $negative;
                        $rt_throw($last);
                    }
                    jur_Lexer_movePointer(var$4);
                }
            } else {
                b: {
                    c: {
                        switch ($ch) {
                            case -2147483599:
                            case -2147483598:
                            case -2147483597:
                            case -2147483596:
                            case -2147483595:
                            case -2147483594:
                            case -2147483593:
                            case -2147483592:
                            case -2147483591:
                                $number = ($ch & 2147483647) - 48 | 0;
                                if ($this.$globalGroupIndex < $number) {
                                    $term = new jur_PatternSyntaxException;
                                    $cc = var$4.$orig;
                                    $negative = var$4.$curToc;
                                    $term.$suppressionEnabled = 1;
                                    $term.$writableStackTrace = 1;
                                    $term.$index3 = (-1);
                                    $term.$desc = $rt_s(3);
                                    $term.$pattern = $cc;
                                    $term.$index3 = $negative;
                                    $rt_throw($term);
                                }
                                jur_Lexer_movePointer(var$4);
                                var$10 = $this.$consCount + 1 | 0;
                                $this.$consCount = var$10;
                                $newFlags = $this.$flags1;
                                if (!(($newFlags & 2) != 2 ? 0 : 1)) {
                                    $term = new jur_BackReferenceSet;
                                    jur_JointSet__init_($term);
                                    $term.$referencedGroup = $number;
                                    $term.$consCounter = var$10;
                                } else if (!(($newFlags & 64) != 64 ? 0 : 1)) {
                                    $term = new jur_CIBackReferenceSet;
                                    jur_JointSet__init_($term);
                                    $term.$referencedGroup = $number;
                                    $term.$consCounter = var$10;
                                } else {
                                    $term = new jur_UCIBackReferenceSet;
                                    jur_JointSet__init_($term);
                                    $term.$referencedGroup = $number;
                                    $term.$consCounter = var$10;
                                }
                                $this.$backRefs.data[$number].$isBackReferenced = 1;
                                $this.$needsBackRefReplacement = 1;
                                break a;
                            case -2147483583:
                                break;
                            case -2147483582:
                                jur_Lexer_movePointer(var$4);
                                $term = new jur_WordBoundary;
                                $newFlags = jur_AbstractSet_counter;
                                jur_AbstractSet_counter = $newFlags + 1 | 0;
                                var$4 = new jl_AbstractStringBuilder;
                                var$4.$buffer = $rt_createCharArray(20);
                                $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                $term.$positive = 0;
                                break a;
                            case -2147483577:
                                jur_Lexer_movePointer(var$4);
                                $term = jur_PreviousMatch__init_0();
                                break a;
                            case -2147483558:
                                jur_Lexer_movePointer(var$4);
                                $term = new jur_EOLSet;
                                $number = $this.$consCount + 1 | 0;
                                $this.$consCount = $number;
                                $newFlags = jur_AbstractSet_counter;
                                jur_AbstractSet_counter = $newFlags + 1 | 0;
                                var$4 = new jl_AbstractStringBuilder;
                                var$4.$buffer = $rt_createCharArray(20);
                                $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                $term.$consCounter0 = $number;
                                break a;
                            case -2147483550:
                                jur_Lexer_movePointer(var$4);
                                $term = new jur_WordBoundary;
                                $newFlags = jur_AbstractSet_counter;
                                jur_AbstractSet_counter = $newFlags + 1 | 0;
                                var$4 = new jl_AbstractStringBuilder;
                                var$4.$buffer = $rt_createCharArray(20);
                                $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                $term.$positive = 1;
                                break a;
                            case -2147483526:
                                jur_Lexer_movePointer(var$4);
                                $term = jur_EOISet__init_0();
                                break a;
                            case -536870876:
                                jur_Lexer_movePointer(var$4);
                                $number = $this.$consCount + 1 | 0;
                                $this.$consCount = $number;
                                $newFlags = $this.$flags1;
                                if (($newFlags & 8) != 8 ? 0 : 1) {
                                    if (($newFlags & 1) != 1 ? 0 : 1) {
                                        $term = new jur_UMultiLineEOLSet;
                                        $newFlags = jur_AbstractSet_counter;
                                        jur_AbstractSet_counter = $newFlags + 1 | 0;
                                        var$4 = new jl_AbstractStringBuilder;
                                        var$4.$buffer = $rt_createCharArray(20);
                                        $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                        $term.$consCounter3 = $number;
                                        break a;
                                    }
                                    $term = new jur_MultiLineEOLSet;
                                    $newFlags = jur_AbstractSet_counter;
                                    jur_AbstractSet_counter = $newFlags + 1 | 0;
                                    var$4 = new jl_AbstractStringBuilder;
                                    var$4.$buffer = $rt_createCharArray(20);
                                    $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                    $term.$consCounter1 = $number;
                                    break a;
                                }
                                if (($newFlags & 1) != 1 ? 0 : 1) {
                                    $term = new jur_UEOLSet;
                                    $newFlags = jur_AbstractSet_counter;
                                    jur_AbstractSet_counter = $newFlags + 1 | 0;
                                    var$4 = new jl_AbstractStringBuilder;
                                    var$4.$buffer = $rt_createCharArray(20);
                                    $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                    $term.$consCounter2 = $number;
                                    break a;
                                }
                                $term = new jur_EOLSet;
                                $newFlags = jur_AbstractSet_counter;
                                jur_AbstractSet_counter = $newFlags + 1 | 0;
                                var$4 = new jl_AbstractStringBuilder;
                                var$4.$buffer = $rt_createCharArray(20);
                                $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                $term.$consCounter0 = $number;
                                break a;
                            case -536870866:
                                break c;
                            case -536870821:
                                jur_Lexer_movePointer(var$4);
                                $negative = 0;
                                $term = $this.$lexemes;
                                if ($term.$ch == (-536870818)) {
                                    $negative = 1;
                                    jur_Lexer_movePointer($term);
                                }
                                $term = jur_Pattern_processRangeSet($this, jur_Pattern_processRangeExpression($this, $negative));
                                $term.$setNext($last);
                                var$4 = $this.$lexemes;
                                $negative = var$4.$ch;
                                if ($negative != (-536870819)) {
                                    $last = new jur_PatternSyntaxException;
                                    $cc = var$4.$orig;
                                    $negative = var$4.$curToc;
                                    $last.$suppressionEnabled = 1;
                                    $last.$writableStackTrace = 1;
                                    $last.$index3 = (-1);
                                    $last.$desc = $rt_s(3);
                                    $last.$pattern = $cc;
                                    $last.$index3 = $negative;
                                    $rt_throw($last);
                                }
                                var$4.$mode3 = 1;
                                var$4.$lookAhead = $negative;
                                var$4.$lookAheadST = var$4.$curST;
                                var$4.$index0 = var$4.$lookAheadToc;
                                var$4.$lookAheadToc = var$4.$curToc;
                                jur_Lexer_movePointer(var$4);
                                jur_Lexer_movePointer($this.$lexemes);
                                break a;
                            case -536870818:
                                break b;
                            case 0:
                                $term = var$4.$curST;
                                $cc = $term;
                                if ($cc !== null)
                                    $term = jur_Pattern_processRangeSet($this, $cc);
                                else {
                                    if (!$ch && !var$4.$lookAhead && var$4.$index0 == var$4.$patternFullLength && !($term === null ? 0 : 1) ? 1 : 0) {
                                        $term = new jur_EmptySet;
                                        $newFlags = jur_AbstractSet_counter;
                                        jur_AbstractSet_counter = $newFlags + 1 | 0;
                                        var$4 = new jl_AbstractStringBuilder;
                                        var$4.$buffer = $rt_createCharArray(20);
                                        $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                        $term.$next4 = $last;
                                        $term.$charCount0 = 1;
                                        $term.$type = 1;
                                        $term.$charCount0 = 0;
                                        break a;
                                    }
                                    $term = new jur_CharSet;
                                    $number = $ch & 65535;
                                    $newFlags = jur_AbstractSet_counter;
                                    jur_AbstractSet_counter = $newFlags + 1 | 0;
                                    var$4 = new jl_AbstractStringBuilder;
                                    var$4.$buffer = $rt_createCharArray(20);
                                    $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                    $term.$charCount0 = 1;
                                    $term.$ch0 = $number;
                                }
                                jur_Lexer_movePointer($this.$lexemes);
                                break a;
                            default:
                                if ($ch >= 0 && !(var$4.$curST === null ? 0 : 1)) {
                                    $term = jur_Pattern_processCharSet($this, $ch);
                                    jur_Lexer_movePointer($this.$lexemes);
                                    break a;
                                }
                                if ($ch == (-536870788)) {
                                    $term = new jur_EmptySet;
                                    $newFlags = jur_AbstractSet_counter;
                                    jur_AbstractSet_counter = $newFlags + 1 | 0;
                                    var$4 = new jl_AbstractStringBuilder;
                                    var$4.$buffer = $rt_createCharArray(20);
                                    $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                    $term.$next4 = $last;
                                    $term.$charCount0 = 1;
                                    $term.$type = 1;
                                    $term.$charCount0 = 0;
                                    break a;
                                }
                                if ($ch != (-536870871)) {
                                    $term = new jur_PatternSyntaxException;
                                    $last = var$4.$curST;
                                    if ($last === null ? 0 : 1)
                                        $last = $last.$toString();
                                    else {
                                        $newFlags = $ch & 65535;
                                        $last = new jl_String;
                                        var$11 = $rt_createCharArray(1);
                                        var$12 = var$11.data;
                                        var$12[0] = $newFlags;
                                        $last.$nativeString = $rt_charArrayToString(var$11.data, 0, var$12.length);
                                    }
                                    var$4 = $this.$lexemes;
                                    $cc = var$4.$orig;
                                    $negative = var$4.$curToc;
                                    $term.$suppressionEnabled = 1;
                                    $term.$writableStackTrace = 1;
                                    $term.$index3 = (-1);
                                    $term.$desc = $last;
                                    $term.$pattern = $cc;
                                    $term.$index3 = $negative;
                                    $rt_throw($term);
                                }
                                if (var$3) {
                                    $last = new jur_PatternSyntaxException;
                                    $cc = var$4.$orig;
                                    $negative = var$4.$curToc;
                                    $last.$suppressionEnabled = 1;
                                    $last.$writableStackTrace = 1;
                                    $last.$index3 = (-1);
                                    $last.$desc = $rt_s(3);
                                    $last.$pattern = $cc;
                                    $last.$index3 = $negative;
                                    $rt_throw($last);
                                }
                                $term = new jur_EmptySet;
                                $newFlags = jur_AbstractSet_counter;
                                jur_AbstractSet_counter = $newFlags + 1 | 0;
                                var$4 = new jl_AbstractStringBuilder;
                                var$4.$buffer = $rt_createCharArray(20);
                                $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                                $term.$next4 = $last;
                                $term.$charCount0 = 1;
                                $term.$type = 1;
                                $term.$charCount0 = 0;
                                break a;
                        }
                        jur_Lexer_movePointer(var$4);
                        $term = jur_SOLSet__init_();
                        break a;
                    }
                    jur_Lexer_movePointer(var$4);
                    $newFlags = $this.$flags1;
                    if (($newFlags & 32) != 32 ? 0 : 1) {
                        $term = jur_DotAllSet__init_0();
                        break a;
                    }
                    $term = new jur_DotSet;
                    if (!($newFlags & 1)) {
                        var$4 = jur_AbstractLineTerminator_unicodeLT;
                        if (var$4 === null) {
                            var$4 = new jur_AbstractLineTerminator$2;
                            jur_AbstractLineTerminator_unicodeLT = var$4;
                        }
                    } else {
                        var$4 = jur_AbstractLineTerminator_unixLT;
                        if (var$4 === null) {
                            var$4 = new jur_AbstractLineTerminator$1;
                            jur_AbstractLineTerminator_unixLT = var$4;
                        }
                    }
                    jur_JointSet__init_($term);
                    $term.$lt0 = var$4;
                    break a;
                }
                jur_Lexer_movePointer(var$4);
                $this.$consCount = $this.$consCount + 1 | 0;
                $negative = $this.$flags1;
                if (!(($negative & 8) != 8 ? 0 : 1))
                    $term = jur_SOLSet__init_();
                else {
                    $term = new jur_MultiLineSOLSet;
                    if (!($negative & 1)) {
                        $cc = jur_AbstractLineTerminator_unicodeLT;
                        if ($cc === null) {
                            $cc = new jur_AbstractLineTerminator$2;
                            jur_AbstractLineTerminator_unicodeLT = $cc;
                        }
                    } else {
                        $cc = jur_AbstractLineTerminator_unixLT;
                        if ($cc === null) {
                            $cc = new jur_AbstractLineTerminator$1;
                            jur_AbstractLineTerminator_unixLT = $cc;
                        }
                    }
                    $newFlags = jur_AbstractSet_counter;
                    jur_AbstractSet_counter = $newFlags + 1 | 0;
                    var$4 = new jl_AbstractStringBuilder;
                    var$4.$buffer = $rt_createCharArray(20);
                    $term.$index1 = (jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, $newFlags, 10)).$toString();
                    $term.$lt1 = $cc;
                }
            }
        }
        if ($ch != (-16777176))
            break;
    }
    return $term;
},
jur_Pattern_processRangeExpression = ($this, $alt) => {
    let $res, $cur, $negative, $cs, $buffer, $intersection, $notClosed, $firstInClass, var$10, var$11, $$je;
    $res = new jur_CharClass;
    $cur = $this.$flags1;
    $negative = ($cur & 2) != 2 ? 0 : 1;
    $cur = ($cur & 64) != 64 ? 0 : 1;
    $cs = new ju_BitSet;
    $cs.$data4 = $rt_createIntArray(64);
    $res.$lowHighSurrogates = $cs;
    $cs = new ju_BitSet;
    $cs.$data4 = $rt_createIntArray(2);
    $res.$bits = $cs;
    $res.$ci = $negative;
    $res.$uci = $cur;
    jur_AbstractCharClass_setNegative($res, $alt);
    $buffer = (-1);
    $intersection = 0;
    $notClosed = 0;
    $firstInClass = 1;
    a: {
        b: {
            c: while (true) {
                var$10 = $this.$lexemes;
                $alt = var$10.$ch;
                if (!$alt && !var$10.$lookAhead && var$10.$index0 == var$10.$patternFullLength && !(var$10.$curST === null ? 0 : 1) ? 1 : 0)
                    break a;
                $notClosed = $alt == (-536870819) && !$firstInClass ? 0 : 1;
                if (!$notClosed)
                    break a;
                d: {
                    switch ($alt) {
                        case -536870874:
                            if ($buffer >= 0)
                                jur_CharClass_add0($res, $buffer);
                            $cs = $this.$lexemes;
                            jur_Lexer_movePointer($cs);
                            $buffer = $cs.$lookBack;
                            $cs = $this.$lexemes;
                            if ($cs.$ch != (-536870874)) {
                                $buffer = 38;
                                break d;
                            }
                            if ($cs.$lookAhead == (-536870821)) {
                                jur_Lexer_movePointer($cs);
                                $intersection = 1;
                                $buffer = (-1);
                                break d;
                            }
                            jur_Lexer_movePointer($cs);
                            if ($firstInClass) {
                                $res = jur_Pattern_processRangeExpression($this, 0);
                                break d;
                            }
                            if ($this.$lexemes.$ch == (-536870819))
                                break d;
                            jur_CharClass_intersection($res, jur_Pattern_processRangeExpression($this, 0));
                            break d;
                        case -536870867:
                            if (!$firstInClass) {
                                $alt = var$10.$lookAhead;
                                if ($alt != (-536870819) && $alt != (-536870821) && $buffer >= 0) {
                                    jur_Lexer_movePointer(var$10);
                                    var$10 = $this.$lexemes;
                                    $cur = var$10.$ch;
                                    if (var$10.$curST === null ? 0 : 1)
                                        break c;
                                    if ($cur < 0) {
                                        $alt = var$10.$lookAhead;
                                        if ($alt != (-536870819) && $alt != (-536870821) && $buffer >= 0)
                                            break c;
                                    }
                                    e: {
                                        try {
                                            if (jur_Lexer_isLetter($cur))
                                                break e;
                                            $cur = $cur & 65535;
                                            break e;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                break b;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                    }
                                    try {
                                        jur_CharClass_add($res, $buffer, $cur);
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            break b;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    jur_Lexer_movePointer($this.$lexemes);
                                    $buffer = (-1);
                                    break d;
                                }
                            }
                            if ($buffer >= 0)
                                jur_CharClass_add0($res, $buffer);
                            $buffer = 45;
                            jur_Lexer_movePointer($this.$lexemes);
                            break d;
                        case -536870821:
                            if ($buffer >= 0) {
                                jur_CharClass_add0($res, $buffer);
                                $buffer = (-1);
                            }
                            jur_Lexer_movePointer($this.$lexemes);
                            $negative = 0;
                            $cs = $this.$lexemes;
                            if ($cs.$ch == (-536870818)) {
                                jur_Lexer_movePointer($cs);
                                $negative = 1;
                            }
                            if (!$intersection)
                                jur_CharClass_union($res, jur_Pattern_processRangeExpression($this, $negative));
                            else
                                jur_CharClass_intersection($res, jur_Pattern_processRangeExpression($this, $negative));
                            $intersection = 0;
                            jur_Lexer_movePointer($this.$lexemes);
                            break d;
                        case -536870819:
                            break;
                        case -536870818:
                            if ($buffer >= 0)
                                jur_CharClass_add0($res, $buffer);
                            $buffer = 94;
                            jur_Lexer_movePointer($this.$lexemes);
                            break d;
                        case 0:
                            if ($buffer >= 0)
                                jur_CharClass_add0($res, $buffer);
                            $cs = $this.$lexemes.$curST;
                            if ($cs === null)
                                $buffer = 0;
                            else {
                                jur_CharClass_add1($res, $cs);
                                $buffer = (-1);
                            }
                            jur_Lexer_movePointer($this.$lexemes);
                            break d;
                        default:
                            if ($buffer >= 0)
                                jur_CharClass_add0($res, $buffer);
                            $cs = $this.$lexemes;
                            jur_Lexer_movePointer($cs);
                            $buffer = $cs.$lookBack;
                            break d;
                    }
                    if ($buffer >= 0)
                        jur_CharClass_add0($res, $buffer);
                    $buffer = 93;
                    jur_Lexer_movePointer($this.$lexemes);
                }
                $firstInClass = 0;
            }
            $res = new jur_PatternSyntaxException;
            var$11 = var$10.$orig;
            $buffer = var$10.$curToc;
            $res.$suppressionEnabled = 1;
            $res.$writableStackTrace = 1;
            $res.$index3 = (-1);
            $res.$desc = $rt_s(3);
            $res.$pattern = var$11;
            $res.$index3 = $buffer;
            $rt_throw($res);
        }
        $res = new jur_PatternSyntaxException;
        var$10 = $this.$lexemes;
        var$11 = var$10.$orig;
        $buffer = var$10.$curToc;
        $res.$suppressionEnabled = 1;
        $res.$writableStackTrace = 1;
        $res.$index3 = (-1);
        $res.$desc = $rt_s(3);
        $res.$pattern = var$11;
        $res.$index3 = $buffer;
        $rt_throw($res);
    }
    if (!$notClosed) {
        if ($buffer >= 0)
            jur_CharClass_add0($res, $buffer);
        return $res;
    }
    $res = new jur_PatternSyntaxException;
    var$11 = var$10.$orig;
    $alt = var$10.$curToc - 1 | 0;
    $res.$suppressionEnabled = 1;
    $res.$writableStackTrace = 1;
    $res.$index3 = (-1);
    $res.$desc = $rt_s(3);
    $res.$pattern = var$11;
    $res.$index3 = $alt;
    $rt_throw($res);
},
jur_Pattern_processCharSet = ($this, $ch) => {
    let $isSupplCodePoint, var$3, var$4, var$5, var$6, var$7;
    $isSupplCodePoint = $ch >= 65536 && $ch <= 1114111 ? 1 : 0;
    var$3 = $this.$flags1;
    if ((var$3 & 2) != 2 ? 0 : 1) {
        a: {
            if (!($ch >= 97 && $ch <= 122)) {
                if ($ch < 65)
                    break a;
                if ($ch > 90)
                    break a;
            }
            var$4 = new jur_CICharSet;
            $ch = $ch & 65535;
            var$5 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$5 + 1 | 0;
            var$6 = new jl_AbstractStringBuilder;
            var$6.$buffer = $rt_createCharArray(20);
            var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$5, 10)).$toString();
            var$4.$charCount0 = 1;
            var$4.$ch2 = $ch;
            var$4.$supplement = jur_Pattern_getSupplement($ch);
            return var$4;
        }
        if (((var$3 & 64) != 64 ? 0 : 1) && $ch > 128) {
            if ($isSupplCodePoint) {
                var$4 = new jur_UCISupplCharSet;
                var$5 = jur_AbstractSet_counter;
                jur_AbstractSet_counter = var$5 + 1 | 0;
                var$6 = new jl_AbstractStringBuilder;
                var$6.$buffer = $rt_createCharArray(20);
                var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$5, 10)).$toString();
                var$4.$charCount0 = 1;
                var$4.$charCount0 = 2;
                if (jl_Character_upperCaseMapping === null) {
                    if (jl_Character_$$metadata$$1 === null)
                        jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                    jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
                }
                $ch = jl_Character_mapChar(jl_Character_upperCaseMapping, $ch);
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                var$4.$ch4 = jl_Character_mapChar(jl_Character_lowerCaseMapping, $ch);
                return var$4;
            }
            if ($ch <= 57343 && $ch >= 56320 ? 1 : 0) {
                var$4 = new jur_LowSurrogateCharSet;
                $ch = $ch & 65535;
                jur_JointSet__init_(var$4);
                var$4.$low = $ch;
                return var$4;
            }
            if ($ch <= 56319 && $ch >= 55296 ? 1 : 0) {
                var$4 = new jur_HighSurrogateCharSet;
                $ch = $ch & 65535;
                jur_JointSet__init_(var$4);
                var$4.$high = $ch;
                return var$4;
            }
            var$4 = new jur_UCICharSet;
            $ch = $ch & 65535;
            var$5 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$5 + 1 | 0;
            var$6 = new jl_AbstractStringBuilder;
            var$6.$buffer = $rt_createCharArray(20);
            var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$5, 10)).$toString();
            var$4.$charCount0 = 1;
            if (jl_Character_upperCaseMapping === null) {
                if (jl_Character_$$metadata$$1 === null)
                    jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
            }
            $ch = jl_Character_mapChar(jl_Character_upperCaseMapping, $ch) & 65535;
            if (jl_Character_lowerCaseMapping === null) {
                if (jl_Character_$$metadata$$0 === null)
                    jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
            }
            var$4.$ch3 = jl_Character_mapChar(jl_Character_lowerCaseMapping, $ch) & 65535;
            return var$4;
        }
    }
    if ($isSupplCodePoint) {
        var$4 = new jur_SupplCharSet;
        var$5 = jur_AbstractSet_counter;
        jur_AbstractSet_counter = var$5 + 1 | 0;
        var$6 = new jl_AbstractStringBuilder;
        var$6.$buffer = $rt_createCharArray(20);
        var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$5, 10)).$toString();
        var$4.$charCount0 = 1;
        var$4.$charCount0 = 2;
        var$4.$ch1 = $ch;
        var$7 = (jl_Character_toChars($ch)).data;
        var$4.$high0 = var$7[0];
        var$4.$low0 = var$7[1];
        return var$4;
    }
    if ($ch <= 57343 && $ch >= 56320 ? 1 : 0) {
        var$4 = new jur_LowSurrogateCharSet;
        $ch = $ch & 65535;
        jur_JointSet__init_(var$4);
        var$4.$low = $ch;
        return var$4;
    }
    if ($ch <= 56319 && $ch >= 55296 ? 1 : 0) {
        var$4 = new jur_HighSurrogateCharSet;
        $ch = $ch & 65535;
        jur_JointSet__init_(var$4);
        var$4.$high = $ch;
        return var$4;
    }
    var$4 = new jur_CharSet;
    $ch = $ch & 65535;
    var$5 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$5 + 1 | 0;
    var$6 = new jl_AbstractStringBuilder;
    var$6.$buffer = $rt_createCharArray(20);
    var$4.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$5, 10)).$toString();
    var$4.$charCount0 = 1;
    var$4.$ch0 = $ch;
    return var$4;
},
jur_Pattern_processRangeSet = ($this, $charClass) => {
    let $surrogates, var$3, $lowHighSurrRangeSet, var$5, var$6, var$7;
    if (!jur_AbstractCharClass_hasLowHighSurrogates($charClass)) {
        if ($charClass.$mayContainSupplCodepoints) {
            if (!$charClass.$hasUCI()) {
                $surrogates = new jur_SupplRangeSet;
                jur_JointSet__init_($surrogates);
                $surrogates.$chars = $charClass.$getInstance();
                $surrogates.$alt0 = $charClass.$alt;
                return $surrogates;
            }
            $surrogates = new jur_UCISupplRangeSet;
            jur_JointSet__init_($surrogates);
            $surrogates.$chars = $charClass.$getInstance();
            $surrogates.$alt0 = $charClass.$alt;
            return $surrogates;
        }
        if ($charClass.$hasUCI()) {
            $surrogates = new jur_UCIRangeSet;
            var$3 = jur_AbstractSet_counter;
            jur_AbstractSet_counter = var$3 + 1 | 0;
            $lowHighSurrRangeSet = new jl_AbstractStringBuilder;
            $lowHighSurrRangeSet.$buffer = $rt_createCharArray(20);
            $surrogates.$index1 = (jl_AbstractStringBuilder_insert0($lowHighSurrRangeSet, $lowHighSurrRangeSet.$length0, var$3, 10)).$toString();
            $surrogates.$charCount0 = 1;
            $surrogates.$chars1 = $charClass.$getInstance();
            $surrogates.$alt2 = $charClass.$alt;
            return $surrogates;
        }
        $surrogates = new jur_RangeSet;
        var$3 = jur_AbstractSet_counter;
        jur_AbstractSet_counter = var$3 + 1 | 0;
        $lowHighSurrRangeSet = new jl_AbstractStringBuilder;
        $lowHighSurrRangeSet.$buffer = $rt_createCharArray(20);
        $surrogates.$index1 = (jl_AbstractStringBuilder_insert0($lowHighSurrRangeSet, $lowHighSurrRangeSet.$length0, var$3, 10)).$toString();
        $surrogates.$charCount0 = 1;
        $surrogates.$chars0 = $charClass.$getInstance();
        $surrogates.$alt1 = $charClass.$alt;
        return $surrogates;
    }
    $surrogates = jur_AbstractCharClass_getSurrogates($charClass);
    $lowHighSurrRangeSet = new jur_LowHighSurrogateRangeSet;
    jur_JointSet__init_($lowHighSurrRangeSet);
    $lowHighSurrRangeSet.$surrChars = $surrogates;
    $lowHighSurrRangeSet.$alt3 = $surrogates.$alt;
    if ($charClass.$mayContainSupplCodepoints) {
        if (!$charClass.$hasUCI()) {
            $surrogates = new jur_CompositeRangeSet;
            var$5 = new jur_SupplRangeSet;
            $charClass = jur_AbstractCharClass_getWithoutSurrogates($charClass);
            jur_JointSet__init_(var$5);
            var$5.$chars = $charClass;
            var$5.$alt0 = $charClass.$alt;
            jur_JointSet__init_($surrogates);
            $surrogates.$withoutSurrogates = var$5;
            $surrogates.$withSurrogates = $lowHighSurrRangeSet;
            return $surrogates;
        }
        $surrogates = new jur_CompositeRangeSet;
        var$5 = new jur_UCISupplRangeSet;
        $charClass = jur_AbstractCharClass_getWithoutSurrogates($charClass);
        jur_JointSet__init_(var$5);
        var$5.$chars = $charClass;
        var$5.$alt0 = $charClass.$alt;
        jur_JointSet__init_($surrogates);
        $surrogates.$withoutSurrogates = var$5;
        $surrogates.$withSurrogates = $lowHighSurrRangeSet;
        return $surrogates;
    }
    if ($charClass.$hasUCI()) {
        $surrogates = new jur_CompositeRangeSet;
        var$5 = new jur_UCIRangeSet;
        $charClass = jur_AbstractCharClass_getWithoutSurrogates($charClass);
        var$3 = jur_AbstractSet_counter;
        jur_AbstractSet_counter = var$3 + 1 | 0;
        var$6 = new jl_AbstractStringBuilder;
        var$6.$buffer = $rt_createCharArray(20);
        var$5.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$3, 10)).$toString();
        var$5.$charCount0 = 1;
        var$5.$chars1 = $charClass;
        var$5.$alt2 = $charClass.$alt;
        jur_JointSet__init_($surrogates);
        $surrogates.$withoutSurrogates = var$5;
        $surrogates.$withSurrogates = $lowHighSurrRangeSet;
        return $surrogates;
    }
    $surrogates = new jur_CompositeRangeSet;
    var$5 = new jur_RangeSet;
    $charClass = jur_AbstractCharClass_getWithoutSurrogates($charClass);
    var$7 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$7 + 1 | 0;
    var$6 = new jl_AbstractStringBuilder;
    var$6.$buffer = $rt_createCharArray(20);
    var$5.$index1 = (jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$7, 10)).$toString();
    var$5.$charCount0 = 1;
    var$5.$chars0 = $charClass;
    var$5.$alt1 = $charClass.$alt;
    jur_JointSet__init_($surrogates);
    $surrogates.$withoutSurrogates = var$5;
    $surrogates.$withSurrogates = $lowHighSurrRangeSet;
    return $surrogates;
},
jur_Pattern_getSupplement = $ch => {
    if ($ch >= 97 && $ch <= 122)
        $ch = ($ch - 32 | 0) & 65535;
    else if ($ch >= 65 && $ch <= 90)
        $ch = ($ch + 32 | 0) & 65535;
    return $ch;
},
jur_Pattern__init_ = $this => {
    $this.$backRefs = $rt_createArray(jur_FSet, 10);
    $this.$globalGroupIndex = (-1);
    $this.$compCount = (-1);
    $this.$consCount = (-1);
},
jur_Pattern__init_0 = () => {
    let var_0 = new jur_Pattern();
    jur_Pattern__init_(var_0);
    return var_0;
},
jl_Error = $rt_classWithoutFields(jl_Throwable),
jl_Error__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_Error__init_0 = () => {
    let var_0 = new jl_Error();
    jl_Error__init_(var_0);
    return var_0;
},
jl_AssertionError = $rt_classWithoutFields(jl_Error),
jl_AssertionError__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_AssertionError__init_0 = () => {
    let var_0 = new jl_AssertionError();
    jl_AssertionError__init_(var_0);
    return var_0;
};
function jt_DecimalFormatParser() {
    let a = this; jl_Object.call(a);
    a.$positivePrefix0 = null;
    a.$positiveSuffix0 = null;
    a.$negativePrefix0 = null;
    a.$negativeSuffix0 = null;
    a.$groupSize = 0;
    a.$minimumIntLength = 0;
    a.$intLength = 0;
    a.$minimumFracLength = 0;
    a.$fracLength = 0;
    a.$exponentLength = 0;
    a.$decimalSeparatorRequired = 0;
    a.$string1 = null;
    a.$index2 = 0;
    a.$multiplier0 = 0;
}
let jt_DecimalFormatParser__init_ = $this => {
    return;
},
jt_DecimalFormatParser__init_0 = () => {
    let var_0 = new jt_DecimalFormatParser();
    jt_DecimalFormatParser__init_(var_0);
    return var_0;
},
jt_DecimalFormatParser_parse = ($this, $string) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $this.$groupSize = 0;
    $this.$minimumFracLength = 0;
    $this.$fracLength = 0;
    $this.$exponentLength = 0;
    $this.$decimalSeparatorRequired = 0;
    $this.$multiplier0 = 1;
    $this.$string1 = $string;
    $this.$index2 = 0;
    $this.$positivePrefix0 = jt_DecimalFormatParser_parseText($this, 0, 0);
    if ($this.$index2 == $string.$nativeString.length) {
        var$2 = new jl_IllegalArgumentException;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1666));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $string);
        $string = new jl_String;
        var$4 = var$3.$buffer;
        var$5 = var$4.data;
        var$6 = var$3.$length0;
        var$7 = var$5.length;
        if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
            $string.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $string;
            $rt_throw(var$2);
        }
        $string = new jl_IndexOutOfBoundsException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    jt_DecimalFormatParser_parseNumber($this, 1);
    $this.$negativePrefix0 = null;
    $this.$negativeSuffix0 = null;
    if ($this.$index2 < $string.$nativeString.length) {
        var$8 = $this.$index2;
        if (!(var$8 >= 0 && var$8 < $string.$nativeString.length)) {
            $string = new jl_StringIndexOutOfBoundsException;
            $string.$suppressionEnabled = 1;
            $string.$writableStackTrace = 1;
            $rt_throw($string);
        } else if ($string.$nativeString.charCodeAt(var$8) != 59)
            $this.$positiveSuffix0 = jt_DecimalFormatParser_parseText($this, 1, 0);
    }
    if ($this.$index2 < $string.$nativeString.length) {
        var$6 = $this.$index2;
        $this.$index2 = var$6 + 1 | 0;
        if (var$6 >= 0 && var$6 < $string.$nativeString.length) {
            if ($string.$nativeString.charCodeAt(var$6) != 59) {
                var$2 = new jl_IllegalArgumentException;
                var$8 = $this.$index2;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1667));
                jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, var$8, 10);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1668));
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $string);
                $string = new jl_String;
                var$4 = var$3.$buffer;
                var$5 = var$4.data;
                var$6 = var$3.$length0;
                var$7 = var$5.length;
                if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
                    $string.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
                    var$2.$suppressionEnabled = 1;
                    var$2.$writableStackTrace = 1;
                    var$2.$message = $string;
                    $rt_throw(var$2);
                }
                $string = new jl_IndexOutOfBoundsException;
                $string.$suppressionEnabled = 1;
                $string.$writableStackTrace = 1;
                $rt_throw($string);
            }
            $this.$negativePrefix0 = jt_DecimalFormatParser_parseText($this, 0, 1);
            jt_DecimalFormatParser_parseNumber($this, 0);
            $this.$negativeSuffix0 = jt_DecimalFormatParser_parseText($this, 1, 1);
        } else {
            $string = new jl_StringIndexOutOfBoundsException;
            $string.$suppressionEnabled = 1;
            $string.$writableStackTrace = 1;
            $rt_throw($string);
        }
    }
},
jt_DecimalFormatParser_apply = ($this, $format) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$positivePrefix0;
    $format.$positivePrefix = var$2;
    $format.$positiveSuffix = $this.$positiveSuffix0;
    var$3 = $this.$negativePrefix0;
    if (var$3 !== null)
        $format.$negativePrefix = var$3;
    else {
        var$4 = var$2.data.length;
        var$3 = $rt_createArray(jt_DecimalFormat$FormatField, var$4 + 1 | 0);
        $format.$negativePrefix = var$3;
        jl_System_fastArraycopy(var$2, 0, var$3, 1, var$4);
        $format.$negativePrefix.data[0] = new jt_DecimalFormat$MinusField;
    }
    var$2 = $this.$negativeSuffix0;
    if (var$2 === null)
        var$2 = $this.$positiveSuffix0;
    $format.$negativeSuffix = var$2;
    var$5 = $this.$groupSize;
    $format.$groupingSize = var$5;
    $format.$groupingUsed = var$5 <= 0 ? 0 : 1;
    var$5 = $this.$decimalSeparatorRequired;
    if (!var$5)
        var$6 = $this.$minimumIntLength;
    else {
        var$6 = $this.$minimumIntLength;
        if (1 > var$6)
            var$6 = 1;
    }
    if (var$6 < 0)
        var$6 = 0;
    $format.$minimumIntegerDigits = var$6;
    if ($format.$maximumIntegerDigits < var$6)
        $format.$maximumIntegerDigits = var$6;
    var$4 = $this.$intLength;
    if (var$4 < 0)
        var$4 = 0;
    $format.$maximumIntegerDigits = var$4;
    if (var$4 < var$6)
        $format.$minimumIntegerDigits = var$4;
    var$4 = $this.$minimumFracLength;
    if (var$4 < 0)
        var$4 = 0;
    $format.$minimumFractionDigits = var$4;
    if ($format.$maximumFractionDigits < var$4)
        $format.$maximumFractionDigits = var$4;
    var$6 = $this.$fracLength;
    if (var$6 < 0)
        var$6 = 0;
    $format.$maximumFractionDigits = var$6;
    if (var$6 < var$4)
        $format.$minimumFractionDigits = var$6;
    $format.$decimalSeparatorAlwaysShown = var$5;
    $format.$exponentDigits = $this.$exponentLength;
    $format.$multiplier = $this.$multiplier0;
},
jt_DecimalFormatParser_parseText = ($this, $suffix, $end) => {
    let $fields, $sb, var$5, $c, var$7, var$8, var$9, var$10, $next, var$12;
    $fields = new ju_ArrayList;
    $fields.$array = $rt_createArray(jl_Object, 10);
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    a: {
        b: {
            c: {
                d: {
                    e: {
                        f: {
                            g: while (true) {
                                if ($this.$index2 >= $this.$string1.$nativeString.length)
                                    break a;
                                var$5 = $this.$string1;
                                $c = $this.$index2;
                                if ($c < 0)
                                    break c;
                                if ($c >= var$5.$nativeString.length)
                                    break c;
                                h: {
                                    $c = var$5.$nativeString.charCodeAt($c);
                                    switch ($c) {
                                        case 35:
                                        case 48:
                                            if (!$suffix)
                                                break a;
                                            $fields = new jl_IllegalArgumentException;
                                            $suffix = $this.$index2;
                                            var$5 = $this.$string1;
                                            $sb = new jl_StringBuilder;
                                            $sb.$buffer = $rt_createCharArray(16);
                                            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1669));
                                            jl_AbstractStringBuilder_insert0($sb, $sb.$length0, $suffix, 10);
                                            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1668));
                                            $suffix = $sb.$length0;
                                            if (var$5 === null)
                                                var$5 = $rt_s(1);
                                            jl_AbstractStringBuilder_insert($sb, $suffix, var$5);
                                            var$5 = new jl_String;
                                            var$7 = $sb.$buffer;
                                            var$8 = var$7.data;
                                            $end = $sb.$length0;
                                            var$9 = var$8.length;
                                            if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
                                                var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
                                                $fields.$suppressionEnabled = 1;
                                                $fields.$writableStackTrace = 1;
                                                $fields.$message = var$5;
                                                $rt_throw($fields);
                                            }
                                            $fields = new jl_IndexOutOfBoundsException;
                                            $fields.$suppressionEnabled = 1;
                                            $fields.$writableStackTrace = 1;
                                            $rt_throw($fields);
                                        case 37:
                                            var$9 = $sb.$length0;
                                            if (var$9 > 0) {
                                                var$5 = new jt_DecimalFormat$TextField;
                                                var$10 = new jl_String;
                                                var$7 = $sb.$buffer;
                                                $next = var$7.data.length;
                                                if (var$9 < 0)
                                                    break g;
                                                if (var$9 > ($next - 0 | 0))
                                                    break g;
                                                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                                                var$5.$text = var$10;
                                                ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                                var$7 = $fields.$array.data;
                                                $c = $fields.$size0;
                                                $fields.$size0 = $c + 1 | 0;
                                                var$7[$c] = var$5;
                                                $fields.$modCount = $fields.$modCount + 1 | 0;
                                                $sb.$length0 = 0;
                                            }
                                            var$5 = new jt_DecimalFormat$PercentField;
                                            ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                            var$7 = $fields.$array.data;
                                            $c = $fields.$size0;
                                            $fields.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $fields.$modCount = $fields.$modCount + 1 | 0;
                                            $this.$index2 = $this.$index2 + 1 | 0;
                                            $this.$multiplier0 = 100;
                                            break h;
                                        case 39:
                                            var$9 = $this.$index2 + 1 | 0;
                                            $this.$index2 = var$9;
                                            $next = jl_String_indexOf($this.$string1, 39, var$9);
                                            if ($next < 0) {
                                                $fields = new jl_IllegalArgumentException;
                                                $suffix = $this.$index2;
                                                var$5 = $this.$string1;
                                                $sb = new jl_StringBuilder;
                                                $sb.$buffer = $rt_createCharArray(16);
                                                jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1670));
                                                jl_AbstractStringBuilder_insert0($sb, $sb.$length0, $suffix, 10);
                                                jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1671));
                                                $suffix = $sb.$length0;
                                                if (var$5 === null)
                                                    var$5 = $rt_s(1);
                                                jl_AbstractStringBuilder_insert($sb, $suffix, var$5);
                                                var$5 = new jl_String;
                                                var$7 = $sb.$buffer;
                                                var$8 = var$7.data;
                                                $end = $sb.$length0;
                                                var$9 = var$8.length;
                                                if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
                                                    var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
                                                    $fields.$suppressionEnabled = 1;
                                                    $fields.$writableStackTrace = 1;
                                                    $fields.$message = var$5;
                                                    $rt_throw($fields);
                                                }
                                                $fields = new jl_IndexOutOfBoundsException;
                                                $fields.$suppressionEnabled = 1;
                                                $fields.$writableStackTrace = 1;
                                                $rt_throw($fields);
                                            }
                                            var$9 = $this.$index2;
                                            if ($next != var$9) {
                                                var$5 = jl_String_substring($this.$string1, var$9, $next);
                                                jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$5);
                                            } else {
                                                var$12 = $sb.$length0;
                                                jl_AbstractStringBuilder_insertSpace($sb, var$12, var$12 + 1 | 0);
                                                $sb.$buffer.data[var$12] = 39;
                                            }
                                            $this.$index2 = $next + 1 | 0;
                                            break h;
                                        case 45:
                                            var$9 = $sb.$length0;
                                            if (var$9 > 0) {
                                                var$5 = new jt_DecimalFormat$TextField;
                                                var$10 = new jl_String;
                                                var$7 = $sb.$buffer;
                                                $next = var$7.data.length;
                                                if (var$9 < 0)
                                                    break f;
                                                if (var$9 > ($next - 0 | 0))
                                                    break f;
                                                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                                                var$5.$text = var$10;
                                                ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                                var$7 = $fields.$array.data;
                                                $c = $fields.$size0;
                                                $fields.$size0 = $c + 1 | 0;
                                                var$7[$c] = var$5;
                                                $fields.$modCount = $fields.$modCount + 1 | 0;
                                                $sb.$length0 = 0;
                                            }
                                            var$5 = new jt_DecimalFormat$MinusField;
                                            ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                            var$7 = $fields.$array.data;
                                            var$9 = $fields.$size0;
                                            $fields.$size0 = var$9 + 1 | 0;
                                            var$7[var$9] = var$5;
                                            $fields.$modCount = $fields.$modCount + 1 | 0;
                                            $this.$index2 = $this.$index2 + 1 | 0;
                                            break h;
                                        case 46:
                                        case 69:
                                            $fields = new jl_IllegalArgumentException;
                                            $suffix = $this.$index2;
                                            var$5 = $this.$string1;
                                            $sb = new jl_StringBuilder;
                                            $sb.$buffer = $rt_createCharArray(16);
                                            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1669));
                                            jl_AbstractStringBuilder_insert0($sb, $sb.$length0, $suffix, 10);
                                            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1668));
                                            $suffix = $sb.$length0;
                                            if (var$5 === null)
                                                var$5 = $rt_s(1);
                                            jl_AbstractStringBuilder_insert($sb, $suffix, var$5);
                                            var$5 = new jl_String;
                                            var$7 = $sb.$buffer;
                                            var$8 = var$7.data;
                                            $end = $sb.$length0;
                                            var$9 = var$8.length;
                                            if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
                                                var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
                                                $fields.$suppressionEnabled = 1;
                                                $fields.$writableStackTrace = 1;
                                                $fields.$message = var$5;
                                                $rt_throw($fields);
                                            }
                                            $fields = new jl_IndexOutOfBoundsException;
                                            $fields.$suppressionEnabled = 1;
                                            $fields.$writableStackTrace = 1;
                                            $rt_throw($fields);
                                        case 59:
                                            break b;
                                        case 164:
                                            $next = $sb.$length0;
                                            if ($next > 0) {
                                                var$10 = new jt_DecimalFormat$TextField;
                                                var$5 = new jl_String;
                                                var$7 = $sb.$buffer;
                                                $c = var$7.data.length;
                                                if ($next < 0)
                                                    break e;
                                                if ($next > ($c - 0 | 0))
                                                    break e;
                                                var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $next);
                                                var$10.$text = var$5;
                                                ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                                var$7 = $fields.$array.data;
                                                $c = $fields.$size0;
                                                $fields.$size0 = $c + 1 | 0;
                                                var$7[$c] = var$10;
                                                $fields.$modCount = $fields.$modCount + 1 | 0;
                                                $sb.$length0 = 0;
                                            }
                                            var$5 = new jt_DecimalFormat$CurrencyField;
                                            ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                            var$7 = $fields.$array.data;
                                            $c = $fields.$size0;
                                            $fields.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $fields.$modCount = $fields.$modCount + 1 | 0;
                                            $this.$index2 = $this.$index2 + 1 | 0;
                                            break h;
                                        case 8240:
                                            $next = $sb.$length0;
                                            if ($next > 0) {
                                                var$10 = new jt_DecimalFormat$TextField;
                                                var$5 = new jl_String;
                                                var$7 = $sb.$buffer;
                                                $c = var$7.data.length;
                                                if ($next < 0)
                                                    break d;
                                                if ($next > ($c - 0 | 0))
                                                    break d;
                                                var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $next);
                                                var$10.$text = var$5;
                                                ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                                var$7 = $fields.$array.data;
                                                $c = $fields.$size0;
                                                $fields.$size0 = $c + 1 | 0;
                                                var$7[$c] = var$10;
                                                $fields.$modCount = $fields.$modCount + 1 | 0;
                                                $sb.$length0 = 0;
                                            }
                                            var$5 = new jt_DecimalFormat$PerMillField;
                                            ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
                                            var$7 = $fields.$array.data;
                                            $c = $fields.$size0;
                                            $fields.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $fields.$modCount = $fields.$modCount + 1 | 0;
                                            $this.$index2 = $this.$index2 + 1 | 0;
                                            $this.$multiplier0 = 1000;
                                            break h;
                                        default:
                                    }
                                    var$9 = $sb.$length0;
                                    jl_AbstractStringBuilder_insertSpace($sb, var$9, var$9 + 1 | 0);
                                    $sb.$buffer.data[var$9] = $c;
                                    $this.$index2 = $this.$index2 + 1 | 0;
                                }
                            }
                            $fields = new jl_IndexOutOfBoundsException;
                            $fields.$suppressionEnabled = 1;
                            $fields.$writableStackTrace = 1;
                            $rt_throw($fields);
                        }
                        $fields = new jl_IndexOutOfBoundsException;
                        $fields.$suppressionEnabled = 1;
                        $fields.$writableStackTrace = 1;
                        $rt_throw($fields);
                    }
                    $fields = new jl_IndexOutOfBoundsException;
                    $fields.$suppressionEnabled = 1;
                    $fields.$writableStackTrace = 1;
                    $rt_throw($fields);
                }
                $fields = new jl_IndexOutOfBoundsException;
                $fields.$suppressionEnabled = 1;
                $fields.$writableStackTrace = 1;
                $rt_throw($fields);
            }
            $fields = new jl_StringIndexOutOfBoundsException;
            $fields.$suppressionEnabled = 1;
            $fields.$writableStackTrace = 1;
            $rt_throw($fields);
        }
        if ($end) {
            $fields = new jl_IllegalArgumentException;
            $suffix = $this.$index2;
            var$5 = $this.$string1;
            $sb = new jl_StringBuilder;
            $sb.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1669));
            jl_AbstractStringBuilder_insert0($sb, $sb.$length0, $suffix, 10);
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1668));
            $suffix = $sb.$length0;
            if (var$5 === null)
                var$5 = $rt_s(1);
            jl_AbstractStringBuilder_insert($sb, $suffix, var$5);
            var$5 = new jl_String;
            var$7 = $sb.$buffer;
            var$8 = var$7.data;
            $end = $sb.$length0;
            var$9 = var$8.length;
            if ($end >= 0 && $end <= (var$9 - 0 | 0)) {
                var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $end);
                $fields.$suppressionEnabled = 1;
                $fields.$writableStackTrace = 1;
                $fields.$message = var$5;
                $rt_throw($fields);
            }
            $fields = new jl_IndexOutOfBoundsException;
            $fields.$suppressionEnabled = 1;
            $fields.$writableStackTrace = 1;
            $rt_throw($fields);
        }
    }
    var$9 = $sb.$length0;
    if (var$9 > 0) {
        var$10 = new jt_DecimalFormat$TextField;
        var$5 = new jl_String;
        var$7 = $sb.$buffer;
        $end = var$7.data.length;
        if (var$9 >= 0 && var$9 <= ($end - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
            var$10.$text = var$5;
            ju_ArrayList_ensureCapacity($fields, $fields.$size0 + 1 | 0);
            var$7 = $fields.$array.data;
            $end = $fields.$size0;
            $fields.$size0 = $end + 1 | 0;
            var$7[$end] = var$10;
            $fields.$modCount = $fields.$modCount + 1 | 0;
        } else {
            $fields = new jl_IndexOutOfBoundsException;
            $fields.$suppressionEnabled = 1;
            $fields.$writableStackTrace = 1;
            $rt_throw($fields);
        }
    }
    return ju_AbstractCollection_toArray($fields, $rt_createArray(jt_DecimalFormat$FormatField, $fields.$size0));
},
jt_DecimalFormatParser_parseNumber = ($this, $apply) => {
    let var$2, var$3;
    jt_DecimalFormatParser_parseIntegerPart($this, $apply);
    if ($this.$index2 < $this.$string1.$nativeString.length) {
        var$2 = $this.$string1;
        var$3 = $this.$index2;
        if (!(var$3 >= 0 && var$3 < var$2.$nativeString.length)) {
            var$2 = new jl_StringIndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        } else if (var$2.$nativeString.charCodeAt(var$3) == 46) {
            $this.$index2 = $this.$index2 + 1 | 0;
            jt_DecimalFormatParser_parseFractionalPart($this, $apply);
        }
    }
    if ($this.$index2 < $this.$string1.$nativeString.length) {
        var$2 = $this.$string1;
        var$3 = $this.$index2;
        if (!(var$3 >= 0 && var$3 < var$2.$nativeString.length)) {
            var$2 = new jl_StringIndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        } else if (var$2.$nativeString.charCodeAt(var$3) == 69) {
            $this.$index2 = $this.$index2 + 1 | 0;
            jt_DecimalFormatParser_parseExponent($this, $apply);
        }
    }
},
jt_DecimalFormatParser_parseIntegerPart = ($this, $apply) => {
    let $lastGroup, $optionalDigits, $length, $minimumLength, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    $lastGroup = $this.$index2;
    $optionalDigits = 1;
    $length = 0;
    $minimumLength = 0;
    var$6 = $lastGroup;
    a: {
        while (true) {
            if ($this.$index2 >= $this.$string1.$nativeString.length)
                break a;
            var$7 = $this.$string1;
            var$8 = $this.$index2;
            if (var$8 < 0)
                break;
            if (var$8 >= var$7.$nativeString.length)
                break;
            b: {
                c: {
                    switch (var$7.$nativeString.charCodeAt(var$8)) {
                        case 35:
                            if (!$optionalDigits) {
                                var$7 = new jl_IllegalArgumentException;
                                $apply = $this.$index2;
                                var$9 = $this.$string1;
                                var$10 = new jl_StringBuilder;
                                var$10.$buffer = $rt_createCharArray(16);
                                jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1672));
                                jl_AbstractStringBuilder_insert0(var$10, var$10.$length0, $apply, 10);
                                jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1668));
                                $apply = var$10.$length0;
                                if (var$9 === null)
                                    var$9 = $rt_s(1);
                                jl_AbstractStringBuilder_insert(var$10, $apply, var$9);
                                var$9 = new jl_String;
                                var$11 = var$10.$buffer;
                                var$12 = var$11.data;
                                $lastGroup = var$10.$length0;
                                $optionalDigits = var$12.length;
                                if ($lastGroup >= 0 && $lastGroup <= ($optionalDigits - 0 | 0)) {
                                    var$9.$nativeString = $rt_charArrayToString(var$11.data, 0, $lastGroup);
                                    var$7.$suppressionEnabled = 1;
                                    var$7.$writableStackTrace = 1;
                                    var$7.$message = var$9;
                                    $rt_throw(var$7);
                                }
                                var$7 = new jl_IndexOutOfBoundsException;
                                var$7.$suppressionEnabled = 1;
                                var$7.$writableStackTrace = 1;
                                $rt_throw(var$7);
                            }
                            $length = $length + 1 | 0;
                            break b;
                        case 44:
                            break c;
                        case 48:
                            break;
                        default:
                            break a;
                    }
                    $optionalDigits = 0;
                    $length = $length + 1 | 0;
                    $minimumLength = $minimumLength + 1 | 0;
                    break b;
                }
                var$8 = $this.$index2;
                if (var$6 == var$8) {
                    var$7 = new jl_IllegalArgumentException;
                    var$9 = $this.$string1;
                    var$10 = new jl_StringBuilder;
                    var$10.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1673));
                    jl_AbstractStringBuilder_insert0(var$10, var$10.$length0, var$8, 10);
                    jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1668));
                    $apply = var$10.$length0;
                    if (var$9 === null)
                        var$9 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$10, $apply, var$9);
                    var$9 = new jl_String;
                    var$11 = var$10.$buffer;
                    var$12 = var$11.data;
                    $lastGroup = var$10.$length0;
                    $optionalDigits = var$12.length;
                    if ($lastGroup >= 0 && $lastGroup <= ($optionalDigits - 0 | 0)) {
                        var$9.$nativeString = $rt_charArrayToString(var$11.data, 0, $lastGroup);
                        var$7.$suppressionEnabled = 1;
                        var$7.$writableStackTrace = 1;
                        var$7.$message = var$9;
                        $rt_throw(var$7);
                    }
                    var$7 = new jl_IndexOutOfBoundsException;
                    var$7.$suppressionEnabled = 1;
                    var$7.$writableStackTrace = 1;
                    $rt_throw(var$7);
                }
                if ($apply)
                    $this.$groupSize = var$8 - var$6 | 0;
                var$6 = var$8 + 1 | 0;
            }
            $this.$index2 = $this.$index2 + 1 | 0;
        }
        var$7 = new jl_StringIndexOutOfBoundsException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        $rt_throw(var$7);
    }
    if (!$length) {
        var$7 = new jl_IllegalArgumentException;
        $apply = $this.$index2;
        var$9 = $this.$string1;
        var$10 = new jl_StringBuilder;
        var$10.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1674));
        jl_AbstractStringBuilder_insert0(var$10, var$10.$length0, $apply, 10);
        jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1668));
        $apply = var$10.$length0;
        if (var$9 === null)
            var$9 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$10, $apply, var$9);
        var$9 = new jl_String;
        var$11 = var$10.$buffer;
        var$12 = var$11.data;
        $lastGroup = var$10.$length0;
        $optionalDigits = var$12.length;
        if ($lastGroup >= 0 && $lastGroup <= ($optionalDigits - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString(var$11.data, 0, $lastGroup);
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            var$7.$message = var$9;
            $rt_throw(var$7);
        }
        var$7 = new jl_IndexOutOfBoundsException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        $rt_throw(var$7);
    }
    $optionalDigits = $this.$index2;
    if (var$6 != $optionalDigits) {
        if ($apply && var$6 > $lastGroup)
            $this.$groupSize = $optionalDigits - var$6 | 0;
        if ($apply) {
            $this.$intLength = $length;
            $this.$minimumIntLength = $minimumLength;
        }
        return;
    }
    var$7 = new jl_IllegalArgumentException;
    var$9 = $this.$string1;
    var$10 = new jl_StringBuilder;
    var$10.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1675));
    jl_AbstractStringBuilder_insert0(var$10, var$10.$length0, $optionalDigits, 10);
    jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1668));
    $apply = var$10.$length0;
    if (var$9 === null)
        var$9 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$10, $apply, var$9);
    var$9 = new jl_String;
    var$11 = var$10.$buffer;
    var$12 = var$11.data;
    $lastGroup = var$10.$length0;
    $optionalDigits = var$12.length;
    if ($lastGroup >= 0 && $lastGroup <= ($optionalDigits - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$11.data, 0, $lastGroup);
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        var$7.$message = var$9;
        $rt_throw(var$7);
    }
    var$7 = new jl_IndexOutOfBoundsException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    $rt_throw(var$7);
},
jt_DecimalFormatParser_parseFractionalPart = ($this, $apply) => {
    let $optionalDigits, $length, $minimumLength, var$5, var$6, var$7, var$8, var$9, var$10;
    $optionalDigits = 0;
    $length = 0;
    $minimumLength = 0;
    a: {
        while (true) {
            if ($this.$index2 >= $this.$string1.$nativeString.length)
                break a;
            var$5 = $this.$string1;
            var$6 = $this.$index2;
            if (var$6 < 0)
                break;
            if (var$6 >= var$5.$nativeString.length)
                break;
            b: {
                switch (var$5.$nativeString.charCodeAt(var$6)) {
                    case 35:
                        break;
                    case 44:
                        var$5 = new jl_IllegalArgumentException;
                        $apply = $this.$index2;
                        var$7 = $this.$string1;
                        var$8 = new jl_StringBuilder;
                        var$8.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1676));
                        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $apply, 10);
                        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1668));
                        $apply = var$8.$length0;
                        if (var$7 === null)
                            var$7 = $rt_s(1);
                        jl_AbstractStringBuilder_insert(var$8, $apply, var$7);
                        var$7 = new jl_String;
                        var$9 = var$8.$buffer;
                        var$10 = var$9.data;
                        $optionalDigits = var$8.$length0;
                        $length = var$10.length;
                        if ($optionalDigits >= 0 && $optionalDigits <= ($length - 0 | 0)) {
                            var$7.$nativeString = $rt_charArrayToString(var$9.data, 0, $optionalDigits);
                            var$5.$suppressionEnabled = 1;
                            var$5.$writableStackTrace = 1;
                            var$5.$message = var$7;
                            $rt_throw(var$5);
                        }
                        var$5 = new jl_IndexOutOfBoundsException;
                        var$5.$suppressionEnabled = 1;
                        var$5.$writableStackTrace = 1;
                        $rt_throw(var$5);
                    case 46:
                        var$5 = new jl_IllegalArgumentException;
                        $apply = $this.$index2;
                        var$7 = $this.$string1;
                        var$8 = new jl_StringBuilder;
                        var$8.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1677));
                        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $apply, 10);
                        jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1668));
                        $apply = var$8.$length0;
                        if (var$7 === null)
                            var$7 = $rt_s(1);
                        jl_AbstractStringBuilder_insert(var$8, $apply, var$7);
                        var$7 = new jl_String;
                        var$9 = var$8.$buffer;
                        var$10 = var$9.data;
                        $optionalDigits = var$8.$length0;
                        $length = var$10.length;
                        if ($optionalDigits >= 0 && $optionalDigits <= ($length - 0 | 0)) {
                            var$7.$nativeString = $rt_charArrayToString(var$9.data, 0, $optionalDigits);
                            var$5.$suppressionEnabled = 1;
                            var$5.$writableStackTrace = 1;
                            var$5.$message = var$7;
                            $rt_throw(var$5);
                        }
                        var$5 = new jl_IndexOutOfBoundsException;
                        var$5.$suppressionEnabled = 1;
                        var$5.$writableStackTrace = 1;
                        $rt_throw(var$5);
                    case 48:
                        if ($optionalDigits) {
                            var$5 = new jl_IllegalArgumentException;
                            $apply = $this.$index2;
                            var$7 = $this.$string1;
                            var$8 = new jl_StringBuilder;
                            var$8.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1678));
                            jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $apply, 10);
                            jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1668));
                            $apply = var$8.$length0;
                            if (var$7 === null)
                                var$7 = $rt_s(1);
                            jl_AbstractStringBuilder_insert(var$8, $apply, var$7);
                            var$7 = new jl_String;
                            var$9 = var$8.$buffer;
                            var$10 = var$9.data;
                            $optionalDigits = var$8.$length0;
                            $length = var$10.length;
                            if ($optionalDigits >= 0 && $optionalDigits <= ($length - 0 | 0)) {
                                var$7.$nativeString = $rt_charArrayToString(var$9.data, 0, $optionalDigits);
                                var$5.$suppressionEnabled = 1;
                                var$5.$writableStackTrace = 1;
                                var$5.$message = var$7;
                                $rt_throw(var$5);
                            }
                            var$5 = new jl_IndexOutOfBoundsException;
                            var$5.$suppressionEnabled = 1;
                            var$5.$writableStackTrace = 1;
                            $rt_throw(var$5);
                        }
                        $length = $length + 1 | 0;
                        $minimumLength = $minimumLength + 1 | 0;
                        break b;
                    default:
                        break a;
                }
                $length = $length + 1 | 0;
                $optionalDigits = 1;
            }
            $this.$index2 = $this.$index2 + 1 | 0;
        }
        var$5 = new jl_StringIndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    if ($apply) {
        $this.$fracLength = $length;
        $this.$minimumFracLength = $minimumLength;
        $this.$decimalSeparatorRequired = $length ? 0 : 1;
    }
},
jt_DecimalFormatParser_parseExponent = ($this, $apply) => {
    let $length, var$3, var$4, var$5, var$6, var$7, var$8;
    $length = 0;
    a: {
        while (true) {
            if ($this.$index2 >= $this.$string1.$nativeString.length)
                break a;
            var$3 = $this.$string1;
            var$4 = $this.$index2;
            if (var$4 < 0)
                break;
            if (var$4 >= var$3.$nativeString.length)
                break;
            switch (var$3.$nativeString.charCodeAt(var$4)) {
                case 35:
                case 44:
                case 46:
                case 69:
                    var$3 = new jl_IllegalArgumentException;
                    $apply = $this.$index2;
                    var$5 = $this.$string1;
                    var$6 = new jl_StringBuilder;
                    var$6.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1679));
                    jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, $apply, 10);
                    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1668));
                    $apply = var$6.$length0;
                    if (var$5 === null)
                        var$5 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$6, $apply, var$5);
                    var$5 = new jl_String;
                    var$7 = var$6.$buffer;
                    var$8 = var$7.data;
                    $length = var$6.$length0;
                    var$4 = var$8.length;
                    if ($length >= 0 && $length <= (var$4 - 0 | 0)) {
                        var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $length);
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        var$3.$message = var$5;
                        $rt_throw(var$3);
                    }
                    var$3 = new jl_IndexOutOfBoundsException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                case 48:
                    break;
                default:
                    break a;
            }
            $length = $length + 1 | 0;
            $this.$index2 = $this.$index2 + 1 | 0;
        }
        var$3 = new jl_StringIndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    if ($length) {
        if ($apply)
            $this.$exponentLength = $length;
        return;
    }
    var$3 = new jl_IllegalArgumentException;
    $apply = $this.$index2;
    var$5 = $this.$string1;
    var$6 = new jl_StringBuilder;
    var$6.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1680));
    jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, $apply, 10);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1668));
    $apply = var$6.$length0;
    if (var$5 === null)
        var$5 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, $apply, var$5);
    var$5 = new jl_String;
    var$7 = var$6.$buffer;
    var$8 = var$7.data;
    $length = var$6.$length0;
    var$4 = var$8.length;
    if ($length >= 0 && $length <= (var$4 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $length);
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = var$5;
        $rt_throw(var$3);
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
};
function nms_ShapelessRecipes() {
    let a = this; jl_Object.call(a);
    a.$recipeOutput0 = null;
    a.$recipeItems2 = null;
}
let nms_ShapelessRecipes_getRecipeOutput = $this => {
    return $this.$recipeOutput0;
},
nms_ShapelessRecipes_matches = ($this, $par1InventoryCrafting, $par2World) => {
    let $var3, $var4, var$5, var$6, var$7, var$8, $var5, $var6, $var7, $var8$index, $var8$index_0, $var9;
    $var3 = new ju_ArrayList;
    $par2World = $this.$recipeItems2;
    $var4 = $par2World.$size0;
    if ($var4 < 0) {
        $par1InventoryCrafting = new jl_IllegalArgumentException;
        $par1InventoryCrafting.$suppressionEnabled = 1;
        $par1InventoryCrafting.$writableStackTrace = 1;
        $rt_throw($par1InventoryCrafting);
    }
    $var3.$array = $rt_createArray(jl_Object, $var4);
    var$5 = 0;
    var$6 = $par2World.$modCount;
    $par2World.$size();
    $var4 = 0;
    while (true) {
        var$7 = $var3.$array.data;
        var$8 = var$7.length;
        if ($var4 >= var$8) {
            $var3.$size0 = var$8;
            $var4 = 0;
            a: {
                b: while (true) {
                    if ($var4 >= 3)
                        return $var3.$size0 ? 0 : 1;
                    $var5 = 0;
                    while ($var5 < 3) {
                        c: {
                            if ($var5 >= 0) {
                                var$8 = $par1InventoryCrafting.$inventoryWidth;
                                if ($var5 < var$8) {
                                    var$8 = $var5 + $rt_imul($var4, var$8) | 0;
                                    var$7 = $par1InventoryCrafting.$stackList.data;
                                    $var6 = var$8 < var$7.length ? var$7[var$8] : null;
                                    break c;
                                }
                            }
                            $var6 = null;
                        }
                        if ($var6 !== null) {
                            $var7 = 0;
                            $var8$index = 0;
                            var$6 = $var3.$modCount;
                            var$5 = $var3.$size();
                            d: {
                                e: {
                                    while ($var8$index >= var$5 ? 0 : 1) {
                                        if (var$6 < $var3.$modCount) {
                                            $par1InventoryCrafting = new ju_ConcurrentModificationException;
                                            $par1InventoryCrafting.$suppressionEnabled = 1;
                                            $par1InventoryCrafting.$writableStackTrace = 1;
                                            $rt_throw($par1InventoryCrafting);
                                        }
                                        $var8$index_0 = $var8$index + 1 | 0;
                                        $var9 = $var3.$get($var8$index);
                                        if ($var6.$itemID == $var9.$itemID) {
                                            var$8 = $var9.$itemDamage;
                                            if (var$8 == 32767)
                                                break e;
                                            if ($var6.$itemDamage == var$8)
                                                break e;
                                        }
                                        $var8$index = $var8$index_0;
                                    }
                                    break d;
                                }
                                $var7 = 1;
                                var$8 = $var3.$size0;
                                $var8$index_0 = 0;
                                f: {
                                    while (true) {
                                        var$6 = $rt_compare($var8$index_0, var$8);
                                        if (var$6 >= 0) {
                                            $var8$index_0 = (-1);
                                            break f;
                                        }
                                        if ($var8$index_0 < 0)
                                            break a;
                                        if (var$6 >= 0)
                                            break a;
                                        $par2World = $var3.$array.data[$var8$index_0];
                                        if ($var9 === $par2World ? 1 : $var9 === null ? ($par2World !== null ? 0 : 1) : $var9 !== $par2World ? 0 : 1)
                                            break;
                                        $var8$index_0 = $var8$index_0 + 1 | 0;
                                    }
                                }
                                if ($var8$index_0 >= 0)
                                    ju_ArrayList_remove($var3, $var8$index_0);
                            }
                            if (!$var7)
                                break b;
                        }
                        $var5 = $var5 + 1 | 0;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 0;
            }
            $par1InventoryCrafting = new jl_IndexOutOfBoundsException;
            $par1InventoryCrafting.$suppressionEnabled = 1;
            $par1InventoryCrafting.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1InventoryCrafting);
            $rt_throw($par1InventoryCrafting);
        }
        if (var$6 < $par2World.$modCount)
            break;
        $var8$index_0 = var$5 + 1 | 0;
        var$7[$var4] = $par2World.$get(var$5);
        $var4 = $var4 + 1 | 0;
        var$5 = $var8$index_0;
    }
    $par1InventoryCrafting = new ju_ConcurrentModificationException;
    $par1InventoryCrafting.$suppressionEnabled = 1;
    $par1InventoryCrafting.$writableStackTrace = 1;
    $rt_throw($par1InventoryCrafting);
},
nms_ShapelessRecipes_getCraftingResult = ($this, $par1InventoryCrafting) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    $par1InventoryCrafting = $this.$recipeOutput0;
    var$2 = new nms_ItemStack;
    var$3 = $par1InventoryCrafting.$itemID;
    var$4 = $par1InventoryCrafting.$stackSize;
    var$5 = $par1InventoryCrafting.$itemDamage;
    nms_ItemStack_$callClinit();
    var$2.$itemID = var$3;
    var$2.$stackSize = var$4;
    var$2.$itemDamage = var$5;
    if (var$5 < 0)
        var$2.$itemDamage = 0;
    $par1InventoryCrafting = $par1InventoryCrafting.$stackTagCompound;
    if ($par1InventoryCrafting !== null) {
        var$6 = new nms_NBTTagCompound;
        var$7 = $par1InventoryCrafting.$name;
        if (var$7 === null)
            var$7 = $rt_s(3);
        var$6.$name = var$7;
        var$7 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$9 = var$8.data;
        var$7.$elementData = var$8;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$9.length * 0.75 | 0;
        var$6.$tagMap = var$7;
        var$10 = $par1InventoryCrafting.$tagMap;
        if (var$10.$cachedKeySet === null) {
            var$7 = new ju_HashMap$1;
            var$7.$this$0 = var$10;
            var$10.$cachedKeySet = var$7;
        }
        var$11 = var$10.$cachedKeySet.$iterator();
        while (var$11.$hasNext()) {
            var$12 = var$11.$next();
            var$7 = $par1InventoryCrafting.$tagMap;
            if (var$12 === null) {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = var$12.$hashCode1;
                var$9 = var$7.$elementData.data;
                var$7 = var$9[var$4 & (var$9.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$4) {
                        b: {
                            var$10 = var$7.$key;
                            if (var$12 !== var$10) {
                                if (var$12 === var$10)
                                    var$3 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$10 = var$10;
                                    var$3 = var$12.$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break b;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$7 = var$7 === null ? null : var$7.$value0;
            var$13 = var$7.$copy();
            var$7 = var$6.$tagMap;
            if (var$12 !== null)
                var$13.$name = var$12;
            else
                var$13.$name = $rt_s(3);
            ju_HashMap_putImpl(var$7, var$12, var$13);
        }
        var$2.$stackTagCompound = var$6;
    }
    return var$2;
},
nms_ShapelessRecipes_getRecipeSize = $this => {
    return $this.$recipeItems2.$size0;
};
function jl_Float() {
    jl_Number.call(this);
    this.$value3 = 0.0;
}
let jl_Float_TYPE = null,
jl_Float_intValue = $this => {
    return $this.$value3 | 0;
},
jl_Float_longValue = $this => {
    return Long_fromNumber($this.$value3);
},
jl_Float_doubleValue = $this => {
    return $this.$value3;
},
jl_Float_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$value3;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert5(var$2, var$2.$length0, var$1);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$2);
    $rt_throw(var$2);
},
jl_Float_equals = ($this, $other) => {
    let var$2, var$3, var$4;
    if ($this === $other)
        return 1;
    a: {
        if ($other instanceof jl_Float) {
            var$2 = $this.$value3;
            var$3 = $other.$value3;
            if (var$2 !== var$2 ? (var$3 === var$3 ? 0 : 1) : $rt_floatToRawIntBits(var$2) != $rt_floatToRawIntBits(var$3) ? 0 : 1) {
                var$4 = 1;
                break a;
            }
        }
        var$4 = 0;
    }
    return var$4;
},
jl_Float_hashCode = $this => {
    let var$1;
    var$1 = $this.$value3;
    return (isNaN(var$1) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$1);
},
jl_Float_compare = ($a, $b) => {
    let $diff, var$4, var$5;
    $diff = ($a <= $b ? 0 : 1) - ($b <= $a ? 0 : 1) | 0;
    if (!$diff) {
        var$4 = 1.0 / $a;
        var$5 = 1.0 / $b;
        $diff = (((var$4 <= var$5 ? 0 : 1) - (var$5 <= var$4 ? 0 : 1) | 0) + ($b !== $b ? 0 : 1) | 0) - ($a !== $a ? 0 : 1) | 0;
    }
    return $diff;
},
jl_Float_compareTo = ($this, var$1) => {
    return jl_Float_compare($this.$value3, var$1.$value3);
},
jl_Float__clinit_ = () => {
    jl_Float_TYPE = $rt_cls($rt_floatcls);
},
ju_NoSuchElementException = $rt_classWithoutFields(jl_RuntimeException),
ju_NoSuchElementException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ju_NoSuchElementException__init_0 = () => {
    let var_0 = new ju_NoSuchElementException();
    ju_NoSuchElementException__init_(var_0);
    return var_0;
};
function jnc_CodingErrorAction() {
    jl_Object.call(this);
    this.$name11 = null;
}
let jnc_CodingErrorAction_IGNORE = null,
jnc_CodingErrorAction_REPLACE = null,
jnc_CodingErrorAction_REPORT = null,
jnc_CodingErrorAction__clinit_ = () => {
    let var$1;
    var$1 = new jnc_CodingErrorAction;
    var$1.$name11 = $rt_s(91);
    jnc_CodingErrorAction_IGNORE = var$1;
    var$1 = new jnc_CodingErrorAction;
    var$1.$name11 = $rt_s(92);
    jnc_CodingErrorAction_REPLACE = var$1;
    var$1 = new jnc_CodingErrorAction;
    var$1.$name11 = $rt_s(93);
    jnc_CodingErrorAction_REPORT = var$1;
};
function jnc_CharsetEncoder() {
    let a = this; jl_Object.call(a);
    a.$charset0 = null;
    a.$replacement1 = null;
    a.$averageBytesPerChar = 0.0;
    a.$maxBytesPerChar = 0.0;
    a.$malformedAction = null;
    a.$unmappableAction = null;
    a.$status0 = 0;
}
let jnc_CharsetEncoder_onMalformedInput = ($this, $newAction) => {
    let var$2;
    if ($newAction !== null) {
        $this.$malformedAction = $newAction;
        return $this;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(1681);
    $rt_throw(var$2);
},
jnc_CharsetEncoder_implOnMalformedInput = ($this, $newAction) => {
    return;
},
jnc_CharsetEncoder_onUnmappableCharacter = ($this, $newAction) => {
    let var$2;
    if ($newAction !== null) {
        $this.$unmappableAction = $newAction;
        return $this;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(1681);
    $rt_throw(var$2);
},
jnc_CharsetEncoder_implOnUnmappableCharacter = ($this, $newAction) => {
    return;
},
jnc_CharsetEncoder_encode0 = ($this, $in, $out, $endOfInput) => {
    let $remaining, $result, $e, $action, var$8, var$9, var$10, $$je;
    a: {
        $remaining = $this.$status0;
        if ($remaining != 3) {
            if ($endOfInput)
                break a;
            if ($remaining != 2)
                break a;
        }
        $in = new jl_IllegalStateException;
        $in.$suppressionEnabled = 1;
        $in.$writableStackTrace = 1;
        $rt_throw($in);
    }
    $this.$status0 = !$endOfInput ? 1 : 2;
    while (true) {
        try {
            $result = jnci_BufferedEncoder_encodeLoop($this, $in, $out);
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_RuntimeException) {
                $e = $$je;
                $in = new jnc_CoderMalfunctionError;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $in.$cause = $e;
                $rt_throw($in);
            } else {
                throw $$e;
            }
        }
        $remaining = $result.$kind;
        if ($remaining ? 0 : 1) {
            if (!$endOfInput)
                return $result;
            $remaining = $in.$limit - $in.$position1 | 0;
            if ($remaining <= 0)
                return $result;
            $result = new jnc_CoderResult;
            $result.$kind = 2;
            $result.$length2 = $remaining;
        } else if ($remaining != 1 ? 0 : 1)
            break;
        $action = !($result.$kind != 3 ? 0 : 1) ? $this.$malformedAction : $this.$unmappableAction;
        b: {
            if ($action !== jnc_CodingErrorAction_REPLACE) {
                if ($action === jnc_CodingErrorAction_IGNORE)
                    break b;
                else
                    return $result;
            }
            var$8 = $out.$limit - $out.$position1 | 0;
            var$9 = $this.$replacement1;
            $remaining = var$9.data.length;
            if (var$8 < $remaining)
                return jnc_CoderResult_OVERFLOW;
            jn_ByteBuffer_put($out, var$9, 0, $remaining);
        }
        var$10 = $in.$position1;
        $remaining = $result.$kind;
        var$8 = $remaining != 2 ? 0 : 1;
        if (!(!var$8 && !($remaining != 3 ? 0 : 1) ? 0 : 1)) {
            $in = new jl_UnsupportedOperationException;
            $in.$suppressionEnabled = 1;
            $in.$writableStackTrace = 1;
            $rt_throw($in);
        }
        jn_Buffer_position($in, var$10 + $result.$length2 | 0);
    }
    return $result;
},
jnc_CharsetEncoder_encode = ($this, $in) => {
    let var$2, var$3, var$4, $output, $result, var$7, var$8, var$9, var$10, $output_0;
    var$2 = $in.$limit - $in.$position1 | 0;
    if (!var$2) {
        $in = new jn_ByteBufferImpl;
        var$3 = $rt_createByteArray(0);
        $in.$mark0 = (-1);
        $in.$capacity = 0;
        $in.$limit = 0;
        $in.$order = jn_ByteOrder_BIG_ENDIAN;
        $in.$start2 = 0;
        $in.$array2 = var$3;
        $in.$position1 = 0;
        $in.$limit = 0;
        $in.$direct = 0;
        $in.$readOnly0 = 0;
        return $in;
    }
    $this.$status0 = 0;
    var$4 = var$2 * $this.$averageBytesPerChar | 0;
    if (var$4 < 0) {
        $in = new jl_IllegalArgumentException;
        $output = new jl_StringBuilder;
        $output.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($output, $output.$length0, $rt_s(1682));
        jl_AbstractStringBuilder_insert0($output, $output.$length0, var$4, 10);
        $result = new jl_String;
        var$3 = $output.$buffer;
        var$7 = var$3.data;
        var$2 = $output.$length0;
        var$8 = var$7.length;
        if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
            $result.$nativeString = $rt_charArrayToString(var$3.data, 0, var$2);
            $in.$suppressionEnabled = 1;
            $in.$writableStackTrace = 1;
            $in.$message = $result;
            $rt_throw($in);
        }
        $in = new jl_IndexOutOfBoundsException;
        $in.$suppressionEnabled = 1;
        $in.$writableStackTrace = 1;
        $rt_throw($in);
    }
    $output = new jn_ByteBufferImpl;
    var$3 = $rt_createByteArray(var$4);
    $output.$mark0 = (-1);
    $output.$capacity = var$4;
    $output.$limit = var$4;
    $output.$order = jn_ByteOrder_BIG_ENDIAN;
    $output.$start2 = 0;
    $output.$array2 = var$3;
    $output.$position1 = 0;
    $output.$limit = var$4;
    $output.$direct = 0;
    $output.$readOnly0 = 0;
    while (true) {
        $result = jnc_CharsetEncoder_encode0($this, $in, $output, 0);
        if ($result === jnc_CoderResult_UNDERFLOW) {
            $in = jnc_CharsetEncoder_encode0($this, $in, $output, 1);
            var$2 = $in.$kind;
            var$4 = var$2 != 2 ? 0 : 1;
            var$4 = !var$4 && !(var$2 != 3 ? 0 : 1) ? 0 : 1;
            a: {
                if (var$4) {
                    switch (var$2) {
                        case 0:
                            break;
                        case 1:
                            $in = new jnc_BufferOverflowException;
                            $in.$suppressionEnabled = 1;
                            $in.$writableStackTrace = 1;
                            $rt_throw($in);
                        case 2:
                            $output = new jnc_MalformedInputException;
                            var$4 = $in.$length2;
                            $output.$suppressionEnabled = 1;
                            $output.$writableStackTrace = 1;
                            $output.$length6 = var$4;
                            $rt_throw($output);
                        case 3:
                            $output = new jnc_UnmappableCharacterException;
                            var$4 = $in.$length2;
                            $output.$suppressionEnabled = 1;
                            $output.$writableStackTrace = 1;
                            $output.$length5 = var$4;
                            $rt_throw($output);
                        default:
                            break a;
                    }
                    $in = new jnc_BufferUnderflowException;
                    $in.$suppressionEnabled = 1;
                    $in.$writableStackTrace = 1;
                    $rt_throw($in);
                }
            }
            b: {
                while (true) {
                    var$2 = $this.$status0;
                    if (var$2 != 2 && var$2 != 4) {
                        $in = new jl_IllegalStateException;
                        $in.$suppressionEnabled = 1;
                        $in.$writableStackTrace = 1;
                        $rt_throw($in);
                    }
                    $in = jnc_CoderResult_UNDERFLOW;
                    if ($in === $in)
                        $this.$status0 = 3;
                    var$2 = $in.$kind;
                    if (var$2 ? 0 : 1)
                        break;
                    if (!(var$2 != 1 ? 0 : 1))
                        continue;
                    var$9 = $output.$array2.data;
                    var$2 = var$9.length;
                    var$8 = var$2 * 2 | 0;
                    var$7 = $rt_createByteArray(var$8);
                    if (var$8 < var$2)
                        var$2 = var$8;
                    var$3 = var$7.data;
                    var$8 = 0;
                    while (var$8 < var$2) {
                        var$3[var$8] = var$9[var$8];
                        var$8 = var$8 + 1 | 0;
                    }
                    var$2 = var$3.length;
                    if (var$2 < 0)
                        break b;
                    if (var$2 > (var$2 - 0 | 0))
                        break b;
                    $in = new jn_ByteBufferImpl;
                    var$10 = 0 + var$2 | 0;
                    $in.$mark0 = (-1);
                    $in.$capacity = var$2;
                    $in.$limit = var$2;
                    $in.$order = jn_ByteOrder_BIG_ENDIAN;
                    $in.$start2 = 0;
                    $in.$array2 = var$7;
                    $in.$position1 = 0;
                    $in.$limit = var$10;
                    $in.$direct = 0;
                    $in.$readOnly0 = 0;
                    jn_Buffer_position($in, $output.$position1);
                    $output = $in;
                }
                $output.$limit = $output.$position1;
                $output.$position1 = 0;
                $output.$mark0 = (-1);
                return $output;
            }
            $in = new jl_IndexOutOfBoundsException;
            $in.$suppressionEnabled = 1;
            $in.$writableStackTrace = 1;
            $rt_throw($in);
        }
        if ($result === jnc_CoderResult_OVERFLOW) {
            var$7 = $output.$array2.data;
            var$2 = var$7.length;
            var$4 = var$2 * 2 | 0;
            var$3 = $rt_createByteArray(var$4);
            if (var$4 < var$2)
                var$2 = var$4;
            var$9 = var$3.data;
            var$4 = 0;
            while (var$4 < var$2) {
                var$9[var$4] = var$7[var$4];
                var$4 = var$4 + 1 | 0;
            }
            var$2 = var$9.length;
            if (var$2 < 0)
                break;
            if (var$2 > (var$2 - 0 | 0))
                break;
            $output_0 = new jn_ByteBufferImpl;
            var$10 = 0 + var$2 | 0;
            $output_0.$mark0 = (-1);
            $output_0.$capacity = var$2;
            $output_0.$limit = var$2;
            $output_0.$order = jn_ByteOrder_BIG_ENDIAN;
            $output_0.$start2 = 0;
            $output_0.$array2 = var$3;
            $output_0.$position1 = 0;
            $output_0.$limit = var$10;
            $output_0.$direct = 0;
            $output_0.$readOnly0 = 0;
            jn_Buffer_position($output_0, $output.$position1);
            $output = $output_0;
            continue;
        }
        var$2 = $result.$kind;
        var$4 = var$2 != 2 ? 0 : 1;
        if (!(!var$4 && !(var$2 != 3 ? 0 : 1) ? 0 : 1))
            continue;
        switch (var$2) {
            case 0:
                $in = new jnc_BufferUnderflowException;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $rt_throw($in);
            case 1:
                $in = new jnc_BufferOverflowException;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $rt_throw($in);
            case 2:
                $in = new jnc_MalformedInputException;
                var$4 = $result.$length2;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $in.$length6 = var$4;
                $rt_throw($in);
            case 3:
                $in = new jnc_UnmappableCharacterException;
                var$4 = $result.$length2;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $in.$length5 = var$4;
                $rt_throw($in);
            default:
        }
    }
    $in = new jl_IndexOutOfBoundsException;
    $in.$suppressionEnabled = 1;
    $in.$writableStackTrace = 1;
    $rt_throw($in);
},
jnc_CharsetEncoder_implFlush = ($this, $out) => {
    return jnc_CoderResult_UNDERFLOW;
},
jnc_CharsetEncoder_implReset = $this => {
    return;
},
jnc_CharacterCodingException = $rt_classWithoutFields(ji_IOException),
jnc_CharacterCodingException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jnc_CharacterCodingException__init_0 = () => {
    let var_0 = new jnc_CharacterCodingException();
    jnc_CharacterCodingException__init_(var_0);
    return var_0;
};
function nms_WorldServer() {
    let a = this; nms_World.call(a);
    a.$mcServer0 = null;
    a.$theEntityTracker = null;
    a.$thePlayerManager0 = null;
    a.$pendingTickListEntriesHashSet = null;
    a.$pendingTickListEntriesTreeSet = null;
    a.$theChunkProviderServer = null;
    a.$canNotSave = 0;
    a.$allPlayersSleeping = 0;
    a.$updateEntityTick = 0;
    a.$worldTeleporter = null;
    a.$animalSpawner = null;
    a.$blockEventCache = null;
    a.$blockEventCacheIndex = 0;
    a.$pendingTickListEntriesThisTick = null;
    a.$entityIdMap = null;
    a.$r1 = 0;
    a.$w = 0;
    a.$g = 0;
    a.$tu = 0;
    a.$lu = 0;
    a.$_r = 0;
    a.$_w = 0;
    a.$_g = 0;
    a.$_tu = 0;
    a.$_lu = 0;
    a.$rwgtuluTimer = Long_ZERO;
}
let nms_WorldServer_bonusChestContent = null,
nms_WorldServer_$callClinit = () => {
    nms_WorldServer_$callClinit = $rt_eraseClinit(nms_WorldServer);
    nms_WorldServer__clinit_();
},
nms_WorldServer__init_ = ($this, $par1MinecraftServer, $par2ISaveHandler, $par3Str, $par4, $par5WorldSettings, $par7ILogAgent) => {
    let var$7, var$8, var$9, $var8, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par7ILogAgent = $thread.pop();$par5WorldSettings = $thread.pop();$par4 = $thread.pop();$par3Str = $thread.pop();$par2ISaveHandler = $thread.pop();$par1MinecraftServer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_WorldServer_$callClinit();
        if ($par4 == (-1)) {
            $par7ILogAgent = new nms_WorldProviderHell;
            $par7ILogAgent.$lightBrightnessTable = $rt_createFloatArray(16);
            $par7ILogAgent.$colorsSunriseSunset = $rt_createFloatArray(4);
        } else if (!$par4) {
            $par7ILogAgent = new nms_WorldProviderSurface;
            $par7ILogAgent.$lightBrightnessTable = $rt_createFloatArray(16);
            $par7ILogAgent.$colorsSunriseSunset = $rt_createFloatArray(4);
        } else if ($par4 != 1)
            $par7ILogAgent = null;
        else {
            $par7ILogAgent = new nms_WorldProviderEnd;
            $par7ILogAgent.$lightBrightnessTable = $rt_createFloatArray(16);
            $par7ILogAgent.$colorsSunriseSunset = $rt_createFloatArray(4);
        }
        $ptr = 1;
    case 1:
        nms_World__init_($this, $par2ISaveHandler, $par3Str, $par5WorldSettings, $par7ILogAgent);
        if ($rt_suspending()) {
            break main;
        }
        $this.$animalSpawner = nms_SpawnerAnimals__init_0();
        var$7 = $rt_createArray(nms_ServerBlockEventList, 2);
        var$8 = var$7.data;
        $par2ISaveHandler = new nms_ServerBlockEventList;
        $par2ISaveHandler.$array = $rt_createArray(jl_Object, 10);
        var$8[0] = $par2ISaveHandler;
        $par2ISaveHandler = new nms_ServerBlockEventList;
        $par2ISaveHandler.$array = $rt_createArray(jl_Object, 10);
        var$8[1] = $par2ISaveHandler;
        $this.$blockEventCache = var$7;
        $par2ISaveHandler = new ju_ArrayList;
        $par2ISaveHandler.$array = $rt_createArray(jl_Object, 10);
        $this.$pendingTickListEntriesThisTick = $par2ISaveHandler;
        $this.$r1 = 0;
        $this.$w = 0;
        $this.$g = 0;
        $this.$tu = 0;
        $this.$lu = 0;
        $this.$_r = 0;
        $this.$_w = 0;
        $this.$_g = 0;
        $this.$_tu = 0;
        $this.$_lu = 0;
        $this.$rwgtuluTimer = Long_ZERO;
        $this.$mcServer0 = $par1MinecraftServer;
        $par2ISaveHandler = new nms_EntityTracker;
        $par2ISaveHandler.$trackedEntities = ju_HashSet__init_();
        $par2ISaveHandler.$trackedEntityIDs = nms_IntHashMap__init_();
        $par2ISaveHandler.$theWorld6 = $this;
        $par2ISaveHandler.$entityViewDistance = ($this.$mcServer0.$serverConfigManager.$viewDistance * 16 | 0) - 16 | 0;
        $this.$theEntityTracker = $par2ISaveHandler;
        $this.$thePlayerManager0 = nms_PlayerManager__init_($this, $par1MinecraftServer.$serverConfigManager.$viewDistance);
        if ($this.$entityIdMap === null)
            $this.$entityIdMap = nms_IntHashMap__init_();
        if ($this.$pendingTickListEntriesHashSet === null)
            $this.$pendingTickListEntriesHashSet = ju_HashSet__init_();
        if ($this.$pendingTickListEntriesTreeSet === null) {
            $par2ISaveHandler = new ju_TreeSet;
            $par3Str = new ju_TreeMap;
            $par3Str.$originalComparator = null;
            $par3Str.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
            $par2ISaveHandler.$map = $par3Str;
            $this.$pendingTickListEntriesTreeSet = $par2ISaveHandler;
        }
        $par2ISaveHandler = new nms_Teleporter;
        $par3Str = new nms_LongHashMap;
        $par3Str.$hashArray = $rt_createArray(nms_LongHashMapEntry, 16);
        $par3Str.$capacity0 = 12;
        $par3Str.$percentUseable = 0.75;
        $par2ISaveHandler.$destinationCoordinateCache = $par3Str;
        $par3Str = new ju_ArrayList;
        $par3Str.$array = $rt_createArray(jl_Object, 10);
        $par2ISaveHandler.$destinationCoordinateKeys = $par3Str;
        $par2ISaveHandler.$worldServerInstance = $this;
        $par3Str = new nle_EaglercraftRandom;
        var$9 = $this.$worldInfo.$getSeed();
        $par3Str.$seed = Long_fromInt(69);
        $par3Str.$haveNextNextGaussian = 0;
        $par3Str.$seed = var$9;
        $par2ISaveHandler.$random2 = $par3Str;
        $this.$worldTeleporter = $par2ISaveHandler;
        $par2ISaveHandler = new nms_ServerScoreboard;
        nms_Scoreboard__init_($par2ISaveHandler);
        $par2ISaveHandler.$field_96553_b = ju_HashSet__init_();
        $par2ISaveHandler.$field_96555_a = $par1MinecraftServer;
        $this.$worldScoreboard = $par2ISaveHandler;
        $par1MinecraftServer = $this.$mapStorage;
        $par3Str = new nms_WorldServer$_init_$lambda$_0_0;
        $par2ISaveHandler = $rt_s(1076);
        $ptr = 2;
    case 2:
        $tmp = nms_MapStorage_loadData($par1MinecraftServer, $par3Str, $par2ISaveHandler);
        if ($rt_suspending()) {
            break main;
        }
        $par1MinecraftServer = $tmp;
        $var8 = $par1MinecraftServer;
        if ($var8 === null) {
            a: {
                $var8 = new nms_ScoreboardSaveData;
                $var8.$mapName = $rt_s(1076);
                $par1MinecraftServer = $this.$mapStorage;
                $par3Str = $par1MinecraftServer.$loadedDataMap;
                if (!$rt_s(1076).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(1076).$nativeString.length)
                            break a;
                        $rt_s(1076).$hashCode1 = (31 * $rt_s(1076).$hashCode1 | 0) + $rt_s(1076).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(1076).$hashCode1;
            var$7 = $par3Str.$elementData.data;
            $par3Str = var$7[var$11 & (var$7.length - 1 | 0)];
            while ($par3Str !== null) {
                if ($par3Str.$origKeyHash == var$11) {
                    b: {
                        $par5WorldSettings = $par3Str.$key;
                        if ($rt_s(1076) !== $par5WorldSettings) {
                            if ($rt_s(1076) === $par5WorldSettings)
                                $par4 = 1;
                            else if (!($par5WorldSettings instanceof jl_String))
                                $par4 = 0;
                            else {
                                $par5WorldSettings = $par5WorldSettings;
                                $par4 = $rt_s(1076).$nativeString !== $par5WorldSettings.$nativeString ? 0 : 1;
                            }
                            if (!$par4) {
                                $par4 = 0;
                                break b;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                $par3Str = $par3Str.$next3;
            }
            if ($par3Str === null ? 0 : 1) {
                $par3Str = $par1MinecraftServer.$loadedDataList;
                $par5WorldSettings = ju_HashMap_removeByKey($par1MinecraftServer.$loadedDataMap, $rt_s(1076));
                $par5WorldSettings = $par5WorldSettings === null ? null : $par5WorldSettings.$value0;
                var$11 = $par3Str.$size0;
                $par4 = 0;
                c: {
                    while (true) {
                        if ($par4 >= var$11) {
                            $par4 = (-1);
                            break c;
                        }
                        if ($par4 < 0)
                            break;
                        if ($par4 >= $par3Str.$size0)
                            break;
                        $par7ILogAgent = $par3Str.$array.data[$par4];
                        if ($par5WorldSettings === $par7ILogAgent ? 1 : $par5WorldSettings !== null ? $par5WorldSettings.$equals($par7ILogAgent) : $par7ILogAgent !== null ? 0 : 1)
                            break c;
                        $par4 = $par4 + 1 | 0;
                    }
                    $par1MinecraftServer = new jl_IndexOutOfBoundsException;
                    $par1MinecraftServer.$suppressionEnabled = 1;
                    $par1MinecraftServer.$writableStackTrace = 1;
                    $rt_throw($par1MinecraftServer);
                }
                if ($par4 >= 0)
                    ju_ArrayList_remove($par3Str, $par4);
            }
            ju_HashMap_putImpl($par1MinecraftServer.$loadedDataMap, $rt_s(1076), $var8);
            $par1MinecraftServer = $par1MinecraftServer.$loadedDataList;
            ju_ArrayList_ensureCapacity($par1MinecraftServer, $par1MinecraftServer.$size0 + 1 | 0);
            var$7 = $par1MinecraftServer.$array.data;
            var$12 = $par1MinecraftServer.$size0;
            $par1MinecraftServer.$size0 = var$12 + 1 | 0;
            var$7[var$12] = $var8;
            $par1MinecraftServer.$modCount = $par1MinecraftServer.$modCount + 1 | 0;
        }
        $var8.$theScoreboard = $this.$worldScoreboard;
        $par1MinecraftServer = $var8.$field_96506_b;
        if ($par1MinecraftServer === null) {
            $this.$worldScoreboard.$field_96554_c = $var8;
            return;
        }
        $ptr = 3;
    case 3:
        nms_ScoreboardSaveData_readFromNBT($var8, $par1MinecraftServer);
        if ($rt_suspending()) {
            break main;
        }
        $this.$worldScoreboard.$field_96554_c = $var8;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MinecraftServer, $par2ISaveHandler, $par3Str, $par4, $par5WorldSettings, $par7ILogAgent, var$7, var$8, var$9, $var8, var$11, var$12, $ptr);
},
nms_WorldServer__init_0 = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new nms_WorldServer();
    nms_WorldServer__init_(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
},
nms_WorldServer_tick = $this => {
    let var$1, var$2, var$3, var$4, var$5, $var3, var$7, $var1, $millis, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$millis = $thread.pop();$var1 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_WorldServer_updateWeather($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldInfo.$isHardcoreModeEnabled() && $this.$difficultySetting < 3)
            $this.$difficultySetting = 3;
        nms_BiomeCache_cleanupCache($this.$provider.$worldChunkMgr.$biomeCache);
        if (!nms_WorldServer_areAllPlayersAsleep($this)) {
            a: {
                var$1 = ($this.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                var$2 = $rt_s(1683);
                var$3 = $rt_s(1683);
                if (var$2 !== var$3) {
                    var$4 = var$2.$nativeString.length;
                    var$5 = var$3.$nativeString.length;
                    if (var$4 < var$5)
                        var$5 = var$4;
                    $var3 = 0;
                    b: {
                        while (true) {
                            if ($var3 >= var$5) {
                                var$2.$nativeString.length;
                                var$3.$nativeString.length;
                                break a;
                            }
                            if ($var3 < 0)
                                break b;
                            if ($var3 >= var$2.$nativeString.length)
                                break b;
                            var$7 = var$2.$nativeString.charCodeAt($var3);
                            if ($var3 < 0)
                                break;
                            if ($var3 >= var$3.$nativeString.length)
                                break;
                            if (var$7 - var$3.$nativeString.charCodeAt($var3) | 0)
                                break a;
                            $var3 = $var3 + 1 | 0;
                        }
                        var$3 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$3);
                        $rt_throw(var$3);
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$3);
                    $rt_throw(var$3);
                }
            }
            var$3 = $rt_s(1683);
            c: {
                d: {
                    e: while (true) {
                        if (var$1 === null) {
                            var$1 = null;
                            break c;
                        }
                        f: {
                            var$2 = var$1.$key0;
                            if (var$3 === var$2)
                                $var3 = 0;
                            else {
                                var$4 = var$3.$nativeString.length;
                                var$5 = var$2.$nativeString.length;
                                if (var$4 < var$5)
                                    var$5 = var$4;
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= var$5) {
                                        $var3 = var$3.$nativeString.length - var$2.$nativeString.length | 0;
                                        break f;
                                    }
                                    if (var$4 < 0)
                                        break d;
                                    if (var$4 >= var$3.$nativeString.length)
                                        break d;
                                    var$7 = var$3.$nativeString.charCodeAt(var$4);
                                    if (var$4 < 0)
                                        break e;
                                    if (var$4 >= var$2.$nativeString.length)
                                        break e;
                                    $var3 = var$7 - var$2.$nativeString.charCodeAt(var$4) | 0;
                                    if ($var3)
                                        break;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        if (!$var3)
                            break c;
                        var$1 = $var3 >= 0 ? var$1.$right : var$1.$left;
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$3);
                    $rt_throw(var$3);
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
            var$3 = var$1 === null ? null : var$1.$value2;
            var$3 = $this.$chunkProvider;
            $ptr = 2;
            continue main;
        }
        g: {
            var$1 = ($this.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$2 = $rt_s(258);
            var$3 = $rt_s(258);
            if (var$2 !== var$3) {
                var$4 = var$2.$nativeString.length;
                var$5 = var$3.$nativeString.length;
                if (var$4 < var$5)
                    var$5 = var$4;
                $var3 = 0;
                h: {
                    while (true) {
                        if ($var3 >= var$5) {
                            var$2.$nativeString.length;
                            var$3.$nativeString.length;
                            break g;
                        }
                        if ($var3 < 0)
                            break h;
                        if ($var3 >= var$2.$nativeString.length)
                            break h;
                        var$7 = var$2.$nativeString.charCodeAt($var3);
                        if ($var3 < 0)
                            break;
                        if ($var3 >= var$3.$nativeString.length)
                            break;
                        if (var$7 - var$3.$nativeString.charCodeAt($var3) | 0)
                            break g;
                        $var3 = $var3 + 1 | 0;
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$3);
                    $rt_throw(var$3);
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
        }
        var$3 = $rt_s(258);
        i: {
            j: {
                k: while (true) {
                    if (var$1 === null) {
                        var$1 = null;
                        break i;
                    }
                    l: {
                        var$2 = var$1.$key0;
                        if (var$3 === var$2)
                            $var3 = 0;
                        else {
                            var$7 = var$3.$nativeString.length;
                            var$4 = var$2.$nativeString.length;
                            if (var$7 < var$4)
                                var$4 = var$7;
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= var$4) {
                                    $var3 = var$3.$nativeString.length - var$2.$nativeString.length | 0;
                                    break l;
                                }
                                if (var$7 < 0)
                                    break j;
                                if (var$7 >= var$3.$nativeString.length)
                                    break j;
                                $var3 = var$3.$nativeString.charCodeAt(var$7);
                                if (var$7 < 0)
                                    break k;
                                if (var$7 >= var$2.$nativeString.length)
                                    break k;
                                $var3 = $var3 - var$2.$nativeString.charCodeAt(var$7) | 0;
                                if ($var3)
                                    break;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    if (!$var3)
                        break i;
                    var$1 = $var3 >= 0 ? var$1.$right : var$1.$left;
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
            var$3 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$3);
            $rt_throw(var$3);
        }
        var$3 = var$1 === null ? null : var$1.$value2;
        if (var$3 === null ? 0 : var$3.$valueBoolean) {
            $var1 = Long_add($this.$worldInfo.$getWorldTime(), Long_fromInt(24000));
            $this.$worldInfo.$setWorldTime(Long_sub($var1, Long_rem($var1, Long_fromInt(24000))));
        }
        $ptr = 3;
        continue main;
    case 2:
        nms_ChunkProviderServer_unloadQueuedChunks(var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = nms_World_calculateSkylightSubtracted($this, 1.0);
        if ($var3 != $this.$skylightSubtracted)
            $this.$skylightSubtracted = $var3;
        m: {
            var$3 = $this.$worldInfo;
            var$3.$incrementTotalWorldTime(Long_add(var$3.$getWorldTotalTime(), Long_fromInt(1)));
            var$1 = ($this.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$2 = $rt_s(258);
            var$3 = $rt_s(258);
            if (var$2 !== var$3) {
                var$4 = var$2.$nativeString.length;
                var$5 = var$3.$nativeString.length;
                if (var$4 < var$5)
                    var$5 = var$4;
                $var3 = 0;
                n: {
                    while (true) {
                        if ($var3 >= var$5) {
                            var$2.$nativeString.length;
                            var$3.$nativeString.length;
                            break m;
                        }
                        if ($var3 < 0)
                            break n;
                        if ($var3 >= var$2.$nativeString.length)
                            break n;
                        var$7 = var$2.$nativeString.charCodeAt($var3);
                        if ($var3 < 0)
                            break;
                        if ($var3 >= var$3.$nativeString.length)
                            break;
                        if (var$7 - var$3.$nativeString.charCodeAt($var3) | 0)
                            break m;
                        $var3 = $var3 + 1 | 0;
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$3);
                    $rt_throw(var$3);
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
        }
        var$3 = $rt_s(258);
        o: {
            p: {
                d: while (true) {
                    if (var$1 === null) {
                        var$1 = null;
                        break o;
                    }
                    q: {
                        var$2 = var$1.$key0;
                        if (var$3 === var$2)
                            $var3 = 0;
                        else {
                            var$4 = var$3.$nativeString.length;
                            var$5 = var$2.$nativeString.length;
                            if (var$4 < var$5)
                                var$5 = var$4;
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= var$5) {
                                    $var3 = var$3.$nativeString.length - var$2.$nativeString.length | 0;
                                    break q;
                                }
                                if (var$4 < 0)
                                    break p;
                                if (var$4 >= var$3.$nativeString.length)
                                    break p;
                                var$7 = var$3.$nativeString.charCodeAt(var$4);
                                if (var$4 < 0)
                                    break d;
                                if (var$4 >= var$2.$nativeString.length)
                                    break d;
                                $var3 = var$7 - var$2.$nativeString.charCodeAt(var$4) | 0;
                                if ($var3)
                                    break;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    if (!$var3)
                        break o;
                    var$1 = $var3 >= 0 ? var$1.$right : var$1.$left;
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
            var$3 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$3);
            $rt_throw(var$3);
        }
        var$3 = var$1 === null ? null : var$1.$value2;
        if (var$3 === null ? 0 : var$3.$valueBoolean) {
            var$3 = $this.$worldInfo;
            var$3.$setWorldTime(Long_add(var$3.$getWorldTime(), Long_fromInt(1)));
        }
        $var3 = 0;
        $ptr = 4;
        continue main;
    case 3:
        nms_WorldServer_wakeAllPlayers($this);
        if ($rt_suspending()) {
            break main;
        }
        r: {
            var$1 = ($this.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$2 = $rt_s(1683);
            var$3 = $rt_s(1683);
            if (var$2 !== var$3) {
                var$4 = var$2.$nativeString.length;
                var$5 = var$3.$nativeString.length;
                if (var$4 < var$5)
                    var$5 = var$4;
                $var3 = 0;
                s: {
                    while (true) {
                        if ($var3 >= var$5) {
                            var$2.$nativeString.length;
                            var$3.$nativeString.length;
                            break r;
                        }
                        if ($var3 < 0)
                            break s;
                        if ($var3 >= var$2.$nativeString.length)
                            break s;
                        var$7 = var$2.$nativeString.charCodeAt($var3);
                        if ($var3 < 0)
                            break;
                        if ($var3 >= var$3.$nativeString.length)
                            break;
                        if (var$7 - var$3.$nativeString.charCodeAt($var3) | 0)
                            break r;
                        $var3 = $var3 + 1 | 0;
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$3);
                    $rt_throw(var$3);
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
        }
        var$3 = $rt_s(1683);
        t: {
            u: {
                p: while (true) {
                    if (var$1 === null) {
                        var$1 = null;
                        break t;
                    }
                    e: {
                        var$2 = var$1.$key0;
                        if (var$3 === var$2)
                            $var3 = 0;
                        else {
                            var$4 = var$3.$nativeString.length;
                            var$5 = var$2.$nativeString.length;
                            if (var$4 < var$5)
                                var$5 = var$4;
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= var$5) {
                                    $var3 = var$3.$nativeString.length - var$2.$nativeString.length | 0;
                                    break e;
                                }
                                if (var$4 < 0)
                                    break u;
                                if (var$4 >= var$3.$nativeString.length)
                                    break u;
                                var$7 = var$3.$nativeString.charCodeAt(var$4);
                                if (var$4 < 0)
                                    break p;
                                if (var$4 >= var$2.$nativeString.length)
                                    break p;
                                $var3 = var$7 - var$2.$nativeString.charCodeAt(var$4) | 0;
                                if ($var3)
                                    break;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    if (!$var3)
                        break t;
                    var$1 = $var3 >= 0 ? var$1.$right : var$1.$left;
                }
                var$3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$3);
                $rt_throw(var$3);
            }
            var$3 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$3);
            $rt_throw(var$3);
        }
        var$3 = var$1 === null ? null : var$1.$value2;
        var$3 = $this.$chunkProvider;
        $ptr = 2;
        continue main;
    case 4:
        nms_WorldServer_tickUpdates($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_WorldServer_tickBlocksAndAmbiance($this);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$thePlayerManager0;
        $ptr = 6;
    case 6:
        nms_PlayerManager_updatePlayerInstances(var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$villageCollectionObj;
        $ptr = 7;
    case 7:
        nms_VillageCollection_tick(var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$villageSiegeObj;
        $ptr = 8;
    case 8:
        nms_VillageSiege_tick(var$3);
        if ($rt_suspending()) {
            break main;
        }
        nms_Teleporter_removeStalePortalLocations($this.$worldTeleporter, $this.$worldInfo.$getWorldTotalTime());
        $ptr = 9;
    case 9:
        nms_WorldServer_sendAndApplyBlockEvents($this);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$_r;
        var$3 = $this.$theChunkProviderServer;
        var$7 = var$3.$_r0;
        var$3.$_r0 = 0;
        $this.$_r = $var3 + var$7 | 0;
        $var3 = $this.$_w;
        var$7 = var$3.$_w0;
        var$3.$_w0 = 0;
        $this.$_w = $var3 + var$7 | 0;
        $var3 = $this.$_g;
        var$7 = var$3.$_g0;
        var$3.$_g0 = 0;
        $this.$_g = $var3 + var$7 | 0;
        $this.$_lu = $this.$_lu + nms_Chunk_totalBlockLightUpdates | 0;
        nms_Chunk_totalBlockLightUpdates = 0;
        nles_SysUtil_$callClinit();
        $millis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        if (Long_ge(Long_sub($millis, $this.$rwgtuluTimer), Long_fromInt(1000))) {
            $this.$rwgtuluTimer = $millis;
            $this.$r1 = $this.$_r;
            $this.$_r = 0;
            $this.$w = $this.$_w;
            $this.$_w = 0;
            $this.$g = $this.$_g;
            $this.$_g = 0;
            $this.$tu = $this.$_tu;
            $this.$_tu = 0;
            $this.$lu = $this.$_lu;
            $this.$_lu = 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $var3, var$7, $var1, $millis, $ptr);
},
nms_WorldServer_getR = $this => {
    return $this.$r1;
},
nms_WorldServer_getW = $this => {
    return $this.$w;
},
nms_WorldServer_getG = $this => {
    return $this.$g;
},
nms_WorldServer_getTU = $this => {
    return $this.$tu;
},
nms_WorldServer_getLU = $this => {
    return $this.$lu;
},
nms_WorldServer_updateAllPlayersSleepingFlag = $this => {
    let var$1, $var1$index, var$3, var$4, $var1$index_0;
    var$1 = $this.$playerEntities;
    $this.$allPlayersSleeping = (var$1.$size0 ? 0 : 1) ? 0 : 1;
    $var1$index = 0;
    var$3 = var$1.$modCount;
    var$4 = var$1.$size();
    a: {
        while (true) {
            if (!($var1$index >= var$4 ? 0 : 1))
                break a;
            if (var$3 < var$1.$modCount) {
                var$1 = new ju_ConcurrentModificationException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            $var1$index_0 = $var1$index + 1 | 0;
            if (!(var$1.$get($var1$index)).$sleeping)
                break;
            $var1$index = $var1$index_0;
        }
        $this.$allPlayersSleeping = 0;
    }
},
nms_WorldServer_wakeAllPlayers = $this => {
    let var$1, $var1$index, var$3, var$4, $var1$index_0, $var2, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var2 = $thread.pop();$var1$index_0 = $thread.pop();var$4 = $thread.pop();var$3
        = $thread.pop();$var1$index = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$allPlayersSleeping = 0;
        var$1 = $this.$playerEntities;
        $var1$index = 0;
        var$3 = var$1.$modCount;
        var$4 = var$1.$size();
        while (true) {
            if (!($var1$index >= var$4 ? 0 : 1)) {
                $this.$worldInfo.$setRainTime(0);
                $this.$worldInfo.$setRaining(0);
                $this.$worldInfo.$setThunderTime(0);
                $this.$worldInfo.$setThundering(0);
                return;
            }
            if (var$3 < var$1.$modCount)
                break;
            $var1$index_0 = $var1$index + 1 | 0;
            $var2 = var$1.$get($var1$index);
            var$7 = $var2.$sleeping;
            if (var$7) {
                var$8 = 0;
                var$9 = 0;
                $var1$index = 1;
                if (var$7) {
                    var$10 = $var2.$worldObj.$theEntityTracker;
                    var$11 = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$12 = $var2.$entityId;
                    var$11.$entityId1 = var$12;
                    var$11.$animate = 3;
                    var$13 = var$10.$trackedEntityIDs;
                    var$14 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
                    var$7 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                    var$15 = var$13.$slots.data;
                    var$13 = var$15[var$7 & (var$15.length - 1 | 0)];
                    a: {
                        while (var$13 !== null) {
                            if (var$13.$hashEntry == var$12) {
                                var$13 = var$13.$valueEntry;
                                break a;
                            }
                            var$13 = var$13.$nextEntry0;
                        }
                        var$13 = null;
                    }
                    var$16 = var$13;
                    if (var$16 !== null) {
                        var$13 = var$16.$trackingPlayers.$backingMap;
                        if (var$13.$cachedKeySet === null) {
                            var$10 = new ju_HashMap$1;
                            var$10.$this$0 = var$13;
                            ju_AbstractCollection__init_(var$10);
                            var$13.$cachedKeySet = var$10;
                        }
                        var$17 = var$13.$cachedKeySet.$iterator();
                        var$12 = var$11 instanceof nms_Packet3Chat;
                        var$10 = var$11;
                        while (var$17.$hasNext()) {
                            b: {
                                var$13 = (var$17.$next()).$playerNetServerHandler;
                                if (var$12) {
                                    var$14 = var$13.$playerEntity.$chatVisibility;
                                    if (var$14 == 2)
                                        break b;
                                    if (var$14 == 1 && !var$10.$isServer)
                                        break b;
                                }
                                try {
                                    var$13 = var$13.$netManager;
                                    $ptr = 3;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$13 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$18 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$18);
                                    jl_System_errCache = var$18;
                                }
                                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
                            }
                        }
                        var$13 = var$16.$myEntity;
                        if (var$13 instanceof nms_EntityPlayerMP)
                            c: {
                                var$18 = var$13.$playerNetServerHandler;
                                if (var$12) {
                                    var$12 = var$18.$playerEntity.$chatVisibility;
                                    if (var$12 == 2)
                                        break c;
                                    if (var$12 == 1 && !var$10.$isServer)
                                        break c;
                                }
                                try {
                                    var$13 = var$18.$netManager;
                                    $ptr = 4;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$13 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$10 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = var$10;
                                }
                                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
                            }
                    }
                }
                $ptr = 1;
                continue main;
            }
            $var1$index = $var1$index_0;
        }
        var$13 = new ju_ConcurrentModificationException;
        var$13.$suppressionEnabled = 1;
        var$13.$writableStackTrace = 1;
        $rt_throw(var$13);
    case 1:
        nms_EntityPlayer_wakeUpPlayer($var2, var$8, var$9, $var1$index);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $var2.$playerNetServerHandler;
        if (var$13 !== null)
            d: {
                var$19 = $var2.$posX;
                var$20 = $var2.$posY;
                var$21 = $var2.$posZ;
                var$22 = $var2.$rotationYaw;
                var$23 = $var2.$rotationPitch;
                var$13.$hasMoved = 0;
                var$13.$lastPosX = var$19;
                var$13.$lastPosY = var$20;
                var$13.$lastPosZ = var$21;
                nms_Entity_setPositionAndRotation(var$13.$playerEntity, var$19, var$20, var$21, var$22, var$23);
                var$10 = var$13.$playerEntity.$playerNetServerHandler;
                var$18 = new nms_Packet13PlayerLookMove;
                var$24 = var$20 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$18.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$18.$xPosition = var$19;
                var$18.$yPosition = var$24;
                var$18.$stance = var$20;
                var$18.$zPosition = var$21;
                var$18.$yaw = var$22;
                var$18.$pitch = var$23;
                var$18.$onGround0 = 0;
                var$18.$rotating = 1;
                var$18.$moving = 1;
                if (var$18 instanceof nms_Packet3Chat) {
                    var$13 = var$18;
                    $var1$index = var$10.$playerEntity.$chatVisibility;
                    if ($var1$index == 2)
                        break d;
                    if ($var1$index == 1 && !var$13.$isServer)
                        break d;
                }
                try {
                    var$13 = var$10.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$13 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$10 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_(var$10, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = var$10;
                }
                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
            }
        while (true) {
            $var1$index = $var1$index_0;
            if (!($var1$index >= var$4 ? 0 : 1)) {
                $this.$worldInfo.$setRainTime(0);
                $this.$worldInfo.$setRaining(0);
                $this.$worldInfo.$setThunderTime(0);
                $this.$worldInfo.$setThundering(0);
                return;
            }
            if (var$3 < var$1.$modCount)
                break;
            $var1$index_0 = $var1$index + 1 | 0;
            $var2 = var$1.$get($var1$index);
            var$7 = $var2.$sleeping;
            if (!var$7)
                continue;
            else {
                var$8 = 0;
                var$9 = 0;
                $var1$index = 1;
                if (var$7) {
                    var$10 = $var2.$worldObj.$theEntityTracker;
                    var$11 = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$12 = $var2.$entityId;
                    var$11.$entityId1 = var$12;
                    var$11.$animate = 3;
                    var$13 = var$10.$trackedEntityIDs;
                    var$14 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
                    var$7 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                    var$15 = var$13.$slots.data;
                    var$13 = var$15[var$7 & (var$15.length - 1 | 0)];
                    e: {
                        while (var$13 !== null) {
                            if (var$13.$hashEntry == var$12) {
                                var$13 = var$13.$valueEntry;
                                break e;
                            }
                            var$13 = var$13.$nextEntry0;
                        }
                        var$13 = null;
                    }
                    var$16 = var$13;
                    if (var$16 !== null) {
                        var$13 = var$16.$trackingPlayers.$backingMap;
                        if (var$13.$cachedKeySet === null) {
                            var$10 = new ju_HashMap$1;
                            var$10.$this$0 = var$13;
                            ju_AbstractCollection__init_(var$10);
                            var$13.$cachedKeySet = var$10;
                        }
                        var$17 = var$13.$cachedKeySet.$iterator();
                        var$12 = var$11 instanceof nms_Packet3Chat;
                        var$10 = var$11;
                        while (var$17.$hasNext()) {
                            c: {
                                var$13 = (var$17.$next()).$playerNetServerHandler;
                                if (var$12) {
                                    var$14 = var$13.$playerEntity.$chatVisibility;
                                    if (var$14 == 2)
                                        break c;
                                    if (var$14 == 1 && !var$10.$isServer)
                                        break c;
                                }
                                try {
                                    var$13 = var$13.$netManager;
                                    $ptr = 3;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$13 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$18 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$18);
                                    jl_System_errCache = var$18;
                                }
                                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
                            }
                        }
                        var$13 = var$16.$myEntity;
                        if (var$13 instanceof nms_EntityPlayerMP)
                            f: {
                                var$18 = var$13.$playerNetServerHandler;
                                if (var$12) {
                                    var$12 = var$18.$playerEntity.$chatVisibility;
                                    if (var$12 == 2)
                                        break f;
                                    if (var$12 == 1 && !var$10.$isServer)
                                        break f;
                                }
                                try {
                                    var$13 = var$18.$netManager;
                                    $ptr = 4;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$13 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$10 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = var$10;
                                }
                                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
                            }
                    }
                }
                continue main;
            }
        }
        var$13 = new ju_ConcurrentModificationException;
        var$13.$suppressionEnabled = 1;
        var$13.$writableStackTrace = 1;
        $rt_throw(var$13);
    case 2:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$13, var$18);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$13 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$10 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$10, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$10;
            }
            jl_Throwable_printStackTrace(var$13, jl_System_errCache);
        }
        while (true) {
            $var1$index = $var1$index_0;
            if (!($var1$index >= var$4 ? 0 : 1)) {
                $this.$worldInfo.$setRainTime(0);
                $this.$worldInfo.$setRaining(0);
                $this.$worldInfo.$setThunderTime(0);
                $this.$worldInfo.$setThundering(0);
                return;
            }
            if (var$3 < var$1.$modCount)
                break;
            $var1$index_0 = $var1$index + 1 | 0;
            $var2 = var$1.$get($var1$index);
            var$7 = $var2.$sleeping;
            if (!var$7)
                continue;
            else {
                var$8 = 0;
                var$9 = 0;
                $var1$index = 1;
                if (var$7) {
                    var$10 = $var2.$worldObj.$theEntityTracker;
                    var$11 = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$12 = $var2.$entityId;
                    var$11.$entityId1 = var$12;
                    var$11.$animate = 3;
                    var$13 = var$10.$trackedEntityIDs;
                    var$14 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
                    var$7 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                    var$15 = var$13.$slots.data;
                    var$13 = var$15[var$7 & (var$15.length - 1 | 0)];
                    h: {
                        while (var$13 !== null) {
                            if (var$13.$hashEntry == var$12) {
                                var$13 = var$13.$valueEntry;
                                break h;
                            }
                            var$13 = var$13.$nextEntry0;
                        }
                        var$13 = null;
                    }
                    var$16 = var$13;
                    if (var$16 !== null) {
                        var$13 = var$16.$trackingPlayers.$backingMap;
                        if (var$13.$cachedKeySet === null) {
                            var$10 = new ju_HashMap$1;
                            var$10.$this$0 = var$13;
                            ju_AbstractCollection__init_(var$10);
                            var$13.$cachedKeySet = var$10;
                        }
                        var$17 = var$13.$cachedKeySet.$iterator();
                        var$12 = var$11 instanceof nms_Packet3Chat;
                        var$10 = var$11;
                        while (var$17.$hasNext()) {
                            i: {
                                var$13 = (var$17.$next()).$playerNetServerHandler;
                                if (var$12) {
                                    var$14 = var$13.$playerEntity.$chatVisibility;
                                    if (var$14 == 2)
                                        break i;
                                    if (var$14 == 1 && !var$10.$isServer)
                                        break i;
                                }
                                try {
                                    var$13 = var$13.$netManager;
                                    $ptr = 3;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$13 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$18 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$18);
                                    jl_System_errCache = var$18;
                                }
                                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
                            }
                        }
                        var$13 = var$16.$myEntity;
                        if (var$13 instanceof nms_EntityPlayerMP)
                            j: {
                                var$18 = var$13.$playerNetServerHandler;
                                if (var$12) {
                                    var$12 = var$18.$playerEntity.$chatVisibility;
                                    if (var$12 == 2)
                                        break j;
                                    if (var$12 == 1 && !var$10.$isServer)
                                        break j;
                                }
                                try {
                                    var$13 = var$18.$netManager;
                                    $ptr = 4;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$13 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$10 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = var$10;
                                }
                                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
                            }
                    }
                }
                $ptr = 1;
                continue main;
            }
        }
        var$13 = new ju_ConcurrentModificationException;
        var$13.$suppressionEnabled = 1;
        var$13.$writableStackTrace = 1;
        $rt_throw(var$13);
    case 3:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$13, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$13 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$18 = jl_System_errCache;
            if (var$18 === null) {
                var$18 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$18);
                jl_System_errCache = var$18;
            }
            var$18 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$13, var$18);
        }
        k: while (true) {
            while (true) {
                if (!var$17.$hasNext())
                    break k;
                var$13 = (var$17.$next()).$playerNetServerHandler;
                if (!var$12)
                    break;
                var$14 = var$13.$playerEntity.$chatVisibility;
                if (var$14 == 2)
                    continue;
                if (var$14 != 1)
                    break;
                if (var$10.$isServer)
                    break;
            }
            try {
                var$13 = var$13.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$13 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$18 = jl_System_errCache;
            if (var$18 === null) {
                var$18 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$18);
                jl_System_errCache = var$18;
            }
            var$18 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$13, var$18);
        }
        var$13 = var$16.$myEntity;
        if (var$13 instanceof nms_EntityPlayerMP)
            h: {
                var$18 = var$13.$playerNetServerHandler;
                if (var$12) {
                    var$12 = var$18.$playerEntity.$chatVisibility;
                    if (var$12 == 2)
                        break h;
                    if (var$12 == 1 && !var$10.$isServer)
                        break h;
                }
                try {
                    var$13 = var$18.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$13 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$10 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$10;
                }
                jl_Throwable_printStackTrace(var$13, jl_System_errCache);
            }
        $ptr = 1;
        continue main;
    case 4:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$13, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$13 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$10 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$10;
            }
            jl_Throwable_printStackTrace(var$13, jl_System_errCache);
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1$index, var$3, var$4, $var1$index_0, $var2, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $ptr);
},
nms_WorldServer_areAllPlayersAsleep = $this => {
    let var$1, $var1$index, var$3, var$4, $var1$index_0, $var2;
    if ($this.$allPlayersSleeping && !$this.$isRemote) {
        var$1 = $this.$playerEntities;
        $var1$index = 0;
        var$3 = var$1.$modCount;
        var$4 = var$1.$size();
        while (true) {
            if (!($var1$index >= var$4 ? 0 : 1))
                return 1;
            if (var$3 < var$1.$modCount) {
                var$1 = new ju_ConcurrentModificationException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            $var1$index_0 = $var1$index + 1 | 0;
            $var2 = var$1.$get($var1$index);
            if (!($var2.$sleeping && $var2.$sleepTimer >= 100 ? 1 : 0))
                break;
            $var1$index = $var1$index_0;
        }
        return 0;
    }
    return 0;
},
nms_WorldServer_tickBlocksAndAmbiance = $this => {
    let $var4, $var20, $var3, var$4, var$5, var$6, $var9, $var5, $var13, $var6, var$11, $var9_0, $var21, $var19, var$15, var$16, var$17, $var8, $var10, $var14, $var15, $var18, $var16, $var17, $var11, var$26, var$27, var$28, $var11_0, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();$var11_0 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var11 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var18 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var19 = $thread.pop();$var21 = $thread.pop();$var9_0 = $thread.pop();var$11 = $thread.pop();$var6 = $thread.pop();$var13
        = $thread.pop();$var5 = $thread.pop();$var9 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var20 = $thread.pop();$var4 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_World_setActivePlayerChunksAndCheckLight($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$activeChunkSet.$backingMap;
        if ($var4.$cachedKeySet === null) {
            $var20 = new ju_HashMap$1;
            $var20.$this$0 = $var4;
            $var4.$cachedKeySet = $var20;
        }
        $var3 = $var4.$cachedKeySet.$iterator();
        var$4 = 17;
        var$5 = 99999;
        var$6 = Long_fromInt(16);
        if (!$var3.$hasNext())
            return;
        $var4 = $var3.$next();
        $var9 = $var4.$chunkXPos;
        $var5 = $var9 * 16 | 0;
        $var13 = $var4.$chunkZPos;
        $var6 = $var13 * 16 | 0;
        $var4 = $this.$chunkProvider;
        $var20 = $var4.$loadedChunkHashMap;
        var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
        $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
        $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
        $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
        $var19 = $var20.$hashArray.data;
        $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
        a: {
            while ($var20 !== null) {
                if (Long_eq($var20.$key1, var$11)) {
                    $var20 = $var20.$value4;
                    break a;
                }
                $var20 = $var20.$nextEntry;
            }
            $var20 = null;
        }
        b: {
            $var20 = $var20;
            if ($var20 === null) {
                if ($var4.$worldObj0.$findingSpawnPoint)
                    break b;
                if ($var4.$loadChunkOnProvideRequest)
                    break b;
                $var20 = $var4.$defaultEmptyChunk;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 2:
        nms_World_moodSoundAndLightCheck($this, $var5, $var6, $var20);
        if ($rt_suspending()) {
            break main;
        }
        if ($var20.$isGapLightingUpdated && !$var20.$worldObj1.$provider.$hasNoSky) {
            $ptr = 4;
            continue main;
        }
        $var4 = $this.$rand0;
        var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$15;
        $var9 = Long_lo(Long_shru(var$15, var$4));
        while (true) {
            $var9_0 = $var9 % 100000 | 0;
            if ((($var9 - $var9_0 | 0) + var$5 | 0) >= 0)
                break;
            var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$15;
            $var9 = Long_lo(Long_shru(var$15, var$4));
        }
        a: {
            c: {
                d: {
                    b: {
                        if (!$var9_0) {
                            var$16 = $this.$prevRainingStrength;
                            var$17 = var$16 + ($this.$rainingStrength - var$16) * 1.0;
                            if (var$17 <= 0.2 ? 0 : 1) {
                                var$16 = $this.$prevThunderingStrength;
                                if ((var$16 + ($this.$thunderingStrength - var$16) * 1.0) * var$17 <= 0.9 ? 0 : 1) {
                                    $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                                    $this.$updateLCG = $var9;
                                    $var8 = $var9 >> 2;
                                    $var9_0 = $var5 + ($var8 & 15) | 0;
                                    $var10 = $var6 + ($var8 >> 8 & 15) | 0;
                                    $var14 = $var9_0 >> 4;
                                    $var15 = $var10 >> 4;
                                    $var4 = $this.$chunkProvider;
                                    $var18 = $var4.$loadedChunkHashMap;
                                    var$11 = Long_or(Long_and(Long_fromInt($var14), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var15), Long_create(4294967295, 0)), 32));
                                    $var16 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                                    $var9 = $var16 ^ ($var16 >>> 20 | 0) ^ ($var16 >>> 12 | 0);
                                    $var17 = $var9 ^ ($var9 >>> 7 | 0) ^ ($var9 >>> 4 | 0);
                                    $var19 = $var18.$hashArray.data;
                                    $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                    e: {
                                        while ($var18 !== null) {
                                            if (Long_eq($var18.$key1, var$11)) {
                                                $var18 = $var18.$value4;
                                                break e;
                                            }
                                            $var18 = $var18.$nextEntry;
                                        }
                                        $var18 = null;
                                    }
                                    $var18 = $var18;
                                    if ($var18 === null) {
                                        if ($var4.$worldObj0.$findingSpawnPoint)
                                            break a;
                                        if ($var4.$loadChunkOnProvideRequest)
                                            break a;
                                        $var18 = $var4.$defaultEmptyChunk;
                                    }
                                    $var21 = $var9_0 & 15;
                                    $var13 = $var10 & 15;
                                    $var11 = nms_Chunk_getPrecipitationHeight($var18, $var21, $var13);
                                    var$16 = $this.$prevRainingStrength;
                                    if (!(var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1))
                                        $var9 = 0;
                                    else {
                                        $var4 = $this.$chunkProvider;
                                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                        f: {
                                            while ($var18 !== null) {
                                                if (Long_eq($var18.$key1, var$11)) {
                                                    $var18 = $var18.$value4;
                                                    break f;
                                                }
                                                $var18 = $var18.$nextEntry;
                                            }
                                            $var18 = null;
                                        }
                                        $var18 = $var18;
                                        if ($var18 === null) {
                                            if ($var4.$worldObj0.$findingSpawnPoint)
                                                break c;
                                            if ($var4.$loadChunkOnProvideRequest)
                                                break c;
                                            $var18 = $var4.$defaultEmptyChunk;
                                        }
                                        if (!$var18.$canBlockSeeTheSky($var21, $var11, $var13))
                                            $var9 = 0;
                                        else {
                                            $var4 = $this.$chunkProvider;
                                            $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                            $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                            g: {
                                                while ($var18 !== null) {
                                                    if (Long_eq($var18.$key1, var$11)) {
                                                        $var18 = $var18.$value4;
                                                        break g;
                                                    }
                                                    $var18 = $var18.$nextEntry;
                                                }
                                                $var18 = null;
                                            }
                                            $var18 = $var18;
                                            if ($var18 === null) {
                                                if ($var4.$worldObj0.$findingSpawnPoint)
                                                    break d;
                                                if ($var4.$loadChunkOnProvideRequest)
                                                    break d;
                                                $var18 = $var4.$defaultEmptyChunk;
                                            }
                                            if (nms_Chunk_getPrecipitationHeight($var18, $var21, $var13) > $var11)
                                                $var9 = 0;
                                            else {
                                                $var4 = $this.$chunkProvider.$loadedChunkHashMap;
                                                $var8 = nms_LongHashMap_hash($var16);
                                                $var19 = $var4.$hashArray.data;
                                                $var4 = $var19[$var8 & ($var19.length - 1 | 0)];
                                                h: {
                                                    while (true) {
                                                        if ($var4 === null) {
                                                            $var4 = null;
                                                            break h;
                                                        }
                                                        if (Long_eq($var4.$key1, var$11))
                                                            break;
                                                        $var4 = $var4.$nextEntry;
                                                    }
                                                }
                                                $var9 = $var4 === null ? 0 : 1;
                                                i: {
                                                    if ($var9) {
                                                        $var4 = $this.$chunkProvider;
                                                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                                        j: {
                                                            while ($var18 !== null) {
                                                                if (Long_eq($var18.$key1, var$11)) {
                                                                    $var18 = $var18.$value4;
                                                                    break j;
                                                                }
                                                                $var18 = $var18.$nextEntry;
                                                            }
                                                            $var18 = null;
                                                        }
                                                        $var18 = $var18;
                                                        if ($var18 === null) {
                                                            if ($var4.$worldObj0.$findingSpawnPoint)
                                                                break b;
                                                            if ($var4.$loadChunkOnProvideRequest)
                                                                break b;
                                                            $var18 = $var4.$defaultEmptyChunk;
                                                        }
                                                        if ($var18 !== null) {
                                                            $var4 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var21, $var13, $this.$provider.$worldChunkMgr);
                                                            break i;
                                                        }
                                                    }
                                                    $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9_0, $var10);
                                                }
                                                $var9 = $var4.$enableSnow;
                                                $var9 = $var9 ? 0 : !$var9 ? $var4.$enableRain : 0;
                                            }
                                        }
                                    }
                                    if ($var9) {
                                        $var4 = new nms_EntityLightningBolt;
                                        var$26 = $var9_0;
                                        var$27 = $var11;
                                        var$28 = $var10;
                                        $ptr = 12;
                                        continue main;
                                    }
                                }
                            }
                        }
                        $var4 = $this.$rand0;
                        var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var4.$seed = var$15;
                        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
                            $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9;
                            $var8 = $var9 >> 2;
                            $var9 = $var8 & 15;
                            $var10 = $var8 >> 8 & 15;
                            $var9 = $var9 + $var5 | 0;
                            $var9_0 = $var10 + $var6 | 0;
                            $var16 = $var9 >> 4;
                            $var17 = $var9_0 >> 4;
                            $var4 = $this.$chunkProvider;
                            $var18 = $var4.$loadedChunkHashMap;
                            var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
                            $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                            $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                            $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                            $var19 = $var18.$hashArray.data;
                            $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
                            k: {
                                while ($var18 !== null) {
                                    if (Long_eq($var18.$key1, var$11)) {
                                        $var18 = $var18.$value4;
                                        break k;
                                    }
                                    $var18 = $var18.$nextEntry;
                                }
                                $var18 = null;
                            }
                            l: {
                                $var18 = $var18;
                                if ($var18 === null) {
                                    if ($var4.$worldObj0.$findingSpawnPoint)
                                        break l;
                                    if ($var4.$loadChunkOnProvideRequest)
                                        break l;
                                    $var18 = $var4.$defaultEmptyChunk;
                                }
                                $var14 = $var9 & 15;
                                $var15 = $var9_0 & 15;
                                $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                                $var10 = $var11_0 - 1 | 0;
                                $var21 = 1;
                                $ptr = 5;
                                continue main;
                            }
                            $ptr = 6;
                            continue main;
                        }
                        $var19 = $var20.$storageArrays.data;
                        $var9 = $var19.length;
                        $var10 = 0;
                        m: while (true) {
                            if ($var10 >= $var9) {
                                if (!$var3.$hasNext())
                                    return;
                                $var4 = $var3.$next();
                                $var9 = $var4.$chunkXPos;
                                $var5 = $var9 * 16 | 0;
                                $var13 = $var4.$chunkZPos;
                                $var6 = $var13 * 16 | 0;
                                $var4 = $this.$chunkProvider;
                                $var20 = $var4.$loadedChunkHashMap;
                                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                                $var19 = $var20.$hashArray.data;
                                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                                n: {
                                    while ($var20 !== null) {
                                        if (Long_eq($var20.$key1, var$11)) {
                                            $var20 = $var20.$value4;
                                            break n;
                                        }
                                        $var20 = $var20.$nextEntry;
                                    }
                                    $var20 = null;
                                }
                                o: {
                                    $var20 = $var20;
                                    if ($var20 === null) {
                                        if ($var4.$worldObj0.$findingSpawnPoint)
                                            break o;
                                        if ($var4.$loadChunkOnProvideRequest)
                                            break o;
                                        $var20 = $var4.$defaultEmptyChunk;
                                    }
                                    continue main;
                                }
                                $ptr = 3;
                                continue main;
                            }
                            p: {
                                $var20 = $var19[$var10];
                                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                                    $var21 = 0;
                                    while (true) {
                                        if ($var21 >= 3)
                                            break p;
                                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                                        $this.$updateLCG = $var9_0;
                                        $var13 = $var9_0 >> 2;
                                        $var14 = $var13 & 15;
                                        $var15 = $var13 >> 8 & 15;
                                        $var16 = $var13 >> 16 & 15;
                                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                                        $var4 = $var20.$blockMSBArray;
                                        if ($var4 !== null)
                                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                                        nms_Block_$callClinit();
                                        $var18 = nms_Block_blocksList.data[$var17];
                                        if ($var18 !== null && $var18.$needsRandomTick)
                                            break m;
                                        $var21 = $var21 + 1 | 0;
                                    }
                                }
                            }
                            $var10 = $var10 + 1 | 0;
                        }
                        $var9_0 = $var14 + $var5 | 0;
                        $var13 = $var16 + $var20.$yBase | 0;
                        $var11 = $var15 + $var6 | 0;
                        $var4 = $this.$rand0;
                        $ptr = 11;
                        continue main;
                    }
                    $ptr = 19;
                    continue main;
                }
                $ptr = 18;
                continue main;
            }
            $ptr = 14;
            continue main;
        }
        $ptr = 10;
        continue main;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var9, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        $ptr = 2;
        continue main;
    case 4:
        nms_Chunk_updateSkylight_do($var20);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$rand0;
        var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$15;
        $var9 = Long_lo(Long_shru(var$15, var$4));
        while (true) {
            $var9_0 = $var9 % 100000 | 0;
            if ((($var9 - $var9_0 | 0) + var$5 | 0) >= 0)
                break;
            var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$15;
            $var9 = Long_lo(Long_shru(var$15, var$4));
        }
        q: {
            a: {
                c: {
                    d: {
                        if (!$var9_0) {
                            var$16 = $this.$prevRainingStrength;
                            var$17 = var$16 + ($this.$rainingStrength - var$16) * 1.0;
                            if (var$17 <= 0.2 ? 0 : 1) {
                                var$16 = $this.$prevThunderingStrength;
                                if ((var$16 + ($this.$thunderingStrength - var$16) * 1.0) * var$17 <= 0.9 ? 0 : 1) {
                                    $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                                    $this.$updateLCG = $var9;
                                    $var8 = $var9 >> 2;
                                    $var9_0 = $var5 + ($var8 & 15) | 0;
                                    $var10 = $var6 + ($var8 >> 8 & 15) | 0;
                                    $var14 = $var9_0 >> 4;
                                    $var15 = $var10 >> 4;
                                    $var4 = $this.$chunkProvider;
                                    $var18 = $var4.$loadedChunkHashMap;
                                    var$11 = Long_or(Long_and(Long_fromInt($var14), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var15), Long_create(4294967295, 0)), 32));
                                    $var16 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                                    $var9 = $var16 ^ ($var16 >>> 20 | 0) ^ ($var16 >>> 12 | 0);
                                    $var17 = $var9 ^ ($var9 >>> 7 | 0) ^ ($var9 >>> 4 | 0);
                                    $var19 = $var18.$hashArray.data;
                                    $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                    r: {
                                        while ($var18 !== null) {
                                            if (Long_eq($var18.$key1, var$11)) {
                                                $var18 = $var18.$value4;
                                                break r;
                                            }
                                            $var18 = $var18.$nextEntry;
                                        }
                                        $var18 = null;
                                    }
                                    $var18 = $var18;
                                    if ($var18 === null) {
                                        if ($var4.$worldObj0.$findingSpawnPoint)
                                            break q;
                                        if ($var4.$loadChunkOnProvideRequest)
                                            break q;
                                        $var18 = $var4.$defaultEmptyChunk;
                                    }
                                    $var21 = $var9_0 & 15;
                                    $var13 = $var10 & 15;
                                    $var11 = nms_Chunk_getPrecipitationHeight($var18, $var21, $var13);
                                    var$16 = $this.$prevRainingStrength;
                                    if (!(var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1))
                                        $var9 = 0;
                                    else {
                                        $var4 = $this.$chunkProvider;
                                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                        s: {
                                            while ($var18 !== null) {
                                                if (Long_eq($var18.$key1, var$11)) {
                                                    $var18 = $var18.$value4;
                                                    break s;
                                                }
                                                $var18 = $var18.$nextEntry;
                                            }
                                            $var18 = null;
                                        }
                                        $var18 = $var18;
                                        if ($var18 === null) {
                                            if ($var4.$worldObj0.$findingSpawnPoint)
                                                break a;
                                            if ($var4.$loadChunkOnProvideRequest)
                                                break a;
                                            $var18 = $var4.$defaultEmptyChunk;
                                        }
                                        if (!$var18.$canBlockSeeTheSky($var21, $var11, $var13))
                                            $var9 = 0;
                                        else {
                                            $var4 = $this.$chunkProvider;
                                            $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                            $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                            t: {
                                                while ($var18 !== null) {
                                                    if (Long_eq($var18.$key1, var$11)) {
                                                        $var18 = $var18.$value4;
                                                        break t;
                                                    }
                                                    $var18 = $var18.$nextEntry;
                                                }
                                                $var18 = null;
                                            }
                                            $var18 = $var18;
                                            if ($var18 === null) {
                                                if ($var4.$worldObj0.$findingSpawnPoint)
                                                    break c;
                                                if ($var4.$loadChunkOnProvideRequest)
                                                    break c;
                                                $var18 = $var4.$defaultEmptyChunk;
                                            }
                                            if (nms_Chunk_getPrecipitationHeight($var18, $var21, $var13) > $var11)
                                                $var9 = 0;
                                            else {
                                                $var4 = $this.$chunkProvider.$loadedChunkHashMap;
                                                $var8 = nms_LongHashMap_hash($var16);
                                                $var19 = $var4.$hashArray.data;
                                                $var4 = $var19[$var8 & ($var19.length - 1 | 0)];
                                                u: {
                                                    while (true) {
                                                        if ($var4 === null) {
                                                            $var4 = null;
                                                            break u;
                                                        }
                                                        if (Long_eq($var4.$key1, var$11))
                                                            break;
                                                        $var4 = $var4.$nextEntry;
                                                    }
                                                }
                                                $var9 = $var4 === null ? 0 : 1;
                                                v: {
                                                    if ($var9) {
                                                        $var4 = $this.$chunkProvider;
                                                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                                        w: {
                                                            while ($var18 !== null) {
                                                                if (Long_eq($var18.$key1, var$11)) {
                                                                    $var18 = $var18.$value4;
                                                                    break w;
                                                                }
                                                                $var18 = $var18.$nextEntry;
                                                            }
                                                            $var18 = null;
                                                        }
                                                        $var18 = $var18;
                                                        if ($var18 === null) {
                                                            if ($var4.$worldObj0.$findingSpawnPoint)
                                                                break d;
                                                            if ($var4.$loadChunkOnProvideRequest)
                                                                break d;
                                                            $var18 = $var4.$defaultEmptyChunk;
                                                        }
                                                        if ($var18 !== null) {
                                                            $var4 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var21, $var13, $this.$provider.$worldChunkMgr);
                                                            break v;
                                                        }
                                                    }
                                                    $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9_0, $var10);
                                                }
                                                $var9 = $var4.$enableSnow;
                                                $var9 = $var9 ? 0 : !$var9 ? $var4.$enableRain : 0;
                                            }
                                        }
                                    }
                                    if ($var9) {
                                        $var4 = new nms_EntityLightningBolt;
                                        var$26 = $var9_0;
                                        var$27 = $var11;
                                        var$28 = $var10;
                                        $ptr = 12;
                                        continue main;
                                    }
                                }
                            }
                        }
                        $var4 = $this.$rand0;
                        var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var4.$seed = var$15;
                        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
                            $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9;
                            $var8 = $var9 >> 2;
                            $var9 = $var8 & 15;
                            $var10 = $var8 >> 8 & 15;
                            $var9 = $var9 + $var5 | 0;
                            $var9_0 = $var10 + $var6 | 0;
                            $var16 = $var9 >> 4;
                            $var17 = $var9_0 >> 4;
                            $var4 = $this.$chunkProvider;
                            $var18 = $var4.$loadedChunkHashMap;
                            var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
                            $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                            $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                            $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                            $var19 = $var18.$hashArray.data;
                            $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
                            x: {
                                while ($var18 !== null) {
                                    if (Long_eq($var18.$key1, var$11)) {
                                        $var18 = $var18.$value4;
                                        break x;
                                    }
                                    $var18 = $var18.$nextEntry;
                                }
                                $var18 = null;
                            }
                            y: {
                                $var18 = $var18;
                                if ($var18 === null) {
                                    if ($var4.$worldObj0.$findingSpawnPoint)
                                        break y;
                                    if ($var4.$loadChunkOnProvideRequest)
                                        break y;
                                    $var18 = $var4.$defaultEmptyChunk;
                                }
                                $var14 = $var9 & 15;
                                $var15 = $var9_0 & 15;
                                $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                                $var10 = $var11_0 - 1 | 0;
                                $var21 = 1;
                                $ptr = 5;
                                continue main;
                            }
                            $ptr = 6;
                            continue main;
                        }
                        $var19 = $var20.$storageArrays.data;
                        $var9 = $var19.length;
                        $var10 = 0;
                        z: while (true) {
                            if ($var10 >= $var9) {
                                if (!$var3.$hasNext())
                                    return;
                                $var4 = $var3.$next();
                                $var9 = $var4.$chunkXPos;
                                $var5 = $var9 * 16 | 0;
                                $var13 = $var4.$chunkZPos;
                                $var6 = $var13 * 16 | 0;
                                $var4 = $this.$chunkProvider;
                                $var20 = $var4.$loadedChunkHashMap;
                                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                                $var19 = $var20.$hashArray.data;
                                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                                ba: {
                                    while ($var20 !== null) {
                                        if (Long_eq($var20.$key1, var$11)) {
                                            $var20 = $var20.$value4;
                                            break ba;
                                        }
                                        $var20 = $var20.$nextEntry;
                                    }
                                    $var20 = null;
                                }
                                bb: {
                                    $var20 = $var20;
                                    if ($var20 === null) {
                                        if ($var4.$worldObj0.$findingSpawnPoint)
                                            break bb;
                                        if ($var4.$loadChunkOnProvideRequest)
                                            break bb;
                                        $var20 = $var4.$defaultEmptyChunk;
                                    }
                                    $ptr = 2;
                                    continue main;
                                }
                                $ptr = 3;
                                continue main;
                            }
                            bc: {
                                $var20 = $var19[$var10];
                                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                                    $var21 = 0;
                                    while (true) {
                                        if ($var21 >= 3)
                                            break bc;
                                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                                        $this.$updateLCG = $var9_0;
                                        $var13 = $var9_0 >> 2;
                                        $var14 = $var13 & 15;
                                        $var15 = $var13 >> 8 & 15;
                                        $var16 = $var13 >> 16 & 15;
                                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                                        $var4 = $var20.$blockMSBArray;
                                        if ($var4 !== null)
                                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                                        nms_Block_$callClinit();
                                        $var18 = nms_Block_blocksList.data[$var17];
                                        if ($var18 !== null && $var18.$needsRandomTick)
                                            break z;
                                        $var21 = $var21 + 1 | 0;
                                    }
                                }
                            }
                            $var10 = $var10 + 1 | 0;
                        }
                        $var9_0 = $var14 + $var5 | 0;
                        $var13 = $var16 + $var20.$yBase | 0;
                        $var11 = $var15 + $var6 | 0;
                        $var4 = $this.$rand0;
                        $ptr = 11;
                        continue main;
                    }
                    $ptr = 19;
                    continue main;
                }
                $ptr = 18;
                continue main;
            }
            $ptr = 14;
            continue main;
        }
        $ptr = 10;
        continue main;
    case 5:
        $tmp = nms_World_canBlockFreeze($this, $var9, $var10, $var9_0, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        if ($var21) {
            nms_Block_$callClinit();
            $var21 = nms_Block_ice.$blockID;
            $var13 = 0;
            $var11 = 3;
            $ptr = 7;
            continue main;
        }
        var$16 = $this.$prevRainingStrength;
        if (var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1) {
            $ptr = 8;
            continue main;
        }
        var$16 = $this.$prevRainingStrength;
        $var21 = var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1;
        bd: {
            if ($var21) {
                $var12 = $this.$chunkProvider;
                $var19 = $var12.$loadedChunkHashMap.$hashArray.data;
                $var13 = $var8 & ($var19.length - 1 | 0);
                $var4 = $var19[$var13];
                be: {
                    while (true) {
                        if ($var4 === null) {
                            $var4 = null;
                            break be;
                        }
                        if (Long_eq($var4.$key1, var$11))
                            break;
                        $var4 = $var4.$nextEntry;
                    }
                }
                $var21 = $var4 === null ? 0 : 1;
                bf: {
                    if ($var21) {
                        $var4 = $var19[$var13];
                        bg: {
                            while ($var4 !== null) {
                                if (Long_eq($var4.$key1, var$11)) {
                                    $var4 = $var4.$value4;
                                    break bg;
                                }
                                $var4 = $var4.$nextEntry;
                            }
                            $var4 = null;
                        }
                        $var18 = $var4;
                        if ($var18 === null) {
                            if ($var12.$worldObj0.$findingSpawnPoint)
                                break bd;
                            if ($var12.$loadChunkOnProvideRequest)
                                break bd;
                            $var18 = $var12.$defaultEmptyChunk;
                        }
                        if ($var18 !== null) {
                            $var12 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var14, $var15, $this.$provider.$worldChunkMgr);
                            break bf;
                        }
                    }
                    $var12 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9, $var9_0);
                }
                if (!$var12.$enableSnow ? $var12.$enableRain : 0) {
                    $ptr = 15;
                    continue main;
                }
            }
            $var19 = $var20.$storageArrays.data;
            $var9 = $var19.length;
            $var10 = 0;
            t: while (true) {
                if ($var10 >= $var9) {
                    if (!$var3.$hasNext())
                        return;
                    $var4 = $var3.$next();
                    $var9 = $var4.$chunkXPos;
                    $var5 = $var9 * 16 | 0;
                    $var13 = $var4.$chunkZPos;
                    $var6 = $var13 * 16 | 0;
                    $var4 = $this.$chunkProvider;
                    $var20 = $var4.$loadedChunkHashMap;
                    var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                    $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                    $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                    $var19 = $var20.$hashArray.data;
                    $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                    bh: {
                        while ($var20 !== null) {
                            if (Long_eq($var20.$key1, var$11)) {
                                $var20 = $var20.$value4;
                                break bh;
                            }
                            $var20 = $var20.$nextEntry;
                        }
                        $var20 = null;
                    }
                    i: {
                        $var20 = $var20;
                        if ($var20 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break i;
                            if ($var4.$loadChunkOnProvideRequest)
                                break i;
                            $var20 = $var4.$defaultEmptyChunk;
                        }
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                bi: {
                    $var20 = $var19[$var10];
                    if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                        $var21 = 0;
                        while (true) {
                            if ($var21 >= 3)
                                break bi;
                            $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9_0;
                            $var13 = $var9_0 >> 2;
                            $var14 = $var13 & 15;
                            $var15 = $var13 >> 8 & 15;
                            $var16 = $var13 >> 16 & 15;
                            $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                            $var4 = $var20.$blockMSBArray;
                            if ($var4 !== null)
                                $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                            nms_Block_$callClinit();
                            $var18 = nms_Block_blocksList.data[$var17];
                            if ($var18 !== null && $var18.$needsRandomTick)
                                break t;
                            $var21 = $var21 + 1 | 0;
                        }
                    }
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9_0 = $var14 + $var5 | 0;
            $var13 = $var16 + $var20.$yBase | 0;
            $var11 = $var15 + $var6 | 0;
            $var4 = $this.$rand0;
            $ptr = 11;
            continue main;
        }
        $ptr = 17;
        continue main;
    case 6:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var16, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        $var14 = $var9 & 15;
        $var15 = $var9_0 & 15;
        $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
        $var10 = $var11_0 - 1 | 0;
        $var21 = 1;
        $ptr = 5;
        continue main;
    case 7:
        nms_World_setBlock($this, $var9, $var10, $var9_0, $var21, $var13, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $this.$prevRainingStrength;
        if (var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1) {
            $ptr = 8;
            continue main;
        }
        var$16 = $this.$prevRainingStrength;
        $var21 = var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1;
        b: {
            if ($var21) {
                $var12 = $this.$chunkProvider;
                $var19 = $var12.$loadedChunkHashMap.$hashArray.data;
                $var13 = $var8 & ($var19.length - 1 | 0);
                $var4 = $var19[$var13];
                bj: {
                    while (true) {
                        if ($var4 === null) {
                            $var4 = null;
                            break bj;
                        }
                        if (Long_eq($var4.$key1, var$11))
                            break;
                        $var4 = $var4.$nextEntry;
                    }
                }
                $var21 = $var4 === null ? 0 : 1;
                bk: {
                    if ($var21) {
                        $var4 = $var19[$var13];
                        bl: {
                            while ($var4 !== null) {
                                if (Long_eq($var4.$key1, var$11)) {
                                    $var4 = $var4.$value4;
                                    break bl;
                                }
                                $var4 = $var4.$nextEntry;
                            }
                            $var4 = null;
                        }
                        $var18 = $var4;
                        if ($var18 === null) {
                            if ($var12.$worldObj0.$findingSpawnPoint)
                                break b;
                            if ($var12.$loadChunkOnProvideRequest)
                                break b;
                            $var18 = $var12.$defaultEmptyChunk;
                        }
                        if ($var18 !== null) {
                            $var12 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var14, $var15, $this.$provider.$worldChunkMgr);
                            break bk;
                        }
                    }
                    $var12 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9, $var9_0);
                }
                if (!$var12.$enableSnow ? $var12.$enableRain : 0) {
                    $ptr = 15;
                    continue main;
                }
            }
            $var19 = $var20.$storageArrays.data;
            $var9 = $var19.length;
            $var10 = 0;
            bm: while (true) {
                if ($var10 >= $var9) {
                    if (!$var3.$hasNext())
                        return;
                    $var4 = $var3.$next();
                    $var9 = $var4.$chunkXPos;
                    $var5 = $var9 * 16 | 0;
                    $var13 = $var4.$chunkZPos;
                    $var6 = $var13 * 16 | 0;
                    $var4 = $this.$chunkProvider;
                    $var20 = $var4.$loadedChunkHashMap;
                    var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                    $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                    $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                    $var19 = $var20.$hashArray.data;
                    $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                    bn: {
                        while ($var20 !== null) {
                            if (Long_eq($var20.$key1, var$11)) {
                                $var20 = $var20.$value4;
                                break bn;
                            }
                            $var20 = $var20.$nextEntry;
                        }
                        $var20 = null;
                    }
                    v: {
                        $var20 = $var20;
                        if ($var20 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break v;
                            if ($var4.$loadChunkOnProvideRequest)
                                break v;
                            $var20 = $var4.$defaultEmptyChunk;
                        }
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                g: {
                    $var20 = $var19[$var10];
                    if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                        $var21 = 0;
                        while (true) {
                            if ($var21 >= 3)
                                break g;
                            $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9_0;
                            $var13 = $var9_0 >> 2;
                            $var14 = $var13 & 15;
                            $var15 = $var13 >> 8 & 15;
                            $var16 = $var13 >> 16 & 15;
                            $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                            $var4 = $var20.$blockMSBArray;
                            if ($var4 !== null)
                                $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                            nms_Block_$callClinit();
                            $var18 = nms_Block_blocksList.data[$var17];
                            if ($var18 !== null && $var18.$needsRandomTick)
                                break bm;
                            $var21 = $var21 + 1 | 0;
                        }
                    }
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9_0 = $var14 + $var5 | 0;
            $var13 = $var16 + $var20.$yBase | 0;
            $var11 = $var15 + $var6 | 0;
            $var4 = $this.$rand0;
            $ptr = 11;
            continue main;
        }
        $ptr = 17;
        continue main;
    case 8:
        $tmp = nms_World_canSnowAt($this, $var9, $var11_0, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        if ($var21) {
            nms_Block_$callClinit();
            $var21 = nms_Block_snow.$blockID;
            $var13 = 0;
            $var11 = 3;
            $ptr = 9;
            continue main;
        }
        var$16 = $this.$prevRainingStrength;
        $var21 = var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1;
        c: {
            if ($var21) {
                $var12 = $this.$chunkProvider;
                $var19 = $var12.$loadedChunkHashMap.$hashArray.data;
                $var13 = $var8 & ($var19.length - 1 | 0);
                $var4 = $var19[$var13];
                b: {
                    while (true) {
                        if ($var4 === null) {
                            $var4 = null;
                            break b;
                        }
                        if (Long_eq($var4.$key1, var$11))
                            break;
                        $var4 = $var4.$nextEntry;
                    }
                }
                $var21 = $var4 === null ? 0 : 1;
                e: {
                    if ($var21) {
                        $var4 = $var19[$var13];
                        bf: {
                            while ($var4 !== null) {
                                if (Long_eq($var4.$key1, var$11)) {
                                    $var4 = $var4.$value4;
                                    break bf;
                                }
                                $var4 = $var4.$nextEntry;
                            }
                            $var4 = null;
                        }
                        $var18 = $var4;
                        if ($var18 === null) {
                            if ($var12.$worldObj0.$findingSpawnPoint)
                                break c;
                            if ($var12.$loadChunkOnProvideRequest)
                                break c;
                            $var18 = $var12.$defaultEmptyChunk;
                        }
                        if ($var18 !== null) {
                            $var12 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var14, $var15, $this.$provider.$worldChunkMgr);
                            break e;
                        }
                    }
                    $var12 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9, $var9_0);
                }
                if (!$var12.$enableSnow ? $var12.$enableRain : 0) {
                    $ptr = 15;
                    continue main;
                }
            }
            $var19 = $var20.$storageArrays.data;
            $var9 = $var19.length;
            $var10 = 0;
            bo: while (true) {
                if ($var10 >= $var9) {
                    if (!$var3.$hasNext())
                        return;
                    $var4 = $var3.$next();
                    $var9 = $var4.$chunkXPos;
                    $var5 = $var9 * 16 | 0;
                    $var13 = $var4.$chunkZPos;
                    $var6 = $var13 * 16 | 0;
                    $var4 = $this.$chunkProvider;
                    $var20 = $var4.$loadedChunkHashMap;
                    var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                    $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                    $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                    $var19 = $var20.$hashArray.data;
                    $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                    h: {
                        while ($var20 !== null) {
                            if (Long_eq($var20.$key1, var$11)) {
                                $var20 = $var20.$value4;
                                break h;
                            }
                            $var20 = $var20.$nextEntry;
                        }
                        $var20 = null;
                    }
                    bh: {
                        $var20 = $var20;
                        if ($var20 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break bh;
                            if ($var4.$loadChunkOnProvideRequest)
                                break bh;
                            $var20 = $var4.$defaultEmptyChunk;
                        }
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                bm: {
                    $var20 = $var19[$var10];
                    if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                        $var21 = 0;
                        while (true) {
                            if ($var21 >= 3)
                                break bm;
                            $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9_0;
                            $var13 = $var9_0 >> 2;
                            $var14 = $var13 & 15;
                            $var15 = $var13 >> 8 & 15;
                            $var16 = $var13 >> 16 & 15;
                            $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                            $var4 = $var20.$blockMSBArray;
                            if ($var4 !== null)
                                $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                            nms_Block_$callClinit();
                            $var18 = nms_Block_blocksList.data[$var17];
                            if ($var18 !== null && $var18.$needsRandomTick)
                                break bo;
                            $var21 = $var21 + 1 | 0;
                        }
                    }
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9_0 = $var14 + $var5 | 0;
            $var13 = $var16 + $var20.$yBase | 0;
            $var11 = $var15 + $var6 | 0;
            $var4 = $this.$rand0;
            $ptr = 11;
            continue main;
        }
        $ptr = 17;
        continue main;
    case 9:
        nms_World_setBlock($this, $var9, $var11_0, $var9_0, $var21, $var13, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $this.$prevRainingStrength;
        $var21 = var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1;
        a: {
            if ($var21) {
                $var12 = $this.$chunkProvider;
                $var19 = $var12.$loadedChunkHashMap.$hashArray.data;
                $var13 = $var8 & ($var19.length - 1 | 0);
                $var4 = $var19[$var13];
                d: {
                    while (true) {
                        if ($var4 === null) {
                            $var4 = null;
                            break d;
                        }
                        if (Long_eq($var4.$key1, var$11))
                            break;
                        $var4 = $var4.$nextEntry;
                    }
                }
                $var21 = $var4 === null ? 0 : 1;
                r: {
                    if ($var21) {
                        $var4 = $var19[$var13];
                        bk: {
                            while ($var4 !== null) {
                                if (Long_eq($var4.$key1, var$11)) {
                                    $var4 = $var4.$value4;
                                    break bk;
                                }
                                $var4 = $var4.$nextEntry;
                            }
                            $var4 = null;
                        }
                        $var18 = $var4;
                        if ($var18 === null) {
                            if ($var12.$worldObj0.$findingSpawnPoint)
                                break a;
                            if ($var12.$loadChunkOnProvideRequest)
                                break a;
                            $var18 = $var12.$defaultEmptyChunk;
                        }
                        if ($var18 !== null) {
                            $var12 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var14, $var15, $this.$provider.$worldChunkMgr);
                            break r;
                        }
                    }
                    $var12 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9, $var9_0);
                }
                if (!$var12.$enableSnow ? $var12.$enableRain : 0) {
                    $ptr = 15;
                    continue main;
                }
            }
            $var19 = $var20.$storageArrays.data;
            $var9 = $var19.length;
            $var10 = 0;
            bp: while (true) {
                if ($var10 >= $var9) {
                    if (!$var3.$hasNext())
                        return;
                    $var4 = $var3.$next();
                    $var9 = $var4.$chunkXPos;
                    $var5 = $var9 * 16 | 0;
                    $var13 = $var4.$chunkZPos;
                    $var6 = $var13 * 16 | 0;
                    $var4 = $this.$chunkProvider;
                    $var20 = $var4.$loadedChunkHashMap;
                    var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                    $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                    $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                    $var19 = $var20.$hashArray.data;
                    $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                    u: {
                        while ($var20 !== null) {
                            if (Long_eq($var20.$key1, var$11)) {
                                $var20 = $var20.$value4;
                                break u;
                            }
                            $var20 = $var20.$nextEntry;
                        }
                        $var20 = null;
                    }
                    bn: {
                        $var20 = $var20;
                        if ($var20 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break bn;
                            if ($var4.$loadChunkOnProvideRequest)
                                break bn;
                            $var20 = $var4.$defaultEmptyChunk;
                        }
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                bq: {
                    $var20 = $var19[$var10];
                    if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                        $var21 = 0;
                        while (true) {
                            if ($var21 >= 3)
                                break bq;
                            $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9_0;
                            $var13 = $var9_0 >> 2;
                            $var14 = $var13 & 15;
                            $var15 = $var13 >> 8 & 15;
                            $var16 = $var13 >> 16 & 15;
                            $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                            $var4 = $var20.$blockMSBArray;
                            if ($var4 !== null)
                                $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                            nms_Block_$callClinit();
                            $var18 = nms_Block_blocksList.data[$var17];
                            if ($var18 !== null && $var18.$needsRandomTick)
                                break bp;
                            $var21 = $var21 + 1 | 0;
                        }
                    }
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9_0 = $var14 + $var5 | 0;
            $var13 = $var16 + $var20.$yBase | 0;
            $var11 = $var15 + $var6 | 0;
            $var4 = $this.$rand0;
            $ptr = 11;
            continue main;
        }
        $ptr = 17;
        continue main;
    case 10:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var14, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        $var21 = $var9_0 & 15;
        $var13 = $var10 & 15;
        $var11 = nms_Chunk_getPrecipitationHeight($var18, $var21, $var13);
        var$16 = $this.$prevRainingStrength;
        $var9 = var$16 + ($this.$rainingStrength - var$16) * 1.0 <= 0.2 ? 0 : 1;
        a: {
            c: {
                d: {
                    if (!$var9)
                        $var9 = 0;
                    else {
                        $var4 = $this.$chunkProvider;
                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                        bj: {
                            while ($var18 !== null) {
                                if (Long_eq($var18.$key1, var$11)) {
                                    $var18 = $var18.$value4;
                                    break bj;
                                }
                                $var18 = $var18.$nextEntry;
                            }
                            $var18 = null;
                        }
                        $var18 = $var18;
                        if ($var18 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break a;
                            if ($var4.$loadChunkOnProvideRequest)
                                break a;
                            $var18 = $var4.$defaultEmptyChunk;
                        }
                        if (!$var18.$canBlockSeeTheSky($var21, $var11, $var13))
                            $var9 = 0;
                        else {
                            $var4 = $this.$chunkProvider;
                            $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                            $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                            bk: {
                                while ($var18 !== null) {
                                    if (Long_eq($var18.$key1, var$11)) {
                                        $var18 = $var18.$value4;
                                        break bk;
                                    }
                                    $var18 = $var18.$nextEntry;
                                }
                                $var18 = null;
                            }
                            $var18 = $var18;
                            if ($var18 === null) {
                                if ($var4.$worldObj0.$findingSpawnPoint)
                                    break c;
                                if ($var4.$loadChunkOnProvideRequest)
                                    break c;
                                $var18 = $var4.$defaultEmptyChunk;
                            }
                            if (nms_Chunk_getPrecipitationHeight($var18, $var21, $var13) > $var11)
                                $var9 = 0;
                            else {
                                $var4 = $this.$chunkProvider.$loadedChunkHashMap;
                                $var8 = nms_LongHashMap_hash($var16);
                                $var19 = $var4.$hashArray.data;
                                $var4 = $var19[$var8 & ($var19.length - 1 | 0)];
                                s: {
                                    while (true) {
                                        if ($var4 === null) {
                                            $var4 = null;
                                            break s;
                                        }
                                        if (Long_eq($var4.$key1, var$11))
                                            break;
                                        $var4 = $var4.$nextEntry;
                                    }
                                }
                                $var9 = $var4 === null ? 0 : 1;
                                t: {
                                    if ($var9) {
                                        $var4 = $this.$chunkProvider;
                                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                        br: {
                                            while ($var18 !== null) {
                                                if (Long_eq($var18.$key1, var$11)) {
                                                    $var18 = $var18.$value4;
                                                    break br;
                                                }
                                                $var18 = $var18.$nextEntry;
                                            }
                                            $var18 = null;
                                        }
                                        $var18 = $var18;
                                        if ($var18 === null) {
                                            if ($var4.$worldObj0.$findingSpawnPoint)
                                                break d;
                                            if ($var4.$loadChunkOnProvideRequest)
                                                break d;
                                            $var18 = $var4.$defaultEmptyChunk;
                                        }
                                        if ($var18 !== null) {
                                            $var4 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var21, $var13, $this.$provider.$worldChunkMgr);
                                            break t;
                                        }
                                    }
                                    $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9_0, $var10);
                                }
                                $var9 = $var4.$enableSnow;
                                $var9 = $var9 ? 0 : !$var9 ? $var4.$enableRain : 0;
                            }
                        }
                    }
                    if ($var9) {
                        $var4 = new nms_EntityLightningBolt;
                        var$26 = $var9_0;
                        var$27 = $var11;
                        var$28 = $var10;
                        $ptr = 12;
                        continue main;
                    }
                    $var4 = $this.$rand0;
                    var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var4.$seed = var$15;
                    if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
                        $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                        $this.$updateLCG = $var9;
                        $var8 = $var9 >> 2;
                        $var9 = $var8 & 15;
                        $var10 = $var8 >> 8 & 15;
                        $var9 = $var9 + $var5 | 0;
                        $var9_0 = $var10 + $var6 | 0;
                        $var16 = $var9 >> 4;
                        $var17 = $var9_0 >> 4;
                        $var4 = $this.$chunkProvider;
                        $var18 = $var4.$loadedChunkHashMap;
                        var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
                        $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                        $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                        $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                        $var19 = $var18.$hashArray.data;
                        $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
                        bs: {
                            while ($var18 !== null) {
                                if (Long_eq($var18.$key1, var$11)) {
                                    $var18 = $var18.$value4;
                                    break bs;
                                }
                                $var18 = $var18.$nextEntry;
                            }
                            $var18 = null;
                        }
                        bt: {
                            $var18 = $var18;
                            if ($var18 === null) {
                                if ($var4.$worldObj0.$findingSpawnPoint)
                                    break bt;
                                if ($var4.$loadChunkOnProvideRequest)
                                    break bt;
                                $var18 = $var4.$defaultEmptyChunk;
                            }
                            $var14 = $var9 & 15;
                            $var15 = $var9_0 & 15;
                            $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                            $var10 = $var11_0 - 1 | 0;
                            $var21 = 1;
                            $ptr = 5;
                            continue main;
                        }
                        $ptr = 6;
                        continue main;
                    }
                    $var19 = $var20.$storageArrays.data;
                    $var9 = $var19.length;
                    $var10 = 0;
                    bu: while (true) {
                        if ($var10 >= $var9) {
                            if (!$var3.$hasNext())
                                return;
                            $var4 = $var3.$next();
                            $var9 = $var4.$chunkXPos;
                            $var5 = $var9 * 16 | 0;
                            $var13 = $var4.$chunkZPos;
                            $var6 = $var13 * 16 | 0;
                            $var4 = $this.$chunkProvider;
                            $var20 = $var4.$loadedChunkHashMap;
                            var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                            $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                            $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                            $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                            $var19 = $var20.$hashArray.data;
                            $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                            bv: {
                                while ($var20 !== null) {
                                    if (Long_eq($var20.$key1, var$11)) {
                                        $var20 = $var20.$value4;
                                        break bv;
                                    }
                                    $var20 = $var20.$nextEntry;
                                }
                                $var20 = null;
                            }
                            bc: {
                                $var20 = $var20;
                                if ($var20 === null) {
                                    if ($var4.$worldObj0.$findingSpawnPoint)
                                        break bc;
                                    if ($var4.$loadChunkOnProvideRequest)
                                        break bc;
                                    $var20 = $var4.$defaultEmptyChunk;
                                }
                                $ptr = 2;
                                continue main;
                            }
                            $ptr = 3;
                            continue main;
                        }
                        bw: {
                            $var20 = $var19[$var10];
                            if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                                $var21 = 0;
                                while (true) {
                                    if ($var21 >= 3)
                                        break bw;
                                    $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                                    $this.$updateLCG = $var9_0;
                                    $var13 = $var9_0 >> 2;
                                    $var14 = $var13 & 15;
                                    $var15 = $var13 >> 8 & 15;
                                    $var16 = $var13 >> 16 & 15;
                                    $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                                    $var4 = $var20.$blockMSBArray;
                                    if ($var4 !== null)
                                        $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                                    nms_Block_$callClinit();
                                    $var18 = nms_Block_blocksList.data[$var17];
                                    if ($var18 !== null && $var18.$needsRandomTick)
                                        break bu;
                                    $var21 = $var21 + 1 | 0;
                                }
                            }
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var9_0 = $var14 + $var5 | 0;
                    $var13 = $var16 + $var20.$yBase | 0;
                    $var11 = $var15 + $var6 | 0;
                    $var4 = $this.$rand0;
                    $ptr = 11;
                    continue main;
                }
                $ptr = 19;
                continue main;
            }
            $ptr = 18;
            continue main;
        }
        $ptr = 14;
        continue main;
    case 11:
        $var18.$updateTick($this, $var9_0, $var13, $var11, $var4);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var21 = $var21 + 1 | 0;
            while ($var21 >= 3) {
                while (true) {
                    $var10 = $var10 + 1 | 0;
                    if ($var10 >= $var9) {
                        if (!$var3.$hasNext())
                            return;
                        $var4 = $var3.$next();
                        $var9 = $var4.$chunkXPos;
                        $var5 = $var9 * 16 | 0;
                        $var13 = $var4.$chunkZPos;
                        $var6 = $var13 * 16 | 0;
                        $var4 = $this.$chunkProvider;
                        $var20 = $var4.$loadedChunkHashMap;
                        var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                        $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                        $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                        $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                        $var19 = $var20.$hashArray.data;
                        $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                        bx: {
                            while ($var20 !== null) {
                                if (Long_eq($var20.$key1, var$11)) {
                                    $var20 = $var20.$value4;
                                    break bx;
                                }
                                $var20 = $var20.$nextEntry;
                            }
                            $var20 = null;
                        }
                        by: {
                            $var20 = $var20;
                            if ($var20 === null) {
                                if ($var4.$worldObj0.$findingSpawnPoint)
                                    break by;
                                if ($var4.$loadChunkOnProvideRequest)
                                    break by;
                                $var20 = $var4.$defaultEmptyChunk;
                            }
                            $ptr = 2;
                            continue main;
                        }
                        $ptr = 3;
                        continue main;
                    }
                    $var20 = $var19[$var10];
                    if ($var20 === null)
                        continue;
                    if (!($var20.$tickRefCount <= 0 ? 0 : 1))
                        continue;
                    else
                        break;
                }
                $var21 = 0;
            }
            $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
            $this.$updateLCG = $var9_0;
            $var13 = $var9_0 >> 2;
            $var14 = $var13 & 15;
            $var15 = $var13 >> 8 & 15;
            $var16 = $var13 >> 16 & 15;
            $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
            $var4 = $var20.$blockMSBArray;
            if ($var4 !== null)
                $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
            nms_Block_$callClinit();
            $var18 = nms_Block_blocksList.data[$var17];
            if ($var18 === null)
                continue;
            if (!$var18.$needsRandomTick)
                continue;
            else
                break;
        }
        $var9_0 = $var14 + $var5 | 0;
        $var13 = $var16 + $var20.$yBase | 0;
        $var11 = $var15 + $var6 | 0;
        $var4 = $this.$rand0;
        continue main;
    case 12:
        nms_EntityLightningBolt__init_($var4, $this, var$26, var$27, var$28);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 13;
    case 13:
        nms_WorldServer_addWeatherEffect($this, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$rand0;
        var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$15;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
            $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
            $this.$updateLCG = $var9;
            $var8 = $var9 >> 2;
            $var9 = $var8 & 15;
            $var10 = $var8 >> 8 & 15;
            $var9 = $var9 + $var5 | 0;
            $var9_0 = $var10 + $var6 | 0;
            $var16 = $var9 >> 4;
            $var17 = $var9_0 >> 4;
            $var4 = $this.$chunkProvider;
            $var18 = $var4.$loadedChunkHashMap;
            var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
            $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
            $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
            $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
            $var19 = $var18.$hashArray.data;
            $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
            q: {
                while ($var18 !== null) {
                    if (Long_eq($var18.$key1, var$11)) {
                        $var18 = $var18.$value4;
                        break q;
                    }
                    $var18 = $var18.$nextEntry;
                }
                $var18 = null;
            }
            d: {
                $var18 = $var18;
                if ($var18 === null) {
                    if ($var4.$worldObj0.$findingSpawnPoint)
                        break d;
                    if ($var4.$loadChunkOnProvideRequest)
                        break d;
                    $var18 = $var4.$defaultEmptyChunk;
                }
                $var14 = $var9 & 15;
                $var15 = $var9_0 & 15;
                $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                $var10 = $var11_0 - 1 | 0;
                $var21 = 1;
                $ptr = 5;
                continue main;
            }
            $ptr = 6;
            continue main;
        }
        $var19 = $var20.$storageArrays.data;
        $var9 = $var19.length;
        $var10 = 0;
        be: while (true) {
            if ($var10 >= $var9) {
                if (!$var3.$hasNext())
                    return;
                $var4 = $var3.$next();
                $var9 = $var4.$chunkXPos;
                $var5 = $var9 * 16 | 0;
                $var13 = $var4.$chunkZPos;
                $var6 = $var13 * 16 | 0;
                $var4 = $this.$chunkProvider;
                $var20 = $var4.$loadedChunkHashMap;
                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                $var19 = $var20.$hashArray.data;
                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                bz: {
                    while ($var20 !== null) {
                        if (Long_eq($var20.$key1, var$11)) {
                            $var20 = $var20.$value4;
                            break bz;
                        }
                        $var20 = $var20.$nextEntry;
                    }
                    $var20 = null;
                }
                bp: {
                    $var20 = $var20;
                    if ($var20 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break bp;
                        if ($var4.$loadChunkOnProvideRequest)
                            break bp;
                        $var20 = $var4.$defaultEmptyChunk;
                    }
                    $ptr = 2;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            r: {
                $var20 = $var19[$var10];
                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                    $var21 = 0;
                    while (true) {
                        if ($var21 >= 3)
                            break r;
                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                        $this.$updateLCG = $var9_0;
                        $var13 = $var9_0 >> 2;
                        $var14 = $var13 & 15;
                        $var15 = $var13 >> 8 & 15;
                        $var16 = $var13 >> 16 & 15;
                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                        $var4 = $var20.$blockMSBArray;
                        if ($var4 !== null)
                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                        nms_Block_$callClinit();
                        $var18 = nms_Block_blocksList.data[$var17];
                        if ($var18 !== null && $var18.$needsRandomTick)
                            break be;
                        $var21 = $var21 + 1 | 0;
                    }
                }
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9_0 = $var14 + $var5 | 0;
        $var13 = $var16 + $var20.$yBase | 0;
        $var11 = $var15 + $var6 | 0;
        $var4 = $this.$rand0;
        $ptr = 11;
        continue main;
    case 14:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var14, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        bA: {
            q: {
                if (!$var18.$canBlockSeeTheSky($var21, $var11, $var13))
                    $var9 = 0;
                else {
                    $var4 = $this.$chunkProvider;
                    $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                    $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                    d: {
                        while ($var18 !== null) {
                            if (Long_eq($var18.$key1, var$11)) {
                                $var18 = $var18.$value4;
                                break d;
                            }
                            $var18 = $var18.$nextEntry;
                        }
                        $var18 = null;
                    }
                    $var18 = $var18;
                    if ($var18 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break bA;
                        if ($var4.$loadChunkOnProvideRequest)
                            break bA;
                        $var18 = $var4.$defaultEmptyChunk;
                    }
                    if (nms_Chunk_getPrecipitationHeight($var18, $var21, $var13) > $var11)
                        $var9 = 0;
                    else {
                        $var4 = $this.$chunkProvider.$loadedChunkHashMap;
                        $var8 = nms_LongHashMap_hash($var16);
                        $var19 = $var4.$hashArray.data;
                        $var4 = $var19[$var8 & ($var19.length - 1 | 0)];
                        r: {
                            while (true) {
                                if ($var4 === null) {
                                    $var4 = null;
                                    break r;
                                }
                                if (Long_eq($var4.$key1, var$11))
                                    break;
                                $var4 = $var4.$nextEntry;
                            }
                        }
                        $var9 = $var4 === null ? 0 : 1;
                        bl: {
                            if ($var9) {
                                $var4 = $this.$chunkProvider;
                                $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                                $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                                s: {
                                    while ($var18 !== null) {
                                        if (Long_eq($var18.$key1, var$11)) {
                                            $var18 = $var18.$value4;
                                            break s;
                                        }
                                        $var18 = $var18.$nextEntry;
                                    }
                                    $var18 = null;
                                }
                                $var18 = $var18;
                                if ($var18 === null) {
                                    if ($var4.$worldObj0.$findingSpawnPoint)
                                        break q;
                                    if ($var4.$loadChunkOnProvideRequest)
                                        break q;
                                    $var18 = $var4.$defaultEmptyChunk;
                                }
                                if ($var18 !== null) {
                                    $var4 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var21, $var13, $this.$provider.$worldChunkMgr);
                                    break bl;
                                }
                            }
                            $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9_0, $var10);
                        }
                        $var9 = $var4.$enableSnow;
                        $var9 = $var9 ? 0 : !$var9 ? $var4.$enableRain : 0;
                    }
                }
                if ($var9) {
                    $var4 = new nms_EntityLightningBolt;
                    var$26 = $var9_0;
                    var$27 = $var11;
                    var$28 = $var10;
                    $ptr = 12;
                    continue main;
                }
                $var4 = $this.$rand0;
                var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$15;
                if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
                    $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                    $this.$updateLCG = $var9;
                    $var8 = $var9 >> 2;
                    $var9 = $var8 & 15;
                    $var10 = $var8 >> 8 & 15;
                    $var9 = $var9 + $var5 | 0;
                    $var9_0 = $var10 + $var6 | 0;
                    $var16 = $var9 >> 4;
                    $var17 = $var9_0 >> 4;
                    $var4 = $this.$chunkProvider;
                    $var18 = $var4.$loadedChunkHashMap;
                    var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
                    $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                    $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                    $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                    $var19 = $var18.$hashArray.data;
                    $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
                    bB: {
                        while ($var18 !== null) {
                            if (Long_eq($var18.$key1, var$11)) {
                                $var18 = $var18.$value4;
                                break bB;
                            }
                            $var18 = $var18.$nextEntry;
                        }
                        $var18 = null;
                    }
                    bC: {
                        $var18 = $var18;
                        if ($var18 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break bC;
                            if ($var4.$loadChunkOnProvideRequest)
                                break bC;
                            $var18 = $var4.$defaultEmptyChunk;
                        }
                        $var14 = $var9 & 15;
                        $var15 = $var9_0 & 15;
                        $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                        $var10 = $var11_0 - 1 | 0;
                        $var21 = 1;
                        $ptr = 5;
                        continue main;
                    }
                    $ptr = 6;
                    continue main;
                }
                $var19 = $var20.$storageArrays.data;
                $var9 = $var19.length;
                $var10 = 0;
                v: while (true) {
                    if ($var10 >= $var9) {
                        if (!$var3.$hasNext())
                            return;
                        $var4 = $var3.$next();
                        $var9 = $var4.$chunkXPos;
                        $var5 = $var9 * 16 | 0;
                        $var13 = $var4.$chunkZPos;
                        $var6 = $var13 * 16 | 0;
                        $var4 = $this.$chunkProvider;
                        $var20 = $var4.$loadedChunkHashMap;
                        var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                        $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                        $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                        $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                        $var19 = $var20.$hashArray.data;
                        $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                        bD: {
                            while ($var20 !== null) {
                                if (Long_eq($var20.$key1, var$11)) {
                                    $var20 = $var20.$value4;
                                    break bD;
                                }
                                $var20 = $var20.$nextEntry;
                            }
                            $var20 = null;
                        }
                        x: {
                            $var20 = $var20;
                            if ($var20 === null) {
                                if ($var4.$worldObj0.$findingSpawnPoint)
                                    break x;
                                if ($var4.$loadChunkOnProvideRequest)
                                    break x;
                                $var20 = $var4.$defaultEmptyChunk;
                            }
                            $ptr = 2;
                            continue main;
                        }
                        $ptr = 3;
                        continue main;
                    }
                    bs: {
                        $var20 = $var19[$var10];
                        if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                            $var21 = 0;
                            while (true) {
                                if ($var21 >= 3)
                                    break bs;
                                $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                                $this.$updateLCG = $var9_0;
                                $var13 = $var9_0 >> 2;
                                $var14 = $var13 & 15;
                                $var15 = $var13 >> 8 & 15;
                                $var16 = $var13 >> 16 & 15;
                                $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                                $var4 = $var20.$blockMSBArray;
                                if ($var4 !== null)
                                    $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                                nms_Block_$callClinit();
                                $var18 = nms_Block_blocksList.data[$var17];
                                if ($var18 !== null && $var18.$needsRandomTick)
                                    break v;
                                $var21 = $var21 + 1 | 0;
                            }
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
                $var9_0 = $var14 + $var5 | 0;
                $var13 = $var16 + $var20.$yBase | 0;
                $var11 = $var15 + $var6 | 0;
                $var4 = $this.$rand0;
                $ptr = 11;
                continue main;
            }
            $ptr = 19;
            continue main;
        }
        $ptr = 18;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId($this, $var9, $var10, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if ($var13) {
            nms_Block_$callClinit();
            $var4 = nms_Block_blocksList.data[$var13];
            $ptr = 16;
            continue main;
        }
        $var19 = $var20.$storageArrays.data;
        $var9 = $var19.length;
        $var10 = 0;
        a: while (true) {
            if ($var10 >= $var9) {
                if (!$var3.$hasNext())
                    return;
                $var4 = $var3.$next();
                $var9 = $var4.$chunkXPos;
                $var5 = $var9 * 16 | 0;
                $var13 = $var4.$chunkZPos;
                $var6 = $var13 * 16 | 0;
                $var4 = $this.$chunkProvider;
                $var20 = $var4.$loadedChunkHashMap;
                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                $var19 = $var20.$hashArray.data;
                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                by: {
                    while ($var20 !== null) {
                        if (Long_eq($var20.$key1, var$11)) {
                            $var20 = $var20.$value4;
                            break by;
                        }
                        $var20 = $var20.$nextEntry;
                    }
                    $var20 = null;
                }
                bE: {
                    $var20 = $var20;
                    if ($var20 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break bE;
                        if ($var4.$loadChunkOnProvideRequest)
                            break bE;
                        $var20 = $var4.$defaultEmptyChunk;
                    }
                    $ptr = 2;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            d: {
                $var20 = $var19[$var10];
                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                    $var21 = 0;
                    while (true) {
                        if ($var21 >= 3)
                            break d;
                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                        $this.$updateLCG = $var9_0;
                        $var13 = $var9_0 >> 2;
                        $var14 = $var13 & 15;
                        $var15 = $var13 >> 8 & 15;
                        $var16 = $var13 >> 16 & 15;
                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                        $var4 = $var20.$blockMSBArray;
                        if ($var4 !== null)
                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                        nms_Block_$callClinit();
                        $var18 = nms_Block_blocksList.data[$var17];
                        if ($var18 !== null && $var18.$needsRandomTick)
                            break a;
                        $var21 = $var21 + 1 | 0;
                    }
                }
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9_0 = $var14 + $var5 | 0;
        $var13 = $var16 + $var20.$yBase | 0;
        $var11 = $var15 + $var6 | 0;
        $var4 = $this.$rand0;
        $ptr = 11;
        continue main;
    case 16:
        $var4.$fillWithRain($this, $var9, $var10, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $var20.$storageArrays.data;
        $var9 = $var19.length;
        $var10 = 0;
        q: while (true) {
            if ($var10 >= $var9) {
                if (!$var3.$hasNext())
                    return;
                $var4 = $var3.$next();
                $var9 = $var4.$chunkXPos;
                $var5 = $var9 * 16 | 0;
                $var13 = $var4.$chunkZPos;
                $var6 = $var13 * 16 | 0;
                $var4 = $this.$chunkProvider;
                $var20 = $var4.$loadedChunkHashMap;
                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                $var19 = $var20.$hashArray.data;
                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                e: {
                    while ($var20 !== null) {
                        if (Long_eq($var20.$key1, var$11)) {
                            $var20 = $var20.$value4;
                            break e;
                        }
                        $var20 = $var20.$nextEntry;
                    }
                    $var20 = null;
                }
                bf: {
                    $var20 = $var20;
                    if ($var20 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break bf;
                        if ($var4.$loadChunkOnProvideRequest)
                            break bf;
                        $var20 = $var4.$defaultEmptyChunk;
                    }
                    $ptr = 2;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            c: {
                $var20 = $var19[$var10];
                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                    $var21 = 0;
                    while (true) {
                        if ($var21 >= 3)
                            break c;
                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                        $this.$updateLCG = $var9_0;
                        $var13 = $var9_0 >> 2;
                        $var14 = $var13 & 15;
                        $var15 = $var13 >> 8 & 15;
                        $var16 = $var13 >> 16 & 15;
                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                        $var4 = $var20.$blockMSBArray;
                        if ($var4 !== null)
                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                        nms_Block_$callClinit();
                        $var18 = nms_Block_blocksList.data[$var17];
                        if ($var18 !== null && $var18.$needsRandomTick)
                            break q;
                        $var21 = $var21 + 1 | 0;
                    }
                }
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9_0 = $var14 + $var5 | 0;
        $var13 = $var16 + $var20.$yBase | 0;
        $var11 = $var15 + $var6 | 0;
        $var4 = $this.$rand0;
        $ptr = 11;
        continue main;
    case 17:
        $tmp = nms_ChunkProviderServer_loadChunk($var12, $var16, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        $var12 = $var18 === null ? $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9, $var9_0) : nms_Chunk_getBiomeGenForWorldCoords($var18, $var14, $var15, $this.$provider.$worldChunkMgr);
        if (!$var12.$enableSnow ? $var12.$enableRain : 0) {
            $ptr = 15;
            continue main;
        }
        $var19 = $var20.$storageArrays.data;
        $var9 = $var19.length;
        $var10 = 0;
        bd: while (true) {
            if ($var10 >= $var9) {
                if (!$var3.$hasNext())
                    return;
                $var4 = $var3.$next();
                $var9 = $var4.$chunkXPos;
                $var5 = $var9 * 16 | 0;
                $var13 = $var4.$chunkZPos;
                $var6 = $var13 * 16 | 0;
                $var4 = $this.$chunkProvider;
                $var20 = $var4.$loadedChunkHashMap;
                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                $var19 = $var20.$hashArray.data;
                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                bl: {
                    while ($var20 !== null) {
                        if (Long_eq($var20.$key1, var$11)) {
                            $var20 = $var20.$value4;
                            break bl;
                        }
                        $var20 = $var20.$nextEntry;
                    }
                    $var20 = null;
                }
                s: {
                    $var20 = $var20;
                    if ($var20 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break s;
                        if ($var4.$loadChunkOnProvideRequest)
                            break s;
                        $var20 = $var4.$defaultEmptyChunk;
                    }
                    $ptr = 2;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            be: {
                $var20 = $var19[$var10];
                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                    $var21 = 0;
                    while (true) {
                        if ($var21 >= 3)
                            break be;
                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                        $this.$updateLCG = $var9_0;
                        $var13 = $var9_0 >> 2;
                        $var14 = $var13 & 15;
                        $var15 = $var13 >> 8 & 15;
                        $var16 = $var13 >> 16 & 15;
                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                        $var4 = $var20.$blockMSBArray;
                        if ($var4 !== null)
                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                        nms_Block_$callClinit();
                        $var18 = nms_Block_blocksList.data[$var17];
                        if ($var18 !== null && $var18.$needsRandomTick)
                            break bd;
                        $var21 = $var21 + 1 | 0;
                    }
                }
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9_0 = $var14 + $var5 | 0;
        $var13 = $var16 + $var20.$yBase | 0;
        $var11 = $var15 + $var6 | 0;
        $var4 = $this.$rand0;
        $ptr = 11;
        continue main;
    case 18:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var14, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        bA: {
            if (nms_Chunk_getPrecipitationHeight($var18, $var21, $var13) > $var11)
                $var9 = 0;
            else {
                $var4 = $this.$chunkProvider.$loadedChunkHashMap;
                $var8 = nms_LongHashMap_hash($var16);
                $var19 = $var4.$hashArray.data;
                $var4 = $var19[$var8 & ($var19.length - 1 | 0)];
                c: {
                    while (true) {
                        if ($var4 === null) {
                            $var4 = null;
                            break c;
                        }
                        if (Long_eq($var4.$key1, var$11))
                            break;
                        $var4 = $var4.$nextEntry;
                    }
                }
                $var9 = $var4 === null ? 0 : 1;
                bx: {
                    if ($var9) {
                        $var4 = $this.$chunkProvider;
                        $var19 = $var4.$loadedChunkHashMap.$hashArray.data;
                        $var18 = $var19[$var17 & ($var19.length - 1 | 0)];
                        by: {
                            while ($var18 !== null) {
                                if (Long_eq($var18.$key1, var$11)) {
                                    $var18 = $var18.$value4;
                                    break by;
                                }
                                $var18 = $var18.$nextEntry;
                            }
                            $var18 = null;
                        }
                        $var18 = $var18;
                        if ($var18 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break bA;
                            if ($var4.$loadChunkOnProvideRequest)
                                break bA;
                            $var18 = $var4.$defaultEmptyChunk;
                        }
                        if ($var18 !== null) {
                            $var4 = nms_Chunk_getBiomeGenForWorldCoords($var18, $var21, $var13, $this.$provider.$worldChunkMgr);
                            break bx;
                        }
                    }
                    $var4 = $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9_0, $var10);
                }
                $var9 = $var4.$enableSnow;
                $var9 = $var9 ? 0 : !$var9 ? $var4.$enableRain : 0;
            }
            if ($var9) {
                $var4 = new nms_EntityLightningBolt;
                var$26 = $var9_0;
                var$27 = $var11;
                var$28 = $var10;
                $ptr = 12;
                continue main;
            }
            $var4 = $this.$rand0;
            var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$15;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
                $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                $this.$updateLCG = $var9;
                $var8 = $var9 >> 2;
                $var9 = $var8 & 15;
                $var10 = $var8 >> 8 & 15;
                $var9 = $var9 + $var5 | 0;
                $var9_0 = $var10 + $var6 | 0;
                $var16 = $var9 >> 4;
                $var17 = $var9_0 >> 4;
                $var4 = $this.$chunkProvider;
                $var18 = $var4.$loadedChunkHashMap;
                var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
                $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
                $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
                $var19 = $var18.$hashArray.data;
                $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
                bq: {
                    while ($var18 !== null) {
                        if (Long_eq($var18.$key1, var$11)) {
                            $var18 = $var18.$value4;
                            break bq;
                        }
                        $var18 = $var18.$nextEntry;
                    }
                    $var18 = null;
                }
                g: {
                    $var18 = $var18;
                    if ($var18 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break g;
                        if ($var4.$loadChunkOnProvideRequest)
                            break g;
                        $var18 = $var4.$defaultEmptyChunk;
                    }
                    $var14 = $var9 & 15;
                    $var15 = $var9_0 & 15;
                    $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                    $var10 = $var11_0 - 1 | 0;
                    $var21 = 1;
                    $ptr = 5;
                    continue main;
                }
                $ptr = 6;
                continue main;
            }
            $var19 = $var20.$storageArrays.data;
            $var9 = $var19.length;
            $var10 = 0;
            bB: while (true) {
                if ($var10 >= $var9) {
                    if (!$var3.$hasNext())
                        return;
                    $var4 = $var3.$next();
                    $var9 = $var4.$chunkXPos;
                    $var5 = $var9 * 16 | 0;
                    $var13 = $var4.$chunkZPos;
                    $var6 = $var13 * 16 | 0;
                    $var4 = $this.$chunkProvider;
                    $var20 = $var4.$loadedChunkHashMap;
                    var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                    $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                    $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                    $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                    $var19 = $var20.$hashArray.data;
                    $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                    w: {
                        while ($var20 !== null) {
                            if (Long_eq($var20.$key1, var$11)) {
                                $var20 = $var20.$value4;
                                break w;
                            }
                            $var20 = $var20.$nextEntry;
                        }
                        $var20 = null;
                    }
                    bF: {
                        $var20 = $var20;
                        if ($var20 === null) {
                            if ($var4.$worldObj0.$findingSpawnPoint)
                                break bF;
                            if ($var4.$loadChunkOnProvideRequest)
                                break bF;
                            $var20 = $var4.$defaultEmptyChunk;
                        }
                        $ptr = 2;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                h: {
                    $var20 = $var19[$var10];
                    if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                        $var21 = 0;
                        while (true) {
                            if ($var21 >= 3)
                                break h;
                            $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                            $this.$updateLCG = $var9_0;
                            $var13 = $var9_0 >> 2;
                            $var14 = $var13 & 15;
                            $var15 = $var13 >> 8 & 15;
                            $var16 = $var13 >> 16 & 15;
                            $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                            $var4 = $var20.$blockMSBArray;
                            if ($var4 !== null)
                                $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                            nms_Block_$callClinit();
                            $var18 = nms_Block_blocksList.data[$var17];
                            if ($var18 !== null && $var18.$needsRandomTick)
                                break bB;
                            $var21 = $var21 + 1 | 0;
                        }
                    }
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9_0 = $var14 + $var5 | 0;
            $var13 = $var16 + $var20.$yBase | 0;
            $var11 = $var15 + $var6 | 0;
            $var4 = $this.$rand0;
            $ptr = 11;
            continue main;
        }
        $ptr = 19;
    case 19:
        $tmp = nms_ChunkProviderServer_loadChunk($var4, $var14, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        $var4 = $var18 === null ? $this.$provider.$worldChunkMgr.$getBiomeGenAt($var9_0, $var10) : nms_Chunk_getBiomeGenForWorldCoords($var18, $var21, $var13, $this.$provider.$worldChunkMgr);
        $var9 = $var4.$enableSnow;
        if ($var9 ? 0 : !$var9 ? $var4.$enableRain : 0) {
            $var4 = new nms_EntityLightningBolt;
            var$26 = $var9_0;
            var$27 = $var11;
            var$28 = $var10;
            $ptr = 12;
            continue main;
        }
        $var4 = $this.$rand0;
        var$15 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$15;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$15, var$4)))), 31))) {
            $var9 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
            $this.$updateLCG = $var9;
            $var8 = $var9 >> 2;
            $var9 = $var8 & 15;
            $var10 = $var8 >> 8 & 15;
            $var9 = $var9 + $var5 | 0;
            $var9_0 = $var10 + $var6 | 0;
            $var16 = $var9 >> 4;
            $var17 = $var9_0 >> 4;
            $var4 = $this.$chunkProvider;
            $var18 = $var4.$loadedChunkHashMap;
            var$11 = Long_or(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
            $var10 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
            $var10 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
            $var8 = $var10 ^ ($var10 >>> 7 | 0) ^ ($var10 >>> 4 | 0);
            $var19 = $var18.$hashArray.data;
            $var18 = $var19[$var8 & ($var19.length - 1 | 0)];
            be: {
                while ($var18 !== null) {
                    if (Long_eq($var18.$key1, var$11)) {
                        $var18 = $var18.$value4;
                        break be;
                    }
                    $var18 = $var18.$nextEntry;
                }
                $var18 = null;
            }
            e: {
                $var18 = $var18;
                if ($var18 === null) {
                    if ($var4.$worldObj0.$findingSpawnPoint)
                        break e;
                    if ($var4.$loadChunkOnProvideRequest)
                        break e;
                    $var18 = $var4.$defaultEmptyChunk;
                }
                $var14 = $var9 & 15;
                $var15 = $var9_0 & 15;
                $var11_0 = nms_Chunk_getPrecipitationHeight($var18, $var14, $var15);
                $var10 = $var11_0 - 1 | 0;
                $var21 = 1;
                $ptr = 5;
                continue main;
            }
            $ptr = 6;
            continue main;
        }
        $var19 = $var20.$storageArrays.data;
        $var9 = $var19.length;
        $var10 = 0;
        bE: while (true) {
            if ($var10 >= $var9) {
                if (!$var3.$hasNext())
                    return;
                $var4 = $var3.$next();
                $var9 = $var4.$chunkXPos;
                $var5 = $var9 * 16 | 0;
                $var13 = $var4.$chunkZPos;
                $var6 = $var13 * 16 | 0;
                $var4 = $this.$chunkProvider;
                $var20 = $var4.$loadedChunkHashMap;
                var$11 = Long_or(Long_and(Long_fromInt($var9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var13), Long_create(4294967295, 0)), 32));
                $var9_0 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                $var9_0 = $var9_0 ^ ($var9_0 >>> 20 | 0) ^ ($var9_0 >>> 12 | 0);
                $var21 = $var9_0 ^ ($var9_0 >>> 7 | 0) ^ ($var9_0 >>> 4 | 0);
                $var19 = $var20.$hashArray.data;
                $var20 = $var19[$var21 & ($var19.length - 1 | 0)];
                t: {
                    while ($var20 !== null) {
                        if (Long_eq($var20.$key1, var$11)) {
                            $var20 = $var20.$value4;
                            break t;
                        }
                        $var20 = $var20.$nextEntry;
                    }
                    $var20 = null;
                }
                br: {
                    $var20 = $var20;
                    if ($var20 === null) {
                        if ($var4.$worldObj0.$findingSpawnPoint)
                            break br;
                        if ($var4.$loadChunkOnProvideRequest)
                            break br;
                        $var20 = $var4.$defaultEmptyChunk;
                    }
                    $ptr = 2;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            bg: {
                $var20 = $var19[$var10];
                if ($var20 !== null && ($var20.$tickRefCount <= 0 ? 0 : 1)) {
                    $var21 = 0;
                    while (true) {
                        if ($var21 >= 3)
                            break bg;
                        $var9_0 = ($this.$updateLCG * 3 | 0) + 1013904223 | 0;
                        $this.$updateLCG = $var9_0;
                        $var13 = $var9_0 >> 2;
                        $var14 = $var13 & 15;
                        $var15 = $var13 >> 8 & 15;
                        $var16 = $var13 >> 16 & 15;
                        $var17 = $var20.$blockLSBArray.data[$var16 << 8 | $var15 << 4 | $var14] & 255;
                        $var4 = $var20.$blockMSBArray;
                        if ($var4 !== null)
                            $var17 = nms_NibbleArray_get($var4, $var14, $var16, $var15) << 8 | $var17;
                        nms_Block_$callClinit();
                        $var18 = nms_Block_blocksList.data[$var17];
                        if ($var18 !== null && $var18.$needsRandomTick)
                            break bE;
                        $var21 = $var21 + 1 | 0;
                    }
                }
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9_0 = $var14 + $var5 | 0;
        $var13 = $var16 + $var20.$yBase | 0;
        $var11 = $var15 + $var6 | 0;
        $var4 = $this.$rand0;
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, $var20, $var3, var$4, var$5, var$6, $var9, $var5, $var13, $var6, var$11, $var9_0, $var21, $var19, var$15, var$16, var$17, $var8, $var10, $var14, $var15, $var18, $var16, $var17, $var11, var$26, var$27, var$28, $var11_0, $var12, $ptr);
},
nms_WorldServer_isBlockTickScheduledThisTick = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9;
    $var5 = new nms_NextTickListEntry;
    var$6 = nms_NextTickListEntry_nextTickEntryID;
    nms_NextTickListEntry_nextTickEntryID = Long_add(var$6, Long_fromInt(1));
    $var5.$tickEntryID = var$6;
    $var5.$xCoord2 = $par1;
    $var5.$yCoord2 = $par2;
    $var5.$zCoord2 = $par3;
    $var5.$blockID3 = $par4;
    var$7 = $this.$pendingTickListEntriesThisTick;
    var$8 = 0;
    $par3 = var$7.$modCount;
    $par4 = var$7.$size();
    a: {
        while (true) {
            if (!(var$8 >= $par4 ? 0 : 1)) {
                $par1 = 0;
                break a;
            }
            if ($par3 < var$7.$modCount) {
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
            $par2 = var$8 + 1 | 0;
            var$9 = var$7.$get(var$8);
            if (var$9 === $var5 ? 1 : var$9 !== null ? var$9.$equals($var5) : $var5 !== null ? 0 : 1)
                break;
            var$8 = $par2;
        }
        $par1 = 1;
    }
    return $par1;
},
nms_WorldServer_scheduleBlockUpdate = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_scheduleBlockUpdateWithPriority($this, $par1, $par2, $par3, $par4, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, var$6, $ptr);
},
nms_WorldServer_scheduleBlockUpdateWithPriority = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = new nms_NextTickListEntry;
        var$8 = nms_NextTickListEntry_nextTickEntryID;
        nms_NextTickListEntry_nextTickEntryID = Long_add(var$8, Long_fromInt(1));
        $var7.$tickEntryID = var$8;
        $var7.$xCoord2 = $par1;
        $var7.$yCoord2 = $par2;
        $var7.$zCoord2 = $par3;
        $var7.$blockID3 = $par4;
        if ($this.$scheduledUpdatesAreImmediate && $par4 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$par4].$func_82506_l()) {
                $par2 = $var7.$xCoord2;
                $par3 = $par2 - 8 | 0;
                $par4 = $var7.$yCoord2;
                $par5 = $par4 - 8 | 0;
                $par6 = $var7.$zCoord2;
                if (!nms_World_checkChunksExist($this, $par3, $par5, $par6 - 8 | 0, $par2 + 8 | 0, $par4 + 8 | 0, $par6 + 8 | 0))
                    return;
                $par1 = $var7.$xCoord2;
                $par2 = $var7.$yCoord2;
                $par3 = $var7.$zCoord2;
                $ptr = 1;
                continue main;
            }
            $par5 = 1;
        }
        if (nms_World_checkChunksExist($this, $par1 - 0 | 0, $par2 - 0 | 0, $par3 - 0 | 0, $par1 + 0 | 0, $par2 + 0 | 0, $par3 + 0 | 0)) {
            if ($par4 > 0) {
                $var7.$scheduledTime = Long_add(Long_fromInt($par5), $this.$worldInfo.$getWorldTotalTime());
                $var7.$priority0 = $par6;
            }
            var$9 = $this.$pendingTickListEntriesHashSet.$backingMap;
            $par3 = (((($var7.$xCoord2 * 1024 | 0) * 1024 | 0) + ($var7.$zCoord2 * 1024 | 0) | 0) + $var7.$yCoord2 | 0) * 256 | 0;
            var$10 = var$9.$elementData.data;
            var$9 = var$10[$par3 & (var$10.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == $par3) {
                    var$11 = var$9.$key;
                    if ($var7 !== var$11 && !nms_NextTickListEntry_equals($var7, var$11) ? 0 : 1)
                        break;
                }
                var$9 = var$9.$next3;
            }
            if (!(var$9 === null ? 0 : 1)) {
                var$9 = $this.$pendingTickListEntriesHashSet;
                ju_HashMap_putImpl(var$9.$backingMap, $var7, var$9);
                var$9 = $this.$pendingTickListEntriesTreeSet.$map;
                var$11 = var$9.$root;
                if (var$11 === null) {
                    var$11 = new ju_TreeMap$TreeNode;
                    var$12 = null;
                    var$11.$key0 = $var7;
                    var$11.$value2 = var$12;
                    var$11.$height = 1;
                    var$11.$size1 = 1;
                } else {
                    var$12 = var$11.$key0;
                    var$13 = $var7;
                    $par1 = nms_NextTickListEntry_comparer(var$13, var$12);
                    if ($par1) {
                        if ($par1 >= 0) {
                            var$12 = var$11.$right;
                            if (var$12 === null) {
                                var$12 = new ju_TreeMap$TreeNode;
                                var$14 = null;
                                var$12.$key0 = $var7;
                                var$12.$value2 = var$14;
                                var$12.$height = 1;
                                var$12.$size1 = 1;
                            } else {
                                $par1 = nms_NextTickListEntry_comparer(var$13, var$12.$key0);
                                if ($par1) {
                                    if ($par1 >= 0) {
                                        var$14 = var$12.$right;
                                        if (var$14 === null) {
                                            var$14 = new ju_TreeMap$TreeNode;
                                            var$15 = null;
                                            var$14.$key0 = $var7;
                                            var$14.$value2 = var$15;
                                            var$14.$height = 1;
                                            var$14.$size1 = 1;
                                        } else {
                                            $par1 = nms_NextTickListEntry_comparer(var$13, var$14.$key0);
                                            if ($par1) {
                                                if ($par1 >= 0) {
                                                    var$15 = var$14.$right;
                                                    if (var$15 === null) {
                                                        var$15 = new ju_TreeMap$TreeNode;
                                                        var$16 = null;
                                                        jl_Object__init_(var$15);
                                                        var$15.$key0 = $var7;
                                                        var$15.$value2 = var$16;
                                                        var$15.$height = 1;
                                                        var$15.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$16 = var$15.$right;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$right = var$16;
                                                            } else {
                                                                var$16 = var$15.$left;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$left = var$16;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                        }
                                                    }
                                                    var$14.$right = var$15;
                                                } else {
                                                    var$15 = var$14.$left;
                                                    if (var$15 === null) {
                                                        var$15 = new ju_TreeMap$TreeNode;
                                                        var$16 = null;
                                                        jl_Object__init_(var$15);
                                                        var$15.$key0 = $var7;
                                                        var$15.$value2 = var$16;
                                                        var$15.$height = 1;
                                                        var$15.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$16 = var$15.$right;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$right = var$16;
                                                            } else {
                                                                var$16 = var$15.$left;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$left = var$16;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                        }
                                                    }
                                                    var$14.$left = var$15;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$14);
                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                            }
                                        }
                                        var$12.$right = var$14;
                                    } else {
                                        var$14 = var$12.$left;
                                        if (var$14 === null) {
                                            var$14 = new ju_TreeMap$TreeNode;
                                            var$15 = null;
                                            var$14.$key0 = $var7;
                                            var$14.$value2 = var$15;
                                            var$14.$height = 1;
                                            var$14.$size1 = 1;
                                        } else {
                                            $par1 = nms_NextTickListEntry_comparer(var$13, var$14.$key0);
                                            if ($par1) {
                                                if ($par1 >= 0) {
                                                    var$15 = var$14.$right;
                                                    if (var$15 === null) {
                                                        var$15 = new ju_TreeMap$TreeNode;
                                                        var$16 = null;
                                                        jl_Object__init_(var$15);
                                                        var$15.$key0 = $var7;
                                                        var$15.$value2 = var$16;
                                                        var$15.$height = 1;
                                                        var$15.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$16 = var$15.$right;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$right = var$16;
                                                            } else {
                                                                var$16 = var$15.$left;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$left = var$16;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                        }
                                                    }
                                                    var$14.$right = var$15;
                                                } else {
                                                    var$15 = var$14.$left;
                                                    if (var$15 === null) {
                                                        var$15 = new ju_TreeMap$TreeNode;
                                                        var$16 = null;
                                                        jl_Object__init_(var$15);
                                                        var$15.$key0 = $var7;
                                                        var$15.$value2 = var$16;
                                                        var$15.$height = 1;
                                                        var$15.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$16 = var$15.$right;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$right = var$16;
                                                            } else {
                                                                var$16 = var$15.$left;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null)
                                                                                var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                                    else
                                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$left = var$16;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                        }
                                                    }
                                                    var$14.$left = var$15;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$14);
                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                            }
                                        }
                                        var$12.$left = var$14;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$12);
                                    var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                }
                            }
                            var$11.$right = var$12;
                        } else {
                            var$18 = var$11.$left;
                            if (var$18 === null) {
                                var$18 = new ju_TreeMap$TreeNode;
                                var$12 = null;
                                var$18.$key0 = $var7;
                                var$18.$value2 = var$12;
                                var$18.$height = 1;
                                var$18.$size1 = 1;
                            } else {
                                $par1 = nms_NextTickListEntry_comparer(var$13, var$18.$key0);
                                if ($par1) {
                                    if ($par1 >= 0) {
                                        var$19 = var$18.$right;
                                        if (var$19 === null) {
                                            var$19 = new ju_TreeMap$TreeNode;
                                            var$12 = null;
                                            var$19.$key0 = $var7;
                                            var$19.$value2 = var$12;
                                            var$19.$height = 1;
                                            var$19.$size1 = 1;
                                        } else {
                                            $par1 = nms_NextTickListEntry_comparer(var$13, var$19.$key0);
                                            if ($par1) {
                                                if ($par1 >= 0) {
                                                    var$12 = var$19.$right;
                                                    if (var$12 === null) {
                                                        var$12 = new ju_TreeMap$TreeNode;
                                                        var$14 = null;
                                                        jl_Object__init_(var$12);
                                                        var$12.$key0 = $var7;
                                                        var$12.$value2 = var$14;
                                                        var$12.$height = 1;
                                                        var$12.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$12.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$14 = var$12.$right;
                                                                if (var$14 === null) {
                                                                    var$14 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                                    var$14.$height = 1;
                                                                    var$14.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$15 = var$14.$right;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$14.$left;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                    }
                                                                }
                                                                var$12.$right = var$14;
                                                            } else {
                                                                var$14 = var$12.$left;
                                                                if (var$14 === null) {
                                                                    var$14 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                                    var$14.$height = 1;
                                                                    var$14.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$15 = var$14.$right;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$14.$left;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                    }
                                                                }
                                                                var$12.$left = var$14;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$19.$right = var$12;
                                                } else {
                                                    var$12 = var$19.$left;
                                                    if (var$12 === null) {
                                                        var$12 = new ju_TreeMap$TreeNode;
                                                        var$14 = null;
                                                        jl_Object__init_(var$12);
                                                        var$12.$key0 = $var7;
                                                        var$12.$value2 = var$14;
                                                        var$12.$height = 1;
                                                        var$12.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$12.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$14 = var$12.$right;
                                                                if (var$14 === null) {
                                                                    var$14 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                                    var$14.$height = 1;
                                                                    var$14.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$15 = var$14.$right;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$14.$left;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                    }
                                                                }
                                                                var$12.$right = var$14;
                                                            } else {
                                                                var$14 = var$12.$left;
                                                                if (var$14 === null) {
                                                                    var$14 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                                    var$14.$height = 1;
                                                                    var$14.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$15 = var$14.$right;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$14.$left;
                                                                            if (var$15 === null)
                                                                                var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                                    else
                                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$14.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$14);
                                                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                    }
                                                                }
                                                                var$12.$left = var$14;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$19.$left = var$12;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$19);
                                                var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                            }
                                        }
                                        var$18.$right = var$19;
                                    } else {
                                        var$17 = var$18.$left;
                                        if (var$17 === null) {
                                            var$17 = new ju_TreeMap$TreeNode;
                                            var$12 = null;
                                            var$17.$key0 = $var7;
                                            var$17.$value2 = var$12;
                                            var$17.$height = 1;
                                            var$17.$size1 = 1;
                                        } else {
                                            $par1 = nms_NextTickListEntry_comparer(var$13, var$17.$key0);
                                            if ($par1) {
                                                if ($par1 >= 0) {
                                                    var$19 = var$17.$right;
                                                    if (var$19 === null) {
                                                        var$19 = new ju_TreeMap$TreeNode;
                                                        var$12 = null;
                                                        jl_Object__init_(var$19);
                                                        var$19.$key0 = $var7;
                                                        var$19.$value2 = var$12;
                                                        var$19.$height = 1;
                                                        var$19.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$19.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$12 = var$19.$right;
                                                                if (var$12 === null) {
                                                                    var$12 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$12, $var7, null);
                                                                    var$12.$height = 1;
                                                                    var$12.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$12.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$14 = var$12.$right;
                                                                            if (var$14 === null)
                                                                                var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                                    else
                                                                                        var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$14);
                                                                                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                }
                                                                            }
                                                                            var$12.$right = var$14;
                                                                        } else {
                                                                            var$14 = var$12.$left;
                                                                            if (var$14 === null)
                                                                                var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                                    else
                                                                                        var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$14);
                                                                                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                }
                                                                            }
                                                                            var$12.$left = var$14;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                }
                                                                var$19.$right = var$12;
                                                            } else {
                                                                var$12 = var$19.$left;
                                                                if (var$12 === null) {
                                                                    var$12 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$12, $var7, null);
                                                                    var$12.$height = 1;
                                                                    var$12.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$12.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$14 = var$12.$right;
                                                                            if (var$14 === null)
                                                                                var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                                    else
                                                                                        var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$14);
                                                                                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                }
                                                                            }
                                                                            var$12.$right = var$14;
                                                                        } else {
                                                                            var$14 = var$12.$left;
                                                                            if (var$14 === null)
                                                                                var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                                    else
                                                                                        var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$14);
                                                                                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                }
                                                                            }
                                                                            var$12.$left = var$14;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                }
                                                                var$19.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                        }
                                                    }
                                                    var$17.$right = var$19;
                                                } else {
                                                    var$16 = var$17.$left;
                                                    if (var$16 === null) {
                                                        var$16 = new ju_TreeMap$TreeNode;
                                                        var$12 = null;
                                                        jl_Object__init_(var$16);
                                                        var$16.$key0 = $var7;
                                                        var$16.$value2 = var$12;
                                                        var$16.$height = 1;
                                                        var$16.$size1 = 1;
                                                    } else {
                                                        $par1 = nms_NextTickListEntry_comparer(var$13, var$16.$key0);
                                                        if ($par1) {
                                                            if ($par1 >= 0) {
                                                                var$19 = var$16.$right;
                                                                if (var$19 === null) {
                                                                    var$19 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$19, $var7, null);
                                                                    var$19.$height = 1;
                                                                    var$19.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$19.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$12 = var$19.$right;
                                                                            if (var$12 === null)
                                                                                var$12 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$12.$right = ju_TreeMap_getOrCreateNode(var$9, var$12.$right, $var7);
                                                                                    else
                                                                                        var$12.$left = ju_TreeMap_getOrCreateNode(var$9, var$12.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$12);
                                                                                    var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                                }
                                                                            }
                                                                            var$19.$right = var$12;
                                                                        } else {
                                                                            var$12 = var$19.$left;
                                                                            if (var$12 === null)
                                                                                var$12 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$12.$right = ju_TreeMap_getOrCreateNode(var$9, var$12.$right, $var7);
                                                                                    else
                                                                                        var$12.$left = ju_TreeMap_getOrCreateNode(var$9, var$12.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$12);
                                                                                    var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                                }
                                                                            }
                                                                            var$19.$left = var$12;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$19);
                                                                        var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                    }
                                                                }
                                                                var$16.$right = var$19;
                                                            } else {
                                                                var$15 = var$16.$left;
                                                                if (var$15 === null) {
                                                                    var$15 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$15, $var7, null);
                                                                    var$15.$height = 1;
                                                                    var$15.$size1 = 1;
                                                                } else {
                                                                    $par1 = nms_NextTickListEntry_compareTo(var$13, var$15.$key0);
                                                                    if ($par1) {
                                                                        if ($par1 >= 0) {
                                                                            var$19 = var$15.$right;
                                                                            if (var$19 === null)
                                                                                var$19 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$19.$right = ju_TreeMap_getOrCreateNode(var$9, var$19.$right, $var7);
                                                                                    else
                                                                                        var$19.$left = ju_TreeMap_getOrCreateNode(var$9, var$19.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$19);
                                                                                    var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                }
                                                                            }
                                                                            var$15.$right = var$19;
                                                                        } else {
                                                                            var$14 = var$15.$left;
                                                                            if (var$14 === null)
                                                                                var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                            else {
                                                                                $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                if ($par1) {
                                                                                    if ($par1 >= 0)
                                                                                        var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                                    else
                                                                                        var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                                    ju_TreeMap$TreeNode_fix(var$14);
                                                                                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                }
                                                                            }
                                                                            var$15.$left = var$14;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$15);
                                                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                    }
                                                                }
                                                                var$16.$left = var$15;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                        }
                                                    }
                                                    var$17.$left = var$16;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$17);
                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                            }
                                        }
                                        var$18.$left = var$17;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$18);
                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                }
                            }
                            var$11.$left = var$18;
                        }
                        ju_TreeMap$TreeNode_fix(var$11);
                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                    }
                }
                var$9.$root = var$11;
                var$14 = $var7;
                nms_NextTickListEntry_comparer(var$14, $var7);
                a: {
                    while (true) {
                        if (var$11 === null) {
                            var$11 = null;
                            break a;
                        }
                        $par1 = nms_NextTickListEntry_comparer(var$14, var$11.$key0);
                        if (!$par1)
                            break;
                        var$11 = $par1 >= 0 ? var$11.$right : var$11.$left;
                    }
                }
                var$12 = var$11.$value2;
                var$11.$value2 = $var7;
                var$11.$value2 = $var7;
                var$9.$modCount2 = var$9.$modCount2 + 1 | 0;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == $var7.$blockID3 && $var9 > 0) {
            var$9 = nms_Block_blocksList.data[$var9];
            $par1 = $var7.$xCoord2;
            $par2 = $var7.$yCoord2;
            $par3 = $var7.$zCoord2;
            $var7 = $this.$rand0;
            $ptr = 2;
            continue main;
        }
        return;
    case 2:
        var$9.$updateTick($this, $par1, $par2, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $var9, $ptr);
},
nms_WorldServer_scheduleBlockUpdateFromLoad = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19;
    $var7 = new nms_NextTickListEntry;
    var$8 = nms_NextTickListEntry_nextTickEntryID;
    nms_NextTickListEntry_nextTickEntryID = Long_add(var$8, Long_fromInt(1));
    $var7.$tickEntryID = var$8;
    $var7.$xCoord2 = $par1;
    $var7.$yCoord2 = $par2;
    $var7.$zCoord2 = $par3;
    $var7.$blockID3 = $par4;
    $var7.$priority0 = $par6;
    if ($par4 > 0)
        $var7.$scheduledTime = Long_add(Long_fromInt($par5), $this.$worldInfo.$getWorldTotalTime());
    var$9 = $this.$pendingTickListEntriesHashSet.$backingMap;
    $par3 = (((($var7.$xCoord2 * 1024 | 0) * 1024 | 0) + ($var7.$zCoord2 * 1024 | 0) | 0) + $var7.$yCoord2 | 0) * 256 | 0;
    var$10 = var$9.$elementData.data;
    var$9 = var$10[$par3 & (var$10.length - 1 | 0)];
    while (var$9 !== null) {
        if (var$9.$origKeyHash == $par3) {
            var$11 = var$9.$key;
            if ($var7 !== var$11 && !nms_NextTickListEntry_equals($var7, var$11) ? 0 : 1)
                break;
        }
        var$9 = var$9.$next3;
    }
    if (!(var$9 === null ? 0 : 1)) {
        var$9 = $this.$pendingTickListEntriesHashSet;
        ju_HashMap_putImpl(var$9.$backingMap, $var7, var$9);
        var$9 = $this.$pendingTickListEntriesTreeSet.$map;
        var$11 = var$9.$root;
        if (var$11 === null) {
            var$11 = new ju_TreeMap$TreeNode;
            var$12 = null;
            var$11.$key0 = $var7;
            var$11.$value2 = var$12;
            var$11.$height = 1;
            var$11.$size1 = 1;
        } else {
            var$12 = var$11.$key0;
            var$13 = $var7;
            $par1 = nms_NextTickListEntry_comparer(var$13, var$12);
            if ($par1) {
                if ($par1 >= 0) {
                    var$12 = var$11.$right;
                    if (var$12 === null) {
                        var$12 = new ju_TreeMap$TreeNode;
                        var$14 = null;
                        var$12.$key0 = $var7;
                        var$12.$value2 = var$14;
                        var$12.$height = 1;
                        var$12.$size1 = 1;
                    } else {
                        $par1 = nms_NextTickListEntry_comparer(var$13, var$12.$key0);
                        if ($par1) {
                            if ($par1 >= 0) {
                                var$14 = var$12.$right;
                                if (var$14 === null) {
                                    var$14 = new ju_TreeMap$TreeNode;
                                    var$15 = null;
                                    var$14.$key0 = $var7;
                                    var$14.$value2 = var$15;
                                    var$14.$height = 1;
                                    var$14.$size1 = 1;
                                } else {
                                    $par1 = nms_NextTickListEntry_comparer(var$13, var$14.$key0);
                                    if ($par1) {
                                        if ($par1 >= 0) {
                                            var$15 = var$14.$right;
                                            if (var$15 === null) {
                                                var$15 = new ju_TreeMap$TreeNode;
                                                var$16 = null;
                                                jl_Object__init_(var$15);
                                                var$15.$key0 = $var7;
                                                var$15.$value2 = var$16;
                                                var$15.$height = 1;
                                                var$15.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$16 = var$15.$right;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$right = var$16;
                                                    } else {
                                                        var$16 = var$15.$left;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$left = var$16;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                }
                                            }
                                            var$14.$right = var$15;
                                        } else {
                                            var$15 = var$14.$left;
                                            if (var$15 === null) {
                                                var$15 = new ju_TreeMap$TreeNode;
                                                var$16 = null;
                                                jl_Object__init_(var$15);
                                                var$15.$key0 = $var7;
                                                var$15.$value2 = var$16;
                                                var$15.$height = 1;
                                                var$15.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$16 = var$15.$right;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$right = var$16;
                                                    } else {
                                                        var$16 = var$15.$left;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$left = var$16;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                }
                                            }
                                            var$14.$left = var$15;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$14);
                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                    }
                                }
                                var$12.$right = var$14;
                            } else {
                                var$14 = var$12.$left;
                                if (var$14 === null) {
                                    var$14 = new ju_TreeMap$TreeNode;
                                    var$15 = null;
                                    var$14.$key0 = $var7;
                                    var$14.$value2 = var$15;
                                    var$14.$height = 1;
                                    var$14.$size1 = 1;
                                } else {
                                    $par1 = nms_NextTickListEntry_comparer(var$13, var$14.$key0);
                                    if ($par1) {
                                        if ($par1 >= 0) {
                                            var$15 = var$14.$right;
                                            if (var$15 === null) {
                                                var$15 = new ju_TreeMap$TreeNode;
                                                var$16 = null;
                                                jl_Object__init_(var$15);
                                                var$15.$key0 = $var7;
                                                var$15.$value2 = var$16;
                                                var$15.$height = 1;
                                                var$15.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$16 = var$15.$right;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$right = var$16;
                                                    } else {
                                                        var$16 = var$15.$left;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$left = var$16;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                }
                                            }
                                            var$14.$right = var$15;
                                        } else {
                                            var$15 = var$14.$left;
                                            if (var$15 === null) {
                                                var$15 = new ju_TreeMap$TreeNode;
                                                var$16 = null;
                                                jl_Object__init_(var$15);
                                                var$15.$key0 = $var7;
                                                var$15.$value2 = var$16;
                                                var$15.$height = 1;
                                                var$15.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$15.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$16 = var$15.$right;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$right = var$16;
                                                    } else {
                                                        var$16 = var$15.$left;
                                                        if (var$16 === null) {
                                                            var$16 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$16, $var7, null);
                                                            var$16.$height = 1;
                                                            var$16.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$16.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$17 = var$16.$right;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$right = var$17;
                                                                } else {
                                                                    var$17 = var$16.$left;
                                                                    if (var$17 === null)
                                                                        var$17 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$17.$right = ju_TreeMap_getOrCreateNode(var$9, var$17.$right, $var7);
                                                                            else
                                                                                var$17.$left = ju_TreeMap_getOrCreateNode(var$9, var$17.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$16.$left = var$17;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                            }
                                                        }
                                                        var$15.$left = var$16;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                }
                                            }
                                            var$14.$left = var$15;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$14);
                                        var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                    }
                                }
                                var$12.$left = var$14;
                            }
                            ju_TreeMap$TreeNode_fix(var$12);
                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                        }
                    }
                    var$11.$right = var$12;
                } else {
                    var$18 = var$11.$left;
                    if (var$18 === null) {
                        var$18 = new ju_TreeMap$TreeNode;
                        var$12 = null;
                        var$18.$key0 = $var7;
                        var$18.$value2 = var$12;
                        var$18.$height = 1;
                        var$18.$size1 = 1;
                    } else {
                        $par1 = nms_NextTickListEntry_comparer(var$13, var$18.$key0);
                        if ($par1) {
                            if ($par1 >= 0) {
                                var$19 = var$18.$right;
                                if (var$19 === null) {
                                    var$19 = new ju_TreeMap$TreeNode;
                                    var$12 = null;
                                    var$19.$key0 = $var7;
                                    var$19.$value2 = var$12;
                                    var$19.$height = 1;
                                    var$19.$size1 = 1;
                                } else {
                                    $par1 = nms_NextTickListEntry_comparer(var$13, var$19.$key0);
                                    if ($par1) {
                                        if ($par1 >= 0) {
                                            var$12 = var$19.$right;
                                            if (var$12 === null) {
                                                var$12 = new ju_TreeMap$TreeNode;
                                                var$14 = null;
                                                jl_Object__init_(var$12);
                                                var$12.$key0 = $var7;
                                                var$12.$value2 = var$14;
                                                var$12.$height = 1;
                                                var$12.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$12.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$14 = var$12.$right;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$15 = var$14.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$right = var$15;
                                                                } else {
                                                                    var$15 = var$14.$left;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$left = var$15;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$12.$right = var$14;
                                                    } else {
                                                        var$14 = var$12.$left;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$15 = var$14.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$right = var$15;
                                                                } else {
                                                                    var$15 = var$14.$left;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$left = var$15;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$12.$left = var$14;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$12);
                                                    var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                }
                                            }
                                            var$19.$right = var$12;
                                        } else {
                                            var$12 = var$19.$left;
                                            if (var$12 === null) {
                                                var$12 = new ju_TreeMap$TreeNode;
                                                var$14 = null;
                                                jl_Object__init_(var$12);
                                                var$12.$key0 = $var7;
                                                var$12.$value2 = var$14;
                                                var$12.$height = 1;
                                                var$12.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$12.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$14 = var$12.$right;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$15 = var$14.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$right = var$15;
                                                                } else {
                                                                    var$15 = var$14.$left;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$left = var$15;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$12.$right = var$14;
                                                    } else {
                                                        var$14 = var$12.$left;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$15 = var$14.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$right = var$15;
                                                                } else {
                                                                    var$15 = var$14.$left;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$left = var$15;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$12.$left = var$14;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$12);
                                                    var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                }
                                            }
                                            var$19.$left = var$12;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$19);
                                        var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                    }
                                }
                                var$18.$right = var$19;
                            } else {
                                var$17 = var$18.$left;
                                if (var$17 === null) {
                                    var$17 = new ju_TreeMap$TreeNode;
                                    var$12 = null;
                                    var$17.$key0 = $var7;
                                    var$17.$value2 = var$12;
                                    var$17.$height = 1;
                                    var$17.$size1 = 1;
                                } else {
                                    $par1 = nms_NextTickListEntry_comparer(var$13, var$17.$key0);
                                    if ($par1) {
                                        if ($par1 >= 0) {
                                            var$19 = var$17.$right;
                                            if (var$19 === null) {
                                                var$19 = new ju_TreeMap$TreeNode;
                                                var$12 = null;
                                                jl_Object__init_(var$19);
                                                var$19.$key0 = $var7;
                                                var$19.$value2 = var$12;
                                                var$19.$height = 1;
                                                var$19.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$19.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$12 = var$19.$right;
                                                        if (var$12 === null) {
                                                            var$12 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$12, $var7, null);
                                                            var$12.$height = 1;
                                                            var$12.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$12.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$14 = var$12.$right;
                                                                    if (var$14 === null)
                                                                        var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                            else
                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                        }
                                                                    }
                                                                    var$12.$right = var$14;
                                                                } else {
                                                                    var$14 = var$12.$left;
                                                                    if (var$14 === null)
                                                                        var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                            else
                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                        }
                                                                    }
                                                                    var$12.$left = var$14;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$12);
                                                                var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                            }
                                                        }
                                                        var$19.$right = var$12;
                                                    } else {
                                                        var$12 = var$19.$left;
                                                        if (var$12 === null) {
                                                            var$12 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$12, $var7, null);
                                                            var$12.$height = 1;
                                                            var$12.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$12.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$14 = var$12.$right;
                                                                    if (var$14 === null)
                                                                        var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                            else
                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                        }
                                                                    }
                                                                    var$12.$right = var$14;
                                                                } else {
                                                                    var$14 = var$12.$left;
                                                                    if (var$14 === null)
                                                                        var$14 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$9, var$14.$right, $var7);
                                                                            else
                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$9, var$14.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                        }
                                                                    }
                                                                    var$12.$left = var$14;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$12);
                                                                var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                            }
                                                        }
                                                        var$19.$left = var$12;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$19);
                                                    var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                }
                                            }
                                            var$17.$right = var$19;
                                        } else {
                                            var$16 = var$17.$left;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$12 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var7;
                                                var$16.$value2 = var$12;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                $par1 = nms_NextTickListEntry_comparer(var$13, var$16.$key0);
                                                if ($par1) {
                                                    if ($par1 >= 0) {
                                                        var$19 = var$16.$right;
                                                        if (var$19 === null) {
                                                            var$19 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$19, $var7, null);
                                                            var$19.$height = 1;
                                                            var$19.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$19.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$12 = var$19.$right;
                                                                    if (var$12 === null)
                                                                        var$12 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$9, var$12.$right, $var7);
                                                                            else
                                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$9, var$12.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                        }
                                                                    }
                                                                    var$19.$right = var$12;
                                                                } else {
                                                                    var$12 = var$19.$left;
                                                                    if (var$12 === null)
                                                                        var$12 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$9, var$12.$right, $var7);
                                                                            else
                                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$9, var$12.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                        }
                                                                    }
                                                                    var$19.$left = var$12;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$19);
                                                                var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                            }
                                                        }
                                                        var$16.$right = var$19;
                                                    } else {
                                                        var$14 = var$16.$left;
                                                        if (var$14 === null) {
                                                            var$14 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$14, $var7, null);
                                                            var$14.$height = 1;
                                                            var$14.$size1 = 1;
                                                        } else {
                                                            $par1 = nms_NextTickListEntry_compareTo(var$13, var$14.$key0);
                                                            if ($par1) {
                                                                if ($par1 >= 0) {
                                                                    var$15 = var$14.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$9, var$15.$right, $var7);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$9, var$15.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$14.$right = var$15;
                                                                } else {
                                                                    var$12 = var$14.$left;
                                                                    if (var$12 === null)
                                                                        var$12 = ju_TreeMap$TreeNode__init_($var7);
                                                                    else {
                                                                        $par1 = ju_Comparator$NaturalOrder_compare(var$9.$comparator, $var7, ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                        if ($par1) {
                                                                            if ($par1 >= 0)
                                                                                var$12.$right = ju_TreeMap_getOrCreateNode(var$9, var$12.$right, $var7);
                                                                            else
                                                                                var$12.$left = ju_TreeMap_getOrCreateNode(var$9, var$12.$left, $var7);
                                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                        }
                                                                    }
                                                                    var$14.$left = var$12;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$14);
                                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                            }
                                                        }
                                                        var$16.$left = var$14;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$17.$left = var$16;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$17);
                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                    }
                                }
                                var$18.$left = var$17;
                            }
                            ju_TreeMap$TreeNode_fix(var$18);
                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                        }
                    }
                    var$11.$left = var$18;
                }
                ju_TreeMap$TreeNode_fix(var$11);
                var$11 = ju_TreeMap$TreeNode_balance(var$11);
            }
        }
        var$9.$root = var$11;
        var$14 = $var7;
        nms_NextTickListEntry_comparer(var$14, $var7);
        a: {
            while (true) {
                if (var$11 === null) {
                    var$11 = null;
                    break a;
                }
                $par1 = nms_NextTickListEntry_comparer(var$14, var$11.$key0);
                if (!$par1)
                    break;
                var$11 = $par1 >= 0 ? var$11.$right : var$11.$left;
            }
        }
        var$12 = var$11.$value2;
        var$11.$value2 = $var7;
        var$11.$value2 = $var7;
        var$9.$modCount2 = var$9.$modCount2 + 1 | 0;
    }
},
nms_WorldServer_updateEntities = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$playerEntities.$size0 ? 0 : 1))
            $this.$updateEntityTick = 0;
        else {
            var$1 = $this.$updateEntityTick;
            $this.$updateEntityTick = var$1 + 1 | 0;
            if (var$1 >= 1200)
                return;
        }
        $ptr = 1;
    case 1:
        nms_World_updateEntities($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_WorldServer_resetUpdateEntityTick = $this => {
    $this.$updateEntityTick = 0;
},
nms_WorldServer_tickUpdates = ($this, $par1) => {
    let $var4, $var6, $var3, var$5, $var14, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var14 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $this.$pendingTickListEntriesTreeSet.$map.$root;
        $var6 = $var4 === null ? 0 : $var4.$size1;
        if ($var6 != $this.$pendingTickListEntriesHashSet.$backingMap.$elementCount) {
            $var4 = new jl_IllegalStateException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(1684);
            $rt_throw($var4);
        }
        if ($var6 > 1000)
            $var6 = 1000;
        $var3 = 0;
        a: {
            while (true) {
                if ($var3 >= $var6)
                    break a;
                $var4 = $this.$pendingTickListEntriesTreeSet.$map.$root;
                var$5 = null;
                while ($var4 !== null) {
                    $var14 = $var4.$left;
                    var$5 = $var4;
                    $var4 = $var14;
                }
                if (var$5 === null)
                    break;
                $var4 = var$5.$key0;
                if (!$par1 && Long_gt($var4.$scheduledTime, $this.$worldInfo.$getWorldTotalTime()))
                    break a;
                var$5 = $this.$pendingTickListEntriesTreeSet.$map;
                $var14 = var$5.$root;
                var$7 = $var4;
                nms_NextTickListEntry_comparer(var$7, $var4);
                b: {
                    while (true) {
                        if ($var14 === null) {
                            $var14 = null;
                            break b;
                        }
                        var$8 = nms_NextTickListEntry_comparer(var$7, $var14.$key0);
                        if (!var$8)
                            break;
                        $var14 = var$8 >= 0 ? $var14.$right : $var14.$left;
                    }
                }
                if ($var14 === null)
                    var$5 = null;
                else {
                    var$5.$root = ju_TreeMap_deleteNode(var$5, var$5.$root, $var4);
                    var$5.$modCount2 = var$5.$modCount2 + 1 | 0;
                    var$5 = $var14.$value2;
                }
                var$5 = ju_HashMap_removeByKey($this.$pendingTickListEntriesHashSet.$backingMap, $var4);
                var$5 = $this.$pendingTickListEntriesThisTick;
                ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                var$9 = var$5.$array.data;
                var$10 = var$5.$size0;
                var$5.$size0 = var$10 + 1 | 0;
                var$9[var$10] = $var4;
                var$5.$modCount = var$5.$modCount + 1 | 0;
                $var3 = $var3 + 1 | 0;
            }
            $var4 = new ju_NoSuchElementException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var4 = $this.$pendingTickListEntriesThisTick;
        $var14 = new ju_AbstractList$1;
        $var14.$this$00 = $var4;
        $var14.$modCount0 = $var4.$modCount;
        $var14.$size3 = $var4.$size();
        $var14.$removeIndex = (-1);
        $par1 = $var14.$index;
        if (!($par1 >= $var14.$size3 ? 0 : 1)) {
            $var4 = $this.$pendingTickListEntriesThisTick;
            var$9 = $var4.$array;
            $par1 = 0;
            $var3 = $var4.$size0;
            var$5 = null;
            if ($par1 > $var3) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            while ($par1 < $var3) {
                var$11 = var$9.data;
                $var6 = $par1 + 1 | 0;
                var$11[$par1] = var$5;
                $par1 = $var6;
            }
            $var4.$size0 = 0;
            $var4.$modCount = $var4.$modCount + 1 | 0;
            return ($this.$pendingTickListEntriesTreeSet.$map.$root !== null ? 0 : 1) ? 0 : 1;
        }
        $var3 = $var14.$modCount0;
        $var4 = $var14.$this$00;
        if ($var3 < $var4.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var14.$removeIndex = $par1;
        $var14.$index = $par1 + 1 | 0;
        $var4 = $var4.$get($par1);
        ju_AbstractList$1_remove($var14);
        var$12 = $var4.$xCoord2;
        $par1 = var$12 - 0 | 0;
        $var3 = $var4.$yCoord2;
        $var6 = $var3 - 0 | 0;
        var$8 = $var4.$zCoord2;
        if (nms_World_checkChunksExist($this, $par1, $var6, var$8 - 0 | 0, var$12 + 0 | 0, $var3 + 0 | 0, var$8 + 0 | 0)) {
            $par1 = $var4.$xCoord2;
            $var3 = $var4.$yCoord2;
            $var6 = $var4.$zCoord2;
            $ptr = 2;
            continue main;
        }
        $par1 = $var4.$xCoord2;
        $var3 = $var4.$yCoord2;
        $var6 = $var4.$zCoord2;
        var$8 = $var4.$blockID3;
        var$10 = 0;
        var$12 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_scheduleBlockUpdateWithPriority($this, $par1, $var3, $var6, var$8, var$10, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $var14.$index;
        if (!($par1 >= $var14.$size3 ? 0 : 1)) {
            $var4 = $this.$pendingTickListEntriesThisTick;
            var$9 = $var4.$array;
            $par1 = 0;
            $var3 = $var4.$size0;
            var$5 = null;
            if ($par1 > $var3) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            while ($par1 < $var3) {
                var$11 = var$9.data;
                $var6 = $par1 + 1 | 0;
                var$11[$par1] = var$5;
                $par1 = $var6;
            }
            $var4.$size0 = 0;
            $var4.$modCount = $var4.$modCount + 1 | 0;
            return ($this.$pendingTickListEntriesTreeSet.$map.$root !== null ? 0 : 1) ? 0 : 1;
        }
        $var3 = $var14.$modCount0;
        $var4 = $var14.$this$00;
        if ($var3 < $var4.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var14.$removeIndex = $par1;
        $var14.$index = $par1 + 1 | 0;
        $var4 = $var4.$get($par1);
        ju_AbstractList$1_remove($var14);
        var$12 = $var4.$xCoord2;
        $par1 = var$12 - 0 | 0;
        $var3 = $var4.$yCoord2;
        $var6 = $var3 - 0 | 0;
        var$8 = $var4.$zCoord2;
        if (nms_World_checkChunksExist($this, $par1, $var6, var$8 - 0 | 0, var$12 + 0 | 0, $var3 + 0 | 0, var$8 + 0 | 0)) {
            $par1 = $var4.$xCoord2;
            $var3 = $var4.$yCoord2;
            $var6 = $var4.$zCoord2;
            $ptr = 2;
            continue main;
        }
        $par1 = $var4.$xCoord2;
        $var3 = $var4.$yCoord2;
        $var6 = $var4.$zCoord2;
        var$8 = $var4.$blockID3;
        var$10 = 0;
        var$12 = 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($this, $par1, $var3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 > 0 && nms_Block_isAssociatedBlockID($var6, $var4.$blockID3)) {
            var$5 = nms_Block_blocksList.data[$var6];
            $par1 = $var4.$xCoord2;
            $var3 = $var4.$yCoord2;
            $var6 = $var4.$zCoord2;
            $var4 = $this.$rand0;
            $ptr = 3;
            continue main;
        }
        $par1 = $var14.$index;
        if (!($par1 >= $var14.$size3 ? 0 : 1)) {
            $var4 = $this.$pendingTickListEntriesThisTick;
            var$9 = $var4.$array;
            $par1 = 0;
            $var3 = $var4.$size0;
            var$5 = null;
            if ($par1 > $var3) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            while ($par1 < $var3) {
                var$11 = var$9.data;
                $var6 = $par1 + 1 | 0;
                var$11[$par1] = var$5;
                $par1 = $var6;
            }
            $var4.$size0 = 0;
            $var4.$modCount = $var4.$modCount + 1 | 0;
            return ($this.$pendingTickListEntriesTreeSet.$map.$root !== null ? 0 : 1) ? 0 : 1;
        }
        $var3 = $var14.$modCount0;
        $var4 = $var14.$this$00;
        if ($var3 < $var4.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var14.$removeIndex = $par1;
        $var14.$index = $par1 + 1 | 0;
        $var4 = $var4.$get($par1);
        ju_AbstractList$1_remove($var14);
        var$12 = $var4.$xCoord2;
        $par1 = var$12 - 0 | 0;
        $var3 = $var4.$yCoord2;
        $var6 = $var3 - 0 | 0;
        var$8 = $var4.$zCoord2;
        if (nms_World_checkChunksExist($this, $par1, $var6, var$8 - 0 | 0, var$12 + 0 | 0, $var3 + 0 | 0, var$8 + 0 | 0)) {
            $par1 = $var4.$xCoord2;
            $var3 = $var4.$yCoord2;
            $var6 = $var4.$zCoord2;
            continue main;
        }
        $par1 = $var4.$xCoord2;
        $var3 = $var4.$yCoord2;
        $var6 = $var4.$zCoord2;
        var$8 = $var4.$blockID3;
        var$10 = 0;
        var$12 = 0;
        $ptr = 1;
        continue main;
    case 3:
        var$5.$updateTick($this, $par1, $var3, $var6, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $var14.$index;
        if (!($par1 >= $var14.$size3 ? 0 : 1)) {
            $var4 = $this.$pendingTickListEntriesThisTick;
            var$9 = $var4.$array;
            $par1 = 0;
            $var3 = $var4.$size0;
            var$5 = null;
            if ($par1 > $var3) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            while ($par1 < $var3) {
                var$11 = var$9.data;
                $var6 = $par1 + 1 | 0;
                var$11[$par1] = var$5;
                $par1 = $var6;
            }
            $var4.$size0 = 0;
            $var4.$modCount = $var4.$modCount + 1 | 0;
            return ($this.$pendingTickListEntriesTreeSet.$map.$root !== null ? 0 : 1) ? 0 : 1;
        }
        $var3 = $var14.$modCount0;
        $var4 = $var14.$this$00;
        if ($var3 < $var4.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var14.$removeIndex = $par1;
        $var14.$index = $par1 + 1 | 0;
        $var4 = $var4.$get($par1);
        ju_AbstractList$1_remove($var14);
        var$12 = $var4.$xCoord2;
        $par1 = var$12 - 0 | 0;
        $var3 = $var4.$yCoord2;
        $var6 = $var3 - 0 | 0;
        var$8 = $var4.$zCoord2;
        if (nms_World_checkChunksExist($this, $par1, $var6, var$8 - 0 | 0, var$12 + 0 | 0, $var3 + 0 | 0, var$8 + 0 | 0)) {
            $par1 = $var4.$xCoord2;
            $var3 = $var4.$yCoord2;
            $var6 = $var4.$zCoord2;
            $ptr = 2;
            continue main;
        }
        $par1 = $var4.$xCoord2;
        $var3 = $var4.$yCoord2;
        $var6 = $var4.$zCoord2;
        var$8 = $var4.$blockID3;
        var$10 = 0;
        var$12 = 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var4, $var6, $var3, var$5, $var14, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_WorldServer_getPendingBlockUpdates = ($this, $par1Chunk, $par2) => {
    let $var3, $var7, var$5, $var5, $var6, $var8, $var9, $var11, $var10, var$12, var$13;
    $var3 = null;
    $var7 = $par1Chunk.$xPosition0;
    var$5 = $par1Chunk.$zPosition0;
    $var5 = ($var7 << 4) - 2 | 0;
    $var6 = ($var5 + 16 | 0) + 2 | 0;
    $var7 = (var$5 << 4) - 2 | 0;
    $var8 = ($var7 + 16 | 0) + 2 | 0;
    $var9 = 0;
    while ($var9 < 2) {
        if (!$var9) {
            $par1Chunk = $this.$pendingTickListEntriesTreeSet.$map;
            if ($par1Chunk.$cachedKeySet === null) {
                $var11 = new ju_AbstractMap$KeySet;
                $var11.$this$03 = $par1Chunk;
                $par1Chunk.$cachedKeySet = $var11;
            }
            $var10 = $par1Chunk.$cachedKeySet.$iterator();
        } else {
            $par1Chunk = $this.$pendingTickListEntriesThisTick;
            $var10 = new ju_AbstractList$1;
            $var10.$this$00 = $par1Chunk;
            $var10.$modCount0 = $par1Chunk.$modCount;
            $var10.$size3 = $par1Chunk.$size();
            $var10.$removeIndex = (-1);
            if (!($this.$pendingTickListEntriesThisTick.$size0 ? 0 : 1)) {
                if (jl_System_outCache === null) {
                    $par1Chunk = new otcic_JSStdoutPrintStream;
                    $var11 = new ji_ByteArrayOutputStream;
                    $var11.$buf = $rt_createByteArray(32);
                    $par1Chunk.$out0 = $var11;
                    $var11 = new jl_StringBuilder;
                    jl_Object__init_($var11);
                    $var11.$buffer = $rt_createCharArray(16);
                    $par1Chunk.$sb = $var11;
                    $par1Chunk.$buffer0 = $rt_createCharArray(32);
                    $par1Chunk.$autoFlush = 0;
                    $par1Chunk.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_outCache = $par1Chunk;
                }
                var$12 = $this.$pendingTickListEntriesThisTick.$size0;
                $par1Chunk = new jl_AbstractStringBuilder;
                $par1Chunk.$buffer = $rt_createCharArray(20);
                $par1Chunk = (jl_AbstractStringBuilder_insert0($par1Chunk, $par1Chunk.$length0, var$12, 10)).$toString();
                if ($par1Chunk === null)
                    $par1Chunk = $rt_s(1);
                $rt_putStdout($rt_ustr($par1Chunk));
                $rt_putStdout("\n");
            }
        }
        while ($var10.$hasNext()) {
            $var11 = $var10.$next();
            var$5 = $var11.$xCoord2;
            if (var$5 >= $var5 && var$5 < $var6) {
                var$5 = $var11.$zCoord2;
                if (var$5 >= $var7 && var$5 < $var8) {
                    if ($par2) {
                        $par1Chunk = ju_HashMap_removeByKey($this.$pendingTickListEntriesHashSet.$backingMap, $var11);
                        $var10.$remove();
                    }
                    if ($var3 === null) {
                        $var3 = new ju_ArrayList;
                        $var3.$array = $rt_createArray(jl_Object, 10);
                    }
                    ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                    var$13 = $var3.$array.data;
                    var$5 = $var3.$size0;
                    $var3.$size0 = var$5 + 1 | 0;
                    var$13[var$5] = $var11;
                    $var3.$modCount = $var3.$modCount + 1 | 0;
                }
            }
        }
        $var9 = $var9 + 1 | 0;
    }
    return $var3;
},
nms_WorldServer_updateEntityWithOptionalForce = ($this, $par1Entity, $par2) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$mcServer0.$canSpawnAnimals) {
                if ($par1Entity instanceof nms_EntityAnimal)
                    break a;
                if ($par1Entity instanceof nms_EntityWaterMob)
                    break a;
            }
            if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
                $ptr = 3;
                continue main;
            }
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        nms_World_updateEntityWithOptionalForce($this, $par1Entity, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Entity, nms_INpc)) {
            $ptr = 3;
            continue main;
        }
        $ptr = 1;
        continue main;
    case 3:
        $par1Entity.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $ptr);
},
nms_WorldServer_createChunkProvider = $this => {
    let $var1, var$2;
    $var1 = nles_VFSSaveHandler_getChunkLoader($this.$saveHandler0, $this.$provider);
    var$2 = nms_ChunkProviderServer__init_($this, $var1, $this.$provider.$createChunkGenerator());
    $this.$theChunkProviderServer = var$2;
    return var$2;
},
nms_WorldServer_getAllTileEntityInBox = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, $var9, var$10, var$11, var$12, var$13;
    $var7 = new ju_ArrayList;
    $var7.$array = $rt_createArray(jl_Object, 10);
    $var8 = 0;
    a: {
        while (true) {
            $var9 = $this.$loadedTileEntityList;
            var$10 = $rt_compare($var8, $var9.$size0);
            if (var$10 >= 0)
                break;
            if ($var8 < 0)
                break a;
            if (var$10 >= 0)
                break a;
            $var9 = $var9.$array.data[$var8];
            var$11 = $var9.$xCoord0;
            if (var$11 >= $par1) {
                var$10 = $var9.$yCoord0;
                if (var$10 >= $par2) {
                    var$12 = $var9.$zCoord0;
                    if (var$12 >= $par3 && var$11 < $par4 && var$10 < $par5 && var$12 < $par6) {
                        ju_ArrayList_ensureCapacity($var7, $var7.$size0 + 1 | 0);
                        var$13 = $var7.$array.data;
                        var$12 = $var7.$size0;
                        $var7.$size0 = var$12 + 1 | 0;
                        var$13[var$12] = $var9;
                        $var7.$modCount = $var7.$modCount + 1 | 0;
                    }
                }
            }
            $var8 = $var8 + 1 | 0;
        }
        return $var7;
    }
    $var7 = new jl_IndexOutOfBoundsException;
    $var7.$suppressionEnabled = 1;
    $var7.$writableStackTrace = 1;
    $rt_throw($var7);
},
nms_WorldServer_canMineBlock = ($this, $par1EntityPlayer, $par2, $par3, $par4) => {
    return 1;
},
nms_WorldServer_initialize = ($this, $par1WorldSettings) => {
    let var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1WorldSettings = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$entityIdMap === null)
            $this.$entityIdMap = nms_IntHashMap__init_();
        if ($this.$pendingTickListEntriesHashSet === null) {
            var$2 = new ju_HashSet;
            var$3 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            var$3.$elementCount = 0;
            var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$6 = var$5.data;
            var$3.$elementData = var$5;
            var$3.$loadFactor = 0.75;
            var$3.$threshold = var$6.length * 0.75 | 0;
            var$2.$backingMap = var$3;
            $this.$pendingTickListEntriesHashSet = var$2;
        }
        if ($this.$pendingTickListEntriesTreeSet === null) {
            var$2 = new ju_TreeSet;
            var$3 = new ju_TreeMap;
            var$3.$originalComparator = null;
            var$3.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
            var$2.$map = var$3;
            $this.$pendingTickListEntriesTreeSet = var$2;
        }
        $ptr = 1;
    case 1:
        nms_WorldServer_createSpawnPosition($this, $par1WorldSettings);
        if ($rt_suspending()) {
            break main;
        }
        $this.$worldInfo.$setServerInitialized(1);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1WorldSettings, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_WorldServer_createSpawnPosition = ($this, $par1WorldSettings) => {
    let $var2, $var3, $var4, var$5, $var5, $var6, $var7, $var8, $var9, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1WorldSettings = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$provider.$canRespawnHere()) {
            $this.$worldInfo.$setSpawnPosition(0, $this.$provider.$getAverageGroundLevel(), 0);
            return;
        }
        $this.$findingSpawnPoint = 1;
        $var2 = $this.$provider.$worldChunkMgr;
        $var3 = $var2.$biomesToSpawnIn;
        $var4 = new nle_EaglercraftRandom;
        var$5 = $this.$worldInfo.$getSeed();
        $var4.$seed = Long_fromInt(69);
        $var4.$haveNextNextGaussian = 0;
        $var4.$seed = var$5;
        $var5 = $var2.$findBiomePosition(0, 0, 256, $var3, $var4);
        $var6 = 0;
        $var7 = $this.$provider.$getAverageGroundLevel();
        $var8 = 0;
        if ($var5 !== null) {
            $var6 = $var5.$x;
            $var8 = $var5.$z;
        } else {
            if (jl_System_outCache === null) {
                $var2 = new otcic_JSStdoutPrintStream;
                $var5 = new ji_ByteArrayOutputStream;
                $var5.$buf = $rt_createByteArray(32);
                $var2.$out0 = $var5;
                $var5 = new jl_StringBuilder;
                jl_Object__init_($var5);
                $var5.$buffer = $rt_createCharArray(16);
                $var2.$sb = $var5;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $var2;
            }
            $rt_putStdout("Unable to find spawn biome");
            $rt_putStdout("\n");
        }
        $var9 = 0;
        var$11 = 17;
        var$12 = Long_fromInt(64);
        $var2 = $this.$provider;
        $ptr = 1;
    case 1:
        $tmp = $var2.$canCoordinateBeSpawn($var6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (!var$13) {
            var$14 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$14;
            var$15 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru(var$14, var$11)))), 31));
            var$5 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$5;
            $var6 = $var6 + (var$15 - Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru(var$5, var$11)))), 31)) | 0) | 0;
            var$14 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$14;
            var$13 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru(var$14, var$11)))), 31));
            var$5 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$5;
            $var8 = $var8 + (var$13 - Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru(var$5, var$11)))), 31)) | 0) | 0;
            $var9 = $var9 + 1 | 0;
            if ($var9 != 1000) {
                $var2 = $this.$provider;
                continue main;
            }
        }
        $this.$worldInfo.$setSpawnPosition($var6, $var7, $var8);
        $this.$findingSpawnPoint = 0;
        if (!$par1WorldSettings.$bonusChestEnabled)
            return;
        $ptr = 2;
    case 2:
        nms_WorldServer_createBonusChest($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1WorldSettings, $var2, $var3, $var4, var$5, $var5, $var6, $var7, $var8, $var9, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_WorldServer_createBonusChest = $this => {
    let $var1, var$2, $var2, var$4, var$5, $var4, var$7, var$8, $var5, var$10, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = new nms_WorldGeneratorBonusChest;
        nms_WorldServer_$callClinit();
        var$2 = nms_WorldServer_bonusChestContent;
        $var1.$doBlockNotify = 0;
        $var1.$theBonusChestGenerator = var$2;
        $var1.$itemsToGenerateInBonusChest = 10;
        $var2 = 0;
        var$4 = 17;
        var$5 = 5;
        if ($var2 >= 10)
            return;
        $var4 = $this.$worldInfo.$getSpawnX();
        var$7 = $this.$rand0;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        $var5 = Long_lo(Long_shru(var$8, var$4));
        while (true) {
            var$10 = $var5 % 6 | 0;
            if ((($var5 - var$10 | 0) + var$5 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            $var5 = Long_lo(Long_shru(var$8, var$4));
        }
        $var3 = $var4 + var$10 | 0;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        $var5 = Long_lo(Long_shru(var$8, var$4));
        while (true) {
            var$10 = $var5 % 6 | 0;
            if ((($var5 - var$10 | 0) + var$5 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            $var5 = Long_lo(Long_shru(var$8, var$4));
        }
        $var3 = $var3 - var$10 | 0;
        var$10 = $this.$worldInfo.$getSpawnZ();
        var$7 = $this.$rand0;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        $var4 = Long_lo(Long_shru(var$8, var$4));
        while (true) {
            $var5 = $var4 % 6 | 0;
            if ((($var4 - $var5 | 0) + var$5 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            $var4 = Long_lo(Long_shru(var$8, var$4));
        }
        var$10 = var$10 + $var5 | 0;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        $var4 = Long_lo(Long_shru(var$8, var$4));
        while (true) {
            $var5 = $var4 % 6 | 0;
            if ((($var4 - $var5 | 0) + var$5 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            $var4 = Long_lo(Long_shru(var$8, var$4));
        }
        $var4 = var$10 - $var5 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getTopSolidOrLiquidBlock($this, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var5 = $var5 + 1 | 0;
        var$7 = $this.$rand0;
        $ptr = 2;
    case 2:
        $tmp = nms_WorldGeneratorBonusChest_generate($var1, $this, var$7, $var3, $var5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if (!$var3) {
            $var2 = $var2 + 1 | 0;
            if ($var2 < 10) {
                $var4 = $this.$worldInfo.$getSpawnX();
                var$7 = $this.$rand0;
                var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$8;
                $var5 = Long_lo(Long_shru(var$8, var$4));
                while (true) {
                    var$10 = $var5 % 6 | 0;
                    if ((($var5 - var$10 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$8;
                    $var5 = Long_lo(Long_shru(var$8, var$4));
                }
                $var3 = $var4 + var$10 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$8;
                $var5 = Long_lo(Long_shru(var$8, var$4));
                while (true) {
                    var$10 = $var5 % 6 | 0;
                    if ((($var5 - var$10 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$8;
                    $var5 = Long_lo(Long_shru(var$8, var$4));
                }
                $var3 = $var3 - var$10 | 0;
                var$10 = $this.$worldInfo.$getSpawnZ();
                var$7 = $this.$rand0;
                var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$4));
                while (true) {
                    $var5 = $var4 % 6 | 0;
                    if ((($var4 - $var5 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$4));
                }
                var$10 = var$10 + $var5 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$4));
                while (true) {
                    $var5 = $var4 % 6 | 0;
                    if ((($var4 - $var5 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$4));
                }
                $var4 = var$10 - $var5 | 0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, $var2, var$4, var$5, $var4, var$7, var$8, $var5, var$10, $var3, $ptr);
},
nms_WorldServer_getEntrancePortalLocation = $this => {
    return $this.$provider.$getEntrancePortalLocation();
},
nms_WorldServer_saveAllChunks = ($this, $par1, $par2IProgressUpdate) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2IProgressUpdate = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$chunkProvider.$worldObj0.$canNotSave ? 0 : 1))
            return;
        if ($par2IProgressUpdate !== null)
            $par2IProgressUpdate.$displayProgressMessage($rt_s(1685));
        $ptr = 1;
    case 1:
        $this.$saveLevel();
        if ($rt_suspending()) {
            break main;
        }
        if ($par2IProgressUpdate !== null)
            $par2IProgressUpdate.$resetProgresAndWorkingMessage($rt_s(1686));
        var$3 = $this.$chunkProvider;
        $ptr = 2;
    case 2:
        nms_ChunkProviderServer_saveChunks(var$3, $par1, $par2IProgressUpdate);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2IProgressUpdate, var$3, $ptr);
},
nms_WorldServer_saveLevel = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$saveHandler0;
        var$2 = $this.$worldInfo;
        var$3 = $this.$mcServer0.$serverConfigManager.$hostPlayerNBT;
        $ptr = 1;
    case 1:
        nles_VFSSaveHandler_saveWorldInfoWithPlayer(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$mapStorage;
        var$4 = 0;
        a: {
            while (true) {
                var$2 = var$1.$loadedDataList;
                var$5 = $rt_compare(var$4, var$2.$size0);
                if (var$5 >= 0)
                    break;
                if (var$4 < 0)
                    break a;
                if (var$5 >= 0)
                    break a;
                var$2 = var$2.$array.data[var$4];
                if (var$2.$dirty) {
                    b: {
                        var$3 = var$1.$saveHandler;
                        if (var$3 !== null) {
                            try {
                                var$3 = nles_VFSSaveHandler_getMapFileFromName(var$3, var$2.$mapName);
                                if (var$3 === null)
                                    break b;
                                var$6 = nms_NBTTagCompound__init_();
                                var$2.$writeToNBT(var$6);
                                var$7 = nms_NBTTagCompound__init_();
                                nms_NBTTagCompound_setCompoundTag(var$7, $rt_s(214), var$6);
                                $ptr = 2;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$3 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$7 = new otcic_JSStderrPrintStream;
                                var$6 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$6);
                                var$6.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$7, var$6);
                                var$7.$sb = jl_StringBuilder__init_();
                                var$7.$buffer0 = $rt_createCharArray(32);
                                var$7.$autoFlush = 0;
                                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$7;
                            }
                            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                        }
                    }
                    var$2.$dirty = 0;
                }
                var$4 = var$4 + 1 | 0;
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 2:
        try {
            $tmp = nles_VFile_getOutputStream(var$3);
            if ($rt_suspending()) {
                break main;
            }
            var$3 = $tmp;
            $ptr = 3;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                var$3 = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            d: while (true) {
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$6 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$6);
                    var$6.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$7, var$6);
                    var$7.$sb = jl_StringBuilder__init_();
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                while (true) {
                    var$2.$dirty = 0;
                    while (true) {
                        var$4 = var$4 + 1 | 0;
                        var$2 = var$1.$loadedDataList;
                        var$5 = $rt_compare(var$4, var$2.$size0);
                        if (var$5 >= 0)
                            break d;
                        if (var$4 < 0)
                            break c;
                        if (var$5 >= 0)
                            break c;
                        var$2 = var$2.$array.data[var$4];
                        if (!var$2.$dirty)
                            continue;
                        else
                            break;
                    }
                    var$3 = var$1.$saveHandler;
                    if (var$3 === null)
                        continue;
                    try {
                        var$3 = nles_VFSSaveHandler_getMapFileFromName(var$3, var$2.$mapName);
                        if (var$3 !== null)
                            break;
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                            continue d;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    var$6 = nms_NBTTagCompound__init_();
                    var$2.$writeToNBT(var$6);
                    var$7 = nms_NBTTagCompound__init_();
                    nms_NBTTagCompound_setCompoundTag(var$7, $rt_s(214), var$6);
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 3:
        try {
            nms_CompressedStreamTools_writeCompressed(var$7, var$3);
            if ($rt_suspending()) {
                break main;
            }
            $ptr = 4;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                var$3 = $$je;
            } else {
                throw $$e;
            }
        }
        c: {
            d: while (true) {
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$6 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$6);
                    var$6.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$7, var$6);
                    var$7.$sb = jl_StringBuilder__init_();
                    var$7.$buffer0 = $rt_createCharArray(32);
                    var$7.$autoFlush = 0;
                    var$7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                while (true) {
                    var$2.$dirty = 0;
                    while (true) {
                        var$4 = var$4 + 1 | 0;
                        var$2 = var$1.$loadedDataList;
                        var$5 = $rt_compare(var$4, var$2.$size0);
                        if (var$5 >= 0)
                            break d;
                        if (var$4 < 0)
                            break c;
                        if (var$5 >= 0)
                            break c;
                        var$2 = var$2.$array.data[var$4];
                        if (!var$2.$dirty)
                            continue;
                        else
                            break;
                    }
                    var$3 = var$1.$saveHandler;
                    if (var$3 === null)
                        continue;
                    try {
                        var$3 = nles_VFSSaveHandler_getMapFileFromName(var$3, var$2.$mapName);
                        if (var$3 !== null)
                            break;
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                            continue d;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    var$6 = nms_NBTTagCompound__init_();
                    var$2.$writeToNBT(var$6);
                    var$7 = nms_NBTTagCompound__init_();
                    nms_NBTTagCompound_setCompoundTag(var$7, $rt_s(214), var$6);
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 4:
        a: {
            try {
                nles_VirtualFilesystem$VirtualOutputStream_close(var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_OutputStream__init_(var$6);
                var$8 = $rt_createByteArray(var$5);
                var$6.$buf = var$8;
                var$9 = 0;
                ji_FilterOutputStream__init_(var$7, var$6);
                var$6 = jl_StringBuilder__init_();
                var$7.$sb = var$6;
                var$5 = 32;
                var$8 = $rt_createCharArray(var$5);
                var$7.$buffer0 = var$8;
                var$7.$autoFlush = var$9;
                var$6 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = var$6;
                jl_System_errCache = var$7;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$3, var$6);
        }
        b: {
            e: while (true) {
                var$2.$dirty = 0;
                while (true) {
                    var$4 = var$4 + 1 | 0;
                    var$2 = var$1.$loadedDataList;
                    var$5 = $rt_compare(var$4, var$2.$size0);
                    if (var$5 >= 0)
                        break e;
                    if (var$4 < 0)
                        break b;
                    if (var$5 >= 0)
                        break b;
                    var$2 = var$2.$array.data[var$4];
                    if (!var$2.$dirty)
                        continue;
                    else
                        break;
                }
                var$3 = var$1.$saveHandler;
                if (var$3 === null)
                    continue;
                try {
                    var$3 = nles_VFSSaveHandler_getMapFileFromName(var$3, var$2.$mapName);
                    if (var$3 === null)
                        continue;
                    var$6 = nms_NBTTagCompound__init_();
                    var$2.$writeToNBT(var$6);
                    var$7 = nms_NBTTagCompound__init_();
                    nms_NBTTagCompound_setCompoundTag(var$7, $rt_s(214), var$6);
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$6 = jl_System_errCache;
                if (var$6 === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$6 = new ji_ByteArrayOutputStream;
                    var$5 = 32;
                    ji_OutputStream__init_(var$6);
                    var$8 = $rt_createByteArray(var$5);
                    var$6.$buf = var$8;
                    var$9 = 0;
                    ji_FilterOutputStream__init_(var$7, var$6);
                    var$6 = jl_StringBuilder__init_();
                    var$7.$sb = var$6;
                    var$5 = 32;
                    var$8 = $rt_createCharArray(var$5);
                    var$7.$buffer0 = var$8;
                    var$7.$autoFlush = var$9;
                    var$6 = jnci_UTF8Charset_INSTANCE;
                    var$7.$charset = var$6;
                    jl_System_errCache = var$7;
                }
                var$6 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$3, var$6);
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_WorldServer_onEntityAdded = ($this, $par1Entity) => {
    let $var3, var$3, var$4, $var2, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 0;
        var$3 = $this.$worldAccesses;
        var$4 = $rt_compare($var3, var$3.$size0);
        if (var$4 >= 0) {
            a: {
                nms_IntHashMap_addKey($this.$entityIdMap, $par1Entity.$entityId, $par1Entity);
                $var2 = $par1Entity.$getParts();
                if ($var2 !== null) {
                    $var3 = 0;
                    while (true) {
                        var$6 = $var2.data;
                        if ($var3 >= var$6.length)
                            break a;
                        nms_IntHashMap_addKey($this.$entityIdMap, var$6[$var3].$entityId, var$6[$var3]);
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            return;
        }
        if ($var3 >= 0 && var$4 < 0) {
            var$3 = var$3.$array.data[$var3].$theWorldServer.$theEntityTracker;
            $ptr = 1;
            continue main;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        $rt_throw($par1Entity);
    case 1:
        nms_EntityTracker_addEntityToTracker0(var$3, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var3 + 1 | 0;
        var$3 = $this.$worldAccesses;
        var$4 = $rt_compare($var3, var$3.$size0);
        if (var$4 >= 0) {
            a: {
                nms_IntHashMap_addKey($this.$entityIdMap, $par1Entity.$entityId, $par1Entity);
                $var2 = $par1Entity.$getParts();
                if ($var2 !== null) {
                    $var3 = 0;
                    while (true) {
                        var$6 = $var2.data;
                        if ($var3 >= var$6.length)
                            break a;
                        nms_IntHashMap_addKey($this.$entityIdMap, var$6[$var3].$entityId, var$6[$var3]);
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            return;
        }
        if ($var3 >= 0 && var$4 < 0) {
            var$3 = var$3.$array.data[$var3].$theWorldServer.$theEntityTracker;
            continue main;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        $rt_throw($par1Entity);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var3, var$3, var$4, $var2, var$6, $ptr);
},
nms_WorldServer_onEntityRemoved = ($this, $par1Entity) => {
    let var$2, var$3, $var3, var$5, var$6, $var2, var$8, var$9;
    var$2 = 0;
    while (true) {
        var$3 = $this.$worldAccesses;
        $var3 = $rt_compare(var$2, var$3.$size0);
        if ($var3 >= 0) {
            var$3 = $this.$entityIdMap;
            var$2 = $par1Entity.$entityId;
            var$5 = var$3.$keySet0;
            if (var$2 >= (-128) && var$2 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
            } else {
                var$6 = new jl_Integer;
                var$6.$value = var$2;
            }
            var$5 = ju_HashMap_removeByKey(var$5.$backingMap, var$6);
            nms_IntHashMap_removeEntry(var$3, var$2);
            a: {
                $var2 = $par1Entity.$getParts();
                if ($var2 !== null) {
                    $var3 = 0;
                    while (true) {
                        var$8 = $var2.data;
                        if ($var3 >= var$8.length)
                            break a;
                        var$5 = $this.$entityIdMap;
                        var$9 = var$8[$var3].$entityId;
                        var$3 = var$5.$keySet0;
                        if (var$9 >= (-128) && var$9 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $par1Entity = jl_Integer_integerCache.data[var$9 + 128 | 0];
                        } else {
                            $par1Entity = new jl_Integer;
                            $par1Entity.$value = var$9;
                        }
                        $par1Entity = ju_HashMap_removeByKey(var$3.$backingMap, $par1Entity);
                        nms_IntHashMap_removeEntry(var$5, var$9);
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            return;
        }
        if (var$2 < 0)
            break;
        if ($var3 >= 0)
            break;
        nms_EntityTracker_removeEntityFromAllTrackingPlayers(var$3.$array.data[var$2].$theWorldServer.$theEntityTracker, $par1Entity);
        var$2 = var$2 + 1 | 0;
    }
    $par1Entity = new jl_IndexOutOfBoundsException;
    $par1Entity.$suppressionEnabled = 1;
    $par1Entity.$writableStackTrace = 1;
    $rt_throw($par1Entity);
},
nms_WorldServer_getEntityByID = ($this, $par1) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$entityIdMap;
    var$3 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
    var$4 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
    var$5 = var$2.$slots.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    a: {
        while (var$2 !== null) {
            if (var$2.$hashEntry == $par1) {
                var$2 = var$2.$valueEntry;
                break a;
            }
            var$2 = var$2.$nextEntry0;
        }
        var$2 = null;
    }
    return var$2;
},
nms_WorldServer_addWeatherEffect = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$weatherEffects;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$3 = var$2.$array.data;
        var$4 = var$2.$size0;
        var$2.$size0 = var$4 + 1 | 0;
        var$3[var$4] = $par1Entity;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$5 = $this.$mcServer0.$serverConfigManager;
        var$6 = $par1Entity.$posX;
        var$7 = $par1Entity.$posY;
        var$8 = $par1Entity.$posZ;
        var$9 = 512.0;
        var$10 = $this.$provider.$dimensionId;
        var$2 = nms_Packet71Weather__init_1($par1Entity);
        $par1Entity = null;
        $ptr = 1;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$5, $par1Entity, var$6, var$7, var$8, var$9, var$10, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_WorldServer_setEntityState = ($this, $par1Entity, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = new nms_Packet38EntityStatus;
        var$4 = $par1Entity.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var3.$entityId0 = var$4;
        $var3.$entityStatus = $par2;
        var$5 = $this.$theEntityTracker.$trackedEntityIDs;
        $par2 = $par1Entity.$entityId;
        var$4 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
        var$6 = var$4 ^ (var$4 >>> 7 | 0) ^ (var$4 >>> 4 | 0);
        var$7 = var$5.$slots.data;
        $par1Entity = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while ($par1Entity !== null) {
                if ($par1Entity.$hashEntry == $par2) {
                    $par1Entity = $par1Entity.$valueEntry;
                    break a;
                }
                $par1Entity = $par1Entity.$nextEntry0;
            }
            $par1Entity = null;
        }
        $par1Entity = $par1Entity;
        if ($par1Entity !== null) {
            var$5 = $par1Entity.$trackingPlayers.$backingMap;
            if (var$5.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = var$5;
                jl_Object__init_(var$8);
                var$5.$cachedKeySet = var$8;
            }
            var$9 = var$5.$cachedKeySet.$iterator();
            var$4 = $var3 instanceof nms_Packet3Chat;
            var$10 = $var3;
            while (var$9.$hasNext()) {
                b: {
                    var$5 = (var$9.$next()).$playerNetServerHandler;
                    if (var$4) {
                        var$11 = var$5.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break b;
                        if (var$11 == 1 && !var$10.$isServer)
                            break b;
                    }
                    try {
                        var$5 = var$5.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$12 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$5 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$5, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$5;
                    }
                    jl_Throwable_printStackTrace(var$12, jl_System_errCache);
                }
            }
            $par1Entity = $par1Entity.$myEntity;
            if ($par1Entity instanceof nms_EntityPlayerMP)
                c: {
                    $par1Entity = $par1Entity.$playerNetServerHandler;
                    if (var$4) {
                        var$4 = $par1Entity.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break c;
                        if (var$4 == 1 && !var$10.$isServer)
                            break c;
                    }
                    try {
                        $par1Entity = $par1Entity.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Entity = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var3, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
                }
        }
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$12 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                var$8 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$5, var$8);
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$12, var$5);
        }
        d: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break d;
                var$5 = (var$9.$next()).$playerNetServerHandler;
                if (!var$4)
                    break;
                var$11 = var$5.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$10.$isServer)
                    break;
            }
            try {
                var$5 = var$5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$12 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                var$8 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$5, var$8);
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$12, var$5);
        }
        $par1Entity = $par1Entity.$myEntity;
        if ($par1Entity instanceof nms_EntityPlayerMP)
            e: {
                $par1Entity = $par1Entity.$playerNetServerHandler;
                if (var$4) {
                    var$4 = $par1Entity.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        break e;
                    if (var$4 == 1 && !var$10.$isServer)
                        break e;
                }
                try {
                    $par1Entity = $par1Entity.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Entity = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($var3, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $var3;
                }
                jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
            }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Entity, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var3;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_WorldServer_newExplosion = ($this, $par1Entity, $par2, $par4, $par6, $par8, $par9, $par10) => {
    let $var11, $var13, var$10, $var12$index, var$12, var$13, var$14, $var12$index_0, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var12$index_0 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var12$index = $thread.pop();var$10 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9
        = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var11 = new nms_Explosion;
        $var11.$isSmoking = 1;
        $var11.$field_77289_h = 16;
        $var13 = new nle_EaglercraftRandom;
        var$10 = Long_fromNumber(performance.now() * 1000000.0);
        $var13.$seed = Long_fromInt(69);
        $var13.$haveNextNextGaussian = 0;
        $var13.$seed = var$10;
        $var11.$explosionRNG = $var13;
        $var13 = new ju_ArrayList;
        $var13.$array = $rt_createArray(jl_Object, 10);
        $var11.$affectedBlockPositions = $var13;
        $var13 = new ju_HashMap;
        $var12$index = ju_HashMap_calculateCapacity(16);
        $var13.$elementCount = 0;
        var$12 = $rt_createArray(ju_HashMap$HashEntry, $var12$index);
        var$13 = var$12.data;
        $var13.$elementData = var$12;
        $var13.$loadFactor = 0.75;
        $var13.$threshold = var$13.length * 0.75 | 0;
        $var11.$field_77288_k = $var13;
        $var11.$worldObj7 = $this;
        $var11.$exploder = $par1Entity;
        $var11.$explosionSize = $par8;
        $var11.$explosionX = $par2;
        $var11.$explosionY = $par4;
        $var11.$explosionZ = $par6;
        $var11.$isFlaming = $par9;
        $var11.$isSmoking = $par10;
        $ptr = 1;
    case 1:
        nms_Explosion_doExplosionA($var11);
        if ($rt_suspending()) {
            break main;
        }
        $par9 = 0;
        $ptr = 2;
    case 2:
        nms_Explosion_doExplosionB($var11, $par9);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par10) {
            $par1Entity = $var11.$affectedBlockPositions;
            var$12 = $par1Entity.$array;
            $par10 = 0;
            $var12$index = $par1Entity.$size0;
            $var13 = null;
            if ($par10 > $var12$index) {
                $par1Entity = new jl_IllegalArgumentException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            while ($par10 < $var12$index) {
                var$13 = var$12.data;
                $par9 = $par10 + 1 | 0;
                var$13[$par10] = $var13;
                $par10 = $par9;
            }
            $par1Entity.$size0 = 0;
            $par1Entity.$modCount = $par1Entity.$modCount + 1 | 0;
        }
        $par1Entity = $this.$playerEntities;
        $var12$index = 0;
        $par9 = $par1Entity.$modCount;
        $par10 = $par1Entity.$size();
        var$14 = 0;
        while ($var12$index >= $par10 ? 0 : 1) {
            if ($par9 < $par1Entity.$modCount) {
                $par1Entity = new ju_ConcurrentModificationException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            $var12$index_0 = $var12$index + 1 | 0;
            $var13 = $par1Entity.$get($var12$index);
            var$16 = $var13.$posX - $par2;
            var$17 = $var13.$posY - $par4;
            var$18 = $var13.$posZ - $par6;
            if (var$16 * var$16 + var$17 * var$17 + var$18 * var$18 < 4096.0) {
                var$19 = $var13.$playerNetServerHandler;
                var$20 = new nms_Packet60Explosion;
                var$21 = $var11.$affectedBlockPositions;
                var$22 = $var11.$field_77288_k;
                var$23 = $var13.$entityId;
                var$13 = var$22.$elementData.data;
                var$22 = var$13[var$23 & (var$13.length - 1 | 0)];
                while (var$22 !== null) {
                    if (var$22.$origKeyHash == var$23) {
                        var$24 = var$22.$key;
                        if ($var13 !== var$24 && !(!(var$24 instanceof nms_Entity) ? 0 : var$24.$entityId != var$23 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    var$22 = var$22.$next3;
                }
                var$22 = var$22 === null ? null : var$22.$value0;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$20.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$20.$explosionX0 = $par2;
                var$20.$explosionY0 = $par4;
                var$20.$explosionZ0 = $par6;
                var$20.$explosionSize0 = $par8;
                var$24 = new ju_ArrayList;
                $var12$index = var$21.$size0;
                if ($var12$index < 0) {
                    $par1Entity = new jl_IllegalArgumentException;
                    $par1Entity.$suppressionEnabled = 1;
                    $par1Entity.$writableStackTrace = 1;
                    $rt_throw($par1Entity);
                }
                var$24.$array = $rt_createArray(jl_Object, $var12$index);
                var$25 = var$21.$modCount;
                var$21.$size();
                $var12$index = 0;
                var$26 = var$14;
                while (true) {
                    var$13 = var$24.$array.data;
                    var$27 = var$13.length;
                    if ($var12$index >= var$27)
                        break;
                    if (var$25 < var$21.$modCount) {
                        $par1Entity = new ju_ConcurrentModificationException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        $rt_throw($par1Entity);
                    }
                    var$23 = var$26 + 1 | 0;
                    var$13[$var12$index] = var$21.$get(var$26);
                    $var12$index = $var12$index + 1 | 0;
                    var$26 = var$23;
                }
                var$24.$size0 = var$27;
                var$20.$chunkPositionRecords = var$24;
                if (var$22 !== null) {
                    var$20.$playerVelocityX = var$22.$xCoord;
                    var$20.$playerVelocityY = var$22.$yCoord;
                    var$20.$playerVelocityZ = var$22.$zCoord;
                }
                a: {
                    if (var$20 instanceof nms_Packet3Chat) {
                        $var13 = var$20;
                        var$27 = var$19.$playerEntity.$chatVisibility;
                        if (var$27 == 2)
                            break a;
                        if (var$27 == 1 && !$var13.$isServer)
                            break a;
                    }
                    try {
                        $var13 = var$19.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var13 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$19 = new otcic_JSStderrPrintStream;
                        var$20 = new ji_ByteArrayOutputStream;
                        jl_Object__init_(var$20);
                        var$20.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_(var$19);
                        var$19.$out0 = var$20;
                        var$20 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_(var$20);
                        var$19.$sb = var$20;
                        var$19.$buffer0 = $rt_createCharArray(32);
                        var$19.$autoFlush = 0;
                        var$19.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$19;
                    }
                    jl_Throwable_printStackTrace($var13, jl_System_errCache);
                }
            }
            $var12$index = $var12$index_0;
        }
        return $var11;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var13, var$20);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var13 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$19 = jl_System_errCache;
            if (var$19 === null) {
                var$19 = new otcic_JSStderrPrintStream;
                var$20 = new ji_ByteArrayOutputStream;
                $var12$index = 32;
                jl_Object__init_(var$20);
                var$13 = $rt_createByteArray($var12$index);
                var$20.$buf = var$13;
                $var12$index = 0;
                ji_OutputStream__init_(var$19);
                var$19.$out0 = var$20;
                var$20 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$20);
                var$19.$sb = var$20;
                var$27 = 32;
                var$13 = $rt_createCharArray(var$27);
                var$19.$buffer0 = var$13;
                var$19.$autoFlush = $var12$index;
                var$20 = jnci_UTF8Charset_INSTANCE;
                var$19.$charset = var$20;
                jl_System_errCache = var$19;
            }
            var$19 = jl_System_errCache;
            jl_Throwable_printStackTrace($var13, var$19);
        }
        c: while (true) {
            while (true) {
                while (true) {
                    $var12$index = $var12$index_0;
                    if (!($var12$index >= $par10 ? 0 : 1))
                        break c;
                    if ($par9 < $par1Entity.$modCount) {
                        $par1Entity = new ju_ConcurrentModificationException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        $rt_throw($par1Entity);
                    }
                    $var12$index_0 = $var12$index + 1 | 0;
                    $var13 = $par1Entity.$get($var12$index);
                    var$16 = $var13.$posX - $par2;
                    var$17 = $var13.$posY - $par4;
                    var$18 = $var13.$posZ - $par6;
                    if (var$16 * var$16 + var$17 * var$17 + var$18 * var$18 >= 4096.0)
                        continue;
                    else
                        break;
                }
                var$19 = $var13.$playerNetServerHandler;
                var$20 = new nms_Packet60Explosion;
                var$21 = $var11.$affectedBlockPositions;
                var$22 = $var11.$field_77288_k;
                var$23 = $var13.$entityId;
                var$13 = var$22.$elementData.data;
                var$22 = var$13[var$23 & (var$13.length - 1 | 0)];
                while (var$22 !== null) {
                    if (var$22.$origKeyHash == var$23) {
                        var$24 = var$22.$key;
                        if ($var13 !== var$24 && !(!(var$24 instanceof nms_Entity) ? 0 : var$24.$entityId != var$23 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    var$22 = var$22.$next3;
                }
                var$22 = var$22 === null ? null : var$22.$value0;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$20.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$20.$explosionX0 = $par2;
                var$20.$explosionY0 = $par4;
                var$20.$explosionZ0 = $par6;
                var$20.$explosionSize0 = $par8;
                var$24 = new ju_ArrayList;
                $var12$index = var$21.$size0;
                if ($var12$index < 0) {
                    $par1Entity = new jl_IllegalArgumentException;
                    $par1Entity.$suppressionEnabled = 1;
                    $par1Entity.$writableStackTrace = 1;
                    $rt_throw($par1Entity);
                }
                var$24.$array = $rt_createArray(jl_Object, $var12$index);
                var$25 = var$21.$modCount;
                var$21.$size();
                $var12$index = 0;
                var$26 = var$14;
                while (true) {
                    var$13 = var$24.$array.data;
                    var$27 = var$13.length;
                    if ($var12$index >= var$27)
                        break;
                    if (var$25 < var$21.$modCount) {
                        $par1Entity = new ju_ConcurrentModificationException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        $rt_throw($par1Entity);
                    }
                    var$23 = var$26 + 1 | 0;
                    var$13[$var12$index] = var$21.$get(var$26);
                    $var12$index = $var12$index + 1 | 0;
                    var$26 = var$23;
                }
                var$24.$size0 = var$27;
                var$20.$chunkPositionRecords = var$24;
                if (var$22 !== null) {
                    var$20.$playerVelocityX = var$22.$xCoord;
                    var$20.$playerVelocityY = var$22.$yCoord;
                    var$20.$playerVelocityZ = var$22.$zCoord;
                }
                if (!(var$20 instanceof nms_Packet3Chat))
                    break;
                $var13 = var$20;
                var$27 = var$19.$playerEntity.$chatVisibility;
                if (var$27 == 2)
                    continue;
                if (var$27 != 1)
                    break;
                if ($var13.$isServer)
                    break;
            }
            try {
                $var13 = var$19.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var13 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$19 = jl_System_errCache;
            if (var$19 === null) {
                var$19 = new otcic_JSStderrPrintStream;
                var$20 = new ji_ByteArrayOutputStream;
                $var12$index = 32;
                jl_Object__init_(var$20);
                var$13 = $rt_createByteArray($var12$index);
                var$20.$buf = var$13;
                $var12$index = 0;
                ji_OutputStream__init_(var$19);
                var$19.$out0 = var$20;
                var$20 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$20);
                var$19.$sb = var$20;
                var$27 = 32;
                var$13 = $rt_createCharArray(var$27);
                var$19.$buffer0 = var$13;
                var$19.$autoFlush = $var12$index;
                var$20 = jnci_UTF8Charset_INSTANCE;
                var$19.$charset = var$20;
                jl_System_errCache = var$19;
            }
            var$19 = jl_System_errCache;
            jl_Throwable_printStackTrace($var13, var$19);
        }
        return $var11;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par4, $par6, $par8, $par9, $par10, $var11, $var13, var$10, $var12$index, var$12, var$13, var$14, $var12$index_0, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $ptr);
},
nms_WorldServer_addBlockEvent = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, $var8$index, var$10, $var8$index_0;
    $var7 = new nms_BlockEventData;
    $var7.$coordX = $par1;
    $var7.$coordY = $par2;
    $var7.$coordZ = $par3;
    $var7.$eventID = $par5;
    $var7.$eventParameter = $par6;
    $var7.$blockID2 = $par4;
    var$8 = $this.$blockEventCache.data[$this.$blockEventCacheIndex];
    $var8$index = 0;
    $par2 = var$8.$modCount;
    $par3 = var$8.$size();
    while (true) {
        if (!($var8$index >= $par3 ? 0 : 1)) {
            var$8 = $this.$blockEventCache.data[$this.$blockEventCacheIndex];
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$10 = var$8.$array.data;
            $par2 = var$8.$size0;
            var$8.$size0 = $par2 + 1 | 0;
            var$10[$par2] = $var7;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            return;
        }
        if ($par2 < var$8.$modCount) {
            $var7 = new ju_ConcurrentModificationException;
            $var7.$suppressionEnabled = 1;
            $var7.$writableStackTrace = 1;
            $rt_throw($var7);
        }
        $var8$index_0 = $var8$index + 1 | 0;
        if (nms_BlockEventData_equals(var$8.$get($var8$index), $var7))
            break;
        $var8$index = $var8$index_0;
    }
},
nms_WorldServer_sendAndApplyBlockEvents = $this => {
    let $var2$index, var$2, var$3, $var1, var$5, var$6, var$7, $var2$index_0, var$9, $var2$index_1, $var3, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var3 = $thread.pop();$var2$index_1 = $thread.pop();var$9 = $thread.pop();$var2$index_0 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2
        = $thread.pop();$var2$index = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2$index = 0;
        var$2 = null;
        while (true) {
            var$3 = $this.$blockEventCache.data;
            $var1 = $this.$blockEventCacheIndex;
            if (var$3[$var1].$size0 ? 0 : 1)
                break;
            $this.$blockEventCacheIndex = $var1 ^ 1;
            var$5 = var$3[$var1];
            var$6 = var$5.$modCount;
            var$7 = var$5.$size();
            $var2$index_0 = $var2$index;
            if ($var2$index_0 >= var$7 ? 0 : 1) {
                if (var$6 < var$5.$modCount) {
                    var$9 = new ju_ConcurrentModificationException;
                    var$9.$suppressionEnabled = 1;
                    var$9.$writableStackTrace = 1;
                    $rt_throw(var$9);
                }
                $var2$index_1 = $var2$index_0 + 1 | 0;
                $var3 = var$5.$get($var2$index_0);
                var$12 = $var3.$coordX;
                $var2$index_0 = $var3.$coordY;
                var$13 = $var3.$coordZ;
                $ptr = 1;
                continue main;
            }
            var$9 = $this.$blockEventCache.data[$var1];
            var$3 = var$9.$array;
            $var1 = 0;
            $var2$index_0 = var$9.$size0;
            var$5 = null;
            if ($var1 > $var2$index_0) {
                var$9 = new jl_IllegalArgumentException;
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                $rt_throw(var$9);
            }
            while ($var1 < $var2$index_0) {
                var$14 = var$3.data;
                var$13 = $var1 + 1 | 0;
                var$14[$var1] = var$5;
                $var1 = var$13;
            }
            var$9.$size0 = 0;
            var$9.$modCount = var$9.$modCount + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($this, var$12, $var2$index_0, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var2$index_0 = $tmp;
        if ($var2$index_0 == $var3.$blockID2) {
            nms_Block_$callClinit();
            var$9 = nms_Block_blocksList.data[$var2$index_0];
            var$15 = $var3.$coordX;
            var$16 = $var3.$coordY;
            var$12 = $var3.$coordZ;
            $var2$index_0 = $var3.$eventID;
            var$13 = $var3.$eventParameter;
            $ptr = 2;
            continue main;
        }
        if (0) {
            var$17 = $this.$mcServer0.$serverConfigManager;
            var$18 = $var3.$coordX;
            var$19 = var$18;
            var$15 = $var3.$coordY;
            var$20 = var$15;
            var$16 = $var3.$coordZ;
            var$21 = var$16;
            var$22 = 64.0;
            var$13 = $this.$provider.$dimensionId;
            var$9 = new nms_Packet54PlayNoteBlock;
            var$12 = $var3.$blockID2;
            $var2$index_0 = $var3.$eventID;
            var$23 = $var3.$eventParameter;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$xLocation = var$18;
            var$9.$yLocation = var$15;
            var$9.$zLocation = var$16;
            var$9.$instrumentType = $var2$index_0;
            var$9.$pitch3 = var$23;
            var$9.$blockId = var$12;
            $ptr = 3;
            continue main;
        }
        $var2$index_0 = $var2$index_1;
        while (true) {
            if ($var2$index_0 >= var$7 ? 0 : 1) {
                if (var$6 < var$5.$modCount) {
                    var$9 = new ju_ConcurrentModificationException;
                    var$9.$suppressionEnabled = 1;
                    var$9.$writableStackTrace = 1;
                    $rt_throw(var$9);
                }
                $var2$index_1 = $var2$index_0 + 1 | 0;
                $var3 = var$5.$get($var2$index_0);
                var$12 = $var3.$coordX;
                $var2$index_0 = $var3.$coordY;
                var$13 = $var3.$coordZ;
                continue main;
            }
            var$9 = $this.$blockEventCache.data[$var1];
            var$3 = var$9.$array;
            $var1 = 0;
            $var2$index_0 = var$9.$size0;
            var$5 = null;
            if ($var1 > $var2$index_0) {
                var$9 = new jl_IllegalArgumentException;
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                $rt_throw(var$9);
            }
            while ($var1 < $var2$index_0) {
                var$14 = var$3.data;
                var$13 = $var1 + 1 | 0;
                var$14[$var1] = var$5;
                $var1 = var$13;
            }
            var$9.$size0 = 0;
            var$9.$modCount = var$9.$modCount + 1 | 0;
            var$3 = $this.$blockEventCache.data;
            $var1 = $this.$blockEventCacheIndex;
            if (var$3[$var1].$size0 ? 0 : 1)
                break;
            $this.$blockEventCacheIndex = $var1 ^ 1;
            var$5 = var$3[$var1];
            var$6 = var$5.$modCount;
            var$7 = var$5.$size();
            $var2$index_0 = $var2$index;
        }
        return;
    case 2:
        $tmp = var$9.$onBlockEventReceived($this, var$15, var$16, var$12, $var2$index_0, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (var$13) {
            var$17 = $this.$mcServer0.$serverConfigManager;
            var$18 = $var3.$coordX;
            var$19 = var$18;
            var$15 = $var3.$coordY;
            var$20 = var$15;
            var$16 = $var3.$coordZ;
            var$21 = var$16;
            var$22 = 64.0;
            var$13 = $this.$provider.$dimensionId;
            var$9 = new nms_Packet54PlayNoteBlock;
            var$12 = $var3.$blockID2;
            $var2$index_0 = $var3.$eventID;
            var$23 = $var3.$eventParameter;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$xLocation = var$18;
            var$9.$yLocation = var$15;
            var$9.$zLocation = var$16;
            var$9.$instrumentType = $var2$index_0;
            var$9.$pitch3 = var$23;
            var$9.$blockId = var$12;
            $ptr = 3;
            continue main;
        }
        $var2$index_0 = $var2$index_1;
        while (true) {
            if ($var2$index_0 >= var$7 ? 0 : 1) {
                if (var$6 < var$5.$modCount) {
                    var$9 = new ju_ConcurrentModificationException;
                    var$9.$suppressionEnabled = 1;
                    var$9.$writableStackTrace = 1;
                    $rt_throw(var$9);
                }
                $var2$index_1 = $var2$index_0 + 1 | 0;
                $var3 = var$5.$get($var2$index_0);
                var$12 = $var3.$coordX;
                $var2$index_0 = $var3.$coordY;
                var$13 = $var3.$coordZ;
                $ptr = 1;
                continue main;
            }
            var$9 = $this.$blockEventCache.data[$var1];
            var$3 = var$9.$array;
            $var1 = 0;
            $var2$index_0 = var$9.$size0;
            var$5 = null;
            if ($var1 > $var2$index_0) {
                var$9 = new jl_IllegalArgumentException;
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                $rt_throw(var$9);
            }
            while ($var1 < $var2$index_0) {
                var$14 = var$3.data;
                var$13 = $var1 + 1 | 0;
                var$14[$var1] = var$5;
                $var1 = var$13;
            }
            var$9.$size0 = 0;
            var$9.$modCount = var$9.$modCount + 1 | 0;
            var$3 = $this.$blockEventCache.data;
            $var1 = $this.$blockEventCacheIndex;
            if (var$3[$var1].$size0 ? 0 : 1)
                break;
            $this.$blockEventCacheIndex = $var1 ^ 1;
            var$5 = var$3[$var1];
            var$6 = var$5.$modCount;
            var$7 = var$5.$size();
            $var2$index_0 = $var2$index;
        }
        return;
    case 3:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$17, var$2, var$19, var$20, var$21, var$22, var$13, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var2$index_0 = $var2$index_1;
        while (true) {
            if ($var2$index_0 >= var$7 ? 0 : 1) {
                if (var$6 < var$5.$modCount) {
                    var$9 = new ju_ConcurrentModificationException;
                    var$9.$suppressionEnabled = 1;
                    var$9.$writableStackTrace = 1;
                    $rt_throw(var$9);
                }
                $var2$index_1 = $var2$index_0 + 1 | 0;
                $var3 = var$5.$get($var2$index_0);
                var$12 = $var3.$coordX;
                $var2$index_0 = $var3.$coordY;
                var$13 = $var3.$coordZ;
                $ptr = 1;
                continue main;
            }
            var$9 = $this.$blockEventCache.data[$var1];
            var$3 = var$9.$array;
            $var1 = 0;
            $var2$index_0 = var$9.$size0;
            var$5 = null;
            if ($var1 > $var2$index_0) {
                var$9 = new jl_IllegalArgumentException;
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                $rt_throw(var$9);
            }
            while ($var1 < $var2$index_0) {
                var$14 = var$3.data;
                var$13 = $var1 + 1 | 0;
                var$14[$var1] = var$5;
                $var1 = var$13;
            }
            var$9.$size0 = 0;
            var$9.$modCount = var$9.$modCount + 1 | 0;
            var$3 = $this.$blockEventCache.data;
            $var1 = $this.$blockEventCacheIndex;
            if (var$3[$var1].$size0 ? 0 : 1)
                break;
            $this.$blockEventCacheIndex = $var1 ^ 1;
            var$5 = var$3[$var1];
            var$6 = var$5.$modCount;
            var$7 = var$5.$size();
            $var2$index_0 = $var2$index;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2$index, var$2, var$3, $var1, var$5, var$6, var$7, $var2$index_0, var$9, $var2$index_1, $var3, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_WorldServer_flush = $this => {
    return;
},
nms_WorldServer_updateWeather = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$prevRainingStrength;
        $var1 = var$1 + ($this.$rainingStrength - var$1) * 1.0 <= 0.2 ? 0 : 1;
        $ptr = 1;
    case 1:
        nms_World_updateWeather($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$prevRainingStrength;
        var$3 = var$1 + ($this.$rainingStrength - var$1) * 1.0 <= 0.2 ? 0 : 1;
        a: {
            b: {
                if ($var1 != var$3) {
                    if (!$var1) {
                        var$4 = $this.$mcServer0.$serverConfigManager;
                        var$5 = new nms_Packet70GameEvent;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$5.$eventType = 1;
                        var$5.$gameMode = 0;
                        var$3 = 0;
                        var$6 = var$5 instanceof nms_Packet3Chat;
                        var$7 = var$5;
                        c: {
                            while (true) {
                                var$8 = var$4.$playerEntityList;
                                $var1 = $rt_compare(var$3, var$8.$size0);
                                if ($var1 >= 0)
                                    break;
                                if (var$3 < 0)
                                    break c;
                                if ($var1 >= 0)
                                    break c;
                                d: {
                                    var$8 = var$8.$array.data[var$3].$playerNetServerHandler;
                                    if (var$6) {
                                        var$9 = var$8.$playerEntity.$chatVisibility;
                                        if (var$9 == 2)
                                            break d;
                                        if (var$9 == 1 && !var$7.$isServer)
                                            break d;
                                    }
                                    try {
                                        var$8 = var$8.$netManager;
                                        $ptr = 2;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$8 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$10 = new otcic_JSStderrPrintStream;
                                        var$11 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_(var$11);
                                        var$11.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_(var$10, var$11);
                                        var$10.$sb = jl_StringBuilder__init_();
                                        var$10.$buffer0 = $rt_createCharArray(32);
                                        var$10.$autoFlush = 0;
                                        var$10.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = var$10;
                                    }
                                    jl_Throwable_printStackTrace(var$8, jl_System_errCache);
                                }
                                var$3 = var$3 + 1 | 0;
                            }
                            break b;
                        }
                        var$5 = new jl_IndexOutOfBoundsException;
                        var$5.$suppressionEnabled = 1;
                        var$5.$writableStackTrace = 1;
                        $rt_throw(var$5);
                    }
                    var$11 = $this.$mcServer0.$serverConfigManager;
                    var$5 = new nms_Packet70GameEvent;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$5.$eventType = 2;
                    var$5.$gameMode = 0;
                    var$3 = 0;
                    var$6 = var$5 instanceof nms_Packet3Chat;
                    var$4 = var$5;
                    while (true) {
                        var$8 = var$11.$playerEntityList;
                        $var1 = $rt_compare(var$3, var$8.$size0);
                        if ($var1 >= 0)
                            break;
                        if (var$3 < 0)
                            break a;
                        if ($var1 >= 0)
                            break a;
                        e: {
                            var$8 = var$8.$array.data[var$3].$playerNetServerHandler;
                            if (var$6) {
                                var$9 = var$8.$playerEntity.$chatVisibility;
                                if (var$9 == 2)
                                    break e;
                                if (var$9 == 1 && !var$4.$isServer)
                                    break e;
                            }
                            try {
                                var$8 = var$8.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$8 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$7 = new otcic_JSStderrPrintStream;
                                var$10 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$10);
                                var$10.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$7, var$10);
                                var$7.$sb = jl_StringBuilder__init_();
                                var$7.$buffer0 = $rt_createCharArray(32);
                                var$7.$autoFlush = 0;
                                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$7;
                            }
                            jl_Throwable_printStackTrace(var$8, jl_System_errCache);
                        }
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            return;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    case 2:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                $var1 = 32;
                ji_OutputStream__init_(var$11);
                var$12 = $rt_createByteArray($var1);
                var$11.$buf = var$12;
                $var1 = 0;
                ji_FilterOutputStream__init_(var$10, var$11);
                var$11 = jl_StringBuilder__init_();
                var$10.$sb = var$11;
                var$9 = 32;
                var$12 = $rt_createCharArray(var$9);
                var$10.$buffer0 = var$12;
                var$10.$autoFlush = $var1;
                var$11 = jnci_UTF8Charset_INSTANCE;
                var$10.$charset = var$11;
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, var$10);
        }
        b: {
            g: while (true) {
                while (true) {
                    var$3 = var$3 + 1 | 0;
                    var$8 = var$4.$playerEntityList;
                    $var1 = $rt_compare(var$3, var$8.$size0);
                    if ($var1 >= 0)
                        break g;
                    if (var$3 < 0)
                        break b;
                    if ($var1 >= 0)
                        break b;
                    var$8 = var$8.$array.data[var$3].$playerNetServerHandler;
                    if (!var$6)
                        break;
                    var$9 = var$8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        continue;
                    if (var$9 != 1)
                        break;
                    if (var$7.$isServer)
                        break;
                }
                try {
                    var$8 = var$8.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$10 = jl_System_errCache;
                if (var$10 === null) {
                    var$10 = new otcic_JSStderrPrintStream;
                    var$11 = new ji_ByteArrayOutputStream;
                    $var1 = 32;
                    ji_OutputStream__init_(var$11);
                    var$12 = $rt_createByteArray($var1);
                    var$11.$buf = var$12;
                    $var1 = 0;
                    ji_FilterOutputStream__init_(var$10, var$11);
                    var$11 = jl_StringBuilder__init_();
                    var$10.$sb = var$11;
                    var$9 = 32;
                    var$12 = $rt_createCharArray(var$9);
                    var$10.$buffer0 = var$12;
                    var$10.$autoFlush = $var1;
                    var$11 = jnci_UTF8Charset_INSTANCE;
                    var$10.$charset = var$11;
                    jl_System_errCache = var$10;
                }
                var$10 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$8, var$10);
            }
            return;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    case 3:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                $var1 = 32;
                ji_OutputStream__init_(var$10);
                var$12 = $rt_createByteArray($var1);
                var$10.$buf = var$12;
                $var1 = 0;
                ji_FilterOutputStream__init_(var$7, var$10);
                var$10 = jl_StringBuilder__init_();
                var$7.$sb = var$10;
                var$9 = 32;
                var$12 = $rt_createCharArray(var$9);
                var$7.$buffer0 = var$12;
                var$7.$autoFlush = $var1;
                var$10 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = var$10;
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, var$7);
        }
        b: {
            g: while (true) {
                while (true) {
                    var$3 = var$3 + 1 | 0;
                    var$8 = var$11.$playerEntityList;
                    $var1 = $rt_compare(var$3, var$8.$size0);
                    if ($var1 >= 0)
                        break g;
                    if (var$3 < 0)
                        break b;
                    if ($var1 >= 0)
                        break b;
                    var$8 = var$8.$array.data[var$3].$playerNetServerHandler;
                    if (!var$6)
                        break;
                    var$9 = var$8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        continue;
                    if (var$9 != 1)
                        break;
                    if (var$4.$isServer)
                        break;
                }
                try {
                    var$8 = var$8.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$7 = jl_System_errCache;
                if (var$7 === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$10 = new ji_ByteArrayOutputStream;
                    $var1 = 32;
                    ji_OutputStream__init_(var$10);
                    var$12 = $rt_createByteArray($var1);
                    var$10.$buf = var$12;
                    $var1 = 0;
                    ji_FilterOutputStream__init_(var$7, var$10);
                    var$10 = jl_StringBuilder__init_();
                    var$7.$sb = var$10;
                    var$9 = 32;
                    var$12 = $rt_createCharArray(var$9);
                    var$7.$buffer0 = var$12;
                    var$7.$autoFlush = $var1;
                    var$10 = jnci_UTF8Charset_INSTANCE;
                    var$7.$charset = var$10;
                    jl_System_errCache = var$7;
                }
                var$7 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$8, var$7);
            }
            return;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_WorldServer_getMinecraftServer = $this => {
    return $this.$mcServer0;
},
nms_WorldServer_getEntityTracker = $this => {
    return $this.$theEntityTracker;
},
nms_WorldServer_getPlayerManager = $this => {
    return $this.$thePlayerManager0;
},
nms_WorldServer_getDefaultTeleporter = $this => {
    return $this.$worldTeleporter;
},
nms_WorldServer__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $rt_createArray(nms_WeightedRandomChestContent, 9);
    var$2 = var$1.data;
    var$3 = new nms_WeightedRandomChestContent;
    nms_Item_$callClinit();
    var$4 = nms_Item_stick.$itemID0;
    var$3.$itemWeight = 10;
    var$5 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    var$5.$itemID = var$4;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 3;
    var$2[0] = var$3;
    var$5 = new nms_WeightedRandomChestContent;
    nms_Block_$callClinit();
    var$6 = nms_Block_planks.$blockID;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 3;
    var$2[1] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Block_wood.$blockID;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 3;
    var$2[2] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_axeStone.$itemID0;
    var$5.$itemWeight = 3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[3] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_axeWood.$itemID0;
    var$5.$itemWeight = 5;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[4] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_pickaxeStone.$itemID0;
    var$5.$itemWeight = 3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[5] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_pickaxeWood.$itemID0;
    var$5.$itemWeight = 5;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[6] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_appleRed.$itemID0;
    var$5.$itemWeight = 5;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 2;
    var$5.$theMaximumChanceToGenerateItem = 3;
    var$2[7] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_bread.$itemID0;
    var$5.$itemWeight = 3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 2;
    var$5.$theMaximumChanceToGenerateItem = 3;
    var$2[8] = var$5;
    nms_WorldServer_bonusChestContent = var$1;
};
function nms_WorldInfo() {
    let a = this; jl_Object.call(a);
    a.$randomSeed = Long_ZERO;
    a.$terrainType = null;
    a.$generatorOptions = null;
    a.$spawnX = 0;
    a.$spawnY = 0;
    a.$spawnZ = 0;
    a.$totalTime = Long_ZERO;
    a.$worldTime = Long_ZERO;
    a.$lastTimePlayed = Long_ZERO;
    a.$sizeOnDisk = Long_ZERO;
    a.$playerTag = null;
    a.$dimension2 = 0;
    a.$levelName = null;
    a.$saveVersion = 0;
    a.$raining = 0;
    a.$rainTime = 0;
    a.$thundering = 0;
    a.$thunderTime = 0;
    a.$theGameType = null;
    a.$mapFeaturesEnabled = 0;
    a.$hardcore = 0;
    a.$allowCommands = 0;
    a.$initialized = 0;
    a.$theGameRules0 = null;
}
let nms_WorldInfo__init_0 = $this => {
    $this.$terrainType = nms_WorldType_DEFAULT;
    $this.$generatorOptions = $rt_s(3);
    $this.$theGameRules0 = nms_GameRules__init_();
},
nms_WorldInfo__init_4 = () => {
    let var_0 = new nms_WorldInfo();
    nms_WorldInfo__init_0(var_0);
    return var_0;
},
nms_WorldInfo__init_1 = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, $var2, $var3, var$9, var$10, var$11;
    $this.$terrainType = nms_WorldType_DEFAULT;
    $this.$generatorOptions = $rt_s(3);
    $this.$theGameRules0 = nms_GameRules__init_();
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1687));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1687) !== var$5 && !jl_String_equals($rt_s(1687), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$6 = Long_ZERO;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1687) !== null) {
            var$3 = jl_String_hashCode($rt_s(1687));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1687) !== var$5 && !jl_String_equals($rt_s(1687), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data6;
    }
    $this.$randomSeed = var$6;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1688));
    var$4 = var$2.$elementData.data;
    var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$5 !== null) {
        if (var$5.$origKeyHash == var$3) {
            var$2 = var$5.$key;
            if ($rt_s(1688) !== var$2 && !jl_String_equals($rt_s(1688), var$2) ? 0 : 1)
                break;
        }
        var$5 = var$5.$next3;
    }
    if (var$5 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(1688));
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($rt_s(1688) !== var$5 && !jl_String_equals($rt_s(1688), var$5) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1688) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode($rt_s(1688));
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        var$5 = var$2.$key;
                        if ($rt_s(1688) !== var$5 && !jl_String_equals($rt_s(1688), var$5) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            $var2 = (var$2 === null ? null : var$2.$value0).$data1;
        } else
            $var2 = $rt_s(3);
        $var2 = nms_WorldType_parseWorldType($var2);
        $this.$terrainType = $var2;
        if ($var2 === null)
            $this.$terrainType = nms_WorldType_DEFAULT;
        else if ($var2.$isWorldTypeVersioned) {
            $var3 = 0;
            if (ju_HashMap_containsKey($par1NBTTagCompound.$tagMap, $rt_s(1689)))
                $var3 = nms_NBTTagCompound_getInteger($par1NBTTagCompound, $rt_s(1689));
            $this.$terrainType = nms_WorldType_getWorldTypeForGeneratorVersion($this.$terrainType, $var3);
        }
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(1690));
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($rt_s(1690) !== var$5 && !jl_String_equals($rt_s(1690), var$5) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            var$3 = jl_String_hashCode($rt_s(1690));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1690) !== var$5 && !jl_String_equals($rt_s(1690), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (var$2 === null ? 0 : 1) {
                var$2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1690) === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$3 = jl_String_hashCode($rt_s(1690));
                    var$4 = var$2.$elementData.data;
                    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$3) {
                            var$5 = var$2.$key;
                            if ($rt_s(1690) !== var$5 && !jl_String_equals($rt_s(1690), var$5) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                $var2 = (var$2 === null ? null : var$2.$value0).$data1;
            } else
                $var2 = $rt_s(3);
            $this.$generatorOptions = $var2;
        }
    }
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1691));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1691) !== var$5 && !jl_String_equals($rt_s(1691), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1691) !== null) {
            var$3 = jl_String_hashCode($rt_s(1691));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1691) !== var$5 && !jl_String_equals($rt_s(1691), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$9 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$9 = 0;
    var$4 = (nms_EnumGameType_$VALUES.$clone0()).data;
    $var3 = var$4.length;
    var$3 = 0;
    a: {
        while (true) {
            if (var$3 >= $var3) {
                $var2 = nms_EnumGameType_SURVIVAL;
                break a;
            }
            $var2 = var$4[var$3];
            if ($var2.$id3 == var$9)
                break;
            var$3 = var$3 + 1 | 0;
        }
    }
    $this.$theGameType = $var2;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1692));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1692) !== var$5 && !jl_String_equals($rt_s(1692), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(1692));
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($rt_s(1692) !== var$5 && !jl_String_equals($rt_s(1692), var$5) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1692) !== null) {
                var$3 = jl_String_hashCode($rt_s(1692));
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        var$5 = var$2.$key;
                        if ($rt_s(1692) !== var$5 && !jl_String_equals($rt_s(1692), var$5) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            $var3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            $var3 = 0;
        $this.$mapFeaturesEnabled = !$var3 ? 0 : 1;
    } else
        $this.$mapFeaturesEnabled = 1;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1693));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1693) !== var$5 && !jl_String_equals($rt_s(1693), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1693) !== null) {
            var$3 = jl_String_hashCode($rt_s(1693));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1693) !== var$5 && !jl_String_equals($rt_s(1693), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        $var3 = 0;
    $this.$spawnX = $var3;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1694));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1694) !== var$5 && !jl_String_equals($rt_s(1694), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1694) !== null) {
            var$3 = jl_String_hashCode($rt_s(1694));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1694) !== var$5 && !jl_String_equals($rt_s(1694), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        $var3 = 0;
    $this.$spawnY = $var3;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1695));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1695) !== var$5 && !jl_String_equals($rt_s(1695), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1695) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode($rt_s(1695));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1695) !== var$5 && !jl_String_equals($rt_s(1695), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    $this.$spawnZ = $var3;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1696));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1696) !== var$5 && !jl_String_equals($rt_s(1696), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1696) !== null) {
            var$3 = jl_String_hashCode($rt_s(1696));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1696) !== var$5 && !jl_String_equals($rt_s(1696), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data6;
    } else
        var$6 = Long_ZERO;
    $this.$totalTime = var$6;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1697));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1697) !== var$5 && !jl_String_equals($rt_s(1697), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(1697));
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($rt_s(1697) !== var$5 && !jl_String_equals($rt_s(1697), var$5) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1697) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode($rt_s(1697));
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        var$5 = var$2.$key;
                        if ($rt_s(1697) !== var$5 && !jl_String_equals($rt_s(1697), var$5) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = (var$2 === null ? null : var$2.$value0).$data6;
        } else
            var$6 = Long_ZERO;
        $this.$worldTime = var$6;
    } else
        $this.$worldTime = $this.$totalTime;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(178));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(178) !== var$5 && !jl_String_equals($rt_s(178), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$6 = Long_ZERO;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(178) !== null) {
            var$3 = jl_String_hashCode($rt_s(178));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(178) !== var$5 && !jl_String_equals($rt_s(178), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data6;
    }
    $this.$lastTimePlayed = var$6;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1698));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1698) !== var$5 && !jl_String_equals($rt_s(1698), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$6 = Long_ZERO;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1698) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode($rt_s(1698));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1698) !== var$5 && !jl_String_equals($rt_s(1698), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data6;
    }
    $this.$sizeOnDisk = var$6;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(56));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(56) !== var$5 && !jl_String_equals($rt_s(56), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var2 = $rt_s(3);
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(56) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode($rt_s(56));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(56) !== var$5 && !jl_String_equals($rt_s(56), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var2 = (var$2 === null ? null : var$2.$value0).$data1;
    }
    $this.$levelName = $var2;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1699));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1699) !== var$5 && !jl_String_equals($rt_s(1699), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1699) !== null) {
            var$3 = jl_String_hashCode($rt_s(1699));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1699) !== var$5 && !jl_String_equals($rt_s(1699), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        $var3 = 0;
    $this.$saveVersion = $var3;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1700));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1700) !== var$5 && !jl_String_equals($rt_s(1700), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1700) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode($rt_s(1700));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1700) !== var$5 && !jl_String_equals($rt_s(1700), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    $this.$rainTime = $var3;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1701));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1701) !== var$5 && !jl_String_equals($rt_s(1701), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1701) !== null) {
            var$3 = jl_String_hashCode($rt_s(1701));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1701) !== var$5 && !jl_String_equals($rt_s(1701), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        $var3 = 0;
    $this.$raining = !$var3 ? 0 : 1;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1702));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1702) !== var$5 && !jl_String_equals($rt_s(1702), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1702) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode($rt_s(1702));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1702) !== var$5 && !jl_String_equals($rt_s(1702), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    $this.$thunderTime = $var3;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1703));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1703) !== var$5 && !jl_String_equals($rt_s(1703), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1703) !== null) {
            var$3 = jl_String_hashCode($rt_s(1703));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1703) !== var$5 && !jl_String_equals($rt_s(1703), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    $this.$thundering = !$var3 ? 0 : 1;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1704));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1704) !== var$5 && !jl_String_equals($rt_s(1704), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1704) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode($rt_s(1704));
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($rt_s(1704) !== var$5 && !jl_String_equals($rt_s(1704), var$5) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        $var3 = 0;
    $this.$hardcore = !$var3 ? 0 : 1;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = jl_String_hashCode($rt_s(1705));
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            var$5 = var$2.$key;
            if ($rt_s(1705) !== var$5 && !jl_String_equals($rt_s(1705), var$5) ? 0 : 1)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(1705));
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($rt_s(1705) !== var$5 && !jl_String_equals($rt_s(1705), var$5) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1705) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                b: {
                    if (!$rt_s(1705).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1705).$nativeString.length)
                                break b;
                            $rt_s(1705).$hashCode1 = (31 * $rt_s(1705).$hashCode1 | 0) + $rt_s(1705).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(1705).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$5 = var$2.$key;
                        if ($rt_s(1705) !== var$5 && !jl_String_equals($rt_s(1705), var$5) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            $var3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            $var3 = 0;
        $this.$initialized = !$var3 ? 0 : 1;
    } else
        $this.$initialized = 1;
    c: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1706).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1706).$nativeString.length)
                    break c;
                $rt_s(1706).$hashCode1 = (31 * $rt_s(1706).$hashCode1 | 0) + $rt_s(1706).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(1706).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$10) {
            d: {
                var$5 = var$2.$key;
                if ($rt_s(1706) !== var$5) {
                    if ($rt_s(1706) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(1706).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break d;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        e: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1706).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1706).$nativeString.length)
                        break e;
                    $rt_s(1706).$hashCode1 = (31 * $rt_s(1706).$hashCode1 | 0) + $rt_s(1706).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(1706).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$10) {
                f: {
                    var$5 = var$2.$key;
                    if ($rt_s(1706) !== var$5) {
                        if ($rt_s(1706) === var$5)
                            $var3 = 1;
                        else if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(1706).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                        if (!$var3) {
                            $var3 = 0;
                            break f;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            $var3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1706) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                g: {
                    if (!$rt_s(1706).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1706).$nativeString.length)
                                break g;
                            $rt_s(1706).$hashCode1 = (31 * $rt_s(1706).$hashCode1 | 0) + $rt_s(1706).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(1706).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        h: {
                            var$5 = var$2.$key;
                            if ($rt_s(1706) !== var$5) {
                                if ($rt_s(1706) !== var$5) {
                                    if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        $var3 = $rt_s(1706).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        $var3 = 0;
                                } else
                                    $var3 = 1;
                                if (!$var3) {
                                    $var3 = 0;
                                    break h;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            $var3 = (var$2 === null ? null : var$2.$value0).$data0;
        }
        $this.$allowCommands = !$var3 ? 0 : 1;
    } else
        $this.$allowCommands = $this.$theGameType !== nms_EnumGameType_CREATIVE ? 0 : 1;
    i: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1707).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1707).$nativeString.length)
                    break i;
                $rt_s(1707).$hashCode1 = (31 * $rt_s(1707).$hashCode1 | 0) + $rt_s(1707).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(1707).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$10) {
            j: {
                var$5 = var$2.$key;
                if ($rt_s(1707) !== var$5) {
                    if ($rt_s(1707) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(1707).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        k: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1707).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1707).$nativeString.length)
                        break k;
                    $rt_s(1707).$hashCode1 = (31 * $rt_s(1707).$hashCode1 | 0) + $rt_s(1707).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(1707).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$10) {
                l: {
                    var$5 = var$2.$key;
                    if ($rt_s(1707) !== var$5) {
                        if ($rt_s(1707) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(1707).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break l;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            var$2 = new nms_NBTTagCompound;
            if ($rt_s(1707) !== null)
                var$2.$name = $rt_s(1707);
            else
                var$2.$name = $rt_s(3);
            var$2.$tagMap = ju_HashMap__init_();
        } else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1707) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                m: {
                    if (!$rt_s(1707).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1707).$nativeString.length)
                                break m;
                            $rt_s(1707).$hashCode1 = (31 * $rt_s(1707).$hashCode1 | 0) + $rt_s(1707).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(1707).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        n: {
                            var$5 = var$2.$key;
                            if ($rt_s(1707) !== var$5) {
                                if ($rt_s(1707) === var$5)
                                    $var3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$5 = var$5;
                                    $var3 = $rt_s(1707).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break n;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$2 = var$2 === null ? null : var$2.$value0;
        }
        o: {
            $this.$playerTag = var$2;
            var$5 = var$2.$tagMap;
            if (!$rt_s(1261).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1261).$nativeString.length)
                        break o;
                    $rt_s(1261).$hashCode1 = (31 * $rt_s(1261).$hashCode1 | 0) + $rt_s(1261).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(1261).$hashCode1;
        var$4 = var$5.$elementData.data;
        var$5 = var$4[var$10 & (var$4.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$10) {
                p: {
                    var$11 = var$5.$key;
                    if ($rt_s(1261) !== var$11) {
                        if ($rt_s(1261) === var$11)
                            $var3 = 1;
                        else if (!(var$11 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$11 = var$11;
                            $var3 = $rt_s(1261).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break p;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            var$5 = var$5.$next3;
        }
        if (!(var$5 === null ? 0 : 1))
            $var3 = 0;
        else {
            var$2 = var$2.$tagMap;
            if ($rt_s(1261) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                q: {
                    if (!$rt_s(1261).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1261).$nativeString.length)
                                break q;
                            $rt_s(1261).$hashCode1 = (31 * $rt_s(1261).$hashCode1 | 0) + $rt_s(1261).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(1261).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        r: {
                            var$5 = var$2.$key;
                            if ($rt_s(1261) !== var$5) {
                                if ($rt_s(1261) === var$5)
                                    $var3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$5 = var$5;
                                    $var3 = $rt_s(1261).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break r;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            $var3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        $this.$dimension2 = $var3;
    }
    s: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1708).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1708).$nativeString.length)
                    break s;
                $rt_s(1708).$hashCode1 = (31 * $rt_s(1708).$hashCode1 | 0) + $rt_s(1708).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(1708).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$10) {
            t: {
                var$5 = var$2.$key;
                if ($rt_s(1708) !== var$5) {
                    if ($rt_s(1708) === var$5)
                        $var3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$5 = var$5;
                        $var3 = $rt_s(1708).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break t;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        u: {
            $var2 = $this.$theGameRules0;
            var$5 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1708).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1708).$nativeString.length)
                        break u;
                    $rt_s(1708).$hashCode1 = (31 * $rt_s(1708).$hashCode1 | 0) + $rt_s(1708).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(1708).$hashCode1;
        if (!(ju_HashMap_findNonNullKeyEntry(var$5, $rt_s(1708), var$10 & (var$5.$elementData.data.length - 1 | 0), var$10) === null ? 0 : 1))
            $par1NBTTagCompound = nms_NBTTagCompound__init_1($rt_s(1708));
        else {
            $par1NBTTagCompound = ju_HashMap_entryByKey($par1NBTTagCompound.$tagMap, $rt_s(1708));
            $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        nms_GameRules_readGameRulesFromNBT($var2, $par1NBTTagCompound);
    }
},
nms_WorldInfo__init_ = var_0 => {
    let var_1 = new nms_WorldInfo();
    nms_WorldInfo__init_1(var_1, var_0);
    return var_1;
},
nms_WorldInfo__init_3 = ($this, $par1WorldSettings, $par2Str) => {
    $this.$terrainType = nms_WorldType_DEFAULT;
    $this.$generatorOptions = $rt_s(3);
    $this.$theGameRules0 = nms_GameRules__init_();
    $this.$randomSeed = $par1WorldSettings.$seed1;
    $this.$theGameType = $par1WorldSettings.$theGameType0;
    $this.$mapFeaturesEnabled = $par1WorldSettings.$mapFeaturesEnabled1;
    $this.$levelName = $par2Str;
    $this.$hardcore = $par1WorldSettings.$hardcoreEnabled;
    $this.$terrainType = $par1WorldSettings.$terrainType2;
    $this.$generatorOptions = $par1WorldSettings.$field_82751_h;
    $this.$allowCommands = $par1WorldSettings.$commandsAllowed;
    $this.$initialized = 0;
},
nms_WorldInfo__init_2 = (var_0, var_1) => {
    let var_2 = new nms_WorldInfo();
    nms_WorldInfo__init_3(var_2, var_0, var_1);
    return var_2;
},
nms_WorldInfo_getNBTTagCompound = $this => {
    let $var1, var$2, var$3, var$4, var$5;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    nms_WorldInfo_updateTagCompound($this, $var1, $this.$playerTag);
    return $var1;
},
nms_WorldInfo_cloneNBTCompound = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6;
    $var2 = new nms_NBTTagCompound;
    $var2.$name = $rt_s(3);
    var$3 = new ju_HashMap;
    var$4 = ju_HashMap_calculateCapacity(16);
    var$3.$elementCount = 0;
    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
    var$6 = var$5.data;
    var$3.$elementData = var$5;
    var$3.$loadFactor = 0.75;
    var$3.$threshold = var$6.length * 0.75 | 0;
    $var2.$tagMap = var$3;
    nms_WorldInfo_updateTagCompound($this, $var2, $par1NBTTagCompound);
    return $var2;
},
nms_WorldInfo_updateTagCompound = ($this, $par1NBTTagCompound, $par2NBTTagCompound) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18;
    var$3 = $this.$randomSeed;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagLong;
    var$5.$name = $rt_s(1687);
    var$5.$data6 = var$3;
    ju_HashMap_putImpl(var$4, $rt_s(1687), var$5);
    var$6 = $this.$terrainType.$worldType;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagString;
    var$5.$name = $rt_s(1688);
    var$5.$data1 = var$6;
    if (var$6 === null) {
        $par2NBTTagCompound = new jl_IllegalArgumentException;
        $par2NBTTagCompound.$suppressionEnabled = 1;
        $par2NBTTagCompound.$writableStackTrace = 1;
        $par2NBTTagCompound.$message = $rt_s(177);
        $rt_throw($par2NBTTagCompound);
    }
    ju_HashMap_putImpl(var$4, $rt_s(1688), var$5);
    var$7 = $this.$terrainType.$generatorVersion;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagInt;
    var$5.$name = $rt_s(1689);
    var$5.$data = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(1689), var$5);
    var$8 = $this.$generatorOptions;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagString;
    var$5.$name = $rt_s(1690);
    var$5.$data1 = var$8;
    if (var$8 === null) {
        $par2NBTTagCompound = new jl_IllegalArgumentException;
        $par2NBTTagCompound.$suppressionEnabled = 1;
        $par2NBTTagCompound.$writableStackTrace = 1;
        $par2NBTTagCompound.$message = $rt_s(177);
        $rt_throw($par2NBTTagCompound);
    }
    ju_HashMap_putImpl(var$4, $rt_s(1690), var$5);
    var$7 = $this.$theGameType.$id3;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagInt;
    var$5.$name = $rt_s(1691);
    var$5.$data = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(1691), var$5);
    var$7 = (!$this.$mapFeaturesEnabled ? 0 : 1) << 24 >> 24;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagByte;
    var$5.$name = $rt_s(1692);
    var$5.$data0 = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(1692), var$5);
    var$7 = $this.$spawnX;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagInt;
    var$5.$name = $rt_s(1693);
    var$5.$data = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(1693), var$5);
    var$7 = $this.$spawnY;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagInt;
    var$5.$name = $rt_s(1694);
    var$5.$data = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(1694), var$5);
    var$7 = $this.$spawnZ;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagInt;
    var$5.$name = $rt_s(1695);
    var$5.$data = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(1695), var$5);
    var$3 = $this.$totalTime;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagLong;
    var$5.$name = $rt_s(1696);
    var$5.$data6 = var$3;
    ju_HashMap_putImpl(var$4, $rt_s(1696), var$5);
    var$3 = $this.$worldTime;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagLong;
    var$5.$name = $rt_s(1697);
    var$5.$data6 = var$3;
    ju_HashMap_putImpl(var$4, $rt_s(1697), var$5);
    var$3 = $this.$sizeOnDisk;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$5 = new nms_NBTTagLong;
    var$5.$name = $rt_s(1698);
    var$5.$data6 = var$3;
    ju_HashMap_putImpl(var$4, $rt_s(1698), var$5);
    nles_SysUtil_$callClinit();
    var$3 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagLong;
    var$4.$name = $rt_s(178);
    var$4.$data6 = var$3;
    ju_HashMap_putImpl(var$6, $rt_s(178), var$4);
    var$4 = $this.$levelName;
    var$8 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagString;
    var$6.$name = $rt_s(56);
    var$6.$data1 = var$4;
    if (var$4 === null) {
        $par2NBTTagCompound = new jl_IllegalArgumentException;
        $par2NBTTagCompound.$suppressionEnabled = 1;
        $par2NBTTagCompound.$writableStackTrace = 1;
        $par2NBTTagCompound.$message = $rt_s(177);
        $rt_throw($par2NBTTagCompound);
    }
    ju_HashMap_putImpl(var$8, $rt_s(56), var$6);
    var$7 = $this.$saveVersion;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(1699);
    var$4.$data = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1699), var$4);
    var$7 = $this.$rainTime;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(1700);
    var$4.$data = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1700), var$4);
    var$7 = (!$this.$raining ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(1701);
    var$4.$data0 = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1701), var$4);
    var$7 = $this.$thunderTime;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(1702);
    var$4.$data = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1702), var$4);
    var$7 = (!$this.$thundering ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(1703);
    var$4.$data0 = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1703), var$4);
    var$7 = (!$this.$hardcore ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(1704);
    var$4.$data0 = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1704), var$4);
    var$7 = (!$this.$allowCommands ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(1706);
    var$4.$data0 = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1706), var$4);
    var$7 = (!$this.$initialized ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(1705);
    var$4.$data0 = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(1705), var$4);
    var$6 = $this.$theGameRules0;
    var$8 = new nms_NBTTagCompound;
    var$8.$name = $rt_s(1708);
    var$5 = new ju_HashMap;
    var$7 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$9 = $rt_createArray(ju_HashMap$HashEntry, var$7);
    var$10 = var$9.data;
    var$5.$elementData = var$9;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$10.length * 0.75 | 0;
    var$8.$tagMap = var$5;
    var$5 = var$6.$theGameRules;
    if (var$5.$cachedKeySet === null) {
        var$11 = new ju_AbstractMap$KeySet;
        var$11.$this$03 = var$5;
        var$5.$cachedKeySet = var$11;
    }
    var$12 = var$5.$cachedKeySet.$iterator();
    a: {
        b: {
            c: {
                d: while (true) {
                    if (!var$12.$hasNext()) {
                        var$5 = $par1NBTTagCompound.$tagMap;
                        var$8.$name = $rt_s(1708);
                        ju_HashMap_putImpl(var$5, $rt_s(1708), var$8);
                        if ($par2NBTTagCompound !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                            $par2NBTTagCompound.$name = $rt_s(1707);
                            ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(1707), $par2NBTTagCompound);
                        }
                        return;
                    }
                    e: {
                        var$13 = var$12.$next();
                        var$11 = var$6.$theGameRules.$root;
                        var$14 = var$13;
                        var$5 = var$13;
                        if (var$14 !== var$5) {
                            var$15 = var$14.$nativeString.length;
                            var$16 = var$5.$nativeString.length;
                            if (var$15 < var$16)
                                var$16 = var$15;
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= var$16) {
                                    var$14.$nativeString.length;
                                    var$5.$nativeString.length;
                                    break e;
                                }
                                if (var$7 < 0)
                                    break a;
                                if (var$7 >= var$14.$nativeString.length)
                                    break a;
                                var$17 = var$14.$nativeString.charCodeAt(var$7);
                                if (var$7 < 0)
                                    break b;
                                if (var$7 >= var$5.$nativeString.length)
                                    break b;
                                if (var$17 - var$5.$nativeString.charCodeAt(var$7) | 0)
                                    break;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    f: {
                        while (true) {
                            if (var$11 === null) {
                                var$11 = null;
                                break f;
                            }
                            g: {
                                var$5 = var$11.$key0;
                                if (var$14 === var$5)
                                    var$7 = 0;
                                else {
                                    var$15 = var$14.$nativeString.length;
                                    var$16 = var$5.$nativeString.length;
                                    if (var$15 < var$16)
                                        var$16 = var$15;
                                    var$15 = 0;
                                    while (true) {
                                        if (var$15 >= var$16) {
                                            var$7 = var$14.$nativeString.length - var$5.$nativeString.length | 0;
                                            break g;
                                        }
                                        if (var$15 < 0)
                                            break c;
                                        if (var$15 >= var$14.$nativeString.length)
                                            break c;
                                        var$17 = var$14.$nativeString.charCodeAt(var$15);
                                        if (var$15 < 0)
                                            break d;
                                        if (var$15 >= var$5.$nativeString.length)
                                            break d;
                                        var$7 = var$17 - var$5.$nativeString.charCodeAt(var$15) | 0;
                                        if (var$7)
                                            break;
                                        var$15 = var$15 + 1 | 0;
                                    }
                                }
                            }
                            if (!var$7)
                                break;
                            var$11 = var$7 >= 0 ? var$11.$right : var$11.$left;
                        }
                    }
                    var$18 = (var$11 === null ? null : var$11.$value2).$valueString;
                    var$11 = var$8.$tagMap;
                    var$5 = new nms_NBTTagString;
                    if (var$13 !== null)
                        var$5.$name = var$13;
                    else
                        var$5.$name = $rt_s(3);
                    var$5.$data1 = var$18;
                    if (var$18 === null) {
                        $par2NBTTagCompound = new jl_IllegalArgumentException;
                        $par2NBTTagCompound.$suppressionEnabled = 1;
                        $par2NBTTagCompound.$writableStackTrace = 1;
                        $par2NBTTagCompound.$message = $rt_s(177);
                        $rt_throw($par2NBTTagCompound);
                    }
                    ju_HashMap_putImpl(var$11, var$13, var$5);
                }
                $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1NBTTagCompound);
                $rt_throw($par1NBTTagCompound);
            }
            $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1NBTTagCompound);
            $rt_throw($par1NBTTagCompound);
        }
        $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
        jl_IndexOutOfBoundsException__init_($par1NBTTagCompound);
        $rt_throw($par1NBTTagCompound);
    }
    $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
    jl_IndexOutOfBoundsException__init_($par1NBTTagCompound);
    $rt_throw($par1NBTTagCompound);
},
nms_WorldInfo_getSeed = $this => {
    return $this.$randomSeed;
},
nms_WorldInfo_getSpawnX = $this => {
    return $this.$spawnX;
},
nms_WorldInfo_getSpawnY = $this => {
    return $this.$spawnY;
},
nms_WorldInfo_getSpawnZ = $this => {
    return $this.$spawnZ;
},
nms_WorldInfo_getWorldTotalTime = $this => {
    return $this.$totalTime;
},
nms_WorldInfo_getWorldTime = $this => {
    return $this.$worldTime;
},
nms_WorldInfo_getPlayerNBTTagCompound = $this => {
    return $this.$playerTag;
},
nms_WorldInfo_getVanillaDimension = $this => {
    return $this.$dimension2;
},
nms_WorldInfo_incrementTotalWorldTime = ($this, $par1) => {
    $this.$totalTime = $par1;
},
nms_WorldInfo_setWorldTime = ($this, $par1) => {
    $this.$worldTime = $par1;
},
nms_WorldInfo_setSpawnPosition = ($this, $par1, $par2, $par3) => {
    $this.$spawnX = $par1;
    $this.$spawnY = $par2;
    $this.$spawnZ = $par3;
},
nms_WorldInfo_getWorldName = $this => {
    return $this.$levelName;
},
nms_WorldInfo_setWorldName = ($this, $par1Str) => {
    $this.$levelName = $par1Str;
},
nms_WorldInfo_isThundering = $this => {
    return $this.$thundering;
},
nms_WorldInfo_setThundering = ($this, $par1) => {
    $this.$thundering = $par1;
},
nms_WorldInfo_getThunderTime = $this => {
    return $this.$thunderTime;
},
nms_WorldInfo_setThunderTime = ($this, $par1) => {
    $this.$thunderTime = $par1;
},
nms_WorldInfo_isRaining = $this => {
    return $this.$raining;
},
nms_WorldInfo_setRaining = ($this, $par1) => {
    $this.$raining = $par1;
},
nms_WorldInfo_getRainTime = $this => {
    return $this.$rainTime;
},
nms_WorldInfo_setRainTime = ($this, $par1) => {
    $this.$rainTime = $par1;
},
nms_WorldInfo_getGameType = $this => {
    return $this.$theGameType;
},
nms_WorldInfo_isMapFeaturesEnabled = $this => {
    return $this.$mapFeaturesEnabled;
},
nms_WorldInfo_setGameType = ($this, $par1EnumGameType) => {
    $this.$theGameType = $par1EnumGameType;
},
nms_WorldInfo_isHardcoreModeEnabled = $this => {
    return $this.$hardcore;
},
nms_WorldInfo_getTerrainType = $this => {
    return $this.$terrainType;
},
nms_WorldInfo_getGeneratorOptions = $this => {
    return $this.$generatorOptions;
},
nms_WorldInfo_areCommandsAllowed = $this => {
    return $this.$allowCommands;
},
nms_WorldInfo_isInitialized = $this => {
    return $this.$initialized;
},
nms_WorldInfo_setServerInitialized = ($this, $par1) => {
    $this.$initialized = $par1;
},
nms_WorldInfo_getGameRulesInstance = $this => {
    return $this.$theGameRules0;
};
function ju_Formatter() {
    let a = this; jl_Object.call(a);
    a.$locale2 = null;
    a.$out1 = null;
    a.$ioException = null;
}
let ju_Formatter__init_ = $this => {
    let var$1, var$2;
    ju_Locale_$callClinit();
    var$1 = ju_Locale_defaultLocale;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    $this.$out1 = var$2;
    $this.$locale2 = var$1;
},
ju_Formatter__init_0 = () => {
    let var_0 = new ju_Formatter();
    ju_Formatter__init_(var_0);
    return var_0;
};
function ju_AbstractMap$SimpleEntry() {
    let a = this; jl_Object.call(a);
    a.$key0 = null;
    a.$value2 = null;
}
let ju_AbstractMap$SimpleEntry__init_ = ($this, $key, $value) => {
    $this.$key0 = $key;
    $this.$value2 = $value;
},
ju_AbstractMap$SimpleEntry__init_0 = (var_0, var_1) => {
    let var_2 = new ju_AbstractMap$SimpleEntry();
    ju_AbstractMap$SimpleEntry__init_(var_2, var_0, var_1);
    return var_2;
},
ju_AbstractMap$SimpleEntry_getValue = $this => {
    return $this.$value2;
},
ju_AbstractMap$SimpleEntry_setValue = ($this, $value) => {
    let $old;
    $old = $this.$value2;
    $this.$value2 = $value;
    return $old;
},
ju_AbstractMap$SimpleEntry_getKey = $this => {
    return $this.$key0;
},
ju_AbstractMap$SimpleEntry_equals = ($this, $obj) => {
    let $entry, var$3, var$4;
    if ($this === $obj)
        return 1;
    if (!$rt_isInstance($obj, ju_Map$Entry))
        return 0;
    $entry = $obj;
    $obj = $this.$key0;
    var$3 = $entry.$getKey();
    var$4 = $obj === var$3 ? 1 : $obj !== null ? $obj.$equals(var$3) : var$3 !== null ? 0 : 1;
    a: {
        if (var$4) {
            $obj = $this.$value2;
            $entry = $entry.$getValue();
            if ($obj === $entry ? 1 : $obj !== null ? $obj.$equals($entry) : $entry !== null ? 0 : 1) {
                var$4 = 1;
                break a;
            }
        }
        var$4 = 0;
    }
    return var$4;
},
ju_AbstractMap$SimpleEntry_hashCode = $this => {
    let var$1, var$2;
    var$1 = $this.$key0;
    var$2 = var$1 !== null ? var$1.$hashCode() : 0;
    var$1 = $this.$value2;
    return var$2 ^ (var$1 !== null ? var$1.$hashCode() : 0);
},
ju_AbstractMap$SimpleEntry_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$key0;
    var$2 = $this.$value2;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1 === null ? $rt_s(1) : var$1.$toString());
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 61;
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$2 === null ? $rt_s(1) : var$2.$toString());
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$4 = var$3.$length0;
    var$7 = var$6.length;
    if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
        return var$1;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$3);
    $rt_throw(var$3);
};
function ju_TreeMap$TreeNode() {
    let a = this; ju_AbstractMap$SimpleEntry.call(a);
    a.$left = null;
    a.$right = null;
    a.$height = 0;
    a.$size1 = 0;
}
let ju_TreeMap$TreeNode__init_0 = ($this, $key) => {
    let var$2;
    var$2 = null;
    $this.$key0 = $key;
    $this.$value2 = var$2;
    $this.$height = 1;
    $this.$size1 = 1;
},
ju_TreeMap$TreeNode__init_ = var_0 => {
    let var_1 = new ju_TreeMap$TreeNode();
    ju_TreeMap$TreeNode__init_0(var_1, var_0);
    return var_1;
},
ju_TreeMap$TreeNode_balance = $this => {
    let var$1, var$2, var$3, $factor, var$5, var$6;
    var$1 = $this.$right;
    var$2 = var$1 === null ? 0 : var$1.$height;
    var$3 = $this.$left;
    $factor = var$2 - (var$3 === null ? 0 : var$3.$height) | 0;
    if ($factor == 2) {
        var$5 = var$1.$right;
        var$2 = var$5 === null ? 0 : var$5.$height;
        var$6 = var$1.$left;
        if ((var$2 - (var$6 === null ? 0 : var$6.$height) | 0) < 0) {
            var$1.$left = var$6.$right;
            var$6.$right = var$1;
            ju_TreeMap$TreeNode_fix(var$1);
            ju_TreeMap$TreeNode_fix(var$6);
            $this.$right = var$6;
        }
        var$5 = $this.$right;
        $this.$right = var$5.$left;
        var$5.$left = $this;
        ju_TreeMap$TreeNode_fix($this);
        ju_TreeMap$TreeNode_fix(var$5);
        return var$5;
    }
    if ($factor != (-2))
        return $this;
    var$6 = var$3.$right;
    var$2 = var$6 === null ? 0 : var$6.$height;
    var$5 = var$3.$left;
    if ((var$2 - (var$5 === null ? 0 : var$5.$height) | 0) > 0) {
        var$3.$right = var$6.$left;
        var$6.$left = var$3;
        ju_TreeMap$TreeNode_fix(var$3);
        ju_TreeMap$TreeNode_fix(var$6);
        $this.$left = var$6;
    }
    var$5 = $this.$left;
    $this.$left = var$5.$right;
    var$5.$right = $this;
    ju_TreeMap$TreeNode_fix($this);
    ju_TreeMap$TreeNode_fix(var$5);
    return var$5;
},
ju_TreeMap$TreeNode_fix = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$right;
    var$2 = var$1 === null ? 0 : var$1.$height;
    var$3 = $this.$left;
    var$4 = var$3 === null ? 0 : var$3.$height;
    if (var$2 > var$4)
        var$4 = var$2;
    $this.$height = var$4 + 1 | 0;
    $this.$size1 = 1;
    if (var$3 !== null)
        $this.$size1 = 1 + var$3.$size1 | 0;
    if (var$1 !== null)
        $this.$size1 = $this.$size1 + var$1.$size1 | 0;
};
function jt_SimpleDatePatternParser() {
    let a = this; jl_Object.call(a);
    a.$symbols0 = null;
    a.$locale4 = null;
    a.$elements = null;
    a.$index7 = 0;
    a.$pattern1 = null;
}
let jt_SimpleDatePatternParser_parsePattern = ($this, $pattern) => {
    let $rep, $c, $sb, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    ju_ArrayList_clear($this.$elements);
    $this.$pattern1 = $pattern;
    $this.$index7 = 0;
    a: {
        b: {
            c: {
                d: {
                    while ($this.$index7 < $pattern.$nativeString.length) {
                        $rep = $this.$index7;
                        if ($rep < 0)
                            break c;
                        if ($rep >= $pattern.$nativeString.length)
                            break c;
                        e: {
                            f: {
                                g: {
                                    $c = $pattern.$nativeString.charCodeAt($rep);
                                    switch ($c) {
                                        case 39:
                                            break;
                                        case 40:
                                        case 41:
                                        case 42:
                                        case 43:
                                        case 44:
                                        case 45:
                                        case 46:
                                        case 47:
                                        case 48:
                                        case 49:
                                        case 50:
                                        case 51:
                                        case 52:
                                        case 53:
                                        case 54:
                                        case 55:
                                        case 56:
                                        case 57:
                                        case 58:
                                        case 59:
                                        case 60:
                                        case 61:
                                        case 62:
                                        case 63:
                                        case 64:
                                        case 65:
                                        case 66:
                                        case 67:
                                        case 73:
                                        case 74:
                                        case 78:
                                        case 79:
                                        case 80:
                                        case 81:
                                        case 82:
                                        case 84:
                                        case 85:
                                        case 86:
                                        case 91:
                                        case 92:
                                        case 93:
                                        case 94:
                                        case 95:
                                        case 96:
                                        case 98:
                                        case 101:
                                        case 102:
                                        case 103:
                                        case 105:
                                        case 106:
                                        case 108:
                                        case 110:
                                        case 111:
                                        case 112:
                                        case 113:
                                        case 114:
                                        case 116:
                                        case 118:
                                        case 120:
                                            break g;
                                        case 68:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 3;
                                            var$5.$field = 6;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 69:
                                        case 99:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$WeekdayText;
                                            var$8 = $this.$symbols0;
                                            $rep = $rep > 3 ? 0 : 1;
                                            var$5.$weeks = jt_DateFormatSymbols_getWeekdays(var$8);
                                            var$5.$shortWeeks = jt_DateFormatSymbols_getShortWeekdays(var$8);
                                            var$5.$abbreviated0 = $rep;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 70:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 8;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 71:
                                            jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$EraText;
                                            var$8 = $this.$symbols0;
                                            if (var$8.$eras0 === null) {
                                                var$9 = var$8.$locale;
                                                var$10 = var$9.$languageCode;
                                                var$11 = var$9.$countryCode;
                                                if (otciu_CLDRHelper_$$metadata$$1 === null)
                                                    otciu_CLDRHelper_$$metadata$$1 = otciu_CLDRHelper_getErasMap$$create();
                                                var$8.$eras0 = otciu_CLDRHelper_resolveDateFormatSymbols(otciu_CLDRHelper_$$metadata$$1, var$10, var$11);
                                            }
                                            var$5.$eras = var$8.$eras0.$clone0();
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 72:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 11;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 75:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 10;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 76:
                                        case 77:
                                            break f;
                                        case 83:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 3;
                                            var$5.$field = 14;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 87:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 1;
                                            var$5.$field = 4;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 88:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            if ($rep > 3) {
                                                $pattern = new jl_IllegalArgumentException;
                                                $rep = $this.$index7;
                                                $sb = new jl_StringBuilder;
                                                $sb.$buffer = $rt_createCharArray(16);
                                                jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1709));
                                                jl_AbstractStringBuilder_insert0($sb, $sb.$length0, $rep, 10);
                                                var$5 = new jl_String;
                                                var$7 = $sb.$buffer;
                                                var$12 = var$7.data;
                                                $c = $sb.$length0;
                                                var$6 = var$12.length;
                                                if ($c >= 0 && $c <= (var$6 - 0 | 0)) {
                                                    var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, $c);
                                                    $pattern.$suppressionEnabled = 1;
                                                    $pattern.$writableStackTrace = 1;
                                                    $pattern.$message = var$5;
                                                    $rt_throw($pattern);
                                                }
                                                $pattern = new jl_IndexOutOfBoundsException;
                                                $pattern.$suppressionEnabled = 1;
                                                $pattern.$writableStackTrace = 1;
                                                $rt_throw($pattern);
                                            }
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Iso8601Timezone;
                                            var$5.$size7 = $rep;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 89:
                                        case 121:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            if ($rep == 2) {
                                                $sb = $this.$elements;
                                                var$5 = new jt_DateFormatElement$Year;
                                                var$5.$field0 = 1;
                                                ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                                var$7 = $sb.$array.data;
                                                $c = $sb.$size0;
                                                $sb.$size0 = $c + 1 | 0;
                                                var$7[$c] = var$5;
                                                $sb.$modCount = $sb.$modCount + 1 | 0;
                                                break e;
                                            }
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 8;
                                            var$5.$field = 1;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 90:
                                            jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Rfc822Timezone;
                                            var$5.$locale3 = $this.$locale4;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 97:
                                            jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$AmPmText;
                                            var$8 = $this.$symbols0;
                                            if (var$8.$ampms0 === null) {
                                                var$9 = var$8.$locale;
                                                var$10 = var$9.$languageCode;
                                                var$11 = var$9.$countryCode;
                                                if (otciu_CLDRHelper_$$metadata$$2 === null)
                                                    otciu_CLDRHelper_$$metadata$$2 = otciu_CLDRHelper_getAmPmMap$$create();
                                                var$8.$ampms0 = otciu_CLDRHelper_resolveDateFormatSymbols(otciu_CLDRHelper_$$metadata$$2, var$10, var$11);
                                            }
                                            var$5.$ampms = var$8.$ampms0.$clone0();
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 100:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 5;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 104:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$NumericHour;
                                            var$13 = 2;
                                            var$5.$field = 10;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$13)
                                                var$13 = $rep;
                                            var$5.$maxLength = var$13;
                                            var$5.$limit0 = 12;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 107:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$NumericHour;
                                            var$13 = 2;
                                            var$5.$field = 11;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$13)
                                                var$13 = $rep;
                                            var$5.$maxLength = var$13;
                                            var$5.$limit0 = 24;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 109:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 12;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 115:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 13;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 117:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$NumericWeekday;
                                            var$6 = 1;
                                            var$5.$field = 7;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 119:
                                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$Numeric;
                                            var$6 = 2;
                                            var$5.$field = 3;
                                            var$5.$length4 = $rep;
                                            if ($rep > var$6)
                                                var$6 = $rep;
                                            var$5.$maxLength = var$6;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        case 122:
                                            jt_SimpleDatePatternParser_parseRepetitions($this);
                                            $sb = $this.$elements;
                                            var$5 = new jt_DateFormatElement$GeneralTimezone;
                                            var$5.$locale3 = $this.$locale4;
                                            ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                            var$7 = $sb.$array.data;
                                            $c = $sb.$size0;
                                            $sb.$size0 = $c + 1 | 0;
                                            var$7[$c] = var$5;
                                            $sb.$modCount = $sb.$modCount + 1 | 0;
                                            break e;
                                        default:
                                            break g;
                                    }
                                    $this.$index7 = $this.$index7 + 1 | 0;
                                    jt_SimpleDatePatternParser_parseQuoted($this);
                                    break e;
                                }
                                if (jt_SimpleDatePatternParser_isControl($this, $c)) {
                                    jt_SimpleDatePatternParser_parseRepetitions($this);
                                    break e;
                                }
                                $sb = new jl_StringBuilder;
                                $sb.$buffer = $rt_createCharArray(16);
                                while ($this.$index7 < $pattern.$nativeString.length) {
                                    $rep = $this.$index7;
                                    if ($rep < 0)
                                        break b;
                                    if ($rep >= $pattern.$nativeString.length)
                                        break b;
                                    if (jt_SimpleDatePatternParser_isControl($this, $pattern.$nativeString.charCodeAt($rep)))
                                        break;
                                    $c = $this.$index7;
                                    $this.$index7 = $c + 1 | 0;
                                    if ($c < 0)
                                        break a;
                                    if ($c >= $pattern.$nativeString.length)
                                        break a;
                                    $c = $pattern.$nativeString.charCodeAt($c);
                                    $rep = $sb.$length0;
                                    jl_AbstractStringBuilder_insertSpace($sb, $rep, $rep + 1 | 0);
                                    $sb.$buffer.data[$rep] = $c;
                                }
                                var$5 = $this.$elements;
                                var$8 = new jt_DateFormatElement$ConstantText;
                                var$9 = new jl_String;
                                var$7 = $sb.$buffer;
                                var$12 = var$7.data;
                                $c = $sb.$length0;
                                var$6 = var$12.length;
                                if ($c < 0)
                                    break d;
                                if ($c > (var$6 - 0 | 0))
                                    break d;
                                var$9.$nativeString = $rt_charArrayToString(var$7.data, 0, $c);
                                var$8.$textConstant = var$9;
                                ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
                                var$7 = var$5.$array.data;
                                $c = var$5.$size0;
                                var$5.$size0 = $c + 1 | 0;
                                var$7[$c] = var$8;
                                var$5.$modCount = var$5.$modCount + 1 | 0;
                                break e;
                            }
                            $rep = jt_SimpleDatePatternParser_parseRepetitions($this);
                            $c = $rt_compare($rep, 2);
                            if ($c <= 0) {
                                $sb = $this.$elements;
                                var$5 = new jt_DateFormatElement$NumericMonth;
                                var$13 = 2;
                                var$5.$field = 2;
                                var$5.$length4 = $rep;
                                if ($c > 0)
                                    var$13 = $rep;
                                var$5.$maxLength = var$13;
                                ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                var$7 = $sb.$array.data;
                                $c = $sb.$size0;
                                $sb.$size0 = $c + 1 | 0;
                                var$7[$c] = var$5;
                                $sb.$modCount = $sb.$modCount + 1 | 0;
                            } else {
                                $sb = $this.$elements;
                                var$5 = new jt_DateFormatElement$MonthText;
                                var$8 = $this.$symbols0;
                                $rep = $rep != 3 ? 0 : 1;
                                if (var$8.$months0 === null) {
                                    var$9 = var$8.$locale;
                                    var$10 = var$9.$languageCode;
                                    var$11 = var$9.$countryCode;
                                    if (otciu_CLDRHelper_$$metadata$$3 === null)
                                        otciu_CLDRHelper_$$metadata$$3 = otciu_CLDRHelper_getMonthMap$$create();
                                    var$8.$months0 = otciu_CLDRHelper_resolveDateFormatSymbols(otciu_CLDRHelper_$$metadata$$3, var$10, var$11);
                                }
                                var$5.$months = var$8.$months0.$clone0();
                                if (var$8.$shortMonths0 === null) {
                                    var$9 = var$8.$locale;
                                    var$10 = var$9.$languageCode;
                                    var$11 = var$9.$countryCode;
                                    if (otciu_CLDRHelper_$$metadata$$4 === null)
                                        otciu_CLDRHelper_$$metadata$$4 = otciu_CLDRHelper_getShortMonthMap$$create();
                                    var$8.$shortMonths0 = otciu_CLDRHelper_resolveDateFormatSymbols(otciu_CLDRHelper_$$metadata$$4, var$10, var$11);
                                }
                                var$5.$shortMonths = var$8.$shortMonths0.$clone0();
                                var$5.$abbreviated = $rep;
                                ju_ArrayList_ensureCapacity($sb, $sb.$size0 + 1 | 0);
                                var$7 = $sb.$array.data;
                                $c = $sb.$size0;
                                $sb.$size0 = $c + 1 | 0;
                                var$7[$c] = var$5;
                                $sb.$modCount = $sb.$modCount + 1 | 0;
                            }
                        }
                    }
                    return;
                }
                $pattern = new jl_IndexOutOfBoundsException;
                $pattern.$suppressionEnabled = 1;
                $pattern.$writableStackTrace = 1;
                $rt_throw($pattern);
            }
            $pattern = new jl_StringIndexOutOfBoundsException;
            $pattern.$suppressionEnabled = 1;
            $pattern.$writableStackTrace = 1;
            $rt_throw($pattern);
        }
        $pattern = new jl_StringIndexOutOfBoundsException;
        $pattern.$suppressionEnabled = 1;
        $pattern.$writableStackTrace = 1;
        $rt_throw($pattern);
    }
    $pattern = new jl_StringIndexOutOfBoundsException;
    $pattern.$suppressionEnabled = 1;
    $pattern.$writableStackTrace = 1;
    $rt_throw($pattern);
},
jt_SimpleDatePatternParser_isControl = ($this, $c) => {
    a: {
        b: {
            if ($c != 39 && !($c >= 97 && $c <= 122)) {
                if ($c < 65)
                    break b;
                if ($c > 90)
                    break b;
            }
            $c = 1;
            break a;
        }
        $c = 0;
    }
    return $c;
},
jt_SimpleDatePatternParser_parseQuoted = $this => {
    let $sb, var$2, $c, var$4, var$5, var$6, var$7, var$8, var$9;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    a: {
        b: {
            while (true) {
                if ($this.$index7 >= $this.$pattern1.$nativeString.length)
                    break a;
                var$2 = $this.$pattern1;
                $c = $this.$index7;
                $this.$index7 = $c + 1 | 0;
                if ($c < 0)
                    break b;
                if ($c >= var$2.$nativeString.length)
                    break b;
                $c = var$2.$nativeString.charCodeAt($c);
                if ($c != 39) {
                    var$4 = $sb.$length0;
                    jl_AbstractStringBuilder_insertSpace($sb, var$4, var$4 + 1 | 0);
                    $sb.$buffer.data[var$4] = $c;
                } else {
                    if ($this.$index7 >= $this.$pattern1.$nativeString.length)
                        break a;
                    var$2 = $this.$pattern1;
                    var$4 = $this.$index7;
                    if (var$4 < 0)
                        break;
                    if (var$4 >= var$2.$nativeString.length)
                        break;
                    if (var$2.$nativeString.charCodeAt(var$4) != 39)
                        break a;
                    $c = $sb.$length0;
                    jl_AbstractStringBuilder_insertSpace($sb, $c, $c + 1 | 0);
                    $sb.$buffer.data[$c] = 39;
                    $this.$index7 = $this.$index7 + 1 | 0;
                }
            }
            $sb = new jl_StringIndexOutOfBoundsException;
            $sb.$suppressionEnabled = 1;
            $sb.$writableStackTrace = 1;
            $rt_throw($sb);
        }
        $sb = new jl_StringIndexOutOfBoundsException;
        $sb.$suppressionEnabled = 1;
        $sb.$writableStackTrace = 1;
        $rt_throw($sb);
    }
    var$2 = $this.$elements;
    var$5 = new jt_DateFormatElement$ConstantText;
    var$6 = new jl_String;
    var$7 = $sb.$buffer;
    var$8 = var$7.data;
    $c = $sb.$length0;
    var$9 = var$8.length;
    if ($c >= 0 && $c <= (var$9 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $c);
        var$5.$textConstant = var$6;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$7 = var$2.$array.data;
        $c = var$2.$size0;
        var$2.$size0 = $c + 1 | 0;
        var$7[$c] = var$5;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        return;
    }
    $sb = new jl_IndexOutOfBoundsException;
    $sb.$suppressionEnabled = 1;
    $sb.$writableStackTrace = 1;
    $rt_throw($sb);
},
jt_SimpleDatePatternParser_parseRepetitions = $this => {
    let $count, var$2, var$3, $orig, var$5;
    $count = 1;
    var$2 = $this.$pattern1;
    var$3 = $this.$index7;
    $this.$index7 = var$3 + 1 | 0;
    if (var$3 >= 0 && var$3 < var$2.$nativeString.length) {
        $orig = var$2.$nativeString.charCodeAt(var$3);
        a: {
            while ($this.$index7 < $this.$pattern1.$nativeString.length) {
                var$2 = $this.$pattern1;
                var$5 = $this.$index7;
                if (var$5 < 0)
                    break a;
                if (var$5 >= var$2.$nativeString.length)
                    break a;
                if (var$2.$nativeString.charCodeAt(var$5) != $orig)
                    break;
                $this.$index7 = $this.$index7 + 1 | 0;
                $count = $count + 1 | 0;
            }
            return $count;
        }
        var$2 = new jl_StringIndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$2 = new jl_StringIndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jt_DateFormatElement = $rt_classWithoutFields(),
jn_CharBufferImpl = $rt_classWithoutFields(jn_CharBuffer);
function jn_CharBufferOverArray() {
    let a = this; jn_CharBufferImpl.call(a);
    a.$readOnly = 0;
    a.$start1 = 0;
    a.$array0 = null;
}
function jnc_CoderResult() {
    let a = this; jl_Object.call(a);
    a.$kind = 0;
    a.$length2 = 0;
}
let jnc_CoderResult_UNDERFLOW = null,
jnc_CoderResult_OVERFLOW = null,
jnc_CoderResult_isOverflow = $this => {
    return $this.$kind != 1 ? 0 : 1;
},
jnc_CoderResult__clinit_ = () => {
    let var$1;
    var$1 = new jnc_CoderResult;
    var$1.$kind = 0;
    var$1.$length2 = 0;
    jnc_CoderResult_UNDERFLOW = var$1;
    var$1 = new jnc_CoderResult;
    var$1.$kind = 1;
    var$1.$length2 = 0;
    jnc_CoderResult_OVERFLOW = var$1;
};
function cjj_Inflate$Return() {
    let a = this; jl_Exception.call(a);
    a.$r = 0;
    a.$this$07 = null;
}
function cjj_GZIPHeader() {
    let a = this; jl_Object.call(a);
    a.$text1 = 0;
    a.$fhcrc = 0;
    a.$time2 = Long_ZERO;
    a.$xflags = 0;
    a.$os0 = 0;
    a.$extra = null;
    a.$name14 = null;
    a.$comment = null;
    a.$hcrc = 0;
    a.$crc3 = Long_ZERO;
    a.$done0 = 0;
    a.$mtime = Long_ZERO;
}
let cjj_GZIPHeader__init_ = $this => {
    $this.$text1 = 0;
    $this.$fhcrc = 0;
    $this.$os0 = 255;
    $this.$done0 = 0;
    $this.$mtime = Long_ZERO;
},
cjj_GZIPHeader__init_0 = () => {
    let var_0 = new cjj_GZIPHeader();
    cjj_GZIPHeader__init_(var_0);
    return var_0;
},
cjj_GZIPHeader_put = ($this, $d) => {
    let $flag, var$3, $xfl, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    $flag = 0;
    if ($this.$text1)
        $flag = 1;
    if ($this.$fhcrc)
        $flag = $flag | 2;
    var$3 = $this.$extra;
    if (var$3 !== null)
        $flag = $flag | 4;
    if ($this.$name14 !== null)
        $flag = $flag | 8;
    if ($this.$comment !== null)
        $flag = $flag | 16;
    $xfl = 0;
    var$5 = $d.$level0;
    if (var$5 == 1)
        $xfl = 4;
    else if (var$5 == 9)
        $xfl = 2;
    var$6 = $d.$pending_buf;
    var$7 = var$6.data;
    var$8 = $d.$pending;
    var$9 = var$8 + 1 | 0;
    $d.$pending = var$9;
    var$7[var$8] = 31;
    var$5 = var$9 + 1 | 0;
    $d.$pending = var$5;
    var$7[var$9] = (-117);
    var$10 = var$5 + 1 | 0;
    $d.$pending = var$10;
    var$7[var$5] = 8;
    var$5 = $flag << 24 >> 24;
    var$8 = var$10 + 1 | 0;
    $d.$pending = var$8;
    var$7[var$10] = var$5;
    var$11 = $this.$mtime;
    $flag = Long_lo(var$11) << 24 >> 24;
    var$5 = var$8 + 1 | 0;
    $d.$pending = var$5;
    var$7[var$8] = $flag;
    $flag = Long_lo(Long_shr(var$11, 8)) << 24 >> 24;
    var$8 = var$5 + 1 | 0;
    $d.$pending = var$8;
    var$7[var$5] = $flag;
    $flag = Long_lo(Long_shr(var$11, 16)) << 24 >> 24;
    var$5 = var$8 + 1 | 0;
    $d.$pending = var$5;
    var$7[var$8] = $flag;
    $flag = Long_lo(Long_shr(var$11, 24)) << 24 >> 24;
    var$10 = var$5 + 1 | 0;
    $d.$pending = var$10;
    var$7[var$5] = $flag;
    $flag = $xfl << 24 >> 24;
    var$5 = var$10 + 1 | 0;
    $d.$pending = var$5;
    var$7[var$10] = $flag;
    $flag = $this.$os0 << 24 >> 24;
    var$10 = var$5 + 1 | 0;
    $d.$pending = var$10;
    var$7[var$5] = $flag;
    if (var$3 !== null) {
        $flag = var$3.data.length;
        var$5 = $flag << 24 >> 24;
        var$8 = var$10 + 1 | 0;
        $d.$pending = var$8;
        var$7[var$10] = var$5;
        var$10 = $flag >> 8 << 24 >> 24;
        var$5 = var$8 + 1 | 0;
        $d.$pending = var$5;
        var$7[var$8] = var$10;
        jl_System_fastArraycopy(var$3, 0, var$6, var$5, $flag);
        $d.$pending = $d.$pending + $flag | 0;
    }
    var$6 = $this.$name14;
    if (var$6 !== null) {
        var$10 = var$6.data.length;
        jl_System_fastArraycopy(var$6, 0, $d.$pending_buf, $d.$pending, var$10);
        var$5 = $d.$pending + var$10 | 0;
        $d.$pending = var$5;
        var$6 = $d.$pending_buf.data;
        $d.$pending = var$5 + 1 | 0;
        var$6[var$5] = 0;
    }
    var$6 = $this.$comment;
    if (var$6 !== null) {
        var$10 = var$6.data.length;
        jl_System_fastArraycopy(var$6, 0, $d.$pending_buf, $d.$pending, var$10);
        var$5 = $d.$pending + var$10 | 0;
        $d.$pending = var$5;
        var$6 = $d.$pending_buf.data;
        $d.$pending = var$5 + 1 | 0;
        var$6[var$5] = 0;
    }
};
function nles_VirtualFilesystem$AsyncHandlers$11() {
    let a = this; jl_Object.call(a);
    a.$val$r0 = null;
    a.$val$cb6 = null;
    a.$val$res0 = null;
    a.$val$prefix0 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$11_handleEvent = $this => {
    let $c, $k, var$3, var$4, var$5;
    $c = $this.$val$r0.result;
    if ($c !== null && $c.key !== null && $c.value !== null) {
        $k = $rt_str(nles_VirtualFilesystem$AsyncHandlers_readKey$js_body$_9($c.key));
        if ($k !== null) {
            var$3 = $this.$val$prefix0;
            if ($k === var$3 ? 1 : jl_String_startsWith($k, var$3, 0)) {
                $c.delete();
                var$4 = $this.$val$res0.data;
                var$4[0] = var$4[0] + 1 | 0;
            }
        }
        $c.continue();
        return;
    }
    var$3 = $this.$val$cb6;
    var$5 = $this.$val$res0.data[0];
    if (var$5 >= (-128) && var$5 <= 127) {
        jl_Integer_ensureIntegerCache();
        $c = jl_Integer_integerCache.data[var$5 + 128 | 0];
    } else {
        $c = new jl_Integer;
        $c.$value = var$5;
    }
    var$3.$realAsyncCallback.$complete($c);
},
nles_VirtualFilesystem$AsyncHandlers$11_handleEvent$exported$0 = var$0 => {
    nles_VirtualFilesystem$AsyncHandlers$11_handleEvent(var$0);
};
function nles_VirtualFilesystem$AsyncHandlers$12() {
    let a = this; jl_Object.call(a);
    a.$val$cb2 = null;
    a.$val$res2 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$12_handleEvent$exported$0 = var$0 => {
    let var$1, var$2, var$3, var$4;
    var$1 = var$0.$val$cb2;
    var$2 = var$0.$val$res2.data;
    var$3 = var$2[0] <= 0 ? (-1) : var$2[0];
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = var$3;
    }
    var$1.$realAsyncCallback.$complete(var$4);
};
function nles_VirtualFilesystem$AsyncHandlers$9() {
    let a = this; jl_Object.call(a);
    a.$val$r2 = null;
    a.$val$cb = null;
    a.$val$res = null;
    a.$val$prefix = null;
    a.$val$itr = null;
    a.$val$vfs = null;
}
let nles_VirtualFilesystem$AsyncHandlers$9_handleEvent = $this => {
    let $c, $k, var$3, var$4, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$k = $thread.pop();$c = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $c = $this.$val$r2.result;
        if ($c !== null && $c.key !== null && $c.value !== null) {
            $k = $rt_str(nles_VirtualFilesystem$AsyncHandlers_readKey$js_body$_9($c.key));
            if ($k !== null) {
                var$3 = $this.$val$prefix;
                if ($k === var$3 ? 1 : jl_String_startsWith($k, var$3, 0)) {
                    var$4 = $this.$val$res.data;
                    var$5 = var$4[0];
                    var$4[0] = var$5 + 1 | 0;
                    try {
                        var$3 = $this.$val$itr;
                        $k = nles_VIteratorFile_create(var$5, $this.$val$vfs, $c);
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof nles_VFSIterator$BreakLoop) {
                        } else {
                            throw $$e;
                        }
                    }
                    var$3 = $this.$val$cb;
                    var$6 = $this.$val$res.data[0];
                    if (var$6 >= (-128) && var$6 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $k = jl_Integer_integerCache.data[var$6 + 128 | 0];
                    } else {
                        $k = new jl_Integer;
                        $k.$value = var$6;
                    }
                    var$3.$realAsyncCallback.$complete($k);
                    return;
                }
            }
            $c.continue();
            return;
        }
        var$3 = $this.$val$cb;
        var$6 = $this.$val$res.data[0];
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            $k = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            $k = new jl_Integer;
            $k.$value = var$6;
        }
        var$3.$realAsyncCallback.$complete($k);
        return;
    case 1:
        a: {
            try {
                var$3.$next1($k);
                if ($rt_suspending()) {
                    break main;
                }
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof nles_VFSIterator$BreakLoop) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            $c.continue();
            return;
        }
        var$3 = $this.$val$cb;
        var$6 = $this.$val$res.data[0];
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            $k = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            $k = new jl_Integer;
            $k.$value = var$6;
        }
        var$3.$realAsyncCallback.$complete($k);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $c, $k, var$3, var$4, var$5, var$6, $ptr);
},
nles_VirtualFilesystem$AsyncHandlers$9_handleEvent$exported$0 = var$0 => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nles_VirtualFilesystem$AsyncHandlers$9_handleEvent(var$0);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, $ptr);
};
function nles_VirtualFilesystem$AsyncHandlers$10() {
    let a = this; jl_Object.call(a);
    a.$val$cb5 = null;
    a.$val$res1 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$10_handleEvent$exported$0 = var$0 => {
    let var$1, var$2, var$3, var$4;
    var$1 = var$0.$val$cb5;
    var$2 = var$0.$val$res1.data;
    var$3 = var$2[0] <= 0 ? (-1) : var$2[0];
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = var$3;
    }
    var$1.$realAsyncCallback.$complete(var$4);
},
jnc_Charset$Charsets = $rt_classWithoutFields(),
jnc_Charset$Charsets_value = null,
jnc_Charset$Charsets_$callClinit = () => {
    jnc_Charset$Charsets_$callClinit = $rt_eraseClinit(jnc_Charset$Charsets);
    jnc_Charset$Charsets__clinit_();
},
jnc_Charset$Charsets__init_ = $this => {
    jnc_Charset$Charsets_$callClinit();
},
jnc_Charset$Charsets__init_0 = () => {
    let var_0 = new jnc_Charset$Charsets();
    jnc_Charset$Charsets__init_(var_0);
    return var_0;
},
jnc_Charset$Charsets__clinit_ = () => {
    let $charset, var$2, var$3, $charsets, var$5;
    $charset = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    $charset.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    $charsets = var$3.data;
    $charset.$elementData = var$3;
    $charset.$loadFactor = 0.75;
    $charset.$threshold = $charsets.length * 0.75 | 0;
    jnc_Charset$Charsets_value = $charset;
    $charsets = $rt_createArray(jnc_Charset, 6).data;
    jnc_StandardCharsets_$callClinit();
    $charsets[0] = jnc_StandardCharsets_UTF_8;
    $charsets[1] = jnc_StandardCharsets_US_ASCII;
    $charsets[2] = jnc_StandardCharsets_ISO_8859_1;
    $charsets[3] = jnc_StandardCharsets_UTF_16;
    $charsets[4] = jnc_StandardCharsets_UTF_16BE;
    $charsets[5] = jnc_StandardCharsets_UTF_16LE;
    var$2 = $charsets.length;
    var$5 = 0;
    while (var$5 < var$2) {
        $charset = $charsets[var$5];
        ju_HashMap_putImpl(jnc_Charset$Charsets_value, $charset.$canonicalName, $charset);
        var$5 = var$5 + 1 | 0;
    }
};
function jnc_UnsupportedCharsetException() {
    jl_IllegalArgumentException.call(this);
    this.$charsetName = null;
}
let ji_UTFDataFormatException = $rt_classWithoutFields(ji_IOException),
ji_UTFDataFormatException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ji_UTFDataFormatException__init_0 = () => {
    let var_0 = new ji_UTFDataFormatException();
    ji_UTFDataFormatException__init_(var_0);
    return var_0;
};
function jur_AbstractSet() {
    let a = this; jl_Object.call(a);
    a.$next4 = null;
    a.$isSecondPassVisited = 0;
    a.$index1 = null;
    a.$type = 0;
}
let jur_AbstractSet_counter = 0,
jur_AbstractSet_find = ($this, $stringIndex, $testString, $matchResult) => {
    let $length;
    $length = $matchResult.$rightBound;
    while (true) {
        if ($stringIndex > $length)
            return (-1);
        if ($this.$matches($stringIndex, $testString, $matchResult) >= 0)
            break;
        $stringIndex = $stringIndex + 1 | 0;
    }
    return $stringIndex;
},
jur_AbstractSet_findBack = ($this, $stringIndex, $startSearch, $testString, $matchResult) => {
    while (true) {
        if ($startSearch < $stringIndex)
            return (-1);
        if ($this.$matches($startSearch, $testString, $matchResult) >= 0)
            break;
        $startSearch = $startSearch + (-1) | 0;
    }
    return $startSearch;
},
jur_AbstractSet_setType = ($this, $type) => {
    $this.$type = $type;
},
jur_AbstractSet_getType = $this => {
    return $this.$type;
},
jur_AbstractSet_getQualifiedName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$index1;
    var$2 = $this.$getName();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 60;
    var$5 = var$3.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$5, var$1);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 58;
    var$5 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$5, var$2);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$6 = var$3.$buffer;
    var$7 = var$6.data;
    var$7[var$4] = 62;
    var$1 = new jl_String;
    var$4 = var$3.$length0;
    var$8 = var$7.length;
    if (var$4 >= 0 && var$4 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$6.data, 0, var$4);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_AbstractSet_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$index1;
    var$2 = $this.$getName();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 60;
    var$5 = var$3.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$5, var$1);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 58;
    var$5 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$5, var$2);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$6 = var$3.$buffer;
    var$7 = var$6.data;
    var$7[var$4] = 62;
    var$1 = new jl_String;
    var$4 = var$3.$length0;
    var$8 = var$7.length;
    if (var$4 >= 0 && var$4 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$6.data, 0, var$4);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$1);
    $rt_throw(var$1);
},
jur_AbstractSet_getNext = $this => {
    return $this.$next4;
},
jur_AbstractSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_AbstractSet_first = ($this, $set) => {
    return 1;
},
jur_AbstractSet_processBackRefReplacement = $this => {
    return null;
},
jur_AbstractSet_processSecondPass = $this => {
    let $set;
    $this.$isSecondPassVisited = 1;
    $set = $this.$next4;
    if ($set !== null) {
        if (!$set.$isSecondPassVisited) {
            $set = $set.$processBackRefReplacement();
            if ($set !== null) {
                $this.$next4.$isSecondPassVisited = 1;
                $this.$next4 = $set;
            }
            $this.$next4.$processSecondPass();
        } else if ($set instanceof jur_SingleSet && $set.$fSet.$isBackReferenced)
            $this.$next4 = $set.$next4;
    }
},
jur_AbstractSet__clinit_ = () => {
    jur_AbstractSet_counter = 1;
},
jur_MatchResult = $rt_classWithoutFields(0);
function jur_Matcher() {
    let a = this; jl_Object.call(a);
    a.$pat = null;
    a.$start3 = null;
    a.$string = null;
    a.$matchResult = null;
    a.$leftBound0 = 0;
    a.$rightBound0 = 0;
    a.$appendPos = 0;
    a.$replacement = null;
    a.$processedRepl = null;
    a.$replacementParts = null;
}
let jur_Matcher_processReplacement = ($this, $replacement) => {
    let $res, $gr, $group, $sb, $i, var$7, $repl, $index, $replacementPos, var$11, var$12, $nextBackSlashed, $$je;
    $res = $this.$replacement;
    if ($res !== null) {
        if ($res === $replacement)
            $gr = 1;
        else if (!($replacement instanceof jl_String))
            $gr = 0;
        else {
            $group = $replacement;
            $gr = $res.$nativeString !== $group.$nativeString ? 0 : 1;
        }
        if ($gr) {
            if ($this.$replacementParts === null)
                return $this.$processedRepl;
            $sb = new jl_StringBuilder;
            $sb.$buffer = $rt_createCharArray(16);
            $i = 0;
            while (true) {
                $replacement = $this.$replacementParts;
                $gr = $rt_compare($i, $replacement.$size0);
                if ($gr >= 0) {
                    $replacement = new jl_String;
                    var$7 = $sb.$buffer;
                    $repl = var$7.data;
                    $index = $sb.$length0;
                    $replacementPos = $repl.length;
                    if ($index >= 0 && $index <= ($replacementPos - 0 | 0)) {
                        $replacement.$nativeString = $rt_charArrayToString(var$7.data, 0, $index);
                        return $replacement;
                    }
                    $replacement = new jl_IndexOutOfBoundsException;
                    $replacement.$suppressionEnabled = 1;
                    $replacement.$writableStackTrace = 1;
                    $rt_throw($replacement);
                }
                if ($i < 0)
                    break;
                if ($gr >= 0)
                    break;
                $replacement = $replacement.$array.data[$i];
                jl_AbstractStringBuilder_insert($sb, $sb.$length0, $replacement === null ? $rt_s(1) : $replacement.$toString());
                $i = $i + 1 | 0;
            }
            $replacement = new jl_IndexOutOfBoundsException;
            $replacement.$suppressionEnabled = 1;
            $replacement.$writableStackTrace = 1;
            $rt_throw($replacement);
        }
    }
    $this.$replacement = $replacement;
    $repl = $rt_createCharArray($replacement.$nativeString.length);
    var$11 = $repl.data;
    $gr = 0;
    var$12 = var$11.length;
    while (true) {
        if ($gr >= var$12) {
            $res = new jl_StringBuilder;
            $res.$buffer = $rt_createCharArray(16);
            $this.$replacementParts = null;
            $index = 0;
            $replacementPos = 0;
            $nextBackSlashed = 0;
            a: {
                b: while (true) {
                    if ($index >= var$12) {
                        c: {
                            $replacement = $this.$replacementParts;
                            if ($replacement !== null) {
                                $index = $res.$length0;
                                $gr = $rt_compare($replacementPos, $index);
                                if ($gr) {
                                    if ($gr <= 0 && $replacementPos >= 0 && $index <= $index) {
                                        $group = new jl_String;
                                        var$7 = $res.$buffer;
                                        $repl = var$7.data;
                                        $gr = $index - $replacementPos | 0;
                                        $index = $repl.length;
                                        if ($replacementPos >= 0 && $gr >= 0 && $gr <= ($index - $replacementPos | 0)) {
                                            $group.$nativeString = $rt_charArrayToString(var$7.data, $replacementPos, $gr);
                                            ju_ArrayList_ensureCapacity($replacement, $replacement.$size0 + 1 | 0);
                                            var$7 = $replacement.$array.data;
                                            $index = $replacement.$size0;
                                            $replacement.$size0 = $index + 1 | 0;
                                            var$7[$index] = $group;
                                            $replacement.$modCount = $replacement.$modCount + 1 | 0;
                                            break c;
                                        }
                                        $replacement = new jl_IndexOutOfBoundsException;
                                        $replacement.$suppressionEnabled = 1;
                                        $replacement.$writableStackTrace = 1;
                                        $rt_throw($replacement);
                                    }
                                    $replacement = new jl_IndexOutOfBoundsException;
                                    $replacement.$suppressionEnabled = 1;
                                    $replacement.$writableStackTrace = 1;
                                    $rt_throw($replacement);
                                }
                            }
                        }
                        $replacement = new jl_String;
                        var$7 = $res.$buffer;
                        $repl = var$7.data;
                        $index = $res.$length0;
                        $replacementPos = $repl.length;
                        if ($index >= 0 && $index <= ($replacementPos - 0 | 0)) {
                            $replacement.$nativeString = $rt_charArrayToString(var$7.data, 0, $index);
                            return $replacement;
                        }
                        $replacement = new jl_IndexOutOfBoundsException;
                        $replacement.$suppressionEnabled = 1;
                        $replacement.$writableStackTrace = 1;
                        $rt_throw($replacement);
                    }
                    if (var$11[$index] == 92 && !$nextBackSlashed) {
                        $nextBackSlashed = 1;
                        $index = $index + 1 | 0;
                    }
                    d: {
                        if ($nextBackSlashed) {
                            if ($index >= var$12)
                                break b;
                            $gr = var$11[$index];
                            $nextBackSlashed = $res.$length0;
                            jl_AbstractStringBuilder_insertSpace($res, $nextBackSlashed, $nextBackSlashed + 1 | 0);
                            $res.$buffer.data[$nextBackSlashed] = $gr;
                            $nextBackSlashed = 0;
                        } else if (var$11[$index] != 36) {
                            $gr = var$11[$index];
                            $i = $res.$length0;
                            jl_AbstractStringBuilder_insertSpace($res, $i, $i + 1 | 0);
                            $res.$buffer.data[$i] = $gr;
                        } else {
                            if ($this.$replacementParts === null) {
                                $replacement = new ju_ArrayList;
                                $replacement.$array = $rt_createArray(jl_Object, 10);
                                $this.$replacementParts = $replacement;
                            }
                            e: {
                                try {
                                    $replacement = new jl_String;
                                    $index = $index + 1 | 0;
                                    jl_String__init_4($replacement, $repl, $index, 1);
                                    $gr = jl_Integer_parseInt($replacement);
                                    if ($replacementPos == jl_StringBuilder_length($res))
                                        break e;
                                    ju_ArrayList_add($this.$replacementParts, jl_StringBuilder_subSequence($res, $replacementPos, jl_StringBuilder_length($res)));
                                    $replacementPos = jl_StringBuilder_length($res);
                                    break e;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        break a;
                                    } else {
                                        throw $$e;
                                    }
                                }
                            }
                            try {
                                ju_ArrayList_add($this.$replacementParts, jur_Matcher$1__init_0($this, $gr));
                                $group = jur_Matcher_group($this, $gr);
                                $replacementPos = $replacementPos + jl_String_length($group) | 0;
                                jl_StringBuilder_append2($res, $group);
                                break d;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    break a;
                                } else {
                                    throw $$e;
                                }
                            }
                        }
                    }
                    $index = $index + 1 | 0;
                }
                $replacement = new jl_IndexOutOfBoundsException;
                $replacement.$suppressionEnabled = 1;
                $replacement.$writableStackTrace = 1;
                $rt_throw($replacement);
            }
            $replacement = new jl_IllegalArgumentException;
            $replacement.$suppressionEnabled = 1;
            $replacement.$writableStackTrace = 1;
            $replacement.$message = $rt_s(3);
            $rt_throw($replacement);
        }
        if ($gr < 0)
            break;
        if ($gr >= $replacement.$nativeString.length)
            break;
        var$11[$gr] = $replacement.$nativeString.charCodeAt($gr);
        $gr = $gr + 1 | 0;
    }
    $replacement = new jl_StringIndexOutOfBoundsException;
    $replacement.$suppressionEnabled = 1;
    $replacement.$writableStackTrace = 1;
    $rt_throw($replacement);
},
jur_Matcher_group = ($this, $group) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$matchResult;
    var$3 = var$2.$valid;
    if (!var$3) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if ($group >= 0) {
        var$4 = $rt_compare($group, var$2.$groupCount);
        if (var$4 < 0) {
            a: {
                var$5 = var$2.$groupBounds.data;
                var$6 = $group * 2 | 0;
                if (var$5[var$6] < 0)
                    var$2 = null;
                else {
                    var$2 = var$2.$string0;
                    if (!var$3) {
                        var$2 = new jl_IllegalStateException;
                        var$2.$suppressionEnabled = 1;
                        var$2.$writableStackTrace = 1;
                        $rt_throw(var$2);
                    }
                    if ($group >= 0 && var$4 < 0) {
                        var$7 = var$5[var$6];
                        if (!var$3) {
                            var$2 = new jl_IllegalStateException;
                            var$2.$suppressionEnabled = 1;
                            var$2.$writableStackTrace = 1;
                            $rt_throw(var$2);
                        }
                        if ($group < 0)
                            break a;
                        if (var$4 >= 0)
                            break a;
                        var$2 = jl_String_substring(var$2, var$7, var$5[var$6 + 1 | 0]);
                    } else {
                        var$2 = new jl_IndexOutOfBoundsException;
                        var$8 = new jl_StringBuilder;
                        var$8.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $group, 10);
                        var$9 = new jl_String;
                        var$5 = var$8.$buffer;
                        var$10 = var$5.data;
                        var$7 = var$8.$length0;
                        var$6 = var$10.length;
                        if (var$7 >= 0 && var$7 <= (var$6 - 0 | 0)) {
                            var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                            var$2.$suppressionEnabled = 1;
                            var$2.$writableStackTrace = 1;
                            var$2.$message = var$9;
                            $rt_throw(var$2);
                        }
                        var$2 = new jl_IndexOutOfBoundsException;
                        var$2.$suppressionEnabled = 1;
                        var$2.$writableStackTrace = 1;
                        $rt_throw(var$2);
                    }
                }
                return var$2;
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$8 = new jl_StringBuilder;
            var$8.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $group, 10);
            var$9 = new jl_String;
            var$5 = var$8.$buffer;
            var$10 = var$5.data;
            var$7 = var$8.$length0;
            var$6 = var$10.length;
            if (var$7 >= 0 && var$7 <= (var$6 - 0 | 0)) {
                var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                var$2.$message = var$9;
                $rt_throw(var$2);
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $group, 10);
    var$9 = new jl_String;
    var$5 = var$8.$buffer;
    var$10 = var$5.data;
    var$7 = var$8.$length0;
    var$6 = var$10.length;
    if (var$7 >= 0 && var$7 <= (var$6 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$9;
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jur_Matcher_find0 = ($this, $start) => {
    let $stringLength, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $stringLength = $this.$string.$nativeString.length;
    if ($start >= 0 && $start <= $stringLength) {
        var$3 = $this.$matchResult;
        var$3.$valid = 0;
        var$3.$mode0 = 2;
        var$4 = var$3.$groupBounds.data;
        var$5 = 0;
        var$6 = var$4.length;
        if (var$5 > var$6) {
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            $rt_throw(var$3);
        }
        while (var$5 < var$6) {
            var$7 = var$5 + 1 | 0;
            var$4[var$5] = (-1);
            var$5 = var$7;
        }
        var$4 = var$3.$consumers.data;
        var$5 = 0;
        var$6 = var$4.length;
        if (var$5 > var$6) {
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            $rt_throw(var$3);
        }
        while (var$5 < var$6) {
            var$7 = var$5 + 1 | 0;
            var$4[var$5] = (-1);
            var$5 = var$7;
        }
        var$3.$startIndex = var$3.$leftBound;
        var$3.$mode0 = 1;
        var$3.$startIndex = $start;
        $stringLength = var$3.$previousMatch;
        if ($stringLength < 0)
            $stringLength = $start;
        var$3.$previousMatch = $stringLength;
        $start = $this.$start3.$find0($start, $this.$string, var$3);
        if ($start == (-1))
            $this.$matchResult.$hitEnd = 1;
        if ($start >= 0) {
            var$3 = $this.$matchResult;
            $start = var$3.$valid;
            if ($start) {
                var$4 = var$3.$groupBounds.data;
                if (var$4[0] == (-1)) {
                    var$5 = var$3.$startIndex;
                    var$4[0] = var$5;
                    var$4[1] = var$5;
                }
                if (!$start) {
                    var$3 = new jl_IllegalStateException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                }
                if (0 < var$3.$groupCount) {
                    var$3.$previousMatch = var$4[1];
                    return 1;
                }
                var$3 = new jl_IndexOutOfBoundsException;
                var$8 = new jl_StringBuilder;
                var$8.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, 0, 10);
                var$9 = new jl_String;
                var$4 = var$8.$buffer;
                var$10 = var$4.data;
                $stringLength = var$8.$length0;
                var$5 = var$10.length;
                if ($stringLength >= 0 && $stringLength <= (var$5 - 0 | 0)) {
                    var$9.$nativeString = $rt_charArrayToString(var$4.data, 0, $stringLength);
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    var$3.$message = var$9;
                    $rt_throw(var$3);
                }
                var$3 = new jl_IndexOutOfBoundsException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
        }
        $this.$matchResult.$startIndex = (-1);
        return 0;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $start, 10);
    var$9 = new jl_String;
    var$4 = var$8.$buffer;
    var$10 = var$4.data;
    $stringLength = var$8.$length0;
    var$5 = var$10.length;
    if ($stringLength >= 0 && $stringLength <= (var$5 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$4.data, 0, $stringLength);
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = var$9;
        $rt_throw(var$3);
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
jur_Matcher_find = $this => {
    let $length, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    $length = $this.$string.$nativeString.length;
    var$2 = $this.$matchResult;
    if (!var$2.$transparentBounds)
        $length = $this.$rightBound0;
    if (var$2.$startIndex >= 0 && var$2.$mode0 == 1) {
        var$3 = var$2.$valid;
        if (!var$3) {
            var$2 = new jl_IllegalStateException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        var$4 = $rt_compare(0, var$2.$groupCount);
        if (var$4 >= 0) {
            var$2 = new jl_IndexOutOfBoundsException;
            var$5 = new jl_StringBuilder;
            var$5.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, 0, 10);
            var$6 = new jl_String;
            var$7 = var$5.$buffer;
            var$8 = var$7.data;
            $length = var$5.$length0;
            var$9 = var$8.length;
            if ($length >= 0 && $length <= (var$9 - 0 | 0)) {
                var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $length);
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                var$2.$message = var$6;
                $rt_throw(var$2);
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        var$7 = var$2.$groupBounds.data;
        var$10 = var$7[1];
        var$2.$startIndex = var$10;
        if (!var$3) {
            var$2 = new jl_IllegalStateException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        if (var$4 >= 0) {
            var$2 = new jl_IndexOutOfBoundsException;
            var$5 = new jl_StringBuilder;
            var$5.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, 0, 10);
            var$6 = new jl_String;
            var$7 = var$5.$buffer;
            var$8 = var$7.data;
            $length = var$5.$length0;
            var$9 = var$8.length;
            if ($length >= 0 && $length <= (var$9 - 0 | 0)) {
                var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $length);
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                var$2.$message = var$6;
                $rt_throw(var$2);
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        var$9 = var$7[1];
        if (!var$3) {
            var$2 = new jl_IllegalStateException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        if (var$4 < 0) {
            if (var$9 == var$7[0])
                var$2.$startIndex = var$10 + 1 | 0;
            var$11 = var$2.$startIndex;
            return var$11 <= $length && jur_Matcher_find0($this, var$11) ? 1 : 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, 0, 10);
        var$6 = new jl_String;
        var$7 = var$5.$buffer;
        var$8 = var$7.data;
        $length = var$5.$length0;
        var$9 = var$8.length;
        if ($length >= 0 && $length <= (var$9 - 0 | 0)) {
            var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $length);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$6;
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    return jur_Matcher_find0($this, $this.$leftBound0);
},
jur_Matcher__init_0 = ($this, $pat, $cs) => {
    let var$3, var$4;
    $this.$leftBound0 = (-1);
    $this.$rightBound0 = (-1);
    $this.$pat = $pat;
    $this.$start3 = $pat.$start5;
    $this.$string = $cs;
    $this.$leftBound0 = 0;
    var$3 = $cs.$nativeString.length;
    $this.$rightBound0 = var$3;
    var$4 = jur_MatchResultImpl__init_($cs, $this.$leftBound0, var$3, $pat.$globalGroupIndex, $pat.$compCount + 1 | 0, $pat.$consCount + 1 | 0);
    $this.$matchResult = var$4;
    var$4.$anchoringBounds = 1;
},
jur_Matcher__init_ = (var_0, var_1) => {
    let var_2 = new jur_Matcher();
    jur_Matcher__init_0(var_2, var_0, var_1);
    return var_2;
};
function jn_ByteBufferImpl() {
    let a = this; jn_ByteBuffer.call(a);
    a.$direct = 0;
    a.$readOnly0 = 0;
}
let jnc_CoderMalfunctionError = $rt_classWithoutFields(jl_Error);
function nms_WeightedRandomItem() {
    jl_Object.call(this);
    this.$itemWeight = 0;
}
function nms_WeightedRandomChestContent() {
    let a = this; nms_WeightedRandomItem.call(a);
    a.$theItemId = null;
    a.$theMinimumChanceToGenerateItem = 0;
    a.$theMaximumChanceToGenerateItem = 0;
}
let nms_WeightedRandomChestContent_generateChestContents = ($par0Random, $par1ArrayOfWeightedRandomChestContent, $par2IInventory, $par3) => {
    let $var4, var$6, var$7, var$8, var$9, $var9, var$11, var$12, var$13, $var7, $var6, $var8, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2IInventory = $thread.pop();$par1ArrayOfWeightedRandomChestContent
        = $thread.pop();$par0Random = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 0;
        var$6 = 17;
        while ($var4 < $par3) {
            var$7 = $par1ArrayOfWeightedRandomChestContent.data;
            var$8 = 0;
            var$9 = var$7.length;
            $var9 = 0;
            while ($var9 < var$9) {
                var$8 = var$8 + var$7[$var9].$itemWeight | 0;
                $var9 = $var9 + 1 | 0;
            }
            if (var$8 <= 0) {
                $par0Random = new jl_IllegalArgumentException;
                $par0Random.$suppressionEnabled = 1;
                $par0Random.$writableStackTrace = 1;
                $rt_throw($par0Random);
            }
            var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$6));
            $var9 = var$8 - 1 | 0;
            if (!(var$8 & $var9))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$8), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$8 | 0;
                    if (((var$12 - var$13 | 0) + $var9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$6));
                }
            $var9 = 0;
            a: {
                while (true) {
                    if ($var9 >= var$9) {
                        $var7 = null;
                        break a;
                    }
                    $var7 = var$7[$var9];
                    var$13 = var$13 - $var7.$itemWeight | 0;
                    if (var$13 < 0)
                        break;
                    $var9 = $var9 + 1 | 0;
                }
            }
            var$8 = $var7.$theMinimumChanceToGenerateItem;
            var$9 = ($var7.$theMaximumChanceToGenerateItem - var$8 | 0) + 1 | 0;
            var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$6));
            $var9 = var$9 - 1 | 0;
            if (!(var$9 & $var9))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$9 | 0;
                    if (((var$12 - var$13 | 0) + $var9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$6));
                }
            $var6 = var$8 + var$13 | 0;
            $var8 = $var7.$theItemId;
            nms_Item_$callClinit();
            var$7 = nms_Item_itemsList.data;
            var$13 = $var8.$itemID;
            if (var$7[var$13].$maxStackSize >= $var6) {
                $var7 = new nms_ItemStack;
                $var9 = $var8.$stackSize;
                var$12 = $var8.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = var$13;
                $var7.$stackSize = $var9;
                $var7.$itemDamage = var$12;
                if (var$12 < 0)
                    $var7.$itemDamage = 0;
                var$17 = $var8.$stackTagCompound;
                if (var$17 !== null) {
                    var$18 = new nms_NBTTagCompound;
                    var$19 = var$17.$name;
                    if (var$19 === null)
                        var$19 = $rt_s(3);
                    var$18.$name = var$19;
                    var$19 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$19.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    var$7 = var$20.data;
                    var$19.$elementData = var$20;
                    var$19.$loadFactor = 0.75;
                    var$19.$threshold = var$7.length * 0.75 | 0;
                    var$18.$tagMap = var$19;
                    $var8 = var$17.$tagMap;
                    if ($var8.$cachedKeySet === null) {
                        var$19 = new ju_HashMap$1;
                        var$19.$this$0 = $var8;
                        $var8.$cachedKeySet = var$19;
                    }
                    var$21 = $var8.$cachedKeySet.$iterator();
                    while (var$21.$hasNext()) {
                        var$22 = var$21.$next();
                        var$19 = var$17.$tagMap;
                        if (var$22 === null) {
                            var$23 = var$19.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            b: {
                                if (!var$22.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$22.$nativeString.length)
                                            break b;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = var$22.$hashCode1;
                            var$7 = var$19.$elementData.data;
                            var$23 = var$7[var$13 & (var$7.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == var$13) {
                                    c: {
                                        var$19 = var$23.$key;
                                        if (var$22 !== var$19) {
                                            if (var$22 === var$19)
                                                $var9 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$19 = var$19;
                                                $var9 = var$22.$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break c;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$19 = var$23 === null ? null : var$23.$value0;
                        var$19 = var$19.$copy();
                        $var8 = var$18.$tagMap;
                        if (var$22 !== null)
                            var$19.$name = var$22;
                        else
                            var$19.$name = $rt_s(3);
                        ju_HashMap_putImpl($var8, var$22, var$19);
                    }
                    $var7.$stackTagCompound = var$18;
                }
                $var7.$stackSize = $var6;
                $var9 = $par2IInventory.$getSizeInventory();
                var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, var$6));
                var$13 = $var9 - 1 | 0;
                if (!($var9 & var$13))
                    var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt(var$8)), 31));
                else
                    while (true) {
                        var$12 = var$8 % $var9 | 0;
                        if (((var$8 - var$12 | 0) + var$13 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0Random.$seed = var$11;
                        var$8 = Long_lo(Long_shru(var$11, var$6));
                    }
                $ptr = 1;
                continue main;
            }
            $var9 = 0;
            if ($var9 < $var6) {
                var$19 = $var7.$theItemId;
                $var8 = new nms_ItemStack;
                var$13 = var$19.$itemID;
                var$12 = var$19.$stackSize;
                var$8 = var$19.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$13;
                $var8.$stackSize = var$12;
                $var8.$itemDamage = var$8;
                if (var$8 < 0)
                    $var8.$itemDamage = 0;
                var$19 = var$19.$stackTagCompound;
                if (var$19 !== null) {
                    var$17 = new nms_NBTTagCompound;
                    var$18 = var$19.$name;
                    if (var$18 === null)
                        var$18 = $rt_s(3);
                    var$17.$name = var$18;
                    var$18 = new ju_HashMap;
                    var$13 = ju_HashMap_calculateCapacity(16);
                    var$18.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, var$13);
                    var$7 = var$20.data;
                    var$18.$elementData = var$20;
                    var$18.$loadFactor = 0.75;
                    var$18.$threshold = var$7.length * 0.75 | 0;
                    var$17.$tagMap = var$18;
                    var$18 = var$19.$tagMap;
                    if (var$18.$cachedKeySet === null) {
                        var$21 = new ju_HashMap$1;
                        var$21.$this$0 = var$18;
                        var$18.$cachedKeySet = var$21;
                    }
                    var$18 = var$18.$cachedKeySet.$iterator();
                    while (var$18.$hasNext()) {
                        var$21 = var$18.$next();
                        var$23 = var$19.$tagMap;
                        if (var$21 === null) {
                            var$23 = var$23.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            d: {
                                if (!var$21.$hashCode1) {
                                    var$13 = 0;
                                    while (true) {
                                        if (var$13 >= var$21.$nativeString.length)
                                            break d;
                                        var$21.$hashCode1 = (31 * var$21.$hashCode1 | 0) + var$21.$nativeString.charCodeAt(var$13) | 0;
                                        var$13 = var$13 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = var$21.$hashCode1;
                            var$7 = var$23.$elementData.data;
                            var$23 = var$7[var$8 & (var$7.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == var$8) {
                                    e: {
                                        var$22 = var$23.$key;
                                        if (var$21 !== var$22) {
                                            if (var$21 === var$22)
                                                var$13 = 1;
                                            else if (!(var$22 instanceof jl_String))
                                                var$13 = 0;
                                            else {
                                                var$22 = var$22;
                                                var$13 = var$21.$nativeString !== var$22.$nativeString ? 0 : 1;
                                            }
                                            if (!var$13) {
                                                var$13 = 0;
                                                break e;
                                            }
                                        }
                                        var$13 = 1;
                                    }
                                    if (var$13)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$23 = var$23 === null ? null : var$23.$value0;
                        var$23 = var$23.$copy();
                        var$22 = var$17.$tagMap;
                        if (var$21 !== null)
                            var$23.$name = var$21;
                        else
                            var$23.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$22, var$21, var$23);
                    }
                    $var8.$stackTagCompound = var$17;
                }
                $var8.$stackSize = 1;
                var$13 = $par2IInventory.$getSizeInventory();
                var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$11;
                var$9 = Long_lo(Long_shru(var$11, var$6));
                var$12 = var$13 - 1 | 0;
                if (!(var$13 & var$12))
                    var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$13), Long_fromInt(var$9)), 31));
                else
                    while (true) {
                        var$8 = var$9 % var$13 | 0;
                        if (((var$9 - var$8 | 0) + var$12 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0Random.$seed = var$11;
                        var$9 = Long_lo(Long_shru(var$11, var$6));
                    }
                $ptr = 2;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        return;
    case 1:
        $par2IInventory.$setInventorySlotContents(var$12, $var7);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $par3)
                break;
            var$7 = $par1ArrayOfWeightedRandomChestContent.data;
            var$8 = 0;
            var$9 = var$7.length;
            $var9 = 0;
            while ($var9 < var$9) {
                var$8 = var$8 + var$7[$var9].$itemWeight | 0;
                $var9 = $var9 + 1 | 0;
            }
            if (var$8 <= 0) {
                $par0Random = new jl_IllegalArgumentException;
                $par0Random.$suppressionEnabled = 1;
                $par0Random.$writableStackTrace = 1;
                $rt_throw($par0Random);
            }
            var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$6));
            $var9 = var$8 - 1 | 0;
            if (!(var$8 & $var9))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$8), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$8 | 0;
                    if (((var$12 - var$13 | 0) + $var9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$6));
                }
            $var9 = 0;
            f: {
                while (true) {
                    if ($var9 >= var$9) {
                        $var7 = null;
                        break f;
                    }
                    $var7 = var$7[$var9];
                    var$13 = var$13 - $var7.$itemWeight | 0;
                    if (var$13 < 0)
                        break;
                    $var9 = $var9 + 1 | 0;
                }
            }
            var$8 = $var7.$theMinimumChanceToGenerateItem;
            var$9 = ($var7.$theMaximumChanceToGenerateItem - var$8 | 0) + 1 | 0;
            var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$6));
            $var9 = var$9 - 1 | 0;
            if (!(var$9 & $var9))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$9 | 0;
                    if (((var$12 - var$13 | 0) + $var9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$6));
                }
            $var6 = var$8 + var$13 | 0;
            $var8 = $var7.$theItemId;
            nms_Item_$callClinit();
            var$7 = nms_Item_itemsList.data;
            var$13 = $var8.$itemID;
            if (var$7[var$13].$maxStackSize >= $var6) {
                $var7 = new nms_ItemStack;
                $var9 = $var8.$stackSize;
                var$12 = $var8.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = var$13;
                $var7.$stackSize = $var9;
                $var7.$itemDamage = var$12;
                if (var$12 < 0)
                    $var7.$itemDamage = 0;
                var$17 = $var8.$stackTagCompound;
                if (var$17 !== null) {
                    var$18 = new nms_NBTTagCompound;
                    var$19 = var$17.$name;
                    if (var$19 === null)
                        var$19 = $rt_s(3);
                    var$18.$name = var$19;
                    var$19 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$19.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    var$7 = var$20.data;
                    var$19.$elementData = var$20;
                    var$19.$loadFactor = 0.75;
                    var$19.$threshold = var$7.length * 0.75 | 0;
                    var$18.$tagMap = var$19;
                    $var8 = var$17.$tagMap;
                    if ($var8.$cachedKeySet === null) {
                        var$19 = new ju_HashMap$1;
                        var$19.$this$0 = $var8;
                        $var8.$cachedKeySet = var$19;
                    }
                    var$21 = $var8.$cachedKeySet.$iterator();
                    while (var$21.$hasNext()) {
                        var$22 = var$21.$next();
                        var$19 = var$17.$tagMap;
                        if (var$22 === null) {
                            var$23 = var$19.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            g: {
                                if (!var$22.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$22.$nativeString.length)
                                            break g;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = var$22.$hashCode1;
                            var$7 = var$19.$elementData.data;
                            var$23 = var$7[var$13 & (var$7.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == var$13) {
                                    h: {
                                        var$19 = var$23.$key;
                                        if (var$22 !== var$19) {
                                            if (var$22 === var$19)
                                                $var9 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$19 = var$19;
                                                $var9 = var$22.$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break h;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$19 = var$23 === null ? null : var$23.$value0;
                        var$19 = var$19.$copy();
                        $var8 = var$18.$tagMap;
                        if (var$22 !== null)
                            var$19.$name = var$22;
                        else
                            var$19.$name = $rt_s(3);
                        ju_HashMap_putImpl($var8, var$22, var$19);
                    }
                    $var7.$stackTagCompound = var$18;
                }
                $var7.$stackSize = $var6;
                $var9 = $par2IInventory.$getSizeInventory();
                var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, var$6));
                var$13 = $var9 - 1 | 0;
                if (!($var9 & var$13))
                    var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt(var$8)), 31));
                else
                    while (true) {
                        var$12 = var$8 % $var9 | 0;
                        if (((var$8 - var$12 | 0) + var$13 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0Random.$seed = var$11;
                        var$8 = Long_lo(Long_shru(var$11, var$6));
                    }
                continue main;
            }
            $var9 = 0;
            if ($var9 >= $var6)
                continue;
            else {
                var$19 = $var7.$theItemId;
                $var8 = new nms_ItemStack;
                var$13 = var$19.$itemID;
                var$12 = var$19.$stackSize;
                var$8 = var$19.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$13;
                $var8.$stackSize = var$12;
                $var8.$itemDamage = var$8;
                if (var$8 < 0)
                    $var8.$itemDamage = 0;
                var$19 = var$19.$stackTagCompound;
                if (var$19 !== null) {
                    var$17 = new nms_NBTTagCompound;
                    var$18 = var$19.$name;
                    if (var$18 === null)
                        var$18 = $rt_s(3);
                    var$17.$name = var$18;
                    var$18 = new ju_HashMap;
                    var$13 = ju_HashMap_calculateCapacity(16);
                    var$18.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, var$13);
                    var$7 = var$20.data;
                    var$18.$elementData = var$20;
                    var$18.$loadFactor = 0.75;
                    var$18.$threshold = var$7.length * 0.75 | 0;
                    var$17.$tagMap = var$18;
                    var$18 = var$19.$tagMap;
                    if (var$18.$cachedKeySet === null) {
                        var$21 = new ju_HashMap$1;
                        var$21.$this$0 = var$18;
                        var$18.$cachedKeySet = var$21;
                    }
                    var$18 = var$18.$cachedKeySet.$iterator();
                    while (var$18.$hasNext()) {
                        var$21 = var$18.$next();
                        var$23 = var$19.$tagMap;
                        if (var$21 === null) {
                            var$23 = var$23.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            i: {
                                if (!var$21.$hashCode1) {
                                    var$13 = 0;
                                    while (true) {
                                        if (var$13 >= var$21.$nativeString.length)
                                            break i;
                                        var$21.$hashCode1 = (31 * var$21.$hashCode1 | 0) + var$21.$nativeString.charCodeAt(var$13) | 0;
                                        var$13 = var$13 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = var$21.$hashCode1;
                            var$7 = var$23.$elementData.data;
                            var$23 = var$7[var$8 & (var$7.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == var$8) {
                                    j: {
                                        var$22 = var$23.$key;
                                        if (var$21 !== var$22) {
                                            if (var$21 === var$22)
                                                var$13 = 1;
                                            else if (!(var$22 instanceof jl_String))
                                                var$13 = 0;
                                            else {
                                                var$22 = var$22;
                                                var$13 = var$21.$nativeString !== var$22.$nativeString ? 0 : 1;
                                            }
                                            if (!var$13) {
                                                var$13 = 0;
                                                break j;
                                            }
                                        }
                                        var$13 = 1;
                                    }
                                    if (var$13)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$23 = var$23 === null ? null : var$23.$value0;
                        var$23 = var$23.$copy();
                        var$22 = var$17.$tagMap;
                        if (var$21 !== null)
                            var$23.$name = var$21;
                        else
                            var$23.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$22, var$21, var$23);
                    }
                    $var8.$stackTagCompound = var$17;
                }
                $var8.$stackSize = 1;
                var$13 = $par2IInventory.$getSizeInventory();
                var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$11;
                var$9 = Long_lo(Long_shru(var$11, var$6));
                var$12 = var$13 - 1 | 0;
                if (!(var$13 & var$12))
                    var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$13), Long_fromInt(var$9)), 31));
                else
                    while (true) {
                        var$8 = var$9 % var$13 | 0;
                        if (((var$9 - var$8 | 0) + var$12 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0Random.$seed = var$11;
                        var$9 = Long_lo(Long_shru(var$11, var$6));
                    }
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $par2IInventory.$setInventorySlotContents(var$8, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        while (true) {
            if ($var9 < $var6) {
                var$19 = $var7.$theItemId;
                $var8 = new nms_ItemStack;
                var$13 = var$19.$itemID;
                var$12 = var$19.$stackSize;
                var$8 = var$19.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$13;
                $var8.$stackSize = var$12;
                $var8.$itemDamage = var$8;
                if (var$8 < 0)
                    $var8.$itemDamage = 0;
                var$19 = var$19.$stackTagCompound;
                if (var$19 !== null) {
                    var$17 = new nms_NBTTagCompound;
                    var$18 = var$19.$name;
                    if (var$18 === null)
                        var$18 = $rt_s(3);
                    var$17.$name = var$18;
                    var$18 = new ju_HashMap;
                    var$13 = ju_HashMap_calculateCapacity(16);
                    var$18.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, var$13);
                    var$7 = var$20.data;
                    var$18.$elementData = var$20;
                    var$18.$loadFactor = 0.75;
                    var$18.$threshold = var$7.length * 0.75 | 0;
                    var$17.$tagMap = var$18;
                    var$18 = var$19.$tagMap;
                    if (var$18.$cachedKeySet === null) {
                        var$21 = new ju_HashMap$1;
                        var$21.$this$0 = var$18;
                        var$18.$cachedKeySet = var$21;
                    }
                    var$18 = var$18.$cachedKeySet.$iterator();
                    while (var$18.$hasNext()) {
                        var$21 = var$18.$next();
                        var$23 = var$19.$tagMap;
                        if (var$21 === null) {
                            var$23 = var$23.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            i: {
                                if (!var$21.$hashCode1) {
                                    var$13 = 0;
                                    while (true) {
                                        if (var$13 >= var$21.$nativeString.length)
                                            break i;
                                        var$21.$hashCode1 = (31 * var$21.$hashCode1 | 0) + var$21.$nativeString.charCodeAt(var$13) | 0;
                                        var$13 = var$13 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = var$21.$hashCode1;
                            var$7 = var$23.$elementData.data;
                            var$23 = var$7[var$8 & (var$7.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == var$8) {
                                    j: {
                                        var$22 = var$23.$key;
                                        if (var$21 !== var$22) {
                                            if (var$21 === var$22)
                                                var$13 = 1;
                                            else if (!(var$22 instanceof jl_String))
                                                var$13 = 0;
                                            else {
                                                var$22 = var$22;
                                                var$13 = var$21.$nativeString !== var$22.$nativeString ? 0 : 1;
                                            }
                                            if (!var$13) {
                                                var$13 = 0;
                                                break j;
                                            }
                                        }
                                        var$13 = 1;
                                    }
                                    if (var$13)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$23 = var$23 === null ? null : var$23.$value0;
                        var$23 = var$23.$copy();
                        var$22 = var$17.$tagMap;
                        if (var$21 !== null)
                            var$23.$name = var$21;
                        else
                            var$23.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$22, var$21, var$23);
                    }
                    $var8.$stackTagCompound = var$17;
                }
                $var8.$stackSize = 1;
                var$13 = $par2IInventory.$getSizeInventory();
                var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$11;
                var$9 = Long_lo(Long_shru(var$11, var$6));
                var$12 = var$13 - 1 | 0;
                if (!(var$13 & var$12))
                    var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$13), Long_fromInt(var$9)), 31));
                else
                    while (true) {
                        var$8 = var$9 % var$13 | 0;
                        if (((var$9 - var$8 | 0) + var$12 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0Random.$seed = var$11;
                        var$9 = Long_lo(Long_shru(var$11, var$6));
                    }
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $par3)
                break;
            var$7 = $par1ArrayOfWeightedRandomChestContent.data;
            var$8 = 0;
            var$9 = var$7.length;
            $var9 = 0;
            while ($var9 < var$9) {
                var$8 = var$8 + var$7[$var9].$itemWeight | 0;
                $var9 = $var9 + 1 | 0;
            }
            if (var$8 <= 0) {
                $par0Random = new jl_IllegalArgumentException;
                $par0Random.$suppressionEnabled = 1;
                $par0Random.$writableStackTrace = 1;
                $rt_throw($par0Random);
            }
            var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$6));
            $var9 = var$8 - 1 | 0;
            if (!(var$8 & $var9))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$8), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$8 | 0;
                    if (((var$12 - var$13 | 0) + $var9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$6));
                }
            $var9 = 0;
            f: {
                while (true) {
                    if ($var9 >= var$9) {
                        $var7 = null;
                        break f;
                    }
                    $var7 = var$7[$var9];
                    var$13 = var$13 - $var7.$itemWeight | 0;
                    if (var$13 < 0)
                        break;
                    $var9 = $var9 + 1 | 0;
                }
            }
            var$8 = $var7.$theMinimumChanceToGenerateItem;
            var$9 = ($var7.$theMaximumChanceToGenerateItem - var$8 | 0) + 1 | 0;
            var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, var$6));
            $var9 = var$9 - 1 | 0;
            if (!(var$9 & $var9))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$9 | 0;
                    if (((var$12 - var$13 | 0) + $var9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, var$6));
                }
            $var6 = var$8 + var$13 | 0;
            $var8 = $var7.$theItemId;
            nms_Item_$callClinit();
            var$7 = nms_Item_itemsList.data;
            var$13 = $var8.$itemID;
            if (var$7[var$13].$maxStackSize >= $var6) {
                $var7 = new nms_ItemStack;
                $var9 = $var8.$stackSize;
                var$12 = $var8.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = var$13;
                $var7.$stackSize = $var9;
                $var7.$itemDamage = var$12;
                if (var$12 < 0)
                    $var7.$itemDamage = 0;
                var$17 = $var8.$stackTagCompound;
                if (var$17 !== null) {
                    var$18 = new nms_NBTTagCompound;
                    var$19 = var$17.$name;
                    if (var$19 === null)
                        var$19 = $rt_s(3);
                    var$18.$name = var$19;
                    var$19 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$19.$elementCount = 0;
                    var$20 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    var$7 = var$20.data;
                    var$19.$elementData = var$20;
                    var$19.$loadFactor = 0.75;
                    var$19.$threshold = var$7.length * 0.75 | 0;
                    var$18.$tagMap = var$19;
                    $var8 = var$17.$tagMap;
                    if ($var8.$cachedKeySet === null) {
                        var$19 = new ju_HashMap$1;
                        var$19.$this$0 = $var8;
                        $var8.$cachedKeySet = var$19;
                    }
                    var$21 = $var8.$cachedKeySet.$iterator();
                    while (var$21.$hasNext()) {
                        var$22 = var$21.$next();
                        var$19 = var$17.$tagMap;
                        if (var$22 === null) {
                            var$23 = var$19.$elementData.data[0];
                            while (var$23 !== null && var$23.$key !== null) {
                                var$23 = var$23.$next3;
                            }
                        } else {
                            g: {
                                if (!var$22.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$22.$nativeString.length)
                                            break g;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = var$22.$hashCode1;
                            var$7 = var$19.$elementData.data;
                            var$23 = var$7[var$13 & (var$7.length - 1 | 0)];
                            while (var$23 !== null) {
                                if (var$23.$origKeyHash == var$13) {
                                    h: {
                                        var$19 = var$23.$key;
                                        if (var$22 !== var$19) {
                                            if (var$22 === var$19)
                                                $var9 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$19 = var$19;
                                                $var9 = var$22.$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break h;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$23 = var$23.$next3;
                            }
                        }
                        var$19 = var$23 === null ? null : var$23.$value0;
                        var$19 = var$19.$copy();
                        $var8 = var$18.$tagMap;
                        if (var$22 !== null)
                            var$19.$name = var$22;
                        else
                            var$19.$name = $rt_s(3);
                        ju_HashMap_putImpl($var8, var$22, var$19);
                    }
                    $var7.$stackTagCompound = var$18;
                }
                $var7.$stackSize = $var6;
                $var9 = $par2IInventory.$getSizeInventory();
                var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, var$6));
                var$13 = $var9 - 1 | 0;
                if (!($var9 & var$13))
                    var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt(var$8)), 31));
                else
                    while (true) {
                        var$12 = var$8 % $var9 | 0;
                        if (((var$8 - var$12 | 0) + var$13 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par0Random.$seed = var$11;
                        var$8 = Long_lo(Long_shru(var$11, var$6));
                    }
                $ptr = 1;
                continue main;
            }
            $var9 = 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0Random, $par1ArrayOfWeightedRandomChestContent, $par2IInventory, $par3, $var4, var$6, var$7, var$8, var$9, $var9, var$11, var$12, var$13, $var7, $var6, $var8, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_WeightedRandomChestContent_generateDispenserContents = ($par0Random, $par1ArrayOfWeightedRandomChestContent, $par2TileEntityDispenser, $par3) => {
    let $var4, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var6, var$14, $var9, var$16, var$17, var$18, var$19, var$20, $var7, var$22, $var8, var$24, var$25, var$26, var$27, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();$var8 = $thread.pop();var$22 = $thread.pop();$var7 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();$var6 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 =
        $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2TileEntityDispenser = $thread.pop();$par1ArrayOfWeightedRandomChestContent = $thread.pop();$par0Random = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 0;
        var$6 = 17;
        var$7 = 9;
        var$8 = 8;
        var$9 = 64;
        var$10 = 64;
        var$11 = 9;
        while ($var4 < $par3) {
            var$12 = $par1ArrayOfWeightedRandomChestContent.data;
            $var6 = 0;
            var$14 = var$12.length;
            $var9 = 0;
            while ($var9 < var$14) {
                $var6 = $var6 + var$12[$var9].$itemWeight | 0;
                $var9 = $var9 + 1 | 0;
            }
            if ($var6 <= 0) {
                $par0Random = new jl_IllegalArgumentException;
                $par0Random.$suppressionEnabled = 1;
                $par0Random.$writableStackTrace = 1;
                $rt_throw($par0Random);
            }
            var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, var$6));
            $var9 = $var6 - 1 | 0;
            if (!($var6 & $var9))
                var$18 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$18 = var$17 % $var6 | 0;
                    if (((var$17 - var$18 | 0) + $var9 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$17 = Long_lo(Long_shru(var$16, var$6));
                }
            $var9 = 0;
            a: {
                while (true) {
                    if ($var9 >= var$14) {
                        var$19 = null;
                        break a;
                    }
                    var$19 = var$12[$var9];
                    var$18 = var$18 - var$19.$itemWeight | 0;
                    if (var$18 < 0)
                        break;
                    $var9 = $var9 + 1 | 0;
                }
            }
            var$14 = var$19.$theMinimumChanceToGenerateItem;
            $var6 = (var$19.$theMaximumChanceToGenerateItem - var$14 | 0) + 1 | 0;
            var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, var$6));
            $var9 = $var6 - 1 | 0;
            if (!($var6 & $var9))
                var$18 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$18 = var$17 % $var6 | 0;
                    if (((var$17 - var$18 | 0) + $var9 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$17 = Long_lo(Long_shru(var$16, var$6));
                }
            $var6 = var$14 + var$18 | 0;
            var$20 = var$19.$theItemId;
            nms_Item_$callClinit();
            var$12 = nms_Item_itemsList.data;
            var$18 = var$20.$itemID;
            if (var$12[var$18].$maxStackSize >= $var6) {
                $var7 = new nms_ItemStack;
                $var9 = var$20.$stackSize;
                var$17 = var$20.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = var$18;
                $var7.$stackSize = $var9;
                $var7.$itemDamage = var$17;
                if (var$17 < 0)
                    $var7.$itemDamage = 0;
                var$22 = var$20.$stackTagCompound;
                if (var$22 !== null) {
                    $var8 = new nms_NBTTagCompound;
                    var$24 = var$22.$name;
                    if (var$24 === null)
                        var$24 = $rt_s(3);
                    $var8.$name = var$24;
                    var$24 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$24.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    var$12 = var$25.data;
                    var$24.$elementData = var$25;
                    var$24.$loadFactor = 0.75;
                    var$24.$threshold = var$12.length * 0.75 | 0;
                    $var8.$tagMap = var$24;
                    var$19 = var$22.$tagMap;
                    if (var$19.$cachedKeySet === null) {
                        var$24 = new ju_HashMap$1;
                        var$24.$this$0 = var$19;
                        var$19.$cachedKeySet = var$24;
                    }
                    var$26 = var$19.$cachedKeySet.$iterator();
                    while (var$26.$hasNext()) {
                        var$27 = var$26.$next();
                        var$24 = var$22.$tagMap;
                        if (var$27 === null) {
                            var$24 = var$24.$elementData.data[0];
                            while (var$24 !== null && var$24.$key !== null) {
                                var$24 = var$24.$next3;
                            }
                        } else {
                            b: {
                                if (!var$27.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$27.$nativeString.length)
                                            break b;
                                        var$27.$hashCode1 = (31 * var$27.$hashCode1 | 0) + var$27.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            var$17 = var$27.$hashCode1;
                            var$12 = var$24.$elementData.data;
                            var$24 = var$12[var$17 & (var$12.length - 1 | 0)];
                            while (var$24 !== null) {
                                if (var$24.$origKeyHash == var$17) {
                                    c: {
                                        var$19 = var$24.$key;
                                        if (var$27 !== var$19) {
                                            if (var$27 === var$19)
                                                $var9 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$19 = var$19;
                                                $var9 = var$27.$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break c;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$24 = var$24.$next3;
                            }
                        }
                        var$24 = var$24 === null ? null : var$24.$value0;
                        var$24 = var$24.$copy();
                        var$19 = $var8.$tagMap;
                        if (var$27 !== null)
                            var$24.$name = var$27;
                        else
                            var$24.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$19, var$27, var$24);
                    }
                    $var7.$stackTagCompound = $var8;
                }
                $var7.$stackSize = $var6;
                var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$16;
                $var9 = Long_lo(Long_shru(var$16, var$6));
                while (true) {
                    var$18 = $var9 % var$7 | 0;
                    if ((($var9 - var$18 | 0) + var$8 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    $var9 = Long_lo(Long_shru(var$16, var$6));
                }
                $par2TileEntityDispenser.$dispenserContents.data[var$18] = $var7;
                if ($var6 > var$9)
                    $var7.$stackSize = var$10;
                $ptr = 1;
                continue main;
            }
            $var9 = 0;
            if ($var9 < $var6) {
                var$24 = var$19.$theItemId;
                $var8 = new nms_ItemStack;
                var$18 = var$24.$itemID;
                var$17 = var$24.$stackSize;
                var$14 = var$24.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$18;
                $var8.$stackSize = var$17;
                $var8.$itemDamage = var$14;
                if (var$14 < 0)
                    $var8.$itemDamage = 0;
                var$26 = var$24.$stackTagCompound;
                if (var$26 !== null) {
                    var$27 = new nms_NBTTagCompound;
                    var$24 = var$26.$name;
                    if (var$24 === null)
                        var$24 = $rt_s(3);
                    var$27.$name = var$24;
                    var$24 = new ju_HashMap;
                    var$18 = ju_HashMap_calculateCapacity(16);
                    var$24.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, var$18);
                    var$12 = var$25.data;
                    var$24.$elementData = var$25;
                    var$24.$loadFactor = 0.75;
                    var$24.$threshold = var$12.length * 0.75 | 0;
                    var$27.$tagMap = var$24;
                    var$20 = var$26.$tagMap;
                    if (var$20.$cachedKeySet === null) {
                        var$24 = new ju_HashMap$1;
                        var$24.$this$0 = var$20;
                        var$20.$cachedKeySet = var$24;
                    }
                    var$28 = var$20.$cachedKeySet.$iterator();
                    while (var$28.$hasNext()) {
                        var$22 = var$28.$next();
                        var$24 = var$26.$tagMap;
                        if (var$22 === null) {
                            var$24 = var$24.$elementData.data[0];
                            while (var$24 !== null && var$24.$key !== null) {
                                var$24 = var$24.$next3;
                            }
                        } else {
                            d: {
                                if (!var$22.$hashCode1) {
                                    var$17 = 0;
                                    while (true) {
                                        if (var$17 >= var$22.$nativeString.length)
                                            break d;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt(var$17) | 0;
                                        var$17 = var$17 + 1 | 0;
                                    }
                                }
                            }
                            var$14 = var$22.$hashCode1;
                            var$12 = var$24.$elementData.data;
                            var$24 = var$12[var$14 & (var$12.length - 1 | 0)];
                            while (var$24 !== null) {
                                if (var$24.$origKeyHash == var$14) {
                                    e: {
                                        var$20 = var$24.$key;
                                        if (var$22 !== var$20) {
                                            if (var$22 === var$20)
                                                var$18 = 1;
                                            else if (!(var$20 instanceof jl_String))
                                                var$18 = 0;
                                            else {
                                                var$20 = var$20;
                                                var$18 = var$22.$nativeString !== var$20.$nativeString ? 0 : 1;
                                            }
                                            if (!var$18) {
                                                var$18 = 0;
                                                break e;
                                            }
                                        }
                                        var$18 = 1;
                                    }
                                    if (var$18)
                                        break;
                                }
                                var$24 = var$24.$next3;
                            }
                        }
                        var$24 = var$24 === null ? null : var$24.$value0;
                        var$24 = var$24.$copy();
                        var$20 = var$27.$tagMap;
                        if (var$22 !== null)
                            var$24.$name = var$22;
                        else
                            var$24.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$20, var$22, var$24);
                    }
                    $var8.$stackTagCompound = var$27;
                }
                $var8.$stackSize = 1;
                var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$16;
                var$18 = Long_lo(Long_shru(var$16, var$6));
                while (true) {
                    var$17 = var$18 % var$11 | 0;
                    if (((var$18 - var$17 | 0) + var$8 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$18 = Long_lo(Long_shru(var$16, var$6));
                }
                $par2TileEntityDispenser.$dispenserContents.data[var$17] = $var8;
                $ptr = 2;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        return;
    case 1:
        nms_TileEntity_onInventoryChanged($par2TileEntityDispenser);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $par3)
                break;
            var$12 = $par1ArrayOfWeightedRandomChestContent.data;
            $var6 = 0;
            var$14 = var$12.length;
            $var9 = 0;
            while ($var9 < var$14) {
                $var6 = $var6 + var$12[$var9].$itemWeight | 0;
                $var9 = $var9 + 1 | 0;
            }
            if ($var6 <= 0) {
                $par0Random = new jl_IllegalArgumentException;
                $par0Random.$suppressionEnabled = 1;
                $par0Random.$writableStackTrace = 1;
                $rt_throw($par0Random);
            }
            var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, var$6));
            $var9 = $var6 - 1 | 0;
            if (!($var6 & $var9))
                var$18 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$18 = var$17 % $var6 | 0;
                    if (((var$17 - var$18 | 0) + $var9 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$17 = Long_lo(Long_shru(var$16, var$6));
                }
            $var9 = 0;
            f: {
                while (true) {
                    if ($var9 >= var$14) {
                        var$19 = null;
                        break f;
                    }
                    var$19 = var$12[$var9];
                    var$18 = var$18 - var$19.$itemWeight | 0;
                    if (var$18 < 0)
                        break;
                    $var9 = $var9 + 1 | 0;
                }
            }
            var$14 = var$19.$theMinimumChanceToGenerateItem;
            $var6 = (var$19.$theMaximumChanceToGenerateItem - var$14 | 0) + 1 | 0;
            var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, var$6));
            $var9 = $var6 - 1 | 0;
            if (!($var6 & $var9))
                var$18 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$18 = var$17 % $var6 | 0;
                    if (((var$17 - var$18 | 0) + $var9 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$17 = Long_lo(Long_shru(var$16, var$6));
                }
            $var6 = var$14 + var$18 | 0;
            var$20 = var$19.$theItemId;
            nms_Item_$callClinit();
            var$12 = nms_Item_itemsList.data;
            var$18 = var$20.$itemID;
            if (var$12[var$18].$maxStackSize >= $var6) {
                $var7 = new nms_ItemStack;
                $var9 = var$20.$stackSize;
                var$17 = var$20.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = var$18;
                $var7.$stackSize = $var9;
                $var7.$itemDamage = var$17;
                if (var$17 < 0)
                    $var7.$itemDamage = 0;
                var$22 = var$20.$stackTagCompound;
                if (var$22 !== null) {
                    $var8 = new nms_NBTTagCompound;
                    var$24 = var$22.$name;
                    if (var$24 === null)
                        var$24 = $rt_s(3);
                    $var8.$name = var$24;
                    var$24 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$24.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    var$12 = var$25.data;
                    var$24.$elementData = var$25;
                    var$24.$loadFactor = 0.75;
                    var$24.$threshold = var$12.length * 0.75 | 0;
                    $var8.$tagMap = var$24;
                    var$19 = var$22.$tagMap;
                    if (var$19.$cachedKeySet === null) {
                        var$24 = new ju_HashMap$1;
                        var$24.$this$0 = var$19;
                        var$19.$cachedKeySet = var$24;
                    }
                    var$26 = var$19.$cachedKeySet.$iterator();
                    while (var$26.$hasNext()) {
                        var$27 = var$26.$next();
                        var$24 = var$22.$tagMap;
                        if (var$27 === null) {
                            var$24 = var$24.$elementData.data[0];
                            while (var$24 !== null && var$24.$key !== null) {
                                var$24 = var$24.$next3;
                            }
                        } else {
                            g: {
                                if (!var$27.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$27.$nativeString.length)
                                            break g;
                                        var$27.$hashCode1 = (31 * var$27.$hashCode1 | 0) + var$27.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            var$17 = var$27.$hashCode1;
                            var$12 = var$24.$elementData.data;
                            var$24 = var$12[var$17 & (var$12.length - 1 | 0)];
                            while (var$24 !== null) {
                                if (var$24.$origKeyHash == var$17) {
                                    h: {
                                        var$19 = var$24.$key;
                                        if (var$27 !== var$19) {
                                            if (var$27 === var$19)
                                                $var9 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$19 = var$19;
                                                $var9 = var$27.$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break h;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$24 = var$24.$next3;
                            }
                        }
                        var$24 = var$24 === null ? null : var$24.$value0;
                        var$24 = var$24.$copy();
                        var$19 = $var8.$tagMap;
                        if (var$27 !== null)
                            var$24.$name = var$27;
                        else
                            var$24.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$19, var$27, var$24);
                    }
                    $var7.$stackTagCompound = $var8;
                }
                $var7.$stackSize = $var6;
                var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$16;
                $var9 = Long_lo(Long_shru(var$16, var$6));
                while (true) {
                    var$18 = $var9 % var$7 | 0;
                    if ((($var9 - var$18 | 0) + var$8 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    $var9 = Long_lo(Long_shru(var$16, var$6));
                }
                $par2TileEntityDispenser.$dispenserContents.data[var$18] = $var7;
                if ($var6 > var$9)
                    $var7.$stackSize = var$10;
                continue main;
            }
            $var9 = 0;
            if ($var9 >= $var6)
                continue;
            else {
                var$24 = var$19.$theItemId;
                $var8 = new nms_ItemStack;
                var$18 = var$24.$itemID;
                var$17 = var$24.$stackSize;
                var$14 = var$24.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$18;
                $var8.$stackSize = var$17;
                $var8.$itemDamage = var$14;
                if (var$14 < 0)
                    $var8.$itemDamage = 0;
                var$26 = var$24.$stackTagCompound;
                if (var$26 !== null) {
                    var$27 = new nms_NBTTagCompound;
                    var$24 = var$26.$name;
                    if (var$24 === null)
                        var$24 = $rt_s(3);
                    var$27.$name = var$24;
                    var$24 = new ju_HashMap;
                    var$18 = ju_HashMap_calculateCapacity(16);
                    var$24.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, var$18);
                    var$12 = var$25.data;
                    var$24.$elementData = var$25;
                    var$24.$loadFactor = 0.75;
                    var$24.$threshold = var$12.length * 0.75 | 0;
                    var$27.$tagMap = var$24;
                    var$20 = var$26.$tagMap;
                    if (var$20.$cachedKeySet === null) {
                        var$24 = new ju_HashMap$1;
                        var$24.$this$0 = var$20;
                        var$20.$cachedKeySet = var$24;
                    }
                    var$28 = var$20.$cachedKeySet.$iterator();
                    while (var$28.$hasNext()) {
                        var$22 = var$28.$next();
                        var$24 = var$26.$tagMap;
                        if (var$22 === null) {
                            var$24 = var$24.$elementData.data[0];
                            while (var$24 !== null && var$24.$key !== null) {
                                var$24 = var$24.$next3;
                            }
                        } else {
                            i: {
                                if (!var$22.$hashCode1) {
                                    var$17 = 0;
                                    while (true) {
                                        if (var$17 >= var$22.$nativeString.length)
                                            break i;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt(var$17) | 0;
                                        var$17 = var$17 + 1 | 0;
                                    }
                                }
                            }
                            var$14 = var$22.$hashCode1;
                            var$12 = var$24.$elementData.data;
                            var$24 = var$12[var$14 & (var$12.length - 1 | 0)];
                            while (var$24 !== null) {
                                if (var$24.$origKeyHash == var$14) {
                                    j: {
                                        var$20 = var$24.$key;
                                        if (var$22 !== var$20) {
                                            if (var$22 === var$20)
                                                var$18 = 1;
                                            else if (!(var$20 instanceof jl_String))
                                                var$18 = 0;
                                            else {
                                                var$20 = var$20;
                                                var$18 = var$22.$nativeString !== var$20.$nativeString ? 0 : 1;
                                            }
                                            if (!var$18) {
                                                var$18 = 0;
                                                break j;
                                            }
                                        }
                                        var$18 = 1;
                                    }
                                    if (var$18)
                                        break;
                                }
                                var$24 = var$24.$next3;
                            }
                        }
                        var$24 = var$24 === null ? null : var$24.$value0;
                        var$24 = var$24.$copy();
                        var$20 = var$27.$tagMap;
                        if (var$22 !== null)
                            var$24.$name = var$22;
                        else
                            var$24.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$20, var$22, var$24);
                    }
                    $var8.$stackTagCompound = var$27;
                }
                $var8.$stackSize = 1;
                var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$16;
                var$18 = Long_lo(Long_shru(var$16, var$6));
                while (true) {
                    var$17 = var$18 % var$11 | 0;
                    if (((var$18 - var$17 | 0) + var$8 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$18 = Long_lo(Long_shru(var$16, var$6));
                }
                $par2TileEntityDispenser.$dispenserContents.data[var$17] = $var8;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_TileEntity_onInventoryChanged($par2TileEntityDispenser);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        while (true) {
            if ($var9 < $var6) {
                var$24 = var$19.$theItemId;
                $var8 = new nms_ItemStack;
                var$18 = var$24.$itemID;
                var$17 = var$24.$stackSize;
                var$14 = var$24.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$18;
                $var8.$stackSize = var$17;
                $var8.$itemDamage = var$14;
                if (var$14 < 0)
                    $var8.$itemDamage = 0;
                var$26 = var$24.$stackTagCompound;
                if (var$26 !== null) {
                    var$27 = new nms_NBTTagCompound;
                    var$24 = var$26.$name;
                    if (var$24 === null)
                        var$24 = $rt_s(3);
                    var$27.$name = var$24;
                    var$24 = new ju_HashMap;
                    var$18 = ju_HashMap_calculateCapacity(16);
                    var$24.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, var$18);
                    var$12 = var$25.data;
                    var$24.$elementData = var$25;
                    var$24.$loadFactor = 0.75;
                    var$24.$threshold = var$12.length * 0.75 | 0;
                    var$27.$tagMap = var$24;
                    var$20 = var$26.$tagMap;
                    if (var$20.$cachedKeySet === null) {
                        var$24 = new ju_HashMap$1;
                        var$24.$this$0 = var$20;
                        var$20.$cachedKeySet = var$24;
                    }
                    var$28 = var$20.$cachedKeySet.$iterator();
                    while (var$28.$hasNext()) {
                        var$22 = var$28.$next();
                        var$24 = var$26.$tagMap;
                        if (var$22 === null) {
                            var$24 = var$24.$elementData.data[0];
                            while (var$24 !== null && var$24.$key !== null) {
                                var$24 = var$24.$next3;
                            }
                        } else {
                            i: {
                                if (!var$22.$hashCode1) {
                                    var$17 = 0;
                                    while (true) {
                                        if (var$17 >= var$22.$nativeString.length)
                                            break i;
                                        var$22.$hashCode1 = (31 * var$22.$hashCode1 | 0) + var$22.$nativeString.charCodeAt(var$17) | 0;
                                        var$17 = var$17 + 1 | 0;
                                    }
                                }
                            }
                            var$14 = var$22.$hashCode1;
                            var$12 = var$24.$elementData.data;
                            var$24 = var$12[var$14 & (var$12.length - 1 | 0)];
                            while (var$24 !== null) {
                                if (var$24.$origKeyHash == var$14) {
                                    j: {
                                        var$20 = var$24.$key;
                                        if (var$22 !== var$20) {
                                            if (var$22 === var$20)
                                                var$18 = 1;
                                            else if (!(var$20 instanceof jl_String))
                                                var$18 = 0;
                                            else {
                                                var$20 = var$20;
                                                var$18 = var$22.$nativeString !== var$20.$nativeString ? 0 : 1;
                                            }
                                            if (!var$18) {
                                                var$18 = 0;
                                                break j;
                                            }
                                        }
                                        var$18 = 1;
                                    }
                                    if (var$18)
                                        break;
                                }
                                var$24 = var$24.$next3;
                            }
                        }
                        var$24 = var$24 === null ? null : var$24.$value0;
                        var$24 = var$24.$copy();
                        var$20 = var$27.$tagMap;
                        if (var$22 !== null)
                            var$24.$name = var$22;
                        else
                            var$24.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$20, var$22, var$24);
                    }
                    $var8.$stackTagCompound = var$27;
                }
                $var8.$stackSize = 1;
                var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$16;
                var$18 = Long_lo(Long_shru(var$16, var$6));
                while (true) {
                    var$17 = var$18 % var$11 | 0;
                    if (((var$18 - var$17 | 0) + var$8 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$18 = Long_lo(Long_shru(var$16, var$6));
                }
                $par2TileEntityDispenser.$dispenserContents.data[var$17] = $var8;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $par3)
                break;
            var$12 = $par1ArrayOfWeightedRandomChestContent.data;
            $var6 = 0;
            var$14 = var$12.length;
            $var9 = 0;
            while ($var9 < var$14) {
                $var6 = $var6 + var$12[$var9].$itemWeight | 0;
                $var9 = $var9 + 1 | 0;
            }
            if ($var6 <= 0) {
                $par0Random = new jl_IllegalArgumentException;
                $par0Random.$suppressionEnabled = 1;
                $par0Random.$writableStackTrace = 1;
                $rt_throw($par0Random);
            }
            var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, var$6));
            $var9 = $var6 - 1 | 0;
            if (!($var6 & $var9))
                var$18 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$18 = var$17 % $var6 | 0;
                    if (((var$17 - var$18 | 0) + $var9 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$17 = Long_lo(Long_shru(var$16, var$6));
                }
            $var9 = 0;
            f: {
                while (true) {
                    if ($var9 >= var$14) {
                        var$19 = null;
                        break f;
                    }
                    var$19 = var$12[$var9];
                    var$18 = var$18 - var$19.$itemWeight | 0;
                    if (var$18 < 0)
                        break;
                    $var9 = $var9 + 1 | 0;
                }
            }
            var$14 = var$19.$theMinimumChanceToGenerateItem;
            $var6 = (var$19.$theMaximumChanceToGenerateItem - var$14 | 0) + 1 | 0;
            var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, var$6));
            $var9 = $var6 - 1 | 0;
            if (!($var6 & $var9))
                var$18 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$18 = var$17 % $var6 | 0;
                    if (((var$17 - var$18 | 0) + $var9 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    var$17 = Long_lo(Long_shru(var$16, var$6));
                }
            $var6 = var$14 + var$18 | 0;
            var$20 = var$19.$theItemId;
            nms_Item_$callClinit();
            var$12 = nms_Item_itemsList.data;
            var$18 = var$20.$itemID;
            if (var$12[var$18].$maxStackSize >= $var6) {
                $var7 = new nms_ItemStack;
                $var9 = var$20.$stackSize;
                var$17 = var$20.$itemDamage;
                nms_ItemStack_$callClinit();
                $var7.$itemID = var$18;
                $var7.$stackSize = $var9;
                $var7.$itemDamage = var$17;
                if (var$17 < 0)
                    $var7.$itemDamage = 0;
                var$22 = var$20.$stackTagCompound;
                if (var$22 !== null) {
                    $var8 = new nms_NBTTagCompound;
                    var$24 = var$22.$name;
                    if (var$24 === null)
                        var$24 = $rt_s(3);
                    $var8.$name = var$24;
                    var$24 = new ju_HashMap;
                    $var9 = ju_HashMap_calculateCapacity(16);
                    var$24.$elementCount = 0;
                    var$25 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                    var$12 = var$25.data;
                    var$24.$elementData = var$25;
                    var$24.$loadFactor = 0.75;
                    var$24.$threshold = var$12.length * 0.75 | 0;
                    $var8.$tagMap = var$24;
                    var$19 = var$22.$tagMap;
                    if (var$19.$cachedKeySet === null) {
                        var$24 = new ju_HashMap$1;
                        var$24.$this$0 = var$19;
                        var$19.$cachedKeySet = var$24;
                    }
                    var$26 = var$19.$cachedKeySet.$iterator();
                    while (var$26.$hasNext()) {
                        var$27 = var$26.$next();
                        var$24 = var$22.$tagMap;
                        if (var$27 === null) {
                            var$24 = var$24.$elementData.data[0];
                            while (var$24 !== null && var$24.$key !== null) {
                                var$24 = var$24.$next3;
                            }
                        } else {
                            g: {
                                if (!var$27.$hashCode1) {
                                    $var9 = 0;
                                    while (true) {
                                        if ($var9 >= var$27.$nativeString.length)
                                            break g;
                                        var$27.$hashCode1 = (31 * var$27.$hashCode1 | 0) + var$27.$nativeString.charCodeAt($var9) | 0;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                }
                            }
                            var$17 = var$27.$hashCode1;
                            var$12 = var$24.$elementData.data;
                            var$24 = var$12[var$17 & (var$12.length - 1 | 0)];
                            while (var$24 !== null) {
                                if (var$24.$origKeyHash == var$17) {
                                    h: {
                                        var$19 = var$24.$key;
                                        if (var$27 !== var$19) {
                                            if (var$27 === var$19)
                                                $var9 = 1;
                                            else if (!(var$19 instanceof jl_String))
                                                $var9 = 0;
                                            else {
                                                var$19 = var$19;
                                                $var9 = var$27.$nativeString !== var$19.$nativeString ? 0 : 1;
                                            }
                                            if (!$var9) {
                                                $var9 = 0;
                                                break h;
                                            }
                                        }
                                        $var9 = 1;
                                    }
                                    if ($var9)
                                        break;
                                }
                                var$24 = var$24.$next3;
                            }
                        }
                        var$24 = var$24 === null ? null : var$24.$value0;
                        var$24 = var$24.$copy();
                        var$19 = $var8.$tagMap;
                        if (var$27 !== null)
                            var$24.$name = var$27;
                        else
                            var$24.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$19, var$27, var$24);
                    }
                    $var7.$stackTagCompound = $var8;
                }
                $var7.$stackSize = $var6;
                var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$16;
                $var9 = Long_lo(Long_shru(var$16, var$6));
                while (true) {
                    var$18 = $var9 % var$7 | 0;
                    if ((($var9 - var$18 | 0) + var$8 | 0) >= 0)
                        break;
                    var$16 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$16;
                    $var9 = Long_lo(Long_shru(var$16, var$6));
                }
                $par2TileEntityDispenser.$dispenserContents.data[var$18] = $var7;
                if ($var6 > var$9)
                    $var7.$stackSize = var$10;
                $ptr = 1;
                continue main;
            }
            $var9 = 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0Random, $par1ArrayOfWeightedRandomChestContent, $par2TileEntityDispenser, $par3, $var4, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var6, var$14, $var9, var$16, var$17, var$18, var$19, var$20, $var7, var$22, $var8, var$24, var$25, var$26, var$27, var$28, $ptr);
},
nms_WeightedRandomChestContent_func_92080_a = ($par0ArrayOfWeightedRandomChestContent, $par1ArrayOfWeightedRandomChestContent) => {
    let var$3, $var6, var$5, $var2, $var3, $var4, var$9, $var7;
    var$3 = $par0ArrayOfWeightedRandomChestContent.data;
    $par0ArrayOfWeightedRandomChestContent = $par1ArrayOfWeightedRandomChestContent.data;
    $var6 = var$3.length;
    var$5 = $par0ArrayOfWeightedRandomChestContent.length;
    $var2 = $rt_createArray(nms_WeightedRandomChestContent, $var6 + var$5 | 0);
    $par1ArrayOfWeightedRandomChestContent = $var2.data;
    $var3 = 0;
    $var4 = 0;
    while ($var4 < $var6) {
        var$9 = $var3 + 1 | 0;
        $par1ArrayOfWeightedRandomChestContent[$var3] = var$3[$var4];
        $var4 = $var4 + 1 | 0;
        $var3 = var$9;
    }
    $var6 = 0;
    while ($var6 < var$5) {
        $var7 = $par0ArrayOfWeightedRandomChestContent[$var6];
        var$9 = $var3 + 1 | 0;
        $par1ArrayOfWeightedRandomChestContent[$var3] = $var7;
        $var6 = $var6 + 1 | 0;
        $var3 = var$9;
    }
    return $var2;
};
function otji_JSWrapper() {
    jl_Object.call(this);
    this.$js = null;
}
let otji_JSWrapper_hashCodes = null,
otji_JSWrapper_wrappers = null,
otji_JSWrapper_stringWrappers = null,
otji_JSWrapper_numberWrappers = null,
otji_JSWrapper_undefinedWrapper = null,
otji_JSWrapper_stringFinalizationRegistry = null,
otji_JSWrapper_numberFinalizationRegistry = null,
otji_JSWrapper_$callClinit = () => {
    otji_JSWrapper_$callClinit = $rt_eraseClinit(otji_JSWrapper);
    otji_JSWrapper__clinit_();
},
otji_JSWrapper_wrap = $o => {
    let $jsNumber, $type, $isObject, $existingRef, $existing, $wrapper, $wrapperAsJs;
    otji_JSWrapper_$callClinit();
    if ($o === null)
        return null;
    $jsNumber = $o;
    $type = $rt_str(typeof $jsNumber);
    if ($type === $rt_s(1710))
        $isObject = 1;
    else if (!($rt_s(1710) instanceof jl_String))
        $isObject = 0;
    else {
        $existingRef = $rt_s(1710);
        $isObject = $type.$nativeString !== $existingRef.$nativeString ? 0 : 1;
    }
    a: {
        if (!$isObject) {
            if ($type === $rt_s(1711))
                $isObject = 1;
            else if (!($rt_s(1711) instanceof jl_String))
                $isObject = 0;
            else {
                $existingRef = $rt_s(1711);
                $isObject = $type.$nativeString !== $existingRef.$nativeString ? 0 : 1;
            }
            if (!$isObject) {
                $isObject = 0;
                break a;
            }
        }
        $isObject = 1;
    }
    if ($isObject && $o[$rt_jso_marker] === true)
        return $o;
    $o = otji_JSWrapper_wrappers;
    if ($o !== null) {
        if ($isObject) {
            $existingRef = $o.get($jsNumber);
            $existing = (typeof $existingRef == 'undefined' ? 1 : 0) ? void 0 : $existingRef.deref();
            if (!(typeof $existing == 'undefined' ? 1 : 0))
                return $existing;
            $wrapper = new otji_JSWrapper;
            $wrapper.$js = $jsNumber;
            otji_JSWrapper_wrappers.set($jsNumber, new WeakRef($wrapper));
            return $wrapper;
        }
        if ($type === $rt_s(457))
            $isObject = 1;
        else if (!($rt_s(457) instanceof jl_String))
            $isObject = 0;
        else {
            $o = $rt_s(457);
            $isObject = $type.$nativeString !== $o.$nativeString ? 0 : 1;
        }
        if ($isObject) {
            $existingRef = otji_JSWrapper_stringWrappers.get($jsNumber);
            $existing = (typeof $existingRef == 'undefined' ? 1 : 0) ? void 0 : $existingRef.deref();
            if (!(typeof $existing == 'undefined' ? 1 : 0))
                return $existing;
            $wrapper = new otji_JSWrapper;
            $wrapper.$js = $jsNumber;
            $wrapperAsJs = $wrapper;
            otji_JSWrapper_stringWrappers.set($jsNumber, new WeakRef($wrapperAsJs));
            otji_JSWrapper_register$js_body$_4(otji_JSWrapper_stringFinalizationRegistry, $wrapperAsJs, $jsNumber);
            return $wrapper;
        }
        if ($type === $rt_s(1712))
            $isObject = 1;
        else if (!($rt_s(1712) instanceof jl_String))
            $isObject = 0;
        else {
            $o = $rt_s(1712);
            $isObject = $type.$nativeString !== $o.$nativeString ? 0 : 1;
        }
        if ($isObject) {
            $existingRef = otji_JSWrapper_numberWrappers.get($jsNumber);
            $existing = (typeof $existingRef == 'undefined' ? 1 : 0) ? void 0 : $existingRef.deref();
            if (!(typeof $existing == 'undefined' ? 1 : 0))
                return $existing;
            $wrapper = new otji_JSWrapper;
            $wrapper.$js = $jsNumber;
            $wrapperAsJs = $wrapper;
            otji_JSWrapper_numberWrappers.set($jsNumber, new WeakRef($wrapperAsJs));
            otji_JSWrapper_register$js_body$_4(otji_JSWrapper_numberFinalizationRegistry, $wrapperAsJs, $jsNumber);
            return $wrapper;
        }
        if ($type === $rt_s(1713))
            $isObject = 1;
        else if (!($rt_s(1713) instanceof jl_String))
            $isObject = 0;
        else {
            $o = $rt_s(1713);
            $isObject = $type.$nativeString !== $o.$nativeString ? 0 : 1;
        }
        if ($isObject) {
            $existingRef = otji_JSWrapper_undefinedWrapper;
            $existing = $existingRef === null ? void 0 : $existingRef.deref();
            if (!(typeof $existing == 'undefined' ? 1 : 0))
                return $existing;
            $wrapper = new otji_JSWrapper;
            $wrapper.$js = $jsNumber;
            otji_JSWrapper_undefinedWrapper = new WeakRef($wrapper);
            return $wrapper;
        }
    }
    $o = new otji_JSWrapper;
    $o.$js = $jsNumber;
    return $o;
},
otji_JSWrapper__clinit_ = () => {
    let var$1, var$2;
    otji_JSWrapper_hashCodes = new WeakMap();
    otji_JSWrapper_wrappers = !(typeof WeakRef !== 'undefined' ? 1 : 0) ? null : new WeakMap();
    otji_JSWrapper_stringWrappers = !(typeof WeakRef !== 'undefined' ? 1 : 0) ? null : new Map();
    otji_JSWrapper_numberWrappers = !(typeof WeakRef !== 'undefined' ? 1 : 0) ? null : new Map();
    if (otji_JSWrapper_stringWrappers === null)
        var$1 = null;
    else {
        var$2 = new otji_JSWrapper$_clinit_$lambda$_33_0;
        var$1 = new FinalizationRegistry(otji_JS_function(var$2, "accept"));
    }
    otji_JSWrapper_stringFinalizationRegistry = var$1;
    if (otji_JSWrapper_numberWrappers === null)
        var$1 = null;
    else {
        var$2 = new otji_JSWrapper$_clinit_$lambda$_33_1;
        var$1 = new FinalizationRegistry(otji_JS_function(var$2, "accept"));
    }
    otji_JSWrapper_numberFinalizationRegistry = var$1;
},
otji_JSWrapper_register$js_body$_4 = (var$1, var$2, var$3) => {
    return var$1.register(var$2, var$3);
};
function ju_Formatter$FormatWriter() {
    let a = this; jl_Object.call(a);
    a.$formatter = null;
    a.$out4 = null;
    a.$locale5 = null;
    a.$format3 = null;
    a.$args = null;
    a.$index5 = 0;
    a.$formatSpecifierStart = 0;
    a.$defaultArgumentIndex = 0;
    a.$argumentIndex = 0;
    a.$previousArgumentIndex = 0;
    a.$width0 = 0;
    a.$precision0 = 0;
    a.$flags0 = 0;
}
let ju_Formatter$FormatWriter__init_0 = ($this, var$1, var$2, var$3, $format, $args) => {
    $this.$formatter = var$1;
    $this.$out4 = var$2;
    $this.$locale5 = var$3;
    $this.$format3 = $format;
    $this.$args = $args;
},
ju_Formatter$FormatWriter__init_ = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new ju_Formatter$FormatWriter();
    ju_Formatter$FormatWriter__init_0(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
ju_Formatter$FormatWriter_write = $this => {
    let $next, var$2, var$3, var$4, $specifier, var$6;
    while (true) {
        $next = jl_String_indexOf($this.$format3, 37, $this.$index5);
        if ($next < 0)
            break;
        var$2 = $this.$out4;
        var$3 = jl_String_substring($this.$format3, $this.$index5, $next);
        var$4 = var$3.$nativeString.length;
        jl_AbstractStringBuilder_insert1(var$2, var$2.$length0, var$3, 0, var$4);
        $next = $next + 1 | 0;
        $this.$index5 = $next;
        $this.$formatSpecifierStart = $next;
        $specifier = ju_Formatter$FormatWriter_parseFormatSpecifier($this);
        ju_Formatter$FormatWriter_configureFormat($this);
        ju_Formatter$FormatWriter_formatValue($this, $specifier);
    }
    var$2 = $this.$out4;
    var$3 = $this.$format3;
    var$3 = jl_String_substring(var$3, $this.$index5, var$3.$nativeString.length);
    var$6 = var$3.$nativeString.length;
    jl_AbstractStringBuilder_insert1(var$2, var$2.$length0, var$3, 0, var$6);
},
ju_Formatter$FormatWriter_formatValue = ($this, $specifier) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    a: {
        b: {
            switch ($specifier) {
                case 66:
                    var$2 = $this.$flags0;
                    if ((var$2 | 263) == 263) {
                        var$3 = $this.$args.data[$this.$argumentIndex];
                        ju_Formatter$FormatWriter_formatGivenString($this, 1, !(var$3 instanceof jl_Boolean ? var$3.$booleanValue() : var$3 === null ? 0 : 1) ? $rt_s(897) : $rt_s(898));
                        break a;
                    }
                    var$3 = new ju_FormatFlagsConversionMismatchException;
                    var$4 = jl_Integer_numberOfTrailingZeros(var$2 & (-264));
                    if (var$4 >= 0 && var$4 < $rt_s(1714).$nativeString.length) {
                        var$5 = $rt_s(1714).$nativeString.charCodeAt(var$4);
                        var$6 = new jl_String;
                        var$7 = $rt_createCharArray(1);
                        var$8 = var$7.data;
                        var$8[0] = var$5;
                        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
                        var$9 = new jl_StringBuilder;
                        var$9.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1715));
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, var$6);
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1716));
                        var$4 = var$9.$length0;
                        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
                        var$7 = var$9.$buffer;
                        var$8 = var$7.data;
                        var$8[var$4] = $specifier;
                        var$10 = new jl_String;
                        var$5 = var$9.$length0;
                        var$2 = var$8.length;
                        if (var$5 >= 0 && var$5 <= (var$2 - 0 | 0)) {
                            var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$5);
                            jl_Throwable__init_0(var$3, var$10);
                            var$3.$flags3 = var$6;
                            var$3.$conversion = $specifier;
                            $rt_throw(var$3);
                        }
                        var$3 = new jl_IndexOutOfBoundsException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                case 67:
                    break;
                case 68:
                    ju_Formatter$FormatWriter_formatDecimalInt($this, $specifier, 1);
                    break a;
                case 69:
                case 70:
                case 71:
                case 73:
                case 74:
                case 75:
                case 76:
                case 77:
                case 78:
                case 80:
                case 81:
                case 82:
                case 84:
                case 85:
                case 86:
                case 87:
                case 89:
                case 90:
                case 91:
                case 92:
                case 93:
                case 94:
                case 95:
                case 96:
                case 97:
                case 101:
                case 103:
                case 105:
                case 106:
                case 107:
                case 108:
                case 109:
                case 110:
                case 112:
                case 113:
                case 114:
                case 116:
                case 117:
                case 118:
                case 119:
                    break b;
                case 72:
                    var$2 = $this.$flags0;
                    if ((var$2 | 263) == 263) {
                        var$3 = $this.$args.data[$this.$argumentIndex];
                        ju_Formatter$FormatWriter_formatGivenString($this, 1, var$3 === null ? $rt_s(1) : otci_IntegerUtil_toUnsignedLogRadixString(var$3.$hashCode(), 4));
                        break a;
                    }
                    var$3 = new ju_FormatFlagsConversionMismatchException;
                    var$4 = jl_Integer_numberOfTrailingZeros(var$2 & (-264));
                    if (var$4 >= 0 && var$4 < $rt_s(1714).$nativeString.length) {
                        var$5 = $rt_s(1714).$nativeString.charCodeAt(var$4);
                        var$6 = new jl_String;
                        var$7 = $rt_createCharArray(1);
                        var$8 = var$7.data;
                        var$8[0] = var$5;
                        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
                        var$9 = new jl_StringBuilder;
                        var$9.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1715));
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, var$6);
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1716));
                        var$4 = var$9.$length0;
                        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
                        var$7 = var$9.$buffer;
                        var$8 = var$7.data;
                        var$8[var$4] = $specifier;
                        var$10 = new jl_String;
                        var$5 = var$9.$length0;
                        var$2 = var$8.length;
                        if (var$5 >= 0 && var$5 <= (var$2 - 0 | 0)) {
                            var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$5);
                            jl_Throwable__init_0(var$3, var$10);
                            var$3.$flags3 = var$6;
                            var$3.$conversion = $specifier;
                            $rt_throw(var$3);
                        }
                        var$3 = new jl_IndexOutOfBoundsException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                case 79:
                    ju_Formatter$FormatWriter_formatRadixInt($this, $specifier, 3, 1);
                    break a;
                case 83:
                    ju_Formatter$FormatWriter_formatString($this, $specifier, 1);
                    break a;
                case 88:
                    ju_Formatter$FormatWriter_formatRadixInt($this, $specifier, 4, 1);
                    break a;
                case 98:
                    var$2 = $this.$flags0;
                    if ((var$2 | 263) != 263) {
                        var$3 = new ju_FormatFlagsConversionMismatchException;
                        var$4 = jl_Integer_numberOfTrailingZeros(var$2 & (-264));
                        if (var$4 >= 0 && var$4 < $rt_s(1714).$nativeString.length) {
                            var$5 = $rt_s(1714).$nativeString.charCodeAt(var$4);
                            var$6 = new jl_String;
                            var$7 = $rt_createCharArray(1);
                            var$8 = var$7.data;
                            var$8[0] = var$5;
                            var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
                            var$9 = new jl_StringBuilder;
                            var$9.$buffer = $rt_createCharArray(16);
                            jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1715));
                            jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, var$6);
                            jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1716));
                            var$4 = var$9.$length0;
                            jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
                            var$7 = var$9.$buffer;
                            var$8 = var$7.data;
                            var$8[var$4] = $specifier;
                            var$10 = new jl_String;
                            var$5 = var$9.$length0;
                            var$2 = var$8.length;
                            if (var$5 >= 0 && var$5 <= (var$2 - 0 | 0)) {
                                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$5);
                                jl_Throwable__init_0(var$3, var$10);
                                var$3.$flags3 = var$6;
                                var$3.$conversion = $specifier;
                                $rt_throw(var$3);
                            }
                            var$3 = new jl_IndexOutOfBoundsException;
                            var$3.$suppressionEnabled = 1;
                            var$3.$writableStackTrace = 1;
                            $rt_throw(var$3);
                        }
                        var$3 = new jl_StringIndexOutOfBoundsException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    var$3 = $this.$args.data[$this.$argumentIndex];
                    ju_Formatter$FormatWriter_formatGivenString($this, 0, !(var$3 instanceof jl_Boolean ? var$3.$booleanValue() : var$3 === null ? 0 : 1) ? $rt_s(897) : $rt_s(898));
                    break a;
                case 99:
                    ju_Formatter$FormatWriter_formatChar($this, $specifier, 0);
                    break a;
                case 100:
                    ju_Formatter$FormatWriter_formatDecimalInt($this, $specifier, 0);
                    break a;
                case 102:
                    ju_Formatter$FormatWriter_formatFloat($this, $specifier, 0);
                    break a;
                case 104:
                    var$2 = $this.$flags0;
                    if ((var$2 | 263) == 263) {
                        var$3 = $this.$args.data[$this.$argumentIndex];
                        ju_Formatter$FormatWriter_formatGivenString($this, 0, var$3 === null ? $rt_s(1) : otci_IntegerUtil_toUnsignedLogRadixString(var$3.$hashCode(), 4));
                        break a;
                    }
                    var$3 = new ju_FormatFlagsConversionMismatchException;
                    var$4 = jl_Integer_numberOfTrailingZeros(var$2 & (-264));
                    if (var$4 >= 0 && var$4 < $rt_s(1714).$nativeString.length) {
                        var$5 = $rt_s(1714).$nativeString.charCodeAt(var$4);
                        var$6 = new jl_String;
                        var$7 = $rt_createCharArray(1);
                        var$8 = var$7.data;
                        var$8[0] = var$5;
                        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
                        var$9 = new jl_StringBuilder;
                        var$9.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1715));
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, var$6);
                        jl_AbstractStringBuilder_insert3(var$9, var$9.$length0, $rt_s(1716));
                        var$4 = var$9.$length0;
                        jl_AbstractStringBuilder_insertSpace(var$9, var$4, var$4 + 1 | 0);
                        var$7 = var$9.$buffer;
                        var$8 = var$7.data;
                        var$8[var$4] = $specifier;
                        var$10 = new jl_String;
                        var$5 = var$9.$length0;
                        var$2 = var$8.length;
                        if (var$5 >= 0 && var$5 <= (var$2 - 0 | 0)) {
                            var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$5);
                            jl_Throwable__init_0(var$3, var$10);
                            var$3.$flags3 = var$6;
                            var$3.$conversion = $specifier;
                            $rt_throw(var$3);
                        }
                        var$3 = new jl_IndexOutOfBoundsException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    var$3 = new jl_StringIndexOutOfBoundsException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                case 111:
                    ju_Formatter$FormatWriter_formatRadixInt($this, $specifier, 3, 0);
                    break a;
                case 115:
                    ju_Formatter$FormatWriter_formatString($this, $specifier, 0);
                    break a;
                case 120:
                    ju_Formatter$FormatWriter_formatRadixInt($this, $specifier, 4, 0);
                    break a;
                default:
                    break b;
            }
            ju_Formatter$FormatWriter_formatChar($this, $specifier, 1);
            break a;
        }
        var$3 = new ju_UnknownFormatConversionException;
        var$6 = new jl_String;
        var$7 = $rt_createCharArray(1);
        var$8 = var$7.data;
        var$8[0] = $specifier;
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1717));
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, var$6);
        var$10 = new jl_String;
        var$7 = var$9.$buffer;
        var$8 = var$7.data;
        var$4 = var$9.$length0;
        var$5 = var$8.length;
        if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0)) {
            var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$4);
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = var$10;
            var$3.$conversion1 = var$6;
            $rt_throw(var$3);
        }
        var$3 = new jl_IndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
},
ju_Formatter$FormatWriter_formatFloat = ($this, $specifier, $upperCase) => {
    let $decimalSize, $arg, $negative, var$6, var$7, var$8, $format, var$10, var$11, var$12, var$13, var$14, var$15, $$je;
    $decimalSize = $this.$flags0;
    if (($decimalSize | 507) != 507) {
        $arg = new ju_FormatFlagsConversionMismatchException;
        $upperCase = jl_Integer_numberOfTrailingZeros($decimalSize & (-508));
        if ($upperCase >= 0 && $upperCase < $rt_s(1714).$nativeString.length) {
            $negative = $rt_s(1714).$nativeString.charCodeAt($upperCase);
            var$6 = new jl_String;
            var$7 = $rt_createCharArray(1);
            var$8 = var$7.data;
            var$8[0] = $negative;
            var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
            $format = new jl_StringBuilder;
            $format.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($format, $format.$length0, $rt_s(1715));
            jl_AbstractStringBuilder_insert($format, $format.$length0, var$6);
            jl_AbstractStringBuilder_insert($format, $format.$length0, $rt_s(1716));
            $upperCase = $format.$length0;
            jl_AbstractStringBuilder_insertSpace($format, $upperCase, $upperCase + 1 | 0);
            var$7 = $format.$buffer;
            var$8 = var$7.data;
            var$8[$upperCase] = $specifier;
            var$10 = new jl_String;
            $negative = $format.$length0;
            $decimalSize = var$8.length;
            if ($negative >= 0 && $negative <= ($decimalSize - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $negative);
                $arg.$suppressionEnabled = 1;
                $arg.$writableStackTrace = 1;
                $arg.$message = var$10;
                $arg.$flags3 = var$6;
                $arg.$conversion = $specifier;
                $rt_throw($arg);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $arg = new jl_StringIndexOutOfBoundsException;
        $arg.$suppressionEnabled = 1;
        $arg.$writableStackTrace = 1;
        $rt_throw($arg);
    }
    ju_Formatter$FormatWriter_verifyFloatFlags($this);
    if ($this.$precision0 == (-1))
        $this.$precision0 = 6;
    $arg = $this.$args.data[$this.$argumentIndex];
    if ($arg instanceof jl_Double)
        $negative = $arg.$value8 >= 0.0 ? 0 : 1;
    else if ($arg instanceof jl_Float)
        $negative = $arg.$value3 >= 0.0 ? 0 : 1;
    else {
        if (!($arg instanceof jm_BigDecimal)) {
            $format = new ju_IllegalFormatConversionException;
            if ($arg === null)
                $arg = null;
            else {
                var$10 = $arg.constructor;
                if (var$10 === null)
                    $arg = null;
                else {
                    $arg = var$10.classObject;
                    if ($arg === null) {
                        $arg = new jl_Class;
                        $arg.$platformClass = var$10;
                        var$10.classObject = $arg;
                    }
                }
            }
            var$10 = new jl_StringBuilder;
            var$10.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1718));
            $upperCase = var$10.$length0;
            if ($arg === null)
                var$6 = $rt_s(1);
            else {
                var$6 = (!($arg.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !otp_Platform_isPrimitive($arg.$platformClass) ? $rt_s(100) : $rt_s(3);
                if ($arg.$name1 === null)
                    $arg.$name1 = otp_Platform_getName($arg.$platformClass);
                var$11 = $arg.$name1;
                var$12 = new jl_StringBuilder;
                var$12.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_append1(var$12, var$6);
                jl_AbstractStringBuilder_append1(var$12, var$11);
                var$6 = new jl_String;
                var$7 = var$12.$buffer;
                var$8 = var$7.data;
                $decimalSize = var$12.$length0;
                var$13 = var$8.length;
                if ($decimalSize >= 0 && $decimalSize <= (var$13 - 0 | 0))
                    var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $decimalSize);
                else {
                    $arg = new jl_IndexOutOfBoundsException;
                    $arg.$suppressionEnabled = 1;
                    $arg.$writableStackTrace = 1;
                    $rt_throw($arg);
                }
            }
            jl_AbstractStringBuilder_insert(var$10, $upperCase, var$6);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1719));
            $upperCase = var$10.$length0;
            jl_AbstractStringBuilder_insertSpace(var$10, $upperCase, $upperCase + 1 | 0);
            var$10.$buffer.data[$upperCase] = $specifier;
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1720));
            var$6 = new jl_String;
            var$7 = var$10.$buffer;
            var$8 = var$7.data;
            $negative = var$10.$length0;
            $decimalSize = var$8.length;
            if ($negative >= 0 && $negative <= ($decimalSize - 0 | 0)) {
                var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $negative);
                $format.$suppressionEnabled = 1;
                $format.$writableStackTrace = 1;
                $format.$message = var$6;
                $format.$conversion0 = $specifier;
                $format.$argumentClass = $arg;
                $rt_throw($format);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $negative = $arg.$signum() >= 0 ? 0 : 1;
    }
    $format = jt_DecimalFormat__init_1();
    var$10 = new jt_DecimalFormatSymbols;
    var$10.$locale1 = $this.$locale5;
    jt_DecimalFormatSymbols_initData(var$10);
    a: {
        try {
            var$10 = jl_Object_clone(var$10);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
                $format = $$je;
            } else {
                throw $$e;
            }
        }
        var$10 = new jl_AssertionError;
        var$10.$suppressionEnabled = 1;
        var$10.$writableStackTrace = 1;
        var$10.$message = $rt_s(1473);
        var$10.$cause = $format;
        $rt_throw(var$10);
    }
    $format.$symbols = var$10;
    if ($this.$width0 != (-1)) {
        $decimalSize = ju_Formatter$FormatWriter_predictDecimalSize($this, $negative, $format);
        $specifier = $decimalSize >= 0 ? $decimalSize : 0;
        $format.$maximumIntegerDigits = $specifier;
        if ($specifier < $format.$minimumIntegerDigits)
            $format.$minimumIntegerDigits = $specifier;
        if ($this.$flags0 & 32) {
            if ($decimalSize < 0)
                $decimalSize = 0;
            $format.$minimumIntegerDigits = $decimalSize;
            if ($specifier < $decimalSize)
                $format.$maximumIntegerDigits = $decimalSize;
        }
    }
    $decimalSize = $this.$precision0;
    $specifier = $decimalSize >= 0 ? $decimalSize : 0;
    $format.$maximumFractionDigits = $specifier;
    if ($specifier < $format.$minimumFractionDigits)
        $format.$minimumFractionDigits = $specifier;
    if ($decimalSize < 0)
        $decimalSize = 0;
    $format.$minimumFractionDigits = $decimalSize;
    if ($specifier < $decimalSize)
        $format.$maximumFractionDigits = $decimalSize;
    $specifier = $this.$flags0;
    $format.$groupingUsed = !($specifier & 64) ? 0 : 1;
    if ($specifier & 128) {
        var$7 = $rt_createArray(jt_DecimalFormat$FormatField, 1);
        var$8 = var$7.data;
        var$10 = new jt_DecimalFormat$TextField;
        var$10.$text = $rt_s(1721);
        var$8[0] = var$10;
        $format.$negativePrefix = var$7;
        var$7 = $rt_createArray(jt_DecimalFormat$FormatField, 1);
        var$8 = var$7.data;
        var$6 = new jt_DecimalFormat$TextField;
        var$6.$text = $rt_s(391);
        var$8[0] = var$6;
        $format.$negativeSuffix = var$7;
    }
    if ($specifier & 8) {
        var$7 = $rt_createArray(jt_DecimalFormat$FormatField, 1);
        var$8 = var$7.data;
        var$6 = new jt_DecimalFormat$TextField;
        var$6.$text = $rt_s(1722);
        var$8[0] = var$6;
        $format.$positivePrefix = var$7;
    } else if ($specifier & 16) {
        var$7 = $rt_createArray(jt_DecimalFormat$FormatField, 1);
        var$8 = var$7.data;
        var$6 = new jt_DecimalFormat$TextField;
        var$6.$text = $rt_s(260);
        var$8[0] = var$6;
        $format.$positivePrefix = var$7;
    }
    var$10 = new jl_StringBuffer;
    var$10.$buffer = $rt_createCharArray(16);
    var$6 = new jt_FieldPosition;
    var$6.$myField = 0;
    if ($arg instanceof jm_BigDecimal) {
        $arg = $arg;
        if ($format.$exponentDigits <= 0)
            jt_DecimalFormat_formatRegular($format, $arg, var$10);
        else
            jt_DecimalFormat_formatExponent($format, $arg, var$10);
    } else if ($arg instanceof jm_BigInteger) {
        $arg = $arg;
        var$6 = new jm_BigDecimal;
        jm_BigDecimal_$callClinit();
        if ($arg === null) {
            $arg = new jl_NullPointerException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        var$6.$scale = 0;
        var$6.$intVal = $arg;
        $negative = jm_BitLevel_bitLength($arg);
        var$6.$bitLength0 = $negative;
        if ($negative < 64)
            var$6.$smallValue = jm_BigInteger_longValue($arg);
        if ($format.$exponentDigits <= 0)
            jt_DecimalFormat_formatRegular($format, var$6, var$10);
        else
            jt_DecimalFormat_formatExponent($format, var$6, var$10);
    } else {
        if (!($arg instanceof jl_Number)) {
            $arg = new jl_IllegalArgumentException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $arg = $arg;
        var$14 = $arg.$doubleValue();
        var$15 = $arg.$longValue();
        if (var$14 !== Long_toNumber(var$15))
            var$10 = jt_DecimalFormat_format($format, var$14, var$10, var$6);
        else if ($format.$exponentDigits <= 0) {
            $negative = Long_compare(var$15, Long_ZERO);
            if ($negative < 0)
                var$15 = Long_neg(var$15);
            jt_DecimalFormat_formatRegular0($format, var$15, jt_DecimalFormat_fastLn10($format, var$15), $negative < 0 ? 0 : 1, var$10);
        } else {
            $negative = Long_compare(var$15, Long_ZERO);
            if ($negative < 0)
                var$15 = Long_neg(var$15);
            jt_DecimalFormat_formatExponent0($format, var$15, jt_DecimalFormat_fastLn10($format, var$15), $negative < 0 ? 0 : 1, var$10);
        }
    }
    $arg = new jl_String;
    var$7 = var$10.$buffer;
    var$8 = var$7.data;
    $negative = var$10.$length0;
    $decimalSize = var$8.length;
    if ($negative >= 0 && $negative <= ($decimalSize - 0 | 0)) {
        $arg.$nativeString = $rt_charArrayToString(var$7.data, 0, $negative);
        $this.$precision0 = (-1);
        ju_Formatter$FormatWriter_formatGivenString($this, $upperCase, $arg);
        return;
    }
    $arg = new jl_IndexOutOfBoundsException;
    $arg.$suppressionEnabled = 1;
    $arg.$writableStackTrace = 1;
    $rt_throw($arg);
},
ju_Formatter$FormatWriter_predictDecimalSize = ($this, $negative, $format) => {
    let $decimalSize, var$4;
    $decimalSize = $this.$width0;
    var$4 = $this.$precision0;
    if (var$4 > 0)
        $decimalSize = $decimalSize - (var$4 + 1 | 0) | 0;
    if (!$negative) {
        if ($this.$flags0 & 24)
            $decimalSize = $decimalSize + (-1) | 0;
    } else
        $decimalSize = !($this.$flags0 & 128) ? $decimalSize + (-1) | 0 : $decimalSize + (-2) | 0;
    if ($this.$flags0 & 64)
        $decimalSize = $decimalSize - ($decimalSize / ($format.$groupingSize + 1 | 0) | 0) | 0;
    return $decimalSize;
},
ju_Formatter$FormatWriter_verifyFloatFlags = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$flags0;
    if (var$1 & 8 && var$1 & 16) {
        var$2 = new ju_IllegalFormatFlagsException;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1723));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1724));
        var$4 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$1 = var$3.$length0;
        var$7 = var$6.length;
        if (var$1 >= 0 && var$1 <= (var$7 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$4;
            var$2.$flags4 = $rt_s(1724);
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if (var$1 & 32 && var$1 & 1) {
        var$2 = new ju_IllegalFormatFlagsException;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1723));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1725));
        var$4 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$1 = var$3.$length0;
        var$7 = var$6.length;
        if (var$1 >= 0 && var$1 <= (var$7 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$4;
            var$2.$flags4 = $rt_s(1725);
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if (var$1 & 1 && $this.$width0 < 0) {
        var$2 = new ju_MissingFormatWidthException;
        var$8 = jl_String_substring($this.$format3, $this.$formatSpecifierStart, $this.$index5);
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1726));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$8 === null ? $rt_s(1) : var$8);
        var$4 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$1 = var$3.$length0;
        var$7 = var$6.length;
        if (var$1 >= 0 && var$1 <= (var$7 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$4;
            var$2.$formatSpecifier = var$8;
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
},
ju_Formatter$FormatWriter_formatString = ($this, $specifier, $upperCase) => {
    let var$3, $arg, $flagsToPass, var$6, var$7, var$8, var$9, var$10;
    var$3 = $this.$flags0;
    if ((var$3 | 263) == 263) {
        $arg = $this.$args.data[$this.$argumentIndex];
        if (!$rt_isInstance($arg, ju_Formattable))
            ju_Formatter$FormatWriter_formatGivenString($this, $upperCase, $arg === null ? $rt_s(1) : $arg.$toString());
        else {
            $flagsToPass = var$3 & 7;
            if ($upperCase)
                $flagsToPass = $flagsToPass | 2;
            $arg.$formatTo($this.$formatter, $flagsToPass, $this.$width0, $this.$precision0);
        }
        return;
    }
    $arg = new ju_FormatFlagsConversionMismatchException;
    $upperCase = jl_Integer_numberOfTrailingZeros(var$3 & (-264));
    if ($upperCase >= 0 && $upperCase < $rt_s(1714).$nativeString.length) {
        $flagsToPass = $rt_s(1714).$nativeString.charCodeAt($upperCase);
        var$6 = new jl_String;
        var$7 = $rt_createCharArray(1);
        var$8 = var$7.data;
        var$8[0] = $flagsToPass;
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert(var$9, var$9.$length0, jl_String_toString($rt_s(1715)));
        jl_StringBuilder_insert(var$9, var$9.$length0, jl_String_toString(var$6));
        jl_StringBuilder_insert(var$9, var$9.$length0, jl_String_toString($rt_s(1716)));
        $upperCase = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, $upperCase, $upperCase + 1 | 0);
        var$7 = var$9.$buffer;
        var$8 = var$7.data;
        var$8[$upperCase] = $specifier;
        var$10 = new jl_String;
        $flagsToPass = var$9.$length0;
        var$3 = var$8.length;
        if ($flagsToPass >= 0 && $flagsToPass <= (var$3 - 0 | 0)) {
            var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $flagsToPass);
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($arg);
            $arg.$message = var$10;
            $arg.$flags3 = var$6;
            $arg.$conversion = $specifier;
            $rt_throw($arg);
        }
        $arg = new jl_IndexOutOfBoundsException;
        $arg.$suppressionEnabled = 1;
        $arg.$writableStackTrace = 1;
        $rt_throw($arg);
    }
    $arg = new jl_StringIndexOutOfBoundsException;
    $arg.$suppressionEnabled = 1;
    $arg.$writableStackTrace = 1;
    $rt_throw($arg);
},
ju_Formatter$FormatWriter_formatChar = ($this, $specifier, $upperCase) => {
    let var$3, $arg, $c, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$3 = $this.$flags0;
    if ((var$3 | 259) != 259) {
        $arg = new ju_FormatFlagsConversionMismatchException;
        $upperCase = jl_Integer_numberOfTrailingZeros(var$3 & (-260));
        if ($upperCase >= 0 && $upperCase < $rt_s(1714).$nativeString.length) {
            $c = $rt_s(1714).$nativeString.charCodeAt($upperCase);
            var$6 = new jl_String;
            var$7 = $rt_createCharArray(1);
            var$8 = var$7.data;
            var$8[0] = $c;
            var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
            var$9 = new jl_StringBuilder;
            var$9.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1715));
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, var$6);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1716));
            $upperCase = var$9.$length0;
            jl_AbstractStringBuilder_insertSpace(var$9, $upperCase, $upperCase + 1 | 0);
            var$7 = var$9.$buffer;
            var$8 = var$7.data;
            var$8[$upperCase] = $specifier;
            var$10 = new jl_String;
            $c = var$9.$length0;
            var$3 = var$8.length;
            if ($c >= 0 && $c <= (var$3 - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $c);
                $arg.$suppressionEnabled = 1;
                $arg.$writableStackTrace = 1;
                $arg.$message = var$10;
                $arg.$flags3 = var$6;
                $arg.$conversion = $specifier;
                $rt_throw($arg);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $arg = new jl_StringIndexOutOfBoundsException;
        $arg.$suppressionEnabled = 1;
        $arg.$writableStackTrace = 1;
        $rt_throw($arg);
    }
    $arg = $this.$args.data[$this.$argumentIndex];
    $c = $this.$precision0;
    if ($c >= 0) {
        $arg = new ju_IllegalFormatPrecisionException;
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1727));
        jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $c, 10);
        var$10 = new jl_String;
        var$7 = var$9.$buffer;
        var$8 = var$7.data;
        $upperCase = var$9.$length0;
        var$3 = var$8.length;
        if ($upperCase >= 0 && $upperCase <= (var$3 - 0 | 0)) {
            var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $upperCase);
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $arg.$message = var$10;
            $arg.$precision2 = $c;
            $rt_throw($arg);
        }
        $arg = new jl_IndexOutOfBoundsException;
        $arg.$suppressionEnabled = 1;
        $arg.$writableStackTrace = 1;
        $rt_throw($arg);
    }
    if ($arg instanceof jl_Character)
        $c = $arg.$charValue();
    else if ($arg instanceof jl_Byte)
        $c = $arg.$byteValue() & 65535;
    else if ($arg instanceof jl_Short)
        $c = $arg.$shortValue() & 65535;
    else {
        if (!($arg instanceof jl_Integer)) {
            if ($arg === null) {
                ju_Formatter$FormatWriter_formatGivenString($this, $upperCase, $rt_s(1));
                return;
            }
            var$9 = new ju_IllegalFormatConversionException;
            var$10 = $arg.constructor;
            if (var$10 === null)
                var$6 = null;
            else {
                var$6 = var$10.classObject;
                if (var$6 === null) {
                    var$6 = new jl_Class;
                    var$6.$platformClass = var$10;
                    var$10.classObject = var$6;
                }
            }
            $arg = new jl_StringBuilder;
            $arg.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($arg, $arg.$length0, $rt_s(1718));
            $upperCase = $arg.$length0;
            if (var$6 === null)
                var$10 = $rt_s(1);
            else {
                var$10 = (!(var$6.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !otp_Platform_isPrimitive(var$6.$platformClass) ? $rt_s(100) : $rt_s(3);
                if (var$6.$name1 === null)
                    var$6.$name1 = otp_Platform_getName(var$6.$platformClass);
                var$11 = var$6.$name1;
                var$12 = new jl_StringBuilder;
                var$12.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_append1(var$12, var$10);
                jl_AbstractStringBuilder_append1(var$12, var$11);
                var$10 = new jl_String;
                var$7 = var$12.$buffer;
                var$8 = var$7.data;
                var$3 = var$12.$length0;
                var$13 = var$8.length;
                if (var$3 >= 0 && var$3 <= (var$13 - 0 | 0))
                    var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, var$3);
                else {
                    $arg = new jl_IndexOutOfBoundsException;
                    $arg.$suppressionEnabled = 1;
                    $arg.$writableStackTrace = 1;
                    $rt_throw($arg);
                }
            }
            jl_AbstractStringBuilder_insert($arg, $upperCase, var$10);
            jl_AbstractStringBuilder_insert($arg, $arg.$length0, $rt_s(1719));
            $upperCase = $arg.$length0;
            jl_AbstractStringBuilder_insertSpace($arg, $upperCase, $upperCase + 1 | 0);
            $arg.$buffer.data[$upperCase] = $specifier;
            jl_AbstractStringBuilder_insert($arg, $arg.$length0, $rt_s(1720));
            var$10 = new jl_String;
            var$7 = $arg.$buffer;
            var$8 = var$7.data;
            $c = $arg.$length0;
            var$3 = var$8.length;
            if ($c >= 0 && $c <= (var$3 - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $c);
                var$9.$suppressionEnabled = 1;
                var$9.$writableStackTrace = 1;
                var$9.$message = var$10;
                var$9.$conversion0 = $specifier;
                var$9.$argumentClass = var$6;
                $rt_throw(var$9);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $c = $arg.$value;
        if (!($c >= 0 && $c <= 1114111 ? 1 : 0)) {
            $arg = new ju_IllegalFormatCodePointException;
            var$9 = new jl_StringBuilder;
            var$9.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1728));
            jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $c, 10);
            jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1729));
            var$10 = new jl_String;
            var$7 = var$9.$buffer;
            var$8 = var$7.data;
            $upperCase = var$9.$length0;
            var$3 = var$8.length;
            if ($upperCase >= 0 && $upperCase <= (var$3 - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $upperCase);
                $arg.$suppressionEnabled = 1;
                $arg.$writableStackTrace = 1;
                $arg.$message = var$10;
                $arg.$codePoint = $c;
                $rt_throw($arg);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
    }
    $arg = new jl_String;
    var$7 = jl_Character_toChars($c);
    $arg.$nativeString = $rt_charArrayToString(var$7.data, 0, var$7.data.length);
    ju_Formatter$FormatWriter_formatGivenString($this, $upperCase, $arg);
},
ju_Formatter$FormatWriter_formatDecimalInt = ($this, $specifier, $upperCase) => {
    let $negative, $arg, $value, var$6, var$7, var$8, $str, var$10, $value_0, $i, var$13, var$14, $additionalSymbols, $sb, $valueSb, $separator, var$19, $size, $prev, $i_0;
    $negative = $this.$flags0;
    if (($negative | 507) != 507) {
        $arg = new ju_FormatFlagsConversionMismatchException;
        $upperCase = jl_Integer_numberOfTrailingZeros($negative & (-508));
        if ($upperCase >= 0 && $upperCase < $rt_s(1714).$nativeString.length) {
            $value = $rt_s(1714).$nativeString.charCodeAt($upperCase);
            var$6 = new jl_String;
            var$7 = $rt_createCharArray(1);
            var$8 = var$7.data;
            var$8[0] = $value;
            var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
            $str = new jl_StringBuilder;
            $str.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($str, $str.$length0, $rt_s(1715));
            jl_AbstractStringBuilder_insert($str, $str.$length0, var$6);
            jl_AbstractStringBuilder_insert($str, $str.$length0, $rt_s(1716));
            $upperCase = $str.$length0;
            jl_AbstractStringBuilder_insertSpace($str, $upperCase, $upperCase + 1 | 0);
            var$7 = $str.$buffer;
            var$8 = var$7.data;
            var$8[$upperCase] = $specifier;
            var$10 = new jl_String;
            $value = $str.$length0;
            $negative = var$8.length;
            if ($value >= 0 && $value <= ($negative - 0 | 0)) {
                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $value);
                $arg.$suppressionEnabled = 1;
                $arg.$writableStackTrace = 1;
                $arg.$message = var$10;
                $arg.$flags3 = var$6;
                $arg.$conversion = $specifier;
                $rt_throw($arg);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $arg = new jl_StringIndexOutOfBoundsException;
        $arg.$suppressionEnabled = 1;
        $arg.$writableStackTrace = 1;
        $rt_throw($arg);
    }
    a: {
        ju_Formatter$FormatWriter_verifyIntFlags($this);
        $arg = $this.$args.data[$this.$argumentIndex];
        if ($arg instanceof jl_Long) {
            $value_0 = $arg.$value7;
            $i = Long_compare($value_0, Long_ZERO);
            if ($i < 0)
                $value_0 = Long_neg($value_0);
            $arg = new jl_StringBuilder;
            $arg.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert4($arg, $arg.$length0, $value_0, 10);
            $str = new jl_String;
            var$7 = $arg.$buffer;
            var$8 = var$7.data;
            $value = $arg.$length0;
            $negative = var$8.length;
            if ($value >= 0 && $value <= ($negative - 0 | 0)) {
                $str.$nativeString = $rt_charArrayToString(var$7.data, 0, $value);
                $negative = $i >= 0 ? 0 : 1;
                break a;
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        if (!($arg instanceof jl_Integer) && !($arg instanceof jl_Byte) && !($arg instanceof jl_Short)) {
            $str = new ju_IllegalFormatConversionException;
            if ($arg === null)
                $arg = null;
            else {
                var$10 = $arg.constructor;
                if (var$10 === null)
                    $arg = null;
                else {
                    $arg = var$10.classObject;
                    if ($arg === null) {
                        $arg = new jl_Class;
                        $arg.$platformClass = var$10;
                        var$10.classObject = $arg;
                    }
                }
            }
            var$10 = new jl_StringBuilder;
            var$10.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1718));
            $upperCase = var$10.$length0;
            if ($arg === null)
                var$6 = $rt_s(1);
            else {
                var$6 = (!($arg.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !otp_Platform_isPrimitive($arg.$platformClass) ? $rt_s(100) : $rt_s(3);
                if ($arg.$name1 === null)
                    $arg.$name1 = otp_Platform_getName($arg.$platformClass);
                var$13 = $arg.$name1;
                var$14 = new jl_StringBuilder;
                var$14.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_append1(var$14, var$6);
                jl_AbstractStringBuilder_append1(var$14, var$13);
                var$6 = new jl_String;
                var$7 = var$14.$buffer;
                var$8 = var$7.data;
                $negative = var$14.$length0;
                $i = var$8.length;
                if ($negative >= 0 && $negative <= ($i - 0 | 0))
                    var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $negative);
                else {
                    $arg = new jl_IndexOutOfBoundsException;
                    $arg.$suppressionEnabled = 1;
                    $arg.$writableStackTrace = 1;
                    $rt_throw($arg);
                }
            }
            jl_AbstractStringBuilder_insert(var$10, $upperCase, var$6);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1719));
            $upperCase = var$10.$length0;
            jl_AbstractStringBuilder_insertSpace(var$10, $upperCase, $upperCase + 1 | 0);
            var$10.$buffer.data[$upperCase] = $specifier;
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(1720));
            var$6 = new jl_String;
            var$7 = var$10.$buffer;
            var$8 = var$7.data;
            $value = var$10.$length0;
            $negative = var$8.length;
            if ($value >= 0 && $value <= ($negative - 0 | 0)) {
                var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, $value);
                $str.$suppressionEnabled = 1;
                $str.$writableStackTrace = 1;
                $str.$message = var$6;
                $str.$conversion0 = $specifier;
                $str.$argumentClass = $arg;
                $rt_throw($str);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $value = $arg.$intValue();
        $i = $value < 0 ?  -$value | 0 : $value;
        $arg = new jl_AbstractStringBuilder;
        $arg.$buffer = $rt_createCharArray(20);
        $str = (jl_AbstractStringBuilder_insert0($arg, $arg.$length0, $i, 10)).$toString();
        $negative = $value >= 0 ? 0 : 1;
    }
    $additionalSymbols = 0;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    if ($negative) {
        if (!($this.$flags0 & 128)) {
            $specifier = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, $specifier, $specifier + 1 | 0);
            $sb.$buffer.data[$specifier] = 45;
            $additionalSymbols = 1;
        } else {
            $specifier = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, $specifier, $specifier + 1 | 0);
            $sb.$buffer.data[$specifier] = 40;
            $additionalSymbols = 2;
        }
    } else {
        $specifier = $this.$flags0;
        if ($specifier & 8) {
            $specifier = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, $specifier, $specifier + 1 | 0);
            $sb.$buffer.data[$specifier] = 43;
            $additionalSymbols = 1;
        } else if ($specifier & 16) {
            $specifier = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, $specifier, $specifier + 1 | 0);
            $sb.$buffer.data[$specifier] = 32;
            $additionalSymbols = 1;
        }
    }
    $valueSb = new jl_StringBuilder;
    $valueSb.$buffer = $rt_createCharArray(16);
    if (!($this.$flags0 & 64))
        jl_AbstractStringBuilder_insert($valueSb, $valueSb.$length0, $str);
    else {
        $arg = new jt_DecimalFormatSymbols;
        $arg.$locale1 = $this.$locale5;
        jt_DecimalFormatSymbols_initData($arg);
        $separator = $arg.$groupingSeparator;
        $arg = $this.$locale5;
        var$19 = $arg.$languageCode;
        var$13 = $arg.$countryCode;
        if (otciu_CLDRHelper_$$metadata$$17 === null)
            otciu_CLDRHelper_$$metadata$$17 = otciu_CLDRHelper_getNumberFormatMap$$create();
        var$14 = otciu_CLDRHelper_$$metadata$$17;
        if (var$13.$nativeString.length ? 0 : 1)
            var$10 = var$19;
        else {
            var$6 = new jl_StringBuilder;
            var$6.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert3(var$6, var$6.$length0, var$19);
            $value = var$6.$length0;
            jl_AbstractStringBuilder_insertSpace(var$6, $value, $value + 1 | 0);
            var$6.$buffer.data[$value] = 45;
            jl_AbstractStringBuilder_insert3(var$6, var$6.$length0, var$13);
            var$10 = new jl_String;
            var$7 = var$6.$buffer;
            var$8 = var$7.data;
            $value = var$6.$length0;
            $i = var$8.length;
            if ($value >= 0 && $value <= ($i - 0 | 0))
                var$10.$nativeString = $rt_charArrayToString(var$7.data, 0, $value);
            else {
                $arg = new jl_IndexOutOfBoundsException;
                $arg.$suppressionEnabled = 1;
                $arg.$writableStackTrace = 1;
                $rt_throw($arg);
            }
        }
        var$10 = var$14.hasOwnProperty($rt_ustr(var$10)) ? var$14[$rt_ustr(var$10)] : var$14.hasOwnProperty($rt_ustr(var$19)) ? var$14[$rt_ustr(var$19)] : var$14.root;
        var$14 = (var$10.value !== null ? $rt_str(var$10.value) : null);
        var$6 = new jt_DecimalFormat;
        var$10 = new jt_DecimalFormatSymbols;
        var$10.$locale1 = $arg;
        jt_DecimalFormatSymbols_initData(var$10);
        jt_DecimalFormat__init_(var$6, var$14, var$10);
        $size = var$6.$groupingSize;
        $i = $str.$nativeString.length % $size | 0;
        if (!$i)
            $i = $size;
        $prev = 0;
        while ($i < $str.$nativeString.length) {
            $arg = jl_String_substring($str, $prev, $i);
            jl_AbstractStringBuilder_insert($valueSb, $valueSb.$length0, $arg);
            $specifier = $valueSb.$length0;
            jl_AbstractStringBuilder_insertSpace($valueSb, $specifier, $specifier + 1 | 0);
            $valueSb.$buffer.data[$specifier] = $separator;
            $i_0 = $i + $size | 0;
            $prev = $i;
            $i = $i_0;
        }
        $arg = jl_String_substring($str, $prev, $str.$nativeString.length);
        jl_AbstractStringBuilder_insert($valueSb, $valueSb.$length0, $arg);
    }
    b: {
        if ($this.$flags0 & 32) {
            $i = $valueSb.$length0 + $additionalSymbols | 0;
            while (true) {
                if ($i >= $this.$width0)
                    break b;
                $specifier = jl_Character_forDigit(0, 10);
                $value = $sb.$length0;
                jl_AbstractStringBuilder_insertSpace($sb, $value, $value + 1 | 0);
                $sb.$buffer.data[$value] = $specifier;
                $i = $i + 1 | 0;
            }
        }
    }
    $i = $valueSb.$length0;
    jl_AbstractStringBuilder_insert1($sb, $sb.$length0, $valueSb, 0, $i);
    if ($negative && $this.$flags0 & 128) {
        $value = $sb.$length0;
        jl_AbstractStringBuilder_insertSpace($sb, $value, $value + 1 | 0);
        $sb.$buffer.data[$value] = 41;
    }
    $arg = new jl_String;
    var$7 = $sb.$buffer;
    var$8 = var$7.data;
    $value = $sb.$length0;
    $negative = var$8.length;
    if ($value >= 0 && $value <= ($negative - 0 | 0)) {
        $arg.$nativeString = $rt_charArrayToString(var$7.data, 0, $value);
        ju_Formatter$FormatWriter_formatGivenString($this, $upperCase, $arg);
        return;
    }
    $arg = new jl_IndexOutOfBoundsException;
    $arg.$suppressionEnabled = 1;
    $arg.$writableStackTrace = 1;
    $rt_throw($arg);
},
ju_Formatter$FormatWriter_formatRadixInt = ($this, $specifier, $radixLog2, $upperCase) => {
    let var$4, $arg, $prefix, var$7, var$8, $str, $sb, $i, var$12, var$13;
    var$4 = $this.$flags0;
    if ((var$4 | 423) != 423) {
        $arg = new ju_FormatFlagsConversionMismatchException;
        $radixLog2 = jl_Integer_numberOfTrailingZeros(var$4 & (-424));
        if ($radixLog2 >= 0 && $radixLog2 < $rt_s(1714).$nativeString.length) {
            $upperCase = $rt_s(1714).$nativeString.charCodeAt($radixLog2);
            $prefix = new jl_String;
            var$7 = $rt_createCharArray(1);
            var$8 = var$7.data;
            var$8[0] = $upperCase;
            $prefix.$nativeString = $rt_charArrayToString(var$7.data, 0, var$8.length);
            $str = new jl_StringBuilder;
            $str.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($str, $str.$length0, $rt_s(1715));
            jl_AbstractStringBuilder_insert($str, $str.$length0, $prefix);
            jl_AbstractStringBuilder_insert($str, $str.$length0, $rt_s(1716));
            $radixLog2 = $str.$length0;
            jl_AbstractStringBuilder_insertSpace($str, $radixLog2, $radixLog2 + 1 | 0);
            var$7 = $str.$buffer;
            var$8 = var$7.data;
            var$8[$radixLog2] = $specifier;
            $sb = new jl_String;
            $upperCase = $str.$length0;
            $i = var$8.length;
            if ($upperCase >= 0 && $upperCase <= ($i - 0 | 0)) {
                $sb.$nativeString = $rt_charArrayToString(var$7.data, 0, $upperCase);
                $arg.$suppressionEnabled = 1;
                $arg.$writableStackTrace = 1;
                $arg.$message = $sb;
                $arg.$flags3 = $prefix;
                $arg.$conversion = $specifier;
                $rt_throw($arg);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $arg = new jl_StringIndexOutOfBoundsException;
        $arg.$suppressionEnabled = 1;
        $arg.$writableStackTrace = 1;
        $rt_throw($arg);
    }
    ju_Formatter$FormatWriter_verifyIntFlags($this);
    $arg = $this.$args.data[$this.$argumentIndex];
    if ($arg instanceof jl_Long)
        $str = otci_IntegerUtil_toUnsignedLogRadixString0($arg.$value7, $radixLog2);
    else if ($arg instanceof jl_Integer)
        $str = otci_IntegerUtil_toUnsignedLogRadixString($arg.$value, $radixLog2);
    else if ($arg instanceof jl_Short)
        $str = otci_IntegerUtil_toUnsignedLogRadixString($arg.$shortValue() & 65535, $radixLog2);
    else {
        if (!($arg instanceof jl_Byte)) {
            $str = new ju_IllegalFormatConversionException;
            if ($arg === null)
                $arg = null;
            else {
                $sb = $arg.constructor;
                if ($sb === null)
                    $arg = null;
                else {
                    $arg = $sb.classObject;
                    if ($arg === null) {
                        $arg = new jl_Class;
                        $arg.$platformClass = $sb;
                        $sb.classObject = $arg;
                    }
                }
            }
            $sb = new jl_StringBuilder;
            $sb.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1718));
            $radixLog2 = $sb.$length0;
            if ($arg === null)
                $prefix = $rt_s(1);
            else {
                $prefix = (!($arg.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !otp_Platform_isPrimitive($arg.$platformClass) ? $rt_s(100) : $rt_s(3);
                if ($arg.$name1 === null)
                    $arg.$name1 = otp_Platform_getName($arg.$platformClass);
                var$12 = $arg.$name1;
                var$13 = new jl_StringBuilder;
                var$13.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_append1(var$13, $prefix);
                jl_AbstractStringBuilder_append1(var$13, var$12);
                $prefix = new jl_String;
                var$7 = var$13.$buffer;
                var$8 = var$7.data;
                $i = var$13.$length0;
                var$4 = var$8.length;
                if ($i >= 0 && $i <= (var$4 - 0 | 0))
                    $prefix.$nativeString = $rt_charArrayToString(var$7.data, 0, $i);
                else {
                    $arg = new jl_IndexOutOfBoundsException;
                    $arg.$suppressionEnabled = 1;
                    $arg.$writableStackTrace = 1;
                    $rt_throw($arg);
                }
            }
            jl_AbstractStringBuilder_insert($sb, $radixLog2, $prefix);
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1719));
            $radixLog2 = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, $radixLog2, $radixLog2 + 1 | 0);
            $sb.$buffer.data[$radixLog2] = $specifier;
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1720));
            $prefix = new jl_String;
            var$7 = $sb.$buffer;
            var$8 = var$7.data;
            $upperCase = $sb.$length0;
            $i = var$8.length;
            if ($upperCase >= 0 && $upperCase <= ($i - 0 | 0)) {
                $prefix.$nativeString = $rt_charArrayToString(var$7.data, 0, $upperCase);
                $str.$suppressionEnabled = 1;
                $str.$writableStackTrace = 1;
                $str.$message = $prefix;
                $str.$conversion0 = $specifier;
                $str.$argumentClass = $arg;
                $rt_throw($str);
            }
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
        $str = otci_IntegerUtil_toUnsignedLogRadixString($arg.$byteValue() & 255, $radixLog2);
    }
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(16);
    if ($this.$flags0 & 4) {
        $prefix = $radixLog2 != 4 ? $rt_s(116) : $rt_s(1159);
        $arg = new jl_StringBuilder;
        $arg.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($arg, $arg.$length0, $prefix);
        $specifier = $arg.$length0;
        if ($str === null)
            $str = $rt_s(1);
        jl_AbstractStringBuilder_insert($arg, $specifier, $str);
        $str = new jl_String;
        var$7 = $arg.$buffer;
        var$8 = var$7.data;
        $i = $arg.$length0;
        $radixLog2 = var$8.length;
        if ($i >= 0 && $i <= ($radixLog2 - 0 | 0))
            $str.$nativeString = $rt_charArrayToString(var$7.data, 0, $i);
        else {
            $arg = new jl_IndexOutOfBoundsException;
            $arg.$suppressionEnabled = 1;
            $arg.$writableStackTrace = 1;
            $rt_throw($arg);
        }
    }
    a: {
        if ($this.$flags0 & 32) {
            $i = $str.$nativeString.length;
            while (true) {
                if ($i >= $this.$width0)
                    break a;
                $specifier = jl_Character_forDigit(0, 10);
                $radixLog2 = $sb.$length0;
                jl_AbstractStringBuilder_insertSpace($sb, $radixLog2, $radixLog2 + 1 | 0);
                $sb.$buffer.data[$radixLog2] = $specifier;
                $i = $i + 1 | 0;
            }
        }
    }
    jl_AbstractStringBuilder_insert($sb, $sb.$length0, $str);
    $arg = new jl_String;
    var$7 = $sb.$buffer;
    var$8 = var$7.data;
    $radixLog2 = $sb.$length0;
    $i = var$8.length;
    if ($radixLog2 >= 0 && $radixLog2 <= ($i - 0 | 0)) {
        $arg.$nativeString = $rt_charArrayToString(var$7.data, 0, $radixLog2);
        ju_Formatter$FormatWriter_formatGivenString($this, $upperCase, $arg);
        return;
    }
    $arg = new jl_IndexOutOfBoundsException;
    $arg.$suppressionEnabled = 1;
    $arg.$writableStackTrace = 1;
    $rt_throw($arg);
},
ju_Formatter$FormatWriter_verifyIntFlags = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$flags0;
    if (var$1 & 8 && var$1 & 16) {
        var$2 = new ju_IllegalFormatFlagsException;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1723));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1724));
        var$4 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$1 = var$3.$length0;
        var$7 = var$6.length;
        if (var$1 >= 0 && var$1 <= (var$7 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$4;
            var$2.$flags4 = $rt_s(1724);
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if (var$1 & 32 && var$1 & 1) {
        var$2 = new ju_IllegalFormatFlagsException;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1723));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1725));
        var$4 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$1 = var$3.$length0;
        var$7 = var$6.length;
        if (var$1 >= 0 && var$1 <= (var$7 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$4;
            var$2.$flags4 = $rt_s(1725);
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$8 = $this.$precision0;
    if (var$8 >= 0) {
        var$2 = new ju_IllegalFormatPrecisionException;
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1727));
        jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, var$8, 10);
        var$3 = new jl_String;
        var$5 = var$9.$buffer;
        var$6 = var$5.data;
        var$7 = var$9.$length0;
        var$10 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$10 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$3;
            var$2.$precision2 = var$8;
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if (var$1 & 1 && $this.$width0 < 0) {
        var$2 = new ju_MissingFormatWidthException;
        var$9 = jl_String_substring($this.$format3, $this.$formatSpecifierStart, $this.$index5);
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1726));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$9 === null ? $rt_s(1) : var$9);
        var$4 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$1 = var$3.$length0;
        var$7 = var$6.length;
        if (var$1 >= 0 && var$1 <= (var$7 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$1);
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = var$4;
            var$2.$formatSpecifier = var$9;
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
},
ju_Formatter$FormatWriter_formatGivenString = ($this, $upperCase, $str) => {
    let var$3, var$4, var$5, var$6, var$7;
    var$3 = $this.$precision0;
    if (var$3 > 0 && var$3 < $str.$nativeString.length)
        $str = jl_String_substring($str, 0, $this.$precision0);
    if ($upperCase) {
        var$4 = $str.$nativeString.toUpperCase();
        if (var$4 !== $str.$nativeString)
            $str = jl_String__init_0(var$4);
    }
    if ($this.$flags0 & 1) {
        var$4 = $this.$out4;
        var$5 = $str.$nativeString.length;
        jl_AbstractStringBuilder_insert1(var$4, var$4.$length0, $str, 0, var$5);
        if ($this.$width0 > $str.$nativeString.length) {
            $upperCase = $this.$width0 - $str.$nativeString.length | 0;
            $str = new jl_StringBuilder;
            $str.$buffer = $rt_createCharArray($upperCase);
            var$3 = 0;
            while (var$3 < $upperCase) {
                var$6 = $str.$length0;
                jl_AbstractStringBuilder_insertSpace($str, var$6, var$6 + 1 | 0);
                $str.$buffer.data[var$6] = 32;
                var$3 = var$3 + 1 | 0;
            }
            var$4 = $this.$out4;
            var$5 = $str.$length0;
            jl_AbstractStringBuilder_insert1(var$4, var$4.$length0, $str, 0, var$5);
        }
    } else {
        if ($this.$width0 > $str.$nativeString.length) {
            $upperCase = $this.$width0 - $str.$nativeString.length | 0;
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray($upperCase);
            var$3 = 0;
            while (var$3 < $upperCase) {
                var$6 = var$4.$length0;
                jl_AbstractStringBuilder_insertSpace(var$4, var$6, var$6 + 1 | 0);
                var$4.$buffer.data[var$6] = 32;
                var$3 = var$3 + 1 | 0;
            }
            var$7 = $this.$out4;
            var$5 = var$4.$length0;
            jl_AbstractStringBuilder_insert1(var$7, var$7.$length0, var$4, 0, var$5);
        }
        var$4 = $this.$out4;
        var$5 = $str.$nativeString.length;
        jl_AbstractStringBuilder_insert1(var$4, var$4.$length0, $str, 0, var$5);
    }
},
ju_Formatter$FormatWriter_configureFormat = $this => {
    let var$1;
    if ($this.$flags0 & 256) {
        var$1 = $this.$previousArgumentIndex;
        if (0 > var$1)
            var$1 = 0;
        $this.$argumentIndex = var$1;
    }
    if ($this.$argumentIndex == (-1)) {
        var$1 = $this.$defaultArgumentIndex;
        $this.$defaultArgumentIndex = var$1 + 1 | 0;
        $this.$argumentIndex = var$1;
    }
    $this.$previousArgumentIndex = $this.$argumentIndex;
},
ju_Formatter$FormatWriter_parseFormatSpecifier = $this => {
    let var$1, $n, $c, var$4, var$5, var$6, var$7, var$8, var$9;
    $this.$flags0 = 0;
    $this.$argumentIndex = (-1);
    $this.$width0 = (-1);
    $this.$precision0 = (-1);
    var$1 = $this.$format3;
    $n = $this.$index5;
    if ($n >= 0 && $n < var$1.$nativeString.length) {
        a: {
            $c = var$1.$nativeString.charCodeAt($n);
            $n = $rt_compare($c, 48);
            if ($n && ($n >= 0 && $c <= 57 ? 1 : 0)) {
                b: {
                    $n = ju_Formatter$FormatWriter_readInt($this);
                    if ($this.$index5 < $this.$format3.$nativeString.length) {
                        var$1 = $this.$format3;
                        $c = $this.$index5;
                        if ($c >= 0 && $c < var$1.$nativeString.length) {
                            if (var$1.$nativeString.charCodeAt($c) != 36)
                                break b;
                            else {
                                $this.$index5 = $this.$index5 + 1 | 0;
                                $this.$argumentIndex = $n - 1 | 0;
                                break a;
                            }
                        }
                        var$1 = new jl_StringIndexOutOfBoundsException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        $rt_throw(var$1);
                    }
                }
                $this.$width0 = $n;
            }
        }
        ju_Formatter$FormatWriter_parseFlags($this);
        if ($this.$width0 < 0 && $this.$index5 < $this.$format3.$nativeString.length) {
            var$1 = $this.$format3;
            $n = $this.$index5;
            if ($n >= 0 && $n < var$1.$nativeString.length) {
                $c = var$1.$nativeString.charCodeAt($n);
                if ($c >= 48 && $c <= 57 ? 1 : 0)
                    $this.$width0 = ju_Formatter$FormatWriter_readInt($this);
            } else {
                var$1 = new jl_StringIndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
        }
        c: {
            if ($this.$index5 < $this.$format3.$nativeString.length) {
                var$1 = $this.$format3;
                $n = $this.$index5;
                if ($n >= 0 && $n < var$1.$nativeString.length) {
                    if (var$1.$nativeString.charCodeAt($n) != 46)
                        break c;
                    d: {
                        $n = $this.$index5 + 1 | 0;
                        $this.$index5 = $n;
                        if ($n < $this.$format3.$nativeString.length) {
                            var$1 = $this.$format3;
                            $n = $this.$index5;
                            if ($n >= 0 && $n < var$1.$nativeString.length) {
                                $c = var$1.$nativeString.charCodeAt($n);
                                if ($c >= 48 && $c <= 57 ? 1 : 0) {
                                    $this.$precision0 = ju_Formatter$FormatWriter_readInt($this);
                                    break c;
                                } else
                                    break d;
                            }
                            var$1 = new jl_StringIndexOutOfBoundsException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            $rt_throw(var$1);
                        }
                    }
                    var$1 = new ju_UnknownFormatConversionException;
                    var$4 = $this.$format3;
                    $n = $this.$index5 - 1 | 0;
                    if ($n >= 0 && $n < var$4.$nativeString.length) {
                        $c = var$4.$nativeString.charCodeAt($n);
                        var$5 = new jl_String;
                        var$6 = $rt_createCharArray(1);
                        var$7 = var$6.data;
                        var$7[0] = $c;
                        var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$7.length);
                        var$4 = new jl_StringBuilder;
                        var$4.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1717));
                        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$5);
                        var$8 = new jl_String;
                        var$6 = var$4.$buffer;
                        var$7 = var$6.data;
                        $c = var$4.$length0;
                        var$9 = var$7.length;
                        if ($c >= 0 && $c <= (var$9 - 0 | 0)) {
                            var$8.$nativeString = $rt_charArrayToString(var$6.data, 0, $c);
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            var$1.$message = var$8;
                            var$1.$conversion1 = var$5;
                            $rt_throw(var$1);
                        }
                        var$1 = new jl_IndexOutOfBoundsException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        $rt_throw(var$1);
                    }
                    var$1 = new jl_StringIndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                var$1 = new jl_StringIndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
        }
        if ($this.$index5 < $this.$format3.$nativeString.length) {
            var$1 = $this.$format3;
            $c = $this.$index5;
            $this.$index5 = $c + 1 | 0;
            if ($c >= 0 && $c < var$1.$nativeString.length)
                return var$1.$nativeString.charCodeAt($c);
            var$1 = new jl_StringIndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$1 = new ju_UnknownFormatConversionException;
        var$4 = $this.$format3;
        $n = var$4.$nativeString.length - 1 | 0;
        if ($n >= 0 && $n < var$4.$nativeString.length) {
            $c = var$4.$nativeString.charCodeAt($n);
            var$5 = new jl_String;
            var$6 = $rt_createCharArray(1);
            var$7 = var$6.data;
            var$7[0] = $c;
            var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$7.length);
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1717));
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$5);
            var$8 = new jl_String;
            var$6 = var$4.$buffer;
            var$7 = var$6.data;
            $c = var$4.$length0;
            var$9 = var$7.length;
            if ($c >= 0 && $c <= (var$9 - 0 | 0)) {
                var$8.$nativeString = $rt_charArrayToString(var$6.data, 0, $c);
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                var$1.$message = var$8;
                var$1.$conversion1 = var$5;
                $rt_throw(var$1);
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$1 = new jl_StringIndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$1 = new jl_StringIndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
ju_Formatter$FormatWriter_parseFlags = $this => {
    let var$1, $flag, $c, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    a: {
        b: {
            while ($this.$index5 < $this.$format3.$nativeString.length) {
                var$1 = $this.$format3;
                $flag = $this.$index5;
                if ($flag < 0)
                    break a;
                if ($flag >= var$1.$nativeString.length)
                    break a;
                c: {
                    $c = var$1.$nativeString.charCodeAt($flag);
                    switch ($c) {
                        case 32:
                            break;
                        case 33:
                        case 34:
                        case 36:
                        case 37:
                        case 38:
                        case 39:
                        case 41:
                        case 42:
                        case 46:
                        case 47:
                        case 49:
                        case 50:
                        case 51:
                        case 52:
                        case 53:
                        case 54:
                        case 55:
                        case 56:
                        case 57:
                        case 58:
                        case 59:
                            break b;
                        case 35:
                            $flag = 4;
                            break c;
                        case 40:
                            $flag = 128;
                            break c;
                        case 43:
                            $flag = 8;
                            break c;
                        case 44:
                            $flag = 64;
                            break c;
                        case 45:
                            $flag = 1;
                            break c;
                        case 48:
                            $flag = 32;
                            break c;
                        case 60:
                            $flag = 256;
                            break c;
                        default:
                            break b;
                    }
                    $flag = 16;
                }
                var$4 = $this.$flags0;
                if (var$4 & $flag) {
                    var$1 = new ju_DuplicateFormatFlagsException;
                    var$5 = new jl_String;
                    var$6 = $rt_createCharArray(1);
                    var$7 = var$6.data;
                    var$7[0] = $c;
                    var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$7.length);
                    var$8 = new jl_StringBuilder;
                    var$8.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(1730));
                    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, var$5);
                    var$9 = new jl_String;
                    var$6 = var$8.$buffer;
                    var$7 = var$6.data;
                    var$4 = var$8.$length0;
                    var$10 = var$7.length;
                    if (var$4 >= 0 && var$4 <= (var$10 - 0 | 0)) {
                        var$9.$nativeString = $rt_charArrayToString(var$6.data, 0, var$4);
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        var$1.$message = var$9;
                        var$1.$flags5 = var$5;
                        $rt_throw(var$1);
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                $this.$flags0 = var$4 | $flag;
                $this.$index5 = $this.$index5 + 1 | 0;
            }
            return;
        }
        return;
    }
    var$1 = new jl_StringIndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
ju_Formatter$FormatWriter_readInt = $this => {
    let $result, var$2, var$3, var$4;
    $result = 0;
    a: {
        b: {
            while ($this.$index5 < $this.$format3.$nativeString.length) {
                var$2 = $this.$format3;
                var$3 = $this.$index5;
                if (var$3 < 0)
                    break a;
                if (var$3 >= var$2.$nativeString.length)
                    break a;
                var$4 = var$2.$nativeString.charCodeAt(var$3);
                if (!(var$4 >= 48 && var$4 <= 57 ? 1 : 0))
                    break;
                var$3 = $result * 10 | 0;
                var$2 = $this.$format3;
                var$4 = $this.$index5;
                $this.$index5 = var$4 + 1 | 0;
                if (var$4 < 0)
                    break b;
                if (var$4 >= var$2.$nativeString.length)
                    break b;
                $result = var$3 + (var$2.$nativeString.charCodeAt(var$4) - 48 | 0) | 0;
            }
            return $result;
        }
        var$2 = new jl_StringIndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$2 = new jl_StringIndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
ju_FormatterClosedException = $rt_classWithoutFields(jl_IllegalStateException),
ju_FormatterClosedException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ju_FormatterClosedException__init_0 = () => {
    let var_0 = new ju_FormatterClosedException();
    ju_FormatterClosedException__init_(var_0);
    return var_0;
};
function jnc_CharsetDecoder() {
    let a = this; jl_Object.call(a);
    a.$charset1 = null;
    a.$averageCharsPerByte = 0.0;
    a.$maxCharsPerByte = 0.0;
    a.$replacement0 = null;
    a.$malformedAction0 = null;
    a.$unmappableAction0 = null;
    a.$state = 0;
}
let jnc_CharsetDecoder__init_ = ($this, $cs, $averageCharsPerByte, $maxCharsPerByte) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    $this.$replacement0 = $rt_s(1731);
    var$4 = jnc_CodingErrorAction_REPORT;
    $this.$malformedAction0 = var$4;
    $this.$unmappableAction0 = var$4;
    if ($averageCharsPerByte <= 0.0) {
        $cs = new jl_IllegalArgumentException;
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1732));
        jl_AbstractStringBuilder_insert5(var$4, var$4.$length0, $averageCharsPerByte);
        var$5 = new jl_String;
        var$6 = var$4.$buffer;
        var$7 = var$6.data;
        var$8 = var$4.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            $cs.$suppressionEnabled = 1;
            $cs.$writableStackTrace = 1;
            $cs.$message = var$5;
            $rt_throw($cs);
        }
        $cs = new jl_IndexOutOfBoundsException;
        $cs.$suppressionEnabled = 1;
        $cs.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($cs);
        $rt_throw($cs);
    }
    if ($maxCharsPerByte > 0.0) {
        $this.$charset1 = $cs;
        $this.$averageCharsPerByte = $averageCharsPerByte;
        $this.$maxCharsPerByte = $maxCharsPerByte;
        return;
    }
    $cs = new jl_IllegalArgumentException;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(1733));
    jl_AbstractStringBuilder_insert5(var$4, var$4.$length0, $maxCharsPerByte);
    var$5 = new jl_String;
    var$6 = var$4.$buffer;
    var$7 = var$6.data;
    var$8 = var$4.$length0;
    var$9 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        $cs.$suppressionEnabled = 1;
        $cs.$writableStackTrace = 1;
        $cs.$message = var$5;
        $rt_throw($cs);
    }
    $cs = new jl_IndexOutOfBoundsException;
    $cs.$suppressionEnabled = 1;
    $cs.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($cs);
    $rt_throw($cs);
},
jnc_CharsetDecoder_onMalformedInput = ($this, $newAction) => {
    let var$2;
    if ($newAction !== null) {
        $this.$malformedAction0 = $newAction;
        return $this;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(1734);
    $rt_throw(var$2);
},
jnc_CharsetDecoder_implOnMalformedInput = ($this, $newAction) => {
    return;
},
jnc_CharsetDecoder_onUnmappableCharacter = ($this, $newAction) => {
    let var$2;
    if ($newAction !== null) {
        $this.$unmappableAction0 = $newAction;
        return $this;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(1734);
    $rt_throw(var$2);
},
jnc_CharsetDecoder_implOnUnmappableCharacter = ($this, $newAction) => {
    return;
},
jnc_CharsetDecoder_decode0 = ($this, $in, $out, $endOfInput) => {
    let var$4, $result, $e, var$7, var$8, $$je;
    var$4 = $this.$state;
    if (!(var$4 == 2 && !$endOfInput) && var$4 != 3) {
        $this.$state = $endOfInput ? 2 : 1;
        while (true) {
            try {
                $result = jnci_BufferedDecoder_decodeLoop($this, $in, $out);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_RuntimeException) {
                    $e = $$je;
                    $in = new jnc_CoderMalfunctionError;
                    $in.$suppressionEnabled = 1;
                    $in.$writableStackTrace = 1;
                    $in.$cause = $e;
                    $rt_throw($in);
                } else {
                    throw $$e;
                }
            }
            var$4 = $result.$kind;
            if (var$4 != 1 ? 0 : 1)
                break;
            if (var$4 ? 0 : 1) {
                if ($endOfInput) {
                    $endOfInput = $in.$position1;
                    var$7 = $in.$limit;
                    if ($endOfInput >= var$7 ? 0 : 1) {
                        if ($this.$malformedAction0 === jnc_CodingErrorAction_REPORT) {
                            var$7 = var$7 - $endOfInput | 0;
                            $in = new jnc_CoderResult;
                            $in.$kind = 2;
                            $in.$length2 = var$7;
                            return $in;
                        }
                        if (($out.$limit - $out.$position1 | 0) <= $this.$replacement0.$nativeString.length)
                            return jnc_CoderResult_OVERFLOW;
                        var$7 = $in.$position1;
                        jn_Buffer_position($in, var$7 + ($in.$limit - var$7 | 0) | 0);
                        if ($this.$malformedAction0 === jnc_CodingErrorAction_REPLACE) {
                            $in = $this.$replacement0;
                            jn_CharBuffer_put($out, $in, 0, $in.$nativeString.length);
                        }
                    }
                }
                return $result;
            }
            if (var$4 != 2 ? 0 : 1) {
                $e = $this.$malformedAction0;
                if ($e === jnc_CodingErrorAction_REPORT)
                    return $result;
                if ($e === jnc_CodingErrorAction_REPLACE) {
                    if (($out.$limit - $out.$position1 | 0) < $this.$replacement0.$nativeString.length)
                        return jnc_CoderResult_OVERFLOW;
                    $e = $this.$replacement0;
                    jn_CharBuffer_put($out, $e, 0, $e.$nativeString.length);
                }
                var$8 = $in.$position1;
                var$4 = $result.$kind;
                var$7 = var$4 != 2 ? 0 : 1;
                if (!(!var$7 && !(var$4 != 3 ? 0 : 1) ? 0 : 1)) {
                    $in = new jl_UnsupportedOperationException;
                    $in.$suppressionEnabled = 1;
                    $in.$writableStackTrace = 1;
                    $rt_throw($in);
                }
                jn_Buffer_position($in, var$8 + $result.$length2 | 0);
            } else if (var$4 != 3 ? 0 : 1) {
                $e = $this.$unmappableAction0;
                if ($e === jnc_CodingErrorAction_REPORT)
                    return $result;
                if ($e === jnc_CodingErrorAction_REPLACE) {
                    if (($out.$limit - $out.$position1 | 0) < $this.$replacement0.$nativeString.length)
                        return jnc_CoderResult_OVERFLOW;
                    $e = $this.$replacement0;
                    jn_CharBuffer_put($out, $e, 0, $e.$nativeString.length);
                }
                var$8 = $in.$position1;
                var$4 = $result.$kind;
                var$7 = var$4 != 2 ? 0 : 1;
                if (!(!var$7 && !(var$4 != 3 ? 0 : 1) ? 0 : 1)) {
                    $in = new jl_UnsupportedOperationException;
                    $in.$suppressionEnabled = 1;
                    $in.$writableStackTrace = 1;
                    $rt_throw($in);
                }
                jn_Buffer_position($in, var$8 + $result.$length2 | 0);
            }
        }
        return $result;
    }
    $in = new jl_IllegalStateException;
    $in.$suppressionEnabled = 1;
    $in.$writableStackTrace = 1;
    $rt_throw($in);
},
jnc_CharsetDecoder_decode = ($this, $in) => {
    let var$2, var$3, var$4, $out, $result, var$7, var$8, var$9, var$10, var$11, var$12;
    var$2 = $this.$state;
    if (var$2 && var$2 != 3) {
        $in = new jl_IllegalStateException;
        $in.$suppressionEnabled = 1;
        $in.$writableStackTrace = 1;
        $rt_throw($in);
    }
    var$3 = $in.$limit - $in.$position1 | 0;
    if (!var$3) {
        $in = new jn_CharBufferOverArray;
        var$4 = $rt_createCharArray(0);
        $in.$mark0 = (-1);
        $in.$capacity = 0;
        $in.$limit = 0;
        $in.$position1 = 0;
        $in.$limit = 0;
        $in.$start1 = 0;
        $in.$readOnly = 0;
        $in.$array0 = var$4;
        return $in;
    }
    if (var$2)
        $this.$state = 0;
    var$3 = var$3 * $this.$averageCharsPerByte | 0;
    if (8 > var$3)
        var$3 = 8;
    if (var$3 < 0) {
        $in = new jl_IllegalArgumentException;
        $out = new jl_StringBuilder;
        $out.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($out, $out.$length0, $rt_s(1682));
        jl_AbstractStringBuilder_insert0($out, $out.$length0, var$3, 10);
        $result = new jl_String;
        var$4 = $out.$buffer;
        var$7 = var$4.data;
        var$3 = $out.$length0;
        var$8 = var$7.length;
        if (var$3 >= 0 && var$3 <= (var$8 - 0 | 0)) {
            $result.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
            $in.$suppressionEnabled = 1;
            $in.$writableStackTrace = 1;
            $in.$message = $result;
            $rt_throw($in);
        }
        $in = new jl_IndexOutOfBoundsException;
        $in.$suppressionEnabled = 1;
        $in.$writableStackTrace = 1;
        $rt_throw($in);
    }
    $out = new jn_CharBufferOverArray;
    var$4 = $rt_createCharArray(var$3);
    $out.$mark0 = (-1);
    $out.$capacity = var$3;
    $out.$limit = var$3;
    $out.$position1 = 0;
    $out.$limit = var$3;
    $out.$start1 = 0;
    $out.$readOnly = 0;
    $out.$array0 = var$4;
    a: while (true) {
        $result = jnc_CharsetDecoder_decode0($this, $in, $out, 0);
        var$2 = $result.$kind;
        if (var$2 ? 0 : 1) {
            $in = jnc_CharsetDecoder_decode0($this, $in, $out, 1);
            var$3 = $in.$kind;
            var$2 = var$3 != 2 ? 0 : 1;
            var$2 = !var$2 && !(var$3 != 3 ? 0 : 1) ? 0 : 1;
            b: {
                if (var$2) {
                    switch (var$3) {
                        case 0:
                            break;
                        case 1:
                            $in = new jnc_BufferOverflowException;
                            $in.$suppressionEnabled = 1;
                            $in.$writableStackTrace = 1;
                            $rt_throw($in);
                        case 2:
                            $out = new jnc_MalformedInputException;
                            var$2 = $in.$length2;
                            $out.$suppressionEnabled = 1;
                            $out.$writableStackTrace = 1;
                            $out.$length6 = var$2;
                            $rt_throw($out);
                        case 3:
                            $out = new jnc_UnmappableCharacterException;
                            var$2 = $in.$length2;
                            $out.$suppressionEnabled = 1;
                            $out.$writableStackTrace = 1;
                            $out.$length5 = var$2;
                            $rt_throw($out);
                        default:
                            break b;
                    }
                    $in = new jnc_BufferUnderflowException;
                    $in.$suppressionEnabled = 1;
                    $in.$writableStackTrace = 1;
                    $rt_throw($in);
                }
            }
            while (true) {
                var$3 = $this.$state;
                if (var$3 != 3 && var$3 != 2) {
                    $in = new jl_IllegalStateException;
                    $in.$suppressionEnabled = 1;
                    $in.$writableStackTrace = 1;
                    $rt_throw($in);
                }
                $this.$state = 3;
                if (jnc_CoderResult_UNDERFLOW.$kind ? 0 : 1)
                    break;
                var$4 = $out.$array0.data;
                var$8 = var$4.length;
                var$3 = var$8 * 2 | 0;
                if (8 > var$3)
                    var$3 = 8;
                var$7 = $rt_createCharArray(var$3);
                if (var$3 < var$8)
                    var$8 = var$3;
                var$9 = var$7.data;
                var$2 = 0;
                while (var$2 < var$8) {
                    var$9[var$2] = var$4[var$2];
                    var$2 = var$2 + 1 | 0;
                }
                var$3 = var$9.length;
                $in = new jn_CharBufferOverArray;
                var$10 = 0 + var$3 | 0;
                $in.$mark0 = (-1);
                $in.$capacity = var$3;
                $in.$limit = var$3;
                $in.$position1 = 0;
                $in.$limit = var$10;
                $in.$start1 = 0;
                $in.$readOnly = 0;
                $in.$array0 = var$7;
                jn_Buffer_position($in, $out.$position1);
                $out = $in;
            }
            $out.$limit = $out.$position1;
            $out.$position1 = 0;
            $out.$mark0 = (-1);
            return $out;
        }
        if (var$2 != 1 ? 0 : 1) {
            var$4 = $out.$array0.data;
            var$8 = var$4.length;
            var$3 = var$8 * 2 | 0;
            if (8 > var$3)
                var$3 = 8;
            var$7 = $rt_createCharArray(var$3);
            if (var$3 < var$8)
                var$8 = var$3;
            var$9 = var$7.data;
            var$2 = 0;
            while (var$2 < var$8) {
                var$9[var$2] = var$4[var$2];
                var$2 = var$2 + 1 | 0;
            }
            var$11 = var$9.length;
            var$12 = new jn_CharBufferOverArray;
            var$8 = 0 + var$11 | 0;
            var$12.$mark0 = (-1);
            var$12.$capacity = var$11;
            var$12.$limit = var$11;
            var$12.$position1 = 0;
            var$12.$limit = var$8;
            var$12.$start1 = 0;
            var$12.$readOnly = 0;
            var$12.$array0 = var$7;
            jn_Buffer_position(var$12, $out.$position1);
            $out = var$12;
        }
        var$3 = $result.$kind;
        var$2 = var$3 != 2 ? 0 : 1;
        if (!(!var$2 && !(var$3 != 3 ? 0 : 1) ? 0 : 1))
            continue;
        switch (var$3) {
            case 0:
                break a;
            case 1:
                $in = new jnc_BufferOverflowException;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $rt_throw($in);
            case 2:
                $in = new jnc_MalformedInputException;
                var$2 = $result.$length2;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $in.$length6 = var$2;
                $rt_throw($in);
            case 3:
                $in = new jnc_UnmappableCharacterException;
                var$2 = $result.$length2;
                $in.$suppressionEnabled = 1;
                $in.$writableStackTrace = 1;
                $in.$length5 = var$2;
                $rt_throw($in);
            default:
        }
    }
    $in = new jnc_BufferUnderflowException;
    $in.$suppressionEnabled = 1;
    $in.$writableStackTrace = 1;
    $rt_throw($in);
},
jnc_CharsetDecoder_implFlush = ($this, $out) => {
    return jnc_CoderResult_UNDERFLOW;
},
jnc_CharsetDecoder_implReset = $this => {
    return;
};
function jur_FSet() {
    let a = this; jur_AbstractSet.call(a);
    a.$isBackReferenced = 0;
    a.$groupIndex0 = 0;
}
let jur_FSet_posFSet = null,
jur_FSet_$callClinit = () => {
    jur_FSet_$callClinit = $rt_eraseClinit(jur_FSet);
    jur_FSet__clinit_();
},
jur_FSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $end, var$5, $shift;
    $end = $this.$groupIndex0;
    var$5 = $matchResult.$groupBounds.data;
    $shift = ($end * 2 | 0) + 1 | 0;
    $end = var$5[$shift];
    var$5[$shift] = $stringIndex;
    $shift = $this.$next4.$matches($stringIndex, $testString, $matchResult);
    if ($shift < 0) {
        $stringIndex = $this.$groupIndex0;
        $matchResult.$groupBounds.data[($stringIndex * 2 | 0) + 1 | 0] = $end;
    }
    return $shift;
},
jur_FSet_getGroupIndex = $this => {
    return $this.$groupIndex0;
},
jur_FSet_getName = $this => {
    return $rt_s(1735);
},
jur_FSet_hasConsumed = ($this, $mr) => {
    return 0;
},
jur_FSet__clinit_ = () => {
    jur_FSet_posFSet = jur_FSet$PossessiveFSet__init_0();
};
function jur_Lexer() {
    let a = this; jl_Object.call(a);
    a.$pattern0 = null;
    a.$flags = 0;
    a.$mode3 = 0;
    a.$savedMode = 0;
    a.$lookBack = 0;
    a.$ch = 0;
    a.$lookAhead = 0;
    a.$patternFullLength = 0;
    a.$curST = null;
    a.$lookAheadST = null;
    a.$index0 = 0;
    a.$prevNW = 0;
    a.$curToc = 0;
    a.$lookAheadToc = 0;
    a.$orig = null;
}
let jur_Lexer_decompTable = null,
jur_Lexer_singleDecompTable = null,
jur_Lexer_singleDecompTableSize = 0,
jur_Lexer__init_0 = ($this, $pattern, $flags) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $this.$mode3 = 1;
    $this.$orig = $pattern;
    if (($flags & 16) > 0) {
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1736));
        var$4 = 0;
        while (true) {
            var$5 = jl_String_indexOf0($pattern, $rt_s(1737), var$4);
            if (var$5 < 0)
                break;
            var$6 = var$5 + 2 | 0;
            var$7 = jl_String_substring($pattern, var$4, var$6);
            jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$7);
            jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1738));
            var$4 = var$6;
        }
        $pattern = jl_String_substring($pattern, var$4, $pattern.$nativeString.length);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $pattern);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1737));
        $pattern = new jl_String;
        var$8 = var$3.$buffer;
        var$9 = var$8.data;
        var$4 = var$3.$length0;
        var$5 = var$9.length;
        if (var$4 >= 0 && var$4 <= (var$5 - 0 | 0))
            $pattern.$nativeString = $rt_charArrayToString(var$8.data, 0, var$4);
        else {
            $pattern = new jl_IndexOutOfBoundsException;
            $pattern.$suppressionEnabled = 1;
            $pattern.$writableStackTrace = 1;
            $rt_throw($pattern);
        }
    }
    $this.$pattern0 = $rt_createCharArray($pattern.$nativeString.length + 2 | 0);
    var$9 = $rt_createCharArray($pattern.$nativeString.length);
    var$8 = var$9.data;
    var$4 = 0;
    var$5 = var$8.length;
    while (true) {
        if (var$4 >= var$5) {
            jl_System_fastArraycopy(var$9, 0, $this.$pattern0, 0, $pattern.$nativeString.length);
            var$8 = $this.$pattern0.data;
            var$6 = var$8.length;
            var$8[var$6 - 1 | 0] = 0;
            var$8[var$6 - 2 | 0] = 0;
            $this.$patternFullLength = var$6;
            $this.$flags = $flags;
            jur_Lexer_movePointer($this);
            jur_Lexer_movePointer($this);
            return;
        }
        if (var$4 < 0)
            break;
        if (var$4 >= $pattern.$nativeString.length)
            break;
        var$8[var$4] = $pattern.$nativeString.charCodeAt(var$4);
        var$4 = var$4 + 1 | 0;
    }
    $pattern = new jl_StringIndexOutOfBoundsException;
    $pattern.$suppressionEnabled = 1;
    $pattern.$writableStackTrace = 1;
    $rt_throw($pattern);
},
jur_Lexer__init_ = (var_0, var_1) => {
    let var_2 = new jur_Lexer();
    jur_Lexer__init_0(var_2, var_0, var_1);
    return var_2;
},
jur_Lexer_movePointer = $this => {
    let $reread, $nonCap, var$3, $cs, var$5, var$6, $behind, $mod, $negative, var$10, $$je;
    $this.$lookBack = $this.$ch;
    $this.$ch = $this.$lookAhead;
    $this.$curST = $this.$lookAheadST;
    $this.$curToc = $this.$lookAheadToc;
    $this.$lookAheadToc = $this.$index0;
    a: {
        while (true) {
            $reread = 0;
            $nonCap = $this.$index0 >= $this.$pattern0.data.length ? 0 : jur_Lexer_nextCodePoint($this);
            $this.$lookAhead = $nonCap;
            $this.$lookAheadST = null;
            if ($this.$mode3 == 4) {
                if ($nonCap != 92)
                    return;
                $nonCap = $this.$index0;
                var$3 = $this.$pattern0.data;
                if ($nonCap >= var$3.length)
                    $nonCap = 0;
                else {
                    $this.$prevNW = $nonCap;
                    if ($this.$flags & 4)
                        jur_Lexer_skipComments($this);
                    else
                        $this.$index0 = $nonCap + 1 | 0;
                    $nonCap = var$3[$this.$prevNW];
                }
                $this.$lookAhead = $nonCap;
                switch ($nonCap) {
                    case 69:
                        break;
                    default:
                        $this.$lookAhead = 92;
                        $this.$index0 = $this.$prevNW;
                        return;
                }
                $this.$mode3 = $this.$savedMode;
                $this.$lookAhead = $this.$index0 > ($this.$pattern0.data.length - 2 | 0) ? 0 : jur_Lexer_nextCodePoint($this);
            }
            b: {
                $nonCap = $this.$lookAhead;
                if ($nonCap == 92) {
                    $nonCap = $this.$index0 >= ($this.$pattern0.data.length - 2 | 0) ? (-1) : jur_Lexer_nextCodePoint($this);
                    c: {
                        d: {
                            $this.$lookAhead = $nonCap;
                            switch ($nonCap) {
                                case -1:
                                    $cs = new jur_PatternSyntaxException;
                                    var$5 = $this.$orig;
                                    $nonCap = $this.$index0;
                                    $cs.$suppressionEnabled = 1;
                                    $cs.$writableStackTrace = 1;
                                    $cs.$index3 = (-1);
                                    $cs.$desc = $rt_s(3);
                                    $cs.$pattern = var$5;
                                    $cs.$index3 = $nonCap;
                                    $rt_throw($cs);
                                case 0:
                                case 1:
                                case 2:
                                case 3:
                                case 4:
                                case 5:
                                case 6:
                                case 7:
                                case 8:
                                case 9:
                                case 10:
                                case 11:
                                case 12:
                                case 13:
                                case 14:
                                case 15:
                                case 16:
                                case 17:
                                case 18:
                                case 19:
                                case 20:
                                case 21:
                                case 22:
                                case 23:
                                case 24:
                                case 25:
                                case 26:
                                case 27:
                                case 28:
                                case 29:
                                case 30:
                                case 31:
                                case 32:
                                case 33:
                                case 34:
                                case 35:
                                case 36:
                                case 37:
                                case 38:
                                case 39:
                                case 40:
                                case 41:
                                case 42:
                                case 43:
                                case 44:
                                case 45:
                                case 46:
                                case 47:
                                case 58:
                                case 59:
                                case 60:
                                case 61:
                                case 62:
                                case 63:
                                case 64:
                                case 91:
                                case 92:
                                case 93:
                                case 94:
                                case 95:
                                case 96:
                                case 118:
                                    break;
                                case 48:
                                    $this.$lookAhead = jur_Lexer_readOctals($this);
                                    break b;
                                case 49:
                                case 50:
                                case 51:
                                case 52:
                                case 53:
                                case 54:
                                case 55:
                                case 56:
                                case 57:
                                    if ($this.$mode3 != 1)
                                        break b;
                                    $this.$lookAhead = (-2147483648) | $nonCap;
                                    break b;
                                case 65:
                                    $this.$lookAhead = (-2147483583);
                                    break b;
                                case 66:
                                    $this.$lookAhead = (-2147483582);
                                    break b;
                                case 67:
                                case 69:
                                case 70:
                                case 72:
                                case 73:
                                case 74:
                                case 75:
                                case 76:
                                case 77:
                                case 78:
                                case 79:
                                case 82:
                                case 84:
                                case 85:
                                case 86:
                                case 88:
                                case 89:
                                case 103:
                                case 104:
                                case 105:
                                case 106:
                                case 107:
                                case 108:
                                case 109:
                                case 111:
                                case 113:
                                case 121:
                                    $cs = new jur_PatternSyntaxException;
                                    var$5 = $this.$orig;
                                    $nonCap = $this.$index0;
                                    $cs.$suppressionEnabled = 1;
                                    $cs.$writableStackTrace = 1;
                                    $cs.$index3 = (-1);
                                    $cs.$desc = $rt_s(3);
                                    $cs.$pattern = var$5;
                                    $cs.$index3 = $nonCap;
                                    $rt_throw($cs);
                                case 68:
                                case 83:
                                case 87:
                                case 100:
                                case 115:
                                case 119:
                                    break d;
                                case 71:
                                    $this.$lookAhead = (-2147483577);
                                    break b;
                                case 80:
                                case 112:
                                    break c;
                                case 81:
                                    $this.$savedMode = $this.$mode3;
                                    $this.$mode3 = 4;
                                    $reread = 1;
                                    break b;
                                case 90:
                                    $this.$lookAhead = (-2147483558);
                                    break b;
                                case 97:
                                    $this.$lookAhead = 7;
                                    break b;
                                case 98:
                                    $this.$lookAhead = (-2147483550);
                                    break b;
                                case 99:
                                    $nonCap = $this.$index0;
                                    var$3 = $this.$pattern0.data;
                                    if ($nonCap >= (var$3.length - 2 | 0)) {
                                        $cs = new jur_PatternSyntaxException;
                                        var$5 = $this.$orig;
                                        $cs.$suppressionEnabled = 1;
                                        $cs.$writableStackTrace = 1;
                                        $cs.$index3 = (-1);
                                        $cs.$desc = $rt_s(3);
                                        $cs.$pattern = var$5;
                                        $cs.$index3 = $nonCap;
                                        $rt_throw($cs);
                                    }
                                    $this.$prevNW = $nonCap;
                                    if ($this.$flags & 4)
                                        jur_Lexer_skipComments($this);
                                    else
                                        $this.$index0 = $nonCap + 1 | 0;
                                    $this.$lookAhead = var$3[$this.$prevNW] & 31;
                                    break b;
                                case 101:
                                    $this.$lookAhead = 27;
                                    break b;
                                case 102:
                                    $this.$lookAhead = 12;
                                    break b;
                                case 110:
                                    $this.$lookAhead = 10;
                                    break b;
                                case 114:
                                    $this.$lookAhead = 13;
                                    break b;
                                case 116:
                                    $this.$lookAhead = 9;
                                    break b;
                                case 117:
                                    $this.$lookAhead = jur_Lexer_readHex($this, 4);
                                    break b;
                                case 120:
                                    $this.$lookAhead = jur_Lexer_readHex($this, 2);
                                    break b;
                                case 122:
                                    $this.$lookAhead = (-2147483526);
                                    break b;
                                default:
                            }
                            break b;
                        }
                        $cs = new jl_String;
                        var$3 = $this.$pattern0;
                        var$6 = var$3.data;
                        $behind = $this.$prevNW;
                        $mod = var$6.length;
                        if ($behind < 0)
                            break a;
                        if (1 > ($mod - $behind | 0))
                            break a;
                        $cs.$nativeString = $rt_charArrayToString(var$3.data, $behind, 1);
                        $cs = jur_AbstractCharClass$PredefinedCharacterClasses_getObject(jur_AbstractCharClass_charClasses, $cs);
                        if ($cs.$posValue === null)
                            $cs.$posValue = $cs.$computeValue();
                        $this.$lookAheadST = $cs.$posValue;
                        $this.$lookAhead = 0;
                        break b;
                    }
                    $cs = jur_Lexer_parseCharClassName($this);
                    $negative = 0;
                    if ($this.$lookAhead == 80)
                        $negative = 1;
                    try {
                        $this.$lookAheadST = jur_AbstractCharClass_getPredefinedClass($cs, $negative);
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ju_MissingResourceException) {
                            $cs = new jur_PatternSyntaxException;
                            var$5 = $this.$orig;
                            $nonCap = $this.$index0;
                            $cs.$suppressionEnabled = 1;
                            $cs.$writableStackTrace = 1;
                            $cs.$index3 = (-1);
                            $cs.$desc = $rt_s(3);
                            $cs.$pattern = var$5;
                            $cs.$index3 = $nonCap;
                            $rt_throw($cs);
                        } else {
                            throw $$e;
                        }
                    }
                    $this.$lookAhead = 0;
                } else {
                    $behind = $this.$mode3;
                    if ($behind == 1)
                        switch ($nonCap) {
                            case 36:
                                $this.$lookAhead = (-536870876);
                                break b;
                            case 40:
                                var$3 = $this.$pattern0.data;
                                $nonCap = $this.$index0;
                                if (var$3[$nonCap] != 63) {
                                    $this.$lookAhead = (-2147483608);
                                    break b;
                                }
                                $this.$prevNW = $nonCap;
                                if ($this.$flags & 4)
                                    jur_Lexer_skipComments($this);
                                else
                                    $this.$index0 = $nonCap + 1 | 0;
                                $nonCap = $this.$pattern0.data[$this.$index0];
                                $behind = 0;
                                while (true) {
                                    e: {
                                        if ($behind) {
                                            $behind = 0;
                                            switch ($nonCap) {
                                                case 33:
                                                    break;
                                                case 61:
                                                    $this.$lookAhead = (-134217688);
                                                    var$10 = $this.$index0;
                                                    $this.$prevNW = var$10;
                                                    if ($this.$flags & 4)
                                                        jur_Lexer_skipComments($this);
                                                    else
                                                        $this.$index0 = var$10 + 1 | 0;
                                                    break e;
                                                default:
                                                    $cs = new jur_PatternSyntaxException;
                                                    var$5 = $this.$orig;
                                                    $nonCap = $this.$index0;
                                                    $cs.$suppressionEnabled = 1;
                                                    $cs.$writableStackTrace = 1;
                                                    $cs.$index3 = (-1);
                                                    $cs.$desc = $rt_s(3);
                                                    $cs.$pattern = var$5;
                                                    $cs.$index3 = $nonCap;
                                                    $rt_throw($cs);
                                            }
                                            $this.$lookAhead = (-67108824);
                                            $negative = $this.$index0;
                                            $this.$prevNW = $negative;
                                            if ($this.$flags & 4)
                                                jur_Lexer_skipComments($this);
                                            else
                                                $this.$index0 = $negative + 1 | 0;
                                        } else {
                                            switch ($nonCap) {
                                                case 33:
                                                    break;
                                                case 60:
                                                    $behind = $this.$index0;
                                                    $this.$prevNW = $behind;
                                                    if ($this.$flags & 4)
                                                        jur_Lexer_skipComments($this);
                                                    else
                                                        $this.$index0 = $behind + 1 | 0;
                                                    $nonCap = $this.$pattern0.data[$this.$index0];
                                                    $behind = 1;
                                                    break e;
                                                case 61:
                                                    $this.$lookAhead = (-536870872);
                                                    $negative = $this.$index0;
                                                    $this.$prevNW = $negative;
                                                    if ($this.$flags & 4)
                                                        jur_Lexer_skipComments($this);
                                                    else
                                                        $this.$index0 = $negative + 1 | 0;
                                                    break e;
                                                case 62:
                                                    $this.$lookAhead = (-33554392);
                                                    $negative = $this.$index0;
                                                    $this.$prevNW = $negative;
                                                    if ($this.$flags & 4)
                                                        jur_Lexer_skipComments($this);
                                                    else
                                                        $this.$index0 = $negative + 1 | 0;
                                                    break e;
                                                default:
                                                    $mod = jur_Lexer_readFlags($this);
                                                    $this.$lookAhead = $mod;
                                                    if ($mod < 256) {
                                                        $this.$flags = $mod;
                                                        $mod = $mod << 16;
                                                        $this.$lookAhead = $mod;
                                                        $this.$lookAhead = (-1073741784) | $mod;
                                                        break e;
                                                    }
                                                    $mod = $mod & 255;
                                                    $this.$lookAhead = $mod;
                                                    $this.$flags = $mod;
                                                    $mod = $mod << 16;
                                                    $this.$lookAhead = $mod;
                                                    $this.$lookAhead = (-16777176) | $mod;
                                                    break e;
                                            }
                                            $this.$lookAhead = (-268435416);
                                            $negative = $this.$index0;
                                            $this.$prevNW = $negative;
                                            if ($this.$flags & 4)
                                                jur_Lexer_skipComments($this);
                                            else
                                                $this.$index0 = $negative + 1 | 0;
                                        }
                                    }
                                    if (!$behind)
                                        break;
                                }
                                break b;
                            case 41:
                                $this.$lookAhead = (-536870871);
                                break b;
                            case 42:
                            case 43:
                            case 63:
                                $behind = $this.$index0;
                                var$3 = $this.$pattern0.data;
                                switch ($behind >= var$3.length ? 42 : var$3[$behind]) {
                                    case 43:
                                        $this.$lookAhead = $nonCap | (-2147483648);
                                        $this.$prevNW = $behind;
                                        if ($this.$flags & 4)
                                            jur_Lexer_skipComments($this);
                                        else
                                            $this.$index0 = $behind + 1 | 0;
                                        break b;
                                    case 63:
                                        $this.$lookAhead = $nonCap | (-1073741824);
                                        $this.$prevNW = $behind;
                                        if ($this.$flags & 4)
                                            jur_Lexer_skipComments($this);
                                        else
                                            $this.$index0 = $behind + 1 | 0;
                                        break b;
                                    default:
                                }
                                $this.$lookAhead = $nonCap | (-536870912);
                                break b;
                            case 46:
                                $this.$lookAhead = (-536870866);
                                break b;
                            case 91:
                                $this.$lookAhead = (-536870821);
                                $this.$mode3 = 2;
                                break b;
                            case 93:
                                if ($behind != 2)
                                    break b;
                                $this.$lookAhead = (-536870819);
                                break b;
                            case 94:
                                $this.$lookAhead = (-536870818);
                                break b;
                            case 123:
                                $this.$lookAheadST = jur_Lexer_processQuantifier($this, $nonCap);
                                break b;
                            case 124:
                                $this.$lookAhead = (-536870788);
                                break b;
                            default:
                        }
                    else if ($behind == 2)
                        switch ($nonCap) {
                            case 38:
                                $this.$lookAhead = (-536870874);
                                break b;
                            case 45:
                                $this.$lookAhead = (-536870867);
                                break b;
                            case 91:
                                $this.$lookAhead = (-536870821);
                                break b;
                            case 93:
                                $this.$lookAhead = (-536870819);
                                break b;
                            case 94:
                                $this.$lookAhead = (-536870818);
                                break b;
                            default:
                        }
                }
            }
            if ($reread)
                continue;
            else
                break;
        }
        return;
    }
    $cs = new jl_IndexOutOfBoundsException;
    $cs.$suppressionEnabled = 1;
    $cs.$writableStackTrace = 1;
    $rt_throw($cs);
},
jur_Lexer_parseCharClassName = $this => {
    let $sb, $ch, var$3, var$4, var$5, var$6, var$7, var$8;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(10);
    $ch = $this.$index0;
    var$3 = $this.$pattern0;
    var$4 = var$3.data;
    var$5 = var$4.length;
    if ($ch < (var$5 - 2 | 0)) {
        if (var$4[$ch] != 123) {
            $sb = new jl_String;
            $this.$prevNW = $ch;
            if ($this.$flags & 4)
                jur_Lexer_skipComments($this);
            else
                $this.$index0 = $ch + 1 | 0;
            var$6 = $this.$prevNW;
            if (var$6 >= 0 && 1 <= (var$5 - var$6 | 0)) {
                $sb.$nativeString = $rt_charArrayToString(var$3.data, var$6, 1);
                var$7 = new jl_StringBuilder;
                var$7.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(1739));
                jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $sb);
                $sb = new jl_String;
                var$3 = var$7.$buffer;
                var$4 = var$3.data;
                var$5 = var$7.$length0;
                var$6 = var$4.length;
                if (var$5 >= 0 && var$5 <= (var$6 - 0 | 0)) {
                    $sb.$nativeString = $rt_charArrayToString(var$3.data, 0, var$5);
                    return $sb;
                }
                $sb = new jl_IndexOutOfBoundsException;
                $sb.$suppressionEnabled = 1;
                $sb.$writableStackTrace = 1;
                $rt_throw($sb);
            }
            $sb = new jl_IndexOutOfBoundsException;
            $sb.$suppressionEnabled = 1;
            $sb.$writableStackTrace = 1;
            $rt_throw($sb);
        }
        $this.$prevNW = $ch;
        if ($this.$flags & 4)
            jur_Lexer_skipComments($this);
        else
            $this.$index0 = $ch + 1 | 0;
        $ch = 0;
        a: {
            while (true) {
                var$5 = $this.$index0;
                var$3 = $this.$pattern0.data;
                if (var$5 >= (var$3.length - 2 | 0))
                    break;
                $this.$prevNW = var$5;
                if ($this.$flags & 4)
                    jur_Lexer_skipComments($this);
                else
                    $this.$index0 = var$5 + 1 | 0;
                $ch = var$3[$this.$prevNW];
                if ($ch == 125)
                    break a;
                var$5 = $sb.$length0;
                jl_AbstractStringBuilder_insertSpace($sb, var$5, var$5 + 1 | 0);
                $sb.$buffer.data[var$5] = $ch;
            }
        }
        if ($ch != 125) {
            $sb = new jur_PatternSyntaxException;
            var$8 = $this.$orig;
            $ch = $this.$index0;
            $sb.$suppressionEnabled = 1;
            $sb.$writableStackTrace = 1;
            $sb.$index3 = (-1);
            $sb.$desc = $rt_s(3);
            $sb.$pattern = var$8;
            $sb.$index3 = $ch;
            $rt_throw($sb);
        }
    }
    $ch = $sb.$length0;
    if (!$ch) {
        $sb = new jur_PatternSyntaxException;
        var$8 = $this.$orig;
        $ch = $this.$index0;
        $sb.$suppressionEnabled = 1;
        $sb.$writableStackTrace = 1;
        $sb.$index3 = (-1);
        $sb.$desc = $rt_s(3);
        $sb.$pattern = var$8;
        $sb.$index3 = $ch;
        $rt_throw($sb);
    }
    var$7 = new jl_String;
    var$3 = $sb.$buffer;
    var$6 = var$3.data.length;
    if ($ch >= 0 && $ch <= (var$6 - 0 | 0)) {
        var$7.$nativeString = $rt_charArrayToString(var$3.data, 0, $ch);
        if (var$7.$nativeString.length == 1) {
            $sb = new jl_StringBuilder;
            $sb.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, $rt_s(1739));
            jl_AbstractStringBuilder_insert($sb, $sb.$length0, var$7);
            var$7 = new jl_String;
            var$3 = $sb.$buffer;
            var$4 = var$3.data;
            var$5 = $sb.$length0;
            var$6 = var$4.length;
            if (var$5 >= 0 && var$5 <= (var$6 - 0 | 0)) {
                var$7.$nativeString = $rt_charArrayToString(var$3.data, 0, var$5);
                return var$7;
            }
            $sb = new jl_IndexOutOfBoundsException;
            $sb.$suppressionEnabled = 1;
            $sb.$writableStackTrace = 1;
            $rt_throw($sb);
        }
        b: {
            c: {
                if (var$7.$nativeString.length > 3) {
                    if (var$7 === $rt_s(1739) ? 1 : jl_String_startsWith(var$7, $rt_s(1739), 0))
                        break c;
                    if (var$7 === $rt_s(1740) ? 1 : jl_String_startsWith(var$7, $rt_s(1740), 0))
                        break c;
                }
                break b;
            }
            var$7 = jl_String_substring(var$7, 2, var$7.$nativeString.length);
        }
        return var$7;
    }
    $sb = new jl_IndexOutOfBoundsException;
    $sb.$suppressionEnabled = 1;
    $sb.$writableStackTrace = 1;
    $rt_throw($sb);
},
jur_Lexer_processQuantifier = ($this, $ch) => {
    let $sb, $min, $max, var$5, var$6, $mod, var$8, $$je;
    $sb = new jl_StringBuilder;
    $sb.$buffer = $rt_createCharArray(4);
    $min = (-1);
    $max = 2147483647;
    a: {
        while (true) {
            var$5 = $this.$index0;
            var$6 = $this.$pattern0.data;
            if (var$5 >= var$6.length)
                break a;
            $this.$prevNW = var$5;
            if ($this.$flags & 4)
                jur_Lexer_skipComments($this);
            else
                $this.$index0 = var$5 + 1 | 0;
            $ch = var$6[$this.$prevNW];
            if ($ch == 125)
                break a;
            if ($ch == 44 && $min < 0)
                try {
                    $min = jl_Integer_parseInt0(jl_StringBuilder_toString($sb), 10);
                    jl_StringBuilder_delete($sb, 0, jl_StringBuilder_length($sb));
                    continue;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                        break;
                    } else {
                        throw $$e;
                    }
                }
            $mod = $ch & 65535;
            var$5 = $sb.$length0;
            jl_AbstractStringBuilder_insertSpace($sb, var$5, var$5 + 1 | 0);
            $sb.$buffer.data[var$5] = $mod;
        }
        $sb = new jur_PatternSyntaxException;
        var$8 = $this.$orig;
        $ch = $this.$index0;
        $sb.$suppressionEnabled = 1;
        $sb.$writableStackTrace = 1;
        $sb.$index3 = (-1);
        $sb.$desc = $rt_s(3);
        $sb.$pattern = var$8;
        $sb.$index3 = $ch;
        $rt_throw($sb);
    }
    if ($ch != 125) {
        $sb = new jur_PatternSyntaxException;
        var$8 = $this.$orig;
        $ch = $this.$index0;
        $sb.$suppressionEnabled = 1;
        $sb.$writableStackTrace = 1;
        $sb.$index3 = (-1);
        $sb.$desc = $rt_s(3);
        $sb.$pattern = var$8;
        $sb.$index3 = $ch;
        $rt_throw($sb);
    }
    if ($sb.$length0 > 0)
        b: {
            try {
                $max = jl_Integer_parseInt0(jl_StringBuilder_toString($sb), 10);
                if ($min >= 0)
                    break b;
                $min = $max;
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_NumberFormatException) {
                } else {
                    throw $$e;
                }
            }
            $sb = new jur_PatternSyntaxException;
            var$8 = $this.$orig;
            $ch = $this.$index0;
            $sb.$suppressionEnabled = 1;
            $sb.$writableStackTrace = 1;
            $sb.$index3 = (-1);
            $sb.$desc = $rt_s(3);
            $sb.$pattern = var$8;
            $sb.$index3 = $ch;
            $rt_throw($sb);
        }
    else if ($min < 0) {
        $sb = new jur_PatternSyntaxException;
        var$8 = $this.$orig;
        $ch = $this.$index0;
        $sb.$suppressionEnabled = 1;
        $sb.$writableStackTrace = 1;
        $sb.$index3 = (-1);
        $sb.$desc = $rt_s(3);
        $sb.$pattern = var$8;
        $sb.$index3 = $ch;
        $rt_throw($sb);
    }
    if (($min | $max | ($max - $min | 0)) < 0) {
        $sb = new jur_PatternSyntaxException;
        var$8 = $this.$orig;
        $ch = $this.$index0;
        $sb.$suppressionEnabled = 1;
        $sb.$writableStackTrace = 1;
        $sb.$index3 = (-1);
        $sb.$desc = $rt_s(3);
        $sb.$pattern = var$8;
        $sb.$index3 = $ch;
        $rt_throw($sb);
    }
    var$5 = $this.$index0;
    var$6 = $this.$pattern0.data;
    $mod = var$5 >= var$6.length ? 42 : var$6[var$5];
    c: {
        switch ($mod) {
            case 43:
                $this.$lookAhead = (-2147483525);
                $this.$prevNW = var$5;
                if ($this.$flags & 4)
                    jur_Lexer_skipComments($this);
                else
                    $this.$index0 = var$5 + 1 | 0;
                break c;
            case 63:
                $this.$lookAhead = (-1073741701);
                $this.$prevNW = var$5;
                if ($this.$flags & 4)
                    jur_Lexer_skipComments($this);
                else
                    $this.$index0 = var$5 + 1 | 0;
                break c;
            default:
        }
        $this.$lookAhead = (-536870789);
    }
    $sb = new jur_Quantifier;
    $sb.$min0 = $min;
    $sb.$max0 = $max;
    return $sb;
},
jur_Lexer_isLetter = $ch => {
    return $ch < 0 ? 0 : 1;
},
jur_Lexer_readHex = ($this, $max) => {
    let $st, $length, $i, var$5, var$6, var$7, var$8, var$9, $$je;
    $st = new jl_StringBuilder;
    $st.$buffer = $rt_createCharArray($max);
    $length = $this.$pattern0.data.length - 2 | 0;
    $i = 0;
    while (true) {
        var$5 = $rt_compare($i, $max);
        if (var$5 >= 0)
            break;
        var$6 = $this.$index0;
        if (var$6 >= $length)
            break;
        var$7 = $this.$pattern0;
        $this.$prevNW = var$6;
        if ($this.$flags & 4)
            jur_Lexer_skipComments($this);
        else
            $this.$index0 = var$6 + 1 | 0;
        var$6 = var$7.data[$this.$prevNW];
        var$8 = $st.$length0;
        jl_AbstractStringBuilder_insertSpace($st, var$8, var$8 + 1 | 0);
        $st.$buffer.data[var$8] = var$6;
        $i = $i + 1 | 0;
    }
    if (!var$5)
        a: {
            try {
                $max = jl_Integer_parseInt0(jl_StringBuilder_toString($st), 16);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_NumberFormatException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            return $max;
        }
    $st = new jur_PatternSyntaxException;
    var$9 = $this.$orig;
    $max = $this.$index0;
    $st.$suppressionEnabled = 1;
    $st.$writableStackTrace = 1;
    $st.$index3 = (-1);
    $st.$desc = $rt_s(3);
    $st.$pattern = var$9;
    $st.$index3 = $max;
    $rt_throw($st);
},
jur_Lexer_readOctals = $this => {
    let $max, $i, var$3, $length, $first, var$6, var$7, var$8, var$9, var$10;
    $max = 3;
    $i = 1;
    var$3 = $this.$pattern0.data;
    $length = var$3.length - 2 | 0;
    $first = jl_Character_getNumericValue(var$3[$this.$index0]);
    if ($first >= 8)
        $first = (-1);
    switch ($first) {
        case -1:
            break;
        default:
            if ($first > 3)
                $max = 2;
            var$6 = $this.$index0;
            $this.$prevNW = var$6;
            if ($this.$flags & 4)
                jur_Lexer_skipComments($this);
            else
                $this.$index0 = var$6 + 1 | 0;
            a: {
                while (true) {
                    if ($i >= $max)
                        break a;
                    var$7 = $this.$index0;
                    if (var$7 >= $length)
                        break a;
                    var$8 = jl_Character_getNumericValue($this.$pattern0.data[var$7]);
                    if (var$8 >= 8)
                        var$8 = (-1);
                    if (var$8 < 0)
                        break;
                    $first = ($first * 8 | 0) + var$8 | 0;
                    var$6 = $this.$index0;
                    $this.$prevNW = var$6;
                    if ($this.$flags & 4)
                        jur_Lexer_skipComments($this);
                    else
                        $this.$index0 = var$6 + 1 | 0;
                    $i = $i + 1 | 0;
                }
            }
            return $first;
    }
    var$9 = new jur_PatternSyntaxException;
    var$10 = $this.$orig;
    $max = $this.$index0;
    var$9.$suppressionEnabled = 1;
    var$9.$writableStackTrace = 1;
    var$9.$index3 = (-1);
    var$9.$desc = $rt_s(3);
    var$9.$pattern = var$10;
    var$9.$index3 = $max;
    $rt_throw(var$9);
},
jur_Lexer_readFlags = $this => {
    let $pos, $res, var$3, var$4, var$5, var$6, var$7;
    $pos = 1;
    $res = $this.$flags;
    a: while (true) {
        var$3 = $this.$index0;
        var$4 = $this.$pattern0.data;
        if (var$3 >= var$4.length) {
            var$5 = new jur_PatternSyntaxException;
            var$6 = $this.$orig;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            var$5.$index3 = (-1);
            var$5.$desc = $rt_s(3);
            var$5.$pattern = var$6;
            var$5.$index3 = var$3;
            $rt_throw(var$5);
        }
        b: {
            c: {
                switch (var$4[var$3]) {
                    case 41:
                        $this.$prevNW = var$3;
                        if ($this.$flags & 4)
                            jur_Lexer_skipComments($this);
                        else
                            $this.$index0 = var$3 + 1 | 0;
                        return $res | 256;
                    case 45:
                        if (!$pos) {
                            var$7 = new jur_PatternSyntaxException;
                            var$6 = $this.$orig;
                            var$7.$suppressionEnabled = 1;
                            var$7.$writableStackTrace = 1;
                            var$7.$index3 = (-1);
                            var$7.$desc = $rt_s(3);
                            var$7.$pattern = var$6;
                            var$7.$index3 = var$3;
                            $rt_throw(var$7);
                        }
                        $pos = 0;
                        break b;
                    case 58:
                        break a;
                    case 100:
                        break c;
                    case 105:
                        $res = $pos ? $res | 2 : ($res ^ 2) & $res;
                        break b;
                    case 109:
                        $res = $pos ? $res | 8 : ($res ^ 8) & $res;
                        break b;
                    case 115:
                        $res = $pos ? $res | 32 : ($res ^ 32) & $res;
                        break b;
                    case 117:
                        $res = $pos ? $res | 64 : ($res ^ 64) & $res;
                        break b;
                    case 120:
                        $res = $pos ? $res | 4 : ($res ^ 4) & $res;
                        break b;
                    default:
                }
                break b;
            }
            $res = $pos ? $res | 1 : ($res ^ 1) & $res;
        }
        $this.$prevNW = var$3;
        if ($this.$flags & 4)
            jur_Lexer_skipComments($this);
        else
            $this.$index0 = var$3 + 1 | 0;
    }
    $this.$prevNW = var$3;
    if ($this.$flags & 4)
        jur_Lexer_skipComments($this);
    else
        $this.$index0 = var$3 + 1 | 0;
    return $res;
},
jur_Lexer_skipComments = $this => {
    let $length, var$2, var$3, var$4;
    $length = $this.$pattern0.data.length - 2 | 0;
    $this.$index0 = $this.$index0 + 1 | 0;
    a: while (true) {
        var$2 = $this.$index0;
        if (var$2 < $length) {
            b: {
                var$2 = $this.$pattern0.data[var$2];
                switch (var$2) {
                    case 9:
                    case 10:
                    case 11:
                    case 12:
                    case 13:
                    case 28:
                    case 29:
                    case 30:
                    case 31:
                        break;
                    case 160:
                    case 8199:
                    case 8239:
                        var$2 = 0;
                        break b;
                    default:
                        c: {
                            switch (jl_Character_getType(var$2)) {
                                case 12:
                                case 13:
                                case 14:
                                    break;
                                default:
                                    var$2 = 0;
                                    break c;
                            }
                            var$2 = 1;
                        }
                        break b;
                }
                var$2 = 1;
            }
            if (var$2) {
                $this.$index0 = $this.$index0 + 1 | 0;
                continue;
            }
        }
        var$2 = $this.$index0;
        if (var$2 >= $length)
            break;
        var$3 = $this.$pattern0.data;
        if (var$3[var$2] != 35)
            break;
        $this.$index0 = var$2 + 1 | 0;
        while (true) {
            var$4 = $this.$index0;
            if (var$4 >= $length)
                continue a;
            var$2 = var$3[var$4];
            if (var$2 != 10 && var$2 != 13 && var$2 != 133 && (var$2 | 1) != 8233 ? 0 : 1)
                continue a;
            $this.$index0 = var$4 + 1 | 0;
        }
    }
    return var$2;
},
jur_Lexer_getHangulDecomposition = $ch => {
    let $sIndex, $l, $v, $t;
    $sIndex = $ch - 44032 | 0;
    if ($sIndex >= 0 && $sIndex < 11172) {
        $l = 4352 + ($sIndex / 588 | 0) | 0;
        $v = 4449 + (($sIndex % 588 | 0) / 28 | 0) | 0;
        $t = $sIndex % 28 | 0;
        return !$t ? $rt_createIntArrayFromData([$l, $v]) : $rt_createIntArrayFromData([$l, $v, 4519 + $t | 0]);
    }
    return null;
},
jur_Lexer_hasDecompositionNonNullCanClass = $ch => {
    return ($ch != 832 ? 0 : 1) | ($ch != 833 ? 0 : 1) | ($ch != 835 ? 0 : 1) | ($ch != 836 ? 0 : 1);
},
jur_Lexer_nextCodePoint = $this => {
    let var$1, $lowExpectedIndex, var$3, $high, $low;
    var$1 = $this.$pattern0;
    $lowExpectedIndex = $this.$index0;
    $this.$prevNW = $lowExpectedIndex;
    if ($this.$flags & 4)
        jur_Lexer_skipComments($this);
    else
        $this.$index0 = $lowExpectedIndex + 1 | 0;
    var$1 = var$1.data;
    var$3 = $this.$prevNW;
    $high = var$1[var$3];
    if (($high & 64512) != 55296 ? 0 : 1) {
        $lowExpectedIndex = var$3 + 1 | 0;
        var$1 = $this.$pattern0.data;
        if ($lowExpectedIndex < var$1.length) {
            $low = var$1[$lowExpectedIndex];
            if (($low & 64512) != 56320 ? 0 : 1) {
                var$3 = $this.$index0;
                $this.$prevNW = var$3;
                if ($this.$flags & 4)
                    jur_Lexer_skipComments($this);
                else
                    $this.$index0 = var$3 + 1 | 0;
                return (($high & 1023) << 10 | $low & 1023) + 65536 | 0;
            }
        }
    }
    return $high;
};
function jur_PatternSyntaxException() {
    let a = this; jl_IllegalArgumentException.call(a);
    a.$desc = null;
    a.$pattern = null;
    a.$index3 = 0;
}
let jur_PatternSyntaxException_getMessage = $this => {
    let $filler, var$2, $temp, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $filler = $rt_s(3);
    var$2 = $this.$index3;
    if (var$2 >= 1) {
        $temp = $rt_createCharArray(var$2);
        var$4 = $temp.data;
        var$2 = 0;
        var$5 = var$4.length;
        if (var$2 > var$5) {
            $filler = new jl_IllegalArgumentException;
            $filler.$suppressionEnabled = 1;
            $filler.$writableStackTrace = 1;
            $rt_throw($filler);
        }
        while (var$2 < var$5) {
            var$6 = var$2 + 1 | 0;
            var$4[var$2] = 32;
            var$2 = var$6;
        }
        $filler = new jl_String;
        $filler.$nativeString = $rt_charArrayToString($temp.data, 0, var$5);
    }
    a: {
        var$7 = $this.$desc;
        var$8 = $this.$pattern;
        if (var$8 !== null && var$8.$nativeString.length) {
            var$9 = $this.$index3;
            var$8 = $this.$pattern;
            var$10 = new jl_StringBuilder;
            var$10.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0(var$10, var$10.$length0, var$9, 10);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(118));
            var$9 = var$10.$length0;
            if (var$8 === null)
                var$8 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$10, var$9, var$8);
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert(var$10, var$10.$length0, $filler);
            $filler = new jl_String;
            $temp = var$10.$buffer;
            var$4 = $temp.data;
            var$2 = var$10.$length0;
            var$5 = var$4.length;
            if (var$2 >= 0 && var$2 <= (var$5 - 0 | 0)) {
                $filler.$nativeString = $rt_charArrayToString($temp.data, 0, var$2);
                break a;
            }
            $filler = new jl_IndexOutOfBoundsException;
            $filler.$suppressionEnabled = 1;
            $filler.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($filler);
            $rt_throw($filler);
        }
        $filler = $rt_s(3);
    }
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    var$9 = var$8.$length0;
    if (var$7 === null)
        var$7 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$8, var$9, var$7);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $filler);
    $filler = new jl_String;
    $temp = var$8.$buffer;
    var$4 = $temp.data;
    var$2 = var$8.$length0;
    var$5 = var$4.length;
    if (var$2 >= 0 && var$2 <= (var$5 - 0 | 0)) {
        $filler.$nativeString = $rt_charArrayToString($temp.data, 0, var$2);
        return $filler;
    }
    $filler = new jl_IndexOutOfBoundsException;
    $filler.$suppressionEnabled = 1;
    $filler.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($filler);
    $rt_throw($filler);
};
function jur_MatchResultImpl() {
    let a = this; jl_Object.call(a);
    a.$groupBounds = null;
    a.$consumers = null;
    a.$compQuantCounters = null;
    a.$string0 = null;
    a.$groupCount = 0;
    a.$valid = 0;
    a.$leftBound = 0;
    a.$rightBound = 0;
    a.$startIndex = 0;
    a.$transparentBounds = 0;
    a.$anchoringBounds = 0;
    a.$hitEnd = 0;
    a.$requireEnd = 0;
    a.$previousMatch = 0;
    a.$mode0 = 0;
}
let jur_MatchResultImpl__init_0 = ($this, $string, $leftBound, $rightBound, $groupCount, $compQuantCount, $consumersCount) => {
    let var$7, var$8, var$9, var$10, var$11, var$12;
    $this.$previousMatch = (-1);
    var$7 = $groupCount + 1 | 0;
    $this.$groupCount = var$7;
    var$8 = $rt_createIntArray(var$7 * 2 | 0);
    $this.$groupBounds = var$8;
    var$9 = $rt_createIntArray($consumersCount);
    var$10 = var$9.data;
    $this.$consumers = var$9;
    $groupCount = 0;
    $consumersCount = var$10.length;
    var$11 = $rt_compare($groupCount, $consumersCount);
    if (var$11 > 0) {
        $string = new jl_IllegalArgumentException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    while ($groupCount < $consumersCount) {
        var$7 = $groupCount + 1 | 0;
        var$10[$groupCount] = (-1);
        $groupCount = var$7;
    }
    if ($compQuantCount > 0)
        $this.$compQuantCounters = $rt_createIntArray($compQuantCount);
    var$8 = var$8.data;
    var$7 = 0;
    var$12 = var$8.length;
    $groupCount = $rt_compare(var$7, var$12);
    if ($groupCount > 0) {
        $string = new jl_IllegalArgumentException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    while (var$7 < var$12) {
        $compQuantCount = var$7 + 1 | 0;
        var$8[var$7] = (-1);
        var$7 = $compQuantCount;
    }
    $this.$valid = 0;
    $this.$mode0 = 2;
    $compQuantCount = 0;
    if ($groupCount > 0) {
        $string = new jl_IllegalArgumentException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    while ($compQuantCount < var$12) {
        $groupCount = $compQuantCount + 1 | 0;
        var$8[$compQuantCount] = (-1);
        $compQuantCount = $groupCount;
    }
    $groupCount = 0;
    if (var$11 > 0) {
        $string = new jl_IllegalArgumentException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    while ($groupCount < $consumersCount) {
        var$7 = $groupCount + 1 | 0;
        var$10[$groupCount] = (-1);
        $groupCount = var$7;
    }
    if ($string !== null)
        $this.$string0 = $string;
    if ($leftBound >= 0) {
        $this.$leftBound = $leftBound;
        $this.$rightBound = $rightBound;
    }
    $this.$startIndex = $this.$leftBound;
},
jur_MatchResultImpl__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new jur_MatchResultImpl();
    jur_MatchResultImpl__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
},
jur_MatchResultImpl_end0 = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    if (!$this.$valid) {
        var$1 = new jl_IllegalStateException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (0 < $this.$groupCount)
        return $this.$groupBounds.data[1];
    var$1 = new jl_IndexOutOfBoundsException;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, 0, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = var$3;
        $rt_throw(var$1);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
jur_MatchResultImpl_end = ($this, $group) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if (!$this.$valid) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if ($group >= 0 && $group < $this.$groupCount)
        return $this.$groupBounds.data[($group * 2 | 0) + 1 | 0];
    var$2 = new jl_IndexOutOfBoundsException;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, $group, 10);
    var$4 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$4;
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jur_MatchResultImpl_start = ($this, $group) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if (!$this.$valid) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if ($group >= 0 && $group < $this.$groupCount)
        return $this.$groupBounds.data[$group * 2 | 0];
    var$2 = new jl_IndexOutOfBoundsException;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, $group, 10);
    var$4 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$4;
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jur_MatchResultImpl_checkGroup = ($this, $group) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if (!$this.$valid) {
        var$2 = new jl_IllegalStateException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    if ($group >= 0 && $group < $this.$groupCount)
        return;
    var$2 = new jl_IndexOutOfBoundsException;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, $group, 10);
    var$4 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = var$4;
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
jur_MatchResultImpl_setBounds = ($this, $leftBound, $rightBound) => {
    $this.$leftBound = $leftBound;
    $this.$rightBound = $rightBound;
},
jur_NonCapFSet = $rt_classWithoutFields(jur_FSet),
jur_NonCapFSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $gr, var$5;
    $gr = $this.$groupIndex0;
    var$5 = $matchResult.$consumers.data;
    var$5[$gr] = $stringIndex - var$5[$gr] | 0;
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_NonCapFSet_getName = $this => {
    return $rt_s(1741);
},
jur_NonCapFSet_hasConsumed = ($this, $mr) => {
    return 0;
},
jur_AheadFSet = $rt_classWithoutFields(jur_FSet),
jur_AheadFSet__init_ = $this => {
    let var$1, var$2;
    jur_FSet_$callClinit();
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
    $this.$groupIndex0 = (-1);
},
jur_AheadFSet__init_0 = () => {
    let var_0 = new jur_AheadFSet();
    jur_AheadFSet__init_(var_0);
    return var_0;
},
jur_AheadFSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    return $stringIndex;
},
jur_AheadFSet_getName = $this => {
    return $rt_s(1742);
},
jur_BehindFSet = $rt_classWithoutFields(jur_FSet),
jur_BehindFSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $gr;
    $gr = $this.$groupIndex0;
    if ($matchResult.$consumers.data[$gr] != $stringIndex)
        $stringIndex = (-1);
    return $stringIndex;
},
jur_BehindFSet_getName = $this => {
    return $rt_s(1743);
};
function jur_AtomicFSet() {
    jur_FSet.call(this);
    this.$index9 = 0;
}
let jur_AtomicFSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $gr, var$5;
    $gr = $this.$groupIndex0;
    var$5 = $matchResult.$consumers.data;
    var$5[$gr] = $stringIndex - var$5[$gr] | 0;
    $this.$index9 = $stringIndex;
    return $stringIndex;
},
jur_AtomicFSet_getName = $this => {
    return $rt_s(1744);
},
jur_AtomicFSet_hasConsumed = ($this, $mr) => {
    return 0;
},
jur_FinalSet = $rt_classWithoutFields(jur_FSet),
jur_FinalSet__init_ = $this => {
    let var$1, var$2;
    jur_FSet_$callClinit();
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
    $this.$groupIndex0 = 0;
},
jur_FinalSet__init_0 = () => {
    let var_0 = new jur_FinalSet();
    jur_FinalSet__init_(var_0);
    return var_0;
},
jur_FinalSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    if ($matchResult.$mode0 != 1 && $stringIndex != $matchResult.$rightBound)
        return (-1);
    $matchResult.$valid = 1;
    $matchResult.$groupBounds.data[1] = $stringIndex;
    return $stringIndex;
},
jur_FinalSet_getName = $this => {
    return $rt_s(1745);
};
function jur_LeafSet() {
    jur_AbstractSet.call(this);
    this.$charCount0 = 0;
}
let jur_LeafSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $shift;
    if (($stringIndex + $this.$charCount() | 0) > $matchResult.$rightBound) {
        $matchResult.$hitEnd = 1;
        return (-1);
    }
    $shift = $this.$accepts($stringIndex, $testString);
    if ($shift < 0)
        return (-1);
    return $this.$next4.$matches($stringIndex + $shift | 0, $testString, $matchResult);
},
jur_LeafSet_charCount = $this => {
    return $this.$charCount0;
},
jur_LeafSet_hasConsumed = ($this, $mr) => {
    return 1;
},
jur_EmptySet = $rt_classWithoutFields(jur_LeafSet),
jur_EmptySet_accepts = ($this, $stringIndex, $testString) => {
    return 0;
},
jur_EmptySet_find = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, $startStr, $low;
    $strLength = $matchResult.$rightBound;
    $startStr = $matchResult.$leftBound;
    a: {
        b: {
            while (true) {
                $low = $rt_compare($stringIndex, $strLength);
                if ($low > 0)
                    return (-1);
                if ($low < 0) {
                    if ($stringIndex < 0)
                        break b;
                    if ($stringIndex >= $testString.$nativeString.length)
                        break b;
                    if ((($testString.$nativeString.charCodeAt($stringIndex) & 64512) != 56320 ? 0 : 1) && $stringIndex > $startStr) {
                        $low = $stringIndex - 1 | 0;
                        if ($low < 0)
                            break a;
                        if ($low >= $testString.$nativeString.length)
                            break a;
                        if (($testString.$nativeString.charCodeAt($low) & 64512) != 55296 ? 0 : 1) {
                            $stringIndex = $stringIndex + 1 | 0;
                            continue;
                        }
                    }
                }
                if ($this.$next4.$matches($stringIndex, $testString, $matchResult) >= 0)
                    break;
                $stringIndex = $stringIndex + 1 | 0;
            }
            return $stringIndex;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_EmptySet_findBack = ($this, $stringIndex, $startSearch, $testString, $matchResult) => {
    let $strLength, $startStr, var$7;
    $strLength = $matchResult.$rightBound;
    $startStr = $matchResult.$leftBound;
    a: {
        b: {
            while (true) {
                if ($startSearch < $stringIndex)
                    return (-1);
                if ($startSearch < $strLength) {
                    if ($startSearch < 0)
                        break b;
                    if ($startSearch >= $testString.$nativeString.length)
                        break b;
                    if ((($testString.$nativeString.charCodeAt($startSearch) & 64512) != 56320 ? 0 : 1) && $startSearch > $startStr) {
                        var$7 = $startSearch - 1 | 0;
                        if (var$7 < 0)
                            break a;
                        if (var$7 >= $testString.$nativeString.length)
                            break a;
                        if (($testString.$nativeString.charCodeAt(var$7) & 64512) != 55296 ? 0 : 1) {
                            $startSearch = $startSearch + (-1) | 0;
                            continue;
                        }
                    }
                }
                if ($this.$next4.$matches($startSearch, $testString, $matchResult) >= 0)
                    break;
                $startSearch = $startSearch + (-1) | 0;
            }
            return $startSearch;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_EmptySet_getName = $this => {
    return $rt_s(1746);
},
jur_EmptySet_hasConsumed = ($this, $mr) => {
    return 0;
};
function jur_JointSet() {
    let a = this; jur_AbstractSet.call(a);
    a.$children = null;
    a.$fSet = null;
    a.$groupIndex = 0;
}
let jur_JointSet__init_ = $this => {
    let var$1, var$2;
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jur_JointSet__init_0 = () => {
    let var_0 = new jur_JointSet();
    jur_JointSet__init_(var_0);
    return var_0;
},
jur_JointSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $e, $size, var$6, $shift, $start, $i;
    $e = $this.$children;
    if ($e === null)
        return (-1);
    $size = $this.$groupIndex;
    var$6 = $matchResult.$groupBounds.data;
    $shift = $size * 2 | 0;
    $start = var$6[$shift];
    var$6[$shift] = $stringIndex;
    $size = $e.$size0;
    $i = 0;
    a: {
        while (true) {
            if ($i >= $size) {
                $stringIndex = $this.$groupIndex;
                $matchResult.$groupBounds.data[$stringIndex * 2 | 0] = $start;
                return (-1);
            }
            $e = $this.$children;
            if ($i < 0)
                break a;
            if ($i >= $e.$size0)
                break a;
            $shift = $e.$array.data[$i].$matches($stringIndex, $testString, $matchResult);
            if ($shift >= 0)
                break;
            $i = $i + 1 | 0;
        }
        return $shift;
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_JointSet_setNext = ($this, $next) => {
    $this.$fSet.$next4 = $next;
},
jur_JointSet_getName = $this => {
    return $rt_s(1747);
},
jur_JointSet_first = ($this, $set) => {
    let var$2, $i$index, var$4, var$5, $i$index_0;
    a: {
        var$2 = $this.$children;
        if (var$2 !== null) {
            $i$index = 0;
            var$4 = var$2.$modCount;
            var$5 = var$2.$size();
            while (true) {
                if (!($i$index >= var$5 ? 0 : 1))
                    break a;
                if (var$4 < var$2.$modCount) {
                    $set = new ju_ConcurrentModificationException;
                    $set.$suppressionEnabled = 1;
                    $set.$writableStackTrace = 1;
                    $rt_throw($set);
                }
                $i$index_0 = $i$index + 1 | 0;
                if ((var$2.$get($i$index)).$first($set))
                    break;
                $i$index = $i$index_0;
            }
            return 1;
        }
    }
    return 0;
},
jur_JointSet_hasConsumed = ($this, $matchResult) => {
    let var$2, var$3, var$4;
    var$2 = $this.$groupIndex;
    var$3 = $matchResult.$groupBounds.data;
    var$2 = var$2 * 2 | 0;
    var$4 = var$2 + 1 | 0;
    return var$3[var$4] >= 0 && var$3[var$2] == var$3[var$4] ? 0 : 1;
},
jur_JointSet_processSecondPass = $this => {
    let $child, $childrenSize, $i, $set;
    $this.$isSecondPassVisited = 1;
    $child = $this.$fSet;
    if ($child !== null && !$child.$isSecondPassVisited)
        jur_AbstractSet_processSecondPass($child);
    a: {
        b: {
            $child = $this.$children;
            if ($child !== null) {
                $childrenSize = $child.$size0;
                $i = 0;
                while (true) {
                    if ($i >= $childrenSize)
                        break b;
                    $child = $this.$children;
                    if ($i < 0)
                        break a;
                    if ($i >= $child.$size0)
                        break a;
                    $child = $child.$array.data[$i];
                    $set = $child.$processBackRefReplacement();
                    if ($set === null)
                        $set = $child;
                    else {
                        $child.$isSecondPassVisited = 1;
                        ju_ArrayList_remove($this.$children, $i);
                        ju_ArrayList_add0($this.$children, $i, $set);
                    }
                    if (!$set.$isSecondPassVisited)
                        $set.$processSecondPass();
                    $i = $i + 1 | 0;
                }
            }
        }
        if ($this.$next4 !== null)
            jur_AbstractSet_processSecondPass($this);
        return;
    }
    $child = new jl_IndexOutOfBoundsException;
    $child.$suppressionEnabled = 1;
    $child.$writableStackTrace = 1;
    $rt_throw($child);
},
jur_NonCapJointSet = $rt_classWithoutFields(jur_JointSet),
jur_NonCapJointSet__init_ = $this => {
    jur_JointSet__init_($this);
},
jur_NonCapJointSet__init_0 = () => {
    let var_0 = new jur_NonCapJointSet();
    jur_NonCapJointSet__init_(var_0);
    return var_0;
},
jur_NonCapJointSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $i, var$5, $start, $size, $e, $shift;
    $i = $this.$groupIndex;
    var$5 = $matchResult.$consumers.data;
    $start = var$5[$i];
    var$5[$i] = $stringIndex;
    $size = $this.$children.$size0;
    $i = 0;
    a: {
        while (true) {
            if ($i >= $size) {
                $stringIndex = $this.$groupIndex;
                $matchResult.$consumers.data[$stringIndex] = $start;
                return (-1);
            }
            $e = $this.$children;
            if ($i < 0)
                break a;
            if ($i >= $e.$size0)
                break a;
            $shift = $e.$array.data[$i].$matches($stringIndex, $testString, $matchResult);
            if ($shift >= 0)
                break;
            $i = $i + 1 | 0;
        }
        return $shift;
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_NonCapJointSet_getName = $this => {
    return $rt_s(1748);
},
jur_NonCapJointSet_hasConsumed = ($this, $matchResult) => {
    let $cons;
    $cons = $this.$groupIndex;
    return !$matchResult.$consumers.data[$cons] ? 0 : 1;
},
jur_AtomicJointSet = $rt_classWithoutFields(jur_NonCapJointSet),
jur_AtomicJointSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $shift, var$5, $start, $size, $i, $e;
    $shift = $this.$groupIndex;
    var$5 = $matchResult.$consumers.data;
    $start = var$5[$shift];
    var$5[$shift] = $stringIndex;
    $size = $this.$children.$size0;
    $i = 0;
    a: {
        while ($i < $size) {
            $e = $this.$children;
            if ($i < 0)
                break a;
            if ($i >= $e.$size0)
                break a;
            if ($e.$array.data[$i].$matches($stringIndex, $testString, $matchResult) >= 0)
                return $this.$next4.$matches($this.$fSet.$index9, $testString, $matchResult);
            $i = $i + 1 | 0;
        }
        $stringIndex = $this.$groupIndex;
        $matchResult.$consumers.data[$stringIndex] = $start;
        return (-1);
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_AtomicJointSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_AtomicJointSet_getName = $this => {
    return $rt_s(1748);
},
jur_PositiveLookAhead = $rt_classWithoutFields(jur_AtomicJointSet),
jur_PositiveLookAhead_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $size, $i, $e;
    $size = $this.$children.$size0;
    $i = 0;
    a: {
        while ($i < $size) {
            $e = $this.$children;
            if ($i < 0)
                break a;
            if ($i >= $e.$size0)
                break a;
            if ($e.$array.data[$i].$matches($stringIndex, $testString, $matchResult) >= 0)
                return $this.$next4.$matches($stringIndex, $testString, $matchResult);
            $i = $i + 1 | 0;
        }
        return (-1);
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_PositiveLookAhead_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_PositiveLookAhead_getName = $this => {
    return $rt_s(1749);
},
jur_NegativeLookAhead = $rt_classWithoutFields(jur_AtomicJointSet),
jur_NegativeLookAhead_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $size, $i, $e;
    $size = $this.$children.$size0;
    $i = 0;
    a: {
        while (true) {
            if ($i >= $size)
                return $this.$next4.$matches($stringIndex, $testString, $matchResult);
            $e = $this.$children;
            if ($i < 0)
                break a;
            if ($i >= $e.$size0)
                break a;
            if ($e.$array.data[$i].$matches($stringIndex, $testString, $matchResult) >= 0)
                break;
            $i = $i + 1 | 0;
        }
        return (-1);
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_NegativeLookAhead_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_NegativeLookAhead_getName = $this => {
    return $rt_s(1750);
},
jur_PositiveLookBehind = $rt_classWithoutFields(jur_AtomicJointSet),
jur_PositiveLookBehind_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $size, $leftBound, $shift, $i, $e;
    $size = $this.$children.$size0;
    $leftBound = $matchResult.$transparentBounds ? 0 : $matchResult.$leftBound;
    a: {
        b: {
            $shift = $this.$next4.$matches($stringIndex, $testString, $matchResult);
            if ($shift >= 0) {
                $i = $this.$groupIndex;
                $matchResult.$consumers.data[$i] = $stringIndex;
                $i = 0;
                while (true) {
                    if ($i >= $size)
                        break b;
                    $e = $this.$children;
                    if ($i < 0)
                        break a;
                    if ($i >= $e.$size0)
                        break a;
                    if ($e.$array.data[$i].$findBack($leftBound, $stringIndex, $testString, $matchResult) >= 0) {
                        $stringIndex = $this.$groupIndex;
                        $matchResult.$consumers.data[$stringIndex] = (-1);
                        return $shift;
                    }
                    $i = $i + 1 | 0;
                }
            }
        }
        return (-1);
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_PositiveLookBehind_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_PositiveLookBehind_getName = $this => {
    return $rt_s(1751);
},
jur_NegativeLookBehind = $rt_classWithoutFields(jur_AtomicJointSet),
jur_NegativeLookBehind_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $size, $i, $e;
    $size = $this.$children.$size0;
    $i = $this.$groupIndex;
    $matchResult.$consumers.data[$i] = $stringIndex;
    $i = 0;
    a: {
        while (true) {
            if ($i >= $size)
                return $this.$next4.$matches($stringIndex, $testString, $matchResult);
            $e = $this.$children;
            if ($i < 0)
                break a;
            if ($i >= $e.$size0)
                break a;
            if ($e.$array.data[$i].$findBack(0, $stringIndex, $testString, $matchResult) >= 0)
                break;
            $i = $i + 1 | 0;
        }
        return (-1);
    }
    $testString = new jl_IndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_NegativeLookBehind_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_NegativeLookBehind_getName = $this => {
    return $rt_s(1752);
};
function jur_SingleSet() {
    jur_JointSet.call(this);
    this.$kid = null;
}
let jur_SingleSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $shift, var$5, $start;
    $shift = $this.$groupIndex;
    var$5 = $matchResult.$groupBounds.data;
    $shift = $shift * 2 | 0;
    $start = var$5[$shift];
    var$5[$shift] = $stringIndex;
    $shift = $this.$kid.$matches($stringIndex, $testString, $matchResult);
    if ($shift >= 0)
        return $shift;
    $shift = $this.$groupIndex;
    $matchResult.$groupBounds.data[$shift * 2 | 0] = $start;
    return (-1);
},
jur_SingleSet_find = ($this, $stringIndex, $testString, $matchResult) => {
    let $res;
    $res = $this.$kid.$find0($stringIndex, $testString, $matchResult);
    if ($res >= 0) {
        $stringIndex = $this.$groupIndex;
        $matchResult.$groupBounds.data[$stringIndex * 2 | 0] = $res;
    }
    return $res;
},
jur_SingleSet_findBack = ($this, $stringIndex, $lastIndex, $testString, $matchResult) => {
    let $res;
    $res = $this.$kid.$findBack($stringIndex, $lastIndex, $testString, $matchResult);
    if ($res >= 0) {
        $stringIndex = $this.$groupIndex;
        $matchResult.$groupBounds.data[$stringIndex * 2 | 0] = $res;
    }
    return $res;
},
jur_SingleSet_first = ($this, $set) => {
    return $this.$kid.$first($set);
},
jur_SingleSet_processBackRefReplacement = $this => {
    let $set, var$2, var$3, var$4, var$5;
    $set = new jur_BackReferencedSingleSet;
    var$2 = $this.$kid;
    var$3 = $this.$fSet;
    var$4 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$4 + 1 | 0;
    var$5 = new jl_AbstractStringBuilder;
    var$5.$buffer = $rt_createCharArray(20);
    $set.$index1 = (jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$4, 10)).$toString();
    $set.$kid = var$2;
    $set.$fSet = var$3;
    $set.$groupIndex = var$3.$groupIndex0;
    $this.$next4 = $set;
    return $set;
},
jur_SingleSet_processSecondPass = $this => {
    let $set;
    $this.$isSecondPassVisited = 1;
    $set = $this.$fSet;
    if ($set !== null && !$set.$isSecondPassVisited)
        jur_AbstractSet_processSecondPass($set);
    $set = $this.$kid;
    if ($set !== null && !$set.$isSecondPassVisited) {
        $set = $set.$processBackRefReplacement();
        if ($set !== null) {
            $this.$kid.$isSecondPassVisited = 1;
            $this.$kid = $set;
        }
        $this.$kid.$processSecondPass();
    }
},
otjc_JSWeakRef = $rt_classWithoutFields(),
otjc_JSFinalizationRegistryConsumer = $rt_classWithoutFields(0),
otji_JSWrapper$_clinit_$lambda$_33_0 = $rt_classWithoutFields(),
otji_JSWrapper$_clinit_$lambda$_33_0__init_ = var$0 => {
    return;
},
otji_JSWrapper$_clinit_$lambda$_33_0__init_0 = () => {
    let var_0 = new otji_JSWrapper$_clinit_$lambda$_33_0();
    otji_JSWrapper$_clinit_$lambda$_33_0__init_(var_0);
    return var_0;
},
otji_JSWrapper$_clinit_$lambda$_33_0_accept$exported$0 = (var$0, var$1) => {
    let var$2;
    otji_JSWrapper_$callClinit();
    var$1 = var$1 === null ? null : var$1 instanceof $rt_objcls() ? var$1 : otji_JSWrapper_wrap(var$1);
    var$2 = otji_JSWrapper_stringWrappers;
    var$1 = var$1 === null ? null : var$1[$rt_jso_marker] === true ? var$1 : var$1.$js;
    var$2.delete(var$1);
},
otji_JSWrapper$_clinit_$lambda$_33_1 = $rt_classWithoutFields(),
otji_JSWrapper$_clinit_$lambda$_33_1__init_ = var$0 => {
    return;
},
otji_JSWrapper$_clinit_$lambda$_33_1__init_0 = () => {
    let var_0 = new otji_JSWrapper$_clinit_$lambda$_33_1();
    otji_JSWrapper$_clinit_$lambda$_33_1__init_(var_0);
    return var_0;
},
otji_JSWrapper$_clinit_$lambda$_33_1_accept$exported$0 = (var$0, var$1) => {
    let var$2;
    otji_JSWrapper_$callClinit();
    var$1 = var$1 === null ? null : var$1 instanceof $rt_objcls() ? var$1 : otji_JSWrapper_wrap(var$1);
    var$2 = otji_JSWrapper_numberWrappers;
    var$1 = var$1 === null ? null : var$1[$rt_jso_marker] === true ? var$1 : var$1.$js;
    var$2.delete(var$1);
},
otjc_JSObjects = $rt_classWithoutFields(),
otjc_JSObjects__init_ = $this => {
    return;
},
otjc_JSObjects__init_0 = () => {
    let var_0 = new otjc_JSObjects();
    otjc_JSObjects__init_(var_0);
    return var_0;
},
otjc_JSUndefined = $rt_classWithoutFields(),
otjc_JSUndefined__init_ = $this => {
    otji_JSWrapper_wrap($this);
},
otjc_JSUndefined__init_0 = () => {
    let var_0 = new otjc_JSUndefined();
    otjc_JSUndefined__init_(var_0);
    return var_0;
};
function jn_ByteOrder() {
    jl_Object.call(this);
    this.$name15 = null;
}
let jn_ByteOrder_BIG_ENDIAN = null,
jn_ByteOrder_LITTLE_ENDIAN = null,
jn_ByteOrder__clinit_ = () => {
    let var$1;
    var$1 = new jn_ByteOrder;
    var$1.$name15 = $rt_s(94);
    jn_ByteOrder_BIG_ENDIAN = var$1;
    var$1 = new jn_ByteOrder;
    var$1.$name15 = $rt_s(95);
    jn_ByteOrder_LITTLE_ENDIAN = var$1;
},
jur_SpecialToken = $rt_classWithoutFields();
function jur_AbstractCharClass() {
    let a = this; jur_SpecialToken.call(a);
    a.$alt = 0;
    a.$altSurrogates = 0;
    a.$lowHighSurrogates = null;
    a.$charClassWithoutSurrogates = null;
    a.$charClassWithSurrogates = null;
    a.$mayContainSupplCodepoints = 0;
}
let jur_AbstractCharClass_charClasses = null,
jur_AbstractCharClass_getBits = $this => {
    return null;
},
jur_AbstractCharClass_getLowHighSurrogates = $this => {
    return $this.$lowHighSurrogates;
},
jur_AbstractCharClass_hasLowHighSurrogates = $this => {
    return !$this.$altSurrogates ? (ju_BitSet_nextSetBit($this.$lowHighSurrogates, 0) >= 2048 ? 0 : 1) : ju_BitSet_nextClearBit($this.$lowHighSurrogates, 0) >= 2048 ? 0 : 1;
},
jur_AbstractCharClass_mayContainSupplCodepoints = $this => {
    return $this.$mayContainSupplCodepoints;
},
jur_AbstractCharClass_getInstance = $this => {
    return $this;
},
jur_AbstractCharClass_getSurrogates = $this => {
    let $lHS, var$2;
    if ($this.$charClassWithSurrogates === null) {
        $lHS = $this.$getLowHighSurrogates();
        var$2 = new jur_AbstractCharClass$1;
        var$2.$this$029 = $this;
        var$2.$val$lHS = $lHS;
        $lHS = new ju_BitSet;
        $lHS.$data4 = $rt_createIntArray(64);
        var$2.$lowHighSurrogates = $lHS;
        $this.$charClassWithSurrogates = var$2;
        jur_AbstractCharClass_setNegative(var$2, $this.$altSurrogates);
    }
    return $this.$charClassWithSurrogates;
},
jur_AbstractCharClass_getWithoutSurrogates = $this => {
    let $lHS, var$2;
    if ($this.$charClassWithoutSurrogates === null) {
        $lHS = $this.$getLowHighSurrogates();
        var$2 = new jur_AbstractCharClass$2;
        var$2.$this$021 = $this;
        var$2.$val$lHS0 = $lHS;
        var$2.$val$thisClass = $this;
        $lHS = new ju_BitSet;
        $lHS.$data4 = $rt_createIntArray(64);
        var$2.$lowHighSurrogates = $lHS;
        $this.$charClassWithoutSurrogates = var$2;
        jur_AbstractCharClass_setNegative(var$2, $this.$alt);
        $this.$charClassWithoutSurrogates.$mayContainSupplCodepoints = $this.$mayContainSupplCodepoints;
    }
    return $this.$charClassWithoutSurrogates;
},
jur_AbstractCharClass_hasUCI = $this => {
    return 0;
},
jur_AbstractCharClass_setNegative = ($this, $value) => {
    let var$2;
    var$2 = $this.$alt;
    if (var$2 ^ $value) {
        $this.$alt = var$2 ? 0 : 1;
        $this.$altSurrogates = $this.$altSurrogates ? 0 : 1;
    }
    if (!$this.$mayContainSupplCodepoints)
        $this.$mayContainSupplCodepoints = 1;
    return $this;
},
jur_AbstractCharClass_isNegative = $this => {
    return $this.$alt;
},
jur_AbstractCharClass_getPredefinedClass = ($name, $negative) => {
    $name = jur_AbstractCharClass$PredefinedCharacterClasses_getObject(jur_AbstractCharClass_charClasses, $name);
    if (!$negative && $name.$posValue === null)
        $name.$posValue = $name.$computeValue();
    else if ($negative && $name.$negValue === null)
        $name.$negValue = jur_AbstractCharClass_setNegative($name.$computeValue(), 1);
    return $negative ? $name.$negValue : $name.$posValue;
},
jur_AbstractCharClass__clinit_ = () => {
    jur_AbstractCharClass_charClasses = new jur_AbstractCharClass$PredefinedCharacterClasses;
};
function ju_MissingResourceException() {
    let a = this; jl_RuntimeException.call(a);
    a.$className0 = null;
    a.$key3 = null;
}
function jur_CharClass() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$ci = 0;
    a.$uci = 0;
    a.$hasUCI0 = 0;
    a.$invertedSurrogates = 0;
    a.$inverted = 0;
    a.$hideBits = 0;
    a.$bits = null;
    a.$nonBitSet = null;
}
let jur_CharClass__init_ = $this => {
    let var$1;
    var$1 = new ju_BitSet;
    var$1.$data4 = $rt_createIntArray(64);
    $this.$lowHighSurrogates = var$1;
    var$1 = new ju_BitSet;
    var$1.$data4 = $rt_createIntArray(2);
    $this.$bits = var$1;
},
jur_CharClass__init_0 = () => {
    let var_0 = new jur_CharClass();
    jur_CharClass__init_(var_0);
    return var_0;
},
jur_CharClass_add0 = ($this, $ch) => {
    let var$2;
    a: {
        if ($this.$ci) {
            b: {
                if (!($ch >= 97 && $ch <= 122)) {
                    if ($ch < 65)
                        break b;
                    if ($ch > 90)
                        break b;
                }
                if ($this.$inverted) {
                    ju_BitSet_clear($this.$bits, jur_Pattern_getSupplement($ch & 65535));
                    break a;
                }
                ju_BitSet_set0($this.$bits, jur_Pattern_getSupplement($ch & 65535));
                break a;
            }
            if ($this.$uci && $ch > 128) {
                $this.$hasUCI0 = 1;
                if (jl_Character_upperCaseMapping === null) {
                    if (jl_Character_$$metadata$$1 === null)
                        jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                    jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
                }
                $ch = jl_Character_mapChar(jl_Character_upperCaseMapping, $ch);
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                $ch = jl_Character_mapChar(jl_Character_lowerCaseMapping, $ch);
            }
        }
    }
    var$2 = $ch <= 56319 && $ch >= 55296 ? 1 : 0;
    if (!(!var$2 && !($ch <= 57343 && $ch >= 56320 ? 1 : 0))) {
        if ($this.$invertedSurrogates)
            ju_BitSet_clear($this.$lowHighSurrogates, $ch - 55296 | 0);
        else
            ju_BitSet_set0($this.$lowHighSurrogates, $ch - 55296 | 0);
    }
    if ($this.$inverted)
        ju_BitSet_clear($this.$bits, $ch);
    else
        ju_BitSet_set0($this.$bits, $ch);
    if (!$this.$mayContainSupplCodepoints && ($ch >= 65536 && $ch <= 1114111 ? 1 : 0))
        $this.$mayContainSupplCodepoints = 1;
    return $this;
},
jur_CharClass_add1 = ($this, $cc) => {
    let $curAlt, $nb, var$4;
    if (!$this.$mayContainSupplCodepoints && $cc.$mayContainSupplCodepoints)
        $this.$mayContainSupplCodepoints = 1;
    if ($this.$invertedSurrogates) {
        if (!$cc.$altSurrogates)
            ju_BitSet_andNot($this.$lowHighSurrogates, $cc.$getLowHighSurrogates());
        else
            ju_BitSet_and($this.$lowHighSurrogates, $cc.$getLowHighSurrogates());
    } else if (!$cc.$altSurrogates)
        ju_BitSet_or($this.$lowHighSurrogates, $cc.$getLowHighSurrogates());
    else {
        ju_BitSet_xor($this.$lowHighSurrogates, $cc.$getLowHighSurrogates());
        ju_BitSet_and($this.$lowHighSurrogates, $cc.$getLowHighSurrogates());
        $this.$altSurrogates = $this.$altSurrogates ? 0 : 1;
        $this.$invertedSurrogates = 1;
    }
    if (!$this.$hideBits && $cc.$getBits() !== null) {
        if ($this.$inverted) {
            if (!$cc.$alt)
                ju_BitSet_andNot($this.$bits, $cc.$getBits());
            else
                ju_BitSet_and($this.$bits, $cc.$getBits());
        } else if (!$cc.$alt)
            ju_BitSet_or($this.$bits, $cc.$getBits());
        else {
            ju_BitSet_xor($this.$bits, $cc.$getBits());
            ju_BitSet_and($this.$bits, $cc.$getBits());
            $this.$alt = $this.$alt ? 0 : 1;
            $this.$inverted = 1;
        }
    } else {
        $curAlt = $this.$alt;
        $nb = $this.$nonBitSet;
        if ($nb !== null) {
            if (!$curAlt) {
                var$4 = new jur_CharClass$5;
                var$4.$this$036 = $this;
                var$4.$val$curAlt10 = $curAlt;
                var$4.$val$nb0 = $nb;
                var$4.$val$cc = $cc;
                $cc = new ju_BitSet;
                $cc.$data4 = $rt_createIntArray(64);
                var$4.$lowHighSurrogates = $cc;
                $this.$nonBitSet = var$4;
            } else {
                var$4 = new jur_CharClass$4;
                var$4.$this$042 = $this;
                var$4.$val$curAlt6 = $curAlt;
                var$4.$val$nb3 = $nb;
                var$4.$val$cc2 = $cc;
                $cc = new ju_BitSet;
                $cc.$data4 = $rt_createIntArray(64);
                var$4.$lowHighSurrogates = $cc;
                $this.$nonBitSet = var$4;
            }
        } else {
            if ($curAlt && !$this.$inverted && ($this.$bits.$length3 ? 0 : 1)) {
                $nb = new jur_CharClass$1;
                $nb.$this$026 = $this;
                $nb.$val$cc3 = $cc;
                $cc = new ju_BitSet;
                $cc.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $cc;
                $this.$nonBitSet = $nb;
            } else if (!$curAlt) {
                $nb = new jur_CharClass$3;
                $nb.$this$06 = $this;
                $nb.$val$curAlt0 = $curAlt;
                $nb.$val$cc1 = $cc;
                $cc = new ju_BitSet;
                $cc.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $cc;
                $this.$nonBitSet = $nb;
            } else {
                $nb = new jur_CharClass$2;
                $nb.$this$05 = $this;
                $nb.$val$curAlt = $curAlt;
                $nb.$val$cc0 = $cc;
                $cc = new ju_BitSet;
                $cc.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $cc;
                $this.$nonBitSet = $nb;
            }
            $this.$hideBits = 1;
        }
    }
    return $this;
},
jur_CharClass_add = ($this, $i, $end) => {
    let var$3;
    if ($i > $end) {
        var$3 = new jl_IllegalArgumentException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    a: {
        b: {
            if (!$this.$ci) {
                if ($end < 55296)
                    break b;
                if ($i > 57343)
                    break b;
            }
            $end = $end + 1 | 0;
            while (true) {
                if ($i >= $end)
                    break a;
                jur_CharClass_add0($this, $i);
                $i = $i + 1 | 0;
            }
        }
        if ($this.$inverted)
            ju_BitSet_clear0($this.$bits, $i, $end + 1 | 0);
        else
            ju_BitSet_set($this.$bits, $i, $end + 1 | 0);
    }
    return $this;
},
jur_CharClass_union = ($this, $clazz) => {
    let $curAlt, var$3, $nb, var$5;
    if (!$this.$mayContainSupplCodepoints && $clazz.$mayContainSupplCodepoints)
        $this.$mayContainSupplCodepoints = 1;
    if ($clazz.$hasUCI0)
        $this.$hasUCI0 = 1;
    $curAlt = $this.$altSurrogates;
    if (!($curAlt ^ $clazz.$altSurrogates)) {
        if (!$curAlt)
            ju_BitSet_or($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
        else
            ju_BitSet_and($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
    } else if ($curAlt)
        ju_BitSet_andNot($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
    else {
        ju_BitSet_xor($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
        ju_BitSet_and($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
        $this.$altSurrogates = 1;
    }
    a: {
        if (!$this.$hideBits) {
            var$3 = $clazz.$hideBits;
            if ((!var$3 ? $clazz.$bits : null) !== null) {
                $curAlt = $this.$alt;
                if (!($curAlt ^ $clazz.$alt)) {
                    if (!$curAlt) {
                        ju_BitSet_or($this.$bits, !var$3 ? $clazz.$bits : null);
                        break a;
                    }
                    ju_BitSet_and($this.$bits, !var$3 ? $clazz.$bits : null);
                    break a;
                }
                if ($curAlt) {
                    ju_BitSet_andNot($this.$bits, !var$3 ? $clazz.$bits : null);
                    break a;
                }
                ju_BitSet_xor($this.$bits, !var$3 ? $clazz.$bits : null);
                ju_BitSet_and($this.$bits, !$clazz.$hideBits ? $clazz.$bits : null);
                $this.$alt = 1;
                break a;
            }
        }
        $curAlt = $this.$alt;
        $nb = $this.$nonBitSet;
        if ($nb !== null) {
            if (!$curAlt) {
                var$5 = new jur_CharClass$11;
                var$5.$this$016 = $this;
                var$5.$val$curAlt2 = $curAlt;
                var$5.$val$nb4 = $nb;
                var$5.$val$clazz1 = $clazz;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                var$5.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = var$5;
            } else {
                var$5 = new jur_CharClass$10;
                var$5.$this$031 = $this;
                var$5.$val$curAlt9 = $curAlt;
                var$5.$val$nb = $nb;
                var$5.$val$clazz = $clazz;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                var$5.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = var$5;
            }
        } else {
            if (!$this.$inverted && ($this.$bits.$length3 ? 0 : 1)) {
                if (!$curAlt) {
                    $nb = new jur_CharClass$7;
                    $nb.$this$030 = $this;
                    $nb.$val$clazz5 = $clazz;
                    $clazz = new ju_BitSet;
                    $clazz.$data4 = $rt_createIntArray(64);
                    $nb.$lowHighSurrogates = $clazz;
                    $this.$nonBitSet = $nb;
                } else {
                    $nb = new jur_CharClass$6;
                    $nb.$this$024 = $this;
                    $nb.$val$clazz9 = $clazz;
                    $clazz = new ju_BitSet;
                    $clazz.$data4 = $rt_createIntArray(64);
                    $nb.$lowHighSurrogates = $clazz;
                    $this.$nonBitSet = $nb;
                }
            } else if (!$curAlt) {
                $nb = new jur_CharClass$9;
                $nb.$this$012 = $this;
                $nb.$val$clazz0 = $clazz;
                $nb.$val$curAlt3 = $curAlt;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = $nb;
            } else {
                $nb = new jur_CharClass$8;
                $nb.$this$08 = $this;
                $nb.$val$clazz7 = $clazz;
                $nb.$val$curAlt7 = $curAlt;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = $nb;
            }
            $this.$hideBits = 1;
        }
    }
},
jur_CharClass_intersection = ($this, $clazz) => {
    let $curAlt, var$3, $nb, var$5;
    if (!$this.$mayContainSupplCodepoints && $clazz.$mayContainSupplCodepoints)
        $this.$mayContainSupplCodepoints = 1;
    if ($clazz.$hasUCI0)
        $this.$hasUCI0 = 1;
    $curAlt = $this.$altSurrogates;
    if (!($curAlt ^ $clazz.$altSurrogates)) {
        if (!$curAlt)
            ju_BitSet_and($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
        else
            ju_BitSet_or($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
    } else if (!$curAlt)
        ju_BitSet_andNot($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
    else {
        ju_BitSet_xor($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
        ju_BitSet_and($this.$lowHighSurrogates, $clazz.$lowHighSurrogates);
        $this.$altSurrogates = 0;
    }
    a: {
        if (!$this.$hideBits) {
            var$3 = $clazz.$hideBits;
            if ((!var$3 ? $clazz.$bits : null) !== null) {
                $curAlt = $this.$alt;
                if (!($curAlt ^ $clazz.$alt)) {
                    if (!$curAlt) {
                        ju_BitSet_and($this.$bits, !var$3 ? $clazz.$bits : null);
                        break a;
                    }
                    ju_BitSet_or($this.$bits, !var$3 ? $clazz.$bits : null);
                    break a;
                }
                if (!$curAlt) {
                    ju_BitSet_andNot($this.$bits, !var$3 ? $clazz.$bits : null);
                    break a;
                }
                ju_BitSet_xor($this.$bits, !var$3 ? $clazz.$bits : null);
                ju_BitSet_and($this.$bits, !$clazz.$hideBits ? $clazz.$bits : null);
                $this.$alt = 0;
                break a;
            }
        }
        $curAlt = $this.$alt;
        $nb = $this.$nonBitSet;
        if ($nb !== null) {
            if (!$curAlt) {
                var$5 = new jur_CharClass$17;
                var$5.$this$035 = $this;
                var$5.$val$curAlt5 = $curAlt;
                var$5.$val$nb2 = $nb;
                var$5.$val$clazz6 = $clazz;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                var$5.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = var$5;
            } else {
                var$5 = new jur_CharClass$16;
                var$5.$this$025 = $this;
                var$5.$val$curAlt8 = $curAlt;
                var$5.$val$nb1 = $nb;
                var$5.$val$clazz3 = $clazz;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                var$5.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = var$5;
            }
        } else {
            if (!$this.$inverted && ($this.$bits.$length3 ? 0 : 1)) {
                if (!$curAlt) {
                    $nb = new jur_CharClass$13;
                    $nb.$this$017 = $this;
                    $nb.$val$clazz8 = $clazz;
                    $clazz = new ju_BitSet;
                    $clazz.$data4 = $rt_createIntArray(64);
                    $nb.$lowHighSurrogates = $clazz;
                    $this.$nonBitSet = $nb;
                } else {
                    $nb = new jur_CharClass$12;
                    $nb.$this$041 = $this;
                    $nb.$val$clazz4 = $clazz;
                    $clazz = new ju_BitSet;
                    $clazz.$data4 = $rt_createIntArray(64);
                    $nb.$lowHighSurrogates = $clazz;
                    $this.$nonBitSet = $nb;
                }
            } else if (!$curAlt) {
                $nb = new jur_CharClass$15;
                $nb.$this$010 = $this;
                $nb.$val$clazz10 = $clazz;
                $nb.$val$curAlt1 = $curAlt;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = $nb;
            } else {
                $nb = new jur_CharClass$14;
                $nb.$this$011 = $this;
                $nb.$val$clazz2 = $clazz;
                $nb.$val$curAlt4 = $curAlt;
                $clazz = new ju_BitSet;
                $clazz.$data4 = $rt_createIntArray(64);
                $nb.$lowHighSurrogates = $clazz;
                $this.$nonBitSet = $nb;
            }
            $this.$hideBits = 1;
        }
    }
},
jur_CharClass_contains = ($this, $ch) => {
    let var$2;
    var$2 = $this.$nonBitSet;
    if (var$2 !== null)
        return $this.$alt ^ var$2.$contains1($ch);
    return $this.$alt ^ ju_BitSet_get($this.$bits, $ch);
},
jur_CharClass_getBits = $this => {
    if (!$this.$hideBits)
        return $this.$bits;
    return null;
},
jur_CharClass_getLowHighSurrogates = $this => {
    return $this.$lowHighSurrogates;
},
jur_CharClass_getInstance = $this => {
    let $bs, $res;
    if ($this.$nonBitSet !== null)
        return $this;
    $bs = !$this.$hideBits ? $this.$bits : null;
    $res = new jur_CharClass$18;
    $res.$this$034 = $this;
    $res.$val$bs = $bs;
    $bs = new ju_BitSet;
    $bs.$data4 = $rt_createIntArray(64);
    $res.$lowHighSurrogates = $bs;
    return jur_AbstractCharClass_setNegative($res, $this.$alt);
},
jur_CharClass_toString = $this => {
    let $temp, $i, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $temp = new jl_StringBuilder;
    $temp.$buffer = $rt_createCharArray(16);
    $i = ju_BitSet_nextSetBit($this.$bits, 0);
    while ($i >= 0) {
        var$3 = (jl_Character_toChars($i)).data;
        var$4 = 0;
        var$5 = var$3.length;
        var$6 = $temp.$length0;
        jl_AbstractStringBuilder_insertSpace($temp, var$6, var$6 + var$5 | 0);
        var$5 = var$5 + var$4 | 0;
        while (var$4 < var$5) {
            var$7 = $temp.$buffer.data;
            var$8 = var$6 + 1 | 0;
            var$9 = var$4 + 1 | 0;
            var$7[var$6] = var$3[var$4];
            var$6 = var$8;
            var$4 = var$9;
        }
        var$6 = $temp.$length0;
        jl_AbstractStringBuilder_insertSpace($temp, var$6, var$6 + 1 | 0);
        $temp.$buffer.data[var$6] = 124;
        $i = ju_BitSet_nextSetBit($this.$bits, $i + 1 | 0);
    }
    var$4 = $temp.$length0;
    if (var$4 > 0)
        jl_AbstractStringBuilder_deleteCharAt($temp, var$4 - 1 | 0);
    var$10 = new jl_String;
    var$3 = $temp.$buffer;
    var$7 = var$3.data;
    var$4 = $temp.$length0;
    var$6 = var$7.length;
    if (var$4 >= 0 && var$4 <= (var$6 - 0 | 0)) {
        var$10.$nativeString = $rt_charArrayToString(var$3.data, 0, var$4);
        return var$10;
    }
    $temp = new jl_IndexOutOfBoundsException;
    $temp.$suppressionEnabled = 1;
    $temp.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($temp);
    $rt_throw($temp);
},
jur_CharClass_hasUCI = $this => {
    return $this.$hasUCI0;
};
function jur_QuantifierSet() {
    jur_AbstractSet.call(this);
    this.$innerSet = null;
}
let jur_QuantifierSet_getInnerSet = $this => {
    return $this.$innerSet;
},
jur_QuantifierSet_first = ($this, $set) => {
    return !$this.$innerSet.$first($set) && !$this.$next4.$first($set) ? 0 : 1;
},
jur_QuantifierSet_hasConsumed = ($this, $mr) => {
    return 1;
},
jur_QuantifierSet_processSecondPass = $this => {
    let $set;
    $this.$isSecondPassVisited = 1;
    $set = $this.$next4;
    if ($set !== null && !$set.$isSecondPassVisited) {
        $set = $set.$processBackRefReplacement();
        if ($set !== null) {
            $this.$next4.$isSecondPassVisited = 1;
            $this.$next4 = $set;
        }
        $this.$next4.$processSecondPass();
    }
    $set = $this.$innerSet;
    if ($set !== null) {
        if (!$set.$isSecondPassVisited) {
            $set = $set.$processBackRefReplacement();
            if ($set !== null) {
                $this.$innerSet.$isSecondPassVisited = 1;
                $this.$innerSet = $set;
            }
            $this.$innerSet.$processSecondPass();
        } else if ($set instanceof jur_SingleSet && $set.$fSet.$isBackReferenced)
            $this.$innerSet = $set.$next4;
    }
};
function jur_LeafQuantifierSet() {
    jur_QuantifierSet.call(this);
    this.$leaf = null;
}
let jur_LeafQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $i, var$5;
    $i = 0;
    a: {
        while (($stringIndex + $this.$leaf.$charCount() | 0) <= $matchResult.$rightBound) {
            var$5 = $this.$leaf.$accepts($stringIndex, $testString);
            if (var$5 <= 0)
                break a;
            $stringIndex = $stringIndex + var$5 | 0;
            $i = $i + 1 | 0;
        }
    }
    while (true) {
        if ($i < 0)
            return (-1);
        var$5 = $this.$next4.$matches($stringIndex, $testString, $matchResult);
        if (var$5 >= 0)
            break;
        $stringIndex = $stringIndex - $this.$leaf.$charCount() | 0;
        $i = $i + (-1) | 0;
    }
    return var$5;
},
jur_LeafQuantifierSet_getName = $this => {
    return $rt_s(1753);
};
function jur_CompositeQuantifierSet() {
    jur_LeafQuantifierSet.call(this);
    this.$quantifier0 = null;
}
let jur_CompositeQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4, $min, $max, $i, $shift;
    var$4 = $this.$quantifier0;
    $min = var$4.$min0;
    $max = var$4.$max0;
    $i = 0;
    while (true) {
        if ($i >= $min) {
            a: {
                while ($i < $max) {
                    if (($stringIndex + $this.$leaf.$charCount() | 0) > $matchResult.$rightBound)
                        break a;
                    $shift = $this.$leaf.$accepts($stringIndex, $testString);
                    if ($shift < 1)
                        break a;
                    $stringIndex = $stringIndex + $shift | 0;
                    $i = $i + 1 | 0;
                }
            }
            while (true) {
                if ($i < $min)
                    return (-1);
                $shift = $this.$next4.$matches($stringIndex, $testString, $matchResult);
                if ($shift >= 0)
                    break;
                $stringIndex = $stringIndex - $this.$leaf.$charCount() | 0;
                $i = $i + (-1) | 0;
            }
            return $shift;
        }
        if (($stringIndex + $this.$leaf.$charCount() | 0) > $matchResult.$rightBound) {
            $matchResult.$hitEnd = 1;
            return (-1);
        }
        $shift = $this.$leaf.$accepts($stringIndex, $testString);
        if ($shift < 1)
            break;
        $stringIndex = $stringIndex + $shift | 0;
        $i = $i + 1 | 0;
    }
    return (-1);
},
jur_CompositeQuantifierSet_getName = $this => {
    return jur_Quantifier_toString($this.$quantifier0);
},
jur_GroupQuantifierSet = $rt_classWithoutFields(jur_QuantifierSet),
jur_GroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $nextIndex;
    if (!$this.$innerSet.$hasConsumed($matchResult))
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    if ($nextIndex >= 0)
        return $nextIndex;
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_GroupQuantifierSet_getName = $this => {
    return $rt_s(1754);
},
jur_AltQuantifierSet = $rt_classWithoutFields(jur_LeafQuantifierSet),
jur_AltQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $shift;
    $shift = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    if ($shift < 0)
        $shift = $this.$next4.$matches($stringIndex, $testString, $matchResult);
    return $shift;
},
jur_AltQuantifierSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
    $this.$innerSet.$setNext($next);
},
jur_UnifiedQuantifierSet = $rt_classWithoutFields(jur_LeafQuantifierSet),
jur_UnifiedQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    while (($stringIndex + $this.$leaf.$charCount() | 0) <= $matchResult.$rightBound && $this.$leaf.$accepts($stringIndex, $testString) > 0) {
        $stringIndex = $stringIndex + $this.$leaf.$charCount() | 0;
    }
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_UnifiedQuantifierSet_find = ($this, $stringIndex, $testString, $matchResult) => {
    let $startSearch, $newSearch, $newSearch_0;
    $startSearch = $this.$next4.$find0($stringIndex, $testString, $matchResult);
    if ($startSearch < 0)
        return (-1);
    $newSearch = $startSearch - $this.$leaf.$charCount() | 0;
    while ($newSearch >= $stringIndex && $this.$leaf.$accepts($newSearch, $testString) > 0) {
        $newSearch_0 = $newSearch - $this.$leaf.$charCount() | 0;
        $startSearch = $newSearch;
        $newSearch = $newSearch_0;
    }
    return $startSearch;
},
jur_AbstractCharClass$PredefinedCharacterClasses = $rt_classWithoutFields(),
jur_AbstractCharClass$PredefinedCharacterClasses_space = null,
jur_AbstractCharClass$PredefinedCharacterClasses_digit = null,
jur_AbstractCharClass$PredefinedCharacterClasses_contents = null,
jur_AbstractCharClass$PredefinedCharacterClasses__init_ = $this => {
    return;
},
jur_AbstractCharClass$PredefinedCharacterClasses__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$PredefinedCharacterClasses();
    jur_AbstractCharClass$PredefinedCharacterClasses__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$PredefinedCharacterClasses_getObject = ($this, $name) => {
    let $i, $row, var$4, var$5, var$6;
    $i = 0;
    while (true) {
        $row = jur_AbstractCharClass$PredefinedCharacterClasses_contents.data;
        if ($i >= $row.length) {
            var$4 = new ju_MissingResourceException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            var$4.$message = $rt_s(3);
            var$4.$className0 = $rt_s(3);
            var$4.$key3 = $name;
            $rt_throw(var$4);
        }
        $row = $row[$i].data;
        var$5 = $row[0];
        if ($name === var$5)
            var$6 = 1;
        else if (!(var$5 instanceof jl_String))
            var$6 = 0;
        else {
            var$5 = var$5;
            var$6 = $name.$nativeString !== var$5.$nativeString ? 0 : 1;
        }
        if (var$6)
            break;
        $i = $i + 1 | 0;
    }
    return $row[1];
},
jur_AbstractCharClass$PredefinedCharacterClasses__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = new jur_AbstractCharClass$LazySpace;
    jur_AbstractCharClass$PredefinedCharacterClasses_space = var$1;
    var$2 = new jur_AbstractCharClass$LazyDigit;
    jur_AbstractCharClass$PredefinedCharacterClasses_digit = var$2;
    var$3 = $rt_createArray($rt_arraycls(jl_Object), 194);
    var$4 = var$3.data;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1755);
    var$6[1] = new jur_AbstractCharClass$LazyLower;
    var$4[0] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1756);
    var$6[1] = new jur_AbstractCharClass$LazyUpper;
    var$4[1] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1757);
    var$6[1] = new jur_AbstractCharClass$LazyASCII;
    var$4[2] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1758);
    var$6[1] = new jur_AbstractCharClass$LazyAlpha;
    var$4[3] = var$5;
    var$4[4] = $rt_wrapArray(jl_Object, [$rt_s(1759), var$2]);
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1760);
    var$6[1] = new jur_AbstractCharClass$LazyAlnum;
    var$4[5] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1761);
    var$6[1] = new jur_AbstractCharClass$LazyPunct;
    var$4[6] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1762);
    var$6[1] = new jur_AbstractCharClass$LazyGraph;
    var$4[7] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1763);
    var$6[1] = new jur_AbstractCharClass$LazyPrint;
    var$4[8] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1764);
    var$6[1] = new jur_AbstractCharClass$LazyBlank;
    var$4[9] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1765);
    var$6[1] = new jur_AbstractCharClass$LazyCntrl;
    var$4[10] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1766);
    var$6[1] = new jur_AbstractCharClass$LazyXDigit;
    var$4[11] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1767);
    var$6[1] = new jur_AbstractCharClass$LazyJavaLowerCase;
    var$4[12] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1768);
    var$6[1] = new jur_AbstractCharClass$LazyJavaUpperCase;
    var$4[13] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1769);
    var$6[1] = new jur_AbstractCharClass$LazyJavaWhitespace;
    var$4[14] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1770);
    var$6[1] = new jur_AbstractCharClass$LazyJavaMirrored;
    var$4[15] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1771);
    var$6[1] = new jur_AbstractCharClass$LazyJavaDefined;
    var$4[16] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1772);
    var$6[1] = new jur_AbstractCharClass$LazyJavaDigit;
    var$4[17] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1773);
    var$6[1] = new jur_AbstractCharClass$LazyJavaIdentifierIgnorable;
    var$4[18] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1774);
    var$6[1] = new jur_AbstractCharClass$LazyJavaISOControl;
    var$4[19] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1775);
    var$6[1] = new jur_AbstractCharClass$LazyJavaJavaIdentifierPart;
    var$4[20] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1776);
    var$6[1] = new jur_AbstractCharClass$LazyJavaJavaIdentifierStart;
    var$4[21] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1777);
    var$6[1] = new jur_AbstractCharClass$LazyJavaLetter;
    var$4[22] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1778);
    var$6[1] = new jur_AbstractCharClass$LazyJavaLetterOrDigit;
    var$4[23] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1779);
    var$6[1] = new jur_AbstractCharClass$LazyJavaSpaceChar;
    var$4[24] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1780);
    var$6[1] = new jur_AbstractCharClass$LazyJavaTitleCase;
    var$4[25] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1781);
    var$6[1] = new jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart;
    var$4[26] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1782);
    var$6[1] = new jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart;
    var$4[27] = var$5;
    var$4[28] = $rt_wrapArray(jl_Object, [$rt_s(1783), var$1]);
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1044);
    var$6[1] = new jur_AbstractCharClass$LazyWord;
    var$4[29] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1784);
    var$6[1] = new jur_AbstractCharClass$LazyNonWord;
    var$4[30] = var$5;
    var$4[31] = $rt_wrapArray(jl_Object, [$rt_s(965), var$1]);
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1543);
    var$6[1] = new jur_AbstractCharClass$LazyNonSpace;
    var$4[32] = var$5;
    var$4[33] = $rt_wrapArray(jl_Object, [$rt_s(1785), var$2]);
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1786);
    var$6[1] = new jur_AbstractCharClass$LazyNonDigit;
    var$4[34] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1787);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 0;
    var$1.$end1 = 127;
    var$6[1] = var$1;
    var$4[35] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1788);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 128;
    var$1.$end1 = 255;
    var$6[1] = var$1;
    var$4[36] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1789);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 256;
    var$1.$end1 = 383;
    var$6[1] = var$1;
    var$4[37] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1790);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 384;
    var$1.$end1 = 591;
    var$6[1] = var$1;
    var$4[38] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1791);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 592;
    var$1.$end1 = 687;
    var$6[1] = var$1;
    var$4[39] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1792);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 688;
    var$1.$end1 = 767;
    var$6[1] = var$1;
    var$4[40] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1793);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 768;
    var$1.$end1 = 879;
    var$6[1] = var$1;
    var$4[41] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1794);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 880;
    var$1.$end1 = 1023;
    var$6[1] = var$1;
    var$4[42] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1795);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1024;
    var$1.$end1 = 1279;
    var$6[1] = var$1;
    var$4[43] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1796);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1280;
    var$1.$end1 = 1327;
    var$6[1] = var$1;
    var$4[44] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1797);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1328;
    var$1.$end1 = 1423;
    var$6[1] = var$1;
    var$4[45] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1798);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1424;
    var$1.$end1 = 1535;
    var$6[1] = var$1;
    var$4[46] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1799);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1536;
    var$1.$end1 = 1791;
    var$6[1] = var$1;
    var$4[47] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1800);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1792;
    var$1.$end1 = 1871;
    var$6[1] = var$1;
    var$4[48] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1801);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1872;
    var$1.$end1 = 1919;
    var$6[1] = var$1;
    var$4[49] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1802);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 1920;
    var$1.$end1 = 1983;
    var$6[1] = var$1;
    var$4[50] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1803);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 2304;
    var$1.$end1 = 2431;
    var$6[1] = var$1;
    var$4[51] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1804);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 2432;
    var$1.$end1 = 2559;
    var$6[1] = var$1;
    var$4[52] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1805);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 2560;
    var$1.$end1 = 2687;
    var$6[1] = var$1;
    var$4[53] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1806);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 2688;
    var$1.$end1 = 2815;
    var$6[1] = var$1;
    var$4[54] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1807);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 2816;
    var$1.$end1 = 2943;
    var$6[1] = var$1;
    var$4[55] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1808);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 2944;
    var$1.$end1 = 3071;
    var$6[1] = var$1;
    var$4[56] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1809);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3072;
    var$1.$end1 = 3199;
    var$6[1] = var$1;
    var$4[57] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1810);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3200;
    var$1.$end1 = 3327;
    var$6[1] = var$1;
    var$4[58] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1811);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3328;
    var$1.$end1 = 3455;
    var$6[1] = var$1;
    var$4[59] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1812);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3456;
    var$1.$end1 = 3583;
    var$6[1] = var$1;
    var$4[60] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1813);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3584;
    var$1.$end1 = 3711;
    var$6[1] = var$1;
    var$4[61] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1814);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3712;
    var$1.$end1 = 3839;
    var$6[1] = var$1;
    var$4[62] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1815);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 3840;
    var$1.$end1 = 4095;
    var$6[1] = var$1;
    var$4[63] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1816);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 4096;
    var$1.$end1 = 4255;
    var$6[1] = var$1;
    var$4[64] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1817);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 4256;
    var$1.$end1 = 4351;
    var$6[1] = var$1;
    var$4[65] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1818);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 4352;
    var$1.$end1 = 4607;
    var$6[1] = var$1;
    var$4[66] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1819);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 4608;
    var$1.$end1 = 4991;
    var$6[1] = var$1;
    var$4[67] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1820);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 4992;
    var$1.$end1 = 5023;
    var$6[1] = var$1;
    var$4[68] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1821);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5024;
    var$1.$end1 = 5119;
    var$6[1] = var$1;
    var$4[69] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1822);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5120;
    var$1.$end1 = 5759;
    var$6[1] = var$1;
    var$4[70] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1823);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5760;
    var$1.$end1 = 5791;
    var$6[1] = var$1;
    var$4[71] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1824);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5792;
    var$1.$end1 = 5887;
    var$6[1] = var$1;
    var$4[72] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1825);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5888;
    var$1.$end1 = 5919;
    var$6[1] = var$1;
    var$4[73] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1826);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5920;
    var$1.$end1 = 5951;
    var$6[1] = var$1;
    var$4[74] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1827);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5952;
    var$1.$end1 = 5983;
    var$6[1] = var$1;
    var$4[75] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1828);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 5984;
    var$1.$end1 = 6015;
    var$6[1] = var$1;
    var$4[76] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1829);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6016;
    var$1.$end1 = 6143;
    var$6[1] = var$1;
    var$4[77] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1830);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6144;
    var$1.$end1 = 6319;
    var$6[1] = var$1;
    var$4[78] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1831);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6400;
    var$1.$end1 = 6479;
    var$6[1] = var$1;
    var$4[79] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1832);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6480;
    var$1.$end1 = 6527;
    var$6[1] = var$1;
    var$4[80] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1833);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6528;
    var$1.$end1 = 6623;
    var$6[1] = var$1;
    var$4[81] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1834);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6624;
    var$1.$end1 = 6655;
    var$6[1] = var$1;
    var$4[82] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1835);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 6656;
    var$1.$end1 = 6687;
    var$6[1] = var$1;
    var$4[83] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1836);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 7424;
    var$1.$end1 = 7551;
    var$6[1] = var$1;
    var$4[84] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1837);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 7552;
    var$1.$end1 = 7615;
    var$6[1] = var$1;
    var$4[85] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1838);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 7616;
    var$1.$end1 = 7679;
    var$6[1] = var$1;
    var$4[86] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1839);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 7680;
    var$1.$end1 = 7935;
    var$6[1] = var$1;
    var$4[87] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1840);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 7936;
    var$1.$end1 = 8191;
    var$6[1] = var$1;
    var$4[88] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1841);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8192;
    var$1.$end1 = 8303;
    var$6[1] = var$1;
    var$4[89] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1842);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8304;
    var$1.$end1 = 8351;
    var$6[1] = var$1;
    var$4[90] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1843);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8352;
    var$1.$end1 = 8399;
    var$6[1] = var$1;
    var$4[91] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1844);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8400;
    var$1.$end1 = 8447;
    var$6[1] = var$1;
    var$4[92] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1845);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8448;
    var$1.$end1 = 8527;
    var$6[1] = var$1;
    var$4[93] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1846);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8528;
    var$1.$end1 = 8591;
    var$6[1] = var$1;
    var$4[94] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1847);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8592;
    var$1.$end1 = 8703;
    var$6[1] = var$1;
    var$4[95] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1848);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8704;
    var$1.$end1 = 8959;
    var$6[1] = var$1;
    var$4[96] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1849);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 8960;
    var$1.$end1 = 9215;
    var$6[1] = var$1;
    var$4[97] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1850);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9216;
    var$1.$end1 = 9279;
    var$6[1] = var$1;
    var$4[98] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1851);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9280;
    var$1.$end1 = 9311;
    var$6[1] = var$1;
    var$4[99] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1852);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9312;
    var$1.$end1 = 9471;
    var$6[1] = var$1;
    var$4[100] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1853);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9472;
    var$1.$end1 = 9599;
    var$6[1] = var$1;
    var$4[101] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1854);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9600;
    var$1.$end1 = 9631;
    var$6[1] = var$1;
    var$4[102] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1855);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9632;
    var$1.$end1 = 9727;
    var$6[1] = var$1;
    var$4[103] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1856);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9728;
    var$1.$end1 = 9983;
    var$6[1] = var$1;
    var$4[104] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1857);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 9984;
    var$1.$end1 = 10175;
    var$6[1] = var$1;
    var$4[105] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1858);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 10176;
    var$1.$end1 = 10223;
    var$6[1] = var$1;
    var$4[106] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1859);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 10224;
    var$1.$end1 = 10239;
    var$6[1] = var$1;
    var$4[107] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1860);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 10240;
    var$1.$end1 = 10495;
    var$6[1] = var$1;
    var$4[108] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1861);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 10496;
    var$1.$end1 = 10623;
    var$6[1] = var$1;
    var$4[109] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1862);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 10624;
    var$1.$end1 = 10751;
    var$6[1] = var$1;
    var$4[110] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1863);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 10752;
    var$1.$end1 = 11007;
    var$6[1] = var$1;
    var$4[111] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1864);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11008;
    var$1.$end1 = 11263;
    var$6[1] = var$1;
    var$4[112] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1865);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11264;
    var$1.$end1 = 11359;
    var$6[1] = var$1;
    var$4[113] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1866);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11392;
    var$1.$end1 = 11519;
    var$6[1] = var$1;
    var$4[114] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1867);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11520;
    var$1.$end1 = 11567;
    var$6[1] = var$1;
    var$4[115] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1868);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11568;
    var$1.$end1 = 11647;
    var$6[1] = var$1;
    var$4[116] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1869);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11648;
    var$1.$end1 = 11743;
    var$6[1] = var$1;
    var$4[117] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1870);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11776;
    var$1.$end1 = 11903;
    var$6[1] = var$1;
    var$4[118] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1871);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 11904;
    var$1.$end1 = 12031;
    var$6[1] = var$1;
    var$4[119] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1872);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 12032;
    var$1.$end1 = 12255;
    var$6[1] = var$1;
    var$4[120] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1873);
    var$1 = new jur_AbstractCharClass$LazyRange;
    var$1.$start0 = 12272;
    var$1.$end1 = 12287;
    var$6[1] = var$1;
    var$4[121] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1874);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12288, 12351);
    var$4[122] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1875);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12352, 12447);
    var$4[123] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1876);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12448, 12543);
    var$4[124] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1877);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12544, 12591);
    var$4[125] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1878);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12592, 12687);
    var$4[126] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1879);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12688, 12703);
    var$4[127] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1880);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12704, 12735);
    var$4[128] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1881);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12736, 12783);
    var$4[129] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1882);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12784, 12799);
    var$4[130] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1883);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(12800, 13055);
    var$4[131] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1884);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(13056, 13311);
    var$4[132] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1885);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(13312, 19893);
    var$4[133] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1886);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(19904, 19967);
    var$4[134] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1887);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(19968, 40959);
    var$4[135] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1888);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(40960, 42127);
    var$4[136] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1889);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(42128, 42191);
    var$4[137] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1890);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(42752, 42783);
    var$4[138] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1891);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(43008, 43055);
    var$4[139] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1892);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(44032, 55203);
    var$4[140] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1893);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(55296, 56191);
    var$4[141] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1894);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(56192, 56319);
    var$4[142] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1895);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(56320, 57343);
    var$4[143] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1896);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(57344, 63743);
    var$4[144] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1897);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(63744, 64255);
    var$4[145] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1898);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(64256, 64335);
    var$4[146] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1899);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(64336, 65023);
    var$4[147] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1900);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65024, 65039);
    var$4[148] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1901);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65040, 65055);
    var$4[149] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1902);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65056, 65071);
    var$4[150] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1903);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65072, 65103);
    var$4[151] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1904);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65104, 65135);
    var$4[152] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1905);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65136, 65279);
    var$4[153] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1906);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(65280, 65519);
    var$4[154] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1489);
    var$6[1] = jur_AbstractCharClass$LazyRange__init_(0, 1114111);
    var$4[155] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1907);
    var$6[1] = new jur_AbstractCharClass$LazySpecialsBlock;
    var$4[156] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1908);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(0, 1);
    var$4[157] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1909);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_(62, 1);
    var$4[158] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1910);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(1, 1);
    var$4[159] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1911);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(2, 1);
    var$4[160] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1912);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(3, 0);
    var$4[161] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1913);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(4, 0);
    var$4[162] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1914);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(5, 1);
    var$4[163] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1915);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_(448, 1);
    var$4[164] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1916);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(6, 1);
    var$4[165] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1917);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(7, 0);
    var$4[166] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1918);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(8, 1);
    var$4[167] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1919);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_(3584, 1);
    var$4[168] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1920);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(9, 1);
    var$4[169] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1921);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(10, 1);
    var$4[170] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1922);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(11, 1);
    var$4[171] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1923);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_(28672, 0);
    var$4[172] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1924);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(12, 0);
    var$4[173] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1925);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(13, 0);
    var$4[174] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1926);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(14, 0);
    var$4[175] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1927);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_2(983040, 1, 1);
    var$4[176] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1928);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(15, 0);
    var$4[177] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1929);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(16, 1);
    var$4[178] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1930);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(18, 1);
    var$4[179] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1931);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_0(19, 0, 1);
    var$4[180] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1932);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_(1643118592, 1);
    var$4[181] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1933);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(20, 0);
    var$4[182] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1934);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(21, 0);
    var$4[183] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1935);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(22, 0);
    var$4[184] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1936);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(23, 0);
    var$4[185] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1937);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(24, 1);
    var$4[186] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1938);
    var$6[1] = jur_AbstractCharClass$LazyCategoryScope__init_(2113929216, 1);
    var$4[187] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1939);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(25, 1);
    var$4[188] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1940);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(26, 0);
    var$4[189] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1941);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(27, 0);
    var$4[190] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1942);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(28, 1);
    var$4[191] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1943);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(29, 0);
    var$4[192] = var$5;
    var$5 = $rt_createArray(jl_Object, 2);
    var$6 = var$5.data;
    var$6[0] = $rt_s(1944);
    var$6[1] = jur_AbstractCharClass$LazyCategory__init_(30, 0);
    var$4[193] = var$5;
    jur_AbstractCharClass$PredefinedCharacterClasses_contents = var$3;
};
function jur_AbstractCharClass$LazyCharClass() {
    let a = this; jl_Object.call(a);
    a.$posValue = null;
    a.$negValue = null;
}
let jur_AbstractCharClass$LazyCharClass_getValue = ($this, $negative) => {
    if (!$negative && $this.$posValue === null)
        $this.$posValue = $this.$computeValue();
    else if ($negative && $this.$negValue === null)
        $this.$negValue = jur_AbstractCharClass_setNegative($this.$computeValue(), 1);
    if ($negative)
        return $this.$negValue;
    return $this.$posValue;
};
function jur_Quantifier() {
    let a = this; jur_SpecialToken.call(a);
    a.$min0 = 0;
    a.$max0 = 0;
}
let jur_Quantifier_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$min0;
    var$2 = $this.$max0;
    if (var$2 == 2147483647)
        var$3 = $rt_s(3);
    else {
        var$3 = new jl_AbstractStringBuilder;
        var$3.$buffer = $rt_createCharArray(20);
        var$3 = (jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, var$2, 10)).$toString();
    }
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    var$2 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$2, var$2 + 1 | 0);
    var$4.$buffer.data[var$2] = 123;
    jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$1, 10);
    var$1 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$1, var$1 + 1 | 0);
    var$4.$buffer.data[var$1] = 44;
    var$5 = var$4.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$4, var$5, var$3);
    var$1 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$1, var$1 + 1 | 0);
    var$6 = var$4.$buffer;
    var$7 = var$6.data;
    var$7[var$1] = 125;
    var$3 = new jl_String;
    var$1 = var$4.$length0;
    var$2 = var$7.length;
    if (var$1 >= 0 && var$1 <= (var$2 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$1);
        return var$3;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$3);
    $rt_throw(var$3);
},
jur_FSet$PossessiveFSet = $rt_classWithoutFields(jur_AbstractSet),
jur_FSet$PossessiveFSet__init_ = $this => {
    let var$1, var$2;
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jur_FSet$PossessiveFSet__init_0 = () => {
    let var_0 = new jur_FSet$PossessiveFSet();
    jur_FSet$PossessiveFSet__init_(var_0);
    return var_0;
},
jur_FSet$PossessiveFSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    return $stringIndex;
},
jur_FSet$PossessiveFSet_getName = $this => {
    return $rt_s(1945);
},
jur_FSet$PossessiveFSet_hasConsumed = ($this, $mr) => {
    return 0;
};
function ju_BitSet() {
    let a = this; jl_Object.call(a);
    a.$data4 = null;
    a.$length3 = 0;
}
let ju_BitSet__init_ = $this => {
    $this.$data4 = $rt_createIntArray(2);
},
ju_BitSet__init_0 = () => {
    let var_0 = new ju_BitSet();
    ju_BitSet__init_(var_0);
    return var_0;
},
ju_BitSet_set0 = ($this, $bitIndex) => {
    let var$2, $index, var$4;
    if ($bitIndex < 0) {
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $index = $bitIndex / 32 | 0;
    if ($bitIndex >= $this.$length3) {
        ju_BitSet_ensureCapacity($this, $index + 1 | 0);
        $this.$length3 = $bitIndex + 1 | 0;
    }
    var$4 = $this.$data4.data;
    var$4[$index] = var$4[$index] | 1 << ($bitIndex % 32 | 0);
},
ju_BitSet_set = ($this, $fromIndex, $toIndex) => {
    let $fromDataIndex, $toDataIndex, var$5, var$6, $i, var$8;
    if ($fromIndex >= 0) {
        $fromDataIndex = $rt_compare($fromIndex, $toIndex);
        if ($fromDataIndex <= 0) {
            if (!$fromDataIndex)
                return;
            $fromDataIndex = $fromIndex / 32 | 0;
            $toDataIndex = $toIndex / 32 | 0;
            if ($toIndex > $this.$length3) {
                ju_BitSet_ensureCapacity($this, $toDataIndex + 1 | 0);
                $this.$length3 = $toIndex;
            }
            if ($fromDataIndex == $toDataIndex) {
                var$5 = $this.$data4.data;
                $toDataIndex = var$5[$fromDataIndex];
                var$6 = (-1) << ($fromIndex % 32 | 0);
                $fromIndex = $toIndex % 32 | 0;
                var$5[$fromDataIndex] = $toDataIndex | var$6 & (!$fromIndex ? 0 : (-1) >>> (32 - $fromIndex | 0) | 0);
            } else {
                var$5 = $this.$data4.data;
                var$5[$fromDataIndex] = var$5[$fromDataIndex] | (-1) << ($fromIndex % 32 | 0);
                $i = $fromDataIndex + 1 | 0;
                while ($i < $toDataIndex) {
                    var$5[$i] = (-1);
                    $i = $i + 1 | 0;
                }
                if ($toIndex & 31) {
                    $i = var$5[$toDataIndex];
                    $fromIndex = $toIndex % 32 | 0;
                    var$5[$toDataIndex] = $i | (!$fromIndex ? 0 : (-1) >>> (32 - $fromIndex | 0) | 0);
                }
            }
            return;
        }
    }
    var$8 = new jl_IndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
ju_BitSet_clear = ($this, $bitIndex) => {
    let var$2, $index, var$4, var$5, var$6;
    if ($bitIndex < 0) {
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $index = $bitIndex / 32 | 0;
    var$4 = $this.$data4.data;
    if ($index < var$4.length) {
        var$5 = var$4[$index];
        var$6 = ($bitIndex % 32 | 0) & 31;
        var$4[$index] = var$5 & ((-2) << var$6 | ((-2) >>> (32 - var$6 | 0) | 0));
        if ($bitIndex == ($this.$length3 - 1 | 0))
            ju_BitSet_recalculateLength($this);
    }
},
ju_BitSet_clear0 = ($this, $fromIndex, $toIndex) => {
    let $fromDataIndex, $toDataIndex, var$5, $i, var$7, var$8;
    if ($fromIndex >= 0 && $fromIndex <= $toIndex) {
        $fromDataIndex = $this.$length3;
        if ($fromIndex >= $fromDataIndex)
            return;
        if ($fromDataIndex < $toIndex)
            $toIndex = $fromDataIndex;
        if ($fromIndex == $toIndex)
            return;
        $fromDataIndex = $fromIndex / 32 | 0;
        $toDataIndex = $toIndex / 32 | 0;
        if ($fromDataIndex == $toDataIndex) {
            var$5 = $this.$data4.data;
            $i = var$5[$fromDataIndex];
            $fromIndex = $fromIndex % 32 | 0;
            var$5[$fromDataIndex] = $i & ((!$fromIndex ? 0 : (-1) >>> (32 - $fromIndex | 0) | 0) | (-1) << ($toIndex % 32 | 0));
        } else {
            var$5 = $this.$data4.data;
            var$7 = var$5[$fromDataIndex];
            $fromIndex = $fromIndex % 32 | 0;
            var$5[$fromDataIndex] = var$7 & (!$fromIndex ? 0 : (-1) >>> (32 - $fromIndex | 0) | 0);
            $i = $fromDataIndex + 1 | 0;
            while ($i < $toDataIndex) {
                var$5[$i] = 0;
                $i = $i + 1 | 0;
            }
            if ($toIndex & 31)
                var$5[$toDataIndex] = var$5[$toDataIndex] & (-1) << ($toIndex % 32 | 0);
        }
        ju_BitSet_recalculateLength($this);
        return;
    }
    var$8 = new jl_IndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
ju_BitSet_get = ($this, $bitIndex) => {
    let var$2, $index, var$4;
    if ($bitIndex < 0) {
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $index = $bitIndex / 32 | 0;
    var$4 = $this.$data4.data;
    return $index < var$4.length && var$4[$index] & 1 << ($bitIndex % 32 | 0) ? 1 : 0;
},
ju_BitSet_nextSetBit = ($this, $fromIndex) => {
    let var$2, $top, $index, var$5, $i;
    if ($fromIndex < 0) {
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    $top = $this.$length3;
    if ($fromIndex >= $top)
        return (-1);
    $index = $fromIndex / 32 | 0;
    var$5 = $this.$data4.data;
    $i = var$5[$index] >>> ($fromIndex % 32 | 0) | 0;
    if ($i)
        return jl_Integer_numberOfTrailingZeros($i) + $fromIndex | 0;
    $top = ($top + 31 | 0) / 32 | 0;
    $i = $index + 1 | 0;
    while ($i < $top) {
        if (var$5[$i])
            return ($i * 32 | 0) + jl_Integer_numberOfTrailingZeros(var$5[$i]) | 0;
        $i = $i + 1 | 0;
    }
    return (-1);
},
ju_BitSet_nextClearBit = ($this, $fromIndex) => {
    let var$2, var$3, $index, var$5, $top, $i;
    if ($fromIndex < 0) {
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    var$3 = $this.$length3;
    if ($fromIndex >= var$3)
        return $fromIndex;
    $index = $fromIndex / 32 | 0;
    var$5 = $this.$data4.data;
    $top = (var$5[$index] ^ (-1)) >>> ($fromIndex % 32 | 0) | 0;
    if ($top)
        return jl_Integer_numberOfTrailingZeros($top) + $fromIndex | 0;
    $top = (var$3 + 31 | 0) / 32 | 0;
    $i = $index + 1 | 0;
    while ($i < $top) {
        if (var$5[$i] != (-1))
            return ($i * 32 | 0) + jl_Integer_numberOfTrailingZeros(var$5[$i] ^ (-1)) | 0;
        $i = $i + 1 | 0;
    }
    return var$3;
},
ju_BitSet_ensureCapacity = ($this, $capacity) => {
    let var$2, var$3, $newArrayLength, $newArrayLength_0, var$6, var$7;
    var$2 = $this.$data4.data;
    var$3 = var$2.length;
    if (var$3 >= $capacity)
        return;
    $newArrayLength = ($capacity * 3 | 0) / 2 | 0;
    $newArrayLength_0 = (var$3 * 2 | 0) + 1 | 0;
    if ($newArrayLength > $newArrayLength_0)
        $newArrayLength_0 = $newArrayLength;
    var$6 = $rt_createIntArray($newArrayLength_0);
    if ($newArrayLength_0 < var$3)
        var$3 = $newArrayLength_0;
    var$7 = var$6.data;
    $capacity = 0;
    while ($capacity < var$3) {
        var$7[$capacity] = var$2[$capacity];
        $capacity = $capacity + 1 | 0;
    }
    $this.$data4 = var$6;
},
ju_BitSet_recalculateLength = $this => {
    let $top, $i, $sz;
    $top = ($this.$length3 + 31 | 0) / 32 | 0;
    $this.$length3 = $top * 32 | 0;
    $i = $top - 1 | 0;
    a: {
        while (true) {
            if ($i < 0)
                break a;
            $sz = jl_Integer_numberOfLeadingZeros($this.$data4.data[$i]);
            if ($sz < 32)
                break;
            $i = $i + (-1) | 0;
            $this.$length3 = $this.$length3 - 32 | 0;
        }
        $this.$length3 = $this.$length3 - $sz | 0;
    }
},
ju_BitSet_intersects = ($this, $set) => {
    let var$2, $sz, var$4, $sz_0, $i;
    var$2 = $this.$data4.data;
    $sz = var$2.length;
    var$4 = $set.$data4.data;
    $sz_0 = var$4.length;
    if ($sz < $sz_0)
        $sz_0 = $sz;
    $i = 0;
    while ($i < $sz_0) {
        if (var$2[$i] & var$4[$i])
            return 1;
        $i = $i + 1 | 0;
    }
    return 0;
},
ju_BitSet_and = ($this, $set) => {
    let var$2, var$3, var$4, $sz, $i, var$7, var$8;
    var$2 = $this.$data4.data;
    var$3 = var$2.length;
    var$4 = $set.$data4.data;
    $sz = var$4.length;
    if (var$3 < $sz)
        $sz = var$3;
    $i = 0;
    while ($i < $sz) {
        var$2[$i] = var$2[$i] & var$4[$i];
        $i = $i + 1 | 0;
    }
    while ($sz < var$3) {
        var$2[$sz] = 0;
        $sz = $sz + 1 | 0;
    }
    var$7 = $this.$length3;
    var$8 = $set.$length3;
    if (var$7 < var$8)
        var$8 = var$7;
    $this.$length3 = var$8;
    ju_BitSet_recalculateLength($this);
},
ju_BitSet_andNot = ($this, $set) => {
    let var$2, $sz, var$4, $sz_0, $i;
    var$2 = $this.$data4.data;
    $sz = var$2.length;
    var$4 = $set.$data4.data;
    $sz_0 = var$4.length;
    if ($sz < $sz_0)
        $sz_0 = $sz;
    $i = 0;
    while ($i < $sz_0) {
        var$2[$i] = var$2[$i] & (var$4[$i] ^ (-1));
        $i = $i + 1 | 0;
    }
    ju_BitSet_recalculateLength($this);
},
ju_BitSet_or = ($this, $set) => {
    let $sz, $sz_0, var$4, var$5, $i;
    $sz = $this.$length3;
    $sz_0 = $set.$length3;
    if ($sz > $sz_0)
        $sz_0 = $sz;
    $this.$length3 = $sz_0;
    ju_BitSet_ensureCapacity($this, ($sz_0 + 31 | 0) / 32 | 0);
    var$4 = $this.$data4.data;
    $sz = var$4.length;
    var$5 = $set.$data4.data;
    $sz_0 = var$5.length;
    if ($sz < $sz_0)
        $sz_0 = $sz;
    $i = 0;
    while ($i < $sz_0) {
        var$4[$i] = var$4[$i] | var$5[$i];
        $i = $i + 1 | 0;
    }
},
ju_BitSet_xor = ($this, $set) => {
    let $sz, $i, var$4, var$5, $sz_0;
    $sz = $this.$length3;
    $i = $set.$length3;
    if ($sz > $i)
        $i = $sz;
    $this.$length3 = $i;
    ju_BitSet_ensureCapacity($this, ($i + 31 | 0) / 32 | 0);
    var$4 = $this.$data4.data;
    $sz = var$4.length;
    var$5 = $set.$data4.data;
    $sz_0 = var$5.length;
    if ($sz < $sz_0)
        $sz_0 = $sz;
    $i = 0;
    while ($i < $sz_0) {
        var$4[$i] = var$4[$i] ^ var$5[$i];
        $i = $i + 1 | 0;
    }
    ju_BitSet_recalculateLength($this);
};
function jur_LowHighSurrogateRangeSet() {
    let a = this; jur_JointSet.call(a);
    a.$surrChars = null;
    a.$alt3 = 0;
}
let jur_LowHighSurrogateRangeSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $startStr, $strLength, var$6, $ch, $low, $high;
    $startStr = $matchResult.$leftBound;
    $strLength = $matchResult.$rightBound;
    var$6 = $stringIndex + 1 | 0;
    $strLength = $rt_compare(var$6, $strLength);
    if ($strLength > 0) {
        $matchResult.$hitEnd = 1;
        return (-1);
    }
    if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
        $ch = $testString.$nativeString.charCodeAt($stringIndex);
        if (!$this.$surrChars.$contains1($ch))
            return (-1);
        $low = $ch & 64512;
        $high = $low != 55296 ? 0 : 1;
        a: {
            if ($high) {
                if ($strLength >= 0)
                    break a;
                if (var$6 >= 0 && var$6 < $testString.$nativeString.length) {
                    if (($testString.$nativeString.charCodeAt(var$6) & 64512) != 56320 ? 0 : 1)
                        return (-1);
                    break a;
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
            if (($low != 56320 ? 0 : 1) && $stringIndex > $startStr) {
                $high = $stringIndex - 1 | 0;
                if ($high >= 0 && $high < $testString.$nativeString.length) {
                    if (!(($testString.$nativeString.charCodeAt($high) & 64512) != 55296 ? 0 : 1))
                        break a;
                    return (-1);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
        }
        return $this.$next4.$matches(var$6, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_LowHighSurrogateRangeSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = !$this.$alt3 ? $rt_s(260) : $rt_s(1946);
    var$2 = $this.$surrChars.$toString();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1947));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function jur_CompositeRangeSet() {
    let a = this; jur_JointSet.call(a);
    a.$withoutSurrogates = null;
    a.$withSurrogates = null;
}
let jur_CompositeRangeSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $shift;
    $shift = $this.$withoutSurrogates.$matches($stringIndex, $testString, $matchResult);
    if ($shift < 0)
        $shift = jur_LowHighSurrogateRangeSet_matches($this.$withSurrogates, $stringIndex, $testString, $matchResult);
    if ($shift >= 0)
        return $shift;
    return (-1);
},
jur_CompositeRangeSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
    $this.$withSurrogates.$next4 = $next;
    $this.$withoutSurrogates.$setNext($next);
},
jur_CompositeRangeSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$withoutSurrogates;
    var$2 = $this.$withSurrogates;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1948));
    var$4 = var$3.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    else {
        var$5 = var$1.$index1;
        var$1 = var$1.$getName();
        var$6 = new jl_StringBuilder;
        jl_AbstractStringBuilder__init_(var$6);
        jl_AbstractStringBuilder_append2(var$6, 60);
        jl_AbstractStringBuilder_append1(var$6, var$5);
        jl_AbstractStringBuilder_append2(var$6, 58);
        jl_AbstractStringBuilder_append1(var$6, var$1);
        jl_AbstractStringBuilder_append2(var$6, 62);
        var$1 = jl_AbstractStringBuilder_toString(var$6);
    }
    jl_AbstractStringBuilder_insert(var$3, var$4, var$1);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1949));
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$1 = $rt_s(1);
    else {
        var$1 = var$2.$index1;
        var$5 = !var$2.$alt3 ? $rt_s(260) : $rt_s(1946);
        var$2 = var$2.$surrChars.$toString();
        var$6 = jl_StringBuilder__init_();
        jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(var$6, $rt_s(1947)), var$5), var$2);
        var$5 = jl_StringBuilder_toString(var$6);
        var$2 = new jl_StringBuilder;
        jl_AbstractStringBuilder__init_(var$2);
        jl_AbstractStringBuilder_append2(var$2, 60);
        jl_AbstractStringBuilder_append1(var$2, var$1);
        jl_AbstractStringBuilder_append2(var$2, 58);
        jl_AbstractStringBuilder_append1(var$2, var$5);
        jl_AbstractStringBuilder_append2(var$2, 62);
        var$1 = jl_AbstractStringBuilder_toString(var$2);
    }
    jl_AbstractStringBuilder_insert(var$3, var$4, var$1);
    var$1 = new jl_String;
    var$7 = var$3.$buffer;
    var$8 = var$7.data;
    var$9 = var$3.$length0;
    var$10 = var$8.length;
    if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_CompositeRangeSet_hasConsumed = ($this, $matchResult) => {
    return 1;
},
jur_CompositeRangeSet_first = ($this, $set) => {
    return 1;
};
function jur_SupplRangeSet() {
    let a = this; jur_JointSet.call(a);
    a.$chars = null;
    a.$alt0 = 0;
}
let jur_SupplRangeSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, $low, $high, $offset;
    a: {
        $strLength = $matchResult.$rightBound;
        if ($stringIndex < $strLength) {
            $low = $stringIndex + 1 | 0;
            if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
                $high = $testString.$nativeString.charCodeAt($stringIndex);
                if ($this.$contains1($high)) {
                    $offset = $this.$next4.$matches($low, $testString, $matchResult);
                    if ($offset > 0)
                        return $offset;
                }
                if ($low >= $strLength)
                    break a;
                $strLength = $low + 1 | 0;
                if ($low >= 0 && $low < $testString.$nativeString.length) {
                    $low = $testString.$nativeString.charCodeAt($low);
                    $stringIndex = ($high & 64512) != 55296 ? 0 : 1;
                    if (!($stringIndex && (($low & 64512) != 56320 ? 0 : 1) ? 1 : 0))
                        break a;
                    if (!$this.$contains1((($high & 1023) << 10 | $low & 1023) + 65536 | 0))
                        break a;
                    else
                        return $this.$next4.$matches($strLength, $testString, $matchResult);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
    }
    return (-1);
},
jur_SupplRangeSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = !$this.$alt0 ? $rt_s(260) : $rt_s(1946);
    var$2 = $this.$chars.$toString();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1947));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_SupplRangeSet_contains = ($this, $ch) => {
    return $this.$chars.$contains1($ch);
},
jur_SupplRangeSet_first = ($this, $set) => {
    let var$2, var$3;
    if ($set instanceof jur_SupplCharSet)
        return $this.$chars.$contains1($set.$ch1);
    if ($set instanceof jur_CharSet)
        return $this.$chars.$contains1($set.$ch0);
    if ($set instanceof jur_SupplRangeSet) {
        var$2 = $this.$chars;
        $set = $set.$chars;
        return var$2.$getBits() !== null && $set.$getBits() !== null ? ju_BitSet_intersects(var$2.$getBits(), $set.$getBits()) : 1;
    }
    if (!($set instanceof jur_RangeSet))
        return 1;
    var$2 = $this.$chars;
    var$3 = $set.$chars0;
    return var$2.$getBits() !== null && var$3.$getBits() !== null ? ju_BitSet_intersects(var$2.$getBits(), var$3.$getBits()) : 1;
},
jur_SupplRangeSet_getChars = $this => {
    return $this.$chars;
},
jur_SupplRangeSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_SupplRangeSet_hasConsumed = ($this, $mr) => {
    return 1;
},
jur_UCISupplRangeSet = $rt_classWithoutFields(jur_SupplRangeSet),
jur_UCISupplRangeSet_contains = ($this, $ch) => {
    let var$2;
    var$2 = $this.$chars;
    if (jl_Character_upperCaseMapping === null) {
        if (jl_Character_$$metadata$$1 === null)
            jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
        jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
    }
    $ch = jl_Character_mapChar(jl_Character_upperCaseMapping, $ch);
    if (jl_Character_lowerCaseMapping === null) {
        if (jl_Character_$$metadata$$0 === null)
            jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
        jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
    }
    return var$2.$contains1(jl_Character_mapChar(jl_Character_lowerCaseMapping, $ch));
},
jur_UCISupplRangeSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = !$this.$alt0 ? $rt_s(260) : $rt_s(1946);
    var$2 = $this.$chars.$toString();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1950));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function jur_UCIRangeSet() {
    let a = this; jur_LeafSet.call(a);
    a.$chars1 = null;
    a.$alt2 = 0;
}
let jur_UCIRangeSet_accepts = ($this, $strIndex, $testString) => {
    let var$3;
    var$3 = $this.$chars1;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        $strIndex = $testString.$nativeString.charCodeAt($strIndex);
        if (jl_Character_upperCaseMapping === null) {
            if (jl_Character_$$metadata$$1 === null)
                jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
            jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
        }
        $strIndex = jl_Character_mapChar(jl_Character_upperCaseMapping, $strIndex) & 65535;
        if (jl_Character_lowerCaseMapping === null) {
            if (jl_Character_$$metadata$$0 === null)
                jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
            jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
        }
        return !var$3.$contains1(jl_Character_mapChar(jl_Character_lowerCaseMapping, $strIndex) & 65535) ? (-1) : 1;
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_UCIRangeSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = !$this.$alt2 ? $rt_s(260) : $rt_s(1946);
    var$2 = $this.$chars1.$toString();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1950));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function jur_RangeSet() {
    let a = this; jur_LeafSet.call(a);
    a.$chars0 = null;
    a.$alt1 = 0;
}
let jur_RangeSet_accepts = ($this, $strIndex, $testString) => {
    let var$3;
    var$3 = $this.$chars0;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length)
        return !var$3.$contains1($testString.$nativeString.charCodeAt($strIndex)) ? (-1) : 1;
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_RangeSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = !$this.$alt1 ? $rt_s(260) : $rt_s(1946);
    var$2 = $this.$chars0.$toString();
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1947));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$4 = var$3.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$3, var$4, var$2);
    var$1 = new jl_String;
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$7 = var$3.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_RangeSet_first = ($this, $set) => {
    let var$2, var$3;
    if ($set instanceof jur_CharSet)
        return $this.$chars0.$contains1($set.$ch0);
    if ($set instanceof jur_RangeSet) {
        var$2 = $this.$chars0;
        $set = $set.$chars0;
        return var$2.$getBits() !== null && $set.$getBits() !== null ? ju_BitSet_intersects(var$2.$getBits(), $set.$getBits()) : 1;
    }
    if (!($set instanceof jur_SupplRangeSet)) {
        if (!($set instanceof jur_SupplCharSet))
            return 1;
        return 0;
    }
    var$2 = $this.$chars0;
    var$3 = $set.$chars;
    return var$2.$getBits() !== null && var$3.$getBits() !== null ? ju_BitSet_intersects(var$2.$getBits(), var$3.$getBits()) : 1;
};
function jur_HangulDecomposedCharSet() {
    let a = this; jur_JointSet.call(a);
    a.$decomposedChar = null;
    a.$decomposedCharUTF160 = null;
    a.$decomposedCharLength0 = 0;
}
let jur_HangulDecomposedCharSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_HangulDecomposedCharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if ($this.$decomposedCharUTF160 === null) {
        var$1 = new jl_String;
        var$2 = $this.$decomposedChar;
        var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$2.data.length);
        $this.$decomposedCharUTF160 = var$1;
    }
    var$3 = $this.$decomposedCharUTF160;
    var$1 = new jl_StringBuilder;
    var$1.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$1, var$1.$length0, $rt_s(1951));
    var$4 = var$1.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$1, var$4, var$3);
    var$5 = new jl_String;
    var$2 = var$1.$buffer;
    var$6 = var$2.data;
    var$7 = var$1.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$2.data, 0, var$7);
        return var$5;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_HangulDecomposedCharSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let $rightBound, $decompSyllable, $vIndex, $tIndex, var$8, $curSymb, $decompCurSymb, $i, $lIndex;
    $rightBound = $matchResult.$rightBound;
    $decompSyllable = $rt_createIntArray(3);
    $vIndex = (-1);
    $tIndex = (-1);
    if ($strIndex >= $rightBound)
        return (-1);
    var$8 = $strIndex + 1 | 0;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        $curSymb = $testString.$nativeString.charCodeAt($strIndex);
        $decompCurSymb = jur_Lexer_getHangulDecomposition($curSymb);
        if ($decompCurSymb !== null) {
            $decompSyllable = $decompCurSymb.data;
            $i = 0;
            $strIndex = $decompSyllable.length;
            $lIndex = $this.$decomposedCharLength0;
            if ($strIndex != $lIndex)
                return (-1);
            while (true) {
                if ($i >= $lIndex)
                    return $this.$next4.$matches(var$8, $testString, $matchResult);
                if ($decompSyllable[$i] != $this.$decomposedChar.data[$i])
                    break;
                $i = $i + 1 | 0;
            }
            return (-1);
        }
        $decompCurSymb = $decompSyllable.data;
        $decompCurSymb[0] = $curSymb;
        $lIndex = $curSymb - 4352 | 0;
        if ($lIndex >= 0 && $lIndex < 19) {
            if (var$8 < $rightBound) {
                if (var$8 >= 0 && var$8 < $testString.$nativeString.length) {
                    $curSymb = $testString.$nativeString.charCodeAt(var$8);
                    $vIndex = $curSymb - 4449 | 0;
                } else {
                    $testString = new jl_StringIndexOutOfBoundsException;
                    $testString.$suppressionEnabled = 1;
                    $testString.$writableStackTrace = 1;
                    $rt_throw($testString);
                }
            }
            if ($vIndex >= 0 && $vIndex < 21) {
                $strIndex = var$8 + 1 | 0;
                $decompCurSymb[1] = $curSymb;
                if ($strIndex < $rightBound) {
                    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
                        $curSymb = $testString.$nativeString.charCodeAt($strIndex);
                        $tIndex = $curSymb - 4519 | 0;
                    } else {
                        $testString = new jl_StringIndexOutOfBoundsException;
                        $testString.$suppressionEnabled = 1;
                        $testString.$writableStackTrace = 1;
                        $rt_throw($testString);
                    }
                }
                if ($tIndex >= 0 && $tIndex < 28) {
                    a: {
                        $strIndex = $strIndex + 1 | 0;
                        $decompCurSymb[2] = $curSymb;
                        if ($this.$decomposedCharLength0 == 3) {
                            $lIndex = $decompCurSymb[0];
                            $decompSyllable = $this.$decomposedChar.data;
                            if ($lIndex == $decompSyllable[0] && $decompCurSymb[1] == $decompSyllable[1] && $decompCurSymb[2] == $decompSyllable[2]) {
                                $strIndex = $this.$next4.$matches($strIndex, $testString, $matchResult);
                                break a;
                            }
                        }
                        $strIndex = (-1);
                    }
                    return $strIndex;
                }
                b: {
                    if ($this.$decomposedCharLength0 == 2) {
                        $lIndex = $decompCurSymb[0];
                        $decompSyllable = $this.$decomposedChar.data;
                        if ($lIndex == $decompSyllable[0] && $decompCurSymb[1] == $decompSyllable[1]) {
                            $strIndex = $this.$next4.$matches($strIndex, $testString, $matchResult);
                            break b;
                        }
                    }
                    $strIndex = (-1);
                }
                return $strIndex;
            }
            return (-1);
        }
        return (-1);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_HangulDecomposedCharSet_first = ($this, $set) => {
    let var$2, var$3, var$4;
    a: {
        if ($set instanceof jur_HangulDecomposedCharSet) {
            $set = $set;
            if ($set.$decomposedCharUTF160 === null) {
                var$2 = new jl_String;
                var$3 = $set.$decomposedChar;
                var$2.$nativeString = $rt_charArrayToString(var$3.data, 0, var$3.data.length);
                $set.$decomposedCharUTF160 = var$2;
            }
            var$2 = $set.$decomposedCharUTF160;
            if ($this.$decomposedCharUTF160 === null) {
                $set = new jl_String;
                var$3 = $this.$decomposedChar;
                $set.$nativeString = $rt_charArrayToString(var$3.data, 0, var$3.data.length);
                $this.$decomposedCharUTF160 = $set;
            }
            $set = $this.$decomposedCharUTF160;
            if (var$2 === $set)
                var$4 = 1;
            else if (!($set instanceof jl_String))
                var$4 = 0;
            else {
                $set = $set;
                var$4 = var$2.$nativeString !== $set.$nativeString ? 0 : 1;
            }
            if (!var$4) {
                var$4 = 0;
                break a;
            }
        }
        var$4 = 1;
    }
    return var$4;
},
jur_HangulDecomposedCharSet_hasConsumed = ($this, $matchResult) => {
    return 1;
};
function jur_CharSet() {
    jur_LeafSet.call(this);
    this.$ch0 = 0;
}
let jur_CharSet_charCount = $this => {
    return 1;
},
jur_CharSet_accepts = ($this, $strIndex, $testString) => {
    let var$3;
    var$3 = $this.$ch0;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length)
        return var$3 != $testString.$nativeString.charCodeAt($strIndex) ? (-1) : 1;
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_CharSet_find = ($this, $strIndex, $testStr, $matchResult) => {
    let $strLength, var$5, var$6, var$7, var$8;
    if ($testStr instanceof jl_String) {
        $strLength = $matchResult.$rightBound;
        while (true) {
            if ($strIndex >= $strLength)
                return (-1);
            var$5 = jl_String_indexOf($testStr, $this.$ch0, $strIndex);
            if (var$5 < 0)
                return (-1);
            var$6 = $this.$next4;
            $strIndex = var$5 + 1 | 0;
            if (var$6.$matches($strIndex, $testStr, $matchResult) >= 0)
                break;
        }
        return var$5;
    }
    var$7 = $matchResult.$rightBound;
    a: {
        b: {
            while (true) {
                if ($strIndex > var$7) {
                    $strIndex = (-1);
                    break b;
                }
                var$8 = $strIndex + 1 | 0;
                if (var$8 > $matchResult.$rightBound) {
                    $matchResult.$hitEnd = 1;
                    $strLength = (-1);
                } else {
                    $strLength = $this.$ch0;
                    if ($strIndex < 0)
                        break a;
                    if ($strIndex >= $testStr.$nativeString.length)
                        break a;
                    $strLength = $strLength != $testStr.$nativeString.charCodeAt($strIndex) ? (-1) : 1;
                    $strLength = $strLength < 0 ? (-1) : $this.$next4.$matches($strIndex + $strLength | 0, $testStr, $matchResult);
                }
                if ($strLength >= 0)
                    break;
                $strIndex = var$8;
            }
        }
        return $strIndex;
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    jl_Throwable__init_($testStr);
    $rt_throw($testStr);
},
jur_CharSet_findBack = ($this, $strIndex, $lastIndex, $testStr, $matchResult) => {
    let var$5;
    if ($testStr instanceof jl_String) {
        a: {
            while (true) {
                if ($lastIndex < $strIndex)
                    return (-1);
                $lastIndex = jl_String_lastIndexOf0($testStr, $this.$ch0, $lastIndex);
                if ($lastIndex < 0)
                    break a;
                if ($lastIndex < $strIndex)
                    break a;
                if ($this.$next4.$matches($lastIndex + 1 | 0, $testStr, $matchResult) >= 0)
                    break;
                $lastIndex = $lastIndex + (-1) | 0;
            }
            return $lastIndex;
        }
        return (-1);
    }
    b: {
        c: {
            while (true) {
                if ($lastIndex < $strIndex) {
                    $lastIndex = (-1);
                    break c;
                }
                if (($lastIndex + 1 | 0) > $matchResult.$rightBound) {
                    $matchResult.$hitEnd = 1;
                    var$5 = (-1);
                } else {
                    var$5 = $this.$ch0;
                    if ($lastIndex < 0)
                        break b;
                    if ($lastIndex >= $testStr.$nativeString.length)
                        break b;
                    var$5 = var$5 != $testStr.$nativeString.charCodeAt($lastIndex) ? (-1) : 1;
                    var$5 = var$5 < 0 ? (-1) : $this.$next4.$matches($lastIndex + var$5 | 0, $testStr, $matchResult);
                }
                if (var$5 >= 0)
                    break;
                $lastIndex = $lastIndex + (-1) | 0;
            }
        }
        return $lastIndex;
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    jl_Throwable__init_($testStr);
    $rt_throw($testStr);
},
jur_CharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$ch0;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$5[var$3] = var$1;
    var$6 = new jl_String;
    var$3 = var$2.$length0;
    var$7 = var$5.length;
    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
        return var$6;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
jur_CharSet_first = ($this, $set) => {
    let var$2, var$3, var$4, var$5;
    if ($set instanceof jur_CharSet)
        return $set.$ch0 != $this.$ch0 ? 0 : 1;
    if (!($set instanceof jur_RangeSet)) {
        if ($set instanceof jur_SupplRangeSet)
            return $set.$contains1($this.$ch0);
        if (!($set instanceof jur_SupplCharSet))
            return 1;
        return 0;
    }
    $set = $set;
    var$2 = $this.$ch0;
    var$3 = new jl_String;
    var$4 = $rt_createCharArray(1);
    var$5 = var$4.data;
    var$5[0] = var$2;
    var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$5.length);
    $set = $set.$chars0;
    if (0 >= var$3.$nativeString.length) {
        $set = new jl_StringIndexOutOfBoundsException;
        $set.$suppressionEnabled = 1;
        $set.$writableStackTrace = 1;
        $rt_throw($set);
    }
    return (!$set.$contains1(var$3.$nativeString.charCodeAt(0)) ? (-1) : 1) <= 0 ? 0 : 1;
};
function jur_UCICharSet() {
    jur_LeafSet.call(this);
    this.$ch3 = 0;
}
let jur_UCICharSet_accepts = ($this, $strIndex, $testString) => {
    let var$3;
    var$3 = $this.$ch3;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        $strIndex = $testString.$nativeString.charCodeAt($strIndex);
        if (jl_Character_upperCaseMapping === null) {
            if (jl_Character_$$metadata$$1 === null)
                jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
            jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
        }
        $strIndex = jl_Character_mapChar(jl_Character_upperCaseMapping, $strIndex) & 65535;
        if (jl_Character_lowerCaseMapping === null) {
            if (jl_Character_$$metadata$$0 === null)
                jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
            jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
        }
        return var$3 != (jl_Character_mapChar(jl_Character_lowerCaseMapping, $strIndex) & 65535) ? (-1) : 1;
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_UCICharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$ch3;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1952));
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$5[var$3] = var$1;
    var$6 = new jl_String;
    var$3 = var$2.$length0;
    var$7 = var$5.length;
    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
        return var$6;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function jur_CICharSet() {
    let a = this; jur_LeafSet.call(a);
    a.$ch2 = 0;
    a.$supplement = 0;
}
let jur_CICharSet_accepts = ($this, $strIndex, $testString) => {
    let var$3;
    var$3 = $this.$ch2;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        a: {
            b: {
                if (var$3 != $testString.$nativeString.charCodeAt($strIndex)) {
                    var$3 = $this.$supplement;
                    if ($strIndex < 0)
                        break a;
                    if ($strIndex >= $testString.$nativeString.length)
                        break a;
                    if (var$3 != $testString.$nativeString.charCodeAt($strIndex)) {
                        $strIndex = (-1);
                        break b;
                    }
                }
                $strIndex = 1;
            }
            return $strIndex;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_CICharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$ch2;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1953));
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$5[var$3] = var$1;
    var$6 = new jl_String;
    var$3 = var$2.$length0;
    var$7 = var$5.length;
    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
        return var$6;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function jur_DecomposedCharSet() {
    let a = this; jur_JointSet.call(a);
    a.$readCharsForCodePoint = 0;
    a.$decomposedCharUTF16 = null;
    a.$decomposedChar0 = null;
    a.$decomposedCharLength = 0;
}
let jur_DecomposedCharSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_DecomposedCharSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let $decCodePoint, $rightBound, $curChar, var$7, $decCurCodePoint, var$9, var$10;
    $decCodePoint = $rt_createIntArray(4);
    $rightBound = $matchResult.$rightBound;
    if ($strIndex >= $rightBound)
        return (-1);
    $curChar = jur_DecomposedCharSet_codePointAt($this, $strIndex, $testString, $rightBound);
    var$7 = $strIndex + $this.$readCharsForCodePoint | 0;
    $decCurCodePoint = jur_Lexer_decompTable.$get7($curChar);
    if ($decCurCodePoint === null) {
        var$9 = $decCodePoint.data;
        $strIndex = 1;
        var$9[0] = $curChar;
    } else {
        $strIndex = $decCurCodePoint.data.length;
        jl_System_fastArraycopy($decCurCodePoint, 0, $decCodePoint, 0, $strIndex);
        $strIndex = 0 + $strIndex | 0;
    }
    a: {
        if (var$7 < $rightBound) {
            $decCurCodePoint = $decCodePoint.data;
            $curChar = jur_DecomposedCharSet_codePointAt($this, var$7, $testString, $rightBound);
            while ($strIndex < 4) {
                if (!jur_Lexer_hasDecompositionNonNullCanClass($curChar)) {
                    var$10 = $strIndex + 1 | 0;
                    $decCurCodePoint[$strIndex] = $curChar;
                } else {
                    var$9 = (jur_Lexer_decompTable.$get7($curChar)).data;
                    if (var$9.length != 2) {
                        var$10 = $strIndex + 1 | 0;
                        $decCurCodePoint[$strIndex] = var$9[0];
                    } else {
                        $curChar = $strIndex + 1 | 0;
                        $decCurCodePoint[$strIndex] = var$9[0];
                        var$10 = $curChar + 1 | 0;
                        $decCurCodePoint[$curChar] = var$9[1];
                    }
                }
                var$7 = var$7 + $this.$readCharsForCodePoint | 0;
                if (var$7 >= $rightBound) {
                    $strIndex = var$10;
                    break a;
                }
                $curChar = jur_DecomposedCharSet_codePointAt($this, var$7, $testString, $rightBound);
                $strIndex = var$10;
            }
        }
    }
    if ($strIndex != $this.$decomposedCharLength)
        return (-1);
    var$9 = $decCodePoint.data;
    $curChar = 0;
    while (true) {
        if ($curChar >= $strIndex)
            return $this.$next4.$matches(var$7, $testString, $matchResult);
        if (var$9[$curChar] != $this.$decomposedChar0.data[$curChar])
            break;
        $curChar = $curChar + 1 | 0;
    }
    return (-1);
},
jur_DecomposedCharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if ($this.$decomposedCharUTF16 === null) {
        var$1 = new jl_StringBuilder;
        var$1.$buffer = $rt_createCharArray(16);
        var$2 = 0;
        while (var$2 < $this.$decomposedCharLength) {
            var$3 = jl_Character_toChars($this.$decomposedChar0.data[var$2]);
            var$4 = var$3.data.length;
            jl_AbstractStringBuilder_insert6(var$1, var$1.$length0, var$3, 0, var$4);
            var$2 = var$2 + 1 | 0;
        }
        var$5 = new jl_String;
        var$3 = var$1.$buffer;
        var$6 = var$3.data;
        var$7 = var$1.$length0;
        var$4 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$4 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$3.data, 0, var$7);
            $this.$decomposedCharUTF16 = var$5;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
    }
    var$8 = $this.$decomposedCharUTF16;
    var$1 = new jl_StringBuilder;
    var$1.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$1, var$1.$length0, $rt_s(1954));
    var$2 = var$1.$length0;
    if (var$8 === null)
        var$8 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$1, var$2, var$8);
    var$5 = new jl_String;
    var$3 = var$1.$buffer;
    var$6 = var$3.data;
    var$7 = var$1.$length0;
    var$4 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$4 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$3.data, 0, var$7);
        return var$5;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_DecomposedCharSet_codePointAt = ($this, $strIndex, $testString, $rightBound) => {
    let $curChar, $low, $curCodePointUTF16, var$7;
    a: {
        $this.$readCharsForCodePoint = 1;
        if ($strIndex >= ($rightBound - 1 | 0)) {
            if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
                $curChar = $testString.$nativeString.charCodeAt($strIndex);
                break a;
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        $rightBound = $strIndex + 1 | 0;
        if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
            $curChar = $testString.$nativeString.charCodeAt($strIndex);
            if ($rightBound >= 0 && $rightBound < $testString.$nativeString.length) {
                $low = $testString.$nativeString.charCodeAt($rightBound);
                $strIndex = ($curChar & 64512) != 55296 ? 0 : 1;
                if ($strIndex && (($low & 64512) != 56320 ? 0 : 1) ? 1 : 0) {
                    $curCodePointUTF16 = $rt_createCharArray(2);
                    var$7 = $curCodePointUTF16.data;
                    var$7[0] = $curChar;
                    var$7[1] = $low;
                    $curChar = jl_Character_codePointAt($curCodePointUTF16, 0, var$7.length);
                    $this.$readCharsForCodePoint = 2;
                }
                break a;
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    return $curChar;
},
jur_DecomposedCharSet_first = ($this, $set) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        if ($set instanceof jur_DecomposedCharSet) {
            $set = $set;
            if ($set.$decomposedCharUTF16 === null) {
                var$2 = new jl_StringBuilder;
                var$2.$buffer = $rt_createCharArray(16);
                var$3 = 0;
                while (var$3 < $set.$decomposedCharLength) {
                    var$4 = jl_Character_toChars($set.$decomposedChar0.data[var$3]);
                    var$5 = var$4.data.length;
                    jl_AbstractStringBuilder_insert6(var$2, var$2.$length0, var$4, 0, var$5);
                    var$3 = var$3 + 1 | 0;
                }
                var$6 = new jl_String;
                var$4 = var$2.$buffer;
                var$7 = var$4.data;
                var$8 = var$2.$length0;
                var$5 = var$7.length;
                if (var$8 >= 0 && var$8 <= (var$5 - 0 | 0)) {
                    var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$8);
                    $set.$decomposedCharUTF16 = var$6;
                } else {
                    $set = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($set);
                    $rt_throw($set);
                }
            }
            var$6 = $set.$decomposedCharUTF16;
            if ($this.$decomposedCharUTF16 === null) {
                $set = new jl_StringBuilder;
                $set.$buffer = $rt_createCharArray(16);
                var$3 = 0;
                while (var$3 < $this.$decomposedCharLength) {
                    var$4 = jl_Character_toChars($this.$decomposedChar0.data[var$3]);
                    var$5 = var$4.data.length;
                    jl_AbstractStringBuilder_insert6($set, $set.$length0, var$4, 0, var$5);
                    var$3 = var$3 + 1 | 0;
                }
                var$2 = new jl_String;
                var$4 = $set.$buffer;
                var$7 = var$4.data;
                var$5 = $set.$length0;
                var$8 = var$7.length;
                if (var$5 >= 0 && var$5 <= (var$8 - 0 | 0)) {
                    var$2.$nativeString = $rt_charArrayToString(var$4.data, 0, var$5);
                    $this.$decomposedCharUTF16 = var$2;
                } else {
                    $set = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($set);
                    $rt_throw($set);
                }
            }
            $set = $this.$decomposedCharUTF16;
            if (var$6 === $set)
                var$3 = 1;
            else if (!($set instanceof jl_String))
                var$3 = 0;
            else {
                $set = $set;
                var$3 = var$6.$nativeString !== $set.$nativeString ? 0 : 1;
            }
            if (!var$3) {
                var$3 = 0;
                break a;
            }
        }
        var$3 = 1;
    }
    return var$3;
},
jur_DecomposedCharSet_hasConsumed = ($this, $matchResult) => {
    return 1;
},
jur_UCIDecomposedCharSet = $rt_classWithoutFields(jur_DecomposedCharSet),
jur_CIDecomposedCharSet = $rt_classWithoutFields(jur_DecomposedCharSet),
jur_PossessiveGroupQuantifierSet = $rt_classWithoutFields(jur_GroupQuantifierSet),
jur_PossessiveGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $stringIndex_0;
    while (true) {
        $stringIndex_0 = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
        if ($stringIndex_0 <= 0)
            break;
        $stringIndex = $stringIndex_0;
    }
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_PosPlusGroupQuantifierSet = $rt_classWithoutFields(jur_GroupQuantifierSet),
jur_PosPlusGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $nextIndex;
    $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    if ($nextIndex < 0)
        return (-1);
    if ($nextIndex > $stringIndex) {
        while (true) {
            $stringIndex = $this.$innerSet.$matches($nextIndex, $testString, $matchResult);
            if ($stringIndex <= $nextIndex)
                break;
            $nextIndex = $stringIndex;
        }
        $stringIndex = $nextIndex;
    }
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_AltGroupQuantifierSet = $rt_classWithoutFields(jur_GroupQuantifierSet),
jur_AltGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $nextIndex;
    if (!$this.$innerSet.$hasConsumed($matchResult))
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    if ($nextIndex >= 0)
        return $nextIndex;
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_AltGroupQuantifierSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
    $this.$innerSet.$setNext($next);
},
jur_PosAltGroupQuantifierSet = $rt_classWithoutFields(jur_AltGroupQuantifierSet),
jur_PosAltGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $nextIndex;
    $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    if ($nextIndex <= 0)
        $nextIndex = $stringIndex;
    return $this.$next4.$matches($nextIndex, $testString, $matchResult);
},
jur_PosAltGroupQuantifierSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
};
function jur_CompositeGroupQuantifierSet() {
    let a = this; jur_GroupQuantifierSet.call(a);
    a.$quantifier = null;
    a.$setCounter = 0;
}
let jur_CompositeGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $enterCounter, var$5, $nextIndex, var$7;
    $enterCounter = $this.$setCounter;
    $enterCounter = $matchResult.$compQuantCounters.data[$enterCounter];
    if (!$this.$innerSet.$hasConsumed($matchResult))
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    if ($enterCounter >= $this.$quantifier.$max0)
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    var$5 = $this.$setCounter;
    $enterCounter = $enterCounter + 1 | 0;
    $matchResult.$compQuantCounters.data[var$5] = $enterCounter;
    $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    if ($nextIndex >= 0) {
        $stringIndex = $this.$setCounter;
        $matchResult.$compQuantCounters.data[$stringIndex] = 0;
        return $nextIndex;
    }
    $nextIndex = $this.$setCounter;
    $enterCounter = $enterCounter + (-1) | 0;
    var$7 = $matchResult.$compQuantCounters.data;
    var$7[$nextIndex] = $enterCounter;
    if ($enterCounter >= $this.$quantifier.$min0)
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    var$7[$nextIndex] = 0;
    return (-1);
},
jur_CompositeGroupQuantifierSet_getName = $this => {
    return jur_Quantifier_toString($this.$quantifier);
},
jur_PosCompositeGroupQuantifierSet = $rt_classWithoutFields(jur_CompositeGroupQuantifierSet),
jur_PosCompositeGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $counter, $max, $nextIndex;
    $counter = 0;
    $max = $this.$quantifier.$max0;
    a: {
        while (true) {
            $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
            if ($nextIndex <= $stringIndex)
                break a;
            if ($counter >= $max)
                break;
            $counter = $counter + 1 | 0;
            $stringIndex = $nextIndex;
        }
    }
    if ($nextIndex < 0 && $counter < $this.$quantifier.$min0)
        return (-1);
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_ReluctantGroupQuantifierSet = $rt_classWithoutFields(jur_GroupQuantifierSet),
jur_ReluctantGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $res;
    if (!$this.$innerSet.$hasConsumed($matchResult))
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    $res = $this.$next4.$matches($stringIndex, $testString, $matchResult);
    if ($res >= 0)
        return $res;
    return $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
},
jur_RelAltGroupQuantifierSet = $rt_classWithoutFields(jur_AltGroupQuantifierSet),
jur_RelAltGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $nextIndex;
    if (!$this.$innerSet.$hasConsumed($matchResult))
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    $nextIndex = $this.$next4.$matches($stringIndex, $testString, $matchResult);
    if ($nextIndex < 0)
        $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    return $nextIndex;
},
jur_RelCompositeGroupQuantifierSet = $rt_classWithoutFields(jur_CompositeGroupQuantifierSet),
jur_RelCompositeGroupQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $nextIndex, $enterCounter, var$6;
    $nextIndex = $this.$setCounter;
    $enterCounter = $matchResult.$compQuantCounters.data[$nextIndex];
    if (!$this.$innerSet.$hasConsumed($matchResult))
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    var$6 = $this.$quantifier;
    if ($enterCounter >= var$6.$max0) {
        $nextIndex = $this.$setCounter;
        $matchResult.$compQuantCounters.data[$nextIndex] = 0;
        return $this.$next4.$matches($stringIndex, $testString, $matchResult);
    }
    if ($enterCounter < var$6.$min0) {
        $nextIndex = $this.$setCounter;
        $matchResult.$compQuantCounters.data[$nextIndex] = $enterCounter + 1 | 0;
        $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    } else {
        $nextIndex = $this.$next4.$matches($stringIndex, $testString, $matchResult);
        if ($nextIndex >= 0) {
            $stringIndex = $this.$setCounter;
            $matchResult.$compQuantCounters.data[$stringIndex] = 0;
            return $nextIndex;
        }
        $nextIndex = $this.$setCounter;
        $matchResult.$compQuantCounters.data[$nextIndex] = $enterCounter + 1 | 0;
        $nextIndex = $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
    }
    return $nextIndex;
},
jur_DotAllQuantifierSet = $rt_classWithoutFields(jur_QuantifierSet),
jur_DotAllQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength;
    $strLength = $matchResult.$rightBound;
    if ($strLength > $stringIndex)
        return $this.$next4.$findBack($stringIndex, $strLength, $testString, $matchResult);
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_DotAllQuantifierSet_find = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength;
    $strLength = $matchResult.$rightBound;
    if ($this.$next4.$findBack($stringIndex, $strLength, $testString, $matchResult) >= 0)
        return $stringIndex;
    return (-1);
},
jur_DotAllQuantifierSet_getName = $this => {
    return $rt_s(1955);
};
function jur_DotQuantifierSet() {
    jur_QuantifierSet.call(this);
    this.$lt = null;
}
let jur_DotQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, $startSearch, var$6;
    $strLength = $matchResult.$rightBound;
    $startSearch = $stringIndex;
    a: {
        while (true) {
            if ($startSearch >= $strLength) {
                $startSearch = (-1);
                break a;
            }
            var$6 = $this.$lt;
            if ($startSearch < 0)
                break;
            if ($startSearch >= $testString.$nativeString.length)
                break;
            if (var$6.$isLineTerminator($testString.$nativeString.charCodeAt($startSearch)))
                break a;
            $startSearch = $startSearch + 1 | 0;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    if ($startSearch >= 0)
        $strLength = $startSearch;
    if ($strLength > $stringIndex)
        return $this.$next4.$findBack($stringIndex, $strLength, $testString, $matchResult);
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_DotQuantifierSet_find = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, $res, $nextSearch, var$7, $leftBound;
    $strLength = $matchResult.$rightBound;
    $res = $this.$next4.$find0($stringIndex, $testString, $matchResult);
    if ($res < 0)
        return (-1);
    $nextSearch = $res;
    a: {
        while (true) {
            if ($nextSearch >= $strLength) {
                $nextSearch = (-1);
                break a;
            }
            var$7 = $this.$lt;
            if ($nextSearch < 0)
                break;
            if ($nextSearch >= $testString.$nativeString.length)
                break;
            if (var$7.$isLineTerminator($testString.$nativeString.charCodeAt($nextSearch)))
                break a;
            $nextSearch = $nextSearch + 1 | 0;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    if ($nextSearch >= 0)
        $strLength = $nextSearch;
    $nextSearch = $this.$next4.$findBack($res, $strLength, $testString, $matchResult);
    if ($res > $nextSearch)
        $nextSearch = $res;
    if ($nextSearch <= 0)
        $leftBound = $nextSearch ? (-1) : 0;
    else {
        $leftBound = $nextSearch - 1 | 0;
        b: {
            while (true) {
                if ($leftBound < $stringIndex) {
                    $leftBound = (-1);
                    break b;
                }
                $matchResult = $this.$lt;
                if ($leftBound < 0)
                    break;
                if ($leftBound >= $testString.$nativeString.length)
                    break;
                if ($matchResult.$isLineTerminator($testString.$nativeString.charCodeAt($leftBound)))
                    break b;
                $leftBound = $leftBound + (-1) | 0;
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
    }
    if ($leftBound >= $stringIndex)
        $stringIndex = $leftBound >= $nextSearch ? $leftBound : $leftBound + 1 | 0;
    return $stringIndex;
},
jur_DotQuantifierSet_getName = $this => {
    return $rt_s(1956);
},
jur_AbstractLineTerminator = $rt_classWithoutFields(),
jur_AbstractLineTerminator_unixLT = null,
jur_AbstractLineTerminator_unicodeLT = null,
jur_PossessiveQuantifierSet = $rt_classWithoutFields(jur_LeafQuantifierSet),
jur_PossessiveQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4;
    a: {
        while (true) {
            if (($stringIndex + $this.$leaf.$charCount() | 0) > $matchResult.$rightBound)
                break a;
            var$4 = $this.$leaf.$accepts($stringIndex, $testString);
            if (var$4 < 1)
                break;
            $stringIndex = $stringIndex + var$4 | 0;
        }
    }
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_PossessiveAltQuantifierSet = $rt_classWithoutFields(jur_AltQuantifierSet),
jur_PossessiveAltQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4;
    if (($stringIndex + $this.$leaf.$charCount() | 0) <= $matchResult.$rightBound) {
        var$4 = $this.$leaf.$accepts($stringIndex, $testString);
        if (var$4 >= 1)
            $stringIndex = $stringIndex + var$4 | 0;
    }
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_PossessiveCompositeQuantifierSet = $rt_classWithoutFields(jur_CompositeQuantifierSet),
jur_PossessiveCompositeQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4, $min, $max, $i, $shift;
    var$4 = $this.$quantifier0;
    $min = var$4.$min0;
    $max = var$4.$max0;
    $i = 0;
    while (true) {
        if ($i >= $min) {
            a: {
                while (true) {
                    if ($i >= $max)
                        break a;
                    if (($stringIndex + $this.$leaf.$charCount() | 0) > $matchResult.$rightBound)
                        break a;
                    $shift = $this.$leaf.$accepts($stringIndex, $testString);
                    if ($shift < 1)
                        break;
                    $stringIndex = $stringIndex + $shift | 0;
                    $i = $i + 1 | 0;
                }
            }
            return $this.$next4.$matches($stringIndex, $testString, $matchResult);
        }
        if (($stringIndex + $this.$leaf.$charCount() | 0) > $matchResult.$rightBound) {
            $matchResult.$hitEnd = 1;
            return (-1);
        }
        $shift = $this.$leaf.$accepts($stringIndex, $testString);
        if ($shift < 1)
            break;
        $stringIndex = $stringIndex + $shift | 0;
        $i = $i + 1 | 0;
    }
    return (-1);
},
jur_ReluctantQuantifierSet = $rt_classWithoutFields(jur_LeafQuantifierSet),
jur_ReluctantQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4;
    while (true) {
        var$4 = $this.$next4.$matches($stringIndex, $testString, $matchResult);
        if (var$4 >= 0)
            break;
        if (($stringIndex + $this.$leaf.$charCount() | 0) <= $matchResult.$rightBound) {
            var$4 = $this.$leaf.$accepts($stringIndex, $testString);
            $stringIndex = $stringIndex + var$4 | 0;
        }
        if (var$4 < 1)
            return (-1);
    }
    return var$4;
},
jur_ReluctantAltQuantifierSet = $rt_classWithoutFields(jur_AltQuantifierSet),
jur_ReluctantAltQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $shift;
    $shift = $this.$next4.$matches($stringIndex, $testString, $matchResult);
    if ($shift >= 0)
        return $shift;
    return $this.$innerSet.$matches($stringIndex, $testString, $matchResult);
},
jur_ReluctantCompositeQuantifierSet = $rt_classWithoutFields(jur_CompositeQuantifierSet),
jur_ReluctantCompositeQuantifierSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4, $min, $max, $i, var$8, var$9;
    var$4 = $this.$quantifier0;
    $min = var$4.$min0;
    $max = var$4.$max0;
    $i = 0;
    while (true) {
        if ($i >= $min) {
            a: {
                while (true) {
                    var$8 = $this.$next4.$matches($stringIndex, $testString, $matchResult);
                    if (var$8 >= 0)
                        break;
                    if (($stringIndex + $this.$leaf.$charCount() | 0) <= $matchResult.$rightBound) {
                        var$8 = $this.$leaf.$accepts($stringIndex, $testString);
                        $stringIndex = $stringIndex + var$8 | 0;
                        $i = $i + 1 | 0;
                    }
                    if (var$8 < 1)
                        break a;
                    if ($i > $max)
                        break a;
                }
                return var$8;
            }
            return (-1);
        }
        if (($stringIndex + $this.$leaf.$charCount() | 0) > $matchResult.$rightBound) {
            $matchResult.$hitEnd = 1;
            return (-1);
        }
        var$9 = $this.$leaf.$accepts($stringIndex, $testString);
        if (var$9 < 1)
            break;
        $stringIndex = $stringIndex + var$9 | 0;
        $i = $i + 1 | 0;
    }
    return (-1);
},
jur_SOLSet = $rt_classWithoutFields(jur_AbstractSet),
jur_SOLSet__init_0 = $this => {
    let var$1, var$2;
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jur_SOLSet__init_ = () => {
    let var_0 = new jur_SOLSet();
    jur_SOLSet__init_0(var_0);
    return var_0;
},
jur_SOLSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    if ($strIndex && !($matchResult.$anchoringBounds && $strIndex == $matchResult.$leftBound))
        return (-1);
    return $this.$next4.$matches($strIndex, $testString, $matchResult);
},
jur_SOLSet_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_SOLSet_getName = $this => {
    return $rt_s(1957);
};
function jur_WordBoundary() {
    jur_AbstractSet.call(this);
    this.$positive = 0;
}
let jur_WordBoundary_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $ch1, $ch2, $leftBound;
    if ($stringIndex >= $matchResult.$rightBound)
        $ch1 = 32;
    else if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length)
        $ch1 = $testString.$nativeString.charCodeAt($stringIndex);
    else {
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    if (!$stringIndex)
        $ch2 = 32;
    else {
        $ch2 = $stringIndex - 1 | 0;
        if ($ch2 >= 0 && $ch2 < $testString.$nativeString.length)
            $ch2 = $testString.$nativeString.charCodeAt($ch2);
        else {
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
    }
    $leftBound = $matchResult.$transparentBounds ? 0 : $matchResult.$leftBound;
    return ($ch1 != 32 && !jur_WordBoundary_isSpace($this, $ch1, $stringIndex, $leftBound, $testString) ? 0 : 1) ^ ($ch2 != 32 && !jur_WordBoundary_isSpace($this, $ch2, $stringIndex - 1 | 0, $leftBound, $testString) ? 0 : 1) ^ $this.$positive ? (-1) : $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_WordBoundary_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_WordBoundary_getName = $this => {
    return $rt_s(1958);
},
jur_WordBoundary_isSpace = ($this, $ch, $index, $leftBound, $testString) => {
    let var$5;
    a: {
        b: {
            switch (jl_Character_getType($ch)) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 9:
                    break;
                case 6:
                case 7:
                case 8:
                    break b;
                default:
                    break b;
            }
            var$5 = 1;
            break a;
        }
        var$5 = 0;
    }
    if (!var$5 && $ch != 95) {
        c: {
            d: {
                if (jl_Character_getType($ch) == 6)
                    while (true) {
                        $index = $index + (-1) | 0;
                        if ($index < $leftBound)
                            break d;
                        if ($index < 0)
                            break c;
                        if ($index >= $testString.$nativeString.length)
                            break c;
                        e: {
                            f: {
                                var$5 = $testString.$nativeString.charCodeAt($index);
                                switch (jl_Character_getType(var$5)) {
                                    case 1:
                                    case 2:
                                    case 3:
                                    case 4:
                                    case 5:
                                    case 9:
                                        break;
                                    case 6:
                                    case 7:
                                    case 8:
                                        break f;
                                    default:
                                        break f;
                                }
                                $ch = 1;
                                break e;
                            }
                            $ch = 0;
                        }
                        if ($ch)
                            return 0;
                        if (jl_Character_getType(var$5) != 6)
                            return 1;
                    }
            }
            return 1;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    return 0;
},
jur_PreviousMatch = $rt_classWithoutFields(jur_AbstractSet),
jur_PreviousMatch__init_ = $this => {
    let var$1, var$2;
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jur_PreviousMatch__init_0 = () => {
    let var_0 = new jur_PreviousMatch();
    jur_PreviousMatch__init_(var_0);
    return var_0;
},
jur_PreviousMatch_matches = ($this, $stringIndex, $testString, $matchResult) => {
    if ($stringIndex != $matchResult.$previousMatch)
        return (-1);
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_PreviousMatch_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_PreviousMatch_getName = $this => {
    return $rt_s(1959);
};
function jur_EOLSet() {
    jur_AbstractSet.call(this);
    this.$consCounter0 = 0;
}
let jur_EOLSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let $rightBound, $ch, var$6;
    $rightBound = !$matchResult.$anchoringBounds ? $testString.$nativeString.length : $matchResult.$rightBound;
    if ($strIndex >= $rightBound) {
        $ch = $this.$consCounter0;
        $matchResult.$consumers.data[$ch] = 0;
        return $this.$next4.$matches($strIndex, $testString, $matchResult);
    }
    a: {
        $rightBound = $rightBound - $strIndex | 0;
        if ($rightBound == 2) {
            if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
                if ($testString.$nativeString.charCodeAt($strIndex) != 13)
                    break a;
                var$6 = $strIndex + 1 | 0;
                if (var$6 >= 0 && var$6 < $testString.$nativeString.length) {
                    if ($testString.$nativeString.charCodeAt(var$6) != 10)
                        break a;
                    $ch = $this.$consCounter0;
                    $matchResult.$consumers.data[$ch] = 0;
                    return $this.$next4.$matches($strIndex, $testString, $matchResult);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
    }
    b: {
        c: {
            if ($rightBound == 1) {
                if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
                    $ch = $testString.$nativeString.charCodeAt($strIndex);
                    if ($ch == 10)
                        break b;
                    if ($ch == 13)
                        break b;
                    if ($ch == 133)
                        break b;
                    if (($ch | 1) != 8233)
                        break c;
                    else
                        break b;
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
        }
        return (-1);
    }
    $rightBound = $this.$consCounter0;
    $matchResult.$consumers.data[$rightBound] = 0;
    return $this.$next4.$matches($strIndex, $testString, $matchResult);
},
jur_EOLSet_hasConsumed = ($this, $matchResult) => {
    let var$2, var$3, $res;
    var$2 = $this.$consCounter0;
    var$3 = $matchResult.$consumers.data;
    $res = !var$3[var$2] ? 0 : 1;
    var$3[var$2] = (-1);
    return $res;
},
jur_EOLSet_getName = $this => {
    return $rt_s(1960);
},
jur_EOISet = $rt_classWithoutFields(jur_AbstractSet),
jur_EOISet__init_ = $this => {
    let var$1, var$2;
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jur_EOISet__init_0 = () => {
    let var_0 = new jur_EOISet();
    jur_EOISet__init_(var_0);
    return var_0;
},
jur_EOISet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    if ($stringIndex < (!$matchResult.$transparentBounds ? $matchResult.$rightBound : $testString.$nativeString.length))
        return (-1);
    $matchResult.$hitEnd = 1;
    $matchResult.$requireEnd = 1;
    return $this.$next4.$matches($stringIndex, $testString, $matchResult);
},
jur_EOISet_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_EOISet_getName = $this => {
    return $rt_s(1961);
};
function jur_MultiLineSOLSet() {
    jur_AbstractSet.call(this);
    this.$lt1 = null;
}
let jur_MultiLineSOLSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let var$4, var$5;
    a: {
        b: {
            c: {
                if ($strIndex != $matchResult.$rightBound) {
                    if (!$strIndex)
                        break b;
                    if ($matchResult.$anchoringBounds && $strIndex == $matchResult.$leftBound)
                        break b;
                    var$4 = $this.$lt1;
                    var$5 = $strIndex - 1 | 0;
                    if (var$5 >= 0 && var$5 < $testString.$nativeString.length) {
                        var$5 = $testString.$nativeString.charCodeAt(var$5);
                        if ($strIndex < 0)
                            break a;
                        if ($strIndex >= $testString.$nativeString.length)
                            break a;
                        if (!var$4.$isAfterLineTerminator(var$5, $testString.$nativeString.charCodeAt($strIndex)))
                            break c;
                        else
                            break b;
                    }
                    $testString = new jl_StringIndexOutOfBoundsException;
                    $testString.$suppressionEnabled = 1;
                    $testString.$writableStackTrace = 1;
                    $rt_throw($testString);
                }
            }
            return (-1);
        }
        return $this.$next4.$matches($strIndex, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_MultiLineSOLSet_hasConsumed = ($this, $matchResult) => {
    return 0;
},
jur_MultiLineSOLSet_getName = $this => {
    return $rt_s(1962);
},
jur_DotAllSet = $rt_classWithoutFields(jur_JointSet),
jur_DotAllSet__init_ = $this => {
    let var$1, var$2;
    var$1 = jur_AbstractSet_counter;
    jur_AbstractSet_counter = var$1 + 1 | 0;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
},
jur_DotAllSet__init_0 = () => {
    let var_0 = new jur_DotAllSet();
    jur_DotAllSet__init_(var_0);
    return var_0;
},
jur_DotAllSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, var$5, $high, $low, var$8;
    $strLength = $matchResult.$rightBound;
    var$5 = $stringIndex + 1 | 0;
    if (var$5 > $strLength) {
        $matchResult.$hitEnd = 1;
        return (-1);
    }
    if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
        $high = $rt_compare($testString.$nativeString.charCodeAt($stringIndex) & 64512, 55296);
        $low = $high ? 0 : 1;
        a: {
            if ($low) {
                var$8 = $stringIndex + 2 | 0;
                if (var$8 <= $strLength) {
                    if (var$5 >= 0 && var$5 < $testString.$nativeString.length) {
                        $low = $testString.$nativeString.charCodeAt(var$5);
                        $stringIndex = $high ? 0 : 1;
                        if (!($stringIndex && (($low & 64512) != 56320 ? 0 : 1) ? 1 : 0))
                            break a;
                        else
                            return $this.$next4.$matches(var$8, $testString, $matchResult);
                    }
                    $testString = new jl_StringIndexOutOfBoundsException;
                    $testString.$suppressionEnabled = 1;
                    $testString.$writableStackTrace = 1;
                    $rt_throw($testString);
                }
            }
        }
        return $this.$next4.$matches(var$5, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_DotAllSet_getName = $this => {
    return $rt_s(1963);
},
jur_DotAllSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_DotAllSet_getType = $this => {
    return (-2147483602);
},
jur_DotAllSet_hasConsumed = ($this, $matchResult) => {
    return 1;
};
function jur_DotSet() {
    jur_JointSet.call(this);
    this.$lt0 = null;
}
let jur_DotSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, var$5, $high, var$7, $low, var$9;
    $strLength = $matchResult.$rightBound;
    var$5 = $stringIndex + 1 | 0;
    if (var$5 > $strLength) {
        $matchResult.$hitEnd = 1;
        return (-1);
    }
    if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
        $high = $testString.$nativeString.charCodeAt($stringIndex);
        var$7 = $rt_compare($high & 64512, 55296);
        $low = var$7 ? 0 : 1;
        a: {
            if ($low) {
                var$9 = $stringIndex + 2 | 0;
                if (var$9 <= $strLength) {
                    if (var$5 >= 0 && var$5 < $testString.$nativeString.length) {
                        $low = $testString.$nativeString.charCodeAt(var$5);
                        $stringIndex = var$7 ? 0 : 1;
                        if (!($stringIndex && (($low & 64512) != 56320 ? 0 : 1) ? 1 : 0))
                            break a;
                        else
                            return $this.$lt0.$isLineTerminator((($high & 1023) << 10 | $low & 1023) + 65536 | 0) ? (-1) : $this.$next4.$matches(var$9, $testString, $matchResult);
                    }
                    $testString = new jl_StringIndexOutOfBoundsException;
                    $testString.$suppressionEnabled = 1;
                    $testString.$writableStackTrace = 1;
                    $rt_throw($testString);
                }
            }
        }
        return $this.$lt0.$isLineTerminator($high) ? (-1) : $this.$next4.$matches(var$5, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_DotSet_getName = $this => {
    return $rt_s(167);
},
jur_DotSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_DotSet_getType = $this => {
    return (-2147483602);
},
jur_DotSet_hasConsumed = ($this, $matchResult) => {
    return 1;
};
function jur_UEOLSet() {
    jur_AbstractSet.call(this);
    this.$consCounter2 = 0;
}
let jur_UEOLSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let $rightBound, var$5;
    $rightBound = !$matchResult.$anchoringBounds ? $testString.$nativeString.length : $matchResult.$rightBound;
    if ($strIndex >= $rightBound) {
        $rightBound = $this.$consCounter2;
        $matchResult.$consumers.data[$rightBound] = 0;
        return $this.$next4.$matches($strIndex, $testString, $matchResult);
    }
    a: {
        if (($rightBound - $strIndex | 0) == 1) {
            if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
                if ($testString.$nativeString.charCodeAt($strIndex) != 10)
                    break a;
                else {
                    var$5 = $this.$consCounter2;
                    $matchResult.$consumers.data[var$5] = 1;
                    return $this.$next4.$matches($strIndex + 1 | 0, $testString, $matchResult);
                }
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
    }
    return (-1);
},
jur_UEOLSet_hasConsumed = ($this, $matchResult) => {
    let var$2, var$3, $res;
    var$2 = $this.$consCounter2;
    var$3 = $matchResult.$consumers.data;
    $res = !var$3[var$2] ? 0 : 1;
    var$3[var$2] = (-1);
    return $res;
},
jur_UEOLSet_getName = $this => {
    return $rt_s(1960);
};
function jur_UMultiLineEOLSet() {
    jur_AbstractSet.call(this);
    this.$consCounter3 = 0;
}
let jur_UMultiLineEOLSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let $strDif;
    if ((!$matchResult.$anchoringBounds ? $testString.$nativeString.length - $strIndex | 0 : $matchResult.$rightBound - $strIndex | 0) <= 0) {
        $strDif = $this.$consCounter3;
        $matchResult.$consumers.data[$strDif] = 0;
        return $this.$next4.$matches($strIndex, $testString, $matchResult);
    }
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        if ($testString.$nativeString.charCodeAt($strIndex) != 10)
            return (-1);
        $strDif = $this.$consCounter3;
        $matchResult.$consumers.data[$strDif] = 1;
        return $this.$next4.$matches($strIndex + 1 | 0, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_UMultiLineEOLSet_hasConsumed = ($this, $matchResult) => {
    let var$2, var$3, $res;
    var$2 = $this.$consCounter3;
    var$3 = $matchResult.$consumers.data;
    $res = !var$3[var$2] ? 0 : 1;
    var$3[var$2] = (-1);
    return $res;
},
jur_UMultiLineEOLSet_getName = $this => {
    return $rt_s(1964);
};
function jur_MultiLineEOLSet() {
    jur_AbstractSet.call(this);
    this.$consCounter1 = 0;
}
let jur_MultiLineEOLSet_matches = ($this, $strIndex, $testString, $matchResult) => {
    let $strDif, $ch1, $ch2;
    $strDif = !$matchResult.$anchoringBounds ? $testString.$nativeString.length - $strIndex | 0 : $matchResult.$rightBound - $strIndex | 0;
    if (!$strDif) {
        $strDif = $this.$consCounter1;
        $matchResult.$consumers.data[$strDif] = 0;
        return $this.$next4.$matches($strIndex, $testString, $matchResult);
    }
    a: {
        if ($strDif < 2) {
            if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
                $ch1 = $testString.$nativeString.charCodeAt($strIndex);
                $ch2 = 97;
                break a;
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
            $ch1 = $testString.$nativeString.charCodeAt($strIndex);
            $strDif = $strIndex + 1 | 0;
            if ($strDif >= 0 && $strDif < $testString.$nativeString.length) {
                $ch2 = $testString.$nativeString.charCodeAt($strDif);
                break a;
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    switch ($ch1) {
        case 10:
        case 133:
        case 8232:
        case 8233:
            $strDif = $this.$consCounter1;
            $matchResult.$consumers.data[$strDif] = 0;
            return $this.$next4.$matches($strIndex, $testString, $matchResult);
        case 13:
            if ($ch2 != 10) {
                $strDif = $this.$consCounter1;
                $matchResult.$consumers.data[$strDif] = 0;
                return $this.$next4.$matches($strIndex, $testString, $matchResult);
            }
            $strDif = $this.$consCounter1;
            $matchResult.$consumers.data[$strDif] = 0;
            return $this.$next4.$matches($strIndex, $testString, $matchResult);
        default:
    }
    return (-1);
},
jur_MultiLineEOLSet_hasConsumed = ($this, $matchResult) => {
    let var$2, var$3, $res;
    var$2 = $this.$consCounter1;
    var$3 = $matchResult.$consumers.data;
    $res = !var$3[var$2] ? 0 : 1;
    var$3[var$2] = (-1);
    return $res;
},
jur_MultiLineEOLSet_getName = $this => {
    return $rt_s(1965);
};
function jur_CIBackReferenceSet() {
    let a = this; jur_JointSet.call(a);
    a.$referencedGroup = 0;
    a.$consCounter = 0;
}
let jur_CIBackReferenceSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $group, $i, var$6, var$7, var$8;
    $group = jur_CIBackReferenceSet_getString($this, $matchResult);
    if ($group !== null && ($stringIndex + $group.$nativeString.length | 0) <= $matchResult.$rightBound) {
        $i = 0;
        a: {
            b: {
                c: {
                    d: {
                        while (true) {
                            if ($i >= $group.$nativeString.length) {
                                var$6 = $this.$consCounter;
                                $matchResult.$consumers.data[var$6] = $group.$nativeString.length;
                                return $this.$next4.$matches($stringIndex + $group.$nativeString.length | 0, $testString, $matchResult);
                            }
                            if ($i < 0)
                                break c;
                            if ($i >= $group.$nativeString.length)
                                break c;
                            var$7 = $group.$nativeString.charCodeAt($i);
                            var$8 = $stringIndex + $i | 0;
                            if (var$8 < 0)
                                break d;
                            if (var$8 >= $testString.$nativeString.length)
                                break d;
                            if (var$7 != $testString.$nativeString.charCodeAt(var$8)) {
                                if ($i < 0)
                                    break a;
                                if ($i >= $group.$nativeString.length)
                                    break a;
                                var$6 = jur_Pattern_getSupplement($group.$nativeString.charCodeAt($i));
                                if (var$8 < 0)
                                    break b;
                                if (var$8 >= $testString.$nativeString.length)
                                    break b;
                                if (var$6 != $testString.$nativeString.charCodeAt(var$8))
                                    break;
                            }
                            $i = $i + 1 | 0;
                        }
                        return (-1);
                    }
                    $testString = new jl_StringIndexOutOfBoundsException;
                    $testString.$suppressionEnabled = 1;
                    $testString.$writableStackTrace = 1;
                    $rt_throw($testString);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    return (-1);
},
jur_CIBackReferenceSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_CIBackReferenceSet_getString = ($this, $matchResult) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$referencedGroup;
    var$3 = $matchResult.$groupBounds.data;
    var$4 = var$2 * 2 | 0;
    var$5 = var$3[var$4];
    var$6 = var$3[var$4 + 1 | 0];
    return (var$6 | var$5 | (var$6 - var$5 | 0)) >= 0 && var$6 <= $matchResult.$string0.$nativeString.length ? jl_String_substring($matchResult.$string0, var$5, var$6) : null;
},
jur_CIBackReferenceSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$groupIndex;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1966));
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
jur_CIBackReferenceSet_hasConsumed = ($this, $matchResult) => {
    let var$2, var$3, $res;
    var$2 = $this.$consCounter;
    var$3 = $matchResult.$consumers.data;
    $res = !var$3[var$2] ? 0 : 1;
    var$3[var$2] = (-1);
    return $res;
},
jur_BackReferenceSet = $rt_classWithoutFields(jur_CIBackReferenceSet),
jur_BackReferenceSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $group, $shift, var$6;
    $group = jur_CIBackReferenceSet_getString($this, $matchResult);
    if ($group !== null && ($stringIndex + $group.$nativeString.length | 0) <= $matchResult.$rightBound) {
        $shift = !jl_String_startsWith($testString, $group, $stringIndex) ? (-1) : $group.$nativeString.length;
        if ($shift < 0)
            return (-1);
        var$6 = $this.$consCounter;
        $matchResult.$consumers.data[var$6] = $shift;
        return $this.$next4.$matches($stringIndex + $shift | 0, $testString, $matchResult);
    }
    return (-1);
},
jur_BackReferenceSet_find = ($this, $strIndex, $testString, $matchResult) => {
    let $group, $strLength, var$6;
    $group = jur_CIBackReferenceSet_getString($this, $matchResult);
    $strLength = $matchResult.$leftBound;
    if ($group !== null && ($strIndex + $group.$nativeString.length | 0) <= $strLength) {
        while (true) {
            if ($strIndex > $strLength)
                return (-1);
            var$6 = jl_String_indexOf0($testString, $group, $strIndex);
            if (var$6 < 0)
                return (-1);
            if ($this.$next4.$matches(var$6 + $group.$nativeString.length | 0, $testString, $matchResult) >= 0)
                break;
            $strIndex = var$6 + 1 | 0;
        }
        return var$6;
    }
    return (-1);
},
jur_BackReferenceSet_findBack = ($this, $strIndex, $lastIndex, $testString, $matchResult) => {
    let $group, var$6;
    $group = jur_CIBackReferenceSet_getString($this, $matchResult);
    if ($group === null)
        return (-1);
    a: {
        while (true) {
            if ($lastIndex < $strIndex)
                return (-1);
            var$6 = jl_String_lastIndexOf1($testString, $group, $lastIndex);
            if (var$6 < 0)
                break a;
            if (var$6 < $strIndex)
                break a;
            if ($this.$next4.$matches(var$6 + $group.$nativeString.length | 0, $testString, $matchResult) >= 0)
                break;
            $lastIndex = var$6 + (-1) | 0;
        }
        return var$6;
    }
    return (-1);
},
jur_BackReferenceSet_first = ($this, $set) => {
    return 1;
},
jur_BackReferenceSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$groupIndex;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1967));
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function jur_UCIBackReferenceSet() {
    jur_CIBackReferenceSet.call(this);
    this.$groupIndex1 = 0;
}
let jur_UCIBackReferenceSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4, var$5, var$6, var$7, $i, $group;
    var$4 = $this.$referencedGroup;
    var$5 = $matchResult.$groupBounds.data;
    var$6 = var$4 * 2 | 0;
    var$7 = var$5[var$6];
    $i = var$5[var$6 + 1 | 0];
    $group = ($i | var$7 | ($i - var$7 | 0)) >= 0 && $i <= $matchResult.$string0.$nativeString.length ? jl_String_substring($matchResult.$string0, var$7, $i) : null;
    if ($group !== null && ($stringIndex + $group.$nativeString.length | 0) <= $matchResult.$rightBound) {
        $i = 0;
        a: {
            b: {
                while (true) {
                    if ($i >= $group.$nativeString.length) {
                        var$4 = $this.$consCounter;
                        $matchResult.$consumers.data[var$4] = $group.$nativeString.length;
                        return $this.$next4.$matches($stringIndex + $group.$nativeString.length | 0, $testString, $matchResult);
                    }
                    if ($i < 0)
                        break a;
                    if ($i >= $group.$nativeString.length)
                        break a;
                    var$4 = $group.$nativeString.charCodeAt($i);
                    if (jl_Character_upperCaseMapping === null) {
                        if (jl_Character_$$metadata$$1 === null)
                            jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                        jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
                    }
                    var$4 = jl_Character_mapChar(jl_Character_upperCaseMapping, var$4) & 65535;
                    if (jl_Character_lowerCaseMapping === null) {
                        if (jl_Character_$$metadata$$0 === null)
                            jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                        jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                    }
                    var$6 = jl_Character_mapChar(jl_Character_lowerCaseMapping, var$4) & 65535;
                    var$7 = $stringIndex + $i | 0;
                    if (var$7 < 0)
                        break b;
                    if (var$7 >= $testString.$nativeString.length)
                        break b;
                    var$4 = $testString.$nativeString.charCodeAt(var$7);
                    if (jl_Character_upperCaseMapping === null) {
                        if (jl_Character_$$metadata$$1 === null)
                            jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                        jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
                    }
                    var$4 = jl_Character_mapChar(jl_Character_upperCaseMapping, var$4) & 65535;
                    if (jl_Character_lowerCaseMapping === null) {
                        if (jl_Character_$$metadata$$0 === null)
                            jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                        jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                    }
                    if (var$6 != (jl_Character_mapChar(jl_Character_lowerCaseMapping, var$4) & 65535))
                        break;
                    $i = $i + 1 | 0;
                }
                return (-1);
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    return (-1);
},
jur_UCIBackReferenceSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$groupIndex1;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1968));
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function jur_SequenceSet() {
    let a = this; jur_LeafSet.call(a);
    a.$string2 = null;
    a.$leftToRight = null;
    a.$rightToLeft = null;
}
let jur_SequenceSet__init_0 = ($this, $substring) => {
    let $j, var$3, var$4, var$5, var$6, var$7;
    $j = jur_AbstractSet_counter;
    jur_AbstractSet_counter = $j + 1 | 0;
    var$3 = new jl_AbstractStringBuilder;
    var$3.$buffer = $rt_createCharArray(20);
    $this.$index1 = (jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, $j, 10)).$toString();
    $this.$charCount0 = 1;
    var$3 = new jl_String;
    var$4 = $substring.$buffer;
    var$5 = var$4.data;
    var$6 = $substring.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        $this.$string2 = var$3;
        $j = $substring.$length0;
        $this.$charCount0 = $j;
        $this.$leftToRight = jur_SequenceSet$IntHash__init_($j);
        $this.$rightToLeft = jur_SequenceSet$IntHash__init_($this.$charCount0);
        $j = 0;
        a: {
            b: {
                while ($j < ($this.$charCount0 - 1 | 0)) {
                    $substring = $this.$leftToRight;
                    var$3 = $this.$string2;
                    if ($j < 0)
                        break a;
                    if ($j >= var$3.$nativeString.length)
                        break a;
                    jur_SequenceSet$IntHash_put($substring, var$3.$nativeString.charCodeAt($j), ($this.$charCount0 - $j | 0) - 1 | 0);
                    $substring = $this.$rightToLeft;
                    var$3 = $this.$string2;
                    var$6 = ($this.$charCount0 - $j | 0) - 1 | 0;
                    if (var$6 < 0)
                        break b;
                    if (var$6 >= var$3.$nativeString.length)
                        break b;
                    jur_SequenceSet$IntHash_put($substring, var$3.$nativeString.charCodeAt(var$6), ($this.$charCount0 - $j | 0) - 1 | 0);
                    $j = $j + 1 | 0;
                }
                return;
            }
            $substring = new jl_StringIndexOutOfBoundsException;
            $substring.$suppressionEnabled = 1;
            $substring.$writableStackTrace = 1;
            $rt_throw($substring);
        }
        $substring = new jl_StringIndexOutOfBoundsException;
        $substring.$suppressionEnabled = 1;
        $substring.$writableStackTrace = 1;
        $rt_throw($substring);
    }
    $substring = new jl_IndexOutOfBoundsException;
    $substring.$suppressionEnabled = 1;
    $substring.$writableStackTrace = 1;
    $rt_throw($substring);
},
jur_SequenceSet__init_ = var_0 => {
    let var_1 = new jur_SequenceSet();
    jur_SequenceSet__init_0(var_1, var_0);
    return var_1;
},
jur_SequenceSet_accepts = ($this, $strIndex, $testString) => {
    let var$3, var$4, var$5, var$6;
    var$3 = 0;
    a: {
        b: {
            c: {
                while (var$3 < $this.$charCount0) {
                    var$4 = var$3 + $strIndex | 0;
                    if (var$4 < 0)
                        break a;
                    if (var$4 >= $testString.$nativeString.length)
                        break a;
                    var$5 = $testString.$nativeString.charCodeAt(var$4);
                    var$6 = $this.$string2;
                    if (var$3 < 0)
                        break b;
                    if (var$3 >= var$6.$nativeString.length)
                        break b;
                    if (var$5 != var$6.$nativeString.charCodeAt(var$3)) {
                        $strIndex = 0;
                        break c;
                    }
                    var$3 = var$3 + 1 | 0;
                }
                $strIndex = 1;
            }
            return !$strIndex ? (-1) : $this.$charCount0;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_SequenceSet_find = ($this, $strIndex, $testString, $matchResult) => {
    let $strLength, var$5;
    $strLength = $matchResult.$rightBound;
    while (true) {
        if ($strIndex > $strLength)
            return (-1);
        var$5 = jur_SequenceSet_indexOf($this, $testString, $strIndex, $strLength);
        if (var$5 < 0)
            return (-1);
        if ($this.$next4.$matches(var$5 + $this.$charCount0 | 0, $testString, $matchResult) >= 0)
            break;
        $strIndex = var$5 + 1 | 0;
    }
    return var$5;
},
jur_SequenceSet_findBack = ($this, $strIndex, $lastIndex, $testString, $matchResult) => {
    while (true) {
        if ($lastIndex < $strIndex)
            return (-1);
        $lastIndex = jur_SequenceSet_lastIndexOf($this, $testString, $strIndex, $lastIndex);
        if ($lastIndex < 0)
            return (-1);
        if ($this.$next4.$matches($lastIndex + $this.$charCount0 | 0, $testString, $matchResult) >= 0)
            break;
        $lastIndex = $lastIndex + (-1) | 0;
    }
    return $lastIndex;
},
jur_SequenceSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$string2;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1969));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
jur_SequenceSet_first = ($this, $set) => {
    let var$2, var$3, var$4;
    if ($set instanceof jur_CharSet) {
        var$2 = $set.$ch0;
        $set = $this.$string2;
        if (0 < $set.$nativeString.length)
            return var$2 != $set.$nativeString.charCodeAt(0) ? 0 : 1;
        $set = new jl_StringIndexOutOfBoundsException;
        $set.$suppressionEnabled = 1;
        $set.$writableStackTrace = 1;
        $rt_throw($set);
    }
    if ($set instanceof jur_RangeSet) {
        $set = $set;
        var$3 = jl_String_substring($this.$string2, 0, 1);
        $set = $set.$chars0;
        if (0 >= var$3.$nativeString.length) {
            $set = new jl_StringIndexOutOfBoundsException;
            $set.$suppressionEnabled = 1;
            $set.$writableStackTrace = 1;
            $rt_throw($set);
        }
        return (!$set.$contains1(var$3.$nativeString.charCodeAt(0)) ? (-1) : 1) <= 0 ? 0 : 1;
    }
    if (!($set instanceof jur_SupplRangeSet)) {
        if (!($set instanceof jur_SupplCharSet))
            return 1;
        a: {
            if ($this.$string2.$nativeString.length > 1) {
                var$4 = $set.$ch1;
                $set = $this.$string2;
                if (0 >= $set.$nativeString.length) {
                    $set = new jl_StringIndexOutOfBoundsException;
                    $set.$suppressionEnabled = 1;
                    $set.$writableStackTrace = 1;
                    $rt_throw($set);
                }
                var$2 = $set.$nativeString.charCodeAt(0);
                $set = $this.$string2;
                if (1 >= $set.$nativeString.length) {
                    $set = new jl_StringIndexOutOfBoundsException;
                    $set.$suppressionEnabled = 1;
                    $set.$writableStackTrace = 1;
                    $rt_throw($set);
                }
                if (var$4 == (((var$2 & 1023) << 10 | $set.$nativeString.charCodeAt(1) & 1023) + 65536 | 0)) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
        return var$2;
    }
    $set = $set;
    var$3 = $this.$string2;
    if (0 >= var$3.$nativeString.length) {
        $set = new jl_StringIndexOutOfBoundsException;
        $set.$suppressionEnabled = 1;
        $set.$writableStackTrace = 1;
        $rt_throw($set);
    }
    b: {
        c: {
            if (!$set.$contains1(var$3.$nativeString.charCodeAt(0))) {
                if ($this.$string2.$nativeString.length <= 1)
                    break c;
                var$3 = $this.$string2;
                if (0 >= var$3.$nativeString.length) {
                    $set = new jl_StringIndexOutOfBoundsException;
                    $set.$suppressionEnabled = 1;
                    $set.$writableStackTrace = 1;
                    $rt_throw($set);
                }
                var$2 = var$3.$nativeString.charCodeAt(0);
                var$3 = $this.$string2;
                if (1 >= var$3.$nativeString.length) {
                    $set = new jl_StringIndexOutOfBoundsException;
                    $set.$suppressionEnabled = 1;
                    $set.$writableStackTrace = 1;
                    $rt_throw($set);
                }
                if (!$set.$contains1(((var$2 & 1023) << 10 | var$3.$nativeString.charCodeAt(1) & 1023) + 65536 | 0))
                    break c;
            }
            var$2 = 1;
            break b;
        }
        var$2 = 0;
    }
    return var$2;
},
jur_SequenceSet_indexOf = ($this, $str, $i, $to) => {
    let var$4, var$5, $last, $ch, var$8, var$9;
    var$4 = $this.$string2;
    var$5 = $this.$charCount0 - 1 | 0;
    if (var$5 >= 0 && var$5 < var$4.$nativeString.length) {
        $last = var$4.$nativeString.charCodeAt(var$5);
        a: {
            b: {
                c: {
                    while (true) {
                        var$5 = $this.$charCount0;
                        if ($i > ($to - var$5 | 0))
                            return (-1);
                        var$5 = ($i + var$5 | 0) - 1 | 0;
                        if (var$5 < 0)
                            break c;
                        if (var$5 >= $str.$nativeString.length)
                            break c;
                        $ch = $str.$nativeString.charCodeAt(var$5);
                        if ($ch == $last) {
                            var$5 = 0;
                            d: {
                                while (var$5 < $this.$charCount0) {
                                    var$8 = var$5 + $i | 0;
                                    if (var$8 < 0)
                                        break a;
                                    if (var$8 >= $str.$nativeString.length)
                                        break a;
                                    var$9 = $str.$nativeString.charCodeAt(var$8);
                                    var$4 = $this.$string2;
                                    if (var$5 < 0)
                                        break b;
                                    if (var$5 >= var$4.$nativeString.length)
                                        break b;
                                    if (var$9 != var$4.$nativeString.charCodeAt(var$5)) {
                                        var$5 = 0;
                                        break d;
                                    }
                                    var$5 = var$5 + 1 | 0;
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        $i = $i + jur_SequenceSet$IntHash_get($this.$leftToRight, $ch) | 0;
                    }
                    return $i;
                }
                $str = new jl_StringIndexOutOfBoundsException;
                $str.$suppressionEnabled = 1;
                $str.$writableStackTrace = 1;
                $rt_throw($str);
            }
            $str = new jl_StringIndexOutOfBoundsException;
            $str.$suppressionEnabled = 1;
            $str.$writableStackTrace = 1;
            $rt_throw($str);
        }
        $str = new jl_StringIndexOutOfBoundsException;
        $str.$suppressionEnabled = 1;
        $str.$writableStackTrace = 1;
        $rt_throw($str);
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
},
jur_SequenceSet_lastIndexOf = ($this, $str, $to, $i) => {
    let var$4, $first, $delta, $ch, $size, var$9;
    var$4 = $this.$string2;
    if (0 >= var$4.$nativeString.length) {
        $str = new jl_StringIndexOutOfBoundsException;
        $str.$suppressionEnabled = 1;
        $str.$writableStackTrace = 1;
        $rt_throw($str);
    }
    $first = var$4.$nativeString.charCodeAt(0);
    $delta = ($str.$nativeString.length - $i | 0) - $this.$charCount0 | 0;
    if ($delta <= 0)
        $i = $i + $delta | 0;
    a: {
        b: {
            c: {
                while (true) {
                    if ($i < $to)
                        return (-1);
                    if ($i < 0)
                        break c;
                    if ($i >= $str.$nativeString.length)
                        break c;
                    $ch = $str.$nativeString.charCodeAt($i);
                    if ($ch == $first) {
                        $delta = 0;
                        d: {
                            while ($delta < $this.$charCount0) {
                                $size = $delta + $i | 0;
                                if ($size < 0)
                                    break a;
                                if ($size >= $str.$nativeString.length)
                                    break a;
                                var$9 = $str.$nativeString.charCodeAt($size);
                                var$4 = $this.$string2;
                                if ($delta < 0)
                                    break b;
                                if ($delta >= var$4.$nativeString.length)
                                    break b;
                                if (var$9 != var$4.$nativeString.charCodeAt($delta)) {
                                    $delta = 0;
                                    break d;
                                }
                                $delta = $delta + 1 | 0;
                            }
                            $delta = 1;
                        }
                        if ($delta)
                            break;
                    }
                    $i = $i - jur_SequenceSet$IntHash_get($this.$rightToLeft, $ch) | 0;
                }
                return $i;
            }
            $str = new jl_StringIndexOutOfBoundsException;
            $str.$suppressionEnabled = 1;
            $str.$writableStackTrace = 1;
            $rt_throw($str);
        }
        $str = new jl_StringIndexOutOfBoundsException;
        $str.$suppressionEnabled = 1;
        $str.$writableStackTrace = 1;
        $rt_throw($str);
    }
    $str = new jl_StringIndexOutOfBoundsException;
    $str.$suppressionEnabled = 1;
    $str.$writableStackTrace = 1;
    $rt_throw($str);
};
function jur_UCISequenceSet() {
    jur_LeafSet.call(this);
    this.$string4 = null;
}
let jur_UCISequenceSet_accepts = ($this, $strIndex, $testString) => {
    let $i, var$4, var$5, var$6, var$7;
    $i = 0;
    a: {
        b: {
            while (true) {
                if ($i >= $this.$string4.$nativeString.length)
                    return $this.$string4.$nativeString.length;
                var$4 = $this.$string4;
                if ($i < 0)
                    break a;
                if ($i >= var$4.$nativeString.length)
                    break a;
                var$5 = var$4.$nativeString.charCodeAt($i);
                var$6 = $strIndex + $i | 0;
                if (var$6 < 0)
                    break b;
                if (var$6 >= $testString.$nativeString.length)
                    break b;
                var$7 = $testString.$nativeString.charCodeAt(var$6);
                if (jl_Character_upperCaseMapping === null) {
                    if (jl_Character_$$metadata$$1 === null)
                        jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                    jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
                }
                var$7 = jl_Character_mapChar(jl_Character_upperCaseMapping, var$7) & 65535;
                if (jl_Character_lowerCaseMapping === null) {
                    if (jl_Character_$$metadata$$0 === null)
                        jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                    jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
                }
                if (var$5 != (jl_Character_mapChar(jl_Character_lowerCaseMapping, var$7) & 65535))
                    break;
                $i = $i + 1 | 0;
            }
            return (-1);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_UCISequenceSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$string4;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1970));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function jur_CISequenceSet() {
    jur_LeafSet.call(this);
    this.$string3 = null;
}
let jur_CISequenceSet_accepts = ($this, $strIndex, $testString) => {
    let $i, var$4, var$5, var$6, var$7;
    $i = 0;
    a: {
        b: {
            c: {
                d: {
                    while (true) {
                        if ($i >= $this.$string3.$nativeString.length)
                            return $this.$string3.$nativeString.length;
                        var$4 = $this.$string3;
                        if ($i < 0)
                            break c;
                        if ($i >= var$4.$nativeString.length)
                            break c;
                        var$5 = var$4.$nativeString.charCodeAt($i);
                        var$6 = $strIndex + $i | 0;
                        if (var$6 < 0)
                            break d;
                        if (var$6 >= $testString.$nativeString.length)
                            break d;
                        if (var$5 != $testString.$nativeString.charCodeAt(var$6)) {
                            var$4 = $this.$string3;
                            if ($i < 0)
                                break a;
                            if ($i >= var$4.$nativeString.length)
                                break a;
                            var$7 = jur_Pattern_getSupplement(var$4.$nativeString.charCodeAt($i));
                            if (var$6 < 0)
                                break b;
                            if (var$6 >= $testString.$nativeString.length)
                                break b;
                            if (var$7 != $testString.$nativeString.charCodeAt(var$6))
                                break;
                        }
                        $i = $i + 1 | 0;
                    }
                    return (-1);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
            $testString = new jl_StringIndexOutOfBoundsException;
            $testString.$suppressionEnabled = 1;
            $testString.$writableStackTrace = 1;
            $rt_throw($testString);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_CISequenceSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$string3;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1971));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function jur_UCISupplCharSet() {
    jur_LeafSet.call(this);
    this.$ch4 = 0;
}
let jur_UCISupplCharSet_accepts = ($this, $strIndex, $testString) => {
    let $low, $high;
    $low = $strIndex + 1 | 0;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        $high = $testString.$nativeString.charCodeAt($strIndex);
        if ($low >= 0 && $low < $testString.$nativeString.length) {
            $low = $testString.$nativeString.charCodeAt($low);
            $strIndex = $this.$ch4;
            $low = (($high & 1023) << 10 | $low & 1023) + 65536 | 0;
            if (jl_Character_upperCaseMapping === null) {
                if (jl_Character_$$metadata$$1 === null)
                    jl_Character_$$metadata$$1 = jl_Character_acquireUpperCaseMapping$$create();
                jl_Character_upperCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$1.value !== null ? $rt_str(jl_Character_$$metadata$$1.value) : null)));
            }
            $low = jl_Character_mapChar(jl_Character_upperCaseMapping, $low);
            if (jl_Character_lowerCaseMapping === null) {
                if (jl_Character_$$metadata$$0 === null)
                    jl_Character_$$metadata$$0 = jl_Character_acquireLowerCaseMapping$$create();
                jl_Character_lowerCaseMapping = otciu_UnicodeHelper_createCharMapping(otciu_UnicodeHelper_decodeCaseMapping((jl_Character_$$metadata$$0.value !== null ? $rt_str(jl_Character_$$metadata$$0.value) : null)));
            }
            return $strIndex != jl_Character_mapChar(jl_Character_lowerCaseMapping, $low) ? (-1) : 2;
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_UCISupplCharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = new jl_String;
    var$2 = jl_Character_toChars($this.$ch4);
    var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$2.data.length);
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1952));
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
    var$1 = new jl_String;
    var$2 = var$3.$buffer;
    var$4 = var$2.data;
    var$5 = var$3.$length0;
    var$6 = var$4.length;
    if (var$5 >= 0 && var$5 <= (var$6 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$2.data, 0, var$5);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function jur_LowSurrogateCharSet() {
    jur_JointSet.call(this);
    this.$low = 0;
}
let jur_LowSurrogateCharSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_LowSurrogateCharSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let var$4, $low;
    var$4 = $stringIndex + 1 | 0;
    if (var$4 > $matchResult.$rightBound) {
        $matchResult.$hitEnd = 1;
        return (-1);
    }
    if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
        a: {
            $low = $testString.$nativeString.charCodeAt($stringIndex);
            if ($stringIndex > $matchResult.$leftBound) {
                $stringIndex = $stringIndex - 1 | 0;
                if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
                    if (!(($testString.$nativeString.charCodeAt($stringIndex) & 64512) != 55296 ? 0 : 1))
                        break a;
                    return (-1);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
        }
        if ($this.$low != $low)
            return (-1);
        return $this.$next4.$matches(var$4, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_LowSurrogateCharSet_find = ($this, $strIndex, $testStr, $matchResult) => {
    let var$4, $startStr, $strLength, var$7, var$8;
    if (!($testStr instanceof jl_String)) {
        var$4 = $matchResult.$rightBound;
        a: {
            while (true) {
                if ($strIndex > var$4) {
                    $strIndex = (-1);
                    break a;
                }
                if (jur_LowSurrogateCharSet_matches($this, $strIndex, $testStr, $matchResult) >= 0)
                    break;
                $strIndex = $strIndex + 1 | 0;
            }
        }
        return $strIndex;
    }
    $startStr = $matchResult.$leftBound;
    $strLength = $matchResult.$rightBound;
    b: {
        while (true) {
            if ($strIndex >= $strLength)
                return (-1);
            var$7 = jl_String_indexOf($testStr, $this.$low, $strIndex);
            if (var$7 < 0)
                return (-1);
            if (var$7 > $startStr) {
                $strIndex = var$7 - 1 | 0;
                if ($strIndex < 0)
                    break b;
                if ($strIndex >= $testStr.$nativeString.length)
                    break b;
                if (($testStr.$nativeString.charCodeAt($strIndex) & 64512) != 55296 ? 0 : 1) {
                    $strIndex = var$7 + 1 | 0;
                    continue;
                }
            }
            var$8 = $this.$next4;
            $strIndex = var$7 + 1 | 0;
            if (var$8.$matches($strIndex, $testStr, $matchResult) >= 0)
                break;
        }
        return var$7;
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    $testStr.$suppressionEnabled = 1;
    $testStr.$writableStackTrace = 1;
    $rt_throw($testStr);
},
jur_LowSurrogateCharSet_findBack = ($this, $strIndex, $lastIndex, $testStr, $matchResult) => {
    let $startStr, var$6;
    if (!($testStr instanceof jl_String)) {
        a: {
            while (true) {
                if ($lastIndex < $strIndex) {
                    $lastIndex = (-1);
                    break a;
                }
                if (jur_LowSurrogateCharSet_matches($this, $lastIndex, $testStr, $matchResult) >= 0)
                    break;
                $lastIndex = $lastIndex + (-1) | 0;
            }
        }
        return $lastIndex;
    }
    $startStr = $matchResult.$leftBound;
    b: {
        c: {
            while (true) {
                if ($lastIndex < $strIndex)
                    return (-1);
                var$6 = jl_String_lastIndexOf0($testStr, $this.$low, $lastIndex);
                if (var$6 < 0)
                    break c;
                if (var$6 < $strIndex)
                    break c;
                if (var$6 > $startStr) {
                    $lastIndex = var$6 - 1 | 0;
                    if ($lastIndex < 0)
                        break b;
                    if ($lastIndex >= $testStr.$nativeString.length)
                        break b;
                    if (($testStr.$nativeString.charCodeAt($lastIndex) & 64512) != 55296 ? 0 : 1) {
                        $lastIndex = var$6 + (-2) | 0;
                        continue;
                    }
                }
                if ($this.$next4.$matches(var$6 + 1 | 0, $testStr, $matchResult) >= 0)
                    break;
                $lastIndex = var$6 + (-1) | 0;
            }
            return var$6;
        }
        return (-1);
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    $testStr.$suppressionEnabled = 1;
    $testStr.$writableStackTrace = 1;
    $rt_throw($testStr);
},
jur_LowSurrogateCharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$low;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$5[var$3] = var$1;
    var$6 = new jl_String;
    var$3 = var$2.$length0;
    var$7 = var$5.length;
    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
        return var$6;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
jur_LowSurrogateCharSet_first = ($this, $set) => {
    if ($set instanceof jur_CharSet)
        return 0;
    if ($set instanceof jur_RangeSet)
        return 0;
    if ($set instanceof jur_SupplRangeSet)
        return 0;
    if ($set instanceof jur_SupplCharSet)
        return 0;
    if ($set instanceof jur_HighSurrogateCharSet)
        return 0;
    if (!($set instanceof jur_LowSurrogateCharSet))
        return 1;
    return $set.$low != $this.$low ? 0 : 1;
},
jur_LowSurrogateCharSet_hasConsumed = ($this, $matchResult) => {
    return 1;
};
function jur_HighSurrogateCharSet() {
    jur_JointSet.call(this);
    this.$high = 0;
}
let jur_HighSurrogateCharSet_setNext = ($this, $next) => {
    $this.$next4 = $next;
},
jur_HighSurrogateCharSet_matches = ($this, $stringIndex, $testString, $matchResult) => {
    let $strLength, var$5, $high;
    $strLength = $matchResult.$rightBound;
    var$5 = $stringIndex + 1 | 0;
    $strLength = $rt_compare(var$5, $strLength);
    if ($strLength > 0) {
        $matchResult.$hitEnd = 1;
        return (-1);
    }
    if ($stringIndex >= 0 && $stringIndex < $testString.$nativeString.length) {
        a: {
            $high = $testString.$nativeString.charCodeAt($stringIndex);
            if ($strLength < 0) {
                if (var$5 >= 0 && var$5 < $testString.$nativeString.length) {
                    if (!(($testString.$nativeString.charCodeAt(var$5) & 64512) != 56320 ? 0 : 1))
                        break a;
                    return (-1);
                }
                $testString = new jl_StringIndexOutOfBoundsException;
                $testString.$suppressionEnabled = 1;
                $testString.$writableStackTrace = 1;
                $rt_throw($testString);
            }
        }
        if ($this.$high != $high)
            return (-1);
        return $this.$next4.$matches(var$5, $testString, $matchResult);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_HighSurrogateCharSet_find = ($this, $strIndex, $testStr, $matchResult) => {
    let $strLength, var$5;
    if (!($testStr instanceof jl_String)) {
        $strLength = $matchResult.$rightBound;
        a: {
            while (true) {
                if ($strIndex > $strLength) {
                    $strIndex = (-1);
                    break a;
                }
                if (jur_HighSurrogateCharSet_matches($this, $strIndex, $testStr, $matchResult) >= 0)
                    break;
                $strIndex = $strIndex + 1 | 0;
            }
        }
        return $strIndex;
    }
    $strLength = $matchResult.$rightBound;
    b: {
        while (true) {
            if ($strIndex >= $strLength)
                return (-1);
            var$5 = jl_String_indexOf($testStr, $this.$high, $strIndex);
            if (var$5 < 0)
                return (-1);
            $strIndex = var$5 + 1 | 0;
            if ($strIndex < $strLength) {
                if ($strIndex < 0)
                    break b;
                if ($strIndex >= $testStr.$nativeString.length)
                    break b;
                if (($testStr.$nativeString.charCodeAt($strIndex) & 64512) != 56320 ? 0 : 1) {
                    $strIndex = var$5 + 2 | 0;
                    continue;
                }
            }
            if ($this.$next4.$matches($strIndex, $testStr, $matchResult) >= 0)
                break;
        }
        return var$5;
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    $testStr.$suppressionEnabled = 1;
    $testStr.$writableStackTrace = 1;
    $rt_throw($testStr);
},
jur_HighSurrogateCharSet_findBack = ($this, $strIndex, $lastIndex, $testStr, $matchResult) => {
    let $strLength, var$6;
    if (!($testStr instanceof jl_String)) {
        a: {
            while (true) {
                if ($lastIndex < $strIndex) {
                    $lastIndex = (-1);
                    break a;
                }
                if (jur_HighSurrogateCharSet_matches($this, $lastIndex, $testStr, $matchResult) >= 0)
                    break;
                $lastIndex = $lastIndex + (-1) | 0;
            }
        }
        return $lastIndex;
    }
    $strLength = $matchResult.$rightBound;
    b: {
        c: {
            while (true) {
                if ($lastIndex < $strIndex)
                    return (-1);
                var$6 = jl_String_lastIndexOf0($testStr, $this.$high, $lastIndex);
                if (var$6 < 0)
                    break c;
                if (var$6 < $strIndex)
                    break c;
                $lastIndex = var$6 + 1 | 0;
                if ($lastIndex < $strLength) {
                    if ($lastIndex < 0)
                        break b;
                    if ($lastIndex >= $testStr.$nativeString.length)
                        break b;
                    if (($testStr.$nativeString.charCodeAt($lastIndex) & 64512) != 56320 ? 0 : 1) {
                        $lastIndex = var$6 + (-1) | 0;
                        continue;
                    }
                }
                if ($this.$next4.$matches($lastIndex, $testStr, $matchResult) >= 0)
                    break;
                $lastIndex = var$6 + (-1) | 0;
            }
            return var$6;
        }
        return (-1);
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    $testStr.$suppressionEnabled = 1;
    $testStr.$writableStackTrace = 1;
    $rt_throw($testStr);
},
jur_HighSurrogateCharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$high;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$5[var$3] = var$1;
    var$6 = new jl_String;
    var$3 = var$2.$length0;
    var$7 = var$5.length;
    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
        return var$6;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
jur_HighSurrogateCharSet_first = ($this, $set) => {
    if ($set instanceof jur_CharSet)
        return 0;
    if ($set instanceof jur_RangeSet)
        return 0;
    if ($set instanceof jur_SupplRangeSet)
        return 0;
    if ($set instanceof jur_SupplCharSet)
        return 0;
    if ($set instanceof jur_LowSurrogateCharSet)
        return 0;
    if (!($set instanceof jur_HighSurrogateCharSet))
        return 1;
    return $set.$high != $this.$high ? 0 : 1;
},
jur_HighSurrogateCharSet_hasConsumed = ($this, $matchResult) => {
    return 1;
};
function jur_SupplCharSet() {
    let a = this; jur_LeafSet.call(a);
    a.$high0 = 0;
    a.$low0 = 0;
    a.$ch1 = 0;
}
let jur_SupplCharSet_accepts = ($this, $strIndex, $testString) => {
    let $low, $high;
    $low = $strIndex + 1 | 0;
    if ($strIndex >= 0 && $strIndex < $testString.$nativeString.length) {
        $high = $testString.$nativeString.charCodeAt($strIndex);
        if ($low >= 0 && $low < $testString.$nativeString.length) {
            $low = $testString.$nativeString.charCodeAt($low);
            return $this.$high0 == $high && $this.$low0 == $low ? 2 : (-1);
        }
        $testString = new jl_StringIndexOutOfBoundsException;
        $testString.$suppressionEnabled = 1;
        $testString.$writableStackTrace = 1;
        $rt_throw($testString);
    }
    $testString = new jl_StringIndexOutOfBoundsException;
    $testString.$suppressionEnabled = 1;
    $testString.$writableStackTrace = 1;
    $rt_throw($testString);
},
jur_SupplCharSet_find = ($this, $strIndex, $testStr, $matchResult) => {
    let $strLength, $ch, var$6, var$7;
    if ($testStr instanceof jl_String) {
        $strLength = $matchResult.$rightBound;
        a: {
            while ($strIndex < $strLength) {
                $strIndex = jl_String_indexOf($testStr, $this.$high0, $strIndex);
                if ($strIndex < 0)
                    return (-1);
                $strIndex = $strIndex + 1 | 0;
                if ($strIndex >= $strLength)
                    continue;
                if ($strIndex < 0)
                    break a;
                if ($strIndex >= $testStr.$nativeString.length)
                    break a;
                $ch = $testStr.$nativeString.charCodeAt($strIndex);
                if ($this.$low0 == $ch && $this.$next4.$matches($strIndex + 1 | 0, $testStr, $matchResult) >= 0)
                    return $strIndex + (-1) | 0;
                $strIndex = $strIndex + 1 | 0;
            }
            return (-1);
        }
        $testStr = new jl_StringIndexOutOfBoundsException;
        $testStr.$suppressionEnabled = 1;
        $testStr.$writableStackTrace = 1;
        $rt_throw($testStr);
    }
    var$6 = $matchResult.$rightBound;
    b: {
        c: {
            d: {
                while (true) {
                    if ($strIndex > var$6) {
                        $strIndex = (-1);
                        break d;
                    }
                    if (($strIndex + $this.$charCount0 | 0) > $matchResult.$rightBound) {
                        $matchResult.$hitEnd = 1;
                        var$7 = (-1);
                    } else {
                        var$7 = $strIndex + 1 | 0;
                        if ($strIndex < 0)
                            break b;
                        if ($strIndex >= $testStr.$nativeString.length)
                            break b;
                        $strLength = $testStr.$nativeString.charCodeAt($strIndex);
                        if (var$7 < 0)
                            break c;
                        if (var$7 >= $testStr.$nativeString.length)
                            break c;
                        $ch = $testStr.$nativeString.charCodeAt(var$7);
                        var$7 = $this.$high0 == $strLength && $this.$low0 == $ch ? 2 : (-1);
                        var$7 = var$7 < 0 ? (-1) : $this.$next4.$matches($strIndex + var$7 | 0, $testStr, $matchResult);
                    }
                    if (var$7 >= 0)
                        break;
                    $strIndex = $strIndex + 1 | 0;
                }
            }
            return $strIndex;
        }
        $testStr = new jl_StringIndexOutOfBoundsException;
        jl_Throwable__init_($testStr);
        $rt_throw($testStr);
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    jl_Throwable__init_($testStr);
    $rt_throw($testStr);
},
jur_SupplCharSet_findBack = ($this, $strIndex, $lastIndex, $testStr, $matchResult) => {
    let var$5, var$6, var$7;
    if ($testStr instanceof jl_String) {
        a: {
            b: {
                while (true) {
                    if ($lastIndex < $strIndex)
                        return (-1);
                    $lastIndex = jl_String_lastIndexOf0($testStr, $this.$low0, $lastIndex) + (-1) | 0;
                    if ($lastIndex < 0)
                        break b;
                    if ($lastIndex < $strIndex)
                        break b;
                    var$5 = $this.$high0;
                    if ($lastIndex < 0)
                        break a;
                    if ($lastIndex >= $testStr.$nativeString.length)
                        break a;
                    if (var$5 == $testStr.$nativeString.charCodeAt($lastIndex) && $this.$next4.$matches($lastIndex + 2 | 0, $testStr, $matchResult) >= 0)
                        break;
                    $lastIndex = $lastIndex + (-1) | 0;
                }
                return $lastIndex;
            }
            return (-1);
        }
        $testStr = new jl_StringIndexOutOfBoundsException;
        $testStr.$suppressionEnabled = 1;
        $testStr.$writableStackTrace = 1;
        $rt_throw($testStr);
    }
    c: {
        d: {
            e: {
                while (true) {
                    if ($lastIndex < $strIndex) {
                        $lastIndex = (-1);
                        break e;
                    }
                    if (($lastIndex + $this.$charCount0 | 0) > $matchResult.$rightBound) {
                        $matchResult.$hitEnd = 1;
                        var$5 = (-1);
                    } else {
                        var$6 = $lastIndex + 1 | 0;
                        if ($lastIndex < 0)
                            break c;
                        if ($lastIndex >= $testStr.$nativeString.length)
                            break c;
                        var$7 = $testStr.$nativeString.charCodeAt($lastIndex);
                        if (var$6 < 0)
                            break d;
                        if (var$6 >= $testStr.$nativeString.length)
                            break d;
                        var$6 = $testStr.$nativeString.charCodeAt(var$6);
                        var$5 = $this.$high0 == var$7 && $this.$low0 == var$6 ? 2 : (-1);
                        var$5 = var$5 < 0 ? (-1) : $this.$next4.$matches($lastIndex + var$5 | 0, $testStr, $matchResult);
                    }
                    if (var$5 >= 0)
                        break;
                    $lastIndex = $lastIndex + (-1) | 0;
                }
            }
            return $lastIndex;
        }
        $testStr = new jl_StringIndexOutOfBoundsException;
        jl_Throwable__init_($testStr);
        $rt_throw($testStr);
    }
    $testStr = new jl_StringIndexOutOfBoundsException;
    jl_Throwable__init_($testStr);
    $rt_throw($testStr);
},
jur_SupplCharSet_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$high0;
    var$2 = $this.$low0;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = var$1;
    var$1 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$1, var$1 + 1 | 0);
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$6[var$1] = var$2;
    var$7 = new jl_String;
    var$2 = var$3.$length0;
    var$4 = var$6.length;
    if (var$2 >= 0 && var$2 <= (var$4 - 0 | 0)) {
        var$7.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
        return var$7;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$3);
    $rt_throw(var$3);
},
jur_SupplCharSet_first = ($this, $set) => {
    if ($set instanceof jur_SupplCharSet)
        return $set.$ch1 != $this.$ch1 ? 0 : 1;
    if ($set instanceof jur_SupplRangeSet)
        return $set.$contains1($this.$ch1);
    if ($set instanceof jur_CharSet)
        return 0;
    if (!($set instanceof jur_RangeSet))
        return 1;
    return 0;
},
jur_AbstractLineTerminator$1 = $rt_classWithoutFields(jur_AbstractLineTerminator),
jur_AbstractLineTerminator$1__init_ = $this => {
    return;
},
jur_AbstractLineTerminator$1__init_0 = () => {
    let var_0 = new jur_AbstractLineTerminator$1();
    jur_AbstractLineTerminator$1__init_(var_0);
    return var_0;
},
jur_AbstractLineTerminator$1_isLineTerminator = ($this, $ch) => {
    return $ch != 10 ? 0 : 1;
},
jur_AbstractLineTerminator$1_isAfterLineTerminator = ($this, $ch, $ch2) => {
    return $ch != 10 ? 0 : 1;
},
jur_AbstractLineTerminator$2 = $rt_classWithoutFields(jur_AbstractLineTerminator),
jur_AbstractLineTerminator$2__init_ = $this => {
    return;
},
jur_AbstractLineTerminator$2__init_0 = () => {
    let var_0 = new jur_AbstractLineTerminator$2();
    jur_AbstractLineTerminator$2__init_(var_0);
    return var_0;
},
jur_AbstractLineTerminator$2_isLineTerminator = ($this, $ch) => {
    return $ch != 10 && $ch != 13 && $ch != 133 && ($ch | 1) != 8233 ? 0 : 1;
},
jur_AbstractLineTerminator$2_isAfterLineTerminator = ($this, $ch, $ch2) => {
    a: {
        b: {
            if ($ch != 10 && $ch != 133 && ($ch | 1) != 8233) {
                if ($ch != 13)
                    break b;
                if ($ch2 == 10)
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = 0;
    }
    return $ch;
};
function jur_SequenceSet$IntHash() {
    let a = this; jl_Object.call(a);
    a.$table = null;
    a.$values0 = null;
    a.$mask = 0;
    a.$size10 = 0;
}
let jur_SequenceSet$IntHash__init_0 = ($this, $size) => {
    let var$2, var$3;
    while (true) {
        var$2 = $this.$mask;
        if ($size < var$2)
            break;
        $this.$mask = var$2 << 1 | 1;
    }
    var$3 = var$2 << 1 | 1;
    $this.$mask = var$3;
    var$3 = var$3 + 1 | 0;
    $this.$table = $rt_createIntArray(var$3);
    $this.$values0 = $rt_createIntArray(var$3);
    $this.$size10 = $size;
},
jur_SequenceSet$IntHash__init_ = var_0 => {
    let var_1 = new jur_SequenceSet$IntHash();
    jur_SequenceSet$IntHash__init_0(var_1, var_0);
    return var_1;
},
jur_SequenceSet$IntHash_put = ($this, $key, $value) => {
    let $i, var$4, $hashCode, var$6;
    $i = 0;
    var$4 = $this.$mask;
    $hashCode = $key & var$4;
    while (true) {
        var$6 = $this.$table.data;
        if (!var$6[$hashCode])
            break;
        if (var$6[$hashCode] == $key)
            break;
        $i = ($i + 1 | 0) & var$4;
        $hashCode = ($hashCode + $i | 0) & var$4;
    }
    var$6[$hashCode] = $key;
    $this.$values0.data[$hashCode] = $value;
},
jur_SequenceSet$IntHash_get = ($this, $key) => {
    let var$2, $hashCode, $i, $storedKey;
    var$2 = $this.$mask;
    $hashCode = $key & var$2;
    $i = 0;
    while (true) {
        $storedKey = $this.$table.data[$hashCode];
        if (!$storedKey)
            break;
        if ($storedKey == $key)
            return $this.$values0.data[$hashCode];
        $i = ($i + 1 | 0) & var$2;
        $hashCode = ($hashCode + $i | 0) & var$2;
    }
    return $this.$size10;
},
jur_AbstractCharClass$LazySpace = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazySpace__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazySpace__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazySpace();
    jur_AbstractCharClass$LazySpace__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazySpace_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add0(jur_CharClass_add(var$1, 9, 13), 32);
},
jur_AbstractCharClass$LazyDigit = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyDigit__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyDigit__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyDigit();
    jur_AbstractCharClass$LazyDigit__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyDigit_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(var$1, 48, 57);
},
jur_AbstractCharClass$LazyLower = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyLower__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyLower__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyLower();
    jur_AbstractCharClass$LazyLower__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyLower_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(var$1, 97, 122);
},
jur_AbstractCharClass$LazyUpper = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyUpper__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyUpper__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyUpper();
    jur_AbstractCharClass$LazyUpper__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyUpper_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(var$1, 65, 90);
},
jur_AbstractCharClass$LazyASCII = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyASCII__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyASCII__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyASCII();
    jur_AbstractCharClass$LazyASCII__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyASCII_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(var$1, 0, 127);
},
jur_AbstractCharClass$LazyAlpha = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyAlpha__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyAlpha__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyAlpha();
    jur_AbstractCharClass$LazyAlpha__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyAlpha_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(jur_CharClass_add(var$1, 97, 122), 65, 90);
},
jur_AbstractCharClass$LazyAlnum = $rt_classWithoutFields(jur_AbstractCharClass$LazyAlpha),
jur_AbstractCharClass$LazyAlnum__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyAlnum__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyAlnum();
    jur_AbstractCharClass$LazyAlnum__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyAlnum_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(var$1, 97, 122), 65, 90), 48, 57);
},
jur_AbstractCharClass$LazyPunct = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyPunct__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyPunct__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyPunct();
    jur_AbstractCharClass$LazyPunct__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyPunct_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(var$1, 33, 64), 91, 96), 123, 126);
},
jur_AbstractCharClass$LazyGraph = $rt_classWithoutFields(jur_AbstractCharClass$LazyAlnum),
jur_AbstractCharClass$LazyGraph__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyGraph__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyGraph();
    jur_AbstractCharClass$LazyGraph__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyGraph_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(var$1, 97, 122), 65, 90), 48, 57), 33, 64), 91, 96), 123, 126);
},
jur_AbstractCharClass$LazyPrint = $rt_classWithoutFields(jur_AbstractCharClass$LazyGraph),
jur_AbstractCharClass$LazyPrint__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyPrint__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyPrint();
    jur_AbstractCharClass$LazyPrint__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyPrint_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add0(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(var$1, 97, 122), 65, 90), 48, 57), 33, 64), 91, 96), 123, 126), 32);
},
jur_AbstractCharClass$LazyBlank = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyBlank__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyBlank__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyBlank();
    jur_AbstractCharClass$LazyBlank__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyBlank_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add0(jur_CharClass_add0(var$1, 32), 9);
},
jur_AbstractCharClass$LazyCntrl = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyCntrl__init_ = $this => {
    return;
};
let jur_AbstractCharClass$LazyCntrl__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyCntrl();
    jur_AbstractCharClass$LazyCntrl__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyCntrl_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add0(jur_CharClass_add(var$1, 0, 31), 127);
},
jur_AbstractCharClass$LazyXDigit = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyXDigit__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyXDigit__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyXDigit();
    jur_AbstractCharClass$LazyXDigit__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyXDigit_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(var$1, 48, 57), 97, 102), 65, 70);
},
jur_AbstractCharClass$LazyJavaLowerCase = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaLowerCase__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaLowerCase__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaLowerCase();
    jur_AbstractCharClass$LazyJavaLowerCase__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaLowerCase_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaLowerCase$1;
    $chCl.$this$038 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaUpperCase = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaUpperCase__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaUpperCase__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaUpperCase();
    jur_AbstractCharClass$LazyJavaUpperCase__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaUpperCase_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaUpperCase$1;
    $chCl.$this$027 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaWhitespace = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaWhitespace__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaWhitespace__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaWhitespace();
    jur_AbstractCharClass$LazyJavaWhitespace__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaWhitespace_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_AbstractCharClass$LazyJavaWhitespace$1;
    var$1.$this$037 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    return var$1;
},
jur_AbstractCharClass$LazyJavaMirrored = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaMirrored__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaMirrored__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaMirrored();
    jur_AbstractCharClass$LazyJavaMirrored__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaMirrored_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_AbstractCharClass$LazyJavaMirrored$1;
    var$1.$this$018 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    return var$1;
},
jur_AbstractCharClass$LazyJavaDefined = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaDefined__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaDefined__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaDefined();
    jur_AbstractCharClass$LazyJavaDefined__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaDefined_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaDefined$1;
    $chCl.$this$023 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    ju_BitSet_set(var$2, 0, 2048);
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaDigit = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaDigit__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaDigit__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaDigit();
    jur_AbstractCharClass$LazyJavaDigit__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaDigit_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaDigit$1;
    $chCl.$this$028 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaIdentifierIgnorable = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaIdentifierIgnorable__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaIdentifierIgnorable__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaIdentifierIgnorable();
    jur_AbstractCharClass$LazyJavaIdentifierIgnorable__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaIdentifierIgnorable_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaIdentifierIgnorable$1;
    $chCl.$this$033 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaISOControl = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaISOControl__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaISOControl__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaISOControl();
    jur_AbstractCharClass$LazyJavaISOControl__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaISOControl_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_AbstractCharClass$LazyJavaISOControl$1;
    var$1.$this$020 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    return var$1;
},
jur_AbstractCharClass$LazyJavaJavaIdentifierPart = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaJavaIdentifierPart__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaJavaIdentifierPart__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaJavaIdentifierPart();
    jur_AbstractCharClass$LazyJavaJavaIdentifierPart__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaJavaIdentifierPart_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaJavaIdentifierPart$1;
    $chCl.$this$014 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaJavaIdentifierStart = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaJavaIdentifierStart__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaJavaIdentifierStart__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaJavaIdentifierStart();
    jur_AbstractCharClass$LazyJavaJavaIdentifierStart__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaJavaIdentifierStart_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaJavaIdentifierStart$1;
    $chCl.$this$032 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaLetter = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaLetter__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaLetter__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaLetter();
    jur_AbstractCharClass$LazyJavaLetter__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaLetter_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaLetter$1;
    $chCl.$this$022 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
};
let jur_AbstractCharClass$LazyJavaLetterOrDigit = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaLetterOrDigit__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaLetterOrDigit__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaLetterOrDigit();
    jur_AbstractCharClass$LazyJavaLetterOrDigit__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaLetterOrDigit_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaLetterOrDigit$1;
    $chCl.$this$040 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaSpaceChar = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaSpaceChar__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaSpaceChar__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaSpaceChar();
    jur_AbstractCharClass$LazyJavaSpaceChar__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaSpaceChar_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_AbstractCharClass$LazyJavaSpaceChar$1;
    var$1.$this$019 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    return var$1;
},
jur_AbstractCharClass$LazyJavaTitleCase = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaTitleCase__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaTitleCase__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaTitleCase();
    jur_AbstractCharClass$LazyJavaTitleCase__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaTitleCase_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_AbstractCharClass$LazyJavaTitleCase$1;
    var$1.$this$039 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    return var$1;
},
jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart();
    jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart$1;
    $chCl.$this$015 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart();
    jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart$1;
    $chCl.$this$043 = $this;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyWord = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazyWord__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyWord__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyWord();
    jur_AbstractCharClass$LazyWord__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyWord_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add0(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add(var$1, 97, 122), 65, 90), 48, 57), 95);
},
jur_AbstractCharClass$LazyNonWord = $rt_classWithoutFields(jur_AbstractCharClass$LazyWord),
jur_AbstractCharClass$LazyNonWord__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyNonWord__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyNonWord();
    jur_AbstractCharClass$LazyNonWord__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyNonWord_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    $chCl.$bits = var$2;
    $chCl = jur_AbstractCharClass_setNegative(jur_CharClass_add0(jur_CharClass_add(jur_CharClass_add(jur_CharClass_add($chCl, 97, 122), 65, 90), 48, 57), 95), 1);
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyNonSpace = $rt_classWithoutFields(jur_AbstractCharClass$LazySpace),
jur_AbstractCharClass$LazyNonSpace__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyNonSpace__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyNonSpace();
    jur_AbstractCharClass$LazyNonSpace__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyNonSpace_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    $chCl.$bits = var$2;
    $chCl = jur_AbstractCharClass_setNegative(jur_CharClass_add0(jur_CharClass_add($chCl, 9, 13), 32), 1);
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
},
jur_AbstractCharClass$LazyNonDigit = $rt_classWithoutFields(jur_AbstractCharClass$LazyDigit),
jur_AbstractCharClass$LazyNonDigit__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazyNonDigit__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazyNonDigit();
    jur_AbstractCharClass$LazyNonDigit__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazyNonDigit_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    $chCl.$bits = var$2;
    $chCl = jur_AbstractCharClass_setNegative(jur_CharClass_add($chCl, 48, 57), 1);
    $chCl.$mayContainSupplCodepoints = 1;
    return $chCl;
};
function jur_AbstractCharClass$LazyRange() {
    let a = this; jur_AbstractCharClass$LazyCharClass.call(a);
    a.$start0 = 0;
    a.$end1 = 0;
}
let jur_AbstractCharClass$LazyRange__init_0 = ($this, $start, $end) => {
    $this.$start0 = $start;
    $this.$end1 = $end;
},
jur_AbstractCharClass$LazyRange__init_ = (var_0, var_1) => {
    let var_2 = new jur_AbstractCharClass$LazyRange();
    jur_AbstractCharClass$LazyRange__init_0(var_2, var_0, var_1);
    return var_2;
},
jur_AbstractCharClass$LazyRange_computeValue = $this => {
    let $chCl, var$2;
    $chCl = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    $chCl.$bits = var$2;
    return jur_CharClass_add($chCl, $this.$start0, $this.$end1);
},
jur_AbstractCharClass$LazySpecialsBlock = $rt_classWithoutFields(jur_AbstractCharClass$LazyCharClass),
jur_AbstractCharClass$LazySpecialsBlock__init_ = $this => {
    return;
},
jur_AbstractCharClass$LazySpecialsBlock__init_0 = () => {
    let var_0 = new jur_AbstractCharClass$LazySpecialsBlock();
    jur_AbstractCharClass$LazySpecialsBlock__init_(var_0);
    return var_0;
},
jur_AbstractCharClass$LazySpecialsBlock_computeValue = $this => {
    let var$1, var$2;
    var$1 = new jur_CharClass;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(64);
    var$1.$lowHighSurrogates = var$2;
    var$2 = new ju_BitSet;
    var$2.$data4 = $rt_createIntArray(2);
    var$1.$bits = var$2;
    return jur_CharClass_add(jur_CharClass_add(var$1, 65279, 65279), 65520, 65533);
};
function jur_AbstractCharClass$LazyCategory() {
    let a = this; jur_AbstractCharClass$LazyCharClass.call(a);
    a.$category1 = 0;
    a.$mayContainSupplCodepoints1 = 0;
    a.$containsAllSurrogates = 0;
}
let jur_AbstractCharClass$LazyCategory__init_2 = ($this, $cat, $mayContainSupplCodepoints) => {
    $this.$mayContainSupplCodepoints1 = $mayContainSupplCodepoints;
    $this.$category1 = $cat;
},
jur_AbstractCharClass$LazyCategory__init_ = (var_0, var_1) => {
    let var_2 = new jur_AbstractCharClass$LazyCategory();
    jur_AbstractCharClass$LazyCategory__init_2(var_2, var_0, var_1);
    return var_2;
},
jur_AbstractCharClass$LazyCategory__init_1 = ($this, $cat, $mayContainSupplCodepoints, $containsAllSurrogates) => {
    $this.$containsAllSurrogates = $containsAllSurrogates;
    $this.$mayContainSupplCodepoints1 = $mayContainSupplCodepoints;
    $this.$category1 = $cat;
},
jur_AbstractCharClass$LazyCategory__init_0 = (var_0, var_1, var_2) => {
    let var_3 = new jur_AbstractCharClass$LazyCategory();
    jur_AbstractCharClass$LazyCategory__init_1(var_3, var_0, var_1, var_2);
    return var_3;
},
jur_AbstractCharClass$LazyCategory_computeValue = $this => {
    let $chCl, var$2, var$3;
    $chCl = new jur_UnicodeCategory;
    var$2 = $this.$category1;
    var$3 = new ju_BitSet;
    var$3.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$3;
    $chCl.$category = var$2;
    if ($this.$containsAllSurrogates)
        ju_BitSet_set(var$3, 0, 2048);
    $chCl.$mayContainSupplCodepoints = $this.$mayContainSupplCodepoints1;
    return $chCl;
};
function jur_AbstractCharClass$LazyCategoryScope() {
    let a = this; jur_AbstractCharClass$LazyCharClass.call(a);
    a.$category0 = 0;
    a.$mayContainSupplCodepoints0 = 0;
    a.$containsAllSurrogates0 = 0;
}
let jur_AbstractCharClass$LazyCategoryScope__init_0 = ($this, $cat, $mayContainSupplCodepoints) => {
    $this.$mayContainSupplCodepoints0 = $mayContainSupplCodepoints;
    $this.$category0 = $cat;
},
jur_AbstractCharClass$LazyCategoryScope__init_ = (var_0, var_1) => {
    let var_2 = new jur_AbstractCharClass$LazyCategoryScope();
    jur_AbstractCharClass$LazyCategoryScope__init_0(var_2, var_0, var_1);
    return var_2;
},
jur_AbstractCharClass$LazyCategoryScope__init_1 = ($this, $cat, $mayContainSupplCodepoints, $containsAllSurrogates) => {
    $this.$containsAllSurrogates0 = $containsAllSurrogates;
    $this.$mayContainSupplCodepoints0 = $mayContainSupplCodepoints;
    $this.$category0 = $cat;
},
jur_AbstractCharClass$LazyCategoryScope__init_2 = (var_0, var_1, var_2) => {
    let var_3 = new jur_AbstractCharClass$LazyCategoryScope();
    jur_AbstractCharClass$LazyCategoryScope__init_1(var_3, var_0, var_1, var_2);
    return var_3;
},
jur_AbstractCharClass$LazyCategoryScope_computeValue = $this => {
    let $chCl, var$2, var$3;
    $chCl = new jur_UnicodeCategoryScope;
    var$2 = $this.$category0;
    var$3 = new ju_BitSet;
    var$3.$data4 = $rt_createIntArray(64);
    $chCl.$lowHighSurrogates = var$3;
    $chCl.$category = var$2;
    if ($this.$containsAllSurrogates0)
        ju_BitSet_set(var$3, 0, 2048);
    $chCl.$mayContainSupplCodepoints = $this.$mayContainSupplCodepoints0;
    return $chCl;
},
jur_IntHash = $rt_classWithoutFields();
function otciu_CharMapping() {
    let a = this; jl_Object.call(a);
    a.$binarySearchTable0 = null;
    a.$fastTable = null;
}
function otciu_UnicodeHelper$Range() {
    let a = this; jl_Object.call(a);
    a.$start4 = 0;
    a.$end3 = 0;
    a.$data14 = null;
}
let nms_INetworkManager = $rt_classWithoutFields(0);
function nles_WorkerNetworkManager() {
    let a = this; jl_Object.call(a);
    a.$theNetHandler = null;
    a.$minecraftServer = null;
    a.$ipcChannel = null;
    a.$isAlive = 0;
    a.$listenThread = null;
    a.$frags = null;
}
let nles_WorkerNetworkManager_addToSendQueue = ($this, $var1) => {
    let $bao, $e, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$e = $thread.pop();$bao = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$isAlive)
            return;
        try {
            $bao = ji_ByteArrayOutputStream__init_0($var1.$getPacketSize() + 1 | 0);
            $e = ji_DataOutputStream__init_($bao);
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $e = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $bao = new otcic_JSStderrPrintStream;
            var$4 = new ji_ByteArrayOutputStream;
            var$4.$buf = $rt_createByteArray(32);
            $bao.$out0 = var$4;
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            $bao.$sb = var$4;
            $bao.$buffer0 = $rt_createCharArray(32);
            $bao.$autoFlush = 0;
            $bao.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $bao;
        }
        $bao = nms_Packet_packetClassToIdMap;
        $var1 = $var1.constructor;
        if ($var1 === null)
            var$4 = null;
        else {
            var$4 = $var1.classObject;
            if (var$4 === null) {
                var$4 = new jl_Class;
                var$4.$platformClass = $var1;
                $var1.classObject = var$4;
            }
        }
        if (var$4 === null) {
            $var1 = $bao.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$5 = var$4;
            if (!var$5.$id$)
                var$5.$id$ = $rt_nextId();
            var$6 = var$4.$id$;
            var$7 = $bao.$elementData.data;
            $var1 = var$7[var$6 & (var$7.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$6) {
                    $bao = $var1.$key;
                    if (var$4 !== $bao && !(var$4 !== $bao ? 0 : 1) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        var$8 = ($var1 === null ? null : $var1.$value0).$value;
        $var1 = $this.$ipcChannel;
        $bao = new jl_StringBuilder;
        $bao.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(1972));
        jl_AbstractStringBuilder_insert0($bao, $bao.$length0, var$8, 10);
        jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(1973));
        var$8 = $bao.$length0;
        if ($var1 === null)
            $var1 = $rt_s(1);
        jl_AbstractStringBuilder_insert($bao, var$8, $var1);
        var$9 = $bao.$length0;
        jl_AbstractStringBuilder_insertSpace($bao, var$9, var$9 + 1 | 0);
        var$7 = $bao.$buffer;
        var$10 = var$7.data;
        var$10[var$9] = 39;
        $var1 = new jl_String;
        var$9 = $bao.$length0;
        var$6 = var$10.length;
        if (var$9 >= 0 && var$9 <= (var$6 - 0 | 0)) {
            $var1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
            $rt_putStderr($rt_ustr($var1));
            $rt_putStderr("\n");
            jl_Throwable_printStackTrace0($e);
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        a: {
            try {
                nms_Packet_writePacket($var1, $e);
                if ($rt_suspending()) {
                    break main;
                }
                nles_IntegratedServer_sendPlayerPacket($this.$ipcChannel, ji_ByteArrayOutputStream_toByteArray($bao));
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $e = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            return;
        }
        if (jl_System_errCache === null) {
            $bao = new otcic_JSStderrPrintStream;
            var$4 = new ji_ByteArrayOutputStream;
            var$4.$buf = $rt_createByteArray(32);
            $bao.$out0 = var$4;
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            $bao.$sb = var$4;
            $bao.$buffer0 = $rt_createCharArray(32);
            $bao.$autoFlush = 0;
            $bao.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $bao;
        }
        $bao = nms_Packet_packetClassToIdMap;
        $var1 = $var1.constructor;
        if ($var1 === null)
            var$4 = null;
        else {
            var$4 = $var1.classObject;
            if (var$4 === null) {
                var$4 = new jl_Class;
                var$4.$platformClass = $var1;
                $var1.classObject = var$4;
            }
        }
        if (var$4 === null) {
            $var1 = $bao.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$5 = var$4;
            if (!var$5.$id$)
                var$5.$id$ = $rt_nextId();
            var$6 = var$4.$id$;
            var$7 = $bao.$elementData.data;
            $var1 = var$7[var$6 & (var$7.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$6) {
                    $bao = $var1.$key;
                    if (var$4 !== $bao && !(var$4 !== $bao ? 0 : 1) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        var$8 = ($var1 === null ? null : $var1.$value0).$value;
        $var1 = $this.$ipcChannel;
        $bao = new jl_StringBuilder;
        $bao.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(1972));
        jl_AbstractStringBuilder_insert0($bao, $bao.$length0, var$8, 10);
        jl_AbstractStringBuilder_insert($bao, $bao.$length0, $rt_s(1973));
        var$8 = $bao.$length0;
        if ($var1 === null)
            $var1 = $rt_s(1);
        jl_AbstractStringBuilder_insert($bao, var$8, $var1);
        var$9 = $bao.$length0;
        jl_AbstractStringBuilder_insertSpace($bao, var$9, var$9 + 1 | 0);
        var$7 = $bao.$buffer;
        var$10 = var$7.data;
        var$10[var$9] = 39;
        $var1 = new jl_String;
        var$9 = $bao.$length0;
        var$6 = var$10.length;
        if (var$9 >= 0 && var$9 <= (var$6 - 0 | 0)) {
            $var1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
            $rt_putStderr($rt_ustr($var1));
            $rt_putStderr("\n");
            jl_Throwable_printStackTrace0($e);
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $bao, $e, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nles_WorkerNetworkManager_processReadPackets = $this => {
    let var$1, var$2, var$3, var$4, var$5, $bai, var$7, $pktBytes, $pktId, var$10, var$11, var$12, $pkt, var$14, $t, var$16, var$17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$t = $thread.pop();var$14 = $thread.pop();$pkt = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$pktId = $thread.pop();$pktBytes = $thread.pop();var$7 = $thread.pop();$bai = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = 39;
        var$2 = $rt_s(1974);
        var$3 = $rt_s(1975);
        var$4 = $rt_s(1976);
        var$5 = $rt_s(9);
        a: {
            while (true) {
                $bai = $this.$frags;
                if ($bai.$size2 <= 0)
                    break;
                $bai = ju_LinkedList_listIterator($bai, 0);
                var$7 = ju_LinkedList$SequentialListIterator_next($bai);
                ju_LinkedList$SequentialListIterator_remove($bai);
                $pktBytes = var$7;
                try {
                    $bai = ji_ByteArrayInputStream__init_($pktBytes);
                    $pktId = ji_ByteArrayInputStream_read($bai);
                    if ($pktId == (-1)) {
                        otcic_JsConsolePrintStream_println(jl_System_err(), $rt_s(1977));
                        continue;
                    }
                    var$7 = nles_EAGMinecraftServer_getLogAgent($this.$minecraftServer);
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $bai = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    var$7.$buf = $rt_createByteArray(32);
                    $bai.$out0 = var$7;
                    var$7 = new jl_StringBuilder;
                    jl_Object__init_(var$7);
                    var$7.$buffer = $rt_createCharArray(16);
                    $bai.$sb = var$7;
                    $bai.$buffer0 = $rt_createCharArray(32);
                    $bai.$autoFlush = 0;
                    $bai.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $bai;
                }
                $pktBytes = $pktBytes.data;
                $pktId = $pktBytes.length;
                var$10 = $pktId <= 0 ? (-1) : $pktBytes[0] & 255;
                var$7 = $this.$ipcChannel;
                $bai = new jl_StringBuilder;
                $bai.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$2);
                jl_AbstractStringBuilder_insert0($bai, $bai.$length0, $pktId, 10);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$3);
                jl_AbstractStringBuilder_insert0($bai, $bai.$length0, var$10, 10);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$4);
                $pktId = $bai.$length0;
                if (var$7 === null)
                    var$7 = $rt_s(1);
                jl_AbstractStringBuilder_insert($bai, $pktId, var$7);
                $pktId = $bai.$length0;
                jl_AbstractStringBuilder_insertSpace($bai, $pktId, $pktId + 1 | 0);
                $pktBytes = $bai.$buffer;
                var$11 = $pktBytes.data;
                var$11[$pktId] = var$1;
                var$7 = new jl_String;
                var$10 = $bai.$length0;
                var$12 = var$11.length;
                if (var$10 < 0)
                    break a;
                if (var$10 > (var$12 - 0 | 0))
                    break a;
                var$7.$nativeString = $rt_charArrayToString($pktBytes.data, 0, var$10);
                $rt_putStderr($rt_ustr(var$7));
                $rt_putStderr($rt_ustr(var$5));
            }
            return;
        }
        $bai = new jl_IndexOutOfBoundsException;
        $bai.$suppressionEnabled = 1;
        $bai.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($bai);
        $rt_throw($bai);
    case 1:
        a: {
            try {
                $tmp = nms_Packet_getNewPacket(var$7, $pktId);
                if ($rt_suspending()) {
                    break main;
                }
                $pkt = $tmp;
                if ($pkt === null) {
                    var$7 = jl_System_err();
                    var$14 = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append(var$14, $rt_s(1978)), $pktId), $rt_s(1979));
                    otcic_JsConsolePrintStream_println(var$7, jl_StringBuilder_toString(var$14));
                } else {
                    $pkt.$readPacketData(ji_DataInputStream__init_($bai));
                    try {
                        $bai = $this.$theNetHandler;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    var$16 = jl_System_out();
                    var$7 = jl_Class_getSimpleName(jl_Object_getClass($this.$theNetHandler));
                    $bai = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append($bai, var$7), $rt_s(1980));
                    otcic_JsConsolePrintStream_println(var$16, jl_StringBuilder_toString($bai));
                    var$16 = jl_System_err();
                    var$14 = jl_Integer_toHexString(nms_Packet_getPacketId($pkt));
                    $pkt = jl_Class_getSimpleName(jl_Object_getClass($pkt));
                    var$17 = $this.$ipcChannel;
                    $bai = jl_StringBuilder__init_();
                    jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($bai, $rt_s(1981)), var$14), $rt_s(7)), $pkt), $rt_s(1976)), var$17), var$1);
                    otcic_JsConsolePrintStream_println(var$16, jl_StringBuilder_toString($bai));
                    jl_Throwable_printStackTrace0($t);
                }
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            b: {
                while (true) {
                    $bai = $this.$frags;
                    $pktId = $bai.$size2;
                    if ($pktId <= 0)
                        break;
                    $pktId = 0;
                    $bai = ju_LinkedList_listIterator($bai, $pktId);
                    var$7 = ju_LinkedList$SequentialListIterator_next($bai);
                    ju_LinkedList$SequentialListIterator_remove($bai);
                    $pktBytes = var$7;
                    try {
                        $bai = ji_ByteArrayInputStream__init_($pktBytes);
                        $pktId = ji_ByteArrayInputStream_read($bai);
                        var$10 = (-1);
                        var$10 = $rt_compare($pktId, var$10);
                        if (var$10)
                            break b;
                        $bai = jl_System_err();
                        var$7 = $rt_s(1977);
                        otcic_JsConsolePrintStream_println($bai, var$7);
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            break a;
                        } else {
                            throw $$e;
                        }
                    }
                }
                return;
            }
            try {
                var$7 = $this.$minecraftServer;
                var$7 = nles_EAGMinecraftServer_getLogAgent(var$7);
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        c: {
            d: while (true) {
                if (jl_System_errCache === null) {
                    $bai = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    var$7.$buf = $rt_createByteArray(32);
                    $bai.$out0 = var$7;
                    var$7 = new jl_StringBuilder;
                    jl_Object__init_(var$7);
                    var$7.$buffer = $rt_createCharArray(16);
                    $bai.$sb = var$7;
                    $bai.$buffer0 = $rt_createCharArray(32);
                    $bai.$autoFlush = 0;
                    $bai.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $bai;
                }
                $pktBytes = $pktBytes.data;
                $pktId = $pktBytes.length;
                var$10 = $pktId <= 0 ? (-1) : $pktBytes[0] & 255;
                var$7 = $this.$ipcChannel;
                $bai = new jl_StringBuilder;
                $bai.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$2);
                jl_AbstractStringBuilder_insert0($bai, $bai.$length0, $pktId, 10);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$3);
                jl_AbstractStringBuilder_insert0($bai, $bai.$length0, var$10, 10);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$4);
                $pktId = $bai.$length0;
                if (var$7 === null)
                    var$7 = $rt_s(1);
                jl_AbstractStringBuilder_insert($bai, $pktId, var$7);
                $pktId = $bai.$length0;
                jl_AbstractStringBuilder_insertSpace($bai, $pktId, $pktId + 1 | 0);
                $pktBytes = $bai.$buffer;
                var$11 = $pktBytes.data;
                var$11[$pktId] = var$1;
                var$7 = new jl_String;
                var$10 = $bai.$length0;
                var$12 = var$11.length;
                if (var$10 < 0)
                    break c;
                if (var$10 > (var$12 - 0 | 0))
                    break c;
                var$7.$nativeString = $rt_charArrayToString($pktBytes.data, 0, var$10);
                $rt_putStderr($rt_ustr(var$7));
                $rt_putStderr($rt_ustr(var$5));
                while (true) {
                    $bai = $this.$frags;
                    $pktId = $bai.$size2;
                    if ($pktId <= 0)
                        break d;
                    $pktId = 0;
                    $bai = ju_LinkedList_listIterator($bai, $pktId);
                    var$7 = ju_LinkedList$SequentialListIterator_next($bai);
                    ju_LinkedList$SequentialListIterator_remove($bai);
                    $pktBytes = var$7;
                    try {
                        $bai = ji_ByteArrayInputStream__init_($pktBytes);
                        $pktId = ji_ByteArrayInputStream_read($bai);
                        var$10 = (-1);
                        var$10 = $rt_compare($pktId, var$10);
                        if (var$10)
                            break;
                        $bai = jl_System_err();
                        var$7 = $rt_s(1977);
                        otcic_JsConsolePrintStream_println($bai, var$7);
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            continue d;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    var$7 = $this.$minecraftServer;
                    var$7 = nles_EAGMinecraftServer_getLogAgent(var$7);
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            return;
        }
        $bai = new jl_IndexOutOfBoundsException;
        $bai.$suppressionEnabled = 1;
        $bai.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($bai);
        $rt_throw($bai);
    case 2:
        a: {
            try {
                e: {
                    try {
                        $pkt.$processPacket($bai);
                        if ($rt_suspending()) {
                            break main;
                        }
                        break e;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                            $t = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    var$16 = jl_System_out();
                    var$7 = jl_Class_getSimpleName(jl_Object_getClass($this.$theNetHandler));
                    $bai = jl_StringBuilder__init_();
                    jl_StringBuilder_append(jl_StringBuilder_append($bai, var$7), $rt_s(1980));
                    otcic_JsConsolePrintStream_println(var$16, jl_StringBuilder_toString($bai));
                    var$16 = jl_System_err();
                    var$14 = jl_Integer_toHexString(nms_Packet_getPacketId($pkt));
                    $pkt = jl_Class_getSimpleName(jl_Object_getClass($pkt));
                    var$17 = $this.$ipcChannel;
                    $bai = jl_StringBuilder__init_();
                    jl_StringBuilder_append1(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append($bai, $rt_s(1981)), var$14), $rt_s(7)), $pkt), $rt_s(1976)), var$17), var$1);
                    otcic_JsConsolePrintStream_println(var$16, jl_StringBuilder_toString($bai));
                    jl_Throwable_printStackTrace0($t);
                }
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    break a;
                } else {
                    throw $$e;
                }
            }
            b: {
                while (true) {
                    $bai = $this.$frags;
                    $pktId = $bai.$size2;
                    if ($pktId <= 0)
                        break;
                    $pktId = 0;
                    $bai = ju_LinkedList_listIterator($bai, $pktId);
                    var$7 = ju_LinkedList$SequentialListIterator_next($bai);
                    ju_LinkedList$SequentialListIterator_remove($bai);
                    $pktBytes = var$7;
                    try {
                        $bai = ji_ByteArrayInputStream__init_($pktBytes);
                        $pktId = ji_ByteArrayInputStream_read($bai);
                        var$10 = (-1);
                        var$10 = $rt_compare($pktId, var$10);
                        if (var$10)
                            break b;
                        $bai = jl_System_err();
                        var$7 = $rt_s(1977);
                        otcic_JsConsolePrintStream_println($bai, var$7);
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            break a;
                        } else {
                            throw $$e;
                        }
                    }
                }
                return;
            }
            try {
                var$7 = $this.$minecraftServer;
                var$7 = nles_EAGMinecraftServer_getLogAgent(var$7);
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        c: {
            d: while (true) {
                if (jl_System_errCache === null) {
                    $bai = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    var$7.$buf = $rt_createByteArray(32);
                    $bai.$out0 = var$7;
                    var$7 = new jl_StringBuilder;
                    jl_Object__init_(var$7);
                    var$7.$buffer = $rt_createCharArray(16);
                    $bai.$sb = var$7;
                    $bai.$buffer0 = $rt_createCharArray(32);
                    $bai.$autoFlush = 0;
                    $bai.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $bai;
                }
                $pktBytes = $pktBytes.data;
                $pktId = $pktBytes.length;
                var$10 = $pktId <= 0 ? (-1) : $pktBytes[0] & 255;
                var$7 = $this.$ipcChannel;
                $bai = new jl_StringBuilder;
                $bai.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$2);
                jl_AbstractStringBuilder_insert0($bai, $bai.$length0, $pktId, 10);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$3);
                jl_AbstractStringBuilder_insert0($bai, $bai.$length0, var$10, 10);
                jl_AbstractStringBuilder_insert($bai, $bai.$length0, var$4);
                $pktId = $bai.$length0;
                if (var$7 === null)
                    var$7 = $rt_s(1);
                jl_AbstractStringBuilder_insert($bai, $pktId, var$7);
                $pktId = $bai.$length0;
                jl_AbstractStringBuilder_insertSpace($bai, $pktId, $pktId + 1 | 0);
                $pktBytes = $bai.$buffer;
                var$11 = $pktBytes.data;
                var$11[$pktId] = var$1;
                var$7 = new jl_String;
                var$10 = $bai.$length0;
                var$12 = var$11.length;
                if (var$10 < 0)
                    break c;
                if (var$10 > (var$12 - 0 | 0))
                    break c;
                var$7.$nativeString = $rt_charArrayToString($pktBytes.data, 0, var$10);
                $rt_putStderr($rt_ustr(var$7));
                $rt_putStderr($rt_ustr(var$5));
                while (true) {
                    $bai = $this.$frags;
                    $pktId = $bai.$size2;
                    if ($pktId <= 0)
                        break d;
                    $pktId = 0;
                    $bai = ju_LinkedList_listIterator($bai, $pktId);
                    var$7 = ju_LinkedList$SequentialListIterator_next($bai);
                    ju_LinkedList$SequentialListIterator_remove($bai);
                    $pktBytes = var$7;
                    try {
                        $bai = ji_ByteArrayInputStream__init_($pktBytes);
                        $pktId = ji_ByteArrayInputStream_read($bai);
                        var$10 = (-1);
                        var$10 = $rt_compare($pktId, var$10);
                        if (var$10)
                            break;
                        $bai = jl_System_err();
                        var$7 = $rt_s(1977);
                        otcic_JsConsolePrintStream_println($bai, var$7);
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            continue d;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    var$7 = $this.$minecraftServer;
                    var$7 = nles_EAGMinecraftServer_getLogAgent(var$7);
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        continue;
                    } else {
                        throw $$e;
                    }
                }
            }
            return;
        }
        $bai = new jl_IndexOutOfBoundsException;
        $bai.$suppressionEnabled = 1;
        $bai.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($bai);
        $rt_throw($bai);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $bai, var$7, $pktBytes, $pktId, var$10, var$11, var$12, $pkt, var$14, $t, var$16, var$17, $ptr);
},
nles_WorkerNetworkManager_serverShutdown = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isAlive) {
            var$1 = $this.$listenThread;
            var$2 = $this.$ipcChannel;
            $ptr = 1;
            continue main;
        }
        var$1 = $this.$theNetHandler;
        if (var$1 !== null && var$1 instanceof nms_NetServerHandler) {
            var$1 = var$1;
            var$2 = null;
            $ptr = 2;
            continue main;
        }
        $this.$isAlive = 0;
        return;
    case 1:
        nles_WorkerListenThread_closeChannel(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = new nlesi_IPCPacket0CPlayerChannel;
        var$1.$channel = $this.$ipcChannel;
        var$1.$open = 0;
        nles_IntegratedServer_sendIPCPacket(var$1);
        var$1 = $this.$theNetHandler;
        if (var$1 !== null && var$1 instanceof nms_NetServerHandler) {
            var$1 = var$1;
            var$2 = null;
            $ptr = 2;
            continue main;
        }
        $this.$isAlive = 0;
        return;
    case 2:
        nms_NetServerHandler_kickPlayerFromServer(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isAlive = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nles_WorkerNetworkManager_networkShutdown = ($this, $var1, $var2) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isAlive) {
            $var1 = $this.$listenThread;
            var$3 = $this.$ipcChannel;
            $ptr = 1;
            continue main;
        }
        $var1 = $this.$theNetHandler;
        if ($var1 !== null && $var1 instanceof nms_NetServerHandler) {
            $var1 = $var1;
            var$3 = null;
            $ptr = 2;
            continue main;
        }
        $this.$isAlive = 0;
        return;
    case 1:
        nles_WorkerListenThread_closeChannel($var1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = new nlesi_IPCPacket0CPlayerChannel;
        $var1.$channel = $this.$ipcChannel;
        $var1.$open = 0;
        nles_IntegratedServer_sendIPCPacket($var1);
        $var1 = $this.$theNetHandler;
        if ($var1 !== null && $var1 instanceof nms_NetServerHandler) {
            $var1 = $var1;
            var$3 = null;
            $ptr = 2;
            continue main;
        }
        $this.$isAlive = 0;
        return;
    case 2:
        nms_NetServerHandler_kickPlayerFromServer($var1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isAlive = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, var$3, $ptr);
},
nles_WorkerNetworkManager_equals = ($this, $o) => {
    let var$2, var$3;
    a: {
        if ($o instanceof nles_WorkerNetworkManager) {
            $o = $o.$ipcChannel;
            var$2 = $this.$ipcChannel;
            if ($o === var$2)
                var$3 = 1;
            else if (!(var$2 instanceof jl_String))
                var$3 = 0;
            else {
                var$2 = var$2;
                var$3 = $o.$nativeString !== var$2.$nativeString ? 0 : 1;
            }
            if (var$3) {
                var$3 = 1;
                break a;
            }
        }
        var$3 = 0;
    }
    return var$3;
},
nles_WorkerNetworkManager_hashCode = $this => {
    let var$1, var$2;
    a: {
        var$1 = $this.$ipcChannel;
        if (!var$1.$hashCode1) {
            var$2 = 0;
            while (true) {
                if (var$2 >= var$1.$nativeString.length)
                    break a;
                var$1.$hashCode1 = (31 * var$1.$hashCode1 | 0) + var$1.$nativeString.charCodeAt(var$2) | 0;
                var$2 = var$2 + 1 | 0;
            }
        }
    }
    return var$1.$hashCode1;
};
function ju_HashMap$2() {
    ju_AbstractCollection.call(this);
    this.$this$01 = null;
}
let ju_HashMap$2_size = $this => {
    return $this.$this$01.$elementCount;
},
ju_HashMap$2_iterator = $this => {
    let var$1, var$2;
    var$1 = new ju_HashMap$ValueIterator;
    var$2 = $this.$this$01;
    var$1.$associatedMap = var$2;
    var$1.$expectedModCount = var$2.$modCount1;
    var$1.$futureEntry0 = null;
    return var$1;
};
function jusi_AllMatchConsumer() {
    let a = this; jl_Object.call(a);
    a.$matched = 0;
    a.$predicate = null;
}
function ju_HashMap$AbstractMapIterator() {
    let a = this; jl_Object.call(a);
    a.$position2 = 0;
    a.$expectedModCount = 0;
    a.$futureEntry0 = null;
    a.$currentEntry0 = null;
    a.$prevEntry0 = null;
    a.$associatedMap = null;
}
let ju_HashMap$AbstractMapIterator_hasNext = $this => {
    let var$1, var$2;
    if ($this.$futureEntry0 !== null)
        return 1;
    while (true) {
        var$1 = $this.$position2;
        var$2 = $this.$associatedMap.$elementData.data;
        if (var$1 >= var$2.length)
            break;
        if (var$2[var$1] !== null)
            return 1;
        $this.$position2 = var$1 + 1 | 0;
    }
    return 0;
},
ju_HashMap$AbstractMapIterator_makeNext = $this => {
    let var$1, var$2, var$3, var$4;
    if ($this.$expectedModCount != $this.$associatedMap.$modCount1) {
        var$1 = new ju_ConcurrentModificationException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    if (!ju_HashMap$AbstractMapIterator_hasNext($this)) {
        var$1 = new ju_NoSuchElementException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$1 = $this.$futureEntry0;
    if (var$1 !== null) {
        var$2 = $this.$currentEntry0;
        if (var$2 !== null)
            $this.$prevEntry0 = var$2;
        $this.$currentEntry0 = var$1;
        $this.$futureEntry0 = var$1.$next3;
    } else {
        var$3 = $this.$associatedMap.$elementData.data;
        var$4 = $this.$position2;
        $this.$position2 = var$4 + 1 | 0;
        var$1 = var$3[var$4];
        $this.$currentEntry0 = var$1;
        $this.$futureEntry0 = var$1.$next3;
        $this.$prevEntry0 = null;
    }
},
ju_HashMap$AbstractMapIterator_remove = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $index;
    var$1 = $this.$expectedModCount;
    var$2 = $this.$associatedMap;
    var$3 = var$2.$modCount1;
    if (var$1 != var$3) {
        var$4 = new ju_ConcurrentModificationException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$4 = $this.$currentEntry0;
    if (var$4 === null) {
        var$4 = new jl_IllegalStateException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    }
    var$5 = $this.$prevEntry0;
    if (var$5 !== null)
        var$5.$next3 = var$4.$next3;
    else {
        var$6 = var$4.$origKeyHash;
        var$7 = var$2.$elementData.data;
        $index = var$6 & (var$7.length - 1 | 0);
        var$7[$index] = var$7[$index].$next3;
    }
    $this.$currentEntry0 = null;
    $this.$expectedModCount = var$1 + 1 | 0;
    var$2.$modCount1 = var$3 + 1 | 0;
    var$2.$elementCount = var$2.$elementCount - 1 | 0;
},
ju_HashMap$EntryIterator = $rt_classWithoutFields(ju_HashMap$AbstractMapIterator),
ju_HashMap$EntryIterator_next = $this => {
    ju_HashMap$AbstractMapIterator_makeNext($this);
    return $this.$currentEntry0;
},
jl_ArithmeticException = $rt_classWithoutFields(jl_RuntimeException),
jl_ArithmeticException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_ArithmeticException__init_0 = () => {
    let var_0 = new jl_ArithmeticException();
    jl_ArithmeticException__init_(var_0);
    return var_0;
},
jl_UnsupportedOperationException = $rt_classWithoutFields(jl_RuntimeException),
jl_UnsupportedOperationException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_UnsupportedOperationException__init_0 = () => {
    let var_0 = new jl_UnsupportedOperationException();
    jl_UnsupportedOperationException__init_(var_0);
    return var_0;
},
jn_ReadOnlyBufferException = $rt_classWithoutFields(jl_UnsupportedOperationException),
jn_ReadOnlyBufferException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jn_ReadOnlyBufferException__init_0 = () => {
    let var_0 = new jn_ReadOnlyBufferException();
    jn_ReadOnlyBufferException__init_(var_0);
    return var_0;
},
jn_BufferOverflowException = $rt_classWithoutFields(jl_RuntimeException),
jn_BufferOverflowException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jn_BufferOverflowException__init_0 = () => {
    let var_0 = new jn_BufferOverflowException();
    jn_BufferOverflowException__init_(var_0);
    return var_0;
},
jnc_BufferUnderflowException = $rt_classWithoutFields(jl_RuntimeException),
jnc_BufferUnderflowException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jnc_BufferUnderflowException__init_0 = () => {
    let var_0 = new jnc_BufferUnderflowException();
    jnc_BufferUnderflowException__init_(var_0);
    return var_0;
},
jnc_BufferOverflowException = $rt_classWithoutFields(jl_RuntimeException),
jnc_BufferOverflowException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jnc_BufferOverflowException__init_0 = () => {
    let var_0 = new jnc_BufferOverflowException();
    jnc_BufferOverflowException__init_(var_0);
    return var_0;
};
function jnc_MalformedInputException() {
    jnc_CharacterCodingException.call(this);
    this.$length6 = 0;
}
let jnc_MalformedInputException_getMessage = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$length6;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1982));
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function jnc_UnmappableCharacterException() {
    jnc_CharacterCodingException.call(this);
    this.$length5 = 0;
}
let jnc_UnmappableCharacterException_getMessage = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$length5;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(1983));
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function nms_EntityLivingBase() {
    let a = this; nms_Entity.call(a);
    a.$attributeMap = null;
    a.$_combatTracker = null;
    a.$activePotionsMap = null;
    a.$previousEquipment = null;
    a.$equipmentDropChances0 = null;
    a.$isSwingInProgress = 0;
    a.$swingProgressInt = 0;
    a.$arrowHitTimer = 0;
    a.$prevHealth = 0.0;
    a.$hurtTime = 0;
    a.$maxHurtTime = 0;
    a.$attackedAtYaw = 0.0;
    a.$deathTime = 0;
    a.$attackTime = 0;
    a.$prevSwingProgress = 0.0;
    a.$swingProgress = 0.0;
    a.$prevLimbSwingAmount = 0.0;
    a.$limbSwingAmount = 0.0;
    a.$limbSwing = 0.0;
    a.$maxHurtResistantTime = 0;
    a.$prevCameraPitch = 0.0;
    a.$cameraPitch = 0.0;
    a.$field_70769_ao = 0.0;
    a.$field_70770_ap = 0.0;
    a.$renderYawOffset = 0.0;
    a.$prevRenderYawOffset = 0.0;
    a.$rotationYawHead = 0.0;
    a.$prevRotationYawHead = 0.0;
    a.$jumpMovementFactor = 0.0;
    a.$attackingPlayer = null;
    a.$recentlyHit = 0;
    a.$dead = 0;
    a.$entityAge = 0;
    a.$field_70768_au = 0.0;
    a.$field_110154_aX = 0.0;
    a.$field_70764_aw = 0.0;
    a.$field_70763_ax = 0.0;
    a.$field_70741_aB = 0.0;
    a.$scoreValue = 0;
    a.$lastDamage = 0.0;
    a.$isJumping = 0;
    a.$moveStrafing = 0.0;
    a.$moveForward = 0.0;
    a.$randomYawVelocity = 0.0;
    a.$newPosRotationIncrements = 0;
    a.$newPosX = 0.0;
    a.$newPosY = 0.0;
    a.$newPosZ = 0.0;
    a.$newRotationYaw = 0.0;
    a.$newRotationPitch = 0.0;
    a.$potionsNeedUpdate = 0;
    a.$entityLivingToAttack = null;
    a.$revengeTimer = 0;
    a.$lastAttacker = null;
    a.$lastAttackerTime = 0;
    a.$landMovementFactor = 0.0;
    a.$jumpTicks = 0;
    a.$field_110151_bq = 0.0;
}
let nms_EntityLivingBase_sprintingSpeedBoostModifierUUID = null,
nms_EntityLivingBase_sprintingSpeedBoostModifier = null,
nms_EntityLivingBase_$callClinit = () => {
    nms_EntityLivingBase_$callClinit = $rt_eraseClinit(nms_EntityLivingBase);
    nms_EntityLivingBase__clinit_();
},
nms_EntityLivingBase__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_EntityLivingBase_$callClinit();
    nms_Entity__init_($this, $par1World);
    $par1World = new nms_CombatTracker;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $par1World.$field_94556_a = var$2;
    $par1World.$fighter = $this;
    $this.$_combatTracker = $par1World;
    $par1World = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    $par1World.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    $par1World.$elementData = var$4;
    $par1World.$loadFactor = 0.75;
    $par1World.$threshold = var$5.length * 0.75 | 0;
    $this.$activePotionsMap = $par1World;
    $this.$previousEquipment = $rt_createArray(nms_ItemStack, 5);
    $this.$equipmentDropChances0 = $rt_createFloatArray(5);
    $this.$maxHurtResistantTime = 20;
    $this.$jumpMovementFactor = 0.019999999552965164;
    $this.$potionsNeedUpdate = 1;
    $this.$applyEntityAttributes();
    $par1World = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
    if ($par1World.$field_111133_g) {
        $par1World.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1World);
        $par1World.$field_111133_g = 0;
    }
    nms_EntityLivingBase_setHealth($this, $par1World.$field_111139_h);
    $this.$preventEntitySpawning = 1;
    $this.$field_70770_ap = (jl_Math_randomImpl() + 1.0) * 0.009999999776482582;
    nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
    $this.$field_70769_ao = jl_Math_randomImpl() * 12398.0;
    var$6 = jl_Math_randomImpl() * 3.141592653589793 * 2.0;
    $this.$rotationYaw = var$6;
    $this.$rotationYawHead = var$6;
    $this.$stepHeight = 0.5;
},
nms_EntityLivingBase_updateFallState = ($this, $par1, $par3) => {
    let $var7, var$4, $var4, $var5, $var6, var$8, var$9, var$10, var$11, var$12, var$13, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var7 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!$var7) {
            $ptr = 2;
            continue main;
        }
        if ($par3 && $this.$fallDistance > 0.0) {
            var$4 = $this.$posX;
            $var4 = var$4 | 0;
            if (var$4 < $var4)
                $var4 = $var4 - 1 | 0;
            var$4 = $this.$posY - 0.20000000298023224 - $this.$yOffset;
            $var5 = var$4 | 0;
            if (var$4 < $var5)
                $var5 = $var5 - 1 | 0;
            var$4 = $this.$posZ;
            $var6 = var$4 | 0;
            if (var$4 < $var6)
                $var6 = $var6 - 1 | 0;
            var$8 = $this.$worldObj;
            $ptr = 4;
            continue main;
        }
        if ($par3) {
            var$9 = $this.$fallDistance;
            if (var$9 > 0.0) {
                $ptr = 3;
                continue main;
            }
        } else if ($par1 < 0.0)
            $this.$fallDistance = $this.$fallDistance - $par1;
        return;
    case 2:
        nms_Entity_handleWaterMovement($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($par3 && $this.$fallDistance > 0.0) {
            var$4 = $this.$posX;
            $var4 = var$4 | 0;
            if (var$4 < $var4)
                $var4 = $var4 - 1 | 0;
            var$4 = $this.$posY - 0.20000000298023224 - $this.$yOffset;
            $var5 = var$4 | 0;
            if (var$4 < $var5)
                $var5 = $var5 - 1 | 0;
            var$4 = $this.$posZ;
            $var6 = var$4 | 0;
            if (var$4 < $var6)
                $var6 = $var6 - 1 | 0;
            var$8 = $this.$worldObj;
            $ptr = 4;
            continue main;
        }
        if ($par3) {
            var$9 = $this.$fallDistance;
            if (var$9 > 0.0) {
                $ptr = 3;
                continue main;
            }
        } else if ($par1 < 0.0)
            $this.$fallDistance = $this.$fallDistance - $par1;
        return;
    case 3:
        $this.$fall(var$9);
        if ($rt_suspending()) {
            break main;
        }
        $this.$fallDistance = 0.0;
        return;
    case 4:
        $tmp = nms_World_getBlockId(var$8, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!$var7) {
            var$8 = $this.$worldObj;
            var$10 = $var5 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        if ($var7 > 0) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var7];
            var$11 = $this.$worldObj;
            var$9 = $this.$fallDistance;
            $ptr = 6;
            continue main;
        }
        if ($par3) {
            var$9 = $this.$fallDistance;
            if (var$9 > 0.0) {
                $ptr = 3;
                continue main;
            }
        } else if ($par1 < 0.0)
            $this.$fallDistance = $this.$fallDistance - $par1;
        return;
    case 5:
        $tmp = nms_World_getBlockId(var$8, $var4, var$10, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        nms_Block_$callClinit();
        var$13 = nms_Block_blocksList.data;
        $var8 = var$13[var$12] === null ? (-1) : var$13[var$12].$getRenderType();
        if ($var8 != 11 && $var8 != 32 && $var8 != 21) {
            if ($var7 > 0) {
                nms_Block_$callClinit();
                var$8 = nms_Block_blocksList.data[$var7];
                var$11 = $this.$worldObj;
                var$9 = $this.$fallDistance;
                $ptr = 6;
                continue main;
            }
            if ($par3) {
                var$9 = $this.$fallDistance;
                if (var$9 > 0.0) {
                    $ptr = 3;
                    continue main;
                }
            } else if ($par1 < 0.0)
                $this.$fallDistance = $this.$fallDistance - $par1;
            return;
        }
        var$8 = $this.$worldObj;
        $ptr = 7;
        continue main;
    case 6:
        var$8.$onFallenUpon(var$11, $var4, $var5, $var6, $this, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($par3) {
            var$9 = $this.$fallDistance;
            if (var$9 > 0.0) {
                $ptr = 3;
                continue main;
            }
        } else if ($par1 < 0.0)
            $this.$fallDistance = $this.$fallDistance - $par1;
        return;
    case 7:
        $tmp = nms_World_getBlockId(var$8, $var4, var$10, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 > 0) {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var7];
            var$11 = $this.$worldObj;
            var$9 = $this.$fallDistance;
            $ptr = 6;
            continue main;
        }
        if ($par3) {
            var$9 = $this.$fallDistance;
            if (var$9 > 0.0) {
                $ptr = 3;
                continue main;
            }
        } else if ($par1 < 0.0)
            $this.$fallDistance = $this.$fallDistance - $par1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $var7, var$4, $var4, $var5, $var6, var$8, var$9, var$10, var$11, var$12, var$13, $var8, $ptr);
},
nms_EntityLivingBase_canBreatheUnderwater = $this => {
    return 0;
},
nms_EntityLivingBase_onEntityUpdate = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, $var2, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var2 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$prevSwingProgress = $this.$swingProgress;
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_EntityLivingBase_isEntityAlive($this)) {
            $ptr = 2;
            continue main;
        }
        if (!(!$this.$isImmuneToFire && !$this.$worldObj.$isRemote))
            $this.$fire = 0;
        $var1 = $this instanceof nms_EntityPlayer && $this.$capabilities.$disableDamage ? 1 : 0;
        if (nms_EntityLivingBase_isEntityAlive($this)) {
            nms_Material_$callClinit();
            var$2 = nms_Material_water;
            $ptr = 4;
            continue main;
        }
        var$2 = $this.$dataWatcher;
        var$3 = new jl_Short;
        var$3.$value6 = 300;
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[129];
        if (var$5 === null) {
            var$6 = var$4.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            $var2 = var$5.$value;
            var$8 = var$4.$elementData.data;
            var$6 = var$8[$var2 & (var$8.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == $var2) {
                    var$4 = var$6.$key;
                    if (var$5 !== var$4 && !(var$5 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == $var2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$4 = var$6 === null ? null : var$6.$value0;
        var$5 = var$4.$watchedObject;
        if (!(var$5 instanceof jl_Short && var$5.$value6 == var$3.$value6 ? 1 : 0)) {
            var$4.$watchedObject = var$3;
            var$4.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $this.$prevCameraPitch = $this.$cameraPitch;
        $var1 = $this.$attackTime;
        if ($var1 > 0)
            $this.$attackTime = $var1 - 1 | 0;
        $var1 = $this.$hurtTime;
        if ($var1 > 0)
            $this.$hurtTime = $var1 - 1 | 0;
        $var1 = $this.$hurtResistantTime;
        if ($var1 > 0)
            $this.$hurtResistantTime = $var1 - 1 | 0;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$3.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value3 <= 0.0) {
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 2:
        $tmp = $this.$isEntityInsideOpaqueBlock();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1) {
            var$2 = nms_DamageSource_inWall;
            var$10 = 1.0;
            $ptr = 3;
            continue main;
        }
        if (!(!$this.$isImmuneToFire && !$this.$worldObj.$isRemote))
            $this.$fire = 0;
        $var1 = $this instanceof nms_EntityPlayer && $this.$capabilities.$disableDamage ? 1 : 0;
        if (nms_EntityLivingBase_isEntityAlive($this)) {
            nms_Material_$callClinit();
            var$2 = nms_Material_water;
            $ptr = 4;
            continue main;
        }
        var$2 = $this.$dataWatcher;
        var$3 = new jl_Short;
        var$3.$value6 = 300;
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[129];
        if (var$5 === null) {
            var$6 = var$4.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            $var2 = var$5.$value;
            var$8 = var$4.$elementData.data;
            var$6 = var$8[$var2 & (var$8.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == $var2) {
                    var$4 = var$6.$key;
                    if (var$5 !== var$4 && !(var$5 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == $var2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$4 = var$6 === null ? null : var$6.$value0;
        var$5 = var$4.$watchedObject;
        if (!(var$5 instanceof jl_Short && var$5.$value6 == var$3.$value6 ? 1 : 0)) {
            var$4.$watchedObject = var$3;
            var$4.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $this.$prevCameraPitch = $this.$cameraPitch;
        $var1 = $this.$attackTime;
        if ($var1 > 0)
            $this.$attackTime = $var1 - 1 | 0;
        $var1 = $this.$hurtTime;
        if ($var1 > 0)
            $this.$hurtTime = $var1 - 1 | 0;
        $var1 = $this.$hurtResistantTime;
        if ($var1 > 0)
            $this.$hurtResistantTime = $var1 - 1 | 0;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$3.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value3 <= 0.0) {
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 3:
        $this.$attackEntityFrom(var$2, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if (!(!$this.$isImmuneToFire && !$this.$worldObj.$isRemote))
            $this.$fire = 0;
        $var1 = $this instanceof nms_EntityPlayer && $this.$capabilities.$disableDamage ? 1 : 0;
        if (nms_EntityLivingBase_isEntityAlive($this)) {
            nms_Material_$callClinit();
            var$2 = nms_Material_water;
            $ptr = 4;
            continue main;
        }
        var$2 = $this.$dataWatcher;
        var$3 = new jl_Short;
        var$3.$value6 = 300;
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[129];
        if (var$5 === null) {
            var$6 = var$4.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            $var2 = var$5.$value;
            var$8 = var$4.$elementData.data;
            var$6 = var$8[$var2 & (var$8.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == $var2) {
                    var$4 = var$6.$key;
                    if (var$5 !== var$4 && !(var$5 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == $var2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$4 = var$6 === null ? null : var$6.$value0;
        var$5 = var$4.$watchedObject;
        if (!(var$5 instanceof jl_Short && var$5.$value6 == var$3.$value6 ? 1 : 0)) {
            var$4.$watchedObject = var$3;
            var$4.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $this.$prevCameraPitch = $this.$cameraPitch;
        $var1 = $this.$attackTime;
        if ($var1 > 0)
            $this.$attackTime = $var1 - 1 | 0;
        $var1 = $this.$hurtTime;
        if ($var1 > 0)
            $this.$hurtTime = $var1 - 1 | 0;
        $var1 = $this.$hurtResistantTime;
        if ($var1 > 0)
            $this.$hurtResistantTime = $var1 - 1 | 0;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$3.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value3 <= 0.0) {
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_Entity_isInsideOfMaterial($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!$var2) {
            var$2 = $this.$dataWatcher;
            var$3 = new jl_Short;
            var$3.$value6 = 300;
            var$4 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[129];
            if (var$5 === null) {
                var$6 = var$4.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                $var2 = var$5.$value;
                var$8 = var$4.$elementData.data;
                var$6 = var$8[$var2 & (var$8.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == $var2) {
                        var$4 = var$6.$key;
                        if (var$5 !== var$4 && !(var$5 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == $var2 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$4 = var$6 === null ? null : var$6.$value0;
            var$5 = var$4.$watchedObject;
            if (!(var$5 instanceof jl_Short && var$5.$value6 == var$3.$value6 ? 1 : 0)) {
                var$4.$watchedObject = var$3;
                var$4.$watched = 1;
                var$2.$objectChanged = 1;
            }
        } else {
            if (!$this.$canBreatheUnderwater()) {
                nms_Potion_$callClinit();
                if (!nms_EntityLivingBase_isPotionActive($this, nms_Potion_waterBreathing.$id0) && !$var1) {
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$3 = jl_Integer_integerCache.data[129];
                    if (var$3 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        var$9 = var$3.$value;
                        var$8 = var$2.$elementData.data;
                        var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == var$9) {
                                var$5 = var$2.$key;
                                if (var$3 !== var$5 && !(var$3 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    var$2 = var$2 === null ? null : var$2.$value0;
                    $var1 = $this.$decreaseAirSupply(var$2.$watchedObject.$value6);
                    var$2 = $this.$dataWatcher;
                    $var1 = $var1 << 16 >> 16;
                    if ($var1 >= (-128) && $var1 <= 127) {
                        jl_Short_ensureShortCache();
                        var$5 = jl_Short_shortCache.data[$var1 + 128 | 0];
                    } else {
                        var$5 = new jl_Short;
                        var$5.$value6 = $var1;
                    }
                    var$3 = var$2.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[129];
                    if (var$6 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$9 = var$6.$value;
                        var$8 = var$3.$elementData.data;
                        var$3 = var$8[var$9 & (var$8.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$9) {
                                var$4 = var$3.$key;
                                if (var$6 !== var$4 && !(var$6 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$9 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$4 = var$3 === null ? null : var$3.$value0;
                    var$3 = var$4.$watchedObject;
                    if (!(var$3 instanceof jl_Short && var$3.$value6 == var$5.$value6 ? 1 : 0)) {
                        var$4.$watchedObject = var$5;
                        var$4.$watched = 1;
                        var$2.$objectChanged = 1;
                    }
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$3 = jl_Integer_integerCache.data[129];
                    if (var$3 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        var$9 = var$3.$value;
                        var$8 = var$2.$elementData.data;
                        var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == var$9) {
                                var$5 = var$2.$key;
                                if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value6 == (-20)) {
                        var$2 = $this.$dataWatcher;
                        jl_Short_ensureShortCache();
                        var$6 = jl_Short_shortCache.data[128];
                        var$5 = var$2.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$4 = jl_Integer_integerCache.data[129];
                        if (var$4 === null) {
                            var$5 = var$5.$elementData.data[0];
                            while (var$5 !== null && var$5.$key !== null) {
                                var$5 = var$5.$next3;
                            }
                        } else {
                            var$9 = var$4.$value;
                            var$8 = var$5.$elementData.data;
                            var$5 = var$8[var$9 & (var$8.length - 1 | 0)];
                            while (var$5 !== null) {
                                if (var$5.$origKeyHash == var$9) {
                                    var$3 = var$5.$key;
                                    if (var$4 !== var$3 && !(var$4 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$9 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$5 = var$5.$next3;
                            }
                        }
                        var$3 = var$5 === null ? null : var$5.$value0;
                        var$5 = var$3.$watchedObject;
                        if (!(var$5 instanceof jl_Short && var$5.$value6 == var$6.$value6 ? 1 : 0)) {
                            var$3.$watchedObject = var$6;
                            var$3.$watched = 1;
                            var$2.$objectChanged = 1;
                        }
                        $var2 = 0;
                        a: while (true) {
                            if ($var2 >= 8) {
                                var$2 = nms_DamageSource_drown;
                                var$10 = 2.0;
                                $ptr = 9;
                                continue main;
                            }
                            var$2 = $this.$rand;
                            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$11;
                            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$11;
                            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$11;
                            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$11;
                            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$11;
                            var$2.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2 = $this.$worldObj;
                            $var1 = 0;
                            while (true) {
                                var$9 = $rt_compare($var1, var$2.$worldAccesses.$size0);
                                if (var$9 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break a;
                                if (var$9 >= 0)
                                    break a;
                                $var1 = $var1 + 1 | 0;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        var$2 = new jl_IndexOutOfBoundsException;
                        var$2.$suppressionEnabled = 1;
                        var$2.$writableStackTrace = 1;
                        $rt_throw(var$2);
                    }
                }
            }
            $this.$fire = 0;
            if (!$this.$worldObj.$isRemote) {
                var$2 = $this.$ridingEntity;
                if ((var$2 === null ? 0 : 1) && var$2 instanceof nms_EntityLivingBase) {
                    var$2 = null;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        $this.$prevCameraPitch = $this.$cameraPitch;
        $var1 = $this.$attackTime;
        if ($var1 > 0)
            $this.$attackTime = $var1 - 1 | 0;
        $var1 = $this.$hurtTime;
        if ($var1 > 0)
            $this.$hurtTime = $var1 - 1 | 0;
        $var1 = $this.$hurtResistantTime;
        if ($var1 > 0)
            $this.$hurtResistantTime = $var1 - 1 | 0;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$3.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value3 <= 0.0) {
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 5:
        $this.$mountEntity(var$2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$prevCameraPitch = $this.$cameraPitch;
        $var1 = $this.$attackTime;
        if ($var1 > 0)
            $this.$attackTime = $var1 - 1 | 0;
        $var1 = $this.$hurtTime;
        if ($var1 > 0)
            $this.$hurtTime = $var1 - 1 | 0;
        $var1 = $this.$hurtResistantTime;
        if ($var1 > 0)
            $this.$hurtResistantTime = $var1 - 1 | 0;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$3.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value3 <= 0.0) {
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 6:
        $this.$onDeathUpdate();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
    case 7:
        nms_EntityLivingBase_updatePotionEffects($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_70763_ax = $this.$field_70764_aw;
        $this.$prevRenderYawOffset = $this.$renderYawOffset;
        $this.$prevRotationYawHead = $this.$rotationYawHead;
        $this.$prevRotationYaw = $this.$rotationYaw;
        $this.$prevRotationPitch = $this.$rotationPitch;
        return;
    case 8:
        $this.$setRevengeTarget(var$2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
        continue main;
    case 9:
        $this.$attackEntityFrom(var$2, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $this.$fire = 0;
        if (!$this.$worldObj.$isRemote) {
            var$2 = $this.$ridingEntity;
            if ((var$2 === null ? 0 : 1) && var$2 instanceof nms_EntityLivingBase) {
                var$2 = null;
                $ptr = 5;
                continue main;
            }
        }
        $this.$prevCameraPitch = $this.$cameraPitch;
        $var1 = $this.$attackTime;
        if ($var1 > 0)
            $this.$attackTime = $var1 - 1 | 0;
        $var1 = $this.$hurtTime;
        if ($var1 > 0)
            $this.$hurtTime = $var1 - 1 | 0;
        $var1 = $this.$hurtResistantTime;
        if ($var1 > 0)
            $this.$hurtResistantTime = $var1 - 1 | 0;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$3.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$9 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value3 <= 0.0) {
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$recentlyHit;
        if ($var1 <= 0)
            $this.$attackingPlayer = null;
        else
            $this.$recentlyHit = $var1 - 1 | 0;
        var$2 = $this.$lastAttacker;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2))
            $this.$lastAttacker = null;
        var$2 = $this.$entityLivingToAttack;
        if (var$2 !== null && !nms_EntityLivingBase_isEntityAlive(var$2)) {
            var$2 = null;
            $ptr = 8;
            continue main;
        }
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, $var2, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityLivingBase_isChild = $this => {
    return 0;
},
nms_EntityLivingBase_onDeathUpdate = $this => {
    let $var1, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$deathTime + 1 | 0;
        $this.$deathTime = $var1;
        if ($var1 != 20)
            return;
        if (!$this.$worldObj.$isRemote && !($this.$recentlyHit <= 0 && !$this.$isPlayer()) && !$this.$isChild()) {
            a: {
                var$2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                var$3 = $rt_s(1984);
                var$4 = $rt_s(1984);
                if (var$3 !== var$4) {
                    $var2 = var$3.$nativeString.length;
                    var$6 = var$4.$nativeString.length;
                    if ($var2 < var$6)
                        var$6 = $var2;
                    var$7 = 0;
                    b: {
                        while (true) {
                            if (var$7 >= var$6) {
                                var$3.$nativeString.length;
                                var$4.$nativeString.length;
                                break a;
                            }
                            if (var$7 < 0)
                                break b;
                            if (var$7 >= var$3.$nativeString.length)
                                break b;
                            $var2 = var$3.$nativeString.charCodeAt(var$7);
                            if (var$7 < 0)
                                break;
                            if (var$7 >= var$4.$nativeString.length)
                                break;
                            if ($var2 - var$4.$nativeString.charCodeAt(var$7) | 0)
                                break a;
                            var$7 = var$7 + 1 | 0;
                        }
                        var$4 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$4);
                        $rt_throw(var$4);
                    }
                    var$4 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$4);
                    $rt_throw(var$4);
                }
            }
            var$4 = $rt_s(1984);
            c: {
                d: {
                    e: while (true) {
                        if (var$2 === null) {
                            var$2 = null;
                            break c;
                        }
                        f: {
                            var$3 = var$2.$key0;
                            if (var$4 === var$3)
                                $var1 = 0;
                            else {
                                $var2 = var$4.$nativeString.length;
                                var$7 = var$3.$nativeString.length;
                                if ($var2 < var$7)
                                    var$7 = $var2;
                                $var2 = 0;
                                while (true) {
                                    if ($var2 >= var$7) {
                                        $var1 = var$4.$nativeString.length - var$3.$nativeString.length | 0;
                                        break f;
                                    }
                                    if ($var2 < 0)
                                        break d;
                                    if ($var2 >= var$4.$nativeString.length)
                                        break d;
                                    var$6 = var$4.$nativeString.charCodeAt($var2);
                                    if ($var2 < 0)
                                        break e;
                                    if ($var2 >= var$3.$nativeString.length)
                                        break e;
                                    $var1 = var$6 - var$3.$nativeString.charCodeAt($var2) | 0;
                                    if ($var1)
                                        break;
                                    $var2 = $var2 + 1 | 0;
                                }
                            }
                        }
                        if (!$var1)
                            break c;
                        var$2 = $var1 >= 0 ? var$2.$right : var$2.$left;
                    }
                    var$4 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$4);
                    $rt_throw(var$4);
                }
                var$4 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$4);
                $rt_throw(var$4);
            }
            var$4 = var$2 === null ? null : var$2.$value2;
            if (var$4 === null ? 0 : var$4.$valueBoolean) {
                $var1 = $this.$getExperiencePoints($this.$attackingPlayer);
                if ($var1 > 0) {
                    $var2 = nms_EntityXPOrb_getXPSplit($var1);
                    $var1 = $var1 - $var2 | 0;
                    var$4 = $this.$worldObj;
                    var$2 = new nms_EntityXPOrb;
                    var$8 = $this.$posX;
                    var$9 = $this.$posY;
                    var$10 = $this.$posZ;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        g: {
            while ($var1 < 20) {
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                var$4 = $this.$worldObj;
                var$2 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$2.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2 = 0;
                while (true) {
                    var$6 = $rt_compare($var2, var$4.$worldAccesses.$size0);
                    if (var$6 >= 0)
                        break;
                    if ($var2 < 0)
                        break g;
                    if (var$6 >= 0)
                        break g;
                    $var2 = $var2 + 1 | 0;
                }
                $var1 = $var1 + 1 | 0;
            }
            return;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    case 2:
        nms_EntityXPOrb__init_(var$2, var$4, var$8, var$9, var$10, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$4, var$2);
        if ($rt_suspending()) {
            break main;
        }
        if ($var1 <= 0) {
            $ptr = 1;
            continue main;
        }
        $var2 = nms_EntityXPOrb_getXPSplit($var1);
        $var1 = $var1 - $var2 | 0;
        var$4 = $this.$worldObj;
        var$2 = new nms_EntityXPOrb;
        var$8 = $this.$posX;
        var$9 = $this.$posY;
        var$10 = $this.$posZ;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityLivingBase_decreaseAirSupply = ($this, $par1) => {
    let var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9;
    nms_EnchantmentHelper_$callClinit();
    nms_Enchantment_$callClinit();
    var$2 = nms_Enchantment_respiration.$effectId;
    var$3 = $this.$getLastActiveItems();
    if (var$3 === null)
        $var2 = 0;
    else {
        var$3 = var$3.data;
        $var2 = 0;
        var$5 = var$3.length;
        var$6 = 0;
        while (var$6 < var$5) {
            var$7 = nms_EnchantmentHelper_getEnchantmentLevel(var$2, var$3[var$6]);
            if (var$7 > $var2)
                $var2 = var$7;
            var$6 = var$6 + 1 | 0;
        }
    }
    a: {
        if ($var2 > 0) {
            var$8 = $this.$rand;
            $var2 = $var2 + 1 | 0;
            var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$9;
            var$7 = Long_lo(Long_shru(var$9, 17));
            var$5 = $var2 - 1 | 0;
            if (!($var2 & var$5))
                var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt($var2), Long_fromInt(var$7)), 31));
            else
                while (true) {
                    var$6 = var$7 % $var2 | 0;
                    if (((var$7 - var$6 | 0) + var$5 | 0) >= 0)
                        break;
                    var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$8.$seed = var$9;
                    var$7 = Long_lo(Long_shru(var$9, 17));
                }
            if (var$6 > 0)
                break a;
        }
        $par1 = $par1 - 1 | 0;
    }
    return $par1;
},
nms_EntityLivingBase_isPlayer = $this => {
    return 0;
},
nms_EntityLivingBase_getRNG = $this => {
    return $this.$rand;
},
nms_EntityLivingBase_getAITarget = $this => {
    return $this.$entityLivingToAttack;
},
nms_EntityLivingBase_func_142015_aE = $this => {
    return $this.$revengeTimer;
},
nms_EntityLivingBase_setRevengeTarget = ($this, $par1EntityLivingBase) => {
    $this.$entityLivingToAttack = $par1EntityLivingBase;
    $this.$revengeTimer = $this.$ticksExisted;
},
nms_EntityLivingBase_getAge = $this => {
    return $this.$entityAge;
},
nms_EntityLivingBase_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let $var6, $var4, $var7, $var8, var$6, var$7, var$8, $var3, $var2, var$11, var$12, $var5, var$14, var$15;
    $var6 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    $var4 = jl_Integer_integerCache.data[134];
    if ($var4 === null) {
        $var7 = $var6.$elementData.data[0];
        while ($var7 !== null && $var7.$key !== null) {
            $var7 = $var7.$next3;
        }
    } else {
        $var8 = $var4.$value;
        var$6 = $var6.$elementData.data;
        $var7 = var$6[$var8 & (var$6.length - 1 | 0)];
        while ($var7 !== null) {
            if ($var7.$origKeyHash == $var8) {
                $var6 = $var7.$key;
                if ($var4 !== $var6 && !($var4 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == $var8 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var7 = $var7.$next3;
        }
    }
    var$7 = ($var7 === null ? null : $var7.$value0).$watchedObject.$value3;
    $var6 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagFloat;
    $var4.$name = $rt_s(1985);
    $var4.$data5 = var$7;
    ju_HashMap_putImpl($var6, $rt_s(1985), $var4);
    $var4 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    $var7 = jl_Integer_integerCache.data[134];
    if ($var7 === null) {
        $var4 = $var4.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        var$8 = $var7.$value;
        var$6 = $var4.$elementData.data;
        $var4 = var$6[var$8 & (var$6.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$8) {
                $var6 = $var4.$key;
                if ($var7 !== $var6 && !($var7 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == var$8 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    $var3 = (jl_Math_ceil(($var4 === null ? null : $var4.$value0).$watchedObject.$value3) | 0) << 16 >> 16;
    $var6 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagShort;
    $var4.$name = $rt_s(1986);
    $var4.$data2 = $var3;
    ju_HashMap_putImpl($var6, $rt_s(1986), $var4);
    $var3 = $this.$hurtTime << 16 >> 16;
    $var6 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagShort;
    $var4.$name = $rt_s(1987);
    $var4.$data2 = $var3;
    ju_HashMap_putImpl($var6, $rt_s(1987), $var4);
    $var3 = $this.$deathTime << 16 >> 16;
    $var6 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagShort;
    $var4.$name = $rt_s(1988);
    $var4.$data2 = $var3;
    ju_HashMap_putImpl($var6, $rt_s(1988), $var4);
    $var3 = $this.$attackTime << 16 >> 16;
    $var6 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagShort;
    $var4.$name = $rt_s(1989);
    $var4.$data2 = $var3;
    ju_HashMap_putImpl($var6, $rt_s(1989), $var4);
    var$7 = $this.$getAbsorptionAmount();
    $var6 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagFloat;
    $var4.$name = $rt_s(1990);
    $var4.$data5 = var$7;
    ju_HashMap_putImpl($var6, $rt_s(1990), $var4);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    $var4 = new ju_ArrayList;
    $var4.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = $var4;
    $var3 = 0;
    while ($var3 < $this.$previousEquipment.data.length) {
        $var4 = new nms_NBTTagCompound;
        $var4.$name = $rt_s(3);
        var$11 = new ju_HashMap;
        $var8 = ju_HashMap_calculateCapacity(16);
        var$11.$elementCount = 0;
        var$12 = $rt_createArray(ju_HashMap$HashEntry, $var8);
        var$6 = var$12.data;
        var$11.$elementData = var$12;
        var$11.$loadFactor = 0.75;
        var$11.$threshold = var$6.length * 0.75 | 0;
        $var4.$tagMap = var$11;
        var$6 = $this.$previousEquipment.data;
        if (var$6[$var3] !== null) {
            $var6 = var$6[$var3];
            $var8 = $var6.$itemID << 16 >> 16;
            $var5 = new nms_NBTTagShort;
            $var5.$name = $rt_s(914);
            $var5.$data2 = $var8;
            ju_HashMap_putImpl(var$11, $rt_s(914), $var5);
            $var8 = $var6.$stackSize << 24 >> 24;
            var$11 = $var4.$tagMap;
            $var5 = new nms_NBTTagByte;
            $var5.$name = $rt_s(915);
            $var5.$data0 = $var8;
            ju_HashMap_putImpl(var$11, $rt_s(915), $var5);
            $var8 = $var6.$itemDamage << 16 >> 16;
            var$11 = $var4.$tagMap;
            $var5 = new nms_NBTTagShort;
            $var5.$name = $rt_s(916);
            $var5.$data2 = $var8;
            ju_HashMap_putImpl(var$11, $rt_s(916), $var5);
            $var6 = $var6.$stackTagCompound;
            if ($var6 !== null) {
                $var5 = $var4.$tagMap;
                $var6.$name = $rt_s(917);
                ju_HashMap_putImpl($var5, $rt_s(917), $var6);
            }
        }
        $var2.$tagType = 10;
        $var6 = $var2.$tagList;
        ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
        var$6 = $var6.$array.data;
        var$8 = $var6.$size0;
        $var6.$size0 = var$8 + 1 | 0;
        var$6[var$8] = $var4;
        $var6.$modCount = $var6.$modCount + 1 | 0;
        $var3 = $var3 + 1 | 0;
    }
    $var6 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(1991);
    ju_HashMap_putImpl($var6, $rt_s(1991), $var2);
    $var2 = $this.$activePotionsMap;
    if (!($var2.$elementCount ? 0 : 1)) {
        $var6 = new nms_NBTTagList;
        $var6.$name = $rt_s(3);
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        $var6.$tagList = $var4;
        if ($var2.$cachedValues === null) {
            $var4 = new ju_HashMap$2;
            $var4.$this$01 = $var2;
            $var2.$cachedValues = $var4;
        }
        $var7 = $var2.$cachedValues.$iterator();
        while ($var7.$hasNext()) {
            $var5 = $var7.$next();
            $var2 = new nms_NBTTagCompound;
            $var2.$name = $rt_s(3);
            var$14 = new ju_HashMap;
            $var3 = ju_HashMap_calculateCapacity(16);
            var$14.$elementCount = 0;
            var$12 = $rt_createArray(ju_HashMap$HashEntry, $var3);
            var$6 = var$12.data;
            var$14.$elementData = var$12;
            var$14.$loadFactor = 0.75;
            var$14.$threshold = var$6.length * 0.75 | 0;
            $var2.$tagMap = var$14;
            $var3 = $var5.$potionID << 24 >> 24;
            var$11 = new nms_NBTTagByte;
            var$11.$name = $rt_s(1330);
            var$11.$data0 = $var3;
            ju_HashMap_putImpl(var$14, $rt_s(1330), var$11);
            $var3 = $var5.$amplifier << 24 >> 24;
            var$14 = $var2.$tagMap;
            var$11 = new nms_NBTTagByte;
            var$11.$name = $rt_s(1331);
            var$11.$data0 = $var3;
            ju_HashMap_putImpl(var$14, $rt_s(1331), var$11);
            $var3 = $var5.$duration;
            var$14 = $var2.$tagMap;
            var$11 = new nms_NBTTagInt;
            var$11.$name = $rt_s(1332);
            var$11.$data = $var3;
            ju_HashMap_putImpl(var$14, $rt_s(1332), var$11);
            $var3 = (!$var5.$isAmbient ? 0 : 1) << 24 >> 24;
            var$11 = $var2.$tagMap;
            $var5 = new nms_NBTTagByte;
            $var5.$name = $rt_s(1333);
            $var5.$data0 = $var3;
            ju_HashMap_putImpl(var$11, $rt_s(1333), $var5);
            $var6.$tagType = 10;
            $var4 = $var6.$tagList;
            ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
            var$6 = $var4.$array.data;
            $var8 = $var4.$size0;
            $var4.$size0 = $var8 + 1 | 0;
            var$6[$var8] = $var2;
            $var4.$modCount = $var4.$modCount + 1 | 0;
        }
        $var4 = $par1NBTTagCompound.$tagMap;
        $var6.$name = $rt_s(1992);
        ju_HashMap_putImpl($var4, $rt_s(1992), $var6);
    }
    $var6 = new nms_NBTTagList;
    $var6.$name = $rt_s(3);
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    $var6.$tagList = $var2;
    $var8 = 0;
    while (true) {
        if ($var8 >= $this.$equipmentDropChances0.data.length) {
            $var4 = $par1NBTTagCompound.$tagMap;
            $var6.$name = $rt_s(1993);
            ju_HashMap_putImpl($var4, $rt_s(1993), $var6);
            $var4 = nms_EntityLivingBase_func_94057_bL($this);
            $var7 = $par1NBTTagCompound.$tagMap;
            $var6 = new nms_NBTTagString;
            $var6.$name = $rt_s(1994);
            $var6.$data1 = $var4;
            if ($var4 === null) {
                $var2 = new jl_IllegalArgumentException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(177);
                $rt_throw($var2);
            }
            ju_HashMap_putImpl($var7, $rt_s(1994), $var6);
            $var3 = (!nms_EntityLivingBase_func_94062_bN($this) ? 0 : 1) << 24 >> 24;
            $var4 = $par1NBTTagCompound.$tagMap;
            $par1NBTTagCompound = new nms_NBTTagByte;
            $par1NBTTagCompound.$name = $rt_s(1995);
            $par1NBTTagCompound.$data0 = $var3;
            ju_HashMap_putImpl($var4, $rt_s(1995), $par1NBTTagCompound);
            return;
        }
        $var2 = new nms_NBTTagFloat;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert0($var4, $var4.$length0, $var8, 10);
        $var7 = new jl_String;
        var$6 = $var4.$buffer;
        var$12 = var$6.data;
        var$8 = $var4.$length0;
        var$15 = var$12.length;
        if (var$8 < 0)
            break;
        if (var$8 > (var$15 - 0 | 0))
            break;
        $var7.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        var$7 = $this.$equipmentDropChances0.data[$var8];
        $var2.$name = $var7;
        $var2.$data5 = var$7;
        $var6.$tagType = 5;
        $var4 = $var6.$tagList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$6 = $var4.$array.data;
        var$8 = $var4.$size0;
        $var4.$size0 = var$8 + 1 | 0;
        var$6[var$8] = $var2;
        $var4.$modCount = $var4.$modCount + 1 | 0;
        $var8 = $var8 + 1 | 0;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
    $rt_throw($par1NBTTagCompound);
},
nms_EntityLivingBase_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, var$4, $var4, var$6, var$7, var$8, $var6, $var5, var$11, var$12, var$13, var$14, var$15;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1990).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1990).$nativeString.length)
                    break a;
                $rt_s(1990).$hashCode1 = (31 * $rt_s(1990).$hashCode1 | 0) + $rt_s(1990).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(1990).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var3) {
            b: {
                $var4 = $var2.$key;
                if ($rt_s(1990) !== $var4) {
                    if ($rt_s(1990) === $var4)
                        var$6 = 1;
                    else if (!($var4 instanceof jl_String))
                        var$6 = 0;
                    else {
                        $var4 = $var4;
                        var$6 = $rt_s(1990).$nativeString !== $var4.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1990) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(1990).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1990).$nativeString.length)
                            break c;
                        $rt_s(1990).$hashCode1 = (31 * $rt_s(1990).$hashCode1 | 0) + $rt_s(1990).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(1990).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var3) {
                    d: {
                        $var4 = $var2.$key;
                        if ($rt_s(1990) !== $var4) {
                            if ($rt_s(1990) === $var4)
                                var$6 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$6 = 0;
                            else {
                                $var4 = $var4;
                                var$6 = $rt_s(1990).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$7 = ($var2 === null ? null : $var2.$value0).$data5;
    } else
        var$7 = 0.0;
    e: {
        $this.$setAbsorptionAmount(var$7);
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1996).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1996).$nativeString.length)
                    break e;
                $rt_s(1996).$hashCode1 = (31 * $rt_s(1996).$hashCode1 | 0) + $rt_s(1996).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(1996).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$8) {
            f: {
                $var4 = $var2.$key;
                if ($rt_s(1996) !== $var4) {
                    if ($rt_s(1996) !== $var4) {
                        if (!($var4 instanceof jl_String))
                            $var3 = 0;
                        else {
                            $var4 = $var4;
                            $var3 = $rt_s(1996).$nativeString !== $var4.$nativeString ? 0 : 1;
                        }
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var6 = $this.$worldObj;
        if ($var6 !== null && !$var6.$isRemote) {
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            g: {
                $var5 = $this.$attributeMap;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1996).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1996).$nativeString.length)
                            break g;
                        $rt_s(1996).$hashCode1 = (31 * $rt_s(1996).$hashCode1 | 0) + $rt_s(1996).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(1996).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    h: {
                        $var4 = $var2.$key;
                        if ($rt_s(1996) !== $var4) {
                            if ($rt_s(1996) === $var4)
                                $var3 = 1;
                            else if (!($var4 instanceof jl_String))
                                $var3 = 0;
                            else {
                                $var4 = $var4;
                                $var3 = $rt_s(1996).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1)) {
                $var2 = new nms_NBTTagList;
                if ($rt_s(1996) !== null)
                    $var2.$name = $rt_s(1996);
                else
                    $var2.$name = $rt_s(3);
                $var6 = new ju_ArrayList;
                $var6.$array = $rt_createArray(jl_Object, 10);
                $var2.$tagList = $var6;
            } else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1996) !== null) {
                    i: {
                        if (!$rt_s(1996).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(1996).$nativeString.length)
                                    break i;
                                $rt_s(1996).$hashCode1 = (31 * $rt_s(1996).$hashCode1 | 0) + $rt_s(1996).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(1996).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$8) {
                            j: {
                                $var4 = $var2.$key;
                                if ($rt_s(1996) !== $var4) {
                                    if ($rt_s(1996) === $var4)
                                        $var3 = 1;
                                    else if ($var4 instanceof jl_String) {
                                        $var4 = $var4;
                                        $var3 = $rt_s(1996).$nativeString !== $var4.$nativeString ? 0 : 1;
                                    } else
                                        $var3 = 0;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break j;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                }
                $var2 = $var2 === null ? null : $var2.$value0;
            }
            nms_SharedMonsterAttributes_func_111260_a($var5, $var2);
        }
    }
    k: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1992).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1992).$nativeString.length)
                    break k;
                $rt_s(1992).$hashCode1 = (31 * $rt_s(1992).$hashCode1 | 0) + $rt_s(1992).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(1992).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$8) {
            l: {
                $var4 = $var2.$key;
                if ($rt_s(1992) !== $var4) {
                    if ($rt_s(1992) !== $var4) {
                        if ($var4 instanceof jl_String) {
                            $var4 = $var4;
                            $var3 = $rt_s(1992).$nativeString !== $var4.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break l;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    $var3 = $var2 === null ? 0 : 1;
    m: {
        n: {
            if ($var3) {
                o: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1992).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1992).$nativeString.length)
                                break o;
                            $rt_s(1992).$hashCode1 = (31 * $rt_s(1992).$hashCode1 | 0) + $rt_s(1992).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(1992).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$8) {
                        p: {
                            $var4 = $var2.$key;
                            if ($rt_s(1992) !== $var4) {
                                if ($rt_s(1992) !== $var4) {
                                    if ($var4 instanceof jl_String) {
                                        $var4 = $var4;
                                        $var3 = $rt_s(1992).$nativeString !== $var4.$nativeString ? 0 : 1;
                                    } else
                                        $var3 = 0;
                                } else
                                    $var3 = 1;
                                if (!$var3) {
                                    $var3 = 0;
                                    break p;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if ($var2 === null ? 0 : 1) {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(1992) === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        q: {
                            if (!$rt_s(1992).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(1992).$nativeString.length)
                                        break q;
                                    $rt_s(1992).$hashCode1 = (31 * $rt_s(1992).$hashCode1 | 0) + $rt_s(1992).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(1992).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$8) {
                                r: {
                                    $var4 = $var2.$key;
                                    if ($rt_s(1992) !== $var4) {
                                        if ($rt_s(1992) === $var4)
                                            $var3 = 1;
                                        else if (!($var4 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            $var4 = $var4;
                                            $var3 = $rt_s(1992).$nativeString !== $var4.$nativeString ? 0 : 1;
                                        }
                                        if (!$var3) {
                                            $var3 = 0;
                                            break r;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = $var2 === null ? null : $var2.$value0;
                } else {
                    $var2 = new nms_NBTTagList;
                    if ($rt_s(1992) !== null)
                        $var2.$name = $rt_s(1992);
                    else
                        $var2.$name = $rt_s(3);
                    $var6 = new ju_ArrayList;
                    $var6.$array = $rt_createArray(jl_Object, 10);
                    $var2.$tagList = $var6;
                }
                $var3 = 0;
                while (true) {
                    $var6 = $var2.$tagList;
                    var$6 = $rt_compare($var3, $var6.$size0);
                    if (var$6 >= 0)
                        break n;
                    if ($var3 < 0)
                        break m;
                    if (var$6 >= 0)
                        break m;
                    s: {
                        $var4 = $var6.$array.data[$var3];
                        $var5 = $var4.$tagMap;
                        if (!$rt_s(1330).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(1330).$nativeString.length)
                                    break s;
                                $rt_s(1330).$hashCode1 = (31 * $rt_s(1330).$hashCode1 | 0) + $rt_s(1330).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1330).$hashCode1;
                    var$4 = $var5.$elementData.data;
                    $var5 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$11) {
                            t: {
                                var$12 = $var5.$key;
                                if ($rt_s(1330) !== var$12) {
                                    if ($rt_s(1330) !== var$12) {
                                        if (!(var$12 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$12 = var$12;
                                            var$6 = $rt_s(1330).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                    } else
                                        var$6 = 1;
                                    if (!var$6) {
                                        var$6 = 0;
                                        break t;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if ($var5 === null ? 0 : 1) {
                        $var5 = $var4.$tagMap;
                        if ($rt_s(1330) === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            u: {
                                if (!$rt_s(1330).$hashCode1) {
                                    var$6 = 0;
                                    while (true) {
                                        if (var$6 >= $rt_s(1330).$nativeString.length)
                                            break u;
                                        $rt_s(1330).$hashCode1 = (31 * $rt_s(1330).$hashCode1 | 0) + $rt_s(1330).$nativeString.charCodeAt(var$6) | 0;
                                        var$6 = var$6 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1330).$hashCode1;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    v: {
                                        var$12 = $var5.$key;
                                        if ($rt_s(1330) !== var$12) {
                                            if ($rt_s(1330) === var$12)
                                                var$6 = 1;
                                            else if (!(var$12 instanceof jl_String))
                                                var$6 = 0;
                                            else {
                                                var$12 = var$12;
                                                var$6 = $rt_s(1330).$nativeString !== var$12.$nativeString ? 0 : 1;
                                            }
                                            if (!var$6) {
                                                var$6 = 0;
                                                break v;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$13 = ($var5 === null ? null : $var5.$value0).$data0;
                    } else
                        var$13 = 0;
                    w: {
                        $var5 = $var4.$tagMap;
                        if (!$rt_s(1331).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(1331).$nativeString.length)
                                    break w;
                                $rt_s(1331).$hashCode1 = (31 * $rt_s(1331).$hashCode1 | 0) + $rt_s(1331).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1331).$hashCode1;
                    var$4 = $var5.$elementData.data;
                    $var5 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$11) {
                            x: {
                                var$12 = $var5.$key;
                                if ($rt_s(1331) !== var$12) {
                                    if ($rt_s(1331) !== var$12) {
                                        if (var$12 instanceof jl_String) {
                                            var$12 = var$12;
                                            var$6 = $rt_s(1331).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        } else
                                            var$6 = 0;
                                    } else
                                        var$6 = 1;
                                    if (!var$6) {
                                        var$6 = 0;
                                        break x;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if ($var5 === null ? 0 : 1) {
                        $var5 = $var4.$tagMap;
                        if ($rt_s(1331) !== null) {
                            y: {
                                if (!$rt_s(1331).$hashCode1) {
                                    var$6 = 0;
                                    while (true) {
                                        if (var$6 >= $rt_s(1331).$nativeString.length)
                                            break y;
                                        $rt_s(1331).$hashCode1 = (31 * $rt_s(1331).$hashCode1 | 0) + $rt_s(1331).$nativeString.charCodeAt(var$6) | 0;
                                        var$6 = var$6 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1331).$hashCode1;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    z: {
                                        var$12 = $var5.$key;
                                        if ($rt_s(1331) !== var$12) {
                                            if ($rt_s(1331) !== var$12) {
                                                if (var$12 instanceof jl_String) {
                                                    var$12 = var$12;
                                                    var$6 = $rt_s(1331).$nativeString !== var$12.$nativeString ? 0 : 1;
                                                } else
                                                    var$6 = 0;
                                            } else
                                                var$6 = 1;
                                            if (!var$6) {
                                                var$6 = 0;
                                                break z;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        }
                        var$14 = ($var5 === null ? null : $var5.$value0).$data0;
                    } else
                        var$14 = 0;
                    ba: {
                        $var5 = $var4.$tagMap;
                        if (!$rt_s(1332).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(1332).$nativeString.length)
                                    break ba;
                                $rt_s(1332).$hashCode1 = (31 * $rt_s(1332).$hashCode1 | 0) + $rt_s(1332).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1332).$hashCode1;
                    var$4 = $var5.$elementData.data;
                    $var5 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$11) {
                            bb: {
                                var$12 = $var5.$key;
                                if ($rt_s(1332) !== var$12) {
                                    if ($rt_s(1332) === var$12)
                                        var$6 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$12 = var$12;
                                        var$6 = $rt_s(1332).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break bb;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if (!($var5 === null ? 0 : 1))
                        var$11 = 0;
                    else {
                        $var5 = $var4.$tagMap;
                        if ($rt_s(1332) === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            bc: {
                                if (!$rt_s(1332).$hashCode1) {
                                    var$6 = 0;
                                    while (true) {
                                        if (var$6 >= $rt_s(1332).$nativeString.length)
                                            break bc;
                                        $rt_s(1332).$hashCode1 = (31 * $rt_s(1332).$hashCode1 | 0) + $rt_s(1332).$nativeString.charCodeAt(var$6) | 0;
                                        var$6 = var$6 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1332).$hashCode1;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    bd: {
                                        var$12 = $var5.$key;
                                        if ($rt_s(1332) !== var$12) {
                                            if ($rt_s(1332) === var$12)
                                                var$6 = 1;
                                            else if (!(var$12 instanceof jl_String))
                                                var$6 = 0;
                                            else {
                                                var$12 = var$12;
                                                var$6 = $rt_s(1332).$nativeString !== var$12.$nativeString ? 0 : 1;
                                            }
                                            if (!var$6) {
                                                var$6 = 0;
                                                break bd;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$11 = ($var5 === null ? null : $var5.$value0).$data;
                    }
                    be: {
                        $var5 = $var4.$tagMap;
                        if (!$rt_s(1333).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(1333).$nativeString.length)
                                    break be;
                                $rt_s(1333).$hashCode1 = (31 * $rt_s(1333).$hashCode1 | 0) + $rt_s(1333).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$15 = $rt_s(1333).$hashCode1;
                    var$4 = $var5.$elementData.data;
                    $var5 = var$4[var$15 & (var$4.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$15) {
                            bf: {
                                var$12 = $var5.$key;
                                if ($rt_s(1333) !== var$12) {
                                    if ($rt_s(1333) === var$12)
                                        var$6 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$12 = var$12;
                                        var$6 = $rt_s(1333).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break bf;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                    if (!($var5 === null ? 0 : 1))
                        var$6 = 0;
                    else {
                        $var4 = $var4.$tagMap;
                        if ($rt_s(1333) === null) {
                            $var4 = $var4.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            bg: {
                                if (!$rt_s(1333).$hashCode1) {
                                    var$6 = 0;
                                    while (true) {
                                        if (var$6 >= $rt_s(1333).$nativeString.length)
                                            break bg;
                                        $rt_s(1333).$hashCode1 = (31 * $rt_s(1333).$hashCode1 | 0) + $rt_s(1333).$nativeString.charCodeAt(var$6) | 0;
                                        var$6 = var$6 + 1 | 0;
                                    }
                                }
                            }
                            var$15 = $rt_s(1333).$hashCode1;
                            var$4 = $var4.$elementData.data;
                            $var4 = var$4[var$15 & (var$4.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == var$15) {
                                    bh: {
                                        $var5 = $var4.$key;
                                        if ($rt_s(1333) !== $var5) {
                                            if ($rt_s(1333) === $var5)
                                                var$6 = 1;
                                            else if (!($var5 instanceof jl_String))
                                                var$6 = 0;
                                            else {
                                                $var5 = $var5;
                                                var$6 = $rt_s(1333).$nativeString !== $var5.$nativeString ? 0 : 1;
                                            }
                                            if (!var$6) {
                                                var$6 = 0;
                                                break bh;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        var$6 = ($var4 === null ? null : $var4.$value0).$data0;
                    }
                    var$6 = !var$6 ? 0 : 1;
                    $var5 = new nms_PotionEffect;
                    $var5.$potionID = var$13;
                    $var5.$duration = var$11;
                    $var5.$amplifier = var$14;
                    $var5.$isAmbient = var$6;
                    $var6 = $this.$activePotionsMap;
                    if (var$13 >= (-128) && var$13 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var4 = jl_Integer_integerCache.data[var$13 + 128 | 0];
                    } else {
                        $var4 = new jl_Integer;
                        $var4.$value = var$13;
                    }
                    ju_HashMap_putImpl($var6, $var4, $var5);
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        bi: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1985).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1985).$nativeString.length)
                        break bi;
                    $rt_s(1985).$hashCode1 = (31 * $rt_s(1985).$hashCode1 | 0) + $rt_s(1985).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(1985).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$8) {
                bj: {
                    $var4 = $var2.$key;
                    if ($rt_s(1985) !== $var4) {
                        if ($rt_s(1985) !== $var4) {
                            if ($var4 instanceof jl_String) {
                                $var4 = $var4;
                                $var3 = $rt_s(1985).$nativeString !== $var4.$nativeString ? 0 : 1;
                            } else
                                $var3 = 0;
                        } else
                            $var3 = 1;
                        if (!$var3) {
                            $var3 = 0;
                            break bj;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            bk: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1986).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1986).$nativeString.length)
                            break bk;
                        $rt_s(1986).$hashCode1 = (31 * $rt_s(1986).$hashCode1 | 0) + $rt_s(1986).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(1986).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    bl: {
                        $var4 = $var2.$key;
                        if ($rt_s(1986) !== $var4) {
                            if ($rt_s(1986) === $var4)
                                $var3 = 1;
                            else if (!($var4 instanceof jl_String))
                                $var3 = 0;
                            else {
                                $var4 = $var4;
                                $var3 = $rt_s(1986).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bl;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            $var6 = $var2 === null ? null : $var2.$value0;
            if ($var6 !== null) {
                if ($var6.$getId() == 5)
                    nms_EntityLivingBase_setHealth($this, $var6.$data5);
                else if ($var6.$getId() == 2)
                    nms_EntityLivingBase_setHealth($this, $var6.$data2);
            } else {
                $var6 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
                if ($var6.$field_111133_g) {
                    $var6.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var6);
                    $var6.$field_111133_g = 0;
                }
                nms_EntityLivingBase_setHealth($this, $var6.$field_111139_h);
            }
        } else {
            bm: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1985).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1985).$nativeString.length)
                            break bm;
                        $rt_s(1985).$hashCode1 = (31 * $rt_s(1985).$hashCode1 | 0) + $rt_s(1985).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(1985).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    bn: {
                        $var4 = $var2.$key;
                        if ($rt_s(1985) !== $var4) {
                            if ($rt_s(1985) === $var4)
                                $var3 = 1;
                            else if (!($var4 instanceof jl_String))
                                $var3 = 0;
                            else {
                                $var4 = $var4;
                                $var3 = $rt_s(1985).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bn;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                var$7 = 0.0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1985) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    bo: {
                        if (!$rt_s(1985).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(1985).$nativeString.length)
                                    break bo;
                                $rt_s(1985).$hashCode1 = (31 * $rt_s(1985).$hashCode1 | 0) + $rt_s(1985).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(1985).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$8) {
                            bp: {
                                $var4 = $var2.$key;
                                if ($rt_s(1985) !== $var4) {
                                    if ($rt_s(1985) === $var4)
                                        $var3 = 1;
                                    else if (!($var4 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        $var4 = $var4;
                                        $var3 = $rt_s(1985).$nativeString !== $var4.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bp;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                var$7 = ($var2 === null ? null : $var2.$value0).$data5;
            }
            nms_EntityLivingBase_setHealth($this, var$7);
        }
        bq: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1987).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1987).$nativeString.length)
                        break bq;
                    $rt_s(1987).$hashCode1 = (31 * $rt_s(1987).$hashCode1 | 0) + $rt_s(1987).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(1987).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$8) {
                br: {
                    $var4 = $var2.$key;
                    if ($rt_s(1987) !== $var4) {
                        if ($rt_s(1987) !== $var4) {
                            if ($var4 instanceof jl_String) {
                                $var4 = $var4;
                                $var3 = $rt_s(1987).$nativeString !== $var4.$nativeString ? 0 : 1;
                            } else
                                $var3 = 0;
                        } else
                            $var3 = 1;
                        if (!$var3) {
                            $var3 = 0;
                            break br;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            $var3 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1987) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                bs: {
                    if (!$rt_s(1987).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1987).$nativeString.length)
                                break bs;
                            $rt_s(1987).$hashCode1 = (31 * $rt_s(1987).$hashCode1 | 0) + $rt_s(1987).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(1987).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$8) {
                        bt: {
                            $var4 = $var2.$key;
                            if ($rt_s(1987) !== $var4) {
                                if ($rt_s(1987) === $var4)
                                    $var3 = 1;
                                else if (!($var4 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    $var4 = $var4;
                                    $var3 = $rt_s(1987).$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break bt;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var3 = ($var2 === null ? null : $var2.$value0).$data2;
        }
        bu: {
            $this.$hurtTime = $var3;
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1988).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1988).$nativeString.length)
                        break bu;
                    $rt_s(1988).$hashCode1 = (31 * $rt_s(1988).$hashCode1 | 0) + $rt_s(1988).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(1988).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$8) {
                bv: {
                    $var4 = $var2.$key;
                    if ($rt_s(1988) !== $var4) {
                        if ($rt_s(1988) === $var4)
                            $var3 = 1;
                        else if (!($var4 instanceof jl_String))
                            $var3 = 0;
                        else {
                            $var4 = $var4;
                            $var3 = $rt_s(1988).$nativeString !== $var4.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break bv;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            $var3 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1988) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                bw: {
                    if (!$rt_s(1988).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1988).$nativeString.length)
                                break bw;
                            $rt_s(1988).$hashCode1 = (31 * $rt_s(1988).$hashCode1 | 0) + $rt_s(1988).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(1988).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$8) {
                        bx: {
                            $var4 = $var2.$key;
                            if ($rt_s(1988) !== $var4) {
                                if ($rt_s(1988) === $var4)
                                    $var3 = 1;
                                else if (!($var4 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    $var4 = $var4;
                                    $var3 = $rt_s(1988).$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break bx;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var3 = ($var2 === null ? null : $var2.$value0).$data2;
        }
        by: {
            $this.$deathTime = $var3;
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1989).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1989).$nativeString.length)
                        break by;
                    $rt_s(1989).$hashCode1 = (31 * $rt_s(1989).$hashCode1 | 0) + $rt_s(1989).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(1989).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$8) {
                bz: {
                    $var4 = $var2.$key;
                    if ($rt_s(1989) !== $var4) {
                        if ($rt_s(1989) === $var4)
                            $var3 = 1;
                        else if (!($var4 instanceof jl_String))
                            $var3 = 0;
                        else {
                            $var4 = $var4;
                            $var3 = $rt_s(1989).$nativeString !== $var4.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break bz;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            $var3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1989) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                bA: {
                    if (!$rt_s(1989).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1989).$nativeString.length)
                                break bA;
                            $rt_s(1989).$hashCode1 = (31 * $rt_s(1989).$hashCode1 | 0) + $rt_s(1989).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(1989).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$8) {
                        bB: {
                            $var2 = $par1NBTTagCompound.$key;
                            if ($rt_s(1989) !== $var2) {
                                if ($rt_s(1989) === $var2)
                                    $var3 = 1;
                                else if (!($var2 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    $var2 = $var2;
                                    $var3 = $rt_s(1989).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break bB;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data2;
        }
        $this.$attackTime = $var3;
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_EntityLivingBase_updatePotionEffects = $this => {
    let $var1, $var2, $var3, var$4, var$5, var$6, $var12, $var11, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var11 = $thread.pop();$var12 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$activePotionsMap;
        if ($var1.$cachedKeySet === null) {
            $var2 = new ju_HashMap$1;
            $var2.$this$0 = $var1;
            $var1.$cachedKeySet = $var2;
        }
        $var1 = $var1.$cachedKeySet.$iterator();
        while ($var1.$hasNext()) {
            $var2 = $var1.$next();
            $var3 = $this.$activePotionsMap;
            if ($var2 === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                var$4 = $var2.$value;
                var$5 = $var3.$elementData.data;
                $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$4) {
                        var$6 = $var3.$key;
                        if ($var2 !== var$6 && !($var2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var3 = $var3 === null ? null : $var3.$value0;
            $var12 = $var3.$duration;
            if ($var12 > 0) {
                nms_Potion_$callClinit();
                if (nms_Potion_potionTypes.data[$var3.$potionID].$isReady($var12, $var3.$amplifier) && $var3.$duration > 0) {
                    $var2 = nms_Potion_potionTypes.data[$var3.$potionID];
                    $var12 = $var3.$amplifier;
                    $ptr = 1;
                    continue main;
                }
                $var3.$duration = $var3.$duration - 1 | 0;
            }
            $var11 = $var3.$duration;
            $var12 = $var11 <= 0 ? 0 : 1;
            a: {
                if (!$var12) {
                    if ($this.$worldObj.$isRemote)
                        break a;
                    else {
                        $var1.$remove();
                        $ptr = 3;
                        continue main;
                    }
                }
                if (!($var11 % 600 | 0)) {
                    $var12 = 0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        if ($this.$potionsNeedUpdate) {
            if (!$this.$worldObj.$isRemote) {
                $var1 = $this.$activePotionsMap;
                if (!($var1.$elementCount ? 0 : 1)) {
                    if ($var1.$cachedValues === null) {
                        $var2 = new ju_HashMap$2;
                        $var2.$this$01 = $var1;
                        $var1.$cachedValues = $var2;
                    }
                    $var11 = nms_PotionHelper_calcPotionLiquidColor($var1.$cachedValues);
                    $var1 = $this.$dataWatcher;
                    $var2 = $this.$activePotionsMap;
                    if ($var2.$cachedValues === null) {
                        $var3 = new ju_HashMap$2;
                        $var3.$this$01 = $var2;
                        $var2.$cachedValues = $var3;
                    }
                    $var2 = $var2.$cachedValues.$iterator();
                    b: {
                        while ($var2.$hasNext()) {
                            if (($var2.$next()).$isAmbient)
                                continue;
                            else {
                                $var12 = 0;
                                break b;
                            }
                        }
                        $var12 = 1;
                    }
                    $var12 = (!$var12 ? 0 : 1) << 24 >> 24;
                    var$6 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[136];
                    if (var$9 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$10 = var$9.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$10) {
                                $var3 = $var2.$key;
                                if (var$9 !== $var3 && !(var$9 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$10 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$6.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$6;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    if ($var11 >= (-128) && $var11 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var2 = jl_Integer_integerCache.data[$var11 + 128 | 0];
                    } else {
                        $var2 = new jl_Integer;
                        $var2.$value = $var11;
                    }
                    $var3 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        $var11 = var$6.$value;
                        var$5 = $var3.$elementData.data;
                        $var3 = var$5[$var11 & (var$5.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == $var11) {
                                var$9 = $var3.$key;
                                if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$6 = $var3 === null ? null : $var3.$value0;
                    $var3 = var$6.$watchedObject;
                    if (!($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var2.$value ? 1 : 0)) {
                        var$6.$watchedObject = $var2;
                        var$6.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Potion_$callClinit();
                    nms_Entity_setFlag($this, 5, nms_EntityLivingBase_isPotionActive($this, nms_Potion_invisibility.$id0));
                } else {
                    $var1 = $this.$dataWatcher;
                    var$9 = jl_Byte_byteCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[136];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 !== $var3 ? ($var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$9.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!(var$9 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$9.$value ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Entity_setFlag($this, 5, 0);
                }
            }
            $this.$potionsNeedUpdate = 0;
        }
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[135];
        if ($var2 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            $var12 = $var2.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[$var12 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == $var12) {
                    $var3 = $var1.$key;
                    if ($var2 !== $var3 && !($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var12 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        var$11 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[136];
        if ($var3 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$4 = $var3.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$4) {
                    $var2 = $var1.$key;
                    if ($var3 !== $var2 && !($var3 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        $var12 = $var1.$watchedObject.$value1 <= 0 ? 0 : 1;
        c: {
            if (var$11 > 0) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[128];
                if ($var3 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$10 = $var3.$value;
                    var$5 = $var1.$elementData.data;
                    $var1 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$10) {
                            $var2 = $var1.$key;
                            if ($var3 !== $var2 && !jl_Integer_equals($var3, $var2) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                $var1 = $var1 === null ? null : $var1.$value0;
                if (!(!($var1.$watchedObject.$value1 & 32) ? 0 : 1)) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    $var11 = !Long_lo(Long_shru(var$12, 47)) ? 0 : 1;
                } else {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$10 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$13 = var$10 % 15 | 0;
                        if (((var$10 - var$13 | 0) + 14 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$10 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = var$13 ? 0 : 1;
                }
                if ($var12) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$13 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$14 = var$13 % 5 | 0;
                        if (((var$13 - var$14 | 0) + 4 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$13 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = $var11 & (var$14 ? 0 : 1);
                }
                if ($var11 && var$11 > 0) {
                    $var1 = $this.$worldObj;
                    $var2 = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    $var2.$seed = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var12 = 0;
                    while (true) {
                        $var11 = $rt_compare($var12, $var1.$worldAccesses.$size0);
                        if ($var11 >= 0)
                            break;
                        if ($var12 < 0)
                            break c;
                        if ($var11 >= 0)
                            break c;
                        $var12 = $var12 + 1 | 0;
                    }
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        nms_Potion_performEffect($var2, $this, $var12);
        if ($rt_suspending()) {
            break main;
        }
        d: while (true) {
            while (true) {
                $var3.$duration = $var3.$duration - 1 | 0;
                while (true) {
                    $var11 = $var3.$duration;
                    $var12 = $var11 <= 0 ? 0 : 1;
                    e: {
                        if (!$var12) {
                            if ($this.$worldObj.$isRemote)
                                break e;
                            else {
                                $var1.$remove();
                                $ptr = 3;
                                continue main;
                            }
                        }
                        if (!($var11 % 600 | 0)) {
                            $var12 = 0;
                            $ptr = 2;
                            continue main;
                        }
                    }
                    if (!$var1.$hasNext())
                        break d;
                    $var2 = $var1.$next();
                    $var3 = $this.$activePotionsMap;
                    if ($var2 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        var$4 = $var2.$value;
                        var$5 = $var3.$elementData.data;
                        $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$4) {
                                var$6 = $var3.$key;
                                if ($var2 !== var$6 && !($var2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    $var3 = $var3 === null ? null : $var3.$value0;
                    $var12 = $var3.$duration;
                    if ($var12 <= 0)
                        continue;
                    else
                        break;
                }
                nms_Potion_$callClinit();
                if (!nms_Potion_potionTypes.data[$var3.$potionID].$isReady($var12, $var3.$amplifier))
                    continue;
                else
                    break;
            }
            if ($var3.$duration <= 0)
                continue;
            else {
                $var2 = nms_Potion_potionTypes.data[$var3.$potionID];
                $var12 = $var3.$amplifier;
                continue main;
            }
        }
        if ($this.$potionsNeedUpdate) {
            if (!$this.$worldObj.$isRemote) {
                $var1 = $this.$activePotionsMap;
                if (!($var1.$elementCount ? 0 : 1)) {
                    if ($var1.$cachedValues === null) {
                        $var2 = new ju_HashMap$2;
                        $var2.$this$01 = $var1;
                        $var1.$cachedValues = $var2;
                    }
                    $var11 = nms_PotionHelper_calcPotionLiquidColor($var1.$cachedValues);
                    $var1 = $this.$dataWatcher;
                    $var2 = $this.$activePotionsMap;
                    if ($var2.$cachedValues === null) {
                        $var3 = new ju_HashMap$2;
                        $var3.$this$01 = $var2;
                        $var2.$cachedValues = $var3;
                    }
                    $var2 = $var2.$cachedValues.$iterator();
                    b: {
                        while ($var2.$hasNext()) {
                            if (($var2.$next()).$isAmbient)
                                continue;
                            else {
                                $var12 = 0;
                                break b;
                            }
                        }
                        $var12 = 1;
                    }
                    $var12 = (!$var12 ? 0 : 1) << 24 >> 24;
                    var$6 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[136];
                    if (var$9 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$10 = var$9.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$10) {
                                $var3 = $var2.$key;
                                if (var$9 !== $var3 && !(var$9 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$10 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$6.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$6;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    if ($var11 >= (-128) && $var11 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var2 = jl_Integer_integerCache.data[$var11 + 128 | 0];
                    } else {
                        $var2 = new jl_Integer;
                        $var2.$value = $var11;
                    }
                    $var3 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        $var11 = var$6.$value;
                        var$5 = $var3.$elementData.data;
                        $var3 = var$5[$var11 & (var$5.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == $var11) {
                                var$9 = $var3.$key;
                                if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$6 = $var3 === null ? null : $var3.$value0;
                    $var3 = var$6.$watchedObject;
                    if (!($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var2.$value ? 1 : 0)) {
                        var$6.$watchedObject = $var2;
                        var$6.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Potion_$callClinit();
                    nms_Entity_setFlag($this, 5, nms_EntityLivingBase_isPotionActive($this, nms_Potion_invisibility.$id0));
                } else {
                    $var1 = $this.$dataWatcher;
                    var$9 = jl_Byte_byteCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[136];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 !== $var3 ? ($var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$9.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!(var$9 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$9.$value ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Entity_setFlag($this, 5, 0);
                }
            }
            $this.$potionsNeedUpdate = 0;
        }
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[135];
        if ($var2 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            $var12 = $var2.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[$var12 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == $var12) {
                    $var3 = $var1.$key;
                    if ($var2 !== $var3 && !($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var12 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        var$11 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[136];
        if ($var3 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$4 = $var3.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$4) {
                    $var2 = $var1.$key;
                    if ($var3 !== $var2 && !($var3 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        $var12 = $var1.$watchedObject.$value1 <= 0 ? 0 : 1;
        c: {
            if (var$11 > 0) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[128];
                if ($var3 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$10 = $var3.$value;
                    var$5 = $var1.$elementData.data;
                    $var1 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$10) {
                            $var2 = $var1.$key;
                            if ($var3 !== $var2 && !jl_Integer_equals($var3, $var2) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                $var1 = $var1 === null ? null : $var1.$value0;
                if (!(!($var1.$watchedObject.$value1 & 32) ? 0 : 1)) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    $var11 = !Long_lo(Long_shru(var$12, 47)) ? 0 : 1;
                } else {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$10 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$13 = var$10 % 15 | 0;
                        if (((var$10 - var$13 | 0) + 14 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$10 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = var$13 ? 0 : 1;
                }
                if ($var12) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$13 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$14 = var$13 % 5 | 0;
                        if (((var$13 - var$14 | 0) + 4 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$13 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = $var11 & (var$14 ? 0 : 1);
                }
                if ($var11 && var$11 > 0) {
                    $var1 = $this.$worldObj;
                    $var2 = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    $var2.$seed = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var12 = 0;
                    while (true) {
                        $var11 = $rt_compare($var12, $var1.$worldAccesses.$size0);
                        if ($var11 >= 0)
                            break;
                        if ($var12 < 0)
                            break c;
                        if ($var11 >= 0)
                            break c;
                        $var12 = $var12 + 1 | 0;
                    }
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 2:
        $this.$onChangedPotionEffect($var3, $var12);
        if ($rt_suspending()) {
            break main;
        }
        while ($var1.$hasNext()) {
            $var2 = $var1.$next();
            $var3 = $this.$activePotionsMap;
            if ($var2 === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                var$4 = $var2.$value;
                var$5 = $var3.$elementData.data;
                $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$4) {
                        var$6 = $var3.$key;
                        if ($var2 !== var$6 && !($var2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var3 = $var3 === null ? null : $var3.$value0;
            $var12 = $var3.$duration;
            if ($var12 > 0) {
                nms_Potion_$callClinit();
                if (nms_Potion_potionTypes.data[$var3.$potionID].$isReady($var12, $var3.$amplifier) && $var3.$duration > 0) {
                    $var2 = nms_Potion_potionTypes.data[$var3.$potionID];
                    $var12 = $var3.$amplifier;
                    $ptr = 1;
                    continue main;
                }
                $var3.$duration = $var3.$duration - 1 | 0;
            }
            $var11 = $var3.$duration;
            if (!($var11 <= 0 ? 0 : 1)) {
                if ($this.$worldObj.$isRemote)
                    continue;
                else {
                    $var1.$remove();
                    $ptr = 3;
                    continue main;
                }
            }
            if ($var11 % 600 | 0)
                continue;
            else {
                $var12 = 0;
                continue main;
            }
        }
        if ($this.$potionsNeedUpdate) {
            if (!$this.$worldObj.$isRemote) {
                $var1 = $this.$activePotionsMap;
                if (!($var1.$elementCount ? 0 : 1)) {
                    if ($var1.$cachedValues === null) {
                        $var2 = new ju_HashMap$2;
                        $var2.$this$01 = $var1;
                        $var1.$cachedValues = $var2;
                    }
                    $var11 = nms_PotionHelper_calcPotionLiquidColor($var1.$cachedValues);
                    $var1 = $this.$dataWatcher;
                    $var2 = $this.$activePotionsMap;
                    if ($var2.$cachedValues === null) {
                        $var3 = new ju_HashMap$2;
                        $var3.$this$01 = $var2;
                        $var2.$cachedValues = $var3;
                    }
                    $var2 = $var2.$cachedValues.$iterator();
                    f: {
                        while ($var2.$hasNext()) {
                            if (($var2.$next()).$isAmbient)
                                continue;
                            else {
                                $var12 = 0;
                                break f;
                            }
                        }
                        $var12 = 1;
                    }
                    $var12 = (!$var12 ? 0 : 1) << 24 >> 24;
                    var$6 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[136];
                    if (var$9 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$10 = var$9.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$10) {
                                $var3 = $var2.$key;
                                if (var$9 !== $var3 && !(var$9 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$10 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$6.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$6;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    if ($var11 >= (-128) && $var11 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var2 = jl_Integer_integerCache.data[$var11 + 128 | 0];
                    } else {
                        $var2 = new jl_Integer;
                        $var2.$value = $var11;
                    }
                    $var3 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        $var11 = var$6.$value;
                        var$5 = $var3.$elementData.data;
                        $var3 = var$5[$var11 & (var$5.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == $var11) {
                                var$9 = $var3.$key;
                                if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$6 = $var3 === null ? null : $var3.$value0;
                    $var3 = var$6.$watchedObject;
                    if (!($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var2.$value ? 1 : 0)) {
                        var$6.$watchedObject = $var2;
                        var$6.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Potion_$callClinit();
                    nms_Entity_setFlag($this, 5, nms_EntityLivingBase_isPotionActive($this, nms_Potion_invisibility.$id0));
                } else {
                    $var1 = $this.$dataWatcher;
                    var$9 = jl_Byte_byteCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[136];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 !== $var3 ? ($var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$9.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!(var$9 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$9.$value ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Entity_setFlag($this, 5, 0);
                }
            }
            $this.$potionsNeedUpdate = 0;
        }
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[135];
        if ($var2 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            $var12 = $var2.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[$var12 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == $var12) {
                    $var3 = $var1.$key;
                    if ($var2 !== $var3 && !($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var12 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        var$11 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[136];
        if ($var3 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$4 = $var3.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$4) {
                    $var2 = $var1.$key;
                    if ($var3 !== $var2 && !($var3 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        $var12 = $var1.$watchedObject.$value1 <= 0 ? 0 : 1;
        g: {
            if (var$11 > 0) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[128];
                if ($var3 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$10 = $var3.$value;
                    var$5 = $var1.$elementData.data;
                    $var1 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$10) {
                            $var2 = $var1.$key;
                            if ($var3 !== $var2 && !jl_Integer_equals($var3, $var2) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                $var1 = $var1 === null ? null : $var1.$value0;
                if (!(!($var1.$watchedObject.$value1 & 32) ? 0 : 1)) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    $var11 = !Long_lo(Long_shru(var$12, 47)) ? 0 : 1;
                } else {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$10 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$13 = var$10 % 15 | 0;
                        if (((var$10 - var$13 | 0) + 14 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$10 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = var$13 ? 0 : 1;
                }
                if ($var12) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$13 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$14 = var$13 % 5 | 0;
                        if (((var$13 - var$14 | 0) + 4 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$13 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = $var11 & (var$14 ? 0 : 1);
                }
                if ($var11 && var$11 > 0) {
                    $var1 = $this.$worldObj;
                    $var2 = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    $var2.$seed = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var12 = 0;
                    while (true) {
                        $var11 = $rt_compare($var12, $var1.$worldAccesses.$size0);
                        if ($var11 >= 0)
                            break;
                        if ($var12 < 0)
                            break g;
                        if ($var11 >= 0)
                            break g;
                        $var12 = $var12 + 1 | 0;
                    }
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 3:
        $this.$onFinishedPotionEffect($var3);
        if ($rt_suspending()) {
            break main;
        }
        while ($var1.$hasNext()) {
            $var2 = $var1.$next();
            $var3 = $this.$activePotionsMap;
            if ($var2 === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                var$4 = $var2.$value;
                var$5 = $var3.$elementData.data;
                $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$4) {
                        var$6 = $var3.$key;
                        if ($var2 !== var$6 && !($var2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var3 = $var3 === null ? null : $var3.$value0;
            $var12 = $var3.$duration;
            if ($var12 > 0) {
                nms_Potion_$callClinit();
                if (nms_Potion_potionTypes.data[$var3.$potionID].$isReady($var12, $var3.$amplifier) && $var3.$duration > 0) {
                    $var2 = nms_Potion_potionTypes.data[$var3.$potionID];
                    $var12 = $var3.$amplifier;
                    $ptr = 1;
                    continue main;
                }
                $var3.$duration = $var3.$duration - 1 | 0;
            }
            $var11 = $var3.$duration;
            if (!($var11 <= 0 ? 0 : 1)) {
                if ($this.$worldObj.$isRemote)
                    continue;
                else {
                    $var1.$remove();
                    continue main;
                }
            }
            if ($var11 % 600 | 0)
                continue;
            else {
                $var12 = 0;
                $ptr = 2;
                continue main;
            }
        }
        if ($this.$potionsNeedUpdate) {
            if (!$this.$worldObj.$isRemote) {
                $var1 = $this.$activePotionsMap;
                if (!($var1.$elementCount ? 0 : 1)) {
                    if ($var1.$cachedValues === null) {
                        $var2 = new ju_HashMap$2;
                        $var2.$this$01 = $var1;
                        $var1.$cachedValues = $var2;
                    }
                    $var11 = nms_PotionHelper_calcPotionLiquidColor($var1.$cachedValues);
                    $var1 = $this.$dataWatcher;
                    $var2 = $this.$activePotionsMap;
                    if ($var2.$cachedValues === null) {
                        $var3 = new ju_HashMap$2;
                        $var3.$this$01 = $var2;
                        $var2.$cachedValues = $var3;
                    }
                    $var2 = $var2.$cachedValues.$iterator();
                    f: {
                        while ($var2.$hasNext()) {
                            if (($var2.$next()).$isAmbient)
                                continue;
                            else {
                                $var12 = 0;
                                break f;
                            }
                        }
                        $var12 = 1;
                    }
                    $var12 = (!$var12 ? 0 : 1) << 24 >> 24;
                    var$6 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[136];
                    if (var$9 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$10 = var$9.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$10 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$10) {
                                $var3 = $var2.$key;
                                if (var$9 !== $var3 && !(var$9 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$10 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$6.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$6;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    if ($var11 >= (-128) && $var11 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var2 = jl_Integer_integerCache.data[$var11 + 128 | 0];
                    } else {
                        $var2 = new jl_Integer;
                        $var2.$value = $var11;
                    }
                    $var3 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        $var11 = var$6.$value;
                        var$5 = $var3.$elementData.data;
                        $var3 = var$5[$var11 & (var$5.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == $var11) {
                                var$9 = $var3.$key;
                                if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$6 = $var3 === null ? null : $var3.$value0;
                    $var3 = var$6.$watchedObject;
                    if (!($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var2.$value ? 1 : 0)) {
                        var$6.$watchedObject = $var2;
                        var$6.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Potion_$callClinit();
                    nms_Entity_setFlag($this, 5, nms_EntityLivingBase_isPotionActive($this, nms_Potion_invisibility.$id0));
                } else {
                    $var1 = $this.$dataWatcher;
                    var$9 = jl_Byte_byteCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[136];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 !== $var3 ? ($var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!($var2 instanceof jl_Byte && $var2.$value1 == var$9.$value1 ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    $var1 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[128];
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[135];
                    if (var$6 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$6.$value;
                        var$5 = $var2.$elementData.data;
                        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                $var3 = $var2.$key;
                                if (var$6 !== $var3 && !(var$6 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$4 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var3 = $var2 === null ? null : $var2.$value0;
                    $var2 = $var3.$watchedObject;
                    if (!(var$9 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$9.$value ? 1 : 0)) {
                        $var3.$watchedObject = var$9;
                        $var3.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                    nms_Entity_setFlag($this, 5, 0);
                }
            }
            $this.$potionsNeedUpdate = 0;
        }
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[135];
        if ($var2 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            $var12 = $var2.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[$var12 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == $var12) {
                    $var3 = $var1.$key;
                    if ($var2 !== $var3 && !($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var12 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        var$11 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[136];
        if ($var3 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$4 = $var3.$value;
            var$5 = $var1.$elementData.data;
            $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$4) {
                    $var2 = $var1.$key;
                    if ($var3 !== $var2 && !($var3 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        $var12 = $var1.$watchedObject.$value1 <= 0 ? 0 : 1;
        g: {
            if (var$11 > 0) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[128];
                if ($var3 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$10 = $var3.$value;
                    var$5 = $var1.$elementData.data;
                    $var1 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$10) {
                            $var2 = $var1.$key;
                            if ($var3 !== $var2 && !jl_Integer_equals($var3, $var2) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                $var1 = $var1 === null ? null : $var1.$value0;
                if (!(!($var1.$watchedObject.$value1 & 32) ? 0 : 1)) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    $var11 = !Long_lo(Long_shru(var$12, 47)) ? 0 : 1;
                } else {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$10 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$13 = var$10 % 15 | 0;
                        if (((var$10 - var$13 | 0) + 14 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$10 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = var$13 ? 0 : 1;
                }
                if ($var12) {
                    $var1 = $this.$rand;
                    var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$12;
                    var$13 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$14 = var$13 % 5 | 0;
                        if (((var$13 - var$14 | 0) + 4 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$12;
                        var$13 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var11 = $var11 & (var$14 ? 0 : 1);
                }
                if ($var11 && var$11 > 0) {
                    $var1 = $this.$worldObj;
                    $var2 = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$15;
                    $var2.$seed = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var12 = 0;
                    while (true) {
                        $var11 = $rt_compare($var12, $var1.$worldAccesses.$size0);
                        if ($var11 >= 0)
                            break;
                        if ($var12 < 0)
                            break g;
                        if ($var11 >= 0)
                            break g;
                        $var12 = $var12 + 1 | 0;
                    }
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var3, var$4, var$5, var$6, $var12, $var11, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityLivingBase_getActivePotionEffects = $this => {
    let var$1, var$2;
    var$1 = $this.$activePotionsMap;
    if (var$1.$cachedValues === null) {
        var$2 = new ju_HashMap$2;
        var$2.$this$01 = var$1;
        var$1.$cachedValues = var$2;
    }
    return var$1.$cachedValues;
},
nms_EntityLivingBase_isPotionActive = ($this, $par1) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$activePotionsMap;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = $par1;
    }
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        $par1 = var$3.$value;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[$par1 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == $par1) {
                var$5 = var$2.$key;
                if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $par1 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? 0 : 1;
},
nms_EntityLivingBase_isPotionActive0 = ($this, $par1Potion) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$activePotionsMap;
    var$3 = $par1Potion.$id0;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        $par1Potion = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        $par1Potion = new jl_Integer;
        $par1Potion.$value = var$3;
    }
    if ($par1Potion === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$3 = $par1Potion.$value;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($par1Potion !== var$5 && !($par1Potion === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? 0 : 1;
},
nms_EntityLivingBase_getActivePotionEffect = ($this, $par1Potion) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$activePotionsMap;
    var$3 = $par1Potion.$id0;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        $par1Potion = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        $par1Potion = new jl_Integer;
        $par1Potion.$value = var$3;
    }
    if ($par1Potion === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$3 = $par1Potion.$value;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($par1Potion !== var$5 && !($par1Potion === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? null : var$2.$value0;
},
nms_EntityLivingBase_addPotionEffect = ($this, $par1PotionEffect) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1PotionEffect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$isPotionApplicable($par1PotionEffect))
            return;
        var$2 = $this.$activePotionsMap;
        var$3 = $par1PotionEffect.$potionID;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            var$4 = new jl_Integer;
            var$4.$value = var$3;
        }
        if (var$4 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$5) {
                    var$7 = var$2.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        if (!(var$2 === null ? 0 : 1)) {
            var$2 = $this.$activePotionsMap;
            var$3 = $par1PotionEffect.$potionID;
            if (var$3 >= (-128) && var$3 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
            } else {
                var$4 = new jl_Integer;
                var$4.$value = var$3;
            }
            ju_HashMap_putImpl(var$2, var$4, $par1PotionEffect);
            $ptr = 1;
            continue main;
        }
        var$2 = $this.$activePotionsMap;
        var$3 = $par1PotionEffect.$potionID;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            var$4 = new jl_Integer;
            var$4.$value = var$3;
        }
        if (var$4 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$8 = var$4.$value;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    var$7 = var$2.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        nms_PotionEffect_combine(var$2, $par1PotionEffect);
        var$2 = $this.$activePotionsMap;
        var$3 = $par1PotionEffect.$potionID;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            $par1PotionEffect = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            $par1PotionEffect = new jl_Integer;
            $par1PotionEffect.$value = var$3;
        }
        if ($par1PotionEffect === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$8 = $par1PotionEffect.$value;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    var$4 = var$2.$key;
                    if ($par1PotionEffect !== var$4 && !($par1PotionEffect === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $par1PotionEffect = var$2 === null ? null : var$2.$value0;
        var$8 = 1;
        $ptr = 2;
        continue main;
    case 1:
        $this.$onNewPotionEffect($par1PotionEffect);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $this.$onChangedPotionEffect($par1PotionEffect, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1PotionEffect, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityLivingBase_isPotionApplicable = ($this, $par1PotionEffect) => {
    let $var2;
    a: {
        if ($this.$getCreatureAttribute() === nms_EnumCreatureAttribute_UNDEAD) {
            $var2 = $par1PotionEffect.$potionID;
            nms_Potion_$callClinit();
            if ($var2 == nms_Potion_regeneration.$id0)
                break a;
            if ($var2 == nms_Potion_poison.$id0)
                break a;
        }
        return 1;
    }
    return 0;
},
nms_EntityLivingBase_isEntityUndead = $this => {
    return $this.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 0 : 1;
},
nms_EntityLivingBase_removePotionEffect = ($this, $par1) => {
    let $var2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$activePotionsMap;
        if ($par1 >= (-128) && $par1 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = $par1;
        }
        $var2 = ju_HashMap_removeByKey($var2, var$3);
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2 === null)
            return;
        $ptr = 1;
    case 1:
        $this.$onFinishedPotionEffect($var2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var2, var$3, $ptr);
},
nms_EntityLivingBase_onNewPotionEffect = ($this, $par1PotionEffect) => {
    let var$2;
    $this.$potionsNeedUpdate = 1;
    if (!$this.$worldObj.$isRemote) {
        nms_Potion_$callClinit();
        var$2 = nms_Potion_potionTypes.data[$par1PotionEffect.$potionID];
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2.$applyAttributesModifiersToEntity($this, $this.$attributeMap, $par1PotionEffect.$amplifier);
    }
},
nms_EntityLivingBase_onChangedPotionEffect = ($this, $par1PotionEffect, $par2) => {
    let var$3;
    $this.$potionsNeedUpdate = 1;
    if ($par2 && !$this.$worldObj.$isRemote) {
        nms_Potion_$callClinit();
        var$3 = nms_Potion_potionTypes.data[$par1PotionEffect.$potionID];
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3.$removeAttributesModifiersFromEntity($this, $this.$attributeMap, $par1PotionEffect.$amplifier);
        var$3 = nms_Potion_potionTypes.data[$par1PotionEffect.$potionID];
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3.$applyAttributesModifiersToEntity($this, $this.$attributeMap, $par1PotionEffect.$amplifier);
    }
},
nms_EntityLivingBase_onFinishedPotionEffect = ($this, $par1PotionEffect) => {
    let var$2;
    $this.$potionsNeedUpdate = 1;
    if (!$this.$worldObj.$isRemote) {
        nms_Potion_$callClinit();
        var$2 = nms_Potion_potionTypes.data[$par1PotionEffect.$potionID];
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2.$removeAttributesModifiersFromEntity($this, $this.$attributeMap, $par1PotionEffect.$amplifier);
    }
},
nms_EntityLivingBase_heal = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[134];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
    if (var$7 > 0.0)
        nms_EntityLivingBase_setHealth($this, var$7 + $par1);
},
nms_EntityLivingBase_setHealth = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$2 = $this.$dataWatcher;
    var$3 = 0.0;
    var$4 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
    if (var$4.$field_111133_g) {
        var$4.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$4);
        var$4.$field_111133_g = 0;
    }
    var$5 = var$4.$field_111139_h;
    if ($par1 >= var$3)
        var$3 = $par1 <= var$5 ? $par1 : var$5;
    var$4 = new jl_Float;
    var$4.$value3 = var$3;
    var$6 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[134];
    if (var$7 === null) {
        var$6 = var$6.$elementData.data[0];
        while (var$6 !== null && var$6.$key !== null) {
            var$6 = var$6.$next3;
        }
    } else {
        var$8 = var$7.$value;
        var$9 = var$6.$elementData.data;
        var$6 = var$9[var$8 & (var$9.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$8) {
                var$10 = var$6.$key;
                if (var$7 !== var$10 && !(var$7 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == var$8 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$6 = var$6.$next3;
        }
    }
    var$7 = var$6 === null ? null : var$6.$value0;
    var$6 = var$7.$watchedObject;
    if (var$4 === var$6)
        var$11 = 1;
    else
        a: {
            if (var$6 instanceof jl_Float) {
                var$3 = var$4.$value3;
                $par1 = var$6.$value3;
                if (var$3 !== var$3 ? ($par1 === $par1 ? 0 : 1) : $rt_floatToRawIntBits(var$3) != $rt_floatToRawIntBits($par1) ? 0 : 1) {
                    var$11 = 1;
                    break a;
                }
            }
            var$11 = 0;
        }
    if (!var$11) {
        var$7.$watchedObject = var$4;
        var$7.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityLivingBase_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var4, $var5, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var9, $var7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if ($this.$worldObj.$isRemote)
            return 0;
        $this.$entityAge = 0;
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            $var3 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[$var3 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var3) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == $var3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        if ($var4.$watchedObject.$value3 <= 0.0)
            return 0;
        if ($par1DamageSource.$fireDamage) {
            nms_Potion_$callClinit();
            $var4 = nms_Potion_fireResistance;
            $var5 = $this.$activePotionsMap;
            $var3 = $var4.$id0;
            if ($var3 >= (-128) && $var3 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
            } else {
                $var4 = new jl_Integer;
                $var4.$value = $var3;
            }
            if ($var4 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var3 = $var4.$value;
                var$6 = $var5.$elementData.data;
                $var5 = var$6[$var3 & (var$6.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == $var3) {
                        var$7 = $var5.$key;
                        if ($var4 !== var$7 && !($var4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == $var3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            if ($var5 === null ? 0 : 1)
                return 0;
        }
        if (!($par1DamageSource !== nms_DamageSource_anvil && $par1DamageSource !== nms_DamageSource_fallingBlock) && $this.$getCurrentItemOrArmor(4) !== null) {
            $var4 = $this.$getCurrentItemOrArmor(4);
            var$8 = $par2 * 4.0;
            $var5 = $this.$rand;
            var$9 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var5.$seed = var$9;
            $var3 = var$8 + Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 * $par2 * 2.0 | 0;
            $ptr = 1;
            continue main;
        }
        $this.$limbSwingAmount = 1.5;
        $var3 = 1;
        if ($this.$hurtResistantTime > $this.$maxHurtResistantTime / 2.0) {
            var$8 = $this.$lastDamage;
            if ($par2 <= var$8)
                return 0;
            var$8 = $par2 - var$8;
            $ptr = 2;
            continue main;
        }
        $this.$lastDamage = $par2;
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $this.$prevHealth = ($var4 === null ? null : $var4.$value0).$watchedObject.$value3;
        $this.$hurtResistantTime = $this.$maxHurtResistantTime;
        $ptr = 4;
        continue main;
    case 1:
        nms_ItemStack_damageItem($var4, $var3, $this);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $par2 * 0.75;
        $this.$limbSwingAmount = 1.5;
        $var3 = 1;
        if ($this.$hurtResistantTime > $this.$maxHurtResistantTime / 2.0) {
            var$8 = $this.$lastDamage;
            if ($par2 <= var$8)
                return 0;
            var$8 = $par2 - var$8;
            $ptr = 2;
            continue main;
        }
        $this.$lastDamage = $par2;
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $this.$prevHealth = ($var4 === null ? null : $var4.$value0).$watchedObject.$value3;
        $this.$hurtResistantTime = $this.$maxHurtResistantTime;
        $ptr = 4;
        continue main;
    case 2:
        $this.$damageEntity($par1DamageSource, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $this.$lastDamage = $par2;
        $var3 = 0;
        $this.$attackedAtYaw = 0.0;
        $var4 = $par1DamageSource.$getEntity();
        if ($var4 !== null) {
            if ($var4 instanceof nms_EntityLivingBase) {
                $var5 = $var4;
                $ptr = 3;
                continue main;
            }
            if ($var4 instanceof nms_EntityPlayer) {
                $this.$recentlyHit = 100;
                $this.$attackingPlayer = $var4;
            } else if ($var4 instanceof nms_EntityWolf && nms_EntityTameable_isTamed($var4)) {
                $this.$recentlyHit = 100;
                $this.$attackingPlayer = null;
            }
        }
        if ($var3) {
            $var5 = $this.$worldObj;
            var$7 = new nms_Packet38EntityStatus;
            var$11 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$entityId0 = var$11;
            var$7.$entityStatus = 2;
            $var5 = $var5.$theEntityTracker.$trackedEntityIDs;
            var$12 = $this.$entityId;
            var$13 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
            var$10 = var$13 ^ (var$13 >>> 7 | 0) ^ (var$13 >>> 4 | 0);
            var$6 = $var5.$slots.data;
            $var5 = var$6[var$10 & (var$6.length - 1 | 0)];
            a: {
                while ($var5 !== null) {
                    if ($var5.$hashEntry == var$12) {
                        $var5 = $var5.$valueEntry;
                        break a;
                    }
                    $var5 = $var5.$nextEntry0;
                }
                $var5 = null;
            }
            var$14 = $var5;
            if (var$14 !== null) {
                $var5 = var$14.$trackingPlayers.$backingMap;
                if ($var5.$cachedKeySet === null) {
                    var$15 = new ju_HashMap$1;
                    var$15.$this$0 = $var5;
                    ju_AbstractCollection__init_(var$15);
                    $var5.$cachedKeySet = var$15;
                }
                var$16 = $var5.$cachedKeySet.$iterator();
                var$11 = var$7 instanceof nms_Packet3Chat;
                var$15 = var$7;
                while (var$16.$hasNext()) {
                    b: {
                        $var5 = (var$16.$next()).$playerNetServerHandler;
                        if (var$11) {
                            var$12 = $var5.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break b;
                            if (var$12 == 1 && !var$15.$isServer)
                                break b;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 8;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$17 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$17);
                            jl_System_errCache = var$17;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
                }
                $var5 = var$14.$myEntity;
                if ($var5 instanceof nms_EntityPlayerMP)
                    c: {
                        $var5 = $var5.$playerNetServerHandler;
                        if (var$11) {
                            var$11 = $var5.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break c;
                            if (var$11 == 1 && !var$15.$isServer)
                                break c;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$7 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$7, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$7;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
            }
            if ($par1DamageSource !== nms_DamageSource_drown)
                nms_EntityLivingBase_setBeenAttacked($this);
            if ($var4 === null)
                $this.$attackedAtYaw = (jl_Math_randomImpl() * 2.0 | 0) * 180 | 0;
            else {
                $var9 = $var4.$posX - $this.$posX;
                $var7 = $var4.$posZ - $this.$posZ;
                while ($var9 * $var9 + $var7 * $var7 < 1.0E-4) {
                    $var9 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                    $var7 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                }
                $this.$attackedAtYaw = jl_Math_atan2($var7, $var9) * 180.0 / 3.141592653589793 - $this.$rotationYaw;
                nms_EntityLivingBase_knockBack($this, $var4, $par2, $var9, $var7);
            }
        }
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        if ($var4.$watchedObject.$value3 <= 0.0) {
            if (!$var3) {
                $ptr = 6;
                continue main;
            }
            $var4 = $this.$getDeathSound();
            $par2 = $this.$getSoundVolume();
            var$8 = $this.$getSoundPitch();
            $ptr = 7;
            continue main;
        }
        if (!$var3)
            return 1;
        $par1DamageSource = $this.$getHurtSound();
        $par2 = $this.$getSoundVolume();
        var$8 = $this.$getSoundPitch();
        $ptr = 5;
        continue main;
    case 3:
        $this.$setRevengeTarget($var5);
        if ($rt_suspending()) {
            break main;
        }
        if ($var4 instanceof nms_EntityPlayer) {
            $this.$recentlyHit = 100;
            $this.$attackingPlayer = $var4;
        } else if ($var4 instanceof nms_EntityWolf && nms_EntityTameable_isTamed($var4)) {
            $this.$recentlyHit = 100;
            $this.$attackingPlayer = null;
        }
        if ($var3) {
            $var5 = $this.$worldObj;
            var$7 = new nms_Packet38EntityStatus;
            var$11 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$entityId0 = var$11;
            var$7.$entityStatus = 2;
            $var5 = $var5.$theEntityTracker.$trackedEntityIDs;
            var$12 = $this.$entityId;
            var$13 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
            var$10 = var$13 ^ (var$13 >>> 7 | 0) ^ (var$13 >>> 4 | 0);
            var$6 = $var5.$slots.data;
            $var5 = var$6[var$10 & (var$6.length - 1 | 0)];
            d: {
                while ($var5 !== null) {
                    if ($var5.$hashEntry == var$12) {
                        $var5 = $var5.$valueEntry;
                        break d;
                    }
                    $var5 = $var5.$nextEntry0;
                }
                $var5 = null;
            }
            var$14 = $var5;
            if (var$14 !== null) {
                $var5 = var$14.$trackingPlayers.$backingMap;
                if ($var5.$cachedKeySet === null) {
                    var$15 = new ju_HashMap$1;
                    var$15.$this$0 = $var5;
                    ju_AbstractCollection__init_(var$15);
                    $var5.$cachedKeySet = var$15;
                }
                var$16 = $var5.$cachedKeySet.$iterator();
                var$11 = var$7 instanceof nms_Packet3Chat;
                var$15 = var$7;
                while (var$16.$hasNext()) {
                    e: {
                        $var5 = (var$16.$next()).$playerNetServerHandler;
                        if (var$11) {
                            var$12 = $var5.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break e;
                            if (var$12 == 1 && !var$15.$isServer)
                                break e;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 8;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$17 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$17);
                            jl_System_errCache = var$17;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
                }
                $var5 = var$14.$myEntity;
                if ($var5 instanceof nms_EntityPlayerMP)
                    f: {
                        $var5 = $var5.$playerNetServerHandler;
                        if (var$11) {
                            var$11 = $var5.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break f;
                            if (var$11 == 1 && !var$15.$isServer)
                                break f;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$7 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$7, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$7;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
            }
            if ($par1DamageSource !== nms_DamageSource_drown)
                nms_EntityLivingBase_setBeenAttacked($this);
            if ($var4 === null)
                $this.$attackedAtYaw = (jl_Math_randomImpl() * 2.0 | 0) * 180 | 0;
            else {
                $var9 = $var4.$posX - $this.$posX;
                $var7 = $var4.$posZ - $this.$posZ;
                while ($var9 * $var9 + $var7 * $var7 < 1.0E-4) {
                    $var9 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                    $var7 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                }
                $this.$attackedAtYaw = jl_Math_atan2($var7, $var9) * 180.0 / 3.141592653589793 - $this.$rotationYaw;
                nms_EntityLivingBase_knockBack($this, $var4, $par2, $var9, $var7);
            }
        }
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        if ($var4.$watchedObject.$value3 <= 0.0) {
            if (!$var3) {
                $ptr = 6;
                continue main;
            }
            $var4 = $this.$getDeathSound();
            $par2 = $this.$getSoundVolume();
            var$8 = $this.$getSoundPitch();
            $ptr = 7;
            continue main;
        }
        if (!$var3)
            return 1;
        $par1DamageSource = $this.$getHurtSound();
        $par2 = $this.$getSoundVolume();
        var$8 = $this.$getSoundPitch();
        $ptr = 5;
        continue main;
    case 4:
        $this.$damageEntity($par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$maxHurtTime = 10;
        $this.$hurtTime = 10;
        $this.$attackedAtYaw = 0.0;
        $var4 = $par1DamageSource.$getEntity();
        if ($var4 !== null) {
            if ($var4 instanceof nms_EntityLivingBase) {
                $var5 = $var4;
                $ptr = 3;
                continue main;
            }
            if ($var4 instanceof nms_EntityPlayer) {
                $this.$recentlyHit = 100;
                $this.$attackingPlayer = $var4;
            } else if ($var4 instanceof nms_EntityWolf && nms_EntityTameable_isTamed($var4)) {
                $this.$recentlyHit = 100;
                $this.$attackingPlayer = null;
            }
        }
        if ($var3) {
            $var5 = $this.$worldObj;
            var$7 = new nms_Packet38EntityStatus;
            var$11 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$entityId0 = var$11;
            var$7.$entityStatus = 2;
            $var5 = $var5.$theEntityTracker.$trackedEntityIDs;
            var$12 = $this.$entityId;
            var$13 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
            var$10 = var$13 ^ (var$13 >>> 7 | 0) ^ (var$13 >>> 4 | 0);
            var$6 = $var5.$slots.data;
            $var5 = var$6[var$10 & (var$6.length - 1 | 0)];
            a: {
                while ($var5 !== null) {
                    if ($var5.$hashEntry == var$12) {
                        $var5 = $var5.$valueEntry;
                        break a;
                    }
                    $var5 = $var5.$nextEntry0;
                }
                $var5 = null;
            }
            var$14 = $var5;
            if (var$14 !== null) {
                $var5 = var$14.$trackingPlayers.$backingMap;
                if ($var5.$cachedKeySet === null) {
                    var$15 = new ju_HashMap$1;
                    var$15.$this$0 = $var5;
                    ju_AbstractCollection__init_(var$15);
                    $var5.$cachedKeySet = var$15;
                }
                var$16 = $var5.$cachedKeySet.$iterator();
                var$11 = var$7 instanceof nms_Packet3Chat;
                var$15 = var$7;
                while (var$16.$hasNext()) {
                    b: {
                        $var5 = (var$16.$next()).$playerNetServerHandler;
                        if (var$11) {
                            var$12 = $var5.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break b;
                            if (var$12 == 1 && !var$15.$isServer)
                                break b;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 8;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$17 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$17);
                            jl_System_errCache = var$17;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
                }
                $var5 = var$14.$myEntity;
                if ($var5 instanceof nms_EntityPlayerMP)
                    c: {
                        $var5 = $var5.$playerNetServerHandler;
                        if (var$11) {
                            var$11 = $var5.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break c;
                            if (var$11 == 1 && !var$15.$isServer)
                                break c;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$7 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$7, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$7;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
            }
            if ($par1DamageSource !== nms_DamageSource_drown)
                nms_EntityLivingBase_setBeenAttacked($this);
            if ($var4 === null)
                $this.$attackedAtYaw = (jl_Math_randomImpl() * 2.0 | 0) * 180 | 0;
            else {
                $var9 = $var4.$posX - $this.$posX;
                $var7 = $var4.$posZ - $this.$posZ;
                while ($var9 * $var9 + $var7 * $var7 < 1.0E-4) {
                    $var9 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                    $var7 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                }
                $this.$attackedAtYaw = jl_Math_atan2($var7, $var9) * 180.0 / 3.141592653589793 - $this.$rotationYaw;
                nms_EntityLivingBase_knockBack($this, $var4, $par2, $var9, $var7);
            }
        }
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        if ($var4.$watchedObject.$value3 <= 0.0) {
            if (!$var3) {
                $ptr = 6;
                continue main;
            }
            $var4 = $this.$getDeathSound();
            $par2 = $this.$getSoundVolume();
            var$8 = $this.$getSoundPitch();
            $ptr = 7;
            continue main;
        }
        if (!$var3)
            return 1;
        $par1DamageSource = $this.$getHurtSound();
        $par2 = $this.$getSoundVolume();
        var$8 = $this.$getSoundPitch();
        $ptr = 5;
    case 5:
        $this.$playSound($par1DamageSource, $par2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 6:
        $this.$onDeath($par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 7:
        $this.$playSound($var4, $par2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 6;
        continue main;
    case 8:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$17 = jl_System_errCache;
            if (var$17 === null) {
                var$17 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$17);
                jl_System_errCache = var$17;
            }
            var$17 = jl_System_errCache;
            jl_Throwable_printStackTrace($var5, var$17);
        }
        d: while (true) {
            while (true) {
                if (!var$16.$hasNext())
                    break d;
                $var5 = (var$16.$next()).$playerNetServerHandler;
                if (!var$11)
                    break;
                var$12 = $var5.$playerEntity.$chatVisibility;
                if (var$12 == 2)
                    continue;
                if (var$12 != 1)
                    break;
                if (var$15.$isServer)
                    break;
            }
            try {
                $var5 = $var5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$17 = jl_System_errCache;
            if (var$17 === null) {
                var$17 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$17);
                jl_System_errCache = var$17;
            }
            var$17 = jl_System_errCache;
            jl_Throwable_printStackTrace($var5, var$17);
        }
        $var5 = var$14.$myEntity;
        if ($var5 instanceof nms_EntityPlayerMP)
            b: {
                $var5 = $var5.$playerNetServerHandler;
                if (var$11) {
                    var$11 = $var5.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break b;
                    if (var$11 == 1 && !var$15.$isServer)
                        break b;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$7, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
        if ($par1DamageSource !== nms_DamageSource_drown)
            nms_EntityLivingBase_setBeenAttacked($this);
        if ($var4 === null)
            $this.$attackedAtYaw = (jl_Math_randomImpl() * 2.0 | 0) * 180 | 0;
        else {
            $var9 = $var4.$posX - $this.$posX;
            $var7 = $var4.$posZ - $this.$posZ;
            while ($var9 * $var9 + $var7 * $var7 < 1.0E-4) {
                $var9 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                $var7 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
            }
            $this.$attackedAtYaw = jl_Math_atan2($var7, $var9) * 180.0 / 3.141592653589793 - $this.$rotationYaw;
            nms_EntityLivingBase_knockBack($this, $var4, $par2, $var9, $var7);
        }
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        if ($var4.$watchedObject.$value3 <= 0.0) {
            if (!$var3) {
                $ptr = 6;
                continue main;
            }
            $var4 = $this.$getDeathSound();
            $par2 = $this.$getSoundVolume();
            var$8 = $this.$getSoundPitch();
            $ptr = 7;
            continue main;
        }
        if (!$var3)
            return 1;
        $par1DamageSource = $this.$getHurtSound();
        $par2 = $this.$getSoundVolume();
        var$8 = $this.$getSoundPitch();
        $ptr = 5;
        continue main;
    case 9:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$7, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        if ($par1DamageSource !== nms_DamageSource_drown)
            nms_EntityLivingBase_setBeenAttacked($this);
        if ($var4 === null)
            $this.$attackedAtYaw = (jl_Math_randomImpl() * 2.0 | 0) * 180 | 0;
        else {
            $var9 = $var4.$posX - $this.$posX;
            $var7 = $var4.$posZ - $this.$posZ;
            while ($var9 * $var9 + $var7 * $var7 < 1.0E-4) {
                $var9 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
                $var7 = (jl_Math_randomImpl() - jl_Math_randomImpl()) * 0.01;
            }
            $this.$attackedAtYaw = jl_Math_atan2($var7, $var9) * 180.0 / 3.141592653589793 - $this.$rotationYaw;
            nms_EntityLivingBase_knockBack($this, $var4, $par2, $var9, $var7);
        }
        $var4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[134];
        if ($var5 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = $var5.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$10 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$10) {
                    var$7 = $var4.$key;
                    if ($var5 !== var$7 && !($var5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        if ($var4.$watchedObject.$value3 <= 0.0) {
            if (!$var3) {
                $ptr = 6;
                continue main;
            }
            $var4 = $this.$getDeathSound();
            $par2 = $this.$getSoundVolume();
            var$8 = $this.$getSoundPitch();
            $ptr = 7;
            continue main;
        }
        if (!$var3)
            return 1;
        $par1DamageSource = $this.$getHurtSound();
        $par2 = $this.$getSoundVolume();
        var$8 = $this.$getSoundPitch();
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var4, $var5, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var9, $var7, $ptr);
},
nms_EntityLivingBase_renderBrokenItemStack = ($this, $par1ItemStack) => {
    let $var3, var$3, $var4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1ItemStack
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $rt_s(1997);
        var$3 = 0.800000011920929;
        $var4 = $this.$worldObj.$rand0;
        var$5 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$5;
        var$6 = 24;
        var$7 = 0.800000011920929 + Long_lo(Long_shru(var$5, var$6)) / 1.6777216E7 * 0.4000000059604645;
        $ptr = 1;
    case 1:
        $this.$playSound($var3, var$3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = 0;
        a: {
            b: {
                while ($var2 < 5) {
                    $var4 = $this.$worldObj.$vecPool;
                    $var3 = $this.$rand;
                    var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$5;
                    $var3 = nms_Vec3Pool_getVecFromPool($var4, (Long_lo(Long_shru(var$5, var$6)) / 1.6777216E7 - 0.5) * 0.1, jl_Math_randomImpl() * 0.1 + 0.1, 0.0);
                    var$3 =  -$this.$rotationPitch * 3.1415927410125732 / 180.0;
                    var$9 = nms_MathHelper_SIN_TABLE.data;
                    var$3 = var$3 * 10430.3779296875;
                    var$7 = var$9[(var$3 + 16384.0 | 0) & 65535];
                    var$3 = var$9[(var$3 | 0) & 65535];
                    var$10 = $var3.$xCoord;
                    var$11 = $var3.$yCoord;
                    var$12 = var$7;
                    var$13 = var$11 * var$12;
                    var$14 = $var3.$zCoord;
                    var$15 = var$3;
                    var$16 = var$13 + var$14 * var$15;
                    var$15 = var$14 * var$12 - var$11 * var$15;
                    $var3.$xCoord = var$10;
                    $var3.$yCoord = var$16;
                    $var3.$zCoord = var$15;
                    var$3 =  -$this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
                    var$7 = var$9[(var$3 + 16384.0 | 0) & 65535];
                    var$3 = var$9[(var$3 | 0) & 65535];
                    var$11 = var$7;
                    var$12 = var$10 * var$11;
                    var$13 = var$3;
                    var$12 = var$12 + var$15 * var$13;
                    var$11 = var$15 * var$11 - var$10 * var$13;
                    $var3.$xCoord = var$12;
                    $var3.$yCoord = var$16;
                    $var3.$zCoord = var$11;
                    $var4 = $this.$worldObj.$vecPool;
                    $var3 = $this.$rand;
                    var$17 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$17;
                    var$11 = (Long_lo(Long_shru(var$17, var$6)) / 1.6777216E7 - 0.5) * 0.3;
                    var$5 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$5;
                    $var4 = nms_Vec3Pool_getVecFromPool($var4, var$11,  -(Long_lo(Long_shru(var$5, var$6)) / 1.6777216E7) * 0.6 - 0.3, 0.6);
                    var$3 =  -$this.$rotationPitch * 3.1415927410125732 / 180.0;
                    var$9 = nms_MathHelper_SIN_TABLE.data;
                    var$3 = var$3 * 10430.3779296875;
                    var$7 = var$9[(var$3 + 16384.0 | 0) & 65535];
                    var$3 = var$9[(var$3 | 0) & 65535];
                    var$10 = $var4.$xCoord;
                    var$11 = $var4.$yCoord;
                    var$12 = var$7;
                    var$13 = var$11 * var$12;
                    var$14 = $var4.$zCoord;
                    var$16 = var$3;
                    var$15 = var$13 + var$14 * var$16;
                    var$16 = var$14 * var$12 - var$11 * var$16;
                    $var4.$xCoord = var$10;
                    $var4.$yCoord = var$15;
                    $var4.$zCoord = var$16;
                    var$3 =  -$this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
                    var$7 = var$9[(var$3 + 16384.0 | 0) & 65535];
                    var$3 = var$9[(var$3 | 0) & 65535];
                    var$11 = var$7;
                    var$12 = var$10 * var$11;
                    var$13 = var$3;
                    var$12 = var$12 + var$16 * var$13;
                    var$11 = var$16 * var$11 - var$10 * var$13;
                    $var4.$xCoord = var$12;
                    $var4.$yCoord = var$15;
                    $var4.$zCoord = var$11;
                    var$11 = $this.$posX;
                    var$12 = $this.$posY + $this.$getEyeHeight();
                    var$13 = $this.$posZ;
                    nms_Vec3Pool_getVecFromPool($var4.$myVec3LocalPool, $var4.$xCoord + var$11, $var4.$yCoord + var$12, $var4.$zCoord + var$13);
                    $var3 = $this.$worldObj;
                    nms_Item_$callClinit();
                    var$18 = nms_Item_itemsList.data[$par1ItemStack.$itemID].$itemID0;
                    $var4 = new jl_StringBuilder;
                    $var4.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(1998));
                    jl_AbstractStringBuilder_insert0($var4, $var4.$length0, var$18, 10);
                    var$19 = new jl_String;
                    var$9 = $var4.$buffer;
                    var$20 = var$9.data;
                    var$21 = $var4.$length0;
                    var$22 = var$20.length;
                    if (var$21 < 0)
                        break b;
                    if (var$21 > (var$22 - 0 | 0))
                        break b;
                    var$19.$nativeString = $rt_charArrayToString(var$9.data, 0, var$21);
                    var$18 = 0;
                    while (true) {
                        var$21 = $rt_compare(var$18, $var3.$worldAccesses.$size0);
                        if (var$21 >= 0)
                            break;
                        if (var$18 < 0)
                            break a;
                        if (var$21 >= 0)
                            break a;
                        var$18 = var$18 + 1 | 0;
                    }
                    $var2 = $var2 + 1 | 0;
                }
                return;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $var3, var$3, $var4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_EntityLivingBase_onDeath = ($this, $par1DamageSource) => {
    let $var2, $var3, $var4, var$5, var$6, var$7, $var5, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1DamageSource.$getEntity();
        if (nms_CombatTracker_func_94550_c($this.$_combatTracker) !== null)
            $var3 = nms_CombatTracker_func_94550_c($this.$_combatTracker);
        else {
            $var3 = $this.$attackingPlayer;
            if ($var3 === null) {
                $var3 = $this.$entityLivingToAttack;
                if ($var3 === null)
                    $var3 = null;
            }
        }
        $var4 = $this.$scoreValue;
        if ($var4 >= 0 && $var3 !== null) {
            $ptr = 2;
            continue main;
        }
        if ($var2 !== null) {
            $ptr = 1;
            continue main;
        }
        $this.$dead = 1;
        if (!$this.$worldObj.$isRemote) {
            $var4 = 0;
            if ($var2 instanceof nms_EntityPlayer) {
                $par1DamageSource = $var2;
                nms_EnchantmentHelper_$callClinit();
                nms_Enchantment_$callClinit();
                $var4 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_looting.$effectId, $par1DamageSource.$getHeldItem());
            }
            if (!$this.$isChild()) {
                a: {
                    $var2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    $var3 = $rt_s(1984);
                    $par1DamageSource = $rt_s(1984);
                    if ($var3 !== $par1DamageSource) {
                        var$5 = $var3.$nativeString.length;
                        var$6 = $par1DamageSource.$nativeString.length;
                        if (var$5 < var$6)
                            var$6 = var$5;
                        var$5 = 0;
                        b: {
                            while (true) {
                                if (var$5 >= var$6) {
                                    $var3.$nativeString.length;
                                    $par1DamageSource.$nativeString.length;
                                    break a;
                                }
                                if (var$5 < 0)
                                    break b;
                                if (var$5 >= $var3.$nativeString.length)
                                    break b;
                                var$7 = $var3.$nativeString.charCodeAt(var$5);
                                if (var$5 < 0)
                                    break;
                                if (var$5 >= $par1DamageSource.$nativeString.length)
                                    break;
                                if (var$7 - $par1DamageSource.$nativeString.charCodeAt(var$5) | 0)
                                    break a;
                                var$5 = var$5 + 1 | 0;
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                }
                $par1DamageSource = $rt_s(1984);
                c: {
                    d: {
                        e: while (true) {
                            if ($var2 === null) {
                                $var2 = null;
                                break c;
                            }
                            f: {
                                $var3 = $var2.$key0;
                                if ($par1DamageSource === $var3)
                                    $var5 = 0;
                                else {
                                    var$5 = $par1DamageSource.$nativeString.length;
                                    var$7 = $var3.$nativeString.length;
                                    if (var$5 < var$7)
                                        var$7 = var$5;
                                    var$5 = 0;
                                    while (true) {
                                        if (var$5 >= var$7) {
                                            $var5 = $par1DamageSource.$nativeString.length - $var3.$nativeString.length | 0;
                                            break f;
                                        }
                                        if (var$5 < 0)
                                            break d;
                                        if (var$5 >= $par1DamageSource.$nativeString.length)
                                            break d;
                                        var$6 = $par1DamageSource.$nativeString.charCodeAt(var$5);
                                        if (var$5 < 0)
                                            break e;
                                        if (var$5 >= $var3.$nativeString.length)
                                            break e;
                                        $var5 = var$6 - $var3.$nativeString.charCodeAt(var$5) | 0;
                                        if ($var5)
                                            break;
                                        var$5 = var$5 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var5)
                                break c;
                            $var2 = $var5 >= 0 ? $var2.$right : $var2.$left;
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                    $rt_throw($par1DamageSource);
                }
                $par1DamageSource = $var2 === null ? null : $var2.$value2;
                if ($par1DamageSource === null ? 0 : $par1DamageSource.$valueBoolean) {
                    $var5 = $this.$recentlyHit <= 0 ? 0 : 1;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        $par1DamageSource = $this.$worldObj;
        $var2 = new nms_Packet38EntityStatus;
        $var5 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var2.$entityId0 = $var5;
        $var2.$entityStatus = 3;
        $par1DamageSource = $par1DamageSource.$theEntityTracker.$trackedEntityIDs;
        var$6 = $this.$entityId;
        $var4 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        $var4 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$9 = $par1DamageSource.$slots.data;
        $par1DamageSource = var$9[$var4 & (var$9.length - 1 | 0)];
        g: {
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$hashEntry == var$6) {
                    $par1DamageSource = $par1DamageSource.$valueEntry;
                    break g;
                }
                $par1DamageSource = $par1DamageSource.$nextEntry0;
            }
            $par1DamageSource = null;
        }
        $par1DamageSource = $par1DamageSource;
        if ($par1DamageSource !== null) {
            $var3 = $par1DamageSource.$trackingPlayers.$backingMap;
            if ($var3.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = $var3;
                ju_AbstractCollection__init_(var$10);
                $var3.$cachedKeySet = var$10;
            }
            var$11 = $var3.$cachedKeySet.$iterator();
            $var5 = $var2 instanceof nms_Packet3Chat;
            var$10 = $var2;
            while (var$11.$hasNext()) {
                h: {
                    $var3 = (var$11.$next()).$playerNetServerHandler;
                    if ($var5) {
                        var$5 = $var3.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break h;
                        if (var$5 == 1 && !var$10.$isServer)
                            break h;
                    }
                    try {
                        $var3 = $var3.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$12 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$12);
                        jl_System_errCache = var$12;
                    }
                    jl_Throwable_printStackTrace($var3, jl_System_errCache);
                }
            }
            $par1DamageSource = $par1DamageSource.$myEntity;
            if ($par1DamageSource instanceof nms_EntityPlayerMP)
                i: {
                    $par1DamageSource = $par1DamageSource.$playerNetServerHandler;
                    if ($var5) {
                        $var5 = $par1DamageSource.$playerEntity.$chatVisibility;
                        if ($var5 == 2)
                            break i;
                        if ($var5 == 1 && !var$10.$isServer)
                            break i;
                    }
                    try {
                        $par1DamageSource = $par1DamageSource.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1DamageSource = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                }
        }
        return;
    case 1:
        $var2.$onKillEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$dead = 1;
        if (!$this.$worldObj.$isRemote) {
            $var4 = 0;
            if ($var2 instanceof nms_EntityPlayer) {
                $par1DamageSource = $var2;
                nms_EnchantmentHelper_$callClinit();
                nms_Enchantment_$callClinit();
                $var4 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_looting.$effectId, $par1DamageSource.$getHeldItem());
            }
            if (!$this.$isChild()) {
                j: {
                    $var2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    $var3 = $rt_s(1984);
                    $par1DamageSource = $rt_s(1984);
                    if ($var3 !== $par1DamageSource) {
                        var$5 = $var3.$nativeString.length;
                        var$6 = $par1DamageSource.$nativeString.length;
                        if (var$5 < var$6)
                            var$6 = var$5;
                        var$5 = 0;
                        a: {
                            while (true) {
                                if (var$5 >= var$6) {
                                    $var3.$nativeString.length;
                                    $par1DamageSource.$nativeString.length;
                                    break j;
                                }
                                if (var$5 < 0)
                                    break a;
                                if (var$5 >= $var3.$nativeString.length)
                                    break a;
                                var$7 = $var3.$nativeString.charCodeAt(var$5);
                                if (var$5 < 0)
                                    break;
                                if (var$5 >= $par1DamageSource.$nativeString.length)
                                    break;
                                if (var$7 - $par1DamageSource.$nativeString.charCodeAt(var$5) | 0)
                                    break j;
                                var$5 = var$5 + 1 | 0;
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                }
                $par1DamageSource = $rt_s(1984);
                k: {
                    b: {
                        l: while (true) {
                            if ($var2 === null) {
                                $var2 = null;
                                break k;
                            }
                            c: {
                                $var3 = $var2.$key0;
                                if ($par1DamageSource === $var3)
                                    $var5 = 0;
                                else {
                                    var$5 = $par1DamageSource.$nativeString.length;
                                    var$7 = $var3.$nativeString.length;
                                    if (var$5 < var$7)
                                        var$7 = var$5;
                                    var$5 = 0;
                                    while (true) {
                                        if (var$5 >= var$7) {
                                            $var5 = $par1DamageSource.$nativeString.length - $var3.$nativeString.length | 0;
                                            break c;
                                        }
                                        if (var$5 < 0)
                                            break b;
                                        if (var$5 >= $par1DamageSource.$nativeString.length)
                                            break b;
                                        var$6 = $par1DamageSource.$nativeString.charCodeAt(var$5);
                                        if (var$5 < 0)
                                            break l;
                                        if (var$5 >= $var3.$nativeString.length)
                                            break l;
                                        $var5 = var$6 - $var3.$nativeString.charCodeAt(var$5) | 0;
                                        if ($var5)
                                            break;
                                        var$5 = var$5 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var5)
                                break k;
                            $var2 = $var5 >= 0 ? $var2.$right : $var2.$left;
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                    $rt_throw($par1DamageSource);
                }
                $par1DamageSource = $var2 === null ? null : $var2.$value2;
                if ($par1DamageSource === null ? 0 : $par1DamageSource.$valueBoolean) {
                    $var5 = $this.$recentlyHit <= 0 ? 0 : 1;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        $par1DamageSource = $this.$worldObj;
        $var2 = new nms_Packet38EntityStatus;
        $var5 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var2.$entityId0 = $var5;
        $var2.$entityStatus = 3;
        $par1DamageSource = $par1DamageSource.$theEntityTracker.$trackedEntityIDs;
        var$6 = $this.$entityId;
        $var4 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        $var4 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$9 = $par1DamageSource.$slots.data;
        $par1DamageSource = var$9[$var4 & (var$9.length - 1 | 0)];
        m: {
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$hashEntry == var$6) {
                    $par1DamageSource = $par1DamageSource.$valueEntry;
                    break m;
                }
                $par1DamageSource = $par1DamageSource.$nextEntry0;
            }
            $par1DamageSource = null;
        }
        $par1DamageSource = $par1DamageSource;
        if ($par1DamageSource !== null) {
            $var3 = $par1DamageSource.$trackingPlayers.$backingMap;
            if ($var3.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = $var3;
                ju_AbstractCollection__init_(var$10);
                $var3.$cachedKeySet = var$10;
            }
            var$11 = $var3.$cachedKeySet.$iterator();
            $var5 = $var2 instanceof nms_Packet3Chat;
            var$10 = $var2;
            while (var$11.$hasNext()) {
                g: {
                    $var3 = (var$11.$next()).$playerNetServerHandler;
                    if ($var5) {
                        var$5 = $var3.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break g;
                        if (var$5 == 1 && !var$10.$isServer)
                            break g;
                    }
                    try {
                        $var3 = $var3.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$12 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$12);
                        jl_System_errCache = var$12;
                    }
                    jl_Throwable_printStackTrace($var3, jl_System_errCache);
                }
            }
            $par1DamageSource = $par1DamageSource.$myEntity;
            if ($par1DamageSource instanceof nms_EntityPlayerMP)
                n: {
                    $par1DamageSource = $par1DamageSource.$playerNetServerHandler;
                    if ($var5) {
                        $var5 = $par1DamageSource.$playerEntity.$chatVisibility;
                        if ($var5 == 2)
                            break n;
                        if ($var5 == 1 && !var$10.$isServer)
                            break n;
                    }
                    try {
                        $par1DamageSource = $par1DamageSource.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1DamageSource = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                }
        }
        return;
    case 2:
        $var3.$addToPlayerScore($this, $var4);
        if ($rt_suspending()) {
            break main;
        }
        if ($var2 !== null) {
            $ptr = 1;
            continue main;
        }
        $this.$dead = 1;
        if (!$this.$worldObj.$isRemote) {
            $var4 = 0;
            if ($var2 instanceof nms_EntityPlayer) {
                $par1DamageSource = $var2;
                nms_EnchantmentHelper_$callClinit();
                nms_Enchantment_$callClinit();
                $var4 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_looting.$effectId, $par1DamageSource.$getHeldItem());
            }
            if (!$this.$isChild()) {
                o: {
                    $var2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    $var3 = $rt_s(1984);
                    $par1DamageSource = $rt_s(1984);
                    if ($var3 !== $par1DamageSource) {
                        var$5 = $var3.$nativeString.length;
                        var$6 = $par1DamageSource.$nativeString.length;
                        if (var$5 < var$6)
                            var$6 = var$5;
                        var$5 = 0;
                        p: {
                            while (true) {
                                if (var$5 >= var$6) {
                                    $var3.$nativeString.length;
                                    $par1DamageSource.$nativeString.length;
                                    break o;
                                }
                                if (var$5 < 0)
                                    break p;
                                if (var$5 >= $var3.$nativeString.length)
                                    break p;
                                var$7 = $var3.$nativeString.charCodeAt(var$5);
                                if (var$5 < 0)
                                    break;
                                if (var$5 >= $par1DamageSource.$nativeString.length)
                                    break;
                                if (var$7 - $par1DamageSource.$nativeString.charCodeAt(var$5) | 0)
                                    break o;
                                var$5 = var$5 + 1 | 0;
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                }
                $par1DamageSource = $rt_s(1984);
                q: {
                    l: {
                        r: while (true) {
                            if ($var2 === null) {
                                $var2 = null;
                                break q;
                            }
                            s: {
                                $var3 = $var2.$key0;
                                if ($par1DamageSource === $var3)
                                    $var5 = 0;
                                else {
                                    var$5 = $par1DamageSource.$nativeString.length;
                                    var$7 = $var3.$nativeString.length;
                                    if (var$5 < var$7)
                                        var$7 = var$5;
                                    var$5 = 0;
                                    while (true) {
                                        if (var$5 >= var$7) {
                                            $var5 = $par1DamageSource.$nativeString.length - $var3.$nativeString.length | 0;
                                            break s;
                                        }
                                        if (var$5 < 0)
                                            break l;
                                        if (var$5 >= $par1DamageSource.$nativeString.length)
                                            break l;
                                        var$6 = $par1DamageSource.$nativeString.charCodeAt(var$5);
                                        if (var$5 < 0)
                                            break r;
                                        if (var$5 >= $var3.$nativeString.length)
                                            break r;
                                        $var5 = var$6 - $var3.$nativeString.charCodeAt(var$5) | 0;
                                        if ($var5)
                                            break;
                                        var$5 = var$5 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var5)
                                break q;
                            $var2 = $var5 >= 0 ? $var2.$right : $var2.$left;
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                    $rt_throw($par1DamageSource);
                }
                $par1DamageSource = $var2 === null ? null : $var2.$value2;
                if ($par1DamageSource === null ? 0 : $par1DamageSource.$valueBoolean) {
                    $var5 = $this.$recentlyHit <= 0 ? 0 : 1;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        $par1DamageSource = $this.$worldObj;
        $var2 = new nms_Packet38EntityStatus;
        $var5 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var2.$entityId0 = $var5;
        $var2.$entityStatus = 3;
        $par1DamageSource = $par1DamageSource.$theEntityTracker.$trackedEntityIDs;
        var$6 = $this.$entityId;
        $var4 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        $var4 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$9 = $par1DamageSource.$slots.data;
        $par1DamageSource = var$9[$var4 & (var$9.length - 1 | 0)];
        t: {
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$hashEntry == var$6) {
                    $par1DamageSource = $par1DamageSource.$valueEntry;
                    break t;
                }
                $par1DamageSource = $par1DamageSource.$nextEntry0;
            }
            $par1DamageSource = null;
        }
        $par1DamageSource = $par1DamageSource;
        if ($par1DamageSource !== null) {
            $var3 = $par1DamageSource.$trackingPlayers.$backingMap;
            if ($var3.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = $var3;
                ju_AbstractCollection__init_(var$10);
                $var3.$cachedKeySet = var$10;
            }
            var$11 = $var3.$cachedKeySet.$iterator();
            $var5 = $var2 instanceof nms_Packet3Chat;
            var$10 = $var2;
            while (var$11.$hasNext()) {
                u: {
                    $var3 = (var$11.$next()).$playerNetServerHandler;
                    if ($var5) {
                        var$5 = $var3.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break u;
                        if (var$5 == 1 && !var$10.$isServer)
                            break u;
                    }
                    try {
                        $var3 = $var3.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$12 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$12);
                        jl_System_errCache = var$12;
                    }
                    jl_Throwable_printStackTrace($var3, jl_System_errCache);
                }
            }
            $par1DamageSource = $par1DamageSource.$myEntity;
            if ($par1DamageSource instanceof nms_EntityPlayerMP)
                h: {
                    $par1DamageSource = $par1DamageSource.$playerNetServerHandler;
                    if ($var5) {
                        $var5 = $par1DamageSource.$playerEntity.$chatVisibility;
                        if ($var5 == 2)
                            break h;
                        if ($var5 == 1 && !var$10.$isServer)
                            break h;
                    }
                    try {
                        $par1DamageSource = $par1DamageSource.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1DamageSource = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                }
        }
        return;
    case 3:
        v: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break v;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$12);
        }
        w: while (true) {
            while (true) {
                if (!var$11.$hasNext())
                    break w;
                $var3 = (var$11.$next()).$playerNetServerHandler;
                if (!$var5)
                    break;
                var$5 = $var3.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    continue;
                if (var$5 != 1)
                    break;
                if (var$10.$isServer)
                    break;
            }
            try {
                $var3 = $var3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$12);
        }
        $par1DamageSource = $par1DamageSource.$myEntity;
        if ($par1DamageSource instanceof nms_EntityPlayerMP)
            a: {
                $par1DamageSource = $par1DamageSource.$playerNetServerHandler;
                if ($var5) {
                    $var5 = $par1DamageSource.$playerEntity.$chatVisibility;
                    if ($var5 == 2)
                        break a;
                    if ($var5 == 1 && !var$10.$isServer)
                        break a;
                }
                try {
                    $par1DamageSource = $par1DamageSource.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1DamageSource = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
            }
        return;
    case 4:
        v: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1DamageSource, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break v;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1DamageSource = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
        }
        return;
    case 5:
        $this.$dropFewItems($var5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $this.$recentlyHit <= 0 ? 0 : 1;
        $ptr = 6;
    case 6:
        $this.$dropEquipment($var5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$recentlyHit > 0) {
            $par1DamageSource = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$13;
            var$6 = Long_lo(Long_shru(var$13, 17));
            while (true) {
                var$7 = var$6 % 200 | 0;
                if (((var$6 - var$7 | 0) + 199 | 0) >= 0)
                    break;
                var$13 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$13;
                var$6 = Long_lo(Long_shru(var$13, 17));
            }
            $var5 = var$7 - $var4 | 0;
            if ($var5 < 5) {
                $var4 = $var5 > 0 ? 0 : 1;
                $ptr = 7;
                continue main;
            }
        }
        $par1DamageSource = $this.$worldObj;
        $var2 = new nms_Packet38EntityStatus;
        $var5 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var2.$entityId0 = $var5;
        $var2.$entityStatus = 3;
        $par1DamageSource = $par1DamageSource.$theEntityTracker.$trackedEntityIDs;
        var$6 = $this.$entityId;
        $var4 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        $var4 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$9 = $par1DamageSource.$slots.data;
        $par1DamageSource = var$9[$var4 & (var$9.length - 1 | 0)];
        w: {
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$hashEntry == var$6) {
                    $par1DamageSource = $par1DamageSource.$valueEntry;
                    break w;
                }
                $par1DamageSource = $par1DamageSource.$nextEntry0;
            }
            $par1DamageSource = null;
        }
        $par1DamageSource = $par1DamageSource;
        if ($par1DamageSource !== null) {
            $var3 = $par1DamageSource.$trackingPlayers.$backingMap;
            if ($var3.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = $var3;
                ju_AbstractCollection__init_(var$10);
                $var3.$cachedKeySet = var$10;
            }
            var$11 = $var3.$cachedKeySet.$iterator();
            $var5 = $var2 instanceof nms_Packet3Chat;
            var$10 = $var2;
            while (var$11.$hasNext()) {
                x: {
                    $var3 = (var$11.$next()).$playerNetServerHandler;
                    if ($var5) {
                        var$5 = $var3.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break x;
                        if (var$5 == 1 && !var$10.$isServer)
                            break x;
                    }
                    try {
                        $var3 = $var3.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$12 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$12);
                        jl_System_errCache = var$12;
                    }
                    jl_Throwable_printStackTrace($var3, jl_System_errCache);
                }
            }
            $par1DamageSource = $par1DamageSource.$myEntity;
            if ($par1DamageSource instanceof nms_EntityPlayerMP)
                q: {
                    $par1DamageSource = $par1DamageSource.$playerNetServerHandler;
                    if ($var5) {
                        $var5 = $par1DamageSource.$playerEntity.$chatVisibility;
                        if ($var5 == 2)
                            break q;
                        if ($var5 == 1 && !var$10.$isServer)
                            break q;
                    }
                    try {
                        $par1DamageSource = $par1DamageSource.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1DamageSource = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                }
        }
        return;
    case 7:
        $this.$dropRareDrop($var4);
        if ($rt_suspending()) {
            break main;
        }
        $par1DamageSource = $this.$worldObj;
        $var2 = new nms_Packet38EntityStatus;
        $var5 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var2.$entityId0 = $var5;
        $var2.$entityStatus = 3;
        $par1DamageSource = $par1DamageSource.$theEntityTracker.$trackedEntityIDs;
        var$6 = $this.$entityId;
        $var4 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        $var4 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
        var$9 = $par1DamageSource.$slots.data;
        $par1DamageSource = var$9[$var4 & (var$9.length - 1 | 0)];
        v: {
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$hashEntry == var$6) {
                    $par1DamageSource = $par1DamageSource.$valueEntry;
                    break v;
                }
                $par1DamageSource = $par1DamageSource.$nextEntry0;
            }
            $par1DamageSource = null;
        }
        $par1DamageSource = $par1DamageSource;
        if ($par1DamageSource !== null) {
            $var3 = $par1DamageSource.$trackingPlayers.$backingMap;
            if ($var3.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = $var3;
                ju_AbstractCollection__init_(var$10);
                $var3.$cachedKeySet = var$10;
            }
            var$11 = $var3.$cachedKeySet.$iterator();
            $var5 = $var2 instanceof nms_Packet3Chat;
            var$10 = $var2;
            while (var$11.$hasNext()) {
                y: {
                    $var3 = (var$11.$next()).$playerNetServerHandler;
                    if ($var5) {
                        var$5 = $var3.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break y;
                        if (var$5 == 1 && !var$10.$isServer)
                            break y;
                    }
                    try {
                        $var3 = $var3.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$12 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$12);
                        jl_System_errCache = var$12;
                    }
                    jl_Throwable_printStackTrace($var3, jl_System_errCache);
                }
            }
            $par1DamageSource = $par1DamageSource.$myEntity;
            if ($par1DamageSource instanceof nms_EntityPlayerMP)
                p: {
                    $par1DamageSource = $par1DamageSource.$playerNetServerHandler;
                    if ($var5) {
                        $var5 = $par1DamageSource.$playerEntity.$chatVisibility;
                        if ($var5 == 2)
                            break p;
                        if ($var5 == 1 && !var$10.$isServer)
                            break p;
                    }
                    try {
                        $par1DamageSource = $par1DamageSource.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1DamageSource = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $var2, $var3, $var4, var$5, var$6, var$7, $var5, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityLivingBase_dropEquipment = ($this, $par1, $par2) => {
    return;
},
nms_EntityLivingBase_knockBack = ($this, $par1Entity, $par2, $par3, $par5) => {
    let var$5, var$6, var$7, var$8, $var7, var$10, var$11, var$12;
    $par1Entity = $this.$rand;
    var$5 = Long_and(Long_add(Long_mul($par1Entity.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Entity.$seed = var$5;
    var$6 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$5, 22))), 27);
    var$7 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Entity.$seed = var$7;
    var$8 = Long_toNumber(Long_add(var$6, Long_fromInt(Long_lo(Long_shru(var$7, 21))))) * 1.1102230246251565E-16;
    $par1Entity = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_knockbackResistance);
    if ($par1Entity.$field_111133_g) {
        $par1Entity.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1Entity);
        $par1Entity.$field_111133_g = 0;
    }
    if (var$8 >= $par1Entity.$field_111139_h) {
        $this.$isAirBorne = 1;
        $var7 = jl_Math_sqrt($par3 * $par3 + $par5 * $par5);
        var$10 = $this.$motionX / 2.0;
        $this.$motionX = var$10;
        var$11 = $this.$motionY / 2.0;
        $this.$motionY = var$11;
        var$12 = $this.$motionZ / 2.0;
        $this.$motionZ = var$12;
        var$8 = $var7;
        $this.$motionX = var$10 - $par3 / var$8 * 0.4000000059604645;
        $par3 = var$11 + 0.4000000059604645;
        $this.$motionY = $par3;
        $this.$motionZ = var$12 - $par5 / var$8 * 0.4000000059604645;
        if ($par3 > 0.4000000059604645)
            $this.$motionY = 0.4000000059604645;
    }
},
nms_EntityLivingBase_getHurtSound = $this => {
    return $rt_s(1999);
},
nms_EntityLivingBase_getDeathSound = $this => {
    return $rt_s(1999);
},
nms_EntityLivingBase_dropRareDrop = ($this, $par1) => {
    return;
},
nms_EntityLivingBase_dropFewItems = ($this, $par1, $par2) => {
    return;
},
nms_EntityLivingBase_isOnLadder = $this => {
    let var$1, $var1, $var2, $var3, var$5, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$posX;
        $var1 = var$1 | 0;
        if (var$1 < $var1)
            $var1 = $var1 - 1 | 0;
        var$1 = $this.$boundingBox0.$minY0;
        $var2 = var$1 | 0;
        if (var$1 < $var2)
            $var2 = $var2 - 1 | 0;
        var$1 = $this.$posZ;
        $var3 = var$1 | 0;
        if (var$1 < $var3)
            $var3 = $var3 - 1 | 0;
        var$5 = $this.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$5, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        nms_Block_$callClinit();
        return $var4 != nms_Block_ladder.$blockID && $var4 != nms_Block_vine.$blockID ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, $var3, var$5, $var4, $ptr);
},
nms_EntityLivingBase_isEntityAlive = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    a: {
        if (!$this.$isDead) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                var$3 = 1;
                break a;
            }
        }
        var$3 = 0;
    }
    return var$3;
},
nms_EntityLivingBase_fall = ($this, $par1) => {
    let $var6, $var2, $var5, var$5, var$6, $var4, $var3, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();$var2 = $thread.pop();$var6 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $this.$riddenByEntity;
        if ($var6 !== null) {
            $ptr = 1;
            continue main;
        }
        nms_Potion_$callClinit();
        $var6 = nms_Potion_jump;
        $var2 = $this.$activePotionsMap;
        $var5 = $var6.$id0;
        if ($var5 >= (-128) && $var5 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[$var5 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = $var5;
        }
        if ($var6 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            $var5 = $var6.$value;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    var$6 = $var2.$key;
                    if ($var6 !== var$6 && !($var6 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        $par1 = $par1 - 3.0 - ($var2 === null ? 0.0 : $var2.$amplifier + 1 | 0);
        $var4 = $par1 | 0;
        if ($par1 > $var4)
            $var4 = $var4 + 1 | 0;
        if ($var4 <= 0)
            return;
        if ($var4 <= 4) {
            $var6 = $rt_s(2000);
            $par1 = 1.0;
            $var3 = 1.0;
            $ptr = 2;
            continue main;
        }
        $var6 = $rt_s(2001);
        $par1 = 1.0;
        $var3 = 1.0;
        $ptr = 3;
        continue main;
    case 1:
        $var6.$fall($par1);
        if ($rt_suspending()) {
            break main;
        }
        nms_Potion_$callClinit();
        $var6 = nms_Potion_jump;
        $var2 = $this.$activePotionsMap;
        $var5 = $var6.$id0;
        if ($var5 >= (-128) && $var5 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[$var5 + 128 | 0];
        } else {
            $var6 = new jl_Integer;
            $var6.$value = $var5;
        }
        if ($var6 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            $var5 = $var6.$value;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    var$6 = $var2.$key;
                    if ($var6 !== var$6 && !($var6 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        $par1 = $par1 - 3.0 - ($var2 === null ? 0.0 : $var2.$amplifier + 1 | 0);
        $var4 = $par1 | 0;
        if ($par1 > $var4)
            $var4 = $var4 + 1 | 0;
        if ($var4 <= 0)
            return;
        if ($var4 <= 4) {
            $var6 = $rt_s(2000);
            $par1 = 1.0;
            $var3 = 1.0;
            $ptr = 2;
            continue main;
        }
        $var6 = $rt_s(2001);
        $par1 = 1.0;
        $var3 = 1.0;
        $ptr = 3;
        continue main;
    case 2:
        $this.$playSound($var6, $par1, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = nms_DamageSource_fall;
        $par1 = $var4;
        $ptr = 4;
        continue main;
    case 3:
        $this.$playSound($var6, $par1, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = nms_DamageSource_fall;
        $par1 = $var4;
        $ptr = 4;
    case 4:
        $this.$attackEntityFrom($var6, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$worldObj;
        var$9 = $this.$posX;
        var$10 = var$9 | 0;
        if (var$9 < var$10)
            var$10 = var$10 - 1 | 0;
        var$9 = $this.$posY - 0.20000000298023224 - $this.$yOffset;
        var$11 = var$9 | 0;
        if (var$9 < var$11)
            var$11 = var$11 - 1 | 0;
        var$9 = $this.$posZ;
        $var4 = var$9 | 0;
        if (var$9 < $var4)
            $var4 = $var4 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($var6, var$10, var$11, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 <= 0)
            return;
        nms_Block_$callClinit();
        $var6 = nms_Block_blocksList.data[$var5].$stepSound;
        $var2 = $var6.$stepSoundName;
        var$6 = new jl_StringBuilder;
        var$6.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(1383));
        $var5 = var$6.$length0;
        if ($var2 === null)
            $var2 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$6, $var5, $var2);
        $var2 = new jl_String;
        var$5 = var$6.$buffer;
        var$12 = var$5.data;
        var$11 = var$6.$length0;
        $var5 = var$12.length;
        if (var$11 >= 0 && var$11 <= ($var5 - 0 | 0)) {
            $var2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$11);
            $par1 = $var6.$stepSoundVolume * 0.5;
            $var3 = $var6.$stepSoundPitch * 0.75;
            $ptr = 6;
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($var6);
        $rt_throw($var6);
    case 6:
        $this.$playSound($var2, $par1, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var6, $var2, $var5, var$5, var$6, $var4, $var3, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityLivingBase_getTotalArmorValue = $this => {
    let $var1, $var2, $var3, $var4, $var5, var$6, $var6;
    $var1 = 0;
    $var2 = ($this.$getLastActiveItems()).data;
    $var3 = $var2.length;
    $var4 = 0;
    while ($var4 < $var3) {
        $var5 = $var2[$var4];
        if ($var5 !== null) {
            nms_Item_$callClinit();
            var$6 = nms_Item_itemsList.data;
            $var6 = $var5.$itemID;
            if (var$6[$var6] instanceof nms_ItemArmor)
                $var1 = $var1 + var$6[$var6].$damageReduceAmount | 0;
        }
        $var4 = $var4 + 1 | 0;
    }
    return $var1;
},
nms_EntityLivingBase_damageArmor = ($this, $par1) => {
    return;
},
nms_EntityLivingBase_applyArmorCalculations = ($this, $par1DamageSource, $par2) => {
    let $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1DamageSource.$isUnblockable)
            return $par2;
        $var4 = $par2 * (25 - $this.$getTotalArmorValue() | 0);
        $ptr = 1;
    case 1:
        $this.$damageArmor($par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $var4 / 25.0;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var4, $ptr);
},
nms_EntityLivingBase_applyPotionDamageCalculations = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, $var3, var$6, var$7, var$8, $var4;
    nms_Potion_$callClinit();
    var$3 = nms_Potion_resistance;
    var$4 = $this.$activePotionsMap;
    $var3 = var$3.$id0;
    if ($var3 >= (-128) && $var3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[$var3 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = $var3;
    }
    if (var$3 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$3.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$3 !== var$8 && !(var$3 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    $var3 = var$4 === null ? 0 : 1;
    if ($var3 && $par1DamageSource !== nms_DamageSource_outOfWorld) {
        var$3 = nms_Potion_resistance;
        var$4 = $this.$activePotionsMap;
        $var4 = var$3.$id0;
        if ($var4 >= (-128) && $var4 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$8 = jl_Integer_integerCache.data[$var4 + 128 | 0];
        } else {
            var$8 = new jl_Integer;
            var$8.$value = $var4;
        }
        if (var$8 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$6 = var$8.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    var$3 = var$4.$key;
                    if (var$8 !== var$3 && !(var$8 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        $par2 = $par2 * (25 - (((var$4 === null ? null : var$4.$value0).$amplifier + 1 | 0) * 5 | 0) | 0) / 25.0;
    }
    if ($par2 <= 0.0)
        return 0.0;
    $var3 = nms_EnchantmentHelper_getEnchantmentModifierDamage($this.$getLastActiveItems(), $par1DamageSource);
    if ($var3 > 20)
        $var3 = 20;
    if ($var3 > 0 && $var3 <= 20)
        $par2 = $par2 * (25 - $var3 | 0) / 25.0;
    return $par2;
},
nms_EntityLivingBase_damageEntity = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$invulnerable) {
            if (!$par1DamageSource.$isUnblockable) {
                var$3 = $par2 * (25 - $this.$getTotalArmorValue() | 0);
                $ptr = 1;
                continue main;
            }
            $par2 = $this.$applyPotionDamageCalculations($par1DamageSource, $par2);
            var$4 = jl_Math_maxImpl($par2 - $this.$getAbsorptionAmount(), 0.0);
            $this.$setAbsorptionAmount($this.$getAbsorptionAmount() - ($par2 - var$4));
            if (var$4 !== 0.0) {
                var$5 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[134];
                if (var$6 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$7 = var$6.$value;
                    var$8 = var$5.$elementData.data;
                    var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$7) {
                            var$9 = var$5.$key;
                            if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$3 = (var$5 === null ? null : var$5.$value0).$watchedObject.$value3;
                $par2 = var$3 - var$4;
                var$5 = $this.$dataWatcher;
                var$10 = 0.0;
                var$6 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
                if (var$6.$field_111133_g) {
                    var$6.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$6);
                    var$6.$field_111133_g = 0;
                }
                var$11 = var$6.$field_111139_h;
                if ($par2 >= var$10)
                    var$10 = $par2 <= var$11 ? $par2 : var$11;
                var$12 = new jl_Float;
                var$12.$value3 = var$10;
                var$6 = var$5.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$13 = jl_Integer_integerCache.data[134];
                if (var$13 === null) {
                    var$6 = var$6.$elementData.data[0];
                    while (var$6 !== null && var$6.$key !== null) {
                        var$6 = var$6.$next3;
                    }
                } else {
                    var$14 = var$13.$value;
                    var$8 = var$6.$elementData.data;
                    var$6 = var$8[var$14 & (var$8.length - 1 | 0)];
                    while (var$6 !== null) {
                        if (var$6.$origKeyHash == var$14) {
                            var$9 = var$6.$key;
                            if (var$13 !== var$9 && !(var$13 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$14 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$6 = var$6.$next3;
                    }
                }
                var$9 = var$6 === null ? null : var$6.$value0;
                var$6 = var$9.$watchedObject;
                if (var$12 === var$6)
                    var$7 = 1;
                else
                    a: {
                        if (var$6 instanceof jl_Float) {
                            $par2 = var$12.$value3;
                            var$10 = var$6.$value3;
                            if ($par2 !== $par2 ? (var$10 === var$10 ? 0 : 1) : $rt_floatToRawIntBits($par2) != $rt_floatToRawIntBits(var$10) ? 0 : 1) {
                                var$7 = 1;
                                break a;
                            }
                        }
                        var$7 = 0;
                    }
                if (!var$7) {
                    var$9.$watchedObject = var$12;
                    var$9.$watched = 1;
                    var$5.$objectChanged = 1;
                }
                var$6 = $this.$_combatTracker;
                nms_CombatTracker_func_94549_h(var$6);
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        $this.$damageArmor($par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = var$3 / 25.0;
        $par2 = $this.$applyPotionDamageCalculations($par1DamageSource, $par2);
        var$4 = jl_Math_maxImpl($par2 - $this.$getAbsorptionAmount(), 0.0);
        $this.$setAbsorptionAmount($this.$getAbsorptionAmount() - ($par2 - var$4));
        if (var$4 === 0.0)
            return;
        var$5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[134];
        if (var$6 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$5.$elementData.data;
            var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$7) {
                    var$9 = var$5.$key;
                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$3 = (var$5 === null ? null : var$5.$value0).$watchedObject.$value3;
        $par2 = var$3 - var$4;
        var$5 = $this.$dataWatcher;
        var$10 = 0.0;
        var$6 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
        if (var$6.$field_111133_g) {
            var$6.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$6);
            var$6.$field_111133_g = 0;
        }
        var$11 = var$6.$field_111139_h;
        if ($par2 >= var$10)
            var$10 = $par2 <= var$11 ? $par2 : var$11;
        var$12 = new jl_Float;
        var$12.$value3 = var$10;
        var$6 = var$5.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[134];
        if (var$13 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$14 = var$13.$value;
            var$8 = var$6.$elementData.data;
            var$6 = var$8[var$14 & (var$8.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$14) {
                    var$9 = var$6.$key;
                    if (var$13 !== var$9 && !(var$13 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$14 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$9 = var$6 === null ? null : var$6.$value0;
        var$6 = var$9.$watchedObject;
        if (var$12 === var$6)
            var$7 = 1;
        else
            b: {
                if (var$6 instanceof jl_Float) {
                    $par2 = var$12.$value3;
                    var$10 = var$6.$value3;
                    if ($par2 !== $par2 ? (var$10 === var$10 ? 0 : 1) : $rt_floatToRawIntBits($par2) != $rt_floatToRawIntBits(var$10) ? 0 : 1) {
                        var$7 = 1;
                        break b;
                    }
                }
                var$7 = 0;
            }
        if (!var$7) {
            var$9.$watchedObject = var$12;
            var$9.$watched = 1;
            var$5.$objectChanged = 1;
        }
        var$6 = $this.$_combatTracker;
        nms_CombatTracker_func_94549_h(var$6);
        $ptr = 2;
    case 2:
        nms_CombatTracker_func_94545_a(var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = new nms_CombatEntry;
        var$9 = var$6.$fighter;
        var$7 = var$9.$ticksExisted;
        var$12 = var$6.$field_94551_f;
        $par2 = var$9.$fallDistance;
        var$5.$damageSrc = $par1DamageSource;
        var$5.$field_94567_b = var$7;
        var$5.$field_94568_c = var$4;
        var$5.$field_94565_d = var$3;
        var$5.$field_94566_e = var$12;
        var$5.$field_94564_f = $par2;
        $par1DamageSource = var$6.$field_94556_a;
        ju_ArrayList_ensureCapacity($par1DamageSource, $par1DamageSource.$size0 + 1 | 0);
        var$8 = $par1DamageSource.$array.data;
        var$15 = $par1DamageSource.$size0;
        $par1DamageSource.$size0 = var$15 + 1 | 0;
        var$8[var$15] = var$5;
        $par1DamageSource.$modCount = $par1DamageSource.$modCount + 1 | 0;
        var$6.$field_94555_c = var$6.$fighter.$ticksExisted;
        var$6.$field_94553_e = 1;
        var$6.$field_94552_d = var$6.$field_94552_d | var$5.$damageSrc.$getEntity() instanceof nms_EntityLivingBase;
        $this.$setAbsorptionAmount($this.$getAbsorptionAmount() - var$4);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityLivingBase_func_110142_aN = $this => {
    return $this.$_combatTracker;
};
let nms_EntityLivingBase_func_94060_bK = $this => {
    let var$1;
    if (nms_CombatTracker_func_94550_c($this.$_combatTracker) !== null)
        var$1 = nms_CombatTracker_func_94550_c($this.$_combatTracker);
    else {
        var$1 = $this.$attackingPlayer;
        if (var$1 === null) {
            var$1 = $this.$entityLivingToAttack;
            if (var$1 === null)
                var$1 = null;
        }
    }
    return var$1;
},
nms_EntityLivingBase_getArmSwingAnimationEnd = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    nms_Potion_$callClinit();
    var$1 = nms_Potion_digSpeed;
    var$2 = $this.$activePotionsMap;
    var$3 = var$1.$id0;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$3;
    }
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$1.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$1 !== var$6 && !(var$1 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (var$2 === null ? 0 : 1) {
        var$1 = nms_Potion_digSpeed;
        var$2 = $this.$activePotionsMap;
        var$4 = var$1.$id0;
        if (var$4 >= (-128) && var$4 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$1 = jl_Integer_integerCache.data[var$4 + 128 | 0];
        } else {
            var$1 = new jl_Integer;
            var$1.$value = var$4;
        }
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$1.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$1 !== var$6 && !(var$1 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = 6 - ((1 + (var$2 === null ? null : var$2.$value0).$amplifier | 0) * 1 | 0) | 0;
    } else {
        var$1 = nms_Potion_digSlowdown;
        var$2 = $this.$activePotionsMap;
        var$3 = var$1.$id0;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$1 = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            var$1 = new jl_Integer;
            var$1.$value = var$3;
        }
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$1.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$1 !== var$6 && !(var$1 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 6;
        else {
            var$1 = nms_Potion_digSlowdown;
            var$2 = $this.$activePotionsMap;
            var$4 = var$1.$id0;
            if (var$4 >= (-128) && var$4 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$1 = jl_Integer_integerCache.data[var$4 + 128 | 0];
            } else {
                var$1 = new jl_Integer;
                var$1.$value = var$4;
            }
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$1.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$1 !== var$6 && !(var$1 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = 6 + ((1 + (var$2 === null ? null : var$2.$value0).$amplifier | 0) * 2 | 0) | 0;
        }
    }
    return var$3;
},
nms_EntityLivingBase_swingItem = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$isSwingInProgress && $this.$swingProgressInt < (nms_EntityLivingBase_getArmSwingAnimationEnd($this) / 2 | 0) && $this.$swingProgressInt >= 0)) {
            $this.$swingProgressInt = (-1);
            $this.$isSwingInProgress = 1;
            var$1 = $this.$worldObj;
            if (var$1 instanceof nms_WorldServer) {
                var$2 = var$1.$theEntityTracker;
                var$1 = new nms_Packet18Animation;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3 = $this.$entityId;
                var$1.$entityId1 = var$3;
                var$1.$animate = 1;
                var$4 = var$2.$trackedEntityIDs;
                var$5 = var$3 ^ (var$3 >>> 20 | 0) ^ (var$3 >>> 12 | 0);
                var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$6 = var$4.$slots.data;
                var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
                a: {
                    while (var$4 !== null) {
                        if (var$4.$hashEntry == var$3) {
                            var$4 = var$4.$valueEntry;
                            break a;
                        }
                        var$4 = var$4.$nextEntry0;
                    }
                    var$4 = null;
                }
                var$4 = var$4;
                if (var$4 !== null) {
                    var$4 = var$4.$trackingPlayers.$backingMap;
                    if (var$4.$cachedKeySet === null) {
                        var$2 = new ju_HashMap$1;
                        var$2.$this$0 = var$4;
                        var$4.$cachedKeySet = var$2;
                    }
                    var$7 = var$4.$cachedKeySet.$iterator();
                    var$3 = var$1 instanceof nms_Packet3Chat;
                    var$2 = var$1;
                    while (var$7.$hasNext()) {
                        b: {
                            var$4 = (var$7.$next()).$playerNetServerHandler;
                            if (var$3) {
                                var$8 = var$4.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break b;
                                if (var$8 == 1 && !var$2.$isServer)
                                    break b;
                            }
                            try {
                                var$4 = var$4.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$4 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$9 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$9, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$9;
                            }
                            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                        }
                    }
                }
            }
        }
        return;
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_ByteArrayOutputStream__init_1(var$10, var$5);
                var$5 = 0;
                ji_PrintStream__init_(var$9, var$10, var$5);
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$4, var$9);
        }
        d: while (true) {
            while (true) {
                if (!var$7.$hasNext())
                    break d;
                var$4 = (var$7.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                var$8 = var$4.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    continue;
                if (var$8 != 1)
                    break;
                if (var$2.$isServer)
                    break;
            }
            try {
                var$4 = var$4.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_ByteArrayOutputStream__init_1(var$10, var$5);
                var$5 = 0;
                ji_PrintStream__init_(var$9, var$10, var$5);
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$4, var$9);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityLivingBase_kill = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = nms_DamageSource_outOfWorld;
        var$2 = 4.0;
        $ptr = 1;
    case 1:
        $this.$attackEntityFrom(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_EntityLivingBase_updateArmSwingProgress = $this => {
    let $var1, var$2;
    $var1 = nms_EntityLivingBase_getArmSwingAnimationEnd($this);
    if (!$this.$isSwingInProgress)
        $this.$swingProgressInt = 0;
    else {
        var$2 = $this.$swingProgressInt + 1 | 0;
        $this.$swingProgressInt = var$2;
        if (var$2 >= $var1) {
            $this.$swingProgressInt = 0;
            $this.$isSwingInProgress = 0;
        }
    }
    $this.$swingProgress = $this.$swingProgressInt / $var1;
},
nms_EntityLivingBase_getEntityAttribute = ($this, $par1Attribute) => {
    let var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if ($par1Attribute === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = $par1Attribute.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if ($par1Attribute !== var$3 && !($par1Attribute !== var$3 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? null : var$2.$value0;
},
nms_EntityLivingBase_getAttributeMap = $this => {
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    return $this.$attributeMap;
},
nms_EntityLivingBase_getCreatureAttribute = $this => {
    return nms_EnumCreatureAttribute_UNDEFINED;
},
nms_EntityLivingBase_getSoundVolume = $this => {
    return 1.0;
},
nms_EntityLivingBase_getSoundPitch = $this => {
    let var$1, var$2, var$3, var$4;
    if (!$this.$isChild()) {
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 24)) / 1.6777216E7;
        var$4 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$4;
        var$3 = (var$3 - Long_lo(Long_shru(var$4, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0;
    } else {
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 24)) / 1.6777216E7;
        var$4 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$4;
        var$3 = (var$3 - Long_lo(Long_shru(var$4, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.5;
    }
    return var$3;
},
nms_EntityLivingBase_isMovementBlocked = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[134];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value3 > 0.0 ? 0 : 1;
},
nms_EntityLivingBase_setPositionAndUpdate = ($this, $par1, $par3, $par5) => {
    let var$4, var$5;
    var$4 = $this.$rotationYaw;
    var$5 = $this.$rotationPitch;
    $this.$posX = $par1;
    $this.$prevPosX = $par1;
    $this.$lastTickPosX = $par1;
    $par3 = $par3 + $this.$yOffset;
    $this.$posY = $par3;
    $this.$prevPosY = $par3;
    $this.$lastTickPosY = $par3;
    $this.$posZ = $par5;
    $this.$prevPosZ = $par5;
    $this.$lastTickPosZ = $par5;
    $this.$rotationYaw = var$4;
    $this.$rotationPitch = var$5;
    nms_Entity_setPosition($this, $par1, $par3, $par5);
},
nms_EntityLivingBase_dismountEntity = ($this, $par1Entity) => {
    let $var3, $var5, $var7, $var9, $var11, $var13, $var14, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1Entity.$posX;
        $var5 = $par1Entity.$boundingBox0.$minY0 + $par1Entity.$height0;
        $var7 = $par1Entity.$posZ;
        $var9 = (-1.5);
        a: {
            while ($var9 < 2.0) {
                $var11 = (-1.5);
                while ($var11 < 2.0) {
                    if ($var9 !== 0.0)
                        break a;
                    if ($var11 !== 0.0)
                        break a;
                    $var11 = $var11 + 1.0;
                }
                $var9 = $var9 + 1.0;
            }
            $ptr = 1;
            continue main;
        }
        $var13 = $this.$posX + $var9 | 0;
        $var14 = $this.$posZ + $var11 | 0;
        $par1Entity = $this.$boundingBox0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par1Entity.$minX0 + $var9;
        var$11 = $par1Entity.$minY0 + 1.0;
        var$12 = $par1Entity.$minZ0 + $var11;
        var$13 = $par1Entity.$maxX0 + $var9;
        var$14 = $par1Entity.$maxY + 1.0;
        var$15 = $par1Entity.$maxZ0 + $var11;
        var$16 = var$9.$nextPoolIndex;
        $par1Entity = var$9.$listAABB;
        var$17 = $par1Entity.$size0;
        var$18 = $rt_compare(var$16, var$17);
        if (var$18 >= 0) {
            var$19 = new nms_AxisAlignedBB;
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
            ju_ArrayList_ensureCapacity($par1Entity, var$17 + 1 | 0);
            var$20 = $par1Entity.$array.data;
            var$18 = $par1Entity.$size0;
            $par1Entity.$size0 = var$18 + 1 | 0;
            var$20[var$18] = var$19;
            $par1Entity.$modCount = $par1Entity.$modCount + 1 | 0;
        } else if (var$16 >= 0 && var$18 < 0) {
            var$19 = $par1Entity.$array.data[var$16];
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
        } else {
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Entity);
            $rt_throw($par1Entity);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $par1Entity = $this.$worldObj;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityPlayerMP_setPositionAndUpdate($this, $var3, $var5, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $tmp = nms_World_getCollidingBlockBounds($par1Entity, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity = $tmp;
        if ($par1Entity.$size0 ? 0 : 1) {
            $par1Entity = $this.$worldObj;
            var$16 = $this.$posY | 0;
            nms_Block_$callClinit();
            var$20 = nms_Block_blocksList.data;
            $ptr = 3;
            continue main;
        }
        b: {
            c: while (true) {
                $var11 = $var11 + 1.0;
                while ($var11 >= 2.0) {
                    $var9 = $var9 + 1.0;
                    if ($var9 >= 2.0)
                        break c;
                    $var11 = (-1.5);
                }
                if ($var9 !== 0.0)
                    break b;
                if ($var11 !== 0.0)
                    break b;
            }
            $ptr = 1;
            continue main;
        }
        $var13 = $this.$posX + $var9 | 0;
        $var14 = $this.$posZ + $var11 | 0;
        $par1Entity = $this.$boundingBox0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par1Entity.$minX0 + $var9;
        var$11 = $par1Entity.$minY0 + 1.0;
        var$12 = $par1Entity.$minZ0 + $var11;
        var$13 = $par1Entity.$maxX0 + $var9;
        var$14 = $par1Entity.$maxY + 1.0;
        var$15 = $par1Entity.$maxZ0 + $var11;
        var$16 = var$9.$nextPoolIndex;
        $par1Entity = var$9.$listAABB;
        var$17 = $par1Entity.$size0;
        var$18 = $rt_compare(var$16, var$17);
        if (var$18 >= 0) {
            var$19 = new nms_AxisAlignedBB;
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
            ju_ArrayList_ensureCapacity($par1Entity, var$17 + 1 | 0);
            var$20 = $par1Entity.$array.data;
            var$18 = $par1Entity.$size0;
            $par1Entity.$size0 = var$18 + 1 | 0;
            var$20[var$18] = var$19;
            $par1Entity.$modCount = $par1Entity.$modCount + 1 | 0;
        } else if (var$16 >= 0 && var$18 < 0) {
            var$19 = $par1Entity.$array.data[var$16];
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
        } else {
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Entity);
            $rt_throw($par1Entity);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $par1Entity = $this.$worldObj;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1Entity, $var13, var$16, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        var$19 = var$20[var$18];
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1Entity, $var13, var$16, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1Entity, var$19, var$16)) {
            $var3 = $this.$posX + $var9;
            $var5 = $this.$posY + 1.0;
            var$14 = $this.$posZ + $var11;
            $ptr = 7;
            continue main;
        }
        $par1Entity = $this.$worldObj;
        var$16 = ($this.$posY | 0) - 1 | 0;
        var$20 = nms_Block_blocksList.data;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1Entity, $var13, var$16, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        var$19 = var$20[var$18];
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata($par1Entity, $var13, var$16, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1Entity, var$19, var$16)) {
            $par1Entity = $this.$worldObj;
            var$16 = ($this.$posY | 0) - 1 | 0;
            $ptr = 8;
            continue main;
        }
        $var3 = $this.$posX + $var9;
        $var5 = $this.$posY + 1.0;
        $var7 = $this.$posZ + $var11;
        d: {
            e: while (true) {
                $var11 = $var11 + 1.0;
                while ($var11 >= 2.0) {
                    $var9 = $var9 + 1.0;
                    if ($var9 >= 2.0)
                        break e;
                    $var11 = (-1.5);
                }
                if ($var9 !== 0.0)
                    break d;
                if ($var11 !== 0.0)
                    break d;
            }
            $ptr = 1;
            continue main;
        }
        $var13 = $this.$posX + $var9 | 0;
        $var14 = $this.$posZ + $var11 | 0;
        $par1Entity = $this.$boundingBox0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par1Entity.$minX0 + $var9;
        var$11 = $par1Entity.$minY0 + 1.0;
        var$12 = $par1Entity.$minZ0 + $var11;
        var$13 = $par1Entity.$maxX0 + $var9;
        var$14 = $par1Entity.$maxY + 1.0;
        var$15 = $par1Entity.$maxZ0 + $var11;
        var$16 = var$9.$nextPoolIndex;
        $par1Entity = var$9.$listAABB;
        var$17 = $par1Entity.$size0;
        var$18 = $rt_compare(var$16, var$17);
        if (var$18 >= 0) {
            var$19 = new nms_AxisAlignedBB;
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
            ju_ArrayList_ensureCapacity($par1Entity, var$17 + 1 | 0);
            var$20 = $par1Entity.$array.data;
            var$18 = $par1Entity.$size0;
            $par1Entity.$size0 = var$18 + 1 | 0;
            var$20[var$18] = var$19;
            $par1Entity.$modCount = $par1Entity.$modCount + 1 | 0;
        } else if (var$16 >= 0 && var$18 < 0) {
            var$19 = $par1Entity.$array.data[var$16];
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
        } else {
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Entity);
            $rt_throw($par1Entity);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $par1Entity = $this.$worldObj;
        $ptr = 2;
        continue main;
    case 7:
        nms_EntityPlayerMP_setPositionAndUpdate($this, $var3, $var5, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        $tmp = nms_World_getBlockId($par1Entity, $var13, var$16, $var14);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $tmp;
        if (!var$16) {
            nms_Material_$callClinit();
            var$19 = nms_Material_air;
        } else
            var$19 = nms_Block_blocksList.data[var$16].$blockMaterial;
        nms_Material_$callClinit();
        if (var$19 === nms_Material_water) {
            $var3 = $this.$posX + $var9;
            $var5 = $this.$posY + 1.0;
            $var7 = $this.$posZ + $var11;
        }
        c: {
            f: while (true) {
                $var11 = $var11 + 1.0;
                while ($var11 >= 2.0) {
                    $var9 = $var9 + 1.0;
                    if ($var9 >= 2.0)
                        break f;
                    $var11 = (-1.5);
                }
                if ($var9 !== 0.0)
                    break c;
                if ($var11 !== 0.0)
                    break c;
            }
            $ptr = 1;
            continue main;
        }
        $var13 = $this.$posX + $var9 | 0;
        $var14 = $this.$posZ + $var11 | 0;
        $par1Entity = $this.$boundingBox0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = $par1Entity.$minX0 + $var9;
        var$11 = $par1Entity.$minY0 + 1.0;
        var$12 = $par1Entity.$minZ0 + $var11;
        var$13 = $par1Entity.$maxX0 + $var9;
        var$14 = $par1Entity.$maxY + 1.0;
        var$15 = $par1Entity.$maxZ0 + $var11;
        var$16 = var$9.$nextPoolIndex;
        $par1Entity = var$9.$listAABB;
        var$17 = $par1Entity.$size0;
        var$18 = $rt_compare(var$16, var$17);
        if (var$18 >= 0) {
            var$19 = new nms_AxisAlignedBB;
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
            ju_ArrayList_ensureCapacity($par1Entity, var$17 + 1 | 0);
            var$20 = $par1Entity.$array.data;
            var$18 = $par1Entity.$size0;
            $par1Entity.$size0 = var$18 + 1 | 0;
            var$20[var$18] = var$19;
            $par1Entity.$modCount = $par1Entity.$modCount + 1 | 0;
        } else if (var$16 >= 0 && var$18 < 0) {
            var$19 = $par1Entity.$array.data[var$16];
            var$19.$minX0 = var$10;
            var$19.$minY0 = var$11;
            var$19.$minZ0 = var$12;
            var$19.$maxX0 = var$13;
            var$19.$maxY = var$14;
            var$19.$maxZ0 = var$15;
        } else {
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Entity);
            $rt_throw($par1Entity);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $par1Entity = $this.$worldObj;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var3, $var5, $var7, $var9, $var11, $var13, $var14, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntityLivingBase_jump = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $var1, var$10;
    $this.$motionY = 0.41999998688697815;
    nms_Potion_$callClinit();
    var$1 = nms_Potion_jump;
    var$2 = $this.$activePotionsMap;
    var$3 = var$1.$id0;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$1 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$1 = new jl_Integer;
        var$1.$value = var$3;
    }
    if (var$1 === null) {
        var$4 = var$2.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$5 = var$1.$value;
        var$6 = var$2.$elementData.data;
        var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$5) {
                var$2 = var$4.$key;
                if (var$1 !== var$2 && !(var$1 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    if (var$4 === null ? 0 : 1) {
        var$7 = $this.$motionY;
        var$1 = nms_Potion_jump;
        var$2 = $this.$activePotionsMap;
        var$3 = var$1.$id0;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$1 = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            var$1 = new jl_Integer;
            var$1.$value = var$3;
        }
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$8 = var$1.$value;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    var$4 = var$2.$key;
                    if (var$1 !== var$4 && !(var$1 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $this.$motionY = var$7 + ((var$2 === null ? null : var$2.$value0).$amplifier + 1 | 0) * 0.10000000149011612;
    }
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[128];
    if (var$4 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$8 = var$4.$value;
        var$6 = var$1.$elementData.data;
        var$1 = var$6[var$8 & (var$6.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$8) {
                var$2 = var$1.$key;
                if (var$4 !== var$2 && !jl_Integer_equals(var$4, var$2) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    if (!(var$1.$watchedObject.$value1 & 8) ? 0 : 1) {
        $var1 = $this.$rotationYaw * 0.01745329238474369;
        var$7 = $this.$motionX;
        var$6 = nms_MathHelper_SIN_TABLE.data;
        var$10 = $var1 * 10430.3779296875;
        $this.$motionX = var$7 - var$6[(var$10 | 0) & 65535] * 0.20000000298023224;
        $this.$motionZ = $this.$motionZ + var$6[(var$10 + 16384.0 | 0) & 65535] * 0.20000000298023224;
    }
    $this.$isAirBorne = 1;
},
nms_EntityLivingBase_moveEntityWithHeading = ($this, $par1, $par2) => {
    let $var7, $var9, $var10, var$6, var$7, $var3, var$9, $var6, $var4, var$12, $var8, $var12, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var12 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = $this.$isInWater();
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            if ($var7) {
                if (!($this instanceof nms_EntityPlayer))
                    break a;
                if (!$this.$capabilities.$isFlying)
                    break a;
            }
            $ptr = 2;
            continue main;
        }
        $var9 = $this.$posY;
        nms_Entity_moveFlying($this, $par1, $par2, !$this.$isAIEnabled() ? 0.019999999552965164 : 0.03999999910593033);
        $var10 = $this.$motionX;
        var$6 = $this.$motionY;
        var$7 = $this.$motionZ;
        $ptr = 4;
        continue main;
    case 2:
        a: {
            $tmp = $this.$handleLavaMovement();
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            if ($var7) {
                if (!($this instanceof nms_EntityPlayer))
                    break a;
                if (!$this.$capabilities.$isFlying)
                    break a;
            }
            $var3 = 0.9100000262260437;
            if ($this.$onGround) {
                $var3 = 0.546000063419342;
                var$9 = $this.$worldObj;
                $var9 = $this.$posX;
                $var6 = $var9 | 0;
                if ($var9 < $var6)
                    $var6 = $var6 - 1 | 0;
                $var9 = $this.$boundingBox0.$minY0;
                $var4 = $var9 | 0;
                if ($var9 < $var4)
                    $var4 = $var4 - 1 | 0;
                $var7 = $var4 - 1 | 0;
                $var9 = $this.$posZ;
                var$12 = $var9 | 0;
                if ($var9 < var$12)
                    var$12 = var$12 - 1 | 0;
                $ptr = 9;
                continue main;
            }
            $var8 = 0.16277135908603668 / ($var3 * $var3 * $var3);
            nms_Entity_moveFlying($this, $par1, $par2, !$this.$onGround ? $this.$jumpMovementFactor : $this.$getAIMoveSpeed() * $var8);
            $par1 = 0.9100000262260437;
            if (!$this.$onGround) {
                $ptr = 7;
                continue main;
            }
            $par1 = 0.546000063419342;
            var$9 = $this.$worldObj;
            $var9 = $this.$posX;
            var$12 = $var9 | 0;
            if ($var9 < var$12)
                var$12 = var$12 - 1 | 0;
            $var9 = $this.$boundingBox0.$minY0;
            $var6 = $var9 | 0;
            if ($var9 < $var6)
                $var6 = $var6 - 1 | 0;
            $var7 = $var6 - 1 | 0;
            $var9 = $this.$posZ;
            $var4 = $var9 | 0;
            if ($var9 < $var4)
                $var4 = $var4 - 1 | 0;
            $ptr = 13;
            continue main;
        }
        $var9 = $this.$posY;
        nms_Entity_moveFlying($this, $par1, $par2, 0.019999999552965164);
        $var10 = $this.$motionX;
        var$6 = $this.$motionY;
        var$7 = $this.$motionZ;
        $ptr = 3;
    case 3:
        nms_Entity_moveEntity($this, $var10, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$motionX * 0.5;
        $this.$motionX = $var10;
        var$6 = $this.$motionY * 0.5;
        $this.$motionY = var$6;
        var$7 = $this.$motionZ * 0.5;
        $this.$motionZ = var$7;
        var$6 = var$6 - 0.02;
        $this.$motionY = var$6;
        if (!$this.$isCollidedHorizontally) {
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var9 = $this.$posX - $this.$prevPosX;
            $var10 = $this.$posZ - $this.$prevPosZ;
            $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
            if ($var12 > 1.0)
                $var12 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        $var9 = var$6 + 0.6000000238418579 - $this.$posY + $var9;
        var$9 = $this.$boundingBox0;
        var$15 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = var$9.$minX0 + $var10;
        var$16 = var$9.$minY0 + $var9;
        var$17 = var$9.$minZ0 + var$7;
        $var10 = var$9.$maxX0 + $var10;
        $var9 = var$9.$maxY + $var9;
        var$7 = var$9.$maxZ0 + var$7;
        $var7 = var$15.$nextPoolIndex;
        var$9 = var$15.$listAABB;
        $var4 = var$9.$size0;
        $var6 = $rt_compare($var7, $var4);
        if ($var6 >= 0) {
            var$18 = new nms_AxisAlignedBB;
            var$18.$minX0 = var$6;
            var$18.$minY0 = var$16;
            var$18.$minZ0 = var$17;
            var$18.$maxX0 = $var10;
            var$18.$maxY = $var9;
            var$18.$maxZ0 = var$7;
            ju_ArrayList_ensureCapacity(var$9, $var4 + 1 | 0);
            var$19 = var$9.$array.data;
            $var6 = var$9.$size0;
            var$9.$size0 = $var6 + 1 | 0;
            var$19[$var6] = var$18;
            var$9.$modCount = var$9.$modCount + 1 | 0;
        } else if ($var7 >= 0 && $var6 < 0) {
            var$18 = var$9.$array.data[$var7];
            var$18.$minX0 = var$6;
            var$18.$minY0 = var$16;
            var$18.$minZ0 = var$17;
            var$18.$maxX0 = $var10;
            var$18.$maxY = $var9;
            var$18.$maxZ0 = var$7;
        } else {
            var$9 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$9);
            $rt_throw(var$9);
        }
        var$15.$nextPoolIndex = var$15.$nextPoolIndex + 1 | 0;
        var$9 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 4:
        nms_Entity_moveEntity($this, $var10, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$motionX * 0.800000011920929;
        $this.$motionX = $var10;
        var$6 = $this.$motionY * 0.800000011920929;
        $this.$motionY = var$6;
        var$7 = $this.$motionZ * 0.800000011920929;
        $this.$motionZ = var$7;
        var$6 = var$6 - 0.02;
        $this.$motionY = var$6;
        if (!$this.$isCollidedHorizontally) {
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var9 = $this.$posX - $this.$prevPosX;
            $var10 = $this.$posZ - $this.$prevPosZ;
            $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
            if ($var12 > 1.0)
                $var12 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        $var9 = var$6 + 0.6000000238418579 - $this.$posY + $var9;
        var$9 = $this.$boundingBox0;
        var$15 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = var$9.$minX0 + $var10;
        var$16 = var$9.$minY0 + $var9;
        var$17 = var$9.$minZ0 + var$7;
        $var10 = var$9.$maxX0 + $var10;
        $var9 = var$9.$maxY + $var9;
        var$7 = var$9.$maxZ0 + var$7;
        $var7 = var$15.$nextPoolIndex;
        var$9 = var$15.$listAABB;
        $var4 = var$9.$size0;
        $var6 = $rt_compare($var7, $var4);
        if ($var6 >= 0) {
            var$18 = new nms_AxisAlignedBB;
            var$18.$minX0 = var$6;
            var$18.$minY0 = var$16;
            var$18.$minZ0 = var$17;
            var$18.$maxX0 = $var10;
            var$18.$maxY = $var9;
            var$18.$maxZ0 = var$7;
            ju_ArrayList_ensureCapacity(var$9, $var4 + 1 | 0);
            var$19 = var$9.$array.data;
            $var6 = var$9.$size0;
            var$9.$size0 = $var6 + 1 | 0;
            var$19[$var6] = var$18;
            var$9.$modCount = var$9.$modCount + 1 | 0;
        } else if ($var7 >= 0 && $var6 < 0) {
            var$18 = var$9.$array.data[$var7];
            var$18.$minX0 = var$6;
            var$18.$minY0 = var$16;
            var$18.$minZ0 = var$17;
            var$18.$maxX0 = $var10;
            var$18.$maxY = $var9;
            var$18.$maxZ0 = var$7;
        } else {
            var$9 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$9);
            $rt_throw(var$9);
        }
        var$15.$nextPoolIndex = var$15.$nextPoolIndex + 1 | 0;
        var$9 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getCollidingBoundingBoxes(var$9, $this, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!(var$9.$size0 ? 0 : 1)) {
            if (0)
                $this.$motionY = 0.30000001192092896;
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var9 = $this.$posX - $this.$prevPosX;
            $var10 = $this.$posZ - $this.$prevPosZ;
            $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
            if ($var12 > 1.0)
                $var12 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        var$9 = $this.$worldObj;
        $ptr = 10;
        continue main;
    case 6:
        $tmp = nms_World_getCollidingBoundingBoxes(var$9, $this, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!(var$9.$size0 ? 0 : 1)) {
            if (0)
                $this.$motionY = 0.30000001192092896;
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var9 = $this.$posX - $this.$prevPosX;
            $var10 = $this.$posZ - $this.$prevPosZ;
            $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
            if ($var12 > 1.0)
                $var12 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        var$9 = $this.$worldObj;
        $ptr = 12;
        continue main;
    case 7:
        $tmp = $this.$isOnLadder();
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7) {
            if ($this.$motionX < (-0.15000000596046448))
                $this.$motionX = (-0.15000000596046448);
            if ($this.$motionX > 0.15000000596046448)
                $this.$motionX = 0.15000000596046448;
            if ($this.$motionZ < (-0.15000000596046448))
                $this.$motionZ = (-0.15000000596046448);
            if ($this.$motionZ > 0.15000000596046448)
                $this.$motionZ = 0.15000000596046448;
            $this.$fallDistance = 0.0;
            if ($this.$motionY < (-0.15))
                $this.$motionY = (-0.15);
            var$9 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$15 = jl_Integer_integerCache.data[128];
            if (var$15 === null) {
                var$9 = var$9.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                $var7 = var$15.$value;
                var$19 = var$9.$elementData.data;
                var$9 = var$19[$var7 & (var$19.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var7) {
                        var$18 = var$9.$key;
                        if (var$15 !== var$18 && !jl_Integer_equals(var$15, var$18) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            var$9 = var$9 === null ? null : var$9.$value0;
            $var7 = !(var$9.$watchedObject.$value1 & 2) ? 0 : 1;
            if (($var7 && $this instanceof nms_EntityPlayer ? 1 : 0) && $this.$motionY < 0.0)
                $this.$motionY = 0.0;
        }
        $var9 = $this.$motionX;
        $var10 = $this.$motionY;
        var$6 = $this.$motionZ;
        $ptr = 8;
    case 8:
        nms_Entity_moveEntity($this, $var9, $var10, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$isCollidedHorizontally) {
            $ptr = 11;
            continue main;
        }
        b: {
            c: {
                d: {
                    var$9 = $this.$worldObj;
                    if (var$9.$isRemote) {
                        $var7 = $this.$posX | 0;
                        $var6 = $this.$posZ | 0;
                        $var7 = $var7 >> 4;
                        $var6 = $var6 >> 4;
                        var$15 = var$9.$chunkProvider;
                        var$9 = var$15.$loadedChunkHashMap;
                        var$20 = Long_or(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), 32));
                        $var4 = Long_lo(Long_xor(var$20, Long_shru(var$20, 32)));
                        $var4 = $var4 ^ ($var4 >>> 20 | 0) ^ ($var4 >>> 12 | 0);
                        var$21 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
                        var$19 = var$9.$hashArray.data;
                        var$12 = var$21 & (var$19.length - 1 | 0);
                        var$9 = var$19[var$12];
                        e: {
                            while (true) {
                                if (var$9 === null) {
                                    var$9 = null;
                                    break e;
                                }
                                if (Long_eq(var$9.$key1, var$20))
                                    break;
                                var$9 = var$9.$nextEntry;
                            }
                        }
                        if (!(var$9 === null ? 0 : 1))
                            break d;
                        var$9 = var$19[var$12];
                        f: {
                            while (var$9 !== null) {
                                if (Long_eq(var$9.$key1, var$20)) {
                                    var$9 = var$9.$value4;
                                    break f;
                                }
                                var$9 = var$9.$nextEntry;
                            }
                            var$9 = null;
                        }
                        var$9 = var$9;
                        if (var$9 === null) {
                            if (var$15.$worldObj0.$findingSpawnPoint)
                                break b;
                            if (var$15.$loadChunkOnProvideRequest)
                                break b;
                            var$9 = var$15.$defaultEmptyChunk;
                        }
                        if (!var$9.$isChunkLoaded)
                            break d;
                    }
                    $this.$motionY = $this.$motionY - 0.08;
                    break c;
                }
                if ($this.$posY <= 0.0)
                    $this.$motionY = 0.0;
                else
                    $this.$motionY = (-0.1);
            }
            $this.$motionY = $this.$motionY * 0.9800000190734863;
            $var9 = $this.$motionX;
            $var10 = $par1;
            $this.$motionX = $var9 * $var10;
            $this.$motionZ = $this.$motionZ * $var10;
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var9 = $this.$posX - $this.$prevPosX;
            $var10 = $this.$posZ - $this.$prevPosZ;
            $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
            if ($var12 > 1.0)
                $var12 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        $ptr = 14;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId(var$9, $var6, $var7, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 > 0) {
            nms_Block_$callClinit();
            $var3 = nms_Block_blocksList.data[$var4].$slipperiness * 0.9100000262260437;
        }
        $var8 = 0.16277135908603668 / ($var3 * $var3 * $var3);
        nms_Entity_moveFlying($this, $par1, $par2, !$this.$onGround ? $this.$jumpMovementFactor : $this.$getAIMoveSpeed() * $var8);
        $par1 = 0.9100000262260437;
        if (!$this.$onGround) {
            $ptr = 7;
            continue main;
        }
        $par1 = 0.546000063419342;
        var$9 = $this.$worldObj;
        $var9 = $this.$posX;
        var$12 = $var9 | 0;
        if ($var9 < var$12)
            var$12 = var$12 - 1 | 0;
        $var9 = $this.$boundingBox0.$minY0;
        $var6 = $var9 | 0;
        if ($var9 < $var6)
            $var6 = $var6 - 1 | 0;
        $var7 = $var6 - 1 | 0;
        $var9 = $this.$posZ;
        $var4 = $var9 | 0;
        if ($var9 < $var4)
            $var4 = $var4 - 1 | 0;
        $ptr = 13;
        continue main;
    case 10:
        $tmp = nms_World_isAnyLiquid(var$9, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 ? 0 : 1)
            $this.$motionY = 0.30000001192092896;
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var9 = $this.$posX - $this.$prevPosX;
        $var10 = $this.$posZ - $this.$prevPosZ;
        $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
        if ($var12 > 1.0)
            $var12 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    case 11:
        $tmp = $this.$isOnLadder();
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7)
            $this.$motionY = 0.2;
        b: {
            c: {
                d: {
                    var$9 = $this.$worldObj;
                    if (var$9.$isRemote) {
                        $var7 = $this.$posX | 0;
                        $var6 = $this.$posZ | 0;
                        $var7 = $var7 >> 4;
                        $var6 = $var6 >> 4;
                        var$15 = var$9.$chunkProvider;
                        var$9 = var$15.$loadedChunkHashMap;
                        var$20 = Long_or(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), 32));
                        $var4 = Long_lo(Long_xor(var$20, Long_shru(var$20, 32)));
                        $var4 = $var4 ^ ($var4 >>> 20 | 0) ^ ($var4 >>> 12 | 0);
                        var$21 = $var4 ^ ($var4 >>> 7 | 0) ^ ($var4 >>> 4 | 0);
                        var$19 = var$9.$hashArray.data;
                        var$12 = var$21 & (var$19.length - 1 | 0);
                        var$9 = var$19[var$12];
                        e: {
                            while (true) {
                                if (var$9 === null) {
                                    var$9 = null;
                                    break e;
                                }
                                if (Long_eq(var$9.$key1, var$20))
                                    break;
                                var$9 = var$9.$nextEntry;
                            }
                        }
                        if (!(var$9 === null ? 0 : 1))
                            break d;
                        var$9 = var$19[var$12];
                        f: {
                            while (var$9 !== null) {
                                if (Long_eq(var$9.$key1, var$20)) {
                                    var$9 = var$9.$value4;
                                    break f;
                                }
                                var$9 = var$9.$nextEntry;
                            }
                            var$9 = null;
                        }
                        var$9 = var$9;
                        if (var$9 === null) {
                            if (var$15.$worldObj0.$findingSpawnPoint)
                                break b;
                            if (var$15.$loadChunkOnProvideRequest)
                                break b;
                            var$9 = var$15.$defaultEmptyChunk;
                        }
                        if (!var$9.$isChunkLoaded)
                            break d;
                    }
                    $this.$motionY = $this.$motionY - 0.08;
                    break c;
                }
                if ($this.$posY <= 0.0)
                    $this.$motionY = 0.0;
                else
                    $this.$motionY = (-0.1);
            }
            $this.$motionY = $this.$motionY * 0.9800000190734863;
            $var9 = $this.$motionX;
            $var10 = $par1;
            $this.$motionX = $var9 * $var10;
            $this.$motionZ = $this.$motionZ * $var10;
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var9 = $this.$posX - $this.$prevPosX;
            $var10 = $this.$posZ - $this.$prevPosZ;
            $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
            if ($var12 > 1.0)
                $var12 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        $ptr = 14;
        continue main;
    case 12:
        $tmp = nms_World_isAnyLiquid(var$9, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 ? 0 : 1)
            $this.$motionY = 0.30000001192092896;
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var9 = $this.$posX - $this.$prevPosX;
        $var10 = $this.$posZ - $this.$prevPosZ;
        $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
        if ($var12 > 1.0)
            $var12 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    case 13:
        $tmp = nms_World_getBlockId(var$9, var$12, $var7, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 > 0) {
            nms_Block_$callClinit();
            $par1 = nms_Block_blocksList.data[$var6].$slipperiness * 0.9100000262260437;
        }
        $ptr = 7;
        continue main;
    case 14:
        $tmp = nms_ChunkProviderServer_loadChunk(var$15, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9.$isChunkLoaded)
            $this.$motionY = $this.$motionY - 0.08;
        else if ($this.$posY <= 0.0)
            $this.$motionY = 0.0;
        else
            $this.$motionY = (-0.1);
        $this.$motionY = $this.$motionY * 0.9800000190734863;
        $var9 = $this.$motionX;
        $var10 = $par1;
        $this.$motionX = $var9 * $var10;
        $this.$motionZ = $this.$motionZ * $var10;
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var9 = $this.$posX - $this.$prevPosX;
        $var10 = $this.$posZ - $this.$prevPosZ;
        $var12 = jl_Math_sqrt($var9 * $var9 + $var10 * $var10) * 4.0;
        if ($var12 > 1.0)
            $var12 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var12 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var7, $var9, $var10, var$6, var$7, $var3, var$9, $var6, $var4, var$12, $var8, $var12, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityLivingBase_isAIEnabled = $this => {
    return 0;
},
nms_EntityLivingBase_getAIMoveSpeed = $this => {
    return !$this.$isAIEnabled() ? 0.10000000149011612 : $this.$landMovementFactor;
},
nms_EntityLivingBase_onUpdate = $this => {
    let $var3, $var4, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var9, $var10, $var5, $var6, $var7, $var8, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var4
        = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $this.$onEntityUpdate();
            if ($rt_suspending()) {
                break main;
            }
            if (!$this.$worldObj.$isRemote) {
                $var3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var4 = jl_Integer_integerCache.data[137];
                if ($var4 !== null) {
                    $var2 = $var4.$value;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[$var2 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == $var2) {
                            var$5 = $var3.$key;
                            if ($var4 !== var$5 && !($var4 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == $var2 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                } else {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                }
                var$6 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value1;
                if (var$6 > 0) {
                    if ($this.$arrowHitTimer <= 0)
                        $this.$arrowHitTimer = 20 * (30 - var$6 | 0) | 0;
                    $var2 = $this.$arrowHitTimer - 1 | 0;
                    $this.$arrowHitTimer = $var2;
                    if ($var2 <= 0) {
                        $var2 = var$6 - 1 | 0;
                        $var3 = $this.$dataWatcher;
                        $var2 = $var2 << 24 >> 24;
                        var$7 = jl_Byte_byteCache.data[$var2 + 128 | 0];
                        $var4 = $var3.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$8 = jl_Integer_integerCache.data[137];
                        if (var$8 === null) {
                            $var4 = $var4.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            var$6 = var$8.$value;
                            var$4 = $var4.$elementData.data;
                            $var4 = var$4[var$6 & (var$4.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == var$6) {
                                    var$5 = $var4.$key;
                                    if (var$8 !== var$5 && !(var$8 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        var$5 = $var4 === null ? null : $var4.$value0;
                        $var4 = var$5.$watchedObject;
                        if (!($var4 instanceof jl_Byte && $var4.$value1 == var$7.$value1 ? 1 : 0)) {
                            var$5.$watchedObject = var$7;
                            var$5.$watched = 1;
                            $var3.$objectChanged = 1;
                        }
                    }
                }
                $var2 = 0;
                while (true) {
                    if ($var2 >= 5)
                        break a;
                    $var3 = $this.$previousEquipment.data[$var2];
                    $var4 = $this.$getCurrentItemOrArmor($var2);
                    nms_ItemStack_$callClinit();
                    if (!($var4 === null && $var3 === null ? 1 : $var4 !== null && $var3 !== null ? nms_ItemStack_isItemStackEqual($var4, $var3) : 0)) {
                        var$9 = $this.$worldObj.$theEntityTracker;
                        var$10 = new nms_Packet5PlayerInventory;
                        var$11 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$10.$entityID = var$11;
                        var$10.$slot = $var2;
                        if ($var4 === null)
                            $var3 = null;
                        else {
                            $var3 = new nms_ItemStack;
                            var$11 = $var4.$itemID;
                            var$6 = $var4.$stackSize;
                            var$12 = $var4.$itemDamage;
                            $var3.$itemID = var$11;
                            $var3.$stackSize = var$6;
                            $var3.$itemDamage = var$12;
                            if (var$12 < 0)
                                $var3.$itemDamage = 0;
                            var$5 = $var4.$stackTagCompound;
                            if (var$5 !== null) {
                                var$8 = new nms_NBTTagCompound;
                                var$7 = var$5.$name;
                                if (var$7 === null)
                                    var$7 = $rt_s(3);
                                var$8.$name = var$7;
                                var$7 = new ju_HashMap;
                                jl_Object__init_(var$7);
                                var$11 = ju_HashMap_calculateCapacity(16);
                                var$7.$elementCount = 0;
                                var$13 = $rt_createArray(ju_HashMap$HashEntry, var$11);
                                var$4 = var$13.data;
                                var$7.$elementData = var$13;
                                var$7.$loadFactor = 0.75;
                                var$7.$threshold = var$4.length * 0.75 | 0;
                                var$8.$tagMap = var$7;
                                var$7 = var$5.$tagMap;
                                if (var$7.$cachedKeySet === null) {
                                    var$14 = new ju_HashMap$1;
                                    var$14.$this$0 = var$7;
                                    var$7.$cachedKeySet = var$14;
                                }
                                var$7 = var$7.$cachedKeySet.$iterator();
                                while (var$7.$hasNext()) {
                                    var$14 = var$7.$next();
                                    var$15 = var$5.$tagMap;
                                    if (var$14 === null) {
                                        var$15 = var$15.$elementData.data[0];
                                        while (var$15 !== null && var$15.$key !== null) {
                                            var$15 = var$15.$next3;
                                        }
                                    } else {
                                        b: {
                                            if (!var$14.$hashCode1) {
                                                var$11 = 0;
                                                while (true) {
                                                    if (var$11 >= var$14.$nativeString.length)
                                                        break b;
                                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$11) | 0;
                                                    var$11 = var$11 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$12 = var$14.$hashCode1;
                                        var$4 = var$15.$elementData.data;
                                        var$15 = var$4[var$12 & (var$4.length - 1 | 0)];
                                        while (var$15 !== null) {
                                            if (var$15.$origKeyHash == var$12) {
                                                c: {
                                                    var$16 = var$15.$key;
                                                    if (var$14 !== var$16) {
                                                        if (var$14 === var$16)
                                                            var$11 = 1;
                                                        else if (!(var$16 instanceof jl_String))
                                                            var$11 = 0;
                                                        else {
                                                            var$16 = var$16;
                                                            var$11 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$11) {
                                                            var$11 = 0;
                                                            break c;
                                                        }
                                                    }
                                                    var$11 = 1;
                                                }
                                                if (var$11)
                                                    break;
                                            }
                                            var$15 = var$15.$next3;
                                        }
                                    }
                                    var$15 = var$15 === null ? null : var$15.$value0;
                                    var$15 = var$15.$copy();
                                    var$16 = var$8.$tagMap;
                                    if (var$14 !== null)
                                        var$15.$name = var$14;
                                    else
                                        var$15.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$16, var$14, var$15);
                                }
                                $var3.$stackTagCompound = var$8;
                            }
                        }
                        var$10.$itemSlot0 = $var3;
                        $var3 = var$9.$trackedEntityIDs;
                        var$17 = $this.$entityId;
                        var$11 = var$17 ^ (var$17 >>> 20 | 0) ^ (var$17 >>> 12 | 0);
                        var$6 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                        var$4 = $var3.$slots.data;
                        $var3 = var$4[var$6 & (var$4.length - 1 | 0)];
                        d: {
                            while ($var3 !== null) {
                                if ($var3.$hashEntry == var$17) {
                                    $var3 = $var3.$valueEntry;
                                    break d;
                                }
                                $var3 = $var3.$nextEntry0;
                            }
                            $var3 = null;
                        }
                        $var3 = $var3;
                        if ($var3 !== null) {
                            $var3 = $var3.$trackingPlayers.$backingMap;
                            if ($var3.$cachedKeySet === null) {
                                var$5 = new ju_HashMap$1;
                                var$5.$this$0 = $var3;
                                $var3.$cachedKeySet = var$5;
                            }
                            var$14 = $var3.$cachedKeySet.$iterator();
                            var$6 = var$10 instanceof nms_Packet3Chat;
                            var$5 = var$10;
                            while (var$14.$hasNext()) {
                                e: {
                                    $var3 = (var$14.$next()).$playerNetServerHandler;
                                    if (var$6) {
                                        var$12 = $var3.$playerEntity.$chatVisibility;
                                        if (var$12 == 2)
                                            break e;
                                        if (var$12 == 1 && !var$5.$isServer)
                                            break e;
                                    }
                                    try {
                                        $var3 = $var3.$netManager;
                                        $ptr = 3;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var3 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$8 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                                        jl_System_errCache = var$8;
                                    }
                                    jl_Throwable_printStackTrace($var3, jl_System_errCache);
                                }
                            }
                        }
                        var$4 = $this.$previousEquipment;
                        if ($var4 === null)
                            $var3 = null;
                        else {
                            $var3 = new nms_ItemStack;
                            var$11 = $var4.$itemID;
                            var$6 = $var4.$stackSize;
                            var$12 = $var4.$itemDamage;
                            $var3.$itemID = var$11;
                            $var3.$stackSize = var$6;
                            $var3.$itemDamage = var$12;
                            if (var$12 < 0)
                                $var3.$itemDamage = 0;
                            $var4 = $var4.$stackTagCompound;
                            if ($var4 !== null) {
                                var$5 = new nms_NBTTagCompound;
                                var$8 = $var4.$name;
                                if (var$8 === null)
                                    var$8 = $rt_s(3);
                                var$5.$name = var$8;
                                var$8 = new ju_HashMap;
                                var$11 = ju_HashMap_calculateCapacity(16);
                                var$8.$elementCount = 0;
                                var$18 = $rt_createArray(ju_HashMap$HashEntry, var$11);
                                var$13 = var$18.data;
                                var$8.$elementData = var$18;
                                var$8.$loadFactor = 0.75;
                                var$8.$threshold = var$13.length * 0.75 | 0;
                                var$5.$tagMap = var$8;
                                var$8 = $var4.$tagMap;
                                if (var$8.$cachedKeySet === null) {
                                    var$7 = new ju_HashMap$1;
                                    var$7.$this$0 = var$8;
                                    var$8.$cachedKeySet = var$7;
                                }
                                var$8 = var$8.$cachedKeySet.$iterator();
                                while (var$8.$hasNext()) {
                                    var$7 = var$8.$next();
                                    var$14 = $var4.$tagMap;
                                    if (var$7 === null) {
                                        var$14 = var$14.$elementData.data[0];
                                        while (var$14 !== null && var$14.$key !== null) {
                                            var$14 = var$14.$next3;
                                        }
                                    } else {
                                        f: {
                                            if (!var$7.$hashCode1) {
                                                var$11 = 0;
                                                while (true) {
                                                    if (var$11 >= var$7.$nativeString.length)
                                                        break f;
                                                    var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt(var$11) | 0;
                                                    var$11 = var$11 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$12 = var$7.$hashCode1;
                                        var$13 = var$14.$elementData.data;
                                        var$14 = var$13[var$12 & (var$13.length - 1 | 0)];
                                        while (var$14 !== null) {
                                            if (var$14.$origKeyHash == var$12) {
                                                g: {
                                                    var$15 = var$14.$key;
                                                    if (var$7 !== var$15) {
                                                        if (var$7 === var$15)
                                                            var$11 = 1;
                                                        else if (!(var$15 instanceof jl_String))
                                                            var$11 = 0;
                                                        else {
                                                            var$15 = var$15;
                                                            var$11 = var$7.$nativeString !== var$15.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$11) {
                                                            var$11 = 0;
                                                            break g;
                                                        }
                                                    }
                                                    var$11 = 1;
                                                }
                                                if (var$11)
                                                    break;
                                            }
                                            var$14 = var$14.$next3;
                                        }
                                    }
                                    var$14 = var$14 === null ? null : var$14.$value0;
                                    var$14 = var$14.$copy();
                                    var$15 = var$5.$tagMap;
                                    if (var$7 !== null)
                                        var$14.$name = var$7;
                                    else
                                        var$14.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$15, var$7, var$14);
                                }
                                $var3.$stackTagCompound = var$5;
                            }
                        }
                        var$4.data[$var2] = $var3;
                    }
                    $var2 = $var2 + 1 | 0;
                }
            }
        }
        $ptr = 2;
    case 2:
        $this.$onLivingUpdate();
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $this.$posX - $this.$prevPosX;
        $var10 = $this.$posZ - $this.$prevPosZ;
        $var5 = $var9 * $var9 + $var10 * $var10;
        $var6 = $this.$renderYawOffset;
        $var7 = 0.0;
        $this.$field_70768_au = $this.$field_110154_aX;
        $var8 = 0.0;
        if ($var5 > 0.002500000176951289) {
            $var8 = 1.0;
            $var7 = jl_Math_sqrt($var5) * 3.0;
            $var6 = jl_Math_atan2($var10, $var9) * 180.0 / 3.1415927410125732 - 90.0;
        }
        if ($this.$swingProgress > 0.0)
            $var6 = $this.$rotationYaw;
        if (!$this.$onGround)
            $var8 = 0.0;
        $var5 = $this.$field_110154_aX;
        $this.$field_110154_aX = $var5 + ($var8 - $var5) * 0.30000001192092896;
        $var5 = $this.$func_110146_f($var6, $var7);
        while (true) {
            $var6 = $this.$rotationYaw;
            $var7 = $this.$prevRotationYaw;
            if ($var6 - $var7 >= (-180.0))
                break;
            $this.$prevRotationYaw = $var7 - 360.0;
        }
        while (true) {
            $var7 = $this.$prevRotationYaw;
            if ($var6 - $var7 < 180.0)
                break;
            $this.$prevRotationYaw = $var7 + 360.0;
        }
        while (true) {
            $var6 = $this.$renderYawOffset;
            $var7 = $this.$prevRenderYawOffset;
            if ($var6 - $var7 >= (-180.0))
                break;
            $this.$prevRenderYawOffset = $var7 - 360.0;
        }
        while (true) {
            $var7 = $this.$prevRenderYawOffset;
            if ($var6 - $var7 < 180.0)
                break;
            $this.$prevRenderYawOffset = $var7 + 360.0;
        }
        while (true) {
            $var6 = $this.$rotationPitch;
            $var7 = $this.$prevRotationPitch;
            if ($var6 - $var7 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var7 - 360.0;
        }
        while (true) {
            $var7 = $this.$prevRotationPitch;
            if ($var6 - $var7 < 180.0)
                break;
            $this.$prevRotationPitch = $var7 + 360.0;
        }
        while (true) {
            $var6 = $this.$rotationYawHead;
            $var7 = $this.$prevRotationYawHead;
            if ($var6 - $var7 >= (-180.0))
                break;
            $this.$prevRotationYawHead = $var7 - 360.0;
        }
        while (true) {
            $var7 = $this.$prevRotationYawHead;
            if ($var6 - $var7 < 180.0)
                break;
            $this.$prevRotationYawHead = $var7 + 360.0;
        }
        $this.$field_70764_aw = $this.$field_70764_aw + $var5;
        return;
    case 3:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, var$10);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                var$11 = 32;
                ji_ByteArrayOutputStream__init_1(var$7, var$11);
                var$11 = 0;
                ji_PrintStream__init_(var$8, var$7, var$11);
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$8);
        }
        h: while (true) {
            while (true) {
                while (!var$14.$hasNext()) {
                    while (true) {
                        var$4 = $this.$previousEquipment;
                        if ($var4 === null)
                            $var3 = null;
                        else {
                            $var3 = new nms_ItemStack;
                            var$11 = $var4.$itemID;
                            var$6 = $var4.$stackSize;
                            var$12 = $var4.$itemDamage;
                            $var3.$itemID = var$11;
                            $var3.$stackSize = var$6;
                            $var3.$itemDamage = var$12;
                            if (var$12 < 0)
                                $var3.$itemDamage = 0;
                            $var4 = $var4.$stackTagCompound;
                            if ($var4 !== null) {
                                var$5 = new nms_NBTTagCompound;
                                var$8 = $var4.$name;
                                if (var$8 === null)
                                    var$8 = $rt_s(3);
                                var$5.$name = var$8;
                                var$8 = new ju_HashMap;
                                var$11 = ju_HashMap_calculateCapacity(16);
                                var$8.$elementCount = 0;
                                var$18 = $rt_createArray(ju_HashMap$HashEntry, var$11);
                                var$13 = var$18.data;
                                var$8.$elementData = var$18;
                                var$8.$loadFactor = 0.75;
                                var$8.$threshold = var$13.length * 0.75 | 0;
                                var$5.$tagMap = var$8;
                                var$8 = $var4.$tagMap;
                                if (var$8.$cachedKeySet === null) {
                                    var$7 = new ju_HashMap$1;
                                    var$7.$this$0 = var$8;
                                    var$8.$cachedKeySet = var$7;
                                }
                                var$8 = var$8.$cachedKeySet.$iterator();
                                while (var$8.$hasNext()) {
                                    var$7 = var$8.$next();
                                    var$14 = $var4.$tagMap;
                                    if (var$7 === null) {
                                        var$14 = var$14.$elementData.data[0];
                                        while (var$14 !== null && var$14.$key !== null) {
                                            var$14 = var$14.$next3;
                                        }
                                    } else {
                                        i: {
                                            if (!var$7.$hashCode1) {
                                                var$11 = 0;
                                                while (true) {
                                                    if (var$11 >= var$7.$nativeString.length)
                                                        break i;
                                                    var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt(var$11) | 0;
                                                    var$11 = var$11 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$12 = var$7.$hashCode1;
                                        var$13 = var$14.$elementData.data;
                                        var$14 = var$13[var$12 & (var$13.length - 1 | 0)];
                                        while (var$14 !== null) {
                                            if (var$14.$origKeyHash == var$12) {
                                                j: {
                                                    var$15 = var$14.$key;
                                                    if (var$7 !== var$15) {
                                                        if (var$7 === var$15)
                                                            var$11 = 1;
                                                        else if (!(var$15 instanceof jl_String))
                                                            var$11 = 0;
                                                        else {
                                                            var$15 = var$15;
                                                            var$11 = var$7.$nativeString !== var$15.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$11) {
                                                            var$11 = 0;
                                                            break j;
                                                        }
                                                    }
                                                    var$11 = 1;
                                                }
                                                if (var$11)
                                                    break;
                                            }
                                            var$14 = var$14.$next3;
                                        }
                                    }
                                    var$14 = var$14 === null ? null : var$14.$value0;
                                    var$14 = var$14.$copy();
                                    var$15 = var$5.$tagMap;
                                    if (var$7 !== null)
                                        var$14.$name = var$7;
                                    else
                                        var$14.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$15, var$7, var$14);
                                }
                                $var3.$stackTagCompound = var$5;
                            }
                        }
                        var$4.data[$var2] = $var3;
                        while (true) {
                            $var2 = $var2 + 1 | 0;
                            if ($var2 >= 5)
                                break h;
                            $var3 = $this.$previousEquipment.data[$var2];
                            $var4 = $this.$getCurrentItemOrArmor($var2);
                            nms_ItemStack_$callClinit();
                            if ($var4 === null && $var3 === null ? 1 : $var4 !== null && $var3 !== null ? nms_ItemStack_isItemStackEqual($var4, $var3) : 0)
                                continue;
                            else
                                break;
                        }
                        var$9 = $this.$worldObj.$theEntityTracker;
                        var$10 = new nms_Packet5PlayerInventory;
                        var$11 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$10.$entityID = var$11;
                        var$10.$slot = $var2;
                        if ($var4 === null)
                            $var3 = null;
                        else {
                            $var3 = new nms_ItemStack;
                            var$11 = $var4.$itemID;
                            var$6 = $var4.$stackSize;
                            var$12 = $var4.$itemDamage;
                            $var3.$itemID = var$11;
                            $var3.$stackSize = var$6;
                            $var3.$itemDamage = var$12;
                            if (var$12 < 0)
                                $var3.$itemDamage = 0;
                            var$5 = $var4.$stackTagCompound;
                            if (var$5 !== null) {
                                var$8 = new nms_NBTTagCompound;
                                var$7 = var$5.$name;
                                if (var$7 === null)
                                    var$7 = $rt_s(3);
                                var$8.$name = var$7;
                                var$7 = new ju_HashMap;
                                jl_Object__init_(var$7);
                                var$11 = ju_HashMap_calculateCapacity(16);
                                var$7.$elementCount = 0;
                                var$13 = $rt_createArray(ju_HashMap$HashEntry, var$11);
                                var$4 = var$13.data;
                                var$7.$elementData = var$13;
                                var$7.$loadFactor = 0.75;
                                var$7.$threshold = var$4.length * 0.75 | 0;
                                var$8.$tagMap = var$7;
                                var$7 = var$5.$tagMap;
                                if (var$7.$cachedKeySet === null) {
                                    var$14 = new ju_HashMap$1;
                                    var$14.$this$0 = var$7;
                                    var$7.$cachedKeySet = var$14;
                                }
                                var$7 = var$7.$cachedKeySet.$iterator();
                                while (var$7.$hasNext()) {
                                    var$14 = var$7.$next();
                                    var$15 = var$5.$tagMap;
                                    if (var$14 === null) {
                                        var$15 = var$15.$elementData.data[0];
                                        while (var$15 !== null && var$15.$key !== null) {
                                            var$15 = var$15.$next3;
                                        }
                                    } else {
                                        k: {
                                            if (!var$14.$hashCode1) {
                                                var$11 = 0;
                                                while (true) {
                                                    if (var$11 >= var$14.$nativeString.length)
                                                        break k;
                                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$11) | 0;
                                                    var$11 = var$11 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$12 = var$14.$hashCode1;
                                        var$4 = var$15.$elementData.data;
                                        var$15 = var$4[var$12 & (var$4.length - 1 | 0)];
                                        while (var$15 !== null) {
                                            if (var$15.$origKeyHash == var$12) {
                                                l: {
                                                    var$16 = var$15.$key;
                                                    if (var$14 !== var$16) {
                                                        if (var$14 === var$16)
                                                            var$11 = 1;
                                                        else if (!(var$16 instanceof jl_String))
                                                            var$11 = 0;
                                                        else {
                                                            var$16 = var$16;
                                                            var$11 = var$14.$nativeString !== var$16.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$11) {
                                                            var$11 = 0;
                                                            break l;
                                                        }
                                                    }
                                                    var$11 = 1;
                                                }
                                                if (var$11)
                                                    break;
                                            }
                                            var$15 = var$15.$next3;
                                        }
                                    }
                                    var$15 = var$15 === null ? null : var$15.$value0;
                                    var$15 = var$15.$copy();
                                    var$16 = var$8.$tagMap;
                                    if (var$14 !== null)
                                        var$15.$name = var$14;
                                    else
                                        var$15.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$16, var$14, var$15);
                                }
                                $var3.$stackTagCompound = var$8;
                            }
                        }
                        var$10.$itemSlot0 = $var3;
                        $var3 = var$9.$trackedEntityIDs;
                        var$17 = $this.$entityId;
                        var$11 = var$17 ^ (var$17 >>> 20 | 0) ^ (var$17 >>> 12 | 0);
                        var$6 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                        var$4 = $var3.$slots.data;
                        $var3 = var$4[var$6 & (var$4.length - 1 | 0)];
                        m: {
                            while ($var3 !== null) {
                                if ($var3.$hashEntry == var$17) {
                                    $var3 = $var3.$valueEntry;
                                    break m;
                                }
                                $var3 = $var3.$nextEntry0;
                            }
                            $var3 = null;
                        }
                        $var3 = $var3;
                        if ($var3 === null)
                            continue;
                        else
                            break;
                    }
                    $var3 = $var3.$trackingPlayers.$backingMap;
                    if ($var3.$cachedKeySet === null) {
                        var$5 = new ju_HashMap$1;
                        var$5.$this$0 = $var3;
                        $var3.$cachedKeySet = var$5;
                    }
                    var$14 = $var3.$cachedKeySet.$iterator();
                    var$6 = var$10 instanceof nms_Packet3Chat;
                    var$5 = var$10;
                }
                $var3 = (var$14.$next()).$playerNetServerHandler;
                if (!var$6)
                    break;
                var$12 = $var3.$playerEntity.$chatVisibility;
                if (var$12 == 2)
                    continue;
                if (var$12 != 1)
                    break;
                if (var$5.$isServer)
                    break;
            }
            try {
                $var3 = $var3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                var$11 = 32;
                ji_ByteArrayOutputStream__init_1(var$7, var$11);
                var$11 = 0;
                ji_PrintStream__init_(var$8, var$7, var$11);
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$8);
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var4, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var9, $var10, $var5, $var6, $var7, $var8, $ptr);
},
nms_EntityLivingBase_func_110146_f = ($this, $par1, $par2) => {
    let var$3, $var3, $var4, $var5;
    var$3 = $this.$renderYawOffset;
    $var3 = ($par1 - var$3) % 360.0;
    if ($var3 >= 180.0)
        $var3 = $var3 - 360.0;
    if ($var3 < (-180.0))
        $var3 = $var3 + 360.0;
    $par1 = var$3 + $var3 * 0.30000001192092896;
    $this.$renderYawOffset = $par1;
    var$3 = $this.$rotationYaw;
    $var4 = (var$3 - $par1) % 360.0;
    if ($var4 >= 180.0)
        $var4 = $var4 - 360.0;
    if ($var4 < (-180.0))
        $var4 = $var4 + 360.0;
    $var5 = $var4 >= (-90.0) && $var4 < 90.0 ? 0 : 1;
    if ($var4 < (-75.0))
        $var4 = (-75.0);
    if ($var4 >= 75.0)
        $var4 = 75.0;
    $par1 = var$3 - $var4;
    $this.$renderYawOffset = $par1;
    if ($var4 * $var4 > 2500.0)
        $this.$renderYawOffset = $par1 + $var4 * 0.20000000298023224;
    if ($var5)
        $par2 = $par2 * (-1.0);
    return $par2;
},
nms_EntityLivingBase_onLivingUpdate = $this => {
    let var$1, $var1, $var3, var$4, $var7, $var5, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$jumpTicks;
        if (var$1 > 0)
            $this.$jumpTicks = var$1 - 1 | 0;
        var$1 = $this.$newPosRotationIncrements;
        if (var$1 > 0) {
            $var1 = $this.$posX;
            $var3 = $this.$newPosX - $var1;
            var$4 = var$1;
            $var1 = $var1 + $var3 / var$4;
            $var3 = $this.$posY;
            $var3 = $var3 + ($this.$newPosY - $var3) / var$4;
            $var7 = $this.$posZ;
            $var5 = $var7 + ($this.$newPosZ - $var7) / var$4;
            $var7 = $this.$newRotationYaw;
            var$7 = $this.$rotationYaw;
            $var7 = ($var7 - var$7) % 360.0;
            if ($var7 >= 180.0)
                $var7 = $var7 - 360.0;
            if ($var7 < (-180.0))
                $var7 = $var7 + 360.0;
            $this.$rotationYaw = var$7 + $var7 / var$4;
            $var7 = $this.$rotationPitch;
            $this.$rotationPitch = $var7 + ($this.$newRotationPitch - $var7) / var$4;
            $this.$newPosRotationIncrements = var$1 - 1 | 0;
            nms_Entity_setPosition($this, $var1, $var3, $var5);
            var$8 = $this.$rotationYaw;
            var$9 = $this.$rotationPitch;
            $this.$rotationYaw = var$8 % 360.0;
            $this.$rotationPitch = var$9 % 360.0;
        } else if (!($this.$worldObj.$isRemote ? 0 : 1)) {
            $this.$motionX = $this.$motionX * 0.98;
            $this.$motionY = $this.$motionY * 0.98;
            $this.$motionZ = $this.$motionZ * 0.98;
        }
        if (jl_Math_absImpl($this.$motionX) < 0.005)
            $this.$motionX = 0.0;
        if (jl_Math_absImpl($this.$motionY) < 0.005)
            $this.$motionY = 0.0;
        if (jl_Math_absImpl($this.$motionZ) < 0.005)
            $this.$motionZ = 0.0;
        if ($this.$isMovementBlocked()) {
            $this.$isJumping = 0;
            $this.$moveStrafing = 0.0;
            $this.$moveForward = 0.0;
            $this.$randomYawVelocity = 0.0;
        } else if ($this.$worldObj.$isRemote ? 0 : 1) {
            if (!$this.$isAIEnabled()) {
                $ptr = 4;
                continue main;
            }
            $ptr = 5;
            continue main;
        }
        if ($this.$isJumping) {
            $ptr = 1;
            continue main;
        }
        $this.$jumpTicks = 0;
        var$8 = $this.$moveStrafing * 0.9800000190734863;
        $this.$moveStrafing = var$8;
        var$9 = $this.$moveForward * 0.9800000190734863;
        $this.$moveForward = var$9;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.8999999761581421;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = $this.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!var$1) {
            $ptr = 3;
            continue main;
        }
        $this.$motionY = $this.$motionY + 0.03999999910593033;
        var$8 = $this.$moveStrafing * 0.9800000190734863;
        $this.$moveStrafing = var$8;
        var$9 = $this.$moveForward * 0.9800000190734863;
        $this.$moveForward = var$9;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.8999999761581421;
        $ptr = 2;
    case 2:
        $this.$moveEntityWithHeading(var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote)
            return;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = $this.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1)
            $this.$motionY = $this.$motionY + 0.03999999910593033;
        else if ($this.$onGround && !$this.$jumpTicks) {
            $ptr = 7;
            continue main;
        }
        var$8 = $this.$moveStrafing * 0.9800000190734863;
        $this.$moveStrafing = var$8;
        var$9 = $this.$moveForward * 0.9800000190734863;
        $this.$moveForward = var$9;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.8999999761581421;
        $ptr = 2;
        continue main;
    case 4:
        $this.$updateEntityActionState();
        if ($rt_suspending()) {
            break main;
        }
        $this.$rotationYawHead = $this.$rotationYaw;
        if ($this.$isJumping) {
            $ptr = 1;
            continue main;
        }
        $this.$jumpTicks = 0;
        var$8 = $this.$moveStrafing * 0.9800000190734863;
        $this.$moveStrafing = var$8;
        var$9 = $this.$moveForward * 0.9800000190734863;
        $this.$moveForward = var$9;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.8999999761581421;
        $ptr = 2;
        continue main;
    case 5:
        $this.$updateAITasks();
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$isJumping) {
            $ptr = 1;
            continue main;
        }
        $this.$jumpTicks = 0;
        var$8 = $this.$moveStrafing * 0.9800000190734863;
        $this.$moveStrafing = var$8;
        var$9 = $this.$moveForward * 0.9800000190734863;
        $this.$moveForward = var$9;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.8999999761581421;
        $ptr = 2;
        continue main;
    case 6:
        $this.$collideWithNearbyEntities();
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        $this.$jump();
        if ($rt_suspending()) {
            break main;
        }
        $this.$jumpTicks = 10;
        var$8 = $this.$moveStrafing * 0.9800000190734863;
        $this.$moveStrafing = var$8;
        var$9 = $this.$moveForward * 0.9800000190734863;
        $this.$moveForward = var$9;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.8999999761581421;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var3, var$4, $var7, $var5, var$7, var$8, var$9, $ptr);
},
nms_EntityLivingBase_updateAITasks = $this => {
    return;
},
nms_EntityLivingBase_collideWithNearbyEntities = $this => {
    let $var3, $var1, var$3, var$4, var$5, var$6, var$7, var$8, $var2, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var2 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$worldObj;
        $var1 = $this.$boundingBox0;
        var$3 = $var1.$minX0 - 0.20000000298023224;
        var$4 = $var1.$minY0 - 0.0;
        var$5 = $var1.$minZ0 - 0.20000000298023224;
        var$6 = $var1.$maxX0 + 0.20000000298023224;
        var$7 = $var1.$maxY + 0.0;
        var$8 = $var1.$maxZ0 + 0.20000000298023224;
        $var1 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var2 = $var1.$nextPoolIndex;
        var$10 = $var1.$listAABB;
        var$11 = var$10.$size0;
        var$12 = $rt_compare($var2, var$11);
        if (var$12 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$3;
            var$13.$minY0 = var$4;
            var$13.$minZ0 = var$5;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$7;
            var$13.$maxZ0 = var$8;
            ju_ArrayList_ensureCapacity(var$10, var$11 + 1 | 0);
            var$14 = var$10.$array.data;
            var$11 = var$10.$size0;
            var$10.$size0 = var$11 + 1 | 0;
            var$14[var$11] = var$13;
            var$10.$modCount = var$10.$modCount + 1 | 0;
        } else if ($var2 >= 0 && var$12 < 0) {
            var$13 = var$10.$array.data[$var2];
            var$13.$minX0 = var$3;
            var$13.$minY0 = var$4;
            var$13.$minZ0 = var$5;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$7;
            var$13.$maxZ0 = var$8;
        } else {
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var3);
            $rt_throw($var3);
        }
        $var1.$nextPoolIndex = $var1.$nextPoolIndex + 1 | 0;
        $var1 = null;
        $ptr = 1;
    case 1:
        a: {
            b: {
                $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var3, $this, var$13, $var1);
                if ($rt_suspending()) {
                    break main;
                }
                $var1 = $tmp;
                if ($var1 !== null && !($var1.$size0 ? 0 : 1)) {
                    $var2 = 0;
                    while (true) {
                        var$11 = $rt_compare($var2, $var1.$size0);
                        if (var$11 >= 0)
                            break b;
                        if ($var2 < 0)
                            break a;
                        if (var$11 >= 0)
                            break a;
                        $var3 = $var1.$array.data[$var2];
                        if ($var3.$canBePushed()) {
                            $ptr = 2;
                            continue main;
                        }
                        $var2 = $var2 + 1 | 0;
                    }
                }
            }
            return;
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    case 2:
        $this.$collideWithEntity($var3);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            while (true) {
                $var2 = $var2 + 1 | 0;
                var$11 = $rt_compare($var2, $var1.$size0);
                if (var$11 >= 0)
                    break;
                if ($var2 < 0)
                    break a;
                if (var$11 >= 0)
                    break a;
                $var3 = $var1.$array.data[$var2];
                if (!$var3.$canBePushed())
                    continue;
                else {
                    continue main;
                }
            }
            return;
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var1, var$3, var$4, var$5, var$6, var$7, var$8, $var2, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityLivingBase_collideWithEntity = ($this, $par1Entity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1Entity.$applyEntityCollision($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $ptr);
},
nms_EntityLivingBase_updateRidden = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_updateRidden($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_70768_au = $this.$field_110154_aX;
        $this.$field_110154_aX = 0.0;
        $this.$fallDistance = 0.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_EntityLivingBase_updateAITick = $this => {
    return;
},
nms_EntityLivingBase_setJumping = ($this, $par1) => {
    $this.$isJumping = $par1;
},
nms_EntityLivingBase_onItemPickup = ($this, $par1Entity, $par2) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1Entity.$isDead) {
            var$3 = $this.$worldObj;
            if (!var$3.$isRemote) {
                $var3 = var$3.$theEntityTracker;
                if ($par1Entity instanceof nms_EntityItem) {
                    var$3 = new nms_Packet22Collect;
                    $par2 = $par1Entity.$entityId;
                    var$5 = $this.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$3.$collectedEntityId = $par2;
                    var$3.$collectorEntityId = var$5;
                    var$6 = $var3.$trackedEntityIDs;
                    $par2 = $par1Entity.$entityId;
                    var$5 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
                    var$7 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$8 = var$6.$slots.data;
                    var$6 = var$8[var$7 & (var$8.length - 1 | 0)];
                    a: {
                        while (var$6 !== null) {
                            if (var$6.$hashEntry == $par2) {
                                var$6 = var$6.$valueEntry;
                                break a;
                            }
                            var$6 = var$6.$nextEntry0;
                        }
                        var$6 = null;
                    }
                    var$6 = var$6;
                    if (var$6 !== null) {
                        var$6 = var$6.$trackingPlayers.$backingMap;
                        if (var$6.$cachedKeySet === null) {
                            var$9 = new ju_HashMap$1;
                            var$9.$this$0 = var$6;
                            var$6.$cachedKeySet = var$9;
                        }
                        var$10 = var$6.$cachedKeySet.$iterator();
                        var$5 = var$3 instanceof nms_Packet3Chat;
                        var$9 = var$3;
                        while (var$10.$hasNext()) {
                            b: {
                                var$6 = (var$10.$next()).$playerNetServerHandler;
                                if (var$5) {
                                    var$11 = var$6.$playerEntity.$chatVisibility;
                                    if (var$11 == 2)
                                        break b;
                                    if (var$11 == 1 && !var$9.$isServer)
                                        break b;
                                }
                                try {
                                    var$6 = var$6.$netManager;
                                    $ptr = 1;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$12 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_(var$12, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = var$12;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                        }
                    }
                }
                if ($par1Entity instanceof nms_EntityArrow) {
                    var$3 = new nms_Packet22Collect;
                    $par2 = $par1Entity.$entityId;
                    var$5 = $this.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$3.$collectedEntityId = $par2;
                    var$3.$collectorEntityId = var$5;
                    var$6 = $var3.$trackedEntityIDs;
                    var$5 = $par1Entity.$entityId;
                    $par2 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                    $par2 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
                    var$8 = var$6.$slots.data;
                    var$6 = var$8[$par2 & (var$8.length - 1 | 0)];
                    c: {
                        while (var$6 !== null) {
                            if (var$6.$hashEntry == var$5) {
                                var$6 = var$6.$valueEntry;
                                break c;
                            }
                            var$6 = var$6.$nextEntry0;
                        }
                        var$6 = null;
                    }
                    var$6 = var$6;
                    if (var$6 !== null) {
                        var$6 = var$6.$trackingPlayers.$backingMap;
                        if (var$6.$cachedKeySet === null) {
                            var$9 = new ju_HashMap$1;
                            var$9.$this$0 = var$6;
                            var$6.$cachedKeySet = var$9;
                        }
                        var$10 = var$6.$cachedKeySet.$iterator();
                        var$5 = var$3 instanceof nms_Packet3Chat;
                        var$9 = var$3;
                        while (var$10.$hasNext()) {
                            d: {
                                var$6 = (var$10.$next()).$playerNetServerHandler;
                                if (var$5) {
                                    var$11 = var$6.$playerEntity.$chatVisibility;
                                    if (var$11 == 2)
                                        break d;
                                    if (var$11 == 1 && !var$9.$isServer)
                                        break d;
                                }
                                try {
                                    var$6 = var$6.$netManager;
                                    $ptr = 2;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$12 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_(var$12, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = var$12;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                        }
                    }
                }
                if ($par1Entity instanceof nms_EntityXPOrb) {
                    var$3 = new nms_Packet22Collect;
                    $par2 = $par1Entity.$entityId;
                    var$5 = $this.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$3.$collectedEntityId = $par2;
                    var$3.$collectorEntityId = var$5;
                    var$6 = $var3.$trackedEntityIDs;
                    $par2 = $par1Entity.$entityId;
                    var$5 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
                    var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$8 = var$6.$slots.data;
                    $par1Entity = var$8[var$5 & (var$8.length - 1 | 0)];
                    e: {
                        while ($par1Entity !== null) {
                            if ($par1Entity.$hashEntry == $par2) {
                                $par1Entity = $par1Entity.$valueEntry;
                                break e;
                            }
                            $par1Entity = $par1Entity.$nextEntry0;
                        }
                        $par1Entity = null;
                    }
                    $par1Entity = $par1Entity;
                    if ($par1Entity !== null) {
                        $par1Entity = $par1Entity.$trackingPlayers.$backingMap;
                        if ($par1Entity.$cachedKeySet === null) {
                            var$6 = new ju_HashMap$1;
                            var$6.$this$0 = $par1Entity;
                            $par1Entity.$cachedKeySet = var$6;
                        }
                        var$6 = $par1Entity.$cachedKeySet.$iterator();
                        var$5 = var$3 instanceof nms_Packet3Chat;
                        $par1Entity = var$3;
                        while (var$6.$hasNext()) {
                            f: {
                                $var3 = (var$6.$next()).$playerNetServerHandler;
                                if (var$5) {
                                    var$11 = $var3.$playerEntity.$chatVisibility;
                                    if (var$11 == 2)
                                        break f;
                                    if (var$11 == 1 && !$par1Entity.$isServer)
                                        break f;
                                }
                                try {
                                    $var3 = $var3.$netManager;
                                    $ptr = 3;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var3 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$9 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_(var$9, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = var$9;
                                }
                                jl_Throwable_printStackTrace($var3, jl_System_errCache);
                            }
                        }
                    }
                }
            }
        }
        return;
    case 1:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$12, var$13, $par2);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        h: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break h;
                var$6 = (var$10.$next()).$playerNetServerHandler;
                if (!var$5)
                    break;
                var$11 = var$6.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$12, var$13, $par2);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        if ($par1Entity instanceof nms_EntityArrow) {
            var$3 = new nms_Packet22Collect;
            $par2 = $par1Entity.$entityId;
            var$5 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$collectedEntityId = $par2;
            var$3.$collectorEntityId = var$5;
            var$6 = $var3.$trackedEntityIDs;
            var$5 = $par1Entity.$entityId;
            $par2 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
            $par2 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
            var$8 = var$6.$slots.data;
            var$6 = var$8[$par2 & (var$8.length - 1 | 0)];
            i: {
                while (var$6 !== null) {
                    if (var$6.$hashEntry == var$5) {
                        var$6 = var$6.$valueEntry;
                        break i;
                    }
                    var$6 = var$6.$nextEntry0;
                }
                var$6 = null;
            }
            var$6 = var$6;
            if (var$6 !== null) {
                var$6 = var$6.$trackingPlayers.$backingMap;
                if (var$6.$cachedKeySet === null) {
                    var$9 = new ju_HashMap$1;
                    var$9.$this$0 = var$6;
                    var$6.$cachedKeySet = var$9;
                }
                var$10 = var$6.$cachedKeySet.$iterator();
                var$5 = var$3 instanceof nms_Packet3Chat;
                var$9 = var$3;
                while (var$10.$hasNext()) {
                    j: {
                        var$6 = (var$10.$next()).$playerNetServerHandler;
                        if (var$5) {
                            var$11 = var$6.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break j;
                            if (var$11 == 1 && !var$9.$isServer)
                                break j;
                        }
                        try {
                            var$6 = var$6.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$12 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$12, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$12;
                        }
                        jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                    }
                }
            }
        }
        if ($par1Entity instanceof nms_EntityXPOrb) {
            var$3 = new nms_Packet22Collect;
            $par2 = $par1Entity.$entityId;
            var$5 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$collectedEntityId = $par2;
            var$3.$collectorEntityId = var$5;
            var$6 = $var3.$trackedEntityIDs;
            $par2 = $par1Entity.$entityId;
            var$5 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
            var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$8 = var$6.$slots.data;
            $par1Entity = var$8[var$5 & (var$8.length - 1 | 0)];
            k: {
                while ($par1Entity !== null) {
                    if ($par1Entity.$hashEntry == $par2) {
                        $par1Entity = $par1Entity.$valueEntry;
                        break k;
                    }
                    $par1Entity = $par1Entity.$nextEntry0;
                }
                $par1Entity = null;
            }
            $par1Entity = $par1Entity;
            if ($par1Entity !== null) {
                $par1Entity = $par1Entity.$trackingPlayers.$backingMap;
                if ($par1Entity.$cachedKeySet === null) {
                    var$6 = new ju_HashMap$1;
                    var$6.$this$0 = $par1Entity;
                    $par1Entity.$cachedKeySet = var$6;
                }
                var$6 = $par1Entity.$cachedKeySet.$iterator();
                var$5 = var$3 instanceof nms_Packet3Chat;
                $par1Entity = var$3;
                while (var$6.$hasNext()) {
                    l: {
                        $var3 = (var$6.$next()).$playerNetServerHandler;
                        if (var$5) {
                            var$11 = $var3.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break l;
                            if (var$11 == 1 && !$par1Entity.$isServer)
                                break l;
                        }
                        try {
                            $var3 = $var3.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$9, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace($var3, jl_System_errCache);
                    }
                }
            }
        }
        return;
    case 2:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$12, var$13, $par2);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        h: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break h;
                var$6 = (var$10.$next()).$playerNetServerHandler;
                if (!var$5)
                    break;
                var$11 = var$6.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$12, var$13, $par2);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$12);
        }
        if ($par1Entity instanceof nms_EntityXPOrb) {
            var$3 = new nms_Packet22Collect;
            $par2 = $par1Entity.$entityId;
            var$5 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$collectedEntityId = $par2;
            var$3.$collectorEntityId = var$5;
            var$6 = $var3.$trackedEntityIDs;
            $par2 = $par1Entity.$entityId;
            var$5 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
            var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$8 = var$6.$slots.data;
            $par1Entity = var$8[var$5 & (var$8.length - 1 | 0)];
            i: {
                while ($par1Entity !== null) {
                    if ($par1Entity.$hashEntry == $par2) {
                        $par1Entity = $par1Entity.$valueEntry;
                        break i;
                    }
                    $par1Entity = $par1Entity.$nextEntry0;
                }
                $par1Entity = null;
            }
            $par1Entity = $par1Entity;
            if ($par1Entity !== null) {
                $par1Entity = $par1Entity.$trackingPlayers.$backingMap;
                if ($par1Entity.$cachedKeySet === null) {
                    var$6 = new ju_HashMap$1;
                    var$6.$this$0 = $par1Entity;
                    $par1Entity.$cachedKeySet = var$6;
                }
                var$6 = $par1Entity.$cachedKeySet.$iterator();
                var$5 = var$3 instanceof nms_Packet3Chat;
                $par1Entity = var$3;
                while (var$6.$hasNext()) {
                    j: {
                        $var3 = (var$6.$next()).$playerNetServerHandler;
                        if (var$5) {
                            var$11 = $var3.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break j;
                            if (var$11 == 1 && !$par1Entity.$isServer)
                                break j;
                        }
                        try {
                            $var3 = $var3.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$9, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace($var3, jl_System_errCache);
                    }
                }
            }
        }
        return;
    case 3:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$12, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$9, var$12, $par2);
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$9);
        }
        h: while (true) {
            while (true) {
                if (!var$6.$hasNext())
                    break h;
                $var3 = (var$6.$next()).$playerNetServerHandler;
                if (!var$5)
                    break;
                var$11 = $var3.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if ($par1Entity.$isServer)
                    break;
            }
            try {
                $var3 = $var3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$12, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$9, var$12, $par2);
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$9);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityLivingBase_canEntityBeSeen = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj;
        var$3 = nms_Vec3Pool_getVecFromPool(var$2.$vecPool, $this.$posX, $this.$posY + $this.$getEyeHeight(), $this.$posZ);
        $par1Entity = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $par1Entity.$posX, $par1Entity.$posY + $par1Entity.$getEyeHeight(), $par1Entity.$posZ);
        var$4 = 0;
        var$5 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_rayTraceBlocks_do_do(var$2, var$3, $par1Entity, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity = $tmp;
        return $par1Entity !== null ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityLivingBase_getLookVec = $this => {
    return nms_EntityLivingBase_getLook($this, 1.0);
},
nms_EntityLivingBase_getLook = ($this, $par1) => {
    let var$2, $var2, $var3, $var4, $var5, $var2_0, $var6, $var7;
    if ($par1 === 1.0) {
        $par1 =  -$this.$rotationYaw * 0.01745329238474369 - 3.1415927410125732;
        var$2 = nms_MathHelper_SIN_TABLE.data;
        $par1 = $par1 * 10430.3779296875;
        $var2 = var$2[($par1 + 16384.0 | 0) & 65535];
        $var3 = var$2[($par1 | 0) & 65535];
        $par1 =  -$this.$rotationPitch * 0.01745329238474369 * 10430.3779296875;
        $var4 =  -var$2[($par1 + 16384.0 | 0) & 65535];
        $var5 = var$2[($par1 | 0) & 65535];
        return nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $var3 * $var4, $var5, $var2 * $var4);
    }
    $var2_0 = $this.$prevRotationPitch;
    $var2_0 = $var2_0 + ($this.$rotationPitch - $var2_0) * $par1;
    $var3 = $this.$prevRotationYaw;
    $par1 =  -($var3 + ($this.$rotationYaw - $var3) * $par1) * 0.01745329238474369 - 3.1415927410125732;
    var$2 = nms_MathHelper_SIN_TABLE.data;
    $par1 = $par1 * 10430.3779296875;
    $var4 = var$2[($par1 + 16384.0 | 0) & 65535];
    $var5 = var$2[($par1 | 0) & 65535];
    $par1 =  -$var2_0 * 0.01745329238474369 * 10430.3779296875;
    $var6 =  -var$2[($par1 + 16384.0 | 0) & 65535];
    $var7 = var$2[($par1 | 0) & 65535];
    return nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $var5 * $var6, $var7, $var4 * $var6);
},
nms_EntityLivingBase_isClientWorld = $this => {
    return $this.$worldObj.$isRemote ? 0 : 1;
},
nms_EntityLivingBase_canBeCollidedWith = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityLivingBase_canBePushed = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityLivingBase_getEyeHeight = $this => {
    return $this.$height0 * 0.8500000238418579;
},
nms_EntityLivingBase_setBeenAttacked = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$3 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$2, 22))), 27);
    var$2 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$4 = Long_toNumber(Long_add(var$3, Long_fromInt(Long_lo(Long_shru(var$2, 21))))) * 1.1102230246251565E-16;
    var$1 = nms_SharedMonsterAttributes_knockbackResistance;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$5 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$5 = var$5.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        a: {
            var$6 = var$1.$field_111115_a;
            if (!var$6.$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= var$6.$nativeString.length)
                        break a;
                    var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$8 = var$6.$hashCode1;
        var$9 = var$5.$elementData.data;
        var$5 = var$9[var$8 & (var$9.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$8) {
                var$6 = var$5.$key;
                if (var$1 !== var$6 && !jl_Object_equals(var$1, var$6) ? 0 : 1)
                    break;
            }
            var$5 = var$5.$next3;
        }
    }
    var$1 = var$5 === null ? null : var$5.$value0;
    if (var$1.$field_111133_g) {
        var$1.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$1);
        var$1.$field_111133_g = 0;
    }
    $this.$velocityChanged = var$4 < var$1.$field_111139_h ? 0 : 1;
},
nms_EntityLivingBase_getRotationYawHead = $this => {
    return $this.$rotationYawHead;
},
nms_EntityLivingBase_getAbsorptionAmount = $this => {
    return $this.$field_110151_bq;
},
nms_EntityLivingBase_setAbsorptionAmount = ($this, $par1) => {
    if ($par1 < 0.0)
        $par1 = 0.0;
    $this.$field_110151_bq = $par1;
},
nms_EntityLivingBase_getTeam = $this => {
    return null;
},
nms_EntityLivingBase_isOnSameTeam = ($this, $par1EntityLivingBase) => {
    let var$2, var$3;
    $par1EntityLivingBase = $par1EntityLivingBase.$getTeam();
    if ($this.$getTeam() === null)
        var$2 = 0;
    else {
        var$3 = $this.$getTeam();
        var$2 = $par1EntityLivingBase === null ? 0 : var$3 !== $par1EntityLivingBase ? 0 : 1;
    }
    return var$2;
},
nms_EntityLivingBase_func_94057_bL = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[133];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject;
},
nms_EntityLivingBase_func_94062_bN = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[134];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 != 1 ? 0 : 1;
},
nms_EntityLivingBase_isOnTeam = ($this, $par1Team) => {
    let var$2, var$3;
    if ($this.$getTeam() === null)
        var$2 = 0;
    else {
        var$3 = $this.$getTeam();
        var$2 = $par1Team === null ? 0 : var$3 !== $par1Team ? 0 : 1;
    }
    return var$2;
},
nms_EntityLivingBase__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = nle_ProfileUUID_fromString($rt_s(2002));
    nms_EntityLivingBase_sprintingSpeedBoostModifierUUID = var$1;
    var$2 = new nms_AttributeModifier;
    var$2.$isSaved = 1;
    var$2.$id1 = var$1;
    var$2.$name3 = $rt_s(2003);
    var$2.$amount0 = 0.30000001192092896;
    var$2.$operation = 2;
    if ($rt_s(2003) === $rt_s(3))
        var$3 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(3);
        var$3 = $rt_s(2003).$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (!var$3) {
        var$2.$isSaved = 0;
        nms_EntityLivingBase_sprintingSpeedBoostModifier = var$2;
        return;
    }
    var$1 = new jl_IllegalArgumentException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    var$1.$message = $rt_s(1279);
    $rt_throw(var$1);
};
function nms_EntityPlayer() {
    let a = this; nms_EntityLivingBase.call(a);
    a.$inventory0 = null;
    a.$theInventoryEnderChest = null;
    a.$inventoryContainer = null;
    a.$openContainer = null;
    a.$foodStats = null;
    a.$flyToggleTimer = 0;
    a.$prevCameraYaw = 0.0;
    a.$cameraYaw = 0.0;
    a.$username = null;
    a.$xpCooldown = 0;
    a.$field_71091_bM = 0.0;
    a.$field_71096_bN = 0.0;
    a.$field_71097_bO = 0.0;
    a.$field_71094_bP = 0.0;
    a.$field_71095_bQ = 0.0;
    a.$field_71085_bR = 0.0;
    a.$sleeping = 0;
    a.$playerLocation = null;
    a.$sleepTimer = 0;
    a.$field_71079_bU = 0.0;
    a.$field_71089_bV = 0.0;
    a.$spawnChunk = null;
    a.$spawnForced = 0;
    a.$startMinecartRidingCoordinate = null;
    a.$capabilities = null;
    a.$experienceLevel = 0;
    a.$experienceTotal = 0;
    a.$experience = 0.0;
    a.$itemInUse = null;
    a.$itemInUseCount = 0;
    a.$speedOnGround = 0.0;
    a.$speedInAir = 0.0;
    a.$field_82249_h = 0;
    a.$fishEntity = null;
}
let nms_EntityPlayer__init_ = ($this, $par1World, $par2Str) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2Str = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityLivingBase__init_($this, $par1World);
        var$3 = new nms_InventoryPlayer;
        var$3.$mainInventory = $rt_createArray(nms_ItemStack, 36);
        var$3.$armorInventory = $rt_createArray(nms_ItemStack, 4);
        var$3.$player = $this;
        $this.$inventory0 = var$3;
        var$4 = new nms_InventoryEnderChest;
        var$4.$inventoryTitle = $rt_s(2004);
        var$4.$field_94051_e = 0;
        var$4.$slotsCount = 27;
        var$4.$inventoryContents = $rt_createArray(nms_ItemStack, 27);
        $this.$theInventoryEnderChest = var$4;
        var$4 = new nms_FoodStats;
        var$4.$foodLevel = 20;
        var$4.$foodSaturationLevel = 5.0;
        var$4.$prevFoodLevel = 20;
        $this.$foodStats = var$4;
        var$4 = new nms_PlayerCapabilities;
        var$4.$allowEdit = 1;
        var$4.$flySpeed = 0.05000000074505806;
        var$4.$walkSpeed = 0.10000000149011612;
        $this.$capabilities = var$4;
        $this.$speedOnGround = 0.10000000149011612;
        $this.$speedInAir = 0.019999999552965164;
        $this.$username = $par2Str;
        $par2Str = new nms_ContainerPlayer;
        var$5 = $par1World.$isRemote ? 0 : 1;
        $ptr = 1;
    case 1:
        nms_ContainerPlayer__init_($par2Str, var$3, var$5, $this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$inventoryContainer = $par2Str;
        $this.$openContainer = $par2Str;
        $this.$yOffset = 1.6200000047683716;
        var$5 = $par1World.$worldInfo.$getSpawnX();
        var$6 = $par1World.$worldInfo.$getSpawnY();
        var$7 = $par1World.$worldInfo.$getSpawnZ();
        var$8 = var$5 + 0.5;
        var$9 = var$6 + 1 | 0;
        var$10 = var$7 + 0.5;
        $this.$posX = var$8;
        $this.$prevPosX = var$8;
        $this.$lastTickPosX = var$8;
        var$11 = var$9 + $this.$yOffset;
        $this.$posY = var$11;
        $this.$prevPosY = var$11;
        $this.$lastTickPosY = var$11;
        $this.$posZ = var$10;
        $this.$prevPosZ = var$10;
        $this.$lastTickPosZ = var$10;
        $this.$rotationYaw = 0.0;
        $this.$rotationPitch = 0.0;
        nms_Entity_setPosition($this, var$8, var$11, var$10);
        $this.$field_70741_aB = 180.0;
        $this.$fireResistance = 20;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Str, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityPlayer_applyEntityAttributes = $this => {
    let var$1, var$2;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_movementSpeed);
    if (0.10000000149011612 !== var$1.$baseValue) {
        var$1.$baseValue = 0.10000000149011612;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    if (1.0 !== var$1.$baseValue) {
        var$1.$baseValue = 1.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityPlayer_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 0.0;
    nms_DataWatcher_addObject(var$1, 17, var$2);
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 18, jl_Integer_integerCache.data[128]);
},
nms_EntityPlayer_onUpdate = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, $var3, $var5, var$11, $var9, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$itemInUse;
        if (var$1 !== null) {
            $var1 = $this.$inventory0;
            var$3 = $var1.$currentItem;
            $var1 = var$3 < 9 && var$3 >= 0 ? $var1.$mainInventory.data[var$3] : null;
            if ($var1 !== var$1) {
                $this.$itemInUse = null;
                $this.$itemInUseCount = 0;
                if (!$this.$worldObj.$isRemote)
                    nms_Entity_setFlag($this, 4, 0);
            } else {
                var$4 = $this.$itemInUseCount;
                if (var$4 <= 25 && !(var$4 % 4 | 0)) {
                    var$4 = 5;
                    $ptr = 4;
                    continue main;
                }
                var$4 = $this.$itemInUseCount - 1 | 0;
                $this.$itemInUseCount = var$4;
                if (!var$4 && !$this.$worldObj.$isRemote) {
                    a: {
                        $var1 = $this.$playerNetServerHandler;
                        var$1 = new nms_Packet38EntityStatus;
                        var$3 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$1.$entityId0 = var$3;
                        var$1.$entityStatus = 9;
                        if (var$1 instanceof nms_Packet3Chat) {
                            var$5 = var$1;
                            var$3 = $var1.$playerEntity.$chatVisibility;
                            if (var$3 == 2)
                                break a;
                            if (var$3 == 1 && !var$5.$isServer)
                                break a;
                        }
                        try {
                            $var1 = $var1.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var1 = new otcic_JSStderrPrintStream;
                            var$5 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$5);
                            var$5.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var1, var$5);
                            $var1.$sb = jl_StringBuilder__init_();
                            $var1.$buffer0 = $rt_createCharArray(32);
                            $var1.$autoFlush = 0;
                            $var1.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var1;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
                    $ptr = 9;
                    continue main;
                }
            }
        }
        var$4 = $this.$xpCooldown;
        if (var$4 > 0)
            $this.$xpCooldown = var$4 - 1 | 0;
        if (!$this.$sleeping) {
            var$3 = $this.$sleepTimer;
            if (var$3 > 0) {
                var$4 = var$3 + 1 | 0;
                $this.$sleepTimer = var$4;
                if (var$4 >= 110)
                    $this.$sleepTimer = 0;
            }
        } else {
            var$4 = $this.$sleepTimer + 1 | 0;
            $this.$sleepTimer = var$4;
            if (var$4 > 100)
                $this.$sleepTimer = 100;
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote) {
                $var1 = $this.$playerLocation;
                var$4 = $var1.$posX0;
                var$3 = $var1.$posY0;
                var$6 = $var1.$posZ0;
                $ptr = 2;
                continue main;
            }
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote) {
            var$1 = $this.$openContainer;
            if (var$1 !== null) {
                $ptr = 3;
                continue main;
            }
        }
        b: {
            c: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break c;
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var1 = jl_Integer_integerCache.data[128];
                    if ($var1 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$4 = $var1.$value;
                        var$7 = var$1.$elementData.data;
                        var$1 = var$7[var$4 & (var$7.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$4) {
                                var$5 = var$1.$key;
                                if ($var1 !== var$5 && !jl_Integer_equals($var1, var$5) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    var$1 = var$1 === null ? null : var$1.$value0;
                    if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)
                        break c;
                }
                var$4 = 0;
                break b;
            }
            var$4 = 1;
        }
        if (var$4 && $this.$capabilities.$disableDamage)
            $this.$fire = 0;
        var$8 = $this.$field_71094_bP;
        $this.$field_71091_bM = var$8;
        $var3 = $this.$field_71095_bQ;
        $this.$field_71096_bN = $var3;
        $var5 = $this.$field_71085_bR;
        $this.$field_71097_bO = $var5;
        var$11 = $this.$posX;
        $var9 = var$11 - var$8;
        var$8 = $this.$posY;
        $var3 = var$8 - $var3;
        var$13 = $this.$posZ;
        $var5 = var$13 - $var5;
        if ($var9 > 10.0) {
            $this.$field_71094_bP = var$11;
            $this.$field_71091_bM = var$11;
        }
        if ($var5 > 10.0) {
            $this.$field_71085_bR = var$13;
            $this.$field_71097_bO = var$13;
        }
        if ($var3 > 10.0) {
            $this.$field_71095_bQ = var$8;
            $this.$field_71096_bN = var$8;
        }
        if ($var9 < (-10.0)) {
            $this.$field_71094_bP = var$11;
            $this.$field_71091_bM = var$11;
        }
        if ($var5 < (-10.0)) {
            $this.$field_71085_bR = var$13;
            $this.$field_71097_bO = var$13;
        }
        if ($var3 < (-10.0)) {
            $this.$field_71095_bQ = var$8;
            $this.$field_71096_bN = var$8;
        }
        $this.$field_71094_bP = $this.$field_71094_bP + $var9 * 0.25;
        $this.$field_71085_bR = $this.$field_71085_bR + $var5 * 0.25;
        $this.$field_71095_bQ = $this.$field_71095_bQ + $var3 * 0.25;
        nms_StatList_$callClinit();
        var$1 = nms_StatList_minutesPlayedStat;
        if (var$1 !== null && !var$1.$isIndependent)
            d: {
                var$5 = $this.$playerNetServerHandler;
                $var1 = new nms_Packet200Statistic;
                var$3 = var$1.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var1.$statisticId = var$3;
                $var1.$amount = 1;
                if ($var1 instanceof nms_Packet3Chat) {
                    var$1 = $var1;
                    var$3 = var$5.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break d;
                    if (var$3 == 1 && !var$1.$isServer)
                        break d;
                }
                try {
                    var$1 = var$5.$netManager;
                    $ptr = 14;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$5 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$5);
                    var$5.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var1, var$5);
                    $var1.$sb = jl_StringBuilder__init_();
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        if ($this.$ridingEntity === null)
            $this.$startMinecartRidingCoordinate = null;
        if ($this.$worldObj.$isRemote)
            return;
        var$1 = $this.$foodStats;
        $ptr = 13;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$1, var$4, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        nms_Block_$callClinit();
        if (!(var$4 != nms_Block_bed.$blockID ? 0 : 1)) {
            var$4 = 1;
            var$3 = 1;
            var$6 = 0;
            if ($this.$sleeping) {
                var$5 = $this.$worldObj.$theEntityTracker;
                $var1 = new nms_Packet18Animation;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$14 = $this.$entityId;
                $var1.$entityId1 = var$14;
                $var1.$animate = 3;
                var$1 = var$5.$trackedEntityIDs;
                var$15 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                var$16 = var$15 ^ (var$15 >>> 7 | 0) ^ (var$15 >>> 4 | 0);
                var$7 = var$1.$slots.data;
                var$1 = var$7[var$16 & (var$7.length - 1 | 0)];
                e: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$14) {
                            var$1 = var$1.$valueEntry;
                            break e;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$1 = var$1;
                if (var$1 !== null) {
                    var$5 = var$1.$trackingPlayers.$backingMap;
                    if (var$5.$cachedKeySet === null) {
                        var$17 = new ju_HashMap$1;
                        var$17.$this$0 = var$5;
                        ju_AbstractCollection__init_(var$17);
                        var$5.$cachedKeySet = var$17;
                    }
                    var$18 = var$5.$cachedKeySet.$iterator();
                    var$14 = $var1 instanceof nms_Packet3Chat;
                    var$17 = $var1;
                    while (var$18.$hasNext()) {
                        f: {
                            var$5 = (var$18.$next()).$playerNetServerHandler;
                            if (var$14) {
                                var$19 = var$5.$playerEntity.$chatVisibility;
                                if (var$19 == 2)
                                    break f;
                                if (var$19 == 1 && !var$17.$isServer)
                                    break f;
                            }
                            try {
                                var$5 = var$5.$netManager;
                                $ptr = 15;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$5 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$20 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$20);
                                jl_System_errCache = var$20;
                            }
                            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                        }
                    }
                    var$1 = var$1.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        g: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$14) {
                                var$14 = var$1.$playerEntity.$chatVisibility;
                                if (var$14 == 2)
                                    break g;
                                if (var$14 == 1 && !var$17.$isServer)
                                    break g;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 16;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var1 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0($var1, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = $var1;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
            }
            $ptr = 7;
            continue main;
        }
        var$1 = $this.$worldObj;
        if (!(var$1.$skylightSubtracted >= 4 ? 0 : 1)) {
            $ptr = 1;
            continue main;
        }
        var$3 = 0;
        var$6 = 1;
        var$4 = 1;
        if ($this.$sleeping) {
            var$5 = var$1.$theEntityTracker;
            var$1 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$16 = $this.$entityId;
            var$1.$entityId1 = var$16;
            var$1.$animate = 3;
            $var1 = var$5.$trackedEntityIDs;
            var$15 = var$16 ^ (var$16 >>> 20 | 0) ^ (var$16 >>> 12 | 0);
            var$19 = var$15 ^ (var$15 >>> 7 | 0) ^ (var$15 >>> 4 | 0);
            var$7 = $var1.$slots.data;
            $var1 = var$7[var$19 & (var$7.length - 1 | 0)];
            h: {
                while ($var1 !== null) {
                    if ($var1.$hashEntry == var$16) {
                        $var1 = $var1.$valueEntry;
                        break h;
                    }
                    $var1 = $var1.$nextEntry0;
                }
                $var1 = null;
            }
            $var1 = $var1;
            if ($var1 !== null) {
                var$5 = $var1.$trackingPlayers.$backingMap;
                if (var$5.$cachedKeySet === null) {
                    var$17 = new ju_HashMap$1;
                    var$17.$this$0 = var$5;
                    ju_AbstractCollection__init_(var$17);
                    var$5.$cachedKeySet = var$17;
                }
                var$18 = var$5.$cachedKeySet.$iterator();
                var$14 = var$1 instanceof nms_Packet3Chat;
                var$17 = var$1;
                while (var$18.$hasNext()) {
                    i: {
                        var$5 = (var$18.$next()).$playerNetServerHandler;
                        if (var$14) {
                            var$19 = var$5.$playerEntity.$chatVisibility;
                            if (var$19 == 2)
                                break i;
                            if (var$19 == 1 && !var$17.$isServer)
                                break i;
                        }
                        try {
                            var$5 = var$5.$netManager;
                            $ptr = 17;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$20 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$20);
                            jl_System_errCache = var$20;
                        }
                        jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                    }
                }
                $var1 = $var1.$myEntity;
                if ($var1 instanceof nms_EntityPlayerMP)
                    j: {
                        $var1 = $var1.$playerNetServerHandler;
                        if (var$14) {
                            var$14 = $var1.$playerEntity.$chatVisibility;
                            if (var$14 == 2)
                                break j;
                            if (var$14 == 1 && !var$17.$isServer)
                                break j;
                        }
                        try {
                            $var1 = $var1.$netManager;
                            $ptr = 18;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var1 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var1, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var1;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
            }
        }
        $ptr = 11;
        continue main;
    case 3:
        $tmp = var$1.$canInteractWith($this);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4) {
            b: {
                $var1 = $this.$playerNetServerHandler;
                var$1 = new nms_Packet101CloseWindow;
                var$4 = $this.$openContainer.$windowId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$1.$windowId3 = var$4;
                if (var$1 instanceof nms_Packet3Chat) {
                    var$5 = var$1;
                    var$3 = $var1.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break b;
                    if (var$3 == 1 && !var$5.$isServer)
                        break b;
                }
                try {
                    $var1 = $var1.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$5 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$5);
                    var$5.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var1, var$5);
                    $var1.$sb = jl_StringBuilder__init_();
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
            var$1 = $this.$openContainer;
            $ptr = 8;
            continue main;
        }
        k: {
            l: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break l;
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var1 = jl_Integer_integerCache.data[128];
                    if ($var1 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$4 = $var1.$value;
                        var$7 = var$1.$elementData.data;
                        var$1 = var$7[var$4 & (var$7.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$4) {
                                var$5 = var$1.$key;
                                if ($var1 !== var$5 && !jl_Integer_equals($var1, var$5) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    var$1 = var$1 === null ? null : var$1.$value0;
                    if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)
                        break l;
                }
                var$4 = 0;
                break k;
            }
            var$4 = 1;
        }
        if (var$4 && $this.$capabilities.$disableDamage)
            $this.$fire = 0;
        var$8 = $this.$field_71094_bP;
        $this.$field_71091_bM = var$8;
        $var3 = $this.$field_71095_bQ;
        $this.$field_71096_bN = $var3;
        $var5 = $this.$field_71085_bR;
        $this.$field_71097_bO = $var5;
        var$11 = $this.$posX;
        $var9 = var$11 - var$8;
        var$8 = $this.$posY;
        $var3 = var$8 - $var3;
        var$13 = $this.$posZ;
        $var5 = var$13 - $var5;
        if ($var9 > 10.0) {
            $this.$field_71094_bP = var$11;
            $this.$field_71091_bM = var$11;
        }
        if ($var5 > 10.0) {
            $this.$field_71085_bR = var$13;
            $this.$field_71097_bO = var$13;
        }
        if ($var3 > 10.0) {
            $this.$field_71095_bQ = var$8;
            $this.$field_71096_bN = var$8;
        }
        if ($var9 < (-10.0)) {
            $this.$field_71094_bP = var$11;
            $this.$field_71091_bM = var$11;
        }
        if ($var5 < (-10.0)) {
            $this.$field_71085_bR = var$13;
            $this.$field_71097_bO = var$13;
        }
        if ($var3 < (-10.0)) {
            $this.$field_71095_bQ = var$8;
            $this.$field_71096_bN = var$8;
        }
        $this.$field_71094_bP = $this.$field_71094_bP + $var9 * 0.25;
        $this.$field_71085_bR = $this.$field_71085_bR + $var5 * 0.25;
        $this.$field_71095_bQ = $this.$field_71095_bQ + $var3 * 0.25;
        nms_StatList_$callClinit();
        var$1 = nms_StatList_minutesPlayedStat;
        if (var$1 !== null && !var$1.$isIndependent)
            m: {
                var$5 = $this.$playerNetServerHandler;
                $var1 = new nms_Packet200Statistic;
                var$3 = var$1.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var1.$statisticId = var$3;
                $var1.$amount = 1;
                if ($var1 instanceof nms_Packet3Chat) {
                    var$1 = $var1;
                    var$3 = var$5.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break m;
                    if (var$3 == 1 && !var$1.$isServer)
                        break m;
                }
                try {
                    var$1 = var$5.$netManager;
                    $ptr = 14;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$5 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$5);
                    var$5.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var1, var$5);
                    $var1.$sb = jl_StringBuilder__init_();
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        if ($this.$ridingEntity === null)
            $this.$startMinecartRidingCoordinate = null;
        if ($this.$worldObj.$isRemote)
            return;
        var$1 = $this.$foodStats;
        $ptr = 13;
        continue main;
    case 4:
        nms_EntityPlayer_updateItemUse($this, $var1, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$itemInUseCount - 1 | 0;
        $this.$itemInUseCount = var$4;
        if (!var$4 && !$this.$worldObj.$isRemote) {
            n: {
                $var1 = $this.$playerNetServerHandler;
                var$1 = new nms_Packet38EntityStatus;
                var$3 = $this.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$1.$entityId0 = var$3;
                var$1.$entityStatus = 9;
                if (var$1 instanceof nms_Packet3Chat) {
                    var$5 = var$1;
                    var$3 = $var1.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break n;
                    if (var$3 == 1 && !var$5.$isServer)
                        break n;
                }
                try {
                    $var1 = $var1.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$5 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$5);
                    var$5.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var1, var$5);
                    $var1.$sb = jl_StringBuilder__init_();
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
            $ptr = 9;
            continue main;
        }
        var$4 = $this.$xpCooldown;
        if (var$4 > 0)
            $this.$xpCooldown = var$4 - 1 | 0;
        if (!$this.$sleeping) {
            var$3 = $this.$sleepTimer;
            if (var$3 > 0) {
                var$4 = var$3 + 1 | 0;
                $this.$sleepTimer = var$4;
                if (var$4 >= 110)
                    $this.$sleepTimer = 0;
            }
        } else {
            var$4 = $this.$sleepTimer + 1 | 0;
            $this.$sleepTimer = var$4;
            if (var$4 > 100)
                $this.$sleepTimer = 100;
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote) {
                $var1 = $this.$playerLocation;
                var$4 = $var1.$posX0;
                var$3 = $var1.$posY0;
                var$6 = $var1.$posZ0;
                $ptr = 2;
                continue main;
            }
        }
        $ptr = 1;
        continue main;
    case 5:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var1, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var1, var$5);
                $var1.$sb = jl_StringBuilder__init_();
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        var$1 = $this.$openContainer;
        $ptr = 8;
        continue main;
    case 6:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var1, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var1, var$5);
                $var1.$sb = jl_StringBuilder__init_();
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $ptr = 9;
        continue main;
    case 7:
        nms_EntityPlayer_wakeUpPlayer($this, var$4, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$playerNetServerHandler;
        if (var$1 !== null)
            b: {
                var$8 = $this.$posX;
                $var3 = $this.$posY;
                $var5 = $this.$posZ;
                var$21 = $this.$rotationYaw;
                var$22 = $this.$rotationPitch;
                var$1.$hasMoved = 0;
                var$1.$lastPosX = var$8;
                var$1.$lastPosY = $var3;
                var$1.$lastPosZ = $var5;
                nms_Entity_setPositionAndRotation(var$1.$playerEntity, var$8, $var3, $var5, var$21, var$22);
                var$1 = var$1.$playerEntity.$playerNetServerHandler;
                $var1 = new nms_Packet13PlayerLookMove;
                var$11 = $var3 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var1.$xPosition = var$8;
                $var1.$yPosition = var$11;
                $var1.$stance = $var3;
                $var1.$zPosition = $var5;
                $var1.$yaw = var$21;
                $var1.$pitch = var$22;
                $var1.$onGround0 = 0;
                $var1.$rotating = 1;
                $var1.$moving = 1;
                if ($var1 instanceof nms_Packet3Chat) {
                    var$5 = $var1;
                    var$3 = var$1.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break b;
                    if (var$3 == 1 && !var$5.$isServer)
                        break b;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($var1, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $ptr = 1;
        continue main;
    case 8:
        var$1.$onContainerClosed($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$inventoryContainer;
        $this.$openContainer = var$1;
        $this.$openContainer = var$1;
        o: {
            b: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break b;
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var1 = jl_Integer_integerCache.data[128];
                    if ($var1 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$4 = $var1.$value;
                        var$7 = var$1.$elementData.data;
                        var$1 = var$7[var$4 & (var$7.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$4) {
                                var$5 = var$1.$key;
                                if ($var1 !== var$5 && !jl_Integer_equals($var1, var$5) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    var$1 = var$1 === null ? null : var$1.$value0;
                    if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)
                        break b;
                }
                var$4 = 0;
                break o;
            }
            var$4 = 1;
        }
        if (var$4 && $this.$capabilities.$disableDamage)
            $this.$fire = 0;
        var$8 = $this.$field_71094_bP;
        $this.$field_71091_bM = var$8;
        $var3 = $this.$field_71095_bQ;
        $this.$field_71096_bN = $var3;
        $var5 = $this.$field_71085_bR;
        $this.$field_71097_bO = $var5;
        var$11 = $this.$posX;
        $var9 = var$11 - var$8;
        var$8 = $this.$posY;
        $var3 = var$8 - $var3;
        var$13 = $this.$posZ;
        $var5 = var$13 - $var5;
        if ($var9 > 10.0) {
            $this.$field_71094_bP = var$11;
            $this.$field_71091_bM = var$11;
        }
        if ($var5 > 10.0) {
            $this.$field_71085_bR = var$13;
            $this.$field_71097_bO = var$13;
        }
        if ($var3 > 10.0) {
            $this.$field_71095_bQ = var$8;
            $this.$field_71096_bN = var$8;
        }
        if ($var9 < (-10.0)) {
            $this.$field_71094_bP = var$11;
            $this.$field_71091_bM = var$11;
        }
        if ($var5 < (-10.0)) {
            $this.$field_71085_bR = var$13;
            $this.$field_71097_bO = var$13;
        }
        if ($var3 < (-10.0)) {
            $this.$field_71095_bQ = var$8;
            $this.$field_71096_bN = var$8;
        }
        $this.$field_71094_bP = $this.$field_71094_bP + $var9 * 0.25;
        $this.$field_71085_bR = $this.$field_71085_bR + $var5 * 0.25;
        $this.$field_71095_bQ = $this.$field_71095_bQ + $var3 * 0.25;
        nms_StatList_$callClinit();
        var$1 = nms_StatList_minutesPlayedStat;
        if (var$1 !== null && !var$1.$isIndependent)
            h: {
                var$5 = $this.$playerNetServerHandler;
                $var1 = new nms_Packet200Statistic;
                var$3 = var$1.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var1.$statisticId = var$3;
                $var1.$amount = 1;
                if ($var1 instanceof nms_Packet3Chat) {
                    var$1 = $var1;
                    var$3 = var$5.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break h;
                    if (var$3 == 1 && !var$1.$isServer)
                        break h;
                }
                try {
                    var$1 = var$5.$netManager;
                    $ptr = 14;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    var$5 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$5);
                    var$5.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var1, var$5);
                    $var1.$sb = jl_StringBuilder__init_();
                    $var1.$buffer0 = $rt_createCharArray(32);
                    $var1.$autoFlush = 0;
                    $var1.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        if ($this.$ridingEntity === null)
            $this.$startMinecartRidingCoordinate = null;
        if ($this.$worldObj.$isRemote)
            return;
        var$1 = $this.$foodStats;
        $ptr = 13;
        continue main;
    case 9:
        nms_EntityPlayer_onItemUseFinish($this);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$xpCooldown;
        if (var$4 > 0)
            $this.$xpCooldown = var$4 - 1 | 0;
        if (!$this.$sleeping) {
            var$3 = $this.$sleepTimer;
            if (var$3 > 0) {
                var$4 = var$3 + 1 | 0;
                $this.$sleepTimer = var$4;
                if (var$4 >= 110)
                    $this.$sleepTimer = 0;
            }
        } else {
            var$4 = $this.$sleepTimer + 1 | 0;
            $this.$sleepTimer = var$4;
            if (var$4 > 100)
                $this.$sleepTimer = 100;
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote) {
                $var1 = $this.$playerLocation;
                var$4 = $var1.$posX0;
                var$3 = $var1.$posY0;
                var$6 = $var1.$posZ0;
                $ptr = 2;
                continue main;
            }
        }
        $ptr = 1;
        continue main;
    case 10:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, $var1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var1, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $ptr = 1;
        continue main;
    case 11:
        nms_EntityPlayer_wakeUpPlayer($this, var$3, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$playerNetServerHandler;
        if (var$1 !== null)
            b: {
                var$8 = $this.$posX;
                $var3 = $this.$posY;
                $var5 = $this.$posZ;
                var$21 = $this.$rotationYaw;
                var$22 = $this.$rotationPitch;
                var$1.$hasMoved = 0;
                var$1.$lastPosX = var$8;
                var$1.$lastPosY = $var3;
                var$1.$lastPosZ = $var5;
                nms_Entity_setPositionAndRotation(var$1.$playerEntity, var$8, $var3, $var5, var$21, var$22);
                var$1 = var$1.$playerEntity.$playerNetServerHandler;
                $var1 = new nms_Packet13PlayerLookMove;
                var$11 = $var3 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var1.$xPosition = var$8;
                $var1.$yPosition = var$11;
                $var1.$stance = $var3;
                $var1.$zPosition = $var5;
                $var1.$yaw = var$21;
                $var1.$pitch = var$22;
                $var1.$onGround0 = 0;
                $var1.$rotating = 1;
                $var1.$moving = 1;
                if ($var1 instanceof nms_Packet3Chat) {
                    var$5 = $var1;
                    var$3 = var$1.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break b;
                    if (var$3 == 1 && !var$5.$isServer)
                        break b;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 12;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($var1, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $ptr = 1;
        continue main;
    case 12:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, $var1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var1, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $ptr = 1;
        continue main;
    case 13:
        nms_FoodStats_onUpdate(var$1, $this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 14:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, $var1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var1, var$5);
                $var1.$sb = jl_StringBuilder__init_();
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        if ($this.$ridingEntity === null)
            $this.$startMinecartRidingCoordinate = null;
        if ($this.$worldObj.$isRemote)
            return;
        var$1 = $this.$foodStats;
        $ptr = 13;
        continue main;
    case 15:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, $var1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$20 = jl_System_errCache;
            if (var$20 === null) {
                var$20 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$20);
                jl_System_errCache = var$20;
            }
            var$20 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$5, var$20);
        }
        p: while (true) {
            while (true) {
                if (!var$18.$hasNext())
                    break p;
                var$5 = (var$18.$next()).$playerNetServerHandler;
                if (!var$14)
                    break;
                var$19 = var$5.$playerEntity.$chatVisibility;
                if (var$19 == 2)
                    continue;
                if (var$19 != 1)
                    break;
                if (var$17.$isServer)
                    break;
            }
            try {
                var$5 = var$5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$20 = jl_System_errCache;
            if (var$20 === null) {
                var$20 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$20);
                jl_System_errCache = var$20;
            }
            var$20 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$5, var$20);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            f: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$14) {
                    var$14 = var$1.$playerEntity.$chatVisibility;
                    if (var$14 == 2)
                        break f;
                    if (var$14 == 1 && !var$17.$isServer)
                        break f;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 16;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var1, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $ptr = 7;
        continue main;
    case 16:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, $var1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var1, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $ptr = 7;
        continue main;
    case 17:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$20 = jl_System_errCache;
            if (var$20 === null) {
                var$20 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$20);
                jl_System_errCache = var$20;
            }
            var$20 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$5, var$20);
        }
        p: while (true) {
            while (true) {
                if (!var$18.$hasNext())
                    break p;
                var$5 = (var$18.$next()).$playerNetServerHandler;
                if (!var$14)
                    break;
                var$19 = var$5.$playerEntity.$chatVisibility;
                if (var$19 == 2)
                    continue;
                if (var$19 != 1)
                    break;
                if (var$17.$isServer)
                    break;
            }
            try {
                var$5 = var$5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$20 = jl_System_errCache;
            if (var$20 === null) {
                var$20 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$20);
                jl_System_errCache = var$20;
            }
            var$20 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$5, var$20);
        }
        $var1 = $var1.$myEntity;
        if ($var1 instanceof nms_EntityPlayerMP)
            f: {
                $var1 = $var1.$playerNetServerHandler;
                if (var$14) {
                    var$14 = $var1.$playerEntity.$chatVisibility;
                    if (var$14 == 2)
                        break f;
                    if (var$14 == 1 && !var$17.$isServer)
                        break f;
                }
                try {
                    $var1 = $var1.$netManager;
                    $ptr = 18;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var1 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var1, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var1;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $ptr = 11;
        continue main;
    case 18:
        o: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var1, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break o;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var1, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, $var3, $var5, var$11, $var9, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_EntityPlayer_getMaxInPortalTime = $this => {
    return !$this.$capabilities.$disableDamage ? 80 : 0;
},
nms_EntityPlayer_getPortalCooldown = $this => {
    return 10;
},
nms_EntityPlayer_playSound = ($this, $par1Str, $par2, $par3) => {
    let var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundToNearExcept(var$4, $this, $par1Str, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par2, $par3, var$4, $ptr);
},
nms_EntityPlayer_updateItemUse = ($this, $par1ItemStack, $par2) => {
    let $var5, var$4, $var4, var$6, var$7, var$8, $var3, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var3 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4
        = $thread.pop();var$4 = $thread.pop();$var5 = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        if (nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemUseAction($par1ItemStack) === nms_EnumAction_drink) {
            $var5 = $rt_s(2005);
            var$4 = 0.5;
            $var4 = $this.$worldObj;
            var$6 = $var4.$rand0;
            var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
            $ptr = 1;
            continue main;
        }
        if (nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemUseAction($par1ItemStack) !== nms_EnumAction_eat)
            return;
        $var3 = 0;
        a: {
            while (true) {
                if ($var3 >= $par2) {
                    $par1ItemStack = $rt_s(2006);
                    $var5 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$10;
                    var$8 = 0.5 + 0.5 * Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$10, 17)))), 31));
                    var$11 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
                    var$7 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$7;
                    var$13 = (var$12 - Long_lo(Long_shru(var$7, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0;
                    $var5 = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
                $var5 = $this.$worldObj.$vecPool;
                $var4 = $this.$rand;
                var$7 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$7;
                $var4 = nms_Vec3Pool_getVecFromPool($var5, (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 - 0.5) * 0.1, jl_Math_randomImpl() * 0.1 + 0.1, 0.0);
                var$13 =  -$this.$rotationPitch * 3.1415927410125732 / 180.0;
                var$14 = nms_MathHelper_SIN_TABLE.data;
                var$8 = var$13 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$15 = $var4.$xCoord;
                var$16 = $var4.$yCoord;
                var$17 = var$13;
                var$18 = var$16 * var$17;
                var$19 = $var4.$zCoord;
                var$20 = var$8;
                var$21 = var$18 + var$19 * var$20;
                var$20 = var$19 * var$17 - var$16 * var$20;
                $var4.$xCoord = var$15;
                $var4.$yCoord = var$21;
                $var4.$zCoord = var$20;
                var$8 =  -$this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$16 = var$13;
                var$17 = var$15 * var$16;
                var$18 = var$8;
                var$17 = var$17 + var$20 * var$18;
                var$16 = var$20 * var$16 - var$15 * var$18;
                $var4.$xCoord = var$17;
                $var4.$yCoord = var$21;
                $var4.$zCoord = var$16;
                $var5 = $this.$worldObj.$vecPool;
                $var4 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$11;
                var$16 = (Long_lo(Long_shru(var$11, 24)) / 1.6777216E7 - 0.5) * 0.3;
                var$7 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$7;
                $var5 = nms_Vec3Pool_getVecFromPool($var5, var$16,  -(Long_lo(Long_shru(var$7, 24)) / 1.6777216E7) * 0.6 - 0.3, 0.6);
                var$8 =  -$this.$rotationPitch * 3.1415927410125732 / 180.0;
                var$14 = nms_MathHelper_SIN_TABLE.data;
                var$8 = var$8 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$15 = $var5.$xCoord;
                var$16 = $var5.$yCoord;
                var$17 = var$13;
                var$18 = var$16 * var$17;
                var$19 = $var5.$zCoord;
                var$20 = var$8;
                var$21 = var$18 + var$19 * var$20;
                var$20 = var$19 * var$17 - var$16 * var$20;
                $var5.$xCoord = var$15;
                $var5.$yCoord = var$21;
                $var5.$zCoord = var$20;
                var$8 =  -$this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$16 = var$13;
                var$17 = var$15 * var$16;
                var$18 = var$8;
                var$17 = var$17 + var$20 * var$18;
                var$18 = var$20 * var$16 - var$15 * var$18;
                $var5.$xCoord = var$17;
                $var5.$yCoord = var$21;
                $var5.$zCoord = var$18;
                var$16 = $this.$posX;
                var$19 = $this.$posY + 1.6200000047683716;
                var$15 = $this.$posZ;
                nms_Vec3Pool_getVecFromPool($var5.$myVec3LocalPool, var$17 + var$16, var$21 + var$19, var$18 + var$15);
                var$22 = $this.$worldObj;
                var$23 = nms_Item_itemsList.data[$par1ItemStack.$itemID].$itemID0;
                $var5 = new jl_StringBuilder;
                $var5.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var5, $var5.$length0, $rt_s(1998));
                jl_AbstractStringBuilder_insert0($var5, $var5.$length0, var$23, 10);
                $var4 = new jl_String;
                var$14 = $var5.$buffer;
                var$24 = var$14.data;
                var$25 = $var5.$length0;
                var$23 = var$24.length;
                if (var$25 < 0)
                    break;
                if (var$25 > (var$23 - 0 | 0))
                    break;
                $var4.$nativeString = $rt_charArrayToString(var$14.data, 0, var$25);
                var$26 = 0;
                while (true) {
                    var$25 = $rt_compare(var$26, var$22.$worldAccesses.$size0);
                    if (var$25 >= 0)
                        break;
                    if (var$26 < 0)
                        break a;
                    if (var$25 >= 0)
                        break a;
                    var$26 = var$26 + 1 | 0;
                }
                $var3 = $var3 + 1 | 0;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 1:
        nms_World_playSoundToNearExcept($var4, $this, $var5, var$4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemUseAction($par1ItemStack) !== nms_EnumAction_eat)
            return;
        $var3 = 0;
        b: {
            while (true) {
                if ($var3 >= $par2) {
                    $par1ItemStack = $rt_s(2006);
                    $var5 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$10;
                    var$8 = 0.5 + 0.5 * Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$10, 17)))), 31));
                    var$11 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
                    var$7 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$7;
                    var$13 = (var$12 - Long_lo(Long_shru(var$7, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0;
                    $var5 = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
                $var5 = $this.$worldObj.$vecPool;
                $var4 = $this.$rand;
                var$7 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$7;
                $var4 = nms_Vec3Pool_getVecFromPool($var5, (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 - 0.5) * 0.1, jl_Math_randomImpl() * 0.1 + 0.1, 0.0);
                var$13 =  -$this.$rotationPitch * 3.1415927410125732 / 180.0;
                var$14 = nms_MathHelper_SIN_TABLE.data;
                var$8 = var$13 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$15 = $var4.$xCoord;
                var$16 = $var4.$yCoord;
                var$17 = var$13;
                var$18 = var$16 * var$17;
                var$19 = $var4.$zCoord;
                var$20 = var$8;
                var$21 = var$18 + var$19 * var$20;
                var$20 = var$19 * var$17 - var$16 * var$20;
                $var4.$xCoord = var$15;
                $var4.$yCoord = var$21;
                $var4.$zCoord = var$20;
                var$8 =  -$this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$16 = var$13;
                var$17 = var$15 * var$16;
                var$18 = var$8;
                var$17 = var$17 + var$20 * var$18;
                var$16 = var$20 * var$16 - var$15 * var$18;
                $var4.$xCoord = var$17;
                $var4.$yCoord = var$21;
                $var4.$zCoord = var$16;
                $var5 = $this.$worldObj.$vecPool;
                $var4 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$11;
                var$16 = (Long_lo(Long_shru(var$11, 24)) / 1.6777216E7 - 0.5) * 0.3;
                var$7 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var4.$seed = var$7;
                $var5 = nms_Vec3Pool_getVecFromPool($var5, var$16,  -(Long_lo(Long_shru(var$7, 24)) / 1.6777216E7) * 0.6 - 0.3, 0.6);
                var$8 =  -$this.$rotationPitch * 3.1415927410125732 / 180.0;
                var$14 = nms_MathHelper_SIN_TABLE.data;
                var$8 = var$8 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$15 = $var5.$xCoord;
                var$16 = $var5.$yCoord;
                var$17 = var$13;
                var$18 = var$16 * var$17;
                var$19 = $var5.$zCoord;
                var$20 = var$8;
                var$21 = var$18 + var$19 * var$20;
                var$20 = var$19 * var$17 - var$16 * var$20;
                $var5.$xCoord = var$15;
                $var5.$yCoord = var$21;
                $var5.$zCoord = var$20;
                var$8 =  -$this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
                var$13 = var$14[(var$8 + 16384.0 | 0) & 65535];
                var$8 = var$14[(var$8 | 0) & 65535];
                var$16 = var$13;
                var$17 = var$15 * var$16;
                var$18 = var$8;
                var$17 = var$17 + var$20 * var$18;
                var$18 = var$20 * var$16 - var$15 * var$18;
                $var5.$xCoord = var$17;
                $var5.$yCoord = var$21;
                $var5.$zCoord = var$18;
                var$16 = $this.$posX;
                var$19 = $this.$posY + 1.6200000047683716;
                var$15 = $this.$posZ;
                nms_Vec3Pool_getVecFromPool($var5.$myVec3LocalPool, var$17 + var$16, var$21 + var$19, var$18 + var$15);
                var$22 = $this.$worldObj;
                var$23 = nms_Item_itemsList.data[$par1ItemStack.$itemID].$itemID0;
                $var5 = new jl_StringBuilder;
                $var5.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var5, $var5.$length0, $rt_s(1998));
                jl_AbstractStringBuilder_insert0($var5, $var5.$length0, var$23, 10);
                $var4 = new jl_String;
                var$14 = $var5.$buffer;
                var$24 = var$14.data;
                var$25 = $var5.$length0;
                var$23 = var$24.length;
                if (var$25 < 0)
                    break;
                if (var$25 > (var$23 - 0 | 0))
                    break;
                $var4.$nativeString = $rt_charArrayToString(var$14.data, 0, var$25);
                var$26 = 0;
                while (true) {
                    var$25 = $rt_compare(var$26, var$22.$worldAccesses.$size0);
                    if (var$25 >= 0)
                        break;
                    if (var$26 < 0)
                        break b;
                    if (var$25 >= 0)
                        break b;
                    var$26 = var$26 + 1 | 0;
                }
                $var3 = $var3 + 1 | 0;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ItemStack);
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 2:
        nms_World_playSoundToNearExcept($var5, $this, $par1ItemStack, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2, $var5, var$4, $var4, var$6, var$7, var$8, $var3, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr);
},
nms_EntityPlayer_onItemUseFinish = $this => {
    let var$1, $var1, $var2, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$itemInUse;
        if (var$1 === null)
            return;
        $var1 = 16;
        $ptr = 1;
    case 1:
        nms_EntityPlayer_updateItemUse($this, var$1, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$itemInUse;
        $var1 = var$1.$stackSize;
        $var2 = $this.$worldObj;
        nms_Item_$callClinit();
        var$4 = nms_Item_itemsList.data[var$1.$itemID];
        $ptr = 2;
    case 2:
        a: {
            $tmp = var$4.$onEaten(var$1, $var2, $this);
            if ($rt_suspending()) {
                break main;
            }
            $var2 = $tmp;
            if ($var2 === $this.$itemInUse) {
                if ($var2 === null)
                    break a;
                if ($var2.$stackSize == $var1)
                    break a;
            }
            var$1 = $this.$inventory0;
            var$5 = var$1.$mainInventory.data;
            $var1 = var$1.$currentItem;
            var$5[$var1] = $var2;
            if (!$var2.$stackSize)
                var$5[$var1] = null;
        }
        $this.$itemInUse = null;
        $this.$itemInUseCount = 0;
        if (!$this.$worldObj.$isRemote)
            nms_Entity_setFlag($this, 4, 0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, var$4, var$5, $ptr);
},
nms_EntityPlayer_isMovementBlocked = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[134];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value3 > 0.0 && !$this.$sleeping ? 0 : 1;
},
nms_EntityPlayer_updateRidden = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $var1, $var3, $var5, $var7, $var8, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[128];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(var$1.$watchedObject.$value1 & 2) ? 0 : 1) {
                var$1 = null;
                var$2 = $this.$ridingEntity;
                if (var$2 === null) {
                    $ptr = 3;
                    continue main;
                }
                if ($this.$worldObj.$isRemote) {
                    var$1 = $this.$ridingEntity;
                    if (var$1 !== null)
                        var$1.$riddenByEntity = null;
                    $this.$ridingEntity = null;
                    var$1 = $this.$playerNetServerHandler;
                    var$2 = new nms_Packet39AttachEntity;
                    var$5 = $this.$ridingEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$2.$attachState = 0;
                    var$2.$ridingEntityId = $this.$entityId;
                    var$3 = var$5 === null ? (-1) : var$5.$entityId;
                    a: {
                        var$2.$vehicleEntityId = var$3;
                        if (var$2 instanceof nms_Packet3Chat) {
                            var$5 = var$2;
                            var$6 = var$1.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break a;
                            if (var$6 == 1 && !var$5.$isServer)
                                break a;
                        }
                        try {
                            var$1 = var$1.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$5 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$5);
                            var$5.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$5);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
                    b: {
                        var$1 = $this.$playerNetServerHandler;
                        $var1 = $this.$posX;
                        $var3 = $this.$posY;
                        $var5 = $this.$posZ;
                        $var7 = $this.$rotationYaw;
                        $var8 = $this.$rotationPitch;
                        var$1.$hasMoved = 0;
                        var$1.$lastPosX = $var1;
                        var$1.$lastPosY = $var3;
                        var$1.$lastPosZ = $var5;
                        nms_Entity_setPositionAndRotation(var$1.$playerEntity, $var1, $var3, $var5, $var7, $var8);
                        var$2 = var$1.$playerEntity.$playerNetServerHandler;
                        var$5 = new nms_Packet13PlayerLookMove;
                        var$12 = $var3 + 1.6200000047683716;
                        var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$5.$xPosition = $var1;
                        var$5.$yPosition = var$12;
                        var$5.$stance = $var3;
                        var$5.$zPosition = $var5;
                        var$5.$yaw = $var7;
                        var$5.$pitch = $var8;
                        var$5.$onGround0 = 0;
                        var$5.$rotating = 1;
                        var$5.$moving = 1;
                        if (var$5 instanceof nms_Packet3Chat) {
                            var$1 = var$5;
                            var$6 = var$2.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break b;
                            if (var$6 == 1 && !var$1.$isServer)
                                break b;
                        }
                        try {
                            var$1 = var$2.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
                    nms_Entity_setFlag($this, 1, 0);
                    return;
                }
                $ptr = 4;
                continue main;
            }
        }
        $var1 = $this.$posX;
        $var3 = $this.$posY;
        $var5 = $this.$posZ;
        $var7 = $this.$rotationYaw;
        $var8 = $this.$rotationPitch;
        $ptr = 1;
    case 1:
        nms_Entity_updateRidden($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_70768_au = $this.$field_110154_aX;
        $this.$field_110154_aX = 0.0;
        $this.$fallDistance = 0.0;
        $this.$prevCameraYaw = $this.$cameraYaw;
        $this.$cameraYaw = 0.0;
        $var1 = $this.$posX - $var1;
        $var3 = $this.$posY - $var3;
        $var5 = $this.$posZ - $var5;
        $ptr = 2;
    case 2:
        nms_EntityPlayer_addMountedMovementStat($this, $var1, $var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$ridingEntity;
        if (var$1 instanceof nms_EntityPig) {
            $this.$rotationPitch = $var8;
            $this.$rotationYaw = $var7;
            $this.$renderYawOffset = var$1.$renderYawOffset;
        }
        return;
    case 3:
        nms_Entity_mountEntity($this, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$playerNetServerHandler;
        var$2 = new nms_Packet39AttachEntity;
        var$5 = $this.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$2.$attachState = 0;
        var$2.$ridingEntityId = $this.$entityId;
        var$3 = var$5 === null ? (-1) : var$5.$entityId;
        c: {
            var$2.$vehicleEntityId = var$3;
            if (var$2 instanceof nms_Packet3Chat) {
                var$5 = var$2;
                var$6 = var$1.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break c;
                if (var$6 == 1 && !var$5.$isServer)
                    break c;
            }
            try {
                var$1 = var$1.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$5);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        d: {
            var$1 = $this.$playerNetServerHandler;
            $var1 = $this.$posX;
            $var3 = $this.$posY;
            $var5 = $this.$posZ;
            $var7 = $this.$rotationYaw;
            $var8 = $this.$rotationPitch;
            var$1.$hasMoved = 0;
            var$1.$lastPosX = $var1;
            var$1.$lastPosY = $var3;
            var$1.$lastPosZ = $var5;
            nms_Entity_setPositionAndRotation(var$1.$playerEntity, $var1, $var3, $var5, $var7, $var8);
            var$2 = var$1.$playerEntity.$playerNetServerHandler;
            var$5 = new nms_Packet13PlayerLookMove;
            var$12 = $var3 + 1.6200000047683716;
            var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$5.$xPosition = $var1;
            var$5.$yPosition = var$12;
            var$5.$stance = $var3;
            var$5.$zPosition = $var5;
            var$5.$yaw = $var7;
            var$5.$pitch = $var8;
            var$5.$onGround0 = 0;
            var$5.$rotating = 1;
            var$5.$moving = 1;
            if (var$5 instanceof nms_Packet3Chat) {
                var$1 = var$5;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break d;
                if (var$6 == 1 && !var$1.$isServer)
                    break d;
            }
            try {
                var$1 = var$2.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        nms_Entity_setFlag($this, 1, 0);
        return;
    case 4:
        nms_EntityLivingBase_dismountEntity($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$ridingEntity;
        if (var$1 !== null)
            var$1.$riddenByEntity = null;
        $this.$ridingEntity = null;
        var$1 = $this.$playerNetServerHandler;
        var$2 = new nms_Packet39AttachEntity;
        var$5 = $this.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$2.$attachState = 0;
        var$2.$ridingEntityId = $this.$entityId;
        var$3 = var$5 === null ? (-1) : var$5.$entityId;
        e: {
            var$2.$vehicleEntityId = var$3;
            if (var$2 instanceof nms_Packet3Chat) {
                var$5 = var$2;
                var$6 = var$1.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break e;
                if (var$6 == 1 && !var$5.$isServer)
                    break e;
            }
            try {
                var$1 = var$1.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$5);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        f: {
            var$1 = $this.$playerNetServerHandler;
            $var1 = $this.$posX;
            $var3 = $this.$posY;
            $var5 = $this.$posZ;
            $var7 = $this.$rotationYaw;
            $var8 = $this.$rotationPitch;
            var$1.$hasMoved = 0;
            var$1.$lastPosX = $var1;
            var$1.$lastPosY = $var3;
            var$1.$lastPosZ = $var5;
            nms_Entity_setPositionAndRotation(var$1.$playerEntity, $var1, $var3, $var5, $var7, $var8);
            var$2 = var$1.$playerEntity.$playerNetServerHandler;
            var$5 = new nms_Packet13PlayerLookMove;
            var$12 = $var3 + 1.6200000047683716;
            var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$5.$xPosition = $var1;
            var$5.$yPosition = var$12;
            var$5.$stance = $var3;
            var$5.$zPosition = $var5;
            var$5.$yaw = $var7;
            var$5.$pitch = $var8;
            var$5.$onGround0 = 0;
            var$5.$rotating = 1;
            var$5.$moving = 1;
            if (var$5 instanceof nms_Packet3Chat) {
                var$1 = var$5;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break f;
                if (var$6 == 1 && !var$1.$isServer)
                    break f;
            }
            try {
                var$1 = var$2.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        nms_Entity_setFlag($this, 1, 0);
        return;
    case 5:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$5);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        e: {
            var$1 = $this.$playerNetServerHandler;
            $var1 = $this.$posX;
            $var3 = $this.$posY;
            $var5 = $this.$posZ;
            $var7 = $this.$rotationYaw;
            $var8 = $this.$rotationPitch;
            var$1.$hasMoved = 0;
            var$1.$lastPosX = $var1;
            var$1.$lastPosY = $var3;
            var$1.$lastPosZ = $var5;
            nms_Entity_setPositionAndRotation(var$1.$playerEntity, $var1, $var3, $var5, $var7, $var8);
            var$2 = var$1.$playerEntity.$playerNetServerHandler;
            var$5 = new nms_Packet13PlayerLookMove;
            var$12 = $var3 + 1.6200000047683716;
            var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$5.$xPosition = $var1;
            var$5.$yPosition = var$12;
            var$5.$stance = $var3;
            var$5.$zPosition = $var5;
            var$5.$yaw = $var7;
            var$5.$pitch = $var8;
            var$5.$onGround0 = 0;
            var$5.$rotating = 1;
            var$5.$moving = 1;
            if (var$5 instanceof nms_Packet3Chat) {
                var$1 = var$5;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break e;
                if (var$6 == 1 && !var$1.$isServer)
                    break e;
            }
            try {
                var$1 = var$2.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        nms_Entity_setFlag($this, 1, 0);
        return;
    case 6:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        nms_Entity_setFlag($this, 1, 0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $var1, $var3, $var5, $var7, $var8, var$12, $ptr);
},
nms_EntityPlayer_updateEntityActionState = $this => {
    $this.$entityAge = $this.$entityAge + 1 | 0;
    nms_EntityLivingBase_updateArmSwingProgress($this);
},
nms_EntityPlayer_onLivingUpdate = $this => {
    let $var6, $var1, $var7, var$4, $var5, $var3, var$7, var$8, var$9, var$10, var$11, var$12, $var2, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var2 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$var7 = $thread.pop();$var1 = $thread.pop();$var6 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $this.$flyToggleTimer;
        if ($var6 > 0)
            $this.$flyToggleTimer = $var6 - 1 | 0;
        if (!$this.$worldObj.$difficultySetting) {
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var7 = jl_Integer_integerCache.data[134];
            if ($var7 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                $var6 = $var7.$value;
                var$4 = $var1.$elementData.data;
                $var1 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == $var6) {
                        $var5 = $var1.$key;
                        if ($var7 !== $var5 && !($var7 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var6 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $var3 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value3;
            $var1 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
            if ($var1.$field_111133_g) {
                $var1.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var1);
                $var1.$field_111133_g = 0;
            }
            if ($var3 < $var1.$field_111139_h) {
                a: {
                    $var7 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    $var5 = $rt_s(2007);
                    $var1 = $rt_s(2007);
                    if ($var5 !== $var1) {
                        var$7 = $var5.$nativeString.length;
                        var$8 = $var1.$nativeString.length;
                        if (var$7 < var$8)
                            var$8 = var$7;
                        $var6 = 0;
                        b: {
                            while (true) {
                                if ($var6 >= var$8) {
                                    $var5.$nativeString.length;
                                    $var1.$nativeString.length;
                                    break a;
                                }
                                if ($var6 < 0)
                                    break b;
                                if ($var6 >= $var5.$nativeString.length)
                                    break b;
                                var$9 = $var5.$nativeString.charCodeAt($var6);
                                if ($var6 < 0)
                                    break;
                                if ($var6 >= $var1.$nativeString.length)
                                    break;
                                if (var$9 - $var1.$nativeString.charCodeAt($var6) | 0)
                                    break a;
                                $var6 = $var6 + 1 | 0;
                            }
                            $var1 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($var1);
                            $rt_throw($var1);
                        }
                        $var1 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($var1);
                        $rt_throw($var1);
                    }
                }
                $var1 = $rt_s(2007);
                c: {
                    d: {
                        e: while (true) {
                            if ($var7 === null) {
                                $var7 = null;
                                break c;
                            }
                            f: {
                                $var5 = $var7.$key0;
                                if ($var1 === $var5)
                                    $var6 = 0;
                                else {
                                    var$7 = $var1.$nativeString.length;
                                    var$8 = $var5.$nativeString.length;
                                    if (var$7 < var$8)
                                        var$8 = var$7;
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= var$8) {
                                            $var6 = $var1.$nativeString.length - $var5.$nativeString.length | 0;
                                            break f;
                                        }
                                        if (var$7 < 0)
                                            break d;
                                        if (var$7 >= $var1.$nativeString.length)
                                            break d;
                                        var$9 = $var1.$nativeString.charCodeAt(var$7);
                                        if (var$7 < 0)
                                            break e;
                                        if (var$7 >= $var5.$nativeString.length)
                                            break e;
                                        $var6 = var$9 - $var5.$nativeString.charCodeAt(var$7) | 0;
                                        if ($var6)
                                            break;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var6)
                                break c;
                            $var7 = $var6 >= 0 ? $var7.$right : $var7.$left;
                        }
                        $var1 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($var1);
                        $rt_throw($var1);
                    }
                    $var1 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($var1);
                    $rt_throw($var1);
                }
                $var1 = $var7 === null ? null : $var7.$value2;
                if (($var1 === null ? 0 : $var1.$valueBoolean) && !(($this.$ticksExisted % 20 | 0) * 12 | 0))
                    nms_EntityLivingBase_heal($this, 1.0);
            }
        }
        $var1 = $this.$inventory0;
        $ptr = 1;
    case 1:
        nms_InventoryPlayer_decrementAnimations($var1);
        if ($rt_suspending()) {
            break main;
        }
        $this.$prevCameraYaw = $this.$cameraYaw;
        $ptr = 2;
    case 2:
        nms_EntityLivingBase_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_movementSpeed);
        if (!$this.$worldObj.$isRemote) {
            var$10 = $this.$capabilities.$walkSpeed;
            if (var$10 !== $var1.$baseValue) {
                $var1.$baseValue = var$10;
                $var1.$field_111133_g = 1;
                $var7 = $var1.$field_111138_a;
                if ($var1.$field_111136_b.$shouldWatch) {
                    $var7 = $var7.$field_111162_d;
                    ju_HashMap_putImpl($var7.$backingMap, $var1, $var7);
                }
            }
        }
        $this.$jumpMovementFactor = $this.$speedInAir;
        $var7 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[128];
        if ($var5 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            $var6 = $var5.$value;
            var$4 = $var7.$elementData.data;
            $var7 = var$4[$var6 & (var$4.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == $var6) {
                    var$11 = $var7.$key;
                    if ($var5 !== var$11 && !jl_Integer_equals($var5, var$11) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var7 = $var7 === null ? null : $var7.$value0;
        if (!($var7.$watchedObject.$value1 & 8) ? 0 : 1)
            $this.$jumpMovementFactor = $this.$jumpMovementFactor + $this.$speedInAir * 0.3;
        if ($var1.$field_111133_g) {
            $var1.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var1);
            $var1.$field_111133_g = 0;
        }
        $this.$landMovementFactor = $var1.$field_111139_h;
        var$10 = $this.$motionX;
        var$10 = var$10 * var$10;
        var$12 = $this.$motionZ;
        $var2 = jl_Math_sqrt(var$10 + var$12 * var$12);
        $var3 = jl_Math_atan( -$this.$motionY * 0.20000000298023224) * 15.0;
        if ($var2 > 0.10000000149011612)
            $var2 = 0.10000000149011612;
        g: {
            if ($this.$onGround) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[134];
                if ($var7 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    $var6 = $var7.$value;
                    var$4 = $var1.$elementData.data;
                    $var1 = var$4[$var6 & (var$4.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == $var6) {
                            $var5 = $var1.$key;
                            if ($var7 !== $var5 && !($var7 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var6 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                if (($var1 === null ? null : $var1.$value0).$watchedObject.$value3 > 0.0)
                    break g;
            }
            $var2 = 0.0;
        }
        h: {
            if (!$this.$onGround) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var7 = jl_Integer_integerCache.data[134];
                if ($var7 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    $var6 = $var7.$value;
                    var$4 = $var1.$elementData.data;
                    $var1 = var$4[$var6 & (var$4.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == $var6) {
                            $var5 = $var1.$key;
                            if ($var7 !== $var5 && !($var7 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var6 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                if (($var1 === null ? null : $var1.$value0).$watchedObject.$value3 > 0.0)
                    break h;
            }
            $var3 = 0.0;
        }
        var$14 = $this.$cameraYaw;
        $this.$cameraYaw = var$14 + ($var2 - var$14) * 0.4000000059604645;
        var$14 = $this.$cameraPitch;
        $this.$cameraPitch = var$14 + ($var3 - var$14) * 0.800000011920929;
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var7 = jl_Integer_integerCache.data[134];
        if ($var7 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            $var6 = $var7.$value;
            var$4 = $var1.$elementData.data;
            $var1 = var$4[$var6 & (var$4.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == $var6) {
                    $var5 = $var1.$key;
                    if ($var7 !== $var5 && !($var7 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        if ($var1.$watchedObject.$value3 <= 0.0)
            return;
        $var1 = $this.$ridingEntity;
        if ($var1 !== null && !$var1.$isDead) {
            $var7 = $this.$boundingBox0;
            $var1 = $var1.$boundingBox0;
            var$15 = jl_Math_minImpl0($var7.$minX0, $var1.$minX0);
            var$16 = jl_Math_minImpl0($var7.$minY0, $var1.$minY0);
            var$17 = jl_Math_minImpl0($var7.$minZ0, $var1.$minZ0);
            var$18 = jl_Math_maxImpl0($var7.$maxX0, $var1.$maxX0);
            var$19 = jl_Math_maxImpl0($var7.$maxY, $var1.$maxY);
            var$10 = jl_Math_maxImpl0($var7.$maxZ0, $var1.$maxZ0);
            $var5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var6 = $var5.$nextPoolIndex;
            $var1 = $var5.$listAABB;
            var$9 = $var1.$size0;
            var$7 = $rt_compare($var6, var$9);
            if (var$7 >= 0) {
                $var7 = new nms_AxisAlignedBB;
                $var7.$minX0 = var$15;
                $var7.$minY0 = var$16;
                $var7.$minZ0 = var$17;
                $var7.$maxX0 = var$18;
                $var7.$maxY = var$19;
                $var7.$maxZ0 = var$10;
                ju_ArrayList_ensureCapacity($var1, var$9 + 1 | 0);
                var$4 = $var1.$array.data;
                var$7 = $var1.$size0;
                $var1.$size0 = var$7 + 1 | 0;
                var$4[var$7] = $var7;
                $var1.$modCount = $var1.$modCount + 1 | 0;
            } else if ($var6 >= 0 && var$7 < 0) {
                $var7 = $var1.$array.data[$var6];
                $var7.$minX0 = var$15;
                $var7.$minY0 = var$16;
                $var7.$minZ0 = var$17;
                $var7.$maxX0 = var$18;
                $var7.$maxY = var$19;
                $var7.$maxZ0 = var$10;
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            $var5.$nextPoolIndex = $var5.$nextPoolIndex + 1 | 0;
            var$15 = $var7.$minX0 - 1.0;
            var$19 = $var7.$minY0 - 0.0;
            var$18 = $var7.$minZ0 - 1.0;
            var$10 = $var7.$maxX0 + 1.0;
            var$12 = $var7.$maxY + 0.0;
            var$16 = $var7.$maxZ0 + 1.0;
            $var5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var6 = $var5.$nextPoolIndex;
            $var7 = $var5.$listAABB;
            var$9 = $var7.$size0;
            var$7 = $rt_compare($var6, var$9);
            if (var$7 >= 0) {
                $var1 = new nms_AxisAlignedBB;
                $var1.$minX0 = var$15;
                $var1.$minY0 = var$19;
                $var1.$minZ0 = var$18;
                $var1.$maxX0 = var$10;
                $var1.$maxY = var$12;
                $var1.$maxZ0 = var$16;
                ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                var$4 = $var7.$array.data;
                var$7 = $var7.$size0;
                $var7.$size0 = var$7 + 1 | 0;
                var$4[var$7] = $var1;
                $var7.$modCount = $var7.$modCount + 1 | 0;
            } else if ($var6 >= 0 && var$7 < 0) {
                $var1 = $var7.$array.data[$var6];
                $var1.$minX0 = var$15;
                $var1.$minY0 = var$19;
                $var1.$minZ0 = var$18;
                $var1.$maxX0 = var$10;
                $var1.$maxY = var$12;
                $var1.$maxZ0 = var$16;
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            $var5.$nextPoolIndex = $var5.$nextPoolIndex + 1 | 0;
        } else {
            $var1 = $this.$boundingBox0;
            var$15 = $var1.$minX0 - 1.0;
            var$19 = $var1.$minY0 - 0.5;
            var$18 = $var1.$minZ0 - 1.0;
            var$12 = $var1.$maxX0 + 1.0;
            var$16 = $var1.$maxY + 0.5;
            var$10 = $var1.$maxZ0 + 1.0;
            $var5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var6 = $var5.$nextPoolIndex;
            $var7 = $var5.$listAABB;
            var$9 = $var7.$size0;
            var$7 = $rt_compare($var6, var$9);
            if (var$7 >= 0) {
                $var1 = new nms_AxisAlignedBB;
                $var1.$minX0 = var$15;
                $var1.$minY0 = var$19;
                $var1.$minZ0 = var$18;
                $var1.$maxX0 = var$12;
                $var1.$maxY = var$16;
                $var1.$maxZ0 = var$10;
                ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                var$4 = $var7.$array.data;
                var$7 = $var7.$size0;
                $var7.$size0 = var$7 + 1 | 0;
                var$4[var$7] = $var1;
                $var7.$modCount = $var7.$modCount + 1 | 0;
            } else if ($var6 >= 0 && var$7 < 0) {
                $var1 = $var7.$array.data[$var6];
                $var1.$minX0 = var$15;
                $var1.$minY0 = var$19;
                $var1.$minZ0 = var$18;
                $var1.$maxX0 = var$12;
                $var1.$maxY = var$16;
                $var1.$maxZ0 = var$10;
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            $var5.$nextPoolIndex = $var5.$nextPoolIndex + 1 | 0;
        }
        $var7 = $this.$worldObj;
        $var5 = null;
        $ptr = 3;
    case 3:
        i: {
            j: {
                $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var7, $this, $var1, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                $var5 = $tmp;
                if ($var5 !== null) {
                    $var6 = 0;
                    while (true) {
                        var$7 = $rt_compare($var6, $var5.$size0);
                        if (var$7 >= 0)
                            break j;
                        if ($var6 < 0)
                            break i;
                        if (var$7 >= 0)
                            break i;
                        $var7 = $var5.$array.data[$var6];
                        if (!$var7.$isDead) {
                            $ptr = 4;
                            continue main;
                        }
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 4:
        $var7.$onCollideWithPlayer($this);
        if ($rt_suspending()) {
            break main;
        }
        i: {
            while (true) {
                $var6 = $var6 + 1 | 0;
                var$7 = $rt_compare($var6, $var5.$size0);
                if (var$7 >= 0)
                    break;
                if ($var6 < 0)
                    break i;
                if (var$7 >= 0)
                    break i;
                $var7 = $var5.$array.data[$var6];
                if ($var7.$isDead)
                    continue;
                else {
                    continue main;
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var6, $var1, $var7, var$4, $var5, $var3, var$7, var$8, var$9, var$10, var$11, var$12, $var2, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_EntityPlayer_addToPlayerScore = ($this, $par1Entity, $par2) => {
    let $var3, $var5, $var4$index, var$6, $var6, var$8, $var4$index_0, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var4$index_0 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var4$index = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[146];
        if ($var5 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            $var4$index = $var5.$value;
            var$6 = $var3.$elementData.data;
            $var3 = var$6[$var4$index & (var$6.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == $var4$index) {
                    $var6 = $var3.$key;
                    if ($var5 !== $var6 && !jl_Integer_equals($var5, $var6) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var4$index = ($var3 === null ? null : $var3.$value0).$watchedObject.$value;
        $var3 = $this.$dataWatcher;
        $par2 = $var4$index + $par2 | 0;
        if ($par2 >= (-128) && $par2 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var5 = jl_Integer_integerCache.data[$par2 + 128 | 0];
        } else {
            $var5 = new jl_Integer;
            $var5.$value = $par2;
        }
        $var6 = $var3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[146];
        if (var$8 === null) {
            $var6 = $var6.$elementData.data[0];
            while ($var6 !== null && $var6.$key !== null) {
                $var6 = $var6.$next3;
            }
        } else {
            $var4$index_0 = var$8.$value;
            var$6 = $var6.$elementData.data;
            $var6 = var$6[$var4$index_0 & (var$6.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == $var4$index_0) {
                    var$10 = $var6.$key;
                    if (var$8 !== var$10 && !(var$8 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == $var4$index_0 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
        }
        var$10 = $var6 === null ? null : $var6.$value0;
        $var6 = var$10.$watchedObject;
        if (!($var5 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == $var5.$value ? 1 : 0)) {
            var$10.$watchedObject = $var5;
            var$10.$watched = 1;
            $var3.$objectChanged = 1;
        }
        a: {
            $var5 = $this.$worldObj.$worldScoreboard;
            nms_ScoreObjectiveCriteria_$callClinit();
            $var3 = nms_Scoreboard_func_96520_a($var5, nms_ScoreObjectiveCriteria_totalKillCount);
            if (!($par1Entity instanceof nms_EntityPlayer)) {
                nms_StatList_$callClinit();
                $par1Entity = nms_StatList_mobKillsStat;
                if ($par1Entity !== null && !$par1Entity.$isIndependent)
                    b: {
                        $var6 = $this.$playerNetServerHandler;
                        $var5 = new nms_Packet200Statistic;
                        $var4$index = $par1Entity.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var5.$statisticId = $var4$index;
                        $var5.$amount = 1;
                        if ($var5 instanceof nms_Packet3Chat) {
                            $par1Entity = $var5;
                            $var4$index = $var6.$playerEntity.$chatVisibility;
                            if ($var4$index == 2)
                                break b;
                            if ($var4$index == 1 && !$par1Entity.$isServer)
                                break b;
                        }
                        try {
                            $par1Entity = $var6.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Entity = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            $var6 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_($var6);
                            $var6.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var5, $var6);
                            $var5.$sb = jl_StringBuilder__init_();
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
                    }
            } else {
                nms_StatList_$callClinit();
                $par1Entity = nms_StatList_playerKillsStat;
                if ($par1Entity !== null && !$par1Entity.$isIndependent)
                    c: {
                        $var6 = $this.$playerNetServerHandler;
                        $var5 = new nms_Packet200Statistic;
                        $var4$index = $par1Entity.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var5.$statisticId = $var4$index;
                        $var5.$amount = 1;
                        if ($var5 instanceof nms_Packet3Chat) {
                            $par1Entity = $var5;
                            $var4$index = $var6.$playerEntity.$chatVisibility;
                            if ($var4$index == 2)
                                break c;
                            if ($var4$index == 1 && !$par1Entity.$isServer)
                                break c;
                        }
                        try {
                            $par1Entity = $var6.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Entity = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            $var6 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_($var6);
                            $var6.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var5, $var6);
                            $var5.$sb = jl_StringBuilder__init_();
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
                    }
                $par1Entity = nms_Scoreboard_func_96520_a($this.$worldObj.$worldScoreboard, nms_ScoreObjectiveCriteria_playerKillCount);
                $var4$index = 0;
                var$11 = $par1Entity.$modCount;
                $par2 = $par1Entity.$size();
                while (true) {
                    if (!($var4$index >= $par2 ? 0 : 1))
                        break a;
                    if (var$11 < $par1Entity.$modCount)
                        break;
                    var$12 = $var4$index + 1 | 0;
                    $var5 = $par1Entity.$get($var4$index);
                    ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                    var$6 = $var3.$array.data;
                    $var4$index_0 = $var3.$size0;
                    $var3.$size0 = $var4$index_0 + 1 | 0;
                    var$6[$var4$index_0] = $var5;
                    $var3.$modCount = $var3.$modCount + 1 | 0;
                    $var4$index = var$12;
                }
                $par1Entity = new ju_ConcurrentModificationException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
        }
        $var4$index = 0;
        var$12 = $var3.$modCount;
        var$11 = $var3.$size();
        while ($var4$index >= var$11 ? 0 : 1) {
            if (var$12 < $var3.$modCount) {
                $par1Entity = new ju_ConcurrentModificationException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            $var4$index_0 = $var4$index + 1 | 0;
            $var5 = $var3.$get($var4$index);
            $var6 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var5);
            if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var3 = new jl_IllegalStateException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $var3.$message = $rt_s(1150);
                $rt_throw($var3);
            }
            if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1Entity = new jl_IllegalStateException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $par1Entity.$message = $rt_s(1150);
                $rt_throw($par1Entity);
            }
            $var4$index = $var6.$field_96655_e;
            $par2 = $var4$index + 1 | 0;
            $var6.$field_96655_e = $par2;
            if ($var4$index != $par2) {
                $par1Entity = $var6.$theScoreboard0;
                $ptr = 3;
                continue main;
            }
            $var4$index = $var4$index_0;
        }
        return;
    case 1:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Entity, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var5 = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var5, $var6);
                $var5.$sb = jl_StringBuilder__init_();
                $var5.$buffer0 = $rt_createCharArray(32);
                $var5.$autoFlush = 0;
                $var5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var5;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        $var4$index = 0;
        var$12 = $var3.$modCount;
        var$11 = $var3.$size();
        while ($var4$index >= var$11 ? 0 : 1) {
            if (var$12 < $var3.$modCount) {
                $par1Entity = new ju_ConcurrentModificationException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            $var4$index_0 = $var4$index + 1 | 0;
            $var5 = $var3.$get($var4$index);
            $var6 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var5);
            if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var3 = new jl_IllegalStateException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $var3.$message = $rt_s(1150);
                $rt_throw($var3);
            }
            if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1Entity = new jl_IllegalStateException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $par1Entity.$message = $rt_s(1150);
                $rt_throw($par1Entity);
            }
            $var4$index = $var6.$field_96655_e;
            $par2 = $var4$index + 1 | 0;
            $var6.$field_96655_e = $par2;
            if ($var4$index != $par2) {
                $par1Entity = $var6.$theScoreboard0;
                $ptr = 3;
                continue main;
            }
            $var4$index = $var4$index_0;
        }
        return;
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Entity, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var5 = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var5, $var6);
                $var5.$sb = jl_StringBuilder__init_();
                $var5.$buffer0 = $rt_createCharArray(32);
                $var5.$autoFlush = 0;
                $var5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var5;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        $par1Entity = nms_Scoreboard_func_96520_a($this.$worldObj.$worldScoreboard, nms_ScoreObjectiveCriteria_playerKillCount);
        $var4$index = 0;
        var$11 = $par1Entity.$modCount;
        $par2 = $par1Entity.$size();
        while (true) {
            if (!($var4$index >= $par2 ? 0 : 1)) {
                $var4$index = 0;
                var$12 = $var3.$modCount;
                var$11 = $var3.$size();
                while ($var4$index >= var$11 ? 0 : 1) {
                    if (var$12 < $var3.$modCount) {
                        $par1Entity = new ju_ConcurrentModificationException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        $rt_throw($par1Entity);
                    }
                    $var4$index_0 = $var4$index + 1 | 0;
                    $var5 = $var3.$get($var4$index);
                    $var6 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var5);
                    if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                        $var3 = new jl_IllegalStateException;
                        $var3.$suppressionEnabled = 1;
                        $var3.$writableStackTrace = 1;
                        $var3.$message = $rt_s(1150);
                        $rt_throw($var3);
                    }
                    if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                        $par1Entity = new jl_IllegalStateException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        $par1Entity.$message = $rt_s(1150);
                        $rt_throw($par1Entity);
                    }
                    $var4$index = $var6.$field_96655_e;
                    $par2 = $var4$index + 1 | 0;
                    $var6.$field_96655_e = $par2;
                    if ($var4$index != $par2) {
                        $par1Entity = $var6.$theScoreboard0;
                        $ptr = 3;
                        continue main;
                    }
                    $var4$index = $var4$index_0;
                }
                return;
            }
            if (var$11 < $par1Entity.$modCount)
                break;
            var$12 = $var4$index + 1 | 0;
            $var5 = $par1Entity.$get($var4$index);
            ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
            var$6 = $var3.$array.data;
            $var4$index_0 = $var3.$size0;
            $var3.$size0 = $var4$index_0 + 1 | 0;
            var$6[$var4$index_0] = $var5;
            $var3.$modCount = $var3.$modCount + 1 | 0;
            $var4$index = var$12;
        }
        $par1Entity = new ju_ConcurrentModificationException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        $rt_throw($par1Entity);
    case 3:
        $par1Entity.$func_96536_a($var6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var4$index = $var4$index_0;
            if (!($var4$index >= var$11 ? 0 : 1))
                break;
            if (var$12 < $var3.$modCount) {
                $par1Entity = new ju_ConcurrentModificationException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            $var4$index_0 = $var4$index + 1 | 0;
            $var5 = $var3.$get($var4$index);
            $var6 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var5);
            if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var3 = new jl_IllegalStateException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $var3.$message = $rt_s(1150);
                $rt_throw($var3);
            }
            if ($var6.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1Entity = new jl_IllegalStateException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $par1Entity.$message = $rt_s(1150);
                $rt_throw($par1Entity);
            }
            $var4$index = $var6.$field_96655_e;
            $par2 = $var4$index + 1 | 0;
            $var6.$field_96655_e = $par2;
            if ($var4$index == $par2)
                continue;
            else {
                $par1Entity = $var6.$theScoreboard0;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var3, $var5, $var4$index, var$6, $var6, var$8, $var4$index_0, var$10, var$11, var$12, $ptr);
},
nms_EntityPlayer_dropPlayerItemWithRandomChoice = ($this, $par1ItemStack, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var5, var$15, $var6, $var5_0, var$18, var$19, var$20, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var5_0 = $thread.pop();$var6 = $thread.pop();var$15 = $thread.pop();$var5 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1ItemStack === null)
            return null;
        if (!$par1ItemStack.$stackSize)
            return null;
        $var3 = new nms_EntityItem;
        var$4 = $this.$worldObj;
        var$5 = $this.$posX;
        var$6 = $this.$posY - 0.30000001192092896 + 1.6200000047683716;
        var$7 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_($var3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $var3.$dataWatcher;
        var$4 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[138];
        if (var$9 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$11 = var$4.$elementData.data;
            var$4 = var$11[var$10 & (var$11.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$10) {
                    var$12 = var$4.$key;
                    if (var$9 !== var$12 && !jl_Integer_equals(var$9, var$12) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$12 = var$4 === null ? null : var$4.$value0;
        if (!($par1ItemStack !== var$12.$watchedObject ? 0 : 1)) {
            var$12.$watchedObject = $par1ItemStack;
            var$12.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$9 = $var3.$dataWatcher;
        $par1ItemStack = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[138];
        if (var$12 === null) {
            $par1ItemStack = $par1ItemStack.$elementData.data[0];
            while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                $par1ItemStack = $par1ItemStack.$next3;
            }
        } else {
            var$10 = var$12.$value;
            var$11 = $par1ItemStack.$elementData.data;
            $par1ItemStack = var$11[var$10 & (var$11.length - 1 | 0)];
            while ($par1ItemStack !== null) {
                if ($par1ItemStack.$origKeyHash == var$10) {
                    var$4 = $par1ItemStack.$key;
                    if (var$12 !== var$4 && !jl_Integer_equals(var$12, var$4) ? 0 : 1)
                        break;
                }
                $par1ItemStack = $par1ItemStack.$next3;
            }
        }
        ($par1ItemStack === null ? null : $par1ItemStack.$value0).$watched = 1;
        var$9.$objectChanged = 1;
        $var3.$delayBeforeCanPickup = 40;
        if ($par2) {
            $par1ItemStack = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$13;
            $var5 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 0.5;
            var$15 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$15;
            $var6 = Long_lo(Long_shru(var$15, 24)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
            var$11 = nms_MathHelper_SIN_TABLE.data;
            $var6 = $var6 * 10430.3779296875;
            $var3.$motionX =  -var$11[($var6 | 0) & 65535] * $var5;
            $var3.$motionZ = var$11[($var6 + 16384.0 | 0) & 65535] * $var5;
            $var3.$motionY = 0.20000000298023224;
        } else {
            $var5_0 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
            var$11 = nms_MathHelper_SIN_TABLE.data;
            $var5 = $var5_0 * 10430.3779296875;
            $var5_0 =  -var$11[($var5 | 0) & 65535];
            var$18 = $this.$rotationPitch / 180.0 * 3.1415927410125732 * 10430.3779296875;
            $par2 = (var$18 + 16384.0 | 0) & 65535;
            var$6 = $var5_0 * var$11[$par2] * 0.30000001192092896;
            $var3.$motionX = var$6;
            $var3.$motionZ = var$11[($var5 + 16384.0 | 0) & 65535] * var$11[$par2] * 0.30000001192092896;
            $var3.$motionY =  -var$11[(var$18 | 0) & 65535] * 0.30000001192092896 + 0.10000000149011612;
            $par1ItemStack = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$13;
            $var5_0 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
            var$15 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$15;
            $var5 = 0.019999999552965164 * Long_lo(Long_shru(var$15, 24)) / 1.6777216E7;
            var$5 = $var5_0;
            var$7 = jl_Math_cos(var$5);
            var$19 = $var5;
            $var3.$motionX = var$6 + var$7 * var$19;
            var$6 = $var3.$motionY;
            $par1ItemStack = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul($par1ItemStack.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$13;
            $var6 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7;
            var$15 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1ItemStack.$seed = var$15;
            $var3.$motionY = var$6 + ($var6 - Long_lo(Long_shru(var$15, 24)) / 1.6777216E7) * 0.10000000149011612;
            $var3.$motionZ = $var3.$motionZ + jl_Math_sin(var$5) * var$19;
        }
        $par1ItemStack = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1ItemStack, $var3);
        if ($rt_suspending()) {
            break main;
        }
        nms_StatList_$callClinit();
        $par1ItemStack = nms_StatList_dropStat;
        if ($par1ItemStack !== null && !$par1ItemStack.$isIndependent)
            a: {
                var$12 = $this.$playerNetServerHandler;
                var$4 = new nms_Packet200Statistic;
                var$20 = $par1ItemStack.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$4.$statisticId = var$20;
                var$4.$amount = 1;
                if (var$4 instanceof nms_Packet3Chat) {
                    $par1ItemStack = var$4;
                    var$20 = var$12.$playerEntity.$chatVisibility;
                    if (var$20 == 2)
                        break a;
                    if (var$20 == 1 && !$par1ItemStack.$isServer)
                        break a;
                }
                try {
                    $par1ItemStack = var$12.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1ItemStack = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$12 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$12);
                    var$12.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$4, var$12);
                    var$4.$sb = jl_StringBuilder__init_();
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
            }
        return $var3;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ItemStack, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$12);
                var$12.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$4, var$12);
                var$4.$sb = jl_StringBuilder__init_();
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var5, var$15, $var6, $var5_0, var$18, var$19, var$20, $ptr);
},
nms_EntityPlayer_getCurrentPlayerStrVsBlock = ($this, $par1Block, $par2) => {
    let $var5, $var3, var$5, var$6, $var4, var$8, $var6, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();$par2 = $thread.pop();$par1Block = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$inventory0;
        $var3 = 1.0;
        var$5 = $var5.$mainInventory.data;
        $par2 = $var5.$currentItem;
        if (var$5[$par2] !== null) {
            $var5 = var$5[$par2];
            nms_Item_$callClinit();
            $var3 = $var3 * nms_Item_itemsList.data[$var5.$itemID].$getStrVsBlock($var5, $par1Block);
        }
        $par2 = $rt_compare($var3, 1.0);
        if ($par2 > 0) {
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            var$6 = nms_Enchantment_efficiency.$effectId;
            $var5 = $this.$inventory0;
            $var4 = $var5.$currentItem;
            $var4 = nms_EnchantmentHelper_getEnchantmentLevel(var$6, $var4 < 9 && $var4 >= 0 ? $var5.$mainInventory.data[$var4] : null);
            $var5 = $this.$inventory0;
            var$8 = $var5.$currentItem;
            $var5 = var$8 < 9 && var$8 >= 0 ? $var5.$mainInventory.data[var$8] : null;
            if ($var4 > 0 && $var5 !== null) {
                $var6 = $rt_imul($var4, $var4) + 1 | 0;
                nms_Item_$callClinit();
                $var3 = !nms_Item_itemsList.data[$var5.$itemID].$canHarvestBlock($par1Block) && $par2 <= 0 ? $var3 + $var6 * 0.07999999821186066 : $var3 + $var6;
            }
        }
        nms_Potion_$callClinit();
        if (nms_EntityLivingBase_isPotionActive0($this, nms_Potion_digSpeed))
            $var3 = $var3 * (1.0 + ((nms_EntityLivingBase_getActivePotionEffect($this, nms_Potion_digSpeed)).$amplifier + 1 | 0) * 0.20000000298023224);
        if (nms_EntityLivingBase_isPotionActive0($this, nms_Potion_digSlowdown))
            $var3 = $var3 * (1.0 - ((nms_EntityLivingBase_getActivePotionEffect($this, nms_Potion_digSlowdown)).$amplifier + 1 | 0) * 0.20000000298023224);
        nms_Material_$callClinit();
        $par1Block = nms_Material_water;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_isInsideOfMaterial($this, $par1Block);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2) {
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            $par2 = nms_Enchantment_aquaAffinity.$effectId;
            var$5 = $this.$inventory0.$armorInventory;
            if (var$5 === null)
                var$6 = 0;
            else {
                var$5 = var$5.data;
                var$6 = 0;
                var$8 = var$5.length;
                $var4 = 0;
                while ($var4 < var$8) {
                    var$10 = nms_EnchantmentHelper_getEnchantmentLevel($par2, var$5[$var4]);
                    if (var$10 > var$6)
                        var$6 = var$10;
                    $var4 = $var4 + 1 | 0;
                }
            }
            if (!(var$6 <= 0 ? 0 : 1))
                $var3 = $var3 / 5.0;
        }
        if (!$this.$onGround)
            $var3 = $var3 / 5.0;
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Block, $par2, $var5, $var3, var$5, var$6, $var4, var$8, $var6, var$10, $ptr);
},
nms_EntityPlayer_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_readEntityFromNBT($this, $par1NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2008));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2008) !== $var3 && !jl_String_equals($rt_s(2008), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            $var2 = new nms_NBTTagList;
            if ($rt_s(2008) !== null)
                $var2.$name = $rt_s(2008);
            else
                $var2.$name = $rt_s(3);
            var$6 = new ju_ArrayList;
            var$6.$array = $rt_createArray(jl_Object, 10);
            $var2.$tagList = var$6;
        } else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2008) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode($rt_s(2008));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2008) !== $var3 && !jl_String_equals($rt_s(2008), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var2 = $var2 === null ? null : $var2.$value0;
        }
        nms_InventoryPlayer_readFromNBT($this.$inventory0, $var2);
        $var2 = $this.$inventory0;
        $var3 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2009));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$3) {
                var$7 = $var3.$key;
                if ($rt_s(2009) !== var$7 && !jl_String_equals($rt_s(2009), var$7) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            var$8 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2009) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                var$3 = jl_String_hashCode($rt_s(2009));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$3) {
                        var$7 = $var3.$key;
                        if ($rt_s(2009) !== var$7 && !jl_String_equals($rt_s(2009), var$7) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            var$8 = ($var3 === null ? null : $var3.$value0).$data;
        }
        $var2.$currentItem = var$8;
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2010));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2010) !== $var3 && !jl_String_equals($rt_s(2010), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            var$8 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2010) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode($rt_s(2010));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2010) !== $var3 && !jl_String_equals($rt_s(2010), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            var$8 = ($var2 === null ? null : $var2.$value0).$data0;
        }
        $this.$sleeping = !var$8 ? 0 : 1;
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2011));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2011) !== $var3 && !jl_String_equals($rt_s(2011), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2011) !== null) {
                var$3 = jl_String_hashCode($rt_s(2011));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2011) !== $var3 && !jl_String_equals($rt_s(2011), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$8 = ($var2 === null ? null : $var2.$value0).$data2;
        } else
            var$8 = 0;
        $this.$sleepTimer = var$8;
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2012));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2012) !== $var3 && !jl_String_equals($rt_s(2012), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            var$9 = 0.0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2012) !== null) {
                var$3 = jl_String_hashCode($rt_s(2012));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2012) !== $var3 && !jl_String_equals($rt_s(2012), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$9 = ($var2 === null ? null : $var2.$value0).$data5;
        }
        $this.$experience = var$9;
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2013));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2013) !== $var3 && !jl_String_equals($rt_s(2013), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            var$8 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2013) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode($rt_s(2013));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2013) !== $var3 && !jl_String_equals($rt_s(2013), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            var$8 = ($var2 === null ? null : $var2.$value0).$data;
        }
        $this.$experienceLevel = var$8;
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2014));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2014) !== $var3 && !jl_String_equals($rt_s(2014), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            var$8 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2014) !== null) {
                var$3 = jl_String_hashCode($rt_s(2014));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2014) !== $var3 && !jl_String_equals($rt_s(2014), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$8 = ($var2 === null ? null : $var2.$value0).$data;
        }
        $this.$experienceTotal = var$8;
        $var2 = $par1NBTTagCompound.$tagMap;
        var$3 = jl_String_hashCode($rt_s(2015));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                $var3 = $var2.$key;
                if ($rt_s(2015) !== $var3 && !jl_String_equals($rt_s(2015), $var3) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2015) !== null) {
                var$3 = jl_String_hashCode($rt_s(2015));
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var3 = $var2.$key;
                        if ($rt_s(2015) !== $var3 && !jl_String_equals($rt_s(2015), $var3) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$3 = ($var2 === null ? null : $var2.$value0).$data;
        }
        var$6 = $this.$dataWatcher;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            $var2 = new jl_Integer;
            $var2.$value = var$3;
        }
        $var3 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[146];
        if (var$10 !== null) {
            var$11 = var$10.$value;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    var$7 = $var3.$key;
                    if (var$10 !== var$7 && !(var$10 !== var$7 ? (var$7 instanceof jl_Integer && var$7.$value == var$11 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        } else {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        }
        var$7 = $var3 === null ? null : $var3.$value0;
        $var3 = var$7.$watchedObject;
        if (!($var2 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var2.$value ? 1 : 0)) {
            var$7.$watchedObject = $var2;
            var$7.$watched = 1;
            var$6.$objectChanged = 1;
        }
        var$8 = $this.$sleeping;
        if (!var$8) {
            a: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1693).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(1693).$nativeString.length)
                            break a;
                        $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(1693).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$11) {
                    b: {
                        $var3 = $var2.$key;
                        if ($rt_s(1693) !== $var3) {
                            if ($rt_s(1693) !== $var3) {
                                if ($var3 instanceof jl_String) {
                                    $var3 = $var3;
                                    var$8 = $rt_s(1693).$nativeString !== $var3.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break b;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                c: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1694).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(1694).$nativeString.length)
                                break c;
                            $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(1694).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$11) {
                        d: {
                            $var3 = $var2.$key;
                            if ($rt_s(1694) !== $var3) {
                                if ($rt_s(1694) !== $var3) {
                                    if ($var3 instanceof jl_String) {
                                        $var3 = $var3;
                                        var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    } else
                                        var$8 = 0;
                                } else
                                    var$8 = 1;
                                if (!var$8) {
                                    var$8 = 0;
                                    break d;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if ($var2 === null ? 0 : 1) {
                    e: {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1695).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1695).$nativeString.length)
                                    break e;
                                $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1695).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            f: {
                                $var3 = $var2.$key;
                                if ($rt_s(1695) !== $var3) {
                                    if ($rt_s(1695) === $var3)
                                        var$8 = 1;
                                    else if ($var3 instanceof jl_String) {
                                        $var3 = $var3;
                                        var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    } else
                                        var$8 = 0;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break f;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if ($var2 === null ? 0 : 1) {
                        g: {
                            var$10 = new nms_ChunkCoordinates;
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if (!$rt_s(1693).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(1693).$nativeString.length)
                                        break g;
                                    $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(1693).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$11) {
                                h: {
                                    $var3 = $var2.$key;
                                    if ($rt_s(1693) !== $var3) {
                                        if ($rt_s(1693) === $var3)
                                            var$8 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$8 = $rt_s(1693).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break h;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                        if (!($var2 === null ? 0 : 1))
                            var$12 = 0;
                        else {
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if ($rt_s(1693) !== null) {
                                i: {
                                    if (!$rt_s(1693).$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $rt_s(1693).$nativeString.length)
                                                break i;
                                            $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$3 = $rt_s(1693).$hashCode1;
                                var$4 = $var2.$elementData.data;
                                var$7 = var$4[var$3 & (var$4.length - 1 | 0)];
                                while (var$7 !== null) {
                                    if (var$7.$origKeyHash == var$3) {
                                        j: {
                                            $var2 = var$7.$key;
                                            if ($rt_s(1693) !== $var2) {
                                                if ($rt_s(1693) === $var2)
                                                    var$8 = 1;
                                                else if (!($var2 instanceof jl_String))
                                                    var$8 = 0;
                                                else {
                                                    $var2 = $var2;
                                                    var$8 = $rt_s(1693).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                }
                                                if (!var$8) {
                                                    var$8 = 0;
                                                    break j;
                                                }
                                            }
                                            var$8 = 1;
                                        }
                                        if (var$8)
                                            break;
                                    }
                                    var$7 = var$7.$next3;
                                }
                            } else {
                                var$7 = $var2.$elementData.data[0];
                                while (var$7 !== null && var$7.$key !== null) {
                                    var$7 = var$7.$next3;
                                }
                            }
                            var$12 = (var$7 === null ? null : var$7.$value0).$data;
                        }
                        k: {
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if (!$rt_s(1694).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(1694).$nativeString.length)
                                        break k;
                                    $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(1694).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$11) {
                                l: {
                                    $var3 = $var2.$key;
                                    if ($rt_s(1694) !== $var3) {
                                        if ($rt_s(1694) !== $var3) {
                                            if ($var3 instanceof jl_String) {
                                                $var3 = $var3;
                                                var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                            } else
                                                var$8 = 0;
                                        } else
                                            var$8 = 1;
                                        if (!var$8) {
                                            var$8 = 0;
                                            break l;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                        if (!($var2 === null ? 0 : 1))
                            var$11 = 0;
                        else {
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if ($rt_s(1694) === null) {
                                $var2 = $var2.$elementData.data[0];
                                while ($var2 !== null && $var2.$key !== null) {
                                    $var2 = $var2.$next3;
                                }
                            } else {
                                m: {
                                    if (!$rt_s(1694).$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $rt_s(1694).$nativeString.length)
                                                break m;
                                            $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$11 = $rt_s(1694).$hashCode1;
                                var$4 = $var2.$elementData.data;
                                $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                                while ($var2 !== null) {
                                    if ($var2.$origKeyHash == var$11) {
                                        n: {
                                            $var3 = $var2.$key;
                                            if ($rt_s(1694) !== $var3) {
                                                if ($rt_s(1694) === $var3)
                                                    var$8 = 1;
                                                else if (!($var3 instanceof jl_String))
                                                    var$8 = 0;
                                                else {
                                                    $var3 = $var3;
                                                    var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                                }
                                                if (!var$8) {
                                                    var$8 = 0;
                                                    break n;
                                                }
                                            }
                                            var$8 = 1;
                                        }
                                        if (var$8)
                                            break;
                                    }
                                    $var2 = $var2.$next3;
                                }
                            }
                            var$11 = ($var2 === null ? null : $var2.$value0).$data;
                        }
                        o: {
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if (!$rt_s(1695).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(1695).$nativeString.length)
                                        break o;
                                    $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$13 = $rt_s(1695).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$13 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$13) {
                                p: {
                                    $var3 = $var2.$key;
                                    if ($rt_s(1695) !== $var3) {
                                        if ($rt_s(1695) === $var3)
                                            var$8 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break p;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                        if (!($var2 === null ? 0 : 1))
                            var$8 = 0;
                        else {
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if ($rt_s(1695) === null) {
                                $var2 = $var2.$elementData.data[0];
                                while ($var2 !== null && $var2.$key !== null) {
                                    $var2 = $var2.$next3;
                                }
                            } else {
                                q: {
                                    if (!$rt_s(1695).$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $rt_s(1695).$nativeString.length)
                                                break q;
                                            $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$13 = $rt_s(1695).$hashCode1;
                                var$4 = $var2.$elementData.data;
                                $var2 = var$4[var$13 & (var$4.length - 1 | 0)];
                                while ($var2 !== null) {
                                    if ($var2.$origKeyHash == var$13) {
                                        r: {
                                            $var3 = $var2.$key;
                                            if ($rt_s(1695) !== $var3) {
                                                if ($rt_s(1695) === $var3)
                                                    var$8 = 1;
                                                else if (!($var3 instanceof jl_String))
                                                    var$8 = 0;
                                                else {
                                                    $var3 = $var3;
                                                    var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                                }
                                                if (!var$8) {
                                                    var$8 = 0;
                                                    break r;
                                                }
                                            }
                                            var$8 = 1;
                                        }
                                        if (var$8)
                                            break;
                                    }
                                    $var2 = $var2.$next3;
                                }
                            }
                            var$8 = ($var2 === null ? null : $var2.$value0).$data;
                        }
                        s: {
                            var$10.$posX0 = var$12;
                            var$10.$posY0 = var$11;
                            var$10.$posZ0 = var$8;
                            $this.$spawnChunk = var$10;
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if (!$rt_s(2016).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(2016).$nativeString.length)
                                        break s;
                                    $rt_s(2016).$hashCode1 = (31 * $rt_s(2016).$hashCode1 | 0) + $rt_s(2016).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2016).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$11) {
                                t: {
                                    $var3 = $var2.$key;
                                    if ($rt_s(2016) !== $var3) {
                                        if ($rt_s(2016) === $var3)
                                            var$8 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$8 = $rt_s(2016).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break t;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                        if (!($var2 === null ? 0 : 1))
                            var$8 = 0;
                        else {
                            $var2 = $par1NBTTagCompound.$tagMap;
                            if ($rt_s(2016) !== null) {
                                u: {
                                    if (!$rt_s(2016).$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $rt_s(2016).$nativeString.length)
                                                break u;
                                            $rt_s(2016).$hashCode1 = (31 * $rt_s(2016).$hashCode1 | 0) + $rt_s(2016).$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$11 = $rt_s(2016).$hashCode1;
                                var$4 = $var2.$elementData.data;
                                $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                                while ($var2 !== null) {
                                    if ($var2.$origKeyHash == var$11) {
                                        v: {
                                            $var3 = $var2.$key;
                                            if ($rt_s(2016) !== $var3) {
                                                if ($rt_s(2016) !== $var3) {
                                                    if ($var3 instanceof jl_String) {
                                                        $var3 = $var3;
                                                        var$8 = $rt_s(2016).$nativeString !== $var3.$nativeString ? 0 : 1;
                                                    } else
                                                        var$8 = 0;
                                                } else
                                                    var$8 = 1;
                                                if (!var$8) {
                                                    var$8 = 0;
                                                    break v;
                                                }
                                            }
                                            var$8 = 1;
                                        }
                                        if (var$8)
                                            break;
                                    }
                                    $var2 = $var2.$next3;
                                }
                            } else {
                                $var2 = $var2.$elementData.data[0];
                                while ($var2 !== null && $var2.$key !== null) {
                                    $var2 = $var2.$next3;
                                }
                            }
                            var$8 = ($var2 === null ? null : $var2.$value0).$data0;
                        }
                        $this.$spawnForced = !var$8 ? 0 : 1;
                    }
                }
            }
            w: {
                var$6 = $this.$foodStats;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2017).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2017).$nativeString.length)
                            break w;
                        $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2017).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    x: {
                        var$7 = $var3.$key;
                        if ($rt_s(2017) !== var$7) {
                            if ($rt_s(2017) !== var$7) {
                                if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break x;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                y: {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2017).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2017).$nativeString.length)
                                break y;
                            $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2017).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$11) {
                        z: {
                            var$7 = $var3.$key;
                            if ($rt_s(2017) !== var$7) {
                                if ($rt_s(2017) === var$7)
                                    var$8 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break z;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if ($var3 === null ? 0 : 1) {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2017) === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        ba: {
                            if (!$rt_s(2017).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(2017).$nativeString.length)
                                        break ba;
                                    $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2017).$hashCode1;
                        var$4 = $var3.$elementData.data;
                        $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$11) {
                                bb: {
                                    var$7 = $var3.$key;
                                    if ($rt_s(2017) !== var$7) {
                                        if ($rt_s(2017) !== var$7) {
                                            if (var$7 instanceof jl_String) {
                                                var$7 = var$7;
                                                var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                                            } else
                                                var$8 = 0;
                                        } else
                                            var$8 = 1;
                                        if (!var$8) {
                                            var$8 = 0;
                                            break bb;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$8 = ($var3 === null ? null : $var3.$value0).$data;
                } else
                    var$8 = 0;
                bc: {
                    var$6.$foodLevel = var$8;
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2018).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2018).$nativeString.length)
                                break bc;
                            $rt_s(2018).$hashCode1 = (31 * $rt_s(2018).$hashCode1 | 0) + $rt_s(2018).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2018).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$11) {
                        bd: {
                            var$7 = $var3.$key;
                            if ($rt_s(2018) !== var$7) {
                                if ($rt_s(2018) !== var$7) {
                                    if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2018).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$8 = 1;
                                if (!var$8) {
                                    var$8 = 0;
                                    break bd;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if (!($var3 === null ? 0 : 1))
                    var$8 = 0;
                else {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2018) === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        be: {
                            if (!$rt_s(2018).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(2018).$nativeString.length)
                                        break be;
                                    $rt_s(2018).$hashCode1 = (31 * $rt_s(2018).$hashCode1 | 0) + $rt_s(2018).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2018).$hashCode1;
                        var$4 = $var3.$elementData.data;
                        $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$11) {
                                bf: {
                                    var$7 = $var3.$key;
                                    if ($rt_s(2018) !== var$7) {
                                        if ($rt_s(2018) === var$7)
                                            var$8 = 1;
                                        else if (!(var$7 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$7 = var$7;
                                            var$8 = $rt_s(2018).$nativeString !== var$7.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break bf;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$8 = ($var3 === null ? null : $var3.$value0).$data;
                }
                bg: {
                    var$6.$foodTimer = var$8;
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2019).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2019).$nativeString.length)
                                break bg;
                            $rt_s(2019).$hashCode1 = (31 * $rt_s(2019).$hashCode1 | 0) + $rt_s(2019).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2019).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$11) {
                        bh: {
                            var$7 = $var3.$key;
                            if ($rt_s(2019) !== var$7) {
                                if ($rt_s(2019) === var$7)
                                    var$8 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2019).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break bh;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if ($var3 === null ? 0 : 1) {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2019) === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        bi: {
                            if (!$rt_s(2019).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(2019).$nativeString.length)
                                        break bi;
                                    $rt_s(2019).$hashCode1 = (31 * $rt_s(2019).$hashCode1 | 0) + $rt_s(2019).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2019).$hashCode1;
                        var$4 = $var3.$elementData.data;
                        $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$11) {
                                bj: {
                                    var$7 = $var3.$key;
                                    if ($rt_s(2019) !== var$7) {
                                        if ($rt_s(2019) === var$7)
                                            var$8 = 1;
                                        else if (!(var$7 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$7 = var$7;
                                            var$8 = $rt_s(2019).$nativeString !== var$7.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break bj;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$9 = ($var3 === null ? null : $var3.$value0).$data5;
                } else
                    var$9 = 0.0;
                bk: {
                    var$6.$foodSaturationLevel = var$9;
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2020).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2020).$nativeString.length)
                                break bk;
                            $rt_s(2020).$hashCode1 = (31 * $rt_s(2020).$hashCode1 | 0) + $rt_s(2020).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2020).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$11) {
                        bl: {
                            var$7 = $var3.$key;
                            if ($rt_s(2020) !== var$7) {
                                if ($rt_s(2020) === var$7)
                                    var$8 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2020).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break bl;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if (!($var3 === null ? 0 : 1))
                    var$9 = 0.0;
                else {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2020) === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        bm: {
                            if (!$rt_s(2020).$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $rt_s(2020).$nativeString.length)
                                        break bm;
                                    $rt_s(2020).$hashCode1 = (31 * $rt_s(2020).$hashCode1 | 0) + $rt_s(2020).$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2020).$hashCode1;
                        var$4 = $var3.$elementData.data;
                        $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$11) {
                                bn: {
                                    var$7 = $var3.$key;
                                    if ($rt_s(2020) !== var$7) {
                                        if ($rt_s(2020) === var$7)
                                            var$8 = 1;
                                        else if (!(var$7 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$7 = var$7;
                                            var$8 = $rt_s(2020).$nativeString !== var$7.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break bn;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$9 = ($var3 === null ? null : $var3.$value0).$data5;
                }
                var$6.$foodExhaustionLevel = var$9;
            }
            bo: {
                nms_PlayerCapabilities_readCapabilitiesFromNBT($this.$capabilities, $par1NBTTagCompound);
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2021).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2021).$nativeString.length)
                            break bo;
                        $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2021).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$11) {
                    bp: {
                        $var3 = $var2.$key;
                        if ($rt_s(2021) !== $var3) {
                            if ($rt_s(2021) === $var3)
                                var$8 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$8 = 0;
                            else {
                                $var3 = $var3;
                                var$8 = $rt_s(2021).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break bp;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                return;
            bq: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2021).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2021).$nativeString.length)
                            break bq;
                        $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2021).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$11) {
                    br: {
                        $var3 = $var2.$key;
                        if ($rt_s(2021) !== $var3) {
                            if ($rt_s(2021) === $var3)
                                var$8 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$8 = 0;
                            else {
                                $var3 = $var3;
                                var$8 = $rt_s(2021).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break br;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1)) {
                $var3 = new nms_NBTTagList;
                if ($rt_s(2021) !== null)
                    $var3.$name = $rt_s(2021);
                else
                    $var3.$name = $rt_s(3);
                $par1NBTTagCompound = new ju_ArrayList;
                $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                $var3.$tagList = $par1NBTTagCompound;
            } else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2021) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bs: {
                        if (!$rt_s(2021).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2021).$nativeString.length)
                                    break bs;
                                $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2021).$hashCode1;
                    var$4 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$11) {
                            bt: {
                                $var2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2021) !== $var2) {
                                    if ($rt_s(2021) === $var2)
                                        var$8 = 1;
                                    else if (!($var2 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var2 = $var2;
                                        var$8 = $rt_s(2021).$nativeString !== $var2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break bt;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $var3 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
            }
            $par1NBTTagCompound = $this.$theInventoryEnderChest;
            $ptr = 6;
            continue main;
        }
        var$6 = new nms_ChunkCoordinates;
        var$14 = $this.$posX;
        var$13 = var$14 | 0;
        if (var$14 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = $this.$posY;
        var$12 = var$14 | 0;
        if (var$14 < var$12)
            var$12 = var$12 - 1 | 0;
        var$14 = $this.$posZ;
        var$11 = var$14 | 0;
        if (var$14 < var$11)
            var$11 = var$11 - 1 | 0;
        var$6.$posX0 = var$13;
        var$6.$posY0 = var$12;
        var$6.$posZ0 = var$11;
        $this.$playerLocation = var$6;
        var$3 = 1;
        var$11 = 1;
        var$12 = 0;
        if (var$8) {
            $var3 = $this.$worldObj.$theEntityTracker;
            var$6 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$15 = $this.$entityId;
            var$6.$entityId1 = var$15;
            var$6.$animate = 3;
            $var2 = $var3.$trackedEntityIDs;
            var$8 = var$15 ^ (var$15 >>> 20 | 0) ^ (var$15 >>> 12 | 0);
            var$16 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
            var$4 = $var2.$slots.data;
            $var2 = var$4[var$16 & (var$4.length - 1 | 0)];
            bu: {
                while ($var2 !== null) {
                    if ($var2.$hashEntry == var$15) {
                        $var2 = $var2.$valueEntry;
                        break bu;
                    }
                    $var2 = $var2.$nextEntry0;
                }
                $var2 = null;
            }
            $var2 = $var2;
            if ($var2 !== null) {
                $var3 = $var2.$trackingPlayers.$backingMap;
                if ($var3.$cachedKeySet === null) {
                    var$7 = new ju_HashMap$1;
                    var$7.$this$0 = $var3;
                    ju_AbstractCollection__init_(var$7);
                    $var3.$cachedKeySet = var$7;
                }
                var$17 = $var3.$cachedKeySet.$iterator();
                var$13 = var$6 instanceof nms_Packet3Chat;
                var$7 = var$6;
                while (var$17.$hasNext()) {
                    bv: {
                        $var3 = (var$17.$next()).$playerNetServerHandler;
                        if (var$13) {
                            var$16 = $var3.$playerEntity.$chatVisibility;
                            if (var$16 == 2)
                                break bv;
                            if (var$16 == 1 && !var$7.$isServer)
                                break bv;
                        }
                        try {
                            $var3 = $var3.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$10 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$10);
                            jl_System_errCache = var$10;
                        }
                        jl_Throwable_printStackTrace($var3, jl_System_errCache);
                    }
                }
                $var2 = $var2.$myEntity;
                if ($var2 instanceof nms_EntityPlayerMP)
                    bw: {
                        $var2 = $var2.$playerNetServerHandler;
                        if (var$13) {
                            var$13 = $var2.$playerEntity.$chatVisibility;
                            if (var$13 == 2)
                                break bw;
                            if (var$13 == 1 && !var$7.$isServer)
                                break bw;
                        }
                        try {
                            $var2 = $var2.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var2;
                        }
                        jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                    }
            }
        }
        $ptr = 2;
    case 2:
        nms_EntityPlayer_wakeUpPlayer($this, var$3, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $this.$playerNetServerHandler;
        if (var$6 !== null)
            bx: {
                var$14 = $this.$posX;
                var$18 = $this.$posY;
                var$19 = $this.$posZ;
                var$9 = $this.$rotationYaw;
                var$20 = $this.$rotationPitch;
                var$6.$hasMoved = 0;
                var$6.$lastPosX = var$14;
                var$6.$lastPosY = var$18;
                var$6.$lastPosZ = var$19;
                nms_Entity_setPositionAndRotation(var$6.$playerEntity, var$14, var$18, var$19, var$9, var$20);
                var$6 = var$6.$playerEntity.$playerNetServerHandler;
                $var2 = new nms_Packet13PlayerLookMove;
                var$21 = var$18 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var2.$xPosition = var$14;
                $var2.$yPosition = var$21;
                $var2.$stance = var$18;
                $var2.$zPosition = var$19;
                $var2.$yaw = var$9;
                $var2.$pitch = var$20;
                $var2.$onGround0 = 0;
                $var2.$rotating = 1;
                $var2.$moving = 1;
                if ($var2 instanceof nms_Packet3Chat) {
                    $var3 = $var2;
                    var$3 = var$6.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break bx;
                    if (var$3 == 1 && !$var3.$isServer)
                        break bx;
                }
                try {
                    var$6 = var$6.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
            }
        by: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1693).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(1693).$nativeString.length)
                        break by;
                    $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(1693).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                bz: {
                    $var3 = $var2.$key;
                    if ($rt_s(1693) !== $var3) {
                        if ($rt_s(1693) !== $var3) {
                            if ($var3 instanceof jl_String) {
                                $var3 = $var3;
                                var$8 = $rt_s(1693).$nativeString !== $var3.$nativeString ? 0 : 1;
                            } else
                                var$8 = 0;
                        } else
                            var$8 = 1;
                        if (!var$8) {
                            var$8 = 0;
                            break bz;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bA: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1694).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(1694).$nativeString.length)
                            break bA;
                        $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(1694).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$11) {
                    bB: {
                        $var3 = $var2.$key;
                        if ($rt_s(1694) !== $var3) {
                            if ($rt_s(1694) !== $var3) {
                                if ($var3 instanceof jl_String) {
                                    $var3 = $var3;
                                    var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break bB;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                bC: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1695).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(1695).$nativeString.length)
                                break bC;
                            $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(1695).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$11) {
                        bD: {
                            $var3 = $var2.$key;
                            if ($rt_s(1695) !== $var3) {
                                if ($rt_s(1695) === $var3)
                                    var$8 = 1;
                                else if ($var3 instanceof jl_String) {
                                    $var3 = $var3;
                                    var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                                if (!var$8) {
                                    var$8 = 0;
                                    break bD;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if ($var2 === null ? 0 : 1) {
                    bE: {
                        var$10 = new nms_ChunkCoordinates;
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1693).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1693).$nativeString.length)
                                    break bE;
                                $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1693).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            bF: {
                                $var3 = $var2.$key;
                                if ($rt_s(1693) !== $var3) {
                                    if ($rt_s(1693) === $var3)
                                        var$8 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$8 = $rt_s(1693).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break bF;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$12 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(1693) !== null) {
                            bG: {
                                if (!$rt_s(1693).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(1693).$nativeString.length)
                                            break bG;
                                        $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$3 = $rt_s(1693).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            var$7 = var$4[var$3 & (var$4.length - 1 | 0)];
                            while (var$7 !== null) {
                                if (var$7.$origKeyHash == var$3) {
                                    bH: {
                                        $var2 = var$7.$key;
                                        if ($rt_s(1693) !== $var2) {
                                            if ($rt_s(1693) === $var2)
                                                var$8 = 1;
                                            else if (!($var2 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var2 = $var2;
                                                var$8 = $rt_s(1693).$nativeString !== $var2.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break bH;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                var$7 = var$7.$next3;
                            }
                        } else {
                            var$7 = $var2.$elementData.data[0];
                            while (var$7 !== null && var$7.$key !== null) {
                                var$7 = var$7.$next3;
                            }
                        }
                        var$12 = (var$7 === null ? null : var$7.$value0).$data;
                    }
                    bI: {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1694).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1694).$nativeString.length)
                                    break bI;
                                $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1694).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            bJ: {
                                $var3 = $var2.$key;
                                if ($rt_s(1694) !== $var3) {
                                    if ($rt_s(1694) !== $var3) {
                                        if ($var3 instanceof jl_String) {
                                            $var3 = $var3;
                                            var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        } else
                                            var$8 = 0;
                                    } else
                                        var$8 = 1;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break bJ;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$11 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(1694) === null) {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            bK: {
                                if (!$rt_s(1694).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(1694).$nativeString.length)
                                            break bK;
                                        $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1694).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$11) {
                                    bL: {
                                        $var3 = $var2.$key;
                                        if ($rt_s(1694) !== $var3) {
                                            if ($rt_s(1694) === $var3)
                                                var$8 = 1;
                                            else if (!($var3 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var3 = $var3;
                                                var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break bL;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        var$11 = ($var2 === null ? null : $var2.$value0).$data;
                    }
                    bM: {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1695).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1695).$nativeString.length)
                                    break bM;
                                $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$13 = $rt_s(1695).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$13 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$13) {
                            bN: {
                                $var3 = $var2.$key;
                                if ($rt_s(1695) !== $var3) {
                                    if ($rt_s(1695) === $var3)
                                        var$8 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break bN;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$8 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(1695) === null) {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            bO: {
                                if (!$rt_s(1695).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(1695).$nativeString.length)
                                            break bO;
                                        $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = $rt_s(1695).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[var$13 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$13) {
                                    bP: {
                                        $var3 = $var2.$key;
                                        if ($rt_s(1695) !== $var3) {
                                            if ($rt_s(1695) === $var3)
                                                var$8 = 1;
                                            else if (!($var3 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var3 = $var3;
                                                var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break bP;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        var$8 = ($var2 === null ? null : $var2.$value0).$data;
                    }
                    bQ: {
                        var$10.$posX0 = var$12;
                        var$10.$posY0 = var$11;
                        var$10.$posZ0 = var$8;
                        $this.$spawnChunk = var$10;
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(2016).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2016).$nativeString.length)
                                    break bQ;
                                $rt_s(2016).$hashCode1 = (31 * $rt_s(2016).$hashCode1 | 0) + $rt_s(2016).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2016).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            bR: {
                                $var3 = $var2.$key;
                                if ($rt_s(2016) !== $var3) {
                                    if ($rt_s(2016) === $var3)
                                        var$8 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$8 = $rt_s(2016).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break bR;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$8 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(2016) !== null) {
                            bS: {
                                if (!$rt_s(2016).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(2016).$nativeString.length)
                                            break bS;
                                        $rt_s(2016).$hashCode1 = (31 * $rt_s(2016).$hashCode1 | 0) + $rt_s(2016).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(2016).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$11) {
                                    bT: {
                                        $var3 = $var2.$key;
                                        if ($rt_s(2016) !== $var3) {
                                            if ($rt_s(2016) !== $var3) {
                                                if ($var3 instanceof jl_String) {
                                                    $var3 = $var3;
                                                    var$8 = $rt_s(2016).$nativeString !== $var3.$nativeString ? 0 : 1;
                                                } else
                                                    var$8 = 0;
                                            } else
                                                var$8 = 1;
                                            if (!var$8) {
                                                var$8 = 0;
                                                break bT;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        } else {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        }
                        var$8 = ($var2 === null ? null : $var2.$value0).$data0;
                    }
                    $this.$spawnForced = !var$8 ? 0 : 1;
                }
            }
        }
        bU: {
            var$6 = $this.$foodStats;
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2017).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2017).$nativeString.length)
                        break bU;
                    $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(2017).$hashCode1;
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$11) {
                bV: {
                    var$7 = $var3.$key;
                    if ($rt_s(2017) !== var$7) {
                        if ($rt_s(2017) !== var$7) {
                            if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                        } else
                            var$8 = 1;
                        if (!var$8) {
                            var$8 = 0;
                            break bV;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if ($var3 === null ? 0 : 1) {
            bW: {
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2017).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2017).$nativeString.length)
                            break bW;
                        $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2017).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    bX: {
                        var$7 = $var3.$key;
                        if ($rt_s(2017) !== var$7) {
                            if ($rt_s(2017) === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break bX;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2017) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    bY: {
                        if (!$rt_s(2017).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2017).$nativeString.length)
                                    break bY;
                                $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2017).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            bZ: {
                                var$7 = $var3.$key;
                                if ($rt_s(2017) !== var$7) {
                                    if ($rt_s(2017) !== var$7) {
                                        if (var$7 instanceof jl_String) {
                                            var$7 = var$7;
                                            var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                                        } else
                                            var$8 = 0;
                                    } else
                                        var$8 = 1;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break bZ;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$8 = ($var3 === null ? null : $var3.$value0).$data;
            } else
                var$8 = 0;
            b0: {
                var$6.$foodLevel = var$8;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2018).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2018).$nativeString.length)
                            break b0;
                        $rt_s(2018).$hashCode1 = (31 * $rt_s(2018).$hashCode1 | 0) + $rt_s(2018).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2018).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    b1: {
                        var$7 = $var3.$key;
                        if ($rt_s(2018) !== var$7) {
                            if ($rt_s(2018) !== var$7) {
                                if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2018).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break b1;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                var$8 = 0;
            else {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2018) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    b2: {
                        if (!$rt_s(2018).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2018).$nativeString.length)
                                    break b2;
                                $rt_s(2018).$hashCode1 = (31 * $rt_s(2018).$hashCode1 | 0) + $rt_s(2018).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2018).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            b3: {
                                var$7 = $var3.$key;
                                if ($rt_s(2018) !== var$7) {
                                    if ($rt_s(2018) === var$7)
                                        var$8 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2018).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break b3;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$8 = ($var3 === null ? null : $var3.$value0).$data;
            }
            b4: {
                var$6.$foodTimer = var$8;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2019).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2019).$nativeString.length)
                            break b4;
                        $rt_s(2019).$hashCode1 = (31 * $rt_s(2019).$hashCode1 | 0) + $rt_s(2019).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2019).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    b5: {
                        var$7 = $var3.$key;
                        if ($rt_s(2019) !== var$7) {
                            if ($rt_s(2019) === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2019).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b5;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2019) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    b6: {
                        if (!$rt_s(2019).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2019).$nativeString.length)
                                    break b6;
                                $rt_s(2019).$hashCode1 = (31 * $rt_s(2019).$hashCode1 | 0) + $rt_s(2019).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2019).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            b7: {
                                var$7 = $var3.$key;
                                if ($rt_s(2019) !== var$7) {
                                    if ($rt_s(2019) === var$7)
                                        var$8 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2019).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break b7;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$9 = ($var3 === null ? null : $var3.$value0).$data5;
            } else
                var$9 = 0.0;
            b8: {
                var$6.$foodSaturationLevel = var$9;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2020).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2020).$nativeString.length)
                            break b8;
                        $rt_s(2020).$hashCode1 = (31 * $rt_s(2020).$hashCode1 | 0) + $rt_s(2020).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2020).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    b9: {
                        var$7 = $var3.$key;
                        if ($rt_s(2020) !== var$7) {
                            if ($rt_s(2020) === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2020).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break b9;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                var$9 = 0.0;
            else {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2020) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    b$: {
                        if (!$rt_s(2020).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2020).$nativeString.length)
                                    break b$;
                                $rt_s(2020).$hashCode1 = (31 * $rt_s(2020).$hashCode1 | 0) + $rt_s(2020).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2020).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            b_: {
                                var$7 = $var3.$key;
                                if ($rt_s(2020) !== var$7) {
                                    if ($rt_s(2020) === var$7)
                                        var$8 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2020).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break b_;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$9 = ($var3 === null ? null : $var3.$value0).$data5;
            }
            var$6.$foodExhaustionLevel = var$9;
        }
        ca: {
            nms_PlayerCapabilities_readCapabilitiesFromNBT($this.$capabilities, $par1NBTTagCompound);
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2021).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2021).$nativeString.length)
                        break ca;
                    $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(2021).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                cb: {
                    $var3 = $var2.$key;
                    if ($rt_s(2021) !== $var3) {
                        if ($rt_s(2021) === $var3)
                            var$8 = 1;
                        else if (!($var3 instanceof jl_String))
                            var$8 = 0;
                        else {
                            $var3 = $var3;
                            var$8 = $rt_s(2021).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break cb;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            return;
        v: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2021).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2021).$nativeString.length)
                        break v;
                    $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(2021).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                cc: {
                    $var3 = $var2.$key;
                    if ($rt_s(2021) !== $var3) {
                        if ($rt_s(2021) === $var3)
                            var$8 = 1;
                        else if (!($var3 instanceof jl_String))
                            var$8 = 0;
                        else {
                            $var3 = $var3;
                            var$8 = $rt_s(2021).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break cc;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            $var3 = new nms_NBTTagList;
            if ($rt_s(2021) !== null)
                $var3.$name = $rt_s(2021);
            else
                $var3.$name = $rt_s(3);
            $par1NBTTagCompound = new ju_ArrayList;
            $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
            $var3.$tagList = $par1NBTTagCompound;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2021) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                cd: {
                    if (!$rt_s(2021).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2021).$nativeString.length)
                                break cd;
                            $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2021).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$11) {
                        ce: {
                            $var2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2021) !== $var2) {
                                if ($rt_s(2021) === $var2)
                                    var$8 = 1;
                                else if (!($var2 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $var2 = $var2;
                                    var$8 = $rt_s(2021).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break ce;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var3 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        $par1NBTTagCompound = $this.$theInventoryEnderChest;
        $ptr = 6;
        continue main;
    case 3:
        cf: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break cf;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        cg: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1693).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(1693).$nativeString.length)
                        break cg;
                    $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(1693).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                ch: {
                    $var3 = $var2.$key;
                    if ($rt_s(1693) !== $var3) {
                        if ($rt_s(1693) !== $var3) {
                            if ($var3 instanceof jl_String) {
                                $var3 = $var3;
                                var$8 = $rt_s(1693).$nativeString !== $var3.$nativeString ? 0 : 1;
                            } else
                                var$8 = 0;
                        } else
                            var$8 = 1;
                        if (!var$8) {
                            var$8 = 0;
                            break ch;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            ci: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1694).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(1694).$nativeString.length)
                            break ci;
                        $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(1694).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$11) {
                    cj: {
                        $var3 = $var2.$key;
                        if ($rt_s(1694) !== $var3) {
                            if ($rt_s(1694) !== $var3) {
                                if ($var3 instanceof jl_String) {
                                    $var3 = $var3;
                                    var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break cj;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                ck: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1695).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(1695).$nativeString.length)
                                break ck;
                            $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(1695).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$11) {
                        cl: {
                            $var3 = $var2.$key;
                            if ($rt_s(1695) !== $var3) {
                                if ($rt_s(1695) === $var3)
                                    var$8 = 1;
                                else if ($var3 instanceof jl_String) {
                                    $var3 = $var3;
                                    var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                                if (!var$8) {
                                    var$8 = 0;
                                    break cl;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if ($var2 === null ? 0 : 1) {
                    cm: {
                        var$10 = new nms_ChunkCoordinates;
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1693).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1693).$nativeString.length)
                                    break cm;
                                $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1693).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            cn: {
                                $var3 = $var2.$key;
                                if ($rt_s(1693) !== $var3) {
                                    if ($rt_s(1693) === $var3)
                                        var$8 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$8 = $rt_s(1693).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cn;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$12 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(1693) !== null) {
                            co: {
                                if (!$rt_s(1693).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(1693).$nativeString.length)
                                            break co;
                                        $rt_s(1693).$hashCode1 = (31 * $rt_s(1693).$hashCode1 | 0) + $rt_s(1693).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$3 = $rt_s(1693).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            var$7 = var$4[var$3 & (var$4.length - 1 | 0)];
                            while (var$7 !== null) {
                                if (var$7.$origKeyHash == var$3) {
                                    cp: {
                                        $var2 = var$7.$key;
                                        if ($rt_s(1693) !== $var2) {
                                            if ($rt_s(1693) === $var2)
                                                var$8 = 1;
                                            else if (!($var2 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var2 = $var2;
                                                var$8 = $rt_s(1693).$nativeString !== $var2.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break cp;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                var$7 = var$7.$next3;
                            }
                        } else {
                            var$7 = $var2.$elementData.data[0];
                            while (var$7 !== null && var$7.$key !== null) {
                                var$7 = var$7.$next3;
                            }
                        }
                        var$12 = (var$7 === null ? null : var$7.$value0).$data;
                    }
                    cq: {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1694).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1694).$nativeString.length)
                                    break cq;
                                $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1694).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            cr: {
                                $var3 = $var2.$key;
                                if ($rt_s(1694) !== $var3) {
                                    if ($rt_s(1694) !== $var3) {
                                        if ($var3 instanceof jl_String) {
                                            $var3 = $var3;
                                            var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        } else
                                            var$8 = 0;
                                    } else
                                        var$8 = 1;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cr;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$11 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(1694) === null) {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            cs: {
                                if (!$rt_s(1694).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(1694).$nativeString.length)
                                            break cs;
                                        $rt_s(1694).$hashCode1 = (31 * $rt_s(1694).$hashCode1 | 0) + $rt_s(1694).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(1694).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$11) {
                                    ct: {
                                        $var3 = $var2.$key;
                                        if ($rt_s(1694) !== $var3) {
                                            if ($rt_s(1694) === $var3)
                                                var$8 = 1;
                                            else if (!($var3 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var3 = $var3;
                                                var$8 = $rt_s(1694).$nativeString !== $var3.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break ct;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        var$11 = ($var2 === null ? null : $var2.$value0).$data;
                    }
                    cu: {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(1695).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(1695).$nativeString.length)
                                    break cu;
                                $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$13 = $rt_s(1695).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$13 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$13) {
                            cv: {
                                $var3 = $var2.$key;
                                if ($rt_s(1695) !== $var3) {
                                    if ($rt_s(1695) === $var3)
                                        var$8 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cv;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$8 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(1695) === null) {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            cw: {
                                if (!$rt_s(1695).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(1695).$nativeString.length)
                                            break cw;
                                        $rt_s(1695).$hashCode1 = (31 * $rt_s(1695).$hashCode1 | 0) + $rt_s(1695).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = $rt_s(1695).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[var$13 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$13) {
                                    cx: {
                                        $var3 = $var2.$key;
                                        if ($rt_s(1695) !== $var3) {
                                            if ($rt_s(1695) === $var3)
                                                var$8 = 1;
                                            else if (!($var3 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var3 = $var3;
                                                var$8 = $rt_s(1695).$nativeString !== $var3.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break cx;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        var$8 = ($var2 === null ? null : $var2.$value0).$data;
                    }
                    cy: {
                        var$10.$posX0 = var$12;
                        var$10.$posY0 = var$11;
                        var$10.$posZ0 = var$8;
                        $this.$spawnChunk = var$10;
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(2016).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2016).$nativeString.length)
                                    break cy;
                                $rt_s(2016).$hashCode1 = (31 * $rt_s(2016).$hashCode1 | 0) + $rt_s(2016).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2016).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$11) {
                            cz: {
                                $var3 = $var2.$key;
                                if ($rt_s(2016) !== $var3) {
                                    if ($rt_s(2016) === $var3)
                                        var$8 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$8 = $rt_s(2016).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cz;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                    if (!($var2 === null ? 0 : 1))
                        var$8 = 0;
                    else {
                        $var2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(2016) !== null) {
                            cA: {
                                if (!$rt_s(2016).$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= $rt_s(2016).$nativeString.length)
                                            break cA;
                                        $rt_s(2016).$hashCode1 = (31 * $rt_s(2016).$hashCode1 | 0) + $rt_s(2016).$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(2016).$hashCode1;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$11) {
                                    cB: {
                                        $var3 = $var2.$key;
                                        if ($rt_s(2016) !== $var3) {
                                            if ($rt_s(2016) !== $var3) {
                                                if ($var3 instanceof jl_String) {
                                                    $var3 = $var3;
                                                    var$8 = $rt_s(2016).$nativeString !== $var3.$nativeString ? 0 : 1;
                                                } else
                                                    var$8 = 0;
                                            } else
                                                var$8 = 1;
                                            if (!var$8) {
                                                var$8 = 0;
                                                break cB;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        } else {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        }
                        var$8 = ($var2 === null ? null : $var2.$value0).$data0;
                    }
                    $this.$spawnForced = !var$8 ? 0 : 1;
                }
            }
        }
        cC: {
            var$6 = $this.$foodStats;
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2017).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2017).$nativeString.length)
                        break cC;
                    $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(2017).$hashCode1;
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$11) {
                cD: {
                    var$7 = $var3.$key;
                    if ($rt_s(2017) !== var$7) {
                        if ($rt_s(2017) !== var$7) {
                            if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                        } else
                            var$8 = 1;
                        if (!var$8) {
                            var$8 = 0;
                            break cD;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if ($var3 === null ? 0 : 1) {
            cE: {
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2017).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2017).$nativeString.length)
                            break cE;
                        $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2017).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    cF: {
                        var$7 = $var3.$key;
                        if ($rt_s(2017) !== var$7) {
                            if ($rt_s(2017) === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break cF;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2017) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    f: {
                        if (!$rt_s(2017).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2017).$nativeString.length)
                                    break f;
                                $rt_s(2017).$hashCode1 = (31 * $rt_s(2017).$hashCode1 | 0) + $rt_s(2017).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2017).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            cG: {
                                var$7 = $var3.$key;
                                if ($rt_s(2017) !== var$7) {
                                    if ($rt_s(2017) !== var$7) {
                                        if (var$7 instanceof jl_String) {
                                            var$7 = var$7;
                                            var$8 = $rt_s(2017).$nativeString !== var$7.$nativeString ? 0 : 1;
                                        } else
                                            var$8 = 0;
                                    } else
                                        var$8 = 1;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cG;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$8 = ($var3 === null ? null : $var3.$value0).$data;
            } else
                var$8 = 0;
            h: {
                var$6.$foodLevel = var$8;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2018).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2018).$nativeString.length)
                            break h;
                        $rt_s(2018).$hashCode1 = (31 * $rt_s(2018).$hashCode1 | 0) + $rt_s(2018).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2018).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    cH: {
                        var$7 = $var3.$key;
                        if ($rt_s(2018) !== var$7) {
                            if ($rt_s(2018) !== var$7) {
                                if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2018).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break cH;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                var$8 = 0;
            else {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2018) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    cI: {
                        if (!$rt_s(2018).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2018).$nativeString.length)
                                    break cI;
                                $rt_s(2018).$hashCode1 = (31 * $rt_s(2018).$hashCode1 | 0) + $rt_s(2018).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2018).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            cJ: {
                                var$7 = $var3.$key;
                                if ($rt_s(2018) !== var$7) {
                                    if ($rt_s(2018) === var$7)
                                        var$8 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2018).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cJ;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$8 = ($var3 === null ? null : $var3.$value0).$data;
            }
            cK: {
                var$6.$foodTimer = var$8;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2019).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2019).$nativeString.length)
                            break cK;
                        $rt_s(2019).$hashCode1 = (31 * $rt_s(2019).$hashCode1 | 0) + $rt_s(2019).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2019).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    cL: {
                        var$7 = $var3.$key;
                        if ($rt_s(2019) !== var$7) {
                            if ($rt_s(2019) === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2019).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break cL;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2019) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    n: {
                        if (!$rt_s(2019).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2019).$nativeString.length)
                                    break n;
                                $rt_s(2019).$hashCode1 = (31 * $rt_s(2019).$hashCode1 | 0) + $rt_s(2019).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2019).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            cM: {
                                var$7 = $var3.$key;
                                if ($rt_s(2019) !== var$7) {
                                    if ($rt_s(2019) === var$7)
                                        var$8 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2019).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cM;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$9 = ($var3 === null ? null : $var3.$value0).$data5;
            } else
                var$9 = 0.0;
            p: {
                var$6.$foodSaturationLevel = var$9;
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2020).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2020).$nativeString.length)
                            break p;
                        $rt_s(2020).$hashCode1 = (31 * $rt_s(2020).$hashCode1 | 0) + $rt_s(2020).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2020).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$11) {
                    cN: {
                        var$7 = $var3.$key;
                        if ($rt_s(2020) !== var$7) {
                            if ($rt_s(2020) === var$7)
                                var$8 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$7 = var$7;
                                var$8 = $rt_s(2020).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break cN;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                var$9 = 0.0;
            else {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2020) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    r: {
                        if (!$rt_s(2020).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2020).$nativeString.length)
                                    break r;
                                $rt_s(2020).$hashCode1 = (31 * $rt_s(2020).$hashCode1 | 0) + $rt_s(2020).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2020).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$11 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$11) {
                            cO: {
                                var$7 = $var3.$key;
                                if ($rt_s(2020) !== var$7) {
                                    if ($rt_s(2020) === var$7)
                                        var$8 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$8 = $rt_s(2020).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break cO;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$9 = ($var3 === null ? null : $var3.$value0).$data5;
            }
            var$6.$foodExhaustionLevel = var$9;
        }
        cP: {
            nms_PlayerCapabilities_readCapabilitiesFromNBT($this.$capabilities, $par1NBTTagCompound);
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2021).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2021).$nativeString.length)
                        break cP;
                    $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(2021).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                cQ: {
                    $var3 = $var2.$key;
                    if ($rt_s(2021) !== $var3) {
                        if ($rt_s(2021) === $var3)
                            var$8 = 1;
                        else if (!($var3 instanceof jl_String))
                            var$8 = 0;
                        else {
                            $var3 = $var3;
                            var$8 = $rt_s(2021).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break cQ;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            return;
        cR: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2021).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2021).$nativeString.length)
                        break cR;
                    $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$11 = $rt_s(2021).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$11 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                cS: {
                    $var3 = $var2.$key;
                    if ($rt_s(2021) !== $var3) {
                        if ($rt_s(2021) === $var3)
                            var$8 = 1;
                        else if (!($var3 instanceof jl_String))
                            var$8 = 0;
                        else {
                            $var3 = $var3;
                            var$8 = $rt_s(2021).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break cS;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            $var3 = new nms_NBTTagList;
            if ($rt_s(2021) !== null)
                $var3.$name = $rt_s(2021);
            else
                $var3.$name = $rt_s(3);
            $par1NBTTagCompound = new ju_ArrayList;
            $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
            $var3.$tagList = $par1NBTTagCompound;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2021) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                cT: {
                    if (!$rt_s(2021).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2021).$nativeString.length)
                                break cT;
                            $rt_s(2021).$hashCode1 = (31 * $rt_s(2021).$hashCode1 | 0) + $rt_s(2021).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2021).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$11 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$11) {
                        cU: {
                            $var2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2021) !== $var2) {
                                if ($rt_s(2021) === $var2)
                                    var$8 = 1;
                                else if (!($var2 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    $var2 = $var2;
                                    var$8 = $rt_s(2021).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break cU;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var3 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        $par1NBTTagCompound = $this.$theInventoryEnderChest;
        $ptr = 6;
        continue main;
    case 4:
        cf: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break cf;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$10);
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$10);
        }
        cg: while (true) {
            while (true) {
                if (!var$17.$hasNext())
                    break cg;
                $var3 = (var$17.$next()).$playerNetServerHandler;
                if (!var$13)
                    break;
                var$16 = $var3.$playerEntity.$chatVisibility;
                if (var$16 == 2)
                    continue;
                if (var$16 != 1)
                    break;
                if (var$7.$isServer)
                    break;
            }
            try {
                $var3 = $var3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$10);
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$10);
        }
        $var2 = $var2.$myEntity;
        if ($var2 instanceof nms_EntityPlayerMP)
            cV: {
                $var2 = $var2.$playerNetServerHandler;
                if (var$13) {
                    var$13 = $var2.$playerEntity.$chatVisibility;
                    if (var$13 == 2)
                        break cV;
                    if (var$13 == 1 && !var$7.$isServer)
                        break cV;
                }
                try {
                    $var2 = $var2.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
            }
        $ptr = 2;
        continue main;
    case 5:
        cf: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break cf;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        $ptr = 2;
        continue main;
    case 6:
        nms_InventoryEnderChest_loadInventoryFromNBT($par1NBTTagCompound, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, $var2, var$3, var$4, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityPlayer_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    nms_EntityLivingBase_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$inventory0;
    var$3 = new nms_NBTTagList;
    var$3.$name = $rt_s(3);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    var$3.$tagList = var$4;
    var$3 = nms_InventoryPlayer_writeToNBT(var$2, var$3);
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3.$name = $rt_s(2008);
    ju_HashMap_putImpl(var$2, $rt_s(2008), var$3);
    var$5 = $this.$inventory0.$currentItem;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagInt;
    var$6.$name = $rt_s(2009);
    var$6.$data = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2009), var$6);
    var$5 = (!$this.$sleeping ? 0 : 1) << 24 >> 24;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagByte;
    var$6.$name = $rt_s(2010);
    var$6.$data0 = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2010), var$6);
    var$5 = $this.$sleepTimer << 16 >> 16;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagShort;
    var$6.$name = $rt_s(2011);
    var$6.$data2 = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2011), var$6);
    var$7 = $this.$experience;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagFloat;
    var$6.$name = $rt_s(2012);
    var$6.$data5 = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2012), var$6);
    var$5 = $this.$experienceLevel;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagInt;
    var$6.$name = $rt_s(2013);
    var$6.$data = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2013), var$6);
    var$5 = $this.$experienceTotal;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagInt;
    var$6.$name = $rt_s(2014);
    var$6.$data = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2014), var$6);
    var$6 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[146];
    if (var$2 === null) {
        var$6 = var$6.$elementData.data[0];
        while (var$6 !== null && var$6.$key !== null) {
            var$6 = var$6.$next3;
        }
    } else {
        var$8 = var$2.$value;
        var$9 = var$6.$elementData.data;
        var$6 = var$9[var$8 & (var$9.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$8) {
                var$4 = var$6.$key;
                if (var$2 !== var$4 && !(var$2 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$6 = var$6.$next3;
        }
    }
    var$5 = (var$6 === null ? null : var$6.$value0).$watchedObject.$value;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagInt;
    var$6.$name = $rt_s(2015);
    var$6.$data = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2015), var$6);
    var$3 = $this.$spawnChunk;
    if (var$3 !== null) {
        var$5 = var$3.$posX0;
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagInt;
        var$3.$name = $rt_s(1693);
        var$3.$data = var$5;
        ju_HashMap_putImpl(var$2, $rt_s(1693), var$3);
        var$5 = $this.$spawnChunk.$posY0;
        var$2 = $par1NBTTagCompound.$tagMap;
        var$6 = new nms_NBTTagInt;
        var$6.$name = $rt_s(1694);
        var$6.$data = var$5;
        ju_HashMap_putImpl(var$2, $rt_s(1694), var$6);
        var$5 = $this.$spawnChunk.$posZ0;
        var$2 = $par1NBTTagCompound.$tagMap;
        var$6 = new nms_NBTTagInt;
        var$6.$name = $rt_s(1695);
        var$6.$data = var$5;
        ju_HashMap_putImpl(var$2, $rt_s(1695), var$6);
        var$5 = (!$this.$spawnForced ? 0 : 1) << 24 >> 24;
        var$2 = $par1NBTTagCompound.$tagMap;
        var$6 = new nms_NBTTagByte;
        var$6.$name = $rt_s(2016);
        var$6.$data0 = var$5;
        ju_HashMap_putImpl(var$2, $rt_s(2016), var$6);
    }
    var$3 = $this.$foodStats;
    var$5 = var$3.$foodLevel;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$6 = new nms_NBTTagInt;
    var$6.$name = $rt_s(2017);
    var$6.$data = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2017), var$6);
    var$5 = var$3.$foodTimer;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2018);
    var$2.$data = var$5;
    ju_HashMap_putImpl(var$4, $rt_s(2018), var$2);
    var$7 = var$3.$foodSaturationLevel;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagFloat;
    var$2.$name = $rt_s(2019);
    var$2.$data5 = var$7;
    ju_HashMap_putImpl(var$4, $rt_s(2019), var$2);
    var$7 = var$3.$foodExhaustionLevel;
    var$2 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagFloat;
    var$3.$name = $rt_s(2020);
    var$3.$data5 = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2020), var$3);
    nms_PlayerCapabilities_writeCapabilitiesToNBT($this.$capabilities, $par1NBTTagCompound);
    var$6 = $this.$theInventoryEnderChest;
    var$2 = new nms_NBTTagList;
    var$2.$name = $rt_s(2021);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    var$2.$tagList = var$4;
    var$5 = 0;
    while (var$5 < var$6.$slotsCount) {
        var$10 = var$6.$inventoryContents.data[var$5];
        if (var$10 !== null) {
            var$4 = new nms_NBTTagCompound;
            var$4.$name = $rt_s(3);
            var$11 = new ju_HashMap;
            var$8 = ju_HashMap_calculateCapacity(16);
            var$11.$elementCount = 0;
            var$12 = $rt_createArray(ju_HashMap$HashEntry, var$8);
            var$9 = var$12.data;
            var$11.$elementData = var$12;
            var$11.$loadFactor = 0.75;
            var$11.$threshold = var$9.length * 0.75 | 0;
            var$4.$tagMap = var$11;
            var$8 = var$5 << 24 >> 24;
            var$13 = new nms_NBTTagByte;
            var$13.$name = $rt_s(2022);
            var$13.$data0 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(2022), var$13);
            var$8 = var$10.$itemID << 16 >> 16;
            var$11 = var$4.$tagMap;
            var$13 = new nms_NBTTagShort;
            var$13.$name = $rt_s(914);
            var$13.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(914), var$13);
            var$8 = var$10.$stackSize << 24 >> 24;
            var$11 = var$4.$tagMap;
            var$13 = new nms_NBTTagByte;
            var$13.$name = $rt_s(915);
            var$13.$data0 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(915), var$13);
            var$8 = var$10.$itemDamage << 16 >> 16;
            var$11 = var$4.$tagMap;
            var$13 = new nms_NBTTagShort;
            var$13.$name = $rt_s(916);
            var$13.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(916), var$13);
            var$14 = var$10.$stackTagCompound;
            if (var$14 !== null) {
                var$11 = var$4.$tagMap;
                var$14.$name = $rt_s(917);
                ju_HashMap_putImpl(var$11, $rt_s(917), var$14);
            }
            var$2.$tagType = 10;
            var$14 = var$2.$tagList;
            ju_ArrayList_ensureCapacity(var$14, var$14.$size0 + 1 | 0);
            var$9 = var$14.$array.data;
            var$15 = var$14.$size0;
            var$14.$size0 = var$15 + 1 | 0;
            var$9[var$15] = var$4;
            var$14.$modCount = var$14.$modCount + 1 | 0;
        }
        var$5 = var$5 + 1 | 0;
    }
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    var$2.$name = $rt_s(2021);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2021), var$2);
},
nms_EntityPlayer_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if ($this.$capabilities.$disableDamage && !$par1DamageSource.$isDamageAllowedInCreativeMode)
            return 0;
        $this.$entityAge = 0;
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[134];
        if (var$4 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $var3.$elementData.data;
            $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$5) {
                    var$7 = $var3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3.$watchedObject.$value3 <= 0.0)
            return 0;
        var$8 = $this.$sleeping;
        if (var$8) {
            $var3 = $this.$worldObj;
            if (!$var3.$isRemote) {
                var$5 = 1;
                var$9 = 1;
                var$10 = 0;
                if (var$8) {
                    var$7 = $var3.$theEntityTracker;
                    $var3 = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$11 = $this.$entityId;
                    $var3.$entityId1 = var$11;
                    $var3.$animate = 3;
                    var$4 = var$7.$trackedEntityIDs;
                    var$8 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                    var$12 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                    var$6 = var$4.$slots.data;
                    var$4 = var$6[var$12 & (var$6.length - 1 | 0)];
                    a: {
                        while (var$4 !== null) {
                            if (var$4.$hashEntry == var$11) {
                                var$4 = var$4.$valueEntry;
                                break a;
                            }
                            var$4 = var$4.$nextEntry0;
                        }
                        var$4 = null;
                    }
                    var$4 = var$4;
                    if (var$4 !== null) {
                        var$7 = var$4.$trackingPlayers.$backingMap;
                        if (var$7.$cachedKeySet === null) {
                            var$13 = new ju_HashMap$1;
                            var$13.$this$0 = var$7;
                            ju_AbstractCollection__init_(var$13);
                            var$7.$cachedKeySet = var$13;
                        }
                        var$14 = var$7.$cachedKeySet.$iterator();
                        var$15 = $var3 instanceof nms_Packet3Chat;
                        var$13 = $var3;
                        while (var$14.$hasNext()) {
                            b: {
                                var$7 = (var$14.$next()).$playerNetServerHandler;
                                if (var$15) {
                                    var$12 = var$7.$playerEntity.$chatVisibility;
                                    if (var$12 == 2)
                                        break b;
                                    if (var$12 == 1 && !var$13.$isServer)
                                        break b;
                                }
                                try {
                                    var$7 = var$7.$netManager;
                                    $ptr = 5;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$7 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$16 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$16);
                                    jl_System_errCache = var$16;
                                }
                                jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                            }
                        }
                        var$4 = var$4.$myEntity;
                        if (var$4 instanceof nms_EntityPlayerMP)
                            c: {
                                var$4 = var$4.$playerNetServerHandler;
                                if (var$15) {
                                    var$15 = var$4.$playerEntity.$chatVisibility;
                                    if (var$15 == 2)
                                        break c;
                                    if (var$15 == 1 && !var$13.$isServer)
                                        break c;
                                }
                                try {
                                    var$4 = var$4.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var3 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$4 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0(var$4, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = var$4;
                                }
                                jl_Throwable_printStackTrace($var3, jl_System_errCache);
                            }
                    }
                }
                $ptr = 1;
                continue main;
            }
        }
        if ($par1DamageSource.$isDifficultyScaled()) {
            var$5 = $this.$worldObj.$difficultySetting;
            if (!var$5)
                $par2 = 0.0;
            if (var$5 == 1)
                $par2 = $par2 / 2.0 + 1.0;
            if (var$5 == 3)
                $par2 = $par2 * 3.0 / 2.0;
        }
        if ($par2 === 0.0)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        $var3 instanceof nms_EntityArrow && $var3.$shootingEntity === null;
        nms_StatList_$callClinit();
        var$7 = nms_StatList_damageTakenStat;
        var$17 = $par2 * 10.0;
        var$9 = var$17 + jl_Math_sign0(var$17) * 0.5 | 0;
        if (var$7 !== null && !var$7.$isIndependent)
            d: {
                var$4 = $this.$playerNetServerHandler;
                $var3 = new nms_Packet200Statistic;
                var$5 = var$7.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var3.$statisticId = var$5;
                $var3.$amount = var$9;
                if ($var3 instanceof nms_Packet3Chat) {
                    var$7 = $var3;
                    var$9 = var$4.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break d;
                    if (var$9 == 1 && !var$7.$isServer)
                        break d;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$7);
                    var$7.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$4, var$7);
                    var$4.$sb = jl_StringBuilder__init_();
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace($var3, jl_System_errCache);
            }
        $ptr = 3;
        continue main;
    case 1:
        nms_EntityPlayer_wakeUpPlayer($this, var$5, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$playerNetServerHandler;
        if ($var3 !== null)
            e: {
                var$18 = $this.$posX;
                var$19 = $this.$posY;
                var$20 = $this.$posZ;
                var$17 = $this.$rotationYaw;
                var$21 = $this.$rotationPitch;
                $var3.$hasMoved = 0;
                $var3.$lastPosX = var$18;
                $var3.$lastPosY = var$19;
                $var3.$lastPosZ = var$20;
                nms_Entity_setPositionAndRotation($var3.$playerEntity, var$18, var$19, var$20, var$17, var$21);
                $var3 = $var3.$playerEntity.$playerNetServerHandler;
                var$4 = new nms_Packet13PlayerLookMove;
                var$22 = var$19 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$4.$xPosition = var$18;
                var$4.$yPosition = var$22;
                var$4.$stance = var$19;
                var$4.$zPosition = var$20;
                var$4.$yaw = var$17;
                var$4.$pitch = var$21;
                var$4.$onGround0 = 0;
                var$4.$rotating = 1;
                var$4.$moving = 1;
                if (var$4 instanceof nms_Packet3Chat) {
                    var$7 = var$4;
                    var$9 = $var3.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break e;
                    if (var$9 == 1 && !var$7.$isServer)
                        break e;
                }
                try {
                    $var3 = $var3.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_(var$4, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace($var3, jl_System_errCache);
            }
        if ($par1DamageSource.$isDifficultyScaled()) {
            var$5 = $this.$worldObj.$difficultySetting;
            if (!var$5)
                $par2 = 0.0;
            if (var$5 == 1)
                $par2 = $par2 / 2.0 + 1.0;
            if (var$5 == 3)
                $par2 = $par2 * 3.0 / 2.0;
        }
        if ($par2 === 0.0)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        $var3 instanceof nms_EntityArrow && $var3.$shootingEntity === null;
        nms_StatList_$callClinit();
        var$7 = nms_StatList_damageTakenStat;
        var$17 = $par2 * 10.0;
        var$9 = var$17 + jl_Math_sign0(var$17) * 0.5 | 0;
        if (var$7 !== null && !var$7.$isIndependent)
            f: {
                var$4 = $this.$playerNetServerHandler;
                $var3 = new nms_Packet200Statistic;
                var$5 = var$7.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var3.$statisticId = var$5;
                $var3.$amount = var$9;
                if ($var3 instanceof nms_Packet3Chat) {
                    var$7 = $var3;
                    var$9 = var$4.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break f;
                    if (var$9 == 1 && !var$7.$isServer)
                        break f;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$7);
                    var$7.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$4, var$7);
                    var$4.$sb = jl_StringBuilder__init_();
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace($var3, jl_System_errCache);
            }
        $ptr = 3;
        continue main;
    case 2:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$4, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        if ($par1DamageSource.$isDifficultyScaled()) {
            var$5 = $this.$worldObj.$difficultySetting;
            if (!var$5)
                $par2 = 0.0;
            if (var$5 == 1)
                $par2 = $par2 / 2.0 + 1.0;
            if (var$5 == 3)
                $par2 = $par2 * 3.0 / 2.0;
        }
        if ($par2 === 0.0)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        $var3 instanceof nms_EntityArrow && $var3.$shootingEntity === null;
        nms_StatList_$callClinit();
        var$7 = nms_StatList_damageTakenStat;
        var$17 = $par2 * 10.0;
        var$9 = var$17 + jl_Math_sign0(var$17) * 0.5 | 0;
        if (var$7 !== null && !var$7.$isIndependent)
            h: {
                var$4 = $this.$playerNetServerHandler;
                $var3 = new nms_Packet200Statistic;
                var$5 = var$7.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var3.$statisticId = var$5;
                $var3.$amount = var$9;
                if ($var3 instanceof nms_Packet3Chat) {
                    var$7 = $var3;
                    var$9 = var$4.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break h;
                    if (var$9 == 1 && !var$7.$isServer)
                        break h;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$7 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$7);
                    var$7.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$4, var$7);
                    var$4.$sb = jl_StringBuilder__init_();
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace($var3, jl_System_errCache);
            }
        $ptr = 3;
    case 3:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    case 4:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$4, var$7);
                var$4.$sb = jl_StringBuilder__init_();
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        $ptr = 3;
        continue main;
    case 5:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$16 = jl_System_errCache;
            if (var$16 === null) {
                var$16 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$16);
                jl_System_errCache = var$16;
            }
            var$16 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$16);
        }
        i: while (true) {
            while (true) {
                if (!var$14.$hasNext())
                    break i;
                var$7 = (var$14.$next()).$playerNetServerHandler;
                if (!var$15)
                    break;
                var$12 = var$7.$playerEntity.$chatVisibility;
                if (var$12 == 2)
                    continue;
                if (var$12 != 1)
                    break;
                if (var$13.$isServer)
                    break;
            }
            try {
                var$7 = var$7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$16 = jl_System_errCache;
            if (var$16 === null) {
                var$16 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$16);
                jl_System_errCache = var$16;
            }
            var$16 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$16);
        }
        var$4 = var$4.$myEntity;
        if (var$4 instanceof nms_EntityPlayerMP)
            j: {
                var$4 = var$4.$playerNetServerHandler;
                if (var$15) {
                    var$15 = var$4.$playerEntity.$chatVisibility;
                    if (var$15 == 2)
                        break j;
                    if (var$15 == 1 && !var$13.$isServer)
                        break j;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$4, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace($var3, jl_System_errCache);
            }
        $ptr = 1;
        continue main;
    case 6:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$4, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_EntityPlayer_damageArmor = ($this, $par1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$inventory0;
        $ptr = 1;
    case 1:
        nms_InventoryPlayer_damageArmor(var$2, $par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, $ptr);
},
nms_EntityPlayer_getTotalArmorValue = $this => {
    return nms_InventoryPlayer_getTotalArmorValue($this.$inventory0);
},
nms_EntityPlayer_getArmorVisibility = $this => {
    let $var1, $var2, $var3, $var4;
    $var1 = 0;
    $var2 = $this.$inventory0.$armorInventory.data;
    $var3 = $var2.length;
    $var4 = 0;
    while ($var4 < $var3) {
        if ($var2[$var4] !== null)
            $var1 = $var1 + 1 | 0;
        $var4 = $var4 + 1 | 0;
    }
    return $var1 / $var3;
},
nms_EntityPlayer_damageEntity = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$invulnerable) {
            if (!$par1DamageSource.$isUnblockable) {
                var$3 = $this.$itemInUse;
                var$4 = var$3 === null ? 0 : 1;
                a: {
                    if (var$4) {
                        nms_Item_$callClinit();
                        if (nms_Item_itemsList.data[var$3.$itemID].$getItemUseAction(var$3) === nms_EnumAction_block) {
                            var$4 = 1;
                            break a;
                        }
                    }
                    var$4 = 0;
                }
                if (var$4 && $par2 > 0.0)
                    $par2 = (1.0 + $par2) * 0.5;
            }
            if (!$par1DamageSource.$isUnblockable) {
                var$5 = $par2 * (25 - nms_InventoryPlayer_getTotalArmorValue($this.$inventory0) | 0);
                var$3 = $this.$inventory0;
                $ptr = 1;
                continue main;
            }
            $par2 = nms_EntityLivingBase_applyPotionDamageCalculations($this, $par1DamageSource, $par2);
            var$6 = jl_Math_maxImpl($par2 - nms_EntityPlayer_getAbsorptionAmount($this), 0.0);
            nms_EntityPlayer_setAbsorptionAmount($this, nms_EntityPlayer_getAbsorptionAmount($this) - ($par2 - var$6));
            if (var$6 !== 0.0) {
                var$5 = $par1DamageSource.$hungerDamage;
                if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                    var$3 = $this.$foodStats;
                    var$3.$foodExhaustionLevel = jl_Math_minImpl(var$3.$foodExhaustionLevel + var$5, 40.0);
                }
                var$3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[134];
                if (var$7 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$8 = var$7.$value;
                    var$9 = var$3.$elementData.data;
                    var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$8) {
                            var$10 = var$3.$key;
                            if (var$7 !== var$10 && !(var$7 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == var$8 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$5 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value3;
                var$3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[134];
                if (var$7 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$8 = var$7.$value;
                    var$9 = var$3.$elementData.data;
                    var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$8) {
                            var$10 = var$3.$key;
                            if (var$7 !== var$10 && !(var$7 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == var$8 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                nms_EntityLivingBase_setHealth($this, (var$3 === null ? null : var$3.$value0).$watchedObject.$value3 - var$6);
                var$11 = $this.$_combatTracker;
                nms_CombatTracker_func_94549_h(var$11);
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        nms_InventoryPlayer_damageArmor(var$3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = var$5 / 25.0;
        $par2 = nms_EntityLivingBase_applyPotionDamageCalculations($this, $par1DamageSource, $par2);
        var$6 = jl_Math_maxImpl($par2 - nms_EntityPlayer_getAbsorptionAmount($this), 0.0);
        nms_EntityPlayer_setAbsorptionAmount($this, nms_EntityPlayer_getAbsorptionAmount($this) - ($par2 - var$6));
        if (var$6 === 0.0)
            return;
        var$5 = $par1DamageSource.$hungerDamage;
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            var$3 = $this.$foodStats;
            var$3.$foodExhaustionLevel = jl_Math_minImpl(var$3.$foodExhaustionLevel + var$5, 40.0);
        }
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[134];
        if (var$7 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$8 = var$7.$value;
            var$9 = var$3.$elementData.data;
            var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    var$10 = var$3.$key;
                    if (var$7 !== var$10 && !(var$7 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$5 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value3;
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[134];
        if (var$7 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$8 = var$7.$value;
            var$9 = var$3.$elementData.data;
            var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    var$10 = var$3.$key;
                    if (var$7 !== var$10 && !(var$7 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        nms_EntityLivingBase_setHealth($this, (var$3 === null ? null : var$3.$value0).$watchedObject.$value3 - var$6);
        var$11 = $this.$_combatTracker;
        nms_CombatTracker_func_94549_h(var$11);
        $ptr = 2;
    case 2:
        nms_CombatTracker_func_94545_a(var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = new nms_CombatEntry;
        var$10 = var$11.$fighter;
        var$4 = var$10.$ticksExisted;
        var$7 = var$11.$field_94551_f;
        $par2 = var$10.$fallDistance;
        var$3.$damageSrc = $par1DamageSource;
        var$3.$field_94567_b = var$4;
        var$3.$field_94568_c = var$6;
        var$3.$field_94565_d = var$5;
        var$3.$field_94566_e = var$7;
        var$3.$field_94564_f = $par2;
        $par1DamageSource = var$11.$field_94556_a;
        ju_ArrayList_ensureCapacity($par1DamageSource, $par1DamageSource.$size0 + 1 | 0);
        var$9 = $par1DamageSource.$array.data;
        var$12 = $par1DamageSource.$size0;
        $par1DamageSource.$size0 = var$12 + 1 | 0;
        var$9[var$12] = var$3;
        $par1DamageSource.$modCount = $par1DamageSource.$modCount + 1 | 0;
        var$11.$field_94555_c = var$11.$fighter.$ticksExisted;
        var$11.$field_94553_e = 1;
        var$11.$field_94552_d = var$11.$field_94552_d | var$3.$damageSrc.$getEntity() instanceof nms_EntityLivingBase;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityPlayer_interactWith = ($this, $par1Entity) => {
    let $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$inventory0;
        var$3 = $var3.$currentItem;
        var$4 = var$3 < 9 && var$3 >= 0 ? $var3.$mainInventory.data[var$3] : null;
        if (var$4 === null)
            $var3 = null;
        else {
            $var3 = new nms_ItemStack;
            var$5 = var$4.$itemID;
            var$3 = var$4.$stackSize;
            var$6 = var$4.$itemDamage;
            nms_ItemStack_$callClinit();
            $var3.$itemID = var$5;
            $var3.$stackSize = var$3;
            $var3.$itemDamage = var$6;
            if (var$6 < 0)
                $var3.$itemDamage = 0;
            var$7 = var$4.$stackTagCompound;
            if (var$7 !== null) {
                var$8 = new nms_NBTTagCompound;
                var$9 = var$7.$name;
                if (var$9 === null)
                    var$9 = $rt_s(3);
                var$8.$name = var$9;
                var$9 = new ju_HashMap;
                var$5 = ju_HashMap_calculateCapacity(16);
                var$9.$elementCount = 0;
                var$10 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                var$11 = var$10.data;
                var$9.$elementData = var$10;
                var$9.$loadFactor = 0.75;
                var$9.$threshold = var$11.length * 0.75 | 0;
                var$8.$tagMap = var$9;
                var$12 = var$7.$tagMap;
                if (var$12.$cachedKeySet === null) {
                    var$9 = new ju_HashMap$1;
                    var$9.$this$0 = var$12;
                    var$12.$cachedKeySet = var$9;
                }
                var$13 = var$12.$cachedKeySet.$iterator();
                while (var$13.$hasNext()) {
                    var$14 = var$13.$next();
                    var$9 = var$7.$tagMap;
                    if (var$14 === null) {
                        var$15 = var$9.$elementData.data[0];
                        while (var$15 !== null && var$15.$key !== null) {
                            var$15 = var$15.$next3;
                        }
                    } else {
                        a: {
                            if (!var$14.$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= var$14.$nativeString.length)
                                        break a;
                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$3 = var$14.$hashCode1;
                        var$10 = var$9.$elementData.data;
                        var$15 = var$10[var$3 & (var$10.length - 1 | 0)];
                        while (var$15 !== null) {
                            if (var$15.$origKeyHash == var$3) {
                                b: {
                                    var$9 = var$15.$key;
                                    if (var$14 !== var$9) {
                                        if (var$14 === var$9)
                                            var$5 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$5 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$5 = var$14.$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$5) {
                                            var$5 = 0;
                                            break b;
                                        }
                                    }
                                    var$5 = 1;
                                }
                                if (var$5)
                                    break;
                            }
                            var$15 = var$15.$next3;
                        }
                    }
                    var$9 = var$15 === null ? null : var$15.$value0;
                    var$9 = var$9.$copy();
                    var$12 = var$8.$tagMap;
                    if (var$14 !== null)
                        var$9.$name = var$14;
                    else
                        var$9.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$12, var$14, var$9);
                }
                $var3.$stackTagCompound = var$8;
            }
        }
        $ptr = 1;
    case 1:
        $tmp = $par1Entity.$interactFirst($this);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            if (var$4 !== null && $par1Entity instanceof nms_EntityLivingBase) {
                if (!$this.$capabilities.$isCreativeMode)
                    $var3 = var$4;
                $par1Entity = $par1Entity;
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[$var3.$itemID].$itemInteractionForEntity($var3, $this, $par1Entity)) {
                    if ($var3.$stackSize <= 0 && !$this.$capabilities.$isCreativeMode) {
                        $var3 = $this.$inventory0;
                        var$5 = $var3.$currentItem;
                        $par1Entity = null;
                        var$10 = $var3.$mainInventory;
                        var$3 = var$10.data.length;
                        if (var$5 >= var$3) {
                            var$5 = var$5 - var$3 | 0;
                            var$10 = $var3.$armorInventory;
                        }
                        var$10.data[var$5] = $par1Entity;
                    }
                    return 1;
                }
            }
            return 0;
        }
        if (var$4 !== null) {
            var$9 = $this.$inventory0;
            var$6 = var$9.$currentItem;
            if (var$4 === (var$6 < 9 && var$6 >= 0 ? var$9.$mainInventory.data[var$6] : null)) {
                var$5 = var$4.$stackSize;
                if (!(var$5 <= 0 && !$this.$capabilities.$isCreativeMode)) {
                    var$3 = $var3.$stackSize;
                    if (var$5 < var$3 && $this.$capabilities.$isCreativeMode)
                        var$4.$stackSize = var$3;
                } else {
                    $par1Entity = null;
                    var$10 = var$9.$mainInventory;
                    var$5 = var$10.data.length;
                    if (var$6 >= var$5) {
                        var$6 = var$6 - var$5 | 0;
                        var$10 = var$9.$armorInventory;
                    }
                    var$10.data[var$6] = $par1Entity;
                }
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityPlayer_getYOffset = $this => {
    return $this.$yOffset - 0.5;
},
nms_EntityPlayer_attackTargetEntityWithCurrentItem = ($this, $par1Entity) => {
    let $var5, var$3, $var2, $var3, $var4, var$7, $var11, var$9, var$10, var$11, var$12, var$13, $var6, $var8, $var7, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, var$29, var$30, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9
        = $thread.pop();$var11 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var5 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1Entity.$canAttackWithItem())
            return;
        $ptr = 1;
    case 1:
        a: {
            $tmp = $par1Entity.$hitByEntity($this);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if (!$var5) {
                var$3 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_attackDamage);
                if (var$3.$field_111133_g) {
                    var$3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$3);
                    var$3.$field_111133_g = 0;
                }
                $var2 = var$3.$field_111139_h;
                $var3 = 0;
                $var4 = 0.0;
                var$7 = $par1Entity instanceof nms_EntityLivingBase;
                if (var$7) {
                    var$3 = $par1Entity;
                    nms_EnchantmentHelper_$callClinit();
                    $var11 = nms_EnchantmentHelper_enchantmentModifierLiving;
                    $var11.$livingModifier = 0.0;
                    $var11.$entityLiving = var$3;
                    var$3 = $this.$inventory0;
                    var$9 = var$3.$currentItem;
                    nms_EnchantmentHelper_applyEnchantmentModifier($var11, var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null);
                    $var4 = nms_EnchantmentHelper_enchantmentModifierLiving.$livingModifier;
                    nms_Enchantment_$callClinit();
                    $var5 = nms_Enchantment_knockback.$effectId;
                    var$3 = $this.$inventory0;
                    var$10 = var$3.$currentItem;
                    $var3 = $var3 + nms_EnchantmentHelper_getEnchantmentLevel($var5, var$10 < 9 && var$10 >= 0 ? var$3.$mainInventory.data[var$10] : null) | 0;
                }
                var$3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$11 = jl_Integer_integerCache.data[128];
                if (var$11 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$10 = var$11.$value;
                    var$12 = var$3.$elementData.data;
                    var$3 = var$12[var$10 & (var$12.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$10) {
                            $var11 = var$3.$key;
                            if (var$11 !== $var11 && !jl_Integer_equals(var$11, $var11) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$3 = var$3 === null ? null : var$3.$value0;
                if (!(var$3.$watchedObject.$value1 & 8) ? 0 : 1)
                    $var3 = $var3 + 1 | 0;
                var$9 = $rt_compare($var2, 0.0);
                if (var$9 > 0)
                    break a;
                if ($var4 > 0.0)
                    break a;
            }
            return;
        }
        if ($this.$fallDistance > 0.0 && !$this.$onGround) {
            $ptr = 2;
            continue main;
        }
        $var5 = 0;
        if ($var5 && var$9 > 0)
            $var2 = $var2 * 1.5;
        var$13 = $var2 + $var4;
        $var6 = 0;
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        var$9 = nms_Enchantment_fireAspect.$effectId;
        var$3 = $this.$inventory0;
        $var8 = var$3.$currentItem;
        $var7 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, $var8 < 9 && $var8 >= 0 ? var$3.$mainInventory.data[$var8] : null);
        if (var$7 && $var7 > 0 && !$par1Entity.$isBurning()) {
            $var6 = 1;
            var$9 = 20;
            var$10 = nms_Enchantment_fireProtection.$effectId;
            var$12 = $par1Entity.$getLastActiveItems();
            if (var$12 === null)
                $var8 = 0;
            else {
                var$12 = var$12.data;
                $var8 = 0;
                var$17 = var$12.length;
                var$18 = 0;
                while (var$18 < var$17) {
                    var$19 = nms_EnchantmentHelper_getEnchantmentLevel(var$10, var$12[var$18]);
                    if (var$19 > $var8)
                        $var8 = var$19;
                    var$18 = var$18 + 1 | 0;
                }
            }
            if ($var8 > 0) {
                $var2 = 20.0 * $var8 * 0.15000000596046448;
                var$10 = $var2 | 0;
                if ($var2 < var$10)
                    var$10 = var$10 - 1 | 0;
                var$9 = var$9 - var$10 | 0;
            }
            if ($par1Entity.$fire < var$9)
                $par1Entity.$fire = var$9;
        }
        var$3 = new nms_EntityDamageSource;
        var$3.$hungerDamage = 0.30000001192092896;
        var$3.$damageType = $rt_s(270);
        var$3.$damageSourceEntity = $this;
        $ptr = 3;
        continue main;
    case 2:
        a: {
            $tmp = nms_EntityLivingBase_isOnLadder($this);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if (!$var5 && !$this.$inWater) {
                nms_Potion_$callClinit();
                if (!nms_EntityLivingBase_isPotionActive0($this, nms_Potion_blindness) && $this.$ridingEntity === null && var$7) {
                    $var5 = 1;
                    break a;
                }
            }
            $var5 = 0;
        }
        if ($var5 && var$9 > 0)
            $var2 = $var2 * 1.5;
        var$13 = $var2 + $var4;
        $var6 = 0;
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        var$9 = nms_Enchantment_fireAspect.$effectId;
        var$3 = $this.$inventory0;
        $var8 = var$3.$currentItem;
        $var7 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, $var8 < 9 && $var8 >= 0 ? var$3.$mainInventory.data[$var8] : null);
        if (var$7 && $var7 > 0 && !$par1Entity.$isBurning()) {
            $var6 = 1;
            var$9 = 20;
            var$10 = nms_Enchantment_fireProtection.$effectId;
            var$12 = $par1Entity.$getLastActiveItems();
            if (var$12 === null)
                $var8 = 0;
            else {
                var$12 = var$12.data;
                $var8 = 0;
                var$17 = var$12.length;
                var$18 = 0;
                while (var$18 < var$17) {
                    var$19 = nms_EnchantmentHelper_getEnchantmentLevel(var$10, var$12[var$18]);
                    if (var$19 > $var8)
                        $var8 = var$19;
                    var$18 = var$18 + 1 | 0;
                }
            }
            if ($var8 > 0) {
                $var2 = 20.0 * $var8 * 0.15000000596046448;
                var$10 = $var2 | 0;
                if ($var2 < var$10)
                    var$10 = var$10 - 1 | 0;
                var$9 = var$9 - var$10 | 0;
            }
            if ($par1Entity.$fire < var$9)
                $par1Entity.$fire = var$9;
        }
        var$3 = new nms_EntityDamageSource;
        var$3.$hungerDamage = 0.30000001192092896;
        var$3.$damageType = $rt_s(270);
        var$3.$damageSourceEntity = $this;
        $ptr = 3;
    case 3:
        a: {
            $tmp = $par1Entity.$attackEntityFrom(var$3, var$13);
            if ($rt_suspending()) {
                break main;
            }
            $var8 = $tmp;
            if ($var8) {
                if ($var3 <= 0) {
                    if ($var5) {
                        var$11 = $this.$worldObj.$theEntityTracker;
                        var$3 = new nms_Packet18Animation;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$3.$entityId1 = $par1Entity.$entityId;
                        var$3.$animate = 6;
                        $var11 = var$11.$trackedEntityIDs;
                        $var5 = $this.$entityId;
                        var$9 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
                        $var3 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
                        var$12 = $var11.$slots.data;
                        $var11 = var$12[$var3 & (var$12.length - 1 | 0)];
                        b: {
                            while ($var11 !== null) {
                                if ($var11.$hashEntry == $var5) {
                                    $var11 = $var11.$valueEntry;
                                    break b;
                                }
                                $var11 = $var11.$nextEntry0;
                            }
                            $var11 = null;
                        }
                        $var11 = $var11;
                        if ($var11 !== null) {
                            var$11 = $var11.$trackingPlayers.$backingMap;
                            if (var$11.$cachedKeySet === null) {
                                var$20 = new ju_HashMap$1;
                                var$20.$this$0 = var$11;
                                ju_AbstractCollection__init_(var$20);
                                var$11.$cachedKeySet = var$20;
                            }
                            var$21 = var$11.$cachedKeySet.$iterator();
                            var$9 = var$3 instanceof nms_Packet3Chat;
                            var$20 = var$3;
                            while (var$21.$hasNext()) {
                                c: {
                                    var$11 = (var$21.$next()).$playerNetServerHandler;
                                    if (var$9) {
                                        var$10 = var$11.$playerEntity.$chatVisibility;
                                        if (var$10 == 2)
                                            break c;
                                        if (var$10 == 1 && !var$20.$isServer)
                                            break c;
                                    }
                                    try {
                                        var$11 = var$11.$netManager;
                                        $ptr = 10;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$11 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$22 = new otcic_JSStderrPrintStream;
                                        otcic_JsConsolePrintStream__init_(var$22);
                                        jl_System_errCache = var$22;
                                    }
                                    jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                                }
                            }
                            $var11 = $var11.$myEntity;
                            if ($var11 instanceof nms_EntityPlayerMP)
                                d: {
                                    $var11 = $var11.$playerNetServerHandler;
                                    if (var$9) {
                                        var$9 = $var11.$playerEntity.$chatVisibility;
                                        if (var$9 == 2)
                                            break d;
                                        if (var$9 == 1 && !var$20.$isServer)
                                            break d;
                                    }
                                    try {
                                        $var11 = $var11.$netManager;
                                        $ptr = 12;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$3 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var11 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = $var11;
                                    }
                                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                                }
                        }
                    }
                    if ($var4 > 0.0) {
                        var$11 = $this.$worldObj.$theEntityTracker;
                        var$3 = new nms_Packet18Animation;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$3.$entityId1 = $par1Entity.$entityId;
                        var$3.$animate = 7;
                        $var11 = var$11.$trackedEntityIDs;
                        $var5 = $this.$entityId;
                        var$9 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
                        $var3 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
                        var$12 = $var11.$slots.data;
                        $var11 = var$12[$var3 & (var$12.length - 1 | 0)];
                        e: {
                            while ($var11 !== null) {
                                if ($var11.$hashEntry == $var5) {
                                    $var11 = $var11.$valueEntry;
                                    break e;
                                }
                                $var11 = $var11.$nextEntry0;
                            }
                            $var11 = null;
                        }
                        $var11 = $var11;
                        if ($var11 !== null) {
                            var$11 = $var11.$trackingPlayers.$backingMap;
                            if (var$11.$cachedKeySet === null) {
                                var$20 = new ju_HashMap$1;
                                var$20.$this$0 = var$11;
                                ju_AbstractCollection__init_(var$20);
                                var$11.$cachedKeySet = var$20;
                            }
                            var$21 = var$11.$cachedKeySet.$iterator();
                            var$9 = var$3 instanceof nms_Packet3Chat;
                            var$20 = var$3;
                            while (var$21.$hasNext()) {
                                f: {
                                    var$11 = (var$21.$next()).$playerNetServerHandler;
                                    if (var$9) {
                                        var$10 = var$11.$playerEntity.$chatVisibility;
                                        if (var$10 == 2)
                                            break f;
                                        if (var$10 == 1 && !var$20.$isServer)
                                            break f;
                                    }
                                    try {
                                        var$11 = var$11.$netManager;
                                        $ptr = 11;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$11 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$22 = new otcic_JSStderrPrintStream;
                                        otcic_JsConsolePrintStream__init_(var$22);
                                        jl_System_errCache = var$22;
                                    }
                                    jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                                }
                            }
                            $var11 = $var11.$myEntity;
                            if ($var11 instanceof nms_EntityPlayerMP)
                                g: {
                                    $var11 = $var11.$playerNetServerHandler;
                                    if (var$9) {
                                        var$9 = $var11.$playerEntity.$chatVisibility;
                                        if (var$9 == 2)
                                            break g;
                                        if (var$9 == 1 && !var$20.$isServer)
                                            break g;
                                    }
                                    try {
                                        $var11 = $var11.$netManager;
                                        $ptr = 13;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$3 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var11 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = $var11;
                                    }
                                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                                }
                        }
                    }
                    if (var$13 >= 18.0) {
                        nms_AchievementList_$callClinit();
                        var$3 = nms_AchievementList_overkill;
                        if (var$3 !== null && !var$3.$isIndependent)
                            h: {
                                var$11 = $this.$playerNetServerHandler;
                                $var11 = new nms_Packet200Statistic;
                                var$9 = var$3.$statId;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                $var11.$statisticId = var$9;
                                $var11.$amount = 1;
                                if ($var11 instanceof nms_Packet3Chat) {
                                    var$3 = $var11;
                                    var$9 = var$11.$playerEntity.$chatVisibility;
                                    if (var$9 == 2)
                                        break h;
                                    if (var$9 == 1 && !var$3.$isServer)
                                        break h;
                                }
                                try {
                                    var$3 = var$11.$netManager;
                                    $ptr = 7;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$3 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $var11 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = $var11;
                                }
                                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                            }
                    }
                    if (!var$7)
                        $this.$lastAttacker = null;
                    else
                        $this.$lastAttacker = $par1Entity;
                    $this.$lastAttackerTime = $this.$ticksExisted;
                    if (!var$7)
                        break a;
                    var$3 = $par1Entity;
                    $var11 = $this.$rand;
                    $ptr = 6;
                    continue main;
                }
                var$23 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
                var$12 = nms_MathHelper_SIN_TABLE.data;
                var$23 = var$23 * 10430.3779296875;
                $var2 =  -var$12[(var$23 | 0) & 65535];
                var$24 = $var3;
                var$25 = $var2 * var$24 * 0.5;
                var$26 = 0.1;
                var$27 = var$12[(var$23 + 16384.0 | 0) & 65535] * var$24 * 0.5;
                $ptr = 4;
                continue main;
            }
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                i: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break i;
                        if (var$9 == 1 && !var$3.$isServer)
                            break i;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 4:
        $par1Entity.$addVelocity(var$25, var$26, var$27);
        if ($rt_suspending()) {
            break main;
        }
        $this.$motionX = $this.$motionX * 0.6;
        $this.$motionZ = $this.$motionZ * 0.6;
        nms_Entity_setFlag($this, 3, 0);
        var$20 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_movementSpeed);
        var$22 = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
        var$3 = var$20.$field_111135_e;
        if (var$22 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$28 = var$22.$mostSigBits;
            var$29 = var$22.$leastSigBits;
            var$30 = Long_xor(var$28, var$29);
            $var3 = Long_hi(var$30) ^ Long_lo(var$30);
            var$12 = var$3.$elementData.data;
            var$3 = var$12[$var3 & (var$12.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $var3) {
                    j: {
                        $var11 = var$3.$key;
                        if (var$22 !== $var11) {
                            if (null !== $var11 && $var11 instanceof nle_ProfileUUID) {
                                $var11 = $var11;
                                var$9 = Long_eq(var$28, $var11.$mostSigBits) && Long_eq(var$29, $var11.$leastSigBits) ? 1 : 0;
                            } else
                                var$9 = 0;
                            if (!var$9) {
                                var$9 = 0;
                                break j;
                            }
                        }
                        var$9 = 1;
                    }
                    if (var$9)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3 !== null)
            nms_ModifiableAttributeInstance_removeModifier(var$20, nms_EntityLivingBase_sprintingSpeedBoostModifier);
        if ($var5) {
            var$11 = $this.$worldObj.$theEntityTracker;
            var$3 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$entityId1 = $par1Entity.$entityId;
            var$3.$animate = 6;
            $var11 = var$11.$trackedEntityIDs;
            $var5 = $this.$entityId;
            var$9 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
            $var3 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
            var$12 = $var11.$slots.data;
            $var11 = var$12[$var3 & (var$12.length - 1 | 0)];
            k: {
                while ($var11 !== null) {
                    if ($var11.$hashEntry == $var5) {
                        $var11 = $var11.$valueEntry;
                        break k;
                    }
                    $var11 = $var11.$nextEntry0;
                }
                $var11 = null;
            }
            $var11 = $var11;
            if ($var11 !== null) {
                var$11 = $var11.$trackingPlayers.$backingMap;
                if (var$11.$cachedKeySet === null) {
                    var$20 = new ju_HashMap$1;
                    var$20.$this$0 = var$11;
                    ju_AbstractCollection__init_(var$20);
                    var$11.$cachedKeySet = var$20;
                }
                var$21 = var$11.$cachedKeySet.$iterator();
                var$9 = var$3 instanceof nms_Packet3Chat;
                var$20 = var$3;
                while (var$21.$hasNext()) {
                    l: {
                        var$11 = (var$21.$next()).$playerNetServerHandler;
                        if (var$9) {
                            var$10 = var$11.$playerEntity.$chatVisibility;
                            if (var$10 == 2)
                                break l;
                            if (var$10 == 1 && !var$20.$isServer)
                                break l;
                        }
                        try {
                            var$11 = var$11.$netManager;
                            $ptr = 10;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$22 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$22);
                            jl_System_errCache = var$22;
                        }
                        jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                    }
                }
                $var11 = $var11.$myEntity;
                if ($var11 instanceof nms_EntityPlayerMP)
                    m: {
                        $var11 = $var11.$playerNetServerHandler;
                        if (var$9) {
                            var$9 = $var11.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break m;
                            if (var$9 == 1 && !var$20.$isServer)
                                break m;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 12;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var11 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var11;
                        }
                        jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                    }
            }
        }
        if ($var4 > 0.0) {
            var$11 = $this.$worldObj.$theEntityTracker;
            var$3 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$entityId1 = $par1Entity.$entityId;
            var$3.$animate = 7;
            $var11 = var$11.$trackedEntityIDs;
            $var5 = $this.$entityId;
            var$9 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
            $var3 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
            var$12 = $var11.$slots.data;
            $var11 = var$12[$var3 & (var$12.length - 1 | 0)];
            n: {
                while ($var11 !== null) {
                    if ($var11.$hashEntry == $var5) {
                        $var11 = $var11.$valueEntry;
                        break n;
                    }
                    $var11 = $var11.$nextEntry0;
                }
                $var11 = null;
            }
            $var11 = $var11;
            if ($var11 !== null) {
                var$11 = $var11.$trackingPlayers.$backingMap;
                if (var$11.$cachedKeySet === null) {
                    var$20 = new ju_HashMap$1;
                    var$20.$this$0 = var$11;
                    ju_AbstractCollection__init_(var$20);
                    var$11.$cachedKeySet = var$20;
                }
                var$21 = var$11.$cachedKeySet.$iterator();
                var$9 = var$3 instanceof nms_Packet3Chat;
                var$20 = var$3;
                while (var$21.$hasNext()) {
                    o: {
                        var$11 = (var$21.$next()).$playerNetServerHandler;
                        if (var$9) {
                            var$10 = var$11.$playerEntity.$chatVisibility;
                            if (var$10 == 2)
                                break o;
                            if (var$10 == 1 && !var$20.$isServer)
                                break o;
                        }
                        try {
                            var$11 = var$11.$netManager;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$22 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$22);
                            jl_System_errCache = var$22;
                        }
                        jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                    }
                }
                $var11 = $var11.$myEntity;
                if ($var11 instanceof nms_EntityPlayerMP)
                    p: {
                        $var11 = $var11.$playerNetServerHandler;
                        if (var$9) {
                            var$9 = $var11.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break p;
                            if (var$9 == 1 && !var$20.$isServer)
                                break p;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 13;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var11 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var11;
                        }
                        jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                    }
            }
        }
        if (var$13 >= 18.0) {
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_overkill;
            if (var$3 !== null && !var$3.$isIndependent)
                q: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    var$9 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = var$9;
                    $var11.$amount = 1;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break q;
                        if (var$9 == 1 && !var$3.$isServer)
                            break q;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
        }
        if (!var$7)
            $this.$lastAttacker = null;
        else
            $this.$lastAttacker = $par1Entity;
        $this.$lastAttackerTime = $this.$ticksExisted;
        if (var$7) {
            var$3 = $par1Entity;
            $var11 = $this.$rand;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                r: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break r;
                        if (var$9 == 1 && !var$3.$isServer)
                            break r;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 5:
        $tmp = var$11.$hitEntity(var$3, $var11, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5) {
            nms_StatList_$callClinit();
            $var11 = nms_StatList_objectUseStats.data[var$3.$itemID];
            if ($var11 !== null && !$var11.$isIndependent)
                s: {
                    var$20 = $this.$playerNetServerHandler;
                    var$11 = new nms_Packet200Statistic;
                    var$9 = $var11.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$11.$statisticId = var$9;
                    var$11.$amount = 1;
                    if (var$11 instanceof nms_Packet3Chat) {
                        $var11 = var$11;
                        var$9 = var$20.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break s;
                        if (var$9 == 1 && !$var11.$isServer)
                            break s;
                    }
                    try {
                        $var11 = var$20.$netManager;
                        $ptr = 9;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$11 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$11, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$11;
                    }
                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                }
        }
        if (var$3.$stackSize <= 0) {
            $var11 = $this.$inventory0;
            $var5 = $var11.$currentItem;
            var$3 = null;
            var$12 = $var11.$mainInventory;
            var$9 = var$12.data.length;
            if ($var5 >= var$9) {
                $var5 = $var5 - var$9 | 0;
                var$12 = $var11.$armorInventory;
            }
            var$12.data[$var5] = var$3;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                t: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break t;
                        if (var$9 == 1 && !var$3.$isServer)
                            break t;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 6:
        nms_EnchantmentThorns_func_92096_a($this, var$3, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                t: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break t;
                        if (var$9 == 1 && !var$3.$isServer)
                            break t;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 7:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var11);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var11 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var11;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        if (!var$7)
            $this.$lastAttacker = null;
        else
            $this.$lastAttacker = $par1Entity;
        $this.$lastAttackerTime = $this.$ticksExisted;
        if (var$7) {
            var$3 = $par1Entity;
            $var11 = $this.$rand;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                u: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break u;
                        if (var$9 == 1 && !var$3.$isServer)
                            break u;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 8:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var11);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var11 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var11, var$11);
                $var11.$sb = jl_StringBuilder__init_();
                $var11.$buffer0 = $rt_createCharArray(32);
                $var11.$autoFlush = 0;
                $var11.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var11;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        if ($var7 > 0 && $var8) {
            $var5 = ($var7 * 4 | 0) * 20 | 0;
            var$9 = nms_Enchantment_fireProtection.$effectId;
            var$12 = $par1Entity.$getLastActiveItems();
            if (var$12 === null)
                var$10 = 0;
            else {
                var$12 = var$12.data;
                var$10 = 0;
                $var3 = var$12.length;
                var$7 = 0;
                while (var$7 < $var3) {
                    $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                    if ($var8 > var$10)
                        var$10 = $var8;
                    var$7 = var$7 + 1 | 0;
                }
            }
            if (var$10 > 0) {
                $var2 = $var5 * var$10 * 0.15000000596046448;
                var$9 = $var2 | 0;
                if ($var2 < var$9)
                    var$9 = var$9 - 1 | 0;
                $var5 = $var5 - var$9 | 0;
            }
            if ($par1Entity.$fire < $var5)
                $par1Entity.$fire = $var5;
        } else if ($var6)
            $par1Entity.$fire = 0;
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 9:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$11 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$11, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$11;
            }
            jl_Throwable_printStackTrace($var11, jl_System_errCache);
        }
        if (var$3.$stackSize <= 0) {
            $var11 = $this.$inventory0;
            $var5 = $var11.$currentItem;
            var$3 = null;
            var$12 = $var11.$mainInventory;
            var$9 = var$12.data.length;
            if ($var5 >= var$9) {
                $var5 = $var5 - var$9 | 0;
                var$12 = $var11.$armorInventory;
            }
            var$12.data[$var5] = var$3;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                v: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break v;
                        if (var$9 == 1 && !var$3.$isServer)
                            break v;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 10:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$11, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$22 = jl_System_errCache;
            if (var$22 === null) {
                var$22 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$22);
                jl_System_errCache = var$22;
            }
            var$22 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$22);
        }
        b: while (true) {
            while (true) {
                if (!var$21.$hasNext())
                    break b;
                var$11 = (var$21.$next()).$playerNetServerHandler;
                if (!var$9)
                    break;
                var$10 = var$11.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$20.$isServer)
                    break;
            }
            try {
                var$11 = var$11.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$22 = jl_System_errCache;
            if (var$22 === null) {
                var$22 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$22);
                jl_System_errCache = var$22;
            }
            var$22 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$22);
        }
        $var11 = $var11.$myEntity;
        if ($var11 instanceof nms_EntityPlayerMP)
            w: {
                $var11 = $var11.$playerNetServerHandler;
                if (var$9) {
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break w;
                    if (var$9 == 1 && !var$20.$isServer)
                        break w;
                }
                try {
                    $var11 = $var11.$netManager;
                    $ptr = 12;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var11 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var11;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
            }
        if ($var4 > 0.0) {
            var$11 = $this.$worldObj.$theEntityTracker;
            var$3 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$entityId1 = $par1Entity.$entityId;
            var$3.$animate = 7;
            $var11 = var$11.$trackedEntityIDs;
            $var5 = $this.$entityId;
            var$9 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
            $var3 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
            var$12 = $var11.$slots.data;
            $var11 = var$12[$var3 & (var$12.length - 1 | 0)];
            x: {
                while ($var11 !== null) {
                    if ($var11.$hashEntry == $var5) {
                        $var11 = $var11.$valueEntry;
                        break x;
                    }
                    $var11 = $var11.$nextEntry0;
                }
                $var11 = null;
            }
            $var11 = $var11;
            if ($var11 !== null) {
                var$11 = $var11.$trackingPlayers.$backingMap;
                if (var$11.$cachedKeySet === null) {
                    var$20 = new ju_HashMap$1;
                    var$20.$this$0 = var$11;
                    ju_AbstractCollection__init_(var$20);
                    var$11.$cachedKeySet = var$20;
                }
                var$21 = var$11.$cachedKeySet.$iterator();
                var$9 = var$3 instanceof nms_Packet3Chat;
                var$20 = var$3;
                while (var$21.$hasNext()) {
                    y: {
                        var$11 = (var$21.$next()).$playerNetServerHandler;
                        if (var$9) {
                            var$10 = var$11.$playerEntity.$chatVisibility;
                            if (var$10 == 2)
                                break y;
                            if (var$10 == 1 && !var$20.$isServer)
                                break y;
                        }
                        try {
                            var$11 = var$11.$netManager;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$22 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$22);
                            jl_System_errCache = var$22;
                        }
                        jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                    }
                }
                $var11 = $var11.$myEntity;
                if ($var11 instanceof nms_EntityPlayerMP)
                    z: {
                        $var11 = $var11.$playerNetServerHandler;
                        if (var$9) {
                            var$9 = $var11.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break z;
                            if (var$9 == 1 && !var$20.$isServer)
                                break z;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 13;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var11 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var11;
                        }
                        jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                    }
            }
        }
        if (var$13 >= 18.0) {
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_overkill;
            if (var$3 !== null && !var$3.$isIndependent)
                n: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    var$9 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = var$9;
                    $var11.$amount = 1;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break n;
                        if (var$9 == 1 && !var$3.$isServer)
                            break n;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
        }
        if (!var$7)
            $this.$lastAttacker = null;
        else
            $this.$lastAttacker = $par1Entity;
        $this.$lastAttackerTime = $this.$ticksExisted;
        if (var$7) {
            var$3 = $par1Entity;
            $var11 = $this.$rand;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                ba: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break ba;
                        if (var$9 == 1 && !var$3.$isServer)
                            break ba;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 11:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$11, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$22 = jl_System_errCache;
            if (var$22 === null) {
                var$22 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$22);
                jl_System_errCache = var$22;
            }
            var$22 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$22);
        }
        b: while (true) {
            while (true) {
                if (!var$21.$hasNext())
                    break b;
                var$11 = (var$21.$next()).$playerNetServerHandler;
                if (!var$9)
                    break;
                var$10 = var$11.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$20.$isServer)
                    break;
            }
            try {
                var$11 = var$11.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$22 = jl_System_errCache;
            if (var$22 === null) {
                var$22 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$22);
                jl_System_errCache = var$22;
            }
            var$22 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$22);
        }
        $var11 = $var11.$myEntity;
        if ($var11 instanceof nms_EntityPlayerMP)
            w: {
                $var11 = $var11.$playerNetServerHandler;
                if (var$9) {
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break w;
                    if (var$9 == 1 && !var$20.$isServer)
                        break w;
                }
                try {
                    $var11 = $var11.$netManager;
                    $ptr = 13;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var11 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var11;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
            }
        if (var$13 >= 18.0) {
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_overkill;
            if (var$3 !== null && !var$3.$isIndependent)
                k: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    var$9 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = var$9;
                    $var11.$amount = 1;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break k;
                        if (var$9 == 1 && !var$3.$isServer)
                            break k;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
        }
        if (!var$7)
            $this.$lastAttacker = null;
        else
            $this.$lastAttacker = $par1Entity;
        $this.$lastAttackerTime = $this.$ticksExisted;
        if (var$7) {
            var$3 = $par1Entity;
            $var11 = $this.$rand;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                bb: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break bb;
                        if (var$9 == 1 && !var$3.$isServer)
                            break bb;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 12:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var11 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var11;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        if ($var4 > 0.0) {
            var$11 = $this.$worldObj.$theEntityTracker;
            var$3 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$entityId1 = $par1Entity.$entityId;
            var$3.$animate = 7;
            $var11 = var$11.$trackedEntityIDs;
            $var5 = $this.$entityId;
            var$9 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
            $var3 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
            var$12 = $var11.$slots.data;
            $var11 = var$12[$var3 & (var$12.length - 1 | 0)];
            bc: {
                while ($var11 !== null) {
                    if ($var11.$hashEntry == $var5) {
                        $var11 = $var11.$valueEntry;
                        break bc;
                    }
                    $var11 = $var11.$nextEntry0;
                }
                $var11 = null;
            }
            $var11 = $var11;
            if ($var11 !== null) {
                var$11 = $var11.$trackingPlayers.$backingMap;
                if (var$11.$cachedKeySet === null) {
                    var$20 = new ju_HashMap$1;
                    var$20.$this$0 = var$11;
                    ju_AbstractCollection__init_(var$20);
                    var$11.$cachedKeySet = var$20;
                }
                var$21 = var$11.$cachedKeySet.$iterator();
                var$9 = var$3 instanceof nms_Packet3Chat;
                var$20 = var$3;
                while (var$21.$hasNext()) {
                    w: {
                        var$11 = (var$21.$next()).$playerNetServerHandler;
                        if (var$9) {
                            var$10 = var$11.$playerEntity.$chatVisibility;
                            if (var$10 == 2)
                                break w;
                            if (var$10 == 1 && !var$20.$isServer)
                                break w;
                        }
                        try {
                            var$11 = var$11.$netManager;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$22 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$22);
                            jl_System_errCache = var$22;
                        }
                        jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                    }
                }
                $var11 = $var11.$myEntity;
                if ($var11 instanceof nms_EntityPlayerMP)
                    x: {
                        $var11 = $var11.$playerNetServerHandler;
                        if (var$9) {
                            var$9 = $var11.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break x;
                            if (var$9 == 1 && !var$20.$isServer)
                                break x;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 13;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var11 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var11;
                        }
                        jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                    }
            }
        }
        if (var$13 >= 18.0) {
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_overkill;
            if (var$3 !== null && !var$3.$isIndependent)
                y: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    var$9 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = var$9;
                    $var11.$amount = 1;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break y;
                        if (var$9 == 1 && !var$3.$isServer)
                            break y;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
        }
        if (!var$7)
            $this.$lastAttacker = null;
        else
            $this.$lastAttacker = $par1Entity;
        $this.$lastAttackerTime = $this.$ticksExisted;
        if (var$7) {
            var$3 = $par1Entity;
            $var11 = $this.$rand;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                bd: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break bd;
                        if (var$9 == 1 && !var$3.$isServer)
                            break bd;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    case 13:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var11 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var11, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var11;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        if (var$13 >= 18.0) {
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_overkill;
            if (var$3 !== null && !var$3.$isIndependent)
                j: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    var$9 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = var$9;
                    $var11.$amount = 1;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break j;
                        if (var$9 == 1 && !var$3.$isServer)
                            break j;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var11, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
        }
        if (!var$7)
            $this.$lastAttacker = null;
        else
            $this.$lastAttacker = $par1Entity;
        $this.$lastAttackerTime = $this.$ticksExisted;
        if (var$7) {
            var$3 = $par1Entity;
            $var11 = $this.$rand;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$inventory0;
        var$9 = var$3.$currentItem;
        var$3 = var$9 < 9 && var$9 >= 0 ? var$3.$mainInventory.data[var$9] : null;
        if (!($par1Entity instanceof nms_EntityDragonPart))
            $var11 = $par1Entity;
        else {
            $var11 = $par1Entity.$entityDragonObj;
            if ($var11 === null)
                $var11 = $par1Entity;
            else if (!($var11 instanceof nms_EntityLivingBase))
                $var11 = $par1Entity;
        }
        if (var$3 !== null && $var11 instanceof nms_EntityLivingBase) {
            $var11 = $var11;
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[var$3.$itemID];
            $ptr = 5;
            continue main;
        }
        if (var$7) {
            nms_StatList_$callClinit();
            var$3 = nms_StatList_damageDealtStat;
            $var2 = var$13 * 10.0;
            var$9 = $var2 + jl_Math_sign0($var2) * 0.5 | 0;
            if (var$3 !== null && !var$3.$isIndependent)
                be: {
                    var$11 = $this.$playerNetServerHandler;
                    $var11 = new nms_Packet200Statistic;
                    $var5 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11.$statisticId = $var5;
                    $var11.$amount = var$9;
                    if ($var11 instanceof nms_Packet3Chat) {
                        var$3 = $var11;
                        var$9 = var$11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break be;
                        if (var$9 == 1 && !var$3.$isServer)
                            break be;
                    }
                    try {
                        var$3 = var$11.$netManager;
                        $ptr = 8;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var11 = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var11, var$11);
                        $var11.$sb = jl_StringBuilder__init_();
                        $var11.$buffer0 = $rt_createCharArray(32);
                        $var11.$autoFlush = 0;
                        $var11.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var11;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            if ($var7 > 0 && $var8) {
                $var5 = ($var7 * 4 | 0) * 20 | 0;
                var$9 = nms_Enchantment_fireProtection.$effectId;
                var$12 = $par1Entity.$getLastActiveItems();
                if (var$12 === null)
                    var$10 = 0;
                else {
                    var$12 = var$12.data;
                    var$10 = 0;
                    $var3 = var$12.length;
                    var$7 = 0;
                    while (var$7 < $var3) {
                        $var8 = nms_EnchantmentHelper_getEnchantmentLevel(var$9, var$12[var$7]);
                        if ($var8 > var$10)
                            var$10 = $var8;
                        var$7 = var$7 + 1 | 0;
                    }
                }
                if (var$10 > 0) {
                    $var2 = $var5 * var$10 * 0.15000000596046448;
                    var$9 = $var2 | 0;
                    if ($var2 < var$9)
                        var$9 = var$9 - 1 | 0;
                    $var5 = $var5 - var$9 | 0;
                }
                if ($par1Entity.$fire < $var5)
                    $par1Entity.$fire = $var5;
            } else if ($var6)
                $par1Entity.$fire = 0;
        }
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            $par1Entity = $this.$foodStats;
            $par1Entity.$foodExhaustionLevel = jl_Math_minImpl($par1Entity.$foodExhaustionLevel + 0.30000001192092896, 40.0);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var5, var$3, $var2, $var3, $var4, var$7, $var11, var$9, var$10, var$11, var$12, var$13, $var6, $var8, $var7, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, var$29, var$30, $ptr);
},
nms_EntityPlayer_setDead = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$isDead = 1;
        var$1 = $this.$inventoryContainer;
        $ptr = 1;
    case 1:
        nms_ContainerPlayer_onContainerClosed(var$1, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$openContainer;
        if (var$1 === null)
            return;
        $ptr = 2;
    case 2:
        var$1.$onContainerClosed($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityPlayer_isEntityInsideOpaqueBlock = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$sleeping)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_isEntityInsideOpaqueBlock($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        return !var$1 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityPlayer_sleepInBedAt = ($this, $par1, $par2, $par3) => {
    let $var8, $var10, $var7, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, var$17, var$18, $var5, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var5 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var9 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();$var7 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote) {
            if ($this.$ridingEntity === null ? 0 : 1) {
                $var8 = null;
                $ptr = 2;
                continue main;
            }
            $var10 = 0.20000000298023224;
            $var7 = 0.20000000298023224;
            $ptr = 1;
            continue main;
        }
        if (!$this.$sleeping && nms_EntityLivingBase_isEntityAlive($this)) {
            if (!$this.$worldObj.$provider.$isSurfaceWorld())
                return nms_EnumStatus_NOT_POSSIBLE_HERE;
            if ($this.$worldObj.$skylightSubtracted >= 4 ? 0 : 1)
                return nms_EnumStatus_NOT_POSSIBLE_NOW;
            $var4 = $this.$posX;
            var$8 = $par1;
            if (jl_Math_absImpl($var4 - var$8) <= 3.0) {
                $var4 = $this.$posY;
                var$9 = $par2;
                if (jl_Math_absImpl($var4 - var$9) <= 2.0) {
                    $var4 = $this.$posZ;
                    var$10 = $par3;
                    if (jl_Math_absImpl($var4 - var$10) <= 3.0) {
                        $var8 = $this.$worldObj;
                        var$11 = $rt_cls(nms_EntityMob);
                        var$12 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                        var$13 = var$8 - 8.0;
                        var$14 = var$9 - 5.0;
                        var$15 = var$10 - 8.0;
                        var$8 = var$8 + 8.0;
                        var$9 = var$9 + 5.0;
                        $var4 = var$10 + 8.0;
                        $var9 = var$12.$nextPoolIndex;
                        var$17 = var$12.$listAABB;
                        var$18 = var$17.$size0;
                        $var5 = $rt_compare($var9, var$18);
                        if ($var5 >= 0) {
                            var$20 = new nms_AxisAlignedBB;
                            var$20.$minX0 = var$13;
                            var$20.$minY0 = var$14;
                            var$20.$minZ0 = var$15;
                            var$20.$maxX0 = var$8;
                            var$20.$maxY = var$9;
                            var$20.$maxZ0 = $var4;
                            ju_ArrayList_ensureCapacity(var$17, var$18 + 1 | 0);
                            var$21 = var$17.$array.data;
                            $var5 = var$17.$size0;
                            var$17.$size0 = $var5 + 1 | 0;
                            var$21[$var5] = var$20;
                            var$17.$modCount = var$17.$modCount + 1 | 0;
                        } else if ($var9 >= 0 && $var5 < 0) {
                            var$20 = var$17.$array.data[$var9];
                            var$20.$minX0 = var$13;
                            var$20.$minY0 = var$14;
                            var$20.$minZ0 = var$15;
                            var$20.$maxX0 = var$8;
                            var$20.$maxY = var$9;
                            var$20.$maxZ0 = $var4;
                        } else {
                            $var8 = new jl_IndexOutOfBoundsException;
                            $var8.$suppressionEnabled = 1;
                            $var8.$writableStackTrace = 1;
                            $rt_throw($var8);
                        }
                        var$12.$nextPoolIndex = var$12.$nextPoolIndex + 1 | 0;
                        var$17 = null;
                        $ptr = 4;
                        continue main;
                    }
                }
            }
            return nms_EnumStatus_TOO_FAR_AWAY;
        }
        return nms_EnumStatus_OTHER_PROBLEM;
    case 1:
        nms_Entity_setSize($this, $var10, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $this.$yOffset = 0.20000000298023224;
        $var8 = $this.$worldObj;
        if (!($par2 >= 0 && $par2 < 256 ? nms_World_chunkExists($var8, $par1 >> 4, $par3 >> 4) : 0)) {
            nms_Entity_setPosition($this, $par1 + 0.5, $par2 + 0.9375, $par3 + 0.5);
            $this.$sleeping = 1;
            $this.$sleepTimer = 0;
            $var8 = new nms_ChunkCoordinates;
            $var8.$posX0 = $par1;
            $var8.$posY0 = $par2;
            $var8.$posZ0 = $par3;
            $this.$playerLocation = $var8;
            $this.$motionY = 0.0;
            $this.$motionZ = 0.0;
            $this.$motionX = 0.0;
            $var8 = $this.$worldObj;
            if (!$var8.$isRemote)
                nms_WorldServer_updateAllPlayersSleepingFlag($var8);
            return nms_EnumStatus_OK;
        }
        $var8 = $this.$worldObj;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityPlayerMP_mountEntity($this, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 0.20000000298023224;
        $var7 = 0.20000000298023224;
        $ptr = 1;
        continue main;
    case 3:
        a: {
            $tmp = nms_World_getBlockMetadata($var8, $par1, $par2, $par3);
            if ($rt_suspending()) {
                break main;
            }
            $var9 = $tmp;
            $var5 = $var9 & 3;
            $var10 = 0.5;
            $var7 = 0.5;
            switch ($var5) {
                case 0:
                    $var7 = 0.8999999761581421;
                    break a;
                case 1:
                    $var10 = 0.10000000149011612;
                    break a;
                case 2:
                    $var7 = 0.10000000149011612;
                    break a;
                case 3:
                    $var10 = 0.8999999761581421;
                    break a;
                default:
            }
        }
        b: {
            $this.$field_71079_bU = 0.0;
            $this.$field_71089_bV = 0.0;
            switch ($var5) {
                case 0:
                    break;
                case 1:
                    $this.$field_71079_bU = 1.7999999523162842;
                    break b;
                case 2:
                    $this.$field_71089_bV = 1.7999999523162842;
                    break b;
                case 3:
                    $this.$field_71079_bU = (-1.7999999523162842);
                    break b;
                default:
                    break b;
            }
            $this.$field_71089_bV = (-1.7999999523162842);
        }
        nms_Entity_setPosition($this, $par1 + $var10, $par2 + 0.9375, $par3 + $var7);
        $this.$sleeping = 1;
        $this.$sleepTimer = 0;
        $var8 = new nms_ChunkCoordinates;
        $var8.$posX0 = $par1;
        $var8.$posY0 = $par2;
        $var8.$posZ0 = $par3;
        $this.$playerLocation = $var8;
        $this.$motionY = 0.0;
        $this.$motionZ = 0.0;
        $this.$motionX = 0.0;
        $var8 = $this.$worldObj;
        if (!$var8.$isRemote)
            nms_WorldServer_updateAllPlayersSleepingFlag($var8);
        return nms_EnumStatus_OK;
    case 4:
        $tmp = nms_World_selectEntitiesWithinAABB($var8, var$11, var$20, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!($var8.$size0 ? 0 : 1))
            return nms_EnumStatus_NOT_SAFE;
        if ($this.$ridingEntity === null ? 0 : 1) {
            $var8 = null;
            $ptr = 2;
            continue main;
        }
        $var10 = 0.20000000298023224;
        $var7 = 0.20000000298023224;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var8, $var10, $var7, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var9, var$17, var$18, $var5, var$20, var$21, $ptr);
},
nms_EntityPlayer_wakeUpPlayer = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 0.6000000238418579;
        var$5 = 1.7999999523162842;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$yOffset = 0.0;
        $var4 = $this.$playerLocation;
        if ($var4 === null) {
            $this.$sleeping = 0;
            var$7 = $this.$worldObj;
            if (!var$7.$isRemote && $par2)
                nms_WorldServer_updateAllPlayersSleepingFlag(var$7);
            if (!$par1)
                $this.$sleepTimer = 100;
            else
                $this.$sleepTimer = 0;
            if ($par3) {
                var$7 = $this.$playerLocation;
                if (var$7 === null) {
                    $this.$spawnChunk = null;
                    $this.$spawnForced = 0;
                } else {
                    $var4 = new nms_ChunkCoordinates;
                    $var4.$posX0 = var$7.$posX0;
                    $var4.$posY0 = var$7.$posY0;
                    $var4.$posZ0 = var$7.$posZ0;
                    $this.$spawnChunk = $var4;
                    $this.$spawnForced = 0;
                }
            }
            return;
        }
        var$7 = $this.$worldObj;
        var$8 = $var4.$posX0;
        var$9 = $var4.$posY0;
        var$10 = $var4.$posZ0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$7, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        if (var$8 != nms_Block_bed.$blockID) {
            $this.$sleeping = 0;
            var$7 = $this.$worldObj;
            if (!var$7.$isRemote && $par2)
                nms_WorldServer_updateAllPlayersSleepingFlag(var$7);
            if (!$par1)
                $this.$sleepTimer = 100;
            else
                $this.$sleepTimer = 0;
            if ($par3) {
                var$7 = $this.$playerLocation;
                if (var$7 === null) {
                    $this.$spawnChunk = null;
                    $this.$spawnForced = 0;
                } else {
                    $var4 = new nms_ChunkCoordinates;
                    $var4.$posX0 = var$7.$posX0;
                    $var4.$posY0 = var$7.$posY0;
                    $var4.$posZ0 = var$7.$posZ0;
                    $this.$spawnChunk = $var4;
                    $this.$spawnForced = 0;
                }
            }
            return;
        }
        var$7 = $this.$worldObj;
        var$8 = $var4.$posX0;
        var$9 = $var4.$posY0;
        var$10 = $var4.$posZ0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata(var$7, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$12 = var$11 & (-5);
        var$11 = 4;
        $ptr = 4;
    case 4:
        nms_World_setBlockMetadataWithNotify(var$7, var$8, var$9, var$10, var$12, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$worldObj;
        var$8 = $var4.$posX0;
        var$9 = $var4.$posY0;
        var$10 = $var4.$posZ0;
        var$11 = 0;
        $ptr = 5;
    case 5:
        $tmp = nms_BlockBed_getNearestEmptyChunkCoordinates(var$7, var$8, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 === null) {
            var$7 = new nms_ChunkCoordinates;
            var$8 = $var4.$posX0;
            var$9 = $var4.$posY0 + 1 | 0;
            var$10 = $var4.$posZ0;
            var$7.$posX0 = var$8;
            var$7.$posY0 = var$9;
            var$7.$posZ0 = var$10;
        }
        nms_Entity_setPosition($this, var$7.$posX0 + 0.5, var$7.$posY0 + $this.$yOffset + 0.10000000149011612, var$7.$posZ0 + 0.5);
        $this.$sleeping = 0;
        var$7 = $this.$worldObj;
        if (!var$7.$isRemote && $par2)
            nms_WorldServer_updateAllPlayersSleepingFlag(var$7);
        if (!$par1)
            $this.$sleepTimer = 100;
        else
            $this.$sleepTimer = 0;
        if ($par3) {
            var$7 = $this.$playerLocation;
            if (var$7 === null) {
                $this.$spawnChunk = null;
                $this.$spawnForced = 0;
            } else {
                $var4 = new nms_ChunkCoordinates;
                $var4.$posX0 = var$7.$posX0;
                $var4.$posY0 = var$7.$posY0;
                $var4.$posZ0 = var$7.$posZ0;
                $this.$spawnChunk = $var4;
                $this.$spawnForced = 0;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityPlayer_verifyRespawnCoordinates = ($par0World, $par1ChunkCoordinates, $par2) => {
    let $var3, $var7, $var6, var$7, $var4, $var8, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var8 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1ChunkCoordinates = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par0World.$chunkProvider;
        $var7 = ($par1ChunkCoordinates.$posX0 - 3 | 0) >> 4;
        $var6 = ($par1ChunkCoordinates.$posZ0 - 3 | 0) >> 4;
        $ptr = 1;
    case 1:
        nms_ChunkProviderServer_loadChunk($var3, $var7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = ($par1ChunkCoordinates.$posX0 + 3 | 0) >> 4;
        $var7 = ($par1ChunkCoordinates.$posZ0 - 3 | 0) >> 4;
        $ptr = 2;
    case 2:
        nms_ChunkProviderServer_loadChunk($var3, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = ($par1ChunkCoordinates.$posX0 - 3 | 0) >> 4;
        $var7 = ($par1ChunkCoordinates.$posZ0 + 3 | 0) >> 4;
        $ptr = 3;
    case 3:
        nms_ChunkProviderServer_loadChunk($var3, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = ($par1ChunkCoordinates.$posX0 + 3 | 0) >> 4;
        $var7 = ($par1ChunkCoordinates.$posZ0 + 3 | 0) >> 4;
        $ptr = 4;
    case 4:
        nms_ChunkProviderServer_loadChunk($var3, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $par1ChunkCoordinates.$posX0;
        $var7 = $par1ChunkCoordinates.$posY0;
        var$7 = $par1ChunkCoordinates.$posZ0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par0World, $var6, $var7, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        if ($var6 != nms_Block_bed.$blockID) {
            $var6 = $par1ChunkCoordinates.$posX0;
            $var7 = $par1ChunkCoordinates.$posY0;
            var$7 = $par1ChunkCoordinates.$posZ0;
            $ptr = 6;
            continue main;
        }
        $var6 = $par1ChunkCoordinates.$posX0;
        $var7 = $par1ChunkCoordinates.$posY0;
        var$7 = $par1ChunkCoordinates.$posZ0;
        $par2 = 0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par0World, $var6, $var7, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            $var4 = nms_Material_air;
        } else
            $var4 = nms_Block_blocksList.data[$var6].$blockMaterial;
        $var6 = $par1ChunkCoordinates.$posX0;
        $var7 = $par1ChunkCoordinates.$posY0 + 1 | 0;
        var$7 = $par1ChunkCoordinates.$posZ0;
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_BlockBed_getNearestEmptyChunkCoordinates($par0World, $var6, $var7, var$7, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        return $var8;
    case 8:
        $tmp = nms_World_getBlockId($par0World, $var6, $var7, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            $var5 = nms_Material_air;
        } else
            $var5 = nms_Block_blocksList.data[$var6].$blockMaterial;
        $var6 = !$var4.$isSolid() && !$var4.$isLiquid() ? 1 : 0;
        $var7 = !$var5.$isSolid() && !$var5.$isLiquid() ? 1 : 0;
        if (!($par2 && $var6 && $var7))
            $par1ChunkCoordinates = null;
        return $par1ChunkCoordinates;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1ChunkCoordinates, $par2, $var3, $var7, $var6, var$7, $var4, $var8, $var5, $ptr);
},
nms_EntityPlayer_setHideCape = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$3 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[144];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$8 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value1;
    if ($par2) {
        var$3 = $this.$dataWatcher;
        $par1 = (var$8 | 1 << $par1) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$7 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[144];
        if (var$10 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$8 = var$10.$value;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$8) {
                    var$4 = var$7.$key;
                    if (var$10 !== var$4 && !(var$10 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$4 = var$7 === null ? null : var$7.$value0;
        var$7 = var$4.$watchedObject;
        if (!(var$7 instanceof jl_Byte && var$7.$value1 == var$9.$value1 ? 1 : 0)) {
            var$4.$watchedObject = var$9;
            var$4.$watched = 1;
            var$3.$objectChanged = 1;
        }
    } else {
        var$3 = $this.$dataWatcher;
        $par1 = (var$8 & (1 << $par1 ^ (-1))) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$7 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[144];
        if (var$10 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$8 = var$10.$value;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$8) {
                    var$4 = var$7.$key;
                    if (var$10 !== var$4 && !(var$10 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$4 = var$7 === null ? null : var$7.$value0;
        var$7 = var$4.$watchedObject;
        if (!(var$7 instanceof jl_Byte && var$7.$value1 == var$9.$value1 ? 1 : 0)) {
            var$4.$watchedObject = var$9;
            var$4.$watched = 1;
            var$3.$objectChanged = 1;
        }
    }
},
nms_EntityPlayer_jump = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_jump($this);
        if ($rt_suspending()) {
            break main;
        }
        nms_StatList_$callClinit();
        var$1 = nms_StatList_jumpStat;
        if (var$1 !== null && !var$1.$isIndependent)
            a: {
                var$2 = $this.$playerNetServerHandler;
                var$3 = new nms_Packet200Statistic;
                var$4 = var$1.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3.$statisticId = var$4;
                var$3.$amount = 1;
                if (var$3 instanceof nms_Packet3Chat) {
                    var$1 = var$3;
                    var$4 = var$2.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        break a;
                    if (var$4 == 1 && !var$1.$isServer)
                        break a;
                }
                try {
                    var$1 = var$2.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$3 = new otcic_JSStderrPrintStream;
                    var$2 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$2);
                    var$2.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$3, var$2);
                    var$3.$sb = jl_StringBuilder__init_();
                    var$3.$buffer0 = $rt_createCharArray(32);
                    var$3.$autoFlush = 0;
                    var$3.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$3;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[128];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$5 = var$2.$value;
            var$6 = var$1.$elementData.data;
            var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$5) {
                    var$3 = var$1.$key;
                    if (var$2 !== var$3 && !jl_Integer_equals(var$2, var$3) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value1 & 8) ? 0 : 1)) {
            if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                var$1 = $this.$foodStats;
                var$1.$foodExhaustionLevel = jl_Math_minImpl(var$1.$foodExhaustionLevel + 0.20000000298023224, 40.0);
            }
        } else if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            var$1 = $this.$foodStats;
            var$1.$foodExhaustionLevel = jl_Math_minImpl(var$1.$foodExhaustionLevel + 0.800000011920929, 40.0);
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$2);
                var$2.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$2);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[128];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$5 = var$2.$value;
            var$6 = var$1.$elementData.data;
            var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$5) {
                    var$3 = var$1.$key;
                    if (var$2 !== var$3 && !jl_Integer_equals(var$2, var$3) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value1 & 8) ? 0 : 1)) {
            if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                var$1 = $this.$foodStats;
                var$1.$foodExhaustionLevel = jl_Math_minImpl(var$1.$foodExhaustionLevel + 0.20000000298023224, 40.0);
            }
        } else if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            var$1 = $this.$foodStats;
            var$1.$foodExhaustionLevel = jl_Math_minImpl(var$1.$foodExhaustionLevel + 0.800000011920929, 40.0);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityPlayer_moveEntityWithHeading = ($this, $par1, $par2) => {
    let $var3, $var5, $var7, var$6, $var9, $var11, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$posX;
        $var5 = $this.$posY;
        $var7 = $this.$posZ;
        var$6 = $this.$capabilities;
        if (var$6.$isFlying && $this.$ridingEntity === null) {
            $var9 = $this.$motionY;
            $var11 = $this.$jumpMovementFactor;
            $this.$jumpMovementFactor = var$6.$flySpeed;
            $ptr = 3;
            continue main;
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_moveEntityWithHeading($this, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $this.$posX - $var3;
        $var3 = $this.$posY - $var5;
        $var7 = $this.$posZ - $var7;
        $ptr = 2;
    case 2:
        nms_EntityPlayer_addMovementStat($this, var$9, $var3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_EntityLivingBase_moveEntityWithHeading($this, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$motionY = $var9 * 0.6;
        $this.$jumpMovementFactor = $var11;
        var$9 = $this.$posX - $var3;
        $var3 = $this.$posY - $var5;
        $var7 = $this.$posZ - $var7;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, $var5, $var7, var$6, $var9, $var11, var$9, $ptr);
},
nms_EntityPlayer_getAIMoveSpeed = $this => {
    let var$1;
    var$1 = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_movementSpeed);
    if (var$1.$field_111133_g) {
        var$1.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$1);
        var$1.$field_111133_g = 0;
    }
    return var$1.$field_111139_h;
},
nms_EntityPlayer_addMovementStat = ($this, $par1, $par3, $par5) => {
    let var$4, var$5, var$6, $var7, var$8, var$9, $var7_0, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var7_0 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$ridingEntity !== null)
            return;
        nms_Material_$callClinit();
        var$4 = nms_Material_water;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_isInsideOfMaterial($this, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            var$6 = jl_Math_sqrt($par1 * $par1 + $par3 * $par3 + $par5 * $par5) * 100.0;
            $var7 = var$6 + jl_Math_sign0(var$6) * 0.5 | 0;
            if ($var7 > 0) {
                nms_StatList_$callClinit();
                var$4 = nms_StatList_distanceDoveStat;
                if (var$4 !== null && !var$4.$isIndependent)
                    a: {
                        var$8 = $this.$playerNetServerHandler;
                        var$9 = new nms_Packet200Statistic;
                        var$5 = var$4.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$9.$statisticId = var$5;
                        var$9.$amount = $var7;
                        if (var$9 instanceof nms_Packet3Chat) {
                            var$4 = var$9;
                            $var7_0 = var$8.$playerEntity.$chatVisibility;
                            if ($var7_0 == 2)
                                break a;
                            if ($var7_0 == 1 && !var$4.$isServer)
                                break a;
                        }
                        try {
                            var$4 = var$8.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$8 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$8);
                            var$8.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$9, var$8);
                            var$9.$sb = jl_StringBuilder__init_();
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
                var$6 = 0.014999999664723873 * $var7 * 0.009999999776482582;
                if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                    var$4 = $this.$foodStats;
                    var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
                }
            }
        } else {
            if (!$this.$inWater) {
                $ptr = 2;
                continue main;
            }
            var$6 = jl_Math_sqrt($par1 * $par1 + $par5 * $par5) * 100.0;
            $var7 = var$6 + jl_Math_sign0(var$6) * 0.5 | 0;
            if ($var7 > 0) {
                nms_StatList_$callClinit();
                var$4 = nms_StatList_distanceSwumStat;
                if (var$4 !== null && !var$4.$isIndependent)
                    b: {
                        var$8 = $this.$playerNetServerHandler;
                        var$9 = new nms_Packet200Statistic;
                        var$5 = var$4.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$9.$statisticId = var$5;
                        var$9.$amount = $var7;
                        if (var$9 instanceof nms_Packet3Chat) {
                            var$4 = var$9;
                            $var7_0 = var$8.$playerEntity.$chatVisibility;
                            if ($var7_0 == 2)
                                break b;
                            if ($var7_0 == 1 && !var$4.$isServer)
                                break b;
                        }
                        try {
                            var$4 = var$8.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$8 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$8);
                            var$8.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$9, var$8);
                            var$9.$sb = jl_StringBuilder__init_();
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
                var$6 = 0.014999999664723873 * $var7 * 0.009999999776482582;
                if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                    var$4 = $this.$foodStats;
                    var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
                }
            }
        }
        return;
    case 2:
        $tmp = nms_EntityLivingBase_isOnLadder($this);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (var$5) {
            if ($par3 > 0.0) {
                nms_StatList_$callClinit();
                var$4 = nms_StatList_distanceClimbedStat;
                $par1 = $par3 * 100.0;
                var$5 = Long_lo(Long_fromNumber($par1 + jl_Math_sign($par1) * 0.5));
                if (var$4 !== null && !var$4.$isIndependent)
                    c: {
                        var$8 = $this.$playerNetServerHandler;
                        var$9 = new nms_Packet200Statistic;
                        $var7_0 = var$4.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$9.$statisticId = $var7_0;
                        var$9.$amount = var$5;
                        if (var$9 instanceof nms_Packet3Chat) {
                            var$4 = var$9;
                            $var7_0 = var$8.$playerEntity.$chatVisibility;
                            if ($var7_0 == 2)
                                break c;
                            if ($var7_0 == 1 && !var$4.$isServer)
                                break c;
                        }
                        try {
                            var$4 = var$8.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$8 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$8);
                            var$8.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$9, var$8);
                            var$9.$sb = jl_StringBuilder__init_();
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
            }
        } else if (!$this.$onGround) {
            var$6 = jl_Math_sqrt($par1 * $par1 + $par5 * $par5) * 100.0;
            $var7_0 = var$6 + jl_Math_sign0(var$6) * 0.5 | 0;
            if ($var7_0 > 25) {
                nms_StatList_$callClinit();
                var$4 = nms_StatList_distanceFlownStat;
                if (var$4 !== null && !var$4.$isIndependent)
                    d: {
                        var$8 = $this.$playerNetServerHandler;
                        var$9 = new nms_Packet200Statistic;
                        var$5 = var$4.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$9.$statisticId = var$5;
                        var$9.$amount = $var7_0;
                        if (var$9 instanceof nms_Packet3Chat) {
                            var$4 = var$9;
                            $var7_0 = var$8.$playerEntity.$chatVisibility;
                            if ($var7_0 == 2)
                                break d;
                            if ($var7_0 == 1 && !var$4.$isServer)
                                break d;
                        }
                        try {
                            var$4 = var$8.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$8 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$8);
                            var$8.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$9, var$8);
                            var$9.$sb = jl_StringBuilder__init_();
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
            }
        } else {
            var$6 = jl_Math_sqrt($par1 * $par1 + $par5 * $par5) * 100.0;
            $var7 = var$6 + jl_Math_sign0(var$6) * 0.5 | 0;
            if ($var7 > 0) {
                nms_StatList_$callClinit();
                var$4 = nms_StatList_distanceWalkedStat;
                if (var$4 !== null && !var$4.$isIndependent)
                    e: {
                        var$8 = $this.$playerNetServerHandler;
                        var$9 = new nms_Packet200Statistic;
                        var$5 = var$4.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$9.$statisticId = var$5;
                        var$9.$amount = $var7;
                        if (var$9 instanceof nms_Packet3Chat) {
                            var$4 = var$9;
                            $var7_0 = var$8.$playerEntity.$chatVisibility;
                            if ($var7_0 == 2)
                                break e;
                            if ($var7_0 == 1 && !var$4.$isServer)
                                break e;
                        }
                        try {
                            var$4 = var$8.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$4 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$8 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$8);
                            var$8.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$9, var$8);
                            var$9.$sb = jl_StringBuilder__init_();
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                    }
                var$4 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$8 = jl_Integer_integerCache.data[128];
                if (var$8 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$11 = var$8.$value;
                    var$12 = var$4.$elementData.data;
                    var$4 = var$12[var$11 & (var$12.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$11) {
                            var$9 = var$4.$key;
                            if (var$8 !== var$9 && !jl_Integer_equals(var$8, var$9) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                var$4 = var$4 === null ? null : var$4.$value0;
                if (!(!(var$4.$watchedObject.$value1 & 8) ? 0 : 1)) {
                    var$6 = 0.009999999776482582 * $var7 * 0.009999999776482582;
                    if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                        var$4 = $this.$foodStats;
                        var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
                    }
                } else {
                    var$6 = 0.09999999403953552 * $var7 * 0.009999999776482582;
                    if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                        var$4 = $this.$foodStats;
                        var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
                    }
                }
            }
        }
        return;
    case 3:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$8);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$6 = 0.014999999664723873 * $var7 * 0.009999999776482582;
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            var$4 = $this.$foodStats;
            var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
        }
        return;
    case 4:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$8);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$6 = 0.014999999664723873 * $var7 * 0.009999999776482582;
        if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
            var$4 = $this.$foodStats;
            var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
        }
        return;
    case 5:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$8);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        return;
    case 6:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$8);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        return;
    case 7:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$8);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[128];
        if (var$8 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$11 = var$8.$value;
            var$12 = var$4.$elementData.data;
            var$4 = var$12[var$11 & (var$12.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$11) {
                    var$9 = var$4.$key;
                    if (var$8 !== var$9 && !jl_Integer_equals(var$8, var$9) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        if (!(!(var$4.$watchedObject.$value1 & 8) ? 0 : 1)) {
            var$6 = 0.009999999776482582 * $var7 * 0.009999999776482582;
            if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                var$4 = $this.$foodStats;
                var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
            }
        } else {
            var$6 = 0.09999999403953552 * $var7 * 0.009999999776482582;
            if (!$this.$capabilities.$disableDamage && !$this.$worldObj.$isRemote) {
                var$4 = $this.$foodStats;
                var$4.$foodExhaustionLevel = jl_Math_minImpl(var$4.$foodExhaustionLevel + var$6, 40.0);
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, var$5, var$6, $var7, var$8, var$9, $var7_0, var$11, var$12, $ptr);
},
nms_EntityPlayer_addMountedMovementStat = ($this, $par1, $par3, $par5) => {
    let var$4, $var7, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$ridingEntity !== null) {
            var$4 = jl_Math_sqrt($par1 * $par1 + $par3 * $par3 + $par5 * $par5) * 100.0;
            $var7 = var$4 + jl_Math_sign0(var$4) * 0.5 | 0;
            if ($var7 > 0) {
                var$6 = $this.$ridingEntity;
                if (!(var$6 instanceof nms_EntityMinecart)) {
                    if (var$6 instanceof nms_EntityBoat) {
                        nms_StatList_$callClinit();
                        var$6 = nms_StatList_distanceByBoatStat;
                        if (var$6 !== null && !var$6.$isIndependent)
                            a: {
                                var$7 = $this.$playerNetServerHandler;
                                var$8 = new nms_Packet200Statistic;
                                var$9 = var$6.$statId;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                var$8.$statisticId = var$9;
                                var$8.$amount = $var7;
                                if (var$8 instanceof nms_Packet3Chat) {
                                    var$6 = var$8;
                                    $var7 = var$7.$playerEntity.$chatVisibility;
                                    if ($var7 == 2)
                                        break a;
                                    if ($var7 == 1 && !var$6.$isServer)
                                        break a;
                                }
                                try {
                                    var$6 = var$7.$netManager;
                                    $ptr = 2;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$8 = new otcic_JSStderrPrintStream;
                                    var$7 = new ji_ByteArrayOutputStream;
                                    ji_OutputStream__init_(var$7);
                                    var$7.$buf = $rt_createByteArray(32);
                                    ji_FilterOutputStream__init_(var$8, var$7);
                                    var$8.$sb = jl_StringBuilder__init_();
                                    var$8.$buffer0 = $rt_createCharArray(32);
                                    var$8.$autoFlush = 0;
                                    var$8.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = var$8;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                    } else if (var$6 instanceof nms_EntityPig) {
                        nms_StatList_$callClinit();
                        var$6 = nms_StatList_distanceByPigStat;
                        if (var$6 !== null && !var$6.$isIndependent)
                            b: {
                                var$7 = $this.$playerNetServerHandler;
                                var$8 = new nms_Packet200Statistic;
                                var$9 = var$6.$statId;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                var$8.$statisticId = var$9;
                                var$8.$amount = $var7;
                                if (var$8 instanceof nms_Packet3Chat) {
                                    var$6 = var$8;
                                    $var7 = var$7.$playerEntity.$chatVisibility;
                                    if ($var7 == 2)
                                        break b;
                                    if ($var7 == 1 && !var$6.$isServer)
                                        break b;
                                }
                                try {
                                    var$6 = var$7.$netManager;
                                    $ptr = 3;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$8 = new otcic_JSStderrPrintStream;
                                    var$7 = new ji_ByteArrayOutputStream;
                                    ji_OutputStream__init_(var$7);
                                    var$7.$buf = $rt_createByteArray(32);
                                    ji_FilterOutputStream__init_(var$8, var$7);
                                    var$8.$sb = jl_StringBuilder__init_();
                                    var$8.$buffer0 = $rt_createCharArray(32);
                                    var$8.$autoFlush = 0;
                                    var$8.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = var$8;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                    }
                } else {
                    nms_StatList_$callClinit();
                    var$6 = nms_StatList_distanceByMinecartStat;
                    if (var$6 !== null && !var$6.$isIndependent)
                        c: {
                            var$7 = $this.$playerNetServerHandler;
                            var$8 = new nms_Packet200Statistic;
                            var$9 = var$6.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$8.$statisticId = var$9;
                            var$8.$amount = $var7;
                            if (var$8 instanceof nms_Packet3Chat) {
                                var$6 = var$8;
                                $var7 = var$7.$playerEntity.$chatVisibility;
                                if ($var7 == 2)
                                    break c;
                                if ($var7 == 1 && !var$6.$isServer)
                                    break c;
                            }
                            try {
                                var$6 = var$7.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$8 = new otcic_JSStderrPrintStream;
                                var$7 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$7);
                                var$7.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$8, var$7);
                                var$8.$sb = jl_StringBuilder__init_();
                                var$8.$buffer0 = $rt_createCharArray(32);
                                var$8.$autoFlush = 0;
                                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$8;
                            }
                            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                        }
                    var$6 = $this.$startMinecartRidingCoordinate;
                    if (var$6 === null) {
                        var$6 = new nms_ChunkCoordinates;
                        $par1 = $this.$posX;
                        var$10 = $par1 | 0;
                        if ($par1 < var$10)
                            var$10 = var$10 - 1 | 0;
                        $par1 = $this.$posY;
                        var$11 = $par1 | 0;
                        if ($par1 < var$11)
                            var$11 = var$11 - 1 | 0;
                        $par1 = $this.$posZ;
                        $var7 = $par1 | 0;
                        if ($par1 < $var7)
                            $var7 = $var7 - 1 | 0;
                        var$6.$posX0 = var$10;
                        var$6.$posY0 = var$11;
                        var$6.$posZ0 = $var7;
                        $this.$startMinecartRidingCoordinate = var$6;
                    } else {
                        $par1 = $this.$posX;
                        var$10 = $par1 | 0;
                        if ($par1 < var$10)
                            var$10 = var$10 - 1 | 0;
                        $par1 = $this.$posY;
                        var$11 = $par1 | 0;
                        if ($par1 < var$11)
                            var$11 = var$11 - 1 | 0;
                        $par1 = $this.$posZ;
                        $var7 = $par1 | 0;
                        if ($par1 < $var7)
                            $var7 = $var7 - 1 | 0;
                        var$4 = var$6.$posX0 - var$10 | 0;
                        var$12 = var$6.$posY0 - var$11 | 0;
                        var$13 = var$6.$posZ0 - $var7 | 0;
                        if (var$4 * var$4 + var$12 * var$12 + var$13 * var$13 >= 1000000.0) {
                            nms_AchievementList_$callClinit();
                            var$6 = nms_AchievementList_onARail;
                            if (var$6 !== null && !var$6.$isIndependent)
                                d: {
                                    var$7 = $this.$playerNetServerHandler;
                                    var$8 = new nms_Packet200Statistic;
                                    $var7 = var$6.$statId;
                                    nms_Packet_$callClinit();
                                    nles_SysUtil_$callClinit();
                                    var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                    var$8.$statisticId = $var7;
                                    var$8.$amount = 1;
                                    if (var$8 instanceof nms_Packet3Chat) {
                                        var$6 = var$8;
                                        $var7 = var$7.$playerEntity.$chatVisibility;
                                        if ($var7 == 2)
                                            break d;
                                        if ($var7 == 1 && !var$6.$isServer)
                                            break d;
                                    }
                                    try {
                                        var$6 = var$7.$netManager;
                                        $ptr = 4;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$6 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$8 = new otcic_JSStderrPrintStream;
                                        var$7 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_(var$7);
                                        var$7.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_(var$8, var$7);
                                        var$8.$sb = jl_StringBuilder__init_();
                                        var$8.$buffer0 = $rt_createCharArray(32);
                                        var$8.$autoFlush = 0;
                                        var$8.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = var$8;
                                    }
                                    jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                                }
                        }
                    }
                }
            }
        }
        return;
    case 1:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$7);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        var$6 = $this.$startMinecartRidingCoordinate;
        if (var$6 === null) {
            var$6 = new nms_ChunkCoordinates;
            $par1 = $this.$posX;
            var$10 = $par1 | 0;
            if ($par1 < var$10)
                var$10 = var$10 - 1 | 0;
            $par1 = $this.$posY;
            var$11 = $par1 | 0;
            if ($par1 < var$11)
                var$11 = var$11 - 1 | 0;
            $par1 = $this.$posZ;
            $var7 = $par1 | 0;
            if ($par1 < $var7)
                $var7 = $var7 - 1 | 0;
            var$6.$posX0 = var$10;
            var$6.$posY0 = var$11;
            var$6.$posZ0 = $var7;
            $this.$startMinecartRidingCoordinate = var$6;
        } else {
            $par1 = $this.$posX;
            var$10 = $par1 | 0;
            if ($par1 < var$10)
                var$10 = var$10 - 1 | 0;
            $par1 = $this.$posY;
            var$11 = $par1 | 0;
            if ($par1 < var$11)
                var$11 = var$11 - 1 | 0;
            $par1 = $this.$posZ;
            $var7 = $par1 | 0;
            if ($par1 < $var7)
                $var7 = $var7 - 1 | 0;
            var$4 = var$6.$posX0 - var$10 | 0;
            var$12 = var$6.$posY0 - var$11 | 0;
            var$13 = var$6.$posZ0 - $var7 | 0;
            if (var$4 * var$4 + var$12 * var$12 + var$13 * var$13 >= 1000000.0) {
                nms_AchievementList_$callClinit();
                var$6 = nms_AchievementList_onARail;
                if (var$6 !== null && !var$6.$isIndependent)
                    f: {
                        var$7 = $this.$playerNetServerHandler;
                        var$8 = new nms_Packet200Statistic;
                        $var7 = var$6.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$8.$statisticId = $var7;
                        var$8.$amount = 1;
                        if (var$8 instanceof nms_Packet3Chat) {
                            var$6 = var$8;
                            $var7 = var$7.$playerEntity.$chatVisibility;
                            if ($var7 == 2)
                                break f;
                            if ($var7 == 1 && !var$6.$isServer)
                                break f;
                        }
                        try {
                            var$6 = var$7.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$8 = new otcic_JSStderrPrintStream;
                            var$7 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$7);
                            var$7.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$8, var$7);
                            var$8.$sb = jl_StringBuilder__init_();
                            var$8.$buffer0 = $rt_createCharArray(32);
                            var$8.$autoFlush = 0;
                            var$8.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$8;
                        }
                        jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                    }
            }
        }
        return;
    case 2:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$7);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        return;
    case 3:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$7);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        return;
    case 4:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$7);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, $var7, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityPlayer_fall = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$capabilities.$allowFlying)
            return;
        if ($par1 >= 2.0) {
            nms_StatList_$callClinit();
            var$2 = nms_StatList_distanceFallenStat;
            var$3 = $par1 * 100.0;
            var$4 = Long_lo(Long_fromNumber(var$3 + jl_Math_sign(var$3) * 0.5));
            if (var$2 !== null && !var$2.$isIndependent)
                a: {
                    var$5 = $this.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$7 = var$2.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$7;
                    var$6.$amount = var$4;
                    if (var$6 instanceof nms_Packet3Chat) {
                        var$2 = var$6;
                        var$7 = var$5.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break a;
                        if (var$7 == 1 && !var$2.$isServer)
                            break a;
                    }
                    try {
                        var$2 = var$5.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        var$5 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$5);
                        var$5.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$6, var$5);
                        var$6.$sb = jl_StringBuilder__init_();
                        var$6.$buffer0 = $rt_createCharArray(32);
                        var$6.$autoFlush = 0;
                        var$6.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_fall($this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$5 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$5);
                var$5.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$6, var$5);
                var$6.$sb = jl_StringBuilder__init_();
                var$6.$buffer0 = $rt_createCharArray(32);
                var$6.$autoFlush = 0;
                var$6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityPlayer_onKillEntity = ($this, $par1EntityLivingBase) => {
    let var$2, var$3, var$4, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($rt_isInstance($par1EntityLivingBase, nms_IMob)) {
            nms_AchievementList_$callClinit();
            $par1EntityLivingBase = nms_AchievementList_killEnemy;
            if ($par1EntityLivingBase !== null && !$par1EntityLivingBase.$isIndependent)
                a: {
                    var$2 = $this.$playerNetServerHandler;
                    var$3 = new nms_Packet200Statistic;
                    var$4 = $par1EntityLivingBase.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$3.$statisticId = var$4;
                    var$3.$amount = 1;
                    if (var$3 instanceof nms_Packet3Chat) {
                        $par1EntityLivingBase = var$3;
                        var$4 = var$2.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break a;
                        if (var$4 == 1 && !$par1EntityLivingBase.$isServer)
                            break a;
                    }
                    try {
                        $par1EntityLivingBase = var$2.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1EntityLivingBase = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$3 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$3;
                    }
                    jl_Throwable_printStackTrace($par1EntityLivingBase, jl_System_errCache);
                }
        }
        return;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityLivingBase, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityLivingBase = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1EntityLivingBase, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, var$2, var$3, var$4, $ptr);
},
nms_EntityPlayer_setInWeb = $this => {
    if (!$this.$capabilities.$isFlying) {
        $this.$isInWeb = 1;
        $this.$fallDistance = 0.0;
    }
},
nms_EntityPlayer_addExperience = ($this, $par1) => {
    let var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[146];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var2 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[$var2 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var2) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var2 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
        var$2 = $this.$dataWatcher;
        var$7 = $var2 + $par1 | 0;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = var$7;
        }
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[146];
        if (var$8 === null) {
            var$9 = var$3.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$7 = var$8.$value;
            var$5 = var$3.$elementData.data;
            var$9 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$7) {
                    var$3 = var$9.$key;
                    if (var$8 !== var$3 && !(var$8 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$9 = var$9.$next3;
            }
        }
        var$9 = var$9 === null ? null : var$9.$value0;
        var$3 = var$9.$watchedObject;
        if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
            var$9.$watchedObject = var$6;
            var$9.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $var2 = 2147483647 - $this.$experienceTotal | 0;
        if ($par1 <= $var2)
            $var2 = $par1;
        $this.$experience = $this.$experience + $var2 / nms_EntityPlayer_xpBarCap($this);
        $this.$experienceTotal = $this.$experienceTotal + $var2 | 0;
        var$10 = $this.$experience;
        if (var$10 < 1.0)
            return;
        $this.$experience = (var$10 - 1.0) * nms_EntityPlayer_xpBarCap($this);
        $par1 = 1;
        $ptr = 1;
    case 1:
        nms_EntityPlayer_addExperienceLevel($this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $this.$lastExperience = (-1);
        $this.$experience = $this.$experience / nms_EntityPlayer_xpBarCap($this);
        var$10 = $this.$experience;
        if (var$10 < 1.0)
            return;
        $this.$experience = (var$10 - 1.0) * nms_EntityPlayer_xpBarCap($this);
        $par1 = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityPlayer_addExperienceLevel = ($this, $par1) => {
    let var$2, $var2, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$experienceLevel + $par1 | 0;
        $this.$experienceLevel = var$2;
        if (var$2 < 0) {
            $this.$experienceLevel = 0;
            $this.$experience = 0.0;
            $this.$experienceTotal = 0;
        }
        if ($par1 > 0) {
            $par1 = $this.$experienceLevel;
            if (!($par1 % 5 | 0) && $this.$field_82249_h < $this.$ticksExisted - 100.0) {
                $var2 = $par1 > 30 ? 1.0 : $par1 / 30.0;
                var$4 = $this.$worldObj;
                var$5 = $rt_s(2023);
                var$6 = $var2 * 0.75;
                $var2 = 1.0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$4, $this, var$5, var$6, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_82249_h = $this.$ticksExisted;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, $var2, var$4, var$5, var$6, $ptr);
},
nms_EntityPlayer_xpBarCap = $this => {
    let var$1;
    var$1 = $this.$experienceLevel;
    return var$1 >= 30 ? 62 + ((var$1 - 30 | 0) * 7 | 0) | 0 : var$1 < 15 ? 17 : 17 + ((var$1 - 15 | 0) * 3 | 0) | 0;
},
nms_EntityPlayer_isCurrentToolAdventureModeExempt = ($this, $par1, $par2, $par3) => {
    let $var5, $var4, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$capabilities.$allowEdit)
            return 1;
        $var5 = $this.$worldObj;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($var5, $par1, $par2, $par3);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = $tmp;
            if ($var4 > 0) {
                nms_Block_$callClinit();
                $var5 = nms_Block_blocksList.data[$var4];
                if ($var5.$blockMaterial.$isAdventureModeExempt)
                    return 1;
                var$6 = $this.$inventory0;
                $par2 = var$6.$currentItem;
                $par1 = $rt_compare($par2, 9);
                if (($par1 < 0 && $par2 >= 0 ? var$6.$mainInventory.data[$par2] : null) !== null) {
                    var$7 = $par1 < 0 && $par2 >= 0 ? var$6.$mainInventory.data[$par2] : null;
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[var$7.$itemID].$canHarvestBlock($var5))
                        break a;
                    if (nms_Item_itemsList.data[var$7.$itemID].$getStrVsBlock(var$7, $var5) > 1.0)
                        break a;
                }
            }
            return 0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var5, $var4, var$6, var$7, $ptr);
},
nms_EntityPlayer_getExperiencePoints = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, $var2, var$6, var$7;
    a: {
        var$2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
        var$3 = $rt_s(2024);
        $par1EntityPlayer = $rt_s(2024);
        if (var$3 !== $par1EntityPlayer) {
            var$4 = var$3.$nativeString.length;
            $var2 = $par1EntityPlayer.$nativeString.length;
            if (var$4 < $var2)
                $var2 = var$4;
            var$4 = 0;
            b: {
                while (true) {
                    if (var$4 >= $var2) {
                        var$3.$nativeString.length;
                        $par1EntityPlayer.$nativeString.length;
                        break a;
                    }
                    if (var$4 < 0)
                        break b;
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$6 = var$3.$nativeString.charCodeAt(var$4);
                    if (var$4 < 0)
                        break;
                    if (var$4 >= $par1EntityPlayer.$nativeString.length)
                        break;
                    if (var$6 - $par1EntityPlayer.$nativeString.charCodeAt(var$4) | 0)
                        break a;
                    var$4 = var$4 + 1 | 0;
                }
                $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
                $rt_throw($par1EntityPlayer);
            }
            $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
            $rt_throw($par1EntityPlayer);
        }
    }
    $par1EntityPlayer = $rt_s(2024);
    c: {
        d: {
            e: while (true) {
                if (var$2 === null) {
                    var$2 = null;
                    break c;
                }
                f: {
                    var$3 = var$2.$key0;
                    if ($par1EntityPlayer === var$3)
                        $var2 = 0;
                    else {
                        var$4 = $par1EntityPlayer.$nativeString.length;
                        var$6 = var$3.$nativeString.length;
                        if (var$4 < var$6)
                            var$6 = var$4;
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= var$6) {
                                $var2 = $par1EntityPlayer.$nativeString.length - var$3.$nativeString.length | 0;
                                break f;
                            }
                            if (var$4 < 0)
                                break d;
                            if (var$4 >= $par1EntityPlayer.$nativeString.length)
                                break d;
                            var$7 = $par1EntityPlayer.$nativeString.charCodeAt(var$4);
                            if (var$4 < 0)
                                break e;
                            if (var$4 >= var$3.$nativeString.length)
                                break e;
                            $var2 = var$7 - var$3.$nativeString.charCodeAt(var$4) | 0;
                            if ($var2)
                                break;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                if (!$var2)
                    break c;
                var$2 = $var2 >= 0 ? var$2.$right : var$2.$left;
            }
            $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
            $rt_throw($par1EntityPlayer);
        }
        $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
        jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
        $rt_throw($par1EntityPlayer);
    }
    $par1EntityPlayer = var$2 === null ? null : var$2.$value2;
    if ($par1EntityPlayer === null ? 0 : $par1EntityPlayer.$valueBoolean)
        return 0;
    $var2 = $this.$experienceLevel * 7 | 0;
    if ($var2 > 100)
        $var2 = 100;
    return $var2;
},
nms_EntityPlayer_isPlayer = $this => {
    return 1;
},
nms_EntityPlayer_getEntityName = $this => {
    return $this.$username;
},
nms_EntityPlayer_clonePlayer = ($this, $par1EntityPlayer, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    if ($par2) {
        nms_InventoryPlayer_copyInventory($this.$inventory0, $par1EntityPlayer.$inventory0);
        var$3 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[134];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $par2 = var$4.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[$par2 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $par2) {
                    var$6 = var$3.$key;
                    if (var$4 !== var$6 && !(var$4 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $par2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        nms_EntityLivingBase_setHealth($this, var$3.$watchedObject.$value3);
        $this.$foodStats = $par1EntityPlayer.$foodStats;
        $this.$experienceLevel = $par1EntityPlayer.$experienceLevel;
        $this.$experienceTotal = $par1EntityPlayer.$experienceTotal;
        $this.$experience = $par1EntityPlayer.$experience;
        var$3 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[146];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $par2 = var$4.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[$par2 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $par2) {
                    var$6 = var$3.$key;
                    if (var$4 !== var$6 && !(var$4 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $par2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$7 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value;
        var$3 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$4 = new jl_Integer;
            var$4.$value = var$7;
        }
        var$6 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[146];
        if (var$8 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$9 = var$8.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$9 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$9) {
                    var$10 = var$6.$key;
                    if (var$8 !== var$10 && !(var$8 === var$10 ? 1 : var$10 instanceof jl_Integer && var$10.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$10 = var$6 === null ? null : var$6.$value0;
        var$6 = var$10.$watchedObject;
        if (!(var$4 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4.$value ? 1 : 0)) {
            var$10.$watchedObject = var$4;
            var$10.$watched = 1;
            var$3.$objectChanged = 1;
        }
        $this.$teleportDirection = $par1EntityPlayer.$teleportDirection;
    } else {
        a: {
            var$4 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$6 = $rt_s(2024);
            var$3 = $rt_s(2024);
            if (var$6 !== var$3) {
                var$7 = var$6.$nativeString.length;
                var$11 = var$3.$nativeString.length;
                if (var$7 < var$11)
                    var$11 = var$7;
                $par2 = 0;
                b: {
                    while (true) {
                        if ($par2 >= var$11) {
                            var$6.$nativeString.length;
                            var$3.$nativeString.length;
                            break a;
                        }
                        if ($par2 < 0)
                            break b;
                        if ($par2 >= var$6.$nativeString.length)
                            break b;
                        var$9 = var$6.$nativeString.charCodeAt($par2);
                        if ($par2 < 0)
                            break;
                        if ($par2 >= var$3.$nativeString.length)
                            break;
                        if (var$9 - var$3.$nativeString.charCodeAt($par2) | 0)
                            break a;
                        $par2 = $par2 + 1 | 0;
                    }
                    $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                    $par1EntityPlayer.$suppressionEnabled = 1;
                    $par1EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayer);
                }
                $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                $par1EntityPlayer.$suppressionEnabled = 1;
                $par1EntityPlayer.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayer);
            }
        }
        var$3 = $rt_s(2024);
        c: {
            d: {
                e: while (true) {
                    if (var$4 === null) {
                        var$4 = null;
                        break c;
                    }
                    f: {
                        var$6 = var$4.$key0;
                        if (var$3 === var$6)
                            $par2 = 0;
                        else {
                            var$7 = var$3.$nativeString.length;
                            var$11 = var$6.$nativeString.length;
                            if (var$7 < var$11)
                                var$11 = var$7;
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= var$11) {
                                    $par2 = var$3.$nativeString.length - var$6.$nativeString.length | 0;
                                    break f;
                                }
                                if (var$7 < 0)
                                    break d;
                                if (var$7 >= var$3.$nativeString.length)
                                    break d;
                                var$9 = var$3.$nativeString.charCodeAt(var$7);
                                if (var$7 < 0)
                                    break e;
                                if (var$7 >= var$6.$nativeString.length)
                                    break e;
                                $par2 = var$9 - var$6.$nativeString.charCodeAt(var$7) | 0;
                                if ($par2)
                                    break;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    if (!$par2)
                        break c;
                    var$4 = $par2 >= 0 ? var$4.$right : var$4.$left;
                }
                $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                $par1EntityPlayer.$suppressionEnabled = 1;
                $par1EntityPlayer.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayer);
            }
            $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
            $par1EntityPlayer.$suppressionEnabled = 1;
            $par1EntityPlayer.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayer);
        }
        var$3 = var$4 === null ? null : var$4.$value2;
        if (var$3 === null ? 0 : var$3.$valueBoolean) {
            nms_InventoryPlayer_copyInventory($this.$inventory0, $par1EntityPlayer.$inventory0);
            $this.$experienceLevel = $par1EntityPlayer.$experienceLevel;
            $this.$experienceTotal = $par1EntityPlayer.$experienceTotal;
            $this.$experience = $par1EntityPlayer.$experience;
            var$3 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[146];
            if (var$4 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                $par2 = var$4.$value;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[$par2 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == $par2) {
                        var$6 = var$3.$key;
                        if (var$4 !== var$6 && !(var$4 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $par2 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            $par2 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value;
            var$3 = $this.$dataWatcher;
            if ($par2 >= (-128) && $par2 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[$par2 + 128 | 0];
            } else {
                var$6 = new jl_Integer;
                var$6.$value = $par2;
            }
            var$4 = var$3.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[146];
            if (var$10 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                var$7 = var$10.$value;
                var$5 = var$4.$elementData.data;
                var$4 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$7) {
                        var$8 = var$4.$key;
                        if (var$10 !== var$8 && !(var$10 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$7 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$10 = var$4 === null ? null : var$4.$value0;
            var$4 = var$10.$watchedObject;
            if (!(var$6 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$6.$value ? 1 : 0)) {
                var$10.$watchedObject = var$6;
                var$10.$watched = 1;
                var$3.$objectChanged = 1;
            }
        }
    }
    $this.$theInventoryEnderChest = $par1EntityPlayer.$theInventoryEnderChest;
},
nms_EntityPlayer_canTriggerWalking = $this => {
    return $this.$capabilities.$isFlying ? 0 : 1;
},
nms_EntityPlayer_getCommandSenderName = $this => {
    return $this.$username;
};
let nms_EntityPlayer_getCurrentItemOrArmor = ($this, $par1) => {
    let var$2, var$3;
    if ($par1)
        var$2 = $this.$inventory0.$armorInventory.data[$par1 - 1 | 0];
    else {
        var$2 = $this.$inventory0;
        var$3 = var$2.$currentItem;
        var$2 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
    }
    return var$2;
},
nms_EntityPlayer_getHeldItem = $this => {
    let var$1, var$2;
    var$1 = $this.$inventory0;
    var$2 = var$1.$currentItem;
    return var$2 < 9 && var$2 >= 0 ? var$1.$mainInventory.data[var$2] : null;
},
nms_EntityPlayer_setCurrentItemOrArmor = ($this, $par1, $par2ItemStack) => {
    $this.$inventory0.$armorInventory.data[$par1] = $par2ItemStack;
},
nms_EntityPlayer_getLastActiveItems = $this => {
    return $this.$inventory0.$armorInventory;
},
nms_EntityPlayer_isPushedByWater = $this => {
    return $this.$capabilities.$isFlying ? 0 : 1;
},
nms_EntityPlayer_getTeam = $this => {
    return nms_Scoreboard_getPlayersTeam($this.$worldObj.$worldScoreboard, $this.$username);
},
nms_EntityPlayer_getTranslatedEntityName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$1 = nms_Scoreboard_getPlayersTeam($this.$worldObj.$worldScoreboard, $this.$username);
        var$2 = $this.$username;
        if (var$1 !== null) {
            var$3 = var$1.$field_96674_e;
            var$4 = var$1.$colorSuffix;
            var$1 = new jl_StringBuilder;
            var$1.$buffer = $rt_createCharArray(16);
            var$5 = var$1.$length0;
            if (var$3 === null)
                var$3 = $rt_s(1);
            jl_StringBuilder_insert0(var$1, var$5, var$3);
            var$5 = var$1.$length0;
            if (var$2 === null)
                var$2 = $rt_s(1);
            jl_StringBuilder_insert0(var$1, var$5, var$2);
            var$5 = var$1.$length0;
            if (var$4 === null)
                var$4 = $rt_s(1);
            jl_StringBuilder_insert0(var$1, var$5, var$4);
            var$2 = new jl_String;
            var$6 = var$1.$buffer;
            var$7 = var$6.data;
            var$8 = var$1.$length0;
            var$9 = var$7.length;
            if (var$8 < 0)
                break a;
            if (var$8 > (var$9 - 0 | 0))
                break a;
            var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        }
        return var$2;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    jl_Exception__init_(var$1);
    $rt_throw(var$1);
},
nms_EntityPlayer_setAbsorptionAmount = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if ($par1 < 0.0)
        $par1 = 0.0;
    var$2 = $this.$dataWatcher;
    var$3 = new jl_Float;
    var$3.$value3 = $par1;
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[145];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$5 = var$4 === null ? null : var$4.$value0;
    var$4 = var$5.$watchedObject;
    if (var$3 === var$4)
        var$9 = 1;
    else
        a: {
            if (var$4 instanceof jl_Float) {
                var$10 = var$3.$value3;
                $par1 = var$4.$value3;
                if (var$10 !== var$10 ? ($par1 === $par1 ? 0 : 1) : $rt_floatToRawIntBits(var$10) != $rt_floatToRawIntBits($par1) ? 0 : 1) {
                    var$9 = 1;
                    break a;
                }
            }
            var$9 = 0;
        }
    if (!var$9) {
        var$5.$watchedObject = var$3;
        var$5.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityPlayer_getAbsorptionAmount = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[145];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value3;
},
nms_ICrafting = $rt_classWithoutFields(0);
function nms_EntityPlayerMP() {
    let a = this; nms_EntityPlayer.call(a);
    a.$translator = null;
    a.$playerNetServerHandler = null;
    a.$mcServer3 = null;
    a.$theItemInWorldManager = null;
    a.$managedPosX = 0.0;
    a.$managedPosZ = 0.0;
    a.$loadedChunks = null;
    a.$destroyedItemsNetCache = null;
    a.$field_130068_bO = 0.0;
    a.$lastHealth = 0.0;
    a.$lastFoodLevel = 0;
    a.$wasHungry = 0;
    a.$lastExperience = 0;
    a.$initialInvulnerability = 0;
    a.$renderDistance = 0;
    a.$chatVisibility = 0;
    a.$chatColours0 = 0;
    a.$currentWindowId = 0;
    a.$playerInventoryBeingManipulated = 0;
    a.$ping0 = 0;
    a.$playerConqueredTheEnd = 0;
}
let nms_EntityPlayerMP__init_ = ($this, $par1MinecraftServer, $par2World, $par3Str, $par4ItemInWorldManager) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4ItemInWorldManager = $thread.pop();$par3Str = $thread.pop();$par2World = $thread.pop();$par1MinecraftServer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityPlayer__init_($this, $par2World, $par3Str);
        if ($rt_suspending()) {
            break main;
        }
        $this.$translator = $rt_s(128);
        $this.$loadedChunks = new ju_LinkedList;
        $this.$destroyedItemsNetCache = new ju_LinkedList;
        $this.$field_130068_bO = 1.401298464324817E-45;
        $this.$lastHealth = (-1.0E8);
        $this.$lastFoodLevel = (-99999999);
        $this.$wasHungry = 1;
        $this.$lastExperience = (-99999999);
        $this.$initialInvulnerability = 60;
        $this.$chatColours0 = 1;
        $par4ItemInWorldManager.$thisPlayerMP = $this;
        $this.$theItemInWorldManager = $par4ItemInWorldManager;
        $this.$renderDistance = $par1MinecraftServer.$serverConfigManager.$viewDistance;
        var$5 = $par2World.$worldInfo.$getSpawnX();
        var$6 = $par2World.$worldInfo.$getSpawnY();
        var$7 = $par2World.$worldInfo.$getSpawnZ();
        if (!$par2World.$provider.$hasNoSky && $par2World.$worldInfo.$getGameType() !== nms_EnumGameType_ADVENTURE) {
            $par3Str = $this.$rand;
            var$8 = Long_and(Long_add(Long_mul($par3Str.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Str.$seed = var$8;
            var$9 = Long_lo(Long_shru(var$8, 17));
            while (true) {
                var$10 = var$9 % 10 | 0;
                if (((var$9 - var$10 | 0) + 9 | 0) >= 0)
                    break;
                var$8 = Long_and(Long_add(Long_mul($par3Str.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Str.$seed = var$8;
                var$9 = Long_lo(Long_shru(var$8, 17));
            }
            var$5 = var$5 + (var$10 - 5 | 0) | 0;
            var$8 = Long_and(Long_add(Long_mul($par3Str.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Str.$seed = var$8;
            var$9 = Long_lo(Long_shru(var$8, 17));
            while (true) {
                var$10 = var$9 % 10 | 0;
                if (((var$9 - var$10 | 0) + 9 | 0) >= 0)
                    break;
                var$8 = Long_and(Long_add(Long_mul($par3Str.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Str.$seed = var$8;
                var$9 = Long_lo(Long_shru(var$8, 17));
            }
            var$7 = var$7 + (var$10 - 5 | 0) | 0;
            $ptr = 3;
            continue main;
        }
        $this.$mcServer3 = $par1MinecraftServer;
        $this.$stepHeight = 0.0;
        $this.$yOffset = 0.0;
        var$11 = var$5 + 0.5;
        var$12 = var$6;
        var$13 = var$7 + 0.5;
        $this.$posX = var$11;
        $this.$prevPosX = var$11;
        $this.$lastTickPosX = var$11;
        var$12 = var$12 + 0.0;
        $this.$posY = var$12;
        $this.$prevPosY = var$12;
        $this.$lastTickPosY = var$12;
        $this.$posZ = var$13;
        $this.$prevPosZ = var$13;
        $this.$lastTickPosZ = var$13;
        $this.$rotationYaw = 0.0;
        $this.$rotationPitch = 0.0;
        nms_Entity_setPosition($this, var$11, var$12, var$13);
        $par1MinecraftServer = $this.$boundingBox0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes($par2World, $this, $par1MinecraftServer);
        if ($rt_suspending()) {
            break main;
        }
        $par1MinecraftServer = $tmp;
        if ($par1MinecraftServer.$size0 ? 0 : 1)
            return;
        nms_Entity_setPosition($this, $this.$posX, $this.$posY + 1.0, $this.$posZ);
        $par1MinecraftServer = $this.$boundingBox0;
        continue main;
    case 3:
        $tmp = nms_World_getTopSolidOrLiquidBlock($par2World, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        $this.$mcServer3 = $par1MinecraftServer;
        $this.$stepHeight = 0.0;
        $this.$yOffset = 0.0;
        var$11 = var$5 + 0.5;
        var$12 = var$6;
        var$13 = var$7 + 0.5;
        $this.$posX = var$11;
        $this.$prevPosX = var$11;
        $this.$lastTickPosX = var$11;
        var$12 = var$12 + 0.0;
        $this.$posY = var$12;
        $this.$prevPosY = var$12;
        $this.$lastTickPosY = var$12;
        $this.$posZ = var$13;
        $this.$prevPosZ = var$13;
        $this.$lastTickPosZ = var$13;
        $this.$rotationYaw = 0.0;
        $this.$rotationPitch = 0.0;
        nms_Entity_setPosition($this, var$11, var$12, var$13);
        $par1MinecraftServer = $this.$boundingBox0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MinecraftServer, $par2World, $par3Str, $par4ItemInWorldManager, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityPlayerMP__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_EntityPlayerMP();
    nms_EntityPlayerMP__init_(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_EntityPlayerMP_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityPlayer_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2025).$hashCode1) {
                var$2 = 0;
                while (true) {
                    if (var$2 >= $rt_s(2025).$nativeString.length)
                        break a;
                    $rt_s(2025).$hashCode1 = (31 * $rt_s(2025).$hashCode1 | 0) + $rt_s(2025).$nativeString.charCodeAt(var$2) | 0;
                    var$2 = var$2 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2025).$hashCode1;
        var$4 = $par1NBTTagCompound.$elementData.data;
        $par1NBTTagCompound = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($par1NBTTagCompound !== null) {
            if ($par1NBTTagCompound.$origKeyHash == var$3) {
                b: {
                    var$5 = $par1NBTTagCompound.$key;
                    if ($rt_s(2025) !== var$5) {
                        if ($rt_s(2025) === var$5)
                            var$2 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$2 = 0;
                        else {
                            var$5 = var$5;
                            var$2 = $rt_s(2025).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$2) {
                            var$2 = 0;
                            break b;
                        }
                    }
                    var$2 = 1;
                }
                if (var$2)
                    break;
            }
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
        if ($par1NBTTagCompound === null ? 0 : 1) {
            $par1NBTTagCompound = $this.$theItemInWorldManager;
            var$5 = nms_MinecraftServer_mcServer.$gamemode;
            $par1NBTTagCompound.$gameType = var$5;
            nms_EnumGameType_configurePlayerCapabilities(var$5, $par1NBTTagCompound.$thisPlayerMP.$capabilities);
            $par1NBTTagCompound = $par1NBTTagCompound.$thisPlayerMP;
            var$5 = $par1NBTTagCompound.$playerNetServerHandler;
            if (var$5 !== null)
                c: {
                    var$6 = new nms_Packet202PlayerAbilities;
                    $par1NBTTagCompound = $par1NBTTagCompound.$capabilities;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$disableDamage0 = $par1NBTTagCompound.$disableDamage;
                    var$6.$isFlying0 = $par1NBTTagCompound.$isFlying;
                    var$6.$allowFlying0 = $par1NBTTagCompound.$allowFlying;
                    var$6.$isCreativeMode0 = $par1NBTTagCompound.$isCreativeMode;
                    var$6.$flySpeed0 = $par1NBTTagCompound.$flySpeed;
                    var$6.$walkSpeed0 = $par1NBTTagCompound.$walkSpeed;
                    if (var$6 instanceof nms_Packet3Chat) {
                        $par1NBTTagCompound = var$6;
                        var$7 = var$5.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break c;
                        if (var$7 == 1 && !$par1NBTTagCompound.$isServer)
                            break c;
                    }
                    try {
                        $par1NBTTagCompound = var$5.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1NBTTagCompound = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace($par1NBTTagCompound, jl_System_errCache);
                }
        }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1NBTTagCompound, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1NBTTagCompound = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace($par1NBTTagCompound, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityPlayerMP_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_EntityPlayer_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$theItemInWorldManager.$gameType.$id3;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2025);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2025), $par1NBTTagCompound);
},
nms_EntityPlayerMP_getEyeHeight = $this => {
    return 1.6200000047683716;
},
nms_EntityPlayerMP_onUpdate = $this => {
    let $var8, $var1, $var1_0, $var2, var$5, $var6, $var5, $var11, $var4, $var4_0, $var10$index, var$12, var$13, $var9, var$15, $var10$index_0, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10$index_0 = $thread.pop();var$15 = $thread.pop();$var9 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var10$index = $thread.pop();$var4_0 = $thread.pop();$var4 = $thread.pop();$var11 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();$var1_0 = $thread.pop();$var1 = $thread.pop();$var8 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $this.$theItemInWorldManager;
        $ptr = 1;
    case 1:
        nms_ItemInWorldManager_updateBlockRemoving($var8);
        if ($rt_suspending()) {
            break main;
        }
        $this.$initialInvulnerability = $this.$initialInvulnerability - 1 | 0;
        $var8 = $this.$openContainer;
        $ptr = 2;
    case 2:
        $var8.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote) {
            $var8 = $this.$openContainer;
            $ptr = 3;
            continue main;
        }
        while (true) {
            $var8 = $this.$destroyedItemsNetCache;
            $var1 = $var8.$size2;
            if ($var1 ? 0 : 1)
                break;
            $var1_0 = 127;
            if ($var1 < $var1_0)
                $var1_0 = $var1;
            $var2 = $rt_createIntArray($var1_0);
            var$5 = $var2.data;
            $var6 = new ju_LinkedList$SequentialListIterator;
            $var5 = $var8.$firstEntry;
            $var11 = null;
            $var6.$this$02 = $var8;
            $var6.$version = $var8.$modCount;
            $var6.$nextEntry1 = $var5;
            $var6.$prevEntry = $var11;
            $var6.$index4 = 0;
            $var4 = 0;
            while (($var6.$nextEntry1 === null ? 0 : 1) && $var4 < $var1_0) {
                $var4_0 = $var4 + 1 | 0;
                var$5[$var4] = (ju_LinkedList$SequentialListIterator_next($var6)).$value;
                ju_LinkedList$SequentialListIterator_remove($var6);
                $var4 = $var4_0;
            }
            a: {
                $var8 = $this.$playerNetServerHandler;
                $var6 = new nms_Packet29DestroyEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$entityId3 = $var2;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var11 = $var6;
                    $var1_0 = $var8.$playerEntity.$chatVisibility;
                    if ($var1_0 == 2)
                        break a;
                    if ($var1_0 == 1 && !$var11.$isServer)
                        break a;
                }
                try {
                    $var8 = $var8.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var11 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var11);
                    $var11.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var6);
                    $var6.$out0 = $var11;
                    $var11 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var11);
                    $var6.$sb = $var11;
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($var8, jl_System_errCache);
            }
        }
        $var8 = $this.$loadedChunks;
        $var10$index = $var8.$size2 ? 0 : 1;
        b: {
            if (!$var10$index) {
                $var6 = new ju_ArrayList;
                $var6.$array = $rt_createArray(jl_Object, 10);
                var$12 = new ju_LinkedList$SequentialListIterator;
                $var5 = $var8.$firstEntry;
                $var11 = null;
                var$12.$this$02 = $var8;
                var$12.$version = $var8.$modCount;
                var$12.$nextEntry1 = $var5;
                var$12.$prevEntry = $var11;
                var$12.$index4 = 0;
                $var8 = new ju_ArrayList;
                $var8.$array = $rt_createArray(jl_Object, 10);
                var$13 = 0;
                c: {
                    d: {
                        e: while (true) {
                            if (!(var$12.$nextEntry1 === null ? 0 : 1))
                                break c;
                            if ($var6.$size0 >= ($this.$renderDistance / 2 | 0))
                                break c;
                            $var9 = ju_LinkedList$SequentialListIterator_next(var$12);
                            ju_LinkedList$SequentialListIterator_remove(var$12);
                            if ($var9 !== null) {
                                $var11 = $this.$worldObj;
                                $var4_0 = $var9.$chunkXPos;
                                $var1_0 = $var4_0 << 4;
                                $var1 = $var9.$chunkZPos;
                                $var4 = $var1 << 4;
                                $var1_0 = $var1_0 >> 4;
                                $var10$index = $var4 >> 4;
                                $var5 = $var11.$chunkProvider;
                                $var11 = $var5.$loadedChunkHashMap;
                                var$15 = Long_or(Long_and(Long_fromInt($var1_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10$index), Long_create(4294967295, 0)), 32));
                                $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                $var4 = $var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0);
                                $var2 = $var11.$hashArray.data;
                                $var10$index_0 = $var2.length - 1 | 0;
                                $var11 = $var2[$var4 & $var10$index_0];
                                f: {
                                    while (true) {
                                        if ($var11 === null) {
                                            $var11 = null;
                                            break f;
                                        }
                                        if (Long_eq($var11.$key1, var$15))
                                            break;
                                        $var11 = $var11.$nextEntry;
                                    }
                                }
                                if ($var11 === null ? 0 : 1) {
                                    var$15 = Long_or(Long_and(Long_fromInt($var4_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                    $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                    $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                    $var11 = $var2[($var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0)) & $var10$index_0];
                                    g: {
                                        while ($var11 !== null) {
                                            if (Long_eq($var11.$key1, var$15)) {
                                                $var11 = $var11.$value4;
                                                break g;
                                            }
                                            $var11 = $var11.$nextEntry;
                                        }
                                        $var11 = null;
                                    }
                                    $var11 = $var11;
                                    if ($var11 === null) {
                                        if ($var5.$worldObj0.$findingSpawnPoint)
                                            break d;
                                        if ($var5.$loadChunkOnProvideRequest)
                                            break d;
                                        $var11 = $var5.$defaultEmptyChunk;
                                    }
                                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                                    $var2 = $var6.$array.data;
                                    $var1_0 = $var6.$size0;
                                    $var6.$size0 = $var1_0 + 1 | 0;
                                    $var2[$var1_0] = $var11;
                                    $var6.$modCount = $var6.$modCount + 1 | 0;
                                    $var11 = $this.$worldObj;
                                    $var1_0 = $var9.$chunkXPos * 16 | 0;
                                    $var10$index = $var9.$chunkZPos * 16 | 0;
                                    $var11 = nms_WorldServer_getAllTileEntityInBox($var11, $var1_0, 0, $var10$index, $var1_0 + 16 | 0, 256, $var10$index + 16 | 0);
                                    $var10$index_0 = $var11.$modCount;
                                    $var4_0 = $var11.$size();
                                    $var1_0 = var$13;
                                    while ($var1_0 >= $var4_0 ? 0 : 1) {
                                        if ($var10$index_0 < $var11.$modCount)
                                            break e;
                                        $var4 = $var1_0 + 1 | 0;
                                        $var5 = $var11.$get($var1_0);
                                        ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                                        $var2 = $var8.$array.data;
                                        $var1_0 = $var8.$size0;
                                        $var8.$size0 = $var1_0 + 1 | 0;
                                        $var2[$var1_0] = $var5;
                                        $var8.$modCount = $var8.$modCount + 1 | 0;
                                        $var1_0 = $var4;
                                    }
                                }
                            }
                        }
                        $var8 = new ju_ConcurrentModificationException;
                        $var8.$suppressionEnabled = 1;
                        $var8.$writableStackTrace = 1;
                        $rt_throw($var8);
                    }
                    $ptr = 8;
                    continue main;
                }
                if (!($var6.$size0 ? 0 : 1)) {
                    h: {
                        $var11 = $this.$playerNetServerHandler;
                        $var5 = nms_Packet56MapChunks__init_($var6);
                        if ($var5 instanceof nms_Packet3Chat) {
                            var$12 = $var5;
                            $var1_0 = $var11.$playerEntity.$chatVisibility;
                            if ($var1_0 == 2)
                                break h;
                            if ($var1_0 == 1 && !var$12.$isServer)
                                break h;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            var$12 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$12);
                            var$12.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var5);
                            $var5.$out0 = var$12;
                            var$12 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$12);
                            $var5.$sb = var$12;
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($var11, jl_System_errCache);
                    }
                    $var10$index_0 = 0;
                    $var1_0 = $var8.$modCount;
                    $var4 = $var8.$size();
                    while (true) {
                        if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                            $var1_0 = $var6.$modCount;
                            $var4 = $var6.$size();
                            if (!(0 >= $var4 ? 0 : 1))
                                break b;
                            else {
                                if ($var1_0 < $var6.$modCount) {
                                    $var8 = new ju_ConcurrentModificationException;
                                    $var8.$suppressionEnabled = 1;
                                    $var8.$writableStackTrace = 1;
                                    $rt_throw($var8);
                                }
                                $var10$index = 0 + 1 | 0;
                                $var11 = $var6.$get(0);
                                $var8 = $this.$worldObj.$theEntityTracker;
                                $ptr = 10;
                                continue main;
                            }
                        }
                        if ($var1_0 < $var8.$modCount)
                            break;
                        $var10$index = $var10$index_0 + 1 | 0;
                        $var5 = $var8.$get($var10$index_0);
                        if ($var5 !== null) {
                            $var11 = $var5.$getDescriptionPacket();
                            if ($var11 !== null)
                                i: {
                                    $var5 = $this.$playerNetServerHandler;
                                    if ($var11 instanceof nms_Packet3Chat) {
                                        var$12 = $var11;
                                        $var4_0 = $var5.$playerEntity.$chatVisibility;
                                        if ($var4_0 == 2)
                                            break i;
                                        if ($var4_0 == 1 && !var$12.$isServer)
                                            break i;
                                    }
                                    try {
                                        $var5 = $var5.$netManager;
                                        $ptr = 9;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var11 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var5 = new otcic_JSStderrPrintStream;
                                        var$12 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_(var$12);
                                        var$12.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_($var5, var$12);
                                        $var5.$sb = jl_StringBuilder__init_();
                                        $var5.$buffer0 = $rt_createCharArray(32);
                                        $var5.$autoFlush = 0;
                                        $var5.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = $var5;
                                    }
                                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                                }
                        }
                        $var10$index_0 = $var10$index;
                    }
                    $var8 = new ju_ConcurrentModificationException;
                    $var8.$suppressionEnabled = 1;
                    $var8.$writableStackTrace = 1;
                    $rt_throw($var8);
                }
            }
        }
        return;
    case 3:
        $tmp = $var8.$canInteractWith($this);
        if ($rt_suspending()) {
            break main;
        }
        $var10$index = $tmp;
        if (!$var10$index) {
            j: {
                $var6 = $this.$playerNetServerHandler;
                $var8 = new nms_Packet101CloseWindow;
                $var10$index = $this.$openContainer.$windowId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$windowId3 = $var10$index;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var11 = $var8;
                    $var1_0 = $var6.$playerEntity.$chatVisibility;
                    if ($var1_0 == 2)
                        break j;
                    if ($var1_0 == 1 && !$var11.$isServer)
                        break j;
                }
                try {
                    $var6 = $var6.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var11 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var11);
                    $var11.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var6, $var11);
                    $var6.$sb = jl_StringBuilder__init_();
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($var8, jl_System_errCache);
            }
            $var8 = $this.$openContainer;
            $ptr = 5;
            continue main;
        }
        while (true) {
            $var8 = $this.$destroyedItemsNetCache;
            $var1 = $var8.$size2;
            if ($var1 ? 0 : 1)
                break;
            $var1_0 = 127;
            if ($var1 < $var1_0)
                $var1_0 = $var1;
            $var2 = $rt_createIntArray($var1_0);
            var$5 = $var2.data;
            $var6 = new ju_LinkedList$SequentialListIterator;
            $var5 = $var8.$firstEntry;
            $var11 = null;
            $var6.$this$02 = $var8;
            $var6.$version = $var8.$modCount;
            $var6.$nextEntry1 = $var5;
            $var6.$prevEntry = $var11;
            $var6.$index4 = 0;
            $var4 = 0;
            while (($var6.$nextEntry1 === null ? 0 : 1) && $var4 < $var1_0) {
                $var4_0 = $var4 + 1 | 0;
                var$5[$var4] = (ju_LinkedList$SequentialListIterator_next($var6)).$value;
                ju_LinkedList$SequentialListIterator_remove($var6);
                $var4 = $var4_0;
            }
            k: {
                $var8 = $this.$playerNetServerHandler;
                $var6 = new nms_Packet29DestroyEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$entityId3 = $var2;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var11 = $var6;
                    $var1_0 = $var8.$playerEntity.$chatVisibility;
                    if ($var1_0 == 2)
                        break k;
                    if ($var1_0 == 1 && !$var11.$isServer)
                        break k;
                }
                try {
                    $var8 = $var8.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var11 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var11);
                    $var11.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var6);
                    $var6.$out0 = $var11;
                    $var11 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var11);
                    $var6.$sb = $var11;
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($var8, jl_System_errCache);
            }
        }
        $var8 = $this.$loadedChunks;
        $var10$index = $var8.$size2 ? 0 : 1;
        l: {
            if (!$var10$index) {
                $var6 = new ju_ArrayList;
                $var6.$array = $rt_createArray(jl_Object, 10);
                var$12 = new ju_LinkedList$SequentialListIterator;
                $var5 = $var8.$firstEntry;
                $var11 = null;
                var$12.$this$02 = $var8;
                var$12.$version = $var8.$modCount;
                var$12.$nextEntry1 = $var5;
                var$12.$prevEntry = $var11;
                var$12.$index4 = 0;
                $var8 = new ju_ArrayList;
                $var8.$array = $rt_createArray(jl_Object, 10);
                var$13 = 0;
                m: {
                    n: {
                        o: while (true) {
                            if (!(var$12.$nextEntry1 === null ? 0 : 1))
                                break m;
                            if ($var6.$size0 >= ($this.$renderDistance / 2 | 0))
                                break m;
                            $var9 = ju_LinkedList$SequentialListIterator_next(var$12);
                            ju_LinkedList$SequentialListIterator_remove(var$12);
                            if ($var9 !== null) {
                                $var11 = $this.$worldObj;
                                $var4_0 = $var9.$chunkXPos;
                                $var1_0 = $var4_0 << 4;
                                $var1 = $var9.$chunkZPos;
                                $var4 = $var1 << 4;
                                $var1_0 = $var1_0 >> 4;
                                $var10$index = $var4 >> 4;
                                $var5 = $var11.$chunkProvider;
                                $var11 = $var5.$loadedChunkHashMap;
                                var$15 = Long_or(Long_and(Long_fromInt($var1_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10$index), Long_create(4294967295, 0)), 32));
                                $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                $var4 = $var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0);
                                $var2 = $var11.$hashArray.data;
                                $var10$index_0 = $var2.length - 1 | 0;
                                $var11 = $var2[$var4 & $var10$index_0];
                                p: {
                                    while (true) {
                                        if ($var11 === null) {
                                            $var11 = null;
                                            break p;
                                        }
                                        if (Long_eq($var11.$key1, var$15))
                                            break;
                                        $var11 = $var11.$nextEntry;
                                    }
                                }
                                if ($var11 === null ? 0 : 1) {
                                    var$15 = Long_or(Long_and(Long_fromInt($var4_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                    $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                    $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                    $var11 = $var2[($var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0)) & $var10$index_0];
                                    q: {
                                        while ($var11 !== null) {
                                            if (Long_eq($var11.$key1, var$15)) {
                                                $var11 = $var11.$value4;
                                                break q;
                                            }
                                            $var11 = $var11.$nextEntry;
                                        }
                                        $var11 = null;
                                    }
                                    $var11 = $var11;
                                    if ($var11 === null) {
                                        if ($var5.$worldObj0.$findingSpawnPoint)
                                            break n;
                                        if ($var5.$loadChunkOnProvideRequest)
                                            break n;
                                        $var11 = $var5.$defaultEmptyChunk;
                                    }
                                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                                    $var2 = $var6.$array.data;
                                    $var1_0 = $var6.$size0;
                                    $var6.$size0 = $var1_0 + 1 | 0;
                                    $var2[$var1_0] = $var11;
                                    $var6.$modCount = $var6.$modCount + 1 | 0;
                                    $var11 = $this.$worldObj;
                                    $var1_0 = $var9.$chunkXPos * 16 | 0;
                                    $var10$index = $var9.$chunkZPos * 16 | 0;
                                    $var11 = nms_WorldServer_getAllTileEntityInBox($var11, $var1_0, 0, $var10$index, $var1_0 + 16 | 0, 256, $var10$index + 16 | 0);
                                    $var10$index_0 = $var11.$modCount;
                                    $var4_0 = $var11.$size();
                                    $var1_0 = var$13;
                                    while ($var1_0 >= $var4_0 ? 0 : 1) {
                                        if ($var10$index_0 < $var11.$modCount)
                                            break o;
                                        $var4 = $var1_0 + 1 | 0;
                                        $var5 = $var11.$get($var1_0);
                                        ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                                        $var2 = $var8.$array.data;
                                        $var1_0 = $var8.$size0;
                                        $var8.$size0 = $var1_0 + 1 | 0;
                                        $var2[$var1_0] = $var5;
                                        $var8.$modCount = $var8.$modCount + 1 | 0;
                                        $var1_0 = $var4;
                                    }
                                }
                            }
                        }
                        $var8 = new ju_ConcurrentModificationException;
                        $var8.$suppressionEnabled = 1;
                        $var8.$writableStackTrace = 1;
                        $rt_throw($var8);
                    }
                    $ptr = 8;
                    continue main;
                }
                if (!($var6.$size0 ? 0 : 1)) {
                    r: {
                        $var11 = $this.$playerNetServerHandler;
                        $var5 = nms_Packet56MapChunks__init_($var6);
                        if ($var5 instanceof nms_Packet3Chat) {
                            var$12 = $var5;
                            $var1_0 = $var11.$playerEntity.$chatVisibility;
                            if ($var1_0 == 2)
                                break r;
                            if ($var1_0 == 1 && !var$12.$isServer)
                                break r;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            var$12 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$12);
                            var$12.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var5);
                            $var5.$out0 = var$12;
                            var$12 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$12);
                            $var5.$sb = var$12;
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($var11, jl_System_errCache);
                    }
                    $var10$index_0 = 0;
                    $var1_0 = $var8.$modCount;
                    $var4 = $var8.$size();
                    while (true) {
                        if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                            $var1_0 = $var6.$modCount;
                            $var4 = $var6.$size();
                            if (!(0 >= $var4 ? 0 : 1))
                                break l;
                            else {
                                if ($var1_0 < $var6.$modCount) {
                                    $var8 = new ju_ConcurrentModificationException;
                                    $var8.$suppressionEnabled = 1;
                                    $var8.$writableStackTrace = 1;
                                    $rt_throw($var8);
                                }
                                $var10$index = 0 + 1 | 0;
                                $var11 = $var6.$get(0);
                                $var8 = $this.$worldObj.$theEntityTracker;
                                $ptr = 10;
                                continue main;
                            }
                        }
                        if ($var1_0 < $var8.$modCount)
                            break;
                        $var10$index = $var10$index_0 + 1 | 0;
                        $var5 = $var8.$get($var10$index_0);
                        if ($var5 !== null) {
                            $var11 = $var5.$getDescriptionPacket();
                            if ($var11 !== null)
                                s: {
                                    $var5 = $this.$playerNetServerHandler;
                                    if ($var11 instanceof nms_Packet3Chat) {
                                        var$12 = $var11;
                                        $var4_0 = $var5.$playerEntity.$chatVisibility;
                                        if ($var4_0 == 2)
                                            break s;
                                        if ($var4_0 == 1 && !var$12.$isServer)
                                            break s;
                                    }
                                    try {
                                        $var5 = $var5.$netManager;
                                        $ptr = 9;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var11 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var5 = new otcic_JSStderrPrintStream;
                                        var$12 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_(var$12);
                                        var$12.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_($var5, var$12);
                                        $var5.$sb = jl_StringBuilder__init_();
                                        $var5.$buffer0 = $rt_createCharArray(32);
                                        $var5.$autoFlush = 0;
                                        $var5.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = $var5;
                                    }
                                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                                }
                        }
                        $var10$index_0 = $var10$index;
                    }
                    $var8 = new ju_ConcurrentModificationException;
                    $var8.$suppressionEnabled = 1;
                    $var8.$writableStackTrace = 1;
                    $rt_throw($var8);
                }
            }
        }
        return;
    case 4:
        t: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break t;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var11 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var11);
                $var11.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var6, $var11);
                $var6.$sb = jl_StringBuilder__init_();
                $var6.$buffer0 = $rt_createCharArray(32);
                $var6.$autoFlush = 0;
                $var6.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var6;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        $var8 = $this.$openContainer;
        $ptr = 5;
    case 5:
        $var8.$onContainerClosed($this);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $this.$inventoryContainer;
        $this.$openContainer = $var8;
        $this.$openContainer = $var8;
        while (true) {
            $var8 = $this.$destroyedItemsNetCache;
            $var1 = $var8.$size2;
            if ($var1 ? 0 : 1)
                break;
            $var1_0 = 127;
            if ($var1 < $var1_0)
                $var1_0 = $var1;
            $var2 = $rt_createIntArray($var1_0);
            var$5 = $var2.data;
            $var6 = new ju_LinkedList$SequentialListIterator;
            $var5 = $var8.$firstEntry;
            $var11 = null;
            $var6.$this$02 = $var8;
            $var6.$version = $var8.$modCount;
            $var6.$nextEntry1 = $var5;
            $var6.$prevEntry = $var11;
            $var6.$index4 = 0;
            $var4 = 0;
            while (($var6.$nextEntry1 === null ? 0 : 1) && $var4 < $var1_0) {
                $var4_0 = $var4 + 1 | 0;
                var$5[$var4] = (ju_LinkedList$SequentialListIterator_next($var6)).$value;
                ju_LinkedList$SequentialListIterator_remove($var6);
                $var4 = $var4_0;
            }
            u: {
                $var8 = $this.$playerNetServerHandler;
                $var6 = new nms_Packet29DestroyEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$entityId3 = $var2;
                if ($var6 instanceof nms_Packet3Chat) {
                    $var11 = $var6;
                    $var1_0 = $var8.$playerEntity.$chatVisibility;
                    if ($var1_0 == 2)
                        break u;
                    if ($var1_0 == 1 && !$var11.$isServer)
                        break u;
                }
                try {
                    $var8 = $var8.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var6 = new otcic_JSStderrPrintStream;
                    $var11 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var11);
                    $var11.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var6);
                    $var6.$out0 = $var11;
                    $var11 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var11);
                    $var6.$sb = $var11;
                    $var6.$buffer0 = $rt_createCharArray(32);
                    $var6.$autoFlush = 0;
                    $var6.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var6;
                }
                jl_Throwable_printStackTrace($var8, jl_System_errCache);
            }
        }
        $var8 = $this.$loadedChunks;
        $var10$index = $var8.$size2 ? 0 : 1;
        v: {
            if (!$var10$index) {
                $var6 = new ju_ArrayList;
                $var6.$array = $rt_createArray(jl_Object, 10);
                var$12 = new ju_LinkedList$SequentialListIterator;
                $var5 = $var8.$firstEntry;
                $var11 = null;
                var$12.$this$02 = $var8;
                var$12.$version = $var8.$modCount;
                var$12.$nextEntry1 = $var5;
                var$12.$prevEntry = $var11;
                var$12.$index4 = 0;
                $var8 = new ju_ArrayList;
                $var8.$array = $rt_createArray(jl_Object, 10);
                var$13 = 0;
                b: {
                    c: {
                        d: while (true) {
                            if (!(var$12.$nextEntry1 === null ? 0 : 1))
                                break b;
                            if ($var6.$size0 >= ($this.$renderDistance / 2 | 0))
                                break b;
                            $var9 = ju_LinkedList$SequentialListIterator_next(var$12);
                            ju_LinkedList$SequentialListIterator_remove(var$12);
                            if ($var9 !== null) {
                                $var11 = $this.$worldObj;
                                $var4_0 = $var9.$chunkXPos;
                                $var1_0 = $var4_0 << 4;
                                $var1 = $var9.$chunkZPos;
                                $var4 = $var1 << 4;
                                $var1_0 = $var1_0 >> 4;
                                $var10$index = $var4 >> 4;
                                $var5 = $var11.$chunkProvider;
                                $var11 = $var5.$loadedChunkHashMap;
                                var$15 = Long_or(Long_and(Long_fromInt($var1_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10$index), Long_create(4294967295, 0)), 32));
                                $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                $var4 = $var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0);
                                $var2 = $var11.$hashArray.data;
                                $var10$index_0 = $var2.length - 1 | 0;
                                $var11 = $var2[$var4 & $var10$index_0];
                                o: {
                                    while (true) {
                                        if ($var11 === null) {
                                            $var11 = null;
                                            break o;
                                        }
                                        if (Long_eq($var11.$key1, var$15))
                                            break;
                                        $var11 = $var11.$nextEntry;
                                    }
                                }
                                if ($var11 === null ? 0 : 1) {
                                    var$15 = Long_or(Long_and(Long_fromInt($var4_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                    $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                    $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                    $var11 = $var2[($var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0)) & $var10$index_0];
                                    w: {
                                        while ($var11 !== null) {
                                            if (Long_eq($var11.$key1, var$15)) {
                                                $var11 = $var11.$value4;
                                                break w;
                                            }
                                            $var11 = $var11.$nextEntry;
                                        }
                                        $var11 = null;
                                    }
                                    $var11 = $var11;
                                    if ($var11 === null) {
                                        if ($var5.$worldObj0.$findingSpawnPoint)
                                            break c;
                                        if ($var5.$loadChunkOnProvideRequest)
                                            break c;
                                        $var11 = $var5.$defaultEmptyChunk;
                                    }
                                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                                    $var2 = $var6.$array.data;
                                    $var1_0 = $var6.$size0;
                                    $var6.$size0 = $var1_0 + 1 | 0;
                                    $var2[$var1_0] = $var11;
                                    $var6.$modCount = $var6.$modCount + 1 | 0;
                                    $var11 = $this.$worldObj;
                                    $var1_0 = $var9.$chunkXPos * 16 | 0;
                                    $var10$index = $var9.$chunkZPos * 16 | 0;
                                    $var11 = nms_WorldServer_getAllTileEntityInBox($var11, $var1_0, 0, $var10$index, $var1_0 + 16 | 0, 256, $var10$index + 16 | 0);
                                    $var10$index_0 = $var11.$modCount;
                                    $var4_0 = $var11.$size();
                                    $var1_0 = var$13;
                                    while ($var1_0 >= $var4_0 ? 0 : 1) {
                                        if ($var10$index_0 < $var11.$modCount)
                                            break d;
                                        $var4 = $var1_0 + 1 | 0;
                                        $var5 = $var11.$get($var1_0);
                                        ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                                        $var2 = $var8.$array.data;
                                        $var1_0 = $var8.$size0;
                                        $var8.$size0 = $var1_0 + 1 | 0;
                                        $var2[$var1_0] = $var5;
                                        $var8.$modCount = $var8.$modCount + 1 | 0;
                                        $var1_0 = $var4;
                                    }
                                }
                            }
                        }
                        $var8 = new ju_ConcurrentModificationException;
                        $var8.$suppressionEnabled = 1;
                        $var8.$writableStackTrace = 1;
                        $rt_throw($var8);
                    }
                    $ptr = 8;
                    continue main;
                }
                if (!($var6.$size0 ? 0 : 1)) {
                    x: {
                        $var11 = $this.$playerNetServerHandler;
                        $var5 = nms_Packet56MapChunks__init_($var6);
                        if ($var5 instanceof nms_Packet3Chat) {
                            var$12 = $var5;
                            $var1_0 = $var11.$playerEntity.$chatVisibility;
                            if ($var1_0 == 2)
                                break x;
                            if ($var1_0 == 1 && !var$12.$isServer)
                                break x;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            var$12 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$12);
                            var$12.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var5);
                            $var5.$out0 = var$12;
                            var$12 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$12);
                            $var5.$sb = var$12;
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($var11, jl_System_errCache);
                    }
                    $var10$index_0 = 0;
                    $var1_0 = $var8.$modCount;
                    $var4 = $var8.$size();
                    while (true) {
                        if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                            $var1_0 = $var6.$modCount;
                            $var4 = $var6.$size();
                            if (!(0 >= $var4 ? 0 : 1))
                                break v;
                            else {
                                if ($var1_0 < $var6.$modCount) {
                                    $var8 = new ju_ConcurrentModificationException;
                                    $var8.$suppressionEnabled = 1;
                                    $var8.$writableStackTrace = 1;
                                    $rt_throw($var8);
                                }
                                $var10$index = 0 + 1 | 0;
                                $var11 = $var6.$get(0);
                                $var8 = $this.$worldObj.$theEntityTracker;
                                $ptr = 10;
                                continue main;
                            }
                        }
                        if ($var1_0 < $var8.$modCount)
                            break;
                        $var10$index = $var10$index_0 + 1 | 0;
                        $var5 = $var8.$get($var10$index_0);
                        if ($var5 !== null) {
                            $var11 = $var5.$getDescriptionPacket();
                            if ($var11 !== null)
                                y: {
                                    $var5 = $this.$playerNetServerHandler;
                                    if ($var11 instanceof nms_Packet3Chat) {
                                        var$12 = $var11;
                                        $var4_0 = $var5.$playerEntity.$chatVisibility;
                                        if ($var4_0 == 2)
                                            break y;
                                        if ($var4_0 == 1 && !var$12.$isServer)
                                            break y;
                                    }
                                    try {
                                        $var5 = $var5.$netManager;
                                        $ptr = 9;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var11 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var5 = new otcic_JSStderrPrintStream;
                                        var$12 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_(var$12);
                                        var$12.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_($var5, var$12);
                                        $var5.$sb = jl_StringBuilder__init_();
                                        $var5.$buffer0 = $rt_createCharArray(32);
                                        $var5.$autoFlush = 0;
                                        $var5.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = $var5;
                                    }
                                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                                }
                        }
                        $var10$index_0 = $var10$index;
                    }
                    $var8 = new ju_ConcurrentModificationException;
                    $var8.$suppressionEnabled = 1;
                    $var8.$writableStackTrace = 1;
                    $rt_throw($var8);
                }
            }
        }
        return;
    case 6:
        t: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                break t;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var6 = jl_System_errCache;
            if ($var6 === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var11 = new ji_ByteArrayOutputStream;
                $var10$index = 32;
                jl_Object__init_($var11);
                $var2 = $rt_createByteArray($var10$index);
                $var11.$buf = $var2;
                $var10$index = 0;
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var11;
                $var11 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var11);
                $var6.$sb = $var11;
                $var1_0 = 32;
                $var2 = $rt_createCharArray($var1_0);
                $var6.$buffer0 = $var2;
                $var6.$autoFlush = $var10$index;
                $var11 = jnci_UTF8Charset_INSTANCE;
                $var6.$charset = $var11;
                jl_System_errCache = $var6;
            }
            $var6 = jl_System_errCache;
            jl_Throwable_printStackTrace($var8, $var6);
        }
        z: while (true) {
            while (true) {
                $var8 = $this.$destroyedItemsNetCache;
                $var1 = $var8.$size2;
                if ($var1 ? 0 : 1)
                    break z;
                $var1_0 = 127;
                if ($var1 < $var1_0)
                    $var1_0 = $var1;
                $var2 = $rt_createIntArray($var1_0);
                var$5 = $var2.data;
                $var6 = new ju_LinkedList$SequentialListIterator;
                $var5 = $var8.$firstEntry;
                $var11 = null;
                $var6.$this$02 = $var8;
                $var6.$version = $var8.$modCount;
                $var6.$nextEntry1 = $var5;
                $var6.$prevEntry = $var11;
                $var6.$index4 = 0;
                $var4 = 0;
                while (($var6.$nextEntry1 === null ? 0 : 1) && $var4 < $var1_0) {
                    $var4_0 = $var4 + 1 | 0;
                    var$5[$var4] = (ju_LinkedList$SequentialListIterator_next($var6)).$value;
                    ju_LinkedList$SequentialListIterator_remove($var6);
                    $var4 = $var4_0;
                }
                $var8 = $this.$playerNetServerHandler;
                $var6 = new nms_Packet29DestroyEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var6.$entityId3 = $var2;
                if (!($var6 instanceof nms_Packet3Chat))
                    break;
                $var11 = $var6;
                $var1_0 = $var8.$playerEntity.$chatVisibility;
                if ($var1_0 == 2)
                    continue;
                if ($var1_0 != 1)
                    break;
                if ($var11.$isServer)
                    break;
            }
            try {
                $var8 = $var8.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var6 = jl_System_errCache;
            if ($var6 === null) {
                $var6 = new otcic_JSStderrPrintStream;
                $var11 = new ji_ByteArrayOutputStream;
                $var10$index = 32;
                jl_Object__init_($var11);
                $var2 = $rt_createByteArray($var10$index);
                $var11.$buf = $var2;
                $var10$index = 0;
                ji_OutputStream__init_($var6);
                $var6.$out0 = $var11;
                $var11 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var11);
                $var6.$sb = $var11;
                $var1_0 = 32;
                $var2 = $rt_createCharArray($var1_0);
                $var6.$buffer0 = $var2;
                $var6.$autoFlush = $var10$index;
                $var11 = jnci_UTF8Charset_INSTANCE;
                $var6.$charset = $var11;
                jl_System_errCache = $var6;
            }
            $var6 = jl_System_errCache;
            jl_Throwable_printStackTrace($var8, $var6);
        }
        $var8 = $this.$loadedChunks;
        $var10$index = $var8.$size2 ? 0 : 1;
        d: {
            if (!$var10$index) {
                $var6 = new ju_ArrayList;
                $var6.$array = $rt_createArray(jl_Object, 10);
                var$12 = new ju_LinkedList$SequentialListIterator;
                $var5 = $var8.$firstEntry;
                $var11 = null;
                var$12.$this$02 = $var8;
                var$12.$version = $var8.$modCount;
                var$12.$nextEntry1 = $var5;
                var$12.$prevEntry = $var11;
                var$12.$index4 = 0;
                $var8 = new ju_ArrayList;
                $var8.$array = $rt_createArray(jl_Object, 10);
                var$13 = 0;
                e: {
                    l: {
                        m: while (true) {
                            if (!(var$12.$nextEntry1 === null ? 0 : 1))
                                break e;
                            if ($var6.$size0 >= ($this.$renderDistance / 2 | 0))
                                break e;
                            $var9 = ju_LinkedList$SequentialListIterator_next(var$12);
                            ju_LinkedList$SequentialListIterator_remove(var$12);
                            if ($var9 !== null) {
                                $var11 = $this.$worldObj;
                                $var4_0 = $var9.$chunkXPos;
                                $var1_0 = $var4_0 << 4;
                                $var1 = $var9.$chunkZPos;
                                $var4 = $var1 << 4;
                                $var1_0 = $var1_0 >> 4;
                                $var10$index = $var4 >> 4;
                                $var5 = $var11.$chunkProvider;
                                $var11 = $var5.$loadedChunkHashMap;
                                var$15 = Long_or(Long_and(Long_fromInt($var1_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10$index), Long_create(4294967295, 0)), 32));
                                $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                $var4 = $var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0);
                                $var2 = $var11.$hashArray.data;
                                $var10$index_0 = $var2.length - 1 | 0;
                                $var11 = $var2[$var4 & $var10$index_0];
                                ba: {
                                    while (true) {
                                        if ($var11 === null) {
                                            $var11 = null;
                                            break ba;
                                        }
                                        if (Long_eq($var11.$key1, var$15))
                                            break;
                                        $var11 = $var11.$nextEntry;
                                    }
                                }
                                if ($var11 === null ? 0 : 1) {
                                    var$15 = Long_or(Long_and(Long_fromInt($var4_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                                    $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                                    $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                                    $var11 = $var2[($var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0)) & $var10$index_0];
                                    bb: {
                                        while ($var11 !== null) {
                                            if (Long_eq($var11.$key1, var$15)) {
                                                $var11 = $var11.$value4;
                                                break bb;
                                            }
                                            $var11 = $var11.$nextEntry;
                                        }
                                        $var11 = null;
                                    }
                                    $var11 = $var11;
                                    if ($var11 === null) {
                                        if ($var5.$worldObj0.$findingSpawnPoint)
                                            break l;
                                        if ($var5.$loadChunkOnProvideRequest)
                                            break l;
                                        $var11 = $var5.$defaultEmptyChunk;
                                    }
                                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                                    $var2 = $var6.$array.data;
                                    $var1_0 = $var6.$size0;
                                    $var6.$size0 = $var1_0 + 1 | 0;
                                    $var2[$var1_0] = $var11;
                                    $var6.$modCount = $var6.$modCount + 1 | 0;
                                    $var11 = $this.$worldObj;
                                    $var1_0 = $var9.$chunkXPos * 16 | 0;
                                    $var10$index = $var9.$chunkZPos * 16 | 0;
                                    $var11 = nms_WorldServer_getAllTileEntityInBox($var11, $var1_0, 0, $var10$index, $var1_0 + 16 | 0, 256, $var10$index + 16 | 0);
                                    $var10$index_0 = $var11.$modCount;
                                    $var4_0 = $var11.$size();
                                    $var1_0 = var$13;
                                    while ($var1_0 >= $var4_0 ? 0 : 1) {
                                        if ($var10$index_0 < $var11.$modCount)
                                            break m;
                                        $var4 = $var1_0 + 1 | 0;
                                        $var5 = $var11.$get($var1_0);
                                        ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                                        $var2 = $var8.$array.data;
                                        $var1_0 = $var8.$size0;
                                        $var8.$size0 = $var1_0 + 1 | 0;
                                        $var2[$var1_0] = $var5;
                                        $var8.$modCount = $var8.$modCount + 1 | 0;
                                        $var1_0 = $var4;
                                    }
                                }
                            }
                        }
                        $var8 = new ju_ConcurrentModificationException;
                        $var8.$suppressionEnabled = 1;
                        $var8.$writableStackTrace = 1;
                        $rt_throw($var8);
                    }
                    $ptr = 8;
                    continue main;
                }
                if (!($var6.$size0 ? 0 : 1)) {
                    bc: {
                        $var11 = $this.$playerNetServerHandler;
                        $var5 = nms_Packet56MapChunks__init_($var6);
                        if ($var5 instanceof nms_Packet3Chat) {
                            var$12 = $var5;
                            $var1_0 = $var11.$playerEntity.$chatVisibility;
                            if ($var1_0 == 2)
                                break bc;
                            if ($var1_0 == 1 && !var$12.$isServer)
                                break bc;
                        }
                        try {
                            $var11 = $var11.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            var$12 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$12);
                            var$12.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var5);
                            $var5.$out0 = var$12;
                            var$12 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$12);
                            $var5.$sb = var$12;
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($var11, jl_System_errCache);
                    }
                    $var10$index_0 = 0;
                    $var1_0 = $var8.$modCount;
                    $var4 = $var8.$size();
                    while (true) {
                        if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                            $var1_0 = $var6.$modCount;
                            $var4 = $var6.$size();
                            if (!(0 >= $var4 ? 0 : 1))
                                break d;
                            else {
                                if ($var1_0 < $var6.$modCount) {
                                    $var8 = new ju_ConcurrentModificationException;
                                    $var8.$suppressionEnabled = 1;
                                    $var8.$writableStackTrace = 1;
                                    $rt_throw($var8);
                                }
                                $var10$index = 0 + 1 | 0;
                                $var11 = $var6.$get(0);
                                $var8 = $this.$worldObj.$theEntityTracker;
                                $ptr = 10;
                                continue main;
                            }
                        }
                        if ($var1_0 < $var8.$modCount)
                            break;
                        $var10$index = $var10$index_0 + 1 | 0;
                        $var5 = $var8.$get($var10$index_0);
                        if ($var5 !== null) {
                            $var11 = $var5.$getDescriptionPacket();
                            if ($var11 !== null)
                                bd: {
                                    $var5 = $this.$playerNetServerHandler;
                                    if ($var11 instanceof nms_Packet3Chat) {
                                        var$12 = $var11;
                                        $var4_0 = $var5.$playerEntity.$chatVisibility;
                                        if ($var4_0 == 2)
                                            break bd;
                                        if ($var4_0 == 1 && !var$12.$isServer)
                                            break bd;
                                    }
                                    try {
                                        $var5 = $var5.$netManager;
                                        $ptr = 9;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var11 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var5 = new otcic_JSStderrPrintStream;
                                        var$12 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_(var$12);
                                        var$12.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_($var5, var$12);
                                        $var5.$sb = jl_StringBuilder__init_();
                                        $var5.$buffer0 = $rt_createCharArray(32);
                                        $var5.$autoFlush = 0;
                                        $var5.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = $var5;
                                    }
                                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                                }
                        }
                        $var10$index_0 = $var10$index;
                    }
                    $var8 = new ju_ConcurrentModificationException;
                    $var8.$suppressionEnabled = 1;
                    $var8.$writableStackTrace = 1;
                    $rt_throw($var8);
                }
            }
        }
        return;
    case 7:
        t: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break t;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var5 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$12);
                var$12.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var5);
                $var5.$out0 = var$12;
                var$12 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$12);
                $var5.$sb = var$12;
                $var5.$buffer0 = $rt_createCharArray(32);
                $var5.$autoFlush = 0;
                $var5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var5;
            }
            jl_Throwable_printStackTrace($var11, jl_System_errCache);
        }
        $var10$index_0 = 0;
        $var1_0 = $var8.$modCount;
        $var4 = $var8.$size();
        while (true) {
            if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                $var1_0 = $var6.$modCount;
                $var4 = $var6.$size();
                if (!(0 >= $var4 ? 0 : 1))
                    return;
                if ($var1_0 < $var6.$modCount) {
                    $var8 = new ju_ConcurrentModificationException;
                    $var8.$suppressionEnabled = 1;
                    $var8.$writableStackTrace = 1;
                    $rt_throw($var8);
                }
                $var10$index = 0 + 1 | 0;
                $var11 = $var6.$get(0);
                $var8 = $this.$worldObj.$theEntityTracker;
                $ptr = 10;
                continue main;
            }
            if ($var1_0 < $var8.$modCount)
                break;
            $var10$index = $var10$index_0 + 1 | 0;
            $var5 = $var8.$get($var10$index_0);
            if ($var5 !== null) {
                $var11 = $var5.$getDescriptionPacket();
                if ($var11 !== null)
                    be: {
                        $var5 = $this.$playerNetServerHandler;
                        if ($var11 instanceof nms_Packet3Chat) {
                            var$12 = $var11;
                            $var4_0 = $var5.$playerEntity.$chatVisibility;
                            if ($var4_0 == 2)
                                break be;
                            if ($var4_0 == 1 && !var$12.$isServer)
                                break be;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var5 = new otcic_JSStderrPrintStream;
                            var$12 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$12);
                            var$12.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var5, var$12);
                            $var5.$sb = jl_StringBuilder__init_();
                            $var5.$buffer0 = $rt_createCharArray(32);
                            $var5.$autoFlush = 0;
                            $var5.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var5;
                        }
                        jl_Throwable_printStackTrace($var11, jl_System_errCache);
                    }
            }
            $var10$index_0 = $var10$index;
        }
        $var8 = new ju_ConcurrentModificationException;
        $var8.$suppressionEnabled = 1;
        $var8.$writableStackTrace = 1;
        $rt_throw($var8);
    case 8:
        $tmp = nms_ChunkProviderServer_loadChunk($var5, $var4_0, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        t: {
            j: {
                bf: while (true) {
                    ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
                    $var2 = $var6.$array.data;
                    $var1_0 = $var6.$size0;
                    $var6.$size0 = $var1_0 + 1 | 0;
                    $var2[$var1_0] = $var11;
                    $var6.$modCount = $var6.$modCount + 1 | 0;
                    $var11 = $this.$worldObj;
                    $var1_0 = $var9.$chunkXPos * 16 | 0;
                    $var10$index = $var9.$chunkZPos * 16 | 0;
                    $var11 = nms_WorldServer_getAllTileEntityInBox($var11, $var1_0, 0, $var10$index, $var1_0 + 16 | 0, 256, $var10$index + 16 | 0);
                    $var10$index_0 = $var11.$modCount;
                    $var4_0 = $var11.$size();
                    $var1_0 = var$13;
                    while ($var1_0 >= $var4_0 ? 0 : 1) {
                        if ($var10$index_0 < $var11.$modCount)
                            break bf;
                        $var4 = $var1_0 + 1 | 0;
                        $var5 = $var11.$get($var1_0);
                        ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                        $var2 = $var8.$array.data;
                        $var1_0 = $var8.$size0;
                        $var8.$size0 = $var1_0 + 1 | 0;
                        $var2[$var1_0] = $var5;
                        $var8.$modCount = $var8.$modCount + 1 | 0;
                        $var1_0 = $var4;
                    }
                    while (true) {
                        if (!(var$12.$nextEntry1 === null ? 0 : 1))
                            break t;
                        if ($var6.$size0 >= ($this.$renderDistance / 2 | 0))
                            break t;
                        $var9 = ju_LinkedList$SequentialListIterator_next(var$12);
                        ju_LinkedList$SequentialListIterator_remove(var$12);
                        if ($var9 === null)
                            continue;
                        $var11 = $this.$worldObj;
                        $var4_0 = $var9.$chunkXPos;
                        $var1_0 = $var4_0 << 4;
                        $var1 = $var9.$chunkZPos;
                        $var4 = $var1 << 4;
                        $var1_0 = $var1_0 >> 4;
                        $var10$index = $var4 >> 4;
                        $var5 = $var11.$chunkProvider;
                        $var11 = $var5.$loadedChunkHashMap;
                        var$15 = Long_or(Long_and(Long_fromInt($var1_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var10$index), Long_create(4294967295, 0)), 32));
                        $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                        $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                        $var4 = $var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0);
                        $var2 = $var11.$hashArray.data;
                        $var10$index_0 = $var2.length - 1 | 0;
                        $var11 = $var2[$var4 & $var10$index_0];
                        a: {
                            while (true) {
                                if ($var11 === null) {
                                    $var11 = null;
                                    break a;
                                }
                                if (Long_eq($var11.$key1, var$15))
                                    break;
                                $var11 = $var11.$nextEntry;
                            }
                        }
                        if (!($var11 === null ? 0 : 1))
                            continue;
                        else
                            break;
                    }
                    var$15 = Long_or(Long_and(Long_fromInt($var4_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                    $var10$index = Long_lo(Long_xor(var$15, Long_shru(var$15, 32)));
                    $var10$index = $var10$index ^ ($var10$index >>> 20 | 0) ^ ($var10$index >>> 12 | 0);
                    $var11 = $var2[($var10$index ^ ($var10$index >>> 7 | 0) ^ ($var10$index >>> 4 | 0)) & $var10$index_0];
                    v: {
                        while ($var11 !== null) {
                            if (Long_eq($var11.$key1, var$15)) {
                                $var11 = $var11.$value4;
                                break v;
                            }
                            $var11 = $var11.$nextEntry;
                        }
                        $var11 = null;
                    }
                    $var11 = $var11;
                    if ($var11 !== null)
                        continue;
                    if ($var5.$worldObj0.$findingSpawnPoint)
                        break j;
                    if ($var5.$loadChunkOnProvideRequest)
                        break j;
                    $var11 = $var5.$defaultEmptyChunk;
                }
                $var8 = new ju_ConcurrentModificationException;
                $var8.$suppressionEnabled = 1;
                $var8.$writableStackTrace = 1;
                $rt_throw($var8);
            }
            continue main;
        }
        $var10$index = $var6.$size0 ? 0 : 1;
        n: {
            if (!$var10$index) {
                o: {
                    $var11 = $this.$playerNetServerHandler;
                    $var5 = nms_Packet56MapChunks__init_($var6);
                    if ($var5 instanceof nms_Packet3Chat) {
                        var$12 = $var5;
                        $var1_0 = $var11.$playerEntity.$chatVisibility;
                        if ($var1_0 == 2)
                            break o;
                        if ($var1_0 == 1 && !var$12.$isServer)
                            break o;
                    }
                    try {
                        $var11 = $var11.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var5 = new otcic_JSStderrPrintStream;
                        var$12 = new ji_ByteArrayOutputStream;
                        jl_Object__init_(var$12);
                        var$12.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var5);
                        $var5.$out0 = var$12;
                        var$12 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_(var$12);
                        $var5.$sb = var$12;
                        $var5.$buffer0 = $rt_createCharArray(32);
                        $var5.$autoFlush = 0;
                        $var5.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var5;
                    }
                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                }
                $var10$index_0 = 0;
                $var1_0 = $var8.$modCount;
                $var4 = $var8.$size();
                while (true) {
                    if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                        $var1_0 = $var6.$modCount;
                        $var4 = $var6.$size();
                        if (!(0 >= $var4 ? 0 : 1))
                            break n;
                        else {
                            if ($var1_0 < $var6.$modCount) {
                                $var8 = new ju_ConcurrentModificationException;
                                $var8.$suppressionEnabled = 1;
                                $var8.$writableStackTrace = 1;
                                $rt_throw($var8);
                            }
                            $var10$index = 0 + 1 | 0;
                            $var11 = $var6.$get(0);
                            $var8 = $this.$worldObj.$theEntityTracker;
                            $ptr = 10;
                            continue main;
                        }
                    }
                    if ($var1_0 < $var8.$modCount)
                        break;
                    $var10$index = $var10$index_0 + 1 | 0;
                    $var5 = $var8.$get($var10$index_0);
                    if ($var5 !== null) {
                        $var11 = $var5.$getDescriptionPacket();
                        if ($var11 !== null)
                            bg: {
                                $var5 = $this.$playerNetServerHandler;
                                if ($var11 instanceof nms_Packet3Chat) {
                                    var$12 = $var11;
                                    $var4_0 = $var5.$playerEntity.$chatVisibility;
                                    if ($var4_0 == 2)
                                        break bg;
                                    if ($var4_0 == 1 && !var$12.$isServer)
                                        break bg;
                                }
                                try {
                                    $var5 = $var5.$netManager;
                                    $ptr = 9;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var11 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $var5 = new otcic_JSStderrPrintStream;
                                    var$12 = new ji_ByteArrayOutputStream;
                                    ji_OutputStream__init_(var$12);
                                    var$12.$buf = $rt_createByteArray(32);
                                    ji_FilterOutputStream__init_($var5, var$12);
                                    $var5.$sb = jl_StringBuilder__init_();
                                    $var5.$buffer0 = $rt_createCharArray(32);
                                    $var5.$autoFlush = 0;
                                    $var5.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $var5;
                                }
                                jl_Throwable_printStackTrace($var11, jl_System_errCache);
                            }
                    }
                    $var10$index_0 = $var10$index;
                }
                $var8 = new ju_ConcurrentModificationException;
                $var8.$suppressionEnabled = 1;
                $var8.$writableStackTrace = 1;
                $rt_throw($var8);
            }
        }
        return;
    case 9:
        t: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, $var11);
                if ($rt_suspending()) {
                    break main;
                }
                break t;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var5 = jl_System_errCache;
            if ($var5 === null) {
                $var5 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                $var10$index_0 = 32;
                ji_OutputStream__init_(var$12);
                $var2 = $rt_createByteArray($var10$index_0);
                var$12.$buf = $var2;
                $var10$index_0 = 0;
                ji_FilterOutputStream__init_($var5, var$12);
                var$12 = jl_StringBuilder__init_();
                $var5.$sb = var$12;
                $var4_0 = 32;
                $var2 = $rt_createCharArray($var4_0);
                $var5.$buffer0 = $var2;
                $var5.$autoFlush = $var10$index_0;
                var$12 = jnci_UTF8Charset_INSTANCE;
                $var5.$charset = var$12;
                jl_System_errCache = $var5;
            }
            $var5 = jl_System_errCache;
            jl_Throwable_printStackTrace($var11, $var5);
        }
        bh: while (true) {
            while (true) {
                while (true) {
                    $var10$index_0 = $var10$index;
                    if (!($var10$index_0 >= $var4 ? 0 : 1)) {
                        $var1_0 = $var6.$modCount;
                        $var4 = $var6.$size();
                        if (!(0 >= $var4 ? 0 : 1))
                            return;
                        if ($var1_0 < $var6.$modCount) {
                            $var8 = new ju_ConcurrentModificationException;
                            $var8.$suppressionEnabled = 1;
                            $var8.$writableStackTrace = 1;
                            $rt_throw($var8);
                        }
                        $var10$index = 0 + 1 | 0;
                        $var11 = $var6.$get(0);
                        $var8 = $this.$worldObj.$theEntityTracker;
                        $ptr = 10;
                        continue main;
                    }
                    if ($var1_0 < $var8.$modCount)
                        break bh;
                    $var10$index = $var10$index_0 + 1 | 0;
                    $var5 = $var8.$get($var10$index_0);
                    if ($var5 === null)
                        continue;
                    $var11 = $var5.$getDescriptionPacket();
                    if ($var11 === null)
                        continue;
                    else
                        break;
                }
                $var5 = $this.$playerNetServerHandler;
                if (!($var11 instanceof nms_Packet3Chat))
                    break;
                var$12 = $var11;
                $var4_0 = $var5.$playerEntity.$chatVisibility;
                if ($var4_0 == 2)
                    continue;
                if ($var4_0 != 1)
                    break;
                if (var$12.$isServer)
                    break;
            }
            try {
                $var5 = $var5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var5 = jl_System_errCache;
            if ($var5 === null) {
                $var5 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                $var10$index_0 = 32;
                ji_OutputStream__init_(var$12);
                $var2 = $rt_createByteArray($var10$index_0);
                var$12.$buf = $var2;
                $var10$index_0 = 0;
                ji_FilterOutputStream__init_($var5, var$12);
                var$12 = jl_StringBuilder__init_();
                $var5.$sb = var$12;
                $var4_0 = 32;
                $var2 = $rt_createCharArray($var4_0);
                $var5.$buffer0 = $var2;
                $var5.$autoFlush = $var10$index_0;
                var$12 = jnci_UTF8Charset_INSTANCE;
                $var5.$charset = var$12;
                jl_System_errCache = $var5;
            }
            $var5 = jl_System_errCache;
            jl_Throwable_printStackTrace($var11, $var5);
        }
        $var8 = new ju_ConcurrentModificationException;
        $var8.$suppressionEnabled = 1;
        $var8.$writableStackTrace = 1;
        $rt_throw($var8);
    case 10:
        nms_EntityTracker_func_85172_a($var8, $this, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var10$index_0 = $var10$index;
        if (!($var10$index_0 >= $var4 ? 0 : 1))
            return;
        if ($var1_0 < $var6.$modCount) {
            $var8 = new ju_ConcurrentModificationException;
            $var8.$suppressionEnabled = 1;
            $var8.$writableStackTrace = 1;
            $rt_throw($var8);
        }
        $var10$index = $var10$index_0 + 1 | 0;
        $var11 = $var6.$get($var10$index_0);
        $var8 = $this.$worldObj.$theEntityTracker;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var8, $var1, $var1_0, $var2, var$5, $var6, $var5, $var11, $var4, $var4_0, $var10$index, var$12, var$13, $var9, var$15, $var10$index_0, $ptr);
},
nms_EntityPlayerMP_onUpdateEntity = $this => {
    let $var1, $var5, var$3, $var7$index, $var7$index_0, $var6, $var9, $var8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();$var7$index_0 = $thread.pop();$var7$index = $thread.pop();var$3 = $thread.pop();$var5 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityPlayer_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        while (true) {
            $var5 = $this.$inventory0;
            var$3 = $var5.$mainInventory;
            $var7$index = var$3.data.length;
            if ($var1 >= ($var7$index + 4 | 0))
                break;
            if ($var1 < $var7$index)
                $var7$index_0 = $var1;
            else {
                $var7$index_0 = $var1 - $var7$index | 0;
                var$3 = $var5.$armorInventory;
            }
            $var6 = var$3.data[$var7$index_0];
            if ($var6 !== null) {
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[$var6.$itemID].$isMap()) {
                    $var5 = nms_Item_itemsList.data[$var6.$itemID];
                    $var9 = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
            }
            $var1 = $var1 + 1 | 0;
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[134];
        if ($var9 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var1 = $var9.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var1 & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var1) {
                    $var8 = $var5.$key;
                    if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        a: {
            if ($var5.$watchedObject.$value3 === $this.$lastHealth) {
                $var1 = $this.$lastFoodLevel;
                $var5 = $this.$foodStats;
                if ($var1 == $var5.$foodLevel && ($var5.$foodSaturationLevel !== 0.0 ? 0 : 1) == $this.$wasHungry)
                    break a;
            }
            $var5 = $this.$playerNetServerHandler;
            $var9 = new nms_Packet8UpdateHealth;
            $var8 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[134];
            if ($var6 !== null) {
                $var1 = $var6.$value;
                var$3 = $var8.$elementData.data;
                $var8 = var$3[$var1 & (var$3.length - 1 | 0)];
                while ($var8 !== null) {
                    if ($var8.$origKeyHash == $var1) {
                        var$9 = $var8.$key;
                        if ($var6 !== var$9 && !($var6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var1 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var8 = $var8.$next3;
                }
            } else {
                $var8 = $var8.$elementData.data[0];
                while ($var8 !== null && $var8.$key !== null) {
                    $var8 = $var8.$next3;
                }
            }
            $var8 = $var8 === null ? null : $var8.$value0;
            b: {
                var$10 = $var8.$watchedObject.$value3;
                $var8 = $this.$foodStats;
                $var1 = $var8.$foodLevel;
                var$11 = $var8.$foodSaturationLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$healthMP = var$10;
                $var9.$food = $var1;
                $var9.$foodSaturation = var$11;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break b;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break b;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
            $var5 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var9 = jl_Integer_integerCache.data[134];
            if ($var9 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var7$index = $var9.$value;
                var$3 = $var5.$elementData.data;
                $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == $var7$index) {
                        $var8 = $var5.$key;
                        if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var7$index ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            $this.$lastHealth = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3;
            $var5 = $this.$foodStats;
            $this.$lastFoodLevel = $var5.$foodLevel;
            $this.$wasHungry = $var5.$foodSaturationLevel !== 0.0 ? 0 : 1;
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var8 = jl_Integer_integerCache.data[134];
        if ($var8 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var7$index = $var8.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var7$index) {
                    $var9 = $var5.$key;
                    if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        c: {
            if ($var5.$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this) !== $this.$field_130068_bO) {
                $var5 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var8 = jl_Integer_integerCache.data[134];
                if ($var8 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var7$index = $var8.$value;
                    var$3 = $var5.$elementData.data;
                    $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var7$index) {
                            $var9 = $var5.$key;
                            if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $this.$field_130068_bO = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this);
                $var9 = $this.$worldObj.$worldScoreboard;
                nms_ScoreObjectiveCriteria_$callClinit();
                $var5 = nms_Scoreboard_func_96520_a($var9, nms_ScoreObjectiveCriteria_health);
                $var7$index_0 = 0;
                var$12 = $var5.$modCount;
                var$13 = $var5.$size();
                while (true) {
                    if (!($var7$index_0 >= var$13 ? 0 : 1))
                        break c;
                    if (var$12 < $var5.$modCount)
                        break;
                    $var7$index = $var7$index_0 + 1 | 0;
                    $var9 = $var5.$get($var7$index_0);
                    $var9 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var9);
                    var$3 = $rt_createArray(nms_EntityPlayerMP, 1);
                    var$3.data[0] = $this;
                    $var6 = new ju_Arrays$ArrayAsList;
                    $var6.$array1 = var$3;
                    $var1 = $var9.$theScoreObjective.$objectiveCriteria.$func_96635_a($var6);
                    $var7$index_0 = $var9.$field_96655_e;
                    $var9.$field_96655_e = $var1;
                    if ($var7$index_0 != $var1) {
                        $var8 = $var9.$theScoreboard0;
                        $ptr = 6;
                        continue main;
                    }
                    $var7$index_0 = $var7$index;
                }
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
        }
        $var1 = $this.$experienceTotal;
        if ($var1 != $this.$lastExperience)
            d: {
                $this.$lastExperience = $var1;
                $var5 = $this.$playerNetServerHandler;
                $var9 = new nms_Packet43Experience;
                var$11 = $this.$experience;
                $var7$index_0 = $this.$experienceLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$experience0 = var$11;
                $var9.$experienceTotal0 = $var1;
                $var9.$experienceLevel0 = $var7$index_0;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break d;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break d;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
        return;
    case 2:
        $tmp = $var5.$createMapDataPacket($var6, $var9, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 !== null)
            e: {
                $var5 = $this.$playerNetServerHandler;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var9 = $var8;
                    $var7$index = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index == 2)
                        break e;
                    if ($var7$index == 1 && !$var9.$isServer)
                        break e;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
        while (true) {
            $var1 = $var1 + 1 | 0;
            $var5 = $this.$inventory0;
            var$3 = $var5.$mainInventory;
            $var7$index = var$3.data.length;
            if ($var1 >= ($var7$index + 4 | 0))
                break;
            if ($var1 < $var7$index)
                $var7$index_0 = $var1;
            else {
                $var7$index_0 = $var1 - $var7$index | 0;
                var$3 = $var5.$armorInventory;
            }
            $var6 = var$3.data[$var7$index_0];
            if ($var6 === null)
                continue;
            nms_Item_$callClinit();
            if (!nms_Item_itemsList.data[$var6.$itemID].$isMap())
                continue;
            else {
                $var5 = nms_Item_itemsList.data[$var6.$itemID];
                $var9 = $this.$worldObj;
                continue main;
            }
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[134];
        if ($var9 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var1 = $var9.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var1 & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var1) {
                    $var8 = $var5.$key;
                    if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        f: {
            if ($var5.$watchedObject.$value3 === $this.$lastHealth) {
                $var1 = $this.$lastFoodLevel;
                $var5 = $this.$foodStats;
                if ($var1 == $var5.$foodLevel && ($var5.$foodSaturationLevel !== 0.0 ? 0 : 1) == $this.$wasHungry)
                    break f;
            }
            $var5 = $this.$playerNetServerHandler;
            $var9 = new nms_Packet8UpdateHealth;
            $var8 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[134];
            if ($var6 !== null) {
                $var1 = $var6.$value;
                var$3 = $var8.$elementData.data;
                $var8 = var$3[$var1 & (var$3.length - 1 | 0)];
                while ($var8 !== null) {
                    if ($var8.$origKeyHash == $var1) {
                        var$9 = $var8.$key;
                        if ($var6 !== var$9 && !($var6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var1 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var8 = $var8.$next3;
                }
            } else {
                $var8 = $var8.$elementData.data[0];
                while ($var8 !== null && $var8.$key !== null) {
                    $var8 = $var8.$next3;
                }
            }
            $var8 = $var8 === null ? null : $var8.$value0;
            g: {
                var$10 = $var8.$watchedObject.$value3;
                $var8 = $this.$foodStats;
                $var1 = $var8.$foodLevel;
                var$11 = $var8.$foodSaturationLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$healthMP = var$10;
                $var9.$food = $var1;
                $var9.$foodSaturation = var$11;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break g;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break g;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
            $var5 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var9 = jl_Integer_integerCache.data[134];
            if ($var9 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var7$index = $var9.$value;
                var$3 = $var5.$elementData.data;
                $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == $var7$index) {
                        $var8 = $var5.$key;
                        if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var7$index ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            $this.$lastHealth = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3;
            $var5 = $this.$foodStats;
            $this.$lastFoodLevel = $var5.$foodLevel;
            $this.$wasHungry = $var5.$foodSaturationLevel !== 0.0 ? 0 : 1;
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var8 = jl_Integer_integerCache.data[134];
        if ($var8 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var7$index = $var8.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var7$index) {
                    $var9 = $var5.$key;
                    if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        h: {
            if ($var5.$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this) !== $this.$field_130068_bO) {
                $var5 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var8 = jl_Integer_integerCache.data[134];
                if ($var8 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var7$index = $var8.$value;
                    var$3 = $var5.$elementData.data;
                    $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var7$index) {
                            $var9 = $var5.$key;
                            if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $this.$field_130068_bO = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this);
                $var9 = $this.$worldObj.$worldScoreboard;
                nms_ScoreObjectiveCriteria_$callClinit();
                $var5 = nms_Scoreboard_func_96520_a($var9, nms_ScoreObjectiveCriteria_health);
                $var7$index_0 = 0;
                var$12 = $var5.$modCount;
                var$13 = $var5.$size();
                while (true) {
                    if (!($var7$index_0 >= var$13 ? 0 : 1))
                        break h;
                    if (var$12 < $var5.$modCount)
                        break;
                    $var7$index = $var7$index_0 + 1 | 0;
                    $var9 = $var5.$get($var7$index_0);
                    $var9 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var9);
                    var$3 = $rt_createArray(nms_EntityPlayerMP, 1);
                    var$3.data[0] = $this;
                    $var6 = new ju_Arrays$ArrayAsList;
                    $var6.$array1 = var$3;
                    $var1 = $var9.$theScoreObjective.$objectiveCriteria.$func_96635_a($var6);
                    $var7$index_0 = $var9.$field_96655_e;
                    $var9.$field_96655_e = $var1;
                    if ($var7$index_0 != $var1) {
                        $var8 = $var9.$theScoreboard0;
                        $ptr = 6;
                        continue main;
                    }
                    $var7$index_0 = $var7$index;
                }
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
        }
        $var1 = $this.$experienceTotal;
        if ($var1 != $this.$lastExperience)
            i: {
                $this.$lastExperience = $var1;
                $var5 = $this.$playerNetServerHandler;
                $var9 = new nms_Packet43Experience;
                var$11 = $this.$experience;
                $var7$index_0 = $this.$experienceLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$experience0 = var$11;
                $var9.$experienceTotal0 = $var1;
                $var9.$experienceLevel0 = $var7$index_0;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break i;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break i;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
        return;
    case 3:
        j: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break j;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var8);
                $var8.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = $var8;
                $var8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var8);
                $var9.$sb = $var8;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        while (true) {
            $var1 = $var1 + 1 | 0;
            $var5 = $this.$inventory0;
            var$3 = $var5.$mainInventory;
            $var7$index = var$3.data.length;
            if ($var1 >= ($var7$index + 4 | 0))
                break;
            if ($var1 < $var7$index)
                $var7$index_0 = $var1;
            else {
                $var7$index_0 = $var1 - $var7$index | 0;
                var$3 = $var5.$armorInventory;
            }
            $var6 = var$3.data[$var7$index_0];
            if ($var6 === null)
                continue;
            nms_Item_$callClinit();
            if (!nms_Item_itemsList.data[$var6.$itemID].$isMap())
                continue;
            else {
                $var5 = nms_Item_itemsList.data[$var6.$itemID];
                $var9 = $this.$worldObj;
                $ptr = 2;
                continue main;
            }
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[134];
        if ($var9 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var1 = $var9.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var1 & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var1) {
                    $var8 = $var5.$key;
                    if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        k: {
            if ($var5.$watchedObject.$value3 === $this.$lastHealth) {
                $var1 = $this.$lastFoodLevel;
                $var5 = $this.$foodStats;
                if ($var1 == $var5.$foodLevel && ($var5.$foodSaturationLevel !== 0.0 ? 0 : 1) == $this.$wasHungry)
                    break k;
            }
            $var5 = $this.$playerNetServerHandler;
            $var9 = new nms_Packet8UpdateHealth;
            $var8 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var6 = jl_Integer_integerCache.data[134];
            if ($var6 !== null) {
                $var1 = $var6.$value;
                var$3 = $var8.$elementData.data;
                $var8 = var$3[$var1 & (var$3.length - 1 | 0)];
                while ($var8 !== null) {
                    if ($var8.$origKeyHash == $var1) {
                        var$9 = $var8.$key;
                        if ($var6 !== var$9 && !($var6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var1 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var8 = $var8.$next3;
                }
            } else {
                $var8 = $var8.$elementData.data[0];
                while ($var8 !== null && $var8.$key !== null) {
                    $var8 = $var8.$next3;
                }
            }
            $var8 = $var8 === null ? null : $var8.$value0;
            l: {
                var$10 = $var8.$watchedObject.$value3;
                $var8 = $this.$foodStats;
                $var1 = $var8.$foodLevel;
                var$11 = $var8.$foodSaturationLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$healthMP = var$10;
                $var9.$food = $var1;
                $var9.$foodSaturation = var$11;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break l;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break l;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
            $var5 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var9 = jl_Integer_integerCache.data[134];
            if ($var9 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var7$index = $var9.$value;
                var$3 = $var5.$elementData.data;
                $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == $var7$index) {
                        $var8 = $var5.$key;
                        if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var7$index ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            $this.$lastHealth = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3;
            $var5 = $this.$foodStats;
            $this.$lastFoodLevel = $var5.$foodLevel;
            $this.$wasHungry = $var5.$foodSaturationLevel !== 0.0 ? 0 : 1;
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var8 = jl_Integer_integerCache.data[134];
        if ($var8 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var7$index = $var8.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var7$index) {
                    $var9 = $var5.$key;
                    if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        m: {
            if ($var5.$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this) !== $this.$field_130068_bO) {
                $var5 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var8 = jl_Integer_integerCache.data[134];
                if ($var8 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var7$index = $var8.$value;
                    var$3 = $var5.$elementData.data;
                    $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var7$index) {
                            $var9 = $var5.$key;
                            if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $this.$field_130068_bO = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this);
                $var9 = $this.$worldObj.$worldScoreboard;
                nms_ScoreObjectiveCriteria_$callClinit();
                $var5 = nms_Scoreboard_func_96520_a($var9, nms_ScoreObjectiveCriteria_health);
                $var7$index_0 = 0;
                var$12 = $var5.$modCount;
                var$13 = $var5.$size();
                while (true) {
                    if (!($var7$index_0 >= var$13 ? 0 : 1))
                        break m;
                    if (var$12 < $var5.$modCount)
                        break;
                    $var7$index = $var7$index_0 + 1 | 0;
                    $var9 = $var5.$get($var7$index_0);
                    $var9 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var9);
                    var$3 = $rt_createArray(nms_EntityPlayerMP, 1);
                    var$3.data[0] = $this;
                    $var6 = new ju_Arrays$ArrayAsList;
                    $var6.$array1 = var$3;
                    $var1 = $var9.$theScoreObjective.$objectiveCriteria.$func_96635_a($var6);
                    $var7$index_0 = $var9.$field_96655_e;
                    $var9.$field_96655_e = $var1;
                    if ($var7$index_0 != $var1) {
                        $var8 = $var9.$theScoreboard0;
                        $ptr = 6;
                        continue main;
                    }
                    $var7$index_0 = $var7$index;
                }
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
        }
        $var1 = $this.$experienceTotal;
        if ($var1 != $this.$lastExperience)
            n: {
                $this.$lastExperience = $var1;
                $var5 = $this.$playerNetServerHandler;
                $var9 = new nms_Packet43Experience;
                var$11 = $this.$experience;
                $var7$index_0 = $this.$experienceLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$experience0 = var$11;
                $var9.$experienceTotal0 = $var1;
                $var9.$experienceLevel0 = $var7$index_0;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break n;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break n;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
        return;
    case 4:
        j: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break j;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var8);
                $var8.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = $var8;
                $var8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var8);
                $var9.$sb = $var8;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[134];
        if ($var9 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var7$index = $var9.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var7$index) {
                    $var8 = $var5.$key;
                    if ($var9 !== $var8 && !($var9 === $var8 ? 1 : $var8 instanceof jl_Integer && $var8.$value == $var7$index ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $this.$lastHealth = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3;
        $var5 = $this.$foodStats;
        $this.$lastFoodLevel = $var5.$foodLevel;
        $this.$wasHungry = $var5.$foodSaturationLevel !== 0.0 ? 0 : 1;
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var8 = jl_Integer_integerCache.data[134];
        if ($var8 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $var7$index = $var8.$value;
            var$3 = $var5.$elementData.data;
            $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var7$index) {
                    $var9 = $var5.$key;
                    if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        o: {
            if ($var5.$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this) !== $this.$field_130068_bO) {
                $var5 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var8 = jl_Integer_integerCache.data[134];
                if ($var8 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var7$index = $var8.$value;
                    var$3 = $var5.$elementData.data;
                    $var5 = var$3[$var7$index & (var$3.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var7$index) {
                            $var9 = $var5.$key;
                            if ($var8 !== $var9 && !($var8 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var7$index ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $this.$field_130068_bO = ($var5 === null ? null : $var5.$value0).$watchedObject.$value3 + nms_EntityPlayer_getAbsorptionAmount($this);
                $var9 = $this.$worldObj.$worldScoreboard;
                nms_ScoreObjectiveCriteria_$callClinit();
                $var5 = nms_Scoreboard_func_96520_a($var9, nms_ScoreObjectiveCriteria_health);
                $var7$index_0 = 0;
                var$12 = $var5.$modCount;
                var$13 = $var5.$size();
                while (true) {
                    if (!($var7$index_0 >= var$13 ? 0 : 1))
                        break o;
                    if (var$12 < $var5.$modCount)
                        break;
                    $var7$index = $var7$index_0 + 1 | 0;
                    $var9 = $var5.$get($var7$index_0);
                    $var9 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var9);
                    var$3 = $rt_createArray(nms_EntityPlayerMP, 1);
                    var$3.data[0] = $this;
                    $var6 = new ju_Arrays$ArrayAsList;
                    $var6.$array1 = var$3;
                    $var1 = $var9.$theScoreObjective.$objectiveCriteria.$func_96635_a($var6);
                    $var7$index_0 = $var9.$field_96655_e;
                    $var9.$field_96655_e = $var1;
                    if ($var7$index_0 != $var1) {
                        $var8 = $var9.$theScoreboard0;
                        $ptr = 6;
                        continue main;
                    }
                    $var7$index_0 = $var7$index;
                }
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
        }
        $var1 = $this.$experienceTotal;
        if ($var1 != $this.$lastExperience)
            p: {
                $this.$lastExperience = $var1;
                $var5 = $this.$playerNetServerHandler;
                $var9 = new nms_Packet43Experience;
                var$11 = $this.$experience;
                $var7$index_0 = $this.$experienceLevel;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$experience0 = var$11;
                $var9.$experienceTotal0 = $var1;
                $var9.$experienceLevel0 = $var7$index_0;
                if ($var9 instanceof nms_Packet3Chat) {
                    $var8 = $var9;
                    $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                    if ($var7$index_0 == 2)
                        break p;
                    if ($var7$index_0 == 1 && !$var8.$isServer)
                        break p;
                }
                try {
                    $var5 = $var5.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var9 = new otcic_JSStderrPrintStream;
                    $var8 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var8);
                    $var8.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var9);
                    $var9.$out0 = $var8;
                    $var8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var8);
                    $var9.$sb = $var8;
                    $var9.$buffer0 = $rt_createCharArray(32);
                    $var9.$autoFlush = 0;
                    $var9.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var9;
                }
                jl_Throwable_printStackTrace($var5, jl_System_errCache);
            }
        return;
    case 5:
        j: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break j;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var8 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var8);
                $var8.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = $var8;
                $var8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var8);
                $var9.$sb = $var8;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var5, jl_System_errCache);
        }
        return;
    case 6:
        $var8.$func_96536_a($var9);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var7$index_0 = $var7$index;
            if (!($var7$index_0 >= var$13 ? 0 : 1)) {
                $var1 = $this.$experienceTotal;
                if ($var1 != $this.$lastExperience)
                    q: {
                        $this.$lastExperience = $var1;
                        $var5 = $this.$playerNetServerHandler;
                        $var9 = new nms_Packet43Experience;
                        var$11 = $this.$experience;
                        $var7$index_0 = $this.$experienceLevel;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var9.$experience0 = var$11;
                        $var9.$experienceTotal0 = $var1;
                        $var9.$experienceLevel0 = $var7$index_0;
                        if ($var9 instanceof nms_Packet3Chat) {
                            $var8 = $var9;
                            $var7$index_0 = $var5.$playerEntity.$chatVisibility;
                            if ($var7$index_0 == 2)
                                break q;
                            if ($var7$index_0 == 1 && !$var8.$isServer)
                                break q;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var9 = new otcic_JSStderrPrintStream;
                            $var8 = new ji_ByteArrayOutputStream;
                            jl_Object__init_($var8);
                            $var8.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var9);
                            $var9.$out0 = $var8;
                            $var8 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var8);
                            $var9.$sb = $var8;
                            $var9.$buffer0 = $rt_createCharArray(32);
                            $var9.$autoFlush = 0;
                            $var9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var9;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
                return;
            }
            if (var$12 < $var5.$modCount)
                break;
            $var7$index = $var7$index_0 + 1 | 0;
            $var9 = $var5.$get($var7$index_0);
            $var9 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var9);
            var$3 = $rt_createArray(nms_EntityPlayerMP, 1);
            var$3.data[0] = $this;
            $var6 = new ju_Arrays$ArrayAsList;
            $var6.$array1 = var$3;
            $var1 = $var9.$theScoreObjective.$objectiveCriteria.$func_96635_a($var6);
            $var7$index_0 = $var9.$field_96655_e;
            $var9.$field_96655_e = $var1;
            if ($var7$index_0 == $var1)
                continue;
            else {
                $var8 = $var9.$theScoreboard0;
                continue main;
            }
        }
        $var5 = new ju_ConcurrentModificationException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var5, var$3, $var7$index, $var7$index_0, $var6, $var9, $var8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityPlayerMP_onDeath = ($this, $par1DamageSource) => {
    let $var2, $var4, $var3$index, $var3$index_0, var$6, var$7, var$8, $var6, $var5, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3$index_0 = $thread.pop();$var3$index = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1DamageSource = nms_CombatTracker_func_94546_b($this.$_combatTracker);
        nms_StringTranslate_$callClinit();
        $par1DamageSource = nms_StringTranslate_translateKey(nms_StringTranslate_instance, $par1DamageSource);
        $var2 = $this.$playerNetServerHandler;
        $var4 = new nms_Packet3Chat;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var4.$isServer = 1;
        $var3$index = $par1DamageSource.$nativeString.length;
        $var3$index_0 = nms_Packet3Chat_maxChatLength;
        if ($var3$index > $var3$index_0)
            $par1DamageSource = jl_String_substring($par1DamageSource, 0, $var3$index_0);
        a: {
            $var4.$message1 = $par1DamageSource;
            $var4.$isServer = 1;
            if ($var4 instanceof nms_Packet3Chat) {
                $par1DamageSource = $var4;
                $var3$index_0 = $var2.$playerEntity.$chatVisibility;
                if ($var3$index_0 == 2)
                    break a;
                if ($var3$index_0 == 1 && !$par1DamageSource.$isServer)
                    break a;
            }
            try {
                $par1DamageSource = $var2.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1DamageSource = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var4);
                $var4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var4);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
        }
        b: {
            $var2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            $var4 = $rt_s(2024);
            $par1DamageSource = $rt_s(2024);
            if ($var4 !== $par1DamageSource) {
                $var3$index_0 = $var4.$nativeString.length;
                var$6 = $par1DamageSource.$nativeString.length;
                if ($var3$index_0 < var$6)
                    var$6 = $var3$index_0;
                var$7 = 0;
                c: {
                    while (true) {
                        if (var$7 >= var$6) {
                            $var4.$nativeString.length;
                            $par1DamageSource.$nativeString.length;
                            break b;
                        }
                        if (var$7 < 0)
                            break c;
                        if (var$7 >= $var4.$nativeString.length)
                            break c;
                        $var3$index = $var4.$nativeString.charCodeAt(var$7);
                        if (var$7 < 0)
                            break;
                        if (var$7 >= $par1DamageSource.$nativeString.length)
                            break;
                        if ($var3$index - $par1DamageSource.$nativeString.charCodeAt(var$7) | 0)
                            break b;
                        var$7 = var$7 + 1 | 0;
                    }
                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                    $rt_throw($par1DamageSource);
                }
                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                $rt_throw($par1DamageSource);
            }
        }
        $par1DamageSource = $rt_s(2024);
        d: {
            e: {
                f: while (true) {
                    if ($var2 === null) {
                        $var2 = null;
                        break d;
                    }
                    g: {
                        $var4 = $var2.$key0;
                        if ($par1DamageSource === $var4)
                            var$7 = 0;
                        else {
                            $var3$index_0 = $par1DamageSource.$nativeString.length;
                            var$6 = $var4.$nativeString.length;
                            if ($var3$index_0 < var$6)
                                var$6 = $var3$index_0;
                            $var3$index_0 = 0;
                            while (true) {
                                if ($var3$index_0 >= var$6) {
                                    var$7 = $par1DamageSource.$nativeString.length - $var4.$nativeString.length | 0;
                                    break g;
                                }
                                if ($var3$index_0 < 0)
                                    break e;
                                if ($var3$index_0 >= $par1DamageSource.$nativeString.length)
                                    break e;
                                $var3$index = $par1DamageSource.$nativeString.charCodeAt($var3$index_0);
                                if ($var3$index_0 < 0)
                                    break f;
                                if ($var3$index_0 >= $var4.$nativeString.length)
                                    break f;
                                var$7 = $var3$index - $var4.$nativeString.charCodeAt($var3$index_0) | 0;
                                if (var$7)
                                    break;
                                $var3$index_0 = $var3$index_0 + 1 | 0;
                            }
                        }
                    }
                    if (!var$7)
                        break d;
                    $var2 = var$7 >= 0 ? $var2.$right : $var2.$left;
                }
                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                $rt_throw($par1DamageSource);
            }
            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1DamageSource);
            $rt_throw($par1DamageSource);
        }
        $par1DamageSource = $var2 === null ? null : $var2.$value2;
        if (!($par1DamageSource === null ? 0 : $par1DamageSource.$valueBoolean)) {
            $par1DamageSource = $this.$inventory0;
            $ptr = 2;
            continue main;
        }
        $var2 = $this.$worldObj.$worldScoreboard;
        nms_ScoreObjectiveCriteria_$callClinit();
        $var2 = nms_Scoreboard_func_96520_a($var2, nms_ScoreObjectiveCriteria_deathCount);
        $var3$index_0 = 0;
        var$6 = $var2.$modCount;
        var$8 = $var2.$size();
        while (true) {
            if (!($var3$index_0 >= var$8 ? 0 : 1)) {
                if (nms_CombatTracker_func_94550_c($this.$_combatTracker) !== null)
                    $var6 = nms_CombatTracker_func_94550_c($this.$_combatTracker);
                else {
                    $var6 = $this.$attackingPlayer;
                    if ($var6 === null) {
                        $var6 = $this.$entityLivingToAttack;
                        if ($var6 === null)
                            $var6 = null;
                    }
                }
                if ($var6 === null) {
                    nms_StatList_$callClinit();
                    $par1DamageSource = nms_StatList_deathsStat;
                    if ($par1DamageSource !== null && !$par1DamageSource.$isIndependent)
                        h: {
                            $var4 = $this.$playerNetServerHandler;
                            $var2 = new nms_Packet200Statistic;
                            $var3$index_0 = $par1DamageSource.$statId;
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$statisticId = $var3$index_0;
                            $var2.$amount = 1;
                            if ($var2 instanceof nms_Packet3Chat) {
                                $par1DamageSource = $var2;
                                $var3$index_0 = $var4.$playerEntity.$chatVisibility;
                                if ($var3$index_0 == 2)
                                    break h;
                                if ($var3$index_0 == 1 && !$par1DamageSource.$isServer)
                                    break h;
                            }
                            try {
                                $par1DamageSource = $var4.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par1DamageSource = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var2 = new otcic_JSStderrPrintStream;
                                $var4 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_($var4);
                                $var4.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($var2, $var4);
                                $var2.$sb = jl_StringBuilder__init_();
                                $var2.$buffer0 = $rt_createCharArray(32);
                                $var2.$autoFlush = 0;
                                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $var2;
                            }
                            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                        }
                    return;
                }
                var$7 = $this.$scoreValue;
                $ptr = 3;
                continue main;
            }
            if (var$6 < $var2.$modCount)
                break;
            $var3$index = $var3$index_0 + 1 | 0;
            $var4 = $var2.$get($var3$index_0);
            $var5 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var4);
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var2 = new jl_IllegalStateException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(1150);
                $rt_throw($var2);
            }
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1DamageSource = new jl_IllegalStateException;
                $par1DamageSource.$suppressionEnabled = 1;
                $par1DamageSource.$writableStackTrace = 1;
                $par1DamageSource.$message = $rt_s(1150);
                $rt_throw($par1DamageSource);
            }
            $var3$index_0 = $var5.$field_96655_e;
            var$7 = $var3$index_0 + 1 | 0;
            $var5.$field_96655_e = var$7;
            if ($var3$index_0 != var$7) {
                $par1DamageSource = $var5.$theScoreboard0;
                $ptr = 4;
                continue main;
            }
            $var3$index_0 = $var3$index;
        }
        $par1DamageSource = new ju_ConcurrentModificationException;
        $par1DamageSource.$suppressionEnabled = 1;
        $par1DamageSource.$writableStackTrace = 1;
        $rt_throw($par1DamageSource);
    case 1:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1DamageSource, $var4);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1DamageSource = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var4);
                $var4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var4);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
        }
        j: {
            $var2 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            $var4 = $rt_s(2024);
            $par1DamageSource = $rt_s(2024);
            if ($var4 !== $par1DamageSource) {
                $var3$index_0 = $var4.$nativeString.length;
                var$6 = $par1DamageSource.$nativeString.length;
                if ($var3$index_0 < var$6)
                    var$6 = $var3$index_0;
                var$7 = 0;
                k: {
                    while (true) {
                        if (var$7 >= var$6) {
                            $var4.$nativeString.length;
                            $par1DamageSource.$nativeString.length;
                            break j;
                        }
                        if (var$7 < 0)
                            break k;
                        if (var$7 >= $var4.$nativeString.length)
                            break k;
                        $var3$index = $var4.$nativeString.charCodeAt(var$7);
                        if (var$7 < 0)
                            break;
                        if (var$7 >= $par1DamageSource.$nativeString.length)
                            break;
                        if ($var3$index - $par1DamageSource.$nativeString.charCodeAt(var$7) | 0)
                            break j;
                        var$7 = var$7 + 1 | 0;
                    }
                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                    $rt_throw($par1DamageSource);
                }
                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                $rt_throw($par1DamageSource);
            }
        }
        $par1DamageSource = $rt_s(2024);
        c: {
            d: {
                l: while (true) {
                    if ($var2 === null) {
                        $var2 = null;
                        break c;
                    }
                    e: {
                        $var4 = $var2.$key0;
                        if ($par1DamageSource === $var4)
                            var$7 = 0;
                        else {
                            $var3$index_0 = $par1DamageSource.$nativeString.length;
                            var$6 = $var4.$nativeString.length;
                            if ($var3$index_0 < var$6)
                                var$6 = $var3$index_0;
                            $var3$index_0 = 0;
                            while (true) {
                                if ($var3$index_0 >= var$6) {
                                    var$7 = $par1DamageSource.$nativeString.length - $var4.$nativeString.length | 0;
                                    break e;
                                }
                                if ($var3$index_0 < 0)
                                    break d;
                                if ($var3$index_0 >= $par1DamageSource.$nativeString.length)
                                    break d;
                                $var3$index = $par1DamageSource.$nativeString.charCodeAt($var3$index_0);
                                if ($var3$index_0 < 0)
                                    break l;
                                if ($var3$index_0 >= $var4.$nativeString.length)
                                    break l;
                                var$7 = $var3$index - $var4.$nativeString.charCodeAt($var3$index_0) | 0;
                                if (var$7)
                                    break;
                                $var3$index_0 = $var3$index_0 + 1 | 0;
                            }
                        }
                    }
                    if (!var$7)
                        break c;
                    $var2 = var$7 >= 0 ? $var2.$right : $var2.$left;
                }
                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                $rt_throw($par1DamageSource);
            }
            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1DamageSource);
            $rt_throw($par1DamageSource);
        }
        $par1DamageSource = $var2 === null ? null : $var2.$value2;
        if (!($par1DamageSource === null ? 0 : $par1DamageSource.$valueBoolean)) {
            $par1DamageSource = $this.$inventory0;
            $ptr = 2;
            continue main;
        }
        $var2 = $this.$worldObj.$worldScoreboard;
        nms_ScoreObjectiveCriteria_$callClinit();
        $var2 = nms_Scoreboard_func_96520_a($var2, nms_ScoreObjectiveCriteria_deathCount);
        $var3$index_0 = 0;
        var$6 = $var2.$modCount;
        var$8 = $var2.$size();
        while (true) {
            if (!($var3$index_0 >= var$8 ? 0 : 1)) {
                if (nms_CombatTracker_func_94550_c($this.$_combatTracker) !== null)
                    $var6 = nms_CombatTracker_func_94550_c($this.$_combatTracker);
                else {
                    $var6 = $this.$attackingPlayer;
                    if ($var6 === null) {
                        $var6 = $this.$entityLivingToAttack;
                        if ($var6 === null)
                            $var6 = null;
                    }
                }
                if ($var6 === null) {
                    nms_StatList_$callClinit();
                    $par1DamageSource = nms_StatList_deathsStat;
                    if ($par1DamageSource !== null && !$par1DamageSource.$isIndependent)
                        m: {
                            $var4 = $this.$playerNetServerHandler;
                            $var2 = new nms_Packet200Statistic;
                            $var3$index_0 = $par1DamageSource.$statId;
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$statisticId = $var3$index_0;
                            $var2.$amount = 1;
                            if ($var2 instanceof nms_Packet3Chat) {
                                $par1DamageSource = $var2;
                                $var3$index_0 = $var4.$playerEntity.$chatVisibility;
                                if ($var3$index_0 == 2)
                                    break m;
                                if ($var3$index_0 == 1 && !$par1DamageSource.$isServer)
                                    break m;
                            }
                            try {
                                $par1DamageSource = $var4.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par1DamageSource = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var2 = new otcic_JSStderrPrintStream;
                                $var4 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_($var4);
                                $var4.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($var2, $var4);
                                $var2.$sb = jl_StringBuilder__init_();
                                $var2.$buffer0 = $rt_createCharArray(32);
                                $var2.$autoFlush = 0;
                                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $var2;
                            }
                            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                        }
                    return;
                }
                var$7 = $this.$scoreValue;
                $ptr = 3;
                continue main;
            }
            if (var$6 < $var2.$modCount)
                break;
            $var3$index = $var3$index_0 + 1 | 0;
            $var4 = $var2.$get($var3$index_0);
            $var5 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var4);
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var2 = new jl_IllegalStateException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(1150);
                $rt_throw($var2);
            }
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1DamageSource = new jl_IllegalStateException;
                $par1DamageSource.$suppressionEnabled = 1;
                $par1DamageSource.$writableStackTrace = 1;
                $par1DamageSource.$message = $rt_s(1150);
                $rt_throw($par1DamageSource);
            }
            $var3$index_0 = $var5.$field_96655_e;
            var$7 = $var3$index_0 + 1 | 0;
            $var5.$field_96655_e = var$7;
            if ($var3$index_0 != var$7) {
                $par1DamageSource = $var5.$theScoreboard0;
                $ptr = 4;
                continue main;
            }
            $var3$index_0 = $var3$index;
        }
        $par1DamageSource = new ju_ConcurrentModificationException;
        $par1DamageSource.$suppressionEnabled = 1;
        $par1DamageSource.$writableStackTrace = 1;
        $rt_throw($par1DamageSource);
    case 2:
        nms_InventoryPlayer_dropAllItems($par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$worldObj.$worldScoreboard;
        nms_ScoreObjectiveCriteria_$callClinit();
        $var2 = nms_Scoreboard_func_96520_a($var2, nms_ScoreObjectiveCriteria_deathCount);
        $var3$index_0 = 0;
        var$6 = $var2.$modCount;
        var$8 = $var2.$size();
        while (true) {
            if (!($var3$index_0 >= var$8 ? 0 : 1)) {
                if (nms_CombatTracker_func_94550_c($this.$_combatTracker) !== null)
                    $var6 = nms_CombatTracker_func_94550_c($this.$_combatTracker);
                else {
                    $var6 = $this.$attackingPlayer;
                    if ($var6 === null) {
                        $var6 = $this.$entityLivingToAttack;
                        if ($var6 === null)
                            $var6 = null;
                    }
                }
                if ($var6 === null) {
                    nms_StatList_$callClinit();
                    $par1DamageSource = nms_StatList_deathsStat;
                    if ($par1DamageSource !== null && !$par1DamageSource.$isIndependent)
                        n: {
                            $var4 = $this.$playerNetServerHandler;
                            $var2 = new nms_Packet200Statistic;
                            $var3$index_0 = $par1DamageSource.$statId;
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$statisticId = $var3$index_0;
                            $var2.$amount = 1;
                            if ($var2 instanceof nms_Packet3Chat) {
                                $par1DamageSource = $var2;
                                $var3$index_0 = $var4.$playerEntity.$chatVisibility;
                                if ($var3$index_0 == 2)
                                    break n;
                                if ($var3$index_0 == 1 && !$par1DamageSource.$isServer)
                                    break n;
                            }
                            try {
                                $par1DamageSource = $var4.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par1DamageSource = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var2 = new otcic_JSStderrPrintStream;
                                $var4 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_($var4);
                                $var4.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($var2, $var4);
                                $var2.$sb = jl_StringBuilder__init_();
                                $var2.$buffer0 = $rt_createCharArray(32);
                                $var2.$autoFlush = 0;
                                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $var2;
                            }
                            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                        }
                    return;
                }
                var$7 = $this.$scoreValue;
                $ptr = 3;
                continue main;
            }
            if (var$6 < $var2.$modCount)
                break;
            $var3$index = $var3$index_0 + 1 | 0;
            $var4 = $var2.$get($var3$index_0);
            $var5 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var4);
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var2 = new jl_IllegalStateException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(1150);
                $rt_throw($var2);
            }
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1DamageSource = new jl_IllegalStateException;
                $par1DamageSource.$suppressionEnabled = 1;
                $par1DamageSource.$writableStackTrace = 1;
                $par1DamageSource.$message = $rt_s(1150);
                $rt_throw($par1DamageSource);
            }
            $var3$index_0 = $var5.$field_96655_e;
            var$7 = $var3$index_0 + 1 | 0;
            $var5.$field_96655_e = var$7;
            if ($var3$index_0 != var$7) {
                $par1DamageSource = $var5.$theScoreboard0;
                $ptr = 4;
                continue main;
            }
            $var3$index_0 = $var3$index;
        }
        $par1DamageSource = new ju_ConcurrentModificationException;
        $par1DamageSource.$suppressionEnabled = 1;
        $par1DamageSource.$writableStackTrace = 1;
        $rt_throw($par1DamageSource);
    case 3:
        $var6.$addToPlayerScore($this, var$7);
        if ($rt_suspending()) {
            break main;
        }
        nms_StatList_$callClinit();
        $par1DamageSource = nms_StatList_deathsStat;
        if ($par1DamageSource !== null && !$par1DamageSource.$isIndependent)
            o: {
                $var4 = $this.$playerNetServerHandler;
                $var2 = new nms_Packet200Statistic;
                $var3$index_0 = $par1DamageSource.$statId;
                $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var2.$statisticId = $var3$index_0;
                $var2.$amount = 1;
                if ($var2 instanceof nms_Packet3Chat) {
                    $par1DamageSource = $var2;
                    $var3$index_0 = $var4.$playerEntity.$chatVisibility;
                    if ($var3$index_0 == 2)
                        break o;
                    if ($var3$index_0 == 1 && !$par1DamageSource.$isServer)
                        break o;
                }
                try {
                    $par1DamageSource = $var4.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1DamageSource = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    $var4 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var4);
                    $var4.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var2, $var4);
                    $var2.$sb = jl_StringBuilder__init_();
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
            }
        return;
    case 4:
        $par1DamageSource.$func_96536_a($var5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var3$index_0 = $var3$index;
            if (!($var3$index_0 >= var$8 ? 0 : 1)) {
                if (nms_CombatTracker_func_94550_c($this.$_combatTracker) !== null)
                    $var6 = nms_CombatTracker_func_94550_c($this.$_combatTracker);
                else {
                    $var6 = $this.$attackingPlayer;
                    if ($var6 === null) {
                        $var6 = $this.$entityLivingToAttack;
                        if ($var6 === null)
                            $var6 = null;
                    }
                }
                if ($var6 === null) {
                    nms_StatList_$callClinit();
                    $par1DamageSource = nms_StatList_deathsStat;
                    if ($par1DamageSource !== null && !$par1DamageSource.$isIndependent)
                        n: {
                            $var4 = $this.$playerNetServerHandler;
                            $var2 = new nms_Packet200Statistic;
                            $var3$index_0 = $par1DamageSource.$statId;
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$statisticId = $var3$index_0;
                            $var2.$amount = 1;
                            if ($var2 instanceof nms_Packet3Chat) {
                                $par1DamageSource = $var2;
                                $var3$index_0 = $var4.$playerEntity.$chatVisibility;
                                if ($var3$index_0 == 2)
                                    break n;
                                if ($var3$index_0 == 1 && !$par1DamageSource.$isServer)
                                    break n;
                            }
                            try {
                                $par1DamageSource = $var4.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par1DamageSource = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var2 = new otcic_JSStderrPrintStream;
                                $var4 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_($var4);
                                $var4.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($var2, $var4);
                                $var2.$sb = jl_StringBuilder__init_();
                                $var2.$buffer0 = $rt_createCharArray(32);
                                $var2.$autoFlush = 0;
                                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $var2;
                            }
                            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                        }
                    return;
                }
                var$7 = $this.$scoreValue;
                $ptr = 3;
                continue main;
            }
            if (var$6 < $var2.$modCount)
                break;
            $var3$index = $var3$index_0 + 1 | 0;
            $var4 = $var2.$get($var3$index_0);
            $var5 = nms_Scoreboard_func_96529_a($this.$worldObj.$worldScoreboard, $this.$username, $var4);
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $var2 = new jl_IllegalStateException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(1150);
                $rt_throw($var2);
            }
            if ($var5.$theScoreObjective.$objectiveCriteria.$isReadOnly()) {
                $par1DamageSource = new jl_IllegalStateException;
                $par1DamageSource.$suppressionEnabled = 1;
                $par1DamageSource.$writableStackTrace = 1;
                $par1DamageSource.$message = $rt_s(1150);
                $rt_throw($par1DamageSource);
            }
            $var3$index_0 = $var5.$field_96655_e;
            var$7 = $var3$index_0 + 1 | 0;
            $var5.$field_96655_e = var$7;
            if ($var3$index_0 == var$7)
                continue;
            else {
                $par1DamageSource = $var5.$theScoreboard0;
                continue main;
            }
        }
        $par1DamageSource = new ju_ConcurrentModificationException;
        $par1DamageSource.$suppressionEnabled = 1;
        $par1DamageSource.$writableStackTrace = 1;
        $rt_throw($par1DamageSource);
    case 5:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1DamageSource, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1DamageSource = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var4);
                $var4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var4);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $var2, $var4, $var3$index, $var3$index_0, var$6, var$7, var$8, $var6, $var5, $ptr);
},
nms_EntityPlayerMP_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var4, var$4, var$5, var$6, $var5, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if ($this.$initialInvulnerability > 0 && $par1DamageSource !== nms_DamageSource_outOfWorld)
            return 0;
        if ($par1DamageSource instanceof nms_EntityDamageSource) {
            $var4 = $par1DamageSource.$getEntity();
            if ($var4 instanceof nms_EntityPlayer) {
                var$4 = $var4;
                if (!$this.$mcServer3.$pvpEnabled)
                    var$5 = 0;
                else {
                    var$6 = nms_Scoreboard_getPlayersTeam($this.$worldObj.$worldScoreboard, $this.$username);
                    $var5 = nms_Scoreboard_getPlayersTeam(var$4.$worldObj.$worldScoreboard, var$4.$username);
                    var$5 = var$6 === null ? 1 : !($var5 === null ? 0 : var$6 !== $var5 ? 0 : 1) ? 1 : var$6.$allowFriendlyFire;
                }
                if (!var$5)
                    return 0;
            }
            if ($var4 instanceof nms_EntityArrow) {
                $var5 = $var4.$shootingEntity;
                if ($var5 instanceof nms_EntityPlayer) {
                    var$6 = $var5;
                    if (!$this.$mcServer3.$pvpEnabled)
                        var$5 = 0;
                    else {
                        var$8 = nms_Scoreboard_getPlayersTeam($this.$worldObj.$worldScoreboard, $this.$username);
                        $var5 = nms_Scoreboard_getPlayersTeam(var$6.$worldObj.$worldScoreboard, var$6.$username);
                        var$5 = var$8 === null ? 1 : !($var5 === null ? 0 : var$8 !== $var5 ? 0 : 1) ? 1 : var$8.$allowFriendlyFire;
                    }
                    if (!var$5)
                        return 0;
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityPlayer_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var4, var$4, var$5, var$6, $var5, var$8, $ptr);
},
nms_EntityPlayerMP_travelToDimension = ($this, $par1) => {
    let var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$dimension;
        if (var$2 == 1 && $par1 == 1) {
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_theEnd2;
            if (var$3 !== null && !var$3.$isIndependent)
                a: {
                    var$4 = $this.$playerNetServerHandler;
                    $var2 = new nms_Packet200Statistic;
                    var$6 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var2.$statisticId = var$6;
                    $var2.$amount = 1;
                    if ($var2 instanceof nms_Packet3Chat) {
                        var$3 = $var2;
                        var$6 = var$4.$playerEntity.$chatVisibility;
                        if (var$6 == 2)
                            break a;
                        if (var$6 == 1 && !var$3.$isServer)
                            break a;
                    }
                    try {
                        var$3 = var$4.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            var$3 = $this.$worldObj;
            $var2 = $this.$riddenByEntity;
            if ($var2 !== null) {
                var$4 = null;
                $ptr = 2;
                continue main;
            }
            if ($this.$ridingEntity !== null) {
                $var2 = null;
                $ptr = 5;
                continue main;
            }
            $this.$isDead = 1;
            $var2 = $this.$inventoryContainer;
            $ptr = 4;
            continue main;
        }
        b: {
            if (!var$2) {
                var$6 = $rt_compare($par1, 1);
                if (!var$6) {
                    nms_AchievementList_$callClinit();
                    var$3 = nms_AchievementList_theEnd;
                    if (var$3 !== null && !var$3.$isIndependent)
                        c: {
                            var$4 = $this.$playerNetServerHandler;
                            $var2 = new nms_Packet200Statistic;
                            var$7 = var$3.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$statisticId = var$7;
                            $var2.$amount = 1;
                            if ($var2 instanceof nms_Packet3Chat) {
                                var$3 = $var2;
                                var$7 = var$4.$playerEntity.$chatVisibility;
                                if (var$7 == 2)
                                    break c;
                                if (var$7 == 1 && !var$3.$isServer)
                                    break c;
                            }
                            try {
                                var$3 = var$4.$netManager;
                                $ptr = 7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$3 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var2 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = $var2;
                            }
                            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                        }
                    var$3 = $this.$mcServer3;
                    var$3 = $par1 == (-1) ? var$3.$worldServers.data[1] : var$6 ? var$3.$worldServers.data[0] : var$3.$worldServers.data[2];
                    $var2 = var$3.$provider.$getEntrancePortalLocation();
                    if ($var2 !== null)
                        d: {
                            var$3 = $this.$playerNetServerHandler;
                            var$8 = $var2.$posX0;
                            var$9 = $var2.$posY0;
                            var$10 = $var2.$posZ0;
                            var$3.$hasMoved = 0;
                            var$3.$lastPosX = var$8;
                            var$3.$lastPosY = var$9;
                            var$3.$lastPosZ = var$10;
                            nms_Entity_setPositionAndRotation(var$3.$playerEntity, var$8, var$9, var$10, 0.0, 0.0);
                            var$3 = var$3.$playerEntity.$playerNetServerHandler;
                            $var2 = new nms_Packet13PlayerLookMove;
                            var$11 = var$9 + 1.6200000047683716;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$xPosition = var$8;
                            $var2.$yPosition = var$11;
                            $var2.$stance = var$9;
                            $var2.$zPosition = var$10;
                            $var2.$yaw = 0.0;
                            $var2.$pitch = 0.0;
                            $var2.$onGround0 = 0;
                            $var2.$rotating = 1;
                            $var2.$moving = 1;
                            if ($var2 instanceof nms_Packet3Chat) {
                                var$4 = $var2;
                                var$6 = var$3.$playerEntity.$chatVisibility;
                                if (var$6 == 2)
                                    break d;
                                if (var$6 == 1 && !var$4.$isServer)
                                    break d;
                            }
                            try {
                                var$3 = var$3.$netManager;
                                $ptr = 9;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$3 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var2 = new otcic_JSStderrPrintStream;
                                var$4 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$4);
                                var$4.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($var2, var$4);
                                $var2.$sb = jl_StringBuilder__init_();
                                $var2.$buffer0 = $rt_createCharArray(32);
                                $var2.$autoFlush = 0;
                                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $var2;
                            }
                            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                        }
                    $par1 = 1;
                    break b;
                }
            }
            nms_AchievementList_$callClinit();
            var$3 = nms_AchievementList_portal;
            if (var$3 !== null && !var$3.$isIndependent)
                e: {
                    var$4 = $this.$playerNetServerHandler;
                    $var2 = new nms_Packet200Statistic;
                    var$2 = var$3.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var2.$statisticId = var$2;
                    $var2.$amount = 1;
                    if ($var2 instanceof nms_Packet3Chat) {
                        var$3 = $var2;
                        var$2 = var$4.$playerEntity.$chatVisibility;
                        if (var$2 == 2)
                            break e;
                        if (var$2 == 1 && !var$3.$isServer)
                            break e;
                    }
                    try {
                        var$3 = var$4.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
        }
        var$3 = $this.$mcServer3.$serverConfigManager;
        $ptr = 1;
    case 1:
        nms_ServerConfigurationManager_transferPlayerToDimension(var$3, $this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $this.$lastExperience = (-1);
        $this.$lastHealth = (-1.0);
        $this.$lastFoodLevel = (-1);
        return;
    case 2:
        $var2.$mountEntity(var$4);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$ridingEntity !== null) {
            $var2 = null;
            $ptr = 5;
            continue main;
        }
        $this.$isDead = 1;
        $var2 = $this.$inventoryContainer;
        $ptr = 4;
        continue main;
    case 3:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        var$3 = $this.$mcServer3.$serverConfigManager;
        $ptr = 1;
        continue main;
    case 4:
        nms_ContainerPlayer_onContainerClosed($var2, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$openContainer;
        if ($var2 === null) {
            if ($this instanceof nms_EntityPlayer) {
                $var2 = var$3.$playerEntities;
                var$2 = $var2.$size0;
                $par1 = 0;
                a: {
                    while (true) {
                        var$6 = $rt_compare($par1, var$2);
                        if (var$6 >= 0) {
                            $par1 = (-1);
                            break a;
                        }
                        if ($par1 < 0)
                            break;
                        if (var$6 >= 0)
                            break;
                        var$4 = $var2.$array.data[$par1];
                        if ($this === var$4 ? 1 : $this === null ? (var$4 !== null ? 0 : 1) : !(var$4 instanceof nms_Entity) ? 0 : var$4.$entityId != $this.$entityId ? 0 : 1)
                            break a;
                        $par1 = $par1 + 1 | 0;
                    }
                    var$3 = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_(var$3);
                    $rt_throw(var$3);
                }
                if ($par1 >= 0)
                    ju_ArrayList_remove($var2, $par1);
                $var2 = var$3.$playerEntities;
                var$3.$allPlayersSleeping = ($var2.$size0 ? 0 : 1) ? 0 : 1;
                var$12 = 0;
                var$2 = $var2.$modCount;
                var$7 = $var2.$size();
                g: {
                    while (true) {
                        if (!(var$12 >= var$7 ? 0 : 1))
                            break g;
                        if (var$2 < $var2.$modCount)
                            break;
                        var$6 = var$12 + 1 | 0;
                        if (!($var2.$get(var$12)).$sleeping) {
                            var$3.$allPlayersSleeping = 0;
                            break g;
                        }
                        var$12 = var$6;
                    }
                    var$3 = new ju_ConcurrentModificationException;
                    var$3.$suppressionEnabled = 1;
                    var$3.$writableStackTrace = 1;
                    $rt_throw(var$3);
                }
            }
            h: {
                $this.$playerConqueredTheEnd = 1;
                var$3 = $this.$playerNetServerHandler;
                $var2 = new nms_Packet70GameEvent;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var2.$eventType = 4;
                $var2.$gameMode = 0;
                if ($var2 instanceof nms_Packet3Chat) {
                    var$4 = $var2;
                    var$6 = var$3.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break h;
                    if (var$6 == 1 && !var$4.$isServer)
                        break h;
                }
                try {
                    var$3 = var$3.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    var$4 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$4);
                    var$4.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var2);
                    $var2.$out0 = var$4;
                    var$4 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$4);
                    $var2.$sb = var$4;
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
            }
            return;
        }
        $ptr = 8;
        continue main;
    case 5:
        nms_EntityPlayerMP_mountEntity($this, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        $var2 = $this.$inventoryContainer;
        $ptr = 4;
        continue main;
    case 6:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        var$3 = $this.$worldObj;
        $var2 = $this.$riddenByEntity;
        if ($var2 !== null) {
            var$4 = null;
            $ptr = 2;
            continue main;
        }
        if ($this.$ridingEntity !== null) {
            $var2 = null;
            $ptr = 5;
            continue main;
        }
        $this.$isDead = 1;
        $var2 = $this.$inventoryContainer;
        $ptr = 4;
        continue main;
    case 7:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        var$3 = $this.$mcServer3;
        var$3 = $par1 == (-1) ? var$3.$worldServers.data[1] : var$6 ? var$3.$worldServers.data[0] : var$3.$worldServers.data[2];
        $var2 = var$3.$provider.$getEntrancePortalLocation();
        if ($var2 !== null)
            i: {
                var$3 = $this.$playerNetServerHandler;
                var$8 = $var2.$posX0;
                var$9 = $var2.$posY0;
                var$10 = $var2.$posZ0;
                var$3.$hasMoved = 0;
                var$3.$lastPosX = var$8;
                var$3.$lastPosY = var$9;
                var$3.$lastPosZ = var$10;
                nms_Entity_setPositionAndRotation(var$3.$playerEntity, var$8, var$9, var$10, 0.0, 0.0);
                var$3 = var$3.$playerEntity.$playerNetServerHandler;
                $var2 = new nms_Packet13PlayerLookMove;
                var$11 = var$9 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var2.$xPosition = var$8;
                $var2.$yPosition = var$11;
                $var2.$stance = var$9;
                $var2.$zPosition = var$10;
                $var2.$yaw = 0.0;
                $var2.$pitch = 0.0;
                $var2.$onGround0 = 0;
                $var2.$rotating = 1;
                $var2.$moving = 1;
                if ($var2 instanceof nms_Packet3Chat) {
                    var$4 = $var2;
                    var$6 = var$3.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break i;
                    if (var$6 == 1 && !var$4.$isServer)
                        break i;
                }
                try {
                    var$3 = var$3.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    var$4 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$4);
                    var$4.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var2, var$4);
                    $var2.$sb = jl_StringBuilder__init_();
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
            }
        $par1 = 1;
        var$3 = $this.$mcServer3.$serverConfigManager;
        $ptr = 1;
        continue main;
    case 8:
        $var2.$onContainerClosed($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this instanceof nms_EntityPlayer) {
            $var2 = var$3.$playerEntities;
            var$2 = $var2.$size0;
            $par1 = 0;
            j: {
                while (true) {
                    var$6 = $rt_compare($par1, var$2);
                    if (var$6 >= 0) {
                        $par1 = (-1);
                        break j;
                    }
                    if ($par1 < 0)
                        break;
                    if (var$6 >= 0)
                        break;
                    var$4 = $var2.$array.data[$par1];
                    if ($this === var$4 ? 1 : $this === null ? (var$4 !== null ? 0 : 1) : !(var$4 instanceof nms_Entity) ? 0 : var$4.$entityId != $this.$entityId ? 0 : 1)
                        break j;
                    $par1 = $par1 + 1 | 0;
                }
                var$3 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$3);
                $rt_throw(var$3);
            }
            if ($par1 >= 0)
                ju_ArrayList_remove($var2, $par1);
            $var2 = var$3.$playerEntities;
            var$3.$allPlayersSleeping = ($var2.$size0 ? 0 : 1) ? 0 : 1;
            var$12 = 0;
            var$2 = $var2.$modCount;
            var$7 = $var2.$size();
            k: {
                while (true) {
                    if (!(var$12 >= var$7 ? 0 : 1))
                        break k;
                    if (var$2 < $var2.$modCount)
                        break;
                    var$6 = var$12 + 1 | 0;
                    if (!($var2.$get(var$12)).$sleeping) {
                        var$3.$allPlayersSleeping = 0;
                        break k;
                    }
                    var$12 = var$6;
                }
                var$3 = new ju_ConcurrentModificationException;
                var$3.$suppressionEnabled = 1;
                var$3.$writableStackTrace = 1;
                $rt_throw(var$3);
            }
        }
        l: {
            $this.$playerConqueredTheEnd = 1;
            var$3 = $this.$playerNetServerHandler;
            $var2 = new nms_Packet70GameEvent;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var2.$eventType = 4;
            $var2.$gameMode = 0;
            if ($var2 instanceof nms_Packet3Chat) {
                var$4 = $var2;
                var$6 = var$3.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break l;
                if (var$6 == 1 && !var$4.$isServer)
                    break l;
            }
            try {
                var$3 = var$3.$netManager;
                $ptr = 10;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = var$4;
                var$4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$4);
                $var2.$sb = var$4;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        return;
    case 9:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, var$4);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        $par1 = 1;
        var$3 = $this.$mcServer3.$serverConfigManager;
        $ptr = 1;
        continue main;
    case 10:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = var$4;
                var$4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$4);
                $var2.$sb = var$4;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityPlayerMP_mountEntity = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$ridingEntity;
        if (var$2 !== null && $par1Entity === null) {
            if ($this.$worldObj.$isRemote) {
                $par1Entity = $this.$ridingEntity;
                if ($par1Entity !== null)
                    $par1Entity.$riddenByEntity = null;
                $this.$ridingEntity = null;
                $par1Entity = $this.$playerNetServerHandler;
                var$2 = new nms_Packet39AttachEntity;
                var$3 = $this.$ridingEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$attachState = 0;
                var$2.$ridingEntityId = $this.$entityId;
                var$4 = var$3 === null ? (-1) : var$3.$entityId;
                a: {
                    var$2.$vehicleEntityId = var$4;
                    if (var$2 instanceof nms_Packet3Chat) {
                        var$3 = var$2;
                        var$5 = $par1Entity.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break a;
                        if (var$5 == 1 && !var$3.$isServer)
                            break a;
                    }
                    try {
                        $par1Entity = $par1Entity.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Entity = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        var$3 = new ji_ByteArrayOutputStream;
                        jl_Object__init_(var$3);
                        var$3.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_(var$2);
                        var$2.$out0 = var$3;
                        var$3 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_(var$3);
                        var$2.$sb = var$3;
                        var$2.$buffer0 = $rt_createCharArray(32);
                        var$2.$autoFlush = 0;
                        var$2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
                }
                b: {
                    $par1Entity = $this.$playerNetServerHandler;
                    var$6 = $this.$posX;
                    var$7 = $this.$posY;
                    var$8 = $this.$posZ;
                    var$9 = $this.$rotationYaw;
                    var$10 = $this.$rotationPitch;
                    $par1Entity.$hasMoved = 0;
                    $par1Entity.$lastPosX = var$6;
                    $par1Entity.$lastPosY = var$7;
                    $par1Entity.$lastPosZ = var$8;
                    nms_Entity_setPositionAndRotation($par1Entity.$playerEntity, var$6, var$7, var$8, var$9, var$10);
                    $par1Entity = $par1Entity.$playerEntity.$playerNetServerHandler;
                    var$2 = new nms_Packet13PlayerLookMove;
                    var$11 = var$7 + 1.6200000047683716;
                    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$2.$xPosition = var$6;
                    var$2.$yPosition = var$11;
                    var$2.$stance = var$7;
                    var$2.$zPosition = var$8;
                    var$2.$yaw = var$9;
                    var$2.$pitch = var$10;
                    var$2.$onGround0 = 0;
                    var$2.$rotating = 1;
                    var$2.$moving = 1;
                    if (var$2 instanceof nms_Packet3Chat) {
                        var$3 = var$2;
                        var$5 = $par1Entity.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break b;
                        if (var$5 == 1 && !var$3.$isServer)
                            break b;
                    }
                    try {
                        $par1Entity = $par1Entity.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Entity = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        var$3 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$3);
                        var$3.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$2, var$3);
                        var$2.$sb = jl_StringBuilder__init_();
                        var$2.$buffer0 = $rt_createCharArray(32);
                        var$2.$autoFlush = 0;
                        var$2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
                }
                return;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        nms_Entity_mountEntity($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity = $this.$playerNetServerHandler;
        var$2 = new nms_Packet39AttachEntity;
        var$3 = $this.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$2.$attachState = 0;
        var$2.$ridingEntityId = $this.$entityId;
        var$4 = var$3 === null ? (-1) : var$3.$entityId;
        c: {
            var$2.$vehicleEntityId = var$4;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$5 = $par1Entity.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break c;
                if (var$5 == 1 && !var$3.$isServer)
                    break c;
            }
            try {
                $par1Entity = $par1Entity.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        a: {
            $par1Entity = $this.$playerNetServerHandler;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$9 = $this.$rotationYaw;
            var$10 = $this.$rotationPitch;
            $par1Entity.$hasMoved = 0;
            $par1Entity.$lastPosX = var$6;
            $par1Entity.$lastPosY = var$7;
            $par1Entity.$lastPosZ = var$8;
            nms_Entity_setPositionAndRotation($par1Entity.$playerEntity, var$6, var$7, var$8, var$9, var$10);
            $par1Entity = $par1Entity.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$11 = var$7 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$6;
            var$2.$yPosition = var$11;
            var$2.$stance = var$7;
            var$2.$zPosition = var$8;
            var$2.$yaw = var$9;
            var$2.$pitch = var$10;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$5 = $par1Entity.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break a;
                if (var$5 == 1 && !var$3.$isServer)
                    break a;
            }
            try {
                $par1Entity = $par1Entity.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        return;
    case 2:
        nms_EntityLivingBase_dismountEntity($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $par1Entity = $this.$ridingEntity;
        if ($par1Entity !== null)
            $par1Entity.$riddenByEntity = null;
        $this.$ridingEntity = null;
        $par1Entity = $this.$playerNetServerHandler;
        var$2 = new nms_Packet39AttachEntity;
        var$3 = $this.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$2.$attachState = 0;
        var$2.$ridingEntityId = $this.$entityId;
        var$4 = var$3 === null ? (-1) : var$3.$entityId;
        d: {
            var$2.$vehicleEntityId = var$4;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$5 = $par1Entity.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break d;
                if (var$5 == 1 && !var$3.$isServer)
                    break d;
            }
            try {
                $par1Entity = $par1Entity.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        e: {
            $par1Entity = $this.$playerNetServerHandler;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$9 = $this.$rotationYaw;
            var$10 = $this.$rotationPitch;
            $par1Entity.$hasMoved = 0;
            $par1Entity.$lastPosX = var$6;
            $par1Entity.$lastPosY = var$7;
            $par1Entity.$lastPosZ = var$8;
            nms_Entity_setPositionAndRotation($par1Entity.$playerEntity, var$6, var$7, var$8, var$9, var$10);
            $par1Entity = $par1Entity.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$11 = var$7 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$6;
            var$2.$yPosition = var$11;
            var$2.$stance = var$7;
            var$2.$zPosition = var$8;
            var$2.$yaw = var$9;
            var$2.$pitch = var$10;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$5 = $par1Entity.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break e;
                if (var$5 == 1 && !var$3.$isServer)
                    break e;
            }
            try {
                $par1Entity = $par1Entity.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        return;
    case 3:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Entity, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        d: {
            $par1Entity = $this.$playerNetServerHandler;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$9 = $this.$rotationYaw;
            var$10 = $this.$rotationPitch;
            $par1Entity.$hasMoved = 0;
            $par1Entity.$lastPosX = var$6;
            $par1Entity.$lastPosY = var$7;
            $par1Entity.$lastPosZ = var$8;
            nms_Entity_setPositionAndRotation($par1Entity.$playerEntity, var$6, var$7, var$8, var$9, var$10);
            $par1Entity = $par1Entity.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$11 = var$7 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$6;
            var$2.$yPosition = var$11;
            var$2.$stance = var$7;
            var$2.$zPosition = var$8;
            var$2.$yaw = var$9;
            var$2.$pitch = var$10;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$5 = $par1Entity.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break d;
                if (var$5 == 1 && !var$3.$isServer)
                    break d;
            }
            try {
                $par1Entity = $par1Entity.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        return;
    case 4:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Entity, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityPlayerMP_updateFallState = ($this, $par1, $par3) => {
    return;
},
nms_EntityPlayerMP_displayGUIEnchantment = ($this, $par1, $par2, $par3, $par4Str) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4Str = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = ($this.$currentWindowId % 100 | 0) + 1 | 0;
        $this.$currentWindowId = var$5;
        var$6 = $this.$playerNetServerHandler;
        var$7 = new nms_Packet100OpenWindow;
        var$8 = $par4Str !== null ? $par4Str : $rt_s(3);
        var$9 = $par4Str === null ? 0 : 1;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$windowId2 = var$5;
            var$7.$inventoryType = 4;
            var$7.$windowTitle = var$8;
            var$7.$slotsCount0 = 9;
            var$7.$useProvidedWindowTitle = var$9;
            if (var$7 instanceof nms_Packet3Chat) {
                $par4Str = var$7;
                var$10 = var$6.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    break a;
                if (var$10 == 1 && !$par4Str.$isServer)
                    break a;
            }
            try {
                $par4Str = var$6.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par4Str = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$8);
                var$8.$out0 = var$7;
                var$7 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$7);
                var$8.$sb = var$7;
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace($par4Str, jl_System_errCache);
        }
        $par4Str = nms_ContainerEnchantment__init_($this.$inventory0, $this.$worldObj, $par1, $par2, $par3);
        $this.$openContainer = $par4Str;
        $par4Str.$windowId = $this.$currentWindowId;
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par4Str, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par4Str = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$8);
                var$8.$out0 = var$7;
                var$7 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$7);
                var$8.$sb = var$7;
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace($par4Str, jl_System_errCache);
        }
        $par4Str = nms_ContainerEnchantment__init_($this.$inventory0, $this.$worldObj, $par1, $par2, $par3);
        $this.$openContainer = $par4Str;
        $par4Str.$windowId = $this.$currentWindowId;
        $ptr = 2;
    case 2:
        $par4Str.$addCraftingToCrafters($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4Str, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityPlayerMP_displayGUIChest = ($this, $par1IInventory) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IInventory = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$openContainer;
        if (var$2 !== $this.$inventoryContainer) {
            a: {
                var$3 = $this.$playerNetServerHandler;
                var$4 = new nms_Packet101CloseWindow;
                var$5 = var$2.$windowId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$4.$windowId3 = var$5;
                if (var$4 instanceof nms_Packet3Chat) {
                    var$2 = var$4;
                    var$6 = var$3.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break a;
                    if (var$6 == 1 && !var$2.$isServer)
                        break a;
                }
                try {
                    var$2 = var$3.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$3 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$3);
                    var$3.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$4, var$3);
                    var$4.$sb = jl_StringBuilder__init_();
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace(var$2, jl_System_errCache);
            }
            var$2 = $this.$openContainer;
            $ptr = 5;
            continue main;
        }
        b: {
            var$6 = ($this.$currentWindowId % 100 | 0) + 1 | 0;
            $this.$currentWindowId = var$6;
            var$4 = $this.$playerNetServerHandler;
            var$3 = new nms_Packet100OpenWindow;
            var$7 = $par1IInventory.$getInvName();
            var$8 = $par1IInventory.$getSizeInventory();
            var$9 = $par1IInventory.$isInvNameLocalized();
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$windowId2 = var$6;
            var$3.$inventoryType = 0;
            var$3.$windowTitle = var$7;
            var$3.$slotsCount0 = var$8;
            var$3.$useProvidedWindowTitle = var$9;
            if (var$3 instanceof nms_Packet3Chat) {
                var$2 = var$3;
                var$6 = var$4.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break b;
                if (var$6 == 1 && !var$2.$isServer)
                    break b;
            }
            try {
                var$2 = var$4.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$4.$sb = var$3;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = new nms_ContainerChest;
        var$4 = $this.$inventory0;
        $ptr = 3;
        continue main;
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$4.$sb = var$3;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = new nms_ContainerChest;
        var$4 = $this.$inventory0;
        $ptr = 3;
        continue main;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$4, var$3);
                var$4.$sb = jl_StringBuilder__init_();
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $this.$openContainer;
        $ptr = 5;
        continue main;
    case 3:
        nms_ContainerChest__init_(var$2, var$4, $par1IInventory);
        if ($rt_suspending()) {
            break main;
        }
        $this.$openContainer = var$2;
        var$2.$windowId = $this.$currentWindowId;
        $ptr = 4;
    case 4:
        var$2.$addCraftingToCrafters($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        var$2.$onContainerClosed($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$openContainer = $this.$inventoryContainer;
        c: {
            var$6 = ($this.$currentWindowId % 100 | 0) + 1 | 0;
            $this.$currentWindowId = var$6;
            var$4 = $this.$playerNetServerHandler;
            var$3 = new nms_Packet100OpenWindow;
            var$7 = $par1IInventory.$getInvName();
            var$8 = $par1IInventory.$getSizeInventory();
            var$9 = $par1IInventory.$isInvNameLocalized();
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$windowId2 = var$6;
            var$3.$inventoryType = 0;
            var$3.$windowTitle = var$7;
            var$3.$slotsCount0 = var$8;
            var$3.$useProvidedWindowTitle = var$9;
            if (var$3 instanceof nms_Packet3Chat) {
                var$2 = var$3;
                var$6 = var$4.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break c;
                if (var$6 == 1 && !var$2.$isServer)
                    break c;
            }
            try {
                var$2 = var$4.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$4.$sb = var$3;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = new nms_ContainerChest;
        var$4 = $this.$inventory0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IInventory, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityPlayerMP_displayGUIDispenser = ($this, $par1TileEntityDispenser) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1TileEntityDispenser = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = ($this.$currentWindowId % 100 | 0) + 1 | 0;
        $this.$currentWindowId = var$2;
        var$3 = $this.$playerNetServerHandler;
        var$4 = new nms_Packet100OpenWindow;
        var$5 = !($par1TileEntityDispenser instanceof nms_TileEntityDropper) ? 3 : 10;
        var$6 = $par1TileEntityDispenser.$getInvName();
        var$7 = $par1TileEntityDispenser.$customName === null ? 0 : 1;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$4.$windowId2 = var$2;
            var$4.$inventoryType = var$5;
            var$4.$windowTitle = var$6;
            var$4.$slotsCount0 = 9;
            var$4.$useProvidedWindowTitle = var$7;
            if (var$4 instanceof nms_Packet3Chat) {
                var$8 = var$4;
                var$9 = var$3.$playerEntity.$chatVisibility;
                if (var$9 == 2)
                    break a;
                if (var$9 == 1 && !var$8.$isServer)
                    break a;
            }
            try {
                var$8 = var$3.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$6);
                var$6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$8);
                var$8.$out0 = var$6;
                var$6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$6);
                var$8.$sb = var$6;
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$4 = nms_ContainerDispenser__init_($this.$inventory0, $par1TileEntityDispenser);
        $this.$openContainer = var$4;
        var$4.$windowId = $this.$currentWindowId;
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$6);
                var$6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$8);
                var$8.$out0 = var$6;
                var$6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$6);
                var$8.$sb = var$6;
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$4 = nms_ContainerDispenser__init_($this.$inventory0, $par1TileEntityDispenser);
        $this.$openContainer = var$4;
        var$4.$windowId = $this.$currentWindowId;
        $ptr = 2;
    case 2:
        var$4.$addCraftingToCrafters($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1TileEntityDispenser, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityPlayerMP_displayGUIMerchant = ($this, $par1IMerchant, $par2Str) => {
    let $var5, $var3, $var6, var$6, $var4, var$8, var$9, $var7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();$par2Str = $thread.pop();$par1IMerchant = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$currentWindowId = ($this.$currentWindowId % 100 | 0) + 1 | 0;
        $var5 = nms_ContainerMerchant__init_0($this.$inventory0, $par1IMerchant, $this.$worldObj);
        $this.$openContainer = $var5;
        $var5.$windowId = $this.$currentWindowId;
        $ptr = 1;
    case 1:
        $var5.$addCraftingToCrafters($this);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$openContainer.$merchantInventory;
        $var5 = $this.$playerNetServerHandler;
        $var6 = new nms_Packet100OpenWindow;
        var$6 = $this.$currentWindowId;
        $var4 = $par2Str !== null ? $par2Str : $rt_s(3);
        var$8 = $var3.$theInventory.data.length;
        var$9 = $par2Str === null ? 0 : 1;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var6.$windowId2 = var$6;
            $var6.$inventoryType = 6;
            $var6.$windowTitle = $var4;
            $var6.$slotsCount0 = var$8;
            $var6.$useProvidedWindowTitle = var$9;
            if ($var6 instanceof nms_Packet3Chat) {
                $par2Str = $var6;
                var$6 = $var5.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break a;
                if (var$6 == 1 && !$par2Str.$isServer)
                    break a;
            }
            try {
                $par2Str = $var5.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2Str = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var5 = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var5);
                $var5.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $var5.$sb = $var6;
                $var5.$buffer0 = $rt_createCharArray(32);
                $var5.$autoFlush = 0;
                $var5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var5;
            }
            jl_Throwable_printStackTrace($par2Str, jl_System_errCache);
        }
        if ($par1IMerchant.$buyingList === null)
            nms_EntityVillager_addDefaultEquipmentAndRecipies($par1IMerchant, 1);
        $var4 = $par1IMerchant.$buyingList;
        if ($var4 !== null) {
            try {
                $var5 = ji_ByteArrayOutputStream__init_();
                $var6 = ji_DataOutputStream__init_($var5);
                ji_DataOutputStream_writeInt($var6, $this.$currentWindowId);
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1IMerchant = new otcic_JSStderrPrintStream;
                $par2Str = new ji_ByteArrayOutputStream;
                $par2Str.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1IMerchant);
                $par1IMerchant.$out0 = $par2Str;
                $par2Str = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($par2Str, 16);
                $par1IMerchant.$sb = $par2Str;
                $par1IMerchant.$buffer0 = $rt_createCharArray(32);
                $par1IMerchant.$autoFlush = 0;
                $par1IMerchant.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1IMerchant;
            }
            jl_Throwable_printStackTrace($var7, jl_System_errCache);
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2Str, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2Str = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var5 = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var5);
                $var5.$out0 = $var6;
                $var6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var6);
                $var5.$sb = $var6;
                $var5.$buffer0 = $rt_createCharArray(32);
                $var5.$autoFlush = 0;
                $var5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var5;
            }
            jl_Throwable_printStackTrace($par2Str, jl_System_errCache);
        }
        if ($par1IMerchant.$buyingList === null)
            nms_EntityVillager_addDefaultEquipmentAndRecipies($par1IMerchant, 1);
        $var4 = $par1IMerchant.$buyingList;
        if ($var4 !== null) {
            try {
                $var5 = ji_ByteArrayOutputStream__init_();
                $var6 = ji_DataOutputStream__init_($var5);
                ji_DataOutputStream_writeInt($var6, $this.$currentWindowId);
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1IMerchant = new otcic_JSStderrPrintStream;
                $par2Str = new ji_ByteArrayOutputStream;
                $par2Str.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1IMerchant);
                $par1IMerchant.$out0 = $par2Str;
                $par2Str = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($par2Str, 16);
                $par1IMerchant.$sb = $par2Str;
                $par1IMerchant.$buffer0 = $rt_createCharArray(32);
                $par1IMerchant.$autoFlush = 0;
                $par1IMerchant.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1IMerchant;
            }
            jl_Throwable_printStackTrace($var7, jl_System_errCache);
        }
        return;
    case 3:
        try {
            nms_MerchantRecipeList_writeRecipiesToStream($var4, $var6);
            if ($rt_suspending()) {
                break main;
            }
            $par1IMerchant = $this.$playerNetServerHandler;
            $par2Str = nms_Packet250CustomPayload__init_0($rt_s(2026), ji_ByteArrayOutputStream_toByteArray($var5));
            $ptr = 4;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof ji_IOException) {
                $var7 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1IMerchant = new otcic_JSStderrPrintStream;
            $par2Str = new ji_ByteArrayOutputStream;
            $par2Str.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1IMerchant);
            $par1IMerchant.$out0 = $par2Str;
            $par2Str = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($par2Str, 16);
            $par1IMerchant.$sb = $par2Str;
            $par1IMerchant.$buffer0 = $rt_createCharArray(32);
            $par1IMerchant.$autoFlush = 0;
            $par1IMerchant.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1IMerchant;
        }
        jl_Throwable_printStackTrace($var7, jl_System_errCache);
        return;
    case 4:
        b: {
            try {
                nms_NetServerHandler_sendPacketToPlayer($par1IMerchant, $par2Str);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1IMerchant = new otcic_JSStderrPrintStream;
                $par2Str = new ji_ByteArrayOutputStream;
                $par2Str.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1IMerchant);
                $par1IMerchant.$out0 = $par2Str;
                $par2Str = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($par2Str, 16);
                $par1IMerchant.$sb = $par2Str;
                $par1IMerchant.$buffer0 = $rt_createCharArray(32);
                $par1IMerchant.$autoFlush = 0;
                $par1IMerchant.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1IMerchant;
            }
            jl_Throwable_printStackTrace($var7, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IMerchant, $par2Str, $var5, $var3, $var6, var$6, $var4, var$8, var$9, $var7, $ptr);
},
nms_EntityPlayerMP_displayGUIHorse = ($this, $par1EntityHorse, $par2IInventory) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2IInventory = $thread.pop();$par1EntityHorse = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$openContainer;
        if (var$3 !== $this.$inventoryContainer) {
            a: {
                var$4 = $this.$playerNetServerHandler;
                var$5 = new nms_Packet101CloseWindow;
                var$6 = var$3.$windowId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$5.$windowId3 = var$6;
                if (var$5 instanceof nms_Packet3Chat) {
                    var$3 = var$5;
                    var$7 = var$4.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        break a;
                    if (var$7 == 1 && !var$3.$isServer)
                        break a;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$3 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$3);
                    var$3.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$4, var$3);
                    var$4.$sb = jl_StringBuilder__init_();
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace(var$5, jl_System_errCache);
            }
            var$5 = $this.$openContainer;
            $ptr = 4;
            continue main;
        }
        b: {
            var$8 = ($this.$currentWindowId % 100 | 0) + 1 | 0;
            $this.$currentWindowId = var$8;
            var$3 = $this.$playerNetServerHandler;
            var$9 = new nms_Packet100OpenWindow;
            var$4 = $par2IInventory.$inventoryTitle;
            var$7 = $par2IInventory.$slotsCount;
            var$6 = $par2IInventory.$field_94051_e;
            var$10 = $par1EntityHorse.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$windowId2 = var$8;
            var$9.$inventoryType = 11;
            var$9.$windowTitle = var$4;
            var$9.$slotsCount0 = var$7;
            var$9.$useProvidedWindowTitle = var$6;
            var$9.$field_111008_f = var$10;
            if (var$9 instanceof nms_Packet3Chat) {
                var$5 = var$9;
                var$7 = var$3.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break b;
                if (var$7 == 1 && !var$5.$isServer)
                    break b;
            }
            try {
                var$5 = var$3.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$4.$sb = var$3;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        var$5 = nms_ContainerHorseInventory__init_($this.$inventory0, $par2IInventory, $par1EntityHorse);
        $this.$openContainer = var$5;
        var$5.$windowId = $this.$currentWindowId;
        $ptr = 3;
        continue main;
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, var$9);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$4.$sb = var$3;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        var$5 = nms_ContainerHorseInventory__init_($this.$inventory0, $par2IInventory, $par1EntityHorse);
        $this.$openContainer = var$5;
        var$5.$windowId = $this.$currentWindowId;
        $ptr = 3;
        continue main;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$4, var$3);
                var$4.$sb = jl_StringBuilder__init_();
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        var$5 = $this.$openContainer;
        $ptr = 4;
        continue main;
    case 3:
        var$5.$addCraftingToCrafters($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        var$5.$onContainerClosed($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$openContainer = $this.$inventoryContainer;
        c: {
            var$8 = ($this.$currentWindowId % 100 | 0) + 1 | 0;
            $this.$currentWindowId = var$8;
            var$3 = $this.$playerNetServerHandler;
            var$9 = new nms_Packet100OpenWindow;
            var$4 = $par2IInventory.$inventoryTitle;
            var$7 = $par2IInventory.$slotsCount;
            var$6 = $par2IInventory.$field_94051_e;
            var$10 = $par1EntityHorse.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$windowId2 = var$8;
            var$9.$inventoryType = 11;
            var$9.$windowTitle = var$4;
            var$9.$slotsCount0 = var$7;
            var$9.$useProvidedWindowTitle = var$6;
            var$9.$field_111008_f = var$10;
            if (var$9 instanceof nms_Packet3Chat) {
                var$5 = var$9;
                var$7 = var$3.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break c;
                if (var$7 == 1 && !var$5.$isServer)
                    break c;
            }
            try {
                var$5 = var$3.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$4.$sb = var$3;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        var$5 = nms_ContainerHorseInventory__init_($this.$inventory0, $par2IInventory, $par1EntityHorse);
        $this.$openContainer = var$5;
        var$5.$windowId = $this.$currentWindowId;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityHorse, $par2IInventory, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityPlayerMP_setEntityActionState = ($this, $par1, $par2, $par3, $par4) => {
    if ($this.$ridingEntity !== null) {
        if ($par1 >= (-1.0) && $par1 <= 1.0)
            $this.$moveStrafing = $par1;
        if ($par2 >= (-1.0) && $par2 <= 1.0)
            $this.$moveForward = $par2;
        $this.$isJumping = $par3;
        nms_Entity_setFlag($this, 1, $par4);
    }
},
nms_EntityPlayerMP_onNewPotionEffect = ($this, $par1PotionEffect) => {
    let var$2, var$3, var$4, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1PotionEffect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$potionsNeedUpdate = 1;
        if (!$this.$worldObj.$isRemote) {
            nms_Potion_$callClinit();
            var$2 = nms_Potion_potionTypes.data[$par1PotionEffect.$potionID];
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$2.$applyAttributesModifiersToEntity($this, $this.$attributeMap, $par1PotionEffect.$amplifier);
        }
        a: {
            var$2 = $this.$playerNetServerHandler;
            var$3 = nms_Packet41EntityEffect__init_($this.$entityId, $par1PotionEffect);
            if (var$3 instanceof nms_Packet3Chat) {
                $par1PotionEffect = var$3;
                var$4 = var$2.$playerEntity.$chatVisibility;
                if (var$4 == 2)
                    break a;
                if (var$4 == 1 && !$par1PotionEffect.$isServer)
                    break a;
            }
            try {
                $par1PotionEffect = var$2.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1PotionEffect = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1PotionEffect, jl_System_errCache);
        }
        return;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1PotionEffect, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1PotionEffect = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1PotionEffect, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1PotionEffect, var$2, var$3, var$4, $ptr);
},
nms_EntityPlayerMP_onChangedPotionEffect = ($this, $par1PotionEffect, $par2) => {
    let var$3, var$4, var$5, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1PotionEffect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLivingBase_onChangedPotionEffect($this, $par1PotionEffect, $par2);
            if ($rt_suspending()) {
                break main;
            }
            var$3 = $this.$playerNetServerHandler;
            var$4 = nms_Packet41EntityEffect__init_($this.$entityId, $par1PotionEffect);
            if (var$4 instanceof nms_Packet3Chat) {
                $par1PotionEffect = var$4;
                var$5 = var$3.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break a;
                if (var$5 == 1 && !$par1PotionEffect.$isServer)
                    break a;
            }
            try {
                $par1PotionEffect = var$3.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1PotionEffect = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$3);
                var$3.$out0 = var$4;
                var$4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$4);
                var$3.$sb = var$4;
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1PotionEffect, jl_System_errCache);
        }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1PotionEffect, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1PotionEffect = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$3);
                var$3.$out0 = var$4;
                var$4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$4);
                var$3.$sb = var$4;
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1PotionEffect, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1PotionEffect, $par2, var$3, var$4, var$5, $ptr);
},
nms_EntityPlayerMP_onFinishedPotionEffect = ($this, $par1PotionEffect) => {
    let var$2, var$3, var$4, var$5, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1PotionEffect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$potionsNeedUpdate = 1;
        if (!$this.$worldObj.$isRemote) {
            nms_Potion_$callClinit();
            var$2 = nms_Potion_potionTypes.data[$par1PotionEffect.$potionID];
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$2.$removeAttributesModifiersFromEntity($this, $this.$attributeMap, $par1PotionEffect.$amplifier);
        }
        a: {
            var$2 = $this.$playerNetServerHandler;
            var$3 = new nms_Packet42RemoveEntityEffect;
            var$4 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$entityId10 = var$4;
            var$3.$effectId1 = ($par1PotionEffect.$potionID & 255) << 24 >> 24;
            if (var$3 instanceof nms_Packet3Chat) {
                $par1PotionEffect = var$3;
                var$5 = var$2.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break a;
                if (var$5 == 1 && !$par1PotionEffect.$isServer)
                    break a;
            }
            try {
                $par1PotionEffect = var$2.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1PotionEffect = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1PotionEffect, jl_System_errCache);
        }
        return;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1PotionEffect, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1PotionEffect = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1PotionEffect, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1PotionEffect, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityPlayerMP_setPositionAndUpdate = ($this, $par1, $par3, $par5) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$4 = $this.$playerNetServerHandler;
            var$5 = $this.$rotationYaw;
            var$6 = $this.$rotationPitch;
            var$4.$hasMoved = 0;
            var$4.$lastPosX = $par1;
            var$4.$lastPosY = $par3;
            var$4.$lastPosZ = $par5;
            nms_Entity_setPositionAndRotation(var$4.$playerEntity, $par1, $par3, $par5, var$5, var$6);
            var$4 = var$4.$playerEntity.$playerNetServerHandler;
            var$7 = new nms_Packet13PlayerLookMove;
            var$8 = $par3 + 1.6200000047683716;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$xPosition = $par1;
            var$7.$yPosition = var$8;
            var$7.$stance = $par3;
            var$7.$zPosition = $par5;
            var$7.$yaw = var$5;
            var$7.$pitch = var$6;
            var$7.$onGround0 = 0;
            var$7.$rotating = 1;
            var$7.$moving = 1;
            if (var$7 instanceof nms_Packet3Chat) {
                var$9 = var$7;
                var$10 = var$4.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    break a;
                if (var$10 == 1 && !var$9.$isServer)
                    break a;
            }
            try {
                var$4 = var$4.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$7);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$9, var$7);
                var$9.$sb = jl_StringBuilder__init_();
                var$9.$buffer0 = $rt_createCharArray(32);
                var$9.$autoFlush = 0;
                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$9;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityPlayerMP_sendChatToPlayer = ($this, $par1ChatMessageComponent) => {
    let var$2, var$3, var$4, var$5, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ChatMessageComponent = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$playerNetServerHandler;
        var$3 = new nms_Packet3Chat;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$isServer = 1;
        var$4 = $par1ChatMessageComponent.$nativeString.length;
        var$5 = nms_Packet3Chat_maxChatLength;
        if (var$4 > var$5)
            $par1ChatMessageComponent = jl_String_substring($par1ChatMessageComponent, 0, var$5);
        a: {
            var$3.$message1 = $par1ChatMessageComponent;
            var$3.$isServer = 1;
            if (var$3 instanceof nms_Packet3Chat) {
                $par1ChatMessageComponent = var$3;
                var$5 = var$2.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break a;
                if (var$5 == 1 && !$par1ChatMessageComponent.$isServer)
                    break a;
            }
            try {
                $par1ChatMessageComponent = var$2.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ChatMessageComponent = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$2);
                var$2.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$3);
                var$3.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$2);
                var$3.$sb = var$2;
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1ChatMessageComponent, jl_System_errCache);
        }
        return;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ChatMessageComponent, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ChatMessageComponent = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$2);
                var$2.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$3);
                var$3.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$2);
                var$3.$sb = var$2;
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1ChatMessageComponent, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ChatMessageComponent, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityPlayerMP_canCommandSenderUseCommand = ($this, $par1, $par2Str) => {
    let var$3;
    if ($rt_s(1029) === $par2Str)
        $par1 = 1;
    else if (!($par2Str instanceof jl_String))
        $par1 = 0;
    else {
        var$3 = $par2Str;
        $par1 = $rt_s(1029).$nativeString !== var$3.$nativeString ? 0 : 1;
    }
    a: {
        if ($par1)
            $par1 = 1;
        else {
            if ($rt_s(1046) === $par2Str)
                $par1 = 1;
            else if (!($par2Str instanceof jl_String))
                $par1 = 0;
            else {
                var$3 = $par2Str;
                $par1 = $rt_s(1046).$nativeString !== var$3.$nativeString ? 0 : 1;
            }
            if (!$par1) {
                if ($rt_s(1032) === $par2Str)
                    $par1 = 1;
                else if (!($par2Str instanceof jl_String))
                    $par1 = 0;
                else {
                    var$3 = $par2Str;
                    $par1 = $rt_s(1032).$nativeString !== var$3.$nativeString ? 0 : 1;
                }
                if (!$par1) {
                    if ($rt_s(1026) === $par2Str)
                        $par1 = 1;
                    else if (!($par2Str instanceof jl_String))
                        $par1 = 0;
                    else {
                        $par2Str = $par2Str;
                        $par1 = $rt_s(1026).$nativeString !== $par2Str.$nativeString ? 0 : 1;
                    }
                    if (!$par1) {
                        $par1 = nms_ServerConfigurationManager_isPlayerOpped($this.$mcServer3.$serverConfigManager, $this.$username);
                        break a;
                    }
                }
            }
            $par1 = 1;
        }
    }
    return $par1;
},
nms_EntityPlayerMP_updateClientInfo = ($this, $par1Packet204ClientInfo) => {
    let $var2, var$3, var$4;
    $this.$translator = $par1Packet204ClientInfo.$language;
    $var2 = 256 >> $par1Packet204ClientInfo.$renderDistance0;
    if ($var2 > 3 && $var2 < 15)
        $this.$renderDistance = $var2;
    $this.$chatVisibility = $par1Packet204ClientInfo.$chatVisisble;
    $this.$chatColours0 = $par1Packet204ClientInfo.$chatColours;
    var$3 = $this.$mcServer3.$serverOwner;
    if (var$3 === null ? 0 : 1) {
        var$4 = $this.$username;
        if (var$3 === var$4)
            $var2 = 1;
        else if (!(var$4 instanceof jl_String))
            $var2 = 0;
        else {
            var$4 = var$4;
            $var2 = var$3.$nativeString !== var$4.$nativeString ? 0 : 1;
        }
        if ($var2)
            nms_MinecraftServer_setDifficultyForAllWorlds($this.$mcServer3, $par1Packet204ClientInfo.$gameDifficulty);
    }
    nms_EntityPlayer_setHideCape($this, 1, $par1Packet204ClientInfo.$showCape ? 0 : 1);
},
nms_EntityPlayerMP_getPlayerCoordinates = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new nms_ChunkCoordinates;
    var$2 = $this.$posX;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    var$2 = $this.$posY + 0.5;
    var$4 = var$2 | 0;
    if (var$2 < var$4)
        var$4 = var$4 - 1 | 0;
    var$2 = $this.$posZ;
    var$5 = var$2 | 0;
    if (var$2 < var$5)
        var$5 = var$5 - 1 | 0;
    var$1.$posX0 = var$3;
    var$1.$posY0 = var$4;
    var$1.$posZ0 = var$5;
    return var$1;
};
function nms_AxisAlignedBB() {
    let a = this; jl_Object.call(a);
    a.$minX0 = 0.0;
    a.$minY0 = 0.0;
    a.$minZ0 = 0.0;
    a.$maxX0 = 0.0;
    a.$maxY = 0.0;
    a.$maxZ0 = 0.0;
}
let nms_AxisAlignedBB_theAABBLocalPool = null,
nms_AxisAlignedBB_addCoord = ($this, $par1, $par3, $par5) => {
    let $var7, $var9, $var11, $var13, $var15, $var17, var$10, var$11, var$12, var$13, var$14, var$15, var$16;
    $var7 = $this.$minX0;
    $var9 = $this.$minY0;
    $var11 = $this.$minZ0;
    $var13 = $this.$maxX0;
    $var15 = $this.$maxY;
    $var17 = $this.$maxZ0;
    var$10 = $rt_compare($par1, 0.0);
    if (var$10 < 0)
        $var7 = $var7 + $par1;
    if (var$10 > 0)
        $var13 = $var13 + $par1;
    var$10 = $rt_compare($par3, 0.0);
    if (var$10 < 0)
        $var9 = $var9 + $par3;
    if (var$10 > 0)
        $var15 = $var15 + $par3;
    var$10 = $rt_compare($par5, 0.0);
    if (var$10 < 0)
        $var11 = $var11 + $par5;
    if (var$10 > 0)
        $var17 = $var17 + $par5;
    var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
    var$10 = var$11.$nextPoolIndex;
    var$12 = var$11.$listAABB;
    var$13 = var$12.$size0;
    var$14 = $rt_compare(var$10, var$13);
    if (var$14 >= 0) {
        var$15 = new nms_AxisAlignedBB;
        var$15.$minX0 = $var7;
        var$15.$minY0 = $var9;
        var$15.$minZ0 = $var11;
        var$15.$maxX0 = $var13;
        var$15.$maxY = $var15;
        var$15.$maxZ0 = $var17;
        ju_ArrayList_ensureCapacity(var$12, var$13 + 1 | 0);
        var$16 = var$12.$array.data;
        var$14 = var$12.$size0;
        var$12.$size0 = var$14 + 1 | 0;
        var$16[var$14] = var$15;
        var$12.$modCount = var$12.$modCount + 1 | 0;
    } else if (var$10 >= 0 && var$14 < 0) {
        var$15 = var$12.$array.data[var$10];
        var$15.$minX0 = $var7;
        var$15.$minY0 = $var9;
        var$15.$minZ0 = $var11;
        var$15.$maxX0 = $var13;
        var$15.$maxY = $var15;
        var$15.$maxZ0 = $var17;
    } else {
        var$12 = new jl_IndexOutOfBoundsException;
        var$12.$suppressionEnabled = 1;
        var$12.$writableStackTrace = 1;
        $rt_throw(var$12);
    }
    var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
    return var$15;
},
nms_AxisAlignedBB_calculateXOffset = ($this, $par1AxisAlignedBB, $par2) => {
    let $var4, $var4_0;
    if ($par1AxisAlignedBB.$maxY > $this.$minY0 && $par1AxisAlignedBB.$minY0 < $this.$maxY) {
        if ($par1AxisAlignedBB.$maxZ0 > $this.$minZ0 && $par1AxisAlignedBB.$minZ0 < $this.$maxZ0) {
            if ($par2 <= 0.0)
                $var4 = $par2;
            else {
                $var4 = $par1AxisAlignedBB.$maxX0;
                $var4_0 = $this.$minX0;
                if ($var4 > $var4_0)
                    $var4 = $par2;
                else {
                    $var4 = $var4_0 - $var4;
                    if ($var4 >= $par2)
                        $var4 = $par2;
                }
            }
            if ($var4 >= 0.0)
                $var4_0 = $var4;
            else {
                $par2 = $par1AxisAlignedBB.$minX0;
                $var4_0 = $this.$maxX0;
                if ($par2 < $var4_0)
                    $var4_0 = $var4;
                else {
                    $var4_0 = $var4_0 - $par2;
                    if ($var4_0 <= $var4)
                        $var4_0 = $var4;
                }
            }
            return $var4_0;
        }
        return $par2;
    }
    return $par2;
},
nms_AxisAlignedBB_calculateYOffset = ($this, $par1AxisAlignedBB, $par2) => {
    let $var4, $var4_0;
    if ($par1AxisAlignedBB.$maxX0 > $this.$minX0 && $par1AxisAlignedBB.$minX0 < $this.$maxX0) {
        if ($par1AxisAlignedBB.$maxZ0 > $this.$minZ0 && $par1AxisAlignedBB.$minZ0 < $this.$maxZ0) {
            if ($par2 <= 0.0)
                $var4 = $par2;
            else {
                $var4 = $par1AxisAlignedBB.$maxY;
                $var4_0 = $this.$minY0;
                if ($var4 > $var4_0)
                    $var4 = $par2;
                else {
                    $var4 = $var4_0 - $var4;
                    if ($var4 >= $par2)
                        $var4 = $par2;
                }
            }
            if ($var4 >= 0.0)
                $var4_0 = $var4;
            else {
                $par2 = $par1AxisAlignedBB.$minY0;
                $var4_0 = $this.$maxY;
                if ($par2 < $var4_0)
                    $var4_0 = $var4;
                else {
                    $var4_0 = $var4_0 - $par2;
                    if ($var4_0 <= $var4)
                        $var4_0 = $var4;
                }
            }
            return $var4_0;
        }
        return $par2;
    }
    return $par2;
},
nms_AxisAlignedBB_calculateZOffset = ($this, $par1AxisAlignedBB, $par2) => {
    let $var4, $var4_0;
    if ($par1AxisAlignedBB.$maxX0 > $this.$minX0 && $par1AxisAlignedBB.$minX0 < $this.$maxX0) {
        if ($par1AxisAlignedBB.$maxY > $this.$minY0 && $par1AxisAlignedBB.$minY0 < $this.$maxY) {
            if ($par2 <= 0.0)
                $var4 = $par2;
            else {
                $var4 = $par1AxisAlignedBB.$maxZ0;
                $var4_0 = $this.$minZ0;
                if ($var4 > $var4_0)
                    $var4 = $par2;
                else {
                    $var4 = $var4_0 - $var4;
                    if ($var4 >= $par2)
                        $var4 = $par2;
                }
            }
            if ($var4 >= 0.0)
                $var4_0 = $var4;
            else {
                $par2 = $par1AxisAlignedBB.$minZ0;
                $var4_0 = $this.$maxZ0;
                if ($par2 < $var4_0)
                    $var4_0 = $var4;
                else {
                    $var4_0 = $var4_0 - $par2;
                    if ($var4_0 <= $var4)
                        $var4_0 = $var4;
                }
            }
            return $var4_0;
        }
        return $par2;
    }
    return $par2;
},
nms_AxisAlignedBB_intersectsWith = ($this, $par1AxisAlignedBB) => {
    return $par1AxisAlignedBB.$maxX0 > $this.$minX0 && $par1AxisAlignedBB.$minX0 < $this.$maxX0 ? ($par1AxisAlignedBB.$maxY > $this.$minY0 && $par1AxisAlignedBB.$minY0 < $this.$maxY ? ($par1AxisAlignedBB.$maxZ0 > $this.$minZ0 && $par1AxisAlignedBB.$minZ0 < $this.$maxZ0 ? 1 : 0) : 0) : 0;
},
nms_AxisAlignedBB_isVecInside = ($this, $par1Vec3) => {
    let var$2, var$3;
    var$2 = $par1Vec3.$xCoord;
    if (var$2 > $this.$minX0 && var$2 < $this.$maxX0) {
        var$2 = $par1Vec3.$yCoord;
        if (var$2 > $this.$minY0 && var$2 < $this.$maxY) {
            var$2 = $par1Vec3.$zCoord;
            var$3 = var$2 > $this.$minZ0 && var$2 < $this.$maxZ0 ? 1 : 0;
        } else
            var$3 = 0;
    } else
        var$3 = 0;
    return var$3;
},
nms_AxisAlignedBB_calculateIntercept = ($this, $par1Vec3, $par2Vec3) => {
    let $var3, $var4, $var5, $var6, $var7, $var8, $var9, var$10, var$11, var$12, var$13, var$14, var$15, $var10;
    $var3 = nms_Vec3_getIntermediateWithXValue($par1Vec3, $par2Vec3, $this.$minX0);
    $var4 = nms_Vec3_getIntermediateWithXValue($par1Vec3, $par2Vec3, $this.$maxX0);
    $var5 = nms_Vec3_getIntermediateWithYValue($par1Vec3, $par2Vec3, $this.$minY0);
    $var6 = nms_Vec3_getIntermediateWithYValue($par1Vec3, $par2Vec3, $this.$maxY);
    $var7 = nms_Vec3_getIntermediateWithZValue($par1Vec3, $par2Vec3, $this.$minZ0);
    $var8 = nms_Vec3_getIntermediateWithZValue($par1Vec3, $par2Vec3, $this.$maxZ0);
    if (!nms_AxisAlignedBB_isVecInYZ($this, $var3))
        $var3 = null;
    if (!nms_AxisAlignedBB_isVecInYZ($this, $var4))
        $var4 = null;
    if (!nms_AxisAlignedBB_isVecInXZ($this, $var5))
        $var5 = null;
    if (!nms_AxisAlignedBB_isVecInXZ($this, $var6))
        $var6 = null;
    if (!nms_AxisAlignedBB_isVecInXY($this, $var7))
        $var7 = null;
    if (!nms_AxisAlignedBB_isVecInXY($this, $var8))
        $var8 = null;
    $var9 = null;
    if ($var3 !== null)
        $var9 = $var3;
    a: {
        if ($var4 !== null) {
            if ($var9 !== null) {
                var$10 = $var4.$xCoord;
                var$11 = $par1Vec3.$xCoord;
                var$10 = var$10 - var$11;
                var$12 = $var4.$yCoord;
                var$13 = $par1Vec3.$yCoord;
                var$12 = var$12 - var$13;
                var$14 = $var4.$zCoord;
                var$15 = $par1Vec3.$zCoord;
                var$14 = var$14 - var$15;
                var$14 = var$10 * var$10 + var$12 * var$12 + var$14 * var$14;
                var$10 = $var9.$xCoord - var$11;
                var$11 = $var9.$yCoord - var$13;
                var$12 = $var9.$zCoord - var$15;
                if (var$14 >= var$10 * var$10 + var$11 * var$11 + var$12 * var$12)
                    break a;
            }
            $var9 = $var4;
        }
    }
    b: {
        if ($var5 !== null) {
            if ($var9 !== null) {
                var$10 = $var5.$xCoord;
                var$11 = $par1Vec3.$xCoord;
                var$10 = var$10 - var$11;
                var$12 = $var5.$yCoord;
                var$13 = $par1Vec3.$yCoord;
                var$12 = var$12 - var$13;
                var$14 = $var5.$zCoord;
                var$15 = $par1Vec3.$zCoord;
                var$14 = var$14 - var$15;
                var$12 = var$10 * var$10 + var$12 * var$12 + var$14 * var$14;
                var$10 = $var9.$xCoord - var$11;
                var$11 = $var9.$yCoord - var$13;
                var$13 = $var9.$zCoord - var$15;
                if (var$12 >= var$10 * var$10 + var$11 * var$11 + var$13 * var$13)
                    break b;
            }
            $var9 = $var5;
        }
    }
    c: {
        if ($var6 !== null) {
            if ($var9 !== null) {
                var$10 = $var6.$xCoord;
                var$11 = $par1Vec3.$xCoord;
                var$10 = var$10 - var$11;
                var$12 = $var6.$yCoord;
                var$13 = $par1Vec3.$yCoord;
                var$12 = var$12 - var$13;
                var$14 = $var6.$zCoord;
                var$15 = $par1Vec3.$zCoord;
                var$14 = var$14 - var$15;
                var$14 = var$10 * var$10 + var$12 * var$12 + var$14 * var$14;
                var$10 = $var9.$xCoord - var$11;
                var$11 = $var9.$yCoord - var$13;
                var$12 = $var9.$zCoord - var$15;
                if (var$14 >= var$10 * var$10 + var$11 * var$11 + var$12 * var$12)
                    break c;
            }
            $var9 = $var6;
        }
    }
    d: {
        if ($var7 !== null) {
            if ($var9 !== null) {
                var$10 = $var7.$xCoord;
                var$11 = $par1Vec3.$xCoord;
                var$10 = var$10 - var$11;
                var$12 = $var7.$yCoord;
                var$14 = $par1Vec3.$yCoord;
                var$12 = var$12 - var$14;
                var$13 = $var7.$zCoord;
                var$15 = $par1Vec3.$zCoord;
                var$13 = var$13 - var$15;
                var$13 = var$10 * var$10 + var$12 * var$12 + var$13 * var$13;
                var$10 = $var9.$xCoord - var$11;
                var$11 = $var9.$yCoord - var$14;
                var$12 = $var9.$zCoord - var$15;
                if (var$13 >= var$10 * var$10 + var$11 * var$11 + var$12 * var$12)
                    break d;
            }
            $var9 = $var7;
        }
    }
    e: {
        if ($var8 !== null) {
            if ($var9 !== null) {
                var$10 = $var8.$xCoord;
                var$11 = $par1Vec3.$xCoord;
                var$10 = var$10 - var$11;
                var$12 = $var8.$yCoord;
                var$13 = $par1Vec3.$yCoord;
                var$12 = var$12 - var$13;
                var$14 = $var8.$zCoord;
                var$15 = $par1Vec3.$zCoord;
                var$14 = var$14 - var$15;
                var$14 = var$10 * var$10 + var$12 * var$12 + var$14 * var$14;
                var$11 = $var9.$xCoord - var$11;
                var$12 = $var9.$yCoord - var$13;
                var$10 = $var9.$zCoord - var$15;
                if (var$14 >= var$11 * var$11 + var$12 * var$12 + var$10 * var$10)
                    break e;
            }
            $var9 = $var8;
        }
    }
    if ($var9 === null)
        return null;
    $var10 = (-1);
    if ($var9 === $var3)
        $var10 = 4;
    if ($var9 === $var4)
        $var10 = 5;
    if ($var9 === $var5)
        $var10 = 0;
    if ($var9 === $var6)
        $var10 = 1;
    if ($var9 === $var7)
        $var10 = 2;
    if ($var9 === $var8)
        $var10 = 3;
    $par1Vec3 = new nms_MovingObjectPosition;
    $par1Vec3.$typeOfHit = nms_EnumMovingObjectType_TILE;
    $par1Vec3.$blockX = 0;
    $par1Vec3.$blockY = 0;
    $par1Vec3.$blockZ = 0;
    $par1Vec3.$sideHit = $var10;
    $par1Vec3.$hitVec = nms_Vec3Pool_getVecFromPool($var9.$myVec3LocalPool, $var9.$xCoord, $var9.$yCoord, $var9.$zCoord);
    return $par1Vec3;
},
nms_AxisAlignedBB_isVecInYZ = ($this, $par1Vec3) => {
    let var$2, var$3;
    a: {
        if ($par1Vec3 === null)
            var$2 = 0;
        else {
            var$3 = $par1Vec3.$yCoord;
            if (var$3 >= $this.$minY0 && var$3 <= $this.$maxY) {
                var$3 = $par1Vec3.$zCoord;
                if (var$3 >= $this.$minZ0 && var$3 <= $this.$maxZ0) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_AxisAlignedBB_isVecInXZ = ($this, $par1Vec3) => {
    let var$2, var$3;
    a: {
        if ($par1Vec3 === null)
            var$2 = 0;
        else {
            var$3 = $par1Vec3.$xCoord;
            if (var$3 >= $this.$minX0 && var$3 <= $this.$maxX0) {
                var$3 = $par1Vec3.$zCoord;
                if (var$3 >= $this.$minZ0 && var$3 <= $this.$maxZ0) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_AxisAlignedBB_isVecInXY = ($this, $par1Vec3) => {
    let var$2, var$3;
    a: {
        if ($par1Vec3 === null)
            var$2 = 0;
        else {
            var$3 = $par1Vec3.$xCoord;
            if (var$3 >= $this.$minX0 && var$3 <= $this.$maxX0) {
                var$3 = $par1Vec3.$yCoord;
                if (var$3 >= $this.$minY0 && var$3 <= $this.$maxY) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_AxisAlignedBB_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$1 = $this.$minX0;
    var$2 = $this.$minY0;
    var$3 = $this.$minZ0;
    var$4 = $this.$maxX0;
    var$5 = $this.$maxY;
    var$6 = $this.$maxZ0;
    var$7 = new jl_StringBuilder;
    var$7.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(2027));
    jl_AbstractStringBuilder_insert2(var$7, var$7.$length0, var$1);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert2(var$7, var$7.$length0, var$2);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert2(var$7, var$7.$length0, var$3);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(2028));
    jl_AbstractStringBuilder_insert2(var$7, var$7.$length0, var$4);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert2(var$7, var$7.$length0, var$5);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert2(var$7, var$7.$length0, var$6);
    var$8 = var$7.$length0;
    jl_AbstractStringBuilder_insertSpace(var$7, var$8, var$8 + 1 | 0);
    var$9 = var$7.$buffer;
    var$10 = var$9.data;
    var$10[var$8] = 93;
    var$11 = new jl_String;
    var$8 = var$7.$length0;
    var$12 = var$10.length;
    if (var$8 >= 0 && var$8 <= (var$12 - 0 | 0)) {
        var$11.$nativeString = $rt_charArrayToString(var$9.data, 0, var$8);
        return var$11;
    }
    var$7 = new jl_IndexOutOfBoundsException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$7);
    $rt_throw(var$7);
},
nms_AxisAlignedBB__clinit_ = () => {
    nms_AxisAlignedBB_theAABBLocalPool = new nms_AABBLocalPool;
};
function nms_Packet() {
    let a = this; jl_Object.call(a);
    a.$field_98193_m = null;
    a.$creationTimeMillis = Long_ZERO;
    a.$isChunkDataPacket = 0;
}
let nms_Packet_packetIdToClassMap = null,
nms_Packet_packetClassToIdMap = null,
nms_Packet_clientPacketIdList = null,
nms_Packet_serverPacketIdList = null,
nms_Packet_receivedID = Long_ZERO,
nms_Packet_receivedSize = Long_ZERO,
nms_Packet_sentID = Long_ZERO,
nms_Packet_sentSize = Long_ZERO,
nms_Packet_$callClinit = () => {
    nms_Packet_$callClinit = $rt_eraseClinit(nms_Packet);
    nms_Packet__clinit_();
},
nms_Packet_addIdClassMapping = ($par0, $par1, $par2, $par3Class) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    nms_Packet_$callClinit();
    var$5 = nms_Packet_packetIdToClassMap;
    var$6 = $par0 ^ ($par0 >>> 20 | 0) ^ ($par0 >>> 12 | 0);
    var$7 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
    var$8 = var$5.$slots.data;
    var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
    a: {
        while (true) {
            if (var$5 === null) {
                var$5 = null;
                break a;
            }
            if (var$5.$hashEntry == $par0)
                break;
            var$5 = var$5.$nextEntry0;
        }
    }
    if (var$5 === null ? 0 : 1) {
        $par3Class = new jl_IllegalArgumentException;
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(2029));
        jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $par0, 10);
        var$9 = new jl_String;
        var$8 = var$5.$buffer;
        var$10 = var$8.data;
        $par1 = var$5.$length0;
        $par2 = var$10.length;
        if ($par1 >= 0 && $par1 <= ($par2 - 0 | 0)) {
            var$9.$nativeString = $rt_charArrayToString(var$8.data, 0, $par1);
            $par3Class.$suppressionEnabled = 1;
            $par3Class.$writableStackTrace = 1;
            $par3Class.$message = var$9;
            $rt_throw($par3Class);
        }
        $par3Class = new jl_IndexOutOfBoundsException;
        $par3Class.$suppressionEnabled = 1;
        $par3Class.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par3Class);
        $rt_throw($par3Class);
    }
    var$5 = nms_Packet_packetClassToIdMap;
    if ($par3Class === null) {
        var$5 = var$5.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        var$11 = $par3Class;
        if (!var$11.$id$)
            var$11.$id$ = $rt_nextId();
        var$6 = $par3Class.$id$;
        var$8 = var$5.$elementData.data;
        var$5 = var$8[var$6 & (var$8.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$6) {
                var$9 = var$5.$key;
                if ($par3Class !== var$9 && !($par3Class !== var$9 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$5 = var$5.$next3;
        }
    }
    if (!(var$5 === null ? 0 : 1)) {
        nms_IntHashMap_addKey(nms_Packet_packetIdToClassMap, $par0, $par3Class);
        var$5 = nms_Packet_packetClassToIdMap;
        var$6 = $rt_compare($par0, (-128));
        if (var$6 >= 0 && $par0 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[$par0 + 128 | 0];
        } else {
            var$9 = new jl_Integer;
            var$9.$value = $par0;
        }
        ju_HashMap_putImpl(var$5, $par3Class, var$9);
        if ($par1) {
            $par3Class = nms_Packet_clientPacketIdList;
            if (var$6 >= 0 && $par0 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[$par0 + 128 | 0];
            } else {
                var$5 = new jl_Integer;
                var$5.$value = $par0;
            }
            ju_HashMap_putImpl($par3Class.$backingMap, var$5, $par3Class);
        }
        if ($par2) {
            $par3Class = nms_Packet_serverPacketIdList;
            if (var$6 >= 0 && $par0 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[$par0 + 128 | 0];
            } else {
                var$5 = new jl_Integer;
                var$5.$value = $par0;
            }
            ju_HashMap_putImpl($par3Class.$backingMap, var$5, $par3Class);
        }
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    if ($par3Class === null)
        var$12 = $rt_s(1);
    else {
        var$9 = (!($par3Class.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !($par3Class.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
        if ($par3Class.$name1 === null)
            $par3Class.$name1 = $rt_str($par3Class.$platformClass.$meta.name);
        var$12 = $par3Class.$name1;
        $par3Class = new jl_StringBuilder;
        $par3Class.$buffer = $rt_createCharArray(16);
        jl_StringBuilder_insert0($par3Class, $par3Class.$length0, var$9);
        $par0 = $par3Class.$length0;
        if (var$12 === null)
            var$12 = $rt_s(1);
        jl_StringBuilder_insert0($par3Class, $par0, var$12);
        var$12 = new jl_String;
        var$8 = $par3Class.$buffer;
        var$10 = var$8.data;
        $par1 = $par3Class.$length0;
        $par2 = var$10.length;
        if ($par1 >= 0 && $par1 <= ($par2 - 0 | 0))
            var$12.$nativeString = $rt_charArrayToString(var$8.data, 0, $par1);
        else {
            $par3Class = new jl_IndexOutOfBoundsException;
            jl_Exception__init_($par3Class);
            $rt_throw($par3Class);
        }
    }
    $par3Class = new jl_StringBuilder;
    $par3Class.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($par3Class, $par3Class.$length0, $rt_s(2030));
    jl_AbstractStringBuilder_insert($par3Class, $par3Class.$length0, var$12);
    var$9 = new jl_String;
    var$8 = $par3Class.$buffer;
    var$10 = var$8.data;
    $par1 = $par3Class.$length0;
    $par2 = var$10.length;
    if ($par1 >= 0 && $par1 <= ($par2 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$8.data, 0, $par1);
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = var$9;
        $rt_throw(var$5);
    }
    $par3Class = new jl_IndexOutOfBoundsException;
    $par3Class.$suppressionEnabled = 1;
    $par3Class.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par3Class);
    $rt_throw($par3Class);
},
nms_Packet_getNewPacket = ($par0ILogAgent, $par1) => {
    let $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1 = $thread.pop();$par0ILogAgent = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Packet_$callClinit();
        a: {
            b: {
                try {
                    $var2 = nms_IntHashMap_lookup(nms_Packet_packetIdToClassMap, $par1);
                    if ($var2 !== null)
                        break b;
                    $var2 = null;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var3 = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                return $var2;
            }
            try {
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        if (jl_System_errCache === null) {
            $var2 = new otcic_JSStderrPrintStream;
            var$5 = new ji_ByteArrayOutputStream;
            var$5.$buf = $rt_createByteArray(32);
            jl_Object__init_($var2);
            $var2.$out0 = var$5;
            var$5 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$5, 16);
            $var2.$sb = var$5;
            $var2.$buffer0 = $rt_createCharArray(32);
            $var2.$autoFlush = 0;
            $var2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var2;
        }
        jl_Throwable_printStackTrace($var3, jl_System_errCache);
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(2031));
        jl_AbstractStringBuilder_insert0($var2, $var2.$length0, $par1, 10);
        $var3 = new jl_String;
        var$6 = $var2.$buffer;
        var$7 = var$6.data;
        var$8 = $var2.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            $var3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            $var2 = $par0ILogAgent.$logger;
            $par0ILogAgent = jul_Level_SEVERE;
            var$5 = new jul_LogRecord;
            var$5.$level = $par0ILogAgent;
            var$5.$message0 = $var3;
            var$5.$millis = jl_System_currentTimeMillis();
            var$10 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$10, Long_fromInt(1));
            var$5.$sequenceNumber = var$10;
            var$5.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log($var2, var$5);
            return null;
        }
        $par0ILogAgent = new jl_IndexOutOfBoundsException;
        $par0ILogAgent.$suppressionEnabled = 1;
        $par0ILogAgent.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par0ILogAgent);
        $rt_throw($par0ILogAgent);
    case 1:
        a: {
            try {
                $tmp = jl_Class_newInstance($var2);
                if ($rt_suspending()) {
                    break main;
                }
                $var2 = $tmp;
                $var2 = $var2;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                    break a;
                } else {
                    throw $$e;
                }
            }
            return $var2;
        }
        if (jl_System_errCache === null) {
            $var2 = new otcic_JSStderrPrintStream;
            var$5 = new ji_ByteArrayOutputStream;
            var$5.$buf = $rt_createByteArray(32);
            jl_Object__init_($var2);
            $var2.$out0 = var$5;
            var$5 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$5, 16);
            $var2.$sb = var$5;
            $var2.$buffer0 = $rt_createCharArray(32);
            $var2.$autoFlush = 0;
            $var2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var2;
        }
        jl_Throwable_printStackTrace($var3, jl_System_errCache);
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(2031));
        jl_AbstractStringBuilder_insert0($var2, $var2.$length0, $par1, 10);
        $var3 = new jl_String;
        var$6 = $var2.$buffer;
        var$7 = var$6.data;
        var$8 = $var2.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            $var3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
            $var2 = $par0ILogAgent.$logger;
            $par0ILogAgent = jul_Level_SEVERE;
            var$5 = new jul_LogRecord;
            var$5.$level = $par0ILogAgent;
            var$5.$message0 = $var3;
            var$5.$millis = jl_System_currentTimeMillis();
            var$10 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$10, Long_fromInt(1));
            var$5.$sequenceNumber = var$10;
            var$5.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log($var2, var$5);
            return null;
        }
        $par0ILogAgent = new jl_IndexOutOfBoundsException;
        $par0ILogAgent.$suppressionEnabled = 1;
        $par0ILogAgent.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par0ILogAgent);
        $rt_throw($par0ILogAgent);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0ILogAgent, $par1, $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_Packet_getPacketId = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    nms_Packet_$callClinit();
    var$1 = nms_Packet_packetClassToIdMap;
    var$2 = $this.constructor;
    if (var$2 === null)
        var$3 = null;
    else {
        var$3 = var$2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$2;
            var$2.classObject = var$3;
        }
    }
    if (var$3 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$2 = var$3;
        if (!var$2.$id$)
            var$2.$id$ = $rt_nextId();
        var$4 = var$3.$id$;
        var$5 = var$1.$elementData.data;
        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$4) {
                var$2 = var$1.$key;
                if (var$3 !== var$2 && !(var$3 !== var$2 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$value;
},
nms_Packet_writePacket = ($par0Packet, $par1DataOutput) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par1DataOutput = $thread.pop();$par0Packet = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Packet_$callClinit();
        var$3 = nms_Packet_packetClassToIdMap;
        var$4 = $par0Packet.constructor;
        if (var$4 === null)
            var$5 = null;
        else {
            var$5 = var$4.classObject;
            if (var$5 === null) {
                var$5 = new jl_Class;
                var$5.$platformClass = var$4;
                var$4.classObject = var$5;
            }
        }
        if (var$5 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$6 = var$5;
            if (!var$6.$id$)
                var$6.$id$ = $rt_nextId();
            var$7 = var$5.$id$;
            var$8 = var$3.$elementData.data;
            var$3 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$7) {
                    var$4 = var$3.$key;
                    if (var$5 !== var$4 && !(var$5 !== var$4 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$7 = (var$3 === null ? null : var$3.$value0).$value;
        $par1DataOutput.$out0.$write0(var$7);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        $ptr = 1;
    case 1:
        $par0Packet.$writePacketData($par1DataOutput);
        if ($rt_suspending()) {
            break main;
        }
        nms_Packet_sentID = Long_add(nms_Packet_sentID, Long_fromInt(1));
        nms_Packet_sentSize = Long_add(nms_Packet_sentSize, Long_fromInt($par0Packet.$getPacketSize()));
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0Packet, $par1DataOutput, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_Packet_readString = ($par0DataInput, $par1) => {
    let $var2, $var3, $var4, var$6, var$7, var$8, var$9;
    nms_Packet_$callClinit();
    $var2 = ji_DataInputStream_readShort($par0DataInput);
    if ($var2 <= $par1) {
        if ($var2 < 0) {
            $var3 = new ji_IOException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(2032);
            $rt_throw($var3);
        }
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        $var4 = 0;
        while ($var4 < $var2) {
            $par1 = ji_DataInputStream_readChar($par0DataInput);
            var$6 = $var3.$length0;
            jl_AbstractStringBuilder_insertSpace($var3, var$6, var$6 + 1 | 0);
            $var3.$buffer.data[var$6] = $par1;
            $var4 = $var4 + 1 | 0;
        }
        $par0DataInput = new jl_String;
        var$7 = $var3.$buffer;
        var$8 = var$7.data;
        $var2 = $var3.$length0;
        $var4 = var$8.length;
        if ($var2 >= 0 && $var2 <= ($var4 - 0 | 0)) {
            $par0DataInput.$nativeString = $rt_charArrayToString(var$7.data, 0, $var2);
            return $par0DataInput;
        }
        $par0DataInput = new jl_IndexOutOfBoundsException;
        $par0DataInput.$suppressionEnabled = 1;
        $par0DataInput.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par0DataInput);
        $rt_throw($par0DataInput);
    }
    $par0DataInput = new ji_IOException;
    $var3 = new jl_StringBuilder;
    $var3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2033));
    $var2 = $var2 << 16 >> 16;
    jl_AbstractStringBuilder_insert0($var3, $var3.$length0, $var2, 10);
    jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2034));
    jl_AbstractStringBuilder_insert0($var3, $var3.$length0, $par1, 10);
    $var2 = $var3.$length0;
    jl_AbstractStringBuilder_insertSpace($var3, $var2, $var2 + 1 | 0);
    var$7 = $var3.$buffer;
    var$8 = var$7.data;
    var$8[$var2] = 41;
    var$9 = new jl_String;
    $var2 = $var3.$length0;
    $var4 = var$8.length;
    if ($var2 >= 0 && $var2 <= ($var4 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$7.data, 0, $var2);
        $par0DataInput.$suppressionEnabled = 1;
        $par0DataInput.$writableStackTrace = 1;
        $par0DataInput.$message = var$9;
        $rt_throw($par0DataInput);
    }
    $par0DataInput = new jl_IndexOutOfBoundsException;
    $par0DataInput.$suppressionEnabled = 1;
    $par0DataInput.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par0DataInput);
    $rt_throw($par0DataInput);
},
nms_Packet_toString = $this => {
    let var$1, $var1;
    var$1 = $this.constructor;
    if (var$1 === null)
        $var1 = null;
    else {
        $var1 = var$1.classObject;
        if ($var1 === null) {
            $var1 = new jl_Class;
            $var1.$platformClass = var$1;
            var$1.classObject = $var1;
        }
    }
    return jl_Class_getSimpleName($var1);
},
nms_Packet_readItemStack = $par0DataInput => {
    let $var1, $var2, $var4, $var3, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    nms_Packet_$callClinit();
    $var1 = null;
    $var2 = ji_DataInputStream_readShort($par0DataInput);
    if ($var2 >= 0) {
        $var4 = $par0DataInput.$in.$read();
        if ($var4 < 0) {
            $par0DataInput = new ji_EOFException;
            $par0DataInput.$suppressionEnabled = 1;
            $par0DataInput.$writableStackTrace = 1;
            $rt_throw($par0DataInput);
        }
        $var3 = $var4 << 24 >> 24;
        $var4 = ji_DataInputStream_readShort($par0DataInput);
        $var1 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $var1.$itemID = $var2;
        $var1.$stackSize = $var3;
        $var1.$itemDamage = $var4;
        if ($var4 < 0)
            $var1.$itemDamage = 0;
        $var2 = ji_DataInputStream_readShort($par0DataInput);
        if ($var2 < 0)
            $par0DataInput = null;
        else {
            var$6 = $rt_createByteArray($var2);
            $var4 = var$6.data.length;
            ji_DataInputStream_readFully($par0DataInput, var$6, 0, $var4);
            var$7 = new ji_DataInputStream;
            $par0DataInput = new ji_BufferedInputStream;
            var$8 = new cjj_GZIPInputStream;
            var$9 = new ji_ByteArrayInputStream;
            var$9.$buf0 = var$6;
            var$9.$pos0 = 0;
            var$9.$mark = 0;
            var$9.$count = 0 + $var4 | 0;
            var$10 = new cjj_Inflater;
            var$11 = new cjj_Adler32;
            jl_Object__init_(var$11);
            var$11.$s1 = Long_fromInt(1);
            var$11.$s2 = Long_ZERO;
            jl_Object__init_(var$10);
            var$10.$adler = var$11;
            var$10.$finished0 = 0;
            var$10.$finished0 = 0;
            var$11 = new cjj_Inflate;
            jl_Object__init_(var$11);
            var$11.$was = Long_fromInt(-1);
            var$11.$need_bytes = (-1);
            var$11.$crcbuf = $rt_createByteArray(4);
            var$11.$gheader = null;
            var$11.$tmp_string = null;
            var$11.$z0 = var$10;
            var$10.$istate = var$11;
            $var3 = cjj_Inflate_inflateInit(var$11, 31);
            if ($var3) {
                $par0DataInput = new cjj_GZIPException;
                $var1 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var1, 16);
                jl_AbstractStringBuilder_append3($var1, $var3, 10);
                jl_StringBuilder_insert($var1, $var1.$length0, $rt_s(102));
                var$7 = var$10.$msg;
                jl_StringBuilder_insert($var1, $var1.$length0, var$7);
                jl_Exception__init_0($par0DataInput, jl_String__init_2($var1.$buffer, 0, $var1.$length0));
                $rt_throw($par0DataInput);
            }
            cjj_InflaterInputStream__init_(var$8, var$9, var$10, 512, 1);
            var$8.$myinflater = 1;
            $par0DataInput.$in = var$8;
            $par0DataInput.$markpos = (-1);
            $par0DataInput.$buf1 = $rt_createByteArray(8192);
            var$7.$in = $par0DataInput;
            var$7.$buff = $rt_createByteArray(8);
            a: {
                try {
                    $par0DataInput = nms_CompressedStreamTools_read(var$7);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par0DataInput = $$je;

                }
                var$7.$in.$close();
                $rt_throw($par0DataInput);
            }
            var$7.$in.$close();
        }
        $var1.$stackTagCompound = $par0DataInput;
    }
    return $var1;
},
nms_Packet_writeItemStack = ($par0ItemStack, $par1DataOutput) => {
    let var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$par1DataOutput = $thread.pop();$par0ItemStack = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Packet_$callClinit();
        if ($par0ItemStack === null)
            ji_DataOutputStream_writeShort($par1DataOutput, (-1));
        else {
            ji_DataOutputStream_writeShort($par1DataOutput, $par0ItemStack.$itemID);
            var$3 = $par0ItemStack.$stackSize;
            $par1DataOutput.$out0.$write0(var$3);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
            ji_DataOutputStream_writeShort($par1DataOutput, $par0ItemStack.$itemDamage);
            $var2 = null;
            nms_Item_$callClinit();
            var$5 = nms_Item_itemsList.data;
            var$6 = $par0ItemStack.$itemID;
            var$7 = var$5[var$6];
            var$3 = var$7.$maxDamage > 0 && !var$7.$hasSubtypes ? 1 : 0;
            if (!(!var$3 && !var$5[var$6].$getShareTag()))
                $var2 = $par0ItemStack.$stackTagCompound;
            if ($var2 !== null) {
                $par0ItemStack = new ji_ByteArrayOutputStream;
                $par0ItemStack.$buf = $rt_createByteArray(32);
                var$8 = new ji_DataOutputStream;
                var$7 = new cjj_GZIPOutputStream;
                var$9 = new cjj_Deflater;
                cjj_ZStream__init_(var$9, cjj_Adler32__init_());
                var$9.$finished1 = 0;
                var$9.$finished1 = 0;
                var$10 = cjj_Deflate__init_(var$9);
                var$9.$dstate = var$10;
                var$3 = cjj_Deflate_deflateInit0(var$10, (-1), 31);
                if (var$3) {
                    $par0ItemStack = new cjj_GZIPException;
                    $par1DataOutput = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($par1DataOutput);
                    jl_AbstractStringBuilder_append0($par1DataOutput, var$3);
                    jl_AbstractStringBuilder_append($par1DataOutput, $rt_s(102));
                    jl_AbstractStringBuilder_append($par1DataOutput, var$9.$msg);
                    ji_IOException__init_0($par0ItemStack, jl_AbstractStringBuilder_toString($par1DataOutput));
                    $rt_throw($par0ItemStack);
                }
                cjj_DeflaterOutputStream__init_(var$7, $par0ItemStack, var$9, 512, 1);
                var$7.$mydeflater = 1;
                var$8.$out0 = var$7;
                var$8.$buff0 = $rt_createByteArray(8);
                a: {
                    try {
                        nms_CompressedStreamTools_write($var2, var$8);
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        $par0ItemStack = $$je;
                        break a;

                    }
                    b: {
                        try {
                            var$8.$out0.$flush();
                            break b;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof ji_IOException) {
                            } else {
                                throw $$e;
                            }
                        }
                    }
                    $var2 = var$8.$out0;
                    $ptr = 2;
                    continue main;
                }
                c: {
                    try {
                        var$8.$out0.$flush();
                        break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                        } else {
                            throw $$e;
                        }
                    }
                }
                $par1DataOutput = var$8.$out0;
                $ptr = 1;
                continue main;
            }
            ji_DataOutputStream_writeShort($par1DataOutput, (-1));
        }
        return;
    case 1:
        $par1DataOutput.$close();
        if ($rt_suspending()) {
            break main;
        }
        $rt_throw($par0ItemStack);
    case 2:
        $var2.$close();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $par0ItemStack.$buf.data;
        var$3 = $par0ItemStack.$count0;
        var$5 = $rt_createByteArray(var$3);
        var$6 = var$11.length;
        if (var$3 < var$6)
            var$6 = var$3;
        var$12 = var$5.data;
        var$3 = 0;
        while (var$3 < var$6) {
            var$12[var$3] = var$11[var$3];
            var$3 = var$3 + 1 | 0;
        }
        var$3 = var$12.length;
        ji_DataOutputStream_writeShort($par1DataOutput, var$3 << 16 >> 16);
        $par1DataOutput.$out0.$write1(var$5, 0, var$3);
        $par1DataOutput.$written = $par1DataOutput.$written + var$3 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0ItemStack, $par1DataOutput, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_Packet__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    nms_Packet_packetIdToClassMap = nms_IntHashMap__init_();
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_Packet_packetClassToIdMap = var$1;
    var$1 = new ju_HashSet;
    var$5 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$5.$elementData = var$3;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$4.length * 0.75 | 0;
    var$1.$backingMap = var$5;
    nms_Packet_clientPacketIdList = var$1;
    var$1 = new ju_HashSet;
    var$5 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$5.$elementData = var$3;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$4.length * 0.75 | 0;
    var$1.$backingMap = var$5;
    nms_Packet_serverPacketIdList = var$1;
    nms_Packet_addIdClassMapping(0, 1, 1, $rt_cls(nms_Packet0KeepAlive));
    nms_Packet_addIdClassMapping(1, 1, 1, $rt_cls(nms_Packet1Login));
    nms_Packet_addIdClassMapping(2, 0, 1, $rt_cls(nms_Packet2ClientProtocol));
    nms_Packet_addIdClassMapping(3, 1, 1, $rt_cls(nms_Packet3Chat));
    nms_Packet_addIdClassMapping(4, 1, 0, $rt_cls(nms_Packet4UpdateTime));
    nms_Packet_addIdClassMapping(5, 1, 0, $rt_cls(nms_Packet5PlayerInventory));
    nms_Packet_addIdClassMapping(6, 1, 0, $rt_cls(nms_Packet6SpawnPosition));
    nms_Packet_addIdClassMapping(7, 0, 1, $rt_cls(nms_Packet7UseEntity));
    nms_Packet_addIdClassMapping(8, 1, 0, $rt_cls(nms_Packet8UpdateHealth));
    nms_Packet_addIdClassMapping(9, 1, 1, $rt_cls(nms_Packet9Respawn));
    nms_Packet_addIdClassMapping(10, 1, 1, $rt_cls(nms_Packet10Flying));
    nms_Packet_addIdClassMapping(11, 1, 1, $rt_cls(nms_Packet11PlayerPosition));
    nms_Packet_addIdClassMapping(12, 1, 1, $rt_cls(nms_Packet12PlayerLook));
    nms_Packet_addIdClassMapping(13, 1, 1, $rt_cls(nms_Packet13PlayerLookMove));
    nms_Packet_addIdClassMapping(14, 0, 1, $rt_cls(nms_Packet14BlockDig));
    nms_Packet_addIdClassMapping(15, 0, 1, $rt_cls(nms_Packet15Place));
    nms_Packet_addIdClassMapping(16, 1, 1, $rt_cls(nms_Packet16BlockItemSwitch));
    nms_Packet_addIdClassMapping(17, 1, 0, $rt_cls(nms_Packet17Sleep));
    nms_Packet_addIdClassMapping(18, 1, 1, $rt_cls(nms_Packet18Animation));
    nms_Packet_addIdClassMapping(19, 0, 1, $rt_cls(nms_Packet19EntityAction));
    nms_Packet_addIdClassMapping(20, 1, 0, $rt_cls(nms_Packet20NamedEntitySpawn));
    nms_Packet_addIdClassMapping(22, 1, 0, $rt_cls(nms_Packet22Collect));
    nms_Packet_addIdClassMapping(23, 1, 0, $rt_cls(nms_Packet23VehicleSpawn));
    nms_Packet_addIdClassMapping(24, 1, 0, $rt_cls(nms_Packet24MobSpawn));
    nms_Packet_addIdClassMapping(25, 1, 0, $rt_cls(nms_Packet25EntityPainting));
    nms_Packet_addIdClassMapping(26, 1, 0, $rt_cls(nms_Packet26EntityExpOrb));
    nms_Packet_addIdClassMapping(27, 0, 1, $rt_cls(nms_Packet27PlayerInput));
    nms_Packet_addIdClassMapping(28, 1, 0, $rt_cls(nms_Packet28EntityVelocity));
    nms_Packet_addIdClassMapping(29, 1, 0, $rt_cls(nms_Packet29DestroyEntity));
    nms_Packet_addIdClassMapping(30, 1, 0, $rt_cls(nms_Packet30Entity));
    nms_Packet_addIdClassMapping(31, 1, 0, $rt_cls(nms_Packet31RelEntityMove));
    nms_Packet_addIdClassMapping(32, 1, 0, $rt_cls(nms_Packet32EntityLook));
    nms_Packet_addIdClassMapping(33, 1, 0, $rt_cls(nms_Packet33RelEntityMoveLook));
    nms_Packet_addIdClassMapping(34, 1, 0, $rt_cls(nms_Packet34EntityTeleport));
    nms_Packet_addIdClassMapping(35, 1, 0, $rt_cls(nms_Packet35EntityHeadRotation));
    nms_Packet_addIdClassMapping(38, 1, 0, $rt_cls(nms_Packet38EntityStatus));
    nms_Packet_addIdClassMapping(39, 1, 0, $rt_cls(nms_Packet39AttachEntity));
    nms_Packet_addIdClassMapping(40, 1, 0, $rt_cls(nms_Packet40EntityMetadata));
    nms_Packet_addIdClassMapping(41, 1, 0, $rt_cls(nms_Packet41EntityEffect));
    nms_Packet_addIdClassMapping(42, 1, 0, $rt_cls(nms_Packet42RemoveEntityEffect));
    nms_Packet_addIdClassMapping(43, 1, 0, $rt_cls(nms_Packet43Experience));
    nms_Packet_addIdClassMapping(44, 1, 0, $rt_cls(nms_Packet44UpdateAttributes));
    nms_Packet_addIdClassMapping(51, 1, 0, $rt_cls(nms_Packet51MapChunk));
    nms_Packet_addIdClassMapping(52, 1, 0, $rt_cls(nms_Packet52MultiBlockChange));
    nms_Packet_addIdClassMapping(53, 1, 0, $rt_cls(nms_Packet53BlockChange));
    nms_Packet_addIdClassMapping(54, 1, 0, $rt_cls(nms_Packet54PlayNoteBlock));
    nms_Packet_addIdClassMapping(55, 1, 0, $rt_cls(nms_Packet55BlockDestroy));
    nms_Packet_addIdClassMapping(56, 1, 0, $rt_cls(nms_Packet56MapChunks));
    nms_Packet_addIdClassMapping(60, 1, 0, $rt_cls(nms_Packet60Explosion));
    nms_Packet_addIdClassMapping(61, 1, 0, $rt_cls(nms_Packet61DoorChange));
    nms_Packet_addIdClassMapping(62, 1, 0, $rt_cls(nms_Packet62LevelSound));
    nms_Packet_addIdClassMapping(63, 1, 0, $rt_cls(nms_Packet63WorldParticles));
    nms_Packet_addIdClassMapping(70, 1, 0, $rt_cls(nms_Packet70GameEvent));
    nms_Packet_addIdClassMapping(71, 1, 0, $rt_cls(nms_Packet71Weather));
    nms_Packet_addIdClassMapping(100, 1, 0, $rt_cls(nms_Packet100OpenWindow));
    nms_Packet_addIdClassMapping(101, 1, 1, $rt_cls(nms_Packet101CloseWindow));
    nms_Packet_addIdClassMapping(102, 0, 1, $rt_cls(nms_Packet102WindowClick));
    nms_Packet_addIdClassMapping(103, 1, 0, $rt_cls(nms_Packet103SetSlot));
    nms_Packet_addIdClassMapping(104, 1, 0, $rt_cls(nms_Packet104WindowItems));
    nms_Packet_addIdClassMapping(105, 1, 0, $rt_cls(nms_Packet105UpdateProgressbar));
    nms_Packet_addIdClassMapping(106, 1, 1, $rt_cls(nms_Packet106Transaction));
    nms_Packet_addIdClassMapping(107, 1, 1, $rt_cls(nms_Packet107CreativeSetSlot));
    nms_Packet_addIdClassMapping(108, 0, 1, $rt_cls(nms_Packet108EnchantItem));
    nms_Packet_addIdClassMapping(130, 1, 1, $rt_cls(nms_Packet130UpdateSign));
    nms_Packet_addIdClassMapping(131, 1, 0, $rt_cls(nms_Packet131MapData));
    nms_Packet_addIdClassMapping(132, 1, 0, $rt_cls(nms_Packet132TileEntityData));
    nms_Packet_addIdClassMapping(133, 1, 0, $rt_cls(nms_Packet133TileEditorOpen));
    nms_Packet_addIdClassMapping(200, 1, 0, $rt_cls(nms_Packet200Statistic));
    nms_Packet_addIdClassMapping(201, 1, 0, $rt_cls(nms_Packet201PlayerInfo));
    nms_Packet_addIdClassMapping(202, 1, 1, $rt_cls(nms_Packet202PlayerAbilities));
    nms_Packet_addIdClassMapping(203, 1, 1, $rt_cls(nms_Packet203AutoComplete));
    nms_Packet_addIdClassMapping(204, 0, 1, $rt_cls(nms_Packet204ClientInfo));
    nms_Packet_addIdClassMapping(205, 0, 1, $rt_cls(nms_Packet205ClientCommand));
    nms_Packet_addIdClassMapping(206, 1, 0, $rt_cls(nms_Packet206SetObjective));
    nms_Packet_addIdClassMapping(207, 1, 0, $rt_cls(nms_Packet207SetScore));
    nms_Packet_addIdClassMapping(208, 1, 0, $rt_cls(nms_Packet208SetDisplayObjective));
    nms_Packet_addIdClassMapping(209, 1, 0, $rt_cls(nms_Packet209SetPlayerTeam));
    nms_Packet_addIdClassMapping(250, 1, 1, $rt_cls(nms_Packet250CustomPayload));
    nms_Packet_addIdClassMapping(252, 1, 1, $rt_cls(nms_Packet252SharedKey));
    nms_Packet_addIdClassMapping(254, 0, 1, $rt_cls(nms_Packet254ServerPing));
    nms_Packet_addIdClassMapping(255, 1, 1, $rt_cls(nms_Packet255KickDisconnect));
};
function nles_VirtualFilesystem$listFiles$lambda$_8_0() {
    jl_Object.call(this);
    this.$_03 = null;
}
let nles_VirtualFilesystem$listFiles$lambda$_8_0_next = (var$0, var$1) => {
    let var$2, var$3, var$4;
    var$2 = var$0.$_03;
    var$1 = var$1.$path;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$3 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$1;
    var$2.$modCount = var$2.$modCount + 1 | 0;
};
function jl_Double() {
    jl_Number.call(this);
    this.$value8 = 0.0;
}
let jl_Double_TYPE = null,
jl_Double_doubleValue = $this => {
    return $this.$value8;
},
jl_Double_intValue = $this => {
    return $this.$value8 | 0;
},
jl_Double_longValue = $this => {
    return Long_fromNumber($this.$value8);
},
jl_Double_parseDouble = $string => {
    let $start, $end, var$4, $negative, $c, $mantissa, $exp, $hasOneDigit, $mantissaPos, $negativeExp, $numExp;
    if ($string.$nativeString.length ? 0 : 1) {
        $string = new jl_NumberFormatException;
        $string.$suppressionEnabled = 1;
        $string.$writableStackTrace = 1;
        $rt_throw($string);
    }
    $start = 0;
    $end = $string.$nativeString.length;
    while ($start >= 0 && $start < $string.$nativeString.length) {
        if ($string.$nativeString.charCodeAt($start) > 32) {
            while (true) {
                var$4 = $end - 1 | 0;
                if (var$4 < 0)
                    break;
                if (var$4 >= $string.$nativeString.length)
                    break;
                if ($string.$nativeString.charCodeAt(var$4) > 32) {
                    $negative = 0;
                    if ($start >= 0 && $start < $string.$nativeString.length) {
                        if ($string.$nativeString.charCodeAt($start) == 45) {
                            $start = $start + 1 | 0;
                            $negative = 1;
                        } else if (!($start >= 0 && $start < $string.$nativeString.length)) {
                            $string = new jl_StringIndexOutOfBoundsException;
                            $string.$suppressionEnabled = 1;
                            $string.$writableStackTrace = 1;
                            $rt_throw($string);
                        } else if ($string.$nativeString.charCodeAt($start) == 43)
                            $start = $start + 1 | 0;
                        if ($start == $end) {
                            $string = new jl_NumberFormatException;
                            $string.$suppressionEnabled = 1;
                            $string.$writableStackTrace = 1;
                            $rt_throw($string);
                        }
                        if ($start >= 0 && $start < $string.$nativeString.length) {
                            a: {
                                $c = $string.$nativeString.charCodeAt($start);
                                $mantissa = Long_ZERO;
                                $exp = (-1);
                                $hasOneDigit = 0;
                                $mantissaPos = Long_create(2808348672, 232830643);
                                if ($c != 46) {
                                    $hasOneDigit = 1;
                                    if ($c >= 48 && $c <= 57) {
                                        b: {
                                            while (true) {
                                                if ($start >= $end)
                                                    break b;
                                                if ($start < 0)
                                                    break;
                                                if ($start >= $string.$nativeString.length)
                                                    break;
                                                if ($string.$nativeString.charCodeAt($start) != 48)
                                                    break b;
                                                $start = $start + 1 | 0;
                                            }
                                            $string = new jl_StringIndexOutOfBoundsException;
                                            $string.$suppressionEnabled = 1;
                                            $string.$writableStackTrace = 1;
                                            $rt_throw($string);
                                        }
                                        while (true) {
                                            if ($start >= $end)
                                                break a;
                                            if ($start < 0)
                                                break;
                                            if ($start >= $string.$nativeString.length)
                                                break;
                                            $c = $string.$nativeString.charCodeAt($start);
                                            if ($c < 48)
                                                break a;
                                            if ($c > 57)
                                                break a;
                                            if (Long_gt($mantissaPos, Long_ZERO)) {
                                                $mantissa = Long_add($mantissa, Long_mul($mantissaPos, Long_fromInt($c - 48 | 0)));
                                                $mantissaPos = jl_Long_divideUnsigned($mantissaPos, Long_fromInt(10));
                                            }
                                            $exp = $exp + 1 | 0;
                                            $start = $start + 1 | 0;
                                        }
                                        $string = new jl_StringIndexOutOfBoundsException;
                                        $string.$suppressionEnabled = 1;
                                        $string.$writableStackTrace = 1;
                                        $rt_throw($string);
                                    }
                                    $string = new jl_NumberFormatException;
                                    $string.$suppressionEnabled = 1;
                                    $string.$writableStackTrace = 1;
                                    $rt_throw($string);
                                }
                            }
                            if ($start < $end) {
                                if (!($start >= 0 && $start < $string.$nativeString.length)) {
                                    $string = new jl_StringIndexOutOfBoundsException;
                                    $string.$suppressionEnabled = 1;
                                    $string.$writableStackTrace = 1;
                                    $rt_throw($string);
                                } else if ($string.$nativeString.charCodeAt($start) == 46) {
                                    $start = $start + 1 | 0;
                                    c: {
                                        while (true) {
                                            if ($start >= $end)
                                                break c;
                                            if ($start < 0)
                                                break;
                                            if ($start >= $string.$nativeString.length)
                                                break;
                                            $negativeExp = $string.$nativeString.charCodeAt($start);
                                            var$4 = $rt_compare($negativeExp, 48);
                                            if (var$4 < 0)
                                                break c;
                                            if ($negativeExp > 57)
                                                break c;
                                            if (Long_eq($mantissa, Long_ZERO) && !var$4)
                                                $exp = $exp + (-1) | 0;
                                            else if (Long_gt($mantissaPos, Long_ZERO)) {
                                                $mantissa = Long_add($mantissa, Long_mul($mantissaPos, Long_fromInt($negativeExp - 48 | 0)));
                                                $mantissaPos = jl_Long_divideUnsigned($mantissaPos, Long_fromInt(10));
                                            }
                                            $start = $start + 1 | 0;
                                            $hasOneDigit = 1;
                                        }
                                        $string = new jl_StringIndexOutOfBoundsException;
                                        $string.$suppressionEnabled = 1;
                                        $string.$writableStackTrace = 1;
                                        $rt_throw($string);
                                    }
                                    if (!$hasOneDigit) {
                                        $string = new jl_NumberFormatException;
                                        $string.$suppressionEnabled = 1;
                                        $string.$writableStackTrace = 1;
                                        $rt_throw($string);
                                    }
                                }
                            }
                            d: {
                                if ($start < $end) {
                                    if ($start >= 0 && $start < $string.$nativeString.length) {
                                        $c = $string.$nativeString.charCodeAt($start);
                                        if ($c != 101 && $c != 69) {
                                            $string = new jl_NumberFormatException;
                                            $string.$suppressionEnabled = 1;
                                            $string.$writableStackTrace = 1;
                                            $rt_throw($string);
                                        }
                                        $c = $start + 1 | 0;
                                        $negativeExp = 0;
                                        if ($c == $end) {
                                            $string = new jl_NumberFormatException;
                                            $string.$suppressionEnabled = 1;
                                            $string.$writableStackTrace = 1;
                                            $rt_throw($string);
                                        }
                                        if ($c >= 0 && $c < $string.$nativeString.length) {
                                            if ($string.$nativeString.charCodeAt($c) == 45) {
                                                $c = $c + 1 | 0;
                                                $negativeExp = 1;
                                            } else if (!($c >= 0 && $c < $string.$nativeString.length)) {
                                                $string = new jl_StringIndexOutOfBoundsException;
                                                $string.$suppressionEnabled = 1;
                                                $string.$writableStackTrace = 1;
                                                $rt_throw($string);
                                            } else if ($string.$nativeString.charCodeAt($c) == 43)
                                                $c = $c + 1 | 0;
                                            $numExp = 0;
                                            $hasOneDigit = 0;
                                            e: {
                                                while (true) {
                                                    if ($c >= $end)
                                                        break e;
                                                    if ($c < 0)
                                                        break;
                                                    if ($c >= $string.$nativeString.length)
                                                        break;
                                                    $start = $string.$nativeString.charCodeAt($c);
                                                    if ($start < 48)
                                                        break e;
                                                    if ($start > 57)
                                                        break e;
                                                    $numExp = (10 * $numExp | 0) + ($start - 48 | 0) | 0;
                                                    $hasOneDigit = 1;
                                                    $c = $c + 1 | 0;
                                                }
                                                $string = new jl_StringIndexOutOfBoundsException;
                                                $string.$suppressionEnabled = 1;
                                                $string.$writableStackTrace = 1;
                                                $rt_throw($string);
                                            }
                                            if (!$hasOneDigit) {
                                                $string = new jl_NumberFormatException;
                                                $string.$suppressionEnabled = 1;
                                                $string.$writableStackTrace = 1;
                                                $rt_throw($string);
                                            }
                                            if ($negativeExp)
                                                $numExp =  -$numExp | 0;
                                            $exp = $exp + $numExp | 0;
                                            break d;
                                        }
                                        $string = new jl_StringIndexOutOfBoundsException;
                                        $string.$suppressionEnabled = 1;
                                        $string.$writableStackTrace = 1;
                                        $rt_throw($string);
                                    }
                                    $string = new jl_StringIndexOutOfBoundsException;
                                    $string.$suppressionEnabled = 1;
                                    $string.$writableStackTrace = 1;
                                    $rt_throw($string);
                                }
                            }
                            return otcit_DoubleSynthesizer_synthesizeDouble($mantissa, $exp, $negative);
                        }
                        $string = new jl_StringIndexOutOfBoundsException;
                        $string.$suppressionEnabled = 1;
                        $string.$writableStackTrace = 1;
                        $rt_throw($string);
                    }
                    $string = new jl_StringIndexOutOfBoundsException;
                    $string.$suppressionEnabled = 1;
                    $string.$writableStackTrace = 1;
                    $rt_throw($string);
                }
                $end = $end + (-1) | 0;
            }
            $string = new jl_StringIndexOutOfBoundsException;
            $string.$suppressionEnabled = 1;
            $string.$writableStackTrace = 1;
            $rt_throw($string);
        }
        $start = $start + 1 | 0;
        if ($start == $end) {
            $string = new jl_NumberFormatException;
            $string.$suppressionEnabled = 1;
            $string.$writableStackTrace = 1;
            $rt_throw($string);
        }
    }
    $string = new jl_StringIndexOutOfBoundsException;
    $string.$suppressionEnabled = 1;
    $string.$writableStackTrace = 1;
    $rt_throw($string);
},
jl_Double_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$value8;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert2(var$2, var$2.$length0, var$1);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$2);
    $rt_throw(var$2);
},
jl_Double_hashCode = $this => {
    let var$1, var$2;
    var$1 = $this.$value8;
    var$2 = !(isNaN(var$1) ? 1 : 0) ? $rt_doubleToRawLongBits(var$1) : Long_create(0, 2146959360);
    return Long_hi(var$2) ^ Long_lo(var$2);
},
jl_Double__clinit_ = () => {
    jl_Double_TYPE = $rt_cls($rt_doublecls);
},
nms_WorldServerMulti = $rt_classWithoutFields(nms_WorldServer),
nms_WorldServerMulti_saveLevel = $this => {
    return;
},
nms_IWorldAccess = $rt_classWithoutFields(0);
function nms_WorldManager() {
    let a = this; jl_Object.call(a);
    a.$mcServer = null;
    a.$theWorldServer = null;
}
let nms_WorldManager_destroyBlockPartially = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let var$6, $var6$index, var$8, var$9, var$10, var$11, var$12, var$13, $var6$index_0, $var7, $var8, $var10, $var12, var$19, var$20, var$21, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6$index_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6$index = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$mcServer.$serverConfigManager.$playerEntityList;
        $var6$index = 0;
        var$8 = var$6.$modCount;
        var$9 = var$6.$size();
        var$10 = $par2;
        var$11 = $par3;
        var$12 = $par4;
        while ($var6$index >= var$9 ? 0 : 1) {
            if (var$8 < var$6.$modCount) {
                var$13 = new ju_ConcurrentModificationException;
                var$13.$suppressionEnabled = 1;
                var$13.$writableStackTrace = 1;
                $rt_throw(var$13);
            }
            $var6$index_0 = $var6$index + 1 | 0;
            $var7 = var$6.$get($var6$index);
            if ($var7 !== null && $var7.$worldObj === $this.$theWorldServer && $var7.$entityId != $par1) {
                $var8 = var$10 - $var7.$posX;
                $var10 = var$11 - $var7.$posY;
                $var12 = var$12 - $var7.$posZ;
                if ($var8 * $var8 + $var10 * $var10 + $var12 * $var12 < 1024.0)
                    a: {
                        var$19 = $var7.$playerNetServerHandler;
                        $var7 = new nms_Packet55BlockDestroy;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var7.$entityId6 = $par1;
                        $var7.$posX7 = $par2;
                        $var7.$posY7 = $par3;
                        $var7.$posZ7 = $par4;
                        $var7.$destroyedStage = $par5;
                        if ($var7 instanceof nms_Packet3Chat) {
                            var$13 = $var7;
                            var$20 = var$19.$playerEntity.$chatVisibility;
                            if (var$20 == 2)
                                break a;
                            if (var$20 == 1 && !var$13.$isServer)
                                break a;
                        }
                        try {
                            var$13 = var$19.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var7 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$13 = new otcic_JSStderrPrintStream;
                            var$19 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$19);
                            var$19.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_(var$13);
                            var$13.$out0 = var$19;
                            var$19 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$19);
                            var$13.$sb = var$19;
                            var$13.$buffer0 = $rt_createCharArray(32);
                            var$13.$autoFlush = 0;
                            var$13.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$13;
                        }
                        jl_Throwable_printStackTrace($var7, jl_System_errCache);
                    }
            }
            $var6$index = $var6$index_0;
        }
        return;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$13, $var7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$19 = new ji_ByteArrayOutputStream;
                $var6$index = 32;
                jl_Object__init_(var$19);
                var$21 = $rt_createByteArray($var6$index);
                var$19.$buf = var$21;
                $var6$index = 0;
                ji_OutputStream__init_(var$13);
                var$13.$out0 = var$19;
                var$19 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$19);
                var$13.$sb = var$19;
                var$20 = 32;
                var$21 = $rt_createCharArray(var$20);
                var$13.$buffer0 = var$21;
                var$13.$autoFlush = $var6$index;
                var$19 = jnci_UTF8Charset_INSTANCE;
                var$13.$charset = var$19;
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace($var7, var$13);
        }
        c: while (true) {
            while (true) {
                while (true) {
                    $var6$index = $var6$index_0;
                    if (!($var6$index >= var$9 ? 0 : 1))
                        break c;
                    if (var$8 < var$6.$modCount) {
                        var$13 = new ju_ConcurrentModificationException;
                        var$13.$suppressionEnabled = 1;
                        var$13.$writableStackTrace = 1;
                        $rt_throw(var$13);
                    }
                    $var6$index_0 = $var6$index + 1 | 0;
                    $var7 = var$6.$get($var6$index);
                    if ($var7 === null)
                        continue;
                    if ($var7.$worldObj !== $this.$theWorldServer)
                        continue;
                    if ($var7.$entityId == $par1)
                        continue;
                    $var8 = var$10 - $var7.$posX;
                    $var10 = var$11 - $var7.$posY;
                    $var12 = var$12 - $var7.$posZ;
                    if ($var8 * $var8 + $var10 * $var10 + $var12 * $var12 >= 1024.0)
                        continue;
                    else
                        break;
                }
                var$19 = $var7.$playerNetServerHandler;
                $var7 = new nms_Packet55BlockDestroy;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var7.$entityId6 = $par1;
                $var7.$posX7 = $par2;
                $var7.$posY7 = $par3;
                $var7.$posZ7 = $par4;
                $var7.$destroyedStage = $par5;
                if (!($var7 instanceof nms_Packet3Chat))
                    break;
                var$13 = $var7;
                var$20 = var$19.$playerEntity.$chatVisibility;
                if (var$20 == 2)
                    continue;
                if (var$20 != 1)
                    break;
                if (var$13.$isServer)
                    break;
            }
            try {
                var$13 = var$19.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$19 = new ji_ByteArrayOutputStream;
                $var6$index = 32;
                jl_Object__init_(var$19);
                var$21 = $rt_createByteArray($var6$index);
                var$19.$buf = var$21;
                $var6$index = 0;
                ji_OutputStream__init_(var$13);
                var$13.$out0 = var$19;
                var$19 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$19);
                var$13.$sb = var$19;
                var$20 = 32;
                var$21 = $rt_createCharArray(var$20);
                var$13.$buffer0 = var$21;
                var$13.$autoFlush = $var6$index;
                var$19 = jnci_UTF8Charset_INSTANCE;
                var$13.$charset = var$19;
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace($var7, var$13);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, var$6, $var6$index, var$8, var$9, var$10, var$11, var$12, var$13, $var6$index_0, $var7, $var8, $var10, $var12, var$19, var$20, var$21, $ptr);
};
function ju_LinkedList$SequentialListIterator() {
    let a = this; jl_Object.call(a);
    a.$nextEntry1 = null;
    a.$prevEntry = null;
    a.$currentEntry2 = null;
    a.$index4 = 0;
    a.$version = 0;
    a.$this$02 = null;
}
let ju_LinkedList$SequentialListIterator_hasNext = $this => {
    return $this.$nextEntry1 === null ? 0 : 1;
},
ju_LinkedList$SequentialListIterator_next = $this => {
    let var$1, $result;
    if ($this.$version < $this.$this$02.$modCount) {
        var$1 = new ju_ConcurrentModificationException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$1 = $this.$nextEntry1;
    if (var$1 !== null) {
        $result = var$1.$item;
        $this.$currentEntry2 = var$1;
        $this.$prevEntry = var$1;
        $this.$nextEntry1 = var$1.$next5;
        $this.$index4 = $this.$index4 + 1 | 0;
        return $result;
    }
    var$1 = new ju_NoSuchElementException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
ju_LinkedList$SequentialListIterator_remove = $this => {
    let var$1, var$2;
    var$1 = $this.$currentEntry2;
    if (var$1 === null) {
        var$1 = new jl_IllegalStateException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    ju_LinkedList_removeEntry($this.$this$02, var$1);
    var$1 = $this.$currentEntry2;
    var$2 = $this.$prevEntry;
    if (var$1 === var$2) {
        var$1 = $this.$nextEntry1;
        $this.$prevEntry = !(var$1 === null ? 0 : 1) ? null : var$1.$previous0;
        $this.$index4 = $this.$index4 - 1 | 0;
    } else if (var$1 === $this.$nextEntry1)
        $this.$nextEntry1 = !(var$2 === null ? 0 : 1) ? null : var$2.$next5;
    $this.$version = $this.$this$02.$modCount;
    $this.$currentEntry2 = null;
},
ju_LinkedList$SequentialListIterator_add = ($this, $e) => {
    let var$2, var$3, var$4, $newEntry, var$6;
    var$2 = $this.$version;
    var$3 = $this.$this$02;
    var$4 = var$3.$modCount;
    if (var$2 < var$4) {
        $e = new ju_ConcurrentModificationException;
        $e.$suppressionEnabled = 1;
        $e.$writableStackTrace = 1;
        $rt_throw($e);
    }
    $newEntry = new ju_LinkedList$Entry;
    $newEntry.$item = $e;
    $e = $this.$prevEntry;
    $newEntry.$previous0 = $e;
    var$6 = $this.$nextEntry1;
    $newEntry.$next5 = var$6;
    if ($e === null)
        var$3.$firstEntry = $newEntry;
    else
        $e.$next5 = $newEntry;
    if (var$6 === null)
        var$3.$lastEntry = $newEntry;
    else
        var$6.$previous0 = $newEntry;
    $this.$prevEntry = $newEntry;
    var$3.$size2 = var$3.$size2 + 1 | 0;
    var$2 = var$4 + 1 | 0;
    var$3.$modCount = var$2;
    $this.$version = var$2;
    $this.$currentEntry2 = null;
};
function ju_LinkedList$Entry() {
    let a = this; jl_Object.call(a);
    a.$item = null;
    a.$next5 = null;
    a.$previous0 = null;
}
let ju_LinkedList$Entry__init_ = $this => {
    return;
},
ju_LinkedList$Entry__init_0 = () => {
    let var_0 = new ju_LinkedList$Entry();
    ju_LinkedList$Entry__init_(var_0);
    return var_0;
},
ju_Spliterator = $rt_classWithoutFields(0);
function jusi_SpliteratorOverCollection() {
    let a = this; jl_Object.call(a);
    a.$collection = null;
    a.$iterator1 = null;
}
function ju_HashMap$1() {
    ju_AbstractSet.call(this);
    this.$this$0 = null;
}
let ju_HashMap$1_size = $this => {
    return $this.$this$0.$elementCount;
},
ju_HashMap$1_iterator = $this => {
    let var$1, var$2;
    var$1 = new ju_HashMap$KeyIterator;
    var$2 = $this.$this$0;
    var$1.$associatedMap = var$2;
    var$1.$expectedModCount = var$2.$modCount1;
    var$1.$futureEntry0 = null;
    return var$1;
},
otji_IDBObjectStoreParameters = $rt_classWithoutFields(),
otji_IDBObjectStoreParameters_create$js_body$_1 = () => {
    return {  };
},
jt_DecimalFormat$MinusField = $rt_classWithoutFields(),
jt_DecimalFormat$MinusField__init_ = $this => {
    return;
},
jt_DecimalFormat$MinusField__init_0 = () => {
    let var_0 = new jt_DecimalFormat$MinusField();
    jt_DecimalFormat$MinusField__init_(var_0);
    return var_0;
},
jt_DecimalFormat$MinusField_render = ($this, $format, $buffer) => {
    let var$3, var$4;
    var$3 = $format.$symbols.$minusSign;
    var$4 = $buffer.$length0;
    jl_AbstractStringBuilder_insertSpace($buffer, var$4, var$4 + 1 | 0);
    $buffer.$buffer.data[var$4] = var$3;
},
jt_DecimalFormat$MinusField_equals = ($this, $obj) => {
    return $obj instanceof jt_DecimalFormat$MinusField;
},
jt_DecimalFormat$MinusField_hashCode = $this => {
    return 3;
};
function jnci_BufferedEncoder() {
    let a = this; jnc_CharsetEncoder.call(a);
    a.$inArray = null;
    a.$outArray = null;
}
let jnci_BufferedEncoder_encodeLoop = ($this, $in, $out) => {
    let $inArray, $inPos, $inSize, $outArray, $outSize, var$8, $i, var$10, $outPos, $outSize_0, $result, $controller;
    $inArray = $this.$inArray;
    $inPos = 0;
    $inSize = 0;
    $outArray = $this.$outArray;
    a: {
        while (true) {
            if (($inPos + 32 | 0) > $inSize) {
                $outSize = $in.$position1;
                var$8 = $in.$limit;
                if ($outSize >= var$8 ? 0 : 1) {
                    $i = $inPos;
                    while ($i < $inSize) {
                        var$10 = $inArray.data;
                        var$10[$i - $inPos | 0] = var$10[$i];
                        $i = $i + 1 | 0;
                    }
                    var$10 = $inArray.data;
                    $i = $inSize - $inPos | 0;
                    $outPos = (var$8 - $outSize | 0) + $i | 0;
                    $inSize = var$10.length;
                    if ($outPos < $inSize)
                        $inSize = $outPos;
                    jn_CharBuffer_get($in, $inArray, $i, $inSize - $i | 0);
                    $inPos = 0;
                }
            }
            $i = $out.$position1;
            $outSize_0 = $out.$limit;
            if (!($i >= $outSize_0 ? 0 : 1)) {
                $i = $in.$position1 >= $in.$limit ? 0 : 1;
                $result = !$i && $inPos >= $inSize ? jnc_CoderResult_UNDERFLOW : jnc_CoderResult_OVERFLOW;
                break a;
            }
            var$10 = $outArray.data;
            $outSize = $outSize_0 - $i | 0;
            $outSize_0 = var$10.length;
            if ($outSize < $outSize_0)
                $outSize_0 = $outSize;
            $controller = new jnci_BufferedEncoder$Controller;
            $controller.$in2 = $in;
            $controller.$out2 = $out;
            $result = $this.$arrayEncode($inArray, $inPos, $inSize, $outArray, 0, $outSize_0, $controller);
            $inPos = $controller.$inPosition;
            $outPos = $controller.$outPosition0;
            if ($result === null) {
                $i = $in.$position1 >= $in.$limit ? 0 : 1;
                if (!$i && $inPos >= $inSize)
                    $result = jnc_CoderResult_UNDERFLOW;
                else if (!($out.$position1 >= $out.$limit ? 0 : 1) && $inPos >= $inSize)
                    $result = jnc_CoderResult_OVERFLOW;
            }
            jn_ByteBuffer_put($out, $outArray, 0, $outPos);
            if ($result !== null)
                break;
        }
    }
    jn_Buffer_position($in, $in.$position1 - ($inSize - $inPos | 0) | 0);
    return $result;
},
jnci_UTF8Encoder = $rt_classWithoutFields(jnci_BufferedEncoder),
jnci_UTF8Encoder_arrayEncode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $ch, $low, var$13, $codePoint, var$15;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize) {
                var$9 = $inPos;
                break a;
            }
            var$10 = $inArray.data;
            var$9 = $inPos + 1 | 0;
            $ch = var$10[$inPos];
            if ($ch < 128) {
                var$10 = $outArray.data;
                $low = $outPos + 1 | 0;
                var$10[$outPos] = $ch << 24 >> 24;
            } else if ($ch < 2048) {
                if (($outPos + 2 | 0) > $outSize) {
                    var$9 = var$9 + (-1) | 0;
                    var$13 = $controller.$out2;
                    if ((var$13.$limit - var$13.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$10 = $outArray.data;
                $inPos = $outPos + 1 | 0;
                var$10[$outPos] = (192 | $ch >> 6) << 24 >> 24;
                $low = $inPos + 1 | 0;
                var$10[$inPos] = (128 | $ch & 63) << 24 >> 24;
            } else {
                $codePoint = $ch & 64512;
                $low = $rt_compare($codePoint, 55296);
                $inPos = $low ? 0 : 1;
                if (!(!$inPos && !($codePoint != 56320 ? 0 : 1) ? 0 : 1)) {
                    if (($outPos + 3 | 0) > $outSize) {
                        var$9 = var$9 + (-1) | 0;
                        var$13 = $controller.$out2;
                        if ((var$13.$limit - var$13.$position1 | 0) < 3 ? 0 : 1)
                            break a;
                        $result = jnc_CoderResult_OVERFLOW;
                        break a;
                    }
                    var$10 = $outArray.data;
                    $inPos = $outPos + 1 | 0;
                    var$10[$outPos] = (224 | $ch >> 12) << 24 >> 24;
                    $outPos = $inPos + 1 | 0;
                    var$10[$inPos] = (128 | $ch >> 6 & 63) << 24 >> 24;
                    $low = $outPos + 1 | 0;
                    var$10[$outPos] = (128 | $ch & 63) << 24 >> 24;
                } else {
                    if (!($low ? 0 : 1)) {
                        $result = new jnc_CoderResult;
                        $result.$kind = 2;
                        $result.$length2 = 1;
                        break a;
                    }
                    if (var$9 >= $inSize) {
                        var$13 = $controller.$in2;
                        if (var$13.$position1 >= var$13.$limit ? 0 : 1)
                            break a;
                        $result = jnc_CoderResult_UNDERFLOW;
                        break a;
                    }
                    var$15 = var$9 + 1 | 0;
                    $low = var$10[var$9];
                    if (!(($low & 64512) != 56320 ? 0 : 1)) {
                        var$9 = var$15 + (-2) | 0;
                        $result = new jnc_CoderResult;
                        $result.$kind = 2;
                        $result.$length2 = 1;
                        break a;
                    }
                    if (($outPos + 4 | 0) > $outSize) {
                        var$9 = var$15 + (-2) | 0;
                        var$13 = $controller.$out2;
                        if ((var$13.$limit - var$13.$position1 | 0) < 4 ? 0 : 1)
                            break a;
                        $result = jnc_CoderResult_OVERFLOW;
                        break a;
                    }
                    var$10 = $outArray.data;
                    $codePoint = (($ch & 1023) << 10 | $low & 1023) + 65536 | 0;
                    $low = $outPos + 1 | 0;
                    var$10[$outPos] = (240 | $codePoint >> 18) << 24 >> 24;
                    $inPos = $low + 1 | 0;
                    var$10[$low] = (128 | $codePoint >> 12 & 63) << 24 >> 24;
                    $outPos = $inPos + 1 | 0;
                    var$10[$inPos] = (128 | $codePoint >> 6 & 63) << 24 >> 24;
                    $low = $outPos + 1 | 0;
                    var$10[$outPos] = (128 | $codePoint & 63) << 24 >> 24;
                    var$9 = var$15;
                }
            }
            $inPos = var$9;
            $outPos = $low;
        }
        var$9 = $inPos;
    }
    $controller.$inPosition = var$9;
    $controller.$outPosition0 = $outPos;
    return $result;
};
function jt_DateFormatElement$Numeric() {
    let a = this; jt_DateFormatElement.call(a);
    a.$field = 0;
    a.$length4 = 0;
    a.$maxLength = 0;
}
let jt_DateFormatElement$Numeric_format = ($this, $date, $buffer) => {
    let $number, $i, var$5;
    $number = $this.$field;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    if (!$date.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($date);
        $date.$areFieldsSet = 1;
    }
    $number = $this.$processBeforeFormat($date.$fields.data[$number]);
    $date = new jl_AbstractStringBuilder;
    $date.$buffer = $rt_createCharArray(20);
    $date = (jl_AbstractStringBuilder_insert0($date, $date.$length0, $number, 10)).$toString();
    $i = $date.$nativeString.length;
    while ($i < $this.$length4) {
        var$5 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$5, var$5 + 1 | 0);
        $buffer.$buffer.data[var$5] = 48;
        $i = $i + 1 | 0;
    }
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
},
jt_DateFormatElement$Numeric_processBeforeFormat = ($this, $num) => {
    return $num;
},
jt_DateFormatElement$Numeric_equals = ($this, $o) => {
    let $numeric, var$3, var$4;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $numeric = $this.constructor;
        if ($numeric === null)
            var$3 = null;
        else {
            var$3 = $numeric.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $numeric;
                $numeric.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $numeric = null;
        else {
            $numeric = var$4.classObject;
            if ($numeric === null) {
                $numeric = new jl_Class;
                $numeric.$platformClass = var$4;
                var$4.classObject = $numeric;
            }
        }
        if (var$3 === $numeric) {
            $numeric = $o;
            return $this.$field == $numeric.$field && $this.$length4 == $numeric.$length4 ? 1 : 0;
        }
    }
    return 0;
},
jt_DateFormatElement$Numeric_hashCode = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_Object, 2);
    var$2 = $this.$field;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$2;
    }
    var$1 = var$1.data;
    var$1[0] = var$3;
    var$2 = $this.$length4;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$2;
    }
    var$1[1] = var$3;
    var$4 = 1;
    var$2 = 0;
    while (var$2 < var$1.length) {
        var$4 = 31 * var$4 | 0;
        var$3 = var$1[var$2];
        var$4 = var$4 + (var$3 === null ? 0 : var$3.$value) | 0;
        var$2 = var$2 + 1 | 0;
    }
    return var$4;
};
function jt_DateFormatElement$WeekdayText() {
    let a = this; jt_DateFormatElement.call(a);
    a.$weeks = null;
    a.$shortWeeks = null;
    a.$abbreviated0 = 0;
}
let jt_DateFormatElement$WeekdayText_format = ($this, $date, $buffer) => {
    let $weekday;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    if (!$date.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($date);
        $date.$areFieldsSet = 1;
    }
    $weekday = $date.$fields.data[7];
    $date = !$this.$abbreviated0 ? $this.$weeks.data[$weekday] : $this.$shortWeeks.data[$weekday];
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
},
jt_DateFormatElement$WeekdayText_equals = ($this, $o) => {
    let $that, var$3, var$4;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $that = $this.constructor;
        if ($that === null)
            var$3 = null;
        else {
            var$3 = $that.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $that;
                $that.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $that = null;
        else {
            $that = var$4.classObject;
            if ($that === null) {
                $that = new jl_Class;
                $that.$platformClass = var$4;
                var$4.classObject = $that;
            }
        }
        if (var$3 === $that) {
            $that = $o;
            return $this.$abbreviated0 == $that.$abbreviated0 && ju_Arrays_equals($this.$weeks, $that.$weeks) && ju_Arrays_equals($this.$shortWeeks, $that.$shortWeeks) ? 1 : 0;
        }
    }
    return 0;
},
jt_DateFormatElement$WeekdayText_hashCode = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_Object, 3).data;
    var$1[0] = $this.$weeks;
    var$1[1] = $this.$shortWeeks;
    var$1[2] = !$this.$abbreviated0 ? jl_Boolean_FALSE : jl_Boolean_TRUE;
    var$2 = 1;
    var$3 = 0;
    while (var$3 < var$1.length) {
        var$2 = 31 * var$2 | 0;
        var$4 = var$1[var$3];
        var$2 = var$2 + (var$4 === null ? 0 : !var$4.$value9 ? 1237 : 1231) | 0;
        var$3 = var$3 + 1 | 0;
    }
    return var$2;
};
function jt_DateFormatElement$EraText() {
    jt_DateFormatElement.call(this);
    this.$eras = null;
}
let jt_DateFormatElement$EraText_format = ($this, $date, $buffer) => {
    let $era;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    if (!$date.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($date);
        $date.$areFieldsSet = 1;
    }
    $era = $date.$fields.data[0];
    $date = $this.$eras.data[$era];
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
},
jt_DateFormatElement$EraText_equals = ($this, $o) => {
    let var$2, var$3, var$4, $eraText;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        var$2 = $this.constructor;
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = var$2.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$2;
                var$2.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $eraText = null;
        else {
            $eraText = var$4.classObject;
            if ($eraText === null) {
                $eraText = new jl_Class;
                $eraText.$platformClass = var$4;
                var$4.classObject = $eraText;
            }
        }
        if (var$3 === $eraText) {
            $eraText = $o;
            return ju_Arrays_equals($this.$eras, $eraText.$eras);
        }
    }
    return 0;
},
jt_DateFormatElement$EraText_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$eras;
    if (var$1 === null)
        var$2 = 0;
    else {
        var$2 = 1;
        var$3 = 0;
        while (true) {
            var$4 = var$1.data;
            if (var$3 >= var$4.length)
                break;
            var$2 = 31 * var$2 | 0;
            var$5 = var$4[var$3];
            if (var$5 === null)
                var$6 = 0;
            else {
                a: {
                    if (!var$5.$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= var$5.$nativeString.length)
                                break a;
                            var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$6 = var$5.$hashCode1;
            }
            var$2 = var$2 + var$6 | 0;
            var$3 = var$3 + 1 | 0;
        }
    }
    return var$2;
};
function jt_DateFormatElement$BaseTimezone() {
    let a = this; jt_DateFormatElement.call(a);
    a.$locale3 = null;
    a.$searchTrie = null;
}
let jt_DateFormatElement$BaseTimezone_equals = ($this, $o) => {
    let $that, var$3, var$4, var$5;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $that = $this.constructor;
        if ($that === null)
            var$3 = null;
        else {
            var$3 = $that.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $that;
                $that.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $that = null;
        else {
            $that = var$4.classObject;
            if ($that === null) {
                $that = new jl_Class;
                $that.$platformClass = var$4;
                var$4.classObject = $that;
            }
        }
        if (var$3 === $that) {
            $that = $o;
            $o = $this.$locale3;
            var$4 = $that.$locale3;
            var$5 = $o === var$4 ? 1 : $o !== null ? ju_Locale_equals($o, var$4) : var$4 !== null ? 0 : 1;
            a: {
                if (var$5) {
                    $o = $this.$searchTrie;
                    $that = $that.$searchTrie;
                    if ($o === $that ? 1 : $o !== null ? $o.$equals($that) : $that !== null ? 0 : 1) {
                        var$5 = 1;
                        break a;
                    }
                }
                var$5 = 0;
            }
            return var$5;
        }
    }
    return 0;
},
jt_DateFormatElement$BaseTimezone_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $rt_createArray(jl_Object, 2).data;
    var$1[0] = $this.$locale3;
    var$1[1] = $this.$searchTrie;
    var$2 = 1;
    var$3 = 0;
    while (var$3 < var$1.length) {
        var$2 = 31 * var$2 | 0;
        var$4 = var$1[var$3];
        if (var$4 === null)
            var$5 = 0;
        else {
            a: {
                var$6 = var$4.$countryCode;
                if (!var$6.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= var$6.$nativeString.length)
                            break a;
                        var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            b: {
                var$7 = var$6.$hashCode1;
                var$6 = var$4.$languageCode;
                if (!var$6.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= var$6.$nativeString.length)
                            break b;
                        var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            c: {
                var$5 = var$7 + var$6.$hashCode1 | 0;
                var$4 = var$4.$variantCode;
                if (!var$4.$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= var$4.$nativeString.length)
                            break c;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$5 = var$5 + var$4.$hashCode1 | 0;
        }
        var$2 = var$2 + var$5 | 0;
        var$3 = var$3 + 1 | 0;
    }
    return var$2;
},
jt_DateFormatElement$Rfc822Timezone = $rt_classWithoutFields(jt_DateFormatElement$BaseTimezone),
jt_DateFormatElement$Rfc822Timezone_format = ($this, $date, $buffer) => {
    let $tz, var$4, $minutes, var$6, $hours;
    $tz = $date.$zone;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    var$4 = $date.$time;
    $minutes = (($tz.$rawOffset + $tz.$diff | 0) + $tz.$underlyingZone.$getOffset0(var$4) | 0) / 60000 | 0;
    if ($minutes >= 0) {
        var$6 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$6, var$6 + 1 | 0);
        $buffer.$buffer.data[var$6] = 43;
    } else {
        $minutes =  -$minutes | 0;
        var$6 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$6, var$6 + 1 | 0);
        $buffer.$buffer.data[var$6] = 45;
    }
    $hours = $minutes / 60 | 0;
    var$6 = $minutes % 60 | 0;
    $minutes = $hours / 10 | 0;
    jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    $minutes = $hours % 10 | 0;
    jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    $minutes = var$6 / 10 | 0;
    jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    $minutes = var$6 % 10 | 0;
    jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
};
function jt_DateFormatElement$AmPmText() {
    jt_DateFormatElement.call(this);
    this.$ampms = null;
}
let jt_DateFormatElement$AmPmText_format = ($this, $date, $buffer) => {
    let $ampm;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    if (!$date.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($date);
        $date.$areFieldsSet = 1;
    }
    $ampm = $date.$fields.data[9];
    $date = $this.$ampms.data[$ampm];
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
},
jt_DateFormatElement$AmPmText_equals = ($this, $o) => {
    let var$2, var$3, var$4, $amPmText;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        var$2 = $this.constructor;
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = var$2.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$2;
                var$2.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $amPmText = null;
        else {
            $amPmText = var$4.classObject;
            if ($amPmText === null) {
                $amPmText = new jl_Class;
                $amPmText.$platformClass = var$4;
                var$4.classObject = $amPmText;
            }
        }
        if (var$3 === $amPmText) {
            $amPmText = $o;
            return ju_Arrays_equals($this.$ampms, $amPmText.$ampms);
        }
    }
    return 0;
},
jt_DateFormatElement$AmPmText_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$ampms;
    if (var$1 === null)
        var$2 = 0;
    else {
        var$2 = 1;
        var$3 = 0;
        while (true) {
            var$4 = var$1.data;
            if (var$3 >= var$4.length)
                break;
            var$2 = 31 * var$2 | 0;
            var$5 = var$4[var$3];
            if (var$5 === null)
                var$6 = 0;
            else {
                a: {
                    if (!var$5.$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= var$5.$nativeString.length)
                                break a;
                            var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$6 = var$5.$hashCode1;
            }
            var$2 = var$2 + var$6 | 0;
            var$3 = var$3 + 1 | 0;
        }
    }
    return var$2;
};
function jt_DateFormatElement$NumericHour() {
    jt_DateFormatElement$Numeric.call(this);
    this.$limit0 = 0;
}
let jt_DateFormatElement$NumericHour_processBeforeFormat = ($this, $num) => {
    if (!$num)
        $num = $this.$limit0;
    return $num;
},
jt_DateFormatElement$NumericHour_equals = ($this, $o) => {
    let $that, var$3, var$4;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $that = $this.constructor;
        if ($that === null)
            var$3 = null;
        else {
            var$3 = $that.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $that;
                $that.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $that = null;
        else {
            $that = var$4.classObject;
            if ($that === null) {
                $that = new jl_Class;
                $that.$platformClass = var$4;
                var$4.classObject = $that;
            }
        }
        if (var$3 === $that) {
            if (!jt_DateFormatElement$Numeric_equals($this, $o))
                return 0;
            $that = $o;
            return $this.$limit0 != $that.$limit0 ? 0 : 1;
        }
    }
    return 0;
},
jt_DateFormatElement$NumericHour_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $rt_createArray(jl_Object, 2);
    var$2 = $rt_createArray(jl_Object, 2);
    var$3 = $this.$field;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = var$3;
    }
    var$5 = var$2.data;
    var$5[0] = var$4;
    var$3 = $this.$length4;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = var$3;
    }
    var$5[1] = var$4;
    var$3 = 1;
    var$6 = 0;
    while (var$6 < var$5.length) {
        var$3 = 31 * var$3 | 0;
        var$4 = var$5[var$6];
        var$3 = var$3 + (var$4 === null ? 0 : var$4.$value) | 0;
        var$6 = var$6 + 1 | 0;
    }
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = var$3;
    }
    var$1 = var$1.data;
    var$1[0] = var$4;
    var$3 = $this.$limit0;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = var$3;
    }
    var$1[1] = var$4;
    var$7 = 1;
    var$6 = 0;
    while (var$6 < var$1.length) {
        var$7 = 31 * var$7 | 0;
        var$4 = var$1[var$6];
        var$7 = var$7 + (var$4 === null ? 0 : var$4.$value) | 0;
        var$6 = var$6 + 1 | 0;
    }
    return var$7;
},
jt_DateFormatElement$NumericWeekday = $rt_classWithoutFields(jt_DateFormatElement$Numeric),
jt_DateFormatElement$NumericWeekday_processBeforeFormat = ($this, $num) => {
    return $num == 1 ? 7 : $num - 1 | 0;
},
jt_DateFormatElement$GeneralTimezone = $rt_classWithoutFields(jt_DateFormatElement$BaseTimezone),
jt_DateFormatElement$GeneralTimezone_format = ($this, $date, $buffer) => {
    let $tz, var$4, $minutes, var$6, $hours;
    $tz = $date.$zone;
    var$4 = $tz.$id5;
    if (!(var$4 === $rt_s(1638) ? 1 : jl_String_startsWith(var$4, $rt_s(1638), 0))) {
        $date = $this.$locale3;
        $date = otciu_CLDRHelper_getTimeZoneName($date.$languageCode, $date.$countryCode, $tz.$id5);
        if ($date === null)
            $date = $tz.$id5;
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
    } else {
        $minutes = $tz.$rawOffset / 60000 | 0;
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $rt_s(1638));
        if ($minutes >= 0) {
            var$6 = $buffer.$length0;
            jl_AbstractStringBuilder_insertSpace($buffer, var$6, var$6 + 1 | 0);
            $buffer.$buffer.data[var$6] = 43;
        } else {
            $minutes =  -$minutes | 0;
            var$6 = $buffer.$length0;
            jl_AbstractStringBuilder_insertSpace($buffer, var$6, var$6 + 1 | 0);
            $buffer.$buffer.data[var$6] = 45;
        }
        $hours = $minutes / 60 | 0;
        $minutes = $minutes % 60 | 0;
        var$6 = $hours / 10 | 0;
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, var$6, 10);
        $hours = $hours % 10 | 0;
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $hours, 10);
        var$6 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$6, var$6 + 1 | 0);
        $buffer.$buffer.data[var$6] = 58;
        $hours = $minutes / 10 | 0;
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $hours, 10);
        $minutes = $minutes % 10 | 0;
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    }
};
function jt_DateFormatElement$ConstantText() {
    jt_DateFormatElement.call(this);
    this.$textConstant = null;
}
let jt_DateFormatElement$ConstantText_format = ($this, $date, $buffer) => {
    $date = $this.$textConstant;
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
},
jt_DateFormatElement$ConstantText_equals = ($this, $o) => {
    let $that, var$3, var$4, var$5;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $that = $this.constructor;
        if ($that === null)
            var$3 = null;
        else {
            var$3 = $that.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $that;
                $that.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $that = null;
        else {
            $that = var$4.classObject;
            if ($that === null) {
                $that = new jl_Class;
                $that.$platformClass = var$4;
                var$4.classObject = $that;
            }
        }
        if (var$3 === $that) {
            $that = $o;
            $o = $this.$textConstant;
            $that = $that.$textConstant;
            if ($o === $that)
                var$5 = 1;
            else if ($o === null)
                var$5 = $that !== null ? 0 : 1;
            else if ($o === $that)
                var$5 = 1;
            else if (!($that instanceof jl_String))
                var$5 = 0;
            else {
                $that = $that;
                var$5 = $o.$nativeString !== $that.$nativeString ? 0 : 1;
            }
            return var$5;
        }
    }
    return 0;
},
jt_DateFormatElement$ConstantText_hashCode = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $rt_createArray(jl_Object, 1).data;
    var$1[0] = $this.$textConstant;
    var$2 = 1;
    var$3 = 0;
    while (var$3 < var$1.length) {
        var$2 = 31 * var$2 | 0;
        var$4 = var$1[var$3];
        if (var$4 === null)
            var$5 = 0;
        else {
            a: {
                if (!var$4.$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= var$4.$nativeString.length)
                            break a;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$5 = var$4.$hashCode1;
        }
        var$2 = var$2 + var$5 | 0;
        var$3 = var$3 + 1 | 0;
    }
    return var$2;
};
function jt_DateFormatElement$Year() {
    jt_DateFormatElement.call(this);
    this.$field0 = 0;
}
let jt_DateFormatElement$Year_format = ($this, $date, $buffer) => {
    let var$3, $number, var$5;
    var$3 = $this.$field0;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    if (!$date.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($date);
        $date.$areFieldsSet = 1;
    }
    $number = $date.$fields.data[var$3];
    if ($number < 10)
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $number, 10);
    else {
        var$3 = ((($number % 100 | 0) / 10 | 0) + 48 | 0) & 65535;
        var$5 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$5, var$5 + 1 | 0);
        $buffer.$buffer.data[var$5] = var$3;
        var$3 = (($number % 10 | 0) + 48 | 0) & 65535;
        var$5 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$5, var$5 + 1 | 0);
        $buffer.$buffer.data[var$5] = var$3;
    }
},
jt_DateFormatElement$Year_equals = ($this, $o) => {
    let $year, var$3, var$4;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $year = $this.constructor;
        if ($year === null)
            var$3 = null;
        else {
            var$3 = $year.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $year;
                $year.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $year = null;
        else {
            $year = var$4.classObject;
            if ($year === null) {
                $year = new jl_Class;
                $year.$platformClass = var$4;
                var$4.classObject = $year;
            }
        }
        if (var$3 === $year) {
            $year = $o;
            return $this.$field0 != $year.$field0 ? 0 : 1;
        }
    }
    return 0;
},
jt_DateFormatElement$Year_hashCode = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_Object, 1);
    var$2 = $this.$field0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$2;
    }
    var$1 = var$1.data;
    var$1[0] = var$3;
    var$4 = 1;
    var$2 = 0;
    while (var$2 < var$1.length) {
        var$4 = 31 * var$4 | 0;
        var$3 = var$1[var$2];
        var$4 = var$4 + (var$3 === null ? 0 : var$3.$value) | 0;
        var$2 = var$2 + 1 | 0;
    }
    return var$4;
};
function jt_DateFormatElement$Iso8601Timezone() {
    jt_DateFormatElement.call(this);
    this.$size7 = 0;
}
let jt_DateFormatElement$Iso8601Timezone_format = ($this, $date, $buffer) => {
    let var$3, var$4, $minutes, $hours, var$7;
    var$3 = $date.$zone;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    var$4 = $date.$time;
    $minutes = ((var$3.$rawOffset + var$3.$diff | 0) + var$3.$underlyingZone.$getOffset0(var$4) | 0) / 60000 | 0;
    if (!$minutes) {
        $hours = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $hours, $hours + 1 | 0);
        $buffer.$buffer.data[$hours] = 90;
        return;
    }
    if ($minutes > 0) {
        var$7 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$7, var$7 + 1 | 0);
        $buffer.$buffer.data[var$7] = 43;
    } else {
        $minutes =  -$minutes | 0;
        var$7 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$7, var$7 + 1 | 0);
        $buffer.$buffer.data[var$7] = 45;
    }
    $hours = $minutes / 60 | 0;
    var$7 = $minutes % 60 | 0;
    $minutes = $hours / 10 | 0;
    jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    $minutes = $hours % 10 | 0;
    jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    if ($this.$size7 >= 3) {
        $hours = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, $hours, $hours + 1 | 0);
        $buffer.$buffer.data[$hours] = 58;
    }
    if ($this.$size7 > 1) {
        $minutes = var$7 / 10 | 0;
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
        $minutes = var$7 % 10 | 0;
        jl_AbstractStringBuilder_insert0($buffer, $buffer.$length0, $minutes, 10);
    }
},
jt_DateFormatElement$Iso8601Timezone_equals = ($this, $o) => {
    let $that, var$3, var$4;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $that = $this.constructor;
        if ($that === null)
            var$3 = null;
        else {
            var$3 = $that.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $that;
                $that.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $that = null;
        else {
            $that = var$4.classObject;
            if ($that === null) {
                $that = new jl_Class;
                $that.$platformClass = var$4;
                var$4.classObject = $that;
            }
        }
        if (var$3 === $that) {
            $that = $o;
            return $this.$size7 != $that.$size7 ? 0 : 1;
        }
    }
    return 0;
},
jt_DateFormatElement$Iso8601Timezone_hashCode = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_Object, 1);
    var$2 = $this.$size7;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$2;
    }
    var$1 = var$1.data;
    var$1[0] = var$3;
    var$4 = 1;
    var$2 = 0;
    while (var$2 < var$1.length) {
        var$4 = 31 * var$4 | 0;
        var$3 = var$1[var$2];
        var$4 = var$4 + (var$3 === null ? 0 : var$3.$value) | 0;
        var$2 = var$2 + 1 | 0;
    }
    return var$4;
};
function jt_DateFormatElement$MonthText() {
    let a = this; jt_DateFormatElement.call(a);
    a.$months = null;
    a.$shortMonths = null;
    a.$abbreviated = 0;
}
let jt_DateFormatElement$MonthText_format = ($this, $date, $buffer) => {
    let $month;
    if (!$date.$isTimeSet) {
        ju_GregorianCalendar_computeTime($date);
        $date.$isTimeSet = 1;
    }
    if (!$date.$areFieldsSet) {
        ju_GregorianCalendar_computeFields($date);
        $date.$areFieldsSet = 1;
    }
    $month = $date.$fields.data[2];
    $date = !$this.$abbreviated ? $this.$months.data[$month] : $this.$shortMonths.data[$month];
    jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $date);
},
jt_DateFormatElement$MonthText_equals = ($this, $o) => {
    let $monthText, var$3, var$4;
    if ($this === $o)
        return 1;
    if ($o !== null) {
        $monthText = $this.constructor;
        if ($monthText === null)
            var$3 = null;
        else {
            var$3 = $monthText.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $monthText;
                $monthText.classObject = var$3;
            }
        }
        var$4 = $o.constructor;
        if (var$4 === null)
            $monthText = null;
        else {
            $monthText = var$4.classObject;
            if ($monthText === null) {
                $monthText = new jl_Class;
                $monthText.$platformClass = var$4;
                var$4.classObject = $monthText;
            }
        }
        if (var$3 === $monthText) {
            $monthText = $o;
            return $this.$abbreviated == $monthText.$abbreviated && ju_Arrays_equals($this.$months, $monthText.$months) && ju_Arrays_equals($this.$shortMonths, $monthText.$shortMonths) ? 1 : 0;
        }
    }
    return 0;
},
jt_DateFormatElement$MonthText_hashCode = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray(jl_Object, 3).data;
    var$1[0] = $this.$months;
    var$1[1] = $this.$shortMonths;
    var$1[2] = !$this.$abbreviated ? jl_Boolean_FALSE : jl_Boolean_TRUE;
    var$2 = 1;
    var$3 = 0;
    while (var$3 < var$1.length) {
        var$2 = 31 * var$2 | 0;
        var$4 = var$1[var$3];
        var$2 = var$2 + (var$4 === null ? 0 : !var$4.$value9 ? 1237 : 1231) | 0;
        var$3 = var$3 + 1 | 0;
    }
    return var$2;
},
jt_DateFormatElement$NumericMonth = $rt_classWithoutFields(jt_DateFormatElement$Numeric),
jt_DateFormatElement$NumericMonth_processBeforeFormat = ($this, $num) => {
    return $num + 1 | 0;
};
function nles_VIteratorFile() {
    let a = this; nles_VFile.call(a);
    a.$idx1 = 0;
    a.$cur = null;
    a.$vfs0 = null;
    a.$wasDeleted = 0;
}
let nles_VIteratorFile_instance = null,
nles_VIteratorFile_$callClinit = () => {
    nles_VIteratorFile_$callClinit = $rt_eraseClinit(nles_VIteratorFile);
    nles_VIteratorFile__clinit_();
},
nles_VIteratorFile__init_ = $this => {
    let var$1;
    nles_VIteratorFile_$callClinit();
    var$1 = $rt_createArray(jl_Object, 1);
    var$1.data[0] = $rt_s(3);
    $this.$path = nles_VFile_createPath(var$1);
    $this.$idx1 = (-1);
    $this.$cur = null;
    $this.$vfs0 = null;
},
nles_VIteratorFile__init_0 = () => {
    let var_0 = new nles_VIteratorFile();
    nles_VIteratorFile__init_(var_0);
    return var_0;
},
nles_VIteratorFile_create = ($idx, $vfs, $cur) => {
    let $k, var$5;
    nles_VIteratorFile_$callClinit();
    $k = $rt_str(nles_VIteratorFile_readKey$js_body$_1($cur.key));
    if ($k === null)
        return null;
    var$5 = nles_VIteratorFile_instance;
    var$5.$idx1 = $idx;
    var$5.$path = $k;
    var$5.$vfs0 = $vfs;
    var$5.$cur = $cur;
    var$5.$wasDeleted = 0;
    return var$5;
},
nles_VIteratorFile_getAllBytes = $this => {
    let $obj, $arr, $a, $ii, $array, var$6, $i;
    $obj = $this.$cur.value;
    if ($obj === null)
        return null;
    $arr = nles_VIteratorFile_readRow$js_body$_22($obj);
    if ($arr === null)
        return null;
    $a = new Uint8Array($arr);
    $ii = $a.byteLength;
    $array = $rt_createByteArray($ii);
    var$6 = $array.data;
    $i = 0;
    while ($i < $ii) {
        var$6[$i] = $a[$i] << 24 >> 24;
        $i = $i + 1 | 0;
    }
    return $array;
},
nles_VIteratorFile__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nles_VIteratorFile;
    nles_VIteratorFile_$callClinit();
    var$2 = $rt_createArray(jl_Object, 1);
    var$2.data[0] = $rt_s(3);
    var$1.$path = nles_VFile_createPath(var$2);
    var$1.$idx1 = (-1);
    var$1.$cur = null;
    var$1.$vfs0 = null;
    nles_VIteratorFile_instance = var$1;
},
nles_VIteratorFile_readKey$js_body$_1 = var$1 => {
    return typeof var$1 === "string" ? var$1 : typeof var$1 === "undefined" ? null : typeof var$1[0] === "string" ? var$1[0] : null;
},
nles_VIteratorFile_readRow$js_body$_22 = var$1 => {
    return typeof var$1 === 'undefined' ? null : typeof var$1.data === 'undefined' ? null : var$1.data;
},
nles_VFSIterator$BreakLoop = $rt_classWithoutFields(jl_RuntimeException),
nles_VFSIterator$BreakLoop__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
    $this.$message = $rt_s(2035);
},
nles_VFSIterator$BreakLoop__init_0 = () => {
    let var_0 = new nles_VFSIterator$BreakLoop();
    nles_VFSIterator$BreakLoop__init_(var_0);
    return var_0;
};
function jur_AbstractCharClass$1() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$lHS = null;
    a.$this$029 = null;
}
let jur_AbstractCharClass$1_contains = ($this, $ch) => {
    let $index;
    $index = $ch - 55296 | 0;
    return $index >= 0 && $index < 2048 ? $this.$altSurrogates ^ ju_BitSet_get($this.$val$lHS, $index) : 0;
};
function jur_AbstractCharClass$2() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$lHS0 = null;
    a.$val$thisClass = null;
    a.$this$021 = null;
}
let jur_AbstractCharClass$2_contains = ($this, $ch) => {
    let $index, $containslHS;
    $index = $ch - 55296 | 0;
    $containslHS = $index >= 0 && $index < 2048 ? $this.$altSurrogates ^ ju_BitSet_get($this.$val$lHS0, $index) : 0;
    return $this.$val$thisClass.$contains1($ch) && !$containslHS ? 1 : 0;
};
function jur_CharClass$18() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$bs = null;
    a.$this$034 = null;
}
let jur_CharClass$18_contains = ($this, $ch) => {
    return $this.$alt ^ ju_BitSet_get($this.$val$bs, $ch);
},
jur_CharClass$18_toString = $this => {
    let $temp, $i, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $temp = new jl_StringBuilder;
    $temp.$buffer = $rt_createCharArray(16);
    $i = ju_BitSet_nextSetBit($this.$val$bs, 0);
    while ($i >= 0) {
        var$3 = (jl_Character_toChars($i)).data;
        var$4 = 0;
        var$5 = var$3.length;
        var$6 = $temp.$length0;
        jl_AbstractStringBuilder_insertSpace($temp, var$6, var$6 + var$5 | 0);
        var$5 = var$5 + var$4 | 0;
        while (var$4 < var$5) {
            var$7 = $temp.$buffer.data;
            var$8 = var$6 + 1 | 0;
            var$9 = var$4 + 1 | 0;
            var$7[var$6] = var$3[var$4];
            var$6 = var$8;
            var$4 = var$9;
        }
        var$6 = $temp.$length0;
        jl_AbstractStringBuilder_insertSpace($temp, var$6, var$6 + 1 | 0);
        $temp.$buffer.data[var$6] = 124;
        $i = ju_BitSet_nextSetBit($this.$val$bs, $i + 1 | 0);
    }
    var$4 = $temp.$length0;
    if (var$4 > 0)
        jl_AbstractStringBuilder_deleteCharAt($temp, var$4 - 1 | 0);
    var$10 = new jl_String;
    var$3 = $temp.$buffer;
    var$7 = var$3.data;
    var$4 = $temp.$length0;
    var$6 = var$7.length;
    if (var$4 >= 0 && var$4 <= (var$6 - 0 | 0)) {
        var$10.$nativeString = $rt_charArrayToString(var$3.data, 0, var$4);
        return var$10;
    }
    $temp = new jl_IndexOutOfBoundsException;
    $temp.$suppressionEnabled = 1;
    $temp.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($temp);
    $rt_throw($temp);
};
function jur_CharClass$1() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$cc3 = null;
    a.$this$026 = null;
}
let jur_CharClass$1_contains = ($this, $ch) => {
    return $this.$val$cc3.$contains1($ch);
};
function jur_CharClass$3() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt0 = 0;
    a.$val$cc1 = null;
    a.$this$06 = null;
}
let jur_CharClass$3_contains = ($this, $ch) => {
    return !($this.$val$curAlt0 ^ ju_BitSet_get($this.$this$06.$bits, $ch)) && !($this.$val$curAlt0 ^ $this.$this$06.$inverted ^ $this.$val$cc1.$contains1($ch)) ? 0 : 1;
};
function jur_CharClass$2() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt = 0;
    a.$val$cc0 = null;
    a.$this$05 = null;
}
let jur_CharClass$2_contains = ($this, $ch) => {
    return !($this.$val$curAlt ^ ju_BitSet_get($this.$this$05.$bits, $ch)) && !($this.$val$curAlt ^ $this.$this$05.$inverted ^ $this.$val$cc0.$contains1($ch)) ? 1 : 0;
};
function jur_CharClass$5() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt10 = 0;
    a.$val$nb0 = null;
    a.$val$cc = null;
    a.$this$036 = null;
}
let jur_CharClass$5_contains = ($this, $ch) => {
    return $this.$val$curAlt10 ^ (!$this.$val$nb0.$contains1($ch) && !$this.$val$cc.$contains1($ch) ? 0 : 1);
};
function jur_CharClass$4() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt6 = 0;
    a.$val$nb3 = null;
    a.$val$cc2 = null;
    a.$this$042 = null;
}
let jur_CharClass$4_contains = ($this, $ch) => {
    return $this.$val$curAlt6 ^ (!$this.$val$nb3.$contains1($ch) && !$this.$val$cc2.$contains1($ch) ? 0 : 1) ? 0 : 1;
};
function jur_CharClass$7() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz5 = null;
    a.$this$030 = null;
}
let jur_CharClass$7_contains = ($this, $ch) => {
    let var$2, var$3;
    var$2 = $this.$val$clazz5;
    var$3 = var$2.$nonBitSet;
    return var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch);
};
function jur_CharClass$6() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz9 = null;
    a.$this$024 = null;
}
let jur_CharClass$6_contains = ($this, $ch) => {
    let var$2, var$3;
    var$2 = $this.$val$clazz9;
    var$3 = var$2.$nonBitSet;
    return (var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch)) ? 0 : 1;
};
function jur_CharClass$9() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz0 = null;
    a.$val$curAlt3 = 0;
    a.$this$012 = null;
}
let jur_CharClass$9_contains = ($this, $ch) => {
    let var$2, var$3, var$4;
    var$2 = $this.$val$clazz0;
    var$3 = var$2.$nonBitSet;
    var$4 = var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch);
    return !var$4 && !($this.$val$curAlt3 ^ ju_BitSet_get($this.$this$012.$bits, $ch)) ? 0 : 1;
};
function jur_CharClass$8() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz7 = null;
    a.$val$curAlt7 = 0;
    a.$this$08 = null;
}
let jur_CharClass$8_contains = ($this, $ch) => {
    let var$2, var$3, var$4;
    var$2 = $this.$val$clazz7;
    var$3 = var$2.$nonBitSet;
    var$4 = var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch);
    return !var$4 && !($this.$val$curAlt7 ^ ju_BitSet_get($this.$this$08.$bits, $ch)) ? 1 : 0;
};
function jur_CharClass$11() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt2 = 0;
    a.$val$nb4 = null;
    a.$val$clazz1 = null;
    a.$this$016 = null;
}
let jur_CharClass$11_contains = ($this, $ch) => {
    let var$2, var$3;
    a: {
        if (!($this.$val$curAlt2 ^ $this.$val$nb4.$contains1($ch))) {
            var$2 = $this.$val$clazz1;
            var$3 = var$2.$nonBitSet;
            if (!(var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch))) {
                $ch = 0;
                break a;
            }
        }
        $ch = 1;
    }
    return $ch;
};
function jur_CharClass$10() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt9 = 0;
    a.$val$nb = null;
    a.$val$clazz = null;
    a.$this$031 = null;
}
let jur_CharClass$10_contains = ($this, $ch) => {
    let var$2, var$3;
    a: {
        if (!($this.$val$curAlt9 ^ $this.$val$nb.$contains1($ch))) {
            var$2 = $this.$val$clazz;
            var$3 = var$2.$nonBitSet;
            if (!(var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch))) {
                $ch = 1;
                break a;
            }
        }
        $ch = 0;
    }
    return $ch;
};
function jur_CharClass$13() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz8 = null;
    a.$this$017 = null;
}
let jur_CharClass$13_contains = ($this, $ch) => {
    let var$2, var$3;
    var$2 = $this.$val$clazz8;
    var$3 = var$2.$nonBitSet;
    return var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch);
};
function jur_CharClass$12() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz4 = null;
    a.$this$041 = null;
}
let jur_CharClass$12_contains = ($this, $ch) => {
    let var$2, var$3;
    var$2 = $this.$val$clazz4;
    var$3 = var$2.$nonBitSet;
    return (var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch)) ? 0 : 1;
};
function jur_CharClass$15() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz10 = null;
    a.$val$curAlt1 = 0;
    a.$this$010 = null;
}
let jur_CharClass$15_contains = ($this, $ch) => {
    let var$2, var$3, var$4;
    var$2 = $this.$val$clazz10;
    var$3 = var$2.$nonBitSet;
    var$4 = var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch);
    return var$4 && $this.$val$curAlt1 ^ ju_BitSet_get($this.$this$010.$bits, $ch) ? 1 : 0;
};
function jur_CharClass$14() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$clazz2 = null;
    a.$val$curAlt4 = 0;
    a.$this$011 = null;
}
let jur_CharClass$14_contains = ($this, $ch) => {
    let var$2, var$3, var$4;
    var$2 = $this.$val$clazz2;
    var$3 = var$2.$nonBitSet;
    var$4 = var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch);
    return var$4 && $this.$val$curAlt4 ^ ju_BitSet_get($this.$this$011.$bits, $ch) ? 0 : 1;
};
function jur_CharClass$17() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt5 = 0;
    a.$val$nb2 = null;
    a.$val$clazz6 = null;
    a.$this$035 = null;
}
let jur_CharClass$17_contains = ($this, $ch) => {
    let var$2, var$3;
    a: {
        if ($this.$val$curAlt5 ^ $this.$val$nb2.$contains1($ch)) {
            var$2 = $this.$val$clazz6;
            var$3 = var$2.$nonBitSet;
            if (var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch)) {
                $ch = 1;
                break a;
            }
        }
        $ch = 0;
    }
    return $ch;
};
function jur_CharClass$16() {
    let a = this; jur_AbstractCharClass.call(a);
    a.$val$curAlt8 = 0;
    a.$val$nb1 = null;
    a.$val$clazz3 = null;
    a.$this$025 = null;
}
let jur_CharClass$16_contains = ($this, $ch) => {
    let var$2, var$3;
    a: {
        if ($this.$val$curAlt8 ^ $this.$val$nb1.$contains1($ch)) {
            var$2 = $this.$val$clazz3;
            var$3 = var$2.$nonBitSet;
            if (var$3 !== null ? var$2.$alt ^ var$3.$contains1($ch) : var$2.$alt ^ ju_BitSet_get(var$2.$bits, $ch)) {
                $ch = 0;
                break a;
            }
        }
        $ch = 1;
    }
    return $ch;
};
function jnci_BufferedDecoder() {
    let a = this; jnc_CharsetDecoder.call(a);
    a.$inArray0 = null;
    a.$outArray0 = null;
}
let jnci_BufferedDecoder_decodeLoop = ($this, $in, $out) => {
    let $inArray, $inPos, $inSize, $outArray, $outSize, var$8, $i, var$10, $outSize_0, $result, $controller;
    $inArray = $this.$inArray0;
    $inPos = 0;
    $inSize = 0;
    $outArray = $this.$outArray0;
    a: {
        while (true) {
            if (($inPos + 32 | 0) > $inSize) {
                $outSize = $in.$position1;
                var$8 = $in.$limit;
                if ($outSize >= var$8 ? 0 : 1) {
                    $i = $inPos;
                    while ($i < $inSize) {
                        var$10 = $inArray.data;
                        var$10[$i - $inPos | 0] = var$10[$i];
                        $i = $i + 1 | 0;
                    }
                    var$10 = $inArray.data;
                    $i = $inSize - $inPos | 0;
                    $outSize_0 = (var$8 - $outSize | 0) + $i | 0;
                    $inSize = var$10.length;
                    if ($outSize_0 < $inSize)
                        $inSize = $outSize_0;
                    jn_ByteBuffer_get($in, $inArray, $i, $inSize - $i | 0);
                    $inPos = 0;
                }
            }
            $i = $out.$position1;
            $outSize_0 = $out.$limit;
            if (!($i >= $outSize_0 ? 0 : 1)) {
                $i = $in.$position1 >= $in.$limit ? 0 : 1;
                $result = !$i && $inPos >= $inSize ? jnc_CoderResult_UNDERFLOW : jnc_CoderResult_OVERFLOW;
                break a;
            }
            var$10 = $outArray.data;
            $outSize_0 = $outSize_0 - $i | 0;
            $outSize = var$10.length;
            if ($outSize_0 < $outSize)
                $outSize = $outSize_0;
            $controller = new jnci_BufferedDecoder$Controller;
            $controller.$in0 = $in;
            $controller.$out6 = $out;
            $result = $this.$arrayDecode($inArray, $inPos, $inSize, $outArray, 0, $outSize, $controller);
            $inPos = $controller.$inPosition0;
            if ($result === null && 0 == $controller.$outPosition)
                $result = jnc_CoderResult_UNDERFLOW;
            jn_CharBuffer_put0($out, $outArray, 0, $controller.$outPosition);
            if ($result !== null)
                break;
        }
    }
    jn_Buffer_position($in, $in.$position1 - ($inSize - $inPos | 0) | 0);
    return $result;
};
function jnci_UTF16Decoder() {
    let a = this; jnci_BufferedDecoder.call(a);
    a.$bom1 = 0;
    a.$littleEndian0 = 0;
}
let jnci_UTF16Decoder_arrayDecode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let var$8, var$9, $b;
    if ($this.$bom1) {
        if (($inPos + 2 | 0) > $inSize) {
            $controller = $controller.$in0;
            return !($controller.$position1 >= $controller.$limit ? 0 : 1) ? jnc_CoderResult_UNDERFLOW : null;
        }
        var$8 = $inArray.data;
        $this.$bom1 = 0;
        var$9 = $inPos + 1 | 0;
        $b = var$8[$inPos];
        if ($b == (-1)) {
            if (var$8[var$9] != (-2))
                $inPos = var$9 + (-1) | 0;
            else {
                $inPos = var$9 + 1 | 0;
                $this.$littleEndian0 = 1;
            }
        } else if ($b != (-2))
            $inPos = var$9 + (-1) | 0;
        else if (var$8[var$9] != (-1))
            $inPos = var$9 + (-1) | 0;
        else {
            $inPos = var$9 + 1 | 0;
            $this.$littleEndian0 = 0;
        }
    }
    return !$this.$littleEndian0 ? jnci_UTF16Decoder_decodeBE($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) : jnci_UTF16Decoder_decodeLE($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller);
},
jnci_UTF16Decoder_decodeLE = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $next, $b1, $c;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize)
                break a;
            if (($inPos + 2 | 0) > $inSize) {
                var$9 = $controller.$in0;
                if ((var$9.$limit - var$9.$position1 | 0) < 2 ? 0 : 1)
                    break a;
                $result = jnc_CoderResult_UNDERFLOW;
                break a;
            }
            var$10 = $inArray.data;
            $next = $inPos + 1 | 0;
            $b1 = var$10[$inPos] & 255;
            $inPos = $next + 1 | 0;
            $c = ($b1 | (var$10[$next] & 255) << 8) & 65535;
            $b1 = $c & 64512;
            if (!($b1 != 55296 ? 0 : 1)) {
                if ($b1 != 56320 ? 0 : 1) {
                    $inPos = $inPos + (-2) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 2;
                    break a;
                }
                var$10 = $outArray.data;
                $next = $outPos + 1 | 0;
                var$10[$outPos] = $c;
                $outPos = $next;
            } else {
                if (($inPos + 2 | 0) >= $inSize) {
                    var$9 = $controller.$in0;
                    if (!((var$9.$limit - var$9.$position1 | 0) < 4 ? 0 : 1))
                        $result = jnc_CoderResult_UNDERFLOW;
                    $inPos = $inPos + (-2) | 0;
                    break a;
                }
                $b1 = $inPos + 1 | 0;
                $next = var$10[$inPos] & 255;
                $inPos = $b1 + 1 | 0;
                $next = ($next | (var$10[$b1] & 255) << 8) & 65535;
                if (!(($next & 64512) != 56320 ? 0 : 1)) {
                    $inPos = $inPos + (-4) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 4;
                    break a;
                }
                if (($outPos + 2 | 0) > $outSize) {
                    var$9 = $controller.$out6;
                    if ((var$9.$limit - var$9.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$10 = $outArray.data;
                $b1 = $outPos + 1 | 0;
                var$10[$outPos] = $c;
                $outPos = $b1 + 1 | 0;
                var$10[$b1] = $next;
            }
        }
    }
    $controller.$inPosition0 = $inPos;
    $controller.$outPosition = $outPos;
    return $result;
},
jnci_UTF16Decoder_decodeBE = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $next, $b1, $c;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize)
                break a;
            if (($inPos + 2 | 0) > $inSize) {
                var$9 = $controller.$in0;
                if ((var$9.$limit - var$9.$position1 | 0) < 2 ? 0 : 1)
                    break a;
                $result = jnc_CoderResult_UNDERFLOW;
                break a;
            }
            var$10 = $inArray.data;
            $next = $inPos + 1 | 0;
            $b1 = var$10[$inPos] & 255;
            $inPos = $next + 1 | 0;
            $c = (var$10[$next] & 255 | $b1 << 8) & 65535;
            $b1 = $c & 64512;
            if (!($b1 != 55296 ? 0 : 1)) {
                if ($b1 != 56320 ? 0 : 1) {
                    $inPos = $inPos + (-2) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 2;
                    break a;
                }
                var$10 = $outArray.data;
                $next = $outPos + 1 | 0;
                var$10[$outPos] = $c;
                $outPos = $next;
            } else {
                if (($inPos + 2 | 0) >= $inSize) {
                    var$9 = $controller.$in0;
                    if (!((var$9.$limit - var$9.$position1 | 0) < 4 ? 0 : 1))
                        $result = jnc_CoderResult_UNDERFLOW;
                    $inPos = $inPos + (-2) | 0;
                    break a;
                }
                $b1 = $inPos + 1 | 0;
                $next = var$10[$inPos] & 255;
                $inPos = $b1 + 1 | 0;
                $next = (var$10[$b1] & 255 | $next << 8) & 65535;
                if (!(($next & 64512) != 56320 ? 0 : 1)) {
                    $inPos = $inPos + (-4) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 4;
                    break a;
                }
                if (($outPos + 2 | 0) > $outSize) {
                    var$9 = $controller.$out6;
                    if ((var$9.$limit - var$9.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$10 = $outArray.data;
                $b1 = $outPos + 1 | 0;
                var$10[$outPos] = $c;
                $outPos = $b1 + 1 | 0;
                var$10[$b1] = $next;
            }
        }
    }
    $controller.$inPosition0 = $inPos;
    $controller.$outPosition = $outPos;
    return $result;
},
jnci_UTF8Decoder = $rt_classWithoutFields(jnci_BufferedDecoder),
jnci_UTF8Decoder_arrayDecode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, $b2, $b, $b2_0, var$13, $code, $b3, $b4, $c;
    $result = null;
    a: {
        b: {
            c: {
                while ($inPos < $inSize) {
                    if ($outPos >= $outSize)
                        break a;
                    var$9 = $inArray.data;
                    $b2 = $inPos + 1 | 0;
                    $b = var$9[$inPos] & 255;
                    if (!($b & 128)) {
                        var$9 = $outArray.data;
                        $b2_0 = $outPos + 1 | 0;
                        var$9[$outPos] = $b & 65535;
                    } else if (($b & 224) == 192) {
                        if ($b2 >= $inSize) {
                            $inPos = $b2 + (-1) | 0;
                            var$13 = $controller.$in0;
                            if ((var$13.$limit - var$13.$position1 | 0) < 2 ? 0 : 1)
                                break a;
                            $result = jnc_CoderResult_UNDERFLOW;
                            break a;
                        }
                        $inPos = $b2 + 1 | 0;
                        $b2 = var$9[$b2];
                        if (!(($b2 & 192) != 128 ? 0 : 1)) {
                            $inPos = $inPos + (-2) | 0;
                            $result = new jnc_CoderResult;
                            $result.$kind = 2;
                            $result.$length2 = 1;
                            break a;
                        }
                        var$9 = $outArray.data;
                        $b2_0 = $outPos + 1 | 0;
                        var$9[$outPos] = (($b & 31) << 6 | $b2 & 63) & 65535;
                        $b2 = $inPos;
                    } else if (($b & 240) != 224) {
                        if (($b & 248) != 240) {
                            $inPos = $b2 + (-1) | 0;
                            $result = new jnc_CoderResult;
                            $result.$kind = 2;
                            $result.$length2 = 1;
                            break a;
                        }
                        if (($b2 + 3 | 0) > $inSize) {
                            $inPos = $b2 + (-1) | 0;
                            var$13 = $controller.$in0;
                            if ((var$13.$limit - var$13.$position1 | 0) < 4 ? 0 : 1)
                                break a;
                            $result = jnc_CoderResult_UNDERFLOW;
                            break a;
                        }
                        if (($outPos + 2 | 0) > $outSize) {
                            $inPos = $b2 + (-1) | 0;
                            var$13 = $controller.$out6;
                            if ((var$13.$limit - var$13.$position1 | 0) < 2 ? 0 : 1)
                                break a;
                            $result = jnc_CoderResult_OVERFLOW;
                            break a;
                        }
                        $inPos = $b2 + 1 | 0;
                        $b2_0 = var$9[$b2];
                        $code = $inPos + 1 | 0;
                        $b3 = var$9[$inPos];
                        $b2 = $code + 1 | 0;
                        $b4 = var$9[$code];
                        if (!(($b2_0 & 192) != 128 ? 0 : 1))
                            break c;
                        if (!(($b3 & 192) != 128 ? 0 : 1))
                            break c;
                        if (!(($b4 & 192) != 128 ? 0 : 1))
                            break c;
                        var$9 = $outArray.data;
                        $code = ($b & 7) << 18 | ($b2_0 & 63) << 12 | ($b3 & 63) << 6 | $b4 & 63;
                        $inPos = $outPos + 1 | 0;
                        var$9[$outPos] = (55296 | ($code - 65536 | 0) >> 10 & 1023) & 65535;
                        $b2_0 = $inPos + 1 | 0;
                        var$9[$inPos] = (56320 | $code & 1023) & 65535;
                    } else {
                        if (($b2 + 2 | 0) > $inSize) {
                            $inPos = $b2 + (-1) | 0;
                            var$13 = $controller.$in0;
                            if ((var$13.$limit - var$13.$position1 | 0) < 3 ? 0 : 1)
                                break a;
                            $result = jnc_CoderResult_UNDERFLOW;
                            break a;
                        }
                        $inPos = $b2 + 1 | 0;
                        $b2_0 = var$9[$b2];
                        $b2 = $inPos + 1 | 0;
                        $b3 = var$9[$inPos];
                        if (!(($b2_0 & 192) != 128 ? 0 : 1))
                            break b;
                        if (!(($b3 & 192) != 128 ? 0 : 1))
                            break b;
                        $c = (($b & 15) << 12 | ($b2_0 & 63) << 6 | $b3 & 63) & 65535;
                        $code = $c & 64512;
                        $inPos = $code != 55296 ? 0 : 1;
                        if (!$inPos && !($code != 56320 ? 0 : 1) ? 0 : 1) {
                            $inPos = $b2 + (-3) | 0;
                            $result = new jnc_CoderResult;
                            $result.$kind = 2;
                            $result.$length2 = 3;
                            break a;
                        }
                        var$9 = $outArray.data;
                        $b2_0 = $outPos + 1 | 0;
                        var$9[$outPos] = $c;
                    }
                    $inPos = $b2;
                    $outPos = $b2_0;
                }
                break a;
            }
            $inPos = $b2 + (-3) | 0;
            $result = new jnc_CoderResult;
            $result.$kind = 2;
            $result.$length2 = 1;
            break a;
        }
        $inPos = $b2 + (-3) | 0;
        $result = new jnc_CoderResult;
        $result.$kind = 2;
        $result.$length2 = 1;
    }
    $controller.$inPosition0 = $inPos;
    $controller.$outPosition = $outPos;
    return $result;
},
jnci_Iso8859Decoder = $rt_classWithoutFields(jnci_BufferedDecoder),
jnci_Iso8859Decoder_arrayDecode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, var$11, $b, var$13;
    $result = null;
    while ($inPos < $inSize && $outPos < $outSize) {
        var$9 = $inArray.data;
        var$10 = $outArray.data;
        var$11 = $inPos + 1 | 0;
        $b = var$9[$inPos] & 255;
        var$13 = $outPos + 1 | 0;
        var$10[$outPos] = $b & 65535;
        $inPos = var$11;
        $outPos = var$13;
    }
    $controller.$inPosition0 = $inPos;
    $controller.$outPosition = $outPos;
    return $result;
},
jnci_AsciiDecoder = $rt_classWithoutFields(jnci_BufferedDecoder),
jnci_AsciiDecoder_arrayDecode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $b, var$12;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize)
                break a;
            var$9 = $inArray.data;
            var$10 = $inPos + 1 | 0;
            $b = var$9[$inPos] & 255;
            if ($b & 128) {
                $result = new jnc_CoderResult;
                $result.$kind = 2;
                $result.$length2 = 1;
                $inPos = var$10 + (-1) | 0;
                break a;
            }
            var$9 = $outArray.data;
            var$12 = $outPos + 1 | 0;
            var$9[$outPos] = $b & 65535;
            $inPos = var$10;
            $outPos = var$12;
        }
    }
    $controller.$inPosition0 = $inPos;
    $controller.$outPosition = $outPos;
    return $result;
},
nms_NetHandler = $rt_classWithoutFields(),
nms_NetHandler_handleMapChunk = ($this, $par1Packet51MapChunk) => {
    return;
},
nms_NetHandler_shouldBeRemoved = $this => {
    return 1;
},
nms_NetHandler_handleKickDisconnect = ($this, $par1Packet255KickDisconnect) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet255KickDisconnect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet255KickDisconnect);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet255KickDisconnect, $ptr);
},
nms_NetHandler_handleLogin = ($this, $par1Packet1Login) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet1Login = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet1Login);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet1Login, $ptr);
},
nms_NetHandler_handleFlying = ($this, $par1Packet10Flying) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet10Flying = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet10Flying, $ptr);
},
nms_NetHandler_handleMultiBlockChange = ($this, $par1Packet52MultiBlockChange) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet52MultiBlockChange = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet52MultiBlockChange);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet52MultiBlockChange, $ptr);
},
nms_NetHandler_handleBlockDig = ($this, $par1Packet14BlockDig) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet14BlockDig = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet14BlockDig);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet14BlockDig, $ptr);
},
nms_NetHandler_handleBlockChange = ($this, $par1Packet53BlockChange) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet53BlockChange = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet53BlockChange);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet53BlockChange, $ptr);
},
nms_NetHandler_handleNamedEntitySpawn = ($this, $par1Packet20NamedEntitySpawn) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet20NamedEntitySpawn = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet20NamedEntitySpawn);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet20NamedEntitySpawn, $ptr);
},
nms_NetHandler_handleEntity = ($this, $par1Packet30Entity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet30Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet30Entity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet30Entity, $ptr);
},
nms_NetHandler_handleEntityTeleport = ($this, $par1Packet34EntityTeleport) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet34EntityTeleport = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet34EntityTeleport);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet34EntityTeleport, $ptr);
},
nms_NetHandler_handlePlace = ($this, $par1Packet15Place) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet15Place = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet15Place);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet15Place, $ptr);
},
nms_NetHandler_handleBlockItemSwitch = ($this, $par1Packet16BlockItemSwitch) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet16BlockItemSwitch = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet16BlockItemSwitch);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet16BlockItemSwitch, $ptr);
},
nms_NetHandler_handleDestroyEntity = ($this, $par1Packet29DestroyEntity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet29DestroyEntity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet29DestroyEntity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet29DestroyEntity, $ptr);
},
nms_NetHandler_handleCollect = ($this, $par1Packet22Collect) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet22Collect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet22Collect);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet22Collect, $ptr);
},
nms_NetHandler_handleChat = ($this, $par1Packet3Chat) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet3Chat = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet3Chat);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet3Chat, $ptr);
},
nms_NetHandler_handleVehicleSpawn = ($this, $par1Packet23VehicleSpawn) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet23VehicleSpawn = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet23VehicleSpawn);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet23VehicleSpawn, $ptr);
},
nms_NetHandler_handleAnimation = ($this, $par1Packet18Animation) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet18Animation = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet18Animation);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet18Animation, $ptr);
},
nms_NetHandler_handleEntityAction = ($this, $par1Packet19EntityAction) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet19EntityAction = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet19EntityAction);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet19EntityAction, $ptr);
},
nms_NetHandler_handleClientProtocol = ($this, $par1Packet2ClientProtocol) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet2ClientProtocol = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet2ClientProtocol);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet2ClientProtocol, $ptr);
},
nms_NetHandler_handleSharedKey = ($this, $par1Packet252SharedKey) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet252SharedKey = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet252SharedKey);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet252SharedKey, $ptr);
},
nms_NetHandler_handleMobSpawn = ($this, $par1Packet24MobSpawn) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet24MobSpawn = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet24MobSpawn);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet24MobSpawn, $ptr);
},
nms_NetHandler_handleUpdateTime = ($this, $par1Packet4UpdateTime) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet4UpdateTime = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet4UpdateTime);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet4UpdateTime, $ptr);
},
nms_NetHandler_handleSpawnPosition = ($this, $par1Packet6SpawnPosition) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet6SpawnPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet6SpawnPosition);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet6SpawnPosition, $ptr);
},
nms_NetHandler_handleEntityVelocity = ($this, $par1Packet28EntityVelocity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet28EntityVelocity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet28EntityVelocity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet28EntityVelocity, $ptr);
},
nms_NetHandler_handleEntityMetadata = ($this, $par1Packet40EntityMetadata) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet40EntityMetadata = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet40EntityMetadata);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet40EntityMetadata, $ptr);
},
nms_NetHandler_handleAttachEntity = ($this, $par1Packet39AttachEntity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet39AttachEntity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet39AttachEntity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet39AttachEntity, $ptr);
},
nms_NetHandler_handleUseEntity = ($this, $par1Packet7UseEntity) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet7UseEntity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet7UseEntity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet7UseEntity, $ptr);
},
nms_NetHandler_handleEntityStatus = ($this, $par1Packet38EntityStatus) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet38EntityStatus = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet38EntityStatus);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet38EntityStatus, $ptr);
},
nms_NetHandler_handleUpdateHealth = ($this, $par1Packet8UpdateHealth) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet8UpdateHealth = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet8UpdateHealth);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet8UpdateHealth, $ptr);
},
nms_NetHandler_handleRespawn = ($this, $par1Packet9Respawn) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet9Respawn = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet9Respawn);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet9Respawn, $ptr);
},
nms_NetHandler_handleExplosion = ($this, $par1Packet60Explosion) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet60Explosion = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet60Explosion);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet60Explosion, $ptr);
},
nms_NetHandler_handleOpenWindow = ($this, $par1Packet100OpenWindow) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet100OpenWindow = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet100OpenWindow);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet100OpenWindow, $ptr);
},
nms_NetHandler_handleCloseWindow = ($this, $par1Packet101CloseWindow) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet101CloseWindow = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet101CloseWindow);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet101CloseWindow, $ptr);
},
nms_NetHandler_handleWindowClick = ($this, $par1Packet102WindowClick) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet102WindowClick = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet102WindowClick);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet102WindowClick, $ptr);
},
nms_NetHandler_handleSetSlot = ($this, $par1Packet103SetSlot) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet103SetSlot = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet103SetSlot);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet103SetSlot, $ptr);
},
nms_NetHandler_handleWindowItems = ($this, $par1Packet104WindowItems) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet104WindowItems = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet104WindowItems);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet104WindowItems, $ptr);
},
nms_NetHandler_handleUpdateSign = ($this, $par1Packet130UpdateSign) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet130UpdateSign = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet130UpdateSign);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet130UpdateSign, $ptr);
},
nms_NetHandler_handleUpdateProgressbar = ($this, $par1Packet105UpdateProgressbar) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet105UpdateProgressbar = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet105UpdateProgressbar);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet105UpdateProgressbar, $ptr);
},
nms_NetHandler_handlePlayerInventory = ($this, $par1Packet5PlayerInventory) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet5PlayerInventory = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet5PlayerInventory);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet5PlayerInventory, $ptr);
};
let nms_NetHandler_handleTransaction = ($this, $par1Packet106Transaction) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet106Transaction = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet106Transaction);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet106Transaction, $ptr);
},
nms_NetHandler_handleEntityPainting = ($this, $par1Packet25EntityPainting) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet25EntityPainting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet25EntityPainting);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet25EntityPainting, $ptr);
},
nms_NetHandler_handleBlockEvent = ($this, $par1Packet54PlayNoteBlock) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet54PlayNoteBlock = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet54PlayNoteBlock);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet54PlayNoteBlock, $ptr);
},
nms_NetHandler_handleStatistic = ($this, $par1Packet200Statistic) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet200Statistic = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet200Statistic);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet200Statistic, $ptr);
},
nms_NetHandler_handleSleep = ($this, $par1Packet17Sleep) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet17Sleep = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet17Sleep);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet17Sleep, $ptr);
},
nms_NetHandler_func_110774_a = ($this, $par1Packet27PlayerInput) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet27PlayerInput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet27PlayerInput);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet27PlayerInput, $ptr);
},
nms_NetHandler_handleGameEvent = ($this, $par1Packet70GameEvent) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet70GameEvent = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet70GameEvent);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet70GameEvent, $ptr);
},
nms_NetHandler_handleWeather = ($this, $par1Packet71Weather) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet71Weather = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet71Weather);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet71Weather, $ptr);
},
nms_NetHandler_handleMapData = ($this, $par1Packet131MapData) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet131MapData = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet131MapData);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet131MapData, $ptr);
},
nms_NetHandler_handleDoorChange = ($this, $par1Packet61DoorChange) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet61DoorChange = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet61DoorChange);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet61DoorChange, $ptr);
},
nms_NetHandler_handleServerPing = ($this, $par1Packet254ServerPing) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet254ServerPing = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet254ServerPing);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet254ServerPing, $ptr);
},
nms_NetHandler_handleEntityEffect = ($this, $par1Packet41EntityEffect) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet41EntityEffect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet41EntityEffect);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet41EntityEffect, $ptr);
},
nms_NetHandler_handleRemoveEntityEffect = ($this, $par1Packet42RemoveEntityEffect) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet42RemoveEntityEffect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet42RemoveEntityEffect);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet42RemoveEntityEffect, $ptr);
},
nms_NetHandler_handlePlayerInfo = ($this, $par1Packet201PlayerInfo) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet201PlayerInfo = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet201PlayerInfo);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet201PlayerInfo, $ptr);
},
nms_NetHandler_handleKeepAlive = ($this, $par1Packet0KeepAlive) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet0KeepAlive = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet0KeepAlive);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet0KeepAlive, $ptr);
},
nms_NetHandler_handleExperience = ($this, $par1Packet43Experience) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet43Experience = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet43Experience);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet43Experience, $ptr);
},
nms_NetHandler_handleCreativeSetSlot = ($this, $par1Packet107CreativeSetSlot) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet107CreativeSetSlot = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet107CreativeSetSlot);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet107CreativeSetSlot, $ptr);
},
nms_NetHandler_handleEntityExpOrb = ($this, $par1Packet26EntityExpOrb) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet26EntityExpOrb = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet26EntityExpOrb);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet26EntityExpOrb, $ptr);
},
nms_NetHandler_handleEnchantItem = ($this, $par1Packet108EnchantItem) => {
    return;
},
nms_NetHandler_handleCustomPayload = ($this, $par1Packet250CustomPayload) => {
    return;
},
nms_NetHandler_handleEntityHeadRotation = ($this, $par1Packet35EntityHeadRotation) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet35EntityHeadRotation = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet35EntityHeadRotation);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet35EntityHeadRotation, $ptr);
},
nms_NetHandler_handleTileEntityData = ($this, $par1Packet132TileEntityData) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet132TileEntityData = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet132TileEntityData);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet132TileEntityData, $ptr);
},
nms_NetHandler_handlePlayerAbilities = ($this, $par1Packet202PlayerAbilities) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet202PlayerAbilities = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet202PlayerAbilities);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet202PlayerAbilities, $ptr);
},
nms_NetHandler_handleAutoComplete = ($this, $par1Packet203AutoComplete) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet203AutoComplete = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet203AutoComplete);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet203AutoComplete, $ptr);
},
nms_NetHandler_handleClientInfo = ($this, $par1Packet204ClientInfo) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet204ClientInfo = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet204ClientInfo);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet204ClientInfo, $ptr);
},
nms_NetHandler_handleLevelSound = ($this, $par1Packet62LevelSound) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet62LevelSound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet62LevelSound);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet62LevelSound, $ptr);
},
nms_NetHandler_handleBlockDestroy = ($this, $par1Packet55BlockDestroy) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet55BlockDestroy = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet55BlockDestroy);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet55BlockDestroy, $ptr);
},
nms_NetHandler_handleMapChunks = ($this, $par1Packet56MapChunks) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet56MapChunks = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet56MapChunks);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet56MapChunks, $ptr);
},
nms_NetHandler_handleSetObjective = ($this, $par1Packet206SetObjective) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet206SetObjective = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet206SetObjective);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet206SetObjective, $ptr);
},
nms_NetHandler_handleSetScore = ($this, $par1Packet207SetScore) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet207SetScore = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet207SetScore);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet207SetScore, $ptr);
},
nms_NetHandler_handleSetDisplayObjective = ($this, $par1Packet208SetDisplayObjective) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet208SetDisplayObjective = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet208SetDisplayObjective);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet208SetDisplayObjective, $ptr);
},
nms_NetHandler_handleSetPlayerTeam = ($this, $par1Packet209SetPlayerTeam) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet209SetPlayerTeam = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet209SetPlayerTeam);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet209SetPlayerTeam, $ptr);
},
nms_NetHandler_handleWorldParticles = ($this, $par1Packet63WorldParticles) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet63WorldParticles = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet63WorldParticles);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet63WorldParticles, $ptr);
},
nms_NetHandler_func_110773_a = ($this, $par1Packet44UpdateAttributes) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet44UpdateAttributes = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$unexpectedPacket($par1Packet44UpdateAttributes);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet44UpdateAttributes, $ptr);
},
nms_NetHandler_func_142031_a = ($this, $par1Packet133TileEditorOpen) => {
    return;
};
function nms_NetLoginHandler() {
    let a = this; nms_NetHandler.call(a);
    a.$mcServer4 = null;
    a.$myTCPConnection = null;
    a.$finishedProcessing = 0;
    a.$loginTimer = 0;
    a.$clientUsername = null;
    a.$field_72544_i = 0;
    a.$field_92079_k = 0;
    a.$hash1 = 0;
    a.$viewDistance0 = 0;
}
let nms_NetLoginHandler_rand = null,
nms_NetLoginHandler_hashBase = 0,
nms_NetLoginHandler_$callClinit = () => {
    nms_NetLoginHandler_$callClinit = $rt_eraseClinit(nms_NetLoginHandler);
    nms_NetLoginHandler__clinit_();
},
nms_NetLoginHandler__init_ = ($this, $par1MinecraftServer, $par2Socket) => {
    let var$3;
    nms_NetLoginHandler_$callClinit();
    $this.$finishedProcessing = 0;
    $this.$loginTimer = 0;
    $this.$clientUsername = null;
    $this.$field_72544_i = 0;
    $this.$field_92079_k = 0;
    $this.$hash1 = 0;
    $this.$viewDistance0 = 2;
    $this.$mcServer4 = $par1MinecraftServer;
    $this.$myTCPConnection = $par2Socket;
    var$3 = nms_NetLoginHandler_hashBase + 1 | 0;
    nms_NetLoginHandler_hashBase = var$3;
    $this.$hash1 = var$3;
},
nms_NetLoginHandler__init_0 = (var_0, var_1) => {
    let var_2 = new nms_NetLoginHandler();
    nms_NetLoginHandler__init_(var_2, var_0, var_1);
    return var_2;
},
nms_NetLoginHandler_shouldBeRemoved = $this => {
    return $this.$finishedProcessing;
},
nms_NetLoginHandler_handlePackets = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_72544_i) {
            $ptr = 1;
            continue main;
        }
        var$1 = $this.$loginTimer;
        $this.$loginTimer = var$1 + 1 | 0;
        if (var$1 == 600 && !$this.$finishedProcessing)
            return;
        var$2 = $this.$myTCPConnection;
        $ptr = 2;
        continue main;
    case 1:
        nms_NetLoginHandler_initializePlayerConnection($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nles_WorkerNetworkManager_processReadPackets(var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_NetLoginHandler_equals = ($this, $o) => {
    return $o instanceof nms_NetLoginHandler && $o.$hash1 == $this.$hash1 ? 1 : 0;
},
nms_NetLoginHandler_hashCode = $this => {
    return $this.$hash1;
},
nms_NetLoginHandler_kickUser = ($this, $par1Str) => {
    let $var3, var$3, var$4, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        try {
            $var3 = nles_EAGMinecraftServer_getLogAgent($this.$mcServer4);
            var$3 = nms_NetLoginHandler_getUsernameAndAddress($this);
            var$4 = jl_StringBuilder__init_();
            jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(jl_StringBuilder_append(var$4, $rt_s(2036)), var$3), $rt_s(102)), $par1Str);
            nles_EAGLogAgent_logInfo($var3, jl_StringBuilder_toString(var$4));
            $var3 = $this.$myTCPConnection;
            var$3 = nms_Packet255KickDisconnect__init_0($par1Str);
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var3 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Str = new otcic_JSStderrPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Str);
            $par1Str.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$3, 16);
            $par1Str.$sb = var$3;
            $par1Str.$buffer0 = $rt_createCharArray(32);
            $par1Str.$autoFlush = 0;
            $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Str;
        }
        jl_Throwable_printStackTrace($var3, jl_System_errCache);
        return;
    case 1:
        try {
            nles_WorkerNetworkManager_addToSendQueue($var3, var$3);
            if ($rt_suspending()) {
                break main;
            }
            $par1Str = $this.$myTCPConnection;
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var3 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Str = new otcic_JSStderrPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Str);
            $par1Str.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$3, 16);
            $par1Str.$sb = var$3;
            $par1Str.$buffer0 = $rt_createCharArray(32);
            $par1Str.$autoFlush = 0;
            $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Str;
        }
        jl_Throwable_printStackTrace($var3, jl_System_errCache);
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_serverShutdown($par1Str);
                if ($rt_suspending()) {
                    break main;
                }
                $this.$finishedProcessing = 1;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Str = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                var$3.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Str);
                $par1Str.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0(var$3, 16);
                $par1Str.$sb = var$3;
                $par1Str.$buffer0 = $rt_createCharArray(32);
                $par1Str.$autoFlush = 0;
                $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Str;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $var3, var$3, var$4, $ptr);
},
nms_NetLoginHandler_handleClientProtocol = ($this, $par1Packet2ClientProtocol) => {
    let var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Packet2ClientProtocol = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (jl_System_outCache === null) {
            var$2 = new otcic_JSStdoutPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            var$2.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            jl_Object__init_(var$3);
            var$3.$buffer = $rt_createCharArray(16);
            var$2.$sb = var$3;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$2;
        }
        $rt_putStdout("handling client protocol, netloginhandler");
        $rt_putStdout("\n");
        $this.$clientUsername = $par1Packet2ClientProtocol.$username1;
        $var2 = 64 << (3 - $par1Packet2ClientProtocol.$viewDistance1 | 0);
        if ($var2 > 400)
            $var2 = 400;
        $this.$viewDistance0 = ($var2 >> 5) + 2 | 0;
        if (jl_System_outCache === null) {
            var$2 = new otcic_JSStdoutPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            var$2.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            jl_Object__init_(var$3);
            var$3.$buffer = $rt_createCharArray(16);
            var$2.$sb = var$3;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$2;
        }
        var$2 = $this.$clientUsername;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2037));
        $var2 = var$3.$length0;
        if (var$2 === null)
            var$2 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$3, $var2, var$2);
        var$5 = var$3.$length0;
        jl_AbstractStringBuilder_insertSpace(var$3, var$5, var$5 + 1 | 0);
        var$6 = var$3.$buffer;
        var$7 = var$6.data;
        var$7[var$5] = 93;
        var$2 = new jl_String;
        var$5 = var$3.$length0;
        var$8 = var$7.length;
        if (var$5 >= 0 && var$5 <= (var$8 - 0 | 0)) {
            var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$5);
            $rt_putStdout($rt_ustr(var$2));
            $rt_putStdout("\n");
            var$2 = $this.$clientUsername;
            nms_StringUtils_$callClinit();
            var$9 = jur_Matcher__init_(nms_StringUtils_patternControlCode, var$2);
            var$10 = new jl_StringBuffer;
            var$10.$buffer = $rt_createCharArray(16);
            var$9.$leftBound0 = 0;
            var$11 = var$9.$string.$nativeString.length;
            var$9.$rightBound0 = var$11;
            var$3 = var$9.$matchResult;
            var$12 = var$9.$string;
            $var2 = var$9.$leftBound0;
            var$3.$valid = 0;
            var$3.$mode0 = 2;
            var$6 = var$3.$groupBounds.data;
            var$8 = 0;
            var$13 = var$6.length;
            if (var$8 > var$13) {
                $par1Packet2ClientProtocol = new jl_IllegalArgumentException;
                jl_Exception__init_($par1Packet2ClientProtocol);
                $rt_throw($par1Packet2ClientProtocol);
            }
            while (var$8 < var$13) {
                var$14 = var$8 + 1 | 0;
                var$6[var$8] = (-1);
                var$8 = var$14;
            }
            var$6 = var$3.$consumers.data;
            var$8 = 0;
            var$13 = var$6.length;
            if (var$8 > var$13) {
                $par1Packet2ClientProtocol = new jl_IllegalArgumentException;
                jl_Exception__init_($par1Packet2ClientProtocol);
                $rt_throw($par1Packet2ClientProtocol);
            }
            while (var$8 < var$13) {
                var$14 = var$8 + 1 | 0;
                var$6[var$8] = (-1);
                var$8 = var$14;
            }
            if (var$12 !== null)
                var$3.$string0 = var$12;
            if ($var2 >= 0) {
                var$3.$leftBound = $var2;
                var$3.$rightBound = var$11;
            }
            var$3.$startIndex = var$3.$leftBound;
            var$9.$appendPos = 0;
            var$9.$replacement = null;
            var$3.$previousMatch = (-1);
            while (true) {
                if (!jur_Matcher_find(var$9)) {
                    var$3 = var$9.$string;
                    var$3 = jl_String_substring(var$3, var$9.$appendPos, var$3.$nativeString.length);
                    var$8 = var$3.$nativeString.length;
                    jl_StringBuffer_insert(var$10, var$10.$length0, var$3, 0, var$8);
                    var$3 = new jl_String;
                    var$6 = var$10.$buffer;
                    var$7 = var$6.data;
                    var$5 = var$10.$length0;
                    var$8 = var$7.length;
                    if (var$5 >= 0 && var$5 <= (var$8 - 0 | 0)) {
                        var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$5);
                        if (var$2 === var$3)
                            $var2 = 1;
                        else if (!(var$3 instanceof jl_String))
                            $var2 = 0;
                        else {
                            var$3 = var$3;
                            $var2 = var$2.$nativeString !== var$3.$nativeString ? 0 : 1;
                        }
                        if (!$var2) {
                            $par1Packet2ClientProtocol = $rt_s(2038);
                            $ptr = 1;
                            continue main;
                        }
                        $var2 = $rt_compare($par1Packet2ClientProtocol.$protocolVersion, 78);
                        if (!$var2) {
                            $ptr = 2;
                            continue main;
                        }
                        if ($var2 <= 0) {
                            $par1Packet2ClientProtocol = $rt_s(2039);
                            $ptr = 3;
                            continue main;
                        }
                        $par1Packet2ClientProtocol = $rt_s(2040);
                        $ptr = 4;
                        continue main;
                    }
                    $par1Packet2ClientProtocol = new jl_IndexOutOfBoundsException;
                    jl_Exception__init_($par1Packet2ClientProtocol);
                    $rt_throw($par1Packet2ClientProtocol);
                }
                var$9.$processedRepl = jur_Matcher_processReplacement(var$9, $rt_s(3));
                var$3 = var$9.$string;
                $var2 = var$9.$appendPos;
                var$12 = var$9.$matchResult;
                if (!var$12.$valid) {
                    $par1Packet2ClientProtocol = new jl_IllegalStateException;
                    jl_RuntimeException__init_($par1Packet2ClientProtocol);
                    $rt_throw($par1Packet2ClientProtocol);
                }
                if (0 >= var$12.$groupCount) {
                    $par1Packet2ClientProtocol = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_0($par1Packet2ClientProtocol, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 0)));
                    $rt_throw($par1Packet2ClientProtocol);
                }
                var$3 = jl_String_substring(var$3, $var2, var$12.$groupBounds.data[0]);
                var$5 = var$3.$nativeString.length;
                jl_StringBuffer_insert(var$10, var$10.$length0, var$3, 0, var$5);
                var$3 = var$9.$processedRepl;
                jl_AbstractStringBuilder_insert(var$10, var$10.$length0, var$3);
                var$3 = var$9.$matchResult;
                if (!var$3.$valid)
                    break;
                if (0 >= var$3.$groupCount) {
                    $par1Packet2ClientProtocol = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_0($par1Packet2ClientProtocol, jl_StringBuilder_toString(jl_StringBuilder_append0(jl_StringBuilder__init_(), 0)));
                    $rt_throw($par1Packet2ClientProtocol);
                }
                var$9.$appendPos = var$3.$groupBounds.data[1];
            }
            $par1Packet2ClientProtocol = new jl_IllegalStateException;
            jl_RuntimeException__init_($par1Packet2ClientProtocol);
            $rt_throw($par1Packet2ClientProtocol);
        }
        $par1Packet2ClientProtocol = new jl_IndexOutOfBoundsException;
        $par1Packet2ClientProtocol.$suppressionEnabled = 1;
        $par1Packet2ClientProtocol.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Packet2ClientProtocol);
        $rt_throw($par1Packet2ClientProtocol);
    case 1:
        nms_NetLoginHandler_kickUser($this, $par1Packet2ClientProtocol);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_NetLoginHandler_initializePlayerConnection($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_NetLoginHandler_kickUser($this, $par1Packet2ClientProtocol);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_NetLoginHandler_kickUser($this, $par1Packet2ClientProtocol);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet2ClientProtocol, var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_NetLoginHandler_handleClientCommand = ($this, $par1Packet205ClientCommand) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Packet205ClientCommand = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (jl_System_outCache === null) {
            var$2 = new otcic_JSStdoutPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            var$2.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            jl_Object__init_(var$3);
            var$3.$buffer = $rt_createCharArray(16);
            var$2.$sb = var$3;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$2;
        }
        $rt_putStdout("handling client command");
        $rt_putStdout("\n");
        if (!$par1Packet205ClientCommand.$forceRespawn) {
            if (jl_System_outCache === null) {
                $par1Packet205ClientCommand = new otcic_JSStdoutPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                var$2.$buf = $rt_createByteArray(32);
                $par1Packet205ClientCommand.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                jl_Object__init_(var$2);
                var$2.$buffer = $rt_createCharArray(16);
                $par1Packet205ClientCommand.$sb = var$2;
                $par1Packet205ClientCommand.$buffer0 = $rt_createCharArray(32);
                $par1Packet205ClientCommand.$autoFlush = 0;
                $par1Packet205ClientCommand.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $par1Packet205ClientCommand;
            }
            $rt_putStdout("actually handling client command");
            $rt_putStdout("\n");
            if ($this.$field_92079_k) {
                $par1Packet205ClientCommand = $rt_s(2041);
                $ptr = 1;
                continue main;
            }
            $this.$field_92079_k = 1;
            $this.$field_72544_i = 1;
        }
        return;
    case 1:
        nms_NetLoginHandler_kickUser($this, $par1Packet205ClientCommand);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet205ClientCommand, var$2, var$3, $ptr);
},
nms_NetLoginHandler_handleLogin = ($this, $par1Packet1Login) => {
    return;
},
nms_NetLoginHandler_initializePlayerConnection = $this => {
    let $var1, $var2, $fard, var$4, $maxRenderDistance, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$maxRenderDistance = $thread.pop();var$4 = $thread.pop();$fard = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (jl_System_outCache === null) {
            $var1 = new otcic_JSStdoutPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            $var1.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_Object__init_($var2);
            $var2.$buffer = $rt_createCharArray(16);
            $var1.$sb = $var2;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var1;
        }
        a: {
            $rt_putStdout("Init player connection");
            $rt_putStdout("\n");
            $fard = $this.$mcServer4.$serverConfigManager;
            $var1 = $this.$clientUsername;
            $var2 = $fard.$playerEntityList;
            if ($var2.$size0 >= $fard.$maxPlayers)
                $var1 = $rt_s(2042);
            else {
                var$4 = 0;
                $maxRenderDistance = $var2.$modCount;
                var$6 = $var2.$size();
                while (true) {
                    if (!(var$4 >= var$6 ? 0 : 1)) {
                        $var1 = null;
                        break a;
                    }
                    if ($maxRenderDistance < $var2.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                    var$7 = var$4 + 1 | 0;
                    if (jl_String_equalsIgnoreCase(($var2.$get(var$4)).$username, $var1))
                        break;
                    var$4 = var$7;
                }
                $var1 = $rt_s(2043);
            }
        }
        if ($var1 !== null) {
            $ptr = 2;
            continue main;
        }
        $var2 = $this.$mcServer4.$serverConfigManager;
        $var1 = $this.$clientUsername;
        $ptr = 1;
    case 1:
        $tmp = nms_ServerConfigurationManager_createPlayerForUser($var2, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 === null) {
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2044));
            jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(1));
            var$6 = $var1.$length0;
            jl_AbstractStringBuilder_insertSpace($var1, var$6, var$6 + 1 | 0);
            var$8 = $var1.$buffer;
            var$9 = var$8.data;
            var$9[var$6] = 39;
            $var2 = new jl_String;
            var$6 = $var1.$length0;
            var$4 = var$9.length;
            if (var$6 >= 0 && var$6 <= (var$4 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString(var$8.data, 0, var$6);
                $ptr = 3;
                continue main;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var1);
            $rt_throw($var1);
        }
        $fard = $this.$mcServer4.$serverOwner;
        $var1 = $this.$clientUsername;
        if ($fard === $var1)
            $maxRenderDistance = 1;
        else if (!($var1 instanceof jl_String))
            $maxRenderDistance = 0;
        else {
            $var1 = $var1;
            $maxRenderDistance = $fard.$nativeString !== $var1.$nativeString ? 0 : 1;
        }
        if ($maxRenderDistance)
            $var2.$renderDistance = $this.$viewDistance0;
        else {
            $var1 = $this.$mcServer4;
            $fard = $var1.$serverConfigManager;
            var$10 = $var1.$serverOwner;
            $var1 = $fard.$playerEntityList;
            var$11 = 0;
            var$4 = $var1.$modCount;
            var$7 = $var1.$size();
            b: {
                while (true) {
                    if (!(var$11 >= var$7 ? 0 : 1)) {
                        $fard = null;
                        break b;
                    }
                    if (var$4 < $var1.$modCount)
                        break;
                    var$6 = var$11 + 1 | 0;
                    $fard = $var1.$get(var$11);
                    if (jl_String_equalsIgnoreCase($fard.$username, var$10))
                        break b;
                    var$11 = var$6;
                }
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            if ($fard === null)
                $maxRenderDistance = 10;
            else {
                $maxRenderDistance = $fard.$renderDistance;
                if ($maxRenderDistance > 10)
                    $maxRenderDistance = 10;
            }
            var$6 = $this.$viewDistance0;
            if (var$6 > $maxRenderDistance)
                var$6 = $maxRenderDistance;
            $var2.$renderDistance = var$6;
        }
        $fard = $this.$mcServer4.$serverConfigManager;
        $var1 = $this.$myTCPConnection;
        $ptr = 4;
        continue main;
    case 2:
        nms_NetLoginHandler_kickUser($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $this.$finishedProcessing = 1;
        if (jl_System_outCache === null) {
            $var1 = new otcic_JSStdoutPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            $var1.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_Object__init_($var2);
            $var2.$buffer = $rt_createCharArray(16);
            $var1.$sb = $var2;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var1;
        }
        $rt_putStdout($rt_ustr(!$this.$finishedProcessing ? $rt_s(897) : $rt_s(898)));
        $rt_putStdout("\n");
        return;
    case 3:
        nms_NetLoginHandler_kickUser($this, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$finishedProcessing = 1;
        if (jl_System_outCache === null) {
            $var1 = new otcic_JSStdoutPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            $var1.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_Object__init_($var2);
            $var2.$buffer = $rt_createCharArray(16);
            $var1.$sb = $var2;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var1;
        }
        $rt_putStdout($rt_ustr(!$this.$finishedProcessing ? $rt_s(897) : $rt_s(898)));
        $rt_putStdout("\n");
        return;
    case 4:
        nms_ServerConfigurationManager_initializeConnectionToPlayer($fard, $var1, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$finishedProcessing = 1;
        if (jl_System_outCache === null) {
            $var1 = new otcic_JSStdoutPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            $var1.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_Object__init_($var2);
            $var2.$buffer = $rt_createCharArray(16);
            $var1.$sb = $var2;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = $var1;
        }
        $rt_putStdout($rt_ustr(!$this.$finishedProcessing ? $rt_s(897) : $rt_s(898)));
        $rt_putStdout("\n");
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $fard, var$4, $maxRenderDistance, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_NetLoginHandler_handleServerPing = ($this, $par1Packet254ServerPing) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, $var5, $var7, $var6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1Packet254ServerPing = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                try {
                    $var2 = nms_MinecraftServer_getConfigurationManager($this.$mcServer4);
                    $var3 = null;
                    if ($par1Packet254ServerPing.$readSuccessfully != 1) {
                        $par1Packet254ServerPing = nms_MinecraftServer_getMOTD($this.$mcServer4);
                        var$4 = nms_ServerConfigurationManager_getCurrentPlayerCount($var2);
                        var$5 = nms_ServerConfigurationManager_getMaxPlayers($var2);
                        $var2 = jl_StringBuilder__init_();
                        jl_StringBuilder_append0(jl_StringBuilder_append1(jl_StringBuilder_append0(jl_StringBuilder_append1(jl_StringBuilder_append($var2, $par1Packet254ServerPing), 167), var$4), 167), var$5);
                        $var3 = jl_StringBuilder_toString($var2);
                        break b;
                    }
                    var$6 = $rt_createArray(ji_Serializable, 6);
                    var$7 = var$6.data;
                    var$7[0] = jl_Integer_valueOf(1);
                    var$7[1] = jl_Integer_valueOf(78);
                    var$7[2] = nms_MinecraftServer_getMinecraftVersion($this.$mcServer4);
                    var$7[3] = nms_MinecraftServer_getMOTD($this.$mcServer4);
                    var$7[4] = jl_Integer_valueOf(nms_ServerConfigurationManager_getCurrentPlayerCount($var2));
                    var$7[5] = jl_Integer_valueOf(nms_ServerConfigurationManager_getMaxPlayers($var2));
                    $var5 = ju_AbstractList_iterator(ju_Arrays_asList(var$6));
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
                while (true) {
                    try {
                        if (!ju_AbstractList$1_hasNext($var5))
                            break;
                        $var6 = ju_AbstractList$1_next($var5);
                        if ($var3 === null)
                            $par1Packet254ServerPing = $rt_s(2045);
                        else {
                            $par1Packet254ServerPing = jl_StringBuilder__init_();
                            jl_StringBuilder_append1(jl_StringBuilder_append($par1Packet254ServerPing, $var3), 0);
                            $par1Packet254ServerPing = jl_StringBuilder_toString($par1Packet254ServerPing);
                        }
                        $var2 = jl_String_replaceAll($var6.$toString(), $rt_s(2046), $rt_s(3));
                        $var3 = jl_StringBuilder__init_();
                        jl_StringBuilder_append(jl_StringBuilder_append($var3, $par1Packet254ServerPing), $var2);
                        $var3 = jl_StringBuilder_toString($var3);
                        continue;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var7 = $$je;
                            break a;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                        break a;
                    } else {
                        throw $$e;
                    }
                }
            }
            try {
                $par1Packet254ServerPing = $this.$myTCPConnection;
                $var2 = nms_Packet255KickDisconnect__init_0($var3);
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
        }
        if (jl_System_errCache === null) {
            $par1Packet254ServerPing = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Packet254ServerPing);
            $par1Packet254ServerPing.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            $par1Packet254ServerPing.$sb = $var2;
            $par1Packet254ServerPing.$buffer0 = $rt_createCharArray(32);
            $par1Packet254ServerPing.$autoFlush = 0;
            $par1Packet254ServerPing.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Packet254ServerPing;
        }
        jl_Throwable_printStackTrace($var7, jl_System_errCache);
        return;
    case 1:
        try {
            nles_WorkerNetworkManager_addToSendQueue($par1Packet254ServerPing, $var2);
            if ($rt_suspending()) {
                break main;
            }
            $par1Packet254ServerPing = $this.$myTCPConnection;
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var7 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Packet254ServerPing = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Packet254ServerPing);
            $par1Packet254ServerPing.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            $par1Packet254ServerPing.$sb = $var2;
            $par1Packet254ServerPing.$buffer0 = $rt_createCharArray(32);
            $par1Packet254ServerPing.$autoFlush = 0;
            $par1Packet254ServerPing.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Packet254ServerPing;
        }
        jl_Throwable_printStackTrace($var7, jl_System_errCache);
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_serverShutdown($par1Packet254ServerPing);
                if ($rt_suspending()) {
                    break main;
                }
                $this.$finishedProcessing = 1;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Packet254ServerPing = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Packet254ServerPing);
                $par1Packet254ServerPing.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $par1Packet254ServerPing.$sb = $var2;
                $par1Packet254ServerPing.$buffer0 = $rt_createCharArray(32);
                $par1Packet254ServerPing.$autoFlush = 0;
                $par1Packet254ServerPing.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Packet254ServerPing;
            }
            jl_Throwable_printStackTrace($var7, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet254ServerPing, $var2, $var3, var$4, var$5, var$6, var$7, $var5, $var7, $var6, $ptr);
},
nms_NetLoginHandler_unexpectedPacket = ($this, $par1Packet) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1Packet = $rt_s(2047);
        $ptr = 1;
    case 1:
        nms_NetLoginHandler_kickUser($this, $par1Packet);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet, $ptr);
},
nms_NetLoginHandler_getUsernameAndAddress = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$clientUsername;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2048));
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_NetLoginHandler__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nles_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed0 = Long_fromInt(69);
    var$1.$haveNextNextGaussian0 = 0;
    var$1.$seed0 = var$2;
    nms_NetLoginHandler_rand = var$1;
    nms_NetLoginHandler_hashBase = 69696969;
},
ju_ConcurrentModificationException = $rt_classWithoutFields(jl_RuntimeException),
ju_ConcurrentModificationException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
ju_ConcurrentModificationException__init_0 = () => {
    let var_0 = new ju_ConcurrentModificationException();
    ju_ConcurrentModificationException__init_(var_0);
    return var_0;
};
function nms_AABBPool() {
    let a = this; jl_Object.call(a);
    a.$maxNumCleans = 0;
    a.$numEntriesToRemove = 0;
    a.$listAABB = null;
    a.$nextPoolIndex = 0;
    a.$maxPoolIndex = 0;
    a.$numCleans = 0;
}
let nms_AABBPool_cleanPool = $this => {
    let $var1, $var1_0, var$3;
    $var1 = $this.$nextPoolIndex;
    if ($var1 > $this.$maxPoolIndex)
        $this.$maxPoolIndex = $var1;
    $var1_0 = $this.$numCleans;
    $this.$numCleans = $var1_0 + 1 | 0;
    if ($var1_0 == $this.$maxNumCleans) {
        $var1 = $this.$maxPoolIndex;
        $var1_0 = $this.$listAABB.$size0 - $this.$numEntriesToRemove | 0;
        if ($var1 > $var1_0)
            $var1_0 = $var1;
        while (true) {
            var$3 = $this.$listAABB;
            if (var$3.$size0 <= $var1_0)
                break;
            ju_ArrayList_remove(var$3, $var1_0);
        }
        $this.$maxPoolIndex = 0;
        $this.$numCleans = 0;
    }
    $this.$nextPoolIndex = 0;
};
function nms_DerivedWorldInfo() {
    nms_WorldInfo.call(this);
    this.$theWorldInfo = null;
}
let nms_DerivedWorldInfo_getNBTTagCompound = $this => {
    return $this.$theWorldInfo.$getNBTTagCompound();
},
nms_DerivedWorldInfo_cloneNBTCompound = ($this, $par1NBTTagCompound) => {
    return $this.$theWorldInfo.$cloneNBTCompound($par1NBTTagCompound);
},
nms_DerivedWorldInfo_getSeed = $this => {
    return $this.$theWorldInfo.$getSeed();
},
nms_DerivedWorldInfo_getSpawnX = $this => {
    return $this.$theWorldInfo.$getSpawnX();
},
nms_DerivedWorldInfo_getSpawnY = $this => {
    return $this.$theWorldInfo.$getSpawnY();
},
nms_DerivedWorldInfo_getSpawnZ = $this => {
    return $this.$theWorldInfo.$getSpawnZ();
},
nms_DerivedWorldInfo_getWorldTotalTime = $this => {
    return $this.$theWorldInfo.$getWorldTotalTime();
},
nms_DerivedWorldInfo_getWorldTime = $this => {
    return $this.$theWorldInfo.$getWorldTime();
},
nms_DerivedWorldInfo_getPlayerNBTTagCompound = $this => {
    return $this.$theWorldInfo.$getPlayerNBTTagCompound();
},
nms_DerivedWorldInfo_getVanillaDimension = $this => {
    return $this.$theWorldInfo.$getVanillaDimension();
},
nms_DerivedWorldInfo_getWorldName = $this => {
    return $this.$theWorldInfo.$getWorldName();
},
nms_DerivedWorldInfo_isThundering = $this => {
    return $this.$theWorldInfo.$isThundering();
},
nms_DerivedWorldInfo_getThunderTime = $this => {
    return $this.$theWorldInfo.$getThunderTime();
},
nms_DerivedWorldInfo_isRaining = $this => {
    return $this.$theWorldInfo.$isRaining();
},
nms_DerivedWorldInfo_getRainTime = $this => {
    return $this.$theWorldInfo.$getRainTime();
},
nms_DerivedWorldInfo_getGameType = $this => {
    return $this.$theWorldInfo.$getGameType();
},
nms_DerivedWorldInfo_incrementTotalWorldTime = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_setWorldTime = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_setSpawnPosition = ($this, $par1, $par2, $par3) => {
    return;
},
nms_DerivedWorldInfo_setWorldName = ($this, $par1Str) => {
    return;
},
nms_DerivedWorldInfo_setThundering = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_setThunderTime = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_setRaining = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_setRainTime = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_isMapFeaturesEnabled = $this => {
    return $this.$theWorldInfo.$isMapFeaturesEnabled();
},
nms_DerivedWorldInfo_isHardcoreModeEnabled = $this => {
    return $this.$theWorldInfo.$isHardcoreModeEnabled();
},
nms_DerivedWorldInfo_getTerrainType = $this => {
    return $this.$theWorldInfo.$getTerrainType();
},
nms_DerivedWorldInfo_areCommandsAllowed = $this => {
    return $this.$theWorldInfo.$areCommandsAllowed();
},
nms_DerivedWorldInfo_isInitialized = $this => {
    return $this.$theWorldInfo.$isInitialized();
},
nms_DerivedWorldInfo_setServerInitialized = ($this, $par1) => {
    return;
},
nms_DerivedWorldInfo_getGameRulesInstance = $this => {
    return $this.$theWorldInfo.$getGameRulesInstance();
};
function nms_WorldProvider() {
    let a = this; jl_Object.call(a);
    a.$worldObj15 = null;
    a.$terrainType4 = null;
    a.$field_82913_c = null;
    a.$worldChunkMgr = null;
    a.$isHellWorld = 0;
    a.$hasNoSky = 0;
    a.$lightBrightnessTable = null;
    a.$dimensionId = 0;
    a.$colorsSunriseSunset = null;
}
let nms_WorldProvider_moonPhaseFactors = null,
nms_WorldProvider_generateLightBrightnessTable = $this => {
    let $var2, $var3;
    $var2 = 0;
    while ($var2 <= 15) {
        $var3 = 1.0 - $var2 / 15.0;
        $this.$lightBrightnessTable.data[$var2] = (1.0 - $var3) / ($var3 * 3.0 + 1.0) * 1.0 + 0.0;
        $var2 = $var2 + 1 | 0;
    }
},
nms_WorldProvider_registerWorldChunkManager = $this => {
    let $var1, var$2, var$3, var$4;
    if ($this.$worldObj15.$worldInfo.$getTerrainType() !== nms_WorldType_FLAT) {
        $var1 = new nms_WorldChunkManager;
        var$2 = $this.$worldObj15;
        var$3 = var$2.$worldInfo.$getSeed();
        var$2 = var$2.$worldInfo.$getTerrainType();
        nms_WorldChunkManager__init_($var1);
        var$4 = (nms_GenLayer_initializeAllBiomeGenerators(var$3, var$2)).data;
        $var1.$genBiomes = var$4[0];
        $var1.$biomeIndexLayer = var$4[1];
        $this.$worldChunkMgr = $var1;
    } else {
        $var1 = nms_FlatGeneratorInfo_createFlatGeneratorFromString($this.$worldObj15.$worldInfo.$generatorOptions);
        var$2 = new nms_WorldChunkManagerHell;
        nms_BiomeGenBase_$callClinit();
        $var1 = nms_BiomeGenBase_biomeList.data[$var1.$biomeToUse0];
        nms_WorldChunkManager__init_(var$2);
        var$2.$biomeToUse = $var1;
        var$2.$hellTemperature = 0.5;
        var$2.$rainfall0 = 0.5;
        $this.$worldChunkMgr = var$2;
    }
},
nms_WorldProvider_createChunkGenerator = $this => {
    let var$1, var$2;
    if ($this.$terrainType4 !== nms_WorldType_FLAT) {
        var$1 = new nms_ChunkProviderGenerate;
        var$2 = $this.$worldObj15;
        nms_ChunkProviderGenerate__init_(var$1, var$2, var$2.$worldInfo.$getSeed(), $this.$worldObj15.$worldInfo.$isMapFeaturesEnabled());
    } else {
        var$1 = new nms_ChunkProviderFlat;
        var$2 = $this.$worldObj15;
        nms_ChunkProviderFlat__init_(var$1, var$2, var$2.$worldInfo.$getSeed(), $this.$worldObj15.$worldInfo.$isMapFeaturesEnabled(), $this.$field_82913_c);
    }
    return var$1;
},
nms_WorldProvider_canCoordinateBeSpawn = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$worldObj15;
        $var3 = 63;
        var$5 = $var3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$3, $par1, var$5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1) {
            $ptr = 2;
            continue main;
        }
        $var3 = var$5;
        var$5 = $var3 + 1 | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$3, $par1, $var3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        nms_Block_$callClinit();
        return $var3 != nms_Block_grass.$blockID ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $var3, var$5, var$6, $ptr);
},
nms_WorldProvider_calculateCelestialAngle = ($this, $par1, $par3) => {
    let $var5;
    $var5 = (Long_lo(Long_rem($par1, Long_fromInt(24000))) + $par3) / 24000.0 - 0.25;
    if ($var5 < 0.0)
        $var5 = $var5 + 1.0;
    if ($var5 > 1.0)
        $var5 = $var5 - 1.0;
    return $var5 + (1.0 - (jl_Math_cos($var5 * 3.141592653589793) + 1.0) / 2.0 - $var5) / 3.0;
},
nms_WorldProvider_getMoonPhase = ($this, $par1) => {
    return Long_lo(Long_div($par1, Long_fromInt(24000))) % 8 | 0;
},
nms_WorldProvider_isSurfaceWorld = $this => {
    return 1;
},
nms_WorldProvider_canRespawnHere = $this => {
    return 1;
},
nms_WorldProvider_getEntrancePortalLocation = $this => {
    return null;
},
nms_WorldProvider_getAverageGroundLevel = $this => {
    return $this.$terrainType4 !== nms_WorldType_FLAT ? 64 : 4;
},
nms_WorldProvider__clinit_ = () => {
    nms_WorldProvider_moonPhaseFactors = $rt_createFloatArrayFromData([1.0, 0.75, 0.5, 0.25, 0.0, 0.25, 0.5, 0.75]);
};
function nms_SpawnerAnimals() {
    jl_Object.call(this);
    this.$eligibleChunksForSpawning = null;
}
let nms_SpawnerAnimals__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$eligibleChunksForSpawning = var$1;
},
nms_SpawnerAnimals__init_0 = () => {
    let var_0 = new nms_SpawnerAnimals();
    nms_SpawnerAnimals__init_(var_0);
    return var_0;
},
nms_SpawnerAnimals_canCreatureTypeSpawnAtLocation = ($par0EnumCreatureType, $par1World, $par2, $par3, $par4) => {
    let $var5, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$par0EnumCreatureType = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par0EnumCreatureType = $par0EnumCreatureType.$creatureMaterial;
        nms_Material_$callClinit();
        if ($par0EnumCreatureType === nms_Material_water) {
            $ptr = 3;
            continue main;
        }
        $var5 = $par3 - 1 | 0;
        nms_Block_$callClinit();
        var$7 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $var5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $par0EnumCreatureType = var$7[var$8];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $var5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, $par0EnumCreatureType, var$8))
            return 0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            $par0EnumCreatureType = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $par0EnumCreatureType = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (!$par0EnumCreatureType.$isLiquid())
            return 0;
        $var5 = $par3 - 1 | 0;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par2, $var5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 == nms_Block_bedrock.$blockID)
            return 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $par0EnumCreatureType = nms_Block_blocksList.data[$var5];
        if ($par0EnumCreatureType === null)
            $var5 = 0;
        else {
            var$9 = $par0EnumCreatureType.$blockMaterial;
            $var5 = !var$9.$isTranslucent ? var$9.$blocksMovement() : 0;
            $var5 = $var5 && $par0EnumCreatureType.$renderAsNormalBlock() && !$par0EnumCreatureType.$canProvidePower() ? 1 : 0;
        }
        if ($var5)
            return 0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par2, $var5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            $par0EnumCreatureType = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $par0EnumCreatureType = nms_Block_blocksList.data[$var5].$blockMaterial;
        }
        if (!$par0EnumCreatureType.$isLiquid())
            return 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ((!$var5 ? nms_Material_air : nms_Block_blocksList.data[$var5].$blockMaterial).$isLiquid())
            return 0;
        $par3 = $par3 + 1 | 0;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        nms_Block_$callClinit();
        $par0EnumCreatureType = nms_Block_blocksList.data[$par2];
        if ($par0EnumCreatureType === null)
            $par2 = 0;
        else {
            $par1World = $par0EnumCreatureType.$blockMaterial;
            $par2 = !$par1World.$isTranslucent ? $par1World.$blocksMovement() : 0;
            $par2 = $par2 && $par0EnumCreatureType.$renderAsNormalBlock() && !$par0EnumCreatureType.$canProvidePower() ? 1 : 0;
        }
        return $par2 ? 0 : 1;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $par0EnumCreatureType = nms_Block_blocksList.data[$par2];
        if ($par0EnumCreatureType === null)
            $par2 = 0;
        else {
            $par1World = $par0EnumCreatureType.$blockMaterial;
            $par2 = !$par1World.$isTranslucent ? $par1World.$blocksMovement() : 0;
            $par2 = $par2 && $par0EnumCreatureType.$renderAsNormalBlock() && !$par0EnumCreatureType.$canProvidePower() ? 1 : 0;
        }
        return $par2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0EnumCreatureType, $par1World, $par2, $par3, $par4, $var5, var$7, var$8, var$9, $ptr);
},
nms_ServerBlockEventList = $rt_classWithoutFields(ju_ArrayList),
nms_ServerBlockEventList__init_ = $this => {
    $this.$array = $rt_createArray(jl_Object, 10);
},
nms_ServerBlockEventList__init_0 = () => {
    let var_0 = new nms_ServerBlockEventList();
    nms_ServerBlockEventList__init_(var_0);
    return var_0;
},
nms_ServerBlockEvent = $rt_classWithoutFields(),
nms_ServerBlockEvent__init_ = $this => {
    return;
},
nms_ServerBlockEvent__init_0 = () => {
    let var_0 = new nms_ServerBlockEvent();
    nms_ServerBlockEvent__init_(var_0);
    return var_0;
};
function nms_EntityTracker() {
    let a = this; jl_Object.call(a);
    a.$theWorld6 = null;
    a.$trackedEntities = null;
    a.$trackedEntityIDs = null;
    a.$entityViewDistance = 0;
}
let nms_EntityTracker_addEntityToTracker0 = ($this, $par1Entity) => {
    let var$2, var$3, var$4, $var2, $var4, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Entity instanceof nms_EntityPlayerMP) {
            var$2 = 512;
            var$3 = 2;
            var$4 = 0;
            $ptr = 1;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityFishHook) {
            var$2 = 64;
            var$3 = 5;
            var$4 = 1;
            $ptr = 2;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityArrow) {
            var$2 = 64;
            var$3 = 20;
            var$4 = 0;
            $ptr = 3;
            continue main;
        }
        if ($par1Entity instanceof nms_EntitySmallFireball) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 0;
            $ptr = 4;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityFireball) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 0;
            $ptr = 5;
            continue main;
        }
        if ($par1Entity instanceof nms_EntitySnowball) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 1;
            $ptr = 7;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityEnderPearl) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 1;
            $ptr = 8;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityEnderEye) {
            var$2 = 64;
            var$3 = 4;
            var$4 = 1;
            $ptr = 9;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityEgg) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 1;
            $ptr = 10;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityPotion) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 1;
            $ptr = 11;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityExpBottle) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 1;
            $ptr = 12;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityFireworkRocket) {
            var$2 = 64;
            var$3 = 10;
            var$4 = 1;
            $ptr = 13;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityItem) {
            var$2 = 64;
            var$3 = 20;
            var$4 = 1;
            $ptr = 14;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityMinecart) {
            var$2 = 80;
            var$3 = 3;
            var$4 = 1;
            $ptr = 15;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityBoat) {
            var$2 = 80;
            var$3 = 3;
            var$4 = 1;
            $ptr = 16;
            continue main;
        }
        if ($par1Entity instanceof nms_EntitySquid) {
            var$2 = 64;
            var$3 = 3;
            var$4 = 1;
            $ptr = 17;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityWither) {
            var$2 = 80;
            var$3 = 3;
            var$4 = 0;
            $ptr = 18;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityBat) {
            var$2 = 80;
            var$3 = 3;
            var$4 = 0;
            $ptr = 19;
            continue main;
        }
        if ($rt_isInstance($par1Entity, nms_IAnimals)) {
            var$2 = 80;
            var$3 = 3;
            var$4 = 1;
            $ptr = 20;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityDragon) {
            var$2 = 160;
            var$3 = 3;
            var$4 = 1;
            $ptr = 21;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityTNTPrimed) {
            var$2 = 160;
            var$3 = 10;
            var$4 = 1;
            $ptr = 22;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityFallingSand) {
            var$2 = 160;
            var$3 = 20;
            var$4 = 1;
            $ptr = 23;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityHanging) {
            var$2 = 160;
            var$3 = 2147483647;
            var$4 = 0;
            $ptr = 24;
            continue main;
        }
        if ($par1Entity instanceof nms_EntityXPOrb) {
            var$2 = 160;
            var$3 = 20;
            var$4 = 1;
            $ptr = 25;
            continue main;
        }
        if (!($par1Entity instanceof nms_EntityEnderCrystal))
            return;
        var$2 = 256;
        var$3 = 2147483647;
        var$4 = 0;
        $ptr = 26;
        continue main;
    case 1:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $par1Entity;
        $par1Entity = $this.$trackedEntities.$backingMap;
        if ($par1Entity.$cachedKeySet === null) {
            $var4 = new ju_HashMap$1;
            $var4.$this$0 = $par1Entity;
            $par1Entity.$cachedKeySet = $var4;
        }
        $var3 = $par1Entity.$cachedKeySet.$iterator();
        while ($var3.$hasNext()) {
            $var4 = $var3.$next();
            if ($var4.$myEntity !== $var2) {
                $ptr = 6;
                continue main;
            }
        }
        return;
    case 2:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_EntityTrackerEntry_tryStartWachingThis($var4, $var2);
        if ($rt_suspending()) {
            break main;
        }
        while ($var3.$hasNext()) {
            $var4 = $var3.$next();
            if ($var4.$myEntity === $var2)
                continue;
            else {
                continue main;
            }
        }
        return;
    case 7:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 11:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 12:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 13:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 14:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 15:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 16:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 17:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 18:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 19:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 20:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 21:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 22:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 23:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 24:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 25:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 26:
        nms_EntityTracker_addEntityToTracker($this, $par1Entity, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, $var2, $var4, $var3, $ptr);
},
nms_EntityTracker_addEntityToTracker = ($this, $par1Entity, $par2, $par3, $par4) => {
    let var$5, $var5, $var10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$entityViewDistance;
        if ($par2 <= var$5)
            var$5 = $par2;
        try {
            if (nms_IntHashMap_containsItem($this.$trackedEntityIDs, $par1Entity.$entityId))
                $rt_throw(jl_IllegalStateException__init_1($rt_s(2049)));
            $var5 = nms_EntityTrackerEntry__init_($par1Entity, var$5, $par3, $par4);
            ju_HashSet_add($this.$trackedEntities, $var5);
            nms_IntHashMap_addKey($this.$trackedEntityIDs, $par1Entity.$entityId, $var5);
            $par1Entity = $this.$theWorld6.$playerEntities;
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var10 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Entity = new otcic_JSStderrPrintStream;
            $var5 = new ji_ByteArrayOutputStream;
            $var5.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Entity);
            $par1Entity.$out0 = $var5;
            $var5 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var5, 16);
            $par1Entity.$sb = $var5;
            $par1Entity.$buffer0 = $rt_createCharArray(32);
            $par1Entity.$autoFlush = 0;
            $par1Entity.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Entity;
        }
        jl_Throwable_printStackTrace($var10, jl_System_errCache);
        return;
    case 1:
        a: {
            try {
                nms_EntityTrackerEntry_sendEventsToPlayers($var5, $par1Entity);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var10 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Entity = new otcic_JSStderrPrintStream;
                $var5 = new ji_ByteArrayOutputStream;
                $var5.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Entity);
                $par1Entity.$out0 = $var5;
                $var5 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var5, 16);
                $par1Entity.$sb = $var5;
                $par1Entity.$buffer0 = $rt_createCharArray(32);
                $par1Entity.$autoFlush = 0;
                $par1Entity.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Entity;
            }
            jl_Throwable_printStackTrace($var10, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par3, $par4, var$5, $var5, $var10, $ptr);
},
nms_EntityTracker_removeEntityFromAllTrackingPlayers = ($this, $par1Entity) => {
    let $var2, $var5, $var4, $var3, var$6, var$7, var$8;
    a: {
        if ($par1Entity instanceof nms_EntityPlayerMP) {
            $var2 = $par1Entity;
            $var5 = $this.$trackedEntities.$backingMap;
            if ($var5.$cachedKeySet === null) {
                $var4 = new ju_HashMap$1;
                $var4.$this$0 = $var5;
                $var5.$cachedKeySet = $var4;
            }
            $var3 = $var5.$cachedKeySet.$iterator();
            while (true) {
                if (!$var3.$hasNext())
                    break a;
                $var4 = $var3.$next();
                if (ju_HashSet_contains($var4.$trackingPlayers, $var2)) {
                    $var5 = $var2.$destroyedItemsNetCache;
                    var$6 = $var4.$myEntity.$entityId;
                    if (var$6 >= (-128) && var$6 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[var$6 + 128 | 0];
                    } else {
                        var$7 = new jl_Integer;
                        var$7.$value = var$6;
                    }
                    var$8 = $var5.$size2;
                    if (var$8 < 0)
                        break;
                    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var5, var$8), var$7);
                    $var5 = ju_HashMap_removeByKey($var4.$trackingPlayers.$backingMap, $var2);
                }
            }
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            $rt_throw($par1Entity);
        }
    }
    $var5 = $this.$trackedEntityIDs;
    var$8 = $par1Entity.$entityId;
    $par1Entity = $var5.$keySet0;
    if (var$8 >= (-128) && var$8 <= 127) {
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[var$8 + 128 | 0];
    } else {
        $var2 = new jl_Integer;
        $var2.$value = var$8;
    }
    $par1Entity = ju_HashMap_removeByKey($par1Entity.$backingMap, $var2);
    $par1Entity = nms_IntHashMap_removeEntry($var5, var$8);
    $var5 = $par1Entity !== null ? $par1Entity.$valueEntry : null;
    if ($var5 !== null) {
        $par1Entity = ju_HashMap_removeByKey($this.$trackedEntities.$backingMap, $var5);
        $par1Entity = $var5.$trackingPlayers.$backingMap;
        if ($par1Entity.$cachedKeySet === null) {
            $var2 = new ju_HashMap$1;
            $var2.$this$0 = $par1Entity;
            $par1Entity.$cachedKeySet = $var2;
        }
        $var4 = $par1Entity.$cachedKeySet.$iterator();
        while ($var4.$hasNext()) {
            $par1Entity = ($var4.$next()).$destroyedItemsNetCache;
            var$8 = $var5.$myEntity.$entityId;
            if (var$8 >= (-128) && var$8 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var2 = jl_Integer_integerCache.data[var$8 + 128 | 0];
            } else {
                $var2 = new jl_Integer;
                $var2.$value = var$8;
            }
            var$8 = $par1Entity.$size2;
            if (var$8 < 0) {
                $par1Entity = new jl_IndexOutOfBoundsException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1Entity, var$8), $var2);
        }
    }
},
nms_EntityTracker_updateTrackedEntities = $this => {
    let $var1, $var5, $var7, $var2, $var3, $var6, var$7, $var4, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = new ju_ArrayList;
        $var1.$array = $rt_createArray(jl_Object, 10);
        $var5 = $this.$trackedEntities.$backingMap;
        if ($var5.$cachedKeySet === null) {
            $var7 = new ju_HashMap$1;
            $var7.$this$0 = $var5;
            $var5.$cachedKeySet = $var7;
        }
        $var2 = $var5.$cachedKeySet.$iterator();
        if ($var2.$hasNext()) {
            $var3 = $var2.$next();
            $var5 = $this.$theWorld6.$playerEntities;
            $ptr = 1;
            continue main;
        }
        $var6 = 0;
        a: {
            while (true) {
                var$7 = $rt_compare($var6, $var1.$size0);
                if (var$7 >= 0)
                    break;
                if ($var6 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                $var7 = $var1.$array.data[$var6];
                $var3 = $this.$trackedEntities.$backingMap;
                if ($var3.$cachedKeySet === null) {
                    $var5 = new ju_HashMap$1;
                    $var5.$this$0 = $var3;
                    $var3.$cachedKeySet = $var5;
                }
                $var4 = $var3.$cachedKeySet.$iterator();
                while ($var4.$hasNext()) {
                    $var5 = $var4.$next();
                    if ($var5.$myEntity !== $var7) {
                        $ptr = 2;
                        continue main;
                    }
                }
                $var6 = $var6 + 1 | 0;
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        nms_EntityTrackerEntry_sendLocationToAllClients($var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        if ($var3.$playerEntitiesUpdated) {
            $var5 = $var3.$myEntity;
            if ($var5 instanceof nms_EntityPlayerMP) {
                $var5 = $var5;
                ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
                var$9 = $var1.$array.data;
                var$7 = $var1.$size0;
                $var1.$size0 = var$7 + 1 | 0;
                var$9[var$7] = $var5;
                $var1.$modCount = $var1.$modCount + 1 | 0;
            }
        }
        if ($var2.$hasNext()) {
            $var3 = $var2.$next();
            $var5 = $this.$theWorld6.$playerEntities;
            continue main;
        }
        $var6 = 0;
        a: {
            while (true) {
                var$7 = $rt_compare($var6, $var1.$size0);
                if (var$7 >= 0)
                    break;
                if ($var6 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                $var7 = $var1.$array.data[$var6];
                $var3 = $this.$trackedEntities.$backingMap;
                if ($var3.$cachedKeySet === null) {
                    $var5 = new ju_HashMap$1;
                    $var5.$this$0 = $var3;
                    $var3.$cachedKeySet = $var5;
                }
                $var4 = $var3.$cachedKeySet.$iterator();
                while ($var4.$hasNext()) {
                    $var5 = $var4.$next();
                    if ($var5.$myEntity !== $var7) {
                        $ptr = 2;
                        continue main;
                    }
                }
                $var6 = $var6 + 1 | 0;
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 2:
        nms_EntityTrackerEntry_tryStartWachingThis($var5, $var7);
        if ($rt_suspending()) {
            break main;
        }
        b: {
            c: while (true) {
                while (!$var4.$hasNext()) {
                    $var6 = $var6 + 1 | 0;
                    var$7 = $rt_compare($var6, $var1.$size0);
                    if (var$7 >= 0)
                        break c;
                    if ($var6 < 0)
                        break b;
                    if (var$7 >= 0)
                        break b;
                    $var7 = $var1.$array.data[$var6];
                    $var3 = $this.$trackedEntities.$backingMap;
                    if ($var3.$cachedKeySet === null) {
                        $var5 = new ju_HashMap$1;
                        $var5.$this$0 = $var3;
                        $var3.$cachedKeySet = $var5;
                    }
                    $var4 = $var3.$cachedKeySet.$iterator();
                }
                $var5 = $var4.$next();
                if ($var5.$myEntity === $var7)
                    continue;
                else {
                    continue main;
                }
            }
            return;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var5, $var7, $var2, $var3, $var6, var$7, $var4, var$9, $ptr);
},
nms_EntityTracker_func_85172_a = ($this, $par1EntityPlayerMP, $par2Chunk) => {
    let $var4, var$4, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2Chunk = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $this.$trackedEntities.$backingMap;
        if ($var4.$cachedKeySet === null) {
            var$4 = new ju_HashMap$1;
            var$4.$this$0 = $var4;
            $var4.$cachedKeySet = var$4;
        }
        $var3 = $var4.$cachedKeySet.$iterator();
        while ($var3.$hasNext()) {
            $var4 = $var3.$next();
            var$4 = $var4.$myEntity;
            if (var$4 !== $par1EntityPlayerMP && var$4.$chunkCoordX == $par2Chunk.$xPosition0 && var$4.$chunkCoordZ == $par2Chunk.$zPosition0) {
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityTrackerEntry_tryStartWachingThis($var4, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        while ($var3.$hasNext()) {
            $var4 = $var3.$next();
            var$4 = $var4.$myEntity;
            if (var$4 === $par1EntityPlayerMP)
                continue;
            if (var$4.$chunkCoordX != $par2Chunk.$xPosition0)
                continue;
            if (var$4.$chunkCoordZ != $par2Chunk.$zPosition0)
                continue;
            else {
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $par2Chunk, $var4, var$4, $var3, $ptr);
};
function nms_PlayerManager() {
    let a = this; jl_Object.call(a);
    a.$theWorldServer0 = null;
    a.$players = null;
    a.$playerInstances = null;
    a.$chunkWatcherWithPlayers = null;
    a.$playerInstanceList = null;
    a.$playerViewRadius = 0;
    a.$previousTotalWorldTime = Long_ZERO;
    a.$xzDirectionsConst = null;
}
let nms_PlayerManager__init_0 = ($this, $par1WorldServer, $par2) => {
    let var$3;
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$players = var$3;
    var$3 = new nms_LongHashMap;
    var$3.$hashArray = $rt_createArray(nms_LongHashMapEntry, 16);
    var$3.$capacity0 = 12;
    var$3.$percentUseable = 0.75;
    $this.$playerInstances = var$3;
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$chunkWatcherWithPlayers = var$3;
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$playerInstanceList = var$3;
    $this.$xzDirectionsConst = $rt_wrapArray($rt_arraycls($rt_intcls), [$rt_createIntArrayFromData([1, 0]), $rt_createIntArrayFromData([0, 1]), $rt_createIntArrayFromData([(-1), 0]), $rt_createIntArrayFromData([0, (-1)])]);
    if ($par2 > 15) {
        $par1WorldServer = new jl_IllegalArgumentException;
        $par1WorldServer.$suppressionEnabled = 1;
        $par1WorldServer.$writableStackTrace = 1;
        $par1WorldServer.$message = $rt_s(2050);
        $rt_throw($par1WorldServer);
    }
    if ($par2 >= 3) {
        $this.$playerViewRadius = $par2;
        $this.$theWorldServer0 = $par1WorldServer;
        return;
    }
    $par1WorldServer = new jl_IllegalArgumentException;
    $par1WorldServer.$suppressionEnabled = 1;
    $par1WorldServer.$writableStackTrace = 1;
    $par1WorldServer.$message = $rt_s(2051);
    $rt_throw($par1WorldServer);
},
nms_PlayerManager__init_ = (var_0, var_1) => {
    let var_2 = new nms_PlayerManager();
    nms_PlayerManager__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_PlayerManager_updatePlayerInstances = $this => {
    let $var1, $var3, $var4, var$4, var$5, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var1 = $this.$theWorldServer0.$worldInfo.$getWorldTotalTime();
            if (Long_le(Long_sub($var1, $this.$previousTotalWorldTime), Long_fromInt(8000))) {
                $var3 = 0;
                $var4 = $this.$chunkWatcherWithPlayers;
                var$4 = $rt_compare($var3, $var4.$size0);
                if (var$4 >= 0)
                    break a;
                if ($var3 >= 0 && var$4 < 0) {
                    $var4 = $var4.$array.data[$var3];
                    $ptr = 1;
                    continue main;
                }
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            $this.$previousTotalWorldTime = $var1;
            $var3 = 0;
            $var4 = $this.$playerInstanceList;
            var$4 = $rt_compare($var3, $var4.$size0);
            if (var$4 < 0) {
                if ($var3 >= 0 && var$4 < 0) {
                    $var4 = $var4.$array.data[$var3];
                    $ptr = 2;
                    continue main;
                }
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
        }
        $var4 = $this.$chunkWatcherWithPlayers;
        var$5 = $var4.$array;
        $var3 = 0;
        var$4 = $var4.$size0;
        $var5 = null;
        if ($var3 > var$4) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        while ($var3 < var$4) {
            var$7 = var$5.data;
            var$8 = $var3 + 1 | 0;
            var$7[$var3] = $var5;
            $var3 = var$8;
        }
        $var4.$size0 = 0;
        $var4.$modCount = $var4.$modCount + 1 | 0;
        $var3 = $this.$players.$size0 ? 0 : 1;
        if ($var3 && !$this.$theWorldServer0.$provider.$canRespawnHere()) {
            $var4 = $this.$theWorldServer0.$theChunkProviderServer;
            $var5 = $var4.$loadedChunks0;
            var$4 = 0;
            var$9 = $var5.$modCount;
            var$10 = $var5.$size();
            while (var$4 >= var$10 ? 0 : 1) {
                if (var$9 < $var5.$modCount) {
                    $var4 = new ju_ConcurrentModificationException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
                var$8 = var$4 + 1 | 0;
                var$11 = $var5.$get(var$4);
                nms_ChunkProviderServer_unloadChunksIfNotNearSpawn($var4, var$11.$xPosition0, var$11.$zPosition0);
                var$4 = var$8;
            }
        }
        return;
    case 1:
        nms_PlayerInstance_sendChunkUpdate($var4);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var3 + 1 | 0;
        $var4 = $this.$chunkWatcherWithPlayers;
        var$4 = $rt_compare($var3, $var4.$size0);
        if (var$4 >= 0) {
            $var4 = $this.$chunkWatcherWithPlayers;
            var$5 = $var4.$array;
            $var3 = 0;
            var$4 = $var4.$size0;
            $var5 = null;
            if ($var3 > var$4) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            while ($var3 < var$4) {
                var$7 = var$5.data;
                var$8 = $var3 + 1 | 0;
                var$7[$var3] = $var5;
                $var3 = var$8;
            }
            $var4.$size0 = 0;
            $var4.$modCount = $var4.$modCount + 1 | 0;
            $var3 = $this.$players.$size0 ? 0 : 1;
            if ($var3 && !$this.$theWorldServer0.$provider.$canRespawnHere()) {
                $var4 = $this.$theWorldServer0.$theChunkProviderServer;
                $var5 = $var4.$loadedChunks0;
                var$4 = 0;
                var$9 = $var5.$modCount;
                var$10 = $var5.$size();
                while (var$4 >= var$10 ? 0 : 1) {
                    if (var$9 < $var5.$modCount) {
                        $var4 = new ju_ConcurrentModificationException;
                        $var4.$suppressionEnabled = 1;
                        $var4.$writableStackTrace = 1;
                        $rt_throw($var4);
                    }
                    var$8 = var$4 + 1 | 0;
                    var$11 = $var5.$get(var$4);
                    nms_ChunkProviderServer_unloadChunksIfNotNearSpawn($var4, var$11.$xPosition0, var$11.$zPosition0);
                    var$4 = var$8;
                }
            }
            return;
        }
        if ($var3 >= 0 && var$4 < 0) {
            $var4 = $var4.$array.data[$var3];
            continue main;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    case 2:
        nms_PlayerInstance_sendChunkUpdate($var4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $var4.$thePlayerManager.$theWorldServer0;
        $var5 = $var4.$chunkLocation;
        var$4 = $var5.$chunkXPos;
        var$9 = $var5.$chunkZPos;
        $var5 = var$11.$chunkProvider;
        var$11 = $var5.$loadedChunkHashMap;
        var$12 = Long_or(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), 32));
        var$8 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
        var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
        var$13 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
        var$5 = var$11.$hashArray.data;
        var$11 = var$5[var$13 & (var$5.length - 1 | 0)];
        b: {
            while (var$11 !== null) {
                if (Long_eq(var$11.$key1, var$12)) {
                    var$11 = var$11.$value4;
                    break b;
                }
                var$11 = var$11.$nextEntry;
            }
            var$11 = null;
        }
        c: {
            var$11 = var$11;
            if (var$11 === null) {
                if ($var5.$worldObj0.$findingSpawnPoint)
                    break c;
                if ($var5.$loadChunkOnProvideRequest)
                    break c;
                var$11 = $var5.$defaultEmptyChunk;
            }
            var$11.$inhabitedTime = Long_add(var$11.$inhabitedTime, Long_sub($var4.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime(), $var4.$previousWorldTime));
            $var4.$previousWorldTime = $var4.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime();
            $var3 = $var3 + 1 | 0;
            $var4 = $this.$playerInstanceList;
            var$4 = $rt_compare($var3, $var4.$size0);
            if (var$4 >= 0) {
                $var4 = $this.$chunkWatcherWithPlayers;
                var$5 = $var4.$array;
                $var3 = 0;
                var$4 = $var4.$size0;
                $var5 = null;
                if ($var3 > var$4) {
                    $var4 = new jl_IllegalArgumentException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
                while ($var3 < var$4) {
                    var$7 = var$5.data;
                    var$8 = $var3 + 1 | 0;
                    var$7[$var3] = $var5;
                    $var3 = var$8;
                }
                $var4.$size0 = 0;
                $var4.$modCount = $var4.$modCount + 1 | 0;
                $var3 = $this.$players.$size0 ? 0 : 1;
                if ($var3 && !$this.$theWorldServer0.$provider.$canRespawnHere()) {
                    $var4 = $this.$theWorldServer0.$theChunkProviderServer;
                    $var5 = $var4.$loadedChunks0;
                    var$4 = 0;
                    var$9 = $var5.$modCount;
                    var$10 = $var5.$size();
                    while (var$4 >= var$10 ? 0 : 1) {
                        if (var$9 < $var5.$modCount) {
                            $var4 = new ju_ConcurrentModificationException;
                            $var4.$suppressionEnabled = 1;
                            $var4.$writableStackTrace = 1;
                            $rt_throw($var4);
                        }
                        var$8 = var$4 + 1 | 0;
                        var$11 = $var5.$get(var$4);
                        nms_ChunkProviderServer_unloadChunksIfNotNearSpawn($var4, var$11.$xPosition0, var$11.$zPosition0);
                        var$4 = var$8;
                    }
                }
                return;
            }
            if ($var3 >= 0 && var$4 < 0) {
                $var4 = $var4.$array.data[$var3];
                continue main;
            }
            $var4 = new jl_IndexOutOfBoundsException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $ptr = 3;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk($var5, var$4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        var$11.$inhabitedTime = Long_add(var$11.$inhabitedTime, Long_sub($var4.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime(), $var4.$previousWorldTime));
        $var4.$previousWorldTime = $var4.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime();
        $var3 = $var3 + 1 | 0;
        $var4 = $this.$playerInstanceList;
        var$4 = $rt_compare($var3, $var4.$size0);
        if (var$4 >= 0) {
            $var4 = $this.$chunkWatcherWithPlayers;
            var$5 = $var4.$array;
            $var3 = 0;
            var$4 = $var4.$size0;
            $var5 = null;
            if ($var3 > var$4) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            while ($var3 < var$4) {
                var$7 = var$5.data;
                var$8 = $var3 + 1 | 0;
                var$7[$var3] = $var5;
                $var3 = var$8;
            }
            $var4.$size0 = 0;
            $var4.$modCount = $var4.$modCount + 1 | 0;
            $var3 = $this.$players.$size0 ? 0 : 1;
            if ($var3 && !$this.$theWorldServer0.$provider.$canRespawnHere()) {
                $var4 = $this.$theWorldServer0.$theChunkProviderServer;
                $var5 = $var4.$loadedChunks0;
                var$4 = 0;
                var$9 = $var5.$modCount;
                var$10 = $var5.$size();
                while (var$4 >= var$10 ? 0 : 1) {
                    if (var$9 < $var5.$modCount) {
                        $var4 = new ju_ConcurrentModificationException;
                        $var4.$suppressionEnabled = 1;
                        $var4.$writableStackTrace = 1;
                        $rt_throw($var4);
                    }
                    var$8 = var$4 + 1 | 0;
                    var$11 = $var5.$get(var$4);
                    nms_ChunkProviderServer_unloadChunksIfNotNearSpawn($var4, var$11.$xPosition0, var$11.$zPosition0);
                    var$4 = var$8;
                }
            }
            return;
        }
        if ($var3 >= 0 && var$4 < 0) {
            $var4 = $var4.$array.data[$var3];
            $ptr = 2;
            continue main;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var3, $var4, var$4, var$5, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_PlayerManager_getOrCreateChunkWatcher = ($this, $par1, $par2, $par3) => {
    let $var4, $var6, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = Long_or(Long_add(Long_fromInt($par1), Long_fromInt(2147483647)), Long_shl(Long_add(Long_fromInt($par2), Long_fromInt(2147483647)), 32));
        $var6 = $this.$playerInstances;
        var$6 = Long_lo(Long_xor($var4, Long_shru($var4, 32)));
        var$6 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        var$6 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
        var$7 = $var6.$hashArray.data;
        $var6 = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while ($var6 !== null) {
                if (Long_eq($var6.$key1, $var4)) {
                    $var6 = $var6.$value4;
                    break a;
                }
                $var6 = $var6.$nextEntry;
            }
            $var6 = null;
        }
        $var6 = $var6;
        if ($var6 === null && $par3) {
            $var6 = new nms_PlayerInstance;
            $var6.$thePlayerManager = $this;
            var$8 = new ju_ArrayList;
            var$8.$array = $rt_createArray(jl_Object, 10);
            $var6.$playersInChunk = var$8;
            $var6.$locationOfBlockChange = $rt_createShortArray(64);
            var$8 = new nms_ChunkCoordIntPair;
            var$8.$chunkXPos = $par1;
            var$8.$chunkZPos = $par2;
            $var6.$chunkLocation = var$8;
            var$8 = $this.$theWorldServer0.$theChunkProviderServer;
            $ptr = 1;
            continue main;
        }
        return $var6;
    case 1:
        nms_ChunkProviderServer_loadChunk(var$8, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        nms_LongHashMap_add($this.$playerInstances, $var4, $var6);
        var$8 = $this.$playerInstanceList;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        $par2 = var$8.$size0;
        var$8.$size0 = $par2 + 1 | 0;
        var$7[$par2] = $var6;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var6, var$6, var$7, var$8, $ptr);
},
nms_PlayerManager_addPlayer = ($this, $par1EntityPlayerMP) => {
    let var$2, $var2, var$4, $var3, $var4, var$7, var$8, var$9, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayerMP.$posX;
        $var2 = (var$2 | 0) >> 4;
        var$4 = $par1EntityPlayerMP.$posZ;
        $var3 = (var$4 | 0) >> 4;
        $par1EntityPlayerMP.$managedPosX = var$2;
        $par1EntityPlayerMP.$managedPosZ = var$4;
        $var4 = $var2 - $this.$playerViewRadius | 0;
        while (true) {
            var$7 = $this.$playerViewRadius;
            if ($var4 > ($var2 + var$7 | 0)) {
                var$8 = $this.$players;
                ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
                var$9 = var$8.$array.data;
                $var2 = var$8.$size0;
                var$8.$size0 = $var2 + 1 | 0;
                var$9[$var2] = $par1EntityPlayerMP;
                var$8.$modCount = var$8.$modCount + 1 | 0;
                $ptr = 1;
                continue main;
            }
            $var5 = $var3 - var$7 | 0;
            if ($var5 <= ($var3 + $this.$playerViewRadius | 0))
                break;
            $var4 = $var4 + 1 | 0;
        }
        var$7 = 1;
        $ptr = 2;
        continue main;
    case 1:
        nms_PlayerManager_filterChunkLoadQueue($this, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, $var4, $var5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_PlayerInstance_addPlayer(var$8, $par1EntityPlayerMP);
        $var5 = $var5 + 1 | 0;
        while ($var5 > ($var3 + $this.$playerViewRadius | 0)) {
            $var4 = $var4 + 1 | 0;
            var$7 = $this.$playerViewRadius;
            if ($var4 > ($var2 + var$7 | 0)) {
                var$8 = $this.$players;
                ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
                var$9 = var$8.$array.data;
                $var2 = var$8.$size0;
                var$8.$size0 = $var2 + 1 | 0;
                var$9[$var2] = $par1EntityPlayerMP;
                var$8.$modCount = var$8.$modCount + 1 | 0;
                $ptr = 1;
                continue main;
            }
            $var5 = $var3 - var$7 | 0;
        }
        var$7 = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, var$2, $var2, var$4, $var3, $var4, var$7, var$8, var$9, $var5, $ptr);
},
nms_PlayerManager_filterChunkLoadQueue = ($this, $par1EntityPlayerMP) => {
    let $var2, var$3, var$4, $var9, var$6, var$7, $var12, $var13, $var3, $var4, $var5, $var6, $var7, $var8, var$16, var$17, var$18, $var10, var$20, $var11, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();$var11 = $thread.pop();var$20 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var9 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayerMP
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = new ju_ArrayList;
        var$3 = $par1EntityPlayerMP.$loadedChunks;
        var$4 = var$3.$size2;
        if (var$4 < 0) {
            $par1EntityPlayerMP = new jl_IllegalArgumentException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        $var2.$array = $rt_createArray(jl_Object, var$4);
        $var9 = new ju_LinkedList$SequentialListIterator;
        var$6 = var$3.$firstEntry;
        var$7 = null;
        $var9.$this$02 = var$3;
        $var9.$version = var$3.$modCount;
        $var9.$nextEntry1 = var$6;
        $var9.$prevEntry = var$7;
        $var9.$index4 = 0;
        var$4 = 0;
        while (true) {
            $var12 = $var2.$array.data;
            $var13 = $var12.length;
            if (var$4 >= $var13)
                break;
            $var12[var$4] = ju_LinkedList$SequentialListIterator_next($var9);
            var$4 = var$4 + 1 | 0;
        }
        $var2.$size0 = $var13;
        $var3 = 0;
        $var4 = $this.$playerViewRadius;
        $var5 = ($par1EntityPlayerMP.$posX | 0) >> 4;
        $var6 = ($par1EntityPlayerMP.$posZ | 0) >> 4;
        $var7 = 0;
        $var8 = 0;
        var$4 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, $var5, $var6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $var9 = var$3.$chunkLocation;
        var$7 = $par1EntityPlayerMP.$loadedChunks;
        var$7.$firstEntry = null;
        var$7.$lastEntry = null;
        var$7.$size2 = 0;
        var$7.$modCount = var$7.$modCount + 1 | 0;
        var$16 = 0;
        var$17 = $var2.$modCount;
        var$18 = $var2.$size();
        a: {
            while (true) {
                if (!(var$16 >= var$18 ? 0 : 1)) {
                    var$4 = 0;
                    break a;
                }
                if (var$17 < $var2.$modCount)
                    break;
                $var13 = var$16 + 1 | 0;
                var$3 = $var2.$get(var$16);
                if (var$3 === $var9 ? 1 : var$3 !== null ? var$3.$equals($var9) : $var9 !== null ? 0 : 1) {
                    var$4 = 1;
                    break a;
                }
                var$16 = $var13;
            }
            $par1EntityPlayerMP = new ju_ConcurrentModificationException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if (var$4) {
            var$3 = $par1EntityPlayerMP.$loadedChunks;
            var$4 = var$3.$size2;
            if (var$4 < 0) {
                $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                $par1EntityPlayerMP.$suppressionEnabled = 1;
                $par1EntityPlayerMP.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayerMP);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator(var$3, var$4), $var9);
        }
        $var10 = 1;
        var$20 = $var4 * 2 | 0;
        b: while (true) {
            if ($var10 > var$20) {
                var$16 = $var3 % 4 | 0;
                $var11 = 0;
                var$18 = 0;
                if ($var11 >= var$20)
                    return;
                $var12 = $this.$xzDirectionsConst.data;
                $var7 = $var7 + $var12[var$16].data[0] | 0;
                $var8 = $var8 + $var12[var$16].data[1] | 0;
                var$4 = $var5 + $var7 | 0;
                $var13 = $var6 + $var8 | 0;
                $var3 = 1;
                $ptr = 2;
                continue main;
            }
            $var11 = 0;
            while ($var11 < 2) {
                $var12 = $this.$xzDirectionsConst.data;
                var$4 = $var3 + 1 | 0;
                $var12 = $var12[$var3 % 4 | 0];
                $var13 = 0;
                if ($var13 < $var10)
                    break b;
                $var11 = $var11 + 1 | 0;
                $var3 = var$4;
            }
            $var10 = $var10 + 1 | 0;
        }
        var$22 = $var12.data;
        $var7 = $var7 + var$22[0] | 0;
        $var8 = $var8 + var$22[1] | 0;
        $var3 = $var5 + $var7 | 0;
        $var4 = $var6 + $var8 | 0;
        var$17 = 1;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, var$4, $var13, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        var$3 = var$3.$chunkLocation;
        $var3 = $var2.$modCount;
        $var4 = $var2.$size();
        var$17 = var$18;
        a: {
            while (true) {
                if (!(var$17 >= $var4 ? 0 : 1)) {
                    var$4 = 0;
                    break a;
                }
                if ($var3 < $var2.$modCount)
                    break;
                $var13 = var$17 + 1 | 0;
                $var9 = $var2.$get(var$17);
                if ($var9 === var$3 ? 1 : $var9 !== null ? $var9.$equals(var$3) : var$3 !== null ? 0 : 1) {
                    var$4 = 1;
                    break a;
                }
                var$17 = $var13;
            }
            $par1EntityPlayerMP = new ju_ConcurrentModificationException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if (var$4) {
            $var9 = $par1EntityPlayerMP.$loadedChunks;
            var$4 = $var9.$size2;
            if (var$4 < 0) {
                $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                $par1EntityPlayerMP.$suppressionEnabled = 1;
                $par1EntityPlayerMP.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayerMP);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var9, var$4), var$3);
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 >= var$20)
            return;
        $var12 = $this.$xzDirectionsConst.data;
        $var7 = $var7 + $var12[var$16].data[0] | 0;
        $var8 = $var8 + $var12[var$16].data[1] | 0;
        var$4 = $var5 + $var7 | 0;
        $var13 = $var6 + $var8 | 0;
        $var3 = 1;
        continue main;
    case 3:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, $var3, $var4, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $var9 = var$3.$chunkLocation;
        var$16 = 0;
        var$17 = $var2.$modCount;
        var$18 = $var2.$size();
        a: {
            while (true) {
                if (!(var$16 >= var$18 ? 0 : 1)) {
                    $var3 = 0;
                    break a;
                }
                if (var$17 < $var2.$modCount)
                    break;
                $var4 = var$16 + 1 | 0;
                var$3 = $var2.$get(var$16);
                if (var$3 === $var9 ? 1 : var$3 !== null ? var$3.$equals($var9) : $var9 !== null ? 0 : 1) {
                    $var3 = 1;
                    break a;
                }
                var$16 = $var4;
            }
            $par1EntityPlayerMP = new ju_ConcurrentModificationException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if ($var3) {
            var$3 = $par1EntityPlayerMP.$loadedChunks;
            $var3 = var$3.$size2;
            if ($var3 < 0) {
                $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                $par1EntityPlayerMP.$suppressionEnabled = 1;
                $par1EntityPlayerMP.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayerMP);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator(var$3, $var3), $var9);
        }
        $var13 = $var13 + 1 | 0;
        while ($var13 >= $var10) {
            $var11 = $var11 + 1 | 0;
            $var3 = var$4;
            while ($var11 >= 2) {
                $var10 = $var10 + 1 | 0;
                if ($var10 > var$20) {
                    var$16 = $var3 % 4 | 0;
                    $var11 = 0;
                    var$18 = 0;
                    if ($var11 >= var$20)
                        return;
                    $var12 = $this.$xzDirectionsConst.data;
                    $var7 = $var7 + $var12[var$16].data[0] | 0;
                    $var8 = $var8 + $var12[var$16].data[1] | 0;
                    var$4 = $var5 + $var7 | 0;
                    $var13 = $var6 + $var8 | 0;
                    $var3 = 1;
                    $ptr = 2;
                    continue main;
                }
                $var11 = 0;
            }
            $var12 = $this.$xzDirectionsConst.data;
            var$4 = $var3 + 1 | 0;
            $var12 = $var12[$var3 % 4 | 0];
            $var13 = 0;
        }
        var$22 = $var12.data;
        $var7 = $var7 + var$22[0] | 0;
        $var8 = $var8 + var$22[1] | 0;
        $var3 = $var5 + $var7 | 0;
        $var4 = $var6 + $var8 | 0;
        var$17 = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var2, var$3, var$4, $var9, var$6, var$7, $var12, $var13, $var3, $var4, $var5, $var6, $var7, $var8, var$16, var$17, var$18, $var10, var$20, $var11, var$22, $ptr);
},
nms_PlayerManager_removePlayer = ($this, $par1EntityPlayerMP) => {
    let $var2, $var3, $var4, var$5, $var5, $var6, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = ($par1EntityPlayerMP.$managedPosX | 0) >> 4;
        $var3 = ($par1EntityPlayerMP.$managedPosZ | 0) >> 4;
        $var4 = $var2 - $this.$playerViewRadius | 0;
        while (true) {
            var$5 = $this.$playerViewRadius;
            if ($var4 > ($var2 + var$5 | 0))
                break;
            $var5 = $var3 - var$5 | 0;
            if ($var5 <= ($var3 + $this.$playerViewRadius | 0)) {
                var$5 = 0;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        $var6 = $this.$players;
        $var3 = $var6.$size0;
        var$5 = 0;
        a: {
            b: {
                while (true) {
                    $var2 = $rt_compare(var$5, $var3);
                    if ($var2 >= 0) {
                        var$5 = (-1);
                        break b;
                    }
                    if (var$5 < 0)
                        break a;
                    if ($var2 >= 0)
                        break a;
                    var$8 = $var6.$array.data[var$5];
                    if ($par1EntityPlayerMP === var$8 ? 1 : $par1EntityPlayerMP === null ? (var$8 !== null ? 0 : 1) : !(var$8 instanceof nms_Entity) ? 0 : var$8.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                        break;
                    var$5 = var$5 + 1 | 0;
                }
            }
            if (var$5 >= 0)
                ju_ArrayList_remove($var6, var$5);
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 1:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, $var4, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 !== null) {
            $ptr = 2;
            continue main;
        }
        $var5 = $var5 + 1 | 0;
        while (true) {
            if ($var5 <= ($var3 + $this.$playerViewRadius | 0)) {
                var$5 = 0;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            var$5 = $this.$playerViewRadius;
            if ($var4 > ($var2 + var$5 | 0))
                break;
            $var5 = $var3 - var$5 | 0;
        }
        $var6 = $this.$players;
        $var3 = $var6.$size0;
        var$5 = 0;
        c: {
            d: {
                while (true) {
                    $var2 = $rt_compare(var$5, $var3);
                    if ($var2 >= 0) {
                        var$5 = (-1);
                        break d;
                    }
                    if (var$5 < 0)
                        break c;
                    if ($var2 >= 0)
                        break c;
                    var$8 = $var6.$array.data[var$5];
                    if ($par1EntityPlayerMP === var$8 ? 1 : $par1EntityPlayerMP === null ? (var$8 !== null ? 0 : 1) : !(var$8 instanceof nms_Entity) ? 0 : var$8.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                        break;
                    var$5 = var$5 + 1 | 0;
                }
            }
            if (var$5 >= 0)
                ju_ArrayList_remove($var6, var$5);
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    case 2:
        nms_PlayerInstance_removePlayer($var6, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        while (true) {
            if ($var5 <= ($var3 + $this.$playerViewRadius | 0)) {
                var$5 = 0;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            var$5 = $this.$playerViewRadius;
            if ($var4 > ($var2 + var$5 | 0))
                break;
            $var5 = $var3 - var$5 | 0;
        }
        $var6 = $this.$players;
        $var3 = $var6.$size0;
        var$5 = 0;
        b: {
            c: {
                while (true) {
                    $var2 = $rt_compare(var$5, $var3);
                    if ($var2 >= 0) {
                        var$5 = (-1);
                        break c;
                    }
                    if (var$5 < 0)
                        break b;
                    if ($var2 >= 0)
                        break b;
                    var$8 = $var6.$array.data[var$5];
                    if ($par1EntityPlayerMP === var$8 ? 1 : $par1EntityPlayerMP === null ? (var$8 !== null ? 0 : 1) : !(var$8 instanceof nms_Entity) ? 0 : var$8.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                        break;
                    var$5 = var$5 + 1 | 0;
                }
            }
            if (var$5 >= 0)
                ju_ArrayList_remove($var6, var$5);
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var2, $var3, $var4, var$5, $var5, $var6, var$8, $ptr);
},
nms_PlayerManager_updateMountedMovingPlayer = ($this, $par1EntityPlayerMP) => {
    let $var4, $var2, $var6, $var3, var$6, var$7, $var10, $var11, $var12, $var13, $var14, $var15, var$14, var$15, var$16, var$17, $var16, var$19, var$20, var$21, var$22, $var17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var17 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var16 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var6 = $thread.pop();$var2 = $thread.pop();$var4
        = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var4 = $par1EntityPlayerMP.$posX;
            $var2 = ($var4 | 0) >> 4;
            $var6 = $par1EntityPlayerMP.$posZ;
            $var3 = ($var6 | 0) >> 4;
            var$6 = $par1EntityPlayerMP.$managedPosX;
            $var4 = var$6 - $var4;
            var$7 = $par1EntityPlayerMP.$managedPosZ;
            $var6 = var$7 - $var6;
            if ($var4 * $var4 + $var6 * $var6 >= 64.0) {
                $var10 = (var$6 | 0) >> 4;
                $var11 = (var$7 | 0) >> 4;
                $var12 = $this.$playerViewRadius;
                $var13 = $var2 - $var10 | 0;
                $var14 = $var3 - $var11 | 0;
                if ($var13)
                    break a;
                if ($var14)
                    break a;
            }
            return;
        }
        $var15 = $var2 - $var12 | 0;
        var$14 = $var2 + $var12 | 0;
        var$15 = $var3 - $var12 | 0;
        var$16 = $var3 + $var12 | 0;
        var$17 =  -$var12 | 0;
        while ($var15 <= var$14) {
            $var16 = var$15;
            while ($var16 <= var$16) {
                var$19 = $var15 - $var10 | 0;
                var$20 = $var16 - $var11 | 0;
                if (!(var$19 >= var$17 && var$19 <= $var12 ? (var$20 >= var$17 && var$20 <= $var12 ? 1 : 0) : 0)) {
                    var$19 = 1;
                    $ptr = 2;
                    continue main;
                }
                var$21 = $var15 - $var13 | 0;
                var$19 = $var16 - $var14 | 0;
                var$20 = var$21 - $var2 | 0;
                var$22 = var$19 - $var3 | 0;
                if (!(var$20 >= var$17 && var$20 <= $var12 ? (var$22 >= var$17 && var$22 <= $var12 ? 1 : 0) : 0)) {
                    var$20 = 0;
                    $ptr = 3;
                    continue main;
                }
                $var16 = $var16 + 1 | 0;
            }
            $var15 = $var15 + 1 | 0;
        }
        $ptr = 1;
    case 1:
        nms_PlayerManager_filterChunkLoadQueue($this, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayerMP.$managedPosX = $par1EntityPlayerMP.$posX;
        $par1EntityPlayerMP.$managedPosZ = $par1EntityPlayerMP.$posZ;
        return;
    case 2:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, $var15, $var16, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        nms_PlayerInstance_addPlayer($var17, $par1EntityPlayerMP);
        b: while (true) {
            var$21 = $var15 - $var13 | 0;
            var$19 = $var16 - $var14 | 0;
            var$20 = var$21 - $var2 | 0;
            var$22 = var$19 - $var3 | 0;
            if (!(var$20 >= var$17 && var$20 <= $var12 ? (var$22 >= var$17 && var$22 <= $var12 ? 1 : 0) : 0)) {
                var$20 = 0;
                $ptr = 3;
                continue main;
            }
            $var16 = $var16 + 1 | 0;
            while ($var16 > var$16) {
                $var15 = $var15 + 1 | 0;
                if ($var15 > var$14)
                    break b;
                $var16 = var$15;
            }
            var$19 = $var15 - $var10 | 0;
            var$20 = $var16 - $var11 | 0;
            if (var$19 >= var$17 && var$19 <= $var12 ? (var$20 >= var$17 && var$20 <= $var12 ? 1 : 0) : 0)
                continue;
            else {
                var$19 = 1;
                continue main;
            }
        }
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($this, var$21, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        if ($var17 !== null) {
            $ptr = 4;
            continue main;
        }
        c: while (true) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > var$16) {
                $var15 = $var15 + 1 | 0;
                if ($var15 > var$14)
                    break c;
                $var16 = var$15;
            }
            var$19 = $var15 - $var10 | 0;
            var$20 = $var16 - $var11 | 0;
            if (!(var$19 >= var$17 && var$19 <= $var12 ? (var$20 >= var$17 && var$20 <= $var12 ? 1 : 0) : 0)) {
                var$19 = 1;
                $ptr = 2;
                continue main;
            }
            var$21 = $var15 - $var13 | 0;
            var$19 = $var16 - $var14 | 0;
            var$20 = var$21 - $var2 | 0;
            var$22 = var$19 - $var3 | 0;
            if (var$20 >= var$17 && var$20 <= $var12 ? (var$22 >= var$17 && var$22 <= $var12 ? 1 : 0) : 0)
                continue;
            else {
                var$20 = 0;
                continue main;
            }
        }
        $ptr = 1;
        continue main;
    case 4:
        nms_PlayerInstance_removePlayer($var17, $par1EntityPlayerMP);
        if ($rt_suspending()) {
            break main;
        }
        b: while (true) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > var$16) {
                $var15 = $var15 + 1 | 0;
                if ($var15 > var$14)
                    break b;
                $var16 = var$15;
            }
            var$19 = $var15 - $var10 | 0;
            var$20 = $var16 - $var11 | 0;
            if (!(var$19 >= var$17 && var$19 <= $var12 ? (var$20 >= var$17 && var$20 <= $var12 ? 1 : 0) : 0)) {
                var$19 = 1;
                $ptr = 2;
                continue main;
            }
            var$21 = $var15 - $var13 | 0;
            var$19 = $var16 - $var14 | 0;
            var$20 = var$21 - $var2 | 0;
            var$22 = var$19 - $var3 | 0;
            if (var$20 >= var$17 && var$20 <= $var12 ? (var$22 >= var$17 && var$22 <= $var12 ? 1 : 0) : 0)
                continue;
            else {
                var$20 = 0;
                $ptr = 3;
                continue main;
            }
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var4, $var2, $var6, $var3, var$6, var$7, $var10, $var11, $var12, $var13, $var14, $var15, var$14, var$15, var$16, var$17, $var16, var$19, var$20, var$21, var$22, $var17, $ptr);
};
function nms_IntHashMap() {
    let a = this; jl_Object.call(a);
    a.$slots = null;
    a.$count4 = 0;
    a.$threshold0 = 0;
    a.$growFactor = 0.75;
    a.$versionStamp = 0;
    a.$keySet0 = null;
}
let nms_IntHashMap__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    $this.$slots = $rt_createArray(nms_IntHashMapEntry, 16);
    $this.$threshold0 = 12;
    $this.$growFactor = 0.75;
    var$1 = new ju_HashSet;
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    var$1.$backingMap = var$2;
    $this.$keySet0 = var$1;
},
nms_IntHashMap__init_ = () => {
    let var_0 = new nms_IntHashMap();
    nms_IntHashMap__init_0(var_0);
    return var_0;
},
nms_IntHashMap_lookup = ($this, $par1) => {
    let $var2, var$3, $var3;
    $var2 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
    $var2 = $var2 ^ ($var2 >>> 7 | 0) ^ ($var2 >>> 4 | 0);
    var$3 = $this.$slots.data;
    $var3 = var$3[$var2 & (var$3.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$hashEntry == $par1)
            return $var3.$valueEntry;
        $var3 = $var3.$nextEntry0;
    }
    return null;
},
nms_IntHashMap_containsItem = ($this, $par1) => {
    let var$2, var$3, var$4;
    var$2 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
    var$2 = var$2 ^ (var$2 >>> 7 | 0) ^ (var$2 >>> 4 | 0);
    var$3 = $this.$slots.data;
    var$4 = var$3[var$2 & (var$3.length - 1 | 0)];
    a: {
        while (true) {
            if (var$4 === null) {
                var$4 = null;
                break a;
            }
            if (var$4.$hashEntry == $par1)
                break;
            var$4 = var$4.$nextEntry0;
        }
    }
    return var$4 === null ? 0 : 1;
},
nms_IntHashMap_addKey = ($this, $par1, $par2Obj) => {
    let var$3, var$4, var$5, $var3, var$7, $var4, $var5;
    var$3 = $this.$keySet0;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = $par1;
    }
    ju_HashMap_putImpl(var$3.$backingMap, var$4, var$3);
    var$5 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
    $var3 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
    var$7 = $this.$slots.data;
    $var4 = $var3 & (var$7.length - 1 | 0);
    $var5 = var$7[$var4];
    while (true) {
        if ($var5 === null) {
            $this.$versionStamp = $this.$versionStamp + 1 | 0;
            nms_IntHashMap_insert($this, $var3, $par1, $par2Obj, $var4);
            return;
        }
        if ($var5.$hashEntry == $par1)
            break;
        $var5 = $var5.$nextEntry0;
    }
    $var5.$valueEntry = $par2Obj;
},
nms_IntHashMap_copyTo = ($this, $par1ArrayOfIntHashMapEntry) => {
    let $var2, $var3, $var4, var$5, $var5, $var6, $var7;
    $par1ArrayOfIntHashMapEntry = $par1ArrayOfIntHashMapEntry.data;
    $var2 = $this.$slots;
    $var3 = $par1ArrayOfIntHashMapEntry.length;
    $var4 = 0;
    $var3 = $var3 - 1 | 0;
    while (true) {
        var$5 = $var2.data;
        if ($var4 >= var$5.length)
            break;
        a: {
            $var5 = var$5[$var4];
            if ($var5 !== null) {
                var$5[$var4] = null;
                while (true) {
                    $var6 = $var5.$nextEntry0;
                    $var7 = $var5.$slotHash & $var3;
                    $var5.$nextEntry0 = $par1ArrayOfIntHashMapEntry[$var7];
                    $par1ArrayOfIntHashMapEntry[$var7] = $var5;
                    if ($var6 === null)
                        break a;
                    $var5 = $var6;
                }
            }
        }
        $var4 = $var4 + 1 | 0;
    }
},
nms_IntHashMap_removeEntry = ($this, $par1) => {
    let var$2, $var2, var$4, $var3, $var5, var$7, $var5_0;
    var$2 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
    $var2 = var$2 ^ (var$2 >>> 7 | 0) ^ (var$2 >>> 4 | 0);
    var$4 = $this.$slots.data;
    $var3 = $var2 & (var$4.length - 1 | 0);
    $var5 = var$4[$var3];
    var$7 = $var5;
    while ($var5 !== null) {
        $var5_0 = $var5.$nextEntry0;
        if ($var5.$hashEntry == $par1) {
            $this.$versionStamp = $this.$versionStamp + 1 | 0;
            $this.$count4 = $this.$count4 - 1 | 0;
            if (var$7 !== $var5)
                var$7.$nextEntry0 = $var5_0;
            else
                var$4[$var3] = $var5_0;
            return $var5;
        }
        var$7 = $var5;
        $var5 = $var5_0;
    }
    return $var5;
},
nms_IntHashMap_insert = ($this, $par1, $par2, $par3Obj, $par4) => {
    let var$5, $var5, var$7;
    var$5 = $this.$slots.data;
    $var5 = var$5[$par4];
    var$7 = new nms_IntHashMapEntry;
    var$7.$valueEntry = $par3Obj;
    var$7.$nextEntry0 = $var5;
    var$7.$hashEntry = $par2;
    var$7.$slotHash = $par1;
    var$5[$par4] = var$7;
    $par1 = $this.$count4;
    $this.$count4 = $par1 + 1 | 0;
    if ($par1 >= $this.$threshold0) {
        $par2 = var$5.length;
        $par1 = 2 * $par2 | 0;
        if ($par2 == 1073741824)
            $this.$threshold0 = 2147483647;
        else {
            var$5 = $rt_createArray(nms_IntHashMapEntry, $par1);
            nms_IntHashMap_copyTo($this, var$5);
            $this.$slots = var$5;
            $this.$threshold0 = $par1 * 0.75 | 0;
        }
    }
};
function nms_Teleporter() {
    let a = this; jl_Object.call(a);
    a.$worldServerInstance = null;
    a.$random2 = null;
    a.$destinationCoordinateCache = null;
    a.$destinationCoordinateKeys = null;
}
let nms_Teleporter_placeInPortal = ($this, $par1Entity, $par2, $par4, $par6, $par8) => {
    let $var9, $var11, $var10, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, $var20, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldServerInstance.$provider.$dimensionId != 1) {
            $ptr = 1;
            continue main;
        }
        $par2 = $par1Entity.$posX;
        $var9 = $par2 | 0;
        if ($par2 < $var9)
            $var9 = $var9 - 1 | 0;
        $par2 = $par1Entity.$posY;
        $var11 = $par2 | 0;
        if ($par2 < $var11)
            $var11 = $var11 - 1 | 0;
        $var10 = $var11 - 1 | 0;
        $par2 = $par1Entity.$posZ;
        $var11 = $par2 | 0;
        if ($par2 < $var11)
            $var11 = $var11 - 1 | 0;
        $var12 = 1;
        $var13 = 0;
        $var14 = (-2);
        while ($var14 <= 2) {
            $var15 = (-2);
            while ($var15 <= 2) {
                $var16 = (-1);
                if ($var16 < 3) {
                    $var17 = ($var9 + $rt_imul($var15, $var12) | 0) + $rt_imul($var14, $var13) | 0;
                    $var18 = $var10 + $var16 | 0;
                    $var19 = ($var11 + $rt_imul($var15, $var13) | 0) - $rt_imul($var14, $var12) | 0;
                    $var20 = $var16 >= 0 ? 0 : 1;
                    var$18 = $this.$worldServerInstance;
                    if (!$var20)
                        $var20 = 0;
                    else {
                        nms_Block_$callClinit();
                        $var20 = nms_Block_obsidian.$blockID;
                    }
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 4;
                    continue main;
                }
                $var15 = $var15 + 1 | 0;
            }
            $var14 = $var14 + 1 | 0;
        }
        $par2 = $var9;
        $par4 = $var10;
        $par6 = $var11;
        var$21 = $par1Entity.$rotationYaw;
        $par1Entity.$posX = $par2;
        $par1Entity.$prevPosX = $par2;
        $par1Entity.$lastTickPosX = $par2;
        $par4 = $par4 + $par1Entity.$yOffset;
        $par1Entity.$posY = $par4;
        $par1Entity.$prevPosY = $par4;
        $par1Entity.$lastTickPosY = $par4;
        $par1Entity.$posZ = $par6;
        $par1Entity.$prevPosZ = $par6;
        $par1Entity.$lastTickPosZ = $par6;
        $par1Entity.$rotationYaw = var$21;
        $par1Entity.$rotationPitch = 0.0;
        nms_Entity_setPosition($par1Entity, $par2, $par4, $par6);
        $par1Entity.$motionZ = 0.0;
        $par1Entity.$motionY = 0.0;
        $par1Entity.$motionX = 0.0;
        return;
    case 1:
        $tmp = nms_Teleporter_placeInExistingPortal($this, $par1Entity, $par2, $par4, $par6, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10)
            return;
        $ptr = 2;
    case 2:
        nms_Teleporter_makePortal($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_Teleporter_placeInExistingPortal($this, $par1Entity, $par2, $par4, $par6, $par8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_setBlock(var$18, $var17, $var18, $var19, $var20, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $var16 + 1 | 0;
        a: while (true) {
            if ($var16 < 3) {
                $var17 = ($var9 + $rt_imul($var15, $var12) | 0) + $rt_imul($var14, $var13) | 0;
                $var18 = $var10 + $var16 | 0;
                $var19 = ($var11 + $rt_imul($var15, $var13) | 0) - $rt_imul($var14, $var12) | 0;
                $var20 = $var16 >= 0 ? 0 : 1;
                var$18 = $this.$worldServerInstance;
                if (!$var20)
                    $var20 = 0;
                else {
                    nms_Block_$callClinit();
                    $var20 = nms_Block_obsidian.$blockID;
                }
                var$19 = 0;
                var$20 = 3;
                continue main;
            }
            $var15 = $var15 + 1 | 0;
            while ($var15 > 2) {
                $var14 = $var14 + 1 | 0;
                if ($var14 > 2)
                    break a;
                $var15 = (-2);
            }
            $var16 = (-1);
        }
        $par2 = $var9;
        $par4 = $var10;
        $par6 = $var11;
        var$21 = $par1Entity.$rotationYaw;
        $par1Entity.$posX = $par2;
        $par1Entity.$prevPosX = $par2;
        $par1Entity.$lastTickPosX = $par2;
        $par4 = $par4 + $par1Entity.$yOffset;
        $par1Entity.$posY = $par4;
        $par1Entity.$prevPosY = $par4;
        $par1Entity.$lastTickPosY = $par4;
        $par1Entity.$posZ = $par6;
        $par1Entity.$prevPosZ = $par6;
        $par1Entity.$lastTickPosZ = $par6;
        $par1Entity.$rotationYaw = var$21;
        $par1Entity.$rotationPitch = 0.0;
        nms_Entity_setPosition($par1Entity, $par2, $par4, $par6);
        $par1Entity.$motionZ = 0.0;
        $par1Entity.$motionY = 0.0;
        $par1Entity.$motionX = 0.0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par4, $par6, $par8, $var9, $var11, $var10, $var12, $var13, $var14, $var15, $var16, $var17, $var18, $var19, $var20, var$18, var$19, var$20, var$21, $ptr);
},
nms_Teleporter_placeInExistingPortal = ($this, $par1Entity, $par2, $par4, $par6, $par8) => {
    let $var10, $var12, $var13, $var14, $var15, $var16, $var17, $var19, $var20, $var50, $var22, var$17, $var48, $var48_0, $var31, $var36, $var37, $var21, $var23, $var24, $var26, $var25, var$28, var$29, $var49, $var27, $var29, $var30, $var40, $var32, var$36, $var33, $var34, $var35, $var38, $var39, $var41, $var42, $var43, $var44, $var46, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var46 = $thread.pop();$var44 = $thread.pop();$var43 = $thread.pop();$var42 = $thread.pop();$var41 = $thread.pop();$var39 = $thread.pop();$var38 = $thread.pop();$var35 = $thread.pop();$var34 = $thread.pop();$var33 = $thread.pop();var$36 = $thread.pop();$var32 = $thread.pop();$var40 = $thread.pop();$var30 = $thread.pop();$var29 = $thread.pop();$var27 = $thread.pop();$var49 = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();$var25 = $thread.pop();$var26 = $thread.pop();$var24
        = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();$var37 = $thread.pop();$var36 = $thread.pop();$var31 = $thread.pop();$var48_0 = $thread.pop();$var48 = $thread.pop();var$17 = $thread.pop();$var22 = $thread.pop();$var50 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4
        = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = (-1.0);
        $var12 = 0;
        $var13 = 0;
        $var14 = 0;
        $par2 = $par1Entity.$posX;
        $var15 = $par2 | 0;
        if ($par2 < $var15)
            $var15 = $var15 - 1 | 0;
        $par2 = $par1Entity.$posZ;
        $var16 = $par2 | 0;
        if ($par2 < $var16)
            $var16 = $var16 - 1 | 0;
        $var17 = Long_or(Long_and(Long_fromInt($var15), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var16), Long_create(4294967295, 0)), 32));
        $var19 = 1;
        $var20 = $this.$destinationCoordinateCache;
        $var50 = Long_lo(Long_xor($var17, Long_shru($var17, 32)));
        $var50 = $var50 ^ ($var50 >>> 20 | 0) ^ ($var50 >>> 12 | 0);
        $var22 = $var50 ^ ($var50 >>> 7 | 0) ^ ($var50 >>> 4 | 0);
        var$17 = $var20.$hashArray.data;
        $var48 = $var22 & (var$17.length - 1 | 0);
        $var20 = var$17[$var48];
        a: {
            while (true) {
                if ($var20 === null) {
                    $var20 = null;
                    break a;
                }
                if (Long_eq($var20.$key1, $var17))
                    break;
                $var20 = $var20.$nextEntry;
            }
        }
        if ($var20 === null ? 0 : 1) {
            $var20 = var$17[$var48];
            b: {
                while ($var20 !== null) {
                    if (Long_eq($var20.$key1, $var17)) {
                        $var20 = $var20.$value4;
                        break b;
                    }
                    $var20 = $var20.$nextEntry;
                }
                $var20 = null;
            }
            $var20 = $var20;
            $var10 = 0.0;
            $var12 = $var20.$posX0;
            $var13 = $var20.$posY0;
            $var14 = $var20.$posZ0;
            $var20.$lastUpdateTime = $this.$worldServerInstance.$worldInfo.$getWorldTotalTime();
            $var19 = 0;
        } else {
            $var48_0 = $var15 - 128 | 0;
            $var31 = $var15 + 128 | 0;
            $var36 = $var16 - 128 | 0;
            $var37 = $var16 + 128 | 0;
            while ($var48_0 <= $var31) {
                $var21 = $var48_0 + 0.5 - $par1Entity.$posX;
                $par6 = $var21 * $var21;
                $var23 = $var36;
                while ($var23 <= $var37) {
                    $var24 = $var23 + 0.5 - $par1Entity.$posZ;
                    $var26 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                    $var25 = $var24 * $var24;
                    if ($var26 >= 0) {
                        $var20 = $this.$worldServerInstance;
                        $ptr = 3;
                        continue main;
                    }
                    $var23 = $var23 + 1 | 0;
                }
                $var48_0 = $var48_0 + 1 | 0;
            }
        }
        if ($var10 < 0.0)
            return 0;
        if ($var19) {
            $var20 = $this.$destinationCoordinateCache;
            var$28 = new nms_PortalPosition;
            var$29 = $this.$worldServerInstance.$worldInfo.$getWorldTotalTime();
            var$28.$posX0 = $var12;
            var$28.$posY0 = $var13;
            var$28.$posZ0 = $var14;
            var$28.$teleporterInstance = $this;
            var$28.$lastUpdateTime = var$29;
            nms_LongHashMap_add($var20, $var17, var$28);
            $var20 = $this.$destinationCoordinateKeys;
            var$28 = new jl_Long;
            var$28.$value7 = $var17;
            ju_ArrayList_ensureCapacity($var20, $var20.$size0 + 1 | 0);
            var$17 = $var20.$array.data;
            $var48 = $var20.$size0;
            $var20.$size0 = $var48 + 1 | 0;
            var$17[$var48] = var$28;
            $var20.$modCount = $var20.$modCount + 1 | 0;
        }
        $var49 = $var12 + 0.5;
        $var25 = $var13 + 0.5;
        $var27 = $var14 + 0.5;
        $var50 = (-1);
        $var20 = $this.$worldServerInstance;
        $var48 = $var12 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($var20, $var48, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        nms_Block_$callClinit();
        if ($var48 == nms_Block_portal.$blockID)
            $var50 = 2;
        $var20 = $this.$worldServerInstance;
        $var48 = $var12 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var20, $var48, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        if ($var48 == nms_Block_portal.$blockID)
            $var50 = 0;
        $var20 = $this.$worldServerInstance;
        $var48 = $var14 - 1 | 0;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($var20, $var48_0, $var26, $var23);
        if ($rt_suspending()) {
            break main;
        }
        $var50 = $tmp;
        nms_Block_$callClinit();
        if ($var50 == nms_Block_portal.$blockID) {
            $var50 = $var26;
            $var20 = $this.$worldServerInstance;
            $var48 = $var50 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        $var26 = $var26 + (-1) | 0;
        while ($var26 < 0) {
            $var23 = $var23 + 1 | 0;
            while ($var23 > $var37) {
                $var48_0 = $var48_0 + 1 | 0;
                if ($var48_0 > $var31) {
                    if ($var10 < 0.0)
                        return 0;
                    if ($var19) {
                        $var20 = $this.$destinationCoordinateCache;
                        var$28 = new nms_PortalPosition;
                        var$29 = $this.$worldServerInstance.$worldInfo.$getWorldTotalTime();
                        var$28.$posX0 = $var12;
                        var$28.$posY0 = $var13;
                        var$28.$posZ0 = $var14;
                        var$28.$teleporterInstance = $this;
                        var$28.$lastUpdateTime = var$29;
                        nms_LongHashMap_add($var20, $var17, var$28);
                        $var20 = $this.$destinationCoordinateKeys;
                        var$28 = new jl_Long;
                        var$28.$value7 = $var17;
                        ju_ArrayList_ensureCapacity($var20, $var20.$size0 + 1 | 0);
                        var$17 = $var20.$array.data;
                        $var48 = $var20.$size0;
                        $var20.$size0 = $var48 + 1 | 0;
                        var$17[$var48] = var$28;
                        $var20.$modCount = $var20.$modCount + 1 | 0;
                    }
                    $var49 = $var12 + 0.5;
                    $var25 = $var13 + 0.5;
                    $var27 = $var14 + 0.5;
                    $var50 = (-1);
                    $var20 = $this.$worldServerInstance;
                    $var48 = $var12 - 1 | 0;
                    $ptr = 1;
                    continue main;
                }
                $var21 = $var48_0 + 0.5 - $par1Entity.$posX;
                $par6 = $var21 * $var21;
                $var23 = $var36;
            }
            $var24 = $var23 + 0.5 - $par1Entity.$posZ;
            $var26 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var25 = $var24 * $var24;
        }
        $var20 = $this.$worldServerInstance;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($var20, $var12, $var13, $var48);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        if ($var48 == nms_Block_portal.$blockID)
            $var50 = 3;
        $var20 = $this.$worldServerInstance;
        $var48 = $var14 + 1 | 0;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($var20, $var48_0, $var48, $var23);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        if ($var48 == nms_Block_portal.$blockID) {
            $var50 = $var50 + (-1) | 0;
            $var20 = $this.$worldServerInstance;
            $var48 = $var50 - 1 | 0;
            continue main;
        }
        $var27 = $var50 + 0.5 - $par1Entity.$posY;
        $var29 = $par6 + $var27 * $var27 + $var25;
        if ($var10 >= 0.0 && $var29 >= $var10)
            $var26 = $var50;
        else {
            $var26 = $var50;
            $var12 = $var48_0;
            $var14 = $var23;
            $var10 = $var29;
            $var13 = $var50;
        }
        $var26 = $var26 + (-1) | 0;
        while ($var26 < 0) {
            $var23 = $var23 + 1 | 0;
            while ($var23 > $var37) {
                $var48_0 = $var48_0 + 1 | 0;
                if ($var48_0 > $var31) {
                    if ($var10 < 0.0)
                        return 0;
                    if ($var19) {
                        $var20 = $this.$destinationCoordinateCache;
                        var$28 = new nms_PortalPosition;
                        var$29 = $this.$worldServerInstance.$worldInfo.$getWorldTotalTime();
                        var$28.$posX0 = $var12;
                        var$28.$posY0 = $var13;
                        var$28.$posZ0 = $var14;
                        var$28.$teleporterInstance = $this;
                        var$28.$lastUpdateTime = var$29;
                        nms_LongHashMap_add($var20, $var17, var$28);
                        $var20 = $this.$destinationCoordinateKeys;
                        var$28 = new jl_Long;
                        var$28.$value7 = $var17;
                        ju_ArrayList_ensureCapacity($var20, $var20.$size0 + 1 | 0);
                        var$17 = $var20.$array.data;
                        $var48 = $var20.$size0;
                        $var20.$size0 = $var48 + 1 | 0;
                        var$17[$var48] = var$28;
                        $var20.$modCount = $var20.$modCount + 1 | 0;
                    }
                    $var49 = $var12 + 0.5;
                    $var25 = $var13 + 0.5;
                    $var27 = $var14 + 0.5;
                    $var50 = (-1);
                    $var20 = $this.$worldServerInstance;
                    $var48 = $var12 - 1 | 0;
                    $ptr = 1;
                    continue main;
                }
                $var21 = $var48_0 + 0.5 - $par1Entity.$posX;
                $par6 = $var21 * $var21;
                $var23 = $var36;
            }
            $var24 = $var23 + 0.5 - $par1Entity.$posZ;
            $var26 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var25 = $var24 * $var24;
        }
        $var20 = $this.$worldServerInstance;
        $ptr = 3;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($var20, $var12, $var13, $var48);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        if ($var48 == nms_Block_portal.$blockID)
            $var50 = 1;
        $var30 = $par1Entity.$teleportDirection;
        if ($var50 <= (-1)) {
            $par1Entity.$motionZ = 0.0;
            $par1Entity.$motionY = 0.0;
            $par1Entity.$motionX = 0.0;
            $par8 = $par1Entity.$rotationYaw;
            $var40 = $par1Entity.$rotationPitch;
            $par1Entity.$posX = $var49;
            $par1Entity.$prevPosX = $var49;
            $par1Entity.$lastTickPosX = $var49;
            $par2 = $var25 + $par1Entity.$yOffset;
            $par1Entity.$posY = $par2;
            $par1Entity.$prevPosY = $par2;
            $par1Entity.$lastTickPosY = $par2;
            $par1Entity.$posZ = $var27;
            $par1Entity.$prevPosZ = $var27;
            $par1Entity.$lastTickPosZ = $var27;
            $par1Entity.$rotationYaw = $par8;
            $par1Entity.$rotationPitch = $var40;
            nms_Entity_setPosition($par1Entity, $var49, $par2, $var27);
            return 1;
        }
        $var31 = nms_Direction_rotateLeft.data[$var50];
        var$17 = nms_Direction_offsetX.data;
        $var32 = var$17[$var50];
        var$36 = nms_Direction_offsetZ.data;
        $var33 = var$36[$var50];
        $var34 = var$17[$var31];
        $var35 = var$36[$var31];
        $var20 = $this.$worldServerInstance;
        $var22 = $var12 + $var32 | 0;
        $var36 = $var22 + $var34 | 0;
        $var37 = $var14 + $var33 | 0;
        $var26 = $var37 + $var35 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($var20, $var36, $var13, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        if ($var48 ? 0 : 1) {
            $var20 = $this.$worldServerInstance;
            $var48 = $var13 + 1 | 0;
            $ptr = 8;
            continue main;
        }
        $var36 = 1;
        $var20 = $this.$worldServerInstance;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($var20, $var36, $var48, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        $var36 = !($var48 ? 0 : 1) ? 1 : 0;
        $var20 = $this.$worldServerInstance;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($var20, $var22, $var13, $var37);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        if ($var48 ? 0 : 1) {
            $var20 = $this.$worldServerInstance;
            $var48 = $var13 + 1 | 0;
            $ptr = 10;
            continue main;
        }
        if ($var36 && 1) {
            var$17 = nms_Direction_rotateOpposite.data;
            $var50 = var$17[$var50];
            $var48 = var$17[$var31];
            var$17 = nms_Direction_offsetX.data;
            $var32 = var$17[$var50];
            var$36 = nms_Direction_offsetZ.data;
            $var33 = var$36[$var50];
            $var34 = var$17[$var48];
            $var35 = var$36[$var48];
            $var48 = $var12 - $var34 | 0;
            $var49 = $var49 - $var34;
            $var22 = $var14 - $var35 | 0;
            $var27 = $var27 - $var35;
            $var20 = $this.$worldServerInstance;
            $var48 = $var48 + $var32 | 0;
            $var31 = $var48 + $var34 | 0;
            $var22 = $var22 + $var33 | 0;
            $var36 = $var22 + $var35 | 0;
            $ptr = 11;
            continue main;
        }
        $var38 = 0.5;
        $var39 = 0.5;
        if (!$var36 && 1)
            $var38 = 1.0;
        else if ($var36 && !1)
            $var38 = 0.0;
        else if ($var36 && 1)
            $var39 = 0.0;
        $var49 = $var49 + $var34 * $var38 + $var39 * $var32;
        $var27 = $var27 + $var35 * $var38 + $var39 * $var33;
        $var40 = 0.0;
        $var41 = 0.0;
        $var42 = 0.0;
        $var43 = 0.0;
        if ($var50 == $var30) {
            $var40 = 1.0;
            $var41 = 1.0;
        } else if ($var50 == nms_Direction_rotateOpposite.data[$var30]) {
            $var40 = (-1.0);
            $var41 = (-1.0);
        } else if ($var50 != nms_Direction_rotateRight.data[$var30]) {
            $var42 = (-1.0);
            $var43 = 1.0;
        } else {
            $var42 = 1.0;
            $var43 = (-1.0);
        }
        $var44 = $par1Entity.$motionX;
        $var46 = $par1Entity.$motionZ;
        $par1Entity.$motionX = $var44 * $var40 + $var46 * $var43;
        $par1Entity.$motionZ = $var44 * $var42 + $var46 * $var41;
        $par1Entity.$rotationYaw = $par8 - ($var30 * 90 | 0) + ($var50 * 90 | 0);
        $par8 = $par1Entity.$rotationYaw;
        $var40 = $par1Entity.$rotationPitch;
        $par1Entity.$posX = $var49;
        $par1Entity.$prevPosX = $var49;
        $par1Entity.$lastTickPosX = $var49;
        $par2 = $var25 + $par1Entity.$yOffset;
        $par1Entity.$posY = $par2;
        $par1Entity.$prevPosY = $par2;
        $par1Entity.$lastTickPosY = $par2;
        $par1Entity.$posZ = $var27;
        $par1Entity.$prevPosZ = $var27;
        $par1Entity.$lastTickPosZ = $var27;
        $par1Entity.$rotationYaw = $par8;
        $par1Entity.$rotationPitch = $var40;
        nms_Entity_setPosition($par1Entity, $var49, $par2, $var27);
        return 1;
    case 10:
        $tmp = nms_World_getBlockId($var20, $var22, $var48, $var37);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        $var37 = !($var48 ? 0 : 1) ? 1 : 0;
        if ($var36 && $var37) {
            var$17 = nms_Direction_rotateOpposite.data;
            $var50 = var$17[$var50];
            $var48 = var$17[$var31];
            var$17 = nms_Direction_offsetX.data;
            $var32 = var$17[$var50];
            var$36 = nms_Direction_offsetZ.data;
            $var33 = var$36[$var50];
            $var34 = var$17[$var48];
            $var35 = var$36[$var48];
            $var48 = $var12 - $var34 | 0;
            $var49 = $var49 - $var34;
            $var22 = $var14 - $var35 | 0;
            $var27 = $var27 - $var35;
            $var20 = $this.$worldServerInstance;
            $var48 = $var48 + $var32 | 0;
            $var31 = $var48 + $var34 | 0;
            $var22 = $var22 + $var33 | 0;
            $var36 = $var22 + $var35 | 0;
            $ptr = 11;
            continue main;
        }
        $var38 = 0.5;
        $var39 = 0.5;
        if (!$var36 && $var37)
            $var38 = 1.0;
        else if ($var36 && !$var37)
            $var38 = 0.0;
        else if ($var36 && $var37)
            $var39 = 0.0;
        $var49 = $var49 + $var34 * $var38 + $var39 * $var32;
        $var27 = $var27 + $var35 * $var38 + $var39 * $var33;
        $var40 = 0.0;
        $var41 = 0.0;
        $var42 = 0.0;
        $var43 = 0.0;
        if ($var50 == $var30) {
            $var40 = 1.0;
            $var41 = 1.0;
        } else if ($var50 == nms_Direction_rotateOpposite.data[$var30]) {
            $var40 = (-1.0);
            $var41 = (-1.0);
        } else if ($var50 != nms_Direction_rotateRight.data[$var30]) {
            $var42 = (-1.0);
            $var43 = 1.0;
        } else {
            $var42 = 1.0;
            $var43 = (-1.0);
        }
        $var44 = $par1Entity.$motionX;
        $var46 = $par1Entity.$motionZ;
        $par1Entity.$motionX = $var44 * $var40 + $var46 * $var43;
        $par1Entity.$motionZ = $var44 * $var42 + $var46 * $var41;
        $par1Entity.$rotationYaw = $par8 - ($var30 * 90 | 0) + ($var50 * 90 | 0);
        $par8 = $par1Entity.$rotationYaw;
        $var40 = $par1Entity.$rotationPitch;
        $par1Entity.$posX = $var49;
        $par1Entity.$prevPosX = $var49;
        $par1Entity.$lastTickPosX = $var49;
        $par2 = $var25 + $par1Entity.$yOffset;
        $par1Entity.$posY = $par2;
        $par1Entity.$prevPosY = $par2;
        $par1Entity.$lastTickPosY = $par2;
        $par1Entity.$posZ = $var27;
        $par1Entity.$prevPosZ = $var27;
        $par1Entity.$lastTickPosZ = $var27;
        $par1Entity.$rotationYaw = $par8;
        $par1Entity.$rotationPitch = $var40;
        nms_Entity_setPosition($par1Entity, $var49, $par2, $var27);
        return 1;
    case 11:
        $tmp = nms_World_getBlockId($var20, $var31, $var13, $var36);
        if ($rt_suspending()) {
            break main;
        }
        $var37 = $tmp;
        if (!($var37 ? 0 : 1)) {
            $var36 = 1;
            $var20 = $this.$worldServerInstance;
            $ptr = 13;
            continue main;
        }
        $var20 = $this.$worldServerInstance;
        $var37 = $var13 + 1 | 0;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockId($var20, $var31, $var37, $var36);
        if ($rt_suspending()) {
            break main;
        }
        $var31 = $tmp;
        $var36 = !($var31 ? 0 : 1) ? 1 : 0;
        $var20 = $this.$worldServerInstance;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId($var20, $var48, $var13, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var31 = $tmp;
        if (!($var31 ? 0 : 1)) {
            $var38 = 0.5;
            $var39 = 0.5;
            if (!$var36 && 1)
                $var38 = 1.0;
            else if ($var36 && !1)
                $var38 = 0.0;
            else if ($var36 && 1)
                $var39 = 0.0;
            $var49 = $var49 + $var34 * $var38 + $var39 * $var32;
            $var27 = $var27 + $var35 * $var38 + $var39 * $var33;
            $var40 = 0.0;
            $var41 = 0.0;
            $var42 = 0.0;
            $var43 = 0.0;
            if ($var50 == $var30) {
                $var40 = 1.0;
                $var41 = 1.0;
            } else if ($var50 == nms_Direction_rotateOpposite.data[$var30]) {
                $var40 = (-1.0);
                $var41 = (-1.0);
            } else if ($var50 != nms_Direction_rotateRight.data[$var30]) {
                $var42 = (-1.0);
                $var43 = 1.0;
            } else {
                $var42 = 1.0;
                $var43 = (-1.0);
            }
            $var44 = $par1Entity.$motionX;
            $var46 = $par1Entity.$motionZ;
            $par1Entity.$motionX = $var44 * $var40 + $var46 * $var43;
            $par1Entity.$motionZ = $var44 * $var42 + $var46 * $var41;
            $par1Entity.$rotationYaw = $par8 - ($var30 * 90 | 0) + ($var50 * 90 | 0);
            $par8 = $par1Entity.$rotationYaw;
            $var40 = $par1Entity.$rotationPitch;
            $par1Entity.$posX = $var49;
            $par1Entity.$prevPosX = $var49;
            $par1Entity.$lastTickPosX = $var49;
            $par2 = $var25 + $par1Entity.$yOffset;
            $par1Entity.$posY = $par2;
            $par1Entity.$prevPosY = $par2;
            $par1Entity.$lastTickPosY = $par2;
            $par1Entity.$posZ = $var27;
            $par1Entity.$prevPosZ = $var27;
            $par1Entity.$lastTickPosZ = $var27;
            $par1Entity.$rotationYaw = $par8;
            $par1Entity.$rotationPitch = $var40;
            nms_Entity_setPosition($par1Entity, $var49, $par2, $var27);
            return 1;
        }
        $var20 = $this.$worldServerInstance;
        $var31 = $var13 + 1 | 0;
        $ptr = 14;
    case 14:
        $tmp = nms_World_getBlockId($var20, $var48, $var31, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var48 = $tmp;
        $var37 = !($var48 ? 0 : 1) ? 1 : 0;
        $var38 = 0.5;
        $var39 = 0.5;
        if (!$var36 && $var37)
            $var38 = 1.0;
        else if ($var36 && !$var37)
            $var38 = 0.0;
        else if ($var36 && $var37)
            $var39 = 0.0;
        $var49 = $var49 + $var34 * $var38 + $var39 * $var32;
        $var27 = $var27 + $var35 * $var38 + $var39 * $var33;
        $var40 = 0.0;
        $var41 = 0.0;
        $var42 = 0.0;
        $var43 = 0.0;
        if ($var50 == $var30) {
            $var40 = 1.0;
            $var41 = 1.0;
        } else if ($var50 == nms_Direction_rotateOpposite.data[$var30]) {
            $var40 = (-1.0);
            $var41 = (-1.0);
        } else if ($var50 != nms_Direction_rotateRight.data[$var30]) {
            $var42 = (-1.0);
            $var43 = 1.0;
        } else {
            $var42 = 1.0;
            $var43 = (-1.0);
        }
        $var44 = $par1Entity.$motionX;
        $var46 = $par1Entity.$motionZ;
        $par1Entity.$motionX = $var44 * $var40 + $var46 * $var43;
        $par1Entity.$motionZ = $var44 * $var42 + $var46 * $var41;
        $par1Entity.$rotationYaw = $par8 - ($var30 * 90 | 0) + ($var50 * 90 | 0);
        $par8 = $par1Entity.$rotationYaw;
        $var40 = $par1Entity.$rotationPitch;
        $par1Entity.$posX = $var49;
        $par1Entity.$prevPosX = $var49;
        $par1Entity.$lastTickPosX = $var49;
        $par2 = $var25 + $par1Entity.$yOffset;
        $par1Entity.$posY = $par2;
        $par1Entity.$prevPosY = $par2;
        $par1Entity.$lastTickPosY = $par2;
        $par1Entity.$posZ = $var27;
        $par1Entity.$prevPosZ = $var27;
        $par1Entity.$lastTickPosZ = $var27;
        $par1Entity.$rotationYaw = $par8;
        $par1Entity.$rotationPitch = $var40;
        nms_Entity_setPosition($par1Entity, $var49, $par2, $var27);
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par4, $par6, $par8, $var10, $var12, $var13, $var14, $var15, $var16, $var17, $var19, $var20, $var50, $var22, var$17, $var48, $var48_0, $var31, $var36, $var37, $var21, $var23, $var24, $var26, $var25, var$28, var$29, $var49, $var27, $var29, $var30, $var40, $var32, var$36, $var33, $var34, $var35, $var38, $var39, $var41, $var42, $var43, $var44, $var46, $ptr);
},
nms_Teleporter_makePortal = ($this, $par1Entity) => {
    let $var3, $var14, $var5, $var6, $var7, $var11, var$8, var$9, $var12, $var33, var$12, $var30, $var18, $var21, $var13, $var16, $var31, $var16_0, $var17, $var19, $var25, $var20, $var2, $var22, $var23, $var24, $var26, $var31_0, $var21_0, $var22_0, $var27, $var28, $var32, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var32 = $thread.pop();$var28 = $thread.pop();$var27 = $thread.pop();$var22_0 = $thread.pop();$var21_0 = $thread.pop();$var31_0 = $thread.pop();$var26 = $thread.pop();$var24 = $thread.pop();$var23 = $thread.pop();$var22 = $thread.pop();$var2 = $thread.pop();$var20 = $thread.pop();$var25 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var16_0 = $thread.pop();$var31 = $thread.pop();$var16 = $thread.pop();$var13 = $thread.pop();$var21 = $thread.pop();$var18 = $thread.pop();$var30
        = $thread.pop();var$12 = $thread.pop();$var33 = $thread.pop();$var12 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var11 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var14 = $thread.pop();$var3 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = (-1.0);
        $var14 = $par1Entity.$posX;
        $var5 = $var14 | 0;
        if ($var14 < $var5)
            $var5 = $var5 - 1 | 0;
        $var14 = $par1Entity.$posY;
        $var6 = $var14 | 0;
        if ($var14 < $var6)
            $var6 = $var6 - 1 | 0;
        $var14 = $par1Entity.$posZ;
        $var7 = $var14 | 0;
        if ($var14 < $var7)
            $var7 = $var7 - 1 | 0;
        $var11 = 0;
        var$8 = $this.$random2;
        var$9 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$9;
        $var12 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31));
        $var33 = $var5 - 16 | 0;
        var$12 = $var5 + 16 | 0;
        $var30 = $var7 - 16 | 0;
        $var18 = $var7 + 16 | 0;
        $var21 = $var12 + 4 | 0;
        $var13 = $var33;
        a: while (true) {
            if ($var13 > var$12) {
                if ($var3 < 0.0) {
                    $var16 = $var12 + 2 | 0;
                    while ($var33 <= var$12) {
                        $var14 = $var33 + 0.5 - $par1Entity.$posX;
                        $var31 = $var14 * $var14;
                        $var16_0 = $var30;
                        while ($var16_0 <= $var18) {
                            $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
                            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                            $var17 = $var17 * $var17;
                            if ($var19 >= 0) {
                                var$8 = $this.$worldServerInstance;
                                $ptr = 2;
                                continue main;
                            }
                            $var16_0 = $var16_0 + 1 | 0;
                        }
                        $var33 = $var33 + 1 | 0;
                    }
                }
                $var30 = $var11 % 2 | 0;
                $var18 = 1 - $var30 | 0;
                if (($var11 % 4 | 0) >= 2) {
                    $var30 =  -$var30 | 0;
                    $var18 =  -$var18 | 0;
                }
                if ($var3 < 0.0) {
                    if ($var6 < 70)
                        $var6 = 70;
                    $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                    if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                        $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                    $var19 = (-1);
                    while ($var19 <= 1) {
                        $var20 = 1;
                        while ($var20 < 3) {
                            $var21 = (-1);
                            if ($var21 < 3) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                $var33 = $var21 >= 0 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33)
                                    $var2 = 0;
                                else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 3;
                                $ptr = 8;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                }
                $var19 = 0;
                while ($var19 < 4) {
                    $var20 = 0;
                    while ($var20 < 4) {
                        $var21 = (-1);
                        if ($var21 < 4) {
                            $var2 = $var20 - 1 | 0;
                            $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                            $var23 = $var6 + $var21 | 0;
                            $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                            $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                            $par1Entity = $this.$worldServerInstance;
                            if (!$var33) {
                                nms_Block_$callClinit();
                                $var2 = nms_Block_portal.$blockID;
                            } else {
                                nms_Block_$callClinit();
                                $var2 = nms_Block_obsidian.$blockID;
                            }
                            $var25 = 0;
                            $var26 = 2;
                            $ptr = 7;
                            continue main;
                        }
                        $var20 = $var20 + 1 | 0;
                    }
                    $var2 = 0;
                    while ($var2 < 4) {
                        $var21 = (-1);
                        if ($var21 < 4) {
                            $var25 = $var2 - 1 | 0;
                            $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                            $var23 = $var6 + $var21 | 0;
                            $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                            $par1Entity = $this.$worldServerInstance;
                            $ptr = 4;
                            continue main;
                        }
                        $var2 = $var2 + 1 | 0;
                    }
                    $var19 = $var19 + 1 | 0;
                }
                return 1;
            }
            $var14 = $var13 + 0.5 - $par1Entity.$posX;
            $var31_0 = $var14 * $var14;
            $var16 = $var30;
            while ($var16 <= $var18) {
                $var17 = $var16 + 0.5 - $par1Entity.$posZ;
                $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                $var17 = $var17 * $var17;
                if ($var19 >= 0)
                    break a;
                $var16 = $var16 + 1 | 0;
            }
            $var13 = $var13 + 1 | 0;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$8, $var13, $var19, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 ? 0 : 1) {
            if ($var19 > 0) {
                var$8 = $this.$worldServerInstance;
                $var2 = $var19 - 1 | 0;
                $ptr = 3;
                continue main;
            }
            $var20 = $var12;
            while ($var20 < $var21) {
                $var21_0 = $var20 % 2 | 0;
                $var22_0 = 1 - $var21_0 | 0;
                $var22 = $var20 % 4 | 0;
                if ($var22 >= 2) {
                    $var21_0 =  -$var21_0 | 0;
                    $var22_0 =  -$var22_0 | 0;
                }
                $var23 = 0;
                while ($var23 < 3) {
                    $var24 = 0;
                    while ($var24 < 4) {
                        $var25 = (-1);
                        while ($var25 < 4) {
                            $var2 = $var24 - 1 | 0;
                            $var26 = ($var13 + $rt_imul($var2, $var21_0) | 0) + $rt_imul($var23, $var22_0) | 0;
                            $var27 = $var19 + $var25 | 0;
                            $var28 = ($var16 + $rt_imul($var2, $var22_0) | 0) - $rt_imul($var23, $var21_0) | 0;
                            if ($var25 < 0) {
                                var$8 = $this.$worldServerInstance;
                                $ptr = 11;
                                continue main;
                            }
                            if ($var25 >= 0) {
                                var$8 = $this.$worldServerInstance;
                                $ptr = 12;
                                continue main;
                            }
                            $var25 = $var25 + 1 | 0;
                        }
                        $var24 = $var24 + 1 | 0;
                    }
                    $var23 = $var23 + 1 | 0;
                }
                $var31 = $var19 + 0.5 - $par1Entity.$posY;
                $var32 = $var31_0 + $var31 * $var31 + $var17;
                if ($var3 >= 0.0 && $var32 >= $var3) {
                    $var32 = $var3;
                    $var22 = $var11;
                } else {
                    $var5 = $var13;
                    $var6 = $var19;
                    $var7 = $var16;
                }
                $var20 = $var20 + 1 | 0;
                $var3 = $var32;
                $var11 = $var22;
            }
        }
        $var19 = $var19 + (-1) | 0;
        while ($var19 < 0) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > $var18) {
                $var13 = $var13 + 1 | 0;
                if ($var13 > var$12) {
                    if ($var3 < 0.0) {
                        $var16 = $var12 + 2 | 0;
                        while ($var33 <= var$12) {
                            $var14 = $var33 + 0.5 - $par1Entity.$posX;
                            $var31 = $var14 * $var14;
                            $var16_0 = $var30;
                            while ($var16_0 <= $var18) {
                                $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
                                $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                                $var17 = $var17 * $var17;
                                if ($var19 >= 0) {
                                    var$8 = $this.$worldServerInstance;
                                    $ptr = 2;
                                    continue main;
                                }
                                $var16_0 = $var16_0 + 1 | 0;
                            }
                            $var33 = $var33 + 1 | 0;
                        }
                    }
                    $var30 = $var11 % 2 | 0;
                    $var18 = 1 - $var30 | 0;
                    if (($var11 % 4 | 0) >= 2) {
                        $var30 =  -$var30 | 0;
                        $var18 =  -$var18 | 0;
                    }
                    if ($var3 < 0.0) {
                        if ($var6 < 70)
                            $var6 = 70;
                        $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                        if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                            $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                        $var19 = (-1);
                        while ($var19 <= 1) {
                            $var20 = 1;
                            while ($var20 < 3) {
                                $var21 = (-1);
                                if ($var21 < 3) {
                                    $var2 = $var20 - 1 | 0;
                                    $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                    $var23 = $var6 + $var21 | 0;
                                    $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                    $var33 = $var21 >= 0 ? 0 : 1;
                                    $par1Entity = $this.$worldServerInstance;
                                    if (!$var33)
                                        $var2 = 0;
                                    else {
                                        nms_Block_$callClinit();
                                        $var2 = nms_Block_obsidian.$blockID;
                                    }
                                    $var25 = 0;
                                    $var26 = 3;
                                    $ptr = 8;
                                    continue main;
                                }
                                $var20 = $var20 + 1 | 0;
                            }
                            $var19 = $var19 + 1 | 0;
                        }
                    }
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var14 = $var13 + 0.5 - $par1Entity.$posX;
                $var31_0 = $var14 * $var14;
                $var16 = $var30;
            }
            $var17 = $var16 + 0.5 - $par1Entity.$posZ;
            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var17 = $var17 * $var17;
        }
        var$8 = $this.$worldServerInstance;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$8, $var33, $var19, $var16_0);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 ? 0 : 1) {
            if ($var19 > 0) {
                var$8 = $this.$worldServerInstance;
                $var2 = $var19 - 1 | 0;
                $ptr = 6;
                continue main;
            }
            $var20 = $var12;
            while ($var20 < $var16) {
                $var21 = $var20 % 2 | 0;
                $var22 = 1 - $var21 | 0;
                $var23 = 0;
                while ($var23 < 4) {
                    $var24 = (-1);
                    while ($var24 < 4) {
                        $var2 = $var23 - 1 | 0;
                        $var25 = $var33 + $rt_imul($var2, $var21) | 0;
                        $var26 = $var19 + $var24 | 0;
                        $var27 = $var16_0 + $rt_imul($var2, $var22) | 0;
                        if ($var24 < 0) {
                            var$8 = $this.$worldServerInstance;
                            $ptr = 9;
                            continue main;
                        }
                        if ($var24 >= 0) {
                            var$8 = $this.$worldServerInstance;
                            $ptr = 10;
                            continue main;
                        }
                        $var24 = $var24 + 1 | 0;
                    }
                    $var23 = $var23 + 1 | 0;
                }
                $var31_0 = $var19 + 0.5 - $par1Entity.$posY;
                $var32 = $var31 + $var31_0 * $var31_0 + $var17;
                if ($var3 >= 0.0 && $var32 >= $var3) {
                    $var32 = $var3;
                    $var21 = $var11;
                } else {
                    $var5 = $var33;
                    $var6 = $var19;
                    $var7 = $var16_0;
                }
                $var20 = $var20 + 1 | 0;
                $var3 = $var32;
                $var11 = $var21;
            }
        }
        $var19 = $var19 + (-1) | 0;
        while ($var19 < 0) {
            $var16_0 = $var16_0 + 1 | 0;
            while ($var16_0 > $var18) {
                $var33 = $var33 + 1 | 0;
                if ($var33 > var$12) {
                    $var30 = $var11 % 2 | 0;
                    $var18 = 1 - $var30 | 0;
                    if (($var11 % 4 | 0) >= 2) {
                        $var30 =  -$var30 | 0;
                        $var18 =  -$var18 | 0;
                    }
                    if ($var3 < 0.0) {
                        if ($var6 < 70)
                            $var6 = 70;
                        $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                        if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                            $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                        $var19 = (-1);
                        while ($var19 <= 1) {
                            $var20 = 1;
                            while ($var20 < 3) {
                                $var21 = (-1);
                                if ($var21 < 3) {
                                    $var2 = $var20 - 1 | 0;
                                    $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                    $var23 = $var6 + $var21 | 0;
                                    $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                    $var33 = $var21 >= 0 ? 0 : 1;
                                    $par1Entity = $this.$worldServerInstance;
                                    if (!$var33)
                                        $var2 = 0;
                                    else {
                                        nms_Block_$callClinit();
                                        $var2 = nms_Block_obsidian.$blockID;
                                    }
                                    $var25 = 0;
                                    $var26 = 3;
                                    $ptr = 8;
                                    continue main;
                                }
                                $var20 = $var20 + 1 | 0;
                            }
                            $var19 = $var19 + 1 | 0;
                        }
                    }
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var14 = $var33 + 0.5 - $par1Entity.$posX;
                $var31 = $var14 * $var14;
                $var16_0 = $var30;
            }
            $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var17 = $var17 * $var17;
        }
        var$8 = $this.$worldServerInstance;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId(var$8, $var13, $var2, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 ? 0 : 1) {
            $var19 = $var19 + (-1) | 0;
            if ($var19 > 0) {
                var$8 = $this.$worldServerInstance;
                $var2 = $var19 - 1 | 0;
                continue main;
            }
        }
        $var20 = $var12;
        b: while (true) {
            if ($var20 >= $var21) {
                $var19 = $var19 + (-1) | 0;
                while ($var19 < 0) {
                    $var16 = $var16 + 1 | 0;
                    while ($var16 > $var18) {
                        $var13 = $var13 + 1 | 0;
                        if ($var13 > var$12) {
                            if ($var3 < 0.0) {
                                $var16 = $var12 + 2 | 0;
                                while ($var33 <= var$12) {
                                    $var14 = $var33 + 0.5 - $par1Entity.$posX;
                                    $var31 = $var14 * $var14;
                                    $var16_0 = $var30;
                                    while ($var16_0 <= $var18) {
                                        $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
                                        $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                                        $var17 = $var17 * $var17;
                                        if ($var19 >= 0) {
                                            var$8 = $this.$worldServerInstance;
                                            $ptr = 2;
                                            continue main;
                                        }
                                        $var16_0 = $var16_0 + 1 | 0;
                                    }
                                    $var33 = $var33 + 1 | 0;
                                }
                            }
                            $var30 = $var11 % 2 | 0;
                            $var18 = 1 - $var30 | 0;
                            if (($var11 % 4 | 0) >= 2) {
                                $var30 =  -$var30 | 0;
                                $var18 =  -$var18 | 0;
                            }
                            if ($var3 < 0.0) {
                                if ($var6 < 70)
                                    $var6 = 70;
                                $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                                if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                                    $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                                $var19 = (-1);
                                while ($var19 <= 1) {
                                    $var20 = 1;
                                    while ($var20 < 3) {
                                        $var21 = (-1);
                                        if ($var21 < 3) {
                                            $var2 = $var20 - 1 | 0;
                                            $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                            $var23 = $var6 + $var21 | 0;
                                            $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                            $var33 = $var21 >= 0 ? 0 : 1;
                                            $par1Entity = $this.$worldServerInstance;
                                            if (!$var33)
                                                $var2 = 0;
                                            else {
                                                nms_Block_$callClinit();
                                                $var2 = nms_Block_obsidian.$blockID;
                                            }
                                            $var25 = 0;
                                            $var26 = 3;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $var20 = $var20 + 1 | 0;
                                    }
                                    $var19 = $var19 + 1 | 0;
                                }
                            }
                            $var19 = 0;
                            while ($var19 < 4) {
                                $var20 = 0;
                                while ($var20 < 4) {
                                    $var21 = (-1);
                                    if ($var21 < 4) {
                                        $var2 = $var20 - 1 | 0;
                                        $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                        $var23 = $var6 + $var21 | 0;
                                        $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                        $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                        $par1Entity = $this.$worldServerInstance;
                                        if (!$var33) {
                                            nms_Block_$callClinit();
                                            $var2 = nms_Block_portal.$blockID;
                                        } else {
                                            nms_Block_$callClinit();
                                            $var2 = nms_Block_obsidian.$blockID;
                                        }
                                        $var25 = 0;
                                        $var26 = 2;
                                        $ptr = 7;
                                        continue main;
                                    }
                                    $var20 = $var20 + 1 | 0;
                                }
                                $var2 = 0;
                                while ($var2 < 4) {
                                    $var21 = (-1);
                                    if ($var21 < 4) {
                                        $var25 = $var2 - 1 | 0;
                                        $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                        $var23 = $var6 + $var21 | 0;
                                        $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                        $par1Entity = $this.$worldServerInstance;
                                        $ptr = 4;
                                        continue main;
                                    }
                                    $var2 = $var2 + 1 | 0;
                                }
                                $var19 = $var19 + 1 | 0;
                            }
                            return 1;
                        }
                        $var14 = $var13 + 0.5 - $par1Entity.$posX;
                        $var31_0 = $var14 * $var14;
                        $var16 = $var30;
                    }
                    $var17 = $var16 + 0.5 - $par1Entity.$posZ;
                    $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                    $var17 = $var17 * $var17;
                }
                var$8 = $this.$worldServerInstance;
                $ptr = 1;
                continue main;
            }
            $var21_0 = $var20 % 2 | 0;
            $var22_0 = 1 - $var21_0 | 0;
            $var22 = $var20 % 4 | 0;
            if ($var22 >= 2) {
                $var21_0 =  -$var21_0 | 0;
                $var22_0 =  -$var22_0 | 0;
            }
            $var23 = 0;
            while ($var23 < 3) {
                $var24 = 0;
                while ($var24 < 4) {
                    $var25 = (-1);
                    while ($var25 < 4) {
                        $var2 = $var24 - 1 | 0;
                        $var26 = ($var13 + $rt_imul($var2, $var21_0) | 0) + $rt_imul($var23, $var22_0) | 0;
                        $var27 = $var19 + $var25 | 0;
                        $var28 = ($var16 + $rt_imul($var2, $var22_0) | 0) - $rt_imul($var23, $var21_0) | 0;
                        if ($var25 < 0) {
                            var$8 = $this.$worldServerInstance;
                            $ptr = 11;
                            continue main;
                        }
                        if ($var25 >= 0)
                            break b;
                        $var25 = $var25 + 1 | 0;
                    }
                    $var24 = $var24 + 1 | 0;
                }
                $var23 = $var23 + 1 | 0;
            }
            $var31 = $var19 + 0.5 - $par1Entity.$posY;
            $var32 = $var31_0 + $var31 * $var31 + $var17;
            if ($var3 >= 0.0 && $var32 >= $var3) {
                $var32 = $var3;
                $var22 = $var11;
            } else {
                $var5 = $var13;
                $var6 = $var19;
                $var7 = $var16;
            }
            $var20 = $var20 + 1 | 0;
            $var3 = $var32;
            $var11 = $var22;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 12;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1Entity, $var22, $var23, $var24);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $tmp;
        $ptr = 5;
    case 5:
        nms_World_notifyBlocksOfNeighborChange($par1Entity, $var22, $var23, $var24, $var25);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $var21 + 1 | 0;
        c: while (true) {
            if ($var21 < 4) {
                $var25 = $var2 - 1 | 0;
                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                $var23 = $var6 + $var21 | 0;
                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                $par1Entity = $this.$worldServerInstance;
                $ptr = 4;
                continue main;
            }
            $var2 = $var2 + 1 | 0;
            while ($var2 >= 4) {
                $var19 = $var19 + 1 | 0;
                if ($var19 >= 4)
                    break c;
                $var20 = 0;
                while ($var20 < 4) {
                    $var21 = (-1);
                    if ($var21 < 4) {
                        $var2 = $var20 - 1 | 0;
                        $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                        $var23 = $var6 + $var21 | 0;
                        $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                        $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                        $par1Entity = $this.$worldServerInstance;
                        if (!$var33) {
                            nms_Block_$callClinit();
                            $var2 = nms_Block_portal.$blockID;
                        } else {
                            nms_Block_$callClinit();
                            $var2 = nms_Block_obsidian.$blockID;
                        }
                        $var25 = 0;
                        $var26 = 2;
                        $ptr = 7;
                        continue main;
                    }
                    $var20 = $var20 + 1 | 0;
                }
                $var2 = 0;
            }
            $var21 = (-1);
        }
        return 1;
    case 6:
        $tmp = nms_World_getBlockId(var$8, $var33, $var2, $var16_0);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 ? 0 : 1) {
            $var19 = $var19 + (-1) | 0;
            if ($var19 > 0) {
                var$8 = $this.$worldServerInstance;
                $var2 = $var19 - 1 | 0;
                continue main;
            }
        }
        $var20 = $var12;
        b: while (true) {
            if ($var20 >= $var16) {
                $var19 = $var19 + (-1) | 0;
                while ($var19 < 0) {
                    $var16_0 = $var16_0 + 1 | 0;
                    while ($var16_0 > $var18) {
                        $var33 = $var33 + 1 | 0;
                        if ($var33 > var$12) {
                            $var30 = $var11 % 2 | 0;
                            $var18 = 1 - $var30 | 0;
                            if (($var11 % 4 | 0) >= 2) {
                                $var30 =  -$var30 | 0;
                                $var18 =  -$var18 | 0;
                            }
                            if ($var3 < 0.0) {
                                if ($var6 < 70)
                                    $var6 = 70;
                                $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                                if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                                    $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                                $var19 = (-1);
                                while ($var19 <= 1) {
                                    $var20 = 1;
                                    while ($var20 < 3) {
                                        $var21 = (-1);
                                        if ($var21 < 3) {
                                            $var2 = $var20 - 1 | 0;
                                            $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                            $var23 = $var6 + $var21 | 0;
                                            $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                            $var33 = $var21 >= 0 ? 0 : 1;
                                            $par1Entity = $this.$worldServerInstance;
                                            if (!$var33)
                                                $var2 = 0;
                                            else {
                                                nms_Block_$callClinit();
                                                $var2 = nms_Block_obsidian.$blockID;
                                            }
                                            $var25 = 0;
                                            $var26 = 3;
                                            $ptr = 8;
                                            continue main;
                                        }
                                        $var20 = $var20 + 1 | 0;
                                    }
                                    $var19 = $var19 + 1 | 0;
                                }
                            }
                            $var19 = 0;
                            while ($var19 < 4) {
                                $var20 = 0;
                                while ($var20 < 4) {
                                    $var21 = (-1);
                                    if ($var21 < 4) {
                                        $var2 = $var20 - 1 | 0;
                                        $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                        $var23 = $var6 + $var21 | 0;
                                        $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                        $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                        $par1Entity = $this.$worldServerInstance;
                                        if (!$var33) {
                                            nms_Block_$callClinit();
                                            $var2 = nms_Block_portal.$blockID;
                                        } else {
                                            nms_Block_$callClinit();
                                            $var2 = nms_Block_obsidian.$blockID;
                                        }
                                        $var25 = 0;
                                        $var26 = 2;
                                        $ptr = 7;
                                        continue main;
                                    }
                                    $var20 = $var20 + 1 | 0;
                                }
                                $var2 = 0;
                                while ($var2 < 4) {
                                    $var21 = (-1);
                                    if ($var21 < 4) {
                                        $var25 = $var2 - 1 | 0;
                                        $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                        $var23 = $var6 + $var21 | 0;
                                        $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                        $par1Entity = $this.$worldServerInstance;
                                        $ptr = 4;
                                        continue main;
                                    }
                                    $var2 = $var2 + 1 | 0;
                                }
                                $var19 = $var19 + 1 | 0;
                            }
                            return 1;
                        }
                        $var14 = $var33 + 0.5 - $par1Entity.$posX;
                        $var31 = $var14 * $var14;
                        $var16_0 = $var30;
                    }
                    $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
                    $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                    $var17 = $var17 * $var17;
                }
                var$8 = $this.$worldServerInstance;
                $ptr = 2;
                continue main;
            }
            $var21 = $var20 % 2 | 0;
            $var22 = 1 - $var21 | 0;
            $var23 = 0;
            while ($var23 < 4) {
                $var24 = (-1);
                while ($var24 < 4) {
                    $var2 = $var23 - 1 | 0;
                    $var25 = $var33 + $rt_imul($var2, $var21) | 0;
                    $var26 = $var19 + $var24 | 0;
                    $var27 = $var16_0 + $rt_imul($var2, $var22) | 0;
                    if ($var24 < 0) {
                        var$8 = $this.$worldServerInstance;
                        $ptr = 9;
                        continue main;
                    }
                    if ($var24 >= 0)
                        break b;
                    $var24 = $var24 + 1 | 0;
                }
                $var23 = $var23 + 1 | 0;
            }
            $var31_0 = $var19 + 0.5 - $par1Entity.$posY;
            $var32 = $var31 + $var31_0 * $var31_0 + $var17;
            if ($var3 >= 0.0 && $var32 >= $var3) {
                $var32 = $var3;
                $var21 = $var11;
            } else {
                $var5 = $var33;
                $var6 = $var19;
                $var7 = $var16_0;
            }
            $var20 = $var20 + 1 | 0;
            $var3 = $var32;
            $var11 = $var21;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 10;
        continue main;
    case 7:
        nms_World_setBlock($par1Entity, $var22, $var23, $var24, $var2, $var25, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $var21 + 1 | 0;
        c: while (true) {
            if ($var21 < 4) {
                $var2 = $var20 - 1 | 0;
                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                $var23 = $var6 + $var21 | 0;
                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                $par1Entity = $this.$worldServerInstance;
                if (!$var33) {
                    nms_Block_$callClinit();
                    $var2 = nms_Block_portal.$blockID;
                } else {
                    nms_Block_$callClinit();
                    $var2 = nms_Block_obsidian.$blockID;
                }
                $var25 = 0;
                $var26 = 2;
                continue main;
            }
            $var20 = $var20 + 1 | 0;
            while ($var20 >= 4) {
                $var2 = 0;
                while ($var2 < 4) {
                    $var21 = (-1);
                    if ($var21 < 4) {
                        $var25 = $var2 - 1 | 0;
                        $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                        $var23 = $var6 + $var21 | 0;
                        $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                        $par1Entity = $this.$worldServerInstance;
                        $ptr = 4;
                        continue main;
                    }
                    $var2 = $var2 + 1 | 0;
                }
                $var19 = $var19 + 1 | 0;
                if ($var19 >= 4)
                    break c;
                $var20 = 0;
            }
            $var21 = (-1);
        }
        return 1;
    case 8:
        nms_World_setBlock($par1Entity, $var22, $var23, $var24, $var2, $var25, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $var21 + 1 | 0;
        while ($var21 >= 3) {
            $var20 = $var20 + 1 | 0;
            while ($var20 >= 3) {
                $var19 = $var19 + 1 | 0;
                if ($var19 > 1) {
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var20 = 1;
            }
            $var21 = (-1);
        }
        $var2 = $var20 - 1 | 0;
        $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
        $var23 = $var6 + $var21 | 0;
        $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
        $var33 = $var21 >= 0 ? 0 : 1;
        $par1Entity = $this.$worldServerInstance;
        if (!$var33)
            $var2 = 0;
        else {
            nms_Block_$callClinit();
            $var2 = nms_Block_obsidian.$blockID;
        }
        $var25 = 0;
        $var26 = 3;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId(var$8, $var25, $var26, $var27);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!$var2) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var2].$blockMaterial;
        }
        if (var$8.$isSolid())
            d: while (true) {
                if ($var24 >= 0) {
                    var$8 = $this.$worldServerInstance;
                    $ptr = 10;
                    continue main;
                }
                $var24 = $var24 + 1 | 0;
                while ($var24 >= 4) {
                    $var23 = $var23 + 1 | 0;
                    while ($var23 >= 4) {
                        $var31_0 = $var19 + 0.5 - $par1Entity.$posY;
                        $var32 = $var31 + $var31_0 * $var31_0 + $var17;
                        if ($var3 >= 0.0 && $var32 >= $var3) {
                            $var32 = $var3;
                            $var21 = $var11;
                        } else {
                            $var5 = $var33;
                            $var6 = $var19;
                            $var7 = $var16_0;
                        }
                        $var20 = $var20 + 1 | 0;
                        $var3 = $var32;
                        $var11 = $var21;
                        if ($var20 >= $var16)
                            break d;
                        $var21 = $var20 % 2 | 0;
                        $var22 = 1 - $var21 | 0;
                        $var23 = 0;
                    }
                    $var24 = (-1);
                }
                $var2 = $var23 - 1 | 0;
                $var25 = $var33 + $rt_imul($var2, $var21) | 0;
                $var26 = $var19 + $var24 | 0;
                $var27 = $var16_0 + $rt_imul($var2, $var22) | 0;
                if ($var24 >= 0)
                    continue;
                else {
                    var$8 = $this.$worldServerInstance;
                    continue main;
                }
            }
        $var19 = $var19 + (-1) | 0;
        while ($var19 < 0) {
            $var16_0 = $var16_0 + 1 | 0;
            while ($var16_0 > $var18) {
                $var33 = $var33 + 1 | 0;
                if ($var33 > var$12) {
                    $var30 = $var11 % 2 | 0;
                    $var18 = 1 - $var30 | 0;
                    if (($var11 % 4 | 0) >= 2) {
                        $var30 =  -$var30 | 0;
                        $var18 =  -$var18 | 0;
                    }
                    if ($var3 < 0.0) {
                        if ($var6 < 70)
                            $var6 = 70;
                        $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                        if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                            $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                        $var19 = (-1);
                        while ($var19 <= 1) {
                            $var20 = 1;
                            while ($var20 < 3) {
                                $var21 = (-1);
                                if ($var21 < 3) {
                                    $var2 = $var20 - 1 | 0;
                                    $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                    $var23 = $var6 + $var21 | 0;
                                    $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                    $var33 = $var21 >= 0 ? 0 : 1;
                                    $par1Entity = $this.$worldServerInstance;
                                    if (!$var33)
                                        $var2 = 0;
                                    else {
                                        nms_Block_$callClinit();
                                        $var2 = nms_Block_obsidian.$blockID;
                                    }
                                    $var25 = 0;
                                    $var26 = 3;
                                    $ptr = 8;
                                    continue main;
                                }
                                $var20 = $var20 + 1 | 0;
                            }
                            $var19 = $var19 + 1 | 0;
                        }
                    }
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var14 = $var33 + 0.5 - $par1Entity.$posX;
                $var31 = $var14 * $var14;
                $var16_0 = $var30;
            }
            $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var17 = $var17 * $var17;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 2;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId(var$8, $var25, $var26, $var27);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 ? 0 : 1)
            d: while (true) {
                $var24 = $var24 + 1 | 0;
                while ($var24 >= 4) {
                    $var23 = $var23 + 1 | 0;
                    while ($var23 >= 4) {
                        $var31_0 = $var19 + 0.5 - $par1Entity.$posY;
                        $var32 = $var31 + $var31_0 * $var31_0 + $var17;
                        if ($var3 >= 0.0 && $var32 >= $var3) {
                            $var32 = $var3;
                            $var21 = $var11;
                        } else {
                            $var5 = $var33;
                            $var6 = $var19;
                            $var7 = $var16_0;
                        }
                        $var20 = $var20 + 1 | 0;
                        $var3 = $var32;
                        $var11 = $var21;
                        if ($var20 >= $var16)
                            break d;
                        $var21 = $var20 % 2 | 0;
                        $var22 = 1 - $var21 | 0;
                        $var23 = 0;
                    }
                    $var24 = (-1);
                }
                $var2 = $var23 - 1 | 0;
                $var25 = $var33 + $rt_imul($var2, $var21) | 0;
                $var26 = $var19 + $var24 | 0;
                $var27 = $var16_0 + $rt_imul($var2, $var22) | 0;
                if ($var24 < 0) {
                    var$8 = $this.$worldServerInstance;
                    $ptr = 9;
                    continue main;
                }
                if ($var24 < 0)
                    continue;
                else {
                    var$8 = $this.$worldServerInstance;
                    continue main;
                }
            }
        $var19 = $var19 + (-1) | 0;
        while ($var19 < 0) {
            $var16_0 = $var16_0 + 1 | 0;
            while ($var16_0 > $var18) {
                $var33 = $var33 + 1 | 0;
                if ($var33 > var$12) {
                    $var30 = $var11 % 2 | 0;
                    $var18 = 1 - $var30 | 0;
                    if (($var11 % 4 | 0) >= 2) {
                        $var30 =  -$var30 | 0;
                        $var18 =  -$var18 | 0;
                    }
                    if ($var3 < 0.0) {
                        if ($var6 < 70)
                            $var6 = 70;
                        $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                        if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                            $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                        $var19 = (-1);
                        while ($var19 <= 1) {
                            $var20 = 1;
                            while ($var20 < 3) {
                                $var21 = (-1);
                                if ($var21 < 3) {
                                    $var2 = $var20 - 1 | 0;
                                    $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                    $var23 = $var6 + $var21 | 0;
                                    $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                    $var33 = $var21 >= 0 ? 0 : 1;
                                    $par1Entity = $this.$worldServerInstance;
                                    if (!$var33)
                                        $var2 = 0;
                                    else {
                                        nms_Block_$callClinit();
                                        $var2 = nms_Block_obsidian.$blockID;
                                    }
                                    $var25 = 0;
                                    $var26 = 3;
                                    $ptr = 8;
                                    continue main;
                                }
                                $var20 = $var20 + 1 | 0;
                            }
                            $var19 = $var19 + 1 | 0;
                        }
                    }
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var14 = $var33 + 0.5 - $par1Entity.$posX;
                $var31 = $var14 * $var14;
                $var16_0 = $var30;
            }
            $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var17 = $var17 * $var17;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 2;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId(var$8, $var26, $var27, $var28);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!$var2) {
            nms_Material_$callClinit();
            var$8 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$8 = nms_Block_blocksList.data[$var2].$blockMaterial;
        }
        if (var$8.$isSolid())
            d: while (true) {
                if ($var25 >= 0) {
                    var$8 = $this.$worldServerInstance;
                    $ptr = 12;
                    continue main;
                }
                $var25 = $var25 + 1 | 0;
                while ($var25 >= 4) {
                    $var24 = $var24 + 1 | 0;
                    while ($var24 >= 4) {
                        $var23 = $var23 + 1 | 0;
                        while ($var23 >= 3) {
                            $var31 = $var19 + 0.5 - $par1Entity.$posY;
                            $var32 = $var31_0 + $var31 * $var31 + $var17;
                            if ($var3 >= 0.0 && $var32 >= $var3) {
                                $var32 = $var3;
                                $var22 = $var11;
                            } else {
                                $var5 = $var13;
                                $var6 = $var19;
                                $var7 = $var16;
                            }
                            $var20 = $var20 + 1 | 0;
                            $var3 = $var32;
                            $var11 = $var22;
                            if ($var20 >= $var21)
                                break d;
                            $var21_0 = $var20 % 2 | 0;
                            $var22_0 = 1 - $var21_0 | 0;
                            $var22 = $var20 % 4 | 0;
                            if ($var22 >= 2) {
                                $var21_0 =  -$var21_0 | 0;
                                $var22_0 =  -$var22_0 | 0;
                            }
                            $var23 = 0;
                        }
                        $var24 = 0;
                    }
                    $var25 = (-1);
                }
                $var2 = $var24 - 1 | 0;
                $var26 = ($var13 + $rt_imul($var2, $var21_0) | 0) + $rt_imul($var23, $var22_0) | 0;
                $var27 = $var19 + $var25 | 0;
                $var28 = ($var16 + $rt_imul($var2, $var22_0) | 0) - $rt_imul($var23, $var21_0) | 0;
                if ($var25 >= 0)
                    continue;
                else {
                    var$8 = $this.$worldServerInstance;
                    continue main;
                }
            }
        $var19 = $var19 + (-1) | 0;
        while ($var19 < 0) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > $var18) {
                $var13 = $var13 + 1 | 0;
                if ($var13 > var$12) {
                    if ($var3 < 0.0) {
                        $var16 = $var12 + 2 | 0;
                        while ($var33 <= var$12) {
                            $var14 = $var33 + 0.5 - $par1Entity.$posX;
                            $var31 = $var14 * $var14;
                            $var16_0 = $var30;
                            while ($var16_0 <= $var18) {
                                $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
                                $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                                $var17 = $var17 * $var17;
                                if ($var19 >= 0) {
                                    var$8 = $this.$worldServerInstance;
                                    $ptr = 2;
                                    continue main;
                                }
                                $var16_0 = $var16_0 + 1 | 0;
                            }
                            $var33 = $var33 + 1 | 0;
                        }
                    }
                    $var30 = $var11 % 2 | 0;
                    $var18 = 1 - $var30 | 0;
                    if (($var11 % 4 | 0) >= 2) {
                        $var30 =  -$var30 | 0;
                        $var18 =  -$var18 | 0;
                    }
                    if ($var3 < 0.0) {
                        if ($var6 < 70)
                            $var6 = 70;
                        $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                        if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                            $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                        $var19 = (-1);
                        while ($var19 <= 1) {
                            $var20 = 1;
                            while ($var20 < 3) {
                                $var21 = (-1);
                                if ($var21 < 3) {
                                    $var2 = $var20 - 1 | 0;
                                    $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                    $var23 = $var6 + $var21 | 0;
                                    $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                    $var33 = $var21 >= 0 ? 0 : 1;
                                    $par1Entity = $this.$worldServerInstance;
                                    if (!$var33)
                                        $var2 = 0;
                                    else {
                                        nms_Block_$callClinit();
                                        $var2 = nms_Block_obsidian.$blockID;
                                    }
                                    $var25 = 0;
                                    $var26 = 3;
                                    $ptr = 8;
                                    continue main;
                                }
                                $var20 = $var20 + 1 | 0;
                            }
                            $var19 = $var19 + 1 | 0;
                        }
                    }
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var14 = $var13 + 0.5 - $par1Entity.$posX;
                $var31_0 = $var14 * $var14;
                $var16 = $var30;
            }
            $var17 = $var16 + 0.5 - $par1Entity.$posZ;
            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var17 = $var17 * $var17;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 1;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$8, $var26, $var27, $var28);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 ? 0 : 1)
            d: while (true) {
                $var25 = $var25 + 1 | 0;
                while ($var25 >= 4) {
                    $var24 = $var24 + 1 | 0;
                    while ($var24 >= 4) {
                        $var23 = $var23 + 1 | 0;
                        while ($var23 >= 3) {
                            $var31 = $var19 + 0.5 - $par1Entity.$posY;
                            $var32 = $var31_0 + $var31 * $var31 + $var17;
                            if ($var3 >= 0.0 && $var32 >= $var3) {
                                $var32 = $var3;
                                $var22 = $var11;
                            } else {
                                $var5 = $var13;
                                $var6 = $var19;
                                $var7 = $var16;
                            }
                            $var20 = $var20 + 1 | 0;
                            $var3 = $var32;
                            $var11 = $var22;
                            if ($var20 >= $var21)
                                break d;
                            $var21_0 = $var20 % 2 | 0;
                            $var22_0 = 1 - $var21_0 | 0;
                            $var22 = $var20 % 4 | 0;
                            if ($var22 >= 2) {
                                $var21_0 =  -$var21_0 | 0;
                                $var22_0 =  -$var22_0 | 0;
                            }
                            $var23 = 0;
                        }
                        $var24 = 0;
                    }
                    $var25 = (-1);
                }
                $var2 = $var24 - 1 | 0;
                $var26 = ($var13 + $rt_imul($var2, $var21_0) | 0) + $rt_imul($var23, $var22_0) | 0;
                $var27 = $var19 + $var25 | 0;
                $var28 = ($var16 + $rt_imul($var2, $var22_0) | 0) - $rt_imul($var23, $var21_0) | 0;
                if ($var25 < 0) {
                    var$8 = $this.$worldServerInstance;
                    $ptr = 11;
                    continue main;
                }
                if ($var25 < 0)
                    continue;
                else {
                    var$8 = $this.$worldServerInstance;
                    continue main;
                }
            }
        $var19 = $var19 + (-1) | 0;
        while ($var19 < 0) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > $var18) {
                $var13 = $var13 + 1 | 0;
                if ($var13 > var$12) {
                    if ($var3 < 0.0) {
                        $var16 = $var12 + 2 | 0;
                        while ($var33 <= var$12) {
                            $var14 = $var33 + 0.5 - $par1Entity.$posX;
                            $var31 = $var14 * $var14;
                            $var16_0 = $var30;
                            while ($var16_0 <= $var18) {
                                $var17 = $var16_0 + 0.5 - $par1Entity.$posZ;
                                $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
                                $var17 = $var17 * $var17;
                                if ($var19 >= 0) {
                                    var$8 = $this.$worldServerInstance;
                                    $ptr = 2;
                                    continue main;
                                }
                                $var16_0 = $var16_0 + 1 | 0;
                            }
                            $var33 = $var33 + 1 | 0;
                        }
                    }
                    $var30 = $var11 % 2 | 0;
                    $var18 = 1 - $var30 | 0;
                    if (($var11 % 4 | 0) >= 2) {
                        $var30 =  -$var30 | 0;
                        $var18 =  -$var18 | 0;
                    }
                    if ($var3 < 0.0) {
                        if ($var6 < 70)
                            $var6 = 70;
                        $var25 = $this.$worldServerInstance.$provider.$hasNoSky;
                        if ($var6 > ((!$var25 ? 256 : 128) - 10 | 0))
                            $var6 = (!$var25 ? 256 : 128) - 10 | 0;
                        $var19 = (-1);
                        while ($var19 <= 1) {
                            $var20 = 1;
                            while ($var20 < 3) {
                                $var21 = (-1);
                                if ($var21 < 3) {
                                    $var2 = $var20 - 1 | 0;
                                    $var22 = ($var5 + $rt_imul($var2, $var30) | 0) + $rt_imul($var19, $var18) | 0;
                                    $var23 = $var6 + $var21 | 0;
                                    $var24 = ($var7 + $rt_imul($var2, $var18) | 0) - $rt_imul($var19, $var30) | 0;
                                    $var33 = $var21 >= 0 ? 0 : 1;
                                    $par1Entity = $this.$worldServerInstance;
                                    if (!$var33)
                                        $var2 = 0;
                                    else {
                                        nms_Block_$callClinit();
                                        $var2 = nms_Block_obsidian.$blockID;
                                    }
                                    $var25 = 0;
                                    $var26 = 3;
                                    $ptr = 8;
                                    continue main;
                                }
                                $var20 = $var20 + 1 | 0;
                            }
                            $var19 = $var19 + 1 | 0;
                        }
                    }
                    $var19 = 0;
                    while ($var19 < 4) {
                        $var20 = 0;
                        while ($var20 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var2 = $var20 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var2, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var2, $var18) | 0;
                                $var33 = $var20 && $var20 != 3 && $var21 != (-1) && $var21 != 3 ? 0 : 1;
                                $par1Entity = $this.$worldServerInstance;
                                if (!$var33) {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_portal.$blockID;
                                } else {
                                    nms_Block_$callClinit();
                                    $var2 = nms_Block_obsidian.$blockID;
                                }
                                $var25 = 0;
                                $var26 = 2;
                                $ptr = 7;
                                continue main;
                            }
                            $var20 = $var20 + 1 | 0;
                        }
                        $var2 = 0;
                        while ($var2 < 4) {
                            $var21 = (-1);
                            if ($var21 < 4) {
                                $var25 = $var2 - 1 | 0;
                                $var22 = $var5 + $rt_imul($var25, $var30) | 0;
                                $var23 = $var6 + $var21 | 0;
                                $var24 = $var7 + $rt_imul($var25, $var18) | 0;
                                $par1Entity = $this.$worldServerInstance;
                                $ptr = 4;
                                continue main;
                            }
                            $var2 = $var2 + 1 | 0;
                        }
                        $var19 = $var19 + 1 | 0;
                    }
                    return 1;
                }
                $var14 = $var13 + 0.5 - $par1Entity.$posX;
                $var31_0 = $var14 * $var14;
                $var16 = $var30;
            }
            $var17 = $var16 + 0.5 - $par1Entity.$posZ;
            $var19 = (!$this.$worldServerInstance.$provider.$hasNoSky ? 256 : 128) - 1 | 0;
            $var17 = $var17 * $var17;
        }
        var$8 = $this.$worldServerInstance;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var3, $var14, $var5, $var6, $var7, $var11, var$8, var$9, $var12, $var33, var$12, $var30, $var18, $var21, $var13, $var16, $var31, $var16_0, $var17, $var19, $var25, $var20, $var2, $var22, $var23, $var24, $var26, $var31_0, $var21_0, $var22_0, $var27, $var28, $var32, $ptr);
},
nms_Teleporter_removeStalePortalLocations = ($this, $par1) => {
    let $var6, $var3, $var4, var$5, var$6, $var7, var$8, var$9;
    a: {
        if (Long_eq(Long_rem($par1, Long_fromInt(100)), Long_ZERO)) {
            $var6 = $this.$destinationCoordinateKeys;
            $var3 = new ju_AbstractList$1;
            $var3.$this$00 = $var6;
            $var3.$modCount0 = $var6.$modCount;
            $var3.$size3 = $var6.$size();
            $var3.$removeIndex = (-1);
            $var4 = Long_sub($par1, Long_fromInt(600));
            while (true) {
                var$5 = $var3.$index;
                if (!(var$5 >= $var3.$size3 ? 0 : 1))
                    break a;
                var$6 = $var3.$modCount0;
                $var6 = $var3.$this$00;
                if (var$6 < $var6.$modCount) {
                    $var6 = new ju_ConcurrentModificationException;
                    $var6.$suppressionEnabled = 1;
                    $var6.$writableStackTrace = 1;
                    $rt_throw($var6);
                }
                $var3.$removeIndex = var$5;
                $var3.$index = var$5 + 1 | 0;
                $var6 = $var6.$get(var$5);
                $var7 = $this.$destinationCoordinateCache;
                var$8 = $var6.$value7;
                var$5 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$9 = $var7.$hashArray.data;
                $var7 = var$9[var$5 & (var$9.length - 1 | 0)];
                b: {
                    while ($var7 !== null) {
                        if (Long_eq($var7.$key1, var$8)) {
                            $var7 = $var7.$value4;
                            break b;
                        }
                        $var7 = $var7.$nextEntry;
                    }
                    $var7 = null;
                }
                $var7 = $var7;
                if (!($var7 !== null && Long_ge($var7.$lastUpdateTime, $var4))) {
                    ju_AbstractList$1_remove($var3);
                    nms_LongHashMap_removeKey($this.$destinationCoordinateCache, $var6.$value7);
                }
            }
        }
    }
};
function nms_Scoreboard() {
    let a = this; jl_Object.call(a);
    a.$scoreObjectives = null;
    a.$field_96543_b = null;
    a.$field_96544_c = null;
    a.$field_96541_d = null;
    a.$field_96542_e = null;
    a.$teamMemberships = null;
}
let nms_Scoreboard__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$scoreObjectives = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$field_96543_b = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$field_96544_c = var$1;
    $this.$field_96541_d = $rt_createArray(nms_ScoreObjective, 3);
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$field_96542_e = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$teamMemberships = var$1;
},
nms_Scoreboard__init_0 = () => {
    let var_0 = new nms_Scoreboard();
    nms_Scoreboard__init_(var_0);
    return var_0;
},
nms_Scoreboard_getObjective = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$scoreObjectives;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? null : var$2.$value0;
},
nms_Scoreboard_func_96535_a = ($this, $par1Str, $par2ScoreObjectiveCriteria) => {
    let $var4, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var3;
    $var4 = $this.$scoreObjectives;
    if ($par1Str === null) {
        var$4 = $var4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$5 = $par1Str.$hashCode1;
        var$6 = $var4.$elementData.data;
        var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$5) {
                b: {
                    $var4 = var$4.$key;
                    if ($par1Str !== $var4) {
                        if ($par1Str === $var4)
                            var$7 = 1;
                        else if (!($var4 instanceof jl_String))
                            var$7 = 0;
                        else {
                            $var4 = $var4;
                            var$7 = $par1Str.$nativeString !== $var4.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break b;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    $var4 = var$4 === null ? null : var$4.$value0;
    if ($var4 !== null) {
        $par2ScoreObjectiveCriteria = new jl_IllegalArgumentException;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(2052));
        var$5 = $var4.$length0;
        if ($par1Str === null)
            $par1Str = $rt_s(1);
        jl_AbstractStringBuilder_insert($var4, var$5, $par1Str);
        jl_AbstractStringBuilder_insert($var4, $var4.$length0, $rt_s(2053));
        $par1Str = new jl_String;
        var$6 = $var4.$buffer;
        var$8 = var$6.data;
        var$7 = $var4.$length0;
        var$9 = var$8.length;
        if (var$7 >= 0 && var$7 <= (var$9 - 0 | 0)) {
            $par1Str.$nativeString = $rt_charArrayToString(var$6.data, 0, var$7);
            $par2ScoreObjectiveCriteria.$suppressionEnabled = 1;
            $par2ScoreObjectiveCriteria.$writableStackTrace = 1;
            $par2ScoreObjectiveCriteria.$message = $par1Str;
            $rt_throw($par2ScoreObjectiveCriteria);
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Str);
        $rt_throw($par1Str);
    }
    var$10 = new nms_ScoreObjective;
    var$10.$theScoreboard2 = $this;
    var$10.$name4 = $par1Str;
    var$10.$objectiveCriteria = $par2ScoreObjectiveCriteria;
    var$10.$displayName0 = $par1Str;
    var$11 = $this.$field_96543_b;
    if ($par2ScoreObjectiveCriteria === null) {
        $var4 = var$11.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        $var4 = $par2ScoreObjectiveCriteria;
        if (!$var4.$id$)
            $var4.$id$ = $rt_nextId();
        var$7 = $par2ScoreObjectiveCriteria.$id$;
        var$6 = var$11.$elementData.data;
        $var4 = var$6[var$7 & (var$6.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$7) {
                $var3 = $var4.$key;
                if ($par2ScoreObjectiveCriteria !== $var3 && !($par2ScoreObjectiveCriteria !== $var3 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    $var4 = $var4 === null ? null : $var4.$value0;
    if ($var4 === null) {
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        ju_HashMap_putImpl($this.$field_96543_b, $par2ScoreObjectiveCriteria, $var4);
    }
    ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
    var$6 = $var4.$array.data;
    var$7 = $var4.$size0;
    $var4.$size0 = var$7 + 1 | 0;
    var$6[var$7] = var$10;
    $var4.$modCount = $var4.$modCount + 1 | 0;
    ju_HashMap_putImpl($this.$scoreObjectives, $par1Str, var$10);
    $this.$func_96522_a(var$10);
    return var$10;
},
nms_Scoreboard_func_96520_a = ($this, $par1ScoreObjectiveCriteria) => {
    let $var2, var$3, var$4, var$5, var$6, var$7;
    $var2 = $this.$field_96543_b;
    if ($par1ScoreObjectiveCriteria === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$3 = $par1ScoreObjectiveCriteria;
        if (!var$3.$id$)
            var$3.$id$ = $rt_nextId();
        var$4 = $par1ScoreObjectiveCriteria.$id$;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                var$3 = $var2.$key;
                if ($par1ScoreObjectiveCriteria !== var$3 && !($par1ScoreObjectiveCriteria !== var$3 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 === null) {
        $par1ScoreObjectiveCriteria = new ju_ArrayList;
        $par1ScoreObjectiveCriteria.$array = $rt_createArray(jl_Object, 10);
    } else {
        $par1ScoreObjectiveCriteria = new ju_ArrayList;
        var$6 = $var2.$size();
        if (var$6 < 0) {
            $par1ScoreObjectiveCriteria = new jl_IllegalArgumentException;
            $par1ScoreObjectiveCriteria.$suppressionEnabled = 1;
            $par1ScoreObjectiveCriteria.$writableStackTrace = 1;
            $rt_throw($par1ScoreObjectiveCriteria);
        }
        $par1ScoreObjectiveCriteria.$array = $rt_createArray(jl_Object, var$6);
        $var2 = $var2.$iterator();
        var$6 = 0;
        while (true) {
            var$5 = $par1ScoreObjectiveCriteria.$array.data;
            var$7 = var$5.length;
            if (var$6 >= var$7)
                break;
            var$5[var$6] = $var2.$next();
            var$6 = var$6 + 1 | 0;
        }
        $par1ScoreObjectiveCriteria.$size0 = var$7;
    }
    return $par1ScoreObjectiveCriteria;
},
nms_Scoreboard_func_96529_a = ($this, $par1Str, $par2ScoreObjective) => {
    let $var4, var$4, var$5, var$6, var$7, $var3, var$9;
    $var4 = $this.$field_96544_c;
    if ($par1Str === null) {
        $var4 = $var4.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = $par1Str.$hashCode1;
        var$6 = $var4.$elementData.data;
        $var4 = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$5) {
                b: {
                    var$7 = $var4.$key;
                    if ($par1Str !== var$7) {
                        if ($par1Str === var$7)
                            var$4 = 1;
                        else if (!(var$7 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$7 = var$7;
                            var$4 = $par1Str.$nativeString !== var$7.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break b;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    $var3 = $var4 === null ? null : $var4.$value0;
    if ($var3 === null) {
        $var3 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        $var3.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$6 = var$9.data;
        $var3.$elementData = var$9;
        $var3.$loadFactor = 0.75;
        $var3.$threshold = var$6.length * 0.75 | 0;
        ju_HashMap_putImpl($this.$field_96544_c, $par1Str, $var3);
    }
    if ($par2ScoreObjective === null) {
        $var4 = $var3.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        $var4 = $par2ScoreObjective;
        if (!$var4.$id$)
            $var4.$id$ = $rt_nextId();
        var$5 = $par2ScoreObjective.$id$;
        var$6 = $var3.$elementData.data;
        $var4 = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$5) {
                var$7 = $var4.$key;
                if ($par2ScoreObjective !== var$7 && !($par2ScoreObjective !== var$7 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    $var4 = $var4 === null ? null : $var4.$value0;
    if ($var4 === null) {
        $var4 = new nms_Score;
        $var4.$theScoreboard0 = $this;
        $var4.$theScoreObjective = $par2ScoreObjective;
        $var4.$field_96654_d = $par1Str;
        ju_HashMap_putImpl($var3, $par2ScoreObjective, $var4);
    }
    return $var4;
},
nms_Scoreboard_getScoreObjectives = $this => {
    let var$1, var$2;
    var$1 = $this.$scoreObjectives;
    if (var$1.$cachedValues === null) {
        var$2 = new ju_HashMap$2;
        var$2.$this$01 = var$1;
        var$1.$cachedValues = var$2;
    }
    return var$1.$cachedValues;
},
nms_Scoreboard_getObjectiveNames = $this => {
    let var$1, var$2;
    var$1 = $this.$field_96544_c;
    if (var$1.$cachedKeySet === null) {
        var$2 = new ju_HashMap$1;
        var$2.$this$0 = var$1;
        var$1.$cachedKeySet = var$2;
    }
    return var$1.$cachedKeySet;
},
nms_Scoreboard_func_96515_c = ($this, $par1Str) => {
    let $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = ju_HashMap_removeByKey($this.$field_96544_c, $par1Str);
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2 === null)
            return;
        $ptr = 1;
    case 1:
        $this.$func_96516_a($par1Str);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $var2, $ptr);
},
nms_Scoreboard_func_96528_e = $this => {
    let $var2, $var3, $var1, $var4, var$5, var$6;
    $var2 = $this.$field_96544_c;
    if ($var2.$cachedValues === null) {
        $var3 = new ju_HashMap$2;
        $var3.$this$01 = $var2;
        $var2.$cachedValues = $var3;
    }
    $var1 = $var2.$cachedValues;
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    $var3 = $var1.$iterator();
    while ($var3.$hasNext()) {
        $var4 = $var3.$next();
        if ($var4.$cachedValues === null) {
            $var1 = new ju_HashMap$2;
            $var1.$this$01 = $var4;
            $var4.$cachedValues = $var1;
        }
        $var4 = $var4.$cachedValues.$iterator();
        while ($var4.$hasNext()) {
            $var1 = $var4.$next();
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            var$5 = $var2.$array.data;
            var$6 = $var2.$size0;
            $var2.$size0 = var$6 + 1 | 0;
            var$5[var$6] = $var1;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
    }
    return $var2;
},
nms_Scoreboard_func_96510_d = ($this, $par1Str) => {
    let $var2, var$3, var$4, var$5, var$6, var$7;
    $var2 = $this.$field_96544_c;
    if ($par1Str === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                b: {
                    var$6 = $var2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 === null) {
        $var2 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        $var2.$elementCount = 0;
        var$7 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$5 = var$7.data;
        $var2.$elementData = var$7;
        $var2.$loadFactor = 0.75;
        $var2.$threshold = var$5.length * 0.75 | 0;
    }
    return $var2;
},
nms_Scoreboard_func_96519_k = ($this, $par1ScoreObjective) => {
    let $var2, $var5, var$4, var$5, var$6, $var3, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var5 = $thread.pop();$var2 = $thread.pop();$par1ScoreObjective = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ju_HashMap_removeByKey($this.$scoreObjectives, $par1ScoreObjective.$name4);
        $var2 = 0;
        $var5 = null;
        while (true) {
            if ($var2 >= 3) {
                $var5 = $this.$field_96543_b;
                var$4 = $par1ScoreObjective.$objectiveCriteria;
                if (var$4 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    var$5 = var$4;
                    if (!var$5.$id$)
                        var$5.$id$ = $rt_nextId();
                    $var2 = var$4.$id$;
                    var$6 = $var5.$elementData.data;
                    $var5 = var$6[$var2 & (var$6.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var2) {
                            $var3 = $var5.$key;
                            if (var$4 !== $var3 && !(var$4 !== $var3 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = $var5 === null ? null : $var5.$value0;
                if ($var5 !== null) {
                    var$8 = $var5.$size0;
                    $var2 = 0;
                    a: {
                        while (true) {
                            var$9 = $rt_compare($var2, var$8);
                            if (var$9 >= 0) {
                                $var2 = (-1);
                                break a;
                            }
                            if ($var2 < 0)
                                break;
                            if (var$9 >= 0)
                                break;
                            $var3 = $var5.$array.data[$var2];
                            if ($par1ScoreObjective === $var3 ? 1 : $par1ScoreObjective === null ? ($var3 !== null ? 0 : 1) : $par1ScoreObjective !== $var3 ? 0 : 1)
                                break a;
                            $var2 = $var2 + 1 | 0;
                        }
                        $par1ScoreObjective = new jl_IndexOutOfBoundsException;
                        $par1ScoreObjective.$suppressionEnabled = 1;
                        $par1ScoreObjective.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1ScoreObjective);
                        $rt_throw($par1ScoreObjective);
                    }
                    if ($var2 >= 0)
                        ju_ArrayList_remove($var5, $var2);
                }
                $var5 = $this.$field_96544_c;
                if ($var5.$cachedValues === null) {
                    $var3 = new ju_HashMap$2;
                    $var3.$this$01 = $var5;
                    $var5.$cachedValues = $var3;
                }
                $var3 = $var5.$cachedValues.$iterator();
                while ($var3.$hasNext()) {
                    ju_HashMap_removeByKey($var3.$next(), $par1ScoreObjective);
                }
                $ptr = 2;
                continue main;
            }
            if ($this.$field_96541_d.data[$var2] === $par1ScoreObjective)
                break;
            $var2 = $var2 + 1 | 0;
        }
        $ptr = 1;
    case 1:
        $this.$func_96530_a($var2, $var5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var2 = $var2 + 1 | 0;
            if ($var2 >= 3) {
                $var5 = $this.$field_96543_b;
                var$4 = $par1ScoreObjective.$objectiveCriteria;
                if (var$4 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    var$5 = var$4;
                    if (!var$5.$id$)
                        var$5.$id$ = $rt_nextId();
                    $var2 = var$4.$id$;
                    var$6 = $var5.$elementData.data;
                    $var5 = var$6[$var2 & (var$6.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var2) {
                            $var3 = $var5.$key;
                            if (var$4 !== $var3 && !(var$4 !== $var3 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = $var5 === null ? null : $var5.$value0;
                if ($var5 !== null) {
                    var$8 = $var5.$size0;
                    $var2 = 0;
                    b: {
                        while (true) {
                            var$9 = $rt_compare($var2, var$8);
                            if (var$9 >= 0) {
                                $var2 = (-1);
                                break b;
                            }
                            if ($var2 < 0)
                                break;
                            if (var$9 >= 0)
                                break;
                            $var3 = $var5.$array.data[$var2];
                            if ($par1ScoreObjective === $var3 ? 1 : $par1ScoreObjective === null ? ($var3 !== null ? 0 : 1) : $par1ScoreObjective !== $var3 ? 0 : 1)
                                break b;
                            $var2 = $var2 + 1 | 0;
                        }
                        $par1ScoreObjective = new jl_IndexOutOfBoundsException;
                        $par1ScoreObjective.$suppressionEnabled = 1;
                        $par1ScoreObjective.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1ScoreObjective);
                        $rt_throw($par1ScoreObjective);
                    }
                    if ($var2 >= 0)
                        ju_ArrayList_remove($var5, $var2);
                }
                $var5 = $this.$field_96544_c;
                if ($var5.$cachedValues === null) {
                    $var3 = new ju_HashMap$2;
                    $var3.$this$01 = $var5;
                    $var5.$cachedValues = $var3;
                }
                $var3 = $var5.$cachedValues.$iterator();
                while ($var3.$hasNext()) {
                    ju_HashMap_removeByKey($var3.$next(), $par1ScoreObjective);
                }
                $ptr = 2;
                continue main;
            }
            if ($this.$field_96541_d.data[$var2] !== $par1ScoreObjective)
                continue;
            else
                break;
        }
        continue main;
    case 2:
        $this.$func_96533_c($par1ScoreObjective);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScoreObjective, $var2, $var5, var$4, var$5, var$6, $var3, var$8, var$9, $ptr);
},
nms_Scoreboard_func_96530_a = ($this, $par1, $par2ScoreObjective) => {
    $this.$field_96541_d.data[$par1] = $par2ScoreObjective;
},
nms_Scoreboard_func_96539_a = ($this, $par1) => {
    return $this.$field_96541_d.data[$par1];
},
nms_Scoreboard_func_96508_e = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$field_96542_e;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? null : var$2.$value0;
},
nms_Scoreboard_func_96527_f = ($this, $par1Str) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$field_96542_e;
        if ($par1Str === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            a: {
                if (!$par1Str.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $par1Str.$nativeString.length)
                            break a;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    b: {
                        var$6 = $var2.$key;
                        if ($par1Str !== var$6) {
                            if ($par1Str === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break b;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2 !== null) {
            $var2 = new jl_IllegalArgumentException;
            var$6 = new jl_StringBuilder;
            var$6.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2052));
            var$3 = var$6.$length0;
            if ($par1Str === null)
                $par1Str = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$6, var$3, $par1Str);
            jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2053));
            $par1Str = new jl_String;
            var$5 = var$6.$buffer;
            var$7 = var$5.data;
            var$4 = var$6.$length0;
            var$8 = var$7.length;
            if (var$4 >= 0 && var$4 <= (var$8 - 0 | 0)) {
                $par1Str.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $par1Str;
                $rt_throw($var2);
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Str);
            $rt_throw($par1Str);
        }
        $var2 = new nms_ScorePlayerTeam;
        var$6 = new ju_HashSet;
        var$9 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        var$9.$elementCount = 0;
        var$7 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$5 = var$7.data;
        var$9.$elementData = var$7;
        var$9.$loadFactor = 0.75;
        var$9.$threshold = var$5.length * 0.75 | 0;
        var$6.$backingMap = var$9;
        $var2.$membershipSet = var$6;
        $var2.$field_96674_e = $rt_s(3);
        $var2.$colorSuffix = $rt_s(3);
        $var2.$allowFriendlyFire = 1;
        $var2.$field_98301_h = 1;
        $var2.$theScoreboard1 = $this;
        $var2.$field_96675_b = $par1Str;
        $var2.$field_96673_d = $par1Str;
        ju_HashMap_putImpl($this.$field_96542_e, $par1Str, $var2);
        $ptr = 1;
    case 1:
        $this.$func_96523_a($var2);
        if ($rt_suspending()) {
            break main;
        }
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_Scoreboard_func_96511_d = ($this, $par1ScorePlayerTeam) => {
    let $var3, var$3, $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1ScorePlayerTeam = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ju_HashMap_removeByKey($this.$field_96542_e, $par1ScorePlayerTeam.$field_96675_b);
        $var3 = $par1ScorePlayerTeam.$membershipSet.$backingMap;
        if ($var3.$cachedKeySet === null) {
            var$3 = new ju_HashMap$1;
            var$3.$this$0 = $var3;
            $var3.$cachedKeySet = var$3;
        }
        $var2 = $var3.$cachedKeySet.$iterator();
        while ($var2.$hasNext()) {
            $var3 = $var2.$next();
            ju_HashMap_removeByKey($this.$teamMemberships, $var3);
        }
        $ptr = 1;
    case 1:
        $this.$func_96513_c($par1ScorePlayerTeam);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScorePlayerTeam, $var3, var$3, $var2, $ptr);
},
nms_Scoreboard_func_96521_a = ($this, $par1Str, $par2ScorePlayerTeam) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2ScorePlayerTeam = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (nms_Scoreboard_getPlayersTeam($this, $par1Str) !== null) {
            var$3 = nms_Scoreboard_getPlayersTeam($this, $par1Str);
            if (var$3 !== null) {
                $ptr = 1;
                continue main;
            }
        }
        ju_HashMap_putImpl($this.$teamMemberships, $par1Str, $par2ScorePlayerTeam);
        var$3 = $par2ScorePlayerTeam.$membershipSet;
        ju_HashMap_putImpl(var$3.$backingMap, $par1Str, var$3);
        return;
    case 1:
        $this.$removePlayerFromTeam($par1Str, var$3);
        if ($rt_suspending()) {
            break main;
        }
        ju_HashMap_putImpl($this.$teamMemberships, $par1Str, $par2ScorePlayerTeam);
        var$3 = $par2ScorePlayerTeam.$membershipSet;
        ju_HashMap_putImpl(var$3.$backingMap, $par1Str, var$3);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par2ScorePlayerTeam, var$3, $ptr);
},
nms_Scoreboard_func_96524_g = ($this, $par1Str) => {
    let $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = nms_Scoreboard_getPlayersTeam($this, $par1Str);
        if ($var2 === null)
            return 0;
        $ptr = 1;
    case 1:
        $this.$removePlayerFromTeam($par1Str, $var2);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $var2, $ptr);
},
nms_Scoreboard_removePlayerFromTeam = ($this, $par1Str, $par2ScorePlayerTeam) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    if (nms_Scoreboard_getPlayersTeam($this, $par1Str) === $par2ScorePlayerTeam) {
        ju_HashMap_removeByKey($this.$teamMemberships, $par1Str);
        $par1Str = ju_HashMap_removeByKey($par2ScorePlayerTeam.$membershipSet.$backingMap, $par1Str);
        return;
    }
    $par1Str = new jl_IllegalStateException;
    var$3 = $par2ScorePlayerTeam.$field_96675_b;
    $par2ScorePlayerTeam = new jl_StringBuilder;
    $par2ScorePlayerTeam.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($par2ScorePlayerTeam, $par2ScorePlayerTeam.$length0, $rt_s(2054));
    var$4 = $par2ScorePlayerTeam.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert($par2ScorePlayerTeam, var$4, var$3);
    jl_AbstractStringBuilder_insert($par2ScorePlayerTeam, $par2ScorePlayerTeam.$length0, $rt_s(2055));
    var$5 = new jl_String;
    var$6 = $par2ScorePlayerTeam.$buffer;
    var$7 = var$6.data;
    var$8 = $par2ScorePlayerTeam.$length0;
    var$9 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
        var$5.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $par1Str.$message = var$5;
        $rt_throw($par1Str);
    }
    $par1Str = new jl_IndexOutOfBoundsException;
    $par1Str.$suppressionEnabled = 1;
    $par1Str.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1Str);
    $rt_throw($par1Str);
},
nms_Scoreboard_func_96531_f = $this => {
    let var$1, var$2;
    var$1 = $this.$field_96542_e;
    if (var$1.$cachedKeySet === null) {
        var$2 = new ju_HashMap$1;
        var$2.$this$0 = var$1;
        var$1.$cachedKeySet = var$2;
    }
    return var$1.$cachedKeySet;
},
nms_Scoreboard_func_96525_g = $this => {
    let var$1, var$2;
    var$1 = $this.$field_96542_e;
    if (var$1.$cachedValues === null) {
        var$2 = new ju_HashMap$2;
        var$2.$this$01 = var$1;
        var$1.$cachedValues = var$2;
    }
    return var$1.$cachedValues;
},
nms_Scoreboard_getPlayersTeam = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$teamMemberships;
    if ($par1Str === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            if (!$par1Str.$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $par1Str.$nativeString.length)
                        break a;
                    $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $par1Str.$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($par1Str !== var$6) {
                        if ($par1Str === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $par1Str.$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return var$2 === null ? null : var$2.$value0;
},
nms_Scoreboard_func_96522_a = ($this, $par1ScoreObjective) => {
    return;
},
nms_Scoreboard_func_96532_b = ($this, $par1ScoreObjective) => {
    return;
},
nms_Scoreboard_func_96533_c = ($this, $par1ScoreObjective) => {
    return;
},
nms_Scoreboard_func_96536_a = ($this, $par1Score) => {
    return;
},
nms_Scoreboard_func_96516_a = ($this, $par1Str) => {
    return;
},
nms_Scoreboard_func_96523_a = ($this, $par1ScorePlayerTeam) => {
    return;
},
nms_Scoreboard_func_96538_b = ($this, $par1ScorePlayerTeam) => {
    return;
},
nms_Scoreboard_func_96513_c = ($this, $par1ScorePlayerTeam) => {
    return;
};
function nms_ServerScoreboard() {
    let a = this; nms_Scoreboard.call(a);
    a.$field_96555_a = null;
    a.$field_96553_b = null;
    a.$field_96554_c = null;
}
let nms_ServerScoreboard_func_96536_a = ($this, $par1Score) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Score = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96553_b;
        var$3 = $par1Score.$theScoreObjective;
        var$2 = var$2.$backingMap;
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3;
            if (!var$4.$id$)
                var$4.$id$ = $rt_nextId();
            var$5 = var$3.$id$;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$5) {
                    var$4 = var$2.$key;
                    if (var$3 !== var$4 && !(var$3 !== var$4 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$5 = var$2 === null ? 0 : 1;
        a: {
            if (var$5) {
                var$4 = $this.$field_96555_a.$serverConfigManager;
                var$2 = new nms_Packet207SetScore;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$itemName = $rt_s(3);
                var$2.$scoreName0 = $rt_s(3);
                var$2.$itemName = $par1Score.$field_96654_d;
                var$2.$scoreName0 = $par1Score.$theScoreObjective.$name4;
                var$2.$value14 = $par1Score.$field_96655_e;
                var$2.$updateOrRemove = 0;
                var$5 = 0;
                var$7 = var$2 instanceof nms_Packet3Chat;
                var$3 = var$2;
                while (true) {
                    $par1Score = var$4.$playerEntityList;
                    var$8 = $rt_compare(var$5, $par1Score.$size0);
                    if (var$8 >= 0)
                        break;
                    if (var$5 < 0)
                        break a;
                    if (var$8 >= 0)
                        break a;
                    b: {
                        $par1Score = $par1Score.$array.data[var$5].$playerNetServerHandler;
                        if (var$7) {
                            var$9 = $par1Score.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break b;
                            if (var$9 == 1 && !var$3.$isServer)
                                break b;
                        }
                        try {
                            $par1Score = $par1Score.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Score = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$10 = new otcic_JSStderrPrintStream;
                            var$11 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$11);
                            var$11.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$10, var$11);
                            var$10.$sb = jl_StringBuilder__init_();
                            var$10.$buffer0 = $rt_createCharArray(32);
                            var$10.$autoFlush = 0;
                            var$10.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$10;
                        }
                        jl_Throwable_printStackTrace($par1Score, jl_System_errCache);
                    }
                    var$5 = var$5 + 1 | 0;
                }
            }
            $par1Score = $this.$field_96554_c;
            if ($par1Score !== null)
                $par1Score.$dirty = 1;
            return;
        }
        $par1Score = new jl_IndexOutOfBoundsException;
        $par1Score.$suppressionEnabled = 1;
        $par1Score.$writableStackTrace = 1;
        $rt_throw($par1Score);
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Score, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Score = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_OutputStream__init_(var$11);
                var$6 = $rt_createByteArray(var$8);
                var$11.$buf = var$6;
                var$8 = 0;
                ji_FilterOutputStream__init_(var$10, var$11);
                var$11 = jl_StringBuilder__init_();
                var$10.$sb = var$11;
                var$9 = 32;
                var$6 = $rt_createCharArray(var$9);
                var$10.$buffer0 = var$6;
                var$10.$autoFlush = var$8;
                var$11 = jnci_UTF8Charset_INSTANCE;
                var$10.$charset = var$11;
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1Score, var$10);
        }
        d: while (true) {
            while (true) {
                var$5 = var$5 + 1 | 0;
                $par1Score = var$4.$playerEntityList;
                var$8 = $rt_compare(var$5, $par1Score.$size0);
                if (var$8 >= 0) {
                    $par1Score = $this.$field_96554_c;
                    if ($par1Score !== null)
                        $par1Score.$dirty = 1;
                    return;
                }
                if (var$5 < 0)
                    break d;
                if (var$8 >= 0)
                    break d;
                $par1Score = $par1Score.$array.data[var$5].$playerNetServerHandler;
                if (!var$7)
                    break;
                var$9 = $par1Score.$playerEntity.$chatVisibility;
                if (var$9 == 2)
                    continue;
                if (var$9 != 1)
                    break;
                if (var$3.$isServer)
                    break;
            }
            try {
                $par1Score = $par1Score.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Score = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_OutputStream__init_(var$11);
                var$6 = $rt_createByteArray(var$8);
                var$11.$buf = var$6;
                var$8 = 0;
                ji_FilterOutputStream__init_(var$10, var$11);
                var$11 = jl_StringBuilder__init_();
                var$10.$sb = var$11;
                var$9 = 32;
                var$6 = $rt_createCharArray(var$9);
                var$10.$buffer0 = var$6;
                var$10.$autoFlush = var$8;
                var$11 = jnci_UTF8Charset_INSTANCE;
                var$10.$charset = var$11;
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1Score, var$10);
        }
        $par1Score = new jl_IndexOutOfBoundsException;
        $par1Score.$suppressionEnabled = 1;
        $par1Score.$writableStackTrace = 1;
        $rt_throw($par1Score);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Score, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96516_a = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96555_a.$serverConfigManager;
        var$3 = new nms_Packet207SetScore;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$itemName = $rt_s(3);
        var$3.$scoreName0 = $rt_s(3);
        var$3.$itemName = $par1Str;
        var$3.$scoreName0 = $rt_s(3);
        var$3.$value14 = 0;
        var$3.$updateOrRemove = 1;
        var$4 = 0;
        var$5 = var$3 instanceof nms_Packet3Chat;
        var$6 = var$3;
        a: {
            while (true) {
                $par1Str = var$2.$playerEntityList;
                var$7 = $rt_compare(var$4, $par1Str.$size0);
                if (var$7 >= 0)
                    break;
                if (var$4 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                b: {
                    var$8 = $par1Str.$array.data[var$4].$playerNetServerHandler;
                    if (var$5) {
                        var$9 = var$8.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break b;
                        if (var$9 == 1 && !var$6.$isServer)
                            break b;
                    }
                    try {
                        $par1Str = var$8.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$10 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1Str = new otcic_JSStderrPrintStream;
                        var$8 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$8);
                        var$8.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par1Str, var$8);
                        $par1Str.$sb = jl_StringBuilder__init_();
                        $par1Str.$buffer0 = $rt_createCharArray(32);
                        $par1Str.$autoFlush = 0;
                        $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1Str;
                    }
                    jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                }
                var$4 = var$4 + 1 | 0;
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Str, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$10 = $$je;
                } else {
                    throw $$e;
                }
            }
            $par1Str = jl_System_errCache;
            if ($par1Str === null) {
                $par1Str = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$7 = 32;
                ji_OutputStream__init_(var$8);
                var$11 = $rt_createByteArray(var$7);
                var$8.$buf = var$11;
                var$7 = 0;
                ji_FilterOutputStream__init_($par1Str, var$8);
                var$8 = jl_StringBuilder__init_();
                $par1Str.$sb = var$8;
                var$9 = 32;
                var$11 = $rt_createCharArray(var$9);
                $par1Str.$buffer0 = var$11;
                $par1Str.$autoFlush = var$7;
                var$8 = jnci_UTF8Charset_INSTANCE;
                $par1Str.$charset = var$8;
                jl_System_errCache = $par1Str;
            }
            $par1Str = jl_System_errCache;
            jl_Throwable_printStackTrace(var$10, $par1Str);
        }
        c: {
            d: while (true) {
                while (true) {
                    var$4 = var$4 + 1 | 0;
                    $par1Str = var$2.$playerEntityList;
                    var$7 = $rt_compare(var$4, $par1Str.$size0);
                    if (var$7 >= 0)
                        break d;
                    if (var$4 < 0)
                        break c;
                    if (var$7 >= 0)
                        break c;
                    var$8 = $par1Str.$array.data[var$4].$playerNetServerHandler;
                    if (!var$5)
                        break;
                    var$9 = var$8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        continue;
                    if (var$9 != 1)
                        break;
                    if (var$6.$isServer)
                        break;
                }
                try {
                    $par1Str = var$8.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par1Str = jl_System_errCache;
                if ($par1Str === null) {
                    $par1Str = new otcic_JSStderrPrintStream;
                    var$8 = new ji_ByteArrayOutputStream;
                    var$7 = 32;
                    ji_OutputStream__init_(var$8);
                    var$11 = $rt_createByteArray(var$7);
                    var$8.$buf = var$11;
                    var$7 = 0;
                    ji_FilterOutputStream__init_($par1Str, var$8);
                    var$8 = jl_StringBuilder__init_();
                    $par1Str.$sb = var$8;
                    var$9 = 32;
                    var$11 = $rt_createCharArray(var$9);
                    $par1Str.$buffer0 = var$11;
                    $par1Str.$autoFlush = var$7;
                    var$8 = jnci_UTF8Charset_INSTANCE;
                    $par1Str.$charset = var$8;
                    jl_System_errCache = $par1Str;
                }
                $par1Str = jl_System_errCache;
                jl_Throwable_printStackTrace(var$10, $par1Str);
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96530_a = ($this, $par1, $par2ScoreObjective) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2ScoreObjective = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$3 = $this.$field_96541_d.data;
            $var3 = var$3[$par1];
            var$3[$par1] = $par2ScoreObjective;
            if ($var3 !== $par2ScoreObjective && $var3 !== null) {
                var$5 = 0;
                var$6 = 0;
                while (var$6 < 3) {
                    if (var$3[var$6] === $var3)
                        var$5 = var$5 + 1 | 0;
                    var$6 = var$6 + 1 | 0;
                }
                if (var$5 > 0) {
                    var$7 = $this.$field_96555_a.$serverConfigManager;
                    var$8 = new nms_Packet208SetDisplayObjective;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8.$scoreboardPosition = $par1;
                    if ($par2ScoreObjective === null)
                        var$8.$scoreName = $rt_s(3);
                    else
                        var$8.$scoreName = $par2ScoreObjective.$name4;
                    var$5 = 0;
                    var$6 = var$8 instanceof nms_Packet3Chat;
                    var$9 = var$8;
                    while (true) {
                        var$10 = var$7.$playerEntityList;
                        var$11 = $rt_compare(var$5, var$10.$size0);
                        if (var$11 >= 0)
                            break a;
                        if (var$5 < 0)
                            break;
                        if (var$11 >= 0)
                            break;
                        b: {
                            var$10 = var$10.$array.data[var$5].$playerNetServerHandler;
                            if (var$6) {
                                var$12 = var$10.$playerEntity.$chatVisibility;
                                if (var$12 == 2)
                                    break b;
                                if (var$12 == 1 && !var$9.$isServer)
                                    break b;
                            }
                            try {
                                var$10 = var$10.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$10 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var3 = new otcic_JSStderrPrintStream;
                                var$13 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$13);
                                var$13.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_($var3, var$13);
                                $var3.$sb = jl_StringBuilder__init_();
                                $var3.$buffer0 = $rt_createCharArray(32);
                                $var3.$autoFlush = 0;
                                $var3.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = $var3;
                            }
                            jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                        }
                        var$5 = var$5 + 1 | 0;
                    }
                    $par2ScoreObjective = new jl_IndexOutOfBoundsException;
                    $par2ScoreObjective.$suppressionEnabled = 1;
                    $par2ScoreObjective.$writableStackTrace = 1;
                    $rt_throw($par2ScoreObjective);
                }
                var$9 = new ju_ArrayList;
                var$9.$array = $rt_createArray(jl_Object, 10);
                var$8 = new nms_Packet206SetObjective;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8.$objectiveName = $var3.$name4;
                var$8.$objectiveDisplayName = $var3.$displayName0;
                var$8.$change = 1;
                ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
                var$3 = var$9.$array.data;
                var$11 = var$9.$size0;
                var$9.$size0 = var$11 + 1 | 0;
                var$3[var$11] = var$8;
                var$9.$modCount = var$9.$modCount + 1 | 0;
                var$5 = 0;
                while (var$5 < 3) {
                    if ($this.$field_96541_d.data[var$5] === $var3) {
                        var$8 = new nms_Packet208SetDisplayObjective;
                        var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$8.$scoreboardPosition = var$5;
                        if ($var3 === null)
                            var$8.$scoreName = $rt_s(3);
                        else
                            var$8.$scoreName = $var3.$name4;
                        ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
                        var$3 = var$9.$array.data;
                        var$6 = var$9.$size0;
                        var$9.$size0 = var$6 + 1 | 0;
                        var$3[var$6] = var$8;
                        var$9.$modCount = var$9.$modCount + 1 | 0;
                    }
                    var$5 = var$5 + 1 | 0;
                }
                var$13 = $this.$field_96555_a.$serverConfigManager.$playerEntityList;
                var$11 = 0;
                var$14 = var$13.$modCount;
                var$15 = var$13.$size();
                var$16 = 0;
                while (true) {
                    if (!(var$11 >= var$15 ? 0 : 1)) {
                        var$8 = ju_HashMap_removeByKey($this.$field_96553_b.$backingMap, $var3);
                        break a;
                    }
                    if (var$14 < var$13.$modCount)
                        break;
                    var$17 = var$11 + 1 | 0;
                    var$7 = var$13.$get(var$11);
                    var$12 = var$9.$modCount;
                    var$18 = var$9.$size();
                    var$11 = var$16;
                    while (var$11 >= var$18 ? 0 : 1) {
                        if (var$12 < var$9.$modCount) {
                            $par2ScoreObjective = new ju_ConcurrentModificationException;
                            $par2ScoreObjective.$suppressionEnabled = 1;
                            $par2ScoreObjective.$writableStackTrace = 1;
                            $rt_throw($par2ScoreObjective);
                        }
                        c: {
                            var$6 = var$11 + 1 | 0;
                            var$8 = var$9.$get(var$11);
                            var$10 = var$7.$playerNetServerHandler;
                            if (var$8 instanceof nms_Packet3Chat) {
                                var$19 = var$8;
                                var$5 = var$10.$playerEntity.$chatVisibility;
                                if (var$5 == 2)
                                    break c;
                                if (var$5 == 1 && !var$19.$isServer)
                                    break c;
                            }
                            try {
                                var$10 = var$10.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$19 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$8 = new otcic_JSStderrPrintStream;
                                var$10 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$10);
                                var$10.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$8, var$10);
                                var$8.$sb = jl_StringBuilder__init_();
                                var$8.$buffer0 = $rt_createCharArray(32);
                                var$8.$autoFlush = 0;
                                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$8;
                            }
                            jl_Throwable_printStackTrace(var$19, jl_System_errCache);
                        }
                        var$11 = var$6;
                    }
                    var$11 = var$17;
                }
                $par2ScoreObjective = new ju_ConcurrentModificationException;
                $par2ScoreObjective.$suppressionEnabled = 1;
                $par2ScoreObjective.$writableStackTrace = 1;
                $rt_throw($par2ScoreObjective);
            }
        }
        d: {
            if ($par2ScoreObjective !== null) {
                var$8 = $this.$field_96553_b.$backingMap;
                var$10 = $par2ScoreObjective;
                if (!var$10.$id$)
                    var$10.$id$ = $rt_nextId();
                var$5 = $par2ScoreObjective.$id$;
                var$3 = var$8.$elementData.data;
                var$8 = var$3[var$5 & (var$3.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$5) {
                        var$10 = var$8.$key;
                        if ($par2ScoreObjective !== var$10 && !($par2ScoreObjective !== var$10 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
                if (var$8 === null ? 0 : 1) {
                    var$13 = $this.$field_96555_a.$serverConfigManager;
                    var$8 = new nms_Packet208SetDisplayObjective;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$8.$scoreboardPosition = $par1;
                    if ($par2ScoreObjective === null)
                        var$8.$scoreName = $rt_s(3);
                    else
                        var$8.$scoreName = $par2ScoreObjective.$name4;
                    $par1 = 0;
                    var$11 = var$8 instanceof nms_Packet3Chat;
                    var$10 = var$8;
                    e: {
                        while (true) {
                            $par2ScoreObjective = var$13.$playerEntityList;
                            var$5 = $rt_compare($par1, $par2ScoreObjective.$size0);
                            if (var$5 >= 0)
                                break;
                            if ($par1 < 0)
                                break e;
                            if (var$5 >= 0)
                                break e;
                            f: {
                                $par2ScoreObjective = $par2ScoreObjective.$array.data[$par1].$playerNetServerHandler;
                                if (var$11) {
                                    var$6 = $par2ScoreObjective.$playerEntity.$chatVisibility;
                                    if (var$6 == 2)
                                        break f;
                                    if (var$6 == 1 && !var$10.$isServer)
                                        break f;
                                }
                                try {
                                    $par2ScoreObjective = $par2ScoreObjective.$netManager;
                                    $ptr = 2;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $par2ScoreObjective = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$9 = new otcic_JSStderrPrintStream;
                                    $var3 = new ji_ByteArrayOutputStream;
                                    ji_OutputStream__init_($var3);
                                    $var3.$buf = $rt_createByteArray(32);
                                    ji_FilterOutputStream__init_(var$9, $var3);
                                    var$9.$sb = jl_StringBuilder__init_();
                                    var$9.$buffer0 = $rt_createCharArray(32);
                                    var$9.$autoFlush = 0;
                                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = var$9;
                                }
                                jl_Throwable_printStackTrace($par2ScoreObjective, jl_System_errCache);
                            }
                            $par1 = $par1 + 1 | 0;
                        }
                        break d;
                    }
                    $par2ScoreObjective = new jl_IndexOutOfBoundsException;
                    $par2ScoreObjective.$suppressionEnabled = 1;
                    $par2ScoreObjective.$writableStackTrace = 1;
                    $rt_throw($par2ScoreObjective);
                }
                var$8 = nms_ServerScoreboard_func_96550_d($this, $par2ScoreObjective);
                var$10 = $this.$field_96555_a.$serverConfigManager.$playerEntityList;
                var$5 = 0;
                var$17 = var$10.$modCount;
                var$14 = var$10.$size();
                var$15 = 0;
                while (true) {
                    if (!(var$5 >= var$14 ? 0 : 1)) {
                        var$8 = $this.$field_96553_b;
                        ju_HashMap_putImpl(var$8.$backingMap, $par2ScoreObjective, var$8);
                        break d;
                    }
                    if (var$17 < var$10.$modCount)
                        break;
                    var$18 = var$5 + 1 | 0;
                    var$9 = var$10.$get(var$5);
                    var$6 = var$8.$modCount;
                    var$12 = var$8.$size();
                    var$5 = var$15;
                    while (var$5 >= var$12 ? 0 : 1) {
                        if (var$6 < var$8.$modCount) {
                            $par2ScoreObjective = new ju_ConcurrentModificationException;
                            $par2ScoreObjective.$suppressionEnabled = 1;
                            $par2ScoreObjective.$writableStackTrace = 1;
                            $rt_throw($par2ScoreObjective);
                        }
                        g: {
                            var$11 = var$5 + 1 | 0;
                            $var3 = var$8.$get(var$5);
                            var$13 = var$9.$playerNetServerHandler;
                            if ($var3 instanceof nms_Packet3Chat) {
                                var$7 = $var3;
                                var$5 = var$13.$playerEntity.$chatVisibility;
                                if (var$5 == 2)
                                    break g;
                                if (var$5 == 1 && !var$7.$isServer)
                                    break g;
                            }
                            try {
                                var$13 = var$13.$netManager;
                                $ptr = 4;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var3 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$13 = new otcic_JSStderrPrintStream;
                                var$7 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$7);
                                var$7.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$13, var$7);
                                var$13.$sb = jl_StringBuilder__init_();
                                var$13.$buffer0 = $rt_createCharArray(32);
                                var$13.$autoFlush = 0;
                                var$13.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$13;
                            }
                            jl_Throwable_printStackTrace($var3, jl_System_errCache);
                        }
                        var$5 = var$11;
                    }
                    var$5 = var$18;
                }
                $par2ScoreObjective = new ju_ConcurrentModificationException;
                $par2ScoreObjective.$suppressionEnabled = 1;
                $par2ScoreObjective.$writableStackTrace = 1;
                $rt_throw($par2ScoreObjective);
            }
        }
        $par2ScoreObjective = $this.$field_96554_c;
        if ($par2ScoreObjective !== null)
            $par2ScoreObjective.$dirty = 1;
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$10, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$10 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var3 = jl_System_errCache;
            if ($var3 === null) {
                $var3 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                var$11 = 32;
                ji_OutputStream__init_(var$13);
                var$3 = $rt_createByteArray(var$11);
                var$13.$buf = var$3;
                var$11 = 0;
                ji_FilterOutputStream__init_($var3, var$13);
                var$13 = jl_StringBuilder__init_();
                $var3.$sb = var$13;
                var$12 = 32;
                var$3 = $rt_createCharArray(var$12);
                $var3.$buffer0 = var$3;
                $var3.$autoFlush = var$11;
                var$13 = jnci_UTF8Charset_INSTANCE;
                $var3.$charset = var$13;
                jl_System_errCache = $var3;
            }
            $var3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$10, $var3);
        }
        h: while (true) {
            while (true) {
                var$5 = var$5 + 1 | 0;
                var$10 = var$7.$playerEntityList;
                var$11 = $rt_compare(var$5, var$10.$size0);
                if (var$11 >= 0) {
                    b: {
                        if ($par2ScoreObjective !== null) {
                            var$8 = $this.$field_96553_b.$backingMap;
                            var$10 = $par2ScoreObjective;
                            if (!var$10.$id$)
                                var$10.$id$ = $rt_nextId();
                            var$5 = $par2ScoreObjective.$id$;
                            var$3 = var$8.$elementData.data;
                            var$8 = var$3[var$5 & (var$3.length - 1 | 0)];
                            while (var$8 !== null) {
                                if (var$8.$origKeyHash == var$5) {
                                    var$10 = var$8.$key;
                                    if ($par2ScoreObjective !== var$10 && !($par2ScoreObjective !== var$10 ? 0 : 1) ? 0 : 1)
                                        break;
                                }
                                var$8 = var$8.$next3;
                            }
                            if (var$8 === null ? 0 : 1) {
                                var$13 = $this.$field_96555_a.$serverConfigManager;
                                var$8 = new nms_Packet208SetDisplayObjective;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                var$8.$scoreboardPosition = $par1;
                                if ($par2ScoreObjective === null)
                                    var$8.$scoreName = $rt_s(3);
                                else
                                    var$8.$scoreName = $par2ScoreObjective.$name4;
                                $par1 = 0;
                                var$11 = var$8 instanceof nms_Packet3Chat;
                                var$10 = var$8;
                                i: {
                                    while (true) {
                                        $par2ScoreObjective = var$13.$playerEntityList;
                                        var$5 = $rt_compare($par1, $par2ScoreObjective.$size0);
                                        if (var$5 >= 0)
                                            break;
                                        if ($par1 < 0)
                                            break i;
                                        if (var$5 >= 0)
                                            break i;
                                        j: {
                                            $par2ScoreObjective = $par2ScoreObjective.$array.data[$par1].$playerNetServerHandler;
                                            if (var$11) {
                                                var$6 = $par2ScoreObjective.$playerEntity.$chatVisibility;
                                                if (var$6 == 2)
                                                    break j;
                                                if (var$6 == 1 && !var$10.$isServer)
                                                    break j;
                                            }
                                            try {
                                                $par2ScoreObjective = $par2ScoreObjective.$netManager;
                                                $ptr = 2;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Exception) {
                                                    $par2ScoreObjective = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            if (jl_System_errCache === null) {
                                                var$9 = new otcic_JSStderrPrintStream;
                                                $var3 = new ji_ByteArrayOutputStream;
                                                ji_OutputStream__init_($var3);
                                                $var3.$buf = $rt_createByteArray(32);
                                                ji_FilterOutputStream__init_(var$9, $var3);
                                                var$9.$sb = jl_StringBuilder__init_();
                                                var$9.$buffer0 = $rt_createCharArray(32);
                                                var$9.$autoFlush = 0;
                                                var$9.$charset = jnci_UTF8Charset_INSTANCE;
                                                jl_System_errCache = var$9;
                                            }
                                            jl_Throwable_printStackTrace($par2ScoreObjective, jl_System_errCache);
                                        }
                                        $par1 = $par1 + 1 | 0;
                                    }
                                    break b;
                                }
                                $par2ScoreObjective = new jl_IndexOutOfBoundsException;
                                $par2ScoreObjective.$suppressionEnabled = 1;
                                $par2ScoreObjective.$writableStackTrace = 1;
                                $rt_throw($par2ScoreObjective);
                            }
                            var$8 = nms_ServerScoreboard_func_96550_d($this, $par2ScoreObjective);
                            var$10 = $this.$field_96555_a.$serverConfigManager.$playerEntityList;
                            var$5 = 0;
                            var$17 = var$10.$modCount;
                            var$14 = var$10.$size();
                            var$15 = 0;
                            while (true) {
                                if (!(var$5 >= var$14 ? 0 : 1)) {
                                    var$8 = $this.$field_96553_b;
                                    ju_HashMap_putImpl(var$8.$backingMap, $par2ScoreObjective, var$8);
                                    break b;
                                }
                                if (var$17 < var$10.$modCount)
                                    break;
                                var$18 = var$5 + 1 | 0;
                                var$9 = var$10.$get(var$5);
                                var$6 = var$8.$modCount;
                                var$12 = var$8.$size();
                                var$5 = var$15;
                                while (var$5 >= var$12 ? 0 : 1) {
                                    if (var$6 < var$8.$modCount) {
                                        $par2ScoreObjective = new ju_ConcurrentModificationException;
                                        $par2ScoreObjective.$suppressionEnabled = 1;
                                        $par2ScoreObjective.$writableStackTrace = 1;
                                        $rt_throw($par2ScoreObjective);
                                    }
                                    k: {
                                        var$11 = var$5 + 1 | 0;
                                        $var3 = var$8.$get(var$5);
                                        var$13 = var$9.$playerNetServerHandler;
                                        if ($var3 instanceof nms_Packet3Chat) {
                                            var$7 = $var3;
                                            var$5 = var$13.$playerEntity.$chatVisibility;
                                            if (var$5 == 2)
                                                break k;
                                            if (var$5 == 1 && !var$7.$isServer)
                                                break k;
                                        }
                                        try {
                                            var$13 = var$13.$netManager;
                                            $ptr = 4;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                $var3 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            var$13 = new otcic_JSStderrPrintStream;
                                            var$7 = new ji_ByteArrayOutputStream;
                                            ji_OutputStream__init_(var$7);
                                            var$7.$buf = $rt_createByteArray(32);
                                            ji_FilterOutputStream__init_(var$13, var$7);
                                            var$13.$sb = jl_StringBuilder__init_();
                                            var$13.$buffer0 = $rt_createCharArray(32);
                                            var$13.$autoFlush = 0;
                                            var$13.$charset = jnci_UTF8Charset_INSTANCE;
                                            jl_System_errCache = var$13;
                                        }
                                        jl_Throwable_printStackTrace($var3, jl_System_errCache);
                                    }
                                    var$5 = var$11;
                                }
                                var$5 = var$18;
                            }
                            $par2ScoreObjective = new ju_ConcurrentModificationException;
                            $par2ScoreObjective.$suppressionEnabled = 1;
                            $par2ScoreObjective.$writableStackTrace = 1;
                            $rt_throw($par2ScoreObjective);
                        }
                    }
                    $par2ScoreObjective = $this.$field_96554_c;
                    if ($par2ScoreObjective !== null)
                        $par2ScoreObjective.$dirty = 1;
                    return;
                }
                if (var$5 < 0)
                    break h;
                if (var$11 >= 0)
                    break h;
                var$10 = var$10.$array.data[var$5].$playerNetServerHandler;
                if (!var$6)
                    break;
                var$12 = var$10.$playerEntity.$chatVisibility;
                if (var$12 == 2)
                    continue;
                if (var$12 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$10 = var$10.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$10 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var3 = jl_System_errCache;
            if ($var3 === null) {
                $var3 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                var$11 = 32;
                ji_OutputStream__init_(var$13);
                var$3 = $rt_createByteArray(var$11);
                var$13.$buf = var$3;
                var$11 = 0;
                ji_FilterOutputStream__init_($var3, var$13);
                var$13 = jl_StringBuilder__init_();
                $var3.$sb = var$13;
                var$12 = 32;
                var$3 = $rt_createCharArray(var$12);
                $var3.$buffer0 = var$3;
                $var3.$autoFlush = var$11;
                var$13 = jnci_UTF8Charset_INSTANCE;
                $var3.$charset = var$13;
                jl_System_errCache = $var3;
            }
            $var3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$10, $var3);
        }
        $par2ScoreObjective = new jl_IndexOutOfBoundsException;
        $par2ScoreObjective.$suppressionEnabled = 1;
        $par2ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par2ScoreObjective);
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2ScoreObjective, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2ScoreObjective = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_OutputStream__init_($var3);
                var$3 = $rt_createByteArray(var$5);
                $var3.$buf = var$3;
                var$5 = 0;
                ji_FilterOutputStream__init_(var$9, $var3);
                $var3 = jl_StringBuilder__init_();
                var$9.$sb = $var3;
                var$6 = 32;
                var$3 = $rt_createCharArray(var$6);
                var$9.$buffer0 = var$3;
                var$9.$autoFlush = var$5;
                $var3 = jnci_UTF8Charset_INSTANCE;
                var$9.$charset = $var3;
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par2ScoreObjective, var$9);
        }
        h: while (true) {
            while (true) {
                $par1 = $par1 + 1 | 0;
                $par2ScoreObjective = var$13.$playerEntityList;
                var$5 = $rt_compare($par1, $par2ScoreObjective.$size0);
                if (var$5 >= 0) {
                    $par2ScoreObjective = $this.$field_96554_c;
                    if ($par2ScoreObjective !== null)
                        $par2ScoreObjective.$dirty = 1;
                    return;
                }
                if ($par1 < 0)
                    break h;
                if (var$5 >= 0)
                    break h;
                $par2ScoreObjective = $par2ScoreObjective.$array.data[$par1].$playerNetServerHandler;
                if (!var$11)
                    break;
                var$6 = $par2ScoreObjective.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    continue;
                if (var$6 != 1)
                    break;
                if (var$10.$isServer)
                    break;
            }
            try {
                $par2ScoreObjective = $par2ScoreObjective.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2ScoreObjective = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_OutputStream__init_($var3);
                var$3 = $rt_createByteArray(var$5);
                $var3.$buf = var$3;
                var$5 = 0;
                ji_FilterOutputStream__init_(var$9, $var3);
                $var3 = jl_StringBuilder__init_();
                var$9.$sb = $var3;
                var$6 = 32;
                var$3 = $rt_createCharArray(var$6);
                var$9.$buffer0 = var$3;
                var$9.$autoFlush = var$5;
                $var3 = jnci_UTF8Charset_INSTANCE;
                var$9.$charset = $var3;
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par2ScoreObjective, var$9);
        }
        $par2ScoreObjective = new jl_IndexOutOfBoundsException;
        $par2ScoreObjective.$suppressionEnabled = 1;
        $par2ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par2ScoreObjective);
    case 3:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$10, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$19 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_OutputStream__init_(var$10);
                var$3 = $rt_createByteArray(var$5);
                var$10.$buf = var$3;
                var$5 = 0;
                ji_FilterOutputStream__init_(var$8, var$10);
                var$10 = jl_StringBuilder__init_();
                var$8.$sb = var$10;
                var$11 = 32;
                var$3 = $rt_createCharArray(var$11);
                var$8.$buffer0 = var$3;
                var$8.$autoFlush = var$5;
                var$10 = jnci_UTF8Charset_INSTANCE;
                var$8.$charset = var$10;
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$19, var$8);
        }
        l: while (true) {
            while (true) {
                var$11 = var$6;
                while (!(var$11 >= var$18 ? 0 : 1)) {
                    var$11 = var$17;
                    if (!(var$11 >= var$15 ? 0 : 1)) {
                        var$8 = ju_HashMap_removeByKey($this.$field_96553_b.$backingMap, $var3);
                        m: {
                            if ($par2ScoreObjective !== null) {
                                var$8 = $this.$field_96553_b.$backingMap;
                                var$10 = $par2ScoreObjective;
                                if (!var$10.$id$)
                                    var$10.$id$ = $rt_nextId();
                                var$5 = $par2ScoreObjective.$id$;
                                var$3 = var$8.$elementData.data;
                                var$8 = var$3[var$5 & (var$3.length - 1 | 0)];
                                while (var$8 !== null) {
                                    if (var$8.$origKeyHash == var$5) {
                                        var$10 = var$8.$key;
                                        if ($par2ScoreObjective !== var$10 && !($par2ScoreObjective !== var$10 ? 0 : 1) ? 0 : 1)
                                            break;
                                    }
                                    var$8 = var$8.$next3;
                                }
                                if (var$8 === null ? 0 : 1) {
                                    var$13 = $this.$field_96555_a.$serverConfigManager;
                                    var$8 = new nms_Packet208SetDisplayObjective;
                                    nms_Packet_$callClinit();
                                    nles_SysUtil_$callClinit();
                                    var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                    var$8.$scoreboardPosition = $par1;
                                    if ($par2ScoreObjective === null)
                                        var$8.$scoreName = $rt_s(3);
                                    else
                                        var$8.$scoreName = $par2ScoreObjective.$name4;
                                    $par1 = 0;
                                    var$11 = var$8 instanceof nms_Packet3Chat;
                                    var$10 = var$8;
                                    n: {
                                        while (true) {
                                            $par2ScoreObjective = var$13.$playerEntityList;
                                            var$5 = $rt_compare($par1, $par2ScoreObjective.$size0);
                                            if (var$5 >= 0)
                                                break;
                                            if ($par1 < 0)
                                                break n;
                                            if (var$5 >= 0)
                                                break n;
                                            o: {
                                                $par2ScoreObjective = $par2ScoreObjective.$array.data[$par1].$playerNetServerHandler;
                                                if (var$11) {
                                                    var$6 = $par2ScoreObjective.$playerEntity.$chatVisibility;
                                                    if (var$6 == 2)
                                                        break o;
                                                    if (var$6 == 1 && !var$10.$isServer)
                                                        break o;
                                                }
                                                try {
                                                    $par2ScoreObjective = $par2ScoreObjective.$netManager;
                                                    $ptr = 2;
                                                    continue main;
                                                } catch ($$e) {
                                                    $$je = $rt_wrapException($$e);
                                                    if ($$je instanceof jl_Exception) {
                                                        $par2ScoreObjective = $$je;
                                                    } else {
                                                        throw $$e;
                                                    }
                                                }
                                                if (jl_System_errCache === null) {
                                                    var$9 = new otcic_JSStderrPrintStream;
                                                    $var3 = new ji_ByteArrayOutputStream;
                                                    ji_OutputStream__init_($var3);
                                                    $var3.$buf = $rt_createByteArray(32);
                                                    ji_FilterOutputStream__init_(var$9, $var3);
                                                    var$9.$sb = jl_StringBuilder__init_();
                                                    var$9.$buffer0 = $rt_createCharArray(32);
                                                    var$9.$autoFlush = 0;
                                                    var$9.$charset = jnci_UTF8Charset_INSTANCE;
                                                    jl_System_errCache = var$9;
                                                }
                                                jl_Throwable_printStackTrace($par2ScoreObjective, jl_System_errCache);
                                            }
                                            $par1 = $par1 + 1 | 0;
                                        }
                                        break m;
                                    }
                                    $par2ScoreObjective = new jl_IndexOutOfBoundsException;
                                    $par2ScoreObjective.$suppressionEnabled = 1;
                                    $par2ScoreObjective.$writableStackTrace = 1;
                                    $rt_throw($par2ScoreObjective);
                                }
                                var$8 = nms_ServerScoreboard_func_96550_d($this, $par2ScoreObjective);
                                var$10 = $this.$field_96555_a.$serverConfigManager.$playerEntityList;
                                var$5 = 0;
                                var$17 = var$10.$modCount;
                                var$14 = var$10.$size();
                                var$15 = 0;
                                while (true) {
                                    if (!(var$5 >= var$14 ? 0 : 1)) {
                                        var$8 = $this.$field_96553_b;
                                        ju_HashMap_putImpl(var$8.$backingMap, $par2ScoreObjective, var$8);
                                        break m;
                                    }
                                    if (var$17 < var$10.$modCount)
                                        break;
                                    var$18 = var$5 + 1 | 0;
                                    var$9 = var$10.$get(var$5);
                                    var$6 = var$8.$modCount;
                                    var$12 = var$8.$size();
                                    var$5 = var$15;
                                    while (var$5 >= var$12 ? 0 : 1) {
                                        if (var$6 < var$8.$modCount) {
                                            $par2ScoreObjective = new ju_ConcurrentModificationException;
                                            $par2ScoreObjective.$suppressionEnabled = 1;
                                            $par2ScoreObjective.$writableStackTrace = 1;
                                            $rt_throw($par2ScoreObjective);
                                        }
                                        p: {
                                            var$11 = var$5 + 1 | 0;
                                            $var3 = var$8.$get(var$5);
                                            var$13 = var$9.$playerNetServerHandler;
                                            if ($var3 instanceof nms_Packet3Chat) {
                                                var$7 = $var3;
                                                var$5 = var$13.$playerEntity.$chatVisibility;
                                                if (var$5 == 2)
                                                    break p;
                                                if (var$5 == 1 && !var$7.$isServer)
                                                    break p;
                                            }
                                            try {
                                                var$13 = var$13.$netManager;
                                                $ptr = 4;
                                                continue main;
                                            } catch ($$e) {
                                                $$je = $rt_wrapException($$e);
                                                if ($$je instanceof jl_Exception) {
                                                    $var3 = $$je;
                                                } else {
                                                    throw $$e;
                                                }
                                            }
                                            if (jl_System_errCache === null) {
                                                var$13 = new otcic_JSStderrPrintStream;
                                                var$7 = new ji_ByteArrayOutputStream;
                                                ji_OutputStream__init_(var$7);
                                                var$7.$buf = $rt_createByteArray(32);
                                                ji_FilterOutputStream__init_(var$13, var$7);
                                                var$13.$sb = jl_StringBuilder__init_();
                                                var$13.$buffer0 = $rt_createCharArray(32);
                                                var$13.$autoFlush = 0;
                                                var$13.$charset = jnci_UTF8Charset_INSTANCE;
                                                jl_System_errCache = var$13;
                                            }
                                            jl_Throwable_printStackTrace($var3, jl_System_errCache);
                                        }
                                        var$5 = var$11;
                                    }
                                    var$5 = var$18;
                                }
                                $par2ScoreObjective = new ju_ConcurrentModificationException;
                                $par2ScoreObjective.$suppressionEnabled = 1;
                                $par2ScoreObjective.$writableStackTrace = 1;
                                $rt_throw($par2ScoreObjective);
                            }
                        }
                        $par2ScoreObjective = $this.$field_96554_c;
                        if ($par2ScoreObjective !== null)
                            $par2ScoreObjective.$dirty = 1;
                        return;
                    }
                    if (var$14 < var$13.$modCount) {
                        $par2ScoreObjective = new ju_ConcurrentModificationException;
                        $par2ScoreObjective.$suppressionEnabled = 1;
                        $par2ScoreObjective.$writableStackTrace = 1;
                        $rt_throw($par2ScoreObjective);
                    }
                    var$17 = var$11 + 1 | 0;
                    var$7 = var$13.$get(var$11);
                    var$12 = var$9.$modCount;
                    var$18 = var$9.$size();
                    var$11 = var$16;
                }
                if (var$12 < var$9.$modCount)
                    break l;
                var$6 = var$11 + 1 | 0;
                var$8 = var$9.$get(var$11);
                var$10 = var$7.$playerNetServerHandler;
                if (!(var$8 instanceof nms_Packet3Chat))
                    break;
                var$19 = var$8;
                var$5 = var$10.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    continue;
                if (var$5 != 1)
                    break;
                if (var$19.$isServer)
                    break;
            }
            try {
                var$10 = var$10.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$19 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                ji_OutputStream__init_(var$10);
                var$3 = $rt_createByteArray(var$5);
                var$10.$buf = var$3;
                var$5 = 0;
                ji_FilterOutputStream__init_(var$8, var$10);
                var$10 = jl_StringBuilder__init_();
                var$8.$sb = var$10;
                var$11 = 32;
                var$3 = $rt_createCharArray(var$11);
                var$8.$buffer0 = var$3;
                var$8.$autoFlush = var$5;
                var$10 = jnci_UTF8Charset_INSTANCE;
                var$8.$charset = var$10;
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$19, var$8);
        }
        $par2ScoreObjective = new ju_ConcurrentModificationException;
        $par2ScoreObjective.$suppressionEnabled = 1;
        $par2ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par2ScoreObjective);
    case 4:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$13, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                $par1 = 32;
                ji_OutputStream__init_(var$7);
                var$3 = $rt_createByteArray($par1);
                var$7.$buf = var$3;
                $par1 = 0;
                ji_FilterOutputStream__init_(var$13, var$7);
                var$7 = jl_StringBuilder__init_();
                var$13.$sb = var$7;
                var$5 = 32;
                var$3 = $rt_createCharArray(var$5);
                var$13.$buffer0 = var$3;
                var$13.$autoFlush = $par1;
                var$7 = jnci_UTF8Charset_INSTANCE;
                var$13.$charset = var$7;
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$13);
        }
        l: while (true) {
            while (true) {
                var$5 = var$11;
                while (!(var$5 >= var$12 ? 0 : 1)) {
                    var$5 = var$18;
                    if (!(var$5 >= var$14 ? 0 : 1)) {
                        var$8 = $this.$field_96553_b;
                        ju_HashMap_putImpl(var$8.$backingMap, $par2ScoreObjective, var$8);
                        $par2ScoreObjective = $this.$field_96554_c;
                        if ($par2ScoreObjective !== null)
                            $par2ScoreObjective.$dirty = 1;
                        return;
                    }
                    if (var$17 < var$10.$modCount) {
                        $par2ScoreObjective = new ju_ConcurrentModificationException;
                        $par2ScoreObjective.$suppressionEnabled = 1;
                        $par2ScoreObjective.$writableStackTrace = 1;
                        $rt_throw($par2ScoreObjective);
                    }
                    var$18 = var$5 + 1 | 0;
                    var$9 = var$10.$get(var$5);
                    var$6 = var$8.$modCount;
                    var$12 = var$8.$size();
                    var$5 = var$15;
                }
                if (var$6 < var$8.$modCount)
                    break l;
                var$11 = var$5 + 1 | 0;
                $var3 = var$8.$get(var$5);
                var$13 = var$9.$playerNetServerHandler;
                if (!($var3 instanceof nms_Packet3Chat))
                    break;
                var$7 = $var3;
                var$5 = var$13.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    continue;
                if (var$5 != 1)
                    break;
                if (var$7.$isServer)
                    break;
            }
            try {
                var$13 = var$13.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                $par1 = 32;
                ji_OutputStream__init_(var$7);
                var$3 = $rt_createByteArray($par1);
                var$7.$buf = var$3;
                $par1 = 0;
                ji_FilterOutputStream__init_(var$13, var$7);
                var$7 = jl_StringBuilder__init_();
                var$13.$sb = var$7;
                var$5 = 32;
                var$3 = $rt_createCharArray(var$5);
                var$13.$buffer0 = var$3;
                var$13.$autoFlush = $par1;
                var$7 = jnci_UTF8Charset_INSTANCE;
                var$13.$charset = var$7;
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace($var3, var$13);
        }
        $par2ScoreObjective = new ju_ConcurrentModificationException;
        $par2ScoreObjective.$suppressionEnabled = 1;
        $par2ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par2ScoreObjective);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ScoreObjective, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_ServerScoreboard_func_96521_a = ($this, $par1Str, $par2ScorePlayerTeam) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2ScorePlayerTeam = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (nms_Scoreboard_getPlayersTeam($this, $par1Str) !== null) {
            var$3 = nms_Scoreboard_getPlayersTeam($this, $par1Str);
            if (var$3 !== null) {
                $ptr = 1;
                continue main;
            }
        }
        ju_HashMap_putImpl($this.$teamMemberships, $par1Str, $par2ScorePlayerTeam);
        var$4 = $par2ScorePlayerTeam.$membershipSet;
        ju_HashMap_putImpl(var$4.$backingMap, $par1Str, var$4);
        var$4 = $this.$field_96555_a.$serverConfigManager;
        var$3 = new nms_Packet209SetPlayerTeam;
        var$5 = $rt_createArray(jl_String, 1);
        var$5.data[0] = $par1Str;
        $par1Str = new ju_Arrays$ArrayAsList;
        $par1Str.$array1 = var$5;
        nms_Packet209SetPlayerTeam__init_0(var$3, $par2ScorePlayerTeam, $par1Str, 3);
        var$6 = 0;
        var$7 = var$3 instanceof nms_Packet3Chat;
        $par2ScorePlayerTeam = var$3;
        a: {
            while (true) {
                $par1Str = var$4.$playerEntityList;
                var$8 = $rt_compare(var$6, $par1Str.$size0);
                if (var$8 >= 0)
                    break;
                if (var$6 < 0)
                    break a;
                if (var$8 >= 0)
                    break a;
                b: {
                    $par1Str = $par1Str.$array.data[var$6].$playerNetServerHandler;
                    if (var$7) {
                        var$9 = $par1Str.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break b;
                        if (var$9 == 1 && !$par2ScorePlayerTeam.$isServer)
                            break b;
                    }
                    try {
                        $par1Str = $par1Str.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$10 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1Str = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par1Str, var$11);
                        $par1Str.$sb = jl_StringBuilder__init_();
                        $par1Str.$buffer0 = $rt_createCharArray(32);
                        $par1Str.$autoFlush = 0;
                        $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1Str;
                    }
                    jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                }
                var$6 = var$6 + 1 | 0;
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 1:
        nms_ServerScoreboard_removePlayerFromTeam($this, $par1Str, var$3);
        if ($rt_suspending()) {
            break main;
        }
        ju_HashMap_putImpl($this.$teamMemberships, $par1Str, $par2ScorePlayerTeam);
        var$4 = $par2ScorePlayerTeam.$membershipSet;
        ju_HashMap_putImpl(var$4.$backingMap, $par1Str, var$4);
        var$4 = $this.$field_96555_a.$serverConfigManager;
        var$3 = new nms_Packet209SetPlayerTeam;
        var$5 = $rt_createArray(jl_String, 1);
        var$5.data[0] = $par1Str;
        $par1Str = new ju_Arrays$ArrayAsList;
        $par1Str.$array1 = var$5;
        nms_Packet209SetPlayerTeam__init_0(var$3, $par2ScorePlayerTeam, $par1Str, 3);
        var$6 = 0;
        var$7 = var$3 instanceof nms_Packet3Chat;
        $par2ScorePlayerTeam = var$3;
        c: {
            while (true) {
                $par1Str = var$4.$playerEntityList;
                var$8 = $rt_compare(var$6, $par1Str.$size0);
                if (var$8 >= 0)
                    break;
                if (var$6 < 0)
                    break c;
                if (var$8 >= 0)
                    break c;
                a: {
                    $par1Str = $par1Str.$array.data[var$6].$playerNetServerHandler;
                    if (var$7) {
                        var$9 = $par1Str.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break a;
                        if (var$9 == 1 && !$par2ScorePlayerTeam.$isServer)
                            break a;
                    }
                    try {
                        $par1Str = $par1Str.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$10 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1Str = new otcic_JSStderrPrintStream;
                        var$11 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$11);
                        var$11.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par1Str, var$11);
                        $par1Str.$sb = jl_StringBuilder__init_();
                        $par1Str.$buffer0 = $rt_createCharArray(32);
                        $par1Str.$autoFlush = 0;
                        $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1Str;
                    }
                    jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                }
                var$6 = var$6 + 1 | 0;
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Str, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$10 = $$je;
                } else {
                    throw $$e;
                }
            }
            $par1Str = jl_System_errCache;
            if ($par1Str === null) {
                $par1Str = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_OutputStream__init_(var$11);
                var$5 = $rt_createByteArray(var$8);
                var$11.$buf = var$5;
                var$8 = 0;
                ji_FilterOutputStream__init_($par1Str, var$11);
                var$11 = jl_StringBuilder__init_();
                $par1Str.$sb = var$11;
                var$9 = 32;
                var$5 = $rt_createCharArray(var$9);
                $par1Str.$buffer0 = var$5;
                $par1Str.$autoFlush = var$8;
                var$11 = jnci_UTF8Charset_INSTANCE;
                $par1Str.$charset = var$11;
                jl_System_errCache = $par1Str;
            }
            $par1Str = jl_System_errCache;
            jl_Throwable_printStackTrace(var$10, $par1Str);
        }
        e: {
            a: while (true) {
                while (true) {
                    var$6 = var$6 + 1 | 0;
                    $par1Str = var$4.$playerEntityList;
                    var$8 = $rt_compare(var$6, $par1Str.$size0);
                    if (var$8 >= 0)
                        break a;
                    if (var$6 < 0)
                        break e;
                    if (var$8 >= 0)
                        break e;
                    $par1Str = $par1Str.$array.data[var$6].$playerNetServerHandler;
                    if (!var$7)
                        break;
                    var$9 = $par1Str.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        continue;
                    if (var$9 != 1)
                        break;
                    if ($par2ScorePlayerTeam.$isServer)
                        break;
                }
                try {
                    $par1Str = $par1Str.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par1Str = jl_System_errCache;
                if ($par1Str === null) {
                    $par1Str = new otcic_JSStderrPrintStream;
                    var$11 = new ji_ByteArrayOutputStream;
                    var$8 = 32;
                    ji_OutputStream__init_(var$11);
                    var$5 = $rt_createByteArray(var$8);
                    var$11.$buf = var$5;
                    var$8 = 0;
                    ji_FilterOutputStream__init_($par1Str, var$11);
                    var$11 = jl_StringBuilder__init_();
                    $par1Str.$sb = var$11;
                    var$9 = 32;
                    var$5 = $rt_createCharArray(var$9);
                    $par1Str.$buffer0 = var$5;
                    $par1Str.$autoFlush = var$8;
                    var$11 = jnci_UTF8Charset_INSTANCE;
                    $par1Str.$charset = var$11;
                    jl_System_errCache = $par1Str;
                }
                $par1Str = jl_System_errCache;
                jl_Throwable_printStackTrace(var$10, $par1Str);
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par2ScorePlayerTeam, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_removePlayerFromTeam = ($this, $par1Str, $par2ScorePlayerTeam) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2ScorePlayerTeam = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Scoreboard_removePlayerFromTeam($this, $par1Str, $par2ScorePlayerTeam);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$field_96555_a.$serverConfigManager;
        var$4 = new nms_Packet209SetPlayerTeam;
        var$5 = $rt_createArray(jl_String, 1);
        var$5.data[0] = $par1Str;
        $par1Str = new ju_Arrays$ArrayAsList;
        $par1Str.$array1 = var$5;
        nms_Packet209SetPlayerTeam__init_0(var$4, $par2ScorePlayerTeam, $par1Str, 4);
        var$6 = 0;
        var$7 = var$4 instanceof nms_Packet3Chat;
        $par2ScorePlayerTeam = var$4;
        a: {
            while (true) {
                $par1Str = var$3.$playerEntityList;
                var$8 = $rt_compare(var$6, $par1Str.$size0);
                if (var$8 >= 0)
                    break;
                if (var$6 < 0)
                    break a;
                if (var$8 >= 0)
                    break a;
                b: {
                    $par1Str = $par1Str.$array.data[var$6].$playerNetServerHandler;
                    if (var$7) {
                        var$8 = $par1Str.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break b;
                        if (var$8 == 1 && !$par2ScorePlayerTeam.$isServer)
                            break b;
                    }
                    try {
                        $par1Str = $par1Str.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Str = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$9 = new otcic_JSStderrPrintStream;
                        var$10 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$10);
                        var$10.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$9, var$10);
                        var$9.$sb = jl_StringBuilder__init_();
                        var$9.$buffer0 = $rt_createCharArray(32);
                        var$9.$autoFlush = 0;
                        var$9.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$9;
                    }
                    jl_Throwable_printStackTrace($par1Str, jl_System_errCache);
                }
                var$6 = var$6 + 1 | 0;
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Str, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Str = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_OutputStream__init_(var$10);
                var$5 = $rt_createByteArray(var$8);
                var$10.$buf = var$5;
                var$8 = 0;
                ji_FilterOutputStream__init_(var$9, var$10);
                var$10 = jl_StringBuilder__init_();
                var$9.$sb = var$10;
                var$11 = 32;
                var$5 = $rt_createCharArray(var$11);
                var$9.$buffer0 = var$5;
                var$9.$autoFlush = var$8;
                var$10 = jnci_UTF8Charset_INSTANCE;
                var$9.$charset = var$10;
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1Str, var$9);
        }
        c: {
            d: while (true) {
                while (true) {
                    var$6 = var$6 + 1 | 0;
                    $par1Str = var$3.$playerEntityList;
                    var$8 = $rt_compare(var$6, $par1Str.$size0);
                    if (var$8 >= 0)
                        break d;
                    if (var$6 < 0)
                        break c;
                    if (var$8 >= 0)
                        break c;
                    $par1Str = $par1Str.$array.data[var$6].$playerNetServerHandler;
                    if (!var$7)
                        break;
                    var$8 = $par1Str.$playerEntity.$chatVisibility;
                    if (var$8 == 2)
                        continue;
                    if (var$8 != 1)
                        break;
                    if ($par2ScorePlayerTeam.$isServer)
                        break;
                }
                try {
                    $par1Str = $par1Str.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Str = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$9 = jl_System_errCache;
                if (var$9 === null) {
                    var$9 = new otcic_JSStderrPrintStream;
                    var$10 = new ji_ByteArrayOutputStream;
                    var$8 = 32;
                    ji_OutputStream__init_(var$10);
                    var$5 = $rt_createByteArray(var$8);
                    var$10.$buf = var$5;
                    var$8 = 0;
                    ji_FilterOutputStream__init_(var$9, var$10);
                    var$10 = jl_StringBuilder__init_();
                    var$9.$sb = var$10;
                    var$11 = 32;
                    var$5 = $rt_createCharArray(var$11);
                    var$9.$buffer0 = var$5;
                    var$9.$autoFlush = var$8;
                    var$10 = jnci_UTF8Charset_INSTANCE;
                    var$9.$charset = var$10;
                    jl_System_errCache = var$9;
                }
                var$9 = jl_System_errCache;
                jl_Throwable_printStackTrace($par1Str, var$9);
            }
            $par1Str = $this.$field_96554_c;
            if ($par1Str !== null)
                $par1Str.$dirty = 1;
            return;
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $par2ScorePlayerTeam, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96522_a = ($this, $par1ScoreObjective) => {
    $par1ScoreObjective = $this.$field_96554_c;
    if ($par1ScoreObjective !== null)
        $par1ScoreObjective.$dirty = 1;
},
nms_ServerScoreboard_func_96532_b = ($this, $par1ScoreObjective) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ScoreObjective = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96553_b.$backingMap;
        if ($par1ScoreObjective === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = $par1ScoreObjective;
            if (!var$3.$id$)
                var$3.$id$ = $rt_nextId();
            var$4 = $par1ScoreObjective.$id$;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$3 = var$2.$key;
                    if ($par1ScoreObjective !== var$3 && !($par1ScoreObjective !== var$3 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = var$2 === null ? 0 : 1;
        a: {
            if (var$4) {
                var$6 = $this.$field_96555_a.$serverConfigManager;
                var$2 = new nms_Packet206SetObjective;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$objectiveName = $par1ScoreObjective.$name4;
                var$2.$objectiveDisplayName = $par1ScoreObjective.$displayName0;
                var$2.$change = 2;
                var$4 = 0;
                var$7 = var$2 instanceof nms_Packet3Chat;
                var$3 = var$2;
                while (true) {
                    $par1ScoreObjective = var$6.$playerEntityList;
                    var$8 = $rt_compare(var$4, $par1ScoreObjective.$size0);
                    if (var$8 >= 0)
                        break;
                    if (var$4 < 0)
                        break a;
                    if (var$8 >= 0)
                        break a;
                    b: {
                        var$9 = $par1ScoreObjective.$array.data[var$4].$playerNetServerHandler;
                        if (var$7) {
                            var$10 = var$9.$playerEntity.$chatVisibility;
                            if (var$10 == 2)
                                break b;
                            if (var$10 == 1 && !var$3.$isServer)
                                break b;
                        }
                        try {
                            $par1ScoreObjective = var$9.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ScoreObjective = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$9 = new otcic_JSStderrPrintStream;
                            var$11 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$11);
                            var$11.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$9, var$11);
                            var$9.$sb = jl_StringBuilder__init_();
                            var$9.$buffer0 = $rt_createCharArray(32);
                            var$9.$autoFlush = 0;
                            var$9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$9;
                        }
                        jl_Throwable_printStackTrace($par1ScoreObjective, jl_System_errCache);
                    }
                    var$4 = var$4 + 1 | 0;
                }
            }
            $par1ScoreObjective = $this.$field_96554_c;
            if ($par1ScoreObjective !== null)
                $par1ScoreObjective.$dirty = 1;
            return;
        }
        $par1ScoreObjective = new jl_IndexOutOfBoundsException;
        $par1ScoreObjective.$suppressionEnabled = 1;
        $par1ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par1ScoreObjective);
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ScoreObjective, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ScoreObjective = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_OutputStream__init_(var$11);
                var$5 = $rt_createByteArray(var$8);
                var$11.$buf = var$5;
                var$8 = 0;
                ji_FilterOutputStream__init_(var$9, var$11);
                var$11 = jl_StringBuilder__init_();
                var$9.$sb = var$11;
                var$10 = 32;
                var$5 = $rt_createCharArray(var$10);
                var$9.$buffer0 = var$5;
                var$9.$autoFlush = var$8;
                var$11 = jnci_UTF8Charset_INSTANCE;
                var$9.$charset = var$11;
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1ScoreObjective, var$9);
        }
        d: while (true) {
            while (true) {
                var$4 = var$4 + 1 | 0;
                $par1ScoreObjective = var$6.$playerEntityList;
                var$8 = $rt_compare(var$4, $par1ScoreObjective.$size0);
                if (var$8 >= 0) {
                    $par1ScoreObjective = $this.$field_96554_c;
                    if ($par1ScoreObjective !== null)
                        $par1ScoreObjective.$dirty = 1;
                    return;
                }
                if (var$4 < 0)
                    break d;
                if (var$8 >= 0)
                    break d;
                var$9 = $par1ScoreObjective.$array.data[var$4].$playerNetServerHandler;
                if (!var$7)
                    break;
                var$10 = var$9.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$3.$isServer)
                    break;
            }
            try {
                $par1ScoreObjective = var$9.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ScoreObjective = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                var$8 = 32;
                ji_OutputStream__init_(var$11);
                var$5 = $rt_createByteArray(var$8);
                var$11.$buf = var$5;
                var$8 = 0;
                ji_FilterOutputStream__init_(var$9, var$11);
                var$11 = jl_StringBuilder__init_();
                var$9.$sb = var$11;
                var$10 = 32;
                var$5 = $rt_createCharArray(var$10);
                var$9.$buffer0 = var$5;
                var$9.$autoFlush = var$8;
                var$11 = jnci_UTF8Charset_INSTANCE;
                var$9.$charset = var$11;
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1ScoreObjective, var$9);
        }
        $par1ScoreObjective = new jl_IndexOutOfBoundsException;
        $par1ScoreObjective.$suppressionEnabled = 1;
        $par1ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par1ScoreObjective);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScoreObjective, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96533_c = ($this, $par1ScoreObjective) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ScoreObjective = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96553_b.$backingMap;
        if ($par1ScoreObjective === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = $par1ScoreObjective;
            if (!var$3.$id$)
                var$3.$id$ = $rt_nextId();
            var$4 = $par1ScoreObjective.$id$;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$3 = var$2.$key;
                    if ($par1ScoreObjective !== var$3 && !($par1ScoreObjective !== var$3 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = var$2 === null ? 0 : 1;
        a: {
            if (var$4) {
                var$6 = new ju_ArrayList;
                var$6.$array = $rt_createArray(jl_Object, 10);
                var$2 = new nms_Packet206SetObjective;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$objectiveName = $par1ScoreObjective.$name4;
                var$2.$objectiveDisplayName = $par1ScoreObjective.$displayName0;
                var$2.$change = 1;
                ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                var$5 = var$6.$array.data;
                var$7 = var$6.$size0;
                var$6.$size0 = var$7 + 1 | 0;
                var$5[var$7] = var$2;
                var$6.$modCount = var$6.$modCount + 1 | 0;
                var$4 = 0;
                while (var$4 < 3) {
                    if ($this.$field_96541_d.data[var$4] === $par1ScoreObjective) {
                        var$2 = new nms_Packet208SetDisplayObjective;
                        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$2.$scoreboardPosition = var$4;
                        if ($par1ScoreObjective === null)
                            var$2.$scoreName = $rt_s(3);
                        else
                            var$2.$scoreName = $par1ScoreObjective.$name4;
                        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                        var$5 = var$6.$array.data;
                        var$8 = var$6.$size0;
                        var$6.$size0 = var$8 + 1 | 0;
                        var$5[var$8] = var$2;
                        var$6.$modCount = var$6.$modCount + 1 | 0;
                    }
                    var$4 = var$4 + 1 | 0;
                }
                var$2 = $this.$field_96555_a.$serverConfigManager.$playerEntityList;
                var$7 = 0;
                var$9 = var$2.$modCount;
                var$10 = var$2.$size();
                var$11 = 0;
                while (true) {
                    if (!(var$7 >= var$10 ? 0 : 1)) {
                        $par1ScoreObjective = ju_HashMap_removeByKey($this.$field_96553_b.$backingMap, $par1ScoreObjective);
                        break a;
                    }
                    if (var$9 < var$2.$modCount)
                        break;
                    var$12 = var$7 + 1 | 0;
                    var$13 = var$2.$get(var$7);
                    var$8 = var$6.$modCount;
                    var$14 = var$6.$size();
                    var$15 = var$11;
                    while (var$15 >= var$14 ? 0 : 1) {
                        if (var$8 < var$6.$modCount) {
                            $par1ScoreObjective = new ju_ConcurrentModificationException;
                            $par1ScoreObjective.$suppressionEnabled = 1;
                            $par1ScoreObjective.$writableStackTrace = 1;
                            $rt_throw($par1ScoreObjective);
                        }
                        b: {
                            var$7 = var$15 + 1 | 0;
                            var$3 = var$6.$get(var$15);
                            var$16 = var$13.$playerNetServerHandler;
                            if (var$3 instanceof nms_Packet3Chat) {
                                var$17 = var$3;
                                var$4 = var$16.$playerEntity.$chatVisibility;
                                if (var$4 == 2)
                                    break b;
                                if (var$4 == 1 && !var$17.$isServer)
                                    break b;
                            }
                            try {
                                var$16 = var$16.$netManager;
                                $ptr = 1;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$16 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$17 = new otcic_JSStderrPrintStream;
                                var$3 = new ji_ByteArrayOutputStream;
                                ji_OutputStream__init_(var$3);
                                var$3.$buf = $rt_createByteArray(32);
                                ji_FilterOutputStream__init_(var$17, var$3);
                                var$17.$sb = jl_StringBuilder__init_();
                                var$17.$buffer0 = $rt_createCharArray(32);
                                var$17.$autoFlush = 0;
                                var$17.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$17;
                            }
                            jl_Throwable_printStackTrace(var$16, jl_System_errCache);
                        }
                        var$15 = var$7;
                    }
                    var$7 = var$12;
                }
                $par1ScoreObjective = new ju_ConcurrentModificationException;
                $par1ScoreObjective.$suppressionEnabled = 1;
                $par1ScoreObjective.$writableStackTrace = 1;
                $rt_throw($par1ScoreObjective);
            }
        }
        $par1ScoreObjective = $this.$field_96554_c;
        if ($par1ScoreObjective !== null)
            $par1ScoreObjective.$dirty = 1;
        return;
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$16, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$16 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$3 = jl_System_errCache;
            if (var$3 === null) {
                var$17 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                var$4 = 32;
                ji_OutputStream__init_(var$3);
                var$5 = $rt_createByteArray(var$4);
                var$3.$buf = var$5;
                var$4 = 0;
                ji_FilterOutputStream__init_(var$17, var$3);
                var$3 = jl_StringBuilder__init_();
                var$17.$sb = var$3;
                var$15 = 32;
                var$5 = $rt_createCharArray(var$15);
                var$17.$buffer0 = var$5;
                var$17.$autoFlush = var$4;
                var$3 = jnci_UTF8Charset_INSTANCE;
                var$17.$charset = var$3;
                jl_System_errCache = var$17;
            }
            var$3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$16, var$3);
        }
        d: while (true) {
            while (true) {
                var$15 = var$7;
                while (!(var$15 >= var$14 ? 0 : 1)) {
                    var$7 = var$12;
                    if (!(var$7 >= var$10 ? 0 : 1)) {
                        $par1ScoreObjective = ju_HashMap_removeByKey($this.$field_96553_b.$backingMap, $par1ScoreObjective);
                        $par1ScoreObjective = $this.$field_96554_c;
                        if ($par1ScoreObjective !== null)
                            $par1ScoreObjective.$dirty = 1;
                        return;
                    }
                    if (var$9 < var$2.$modCount) {
                        $par1ScoreObjective = new ju_ConcurrentModificationException;
                        $par1ScoreObjective.$suppressionEnabled = 1;
                        $par1ScoreObjective.$writableStackTrace = 1;
                        $rt_throw($par1ScoreObjective);
                    }
                    var$12 = var$7 + 1 | 0;
                    var$13 = var$2.$get(var$7);
                    var$8 = var$6.$modCount;
                    var$14 = var$6.$size();
                    var$15 = var$11;
                }
                if (var$8 < var$6.$modCount)
                    break d;
                var$7 = var$15 + 1 | 0;
                var$3 = var$6.$get(var$15);
                var$16 = var$13.$playerNetServerHandler;
                if (!(var$3 instanceof nms_Packet3Chat))
                    break;
                var$17 = var$3;
                var$4 = var$16.$playerEntity.$chatVisibility;
                if (var$4 == 2)
                    continue;
                if (var$4 != 1)
                    break;
                if (var$17.$isServer)
                    break;
            }
            try {
                var$16 = var$16.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$16 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$3 = jl_System_errCache;
            if (var$3 === null) {
                var$17 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                var$4 = 32;
                ji_OutputStream__init_(var$3);
                var$5 = $rt_createByteArray(var$4);
                var$3.$buf = var$5;
                var$4 = 0;
                ji_FilterOutputStream__init_(var$17, var$3);
                var$3 = jl_StringBuilder__init_();
                var$17.$sb = var$3;
                var$15 = 32;
                var$5 = $rt_createCharArray(var$15);
                var$17.$buffer0 = var$5;
                var$17.$autoFlush = var$4;
                var$3 = jnci_UTF8Charset_INSTANCE;
                var$17.$charset = var$3;
                jl_System_errCache = var$17;
            }
            var$3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$16, var$3);
        }
        $par1ScoreObjective = new ju_ConcurrentModificationException;
        $par1ScoreObjective.$suppressionEnabled = 1;
        $par1ScoreObjective.$writableStackTrace = 1;
        $rt_throw($par1ScoreObjective);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScoreObjective, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_ServerScoreboard_func_96523_a = ($this, $par1ScorePlayerTeam) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ScorePlayerTeam = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96555_a.$serverConfigManager;
        var$3 = nms_Packet209SetPlayerTeam__init_($par1ScorePlayerTeam, 0);
        var$4 = 0;
        var$5 = var$3 instanceof nms_Packet3Chat;
        var$6 = var$3;
        a: {
            while (true) {
                $par1ScorePlayerTeam = var$2.$playerEntityList;
                var$7 = $rt_compare(var$4, $par1ScorePlayerTeam.$size0);
                if (var$7 >= 0)
                    break;
                if (var$4 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                b: {
                    var$8 = $par1ScorePlayerTeam.$array.data[var$4].$playerNetServerHandler;
                    if (var$5) {
                        var$7 = var$8.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break b;
                        if (var$7 == 1 && !var$6.$isServer)
                            break b;
                    }
                    try {
                        $par1ScorePlayerTeam = var$8.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$9 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                        var$8 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$8);
                        var$8.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                        $par1ScorePlayerTeam.$sb = jl_StringBuilder__init_();
                        $par1ScorePlayerTeam.$buffer0 = $rt_createCharArray(32);
                        $par1ScorePlayerTeam.$autoFlush = 0;
                        $par1ScorePlayerTeam.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1ScorePlayerTeam;
                    }
                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                }
                var$4 = var$4 + 1 | 0;
            }
            $par1ScorePlayerTeam = $this.$field_96554_c;
            if ($par1ScorePlayerTeam !== null)
                $par1ScorePlayerTeam.$dirty = 1;
            return;
        }
        $par1ScorePlayerTeam = new jl_IndexOutOfBoundsException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $rt_throw($par1ScorePlayerTeam);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ScorePlayerTeam, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            $par1ScorePlayerTeam = jl_System_errCache;
            if ($par1ScorePlayerTeam === null) {
                $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$7 = 32;
                ji_OutputStream__init_(var$8);
                var$10 = $rt_createByteArray(var$7);
                var$8.$buf = var$10;
                var$7 = 0;
                ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                var$8 = jl_StringBuilder__init_();
                $par1ScorePlayerTeam.$sb = var$8;
                var$11 = 32;
                var$10 = $rt_createCharArray(var$11);
                $par1ScorePlayerTeam.$buffer0 = var$10;
                $par1ScorePlayerTeam.$autoFlush = var$7;
                var$8 = jnci_UTF8Charset_INSTANCE;
                $par1ScorePlayerTeam.$charset = var$8;
                jl_System_errCache = $par1ScorePlayerTeam;
            }
            $par1ScorePlayerTeam = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, $par1ScorePlayerTeam);
        }
        c: {
            d: while (true) {
                while (true) {
                    var$4 = var$4 + 1 | 0;
                    $par1ScorePlayerTeam = var$2.$playerEntityList;
                    var$7 = $rt_compare(var$4, $par1ScorePlayerTeam.$size0);
                    if (var$7 >= 0)
                        break d;
                    if (var$4 < 0)
                        break c;
                    if (var$7 >= 0)
                        break c;
                    var$8 = $par1ScorePlayerTeam.$array.data[var$4].$playerNetServerHandler;
                    if (!var$5)
                        break;
                    var$7 = var$8.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        continue;
                    if (var$7 != 1)
                        break;
                    if (var$6.$isServer)
                        break;
                }
                try {
                    $par1ScorePlayerTeam = var$8.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par1ScorePlayerTeam = jl_System_errCache;
                if ($par1ScorePlayerTeam === null) {
                    $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                    var$8 = new ji_ByteArrayOutputStream;
                    var$7 = 32;
                    ji_OutputStream__init_(var$8);
                    var$10 = $rt_createByteArray(var$7);
                    var$8.$buf = var$10;
                    var$7 = 0;
                    ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                    var$8 = jl_StringBuilder__init_();
                    $par1ScorePlayerTeam.$sb = var$8;
                    var$11 = 32;
                    var$10 = $rt_createCharArray(var$11);
                    $par1ScorePlayerTeam.$buffer0 = var$10;
                    $par1ScorePlayerTeam.$autoFlush = var$7;
                    var$8 = jnci_UTF8Charset_INSTANCE;
                    $par1ScorePlayerTeam.$charset = var$8;
                    jl_System_errCache = $par1ScorePlayerTeam;
                }
                $par1ScorePlayerTeam = jl_System_errCache;
                jl_Throwable_printStackTrace(var$9, $par1ScorePlayerTeam);
            }
            $par1ScorePlayerTeam = $this.$field_96554_c;
            if ($par1ScorePlayerTeam !== null)
                $par1ScorePlayerTeam.$dirty = 1;
            return;
        }
        $par1ScorePlayerTeam = new jl_IndexOutOfBoundsException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $rt_throw($par1ScorePlayerTeam);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScorePlayerTeam, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96538_b = ($this, $par1ScorePlayerTeam) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ScorePlayerTeam = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96555_a.$serverConfigManager;
        var$3 = nms_Packet209SetPlayerTeam__init_($par1ScorePlayerTeam, 2);
        var$4 = 0;
        var$5 = var$3 instanceof nms_Packet3Chat;
        var$6 = var$3;
        a: {
            while (true) {
                $par1ScorePlayerTeam = var$2.$playerEntityList;
                var$7 = $rt_compare(var$4, $par1ScorePlayerTeam.$size0);
                if (var$7 >= 0)
                    break;
                if (var$4 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                b: {
                    var$8 = $par1ScorePlayerTeam.$array.data[var$4].$playerNetServerHandler;
                    if (var$5) {
                        var$7 = var$8.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break b;
                        if (var$7 == 1 && !var$6.$isServer)
                            break b;
                    }
                    try {
                        $par1ScorePlayerTeam = var$8.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$9 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                        var$8 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$8);
                        var$8.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                        $par1ScorePlayerTeam.$sb = jl_StringBuilder__init_();
                        $par1ScorePlayerTeam.$buffer0 = $rt_createCharArray(32);
                        $par1ScorePlayerTeam.$autoFlush = 0;
                        $par1ScorePlayerTeam.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1ScorePlayerTeam;
                    }
                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                }
                var$4 = var$4 + 1 | 0;
            }
            $par1ScorePlayerTeam = $this.$field_96554_c;
            if ($par1ScorePlayerTeam !== null)
                $par1ScorePlayerTeam.$dirty = 1;
            return;
        }
        $par1ScorePlayerTeam = new jl_IndexOutOfBoundsException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $rt_throw($par1ScorePlayerTeam);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ScorePlayerTeam, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            $par1ScorePlayerTeam = jl_System_errCache;
            if ($par1ScorePlayerTeam === null) {
                $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$7 = 32;
                ji_OutputStream__init_(var$8);
                var$10 = $rt_createByteArray(var$7);
                var$8.$buf = var$10;
                var$7 = 0;
                ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                var$8 = jl_StringBuilder__init_();
                $par1ScorePlayerTeam.$sb = var$8;
                var$11 = 32;
                var$10 = $rt_createCharArray(var$11);
                $par1ScorePlayerTeam.$buffer0 = var$10;
                $par1ScorePlayerTeam.$autoFlush = var$7;
                var$8 = jnci_UTF8Charset_INSTANCE;
                $par1ScorePlayerTeam.$charset = var$8;
                jl_System_errCache = $par1ScorePlayerTeam;
            }
            $par1ScorePlayerTeam = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, $par1ScorePlayerTeam);
        }
        c: {
            d: while (true) {
                while (true) {
                    var$4 = var$4 + 1 | 0;
                    $par1ScorePlayerTeam = var$2.$playerEntityList;
                    var$7 = $rt_compare(var$4, $par1ScorePlayerTeam.$size0);
                    if (var$7 >= 0)
                        break d;
                    if (var$4 < 0)
                        break c;
                    if (var$7 >= 0)
                        break c;
                    var$8 = $par1ScorePlayerTeam.$array.data[var$4].$playerNetServerHandler;
                    if (!var$5)
                        break;
                    var$7 = var$8.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        continue;
                    if (var$7 != 1)
                        break;
                    if (var$6.$isServer)
                        break;
                }
                try {
                    $par1ScorePlayerTeam = var$8.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par1ScorePlayerTeam = jl_System_errCache;
                if ($par1ScorePlayerTeam === null) {
                    $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                    var$8 = new ji_ByteArrayOutputStream;
                    var$7 = 32;
                    ji_OutputStream__init_(var$8);
                    var$10 = $rt_createByteArray(var$7);
                    var$8.$buf = var$10;
                    var$7 = 0;
                    ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                    var$8 = jl_StringBuilder__init_();
                    $par1ScorePlayerTeam.$sb = var$8;
                    var$11 = 32;
                    var$10 = $rt_createCharArray(var$11);
                    $par1ScorePlayerTeam.$buffer0 = var$10;
                    $par1ScorePlayerTeam.$autoFlush = var$7;
                    var$8 = jnci_UTF8Charset_INSTANCE;
                    $par1ScorePlayerTeam.$charset = var$8;
                    jl_System_errCache = $par1ScorePlayerTeam;
                }
                $par1ScorePlayerTeam = jl_System_errCache;
                jl_Throwable_printStackTrace(var$9, $par1ScorePlayerTeam);
            }
            $par1ScorePlayerTeam = $this.$field_96554_c;
            if ($par1ScorePlayerTeam !== null)
                $par1ScorePlayerTeam.$dirty = 1;
            return;
        }
        $par1ScorePlayerTeam = new jl_IndexOutOfBoundsException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $rt_throw($par1ScorePlayerTeam);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScorePlayerTeam, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96513_c = ($this, $par1ScorePlayerTeam) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ScorePlayerTeam = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$field_96555_a.$serverConfigManager;
        var$3 = nms_Packet209SetPlayerTeam__init_($par1ScorePlayerTeam, 1);
        var$4 = 0;
        var$5 = var$3 instanceof nms_Packet3Chat;
        var$6 = var$3;
        a: {
            while (true) {
                $par1ScorePlayerTeam = var$2.$playerEntityList;
                var$7 = $rt_compare(var$4, $par1ScorePlayerTeam.$size0);
                if (var$7 >= 0)
                    break;
                if (var$4 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                b: {
                    var$8 = $par1ScorePlayerTeam.$array.data[var$4].$playerNetServerHandler;
                    if (var$5) {
                        var$7 = var$8.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break b;
                        if (var$7 == 1 && !var$6.$isServer)
                            break b;
                    }
                    try {
                        $par1ScorePlayerTeam = var$8.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$9 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                        var$8 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$8);
                        var$8.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                        $par1ScorePlayerTeam.$sb = jl_StringBuilder__init_();
                        $par1ScorePlayerTeam.$buffer0 = $rt_createCharArray(32);
                        $par1ScorePlayerTeam.$autoFlush = 0;
                        $par1ScorePlayerTeam.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1ScorePlayerTeam;
                    }
                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                }
                var$4 = var$4 + 1 | 0;
            }
            $par1ScorePlayerTeam = $this.$field_96554_c;
            if ($par1ScorePlayerTeam !== null)
                $par1ScorePlayerTeam.$dirty = 1;
            return;
        }
        $par1ScorePlayerTeam = new jl_IndexOutOfBoundsException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $rt_throw($par1ScorePlayerTeam);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ScorePlayerTeam, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            $par1ScorePlayerTeam = jl_System_errCache;
            if ($par1ScorePlayerTeam === null) {
                $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$7 = 32;
                ji_OutputStream__init_(var$8);
                var$10 = $rt_createByteArray(var$7);
                var$8.$buf = var$10;
                var$7 = 0;
                ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                var$8 = jl_StringBuilder__init_();
                $par1ScorePlayerTeam.$sb = var$8;
                var$11 = 32;
                var$10 = $rt_createCharArray(var$11);
                $par1ScorePlayerTeam.$buffer0 = var$10;
                $par1ScorePlayerTeam.$autoFlush = var$7;
                var$8 = jnci_UTF8Charset_INSTANCE;
                $par1ScorePlayerTeam.$charset = var$8;
                jl_System_errCache = $par1ScorePlayerTeam;
            }
            $par1ScorePlayerTeam = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, $par1ScorePlayerTeam);
        }
        c: {
            d: while (true) {
                while (true) {
                    var$4 = var$4 + 1 | 0;
                    $par1ScorePlayerTeam = var$2.$playerEntityList;
                    var$7 = $rt_compare(var$4, $par1ScorePlayerTeam.$size0);
                    if (var$7 >= 0)
                        break d;
                    if (var$4 < 0)
                        break c;
                    if (var$7 >= 0)
                        break c;
                    var$8 = $par1ScorePlayerTeam.$array.data[var$4].$playerNetServerHandler;
                    if (!var$5)
                        break;
                    var$7 = var$8.$playerEntity.$chatVisibility;
                    if (var$7 == 2)
                        continue;
                    if (var$7 != 1)
                        break;
                    if (var$6.$isServer)
                        break;
                }
                try {
                    $par1ScorePlayerTeam = var$8.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par1ScorePlayerTeam = jl_System_errCache;
                if ($par1ScorePlayerTeam === null) {
                    $par1ScorePlayerTeam = new otcic_JSStderrPrintStream;
                    var$8 = new ji_ByteArrayOutputStream;
                    var$7 = 32;
                    ji_OutputStream__init_(var$8);
                    var$10 = $rt_createByteArray(var$7);
                    var$8.$buf = var$10;
                    var$7 = 0;
                    ji_FilterOutputStream__init_($par1ScorePlayerTeam, var$8);
                    var$8 = jl_StringBuilder__init_();
                    $par1ScorePlayerTeam.$sb = var$8;
                    var$11 = 32;
                    var$10 = $rt_createCharArray(var$11);
                    $par1ScorePlayerTeam.$buffer0 = var$10;
                    $par1ScorePlayerTeam.$autoFlush = var$7;
                    var$8 = jnci_UTF8Charset_INSTANCE;
                    $par1ScorePlayerTeam.$charset = var$8;
                    jl_System_errCache = $par1ScorePlayerTeam;
                }
                $par1ScorePlayerTeam = jl_System_errCache;
                jl_Throwable_printStackTrace(var$9, $par1ScorePlayerTeam);
            }
            $par1ScorePlayerTeam = $this.$field_96554_c;
            if ($par1ScorePlayerTeam !== null)
                $par1ScorePlayerTeam.$dirty = 1;
            return;
        }
        $par1ScorePlayerTeam = new jl_IndexOutOfBoundsException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $rt_throw($par1ScorePlayerTeam);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ScorePlayerTeam, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_ServerScoreboard_func_96550_d = ($this, $par1ScoreObjective) => {
    let $var2, $var4, var$4, $var3, var$6, var$7, var$8, var$9, $var5$index, var$11, $var5$index_0, var$13;
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    $var4 = new nms_Packet206SetObjective;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $var4.$objectiveName = $par1ScoreObjective.$name4;
    $var4.$objectiveDisplayName = $par1ScoreObjective.$displayName0;
    $var4.$change = 0;
    ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
    var$4 = $var2.$array.data;
    $var3 = $var2.$size0;
    $var2.$size0 = $var3 + 1 | 0;
    var$4[$var3] = $var4;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = 0;
    while ($var3 < 3) {
        if ($this.$field_96541_d.data[$var3] === $par1ScoreObjective) {
            $var4 = new nms_Packet208SetDisplayObjective;
            $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var4.$scoreboardPosition = $var3;
            if ($par1ScoreObjective === null)
                $var4.$scoreName = $rt_s(3);
            else
                $var4.$scoreName = $par1ScoreObjective.$name4;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            var$4 = $var2.$array.data;
            var$6 = $var2.$size0;
            $var2.$size0 = var$6 + 1 | 0;
            var$4[var$6] = $var4;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    var$7 = new ju_ArrayList;
    var$7.$array = $rt_createArray(jl_Object, 10);
    $var4 = $this.$field_96544_c;
    if ($var4.$cachedValues === null) {
        var$8 = new ju_HashMap$2;
        var$8.$this$01 = $var4;
        $var4.$cachedValues = var$8;
    }
    $var4 = $var4.$cachedValues.$iterator();
    while ($var4.$hasNext()) {
        var$8 = $var4.$next();
        if ($par1ScoreObjective === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$9 = $par1ScoreObjective;
            if (!var$9.$id$)
                var$9.$id$ = $rt_nextId();
            var$6 = $par1ScoreObjective.$id$;
            var$4 = var$8.$elementData.data;
            var$8 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$6) {
                    var$9 = var$8.$key;
                    if ($par1ScoreObjective !== var$9 && !($par1ScoreObjective !== var$9 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$8 = var$8 === null ? null : var$8.$value0;
        if (var$8 !== null) {
            ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
            var$4 = var$7.$array.data;
            $var5$index = var$7.$size0;
            var$7.$size0 = $var5$index + 1 | 0;
            var$4[$var5$index] = var$8;
            var$7.$modCount = var$7.$modCount + 1 | 0;
        }
    }
    $par1ScoreObjective = nms_Score_field_96658_a;
    if ($par1ScoreObjective === null)
        $par1ScoreObjective = ju_Comparator$NaturalOrder_INSTANCE;
    var$4 = $rt_createArray(jl_Object, var$7.$size0);
    var$11 = var$4.data;
    ju_AbstractCollection_toArray(var$7, var$4);
    ju_Arrays_sort(var$4, $par1ScoreObjective);
    $var3 = 0;
    $var5$index = var$11.length;
    while (true) {
        if ($var3 >= $var5$index) {
            $var5$index_0 = 0;
            var$6 = var$7.$modCount;
            var$13 = var$7.$size();
            while ($var5$index_0 >= var$13 ? 0 : 1) {
                if (var$6 < var$7.$modCount) {
                    $par1ScoreObjective = new ju_ConcurrentModificationException;
                    $par1ScoreObjective.$suppressionEnabled = 1;
                    $par1ScoreObjective.$writableStackTrace = 1;
                    $rt_throw($par1ScoreObjective);
                }
                $var5$index = $var5$index_0 + 1 | 0;
                $var4 = var$7.$get($var5$index_0);
                $par1ScoreObjective = new nms_Packet207SetScore;
                $par1ScoreObjective.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1ScoreObjective.$itemName = $rt_s(3);
                $par1ScoreObjective.$scoreName0 = $rt_s(3);
                $par1ScoreObjective.$itemName = $var4.$field_96654_d;
                $par1ScoreObjective.$scoreName0 = $var4.$theScoreObjective.$name4;
                $par1ScoreObjective.$value14 = $var4.$field_96655_e;
                $par1ScoreObjective.$updateOrRemove = 0;
                ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                var$4 = $var2.$array.data;
                $var5$index_0 = $var2.$size0;
                $var2.$size0 = $var5$index_0 + 1 | 0;
                var$4[$var5$index_0] = $par1ScoreObjective;
                $var2.$modCount = $var2.$modCount + 1 | 0;
                $var5$index_0 = $var5$index;
            }
            return $var2;
        }
        $par1ScoreObjective = var$11[$var3];
        if ($var3 < 0)
            break;
        if ($var3 >= var$7.$size0)
            break;
        var$7.$array.data[$var3] = $par1ScoreObjective;
        $var3 = $var3 + 1 | 0;
    }
    $par1ScoreObjective = new jl_IndexOutOfBoundsException;
    $par1ScoreObjective.$suppressionEnabled = 1;
    $par1ScoreObjective.$writableStackTrace = 1;
    $rt_throw($par1ScoreObjective);
},
nms_WorldServer$_init_$lambda$_0_0 = $rt_classWithoutFields(),
nms_WorldServer$_init_$lambda$_0_0__init_ = var$0 => {
    return;
},
nms_WorldServer$_init_$lambda$_0_0__init_0 = () => {
    let var_0 = new nms_WorldServer$_init_$lambda$_0_0();
    nms_WorldServer$_init_$lambda$_0_0__init_(var_0);
    return var_0;
},
nms_WorldServer$_init_$lambda$_0_0_apply = (var$0, var$1) => {
    let var$2;
    nms_WorldServer_$callClinit();
    var$2 = new nms_ScoreboardSaveData;
    var$2.$mapName = var$1;
    return var$2;
};
function nms_WorldSavedData() {
    let a = this; jl_Object.call(a);
    a.$mapName = null;
    a.$dirty = 0;
}
let nms_WorldSavedData_setDirty = ($this, $par1) => {
    $this.$dirty = $par1;
},
nms_WorldSavedData_isDirty = $this => {
    return $this.$dirty;
};
function nms_ScoreboardSaveData() {
    let a = this; nms_WorldSavedData.call(a);
    a.$theScoreboard = null;
    a.$field_96506_b = null;
}
let nms_ScoreboardSaveData__init_ = $this => {
    $this.$mapName = $rt_s(1076);
},
nms_ScoreboardSaveData__init_0 = () => {
    let var_0 = new nms_ScoreboardSaveData();
    nms_ScoreboardSaveData__init_(var_0);
    return var_0;
},
nms_ScoreboardSaveData_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$theScoreboard === null) {
            $this.$field_96506_b = $par1NBTTagCompound;
            return;
        }
        a: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2056).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2056).$nativeString.length)
                        break a;
                    $rt_s(2056).$hashCode1 = (31 * $rt_s(2056).$hashCode1 | 0) + $rt_s(2056).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2056).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                b: {
                    var$5 = var$2.$key;
                    if ($rt_s(2056) !== var$5) {
                        if ($rt_s(2056) === var$5)
                            var$6 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$6 = 0;
                        else {
                            var$5 = var$5;
                            var$6 = $rt_s(2056).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$6) {
                            var$6 = 0;
                            break b;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            var$2 = new nms_NBTTagList;
            if ($rt_s(2056) !== null)
                var$2.$name = $rt_s(2056);
            else
                var$2.$name = $rt_s(3);
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            var$2.$tagList = var$7;
        } else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2056) === null) {
                var$5 = var$2.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2056).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2056).$nativeString.length)
                                break c;
                            $rt_s(2056).$hashCode1 = (31 * $rt_s(2056).$hashCode1 | 0) + $rt_s(2056).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2056).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$3) {
                        d: {
                            var$2 = var$5.$key;
                            if ($rt_s(2056) !== var$2) {
                                if ($rt_s(2056) === var$2)
                                    var$6 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    var$2 = var$2;
                                    var$6 = $rt_s(2056).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break d;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            var$2 = var$5 === null ? null : var$5.$value0;
        }
        $ptr = 1;
    case 1:
        e: {
            nms_ScoreboardSaveData_func_96501_b($this, var$2);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2057).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2057).$nativeString.length)
                        break e;
                    $rt_s(2057).$hashCode1 = (31 * $rt_s(2057).$hashCode1 | 0) + $rt_s(2057).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2057).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                f: {
                    var$5 = var$2.$key;
                    if ($rt_s(2057) !== var$5) {
                        if ($rt_s(2057) !== var$5) {
                            if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2057).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break f;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2057) !== null) {
                g: {
                    if (!$rt_s(2057).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2057).$nativeString.length)
                                break g;
                            $rt_s(2057).$hashCode1 = (31 * $rt_s(2057).$hashCode1 | 0) + $rt_s(2057).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2057).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        h: {
                            var$5 = var$2.$key;
                            if ($rt_s(2057) !== var$5) {
                                if ($rt_s(2057) !== var$5) {
                                    if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2057).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break h;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$2 = var$2 === null ? null : var$2.$value0;
        } else {
            var$2 = new nms_NBTTagList;
            if ($rt_s(2057) !== null)
                var$2.$name = $rt_s(2057);
            else
                var$2.$name = $rt_s(3);
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            var$2.$tagList = var$7;
        }
        var$3 = 0;
        while (true) {
            var$7 = var$2.$tagList;
            var$6 = $rt_compare(var$3, var$7.$size0);
            if (var$6 >= 0) {
                i: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2058).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2058).$nativeString.length)
                                break i;
                            $rt_s(2058).$hashCode1 = (31 * $rt_s(2058).$hashCode1 | 0) + $rt_s(2058).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2058).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        j: {
                            var$5 = var$2.$key;
                            if ($rt_s(2058) !== var$5) {
                                if ($rt_s(2058) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2058).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break j;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (var$2 === null ? 0 : 1) {
                    k: {
                        var$2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(2058).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(2058).$nativeString.length)
                                    break k;
                                $rt_s(2058).$hashCode1 = (31 * $rt_s(2058).$hashCode1 | 0) + $rt_s(2058).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2058).$hashCode1;
                    var$4 = var$2.$elementData.data;
                    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$8) {
                            l: {
                                var$5 = var$2.$key;
                                if ($rt_s(2058) !== var$5) {
                                    if ($rt_s(2058) === var$5)
                                        var$3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2058).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break l;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                    if (!(var$2 === null ? 0 : 1)) {
                        var$2 = new nms_NBTTagCompound;
                        if ($rt_s(2058) !== null)
                            var$2.$name = $rt_s(2058);
                        else
                            var$2.$name = $rt_s(3);
                        var$7 = new ju_HashMap;
                        var$3 = ju_HashMap_calculateCapacity(16);
                        var$7.$elementCount = 0;
                        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                        var$4 = var$9.data;
                        var$7.$elementData = var$9;
                        var$7.$loadFactor = 0.75;
                        var$7.$threshold = var$4.length * 0.75 | 0;
                        var$2.$tagMap = var$7;
                    } else {
                        var$2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(2058) === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(2058).$hashCode1) {
                                    var$3 = 0;
                                    while (true) {
                                        if (var$3 >= $rt_s(2058).$nativeString.length)
                                            break m;
                                        $rt_s(2058).$hashCode1 = (31 * $rt_s(2058).$hashCode1 | 0) + $rt_s(2058).$nativeString.charCodeAt(var$3) | 0;
                                        var$3 = var$3 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $rt_s(2058).$hashCode1;
                            var$4 = var$2.$elementData.data;
                            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                            while (var$2 !== null) {
                                if (var$2.$origKeyHash == var$8) {
                                    n: {
                                        var$5 = var$2.$key;
                                        if ($rt_s(2058) !== var$5) {
                                            if ($rt_s(2058) === var$5)
                                                var$3 = 1;
                                            else if (!(var$5 instanceof jl_String))
                                                var$3 = 0;
                                            else {
                                                var$5 = var$5;
                                                var$3 = $rt_s(2058).$nativeString !== var$5.$nativeString ? 0 : 1;
                                            }
                                            if (!var$3) {
                                                var$3 = 0;
                                                break n;
                                            }
                                        }
                                        var$3 = 1;
                                    }
                                    if (var$3)
                                        break;
                                }
                                var$2 = var$2.$next3;
                            }
                        }
                        var$2 = var$2 === null ? null : var$2.$value0;
                    }
                    $ptr = 2;
                    continue main;
                }
                o: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2059).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2059).$nativeString.length)
                                break o;
                            $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2059).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        p: {
                            var$5 = var$2.$key;
                            if ($rt_s(2059) !== var$5) {
                                if ($rt_s(2059) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2059).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break p;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1))
                    return;
                q: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2059).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2059).$nativeString.length)
                                break q;
                            $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2059).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        r: {
                            var$5 = var$2.$key;
                            if ($rt_s(2059) !== var$5) {
                                if ($rt_s(2059) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2059).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break r;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1)) {
                    $par1NBTTagCompound = new nms_NBTTagList;
                    if ($rt_s(2059) !== null)
                        $par1NBTTagCompound.$name = $rt_s(2059);
                    else
                        $par1NBTTagCompound.$name = $rt_s(3);
                    var$7 = new ju_ArrayList;
                    var$7.$array = $rt_createArray(jl_Object, 10);
                    $par1NBTTagCompound.$tagList = var$7;
                } else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2059) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        s: {
                            if (!$rt_s(2059).$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $rt_s(2059).$nativeString.length)
                                        break s;
                                    $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(2059).$hashCode1;
                        var$4 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == var$8) {
                                t: {
                                    var$2 = $par1NBTTagCompound.$key;
                                    if ($rt_s(2059) !== var$2) {
                                        if ($rt_s(2059) === var$2)
                                            var$3 = 1;
                                        else if (!(var$2 instanceof jl_String))
                                            var$3 = 0;
                                        else {
                                            var$2 = var$2;
                                            var$3 = $rt_s(2059).$nativeString !== var$2.$nativeString ? 0 : 1;
                                        }
                                        if (!var$3) {
                                            var$3 = 0;
                                            break t;
                                        }
                                    }
                                    var$3 = 1;
                                }
                                if (var$3)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
                }
                $ptr = 3;
                continue main;
            }
            if (var$3 < 0)
                break;
            if (var$6 >= 0)
                break;
            u: {
                var$5 = var$7.$array.data[var$3];
                var$10 = $this.$theScoreboard;
                var$11 = var$5.$tagMap;
                if (!$rt_s(2060).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(2060).$nativeString.length)
                            break u;
                        $rt_s(2060).$hashCode1 = (31 * $rt_s(2060).$hashCode1 | 0) + $rt_s(2060).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2060).$hashCode1;
            var$4 = var$11.$elementData.data;
            var$11 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$6) {
                    v: {
                        var$12 = var$11.$key;
                        if ($rt_s(2060) !== var$12) {
                            if ($rt_s(2060) !== var$12) {
                                if (var$12 instanceof jl_String) {
                                    var$12 = var$12;
                                    var$8 = $rt_s(2060).$nativeString !== var$12.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                            } else
                                var$8 = 1;
                            if (!var$8) {
                                var$8 = 0;
                                break v;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (var$11 === null ? 0 : 1) {
                var$11 = var$5.$tagMap;
                if ($rt_s(2060) === null) {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    w: {
                        if (!$rt_s(2060).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(2060).$nativeString.length)
                                    break w;
                                $rt_s(2060).$hashCode1 = (31 * $rt_s(2060).$hashCode1 | 0) + $rt_s(2060).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(2060).$hashCode1;
                    var$4 = var$11.$elementData.data;
                    var$11 = var$4[var$6 & (var$4.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$6) {
                            x: {
                                var$12 = var$11.$key;
                                if ($rt_s(2060) !== var$12) {
                                    if ($rt_s(2060) === var$12)
                                        var$8 = 1;
                                    else if (var$12 instanceof jl_String) {
                                        var$12 = var$12;
                                        var$8 = $rt_s(2060).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    } else
                                        var$8 = 0;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break x;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                var$11 = (var$11 === null ? null : var$11.$value0).$data1;
            } else
                var$11 = $rt_s(3);
            var$7 = var$10.$scoreObjectives;
            if (var$11 !== null) {
                y: {
                    if (!var$11.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$11.$nativeString.length)
                                break y;
                            var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                var$6 = var$11.$hashCode1;
                var$4 = var$7.$elementData.data;
                var$7 = var$4[var$6 & (var$4.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$6) {
                        z: {
                            var$10 = var$7.$key;
                            if (var$11 !== var$10) {
                                if (var$11 === var$10)
                                    var$8 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$10 = var$10;
                                    var$8 = var$11.$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break z;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            } else {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            }
            var$7 = var$7 === null ? null : var$7.$value0;
            ba: {
                var$13 = var$7;
                var$7 = $this.$theScoreboard;
                var$11 = var$5.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(919).$nativeString.length)
                            break ba;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$14 = $rt_s(919).$hashCode1;
            var$4 = var$11.$elementData.data;
            var$11 = var$4[var$14 & (var$4.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$14) {
                    bb: {
                        var$12 = var$11.$key;
                        if ($rt_s(919) !== var$12) {
                            if ($rt_s(919) === var$12)
                                var$6 = 1;
                            else if (!(var$12 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$12 = var$12;
                                var$6 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break bb;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (!(var$11 === null ? 0 : 1))
                var$15 = $rt_s(3);
            else {
                var$11 = var$5.$tagMap;
                if ($rt_s(919) !== null) {
                    bc: {
                        if (!$rt_s(919).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(919).$nativeString.length)
                                    break bc;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(919).$hashCode1;
                    var$4 = var$11.$elementData.data;
                    var$15 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$8) {
                            bd: {
                                var$11 = var$15.$key;
                                if ($rt_s(919) !== var$11) {
                                    if ($rt_s(919) !== var$11) {
                                        if (!(var$11 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$11 = var$11;
                                            var$6 = $rt_s(919).$nativeString !== var$11.$nativeString ? 0 : 1;
                                        }
                                    } else
                                        var$6 = 1;
                                    if (!var$6) {
                                        var$6 = 0;
                                        break bd;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                } else {
                    var$15 = var$11.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                }
                var$15 = (var$15 === null ? null : var$15.$value0).$data1;
            }
            var$10 = var$7.$field_96544_c;
            if (var$15 === null) {
                var$10 = var$10.$elementData.data[0];
                while (var$10 !== null && var$10.$key !== null) {
                    var$10 = var$10.$next3;
                }
            } else {
                be: {
                    if (!var$15.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$15.$nativeString.length)
                                break be;
                            var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                var$14 = var$15.$hashCode1;
                var$4 = var$10.$elementData.data;
                var$10 = var$4[var$14 & (var$4.length - 1 | 0)];
                while (var$10 !== null) {
                    if (var$10.$origKeyHash == var$14) {
                        bf: {
                            var$11 = var$10.$key;
                            if (var$15 !== var$11) {
                                if (var$15 === var$11)
                                    var$6 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    var$11 = var$11;
                                    var$6 = var$15.$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break bf;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    var$10 = var$10.$next3;
                }
            }
            var$10 = var$10 === null ? null : var$10.$value0;
            if (var$10 === null) {
                var$10 = new ju_HashMap;
                var$6 = ju_HashMap_calculateCapacity(16);
                var$10.$elementCount = 0;
                var$9 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$4 = var$9.data;
                var$10.$elementData = var$9;
                var$10.$loadFactor = 0.75;
                var$10.$threshold = var$4.length * 0.75 | 0;
                ju_HashMap_putImpl(var$7.$field_96544_c, var$15, var$10);
            }
            if (var$13 === null) {
                var$11 = var$10.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                var$11 = var$13;
                if (!var$11.$id$)
                    var$11.$id$ = $rt_nextId();
                var$14 = var$13.$id$;
                var$4 = var$10.$elementData.data;
                var$11 = var$4[var$14 & (var$4.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$14) {
                        var$12 = var$11.$key;
                        if (var$13 !== var$12 && !(var$13 !== var$12 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            if (var$11 === null) {
                var$11 = new nms_Score;
                var$11.$theScoreboard0 = var$7;
                var$11.$theScoreObjective = var$13;
                var$11.$field_96654_d = var$15;
                ju_HashMap_putImpl(var$10, var$13, var$11);
            }
            bg: {
                var$10 = var$5.$tagMap;
                if (!$rt_s(2015).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(2015).$nativeString.length)
                            break bg;
                        $rt_s(2015).$hashCode1 = (31 * $rt_s(2015).$hashCode1 | 0) + $rt_s(2015).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$14 = $rt_s(2015).$hashCode1;
            var$4 = var$10.$elementData.data;
            var$10 = var$4[var$14 & (var$4.length - 1 | 0)];
            while (var$10 !== null) {
                if (var$10.$origKeyHash == var$14) {
                    bh: {
                        var$12 = var$10.$key;
                        if ($rt_s(2015) !== var$12) {
                            if ($rt_s(2015) === var$12)
                                var$6 = 1;
                            else if (!(var$12 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$12 = var$12;
                                var$6 = $rt_s(2015).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break bh;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$10 = var$10.$next3;
            }
            if (!(var$10 === null ? 0 : 1))
                var$8 = 0;
            else {
                var$5 = var$5.$tagMap;
                if ($rt_s(2015) === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    bi: {
                        if (!$rt_s(2015).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(2015).$nativeString.length)
                                    break bi;
                                $rt_s(2015).$hashCode1 = (31 * $rt_s(2015).$hashCode1 | 0) + $rt_s(2015).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $rt_s(2015).$hashCode1;
                    var$4 = var$5.$elementData.data;
                    var$5 = var$4[var$14 & (var$4.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$14) {
                            bj: {
                                var$10 = var$5.$key;
                                if ($rt_s(2015) !== var$10) {
                                    if ($rt_s(2015) === var$10)
                                        var$6 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$10 = var$10;
                                        var$6 = $rt_s(2015).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break bj;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$8 = (var$5 === null ? null : var$5.$value0).$data;
            }
            var$6 = var$11.$field_96655_e;
            var$11.$field_96655_e = var$8;
            if (var$6 != var$8) {
                var$7 = var$11.$theScoreboard0;
                $ptr = 4;
                continue main;
            }
            var$3 = var$3 + 1 | 0;
        }
        $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
        $par1NBTTagCompound.$suppressionEnabled = 1;
        $par1NBTTagCompound.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1NBTTagCompound);
        $rt_throw($par1NBTTagCompound);
    case 2:
        nms_ScoreboardSaveData_func_96504_c($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        e: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2059).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2059).$nativeString.length)
                        break e;
                    $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2059).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                f: {
                    var$5 = var$2.$key;
                    if ($rt_s(2059) !== var$5) {
                        if ($rt_s(2059) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2059).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break f;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            return;
        bk: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2059).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2059).$nativeString.length)
                        break bk;
                    $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2059).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                bl: {
                    var$5 = var$2.$key;
                    if ($rt_s(2059) !== var$5) {
                        if ($rt_s(2059) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2059).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bl;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            $par1NBTTagCompound = new nms_NBTTagList;
            if ($rt_s(2059) !== null)
                $par1NBTTagCompound.$name = $rt_s(2059);
            else
                $par1NBTTagCompound.$name = $rt_s(3);
            var$7 = new ju_ArrayList;
            var$7.$array = $rt_createArray(jl_Object, 10);
            $par1NBTTagCompound.$tagList = var$7;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2059) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                bm: {
                    if (!$rt_s(2059).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2059).$nativeString.length)
                                break bm;
                            $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2059).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$8) {
                        bn: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2059) !== var$2) {
                                if ($rt_s(2059) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2059).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bn;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        $ptr = 3;
    case 3:
        nms_ScoreboardSaveData_func_96498_a($this, $par1NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        var$7.$func_96536_a(var$11);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            var$3 = var$3 + 1 | 0;
            var$7 = var$2.$tagList;
            var$6 = $rt_compare(var$3, var$7.$size0);
            if (var$6 >= 0) {
                bo: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2058).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2058).$nativeString.length)
                                break bo;
                            $rt_s(2058).$hashCode1 = (31 * $rt_s(2058).$hashCode1 | 0) + $rt_s(2058).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2058).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        bp: {
                            var$5 = var$2.$key;
                            if ($rt_s(2058) !== var$5) {
                                if ($rt_s(2058) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2058).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bp;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (var$2 === null ? 0 : 1) {
                    bq: {
                        var$2 = $par1NBTTagCompound.$tagMap;
                        if (!$rt_s(2058).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(2058).$nativeString.length)
                                    break bq;
                                $rt_s(2058).$hashCode1 = (31 * $rt_s(2058).$hashCode1 | 0) + $rt_s(2058).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2058).$hashCode1;
                    var$4 = var$2.$elementData.data;
                    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$8) {
                            br: {
                                var$5 = var$2.$key;
                                if ($rt_s(2058) !== var$5) {
                                    if ($rt_s(2058) === var$5)
                                        var$3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2058).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break br;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                    if (!(var$2 === null ? 0 : 1)) {
                        var$2 = new nms_NBTTagCompound;
                        if ($rt_s(2058) !== null)
                            var$2.$name = $rt_s(2058);
                        else
                            var$2.$name = $rt_s(3);
                        var$7 = new ju_HashMap;
                        var$3 = ju_HashMap_calculateCapacity(16);
                        var$7.$elementCount = 0;
                        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                        var$4 = var$9.data;
                        var$7.$elementData = var$9;
                        var$7.$loadFactor = 0.75;
                        var$7.$threshold = var$4.length * 0.75 | 0;
                        var$2.$tagMap = var$7;
                    } else {
                        var$2 = $par1NBTTagCompound.$tagMap;
                        if ($rt_s(2058) === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            bs: {
                                if (!$rt_s(2058).$hashCode1) {
                                    var$3 = 0;
                                    while (true) {
                                        if (var$3 >= $rt_s(2058).$nativeString.length)
                                            break bs;
                                        $rt_s(2058).$hashCode1 = (31 * $rt_s(2058).$hashCode1 | 0) + $rt_s(2058).$nativeString.charCodeAt(var$3) | 0;
                                        var$3 = var$3 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = $rt_s(2058).$hashCode1;
                            var$4 = var$2.$elementData.data;
                            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                            while (var$2 !== null) {
                                if (var$2.$origKeyHash == var$8) {
                                    bt: {
                                        var$5 = var$2.$key;
                                        if ($rt_s(2058) !== var$5) {
                                            if ($rt_s(2058) === var$5)
                                                var$3 = 1;
                                            else if (!(var$5 instanceof jl_String))
                                                var$3 = 0;
                                            else {
                                                var$5 = var$5;
                                                var$3 = $rt_s(2058).$nativeString !== var$5.$nativeString ? 0 : 1;
                                            }
                                            if (!var$3) {
                                                var$3 = 0;
                                                break bt;
                                            }
                                        }
                                        var$3 = 1;
                                    }
                                    if (var$3)
                                        break;
                                }
                                var$2 = var$2.$next3;
                            }
                        }
                        var$2 = var$2 === null ? null : var$2.$value0;
                    }
                    $ptr = 2;
                    continue main;
                }
                l: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2059).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2059).$nativeString.length)
                                break l;
                            $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2059).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        bu: {
                            var$5 = var$2.$key;
                            if ($rt_s(2059) !== var$5) {
                                if ($rt_s(2059) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2059).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bu;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1))
                    return;
                bv: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2059).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2059).$nativeString.length)
                                break bv;
                            $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2059).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        bw: {
                            var$5 = var$2.$key;
                            if ($rt_s(2059) !== var$5) {
                                if ($rt_s(2059) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2059).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bw;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1)) {
                    $par1NBTTagCompound = new nms_NBTTagList;
                    if ($rt_s(2059) !== null)
                        $par1NBTTagCompound.$name = $rt_s(2059);
                    else
                        $par1NBTTagCompound.$name = $rt_s(3);
                    var$7 = new ju_ArrayList;
                    var$7.$array = $rt_createArray(jl_Object, 10);
                    $par1NBTTagCompound.$tagList = var$7;
                } else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2059) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        bx: {
                            if (!$rt_s(2059).$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $rt_s(2059).$nativeString.length)
                                        break bx;
                                    $rt_s(2059).$hashCode1 = (31 * $rt_s(2059).$hashCode1 | 0) + $rt_s(2059).$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(2059).$hashCode1;
                        var$4 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == var$8) {
                                by: {
                                    var$2 = $par1NBTTagCompound.$key;
                                    if ($rt_s(2059) !== var$2) {
                                        if ($rt_s(2059) === var$2)
                                            var$3 = 1;
                                        else if (!(var$2 instanceof jl_String))
                                            var$3 = 0;
                                        else {
                                            var$2 = var$2;
                                            var$3 = $rt_s(2059).$nativeString !== var$2.$nativeString ? 0 : 1;
                                        }
                                        if (!var$3) {
                                            var$3 = 0;
                                            break by;
                                        }
                                    }
                                    var$3 = 1;
                                }
                                if (var$3)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
                }
                $ptr = 3;
                continue main;
            }
            if (var$3 < 0)
                break;
            if (var$6 >= 0)
                break;
            f: {
                var$5 = var$7.$array.data[var$3];
                var$10 = $this.$theScoreboard;
                var$11 = var$5.$tagMap;
                if (!$rt_s(2060).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(2060).$nativeString.length)
                            break f;
                        $rt_s(2060).$hashCode1 = (31 * $rt_s(2060).$hashCode1 | 0) + $rt_s(2060).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2060).$hashCode1;
            var$4 = var$11.$elementData.data;
            var$11 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$6) {
                    bz: {
                        var$12 = var$11.$key;
                        if ($rt_s(2060) !== var$12) {
                            if ($rt_s(2060) === var$12)
                                var$8 = 1;
                            else if (!(var$12 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$12 = var$12;
                                var$8 = $rt_s(2060).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break bz;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (var$11 === null ? 0 : 1) {
                var$11 = var$5.$tagMap;
                if ($rt_s(2060) !== null) {
                    c: {
                        if (!$rt_s(2060).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(2060).$nativeString.length)
                                    break c;
                                $rt_s(2060).$hashCode1 = (31 * $rt_s(2060).$hashCode1 | 0) + $rt_s(2060).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(2060).$hashCode1;
                    var$4 = var$11.$elementData.data;
                    var$11 = var$4[var$6 & (var$4.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$6) {
                            d: {
                                var$12 = var$11.$key;
                                if ($rt_s(2060) !== var$12) {
                                    if ($rt_s(2060) !== var$12) {
                                        if (var$12 instanceof jl_String) {
                                            var$12 = var$12;
                                            var$8 = $rt_s(2060).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        } else
                                            var$8 = 0;
                                    } else
                                        var$8 = 1;
                                    if (!var$8) {
                                        var$8 = 0;
                                        break d;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                } else {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                }
                var$11 = (var$11 === null ? null : var$11.$value0).$data1;
            } else
                var$11 = $rt_s(3);
            var$7 = var$10.$scoreObjectives;
            if (var$11 === null) {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                bA: {
                    if (!var$11.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$11.$nativeString.length)
                                break bA;
                            var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                var$6 = var$11.$hashCode1;
                var$4 = var$7.$elementData.data;
                var$7 = var$4[var$6 & (var$4.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$6) {
                        bB: {
                            var$10 = var$7.$key;
                            if (var$11 !== var$10) {
                                if (var$11 === var$10)
                                    var$8 = 1;
                                else if (!(var$10 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$10 = var$10;
                                    var$8 = var$11.$nativeString !== var$10.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break bB;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$7 = var$7 === null ? null : var$7.$value0;
            bC: {
                var$13 = var$7;
                var$7 = $this.$theScoreboard;
                var$11 = var$5.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(919).$nativeString.length)
                            break bC;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$14 = $rt_s(919).$hashCode1;
            var$4 = var$11.$elementData.data;
            var$11 = var$4[var$14 & (var$4.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$14) {
                    bD: {
                        var$12 = var$11.$key;
                        if ($rt_s(919) !== var$12) {
                            if ($rt_s(919) !== var$12) {
                                if (var$12 instanceof jl_String) {
                                    var$12 = var$12;
                                    var$6 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                                } else
                                    var$6 = 0;
                            } else
                                var$6 = 1;
                            if (!var$6) {
                                var$6 = 0;
                                break bD;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (var$11 === null ? 0 : 1) {
                var$11 = var$5.$tagMap;
                if ($rt_s(919) !== null) {
                    y: {
                        if (!$rt_s(919).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(919).$nativeString.length)
                                    break y;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(919).$hashCode1;
                    var$4 = var$11.$elementData.data;
                    var$15 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$8) {
                            z: {
                                var$11 = var$15.$key;
                                if ($rt_s(919) !== var$11) {
                                    if ($rt_s(919) === var$11)
                                        var$6 = 1;
                                    else if (!(var$11 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$11 = var$11;
                                        var$6 = $rt_s(919).$nativeString !== var$11.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break z;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                } else {
                    var$15 = var$11.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                }
                var$15 = (var$15 === null ? null : var$15.$value0).$data1;
            } else
                var$15 = $rt_s(3);
            var$10 = var$7.$field_96544_c;
            if (var$15 === null) {
                var$10 = var$10.$elementData.data[0];
                while (var$10 !== null && var$10.$key !== null) {
                    var$10 = var$10.$next3;
                }
            } else {
                bE: {
                    if (!var$15.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$15.$nativeString.length)
                                break bE;
                            var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                var$14 = var$15.$hashCode1;
                var$4 = var$10.$elementData.data;
                var$10 = var$4[var$14 & (var$4.length - 1 | 0)];
                while (var$10 !== null) {
                    if (var$10.$origKeyHash == var$14) {
                        bF: {
                            var$11 = var$10.$key;
                            if (var$15 !== var$11) {
                                if (var$15 === var$11)
                                    var$6 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    var$11 = var$11;
                                    var$6 = var$15.$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break bF;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    var$10 = var$10.$next3;
                }
            }
            var$10 = var$10 === null ? null : var$10.$value0;
            if (var$10 === null) {
                var$10 = new ju_HashMap;
                var$6 = ju_HashMap_calculateCapacity(16);
                var$10.$elementCount = 0;
                var$9 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$4 = var$9.data;
                var$10.$elementData = var$9;
                var$10.$loadFactor = 0.75;
                var$10.$threshold = var$4.length * 0.75 | 0;
                ju_HashMap_putImpl(var$7.$field_96544_c, var$15, var$10);
            }
            if (var$13 === null) {
                var$11 = var$10.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                var$11 = var$13;
                if (!var$11.$id$)
                    var$11.$id$ = $rt_nextId();
                var$14 = var$13.$id$;
                var$4 = var$10.$elementData.data;
                var$11 = var$4[var$14 & (var$4.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$14) {
                        var$12 = var$11.$key;
                        if (var$13 !== var$12 && !(var$13 !== var$12 ? 0 : 1) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            if (var$11 === null) {
                var$11 = new nms_Score;
                var$11.$theScoreboard0 = var$7;
                var$11.$theScoreObjective = var$13;
                var$11.$field_96654_d = var$15;
                ju_HashMap_putImpl(var$10, var$13, var$11);
            }
            be: {
                var$10 = var$5.$tagMap;
                if (!$rt_s(2015).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(2015).$nativeString.length)
                            break be;
                        $rt_s(2015).$hashCode1 = (31 * $rt_s(2015).$hashCode1 | 0) + $rt_s(2015).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$14 = $rt_s(2015).$hashCode1;
            var$4 = var$10.$elementData.data;
            var$10 = var$4[var$14 & (var$4.length - 1 | 0)];
            while (var$10 !== null) {
                if (var$10.$origKeyHash == var$14) {
                    bf: {
                        var$12 = var$10.$key;
                        if ($rt_s(2015) !== var$12) {
                            if ($rt_s(2015) === var$12)
                                var$6 = 1;
                            else if (!(var$12 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$12 = var$12;
                                var$6 = $rt_s(2015).$nativeString !== var$12.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break bf;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$10 = var$10.$next3;
            }
            if (!(var$10 === null ? 0 : 1))
                var$8 = 0;
            else {
                var$5 = var$5.$tagMap;
                if ($rt_s(2015) === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    bG: {
                        if (!$rt_s(2015).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(2015).$nativeString.length)
                                    break bG;
                                $rt_s(2015).$hashCode1 = (31 * $rt_s(2015).$hashCode1 | 0) + $rt_s(2015).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $rt_s(2015).$hashCode1;
                    var$4 = var$5.$elementData.data;
                    var$5 = var$4[var$14 & (var$4.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$14) {
                            bH: {
                                var$10 = var$5.$key;
                                if ($rt_s(2015) !== var$10) {
                                    if ($rt_s(2015) === var$10)
                                        var$6 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$10 = var$10;
                                        var$6 = $rt_s(2015).$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break bH;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$8 = (var$5 === null ? null : var$5.$value0).$data;
            }
            var$6 = var$11.$field_96655_e;
            var$11.$field_96655_e = var$8;
            if (var$6 == var$8)
                continue;
            else {
                var$7 = var$11.$theScoreboard0;
                continue main;
            }
        }
        $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
        $par1NBTTagCompound.$suppressionEnabled = 1;
        $par1NBTTagCompound.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1NBTTagCompound);
        $rt_throw($par1NBTTagCompound);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_ScoreboardSaveData_func_96498_a = ($this, $par1NBTTagList) => {
    let $var2, var$3, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1NBTTagList = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 0;
        var$3 = $par1NBTTagList.$tagList;
        var$4 = $rt_compare($var2, var$3.$size0);
        if (var$4 >= 0)
            return;
        if ($var2 >= 0 && var$4 < 0) {
            a: {
                $var3 = var$3.$array.data[$var2];
                var$3 = $this.$theScoreboard;
                $var4 = $var3.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(919).$nativeString.length)
                            break a;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(919).$hashCode1;
            var$8 = $var4.$elementData.data;
            $var4 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$7) {
                    b: {
                        var$9 = $var4.$key;
                        if ($rt_s(919) !== var$9) {
                            if ($rt_s(919) === var$9)
                                var$4 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$9 = var$9;
                                var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break b;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var4 = $var4.$next3;
            }
            if (!($var4 === null ? 0 : 1))
                var$9 = $rt_s(3);
            else {
                $var4 = $var3.$tagMap;
                if ($rt_s(919) === null) {
                    $var4 = $var4.$elementData.data[0];
                    while ($var4 !== null && $var4.$key !== null) {
                        $var4 = $var4.$next3;
                    }
                } else {
                    c: {
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break c;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(919).$hashCode1;
                    var$8 = $var4.$elementData.data;
                    $var4 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == var$10) {
                            d: {
                                var$9 = $var4.$key;
                                if ($rt_s(919) !== var$9) {
                                    if ($rt_s(919) === var$9)
                                        var$4 = 1;
                                    else if (!(var$9 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$9 = var$9;
                                        var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break d;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                }
                var$9 = ($var4 === null ? null : $var4.$value0).$data1;
            }
            var$11 = var$3.$field_96542_e;
            if (var$9 === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                e: {
                    if (!var$9.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= var$9.$nativeString.length)
                                break e;
                            var$9.$hashCode1 = (31 * var$9.$hashCode1 | 0) + var$9.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = var$9.$hashCode1;
                var$8 = var$11.$elementData.data;
                var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$10) {
                        f: {
                            $var4 = var$11.$key;
                            if (var$9 !== $var4) {
                                if (var$9 === $var4)
                                    var$4 = 1;
                                else if (!($var4 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var4 = $var4;
                                    var$4 = var$9.$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break f;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            if (var$11 !== null) {
                $par1NBTTagList = new jl_IllegalArgumentException;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2052));
                $var2 = var$3.$length0;
                if (var$9 === null)
                    var$9 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$3, $var2, var$9);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2053));
                var$11 = new jl_String;
                var$8 = var$3.$buffer;
                var$12 = var$8.data;
                var$4 = var$3.$length0;
                var$7 = var$12.length;
                if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
                    var$11.$nativeString = $rt_charArrayToString(var$8.data, 0, var$4);
                    $par1NBTTagList.$suppressionEnabled = 1;
                    $par1NBTTagList.$writableStackTrace = 1;
                    $par1NBTTagList.$message = var$11;
                    $rt_throw($par1NBTTagList);
                }
                $par1NBTTagList = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1NBTTagList);
                $rt_throw($par1NBTTagList);
            }
            $var4 = new nms_ScorePlayerTeam;
            var$11 = new ju_HashSet;
            var$13 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            var$13.$elementCount = 0;
            var$12 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$8 = var$12.data;
            var$13.$elementData = var$12;
            var$13.$loadFactor = 0.75;
            var$13.$threshold = var$8.length * 0.75 | 0;
            var$11.$backingMap = var$13;
            $var4.$membershipSet = var$11;
            $var4.$field_96674_e = $rt_s(3);
            $var4.$colorSuffix = $rt_s(3);
            $var4.$allowFriendlyFire = 1;
            $var4.$field_98301_h = 1;
            $var4.$theScoreboard1 = var$3;
            $var4.$field_96675_b = var$9;
            $var4.$field_96673_d = var$9;
            ju_HashMap_putImpl(var$3.$field_96542_e, var$9, $var4);
            $ptr = 1;
            continue main;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    case 1:
        g: {
            var$3.$func_96523_a($var4);
            if ($rt_suspending()) {
                break main;
            }
            var$3 = $var3.$tagMap;
            if (!$rt_s(2061).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2061).$nativeString.length)
                        break g;
                    $rt_s(2061).$hashCode1 = (31 * $rt_s(2061).$hashCode1 | 0) + $rt_s(2061).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2061).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                h: {
                    var$11 = var$3.$key;
                    if ($rt_s(2061) !== var$11) {
                        if ($rt_s(2061) === var$11)
                            var$4 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$11 = var$11;
                            var$4 = $rt_s(2061).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break h;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1))
            var$3 = $rt_s(3);
        else {
            var$3 = $var3.$tagMap;
            if ($rt_s(2061) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2061).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2061).$nativeString.length)
                                break i;
                            $rt_s(2061).$hashCode1 = (31 * $rt_s(2061).$hashCode1 | 0) + $rt_s(2061).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2061).$hashCode1;
                var$8 = var$3.$elementData.data;
                var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$10) {
                        j: {
                            var$11 = var$3.$key;
                            if ($rt_s(2061) !== var$11) {
                                if ($rt_s(2061) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2061).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break j;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = (var$3 === null ? null : var$3.$value0).$data1;
        }
        if (var$3 === null) {
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(2062);
            $rt_throw(var$3);
        }
        $var4.$field_96673_d = var$3;
        var$3 = $var4.$theScoreboard1;
        $ptr = 2;
    case 2:
        g: {
            var$3.$func_96538_b($var4);
            if ($rt_suspending()) {
                break main;
            }
            var$3 = $var3.$tagMap;
            if (!$rt_s(2063).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2063).$nativeString.length)
                        break g;
                    $rt_s(2063).$hashCode1 = (31 * $rt_s(2063).$hashCode1 | 0) + $rt_s(2063).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2063).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                h: {
                    var$11 = var$3.$key;
                    if ($rt_s(2063) !== var$11) {
                        if ($rt_s(2063) === var$11)
                            var$4 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$11 = var$11;
                            var$4 = $rt_s(2063).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break h;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1))
            var$3 = $rt_s(3);
        else {
            var$3 = $var3.$tagMap;
            if ($rt_s(2063) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2063).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2063).$nativeString.length)
                                break i;
                            $rt_s(2063).$hashCode1 = (31 * $rt_s(2063).$hashCode1 | 0) + $rt_s(2063).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2063).$hashCode1;
                var$8 = var$3.$elementData.data;
                var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$10) {
                        j: {
                            var$11 = var$3.$key;
                            if ($rt_s(2063) !== var$11) {
                                if ($rt_s(2063) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2063).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break j;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = (var$3 === null ? null : var$3.$value0).$data1;
        }
        if (var$3 === null) {
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(1125);
            $rt_throw(var$3);
        }
        $var4.$field_96674_e = var$3;
        var$3 = $var4.$theScoreboard1;
        $ptr = 3;
    case 3:
        g: {
            var$3.$func_96538_b($var4);
            if ($rt_suspending()) {
                break main;
            }
            var$3 = $var3.$tagMap;
            if (!$rt_s(2064).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2064).$nativeString.length)
                        break g;
                    $rt_s(2064).$hashCode1 = (31 * $rt_s(2064).$hashCode1 | 0) + $rt_s(2064).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2064).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                h: {
                    var$11 = var$3.$key;
                    if ($rt_s(2064) !== var$11) {
                        if ($rt_s(2064) === var$11)
                            var$4 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$11 = var$11;
                            var$4 = $rt_s(2064).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break h;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1))
            var$3 = $rt_s(3);
        else {
            var$3 = $var3.$tagMap;
            if ($rt_s(2064) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2064).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2064).$nativeString.length)
                                break i;
                            $rt_s(2064).$hashCode1 = (31 * $rt_s(2064).$hashCode1 | 0) + $rt_s(2064).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2064).$hashCode1;
                var$8 = var$3.$elementData.data;
                var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$10) {
                        j: {
                            var$11 = var$3.$key;
                            if ($rt_s(2064) !== var$11) {
                                if ($rt_s(2064) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2064).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break j;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = (var$3 === null ? null : var$3.$value0).$data1;
        }
        if (var$3 === null) {
            var$3 = new jl_IllegalArgumentException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(1126);
            $rt_throw(var$3);
        }
        $var4.$colorSuffix = var$3;
        var$3 = $var4.$theScoreboard1;
        $ptr = 4;
    case 4:
        g: {
            var$3.$func_96538_b($var4);
            if ($rt_suspending()) {
                break main;
            }
            var$3 = $var3.$tagMap;
            if (!$rt_s(2065).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2065).$nativeString.length)
                        break g;
                    $rt_s(2065).$hashCode1 = (31 * $rt_s(2065).$hashCode1 | 0) + $rt_s(2065).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2065).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                h: {
                    var$11 = var$3.$key;
                    if ($rt_s(2065) !== var$11) {
                        if ($rt_s(2065) === var$11)
                            var$4 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$11 = var$11;
                            var$4 = $rt_s(2065).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break h;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1)) {
            k: {
                var$3 = $var3.$tagMap;
                if (!$rt_s(2066).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2066).$nativeString.length)
                            break k;
                        $rt_s(2066).$hashCode1 = (31 * $rt_s(2066).$hashCode1 | 0) + $rt_s(2066).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(2066).$hashCode1;
            var$8 = var$3.$elementData.data;
            var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$10) {
                    l: {
                        var$11 = var$3.$key;
                        if ($rt_s(2066) !== var$11) {
                            if ($rt_s(2066) === var$11)
                                var$4 = 1;
                            else if (var$11 instanceof jl_String) {
                                var$11 = var$11;
                                var$4 = $rt_s(2066).$nativeString !== var$11.$nativeString ? 0 : 1;
                            } else
                                var$4 = 0;
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1)) {
                m: {
                    var$3 = $var3.$tagMap;
                    if (!$rt_s(2067).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2067).$nativeString.length)
                                break m;
                            $rt_s(2067).$hashCode1 = (31 * $rt_s(2067).$hashCode1 | 0) + $rt_s(2067).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2067).$hashCode1;
                var$8 = var$3.$elementData.data;
                var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$10) {
                        n: {
                            var$11 = var$3.$key;
                            if ($rt_s(2067) !== var$11) {
                                if ($rt_s(2067) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2067).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break n;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
                if (!(var$3 === null ? 0 : 1)) {
                    var$9 = new nms_NBTTagList;
                    if ($rt_s(2067) !== null)
                        var$9.$name = $rt_s(2067);
                    else
                        var$9.$name = $rt_s(3);
                    var$3 = new ju_ArrayList;
                    var$3.$array = $rt_createArray(jl_Object, 10);
                    var$9.$tagList = var$3;
                } else {
                    var$3 = $var3.$tagMap;
                    if ($rt_s(2067) === null) {
                        var$11 = var$3.$elementData.data[0];
                        while (var$11 !== null && var$11.$key !== null) {
                            var$11 = var$11.$next3;
                        }
                    } else {
                        o: {
                            if (!$rt_s(2067).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(2067).$nativeString.length)
                                        break o;
                                    $rt_s(2067).$hashCode1 = (31 * $rt_s(2067).$hashCode1 | 0) + $rt_s(2067).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$10 = $rt_s(2067).$hashCode1;
                        var$8 = var$3.$elementData.data;
                        var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while (var$11 !== null) {
                            if (var$11.$origKeyHash == var$10) {
                                p: {
                                    var$3 = var$11.$key;
                                    if ($rt_s(2067) !== var$3) {
                                        if ($rt_s(2067) === var$3)
                                            var$4 = 1;
                                        else if (!(var$3 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$3 = var$3;
                                            var$4 = $rt_s(2067).$nativeString !== var$3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break p;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$11 = var$11.$next3;
                        }
                    }
                    var$9 = var$11 === null ? null : var$11.$value0;
                }
                var$4 = 0;
                var$11 = var$9.$tagList;
                var$7 = $rt_compare(var$4, var$11.$size0);
                if (var$7 < 0) {
                    var$3 = $this.$theScoreboard;
                    if (var$4 >= 0 && var$7 < 0) {
                        var$11 = var$11.$array.data[var$4].$data1;
                        $ptr = 7;
                        continue main;
                    }
                    $par1NBTTagList = new jl_IndexOutOfBoundsException;
                    $par1NBTTagList.$suppressionEnabled = 1;
                    $par1NBTTagList.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1NBTTagList);
                    $rt_throw($par1NBTTagList);
                }
                $var2 = $var2 + 1 | 0;
                var$3 = $par1NBTTagList.$tagList;
                var$4 = $rt_compare($var2, var$3.$size0);
                if (var$4 >= 0)
                    return;
                if ($var2 >= 0 && var$4 < 0) {
                    q: {
                        $var3 = var$3.$array.data[$var2];
                        var$3 = $this.$theScoreboard;
                        $var4 = $var3.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break q;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(919).$hashCode1;
                    var$8 = $var4.$elementData.data;
                    $var4 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == var$7) {
                            r: {
                                var$9 = $var4.$key;
                                if ($rt_s(919) !== var$9) {
                                    if ($rt_s(919) === var$9)
                                        var$4 = 1;
                                    else if (!(var$9 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$9 = var$9;
                                        var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break r;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                    if (!($var4 === null ? 0 : 1))
                        var$9 = $rt_s(3);
                    else {
                        $var4 = $var3.$tagMap;
                        if ($rt_s(919) === null) {
                            $var4 = $var4.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            s: {
                                if (!$rt_s(919).$hashCode1) {
                                    var$4 = 0;
                                    while (true) {
                                        if (var$4 >= $rt_s(919).$nativeString.length)
                                            break s;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                        var$4 = var$4 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $rt_s(919).$hashCode1;
                            var$8 = $var4.$elementData.data;
                            $var4 = var$8[var$10 & (var$8.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == var$10) {
                                    t: {
                                        var$9 = $var4.$key;
                                        if ($rt_s(919) !== var$9) {
                                            if ($rt_s(919) === var$9)
                                                var$4 = 1;
                                            else if (!(var$9 instanceof jl_String))
                                                var$4 = 0;
                                            else {
                                                var$9 = var$9;
                                                var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                            }
                                            if (!var$4) {
                                                var$4 = 0;
                                                break t;
                                            }
                                        }
                                        var$4 = 1;
                                    }
                                    if (var$4)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        var$9 = ($var4 === null ? null : $var4.$value0).$data1;
                    }
                    var$11 = var$3.$field_96542_e;
                    if (var$9 === null) {
                        var$11 = var$11.$elementData.data[0];
                        while (var$11 !== null && var$11.$key !== null) {
                            var$11 = var$11.$next3;
                        }
                    } else {
                        u: {
                            if (!var$9.$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= var$9.$nativeString.length)
                                        break u;
                                    var$9.$hashCode1 = (31 * var$9.$hashCode1 | 0) + var$9.$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$10 = var$9.$hashCode1;
                        var$8 = var$11.$elementData.data;
                        var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while (var$11 !== null) {
                            if (var$11.$origKeyHash == var$10) {
                                v: {
                                    $var4 = var$11.$key;
                                    if (var$9 !== $var4) {
                                        if (var$9 === $var4)
                                            var$4 = 1;
                                        else if (!($var4 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var4 = $var4;
                                            var$4 = var$9.$nativeString !== $var4.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break v;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$11 = var$11.$next3;
                        }
                    }
                    var$11 = var$11 === null ? null : var$11.$value0;
                    if (var$11 !== null) {
                        $par1NBTTagList = new jl_IllegalArgumentException;
                        var$3 = new jl_StringBuilder;
                        var$3.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2052));
                        $var2 = var$3.$length0;
                        if (var$9 === null)
                            var$9 = $rt_s(1);
                        jl_AbstractStringBuilder_insert(var$3, $var2, var$9);
                        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2053));
                        var$11 = new jl_String;
                        var$8 = var$3.$buffer;
                        var$12 = var$8.data;
                        var$4 = var$3.$length0;
                        var$7 = var$12.length;
                        if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
                            var$11.$nativeString = $rt_charArrayToString(var$8.data, 0, var$4);
                            $par1NBTTagList.$suppressionEnabled = 1;
                            $par1NBTTagList.$writableStackTrace = 1;
                            $par1NBTTagList.$message = var$11;
                            $rt_throw($par1NBTTagList);
                        }
                        $par1NBTTagList = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1NBTTagList);
                        $rt_throw($par1NBTTagList);
                    }
                    $var4 = new nms_ScorePlayerTeam;
                    var$11 = new ju_HashSet;
                    var$13 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    var$13.$elementCount = 0;
                    var$12 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$8 = var$12.data;
                    var$13.$elementData = var$12;
                    var$13.$loadFactor = 0.75;
                    var$13.$threshold = var$8.length * 0.75 | 0;
                    var$11.$backingMap = var$13;
                    $var4.$membershipSet = var$11;
                    $var4.$field_96674_e = $rt_s(3);
                    $var4.$colorSuffix = $rt_s(3);
                    $var4.$allowFriendlyFire = 1;
                    $var4.$field_98301_h = 1;
                    $var4.$theScoreboard1 = var$3;
                    $var4.$field_96675_b = var$9;
                    $var4.$field_96673_d = var$9;
                    ju_HashMap_putImpl(var$3.$field_96542_e, var$9, $var4);
                    $ptr = 1;
                    continue main;
                }
                $par1NBTTagList = new jl_IndexOutOfBoundsException;
                $par1NBTTagList.$suppressionEnabled = 1;
                $par1NBTTagList.$writableStackTrace = 1;
                $rt_throw($par1NBTTagList);
            }
            w: {
                var$11 = $var3.$tagMap;
                if (!$rt_s(2066).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2066).$nativeString.length)
                            break w;
                        $rt_s(2066).$hashCode1 = (31 * $rt_s(2066).$hashCode1 | 0) + $rt_s(2066).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(2066).$hashCode1;
            var$8 = var$11.$elementData.data;
            var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$10) {
                    x: {
                        var$9 = var$11.$key;
                        if ($rt_s(2066) !== var$9) {
                            if ($rt_s(2066) === var$9)
                                var$4 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$9 = var$9;
                                var$4 = $rt_s(2066).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break x;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$11 = var$11.$next3;
            }
            if (!(var$11 === null ? 0 : 1))
                var$4 = 0;
            else {
                var$11 = $var3.$tagMap;
                if ($rt_s(2066) === null) {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    y: {
                        if (!$rt_s(2066).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2066).$nativeString.length)
                                    break y;
                                $rt_s(2066).$hashCode1 = (31 * $rt_s(2066).$hashCode1 | 0) + $rt_s(2066).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(2066).$hashCode1;
                    var$8 = var$11.$elementData.data;
                    var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$10) {
                            z: {
                                var$9 = var$11.$key;
                                if ($rt_s(2066) !== var$9) {
                                    if ($rt_s(2066) === var$9)
                                        var$4 = 1;
                                    else if (!(var$9 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$9 = var$9;
                                        var$4 = $rt_s(2066).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break z;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                var$4 = (var$11 === null ? null : var$11.$value0).$data0;
            }
            $var4.$field_98301_h = !var$4 ? 0 : 1;
            var$3 = $var4.$theScoreboard1;
            $ptr = 6;
            continue main;
        }
        ba: {
            var$3 = $var3.$tagMap;
            if (!$rt_s(2065).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2065).$nativeString.length)
                        break ba;
                    $rt_s(2065).$hashCode1 = (31 * $rt_s(2065).$hashCode1 | 0) + $rt_s(2065).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2065).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                bb: {
                    var$11 = var$3.$key;
                    if ($rt_s(2065) !== var$11) {
                        if ($rt_s(2065) === var$11)
                            var$4 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$11 = var$11;
                            var$4 = $rt_s(2065).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break bb;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1))
            var$4 = 0;
        else {
            var$3 = $var3.$tagMap;
            if ($rt_s(2065) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                bc: {
                    if (!$rt_s(2065).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2065).$nativeString.length)
                                break bc;
                            $rt_s(2065).$hashCode1 = (31 * $rt_s(2065).$hashCode1 | 0) + $rt_s(2065).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2065).$hashCode1;
                var$8 = var$3.$elementData.data;
                var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$10) {
                        bd: {
                            var$11 = var$3.$key;
                            if ($rt_s(2065) !== var$11) {
                                if ($rt_s(2065) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2065).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break bd;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$4 = (var$3 === null ? null : var$3.$value0).$data0;
        }
        $var4.$allowFriendlyFire = !var$4 ? 0 : 1;
        var$3 = $var4.$theScoreboard1;
        $ptr = 5;
    case 5:
        var$3.$func_96538_b($var4);
        if ($rt_suspending()) {
            break main;
        }
        g: {
            var$3 = $var3.$tagMap;
            if (!$rt_s(2066).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2066).$nativeString.length)
                        break g;
                    $rt_s(2066).$hashCode1 = (31 * $rt_s(2066).$hashCode1 | 0) + $rt_s(2066).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2066).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                h: {
                    var$11 = var$3.$key;
                    if ($rt_s(2066) !== var$11) {
                        if ($rt_s(2066) === var$11)
                            var$4 = 1;
                        else if (var$11 instanceof jl_String) {
                            var$11 = var$11;
                            var$4 = $rt_s(2066).$nativeString !== var$11.$nativeString ? 0 : 1;
                        } else
                            var$4 = 0;
                        if (!var$4) {
                            var$4 = 0;
                            break h;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1)) {
            k: {
                var$3 = $var3.$tagMap;
                if (!$rt_s(2067).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2067).$nativeString.length)
                            break k;
                        $rt_s(2067).$hashCode1 = (31 * $rt_s(2067).$hashCode1 | 0) + $rt_s(2067).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(2067).$hashCode1;
            var$8 = var$3.$elementData.data;
            var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$10) {
                    l: {
                        var$11 = var$3.$key;
                        if ($rt_s(2067) !== var$11) {
                            if ($rt_s(2067) === var$11)
                                var$4 = 1;
                            else if (!(var$11 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$11 = var$11;
                                var$4 = $rt_s(2067).$nativeString !== var$11.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1)) {
                var$9 = new nms_NBTTagList;
                if ($rt_s(2067) !== null)
                    var$9.$name = $rt_s(2067);
                else
                    var$9.$name = $rt_s(3);
                var$3 = new ju_ArrayList;
                var$3.$array = $rt_createArray(jl_Object, 10);
                var$9.$tagList = var$3;
            } else {
                var$3 = $var3.$tagMap;
                if ($rt_s(2067) === null) {
                    var$11 = var$3.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    be: {
                        if (!$rt_s(2067).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2067).$nativeString.length)
                                    break be;
                                $rt_s(2067).$hashCode1 = (31 * $rt_s(2067).$hashCode1 | 0) + $rt_s(2067).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(2067).$hashCode1;
                    var$8 = var$3.$elementData.data;
                    var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$10) {
                            bf: {
                                var$3 = var$11.$key;
                                if ($rt_s(2067) !== var$3) {
                                    if ($rt_s(2067) === var$3)
                                        var$4 = 1;
                                    else if (!(var$3 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$3 = var$3;
                                        var$4 = $rt_s(2067).$nativeString !== var$3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break bf;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                var$9 = var$11 === null ? null : var$11.$value0;
            }
            var$4 = 0;
            var$11 = var$9.$tagList;
            var$7 = $rt_compare(var$4, var$11.$size0);
            if (var$7 < 0) {
                var$3 = $this.$theScoreboard;
                if (var$4 >= 0 && var$7 < 0) {
                    var$11 = var$11.$array.data[var$4].$data1;
                    $ptr = 7;
                    continue main;
                }
                $par1NBTTagList = new jl_IndexOutOfBoundsException;
                $par1NBTTagList.$suppressionEnabled = 1;
                $par1NBTTagList.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1NBTTagList);
                $rt_throw($par1NBTTagList);
            }
            $var2 = $var2 + 1 | 0;
            var$3 = $par1NBTTagList.$tagList;
            var$4 = $rt_compare($var2, var$3.$size0);
            if (var$4 >= 0)
                return;
            if ($var2 >= 0 && var$4 < 0) {
                bg: {
                    $var3 = var$3.$array.data[$var2];
                    var$3 = $this.$theScoreboard;
                    $var4 = $var3.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(919).$nativeString.length)
                                break bg;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(919).$hashCode1;
                var$8 = $var4.$elementData.data;
                $var4 = var$8[var$7 & (var$8.length - 1 | 0)];
                while ($var4 !== null) {
                    if ($var4.$origKeyHash == var$7) {
                        bh: {
                            var$9 = $var4.$key;
                            if ($rt_s(919) !== var$9) {
                                if ($rt_s(919) === var$9)
                                    var$4 = 1;
                                else if (!(var$9 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$9 = var$9;
                                    var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break bh;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var4 = $var4.$next3;
                }
                if (!($var4 === null ? 0 : 1))
                    var$9 = $rt_s(3);
                else {
                    $var4 = $var3.$tagMap;
                    if ($rt_s(919) === null) {
                        $var4 = $var4.$elementData.data[0];
                        while ($var4 !== null && $var4.$key !== null) {
                            $var4 = $var4.$next3;
                        }
                    } else {
                        bi: {
                            if (!$rt_s(919).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(919).$nativeString.length)
                                        break bi;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$10 = $rt_s(919).$hashCode1;
                        var$8 = $var4.$elementData.data;
                        $var4 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == var$10) {
                                bj: {
                                    var$9 = $var4.$key;
                                    if ($rt_s(919) !== var$9) {
                                        if ($rt_s(919) === var$9)
                                            var$4 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break bj;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                    }
                    var$9 = ($var4 === null ? null : $var4.$value0).$data1;
                }
                var$11 = var$3.$field_96542_e;
                if (var$9 === null) {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    bk: {
                        if (!var$9.$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= var$9.$nativeString.length)
                                    break bk;
                                var$9.$hashCode1 = (31 * var$9.$hashCode1 | 0) + var$9.$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$10 = var$9.$hashCode1;
                    var$8 = var$11.$elementData.data;
                    var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$10) {
                            bl: {
                                $var4 = var$11.$key;
                                if (var$9 !== $var4) {
                                    if (var$9 === $var4)
                                        var$4 = 1;
                                    else if (!($var4 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        $var4 = $var4;
                                        var$4 = var$9.$nativeString !== $var4.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break bl;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                var$11 = var$11 === null ? null : var$11.$value0;
                if (var$11 !== null) {
                    $par1NBTTagList = new jl_IllegalArgumentException;
                    var$3 = new jl_StringBuilder;
                    var$3.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2052));
                    $var2 = var$3.$length0;
                    if (var$9 === null)
                        var$9 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$3, $var2, var$9);
                    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2053));
                    var$11 = new jl_String;
                    var$8 = var$3.$buffer;
                    var$12 = var$8.data;
                    var$4 = var$3.$length0;
                    var$7 = var$12.length;
                    if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
                        var$11.$nativeString = $rt_charArrayToString(var$8.data, 0, var$4);
                        $par1NBTTagList.$suppressionEnabled = 1;
                        $par1NBTTagList.$writableStackTrace = 1;
                        $par1NBTTagList.$message = var$11;
                        $rt_throw($par1NBTTagList);
                    }
                    $par1NBTTagList = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($par1NBTTagList);
                    $rt_throw($par1NBTTagList);
                }
                $var4 = new nms_ScorePlayerTeam;
                var$11 = new ju_HashSet;
                var$13 = new ju_HashMap;
                var$4 = ju_HashMap_calculateCapacity(16);
                var$13.$elementCount = 0;
                var$12 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                var$8 = var$12.data;
                var$13.$elementData = var$12;
                var$13.$loadFactor = 0.75;
                var$13.$threshold = var$8.length * 0.75 | 0;
                var$11.$backingMap = var$13;
                $var4.$membershipSet = var$11;
                $var4.$field_96674_e = $rt_s(3);
                $var4.$colorSuffix = $rt_s(3);
                $var4.$allowFriendlyFire = 1;
                $var4.$field_98301_h = 1;
                $var4.$theScoreboard1 = var$3;
                $var4.$field_96675_b = var$9;
                $var4.$field_96673_d = var$9;
                ju_HashMap_putImpl(var$3.$field_96542_e, var$9, $var4);
                $ptr = 1;
                continue main;
            }
            $par1NBTTagList = new jl_IndexOutOfBoundsException;
            $par1NBTTagList.$suppressionEnabled = 1;
            $par1NBTTagList.$writableStackTrace = 1;
            $rt_throw($par1NBTTagList);
        }
        bm: {
            var$11 = $var3.$tagMap;
            if (!$rt_s(2066).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2066).$nativeString.length)
                        break bm;
                    $rt_s(2066).$hashCode1 = (31 * $rt_s(2066).$hashCode1 | 0) + $rt_s(2066).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2066).$hashCode1;
        var$8 = var$11.$elementData.data;
        var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$11 !== null) {
            if (var$11.$origKeyHash == var$10) {
                bn: {
                    var$9 = var$11.$key;
                    if ($rt_s(2066) !== var$9) {
                        if ($rt_s(2066) === var$9)
                            var$4 = 1;
                        else if (!(var$9 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$9 = var$9;
                            var$4 = $rt_s(2066).$nativeString !== var$9.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break bn;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$11 = var$11.$next3;
        }
        if (!(var$11 === null ? 0 : 1))
            var$4 = 0;
        else {
            var$11 = $var3.$tagMap;
            if ($rt_s(2066) === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                bo: {
                    if (!$rt_s(2066).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2066).$nativeString.length)
                                break bo;
                            $rt_s(2066).$hashCode1 = (31 * $rt_s(2066).$hashCode1 | 0) + $rt_s(2066).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2066).$hashCode1;
                var$8 = var$11.$elementData.data;
                var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$10) {
                        bp: {
                            var$9 = var$11.$key;
                            if ($rt_s(2066) !== var$9) {
                                if ($rt_s(2066) === var$9)
                                    var$4 = 1;
                                else if (!(var$9 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$9 = var$9;
                                    var$4 = $rt_s(2066).$nativeString !== var$9.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break bp;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$4 = (var$11 === null ? null : var$11.$value0).$data0;
        }
        $var4.$field_98301_h = !var$4 ? 0 : 1;
        var$3 = $var4.$theScoreboard1;
        $ptr = 6;
    case 6:
        var$3.$func_96538_b($var4);
        if ($rt_suspending()) {
            break main;
        }
        g: {
            var$3 = $var3.$tagMap;
            if (!$rt_s(2067).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2067).$nativeString.length)
                        break g;
                    $rt_s(2067).$hashCode1 = (31 * $rt_s(2067).$hashCode1 | 0) + $rt_s(2067).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2067).$hashCode1;
        var$8 = var$3.$elementData.data;
        var$3 = var$8[var$10 & (var$8.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$10) {
                h: {
                    var$11 = var$3.$key;
                    if ($rt_s(2067) !== var$11) {
                        if ($rt_s(2067) === var$11)
                            var$4 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$11 = var$11;
                            var$4 = $rt_s(2067).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break h;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1)) {
            var$9 = new nms_NBTTagList;
            if ($rt_s(2067) !== null)
                var$9.$name = $rt_s(2067);
            else
                var$9.$name = $rt_s(3);
            var$3 = new ju_ArrayList;
            var$3.$array = $rt_createArray(jl_Object, 10);
            var$9.$tagList = var$3;
        } else {
            var$3 = $var3.$tagMap;
            if ($rt_s(2067) === null) {
                var$11 = var$3.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                bq: {
                    if (!$rt_s(2067).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2067).$nativeString.length)
                                break bq;
                            $rt_s(2067).$hashCode1 = (31 * $rt_s(2067).$hashCode1 | 0) + $rt_s(2067).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2067).$hashCode1;
                var$8 = var$3.$elementData.data;
                var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$10) {
                        br: {
                            var$3 = var$11.$key;
                            if ($rt_s(2067) !== var$3) {
                                if ($rt_s(2067) === var$3)
                                    var$4 = 1;
                                else if (!(var$3 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$3 = var$3;
                                    var$4 = $rt_s(2067).$nativeString !== var$3.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break br;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$9 = var$11 === null ? null : var$11.$value0;
        }
        var$4 = 0;
        var$11 = var$9.$tagList;
        var$7 = $rt_compare(var$4, var$11.$size0);
        if (var$7 < 0) {
            var$3 = $this.$theScoreboard;
            if (var$4 >= 0 && var$7 < 0) {
                var$11 = var$11.$array.data[var$4].$data1;
                $ptr = 7;
                continue main;
            }
            $par1NBTTagList = new jl_IndexOutOfBoundsException;
            $par1NBTTagList.$suppressionEnabled = 1;
            $par1NBTTagList.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1NBTTagList);
            $rt_throw($par1NBTTagList);
        }
        $var2 = $var2 + 1 | 0;
        var$3 = $par1NBTTagList.$tagList;
        var$4 = $rt_compare($var2, var$3.$size0);
        if (var$4 >= 0)
            return;
        if ($var2 >= 0 && var$4 < 0) {
            bs: {
                $var3 = var$3.$array.data[$var2];
                var$3 = $this.$theScoreboard;
                $var4 = $var3.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(919).$nativeString.length)
                            break bs;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(919).$hashCode1;
            var$8 = $var4.$elementData.data;
            $var4 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$7) {
                    bt: {
                        var$9 = $var4.$key;
                        if ($rt_s(919) !== var$9) {
                            if ($rt_s(919) === var$9)
                                var$4 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$9 = var$9;
                                var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break bt;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var4 = $var4.$next3;
            }
            if (!($var4 === null ? 0 : 1))
                var$9 = $rt_s(3);
            else {
                $var4 = $var3.$tagMap;
                if ($rt_s(919) === null) {
                    $var4 = $var4.$elementData.data[0];
                    while ($var4 !== null && $var4.$key !== null) {
                        $var4 = $var4.$next3;
                    }
                } else {
                    bu: {
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break bu;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(919).$hashCode1;
                    var$8 = $var4.$elementData.data;
                    $var4 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == var$10) {
                            bv: {
                                var$9 = $var4.$key;
                                if ($rt_s(919) !== var$9) {
                                    if ($rt_s(919) === var$9)
                                        var$4 = 1;
                                    else if (!(var$9 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$9 = var$9;
                                        var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break bv;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                }
                var$9 = ($var4 === null ? null : $var4.$value0).$data1;
            }
            var$11 = var$3.$field_96542_e;
            if (var$9 === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                bw: {
                    if (!var$9.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= var$9.$nativeString.length)
                                break bw;
                            var$9.$hashCode1 = (31 * var$9.$hashCode1 | 0) + var$9.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = var$9.$hashCode1;
                var$8 = var$11.$elementData.data;
                var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$10) {
                        bx: {
                            $var4 = var$11.$key;
                            if (var$9 !== $var4) {
                                if (var$9 === $var4)
                                    var$4 = 1;
                                else if (!($var4 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var4 = $var4;
                                    var$4 = var$9.$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break bx;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            if (var$11 !== null) {
                $par1NBTTagList = new jl_IllegalArgumentException;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2052));
                $var2 = var$3.$length0;
                if (var$9 === null)
                    var$9 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$3, $var2, var$9);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2053));
                var$11 = new jl_String;
                var$8 = var$3.$buffer;
                var$12 = var$8.data;
                var$4 = var$3.$length0;
                var$7 = var$12.length;
                if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
                    var$11.$nativeString = $rt_charArrayToString(var$8.data, 0, var$4);
                    $par1NBTTagList.$suppressionEnabled = 1;
                    $par1NBTTagList.$writableStackTrace = 1;
                    $par1NBTTagList.$message = var$11;
                    $rt_throw($par1NBTTagList);
                }
                $par1NBTTagList = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1NBTTagList);
                $rt_throw($par1NBTTagList);
            }
            $var4 = new nms_ScorePlayerTeam;
            var$11 = new ju_HashSet;
            var$13 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            var$13.$elementCount = 0;
            var$12 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$8 = var$12.data;
            var$13.$elementData = var$12;
            var$13.$loadFactor = 0.75;
            var$13.$threshold = var$8.length * 0.75 | 0;
            var$11.$backingMap = var$13;
            $var4.$membershipSet = var$11;
            $var4.$field_96674_e = $rt_s(3);
            $var4.$colorSuffix = $rt_s(3);
            $var4.$allowFriendlyFire = 1;
            $var4.$field_98301_h = 1;
            $var4.$theScoreboard1 = var$3;
            $var4.$field_96675_b = var$9;
            $var4.$field_96673_d = var$9;
            ju_HashMap_putImpl(var$3.$field_96542_e, var$9, $var4);
            $ptr = 1;
            continue main;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    case 7:
        var$3.$func_96521_a(var$11, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$4 + 1 | 0;
        var$11 = var$9.$tagList;
        var$7 = $rt_compare(var$4, var$11.$size0);
        if (var$7 < 0) {
            var$3 = $this.$theScoreboard;
            if (var$4 >= 0 && var$7 < 0) {
                var$11 = var$11.$array.data[var$4].$data1;
                continue main;
            }
            $par1NBTTagList = new jl_IndexOutOfBoundsException;
            $par1NBTTagList.$suppressionEnabled = 1;
            $par1NBTTagList.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1NBTTagList);
            $rt_throw($par1NBTTagList);
        }
        $var2 = $var2 + 1 | 0;
        var$3 = $par1NBTTagList.$tagList;
        var$4 = $rt_compare($var2, var$3.$size0);
        if (var$4 >= 0)
            return;
        if ($var2 >= 0 && var$4 < 0) {
            by: {
                $var3 = var$3.$array.data[$var2];
                var$3 = $this.$theScoreboard;
                $var4 = $var3.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(919).$nativeString.length)
                            break by;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(919).$hashCode1;
            var$8 = $var4.$elementData.data;
            $var4 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$7) {
                    bz: {
                        var$9 = $var4.$key;
                        if ($rt_s(919) !== var$9) {
                            if ($rt_s(919) === var$9)
                                var$4 = 1;
                            else if (!(var$9 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$9 = var$9;
                                var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break bz;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var4 = $var4.$next3;
            }
            if (!($var4 === null ? 0 : 1))
                var$9 = $rt_s(3);
            else {
                $var4 = $var3.$tagMap;
                if ($rt_s(919) === null) {
                    $var4 = $var4.$elementData.data[0];
                    while ($var4 !== null && $var4.$key !== null) {
                        $var4 = $var4.$next3;
                    }
                } else {
                    bA: {
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break bA;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(919).$hashCode1;
                    var$8 = $var4.$elementData.data;
                    $var4 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == var$10) {
                            bB: {
                                var$9 = $var4.$key;
                                if ($rt_s(919) !== var$9) {
                                    if ($rt_s(919) === var$9)
                                        var$4 = 1;
                                    else if (!(var$9 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$9 = var$9;
                                        var$4 = $rt_s(919).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break bB;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                }
                var$9 = ($var4 === null ? null : $var4.$value0).$data1;
            }
            var$11 = var$3.$field_96542_e;
            if (var$9 === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                bC: {
                    if (!var$9.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= var$9.$nativeString.length)
                                break bC;
                            var$9.$hashCode1 = (31 * var$9.$hashCode1 | 0) + var$9.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = var$9.$hashCode1;
                var$8 = var$11.$elementData.data;
                var$11 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$10) {
                        bD: {
                            $var4 = var$11.$key;
                            if (var$9 !== $var4) {
                                if (var$9 === $var4)
                                    var$4 = 1;
                                else if (!($var4 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var4 = $var4;
                                    var$4 = var$9.$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break bD;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            if (var$11 !== null) {
                $par1NBTTagList = new jl_IllegalArgumentException;
                var$3 = new jl_StringBuilder;
                var$3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2052));
                $var2 = var$3.$length0;
                if (var$9 === null)
                    var$9 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$3, $var2, var$9);
                jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2053));
                var$11 = new jl_String;
                var$8 = var$3.$buffer;
                var$12 = var$8.data;
                var$4 = var$3.$length0;
                var$7 = var$12.length;
                if (var$4 >= 0 && var$4 <= (var$7 - 0 | 0)) {
                    var$11.$nativeString = $rt_charArrayToString(var$8.data, 0, var$4);
                    $par1NBTTagList.$suppressionEnabled = 1;
                    $par1NBTTagList.$writableStackTrace = 1;
                    $par1NBTTagList.$message = var$11;
                    $rt_throw($par1NBTTagList);
                }
                $par1NBTTagList = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1NBTTagList);
                $rt_throw($par1NBTTagList);
            }
            $var4 = new nms_ScorePlayerTeam;
            var$11 = new ju_HashSet;
            var$13 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            var$13.$elementCount = 0;
            var$12 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$8 = var$12.data;
            var$13.$elementData = var$12;
            var$13.$loadFactor = 0.75;
            var$13.$threshold = var$8.length * 0.75 | 0;
            var$11.$backingMap = var$13;
            $var4.$membershipSet = var$11;
            $var4.$field_96674_e = $rt_s(3);
            $var4.$colorSuffix = $rt_s(3);
            $var4.$allowFriendlyFire = 1;
            $var4.$field_98301_h = 1;
            $var4.$theScoreboard1 = var$3;
            $var4.$field_96675_b = var$9;
            $var4.$field_96673_d = var$9;
            ju_HashMap_putImpl(var$3.$field_96542_e, var$9, $var4);
            $ptr = 1;
            continue main;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagList, $var2, var$3, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_ScoreboardSaveData_func_96504_c = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, var$11, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 0;
        var$3 = $rt_s(2068);
        var$4 = $rt_s(2068);
        a: {
            while ($var2 < 3) {
                var$5 = new jl_StringBuilder;
                var$5.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$3);
                jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $var2, 10);
                $var4 = new jl_String;
                var$7 = var$5.$buffer;
                var$8 = var$7.data;
                var$9 = var$5.$length0;
                var$10 = var$8.length;
                if (var$9 < 0)
                    break a;
                if (var$9 > (var$10 - 0 | 0))
                    break a;
                b: {
                    $var4.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                    var$5 = $par1NBTTagCompound.$tagMap;
                    if (!$var4.$hashCode1) {
                        var$11 = 0;
                        while (true) {
                            if (var$11 >= $var4.$nativeString.length)
                                break b;
                            $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$11) | 0;
                            var$11 = var$11 + 1 | 0;
                        }
                    }
                }
                var$10 = $var4.$hashCode1;
                var$7 = var$5.$elementData.data;
                var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$10) {
                        c: {
                            $var3 = var$5.$key;
                            if ($var4 !== $var3) {
                                if ($var4 === $var3)
                                    var$11 = 1;
                                else if (!($var3 instanceof jl_String))
                                    var$11 = 0;
                                else {
                                    $var3 = $var3;
                                    var$11 = $var4.$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                                if (!var$11) {
                                    var$11 = 0;
                                    break c;
                                }
                            }
                            var$11 = 1;
                        }
                        if (var$11)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
                if (var$5 === null ? 0 : 1) {
                    var$5 = new jl_StringBuilder;
                    var$5.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$4);
                    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $var2, 10);
                    $var4 = new jl_String;
                    var$7 = var$5.$buffer;
                    var$8 = var$7.data;
                    var$9 = var$5.$length0;
                    var$10 = var$8.length;
                    if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
                        d: {
                            $var4.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                            var$5 = $par1NBTTagCompound.$tagMap;
                            if (!$var4.$hashCode1) {
                                var$11 = 0;
                                while (true) {
                                    if (var$11 >= $var4.$nativeString.length)
                                        break d;
                                    $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$11) | 0;
                                    var$11 = var$11 + 1 | 0;
                                }
                            }
                        }
                        var$10 = $var4.$hashCode1;
                        var$7 = var$5.$elementData.data;
                        var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                        while (var$5 !== null) {
                            if (var$5.$origKeyHash == var$10) {
                                e: {
                                    $var3 = var$5.$key;
                                    if ($var4 !== $var3) {
                                        if ($var4 === $var3)
                                            var$11 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$11 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$11 = $var4.$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$11) {
                                            var$11 = 0;
                                            break e;
                                        }
                                    }
                                    var$11 = 1;
                                }
                                if (var$11)
                                    break;
                            }
                            var$5 = var$5.$next3;
                        }
                        if (!(var$5 === null ? 0 : 1))
                            $var3 = $rt_s(3);
                        else {
                            var$5 = $par1NBTTagCompound.$tagMap;
                            if ($var4 === null) {
                                var$5 = var$5.$elementData.data[0];
                                while (var$5 !== null && var$5.$key !== null) {
                                    var$5 = var$5.$next3;
                                }
                            } else {
                                f: {
                                    if (!$var4.$hashCode1) {
                                        var$11 = 0;
                                        while (true) {
                                            if (var$11 >= $var4.$nativeString.length)
                                                break f;
                                            $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$11) | 0;
                                            var$11 = var$11 + 1 | 0;
                                        }
                                    }
                                }
                                var$10 = $var4.$hashCode1;
                                var$7 = var$5.$elementData.data;
                                var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                                while (var$5 !== null) {
                                    if (var$5.$origKeyHash == var$10) {
                                        g: {
                                            $var3 = var$5.$key;
                                            if ($var4 !== $var3) {
                                                if ($var4 === $var3)
                                                    var$11 = 1;
                                                else if (!($var3 instanceof jl_String))
                                                    var$11 = 0;
                                                else {
                                                    $var3 = $var3;
                                                    var$11 = $var4.$nativeString !== $var3.$nativeString ? 0 : 1;
                                                }
                                                if (!var$11) {
                                                    var$11 = 0;
                                                    break g;
                                                }
                                            }
                                            var$11 = 1;
                                        }
                                        if (var$11)
                                            break;
                                    }
                                    var$5 = var$5.$next3;
                                }
                            }
                            $var3 = (var$5 === null ? null : var$5.$value0).$data1;
                        }
                        var$5 = $this.$theScoreboard.$scoreObjectives;
                        if ($var3 === null) {
                            $var4 = var$5.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            h: {
                                if (!$var3.$hashCode1) {
                                    var$11 = 0;
                                    while (true) {
                                        if (var$11 >= $var3.$nativeString.length)
                                            break h;
                                        $var3.$hashCode1 = (31 * $var3.$hashCode1 | 0) + $var3.$nativeString.charCodeAt(var$11) | 0;
                                        var$11 = var$11 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $var3.$hashCode1;
                            var$7 = var$5.$elementData.data;
                            $var4 = var$7[var$10 & (var$7.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == var$10) {
                                    i: {
                                        var$5 = $var4.$key;
                                        if ($var3 !== var$5) {
                                            if ($var3 === var$5)
                                                var$11 = 1;
                                            else if (!(var$5 instanceof jl_String))
                                                var$11 = 0;
                                            else {
                                                var$5 = var$5;
                                                var$11 = $var3.$nativeString !== var$5.$nativeString ? 0 : 1;
                                            }
                                            if (!var$11) {
                                                var$11 = 0;
                                                break i;
                                            }
                                        }
                                        var$11 = 1;
                                    }
                                    if (var$11)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        $var4 = $var4 === null ? null : $var4.$value0;
                        var$5 = $this.$theScoreboard;
                        $ptr = 1;
                        continue main;
                    }
                    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
                    $par1NBTTagCompound.$suppressionEnabled = 1;
                    $par1NBTTagCompound.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
                    $rt_throw($par1NBTTagCompound);
                }
                $var2 = $var2 + 1 | 0;
            }
            return;
        }
        $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
        $par1NBTTagCompound.$suppressionEnabled = 1;
        $par1NBTTagCompound.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1NBTTagCompound);
        $rt_throw($par1NBTTagCompound);
    case 1:
        var$5.$func_96530_a($var2, $var4);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            while (true) {
                $var2 = $var2 + 1 | 0;
                if ($var2 >= 3)
                    break;
                var$5 = new jl_StringBuilder;
                var$5.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$3);
                jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $var2, 10);
                $var4 = new jl_String;
                var$7 = var$5.$buffer;
                var$8 = var$7.data;
                var$9 = var$5.$length0;
                var$10 = var$8.length;
                if (var$9 < 0)
                    break a;
                if (var$9 > (var$10 - 0 | 0))
                    break a;
                j: {
                    $var4.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                    var$5 = $par1NBTTagCompound.$tagMap;
                    if (!$var4.$hashCode1) {
                        var$11 = 0;
                        while (true) {
                            if (var$11 >= $var4.$nativeString.length)
                                break j;
                            $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$11) | 0;
                            var$11 = var$11 + 1 | 0;
                        }
                    }
                }
                var$10 = $var4.$hashCode1;
                var$7 = var$5.$elementData.data;
                var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$10) {
                        k: {
                            $var3 = var$5.$key;
                            if ($var4 !== $var3) {
                                if ($var4 === $var3)
                                    var$11 = 1;
                                else if (!($var3 instanceof jl_String))
                                    var$11 = 0;
                                else {
                                    $var3 = $var3;
                                    var$11 = $var4.$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                                if (!var$11) {
                                    var$11 = 0;
                                    break k;
                                }
                            }
                            var$11 = 1;
                        }
                        if (var$11)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
                if (!(var$5 === null ? 0 : 1))
                    continue;
                else {
                    var$5 = new jl_StringBuilder;
                    var$5.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$4);
                    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $var2, 10);
                    $var4 = new jl_String;
                    var$7 = var$5.$buffer;
                    var$8 = var$7.data;
                    var$9 = var$5.$length0;
                    var$10 = var$8.length;
                    if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
                        l: {
                            $var4.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                            var$5 = $par1NBTTagCompound.$tagMap;
                            if (!$var4.$hashCode1) {
                                var$11 = 0;
                                while (true) {
                                    if (var$11 >= $var4.$nativeString.length)
                                        break l;
                                    $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$11) | 0;
                                    var$11 = var$11 + 1 | 0;
                                }
                            }
                        }
                        var$10 = $var4.$hashCode1;
                        var$7 = var$5.$elementData.data;
                        var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                        while (var$5 !== null) {
                            if (var$5.$origKeyHash == var$10) {
                                m: {
                                    $var3 = var$5.$key;
                                    if ($var4 !== $var3) {
                                        if ($var4 === $var3)
                                            var$11 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$11 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$11 = $var4.$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$11) {
                                            var$11 = 0;
                                            break m;
                                        }
                                    }
                                    var$11 = 1;
                                }
                                if (var$11)
                                    break;
                            }
                            var$5 = var$5.$next3;
                        }
                        if (!(var$5 === null ? 0 : 1))
                            $var3 = $rt_s(3);
                        else {
                            var$5 = $par1NBTTagCompound.$tagMap;
                            if ($var4 === null) {
                                var$5 = var$5.$elementData.data[0];
                                while (var$5 !== null && var$5.$key !== null) {
                                    var$5 = var$5.$next3;
                                }
                            } else {
                                n: {
                                    if (!$var4.$hashCode1) {
                                        var$11 = 0;
                                        while (true) {
                                            if (var$11 >= $var4.$nativeString.length)
                                                break n;
                                            $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$11) | 0;
                                            var$11 = var$11 + 1 | 0;
                                        }
                                    }
                                }
                                var$10 = $var4.$hashCode1;
                                var$7 = var$5.$elementData.data;
                                var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                                while (var$5 !== null) {
                                    if (var$5.$origKeyHash == var$10) {
                                        o: {
                                            $var3 = var$5.$key;
                                            if ($var4 !== $var3) {
                                                if ($var4 === $var3)
                                                    var$11 = 1;
                                                else if (!($var3 instanceof jl_String))
                                                    var$11 = 0;
                                                else {
                                                    $var3 = $var3;
                                                    var$11 = $var4.$nativeString !== $var3.$nativeString ? 0 : 1;
                                                }
                                                if (!var$11) {
                                                    var$11 = 0;
                                                    break o;
                                                }
                                            }
                                            var$11 = 1;
                                        }
                                        if (var$11)
                                            break;
                                    }
                                    var$5 = var$5.$next3;
                                }
                            }
                            $var3 = (var$5 === null ? null : var$5.$value0).$data1;
                        }
                        var$5 = $this.$theScoreboard.$scoreObjectives;
                        if ($var3 === null) {
                            $var4 = var$5.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            p: {
                                if (!$var3.$hashCode1) {
                                    var$11 = 0;
                                    while (true) {
                                        if (var$11 >= $var3.$nativeString.length)
                                            break p;
                                        $var3.$hashCode1 = (31 * $var3.$hashCode1 | 0) + $var3.$nativeString.charCodeAt(var$11) | 0;
                                        var$11 = var$11 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $var3.$hashCode1;
                            var$7 = var$5.$elementData.data;
                            $var4 = var$7[var$10 & (var$7.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == var$10) {
                                    q: {
                                        var$5 = $var4.$key;
                                        if ($var3 !== var$5) {
                                            if ($var3 === var$5)
                                                var$11 = 1;
                                            else if (!(var$5 instanceof jl_String))
                                                var$11 = 0;
                                            else {
                                                var$5 = var$5;
                                                var$11 = $var3.$nativeString !== var$5.$nativeString ? 0 : 1;
                                            }
                                            if (!var$11) {
                                                var$11 = 0;
                                                break q;
                                            }
                                        }
                                        var$11 = 1;
                                    }
                                    if (var$11)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        $var4 = $var4 === null ? null : $var4.$value0;
                        var$5 = $this.$theScoreboard;
                        continue main;
                    }
                    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
                    $par1NBTTagCompound.$suppressionEnabled = 1;
                    $par1NBTTagCompound.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
                    $rt_throw($par1NBTTagCompound);
                }
            }
            return;
        }
        $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
        $par1NBTTagCompound.$suppressionEnabled = 1;
        $par1NBTTagCompound.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1NBTTagCompound);
        $rt_throw($par1NBTTagCompound);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, $var2, var$3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, var$11, $var3, $ptr);
},
nms_ScoreboardSaveData_func_96501_b = ($this, $par1NBTTagList) => {
    let $var2, var$3, var$4, $var3, var$6, $var5, var$8, var$9, $var4, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1NBTTagList = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 0;
        var$3 = $par1NBTTagList.$tagList;
        var$4 = $rt_compare($var2, var$3.$size0);
        if (var$4 >= 0)
            return;
        if ($var2 >= 0 && var$4 < 0) {
            a: {
                $var3 = var$3.$array.data[$var2];
                nms_ScoreObjectiveCriteria_$callClinit();
                var$6 = nms_ScoreObjectiveCriteria_field_96643_a;
                $var5 = $var3.$tagMap;
                if (!$rt_s(2069).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2069).$nativeString.length)
                            break a;
                        $rt_s(2069).$hashCode1 = (31 * $rt_s(2069).$hashCode1 | 0) + $rt_s(2069).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2069).$hashCode1;
            var$9 = $var5.$elementData.data;
            $var5 = var$9[var$8 & (var$9.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$8) {
                    b: {
                        $var4 = $var5.$key;
                        if ($rt_s(2069) !== $var4) {
                            if ($rt_s(2069) === $var4)
                                var$4 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$4 = 0;
                            else {
                                $var4 = $var4;
                                var$4 = $rt_s(2069).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break b;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var5 = $var5.$next3;
            }
            if ($var5 === null ? 0 : 1) {
                $var5 = $var3.$tagMap;
                if ($rt_s(2069) !== null) {
                    c: {
                        if (!$rt_s(2069).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2069).$nativeString.length)
                                    break c;
                                $rt_s(2069).$hashCode1 = (31 * $rt_s(2069).$hashCode1 | 0) + $rt_s(2069).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2069).$hashCode1;
                    var$9 = $var5.$elementData.data;
                    $var5 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$8) {
                            d: {
                                $var4 = $var5.$key;
                                if ($rt_s(2069) !== $var4) {
                                    if ($rt_s(2069) !== $var4) {
                                        if ($var4 instanceof jl_String) {
                                            $var4 = $var4;
                                            var$4 = $rt_s(2069).$nativeString !== $var4.$nativeString ? 0 : 1;
                                        } else
                                            var$4 = 0;
                                    } else
                                        var$4 = 1;
                                    if (!var$4) {
                                        var$4 = 0;
                                        break d;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = ($var5 === null ? null : $var5.$value0).$data1;
            } else
                $var5 = $rt_s(3);
            if ($var5 === null) {
                var$3 = var$6.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                e: {
                    if (!$var5.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $var5.$nativeString.length)
                                break e;
                            $var5.$hashCode1 = (31 * $var5.$hashCode1 | 0) + $var5.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $var5.$hashCode1;
                var$9 = var$6.$elementData.data;
                var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$8) {
                        f: {
                            var$6 = var$3.$key;
                            if ($var5 !== var$6) {
                                if ($var5 === var$6)
                                    var$4 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$6 = var$6;
                                    var$4 = $var5.$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break f;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            g: {
                $var4 = var$3;
                var$11 = $this.$theScoreboard;
                var$3 = $var3.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(919).$nativeString.length)
                            break g;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(919).$hashCode1;
            var$9 = var$3.$elementData.data;
            var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$3.$key;
                        if ($rt_s(919) !== var$6) {
                            if ($rt_s(919) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(919).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1))
                var$3 = $rt_s(3);
            else {
                var$3 = $var3.$tagMap;
                if ($rt_s(919) === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    i: {
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(919).$hashCode1;
                    var$9 = var$3.$elementData.data;
                    var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$8) {
                            j: {
                                var$6 = var$3.$key;
                                if ($rt_s(919) !== var$6) {
                                    if ($rt_s(919) === var$6)
                                        var$4 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$4 = $rt_s(919).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break j;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$3 = (var$3 === null ? null : var$3.$value0).$data1;
            }
            k: {
                $var5 = nms_Scoreboard_func_96535_a(var$11, var$3, $var4);
                var$3 = $var3.$tagMap;
                if (!$rt_s(2061).$hashCode1) {
                    var$12 = 0;
                    while (true) {
                        if (var$12 >= $rt_s(2061).$nativeString.length)
                            break k;
                        $rt_s(2061).$hashCode1 = (31 * $rt_s(2061).$hashCode1 | 0) + $rt_s(2061).$nativeString.charCodeAt(var$12) | 0;
                        var$12 = var$12 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2061).$hashCode1;
            var$9 = var$3.$elementData.data;
            var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    l: {
                        var$6 = var$3.$key;
                        if ($rt_s(2061) !== var$6) {
                            if ($rt_s(2061) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2061).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1))
                var$3 = $rt_s(3);
            else {
                var$3 = $var3.$tagMap;
                if ($rt_s(2061) === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(2061).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2061).$nativeString.length)
                                    break m;
                                $rt_s(2061).$hashCode1 = (31 * $rt_s(2061).$hashCode1 | 0) + $rt_s(2061).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2061).$hashCode1;
                    var$9 = var$3.$elementData.data;
                    var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$8) {
                            n: {
                                var$6 = var$3.$key;
                                if ($rt_s(2061) !== var$6) {
                                    if ($rt_s(2061) === var$6)
                                        var$4 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$4 = $rt_s(2061).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break n;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$3 = (var$3 === null ? null : var$3.$value0).$data1;
            }
            $var5.$displayName0 = var$3;
            var$3 = $var5.$theScoreboard2;
            $ptr = 1;
            continue main;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    case 1:
        var$3.$func_96532_b($var5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        var$3 = $par1NBTTagList.$tagList;
        var$4 = $rt_compare($var2, var$3.$size0);
        if (var$4 >= 0)
            return;
        if ($var2 >= 0 && var$4 < 0) {
            a: {
                $var3 = var$3.$array.data[$var2];
                nms_ScoreObjectiveCriteria_$callClinit();
                var$6 = nms_ScoreObjectiveCriteria_field_96643_a;
                $var5 = $var3.$tagMap;
                if (!$rt_s(2069).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2069).$nativeString.length)
                            break a;
                        $rt_s(2069).$hashCode1 = (31 * $rt_s(2069).$hashCode1 | 0) + $rt_s(2069).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2069).$hashCode1;
            var$9 = $var5.$elementData.data;
            $var5 = var$9[var$8 & (var$9.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$8) {
                    b: {
                        $var4 = $var5.$key;
                        if ($rt_s(2069) !== $var4) {
                            if ($rt_s(2069) === $var4)
                                var$4 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$4 = 0;
                            else {
                                $var4 = $var4;
                                var$4 = $rt_s(2069).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break b;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var5 = $var5.$next3;
            }
            if ($var5 === null ? 0 : 1) {
                $var5 = $var3.$tagMap;
                if ($rt_s(2069) !== null) {
                    c: {
                        if (!$rt_s(2069).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2069).$nativeString.length)
                                    break c;
                                $rt_s(2069).$hashCode1 = (31 * $rt_s(2069).$hashCode1 | 0) + $rt_s(2069).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2069).$hashCode1;
                    var$9 = $var5.$elementData.data;
                    $var5 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$8) {
                            d: {
                                $var4 = $var5.$key;
                                if ($rt_s(2069) !== $var4) {
                                    if ($rt_s(2069) !== $var4) {
                                        if ($var4 instanceof jl_String) {
                                            $var4 = $var4;
                                            var$4 = $rt_s(2069).$nativeString !== $var4.$nativeString ? 0 : 1;
                                        } else
                                            var$4 = 0;
                                    } else
                                        var$4 = 1;
                                    if (!var$4) {
                                        var$4 = 0;
                                        break d;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = ($var5 === null ? null : $var5.$value0).$data1;
            } else
                $var5 = $rt_s(3);
            if ($var5 === null) {
                var$3 = var$6.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                e: {
                    if (!$var5.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $var5.$nativeString.length)
                                break e;
                            $var5.$hashCode1 = (31 * $var5.$hashCode1 | 0) + $var5.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $var5.$hashCode1;
                var$9 = var$6.$elementData.data;
                var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$8) {
                        f: {
                            var$6 = var$3.$key;
                            if ($var5 !== var$6) {
                                if ($var5 === var$6)
                                    var$4 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$6 = var$6;
                                    var$4 = $var5.$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break f;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            g: {
                $var4 = var$3;
                var$11 = $this.$theScoreboard;
                var$3 = $var3.$tagMap;
                if (!$rt_s(919).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(919).$nativeString.length)
                            break g;
                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(919).$hashCode1;
            var$9 = var$3.$elementData.data;
            var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$3.$key;
                        if ($rt_s(919) !== var$6) {
                            if ($rt_s(919) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(919).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1))
                var$3 = $rt_s(3);
            else {
                var$3 = $var3.$tagMap;
                if ($rt_s(919) === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    i: {
                        if (!$rt_s(919).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(919).$nativeString.length)
                                    break i;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(919).$hashCode1;
                    var$9 = var$3.$elementData.data;
                    var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$8) {
                            j: {
                                var$6 = var$3.$key;
                                if ($rt_s(919) !== var$6) {
                                    if ($rt_s(919) === var$6)
                                        var$4 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$4 = $rt_s(919).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break j;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$3 = (var$3 === null ? null : var$3.$value0).$data1;
            }
            k: {
                $var5 = nms_Scoreboard_func_96535_a(var$11, var$3, $var4);
                var$3 = $var3.$tagMap;
                if (!$rt_s(2061).$hashCode1) {
                    var$12 = 0;
                    while (true) {
                        if (var$12 >= $rt_s(2061).$nativeString.length)
                            break k;
                        $rt_s(2061).$hashCode1 = (31 * $rt_s(2061).$hashCode1 | 0) + $rt_s(2061).$nativeString.charCodeAt(var$12) | 0;
                        var$12 = var$12 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2061).$hashCode1;
            var$9 = var$3.$elementData.data;
            var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    l: {
                        var$6 = var$3.$key;
                        if ($rt_s(2061) !== var$6) {
                            if ($rt_s(2061) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2061).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1))
                var$3 = $rt_s(3);
            else {
                var$3 = $var3.$tagMap;
                if ($rt_s(2061) === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(2061).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2061).$nativeString.length)
                                    break m;
                                $rt_s(2061).$hashCode1 = (31 * $rt_s(2061).$hashCode1 | 0) + $rt_s(2061).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2061).$hashCode1;
                    var$9 = var$3.$elementData.data;
                    var$3 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$8) {
                            n: {
                                var$6 = var$3.$key;
                                if ($rt_s(2061) !== var$6) {
                                    if ($rt_s(2061) === var$6)
                                        var$4 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$4 = $rt_s(2061).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break n;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$3 = (var$3 === null ? null : var$3.$value0).$data1;
            }
            $var5.$displayName0 = var$3;
            var$3 = $var5.$theScoreboard2;
            continue main;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagList, $var2, var$3, var$4, $var3, var$6, $var5, var$8, var$9, $var4, var$11, var$12, $ptr);
},
nms_ScoreboardSaveData_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    if ($this.$theScoreboard !== null) {
        var$2 = nms_ScoreboardSaveData_func_96505_b($this);
        var$3 = $par1NBTTagCompound.$tagMap;
        var$2.$name = $rt_s(2056);
        ju_HashMap_putImpl(var$3, $rt_s(2056), var$2);
        var$2 = nms_ScoreboardSaveData_func_96503_e($this);
        var$3 = $par1NBTTagCompound.$tagMap;
        var$2.$name = $rt_s(2057);
        ju_HashMap_putImpl(var$3, $rt_s(2057), var$2);
        var$2 = nms_ScoreboardSaveData_func_96496_a($this);
        var$3 = $par1NBTTagCompound.$tagMap;
        var$2.$name = $rt_s(2059);
        ju_HashMap_putImpl(var$3, $rt_s(2059), var$2);
        nms_ScoreboardSaveData_func_96497_d($this, $par1NBTTagCompound);
    } else {
        nles_IntegratedServer_$callClinit();
        var$2 = nles_IntegratedServer_logger.$logger;
        var$4 = jul_Level_WARNING;
        var$3 = new jul_LogRecord;
        var$3.$level = var$4;
        var$3.$message0 = $rt_s(2070);
        var$3.$millis = jl_System_currentTimeMillis();
        var$5 = jul_LogRecord_sequenceNumberGenerator;
        jul_LogRecord_sequenceNumberGenerator = Long_add(var$5, Long_fromInt(1));
        var$3.$sequenceNumber = var$5;
        var$3.$threadID = jl_Thread_currentThread.$id2;
        jul_Logger_log(var$2, var$3);
    }
},
nms_ScoreboardSaveData_func_96496_a = $this => {
    let $var1, $var4, $var3, $var5, $var7, var$6, var$7, var$8, var$9, $var8, $var6, var$12;
    $var1 = new nms_NBTTagList;
    $var1.$name = $rt_s(3);
    $var4 = new ju_ArrayList;
    $var4.$array = $rt_createArray(jl_Object, 10);
    $var1.$tagList = $var4;
    $var4 = $this.$theScoreboard.$field_96542_e;
    if ($var4.$cachedValues === null) {
        $var3 = new ju_HashMap$2;
        $var3.$this$01 = $var4;
        $var4.$cachedValues = $var3;
    }
    $var3 = $var4.$cachedValues.$iterator();
    while ($var3.$hasNext()) {
        $var4 = $var3.$next();
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(3);
        $var7 = new ju_HashMap;
        var$6 = ju_HashMap_calculateCapacity(16);
        $var7.$elementCount = 0;
        var$7 = $rt_createArray(ju_HashMap$HashEntry, var$6);
        var$8 = var$7.data;
        $var7.$elementData = var$7;
        $var7.$loadFactor = 0.75;
        $var7.$threshold = var$8.length * 0.75 | 0;
        $var5.$tagMap = $var7;
        var$9 = $var4.$field_96675_b;
        $var8 = new nms_NBTTagString;
        $var8.$name = $rt_s(919);
        $var8.$data1 = var$9;
        if (var$9 === null) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(177);
            $rt_throw($var4);
        }
        ju_HashMap_putImpl($var7, $rt_s(919), $var8);
        $var7 = $var4.$field_96673_d;
        var$9 = $var5.$tagMap;
        $var8 = new nms_NBTTagString;
        $var8.$name = $rt_s(2061);
        $var8.$data1 = $var7;
        if ($var7 === null) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(177);
            $rt_throw($var4);
        }
        ju_HashMap_putImpl(var$9, $rt_s(2061), $var8);
        $var7 = $var4.$field_96674_e;
        var$9 = $var5.$tagMap;
        $var8 = new nms_NBTTagString;
        $var8.$name = $rt_s(2063);
        $var8.$data1 = $var7;
        if ($var7 === null) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(177);
            $rt_throw($var4);
        }
        ju_HashMap_putImpl(var$9, $rt_s(2063), $var8);
        $var7 = $var4.$colorSuffix;
        var$9 = $var5.$tagMap;
        $var8 = new nms_NBTTagString;
        $var8.$name = $rt_s(2064);
        $var8.$data1 = $var7;
        if ($var7 === null) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(177);
            $rt_throw($var4);
        }
        ju_HashMap_putImpl(var$9, $rt_s(2064), $var8);
        var$6 = (!$var4.$allowFriendlyFire ? 0 : 1) << 24 >> 24;
        var$9 = $var5.$tagMap;
        $var8 = new nms_NBTTagByte;
        $var8.$name = $rt_s(2065);
        $var8.$data0 = var$6;
        ju_HashMap_putImpl(var$9, $rt_s(2065), $var8);
        var$6 = (!$var4.$field_98301_h ? 0 : 1) << 24 >> 24;
        var$9 = $var5.$tagMap;
        $var8 = new nms_NBTTagByte;
        $var8.$name = $rt_s(2066);
        $var8.$data0 = var$6;
        ju_HashMap_putImpl(var$9, $rt_s(2066), $var8);
        $var6 = new nms_NBTTagList;
        $var6.$name = $rt_s(3);
        $var8 = new ju_ArrayList;
        $var8.$array = $rt_createArray(jl_Object, 10);
        $var6.$tagList = $var8;
        $var4 = $var4.$membershipSet.$backingMap;
        if ($var4.$cachedKeySet === null) {
            $var8 = new ju_HashMap$1;
            $var8.$this$0 = $var4;
            $var4.$cachedKeySet = $var8;
        }
        $var7 = $var4.$cachedKeySet.$iterator();
        while ($var7.$hasNext()) {
            $var8 = $var7.$next();
            var$9 = new nms_NBTTagString;
            var$9.$name = $rt_s(3);
            var$9.$data1 = $var8;
            if ($var8 === null) {
                $var4 = new jl_IllegalArgumentException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $var4.$message = $rt_s(177);
                $rt_throw($var4);
            }
            $var6.$tagType = 8;
            $var4 = $var6.$tagList;
            ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
            var$8 = $var4.$array.data;
            var$12 = $var4.$size0;
            $var4.$size0 = var$12 + 1 | 0;
            var$8[var$12] = var$9;
            $var4.$modCount = $var4.$modCount + 1 | 0;
        }
        $var8 = $var5.$tagMap;
        $var6.$name = $rt_s(2067);
        ju_HashMap_putImpl($var8, $rt_s(2067), $var6);
        $var1.$tagType = 10;
        $var4 = $var1.$tagList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$8 = $var4.$array.data;
        var$12 = $var4.$size0;
        $var4.$size0 = var$12 + 1 | 0;
        var$8[var$12] = $var5;
        $var4.$modCount = $var4.$modCount + 1 | 0;
    }
    return $var1;
},
nms_ScoreboardSaveData_func_96497_d = ($this, $par1NBTTagCompound) => {
    let $var2, $var5, $var3, var$5, var$6, $var4, var$8, var$9, var$10, var$11, var$12;
    $var2 = new nms_NBTTagCompound;
    $var2.$name = $rt_s(3);
    $var5 = new ju_HashMap;
    $var3 = ju_HashMap_calculateCapacity(16);
    $var5.$elementCount = 0;
    var$5 = $rt_createArray(ju_HashMap$HashEntry, $var3);
    var$6 = var$5.data;
    $var5.$elementData = var$5;
    $var5.$loadFactor = 0.75;
    $var5.$threshold = var$6.length * 0.75 | 0;
    $var2.$tagMap = $var5;
    $var3 = 0;
    $var4 = 0;
    a: {
        while ($var4 < 3) {
            $var5 = $this.$theScoreboard.$field_96541_d.data[$var4];
            if ($var5 !== null) {
                var$8 = new jl_StringBuilder;
                var$8.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(2068));
                jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, $var4, 10);
                var$9 = new jl_String;
                var$6 = var$8.$buffer;
                var$5 = var$6.data;
                var$10 = var$8.$length0;
                var$11 = var$5.length;
                if (var$10 < 0)
                    break a;
                if (var$10 > (var$11 - 0 | 0))
                    break a;
                var$9.$nativeString = $rt_charArrayToString(var$6.data, 0, var$10);
                var$12 = $var5.$name4;
                var$8 = $var2.$tagMap;
                $var5 = new nms_NBTTagString;
                $var5.$name = var$9;
                $var5.$data1 = var$12;
                if (var$12 === null) {
                    $var2 = new jl_IllegalArgumentException;
                    $var2.$suppressionEnabled = 1;
                    $var2.$writableStackTrace = 1;
                    $var2.$message = $rt_s(177);
                    $rt_throw($var2);
                }
                ju_HashMap_putImpl(var$8, var$9, $var5);
                $var3 = 1;
            }
            $var4 = $var4 + 1 | 0;
        }
        if ($var3) {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            $var2.$name = $rt_s(2058);
            ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2058), $var2);
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
    $rt_throw($par1NBTTagCompound);
},
nms_ScoreboardSaveData_func_96505_b = $this => {
    let $var1, $var3, $var4, $var5, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    $var1 = new nms_NBTTagList;
    $var1.$name = $rt_s(3);
    $var3 = new ju_ArrayList;
    $var3.$array = $rt_createArray(jl_Object, 10);
    $var1.$tagList = $var3;
    $var3 = $this.$theScoreboard.$scoreObjectives;
    if ($var3.$cachedValues === null) {
        $var4 = new ju_HashMap$2;
        $var4.$this$01 = $var3;
        $var3.$cachedValues = $var4;
    }
    $var3 = $var3.$cachedValues.$iterator();
    while ($var3.$hasNext()) {
        $var4 = $var3.$next();
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(3);
        var$5 = new ju_HashMap;
        var$6 = ju_HashMap_calculateCapacity(16);
        var$5.$elementCount = 0;
        var$7 = $rt_createArray(ju_HashMap$HashEntry, var$6);
        var$8 = var$7.data;
        var$5.$elementData = var$7;
        var$5.$loadFactor = 0.75;
        var$5.$threshold = var$8.length * 0.75 | 0;
        $var5.$tagMap = var$5;
        var$9 = $var4.$name4;
        var$10 = new nms_NBTTagString;
        var$10.$name = $rt_s(919);
        var$10.$data1 = var$9;
        if (var$9 === null) {
            $var3 = new jl_IllegalArgumentException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(177);
            $rt_throw($var3);
        }
        ju_HashMap_putImpl(var$5, $rt_s(919), var$10);
        var$10 = $var4.$objectiveCriteria.$field_96644_g;
        var$11 = $var5.$tagMap;
        var$5 = new nms_NBTTagString;
        var$5.$name = $rt_s(2069);
        var$5.$data1 = var$10;
        if (var$10 === null) {
            $var3 = new jl_IllegalArgumentException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(177);
            $rt_throw($var3);
        }
        ju_HashMap_putImpl(var$11, $rt_s(2069), var$5);
        var$5 = $var4.$displayName0;
        var$9 = $var5.$tagMap;
        $var4 = new nms_NBTTagString;
        $var4.$name = $rt_s(2061);
        $var4.$data1 = var$5;
        if (var$5 === null) {
            $var3 = new jl_IllegalArgumentException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(177);
            $rt_throw($var3);
        }
        ju_HashMap_putImpl(var$9, $rt_s(2061), $var4);
        $var1.$tagType = 10;
        $var4 = $var1.$tagList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$8 = $var4.$array.data;
        var$12 = $var4.$size0;
        $var4.$size0 = var$12 + 1 | 0;
        var$8[var$12] = $var5;
        $var4.$modCount = $var4.$modCount + 1 | 0;
    }
    return $var1;
},
nms_ScoreboardSaveData_func_96503_e = $this => {
    let $var1, $var4, $var5, $var2, var$5, var$6, $var3$index, var$8, var$9, $var3$index_0, var$11, var$12, var$13, var$14, var$15;
    $var1 = new nms_NBTTagList;
    $var1.$name = $rt_s(3);
    $var4 = new ju_ArrayList;
    $var4.$array = $rt_createArray(jl_Object, 10);
    $var1.$tagList = $var4;
    $var4 = $this.$theScoreboard.$field_96544_c;
    if ($var4.$cachedValues === null) {
        $var5 = new ju_HashMap$2;
        $var5.$this$01 = $var4;
        $var4.$cachedValues = $var5;
    }
    $var4 = $var4.$cachedValues;
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    $var4 = $var4.$iterator();
    while ($var4.$hasNext()) {
        $var5 = $var4.$next();
        if ($var5.$cachedValues === null) {
            var$5 = new ju_HashMap$2;
            var$5.$this$01 = $var5;
            $var5.$cachedValues = var$5;
        }
        $var5 = $var5.$cachedValues.$iterator();
        while ($var5.$hasNext()) {
            var$5 = $var5.$next();
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            var$6 = $var2.$array.data;
            $var3$index = $var2.$size0;
            $var2.$size0 = $var3$index + 1 | 0;
            var$6[$var3$index] = var$5;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
    }
    $var3$index = 0;
    var$8 = $var2.$modCount;
    var$9 = $var2.$size();
    while ($var3$index >= var$9 ? 0 : 1) {
        if (var$8 < $var2.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var3$index_0 = $var3$index + 1 | 0;
        $var4 = $var2.$get($var3$index);
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(3);
        var$11 = new ju_HashMap;
        var$12 = ju_HashMap_calculateCapacity(16);
        var$11.$elementCount = 0;
        var$13 = $rt_createArray(ju_HashMap$HashEntry, var$12);
        var$6 = var$13.data;
        var$11.$elementData = var$13;
        var$11.$loadFactor = 0.75;
        var$11.$threshold = var$6.length * 0.75 | 0;
        $var5.$tagMap = var$11;
        var$14 = $var4.$field_96654_d;
        var$15 = new nms_NBTTagString;
        var$15.$name = $rt_s(919);
        var$15.$data1 = var$14;
        if (var$14 === null) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(177);
            $rt_throw($var4);
        }
        ju_HashMap_putImpl(var$11, $rt_s(919), var$15);
        var$15 = $var4.$theScoreObjective.$name4;
        var$11 = $var5.$tagMap;
        var$14 = new nms_NBTTagString;
        var$14.$name = $rt_s(2060);
        var$14.$data1 = var$15;
        if (var$15 === null) {
            $var4 = new jl_IllegalArgumentException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $var4.$message = $rt_s(177);
            $rt_throw($var4);
        }
        ju_HashMap_putImpl(var$11, $rt_s(2060), var$14);
        var$12 = $var4.$field_96655_e;
        var$15 = $var5.$tagMap;
        $var4 = new nms_NBTTagInt;
        $var4.$name = $rt_s(2015);
        $var4.$data = var$12;
        ju_HashMap_putImpl(var$15, $rt_s(2015), $var4);
        $var1.$tagType = 10;
        $var4 = $var1.$tagList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$6 = $var4.$array.data;
        $var3$index = $var4.$size0;
        $var4.$size0 = $var3$index + 1 | 0;
        var$6[$var3$index] = $var5;
        $var4.$modCount = $var4.$modCount + 1 | 0;
        $var3$index = $var3$index_0;
    }
    return $var1;
},
ju_SequencedSet = $rt_classWithoutFields(0),
ju_SortedSet = $rt_classWithoutFields(0),
ju_NavigableSet = $rt_classWithoutFields(0);
function ju_TreeSet() {
    ju_AbstractSet.call(this);
    this.$map = null;
}
let ju_TreeSet_VALUE = null,
ju_TreeSet__init_ = $this => {
    let var$1;
    var$1 = new ju_TreeMap;
    var$1.$originalComparator = null;
    var$1.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
    $this.$map = var$1;
},
ju_TreeSet__init_0 = () => {
    let var_0 = new ju_TreeSet();
    ju_TreeSet__init_(var_0);
    return var_0;
},
ju_TreeSet__clinit_ = () => {
    ju_TreeSet_VALUE = new jl_Object;
};
function ju_Arrays$ArrayAsList() {
    ju_AbstractList.call(this);
    this.$array1 = null;
}
let ju_Arrays$ArrayAsList_get = ($this, $index) => {
    return $this.$array1.data[$index];
},
ju_Arrays$ArrayAsList_size = $this => {
    return $this.$array1.data.length;
};
function nms_NetServerHandler() {
    let a = this; nms_NetHandler.call(a);
    a.$netManager = null;
    a.$mcServer2 = null;
    a.$connectionClosed = 0;
    a.$playerEntity = null;
    a.$currentTicks = 0;
    a.$ticksForFloatKick = 0;
    a.$field_72584_h = 0;
    a.$keepAliveRandomID = 0;
    a.$keepAliveTimeSent = Long_ZERO;
    a.$ticksOfLastKeepAlive = Long_ZERO;
    a.$chatSpamThresholdCount = 0;
    a.$creativeItemCreationSpamThresholdTally = 0;
    a.$lastPosX = 0.0;
    a.$lastPosY = 0.0;
    a.$lastPosZ = 0.0;
    a.$hasMoved = 0;
    a.$field_72586_s = null;
}
let nms_NetServerHandler_randomGenerator = null,
nms_NetServerHandler_$callClinit = () => {
    nms_NetServerHandler_$callClinit = $rt_eraseClinit(nms_NetServerHandler);
    nms_NetServerHandler__clinit_();
},
nms_NetServerHandler_handlePackets = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$field_72584_h = 0;
        $this.$currentTicks = $this.$currentTicks + 1 | 0;
        var$1 = $this.$netManager;
        $ptr = 1;
    case 1:
        nles_WorkerNetworkManager_processReadPackets(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = Long_fromInt($this.$currentTicks);
        if (Long_gt(Long_sub(var$2, $this.$ticksOfLastKeepAlive), Long_fromInt(20)))
            a: {
                $this.$ticksOfLastKeepAlive = var$2;
                $this.$keepAliveTimeSent = Long_div(Long_fromNumber(performance.now() * 1000000.0), Long_fromInt(1000000));
                nms_NetServerHandler_$callClinit();
                var$1 = nms_NetServerHandler_randomGenerator;
                var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$2;
                var$3 = Long_lo(Long_shru(var$2, 16));
                $this.$keepAliveRandomID = var$3;
                var$1 = new nms_Packet0KeepAlive;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$1.$randomId = var$3;
                if (var$1 instanceof nms_Packet3Chat) {
                    var$4 = var$1;
                    var$5 = $this.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break a;
                    if (var$5 == 1 && !var$4.$isServer)
                        break a;
                }
                try {
                    var$4 = $this.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    var$6 = new ji_ByteArrayOutputStream;
                    jl_Object__init_(var$6);
                    var$6.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_(var$4);
                    var$4.$out0 = var$6;
                    var$6 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$6);
                    var$4.$sb = var$6;
                    var$4.$buffer0 = $rt_createCharArray(32);
                    var$4.$autoFlush = 0;
                    var$4.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        var$3 = $this.$chatSpamThresholdCount;
        if (var$3 > 0)
            $this.$chatSpamThresholdCount = var$3 - 1 | 0;
        var$3 = $this.$creativeItemCreationSpamThresholdTally;
        if (var$3 > 0)
            $this.$creativeItemCreationSpamThresholdTally = var$3 - 1 | 0;
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$6);
                var$6.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$4);
                var$4.$out0 = var$6;
                var$6 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$6);
                var$4.$sb = var$6;
                var$4.$buffer0 = $rt_createCharArray(32);
                var$4.$autoFlush = 0;
                var$4.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        var$3 = $this.$chatSpamThresholdCount;
        if (var$3 > 0)
            $this.$chatSpamThresholdCount = var$3 - 1 | 0;
        var$3 = $this.$creativeItemCreationSpamThresholdTally;
        if (var$3 > 0)
            $this.$creativeItemCreationSpamThresholdTally = var$3 - 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_NetServerHandler_kickPlayerFromServer = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Str
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$connectionClosed)
            return;
        $this.$connectionClosed = 1;
        var$2 = $this.$playerEntity;
        var$3 = var$2.$riddenByEntity;
        if (var$3 !== null) {
            $ptr = 1;
            continue main;
        }
        var$4 = var$2.$sleeping;
        if (!var$4) {
            if ($par1Str !== null)
                a: {
                    var$2 = new nms_Packet255KickDisconnect;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$2.$reason = $par1Str;
                    if (var$2 instanceof nms_Packet3Chat) {
                        $par1Str = var$2;
                        var$5 = $this.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break a;
                        if (var$5 == 1 && !$par1Str.$isServer)
                            break a;
                    }
                    try {
                        $par1Str = $this.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Str = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1Str);
                }
            $par1Str = $this.$netManager;
            $ptr = 2;
            continue main;
        }
        var$6 = 1;
        var$5 = 0;
        var$7 = 0;
        if (var$4) {
            var$8 = var$2.$worldObj.$theEntityTracker;
            var$3 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9 = var$2.$entityId;
            var$3.$entityId1 = var$9;
            var$3.$animate = 3;
            var$10 = var$8.$trackedEntityIDs;
            var$4 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
            var$11 = var$4 ^ (var$4 >>> 7 | 0) ^ (var$4 >>> 4 | 0);
            var$12 = var$10.$slots.data;
            var$10 = var$12[var$11 & (var$12.length - 1 | 0)];
            b: {
                while (var$10 !== null) {
                    if (var$10.$hashEntry == var$9) {
                        var$10 = var$10.$valueEntry;
                        break b;
                    }
                    var$10 = var$10.$nextEntry0;
                }
                var$10 = null;
            }
            var$10 = var$10;
            if (var$10 !== null) {
                var$8 = var$10.$trackingPlayers.$backingMap;
                if (var$8.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$8;
                    var$8.$cachedKeySet = var$13;
                }
                var$14 = var$8.$cachedKeySet.$iterator();
                var$15 = var$3 instanceof nms_Packet3Chat;
                var$13 = var$3;
                while (var$14.$hasNext()) {
                    c: {
                        var$8 = (var$14.$next()).$playerNetServerHandler;
                        if (var$15) {
                            var$11 = var$8.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break c;
                            if (var$11 == 1 && !var$13.$isServer)
                                break c;
                        }
                        try {
                            var$8 = var$8.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$8 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$8);
                    }
                }
                var$10 = var$10.$myEntity;
                if (var$10 instanceof nms_EntityPlayerMP)
                    d: {
                        var$10 = var$10.$playerNetServerHandler;
                        if (var$15) {
                            var$15 = var$10.$playerEntity.$chatVisibility;
                            if (var$15 == 2)
                                break d;
                            if (var$15 == 1 && !var$13.$isServer)
                                break d;
                        }
                        try {
                            var$10 = var$10.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$3);
                    }
            }
        }
        $ptr = 3;
        continue main;
    case 1:
        var$3.$mountEntity(var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$2.$sleeping;
        if (!var$4) {
            if ($par1Str !== null)
                e: {
                    var$2 = new nms_Packet255KickDisconnect;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$2.$reason = $par1Str;
                    if (var$2 instanceof nms_Packet3Chat) {
                        $par1Str = var$2;
                        var$5 = $this.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break e;
                        if (var$5 == 1 && !$par1Str.$isServer)
                            break e;
                    }
                    try {
                        $par1Str = $this.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Str = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1Str);
                }
            $par1Str = $this.$netManager;
            $ptr = 2;
            continue main;
        }
        var$6 = 1;
        var$5 = 0;
        var$7 = 0;
        if (var$4) {
            var$8 = var$2.$worldObj.$theEntityTracker;
            var$3 = new nms_Packet18Animation;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9 = var$2.$entityId;
            var$3.$entityId1 = var$9;
            var$3.$animate = 3;
            var$10 = var$8.$trackedEntityIDs;
            var$4 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
            var$11 = var$4 ^ (var$4 >>> 7 | 0) ^ (var$4 >>> 4 | 0);
            var$12 = var$10.$slots.data;
            var$10 = var$12[var$11 & (var$12.length - 1 | 0)];
            f: {
                while (var$10 !== null) {
                    if (var$10.$hashEntry == var$9) {
                        var$10 = var$10.$valueEntry;
                        break f;
                    }
                    var$10 = var$10.$nextEntry0;
                }
                var$10 = null;
            }
            var$10 = var$10;
            if (var$10 !== null) {
                var$8 = var$10.$trackingPlayers.$backingMap;
                if (var$8.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$8;
                    var$8.$cachedKeySet = var$13;
                }
                var$14 = var$8.$cachedKeySet.$iterator();
                var$15 = var$3 instanceof nms_Packet3Chat;
                var$13 = var$3;
                while (var$14.$hasNext()) {
                    g: {
                        var$8 = (var$14.$next()).$playerNetServerHandler;
                        if (var$15) {
                            var$11 = var$8.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break g;
                            if (var$11 == 1 && !var$13.$isServer)
                                break g;
                        }
                        try {
                            var$8 = var$8.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$8 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$8);
                    }
                }
                var$10 = var$10.$myEntity;
                if (var$10 instanceof nms_EntityPlayerMP)
                    h: {
                        var$10 = var$10.$playerNetServerHandler;
                        if (var$15) {
                            var$15 = var$10.$playerEntity.$chatVisibility;
                            if (var$15 == 2)
                                break h;
                            if (var$15 == 1 && !var$13.$isServer)
                                break h;
                        }
                        try {
                            var$10 = var$10.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$3);
                    }
            }
        }
        $ptr = 3;
        continue main;
    case 2:
        nles_WorkerNetworkManager_serverShutdown($par1Str);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $this.$mcServer2.$serverConfigManager;
        var$2 = new nms_Packet3Chat;
        nms_EnumChatFormatting_$callClinit();
        $par1Str = nms_EnumChatFormatting_YELLOW;
        $par1Str = $par1Str === null ? $rt_s(1) : $par1Str.$field_96304_B;
        var$8 = $this.$playerEntity.$username;
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        var$6 = var$3.$length0;
        if ($par1Str === null)
            $par1Str = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$3, var$6, $par1Str);
        var$6 = var$3.$length0;
        if (var$8 === null)
            var$8 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$3, var$6, var$8);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2071));
        $par1Str = new jl_String;
        var$12 = var$3.$buffer;
        var$16 = var$12.data;
        var$5 = var$3.$length0;
        var$7 = var$16.length;
        if (var$5 >= 0 && var$5 <= (var$7 - 0 | 0)) {
            $par1Str.$nativeString = $rt_charArrayToString(var$12.data, 0, var$5);
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$isServer = 1;
            var$7 = $par1Str.$nativeString.length;
            var$5 = nms_Packet3Chat_maxChatLength;
            if (var$7 > var$5)
                $par1Str = jl_String_substring($par1Str, 0, var$5);
            var$2.$message1 = $par1Str;
            var$2.$isServer = 1;
            var$7 = 0;
            var$4 = var$2 instanceof nms_Packet3Chat;
            var$3 = var$2;
            while (true) {
                $par1Str = var$10.$playerEntityList;
                var$6 = $rt_compare(var$7, $par1Str.$size0);
                if (var$6 >= 0) {
                    var$2 = $this.$mcServer2.$serverConfigManager;
                    $par1Str = $this.$playerEntity;
                    $ptr = 8;
                    continue main;
                }
                if (var$7 < 0)
                    break;
                if (var$6 >= 0)
                    break;
                i: {
                    var$8 = $par1Str.$array.data[var$7].$playerNetServerHandler;
                    if (var$4) {
                        var$5 = var$8.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break i;
                        if (var$5 == 1 && !var$3.$isServer)
                            break i;
                    }
                    try {
                        $par1Str = var$8.$netManager;
                        $ptr = 9;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Str = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1Str);
                }
                var$7 = var$7 + 1 | 0;
            }
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    case 3:
        nms_EntityPlayer_wakeUpPlayer(var$2, var$6, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$2.$playerNetServerHandler;
        if (var$3 !== null)
            j: {
                var$17 = var$2.$posX;
                var$18 = var$2.$posY;
                var$19 = var$2.$posZ;
                var$20 = var$2.$rotationYaw;
                var$21 = var$2.$rotationPitch;
                var$3.$hasMoved = 0;
                var$3.$lastPosX = var$17;
                var$3.$lastPosY = var$18;
                var$3.$lastPosZ = var$19;
                nms_Entity_setPositionAndRotation(var$3.$playerEntity, var$17, var$18, var$19, var$20, var$21);
                var$2 = var$3.$playerEntity.$playerNetServerHandler;
                var$3 = new nms_Packet13PlayerLookMove;
                var$22 = var$18 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3.$xPosition = var$17;
                var$3.$yPosition = var$22;
                var$3.$stance = var$18;
                var$3.$zPosition = var$19;
                var$3.$yaw = var$20;
                var$3.$pitch = var$21;
                var$3.$onGround0 = 0;
                var$3.$rotating = 1;
                var$3.$moving = 1;
                if (var$3 instanceof nms_Packet3Chat) {
                    var$10 = var$3;
                    var$5 = var$2.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break j;
                    if (var$5 == 1 && !var$10.$isServer)
                        break j;
                }
                try {
                    var$2 = var$2.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0(var$2);
            }
        if ($par1Str !== null)
            k: {
                var$2 = new nms_Packet255KickDisconnect;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$reason = $par1Str;
                if (var$2 instanceof nms_Packet3Chat) {
                    $par1Str = var$2;
                    var$5 = $this.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break k;
                    if (var$5 == 1 && !$par1Str.$isServer)
                        break k;
                }
                try {
                    $par1Str = $this.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Str = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($par1Str);
            }
        $par1Str = $this.$netManager;
        $ptr = 2;
        continue main;
    case 4:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Str, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Str = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1Str);
        }
        $par1Str = $this.$netManager;
        $ptr = 2;
        continue main;
    case 5:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$2);
        }
        if ($par1Str !== null)
            m: {
                var$2 = new nms_Packet255KickDisconnect;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$reason = $par1Str;
                if (var$2 instanceof nms_Packet3Chat) {
                    $par1Str = var$2;
                    var$5 = $this.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break m;
                    if (var$5 == 1 && !$par1Str.$isServer)
                        break m;
                }
                try {
                    $par1Str = $this.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Str = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($par1Str);
            }
        $par1Str = $this.$netManager;
        $ptr = 2;
        continue main;
    case 6:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$8);
        }
        e: while (true) {
            while (true) {
                if (!var$14.$hasNext())
                    break e;
                var$8 = (var$14.$next()).$playerNetServerHandler;
                if (!var$15)
                    break;
                var$11 = var$8.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$13.$isServer)
                    break;
            }
            try {
                var$8 = var$8.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$8);
        }
        var$10 = var$10.$myEntity;
        if (var$10 instanceof nms_EntityPlayerMP)
            b: {
                var$10 = var$10.$playerNetServerHandler;
                if (var$15) {
                    var$15 = var$10.$playerEntity.$chatVisibility;
                    if (var$15 == 2)
                        break b;
                    if (var$15 == 1 && !var$13.$isServer)
                        break b;
                }
                try {
                    var$10 = var$10.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0(var$3);
            }
        $ptr = 3;
        continue main;
    case 7:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$10, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$3);
        }
        $ptr = 3;
        continue main;
    case 8:
        nms_ServerConfigurationManager_playerLoggedOut(var$2, $par1Str);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Str, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Str = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1Str);
        }
        m: while (true) {
            while (true) {
                var$7 = var$7 + 1 | 0;
                $par1Str = var$10.$playerEntityList;
                var$6 = $rt_compare(var$7, $par1Str.$size0);
                if (var$6 >= 0) {
                    var$2 = $this.$mcServer2.$serverConfigManager;
                    $par1Str = $this.$playerEntity;
                    $ptr = 8;
                    continue main;
                }
                if (var$7 < 0)
                    break m;
                if (var$6 >= 0)
                    break m;
                var$8 = $par1Str.$array.data[var$7].$playerNetServerHandler;
                if (!var$4)
                    break;
                var$5 = var$8.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    continue;
                if (var$5 != 1)
                    break;
                if (var$3.$isServer)
                    break;
            }
            try {
                $par1Str = var$8.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Str = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1Str);
        }
        $par1Str = new jl_IndexOutOfBoundsException;
        $par1Str.$suppressionEnabled = 1;
        $par1Str.$writableStackTrace = 1;
        $rt_throw($par1Str);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_NetServerHandler_func_110774_a = ($this, $par1Packet27PlayerInput) => {
    nms_EntityPlayerMP_setEntityActionState($this.$playerEntity, $par1Packet27PlayerInput.$field_111017_a, $par1Packet27PlayerInput.$field_111015_b, $par1Packet27PlayerInput.$field_111016_c, $par1Packet27PlayerInput.$field_111014_d);
},
nms_NetServerHandler_handleFlying = ($this, $par1Packet10Flying) => {
    let $var33, var$3, $var31, $var2, $var3, $var34, $var4, $var5, $var7, $var9, $var32, $var9_0, $var11, $var12, var$16, $var13, $var15, var$19, var$20, var$21, var$22, var$23, $var17, $var19, $var21, $var23, var$28, $var25, var$30, $var28, var$32, var$33, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();$var28 = $thread.pop();var$30 = $thread.pop();$var25 = $thread.pop();var$28 = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();var$16 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var9_0 = $thread.pop();$var32
        = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var34 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var31 = $thread.pop();var$3 = $thread.pop();$var33 = $thread.pop();$par1Packet10Flying = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var33 = $this.$mcServer2;
        var$3 = $this.$playerEntity;
        $var31 = var$3.$dimension;
        $var2 = $var31 == (-1) ? $var33.$worldServers.data[1] : $var31 != 1 ? $var33.$worldServers.data[0] : $var33.$worldServers.data[2];
        $this.$field_72584_h = 1;
        if (!var$3.$playerConqueredTheEnd) {
            if (!$this.$hasMoved) {
                $var3 = $par1Packet10Flying.$yPosition - $this.$lastPosY;
                if ($par1Packet10Flying.$xPosition === $this.$lastPosX && $var3 * $var3 < 0.01 && $par1Packet10Flying.$zPosition === $this.$lastPosZ)
                    $this.$hasMoved = 1;
            }
            if ($this.$hasMoved) {
                $var33 = var$3.$ridingEntity;
                if ($var33 !== null) {
                    $var34 = var$3.$rotationYaw;
                    $var4 = var$3.$rotationPitch;
                    $var33.$updateRiderPosition();
                    $var33 = $this.$playerEntity;
                    $var5 = $var33.$posX;
                    $var7 = $var33.$posY;
                    $var9 = $var33.$posZ;
                    if ($par1Packet10Flying.$rotating) {
                        $var34 = $par1Packet10Flying.$yaw;
                        $var4 = $par1Packet10Flying.$pitch;
                    }
                    $var33.$onGround = $par1Packet10Flying.$onGround0;
                    $ptr = 3;
                    continue main;
                }
                $var32 = var$3.$sleeping;
                if ($var32) {
                    $ptr = 2;
                    continue main;
                }
                $var7 = var$3.$posY;
                $var5 = var$3.$posX;
                $this.$lastPosX = $var5;
                $this.$lastPosY = $var7;
                $var9_0 = var$3.$posZ;
                $this.$lastPosZ = $var9_0;
                $var11 = var$3.$rotationYaw;
                $var12 = var$3.$rotationPitch;
                if ($par1Packet10Flying.$moving && $par1Packet10Flying.$yPosition === (-999.0) && $par1Packet10Flying.$stance === (-999.0))
                    $par1Packet10Flying.$moving = 0;
                a: {
                    b: {
                        if (!$par1Packet10Flying.$moving)
                            var$16 = $var7;
                        else {
                            $var5 = $par1Packet10Flying.$xPosition;
                            var$16 = $par1Packet10Flying.$yPosition;
                            $var9_0 = $par1Packet10Flying.$zPosition;
                            $var13 = $par1Packet10Flying.$stance - var$16;
                            if (!$var32) {
                                if ($var13 > 1.65)
                                    break a;
                                if ($var13 < 0.1)
                                    break a;
                            }
                            if (jl_Math_absImpl($var5) > 3.2E7)
                                break b;
                            if (jl_Math_absImpl($par1Packet10Flying.$zPosition) > 3.2E7)
                                break b;
                        }
                        if ($par1Packet10Flying.$rotating) {
                            $var11 = $par1Packet10Flying.$yaw;
                            $var12 = $par1Packet10Flying.$pitch;
                        }
                        $var33 = $this.$playerEntity;
                        $ptr = 12;
                        continue main;
                    }
                    $par1Packet10Flying = $rt_s(2072);
                    $ptr = 9;
                    continue main;
                }
                $par1Packet10Flying = $rt_s(2073);
                $ptr = 10;
                continue main;
            }
            if (!($this.$currentTicks % 20 | 0))
                c: {
                    $var7 = $this.$lastPosX;
                    $var5 = $this.$lastPosY;
                    $var13 = $this.$lastPosZ;
                    $var34 = var$3.$rotationYaw;
                    $var11 = var$3.$rotationPitch;
                    $this.$hasMoved = 0;
                    $this.$lastPosX = $var7;
                    $this.$lastPosY = $var5;
                    $this.$lastPosZ = $var13;
                    nms_Entity_setPositionAndRotation(var$3, $var7, $var5, $var13, $var34, $var11);
                    $par1Packet10Flying = $this.$playerEntity.$playerNetServerHandler;
                    $var33 = new nms_Packet13PlayerLookMove;
                    $var15 = $var5 + 1.6200000047683716;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var33.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var33.$xPosition = $var7;
                    $var33.$yPosition = $var15;
                    $var33.$stance = $var5;
                    $var33.$zPosition = $var13;
                    $var33.$yaw = $var34;
                    $var33.$pitch = $var11;
                    $var33.$onGround0 = 0;
                    $var33.$rotating = 1;
                    $var33.$moving = 1;
                    if ($var33 instanceof nms_Packet3Chat) {
                        var$3 = $var33;
                        $var32 = $par1Packet10Flying.$playerEntity.$chatVisibility;
                        if ($var32 == 2)
                            break c;
                        if ($var32 == 1 && !var$3.$isServer)
                            break c;
                    }
                    try {
                        $par1Packet10Flying = $par1Packet10Flying.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Packet10Flying = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var33 = new otcic_JSStderrPrintStream;
                        var$3 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$3);
                        var$3.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var33, var$3);
                        $var33.$sb = jl_StringBuilder__init_();
                        $var33.$buffer0 = $rt_createCharArray(32);
                        $var33.$autoFlush = 0;
                        $var33.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var33;
                    }
                    jl_Throwable_printStackTrace($par1Packet10Flying, jl_System_errCache);
                }
        }
        return;
    case 1:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet10Flying, $var33);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet10Flying = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var33 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var33, var$3);
                $var33.$sb = jl_StringBuilder__init_();
                $var33.$buffer0 = $rt_createCharArray(32);
                $var33.$autoFlush = 0;
                $var33.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var33;
            }
            jl_Throwable_printStackTrace($par1Packet10Flying, jl_System_errCache);
        }
        return;
    case 2:
        d: {
            nms_EntityPlayerMP_onUpdateEntity(var$3);
            if ($rt_suspending()) {
                break main;
            }
            $par1Packet10Flying = $this.$playerEntity;
            nms_Entity_setPositionAndRotation($par1Packet10Flying, $this.$lastPosX, $this.$lastPosY, $this.$lastPosZ, $par1Packet10Flying.$rotationYaw, $par1Packet10Flying.$rotationPitch);
            $par1Packet10Flying = $this.$playerEntity;
            $var31 = 1;
            if (!$var2.$mcServer0.$canSpawnAnimals) {
                if ($par1Packet10Flying instanceof nms_EntityAnimal)
                    break d;
                if ($par1Packet10Flying instanceof nms_EntityWaterMob)
                    break d;
            }
            if (!$var2.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Packet10Flying, nms_INpc)) {
                $par1Packet10Flying.$isDead = 1;
                $var33 = $par1Packet10Flying.$inventoryContainer;
                $ptr = 7;
                continue main;
            }
            $ptr = 4;
            continue main;
        }
        $par1Packet10Flying.$isDead = 1;
        $var33 = $par1Packet10Flying.$inventoryContainer;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityPlayerMP_onUpdateEntity($var33);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet10Flying = $this.$playerEntity;
        $par1Packet10Flying.$ySize = 0.0;
        nms_Entity_setPositionAndRotation($par1Packet10Flying, $var5, $var7, $var9, $var34, $var4);
        $par1Packet10Flying = $this.$playerEntity.$ridingEntity;
        if ($par1Packet10Flying !== null)
            $par1Packet10Flying.$updateRiderPosition();
        $par1Packet10Flying = $this.$playerEntity;
        $var33 = $par1Packet10Flying.$worldObj.$thePlayerManager0;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_updateEntityWithOptionalForce($var2, $par1Packet10Flying, $var31);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_ContainerPlayer_onContainerClosed($var33, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $par1Packet10Flying.$openContainer;
        if ($var33 !== null) {
            $ptr = 8;
            continue main;
        }
        if (!$var2.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Packet10Flying, nms_INpc)) {
            $par1Packet10Flying.$isDead = 1;
            $var33 = $par1Packet10Flying.$inventoryContainer;
            $ptr = 7;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 6:
        nms_PlayerManager_updateMountedMovingPlayer($var33, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$hasMoved) {
            $par1Packet10Flying = $this.$playerEntity;
            $this.$lastPosX = $par1Packet10Flying.$posX;
            $this.$lastPosY = $par1Packet10Flying.$posY;
            $this.$lastPosZ = $par1Packet10Flying.$posZ;
        }
        e: {
            $par1Packet10Flying = $this.$playerEntity;
            $var31 = 1;
            if (!$var2.$mcServer0.$canSpawnAnimals) {
                if ($par1Packet10Flying instanceof nms_EntityAnimal)
                    break e;
                if ($par1Packet10Flying instanceof nms_EntityWaterMob)
                    break e;
            }
            if (!$var2.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Packet10Flying, nms_INpc)) {
                $par1Packet10Flying.$isDead = 1;
                $var33 = $par1Packet10Flying.$inventoryContainer;
                $ptr = 15;
                continue main;
            }
            $ptr = 13;
            continue main;
        }
        $par1Packet10Flying.$isDead = 1;
        $var33 = $par1Packet10Flying.$inventoryContainer;
        $ptr = 14;
        continue main;
    case 7:
        nms_ContainerPlayer_onContainerClosed($var33, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $par1Packet10Flying.$openContainer;
        if ($var33 !== null) {
            $ptr = 11;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 8:
        $var33.$onContainerClosed($par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var2.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Packet10Flying, nms_INpc)) {
            $par1Packet10Flying.$isDead = 1;
            $var33 = $par1Packet10Flying.$inventoryContainer;
            $ptr = 7;
            continue main;
        }
        $ptr = 4;
        continue main;
    case 9:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        nles_IntegratedServer_$callClinit();
        var$3 = nles_IntegratedServer_logger;
        $var33 = $this.$playerEntity.$username;
        $par1Packet10Flying = new jl_StringBuilder;
        $par1Packet10Flying.$buffer = $rt_createCharArray(16);
        $var31 = $par1Packet10Flying.$length0;
        if ($var33 === null)
            $var33 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par1Packet10Flying, $var31, $var33);
        jl_AbstractStringBuilder_insert($par1Packet10Flying, $par1Packet10Flying.$length0, $rt_s(2074));
        jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var13);
        $var33 = new jl_String;
        var$19 = $par1Packet10Flying.$buffer;
        var$20 = var$19.data;
        $var32 = $par1Packet10Flying.$length0;
        var$21 = var$20.length;
        if ($var32 >= 0 && $var32 <= (var$21 - 0 | 0)) {
            $var33.$nativeString = $rt_charArrayToString(var$19.data, 0, $var32);
            var$3 = var$3.$logger;
            $par1Packet10Flying = jul_Level_WARNING;
            var$22 = new jul_LogRecord;
            var$22.$level = $par1Packet10Flying;
            var$22.$message0 = $var33;
            var$22.$millis = jl_System_currentTimeMillis();
            var$23 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$23, Long_fromInt(1));
            var$22.$sequenceNumber = var$23;
            var$22.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$3, var$22);
            return;
        }
        $par1Packet10Flying = new jl_IndexOutOfBoundsException;
        $par1Packet10Flying.$suppressionEnabled = 1;
        $par1Packet10Flying.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Packet10Flying);
        $rt_throw($par1Packet10Flying);
    case 11:
        $var33.$onContainerClosed($par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
        continue main;
    case 12:
        nms_EntityPlayerMP_onUpdateEntity($var33);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $this.$playerEntity;
        $var33.$ySize = 0.0;
        nms_Entity_setPositionAndRotation($var33, $this.$lastPosX, $this.$lastPosY, $this.$lastPosZ, $var11, $var12);
        if (!$this.$hasMoved)
            return;
        e: {
            $var33 = $this.$playerEntity;
            $var13 = $var5 - $var33.$posX;
            $var15 = var$16 - $var33.$posY;
            $var17 = $var9_0 - $var33.$posZ;
            $var19 = jl_Math_minImpl0(jl_Math_absImpl($var13), jl_Math_absImpl($this.$playerEntity.$motionX));
            $var21 = jl_Math_minImpl0(jl_Math_absImpl($var15), jl_Math_absImpl($this.$playerEntity.$motionY));
            $var23 = jl_Math_minImpl0(jl_Math_absImpl($var17), jl_Math_absImpl($this.$playerEntity.$motionZ));
            if ($var19 * $var19 + $var21 * $var21 + $var23 * $var23 > 100.0) {
                var$3 = $this.$mcServer2.$serverOwner;
                if (var$3 === null ? 0 : 1) {
                    $var33 = $this.$playerEntity.$username;
                    if (var$3 === $var33)
                        $var31 = 1;
                    else if (!($var33 instanceof jl_String))
                        $var31 = 0;
                    else {
                        $var33 = $var33;
                        $var31 = var$3.$nativeString !== $var33.$nativeString ? 0 : 1;
                    }
                    if ($var31)
                        break e;
                }
                nles_IntegratedServer_$callClinit();
                var$3 = nles_IntegratedServer_logger;
                $var33 = $this.$playerEntity.$username;
                $par1Packet10Flying = new jl_StringBuilder;
                $par1Packet10Flying.$buffer = $rt_createCharArray(16);
                $var31 = $par1Packet10Flying.$length0;
                if ($var33 === null)
                    $var33 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $var31, $var33);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $par1Packet10Flying.$length0, $rt_s(2075));
                jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var13);
                $var32 = $par1Packet10Flying.$length0;
                jl_AbstractStringBuilder_insertSpace($par1Packet10Flying, $var32, $var32 + 1 | 0);
                $par1Packet10Flying.$buffer.data[$var32] = 44;
                jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var15);
                $var32 = $par1Packet10Flying.$length0;
                jl_AbstractStringBuilder_insertSpace($par1Packet10Flying, $var32, $var32 + 1 | 0);
                $par1Packet10Flying.$buffer.data[$var32] = 44;
                jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var17);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $par1Packet10Flying.$length0, $rt_s(2076));
                jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var19);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $par1Packet10Flying.$length0, $rt_s(118));
                jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var21);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $par1Packet10Flying.$length0, $rt_s(118));
                jl_AbstractStringBuilder_insert2($par1Packet10Flying, $par1Packet10Flying.$length0, $var23);
                $var32 = $par1Packet10Flying.$length0;
                jl_AbstractStringBuilder_insertSpace($par1Packet10Flying, $var32, $var32 + 1 | 0);
                var$19 = $par1Packet10Flying.$buffer;
                var$20 = var$19.data;
                var$20[$var32] = 41;
                $var33 = new jl_String;
                $var32 = $par1Packet10Flying.$length0;
                var$21 = var$20.length;
                if ($var32 >= 0 && $var32 <= (var$21 - 0 | 0)) {
                    f: {
                        $var33.$nativeString = $rt_charArrayToString(var$19.data, 0, $var32);
                        var$3 = var$3.$logger;
                        $par1Packet10Flying = jul_Level_WARNING;
                        var$22 = new jul_LogRecord;
                        var$22.$level = $par1Packet10Flying;
                        var$22.$message0 = $var33;
                        var$22.$millis = jl_System_currentTimeMillis();
                        var$23 = jul_LogRecord_sequenceNumberGenerator;
                        jul_LogRecord_sequenceNumberGenerator = Long_add(var$23, Long_fromInt(1));
                        var$22.$sequenceNumber = var$23;
                        var$22.$threadID = jl_Thread_currentThread.$id2;
                        jul_Logger_log(var$3, var$22);
                        $var7 = $this.$lastPosX;
                        $var5 = $this.$lastPosY;
                        $var13 = $this.$lastPosZ;
                        $par1Packet10Flying = $this.$playerEntity;
                        $var34 = $par1Packet10Flying.$rotationYaw;
                        $var11 = $par1Packet10Flying.$rotationPitch;
                        $this.$hasMoved = 0;
                        $this.$lastPosX = $var7;
                        $this.$lastPosY = $var5;
                        $this.$lastPosZ = $var13;
                        nms_Entity_setPositionAndRotation($par1Packet10Flying, $var7, $var5, $var13, $var34, $var11);
                        $par1Packet10Flying = $this.$playerEntity.$playerNetServerHandler;
                        $var33 = new nms_Packet13PlayerLookMove;
                        $var15 = $var5 + 1.6200000047683716;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var33.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var33.$xPosition = $var7;
                        $var33.$yPosition = $var15;
                        $var33.$stance = $var5;
                        $var33.$zPosition = $var13;
                        $var33.$yaw = $var34;
                        $var33.$pitch = $var11;
                        $var33.$onGround0 = 0;
                        $var33.$rotating = 1;
                        $var33.$moving = 1;
                        if ($var33 instanceof nms_Packet3Chat) {
                            var$3 = $var33;
                            $var32 = $par1Packet10Flying.$playerEntity.$chatVisibility;
                            if ($var32 == 2)
                                break f;
                            if ($var32 == 1 && !var$3.$isServer)
                                break f;
                        }
                        try {
                            $par1Packet10Flying = $par1Packet10Flying.$netManager;
                            $ptr = 21;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Packet10Flying = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var33 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var33, var$3);
                            $var33.$sb = jl_StringBuilder__init_();
                            $var33.$buffer0 = $rt_createCharArray(32);
                            $var33.$autoFlush = 0;
                            $var33.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var33;
                        }
                        jl_Throwable_printStackTrace($par1Packet10Flying, jl_System_errCache);
                    }
                    return;
                }
                $par1Packet10Flying = new jl_IndexOutOfBoundsException;
                $par1Packet10Flying.$suppressionEnabled = 1;
                $par1Packet10Flying.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet10Flying);
                $rt_throw($par1Packet10Flying);
            }
        }
        $var33 = $this.$playerEntity;
        var$3 = $var33.$boundingBox0;
        var$28 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var25 = var$3.$minX0;
        $var9 = var$3.$minY0;
        $var23 = var$3.$minZ0;
        $var21 = var$3.$maxX0;
        $var19 = var$3.$maxY;
        $var3 = var$3.$maxZ0;
        $var31 = var$28.$nextPoolIndex;
        var$3 = var$28.$listAABB;
        var$21 = var$3.$size0;
        $var32 = $rt_compare($var31, var$21);
        if ($var32 >= 0) {
            var$22 = new nms_AxisAlignedBB;
            var$22.$minX0 = $var25;
            var$22.$minY0 = $var9;
            var$22.$minZ0 = $var23;
            var$22.$maxX0 = $var21;
            var$22.$maxY = $var19;
            var$22.$maxZ0 = $var3;
            ju_ArrayList_ensureCapacity(var$3, var$21 + 1 | 0);
            var$19 = var$3.$array.data;
            $var32 = var$3.$size0;
            var$3.$size0 = $var32 + 1 | 0;
            var$19[$var32] = var$22;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        } else if ($var31 >= 0 && $var32 < 0) {
            var$22 = var$3.$array.data[$var31];
            var$22.$minX0 = $var25;
            var$22.$minY0 = $var9;
            var$22.$minZ0 = $var23;
            var$22.$maxX0 = $var21;
            var$22.$maxY = $var19;
            var$22.$maxZ0 = $var3;
        } else {
            $par1Packet10Flying = new jl_IndexOutOfBoundsException;
            $par1Packet10Flying.$suppressionEnabled = 1;
            $par1Packet10Flying.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet10Flying);
            $rt_throw($par1Packet10Flying);
        }
        var$28.$nextPoolIndex = var$28.$nextPoolIndex + 1 | 0;
        $var25 = 0.0625;
        $var9 = var$22.$minX0 + $var25;
        $var23 = var$22.$minY0 + $var25;
        $var21 = var$22.$minZ0 + $var25;
        $var19 = var$22.$maxX0 - $var25;
        $var3 = var$22.$maxY - $var25;
        var$30 = var$22.$maxZ0 - $var25;
        var$28 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var31 = var$28.$nextPoolIndex;
        var$3 = var$28.$listAABB;
        var$21 = var$3.$size0;
        $var32 = $rt_compare($var31, var$21);
        if ($var32 >= 0) {
            var$22 = new nms_AxisAlignedBB;
            var$22.$minX0 = $var9;
            var$22.$minY0 = $var23;
            var$22.$minZ0 = $var21;
            var$22.$maxX0 = $var19;
            var$22.$maxY = $var3;
            var$22.$maxZ0 = var$30;
            ju_ArrayList_ensureCapacity(var$3, var$21 + 1 | 0);
            var$19 = var$3.$array.data;
            $var32 = var$3.$size0;
            var$3.$size0 = $var32 + 1 | 0;
            var$19[$var32] = var$22;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        } else if ($var31 >= 0 && $var32 < 0) {
            var$22 = var$3.$array.data[$var31];
            var$22.$minX0 = $var9;
            var$22.$minY0 = $var23;
            var$22.$minZ0 = $var21;
            var$22.$maxX0 = $var19;
            var$22.$maxY = $var3;
            var$22.$maxZ0 = var$30;
        } else {
            $par1Packet10Flying = new jl_IndexOutOfBoundsException;
            $par1Packet10Flying.$suppressionEnabled = 1;
            $par1Packet10Flying.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet10Flying);
            $rt_throw($par1Packet10Flying);
        }
        var$28.$nextPoolIndex = var$28.$nextPoolIndex + 1 | 0;
        $ptr = 18;
        continue main;
    case 13:
        nms_World_updateEntityWithOptionalForce($var2, $par1Packet10Flying, $var31);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 14:
        nms_ContainerPlayer_onContainerClosed($var33, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $par1Packet10Flying.$openContainer;
        if ($var33 !== null) {
            $ptr = 16;
            continue main;
        }
        if (!$var2.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Packet10Flying, nms_INpc)) {
            $par1Packet10Flying.$isDead = 1;
            $var33 = $par1Packet10Flying.$inventoryContainer;
            $ptr = 15;
            continue main;
        }
        $ptr = 13;
        continue main;
    case 15:
        nms_ContainerPlayer_onContainerClosed($var33, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $par1Packet10Flying.$openContainer;
        if ($var33 !== null) {
            $ptr = 17;
            continue main;
        }
        $ptr = 13;
        continue main;
    case 16:
        $var33.$onContainerClosed($par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var2.$mcServer0.$canSpawnNPCs && $rt_isInstance($par1Packet10Flying, nms_INpc)) {
            $par1Packet10Flying.$isDead = 1;
            $var33 = $par1Packet10Flying.$inventoryContainer;
            $ptr = 15;
            continue main;
        }
        $ptr = 13;
        continue main;
    case 17:
        $var33.$onContainerClosed($par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 13;
        continue main;
    case 18:
        $tmp = nms_World_getCollidingBoundingBoxes($var2, $var33, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $tmp;
        $var28 = $var33.$size0 ? 0 : 1;
        $var33 = $this.$playerEntity;
        if ($var33.$onGround && !$par1Packet10Flying.$onGround0 && $var15 > 0.0 && !$var33.$capabilities.$disableDamage && !$var33.$worldObj.$isRemote) {
            $var33 = $var33.$foodStats;
            $var33.$foodExhaustionLevel = jl_Math_minImpl($var33.$foodExhaustionLevel + 0.20000000298023224, 40.0);
        }
        $var33 = $this.$playerEntity;
        $ptr = 19;
    case 19:
        nms_Entity_moveEntity($var33, $var13, $var15, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $this.$playerEntity;
        $var33.$onGround = $par1Packet10Flying.$onGround0;
        $ptr = 20;
    case 20:
        nms_EntityPlayer_addMovementStat($var33, $var13, $var15, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $this.$playerEntity;
        $var13 = $var5 - $var33.$posX;
        $var17 = var$16 - $var33.$posY;
        if (!($var17 <= (-0.5) && $var17 >= 0.5))
            $var17 = 0.0;
        $var9 = $var9_0 - $var33.$posZ;
        $var13 = $var13 * $var13 + $var17 * $var17 + $var9 * $var9;
        $var31 = 0;
        if ($var13 > 0.0625 && !$var33.$sleeping && !($var33.$theItemInWorldManager.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
            $var31 = 1;
            nles_IntegratedServer_$callClinit();
            var$3 = nles_IntegratedServer_logger;
            $var33 = $var33.$username;
            var$22 = new jl_StringBuilder;
            var$22.$buffer = $rt_createCharArray(16);
            $var32 = var$22.$length0;
            if ($var33 === null)
                $var33 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$22, $var32, $var33);
            jl_AbstractStringBuilder_insert(var$22, var$22.$length0, $rt_s(2077));
            $var33 = new jl_String;
            var$19 = var$22.$buffer;
            var$20 = var$19.data;
            var$21 = var$22.$length0;
            var$32 = var$20.length;
            if (var$21 >= 0 && var$21 <= (var$32 - 0 | 0)) {
                $var33.$nativeString = $rt_charArrayToString(var$19.data, 0, var$21);
                var$22 = var$3.$logger;
                var$3 = jul_Level_WARNING;
                var$28 = new jul_LogRecord;
                var$28.$level = var$3;
                var$28.$message0 = $var33;
                var$28.$millis = jl_System_currentTimeMillis();
                var$33 = jul_LogRecord_sequenceNumberGenerator;
                jul_LogRecord_sequenceNumberGenerator = Long_add(var$33, Long_fromInt(1));
                var$28.$sequenceNumber = var$33;
                var$28.$threadID = jl_Thread_currentThread.$id2;
                jul_Logger_log(var$22, var$28);
            } else {
                $par1Packet10Flying = new jl_IndexOutOfBoundsException;
                $par1Packet10Flying.$suppressionEnabled = 1;
                $par1Packet10Flying.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet10Flying);
                $rt_throw($par1Packet10Flying);
            }
        }
        nms_Entity_setPositionAndRotation($this.$playerEntity, $var5, var$16, $var9_0, $var11, $var12);
        var$28 = $this.$playerEntity;
        var$3 = var$28.$boundingBox0;
        var$22 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var5 = var$3.$minX0;
        $var13 = var$3.$minY0;
        $var17 = var$3.$minZ0;
        $var9 = var$3.$maxX0;
        $var9_0 = var$3.$maxY;
        $var23 = var$3.$maxZ0;
        $var32 = var$22.$nextPoolIndex;
        $var33 = var$22.$listAABB;
        var$32 = $var33.$size0;
        var$21 = $rt_compare($var32, var$32);
        if (var$21 >= 0) {
            var$3 = new nms_AxisAlignedBB;
            var$3.$minX0 = $var5;
            var$3.$minY0 = $var13;
            var$3.$minZ0 = $var17;
            var$3.$maxX0 = $var9;
            var$3.$maxY = $var9_0;
            var$3.$maxZ0 = $var23;
            ju_ArrayList_ensureCapacity($var33, var$32 + 1 | 0);
            var$19 = $var33.$array.data;
            var$21 = $var33.$size0;
            $var33.$size0 = var$21 + 1 | 0;
            var$19[var$21] = var$3;
            $var33.$modCount = $var33.$modCount + 1 | 0;
        } else if ($var32 >= 0 && var$21 < 0) {
            var$3 = $var33.$array.data[$var32];
            var$3.$minX0 = $var5;
            var$3.$minY0 = $var13;
            var$3.$minZ0 = $var17;
            var$3.$maxX0 = $var9;
            var$3.$maxY = $var9_0;
            var$3.$maxZ0 = $var23;
        } else {
            $par1Packet10Flying = new jl_IndexOutOfBoundsException;
            $par1Packet10Flying.$suppressionEnabled = 1;
            $par1Packet10Flying.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet10Flying);
            $rt_throw($par1Packet10Flying);
        }
        var$22.$nextPoolIndex = var$22.$nextPoolIndex + 1 | 0;
        $var5 = var$3.$minX0 + $var25;
        $var13 = var$3.$minY0 + $var25;
        $var17 = var$3.$minZ0 + $var25;
        $var9 = var$3.$maxX0 - $var25;
        $var9_0 = var$3.$maxY - $var25;
        $var23 = var$3.$maxZ0 - $var25;
        var$22 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var32 = var$22.$nextPoolIndex;
        $var33 = var$22.$listAABB;
        var$32 = $var33.$size0;
        var$21 = $rt_compare($var32, var$32);
        if (var$21 >= 0) {
            var$3 = new nms_AxisAlignedBB;
            var$3.$minX0 = $var5;
            var$3.$minY0 = $var13;
            var$3.$minZ0 = $var17;
            var$3.$maxX0 = $var9;
            var$3.$maxY = $var9_0;
            var$3.$maxZ0 = $var23;
            ju_ArrayList_ensureCapacity($var33, var$32 + 1 | 0);
            var$19 = $var33.$array.data;
            var$21 = $var33.$size0;
            $var33.$size0 = var$21 + 1 | 0;
            var$19[var$21] = var$3;
            $var33.$modCount = $var33.$modCount + 1 | 0;
        } else if ($var32 >= 0 && var$21 < 0) {
            var$3 = $var33.$array.data[$var32];
            var$3.$minX0 = $var5;
            var$3.$minY0 = $var13;
            var$3.$minZ0 = $var17;
            var$3.$maxX0 = $var9;
            var$3.$maxY = $var9_0;
            var$3.$maxZ0 = $var23;
        } else {
            $par1Packet10Flying = new jl_IndexOutOfBoundsException;
            $par1Packet10Flying.$suppressionEnabled = 1;
            $par1Packet10Flying.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet10Flying);
            $rt_throw($par1Packet10Flying);
        }
        var$22.$nextPoolIndex = var$22.$nextPoolIndex + 1 | 0;
        $ptr = 22;
        continue main;
    case 21:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet10Flying, $var33);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet10Flying = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var33 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var33, var$3);
                $var33.$sb = jl_StringBuilder__init_();
                $var33.$buffer0 = $rt_createCharArray(32);
                $var33.$autoFlush = 0;
                $var33.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var33;
            }
            jl_Throwable_printStackTrace($par1Packet10Flying, jl_System_errCache);
        }
        return;
    case 22:
        $tmp = nms_World_getCollidingBoundingBoxes($var2, var$28, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $tmp;
        $var32 = $var33.$size0 ? 0 : 1;
        if ($var28 && !(!$var31 && $var32)) {
            $var33 = $this.$playerEntity;
            if (!$var33.$sleeping) {
                g: {
                    $var7 = $this.$lastPosX;
                    $var5 = $this.$lastPosY;
                    $var13 = $this.$lastPosZ;
                    $this.$hasMoved = 0;
                    $this.$lastPosX = $var7;
                    $this.$lastPosY = $var5;
                    $this.$lastPosZ = $var13;
                    nms_Entity_setPositionAndRotation($var33, $var7, $var5, $var13, $var11, $var12);
                    $par1Packet10Flying = $this.$playerEntity.$playerNetServerHandler;
                    $var33 = new nms_Packet13PlayerLookMove;
                    $var15 = $var5 + 1.6200000047683716;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var33.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var33.$xPosition = $var7;
                    $var33.$yPosition = $var15;
                    $var33.$stance = $var5;
                    $var33.$zPosition = $var13;
                    $var33.$yaw = $var11;
                    $var33.$pitch = $var12;
                    $var33.$onGround0 = 0;
                    $var33.$rotating = 1;
                    $var33.$moving = 1;
                    if ($var33 instanceof nms_Packet3Chat) {
                        var$3 = $var33;
                        $var32 = $par1Packet10Flying.$playerEntity.$chatVisibility;
                        if ($var32 == 2)
                            break g;
                        if ($var32 == 1 && !var$3.$isServer)
                            break g;
                    }
                    try {
                        $par1Packet10Flying = $par1Packet10Flying.$netManager;
                        $ptr = 23;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Packet10Flying = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var33 = new otcic_JSStderrPrintStream;
                        var$3 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$3);
                        var$3.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var33, var$3);
                        $var33.$sb = jl_StringBuilder__init_();
                        $var33.$buffer0 = $rt_createCharArray(32);
                        $var33.$autoFlush = 0;
                        $var33.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var33;
                    }
                    jl_Throwable_printStackTrace($par1Packet10Flying, jl_System_errCache);
                }
                return;
            }
        }
        $var33 = $this.$playerEntity.$boundingBox0;
        var$3 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var5 = $var33.$minX0;
        $var13 = $var33.$minY0;
        $var17 = $var33.$minZ0;
        $var9 = $var33.$maxX0;
        $var9_0 = $var33.$maxY;
        $var23 = $var33.$maxZ0;
        $var31 = var$3.$nextPoolIndex;
        $var33 = var$3.$listAABB;
        var$21 = $var33.$size0;
        $var32 = $rt_compare($var31, var$21);
        if ($var32 >= 0) {
            var$22 = new nms_AxisAlignedBB;
            var$22.$minX0 = $var5;
            var$22.$minY0 = $var13;
            var$22.$minZ0 = $var17;
            var$22.$maxX0 = $var9;
            var$22.$maxY = $var9_0;
            var$22.$maxZ0 = $var23;
            ju_ArrayList_ensureCapacity($var33, var$21 + 1 | 0);
            var$19 = $var33.$array.data;
            $var32 = $var33.$size0;
            $var33.$size0 = $var32 + 1 | 0;
            var$19[$var32] = var$22;
            $var33.$modCount = $var33.$modCount + 1 | 0;
        } else if ($var31 >= 0 && $var32 < 0) {
            var$22 = $var33.$array.data[$var31];
            var$22.$minX0 = $var5;
            var$22.$minY0 = $var13;
            var$22.$minZ0 = $var17;
            var$22.$maxX0 = $var9;
            var$22.$maxY = $var9_0;
            var$22.$maxZ0 = $var23;
        } else {
            $par1Packet10Flying = new jl_IndexOutOfBoundsException;
            $par1Packet10Flying.$suppressionEnabled = 1;
            $par1Packet10Flying.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet10Flying);
            $rt_throw($par1Packet10Flying);
        }
        var$3.$nextPoolIndex = var$3.$nextPoolIndex + 1 | 0;
        $var5 = var$22.$minX0 - $var25;
        $var13 = var$22.$minY0 - $var25;
        $var17 = var$22.$minZ0 - $var25;
        $var9 = var$22.$maxX0 + $var25;
        $var9_0 = var$22.$maxY + $var25;
        $var25 = var$22.$maxZ0 + $var25;
        var$22 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var31 = var$22.$nextPoolIndex;
        $var33 = var$22.$listAABB;
        var$21 = $var33.$size0;
        $var32 = $rt_compare($var31, var$21);
        if ($var32 >= 0) {
            var$3 = new nms_AxisAlignedBB;
            var$3.$minX0 = $var5;
            var$3.$minY0 = $var13;
            var$3.$minZ0 = $var17;
            var$3.$maxX0 = $var9;
            var$3.$maxY = $var9_0;
            var$3.$maxZ0 = $var25;
            ju_ArrayList_ensureCapacity($var33, var$21 + 1 | 0);
            var$19 = $var33.$array.data;
            $var32 = $var33.$size0;
            $var33.$size0 = $var32 + 1 | 0;
            var$19[$var32] = var$3;
            $var33.$modCount = $var33.$modCount + 1 | 0;
        } else if ($var31 >= 0 && $var32 < 0) {
            var$3 = $var33.$array.data[$var31];
            var$3.$minX0 = $var5;
            var$3.$minY0 = $var13;
            var$3.$minZ0 = $var17;
            var$3.$maxX0 = $var9;
            var$3.$maxY = $var9_0;
            var$3.$maxZ0 = $var25;
        } else {
            $par1Packet10Flying = new jl_IndexOutOfBoundsException;
            $par1Packet10Flying.$suppressionEnabled = 1;
            $par1Packet10Flying.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet10Flying);
            $rt_throw($par1Packet10Flying);
        }
        var$22.$nextPoolIndex = var$22.$nextPoolIndex + 1 | 0;
        $var33 = nms_AxisAlignedBB_addCoord(var$3, 0.0, (-0.55), 0.0);
        if (!$this.$mcServer2.$allowFlight && !($this.$playerEntity.$theItemInWorldManager.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
            $ptr = 26;
            continue main;
        }
        $this.$ticksForFloatKick = 0;
        $var33 = $this.$playerEntity;
        $var33.$onGround = $par1Packet10Flying.$onGround0;
        var$3 = $var33.$worldObj.$thePlayerManager0;
        $ptr = 24;
        continue main;
    case 23:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet10Flying, $var33);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet10Flying = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var33 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var33, var$3);
                $var33.$sb = jl_StringBuilder__init_();
                $var33.$buffer0 = $rt_createCharArray(32);
                $var33.$autoFlush = 0;
                $var33.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var33;
            }
            jl_Throwable_printStackTrace($par1Packet10Flying, jl_System_errCache);
        }
        return;
    case 24:
        nms_PlayerManager_updateMountedMovingPlayer(var$3, $var33);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $this.$playerEntity;
        $var7 = $var33.$posY - $var7;
        $var31 = $par1Packet10Flying.$onGround0;
        $ptr = 25;
    case 25:
        nms_EntityLivingBase_updateFallState($var33, $var7, $var31);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 26:
        $tmp = nms_World_checkBlockCollision($var2, $var33);
        if ($rt_suspending()) {
            break main;
        }
        $var31 = $tmp;
        if ($var31)
            $this.$ticksForFloatKick = 0;
        else if ($var15 >= (-0.03125)) {
            $var31 = $this.$ticksForFloatKick + 1 | 0;
            $this.$ticksForFloatKick = $var31;
            if ($var31 > 80) {
                nles_IntegratedServer_$callClinit();
                var$3 = nles_IntegratedServer_logger;
                $var33 = $this.$playerEntity.$username;
                $par1Packet10Flying = new jl_StringBuilder;
                $par1Packet10Flying.$buffer = $rt_createCharArray(16);
                $var31 = $par1Packet10Flying.$length0;
                if ($var33 === null)
                    $var33 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $var31, $var33);
                jl_AbstractStringBuilder_insert($par1Packet10Flying, $par1Packet10Flying.$length0, $rt_s(2078));
                $var33 = new jl_String;
                var$19 = $par1Packet10Flying.$buffer;
                var$20 = var$19.data;
                $var32 = $par1Packet10Flying.$length0;
                var$21 = var$20.length;
                if ($var32 >= 0 && $var32 <= (var$21 - 0 | 0)) {
                    $var33.$nativeString = $rt_charArrayToString(var$19.data, 0, $var32);
                    var$3 = var$3.$logger;
                    $par1Packet10Flying = jul_Level_WARNING;
                    var$22 = new jul_LogRecord;
                    var$22.$level = $par1Packet10Flying;
                    var$22.$message0 = $var33;
                    var$22.$millis = jl_System_currentTimeMillis();
                    var$23 = jul_LogRecord_sequenceNumberGenerator;
                    jul_LogRecord_sequenceNumberGenerator = Long_add(var$23, Long_fromInt(1));
                    var$22.$sequenceNumber = var$23;
                    var$22.$threadID = jl_Thread_currentThread.$id2;
                    jul_Logger_log(var$3, var$22);
                    $par1Packet10Flying = $rt_s(2079);
                    $ptr = 27;
                    continue main;
                }
                $par1Packet10Flying = new jl_IndexOutOfBoundsException;
                $par1Packet10Flying.$suppressionEnabled = 1;
                $par1Packet10Flying.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet10Flying);
                $rt_throw($par1Packet10Flying);
            }
        }
        $var33 = $this.$playerEntity;
        $var33.$onGround = $par1Packet10Flying.$onGround0;
        var$3 = $var33.$worldObj.$thePlayerManager0;
        $ptr = 24;
        continue main;
    case 27:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet10Flying);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet10Flying, $var33, var$3, $var31, $var2, $var3, $var34, $var4, $var5, $var7, $var9, $var32, $var9_0, $var11, $var12, var$16, $var13, $var15, var$19, var$20, var$21, var$22, var$23, $var17, $var19, $var21, $var23, var$28, $var25, var$30, $var28, var$32, var$33, $ptr);
},
nms_NetServerHandler_handleBlockDig = ($this, $par1Packet14BlockDig) => {
    let var$2, var$3, var$4, $var2, $var3, var$7, var$8, $var4, $var5, $var6, $var7, $var9, $var11, var$15, var$16, var$17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Packet14BlockDig = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$mcServer2;
        var$3 = $this.$playerEntity;
        var$4 = var$3.$dimension;
        $var2 = var$4 == (-1) ? var$2.$worldServers.data[1] : var$4 != 1 ? var$2.$worldServers.data[0] : var$2.$worldServers.data[2];
        var$4 = $par1Packet14BlockDig.$status1;
        if (var$4 == 4) {
            $par1Packet14BlockDig = var$3.$inventory0;
            var$4 = $par1Packet14BlockDig.$currentItem;
            $var3 = 1;
            $ptr = 1;
            continue main;
        }
        if (var$4 == 3) {
            $par1Packet14BlockDig = var$3.$inventory0;
            var$4 = $par1Packet14BlockDig.$currentItem;
            $var3 = $rt_compare(var$4, 9);
            $var3 = ($var3 < 0 && var$4 >= 0 ? $par1Packet14BlockDig.$mainInventory.data[var$4] : null) === null ? 1 : ($var3 < 0 && var$4 >= 0 ? $par1Packet14BlockDig.$mainInventory.data[var$4] : null).$stackSize;
            $ptr = 4;
            continue main;
        }
        a: {
            if (var$4 == 5) {
                $par1Packet14BlockDig = var$3.$itemInUse;
                if ($par1Packet14BlockDig === null) {
                    var$3.$itemInUse = null;
                    var$3.$itemInUseCount = 0;
                    if (!var$3.$worldObj.$isRemote)
                        nms_Entity_setFlag(var$3, 4, 0);
                    break a;
                }
                var$2 = var$3.$worldObj;
                var$4 = var$3.$itemInUseCount;
                nms_Item_$callClinit();
                $var2 = nms_Item_itemsList.data[$par1Packet14BlockDig.$itemID];
                $ptr = 3;
                continue main;
            }
            $var3 = 0;
            if (!var$4)
                $var3 = 1;
            var$7 = $rt_compare(var$4, 1);
            if (!var$7)
                $var3 = 1;
            var$8 = $rt_compare(var$4, 2);
            if (!var$8)
                $var3 = 1;
            $var4 = $par1Packet14BlockDig.$xPosition13;
            $var5 = $par1Packet14BlockDig.$yPosition12;
            $var6 = $par1Packet14BlockDig.$zPosition16;
            if ($var3) {
                $var7 = var$3.$posX - ($var4 + 0.5);
                $var9 = var$3.$posY - ($var5 + 0.5) + 1.5;
                $var11 = var$3.$posZ - ($var6 + 0.5);
                if ($var7 * $var7 + $var9 * $var9 + $var11 * $var11 > 36.0)
                    return;
                if ($var5 >= 256)
                    return;
            }
            if (!var$4) {
                var$2 = var$3.$theItemInWorldManager;
                var$4 = $par1Packet14BlockDig.$face;
                $ptr = 6;
                continue main;
            }
            if (!var$8) {
                $par1Packet14BlockDig = var$3.$theItemInWorldManager;
                $ptr = 7;
                continue main;
            }
            if (!var$7) {
                var$3 = var$3.$theItemInWorldManager;
                var$3.$isDestroyingBlock = 0;
                $par1Packet14BlockDig = var$3.$theWorld;
                $var3 = var$3.$thisPlayerMP.$entityId;
                var$7 = var$3.$partiallyDestroyedBlockX;
                var$8 = var$3.$partiallyDestroyedBlockY;
                var$15 = var$3.$partiallyDestroyedBlockZ;
                var$4 = (-1);
                var$16 = 0;
                var$2 = $par1Packet14BlockDig.$worldAccesses;
                var$17 = $rt_compare(var$16, var$2.$size0);
                if (var$17 >= 0) {
                    $ptr = 12;
                    continue main;
                }
                if (var$16 >= 0 && var$17 < 0) {
                    var$2 = var$2.$array.data[var$16];
                    $ptr = 16;
                    continue main;
                }
                $par1Packet14BlockDig = new jl_IndexOutOfBoundsException;
                $par1Packet14BlockDig.$suppressionEnabled = 1;
                $par1Packet14BlockDig.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet14BlockDig);
                $rt_throw($par1Packet14BlockDig);
            }
        }
        return;
    case 1:
        $tmp = nms_InventoryPlayer_decrStackSize($par1Packet14BlockDig, var$4, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet14BlockDig = $tmp;
        var$4 = 0;
        $ptr = 2;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice(var$3, $par1Packet14BlockDig, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $var2.$onPlayerStoppedUsing($par1Packet14BlockDig, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3.$itemInUse = null;
        var$3.$itemInUseCount = 0;
        if (!var$3.$worldObj.$isRemote)
            nms_Entity_setFlag(var$3, 4, 0);
        return;
    case 4:
        $tmp = nms_InventoryPlayer_decrStackSize($par1Packet14BlockDig, var$4, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet14BlockDig = $tmp;
        var$4 = 0;
        $ptr = 5;
    case 5:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice(var$3, $par1Packet14BlockDig, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_ItemInWorldManager_onBlockClicked(var$2, $var4, $var5, $var6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_ItemInWorldManager_uncheckedTryHarvestBlock($par1Packet14BlockDig, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($var2, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            return;
        var$2 = $this.$playerEntity.$playerNetServerHandler;
        var$3 = new nms_Packet53BlockChange;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$isChunkDataPacket = 1;
        var$3.$xPosition2 = $var4;
        var$3.$yPosition1 = $var5;
        var$3.$zPosition2 = $var6;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($var2, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        var$3.$type2 = var$4;
        $ptr = 10;
    case 10:
        b: {
            $tmp = nms_World_getBlockMetadata($var2, $var4, $var5, $var6);
            if ($rt_suspending()) {
                break main;
            }
            var$4 = $tmp;
            var$3.$metadata0 = var$4;
            if (var$3 instanceof nms_Packet3Chat) {
                $par1Packet14BlockDig = var$3;
                $var3 = var$2.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break b;
                if ($var3 == 1 && !$par1Packet14BlockDig.$isServer)
                    break b;
            }
            try {
                $par1Packet14BlockDig = var$2.$netManager;
                $ptr = 11;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet14BlockDig = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Packet14BlockDig, jl_System_errCache);
        }
        return;
    case 11:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet14BlockDig, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet14BlockDig = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Packet14BlockDig, jl_System_errCache);
        }
        return;
    case 12:
        $tmp = nms_World_getBlockId($var2, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            return;
        var$2 = $this.$playerEntity.$playerNetServerHandler;
        var$3 = new nms_Packet53BlockChange;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$isChunkDataPacket = 1;
        var$3.$xPosition2 = $var4;
        var$3.$yPosition1 = $var5;
        var$3.$zPosition2 = $var6;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId($var2, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        var$3.$type2 = var$4;
        $ptr = 14;
    case 14:
        b: {
            $tmp = nms_World_getBlockMetadata($var2, $var4, $var5, $var6);
            if ($rt_suspending()) {
                break main;
            }
            var$4 = $tmp;
            var$3.$metadata0 = var$4;
            if (var$3 instanceof nms_Packet3Chat) {
                $par1Packet14BlockDig = var$3;
                $var3 = var$2.$playerEntity.$chatVisibility;
                if ($var3 == 2)
                    break b;
                if ($var3 == 1 && !$par1Packet14BlockDig.$isServer)
                    break b;
            }
            try {
                $par1Packet14BlockDig = var$2.$netManager;
                $ptr = 15;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet14BlockDig = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Packet14BlockDig, jl_System_errCache);
        }
        return;
    case 15:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet14BlockDig, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet14BlockDig = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$2);
                var$2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                var$2.$sb = var$3;
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1Packet14BlockDig, jl_System_errCache);
        }
        return;
    case 16:
        nms_WorldManager_destroyBlockPartially(var$2, $var3, var$7, var$8, var$15, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = var$16 + 1 | 0;
        var$2 = $par1Packet14BlockDig.$worldAccesses;
        var$17 = $rt_compare(var$16, var$2.$size0);
        if (var$17 >= 0) {
            $ptr = 12;
            continue main;
        }
        if (var$16 >= 0 && var$17 < 0) {
            var$2 = var$2.$array.data[var$16];
            continue main;
        }
        $par1Packet14BlockDig = new jl_IndexOutOfBoundsException;
        $par1Packet14BlockDig.$suppressionEnabled = 1;
        $par1Packet14BlockDig.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Packet14BlockDig);
        $rt_throw($par1Packet14BlockDig);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet14BlockDig, var$2, var$3, var$4, $var2, $var3, var$7, var$8, $var4, $var5, $var6, $var7, $var9, $var11, var$15, var$16, var$17, $ptr);
},
nms_NetServerHandler_handlePlace = ($this, $par1Packet15Place) => {
    let $var3, $var9, $var4, $var2, var$6, $var5, $var6, $var7, $var8, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var2
        = $thread.pop();$var4 = $thread.pop();$var9 = $thread.pop();$var3 = $thread.pop();$par1Packet15Place = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$mcServer2;
        $var9 = $this.$playerEntity;
        $var4 = $var9.$dimension;
        $var2 = $var4 == (-1) ? $var3.$worldServers.data[1] : $var4 != 1 ? $var3.$worldServers.data[0] : $var3.$worldServers.data[2];
        $var3 = $var9.$inventory0;
        var$6 = $var3.$currentItem;
        $var3 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        $var4 = 0;
        $var5 = $par1Packet15Place.$xPosition15;
        $var6 = $par1Packet15Place.$yPosition11;
        $var7 = $par1Packet15Place.$zPosition13;
        $var8 = $par1Packet15Place.$direction0;
        if ($var8 == 255) {
            if ($var3 === null)
                return;
            var$11 = $var9.$theItemInWorldManager;
            $ptr = 1;
            continue main;
        }
        a: {
            if ($var6 >= 255 && !($var8 != 1 && $var6 < 256)) {
                $var3 = $var9.$playerNetServerHandler;
                $var9 = new nms_Packet3Chat;
                nms_EnumChatFormatting_$callClinit();
                var$11 = nms_EnumChatFormatting_RED;
                var$11 = var$11 === null ? $rt_s(1) : var$11.$field_96304_B;
                var$12 = new jl_StringBuilder;
                var$12.$buffer = $rt_createCharArray(16);
                $var4 = var$12.$length0;
                if (var$11 === null)
                    var$11 = $rt_s(1);
                jl_AbstractStringBuilder_insert(var$12, $var4, var$11);
                jl_AbstractStringBuilder_insert(var$12, var$12.$length0, $rt_s(2080));
                var$11 = new jl_String;
                var$13 = var$12.$buffer;
                var$14 = var$13.data;
                var$15 = var$12.$length0;
                $var4 = var$14.length;
                if (var$15 >= 0 && var$15 <= ($var4 - 0 | 0)) {
                    var$11.$nativeString = $rt_charArrayToString(var$13.data, 0, var$15);
                    var$13 = $rt_createArray(jl_Object, 1);
                    var$14 = var$13.data;
                    var$12 = new jl_Integer;
                    var$12.$value = 256;
                    var$14[0] = var$12;
                    nms_StatCollector_$callClinit();
                    var$11 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$11, var$13);
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var9.$isServer = 1;
                    var$15 = var$11.$nativeString.length;
                    var$6 = nms_Packet3Chat_maxChatLength;
                    if (var$15 > var$6)
                        var$11 = jl_String_substring(var$11, 0, var$6);
                    b: {
                        $var9.$message1 = var$11;
                        $var9.$isServer = 1;
                        if ($var9 instanceof nms_Packet3Chat) {
                            var$11 = $var9;
                            var$6 = $var3.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break b;
                            if (var$6 == 1 && !var$11.$isServer)
                                break b;
                        }
                        try {
                            $var3 = $var3.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var9 = new otcic_JSStderrPrintStream;
                            var$11 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$11);
                            var$11.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var9);
                            $var9.$out0 = var$11;
                            var$11 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$11);
                            $var9.$sb = var$11;
                            $var9.$buffer0 = $rt_createCharArray(32);
                            $var9.$autoFlush = 0;
                            $var9.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var9;
                        }
                        jl_Throwable_printStackTrace($var3, jl_System_errCache);
                    }
                    $var4 = 1;
                    break a;
                }
                $par1Packet15Place = new jl_IndexOutOfBoundsException;
                $par1Packet15Place.$suppressionEnabled = 1;
                $par1Packet15Place.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet15Place);
                $rt_throw($par1Packet15Place);
            }
            if ($this.$hasMoved) {
                var$16 = $var5 + 0.5;
                var$17 = $var6 + 0.5;
                var$18 = $var7 + 0.5;
                var$19 = $var9.$posX - var$16;
                var$20 = $var9.$posY - var$17;
                var$16 = $var9.$posZ - var$18;
                if (var$19 * var$19 + var$20 * var$20 + var$16 * var$16 < 64.0) {
                    var$11 = $var9.$theItemInWorldManager;
                    var$21 = $par1Packet15Place.$xOffset;
                    var$22 = $par1Packet15Place.$yOffset0;
                    var$23 = $par1Packet15Place.$zOffset;
                    $ptr = 2;
                    continue main;
                }
            }
            $var4 = 1;
        }
        if ($var4) {
            $var3 = $this.$playerEntity.$playerNetServerHandler;
            $var9 = new nms_Packet53BlockChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$isChunkDataPacket = 1;
            $var9.$xPosition2 = $var5;
            $var9.$yPosition1 = $var6;
            $var9.$zPosition2 = $var7;
            $ptr = 3;
            continue main;
        }
        $var3 = $this.$playerEntity.$inventory0;
        var$6 = $var3.$currentItem;
        $var9 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        if ($var9 !== null && !$var9.$stackSize) {
            $var3.$mainInventory.data[var$6] = null;
            $var9 = null;
        }
        if ($var9 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var9.$itemID].$getMaxItemUseDuration($var9))
                return;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 1;
        $var3 = $var3.$inventory0;
        var$13 = $var3.$mainInventory.data;
        $var4 = $var3.$currentItem;
        $var3 = var$13[$var4];
        nms_ItemStack_$callClinit();
        if ($var3 === null)
            $var9 = null;
        else {
            $var9 = new nms_ItemStack;
            var$6 = $var3.$itemID;
            $var5 = $var3.$stackSize;
            $var8 = $var3.$itemDamage;
            $var9.$itemID = var$6;
            $var9.$stackSize = $var5;
            $var9.$itemDamage = $var8;
            if ($var8 < 0)
                $var9.$itemDamage = 0;
            $var3 = $var3.$stackTagCompound;
            if ($var3 !== null) {
                $var2 = new nms_NBTTagCompound;
                var$11 = $var3.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                $var2.$name = var$11;
                var$11 = new ju_HashMap;
                jl_Object__init_(var$11);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$24 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$14 = var$24.data;
                var$11.$elementData = var$24;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$14.length * 0.75 | 0;
                $var2.$tagMap = var$11;
                var$11 = $var3.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$25 = $var3.$tagMap;
                    if (var$12 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        c: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break c;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        $var8 = var$12.$hashCode1;
                        var$14 = var$25.$elementData.data;
                        var$25 = var$14[$var8 & (var$14.length - 1 | 0)];
                        while (var$25 !== null) {
                            if (var$25.$origKeyHash == $var8) {
                                d: {
                                    var$26 = var$25.$key;
                                    if (var$12 !== var$26) {
                                        if (var$12 === var$26)
                                            var$6 = 1;
                                        else if (!(var$26 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$26 = var$26;
                                            var$6 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break d;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = $var2.$tagMap;
                    if (var$12 !== null)
                        var$25.$name = var$12;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$12, var$25);
                }
                $var9.$stackTagCompound = $var2;
            }
        }
        var$13[$var4] = $var9;
        $var3 = $this.$playerEntity;
        $var9 = $var3.$openContainer;
        $var3 = $var3.$inventory0;
        $var9 = nms_Container_getSlotFromInventory($var9, $var3, $var3.$currentItem);
        $var3 = $this.$playerEntity.$openContainer;
        $ptr = 6;
        continue main;
    case 1:
        nms_ItemInWorldManager_tryUseItem(var$11, $var9, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        if ($var4) {
            $var3 = $this.$playerEntity.$playerNetServerHandler;
            $var9 = new nms_Packet53BlockChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$isChunkDataPacket = 1;
            $var9.$xPosition2 = $var5;
            $var9.$yPosition1 = $var6;
            $var9.$zPosition2 = $var7;
            $ptr = 3;
            continue main;
        }
        $var3 = $this.$playerEntity.$inventory0;
        var$6 = $var3.$currentItem;
        $var9 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        if ($var9 !== null && !$var9.$stackSize) {
            $var3.$mainInventory.data[var$6] = null;
            $var9 = null;
        }
        if ($var9 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var9.$itemID].$getMaxItemUseDuration($var9))
                return;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 1;
        $var3 = $var3.$inventory0;
        var$13 = $var3.$mainInventory.data;
        $var4 = $var3.$currentItem;
        $var3 = var$13[$var4];
        nms_ItemStack_$callClinit();
        if ($var3 === null)
            $var9 = null;
        else {
            $var9 = new nms_ItemStack;
            var$6 = $var3.$itemID;
            $var5 = $var3.$stackSize;
            $var8 = $var3.$itemDamage;
            $var9.$itemID = var$6;
            $var9.$stackSize = $var5;
            $var9.$itemDamage = $var8;
            if ($var8 < 0)
                $var9.$itemDamage = 0;
            $var3 = $var3.$stackTagCompound;
            if ($var3 !== null) {
                $var2 = new nms_NBTTagCompound;
                var$11 = $var3.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                $var2.$name = var$11;
                var$11 = new ju_HashMap;
                jl_Object__init_(var$11);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$24 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$14 = var$24.data;
                var$11.$elementData = var$24;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$14.length * 0.75 | 0;
                $var2.$tagMap = var$11;
                var$11 = $var3.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$25 = $var3.$tagMap;
                    if (var$12 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        e: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break e;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        $var8 = var$12.$hashCode1;
                        var$14 = var$25.$elementData.data;
                        var$25 = var$14[$var8 & (var$14.length - 1 | 0)];
                        while (var$25 !== null) {
                            if (var$25.$origKeyHash == $var8) {
                                f: {
                                    var$26 = var$25.$key;
                                    if (var$12 !== var$26) {
                                        if (var$12 === var$26)
                                            var$6 = 1;
                                        else if (!(var$26 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$26 = var$26;
                                            var$6 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break f;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = $var2.$tagMap;
                    if (var$12 !== null)
                        var$25.$name = var$12;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$12, var$25);
                }
                $var9.$stackTagCompound = $var2;
            }
        }
        var$13[$var4] = $var9;
        $var3 = $this.$playerEntity;
        $var9 = $var3.$openContainer;
        $var3 = $var3.$inventory0;
        $var9 = nms_Container_getSlotFromInventory($var9, $var3, $var3.$currentItem);
        $var3 = $this.$playerEntity.$openContainer;
        $ptr = 6;
        continue main;
    case 2:
        nms_ItemInWorldManager_activateBlockOrUseItem(var$11, $var9, $var2, $var3, $var5, $var6, $var7, $var8, var$21, var$22, var$23);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        if ($var4) {
            $var3 = $this.$playerEntity.$playerNetServerHandler;
            $var9 = new nms_Packet53BlockChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$isChunkDataPacket = 1;
            $var9.$xPosition2 = $var5;
            $var9.$yPosition1 = $var6;
            $var9.$zPosition2 = $var7;
            $ptr = 3;
            continue main;
        }
        $var3 = $this.$playerEntity.$inventory0;
        var$6 = $var3.$currentItem;
        $var9 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        if ($var9 !== null && !$var9.$stackSize) {
            $var3.$mainInventory.data[var$6] = null;
            $var9 = null;
        }
        if ($var9 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var9.$itemID].$getMaxItemUseDuration($var9))
                return;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 1;
        $var3 = $var3.$inventory0;
        var$13 = $var3.$mainInventory.data;
        $var4 = $var3.$currentItem;
        $var3 = var$13[$var4];
        nms_ItemStack_$callClinit();
        if ($var3 === null)
            $var9 = null;
        else {
            $var9 = new nms_ItemStack;
            var$6 = $var3.$itemID;
            $var5 = $var3.$stackSize;
            $var8 = $var3.$itemDamage;
            $var9.$itemID = var$6;
            $var9.$stackSize = $var5;
            $var9.$itemDamage = $var8;
            if ($var8 < 0)
                $var9.$itemDamage = 0;
            $var3 = $var3.$stackTagCompound;
            if ($var3 !== null) {
                $var2 = new nms_NBTTagCompound;
                var$11 = $var3.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                $var2.$name = var$11;
                var$11 = new ju_HashMap;
                jl_Object__init_(var$11);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$24 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$14 = var$24.data;
                var$11.$elementData = var$24;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$14.length * 0.75 | 0;
                $var2.$tagMap = var$11;
                var$11 = $var3.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$25 = $var3.$tagMap;
                    if (var$12 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        e: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break e;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        $var8 = var$12.$hashCode1;
                        var$14 = var$25.$elementData.data;
                        var$25 = var$14[$var8 & (var$14.length - 1 | 0)];
                        while (var$25 !== null) {
                            if (var$25.$origKeyHash == $var8) {
                                f: {
                                    var$26 = var$25.$key;
                                    if (var$12 !== var$26) {
                                        if (var$12 === var$26)
                                            var$6 = 1;
                                        else if (!(var$26 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$26 = var$26;
                                            var$6 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break f;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = $var2.$tagMap;
                    if (var$12 !== null)
                        var$25.$name = var$12;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$12, var$25);
                }
                $var9.$stackTagCompound = $var2;
            }
        }
        var$13[$var4] = $var9;
        $var3 = $this.$playerEntity;
        $var9 = $var3.$openContainer;
        $var3 = $var3.$inventory0;
        $var9 = nms_Container_getSlotFromInventory($var9, $var3, $var3.$currentItem);
        $var3 = $this.$playerEntity.$openContainer;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($var2, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var9.$type2 = $var4;
        $ptr = 4;
    case 4:
        g: {
            $tmp = nms_World_getBlockMetadata($var2, $var5, $var6, $var7);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = $tmp;
            $var9.$metadata0 = $var4;
            if ($var9 instanceof nms_Packet3Chat) {
                var$11 = $var9;
                var$6 = $var3.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break g;
                if (var$6 == 1 && !var$11.$isServer)
                    break g;
            }
            try {
                $var3 = $var3.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = var$11;
                var$11 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$11);
                $var9.$sb = var$11;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        if (!$var8)
            $var6 = $var6 + (-1) | 0;
        if ($var8 == 1)
            $var6 = $var6 + 1 | 0;
        if ($var8 == 2)
            $var7 = $var7 + (-1) | 0;
        if ($var8 == 3)
            $var7 = $var7 + 1 | 0;
        if ($var8 == 4)
            $var5 = $var5 + (-1) | 0;
        if ($var8 == 5)
            $var5 = $var5 + 1 | 0;
        $var9 = $this.$playerEntity.$playerNetServerHandler;
        var$11 = new nms_Packet53BlockChange;
        var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$11.$isChunkDataPacket = 1;
        var$11.$xPosition2 = $var5;
        var$11.$yPosition1 = $var6;
        var$11.$zPosition2 = $var7;
        $ptr = 8;
        continue main;
    case 5:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = var$11;
                var$11 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$11);
                $var9.$sb = var$11;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        if (!$var8)
            $var6 = $var6 + (-1) | 0;
        if ($var8 == 1)
            $var6 = $var6 + 1 | 0;
        if ($var8 == 2)
            $var7 = $var7 + (-1) | 0;
        if ($var8 == 3)
            $var7 = $var7 + 1 | 0;
        if ($var8 == 4)
            $var5 = $var5 + (-1) | 0;
        if ($var8 == 5)
            $var5 = $var5 + 1 | 0;
        $var9 = $this.$playerEntity.$playerNetServerHandler;
        var$11 = new nms_Packet53BlockChange;
        var$11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$11.$isChunkDataPacket = 1;
        var$11.$xPosition2 = $var5;
        var$11.$yPosition1 = $var6;
        var$11.$zPosition2 = $var7;
        $ptr = 8;
        continue main;
    case 6:
        $var3.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 0;
        $var3 = $var3.$inventory0;
        var$6 = $var3.$currentItem;
        $var3 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        $par1Packet15Place = $par1Packet15Place.$itemStack2;
        if (!($var3 === null && $par1Packet15Place === null ? 1 : $var3 !== null && $par1Packet15Place !== null ? nms_ItemStack_isItemStackEqual($var3, $par1Packet15Place) : 0)) {
            $par1Packet15Place = new nms_Packet103SetSlot;
            $var3 = $this.$playerEntity;
            $var4 = $var3.$openContainer.$windowId;
            var$6 = $var9.$slotNumber;
            $var3 = $var3.$inventory0;
            $var8 = $var3.$currentItem;
            $var3 = $var8 < 9 && $var8 >= 0 ? $var3.$mainInventory.data[$var8] : null;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1Packet15Place.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1Packet15Place.$windowId1 = $var4;
            $par1Packet15Place.$itemSlot = var$6;
            if ($var3 !== null) {
                $var9 = new nms_ItemStack;
                $var4 = $var3.$itemID;
                var$6 = $var3.$stackSize;
                $var5 = $var3.$itemDamage;
                $var9.$itemID = $var4;
                $var9.$stackSize = var$6;
                $var9.$itemDamage = $var5;
                if ($var5 < 0)
                    $var9.$itemDamage = 0;
                $var3 = $var3.$stackTagCompound;
                if ($var3 !== null) {
                    $var2 = new nms_NBTTagCompound;
                    var$11 = $var3.$name;
                    if (var$11 === null)
                        var$11 = $rt_s(3);
                    $var2.$name = var$11;
                    var$11 = new ju_HashMap;
                    jl_Object__init_(var$11);
                    $var4 = ju_HashMap_calculateCapacity(16);
                    var$11.$elementCount = 0;
                    var$14 = $rt_createArray(ju_HashMap$HashEntry, $var4);
                    var$13 = var$14.data;
                    var$11.$elementData = var$14;
                    var$11.$loadFactor = 0.75;
                    var$11.$threshold = var$13.length * 0.75 | 0;
                    $var2.$tagMap = var$11;
                    var$11 = $var3.$tagMap;
                    if (var$11.$cachedKeySet === null) {
                        var$12 = new ju_HashMap$1;
                        var$12.$this$0 = var$11;
                        var$11.$cachedKeySet = var$12;
                    }
                    var$11 = var$11.$cachedKeySet.$iterator();
                    while (var$11.$hasNext()) {
                        var$12 = var$11.$next();
                        var$25 = $var3.$tagMap;
                        if (var$12 === null) {
                            var$25 = var$25.$elementData.data[0];
                            while (var$25 !== null && var$25.$key !== null) {
                                var$25 = var$25.$next3;
                            }
                        } else {
                            h: {
                                if (!var$12.$hashCode1) {
                                    $var4 = 0;
                                    while (true) {
                                        if ($var4 >= var$12.$nativeString.length)
                                            break h;
                                        var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt($var4) | 0;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                }
                            }
                            $var5 = var$12.$hashCode1;
                            var$13 = var$25.$elementData.data;
                            var$25 = var$13[$var5 & (var$13.length - 1 | 0)];
                            while (var$25 !== null) {
                                if (var$25.$origKeyHash == $var5) {
                                    i: {
                                        var$26 = var$25.$key;
                                        if (var$12 !== var$26) {
                                            if (var$12 === var$26)
                                                $var4 = 1;
                                            else if (!(var$26 instanceof jl_String))
                                                $var4 = 0;
                                            else {
                                                var$26 = var$26;
                                                $var4 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                            }
                                            if (!$var4) {
                                                $var4 = 0;
                                                break i;
                                            }
                                        }
                                        $var4 = 1;
                                    }
                                    if ($var4)
                                        break;
                                }
                                var$25 = var$25.$next3;
                            }
                        }
                        var$25 = var$25 === null ? null : var$25.$value0;
                        var$25 = var$25.$copy();
                        var$26 = $var2.$tagMap;
                        if (var$12 !== null)
                            var$25.$name = var$12;
                        else
                            var$25.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$26, var$12, var$25);
                    }
                    $var9.$stackTagCompound = $var2;
                }
                $var3 = $var9;
            }
            j: {
                $par1Packet15Place.$myItemStack = $var3;
                if ($par1Packet15Place instanceof nms_Packet3Chat) {
                    $var3 = $par1Packet15Place;
                    var$6 = $this.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break j;
                    if (var$6 == 1 && !$var3.$isServer)
                        break j;
                }
                try {
                    $var3 = $this.$netManager;
                    $ptr = 11;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Packet15Place = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    $var9 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var9);
                    $var9.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var3);
                    $var3.$out0 = $var9;
                    $var9 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var9);
                    $var3.$sb = $var9;
                    $var3.$buffer0 = $rt_createCharArray(32);
                    $var3.$autoFlush = 0;
                    $var3.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var3;
                }
                jl_Throwable_printStackTrace($par1Packet15Place, jl_System_errCache);
            }
        }
        return;
    case 7:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                var$11 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$11);
                var$11.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = var$11;
                var$11 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$11);
                $var9.$sb = var$11;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        $var4 = 1;
        if ($var4) {
            $var3 = $this.$playerEntity.$playerNetServerHandler;
            $var9 = new nms_Packet53BlockChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$isChunkDataPacket = 1;
            $var9.$xPosition2 = $var5;
            $var9.$yPosition1 = $var6;
            $var9.$zPosition2 = $var7;
            $ptr = 3;
            continue main;
        }
        $var3 = $this.$playerEntity.$inventory0;
        var$6 = $var3.$currentItem;
        $var9 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        if ($var9 !== null && !$var9.$stackSize) {
            $var3.$mainInventory.data[var$6] = null;
            $var9 = null;
        }
        if ($var9 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var9.$itemID].$getMaxItemUseDuration($var9))
                return;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 1;
        $var3 = $var3.$inventory0;
        var$13 = $var3.$mainInventory.data;
        $var4 = $var3.$currentItem;
        $var3 = var$13[$var4];
        nms_ItemStack_$callClinit();
        if ($var3 === null)
            $var9 = null;
        else {
            $var9 = new nms_ItemStack;
            var$6 = $var3.$itemID;
            $var5 = $var3.$stackSize;
            $var8 = $var3.$itemDamage;
            $var9.$itemID = var$6;
            $var9.$stackSize = $var5;
            $var9.$itemDamage = $var8;
            if ($var8 < 0)
                $var9.$itemDamage = 0;
            $var3 = $var3.$stackTagCompound;
            if ($var3 !== null) {
                $var2 = new nms_NBTTagCompound;
                var$11 = $var3.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                $var2.$name = var$11;
                var$11 = new ju_HashMap;
                jl_Object__init_(var$11);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$24 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$14 = var$24.data;
                var$11.$elementData = var$24;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$14.length * 0.75 | 0;
                $var2.$tagMap = var$11;
                var$11 = $var3.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$25 = $var3.$tagMap;
                    if (var$12 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        h: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break h;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        $var8 = var$12.$hashCode1;
                        var$14 = var$25.$elementData.data;
                        var$25 = var$14[$var8 & (var$14.length - 1 | 0)];
                        while (var$25 !== null) {
                            if (var$25.$origKeyHash == $var8) {
                                i: {
                                    var$26 = var$25.$key;
                                    if (var$12 !== var$26) {
                                        if (var$12 === var$26)
                                            var$6 = 1;
                                        else if (!(var$26 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$26 = var$26;
                                            var$6 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break i;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = $var2.$tagMap;
                    if (var$12 !== null)
                        var$25.$name = var$12;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$12, var$25);
                }
                $var9.$stackTagCompound = $var2;
            }
        }
        var$13[$var4] = $var9;
        $var3 = $this.$playerEntity;
        $var9 = $var3.$openContainer;
        $var3 = $var3.$inventory0;
        $var9 = nms_Container_getSlotFromInventory($var9, $var3, $var3.$currentItem);
        $var3 = $this.$playerEntity.$openContainer;
        $ptr = 6;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($var2, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$11.$type2 = $var4;
        $ptr = 9;
    case 9:
        g: {
            $tmp = nms_World_getBlockMetadata($var2, $var5, $var6, $var7);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = $tmp;
            var$11.$metadata0 = $var4;
            if (var$11 instanceof nms_Packet3Chat) {
                $var3 = var$11;
                var$6 = $var9.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break g;
                if (var$6 == 1 && !$var3.$isServer)
                    break g;
            }
            try {
                $var3 = $var9.$netManager;
                $ptr = 10;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var2);
                $var2.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var2);
                $var9.$sb = $var2;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        $var3 = $this.$playerEntity.$inventory0;
        var$6 = $var3.$currentItem;
        $var9 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        if ($var9 !== null && !$var9.$stackSize) {
            $var3.$mainInventory.data[var$6] = null;
            $var9 = null;
        }
        if ($var9 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var9.$itemID].$getMaxItemUseDuration($var9))
                return;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 1;
        $var3 = $var3.$inventory0;
        var$13 = $var3.$mainInventory.data;
        $var4 = $var3.$currentItem;
        $var3 = var$13[$var4];
        nms_ItemStack_$callClinit();
        if ($var3 === null)
            $var9 = null;
        else {
            $var9 = new nms_ItemStack;
            var$6 = $var3.$itemID;
            $var5 = $var3.$stackSize;
            $var8 = $var3.$itemDamage;
            $var9.$itemID = var$6;
            $var9.$stackSize = $var5;
            $var9.$itemDamage = $var8;
            if ($var8 < 0)
                $var9.$itemDamage = 0;
            $var3 = $var3.$stackTagCompound;
            if ($var3 !== null) {
                $var2 = new nms_NBTTagCompound;
                var$11 = $var3.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                $var2.$name = var$11;
                var$11 = new ju_HashMap;
                jl_Object__init_(var$11);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$24 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$14 = var$24.data;
                var$11.$elementData = var$24;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$14.length * 0.75 | 0;
                $var2.$tagMap = var$11;
                var$11 = $var3.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$25 = $var3.$tagMap;
                    if (var$12 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        h: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break h;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        $var8 = var$12.$hashCode1;
                        var$14 = var$25.$elementData.data;
                        var$25 = var$14[$var8 & (var$14.length - 1 | 0)];
                        while (var$25 !== null) {
                            if (var$25.$origKeyHash == $var8) {
                                i: {
                                    var$26 = var$25.$key;
                                    if (var$12 !== var$26) {
                                        if (var$12 === var$26)
                                            var$6 = 1;
                                        else if (!(var$26 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$26 = var$26;
                                            var$6 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break i;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = $var2.$tagMap;
                    if (var$12 !== null)
                        var$25.$name = var$12;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$12, var$25);
                }
                $var9.$stackTagCompound = $var2;
            }
        }
        var$13[$var4] = $var9;
        $var3 = $this.$playerEntity;
        $var9 = $var3.$openContainer;
        $var3 = $var3.$inventory0;
        $var9 = nms_Container_getSlotFromInventory($var9, $var3, $var3.$currentItem);
        $var3 = $this.$playerEntity.$openContainer;
        $ptr = 6;
        continue main;
    case 10:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, var$11);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var9 = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var2);
                $var2.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var9);
                $var9.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var2);
                $var9.$sb = $var2;
                $var9.$buffer0 = $rt_createCharArray(32);
                $var9.$autoFlush = 0;
                $var9.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var9;
            }
            jl_Throwable_printStackTrace($var3, jl_System_errCache);
        }
        $var3 = $this.$playerEntity.$inventory0;
        var$6 = $var3.$currentItem;
        $var9 = var$6 < 9 && var$6 >= 0 ? $var3.$mainInventory.data[var$6] : null;
        if ($var9 !== null && !$var9.$stackSize) {
            $var3.$mainInventory.data[var$6] = null;
            $var9 = null;
        }
        if ($var9 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var9.$itemID].$getMaxItemUseDuration($var9))
                return;
        }
        $var3 = $this.$playerEntity;
        $var3.$playerInventoryBeingManipulated = 1;
        $var3 = $var3.$inventory0;
        var$13 = $var3.$mainInventory.data;
        $var4 = $var3.$currentItem;
        $var3 = var$13[$var4];
        nms_ItemStack_$callClinit();
        if ($var3 === null)
            $var9 = null;
        else {
            $var9 = new nms_ItemStack;
            var$6 = $var3.$itemID;
            $var5 = $var3.$stackSize;
            $var8 = $var3.$itemDamage;
            $var9.$itemID = var$6;
            $var9.$stackSize = $var5;
            $var9.$itemDamage = $var8;
            if ($var8 < 0)
                $var9.$itemDamage = 0;
            $var3 = $var3.$stackTagCompound;
            if ($var3 !== null) {
                $var2 = new nms_NBTTagCompound;
                var$11 = $var3.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                $var2.$name = var$11;
                var$11 = new ju_HashMap;
                jl_Object__init_(var$11);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$24 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$14 = var$24.data;
                var$11.$elementData = var$24;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$14.length * 0.75 | 0;
                $var2.$tagMap = var$11;
                var$11 = $var3.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$25 = $var3.$tagMap;
                    if (var$12 === null) {
                        var$25 = var$25.$elementData.data[0];
                        while (var$25 !== null && var$25.$key !== null) {
                            var$25 = var$25.$next3;
                        }
                    } else {
                        k: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break k;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        $var8 = var$12.$hashCode1;
                        var$14 = var$25.$elementData.data;
                        var$25 = var$14[$var8 & (var$14.length - 1 | 0)];
                        while (var$25 !== null) {
                            if (var$25.$origKeyHash == $var8) {
                                l: {
                                    var$26 = var$25.$key;
                                    if (var$12 !== var$26) {
                                        if (var$12 === var$26)
                                            var$6 = 1;
                                        else if (!(var$26 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$26 = var$26;
                                            var$6 = var$12.$nativeString !== var$26.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break l;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$25 = var$25.$next3;
                        }
                    }
                    var$25 = var$25 === null ? null : var$25.$value0;
                    var$25 = var$25.$copy();
                    var$26 = $var2.$tagMap;
                    if (var$12 !== null)
                        var$25.$name = var$12;
                    else
                        var$25.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$26, var$12, var$25);
                }
                $var9.$stackTagCompound = $var2;
            }
        }
        var$13[$var4] = $var9;
        $var3 = $this.$playerEntity;
        $var9 = $var3.$openContainer;
        $var3 = $var3.$inventory0;
        $var9 = nms_Container_getSlotFromInventory($var9, $var3, $var3.$currentItem);
        $var3 = $this.$playerEntity.$openContainer;
        $ptr = 6;
        continue main;
    case 11:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var3, $par1Packet15Place);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet15Place = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var3 = new otcic_JSStderrPrintStream;
                $var9 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var9);
                $var9.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var3);
                $var3.$out0 = $var9;
                $var9 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var9);
                $var3.$sb = $var9;
                $var3.$buffer0 = $rt_createCharArray(32);
                $var3.$autoFlush = 0;
                $var3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var3;
            }
            jl_Throwable_printStackTrace($par1Packet15Place, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet15Place, $var3, $var9, $var4, $var2, var$6, $var5, $var6, $var7, $var8, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, $ptr);
},
nms_NetServerHandler_unexpectedPacket = ($this, $par1Packet) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Packet = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nles_IntegratedServer_$callClinit();
        var$2 = nles_IntegratedServer_logger;
        var$3 = $this.constructor;
        if (var$3 === null)
            var$4 = null;
        else {
            var$4 = var$3.classObject;
            if (var$4 === null) {
                var$4 = new jl_Class;
                var$4.$platformClass = var$3;
                var$3.classObject = var$4;
            }
        }
        if (var$4 === null)
            var$5 = $rt_s(1);
        else {
            var$3 = (!(var$4.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !(var$4.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
            if (var$4.$name1 === null)
                var$4.$name1 = $rt_str(var$4.$platformClass.$meta.name);
            var$5 = var$4.$name1;
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert0(var$4, var$4.$length0, var$3);
            var$6 = var$4.$length0;
            if (var$5 === null)
                var$5 = $rt_s(1);
            jl_StringBuilder_insert0(var$4, var$6, var$5);
            var$5 = new jl_String;
            var$7 = var$4.$buffer;
            var$8 = var$7.data;
            var$9 = var$4.$length0;
            var$10 = var$8.length;
            if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0))
                var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
            else {
                $par1Packet = new jl_IndexOutOfBoundsException;
                jl_Exception__init_($par1Packet);
                $rt_throw($par1Packet);
            }
        }
        var$4 = $par1Packet.constructor;
        if (var$4 === null)
            $par1Packet = null;
        else {
            $par1Packet = var$4.classObject;
            if ($par1Packet === null) {
                $par1Packet = new jl_Class;
                $par1Packet.$platformClass = var$4;
                var$4.classObject = $par1Packet;
            }
        }
        if ($par1Packet === null)
            var$3 = $rt_s(1);
        else {
            var$4 = (!($par1Packet.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !($par1Packet.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
            if ($par1Packet.$name1 === null)
                $par1Packet.$name1 = $rt_str($par1Packet.$platformClass.$meta.name);
            var$3 = $par1Packet.$name1;
            $par1Packet = new jl_StringBuilder;
            $par1Packet.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert0($par1Packet, $par1Packet.$length0, var$4);
            var$6 = $par1Packet.$length0;
            if (var$3 === null)
                var$3 = $rt_s(1);
            jl_StringBuilder_insert0($par1Packet, var$6, var$3);
            var$3 = new jl_String;
            var$7 = $par1Packet.$buffer;
            var$8 = var$7.data;
            var$9 = $par1Packet.$length0;
            var$10 = var$8.length;
            if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0))
                var$3.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
            else {
                $par1Packet = new jl_IndexOutOfBoundsException;
                jl_Exception__init_($par1Packet);
                $rt_throw($par1Packet);
            }
        }
        $par1Packet = new jl_StringBuilder;
        $par1Packet.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par1Packet, $par1Packet.$length0, var$5);
        jl_AbstractStringBuilder_insert($par1Packet, $par1Packet.$length0, $rt_s(2081));
        jl_AbstractStringBuilder_insert($par1Packet, $par1Packet.$length0, var$3);
        var$5 = new jl_String;
        var$7 = $par1Packet.$buffer;
        var$8 = var$7.data;
        var$9 = $par1Packet.$length0;
        var$10 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
            var$4 = var$2.$logger;
            $par1Packet = jul_Level_WARNING;
            var$3 = new jul_LogRecord;
            var$3.$level = $par1Packet;
            var$3.$message0 = var$5;
            var$3.$millis = jl_System_currentTimeMillis();
            var$11 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$11, Long_fromInt(1));
            var$3.$sequenceNumber = var$11;
            var$3.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$4, var$3);
            $par1Packet = $rt_s(2082);
            $ptr = 1;
            continue main;
        }
        $par1Packet = new jl_IndexOutOfBoundsException;
        $par1Packet.$suppressionEnabled = 1;
        $par1Packet.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Packet);
        $rt_throw($par1Packet);
    case 1:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_NetServerHandler_sendPacketToPlayer = ($this, $par1Packet) => {
    let $var2, $var3, $var10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1Packet = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Packet instanceof nms_Packet3Chat) {
            $var2 = $par1Packet;
            $var3 = $this.$playerEntity.$chatVisibility;
            if ($var3 == 2)
                return;
            if ($var3 == 1 && !$var2.$isServer)
                return;
        }
        try {
            $var2 = $this.$netManager;
            $ptr = 1;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var10 = $$je;
            } else {
                throw $$e;
            }
        }
        jl_Throwable_printStackTrace0($var10);
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $par1Packet);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var10 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var10);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet, $var2, $var3, $var10, $ptr);
},
nms_NetServerHandler_handleBlockItemSwitch = ($this, $par1Packet16BlockItemSwitch) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if (jl_System_outCache === null) {
        var$2 = new otcic_JSStdoutPrintStream;
        var$3 = new ji_ByteArrayOutputStream;
        var$3.$buf = $rt_createByteArray(32);
        var$2.$out0 = var$3;
        var$3 = new jl_StringBuilder;
        jl_Object__init_(var$3);
        var$3.$buffer = $rt_createCharArray(16);
        var$2.$sb = var$3;
        var$2.$buffer0 = $rt_createCharArray(32);
        var$2.$autoFlush = 0;
        var$2.$charset = jnci_UTF8Charset_INSTANCE;
        jl_System_outCache = var$2;
    }
    $rt_putStdout("handleBlockItemSwitch");
    $rt_putStdout("\n");
    var$4 = $par1Packet16BlockItemSwitch.$id4;
    if (var$4 >= 0 && var$4 < 9)
        $this.$playerEntity.$inventory0.$currentItem = var$4;
    else {
        nles_IntegratedServer_$callClinit();
        $par1Packet16BlockItemSwitch = nles_IntegratedServer_logger;
        var$3 = $this.$playerEntity.$username;
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        var$4 = var$2.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, var$4, var$3);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2083));
        var$3 = new jl_String;
        var$5 = var$2.$buffer;
        var$6 = var$5.data;
        var$7 = var$2.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            var$2 = $par1Packet16BlockItemSwitch.$logger;
            $par1Packet16BlockItemSwitch = jul_Level_WARNING;
            var$9 = new jul_LogRecord;
            var$9.$level = $par1Packet16BlockItemSwitch;
            var$9.$message0 = var$3;
            var$9.$millis = jl_System_currentTimeMillis();
            var$10 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$10, Long_fromInt(1));
            var$9.$sequenceNumber = var$10;
            var$9.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$2, var$9);
        } else {
            $par1Packet16BlockItemSwitch = new jl_IndexOutOfBoundsException;
            $par1Packet16BlockItemSwitch.$suppressionEnabled = 1;
            $par1Packet16BlockItemSwitch.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Packet16BlockItemSwitch);
            $rt_throw($par1Packet16BlockItemSwitch);
        }
    }
},
nms_NetServerHandler_handleChat = ($this, $par1Packet3Chat) => {
    let $var2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Packet3Chat = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($this.$playerEntity.$chatVisibility == 2) {
                $par1Packet3Chat = new nms_Packet3Chat;
                nms_EnumChatFormatting_$callClinit();
                $var2 = nms_EnumChatFormatting_RED;
                var$3 = $var2 === null ? $rt_s(1) : $var2.$field_96304_B;
                $var2 = new jl_StringBuilder;
                $var2.$buffer = $rt_createCharArray(16);
                $var3 = $var2.$length0;
                if (var$3 === null)
                    var$3 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var2, $var3, var$3);
                jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(2084));
                var$3 = new jl_String;
                var$5 = $var2.$buffer;
                var$6 = var$5.data;
                var$7 = $var2.$length0;
                var$8 = var$6.length;
                if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
                    var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                    nms_StatCollector_$callClinit();
                    $var2 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$3);
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par1Packet3Chat.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1Packet3Chat.$isServer = 1;
                    var$8 = $var2.$nativeString.length;
                    var$7 = nms_Packet3Chat_maxChatLength;
                    if (var$8 > var$7)
                        $var2 = jl_String_substring($var2, 0, var$7);
                    b: {
                        $par1Packet3Chat.$message1 = $var2;
                        $par1Packet3Chat.$isServer = 1;
                        if ($par1Packet3Chat instanceof nms_Packet3Chat) {
                            $var2 = $par1Packet3Chat;
                            var$7 = $this.$playerEntity.$chatVisibility;
                            if (var$7 == 2)
                                break b;
                            if (var$7 == 1 && !$var2.$isServer)
                                break b;
                        }
                        try {
                            $var2 = $this.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Packet3Chat = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            jl_Object__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var2);
                            $var2.$out0 = var$3;
                            var$3 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_(var$3);
                            $var2.$sb = var$3;
                            $var2.$buffer0 = $rt_createCharArray(32);
                            $var2.$autoFlush = 0;
                            $var2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var2;
                        }
                        jl_Throwable_printStackTrace($par1Packet3Chat, jl_System_errCache);
                    }
                    break a;
                }
                $par1Packet3Chat = new jl_IndexOutOfBoundsException;
                $par1Packet3Chat.$suppressionEnabled = 1;
                $par1Packet3Chat.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet3Chat);
                $rt_throw($par1Packet3Chat);
            }
            $var2 = $par1Packet3Chat.$message1;
            if ($var2.$nativeString.length > 100) {
                $par1Packet3Chat = $rt_s(2085);
                $ptr = 1;
                continue main;
            }
            $var3 = 0;
            while (true) {
                if ($var3 >= $var2.$nativeString.length) {
                    if ($var2 === $rt_s(166) ? 1 : jl_String_startsWith($var2, $rt_s(166), 0)) {
                        var$3 = $this.$mcServer2.$commandManager;
                        $par1Packet3Chat = $this.$playerEntity;
                        $ptr = 2;
                        continue main;
                    }
                    $par1Packet3Chat = $this.$playerEntity;
                    if ($par1Packet3Chat.$chatVisibility == 1) {
                        $par1Packet3Chat = new nms_Packet3Chat;
                        nms_EnumChatFormatting_$callClinit();
                        $var2 = nms_EnumChatFormatting_RED;
                        var$3 = $var2 === null ? $rt_s(1) : $var2.$field_96304_B;
                        $var2 = new jl_StringBuilder;
                        $var2.$buffer = $rt_createCharArray(16);
                        $var3 = $var2.$length0;
                        if (var$3 === null)
                            var$3 = $rt_s(1);
                        jl_AbstractStringBuilder_insert($var2, $var3, var$3);
                        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(2084));
                        var$3 = new jl_String;
                        var$5 = $var2.$buffer;
                        var$6 = var$5.data;
                        var$7 = $var2.$length0;
                        var$8 = var$6.length;
                        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
                            var$3.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                            nms_StatCollector_$callClinit();
                            $var2 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$3);
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $par1Packet3Chat.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $par1Packet3Chat.$isServer = 1;
                            var$8 = $var2.$nativeString.length;
                            var$7 = nms_Packet3Chat_maxChatLength;
                            if (var$8 > var$7)
                                $var2 = jl_String_substring($var2, 0, var$7);
                            c: {
                                $par1Packet3Chat.$message1 = $var2;
                                $par1Packet3Chat.$isServer = 1;
                                if ($par1Packet3Chat instanceof nms_Packet3Chat) {
                                    $var2 = $par1Packet3Chat;
                                    var$7 = $this.$playerEntity.$chatVisibility;
                                    if (var$7 == 2)
                                        break c;
                                    if (var$7 == 1 && !$var2.$isServer)
                                        break c;
                                }
                                try {
                                    $var2 = $this.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $par1Packet3Chat = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $var2 = new otcic_JSStderrPrintStream;
                                    var$3 = new ji_ByteArrayOutputStream;
                                    jl_Object__init_(var$3);
                                    var$3.$buf = $rt_createByteArray(32);
                                    ji_OutputStream__init_($var2);
                                    $var2.$out0 = var$3;
                                    var$3 = new jl_StringBuilder;
                                    jl_AbstractStringBuilder__init_(var$3);
                                    $var2.$sb = var$3;
                                    $var2.$buffer0 = $rt_createCharArray(32);
                                    $var2.$autoFlush = 0;
                                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $var2;
                                }
                                jl_Throwable_printStackTrace($par1Packet3Chat, jl_System_errCache);
                            }
                            return;
                        }
                        $par1Packet3Chat = new jl_IndexOutOfBoundsException;
                        $par1Packet3Chat.$suppressionEnabled = 1;
                        $par1Packet3Chat.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1Packet3Chat);
                        $rt_throw($par1Packet3Chat);
                    }
                    var$5 = $rt_createArray(jl_Object, 2);
                    var$9 = $par1Packet3Chat.$worldObj.$worldScoreboard;
                    $var4 = $par1Packet3Chat.$username;
                    var$9 = var$9.$teamMemberships;
                    if ($var4 === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        d: {
                            if (!$var4.$hashCode1) {
                                var$7 = 0;
                                while (true) {
                                    if (var$7 >= $var4.$nativeString.length)
                                        break d;
                                    $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt(var$7) | 0;
                                    var$7 = var$7 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $var4.$hashCode1;
                        var$6 = var$9.$elementData.data;
                        var$9 = var$6[var$11 & (var$6.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == var$11) {
                                e: {
                                    var$12 = var$9.$key;
                                    if ($var4 !== var$12) {
                                        if ($var4 === var$12)
                                            var$7 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            var$12 = var$12;
                                            var$7 = $var4.$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break e;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    $var4 = var$9 === null ? null : var$9.$value0;
                    $par1Packet3Chat = $par1Packet3Chat.$username;
                    if ($var4 !== null) {
                        var$9 = $var4.$field_96674_e;
                        var$12 = $var4.$colorSuffix;
                        $var4 = new jl_StringBuilder;
                        $var4.$buffer = $rt_createCharArray(16);
                        jl_StringBuilder_insert($var4, $var4.$length0, var$9 === null ? $rt_s(1) : jl_String_toString(var$9));
                        jl_StringBuilder_insert($var4, $var4.$length0, $par1Packet3Chat === null ? $rt_s(1) : jl_String_toString($par1Packet3Chat));
                        jl_StringBuilder_insert($var4, $var4.$length0, var$12 === null ? $rt_s(1) : jl_String_toString(var$12));
                        $par1Packet3Chat = new jl_String;
                        var$6 = $var4.$buffer;
                        var$13 = var$6.data;
                        var$8 = $var4.$length0;
                        var$11 = var$13.length;
                        if (var$8 >= 0 && var$8 <= (var$11 - 0 | 0))
                            $par1Packet3Chat.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                        else {
                            $par1Packet3Chat = new jl_IndexOutOfBoundsException;
                            jl_RuntimeException__init_($par1Packet3Chat);
                            $rt_throw($par1Packet3Chat);
                        }
                    }
                    var$6 = var$5.data;
                    var$6[0] = $par1Packet3Chat;
                    var$6[1] = $var2;
                    nms_StatCollector_$callClinit();
                    $var4 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(2086), var$5);
                    var$3 = $this.$mcServer2.$serverConfigManager;
                    nles_IntegratedServer_$callClinit();
                    $var2 = nles_IntegratedServer_logger;
                    nms_StringUtils_$callClinit();
                    $par1Packet3Chat = jur_Matcher__init_(nms_StringUtils_patternControlCode, $var4);
                    var$12 = new jl_StringBuffer;
                    var$12.$buffer = $rt_createCharArray(16);
                    $par1Packet3Chat.$leftBound0 = 0;
                    var$11 = $par1Packet3Chat.$string.$nativeString.length;
                    $par1Packet3Chat.$rightBound0 = var$11;
                    var$14 = $par1Packet3Chat.$matchResult;
                    var$15 = $par1Packet3Chat.$string;
                    var$16 = $par1Packet3Chat.$leftBound0;
                    var$14.$valid = 0;
                    var$14.$mode0 = 2;
                    var$5 = var$14.$groupBounds.data;
                    var$17 = 0;
                    var$7 = var$5.length;
                    if (var$17 > var$7)
                        $rt_throw(jl_IllegalArgumentException__init_());
                    while (var$17 < var$7) {
                        var$8 = var$17 + 1 | 0;
                        var$5[var$17] = (-1);
                        var$17 = var$8;
                    }
                    var$5 = var$14.$consumers.data;
                    var$8 = 0;
                    var$18 = var$5.length;
                    if (var$8 > var$18)
                        $rt_throw(jl_IllegalArgumentException__init_());
                    while (var$8 < var$18) {
                        var$17 = var$8 + 1 | 0;
                        var$5[var$8] = (-1);
                        var$8 = var$17;
                    }
                    if (var$15 !== null)
                        var$14.$string0 = var$15;
                    if (var$16 >= 0) {
                        var$14.$leftBound = var$16;
                        var$14.$rightBound = var$11;
                    }
                    var$14.$startIndex = var$14.$leftBound;
                    $par1Packet3Chat.$appendPos = 0;
                    $par1Packet3Chat.$replacement = null;
                    var$14.$previousMatch = (-1);
                    while (jur_Matcher_find($par1Packet3Chat)) {
                        $par1Packet3Chat.$processedRepl = jur_Matcher_processReplacement($par1Packet3Chat, $rt_s(3));
                        var$14 = $par1Packet3Chat.$string;
                        var$7 = $par1Packet3Chat.$appendPos;
                        var$15 = $par1Packet3Chat.$matchResult;
                        jur_MatchResultImpl_checkGroup(var$15, 0);
                        var$14 = jl_String_substring(var$14, var$7, var$15.$groupBounds.data[0]);
                        jl_StringBuffer_append0(var$12, var$14, 0, var$14.$nativeString.length);
                        var$14 = $par1Packet3Chat.$processedRepl;
                        jl_StringBuffer_insert2(var$12, var$12.$length0, var$14);
                        var$14 = $par1Packet3Chat.$matchResult;
                        jur_MatchResultImpl_checkGroup(var$14, 0);
                        $par1Packet3Chat.$appendPos = var$14.$groupBounds.data[1];
                    }
                    var$9 = $par1Packet3Chat.$string;
                    $par1Packet3Chat = jl_String_substring(var$9, $par1Packet3Chat.$appendPos, var$9.$nativeString.length);
                    jl_StringBuffer_append0(var$12, $par1Packet3Chat, 0, $par1Packet3Chat.$nativeString.length);
                    $par1Packet3Chat = new jl_String;
                    var$5 = var$12.$buffer;
                    var$6 = var$5.data;
                    var$8 = var$12.$length0;
                    var$11 = var$6.length;
                    if (var$8 >= 0 && var$8 <= (var$11 - 0 | 0)) {
                        $par1Packet3Chat.$nativeString = $rt_charArrayToString(var$5.data, 0, var$8);
                        var$9 = $var2.$logger;
                        $var2 = jul_Level_INFO;
                        var$12 = new jul_LogRecord;
                        var$12.$level = $var2;
                        var$12.$message0 = $par1Packet3Chat;
                        var$12.$millis = jl_System_currentTimeMillis();
                        var$19 = jul_LogRecord_sequenceNumberGenerator;
                        jul_LogRecord_sequenceNumberGenerator = Long_add(var$19, Long_fromInt(1));
                        var$12.$sequenceNumber = var$19;
                        var$12.$threadID = jl_Thread_currentThread.$id2;
                        jul_Logger_log(var$9, var$12);
                        $par1Packet3Chat = new nms_Packet3Chat;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1Packet3Chat.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1Packet3Chat.$isServer = 1;
                        var$8 = $var4.$nativeString.length;
                        var$7 = nms_Packet3Chat_maxChatLength;
                        if (var$8 > var$7)
                            $var4 = jl_String_substring($var4, 0, var$7);
                        $par1Packet3Chat.$message1 = $var4;
                        $par1Packet3Chat.$isServer = 0;
                        $var3 = 0;
                        var$8 = $par1Packet3Chat instanceof nms_Packet3Chat;
                        $var4 = $par1Packet3Chat;
                        while (true) {
                            $var2 = var$3.$playerEntityList;
                            var$7 = $rt_compare($var3, $var2.$size0);
                            if (var$7 >= 0) {
                                $var3 = $this.$chatSpamThresholdCount + 20 | 0;
                                $this.$chatSpamThresholdCount = $var3;
                                if ($var3 <= 200)
                                    break a;
                                if (nms_ServerConfigurationManager_isPlayerOpped($this.$mcServer2.$serverConfigManager, $this.$playerEntity.$username))
                                    break a;
                                else {
                                    $par1Packet3Chat = $rt_s(2087);
                                    $ptr = 4;
                                    continue main;
                                }
                            }
                            if ($var3 < 0)
                                break;
                            if (var$7 >= 0)
                                break;
                            f: {
                                $var2 = $var2.$array.data[$var3].$playerNetServerHandler;
                                if (var$8) {
                                    var$11 = $var2.$playerEntity.$chatVisibility;
                                    if (var$11 == 2)
                                        break f;
                                    if (var$11 == 1 && !$var4.$isServer)
                                        break f;
                                }
                                try {
                                    $var2 = $var2.$netManager;
                                    $ptr = 7;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var2 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$9 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_(var$9, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = var$9;
                                }
                                jl_Throwable_printStackTrace($var2, jl_System_errCache);
                            }
                            $var3 = $var3 + 1 | 0;
                        }
                        $par1Packet3Chat = new jl_IndexOutOfBoundsException;
                        $par1Packet3Chat.$suppressionEnabled = 1;
                        $par1Packet3Chat.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1Packet3Chat);
                        $rt_throw($par1Packet3Chat);
                    }
                    $rt_throw(jl_IndexOutOfBoundsException__init_1());
                }
                if ($var3 < 0)
                    break;
                if ($var3 >= $var2.$nativeString.length)
                    break;
                g: {
                    h: {
                        var$8 = $var2.$nativeString.charCodeAt($var3);
                        if (var$8 != 167) {
                            if (nms_ChatAllowedCharacters_allowedCharacters.$indexOf3(var$8) >= 0)
                                break h;
                            if (var$8 > 32)
                                break h;
                        }
                        var$7 = 0;
                        break g;
                    }
                    var$7 = 1;
                }
                if (!var$7) {
                    $par1Packet3Chat = $rt_s(2088);
                    $ptr = 3;
                    continue main;
                }
                $var3 = $var3 + 1 | 0;
            }
            $par1Packet3Chat = new jl_StringIndexOutOfBoundsException;
            $par1Packet3Chat.$suppressionEnabled = 1;
            $par1Packet3Chat.$writableStackTrace = 1;
            $rt_throw($par1Packet3Chat);
        }
        return;
    case 1:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet3Chat);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_CommandHandler_executeCommand(var$3, $par1Packet3Chat, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$chatSpamThresholdCount + 20 | 0;
        $this.$chatSpamThresholdCount = $var3;
        if ($var3 > 200 && !nms_ServerConfigurationManager_isPlayerOpped($this.$mcServer2.$serverConfigManager, $this.$playerEntity.$username)) {
            $par1Packet3Chat = $rt_s(2087);
            $ptr = 4;
            continue main;
        }
        return;
    case 3:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet3Chat);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet3Chat);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $par1Packet3Chat);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet3Chat = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                $var2.$sb = var$3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet3Chat, jl_System_errCache);
        }
        return;
    case 6:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $par1Packet3Chat);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet3Chat = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = var$3;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                $var2.$sb = var$3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet3Chat, jl_System_errCache);
        }
        return;
    case 7:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $par1Packet3Chat);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                var$7 = 32;
                ji_ByteArrayOutputStream__init_1(var$12, var$7);
                var$7 = 0;
                ji_PrintStream__init_(var$9, var$12, var$7);
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$9);
        }
        j: while (true) {
            while (true) {
                $var3 = $var3 + 1 | 0;
                $var2 = var$3.$playerEntityList;
                var$7 = $rt_compare($var3, $var2.$size0);
                if (var$7 >= 0) {
                    $var3 = $this.$chatSpamThresholdCount + 20 | 0;
                    $this.$chatSpamThresholdCount = $var3;
                    if ($var3 > 200 && !nms_ServerConfigurationManager_isPlayerOpped($this.$mcServer2.$serverConfigManager, $this.$playerEntity.$username)) {
                        $par1Packet3Chat = $rt_s(2087);
                        $ptr = 4;
                        continue main;
                    }
                    return;
                }
                if ($var3 < 0)
                    break j;
                if (var$7 >= 0)
                    break j;
                $var2 = $var2.$array.data[$var3].$playerNetServerHandler;
                if (!var$8)
                    break;
                var$11 = $var2.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if ($var4.$isServer)
                    break;
            }
            try {
                $var2 = $var2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$9 = jl_System_errCache;
            if (var$9 === null) {
                var$9 = new otcic_JSStderrPrintStream;
                var$12 = new ji_ByteArrayOutputStream;
                var$7 = 32;
                ji_ByteArrayOutputStream__init_1(var$12, var$7);
                var$7 = 0;
                ji_PrintStream__init_(var$9, var$12, var$7);
                jl_System_errCache = var$9;
            }
            var$9 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$9);
        }
        $par1Packet3Chat = new jl_IndexOutOfBoundsException;
        $par1Packet3Chat.$suppressionEnabled = 1;
        $par1Packet3Chat.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Packet3Chat);
        $rt_throw($par1Packet3Chat);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet3Chat, $var2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_NetServerHandler_handleAnimation = ($this, $par1Packet18Animation) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Packet18Animation = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Packet18Animation.$animate != 1)
            return;
        $par1Packet18Animation = $this.$playerEntity;
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_swingItem($par1Packet18Animation);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet18Animation, $ptr);
},
nms_NetServerHandler_handleEntityAction = ($this, $par1Packet19EntityAction) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 =
        $thread.pop();var$2 = $thread.pop();$par1Packet19EntityAction = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$2 = $par1Packet19EntityAction.$action1;
            if (var$2 == 1) {
                nms_Entity_setFlag($this.$playerEntity, 1, 1);
                break a;
            }
            if (var$2 == 2) {
                nms_Entity_setFlag($this.$playerEntity, 1, 0);
                break a;
            }
            if (var$2 == 4) {
                $par1Packet19EntityAction = $this.$playerEntity;
                nms_Entity_setFlag($par1Packet19EntityAction, 3, 1);
                var$3 = nms_SharedMonsterAttributes_movementSpeed;
                if ($par1Packet19EntityAction.$attributeMap === null)
                    $par1Packet19EntityAction.$attributeMap = nms_ServersideAttributeMap__init_();
                $par1Packet19EntityAction = $par1Packet19EntityAction.$attributeMap.$attributes;
                if (var$3 === null) {
                    $par1Packet19EntityAction = $par1Packet19EntityAction.$elementData.data[0];
                    while ($par1Packet19EntityAction !== null && $par1Packet19EntityAction.$key !== null) {
                        $par1Packet19EntityAction = $par1Packet19EntityAction.$next3;
                    }
                } else {
                    var$4 = jl_String_hashCode(var$3.$field_111115_a);
                    var$5 = $par1Packet19EntityAction.$elementData.data;
                    $par1Packet19EntityAction = var$5[var$4 & (var$5.length - 1 | 0)];
                    while ($par1Packet19EntityAction !== null && !($par1Packet19EntityAction.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$3, $par1Packet19EntityAction.$key))) {
                        $par1Packet19EntityAction = $par1Packet19EntityAction.$next3;
                    }
                }
                var$6 = $par1Packet19EntityAction === null ? null : $par1Packet19EntityAction.$value0;
                nms_EntityLivingBase_$callClinit();
                $par1Packet19EntityAction = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
                var$3 = var$6.$field_111135_e;
                if ($par1Packet19EntityAction === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$7 = $par1Packet19EntityAction.$mostSigBits;
                    var$8 = $par1Packet19EntityAction.$leastSigBits;
                    var$9 = Long_xor(var$7, var$8);
                    var$4 = Long_hi(var$9) ^ Long_lo(var$9);
                    var$5 = var$3.$elementData.data;
                    var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$4) {
                            b: {
                                var$10 = var$3.$key;
                                if ($par1Packet19EntityAction !== var$10) {
                                    if (null !== var$10 && var$10 instanceof nle_ProfileUUID) {
                                        var$10 = var$10;
                                        var$11 = Long_eq(var$7, var$10.$mostSigBits) && Long_eq(var$8, var$10.$leastSigBits) ? 1 : 0;
                                    } else
                                        var$11 = 0;
                                    if (!var$11) {
                                        var$11 = 0;
                                        break b;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                $par1Packet19EntityAction = var$3 === null ? null : var$3.$value0;
                if ($par1Packet19EntityAction !== null)
                    nms_ModifiableAttributeInstance_removeModifier(var$6, nms_EntityLivingBase_sprintingSpeedBoostModifier);
                nms_ModifiableAttributeInstance_applyModifier(var$6, nms_EntityLivingBase_sprintingSpeedBoostModifier);
                break a;
            }
            if (var$2 == 5) {
                $par1Packet19EntityAction = $this.$playerEntity;
                nms_Entity_setFlag($par1Packet19EntityAction, 3, 0);
                var$3 = nms_SharedMonsterAttributes_movementSpeed;
                if ($par1Packet19EntityAction.$attributeMap === null)
                    $par1Packet19EntityAction.$attributeMap = nms_ServersideAttributeMap__init_();
                $par1Packet19EntityAction = $par1Packet19EntityAction.$attributeMap.$attributes;
                if (var$3 === null) {
                    $par1Packet19EntityAction = $par1Packet19EntityAction.$elementData.data[0];
                    while ($par1Packet19EntityAction !== null && $par1Packet19EntityAction.$key !== null) {
                        $par1Packet19EntityAction = $par1Packet19EntityAction.$next3;
                    }
                } else {
                    var$4 = jl_String_hashCode(var$3.$field_111115_a);
                    var$5 = $par1Packet19EntityAction.$elementData.data;
                    $par1Packet19EntityAction = var$5[var$4 & (var$5.length - 1 | 0)];
                    while ($par1Packet19EntityAction !== null && !($par1Packet19EntityAction.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$3, $par1Packet19EntityAction.$key))) {
                        $par1Packet19EntityAction = $par1Packet19EntityAction.$next3;
                    }
                }
                var$6 = $par1Packet19EntityAction === null ? null : $par1Packet19EntityAction.$value0;
                nms_EntityLivingBase_$callClinit();
                $par1Packet19EntityAction = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
                var$3 = var$6.$field_111135_e;
                if ($par1Packet19EntityAction === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$7 = $par1Packet19EntityAction.$mostSigBits;
                    var$8 = $par1Packet19EntityAction.$leastSigBits;
                    var$9 = Long_xor(var$7, var$8);
                    var$4 = Long_hi(var$9) ^ Long_lo(var$9);
                    var$5 = var$3.$elementData.data;
                    var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$4) {
                            c: {
                                var$10 = var$3.$key;
                                if ($par1Packet19EntityAction !== var$10) {
                                    if (null !== var$10 && var$10 instanceof nle_ProfileUUID) {
                                        var$10 = var$10;
                                        var$11 = Long_eq(var$7, var$10.$mostSigBits) && Long_eq(var$8, var$10.$leastSigBits) ? 1 : 0;
                                    } else
                                        var$11 = 0;
                                    if (!var$11) {
                                        var$11 = 0;
                                        break c;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                $par1Packet19EntityAction = var$3 === null ? null : var$3.$value0;
                if ($par1Packet19EntityAction !== null)
                    nms_ModifiableAttributeInstance_removeModifier(var$6, nms_EntityLivingBase_sprintingSpeedBoostModifier);
                break a;
            }
            if (var$2 == 3) {
                $par1Packet19EntityAction = $this.$playerEntity;
                var$4 = 0;
                var$11 = 1;
                var$2 = 1;
                if ($par1Packet19EntityAction.$sleeping) {
                    var$10 = $par1Packet19EntityAction.$worldObj.$theEntityTracker;
                    var$3 = new nms_Packet18Animation;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$12 = $par1Packet19EntityAction.$entityId;
                    var$3.$entityId1 = var$12;
                    var$3.$animate = 3;
                    var$10 = var$10.$trackedEntityIDs;
                    var$13 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
                    var$13 = var$13 ^ (var$13 >>> 7 | 0) ^ (var$13 >>> 4 | 0);
                    var$5 = var$10.$slots.data;
                    var$10 = var$5[var$13 & (var$5.length - 1 | 0)];
                    d: {
                        while (var$10 !== null) {
                            if (var$10.$hashEntry == var$12) {
                                var$10 = var$10.$valueEntry;
                                break d;
                            }
                            var$10 = var$10.$nextEntry0;
                        }
                        var$10 = null;
                    }
                    var$10 = var$10;
                    if (var$10 !== null) {
                        var$6 = var$10.$trackingPlayers.$backingMap;
                        if (var$6.$cachedKeySet === null) {
                            var$14 = new ju_HashMap$1;
                            var$14.$this$0 = var$6;
                            ju_AbstractCollection__init_(var$14);
                            var$6.$cachedKeySet = var$14;
                        }
                        var$15 = var$6.$cachedKeySet.$iterator();
                        var$16 = var$3 instanceof nms_Packet3Chat;
                        var$14 = var$3;
                        while (var$15.$hasNext()) {
                            e: {
                                var$6 = (var$15.$next()).$playerNetServerHandler;
                                if (var$16) {
                                    var$17 = var$6.$playerEntity.$chatVisibility;
                                    if (var$17 == 2)
                                        break e;
                                    if (var$17 == 1 && !var$14.$isServer)
                                        break e;
                                }
                                try {
                                    var$6 = var$6.$netManager;
                                    $ptr = 3;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$18 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$18);
                                    jl_System_errCache = var$18;
                                }
                                jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                            }
                        }
                        var$10 = var$10.$myEntity;
                        if (var$10 instanceof nms_EntityPlayerMP)
                            f: {
                                var$10 = var$10.$playerNetServerHandler;
                                if (var$16) {
                                    var$16 = var$10.$playerEntity.$chatVisibility;
                                    if (var$16 == 2)
                                        break f;
                                    if (var$16 == 1 && !var$14.$isServer)
                                        break f;
                                }
                                try {
                                    var$10 = var$10.$netManager;
                                    $ptr = 4;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$3 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$10 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                                    jl_System_errCache = var$10;
                                }
                                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                            }
                    }
                }
                $ptr = 1;
                continue main;
            }
            if (var$2 == 6) {
                var$3 = $this.$playerEntity.$ridingEntity;
                if (var$3 === null)
                    break a;
                if (!(var$3 instanceof nms_EntityHorse))
                    break a;
                nms_EntityHorse_setJumpPower(var$3, $par1Packet19EntityAction.$auxData0);
                break a;
            }
            if (var$2 != 7)
                break a;
            $par1Packet19EntityAction = $this.$playerEntity;
            var$3 = $par1Packet19EntityAction.$ridingEntity;
            if (var$3 === null)
                break a;
            if (!(var$3 instanceof nms_EntityHorse))
                break a;
            var$3 = var$3;
            if (!var$3.$worldObj.$isRemote) {
                var$10 = var$3.$riddenByEntity;
                if (!(var$10 !== null && var$10 !== $par1Packet19EntityAction)) {
                    var$10 = var$3.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$14 = jl_Integer_integerCache.data[144];
                    if (var$14 === null) {
                        var$10 = var$10.$elementData.data[0];
                        while (var$10 !== null && var$10.$key !== null) {
                            var$10 = var$10.$next3;
                        }
                    } else {
                        var$13 = jl_Integer_hashCode(var$14.$value);
                        var$5 = var$10.$elementData.data;
                        var$10 = var$5[var$13 & (var$5.length - 1 | 0)];
                        while (var$10 !== null && !(var$10.$origKeyHash == var$13 && ju_HashMap_areEqualKeys(var$14, var$10.$key))) {
                            var$10 = var$10.$next3;
                        }
                    }
                    var$10 = var$10 === null ? null : var$10.$value0;
                    if (!(var$10.$watchedObject.$value & 2) ? 0 : 1) {
                        var$10 = var$3.$horseChest;
                        var$6 = nms_EntityHorse_getEntityName(var$3);
                        var$10.$field_94051_e = 1;
                        var$10.$inventoryTitle = var$6;
                        var$10 = var$3.$horseChest;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
        }
        return;
    case 1:
        nms_EntityPlayer_wakeUpPlayer($par1Packet19EntityAction, var$4, var$11, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $par1Packet19EntityAction.$playerNetServerHandler;
        if (var$3 !== null)
            g: {
                var$19 = $par1Packet19EntityAction.$posX;
                var$20 = $par1Packet19EntityAction.$posY;
                var$21 = $par1Packet19EntityAction.$posZ;
                var$22 = $par1Packet19EntityAction.$rotationYaw;
                var$23 = $par1Packet19EntityAction.$rotationPitch;
                var$3.$hasMoved = 0;
                var$3.$lastPosX = var$19;
                var$3.$lastPosY = var$20;
                var$3.$lastPosZ = var$21;
                nms_Entity_setPositionAndRotation(var$3.$playerEntity, var$19, var$20, var$21, var$22, var$23);
                $par1Packet19EntityAction = var$3.$playerEntity.$playerNetServerHandler;
                var$3 = new nms_Packet13PlayerLookMove;
                var$24 = var$20 + 1.6200000047683716;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3.$xPosition = var$19;
                var$3.$yPosition = var$24;
                var$3.$stance = var$20;
                var$3.$zPosition = var$21;
                var$3.$yaw = var$22;
                var$3.$pitch = var$23;
                var$3.$onGround0 = 0;
                var$3.$rotating = 1;
                var$3.$moving = 1;
                if (var$3 instanceof nms_Packet3Chat) {
                    var$10 = var$3;
                    var$2 = $par1Packet19EntityAction.$playerEntity.$chatVisibility;
                    if (var$2 == 2)
                        break g;
                    if (var$2 == 1 && !var$10.$isServer)
                        break g;
                }
                try {
                    $par1Packet19EntityAction = $par1Packet19EntityAction.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Packet19EntityAction = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$3 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = var$3;
                }
                jl_Throwable_printStackTrace($par1Packet19EntityAction, jl_System_errCache);
            }
        $this.$hasMoved = 0;
        return;
    case 2:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet19EntityAction, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet19EntityAction = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1Packet19EntityAction, jl_System_errCache);
        }
        $this.$hasMoved = 0;
        return;
    case 3:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$18 = jl_System_errCache;
            if (var$18 === null) {
                var$18 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$18);
                jl_System_errCache = var$18;
            }
            var$18 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$18);
        }
        i: while (true) {
            while (true) {
                if (!var$15.$hasNext())
                    break i;
                var$6 = (var$15.$next()).$playerNetServerHandler;
                if (!var$16)
                    break;
                var$17 = var$6.$playerEntity.$chatVisibility;
                if (var$17 == 2)
                    continue;
                if (var$17 != 1)
                    break;
                if (var$14.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$18 = jl_System_errCache;
            if (var$18 === null) {
                var$18 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$18);
                jl_System_errCache = var$18;
            }
            var$18 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$18);
        }
        var$10 = var$10.$myEntity;
        if (var$10 instanceof nms_EntityPlayerMP)
            j: {
                var$10 = var$10.$playerNetServerHandler;
                if (var$16) {
                    var$16 = var$10.$playerEntity.$chatVisibility;
                    if (var$16 == 2)
                        break j;
                    if (var$16 == 1 && !var$14.$isServer)
                        break j;
                }
                try {
                    var$10 = var$10.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$10 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$10;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
            }
        $ptr = 1;
        continue main;
    case 4:
        h: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$10, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break h;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$10 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$10, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$10;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        $ptr = 1;
        continue main;
    case 5:
        nms_EntityPlayerMP_displayGUIHorse($par1Packet19EntityAction, var$3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet19EntityAction, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $ptr);
},
nms_NetServerHandler_handleKickDisconnect = ($this, $par1Packet255KickDisconnect) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Packet255KickDisconnect = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$netManager;
        $par1Packet255KickDisconnect = $rt_s(2089);
        var$3 = $rt_createArray(jl_Object, 0);
        $ptr = 1;
    case 1:
        nles_WorkerNetworkManager_networkShutdown(var$2, $par1Packet255KickDisconnect, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet255KickDisconnect, var$2, var$3, $ptr);
},
nms_NetServerHandler_handleUseEntity = ($this, $par1Packet7UseEntity) => {
    let $var3, var$3, $var4, $var2, var$6, var$7, $var5, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1Packet7UseEntity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$mcServer2;
        var$3 = $this.$playerEntity;
        $var4 = var$3.$dimension;
        $var2 = $var4 == (-1) ? $var3.$worldServers.data[1] : $var4 != 1 ? $var3.$worldServers.data[0] : $var3.$worldServers.data[2];
        $var4 = $par1Packet7UseEntity.$targetEntity1;
        $var3 = $var2.$entityIdMap;
        var$6 = $var4 ^ ($var4 >>> 20 | 0) ^ ($var4 >>> 12 | 0);
        var$6 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
        var$7 = $var3.$slots.data;
        $var3 = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while ($var3 !== null) {
                if ($var3.$hashEntry == $var4) {
                    $var3 = $var3.$valueEntry;
                    break a;
                }
                $var3 = $var3.$nextEntry0;
            }
            $var3 = null;
        }
        $var3 = $var3;
        if ($var3 === null)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = 36.0;
        if (!$var4)
            $var5 = 9.0;
        var$3 = $this.$playerEntity;
        var$9 = var$3.$posX - $var3.$posX;
        var$10 = var$3.$posY - $var3.$posY;
        var$11 = var$3.$posZ - $var3.$posZ;
        if (var$9 * var$9 + var$10 * var$10 + var$11 * var$11 < $var5) {
            $var4 = $par1Packet7UseEntity.$isLeftClick;
            if (!$var4) {
                $ptr = 2;
                continue main;
            }
            if ($var4 == 1) {
                if (!($var3 instanceof nms_EntityItem) && !($var3 instanceof nms_EntityXPOrb) && !($var3 instanceof nms_EntityArrow) && $var3 !== var$3) {
                    $ptr = 4;
                    continue main;
                }
                $par1Packet7UseEntity = $rt_s(2090);
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        nms_EntityPlayer_interactWith(var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_NetServerHandler_kickPlayerFromServer($this, $par1Packet7UseEntity);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$playerEntity.$username;
        $par1Packet7UseEntity = new jl_StringBuilder;
        $par1Packet7UseEntity.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par1Packet7UseEntity, $par1Packet7UseEntity.$length0, $rt_s(2091));
        $var4 = $par1Packet7UseEntity.$length0;
        if (var$3 === null)
            var$3 = $rt_s(1);
        jl_AbstractStringBuilder_insert($par1Packet7UseEntity, $var4, var$3);
        jl_AbstractStringBuilder_insert($par1Packet7UseEntity, $par1Packet7UseEntity.$length0, $rt_s(2092));
        $var3 = new jl_String;
        var$7 = $par1Packet7UseEntity.$buffer;
        var$12 = var$7.data;
        var$6 = $par1Packet7UseEntity.$length0;
        var$13 = var$12.length;
        if (var$6 >= 0 && var$6 <= (var$13 - 0 | 0)) {
            $var3.$nativeString = $rt_charArrayToString(var$7.data, 0, var$6);
            nles_IntegratedServer_$callClinit();
            var$3 = nles_IntegratedServer_logger.$logger;
            $par1Packet7UseEntity = jul_Level_WARNING;
            $var2 = new jul_LogRecord;
            $var2.$level = $par1Packet7UseEntity;
            $var2.$message0 = $var3;
            $var2.$millis = jl_System_currentTimeMillis();
            var$14 = jul_LogRecord_sequenceNumberGenerator;
            jul_LogRecord_sequenceNumberGenerator = Long_add(var$14, Long_fromInt(1));
            $var2.$sequenceNumber = var$14;
            $var2.$threadID = jl_Thread_currentThread.$id2;
            jul_Logger_log(var$3, $var2);
            return;
        }
        $par1Packet7UseEntity = new jl_IndexOutOfBoundsException;
        $par1Packet7UseEntity.$suppressionEnabled = 1;
        $par1Packet7UseEntity.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1Packet7UseEntity);
        $rt_throw($par1Packet7UseEntity);
    case 4:
        nms_EntityPlayer_attackTargetEntityWithCurrentItem(var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet7UseEntity, $var3, var$3, $var4, $var2, var$6, var$7, $var5, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_NetServerHandler_handleClientCommand = ($this, $par1Packet205ClientCommand) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Packet205ClientCommand = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1Packet205ClientCommand.$forceRespawn != 1)
            return;
        $par1Packet205ClientCommand = $this.$playerEntity;
        if ($par1Packet205ClientCommand.$playerConqueredTheEnd) {
            $var2 = $this.$mcServer2.$serverConfigManager;
            var$3 = 0;
            var$4 = 1;
            $ptr = 1;
            continue main;
        }
        if (!$par1Packet205ClientCommand.$worldObj.$worldInfo.$isHardcoreModeEnabled()) {
            $par1Packet205ClientCommand = $this.$playerEntity.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[134];
            if (var$5 === null) {
                $par1Packet205ClientCommand = $par1Packet205ClientCommand.$elementData.data[0];
                while ($par1Packet205ClientCommand !== null && $par1Packet205ClientCommand.$key !== null) {
                    $par1Packet205ClientCommand = $par1Packet205ClientCommand.$next3;
                }
            } else {
                var$6 = var$5.$value;
                var$7 = $par1Packet205ClientCommand.$elementData.data;
                $par1Packet205ClientCommand = var$7[var$6 & (var$7.length - 1 | 0)];
                while ($par1Packet205ClientCommand !== null) {
                    if ($par1Packet205ClientCommand.$origKeyHash == var$6) {
                        $var2 = $par1Packet205ClientCommand.$key;
                        if (var$5 !== $var2 && !(var$5 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$6 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $par1Packet205ClientCommand = $par1Packet205ClientCommand.$next3;
                }
            }
            $par1Packet205ClientCommand = $par1Packet205ClientCommand === null ? null : $par1Packet205ClientCommand.$value0;
            if ($par1Packet205ClientCommand.$watchedObject.$value3 > 0.0)
                return;
            $var2 = $this.$mcServer2.$serverConfigManager;
            $par1Packet205ClientCommand = $this.$playerEntity;
            var$3 = 0;
            var$4 = 0;
            $ptr = 5;
            continue main;
        }
        var$5 = $this.$mcServer2.$serverOwner;
        if (var$5 === null ? 0 : 1) {
            $var2 = $this.$playerEntity.$username;
            if ($var2 === var$5)
                var$3 = 1;
            else if (!(var$5 instanceof jl_String))
                var$3 = 0;
            else {
                $par1Packet205ClientCommand = var$5;
                var$3 = $var2.$nativeString !== $par1Packet205ClientCommand.$nativeString ? 0 : 1;
            }
            if (var$3) {
                $par1Packet205ClientCommand = $this.$playerEntity.$playerNetServerHandler;
                $var2 = $rt_s(2093);
                $ptr = 3;
                continue main;
            }
        }
        $var2 = new nms_BanEntry;
        var$8 = $this.$playerEntity.$username;
        nms_BanEntry_$callClinit();
        $par1Packet205ClientCommand = new ju_Date;
        $par1Packet205ClientCommand.$value11 = jl_System_currentTimeMillis();
        $var2.$banStartDate = $par1Packet205ClientCommand;
        $var2.$bannedBy = $rt_s(2094);
        $var2.$reason0 = $rt_s(2095);
        $var2.$username0 = var$8;
        $var2.$reason0 = $rt_s(2096);
        var$9 = $this.$mcServer2.$serverConfigManager.$bannedPlayers;
        $par1Packet205ClientCommand = var$9.$theBanList.$internalMap;
        var$5 = var$8.$nativeString.toLowerCase();
        if (var$5 !== var$8.$nativeString)
            var$8 = jl_String__init_0(var$5);
        var$6 = $par1Packet205ClientCommand.$elementCount;
        ju_LinkedHashMap_putImpl($par1Packet205ClientCommand, var$8, $var2, 0, $par1Packet205ClientCommand.$accessOrder);
        nms_BanList_saveToFile(var$9, 1);
        $par1Packet205ClientCommand = $this.$playerEntity.$playerNetServerHandler;
        $var2 = $rt_s(2093);
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_ServerConfigurationManager_respawnPlayer($var2, $par1Packet205ClientCommand, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet205ClientCommand = $tmp;
        $this.$playerEntity = $par1Packet205ClientCommand;
        return;
    case 2:
        nms_NetServerHandler_kickPlayerFromServer($par1Packet205ClientCommand, $var2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_NetServerHandler_kickPlayerFromServer($par1Packet205ClientCommand, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet205ClientCommand = $this.$mcServer2;
        $ptr = 4;
    case 4:
        nms_MinecraftServer_deleteWorldAndStopServer($par1Packet205ClientCommand);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_ServerConfigurationManager_respawnPlayer($var2, $par1Packet205ClientCommand, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet205ClientCommand = $tmp;
        $this.$playerEntity = $par1Packet205ClientCommand;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet205ClientCommand, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_NetServerHandler_handleRespawn = ($this, $par1Packet9Respawn) => {
    return;
},
nms_NetServerHandler_handleCloseWindow = ($this, $par1Packet101CloseWindow) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1Packet101CloseWindow = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1Packet101CloseWindow = $this.$playerEntity;
        var$2 = $par1Packet101CloseWindow.$openContainer;
        $ptr = 1;
    case 1:
        var$2.$onContainerClosed($par1Packet101CloseWindow);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet101CloseWindow.$openContainer = $par1Packet101CloseWindow.$inventoryContainer;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet101CloseWindow, var$2, $ptr);
},
nms_NetServerHandler_handleWindowClick = ($this, $par1Packet102WindowClick) => {
    let $var2, $var3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1Packet102WindowClick = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$playerEntity;
        $var3 = $var2.$openContainer;
        if ($var3.$windowId == $par1Packet102WindowClick.$window_Id && nms_Container_isPlayerNotUsingContainer($var3, $var2)) {
            $var2 = $this.$playerEntity;
            $var3 = $var2.$openContainer;
            $var4 = $par1Packet102WindowClick.$inventorySlot;
            var$5 = $par1Packet102WindowClick.$mouseClick;
            var$6 = $par1Packet102WindowClick.$holdingShift;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_Container_slotClick($var3, $var4, var$5, var$6, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = $par1Packet102WindowClick.$itemStack1;
        nms_ItemStack_$callClinit();
        if (!($var3 === null && $var2 === null ? 1 : $var3 !== null && $var2 !== null ? nms_ItemStack_isItemStackEqual($var3, $var2) : 0)) {
            $var2 = $this.$field_72586_s;
            $var4 = $this.$playerEntity.$openContainer.$windowId;
            var$5 = $par1Packet102WindowClick.$action0;
            if (var$5 >= (-128) && var$5 <= 127) {
                jl_Short_ensureShortCache();
                $var3 = jl_Short_shortCache.data[var$5 + 128 | 0];
            } else {
                $var3 = new jl_Short;
                $var3.$value6 = var$5;
            }
            a: {
                nms_IntHashMap_addKey($var2, $var4, $var3);
                $var2 = $this.$playerEntity.$playerNetServerHandler;
                $var3 = new nms_Packet106Transaction;
                var$5 = $par1Packet102WindowClick.$window_Id;
                var$6 = $par1Packet102WindowClick.$action0;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var3.$windowId4 = var$5;
                $var3.$shortWindowId = var$6;
                $var3.$accepted = 0;
                if ($var3 instanceof nms_Packet3Chat) {
                    $par1Packet102WindowClick = $var3;
                    var$5 = $var2.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break a;
                    if (var$5 == 1 && !$par1Packet102WindowClick.$isServer)
                        break a;
                }
                try {
                    $par1Packet102WindowClick = $var2.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Packet102WindowClick = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    $var3 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var3);
                    $var3.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var2);
                    $var2.$out0 = $var3;
                    $var3 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var3);
                    $var2.$sb = $var3;
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
            }
            $par1Packet102WindowClick = $this.$playerEntity;
            $var2 = $par1Packet102WindowClick.$openContainer.$playerList;
            ju_HashMap_putImpl($var2.$backingMap, $par1Packet102WindowClick, $var2);
            $var3 = new ju_ArrayList;
            $var3.$array = $rt_createArray(jl_Object, 10);
            $var4 = 0;
            while (true) {
                $par1Packet102WindowClick = $this.$playerEntity;
                $var2 = $par1Packet102WindowClick.$openContainer;
                var$7 = $var2.$inventorySlots;
                var$5 = $rt_compare($var4, var$7.$size0);
                if (var$5 >= 0) {
                    b: {
                        var$8 = $par1Packet102WindowClick.$playerNetServerHandler;
                        var$7 = nms_Packet104WindowItems__init_($var2.$windowId, $var3);
                        if (var$7 instanceof nms_Packet3Chat) {
                            $var2 = var$7;
                            var$5 = var$8.$playerEntity.$chatVisibility;
                            if (var$5 == 2)
                                break b;
                            if (var$5 == 1 && !$var2.$isServer)
                                break b;
                        }
                        try {
                            $var2 = var$8.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var2 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var3 = new otcic_JSStderrPrintStream;
                            var$7 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$7);
                            var$7.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var3, var$7);
                            $var3.$sb = jl_StringBuilder__init_();
                            $var3.$buffer0 = $rt_createCharArray(32);
                            $var3.$autoFlush = 0;
                            $var3.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var3;
                        }
                        jl_Throwable_printStackTrace($var2, jl_System_errCache);
                    }
                    $var2 = $par1Packet102WindowClick.$playerNetServerHandler;
                    $var3 = new nms_Packet103SetSlot;
                    $par1Packet102WindowClick = $par1Packet102WindowClick.$inventory0.$itemStack;
                    $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var3.$windowId1 = (-1);
                    $var3.$itemSlot = (-1);
                    if ($par1Packet102WindowClick !== null) {
                        var$7 = new nms_ItemStack;
                        $var4 = $par1Packet102WindowClick.$itemID;
                        var$5 = $par1Packet102WindowClick.$stackSize;
                        var$6 = $par1Packet102WindowClick.$itemDamage;
                        var$7.$itemID = $var4;
                        var$7.$stackSize = var$5;
                        var$7.$itemDamage = var$6;
                        if (var$6 < 0)
                            var$7.$itemDamage = 0;
                        $par1Packet102WindowClick = $par1Packet102WindowClick.$stackTagCompound;
                        if ($par1Packet102WindowClick !== null) {
                            var$8 = new nms_NBTTagCompound;
                            var$9 = $par1Packet102WindowClick.$name;
                            if (var$9 === null)
                                var$9 = $rt_s(3);
                            var$8.$name = var$9;
                            var$9 = new ju_HashMap;
                            ju_AbstractMap__init_(var$9);
                            $var4 = ju_HashMap_calculateCapacity(16);
                            var$9.$elementCount = 0;
                            var$9.$elementData = ju_HashMap_newElementArray(var$9, $var4);
                            var$9.$loadFactor = 0.75;
                            ju_HashMap_computeThreshold(var$9);
                            var$8.$tagMap = var$9;
                            var$9 = $par1Packet102WindowClick.$tagMap;
                            if (var$9.$cachedKeySet === null) {
                                var$10 = new ju_HashMap$1;
                                var$10.$this$0 = var$9;
                                jl_Object__init_(var$10);
                                var$9.$cachedKeySet = var$10;
                            }
                            var$9 = var$9.$cachedKeySet.$iterator();
                            while (var$9.$hasNext()) {
                                var$10 = var$9.$next();
                                var$11 = $par1Packet102WindowClick.$tagMap;
                                if (var$10 === null) {
                                    var$11 = var$11.$elementData.data[0];
                                    while (var$11 !== null && var$11.$key !== null) {
                                        var$11 = var$11.$next3;
                                    }
                                } else {
                                    c: {
                                        if (!var$10.$hashCode1) {
                                            $var4 = 0;
                                            while (true) {
                                                if ($var4 >= var$10.$nativeString.length)
                                                    break c;
                                                var$10.$hashCode1 = (31 * var$10.$hashCode1 | 0) + var$10.$nativeString.charCodeAt($var4) | 0;
                                                $var4 = $var4 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$6 = var$10.$hashCode1;
                                    var$12 = var$11.$elementData.data;
                                    var$11 = var$12[var$6 & (var$12.length - 1 | 0)];
                                    while (var$11 !== null) {
                                        if (var$11.$origKeyHash == var$6) {
                                            var$13 = var$11.$key;
                                            if (var$10 !== var$13 && !jl_String_equals(var$10, var$13) ? 0 : 1)
                                                break;
                                        }
                                        var$11 = var$11.$next3;
                                    }
                                }
                                var$11 = var$11 === null ? null : var$11.$value0;
                                var$11 = var$11.$copy();
                                var$13 = var$8.$tagMap;
                                if (var$10 !== null)
                                    var$11.$name = var$10;
                                else
                                    var$11.$name = $rt_s(3);
                                ju_HashMap_putImpl(var$13, var$10, var$11);
                            }
                            var$7.$stackTagCompound = var$8;
                        }
                        $par1Packet102WindowClick = var$7;
                    }
                    d: {
                        $var3.$myItemStack = $par1Packet102WindowClick;
                        if ($var3 instanceof nms_Packet3Chat) {
                            $par1Packet102WindowClick = $var3;
                            var$5 = $var2.$playerEntity.$chatVisibility;
                            if (var$5 == 2)
                                break d;
                            if (var$5 == 1 && !$par1Packet102WindowClick.$isServer)
                                break d;
                        }
                        try {
                            $par1Packet102WindowClick = $var2.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Packet102WindowClick = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var2 = new otcic_JSStderrPrintStream;
                            $var3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_($var3);
                            $var3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_($var2, $var3);
                            $var2.$sb = jl_StringBuilder__init_();
                            $var2.$buffer0 = $rt_createCharArray(32);
                            $var2.$autoFlush = 0;
                            $var2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var2;
                        }
                        jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
                    }
                    return;
                }
                if ($var4 < 0)
                    break;
                if (var$5 >= 0)
                    break;
                $par1Packet102WindowClick = var$7.$array.data[$var4];
                $par1Packet102WindowClick = $par1Packet102WindowClick.$inventory.$getStackInSlot($par1Packet102WindowClick.$slotIndex);
                ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                var$12 = $var3.$array.data;
                var$6 = $var3.$size0;
                $var3.$size0 = var$6 + 1 | 0;
                var$12[var$6] = $par1Packet102WindowClick;
                $var3.$modCount = $var3.$modCount + 1 | 0;
                $var4 = $var4 + 1 | 0;
            }
            $par1Packet102WindowClick = new jl_IndexOutOfBoundsException;
            $par1Packet102WindowClick.$suppressionEnabled = 1;
            $par1Packet102WindowClick.$writableStackTrace = 1;
            $rt_throw($par1Packet102WindowClick);
        }
        e: {
            $var2 = $this.$playerEntity.$playerNetServerHandler;
            $var3 = new nms_Packet106Transaction;
            $var4 = $par1Packet102WindowClick.$window_Id;
            var$5 = $par1Packet102WindowClick.$action0;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var3.$windowId4 = $var4;
            $var3.$shortWindowId = var$5;
            $var3.$accepted = 1;
            if ($var3 instanceof nms_Packet3Chat) {
                $par1Packet102WindowClick = $var3;
                var$5 = $var2.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break e;
                if (var$5 == 1 && !$par1Packet102WindowClick.$isServer)
                    break e;
            }
            try {
                $par1Packet102WindowClick = $var2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet102WindowClick = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var3);
                $var3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var3);
                $var2.$sb = $var3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
        }
        $par1Packet102WindowClick = $this.$playerEntity;
        $par1Packet102WindowClick.$playerInventoryBeingManipulated = 1;
        $par1Packet102WindowClick = $par1Packet102WindowClick.$openContainer;
        $ptr = 4;
        continue main;
    case 2:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet102WindowClick, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet102WindowClick = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var3);
                $var3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var3);
                $var2.$sb = $var3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
        }
        $par1Packet102WindowClick = $this.$playerEntity;
        $par1Packet102WindowClick.$playerInventoryBeingManipulated = 1;
        $par1Packet102WindowClick = $par1Packet102WindowClick.$openContainer;
        $ptr = 4;
        continue main;
    case 3:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet102WindowClick, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet102WindowClick = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var3);
                $var3.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var3);
                $var2.$sb = $var3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
        }
        $par1Packet102WindowClick = $this.$playerEntity;
        $var2 = $par1Packet102WindowClick.$openContainer.$playerList;
        ju_HashMap_putImpl($var2.$backingMap, $par1Packet102WindowClick, $var2);
        $var3 = new ju_ArrayList;
        $var3.$array = $rt_createArray(jl_Object, 10);
        $var4 = 0;
        while (true) {
            $par1Packet102WindowClick = $this.$playerEntity;
            $var2 = $par1Packet102WindowClick.$openContainer;
            var$7 = $var2.$inventorySlots;
            var$5 = $rt_compare($var4, var$7.$size0);
            if (var$5 >= 0) {
                a: {
                    var$8 = $par1Packet102WindowClick.$playerNetServerHandler;
                    var$7 = nms_Packet104WindowItems__init_($var2.$windowId, $var3);
                    if (var$7 instanceof nms_Packet3Chat) {
                        $var2 = var$7;
                        var$5 = var$8.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break a;
                        if (var$5 == 1 && !$var2.$isServer)
                            break a;
                    }
                    try {
                        $var2 = var$8.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        var$7 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$7);
                        var$7.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var3, var$7);
                        $var3.$sb = jl_StringBuilder__init_();
                        $var3.$buffer0 = $rt_createCharArray(32);
                        $var3.$autoFlush = 0;
                        $var3.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace($var2, jl_System_errCache);
                }
                $var2 = $par1Packet102WindowClick.$playerNetServerHandler;
                $var3 = new nms_Packet103SetSlot;
                $par1Packet102WindowClick = $par1Packet102WindowClick.$inventory0.$itemStack;
                $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var3.$windowId1 = (-1);
                $var3.$itemSlot = (-1);
                if ($par1Packet102WindowClick !== null) {
                    var$7 = new nms_ItemStack;
                    $var4 = $par1Packet102WindowClick.$itemID;
                    var$5 = $par1Packet102WindowClick.$stackSize;
                    var$6 = $par1Packet102WindowClick.$itemDamage;
                    var$7.$itemID = $var4;
                    var$7.$stackSize = var$5;
                    var$7.$itemDamage = var$6;
                    if (var$6 < 0)
                        var$7.$itemDamage = 0;
                    $par1Packet102WindowClick = $par1Packet102WindowClick.$stackTagCompound;
                    if ($par1Packet102WindowClick !== null) {
                        var$8 = new nms_NBTTagCompound;
                        var$9 = $par1Packet102WindowClick.$name;
                        if (var$9 === null)
                            var$9 = $rt_s(3);
                        var$8.$name = var$9;
                        var$9 = new ju_HashMap;
                        ju_AbstractMap__init_(var$9);
                        $var4 = ju_HashMap_calculateCapacity(16);
                        var$9.$elementCount = 0;
                        var$9.$elementData = ju_HashMap_newElementArray(var$9, $var4);
                        var$9.$loadFactor = 0.75;
                        ju_HashMap_computeThreshold(var$9);
                        var$8.$tagMap = var$9;
                        var$9 = $par1Packet102WindowClick.$tagMap;
                        if (var$9.$cachedKeySet === null) {
                            var$10 = new ju_HashMap$1;
                            var$10.$this$0 = var$9;
                            jl_Object__init_(var$10);
                            var$9.$cachedKeySet = var$10;
                        }
                        var$9 = var$9.$cachedKeySet.$iterator();
                        while (var$9.$hasNext()) {
                            var$10 = var$9.$next();
                            var$11 = $par1Packet102WindowClick.$tagMap;
                            if (var$10 === null) {
                                var$11 = var$11.$elementData.data[0];
                                while (var$11 !== null && var$11.$key !== null) {
                                    var$11 = var$11.$next3;
                                }
                            } else {
                                g: {
                                    if (!var$10.$hashCode1) {
                                        $var4 = 0;
                                        while (true) {
                                            if ($var4 >= var$10.$nativeString.length)
                                                break g;
                                            var$10.$hashCode1 = (31 * var$10.$hashCode1 | 0) + var$10.$nativeString.charCodeAt($var4) | 0;
                                            $var4 = $var4 + 1 | 0;
                                        }
                                    }
                                }
                                var$6 = var$10.$hashCode1;
                                var$12 = var$11.$elementData.data;
                                var$11 = var$12[var$6 & (var$12.length - 1 | 0)];
                                while (var$11 !== null) {
                                    if (var$11.$origKeyHash == var$6) {
                                        var$13 = var$11.$key;
                                        if (var$10 !== var$13 && !jl_String_equals(var$10, var$13) ? 0 : 1)
                                            break;
                                    }
                                    var$11 = var$11.$next3;
                                }
                            }
                            var$11 = var$11 === null ? null : var$11.$value0;
                            var$11 = var$11.$copy();
                            var$13 = var$8.$tagMap;
                            if (var$10 !== null)
                                var$11.$name = var$10;
                            else
                                var$11.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$13, var$10, var$11);
                        }
                        var$7.$stackTagCompound = var$8;
                    }
                    $par1Packet102WindowClick = var$7;
                }
                h: {
                    $var3.$myItemStack = $par1Packet102WindowClick;
                    if ($var3 instanceof nms_Packet3Chat) {
                        $par1Packet102WindowClick = $var3;
                        var$5 = $var2.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break h;
                        if (var$5 == 1 && !$par1Packet102WindowClick.$isServer)
                            break h;
                    }
                    try {
                        $par1Packet102WindowClick = $var2.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1Packet102WindowClick = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var2 = new otcic_JSStderrPrintStream;
                        $var3 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_($var3);
                        $var3.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_($var2, $var3);
                        $var2.$sb = jl_StringBuilder__init_();
                        $var2.$buffer0 = $rt_createCharArray(32);
                        $var2.$autoFlush = 0;
                        $var2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var2;
                    }
                    jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
                }
                return;
            }
            if ($var4 < 0)
                break;
            if (var$5 >= 0)
                break;
            $par1Packet102WindowClick = var$7.$array.data[$var4];
            $par1Packet102WindowClick = $par1Packet102WindowClick.$inventory.$getStackInSlot($par1Packet102WindowClick.$slotIndex);
            ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
            var$12 = $var3.$array.data;
            var$6 = $var3.$size0;
            $var3.$size0 = var$6 + 1 | 0;
            var$12[var$6] = $par1Packet102WindowClick;
            $var3.$modCount = $var3.$modCount + 1 | 0;
            $var4 = $var4 + 1 | 0;
        }
        $par1Packet102WindowClick = new jl_IndexOutOfBoundsException;
        $par1Packet102WindowClick.$suppressionEnabled = 1;
        $par1Packet102WindowClick.$writableStackTrace = 1;
        $rt_throw($par1Packet102WindowClick);
    case 4:
        $par1Packet102WindowClick.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet102WindowClick = $this.$playerEntity;
        if (!$par1Packet102WindowClick.$playerInventoryBeingManipulated) {
            $var3 = $par1Packet102WindowClick.$playerNetServerHandler;
            $var2 = new nms_Packet103SetSlot;
            $par1Packet102WindowClick = $par1Packet102WindowClick.$inventory0.$itemStack;
            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var2.$windowId1 = (-1);
            $var2.$itemSlot = (-1);
            if ($par1Packet102WindowClick !== null) {
                var$7 = new nms_ItemStack;
                $var4 = $par1Packet102WindowClick.$itemID;
                var$5 = $par1Packet102WindowClick.$stackSize;
                var$6 = $par1Packet102WindowClick.$itemDamage;
                var$7.$itemID = $var4;
                var$7.$stackSize = var$5;
                var$7.$itemDamage = var$6;
                if (var$6 < 0)
                    var$7.$itemDamage = 0;
                $par1Packet102WindowClick = $par1Packet102WindowClick.$stackTagCompound;
                if ($par1Packet102WindowClick !== null) {
                    var$8 = new nms_NBTTagCompound;
                    var$9 = $par1Packet102WindowClick.$name;
                    if (var$9 === null)
                        var$9 = $rt_s(3);
                    var$8.$name = var$9;
                    var$9 = new ju_HashMap;
                    ju_AbstractMap__init_(var$9);
                    $var4 = ju_HashMap_calculateCapacity(16);
                    var$9.$elementCount = 0;
                    var$9.$elementData = ju_HashMap_newElementArray(var$9, $var4);
                    var$9.$loadFactor = 0.75;
                    ju_HashMap_computeThreshold(var$9);
                    var$8.$tagMap = var$9;
                    var$9 = $par1Packet102WindowClick.$tagMap;
                    if (var$9.$cachedKeySet === null) {
                        var$10 = new ju_HashMap$1;
                        var$10.$this$0 = var$9;
                        jl_Object__init_(var$10);
                        var$9.$cachedKeySet = var$10;
                    }
                    var$9 = var$9.$cachedKeySet.$iterator();
                    while (var$9.$hasNext()) {
                        var$10 = var$9.$next();
                        var$11 = $par1Packet102WindowClick.$tagMap;
                        if (var$10 === null) {
                            var$11 = var$11.$elementData.data[0];
                            while (var$11 !== null && var$11.$key !== null) {
                                var$11 = var$11.$next3;
                            }
                        } else {
                            i: {
                                if (!var$10.$hashCode1) {
                                    $var4 = 0;
                                    while (true) {
                                        if ($var4 >= var$10.$nativeString.length)
                                            break i;
                                        var$10.$hashCode1 = (31 * var$10.$hashCode1 | 0) + var$10.$nativeString.charCodeAt($var4) | 0;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                }
                            }
                            $var4 = var$10.$hashCode1;
                            var$12 = var$11.$elementData.data;
                            var$11 = var$12[$var4 & (var$12.length - 1 | 0)];
                            while (var$11 !== null) {
                                if (var$11.$origKeyHash == $var4) {
                                    var$13 = var$11.$key;
                                    if (var$10 !== var$13 && !jl_String_equals(var$10, var$13) ? 0 : 1)
                                        break;
                                }
                                var$11 = var$11.$next3;
                            }
                        }
                        var$11 = var$11 === null ? null : var$11.$value0;
                        var$11 = var$11.$copy();
                        var$13 = var$8.$tagMap;
                        if (var$10 !== null)
                            var$11.$name = var$10;
                        else
                            var$11.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$13, var$10, var$11);
                    }
                    var$7.$stackTagCompound = var$8;
                }
                $par1Packet102WindowClick = var$7;
            }
            g: {
                $var2.$myItemStack = $par1Packet102WindowClick;
                if ($var2 instanceof nms_Packet3Chat) {
                    $par1Packet102WindowClick = $var2;
                    var$5 = $var3.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break g;
                    if (var$5 == 1 && !$par1Packet102WindowClick.$isServer)
                        break g;
                }
                try {
                    $par1Packet102WindowClick = $var3.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1Packet102WindowClick = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    $var3 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_($var3);
                    $var3.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_($var2, $var3);
                    $var2.$sb = jl_StringBuilder__init_();
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
            }
        }
        $this.$playerEntity.$playerInventoryBeingManipulated = 0;
        return;
    case 5:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet102WindowClick, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet102WindowClick = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var3);
                $var3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var3);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
        }
        $this.$playerEntity.$playerInventoryBeingManipulated = 0;
        return;
    case 6:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var3 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var3, var$7);
                $var3.$sb = jl_StringBuilder__init_();
                $var3.$buffer0 = $rt_createCharArray(32);
                $var3.$autoFlush = 0;
                $var3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var3;
            }
            jl_Throwable_printStackTrace($var2, jl_System_errCache);
        }
        $var2 = $par1Packet102WindowClick.$playerNetServerHandler;
        $var3 = new nms_Packet103SetSlot;
        $par1Packet102WindowClick = $par1Packet102WindowClick.$inventory0.$itemStack;
        $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $var3.$windowId1 = (-1);
        $var3.$itemSlot = (-1);
        if ($par1Packet102WindowClick !== null) {
            var$7 = new nms_ItemStack;
            $var4 = $par1Packet102WindowClick.$itemID;
            var$5 = $par1Packet102WindowClick.$stackSize;
            var$6 = $par1Packet102WindowClick.$itemDamage;
            var$7.$itemID = $var4;
            var$7.$stackSize = var$5;
            var$7.$itemDamage = var$6;
            if (var$6 < 0)
                var$7.$itemDamage = 0;
            $par1Packet102WindowClick = $par1Packet102WindowClick.$stackTagCompound;
            if ($par1Packet102WindowClick !== null) {
                var$8 = new nms_NBTTagCompound;
                var$9 = $par1Packet102WindowClick.$name;
                if (var$9 === null)
                    var$9 = $rt_s(3);
                var$8.$name = var$9;
                var$9 = new ju_HashMap;
                ju_AbstractMap__init_(var$9);
                $var4 = ju_HashMap_calculateCapacity(16);
                var$9.$elementCount = 0;
                var$9.$elementData = ju_HashMap_newElementArray(var$9, $var4);
                var$9.$loadFactor = 0.75;
                ju_HashMap_computeThreshold(var$9);
                var$8.$tagMap = var$9;
                var$9 = $par1Packet102WindowClick.$tagMap;
                if (var$9.$cachedKeySet === null) {
                    var$10 = new ju_HashMap$1;
                    var$10.$this$0 = var$9;
                    jl_Object__init_(var$10);
                    var$9.$cachedKeySet = var$10;
                }
                var$9 = var$9.$cachedKeySet.$iterator();
                while (var$9.$hasNext()) {
                    var$10 = var$9.$next();
                    var$11 = $par1Packet102WindowClick.$tagMap;
                    if (var$10 === null) {
                        var$11 = var$11.$elementData.data[0];
                        while (var$11 !== null && var$11.$key !== null) {
                            var$11 = var$11.$next3;
                        }
                    } else {
                        j: {
                            if (!var$10.$hashCode1) {
                                $var4 = 0;
                                while (true) {
                                    if ($var4 >= var$10.$nativeString.length)
                                        break j;
                                    var$10.$hashCode1 = (31 * var$10.$hashCode1 | 0) + var$10.$nativeString.charCodeAt($var4) | 0;
                                    $var4 = $var4 + 1 | 0;
                                }
                            }
                        }
                        var$6 = var$10.$hashCode1;
                        var$12 = var$11.$elementData.data;
                        var$11 = var$12[var$6 & (var$12.length - 1 | 0)];
                        while (var$11 !== null) {
                            if (var$11.$origKeyHash == var$6) {
                                var$13 = var$11.$key;
                                if (var$10 !== var$13 && !jl_String_equals(var$10, var$13) ? 0 : 1)
                                    break;
                            }
                            var$11 = var$11.$next3;
                        }
                    }
                    var$11 = var$11 === null ? null : var$11.$value0;
                    var$11 = var$11.$copy();
                    var$13 = var$8.$tagMap;
                    if (var$10 !== null)
                        var$11.$name = var$10;
                    else
                        var$11.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$13, var$10, var$11);
                }
                var$7.$stackTagCompound = var$8;
            }
            $par1Packet102WindowClick = var$7;
        }
        k: {
            $var3.$myItemStack = $par1Packet102WindowClick;
            if ($var3 instanceof nms_Packet3Chat) {
                $par1Packet102WindowClick = $var3;
                var$5 = $var2.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    break k;
                if (var$5 == 1 && !$par1Packet102WindowClick.$isServer)
                    break k;
            }
            try {
                $par1Packet102WindowClick = $var2.$netManager;
                $ptr = 7;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet102WindowClick = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var3);
                $var3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var3);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
        }
        return;
    case 7:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet102WindowClick, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet102WindowClick = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var3);
                $var3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var3);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet102WindowClick, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet102WindowClick, $var2, $var3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_NetServerHandler_handleEnchantItem = ($this, $par1Packet108EnchantItem) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Packet108EnchantItem = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$playerEntity;
        var$3 = var$2.$openContainer;
        if (var$3.$windowId == $par1Packet108EnchantItem.$windowId6 && nms_Container_isPlayerNotUsingContainer(var$3, var$2)) {
            var$2 = $this.$playerEntity;
            var$3 = var$2.$openContainer;
            var$4 = $par1Packet108EnchantItem.$enchantment;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        var$3.$enchantItem(var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet108EnchantItem = $this.$playerEntity.$openContainer;
        $ptr = 2;
    case 2:
        $par1Packet108EnchantItem.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet108EnchantItem, var$2, var$3, var$4, $ptr);
},
nms_NetServerHandler_handleCreativeSetSlot = ($this, $par1Packet107CreativeSetSlot) => {
    let $var7, var$3, $var2, $var3, $var4, $var6, var$8, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var7 = $thread.pop();$par1Packet107CreativeSetSlot = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $this.$playerEntity;
        if ($var7.$theItemInWorldManager.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1) {
            var$3 = $par1Packet107CreativeSetSlot.$slot0;
            $var2 = var$3 >= 0 ? 0 : 1;
            $var3 = $par1Packet107CreativeSetSlot.$itemStack3;
            $var4 = var$3 >= 1 && var$3 < 45 ? 1 : 0;
            a: {
                b: {
                    if ($var3 !== null) {
                        $var6 = $var3.$itemID;
                        nms_Item_$callClinit();
                        var$8 = nms_Item_itemsList.data;
                        if ($var6 >= var$8.length)
                            break b;
                        if ($var6 < 0)
                            break b;
                        if (var$8[$var6] === null)
                            break b;
                    }
                    $var5 = 1;
                    break a;
                }
                $var5 = 0;
            }
            c: {
                d: {
                    if ($var3 !== null) {
                        $var6 = $var3.$itemDamage;
                        if ($var6 < 0)
                            break d;
                        if ($var6 < 0)
                            break d;
                        $var6 = $var3.$stackSize;
                        if ($var6 > 64)
                            break d;
                        if ($var6 <= 0)
                            break d;
                    }
                    $var6 = 1;
                    break c;
                }
                $var6 = 0;
            }
            if ($var4 && $var5 && $var6) {
                if ($var3 !== null) {
                    $par1Packet107CreativeSetSlot = $var7.$inventoryContainer.$inventorySlots;
                    if (var$3 >= 0 && var$3 < $par1Packet107CreativeSetSlot.$size0) {
                        $var7 = $par1Packet107CreativeSetSlot.$array.data[var$3];
                        $par1Packet107CreativeSetSlot = $var7.$inventory;
                        $var6 = $var7.$slotIndex;
                        $ptr = 2;
                        continue main;
                    }
                    $par1Packet107CreativeSetSlot = new jl_IndexOutOfBoundsException;
                    $par1Packet107CreativeSetSlot.$suppressionEnabled = 1;
                    $par1Packet107CreativeSetSlot.$writableStackTrace = 1;
                    $rt_throw($par1Packet107CreativeSetSlot);
                }
                $par1Packet107CreativeSetSlot = $var7.$inventoryContainer;
                $var7 = null;
                $par1Packet107CreativeSetSlot = $par1Packet107CreativeSetSlot.$inventorySlots;
                if (var$3 >= 0 && var$3 < $par1Packet107CreativeSetSlot.$size0) {
                    $var3 = $par1Packet107CreativeSetSlot.$array.data[var$3];
                    $par1Packet107CreativeSetSlot = $var3.$inventory;
                    $var6 = $var3.$slotIndex;
                    $ptr = 4;
                    continue main;
                }
                $par1Packet107CreativeSetSlot = new jl_IndexOutOfBoundsException;
                $par1Packet107CreativeSetSlot.$suppressionEnabled = 1;
                $par1Packet107CreativeSetSlot.$writableStackTrace = 1;
                $rt_throw($par1Packet107CreativeSetSlot);
            }
            if ($var2 && $var5 && $var6) {
                $var6 = $this.$creativeItemCreationSpamThresholdTally;
                if ($var6 < 200) {
                    $this.$creativeItemCreationSpamThresholdTally = $var6 + 20 | 0;
                    $var6 = 0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_EntityPlayer_dropPlayerItemWithRandomChoice($var7, $var3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 !== null)
            $var7.$age = 4800;
        return;
    case 2:
        $par1Packet107CreativeSetSlot.$setInventorySlotContents($var6, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet107CreativeSetSlot = $var7.$inventory;
        $ptr = 3;
    case 3:
        $par1Packet107CreativeSetSlot.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet107CreativeSetSlot = $this.$playerEntity;
        $par1Packet107CreativeSetSlot = ju_HashMap_removeByKey($par1Packet107CreativeSetSlot.$inventoryContainer.$playerList.$backingMap, $par1Packet107CreativeSetSlot);
        return;
    case 4:
        $par1Packet107CreativeSetSlot.$setInventorySlotContents($var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet107CreativeSetSlot = $var3.$inventory;
        $ptr = 5;
    case 5:
        $par1Packet107CreativeSetSlot.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet107CreativeSetSlot = $this.$playerEntity;
        $par1Packet107CreativeSetSlot = ju_HashMap_removeByKey($par1Packet107CreativeSetSlot.$inventoryContainer.$playerList.$backingMap, $par1Packet107CreativeSetSlot);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet107CreativeSetSlot, $var7, var$3, $var2, $var3, $var4, $var6, var$8, $var5, $ptr);
},
nms_NetServerHandler_handleTransaction = ($this, $par1Packet106Transaction) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8;
    $var2 = $this.$field_72586_s;
    var$3 = $this.$playerEntity;
    var$4 = var$3.$openContainer;
    var$5 = var$4.$windowId;
    var$6 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
    var$7 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
    var$8 = $var2.$slots.data;
    $var2 = var$8[var$7 & (var$8.length - 1 | 0)];
    a: {
        while ($var2 !== null) {
            if ($var2.$hashEntry == var$5) {
                $var2 = $var2.$valueEntry;
                break a;
            }
            $var2 = $var2.$nextEntry0;
        }
        $var2 = null;
    }
    $var2 = $var2;
    if ($var2 !== null && $par1Packet106Transaction.$shortWindowId == $var2.$value6 && var$5 == $par1Packet106Transaction.$windowId4 && !nms_Container_isPlayerNotUsingContainer(var$4, var$3)) {
        $par1Packet106Transaction = $this.$playerEntity;
        $par1Packet106Transaction = ju_HashMap_removeByKey($par1Packet106Transaction.$openContainer.$playerList.$backingMap, $par1Packet106Transaction);
    }
},
nms_NetServerHandler_handleUpdateSign = ($this, $par1Packet130UpdateSign) => {
    let $var3, var$3, $var2, var$5, $var8, $var6, $var5, var$9, $var9, var$11, $var4, var$13, $var7, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var7 = $thread.pop();var$13 = $thread.pop();$var4 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1Packet130UpdateSign = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$mcServer2;
        var$3 = $this.$playerEntity.$dimension;
        $var2 = var$3 == (-1) ? $var3.$worldServers.data[1] : var$3 != 1 ? $var3.$worldServers.data[0] : $var3.$worldServers.data[2];
        var$3 = $par1Packet130UpdateSign.$xPosition7;
        var$5 = $par1Packet130UpdateSign.$yPosition7;
        $var8 = $par1Packet130UpdateSign.$zPosition7;
        if (var$5 >= 0 && var$5 < 256) {
            $var6 = var$3 >> 4;
            $var5 = $var8 >> 4;
            $var3 = $var2.$chunkProvider.$loadedChunkHashMap;
            var$9 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), 32));
            $var5 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
            $var5 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
            $var9 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
            var$11 = $var3.$hashArray.data;
            $var3 = var$11[$var9 & (var$11.length - 1 | 0)];
            a: {
                while (true) {
                    if ($var3 === null) {
                        $var3 = null;
                        break a;
                    }
                    if (Long_eq($var3.$key1, var$9))
                        break;
                    $var3 = $var3.$nextEntry;
                }
            }
            $var5 = $var3 === null ? 0 : 1;
        } else
            $var5 = 0;
        if (!$var5)
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($var2, var$3, var$5, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        var$5 = $var3 instanceof nms_TileEntitySign;
        if (var$5) {
            $var4 = $var3;
            if (!($var4.$isEditable && $var4.$field_142011_d === $this.$playerEntity)) {
                $var4 = $this.$playerEntity.$username;
                $par1Packet130UpdateSign = new jl_StringBuilder;
                $par1Packet130UpdateSign.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($par1Packet130UpdateSign, $par1Packet130UpdateSign.$length0, $rt_s(2091));
                var$3 = $par1Packet130UpdateSign.$length0;
                if ($var4 === null)
                    $var4 = $rt_s(1);
                jl_AbstractStringBuilder_insert($par1Packet130UpdateSign, var$3, $var4);
                jl_AbstractStringBuilder_insert($par1Packet130UpdateSign, $par1Packet130UpdateSign.$length0, $rt_s(2097));
                $var3 = new jl_String;
                var$11 = $par1Packet130UpdateSign.$buffer;
                var$13 = var$11.data;
                var$5 = $par1Packet130UpdateSign.$length0;
                $var8 = var$13.length;
                if (var$5 >= 0 && var$5 <= ($var8 - 0 | 0)) {
                    $var3.$nativeString = $rt_charArrayToString(var$11.data, 0, var$5);
                    nles_IntegratedServer_$callClinit();
                    $var4 = nles_IntegratedServer_logger.$logger;
                    $par1Packet130UpdateSign = jul_Level_WARNING;
                    $var7 = new jul_LogRecord;
                    $var7.$level = $par1Packet130UpdateSign;
                    $var7.$message0 = $var3;
                    $var7.$millis = jl_System_currentTimeMillis();
                    var$9 = jul_LogRecord_sequenceNumberGenerator;
                    jul_LogRecord_sequenceNumberGenerator = Long_add(var$9, Long_fromInt(1));
                    $var7.$sequenceNumber = var$9;
                    $var7.$threadID = jl_Thread_currentThread.$id2;
                    jul_Logger_log($var4, $var7);
                    return;
                }
                $par1Packet130UpdateSign = new jl_IndexOutOfBoundsException;
                $par1Packet130UpdateSign.$suppressionEnabled = 1;
                $par1Packet130UpdateSign.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet130UpdateSign);
                $rt_throw($par1Packet130UpdateSign);
            }
        }
        $var8 = 0;
        b: while (true) {
            if ($var8 >= 4) {
                if (!var$5)
                    return;
                var$5 = $par1Packet130UpdateSign.$xPosition7;
                $var9 = $par1Packet130UpdateSign.$yPosition7;
                $var6 = $par1Packet130UpdateSign.$zPosition7;
                $var7 = $var3;
                jl_System_fastArraycopy($par1Packet130UpdateSign.$signLines, 0, $var7.$signText, 0, 4);
                $ptr = 2;
                continue main;
            }
            $var5 = 1;
            if ($par1Packet130UpdateSign.$signLines.data[$var8].$nativeString.length > 15)
                $var5 = 0;
            else {
                $var6 = 0;
                while ($var6 < $par1Packet130UpdateSign.$signLines.data[$var8].$nativeString.length) {
                    $var4 = nms_ChatAllowedCharacters_allowedCharacters;
                    $var7 = $par1Packet130UpdateSign.$signLines.data[$var8];
                    if ($var6 < 0)
                        break b;
                    if ($var6 >= $var7.$nativeString.length)
                        break b;
                    if ($var4.$indexOf3($var7.$nativeString.charCodeAt($var6)) < 0)
                        $var5 = 0;
                    $var6 = $var6 + 1 | 0;
                }
            }
            if (!$var5)
                $par1Packet130UpdateSign.$signLines.data[$var8] = $rt_s(2098);
            $var8 = $var8 + 1 | 0;
        }
        $par1Packet130UpdateSign = new jl_StringIndexOutOfBoundsException;
        $par1Packet130UpdateSign.$suppressionEnabled = 1;
        $par1Packet130UpdateSign.$writableStackTrace = 1;
        $rt_throw($par1Packet130UpdateSign);
    case 2:
        nms_TileEntity_onInventoryChanged($var7);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = 0;
        $var8 = var$5 >> 4;
        $var5 = $var6 >> 4;
        var$15 = var$5 & 15;
        $var6 = $var6 & 15;
        $par1Packet130UpdateSign = $var2.$worldAccesses;
        var$5 = $rt_compare(var$3, $par1Packet130UpdateSign.$size0);
        if (var$5 >= 0)
            return;
        if (var$3 >= 0 && var$5 < 0) {
            $par1Packet130UpdateSign = $par1Packet130UpdateSign.$array.data[var$3].$theWorldServer.$thePlayerManager0;
            var$5 = 0;
            $ptr = 3;
            continue main;
        }
        $par1Packet130UpdateSign = new jl_IndexOutOfBoundsException;
        $par1Packet130UpdateSign.$suppressionEnabled = 1;
        $par1Packet130UpdateSign.$writableStackTrace = 1;
        $rt_throw($par1Packet130UpdateSign);
    case 3:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($par1Packet130UpdateSign, $var8, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $par1Packet130UpdateSign = $tmp;
        if ($par1Packet130UpdateSign !== null)
            nms_PlayerInstance_flagChunkForUpdate($par1Packet130UpdateSign, var$15, $var9, $var6);
        var$3 = var$3 + 1 | 0;
        $par1Packet130UpdateSign = $var2.$worldAccesses;
        var$5 = $rt_compare(var$3, $par1Packet130UpdateSign.$size0);
        if (var$5 >= 0)
            return;
        if (var$3 >= 0 && var$5 < 0) {
            $par1Packet130UpdateSign = $par1Packet130UpdateSign.$array.data[var$3].$theWorldServer.$thePlayerManager0;
            var$5 = 0;
            continue main;
        }
        $par1Packet130UpdateSign = new jl_IndexOutOfBoundsException;
        $par1Packet130UpdateSign.$suppressionEnabled = 1;
        $par1Packet130UpdateSign.$writableStackTrace = 1;
        $rt_throw($par1Packet130UpdateSign);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet130UpdateSign, $var3, var$3, $var2, var$5, $var8, $var6, $var5, var$9, $var9, var$11, $var4, var$13, $var7, var$15, $ptr);
},
nms_NetServerHandler_handleKeepAlive = ($this, $par1Packet0KeepAlive) => {
    let $var2;
    if ($par1Packet0KeepAlive.$randomId == $this.$keepAliveRandomID) {
        $var2 = Long_lo(Long_sub(Long_div(Long_fromNumber(performance.now() * 1000000.0), Long_fromInt(1000000)), $this.$keepAliveTimeSent));
        $par1Packet0KeepAlive = $this.$playerEntity;
        $par1Packet0KeepAlive.$ping0 = (($par1Packet0KeepAlive.$ping0 * 3 | 0) + $var2 | 0) / 4 | 0;
    }
},
nms_NetServerHandler_handlePlayerAbilities = ($this, $par1Packet202PlayerAbilities) => {
    let var$2;
    var$2 = $this.$playerEntity.$capabilities;
    var$2.$isFlying = $par1Packet202PlayerAbilities.$isFlying0 && var$2.$allowFlying ? 1 : 0;
},
nms_NetServerHandler_handleAutoComplete = ($this, $par1Packet203AutoComplete) => {
    let $var2, $var3$index, var$4, var$5, $var4, var$7, var$8, var$9, $var3$index_0, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();$var3$index_0 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3$index = $thread.pop();$var2 = $thread.pop();$par1Packet203AutoComplete = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        $par1Packet203AutoComplete = nms_MinecraftServer_getPossibleCompletions($this.$mcServer2, $this.$playerEntity, $par1Packet203AutoComplete.$text0);
        $var3$index = 0;
        var$4 = $par1Packet203AutoComplete.$modCount;
        var$5 = $par1Packet203AutoComplete.$size();
        while (true) {
            if (!($var3$index >= var$5 ? 0 : 1)) {
                $par1Packet203AutoComplete = $this.$playerEntity.$playerNetServerHandler;
                $var4 = new nms_Packet203AutoComplete;
                var$7 = new jl_String;
                var$8 = $var2.$buffer;
                var$9 = var$8.data;
                $var3$index_0 = $var2.$length0;
                var$4 = var$9.length;
                if ($var3$index_0 >= 0 && $var3$index_0 <= (var$4 - 0 | 0)) {
                    a: {
                        var$7.$nativeString = $rt_charArrayToString(var$8.data, 0, $var3$index_0);
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var4.$text0 = var$7;
                        if ($var4 instanceof nms_Packet3Chat) {
                            $var2 = $var4;
                            $var3$index_0 = $par1Packet203AutoComplete.$playerEntity.$chatVisibility;
                            if ($var3$index_0 == 2)
                                break a;
                            if ($var3$index_0 == 1 && !$var2.$isServer)
                                break a;
                        }
                        try {
                            $par1Packet203AutoComplete = $par1Packet203AutoComplete.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Packet203AutoComplete = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var2 = new otcic_JSStderrPrintStream;
                            $var4 = new ji_ByteArrayOutputStream;
                            jl_Object__init_($var4);
                            $var4.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var2);
                            $var2.$out0 = $var4;
                            $var4 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var4);
                            $var2.$sb = $var4;
                            $var2.$buffer0 = $rt_createCharArray(32);
                            $var2.$autoFlush = 0;
                            $var2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var2;
                        }
                        jl_Throwable_printStackTrace($par1Packet203AutoComplete, jl_System_errCache);
                    }
                    return;
                }
                $par1Packet203AutoComplete = new jl_IndexOutOfBoundsException;
                $par1Packet203AutoComplete.$suppressionEnabled = 1;
                $par1Packet203AutoComplete.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1Packet203AutoComplete);
                $rt_throw($par1Packet203AutoComplete);
            }
            if (var$4 < $par1Packet203AutoComplete.$modCount)
                break;
            $var3$index_0 = $var3$index + 1 | 0;
            $var4 = $par1Packet203AutoComplete.$get($var3$index);
            var$11 = $var2.$length0;
            if (var$11 > 0)
                jl_AbstractStringBuilder_insert($var2, var$11, $rt_s(2046));
            jl_AbstractStringBuilder_insert($var2, $var2.$length0, $var4);
            $var3$index = $var3$index_0;
        }
        $par1Packet203AutoComplete = new ju_ConcurrentModificationException;
        $par1Packet203AutoComplete.$suppressionEnabled = 1;
        $par1Packet203AutoComplete.$writableStackTrace = 1;
        $rt_throw($par1Packet203AutoComplete);
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Packet203AutoComplete, $var4);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet203AutoComplete = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var4 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var4);
                $var4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var2);
                $var2.$out0 = $var4;
                $var4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var4);
                $var2.$sb = $var4;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet203AutoComplete, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet203AutoComplete, $var2, $var3$index, var$4, var$5, $var4, var$7, var$8, var$9, $var3$index_0, var$11, $ptr);
},
nms_NetServerHandler_handleClientInfo = ($this, $par1Packet204ClientInfo) => {
    nms_EntityPlayerMP_updateClientInfo($this.$playerEntity, $par1Packet204ClientInfo);
},
nms_NetServerHandler_handleCustomPayload = ($this, $par1Packet250CustomPayload) => {
    let $var6, $var13, $var3, $var4, $var12, $var2, $var11, $var15, $var10, $var17, $var5, $var9, $var14, var$15, $var7, var$17, var$18, var$19, $var18, $var19, $var8, $var20, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var20 = $thread.pop();$var8 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$var9 = $thread.pop();$var5 = $thread.pop();$var17 = $thread.pop();$var10 = $thread.pop();$var15 = $thread.pop();$var11 = $thread.pop();$var2 = $thread.pop();$var12 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var13 = $thread.pop();$var6 =
        $thread.pop();$par1Packet250CustomPayload = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par1Packet250CustomPayload.$channel1;
        if ($rt_s(2099) === $var6)
            $var13 = 1;
        else if (!($var6 instanceof jl_String))
            $var13 = 0;
        else {
            $var6 = $var6;
            $var13 = $rt_s(2099).$nativeString !== $var6.$nativeString ? 0 : 1;
        }
        a: {
            if ($var13) {
                try {
                    $var3 = nms_Packet_readItemStack(ji_DataInputStream__init_(ji_ByteArrayInputStream__init_($par1Packet250CustomPayload.$data10)));
                    if (!nms_ItemWritableBook_validBookTagPages(nms_ItemStack_getTagCompound($var3)))
                        $rt_throw(ji_IOException__init_($rt_s(2100)));
                    $var4 = nms_InventoryPlayer_getCurrentItem($this.$playerEntity.$inventory0);
                    $var13 = $var3.$itemID;
                    nms_Item_$callClinit();
                    if ($var13 == nms_Item_writableBook.$itemID0 && $var13 == $var4.$itemID)
                        nms_ItemStack_setTagInfo($var4, $rt_s(1339), nms_NBTTagCompound_getTagList(nms_ItemStack_getTagCompound($var3), $rt_s(1339)));
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var12 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                    $var2 = new ji_ByteArrayOutputStream;
                    $var2.$buf = $rt_createByteArray(32);
                    jl_Object__init_($par1Packet250CustomPayload);
                    $par1Packet250CustomPayload.$out0 = $var2;
                    $var2 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var2, 16);
                    $par1Packet250CustomPayload.$sb = $var2;
                    $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                    $par1Packet250CustomPayload.$autoFlush = 0;
                    $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $par1Packet250CustomPayload;
                }
                jl_Throwable_printStackTrace($var12, jl_System_errCache);
            } else {
                $var6 = $par1Packet250CustomPayload.$channel1;
                if ($rt_s(2101) === $var6)
                    $var13 = 1;
                else if (!($var6 instanceof jl_String))
                    $var13 = 0;
                else {
                    $var6 = $var6;
                    $var13 = $rt_s(2101).$nativeString !== $var6.$nativeString ? 0 : 1;
                }
                if ($var13) {
                    try {
                        $var3 = nms_Packet_readItemStack(ji_DataInputStream__init_(ji_ByteArrayInputStream__init_($par1Packet250CustomPayload.$data10)));
                        if (!nms_ItemEditableBook_validBookTagContents(nms_ItemStack_getTagCompound($var3)))
                            $rt_throw(ji_IOException__init_($rt_s(2100)));
                        $var4 = nms_InventoryPlayer_getCurrentItem($this.$playerEntity.$inventory0);
                        $var13 = $var3.$itemID;
                        nms_Item_$callClinit();
                        if ($var13 == nms_Item_writtenBook.$itemID0 && $var4.$itemID == nms_Item_writableBook.$itemID0) {
                            nms_ItemStack_setTagInfo($var4, $rt_s(1341), nms_NBTTagString__init_($rt_s(1341), nms_EntityPlayer_getCommandSenderName($this.$playerEntity)));
                            nms_ItemStack_setTagInfo($var4, $rt_s(1340), nms_NBTTagString__init_($rt_s(1340), nms_NBTTagCompound_getString(nms_ItemStack_getTagCompound($var3), $rt_s(1340))));
                            nms_ItemStack_setTagInfo($var4, $rt_s(1339), nms_NBTTagCompound_getTagList(nms_ItemStack_getTagCompound($var3), $rt_s(1339)));
                            $var4.$itemID = nms_Item_writtenBook.$itemID0;
                        }
                        break a;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                        $var2 = new ji_ByteArrayOutputStream;
                        $var2.$buf = $rt_createByteArray(32);
                        jl_Object__init_($par1Packet250CustomPayload);
                        $par1Packet250CustomPayload.$out0 = $var2;
                        $var2 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0($var2, 16);
                        $par1Packet250CustomPayload.$sb = $var2;
                        $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                        $par1Packet250CustomPayload.$autoFlush = 0;
                        $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $par1Packet250CustomPayload;
                    }
                    jl_Throwable_printStackTrace($var11, jl_System_errCache);
                } else {
                    $var6 = $par1Packet250CustomPayload.$channel1;
                    if ($rt_s(2102) === $var6)
                        $var13 = 1;
                    else if (!($var6 instanceof jl_String))
                        $var13 = 0;
                    else {
                        $var6 = $var6;
                        $var13 = $rt_s(2102).$nativeString !== $var6.$nativeString ? 0 : 1;
                    }
                    if ($var13) {
                        try {
                            $var13 = ji_DataInputStream_readInt(ji_DataInputStream__init_(ji_ByteArrayInputStream__init_($par1Packet250CustomPayload.$data10)));
                            $var15 = $this.$playerEntity.$openContainer;
                            if (!($var15 instanceof nms_ContainerMerchant))
                                break a;
                            $par1Packet250CustomPayload = $var15;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var10 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                            $var2 = new ji_ByteArrayOutputStream;
                            $var2.$buf = $rt_createByteArray(32);
                            jl_Object__init_($par1Packet250CustomPayload);
                            $par1Packet250CustomPayload.$out0 = $var2;
                            $var2 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_0($var2, 16);
                            $par1Packet250CustomPayload.$sb = $var2;
                            $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                            $par1Packet250CustomPayload.$autoFlush = 0;
                            $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $par1Packet250CustomPayload;
                        }
                        jl_Throwable_printStackTrace($var10, jl_System_errCache);
                    } else {
                        $var6 = $par1Packet250CustomPayload.$channel1;
                        if ($rt_s(2103) === $var6)
                            $var13 = 1;
                        else if (!($var6 instanceof jl_String))
                            $var13 = 0;
                        else {
                            $var6 = $var6;
                            $var13 = $rt_s(2103).$nativeString !== $var6.$nativeString ? 0 : 1;
                        }
                        if ($var13) {
                            if (nms_EntityPlayerMP_canCommandSenderUseCommand($this.$playerEntity, 2, $rt_s(3)) && $this.$playerEntity.$capabilities.$isCreativeMode) {
                                try {
                                    $var2 = ji_DataInputStream__init_(ji_ByteArrayInputStream__init_($par1Packet250CustomPayload.$data10));
                                    $var13 = ji_DataInputStream_readInt($var2);
                                    $var17 = ji_DataInputStream_readInt($var2);
                                    $var5 = ji_DataInputStream_readInt($var2);
                                    $var6 = nms_Packet_readString($var2, 256);
                                    $par1Packet250CustomPayload = $this.$playerEntity.$worldObj;
                                    $ptr = 2;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var9 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                                    $var2 = new ji_ByteArrayOutputStream;
                                    $var2.$buf = $rt_createByteArray(32);
                                    jl_Object__init_($par1Packet250CustomPayload);
                                    $par1Packet250CustomPayload.$out0 = $var2;
                                    $var2 = new jl_StringBuilder;
                                    jl_AbstractStringBuilder__init_0($var2, 16);
                                    $par1Packet250CustomPayload.$sb = $var2;
                                    $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                                    $par1Packet250CustomPayload.$autoFlush = 0;
                                    $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $par1Packet250CustomPayload;
                                }
                                jl_Throwable_printStackTrace($var9, jl_System_errCache);
                            } else {
                                $par1Packet250CustomPayload = $this.$playerEntity;
                                nms_StatCollector_$callClinit();
                                $var2 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2104));
                                $var6 = $par1Packet250CustomPayload.$playerNetServerHandler;
                                $par1Packet250CustomPayload = new nms_Packet3Chat;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                $par1Packet250CustomPayload.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                $par1Packet250CustomPayload.$isServer = 1;
                                $var5 = $var2.$nativeString.length;
                                $var17 = nms_Packet3Chat_maxChatLength;
                                if ($var5 > $var17)
                                    $var2 = jl_String_substring($var2, 0, $var17);
                                b: {
                                    $par1Packet250CustomPayload.$message1 = $var2;
                                    $par1Packet250CustomPayload.$isServer = 1;
                                    if ($par1Packet250CustomPayload instanceof nms_Packet3Chat) {
                                        $var2 = $par1Packet250CustomPayload;
                                        $var17 = $var6.$playerEntity.$chatVisibility;
                                        if ($var17 == 2)
                                            break b;
                                        if ($var17 == 1 && !$var2.$isServer)
                                            break b;
                                    }
                                    try {
                                        $var2 = $var6.$netManager;
                                        $ptr = 3;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $par1Packet250CustomPayload = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var2 = new otcic_JSStderrPrintStream;
                                        $var6 = new ji_ByteArrayOutputStream;
                                        ji_OutputStream__init_($var6);
                                        $var6.$buf = $rt_createByteArray(32);
                                        ji_FilterOutputStream__init_($var2, $var6);
                                        $var2.$sb = jl_StringBuilder__init_();
                                        $var2.$buffer0 = $rt_createCharArray(32);
                                        $var2.$autoFlush = 0;
                                        $var2.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = $var2;
                                    }
                                    jl_Throwable_printStackTrace($par1Packet250CustomPayload, jl_System_errCache);
                                }
                            }
                        } else {
                            $var6 = $par1Packet250CustomPayload.$channel1;
                            if ($rt_s(2105) === $var6)
                                $var13 = 1;
                            else if (!($var6 instanceof jl_String))
                                $var13 = 0;
                            else {
                                $var6 = $var6;
                                $var13 = $rt_s(2105).$nativeString !== $var6.$nativeString ? 0 : 1;
                            }
                            if (!$var13) {
                                $var6 = $par1Packet250CustomPayload.$channel1;
                                if ($rt_s(2106) === $var6)
                                    $var13 = 1;
                                else if (!($var6 instanceof jl_String))
                                    $var13 = 0;
                                else {
                                    $var6 = $var6;
                                    $var13 = $rt_s(2106).$nativeString !== $var6.$nativeString ? 0 : 1;
                                }
                                if ($var13) {
                                    $var2 = $this.$playerEntity.$openContainer;
                                    if ($var2 instanceof nms_ContainerRepair) {
                                        $var14 = $var2;
                                        var$15 = $par1Packet250CustomPayload.$data10;
                                        if (var$15 !== null) {
                                            $var13 = var$15.data.length;
                                            if ($var13 >= 1) {
                                                $par1Packet250CustomPayload = new jl_String;
                                                $var2 = jnci_UTF8Charset_INSTANCE;
                                                if ($var13 >= 0 && $var13 <= ($var13 - 0 | 0)) {
                                                    $var7 = new jn_ByteBufferImpl;
                                                    var$17 = 0 + $var13 | 0;
                                                    $var7.$mark0 = (-1);
                                                    $var7.$capacity = $var13;
                                                    $var7.$limit = $var13;
                                                    $var7.$order = jn_ByteOrder_BIG_ENDIAN;
                                                    $var7.$start2 = 0;
                                                    $var7.$array2 = var$15;
                                                    $var7.$position1 = 0;
                                                    $var7.$limit = var$17;
                                                    $var7.$direct = 0;
                                                    $var7.$readOnly0 = 0;
                                                    c: {
                                                        try {
                                                            $var2 = jnc_CharsetDecoder_decode(jnc_CharsetDecoder_onUnmappableCharacter(jnc_CharsetDecoder_onMalformedInput(jnci_UTF8Charset_newDecoder($var2), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $var7);
                                                            break c;
                                                        } catch ($$e) {
                                                            $$je = $rt_wrapException($$e);
                                                            if ($$je instanceof jnc_CharacterCodingException) {
                                                                $var2 = $$je;
                                                            } else {
                                                                throw $$e;
                                                            }
                                                        }
                                                        $var6 = new jl_AssertionError;
                                                        $var6.$suppressionEnabled = 1;
                                                        $var6.$writableStackTrace = 1;
                                                        $var6.$message = $rt_s(103);
                                                        $var6.$cause = $var2;
                                                        $rt_throw($var6);
                                                    }
                                                    $var5 = $var2.$position1;
                                                    if (!$var5 && $var2.$limit == $var2.$capacity)
                                                        var$15 = $var2.$array0;
                                                    else {
                                                        var$15 = $rt_createCharArray($var2.$limit - $var5 | 0);
                                                        jn_CharBuffer_get($var2, var$15, 0, var$15.data.length);
                                                    }
                                                    $par1Packet250CustomPayload.$nativeString = $rt_fullArrayToString(var$15.data);
                                                    $var2 = new jl_StringBuilder;
                                                    $var2.$buffer = $rt_createCharArray(16);
                                                    var$15 = $rt_createCharArray($par1Packet250CustomPayload.$nativeString.length).data;
                                                    $var13 = 0;
                                                    var$18 = var$15.length;
                                                    while (true) {
                                                        if ($var13 >= var$18) {
                                                            $var13 = 0;
                                                            while ($var13 < var$18) {
                                                                d: {
                                                                    e: {
                                                                        $var17 = var$15[$var13];
                                                                        if ($var17 != 167) {
                                                                            if (nms_ChatAllowedCharacters_allowedCharacters.$indexOf3($var17) >= 0)
                                                                                break e;
                                                                            if ($var17 > 32)
                                                                                break e;
                                                                        }
                                                                        $var5 = 0;
                                                                        break d;
                                                                    }
                                                                    $var5 = 1;
                                                                }
                                                                if ($var5) {
                                                                    $var5 = $var2.$length0;
                                                                    jl_AbstractStringBuilder_insertSpace($var2, $var5, $var5 + 1 | 0);
                                                                    $var2.$buffer.data[$var5] = $var17;
                                                                }
                                                                $var13 = $var13 + 1 | 0;
                                                            }
                                                            $par1Packet250CustomPayload = new jl_String;
                                                            var$15 = $var2.$buffer;
                                                            var$19 = var$15.data;
                                                            $var17 = $var2.$length0;
                                                            $var5 = var$19.length;
                                                            if ($var17 >= 0 && $var17 <= ($var5 - 0 | 0)) {
                                                                $par1Packet250CustomPayload.$nativeString = $rt_charArrayToString(var$15.data, 0, $var17);
                                                                if ($par1Packet250CustomPayload.$nativeString.length <= 30) {
                                                                    $ptr = 10;
                                                                    continue main;
                                                                }
                                                                break a;
                                                            }
                                                            $par1Packet250CustomPayload = new jl_IndexOutOfBoundsException;
                                                            jl_Throwable__init_($par1Packet250CustomPayload);
                                                            $rt_throw($par1Packet250CustomPayload);
                                                        }
                                                        if ($var13 < 0)
                                                            break;
                                                        if ($var13 >= $par1Packet250CustomPayload.$nativeString.length)
                                                            break;
                                                        var$15[$var13] = $par1Packet250CustomPayload.$nativeString.charCodeAt($var13);
                                                        $var13 = $var13 + 1 | 0;
                                                    }
                                                    $par1Packet250CustomPayload = new jl_StringIndexOutOfBoundsException;
                                                    $par1Packet250CustomPayload.$suppressionEnabled = 1;
                                                    $par1Packet250CustomPayload.$writableStackTrace = 1;
                                                    jl_Throwable_fillInStackTrace($par1Packet250CustomPayload);
                                                    $rt_throw($par1Packet250CustomPayload);
                                                }
                                                $par1Packet250CustomPayload = new jl_IndexOutOfBoundsException;
                                                $par1Packet250CustomPayload.$suppressionEnabled = 1;
                                                $par1Packet250CustomPayload.$writableStackTrace = 1;
                                                jl_Throwable_fillInStackTrace($par1Packet250CustomPayload);
                                                $rt_throw($par1Packet250CustomPayload);
                                            }
                                        }
                                        $par1Packet250CustomPayload = $rt_s(3);
                                        $ptr = 9;
                                        continue main;
                                    }
                                }
                            } else if ($this.$playerEntity.$openContainer instanceof nms_ContainerBeacon) {
                                try {
                                    $var2 = ji_DataInputStream__init_(ji_ByteArrayInputStream__init_($par1Packet250CustomPayload.$data10));
                                    $var13 = ji_DataInputStream_readInt($var2);
                                    $var17 = ji_DataInputStream_readInt($var2);
                                    $var18 = $this.$playerEntity.$openContainer;
                                    $var19 = nms_Container_getSlot($var18, 0);
                                    if (!nms_Slot_getHasStack($var19))
                                        break a;
                                    $var5 = 1;
                                    $ptr = 7;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var8 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                                    $var2 = new ji_ByteArrayOutputStream;
                                    $var2.$buf = $rt_createByteArray(32);
                                    jl_Object__init_($par1Packet250CustomPayload);
                                    $par1Packet250CustomPayload.$out0 = $var2;
                                    $var2 = new jl_StringBuilder;
                                    jl_AbstractStringBuilder__init_0($var2, 16);
                                    $par1Packet250CustomPayload.$sb = $var2;
                                    $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                                    $par1Packet250CustomPayload.$autoFlush = 0;
                                    $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                                    jl_System_errCache = $par1Packet250CustomPayload;
                                }
                                jl_Throwable_printStackTrace($var8, jl_System_errCache);
                            }
                        }
                    }
                }
            }
        }
        return;
    case 1:
        f: {
            try {
                nms_ContainerMerchant_setCurrentRecipeIndex($par1Packet250CustomPayload, $var13);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var10 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Packet250CustomPayload);
                $par1Packet250CustomPayload.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $par1Packet250CustomPayload.$sb = $var2;
                $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                $par1Packet250CustomPayload.$autoFlush = 0;
                $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Packet250CustomPayload;
            }
            jl_Throwable_printStackTrace($var10, jl_System_errCache);
        }
        return;
    case 2:
        f: {
            try {
                $tmp = nms_World_getBlockTileEntity($par1Packet250CustomPayload, $var13, $var17, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                $var7 = $tmp;
                if ($var7 !== null && $var7 instanceof nms_TileEntityCommandBlock) {
                    $par1Packet250CustomPayload = $var7;
                    $ptr = 4;
                    continue main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Packet250CustomPayload);
                $par1Packet250CustomPayload.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $par1Packet250CustomPayload.$sb = $var2;
                $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                $par1Packet250CustomPayload.$autoFlush = 0;
                $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Packet250CustomPayload;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        return;
    case 3:
        f: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $par1Packet250CustomPayload);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Packet250CustomPayload = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                $var6 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_($var6);
                $var6.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_($var2, $var6);
                $var2.$sb = jl_StringBuilder__init_();
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1Packet250CustomPayload, jl_System_errCache);
        }
        return;
    case 4:
        try {
            nms_TileEntityCommandBlock_setCommand($par1Packet250CustomPayload, $var6);
            if ($rt_suspending()) {
                break main;
            }
            $par1Packet250CustomPayload = $this.$playerEntity.$worldObj;
            $ptr = 5;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var9 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Packet250CustomPayload);
            $par1Packet250CustomPayload.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            $par1Packet250CustomPayload.$sb = $var2;
            $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
            $par1Packet250CustomPayload.$autoFlush = 0;
            $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Packet250CustomPayload;
        }
        jl_Throwable_printStackTrace($var9, jl_System_errCache);
        return;
    case 5:
        try {
            nms_World_markBlockForUpdate($par1Packet250CustomPayload, $var13, $var17, $var5);
            if ($rt_suspending()) {
                break main;
            }
            $par1Packet250CustomPayload = $this.$playerEntity;
            var$15 = $rt_createArray(jl_Object, 1);
            var$15.data[0] = $var6;
            $var2 = nms_StatCollector_translateToLocalFormatted($rt_s(2107), var$15);
            $ptr = 6;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var9 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Packet250CustomPayload);
            $par1Packet250CustomPayload.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            $par1Packet250CustomPayload.$sb = $var2;
            $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
            $par1Packet250CustomPayload.$autoFlush = 0;
            $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Packet250CustomPayload;
        }
        jl_Throwable_printStackTrace($var9, jl_System_errCache);
        return;
    case 6:
        f: {
            try {
                nms_EntityPlayerMP_sendChatToPlayer($par1Packet250CustomPayload, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Packet250CustomPayload);
                $par1Packet250CustomPayload.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $par1Packet250CustomPayload.$sb = $var2;
                $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                $par1Packet250CustomPayload.$autoFlush = 0;
                $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Packet250CustomPayload;
            }
            jl_Throwable_printStackTrace($var9, jl_System_errCache);
        }
        return;
    case 7:
        try {
            $var19.$decrStackSize0($var5);
            if ($rt_suspending()) {
                break main;
            }
            $var20 = nms_ContainerBeacon_getBeacon($var18);
            nms_TileEntityBeacon_setPrimaryEffect($var20, $var13);
            nms_TileEntityBeacon_setSecondaryEffect($var20, $var17);
            $ptr = 8;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var8 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Packet250CustomPayload);
            $par1Packet250CustomPayload.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            $par1Packet250CustomPayload.$sb = $var2;
            $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
            $par1Packet250CustomPayload.$autoFlush = 0;
            $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Packet250CustomPayload;
        }
        jl_Throwable_printStackTrace($var8, jl_System_errCache);
        return;
    case 8:
        f: {
            try {
                nms_TileEntity_onInventoryChanged($var20);
                if ($rt_suspending()) {
                    break main;
                }
                break f;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Packet250CustomPayload = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Packet250CustomPayload);
                $par1Packet250CustomPayload.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $par1Packet250CustomPayload.$sb = $var2;
                $par1Packet250CustomPayload.$buffer0 = $rt_createCharArray(32);
                $par1Packet250CustomPayload.$autoFlush = 0;
                $par1Packet250CustomPayload.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Packet250CustomPayload;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        return;
    case 9:
        nms_ContainerRepair_updateItemName($var14, $par1Packet250CustomPayload);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 10:
        nms_ContainerRepair_updateItemName($var14, $par1Packet250CustomPayload);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Packet250CustomPayload, $var6, $var13, $var3, $var4, $var12, $var2, $var11, $var15, $var10, $var17, $var5, $var9, $var14, var$15, $var7, var$17, var$18, var$19, $var18, $var19, $var8, $var20, $ptr);
},
nms_NetServerHandler__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    nms_NetServerHandler_randomGenerator = var$1;
};
function ju_UnknownFormatConversionException() {
    ju_IllegalFormatException.call(this);
    this.$conversion1 = null;
}
function nlesi_IPCPacket0FListFiles() {
    jl_Object.call(this);
    this.$path5 = null;
}
let nlesi_IPCPacket0FListFiles__init_ = $this => {
    return;
},
nlesi_IPCPacket0FListFiles__init_0 = () => {
    let var_0 = new nlesi_IPCPacket0FListFiles();
    nlesi_IPCPacket0FListFiles__init_(var_0);
    return var_0;
},
nlesi_IPCPacket0FListFiles_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$path5 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
},
nlesi_IPCPacket0FListFiles_id = $this => {
    return 15;
};
function nlesi_IPCPacket10FileRead() {
    jl_Object.call(this);
    this.$file0 = null;
}
let nlesi_IPCPacket10FileRead__init_ = $this => {
    return;
},
nlesi_IPCPacket10FileRead__init_0 = () => {
    let var_0 = new nlesi_IPCPacket10FileRead();
    nlesi_IPCPacket10FileRead__init_(var_0);
    return var_0;
},
nlesi_IPCPacket10FileRead_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$file0 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
},
nlesi_IPCPacket10FileRead_id = $this => {
    return 16;
},
nlesi_IPCPacket01StopServer = $rt_classWithoutFields(),
nlesi_IPCPacket01StopServer__init_ = $this => {
    return;
},
nlesi_IPCPacket01StopServer__init_0 = () => {
    let var_0 = new nlesi_IPCPacket01StopServer();
    nlesi_IPCPacket01StopServer__init_(var_0);
    return var_0;
},
nlesi_IPCPacket01StopServer_deserialize = ($this, $bin) => {
    return;
},
nlesi_IPCPacket01StopServer_id = $this => {
    return 1;
};
function nlesi_IPCPacket13FileCopyMove() {
    let a = this; jl_Object.call(a);
    a.$fileOldName = null;
    a.$fileNewName = null;
    a.$copy1 = 0;
}
let nlesi_IPCPacket13FileCopyMove__init_ = $this => {
    return;
},
nlesi_IPCPacket13FileCopyMove__init_0 = () => {
    let var_0 = new nlesi_IPCPacket13FileCopyMove();
    nlesi_IPCPacket13FileCopyMove__init_(var_0);
    return var_0;
},
nlesi_IPCPacket13FileCopyMove_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$fileOldName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$fileNewName = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
    var$2 = $bin.$in.$read();
    if (var$2 >= 0) {
        $this.$copy1 = !var$2 ? 0 : 1;
        return;
    }
    $bin = new ji_EOFException;
    $bin.$suppressionEnabled = 1;
    $bin.$writableStackTrace = 1;
    $rt_throw($bin);
},
nlesi_IPCPacket13FileCopyMove_id = $this => {
    return 19;
};
function nlesi_IPCPacket17ConfigureLAN() {
    let a = this; jl_Object.call(a);
    a.$gamemode1 = 0;
    a.$cheats0 = 0;
    a.$iceServers = null;
}
let nlesi_IPCPacket17ConfigureLAN__init_ = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$iceServers = var$1;
},
nlesi_IPCPacket17ConfigureLAN__init_0 = () => {
    let var_0 = new nlesi_IPCPacket17ConfigureLAN();
    nlesi_IPCPacket17ConfigureLAN__init_(var_0);
    return var_0;
},
nlesi_IPCPacket17ConfigureLAN_deserialize = ($this, $bin) => {
    let var$2, $i, var$4, var$5, var$6, var$7, $iceCount, var$9;
    var$2 = $bin.$in.$read();
    if (var$2 < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$gamemode1 = var$2 & 255;
    $i = $bin.$in.$read();
    if ($i < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $this.$cheats0 = !$i ? 0 : 1;
    var$4 = $this.$iceServers;
    var$5 = var$4.$array;
    $i = 0;
    var$2 = var$4.$size0;
    var$6 = null;
    if ($i > var$2) {
        $bin = new jl_IllegalArgumentException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    while ($i < var$2) {
        var$7 = var$5.data;
        $iceCount = $i + 1 | 0;
        var$7[$i] = var$6;
        $i = $iceCount;
    }
    var$4.$size0 = 0;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    var$2 = $bin.$in.$read();
    if (var$2 < 0) {
        $bin = new ji_EOFException;
        $bin.$suppressionEnabled = 1;
        $bin.$writableStackTrace = 1;
        $rt_throw($bin);
    }
    $iceCount = var$2 & 255;
    $i = 0;
    while ($i < $iceCount) {
        var$6 = $this.$iceServers;
        var$9 = ji_DataInputStream_readUnsignedShort($bin);
        var$7 = $rt_createByteArray(var$9);
        var$5 = $rt_createCharArray(var$9);
        ji_DataInputStream_readFully($bin, var$7, 0, var$9);
        var$4 = ji_DataInputStream_convertUTF8WithBuf(var$7, var$5, 0, var$9);
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$5 = var$6.$array.data;
        var$9 = var$6.$size0;
        var$6.$size0 = var$9 + 1 | 0;
        var$5[var$9] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $i = $i + 1 | 0;
    }
},
nlesi_IPCPacket17ConfigureLAN_id = $this => {
    return 23;
};
function nlesi_IPCPacket12FileWrite() {
    jl_Object.call(this);
    this.$path4 = null;
}
let nlesi_IPCPacket12FileWrite__init_ = $this => {
    return;
},
nlesi_IPCPacket12FileWrite__init_0 = () => {
    let var_0 = new nlesi_IPCPacket12FileWrite();
    nlesi_IPCPacket12FileWrite__init_(var_0);
    return var_0;
},
nlesi_IPCPacket12FileWrite_deserialize = ($this, $bin) => {
    let var$2, var$3, var$4;
    var$2 = ji_DataInputStream_readUnsignedShort($bin);
    var$3 = $rt_createByteArray(var$2);
    var$4 = $rt_createCharArray(var$2);
    ji_DataInputStream_readFully($bin, var$3, 0, var$2);
    $this.$path4 = ji_DataInputStream_convertUTF8WithBuf(var$3, var$4, 0, var$2);
},
nlesi_IPCPacket12FileWrite_id = $this => {
    return 18;
},
nlesi_IPCPacket0EListWorlds = $rt_classWithoutFields(),
nlesi_IPCPacket0EListWorlds__init_ = $this => {
    return;
},
nlesi_IPCPacket0EListWorlds__init_0 = () => {
    let var_0 = new nlesi_IPCPacket0EListWorlds();
    nlesi_IPCPacket0EListWorlds__init_(var_0);
    return var_0;
},
nlesi_IPCPacket0EListWorlds_deserialize = ($this, $bin) => {
    return;
},
nlesi_IPCPacket0EListWorlds_id = $this => {
    return 14;
};
function jl_ThreadLocal() {
    let a = this; jl_Object.call(a);
    a.$map0 = null;
    a.$initialized0 = 0;
    a.$value16 = null;
}
let jl_ThreadLocal_NULL = null,
jl_ThreadLocal__init_ = $this => {
    return;
},
jl_ThreadLocal__init_0 = () => {
    let var_0 = new jl_ThreadLocal();
    jl_ThreadLocal__init_(var_0);
    return var_0;
},
jl_ThreadLocal_get = $this => {
    let $value, $key, var$3;
    $value = jl_Thread_currentThread;
    if ($value !== jl_Thread_mainThread ? 0 : 1) {
        if (!$this.$initialized0) {
            $key = new nms_AABBPool;
            $value = new ju_ArrayList;
            $value.$array = $rt_createArray(jl_Object, 10);
            $key.$listAABB = $value;
            $key.$maxNumCleans = 300;
            $key.$numEntriesToRemove = 2000;
            $this.$value16 = $key;
            $this.$initialized0 = 1;
        }
        $key = $this.$map0;
        if ($key !== null) {
            while (true) {
                $value = jlr_ReferenceQueue_poll($key.$referenceQueue);
                if ($value === null)
                    break;
                ju_WeakHashMap_removeEntry($key, $value);
            }
            if ($key.$elementCount0 ? 0 : 1)
                $this.$map0 = null;
        }
        return $this.$value16;
    }
    $key = $value.$key2;
    if ($this.$map0 === null)
        $this.$map0 = ju_WeakHashMap__init_0();
    $value = ju_WeakHashMap_get($this.$map0, $key);
    if ($value === null) {
        $value = new nms_AABBPool;
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $value.$listAABB = var$3;
        $value.$maxNumCleans = 300;
        $value.$numEntriesToRemove = 2000;
        ju_WeakHashMap_put($this.$map0, $key, $value);
    } else if ($value === jl_ThreadLocal_NULL)
        $value = null;
    $key = $this.$map0;
    if ($key !== null) {
        while (true) {
            var$3 = jlr_ReferenceQueue_poll($key.$referenceQueue);
            if (var$3 === null)
                break;
            ju_WeakHashMap_removeEntry($key, var$3);
        }
        if ($key.$elementCount0 ? 0 : 1)
            $this.$map0 = null;
    }
    return $value;
},
jl_ThreadLocal__clinit_ = () => {
    jl_ThreadLocal_NULL = new jl_Object;
},
nms_AABBLocalPool = $rt_classWithoutFields(jl_ThreadLocal),
nms_AABBLocalPool__init_ = $this => {
    return;
},
nms_AABBLocalPool__init_0 = () => {
    let var_0 = new nms_AABBLocalPool();
    nms_AABBLocalPool__init_(var_0);
    return var_0;
};
function nms_Packet0KeepAlive() {
    nms_Packet.call(this);
    this.$randomId = 0;
}
let nms_Packet0KeepAlive__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet0KeepAlive__init_0 = () => {
    let var_0 = new nms_Packet0KeepAlive();
    nms_Packet0KeepAlive__init_(var_0);
    return var_0;
},
nms_Packet0KeepAlive_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleKeepAlive($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet0KeepAlive_readPacketData = ($this, $par1DataInput) => {
    $this.$randomId = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet0KeepAlive_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$randomId);
},
nms_Packet0KeepAlive_getPacketSize = $this => {
    return 4;
};
function nms_Packet1Login() {
    let a = this; nms_Packet.call(a);
    a.$clientEntityId = 0;
    a.$terrainType0 = null;
    a.$hardcoreMode = 0;
    a.$gameType0 = null;
    a.$dimension1 = 0;
    a.$difficultySetting0 = 0;
    a.$worldHeight = 0;
    a.$maxPlayers0 = 0;
}
let nms_Packet1Login__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet1Login__init_0 = () => {
    let var_0 = new nms_Packet1Login();
    nms_Packet1Login__init_(var_0);
    return var_0;
},
nms_Packet1Login_readPacketData = ($this, $par1DataInput) => {
    let $var2, $var4, $var3, var$5, var$6;
    $this.$clientEntityId = ji_DataInputStream_readInt($par1DataInput);
    $var2 = nms_WorldType_parseWorldType(nms_Packet_readString($par1DataInput, 16));
    $this.$terrainType0 = $var2;
    if ($var2 === null)
        $this.$terrainType0 = nms_WorldType_DEFAULT;
    $var4 = $par1DataInput.$in.$read();
    if ($var4 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $var3 = $var4 << 24 >> 24;
    $this.$hardcoreMode = ($var3 & 8) != 8 ? 0 : 1;
    $var4 = $var3 & (-9);
    var$5 = (nms_EnumGameType_$VALUES.$clone0()).data;
    var$6 = var$5.length;
    $var3 = 0;
    a: {
        while (true) {
            if ($var3 >= var$6) {
                $var2 = nms_EnumGameType_SURVIVAL;
                break a;
            }
            $var2 = var$5[$var3];
            if ($var2.$id3 == $var4)
                break;
            $var3 = $var3 + 1 | 0;
        }
    }
    $this.$gameType0 = $var2;
    $var4 = $par1DataInput.$in.$read();
    if ($var4 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$dimension1 = $var4 << 24 >> 24;
    $var4 = $par1DataInput.$in.$read();
    if ($var4 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$difficultySetting0 = $var4 << 24 >> 24;
    $var4 = $par1DataInput.$in.$read();
    if ($var4 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$worldHeight = $var4 << 24 >> 24;
    $var4 = $par1DataInput.$in.$read();
    if ($var4 >= 0) {
        $this.$maxPlayers0 = $var4 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet1Login_writePacketData = ($this, $par1DataOutput) => {
    let var$2, $var2, var$4;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$clientEntityId);
    var$2 = $this.$terrainType0;
    var$2 = var$2 === null ? $rt_s(3) : var$2.$worldType;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    $var2 = $this.$gameType0.$id3;
    if ($this.$hardcoreMode)
        $var2 = $var2 | 8;
    $par1DataOutput.$out0.$write0($var2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$4 = $this.$dimension1;
    $par1DataOutput.$out0.$write0(var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$4 = $this.$difficultySetting0;
    $par1DataOutput.$out0.$write0(var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$4 = $this.$worldHeight;
    $par1DataOutput.$out0.$write0(var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$4 = $this.$maxPlayers0;
    $par1DataOutput.$out0.$write0(var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet1Login_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleLogin($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet1Login_getPacketSize = $this => {
    let $var1, var$2;
    $var1 = 0;
    var$2 = $this.$terrainType0;
    if (var$2 !== null)
        $var1 = var$2.$worldType.$nativeString.length;
    return (((((6 + (2 * $var1 | 0) | 0) + 4 | 0) + 4 | 0) + 1 | 0) + 1 | 0) + 1 | 0;
};
function nms_Packet2ClientProtocol() {
    let a = this; nms_Packet.call(a);
    a.$protocolVersion = 0;
    a.$username1 = null;
    a.$serverHost = null;
    a.$viewDistance1 = 0;
}
let nms_Packet2ClientProtocol__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet2ClientProtocol__init_0 = () => {
    let var_0 = new nms_Packet2ClientProtocol();
    nms_Packet2ClientProtocol__init_(var_0);
    return var_0;
},
nms_Packet2ClientProtocol_readPacketData = ($this, $par1DataInputStream) => {
    let var$2;
    var$2 = $par1DataInputStream.$in.$read();
    if (var$2 >= 0) {
        $this.$protocolVersion = var$2 << 24 >> 24;
        $this.$username1 = nms_Packet_readString($par1DataInputStream, 16);
        $this.$serverHost = nms_Packet_readString($par1DataInputStream, 255);
        $this.$viewDistance1 = ji_DataInputStream_readInt($par1DataInputStream);
        return;
    }
    $par1DataInputStream = new ji_EOFException;
    $par1DataInputStream.$suppressionEnabled = 1;
    $par1DataInputStream.$writableStackTrace = 1;
    $rt_throw($par1DataInputStream);
},
nms_Packet2ClientProtocol_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleClientProtocol($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet3Chat() {
    let a = this; nms_Packet.call(a);
    a.$message1 = null;
    a.$isServer = 0;
}
let nms_Packet3Chat_maxChatLength = 0,
nms_Packet3Chat__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isServer = 1;
},
nms_Packet3Chat__init_0 = () => {
    let var_0 = new nms_Packet3Chat();
    nms_Packet3Chat__init_(var_0);
    return var_0;
},
nms_Packet3Chat_readPacketData = ($this, $par1DataInput) => {
    $this.$message1 = nms_Packet_readString($par1DataInput, 32767);
},
nms_Packet3Chat_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$message1;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length <= 32767) {
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        return;
    }
    var$2 = new ji_IOException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(2108);
    $rt_throw(var$2);
},
nms_Packet3Chat_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleChat($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet3Chat_getPacketSize = $this => {
    return 2 + ($this.$message1.$nativeString.length * 2 | 0) | 0;
},
nms_Packet3Chat__clinit_ = () => {
    nms_Packet3Chat_maxChatLength = 119;
};
function nms_Packet4UpdateTime() {
    let a = this; nms_Packet.call(a);
    a.$worldAge = Long_ZERO;
    a.$time0 = Long_ZERO;
}
let nms_Packet4UpdateTime__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet4UpdateTime__init_0 = () => {
    let var_0 = new nms_Packet4UpdateTime();
    nms_Packet4UpdateTime__init_(var_0);
    return var_0;
},
nms_Packet4UpdateTime_readPacketData = ($this, $par1DataInput) => {
    $this.$worldAge = ji_DataInputStream_readLong($par1DataInput);
    $this.$time0 = ji_DataInputStream_readLong($par1DataInput);
},
nms_Packet4UpdateTime_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeLong($par1DataOutput, $this.$worldAge);
    ji_DataOutputStream_writeLong($par1DataOutput, $this.$time0);
},
nms_Packet4UpdateTime_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet4UpdateTime_getPacketSize = $this => {
    return 16;
};
function nms_Packet5PlayerInventory() {
    let a = this; nms_Packet.call(a);
    a.$entityID = 0;
    a.$slot = 0;
    a.$itemSlot0 = null;
}
let nms_Packet5PlayerInventory__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet5PlayerInventory__init_0 = () => {
    let var_0 = new nms_Packet5PlayerInventory();
    nms_Packet5PlayerInventory__init_(var_0);
    return var_0;
},
nms_Packet5PlayerInventory_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    $this.$entityID = ji_DataInputStream_readInt($par1DataInput);
    $this.$slot = ji_DataInputStream_readShort($par1DataInput);
    nms_Packet_$callClinit();
    var$2 = null;
    var$3 = ji_DataInputStream_readShort($par1DataInput);
    if (var$3 >= 0) {
        var$4 = $par1DataInput.$in.$read();
        if (var$4 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        var$5 = var$4 << 24 >> 24;
        var$4 = ji_DataInputStream_readShort($par1DataInput);
        var$2 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$2.$itemID = var$3;
        var$2.$stackSize = var$5;
        var$2.$itemDamage = var$4;
        if (var$4 < 0)
            var$2.$itemDamage = 0;
        var$3 = ji_DataInputStream_readShort($par1DataInput);
        if (var$3 < 0)
            $par1DataInput = null;
        else {
            var$6 = $rt_createByteArray(var$3);
            var$4 = var$6.data.length;
            ji_DataInputStream_readFully($par1DataInput, var$6, 0, var$4);
            var$7 = new ji_DataInputStream;
            var$8 = new ji_BufferedInputStream;
            var$9 = new cjj_GZIPInputStream;
            var$10 = new ji_ByteArrayInputStream;
            var$10.$buf0 = var$6;
            var$10.$pos0 = 0;
            var$10.$mark = 0;
            var$10.$count = 0 + var$4 | 0;
            $par1DataInput = new cjj_Inflater;
            cjj_ZStream__init_($par1DataInput, cjj_Adler32__init_());
            $par1DataInput.$finished0 = 0;
            $par1DataInput.$finished0 = 0;
            var$11 = cjj_Inflate__init_($par1DataInput);
            $par1DataInput.$istate = var$11;
            var$5 = cjj_Inflate_inflateInit(var$11, 31);
            if (var$5) {
                var$2 = new cjj_GZIPException;
                var$7 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$7);
                jl_AbstractStringBuilder_append0(var$7, var$5);
                jl_AbstractStringBuilder_append(var$7, $rt_s(102));
                jl_AbstractStringBuilder_append(var$7, $par1DataInput.$msg);
                ji_IOException__init_0(var$2, jl_AbstractStringBuilder_toString(var$7));
                $rt_throw(var$2);
            }
            cjj_InflaterInputStream__init_(var$9, var$10, $par1DataInput, 512, 1);
            var$9.$myinflater = 1;
            var$8.$in = var$9;
            var$8.$markpos = (-1);
            var$8.$buf1 = $rt_createByteArray(8192);
            var$7.$in = var$8;
            var$7.$buff = $rt_createByteArray(8);
            a: {
                try {
                    $par1DataInput = nms_CompressedStreamTools_read(var$7);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1DataInput = $$je;

                }
                var$7.$in.$close();
                $rt_throw($par1DataInput);
            }
            var$7.$in.$close();
        }
        var$2.$stackTagCompound = $par1DataInput;
    }
    $this.$itemSlot0 = var$2;
},
nms_Packet5PlayerInventory_writePacketData = ($this, $par1DataOutput) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityID);
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$slot);
        var$2 = $this.$itemSlot0;
        $ptr = 1;
    case 1:
        nms_Packet_writeItemStack(var$2, $par1DataOutput);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, var$2, $ptr);
},
nms_Packet5PlayerInventory_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet5PlayerInventory_getPacketSize = $this => {
    return 8;
};
function nms_Packet6SpawnPosition() {
    let a = this; nms_Packet.call(a);
    a.$xPosition4 = 0;
    a.$yPosition3 = 0;
    a.$zPosition4 = 0;
}
let nms_Packet6SpawnPosition__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet6SpawnPosition__init_0 = () => {
    let var_0 = new nms_Packet6SpawnPosition();
    nms_Packet6SpawnPosition__init_(var_0);
    return var_0;
},
nms_Packet6SpawnPosition_readPacketData = ($this, $par1DataInput) => {
    $this.$xPosition4 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition3 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition4 = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet6SpawnPosition_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition4);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$yPosition3);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition4);
},
nms_Packet6SpawnPosition_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet6SpawnPosition_getPacketSize = $this => {
    return 12;
};
function nms_Packet7UseEntity() {
    let a = this; nms_Packet.call(a);
    a.$playerEntityId = 0;
    a.$targetEntity1 = 0;
    a.$isLeftClick = 0;
}
let nms_Packet7UseEntity__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet7UseEntity__init_0 = () => {
    let var_0 = new nms_Packet7UseEntity();
    nms_Packet7UseEntity__init_(var_0);
    return var_0;
},
nms_Packet7UseEntity_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$playerEntityId = ji_DataInputStream_readInt($par1DataInput);
    $this.$targetEntity1 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$isLeftClick = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet7UseEntity_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleUseEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet8UpdateHealth() {
    let a = this; nms_Packet.call(a);
    a.$healthMP = 0.0;
    a.$food = 0;
    a.$foodSaturation = 0.0;
}
let nms_Packet8UpdateHealth__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet8UpdateHealth__init_0 = () => {
    let var_0 = new nms_Packet8UpdateHealth();
    nms_Packet8UpdateHealth__init_(var_0);
    return var_0;
},
nms_Packet8UpdateHealth_readPacketData = ($this, $par1DataInput) => {
    $this.$healthMP = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$food = ji_DataInputStream_readShort($par1DataInput);
    $this.$foodSaturation = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
},
nms_Packet8UpdateHealth_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$healthMP;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$2) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$2));
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$food);
    var$2 = $this.$foodSaturation;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$2) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$2));
},
nms_Packet8UpdateHealth_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet8UpdateHealth_getPacketSize = $this => {
    return 8;
};
function nms_Packet9Respawn() {
    let a = this; nms_Packet.call(a);
    a.$respawnDimension = 0;
    a.$difficulty1 = 0;
    a.$worldHeight0 = 0;
    a.$gameType1 = null;
    a.$terrainType1 = null;
}
let nms_Packet9Respawn__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet9Respawn__init_0 = () => {
    let var_0 = new nms_Packet9Respawn();
    nms_Packet9Respawn__init_(var_0);
    return var_0;
},
nms_Packet9Respawn_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleRespawn($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet9Respawn_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, $var2;
    $this.$respawnDimension = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$difficulty1 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    var$3 = var$2 << 24 >> 24;
    var$4 = (nms_EnumGameType_$VALUES.$clone0()).data;
    var$2 = var$4.length;
    var$5 = 0;
    a: {
        while (true) {
            if (var$5 >= var$2) {
                $var2 = nms_EnumGameType_SURVIVAL;
                break a;
            }
            $var2 = var$4[var$5];
            if ($var2.$id3 == var$3)
                break;
            var$5 = var$5 + 1 | 0;
        }
    }
    $this.$gameType1 = $var2;
    $this.$worldHeight0 = ji_DataInputStream_readShort($par1DataInput);
    $par1DataInput = nms_WorldType_parseWorldType(nms_Packet_readString($par1DataInput, 16));
    $this.$terrainType1 = $par1DataInput;
    if ($par1DataInput === null)
        $this.$terrainType1 = nms_WorldType_DEFAULT;
},
nms_Packet9Respawn_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$respawnDimension);
    var$2 = $this.$difficulty1;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$gameType1.$id3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$worldHeight0);
    var$3 = $this.$terrainType1.$worldType;
    nms_Packet_$callClinit();
    if (var$3.$nativeString.length <= 32767) {
        ji_DataOutputStream_writeShort($par1DataOutput, var$3.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$3);
        return;
    }
    var$3 = new ji_IOException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    var$3.$message = $rt_s(2108);
    $rt_throw(var$3);
},
nms_Packet9Respawn_getPacketSize = $this => {
    let var$1;
    var$1 = $this.$terrainType1;
    return 8 + (var$1 === null ? 0 : var$1.$worldType.$nativeString.length) | 0;
};
function nms_Packet10Flying() {
    let a = this; nms_Packet.call(a);
    a.$xPosition = 0.0;
    a.$yPosition = 0.0;
    a.$zPosition = 0.0;
    a.$stance = 0.0;
    a.$yaw = 0.0;
    a.$pitch = 0.0;
    a.$onGround0 = 0;
    a.$moving = 0;
    a.$rotating = 0;
}
let nms_Packet10Flying__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet10Flying__init_0 = () => {
    let var_0 = new nms_Packet10Flying();
    nms_Packet10Flying__init_(var_0);
    return var_0;
},
nms_Packet10Flying_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleFlying($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet10Flying_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$onGround0 = !(var$2 & 255) ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet11PlayerPosition = $rt_classWithoutFields(nms_Packet10Flying),
nms_Packet11PlayerPosition__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$moving = 1;
},
nms_Packet11PlayerPosition__init_0 = () => {
    let var_0 = new nms_Packet11PlayerPosition();
    nms_Packet11PlayerPosition__init_(var_0);
    return var_0;
},
nms_Packet11PlayerPosition_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$xPosition = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$yPosition = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$stance = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$zPosition = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$onGround0 = !(var$2 & 255) ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet12PlayerLook = $rt_classWithoutFields(nms_Packet10Flying),
nms_Packet12PlayerLook__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$rotating = 1;
},
nms_Packet12PlayerLook__init_0 = () => {
    let var_0 = new nms_Packet12PlayerLook();
    nms_Packet12PlayerLook__init_(var_0);
    return var_0;
},
nms_Packet12PlayerLook_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$yaw = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$pitch = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$onGround0 = !(var$2 & 255) ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet13PlayerLookMove = $rt_classWithoutFields(nms_Packet10Flying),
nms_Packet13PlayerLookMove__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$rotating = 1;
    $this.$moving = 1;
},
nms_Packet13PlayerLookMove__init_0 = () => {
    let var_0 = new nms_Packet13PlayerLookMove();
    nms_Packet13PlayerLookMove__init_(var_0);
    return var_0;
},
nms_Packet13PlayerLookMove_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$xPosition = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$yPosition = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$stance = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$zPosition = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$yaw = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$pitch = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$onGround0 = !(var$2 & 255) ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet13PlayerLookMove_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4;
    var$2 = $this.$xPosition;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$2 = $this.$yPosition;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$2 = $this.$stance;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$2 = $this.$zPosition;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$3 = $this.$yaw;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
    var$3 = $this.$pitch;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
    var$4 = !$this.$onGround0 ? 0 : 1;
    $par1DataOutput.$out0.$write0(var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet13PlayerLookMove_getPacketSize = $this => {
    return 41;
};
function nms_Packet14BlockDig() {
    let a = this; nms_Packet.call(a);
    a.$xPosition13 = 0;
    a.$yPosition12 = 0;
    a.$zPosition16 = 0;
    a.$face = 0;
    a.$status1 = 0;
}
let nms_Packet14BlockDig__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet14BlockDig__init_0 = () => {
    let var_0 = new nms_Packet14BlockDig();
    nms_Packet14BlockDig__init_(var_0);
    return var_0;
},
nms_Packet14BlockDig_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$status1 = var$2 & 255;
    $this.$xPosition13 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yPosition12 = var$2 & 255;
    $this.$zPosition16 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$face = var$2 & 255;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet14BlockDig_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleBlockDig($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet15Place() {
    let a = this; nms_Packet.call(a);
    a.$xPosition15 = 0;
    a.$yPosition11 = 0;
    a.$zPosition13 = 0;
    a.$direction0 = 0;
    a.$itemStack2 = null;
    a.$xOffset = 0.0;
    a.$yOffset0 = 0.0;
    a.$zOffset = 0.0;
}
let nms_Packet15Place__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet15Place__init_0 = () => {
    let var_0 = new nms_Packet15Place();
    nms_Packet15Place__init_(var_0);
    return var_0;
},
nms_Packet15Place_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je;
    $this.$xPosition15 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yPosition11 = var$2 & 255;
    $this.$zPosition13 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$direction0 = var$2 & 255;
    nms_Packet_$callClinit();
    var$3 = null;
    var$4 = ji_DataInputStream_readShort($par1DataInput);
    if (var$4 >= 0) {
        var$2 = $par1DataInput.$in.$read();
        if (var$2 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        var$5 = var$2 << 24 >> 24;
        var$2 = ji_DataInputStream_readShort($par1DataInput);
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$4;
        var$3.$stackSize = var$5;
        var$3.$itemDamage = var$2;
        if (var$2 < 0)
            var$3.$itemDamage = 0;
        var$4 = ji_DataInputStream_readShort($par1DataInput);
        if (var$4 < 0)
            var$6 = null;
        else {
            var$7 = $rt_createByteArray(var$4);
            var$2 = var$7.data.length;
            ji_DataInputStream_readFully($par1DataInput, var$7, 0, var$2);
            var$8 = new ji_DataInputStream;
            var$6 = new ji_BufferedInputStream;
            var$9 = new cjj_GZIPInputStream;
            var$10 = new ji_ByteArrayInputStream;
            var$10.$buf0 = var$7;
            var$10.$pos0 = 0;
            var$10.$mark = 0;
            var$10.$count = 0 + var$2 | 0;
            var$11 = new cjj_Inflater;
            cjj_ZStream__init_(var$11, cjj_Adler32__init_());
            var$11.$finished0 = 0;
            var$11.$finished0 = 0;
            var$12 = cjj_Inflate__init_(var$11);
            var$11.$istate = var$12;
            var$5 = cjj_Inflate_inflateInit(var$12, 31);
            if (var$5) {
                $par1DataInput = new cjj_GZIPException;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                jl_AbstractStringBuilder_append0(var$3, var$5);
                jl_AbstractStringBuilder_append(var$3, $rt_s(102));
                jl_AbstractStringBuilder_append(var$3, var$11.$msg);
                ji_IOException__init_0($par1DataInput, jl_AbstractStringBuilder_toString(var$3));
                $rt_throw($par1DataInput);
            }
            cjj_InflaterInputStream__init_(var$9, var$10, var$11, 512, 1);
            var$9.$myinflater = 1;
            var$6.$in = var$9;
            var$6.$markpos = (-1);
            var$6.$buf1 = $rt_createByteArray(8192);
            var$8.$in = var$6;
            var$8.$buff = $rt_createByteArray(8);
            a: {
                try {
                    var$6 = nms_CompressedStreamTools_read(var$8);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1DataInput = $$je;

                }
                var$8.$in.$close();
                $rt_throw($par1DataInput);
            }
            var$8.$in.$close();
        }
        var$3.$stackTagCompound = var$6;
    }
    $this.$itemStack2 = var$3;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$xOffset = (var$2 & 255) / 16.0;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yOffset0 = (var$2 & 255) / 16.0;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$zOffset = (var$2 & 255) / 16.0;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet15Place_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handlePlace($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet16BlockItemSwitch() {
    nms_Packet.call(this);
    this.$id4 = 0;
}
let nms_Packet16BlockItemSwitch__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet16BlockItemSwitch__init_0 = () => {
    let var_0 = new nms_Packet16BlockItemSwitch();
    nms_Packet16BlockItemSwitch__init_(var_0);
    return var_0;
},
nms_Packet16BlockItemSwitch_readPacketData = ($this, $par1DataInput) => {
    $this.$id4 = ji_DataInputStream_readShort($par1DataInput);
},
nms_Packet16BlockItemSwitch_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$id4);
},
nms_Packet16BlockItemSwitch_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleBlockItemSwitch($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet16BlockItemSwitch_getPacketSize = $this => {
    return 2;
};
function nms_Packet17Sleep() {
    let a = this; nms_Packet.call(a);
    a.$entityID0 = 0;
    a.$bedX = 0;
    a.$bedY = 0;
    a.$bedZ = 0;
    a.$field_73622_e = 0;
}
let nms_Packet17Sleep__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet17Sleep__init_0 = () => {
    let var_0 = new nms_Packet17Sleep();
    nms_Packet17Sleep__init_(var_0);
    return var_0;
},
nms_Packet17Sleep_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityID0 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$field_73622_e = var$2 << 24 >> 24;
    $this.$bedX = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$bedY = var$2 << 24 >> 24;
        $this.$bedZ = ji_DataInputStream_readInt($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet17Sleep_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityID0);
    var$2 = $this.$field_73622_e;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$bedX);
    var$2 = $this.$bedY;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$bedZ);
},
nms_Packet17Sleep_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet17Sleep_getPacketSize = $this => {
    return 14;
};
function nms_Packet18Animation() {
    let a = this; nms_Packet.call(a);
    a.$entityId1 = 0;
    a.$animate = 0;
}
let nms_Packet18Animation__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet18Animation__init_0 = () => {
    let var_0 = new nms_Packet18Animation();
    nms_Packet18Animation__init_(var_0);
    return var_0;
},
nms_Packet18Animation_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId1 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$animate = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet18Animation_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId1);
    var$2 = $this.$animate;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet18Animation_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleAnimation($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet18Animation_getPacketSize = $this => {
    return 5;
};
function nms_Packet19EntityAction() {
    let a = this; nms_Packet.call(a);
    a.$entityId16 = 0;
    a.$action1 = 0;
    a.$auxData0 = 0;
}
let nms_Packet19EntityAction__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet19EntityAction__init_0 = () => {
    let var_0 = new nms_Packet19EntityAction();
    nms_Packet19EntityAction__init_(var_0);
    return var_0;
},
nms_Packet19EntityAction_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId16 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$action1 = var$2 << 24 >> 24;
        $this.$auxData0 = ji_DataInputStream_readInt($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet19EntityAction_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleEntityAction($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet20NamedEntitySpawn() {
    let a = this; nms_Packet.call(a);
    a.$entityId15 = 0;
    a.$name16 = null;
    a.$xPosition12 = 0;
    a.$yPosition10 = 0;
    a.$zPosition12 = 0;
    a.$rotation = 0;
    a.$pitch4 = 0;
    a.$currentItem0 = 0;
    a.$metadata2 = null;
    a.$metadataWatchableObjects = null;
}
let nms_Packet20NamedEntitySpawn__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet20NamedEntitySpawn__init_2 = () => {
    let var_0 = new nms_Packet20NamedEntitySpawn();
    nms_Packet20NamedEntitySpawn__init_(var_0);
    return var_0;
},
nms_Packet20NamedEntitySpawn__init_0 = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $var2;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$entityId15 = $par1EntityPlayer.$entityId;
    $this.$name16 = $par1EntityPlayer.$username;
    var$2 = $par1EntityPlayer.$posX * 32.0;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    $this.$xPosition12 = var$3;
    var$2 = $par1EntityPlayer.$posY * 32.0;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    $this.$yPosition10 = var$3;
    var$2 = $par1EntityPlayer.$posZ * 32.0;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    $this.$zPosition12 = var$3;
    $this.$rotation = ($par1EntityPlayer.$rotationYaw * 256.0 / 360.0 | 0) << 24 >> 24;
    $this.$pitch4 = ($par1EntityPlayer.$rotationPitch * 256.0 / 360.0 | 0) << 24 >> 24;
    $var2 = $par1EntityPlayer.$inventory0;
    var$3 = $var2.$currentItem;
    $var2 = var$3 < 9 && var$3 >= 0 ? $var2.$mainInventory.data[var$3] : null;
    $this.$currentItem0 = $var2 !== null ? $var2.$itemID : 0;
    $this.$metadata2 = $par1EntityPlayer.$dataWatcher;
},
nms_Packet20NamedEntitySpawn__init_1 = var_0 => {
    let var_1 = new nms_Packet20NamedEntitySpawn();
    nms_Packet20NamedEntitySpawn__init_0(var_1, var_0);
    return var_1;
},
nms_Packet20NamedEntitySpawn_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId15 = ji_DataInputStream_readInt($par1DataInput);
    $this.$name16 = nms_Packet_readString($par1DataInput, 16);
    $this.$xPosition12 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition10 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition12 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$rotation = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$pitch4 = var$2 << 24 >> 24;
        $this.$currentItem0 = ji_DataInputStream_readShort($par1DataInput);
        $this.$metadataWatchableObjects = nms_DataWatcher_readWatchableObjects($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet20NamedEntitySpawn_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId15);
        var$2 = $this.$name16;
        nms_Packet_$callClinit();
        if (var$2.$nativeString.length > 32767) {
            var$2 = new ji_IOException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(2108);
            $rt_throw(var$2);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition12);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$yPosition10);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition12);
        var$3 = $this.$rotation;
        $par1DataOutput.$out0.$write0(var$3);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        var$3 = $this.$pitch4;
        $par1DataOutput.$out0.$write0(var$3);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$currentItem0);
        var$2 = $this.$metadata2.$watchedObjects;
        if (var$2.$cachedValues === null) {
            var$4 = new ju_HashMap$2;
            var$4.$this$01 = var$2;
            var$2.$cachedValues = var$4;
        }
        var$2 = var$2.$cachedValues.$iterator();
        if (!var$2.$hasNext()) {
            $par1DataOutput.$out0.$write0(127);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
            return;
        }
        var$4 = var$2.$next();
        $ptr = 1;
    case 1:
        nms_DataWatcher_writeWatchableObject($par1DataOutput, var$4);
        if ($rt_suspending()) {
            break main;
        }
        if (!var$2.$hasNext()) {
            $par1DataOutput.$out0.$write0(127);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
            return;
        }
        var$4 = var$2.$next();
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, var$2, var$3, var$4, $ptr);
},
nms_Packet20NamedEntitySpawn_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet20NamedEntitySpawn_getPacketSize = $this => {
    return 28;
};
function nms_Packet22Collect() {
    let a = this; nms_Packet.call(a);
    a.$collectedEntityId = 0;
    a.$collectorEntityId = 0;
}
let nms_Packet22Collect__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet22Collect__init_0 = () => {
    let var_0 = new nms_Packet22Collect();
    nms_Packet22Collect__init_(var_0);
    return var_0;
},
nms_Packet22Collect_readPacketData = ($this, $par1DataInput) => {
    $this.$collectedEntityId = ji_DataInputStream_readInt($par1DataInput);
    $this.$collectorEntityId = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet22Collect_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$collectedEntityId);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$collectorEntityId);
},
nms_Packet22Collect_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet22Collect_getPacketSize = $this => {
    return 8;
};
function nms_Packet23VehicleSpawn() {
    let a = this; nms_Packet.call(a);
    a.$entityId11 = 0;
    a.$xPosition6 = 0;
    a.$yPosition6 = 0;
    a.$zPosition8 = 0;
    a.$speedX = 0;
    a.$speedY = 0;
    a.$speedZ = 0;
    a.$pitch6 = 0;
    a.$yaw3 = 0;
    a.$type4 = 0;
    a.$throwerEntityId = 0;
}
let nms_Packet23VehicleSpawn__init_1 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet23VehicleSpawn__init_2 = () => {
    let var_0 = new nms_Packet23VehicleSpawn();
    nms_Packet23VehicleSpawn__init_1(var_0);
    return var_0;
},
nms_Packet23VehicleSpawn__init_0 = ($this, $par1Entity, $par2, $par3) => {
    let $var6, var$5, var$6, var$7, var$8, $var4, $var8, $var10, var$12;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$entityId11 = $par1Entity.$entityId;
    $var6 = $par1Entity.$posX * 32.0;
    var$5 = $var6 | 0;
    if ($var6 < var$5)
        var$5 = var$5 - 1 | 0;
    $this.$xPosition6 = var$5;
    $var6 = $par1Entity.$posY * 32.0;
    var$5 = $var6 | 0;
    if ($var6 < var$5)
        var$5 = var$5 - 1 | 0;
    $this.$yPosition6 = var$5;
    $var6 = $par1Entity.$posZ * 32.0;
    var$5 = $var6 | 0;
    if ($var6 < var$5)
        var$5 = var$5 - 1 | 0;
    $this.$zPosition8 = var$5;
    var$6 = $par1Entity.$rotationPitch * 256.0 / 360.0;
    var$7 = var$6 | 0;
    if (var$6 < var$7)
        var$7 = var$7 - 1 | 0;
    $this.$pitch6 = var$7;
    var$8 = $par1Entity.$rotationYaw * 256.0 / 360.0;
    var$5 = var$8 | 0;
    if (var$8 < var$5)
        var$5 = var$5 - 1 | 0;
    $this.$yaw3 = var$5;
    $this.$type4 = $par2;
    $this.$throwerEntityId = $par3;
    if ($par3 > 0) {
        $var4 = $par1Entity.$motionX;
        $var6 = $par1Entity.$motionY;
        $var8 = $par1Entity.$motionZ;
        $var10 = 3.9;
        var$12 = (-3.9);
        if ($var4 < var$12)
            $var4 = var$12;
        if ($var6 < var$12)
            $var6 = var$12;
        if ($var8 >= var$12)
            var$12 = $var8;
        if ($var4 > $var10)
            $var4 = $var10;
        if ($var6 > $var10)
            $var6 = $var10;
        if (var$12 <= $var10)
            $var10 = var$12;
        $this.$speedX = $var4 * 8000.0 | 0;
        $this.$speedY = $var6 * 8000.0 | 0;
        $this.$speedZ = $var10 * 8000.0 | 0;
    }
},
nms_Packet23VehicleSpawn__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_Packet23VehicleSpawn();
    nms_Packet23VehicleSpawn__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_Packet23VehicleSpawn_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId11 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$type4 = var$2 << 24 >> 24;
    $this.$xPosition6 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition6 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition8 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$pitch6 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yaw3 = var$2 << 24 >> 24;
    var$2 = ji_DataInputStream_readInt($par1DataInput);
    $this.$throwerEntityId = var$2;
    if (var$2 > 0) {
        $this.$speedX = ji_DataInputStream_readShort($par1DataInput);
        $this.$speedY = ji_DataInputStream_readShort($par1DataInput);
        $this.$speedZ = ji_DataInputStream_readShort($par1DataInput);
    }
},
nms_Packet23VehicleSpawn_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId11);
    var$2 = $this.$type4;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition6);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$yPosition6);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition8);
    var$2 = $this.$pitch6;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$yaw3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$throwerEntityId);
    if ($this.$throwerEntityId > 0) {
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$speedX);
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$speedY);
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$speedZ);
    }
},
nms_Packet23VehicleSpawn_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet23VehicleSpawn_getPacketSize = $this => {
    return (21 + $this.$throwerEntityId | 0) <= 0 ? 0 : 6;
};
function nms_Packet24MobSpawn() {
    let a = this; nms_Packet.call(a);
    a.$entityId8 = 0;
    a.$type5 = 0;
    a.$xPosition11 = 0;
    a.$yPosition9 = 0;
    a.$zPosition10 = 0;
    a.$velocityX = 0;
    a.$velocityY = 0;
    a.$velocityZ = 0;
    a.$yaw2 = 0;
    a.$pitch5 = 0;
    a.$headYaw = 0;
    a.$metaData = null;
    a.$metadata3 = null;
}
let nms_Packet24MobSpawn__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet24MobSpawn__init_2 = () => {
    let var_0 = new nms_Packet24MobSpawn();
    nms_Packet24MobSpawn__init_(var_0);
    return var_0;
},
nms_Packet24MobSpawn__init_0 = ($this, $par1EntityLivingBase) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, $var4, $var6, $var8, var$13;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$entityId8 = $par1EntityLivingBase.$entityId;
    nms_EntityList_$callClinit();
    var$2 = $par1EntityLivingBase.constructor;
    if (var$2 === null)
        var$3 = null;
    else {
        var$3 = var$2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = var$2;
            var$2.classObject = var$3;
        }
    }
    var$2 = nms_EntityList_classToIDMapping;
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3;
        if (!var$4.$id$)
            var$4.$id$ = $rt_nextId();
        var$5 = var$3.$id$;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$4 = var$2.$key;
                if (var$3 !== var$4 && !(var$3 !== var$4 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    if (!(var$2 === null ? 0 : 1))
        var$5 = 0;
    else {
        var$2 = nms_EntityList_classToIDMapping;
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3;
            if (!var$4.$id$)
                var$4.$id$ = $rt_nextId();
            var$7 = var$3.$id$;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$7 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    var$4 = var$2.$key;
                    if (var$3 !== var$4 && !(var$3 !== var$4 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$5 = (var$2 === null ? null : var$2.$value0).$value;
    }
    $this.$type5 = var$5 << 24 >> 24;
    $this.$xPosition11 = nms_EnumEntitySize_multiplyBy32AndRound($par1EntityLivingBase.$myEntitySize, $par1EntityLivingBase.$posX);
    $var2 = $par1EntityLivingBase.$posY * 32.0;
    var$9 = $var2 | 0;
    if ($var2 < var$9)
        var$9 = var$9 - 1 | 0;
    $this.$yPosition9 = var$9;
    $this.$zPosition10 = nms_EnumEntitySize_multiplyBy32AndRound($par1EntityLivingBase.$myEntitySize, $par1EntityLivingBase.$posZ);
    $this.$yaw2 = ($par1EntityLivingBase.$rotationYaw * 256.0 / 360.0 | 0) << 24 >> 24;
    $this.$pitch5 = ($par1EntityLivingBase.$rotationPitch * 256.0 / 360.0 | 0) << 24 >> 24;
    $this.$headYaw = ($par1EntityLivingBase.$rotationYawHead * 256.0 / 360.0 | 0) << 24 >> 24;
    $var2 = 3.9;
    $var4 = $par1EntityLivingBase.$motionX;
    $var6 = $par1EntityLivingBase.$motionY;
    $var8 = $par1EntityLivingBase.$motionZ;
    var$13 = (-3.9);
    if ($var4 < var$13)
        $var4 = var$13;
    if ($var6 < var$13)
        $var6 = var$13;
    if ($var8 >= var$13)
        var$13 = $var8;
    if ($var4 > $var2)
        $var4 = $var2;
    if ($var6 > $var2)
        $var6 = $var2;
    if (var$13 <= $var2)
        $var2 = var$13;
    $this.$velocityX = $var4 * 8000.0 | 0;
    $this.$velocityY = $var6 * 8000.0 | 0;
    $this.$velocityZ = $var2 * 8000.0 | 0;
    $this.$metaData = $par1EntityLivingBase.$dataWatcher;
},
nms_Packet24MobSpawn__init_1 = var_0 => {
    let var_1 = new nms_Packet24MobSpawn();
    nms_Packet24MobSpawn__init_0(var_1, var_0);
    return var_1;
},
nms_Packet24MobSpawn_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId8 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$type5 = var$2 << 24 >> 24 & 255;
    $this.$xPosition11 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition9 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition10 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yaw2 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$pitch5 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$headYaw = var$2 << 24 >> 24;
        $this.$velocityX = ji_DataInputStream_readShort($par1DataInput);
        $this.$velocityY = ji_DataInputStream_readShort($par1DataInput);
        $this.$velocityZ = ji_DataInputStream_readShort($par1DataInput);
        $this.$metadata3 = nms_DataWatcher_readWatchableObjects($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet24MobSpawn_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId8);
        var$2 = $this.$type5 & 255;
        $par1DataOutput.$out0.$write0(var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition11);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$yPosition9);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition10);
        var$2 = $this.$yaw2;
        $par1DataOutput.$out0.$write0(var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        var$2 = $this.$pitch5;
        $par1DataOutput.$out0.$write0(var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        var$2 = $this.$headYaw;
        $par1DataOutput.$out0.$write0(var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$velocityX);
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$velocityY);
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$velocityZ);
        var$3 = $this.$metaData.$watchedObjects;
        if (var$3.$cachedValues === null) {
            var$4 = new ju_HashMap$2;
            var$4.$this$01 = var$3;
            var$3.$cachedValues = var$4;
        }
        var$3 = var$3.$cachedValues.$iterator();
        if (!var$3.$hasNext()) {
            $par1DataOutput.$out0.$write0(127);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
            return;
        }
        var$4 = var$3.$next();
        $ptr = 1;
    case 1:
        nms_DataWatcher_writeWatchableObject($par1DataOutput, var$4);
        if ($rt_suspending()) {
            break main;
        }
        if (!var$3.$hasNext()) {
            $par1DataOutput.$out0.$write0(127);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
            return;
        }
        var$4 = var$3.$next();
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, var$2, var$3, var$4, $ptr);
},
nms_Packet24MobSpawn_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet24MobSpawn_getPacketSize = $this => {
    return 26;
};
function nms_Packet25EntityPainting() {
    let a = this; nms_Packet.call(a);
    a.$entityId13 = 0;
    a.$xPosition9 = 0;
    a.$yPosition8 = 0;
    a.$zPosition11 = 0;
    a.$direction = 0;
    a.$title0 = null;
}
let nms_Packet25EntityPainting__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet25EntityPainting__init_0 = () => {
    let var_0 = new nms_Packet25EntityPainting();
    nms_Packet25EntityPainting__init_(var_0);
    return var_0;
},
nms_Packet25EntityPainting_readPacketData = ($this, $par1DataInput) => {
    $this.$entityId13 = ji_DataInputStream_readInt($par1DataInput);
    $this.$title0 = nms_Packet_readString($par1DataInput, nms_EnumArt_maxArtTitleLength);
    $this.$xPosition9 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition8 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition11 = ji_DataInputStream_readInt($par1DataInput);
    $this.$direction = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet25EntityPainting_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId13);
    var$2 = $this.$title0;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition9);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$yPosition8);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition11);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$direction);
},
nms_Packet25EntityPainting_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet25EntityPainting_getPacketSize = $this => {
    return 24;
};
function nms_Packet26EntityExpOrb() {
    let a = this; nms_Packet.call(a);
    a.$entityId12 = 0;
    a.$posX8 = 0;
    a.$posY8 = 0;
    a.$posZ8 = 0;
    a.$xpValue0 = 0;
}
let nms_Packet26EntityExpOrb__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet26EntityExpOrb__init_0 = () => {
    let var_0 = new nms_Packet26EntityExpOrb();
    nms_Packet26EntityExpOrb__init_(var_0);
    return var_0;
},
nms_Packet26EntityExpOrb_readPacketData = ($this, $par1DataInput) => {
    $this.$entityId12 = ji_DataInputStream_readInt($par1DataInput);
    $this.$posX8 = ji_DataInputStream_readInt($par1DataInput);
    $this.$posY8 = ji_DataInputStream_readInt($par1DataInput);
    $this.$posZ8 = ji_DataInputStream_readInt($par1DataInput);
    $this.$xpValue0 = ji_DataInputStream_readShort($par1DataInput);
},
nms_Packet26EntityExpOrb_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId12);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posX8);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posY8);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posZ8);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$xpValue0);
},
nms_Packet26EntityExpOrb_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet26EntityExpOrb_getPacketSize = $this => {
    return 18;
};
function nms_Packet27PlayerInput() {
    let a = this; nms_Packet.call(a);
    a.$field_111017_a = 0.0;
    a.$field_111015_b = 0.0;
    a.$field_111016_c = 0;
    a.$field_111014_d = 0;
}
let nms_Packet27PlayerInput__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet27PlayerInput__init_0 = () => {
    let var_0 = new nms_Packet27PlayerInput();
    nms_Packet27PlayerInput__init_(var_0);
    return var_0;
},
nms_Packet27PlayerInput_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$field_111017_a = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$field_111015_b = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$field_111016_c = !var$2 ? 0 : 1;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$field_111014_d = !var$2 ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet27PlayerInput_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$func_110774_a($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet28EntityVelocity() {
    let a = this; nms_Packet.call(a);
    a.$entityId14 = 0;
    a.$motionX1 = 0;
    a.$motionY1 = 0;
    a.$motionZ1 = 0;
}
let nms_Packet28EntityVelocity__init_0 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet28EntityVelocity__init_2 = () => {
    let var_0 = new nms_Packet28EntityVelocity();
    nms_Packet28EntityVelocity__init_0(var_0);
    return var_0;
},
nms_Packet28EntityVelocity__init_1 = ($this, $par1, $par2, $par4, $par6) => {
    let $var8, var$6;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$entityId14 = $par1;
    $var8 = 3.9;
    var$6 = (-3.9);
    if ($par2 < var$6)
        $par2 = var$6;
    if ($par4 < var$6)
        $par4 = var$6;
    if ($par6 >= var$6)
        var$6 = $par6;
    if ($par2 > $var8)
        $par2 = $var8;
    if ($par4 > $var8)
        $par4 = $var8;
    if (var$6 <= $var8)
        $var8 = var$6;
    $this.$motionX1 = $par2 * 8000.0 | 0;
    $this.$motionY1 = $par4 * 8000.0 | 0;
    $this.$motionZ1 = $var8 * 8000.0 | 0;
},
nms_Packet28EntityVelocity__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_Packet28EntityVelocity();
    nms_Packet28EntityVelocity__init_1(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_Packet28EntityVelocity_readPacketData = ($this, $par1DataInput) => {
    $this.$entityId14 = ji_DataInputStream_readInt($par1DataInput);
    $this.$motionX1 = ji_DataInputStream_readShort($par1DataInput);
    $this.$motionY1 = ji_DataInputStream_readShort($par1DataInput);
    $this.$motionZ1 = ji_DataInputStream_readShort($par1DataInput);
},
nms_Packet28EntityVelocity_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId14);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$motionX1);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$motionY1);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$motionZ1);
},
nms_Packet28EntityVelocity_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet28EntityVelocity_getPacketSize = $this => {
    return 10;
};
function nms_Packet29DestroyEntity() {
    nms_Packet.call(this);
    this.$entityId3 = null;
}
let nms_Packet29DestroyEntity__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet29DestroyEntity__init_0 = () => {
    let var_0 = new nms_Packet29DestroyEntity();
    nms_Packet29DestroyEntity__init_(var_0);
    return var_0;
},
nms_Packet29DestroyEntity_readPacketData = ($this, $par1DataInput) => {
    let $var2, var$3;
    $var2 = $par1DataInput.$in.$read();
    if ($var2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$entityId3 = $rt_createIntArray($var2 << 24 >> 24);
    $var2 = 0;
    while (true) {
        var$3 = $this.$entityId3.data;
        if ($var2 >= var$3.length)
            break;
        var$3[$var2] = ji_DataInputStream_readInt($par1DataInput);
        $var2 = $var2 + 1 | 0;
    }
},
nms_Packet29DestroyEntity_writePacketData = ($this, $par1DataOutput) => {
    let $var2, var$3;
    $var2 = $this.$entityId3.data.length;
    $par1DataOutput.$out0.$write0($var2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    $var2 = 0;
    while (true) {
        var$3 = $this.$entityId3.data;
        if ($var2 >= var$3.length)
            break;
        ji_DataOutputStream_writeInt($par1DataOutput, var$3[$var2]);
        $var2 = $var2 + 1 | 0;
    }
},
nms_Packet29DestroyEntity_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet29DestroyEntity_getPacketSize = $this => {
    return 1 + ($this.$entityId3.data.length * 4 | 0) | 0;
};
function nms_Packet30Entity() {
    let a = this; nms_Packet.call(a);
    a.$entityId2 = 0;
    a.$xPosition3 = 0;
    a.$yPosition2 = 0;
    a.$zPosition3 = 0;
    a.$yaw0 = 0;
    a.$pitch0 = 0;
    a.$rotating0 = 0;
}
let nms_Packet30Entity__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet30Entity__init_0 = () => {
    let var_0 = new nms_Packet30Entity();
    nms_Packet30Entity__init_(var_0);
    return var_0;
},
nms_Packet30Entity_readPacketData = ($this, $par1DataInput) => {
    $this.$entityId2 = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet30Entity_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet31RelEntityMove = $rt_classWithoutFields(nms_Packet30Entity),
nms_Packet31RelEntityMove__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet31RelEntityMove__init_0 = () => {
    let var_0 = new nms_Packet31RelEntityMove();
    nms_Packet31RelEntityMove__init_(var_0);
    return var_0;
},
nms_Packet31RelEntityMove_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId2 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$xPosition3 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yPosition2 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$zPosition3 = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet31RelEntityMove_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId2);
    var$2 = $this.$xPosition3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$yPosition2;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$zPosition3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet31RelEntityMove_getPacketSize = $this => {
    return 7;
},
nms_Packet32EntityLook = $rt_classWithoutFields(nms_Packet30Entity),
nms_Packet32EntityLook__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$rotating0 = 1;
},
nms_Packet32EntityLook__init_0 = () => {
    let var_0 = new nms_Packet32EntityLook();
    nms_Packet32EntityLook__init_(var_0);
    return var_0;
},
nms_Packet32EntityLook_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId2 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yaw0 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$pitch0 = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet32EntityLook_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId2);
    var$2 = $this.$yaw0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$pitch0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet32EntityLook_getPacketSize = $this => {
    return 6;
},
nms_Packet33RelEntityMoveLook = $rt_classWithoutFields(nms_Packet30Entity),
nms_Packet33RelEntityMoveLook__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$rotating0 = 1;
},
nms_Packet33RelEntityMoveLook__init_0 = () => {
    let var_0 = new nms_Packet33RelEntityMoveLook();
    nms_Packet33RelEntityMoveLook__init_(var_0);
    return var_0;
},
nms_Packet33RelEntityMoveLook_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId2 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$xPosition3 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yPosition2 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$zPosition3 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yaw0 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$pitch0 = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet33RelEntityMoveLook_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId2);
    var$2 = $this.$xPosition3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$yPosition2;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$zPosition3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$yaw0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$pitch0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet33RelEntityMoveLook_getPacketSize = $this => {
    return 9;
};
function nms_Packet34EntityTeleport() {
    let a = this; nms_Packet.call(a);
    a.$entityId5 = 0;
    a.$xPosition8 = 0;
    a.$yPosition5 = 0;
    a.$zPosition6 = 0;
    a.$yaw1 = 0;
    a.$pitch2 = 0;
}
let nms_Packet34EntityTeleport__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet34EntityTeleport__init_0 = () => {
    let var_0 = new nms_Packet34EntityTeleport();
    nms_Packet34EntityTeleport__init_(var_0);
    return var_0;
},
nms_Packet34EntityTeleport_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId5 = ji_DataInputStream_readInt($par1DataInput);
    $this.$xPosition8 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition5 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition6 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yaw1 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$pitch2 = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet34EntityTeleport_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId5);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition8);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$yPosition5);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition6);
    var$2 = $this.$yaw1;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$pitch2;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet34EntityTeleport_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet34EntityTeleport_getPacketSize = $this => {
    return 34;
};
function nms_Packet35EntityHeadRotation() {
    let a = this; nms_Packet.call(a);
    a.$entityId7 = 0;
    a.$headRotationYaw = 0;
}
let nms_Packet35EntityHeadRotation__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet35EntityHeadRotation__init_0 = () => {
    let var_0 = new nms_Packet35EntityHeadRotation();
    nms_Packet35EntityHeadRotation__init_(var_0);
    return var_0;
},
nms_Packet35EntityHeadRotation_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId7 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$headRotationYaw = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet35EntityHeadRotation_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId7);
    var$2 = $this.$headRotationYaw;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet35EntityHeadRotation_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet35EntityHeadRotation_getPacketSize = $this => {
    return 5;
};
function nms_Packet38EntityStatus() {
    let a = this; nms_Packet.call(a);
    a.$entityId0 = 0;
    a.$entityStatus = 0;
}
let nms_Packet38EntityStatus__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet38EntityStatus__init_0 = () => {
    let var_0 = new nms_Packet38EntityStatus();
    nms_Packet38EntityStatus__init_(var_0);
    return var_0;
},
nms_Packet38EntityStatus_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId0 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$entityStatus = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet38EntityStatus_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId0);
    var$2 = $this.$entityStatus;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet38EntityStatus_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet38EntityStatus_getPacketSize = $this => {
    return 5;
};
function nms_Packet39AttachEntity() {
    let a = this; nms_Packet.call(a);
    a.$attachState = 0;
    a.$ridingEntityId = 0;
    a.$vehicleEntityId = 0;
}
let nms_Packet39AttachEntity__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet39AttachEntity__init_0 = () => {
    let var_0 = new nms_Packet39AttachEntity();
    nms_Packet39AttachEntity__init_(var_0);
    return var_0;
},
nms_Packet39AttachEntity_getPacketSize = $this => {
    return 8;
},
nms_Packet39AttachEntity_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$ridingEntityId = ji_DataInputStream_readInt($par1DataInput);
    $this.$vehicleEntityId = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$attachState = var$2 & 255;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet39AttachEntity_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$ridingEntityId);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$vehicleEntityId);
    var$2 = $this.$attachState;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet39AttachEntity_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet40EntityMetadata() {
    let a = this; nms_Packet.call(a);
    a.$entityId4 = 0;
    a.$metadata1 = null;
}
let nms_Packet40EntityMetadata__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet40EntityMetadata__init_0 = () => {
    let var_0 = new nms_Packet40EntityMetadata();
    nms_Packet40EntityMetadata__init_(var_0);
    return var_0;
},
nms_Packet40EntityMetadata_readPacketData = ($this, $par1DataInput) => {
    $this.$entityId4 = ji_DataInputStream_readInt($par1DataInput);
    $this.$metadata1 = nms_DataWatcher_readWatchableObjects($par1DataInput);
},
nms_Packet40EntityMetadata_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId4);
        var$2 = $this.$metadata1;
        nms_DataWatcher_$callClinit();
        if (var$2 !== null) {
            var$3 = var$2.$modCount;
            var$4 = var$2.$size();
            if (0 >= var$4 ? 0 : 1) {
                if (var$3 < var$2.$modCount) {
                    $par1DataOutput = new ju_ConcurrentModificationException;
                    $par1DataOutput.$suppressionEnabled = 1;
                    $par1DataOutput.$writableStackTrace = 1;
                    $rt_throw($par1DataOutput);
                }
                var$5 = 0 + 1 | 0;
                var$6 = var$2.$get(0);
                $ptr = 1;
                continue main;
            }
        }
        $par1DataOutput.$out0.$write0(127);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        return;
    case 1:
        nms_DataWatcher_writeWatchableObject($par1DataOutput, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = var$5;
        if (!(var$7 >= var$4 ? 0 : 1)) {
            $par1DataOutput.$out0.$write0(127);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
            return;
        }
        if (var$3 < var$2.$modCount) {
            $par1DataOutput = new ju_ConcurrentModificationException;
            $par1DataOutput.$suppressionEnabled = 1;
            $par1DataOutput.$writableStackTrace = 1;
            $rt_throw($par1DataOutput);
        }
        var$5 = var$7 + 1 | 0;
        var$6 = var$2.$get(var$7);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_Packet40EntityMetadata_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet40EntityMetadata_getPacketSize = $this => {
    return 5;
};
function nms_Packet41EntityEffect() {
    let a = this; nms_Packet.call(a);
    a.$entityId9 = 0;
    a.$effectId0 = 0;
    a.$effectAmplifier = 0;
    a.$duration0 = 0;
}
let nms_Packet41EntityEffect__init_1 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet41EntityEffect__init_2 = () => {
    let var_0 = new nms_Packet41EntityEffect();
    nms_Packet41EntityEffect__init_1(var_0);
    return var_0;
},
nms_Packet41EntityEffect__init_0 = ($this, $par1, $par2PotionEffect) => {
    let var$3;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$entityId9 = $par1;
    $this.$effectId0 = ($par2PotionEffect.$potionID & 255) << 24 >> 24;
    $this.$effectAmplifier = ($par2PotionEffect.$amplifier & 255) << 24 >> 24;
    var$3 = $par2PotionEffect.$duration;
    if (var$3 > 32767)
        $this.$duration0 = 32767;
    else
        $this.$duration0 = var$3 << 16 >> 16;
},
nms_Packet41EntityEffect__init_ = (var_0, var_1) => {
    let var_2 = new nms_Packet41EntityEffect();
    nms_Packet41EntityEffect__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_Packet41EntityEffect_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId9 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$effectId0 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$effectAmplifier = var$2 << 24 >> 24;
        $this.$duration0 = ji_DataInputStream_readShort($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet41EntityEffect_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId9);
    var$2 = $this.$effectId0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$effectAmplifier;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$duration0);
},
nms_Packet41EntityEffect_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet41EntityEffect_getPacketSize = $this => {
    return 8;
};
function nms_Packet42RemoveEntityEffect() {
    let a = this; nms_Packet.call(a);
    a.$entityId10 = 0;
    a.$effectId1 = 0;
}
let nms_Packet42RemoveEntityEffect__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet42RemoveEntityEffect__init_0 = () => {
    let var_0 = new nms_Packet42RemoveEntityEffect();
    nms_Packet42RemoveEntityEffect__init_(var_0);
    return var_0;
},
nms_Packet42RemoveEntityEffect_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId10 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$effectId1 = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet42RemoveEntityEffect_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId10);
    var$2 = $this.$effectId1;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet42RemoveEntityEffect_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet42RemoveEntityEffect_getPacketSize = $this => {
    return 5;
};
function nms_Packet43Experience() {
    let a = this; nms_Packet.call(a);
    a.$experience0 = 0.0;
    a.$experienceTotal0 = 0;
    a.$experienceLevel0 = 0;
}
let nms_Packet43Experience__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet43Experience__init_0 = () => {
    let var_0 = new nms_Packet43Experience();
    nms_Packet43Experience__init_(var_0);
    return var_0;
},
nms_Packet43Experience_readPacketData = ($this, $par1DataInput) => {
    $this.$experience0 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$experienceLevel0 = ji_DataInputStream_readShort($par1DataInput);
    $this.$experienceTotal0 = ji_DataInputStream_readShort($par1DataInput);
},
nms_Packet43Experience_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$experience0;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$2) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$2));
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$experienceLevel0);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$experienceTotal0);
},
nms_Packet43Experience_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet43Experience_getPacketSize = $this => {
    return 4;
};
function nms_Packet44UpdateAttributes() {
    let a = this; nms_Packet.call(a);
    a.$field_111005_a = 0;
    a.$field_111004_b = null;
}
let nms_Packet44UpdateAttributes__init_ = $this => {
    let var$1;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$field_111004_b = var$1;
},
nms_Packet44UpdateAttributes__init_0 = () => {
    let var_0 = new nms_Packet44UpdateAttributes();
    nms_Packet44UpdateAttributes__init_(var_0);
    return var_0;
},
nms_Packet44UpdateAttributes_readPacketData = ($this, $par1DataInput) => {
    let $var2, $var3, $var4, $var5, $var7, $var8, $var9, $var10, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18;
    $this.$field_111005_a = ji_DataInputStream_readInt($par1DataInput);
    $var2 = ji_DataInputStream_readInt($par1DataInput);
    $var3 = 0;
    while ($var3 < $var2) {
        $var4 = nms_Packet_readString($par1DataInput, 64);
        $var5 = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
        $var7 = new ju_ArrayList;
        $var7.$array = $rt_createArray(jl_Object, 10);
        $var8 = ji_DataInputStream_readShort($par1DataInput);
        $var9 = 0;
        while ($var9 < $var8) {
            $var10 = new nle_ProfileUUID;
            var$10 = ji_DataInputStream_readLong($par1DataInput);
            var$11 = ji_DataInputStream_readLong($par1DataInput);
            nle_ProfileUUID_$callClinit();
            $var10.$mostSigBits = var$10;
            $var10.$leastSigBits = var$11;
            var$12 = new nms_AttributeModifier;
            var$13 = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
            var$14 = $par1DataInput.$in.$read();
            if (var$14 < 0) {
                $par1DataInput = new ji_EOFException;
                $par1DataInput.$suppressionEnabled = 1;
                $par1DataInput.$writableStackTrace = 1;
                $rt_throw($par1DataInput);
            }
            var$15 = var$14 << 24 >> 24;
            var$12.$isSaved = 1;
            var$12.$id1 = $var10;
            var$12.$name3 = $rt_s(2109);
            var$12.$amount0 = var$13;
            var$12.$operation = var$15;
            if ($rt_s(2109) === $rt_s(3))
                var$14 = 1;
            else if (!($rt_s(3) instanceof jl_String))
                var$14 = 0;
            else {
                var$16 = $rt_s(3);
                var$14 = $rt_s(2109).$nativeString !== var$16.$nativeString ? 0 : 1;
            }
            if (var$14) {
                var$16 = new jl_IllegalArgumentException;
                var$16.$suppressionEnabled = 1;
                var$16.$writableStackTrace = 1;
                var$16.$message = $rt_s(1279);
                $rt_throw(var$16);
            }
            if (var$15 < 0 && var$15 > 2) {
                var$16 = new jl_IllegalArgumentException;
                var$16.$suppressionEnabled = 1;
                var$16.$writableStackTrace = 1;
                var$16.$message = $rt_s(1280);
                $rt_throw(var$16);
            }
            ju_ArrayList_ensureCapacity($var7, $var7.$size0 + 1 | 0);
            var$17 = $var7.$array.data;
            var$14 = $var7.$size0;
            $var7.$size0 = var$14 + 1 | 0;
            var$17[var$14] = var$12;
            $var7.$modCount = $var7.$modCount + 1 | 0;
            $var9 = $var9 + 1 | 0;
        }
        var$16 = $this.$field_111004_b;
        $var10 = new nms_Packet44UpdateAttributesSnapshot;
        $var10.$field_142045_a = $this;
        $var10.$field_142043_b = $var4;
        $var10.$field_142044_c = $var5;
        $var10.$field_142042_d = $var7;
        ju_ArrayList_ensureCapacity(var$16, var$16.$size0 + 1 | 0);
        var$17 = var$16.$array.data;
        var$18 = var$16.$size0;
        var$16.$size0 = var$18 + 1 | 0;
        var$17[var$18] = $var10;
        var$16.$modCount = var$16.$modCount + 1 | 0;
        $var3 = $var3 + 1 | 0;
    }
},
nms_Packet44UpdateAttributes_writePacketData = ($this, $par1DataOutput) => {
    let var$2, $var2$index, var$4, var$5, $var2$index_0, $var3, $var4, var$9, $var5, var$11;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$field_111005_a);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$field_111004_b.$size0);
    var$2 = $this.$field_111004_b;
    $var2$index = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    while ($var2$index >= var$5 ? 0 : 1) {
        if (var$4 < var$2.$modCount) {
            $par1DataOutput = new ju_ConcurrentModificationException;
            $par1DataOutput.$suppressionEnabled = 1;
            $par1DataOutput.$writableStackTrace = 1;
            $rt_throw($par1DataOutput);
        }
        $var2$index_0 = $var2$index + 1 | 0;
        $var3 = var$2.$get($var2$index);
        $var4 = $var3.$field_142043_b;
        nms_Packet_$callClinit();
        if ($var4.$nativeString.length > 32767) {
            var$2 = new ji_IOException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(2108);
            $rt_throw(var$2);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, $var4.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, $var4);
        var$9 = $var3.$field_142044_c;
        ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$9) ? 1 : 0) ? $rt_doubleToRawLongBits(var$9) : Long_create(0, 2146959360));
        ji_DataOutputStream_writeShort($par1DataOutput, $var3.$field_142042_d.$size());
        $var4 = $var3.$field_142042_d.$iterator();
        while ($var4.$hasNext()) {
            $var5 = $var4.$next();
            ji_DataOutputStream_writeLong($par1DataOutput, $var5.$id1.$mostSigBits);
            ji_DataOutputStream_writeLong($par1DataOutput, $var5.$id1.$leastSigBits);
            var$9 = $var5.$amount0;
            ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$9) ? 1 : 0) ? $rt_doubleToRawLongBits(var$9) : Long_create(0, 2146959360));
            var$11 = $var5.$operation;
            $par1DataOutput.$out0.$write0(var$11);
            $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        }
        $var2$index = $var2$index_0;
    }
},
nms_Packet44UpdateAttributes_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet44UpdateAttributes_getPacketSize = $this => {
    return 8 + ($this.$field_111004_b.$size0 * 24 | 0) | 0;
};
function nms_Packet51MapChunk() {
    let a = this; nms_Packet.call(a);
    a.$xCh = 0;
    a.$zCh = 0;
    a.$yChMin = 0;
    a.$yChMax = 0;
    a.$chunkData = null;
    a.$compressedChunkData = null;
    a.$includeInitialize = 0;
    a.$tempLength = 0;
}
let nms_Packet51MapChunk_temp = null,
nms_Packet51MapChunk__init_0 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
},
nms_Packet51MapChunk__init_2 = () => {
    let var_0 = new nms_Packet51MapChunk();
    nms_Packet51MapChunk__init_0(var_0);
    return var_0;
},
nms_Packet51MapChunk__init_ = ($this, $par1Chunk, $par2, $par3) => {
    let $var4, $var5, var$6, var$7, $$je;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
    $this.$xCh = $par1Chunk.$xPosition0;
    $this.$zCh = $par1Chunk.$zPosition0;
    $this.$includeInitialize = $par2;
    $var4 = nms_Packet51MapChunk_getMapChunkData($par1Chunk, $par2, $par3);
    $var5 = juz_Deflater__init_((-1), 0);
    $this.$yChMax = $var4.$chunkHasAddSectionFlag;
    $this.$yChMin = $var4.$chunkExistFlag;
    a: {
        try {
            var$6 = $var4.$compressedData;
            var$7 = var$6.data;
            $this.$compressedChunkData = var$6;
            juz_Deflater_setInput($var5, var$6, 0, var$7.length);
            juz_Deflater_finish($var5);
            var$6 = $rt_createByteArray($var4.$compressedData.data.length);
            $this.$chunkData = var$6;
            $this.$tempLength = juz_Deflater_deflate0($var5, var$6);
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            $par1Chunk = $$je;
            break a;

        }
        $var5.$impl1 = null;
        return;
    }
    $var5.$impl1 = null;
    $rt_throw($par1Chunk);
},
nms_Packet51MapChunk__init_1 = (var_0, var_1, var_2) => {
    let var_3 = new nms_Packet51MapChunk();
    nms_Packet51MapChunk__init_(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_Packet51MapChunk_readPacketData = ($this, $par1DataInput) => {
    let $var2, $var3, $var4, $$je;
    $this.$xCh = ji_DataInputStream_readInt($par1DataInput);
    $this.$zCh = ji_DataInputStream_readInt($par1DataInput);
    $var2 = $par1DataInput.$in.$read();
    if ($var2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$includeInitialize = !$var2 ? 0 : 1;
    $this.$yChMin = ji_DataInputStream_readShort($par1DataInput);
    $this.$yChMax = ji_DataInputStream_readShort($par1DataInput);
    $var3 = ji_DataInputStream_readInt($par1DataInput);
    $this.$tempLength = $var3;
    if (nms_Packet51MapChunk_temp.data.length < $var3)
        nms_Packet51MapChunk_temp = $rt_createByteArray($var3);
    ji_DataInputStream_readFully($par1DataInput, nms_Packet51MapChunk_temp, 0, $var3);
    $var2 = 0;
    $var3 = 0;
    while ($var3 < 16) {
        $var2 = $var2 + ($this.$yChMin >> $var3 & 1) | 0;
        $var3 = $var3 + 1 | 0;
    }
    $var2 = 12288 * $var2 | 0;
    if ($this.$includeInitialize)
        $var2 = $var2 + 256 | 0;
    $this.$compressedChunkData = $rt_createByteArray($var2);
    $var4 = new juz_Inflater;
    $var4.$nowrap = 0;
    a: {
        try {
            $var4.$impl = cjj_Inflater__init_(0);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof cjj_GZIPException) {
            } else {
                throw $$e;
            }
        }
    }
    juz_Inflater_setInput($var4, nms_Packet51MapChunk_temp, 0, $this.$tempLength);
    b: {
        c: {
            try {
                juz_Inflater_inflate0($var4, $this.$compressedChunkData);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof juz_DataFormatException) {
                    break c;
                } else{
                    $par1DataInput = $$je;
                    break b;
                }
            }
            $var4.$inRead = 0;
            $var4.$inLength = 0;
            $var4.$impl = null;
            return;
        }
        try {
            $rt_throw(ji_IOException__init_($rt_s(2110)));
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            $par1DataInput = $$je;

        }
    }
    $var4.$inRead = 0;
    $var4.$inLength = 0;
    $var4.$impl = null;
    $rt_throw($par1DataInput);
},
nms_Packet51MapChunk_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xCh);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zCh);
    var$2 = $this.$includeInitialize;
    $par1DataOutput.$out0.$write0(!var$2 ? 0 : 1);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, ($this.$yChMin & 65535) << 16 >> 16);
    ji_DataOutputStream_writeShort($par1DataOutput, ($this.$yChMax & 65535) << 16 >> 16);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$tempLength);
    var$3 = $this.$chunkData;
    var$4 = $this.$tempLength;
    if (var$3 !== null) {
        $par1DataOutput.$out0.$write1(var$3, 0, var$4);
        $par1DataOutput.$written = $par1DataOutput.$written + var$4 | 0;
        return;
    }
    $par1DataOutput = new jl_NullPointerException;
    $par1DataOutput.$suppressionEnabled = 1;
    $par1DataOutput.$writableStackTrace = 1;
    $rt_throw($par1DataOutput);
},
nms_Packet51MapChunk_processPacket = ($this, $par1NetHandler) => {
    return;
},
nms_Packet51MapChunk_getPacketSize = $this => {
    return 17 + $this.$tempLength | 0;
},
nms_Packet51MapChunk_getMapChunkData = ($par0Chunk, $par1, $par2) => {
    let $var3, $var4, $var5, $var6, $var7, $var8, var$10, var$11, $var9, var$13, $var10, var$15, $var11;
    $var3 = 0;
    $var4 = $par0Chunk.$storageArrays;
    $var5 = 0;
    $var6 = new nms_Packet51MapChunkData;
    $var7 = nms_Packet51MapChunk_temp;
    if ($par1)
        $par0Chunk.$sendUpdates = 1;
    $var8 = 0;
    while (true) {
        var$10 = $var4.data;
        var$11 = var$10.length;
        if ($var8 >= var$11)
            break;
        if (var$10[$var8] !== null && !($par1 && (var$10[$var8].$blockRefCount ? 0 : 1))) {
            var$11 = 1 << $var8;
            if ($par2 & var$11) {
                $var6.$chunkExistFlag = $var6.$chunkExistFlag | var$11;
                if (var$10[$var8].$blockMSBArray !== null) {
                    $var6.$chunkHasAddSectionFlag = $var6.$chunkHasAddSectionFlag | var$11;
                    $var5 = $var5 + 1 | 0;
                }
            }
        }
        $var8 = $var8 + 1 | 0;
    }
    $var8 = 0;
    while ($var8 < var$11) {
        if (var$10[$var8] !== null && !($par1 && (var$10[$var8].$blockRefCount ? 0 : 1)) && $par2 & 1 << $var8) {
            $var9 = var$10[$var8].$blockLSBArray;
            var$13 = $var9.data.length;
            jl_System_fastArraycopy($var9, 0, $var7, $var3, var$13);
            $var3 = $var3 + var$13 | 0;
        }
        $var8 = $var8 + 1 | 0;
    }
    $var8 = 0;
    while ($var8 < var$11) {
        if (var$10[$var8] !== null && !($par1 && (var$10[$var8].$blockRefCount ? 0 : 1)) && $par2 & 1 << $var8) {
            $var10 = var$10[$var8].$blockMetadataArray;
            $var4 = $var10.$data8;
            jl_System_fastArraycopy($var4, 0, $var7, $var3, $var4.data.length);
            $var3 = $var3 + $var10.$data8.data.length | 0;
        }
        $var8 = $var8 + 1 | 0;
    }
    $var8 = 0;
    while ($var8 < var$11) {
        if (var$10[$var8] !== null && !($par1 && (var$10[$var8].$blockRefCount ? 0 : 1)) && $par2 & 1 << $var8) {
            $var10 = var$10[$var8].$blocklightArray;
            $var4 = $var10.$data8;
            jl_System_fastArraycopy($var4, 0, $var7, $var3, $var4.data.length);
            $var3 = $var3 + $var10.$data8.data.length | 0;
        }
        $var8 = $var8 + 1 | 0;
    }
    if (!$par0Chunk.$worldObj1.$provider.$hasNoSky) {
        var$15 = 0;
        while (var$15 < var$11) {
            if (var$10[var$15] !== null && !($par1 && (var$10[var$15].$blockRefCount ? 0 : 1)) && $par2 & 1 << var$15) {
                $var10 = var$10[var$15].$skylightArray;
                $var4 = $var10.$data8;
                jl_System_fastArraycopy($var4, 0, $var7, $var3, $var4.data.length);
                $var3 = $var3 + $var10.$data8.data.length | 0;
            }
            var$15 = var$15 + 1 | 0;
        }
    }
    if ($var5 > 0) {
        $var5 = 0;
        while ($var5 < var$11) {
            if (var$10[$var5] !== null && !($par1 && (var$10[$var5].$blockRefCount ? 0 : 1)) && var$10[$var5].$blockMSBArray !== null && $par2 & 1 << $var5) {
                $var10 = var$10[$var5].$blockMSBArray;
                $var4 = $var10.$data8;
                jl_System_fastArraycopy($var4, 0, $var7, $var3, $var4.data.length);
                $var3 = $var3 + $var10.$data8.data.length | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
    }
    if ($par1) {
        $var11 = $par0Chunk.$blockBiomeArray;
        $par2 = $var11.data.length;
        jl_System_fastArraycopy($var11, 0, $var7, $var3, $par2);
        $var3 = $var3 + $par2 | 0;
    }
    $var4 = $rt_createByteArray($var3);
    $var6.$compressedData = $var4;
    jl_System_fastArraycopy($var7, 0, $var4, 0, $var3);
    return $var6;
},
nms_Packet51MapChunk__clinit_ = () => {
    nms_Packet51MapChunk_temp = $rt_createByteArray(196864);
};
function nms_Packet52MultiBlockChange() {
    let a = this; nms_Packet.call(a);
    a.$xPosition10 = 0;
    a.$zPosition9 = 0;
    a.$metadataArray = null;
    a.$size8 = 0;
}
let nms_Packet52MultiBlockChange_field_73449_e = null,
nms_Packet52MultiBlockChange__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
},
nms_Packet52MultiBlockChange__init_1 = () => {
    let var_0 = new nms_Packet52MultiBlockChange();
    nms_Packet52MultiBlockChange__init_(var_0);
    return var_0;
},
nms_Packet52MultiBlockChange__init_0 = ($this, $par1, $par2, $par3ArrayOfShort, $par4, $par5World) => {
    let $var6, $var8, var$8, $var11, $var13, var$11, $var9, $var10, $var12, $var14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$par5World = $thread.pop();$par4 = $thread.pop();$par3ArrayOfShort = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $this.$isChunkDataPacket = 1;
        $this.$xPosition10 = $par1;
        $this.$zPosition9 = $par2;
        $this.$size8 = $par4;
        $var6 = 4 * $par4 | 0;
        $var8 = $par5World.$chunkProvider;
        $par5World = $var8.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
        $var11 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        $var11 = $var11 ^ ($var11 >>> 20 | 0) ^ ($var11 >>> 12 | 0);
        $var13 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
        var$11 = $par5World.$hashArray.data;
        $par5World = var$11[$var13 & (var$11.length - 1 | 0)];
        a: {
            while ($par5World !== null) {
                if (Long_eq($par5World.$key1, var$8)) {
                    $par5World = $par5World.$value4;
                    break a;
                }
                $par5World = $par5World.$nextEntry;
            }
            $par5World = null;
        }
        b: {
            $par5World = $par5World;
            if ($par5World === null) {
                if ($var8.$worldObj0.$findingSpawnPoint)
                    break b;
                if ($var8.$loadChunkOnProvideRequest)
                    break b;
                $par5World = $var8.$defaultEmptyChunk;
            }
            c: {
                try {
                    if ($par4 >= 64) {
                        $par5World = $this.$field_98193_m;
                        $var8 = jl_StringBuilder__init_();
                        jl_StringBuilder_append0(jl_StringBuilder_append($var8, $rt_s(2111)), $par4);
                        $par5World.$logInfo(jl_StringBuilder_toString($var8));
                        if (nms_Packet52MultiBlockChange_field_73449_e.data.length < $var6)
                            nms_Packet52MultiBlockChange_field_73449_e = $rt_createByteArray($var6);
                    } else {
                        $var8 = ji_ByteArrayOutputStream__init_0($var6);
                        $var9 = ji_DataOutputStream__init_($var8);
                        $var10 = 0;
                        while ($var10 < $par4) {
                            var$11 = $par3ArrayOfShort.data;
                            $var11 = var$11[$var10] >> 12 & 15;
                            $var12 = var$11[$var10] >> 8 & 15;
                            $var13 = var$11[$var10] & 255;
                            ji_DataOutputStream_writeShort($var9, var$11[$var10]);
                            ji_DataOutputStream_writeShort($var9, (($par5World.$getBlockID($var11, $var13, $var12) & 4095) << 4 | $par5World.$getBlockMetadata($var11, $var13, $var12) & 15) << 16 >> 16);
                            $var10 = $var10 + 1 | 0;
                        }
                        $par3ArrayOfShort = ji_ByteArrayOutputStream_toByteArray($var8);
                        var$11 = $par3ArrayOfShort.data;
                        $this.$metadataArray = $par3ArrayOfShort;
                        $par1 = var$11.length;
                        if ($par1 != $var6) {
                            $par5World = new jl_RuntimeException;
                            $var8 = jl_StringBuilder__init_();
                            jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($var8, $rt_s(2112)), $var6), $rt_s(2113)), $par1);
                            jl_RuntimeException__init_0($par5World, jl_StringBuilder_toString($var8));
                            $rt_throw($par5World);
                        }
                    }
                    break c;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $var14 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $this.$field_98193_m.$logSevereException($rt_s(2114), $var14);
                $this.$metadataArray = null;
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var8, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par5World = $tmp;
        a: {
            try {
                if ($par4 >= 64) {
                    $par5World = $this.$field_98193_m;
                    $var8 = jl_StringBuilder__init_();
                    jl_StringBuilder_append0(jl_StringBuilder_append($var8, $rt_s(2111)), $par4);
                    $par5World.$logInfo(jl_StringBuilder_toString($var8));
                    if (nms_Packet52MultiBlockChange_field_73449_e.data.length < $var6)
                        nms_Packet52MultiBlockChange_field_73449_e = $rt_createByteArray($var6);
                } else {
                    $var8 = ji_ByteArrayOutputStream__init_0($var6);
                    $var9 = ji_DataOutputStream__init_($var8);
                    $var10 = 0;
                    while ($var10 < $par4) {
                        var$11 = $par3ArrayOfShort.data;
                        $var11 = var$11[$var10] >> 12 & 15;
                        $var12 = var$11[$var10] >> 8 & 15;
                        $var13 = var$11[$var10] & 255;
                        ji_DataOutputStream_writeShort($var9, var$11[$var10]);
                        ji_DataOutputStream_writeShort($var9, (($par5World.$getBlockID($var11, $var13, $var12) & 4095) << 4 | $par5World.$getBlockMetadata($var11, $var13, $var12) & 15) << 16 >> 16);
                        $var10 = $var10 + 1 | 0;
                    }
                    $par3ArrayOfShort = ji_ByteArrayOutputStream_toByteArray($var8);
                    var$11 = $par3ArrayOfShort.data;
                    $this.$metadataArray = $par3ArrayOfShort;
                    $par1 = var$11.length;
                    if ($par1 != $var6) {
                        $par5World = new jl_RuntimeException;
                        $var8 = jl_StringBuilder__init_();
                        jl_StringBuilder_append0(jl_StringBuilder_append(jl_StringBuilder_append0(jl_StringBuilder_append($var8, $rt_s(2112)), $var6), $rt_s(2113)), $par1);
                        jl_RuntimeException__init_0($par5World, jl_StringBuilder_toString($var8));
                        $rt_throw($par5World);
                    }
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                    $var14 = $$je;
                } else {
                    throw $$e;
                }
            }
            $this.$field_98193_m.$logSevereException($rt_s(2114), $var14);
            $this.$metadataArray = null;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3ArrayOfShort, $par4, $par5World, $var6, $var8, var$8, $var11, $var13, var$11, $var9, $var10, $var12, $var14, $ptr);
},
nms_Packet52MultiBlockChange__init_2 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_Packet52MultiBlockChange();
    nms_Packet52MultiBlockChange__init_0(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_Packet52MultiBlockChange_readPacketData = ($this, $par1DataInput) => {
    let $var2, var$3, var$4;
    $this.$xPosition10 = ji_DataInputStream_readInt($par1DataInput);
    $this.$zPosition9 = ji_DataInputStream_readInt($par1DataInput);
    $this.$size8 = ji_DataInputStream_readShort($par1DataInput) & 65535;
    $var2 = ji_DataInputStream_readInt($par1DataInput);
    if ($var2 > 0) {
        var$3 = $rt_createByteArray($var2);
        var$4 = var$3.data;
        $this.$metadataArray = var$3;
        ji_DataInputStream_readFully($par1DataInput, var$3, 0, var$4.length);
    }
},
nms_Packet52MultiBlockChange_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition10);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition9);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$size8 << 16 >> 16);
    var$2 = $this.$metadataArray;
    if (var$2 === null)
        ji_DataOutputStream_writeInt($par1DataOutput, 0);
    else {
        ji_DataOutputStream_writeInt($par1DataOutput, var$2.data.length);
        var$2 = $this.$metadataArray;
        var$3 = var$2.data.length;
        $par1DataOutput.$out0.$write1(var$2, 0, var$3);
        $par1DataOutput.$written = $par1DataOutput.$written + var$3 | 0;
    }
},
nms_Packet52MultiBlockChange_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet52MultiBlockChange_getPacketSize = $this => {
    return 10 + ($this.$size8 * 4 | 0) | 0;
},
nms_Packet52MultiBlockChange__clinit_ = () => {
    nms_Packet52MultiBlockChange_field_73449_e = $rt_createByteArray(0);
};
function nms_Packet53BlockChange() {
    let a = this; nms_Packet.call(a);
    a.$xPosition2 = 0;
    a.$yPosition1 = 0;
    a.$zPosition2 = 0;
    a.$type2 = 0;
    a.$metadata0 = 0;
}
let nms_Packet53BlockChange__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
},
nms_Packet53BlockChange__init_0 = () => {
    let var_0 = new nms_Packet53BlockChange();
    nms_Packet53BlockChange__init_(var_0);
    return var_0;
},
nms_Packet53BlockChange_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$xPosition2 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$yPosition1 = var$2 & 255;
    $this.$zPosition2 = ji_DataInputStream_readInt($par1DataInput);
    $this.$type2 = ji_DataInputStream_readShort($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$metadata0 = var$2 & 255;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet53BlockChange_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition2);
    var$2 = $this.$yPosition1;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition2);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$type2);
    var$2 = $this.$metadata0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet53BlockChange_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet53BlockChange_getPacketSize = $this => {
    return 11;
};
function nms_Packet54PlayNoteBlock() {
    let a = this; nms_Packet.call(a);
    a.$xLocation = 0;
    a.$yLocation = 0;
    a.$zLocation = 0;
    a.$instrumentType = 0;
    a.$pitch3 = 0;
    a.$blockId = 0;
}
let nms_Packet54PlayNoteBlock__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet54PlayNoteBlock__init_0 = () => {
    let var_0 = new nms_Packet54PlayNoteBlock();
    nms_Packet54PlayNoteBlock__init_(var_0);
    return var_0;
},
nms_Packet54PlayNoteBlock_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$xLocation = ji_DataInputStream_readInt($par1DataInput);
    $this.$yLocation = ji_DataInputStream_readShort($par1DataInput);
    $this.$zLocation = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$instrumentType = var$2 & 255;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$pitch3 = var$2 & 255;
        $this.$blockId = ji_DataInputStream_readShort($par1DataInput) & 4095;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet54PlayNoteBlock_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xLocation);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$yLocation);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zLocation);
    var$2 = $this.$instrumentType;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$pitch3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$blockId & 4095);
},
nms_Packet54PlayNoteBlock_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet54PlayNoteBlock_getPacketSize = $this => {
    return 14;
};
function nms_Packet55BlockDestroy() {
    let a = this; nms_Packet.call(a);
    a.$entityId6 = 0;
    a.$posX7 = 0;
    a.$posY7 = 0;
    a.$posZ7 = 0;
    a.$destroyedStage = 0;
}
let nms_Packet55BlockDestroy__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet55BlockDestroy__init_0 = () => {
    let var_0 = new nms_Packet55BlockDestroy();
    nms_Packet55BlockDestroy__init_(var_0);
    return var_0;
},
nms_Packet55BlockDestroy_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityId6 = ji_DataInputStream_readInt($par1DataInput);
    $this.$posX7 = ji_DataInputStream_readInt($par1DataInput);
    $this.$posY7 = ji_DataInputStream_readInt($par1DataInput);
    $this.$posZ7 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$destroyedStage = var$2 & 255;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet55BlockDestroy_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityId6);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posX7);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posY7);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posZ7);
    var$2 = $this.$destroyedStage;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet55BlockDestroy_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet55BlockDestroy_getPacketSize = $this => {
    return 13;
};
function nms_Packet56MapChunks() {
    let a = this; nms_Packet.call(a);
    a.$chunkPostX = null;
    a.$chunkPosZ = null;
    a.$field_73590_a = null;
    a.$field_73588_b = null;
    a.$chunkDataBuffer = null;
    a.$field_73584_f = null;
    a.$dataLength = 0;
    a.$skyLightSent = 0;
}
let nms_Packet56MapChunks_chunkDataNotCompressed = null,
nms_Packet56MapChunks__init_0 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet56MapChunks__init_2 = () => {
    let var_0 = new nms_Packet56MapChunks();
    nms_Packet56MapChunks__init_0(var_0);
    return var_0;
},
nms_Packet56MapChunks__init_1 = ($this, $par1List) => {
    let $var2, $var3, $var4, $var11, $var7, $var5, $var6, var$9, var$10, var$11, $$je;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $var2 = $par1List.$size0;
    $this.$chunkPostX = $rt_createIntArray($var2);
    $this.$chunkPosZ = $rt_createIntArray($var2);
    $this.$field_73590_a = $rt_createIntArray($var2);
    $this.$field_73588_b = $rt_createIntArray($var2);
    $this.$field_73584_f = $rt_createArray($rt_arraycls($rt_bytecls), $var2);
    $var3 = $var2 ? 0 : 1;
    a: {
        if (!$var3) {
            if (0 >= $var2) {
                $par1List = new jl_IndexOutOfBoundsException;
                $par1List.$suppressionEnabled = 1;
                $par1List.$writableStackTrace = 1;
                $rt_throw($par1List);
            }
            if (!$par1List.$array.data[0].$worldObj1.$provider.$hasNoSky) {
                $var3 = 1;
                break a;
            }
        }
        $var3 = 0;
    }
    $this.$skyLightSent = $var3;
    $var3 = 0;
    $var4 = 0;
    while (true) {
        if ($var4 >= $var2) {
            $var11 = juz_Deflater__init_((-1), 0);
            b: {
                try {
                    juz_Deflater_setInput($var11, nms_Packet56MapChunks_chunkDataNotCompressed, 0, $var3);
                    juz_Deflater_finish($var11);
                    $var7 = $rt_createByteArray($var3);
                    $this.$chunkDataBuffer = $var7;
                    $this.$dataLength = juz_Deflater_deflate0($var11, $var7);
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1List = $$je;
                    break b;

                }
                $var11.$impl1 = null;
                return;
            }
            $var11.$impl1 = null;
            $rt_throw($par1List);
        }
        if ($var4 < 0)
            break;
        if ($var4 >= $par1List.$size0)
            break;
        $var5 = $par1List.$array.data[$var4];
        $var6 = nms_Packet51MapChunk_getMapChunkData($var5, 1, 65535);
        var$9 = nms_Packet56MapChunks_chunkDataNotCompressed;
        var$10 = var$9.data.length;
        var$11 = $var3 + $var6.$compressedData.data.length | 0;
        if (var$10 < var$11) {
            $var7 = $rt_createByteArray(var$11);
            jl_System_fastArraycopy(var$9, 0, $var7, 0, var$10);
            nms_Packet56MapChunks_chunkDataNotCompressed = $var7;
        }
        var$9 = $var6.$compressedData;
        $var7 = var$9.data;
        jl_System_fastArraycopy(var$9, 0, nms_Packet56MapChunks_chunkDataNotCompressed, $var3, $var7.length);
        var$9 = $var6.$compressedData;
        $var3 = $var3 + var$9.data.length | 0;
        $this.$chunkPostX.data[$var4] = $var5.$xPosition0;
        $this.$chunkPosZ.data[$var4] = $var5.$zPosition0;
        $this.$field_73590_a.data[$var4] = $var6.$chunkExistFlag;
        $this.$field_73588_b.data[$var4] = $var6.$chunkHasAddSectionFlag;
        $this.$field_73584_f.data[$var4] = var$9;
        $var4 = $var4 + 1 | 0;
    }
    $par1List = new jl_IndexOutOfBoundsException;
    $par1List.$suppressionEnabled = 1;
    $par1List.$writableStackTrace = 1;
    $rt_throw($par1List);
},
nms_Packet56MapChunks__init_ = var_0 => {
    let var_1 = new nms_Packet56MapChunks();
    nms_Packet56MapChunks__init_1(var_1, var_0);
    return var_1;
},
nms_Packet56MapChunks_readPacketData = ($this, $par1DataInput) => {
    let $var2, $var7, $var8, $var3, $var4, $var5, $var6, $var9, var$10, $$je;
    $var2 = ji_DataInputStream_readShort($par1DataInput);
    $this.$dataLength = ji_DataInputStream_readInt($par1DataInput);
    $var7 = $par1DataInput.$in.$read();
    if ($var7 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$skyLightSent = !$var7 ? 0 : 1;
    $this.$chunkPostX = $rt_createIntArray($var2);
    $this.$chunkPosZ = $rt_createIntArray($var2);
    $this.$field_73590_a = $rt_createIntArray($var2);
    $this.$field_73588_b = $rt_createIntArray($var2);
    $this.$field_73584_f = $rt_createArray($rt_arraycls($rt_bytecls), $var2);
    $var7 = nms_Packet56MapChunks_chunkDataNotCompressed.data.length;
    $var8 = $this.$dataLength;
    if ($var7 < $var8)
        nms_Packet56MapChunks_chunkDataNotCompressed = $rt_createByteArray($var8);
    ji_DataInputStream_readFully($par1DataInput, nms_Packet56MapChunks_chunkDataNotCompressed, 0, $var8);
    $var3 = $rt_createByteArray(196864 * $var2 | 0);
    $var4 = new juz_Inflater;
    $var4.$nowrap = 0;
    a: {
        try {
            $var4.$impl = cjj_Inflater__init_(0);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof cjj_GZIPException) {
            } else {
                throw $$e;
            }
        }
    }
    juz_Inflater_setInput($var4, nms_Packet56MapChunks_chunkDataNotCompressed, 0, $this.$dataLength);
    b: {
        try {
            try {
                juz_Inflater_inflate0($var4, $var3);
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof juz_DataFormatException) {
                } else {
                    throw $$e;
                }
            }
            $rt_throw(ji_IOException__init_($rt_s(2110)));
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            $par1DataInput = $$je;

        }
        $var4.$inRead = 0;
        $var4.$inLength = 0;
        $var4.$impl = null;
        $rt_throw($par1DataInput);
    }
    $var4.$inRead = 0;
    $var4.$inLength = 0;
    $var4.$impl = null;
    $var5 = 0;
    $var6 = 0;
    while ($var6 < $var2) {
        $this.$chunkPostX.data[$var6] = ji_DataInputStream_readInt($par1DataInput);
        $this.$chunkPosZ.data[$var6] = ji_DataInputStream_readInt($par1DataInput);
        $this.$field_73590_a.data[$var6] = ji_DataInputStream_readShort($par1DataInput);
        $this.$field_73588_b.data[$var6] = ji_DataInputStream_readShort($par1DataInput);
        $var7 = 0;
        $var8 = 0;
        $var9 = 0;
        while ($var9 < 16) {
            $var7 = $var7 + ($this.$field_73590_a.data[$var6] >> $var9 & 1) | 0;
            $var8 = $var8 + ($this.$field_73588_b.data[$var6] >> $var9 & 1) | 0;
            $var9 = $var9 + 1 | 0;
        }
        $var8 = ((8192 * $var7 | 0) + 256 | 0) + (2048 * $var8 | 0) | 0;
        if ($this.$skyLightSent)
            $var8 = $var8 + (2048 * $var7 | 0) | 0;
        var$10 = $this.$field_73584_f.data;
        var$10[$var6] = $rt_createByteArray($var8);
        jl_System_fastArraycopy($var3, $var5, var$10[$var6], 0, $var8);
        $var5 = $var5 + $var8 | 0;
        $var6 = $var6 + 1 | 0;
    }
},
nms_Packet56MapChunks_writePacketData = ($this, $par1DataOutput) => {
    let $var2, var$3, var$4;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$chunkPostX.data.length);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$dataLength);
    $var2 = $this.$skyLightSent;
    $par1DataOutput.$out0.$write0(!$var2 ? 0 : 1);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$3 = $this.$chunkDataBuffer;
    var$4 = $this.$dataLength;
    if (var$3 === null) {
        $par1DataOutput = new jl_NullPointerException;
        $par1DataOutput.$suppressionEnabled = 1;
        $par1DataOutput.$writableStackTrace = 1;
        $rt_throw($par1DataOutput);
    }
    $par1DataOutput.$out0.$write1(var$3, 0, var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + var$4 | 0;
    $var2 = 0;
    while (true) {
        var$3 = $this.$chunkPostX.data;
        if ($var2 >= var$3.length)
            break;
        ji_DataOutputStream_writeInt($par1DataOutput, var$3[$var2]);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$chunkPosZ.data[$var2]);
        ji_DataOutputStream_writeShort($par1DataOutput, ($this.$field_73590_a.data[$var2] & 65535) << 16 >> 16);
        ji_DataOutputStream_writeShort($par1DataOutput, ($this.$field_73588_b.data[$var2] & 65535) << 16 >> 16);
        $var2 = $var2 + 1 | 0;
    }
},
nms_Packet56MapChunks_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet56MapChunks_getPacketSize = $this => {
    return (6 + $this.$dataLength | 0) + (12 * $this.$chunkPostX.data.length | 0) | 0;
},
nms_Packet56MapChunks__clinit_ = () => {
    nms_Packet56MapChunks_chunkDataNotCompressed = $rt_createByteArray(0);
};
function nms_Packet60Explosion() {
    let a = this; nms_Packet.call(a);
    a.$explosionX0 = 0.0;
    a.$explosionY0 = 0.0;
    a.$explosionZ0 = 0.0;
    a.$explosionSize0 = 0.0;
    a.$chunkPositionRecords = null;
    a.$playerVelocityX = 0.0;
    a.$playerVelocityY = 0.0;
    a.$playerVelocityZ = 0.0;
}
let nms_Packet60Explosion__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet60Explosion__init_0 = () => {
    let var_0 = new nms_Packet60Explosion();
    nms_Packet60Explosion__init_(var_0);
    return var_0;
},
nms_Packet60Explosion_readPacketData = ($this, $par1DataInput) => {
    let $var2, var$3, $var3, $var4, $var5, $var6, $var7, $var8, $var9, var$11, var$12;
    $this.$explosionX0 = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$explosionY0 = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$explosionZ0 = $rt_longBitsToDouble((ji_DataInputStream_readLong($par1DataInput)));
    $this.$explosionSize0 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $var2 = ji_DataInputStream_readInt($par1DataInput);
    var$3 = new ju_ArrayList;
    if ($var2 < 0) {
        $par1DataInput = new jl_IllegalArgumentException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    var$3.$array = $rt_createArray(jl_Object, $var2);
    $this.$chunkPositionRecords = var$3;
    $var3 = $this.$explosionX0 | 0;
    $var4 = $this.$explosionY0 | 0;
    $var5 = $this.$explosionZ0 | 0;
    $var6 = 0;
    while (true) {
        if ($var6 >= $var2) {
            $this.$playerVelocityX = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
            $this.$playerVelocityY = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
            $this.$playerVelocityZ = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
            return;
        }
        $var7 = $par1DataInput.$in.$read();
        if ($var7 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        $var7 = ($var7 << 24 >> 24) + $var3 | 0;
        $var8 = $par1DataInput.$in.$read();
        if ($var8 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        $var8 = ($var8 << 24 >> 24) + $var4 | 0;
        $var9 = $par1DataInput.$in.$read();
        if ($var9 < 0)
            break;
        $var9 = ($var9 << 24 >> 24) + $var5 | 0;
        var$3 = $this.$chunkPositionRecords;
        var$11 = new nms_ChunkPosition;
        var$11.$x = $var7;
        var$11.$y = $var8;
        var$11.$z = $var9;
        ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
        var$12 = var$3.$array.data;
        $var8 = var$3.$size0;
        var$3.$size0 = $var8 + 1 | 0;
        var$12[$var8] = var$11;
        var$3.$modCount = var$3.$modCount + 1 | 0;
        $var6 = $var6 + 1 | 0;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet60Explosion_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, $var2, $var3, $var4, var$7, $var5$index, var$9, var$10, $var5$index_0, $var6, $var7, $var8, $var9;
    var$2 = $this.$explosionX0;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$2 = $this.$explosionY0;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$2 = $this.$explosionZ0;
    ji_DataOutputStream_writeLong($par1DataOutput, !(isNaN(var$2) ? 1 : 0) ? $rt_doubleToRawLongBits(var$2) : Long_create(0, 2146959360));
    var$3 = $this.$explosionSize0;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$chunkPositionRecords.$size0);
    $var2 = $this.$explosionX0 | 0;
    $var3 = $this.$explosionY0 | 0;
    $var4 = $this.$explosionZ0 | 0;
    var$7 = $this.$chunkPositionRecords;
    $var5$index = 0;
    var$9 = var$7.$modCount;
    var$10 = var$7.$size();
    while (true) {
        if (!($var5$index >= var$10 ? 0 : 1)) {
            var$3 = $this.$playerVelocityX;
            ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
            var$3 = $this.$playerVelocityY;
            ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
            var$3 = $this.$playerVelocityZ;
            ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
            return;
        }
        if (var$9 < var$7.$modCount)
            break;
        $var5$index_0 = $var5$index + 1 | 0;
        $var6 = var$7.$get($var5$index);
        $var7 = $var6.$x - $var2 | 0;
        $var8 = $var6.$y - $var3 | 0;
        $var9 = $var6.$z - $var4 | 0;
        $par1DataOutput.$out0.$write0($var7);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        $par1DataOutput.$out0.$write0($var8);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        $par1DataOutput.$out0.$write0($var9);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        $var5$index = $var5$index_0;
    }
    $par1DataOutput = new ju_ConcurrentModificationException;
    $par1DataOutput.$suppressionEnabled = 1;
    $par1DataOutput.$writableStackTrace = 1;
    $rt_throw($par1DataOutput);
},
nms_Packet60Explosion_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet60Explosion_getPacketSize = $this => {
    return (32 + ($this.$chunkPositionRecords.$size0 * 3 | 0) | 0) + 3 | 0;
};
function nms_Packet61DoorChange() {
    let a = this; nms_Packet.call(a);
    a.$sfxID = 0;
    a.$auxData = 0;
    a.$posX1 = 0;
    a.$posY1 = 0;
    a.$posZ1 = 0;
    a.$disableRelativeVolume = 0;
}
let nms_Packet61DoorChange__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet61DoorChange__init_0 = () => {
    let var_0 = new nms_Packet61DoorChange();
    nms_Packet61DoorChange__init_(var_0);
    return var_0;
},
nms_Packet61DoorChange_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$sfxID = ji_DataInputStream_readInt($par1DataInput);
    $this.$posX1 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$posY1 = var$2 << 24 >> 24 & 255;
    $this.$posZ1 = ji_DataInputStream_readInt($par1DataInput);
    $this.$auxData = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$disableRelativeVolume = !var$2 ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet61DoorChange_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$sfxID);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posX1);
    var$2 = $this.$posY1 & 255;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posZ1);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$auxData);
    var$2 = $this.$disableRelativeVolume;
    $par1DataOutput.$out0.$write0(!var$2 ? 0 : 1);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet61DoorChange_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet61DoorChange_getPacketSize = $this => {
    return 21;
};
function nms_Packet62LevelSound() {
    let a = this; nms_Packet.call(a);
    a.$soundName = null;
    a.$effectX = 0;
    a.$effectY = 0;
    a.$effectZ = 0;
    a.$volume = 0.0;
    a.$pitch1 = 0;
}
let nms_Packet62LevelSound__init_0 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$effectY = 2147483647;
},
nms_Packet62LevelSound__init_2 = () => {
    let var_0 = new nms_Packet62LevelSound();
    nms_Packet62LevelSound__init_0(var_0);
    return var_0;
},
nms_Packet62LevelSound__init_1 = ($this, $par1Str, $par2, $par4, $par6, $par8, $par9) => {
    let var$7;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$effectY = 2147483647;
    $this.$soundName = $par1Str;
    $this.$effectX = $par2 * 8.0 | 0;
    $this.$effectY = $par4 * 8.0 | 0;
    $this.$effectZ = $par6 * 8.0 | 0;
    $this.$volume = $par8;
    var$7 = $par9 * 63.0 | 0;
    $this.$pitch1 = var$7;
    if (var$7 < 0)
        $this.$pitch1 = 0;
    if ($this.$pitch1 > 255)
        $this.$pitch1 = 255;
},
nms_Packet62LevelSound__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new nms_Packet62LevelSound();
    nms_Packet62LevelSound__init_1(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
},
nms_Packet62LevelSound_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$soundName = nms_Packet_readString($par1DataInput, 256);
    $this.$effectX = ji_DataInputStream_readInt($par1DataInput);
    $this.$effectY = ji_DataInputStream_readInt($par1DataInput);
    $this.$effectZ = ji_DataInputStream_readInt($par1DataInput);
    $this.$volume = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$pitch1 = var$2 & 255;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet62LevelSound_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4;
    var$2 = $this.$soundName;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$effectX);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$effectY);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$effectZ);
    var$3 = $this.$volume;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
    var$4 = $this.$pitch1;
    $par1DataOutput.$out0.$write0(var$4);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet62LevelSound_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet62LevelSound_getPacketSize = $this => {
    return 24;
};
function nms_Packet63WorldParticles() {
    let a = this; nms_Packet.call(a);
    a.$particleName = null;
    a.$posX12 = 0.0;
    a.$posY12 = 0.0;
    a.$posZ12 = 0.0;
    a.$offsetX0 = 0.0;
    a.$offsetY0 = 0.0;
    a.$offsetZ = 0.0;
    a.$speed4 = 0.0;
    a.$quantity = 0;
}
let nms_Packet63WorldParticles__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet63WorldParticles__init_0 = () => {
    let var_0 = new nms_Packet63WorldParticles();
    nms_Packet63WorldParticles__init_(var_0);
    return var_0;
},
nms_Packet63WorldParticles_readPacketData = ($this, $par1DataInput) => {
    $this.$particleName = nms_Packet_readString($par1DataInput, 64);
    $this.$posX12 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$posY12 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$posZ12 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$offsetX0 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$offsetY0 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$offsetZ = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$speed4 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$quantity = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet63WorldParticles_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet70GameEvent() {
    let a = this; nms_Packet.call(a);
    a.$eventType = 0;
    a.$gameMode = 0;
}
let nms_Packet70GameEvent_clientMessage = null,
nms_Packet70GameEvent__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet70GameEvent__init_0 = () => {
    let var_0 = new nms_Packet70GameEvent();
    nms_Packet70GameEvent__init_(var_0);
    return var_0;
},
nms_Packet70GameEvent_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$eventType = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$gameMode = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet70GameEvent_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$eventType;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$gameMode;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet70GameEvent_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet70GameEvent_getPacketSize = $this => {
    return 2;
},
nms_Packet70GameEvent__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(jl_String, 4);
    var$2 = var$1.data;
    var$2[0] = $rt_s(96);
    var$2[1] = null;
    var$2[2] = null;
    var$2[3] = $rt_s(97);
    nms_Packet70GameEvent_clientMessage = var$1;
};
function nms_Packet71Weather() {
    let a = this; nms_Packet.call(a);
    a.$entityID1 = 0;
    a.$posX10 = 0;
    a.$posY10 = 0;
    a.$posZ10 = 0;
    a.$isLightningBolt = 0;
}
let nms_Packet71Weather__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet71Weather__init_2 = () => {
    let var_0 = new nms_Packet71Weather();
    nms_Packet71Weather__init_(var_0);
    return var_0;
},
nms_Packet71Weather__init_0 = ($this, $par1Entity) => {
    let var$2, var$3;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$entityID1 = $par1Entity.$entityId;
    var$2 = $par1Entity.$posX * 32.0;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    $this.$posX10 = var$3;
    var$2 = $par1Entity.$posY * 32.0;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    $this.$posY10 = var$3;
    var$2 = $par1Entity.$posZ * 32.0;
    var$3 = var$2 | 0;
    if (var$2 < var$3)
        var$3 = var$3 - 1 | 0;
    $this.$posZ10 = var$3;
    if ($par1Entity instanceof nms_EntityLightningBolt)
        $this.$isLightningBolt = 1;
},
nms_Packet71Weather__init_1 = var_0 => {
    let var_1 = new nms_Packet71Weather();
    nms_Packet71Weather__init_0(var_1, var_0);
    return var_1;
},
nms_Packet71Weather_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$entityID1 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$isLightningBolt = var$2 << 24 >> 24;
        $this.$posX10 = ji_DataInputStream_readInt($par1DataInput);
        $this.$posY10 = ji_DataInputStream_readInt($par1DataInput);
        $this.$posZ10 = ji_DataInputStream_readInt($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet71Weather_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$entityID1);
    var$2 = $this.$isLightningBolt;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posX10);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posY10);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$posZ10);
},
nms_Packet71Weather_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet71Weather_getPacketSize = $this => {
    return 17;
};
function nms_Packet100OpenWindow() {
    let a = this; nms_Packet.call(a);
    a.$windowId2 = 0;
    a.$inventoryType = 0;
    a.$windowTitle = null;
    a.$slotsCount0 = 0;
    a.$useProvidedWindowTitle = 0;
    a.$field_111008_f = 0;
}
let nms_Packet100OpenWindow__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet100OpenWindow__init_0 = () => {
    let var_0 = new nms_Packet100OpenWindow();
    nms_Packet100OpenWindow__init_(var_0);
    return var_0;
},
nms_Packet100OpenWindow_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet100OpenWindow_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$windowId2 = var$2 << 24 >> 24 & 255;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$inventoryType = var$2 << 24 >> 24 & 255;
    $this.$windowTitle = nms_Packet_readString($par1DataInput, 32);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$slotsCount0 = var$2 << 24 >> 24 & 255;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$useProvidedWindowTitle = !var$2 ? 0 : 1;
    if ($this.$inventoryType == 11)
        $this.$field_111008_f = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet100OpenWindow_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    var$2 = $this.$windowId2 & 255;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$inventoryType & 255;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$3 = $this.$windowTitle;
    nms_Packet_$callClinit();
    if (var$3.$nativeString.length > 32767) {
        var$3 = new ji_IOException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = $rt_s(2108);
        $rt_throw(var$3);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$3.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$3);
    var$2 = $this.$slotsCount0 & 255;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$2 = $this.$useProvidedWindowTitle;
    $par1DataOutput.$out0.$write0(!var$2 ? 0 : 1);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    if ($this.$inventoryType == 11)
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$field_111008_f);
},
nms_Packet100OpenWindow_getPacketSize = $this => {
    return $this.$inventoryType != 11 ? 4 + $this.$windowTitle.$nativeString.length | 0 : 8 + $this.$windowTitle.$nativeString.length | 0;
};
function nms_Packet101CloseWindow() {
    nms_Packet.call(this);
    this.$windowId3 = 0;
}
let nms_Packet101CloseWindow__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet101CloseWindow__init_0 = () => {
    let var_0 = new nms_Packet101CloseWindow();
    nms_Packet101CloseWindow__init_(var_0);
    return var_0;
},
nms_Packet101CloseWindow_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleCloseWindow($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet101CloseWindow_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$windowId3 = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet101CloseWindow_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$windowId3;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet101CloseWindow_getPacketSize = $this => {
    return 1;
};
function nms_Packet102WindowClick() {
    let a = this; nms_Packet.call(a);
    a.$window_Id = 0;
    a.$inventorySlot = 0;
    a.$mouseClick = 0;
    a.$action0 = 0;
    a.$itemStack1 = null;
    a.$holdingShift = 0;
}
let nms_Packet102WindowClick__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet102WindowClick__init_0 = () => {
    let var_0 = new nms_Packet102WindowClick();
    nms_Packet102WindowClick__init_(var_0);
    return var_0;
},
nms_Packet102WindowClick_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleWindowClick($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet102WindowClick_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$window_Id = var$2 << 24 >> 24;
    $this.$inventorySlot = ji_DataInputStream_readShort($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$mouseClick = var$2 << 24 >> 24;
    $this.$action0 = ji_DataInputStream_readShort($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$holdingShift = var$2 << 24 >> 24;
    nms_Packet_$callClinit();
    var$3 = null;
    var$2 = ji_DataInputStream_readShort($par1DataInput);
    if (var$2 >= 0) {
        var$4 = $par1DataInput.$in.$read();
        if (var$4 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        var$5 = var$4 << 24 >> 24;
        var$4 = ji_DataInputStream_readShort($par1DataInput);
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$2;
        var$3.$stackSize = var$5;
        var$3.$itemDamage = var$4;
        if (var$4 < 0)
            var$3.$itemDamage = 0;
        var$2 = ji_DataInputStream_readShort($par1DataInput);
        if (var$2 < 0)
            $par1DataInput = null;
        else {
            var$6 = $rt_createByteArray(var$2);
            var$4 = var$6.data.length;
            ji_DataInputStream_readFully($par1DataInput, var$6, 0, var$4);
            var$7 = new ji_DataInputStream;
            $par1DataInput = new ji_BufferedInputStream;
            var$8 = new cjj_GZIPInputStream;
            var$9 = new ji_ByteArrayInputStream;
            var$9.$buf0 = var$6;
            var$9.$pos0 = 0;
            var$9.$mark = 0;
            var$9.$count = 0 + var$4 | 0;
            var$10 = new cjj_Inflater;
            cjj_ZStream__init_(var$10, cjj_Adler32__init_());
            var$10.$finished0 = 0;
            var$10.$finished0 = 0;
            var$11 = cjj_Inflate__init_(var$10);
            var$10.$istate = var$11;
            var$4 = cjj_Inflate_inflateInit(var$11, 31);
            if (var$4) {
                $par1DataInput = new cjj_GZIPException;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                jl_AbstractStringBuilder_append0(var$3, var$4);
                jl_AbstractStringBuilder_append(var$3, $rt_s(102));
                jl_AbstractStringBuilder_append(var$3, var$10.$msg);
                ji_IOException__init_0($par1DataInput, jl_AbstractStringBuilder_toString(var$3));
                $rt_throw($par1DataInput);
            }
            cjj_InflaterInputStream__init_(var$8, var$9, var$10, 512, 1);
            var$8.$myinflater = 1;
            $par1DataInput.$in = var$8;
            $par1DataInput.$markpos = (-1);
            $par1DataInput.$buf1 = $rt_createByteArray(8192);
            var$7.$in = $par1DataInput;
            var$7.$buff = $rt_createByteArray(8);
            a: {
                try {
                    $par1DataInput = nms_CompressedStreamTools_read(var$7);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1DataInput = $$je;

                }
                var$7.$in.$close();
                $rt_throw($par1DataInput);
            }
            var$7.$in.$close();
        }
        var$3.$stackTagCompound = $par1DataInput;
    }
    $this.$itemStack1 = var$3;
};
function nms_Packet103SetSlot() {
    let a = this; nms_Packet.call(a);
    a.$windowId1 = 0;
    a.$itemSlot = 0;
    a.$myItemStack = null;
}
let nms_Packet103SetSlot__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet103SetSlot__init_0 = () => {
    let var_0 = new nms_Packet103SetSlot();
    nms_Packet103SetSlot__init_(var_0);
    return var_0;
},
nms_Packet103SetSlot_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet103SetSlot_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$windowId1 = var$2 << 24 >> 24;
    $this.$itemSlot = ji_DataInputStream_readShort($par1DataInput);
    nms_Packet_$callClinit();
    var$3 = null;
    var$2 = ji_DataInputStream_readShort($par1DataInput);
    if (var$2 >= 0) {
        var$4 = $par1DataInput.$in.$read();
        if (var$4 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        var$5 = var$4 << 24 >> 24;
        var$4 = ji_DataInputStream_readShort($par1DataInput);
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$2;
        var$3.$stackSize = var$5;
        var$3.$itemDamage = var$4;
        if (var$4 < 0)
            var$3.$itemDamage = 0;
        var$2 = ji_DataInputStream_readShort($par1DataInput);
        if (var$2 < 0)
            $par1DataInput = null;
        else {
            var$6 = $rt_createByteArray(var$2);
            var$4 = var$6.data.length;
            ji_DataInputStream_readFully($par1DataInput, var$6, 0, var$4);
            var$7 = new ji_DataInputStream;
            var$8 = new ji_BufferedInputStream;
            var$9 = new cjj_GZIPInputStream;
            var$10 = new ji_ByteArrayInputStream;
            var$10.$buf0 = var$6;
            var$10.$pos0 = 0;
            var$10.$mark = 0;
            var$10.$count = 0 + var$4 | 0;
            var$11 = new cjj_Inflater;
            cjj_ZStream__init_(var$11, cjj_Adler32__init_());
            var$11.$finished0 = 0;
            var$11.$finished0 = 0;
            $par1DataInput = cjj_Inflate__init_(var$11);
            var$11.$istate = $par1DataInput;
            var$2 = cjj_Inflate_inflateInit($par1DataInput, 31);
            if (var$2) {
                $par1DataInput = new cjj_GZIPException;
                var$3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$3);
                jl_AbstractStringBuilder_append0(var$3, var$2);
                jl_AbstractStringBuilder_append(var$3, $rt_s(102));
                jl_AbstractStringBuilder_append(var$3, var$11.$msg);
                ji_IOException__init_0($par1DataInput, jl_AbstractStringBuilder_toString(var$3));
                $rt_throw($par1DataInput);
            }
            cjj_InflaterInputStream__init_(var$9, var$10, var$11, 512, 1);
            var$9.$myinflater = 1;
            var$8.$in = var$9;
            var$8.$markpos = (-1);
            var$8.$buf1 = $rt_createByteArray(8192);
            var$7.$in = var$8;
            var$7.$buff = $rt_createByteArray(8);
            a: {
                try {
                    $par1DataInput = nms_CompressedStreamTools_read(var$7);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1DataInput = $$je;

                }
                var$7.$in.$close();
                $rt_throw($par1DataInput);
            }
            var$7.$in.$close();
        }
        var$3.$stackTagCompound = $par1DataInput;
    }
    $this.$myItemStack = var$3;
},
nms_Packet103SetSlot_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$windowId1;
        $par1DataOutput.$out0.$write0(var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$itemSlot);
        var$3 = $this.$myItemStack;
        $ptr = 1;
    case 1:
        nms_Packet_writeItemStack(var$3, $par1DataOutput);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, var$2, var$3, $ptr);
},
nms_Packet103SetSlot_getPacketSize = $this => {
    return 8;
};
function nms_Packet104WindowItems() {
    let a = this; nms_Packet.call(a);
    a.$windowId5 = 0;
    a.$itemStack0 = null;
}
let nms_Packet104WindowItems__init_0 = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet104WindowItems__init_2 = () => {
    let var_0 = new nms_Packet104WindowItems();
    nms_Packet104WindowItems__init_0(var_0);
    return var_0;
},
nms_Packet104WindowItems__init_1 = ($this, $par1, $par2List) => {
    let $var3, var$4, $var4, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$windowId5 = $par1;
    $this.$itemStack0 = $rt_createArray(nms_ItemStack, $par2List.$size0);
    $var3 = 0;
    a: {
        while (true) {
            var$4 = $this.$itemStack0.data;
            if ($var3 >= var$4.length)
                break;
            if ($var3 < 0)
                break a;
            if ($var3 >= $par2List.$size0)
                break a;
            $var4 = $par2List.$array.data[$var3];
            if ($var4 === null)
                var$6 = null;
            else {
                var$6 = new nms_ItemStack;
                var$7 = $var4.$itemID;
                var$8 = $var4.$stackSize;
                $par1 = $var4.$itemDamage;
                nms_ItemStack_$callClinit();
                var$6.$itemID = var$7;
                var$6.$stackSize = var$8;
                var$6.$itemDamage = $par1;
                if ($par1 < 0)
                    var$6.$itemDamage = 0;
                $var4 = $var4.$stackTagCompound;
                if ($var4 !== null) {
                    var$9 = new nms_NBTTagCompound;
                    var$10 = $var4.$name;
                    if (var$10 === null)
                        var$10 = $rt_s(3);
                    var$9.$name = var$10;
                    var$10 = new ju_HashMap;
                    $par1 = ju_HashMap_calculateCapacity(16);
                    var$10.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                    var$12 = var$11.data;
                    var$10.$elementData = var$11;
                    var$10.$loadFactor = 0.75;
                    var$10.$threshold = var$12.length * 0.75 | 0;
                    var$9.$tagMap = var$10;
                    var$10 = $var4.$tagMap;
                    if (var$10.$cachedKeySet === null) {
                        var$13 = new ju_HashMap$1;
                        var$13.$this$0 = var$10;
                        var$10.$cachedKeySet = var$13;
                    }
                    var$14 = var$10.$cachedKeySet.$iterator();
                    while (var$14.$hasNext()) {
                        var$15 = var$14.$next();
                        var$10 = $var4.$tagMap;
                        if (var$15 === null) {
                            var$16 = var$10.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            b: {
                                if (!var$15.$hashCode1) {
                                    $par1 = 0;
                                    while (true) {
                                        if ($par1 >= var$15.$nativeString.length)
                                            break b;
                                        var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt($par1) | 0;
                                        $par1 = $par1 + 1 | 0;
                                    }
                                }
                            }
                            $par1 = var$15.$hashCode1;
                            var$11 = var$10.$elementData.data;
                            var$16 = var$11[$par1 & (var$11.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == $par1) {
                                    c: {
                                        var$10 = var$16.$key;
                                        if (var$15 !== var$10) {
                                            if (var$15 === var$10)
                                                var$7 = 1;
                                            else if (!(var$10 instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                var$10 = var$10;
                                                var$7 = var$15.$nativeString !== var$10.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break c;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$10 = var$16 === null ? null : var$16.$value0;
                        var$10 = var$10.$copy();
                        var$13 = var$9.$tagMap;
                        if (var$15 !== null)
                            var$10.$name = var$15;
                        else
                            var$10.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$13, var$15, var$10);
                    }
                    var$6.$stackTagCompound = var$9;
                }
            }
            var$4[$var3] = var$6;
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    $par2List = new jl_IndexOutOfBoundsException;
    $par2List.$suppressionEnabled = 1;
    $par2List.$writableStackTrace = 1;
    $rt_throw($par2List);
},
nms_Packet104WindowItems__init_ = (var_0, var_1) => {
    let var_2 = new nms_Packet104WindowItems();
    nms_Packet104WindowItems__init_1(var_2, var_0, var_1);
    return var_2;
},
nms_Packet104WindowItems_readPacketData = ($this, $par1DataInput) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je;
    $var2 = $par1DataInput.$in.$read();
    if ($var2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$windowId5 = $var2 << 24 >> 24;
    $var2 = ji_DataInputStream_readShort($par1DataInput);
    $this.$itemStack0 = $rt_createArray(nms_ItemStack, $var2);
    $var3 = 0;
    while ($var3 < $var2) {
        var$4 = $this.$itemStack0;
        nms_Packet_$callClinit();
        var$5 = null;
        var$6 = ji_DataInputStream_readShort($par1DataInput);
        if (var$6 >= 0) {
            var$7 = $par1DataInput.$in.$read();
            if (var$7 < 0) {
                $par1DataInput = new ji_EOFException;
                $par1DataInput.$suppressionEnabled = 1;
                $par1DataInput.$writableStackTrace = 1;
                $rt_throw($par1DataInput);
            }
            var$7 = var$7 << 24 >> 24;
            var$8 = ji_DataInputStream_readShort($par1DataInput);
            var$5 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$5.$itemID = var$6;
            var$5.$stackSize = var$7;
            var$5.$itemDamage = var$8;
            if (var$8 < 0)
                var$5.$itemDamage = 0;
            var$7 = ji_DataInputStream_readShort($par1DataInput);
            if (var$7 < 0)
                var$9 = null;
            else {
                var$10 = $rt_createByteArray(var$7);
                var$6 = var$10.data.length;
                ji_DataInputStream_readFully($par1DataInput, var$10, 0, var$6);
                var$11 = new ji_DataInputStream;
                var$9 = new ji_BufferedInputStream;
                var$12 = new cjj_GZIPInputStream;
                var$13 = new ji_ByteArrayInputStream;
                var$13.$buf0 = var$10;
                var$13.$pos0 = 0;
                var$13.$mark = 0;
                var$13.$count = 0 + var$6 | 0;
                var$14 = new cjj_Inflater;
                cjj_ZStream__init_(var$14, cjj_Adler32__init_());
                var$14.$finished0 = 0;
                var$14.$finished0 = 0;
                var$15 = cjj_Inflate__init_(var$14);
                var$14.$istate = var$15;
                var$8 = cjj_Inflate_inflateInit(var$15, 31);
                if (var$8) {
                    $par1DataInput = new cjj_GZIPException;
                    var$11 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$11);
                    jl_AbstractStringBuilder_append0(var$11, var$8);
                    jl_AbstractStringBuilder_append(var$11, $rt_s(102));
                    jl_AbstractStringBuilder_append(var$11, var$14.$msg);
                    ji_IOException__init_0($par1DataInput, jl_AbstractStringBuilder_toString(var$11));
                    $rt_throw($par1DataInput);
                }
                cjj_InflaterInputStream__init_(var$12, var$13, var$14, 512, 1);
                var$12.$myinflater = 1;
                var$9.$in = var$12;
                var$9.$markpos = (-1);
                var$9.$buf1 = $rt_createByteArray(8192);
                var$11.$in = var$9;
                var$11.$buff = $rt_createByteArray(8);
                try {
                    var$9 = nms_CompressedStreamTools_read(var$11);
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1DataInput = $$je;
                    var$11.$in.$close();
                    $rt_throw($par1DataInput);

                }
                var$11.$in.$close();
            }
            var$5.$stackTagCompound = var$9;
        }
        var$4.data[$var3] = var$5;
        $var3 = $var3 + 1 | 0;
    }
},
nms_Packet104WindowItems_writePacketData = ($this, $par1DataOutput) => {
    let $var2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$windowId5;
        $par1DataOutput.$out0.$write0($var2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$itemStack0.data.length);
        $var2 = 0;
        var$3 = $this.$itemStack0.data;
        if ($var2 >= var$3.length)
            return;
        var$4 = var$3[$var2];
        $ptr = 1;
    case 1:
        nms_Packet_writeItemStack(var$4, $par1DataOutput);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        var$3 = $this.$itemStack0.data;
        if ($var2 >= var$3.length)
            return;
        var$4 = var$3[$var2];
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, $var2, var$3, var$4, $ptr);
},
nms_Packet104WindowItems_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet104WindowItems_getPacketSize = $this => {
    return 3 + ($this.$itemStack0.data.length * 5 | 0) | 0;
};
function nms_Packet105UpdateProgressbar() {
    let a = this; nms_Packet.call(a);
    a.$windowId0 = 0;
    a.$progressBar = 0;
    a.$progressBarValue = 0;
}
let nms_Packet105UpdateProgressbar__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet105UpdateProgressbar__init_0 = () => {
    let var_0 = new nms_Packet105UpdateProgressbar();
    nms_Packet105UpdateProgressbar__init_(var_0);
    return var_0;
},
nms_Packet105UpdateProgressbar_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet105UpdateProgressbar_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$windowId0 = var$2 << 24 >> 24;
        $this.$progressBar = ji_DataInputStream_readShort($par1DataInput);
        $this.$progressBarValue = ji_DataInputStream_readShort($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet105UpdateProgressbar_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$windowId0;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$progressBar);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$progressBarValue);
},
nms_Packet105UpdateProgressbar_getPacketSize = $this => {
    return 5;
};
function nms_Packet106Transaction() {
    let a = this; nms_Packet.call(a);
    a.$windowId4 = 0;
    a.$shortWindowId = 0;
    a.$accepted = 0;
}
let nms_Packet106Transaction__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet106Transaction__init_0 = () => {
    let var_0 = new nms_Packet106Transaction();
    nms_Packet106Transaction__init_(var_0);
    return var_0;
},
nms_Packet106Transaction_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleTransaction($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet106Transaction_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$windowId4 = var$2 << 24 >> 24;
    $this.$shortWindowId = ji_DataInputStream_readShort($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$accepted = !(var$2 << 24 >> 24) ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet106Transaction_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$windowId4;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$shortWindowId);
    var$2 = !$this.$accepted ? 0 : 1;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet106Transaction_getPacketSize = $this => {
    return 4;
};
function nms_Packet107CreativeSetSlot() {
    let a = this; nms_Packet.call(a);
    a.$slot0 = 0;
    a.$itemStack3 = null;
}
let nms_Packet107CreativeSetSlot__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet107CreativeSetSlot__init_0 = () => {
    let var_0 = new nms_Packet107CreativeSetSlot();
    nms_Packet107CreativeSetSlot__init_(var_0);
    return var_0;
},
nms_Packet107CreativeSetSlot_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleCreativeSetSlot($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet107CreativeSetSlot_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je;
    $this.$slot0 = ji_DataInputStream_readShort($par1DataInput);
    nms_Packet_$callClinit();
    var$2 = null;
    var$3 = ji_DataInputStream_readShort($par1DataInput);
    if (var$3 >= 0) {
        var$4 = $par1DataInput.$in.$read();
        if (var$4 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        var$5 = var$4 << 24 >> 24;
        var$4 = ji_DataInputStream_readShort($par1DataInput);
        var$2 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$2.$itemID = var$3;
        var$2.$stackSize = var$5;
        var$2.$itemDamage = var$4;
        if (var$4 < 0)
            var$2.$itemDamage = 0;
        var$3 = ji_DataInputStream_readShort($par1DataInput);
        if (var$3 < 0)
            $par1DataInput = null;
        else {
            var$6 = $rt_createByteArray(var$3);
            var$4 = var$6.data.length;
            ji_DataInputStream_readFully($par1DataInput, var$6, 0, var$4);
            var$7 = new ji_DataInputStream;
            var$8 = new ji_BufferedInputStream;
            var$9 = new cjj_GZIPInputStream;
            var$10 = new ji_ByteArrayInputStream;
            var$10.$buf0 = var$6;
            var$10.$pos0 = 0;
            var$10.$mark = 0;
            var$10.$count = 0 + var$4 | 0;
            $par1DataInput = new cjj_Inflater;
            cjj_ZStream__init_($par1DataInput, cjj_Adler32__init_());
            $par1DataInput.$finished0 = 0;
            $par1DataInput.$finished0 = 0;
            var$11 = cjj_Inflate__init_($par1DataInput);
            $par1DataInput.$istate = var$11;
            var$5 = cjj_Inflate_inflateInit(var$11, 31);
            if (var$5) {
                var$2 = new cjj_GZIPException;
                var$7 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$7);
                jl_AbstractStringBuilder_append0(var$7, var$5);
                jl_AbstractStringBuilder_append(var$7, $rt_s(102));
                jl_AbstractStringBuilder_append(var$7, $par1DataInput.$msg);
                ji_IOException__init_0(var$2, jl_AbstractStringBuilder_toString(var$7));
                $rt_throw(var$2);
            }
            cjj_InflaterInputStream__init_(var$9, var$10, $par1DataInput, 512, 1);
            var$9.$myinflater = 1;
            var$8.$in = var$9;
            var$8.$markpos = (-1);
            var$8.$buf1 = $rt_createByteArray(8192);
            var$7.$in = var$8;
            var$7.$buff = $rt_createByteArray(8);
            a: {
                try {
                    $par1DataInput = nms_CompressedStreamTools_read(var$7);
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    $par1DataInput = $$je;

                }
                var$7.$in.$close();
                $rt_throw($par1DataInput);
            }
            var$7.$in.$close();
        }
        var$2.$stackTagCompound = $par1DataInput;
    }
    $this.$itemStack3 = var$2;
};
function nms_Packet108EnchantItem() {
    let a = this; nms_Packet.call(a);
    a.$windowId6 = 0;
    a.$enchantment = 0;
}
let nms_Packet108EnchantItem__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet108EnchantItem__init_0 = () => {
    let var_0 = new nms_Packet108EnchantItem();
    nms_Packet108EnchantItem__init_(var_0);
    return var_0;
},
nms_Packet108EnchantItem_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleEnchantItem($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet108EnchantItem_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$windowId6 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$enchantment = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
};
function nms_Packet130UpdateSign() {
    let a = this; nms_Packet.call(a);
    a.$xPosition7 = 0;
    a.$yPosition7 = 0;
    a.$zPosition7 = 0;
    a.$signLines = null;
}
let nms_Packet130UpdateSign__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
},
nms_Packet130UpdateSign__init_2 = () => {
    let var_0 = new nms_Packet130UpdateSign();
    nms_Packet130UpdateSign__init_(var_0);
    return var_0;
},
nms_Packet130UpdateSign__init_0 = ($this, $par1, $par2, $par3, $par4ArrayOfStr) => {
    let var$5, var$6;
    var$5 = $par4ArrayOfStr.data;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
    $this.$xPosition7 = $par1;
    $this.$yPosition7 = $par2;
    $this.$zPosition7 = $par3;
    $par4ArrayOfStr = $rt_createArray(jl_String, 4);
    var$6 = $par4ArrayOfStr.data;
    var$6[0] = var$5[0];
    var$6[1] = var$5[1];
    var$6[2] = var$5[2];
    var$6[3] = var$5[3];
    $this.$signLines = $par4ArrayOfStr;
},
nms_Packet130UpdateSign__init_1 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_Packet130UpdateSign();
    nms_Packet130UpdateSign__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_Packet130UpdateSign_readPacketData = ($this, $par1DataInput) => {
    let $var2;
    $this.$xPosition7 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition7 = ji_DataInputStream_readShort($par1DataInput);
    $this.$zPosition7 = ji_DataInputStream_readInt($par1DataInput);
    $this.$signLines = $rt_createArray(jl_String, 4);
    $var2 = 0;
    while ($var2 < 4) {
        $this.$signLines.data[$var2] = nms_Packet_readString($par1DataInput, 15);
        $var2 = $var2 + 1 | 0;
    }
},
nms_Packet130UpdateSign_writePacketData = ($this, $par1DataOutput) => {
    let $var2, var$3;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition7);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$yPosition7);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition7);
    $var2 = 0;
    while ($var2 < 4) {
        var$3 = $this.$signLines.data[$var2];
        nms_Packet_$callClinit();
        if (var$3.$nativeString.length > 32767) {
            var$3 = new ji_IOException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            var$3.$message = $rt_s(2108);
            $rt_throw(var$3);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, var$3.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$3);
        $var2 = $var2 + 1 | 0;
    }
},
nms_Packet130UpdateSign_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleUpdateSign($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet130UpdateSign_getPacketSize = $this => {
    let $var1, $var2;
    $var1 = 0;
    $var2 = 0;
    while ($var2 < 4) {
        $var1 = $var1 + $this.$signLines.data[$var2].$nativeString.length | 0;
        $var2 = $var2 + 1 | 0;
    }
    return $var1;
};
function nms_Packet131MapData() {
    let a = this; nms_Packet.call(a);
    a.$itemID2 = 0;
    a.$uniqueID = 0;
    a.$itemData = null;
}
let nms_Packet131MapData__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
},
nms_Packet131MapData__init_0 = () => {
    let var_0 = new nms_Packet131MapData();
    nms_Packet131MapData__init_(var_0);
    return var_0;
},
nms_Packet131MapData_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3;
    $this.$itemID2 = ji_DataInputStream_readShort($par1DataInput);
    $this.$uniqueID = ji_DataInputStream_readShort($par1DataInput);
    var$2 = $rt_createByteArray(ji_DataInputStream_readUnsignedShort($par1DataInput));
    var$3 = var$2.data;
    $this.$itemData = var$2;
    ji_DataInputStream_readFully($par1DataInput, var$2, 0, var$3.length);
},
nms_Packet131MapData_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$itemID2);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$uniqueID);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$itemData.data.length);
    var$2 = $this.$itemData;
    var$3 = var$2.data.length;
    $par1DataOutput.$out0.$write1(var$2, 0, var$3);
    $par1DataOutput.$written = $par1DataOutput.$written + var$3 | 0;
},
nms_Packet131MapData_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet131MapData_getPacketSize = $this => {
    return 4 + $this.$itemData.data.length | 0;
};
function nms_Packet132TileEntityData() {
    let a = this; nms_Packet.call(a);
    a.$xPosition5 = 0;
    a.$yPosition4 = 0;
    a.$zPosition5 = 0;
    a.$actionType = 0;
    a.$data12 = null;
}
let nms_Packet132TileEntityData__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$isChunkDataPacket = 1;
},
nms_Packet132TileEntityData__init_0 = () => {
    let var_0 = new nms_Packet132TileEntityData();
    nms_Packet132TileEntityData__init_(var_0);
    return var_0;
},
nms_Packet132TileEntityData_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je;
    $this.$xPosition5 = ji_DataInputStream_readInt($par1DataInput);
    $this.$yPosition4 = ji_DataInputStream_readShort($par1DataInput);
    $this.$zPosition5 = ji_DataInputStream_readInt($par1DataInput);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$actionType = var$2 << 24 >> 24;
    nms_Packet_$callClinit();
    var$2 = ji_DataInputStream_readShort($par1DataInput);
    if (var$2 < 0)
        $par1DataInput = null;
    else {
        var$3 = $rt_createByteArray(var$2);
        var$4 = var$3.data.length;
        ji_DataInputStream_readFully($par1DataInput, var$3, 0, var$4);
        var$5 = new ji_DataInputStream;
        $par1DataInput = new ji_BufferedInputStream;
        var$6 = new cjj_GZIPInputStream;
        var$7 = new ji_ByteArrayInputStream;
        var$7.$buf0 = var$3;
        var$7.$pos0 = 0;
        var$7.$mark = 0;
        var$7.$count = 0 + var$4 | 0;
        var$8 = new cjj_Inflater;
        var$9 = new cjj_Adler32;
        jl_Object__init_(var$9);
        var$9.$s1 = Long_fromInt(1);
        var$9.$s2 = Long_ZERO;
        jl_Object__init_(var$8);
        var$8.$adler = var$9;
        var$8.$finished0 = 0;
        var$8.$finished0 = 0;
        var$10 = new cjj_Inflate;
        jl_Object__init_(var$10);
        var$10.$was = Long_fromInt(-1);
        var$10.$need_bytes = (-1);
        var$10.$crcbuf = $rt_createByteArray(4);
        var$10.$gheader = null;
        var$10.$tmp_string = null;
        var$10.$z0 = var$8;
        var$8.$istate = var$10;
        var$2 = cjj_Inflate_inflateInit(var$10, 31);
        if (var$2) {
            $par1DataInput = new cjj_GZIPException;
            var$5 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$5, 16);
            jl_AbstractStringBuilder_append3(var$5, var$2, 10);
            jl_StringBuilder_insert(var$5, var$5.$length0, $rt_s(102));
            var$6 = var$8.$msg;
            jl_StringBuilder_insert(var$5, var$5.$length0, var$6);
            jl_Exception__init_0($par1DataInput, jl_String__init_2(var$5.$buffer, 0, var$5.$length0));
            $rt_throw($par1DataInput);
        }
        cjj_InflaterInputStream__init_(var$6, var$7, var$8, 512, 1);
        var$6.$myinflater = 1;
        $par1DataInput.$in = var$6;
        $par1DataInput.$markpos = (-1);
        $par1DataInput.$buf1 = $rt_createByteArray(8192);
        var$5.$in = $par1DataInput;
        var$5.$buff = $rt_createByteArray(8);
        a: {
            try {
                $par1DataInput = nms_CompressedStreamTools_read(var$5);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $par1DataInput = $$je;

            }
            var$5.$in.$close();
            $rt_throw($par1DataInput);
        }
        var$5.$in.$close();
    }
    $this.$data12 = $par1DataInput;
},
nms_Packet132TileEntityData_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DataOutput = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$xPosition5);
        ji_DataOutputStream_writeShort($par1DataOutput, $this.$yPosition4);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$zPosition5);
        var$2 = $this.$actionType << 24 >> 24;
        $par1DataOutput.$out0.$write0(var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
        var$3 = $this.$data12;
        nms_Packet_$callClinit();
        if (var$3 === null) {
            ji_DataOutputStream_writeShort($par1DataOutput, (-1));
            return;
        }
        var$4 = new ji_ByteArrayOutputStream;
        var$4.$buf = $rt_createByteArray(32);
        var$5 = new ji_DataOutputStream;
        var$6 = new cjj_GZIPOutputStream;
        var$7 = new cjj_Deflater;
        cjj_ZStream__init_(var$7, cjj_Adler32__init_());
        var$7.$finished1 = 0;
        var$7.$finished1 = 0;
        var$8 = cjj_Deflate__init_(var$7);
        var$7.$dstate = var$8;
        var$9 = cjj_Deflate_deflateInit0(var$8, (-1), 31);
        if (var$9) {
            $par1DataOutput = new cjj_GZIPException;
            var$3 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_(var$3);
            jl_AbstractStringBuilder_append0(var$3, var$9);
            jl_AbstractStringBuilder_append(var$3, $rt_s(102));
            jl_AbstractStringBuilder_append(var$3, var$7.$msg);
            ji_IOException__init_0($par1DataOutput, jl_AbstractStringBuilder_toString(var$3));
            $rt_throw($par1DataOutput);
        }
        cjj_DeflaterOutputStream__init_(var$6, var$4, var$7, 512, 1);
        var$6.$mydeflater = 1;
        var$5.$out0 = var$6;
        var$5.$buff0 = $rt_createByteArray(8);
        a: {
            try {
                nms_CompressedStreamTools_write(var$3, var$5);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                $par1DataOutput = $$je;
                break a;

            }
            b: {
                try {
                    var$5.$out0.$flush();
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            var$3 = var$5.$out0;
            $ptr = 2;
            continue main;
        }
        c: {
            try {
                var$5.$out0.$flush();
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof ji_IOException) {
                } else {
                    throw $$e;
                }
            }
        }
        var$3 = var$5.$out0;
        $ptr = 1;
    case 1:
        var$3.$close();
        if ($rt_suspending()) {
            break main;
        }
        $rt_throw($par1DataOutput);
    case 2:
        var$3.$close();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = var$4.$buf.data;
        var$2 = var$4.$count0;
        var$11 = $rt_createByteArray(var$2);
        var$9 = var$10.length;
        if (var$2 < var$9)
            var$9 = var$2;
        var$12 = var$11.data;
        var$13 = 0;
        while (var$13 < var$9) {
            var$12[var$13] = var$10[var$13];
            var$13 = var$13 + 1 | 0;
        }
        var$2 = var$12.length;
        ji_DataOutputStream_writeShort($par1DataOutput, var$2 << 16 >> 16);
        $par1DataOutput.$out0.$write1(var$11, 0, var$2);
        $par1DataOutput.$written = $par1DataOutput.$written + var$2 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutput, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_Packet132TileEntityData_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet132TileEntityData_getPacketSize = $this => {
    return 25;
};
function nms_Packet133TileEditorOpen() {
    let a = this; nms_Packet.call(a);
    a.$field_142037_a = 0;
    a.$field_142035_b = 0;
    a.$field_142036_c = 0;
    a.$field_142034_d = 0;
}
let nms_Packet133TileEditorOpen__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet133TileEditorOpen__init_0 = () => {
    let var_0 = new nms_Packet133TileEditorOpen();
    nms_Packet133TileEditorOpen__init_(var_0);
    return var_0;
},
nms_Packet133TileEditorOpen_processPacket = ($this, $par1NetHandler) => {
    return;
},
nms_Packet133TileEditorOpen_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$field_142037_a = var$2 << 24 >> 24;
        $this.$field_142035_b = ji_DataInputStream_readInt($par1DataInput);
        $this.$field_142036_c = ji_DataInputStream_readInt($par1DataInput);
        $this.$field_142034_d = ji_DataInputStream_readInt($par1DataInput);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet133TileEditorOpen_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$field_142037_a;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$field_142035_b);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$field_142036_c);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$field_142034_d);
},
nms_Packet133TileEditorOpen_getPacketSize = $this => {
    return 13;
};
function nms_Packet200Statistic() {
    let a = this; nms_Packet.call(a);
    a.$statisticId = 0;
    a.$amount = 0;
}
let nms_Packet200Statistic__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet200Statistic__init_0 = () => {
    let var_0 = new nms_Packet200Statistic();
    nms_Packet200Statistic__init_(var_0);
    return var_0;
},
nms_Packet200Statistic_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet200Statistic_readPacketData = ($this, $par1DataInput) => {
    $this.$statisticId = ji_DataInputStream_readInt($par1DataInput);
    $this.$amount = ji_DataInputStream_readInt($par1DataInput);
},
nms_Packet200Statistic_writePacketData = ($this, $par1DataOutput) => {
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$statisticId);
    ji_DataOutputStream_writeInt($par1DataOutput, $this.$amount);
},
nms_Packet200Statistic_getPacketSize = $this => {
    return 6;
};
function nms_Packet201PlayerInfo() {
    let a = this; nms_Packet.call(a);
    a.$playerName = null;
    a.$isConnected = 0;
    a.$ping = 0;
}
let nms_Packet201PlayerInfo__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet201PlayerInfo__init_0 = () => {
    let var_0 = new nms_Packet201PlayerInfo();
    nms_Packet201PlayerInfo__init_(var_0);
    return var_0;
},
nms_Packet201PlayerInfo_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$playerName = nms_Packet_readString($par1DataInput, 16);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$isConnected = !(var$2 << 24 >> 24) ? 0 : 1;
    $this.$ping = ji_DataInputStream_readShort($par1DataInput);
},
nms_Packet201PlayerInfo_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    var$2 = $this.$playerName;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    var$3 = !$this.$isConnected ? 0 : 1;
    $par1DataOutput.$out0.$write0(var$3);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$ping);
},
nms_Packet201PlayerInfo_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet201PlayerInfo_getPacketSize = $this => {
    return (($this.$playerName.$nativeString.length + 2 | 0) + 1 | 0) + 2 | 0;
};
function nms_Packet202PlayerAbilities() {
    let a = this; nms_Packet.call(a);
    a.$disableDamage0 = 0;
    a.$isFlying0 = 0;
    a.$allowFlying0 = 0;
    a.$isCreativeMode0 = 0;
    a.$flySpeed0 = 0.0;
    a.$walkSpeed0 = 0.0;
}
let nms_Packet202PlayerAbilities__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet202PlayerAbilities__init_0 = () => {
    let var_0 = new nms_Packet202PlayerAbilities();
    nms_Packet202PlayerAbilities__init_(var_0);
    return var_0;
},
nms_Packet202PlayerAbilities_readPacketData = ($this, $par1DataInput) => {
    let var$2, $var2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $var2 = var$2 << 24 >> 24;
    $this.$disableDamage0 = ($var2 & 1) <= 0 ? 0 : 1;
    $this.$isFlying0 = ($var2 & 2) <= 0 ? 0 : 1;
    $this.$allowFlying0 = ($var2 & 4) <= 0 ? 0 : 1;
    $this.$isCreativeMode0 = ($var2 & 8) <= 0 ? 0 : 1;
    $this.$flySpeed0 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
    $this.$walkSpeed0 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par1DataInput));
},
nms_Packet202PlayerAbilities_writePacketData = ($this, $par1DataOutput) => {
    let $var2, var$3;
    $var2 = 0;
    if ($this.$disableDamage0)
        $var2 = 1;
    if ($this.$isFlying0)
        $var2 = ($var2 | 2) << 24 >> 24;
    if ($this.$allowFlying0)
        $var2 = ($var2 | 4) << 24 >> 24;
    if ($this.$isCreativeMode0)
        $var2 = ($var2 | 8) << 24 >> 24;
    $par1DataOutput.$out0.$write0($var2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$3 = $this.$flySpeed0;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
    var$3 = $this.$walkSpeed0;
    ji_DataOutputStream_writeInt($par1DataOutput, (isNaN(var$3) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$3));
},
nms_Packet202PlayerAbilities_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handlePlayerAbilities($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet202PlayerAbilities_getPacketSize = $this => {
    return 2;
};
function nms_Packet203AutoComplete() {
    nms_Packet.call(this);
    this.$text0 = null;
}
let nms_Packet203AutoComplete__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet203AutoComplete__init_0 = () => {
    let var_0 = new nms_Packet203AutoComplete();
    nms_Packet203AutoComplete__init_(var_0);
    return var_0;
},
nms_Packet203AutoComplete_readPacketData = ($this, $par1DataInput) => {
    $this.$text0 = nms_Packet_readString($par1DataInput, 32767);
},
nms_Packet203AutoComplete_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$text0;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length <= 32767) {
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        return;
    }
    var$2 = new ji_IOException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(2108);
    $rt_throw(var$2);
},
nms_Packet203AutoComplete_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleAutoComplete($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet203AutoComplete_getPacketSize = $this => {
    return 2 + ($this.$text0.$nativeString.length * 2 | 0) | 0;
};
function nms_Packet204ClientInfo() {
    let a = this; nms_Packet.call(a);
    a.$language = null;
    a.$renderDistance0 = 0;
    a.$chatVisisble = 0;
    a.$chatColours = 0;
    a.$gameDifficulty = 0;
    a.$showCape = 0;
}
let nms_Packet204ClientInfo__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet204ClientInfo__init_0 = () => {
    let var_0 = new nms_Packet204ClientInfo();
    nms_Packet204ClientInfo__init_(var_0);
    return var_0;
},
nms_Packet204ClientInfo_readPacketData = ($this, $par1DataInput) => {
    let var$2, $var2;
    $this.$language = nms_Packet_readString($par1DataInput, 7);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$renderDistance0 = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $var2 = var$2 << 24 >> 24;
    $this.$chatVisisble = $var2 & 7;
    $this.$chatColours = ($var2 & 8) != 8 ? 0 : 1;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $this.$gameDifficulty = var$2 << 24 >> 24;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$showCape = !var$2 ? 0 : 1;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet204ClientInfo_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleClientInfo($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet205ClientCommand() {
    nms_Packet.call(this);
    this.$forceRespawn = 0;
}
let nms_Packet205ClientCommand__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet205ClientCommand__init_0 = () => {
    let var_0 = new nms_Packet205ClientCommand();
    nms_Packet205ClientCommand__init_(var_0);
    return var_0;
},
nms_Packet205ClientCommand_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$forceRespawn = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet205ClientCommand_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleClientCommand($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet206SetObjective() {
    let a = this; nms_Packet.call(a);
    a.$objectiveName = null;
    a.$objectiveDisplayName = null;
    a.$change = 0;
}
let nms_Packet206SetObjective__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet206SetObjective__init_0 = () => {
    let var_0 = new nms_Packet206SetObjective();
    nms_Packet206SetObjective__init_(var_0);
    return var_0;
},
nms_Packet206SetObjective_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    $this.$objectiveName = nms_Packet_readString($par1DataInput, 16);
    $this.$objectiveDisplayName = nms_Packet_readString($par1DataInput, 32);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$change = var$2 << 24 >> 24;
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet206SetObjective_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    var$2 = $this.$objectiveName;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    var$2 = $this.$objectiveDisplayName;
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    var$3 = $this.$change;
    $par1DataOutput.$out0.$write0(var$3);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
},
nms_Packet206SetObjective_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet206SetObjective_getPacketSize = $this => {
    return (((2 + $this.$objectiveName.$nativeString.length | 0) + 2 | 0) + $this.$objectiveDisplayName.$nativeString.length | 0) + 1 | 0;
};
function nms_Packet207SetScore() {
    let a = this; nms_Packet.call(a);
    a.$itemName = null;
    a.$scoreName0 = null;
    a.$value14 = 0;
    a.$updateOrRemove = 0;
}
let nms_Packet207SetScore__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$itemName = $rt_s(3);
    $this.$scoreName0 = $rt_s(3);
},
nms_Packet207SetScore__init_0 = () => {
    let var_0 = new nms_Packet207SetScore();
    nms_Packet207SetScore__init_(var_0);
    return var_0;
},
nms_Packet207SetScore_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3;
    $this.$itemName = nms_Packet_readString($par1DataInput, 16);
    var$2 = $par1DataInput.$in.$read();
    if (var$2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    var$3 = var$2 << 24 >> 24;
    $this.$updateOrRemove = var$3;
    if (var$3 != 1) {
        $this.$scoreName0 = nms_Packet_readString($par1DataInput, 16);
        $this.$value14 = ji_DataInputStream_readInt($par1DataInput);
    }
},
nms_Packet207SetScore_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    var$2 = $this.$itemName;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    var$3 = $this.$updateOrRemove;
    $par1DataOutput.$out0.$write0(var$3);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    if ($this.$updateOrRemove != 1) {
        var$2 = $this.$scoreName0;
        if (var$2.$nativeString.length > 32767) {
            var$2 = new ji_IOException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(2108);
            $rt_throw(var$2);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        ji_DataOutputStream_writeInt($par1DataOutput, $this.$value14);
    }
},
nms_Packet207SetScore_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet207SetScore_getPacketSize = $this => {
    let var$1, var$2;
    var$1 = $this.$itemName;
    var$2 = (2 + (var$1 === null ? 0 : var$1.$nativeString.length) | 0) + 2 | 0;
    var$1 = $this.$scoreName0;
    return ((var$2 + (var$1 === null ? 0 : var$1.$nativeString.length) | 0) + 4 | 0) + 1 | 0;
};
function nms_Packet208SetDisplayObjective() {
    let a = this; nms_Packet.call(a);
    a.$scoreboardPosition = 0;
    a.$scoreName = null;
}
let nms_Packet208SetDisplayObjective__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet208SetDisplayObjective__init_0 = () => {
    let var_0 = new nms_Packet208SetDisplayObjective();
    nms_Packet208SetDisplayObjective__init_(var_0);
    return var_0;
},
nms_Packet208SetDisplayObjective_readPacketData = ($this, $par1DataInput) => {
    let var$2;
    var$2 = $par1DataInput.$in.$read();
    if (var$2 >= 0) {
        $this.$scoreboardPosition = var$2 << 24 >> 24;
        $this.$scoreName = nms_Packet_readString($par1DataInput, 16);
        return;
    }
    $par1DataInput = new ji_EOFException;
    $par1DataInput.$suppressionEnabled = 1;
    $par1DataInput.$writableStackTrace = 1;
    $rt_throw($par1DataInput);
},
nms_Packet208SetDisplayObjective_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3;
    var$2 = $this.$scoreboardPosition;
    $par1DataOutput.$out0.$write0(var$2);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$3 = $this.$scoreName;
    nms_Packet_$callClinit();
    if (var$3.$nativeString.length <= 32767) {
        ji_DataOutputStream_writeShort($par1DataOutput, var$3.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$3);
        return;
    }
    var$3 = new ji_IOException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    var$3.$message = $rt_s(2108);
    $rt_throw(var$3);
},
nms_Packet208SetDisplayObjective_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet208SetDisplayObjective_getPacketSize = $this => {
    return 3 + $this.$scoreName.$nativeString.length | 0;
};
function nms_Packet209SetPlayerTeam() {
    let a = this; nms_Packet.call(a);
    a.$teamName = null;
    a.$teamDisplayName = null;
    a.$teamPrefix = null;
    a.$teamSuffix = null;
    a.$playerNames = null;
    a.$mode4 = 0;
    a.$friendlyFire = 0;
}
let nms_Packet209SetPlayerTeam__init_1 = $this => {
    let var$1;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$teamName = $rt_s(3);
    $this.$teamDisplayName = $rt_s(3);
    $this.$teamPrefix = $rt_s(3);
    $this.$teamSuffix = $rt_s(3);
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$playerNames = var$1;
},
nms_Packet209SetPlayerTeam__init_4 = () => {
    let var_0 = new nms_Packet209SetPlayerTeam();
    nms_Packet209SetPlayerTeam__init_1(var_0);
    return var_0;
},
nms_Packet209SetPlayerTeam__init_2 = ($this, $par1ScorePlayerTeam, $par2) => {
    let var$3, var$4, var$5, var$6;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$teamName = $rt_s(3);
    $this.$teamDisplayName = $rt_s(3);
    $this.$teamPrefix = $rt_s(3);
    $this.$teamSuffix = $rt_s(3);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$playerNames = var$3;
    $this.$teamName = $par1ScorePlayerTeam.$field_96675_b;
    $this.$mode4 = $par2;
    if (!($par2 && $par2 != 2)) {
        $this.$teamDisplayName = $par1ScorePlayerTeam.$field_96673_d;
        $this.$teamPrefix = $par1ScorePlayerTeam.$field_96674_e;
        $this.$teamSuffix = $par1ScorePlayerTeam.$colorSuffix;
        var$4 = 0;
        if ($par1ScorePlayerTeam.$allowFriendlyFire)
            var$4 = 1;
        if ($par1ScorePlayerTeam.$field_98301_h)
            var$4 = var$4 | 2;
        $this.$friendlyFire = var$4;
    }
    if (!$par2) {
        var$5 = $par1ScorePlayerTeam.$membershipSet.$backingMap;
        if (var$5.$cachedKeySet === null) {
            $par1ScorePlayerTeam = new ju_HashMap$1;
            $par1ScorePlayerTeam.$this$0 = var$5;
            var$5.$cachedKeySet = $par1ScorePlayerTeam;
        }
        $par1ScorePlayerTeam = var$5.$cachedKeySet.$iterator();
        while ($par1ScorePlayerTeam.$hasNext()) {
            var$5 = $par1ScorePlayerTeam.$next();
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$6 = var$3.$array.data;
            var$4 = var$3.$size0;
            var$3.$size0 = var$4 + 1 | 0;
            var$6[var$4] = var$5;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
    }
},
nms_Packet209SetPlayerTeam__init_ = (var_0, var_1) => {
    let var_2 = new nms_Packet209SetPlayerTeam();
    nms_Packet209SetPlayerTeam__init_2(var_2, var_0, var_1);
    return var_2;
},
nms_Packet209SetPlayerTeam__init_0 = ($this, $par1ScorePlayerTeam, $par2Collection, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$teamName = $rt_s(3);
    $this.$teamDisplayName = $rt_s(3);
    $this.$teamPrefix = $rt_s(3);
    $this.$teamSuffix = $rt_s(3);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $this.$playerNames = var$4;
    if ($par3 != 3 && $par3 != 4) {
        $par1ScorePlayerTeam = new jl_IllegalArgumentException;
        $par1ScorePlayerTeam.$suppressionEnabled = 1;
        $par1ScorePlayerTeam.$writableStackTrace = 1;
        $par1ScorePlayerTeam.$message = $rt_s(2115);
        $rt_throw($par1ScorePlayerTeam);
    }
    if ($par2Collection !== null && !($par2Collection.$array1.data.length ? 0 : 1)) {
        $this.$mode4 = $par3;
        $this.$teamName = $par1ScorePlayerTeam.$field_96675_b;
        var$5 = 0;
        var$6 = $par2Collection.$modCount;
        var$7 = $par2Collection.$size();
        while (var$5 >= var$7 ? 0 : 1) {
            if (var$6 < $par2Collection.$modCount) {
                $par1ScorePlayerTeam = new ju_ConcurrentModificationException;
                $par1ScorePlayerTeam.$suppressionEnabled = 1;
                $par1ScorePlayerTeam.$writableStackTrace = 1;
                $rt_throw($par1ScorePlayerTeam);
            }
            var$8 = var$5 + 1 | 0;
            $par1ScorePlayerTeam = $par2Collection.$get(var$5);
            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
            var$9 = var$4.$array.data;
            $par3 = var$4.$size0;
            var$4.$size0 = $par3 + 1 | 0;
            var$9[$par3] = $par1ScorePlayerTeam;
            var$4.$modCount = var$4.$modCount + 1 | 0;
            var$5 = var$8;
        }
        return;
    }
    $par1ScorePlayerTeam = new jl_IllegalArgumentException;
    $par1ScorePlayerTeam.$suppressionEnabled = 1;
    $par1ScorePlayerTeam.$writableStackTrace = 1;
    $par1ScorePlayerTeam.$message = $rt_s(2116);
    $rt_throw($par1ScorePlayerTeam);
},
nms_Packet209SetPlayerTeam__init_3 = (var_0, var_1, var_2) => {
    let var_3 = new nms_Packet209SetPlayerTeam();
    nms_Packet209SetPlayerTeam__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_Packet209SetPlayerTeam_readPacketData = ($this, $par1DataInput) => {
    let $var2, $var3, var$4, var$5, var$6, var$7;
    $this.$teamName = nms_Packet_readString($par1DataInput, 16);
    $var2 = $par1DataInput.$in.$read();
    if ($var2 < 0) {
        $par1DataInput = new ji_EOFException;
        $par1DataInput.$suppressionEnabled = 1;
        $par1DataInput.$writableStackTrace = 1;
        $rt_throw($par1DataInput);
    }
    $var3 = $var2 << 24 >> 24;
    $this.$mode4 = $var3;
    if (!($var3 && $var3 != 2)) {
        $this.$teamDisplayName = nms_Packet_readString($par1DataInput, 32);
        $this.$teamPrefix = nms_Packet_readString($par1DataInput, 16);
        $this.$teamSuffix = nms_Packet_readString($par1DataInput, 16);
        $var2 = $par1DataInput.$in.$read();
        if ($var2 < 0) {
            $par1DataInput = new ji_EOFException;
            $par1DataInput.$suppressionEnabled = 1;
            $par1DataInput.$writableStackTrace = 1;
            $rt_throw($par1DataInput);
        }
        $this.$friendlyFire = $var2 << 24 >> 24;
    }
    a: {
        $var2 = $this.$mode4;
        if (!($var2 && $var2 != 3 && $var2 != 4)) {
            $var2 = ji_DataInputStream_readShort($par1DataInput);
            $var3 = 0;
            while (true) {
                if ($var3 >= $var2)
                    break a;
                var$4 = $this.$playerNames;
                var$5 = nms_Packet_readString($par1DataInput, 16);
                ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                var$6 = var$4.$array.data;
                var$7 = var$4.$size0;
                var$4.$size0 = var$7 + 1 | 0;
                var$6[var$7] = var$5;
                var$4.$modCount = var$4.$modCount + 1 | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
},
nms_Packet209SetPlayerTeam_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, $var2$index, var$5, var$6, $var2$index_0, $var3;
    var$2 = $this.$teamName;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    var$3 = $this.$mode4;
    $par1DataOutput.$out0.$write0(var$3);
    $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    var$3 = $this.$mode4;
    if (!(var$3 && var$3 != 2)) {
        var$2 = $this.$teamDisplayName;
        if (var$2.$nativeString.length > 32767) {
            var$2 = new ji_IOException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(2108);
            $rt_throw(var$2);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        var$2 = $this.$teamPrefix;
        if (var$2.$nativeString.length > 32767) {
            var$2 = new ji_IOException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(2108);
            $rt_throw(var$2);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        var$2 = $this.$teamSuffix;
        if (var$2.$nativeString.length > 32767) {
            var$2 = new ji_IOException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(2108);
            $rt_throw(var$2);
        }
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        var$3 = $this.$friendlyFire;
        $par1DataOutput.$out0.$write0(var$3);
        $par1DataOutput.$written = $par1DataOutput.$written + 1 | 0;
    }
    a: {
        var$3 = $this.$mode4;
        if (!(var$3 && var$3 != 3 && var$3 != 4)) {
            ji_DataOutputStream_writeShort($par1DataOutput, $this.$playerNames.$size0);
            var$2 = $this.$playerNames;
            $var2$index = 0;
            var$5 = var$2.$modCount;
            var$6 = var$2.$size();
            while (true) {
                if (!($var2$index >= var$6 ? 0 : 1))
                    break a;
                if (var$5 < var$2.$modCount) {
                    $par1DataOutput = new ju_ConcurrentModificationException;
                    $par1DataOutput.$suppressionEnabled = 1;
                    $par1DataOutput.$writableStackTrace = 1;
                    $rt_throw($par1DataOutput);
                }
                $var2$index_0 = $var2$index + 1 | 0;
                $var3 = var$2.$get($var2$index);
                if ($var3.$nativeString.length > 32767) {
                    var$2 = new ji_IOException;
                    var$2.$suppressionEnabled = 1;
                    var$2.$writableStackTrace = 1;
                    var$2.$message = $rt_s(2108);
                    $rt_throw(var$2);
                }
                ji_DataOutputStream_writeShort($par1DataOutput, $var3.$nativeString.length);
                ji_DataOutputStream_writeChars($par1DataOutput, $var3);
                $var2$index = $var2$index_0;
            }
        }
    }
},
nms_Packet209SetPlayerTeam_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet209SetPlayerTeam_getPacketSize = $this => {
    return 3 + $this.$teamName.$nativeString.length | 0;
};
function nms_Packet250CustomPayload() {
    let a = this; nms_Packet.call(a);
    a.$channel1 = null;
    a.$length7 = 0;
    a.$data10 = null;
}
let nms_Packet250CustomPayload__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet250CustomPayload__init_2 = () => {
    let var_0 = new nms_Packet250CustomPayload();
    nms_Packet250CustomPayload__init_(var_0);
    return var_0;
},
nms_Packet250CustomPayload__init_1 = ($this, $par1Str, $par2ArrayOfByte) => {
    let var$3, var$4;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$channel1 = $par1Str;
    $this.$data10 = $par2ArrayOfByte;
    if ($par2ArrayOfByte !== null) {
        var$3 = $par2ArrayOfByte.data.length;
        $this.$length7 = var$3;
        if (var$3 > 32767) {
            var$4 = new jl_IllegalArgumentException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            var$4.$message = $rt_s(2117);
            $rt_throw(var$4);
        }
    }
},
nms_Packet250CustomPayload__init_0 = (var_0, var_1) => {
    let var_2 = new nms_Packet250CustomPayload();
    nms_Packet250CustomPayload__init_1(var_2, var_0, var_1);
    return var_2;
},
nms_Packet250CustomPayload_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4;
    $this.$channel1 = nms_Packet_readString($par1DataInput, 20);
    var$2 = ji_DataInputStream_readShort($par1DataInput);
    $this.$length7 = var$2;
    if (var$2 > 0 && var$2 < 32767) {
        var$3 = $rt_createByteArray(var$2);
        var$4 = var$3.data;
        $this.$data10 = var$3;
        ji_DataInputStream_readFully($par1DataInput, var$3, 0, var$4.length);
    }
},
nms_Packet250CustomPayload_writePacketData = ($this, $par1DataOutput) => {
    let var$2, var$3, var$4;
    var$2 = $this.$channel1;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length > 32767) {
        var$2 = new ji_IOException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2108);
        $rt_throw(var$2);
    }
    ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
    ji_DataOutputStream_writeChars($par1DataOutput, var$2);
    ji_DataOutputStream_writeShort($par1DataOutput, $this.$length7 << 16 >> 16);
    var$3 = $this.$data10;
    if (var$3 !== null) {
        var$4 = var$3.data.length;
        $par1DataOutput.$out0.$write1(var$3, 0, var$4);
        $par1DataOutput.$written = $par1DataOutput.$written + var$4 | 0;
    }
},
nms_Packet250CustomPayload_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleCustomPayload($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet250CustomPayload_getPacketSize = $this => {
    return ((2 + ($this.$channel1.$nativeString.length * 2 | 0) | 0) + 2 | 0) + $this.$length7 | 0;
};
function nms_Packet252SharedKey() {
    let a = this; nms_Packet.call(a);
    a.$sharedSecret = null;
    a.$verifyToken = null;
}
let nms_Packet252SharedKey__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$sharedSecret = $rt_createByteArray(0);
    $this.$verifyToken = $rt_createByteArray(0);
},
nms_Packet252SharedKey__init_0 = () => {
    let var_0 = new nms_Packet252SharedKey();
    nms_Packet252SharedKey__init_(var_0);
    return var_0;
},
nms_Packet252SharedKey_readPacketData = ($this, $par1DataInput) => {
    let var$2, var$3, var$4;
    nms_Packet_$callClinit();
    var$2 = ji_DataInputStream_readShort($par1DataInput);
    if (var$2 < 0) {
        var$3 = new ji_IOException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        var$3.$message = $rt_s(2118);
        $rt_throw(var$3);
    }
    var$4 = $rt_createByteArray(var$2);
    ji_DataInputStream_readFully($par1DataInput, var$4, 0, var$4.data.length);
    $this.$sharedSecret = var$4;
    var$2 = ji_DataInputStream_readShort($par1DataInput);
    if (var$2 >= 0) {
        var$4 = $rt_createByteArray(var$2);
        ji_DataInputStream_readFully($par1DataInput, var$4, 0, var$4.data.length);
        $this.$verifyToken = var$4;
        return;
    }
    var$3 = new ji_IOException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    var$3.$message = $rt_s(2118);
    $rt_throw(var$3);
},
nms_Packet252SharedKey_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$unexpectedPacket($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
};
function nms_Packet254ServerPing() {
    let a = this; nms_Packet.call(a);
    a.$readSuccessfully = 0;
    a.$field_140052_b = null;
    a.$field_140053_c = 0;
}
let nms_Packet254ServerPing_field_140051_d = 0,
nms_Packet254ServerPing_$callClinit = () => {
    nms_Packet254ServerPing_$callClinit = $rt_eraseClinit(nms_Packet254ServerPing);
    nms_Packet254ServerPing__clinit_();
},
nms_Packet254ServerPing__init_ = $this => {
    nms_Packet254ServerPing_$callClinit();
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet254ServerPing__init_0 = () => {
    let var_0 = new nms_Packet254ServerPing();
    nms_Packet254ServerPing__init_(var_0);
    return var_0;
},
nms_Packet254ServerPing_readPacketData = ($this, $par1DataInput) => {
    let var$2, $$je;
    a: {
        try {
            $this.$readSuccessfully = ji_DataInputStream_readByte($par1DataInput);
            b: {
                try {
                    ji_DataInputStream_readByte($par1DataInput);
                    nms_Packet_readString($par1DataInput, 255);
                    ji_DataInputStream_readShort($par1DataInput);
                    var$2 = ji_DataInputStream_readByte($par1DataInput);
                    $this.$readSuccessfully = var$2;
                    if (var$2 >= 73) {
                        $this.$field_140052_b = nms_Packet_readString($par1DataInput, 255);
                        $this.$field_140053_c = ji_DataInputStream_readInt($par1DataInput);
                    }
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
                $this.$field_140052_b = $rt_s(3);
            }
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
        $this.$readSuccessfully = 0;
        $this.$field_140052_b = $rt_s(3);
    }
},
nms_Packet254ServerPing_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleServerPing($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet254ServerPing__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new nms_Packet250CustomPayload;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$2 = nms_Packet_packetClassToIdMap;
    var$3 = var$1.constructor;
    if (var$3 === null)
        var$1 = null;
    else {
        var$1 = var$3.classObject;
        if (var$1 === null) {
            var$1 = new jl_Class;
            var$1.$platformClass = var$3;
            var$3.classObject = var$1;
        }
    }
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$3 = var$1;
        if (!var$3.$id$)
            var$3.$id$ = $rt_nextId();
        var$4 = var$1.$id$;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !(var$1 !== var$3 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    nms_Packet254ServerPing_field_140051_d = (var$2 === null ? null : var$2.$value0).$value;
};
function nms_Packet255KickDisconnect() {
    nms_Packet.call(this);
    this.$reason = null;
}
let nms_Packet255KickDisconnect__init_ = $this => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
},
nms_Packet255KickDisconnect__init_2 = () => {
    let var_0 = new nms_Packet255KickDisconnect();
    nms_Packet255KickDisconnect__init_(var_0);
    return var_0;
},
nms_Packet255KickDisconnect__init_1 = ($this, $par1Str) => {
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    $this.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    $this.$reason = $par1Str;
},
nms_Packet255KickDisconnect__init_0 = var_0 => {
    let var_1 = new nms_Packet255KickDisconnect();
    nms_Packet255KickDisconnect__init_1(var_1, var_0);
    return var_1;
},
nms_Packet255KickDisconnect_readPacketData = ($this, $par1DataInput) => {
    $this.$reason = nms_Packet_readString($par1DataInput, 256);
},
nms_Packet255KickDisconnect_writePacketData = ($this, $par1DataOutput) => {
    let var$2;
    var$2 = $this.$reason;
    nms_Packet_$callClinit();
    if (var$2.$nativeString.length <= 32767) {
        ji_DataOutputStream_writeShort($par1DataOutput, var$2.$nativeString.length);
        ji_DataOutputStream_writeChars($par1DataOutput, var$2);
        return;
    }
    var$2 = new ji_IOException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(2108);
    $rt_throw(var$2);
},
nms_Packet255KickDisconnect_processPacket = ($this, $par1NetHandler) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1NetHandler = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $par1NetHandler.$handleKickDisconnect($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NetHandler, $ptr);
},
nms_Packet255KickDisconnect_getPacketSize = $this => {
    return $this.$reason.$nativeString.length;
},
nms_WorldProviderHell = $rt_classWithoutFields(nms_WorldProvider),
nms_WorldProviderHell__init_ = $this => {
    $this.$lightBrightnessTable = $rt_createFloatArray(16);
    $this.$colorsSunriseSunset = $rt_createFloatArray(4);
},
nms_WorldProviderHell__init_0 = () => {
    let var_0 = new nms_WorldProviderHell();
    nms_WorldProviderHell__init_(var_0);
    return var_0;
},
nms_WorldProviderHell_registerWorldChunkManager = $this => {
    let var$1, var$2;
    var$1 = new nms_WorldChunkManagerHell;
    nms_BiomeGenBase_$callClinit();
    var$2 = nms_BiomeGenBase_hell;
    nms_WorldChunkManager__init_(var$1);
    var$1.$biomeToUse = var$2;
    var$1.$hellTemperature = 1.0;
    var$1.$rainfall0 = 0.0;
    $this.$worldChunkMgr = var$1;
    $this.$isHellWorld = 1;
    $this.$hasNoSky = 1;
    $this.$dimensionId = (-1);
},
nms_WorldProviderHell_generateLightBrightnessTable = $this => {
    let $var2, $var3;
    $var2 = 0;
    while ($var2 <= 15) {
        $var3 = 1.0 - $var2 / 15.0;
        $this.$lightBrightnessTable.data[$var2] = (1.0 - $var3) / ($var3 * 3.0 + 1.0) * 0.8999999761581421 + 0.10000000149011612;
        $var2 = $var2 + 1 | 0;
    }
},
nms_WorldProviderHell_createChunkGenerator = $this => {
    let var$1, var$2;
    var$1 = new nms_ChunkProviderHell;
    var$2 = $this.$worldObj15;
    nms_ChunkProviderHell__init_(var$1, var$2, var$2.$worldInfo.$getSeed());
    return var$1;
},
nms_WorldProviderHell_isSurfaceWorld = $this => {
    return 0;
},
nms_WorldProviderHell_canCoordinateBeSpawn = ($this, $par1, $par2) => {
    return 0;
},
nms_WorldProviderHell_calculateCelestialAngle = ($this, $par1, $par3) => {
    return 0.5;
},
nms_WorldProviderHell_canRespawnHere = $this => {
    return 0;
},
nms_WorldProviderHell_getDimensionName = $this => {
    return $rt_s(2119);
},
nms_WorldProviderSurface = $rt_classWithoutFields(nms_WorldProvider),
nms_WorldProviderSurface__init_ = $this => {
    $this.$lightBrightnessTable = $rt_createFloatArray(16);
    $this.$colorsSunriseSunset = $rt_createFloatArray(4);
},
nms_WorldProviderSurface__init_0 = () => {
    let var_0 = new nms_WorldProviderSurface();
    nms_WorldProviderSurface__init_(var_0);
    return var_0;
},
nms_WorldProviderSurface_getDimensionName = $this => {
    return $rt_s(2120);
},
nms_WorldProviderEnd = $rt_classWithoutFields(nms_WorldProvider),
nms_WorldProviderEnd__init_ = $this => {
    $this.$lightBrightnessTable = $rt_createFloatArray(16);
    $this.$colorsSunriseSunset = $rt_createFloatArray(4);
},
nms_WorldProviderEnd__init_0 = () => {
    let var_0 = new nms_WorldProviderEnd();
    nms_WorldProviderEnd__init_(var_0);
    return var_0;
},
nms_WorldProviderEnd_registerWorldChunkManager = $this => {
    let var$1, var$2;
    var$1 = new nms_WorldChunkManagerHell;
    nms_BiomeGenBase_$callClinit();
    var$2 = nms_BiomeGenBase_sky;
    nms_WorldChunkManager__init_(var$1);
    var$1.$biomeToUse = var$2;
    var$1.$hellTemperature = 0.5;
    var$1.$rainfall0 = 0.0;
    $this.$worldChunkMgr = var$1;
    $this.$dimensionId = 1;
    $this.$hasNoSky = 1;
},
nms_WorldProviderEnd_createChunkGenerator = $this => {
    let var$1, var$2;
    var$1 = new nms_ChunkProviderEnd;
    var$2 = $this.$worldObj15;
    nms_ChunkProviderEnd__init_(var$1, var$2, var$2.$worldInfo.$getSeed());
    return var$1;
},
nms_WorldProviderEnd_calculateCelestialAngle = ($this, $par1, $par3) => {
    return 0.0;
},
nms_WorldProviderEnd_canRespawnHere = $this => {
    return 0;
},
nms_WorldProviderEnd_isSurfaceWorld = $this => {
    return 0;
},
nms_WorldProviderEnd_canCoordinateBeSpawn = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$worldObj15;
        $var3 = 63;
        var$5 = $var3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$3, $par1, var$5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1) {
            $ptr = 2;
            continue main;
        }
        $var3 = var$5;
        var$5 = $var3 + 1 | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$3, $par1, $var3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if (!$var3)
            $par1 = 0;
        else {
            nms_Block_$callClinit();
            $par1 = nms_Block_blocksList.data[$var3].$blockMaterial.$blocksMovement();
        }
        return $par1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $var3, var$5, var$6, $ptr);
},
nms_WorldProviderEnd_getEntrancePortalLocation = $this => {
    let var$1;
    var$1 = new nms_ChunkCoordinates;
    var$1.$posX0 = 100;
    var$1.$posY0 = 50;
    var$1.$posZ0 = 0;
    return var$1;
},
nms_WorldProviderEnd_getAverageGroundLevel = $this => {
    return 50;
},
nms_WorldProviderEnd_getDimensionName = $this => {
    return $rt_s(2121);
};
function nms_VillageSiege() {
    let a = this; jl_Object.call(a);
    a.$worldObj12 = null;
    a.$field_75535_b = 0;
    a.$field_75536_c = 0;
    a.$field_75533_d = 0;
    a.$field_75534_e = 0;
    a.$theVillage = null;
    a.$field_75532_g = 0;
    a.$field_75538_h = 0;
    a.$field_75539_i = 0;
}
let nms_VillageSiege_tick = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj12;
        if (var$1.$skylightSubtracted >= 4 ? 0 : 1) {
            $this.$field_75536_c = 0;
            return;
        }
        var$2 = $this.$field_75536_c;
        if (var$2 == 2)
            return;
        a: {
            if (!var$2) {
                var$3 = var$1.$provider.$calculateCelestialAngle(var$1.$worldInfo.$getWorldTime(), 0.0);
                if (var$3 >= 0.5 && var$3 <= 0.501) {
                    var$1 = $this.$worldObj12.$rand0;
                    var$4 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                    while (true) {
                        var$6 = var$5 % 10 | 0;
                        if (((var$5 - var$6 | 0) + 9 | 0) >= 0)
                            break;
                        var$4 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1.$seed = var$4;
                        var$5 = Long_lo(Long_shru(var$4, 17));
                    }
                    var$7 = var$6 ? 2 : 1;
                    $this.$field_75536_c = var$7;
                    $this.$field_75535_b = 0;
                    if (var$7 != 2)
                        break a;
                    return;
                }
                return;
            }
        }
        if (!$this.$field_75535_b) {
            $ptr = 1;
            continue main;
        }
        var$7 = $this.$field_75534_e;
        if (var$7 > 0)
            $this.$field_75534_e = var$7 - 1 | 0;
        else {
            $this.$field_75534_e = 2;
            if ($this.$field_75533_d > 0) {
                $ptr = 2;
                continue main;
            }
            $this.$field_75536_c = 2;
        }
        return;
    case 1:
        $tmp = nms_VillageSiege_func_75529_b($this);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7)
            return;
        $this.$field_75535_b = 1;
        var$7 = $this.$field_75534_e;
        if (var$7 > 0)
            $this.$field_75534_e = var$7 - 1 | 0;
        else {
            $this.$field_75534_e = 2;
            if ($this.$field_75533_d > 0) {
                $ptr = 2;
                continue main;
            }
            $this.$field_75536_c = 2;
        }
        return;
    case 2:
        nms_VillageSiege_spawnZombie($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_75533_d = $this.$field_75533_d - 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_VillageSiege_func_75529_b = $this => {
    let $var1, $var2$index, var$3, var$4, var$5, $var2$index_0, $var3, $var4, $var5, $var6, $var7, $var9, var$13, var$14, var$15, $var8$index, var$17, var$18, var$19, $var8$index_0, var$21, $var10, var$23, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var10 = $thread.pop();var$21 = $thread.pop();$var8$index_0 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var8$index = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2$index_0 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3
        = $thread.pop();$var2$index = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$worldObj12.$playerEntities;
        $var2$index = 0;
        var$3 = $var1.$modCount;
        var$4 = $var1.$size();
        var$5 = 24;
        while ($var2$index >= var$4 ? 0 : 1) {
            if (var$3 < $var1.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var2$index_0 = $var2$index + 1 | 0;
            $var3 = $var1.$get($var2$index);
            $var3 = nms_VillageCollection_findNearestVillage($this.$worldObj12.$villageCollectionObj, $var3.$posX | 0, $var3.$posY | 0, $var3.$posZ | 0, 1);
            $this.$theVillage = $var3;
            if ($var3 !== null && $var3.$villageDoorInfoList.$size0 >= 10 && ($var3.$tickCounter1 - $var3.$lastAddDoorTimestamp | 0) >= 20 && $var3.$numVillagers >= 20) {
                $var4 = $var3.$center;
                $var5 = $var3.$villageRadius;
                $var6 = 0;
                $var7 = 0;
                a: {
                    while ($var7 < 10) {
                        $var2$index = $var4.$posX0;
                        $var3 = $this.$worldObj12;
                        $var9 = $var3.$rand0;
                        var$13 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var9.$seed = var$13;
                        var$14 = Long_lo(Long_shru(var$13, var$5)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                        var$15 = nms_MathHelper_SIN_TABLE.data;
                        $this.$field_75532_g = $var2$index + (var$15[(var$14 * 10430.3779296875 + 16384.0 | 0) & 65535] * $var5 * 0.9 | 0) | 0;
                        $this.$field_75538_h = $var4.$posY0;
                        $var8$index = $var4.$posZ0;
                        var$17 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var9.$seed = var$17;
                        $this.$field_75539_i = $var8$index + (var$15[(Long_lo(Long_shru(var$17, var$5)) / 1.6777216E7 * 3.1415927410125732 * 2.0 * 10430.3779296875 | 0) & 65535] * $var5 * 0.9 | 0) | 0;
                        $var6 = 0;
                        $var3 = $var3.$villageCollectionObj.$villageList;
                        $var8$index = 0;
                        var$18 = $var3.$modCount;
                        var$19 = $var3.$size();
                        b: {
                            while ($var8$index >= var$19 ? 0 : 1) {
                                if (var$18 < $var3.$modCount) {
                                    $var1 = new ju_ConcurrentModificationException;
                                    $var1.$suppressionEnabled = 1;
                                    $var1.$writableStackTrace = 1;
                                    $rt_throw($var1);
                                }
                                $var8$index_0 = $var8$index + 1 | 0;
                                $var9 = $var3.$get($var8$index);
                                if ($var9 !== $this.$theVillage) {
                                    $var8$index = $this.$field_75532_g;
                                    $var2$index = $this.$field_75538_h;
                                    var$21 = $this.$field_75539_i;
                                    $var10 = $var9.$center;
                                    var$14 = $var10.$posX0 - $var8$index | 0;
                                    var$23 = $var10.$posY0 - $var2$index | 0;
                                    var$24 = $var10.$posZ0 - var$21 | 0;
                                    var$23 = var$14 * var$14 + var$23 * var$23 + var$24 * var$24;
                                    $var8$index = $var9.$villageRadius;
                                    if (var$23 >= $rt_imul($var8$index, $var8$index) ? 0 : 1) {
                                        $var6 = 1;
                                        break b;
                                    }
                                }
                                $var8$index = $var8$index_0;
                            }
                        }
                        if (!$var6)
                            break a;
                        $var7 = $var7 + 1 | 0;
                    }
                }
                if ($var6)
                    return 0;
                $var8$index = $this.$field_75532_g;
                $var2$index = $this.$field_75538_h;
                $var6 = $this.$field_75539_i;
                $ptr = 1;
                continue main;
            }
            $var2$index = $var2$index_0;
        }
        return 0;
    case 1:
        $tmp = nms_VillageSiege_func_75527_a($this, $var8$index, $var2$index, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 !== null) {
            $this.$field_75534_e = 0;
            $this.$field_75533_d = 20;
            return 1;
        }
        while (true) {
            $var2$index = $var2$index_0;
            if (!($var2$index >= var$4 ? 0 : 1))
                break;
            if (var$3 < $var1.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var2$index_0 = $var2$index + 1 | 0;
            $var3 = $var1.$get($var2$index);
            $var3 = nms_VillageCollection_findNearestVillage($this.$worldObj12.$villageCollectionObj, $var3.$posX | 0, $var3.$posY | 0, $var3.$posZ | 0, 1);
            $this.$theVillage = $var3;
            if ($var3 === null)
                continue;
            if ($var3.$villageDoorInfoList.$size0 < 10)
                continue;
            if (($var3.$tickCounter1 - $var3.$lastAddDoorTimestamp | 0) < 20)
                continue;
            if ($var3.$numVillagers < 20)
                continue;
            else {
                $var4 = $var3.$center;
                $var5 = $var3.$villageRadius;
                $var6 = 0;
                $var7 = 0;
                a: {
                    while ($var7 < 10) {
                        $var2$index = $var4.$posX0;
                        $var3 = $this.$worldObj12;
                        $var9 = $var3.$rand0;
                        var$13 = Long_and(Long_add(Long_mul($var9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var9.$seed = var$13;
                        var$14 = Long_lo(Long_shru(var$13, var$5)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                        var$15 = nms_MathHelper_SIN_TABLE.data;
                        $this.$field_75532_g = $var2$index + (var$15[(var$14 * 10430.3779296875 + 16384.0 | 0) & 65535] * $var5 * 0.9 | 0) | 0;
                        $this.$field_75538_h = $var4.$posY0;
                        $var8$index = $var4.$posZ0;
                        var$17 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var9.$seed = var$17;
                        $this.$field_75539_i = $var8$index + (var$15[(Long_lo(Long_shru(var$17, var$5)) / 1.6777216E7 * 3.1415927410125732 * 2.0 * 10430.3779296875 | 0) & 65535] * $var5 * 0.9 | 0) | 0;
                        $var6 = 0;
                        $var3 = $var3.$villageCollectionObj.$villageList;
                        $var8$index = 0;
                        var$18 = $var3.$modCount;
                        var$19 = $var3.$size();
                        b: {
                            while ($var8$index >= var$19 ? 0 : 1) {
                                if (var$18 < $var3.$modCount) {
                                    $var1 = new ju_ConcurrentModificationException;
                                    $var1.$suppressionEnabled = 1;
                                    $var1.$writableStackTrace = 1;
                                    $rt_throw($var1);
                                }
                                $var8$index_0 = $var8$index + 1 | 0;
                                $var9 = $var3.$get($var8$index);
                                if ($var9 !== $this.$theVillage) {
                                    $var8$index = $this.$field_75532_g;
                                    $var2$index = $this.$field_75538_h;
                                    var$21 = $this.$field_75539_i;
                                    $var10 = $var9.$center;
                                    var$14 = $var10.$posX0 - $var8$index | 0;
                                    var$23 = $var10.$posY0 - $var2$index | 0;
                                    var$24 = $var10.$posZ0 - var$21 | 0;
                                    var$23 = var$14 * var$14 + var$23 * var$23 + var$24 * var$24;
                                    $var8$index = $var9.$villageRadius;
                                    if (var$23 >= $rt_imul($var8$index, $var8$index) ? 0 : 1) {
                                        $var6 = 1;
                                        break b;
                                    }
                                }
                                $var8$index = $var8$index_0;
                            }
                        }
                        if (!$var6)
                            break a;
                        $var7 = $var7 + 1 | 0;
                    }
                }
                if ($var6)
                    return 0;
                $var8$index = $this.$field_75532_g;
                $var2$index = $this.$field_75538_h;
                $var6 = $this.$field_75539_i;
                continue main;
            }
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2$index, var$3, var$4, var$5, $var2$index_0, $var3, $var4, $var5, $var6, $var7, $var9, var$13, var$14, var$15, $var8$index, var$17, var$18, var$19, $var8$index_0, var$21, $var10, var$23, var$24, $ptr);
},
nms_VillageSiege_spawnZombie = $this => {
    let var$1, var$2, var$3, $var1, $var2, $var3, $var4, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$field_75532_g;
        var$2 = $this.$field_75538_h;
        var$3 = $this.$field_75539_i;
        $ptr = 1;
    case 1:
        $tmp = nms_VillageSiege_func_75527_a($this, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        try {
            $var2 = nms_EntityZombie__init_($this.$worldObj12);
            $var3 = null;
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var4 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $var1 = new otcic_JSStderrPrintStream;
            $var2 = new ji_ByteArrayOutputStream;
            $var2.$buf = $rt_createByteArray(32);
            jl_Object__init_($var1);
            $var1.$out0 = $var2;
            $var2 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var2, 16);
            $var1.$sb = $var2;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var1;
        }
        jl_Throwable_printStackTrace($var4, jl_System_errCache);
        return 0;
    case 2:
        a: {
            try {
                nms_EntityZombie_onSpawnWithEgg($var2, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                nms_EntityZombie_setVillager($var2, 0);
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var1 = new otcic_JSStderrPrintStream;
                $var2 = new ji_ByteArrayOutputStream;
                $var2.$buf = $rt_createByteArray(32);
                jl_Object__init_($var1);
                $var1.$out0 = $var2;
                $var2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var2, 16);
                $var1.$sb = $var2;
                $var1.$buffer0 = $rt_createCharArray(32);
                $var1.$autoFlush = 0;
                $var1.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var1;
            }
            jl_Throwable_printStackTrace($var4, jl_System_errCache);
            return 0;
        }
        var$8 = $var1.$xCoord;
        var$9 = $var1.$yCoord;
        var$10 = $var1.$zCoord;
        $var1 = $this.$worldObj12.$rand0;
        var$11 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var1.$seed = var$11;
        var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7 * 360.0;
        $var2.$posX = var$8;
        $var2.$prevPosX = var$8;
        $var2.$lastTickPosX = var$8;
        var$9 = var$9 + $var2.$yOffset;
        $var2.$posY = var$9;
        $var2.$prevPosY = var$9;
        $var2.$lastTickPosY = var$9;
        $var2.$posZ = var$10;
        $var2.$prevPosZ = var$10;
        $var2.$lastTickPosZ = var$10;
        $var2.$rotationYaw = var$12;
        $var2.$rotationPitch = 0.0;
        nms_Entity_setPosition($var2, var$8, var$9, var$10);
        $var1 = $this.$worldObj12;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($var1, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$theVillage;
        $var3 = $var1.$center;
        var$1 = $var3.$posX0;
        var$2 = $var3.$posY0;
        var$3 = $var3.$posZ0;
        var$13 = $var1.$villageRadius;
        $var1 = $var2.$homePosition;
        $var1.$posX0 = var$1;
        $var1.$posY0 = var$2;
        $var1.$posZ0 = var$3;
        $var2.$maximumHomeDistance = var$13;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, $var2, $var3, $var4, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_VillageSiege_func_75527_a = ($this, $par1, $par2, $par3) => {
    let $var4, var$5, var$6, var$7, var$8, var$9, var$10, $var5, $var6, $var7, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 0;
        var$5 = 17;
        var$6 = 5;
        var$7 = Long_fromInt(16);
        while ($var4 < 10) {
            var$8 = $this.$worldObj12;
            var$9 = var$8.$rand0;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var5 = ($par1 + Long_lo(Long_shr(Long_mul(var$7, Long_fromInt(Long_lo(Long_shru(var$10, var$5)))), 31)) | 0) - 8 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var6 = Long_lo(Long_shru(var$10, var$5));
            while (true) {
                $var7 = $var6 % 6 | 0;
                if ((($var6 - $var7 | 0) + var$6 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                $var6 = Long_lo(Long_shru(var$10, var$5));
            }
            $var6 = ($par2 + $var7 | 0) - 3 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var7 = ($par3 + Long_lo(Long_shr(Long_mul(var$7, Long_fromInt(Long_lo(Long_shru(var$10, var$5)))), 31)) | 0) - 8 | 0;
            var$14 = $this.$theVillage;
            var$9 = var$14.$center;
            var$15 = var$9.$posX0 - $var5 | 0;
            var$16 = var$9.$posY0 - $var6 | 0;
            var$17 = var$9.$posZ0 - $var7 | 0;
            var$16 = var$15 * var$15 + var$16 * var$16 + var$17 * var$17;
            var$18 = var$14.$villageRadius;
            if (var$16 >= $rt_imul(var$18, var$18) ? 0 : 1) {
                nms_EnumCreatureType_$callClinit();
                var$9 = nms_EnumCreatureType_monster;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        return null;
    case 1:
        $tmp = nms_SpawnerAnimals_canCreatureTypeSpawnAtLocation(var$9, var$8, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18)
            nms_Vec3Pool_getVecFromPool($this.$worldObj12.$vecPool, $var5, $var6, $var7);
        while (true) {
            $var4 = $var4 + 1 | 0;
            if ($var4 >= 10)
                break;
            var$8 = $this.$worldObj12;
            var$9 = var$8.$rand0;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var5 = ($par1 + Long_lo(Long_shr(Long_mul(var$7, Long_fromInt(Long_lo(Long_shru(var$10, var$5)))), 31)) | 0) - 8 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var6 = Long_lo(Long_shru(var$10, var$5));
            while (true) {
                $var7 = $var6 % 6 | 0;
                if ((($var6 - $var7 | 0) + var$6 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$10;
                $var6 = Long_lo(Long_shru(var$10, var$5));
            }
            $var6 = ($par2 + $var7 | 0) - 3 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            $var7 = ($par3 + Long_lo(Long_shr(Long_mul(var$7, Long_fromInt(Long_lo(Long_shru(var$10, var$5)))), 31)) | 0) - 8 | 0;
            var$14 = $this.$theVillage;
            var$9 = var$14.$center;
            var$15 = var$9.$posX0 - $var5 | 0;
            var$16 = var$9.$posY0 - $var6 | 0;
            var$17 = var$9.$posZ0 - $var7 | 0;
            var$16 = var$15 * var$15 + var$16 * var$16 + var$17 * var$17;
            var$18 = var$14.$villageRadius;
            if (!(var$16 >= $rt_imul(var$18, var$18) ? 0 : 1))
                continue;
            else {
                nms_EnumCreatureType_$callClinit();
                var$9 = nms_EnumCreatureType_monster;
                continue main;
            }
        }
        return null;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, $var5, $var6, $var7, var$14, var$15, var$16, var$17, var$18, $ptr);
};
function nms_Vec3Pool() {
    let a = this; jl_Object.call(a);
    a.$truncateArrayResetThreshold = 0;
    a.$minimumSize = 0;
    a.$vec3Cache = null;
    a.$nextFreeSpace = 0;
    a.$maximumSizeSinceLastTruncation = 0;
    a.$resetCount = 0;
}
let nms_Vec3Pool_getVecFromPool = ($this, $par1, $par3, $par5) => {
    let var$4, var$5, var$6, var$7, $var7, var$9;
    if ($this.$minimumSize >= 0 && $this.$truncateArrayResetThreshold >= 0 ? 0 : 1) {
        var$4 = new nms_Vec3;
        if ($par1 === -0.0)
            $par1 = 0.0;
        if ($par3 === -0.0)
            $par3 = 0.0;
        if ($par5 === -0.0)
            $par5 = 0.0;
        var$4.$xCoord = $par1;
        var$4.$yCoord = $par3;
        var$4.$zCoord = $par5;
        var$4.$myVec3LocalPool = $this;
        return var$4;
    }
    a: {
        var$5 = $this.$nextFreeSpace;
        var$4 = $this.$vec3Cache;
        var$6 = var$4.$size0;
        var$7 = $rt_compare(var$5, var$6);
        if (var$7 < 0) {
            if (var$5 >= 0 && var$7 < 0) {
                $var7 = var$4.$array.data[var$5];
                $var7.$xCoord = $par1;
                $var7.$yCoord = $par3;
                $var7.$zCoord = $par5;
                break a;
            }
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
        $var7 = new nms_Vec3;
        if ($par1 === -0.0)
            $par1 = 0.0;
        if ($par3 === -0.0)
            $par3 = 0.0;
        if ($par5 === -0.0)
            $par5 = 0.0;
        $var7.$xCoord = $par1;
        $var7.$yCoord = $par3;
        $var7.$zCoord = $par5;
        $var7.$myVec3LocalPool = $this;
        ju_ArrayList_ensureCapacity(var$4, var$6 + 1 | 0);
        var$9 = var$4.$array.data;
        var$5 = var$4.$size0;
        var$4.$size0 = var$5 + 1 | 0;
        var$9[var$5] = $var7;
        var$4.$modCount = var$4.$modCount + 1 | 0;
    }
    $this.$nextFreeSpace = $this.$nextFreeSpace + 1 | 0;
    return $var7;
},
nms_Vec3Pool_clear = $this => {
    let var$1, $var1, $var1_0, var$4;
    var$1 = $this.$minimumSize;
    if (!(var$1 >= 0 && $this.$truncateArrayResetThreshold >= 0 ? 0 : 1)) {
        $var1 = $this.$nextFreeSpace;
        if ($var1 > $this.$maximumSizeSinceLastTruncation)
            $this.$maximumSizeSinceLastTruncation = $var1;
        $var1_0 = $this.$resetCount;
        $this.$resetCount = $var1_0 + 1 | 0;
        if ($var1_0 == $this.$truncateArrayResetThreshold) {
            $var1 = $this.$maximumSizeSinceLastTruncation;
            $var1_0 = $this.$vec3Cache.$size0 - var$1 | 0;
            if ($var1 > $var1_0)
                $var1_0 = $var1;
            while (true) {
                var$4 = $this.$vec3Cache;
                if (var$4.$size0 <= $var1_0)
                    break;
                ju_ArrayList_remove(var$4, $var1_0);
            }
            $this.$maximumSizeSinceLastTruncation = 0;
            $this.$resetCount = 0;
        }
        $this.$nextFreeSpace = 0;
    }
};
function nms_MapStorage() {
    let a = this; jl_Object.call(a);
    a.$saveHandler = null;
    a.$loadedDataMap = null;
    a.$loadedDataList = null;
    a.$idCounts = null;
}
let nms_MapStorage__init_ = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        var$1.$elementCount = 0;
        var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$4 = var$3.data;
        var$1.$elementData = var$3;
        var$1.$loadFactor = 0.75;
        var$1.$threshold = var$4.length * 0.75 | 0;
        $this.$loadedDataMap = var$1;
        var$1 = new ju_ArrayList;
        var$1.$array = $rt_createArray(jl_Object, 10);
        $this.$loadedDataList = var$1;
        var$1 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        var$1.$elementCount = 0;
        var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$4 = var$3.data;
        var$1.$elementData = var$3;
        var$1.$loadFactor = 0.75;
        var$1.$threshold = var$4.length * 0.75 | 0;
        $this.$idCounts = var$1;
        $this.$saveHandler = null;
        $ptr = 1;
    case 1:
        nms_MapStorage_loadIdCounts($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_MapStorage__init_0 = () => {
    let var_0 = new nms_MapStorage();
    nms_MapStorage__init_(var_0);
    return var_0;
},
nms_MapStorage_loadData = ($this, $par1Class, $par2Str) => {
    let $var3, $var7, var$5, var$6, var$7, var$8, $var4, $var8, $var6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();$par2Str = $thread.pop();$par1Class = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$loadedDataMap;
        if ($par2Str === null) {
            $var7 = $var3.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            a: {
                if (!$par2Str.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $par2Str.$nativeString.length)
                            break a;
                        $par2Str.$hashCode1 = (31 * $par2Str.$hashCode1 | 0) + $par2Str.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$5 = $par2Str.$hashCode1;
            var$6 = $var3.$elementData.data;
            $var7 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$5) {
                    b: {
                        $var3 = $var7.$key;
                        if ($par2Str !== $var3) {
                            if ($par2Str === $var3)
                                var$7 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$7 = 0;
                            else {
                                $var3 = $var3;
                                var$7 = $par2Str.$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break b;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var3 = $var7 === null ? null : $var7.$value0;
        if ($var3 !== null)
            return $var3;
        c: {
            $var7 = $this.$saveHandler;
            if ($var7 === null)
                $var7 = $var3;
            else {
                try {
                    var$8 = $var3;
                    $var4 = nles_VFSSaveHandler_getMapFileFromName($var7, $par2Str);
                    if ($var4 === null) {
                        $var7 = $var3;
                        break c;
                    }
                    var$8 = $var3;
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var8 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var8);
                $var7 = var$8;
            }
        }
        if ($var7 !== null) {
            ju_HashMap_putImpl($this.$loadedDataMap, $par2Str, $var7);
            $par1Class = $this.$loadedDataList;
            ju_ArrayList_ensureCapacity($par1Class, $par1Class.$size0 + 1 | 0);
            var$6 = $par1Class.$array.data;
            var$7 = $par1Class.$size0;
            $par1Class.$size0 = var$7 + 1 | 0;
            var$6[var$7] = $var7;
            $par1Class.$modCount = $par1Class.$modCount + 1 | 0;
        }
        return $var7;
    case 1:
        d: {
            try {
                $tmp = nles_VFile_exists($var4);
                if ($rt_suspending()) {
                    break main;
                }
                var$5 = $tmp;
                if (!var$5) {
                    $var7 = $var3;
                    break d;
                }
                try {
                    var$8 = $var3;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$8 = $var3;
                $var4 = new jl_RuntimeException;
                $par1Class = jl_Object_toString($par1Class);
                $var6 = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($var6, $rt_s(2122)), $par1Class);
                $par1Class = jl_StringBuilder_toString($var6);
                var$8 = $var3;
                jl_RuntimeException__init_1($var4, $par1Class, $var7);
                $rt_throw($var4);
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var8);
            $var7 = var$8;
        }
        if ($var7 !== null) {
            ju_HashMap_putImpl($this.$loadedDataMap, $par2Str, $var7);
            $par1Class = $this.$loadedDataList;
            ju_ArrayList_ensureCapacity($par1Class, $par1Class.$size0 + 1 | 0);
            var$6 = $par1Class.$array.data;
            var$7 = $par1Class.$size0;
            $par1Class.$size0 = var$7 + 1 | 0;
            var$6[var$7] = $var7;
            $par1Class.$modCount = $par1Class.$modCount + 1 | 0;
        }
        return $var7;
    case 2:
        try {
            e: {
                try {
                    $tmp = $par1Class.$apply($par2Str);
                    if ($rt_suspending()) {
                        break main;
                    }
                    $var7 = $tmp;
                    $var3 = $var7;
                    var$8 = $var7;
                    break e;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$8 = $var3;
                $var4 = new jl_RuntimeException;
                $par1Class = jl_Object_toString($par1Class);
                $var6 = jl_StringBuilder__init_();
                jl_StringBuilder_append(jl_StringBuilder_append($var6, $rt_s(2122)), $par1Class);
                $par1Class = jl_StringBuilder_toString($var6);
                var$8 = $var3;
                jl_RuntimeException__init_1($var4, $par1Class, $var7);
                $rt_throw($var4);
            }
            var$8 = $var7;
            var$8 = $var7;
            $ptr = 3;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var8 = $$je;
            } else {
                throw $$e;
            }
        }
        jl_Throwable_printStackTrace0($var8);
        $var7 = var$8;
        if ($var7 !== null) {
            ju_HashMap_putImpl($this.$loadedDataMap, $par2Str, $var7);
            $par1Class = $this.$loadedDataList;
            ju_ArrayList_ensureCapacity($par1Class, $par1Class.$size0 + 1 | 0);
            var$6 = $par1Class.$array.data;
            var$7 = $par1Class.$size0;
            $par1Class.$size0 = var$7 + 1 | 0;
            var$6[var$7] = $var7;
            $par1Class.$modCount = $par1Class.$modCount + 1 | 0;
        }
        return $var7;
    case 3:
        try {
            $tmp = nles_VFile_getInputStream($var4);
            if ($rt_suspending()) {
                break main;
            }
            $par1Class = $tmp;
            $par1Class = nms_NBTTagCompound_getCompoundTag(nms_CompressedStreamTools_readCompressed($par1Class), $rt_s(214));
            $ptr = 4;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var8 = $$je;
            } else {
                throw $$e;
            }
        }
        jl_Throwable_printStackTrace0($var8);
        $var7 = var$8;
        if ($var7 !== null) {
            ju_HashMap_putImpl($this.$loadedDataMap, $par2Str, $var7);
            $par1Class = $this.$loadedDataList;
            ju_ArrayList_ensureCapacity($par1Class, $par1Class.$size0 + 1 | 0);
            var$6 = $par1Class.$array.data;
            var$7 = $par1Class.$size0;
            $par1Class.$size0 = var$7 + 1 | 0;
            var$6[var$7] = $var7;
            $par1Class.$modCount = $par1Class.$modCount + 1 | 0;
        }
        return $var7;
    case 4:
        d: {
            try {
                $var7.$readFromNBT($par1Class);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var8);
            $var7 = var$8;
        }
        if ($var7 !== null) {
            ju_HashMap_putImpl($this.$loadedDataMap, $par2Str, $var7);
            $par1Class = $this.$loadedDataList;
            ju_ArrayList_ensureCapacity($par1Class, $par1Class.$size0 + 1 | 0);
            var$6 = $par1Class.$array.data;
            var$7 = $par1Class.$size0;
            $par1Class.$size0 = var$7 + 1 | 0;
            var$6[var$7] = $var7;
            $par1Class.$modCount = $par1Class.$modCount + 1 | 0;
        }
        return $var7;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Class, $par2Str, $var3, $var7, var$5, var$6, var$7, var$8, $var4, $var8, $var6, $ptr);
},
nms_MapStorage_loadIdCounts = $this => {
    let $var2, $var9, $var1, $var8, $var3, $var4, $var5, $var6, $var7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var8 = $thread.pop();$var1 = $thread.pop();$var9 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                c: {
                    try {
                        ju_HashMap_clear($this.$idCounts);
                        $var2 = $this.$saveHandler;
                        if ($var2 !== null)
                            break c;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var9 = $$je;
                            break b;
                        } else {
                            throw $$e;
                        }
                    }
                    return;
                }
                d: {
                    try {
                        $var1 = nles_VFSSaveHandler_getMapFileFromName($var2, $rt_s(2123));
                        if ($var1 !== null)
                            break d;
                        break a;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var9 = $$je;
                            break b;
                        } else {
                            throw $$e;
                        }
                    }
                }
                try {
                    $ptr = 1;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var9 = $$je;
                    } else {
                        throw $$e;
                    }
                }
            }
            jl_Throwable_printStackTrace0($var9);
        }
        return;
    case 1:
        a: {
            try {
                $tmp = nles_VFile_exists($var1);
                if ($rt_suspending()) {
                    break main;
                }
                $var8 = $tmp;
                if (!$var8)
                    break a;
                $var2 = new ji_DataInputStream;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var9);
        }
        return;
    case 2:
        try {
            $tmp = nles_VFile_getInputStream($var1);
            if ($rt_suspending()) {
                break main;
            }
            $var1 = $tmp;
            ji_DataInputStream__init_0($var2, $var1);
            $var3 = nms_CompressedStreamTools_read($var2);
            $ptr = 3;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var9 = $$je;
            } else {
                throw $$e;
            }
        }
        jl_Throwable_printStackTrace0($var9);
        return;
    case 3:
        a: {
            try {
                ji_FilterInputStream_close($var2);
                if ($rt_suspending()) {
                    break main;
                }
                $var4 = (nms_NBTTagCompound_getTags($var3)).$iterator();
                while ($var4.$hasNext()) {
                    $var5 = $var4.$next();
                    if ($var5 instanceof nms_NBTTagShort) {
                        $var6 = $var5;
                        $var7 = nms_NBTBase_getName($var6);
                        $var8 = $var6.$data2;
                        ju_HashMap_put($this.$idCounts, $var7, jl_Short_valueOf($var8));
                    }
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var9 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var9);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, $var9, $var1, $var8, $var3, $var4, $var5, $var6, $var7, $ptr);
},
nms_MapStorage_getUniqueDataId = ($this, $par1Str) => {
    let $var2, $var7, var$4, var$5, $var3, $var4, $var5, $var6, $var8, $os, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$os = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var7 = $thread.pop();$var2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$idCounts;
        if ($par1Str === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            a: {
                if (!$par1Str.$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $par1Str.$nativeString.length)
                            break a;
                        $par1Str.$hashCode1 = (31 * $par1Str.$hashCode1 | 0) + $par1Str.$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$4 = $par1Str.$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    b: {
                        $var3 = $var2.$key;
                        if ($par1Str !== $var3) {
                            if ($par1Str === $var3)
                                $var7 = 1;
                            else if (!($var3 instanceof jl_String))
                                $var7 = 0;
                            else {
                                $var3 = $var3;
                                $var7 = $par1Str.$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break b;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2 === null) {
            jl_Short_ensureShortCache();
            $var2 = jl_Short_shortCache.data[128];
        } else {
            $var7 = ($var2.$value6 + 1 | 0) << 16 >> 16;
            if ($var7 >= (-128) && $var7 <= 127) {
                jl_Short_ensureShortCache();
                $var2 = jl_Short_shortCache.data[$var7 + 128 | 0];
            } else {
                $var2 = new jl_Short;
                $var2.$value6 = $var7;
            }
        }
        ju_HashMap_putImpl($this.$idCounts, $par1Str, $var2);
        $par1Str = $this.$saveHandler;
        if ($par1Str === null)
            return $var2.$value6;
        c: {
            try {
                $var3 = nles_VFSSaveHandler_getMapFileFromName($par1Str, $rt_s(2123));
                if ($var3 === null)
                    break c;
                $var4 = nms_NBTTagCompound__init_();
                $var5 = (ju_HashMap_keySet($this.$idCounts)).$iterator();
                while ($var5.$hasNext()) {
                    $var6 = $var5.$next();
                    nms_NBTTagCompound_setShort($var4, $var6, jl_Short_shortValue(ju_HashMap_get($this.$idCounts, $var6)));
                }
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Str = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Str);
                $par1Str.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var3, 16);
                $par1Str.$sb = $var3;
                $par1Str.$buffer0 = $rt_createCharArray(32);
                $par1Str.$autoFlush = 0;
                $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Str;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        return $var2.$value6;
    case 1:
        try {
            $tmp = nles_VFile_getOutputStream($var3);
            if ($rt_suspending()) {
                break main;
            }
            $os = $tmp;
            nms_CompressedStreamTools_write($var4, ji_DataOutputStream__init_($os));
            $ptr = 2;
            continue main;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Exception) {
                $var8 = $$je;
            } else {
                throw $$e;
            }
        }
        if (jl_System_errCache === null) {
            $par1Str = new otcic_JSStderrPrintStream;
            $var3 = new ji_ByteArrayOutputStream;
            $var3.$buf = $rt_createByteArray(32);
            jl_Object__init_($par1Str);
            $par1Str.$out0 = $var3;
            $var3 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0($var3, 16);
            $par1Str.$sb = $var3;
            $par1Str.$buffer0 = $rt_createCharArray(32);
            $par1Str.$autoFlush = 0;
            $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $par1Str;
        }
        jl_Throwable_printStackTrace($var8, jl_System_errCache);
        return $var2.$value6;
    case 2:
        d: {
            try {
                nles_VirtualFilesystem$VirtualOutputStream_close($os);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var8 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1Str = new otcic_JSStderrPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1Str);
                $par1Str.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var3, 16);
                $par1Str.$sb = $var3;
                $par1Str.$buffer0 = $rt_createCharArray(32);
                $par1Str.$autoFlush = 0;
                $par1Str.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1Str;
            }
            jl_Throwable_printStackTrace($var8, jl_System_errCache);
        }
        return $var2.$value6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $var2, $var7, var$4, var$5, $var3, $var4, $var5, $var6, $var8, $os, $ptr);
},
nms_World$_init_$lambda$_3_0 = $rt_classWithoutFields(),
nms_World$_init_$lambda$_3_0__init_ = var$0 => {
    return;
},
nms_World$_init_$lambda$_3_0__init_0 = () => {
    let var_0 = new nms_World$_init_$lambda$_3_0();
    nms_World$_init_$lambda$_3_0__init_(var_0);
    return var_0;
},
nms_World$_init_$lambda$_3_0_apply = (var$0, var$1) => {
    let var$2;
    var$2 = new nms_VillageCollection;
    var$2.$mapName = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    var$2.$villagerPositionsList = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    var$2.$newDoors = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    var$2.$villageList = var$1;
    return var$2;
};
function nms_VillageCollection() {
    let a = this; nms_WorldSavedData.call(a);
    a.$worldObj11 = null;
    a.$villagerPositionsList = null;
    a.$newDoors = null;
    a.$villageList = null;
    a.$tickCounter = 0;
}
let nms_VillageCollection_tick = $this => {
    let var$1, var$2, var$3, $var1$index, $var2, var$6, $var1$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1$index_0 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();$var1$index = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$tickCounter = $this.$tickCounter + 1 | 0;
        var$1 = $this.$villageList;
        var$2 = var$1.$modCount;
        var$3 = var$1.$size();
        if (0 >= var$3 ? 0 : 1) {
            if (var$2 < var$1.$modCount) {
                var$1 = new ju_ConcurrentModificationException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            $var1$index = 0 + 1 | 0;
            $var2 = var$1.$get(0);
            var$6 = $this.$tickCounter;
            $ptr = 1;
            continue main;
        }
        var$1 = $this.$villageList;
        $var2 = new ju_AbstractList$1;
        $var2.$this$00 = var$1;
        $var2.$modCount0 = var$1.$modCount;
        $var2.$size3 = var$1.$size();
        $var2.$removeIndex = (-1);
        while (true) {
            var$6 = $var2.$index;
            if (!(var$6 >= $var2.$size3 ? 0 : 1)) {
                var$1 = $this.$villagerPositionsList;
                if (var$1.$size0 ? 0 : 1) {
                    nms_VillageCollection_addNewDoorsToVillageOrCreateVillage($this);
                    if (!($this.$tickCounter % 400 | 0))
                        $this.$dirty = 1;
                    return;
                }
                var$1 = ju_ArrayList_remove(var$1, 0);
                $ptr = 2;
                continue main;
            }
            $var1$index = $var2.$modCount0;
            var$1 = $var2.$this$00;
            if ($var1$index < var$1.$modCount)
                break;
            $var2.$removeIndex = var$6;
            $var2.$index = var$6 + 1 | 0;
            if ((var$1.$get(var$6)).$villageDoorInfoList.$size0 ? 0 : 1) {
                ju_AbstractList$1_remove($var2);
                $this.$dirty = 1;
            }
        }
        var$1 = new ju_ConcurrentModificationException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 1:
        nms_Village_tick($var2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var1$index_0 = $var1$index;
        if ($var1$index_0 >= var$3 ? 0 : 1) {
            if (var$2 < var$1.$modCount) {
                var$1 = new ju_ConcurrentModificationException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            $var1$index = $var1$index_0 + 1 | 0;
            $var2 = var$1.$get($var1$index_0);
            var$6 = $this.$tickCounter;
            continue main;
        }
        var$1 = $this.$villageList;
        $var2 = new ju_AbstractList$1;
        $var2.$this$00 = var$1;
        $var2.$modCount0 = var$1.$modCount;
        $var2.$size3 = var$1.$size();
        $var2.$removeIndex = (-1);
        while (true) {
            var$6 = $var2.$index;
            if (!(var$6 >= $var2.$size3 ? 0 : 1)) {
                var$1 = $this.$villagerPositionsList;
                if (var$1.$size0 ? 0 : 1) {
                    nms_VillageCollection_addNewDoorsToVillageOrCreateVillage($this);
                    if (!($this.$tickCounter % 400 | 0))
                        $this.$dirty = 1;
                    return;
                }
                var$1 = ju_ArrayList_remove(var$1, 0);
                $ptr = 2;
                continue main;
            }
            $var1$index = $var2.$modCount0;
            var$1 = $var2.$this$00;
            if ($var1$index < var$1.$modCount)
                break;
            $var2.$removeIndex = var$6;
            $var2.$index = var$6 + 1 | 0;
            if ((var$1.$get(var$6)).$villageDoorInfoList.$size0 ? 0 : 1) {
                ju_AbstractList$1_remove($var2);
                $this.$dirty = 1;
            }
        }
        var$1 = new ju_ConcurrentModificationException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 2:
        nms_VillageCollection_addUnassignedWoodenDoorsAroundToNewDoorsList($this, var$1);
        if ($rt_suspending()) {
            break main;
        }
        nms_VillageCollection_addNewDoorsToVillageOrCreateVillage($this);
        if (!($this.$tickCounter % 400 | 0))
            $this.$dirty = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1$index, $var2, var$6, $var1$index_0, $ptr);
},
nms_VillageCollection_findNearestVillage = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, var$7, $var7$index, var$9, var$10, var$11, $var7$index_0, $var8, $var10, $var9, var$16;
    $var5 = null;
    $var6 = 3.4028234663852886E38;
    var$7 = $this.$villageList;
    $var7$index = 0;
    var$9 = var$7.$modCount;
    var$10 = var$7.$size();
    while ($var7$index >= var$10 ? 0 : 1) {
        if (var$9 < var$7.$modCount) {
            var$11 = new ju_ConcurrentModificationException;
            var$11.$suppressionEnabled = 1;
            var$11.$writableStackTrace = 1;
            $rt_throw(var$11);
        }
        $var7$index_0 = $var7$index + 1 | 0;
        $var8 = var$7.$get($var7$index);
        var$11 = $var8.$center;
        $var10 = var$11.$posX0 - $par1 | 0;
        $var9 = var$11.$posY0 - $par2 | 0;
        var$16 = var$11.$posZ0 - $par3 | 0;
        $var9 = $var10 * $var10 + $var9 * $var9 + var$16 * var$16;
        if ($var9 < $var6) {
            $var10 = $par4 + $var8.$villageRadius | 0;
            if ($var9 <= $var10 * $var10) {
                $var5 = $var8;
                $var6 = $var9;
            }
        }
        $var7$index = $var7$index_0;
    }
    return $var5;
},
nms_VillageCollection_addNewDoorsToVillageOrCreateVillage = $this => {
    let $var1, $var2, $var4$index, $var7, var$5, $var8, var$7, $var3, var$9, var$10, var$11, $var4$index_0, $var5, $var6, var$15, var$16, var$17, var$18;
    $var1 = 0;
    while (true) {
        $var2 = $this.$newDoors;
        $var4$index = $var2.$size0;
        $var7 = $rt_compare($var1, $var4$index);
        if ($var7 >= 0) {
            var$5 = $var2.$array;
            $var1 = 0;
            $var8 = null;
            if ($var1 > $var4$index) {
                $var2 = new jl_IllegalArgumentException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $rt_throw($var2);
            }
            while ($var1 < $var4$index) {
                var$7 = var$5.data;
                $var7 = $var1 + 1 | 0;
                var$7[$var1] = $var8;
                $var1 = $var7;
            }
            $var2.$size0 = 0;
            $var2.$modCount = $var2.$modCount + 1 | 0;
            return;
        }
        if ($var1 < 0)
            break;
        if ($var7 >= 0)
            break;
        $var2 = $var2.$array.data[$var1];
        $var3 = 0;
        var$9 = $this.$villageList;
        var$10 = var$9.$modCount;
        var$11 = var$9.$size();
        $var4$index = 0;
        a: {
            while ($var4$index >= var$11 ? 0 : 1) {
                if (var$10 < var$9.$modCount) {
                    $var2 = new ju_ConcurrentModificationException;
                    $var2.$suppressionEnabled = 1;
                    $var2.$writableStackTrace = 1;
                    $rt_throw($var2);
                }
                $var4$index_0 = $var4$index + 1 | 0;
                $var5 = var$9.$get($var4$index);
                $var8 = $var5.$center;
                $var4$index = $var2.$posX2;
                $var6 = $var2.$posY2;
                var$15 = $var2.$posZ2;
                var$16 = $var8.$posX0 - $var4$index | 0;
                var$17 = $var8.$posY0 - $var6 | 0;
                var$18 = $var8.$posZ0 - var$15 | 0;
                $var6 = var$16 * var$16 + var$17 * var$17 + var$18 * var$18 | 0;
                $var7 = 32 + $var5.$villageRadius | 0;
                if ($var6 <= $rt_imul($var7, $var7)) {
                    $var8 = $var5.$villageDoorInfoList;
                    ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                    var$5 = $var8.$array.data;
                    $var4$index = $var8.$size0;
                    $var8.$size0 = $var4$index + 1 | 0;
                    var$5[$var4$index] = $var2;
                    $var8.$modCount = $var8.$modCount + 1 | 0;
                    $var8 = $var5.$centerHelper;
                    $var8.$posX0 = $var8.$posX0 + $var2.$posX2 | 0;
                    $var8.$posY0 = $var8.$posY0 + $var2.$posY2 | 0;
                    $var8.$posZ0 = $var8.$posZ0 + $var2.$posZ2 | 0;
                    nms_Village_updateVillageRadiusAndCenter($var5);
                    $var5.$lastAddDoorTimestamp = $var2.$lastActivityTimestamp;
                    $var3 = 1;
                    break a;
                }
                $var4$index = $var4$index_0;
            }
        }
        if (!$var3) {
            $var8 = nms_Village__init_1($this.$worldObj11);
            var$9 = $var8.$villageDoorInfoList;
            ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
            var$5 = var$9.$array.data;
            $var4$index = var$9.$size0;
            var$9.$size0 = $var4$index + 1 | 0;
            var$5[$var4$index] = $var2;
            var$9.$modCount = var$9.$modCount + 1 | 0;
            var$9 = $var8.$centerHelper;
            var$9.$posX0 = var$9.$posX0 + $var2.$posX2 | 0;
            var$9.$posY0 = var$9.$posY0 + $var2.$posY2 | 0;
            var$9.$posZ0 = var$9.$posZ0 + $var2.$posZ2 | 0;
            nms_Village_updateVillageRadiusAndCenter($var8);
            $var8.$lastAddDoorTimestamp = $var2.$lastActivityTimestamp;
            $var2 = $this.$villageList;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            var$5 = $var2.$array.data;
            $var4$index = $var2.$size0;
            $var2.$size0 = $var4$index + 1 | 0;
            var$5[$var4$index] = $var8;
            $var2.$modCount = $var2.$modCount + 1 | 0;
            $this.$dirty = 1;
        }
        $var1 = $var1 + 1 | 0;
    }
    $var2 = new jl_IndexOutOfBoundsException;
    $var2.$suppressionEnabled = 1;
    $var2.$writableStackTrace = 1;
    $rt_throw($var2);
},
nms_VillageCollection_addUnassignedWoodenDoorsAroundToNewDoorsList = ($this, $par1ChunkCoordinates) => {
    let $var2, $var3, $var4, $var5, $var6, $var7, $var8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1ChunkCoordinates = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 16;
        $var3 = 4;
        $var4 = 16;
        $var5 = $par1ChunkCoordinates.$posX0 - $var2 | 0;
        while ($var5 < ($par1ChunkCoordinates.$posX0 + $var2 | 0)) {
            $var6 = $par1ChunkCoordinates.$posY0 - $var3 | 0;
            while ($var6 < ($par1ChunkCoordinates.$posY0 + $var3 | 0)) {
                $var7 = $par1ChunkCoordinates.$posZ0 - $var4 | 0;
                if ($var7 < ($par1ChunkCoordinates.$posZ0 + $var4 | 0)) {
                    $var8 = $this.$worldObj11;
                    $ptr = 1;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($var8, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        if (var$9 != nms_Block_doorWood.$blockID ? 0 : 1) {
            $var8 = nms_VillageCollection_getVillageDoorAt($this, $var5, $var6, $var7);
            if ($var8 === null) {
                $ptr = 2;
                continue main;
            }
            $var8.$lastActivityTimestamp = $this.$tickCounter;
        }
        $var7 = $var7 + 1 | 0;
        a: while (true) {
            if ($var7 < ($par1ChunkCoordinates.$posZ0 + $var4 | 0)) {
                $var8 = $this.$worldObj11;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
            while ($var6 >= ($par1ChunkCoordinates.$posY0 + $var3 | 0)) {
                $var5 = $var5 + 1 | 0;
                if ($var5 >= ($par1ChunkCoordinates.$posX0 + $var2 | 0))
                    break a;
                $var6 = $par1ChunkCoordinates.$posY0 - $var3 | 0;
            }
            $var7 = $par1ChunkCoordinates.$posZ0 - $var4 | 0;
        }
        return;
    case 2:
        nms_VillageCollection_addDoorToNewListIfAppropriate($this, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        b: while (true) {
            if ($var7 < ($par1ChunkCoordinates.$posZ0 + $var4 | 0)) {
                $var8 = $this.$worldObj11;
                $ptr = 1;
                continue main;
            }
            $var6 = $var6 + 1 | 0;
            while ($var6 >= ($par1ChunkCoordinates.$posY0 + $var3 | 0)) {
                $var5 = $var5 + 1 | 0;
                if ($var5 >= ($par1ChunkCoordinates.$posX0 + $var2 | 0))
                    break b;
                $var6 = $par1ChunkCoordinates.$posY0 - $var3 | 0;
            }
            $var7 = $par1ChunkCoordinates.$posZ0 - $var4 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ChunkCoordinates, $var2, $var3, $var4, $var5, $var6, $var7, $var8, var$9, $ptr);
},
nms_VillageCollection_getVillageDoorAt = ($this, $par1, $par2, $par3) => {
    let var$4, $var4$index, var$6, var$7, var$8, $var6, $var4$index_0, $var5;
    var$4 = $this.$newDoors;
    $var4$index = 0;
    var$6 = var$4.$modCount;
    var$7 = var$4.$size();
    while (true) {
        if (!($var4$index >= var$7 ? 0 : 1)) {
            var$4 = $this.$villageList;
            $var4$index = 0;
            var$7 = var$4.$modCount;
            var$8 = var$4.$size();
            while (true) {
                if (!($var4$index >= var$8 ? 0 : 1))
                    return null;
                if (var$7 < var$4.$modCount) {
                    var$4 = new ju_ConcurrentModificationException;
                    var$4.$suppressionEnabled = 1;
                    var$4.$writableStackTrace = 1;
                    $rt_throw(var$4);
                }
                var$6 = $var4$index + 1 | 0;
                $var6 = nms_Village_getVillageDoorAt(var$4.$get($var4$index), $par1, $par2, $par3);
                if ($var6 !== null)
                    break;
                $var4$index = var$6;
            }
            return $var6;
        }
        if (var$6 < var$4.$modCount) {
            var$4 = new ju_ConcurrentModificationException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
        $var4$index_0 = $var4$index + 1 | 0;
        $var5 = var$4.$get($var4$index);
        if ($var5.$posX2 != $par1) {
            $var4$index = $var4$index_0;
            continue;
        }
        if ($var5.$posZ2 != $par3) {
            $var4$index = $var4$index_0;
            continue;
        }
        $var4$index = $var5.$posY2 - $par2 | 0;
        if ($var4$index < 0)
            $var4$index =  -$var4$index | 0;
        if ($var4$index <= 1)
            break;
        $var4$index = $var4$index_0;
    }
    return $var5;
},
nms_VillageCollection_addDoorToNewListIfAppropriate = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var5, $var4, $var6, var$9, var$10, var$11, $var6_0, var$13, var$14, var$15, var$16, $var5_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5_0 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var6_0 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        var$4 = nms_Block_doorWood;
        var$5 = $this.$worldObj11;
        $ptr = 1;
    case 1:
        a: {
            b: {
                $tmp = nms_BlockDoor_getFullMetadata(var$4, var$5, $par1, $par2, $par3);
                if ($rt_suspending()) {
                    break main;
                }
                $var5 = $tmp;
                $var4 = $var5 & 3;
                if ($var4 && $var4 != 2) {
                    $var5 = 0;
                    $var6 = (-5);
                    var$9 = $par1 >> 4;
                    var$10 = Long_and(Long_fromInt(var$9), Long_create(4294967295, 0));
                    var$11 = $par1 & 15;
                    while (true) {
                        if ($var6 >= 0) {
                            $var6 = 1;
                            while ($var6 <= 5) {
                                var$4 = $this.$worldObj11;
                                $var6_0 = $par3 + $var6 | 0;
                                $var4 = $var6_0 >> 4;
                                var$4 = var$4.$chunkProvider;
                                var$5 = var$4.$loadedChunkHashMap;
                                var$13 = Long_or(var$10, Long_shl(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), 32));
                                var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                                var$14 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                                var$15 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                                var$16 = var$5.$hashArray.data;
                                var$5 = var$16[var$15 & (var$16.length - 1 | 0)];
                                c: {
                                    while (var$5 !== null) {
                                        if (Long_eq(var$5.$key1, var$13)) {
                                            var$5 = var$5.$value4;
                                            break c;
                                        }
                                        var$5 = var$5.$nextEntry;
                                    }
                                    var$5 = null;
                                }
                                var$5 = var$5;
                                if (var$5 === null) {
                                    if (var$4.$worldObj0.$findingSpawnPoint)
                                        break a;
                                    if (var$4.$loadChunkOnProvideRequest)
                                        break a;
                                    var$5 = var$4.$defaultEmptyChunk;
                                }
                                if (var$5.$canBlockSeeTheSky(var$11, $par2, $var6_0 & 15))
                                    $var5 = $var5 + 1 | 0;
                                $var6 = $var6 + 1 | 0;
                            }
                            if (!$var5)
                                break b;
                            var$4 = $this.$newDoors;
                            var$5 = new nms_VillageDoorInfo;
                            $var5 = $var5 <= 0 ? 2 : (-2);
                            $var6_0 = $this.$tickCounter;
                            var$5.$posX2 = $par1;
                            var$5.$posY2 = $par2;
                            var$5.$posZ2 = $par3;
                            var$5.$insideDirectionX = 0;
                            var$5.$insideDirectionZ = $var5;
                            var$5.$lastActivityTimestamp = $var6_0;
                            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                            var$16 = var$4.$array.data;
                            $par2 = var$4.$size0;
                            var$4.$size0 = $par2 + 1 | 0;
                            var$16[$par2] = var$5;
                            var$4.$modCount = var$4.$modCount + 1 | 0;
                            break b;
                        }
                        var$4 = $this.$worldObj11;
                        $var6_0 = $par3 + $var6 | 0;
                        $var4 = $var6_0 >> 4;
                        var$4 = var$4.$chunkProvider;
                        var$5 = var$4.$loadedChunkHashMap;
                        var$13 = Long_or(var$10, Long_shl(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), 32));
                        var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                        var$14 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                        var$15 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                        var$16 = var$5.$hashArray.data;
                        var$5 = var$16[var$15 & (var$16.length - 1 | 0)];
                        d: {
                            while (var$5 !== null) {
                                if (Long_eq(var$5.$key1, var$13)) {
                                    var$5 = var$5.$value4;
                                    break d;
                                }
                                var$5 = var$5.$nextEntry;
                            }
                            var$5 = null;
                        }
                        var$5 = var$5;
                        if (var$5 === null) {
                            if (var$4.$worldObj0.$findingSpawnPoint)
                                break;
                            if (var$4.$loadChunkOnProvideRequest)
                                break;
                            var$5 = var$4.$defaultEmptyChunk;
                        }
                        if (var$5.$canBlockSeeTheSky(var$11, $par2, $var6_0 & 15))
                            $var5 = $var5 + (-1) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                    $ptr = 3;
                    continue main;
                }
                $var5_0 = 0;
                $var6_0 = (-5);
                $var4 = $par3 >> 4;
                var$13 = Long_shl(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), 32);
                var$14 = $par3 & 15;
                while (true) {
                    if ($var6_0 >= 0) {
                        var$11 = 1;
                        e: {
                            while (var$11 <= 5) {
                                var$4 = $this.$worldObj11;
                                var$15 = $par1 + var$11 | 0;
                                var$9 = var$15 >> 4;
                                var$5 = var$4.$chunkProvider;
                                var$4 = var$5.$loadedChunkHashMap;
                                var$10 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), var$13);
                                $var5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                                $var5 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
                                $var6_0 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
                                var$16 = var$4.$hashArray.data;
                                var$4 = var$16[$var6_0 & (var$16.length - 1 | 0)];
                                f: {
                                    while (var$4 !== null) {
                                        if (Long_eq(var$4.$key1, var$10)) {
                                            var$4 = var$4.$value4;
                                            break f;
                                        }
                                        var$4 = var$4.$nextEntry;
                                    }
                                    var$4 = null;
                                }
                                var$4 = var$4;
                                if (var$4 === null) {
                                    if (var$5.$worldObj0.$findingSpawnPoint)
                                        break e;
                                    if (var$5.$loadChunkOnProvideRequest)
                                        break e;
                                    var$4 = var$5.$defaultEmptyChunk;
                                }
                                if (var$4.$canBlockSeeTheSky(var$15 & 15, $par2, var$14))
                                    $var5_0 = $var5_0 + 1 | 0;
                                var$11 = var$11 + 1 | 0;
                            }
                            if (!$var5_0)
                                break b;
                            var$4 = $this.$newDoors;
                            var$5 = new nms_VillageDoorInfo;
                            $var6 = $var5_0 <= 0 ? 2 : (-2);
                            $var6_0 = $this.$tickCounter;
                            var$5.$posX2 = $par1;
                            var$5.$posY2 = $par2;
                            var$5.$posZ2 = $par3;
                            var$5.$insideDirectionX = $var6;
                            var$5.$insideDirectionZ = 0;
                            var$5.$lastActivityTimestamp = $var6_0;
                            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                            var$16 = var$4.$array.data;
                            $par2 = var$4.$size0;
                            var$4.$size0 = $par2 + 1 | 0;
                            var$16[$par2] = var$5;
                            var$4.$modCount = var$4.$modCount + 1 | 0;
                            break b;
                        }
                        $ptr = 4;
                        continue main;
                    }
                    var$4 = $this.$worldObj11;
                    $var6 = $par1 + $var6_0 | 0;
                    var$9 = $var6 >> 4;
                    var$5 = var$4.$chunkProvider;
                    var$4 = var$5.$loadedChunkHashMap;
                    var$10 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), var$13);
                    $var5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                    $var5 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
                    var$15 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
                    var$16 = var$4.$hashArray.data;
                    var$4 = var$16[var$15 & (var$16.length - 1 | 0)];
                    g: {
                        while (var$4 !== null) {
                            if (Long_eq(var$4.$key1, var$10)) {
                                var$4 = var$4.$value4;
                                break g;
                            }
                            var$4 = var$4.$nextEntry;
                        }
                        var$4 = null;
                    }
                    var$4 = var$4;
                    if (var$4 === null) {
                        if (var$5.$worldObj0.$findingSpawnPoint)
                            break;
                        if (var$5.$loadChunkOnProvideRequest)
                            break;
                        var$4 = var$5.$defaultEmptyChunk;
                    }
                    if (var$4.$canBlockSeeTheSky($var6 & 15, $par2, var$14))
                        $var5_0 = $var5_0 + (-1) | 0;
                    $var6_0 = $var6_0 + 1 | 0;
                }
                $ptr = 2;
                continue main;
            }
            return;
        }
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, var$9, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        while (true) {
            if (var$4.$canBlockSeeTheSky($var6 & 15, $par2, var$14))
                $var5_0 = $var5_0 + (-1) | 0;
            $var6_0 = $var6_0 + 1 | 0;
            if ($var6_0 >= 0) {
                var$11 = 1;
                h: {
                    while (var$11 <= 5) {
                        var$4 = $this.$worldObj11;
                        var$15 = $par1 + var$11 | 0;
                        var$9 = var$15 >> 4;
                        var$5 = var$4.$chunkProvider;
                        var$4 = var$5.$loadedChunkHashMap;
                        var$10 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), var$13);
                        $var5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                        $var5 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
                        $var6_0 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
                        var$16 = var$4.$hashArray.data;
                        var$4 = var$16[$var6_0 & (var$16.length - 1 | 0)];
                        i: {
                            while (var$4 !== null) {
                                if (Long_eq(var$4.$key1, var$10)) {
                                    var$4 = var$4.$value4;
                                    break i;
                                }
                                var$4 = var$4.$nextEntry;
                            }
                            var$4 = null;
                        }
                        var$4 = var$4;
                        if (var$4 === null) {
                            if (var$5.$worldObj0.$findingSpawnPoint)
                                break h;
                            if (var$5.$loadChunkOnProvideRequest)
                                break h;
                            var$4 = var$5.$defaultEmptyChunk;
                        }
                        if (var$4.$canBlockSeeTheSky(var$15 & 15, $par2, var$14))
                            $var5_0 = $var5_0 + 1 | 0;
                        var$11 = var$11 + 1 | 0;
                    }
                    if ($var5_0) {
                        var$4 = $this.$newDoors;
                        var$5 = new nms_VillageDoorInfo;
                        $var6 = $var5_0 <= 0 ? 2 : (-2);
                        $var6_0 = $this.$tickCounter;
                        var$5.$posX2 = $par1;
                        var$5.$posY2 = $par2;
                        var$5.$posZ2 = $par3;
                        var$5.$insideDirectionX = $var6;
                        var$5.$insideDirectionZ = 0;
                        var$5.$lastActivityTimestamp = $var6_0;
                        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                        var$16 = var$4.$array.data;
                        $par2 = var$4.$size0;
                        var$4.$size0 = $par2 + 1 | 0;
                        var$16[$par2] = var$5;
                        var$4.$modCount = var$4.$modCount + 1 | 0;
                    }
                    return;
                }
                $ptr = 4;
                continue main;
            }
            var$4 = $this.$worldObj11;
            $var6 = $par1 + $var6_0 | 0;
            var$9 = $var6 >> 4;
            var$5 = var$4.$chunkProvider;
            var$4 = var$5.$loadedChunkHashMap;
            var$10 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), var$13);
            $var5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
            $var5 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
            var$15 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
            var$16 = var$4.$hashArray.data;
            var$4 = var$16[var$15 & (var$16.length - 1 | 0)];
            j: {
                while (var$4 !== null) {
                    if (Long_eq(var$4.$key1, var$10)) {
                        var$4 = var$4.$value4;
                        break j;
                    }
                    var$4 = var$4.$nextEntry;
                }
                var$4 = null;
            }
            var$4 = var$4;
            if (var$4 !== null)
                continue;
            if (var$5.$worldObj0.$findingSpawnPoint)
                break;
            if (var$5.$loadChunkOnProvideRequest)
                break;
            var$4 = var$5.$defaultEmptyChunk;
        }
        continue main;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk(var$4, var$9, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        while (true) {
            if (var$5.$canBlockSeeTheSky(var$11, $par2, $var6_0 & 15))
                $var5 = $var5 + (-1) | 0;
            $var6 = $var6 + 1 | 0;
            if ($var6 >= 0) {
                $var6 = 1;
                h: {
                    while ($var6 <= 5) {
                        var$4 = $this.$worldObj11;
                        $var6_0 = $par3 + $var6 | 0;
                        $var4 = $var6_0 >> 4;
                        var$4 = var$4.$chunkProvider;
                        var$5 = var$4.$loadedChunkHashMap;
                        var$13 = Long_or(var$10, Long_shl(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), 32));
                        var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                        var$14 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                        var$15 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                        var$16 = var$5.$hashArray.data;
                        var$5 = var$16[var$15 & (var$16.length - 1 | 0)];
                        i: {
                            while (var$5 !== null) {
                                if (Long_eq(var$5.$key1, var$13)) {
                                    var$5 = var$5.$value4;
                                    break i;
                                }
                                var$5 = var$5.$nextEntry;
                            }
                            var$5 = null;
                        }
                        var$5 = var$5;
                        if (var$5 === null) {
                            if (var$4.$worldObj0.$findingSpawnPoint)
                                break h;
                            if (var$4.$loadChunkOnProvideRequest)
                                break h;
                            var$5 = var$4.$defaultEmptyChunk;
                        }
                        if (var$5.$canBlockSeeTheSky(var$11, $par2, $var6_0 & 15))
                            $var5 = $var5 + 1 | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                    if ($var5) {
                        var$4 = $this.$newDoors;
                        var$5 = new nms_VillageDoorInfo;
                        $var5 = $var5 <= 0 ? 2 : (-2);
                        $var6_0 = $this.$tickCounter;
                        var$5.$posX2 = $par1;
                        var$5.$posY2 = $par2;
                        var$5.$posZ2 = $par3;
                        var$5.$insideDirectionX = 0;
                        var$5.$insideDirectionZ = $var5;
                        var$5.$lastActivityTimestamp = $var6_0;
                        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                        var$16 = var$4.$array.data;
                        $par2 = var$4.$size0;
                        var$4.$size0 = $par2 + 1 | 0;
                        var$16[$par2] = var$5;
                        var$4.$modCount = var$4.$modCount + 1 | 0;
                    }
                    return;
                }
                $ptr = 5;
                continue main;
            }
            var$4 = $this.$worldObj11;
            $var6_0 = $par3 + $var6 | 0;
            $var4 = $var6_0 >> 4;
            var$4 = var$4.$chunkProvider;
            var$5 = var$4.$loadedChunkHashMap;
            var$13 = Long_or(var$10, Long_shl(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), 32));
            var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
            var$14 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
            var$15 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
            var$16 = var$5.$hashArray.data;
            var$5 = var$16[var$15 & (var$16.length - 1 | 0)];
            j: {
                while (var$5 !== null) {
                    if (Long_eq(var$5.$key1, var$13)) {
                        var$5 = var$5.$value4;
                        break j;
                    }
                    var$5 = var$5.$nextEntry;
                }
                var$5 = null;
            }
            var$5 = var$5;
            if (var$5 !== null)
                continue;
            if (var$4.$worldObj0.$findingSpawnPoint)
                break;
            if (var$4.$loadChunkOnProvideRequest)
                break;
            var$5 = var$4.$defaultEmptyChunk;
        }
        continue main;
    case 4:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, var$9, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        a: {
            while (true) {
                if (var$4.$canBlockSeeTheSky(var$15 & 15, $par2, var$14))
                    $var5_0 = $var5_0 + 1 | 0;
                var$11 = var$11 + 1 | 0;
                if (var$11 > 5)
                    break;
                var$4 = $this.$worldObj11;
                var$15 = $par1 + var$11 | 0;
                var$9 = var$15 >> 4;
                var$5 = var$4.$chunkProvider;
                var$4 = var$5.$loadedChunkHashMap;
                var$10 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), var$13);
                $var5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                $var5 = $var5 ^ ($var5 >>> 20 | 0) ^ ($var5 >>> 12 | 0);
                $var6_0 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
                var$16 = var$4.$hashArray.data;
                var$4 = var$16[$var6_0 & (var$16.length - 1 | 0)];
                k: {
                    while (var$4 !== null) {
                        if (Long_eq(var$4.$key1, var$10)) {
                            var$4 = var$4.$value4;
                            break k;
                        }
                        var$4 = var$4.$nextEntry;
                    }
                    var$4 = null;
                }
                var$4 = var$4;
                if (var$4 !== null)
                    continue;
                if (var$5.$worldObj0.$findingSpawnPoint)
                    break a;
                if (var$5.$loadChunkOnProvideRequest)
                    break a;
                var$4 = var$5.$defaultEmptyChunk;
            }
            if ($var5_0) {
                var$4 = $this.$newDoors;
                var$5 = new nms_VillageDoorInfo;
                $var6 = $var5_0 <= 0 ? 2 : (-2);
                $var6_0 = $this.$tickCounter;
                var$5.$posX2 = $par1;
                var$5.$posY2 = $par2;
                var$5.$posZ2 = $par3;
                var$5.$insideDirectionX = $var6;
                var$5.$insideDirectionZ = 0;
                var$5.$lastActivityTimestamp = $var6_0;
                ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                var$16 = var$4.$array.data;
                $par2 = var$4.$size0;
                var$4.$size0 = $par2 + 1 | 0;
                var$16[$par2] = var$5;
                var$4.$modCount = var$4.$modCount + 1 | 0;
            }
            return;
        }
        continue main;
    case 5:
        $tmp = nms_ChunkProviderServer_loadChunk(var$4, var$9, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        a: {
            while (true) {
                if (var$5.$canBlockSeeTheSky(var$11, $par2, $var6_0 & 15))
                    $var5 = $var5 + 1 | 0;
                $var6 = $var6 + 1 | 0;
                if ($var6 > 5)
                    break;
                var$4 = $this.$worldObj11;
                $var6_0 = $par3 + $var6 | 0;
                $var4 = $var6_0 >> 4;
                var$4 = var$4.$chunkProvider;
                var$5 = var$4.$loadedChunkHashMap;
                var$13 = Long_or(var$10, Long_shl(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), 32));
                var$14 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                var$14 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
                var$15 = var$14 ^ (var$14 >>> 7 | 0) ^ (var$14 >>> 4 | 0);
                var$16 = var$5.$hashArray.data;
                var$5 = var$16[var$15 & (var$16.length - 1 | 0)];
                k: {
                    while (var$5 !== null) {
                        if (Long_eq(var$5.$key1, var$13)) {
                            var$5 = var$5.$value4;
                            break k;
                        }
                        var$5 = var$5.$nextEntry;
                    }
                    var$5 = null;
                }
                var$5 = var$5;
                if (var$5 !== null)
                    continue;
                if (var$4.$worldObj0.$findingSpawnPoint)
                    break a;
                if (var$4.$loadChunkOnProvideRequest)
                    break a;
                var$5 = var$4.$defaultEmptyChunk;
            }
            if ($var5) {
                var$4 = $this.$newDoors;
                var$5 = new nms_VillageDoorInfo;
                $var5 = $var5 <= 0 ? 2 : (-2);
                $var6_0 = $this.$tickCounter;
                var$5.$posX2 = $par1;
                var$5.$posY2 = $par2;
                var$5.$posZ2 = $par3;
                var$5.$insideDirectionX = 0;
                var$5.$insideDirectionZ = $var5;
                var$5.$lastActivityTimestamp = $var6_0;
                ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                var$16 = var$4.$array.data;
                $par2 = var$4.$size0;
                var$4.$size0 = $par2 + 1 | 0;
                var$16[$par2] = var$5;
                var$4.$modCount = var$4.$modCount + 1 | 0;
            }
            return;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $var5, $var4, $var6, var$9, var$10, var$11, $var6_0, var$13, var$14, var$15, var$16, $var5_0, $ptr);
},
nms_VillageCollection_isVillagerPositionPresent = ($this, $par1, $par2, $par3) => {
    let var$4, $var4$index, var$6, var$7, $var4$index_0, $var5;
    var$4 = $this.$villagerPositionsList;
    $var4$index = 0;
    var$6 = var$4.$modCount;
    var$7 = var$4.$size();
    while (true) {
        if (!($var4$index >= var$7 ? 0 : 1))
            return 0;
        if (var$6 < var$4.$modCount) {
            var$4 = new ju_ConcurrentModificationException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
        $var4$index_0 = $var4$index + 1 | 0;
        $var5 = var$4.$get($var4$index);
        if ($var5.$posX0 != $par1) {
            $var4$index = $var4$index_0;
            continue;
        }
        if ($var5.$posY0 != $par2) {
            $var4$index = $var4$index_0;
            continue;
        }
        if ($var5.$posZ0 == $par3)
            break;
        $var4$index = $var4$index_0;
    }
    return 1;
},
nms_VillageCollection_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var5, $var3, var$4, $var2, var$6, var$7, $var4;
    a: {
        $var5 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2124).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2124).$nativeString.length)
                    break a;
                $rt_s(2124).$hashCode1 = (31 * $rt_s(2124).$hashCode1 | 0) + $rt_s(2124).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(2124).$hashCode1;
    var$4 = $var5.$elementData.data;
    $var5 = var$4[$var3 & (var$4.length - 1 | 0)];
    while ($var5 !== null) {
        if ($var5.$origKeyHash == $var3) {
            b: {
                $var2 = $var5.$key;
                if ($rt_s(2124) !== $var2) {
                    if ($rt_s(2124) === $var2)
                        var$6 = 1;
                    else if (!($var2 instanceof jl_String))
                        var$6 = 0;
                    else {
                        $var2 = $var2;
                        var$6 = $rt_s(2124).$nativeString !== $var2.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var5 = $var5.$next3;
    }
    if (!($var5 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var5 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2124) === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2124).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2124).$nativeString.length)
                            break c;
                        $rt_s(2124).$hashCode1 = (31 * $rt_s(2124).$hashCode1 | 0) + $rt_s(2124).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2124).$hashCode1;
            var$4 = $var5.$elementData.data;
            $var5 = var$4[$var3 & (var$4.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $var3) {
                    d: {
                        $var2 = $var5.$key;
                        if ($rt_s(2124) !== $var2) {
                            if ($rt_s(2124) === $var2)
                                var$6 = 1;
                            else if (!($var2 instanceof jl_String))
                                var$6 = 0;
                            else {
                                $var2 = $var2;
                                var$6 = $rt_s(2124).$nativeString !== $var2.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var3 = ($var5 === null ? null : $var5.$value0).$data;
    }
    e: {
        $this.$tickCounter = $var3;
        $var5 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2125).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2125).$nativeString.length)
                    break e;
                $rt_s(2125).$hashCode1 = (31 * $rt_s(2125).$hashCode1 | 0) + $rt_s(2125).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2125).$hashCode1;
    var$4 = $var5.$elementData.data;
    $var5 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var5 !== null) {
        if ($var5.$origKeyHash == var$7) {
            f: {
                $var2 = $var5.$key;
                if ($rt_s(2125) !== $var2) {
                    if ($rt_s(2125) === $var2)
                        $var3 = 1;
                    else if (!($var2 instanceof jl_String))
                        $var3 = 0;
                    else {
                        $var2 = $var2;
                        $var3 = $rt_s(2125).$nativeString !== $var2.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var5 = $var5.$next3;
    }
    if (!($var5 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2125) !== null)
            $var2.$name = $rt_s(2125);
        else
            $var2.$name = $rt_s(3);
        $par1NBTTagCompound = new ju_ArrayList;
        $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $par1NBTTagCompound;
    } else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2125) === null) {
            $var2 = $par1NBTTagCompound.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2125).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2125).$nativeString.length)
                            break g;
                        $rt_s(2125).$hashCode1 = (31 * $rt_s(2125).$hashCode1 | 0) + $rt_s(2125).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2125).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            $var2 = var$4[var$6 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$6) {
                    h: {
                        $par1NBTTagCompound = $var2.$key;
                        if ($rt_s(2125) !== $par1NBTTagCompound) {
                            if ($rt_s(2125) === $par1NBTTagCompound)
                                $var3 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                $var3 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                $var3 = $rt_s(2125).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    }
    $var3 = 0;
    i: {
        while (true) {
            $par1NBTTagCompound = $var2.$tagList;
            var$6 = $rt_compare($var3, $par1NBTTagCompound.$size0);
            if (var$6 >= 0)
                break;
            if ($var3 < 0)
                break i;
            if (var$6 >= 0)
                break i;
            $var4 = $par1NBTTagCompound.$array.data[$var3];
            $var5 = nms_Village__init_2();
            nms_Village_readVillageDataFromNBT($var5, $var4);
            $par1NBTTagCompound = $this.$villageList;
            ju_ArrayList_ensureCapacity($par1NBTTagCompound, $par1NBTTagCompound.$size0 + 1 | 0);
            var$4 = $par1NBTTagCompound.$array.data;
            var$7 = $par1NBTTagCompound.$size0;
            $par1NBTTagCompound.$size0 = var$7 + 1 | 0;
            var$4[var$7] = $var5;
            $par1NBTTagCompound.$modCount = $par1NBTTagCompound.$modCount + 1 | 0;
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_VillageCollection_writeToNBT = ($this, $par1NBTTagCompound) => {
    let $var3$index, var$3, var$4, $var2, var$6, var$7, $var3$index_0, $var4, $var5, var$11, var$12, var$13;
    $var3$index = $this.$tickCounter;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2124);
    var$4.$data = $var3$index;
    ju_HashMap_putImpl(var$3, $rt_s(2124), var$4);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(2125);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$4;
    var$4 = $this.$villageList;
    $var3$index = 0;
    var$6 = var$4.$modCount;
    var$7 = var$4.$size();
    while ($var3$index >= var$7 ? 0 : 1) {
        if (var$6 < var$4.$modCount) {
            $par1NBTTagCompound = new ju_ConcurrentModificationException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
        $var3$index_0 = $var3$index + 1 | 0;
        $var4 = var$4.$get($var3$index);
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(2126);
        var$3 = new ju_HashMap;
        $var3$index = ju_HashMap_calculateCapacity(16);
        var$3.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, $var3$index);
        var$12 = var$11.data;
        var$3.$elementData = var$11;
        var$3.$loadFactor = 0.75;
        var$3.$threshold = var$12.length * 0.75 | 0;
        $var5.$tagMap = var$3;
        nms_Village_writeVillageDataToNBT($var4, $var5);
        $var2.$tagType = 10;
        var$3 = $var2.$tagList;
        ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
        var$12 = var$3.$array.data;
        var$13 = var$3.$size0;
        var$3.$size0 = var$13 + 1 | 0;
        var$12[var$13] = $var5;
        var$3.$modCount = var$3.$modCount + 1 | 0;
        $var3$index = $var3$index_0;
    }
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2125);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2125), $var2);
};
function nms_LongHashMap() {
    let a = this; jl_Object.call(a);
    a.$hashArray = null;
    a.$numHashElements = 0;
    a.$capacity0 = 0;
    a.$percentUseable = 0.75;
    a.$modCount4 = 0;
}
let nms_LongHashMap__init_ = $this => {
    $this.$hashArray = $rt_createArray(nms_LongHashMapEntry, 16);
    $this.$capacity0 = 12;
    $this.$percentUseable = 0.75;
},
nms_LongHashMap__init_0 = () => {
    let var_0 = new nms_LongHashMap();
    nms_LongHashMap__init_(var_0);
    return var_0;
},
nms_LongHashMap_hash = $par0 => {
    $par0 = $par0 ^ ($par0 >>> 20 | 0) ^ ($par0 >>> 12 | 0);
    return $par0 ^ ($par0 >>> 7 | 0) ^ ($par0 >>> 4 | 0);
},
nms_LongHashMap_add = ($this, $par1, $par3Obj) => {
    let var$3, var$4, var$5, $var5, $var6;
    var$3 = Long_lo(Long_xor($par1, Long_shru($par1, 32)));
    var$3 = var$3 ^ (var$3 >>> 20 | 0) ^ (var$3 >>> 12 | 0);
    var$4 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
    var$5 = $this.$hashArray.data;
    $var5 = var$4 & (var$5.length - 1 | 0);
    $var6 = var$5[$var5];
    while (true) {
        if ($var6 === null) {
            $this.$modCount4 = $this.$modCount4 + 1 | 0;
            nms_LongHashMap_createKey($this, var$4, $par1, $par3Obj, $var5);
            return;
        }
        if (Long_eq($var6.$key1, $par1))
            break;
        $var6 = $var6.$nextEntry;
    }
    $var6.$value4 = $par3Obj;
},
nms_LongHashMap_copyHashTableTo = ($this, $par1ArrayOfLongHashMapEntry) => {
    let $var2, $var3, $var4, var$5, $var5, $var6, $var7;
    $par1ArrayOfLongHashMapEntry = $par1ArrayOfLongHashMapEntry.data;
    $var2 = $this.$hashArray;
    $var3 = $par1ArrayOfLongHashMapEntry.length;
    $var4 = 0;
    $var3 = $var3 - 1 | 0;
    while (true) {
        var$5 = $var2.data;
        if ($var4 >= var$5.length)
            break;
        a: {
            $var5 = var$5[$var4];
            if ($var5 !== null) {
                var$5[$var4] = null;
                while (true) {
                    $var6 = $var5.$nextEntry;
                    $var7 = $var5.$hash3 & $var3;
                    $var5.$nextEntry = $par1ArrayOfLongHashMapEntry[$var7];
                    $par1ArrayOfLongHashMapEntry[$var7] = $var5;
                    if ($var6 === null)
                        break a;
                    $var5 = $var6;
                }
            }
        }
        $var4 = $var4 + 1 | 0;
    }
},
nms_LongHashMap_removeKey = ($this, $par1) => {
    let var$2, $var4, var$4, $var6, var$6, $var6_0;
    var$2 = Long_lo(Long_xor($par1, Long_shru($par1, 32)));
    var$2 = var$2 ^ (var$2 >>> 20 | 0) ^ (var$2 >>> 12 | 0);
    $var4 = var$2 ^ (var$2 >>> 7 | 0) ^ (var$2 >>> 4 | 0);
    var$4 = $this.$hashArray.data;
    $var4 = $var4 & (var$4.length - 1 | 0);
    $var6 = var$4[$var4];
    var$6 = $var6;
    while ($var6 !== null) {
        $var6_0 = $var6.$nextEntry;
        if (Long_eq($var6.$key1, $par1)) {
            $this.$modCount4 = $this.$modCount4 + 1 | 0;
            $this.$numHashElements = $this.$numHashElements - 1 | 0;
            if (var$6 !== $var6)
                var$6.$nextEntry = $var6_0;
            else
                var$4[$var4] = $var6_0;
            return $var6;
        }
        var$6 = $var6;
        $var6 = $var6_0;
    }
    return $var6;
},
nms_LongHashMap_createKey = ($this, $par1, $par2, $par4Obj, $par5) => {
    let var$5, $var6, var$7;
    var$5 = $this.$hashArray.data;
    $var6 = var$5[$par5];
    var$7 = new nms_LongHashMapEntry;
    var$7.$value4 = $par4Obj;
    var$7.$nextEntry = $var6;
    var$7.$key1 = $par2;
    var$7.$hash3 = $par1;
    var$5[$par5] = var$7;
    $par1 = $this.$numHashElements;
    $this.$numHashElements = $par1 + 1 | 0;
    if ($par1 >= $this.$capacity0) {
        $par5 = var$5.length;
        $par1 = 2 * $par5 | 0;
        if ($par5 == 1073741824)
            $this.$capacity0 = 2147483647;
        else {
            var$5 = $rt_createArray(nms_LongHashMapEntry, $par1);
            nms_LongHashMap_copyHashTableTo($this, var$5);
            $this.$hashArray = var$5;
            $this.$capacity0 = $par1 * 0.75 | 0;
        }
    }
};
function nms_IntHashMapEntry() {
    let a = this; jl_Object.call(a);
    a.$hashEntry = 0;
    a.$valueEntry = null;
    a.$nextEntry0 = null;
    a.$slotHash = 0;
}
function ju_DuplicateFormatFlagsException() {
    ju_IllegalFormatException.call(this);
    this.$flags5 = null;
}
function ju_IllegalFormatPrecisionException() {
    ju_IllegalFormatException.call(this);
    this.$precision2 = 0;
}
function jl_Byte() {
    jl_Number.call(this);
    this.$value1 = 0;
}
let jl_Byte_TYPE = null,
jl_Byte_byteCache = null,
jl_Byte_equals = ($this, $other) => {
    return $other instanceof jl_Byte && $other.$value1 == $this.$value1 ? 1 : 0;
},
jl_Byte__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    jl_Byte_TYPE = $rt_cls($rt_bytecls);
    var$1 = $rt_createArray(jl_Byte, 256);
    var$2 = var$1.data;
    var$3 = 0;
    var$4 = var$2.length;
    while (var$3 < var$4) {
        var$5 = new jl_Byte;
        var$5.$value1 = (var$3 - 128 | 0) << 24 >> 24;
        var$2[var$3] = var$5;
        var$3 = var$3 + 1 | 0;
    }
    jl_Byte_byteCache = var$1;
};
function jl_Short() {
    jl_Number.call(this);
    this.$value6 = 0;
}
let jl_Short_TYPE = null,
jl_Short_shortCache = null,
jl_Short_shortValue = $this => {
    return $this.$value6;
},
jl_Short_valueOf = $i => {
    let var$2;
    if ($i >= (-128) && $i <= 127) {
        jl_Short_ensureShortCache();
        return jl_Short_shortCache.data[$i + 128 | 0];
    }
    var$2 = new jl_Short;
    var$2.$value6 = $i;
    return var$2;
},
jl_Short_ensureShortCache = () => {
    let var$1, var$2, $j, var$4, var$5;
    a: {
        if (jl_Short_shortCache === null) {
            var$1 = $rt_createArray(jl_Short, 256);
            var$2 = var$1.data;
            jl_Short_shortCache = var$1;
            $j = 0;
            var$4 = var$2.length;
            while (true) {
                if ($j >= var$4)
                    break a;
                var$5 = new jl_Short;
                var$5.$value6 = ($j - 128 | 0) << 16 >> 16;
                var$2[$j] = var$5;
                $j = $j + 1 | 0;
            }
        }
    }
},
jl_Short_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$value6;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10);
    var$3 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$3;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_(var$2);
    $rt_throw(var$2);
},
jl_Short_equals = ($this, $other) => {
    return $other instanceof jl_Short && $other.$value6 == $this.$value6 ? 1 : 0;
},
jl_Short_hashCode = $this => {
    return $this.$value6;
},
jl_Short_compareTo = ($this, var$1) => {
    var$1 = var$1;
    return $this.$value6 - var$1.$value6 | 0;
},
jl_Short__clinit_ = () => {
    jl_Short_TYPE = $rt_cls($rt_shortcls);
};
function ju_IllegalFormatCodePointException() {
    ju_IllegalFormatException.call(this);
    this.$codePoint = 0;
}
function ju_IllegalFormatConversionException() {
    let a = this; ju_IllegalFormatException.call(a);
    a.$conversion0 = 0;
    a.$argumentClass = null;
}
let ju_Formattable = $rt_classWithoutFields(0);
function jm_BigDecimal() {
    let a = this; jl_Number.call(a);
    a.$intVal = null;
    a.$bitLength0 = 0;
    a.$smallValue = Long_ZERO;
    a.$scale = 0;
    a.$precision1 = 0;
}
let jm_BigDecimal_ZERO = null,
jm_BigDecimal_ONE = null,
jm_BigDecimal_TEN = null,
jm_BigDecimal_FIVE_POW = null,
jm_BigDecimal_TEN_POW = null,
jm_BigDecimal_LONG_TEN_POW = null,
jm_BigDecimal_LONG_FIVE_POW = null,
jm_BigDecimal_LONG_FIVE_POW_BIT_LENGTH = null,
jm_BigDecimal_LONG_TEN_POW_BIT_LENGTH = null,
jm_BigDecimal_BI_SCALED_BY_ZERO = null,
jm_BigDecimal_ZERO_SCALED_BY = null,
jm_BigDecimal_CH_ZEROS = null,
jm_BigDecimal_$callClinit = () => {
    jm_BigDecimal_$callClinit = $rt_eraseClinit(jm_BigDecimal);
    jm_BigDecimal__clinit_();
},
jm_BigDecimal_valueOf = ($unscaledVal, $scale) => {
    let var$3, var$4, var$5;
    jm_BigDecimal_$callClinit();
    if (!$scale) {
        var$3 = Long_compare($unscaledVal, Long_ZERO);
        if (var$3 >= 0 && Long_lt($unscaledVal, Long_fromInt(11)))
            var$4 = jm_BigDecimal_BI_SCALED_BY_ZERO.data[Long_lo($unscaledVal)];
        else {
            var$4 = new jm_BigDecimal;
            var$4.$smallValue = $unscaledVal;
            var$4.$scale = 0;
            if (var$3 < 0)
                $unscaledVal = Long_xor($unscaledVal, Long_fromInt(-1));
            var$4.$bitLength0 = 64 - jl_Long_numberOfLeadingZeros($unscaledVal) | 0;
        }
        return var$4;
    }
    var$3 = Long_compare($unscaledVal, Long_ZERO);
    if (!var$3 && $scale >= 0) {
        var$5 = jm_BigDecimal_ZERO_SCALED_BY.data;
        if ($scale < var$5.length)
            return var$5[$scale];
    }
    var$4 = new jm_BigDecimal;
    var$4.$smallValue = $unscaledVal;
    var$4.$scale = $scale;
    if (var$3 < 0)
        $unscaledVal = Long_xor($unscaledVal, Long_fromInt(-1));
    var$4.$bitLength0 = 64 - jl_Long_numberOfLeadingZeros($unscaledVal) | 0;
    return var$4;
},
jm_BigDecimal_multiply = ($this, $multiplicand) => {
    let $newScale, var$3, var$4, var$5, var$6, var$7, var$8;
    $newScale = Long_add(Long_fromInt($this.$scale), Long_fromInt($multiplicand.$scale));
    var$3 = $this.$bitLength0;
    if (!(!var$3 && Long_ne($this.$smallValue, Long_fromInt(-1)) ? 1 : 0)) {
        var$4 = $multiplicand.$bitLength0;
        if (!(!var$4 && Long_ne($multiplicand.$smallValue, Long_fromInt(-1)) ? 1 : 0)) {
            if ((var$3 + var$4 | 0) < 64) {
                var$5 = Long_mul($this.$smallValue, $multiplicand.$smallValue);
                jm_BigDecimal_$callClinit();
                if (Long_lt($newScale, Long_fromInt(-2147483648))) {
                    $multiplicand = new jl_ArithmeticException;
                    $multiplicand.$suppressionEnabled = 1;
                    $multiplicand.$writableStackTrace = 1;
                    $multiplicand.$message = $rt_s(2127);
                    $rt_throw($multiplicand);
                }
                if (Long_le($newScale, Long_fromInt(2147483647)))
                    return jm_BigDecimal_valueOf(var$5, Long_lo($newScale));
                $multiplicand = new jl_ArithmeticException;
                $multiplicand.$suppressionEnabled = 1;
                $multiplicand.$writableStackTrace = 1;
                $multiplicand.$message = $rt_s(2128);
                $rt_throw($multiplicand);
            }
            var$6 = new jm_BigDecimal;
            if ($this.$intVal === null)
                $this.$intVal = jm_BigInteger_valueOf($this.$smallValue);
            var$7 = $this.$intVal;
            if ($multiplicand.$intVal === null)
                $multiplicand.$intVal = jm_BigInteger_valueOf($multiplicand.$smallValue);
            $multiplicand = $multiplicand.$intVal;
            if (!$multiplicand.$sign1)
                $multiplicand = jm_BigInteger_ZERO;
            else if (!var$7.$sign1)
                $multiplicand = jm_BigInteger_ZERO;
            else {
                jm_Multiplication_$callClinit();
                $multiplicand = jm_Multiplication_karatsuba(var$7, $multiplicand);
            }
            jm_BigDecimal_$callClinit();
            if (Long_lt($newScale, Long_fromInt(-2147483648))) {
                $multiplicand = new jl_ArithmeticException;
                $multiplicand.$suppressionEnabled = 1;
                $multiplicand.$writableStackTrace = 1;
                $multiplicand.$message = $rt_s(2127);
                $rt_throw($multiplicand);
            }
            if (Long_gt($newScale, Long_fromInt(2147483647))) {
                $multiplicand = new jl_ArithmeticException;
                $multiplicand.$suppressionEnabled = 1;
                $multiplicand.$writableStackTrace = 1;
                $multiplicand.$message = $rt_s(2128);
                $rt_throw($multiplicand);
            }
            var$4 = Long_lo($newScale);
            if ($multiplicand === null) {
                $multiplicand = new jl_NullPointerException;
                $multiplicand.$suppressionEnabled = 1;
                $multiplicand.$writableStackTrace = 1;
                $rt_throw($multiplicand);
            }
            var$6.$scale = var$4;
            var$6.$intVal = $multiplicand;
            var$8 = jm_BitLevel_bitLength($multiplicand);
            var$6.$bitLength0 = var$8;
            if (var$8 < 64)
                var$6.$smallValue = jm_BigInteger_longValue($multiplicand);
            return var$6;
        }
    }
    jm_BigDecimal_$callClinit();
    var$4 = Long_lo($newScale);
    if (Long_eq($newScale, Long_fromInt(var$4)))
        $multiplicand = jm_BigDecimal_valueOf(Long_ZERO, var$4);
    else if (Long_lt($newScale, Long_ZERO)) {
        $multiplicand = new jm_BigDecimal;
        $multiplicand.$smallValue = Long_ZERO;
        $multiplicand.$scale = (-2147483648);
        $multiplicand.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros(0) | 0;
    } else {
        $multiplicand = new jm_BigDecimal;
        $multiplicand.$smallValue = Long_ZERO;
        $multiplicand.$scale = 2147483647;
        $multiplicand.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros(0) | 0;
    }
    return $multiplicand;
},
jm_BigDecimal_precision = $this => {
    let var$1, $bitLength, $doubleUnsc, var$4;
    var$1 = $this.$precision1;
    if (var$1 > 0)
        return var$1;
    $bitLength = $this.$bitLength0;
    $doubleUnsc = 1.0;
    if ($bitLength >= 1024) {
        var$1 = 1.0 + ($bitLength - 1 | 0) * 0.3010299956639812 | 0;
        if ($this.$intVal === null)
            $this.$intVal = jm_BigInteger_valueOf($this.$smallValue);
        if ((jm_BigInteger_divide($this.$intVal, jm_Multiplication_powerOf10(Long_fromInt(var$1)))).$sign1)
            var$1 = var$1 + 1 | 0;
    } else {
        if ($bitLength >= 64) {
            if ($this.$intVal === null)
                $this.$intVal = jm_BigInteger_valueOf($this.$smallValue);
            $doubleUnsc = jm_Conversion_bigInteger2Double($this.$intVal);
        } else if ($bitLength >= 1)
            $doubleUnsc = Long_toNumber($this.$smallValue);
        $doubleUnsc = jl_Math_absImpl($doubleUnsc);
        var$4 = otcit_DoubleAnalyzer_resultForLog10;
        otcit_DoubleAnalyzer_analyze($doubleUnsc, var$4);
        var$1 = var$4.$exponent;
        if (var$1 < 0 && Long_gt(var$4.$mantissa, Long_create(1569325056, 23283064)))
            var$1 = var$1 + 1 | 0;
        var$1 = 1 + var$1 | 0;
    }
    $this.$precision1 = var$1;
    return var$1;
},
jm_BigDecimal_compareTo = ($this, $val) => {
    let var$2, $thisSign, $valueSign, $diffPrecision, $diffScale, var$7, var$8, $thisUnscaled, $valUnscaled;
    if ($this.$bitLength0 < 64) {
        var$2 = $this.$smallValue;
        $thisSign = Long_lo(Long_or(Long_shr(var$2, 63), Long_shru(Long_neg(var$2), 63)));
    } else {
        if ($this.$intVal === null)
            $this.$intVal = jm_BigInteger_valueOf($this.$smallValue);
        $thisSign = $this.$intVal.$sign1;
    }
    if ($val.$bitLength0 < 64) {
        var$2 = $val.$smallValue;
        $valueSign = Long_lo(Long_or(Long_shr(var$2, 63), Long_shru(Long_neg(var$2), 63)));
    } else {
        if ($val.$intVal === null)
            $val.$intVal = jm_BigInteger_valueOf($val.$smallValue);
        $valueSign = $val.$intVal.$sign1;
    }
    $valueSign = $rt_compare($thisSign, $valueSign);
    if ($valueSign) {
        if ($valueSign >= 0)
            return 1;
        return (-1);
    }
    $valueSign = $this.$scale;
    $diffPrecision = $val.$scale;
    if ($valueSign == $diffPrecision && $this.$bitLength0 < 64 && $val.$bitLength0 < 64) {
        $thisSign = Long_compare($this.$smallValue, $val.$smallValue);
        return $thisSign < 0 ? (-1) : $thisSign <= 0 ? 0 : 1;
    }
    $diffScale = Long_sub(Long_fromInt($valueSign), Long_fromInt($diffPrecision));
    var$7 = $this.$precision1;
    if (var$7 <= 0)
        var$7 = (($this.$bitLength0 - 1 | 0) * 0.3010299956639812 | 0) + 1 | 0;
    $valueSign = $val.$precision1;
    if ($valueSign <= 0)
        $valueSign = (($val.$bitLength0 - 1 | 0) * 0.3010299956639812 | 0) + 1 | 0;
    var$8 = Long_fromInt(var$7 - $valueSign | 0);
    if (Long_gt(var$8, Long_add($diffScale, Long_fromInt(1))))
        return $thisSign;
    if (Long_lt(var$8, Long_sub($diffScale, Long_fromInt(1))))
        return  -$thisSign | 0;
    if ($this.$intVal === null)
        $this.$intVal = jm_BigInteger_valueOf($this.$smallValue);
    $thisUnscaled = $this.$intVal;
    if ($val.$intVal === null)
        $val.$intVal = jm_BigInteger_valueOf($val.$smallValue);
    $valUnscaled = $val.$intVal;
    $thisSign = Long_compare($diffScale, Long_ZERO);
    if ($thisSign < 0) {
        $val = jm_Multiplication_powerOf10(Long_neg($diffScale));
        $thisUnscaled = !$val.$sign1 ? jm_BigInteger_ZERO : !$thisUnscaled.$sign1 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba($thisUnscaled, $val);
    } else if ($thisSign > 0) {
        $val = jm_Multiplication_powerOf10($diffScale);
        $valUnscaled = !$val.$sign1 ? jm_BigInteger_ZERO : !$valUnscaled.$sign1 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba($valUnscaled, $val);
    }
    return jm_BigInteger_compareTo($thisUnscaled, $valUnscaled);
},
jm_BigDecimal__clinit_ = () => {
    let var$1, var$2, var$3, var$4, $i, $j, var$7;
    var$1 = new jm_BigDecimal;
    jm_BigDecimal_$callClinit();
    var$1.$smallValue = Long_ZERO;
    var$1.$scale = 0;
    var$1.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros(0) | 0;
    jm_BigDecimal_ZERO = var$1;
    var$1 = new jm_BigDecimal;
    var$1.$smallValue = Long_fromInt(1);
    var$1.$scale = 0;
    var$1.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros(1) | 0;
    jm_BigDecimal_ONE = var$1;
    var$1 = new jm_BigDecimal;
    var$1.$smallValue = Long_fromInt(10);
    var$1.$scale = 0;
    var$1.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros(10) | 0;
    jm_BigDecimal_TEN = var$1;
    var$2 = $rt_createLongArray(19);
    var$3 = var$2.data;
    var$3[0] = Long_fromInt(1);
    var$3[1] = Long_fromInt(10);
    var$3[2] = Long_fromInt(100);
    var$3[3] = Long_fromInt(1000);
    var$3[4] = Long_fromInt(10000);
    var$3[5] = Long_fromInt(100000);
    var$3[6] = Long_fromInt(1000000);
    var$3[7] = Long_fromInt(10000000);
    var$3[8] = Long_fromInt(100000000);
    var$3[9] = Long_fromInt(1000000000);
    var$3[10] = Long_create(1410065408, 2);
    var$3[11] = Long_create(1215752192, 23);
    var$3[12] = Long_create(3567587328, 232);
    var$3[13] = Long_create(1316134912, 2328);
    var$3[14] = Long_create(276447232, 23283);
    var$3[15] = Long_create(2764472320, 232830);
    var$3[16] = Long_create(1874919424, 2328306);
    var$3[17] = Long_create(1569325056, 23283064);
    var$3[18] = Long_create(2808348672, 232830643);
    jm_BigDecimal_LONG_TEN_POW = var$2;
    var$2 = $rt_createLongArray(28);
    var$4 = var$2.data;
    var$4[0] = Long_fromInt(1);
    var$4[1] = Long_fromInt(5);
    var$4[2] = Long_fromInt(25);
    var$4[3] = Long_fromInt(125);
    var$4[4] = Long_fromInt(625);
    var$4[5] = Long_fromInt(3125);
    var$4[6] = Long_fromInt(15625);
    var$4[7] = Long_fromInt(78125);
    var$4[8] = Long_fromInt(390625);
    var$4[9] = Long_fromInt(1953125);
    var$4[10] = Long_fromInt(9765625);
    var$4[11] = Long_fromInt(48828125);
    var$4[12] = Long_fromInt(244140625);
    var$4[13] = Long_fromInt(1220703125);
    var$4[14] = Long_create(1808548329, 1);
    var$4[15] = Long_create(452807053, 7);
    var$4[16] = Long_create(2264035265, 35);
    var$4[17] = Long_create(2730241733, 177);
    var$4[18] = Long_create(766306777, 888);
    var$4[19] = Long_create(3831533885, 4440);
    var$4[20] = Long_create(1977800241, 22204);
    var$4[21] = Long_create(1299066613, 111022);
    var$4[22] = Long_create(2200365769, 555111);
    var$4[23] = Long_create(2411894253, 2775557);
    var$4[24] = Long_create(3469536673, 13877787);
    var$4[25] = Long_create(167814181, 69388939);
    var$4[26] = Long_create(839070905, 346944695);
    var$4[27] = Long_create(4195354525, 1734723475);
    jm_BigDecimal_LONG_FIVE_POW = var$2;
    jm_BigDecimal_LONG_FIVE_POW_BIT_LENGTH = $rt_createIntArray(var$4.length);
    jm_BigDecimal_LONG_TEN_POW_BIT_LENGTH = $rt_createIntArray(var$3.length);
    jm_BigDecimal_BI_SCALED_BY_ZERO = $rt_createArray(jm_BigDecimal, 11);
    jm_BigDecimal_ZERO_SCALED_BY = $rt_createArray(jm_BigDecimal, 11);
    jm_BigDecimal_CH_ZEROS = $rt_createCharArray(100);
    $i = 0;
    while ($i < jm_BigDecimal_ZERO_SCALED_BY.data.length) {
        var$2 = jm_BigDecimal_BI_SCALED_BY_ZERO;
        var$1 = new jm_BigDecimal;
        var$1.$smallValue = Long_fromInt($i);
        var$1.$scale = 0;
        $j = $i >= 0 ? $i : $i ^ (-1);
        var$2 = var$2.data;
        var$1.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros($j) | 0;
        var$2[$i] = var$1;
        var$2 = jm_BigDecimal_ZERO_SCALED_BY.data;
        var$1 = new jm_BigDecimal;
        var$1.$smallValue = Long_ZERO;
        var$1.$scale = $i;
        var$1.$bitLength0 = 32 - jl_Integer_numberOfLeadingZeros(0) | 0;
        var$2[$i] = var$1;
        jm_BigDecimal_CH_ZEROS.data[$i] = 48;
        $i = $i + 1 | 0;
    }
    while (true) {
        var$2 = jm_BigDecimal_CH_ZEROS.data;
        if ($i >= var$2.length)
            break;
        var$2[$i] = 48;
        $i = $i + 1 | 0;
    }
    $j = 0;
    while (true) {
        var$2 = jm_BigDecimal_LONG_FIVE_POW_BIT_LENGTH.data;
        if ($j >= var$2.length)
            break;
        var$7 = jm_BigDecimal_LONG_FIVE_POW.data[$j];
        if (Long_lt(var$7, Long_ZERO))
            var$7 = Long_xor(var$7, Long_fromInt(-1));
        var$2[$j] = 64 - jl_Long_numberOfLeadingZeros(var$7) | 0;
        $j = $j + 1 | 0;
    }
    $j = 0;
    while (true) {
        var$2 = jm_BigDecimal_LONG_TEN_POW_BIT_LENGTH.data;
        if ($j >= var$2.length)
            break;
        var$7 = jm_BigDecimal_LONG_TEN_POW.data[$j];
        if (Long_lt(var$7, Long_ZERO))
            var$7 = Long_xor(var$7, Long_fromInt(-1));
        var$2[$j] = 64 - jl_Long_numberOfLeadingZeros(var$7) | 0;
        $j = $j + 1 | 0;
    }
    jm_Multiplication_$callClinit();
    jm_BigDecimal_TEN_POW = jm_Multiplication_bigTenPows;
    jm_BigDecimal_FIVE_POW = jm_Multiplication_bigFivePows;
};
function nles_EaglercraftRandom() {
    let a = this; jl_Object.call(a);
    a.$seed0 = Long_ZERO;
    a.$haveNextNextGaussian0 = 0;
}
let nles_EaglercraftRandom__init_ = $this => {
    let var$1;
    var$1 = Long_fromNumber(performance.now() * 1000000.0);
    $this.$seed0 = Long_fromInt(69);
    $this.$haveNextNextGaussian0 = 0;
    $this.$seed0 = var$1;
},
nles_EaglercraftRandom__init_0 = () => {
    let var_0 = new nles_EaglercraftRandom();
    nles_EaglercraftRandom__init_(var_0);
    return var_0;
};
function nms_GameRules() {
    jl_Object.call(this);
    this.$theGameRules = null;
}
let nms_GameRules__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $$je;
    var$1 = new ju_TreeMap;
    var$1.$originalComparator = null;
    var$1.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
    $this.$theGameRules = var$1;
    var$2 = new nms_GameRuleValue;
    var$2.$valueString = $rt_s(898);
    var$3 = $rt_s(898).$nativeString.toLowerCase();
    var$4 = var$3 === $rt_s(898).$nativeString ? $rt_s(898) : jl_String__init_0(var$3);
    if (var$4 !== $rt_s(898)) {
        if ($rt_s(898) instanceof jl_String) {
            var$3 = $rt_s(898);
            var$5 = var$4.$nativeString !== var$3.$nativeString ? 0 : 1;
        } else
            var$5 = 0;
    } else
        var$5 = 1;
    var$2.$valueBoolean = !var$5 ? 0 : 1;
    a: {
        try {
            var$2.$valueInteger = jl_Integer_parseInt($rt_s(898));
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    b: {
        try {
            var$2.$valueDouble = jl_Double_parseDouble($rt_s(898));
            break b;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    var$6 = var$1.$root;
    if (var$6 !== null) {
        var$3 = var$6.$key0;
        var$7 = $rt_s(1414);
        var$5 = jl_String_compareTo(var$7, var$3);
        if (var$5) {
            if (var$5 >= 0) {
                var$3 = var$6.$right;
                if (var$3 === null) {
                    var$3 = new ju_TreeMap$TreeNode;
                    var$4 = null;
                    var$3.$key0 = $rt_s(1414);
                    var$3.$value2 = var$4;
                    var$3.$height = 1;
                    var$3.$size1 = 1;
                } else {
                    var$5 = jl_String_compareTo(var$7, var$3.$key0);
                    if (var$5) {
                        if (var$5 >= 0) {
                            var$4 = var$3.$right;
                            if (var$4 !== null) {
                                var$5 = jl_String_compareTo(var$7, var$4.$key0);
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$8 = var$4.$right;
                                        if (var$8 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$8.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$9 = var$8.$right;
                                                    if (var$9 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$9.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$10 = var$9.$right;
                                                                if (var$10 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$1, var$10.$right, $rt_s(1414));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$1, var$10.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                } else
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$9.$right = var$10;
                                                            } else {
                                                                var$10 = var$9.$left;
                                                                if (var$10 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$1, var$10.$right, $rt_s(1414));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$1, var$10.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                } else
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$9.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    } else {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$9, $rt_s(1414), null);
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    }
                                                    var$8.$right = var$9;
                                                } else {
                                                    var$11 = var$8.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$10 = var$11.$left;
                                                                if (var$10 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$10.$right = ju_TreeMap_getOrCreateNode(var$1, var$10.$right, $rt_s(1414));
                                                                        else
                                                                            var$10.$left = ju_TreeMap_getOrCreateNode(var$1, var$10.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                } else
                                                                    var$10 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$8.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$8);
                                                var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                            }
                                        } else {
                                            var$8 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            jl_Object__init_(var$8);
                                            var$8.$key0 = $rt_s(1414);
                                            var$8.$value2 = var$10;
                                            var$8.$height = 1;
                                            var$8.$size1 = 1;
                                        }
                                        var$4.$right = var$8;
                                    } else {
                                        var$11 = var$4.$left;
                                        if (var$11 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$11.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$10 = var$11.$right;
                                                    if (var$10 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$10.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$10.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$10.$right = var$12;
                                                            } else {
                                                                var$12 = var$10.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$10.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    } else {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(1414), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    }
                                                    var$11.$right = var$10;
                                                } else {
                                                    var$10 = var$11.$left;
                                                    if (var$10 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$10.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$10.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$10.$right = var$12;
                                                            } else {
                                                                var$12 = var$10.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$10.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    } else {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$10, $rt_s(1414), null);
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    }
                                                    var$11.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$11);
                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                            }
                                        } else {
                                            var$11 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            jl_Object__init_(var$11);
                                            var$11.$key0 = $rt_s(1414);
                                            var$11.$value2 = var$10;
                                            var$11.$height = 1;
                                            var$11.$size1 = 1;
                                        }
                                        var$4.$left = var$11;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$4);
                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                }
                            } else {
                                var$4 = new ju_TreeMap$TreeNode;
                                var$10 = null;
                                var$4.$key0 = $rt_s(1414);
                                var$4.$value2 = var$10;
                                var$4.$height = 1;
                                var$4.$size1 = 1;
                            }
                            var$3.$right = var$4;
                        } else {
                            var$4 = var$3.$left;
                            if (var$4 !== null) {
                                var$5 = jl_String_compareTo0(var$7, var$4.$key0);
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$10 = var$4.$right;
                                        if (var$10 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$10.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$11 = var$10.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        } else {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            var$11 = null;
                                            jl_Object__init_(var$10);
                                            var$10.$key0 = $rt_s(1414);
                                            var$10.$value2 = var$11;
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        }
                                        var$4.$right = var$10;
                                    } else {
                                        var$10 = var$4.$left;
                                        if (var$10 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$10.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$11 = var$10.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        } else {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            var$11 = null;
                                            jl_Object__init_(var$10);
                                            var$10.$key0 = $rt_s(1414);
                                            var$10.$value2 = var$11;
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        }
                                        var$4.$left = var$10;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$4);
                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                }
                            } else {
                                var$4 = new ju_TreeMap$TreeNode;
                                var$10 = null;
                                var$4.$key0 = $rt_s(1414);
                                var$4.$value2 = var$10;
                                var$4.$height = 1;
                                var$4.$size1 = 1;
                            }
                            var$3.$left = var$4;
                        }
                        ju_TreeMap$TreeNode_fix(var$3);
                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                    }
                }
                var$6.$right = var$3;
            } else {
                var$3 = var$6.$left;
                if (var$3 === null) {
                    var$3 = new ju_TreeMap$TreeNode;
                    var$4 = null;
                    var$3.$key0 = $rt_s(1414);
                    var$3.$value2 = var$4;
                    var$3.$height = 1;
                    var$3.$size1 = 1;
                } else {
                    var$5 = jl_String_compareTo0(var$7, var$3.$key0);
                    if (var$5) {
                        if (var$5 >= 0) {
                            var$4 = var$3.$right;
                            if (var$4 !== null) {
                                var$5 = jl_String_compareTo0(var$7, var$4.$key0);
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$10 = var$4.$right;
                                        if (var$10 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$10.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$11 = var$10.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        } else {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            var$11 = null;
                                            jl_Object__init_(var$10);
                                            var$10.$key0 = $rt_s(1414);
                                            var$10.$value2 = var$11;
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        }
                                        var$4.$right = var$10;
                                    } else {
                                        var$10 = var$4.$left;
                                        if (var$10 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$10.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$11 = var$10.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        } else {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            var$11 = null;
                                            jl_Object__init_(var$10);
                                            var$10.$key0 = $rt_s(1414);
                                            var$10.$value2 = var$11;
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        }
                                        var$4.$left = var$10;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$4);
                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                }
                            } else {
                                var$4 = new ju_TreeMap$TreeNode;
                                var$10 = null;
                                var$4.$key0 = $rt_s(1414);
                                var$4.$value2 = var$10;
                                var$4.$height = 1;
                                var$4.$size1 = 1;
                            }
                            var$3.$right = var$4;
                        } else {
                            var$4 = var$3.$left;
                            if (var$4 !== null) {
                                var$5 = jl_String_compareTo0(var$7, var$4.$key0);
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$10 = var$4.$right;
                                        if (var$10 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$10.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$11 = var$10.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        } else {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            var$11 = null;
                                            jl_Object__init_(var$10);
                                            var$10.$key0 = $rt_s(1414);
                                            var$10.$value2 = var$11;
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        }
                                        var$4.$right = var$10;
                                    } else {
                                        var$10 = var$4.$left;
                                        if (var$10 !== null) {
                                            var$5 = jl_String_compareTo0(var$7, var$10.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$11 = var$10.$right;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$right = var$11;
                                                } else {
                                                    var$11 = var$10.$left;
                                                    if (var$11 !== null) {
                                                        var$5 = jl_String_compareTo(var$7, var$11.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$12 = var$11.$right;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$right = var$12;
                                                            } else {
                                                                var$12 = var$11.$left;
                                                                if (var$12 !== null) {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$1.$comparator, $rt_s(1414), ju_AbstractMap$SimpleEntry_getKey(var$12));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$12.$right = ju_TreeMap_getOrCreateNode(var$1, var$12.$right, $rt_s(1414));
                                                                        else
                                                                            var$12.$left = ju_TreeMap_getOrCreateNode(var$1, var$12.$left, $rt_s(1414));
                                                                        ju_TreeMap$TreeNode_fix(var$12);
                                                                        var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                                    }
                                                                } else
                                                                    var$12 = ju_TreeMap$TreeNode__init_($rt_s(1414));
                                                                var$11.$left = var$12;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                        }
                                                    } else {
                                                        var$11 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$11, $rt_s(1414), null);
                                                        var$11.$height = 1;
                                                        var$11.$size1 = 1;
                                                    }
                                                    var$10.$left = var$11;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$10);
                                                var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                            }
                                        } else {
                                            var$10 = new ju_TreeMap$TreeNode;
                                            var$11 = null;
                                            jl_Object__init_(var$10);
                                            var$10.$key0 = $rt_s(1414);
                                            var$10.$value2 = var$11;
                                            var$10.$height = 1;
                                            var$10.$size1 = 1;
                                        }
                                        var$4.$left = var$10;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$4);
                                    var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                }
                            } else {
                                var$4 = new ju_TreeMap$TreeNode;
                                var$10 = null;
                                var$4.$key0 = $rt_s(1414);
                                var$4.$value2 = var$10;
                                var$4.$height = 1;
                                var$4.$size1 = 1;
                            }
                            var$3.$left = var$4;
                        }
                        ju_TreeMap$TreeNode_fix(var$3);
                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                    }
                }
                var$6.$left = var$3;
            }
            ju_TreeMap$TreeNode_fix(var$6);
            var$6 = ju_TreeMap$TreeNode_balance(var$6);
        }
    } else {
        var$6 = new ju_TreeMap$TreeNode;
        var$3 = null;
        var$6.$key0 = $rt_s(1414);
        var$6.$value2 = var$3;
        var$6.$height = 1;
        var$6.$size1 = 1;
    }
    c: {
        var$1.$root = var$6;
        var$3 = $rt_s(1414);
        var$13 = $rt_s(1414);
        if (var$3 !== var$13) {
            var$14 = var$3.$nativeString.length;
            var$15 = var$13.$nativeString.length;
            if (var$14 < var$15)
                var$15 = var$14;
            var$5 = 0;
            d: {
                while (true) {
                    if (var$5 >= var$15) {
                        var$3.$nativeString.length;
                        var$13.$nativeString.length;
                        break c;
                    }
                    if (var$5 < 0)
                        break d;
                    if (var$5 >= var$3.$nativeString.length)
                        break d;
                    var$16 = var$3.$nativeString.charCodeAt(var$5);
                    if (var$5 < 0)
                        break;
                    if (var$5 >= var$13.$nativeString.length)
                        break;
                    if (var$16 - var$13.$nativeString.charCodeAt(var$5) | 0)
                        break c;
                    var$5 = var$5 + 1 | 0;
                }
                var$1 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$1);
                $rt_throw(var$1);
            }
            var$1 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$1);
            $rt_throw(var$1);
        }
    }
    var$13 = $rt_s(1414);
    e: {
        f: {
            g: while (true) {
                if (var$6 === null) {
                    var$6 = null;
                    break e;
                }
                h: {
                    var$3 = var$6.$key0;
                    if (var$13 === var$3)
                        var$5 = 0;
                    else {
                        var$14 = var$13.$nativeString.length;
                        var$15 = var$3.$nativeString.length;
                        if (var$14 < var$15)
                            var$15 = var$14;
                        var$14 = 0;
                        while (true) {
                            if (var$14 >= var$15) {
                                var$5 = var$13.$nativeString.length - var$3.$nativeString.length | 0;
                                break h;
                            }
                            if (var$14 < 0)
                                break f;
                            if (var$14 >= var$13.$nativeString.length)
                                break f;
                            var$16 = var$13.$nativeString.charCodeAt(var$14);
                            if (var$14 < 0)
                                break g;
                            if (var$14 >= var$3.$nativeString.length)
                                break g;
                            var$5 = var$16 - var$3.$nativeString.charCodeAt(var$14) | 0;
                            if (var$5)
                                break;
                            var$14 = var$14 + 1 | 0;
                        }
                    }
                }
                if (!var$5)
                    break e;
                var$6 = var$5 >= 0 ? var$6.$right : var$6.$left;
            }
            var$1 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$1);
            $rt_throw(var$1);
        }
        var$1 = new jl_StringIndexOutOfBoundsException;
        jl_IndexOutOfBoundsException__init_(var$1);
        $rt_throw(var$1);
    }
    var$6.$value2 = var$2;
    var$6.$value2 = var$2;
    var$1.$modCount2 = var$1.$modCount2 + 1 | 0;
    var$7 = $this.$theGameRules;
    var$12 = new nms_GameRuleValue;
    var$12.$valueString = $rt_s(898);
    var$6 = $rt_s(898).$nativeString.toLowerCase();
    var$2 = var$6 === $rt_s(898).$nativeString ? $rt_s(898) : jl_String__init_0(var$6);
    if (var$2 === $rt_s(898))
        var$5 = 1;
    else if (!($rt_s(898) instanceof jl_String))
        var$5 = 0;
    else {
        var$6 = $rt_s(898);
        var$5 = var$2.$nativeString !== var$6.$nativeString ? 0 : 1;
    }
    var$12.$valueBoolean = !var$5 ? 0 : 1;
    i: {
        try {
            var$12.$valueInteger = jl_Integer_parseInt($rt_s(898));
            break i;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    j: {
        try {
            var$12.$valueDouble = jl_Double_parseDouble($rt_s(898));
            break j;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    var$8 = var$7.$root;
    if (var$8 === null) {
        var$8 = new ju_TreeMap$TreeNode;
        var$13 = null;
        var$8.$key0 = $rt_s(1417);
        var$8.$value2 = var$13;
        var$8.$height = 1;
        var$8.$size1 = 1;
    } else {
        k: {
            var$13 = var$8.$key0;
            var$4 = $rt_s(1417);
            var$13 = var$13;
            if (var$4 === var$13)
                var$5 = 0;
            else {
                var$14 = var$4.$nativeString.length;
                var$15 = var$13.$nativeString.length;
                if (var$14 < var$15)
                    var$15 = var$14;
                var$14 = 0;
                l: {
                    while (true) {
                        if (var$14 >= var$15) {
                            var$5 = var$4.$nativeString.length - var$13.$nativeString.length | 0;
                            break k;
                        }
                        if (var$14 < 0)
                            break l;
                        if (var$14 >= var$4.$nativeString.length)
                            break l;
                        var$16 = var$4.$nativeString.charCodeAt(var$14);
                        if (var$14 < 0)
                            break;
                        if (var$14 >= var$13.$nativeString.length)
                            break;
                        var$5 = var$16 - var$13.$nativeString.charCodeAt(var$14) | 0;
                        if (var$5)
                            break k;
                        var$14 = var$14 + 1 | 0;
                    }
                    var$1 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$1);
                    $rt_throw(var$1);
                }
                var$1 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$1);
                $rt_throw(var$1);
            }
        }
        if (var$5) {
            if (var$5 < 0) {
                var$10 = var$8.$left;
                if (var$10 === null) {
                    var$10 = new ju_TreeMap$TreeNode;
                    var$13 = null;
                    var$10.$key0 = $rt_s(1417);
                    var$10.$value2 = var$13;
                    var$10.$height = 1;
                    var$10.$size1 = 1;
                } else {
                    m: {
                        var$13 = var$10.$key0;
                        if (var$4 === var$13)
                            var$5 = 0;
                        else {
                            var$14 = var$4.$nativeString.length;
                            var$15 = var$13.$nativeString.length;
                            if (var$14 < var$15)
                                var$15 = var$14;
                            var$14 = 0;
                            n: {
                                while (true) {
                                    if (var$14 >= var$15) {
                                        var$5 = var$4.$nativeString.length - var$13.$nativeString.length | 0;
                                        break m;
                                    }
                                    if (var$14 < 0)
                                        break n;
                                    if (var$14 >= var$4.$nativeString.length)
                                        break n;
                                    var$16 = var$4.$nativeString.charCodeAt(var$14);
                                    if (var$14 < 0)
                                        break;
                                    if (var$14 >= var$13.$nativeString.length)
                                        break;
                                    var$5 = var$16 - var$13.$nativeString.charCodeAt(var$14) | 0;
                                    if (var$5)
                                        break m;
                                    var$14 = var$14 + 1 | 0;
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                    }
                    if (var$5) {
                        if (var$5 < 0) {
                            var$13 = var$10.$left;
                            if (var$13 === null) {
                                var$13 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$13.$key0 = $rt_s(1417);
                                var$13.$value2 = var$6;
                                var$13.$height = 1;
                                var$13.$size1 = 1;
                            } else {
                                o: {
                                    var$6 = var$13.$key0;
                                    if (var$4 === var$6)
                                        var$5 = 0;
                                    else {
                                        var$14 = jl_Math_min(jl_String_length(var$4), jl_String_length(var$6));
                                        var$16 = 0;
                                        while (true) {
                                            if (var$16 >= var$14) {
                                                var$5 = jl_String_length(var$4) - jl_String_length(var$6) | 0;
                                                break o;
                                            }
                                            var$5 = jl_String_charAt(var$4, var$16) - jl_String_charAt(var$6, var$16) | 0;
                                            if (var$5)
                                                break;
                                            var$16 = var$16 + 1 | 0;
                                        }
                                    }
                                }
                                if (var$5) {
                                    if (var$5 < 0)
                                        var$13.$left = ju_TreeMap_getOrCreateNode(var$7, var$13.$left, $rt_s(1417));
                                    else {
                                        var$6 = var$13.$right;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$2 = null;
                                            jl_Object__init_(var$6);
                                            var$6.$key0 = $rt_s(1417);
                                            var$6.$value2 = var$2;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$6.$key0);
                                            if (var$5) {
                                                if (var$5 < 0)
                                                    var$6.$left = ju_TreeMap_getOrCreateNode(var$7, var$6.$left, $rt_s(1417));
                                                else {
                                                    var$2 = var$6.$right;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$right = var$2;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$13.$right = var$6;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$13);
                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                }
                            }
                            var$10.$left = var$13;
                        } else {
                            var$11 = var$10.$right;
                            if (var$11 === null) {
                                var$11 = new ju_TreeMap$TreeNode;
                                var$13 = null;
                                var$11.$key0 = $rt_s(1417);
                                var$11.$value2 = var$13;
                                var$11.$height = 1;
                                var$11.$size1 = 1;
                            } else {
                                p: {
                                    var$13 = var$11.$key0;
                                    if (var$4 === var$13)
                                        var$5 = 0;
                                    else {
                                        var$14 = jl_Math_min(jl_String_length(var$4), jl_String_length(var$13));
                                        var$16 = 0;
                                        while (true) {
                                            if (var$16 >= var$14) {
                                                var$5 = jl_String_length(var$4) - jl_String_length(var$13) | 0;
                                                break p;
                                            }
                                            var$5 = jl_String_charAt(var$4, var$16) - jl_String_charAt(var$13, var$16) | 0;
                                            if (var$5)
                                                break;
                                            var$16 = var$16 + 1 | 0;
                                        }
                                    }
                                }
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$9 = var$11.$right;
                                        if (var$9 === null) {
                                            var$9 = new ju_TreeMap$TreeNode;
                                            var$13 = null;
                                            jl_Object__init_(var$9);
                                            var$9.$key0 = $rt_s(1417);
                                            var$9.$value2 = var$13;
                                            var$9.$height = 1;
                                            var$9.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$9.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$13 = var$9.$right;
                                                    if (var$13 === null) {
                                                        var$13 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$13, $rt_s(1417), null);
                                                        var$13.$height = 1;
                                                        var$13.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$13.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$6 = var$13.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$7, var$6.$right, $rt_s(1417));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$7, var$6.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$13.$right = var$6;
                                                            } else {
                                                                var$6 = var$13.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$7, var$6.$right, $rt_s(1417));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$7, var$6.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$13.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                        }
                                                    }
                                                    var$9.$right = var$13;
                                                } else {
                                                    var$13 = var$9.$left;
                                                    if (var$13 === null) {
                                                        var$13 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$13, $rt_s(1417), null);
                                                        var$13.$height = 1;
                                                        var$13.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$13.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$6 = var$13.$right;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$7, var$6.$right, $rt_s(1417));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$7, var$6.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$13.$right = var$6;
                                                            } else {
                                                                var$6 = var$13.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$7, var$6.$right, $rt_s(1417));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$7, var$6.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$13.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                        }
                                                    }
                                                    var$9.$left = var$13;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$9);
                                                var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                            }
                                        }
                                        var$11.$right = var$9;
                                    } else {
                                        var$3 = var$11.$left;
                                        if (var$3 === null) {
                                            var$3 = new ju_TreeMap$TreeNode;
                                            var$13 = null;
                                            jl_Object__init_(var$3);
                                            var$3.$key0 = $rt_s(1417);
                                            var$3.$value2 = var$13;
                                            var$3.$height = 1;
                                            var$3.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$3.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$9 = var$3.$right;
                                                    if (var$9 === null) {
                                                        var$9 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$9, $rt_s(1417), null);
                                                        var$9.$height = 1;
                                                        var$9.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$9.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$13 = var$9.$right;
                                                                if (var$13 === null)
                                                                    var$13 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$7, var$13.$right, $rt_s(1417));
                                                                        else
                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$7, var$13.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                    }
                                                                }
                                                                var$9.$right = var$13;
                                                            } else {
                                                                var$13 = var$9.$left;
                                                                if (var$13 === null)
                                                                    var$13 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$7, var$13.$right, $rt_s(1417));
                                                                        else
                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$7, var$13.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                    }
                                                                }
                                                                var$9.$left = var$13;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$9);
                                                            var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                        }
                                                    }
                                                    var$3.$right = var$9;
                                                } else {
                                                    var$2 = var$3.$left;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$4 = var$2.$right;
                                                                if (var$4 === null)
                                                                    var$4 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$4));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$4.$right = ju_TreeMap_getOrCreateNode(var$7, var$4.$right, $rt_s(1417));
                                                                        else
                                                                            var$4.$left = ju_TreeMap_getOrCreateNode(var$7, var$4.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$4);
                                                                        var$4 = ju_TreeMap$TreeNode_balance(var$4);
                                                                    }
                                                                }
                                                                var$2.$right = var$4;
                                                            } else {
                                                                var$6 = var$2.$left;
                                                                if (var$6 === null)
                                                                    var$6 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$6.$right = ju_TreeMap_getOrCreateNode(var$7, var$6.$right, $rt_s(1417));
                                                                        else
                                                                            var$6.$left = ju_TreeMap_getOrCreateNode(var$7, var$6.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$2.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$3.$left = var$2;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$3);
                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                            }
                                        }
                                        var$11.$left = var$3;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$11);
                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                }
                            }
                            var$10.$right = var$11;
                        }
                        ju_TreeMap$TreeNode_fix(var$10);
                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                    }
                }
                var$8.$left = var$10;
            } else {
                var$11 = var$8.$right;
                if (var$11 === null) {
                    var$11 = new ju_TreeMap$TreeNode;
                    var$13 = null;
                    var$11.$key0 = $rt_s(1417);
                    var$11.$value2 = var$13;
                    var$11.$height = 1;
                    var$11.$size1 = 1;
                } else {
                    q: {
                        var$13 = var$11.$key0;
                        if (var$4 === var$13)
                            var$5 = 0;
                        else {
                            var$14 = var$4.$nativeString.length;
                            var$15 = var$13.$nativeString.length;
                            if (var$14 < var$15)
                                var$15 = var$14;
                            var$14 = 0;
                            r: {
                                while (true) {
                                    if (var$14 >= var$15) {
                                        var$5 = var$4.$nativeString.length - var$13.$nativeString.length | 0;
                                        break q;
                                    }
                                    if (var$14 < 0)
                                        break r;
                                    if (var$14 >= var$4.$nativeString.length)
                                        break r;
                                    var$16 = var$4.$nativeString.charCodeAt(var$14);
                                    if (var$14 < 0)
                                        break;
                                    if (var$14 >= var$13.$nativeString.length)
                                        break;
                                    var$5 = var$16 - var$13.$nativeString.charCodeAt(var$14) | 0;
                                    if (var$5)
                                        break q;
                                    var$14 = var$14 + 1 | 0;
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                    }
                    if (var$5) {
                        if (var$5 >= 0) {
                            var$13 = var$11.$right;
                            if (var$13 === null) {
                                var$13 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$13.$key0 = $rt_s(1417);
                                var$13.$value2 = var$6;
                                var$13.$height = 1;
                                var$13.$size1 = 1;
                            } else {
                                s: {
                                    var$6 = var$13.$key0;
                                    if (var$4 === var$6)
                                        var$5 = 0;
                                    else {
                                        var$14 = jl_Math_min(jl_String_length(var$4), jl_String_length(var$6));
                                        var$16 = 0;
                                        while (true) {
                                            if (var$16 >= var$14) {
                                                var$5 = jl_String_length(var$4) - jl_String_length(var$6) | 0;
                                                break s;
                                            }
                                            var$5 = jl_String_charAt(var$4, var$16) - jl_String_charAt(var$6, var$16) | 0;
                                            if (var$5)
                                                break;
                                            var$16 = var$16 + 1 | 0;
                                        }
                                    }
                                }
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$6 = var$13.$right;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$2 = null;
                                            jl_Object__init_(var$6);
                                            var$6.$key0 = $rt_s(1417);
                                            var$6.$value2 = var$2;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$6.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$2 = var$6.$right;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$right = var$2;
                                                } else {
                                                    var$2 = var$6.$left;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$left = var$2;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$13.$right = var$6;
                                    } else {
                                        var$6 = var$13.$left;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$2 = null;
                                            jl_Object__init_(var$6);
                                            var$6.$key0 = $rt_s(1417);
                                            var$6.$value2 = var$2;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$6.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$2 = var$6.$right;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$right = var$2;
                                                } else {
                                                    var$2 = var$6.$left;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$left = var$2;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$13.$left = var$6;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$13);
                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                }
                            }
                            var$11.$right = var$13;
                        } else {
                            var$13 = var$11.$left;
                            if (var$13 === null) {
                                var$13 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$13.$key0 = $rt_s(1417);
                                var$13.$value2 = var$6;
                                var$13.$height = 1;
                                var$13.$size1 = 1;
                            } else {
                                t: {
                                    var$6 = var$13.$key0;
                                    if (var$4 === var$6)
                                        var$5 = 0;
                                    else {
                                        var$14 = jl_Math_min(jl_String_length(var$4), jl_String_length(var$6));
                                        var$16 = 0;
                                        while (true) {
                                            if (var$16 >= var$14) {
                                                var$5 = jl_String_length(var$4) - jl_String_length(var$6) | 0;
                                                break t;
                                            }
                                            var$5 = jl_String_charAt(var$4, var$16) - jl_String_charAt(var$6, var$16) | 0;
                                            if (var$5)
                                                break;
                                            var$16 = var$16 + 1 | 0;
                                        }
                                    }
                                }
                                if (var$5) {
                                    if (var$5 >= 0) {
                                        var$6 = var$13.$right;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$2 = null;
                                            jl_Object__init_(var$6);
                                            var$6.$key0 = $rt_s(1417);
                                            var$6.$value2 = var$2;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$6.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$2 = var$6.$right;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$right = var$2;
                                                } else {
                                                    var$2 = var$6.$left;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$left = var$2;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$13.$right = var$6;
                                    } else {
                                        var$6 = var$13.$left;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$2 = null;
                                            jl_Object__init_(var$6);
                                            var$6.$key0 = $rt_s(1417);
                                            var$6.$value2 = var$2;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$5 = jl_String_compareTo0(var$4, var$6.$key0);
                                            if (var$5) {
                                                if (var$5 >= 0) {
                                                    var$2 = var$6.$right;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$right = var$2;
                                                } else {
                                                    var$2 = var$6.$left;
                                                    if (var$2 === null) {
                                                        var$2 = new ju_TreeMap$TreeNode;
                                                        ju_AbstractMap$SimpleEntry__init_(var$2, $rt_s(1417), null);
                                                        var$2.$height = 1;
                                                        var$2.$size1 = 1;
                                                    } else {
                                                        var$5 = jl_String_compareTo(var$4, var$2.$key0);
                                                        if (var$5) {
                                                            if (var$5 >= 0) {
                                                                var$3 = var$2.$right;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$right = var$3;
                                                            } else {
                                                                var$3 = var$2.$left;
                                                                if (var$3 === null)
                                                                    var$3 = ju_TreeMap$TreeNode__init_($rt_s(1417));
                                                                else {
                                                                    var$5 = ju_Comparator$NaturalOrder_compare(var$7.$comparator, $rt_s(1417), ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                    if (var$5) {
                                                                        if (var$5 >= 0)
                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$7, var$3.$right, $rt_s(1417));
                                                                        else
                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$7, var$3.$left, $rt_s(1417));
                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                    }
                                                                }
                                                                var$2.$left = var$3;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                        }
                                                    }
                                                    var$6.$left = var$2;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$13.$left = var$6;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$13);
                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                }
                            }
                            var$11.$left = var$13;
                        }
                        ju_TreeMap$TreeNode_fix(var$11);
                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                    }
                }
                var$8.$right = var$11;
            }
            ju_TreeMap$TreeNode_fix(var$8);
            var$8 = ju_TreeMap$TreeNode_balance(var$8);
        }
    }
    var$7.$root = var$8;
    var$1 = ju_TreeMap_findExact(var$7, $rt_s(1417));
    var$1.$value2 = var$12;
    var$1.$value2 = var$12;
    var$7.$modCount2 = var$7.$modCount2 + 1 | 0;
    var$2 = $this.$theGameRules;
    var$6 = new nms_GameRuleValue;
    nms_GameRuleValue_setValue(var$6, $rt_s(897));
    ju_TreeMap_put(var$2, $rt_s(2024), var$6);
    nms_GameRules_addGameRule($this, $rt_s(1683), $rt_s(898));
    nms_GameRules_addGameRule($this, $rt_s(1984), $rt_s(898));
    nms_GameRules_addGameRule($this, $rt_s(702), $rt_s(898));
    nms_GameRules_addGameRule($this, $rt_s(908), $rt_s(898));
    nms_GameRules_addGameRule($this, $rt_s(2007), $rt_s(898));
    nms_GameRules_addGameRule($this, $rt_s(258), $rt_s(898));
},
nms_GameRules__init_ = () => {
    let var_0 = new nms_GameRules();
    nms_GameRules__init_0(var_0);
    return var_0;
},
nms_GameRules_addGameRule = ($this, $par1Str, $par2Str) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je;
    a: {
        var$3 = $this.$theGameRules;
        var$4 = new nms_GameRuleValue;
        var$4.$valueString = $par2Str;
        if ($par2Str !== null) {
            var$5 = $par2Str.$nativeString.toLowerCase();
            var$6 = var$5 === $par2Str.$nativeString ? $par2Str : jl_String__init_0(var$5);
            if (var$6 === $rt_s(898))
                var$7 = 1;
            else if (!($rt_s(898) instanceof jl_String))
                var$7 = 0;
            else {
                var$5 = $rt_s(898);
                var$7 = var$6.$nativeString !== var$5.$nativeString ? 0 : 1;
            }
            if (var$7) {
                var$7 = 1;
                break a;
            }
        }
        var$7 = 0;
    }
    var$4.$valueBoolean = var$7;
    b: {
        try {
            var$4.$valueInteger = jl_Integer_parseInt($par2Str);
            break b;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    c: {
        try {
            var$4.$valueDouble = jl_Double_parseDouble($par2Str);
            break c;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    var$8 = var$3.$root;
    if (var$8 === null) {
        var$8 = new ju_TreeMap$TreeNode;
        $par2Str = null;
        var$8.$key0 = $par1Str;
        var$8.$value2 = $par2Str;
        var$8.$height = 1;
        var$8.$size1 = 1;
    } else {
        $par2Str = var$8.$key0;
        var$9 = $par1Str;
        var$7 = jl_String_compareTo(var$9, $par2Str);
        if (var$7) {
            if (var$7 < 0) {
                $par2Str = var$8.$left;
                if ($par2Str === null) {
                    $par2Str = new ju_TreeMap$TreeNode;
                    var$5 = null;
                    $par2Str.$key0 = $par1Str;
                    $par2Str.$value2 = var$5;
                    $par2Str.$height = 1;
                    $par2Str.$size1 = 1;
                } else {
                    var$7 = jl_String_compareTo(var$9, $par2Str.$key0);
                    if (var$7) {
                        if (var$7 < 0) {
                            var$5 = $par2Str.$left;
                            if (var$5 === null) {
                                var$5 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$5.$key0 = $par1Str;
                                var$5.$value2 = var$6;
                                var$5.$height = 1;
                                var$5.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$9, var$5.$key0);
                                if (var$7) {
                                    if (var$7 < 0) {
                                        var$6 = var$5.$left;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            var$6.$key0 = $par1Str;
                                            var$6.$value2 = var$10;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                            if (var$7) {
                                                if (var$7 < 0) {
                                                    var$10 = var$6.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0)
                                                                var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                            else
                                                                var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$left = var$10;
                                                } else {
                                                    var$10 = var$6.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$right = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$5.$left = var$6;
                                    } else {
                                        var$6 = var$5.$right;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            var$6.$key0 = $par1Str;
                                            var$6.$value2 = var$10;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$6.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$right = var$10;
                                                } else {
                                                    var$10 = var$6.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$5.$right = var$6;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$5);
                                    var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                }
                            }
                            $par2Str.$left = var$5;
                        } else {
                            var$5 = $par2Str.$right;
                            if (var$5 === null) {
                                var$5 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$5.$key0 = $par1Str;
                                var$5.$value2 = var$6;
                                var$5.$height = 1;
                                var$5.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$9, var$5.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$12 = var$5.$right;
                                        if (var$12 === null) {
                                            var$12 = new ju_TreeMap$TreeNode;
                                            var$6 = null;
                                            var$12.$key0 = $par1Str;
                                            var$12.$value2 = var$6;
                                            var$12.$height = 1;
                                            var$12.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$12.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$6 = var$12.$right;
                                                    if (var$6 === null) {
                                                        var$6 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        jl_Object__init_(var$6);
                                                        var$6.$key0 = $par1Str;
                                                        var$6.$value2 = var$10;
                                                        var$6.$height = 1;
                                                        var$6.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$6.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$right = var$10;
                                                            } else {
                                                                var$10 = var$6.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$6);
                                                            var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                        }
                                                    }
                                                    var$12.$right = var$6;
                                                } else {
                                                    var$6 = var$12.$left;
                                                    if (var$6 === null) {
                                                        var$6 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        jl_Object__init_(var$6);
                                                        var$6.$key0 = $par1Str;
                                                        var$6.$value2 = var$10;
                                                        var$6.$height = 1;
                                                        var$6.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$6.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$right = var$10;
                                                            } else {
                                                                var$10 = var$6.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$6);
                                                            var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                        }
                                                    }
                                                    var$12.$left = var$6;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$12);
                                                var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                            }
                                        }
                                        var$5.$right = var$12;
                                    } else {
                                        var$13 = var$5.$left;
                                        if (var$13 === null) {
                                            var$13 = new ju_TreeMap$TreeNode;
                                            var$6 = null;
                                            var$13.$key0 = $par1Str;
                                            var$13.$value2 = var$6;
                                            var$13.$height = 1;
                                            var$13.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$13.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$12 = var$13.$right;
                                                    if (var$12 === null) {
                                                        var$12 = new ju_TreeMap$TreeNode;
                                                        var$6 = null;
                                                        jl_Object__init_(var$12);
                                                        var$12.$key0 = $par1Str;
                                                        var$12.$value2 = var$6;
                                                        var$12.$height = 1;
                                                        var$12.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$12.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$12.$right;
                                                                if (var$6 === null) {
                                                                    var$6 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$6, $par1Str, null);
                                                                    var$6.$height = 1;
                                                                    var$6.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$10 = var$6.$right;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$right = var$10;
                                                                        } else {
                                                                            var$10 = var$6.$left;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$left = var$10;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$12.$right = var$6;
                                                            } else {
                                                                var$6 = var$12.$left;
                                                                if (var$6 === null) {
                                                                    var$6 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$6, $par1Str, null);
                                                                    var$6.$height = 1;
                                                                    var$6.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$10 = var$6.$right;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$right = var$10;
                                                                        } else {
                                                                            var$10 = var$6.$left;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$left = var$10;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$12.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$13.$right = var$12;
                                                } else {
                                                    var$10 = var$13.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$6 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$6;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$6 = var$11.$left;
                                                                            if (var$6 === null)
                                                                                var$6 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$6));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$6.$right = ju_TreeMap_getOrCreateNode(var$3, var$6.$right, $par1Str);
                                                                                    else
                                                                                        var$6.$left = ju_TreeMap_getOrCreateNode(var$3, var$6.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$6);
                                                                                    var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$6;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$6 = var$10.$left;
                                                                if (var$6 === null) {
                                                                    var$6 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$6, $par1Str, null);
                                                                    var$6.$height = 1;
                                                                    var$6.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$6.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$6.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$6.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$6.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$10.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$13.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$13);
                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                            }
                                        }
                                        var$5.$left = var$13;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$5);
                                    var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                }
                            }
                            $par2Str.$right = var$5;
                        }
                        ju_TreeMap$TreeNode_fix($par2Str);
                        $par2Str = ju_TreeMap$TreeNode_balance($par2Str);
                    }
                }
                var$8.$left = $par2Str;
            } else {
                $par2Str = var$8.$right;
                if ($par2Str === null) {
                    $par2Str = new ju_TreeMap$TreeNode;
                    var$5 = null;
                    $par2Str.$key0 = $par1Str;
                    $par2Str.$value2 = var$5;
                    $par2Str.$height = 1;
                    $par2Str.$size1 = 1;
                } else {
                    var$7 = jl_String_compareTo(var$9, $par2Str.$key0);
                    if (var$7) {
                        if (var$7 >= 0) {
                            var$5 = $par2Str.$right;
                            if (var$5 === null) {
                                var$5 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$5.$key0 = $par1Str;
                                var$5.$value2 = var$6;
                                var$5.$height = 1;
                                var$5.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$9, var$5.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$6 = var$5.$right;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            var$6.$key0 = $par1Str;
                                            var$6.$value2 = var$10;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$6.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$right = var$10;
                                                } else {
                                                    var$10 = var$6.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$5.$right = var$6;
                                    } else {
                                        var$6 = var$5.$left;
                                        if (var$6 === null) {
                                            var$6 = new ju_TreeMap$TreeNode;
                                            var$10 = null;
                                            var$6.$key0 = $par1Str;
                                            var$6.$value2 = var$10;
                                            var$6.$height = 1;
                                            var$6.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$10 = var$6.$right;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$right = var$10;
                                                } else {
                                                    var$10 = var$6.$left;
                                                    if (var$10 === null) {
                                                        var$10 = new ju_TreeMap$TreeNode;
                                                        var$11 = null;
                                                        jl_Object__init_(var$10);
                                                        var$10.$key0 = $par1Str;
                                                        var$10.$value2 = var$11;
                                                        var$10.$height = 1;
                                                        var$10.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$11 = var$10.$right;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$right = var$11;
                                                            } else {
                                                                var$11 = var$10.$left;
                                                                if (var$11 === null) {
                                                                    var$11 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$11, $par1Str, null);
                                                                    var$11.$height = 1;
                                                                    var$11.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$11.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$9 = var$11.$right;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$right = var$9;
                                                                        } else {
                                                                            var$9 = var$11.$left;
                                                                            if (var$9 === null)
                                                                                var$9 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$9));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$9.$right = ju_TreeMap_getOrCreateNode(var$3, var$9.$right, $par1Str);
                                                                                    else
                                                                                        var$9.$left = ju_TreeMap_getOrCreateNode(var$3, var$9.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$9);
                                                                                    var$9 = ju_TreeMap$TreeNode_balance(var$9);
                                                                                }
                                                                            }
                                                                            var$11.$left = var$9;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                    }
                                                                }
                                                                var$10.$left = var$11;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$10);
                                                            var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                        }
                                                    }
                                                    var$6.$left = var$10;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$6);
                                                var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                            }
                                        }
                                        var$5.$left = var$6;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$5);
                                    var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                }
                            }
                            $par2Str.$right = var$5;
                        } else {
                            var$5 = $par2Str.$left;
                            if (var$5 === null) {
                                var$5 = new ju_TreeMap$TreeNode;
                                var$6 = null;
                                var$5.$key0 = $par1Str;
                                var$5.$value2 = var$6;
                                var$5.$height = 1;
                                var$5.$size1 = 1;
                            } else {
                                var$7 = jl_String_compareTo(var$9, var$5.$key0);
                                if (var$7) {
                                    if (var$7 >= 0) {
                                        var$12 = var$5.$right;
                                        if (var$12 === null) {
                                            var$12 = new ju_TreeMap$TreeNode;
                                            var$6 = null;
                                            var$12.$key0 = $par1Str;
                                            var$12.$value2 = var$6;
                                            var$12.$height = 1;
                                            var$12.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$12.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$6 = var$12.$right;
                                                    if (var$6 === null) {
                                                        var$6 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        jl_Object__init_(var$6);
                                                        var$6.$key0 = $par1Str;
                                                        var$6.$value2 = var$10;
                                                        var$6.$height = 1;
                                                        var$6.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$6.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$right = var$10;
                                                            } else {
                                                                var$10 = var$6.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$6);
                                                            var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                        }
                                                    }
                                                    var$12.$right = var$6;
                                                } else {
                                                    var$6 = var$12.$left;
                                                    if (var$6 === null) {
                                                        var$6 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        jl_Object__init_(var$6);
                                                        var$6.$key0 = $par1Str;
                                                        var$6.$value2 = var$10;
                                                        var$6.$height = 1;
                                                        var$6.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$6.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$right = var$10;
                                                            } else {
                                                                var$10 = var$6.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$6);
                                                            var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                        }
                                                    }
                                                    var$12.$left = var$6;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$12);
                                                var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                            }
                                        }
                                        var$5.$right = var$12;
                                    } else {
                                        var$13 = var$5.$left;
                                        if (var$13 === null) {
                                            var$13 = new ju_TreeMap$TreeNode;
                                            var$6 = null;
                                            var$13.$key0 = $par1Str;
                                            var$13.$value2 = var$6;
                                            var$13.$height = 1;
                                            var$13.$size1 = 1;
                                        } else {
                                            var$7 = jl_String_compareTo(var$9, var$13.$key0);
                                            if (var$7) {
                                                if (var$7 >= 0) {
                                                    var$12 = var$13.$right;
                                                    if (var$12 === null) {
                                                        var$12 = new ju_TreeMap$TreeNode;
                                                        var$6 = null;
                                                        jl_Object__init_(var$12);
                                                        var$12.$key0 = $par1Str;
                                                        var$12.$value2 = var$6;
                                                        var$12.$height = 1;
                                                        var$12.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$12.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$6 = var$12.$right;
                                                                if (var$6 === null) {
                                                                    var$6 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$6, $par1Str, null);
                                                                    var$6.$height = 1;
                                                                    var$6.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$10 = var$6.$right;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$right = var$10;
                                                                        } else {
                                                                            var$10 = var$6.$left;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$left = var$10;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$12.$right = var$6;
                                                            } else {
                                                                var$6 = var$12.$left;
                                                                if (var$6 === null) {
                                                                    var$6 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$6, $par1Str, null);
                                                                    var$6.$height = 1;
                                                                    var$6.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$10 = var$6.$right;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$right = var$10;
                                                                        } else {
                                                                            var$10 = var$6.$left;
                                                                            if (var$10 === null)
                                                                                var$10 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$10));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$10.$right = ju_TreeMap_getOrCreateNode(var$3, var$10.$right, $par1Str);
                                                                                    else
                                                                                        var$10.$left = ju_TreeMap_getOrCreateNode(var$3, var$10.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$10);
                                                                                    var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                                }
                                                                            }
                                                                            var$6.$left = var$10;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$6);
                                                                        var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                                    }
                                                                }
                                                                var$12.$left = var$6;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$12);
                                                            var$12 = ju_TreeMap$TreeNode_balance(var$12);
                                                        }
                                                    }
                                                    var$13.$right = var$12;
                                                } else {
                                                    var$6 = var$13.$left;
                                                    if (var$6 === null) {
                                                        var$6 = new ju_TreeMap$TreeNode;
                                                        var$10 = null;
                                                        jl_Object__init_(var$6);
                                                        var$6.$key0 = $par1Str;
                                                        var$6.$value2 = var$10;
                                                        var$6.$height = 1;
                                                        var$6.$size1 = 1;
                                                    } else {
                                                        var$7 = jl_String_compareTo(var$9, var$6.$key0);
                                                        if (var$7) {
                                                            if (var$7 >= 0) {
                                                                var$10 = var$6.$right;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$right = var$10;
                                                            } else {
                                                                var$10 = var$6.$left;
                                                                if (var$10 === null) {
                                                                    var$10 = new ju_TreeMap$TreeNode;
                                                                    ju_AbstractMap$SimpleEntry__init_(var$10, $par1Str, null);
                                                                    var$10.$height = 1;
                                                                    var$10.$size1 = 1;
                                                                } else {
                                                                    var$7 = jl_String_compareTo(var$9, var$10.$key0);
                                                                    if (var$7) {
                                                                        if (var$7 >= 0) {
                                                                            var$11 = var$10.$right;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$right = var$11;
                                                                        } else {
                                                                            var$11 = var$10.$left;
                                                                            if (var$11 === null)
                                                                                var$11 = ju_TreeMap$TreeNode__init_($par1Str);
                                                                            else {
                                                                                var$7 = ju_Comparator$NaturalOrder_compare(var$3.$comparator, $par1Str, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                if (var$7) {
                                                                                    if (var$7 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode(var$3, var$11.$right, $par1Str);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode(var$3, var$11.$left, $par1Str);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            var$10.$left = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$10);
                                                                        var$10 = ju_TreeMap$TreeNode_balance(var$10);
                                                                    }
                                                                }
                                                                var$6.$left = var$10;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$6);
                                                            var$6 = ju_TreeMap$TreeNode_balance(var$6);
                                                        }
                                                    }
                                                    var$13.$left = var$6;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$13);
                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                            }
                                        }
                                        var$5.$left = var$13;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$5);
                                    var$5 = ju_TreeMap$TreeNode_balance(var$5);
                                }
                            }
                            $par2Str.$left = var$5;
                        }
                        ju_TreeMap$TreeNode_fix($par2Str);
                        $par2Str = ju_TreeMap$TreeNode_balance($par2Str);
                    }
                }
                var$8.$right = $par2Str;
            }
            ju_TreeMap$TreeNode_fix(var$8);
            var$8 = ju_TreeMap$TreeNode_balance(var$8);
        }
    }
    var$3.$root = var$8;
    $par1Str = ju_TreeMap_findExact(var$3, $par1Str);
    $par1Str.$value2 = var$4;
    $par1Str.$value2 = var$4;
    var$3.$modCount2 = var$3.$modCount2 + 1 | 0;
},
nms_GameRules_readGameRulesFromNBT = ($this, $par1NBTTagCompound) => {
    let $var3, $var4, var$4, $var5, var$6, var$7, var$8, var$9, $var6, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $$je;
    $var3 = $par1NBTTagCompound.$tagMap;
    if ($var3.$cachedValues === null) {
        $var4 = new ju_HashMap$2;
        $var4.$this$01 = $var3;
        $var3.$cachedValues = $var4;
    }
    $var3 = $var3.$cachedValues.$iterator();
    while ($var3.$hasNext()) {
        var$4 = ($var3.$next()).$name;
        $var5 = var$4 !== null ? var$4 : $rt_s(3);
        if (var$4 === null)
            var$4 = $rt_s(3);
        a: {
            $var4 = $par1NBTTagCompound.$tagMap;
            if (!var$4.$hashCode1) {
                var$6 = 0;
                while (true) {
                    if (var$6 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$6) | 0;
                    var$6 = var$6 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = $var4.$elementData.data;
        $var4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$6) {
                b: {
                    var$8 = $var4.$key;
                    if (var$4 !== var$8) {
                        if (var$4 === var$8)
                            var$9 = 1;
                        else if (!(var$8 instanceof jl_String))
                            var$9 = 0;
                        else {
                            var$8 = var$8;
                            var$9 = var$4.$nativeString !== var$8.$nativeString ? 0 : 1;
                        }
                        if (!var$9) {
                            var$9 = 0;
                            break b;
                        }
                    }
                    var$9 = 1;
                }
                if (var$9)
                    break;
            }
            $var4 = $var4.$next3;
        }
        if (!($var4 === null ? 0 : 1))
            $var6 = $rt_s(3);
        else {
            $var4 = $par1NBTTagCompound.$tagMap;
            if (var$4 === null) {
                $var4 = $var4.$elementData.data[0];
                while ($var4 !== null && $var4.$key !== null) {
                    $var4 = $var4.$next3;
                }
            } else {
                c: {
                    if (!var$4.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$4.$nativeString.length)
                                break c;
                            var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                var$11 = var$4.$hashCode1;
                var$7 = $var4.$elementData.data;
                $var4 = var$7[var$11 & (var$7.length - 1 | 0)];
                while ($var4 !== null) {
                    if ($var4.$origKeyHash == var$11) {
                        d: {
                            var$8 = $var4.$key;
                            if (var$4 !== var$8) {
                                if (var$4 === var$8)
                                    var$6 = 1;
                                else if (!(var$8 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    var$8 = var$8;
                                    var$6 = var$4.$nativeString !== var$8.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break d;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    $var4 = $var4.$next3;
                }
            }
            $var6 = ($var4 === null ? null : $var4.$value0).$data1;
        }
        $var4 = $this.$theGameRules.$root;
        var$12 = $var5;
        jl_String_compareTo(var$12, $var5);
        e: {
            while (true) {
                if ($var4 === null) {
                    $var4 = null;
                    break e;
                }
                var$6 = jl_String_compareTo(var$12, $var4.$key0);
                if (!var$6)
                    break;
                $var4 = var$6 >= 0 ? $var4.$right : $var4.$left;
            }
        }
        var$8 = $var4 === null ? null : $var4.$value2;
        if (var$8 !== null) {
            f: {
                var$8.$valueString = $var6;
                if ($var6 !== null) {
                    $var4 = $var6.$nativeString.toLowerCase();
                    var$4 = $var4 === $var6.$nativeString ? $var6 : jl_String__init_0($var4);
                    if (var$4 === $rt_s(898))
                        var$6 = 1;
                    else if (!($rt_s(898) instanceof jl_String))
                        var$6 = 0;
                    else {
                        $var4 = $rt_s(898);
                        var$6 = var$4.$nativeString !== $var4.$nativeString ? 0 : 1;
                    }
                    if (var$6) {
                        var$6 = 1;
                        break f;
                    }
                }
                var$6 = 0;
            }
            var$8.$valueBoolean = var$6;
            g: {
                try {
                    var$8.$valueInteger = jl_Integer_parseInt($var6);
                    break g;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            h: {
                try {
                    var$8.$valueDouble = jl_Double_parseDouble($var6);
                    break h;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                    } else {
                        throw $$e;
                    }
                }
            }
        } else {
            i: {
                var$4 = $this.$theGameRules;
                $var4 = new nms_GameRuleValue;
                $var4.$valueString = $var6;
                if ($var6 !== null) {
                    var$8 = $var6.$nativeString.toLowerCase();
                    var$13 = var$8 === $var6.$nativeString ? $var6 : jl_String__init_0(var$8);
                    if (var$13 === $rt_s(898))
                        var$6 = 1;
                    else if (!($rt_s(898) instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$8 = $rt_s(898);
                        var$6 = var$13.$nativeString !== var$8.$nativeString ? 0 : 1;
                    }
                    if (var$6) {
                        var$6 = 1;
                        break i;
                    }
                }
                var$6 = 0;
            }
            $var4.$valueBoolean = var$6;
            j: {
                try {
                    $var4.$valueInteger = jl_Integer_parseInt($var6);
                    break j;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            k: {
                try {
                    $var4.$valueDouble = jl_Double_parseDouble($var6);
                    break k;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_NumberFormatException) {
                    } else {
                        throw $$e;
                    }
                }
            }
            var$14 = var$4.$root;
            if (var$14 === null) {
                var$14 = new ju_TreeMap$TreeNode;
                var$8 = null;
                var$14.$key0 = $var5;
                var$14.$value2 = var$8;
                var$14.$height = 1;
                var$14.$size1 = 1;
            } else {
                var$6 = jl_String_compareTo(var$12, var$14.$key0);
                if (var$6) {
                    if (var$6 >= 0) {
                        var$15 = var$14.$right;
                        if (var$15 === null) {
                            var$15 = new ju_TreeMap$TreeNode;
                            var$8 = null;
                            var$15.$key0 = $var5;
                            var$15.$value2 = var$8;
                            var$15.$height = 1;
                            var$15.$size1 = 1;
                        } else {
                            var$6 = jl_String_compareTo(var$12, var$15.$key0);
                            if (var$6) {
                                if (var$6 >= 0) {
                                    var$8 = var$15.$right;
                                    if (var$8 === null) {
                                        var$8 = new ju_TreeMap$TreeNode;
                                        var$13 = null;
                                        jl_Object__init_(var$8);
                                        var$8.$key0 = $var5;
                                        var$8.$value2 = var$13;
                                        var$8.$height = 1;
                                        var$8.$size1 = 1;
                                    } else {
                                        var$6 = jl_String_compareTo(var$12, var$8.$key0);
                                        if (var$6) {
                                            if (var$6 >= 0) {
                                                var$13 = var$8.$right;
                                                if (var$13 === null) {
                                                    var$13 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$13, $var5, null);
                                                    var$13.$height = 1;
                                                    var$13.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$13.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            $var6 = var$13.$right;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$right = $var6;
                                                        } else {
                                                            $var6 = var$13.$left;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$left = $var6;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                    }
                                                }
                                                var$8.$right = var$13;
                                            } else {
                                                var$13 = var$8.$left;
                                                if (var$13 === null) {
                                                    var$13 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$13, $var5, null);
                                                    var$13.$height = 1;
                                                    var$13.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$13.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            $var6 = var$13.$right;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$right = $var6;
                                                        } else {
                                                            $var6 = var$13.$left;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$left = $var6;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                    }
                                                }
                                                var$8.$left = var$13;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$8);
                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                        }
                                    }
                                    var$15.$right = var$8;
                                } else {
                                    var$8 = var$15.$left;
                                    if (var$8 === null) {
                                        var$8 = new ju_TreeMap$TreeNode;
                                        var$13 = null;
                                        jl_Object__init_(var$8);
                                        var$8.$key0 = $var5;
                                        var$8.$value2 = var$13;
                                        var$8.$height = 1;
                                        var$8.$size1 = 1;
                                    } else {
                                        var$6 = jl_String_compareTo(var$12, var$8.$key0);
                                        if (var$6) {
                                            if (var$6 >= 0) {
                                                var$13 = var$8.$right;
                                                if (var$13 === null) {
                                                    var$13 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$13, $var5, null);
                                                    var$13.$height = 1;
                                                    var$13.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$13.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            $var6 = var$13.$right;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$right = $var6;
                                                        } else {
                                                            $var6 = var$13.$left;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$left = $var6;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                    }
                                                }
                                                var$8.$right = var$13;
                                            } else {
                                                var$13 = var$8.$left;
                                                if (var$13 === null) {
                                                    var$13 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$13, $var5, null);
                                                    var$13.$height = 1;
                                                    var$13.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$13.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            $var6 = var$13.$right;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$right = $var6;
                                                        } else {
                                                            $var6 = var$13.$left;
                                                            if ($var6 === null)
                                                                $var6 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey($var6));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        $var6.$right = ju_TreeMap_getOrCreateNode(var$4, $var6.$right, $var5);
                                                                    else
                                                                        $var6.$left = ju_TreeMap_getOrCreateNode(var$4, $var6.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix($var6);
                                                                    $var6 = ju_TreeMap$TreeNode_balance($var6);
                                                                }
                                                            }
                                                            var$13.$left = $var6;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                    }
                                                }
                                                var$8.$left = var$13;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$8);
                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                        }
                                    }
                                    var$15.$left = var$8;
                                }
                                ju_TreeMap$TreeNode_fix(var$15);
                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                            }
                        }
                        var$14.$right = var$15;
                    } else {
                        $var6 = var$14.$left;
                        if ($var6 === null) {
                            $var6 = new ju_TreeMap$TreeNode;
                            var$8 = null;
                            $var6.$key0 = $var5;
                            $var6.$value2 = var$8;
                            $var6.$height = 1;
                            $var6.$size1 = 1;
                        } else {
                            var$6 = jl_String_compareTo(var$12, $var6.$key0);
                            if (var$6) {
                                if (var$6 >= 0) {
                                    var$16 = $var6.$right;
                                    if (var$16 === null) {
                                        var$16 = new ju_TreeMap$TreeNode;
                                        var$8 = null;
                                        jl_Object__init_(var$16);
                                        var$16.$key0 = $var5;
                                        var$16.$value2 = var$8;
                                        var$16.$height = 1;
                                        var$16.$size1 = 1;
                                    } else {
                                        var$6 = jl_String_compareTo(var$12, var$16.$key0);
                                        if (var$6) {
                                            if (var$6 >= 0) {
                                                var$17 = var$16.$right;
                                                if (var$17 === null) {
                                                    var$17 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$17, $var5, null);
                                                    var$17.$height = 1;
                                                    var$17.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$17.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            var$15 = var$17.$right;
                                                            if (var$15 === null)
                                                                var$15 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$15.$right = ju_TreeMap_getOrCreateNode(var$4, var$15.$right, $var5);
                                                                    else
                                                                        var$15.$left = ju_TreeMap_getOrCreateNode(var$4, var$15.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                }
                                                            }
                                                            var$17.$right = var$15;
                                                        } else {
                                                            var$8 = var$17.$left;
                                                            if (var$8 === null)
                                                                var$8 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$8));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$8.$right = ju_TreeMap_getOrCreateNode(var$4, var$8.$right, $var5);
                                                                    else
                                                                        var$8.$left = ju_TreeMap_getOrCreateNode(var$4, var$8.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$8);
                                                                    var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                                }
                                                            }
                                                            var$17.$left = var$8;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                    }
                                                }
                                                var$16.$right = var$17;
                                            } else {
                                                var$8 = var$16.$left;
                                                if (var$8 === null) {
                                                    var$8 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$8, $var5, null);
                                                    var$8.$height = 1;
                                                    var$8.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$8.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            var$13 = var$8.$right;
                                                            if (var$13 === null)
                                                                var$13 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$13.$right = ju_TreeMap_getOrCreateNode(var$4, var$13.$right, $var5);
                                                                    else
                                                                        var$13.$left = ju_TreeMap_getOrCreateNode(var$4, var$13.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                }
                                                            }
                                                            var$8.$right = var$13;
                                                        } else {
                                                            var$13 = var$8.$left;
                                                            if (var$13 === null)
                                                                var$13 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$13.$right = ju_TreeMap_getOrCreateNode(var$4, var$13.$right, $var5);
                                                                    else
                                                                        var$13.$left = ju_TreeMap_getOrCreateNode(var$4, var$13.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                }
                                                            }
                                                            var$8.$left = var$13;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$8);
                                                        var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                                    }
                                                }
                                                var$16.$left = var$8;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$16);
                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                        }
                                    }
                                    $var6.$right = var$16;
                                } else {
                                    var$8 = $var6.$left;
                                    if (var$8 === null) {
                                        var$8 = new ju_TreeMap$TreeNode;
                                        var$13 = null;
                                        jl_Object__init_(var$8);
                                        var$8.$key0 = $var5;
                                        var$8.$value2 = var$13;
                                        var$8.$height = 1;
                                        var$8.$size1 = 1;
                                    } else {
                                        var$6 = jl_String_compareTo(var$12, var$8.$key0);
                                        if (var$6) {
                                            if (var$6 >= 0) {
                                                var$15 = var$8.$right;
                                                if (var$15 === null) {
                                                    var$15 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$15, $var5, null);
                                                    var$15.$height = 1;
                                                    var$15.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$15.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            var$13 = var$15.$right;
                                                            if (var$13 === null)
                                                                var$13 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$13.$right = ju_TreeMap_getOrCreateNode(var$4, var$13.$right, $var5);
                                                                    else
                                                                        var$13.$left = ju_TreeMap_getOrCreateNode(var$4, var$13.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                }
                                                            }
                                                            var$15.$right = var$13;
                                                        } else {
                                                            var$13 = var$15.$left;
                                                            if (var$13 === null)
                                                                var$13 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$13.$right = ju_TreeMap_getOrCreateNode(var$4, var$13.$right, $var5);
                                                                    else
                                                                        var$13.$left = ju_TreeMap_getOrCreateNode(var$4, var$13.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                }
                                                            }
                                                            var$15.$left = var$13;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$15);
                                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                    }
                                                }
                                                var$8.$right = var$15;
                                            } else {
                                                var$16 = var$8.$left;
                                                if (var$16 === null) {
                                                    var$16 = new ju_TreeMap$TreeNode;
                                                    ju_AbstractMap$SimpleEntry__init_(var$16, $var5, null);
                                                    var$16.$height = 1;
                                                    var$16.$size1 = 1;
                                                } else {
                                                    var$6 = jl_String_compareTo(var$12, var$16.$key0);
                                                    if (var$6) {
                                                        if (var$6 >= 0) {
                                                            var$17 = var$16.$right;
                                                            if (var$17 === null)
                                                                var$17 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$17));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$17.$right = ju_TreeMap_getOrCreateNode(var$4, var$17.$right, $var5);
                                                                    else
                                                                        var$17.$left = ju_TreeMap_getOrCreateNode(var$4, var$17.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                }
                                                            }
                                                            var$16.$right = var$17;
                                                        } else {
                                                            var$13 = var$16.$left;
                                                            if (var$13 === null)
                                                                var$13 = ju_TreeMap$TreeNode__init_($var5);
                                                            else {
                                                                var$6 = ju_Comparator$NaturalOrder_compare(var$4.$comparator, $var5, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                if (var$6) {
                                                                    if (var$6 >= 0)
                                                                        var$13.$right = ju_TreeMap_getOrCreateNode(var$4, var$13.$right, $var5);
                                                                    else
                                                                        var$13.$left = ju_TreeMap_getOrCreateNode(var$4, var$13.$left, $var5);
                                                                    ju_TreeMap$TreeNode_fix(var$13);
                                                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                }
                                                            }
                                                            var$16.$left = var$13;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                    }
                                                }
                                                var$8.$left = var$16;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$8);
                                            var$8 = ju_TreeMap$TreeNode_balance(var$8);
                                        }
                                    }
                                    $var6.$left = var$8;
                                }
                                ju_TreeMap$TreeNode_fix($var6);
                                $var6 = ju_TreeMap$TreeNode_balance($var6);
                            }
                        }
                        var$14.$left = $var6;
                    }
                    ju_TreeMap$TreeNode_fix(var$14);
                    var$14 = ju_TreeMap$TreeNode_balance(var$14);
                }
            }
            var$4.$root = var$14;
            jl_String_compareTo(var$12, $var5);
            l: {
                while (true) {
                    if (var$14 === null) {
                        var$14 = null;
                        break l;
                    }
                    var$6 = jl_String_compareTo(var$12, var$14.$key0);
                    if (!var$6)
                        break;
                    var$14 = var$6 >= 0 ? var$14.$right : var$14.$left;
                }
            }
            var$14.$value2 = $var4;
            var$14.$value2 = $var4;
            var$4.$modCount2 = var$4.$modCount2 + 1 | 0;
        }
    }
};
function nms_ScoreObjective() {
    let a = this; jl_Object.call(a);
    a.$theScoreboard2 = null;
    a.$name4 = null;
    a.$objectiveCriteria = null;
    a.$displayName0 = null;
}
function nms_LongHashMapEntry() {
    let a = this; jl_Object.call(a);
    a.$key1 = Long_ZERO;
    a.$value4 = null;
    a.$nextEntry = null;
    a.$hash3 = 0;
}
function ju_FormatFlagsConversionMismatchException() {
    let a = this; ju_IllegalFormatException.call(a);
    a.$flags3 = null;
    a.$conversion = 0;
}
function ju_IllegalFormatFlagsException() {
    ju_IllegalFormatException.call(this);
    this.$flags4 = null;
}
function ju_MissingFormatWidthException() {
    ju_IllegalFormatException.call(this);
    this.$formatSpecifier = null;
}
let jm_Multiplication = $rt_classWithoutFields(),
jm_Multiplication_tenPows = null,
jm_Multiplication_fivePows = null,
jm_Multiplication_bigTenPows = null,
jm_Multiplication_bigFivePows = null,
jm_Multiplication_$callClinit = () => {
    jm_Multiplication_$callClinit = $rt_eraseClinit(jm_Multiplication);
    jm_Multiplication__clinit_();
},
jm_Multiplication__init_ = $this => {
    jm_Multiplication_$callClinit();
},
jm_Multiplication__init_0 = () => {
    let var_0 = new jm_Multiplication();
    jm_Multiplication__init_(var_0);
    return var_0;
},
jm_Multiplication_karatsuba = ($op1, $op2) => {
    let $upperOp1, var$4, $ndiv2, var$6, var$7, var$8, $upperOp2, $upper, $lowerOp1, $lowerOp2, $lower;
    jm_Multiplication_$callClinit();
    if ($op2.$numberLength <= $op1.$numberLength) {
        $upperOp1 = $op2;
        $op2 = $op1;
        $op1 = $upperOp1;
    }
    if ($op1.$numberLength < 63)
        return jm_Multiplication_multiplyPAP($op2, $op1);
    var$4 = $op2.$numberLength;
    $ndiv2 = (var$4 & (-2)) << 4;
    if ($ndiv2 && $op2.$sign1) {
        if ($ndiv2 > 0)
            $upperOp1 = jm_BitLevel_shiftRight($op2, $ndiv2);
        else {
            var$6 =  -$ndiv2 | 0;
            var$7 = var$6 >> 5;
            var$6 = var$6 & 31;
            var$4 = (var$4 + var$7 | 0) + (var$6 ? 1 : 0) | 0;
            var$8 = $rt_createIntArray(var$4);
            jm_BitLevel_shiftLeft(var$8, $op2.$digits, var$7, var$6);
            $upperOp1 = new jm_BigInteger;
            var$7 = $op2.$sign1;
            $upperOp1.$firstNonzeroDigit = (-2);
            $upperOp1.$sign1 = var$7;
            $upperOp1.$numberLength = var$4;
            $upperOp1.$digits = var$8;
            jm_BigInteger_cutOffLeadingZeroes($upperOp1);
        }
    } else
        $upperOp1 = $op2;
    if ($ndiv2 && $op1.$sign1) {
        if ($ndiv2 > 0)
            $upperOp2 = jm_BitLevel_shiftRight($op1, $ndiv2);
        else {
            var$4 =  -$ndiv2 | 0;
            var$7 = var$4 >> 5;
            var$4 = var$4 & 31;
            var$6 = ($op1.$numberLength + var$7 | 0) + (var$4 ? 1 : 0) | 0;
            var$8 = $rt_createIntArray(var$6);
            jm_BitLevel_shiftLeft(var$8, $op1.$digits, var$7, var$4);
            $upperOp2 = new jm_BigInteger;
            var$4 = $op1.$sign1;
            $upperOp2.$firstNonzeroDigit = (-2);
            $upperOp2.$sign1 = var$4;
            $upperOp2.$numberLength = var$6;
            $upperOp2.$digits = var$8;
            jm_BigInteger_cutOffLeadingZeroes($upperOp2);
        }
    } else
        $upperOp2 = $op1;
    if ($ndiv2 && $upperOp1.$sign1) {
        if ($ndiv2 <= 0)
            $upper = jm_BitLevel_shiftRight($upperOp1,  -$ndiv2 | 0);
        else {
            var$4 = $ndiv2 >> 5;
            var$7 = $ndiv2 & 31;
            var$6 = ($upperOp1.$numberLength + var$4 | 0) + (var$7 ? 1 : 0) | 0;
            var$8 = $rt_createIntArray(var$6);
            jm_BitLevel_shiftLeft(var$8, $upperOp1.$digits, var$4, var$7);
            $upper = new jm_BigInteger;
            var$4 = $upperOp1.$sign1;
            $upper.$firstNonzeroDigit = (-2);
            $upper.$sign1 = var$4;
            $upper.$numberLength = var$6;
            $upper.$digits = var$8;
            jm_BigInteger_cutOffLeadingZeroes($upper);
        }
    } else
        $upper = $upperOp1;
    $lowerOp1 = jm_Elementary_subtract($op2, $upper);
    if ($ndiv2 && $upperOp2.$sign1) {
        if ($ndiv2 <= 0)
            $op2 = jm_BitLevel_shiftRight($upperOp2,  -$ndiv2 | 0);
        else {
            var$4 = $ndiv2 >> 5;
            var$7 = $ndiv2 & 31;
            var$6 = ($upperOp2.$numberLength + var$4 | 0) + (var$7 ? 1 : 0) | 0;
            var$8 = $rt_createIntArray(var$6);
            jm_BitLevel_shiftLeft(var$8, $upperOp2.$digits, var$4, var$7);
            $op2 = new jm_BigInteger;
            var$4 = $upperOp2.$sign1;
            $op2.$firstNonzeroDigit = (-2);
            $op2.$sign1 = var$4;
            $op2.$numberLength = var$6;
            $op2.$digits = var$8;
            jm_BigInteger_cutOffLeadingZeroes($op2);
        }
    } else
        $op2 = $upperOp2;
    $lowerOp2 = jm_Elementary_subtract($op1, $op2);
    $upper = jm_Multiplication_karatsuba($upperOp1, $upperOp2);
    $lower = jm_Multiplication_karatsuba($lowerOp1, $lowerOp2);
    $op1 = jm_Elementary_add(jm_Elementary_add(jm_Multiplication_karatsuba(jm_Elementary_subtract($upperOp1, $lowerOp1), jm_Elementary_subtract($lowerOp2, $upperOp2)), $upper), $lower);
    if ($ndiv2 && $op1.$sign1) {
        if ($ndiv2 <= 0)
            $op1 = jm_BitLevel_shiftRight($op1,  -$ndiv2 | 0);
        else {
            var$4 = $ndiv2 >> 5;
            var$7 = $ndiv2 & 31;
            var$6 = ($op1.$numberLength + var$4 | 0) + (var$7 ? 1 : 0) | 0;
            var$8 = $rt_createIntArray(var$6);
            jm_BitLevel_shiftLeft(var$8, $op1.$digits, var$4, var$7);
            $op2 = new jm_BigInteger;
            var$4 = $op1.$sign1;
            $op2.$firstNonzeroDigit = (-2);
            $op2.$sign1 = var$4;
            $op2.$numberLength = var$6;
            $op2.$digits = var$8;
            jm_BigInteger_cutOffLeadingZeroes($op2);
            $op1 = $op2;
        }
    }
    var$4 = $ndiv2 << 1;
    if (var$4 && $upper.$sign1) {
        if (var$4 <= 0)
            $upper = jm_BitLevel_shiftRight($upper,  -var$4 | 0);
        else {
            $ndiv2 = var$4 >> 5;
            var$4 = var$4 & 31;
            var$7 = ($upper.$numberLength + $ndiv2 | 0) + (var$4 ? 1 : 0) | 0;
            var$8 = $rt_createIntArray(var$7);
            jm_BitLevel_shiftLeft(var$8, $upper.$digits, $ndiv2, var$4);
            $op2 = new jm_BigInteger;
            var$4 = $upper.$sign1;
            $op2.$firstNonzeroDigit = (-2);
            $op2.$sign1 = var$4;
            $op2.$numberLength = var$7;
            $op2.$digits = var$8;
            jm_BigInteger_cutOffLeadingZeroes($op2);
            $upper = $op2;
        }
    }
    return jm_Elementary_add(jm_Elementary_add($upper, $op1), $lower);
},
jm_Multiplication_multiplyPAP = ($a, $b) => {
    let $aLen, $bLen, $resLength, $resSign, $aDigits, $bDigits, $resDigits, $result, $val, $valueLo, $valueHi;
    jm_Multiplication_$callClinit();
    $aLen = $a.$numberLength;
    $bLen = $b.$numberLength;
    $resLength = $aLen + $bLen | 0;
    $resSign = $a.$sign1 == $b.$sign1 ? 1 : (-1);
    if ($resLength != 2) {
        $aDigits = $a.$digits;
        $bDigits = $b.$digits;
        $resDigits = $rt_createIntArray($resLength);
        jm_Multiplication_multArraysPAP($aDigits, $aLen, $bDigits, $bLen, $resDigits);
        $result = new jm_BigInteger;
        $result.$firstNonzeroDigit = (-2);
        $result.$sign1 = $resSign;
        $result.$numberLength = $resLength;
        $result.$digits = $resDigits;
        jm_BigInteger_cutOffLeadingZeroes($result);
        return $result;
    }
    $val = Long_add(Long_add(Long_mul(Long_and(Long_fromInt($a.$digits.data[0]), Long_create(4294967295, 0)), Long_and(Long_fromInt($b.$digits.data[0]), Long_create(4294967295, 0))), Long_ZERO), Long_ZERO);
    $valueLo = Long_lo($val);
    $valueHi = Long_hi($val);
    if (!$valueHi) {
        $a = new jm_BigInteger;
        $a.$firstNonzeroDigit = (-2);
        $a.$sign1 = $resSign;
        $a.$numberLength = 1;
        $aDigits = $rt_createIntArray(1);
        $aDigits.data[0] = $valueLo;
        $a.$digits = $aDigits;
    } else {
        $a = new jm_BigInteger;
        $aDigits = $rt_createIntArrayFromData([$valueLo, $valueHi]);
        $a.$firstNonzeroDigit = (-2);
        $a.$sign1 = $resSign;
        $a.$numberLength = 2;
        $a.$digits = $aDigits;
    }
    return $a;
},
jm_Multiplication_multArraysPAP = ($aDigits, $aLen, $bDigits, $bLen, $resDigits) => {
    let var$6, var$7, var$8, var$9, var$10;
    jm_Multiplication_$callClinit();
    if ($aLen && $bLen) {
        if ($aLen == 1) {
            var$6 = $aDigits.data[0];
            var$7 = Long_ZERO;
            $aLen = 0;
            var$8 = Long_and(Long_fromInt(var$6), Long_create(4294967295, 0));
            while ($aLen < $bLen) {
                $aDigits = $bDigits.data;
                var$9 = $resDigits.data;
                var$7 = Long_add(Long_add(Long_mul(Long_and(Long_fromInt($aDigits[$aLen]), Long_create(4294967295, 0)), var$8), Long_and(Long_fromInt(Long_lo(var$7)), Long_create(4294967295, 0))), Long_ZERO);
                var$9[$aLen] = Long_lo(var$7);
                var$7 = Long_shru(var$7, 32);
                $aLen = $aLen + 1 | 0;
            }
            $resDigits.data[$bLen] = Long_lo(var$7);
        } else if ($bLen != 1)
            jm_Multiplication_multPAP($aDigits, $bDigits, $resDigits, $aLen, $bLen);
        else {
            $bLen = $bDigits.data[0];
            var$10 = Long_ZERO;
            var$6 = 0;
            var$7 = Long_and(Long_fromInt($bLen), Long_create(4294967295, 0));
            while (var$6 < $aLen) {
                $bDigits = $aDigits.data;
                var$9 = $resDigits.data;
                var$10 = Long_add(Long_add(Long_mul(Long_and(Long_fromInt($bDigits[var$6]), Long_create(4294967295, 0)), var$7), Long_and(Long_fromInt(Long_lo(var$10)), Long_create(4294967295, 0))), Long_ZERO);
                var$9[var$6] = Long_lo(var$10);
                var$10 = Long_shru(var$10, 32);
                var$6 = var$6 + 1 | 0;
            }
            $resDigits.data[$aLen] = Long_lo(var$10);
        }
        return;
    }
},
jm_Multiplication_multPAP = ($a, $b, $t, $aLen, $bLen) => {
    let $i, var$7, $carry, $aI, $j, var$11, var$12, var$13, var$14, var$15;
    jm_Multiplication_$callClinit();
    if ($a === $b && $aLen == $bLen) {
        jm_Multiplication_square($a, $aLen, $t);
        return;
    }
    $i = 0;
    while ($i < $aLen) {
        var$7 = $a.data;
        $carry = Long_ZERO;
        $aI = var$7[$i];
        $j = 0;
        var$11 = Long_and(Long_fromInt($aI), Long_create(4294967295, 0));
        while ($j < $bLen) {
            var$7 = $b.data;
            var$12 = $t.data;
            $aI = var$7[$j];
            var$13 = $i + $j | 0;
            var$14 = var$12[var$13];
            var$15 = Long_lo($carry);
            $carry = Long_add(Long_add(Long_mul(var$11, Long_and(Long_fromInt($aI), Long_create(4294967295, 0))), Long_and(Long_fromInt(var$14), Long_create(4294967295, 0))), Long_and(Long_fromInt(var$15), Long_create(4294967295, 0)));
            var$12[var$13] = Long_lo($carry);
            $carry = Long_shru($carry, 32);
            $j = $j + 1 | 0;
        }
        $t.data[$i + $bLen | 0] = Long_lo($carry);
        $i = $i + 1 | 0;
    }
},
jm_Multiplication_pow = ($acc, $exponent) => {
    let $res, var$4, $acc_0, var$6;
    jm_Multiplication_$callClinit();
    $res = jm_BigInteger_ONE;
    while ($exponent > 1) {
        if ($exponent & 1)
            $res = !$acc.$sign1 ? jm_BigInteger_ZERO : !$res.$sign1 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba($res, $acc);
        var$4 = $acc.$numberLength;
        if (var$4 != 1)
            $acc_0 = jm_BigInteger__init_1(1, jm_Multiplication_square($acc.$digits, var$4, $rt_createIntArray(var$4 << 1)));
        else {
            var$6 = $acc.$sign1;
            $acc_0 = !var$6 ? jm_BigInteger_ZERO : !var$6 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba($acc, $acc);
        }
        $exponent = $exponent >> 1;
        $acc = $acc_0;
    }
    return !$acc.$sign1 ? jm_BigInteger_ZERO : !$res.$sign1 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba($res, $acc);
},
jm_Multiplication_square = ($a, $aLen, $res) => {
    let $i, $carry, $i_0, $j, var$8, var$9, $index, var$11, var$12, var$13, var$14, var$15;
    jm_Multiplication_$callClinit();
    $i = 0;
    while ($i < $aLen) {
        $carry = Long_ZERO;
        $i_0 = $i + 1 | 0;
        $j = $i_0;
        while ($j < $aLen) {
            var$8 = $a.data;
            var$9 = $res.data;
            $index = var$8[$i];
            var$11 = var$8[$j];
            var$12 = $i + $j | 0;
            var$13 = var$9[var$12];
            var$14 = Long_lo($carry);
            $carry = Long_add(Long_add(Long_mul(Long_and(Long_fromInt($index), Long_create(4294967295, 0)), Long_and(Long_fromInt(var$11), Long_create(4294967295, 0))), Long_and(Long_fromInt(var$13), Long_create(4294967295, 0))), Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)));
            var$9[var$12] = Long_lo($carry);
            $carry = Long_shru($carry, 32);
            $j = $j + 1 | 0;
        }
        $res.data[$i + $aLen | 0] = Long_lo($carry);
        $i = $i_0;
    }
    $i = $aLen << 1;
    $index = 0;
    $j = 0;
    while ($j < $i) {
        var$8 = $res.data;
        var$11 = var$8[$j];
        var$8[$j] = var$11 << 1 | $index;
        $index = var$11 >>> 31 | 0;
        $j = $j + 1 | 0;
    }
    if ($index)
        $res.data[$i] = $index;
    $carry = Long_ZERO;
    $i = 0;
    $index = 0;
    while ($i < $aLen) {
        var$8 = $a.data;
        var$9 = $res.data;
        $i_0 = var$8[$i];
        $j = var$8[$i];
        var$12 = var$9[$index];
        var$11 = Long_lo($carry);
        $carry = Long_add(Long_add(Long_mul(Long_and(Long_fromInt($i_0), Long_create(4294967295, 0)), Long_and(Long_fromInt($j), Long_create(4294967295, 0))), Long_and(Long_fromInt(var$12), Long_create(4294967295, 0))), Long_and(Long_fromInt(var$11), Long_create(4294967295, 0)));
        var$9[$index] = Long_lo($carry);
        var$15 = Long_shru($carry, 32);
        $index = $index + 1 | 0;
        $carry = Long_add(var$15, Long_and(Long_fromInt(var$9[$index]), Long_create(4294967295, 0)));
        var$9[$index] = Long_lo($carry);
        $carry = Long_shru($carry, 32);
        $i = $i + 1 | 0;
        $index = $index + 1 | 0;
    }
    return $res;
},
jm_Multiplication_powerOf10 = $exp => {
    let $intExp, var$3, $powerOfFive, var$5, var$6, var$7, $longExp, var$9, var$10;
    jm_Multiplication_$callClinit();
    $intExp = Long_lo($exp);
    var$3 = jm_Multiplication_bigTenPows.data;
    if (Long_lt($exp, Long_fromInt(var$3.length)))
        return var$3[$intExp];
    if (Long_le($exp, Long_fromInt(50)))
        return jm_BigInteger_pow(jm_BigInteger_TEN, $intExp);
    if (Long_le($exp, Long_fromInt(1000))) {
        $powerOfFive = jm_BigInteger_pow(jm_Multiplication_bigFivePows.data[1], $intExp);
        if ($intExp && $powerOfFive.$sign1) {
            if ($intExp <= 0)
                $powerOfFive = jm_BitLevel_shiftRight($powerOfFive,  -$intExp | 0);
            else {
                var$5 = $intExp >> 5;
                $intExp = $intExp & 31;
                var$6 = ($powerOfFive.$numberLength + var$5 | 0) + ($intExp ? 1 : 0) | 0;
                var$3 = $rt_createIntArray(var$6);
                jm_BitLevel_shiftLeft(var$3, $powerOfFive.$digits, var$5, $intExp);
                var$7 = new jm_BigInteger;
                $intExp = $powerOfFive.$sign1;
                var$7.$firstNonzeroDigit = (-2);
                var$7.$sign1 = $intExp;
                var$7.$numberLength = var$6;
                var$7.$digits = var$3;
                jm_BigInteger_cutOffLeadingZeroes(var$7);
                $powerOfFive = var$7;
            }
        }
        return $powerOfFive;
    }
    if (Long_gt(Long_add(Long_fromInt(1), Long_fromNumber(Long_toNumber($exp) / 2.4082399653118496)), Long_fromInt(1000000))) {
        $powerOfFive = new jl_ArithmeticException;
        $powerOfFive.$suppressionEnabled = 1;
        $powerOfFive.$writableStackTrace = 1;
        $powerOfFive.$message = $rt_s(2129);
        $rt_throw($powerOfFive);
    }
    if (Long_le($exp, Long_fromInt(2147483647))) {
        $powerOfFive = jm_BigInteger_pow(jm_Multiplication_bigFivePows.data[1], $intExp);
        if ($intExp && $powerOfFive.$sign1) {
            if ($intExp <= 0)
                $powerOfFive = jm_BitLevel_shiftRight($powerOfFive,  -$intExp | 0);
            else {
                var$5 = $intExp >> 5;
                $intExp = $intExp & 31;
                var$6 = ($powerOfFive.$numberLength + var$5 | 0) + ($intExp ? 1 : 0) | 0;
                var$3 = $rt_createIntArray(var$6);
                jm_BitLevel_shiftLeft(var$3, $powerOfFive.$digits, var$5, $intExp);
                var$7 = new jm_BigInteger;
                $intExp = $powerOfFive.$sign1;
                var$7.$firstNonzeroDigit = (-2);
                var$7.$sign1 = $intExp;
                var$7.$numberLength = var$6;
                var$7.$digits = var$3;
                jm_BigInteger_cutOffLeadingZeroes(var$7);
                $powerOfFive = var$7;
            }
        }
        return $powerOfFive;
    }
    $powerOfFive = jm_BigInteger_pow(jm_Multiplication_bigFivePows.data[1], 2147483647);
    $longExp = Long_sub($exp, Long_fromInt(2147483647));
    $intExp = Long_lo(Long_rem($exp, Long_fromInt(2147483647)));
    var$7 = $powerOfFive;
    $exp = $longExp;
    while (Long_gt($exp, Long_fromInt(2147483647))) {
        var$7 = !$powerOfFive.$sign1 ? jm_BigInteger_ZERO : !var$7.$sign1 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba(var$7, $powerOfFive);
        $exp = Long_sub($exp, Long_fromInt(2147483647));
    }
    $powerOfFive = jm_BigInteger_pow(jm_Multiplication_bigFivePows.data[1], $intExp);
    $powerOfFive = !$powerOfFive.$sign1 ? jm_BigInteger_ZERO : !var$7.$sign1 ? jm_BigInteger_ZERO : jm_Multiplication_karatsuba(var$7, $powerOfFive);
    if ($powerOfFive.$sign1) {
        var$9 = ($powerOfFive.$numberLength + 67108863 | 0) + 1 | 0;
        var$3 = $rt_createIntArray(var$9);
        jm_BitLevel_shiftLeft(var$3, $powerOfFive.$digits, 67108863, 31);
        var$7 = new jm_BigInteger;
        var$5 = $powerOfFive.$sign1;
        var$7.$firstNonzeroDigit = (-2);
        var$7.$sign1 = var$5;
        var$7.$numberLength = var$9;
        var$7.$digits = var$3;
        jm_BigInteger_cutOffLeadingZeroes(var$7);
        $powerOfFive = var$7;
    }
    while (Long_gt($longExp, Long_fromInt(2147483647))) {
        if ($powerOfFive.$sign1) {
            var$5 = ($powerOfFive.$numberLength + 67108863 | 0) + 1 | 0;
            var$3 = $rt_createIntArray(var$5);
            jm_BitLevel_shiftLeft(var$3, $powerOfFive.$digits, 67108863, 31);
            var$7 = new jm_BigInteger;
            var$10 = $powerOfFive.$sign1;
            var$7.$firstNonzeroDigit = (-2);
            var$7.$sign1 = var$10;
            var$7.$numberLength = var$5;
            var$7.$digits = var$3;
            jm_BigInteger_cutOffLeadingZeroes(var$7);
            $powerOfFive = var$7;
        }
        $longExp = Long_sub($longExp, Long_fromInt(2147483647));
    }
    if ($intExp && $powerOfFive.$sign1) {
        if ($intExp <= 0)
            $powerOfFive = jm_BitLevel_shiftRight($powerOfFive,  -$intExp | 0);
        else {
            var$5 = $intExp >> 5;
            $intExp = $intExp & 31;
            var$6 = ($powerOfFive.$numberLength + var$5 | 0) + ($intExp ? 1 : 0) | 0;
            var$3 = $rt_createIntArray(var$6);
            jm_BitLevel_shiftLeft(var$3, $powerOfFive.$digits, var$5, $intExp);
            var$7 = new jm_BigInteger;
            $intExp = $powerOfFive.$sign1;
            var$7.$firstNonzeroDigit = (-2);
            var$7.$sign1 = $intExp;
            var$7.$numberLength = var$6;
            var$7.$digits = var$3;
            jm_BigInteger_cutOffLeadingZeroes(var$7);
            $powerOfFive = var$7;
        }
    }
    return $powerOfFive;
},
jm_Multiplication__clinit_ = () => {
    let $fivePow, $i, var$3, var$4, var$5, var$6;
    jm_Multiplication_tenPows = $rt_createIntArrayFromData([1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000]);
    jm_Multiplication_fivePows = $rt_createIntArrayFromData([1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125]);
    jm_Multiplication_bigTenPows = $rt_createArray(jm_BigInteger, 32);
    jm_Multiplication_bigFivePows = $rt_createArray(jm_BigInteger, 32);
    $fivePow = Long_fromInt(1);
    $i = 0;
    while ($i <= 18) {
        jm_Multiplication_bigFivePows.data[$i] = jm_BigInteger_valueOf($fivePow);
        jm_Multiplication_bigTenPows.data[$i] = jm_BigInteger_valueOf(Long_shl($fivePow, $i));
        $fivePow = Long_mul($fivePow, Long_fromInt(5));
        $i = $i + 1 | 0;
    }
    while ($i < jm_Multiplication_bigTenPows.data.length) {
        var$3 = jm_Multiplication_bigFivePows.data;
        var$4 = $i - 1 | 0;
        var$5 = var$3[var$4];
        var$6 = var$3[1];
        if (!var$6.$sign1)
            var$5 = jm_BigInteger_ZERO;
        else if (!var$5.$sign1)
            var$5 = jm_BigInteger_ZERO;
        else {
            jm_Multiplication_$callClinit();
            var$5 = jm_Multiplication_karatsuba(var$5, var$6);
        }
        var$3[$i] = var$5;
        var$3 = jm_Multiplication_bigTenPows.data;
        var$5 = var$3[var$4];
        var$6 = jm_BigInteger_TEN;
        if (!var$6.$sign1)
            var$5 = jm_BigInteger_ZERO;
        else if (!var$5.$sign1)
            var$5 = jm_BigInteger_ZERO;
        else {
            jm_Multiplication_$callClinit();
            var$5 = jm_Multiplication_karatsuba(var$5, var$6);
        }
        var$3[$i] = var$5;
        $i = $i + 1 | 0;
    }
};
function jm_BigInteger() {
    let a = this; jl_Number.call(a);
    a.$digits = null;
    a.$numberLength = 0;
    a.$sign1 = 0;
    a.$firstNonzeroDigit = 0;
}
let jm_BigInteger_ZERO = null,
jm_BigInteger_ONE = null,
jm_BigInteger_TWO = null,
jm_BigInteger_TEN = null,
jm_BigInteger_MINUS_ONE = null,
jm_BigInteger_SMALL_VALUES = null,
jm_BigInteger_TWO_POWS = null,
jm_BigInteger__init_0 = ($this, $sign, $val) => {
    let var$3;
    $this.$firstNonzeroDigit = (-2);
    $this.$sign1 = $sign;
    if (Long_eq(Long_and($val, Long_create(0, 4294967295)), Long_ZERO)) {
        $this.$numberLength = 1;
        var$3 = $rt_createIntArray(1);
        var$3.data[0] = Long_lo($val);
        $this.$digits = var$3;
    } else {
        $this.$numberLength = 2;
        $this.$digits = $rt_createIntArrayFromData([Long_lo($val), Long_hi($val)]);
    }
},
jm_BigInteger__init_ = (var_0, var_1) => {
    let var_2 = new jm_BigInteger();
    jm_BigInteger__init_0(var_2, var_0, var_1);
    return var_2;
},
jm_BigInteger__init_2 = ($this, $signum, $digits) => {
    let var$3, var$4;
    var$3 = $digits.data;
    $this.$firstNonzeroDigit = (-2);
    var$4 = var$3.length;
    if (var$4) {
        $this.$sign1 = $signum;
        $this.$numberLength = var$4;
        $this.$digits = $digits;
        jm_BigInteger_cutOffLeadingZeroes($this);
    } else {
        $this.$sign1 = 0;
        $this.$numberLength = 1;
        $digits = $rt_createIntArray(1);
        $digits.data[0] = 0;
        $this.$digits = $digits;
    }
},
jm_BigInteger__init_1 = (var_0, var_1) => {
    let var_2 = new jm_BigInteger();
    jm_BigInteger__init_2(var_2, var_0, var_1);
    return var_2;
},
jm_BigInteger_valueOf = $val => {
    if (Long_lt($val, Long_ZERO)) {
        if (Long_eq($val, Long_fromInt(-1)))
            return jm_BigInteger_MINUS_ONE;
        return jm_BigInteger__init_((-1), Long_neg($val));
    }
    if (Long_gt($val, Long_fromInt(10)))
        return jm_BigInteger__init_(1, $val);
    return jm_BigInteger_SMALL_VALUES.data[Long_lo($val)];
},
jm_BigInteger_testBit = ($this, $n) => {
    let var$2, $intCount, var$4, $digit, var$6, $firstNonZeroDigit;
    if (!$n)
        return !($this.$digits.data[0] & 1) ? 0 : 1;
    if ($n < 0) {
        var$2 = new jl_ArithmeticException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2130);
        $rt_throw(var$2);
    }
    $intCount = $n >> 5;
    if ($intCount >= $this.$numberLength)
        return $this.$sign1 >= 0 ? 0 : 1;
    var$4 = $this.$digits.data;
    $digit = var$4[$intCount];
    $n = 1 << ($n & 31);
    var$6 = $this.$sign1;
    if (var$6 < 0) {
        if ($this.$firstNonzeroDigit == (-2)) {
            if (!var$6)
                var$6 = (-1);
            else {
                var$6 = 0;
                while (!var$4[var$6]) {
                    var$6 = var$6 + 1 | 0;
                }
            }
            $this.$firstNonzeroDigit = var$6;
        }
        $firstNonZeroDigit = $this.$firstNonzeroDigit;
        if ($intCount < $firstNonZeroDigit)
            return 0;
        $digit = $firstNonZeroDigit == $intCount ?  -$digit | 0 : $digit ^ (-1);
    }
    return !($digit & $n) ? 0 : 1;
},
jm_BigInteger_longValue = $this => {
    let $value, var$2;
    if ($this.$numberLength <= 1)
        $value = Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0));
    else {
        var$2 = $this.$digits.data;
        $value = Long_or(Long_shl(Long_fromInt(var$2[1]), 32), Long_and(Long_fromInt(var$2[0]), Long_create(4294967295, 0)));
    }
    return Long_mul(Long_fromInt($this.$sign1), $value);
},
jm_BigInteger_compareTo = ($this, $val) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$sign1;
    var$3 = $val.$sign1;
    var$4 = $rt_compare(var$2, var$3);
    if (var$4 > 0)
        return 1;
    if (var$4 < 0)
        return (-1);
    var$4 = $this.$numberLength;
    var$5 = $rt_compare(var$4, $val.$numberLength);
    if (var$5 > 0)
        return var$2;
    if (var$5 < 0)
        return  -var$3 | 0;
    return $rt_imul(var$2, jm_Elementary_compareArrays($this.$digits, $val.$digits, var$4));
},
jm_BigInteger_equals = ($this, $x1) => {
    let var$2, var$3, var$4;
    if ($this === $x1)
        return 1;
    if (!($x1 instanceof jm_BigInteger))
        return 0;
    a: {
        if ($this.$sign1 == $x1.$sign1) {
            var$2 = $this.$numberLength;
            if (var$2 == $x1.$numberLength) {
                var$3 = $x1.$digits;
                var$2 = var$2 - 1 | 0;
                while (var$2 >= 0) {
                    var$4 = var$3.data;
                    if ($this.$digits.data[var$2] != var$4[var$2])
                        break;
                    var$2 = var$2 + (-1) | 0;
                }
                if (var$2 >= 0 ? 0 : 1) {
                    var$2 = 1;
                    break a;
                }
            }
        }
        var$2 = 0;
    }
    return var$2;
},
jm_BigInteger_pow = ($this, $exp) => {
    let var$2, $x, var$4, var$5, var$6, var$7;
    if ($exp < 0) {
        var$2 = new jl_ArithmeticException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(2131);
        $rt_throw(var$2);
    }
    if (!$exp)
        return jm_BigInteger_ONE;
    if ($exp != 1 && !jm_BigInteger_equals($this, jm_BigInteger_ONE) && !jm_BigInteger_equals($this, jm_BigInteger_ZERO)) {
        if (jm_BigInteger_testBit($this, 0))
            return jm_Multiplication_pow($this, $exp);
        $x = 1;
        while (!jm_BigInteger_testBit($this, $x)) {
            $x = $x + 1 | 0;
        }
        var$2 = jm_BigInteger_getPowerOfTwo($rt_imul($x, $exp));
        if ($x && $this.$sign1) {
            if ($x > 0)
                $this = jm_BitLevel_shiftRight($this, $x);
            else {
                $x =  -$x | 0;
                var$4 = $x >> 5;
                $x = $x & 31;
                var$5 = ($this.$numberLength + var$4 | 0) + ($x ? 1 : 0) | 0;
                var$6 = $rt_createIntArray(var$5);
                jm_BitLevel_shiftLeft(var$6, $this.$digits, var$4, $x);
                var$7 = new jm_BigInteger;
                $x = $this.$sign1;
                var$7.$firstNonzeroDigit = (-2);
                var$7.$sign1 = $x;
                var$7.$numberLength = var$5;
                var$7.$digits = var$6;
                jm_BigInteger_cutOffLeadingZeroes(var$7);
                $this = var$7;
            }
        }
        var$7 = jm_BigInteger_pow($this, $exp);
        if (!var$7.$sign1)
            var$2 = jm_BigInteger_ZERO;
        else if (!var$2.$sign1)
            var$2 = jm_BigInteger_ZERO;
        else {
            jm_Multiplication_$callClinit();
            var$2 = jm_Multiplication_karatsuba(var$2, var$7);
        }
        return var$2;
    }
    return $this;
},
jm_BigInteger_divideAndRemainder = ($this, $divisor) => {
    let $divisorSign, $divisorLen, $divisorDigits, $thisDigits, $thisLen, $cmp, $thisSign, $quotientLength, $quotientSign, $quotientDigits, $remainderDigits, $result0, $result1;
    $divisorSign = $divisor.$sign1;
    if (!$divisorSign) {
        $divisor = new jl_ArithmeticException;
        $divisor.$suppressionEnabled = 1;
        $divisor.$writableStackTrace = 1;
        $divisor.$message = $rt_s(2132);
        $rt_throw($divisor);
    }
    $divisorLen = $divisor.$numberLength;
    $divisorDigits = $divisor.$digits;
    if ($divisorLen == 1)
        return jm_Division_divideAndRemainderByInteger($this, $divisorDigits.data[0], $divisorSign);
    $thisDigits = $this.$digits;
    $thisLen = $this.$numberLength;
    $cmp = $rt_compare($thisLen, $divisorLen);
    if ((!$cmp ? jm_Elementary_compareArrays($thisDigits, $divisorDigits, $thisLen) : $cmp <= 0 ? (-1) : 1) < 0)
        return $rt_wrapArray(jm_BigInteger, [jm_BigInteger_ZERO, $this]);
    $thisSign = $this.$sign1;
    $quotientLength = ($thisLen - $divisorLen | 0) + 1 | 0;
    $quotientSign = $thisSign != $divisorSign ? (-1) : 1;
    $quotientDigits = $rt_createIntArray($quotientLength);
    $remainderDigits = jm_Division_divide($quotientDigits, $quotientLength, $thisDigits, $thisLen, $divisorDigits, $divisorLen);
    $result0 = new jm_BigInteger;
    $result0.$firstNonzeroDigit = (-2);
    $result0.$sign1 = $quotientSign;
    $result0.$numberLength = $quotientLength;
    $result0.$digits = $quotientDigits;
    $result1 = new jm_BigInteger;
    $result1.$firstNonzeroDigit = (-2);
    $result1.$sign1 = $thisSign;
    $result1.$numberLength = $divisorLen;
    $result1.$digits = $remainderDigits;
    jm_BigInteger_cutOffLeadingZeroes($result0);
    jm_BigInteger_cutOffLeadingZeroes($result1);
    return $rt_wrapArray(jm_BigInteger, [$result0, $result1]);
},
jm_BigInteger_divide = ($this, $divisor) => {
    let $divisorSign, $divisorLen, var$4, $thisSign, $resDigits, $thisLen, $val, $cmp, $resLength, $resSign, $result;
    $divisorSign = $divisor.$sign1;
    if (!$divisorSign) {
        $divisor = new jl_ArithmeticException;
        $divisor.$suppressionEnabled = 1;
        $divisor.$writableStackTrace = 1;
        $divisor.$message = $rt_s(2132);
        $rt_throw($divisor);
    }
    $divisorLen = $divisor.$numberLength;
    var$4 = $rt_compare($divisorLen, 1);
    if (!var$4 && $divisor.$digits.data[0] == 1 ? 1 : 0) {
        if ($divisorSign <= 0) {
            $divisorSign = $this.$sign1;
            if (!$divisorSign)
                $divisor = $this;
            else {
                $divisor = new jm_BigInteger;
                $divisorSign =  -$divisorSign | 0;
                $thisSign = $this.$numberLength;
                $resDigits = $this.$digits;
                $divisor.$firstNonzeroDigit = (-2);
                $divisor.$sign1 = $divisorSign;
                $divisor.$numberLength = $thisSign;
                $divisor.$digits = $resDigits;
            }
            $this = $divisor;
        }
        return $this;
    }
    $thisSign = $this.$sign1;
    $thisLen = $this.$numberLength;
    if (($thisLen + $divisorLen | 0) == 2) {
        $val = Long_div(Long_and(Long_fromInt($this.$digits.data[0]), Long_create(4294967295, 0)), Long_and(Long_fromInt($divisor.$digits.data[0]), Long_create(4294967295, 0)));
        if ($thisSign != $divisorSign)
            $val = Long_neg($val);
        return jm_BigInteger_valueOf($val);
    }
    $cmp = $rt_compare($thisLen, $divisorLen);
    $cmp = !$cmp ? jm_Elementary_compareArrays($this.$digits, $divisor.$digits, $thisLen) : $cmp <= 0 ? (-1) : 1;
    if (!$cmp)
        return $thisSign != $divisorSign ? jm_BigInteger_MINUS_ONE : jm_BigInteger_ONE;
    if ($cmp == (-1))
        return jm_BigInteger_ZERO;
    $resLength = ($thisLen - $divisorLen | 0) + 1 | 0;
    $resDigits = $rt_createIntArray($resLength);
    $resSign = $thisSign != $divisorSign ? (-1) : 1;
    if (var$4)
        jm_Division_divide($resDigits, $resLength, $this.$digits, $thisLen, $divisor.$digits, $divisorLen);
    else
        jm_Division_divideArrayByInt($resDigits, $this.$digits, $thisLen, $divisor.$digits.data[0]);
    $result = new jm_BigInteger;
    $result.$firstNonzeroDigit = (-2);
    $result.$sign1 = $resSign;
    $result.$numberLength = $resLength;
    $result.$digits = $resDigits;
    jm_BigInteger_cutOffLeadingZeroes($result);
    return $result;
},
jm_BigInteger_remainder = ($this, $divisor) => {
    let $thisLen, $divisorLen, $qLen, $resDigits, $result;
    if (!$divisor.$sign1) {
        $divisor = new jl_ArithmeticException;
        $divisor.$suppressionEnabled = 1;
        $divisor.$writableStackTrace = 1;
        $divisor.$message = $rt_s(2132);
        $rt_throw($divisor);
    }
    $thisLen = $this.$numberLength;
    $divisorLen = $divisor.$numberLength;
    $qLen = $rt_compare($thisLen, $divisorLen);
    if ((!$qLen ? jm_Elementary_compareArrays($this.$digits, $divisor.$digits, $thisLen) : $qLen <= 0 ? (-1) : 1) == (-1))
        return $this;
    $resDigits = $rt_createIntArray($divisorLen);
    if ($divisorLen != 1)
        $resDigits = jm_Division_divide(null, ($thisLen - $divisorLen | 0) + 1 | 0, $this.$digits, $thisLen, $divisor.$digits, $divisorLen);
    else
        $resDigits.data[0] = jm_Division_remainderArrayByInt($this.$digits, $thisLen, $divisor.$digits.data[0]);
    $result = new jm_BigInteger;
    $thisLen = $this.$sign1;
    $result.$firstNonzeroDigit = (-2);
    $result.$sign1 = $thisLen;
    $result.$numberLength = $divisorLen;
    $result.$digits = $resDigits;
    jm_BigInteger_cutOffLeadingZeroes($result);
    return $result;
},
jm_BigInteger_cutOffLeadingZeroes = $this => {
    let var$1, var$2, var$3;
    while (true) {
        var$1 = $this.$numberLength;
        if (var$1 <= 0)
            break;
        var$2 = $this.$digits.data;
        var$1 = var$1 - 1 | 0;
        $this.$numberLength = var$1;
        if (var$2[var$1])
            break;
    }
    var$2 = $this.$digits.data;
    var$3 = $this.$numberLength;
    $this.$numberLength = var$3 + 1 | 0;
    if (!var$2[var$3])
        $this.$sign1 = 0;
},
jm_BigInteger_getPowerOfTwo = $exp => {
    let $resDigits, $intCount, $bitN, var$5, var$6;
    $resDigits = jm_BigInteger_TWO_POWS.data;
    if ($exp < $resDigits.length)
        return $resDigits[$exp];
    $intCount = $exp >> 5;
    $bitN = $exp & 31;
    var$5 = $intCount + 1 | 0;
    $resDigits = $rt_createIntArray(var$5);
    $resDigits.data[$intCount] = 1 << $bitN;
    var$6 = new jm_BigInteger;
    var$6.$firstNonzeroDigit = (-2);
    var$6.$sign1 = 1;
    var$6.$numberLength = var$5;
    var$6.$digits = $resDigits;
    return var$6;
},
jm_BigInteger__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $i;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 0;
    var$1.$numberLength = 1;
    var$2 = $rt_createIntArray(1);
    var$2.data[0] = 0;
    var$1.$digits = var$2;
    jm_BigInteger_ZERO = var$1;
    var$3 = new jm_BigInteger;
    var$3.$firstNonzeroDigit = (-2);
    var$3.$sign1 = 1;
    var$3.$numberLength = 1;
    var$2 = $rt_createIntArray(1);
    var$2.data[0] = 1;
    var$3.$digits = var$2;
    jm_BigInteger_ONE = var$3;
    var$4 = new jm_BigInteger;
    var$4.$firstNonzeroDigit = (-2);
    var$4.$sign1 = 1;
    var$4.$numberLength = 1;
    var$2 = $rt_createIntArray(1);
    var$2.data[0] = 2;
    var$4.$digits = var$2;
    jm_BigInteger_TWO = var$4;
    var$5 = new jm_BigInteger;
    var$5.$firstNonzeroDigit = (-2);
    var$5.$sign1 = 1;
    var$5.$numberLength = 1;
    var$2 = $rt_createIntArray(1);
    var$2.data[0] = 10;
    var$5.$digits = var$2;
    jm_BigInteger_TEN = var$5;
    var$6 = new jm_BigInteger;
    var$6.$firstNonzeroDigit = (-2);
    var$6.$sign1 = (-1);
    var$6.$numberLength = 1;
    var$2 = $rt_createIntArray(1);
    var$2.data[0] = 1;
    var$6.$digits = var$2;
    jm_BigInteger_MINUS_ONE = var$6;
    var$2 = $rt_createArray(jm_BigInteger, 11);
    var$7 = var$2.data;
    var$7[0] = var$1;
    var$7[1] = var$3;
    var$7[2] = var$4;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 3;
    var$1.$digits = var$8;
    var$7[3] = var$1;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 4;
    var$1.$digits = var$8;
    var$7[4] = var$1;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 5;
    var$1.$digits = var$8;
    var$7[5] = var$1;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 6;
    var$1.$digits = var$8;
    var$7[6] = var$1;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 7;
    var$1.$digits = var$8;
    var$7[7] = var$1;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 8;
    var$1.$digits = var$8;
    var$7[8] = var$1;
    var$1 = new jm_BigInteger;
    var$1.$firstNonzeroDigit = (-2);
    var$1.$sign1 = 1;
    var$1.$numberLength = 1;
    var$8 = $rt_createIntArray(1);
    var$8.data[0] = 9;
    var$1.$digits = var$8;
    var$7[9] = var$1;
    var$7[10] = var$5;
    jm_BigInteger_SMALL_VALUES = var$2;
    jm_BigInteger_TWO_POWS = $rt_createArray(jm_BigInteger, 32);
    $i = 0;
    while (true) {
        var$2 = jm_BigInteger_TWO_POWS.data;
        if ($i >= var$2.length)
            break;
        var$2[$i] = jm_BigInteger_valueOf(Long_shl(Long_fromInt(1), $i));
        $i = $i + 1 | 0;
    }
},
ju_HashMap$ValueIterator = $rt_classWithoutFields(ju_HashMap$AbstractMapIterator),
ju_HashMap$ValueIterator_next = $this => {
    ju_HashMap$AbstractMapIterator_makeNext($this);
    return $this.$currentEntry0.$value0;
};
function nms_AttributeModifier() {
    let a = this; jl_Object.call(a);
    a.$amount0 = 0.0;
    a.$operation = 0;
    a.$name3 = null;
    a.$id1 = null;
    a.$isSaved = 0;
}
let nms_AttributeModifier_equals = ($this, $par1Obj) => {
    let $var2, var$3, var$4, var$5;
    if ($this === $par1Obj)
        return 1;
    if ($par1Obj !== null) {
        $var2 = $this.constructor;
        if ($var2 === null)
            var$3 = null;
        else {
            var$3 = $var2.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $var2;
                $var2.classObject = var$3;
            }
        }
        var$4 = $par1Obj.constructor;
        if (var$4 === null)
            $var2 = null;
        else {
            $var2 = var$4.classObject;
            if ($var2 === null) {
                $var2 = new jl_Class;
                $var2.$platformClass = var$4;
                var$4.classObject = $var2;
            }
        }
        if (var$3 === $var2) {
            a: {
                $var2 = $par1Obj;
                $par1Obj = $this.$id1;
                if ($par1Obj === null) {
                    if ($var2.$id1 === null)
                        break a;
                    return 0;
                }
                $var2 = $var2.$id1;
                if (null !== $var2 && $var2 instanceof nle_ProfileUUID) {
                    $var2 = $var2;
                    var$5 = Long_eq($par1Obj.$mostSigBits, $var2.$mostSigBits) && Long_eq($par1Obj.$leastSigBits, $var2.$leastSigBits) ? 1 : 0;
                } else
                    var$5 = 0;
                if (!var$5)
                    return 0;
            }
            return 1;
        }
    }
    return 0;
},
nms_AttributeModifier_hashCode = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$id1;
    if (var$1 === null)
        var$2 = 0;
    else {
        var$3 = Long_xor(var$1.$mostSigBits, var$1.$leastSigBits);
        var$2 = Long_hi(var$3) ^ Long_lo(var$3);
    }
    return var$2;
},
nms_AttributeModifier_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$amount0;
    var$2 = $this.$operation;
    var$3 = $this.$name3;
    var$4 = $this.$id1;
    var$4 = var$4 === null ? $rt_s(1) : nle_ProfileUUID_toString(var$4);
    var$5 = $this.$isSaved;
    var$6 = new jl_StringBuilder;
    var$6.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2133));
    jl_AbstractStringBuilder_insert2(var$6, var$6.$length0, var$1);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2134));
    jl_AbstractStringBuilder_insert0(var$6, var$6.$length0, var$2, 10);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2135));
    var$2 = var$6.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$2, var$3);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2136));
    var$2 = var$6.$length0;
    if (var$4 === null)
        var$4 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$6, var$2, var$4);
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, $rt_s(2137));
    jl_AbstractStringBuilder_insert(var$6, var$6.$length0, !var$5 ? $rt_s(897) : $rt_s(898));
    var$7 = var$6.$length0;
    jl_AbstractStringBuilder_insertSpace(var$6, var$7, var$7 + 1 | 0);
    var$8 = var$6.$buffer;
    var$9 = var$8.data;
    var$9[var$7] = 125;
    var$3 = new jl_String;
    var$5 = var$6.$length0;
    var$7 = var$9.length;
    if (var$5 >= 0 && var$5 <= (var$7 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$8.data, 0, var$5);
        return var$3;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$3);
    $rt_throw(var$3);
},
jur_BackReferencedSingleSet = $rt_classWithoutFields(jur_SingleSet),
jur_BackReferencedSingleSet_find = ($this, $startSearch, $testString, $matchResult) => {
    let $res, $lastIndex, var$6, var$7, var$8, $saveStart;
    $res = 0;
    $lastIndex = $matchResult.$rightBound;
    a: {
        while (true) {
            if ($startSearch > $lastIndex) {
                $startSearch = $res;
                break a;
            }
            var$6 = $this.$groupIndex;
            var$7 = $matchResult.$groupBounds.data;
            var$8 = var$6 * 2 | 0;
            $saveStart = var$7[var$8];
            var$7[var$8] = $startSearch;
            $res = $this.$kid.$matches($startSearch, $testString, $matchResult);
            if ($res >= 0)
                break;
            var$8 = $this.$groupIndex;
            $matchResult.$groupBounds.data[var$8 * 2 | 0] = $saveStart;
            $startSearch = $startSearch + 1 | 0;
        }
    }
    return $startSearch;
},
jur_BackReferencedSingleSet_findBack = ($this, $stringIndex, $startSearch, $testString, $matchResult) => {
    let $res, var$6, var$7, var$8, $saveStart;
    $res = 0;
    a: {
        while (true) {
            if ($startSearch < $stringIndex) {
                $startSearch = $res;
                break a;
            }
            var$6 = $this.$groupIndex;
            var$7 = $matchResult.$groupBounds.data;
            var$8 = var$6 * 2 | 0;
            $saveStart = var$7[var$8];
            var$7[var$8] = $startSearch;
            $res = $this.$kid.$matches($startSearch, $testString, $matchResult);
            if ($res >= 0)
                break;
            var$8 = $this.$groupIndex;
            $matchResult.$groupBounds.data[var$8 * 2 | 0] = $saveStart;
            $startSearch = $startSearch + (-1) | 0;
        }
    }
    return $startSearch;
},
jur_BackReferencedSingleSet_processBackRefReplacement = $this => {
    return null;
};
function jul_Level() {
    let a = this; jl_Object.call(a);
    a.$name9 = null;
    a.$value10 = 0;
}
let jul_Level_OFF = null,
jul_Level_SEVERE = null,
jul_Level_WARNING = null,
jul_Level_INFO = null,
jul_Level_CONFIG = null,
jul_Level_FINE = null,
jul_Level_FINER = null,
jul_Level_FINEST = null,
jul_Level_ALL = null,
jul_Level__clinit_ = () => {
    let var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2138);
    var$1.$value10 = 2147483647;
    jul_Level_OFF = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2139);
    var$1.$value10 = 1000;
    jul_Level_SEVERE = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2140);
    var$1.$value10 = 900;
    jul_Level_WARNING = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2141);
    var$1.$value10 = 800;
    jul_Level_INFO = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2142);
    var$1.$value10 = 700;
    jul_Level_CONFIG = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2143);
    var$1.$value10 = 500;
    jul_Level_FINE = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2144);
    var$1.$value10 = 400;
    jul_Level_FINER = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2145);
    var$1.$value10 = 300;
    jul_Level_FINEST = var$1;
    var$1 = new jul_Level;
    var$1.$name9 = $rt_s(2146);
    var$1.$value10 = (-2147483648);
    jul_Level_ALL = var$1;
},
ju_HashMap$KeyIterator = $rt_classWithoutFields(ju_HashMap$AbstractMapIterator),
ju_HashMap$KeyIterator_next = $this => {
    ju_HashMap$AbstractMapIterator_makeNext($this);
    return $this.$currentEntry0.$key;
};
function jnci_BufferedEncoder$Controller() {
    let a = this; jl_Object.call(a);
    a.$in2 = null;
    a.$out2 = null;
    a.$inPosition = 0;
    a.$outPosition0 = 0;
}
function jnci_BufferedDecoder$Controller() {
    let a = this; jl_Object.call(a);
    a.$in0 = null;
    a.$out6 = null;
    a.$inPosition0 = 0;
    a.$outPosition = 0;
}
let nms_IChunkProvider = $rt_classWithoutFields(0);
function nms_ChunkProviderServer() {
    let a = this; jl_Object.call(a);
    a.$chunksToUnload = null;
    a.$defaultEmptyChunk = null;
    a.$currentChunkProvider = null;
    a.$currentChunkLoader = null;
    a.$loadChunkOnProvideRequest = 0;
    a.$loadedChunkHashMap = null;
    a.$loadedChunks0 = null;
    a.$worldObj0 = null;
    a.$_r0 = 0;
    a.$_w0 = 0;
    a.$_g0 = 0;
}
let nms_ChunkProviderServer__init_0 = ($this, $par1WorldServer, $par2IChunkLoader, $par3IChunkProvider) => {
    let var$4, var$5, var$6, var$7, var$8;
    var$4 = new ju_HashSet;
    var$5 = new ju_HashMap;
    var$6 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$7 = $rt_createArray(ju_HashMap$HashEntry, var$6);
    var$8 = var$7.data;
    var$5.$elementData = var$7;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$8.length * 0.75 | 0;
    var$4.$backingMap = var$5;
    $this.$chunksToUnload = var$4;
    $this.$loadChunkOnProvideRequest = 1;
    var$5 = new nms_LongHashMap;
    var$5.$hashArray = $rt_createArray(nms_LongHashMapEntry, 16);
    var$5.$capacity0 = 12;
    var$5.$percentUseable = 0.75;
    $this.$loadedChunkHashMap = var$5;
    var$5 = new ju_ArrayList;
    var$5.$array = $rt_createArray(jl_Object, 10);
    $this.$loadedChunks0 = var$5;
    $this.$_r0 = 0;
    $this.$_w0 = 0;
    $this.$_g0 = 0;
    var$5 = new nms_EmptyChunk;
    nms_Chunk__init_0(var$5, $par1WorldServer, 0, 0);
    $this.$defaultEmptyChunk = var$5;
    $this.$worldObj0 = $par1WorldServer;
    $this.$currentChunkLoader = $par2IChunkLoader;
    $this.$currentChunkProvider = $par3IChunkProvider;
},
nms_ChunkProviderServer__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_ChunkProviderServer();
    nms_ChunkProviderServer__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ChunkProviderServer_unloadChunksIfNotNearSpawn = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $var6, var$7, $var4, $var5;
    if (!$this.$worldObj0.$provider.$canRespawnHere()) {
        var$3 = $this.$chunksToUnload;
        var$4 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
        var$5 = new jl_Long;
        var$5.$value7 = var$4;
        ju_HashMap_putImpl(var$3.$backingMap, var$5, var$3);
    } else {
        var$3 = $this.$worldObj0;
        $var6 = var$3.$worldInfo.$getSpawnX();
        var$3.$worldInfo.$getSpawnY();
        var$7 = var$3.$worldInfo.$getSpawnZ();
        $var4 = (($par1 * 16 | 0) + 8 | 0) - $var6 | 0;
        $var5 = (($par2 * 16 | 0) + 8 | 0) - var$7 | 0;
        if (!($var4 >= (-128) && $var4 <= 128 && $var5 >= (-128) && $var5 <= 128)) {
            var$3 = $this.$chunksToUnload;
            var$4 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
            var$5 = new jl_Long;
            var$5.$value7 = var$4;
            ju_HashMap_putImpl(var$3.$backingMap, var$5, var$3);
        }
    }
},
nms_ChunkProviderServer_loadChunk = ($this, $par1, $par2) => {
    let $var3, var$4, $var5, var$6, var$7, var$8, var$9, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
        var$4 = $this.$chunksToUnload;
        $var5 = new jl_Long;
        $var5.$value7 = $var3;
        var$4 = ju_HashMap_removeByKey(var$4.$backingMap, $var5);
        var$4 = $this.$loadedChunkHashMap;
        var$6 = Long_lo(Long_xor($var3, Long_shru($var3, 32)));
        var$6 = var$6 ^ (var$6 >>> 20 | 0) ^ (var$6 >>> 12 | 0);
        var$7 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
        var$8 = var$4.$hashArray.data;
        var$4 = var$8[var$7 & (var$8.length - 1 | 0)];
        a: {
            while (var$4 !== null) {
                if (Long_eq(var$4.$key1, $var3)) {
                    var$4 = var$4.$value4;
                    break a;
                }
                var$4 = var$4.$nextEntry;
            }
            var$4 = null;
        }
        $var5 = var$4;
        if ($var5 !== null)
            return $var5;
        var$4 = $this.$currentChunkLoader;
        if (var$4 === null)
            $var5 = null;
        else {
            try {
                $var5 = $this.$worldObj0;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$4);
            $var5 = null;
        }
        if ($var5 === null) {
            var$4 = $this.$currentChunkProvider;
            if (var$4 !== null) {
                $ptr = 3;
                continue main;
            }
            $var5 = $this.$defaultEmptyChunk;
        }
        nms_LongHashMap_add($this.$loadedChunkHashMap, $var3, $var5);
        var$4 = $this.$loadedChunks0;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$8 = var$4.$array.data;
        var$9 = var$4.$size0;
        var$4.$size0 = var$9 + 1 | 0;
        var$8[var$9] = $var5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        if ($var5 === null) {
            $ptr = 4;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 1:
        b: {
            try {
                $tmp = nles_VFSChunkLoader_loadChunk(var$4, $var5, $par1, $par2);
                if ($rt_suspending()) {
                    break main;
                }
                $var5 = $tmp;
                if ($var5 !== null) {
                    $var5.$lastSaveTime = nms_World_getTotalWorldTime($this.$worldObj0);
                    var$4 = $this.$currentChunkProvider;
                    if (var$4 !== null) {
                        $ptr = 2;
                        continue main;
                    }
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$4);
            $var5 = null;
        }
        if ($var5 === null) {
            var$4 = $this.$currentChunkProvider;
            if (var$4 !== null) {
                $ptr = 3;
                continue main;
            }
            $var5 = $this.$defaultEmptyChunk;
        }
        nms_LongHashMap_add($this.$loadedChunkHashMap, $var3, $var5);
        var$4 = $this.$loadedChunks0;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$8 = var$4.$array.data;
        var$9 = var$4.$size0;
        var$4.$size0 = var$9 + 1 | 0;
        var$8[var$9] = $var5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        if ($var5 === null) {
            $ptr = 4;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 2:
        b: {
            try {
                var$4.$recreateStructures($par1, $par2);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$4);
            $var5 = null;
        }
        if ($var5 === null) {
            var$4 = $this.$currentChunkProvider;
            if (var$4 !== null) {
                $ptr = 3;
                continue main;
            }
            $var5 = $this.$defaultEmptyChunk;
        }
        nms_LongHashMap_add($this.$loadedChunkHashMap, $var3, $var5);
        var$4 = $this.$loadedChunks0;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$8 = var$4.$array.data;
        var$9 = var$4.$size0;
        var$4.$size0 = var$9 + 1 | 0;
        var$8[var$9] = $var5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        if ($var5 === null) {
            $ptr = 4;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 3:
        $tmp = var$4.$provideChunk($par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_LongHashMap_add($this.$loadedChunkHashMap, $var3, $var5);
        var$4 = $this.$loadedChunks0;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$8 = var$4.$array.data;
        var$9 = var$4.$size0;
        var$4.$size0 = var$9 + 1 | 0;
        var$8[var$9] = $var5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        if ($var5 === null) {
            $ptr = 4;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 4:
        nms_Chunk_populateChunk($var5, $this, $this, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 5:
        $var5.$onChunkLoad();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, $var5, var$6, var$7, var$8, var$9, $ptr);
},
nms_ChunkProviderServer_saveChunks = ($this, $par1, $par2IProgressUpdate) => {
    let $var3, $var4, var$5, $var5, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2IProgressUpdate = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 0;
        $var4 = 0;
        a: {
            while (true) {
                $par2IProgressUpdate = $this.$loadedChunks0;
                var$5 = $rt_compare($var4, $par2IProgressUpdate.$size0);
                if (var$5 >= 0)
                    break;
                if ($var4 < 0)
                    break a;
                if (var$5 >= 0)
                    break a;
                $var5 = $par2IProgressUpdate.$array.data[$var4];
                if ($par1)
                    b: {
                        $par2IProgressUpdate = $this.$currentChunkLoader;
                        if ($par2IProgressUpdate !== null) {
                            try {
                                nles_VFSChunkLoader_saveExtraChunkData($par2IProgressUpdate, $this.$worldObj0, $var5);
                                break b;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $par2IProgressUpdate = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            $par2IProgressUpdate.$printStackTrace();
                        }
                    }
                if ($var5.$needsSaving($par1)) {
                    c: {
                        if ($this.$currentChunkLoader !== null) {
                            d: {
                                try {
                                    $var5.$lastSaveTime = nms_World_getTotalWorldTime($this.$worldObj0);
                                    $par2IProgressUpdate = $this.$currentChunkLoader;
                                    var$7 = $this.$worldObj0;
                                    $ptr = 1;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof ji_IOException) {
                                        $par2IProgressUpdate = $$je;
                                        break d;
                                    } else if ($$je instanceof nms_MinecraftException) {
                                        $par2IProgressUpdate = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $par2IProgressUpdate.$printStackTrace();
                                break c;
                            }
                            if (jl_System_errCache === null) {
                                var$7 = new otcic_JSStderrPrintStream;
                                var$8 = new ji_ByteArrayOutputStream;
                                jl_Object__init_(var$8);
                                var$8.$buf = $rt_createByteArray(32);
                                ji_OutputStream__init_(var$7);
                                var$7.$out0 = var$8;
                                var$8 = new jl_StringBuilder;
                                jl_AbstractStringBuilder__init_(var$8);
                                var$7.$sb = var$8;
                                var$7.$buffer0 = $rt_createCharArray(32);
                                var$7.$autoFlush = 0;
                                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                jl_System_errCache = var$7;
                            }
                            jl_Throwable_printStackTrace($par2IProgressUpdate, jl_System_errCache);
                        }
                    }
                    $var5.$isModified = 0;
                    $var3 = $var3 + 1 | 0;
                    if ($var3 == 24 && !$par1)
                        return 0;
                }
                $var4 = $var4 + 1 | 0;
            }
            return 1;
        }
        $par2IProgressUpdate = new jl_IndexOutOfBoundsException;
        $par2IProgressUpdate.$suppressionEnabled = 1;
        $par2IProgressUpdate.$writableStackTrace = 1;
        $rt_throw($par2IProgressUpdate);
    case 1:
        a: {
            e: {
                try {
                    nles_VFSChunkLoader_saveChunk($par2IProgressUpdate, var$7, $var5);
                    if ($rt_suspending()) {
                        break main;
                    }
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        $par2IProgressUpdate = $$je;
                        break e;
                    } else if ($$je instanceof nms_MinecraftException) {
                        $par2IProgressUpdate = $$je;
                    } else {
                        throw $$e;
                    }
                }
                $par2IProgressUpdate.$printStackTrace();
                break a;
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                jl_Object__init_(var$8);
                var$9 = $rt_createByteArray(var$5);
                var$8.$buf = var$9;
                var$5 = 0;
                ji_OutputStream__init_(var$7);
                var$7.$out0 = var$8;
                var$8 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$8);
                var$7.$sb = var$8;
                var$10 = 32;
                var$9 = $rt_createCharArray(var$10);
                var$7.$buffer0 = var$9;
                var$7.$autoFlush = var$5;
                var$8 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = var$8;
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace($par2IProgressUpdate, var$7);
        }
        b: {
            f: while (true) {
                $var5.$isModified = 0;
                $var3 = $var3 + 1 | 0;
                if ($var3 == 24 && !$par1)
                    return 0;
                while (true) {
                    $var4 = $var4 + 1 | 0;
                    $par2IProgressUpdate = $this.$loadedChunks0;
                    var$5 = $rt_compare($var4, $par2IProgressUpdate.$size0);
                    if (var$5 >= 0)
                        break f;
                    if ($var4 < 0)
                        break b;
                    if (var$5 >= 0)
                        break b;
                    $var5 = $par2IProgressUpdate.$array.data[$var4];
                    if ($par1)
                        g: {
                            $par2IProgressUpdate = $this.$currentChunkLoader;
                            if ($par2IProgressUpdate !== null) {
                                try {
                                    nles_VFSChunkLoader_saveExtraChunkData($par2IProgressUpdate, $this.$worldObj0, $var5);
                                    break g;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $par2IProgressUpdate = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                $par2IProgressUpdate.$printStackTrace();
                            }
                        }
                    if ($var5.$needsSaving($par1))
                        break;
                }
                if ($this.$currentChunkLoader === null)
                    continue;
                h: {
                    try {
                        $var5.$lastSaveTime = nms_World_getTotalWorldTime($this.$worldObj0);
                        $par2IProgressUpdate = $this.$currentChunkLoader;
                        var$7 = $this.$worldObj0;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof ji_IOException) {
                            $par2IProgressUpdate = $$je;
                            break h;
                        } else if ($$je instanceof nms_MinecraftException) {
                            $par2IProgressUpdate = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    $par2IProgressUpdate.$printStackTrace();
                    continue f;
                }
                var$7 = jl_System_errCache;
                if (var$7 === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$8 = new ji_ByteArrayOutputStream;
                    var$5 = 32;
                    jl_Object__init_(var$8);
                    var$9 = $rt_createByteArray(var$5);
                    var$8.$buf = var$9;
                    var$5 = 0;
                    ji_OutputStream__init_(var$7);
                    var$7.$out0 = var$8;
                    var$8 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_(var$8);
                    var$7.$sb = var$8;
                    var$10 = 32;
                    var$9 = $rt_createCharArray(var$10);
                    var$7.$buffer0 = var$9;
                    var$7.$autoFlush = var$5;
                    var$8 = jnci_UTF8Charset_INSTANCE;
                    var$7.$charset = var$8;
                    jl_System_errCache = var$7;
                }
                var$7 = jl_System_errCache;
                jl_Throwable_printStackTrace($par2IProgressUpdate, var$7);
            }
            return 1;
        }
        $par2IProgressUpdate = new jl_IndexOutOfBoundsException;
        $par2IProgressUpdate.$suppressionEnabled = 1;
        $par2IProgressUpdate.$writableStackTrace = 1;
        $rt_throw($par2IProgressUpdate);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2IProgressUpdate, $var3, $var4, var$5, $var5, var$7, var$8, var$9, var$10, $ptr);
},
nms_ChunkProviderServer_unloadQueuedChunks = $this => {
    let $var1, var$2, $var2, var$4, var$5, var$6, var$7, $var3, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$worldObj0.$canNotSave) {
                $var1 = 0;
                b: {
                    while ($var1 < 100) {
                        var$2 = $this.$chunksToUnload.$backingMap;
                        if (!(var$2.$elementCount ? 0 : 1)) {
                            if (var$2.$cachedKeySet === null) {
                                $var2 = new ju_HashMap$1;
                                $var2.$this$0 = var$2;
                                var$2.$cachedKeySet = $var2;
                            }
                            $var2 = (var$2.$cachedKeySet.$iterator()).$next();
                            var$2 = $this.$loadedChunkHashMap;
                            var$4 = $var2.$value7;
                            var$5 = Long_lo(Long_xor(var$4, Long_shru(var$4, 32)));
                            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$6 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                            var$7 = var$2.$hashArray.data;
                            var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
                            c: {
                                while (var$2 !== null) {
                                    if (Long_eq(var$2.$key1, var$4)) {
                                        var$2 = var$2.$value4;
                                        break c;
                                    }
                                    var$2 = var$2.$nextEntry;
                                }
                                var$2 = null;
                            }
                            d: {
                                $var3 = var$2;
                                $var3.$onChunkUnload();
                                if ($this.$currentChunkLoader !== null) {
                                    e: {
                                        try {
                                            $var3.$lastSaveTime = nms_World_getTotalWorldTime($this.$worldObj0);
                                            var$2 = $this.$currentChunkLoader;
                                            var$9 = $this.$worldObj0;
                                            $ptr = 2;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof ji_IOException) {
                                                var$9 = $$je;
                                                break e;
                                            } else if ($$je instanceof nms_MinecraftException) {
                                                var$2 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        var$2.$printStackTrace();
                                        break d;
                                    }
                                    if (jl_System_errCache === null) {
                                        var$10 = new otcic_JSStderrPrintStream;
                                        var$2 = new ji_ByteArrayOutputStream;
                                        jl_Object__init_(var$2);
                                        var$2.$buf = $rt_createByteArray(32);
                                        ji_OutputStream__init_(var$10);
                                        var$10.$out0 = var$2;
                                        var$2 = new jl_StringBuilder;
                                        jl_AbstractStringBuilder__init_(var$2);
                                        var$10.$sb = var$2;
                                        var$10.$buffer0 = $rt_createCharArray(32);
                                        var$10.$autoFlush = 0;
                                        var$10.$charset = jnci_UTF8Charset_INSTANCE;
                                        jl_System_errCache = var$10;
                                    }
                                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                                }
                            }
                            f: {
                                var$2 = $this.$currentChunkLoader;
                                if (var$2 !== null) {
                                    try {
                                        nles_VFSChunkLoader_saveExtraChunkData(var$2, $this.$worldObj0, $var3);
                                        break f;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$2 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    var$2.$printStackTrace();
                                }
                            }
                            var$2 = ju_HashMap_removeByKey($this.$chunksToUnload.$backingMap, $var2);
                            nms_LongHashMap_removeKey($this.$loadedChunkHashMap, $var2.$value7);
                            $var2 = $this.$loadedChunks0;
                            var$6 = $var2.$size0;
                            var$5 = 0;
                            g: {
                                while (true) {
                                    var$11 = $rt_compare(var$5, var$6);
                                    if (var$11 >= 0) {
                                        var$5 = (-1);
                                        break g;
                                    }
                                    if (var$5 < 0)
                                        break b;
                                    if (var$11 >= 0)
                                        break b;
                                    var$2 = $var2.$array.data[var$5];
                                    if ($var3 === var$2 ? 1 : $var3 === null ? (var$2 !== null ? 0 : 1) : $var3 !== var$2 ? 0 : 1)
                                        break;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                            if (var$5 >= 0)
                                ju_ArrayList_remove($var2, var$5);
                        }
                        $var1 = $var1 + 1 | 0;
                    }
                    if ($this.$currentChunkLoader === null)
                        break a;
                    break a;
                }
                $var2 = new jl_IndexOutOfBoundsException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var2);
                $rt_throw($var2);
            }
        }
        $var2 = $this.$currentChunkProvider;
        $ptr = 1;
    case 1:
        $tmp = $var2.$unloadQueuedChunks();
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    case 2:
        a: {
            b: {
                try {
                    nles_VFSChunkLoader_saveChunk(var$2, var$9, $var3);
                    if ($rt_suspending()) {
                        break main;
                    }
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        var$9 = $$je;
                        break b;
                    } else if ($$je instanceof nms_MinecraftException) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$2.$printStackTrace();
                break a;
            }
            var$2 = jl_System_errCache;
            if (var$2 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                jl_Object__init_(var$2);
                var$7 = $rt_createByteArray(var$5);
                var$2.$buf = var$7;
                var$5 = 0;
                ji_OutputStream__init_(var$10);
                var$10.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$2);
                var$10.$sb = var$2;
                var$11 = 32;
                var$7 = $rt_createCharArray(var$11);
                var$10.$buffer0 = var$7;
                var$10.$autoFlush = var$5;
                var$2 = jnci_UTF8Charset_INSTANCE;
                var$10.$charset = var$2;
                jl_System_errCache = var$10;
            }
            var$2 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$2);
        }
        h: while (true) {
            i: {
                var$2 = $this.$currentChunkLoader;
                if (var$2 !== null) {
                    try {
                        nles_VFSChunkLoader_saveExtraChunkData(var$2, $this.$worldObj0, $var3);
                        break i;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    var$2.$printStackTrace();
                }
            }
            var$2 = ju_HashMap_removeByKey($this.$chunksToUnload.$backingMap, $var2);
            nms_LongHashMap_removeKey($this.$loadedChunkHashMap, $var2.$value7);
            $var2 = $this.$loadedChunks0;
            var$6 = $var2.$size0;
            var$5 = 0;
            j: {
                while (true) {
                    var$11 = $rt_compare(var$5, var$6);
                    if (var$11 >= 0) {
                        var$5 = (-1);
                        break j;
                    }
                    if (var$5 < 0)
                        break h;
                    if (var$11 >= 0)
                        break h;
                    var$2 = $var2.$array.data[var$5];
                    if ($var3 === var$2 ? 1 : $var3 === null ? (var$2 !== null ? 0 : 1) : $var3 !== var$2 ? 0 : 1)
                        break;
                    var$5 = var$5 + 1 | 0;
                }
            }
            if (var$5 >= 0)
                ju_ArrayList_remove($var2, var$5);
            while (true) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= 100) {
                    $var2 = $this.$currentChunkProvider;
                    $ptr = 1;
                    continue main;
                }
                var$2 = $this.$chunksToUnload.$backingMap;
                if (var$2.$elementCount ? 0 : 1)
                    continue;
                else
                    break;
            }
            if (var$2.$cachedKeySet === null) {
                $var2 = new ju_HashMap$1;
                $var2.$this$0 = var$2;
                var$2.$cachedKeySet = $var2;
            }
            $var2 = (var$2.$cachedKeySet.$iterator()).$next();
            var$2 = $this.$loadedChunkHashMap;
            var$4 = $var2.$value7;
            var$5 = Long_lo(Long_xor(var$4, Long_shru(var$4, 32)));
            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
            var$6 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$7 = var$2.$hashArray.data;
            var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
            k: {
                while (var$2 !== null) {
                    if (Long_eq(var$2.$key1, var$4)) {
                        var$2 = var$2.$value4;
                        break k;
                    }
                    var$2 = var$2.$nextEntry;
                }
                var$2 = null;
            }
            $var3 = var$2;
            $var3.$onChunkUnload();
            if ($this.$currentChunkLoader === null)
                continue;
            l: {
                try {
                    $var3.$lastSaveTime = nms_World_getTotalWorldTime($this.$worldObj0);
                    var$2 = $this.$currentChunkLoader;
                    var$9 = $this.$worldObj0;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof ji_IOException) {
                        var$9 = $$je;
                        break l;
                    } else if ($$je instanceof nms_MinecraftException) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$2.$printStackTrace();
                continue h;
            }
            var$2 = jl_System_errCache;
            if (var$2 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                var$2 = new ji_ByteArrayOutputStream;
                var$5 = 32;
                jl_Object__init_(var$2);
                var$7 = $rt_createByteArray(var$5);
                var$2.$buf = var$7;
                var$5 = 0;
                ji_OutputStream__init_(var$10);
                var$10.$out0 = var$2;
                var$2 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$2);
                var$10.$sb = var$2;
                var$11 = 32;
                var$7 = $rt_createCharArray(var$11);
                var$10.$buffer0 = var$7;
                var$10.$autoFlush = var$5;
                var$2 = jnci_UTF8Charset_INSTANCE;
                var$10.$charset = var$2;
                jl_System_errCache = var$10;
            }
            var$2 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$2);
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var2);
        $rt_throw($var2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, $var2, var$4, var$5, var$6, var$7, $var3, var$9, var$10, var$11, $ptr);
};
function nms_Village() {
    let a = this; jl_Object.call(a);
    a.$worldObj10 = null;
    a.$villageDoorInfoList = null;
    a.$centerHelper = null;
    a.$center = null;
    a.$villageRadius = 0;
    a.$lastAddDoorTimestamp = 0;
    a.$tickCounter1 = 0;
    a.$numVillagers = 0;
    a.$noBreedTicks = 0;
    a.$playerReputation = null;
    a.$villageAgressors = null;
    a.$numIronGolems = 0;
}
let nms_Village__init_ = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$villageDoorInfoList = var$1;
    var$1 = new nms_ChunkCoordinates;
    var$1.$posX0 = 0;
    var$1.$posY0 = 0;
    var$1.$posZ0 = 0;
    $this.$centerHelper = var$1;
    var$1 = new nms_ChunkCoordinates;
    var$1.$posX0 = 0;
    var$1.$posY0 = 0;
    var$1.$posZ0 = 0;
    $this.$center = var$1;
    var$1 = new ju_TreeMap;
    var$1.$originalComparator = null;
    var$1.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
    $this.$playerReputation = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$villageAgressors = var$1;
},
nms_Village__init_2 = () => {
    let var_0 = new nms_Village();
    nms_Village__init_(var_0);
    return var_0;
},
nms_Village__init_0 = ($this, $par1World) => {
    let var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$villageDoorInfoList = var$2;
    var$2 = new nms_ChunkCoordinates;
    var$2.$posX0 = 0;
    var$2.$posY0 = 0;
    var$2.$posZ0 = 0;
    $this.$centerHelper = var$2;
    var$2 = new nms_ChunkCoordinates;
    var$2.$posX0 = 0;
    var$2.$posY0 = 0;
    var$2.$posZ0 = 0;
    $this.$center = var$2;
    var$2 = new ju_TreeMap;
    var$2.$originalComparator = null;
    var$2.$comparator = ju_Comparator$NaturalOrder_INSTANCE;
    $this.$playerReputation = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$villageAgressors = var$2;
    $this.$worldObj10 = $par1World;
},
nms_Village__init_1 = var_0 => {
    let var_1 = new nms_Village();
    nms_Village__init_0(var_1, var_0);
    return var_1;
},
nms_Village_tick = ($this, $par1) => {
    let $var3, $var4, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$tickCounter1 = $par1;
        $ptr = 1;
    case 1:
        nms_Village_removeDeadAndOutOfRangeDoors($this);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$villageAgressors;
        $var4 = new ju_AbstractList$1;
        $var4.$this$00 = $var3;
        $var4.$modCount0 = $var3.$modCount;
        $var4.$size3 = $var3.$size();
        $var4.$removeIndex = (-1);
        while (true) {
            $var2 = $var4.$index;
            if (!($var2 >= $var4.$size3 ? 0 : 1)) {
                if (!($par1 % 20 | 0)) {
                    $ptr = 2;
                    continue main;
                }
                if (!($par1 % 30 | 0)) {
                    $ptr = 3;
                    continue main;
                }
                $var2 = $this.$numVillagers / 10 | 0;
                if ($this.$numIronGolems < $var2 && $this.$villageDoorInfoList.$size0 > 20) {
                    $var3 = $this.$worldObj10.$rand0;
                    var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$5;
                    var$6 = Long_lo(Long_shru(var$5, 17));
                    while (true) {
                        var$7 = var$6 % 7000 | 0;
                        if (((var$6 - var$7 | 0) + 6999 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var3.$seed = var$5;
                        var$6 = Long_lo(Long_shru(var$5, 17));
                    }
                    if (!var$7) {
                        $var3 = $this.$center;
                        var$8 = $var3.$posX0;
                        var$9 = var$8 | 0;
                        if (var$8 < var$9)
                            var$9 = var$9 - 1 | 0;
                        var$8 = $var3.$posY0;
                        var$7 = var$8 | 0;
                        if (var$8 < var$7)
                            var$7 = var$7 - 1 | 0;
                        var$8 = $var3.$posZ0;
                        var$6 = var$8 | 0;
                        if (var$8 < var$6)
                            var$6 = var$6 - 1 | 0;
                        $par1 = 2;
                        $var2 = 4;
                        var$10 = 2;
                        $ptr = 4;
                        continue main;
                    }
                }
                return;
            }
            var$10 = $var4.$modCount0;
            $var3 = $var4.$this$00;
            if (var$10 < $var3.$modCount)
                break;
            a: {
                $var4.$removeIndex = $var2;
                $var4.$index = $var2 + 1 | 0;
                $var3 = $var3.$get($var2);
                if (nms_EntityLivingBase_isEntityAlive($var3.$agressor)) {
                    $var2 = $this.$tickCounter1 - $var3.$agressionTime | 0;
                    if ($var2 < 0)
                        $var2 =  -$var2 | 0;
                    if ($var2 <= 300)
                        break a;
                }
                ju_AbstractList$1_remove($var4);
            }
        }
        $var3 = new ju_ConcurrentModificationException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    case 2:
        nms_Village_updateNumVillagers($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!($par1 % 30 | 0)) {
            $ptr = 3;
            continue main;
        }
        $var2 = $this.$numVillagers / 10 | 0;
        if ($this.$numIronGolems < $var2 && $this.$villageDoorInfoList.$size0 > 20) {
            $var3 = $this.$worldObj10.$rand0;
            var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                var$7 = var$6 % 7000 | 0;
                if (((var$6 - var$7 | 0) + 6999 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$5;
                var$6 = Long_lo(Long_shru(var$5, 17));
            }
            if (!var$7) {
                $var3 = $this.$center;
                var$8 = $var3.$posX0;
                var$9 = var$8 | 0;
                if (var$8 < var$9)
                    var$9 = var$9 - 1 | 0;
                var$8 = $var3.$posY0;
                var$7 = var$8 | 0;
                if (var$8 < var$7)
                    var$7 = var$7 - 1 | 0;
                var$8 = $var3.$posZ0;
                var$6 = var$8 | 0;
                if (var$8 < var$6)
                    var$6 = var$6 - 1 | 0;
                $par1 = 2;
                $var2 = 4;
                var$10 = 2;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 3:
        nms_Village_updateNumIronGolems($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$numVillagers / 10 | 0;
        if ($this.$numIronGolems < $var2 && $this.$villageDoorInfoList.$size0 > 20) {
            $var3 = $this.$worldObj10.$rand0;
            var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                var$7 = var$6 % 7000 | 0;
                if (((var$6 - var$7 | 0) + 6999 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$5;
                var$6 = Long_lo(Long_shru(var$5, 17));
            }
            if (!var$7) {
                $var3 = $this.$center;
                var$8 = $var3.$posX0;
                var$9 = var$8 | 0;
                if (var$8 < var$9)
                    var$9 = var$9 - 1 | 0;
                var$8 = $var3.$posY0;
                var$7 = var$8 | 0;
                if (var$8 < var$7)
                    var$7 = var$7 - 1 | 0;
                var$8 = $var3.$posZ0;
                var$6 = var$8 | 0;
                if (var$8 < var$6)
                    var$6 = var$6 - 1 | 0;
                $par1 = 2;
                $var2 = 4;
                var$10 = 2;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 4:
        $tmp = nms_Village_tryGetIronGolemSpawningLocation($this, var$9, var$7, var$6, $par1, $var2, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 === null)
            return;
        $var4 = new nms_EntityIronGolem;
        var$11 = $this.$worldObj10;
        $ptr = 5;
    case 5:
        nms_EntityIronGolem__init_($var4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition($var4, $var3.$xCoord, $var3.$yCoord, $var3.$zCoord);
        $var3 = $this.$worldObj10;
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$numIronGolems = $this.$numIronGolems + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var3, $var4, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_Village_tryGetIronGolemSpawningLocation = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, var$9, var$10, var$11, var$12, $var8, var$14, $var9, $var10, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = 0;
        var$8 = 17;
        var$9 = 5;
        var$10 = Long_fromInt(16);
        while ($var7 < 10) {
            var$11 = $this.$worldObj10.$rand0;
            var$12 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$12;
            $var8 = ($par1 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$12, var$8)))), 31)) | 0) - 8 | 0;
            var$14 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            $var9 = Long_lo(Long_shru(var$14, var$8));
            while (true) {
                $var10 = $var9 % 6 | 0;
                if ((($var9 - $var10 | 0) + var$9 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$14;
                $var9 = Long_lo(Long_shru(var$14, var$8));
            }
            $var9 = ($par2 + $var10 | 0) - 3 | 0;
            var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            $var10 = ($par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$8)))), 31)) | 0) - 8 | 0;
            var$11 = $this.$center;
            var$17 = var$11.$posX0 - $var8 | 0;
            var$18 = var$11.$posY0 - $var9 | 0;
            var$19 = var$11.$posZ0 - $var10 | 0;
            var$18 = var$17 * var$17 + var$18 * var$18 + var$19 * var$19;
            var$20 = $this.$villageRadius;
            if (var$18 >= $rt_imul(var$20, var$20) ? 0 : 1) {
                $ptr = 1;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
        }
        return null;
    case 1:
        $tmp = nms_Village_isValidIronGolemSpawningLocation($this, $var8, $var9, $var10, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = $tmp;
        if (var$20)
            return nms_Vec3Pool_getVecFromPool($this.$worldObj10.$vecPool, $var8, $var9, $var10);
        while (true) {
            $var7 = $var7 + 1 | 0;
            if ($var7 >= 10)
                break;
            var$11 = $this.$worldObj10.$rand0;
            var$12 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$12;
            $var8 = ($par1 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$12, var$8)))), 31)) | 0) - 8 | 0;
            var$14 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            $var9 = Long_lo(Long_shru(var$14, var$8));
            while (true) {
                $var10 = $var9 % 6 | 0;
                if ((($var9 - $var10 | 0) + var$9 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$14;
                $var9 = Long_lo(Long_shru(var$14, var$8));
            }
            $var9 = ($par2 + $var10 | 0) - 3 | 0;
            var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            $var10 = ($par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$8)))), 31)) | 0) - 8 | 0;
            var$11 = $this.$center;
            var$17 = var$11.$posX0 - $var8 | 0;
            var$18 = var$11.$posY0 - $var9 | 0;
            var$19 = var$11.$posZ0 - $var10 | 0;
            var$18 = var$17 * var$17 + var$18 * var$18 + var$19 * var$19;
            var$20 = $this.$villageRadius;
            if (!(var$18 >= $rt_imul(var$20, var$20) ? 0 : 1))
                continue;
            else {
                continue main;
            }
        }
        return null;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, $var7, var$8, var$9, var$10, var$11, var$12, $var8, var$14, $var9, $var10, var$17, var$18, var$19, var$20, $ptr);
},
nms_Village_isValidIronGolemSpawningLocation = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let var$7, $var9, var$9, $var8, var$11, $var10, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$7 = $this.$worldObj10;
        $var9 = $par2 - 1 | 0;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$7, $par1, $var9, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$11 = var$9[$var8];
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata(var$7, $par1, $var9, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid(var$7, var$11, $var9))
            return 0;
        $var9 = $par1 - ($par4 / 2 | 0) | 0;
        $var8 = $par3 - ($par6 / 2 | 0) | 0;
        $par1 = $var9 + $par4 | 0;
        $par3 = $par2 + $par5 | 0;
        $par5 = $var8 + $par6 | 0;
        while ($var9 < $par1) {
            $var10 = $par2;
            while ($var10 < $par3) {
                $var11 = $var8;
                if ($var11 < $par5) {
                    var$11 = $this.$worldObj10;
                    $ptr = 3;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9 = $var9 + 1 | 0;
        }
        return 1;
    case 3:
        $tmp = nms_World_getBlockId(var$11, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        var$11 = nms_Block_blocksList.data[$par4];
        if (var$11 === null)
            $par4 = 0;
        else {
            var$7 = var$11.$blockMaterial;
            $par4 = !var$7.$isTranslucent ? var$7.$blocksMovement() : 0;
            $par4 = $par4 && var$11.$renderAsNormalBlock() && !var$11.$canProvidePower() ? 1 : 0;
        }
        if ($par4)
            return 0;
        $var11 = $var11 + 1 | 0;
        a: while (true) {
            if ($var11 < $par5) {
                var$11 = $this.$worldObj10;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= $par3) {
                $var9 = $var9 + 1 | 0;
                if ($var9 >= $par1)
                    break a;
                $var10 = $par2;
            }
            $var11 = $var8;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, var$7, $var9, var$9, $var8, var$11, $var10, $var11, $ptr);
},
nms_Village_updateNumIronGolems = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj10;
        $var1 = $rt_cls(nms_EntityIronGolem);
        var$3 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$4 = $this.$center;
        var$5 = var$4.$posX0;
        var$6 = $this.$villageRadius;
        var$7 = var$5 - var$6 | 0;
        var$8 = var$4.$posY0;
        var$9 = var$8 - 4 | 0;
        var$10 = var$4.$posZ0;
        var$11 = var$10 - var$6 | 0;
        var$12 = var$5 + var$6 | 0;
        var$13 = var$8 + 4 | 0;
        var$14 = var$10 + var$6 | 0;
        var$15 = var$3.$nextPoolIndex;
        var$4 = var$3.$listAABB;
        var$5 = var$4.$size0;
        var$6 = $rt_compare(var$15, var$5);
        if (var$6 >= 0) {
            var$16 = new nms_AxisAlignedBB;
            var$16.$minX0 = var$7;
            var$16.$minY0 = var$9;
            var$16.$minZ0 = var$11;
            var$16.$maxX0 = var$12;
            var$16.$maxY = var$13;
            var$16.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity(var$4, var$5 + 1 | 0);
            var$17 = var$4.$array.data;
            var$6 = var$4.$size0;
            var$4.$size0 = var$6 + 1 | 0;
            var$17[var$6] = var$16;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        } else if (var$15 >= 0 && var$6 < 0) {
            var$16 = var$4.$array.data[var$15];
            var$16.$minX0 = var$7;
            var$16.$minY0 = var$9;
            var$16.$minZ0 = var$11;
            var$16.$maxX0 = var$12;
            var$16.$maxY = var$13;
            var$16.$maxZ0 = var$14;
        } else {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        var$3.$nextPoolIndex = var$3.$nextPoolIndex + 1 | 0;
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$1, $var1, var$16, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $this.$numIronGolems = $var1.$size0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_Village_updateNumVillagers = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj10;
        $var1 = $rt_cls(nms_EntityVillager);
        var$3 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$4 = $this.$center;
        var$5 = var$4.$posX0;
        var$6 = $this.$villageRadius;
        var$7 = var$5 - var$6 | 0;
        var$8 = var$4.$posY0;
        var$9 = var$8 - 4 | 0;
        var$10 = var$4.$posZ0;
        var$11 = var$10 - var$6 | 0;
        var$12 = var$5 + var$6 | 0;
        var$13 = var$8 + 4 | 0;
        var$14 = var$10 + var$6 | 0;
        var$15 = var$3.$nextPoolIndex;
        var$4 = var$3.$listAABB;
        var$5 = var$4.$size0;
        var$6 = $rt_compare(var$15, var$5);
        if (var$6 >= 0) {
            var$16 = new nms_AxisAlignedBB;
            var$16.$minX0 = var$7;
            var$16.$minY0 = var$9;
            var$16.$minZ0 = var$11;
            var$16.$maxX0 = var$12;
            var$16.$maxY = var$13;
            var$16.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity(var$4, var$5 + 1 | 0);
            var$17 = var$4.$array.data;
            var$5 = var$4.$size0;
            var$4.$size0 = var$5 + 1 | 0;
            var$17[var$5] = var$16;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        } else if (var$15 >= 0 && var$6 < 0) {
            var$16 = var$4.$array.data[var$15];
            var$16.$minX0 = var$7;
            var$16.$minY0 = var$9;
            var$16.$minZ0 = var$11;
            var$16.$maxX0 = var$12;
            var$16.$maxY = var$13;
            var$16.$maxZ0 = var$14;
        } else {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        var$3.$nextPoolIndex = var$3.$nextPoolIndex + 1 | 0;
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$1, $var1, var$16, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        var$15 = $var1.$size0;
        $this.$numVillagers = var$15;
        if (!var$15) {
            $var1 = $this.$playerReputation;
            $var1.$root = null;
            $var1.$modCount2 = $var1.$modCount2 + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_Village_getVillageDoorAt = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, $var4$index, var$9, var$10, $var4$index_0, $var5, var$13;
    var$4 = $this.$center;
    var$5 = var$4.$posX0 - $par1 | 0;
    var$6 = var$4.$posY0 - $par2 | 0;
    var$7 = var$4.$posZ0 - $par3 | 0;
    var$5 = var$5 * var$5 + var$6 * var$6 + var$7 * var$7;
    $var4$index = $this.$villageRadius;
    if (var$5 > $rt_imul($var4$index, $var4$index))
        return null;
    var$4 = $this.$villageDoorInfoList;
    $var4$index = 0;
    var$9 = var$4.$modCount;
    var$10 = var$4.$size();
    while (true) {
        if (!($var4$index >= var$10 ? 0 : 1))
            return null;
        if (var$9 < var$4.$modCount) {
            var$4 = new ju_ConcurrentModificationException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
        $var4$index_0 = $var4$index + 1 | 0;
        $var5 = var$4.$get($var4$index);
        if ($var5.$posX2 != $par1) {
            $var4$index = $var4$index_0;
            continue;
        }
        if ($var5.$posZ2 != $par3) {
            $var4$index = $var4$index_0;
            continue;
        }
        var$13 = $var5.$posY2 - $par2 | 0;
        if (var$13 < 0)
            var$13 =  -var$13 | 0;
        if (var$13 <= 1)
            break;
        $var4$index = $var4$index_0;
    }
    return $var5;
},
nms_Village_findNearestVillageAggressor = ($this, $par1EntityLivingBase) => {
    let $var2, $var4, $var5, $var6, var$6, var$7, var$8, $var7, var$10;
    $var2 = 1.7976931348623157E308;
    $var4 = null;
    $var5 = 0;
    a: {
        while (true) {
            $var6 = $this.$villageAgressors;
            var$6 = $rt_compare($var5, $var6.$size0);
            if (var$6 >= 0)
                break;
            if ($var5 < 0)
                break a;
            if (var$6 >= 0)
                break a;
            $var6 = $var6.$array.data[$var5];
            var$7 = $var6.$agressor;
            var$8 = var$7.$posX - $par1EntityLivingBase.$posX;
            $var7 = var$7.$posY - $par1EntityLivingBase.$posY;
            var$10 = var$7.$posZ - $par1EntityLivingBase.$posZ;
            $var7 = var$8 * var$8 + $var7 * $var7 + var$10 * var$10;
            if ($var7 <= $var2) {
                $var4 = $var6;
                $var2 = $var7;
            }
            $var5 = $var5 + 1 | 0;
        }
        return $var4 === null ? null : $var4.$agressor;
    }
    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
    $par1EntityLivingBase.$suppressionEnabled = 1;
    $par1EntityLivingBase.$writableStackTrace = 1;
    $rt_throw($par1EntityLivingBase);
},
nms_Village_func_82685_c = ($this, $par1EntityLivingBase) => {
    let $var2, $var4, $var7, var$5, $var5, $var6, var$8, var$9, var$10, var$11, var$12, $var8, var$14, var$15;
    $var2 = 1.7976931348623157E308;
    $var4 = null;
    $var7 = $this.$playerReputation;
    if ($var7.$cachedKeySet === null) {
        var$5 = new ju_AbstractMap$KeySet;
        var$5.$this$03 = $var7;
        $var7.$cachedKeySet = var$5;
    }
    $var5 = $var7.$cachedKeySet.$iterator();
    a: {
        b: {
            c: {
                d: {
                    e: {
                        f: {
                            while ($var5.$hasNext()) {
                                g: {
                                    $var6 = $var5.$next();
                                    $var7 = $this.$playerReputation.$root;
                                    var$8 = $var6;
                                    var$5 = $var6;
                                    if (var$8 !== var$5) {
                                        var$9 = var$8.$nativeString.length;
                                        var$10 = var$5.$nativeString.length;
                                        if (var$9 < var$10)
                                            var$10 = var$9;
                                        var$11 = 0;
                                        while (true) {
                                            if (var$11 >= var$10) {
                                                var$8.$nativeString.length;
                                                var$5.$nativeString.length;
                                                break g;
                                            }
                                            if (var$11 < 0)
                                                break c;
                                            if (var$11 >= var$8.$nativeString.length)
                                                break c;
                                            var$12 = var$8.$nativeString.charCodeAt(var$11);
                                            if (var$11 < 0)
                                                break d;
                                            if (var$11 >= var$5.$nativeString.length)
                                                break d;
                                            if (var$12 - var$5.$nativeString.charCodeAt(var$11) | 0)
                                                break;
                                            var$11 = var$11 + 1 | 0;
                                        }
                                    }
                                }
                                h: {
                                    while (true) {
                                        if ($var7 === null) {
                                            $var7 = null;
                                            break h;
                                        }
                                        i: {
                                            var$5 = $var7.$key0;
                                            if (var$8 === var$5)
                                                var$11 = 0;
                                            else {
                                                var$9 = var$8.$nativeString.length;
                                                var$10 = var$5.$nativeString.length;
                                                if (var$9 < var$10)
                                                    var$10 = var$9;
                                                var$9 = 0;
                                                while (true) {
                                                    if (var$9 >= var$10) {
                                                        var$11 = var$8.$nativeString.length - var$5.$nativeString.length | 0;
                                                        break i;
                                                    }
                                                    if (var$9 < 0)
                                                        break e;
                                                    if (var$9 >= var$8.$nativeString.length)
                                                        break e;
                                                    var$12 = var$8.$nativeString.charCodeAt(var$9);
                                                    if (var$9 < 0)
                                                        break f;
                                                    if (var$9 >= var$5.$nativeString.length)
                                                        break f;
                                                    var$11 = var$12 - var$5.$nativeString.charCodeAt(var$9) | 0;
                                                    if (var$11)
                                                        break;
                                                    var$9 = var$9 + 1 | 0;
                                                }
                                            }
                                        }
                                        if (!var$11)
                                            break;
                                        $var7 = var$11 >= 0 ? $var7.$right : $var7.$left;
                                    }
                                }
                                $var7 = $var7 === null ? null : $var7.$value2;
                                if (($var7 === null ? 0 : $var7.$value) > (-15) ? 0 : 1) {
                                    var$8 = $this.$worldObj10;
                                    var$9 = 0;
                                    j: {
                                        while (true) {
                                            $var7 = var$8.$playerEntities;
                                            var$11 = $rt_compare(var$9, $var7.$size0);
                                            if (var$11 >= 0)
                                                break;
                                            if (var$9 < 0)
                                                break a;
                                            if (var$11 >= 0)
                                                break a;
                                            $var7 = $var7.$array.data[var$9].$username;
                                            if ($var6 === $var7)
                                                var$11 = 1;
                                            else if (!($var7 instanceof jl_String))
                                                var$11 = 0;
                                            else {
                                                $var7 = $var7;
                                                var$11 = $var6.$nativeString !== $var7.$nativeString ? 0 : 1;
                                            }
                                            if (var$11) {
                                                $var7 = var$8.$playerEntities;
                                                if (var$9 < 0)
                                                    break b;
                                                if (var$9 >= $var7.$size0)
                                                    break b;
                                                $var7 = $var7.$array.data[var$9];
                                                break j;
                                            }
                                            var$9 = var$9 + 1 | 0;
                                        }
                                        $var7 = null;
                                    }
                                    if ($var7 !== null) {
                                        $var8 = $var7.$posX - $par1EntityLivingBase.$posX;
                                        var$14 = $var7.$posY - $par1EntityLivingBase.$posY;
                                        var$15 = $var7.$posZ - $par1EntityLivingBase.$posZ;
                                        $var8 = $var8 * $var8 + var$14 * var$14 + var$15 * var$15;
                                        if ($var8 <= $var2) {
                                            $var4 = $var7;
                                            $var2 = $var8;
                                        }
                                    }
                                }
                            }
                            return $var4;
                        }
                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                    }
                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                }
                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
        $par1EntityLivingBase.$suppressionEnabled = 1;
        $par1EntityLivingBase.$writableStackTrace = 1;
        $rt_throw($par1EntityLivingBase);
    }
    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
    $par1EntityLivingBase.$suppressionEnabled = 1;
    $par1EntityLivingBase.$writableStackTrace = 1;
    $rt_throw($par1EntityLivingBase);
},
nms_Village_removeDeadAndOutOfRangeDoors = $this => {
    let $var1, $var4, var$3, var$4, var$5, $var2, $var3, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        $var4 = $this.$worldObj10.$rand0;
        var$3 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 50 | 0;
            if (((var$4 - var$5 | 0) + 49 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        $var2 = var$5 ? 0 : 1;
        $var4 = $this.$villageDoorInfoList;
        $var3 = new ju_AbstractList$1;
        $var3.$this$00 = $var4;
        $var3.$modCount0 = $var4.$modCount;
        $var3.$size3 = $var4.$size();
        $var3.$removeIndex = (-1);
        var$8 = $var3.$index;
        if (!(var$8 >= $var3.$size3 ? 0 : 1)) {
            if ($var1)
                nms_Village_updateVillageRadiusAndCenter($this);
            return;
        }
        var$9 = $var3.$modCount0;
        $var4 = $var3.$this$00;
        if (var$9 < $var4.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var3.$removeIndex = var$8;
        $var3.$index = var$8 + 1 | 0;
        $var4 = $var4.$get(var$8);
        if ($var2)
            $var4.$doorOpeningRestrictionCounter = 0;
        var$8 = $var4.$posX2;
        var$9 = $var4.$posY2;
        var$4 = $var4.$posZ2;
        var$10 = $this.$worldObj10;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$10, var$8, var$9, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 <= 0)
            var$8 = 0;
        else {
            nms_Block_$callClinit();
            var$8 = var$8 != nms_Block_doorWood.$blockID ? 0 : 1;
        }
        a: {
            if (var$8) {
                var$8 = $this.$tickCounter1 - $var4.$lastActivityTimestamp | 0;
                if (var$8 < 0)
                    var$8 =  -var$8 | 0;
                if (var$8 <= 1200)
                    break a;
            }
            var$10 = $this.$centerHelper;
            var$10.$posX0 = var$10.$posX0 - $var4.$posX2 | 0;
            var$10.$posY0 = var$10.$posY0 - $var4.$posY2 | 0;
            var$10.$posZ0 = var$10.$posZ0 - $var4.$posZ2 | 0;
            $var1 = 1;
            $var4.$isDetachedFromVillageFlag = 1;
            ju_AbstractList$1_remove($var3);
        }
        var$8 = $var3.$index;
        if (!(var$8 >= $var3.$size3 ? 0 : 1)) {
            if ($var1)
                nms_Village_updateVillageRadiusAndCenter($this);
            return;
        }
        var$9 = $var3.$modCount0;
        $var4 = $var3.$this$00;
        if (var$9 < $var4.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var3.$removeIndex = var$8;
        $var3.$index = var$8 + 1 | 0;
        $var4 = $var4.$get(var$8);
        if ($var2)
            $var4.$doorOpeningRestrictionCounter = 0;
        var$8 = $var4.$posX2;
        var$9 = $var4.$posY2;
        var$4 = $var4.$posZ2;
        var$10 = $this.$worldObj10;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var4, var$3, var$4, var$5, $var2, $var3, var$8, var$9, var$10, $ptr);
},
nms_Village_updateVillageRadiusAndCenter = $this => {
    let var$1, $var1, $var4, var$4, $var2, var$6, $var3$index, var$8, var$9, $var3$index_0, var$11;
    a: {
        var$1 = $this.$villageDoorInfoList;
        $var1 = var$1.$size0;
        if (!$var1) {
            var$1 = $this.$center;
            var$1.$posX0 = 0;
            var$1.$posY0 = 0;
            var$1.$posZ0 = 0;
            $this.$villageRadius = 0;
        } else {
            $var4 = $this.$center;
            var$4 = $this.$centerHelper;
            $var2 = var$4.$posX0 / $var1 | 0;
            var$6 = var$4.$posY0 / $var1 | 0;
            $var3$index = var$4.$posZ0 / $var1 | 0;
            $var4.$posX0 = $var2;
            $var4.$posY0 = var$6;
            $var4.$posZ0 = $var3$index;
            $var2 = 0;
            $var3$index = 0;
            var$8 = var$1.$modCount;
            var$9 = var$1.$size();
            while (true) {
                if (!($var3$index >= var$9 ? 0 : 1)) {
                    $var2 = (jl_Math_sqrt($var2) | 0) + 1 | 0;
                    if (32 > $var2)
                        $var2 = 32;
                    $this.$villageRadius = $var2;
                    break a;
                }
                if (var$8 < var$1.$modCount)
                    break;
                $var3$index_0 = $var3$index + 1 | 0;
                $var4 = var$1.$get($var3$index);
                var$4 = $this.$center;
                $var3$index = var$4.$posX0;
                $var1 = var$4.$posY0;
                var$11 = var$4.$posZ0;
                var$6 = $var3$index - $var4.$posX2 | 0;
                $var3$index = $var1 - $var4.$posY2 | 0;
                $var1 = var$11 - $var4.$posZ2 | 0;
                $var3$index = ($rt_imul(var$6, var$6) + $rt_imul($var3$index, $var3$index) | 0) + $rt_imul($var1, $var1) | 0;
                if ($var3$index > $var2)
                    $var2 = $var3$index;
                $var3$index = $var3$index_0;
            }
            var$1 = new ju_ConcurrentModificationException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
    }
},
nms_Village_readVillageDataFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var7, var$4, $var4, $var3, $var8, $var5, $var6, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2147));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2147) !== $var4 && !jl_String_equals($rt_s(2147), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2147) !== null) {
            $var7 = jl_String_hashCode($rt_s(2147));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2147) !== $var4 && !jl_String_equals($rt_s(2147), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    } else
        $var3 = 0;
    $this.$numVillagers = $var3;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2148));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2148) !== $var4 && !jl_String_equals($rt_s(2148), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2148) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            $var7 = jl_String_hashCode($rt_s(2148));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2148) !== $var4 && !jl_String_equals($rt_s(2148), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    $this.$villageRadius = $var3;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2149));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2149) !== $var4 && !jl_String_equals($rt_s(2149), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2149) !== null) {
            $var7 = jl_String_hashCode($rt_s(2149));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2149) !== $var4 && !jl_String_equals($rt_s(2149), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    $this.$numIronGolems = $var3;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2150));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2150) !== $var4 && !jl_String_equals($rt_s(2150), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2150) !== null) {
            $var7 = jl_String_hashCode($rt_s(2150));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2150) !== $var4 && !jl_String_equals($rt_s(2150), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    $this.$lastAddDoorTimestamp = $var3;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2124));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2124) !== $var4 && !jl_String_equals($rt_s(2124), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2124) !== null) {
            $var7 = jl_String_hashCode($rt_s(2124));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2124) !== $var4 && !jl_String_equals($rt_s(2124), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    $this.$tickCounter1 = $var3;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2151));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2151) !== $var4 && !jl_String_equals($rt_s(2151), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2151) !== null) {
            $var7 = jl_String_hashCode($rt_s(2151));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2151) !== $var4 && !jl_String_equals($rt_s(2151), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    $this.$noBreedTicks = $var3;
    $var8 = $this.$center;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2152));
    var$4 = $var4.$elementData.data;
    $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == $var7) {
            $var5 = $var4.$key;
            if ($rt_s(2152) !== $var5 && !jl_String_equals($rt_s(2152), $var5) ? 0 : 1)
                break;
        }
        $var4 = $var4.$next3;
    }
    if (!($var4 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var4 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2152) !== null) {
            $var7 = jl_String_hashCode($rt_s(2152));
            var$4 = $var4.$elementData.data;
            $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    $var5 = $var4.$key;
                    if ($rt_s(2152) !== $var5 && !jl_String_equals($rt_s(2152), $var5) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        } else {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        }
        $var3 = ($var4 === null ? null : $var4.$value0).$data;
    }
    $var8.$posX0 = $var3;
    $var8 = $this.$center;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2153));
    var$4 = $var4.$elementData.data;
    $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == $var7) {
            $var5 = $var4.$key;
            if ($rt_s(2153) !== $var5 && !jl_String_equals($rt_s(2153), $var5) ? 0 : 1)
                break;
        }
        $var4 = $var4.$next3;
    }
    if (!($var4 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var4 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2153) !== null) {
            $var7 = jl_String_hashCode($rt_s(2153));
            var$4 = $var4.$elementData.data;
            $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    $var5 = $var4.$key;
                    if ($rt_s(2153) !== $var5 && !jl_String_equals($rt_s(2153), $var5) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        } else {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        }
        $var3 = ($var4 === null ? null : $var4.$value0).$data;
    }
    $var8.$posY0 = $var3;
    $var8 = $this.$center;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2154));
    var$4 = $var4.$elementData.data;
    $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == $var7) {
            $var5 = $var4.$key;
            if ($rt_s(2154) !== $var5 && !jl_String_equals($rt_s(2154), $var5) ? 0 : 1)
                break;
        }
        $var4 = $var4.$next3;
    }
    if ($var4 === null ? 0 : 1) {
        $var4 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2154) !== null) {
            $var7 = jl_String_hashCode($rt_s(2154));
            var$4 = $var4.$elementData.data;
            $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    $var5 = $var4.$key;
                    if ($rt_s(2154) !== $var5 && !jl_String_equals($rt_s(2154), $var5) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        } else {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        }
        $var3 = ($var4 === null ? null : $var4.$value0).$data;
    } else
        $var3 = 0;
    $var8.$posZ0 = $var3;
    $var8 = $this.$centerHelper;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2155));
    var$4 = $var4.$elementData.data;
    $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == $var7) {
            $var5 = $var4.$key;
            if ($rt_s(2155) !== $var5 && !jl_String_equals($rt_s(2155), $var5) ? 0 : 1)
                break;
        }
        $var4 = $var4.$next3;
    }
    if (!($var4 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var4 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2155) === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            $var7 = jl_String_hashCode($rt_s(2155));
            var$4 = $var4.$elementData.data;
            $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    $var5 = $var4.$key;
                    if ($rt_s(2155) !== $var5 && !jl_String_equals($rt_s(2155), $var5) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var3 = ($var4 === null ? null : $var4.$value0).$data;
    }
    $var8.$posX0 = $var3;
    $var8 = $this.$centerHelper;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2156));
    var$4 = $var4.$elementData.data;
    $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == $var7) {
            $var5 = $var4.$key;
            if ($rt_s(2156) !== $var5 && !jl_String_equals($rt_s(2156), $var5) ? 0 : 1)
                break;
        }
        $var4 = $var4.$next3;
    }
    if ($var4 === null ? 0 : 1) {
        $var4 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2156) !== null) {
            $var7 = jl_String_hashCode($rt_s(2156));
            var$4 = $var4.$elementData.data;
            $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    $var5 = $var4.$key;
                    if ($rt_s(2156) !== $var5 && !jl_String_equals($rt_s(2156), $var5) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        } else {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        }
        $var3 = ($var4 === null ? null : $var4.$value0).$data;
    } else
        $var3 = 0;
    $var8.$posY0 = $var3;
    $var8 = $this.$centerHelper;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2157));
    var$4 = $var4.$elementData.data;
    $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == $var7) {
            $var5 = $var4.$key;
            if ($rt_s(2157) !== $var5 && !jl_String_equals($rt_s(2157), $var5) ? 0 : 1)
                break;
        }
        $var4 = $var4.$next3;
    }
    if ($var4 === null ? 0 : 1) {
        $var4 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2157) === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            $var7 = jl_String_hashCode($rt_s(2157));
            var$4 = $var4.$elementData.data;
            $var4 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    $var5 = $var4.$key;
                    if ($rt_s(2157) !== $var5 && !jl_String_equals($rt_s(2157), $var5) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var3 = ($var4 === null ? null : $var4.$value0).$data;
    } else
        $var3 = 0;
    $var8.$posZ0 = $var3;
    $var2 = $par1NBTTagCompound.$tagMap;
    $var7 = jl_String_hashCode($rt_s(2158));
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var7) {
            $var4 = $var2.$key;
            if ($rt_s(2158) !== $var4 && !jl_String_equals($rt_s(2158), $var4) ? 0 : 1)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2158) !== null) {
            $var7 = jl_String_hashCode($rt_s(2158));
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var7) {
                    $var4 = $var2.$key;
                    if ($rt_s(2158) !== $var4 && !jl_String_equals($rt_s(2158), $var4) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    } else {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2158) !== null)
            $var2.$name = $rt_s(2158);
        else
            $var2.$name = $rt_s(3);
        $var8 = new ju_ArrayList;
        $var8.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $var8;
    }
    $var3 = 0;
    a: {
        while (true) {
            $var8 = $var2.$tagList;
            $var7 = $rt_compare($var3, $var8.$size0);
            if ($var7 >= 0)
                break;
            if ($var3 < 0)
                break a;
            if ($var7 >= 0)
                break a;
            $var4 = $var8.$array.data[$var3];
            $var5 = new nms_VillageDoorInfo;
            $var6 = $var4.$tagMap;
            var$10 = jl_String_hashCode($rt_s(1525));
            var$4 = $var6.$elementData.data;
            $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    var$11 = $var6.$key;
                    if ($rt_s(1525) !== var$11 && !jl_String_equals($rt_s(1525), var$11) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
            if ($var6 === null ? 0 : 1) {
                $var6 = $var4.$tagMap;
                if ($rt_s(1525) !== null) {
                    var$10 = jl_String_hashCode($rt_s(1525));
                    var$4 = $var6.$elementData.data;
                    $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while ($var6 !== null) {
                        if ($var6.$origKeyHash == var$10) {
                            var$11 = $var6.$key;
                            if ($rt_s(1525) !== var$11 && !jl_String_equals($rt_s(1525), var$11) ? 0 : 1)
                                break;
                        }
                        $var6 = $var6.$next3;
                    }
                } else {
                    $var6 = $var6.$elementData.data[0];
                    while ($var6 !== null && $var6.$key !== null) {
                        $var6 = $var6.$next3;
                    }
                }
                var$12 = ($var6 === null ? null : $var6.$value0).$data;
            } else
                var$12 = 0;
            $var6 = $var4.$tagMap;
            var$10 = jl_String_hashCode($rt_s(355));
            var$4 = $var6.$elementData.data;
            $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    var$11 = $var6.$key;
                    if ($rt_s(355) !== var$11 && !jl_String_equals($rt_s(355), var$11) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
            if (!($var6 === null ? 0 : 1))
                var$13 = 0;
            else {
                $var6 = $var4.$tagMap;
                if ($rt_s(355) !== null) {
                    var$10 = jl_String_hashCode($rt_s(355));
                    var$4 = $var6.$elementData.data;
                    $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while ($var6 !== null) {
                        if ($var6.$origKeyHash == var$10) {
                            var$11 = $var6.$key;
                            if ($rt_s(355) !== var$11 && !jl_String_equals($rt_s(355), var$11) ? 0 : 1)
                                break;
                        }
                        $var6 = $var6.$next3;
                    }
                } else {
                    $var6 = $var6.$elementData.data[0];
                    while ($var6 !== null && $var6.$key !== null) {
                        $var6 = $var6.$next3;
                    }
                }
                var$13 = ($var6 === null ? null : $var6.$value0).$data;
            }
            $var6 = $var4.$tagMap;
            var$10 = jl_String_hashCode($rt_s(2159));
            var$4 = $var6.$elementData.data;
            $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    var$11 = $var6.$key;
                    if ($rt_s(2159) !== var$11 && !jl_String_equals($rt_s(2159), var$11) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
            if (!($var6 === null ? 0 : 1))
                var$14 = 0;
            else {
                $var6 = $var4.$tagMap;
                if ($rt_s(2159) === null) {
                    $var6 = $var6.$elementData.data[0];
                    while ($var6 !== null && $var6.$key !== null) {
                        $var6 = $var6.$next3;
                    }
                } else {
                    var$10 = jl_String_hashCode($rt_s(2159));
                    var$4 = $var6.$elementData.data;
                    $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while ($var6 !== null) {
                        if ($var6.$origKeyHash == var$10) {
                            var$11 = $var6.$key;
                            if ($rt_s(2159) !== var$11 && !jl_String_equals($rt_s(2159), var$11) ? 0 : 1)
                                break;
                        }
                        $var6 = $var6.$next3;
                    }
                }
                var$14 = ($var6 === null ? null : $var6.$value0).$data;
            }
            $var6 = $var4.$tagMap;
            var$10 = jl_String_hashCode($rt_s(2160));
            var$4 = $var6.$elementData.data;
            $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    var$11 = $var6.$key;
                    if ($rt_s(2160) !== var$11 && !jl_String_equals($rt_s(2160), var$11) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
            if (!($var6 === null ? 0 : 1))
                var$15 = 0;
            else {
                $var6 = $var4.$tagMap;
                if ($rt_s(2160) === null) {
                    $var6 = $var6.$elementData.data[0];
                    while ($var6 !== null && $var6.$key !== null) {
                        $var6 = $var6.$next3;
                    }
                } else {
                    var$10 = jl_String_hashCode($rt_s(2160));
                    var$4 = $var6.$elementData.data;
                    $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while ($var6 !== null) {
                        if ($var6.$origKeyHash == var$10) {
                            var$11 = $var6.$key;
                            if ($rt_s(2160) !== var$11 && !jl_String_equals($rt_s(2160), var$11) ? 0 : 1)
                                break;
                        }
                        $var6 = $var6.$next3;
                    }
                }
                var$15 = ($var6 === null ? null : $var6.$value0).$data;
            }
            $var6 = $var4.$tagMap;
            var$10 = jl_String_hashCode($rt_s(2161));
            var$4 = $var6.$elementData.data;
            $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    var$11 = $var6.$key;
                    if ($rt_s(2161) !== var$11 && !jl_String_equals($rt_s(2161), var$11) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
            if (!($var6 === null ? 0 : 1))
                var$16 = 0;
            else {
                $var6 = $var4.$tagMap;
                if ($rt_s(2161) === null) {
                    $var6 = $var6.$elementData.data[0];
                    while ($var6 !== null && $var6.$key !== null) {
                        $var6 = $var6.$next3;
                    }
                } else {
                    var$10 = jl_String_hashCode($rt_s(2161));
                    var$4 = $var6.$elementData.data;
                    $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while ($var6 !== null) {
                        if ($var6.$origKeyHash == var$10) {
                            var$11 = $var6.$key;
                            if ($rt_s(2161) !== var$11 && !jl_String_equals($rt_s(2161), var$11) ? 0 : 1)
                                break;
                        }
                        $var6 = $var6.$next3;
                    }
                }
                var$16 = ($var6 === null ? null : $var6.$value0).$data;
            }
            $var6 = $var4.$tagMap;
            var$10 = jl_String_hashCode($rt_s(2162));
            var$4 = $var6.$elementData.data;
            $var6 = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == var$10) {
                    var$11 = $var6.$key;
                    if ($rt_s(2162) !== var$11 && !jl_String_equals($rt_s(2162), var$11) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
            if (!($var6 === null ? 0 : 1))
                $var7 = 0;
            else {
                $var4 = $var4.$tagMap;
                if ($rt_s(2162) === null) {
                    $var4 = $var4.$elementData.data[0];
                    while ($var4 !== null && $var4.$key !== null) {
                        $var4 = $var4.$next3;
                    }
                } else {
                    b: {
                        if (!$rt_s(2162).$hashCode1) {
                            $var7 = 0;
                            while (true) {
                                if ($var7 >= $rt_s(2162).$nativeString.length)
                                    break b;
                                $rt_s(2162).$hashCode1 = (31 * $rt_s(2162).$hashCode1 | 0) + $rt_s(2162).$nativeString.charCodeAt($var7) | 0;
                                $var7 = $var7 + 1 | 0;
                            }
                        }
                    }
                    var$17 = $rt_s(2162).$hashCode1;
                    var$4 = $var4.$elementData.data;
                    $var4 = var$4[var$17 & (var$4.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == var$17) {
                            c: {
                                $var6 = $var4.$key;
                                if ($rt_s(2162) !== $var6) {
                                    if ($rt_s(2162) === $var6)
                                        $var7 = 1;
                                    else if (!($var6 instanceof jl_String))
                                        $var7 = 0;
                                    else {
                                        $var6 = $var6;
                                        $var7 = $rt_s(2162).$nativeString !== $var6.$nativeString ? 0 : 1;
                                    }
                                    if (!$var7) {
                                        $var7 = 0;
                                        break c;
                                    }
                                }
                                $var7 = 1;
                            }
                            if ($var7)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                }
                $var7 = ($var4 === null ? null : $var4.$value0).$data;
            }
            $var5.$posX2 = var$12;
            $var5.$posY2 = var$13;
            $var5.$posZ2 = var$14;
            $var5.$insideDirectionX = var$15;
            $var5.$insideDirectionZ = var$16;
            $var5.$lastActivityTimestamp = $var7;
            $var8 = $this.$villageDoorInfoList;
            ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
            var$4 = $var8.$array.data;
            var$10 = $var8.$size0;
            $var8.$size0 = var$10 + 1 | 0;
            var$4[var$10] = $var5;
            $var8.$modCount = $var8.$modCount + 1 | 0;
            $var3 = $var3 + 1 | 0;
        }
        $var2 = $par1NBTTagCompound.$tagMap;
        $var7 = jl_String_hashCode($rt_s(2067));
        var$4 = $var2.$elementData.data;
        $var2 = var$4[$var7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == $var7) {
                $var4 = $var2.$key;
                if ($rt_s(2067) !== $var4 && !jl_String_equals($rt_s(2067), $var4) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2067) !== null) {
                $var7 = jl_String_hashCode($rt_s(2067));
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[$var7 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == $var7) {
                        $var2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2067) !== $var2 && !jl_String_equals($rt_s(2067), $var2) ? 0 : 1)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var6 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        } else {
            $var6 = new nms_NBTTagList;
            if ($rt_s(2067) !== null)
                $var6.$name = $rt_s(2067);
            else
                $var6.$name = $rt_s(3);
            $par1NBTTagCompound = new ju_ArrayList;
            $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
            $var6.$tagList = $par1NBTTagCompound;
        }
        $var7 = 0;
        d: {
            e: {
                f: {
                    g: {
                        h: {
                            i: {
                                j: {
                                    while ($var7 < nms_NBTTagList_tagCount($var6)) {
                                        $par1NBTTagCompound = $var6.$tagList;
                                        if ($var7 < 0)
                                            break d;
                                        if ($var7 >= $par1NBTTagCompound.$size0)
                                            break d;
                                        k: {
                                            $var8 = $par1NBTTagCompound.$array.data[$var7];
                                            $var2 = $this.$playerReputation;
                                            $var4 = $var8.$tagMap;
                                            if (!$rt_s(919).$hashCode1) {
                                                $var3 = 0;
                                                while (true) {
                                                    if ($var3 >= $rt_s(919).$nativeString.length)
                                                        break k;
                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var3) | 0;
                                                    $var3 = $var3 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var3 = $rt_s(919).$hashCode1;
                                        var$4 = $var4.$elementData.data;
                                        $var4 = var$4[$var3 & (var$4.length - 1 | 0)];
                                        while ($var4 !== null) {
                                            if ($var4.$origKeyHash == $var3) {
                                                l: {
                                                    $var5 = $var4.$key;
                                                    if ($rt_s(919) !== $var5) {
                                                        if ($rt_s(919) === $var5)
                                                            var$10 = 1;
                                                        else if (!($var5 instanceof jl_String))
                                                            var$10 = 0;
                                                        else {
                                                            $var5 = $var5;
                                                            var$10 = $rt_s(919).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$10) {
                                                            var$10 = 0;
                                                            break l;
                                                        }
                                                    }
                                                    var$10 = 1;
                                                }
                                                if (var$10)
                                                    break;
                                            }
                                            $var4 = $var4.$next3;
                                        }
                                        if ($var4 === null ? 0 : 1) {
                                            $var4 = $var8.$tagMap;
                                            if ($rt_s(919) === null) {
                                                $var4 = $var4.$elementData.data[0];
                                                while ($var4 !== null && $var4.$key !== null) {
                                                    $var4 = $var4.$next3;
                                                }
                                            } else {
                                                m: {
                                                    if (!$rt_s(919).$hashCode1) {
                                                        $var3 = 0;
                                                        while (true) {
                                                            if ($var3 >= $rt_s(919).$nativeString.length)
                                                                break m;
                                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var3) | 0;
                                                            $var3 = $var3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                $var3 = $rt_s(919).$hashCode1;
                                                var$4 = $var4.$elementData.data;
                                                $var4 = var$4[$var3 & (var$4.length - 1 | 0)];
                                                while ($var4 !== null) {
                                                    if ($var4.$origKeyHash == $var3) {
                                                        n: {
                                                            $var5 = $var4.$key;
                                                            if ($rt_s(919) !== $var5) {
                                                                if ($rt_s(919) !== $var5) {
                                                                    if ($var5 instanceof jl_String) {
                                                                        $var5 = $var5;
                                                                        var$10 = $rt_s(919).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                                    } else
                                                                        var$10 = 0;
                                                                } else
                                                                    var$10 = 1;
                                                                if (!var$10) {
                                                                    var$10 = 0;
                                                                    break n;
                                                                }
                                                            }
                                                            var$10 = 1;
                                                        }
                                                        if (var$10)
                                                            break;
                                                    }
                                                    $var4 = $var4.$next3;
                                                }
                                            }
                                            var$18 = ($var4 === null ? null : $var4.$value0).$data1;
                                        } else
                                            var$18 = $rt_s(3);
                                        o: {
                                            $var4 = $var8.$tagMap;
                                            if (!$rt_s(1543).$hashCode1) {
                                                $var3 = 0;
                                                while (true) {
                                                    if ($var3 >= $rt_s(1543).$nativeString.length)
                                                        break o;
                                                    $rt_s(1543).$hashCode1 = (31 * $rt_s(1543).$hashCode1 | 0) + $rt_s(1543).$nativeString.charCodeAt($var3) | 0;
                                                    $var3 = $var3 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$17 = $rt_s(1543).$hashCode1;
                                        var$4 = $var4.$elementData.data;
                                        $var4 = var$4[var$17 & (var$4.length - 1 | 0)];
                                        while ($var4 !== null) {
                                            if ($var4.$origKeyHash == var$17) {
                                                p: {
                                                    $var5 = $var4.$key;
                                                    if ($rt_s(1543) !== $var5) {
                                                        if ($rt_s(1543) === $var5)
                                                            $var3 = 1;
                                                        else if (!($var5 instanceof jl_String))
                                                            $var3 = 0;
                                                        else {
                                                            $var5 = $var5;
                                                            $var3 = $rt_s(1543).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var3) {
                                                            $var3 = 0;
                                                            break p;
                                                        }
                                                    }
                                                    $var3 = 1;
                                                }
                                                if ($var3)
                                                    break;
                                            }
                                            $var4 = $var4.$next3;
                                        }
                                        if (!($var4 === null ? 0 : 1))
                                            var$10 = 0;
                                        else {
                                            $var8 = $var8.$tagMap;
                                            if ($rt_s(1543) === null) {
                                                $var8 = $var8.$elementData.data[0];
                                                while ($var8 !== null && $var8.$key !== null) {
                                                    $var8 = $var8.$next3;
                                                }
                                            } else {
                                                q: {
                                                    if (!$rt_s(1543).$hashCode1) {
                                                        $var3 = 0;
                                                        while (true) {
                                                            if ($var3 >= $rt_s(1543).$nativeString.length)
                                                                break q;
                                                            $rt_s(1543).$hashCode1 = (31 * $rt_s(1543).$hashCode1 | 0) + $rt_s(1543).$nativeString.charCodeAt($var3) | 0;
                                                            $var3 = $var3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$17 = $rt_s(1543).$hashCode1;
                                                var$4 = $var8.$elementData.data;
                                                $var8 = var$4[var$17 & (var$4.length - 1 | 0)];
                                                while ($var8 !== null) {
                                                    if ($var8.$origKeyHash == var$17) {
                                                        r: {
                                                            $var4 = $var8.$key;
                                                            if ($rt_s(1543) !== $var4) {
                                                                if ($rt_s(1543) === $var4)
                                                                    $var3 = 1;
                                                                else if (!($var4 instanceof jl_String))
                                                                    $var3 = 0;
                                                                else {
                                                                    $var4 = $var4;
                                                                    $var3 = $rt_s(1543).$nativeString !== $var4.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$var3) {
                                                                    $var3 = 0;
                                                                    break r;
                                                                }
                                                            }
                                                            $var3 = 1;
                                                        }
                                                        if ($var3)
                                                            break;
                                                    }
                                                    $var8 = $var8.$next3;
                                                }
                                            }
                                            var$10 = ($var8 === null ? null : $var8.$value0).$data;
                                        }
                                        if (var$10 >= (-128) && var$10 <= 127) {
                                            jl_Integer_ensureIntegerCache();
                                            $par1NBTTagCompound = jl_Integer_integerCache.data[var$10 + 128 | 0];
                                        } else {
                                            $par1NBTTagCompound = new jl_Integer;
                                            $par1NBTTagCompound.$value = var$10;
                                        }
                                        $var8 = $var2.$root;
                                        if ($var8 === null) {
                                            $var8 = new ju_TreeMap$TreeNode;
                                            $var4 = null;
                                            $var8.$key0 = var$18;
                                            $var8.$value2 = $var4;
                                            $var8.$height = 1;
                                            $var8.$size1 = 1;
                                        } else {
                                            s: {
                                                $var4 = $var8.$key0;
                                                var$19 = var$18;
                                                $var4 = $var4;
                                                if (var$19 === $var4)
                                                    $var3 = 0;
                                                else {
                                                    var$10 = var$19.$nativeString.length;
                                                    var$16 = $var4.$nativeString.length;
                                                    if (var$10 < var$16)
                                                        var$16 = var$10;
                                                    var$10 = 0;
                                                    while (true) {
                                                        if (var$10 >= var$16) {
                                                            $var3 = var$19.$nativeString.length - $var4.$nativeString.length | 0;
                                                            break s;
                                                        }
                                                        if (var$10 < 0)
                                                            break e;
                                                        if (var$10 >= var$19.$nativeString.length)
                                                            break e;
                                                        var$17 = var$19.$nativeString.charCodeAt(var$10);
                                                        if (var$10 < 0)
                                                            break f;
                                                        if (var$10 >= $var4.$nativeString.length)
                                                            break f;
                                                        $var3 = var$17 - $var4.$nativeString.charCodeAt(var$10) | 0;
                                                        if ($var3)
                                                            break;
                                                        var$10 = var$10 + 1 | 0;
                                                    }
                                                }
                                            }
                                            if ($var3) {
                                                if ($var3 < 0)
                                                    $var8.$left = ju_TreeMap_getOrCreateNode($var2, $var8.$left, var$18);
                                                else {
                                                    $var4 = $var8.$right;
                                                    if ($var4 === null) {
                                                        $var4 = new ju_TreeMap$TreeNode;
                                                        $var5 = null;
                                                        $var4.$key0 = var$18;
                                                        $var4.$value2 = $var5;
                                                        $var4.$height = 1;
                                                        $var4.$size1 = 1;
                                                    } else {
                                                        t: {
                                                            $var5 = $var4.$key0;
                                                            if (var$19 === $var5)
                                                                $var3 = 0;
                                                            else {
                                                                var$10 = var$19.$nativeString.length;
                                                                var$16 = $var5.$nativeString.length;
                                                                if (var$10 < var$16)
                                                                    var$16 = var$10;
                                                                var$10 = 0;
                                                                while (true) {
                                                                    if (var$10 >= var$16) {
                                                                        $var3 = var$19.$nativeString.length - $var5.$nativeString.length | 0;
                                                                        break t;
                                                                    }
                                                                    if (var$10 < 0)
                                                                        break g;
                                                                    if (var$10 >= var$19.$nativeString.length)
                                                                        break g;
                                                                    var$17 = var$19.$nativeString.charCodeAt(var$10);
                                                                    if (var$10 < 0)
                                                                        break h;
                                                                    if (var$10 >= $var5.$nativeString.length)
                                                                        break h;
                                                                    $var3 = var$17 - $var5.$nativeString.charCodeAt(var$10) | 0;
                                                                    if ($var3)
                                                                        break;
                                                                    var$10 = var$10 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        if ($var3) {
                                                            if ($var3 < 0)
                                                                $var4.$left = ju_TreeMap_getOrCreateNode($var2, $var4.$left, var$18);
                                                            else {
                                                                $var5 = $var4.$right;
                                                                if ($var5 === null) {
                                                                    $var5 = new ju_TreeMap$TreeNode;
                                                                    var$11 = null;
                                                                    $var5.$key0 = var$18;
                                                                    $var5.$value2 = var$11;
                                                                    $var5.$height = 1;
                                                                    $var5.$size1 = 1;
                                                                } else {
                                                                    u: {
                                                                        var$11 = $var5.$key0;
                                                                        if (var$19 === var$11)
                                                                            $var3 = 0;
                                                                        else {
                                                                            var$10 = var$19.$nativeString.length;
                                                                            var$16 = var$11.$nativeString.length;
                                                                            if (var$10 < var$16)
                                                                                var$16 = var$10;
                                                                            var$10 = 0;
                                                                            while (true) {
                                                                                if (var$10 >= var$16) {
                                                                                    $var3 = var$19.$nativeString.length - var$11.$nativeString.length | 0;
                                                                                    break u;
                                                                                }
                                                                                if (var$10 < 0)
                                                                                    break i;
                                                                                if (var$10 >= var$19.$nativeString.length)
                                                                                    break i;
                                                                                var$17 = var$19.$nativeString.charCodeAt(var$10);
                                                                                if (var$10 < 0)
                                                                                    break j;
                                                                                if (var$10 >= var$11.$nativeString.length)
                                                                                    break j;
                                                                                $var3 = var$17 - var$11.$nativeString.charCodeAt(var$10) | 0;
                                                                                if ($var3)
                                                                                    break;
                                                                                var$10 = var$10 + 1 | 0;
                                                                            }
                                                                        }
                                                                    }
                                                                    if ($var3) {
                                                                        if ($var3 < 0) {
                                                                            var$11 = $var5.$left;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                var$20 = null;
                                                                                var$11.$key0 = var$18;
                                                                                var$11.$value2 = var$20;
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                v: {
                                                                                    var$20 = var$11.$key0;
                                                                                    if (var$19 === var$20)
                                                                                        $var3 = 0;
                                                                                    else {
                                                                                        var$10 = jl_Math_min(jl_String_length(var$19), jl_String_length(var$20));
                                                                                        var$17 = 0;
                                                                                        while (true) {
                                                                                            if (var$17 >= var$10) {
                                                                                                $var3 = jl_String_length(var$19) - jl_String_length(var$20) | 0;
                                                                                                break v;
                                                                                            }
                                                                                            $var3 = jl_String_charAt(var$19, var$17) - jl_String_charAt(var$20, var$17) | 0;
                                                                                            if ($var3)
                                                                                                break;
                                                                                            var$17 = var$17 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                if ($var3) {
                                                                                    if ($var3 >= 0)
                                                                                        var$11.$right = ju_TreeMap_getOrCreateNode($var2, var$11.$right, var$18);
                                                                                    else
                                                                                        var$11.$left = ju_TreeMap_getOrCreateNode($var2, var$11.$left, var$18);
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            $var5.$left = var$11;
                                                                        } else {
                                                                            var$11 = $var5.$right;
                                                                            if (var$11 === null) {
                                                                                var$11 = new ju_TreeMap$TreeNode;
                                                                                var$20 = null;
                                                                                var$11.$key0 = var$18;
                                                                                var$11.$value2 = var$20;
                                                                                var$11.$height = 1;
                                                                                var$11.$size1 = 1;
                                                                            } else {
                                                                                w: {
                                                                                    var$20 = var$11.$key0;
                                                                                    if (var$19 === var$20)
                                                                                        $var3 = 0;
                                                                                    else {
                                                                                        var$10 = jl_Math_min(jl_String_length(var$19), jl_String_length(var$20));
                                                                                        var$17 = 0;
                                                                                        while (true) {
                                                                                            if (var$17 >= var$10) {
                                                                                                $var3 = jl_String_length(var$19) - jl_String_length(var$20) | 0;
                                                                                                break w;
                                                                                            }
                                                                                            $var3 = jl_String_charAt(var$19, var$17) - jl_String_charAt(var$20, var$17) | 0;
                                                                                            if ($var3)
                                                                                                break;
                                                                                            var$17 = var$17 + 1 | 0;
                                                                                        }
                                                                                    }
                                                                                }
                                                                                if ($var3) {
                                                                                    if ($var3 >= 0) {
                                                                                        var$20 = var$11.$right;
                                                                                        if (var$20 === null) {
                                                                                            var$20 = new ju_TreeMap$TreeNode;
                                                                                            var$21 = null;
                                                                                            jl_Object__init_(var$20);
                                                                                            var$20.$key0 = var$18;
                                                                                            var$20.$value2 = var$21;
                                                                                            var$20.$height = 1;
                                                                                            var$20.$size1 = 1;
                                                                                        } else {
                                                                                            $var3 = jl_String_compareTo0(var$19, var$20.$key0);
                                                                                            if ($var3) {
                                                                                                if ($var3 >= 0) {
                                                                                                    var$21 = var$20.$right;
                                                                                                    if (var$21 === null) {
                                                                                                        var$21 = new ju_TreeMap$TreeNode;
                                                                                                        ju_AbstractMap$SimpleEntry__init_(var$21, var$18, null);
                                                                                                        var$21.$height = 1;
                                                                                                        var$21.$size1 = 1;
                                                                                                    } else {
                                                                                                        $var3 = jl_String_compareTo(var$19, var$21.$key0);
                                                                                                        if ($var3) {
                                                                                                            if ($var3 >= 0) {
                                                                                                                var$22 = var$21.$right;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$right = var$22;
                                                                                                            } else {
                                                                                                                var$22 = var$21.$left;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$left = var$22;
                                                                                                            }
                                                                                                            ju_TreeMap$TreeNode_fix(var$21);
                                                                                                            var$21 = ju_TreeMap$TreeNode_balance(var$21);
                                                                                                        }
                                                                                                    }
                                                                                                    var$20.$right = var$21;
                                                                                                } else {
                                                                                                    var$21 = var$20.$left;
                                                                                                    if (var$21 === null) {
                                                                                                        var$21 = new ju_TreeMap$TreeNode;
                                                                                                        ju_AbstractMap$SimpleEntry__init_(var$21, var$18, null);
                                                                                                        var$21.$height = 1;
                                                                                                        var$21.$size1 = 1;
                                                                                                    } else {
                                                                                                        $var3 = jl_String_compareTo(var$19, var$21.$key0);
                                                                                                        if ($var3) {
                                                                                                            if ($var3 >= 0) {
                                                                                                                var$22 = var$21.$right;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$right = var$22;
                                                                                                            } else {
                                                                                                                var$22 = var$21.$left;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$left = var$22;
                                                                                                            }
                                                                                                            ju_TreeMap$TreeNode_fix(var$21);
                                                                                                            var$21 = ju_TreeMap$TreeNode_balance(var$21);
                                                                                                        }
                                                                                                    }
                                                                                                    var$20.$left = var$21;
                                                                                                }
                                                                                                ju_TreeMap$TreeNode_fix(var$20);
                                                                                                var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                            }
                                                                                        }
                                                                                        var$11.$right = var$20;
                                                                                    } else {
                                                                                        var$20 = var$11.$left;
                                                                                        if (var$20 === null) {
                                                                                            var$20 = new ju_TreeMap$TreeNode;
                                                                                            var$21 = null;
                                                                                            jl_Object__init_(var$20);
                                                                                            var$20.$key0 = var$18;
                                                                                            var$20.$value2 = var$21;
                                                                                            var$20.$height = 1;
                                                                                            var$20.$size1 = 1;
                                                                                        } else {
                                                                                            $var3 = jl_String_compareTo0(var$19, var$20.$key0);
                                                                                            if ($var3) {
                                                                                                if ($var3 >= 0) {
                                                                                                    var$21 = var$20.$right;
                                                                                                    if (var$21 === null) {
                                                                                                        var$21 = new ju_TreeMap$TreeNode;
                                                                                                        ju_AbstractMap$SimpleEntry__init_(var$21, var$18, null);
                                                                                                        var$21.$height = 1;
                                                                                                        var$21.$size1 = 1;
                                                                                                    } else {
                                                                                                        $var3 = jl_String_compareTo(var$19, var$21.$key0);
                                                                                                        if ($var3) {
                                                                                                            if ($var3 >= 0) {
                                                                                                                var$22 = var$21.$right;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$right = var$22;
                                                                                                            } else {
                                                                                                                var$22 = var$21.$left;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$left = var$22;
                                                                                                            }
                                                                                                            ju_TreeMap$TreeNode_fix(var$21);
                                                                                                            var$21 = ju_TreeMap$TreeNode_balance(var$21);
                                                                                                        }
                                                                                                    }
                                                                                                    var$20.$right = var$21;
                                                                                                } else {
                                                                                                    var$21 = var$20.$left;
                                                                                                    if (var$21 === null) {
                                                                                                        var$21 = new ju_TreeMap$TreeNode;
                                                                                                        ju_AbstractMap$SimpleEntry__init_(var$21, var$18, null);
                                                                                                        var$21.$height = 1;
                                                                                                        var$21.$size1 = 1;
                                                                                                    } else {
                                                                                                        $var3 = jl_String_compareTo(var$19, var$21.$key0);
                                                                                                        if ($var3) {
                                                                                                            if ($var3 >= 0) {
                                                                                                                var$22 = var$21.$right;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$right = var$22;
                                                                                                            } else {
                                                                                                                var$22 = var$21.$left;
                                                                                                                if (var$22 === null)
                                                                                                                    var$22 = ju_TreeMap$TreeNode__init_(var$18);
                                                                                                                else {
                                                                                                                    $var3 = ju_Comparator$NaturalOrder_compare($var2.$comparator, var$18, ju_AbstractMap$SimpleEntry_getKey(var$22));
                                                                                                                    if ($var3) {
                                                                                                                        if ($var3 >= 0)
                                                                                                                            var$22.$right = ju_TreeMap_getOrCreateNode($var2, var$22.$right, var$18);
                                                                                                                        else
                                                                                                                            var$22.$left = ju_TreeMap_getOrCreateNode($var2, var$22.$left, var$18);
                                                                                                                        ju_TreeMap$TreeNode_fix(var$22);
                                                                                                                        var$22 = ju_TreeMap$TreeNode_balance(var$22);
                                                                                                                    }
                                                                                                                }
                                                                                                                var$21.$left = var$22;
                                                                                                            }
                                                                                                            ju_TreeMap$TreeNode_fix(var$21);
                                                                                                            var$21 = ju_TreeMap$TreeNode_balance(var$21);
                                                                                                        }
                                                                                                    }
                                                                                                    var$20.$left = var$21;
                                                                                                }
                                                                                                ju_TreeMap$TreeNode_fix(var$20);
                                                                                                var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                            }
                                                                                        }
                                                                                        var$11.$left = var$20;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$11);
                                                                                    var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                }
                                                                            }
                                                                            $var5.$right = var$11;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix($var5);
                                                                        $var5 = ju_TreeMap$TreeNode_balance($var5);
                                                                    }
                                                                }
                                                                $var4.$right = $var5;
                                                            }
                                                            ju_TreeMap$TreeNode_fix($var4);
                                                            $var4 = ju_TreeMap$TreeNode_balance($var4);
                                                        }
                                                    }
                                                    $var8.$right = $var4;
                                                }
                                                ju_TreeMap$TreeNode_fix($var8);
                                                $var8 = ju_TreeMap$TreeNode_balance($var8);
                                            }
                                        }
                                        $var2.$root = $var8;
                                        $var8 = ju_TreeMap_findExact($var2, var$18);
                                        $var8.$value2 = $par1NBTTagCompound;
                                        $var8.$value2 = $par1NBTTagCompound;
                                        $var2.$modCount2 = $var2.$modCount2 + 1 | 0;
                                        $var7 = $var7 + 1 | 0;
                                    }
                                    return;
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                        $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1NBTTagCompound);
                        $rt_throw($par1NBTTagCompound);
                    }
                    $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1NBTTagCompound);
                    $rt_throw($par1NBTTagCompound);
                }
                $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                jl_RuntimeException__init_($par1NBTTagCompound);
                $rt_throw($par1NBTTagCompound);
            }
            $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
            jl_RuntimeException__init_($par1NBTTagCompound);
            $rt_throw($par1NBTTagCompound);
        }
        $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
        $par1NBTTagCompound.$suppressionEnabled = 1;
        $par1NBTTagCompound.$writableStackTrace = 1;
        $rt_throw($par1NBTTagCompound);
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_Village_writeVillageDataToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $var4, $var7, $var2, $var3$index, var$7, var$8, $var8, $var9, $var6, $var5, var$13, var$14, var$15, var$16, $var3$index_0;
    var$2 = $this.$numVillagers;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2147);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2147), $var7);
    var$2 = $this.$villageRadius;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2148);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2148), $var7);
    var$2 = $this.$numIronGolems;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2149);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2149), $var7);
    var$2 = $this.$lastAddDoorTimestamp;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2150);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2150), $var7);
    var$2 = $this.$tickCounter1;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2124);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2124), $var7);
    var$2 = $this.$noBreedTicks;
    $var7 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagInt;
    $var4.$name = $rt_s(2151);
    $var4.$data = var$2;
    ju_HashMap_putImpl($var7, $rt_s(2151), $var4);
    var$2 = $this.$center.$posX0;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2152);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2152), $var7);
    var$2 = $this.$center.$posY0;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2153);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2153), $var7);
    var$2 = $this.$center.$posZ0;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2154);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2154), $var7);
    var$2 = $this.$centerHelper.$posX0;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2155);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2155), $var7);
    var$2 = $this.$centerHelper.$posY0;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2156);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2156), $var7);
    var$2 = $this.$centerHelper.$posZ0;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var7 = new nms_NBTTagInt;
    $var7.$name = $rt_s(2157);
    $var7.$data = var$2;
    ju_HashMap_putImpl($var4, $rt_s(2157), $var7);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(2158);
    $var7 = new ju_ArrayList;
    $var7.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = $var7;
    $var7 = $this.$villageDoorInfoList;
    $var3$index = 0;
    var$7 = $var7.$modCount;
    var$8 = $var7.$size();
    while (true) {
        if (!($var3$index >= var$8 ? 0 : 1)) {
            $var4 = $par1NBTTagCompound.$tagMap;
            $var2.$name = $rt_s(2158);
            ju_HashMap_putImpl($var4, $rt_s(2158), $var2);
            $var7 = new nms_NBTTagList;
            $var7.$name = $rt_s(2067);
            $var2 = new ju_ArrayList;
            $var2.$array = $rt_createArray(jl_Object, 10);
            $var7.$tagList = $var2;
            $var2 = $this.$playerReputation;
            if ($var2.$cachedKeySet === null) {
                $var4 = new ju_AbstractMap$KeySet;
                $var4.$this$03 = $var2;
                $var2.$cachedKeySet = $var4;
            }
            $var8 = $var2.$cachedKeySet.$iterator();
            a: {
                b: {
                    c: {
                        d: while (true) {
                            if (!$var8.$hasNext()) {
                                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                                $var7.$name = $rt_s(2067);
                                ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2067), $var7);
                                return;
                            }
                            $var9 = $var8.$next();
                            $var6 = new nms_NBTTagCompound;
                            if ($var9 !== null)
                                $var6.$name = $var9;
                            else
                                $var6.$name = $rt_s(3);
                            $var5 = new ju_HashMap;
                            var$2 = ju_HashMap_calculateCapacity(16);
                            $var5.$elementCount = 0;
                            var$13 = $rt_createArray(ju_HashMap$HashEntry, var$2);
                            var$14 = var$13.data;
                            $var5.$elementData = var$13;
                            $var5.$loadFactor = 0.75;
                            $var5.$threshold = var$14.length * 0.75 | 0;
                            $var6.$tagMap = $var5;
                            $var4 = new nms_NBTTagString;
                            $var4.$name = $rt_s(919);
                            $var4.$data1 = $var9;
                            if ($var9 === null) {
                                $var2 = new jl_IllegalArgumentException;
                                $var2.$suppressionEnabled = 1;
                                $var2.$writableStackTrace = 1;
                                $var2.$message = $rt_s(177);
                                $rt_throw($var2);
                            }
                            e: {
                                ju_HashMap_putImpl($var5, $rt_s(919), $var4);
                                $var4 = $this.$playerReputation.$root;
                                var$15 = $var9;
                                $var5 = $var9;
                                if (var$15 !== $var5) {
                                    $var3$index = var$15.$nativeString.length;
                                    var$16 = $var5.$nativeString.length;
                                    if ($var3$index < var$16)
                                        var$16 = $var3$index;
                                    var$2 = 0;
                                    while (true) {
                                        if (var$2 >= var$16) {
                                            var$15.$nativeString.length;
                                            $var5.$nativeString.length;
                                            break e;
                                        }
                                        if (var$2 < 0)
                                            break a;
                                        if (var$2 >= var$15.$nativeString.length)
                                            break a;
                                        $var3$index_0 = var$15.$nativeString.charCodeAt(var$2);
                                        if (var$2 < 0)
                                            break b;
                                        if (var$2 >= $var5.$nativeString.length)
                                            break b;
                                        if ($var3$index_0 - $var5.$nativeString.charCodeAt(var$2) | 0)
                                            break;
                                        var$2 = var$2 + 1 | 0;
                                    }
                                }
                            }
                            f: {
                                while (true) {
                                    if ($var4 === null) {
                                        $var4 = null;
                                        break f;
                                    }
                                    g: {
                                        $var5 = $var4.$key0;
                                        if (var$15 === $var5)
                                            var$2 = 0;
                                        else {
                                            $var3$index = var$15.$nativeString.length;
                                            $var3$index_0 = $var5.$nativeString.length;
                                            if ($var3$index < $var3$index_0)
                                                $var3$index_0 = $var3$index;
                                            $var3$index = 0;
                                            while (true) {
                                                if ($var3$index >= $var3$index_0) {
                                                    var$2 = var$15.$nativeString.length - $var5.$nativeString.length | 0;
                                                    break g;
                                                }
                                                if ($var3$index < 0)
                                                    break c;
                                                if ($var3$index >= var$15.$nativeString.length)
                                                    break c;
                                                var$16 = var$15.$nativeString.charCodeAt($var3$index);
                                                if ($var3$index < 0)
                                                    break d;
                                                if ($var3$index >= $var5.$nativeString.length)
                                                    break d;
                                                var$2 = var$16 - $var5.$nativeString.charCodeAt($var3$index) | 0;
                                                if (var$2)
                                                    break;
                                                $var3$index = $var3$index + 1 | 0;
                                            }
                                        }
                                    }
                                    if (!var$2)
                                        break;
                                    $var4 = var$2 >= 0 ? $var4.$right : $var4.$left;
                                }
                            }
                            var$2 = ($var4 === null ? null : $var4.$value2).$value;
                            $var5 = $var6.$tagMap;
                            $var4 = new nms_NBTTagInt;
                            $var4.$name = $rt_s(1543);
                            $var4.$data = var$2;
                            ju_HashMap_putImpl($var5, $rt_s(1543), $var4);
                            $var7.$tagType = 10;
                            $var2 = $var7.$tagList;
                            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                            var$14 = $var2.$array.data;
                            $var3$index = $var2.$size0;
                            $var2.$size0 = $var3$index + 1 | 0;
                            var$14[$var3$index] = $var6;
                            $var2.$modCount = $var2.$modCount + 1 | 0;
                        }
                        $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                        jl_RuntimeException__init_($par1NBTTagCompound);
                        $rt_throw($par1NBTTagCompound);
                    }
                    $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                    jl_RuntimeException__init_($par1NBTTagCompound);
                    $rt_throw($par1NBTTagCompound);
                }
                $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
                jl_RuntimeException__init_($par1NBTTagCompound);
                $rt_throw($par1NBTTagCompound);
            }
            $par1NBTTagCompound = new jl_StringIndexOutOfBoundsException;
            jl_RuntimeException__init_($par1NBTTagCompound);
            $rt_throw($par1NBTTagCompound);
        }
        if (var$7 < $var7.$modCount)
            break;
        $var3$index_0 = $var3$index + 1 | 0;
        $var4 = $var7.$get($var3$index);
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(2163);
        $var6 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        $var6.$elementCount = 0;
        var$13 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$14 = var$13.data;
        $var6.$elementData = var$13;
        $var6.$loadFactor = 0.75;
        $var6.$threshold = var$14.length * 0.75 | 0;
        $var5.$tagMap = $var6;
        var$2 = $var4.$posX2;
        $var9 = new nms_NBTTagInt;
        $var9.$name = $rt_s(1525);
        $var9.$data = var$2;
        ju_HashMap_putImpl($var6, $rt_s(1525), $var9);
        var$2 = $var4.$posY2;
        $var6 = $var5.$tagMap;
        $var9 = new nms_NBTTagInt;
        $var9.$name = $rt_s(355);
        $var9.$data = var$2;
        ju_HashMap_putImpl($var6, $rt_s(355), $var9);
        var$2 = $var4.$posZ2;
        $var6 = $var5.$tagMap;
        $var9 = new nms_NBTTagInt;
        $var9.$name = $rt_s(2159);
        $var9.$data = var$2;
        ju_HashMap_putImpl($var6, $rt_s(2159), $var9);
        var$2 = $var4.$insideDirectionX;
        $var6 = $var5.$tagMap;
        $var9 = new nms_NBTTagInt;
        $var9.$name = $rt_s(2160);
        $var9.$data = var$2;
        ju_HashMap_putImpl($var6, $rt_s(2160), $var9);
        var$2 = $var4.$insideDirectionZ;
        $var6 = $var5.$tagMap;
        $var9 = new nms_NBTTagInt;
        $var9.$name = $rt_s(2161);
        $var9.$data = var$2;
        ju_HashMap_putImpl($var6, $rt_s(2161), $var9);
        var$2 = $var4.$lastActivityTimestamp;
        $var9 = $var5.$tagMap;
        $var4 = new nms_NBTTagInt;
        $var4.$name = $rt_s(2162);
        $var4.$data = var$2;
        ju_HashMap_putImpl($var9, $rt_s(2162), $var4);
        $var2.$tagType = 10;
        $var4 = $var2.$tagList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$14 = $var4.$array.data;
        $var3$index = $var4.$size0;
        $var4.$size0 = $var3$index + 1 | 0;
        var$14[$var3$index] = $var5;
        $var4.$modCount = $var4.$modCount + 1 | 0;
        $var3$index = $var3$index_0;
    }
    $par1NBTTagCompound = new ju_ConcurrentModificationException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
};
function nms_WorldChunkManager() {
    let a = this; jl_Object.call(a);
    a.$genBiomes = null;
    a.$biomeIndexLayer = null;
    a.$biomeCache = null;
    a.$biomesToSpawnIn = null;
}
let nms_WorldChunkManager__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new nms_BiomeCache;
    var$2 = new nms_LongHashMap;
    var$2.$hashArray = $rt_createArray(nms_LongHashMapEntry, 16);
    var$2.$capacity0 = 12;
    var$2.$percentUseable = 0.75;
    var$1.$cacheMap = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    var$1.$cache0 = var$2;
    var$1.$chunkManager = $this;
    $this.$biomeCache = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$biomesToSpawnIn = var$1;
    nms_BiomeGenBase_$callClinit();
    var$2 = nms_BiomeGenBase_forest;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$biomesToSpawnIn;
    var$2 = nms_BiomeGenBase_plains;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$biomesToSpawnIn;
    var$2 = nms_BiomeGenBase_taiga;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$biomesToSpawnIn;
    var$2 = nms_BiomeGenBase_taigaHills;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$biomesToSpawnIn;
    var$2 = nms_BiomeGenBase_forestHills;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$biomesToSpawnIn;
    var$2 = nms_BiomeGenBase_jungle;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$biomesToSpawnIn;
    var$2 = nms_BiomeGenBase_jungleHills;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$3 = var$1.$array.data;
    var$4 = var$1.$size0;
    var$1.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$1.$modCount = var$1.$modCount + 1 | 0;
},
nms_WorldChunkManager__init_0 = () => {
    let var_0 = new nms_WorldChunkManager();
    nms_WorldChunkManager__init_(var_0);
    return var_0;
},
nms_WorldChunkManager_getBiomesToSpawnIn = $this => {
    return $this.$biomesToSpawnIn;
},
nms_WorldChunkManager_getBiomeGenAt = ($this, $par1, $par2) => {
    return (nms_BiomeCache_getBiomeCacheBlock($this.$biomeCache, $par1, $par2)).$biomes.data[$par1 & 15 | ($par2 & 15) << 4];
},
nms_WorldChunkManager_getRainfall = ($this, $par1ArrayOfFloat, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $var8;
    nms_IntCache_resetIntCache();
    if (!($par1ArrayOfFloat !== null && $par1ArrayOfFloat.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfFloat = $rt_createFloatArray($rt_imul($par4, $par5));
    $var6 = $this.$biomeIndexLayer.$getInts($par2, $par3, $par4, $par5);
    $var7 = 0;
    $par2 = $rt_imul($par4, $par5);
    while ($var7 < $par2) {
        var$8 = $var6.data;
        nms_BiomeGenBase_$callClinit();
        $var8 = (nms_BiomeGenBase_biomeList.data[var$8[$var7]].$rainfall * 65536.0 | 0) / 65536.0;
        if ($var8 > 1.0)
            $var8 = 1.0;
        $par1ArrayOfFloat.data[$var7] = $var8;
        $var7 = $var7 + 1 | 0;
    }
    return $par1ArrayOfFloat;
},
nms_WorldChunkManager_getTemperatures = ($this, $par1ArrayOfFloat, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, $var8;
    nms_IntCache_resetIntCache();
    if (!($par1ArrayOfFloat !== null && $par1ArrayOfFloat.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfFloat = $rt_createFloatArray($rt_imul($par4, $par5));
    $var6 = $this.$biomeIndexLayer.$getInts($par2, $par3, $par4, $par5);
    $var7 = 0;
    $par2 = $rt_imul($par4, $par5);
    while ($var7 < $par2) {
        var$8 = $var6.data;
        nms_BiomeGenBase_$callClinit();
        $var8 = (nms_BiomeGenBase_biomeList.data[var$8[$var7]].$temperature * 65536.0 | 0) / 65536.0;
        if ($var8 > 1.0)
            $var8 = 1.0;
        $par1ArrayOfFloat.data[$var7] = $var8;
        $var7 = $var7 + 1 | 0;
    }
    return $par1ArrayOfFloat;
},
nms_WorldChunkManager_getBiomesForGeneration = ($this, $par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5) => {
    let $var6, $var7, var$8, var$9;
    nms_IntCache_resetIntCache();
    if (!($par1ArrayOfBiomeGenBase !== null && $par1ArrayOfBiomeGenBase.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfBiomeGenBase = $rt_createArray(nms_BiomeGenBase, $rt_imul($par4, $par5));
    $var6 = $this.$genBiomes.$getInts($par2, $par3, $par4, $par5);
    $var7 = 0;
    $par2 = $rt_imul($par4, $par5);
    while ($var7 < $par2) {
        var$8 = $var6.data;
        var$9 = $par1ArrayOfBiomeGenBase.data;
        nms_BiomeGenBase_$callClinit();
        var$9[$var7] = nms_BiomeGenBase_biomeList.data[var$8[$var7]];
        $var7 = $var7 + 1 | 0;
    }
    return $par1ArrayOfBiomeGenBase;
},
nms_WorldChunkManager_loadBlockGeneratorData = ($this, $par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5) => {
    return $this.$getBiomeGenAt0($par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5, 1);
},
nms_WorldChunkManager_getBiomeGenAt0 = ($this, $par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var8, var$9, var$10;
    nms_IntCache_resetIntCache();
    if (!($par1ArrayOfBiomeGenBase !== null && $par1ArrayOfBiomeGenBase.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfBiomeGenBase = $rt_createArray(nms_BiomeGenBase, $rt_imul($par4, $par5));
    if ($par6 && $par4 == 16 && $par5 == 16 && !($par2 & 15) && !($par3 & 15)) {
        jl_System_fastArraycopy((nms_BiomeCache_getBiomeCacheBlock($this.$biomeCache, $par2, $par3)).$biomes, 0, $par1ArrayOfBiomeGenBase, 0, $rt_imul($par4, $par5));
        return $par1ArrayOfBiomeGenBase;
    }
    $var7 = $this.$biomeIndexLayer.$getInts($par2, $par3, $par4, $par5);
    $var8 = 0;
    $par2 = $rt_imul($par4, $par5);
    while ($var8 < $par2) {
        var$9 = $var7.data;
        var$10 = $par1ArrayOfBiomeGenBase.data;
        nms_BiomeGenBase_$callClinit();
        var$10[$var8] = nms_BiomeGenBase_biomeList.data[var$9[$var8]];
        $var8 = $var8 + 1 | 0;
    }
    return $par1ArrayOfBiomeGenBase;
},
nms_WorldChunkManager_areBiomesViable = ($this, $par1, $par2, $par3, $par4List) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, var$13, $var13, var$15;
    nms_IntCache_resetIntCache();
    $var5 = ($par1 - $par3 | 0) >> 2;
    $var6 = ($par2 - $par3 | 0) >> 2;
    $var7 = ($par1 + $par3 | 0) >> 2;
    $var8 = ($par2 + $par3 | 0) >> 2;
    $var9 = ($var7 - $var5 | 0) + 1 | 0;
    $var10 = ($var8 - $var6 | 0) + 1 | 0;
    $var11 = $this.$genBiomes.$getInts($var5, $var6, $var9, $var10);
    $var12 = 0;
    $par1 = $rt_imul($var9, $var10);
    while ($var12 < $par1) {
        var$13 = $var11.data;
        nms_BiomeGenBase_$callClinit();
        $var13 = nms_BiomeGenBase_biomeList.data[var$13[$var12]];
        $var5 = $par4List.$modCount;
        $var6 = $par4List.$size();
        $var7 = 0;
        a: {
            while (true) {
                if (!($var7 >= $var6 ? 0 : 1)) {
                    $par2 = 0;
                    break a;
                }
                if ($var5 < $par4List.$modCount) {
                    $par4List = new ju_ConcurrentModificationException;
                    $par4List.$suppressionEnabled = 1;
                    $par4List.$writableStackTrace = 1;
                    $rt_throw($par4List);
                }
                $par3 = $var7 + 1 | 0;
                var$15 = $par4List.$get($var7);
                if (var$15 === $var13 ? 1 : var$15 !== null ? var$15.$equals($var13) : $var13 !== null ? 0 : 1)
                    break;
                $var7 = $par3;
            }
            $par2 = 1;
        }
        if (!$par2)
            return 0;
        $var12 = $var12 + 1 | 0;
    }
    return 1;
},
nms_WorldChunkManager_findBiomePosition = ($this, $par1, $par2, $par3, $par4List, $par5Random) => {
    let $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, $var14, $var15, var$16, var$17, $var16, $var17, $var18, var$21, var$22;
    nms_IntCache_resetIntCache();
    $var6 = ($par1 - $par3 | 0) >> 2;
    $var7 = ($par2 - $par3 | 0) >> 2;
    $var8 = ($par1 + $par3 | 0) >> 2;
    $var9 = ($par2 + $par3 | 0) >> 2;
    $var10 = ($var8 - $var6 | 0) + 1 | 0;
    $var11 = ($var9 - $var7 | 0) + 1 | 0;
    $var12 = $this.$genBiomes.$getInts($var6, $var7, $var10, $var11);
    $var13 = null;
    $var14 = 0;
    $var15 = 0;
    var$16 = $rt_imul($var10, $var11);
    while ($var15 < var$16) {
        var$17 = $var12.data;
        $var16 = ($var6 + ($var15 % $var10 | 0) | 0) << 2;
        $var17 = ($var7 + ($var15 / $var10 | 0) | 0) << 2;
        nms_BiomeGenBase_$callClinit();
        $var18 = nms_BiomeGenBase_biomeList.data[var$17[$var15]];
        $par1 = $par4List.$modCount;
        $par2 = $par4List.$size();
        $par3 = 0;
        a: {
            while (true) {
                if (!($par3 >= $par2 ? 0 : 1)) {
                    $par1 = 0;
                    break a;
                }
                if ($par1 < $par4List.$modCount) {
                    $par4List = new ju_ConcurrentModificationException;
                    $par4List.$suppressionEnabled = 1;
                    $par4List.$writableStackTrace = 1;
                    $rt_throw($par4List);
                }
                $var8 = $par3 + 1 | 0;
                var$21 = $par4List.$get($par3);
                if (var$21 === $var18 ? 1 : var$21 !== null ? var$21.$equals($var18) : $var18 !== null ? 0 : 1)
                    break;
                $par3 = $var8;
            }
            $par1 = 1;
        }
        b: {
            if ($par1) {
                if ($var13 !== null) {
                    $par1 = $var14 + 1 | 0;
                    var$22 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par5Random.$seed = var$22;
                    $var8 = Long_lo(Long_shru(var$22, 17));
                    $par2 = $par1 - 1 | 0;
                    if (!($par1 & $par2))
                        $par3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var8)), 31));
                    else
                        while (true) {
                            $par3 = $var8 % $par1 | 0;
                            if ((($var8 - $par3 | 0) + $par2 | 0) >= 0)
                                break;
                            var$22 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par5Random.$seed = var$22;
                            $var8 = Long_lo(Long_shru(var$22, 17));
                        }
                    if ($par3)
                        break b;
                }
                $var13 = new nms_ChunkPosition;
                $var13.$x = $var16;
                $var13.$y = 0;
                $var13.$z = $var17;
                $var14 = $var14 + 1 | 0;
            }
        }
        $var15 = $var15 + 1 | 0;
    }
    return $var13;
},
nms_WorldChunkManager_cleanupCache = $this => {
    nms_BiomeCache_cleanupCache($this.$biomeCache);
};
function nms_WorldChunkManagerHell() {
    let a = this; nms_WorldChunkManager.call(a);
    a.$biomeToUse = null;
    a.$hellTemperature = 0.0;
    a.$rainfall0 = 0.0;
}
let nms_WorldChunkManagerHell_getBiomeGenAt = ($this, $par1, $par2) => {
    return $this.$biomeToUse;
},
nms_WorldChunkManagerHell_getBiomesForGeneration = ($this, $par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5) => {
    let var$6, var$7;
    if (!($par1ArrayOfBiomeGenBase !== null && $par1ArrayOfBiomeGenBase.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfBiomeGenBase = $rt_createArray(nms_BiomeGenBase, $rt_imul($par4, $par5));
    $par2 = 0;
    $par3 = $rt_imul($par4, $par5);
    var$6 = $this.$biomeToUse;
    if ($par2 <= $par3) {
        while ($par2 < $par3) {
            var$7 = $par1ArrayOfBiomeGenBase.data;
            $par4 = $par2 + 1 | 0;
            var$7[$par2] = var$6;
            $par2 = $par4;
        }
        return $par1ArrayOfBiomeGenBase;
    }
    var$6 = new jl_IllegalArgumentException;
    var$6.$suppressionEnabled = 1;
    var$6.$writableStackTrace = 1;
    $rt_throw(var$6);
},
nms_WorldChunkManagerHell_getTemperatures = ($this, $par1ArrayOfFloat, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8;
    if (!($par1ArrayOfFloat !== null && $par1ArrayOfFloat.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfFloat = $rt_createFloatArray($rt_imul($par4, $par5));
    $par2 = 0;
    $par3 = $rt_imul($par4, $par5);
    var$6 = $this.$hellTemperature;
    if ($par2 <= $par3) {
        while ($par2 < $par3) {
            var$7 = $par1ArrayOfFloat.data;
            $par4 = $par2 + 1 | 0;
            var$7[$par2] = var$6;
            $par2 = $par4;
        }
        return $par1ArrayOfFloat;
    }
    var$8 = new jl_IllegalArgumentException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
nms_WorldChunkManagerHell_getRainfall = ($this, $par1ArrayOfFloat, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, var$8;
    if (!($par1ArrayOfFloat !== null && $par1ArrayOfFloat.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfFloat = $rt_createFloatArray($rt_imul($par4, $par5));
    $par2 = 0;
    $par3 = $rt_imul($par4, $par5);
    var$6 = $this.$rainfall0;
    if ($par2 <= $par3) {
        while ($par2 < $par3) {
            var$7 = $par1ArrayOfFloat.data;
            $par4 = $par2 + 1 | 0;
            var$7[$par2] = var$6;
            $par2 = $par4;
        }
        return $par1ArrayOfFloat;
    }
    var$8 = new jl_IllegalArgumentException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    $rt_throw(var$8);
},
nms_WorldChunkManagerHell_loadBlockGeneratorData = ($this, $par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5) => {
    let var$6, var$7;
    if (!($par1ArrayOfBiomeGenBase !== null && $par1ArrayOfBiomeGenBase.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfBiomeGenBase = $rt_createArray(nms_BiomeGenBase, $rt_imul($par4, $par5));
    $par2 = 0;
    $par3 = $rt_imul($par4, $par5);
    var$6 = $this.$biomeToUse;
    if ($par2 <= $par3) {
        while ($par2 < $par3) {
            var$7 = $par1ArrayOfBiomeGenBase.data;
            $par4 = $par2 + 1 | 0;
            var$7[$par2] = var$6;
            $par2 = $par4;
        }
        return $par1ArrayOfBiomeGenBase;
    }
    var$6 = new jl_IllegalArgumentException;
    var$6.$suppressionEnabled = 1;
    var$6.$writableStackTrace = 1;
    $rt_throw(var$6);
},
nms_WorldChunkManagerHell_getBiomeGenAt0 = ($this, $par1ArrayOfBiomeGenBase, $par2, $par3, $par4, $par5, $par6) => {
    let var$7, var$8;
    if (!($par1ArrayOfBiomeGenBase !== null && $par1ArrayOfBiomeGenBase.data.length >= $rt_imul($par4, $par5)))
        $par1ArrayOfBiomeGenBase = $rt_createArray(nms_BiomeGenBase, $rt_imul($par4, $par5));
    $par2 = 0;
    $par3 = $rt_imul($par4, $par5);
    var$7 = $this.$biomeToUse;
    if ($par2 <= $par3) {
        while ($par2 < $par3) {
            var$8 = $par1ArrayOfBiomeGenBase.data;
            $par4 = $par2 + 1 | 0;
            var$8[$par2] = var$7;
            $par2 = $par4;
        }
        return $par1ArrayOfBiomeGenBase;
    }
    var$7 = new jl_IllegalArgumentException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    $rt_throw(var$7);
},
nms_WorldChunkManagerHell_findBiomePosition = ($this, $par1, $par2, $par3, $par4List, $par5Random) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    var$6 = $this.$biomeToUse;
    var$7 = 0;
    var$8 = $par4List.$modCount;
    var$9 = $par4List.$size();
    a: {
        while (true) {
            if (!(var$7 >= var$9 ? 0 : 1)) {
                var$10 = 0;
                break a;
            }
            if (var$8 < $par4List.$modCount)
                break;
            var$11 = var$7 + 1 | 0;
            var$12 = $par4List.$get(var$7);
            if (var$12 === var$6 ? 1 : var$12 !== null ? var$12.$equals(var$6) : var$6 !== null ? 0 : 1) {
                var$10 = 1;
                break a;
            }
            var$7 = var$11;
        }
        $par4List = new ju_ConcurrentModificationException;
        $par4List.$suppressionEnabled = 1;
        $par4List.$writableStackTrace = 1;
        $rt_throw($par4List);
    }
    if (!var$10)
        $par4List = null;
    else {
        $par4List = new nms_ChunkPosition;
        var$8 = $par1 - $par3 | 0;
        var$9 = ($par3 * 2 | 0) + 1 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $par1 = Long_lo(Long_shru(var$13, 17));
        var$11 = var$9 - 1 | 0;
        var$14 = var$9 & var$11;
        if (!var$14)
            var$7 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt($par1)), 31));
        else
            while (true) {
                var$7 = $par1 % var$9 | 0;
                if ((($par1 - var$7 | 0) + var$11 | 0) >= 0)
                    break;
                var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$13;
                $par1 = Long_lo(Long_shru(var$13, 17));
            }
        var$8 = var$8 + var$7 | 0;
        $par2 = $par2 - $par3 | 0;
        var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par5Random.$seed = var$13;
        $par1 = Long_lo(Long_shru(var$13, 17));
        if (!var$14)
            $par3 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt($par1)), 31));
        else
            while (true) {
                $par3 = $par1 % var$9 | 0;
                if ((($par1 - $par3 | 0) + var$11 | 0) >= 0)
                    break;
                var$13 = Long_and(Long_add(Long_mul($par5Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par5Random.$seed = var$13;
                $par1 = Long_lo(Long_shru(var$13, 17));
            }
        $par1 = $par2 + $par3 | 0;
        $par4List.$x = var$8;
        $par4List.$y = 0;
        $par4List.$z = $par1;
    }
    return $par4List;
},
nms_WorldChunkManagerHell_areBiomesViable = ($this, $par1, $par2, $par3, $par4List) => {
    let var$5, var$6, var$7, var$8;
    var$5 = $this.$biomeToUse;
    var$6 = 0;
    $par3 = $par4List.$modCount;
    var$7 = $par4List.$size();
    a: {
        while (true) {
            if (!(var$6 >= var$7 ? 0 : 1)) {
                $par1 = 0;
                break a;
            }
            if ($par3 < $par4List.$modCount) {
                $par4List = new ju_ConcurrentModificationException;
                $par4List.$suppressionEnabled = 1;
                $par4List.$writableStackTrace = 1;
                $rt_throw($par4List);
            }
            $par2 = var$6 + 1 | 0;
            var$8 = $par4List.$get(var$6);
            if (var$8 === var$5 ? 1 : var$8 !== null ? var$8.$equals(var$5) : var$5 !== null ? 0 : 1)
                break;
            var$6 = $par2;
        }
        $par1 = 1;
    }
    return $par1;
};
function nms_BiomeGenBase() {
    let a = this; jl_Object.call(a);
    a.$biomeName = null;
    a.$color = 0;
    a.$topBlock = 0;
    a.$fillerBlock = 0;
    a.$field_76754_C = 0;
    a.$minHeight = 0.0;
    a.$maxHeight = 0.0;
    a.$temperature = 0.0;
    a.$rainfall = 0.0;
    a.$waterColorMultiplier = 0;
    a.$theBiomeDecorator = null;
    a.$spawnableMonsterList = null;
    a.$spawnableCreatureList = null;
    a.$spawnableWaterCreatureList = null;
    a.$spawnableCaveCreatureList = null;
    a.$enableSnow = 0;
    a.$enableRain = 0;
    a.$biomeID = 0;
    a.$worldGeneratorTrees = null;
    a.$worldGeneratorBigTree = null;
    a.$worldGeneratorForest = null;
    a.$worldGeneratorSwamp = null;
}
let nms_BiomeGenBase_biomeList = null,
nms_BiomeGenBase_ocean = null,
nms_BiomeGenBase_plains = null,
nms_BiomeGenBase_desert = null,
nms_BiomeGenBase_extremeHills = null,
nms_BiomeGenBase_forest = null,
nms_BiomeGenBase_taiga = null,
nms_BiomeGenBase_swampland = null,
nms_BiomeGenBase_river = null,
nms_BiomeGenBase_hell = null,
nms_BiomeGenBase_sky = null,
nms_BiomeGenBase_frozenOcean = null,
nms_BiomeGenBase_frozenRiver = null,
nms_BiomeGenBase_icePlains = null,
nms_BiomeGenBase_iceMountains = null,
nms_BiomeGenBase_mushroomIsland = null,
nms_BiomeGenBase_mushroomIslandShore = null,
nms_BiomeGenBase_beach = null,
nms_BiomeGenBase_desertHills = null,
nms_BiomeGenBase_forestHills = null,
nms_BiomeGenBase_taigaHills = null,
nms_BiomeGenBase_extremeHillsEdge = null,
nms_BiomeGenBase_jungle = null,
nms_BiomeGenBase_jungleHills = null,
nms_BiomeGenBase_$callClinit = () => {
    nms_BiomeGenBase_$callClinit = $rt_eraseClinit(nms_BiomeGenBase);
    nms_BiomeGenBase__clinit_();
},
nms_BiomeGenBase__init_ = ($this, $par1) => {
    let var$2, var$3, var$4, var$5;
    nms_BiomeGenBase_$callClinit();
    nms_Block_$callClinit();
    $this.$topBlock = nms_Block_grass.$blockID << 24 >> 24;
    $this.$fillerBlock = nms_Block_dirt.$blockID << 24 >> 24;
    $this.$field_76754_C = 5169201;
    $this.$minHeight = 0.10000000149011612;
    $this.$maxHeight = 0.30000001192092896;
    $this.$temperature = 0.5;
    $this.$rainfall = 0.5;
    $this.$waterColorMultiplier = 16777215;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$spawnableMonsterList = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$spawnableCreatureList = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$spawnableWaterCreatureList = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $this.$spawnableCaveCreatureList = var$2;
    $this.$enableRain = 1;
    var$2 = new nms_WorldGenTrees;
    var$2.$doBlockNotify = 0;
    var$2.$minTreeHeight = 4;
    var$2.$metaWood = 0;
    var$2.$metaLeaves = 0;
    var$2.$vinesGrow = 0;
    $this.$worldGeneratorTrees = var$2;
    $this.$worldGeneratorBigTree = nms_WorldGenBigTree__init_(0);
    var$2 = new nms_WorldGenForest;
    var$2.$doBlockNotify = 0;
    $this.$worldGeneratorForest = var$2;
    var$2 = new nms_WorldGenSwamp;
    var$2.$doBlockNotify = 0;
    $this.$worldGeneratorSwamp = var$2;
    $this.$biomeID = $par1;
    nms_BiomeGenBase_biomeList.data[$par1] = $this;
    $this.$theBiomeDecorator = nms_BiomeDecorator__init_0($this);
    var$2 = $this.$spawnableCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 12;
    var$3.$entityClass = $rt_cls(nms_EntitySheep);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntityPig);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntityChicken);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 8;
    var$3.$entityClass = $rt_cls(nms_EntityCow);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableMonsterList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntitySpider);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableMonsterList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntityZombie);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableMonsterList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntitySkeleton);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableMonsterList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntityCreeper);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableMonsterList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntitySlime);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    $par1 = var$2.$size0;
    var$2.$size0 = $par1 + 1 | 0;
    var$4[$par1] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableMonsterList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 1;
    var$3.$entityClass = $rt_cls(nms_EntityEnderman);
    var$3.$minGroupCount = 1;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableWaterCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntitySquid);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableCaveCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntityBat);
    var$3.$minGroupCount = 8;
    var$3.$maxGroupCount = 8;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$4 = var$2.$array.data;
    var$5 = var$2.$size0;
    var$2.$size0 = var$5 + 1 | 0;
    var$4[var$5] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
},
nms_BiomeGenBase_createBiomeDecorator = $this => {
    return nms_BiomeDecorator__init_0($this);
},
nms_BiomeGenBase_getRandomWorldGenForTrees = ($this, $par1Random) => {
    let var$2, var$3, var$4;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 10 | 0;
        if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return var$4 ? $this.$worldGeneratorTrees : $this.$worldGeneratorBigTree;
},
nms_BiomeGenBase_getRandomWorldGenForGrass = ($this, $par1Random) => {
    let var$2;
    $par1Random = new nms_WorldGenTallGrass;
    nms_Block_$callClinit();
    var$2 = nms_Block_tallGrass.$blockID;
    $par1Random.$doBlockNotify = 0;
    $par1Random.$tallGrassID = var$2;
    $par1Random.$tallGrassMetadata = 1;
    return $par1Random;
},
nms_BiomeGenBase_setEnableSnow = $this => {
    $this.$enableSnow = 1;
    return $this;
},
nms_BiomeGenBase_setBiomeName = ($this, $par1Str) => {
    $this.$biomeName = $par1Str;
    return $this;
},
nms_BiomeGenBase_func_76733_a = ($this, $par1) => {
    $this.$field_76754_C = $par1;
    return $this;
},
nms_BiomeGenBase_getEnableSnow = $this => {
    return $this.$enableSnow;
},
nms_BiomeGenBase_canSpawnLightningBolt = $this => {
    return !$this.$enableSnow ? $this.$enableRain : 0;
},
nms_BiomeGenBase_isHighHumidity = $this => {
    return $this.$rainfall <= 0.8500000238418579 ? 0 : 1;
},
nms_BiomeGenBase_decorate = ($this, $par1World, $par2Random, $par3, $par4) => {
    let var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$theBiomeDecorator;
        if (var$5.$currentWorld !== null) {
            $par2Random = new jl_RuntimeException;
            $par2Random.$suppressionEnabled = 1;
            $par2Random.$writableStackTrace = 1;
            $par2Random.$message = $rt_s(2164);
            $rt_throw($par2Random);
        }
        var$5.$currentWorld = $par1World;
        var$5.$randomGenerator = $par2Random;
        var$5.$chunk_X = $par3;
        var$5.$chunk_Z = $par4;
        $ptr = 1;
    case 1:
        var$5.$decorate();
        if ($rt_suspending()) {
            break main;
        }
        var$5.$currentWorld = null;
        var$5.$randomGenerator = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, var$5, $ptr);
},
nms_BiomeGenBase__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    nms_BiomeGenBase_biomeList = $rt_createArray(nms_BiomeGenBase, 256);
    var$1 = new nms_BiomeGenOcean;
    nms_BiomeGenBase__init_(var$1, 0);
    var$2 = var$1.$spawnableCreatureList;
    var$3 = var$2.$array;
    var$4 = 0;
    var$5 = var$2.$size0;
    var$6 = null;
    if (var$4 > var$5) {
        var$1 = new jl_IllegalArgumentException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    while (var$4 < var$5) {
        var$7 = var$3.data;
        var$8 = var$4 + 1 | 0;
        var$7[var$4] = var$6;
        var$4 = var$8;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$1.$color = 112;
    var$1.$biomeName = $rt_s(2165);
    var$1.$minHeight = (-1.0);
    var$1.$maxHeight = 0.4000000059604645;
    nms_BiomeGenBase_ocean = var$1;
    var$1 = new nms_BiomeGenPlains;
    nms_BiomeGenBase__init_(var$1, 1);
    var$6 = var$1.$spawnableCreatureList;
    var$9 = new nms_SpawnListEntry;
    var$9.$itemWeight = 5;
    var$9.$entityClass = $rt_cls(nms_EntityHorse);
    var$9.$minGroupCount = 2;
    var$9.$maxGroupCount = 6;
    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
    var$3 = var$6.$array.data;
    var$5 = var$6.$size0;
    var$6.$size0 = var$5 + 1 | 0;
    var$3[var$5] = var$9;
    var$6.$modCount = var$6.$modCount + 1 | 0;
    var$2 = var$1.$theBiomeDecorator;
    var$2.$treesPerChunk = (-999);
    var$2.$flowersPerChunk = 4;
    var$2.$grassPerChunk = 10;
    var$1.$color = 9286496;
    var$1.$biomeName = $rt_s(2166);
    var$1.$temperature = 0.800000011920929;
    var$1.$rainfall = 0.4000000059604645;
    nms_BiomeGenBase_plains = var$1;
    var$1 = nms_BiomeGenDesert__init_(2);
    var$1.$color = 16421912;
    var$1.$biomeName = $rt_s(2167);
    var$1.$enableRain = 0;
    var$1.$temperature = 2.0;
    var$1.$rainfall = 0.0;
    var$1.$minHeight = 0.10000000149011612;
    var$1.$maxHeight = 0.20000000298023224;
    nms_BiomeGenBase_desert = var$1;
    var$1 = new nms_BiomeGenHills;
    nms_BiomeGenBase__init_(var$1, 3);
    var$6 = new nms_WorldGenMinable;
    nms_Block_$callClinit();
    var$5 = nms_Block_silverfish.$blockID;
    var$8 = nms_Block_stone.$blockID;
    var$6.$doBlockNotify = 0;
    var$6.$minableBlockId = var$5;
    var$6.$numberOfBlocks = 8;
    var$6.$blockToReplace = var$8;
    var$1.$theWorldGenerator = var$6;
    var$1.$color = 6316128;
    var$1.$biomeName = $rt_s(2168);
    var$1.$minHeight = 0.30000001192092896;
    var$1.$maxHeight = 1.5;
    var$1.$temperature = 0.20000000298023224;
    var$1.$rainfall = 0.30000001192092896;
    nms_BiomeGenBase_extremeHills = var$1;
    var$1 = new nms_BiomeGenForest;
    nms_BiomeGenBase__init_(var$1, 4);
    var$6 = var$1.$spawnableCreatureList;
    var$9 = new nms_SpawnListEntry;
    var$9.$itemWeight = 5;
    var$9.$entityClass = $rt_cls(nms_EntityWolf);
    var$9.$minGroupCount = 4;
    var$9.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
    var$3 = var$6.$array.data;
    var$5 = var$6.$size0;
    var$6.$size0 = var$5 + 1 | 0;
    var$3[var$5] = var$9;
    var$6.$modCount = var$6.$modCount + 1 | 0;
    var$2 = var$1.$theBiomeDecorator;
    var$2.$treesPerChunk = 10;
    var$2.$grassPerChunk = 2;
    var$1.$color = 353825;
    var$1.$biomeName = $rt_s(2169);
    var$1.$field_76754_C = 5159473;
    var$1.$temperature = 0.699999988079071;
    var$1.$rainfall = 0.800000011920929;
    nms_BiomeGenBase_forest = var$1;
    var$1 = new nms_BiomeGenTaiga;
    nms_BiomeGenBase__init_(var$1, 5);
    var$6 = var$1.$spawnableCreatureList;
    var$9 = new nms_SpawnListEntry;
    var$9.$itemWeight = 8;
    var$9.$entityClass = $rt_cls(nms_EntityWolf);
    var$9.$minGroupCount = 4;
    var$9.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
    var$3 = var$6.$array.data;
    var$5 = var$6.$size0;
    var$6.$size0 = var$5 + 1 | 0;
    var$3[var$5] = var$9;
    var$6.$modCount = var$6.$modCount + 1 | 0;
    var$2 = var$1.$theBiomeDecorator;
    var$2.$treesPerChunk = 10;
    var$2.$grassPerChunk = 1;
    var$1.$color = 747097;
    var$1.$biomeName = $rt_s(2170);
    var$1.$field_76754_C = 5159473;
    var$1.$enableSnow = 1;
    var$1.$temperature = 0.05000000074505806;
    var$1.$rainfall = 0.800000011920929;
    var$1.$minHeight = 0.10000000149011612;
    var$1.$maxHeight = 0.4000000059604645;
    nms_BiomeGenBase_taiga = var$1;
    var$1 = nms_BiomeGenSwamp__init_(6);
    var$1.$color = 522674;
    var$1.$biomeName = $rt_s(2171);
    var$1.$field_76754_C = 9154376;
    var$1.$minHeight = (-0.20000000298023224);
    var$1.$maxHeight = 0.10000000149011612;
    var$1.$temperature = 0.800000011920929;
    var$1.$rainfall = 0.8999999761581421;
    nms_BiomeGenBase_swampland = var$1;
    var$1 = new nms_BiomeGenRiver;
    nms_BiomeGenBase__init_(var$1, 7);
    var$2 = var$1.$spawnableCreatureList;
    var$3 = var$2.$array;
    var$4 = 0;
    var$5 = var$2.$size0;
    var$6 = null;
    if (var$4 > var$5) {
        var$1 = new jl_IllegalArgumentException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    while (var$4 < var$5) {
        var$7 = var$3.data;
        var$8 = var$4 + 1 | 0;
        var$7[var$4] = var$6;
        var$4 = var$8;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$1.$color = 255;
    var$1.$biomeName = $rt_s(2172);
    var$1.$minHeight = (-0.5);
    var$1.$maxHeight = 0.0;
    nms_BiomeGenBase_river = var$1;
    var$1 = nms_BiomeGenHell__init_(8);
    var$1.$color = 16711680;
    var$1.$biomeName = $rt_s(2173);
    var$1.$enableRain = 0;
    var$1.$temperature = 2.0;
    var$1.$rainfall = 0.0;
    nms_BiomeGenBase_hell = var$1;
    var$1 = nms_BiomeGenEnd__init_(9);
    var$1.$color = 8421631;
    var$1.$biomeName = $rt_s(2174);
    var$1.$enableRain = 0;
    nms_BiomeGenBase_sky = var$1;
    var$1 = new nms_BiomeGenOcean;
    nms_BiomeGenBase__init_(var$1, 10);
    var$2 = var$1.$spawnableCreatureList;
    var$3 = var$2.$array;
    var$4 = 0;
    var$5 = var$2.$size0;
    var$6 = null;
    if (var$4 > var$5) {
        var$1 = new jl_IllegalArgumentException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    while (var$4 < var$5) {
        var$7 = var$3.data;
        var$8 = var$4 + 1 | 0;
        var$7[var$4] = var$6;
        var$4 = var$8;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$1.$color = 9474208;
    var$1.$biomeName = $rt_s(2175);
    var$1.$enableSnow = 1;
    var$1.$minHeight = (-1.0);
    var$1.$maxHeight = 0.5;
    var$1.$temperature = 0.0;
    var$1.$rainfall = 0.5;
    nms_BiomeGenBase_frozenOcean = var$1;
    var$1 = new nms_BiomeGenRiver;
    nms_BiomeGenBase__init_(var$1, 11);
    var$2 = var$1.$spawnableCreatureList;
    var$3 = var$2.$array;
    var$4 = 0;
    var$5 = var$2.$size0;
    var$6 = null;
    if (var$4 > var$5) {
        var$1 = new jl_IllegalArgumentException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    while (var$4 < var$5) {
        var$7 = var$3.data;
        var$8 = var$4 + 1 | 0;
        var$7[var$4] = var$6;
        var$4 = var$8;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$1.$color = 10526975;
    var$1.$biomeName = $rt_s(2176);
    var$1.$enableSnow = 1;
    var$1.$minHeight = (-0.5);
    var$1.$maxHeight = 0.0;
    var$1.$temperature = 0.0;
    var$1.$rainfall = 0.5;
    nms_BiomeGenBase_frozenRiver = var$1;
    var$1 = new nms_BiomeGenSnow;
    nms_BiomeGenBase__init_(var$1, 12);
    var$1.$color = 16777215;
    var$1.$biomeName = $rt_s(2177);
    var$1.$enableSnow = 1;
    var$1.$temperature = 0.0;
    var$1.$rainfall = 0.5;
    nms_BiomeGenBase_icePlains = var$1;
    var$1 = new nms_BiomeGenSnow;
    nms_BiomeGenBase__init_(var$1, 13);
    var$1.$color = 10526880;
    var$1.$biomeName = $rt_s(2178);
    var$1.$enableSnow = 1;
    var$1.$minHeight = 0.30000001192092896;
    var$1.$maxHeight = 1.2999999523162842;
    var$1.$temperature = 0.0;
    var$1.$rainfall = 0.5;
    nms_BiomeGenBase_iceMountains = var$1;
    var$1 = nms_BiomeGenMushroomIsland__init_(14);
    var$1.$color = 16711935;
    var$1.$biomeName = $rt_s(2179);
    var$1.$temperature = 0.8999999761581421;
    var$1.$rainfall = 1.0;
    var$1.$minHeight = 0.20000000298023224;
    var$1.$maxHeight = 1.0;
    nms_BiomeGenBase_mushroomIsland = var$1;
    var$1 = nms_BiomeGenMushroomIsland__init_(15);
    var$1.$color = 10486015;
    var$1.$biomeName = $rt_s(2180);
    var$1.$temperature = 0.8999999761581421;
    var$1.$rainfall = 1.0;
    var$1.$minHeight = (-1.0);
    var$1.$maxHeight = 0.10000000149011612;
    nms_BiomeGenBase_mushroomIslandShore = var$1;
    var$1 = nms_BiomeGenBeach__init_0(16);
    var$1.$color = 16440917;
    var$1.$biomeName = $rt_s(2181);
    var$1.$temperature = 0.800000011920929;
    var$1.$rainfall = 0.4000000059604645;
    var$1.$minHeight = 0.0;
    var$1.$maxHeight = 0.10000000149011612;
    nms_BiomeGenBase_beach = var$1;
    var$1 = nms_BiomeGenDesert__init_(17);
    var$1.$color = 13786898;
    var$1.$biomeName = $rt_s(2182);
    var$1.$enableRain = 0;
    var$1.$temperature = 2.0;
    var$1.$rainfall = 0.0;
    var$1.$minHeight = 0.30000001192092896;
    var$1.$maxHeight = 0.800000011920929;
    nms_BiomeGenBase_desertHills = var$1;
    var$1 = new nms_BiomeGenForest;
    nms_BiomeGenBase__init_(var$1, 18);
    var$6 = var$1.$spawnableCreatureList;
    var$9 = new nms_SpawnListEntry;
    var$9.$itemWeight = 5;
    var$9.$entityClass = $rt_cls(nms_EntityWolf);
    var$9.$minGroupCount = 4;
    var$9.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
    var$3 = var$6.$array.data;
    var$5 = var$6.$size0;
    var$6.$size0 = var$5 + 1 | 0;
    var$3[var$5] = var$9;
    var$6.$modCount = var$6.$modCount + 1 | 0;
    var$2 = var$1.$theBiomeDecorator;
    var$2.$treesPerChunk = 10;
    var$2.$grassPerChunk = 2;
    var$1.$color = 2250012;
    var$1.$biomeName = $rt_s(2183);
    var$1.$field_76754_C = 5159473;
    var$1.$temperature = 0.699999988079071;
    var$1.$rainfall = 0.800000011920929;
    var$1.$minHeight = 0.30000001192092896;
    var$1.$maxHeight = 0.699999988079071;
    nms_BiomeGenBase_forestHills = var$1;
    var$1 = new nms_BiomeGenTaiga;
    nms_BiomeGenBase__init_(var$1, 19);
    var$6 = var$1.$spawnableCreatureList;
    var$9 = new nms_SpawnListEntry;
    var$9.$itemWeight = 8;
    var$9.$entityClass = $rt_cls(nms_EntityWolf);
    var$9.$minGroupCount = 4;
    var$9.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
    var$3 = var$6.$array.data;
    var$5 = var$6.$size0;
    var$6.$size0 = var$5 + 1 | 0;
    var$3[var$5] = var$9;
    var$6.$modCount = var$6.$modCount + 1 | 0;
    var$2 = var$1.$theBiomeDecorator;
    var$2.$treesPerChunk = 10;
    var$2.$grassPerChunk = 1;
    var$1.$color = 1456435;
    var$1.$biomeName = $rt_s(2184);
    var$1.$enableSnow = 1;
    var$1.$field_76754_C = 5159473;
    var$1.$temperature = 0.05000000074505806;
    var$1.$rainfall = 0.800000011920929;
    var$1.$minHeight = 0.30000001192092896;
    var$1.$maxHeight = 0.800000011920929;
    nms_BiomeGenBase_taigaHills = var$1;
    var$1 = new nms_BiomeGenHills;
    nms_BiomeGenBase__init_(var$1, 20);
    var$6 = new nms_WorldGenMinable;
    var$5 = nms_Block_silverfish.$blockID;
    var$8 = nms_Block_stone.$blockID;
    var$6.$doBlockNotify = 0;
    var$6.$minableBlockId = var$5;
    var$6.$numberOfBlocks = 8;
    var$6.$blockToReplace = var$8;
    var$1.$theWorldGenerator = var$6;
    var$1.$color = 7501978;
    var$1.$biomeName = $rt_s(2185);
    var$1.$minHeight = 0.20000000298023224;
    var$1.$maxHeight = 0.800000011920929;
    var$1.$temperature = 0.20000000298023224;
    var$1.$rainfall = 0.30000001192092896;
    nms_BiomeGenBase_extremeHillsEdge = var$1;
    var$1 = nms_BiomeGenJungle__init_(21);
    var$1.$color = 5470985;
    var$1.$biomeName = $rt_s(2186);
    var$1.$field_76754_C = 5470985;
    var$1.$temperature = 1.2000000476837158;
    var$1.$rainfall = 0.8999999761581421;
    var$1.$minHeight = 0.20000000298023224;
    var$1.$maxHeight = 0.4000000059604645;
    nms_BiomeGenBase_jungle = var$1;
    var$1 = nms_BiomeGenJungle__init_(22);
    var$1.$color = 2900485;
    var$1.$biomeName = $rt_s(2187);
    var$1.$field_76754_C = 5470985;
    var$1.$temperature = 1.2000000476837158;
    var$1.$rainfall = 0.8999999761581421;
    var$1.$minHeight = 1.7999999523162842;
    var$1.$maxHeight = 0.5;
    nms_BiomeGenBase_jungleHills = var$1;
};
function nms_FlatGeneratorInfo() {
    let a = this; jl_Object.call(a);
    a.$flatLayers = null;
    a.$worldFeatures = null;
    a.$biomeToUse0 = 0;
}
let nms_FlatGeneratorInfo__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$flatLayers = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$worldFeatures = var$1;
},
nms_FlatGeneratorInfo__init_0 = () => {
    let var_0 = new nms_FlatGeneratorInfo();
    nms_FlatGeneratorInfo__init_(var_0);
    return var_0;
},
nms_FlatGeneratorInfo_func_82646_a = ($par0Str, $par1) => {
    let $var2, $var3, $var5, var$6, $var4, $var9, $$je;
    $var2 = (jur_Pattern_split(jur_Pattern_compile($rt_s(349), 0), $par0Str, 2)).data;
    $var3 = 1;
    $var5 = 0;
    var$6 = $var2.length;
    if (var$6 == 2)
        a: {
            try {
                $var3 = jl_Integer_parseInt($var2[0]);
                if (($par1 + $var3 | 0) >= 256)
                    $var3 = 256 - $par1 | 0;
                if ($var3 >= 0)
                    break a;
                $var3 = 0;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
            return null;
        }
    b: {
        try {
            $var2 = (jl_String_split($var2[var$6 - 1 | 0], $rt_s(1639), 2)).data;
            $var4 = jl_Integer_parseInt($var2[0]);
            if ($var2.length > 1)
                $var5 = jl_Integer_parseInt($var2[1]);
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var4] === null) {
                $var4 = 0;
                $var5 = 0;
            }
            if ($var5 >= 0 && $var5 <= 15)
                break b;
            $var5 = 0;
            break b;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_Throwable) {
            } else {
                throw $$e;
            }
        }
        return null;
    }
    $var9 = new nms_FlatLayerInfo;
    $var9.$layerCount = 1;
    $var9.$layerCount = $var3;
    $var9.$layerFillBlock = $var4;
    $var9.$layerFillBlockMeta = $var5;
    $var9.$layerMinimumY = $par1;
    return $var9;
},
nms_FlatGeneratorInfo_func_82652_b = $par0Str => {
    let $var1, var$3, $var3, $var5, $var6, $var8, var$8, var$9;
    if ($par0Str !== null && $par0Str.$nativeString.length >= 1) {
        $var1 = new ju_ArrayList;
        $var1.$array = $rt_createArray(jl_Object, 10);
        var$3 = (jur_Pattern_split(jur_Pattern_compile($rt_s(133), 0), $par0Str, 0)).data;
        $var3 = 0;
        $var5 = var$3.length;
        $var6 = 0;
        while ($var6 < $var5) {
            $var8 = nms_FlatGeneratorInfo_func_82646_a(var$3[$var6], $var3);
            if ($var8 === null)
                return null;
            ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
            var$8 = $var1.$array.data;
            var$9 = $var1.$size0;
            $var1.$size0 = var$9 + 1 | 0;
            var$8[var$9] = $var8;
            $var1.$modCount = $var1.$modCount + 1 | 0;
            $var3 = $var3 + $var8.$layerCount | 0;
            $var6 = $var6 + 1 | 0;
        }
        return $var1;
    }
    return null;
},
nms_FlatGeneratorInfo_createFlatGeneratorFromString = $par0Str => {
    let $var1, $var9, $var4, $var2, $var10, $var3, $var5, $var11, $var6, var$11, var$12, $var16, $var13, var$15, $var12, $var15, $$je;
    if ($par0Str === null)
        return nms_FlatGeneratorInfo_getDefaultFlatGenerator();
    $var1 = (jur_Pattern_split(jur_Pattern_compile($rt_s(2188), 0), $par0Str, (-1))).data;
    $var9 = $var1.length;
    $var4 = $rt_compare($var9, 1);
    if (!$var4)
        $var2 = 0;
    else {
        $par0Str = $var1[0];
        $var10 = 0;
        a: {
            try {
                $var2 = jl_Integer_parseInt($par0Str);
                $var10 = $var2;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Throwable) {
                } else {
                    throw $$e;
                }
            }
            $var2 = $var10;
        }
    }
    if ($var2 >= 0 && $var2 <= 2) {
        $var3 = nms_FlatGeneratorInfo__init_0();
        $var4 = $var4 ? 1 : 0;
        $var10 = $var4 + 1 | 0;
        $var5 = nms_FlatGeneratorInfo_func_82652_b($var1[$var4]);
        if ($var5 !== null && !($var5.$size0 ? 0 : 1)) {
            $var11 = $var3.$flatLayers;
            $var6 = 0;
            var$11 = $var5.$modCount;
            var$12 = $var5.$size();
            while (true) {
                if (!($var6 >= var$12 ? 0 : 1)) {
                    $var6 = 0;
                    $par0Str = $var3.$flatLayers;
                    $var4 = 0;
                    var$11 = $par0Str.$modCount;
                    var$12 = $par0Str.$size();
                    while (true) {
                        if (!($var4 >= var$12 ? 0 : 1)) {
                            nms_BiomeGenBase_$callClinit();
                            $var6 = nms_BiomeGenBase_plains.$biomeID;
                            if ($var2 <= 0) {
                                $var4 = $var10;
                                $var10 = $var6;
                            } else if ($var9 <= $var10) {
                                $var4 = $var10;
                                $var10 = $var6;
                            } else {
                                $var4 = $var10 + 1 | 0;
                                $par0Str = $var1[$var10];
                                b: {
                                    try {
                                        $var10 = jl_Integer_parseInt($par0Str);
                                        $var6 = $var10;
                                        break b;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Throwable) {
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    $var10 = $var6;
                                }
                            }
                            $var3.$biomeToUse0 = $var10;
                            if ($var2 > 0 && $var9 > $var4) {
                                $par0Str = $var1[$var4];
                                $var5 = $par0Str.$nativeString.toLowerCase();
                                if ($var5 !== $par0Str.$nativeString)
                                    $par0Str = jl_String__init_0($var5);
                                $var1 = (jur_Pattern_split(jur_Pattern_compile($rt_s(133), 0), $par0Str, 0)).data;
                                $var9 = $var1.length;
                                $var10 = 0;
                                while ($var10 < $var9) {
                                    c: {
                                        $var11 = $var1[$var10];
                                        $var16 = (jur_Pattern_split(jur_Pattern_compile($rt_s(2189), 0), $var11, 2)).data;
                                        $var13 = new ju_HashMap;
                                        $var4 = ju_HashMap_calculateCapacity(16);
                                        $var13.$elementCount = 0;
                                        var$15 = $rt_createArray(ju_HashMap$HashEntry, $var4);
                                        $var12 = var$15.data;
                                        $var13.$elementData = var$15;
                                        $var13.$loadFactor = 0.75;
                                        $var13.$threshold = $var12.length * 0.75 | 0;
                                        if ($var16[0].$nativeString.length > 0) {
                                            ju_HashMap_putImpl($var3.$worldFeatures, $var16[0], $var13);
                                            if ($var16.length > 1 && jl_String_endsWith($var16[1], $rt_s(391)) && $var16[1].$nativeString.length > 1) {
                                                $par0Str = jl_String_substring($var16[1], 0, $var16[1].$nativeString.length - 1 | 0);
                                                $var12 = jur_Pattern_split(jur_Pattern_compile($rt_s(260), 0), $par0Str, 0);
                                                $var15 = 0;
                                                while (true) {
                                                    $var16 = $var12.data;
                                                    if ($var15 >= $var16.length)
                                                        break c;
                                                    $par0Str = $var16[$var15];
                                                    $var16 = (jur_Pattern_split(jur_Pattern_compile($rt_s(131), 0), $par0Str, 2)).data;
                                                    if ($var16.length == 2)
                                                        ju_HashMap_putImpl($var13, $var16[0], $var16[1]);
                                                    $var15 = $var15 + 1 | 0;
                                                }
                                            }
                                        }
                                    }
                                    $var10 = $var10 + 1 | 0;
                                }
                            } else {
                                $var11 = $var3.$worldFeatures;
                                $var5 = new ju_HashMap;
                                $var9 = ju_HashMap_calculateCapacity(16);
                                $var5.$elementCount = 0;
                                $var16 = $rt_createArray(ju_HashMap$HashEntry, $var9);
                                $var1 = $var16.data;
                                $var5.$elementData = $var16;
                                $var5.$loadFactor = 0.75;
                                $var5.$threshold = $var1.length * 0.75 | 0;
                                ju_HashMap_putImpl($var11, $rt_s(2190), $var5);
                            }
                            return $var3;
                        }
                        if (var$11 < $par0Str.$modCount)
                            break;
                        $var15 = $var4 + 1 | 0;
                        $var5 = $par0Str.$get($var4);
                        $var5.$layerMinimumY = $var6;
                        $var6 = $var6 + $var5.$layerCount | 0;
                        $var4 = $var15;
                    }
                    $par0Str = new ju_ConcurrentModificationException;
                    $par0Str.$suppressionEnabled = 1;
                    $par0Str.$writableStackTrace = 1;
                    $rt_throw($par0Str);
                }
                if (var$11 < $var5.$modCount)
                    break;
                $var15 = $var6 + 1 | 0;
                $par0Str = $var5.$get($var6);
                ju_ArrayList_ensureCapacity($var11, $var11.$size0 + 1 | 0);
                $var16 = $var11.$array.data;
                $var4 = $var11.$size0;
                $var11.$size0 = $var4 + 1 | 0;
                $var16[$var4] = $par0Str;
                $var11.$modCount = $var11.$modCount + 1 | 0;
                $var6 = $var15;
            }
            $par0Str = new ju_ConcurrentModificationException;
            $par0Str.$suppressionEnabled = 1;
            $par0Str.$writableStackTrace = 1;
            $rt_throw($par0Str);
        }
        return nms_FlatGeneratorInfo_getDefaultFlatGenerator();
    }
    return nms_FlatGeneratorInfo_getDefaultFlatGenerator();
},
nms_FlatGeneratorInfo_getDefaultFlatGenerator = () => {
    let $var0, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    $var0 = nms_FlatGeneratorInfo__init_0();
    nms_BiomeGenBase_$callClinit();
    $var0.$biomeToUse0 = nms_BiomeGenBase_plains.$biomeID;
    var$2 = $var0.$flatLayers;
    var$3 = new nms_FlatLayerInfo;
    nms_Block_$callClinit();
    var$4 = nms_Block_bedrock.$blockID;
    var$3.$layerCount = 1;
    var$3.$layerCount = 1;
    var$3.$layerFillBlock = var$4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$5 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$5[var$4] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $var0.$flatLayers;
    var$6 = new nms_FlatLayerInfo;
    var$4 = nms_Block_dirt.$blockID;
    var$6.$layerCount = 1;
    var$6.$layerCount = 2;
    var$6.$layerFillBlock = var$4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$5 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$5[var$4] = var$6;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $var0.$flatLayers;
    var$6 = new nms_FlatLayerInfo;
    var$4 = nms_Block_grass.$blockID;
    var$6.$layerCount = 1;
    var$6.$layerCount = 1;
    var$6.$layerFillBlock = var$4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$5 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$5[var$4] = var$6;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$7 = 0;
    var$6 = $var0.$flatLayers;
    var$8 = 0;
    var$9 = var$6.$modCount;
    var$10 = var$6.$size();
    while (true) {
        if (!(var$8 >= var$10 ? 0 : 1)) {
            var$2 = $var0.$worldFeatures;
            var$3 = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            var$3.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$5 = var$11.data;
            var$3.$elementData = var$11;
            var$3.$loadFactor = 0.75;
            var$3.$threshold = var$5.length * 0.75 | 0;
            ju_HashMap_putImpl(var$2, $rt_s(2190), var$3);
            return $var0;
        }
        if (var$9 < var$6.$modCount)
            break;
        var$12 = var$8 + 1 | 0;
        var$3 = var$6.$get(var$8);
        var$3.$layerMinimumY = var$7;
        var$7 = var$7 + var$3.$layerCount | 0;
        var$8 = var$12;
    }
    $var0 = new ju_ConcurrentModificationException;
    $var0.$suppressionEnabled = 1;
    $var0.$writableStackTrace = 1;
    $rt_throw($var0);
},
juf_Consumer = $rt_classWithoutFields(0);
function jusi_StreamOverSpliterator$AdapterAction() {
    let a = this; jl_Object.call(a);
    a.$consumer = null;
    a.$wantsMore = 0;
}
let jn_BufferUnderflowException = $rt_classWithoutFields(jl_RuntimeException),
jn_BufferUnderflowException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jn_BufferUnderflowException__init_0 = () => {
    let var_0 = new jn_BufferUnderflowException();
    jn_BufferUnderflowException__init_(var_0);
    return var_0;
};
function jur_AbstractCharClass$LazyJavaLowerCase$1() {
    jur_AbstractCharClass.call(this);
    this.$this$038 = null;
}
let jur_AbstractCharClass$LazyJavaLowerCase$1_contains = ($this, $ch) => {
    return jl_Character_getType($ch) != 2 ? 0 : 1;
};
function jur_AbstractCharClass$LazyJavaUpperCase$1() {
    jur_AbstractCharClass.call(this);
    this.$this$027 = null;
}
let jur_AbstractCharClass$LazyJavaUpperCase$1_contains = ($this, $ch) => {
    return jl_Character_getType($ch) != 1 ? 0 : 1;
};
function jur_AbstractCharClass$LazyJavaWhitespace$1() {
    jur_AbstractCharClass.call(this);
    this.$this$037 = null;
}
let jur_AbstractCharClass$LazyJavaWhitespace$1_contains = ($this, $ch) => {
    a: {
        switch ($ch) {
            case 9:
            case 10:
            case 11:
            case 12:
            case 13:
            case 28:
            case 29:
            case 30:
            case 31:
                break;
            case 160:
            case 8199:
            case 8239:
                $ch = 0;
                break a;
            default:
                b: {
                    switch (jl_Character_getType($ch)) {
                        case 12:
                        case 13:
                        case 14:
                            break;
                        default:
                            $ch = 0;
                            break b;
                    }
                    $ch = 1;
                }
                break a;
        }
        $ch = 1;
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaMirrored$1() {
    jur_AbstractCharClass.call(this);
    this.$this$018 = null;
}
let jur_AbstractCharClass$LazyJavaMirrored$1_contains = ($this, $ch) => {
    return 0;
};
function jur_AbstractCharClass$LazyJavaDefined$1() {
    jur_AbstractCharClass.call(this);
    this.$this$023 = null;
}
let jur_AbstractCharClass$LazyJavaDefined$1_contains = ($this, $ch) => {
    return !jl_Character_getType($ch) ? 0 : 1;
};
function jur_AbstractCharClass$LazyJavaDigit$1() {
    jur_AbstractCharClass.call(this);
    this.$this$028 = null;
}
let jur_AbstractCharClass$LazyJavaDigit$1_contains = ($this, $ch) => {
    return jl_Character_getType($ch) != 9 ? 0 : 1;
};
function jur_AbstractCharClass$LazyJavaIdentifierIgnorable$1() {
    jur_AbstractCharClass.call(this);
    this.$this$033 = null;
}
let jur_AbstractCharClass$LazyJavaIdentifierIgnorable$1_contains = ($this, $ch) => {
    return jl_Character_isIdentifierIgnorable($ch);
};
function jur_AbstractCharClass$LazyJavaISOControl$1() {
    jur_AbstractCharClass.call(this);
    this.$this$020 = null;
}
let jur_AbstractCharClass$LazyJavaISOControl$1_contains = ($this, $ch) => {
    a: {
        b: {
            if (!($ch >= 0 && $ch <= 31)) {
                if ($ch < 127)
                    break b;
                if ($ch > 159)
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = 0;
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaJavaIdentifierPart$1() {
    jur_AbstractCharClass.call(this);
    this.$this$014 = null;
}
let jur_AbstractCharClass$LazyJavaJavaIdentifierPart$1_contains = ($this, $ch) => {
    a: {
        b: {
            switch (jl_Character_getType($ch)) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 8:
                case 9:
                case 10:
                case 23:
                case 26:
                    break;
                case 7:
                case 11:
                case 12:
                case 13:
                case 14:
                case 15:
                case 16:
                case 17:
                case 18:
                case 19:
                case 20:
                case 21:
                case 22:
                case 24:
                case 25:
                    break b;
                default:
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = jl_Character_isIdentifierIgnorable($ch);
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaJavaIdentifierStart$1() {
    jur_AbstractCharClass.call(this);
    this.$this$032 = null;
}
let jur_AbstractCharClass$LazyJavaJavaIdentifierStart$1_contains = ($this, $ch) => {
    a: {
        b: {
            switch (jl_Character_getType($ch)) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 10:
                case 23:
                case 26:
                    break;
                case 6:
                case 7:
                case 8:
                case 9:
                case 11:
                case 12:
                case 13:
                case 14:
                case 15:
                case 16:
                case 17:
                case 18:
                case 19:
                case 20:
                case 21:
                case 22:
                case 24:
                case 25:
                    break b;
                default:
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = jl_Character_isIdentifierIgnorable($ch);
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaLetter$1() {
    jur_AbstractCharClass.call(this);
    this.$this$022 = null;
}
let jur_AbstractCharClass$LazyJavaLetter$1_contains = ($this, $ch) => {
    a: {
        switch (jl_Character_getType($ch)) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                break;
            default:
                $ch = 0;
                break a;
        }
        $ch = 1;
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaLetterOrDigit$1() {
    jur_AbstractCharClass.call(this);
    this.$this$040 = null;
}
let jur_AbstractCharClass$LazyJavaLetterOrDigit$1_contains = ($this, $ch) => {
    a: {
        b: {
            switch (jl_Character_getType($ch)) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 9:
                    break;
                case 6:
                case 7:
                case 8:
                    break b;
                default:
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = 0;
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaSpaceChar$1() {
    jur_AbstractCharClass.call(this);
    this.$this$019 = null;
}
let jur_AbstractCharClass$LazyJavaSpaceChar$1_contains = ($this, $ch) => {
    a: {
        switch (jl_Character_getType($ch)) {
            case 12:
            case 13:
            case 14:
                break;
            default:
                $ch = 0;
                break a;
        }
        $ch = 1;
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaTitleCase$1() {
    jur_AbstractCharClass.call(this);
    this.$this$039 = null;
}
let jur_AbstractCharClass$LazyJavaTitleCase$1_contains = ($this, $ch) => {
    return jl_Character_getType($ch) != 3 ? 0 : 1;
};
function jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart$1() {
    jur_AbstractCharClass.call(this);
    this.$this$015 = null;
}
let jur_AbstractCharClass$LazyJavaUnicodeIdentifierPart$1_contains = ($this, $ch) => {
    a: {
        b: {
            switch (jl_Character_getType($ch)) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 8:
                case 9:
                case 10:
                case 23:
                    break;
                case 7:
                case 11:
                case 12:
                case 13:
                case 14:
                case 15:
                case 16:
                case 17:
                case 18:
                case 19:
                case 20:
                case 21:
                case 22:
                    break b;
                default:
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = jl_Character_isIdentifierIgnorable($ch);
    }
    return $ch;
};
function jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart$1() {
    jur_AbstractCharClass.call(this);
    this.$this$043 = null;
}
let jur_AbstractCharClass$LazyJavaUnicodeIdentifierStart$1_contains = ($this, $ch) => {
    a: {
        b: {
            switch (jl_Character_getType($ch)) {
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 10:
                    break;
                case 6:
                case 7:
                case 8:
                case 9:
                    break b;
                default:
                    break b;
            }
            $ch = 1;
            break a;
        }
        $ch = jl_Character_isIdentifierIgnorable($ch);
    }
    return $ch;
};
function jur_UnicodeCategory() {
    jur_AbstractCharClass.call(this);
    this.$category = 0;
}
let jur_UnicodeCategory_contains = ($this, $ch) => {
    return $this.$alt ^ ($this.$category != jl_Character_getType($ch & 65535) ? 0 : 1);
},
jur_UnicodeCategoryScope = $rt_classWithoutFields(jur_UnicodeCategory),
jur_UnicodeCategoryScope_contains = ($this, $ch) => {
    return $this.$alt ^ (!($this.$category >> jl_Character_getType($ch & 65535) & 1) ? 0 : 1);
},
nms_IUpdatePlayerListBox = $rt_classWithoutFields(0);
function nles_BooleanResult() {
    jl_Object.call(this);
    this.$bool = 0;
}
let nles_BooleanResult_TRUE = null,
nles_BooleanResult_FALSE = null,
nles_BooleanResult__clinit_ = () => {
    let var$1;
    var$1 = new nles_BooleanResult;
    var$1.$bool = 1;
    nles_BooleanResult_TRUE = var$1;
    var$1 = new nles_BooleanResult;
    var$1.$bool = 0;
    nles_BooleanResult_FALSE = var$1;
},
jt_DecimalFormat$PerMillField = $rt_classWithoutFields(),
jt_DecimalFormat$PerMillField__init_ = $this => {
    return;
},
jt_DecimalFormat$PerMillField__init_0 = () => {
    let var_0 = new jt_DecimalFormat$PerMillField();
    jt_DecimalFormat$PerMillField__init_(var_0);
    return var_0;
},
jt_DecimalFormat$PerMillField_render = ($this, $format, $buffer) => {
    let var$3, var$4;
    var$3 = $format.$symbols.$perMill;
    var$4 = $buffer.$length0;
    jl_AbstractStringBuilder_insertSpace($buffer, var$4, var$4 + 1 | 0);
    $buffer.$buffer.data[var$4] = var$3;
},
jt_DecimalFormat$PerMillField_equals = ($this, $obj) => {
    return $obj instanceof jt_DecimalFormat$PerMillField;
},
jt_DecimalFormat$PerMillField_hashCode = $this => {
    return 2;
},
jt_DecimalFormat$CurrencyField = $rt_classWithoutFields(),
jt_DecimalFormat$CurrencyField__init_ = $this => {
    return;
},
jt_DecimalFormat$CurrencyField__init_0 = () => {
    let var_0 = new jt_DecimalFormat$CurrencyField();
    jt_DecimalFormat$CurrencyField__init_(var_0);
    return var_0;
},
jt_DecimalFormat$CurrencyField_render = ($this, $format, $buffer) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$3 = $format.$currency;
    if (var$3 === null) {
        var$4 = $buffer.$length0;
        jl_AbstractStringBuilder_insertSpace($buffer, var$4, var$4 + 1 | 0);
        $buffer.$buffer.data[var$4] = 164;
    } else {
        $format = $format.$symbols.$locale1;
        var$5 = $format.$languageCode;
        var$6 = $format.$countryCode;
        var$7 = (var$3.$resource.code !== null ? $rt_str(var$3.$resource.code) : null);
        if (var$6.$nativeString.length ? 0 : 1)
            var$6 = var$5;
        else {
            $format = new jl_StringBuilder;
            $format.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert($format, $format.$length0, var$5 === null ? $rt_s(1) : jl_String_toString(var$5));
            var$4 = $format.$length0;
            jl_AbstractStringBuilder_insertSpace($format, var$4, var$4 + 1 | 0);
            $format.$buffer.data[var$4] = 45;
            jl_StringBuilder_insert($format, $format.$length0, jl_String_toString(var$6));
            var$6 = new jl_String;
            var$8 = $format.$buffer;
            var$9 = var$8.data;
            var$10 = $format.$length0;
            var$11 = var$9.length;
            if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0))
                var$6.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
            else {
                $format = new jl_IndexOutOfBoundsException;
                jl_RuntimeException__init_($format);
                $rt_throw($format);
            }
        }
        if (otciu_CLDRHelper_$$metadata$$21 === null)
            otciu_CLDRHelper_$$metadata$$21 = otciu_CLDRHelper_getCurrencyMap$$create();
        a: {
            var$12 = otciu_CLDRHelper_$$metadata$$21;
            if (var$12.hasOwnProperty($rt_ustr(var$6))) {
                $format = var$12[$rt_ustr(var$6)];
                if ($format.hasOwnProperty($rt_ustr(var$7))) {
                    $format = $format[$rt_ustr(var$7)];
                    break a;
                }
            }
            if (var$12.hasOwnProperty($rt_ustr(var$5))) {
                $format = var$12[$rt_ustr(var$5)];
                if ($format.hasOwnProperty($rt_ustr(var$7))) {
                    $format = $format[$rt_ustr(var$7)];
                    break a;
                }
            }
            $format = null;
        }
        $format = $format !== null && !(($format.symbol !== null ? $rt_str($format.symbol) : null).$nativeString.length ? 0 : 1) ? ($format.symbol !== null ? $rt_str($format.symbol) : null) : (var$3.$resource.code !== null ? $rt_str(var$3.$resource.code) : null);
        jl_AbstractStringBuilder_insert($buffer, $buffer.$length0, $format);
    }
},
jt_DecimalFormat$CurrencyField_equals = ($this, $obj) => {
    return $obj instanceof jt_DecimalFormat$CurrencyField;
},
jt_DecimalFormat$CurrencyField_hashCode = $this => {
    return 0;
},
jt_DecimalFormat$PercentField = $rt_classWithoutFields(),
jt_DecimalFormat$PercentField__init_ = $this => {
    return;
},
jt_DecimalFormat$PercentField__init_0 = () => {
    let var_0 = new jt_DecimalFormat$PercentField();
    jt_DecimalFormat$PercentField__init_(var_0);
    return var_0;
},
jt_DecimalFormat$PercentField_render = ($this, $format, $buffer) => {
    let var$3, var$4;
    var$3 = $format.$symbols.$percent;
    var$4 = $buffer.$length0;
    jl_AbstractStringBuilder_insertSpace($buffer, var$4, var$4 + 1 | 0);
    $buffer.$buffer.data[var$4] = var$3;
},
jt_DecimalFormat$PercentField_equals = ($this, $obj) => {
    return $obj instanceof jt_DecimalFormat$PercentField;
},
jt_DecimalFormat$PercentField_hashCode = $this => {
    return 1;
};
function otcit_DateTimeZoneBuilder$Transition() {
    let a = this; jl_Object.call(a);
    a.$iMillis = Long_ZERO;
    a.$iWallOffset = 0;
    a.$iStandardOffset0 = 0;
}
function nms_GameRuleValue() {
    let a = this; jl_Object.call(a);
    a.$valueString = null;
    a.$valueBoolean = 0;
    a.$valueInteger = 0;
    a.$valueDouble = 0.0;
}
let nms_GameRuleValue_setValue = ($this, $par1Str) => {
    let var$2, var$3, var$4, $$je;
    a: {
        $this.$valueString = $par1Str;
        if ($par1Str !== null) {
            var$2 = $par1Str.$nativeString.toLowerCase();
            var$3 = var$2 === $par1Str.$nativeString ? $par1Str : jl_String__init_0(var$2);
            if (var$3 === $rt_s(898))
                var$4 = 1;
            else if (!($rt_s(898) instanceof jl_String))
                var$4 = 0;
            else {
                var$2 = $rt_s(898);
                var$4 = var$3.$nativeString !== var$2.$nativeString ? 0 : 1;
            }
            if (var$4) {
                var$4 = 1;
                break a;
            }
        }
        var$4 = 0;
    }
    $this.$valueBoolean = var$4;
    b: {
        try {
            $this.$valueInteger = jl_Integer_parseInt($par1Str);
            break b;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
    c: {
        try {
            $this.$valueDouble = jl_Double_parseDouble($par1Str);
            break c;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_NumberFormatException) {
            } else {
                throw $$e;
            }
        }
    }
};
function nms_Chunk() {
    let a = this; jl_Object.call(a);
    a.$storageArrays = null;
    a.$blockBiomeArray = null;
    a.$precipitationHeightMap = null;
    a.$updateSkylightColumns = null;
    a.$isChunkLoaded = 0;
    a.$worldObj1 = null;
    a.$heightMap = null;
    a.$xPosition0 = 0;
    a.$zPosition0 = 0;
    a.$isGapLightingUpdated = 0;
    a.$chunkTileEntityMap = null;
    a.$entityLists = null;
    a.$isTerrainPopulated = 0;
    a.$isModified = 0;
    a.$hasEntities = 0;
    a.$lastSaveTime = Long_ZERO;
    a.$sendUpdates = 0;
    a.$heightMapMinimum = 0;
    a.$inhabitedTime = Long_ZERO;
    a.$queuedLightChecks = 0;
}
let nms_Chunk_isLit = 0,
nms_Chunk_totalBlockLightUpdates = 0,
nms_Chunk__init_0 = ($this, $par1World, $par2, $par3) => {
    let var$4, var$5, $var4, var$7;
    $this.$storageArrays = $rt_createArray(nms_ExtendedBlockStorage, 16);
    $this.$blockBiomeArray = $rt_createByteArray(256);
    $this.$precipitationHeightMap = $rt_createIntArray(256);
    $this.$updateSkylightColumns = $rt_createBooleanArray(256);
    $this.$chunkTileEntityMap = ju_HashMap__init_();
    $this.$queuedLightChecks = 4096;
    var$4 = $rt_createArray(ju_List, 16);
    var$5 = var$4.data;
    $this.$entityLists = var$4;
    $this.$worldObj1 = $par1World;
    $this.$xPosition0 = $par2;
    $this.$zPosition0 = $par3;
    $this.$heightMap = $rt_createIntArray(256);
    $var4 = 0;
    $par2 = var$5.length;
    while ($var4 < $par2) {
        $par1World = new ju_ArrayList;
        $par1World.$array = $rt_createArray(jl_Object, 10);
        var$5[$var4] = $par1World;
        $var4 = $var4 + 1 | 0;
    }
    var$4 = $this.$precipitationHeightMap.data;
    $par3 = 0;
    $var4 = var$4.length;
    if ($par3 > $var4) {
        $par1World = new jl_IllegalArgumentException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    while ($par3 < $var4) {
        var$7 = $par3 + 1 | 0;
        var$4[$par3] = (-999);
        $par3 = var$7;
    }
    var$4 = $this.$blockBiomeArray.data;
    $par3 = 0;
    $var4 = var$4.length;
    if ($par3 <= $var4) {
        while ($par3 < $var4) {
            var$7 = $par3 + 1 | 0;
            var$4[$par3] = (-1);
            $par3 = var$7;
        }
        return;
    }
    $par1World = new jl_IllegalArgumentException;
    $par1World.$suppressionEnabled = 1;
    $par1World.$writableStackTrace = 1;
    $rt_throw($par1World);
},
nms_Chunk__init_1 = (var_0, var_1, var_2) => {
    let var_3 = new nms_Chunk();
    nms_Chunk__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_Chunk__init_2 = ($this, $par1World, $par2ArrayOfByte, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, var$11;
    $par2ArrayOfByte = $par2ArrayOfByte.data;
    nms_Chunk__init_0($this, $par1World, $par3, $par4);
    $var5 = $par2ArrayOfByte.length / 256 | 0;
    $var6 = 0;
    while ($var6 < 16) {
        $var7 = 0;
        while ($var7 < 16) {
            $var8 = 0;
            while ($var8 < $var5) {
                $var9 = $par2ArrayOfByte[$var6 << 11 | $var7 << 7 | $var8];
                if ($var9) {
                    $var10 = $var8 >> 4;
                    var$11 = $this.$storageArrays.data;
                    if (var$11[$var10] === null)
                        var$11[$var10] = nms_ExtendedBlockStorage__init_($var10 << 4, $par1World.$provider.$hasNoSky ? 0 : 1);
                    nms_ExtendedBlockStorage_setExtBlockID($this.$storageArrays.data[$var10], $var6, $var8 & 15, $var7, $var9);
                }
                $var8 = $var8 + 1 | 0;
            }
            $var7 = $var7 + 1 | 0;
        }
        $var6 = $var6 + 1 | 0;
    }
},
nms_Chunk__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_Chunk();
    nms_Chunk__init_2(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_Chunk_getHeightValue = ($this, $par1, $par2) => {
    return $this.$heightMap.data[$par2 << 4 | $par1];
},
nms_Chunk_getTopFilledSegment = $this => {
    let var$1, $var1;
    var$1 = $this.$storageArrays.data;
    $var1 = var$1.length - 1 | 0;
    while ($var1 >= 0) {
        if (var$1[$var1] !== null)
            return var$1[$var1].$yBase;
        $var1 = $var1 + (-1) | 0;
    }
    return 0;
},
nms_Chunk_getBlockStorageArray = $this => {
    return $this.$storageArrays;
},
nms_Chunk_generateSkylightMap = $this => {
    let var$1, var$2, $var1, $var2, $var3, $var3_0, $var5, $var4, $var6, var$10;
    var$1 = $this.$storageArrays.data;
    var$2 = var$1.length - 1 | 0;
    a: {
        while (var$2 >= 0) {
            if (var$1[var$2] !== null) {
                $var1 = var$1[var$2].$yBase;
                break a;
            }
            var$2 = var$2 + (-1) | 0;
        }
        $var1 = 0;
    }
    $this.$heightMapMinimum = 2147483647;
    $var2 = 0;
    b: while (true) {
        if ($var2 >= 16) {
            $this.$isModified = 1;
            var$2 = 0;
            while (var$2 < 16) {
                $var3 = 0;
                while ($var3 < 16) {
                    $this.$updateSkylightColumns.data[var$2 + ($var3 * 16 | 0) | 0] = 1;
                    $this.$isGapLightingUpdated = 1;
                    $var3 = $var3 + 1 | 0;
                }
                var$2 = var$2 + 1 | 0;
            }
            return;
        }
        $var3_0 = 0;
        while ($var3_0 < 16) {
            var$1 = $this.$precipitationHeightMap.data;
            $var3 = $var3_0 << 4;
            var$1[$var2 + $var3 | 0] = (-999);
            $var5 = ($var1 + 16 | 0) - 1 | 0;
            $var4 = $var5;
            c: {
                while (true) {
                    if ($var4 <= 0)
                        break c;
                    if ($this.$getBlockLightOpacity($var2, $var4 - 1 | 0, $var3_0))
                        break;
                    $var4 = $var4 + (-1) | 0;
                }
                $this.$heightMap.data[$var3 | $var2] = $var4;
                if ($var4 < $this.$heightMapMinimum)
                    $this.$heightMapMinimum = $var4;
            }
            d: {
                if (!$this.$worldObj1.$provider.$hasNoSky) {
                    $var4 = 15;
                    while (true) {
                        $var4 = $var4 - $this.$getBlockLightOpacity($var2, $var5, $var3_0) | 0;
                        if ($var4 > 0) {
                            $var6 = $this.$storageArrays.data[$var5 >> 4];
                            if ($var6 !== null) {
                                var$2 = $var5 & 15;
                                nms_NibbleArray_set($var6.$skylightArray, $var2, var$2, $var3_0, $var4);
                                var$10 = $this.$worldObj1;
                                var$2 = 0;
                                while (true) {
                                    $var3 = $rt_compare(var$2, var$10.$worldAccesses.$size0);
                                    if ($var3 >= 0)
                                        break;
                                    if (var$2 < 0)
                                        break b;
                                    if ($var3 >= 0)
                                        break b;
                                    var$2 = var$2 + 1 | 0;
                                }
                            }
                        }
                        $var5 = $var5 + (-1) | 0;
                        if ($var5 <= 0)
                            break d;
                        if ($var4 <= 0)
                            break d;
                    }
                }
            }
            $var3_0 = $var3_0 + 1 | 0;
        }
        $var2 = $var2 + 1 | 0;
    }
    $var6 = new jl_IndexOutOfBoundsException;
    $var6.$suppressionEnabled = 1;
    $var6.$writableStackTrace = 1;
    $rt_throw($var6);
},
nms_Chunk_updateSkylight_do = $this => {
    let var$1, var$2, $var1, $var7, var$5, $var8, var$7, $var2, var$9, $var3, $var4, $var5, var$13, $var6, var$15, var$16, var$17, $var9, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var9 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var6 = $thread.pop();var$13 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();$var8 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj1;
        var$2 = ($this.$xPosition0 * 16 | 0) + 8 | 0;
        $var1 = ($this.$zPosition0 * 16 | 0) + 8 | 0;
        $var7 = var$2 - 16 | 0;
        var$5 = (-16);
        $var8 = $var1 - 16 | 0;
        var$2 = var$2 + 16 | 0;
        var$7 = 16;
        if (nms_World_checkChunksExist(var$1, $var7, var$5, $var8, var$2, var$7, $var1 + 16 | 0)) {
            $var1 = 0;
            while ($var1 < 16) {
                $var2 = 0;
                while ($var2 < 16) {
                    var$9 = $this.$updateSkylightColumns.data;
                    var$2 = $var1 + ($var2 * 16 | 0) | 0;
                    if (var$9[var$2]) {
                        var$9[var$2] = 0;
                        $var3 = $this.$getHeightValue($var1, $var2);
                        $var4 = ($this.$xPosition0 * 16 | 0) + $var1 | 0;
                        $var5 = ($this.$zPosition0 * 16 | 0) + $var2 | 0;
                        var$1 = $this.$worldObj1;
                        var$13 = $var4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var2 = $var2 + 1 | 0;
                }
                $var1 = $var1 + 1 | 0;
            }
            $this.$isGapLightingUpdated = 0;
        }
        return;
    case 1:
        $tmp = nms_World_getChunkHeightMapMinimum(var$1, var$13, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$1 = $this.$worldObj1;
        var$15 = $var4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getChunkHeightMapMinimum(var$1, var$15, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$1 = $this.$worldObj1;
        var$16 = $var5 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getChunkHeightMapMinimum(var$1, $var4, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$1 = $this.$worldObj1;
        var$17 = $var5 + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getChunkHeightMapMinimum(var$1, $var4, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var7 >= $var6)
            $var7 = $var6;
        if ($var8 >= $var7)
            $var8 = $var7;
        if ($var9 >= $var8)
            $var9 = $var8;
        var$1 = $this.$worldObj1;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getHeightValue(var$1, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        var$2 = $rt_compare(var$19, $var9);
        if (var$2 > 0) {
            var$20 = var$19 + 1 | 0;
            if (var$20 > $var9 && nms_World_checkChunksExist($this.$worldObj1, $var4 - 16 | 0, var$5, $var5 - 16 | 0, $var4 + 16 | 0, var$7, $var5 + 16 | 0)) {
                if ($var9 < var$20) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 8;
                    continue main;
                }
                $this.$isModified = 1;
            }
        } else if (var$2 < 0) {
            var$2 = $var9 + 1 | 0;
            if (var$2 > var$19 && nms_World_checkChunksExist($this.$worldObj1, $var4 - 16 | 0, var$5, $var5 - 16 | 0, $var4 + 16 | 0, var$7, $var5 + 16 | 0)) {
                if (var$19 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 10;
                    continue main;
                }
                $this.$isModified = 1;
            }
        }
        var$1 = $this.$worldObj1;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getHeightValue(var$1, var$13, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$2 = $rt_compare($var6, $var3);
        if (var$2 > 0) {
            var$2 = $var6 + 1 | 0;
            if (var$2 > $var3 && nms_World_checkChunksExist($this.$worldObj1, var$13 - 16 | 0, var$5, $var5 - 16 | 0, var$13 + 16 | 0, var$7, $var5 + 16 | 0)) {
                $var6 = $var3;
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 11;
                    continue main;
                }
                $this.$isModified = 1;
            }
        } else if (var$2 < 0) {
            var$2 = $var3 + 1 | 0;
            if (var$2 > $var6 && nms_World_checkChunksExist($this.$worldObj1, var$13 - 16 | 0, var$5, $var5 - 16 | 0, var$13 + 16 | 0, var$7, $var5 + 16 | 0)) {
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 13;
                    continue main;
                }
                $this.$isModified = 1;
            }
        }
        var$1 = $this.$worldObj1;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getHeightValue(var$1, var$15, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$2 = $rt_compare($var6, $var3);
        if (var$2 > 0) {
            var$2 = $var6 + 1 | 0;
            if (var$2 > $var3 && nms_World_checkChunksExist($this.$worldObj1, var$15 - 16 | 0, var$5, $var5 - 16 | 0, var$15 + 16 | 0, var$7, $var5 + 16 | 0)) {
                $var6 = $var3;
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 14;
                    continue main;
                }
                $this.$isModified = 1;
            }
        } else if (var$2 < 0) {
            var$2 = $var3 + 1 | 0;
            if (var$2 > $var6 && nms_World_checkChunksExist($this.$worldObj1, var$15 - 16 | 0, var$5, $var5 - 16 | 0, var$15 + 16 | 0, var$7, $var5 + 16 | 0)) {
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 15;
                    continue main;
                }
                $this.$isModified = 1;
            }
        }
        var$1 = $this.$worldObj1;
        $ptr = 9;
        continue main;
    case 8:
        nms_World_updateLightByType(var$1, var$21, $var4, $var9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < var$20) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 6;
        continue main;
    case 9:
        $tmp = nms_World_getHeightValue(var$1, $var4, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$2 = $rt_compare($var6, $var3);
        if (var$2 > 0) {
            var$2 = $var6 + 1 | 0;
            if (var$2 > $var3 && nms_World_checkChunksExist($this.$worldObj1, $var4 - 16 | 0, var$5, var$16 - 16 | 0, $var4 + 16 | 0, var$7, var$16 + 16 | 0)) {
                $var6 = $var3;
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 16;
                    continue main;
                }
                $this.$isModified = 1;
            }
        } else if (var$2 < 0) {
            var$2 = $var3 + 1 | 0;
            if (var$2 > $var6 && nms_World_checkChunksExist($this.$worldObj1, $var4 - 16 | 0, var$5, var$16 - 16 | 0, $var4 + 16 | 0, var$7, var$16 + 16 | 0)) {
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 17;
                    continue main;
                }
                $this.$isModified = 1;
            }
        }
        var$1 = $this.$worldObj1;
        $ptr = 12;
        continue main;
    case 10:
        nms_World_updateLightByType(var$1, var$21, $var4, var$19, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = var$19 + 1 | 0;
        if (var$19 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 6;
        continue main;
    case 11:
        nms_World_updateLightByType(var$1, var$21, var$13, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 7;
        continue main;
    case 12:
        $tmp = nms_World_getHeightValue(var$1, $var4, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$2 = $rt_compare($var6, $var3);
        if (var$2 > 0) {
            var$2 = $var6 + 1 | 0;
            if (var$2 > $var3 && nms_World_checkChunksExist($this.$worldObj1, $var4 - 16 | 0, var$5, var$17 - 16 | 0, $var4 + 16 | 0, var$7, var$17 + 16 | 0)) {
                if ($var3 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 18;
                    continue main;
                }
                $this.$isModified = 1;
            }
        } else if (var$2 < 0) {
            var$2 = $var3 + 1 | 0;
            if (var$2 > $var6 && nms_World_checkChunksExist($this.$worldObj1, $var4 - 16 | 0, var$5, var$17 - 16 | 0, $var4 + 16 | 0, var$7, var$17 + 16 | 0)) {
                if ($var6 < var$2) {
                    var$1 = $this.$worldObj1;
                    var$21 = nms_EnumSkyBlock_Sky;
                    $ptr = 19;
                    continue main;
                }
                $this.$isModified = 1;
            }
        }
        a: while (true) {
            $var2 = $var2 + 1 | 0;
            while ($var2 >= 16) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= 16)
                    break a;
                $var2 = 0;
            }
            var$9 = $this.$updateSkylightColumns.data;
            var$2 = $var1 + ($var2 * 16 | 0) | 0;
            if (!var$9[var$2])
                continue;
            else {
                var$9[var$2] = 0;
                $var3 = $this.$getHeightValue($var1, $var2);
                $var4 = ($this.$xPosition0 * 16 | 0) + $var1 | 0;
                $var5 = ($this.$zPosition0 * 16 | 0) + $var2 | 0;
                var$1 = $this.$worldObj1;
                var$13 = $var4 - 1 | 0;
                $ptr = 1;
                continue main;
            }
        }
        $this.$isGapLightingUpdated = 0;
        return;
    case 13:
        nms_World_updateLightByType(var$1, var$21, var$13, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 7;
        continue main;
    case 14:
        nms_World_updateLightByType(var$1, var$21, var$15, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 9;
        continue main;
    case 15:
        nms_World_updateLightByType(var$1, var$21, var$15, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 9;
        continue main;
    case 16:
        nms_World_updateLightByType(var$1, var$21, $var4, $var6, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 12;
        continue main;
    case 17:
        nms_World_updateLightByType(var$1, var$21, $var4, $var6, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        var$1 = $this.$worldObj1;
        $ptr = 12;
        continue main;
    case 18:
        nms_World_updateLightByType(var$1, var$21, $var4, $var3, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var3 + 1 | 0;
        if ($var3 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        b: while (true) {
            $var2 = $var2 + 1 | 0;
            while ($var2 >= 16) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= 16)
                    break b;
                $var2 = 0;
            }
            var$9 = $this.$updateSkylightColumns.data;
            var$2 = $var1 + ($var2 * 16 | 0) | 0;
            if (!var$9[var$2])
                continue;
            else {
                var$9[var$2] = 0;
                $var3 = $this.$getHeightValue($var1, $var2);
                $var4 = ($this.$xPosition0 * 16 | 0) + $var1 | 0;
                $var5 = ($this.$zPosition0 * 16 | 0) + $var2 | 0;
                var$1 = $this.$worldObj1;
                var$13 = $var4 - 1 | 0;
                $ptr = 1;
                continue main;
            }
        }
        $this.$isGapLightingUpdated = 0;
        return;
    case 19:
        nms_World_updateLightByType(var$1, var$21, $var4, $var6, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < var$2) {
            var$1 = $this.$worldObj1;
            var$21 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        b: while (true) {
            $var2 = $var2 + 1 | 0;
            while ($var2 >= 16) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= 16)
                    break b;
                $var2 = 0;
            }
            var$9 = $this.$updateSkylightColumns.data;
            var$2 = $var1 + ($var2 * 16 | 0) | 0;
            if (!var$9[var$2])
                continue;
            else {
                var$9[var$2] = 0;
                $var3 = $this.$getHeightValue($var1, $var2);
                $var4 = ($this.$xPosition0 * 16 | 0) + $var1 | 0;
                $var5 = ($this.$zPosition0 * 16 | 0) + $var2 | 0;
                var$1 = $this.$worldObj1;
                var$13 = $var4 - 1 | 0;
                $ptr = 1;
                continue main;
            }
        }
        $this.$isGapLightingUpdated = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, $var7, var$5, $var8, var$7, $var2, var$9, $var3, $var4, $var5, var$13, $var6, var$15, var$16, var$17, $var9, var$19, var$20, var$21, $ptr);
},
nms_Chunk_relightBlock = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4, $var12, $var9, $var8, $var7, var$11, $var6, $var10, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();$var12 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$heightMap.data;
        var$5 = $par3 << 4 | $par1;
        $var4 = var$4[var$5] & 255;
        if ($par2 <= $var4)
            $par2 = $var4;
        while ($par2 > 0 && !$this.$getBlockLightOpacity($par1, $par2 - 1 | 0, $par3)) {
            $par2 = $par2 + (-1) | 0;
        }
        a: {
            $var12 = $rt_compare($par2, $var4);
            if ($var12) {
                $var9 = $this.$worldObj1;
                $var8 = $par1 + ($this.$xPosition0 * 16 | 0) | 0;
                $var7 = $par3 + ($this.$zPosition0 * 16 | 0) | 0;
                if ($var12 <= 0) {
                    var$11 = $var4;
                    $var6 = $par2;
                } else {
                    var$11 = $par2;
                    $var6 = $var4;
                }
                if (!$var9.$provider.$hasNoSky && $var6 <= var$11) {
                    $var10 = nms_EnumSkyBlock_Sky;
                    $ptr = 1;
                    continue main;
                }
                $var7 = 0;
                while (true) {
                    $var8 = $rt_compare($var7, $var9.$worldAccesses.$size0);
                    if ($var8 >= 0) {
                        b: {
                            $this.$heightMap.data[var$5] = $par2;
                            $var6 = ($this.$xPosition0 * 16 | 0) + $par1 | 0;
                            $var7 = ($this.$zPosition0 * 16 | 0) + $par3 | 0;
                            if (!$this.$worldObj1.$provider.$hasNoSky) {
                                c: {
                                    if ($var12 >= 0) {
                                        $var8 = $var4;
                                        d: while (true) {
                                            if ($var8 >= $par2)
                                                break c;
                                            $var9 = $this.$storageArrays.data[$var8 >> 4];
                                            if ($var9 !== null) {
                                                $var12 = $var8 & 15;
                                                nms_NibbleArray_set($var9.$skylightArray, $par1, $var12, $par3, 0);
                                                $var9 = $this.$worldObj1;
                                                $var12 = 0;
                                                while (true) {
                                                    var$11 = $rt_compare($var12, $var9.$worldAccesses.$size0);
                                                    if (var$11 >= 0)
                                                        break;
                                                    if ($var12 < 0)
                                                        break d;
                                                    if (var$11 >= 0)
                                                        break d;
                                                    $var12 = $var12 + 1 | 0;
                                                }
                                            }
                                            $var8 = $var8 + 1 | 0;
                                        }
                                        $var9 = new jl_IndexOutOfBoundsException;
                                        $var9.$suppressionEnabled = 1;
                                        $var9.$writableStackTrace = 1;
                                        $rt_throw($var9);
                                    }
                                    $var8 = $par2;
                                    e: while (true) {
                                        if ($var8 >= $var4)
                                            break c;
                                        $var9 = $this.$storageArrays.data[$var8 >> 4];
                                        if ($var9 !== null) {
                                            $var12 = $var8 & 15;
                                            nms_NibbleArray_set($var9.$skylightArray, $par1, $var12, $par3, 15);
                                            $var9 = $this.$worldObj1;
                                            $var12 = 0;
                                            while (true) {
                                                var$11 = $rt_compare($var12, $var9.$worldAccesses.$size0);
                                                if (var$11 >= 0)
                                                    break;
                                                if ($var12 < 0)
                                                    break e;
                                                if (var$11 >= 0)
                                                    break e;
                                                $var12 = $var12 + 1 | 0;
                                            }
                                        }
                                        $var8 = $var8 + 1 | 0;
                                    }
                                    $var9 = new jl_IndexOutOfBoundsException;
                                    $var9.$suppressionEnabled = 1;
                                    $var9.$writableStackTrace = 1;
                                    $rt_throw($var9);
                                }
                                $var8 = 15;
                                while (true) {
                                    if ($par2 <= 0)
                                        break b;
                                    if ($var8 <= 0)
                                        break b;
                                    $par2 = $par2 + (-1) | 0;
                                    $var12 = $this.$getBlockLightOpacity($par1, $par2, $par3);
                                    if (!$var12)
                                        $var12 = 1;
                                    $var8 = $var8 - $var12 | 0;
                                    if ($var8 < 0)
                                        $var8 = 0;
                                    $var10 = $this.$storageArrays.data[$par2 >> 4];
                                    if ($var10 !== null) {
                                        $var12 = $par2 & 15;
                                        nms_NibbleArray_set($var10.$skylightArray, $par1, $var12, $par3, $var8);
                                    }
                                }
                            }
                        }
                        $var8 = $this.$heightMap.data[var$5];
                        if ($var8 < $var4)
                            $par1 = $var8;
                        else {
                            $par2 = $var8;
                            $par1 = $var4;
                            $var4 = $par2;
                        }
                        if ($var8 < $this.$heightMapMinimum)
                            $this.$heightMapMinimum = $var8;
                        $var9 = $this.$worldObj1;
                        if (!$var9.$provider.$hasNoSky) {
                            $par2 = $var6 - 1 | 0;
                            var$14 = $rt_compare($var4, $par1);
                            if (var$14 > 0 && nms_World_checkChunksExist($var9, $par2 - 16 | 0, (-16), $var7 - 16 | 0, $par2 + 16 | 0, 16, $var7 + 16 | 0)) {
                                $par3 = $par1;
                                if ($par3 < $var4) {
                                    $var9 = $this.$worldObj1;
                                    $var10 = nms_EnumSkyBlock_Sky;
                                    $ptr = 2;
                                    continue main;
                                }
                                $this.$isModified = 1;
                            }
                            $par2 = $var6 + 1 | 0;
                            if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $par2 - 16 | 0, (-16), $var7 - 16 | 0, $par2 + 16 | 0, 16, $var7 + 16 | 0)) {
                                $par3 = $par1;
                                if ($par3 < $var4) {
                                    $var9 = $this.$worldObj1;
                                    $var10 = nms_EnumSkyBlock_Sky;
                                    $ptr = 3;
                                    continue main;
                                }
                                $this.$isModified = 1;
                            }
                            $par2 = $var7 - 1 | 0;
                            if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
                                $par3 = $par1;
                                if ($par3 < $var4) {
                                    $var9 = $this.$worldObj1;
                                    $var10 = nms_EnumSkyBlock_Sky;
                                    $ptr = 4;
                                    continue main;
                                }
                                $this.$isModified = 1;
                            }
                            $par2 = $var7 + 1 | 0;
                            if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
                                $par3 = $par1;
                                if ($par3 < $var4) {
                                    $var9 = $this.$worldObj1;
                                    $var10 = nms_EnumSkyBlock_Sky;
                                    $ptr = 5;
                                    continue main;
                                }
                                $this.$isModified = 1;
                            }
                            if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $var7 - 16 | 0, $var6 + 16 | 0, 16, $var7 + 16 | 0)) {
                                if ($par1 < $var4) {
                                    $var9 = $this.$worldObj1;
                                    $var10 = nms_EnumSkyBlock_Sky;
                                    $ptr = 6;
                                    continue main;
                                }
                                $this.$isModified = 1;
                            }
                        }
                        nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
                        $this.$isModified = 1;
                        break a;
                    }
                    if ($var7 < 0)
                        break;
                    if ($var8 >= 0)
                        break;
                    $var7 = $var7 + 1 | 0;
                }
                $var9 = new jl_IndexOutOfBoundsException;
                $var9.$suppressionEnabled = 1;
                $var9.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var9);
                $rt_throw($var9);
            }
        }
        return;
    case 1:
        nms_World_updateLightByType($var9, $var10, $var8, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 <= var$11) {
            $var10 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $var7 = 0;
        while (true) {
            $var8 = $rt_compare($var7, $var9.$worldAccesses.$size0);
            if ($var8 >= 0) {
                f: {
                    $this.$heightMap.data[var$5] = $par2;
                    $var6 = ($this.$xPosition0 * 16 | 0) + $par1 | 0;
                    $var7 = ($this.$zPosition0 * 16 | 0) + $par3 | 0;
                    if (!$this.$worldObj1.$provider.$hasNoSky) {
                        g: {
                            if ($var12 >= 0) {
                                $var8 = $var4;
                                h: while (true) {
                                    if ($var8 >= $par2)
                                        break g;
                                    $var9 = $this.$storageArrays.data[$var8 >> 4];
                                    if ($var9 !== null) {
                                        $var12 = $var8 & 15;
                                        nms_NibbleArray_set($var9.$skylightArray, $par1, $var12, $par3, 0);
                                        $var9 = $this.$worldObj1;
                                        $var12 = 0;
                                        while (true) {
                                            var$11 = $rt_compare($var12, $var9.$worldAccesses.$size0);
                                            if (var$11 >= 0)
                                                break;
                                            if ($var12 < 0)
                                                break h;
                                            if (var$11 >= 0)
                                                break h;
                                            $var12 = $var12 + 1 | 0;
                                        }
                                    }
                                    $var8 = $var8 + 1 | 0;
                                }
                                $var9 = new jl_IndexOutOfBoundsException;
                                $var9.$suppressionEnabled = 1;
                                $var9.$writableStackTrace = 1;
                                $rt_throw($var9);
                            }
                            $var8 = $par2;
                            i: while (true) {
                                if ($var8 >= $var4)
                                    break g;
                                $var9 = $this.$storageArrays.data[$var8 >> 4];
                                if ($var9 !== null) {
                                    $var12 = $var8 & 15;
                                    nms_NibbleArray_set($var9.$skylightArray, $par1, $var12, $par3, 15);
                                    $var9 = $this.$worldObj1;
                                    $var12 = 0;
                                    while (true) {
                                        var$11 = $rt_compare($var12, $var9.$worldAccesses.$size0);
                                        if (var$11 >= 0)
                                            break;
                                        if ($var12 < 0)
                                            break i;
                                        if (var$11 >= 0)
                                            break i;
                                        $var12 = $var12 + 1 | 0;
                                    }
                                }
                                $var8 = $var8 + 1 | 0;
                            }
                            $var9 = new jl_IndexOutOfBoundsException;
                            $var9.$suppressionEnabled = 1;
                            $var9.$writableStackTrace = 1;
                            $rt_throw($var9);
                        }
                        $var8 = 15;
                        while (true) {
                            if ($par2 <= 0)
                                break f;
                            if ($var8 <= 0)
                                break f;
                            $par2 = $par2 + (-1) | 0;
                            $var12 = $this.$getBlockLightOpacity($par1, $par2, $par3);
                            if (!$var12)
                                $var12 = 1;
                            $var8 = $var8 - $var12 | 0;
                            if ($var8 < 0)
                                $var8 = 0;
                            $var10 = $this.$storageArrays.data[$par2 >> 4];
                            if ($var10 !== null) {
                                $var12 = $par2 & 15;
                                nms_NibbleArray_set($var10.$skylightArray, $par1, $var12, $par3, $var8);
                            }
                        }
                    }
                }
                $var8 = $this.$heightMap.data[var$5];
                if ($var8 < $var4)
                    $par1 = $var8;
                else {
                    $par2 = $var8;
                    $par1 = $var4;
                    $var4 = $par2;
                }
                if ($var8 < $this.$heightMapMinimum)
                    $this.$heightMapMinimum = $var8;
                $var9 = $this.$worldObj1;
                if (!$var9.$provider.$hasNoSky) {
                    $par2 = $var6 - 1 | 0;
                    var$14 = $rt_compare($var4, $par1);
                    if (var$14 > 0 && nms_World_checkChunksExist($var9, $par2 - 16 | 0, (-16), $var7 - 16 | 0, $par2 + 16 | 0, 16, $var7 + 16 | 0)) {
                        $par3 = $par1;
                        if ($par3 < $var4) {
                            $var9 = $this.$worldObj1;
                            $var10 = nms_EnumSkyBlock_Sky;
                            $ptr = 2;
                            continue main;
                        }
                        $this.$isModified = 1;
                    }
                    $par2 = $var6 + 1 | 0;
                    if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $par2 - 16 | 0, (-16), $var7 - 16 | 0, $par2 + 16 | 0, 16, $var7 + 16 | 0)) {
                        $par3 = $par1;
                        if ($par3 < $var4) {
                            $var9 = $this.$worldObj1;
                            $var10 = nms_EnumSkyBlock_Sky;
                            $ptr = 3;
                            continue main;
                        }
                        $this.$isModified = 1;
                    }
                    $par2 = $var7 - 1 | 0;
                    if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
                        $par3 = $par1;
                        if ($par3 < $var4) {
                            $var9 = $this.$worldObj1;
                            $var10 = nms_EnumSkyBlock_Sky;
                            $ptr = 4;
                            continue main;
                        }
                        $this.$isModified = 1;
                    }
                    $par2 = $var7 + 1 | 0;
                    if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
                        $par3 = $par1;
                        if ($par3 < $var4) {
                            $var9 = $this.$worldObj1;
                            $var10 = nms_EnumSkyBlock_Sky;
                            $ptr = 5;
                            continue main;
                        }
                        $this.$isModified = 1;
                    }
                    if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $var7 - 16 | 0, $var6 + 16 | 0, 16, $var7 + 16 | 0)) {
                        if ($par1 < $var4) {
                            $var9 = $this.$worldObj1;
                            $var10 = nms_EnumSkyBlock_Sky;
                            $ptr = 6;
                            continue main;
                        }
                        $this.$isModified = 1;
                    }
                }
                nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
                $this.$isModified = 1;
                return;
            }
            if ($var7 < 0)
                break;
            if ($var8 >= 0)
                break;
            $var7 = $var7 + 1 | 0;
        }
        $var9 = new jl_IndexOutOfBoundsException;
        $var9.$suppressionEnabled = 1;
        $var9.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var9);
        $rt_throw($var9);
    case 2:
        nms_World_updateLightByType($var9, $var10, $par2, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        if ($par3 < $var4) {
            $var9 = $this.$worldObj1;
            $var10 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        $par2 = $var6 + 1 | 0;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $par2 - 16 | 0, (-16), $var7 - 16 | 0, $par2 + 16 | 0, 16, $var7 + 16 | 0)) {
            $par3 = $par1;
            if ($par3 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 3;
                continue main;
            }
            $this.$isModified = 1;
        }
        $par2 = $var7 - 1 | 0;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
            $par3 = $par1;
            if ($par3 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 4;
                continue main;
            }
            $this.$isModified = 1;
        }
        $par2 = $var7 + 1 | 0;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
            $par3 = $par1;
            if ($par3 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 5;
                continue main;
            }
            $this.$isModified = 1;
        }
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $var7 - 16 | 0, $var6 + 16 | 0, 16, $var7 + 16 | 0)) {
            if ($par1 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 6;
                continue main;
            }
            $this.$isModified = 1;
        }
        nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
        $this.$isModified = 1;
        return;
    case 3:
        nms_World_updateLightByType($var9, $var10, $par2, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        if ($par3 < $var4) {
            $var9 = $this.$worldObj1;
            $var10 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        $par2 = $var7 - 1 | 0;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
            $par3 = $par1;
            if ($par3 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 4;
                continue main;
            }
            $this.$isModified = 1;
        }
        $par2 = $var7 + 1 | 0;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
            $par3 = $par1;
            if ($par3 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 5;
                continue main;
            }
            $this.$isModified = 1;
        }
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $var7 - 16 | 0, $var6 + 16 | 0, 16, $var7 + 16 | 0)) {
            if ($par1 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 6;
                continue main;
            }
            $this.$isModified = 1;
        }
        nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
        $this.$isModified = 1;
        return;
    case 4:
        nms_World_updateLightByType($var9, $var10, $var6, $par3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        if ($par3 < $var4) {
            $var9 = $this.$worldObj1;
            $var10 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        $par2 = $var7 + 1 | 0;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $par2 - 16 | 0, $var6 + 16 | 0, 16, $par2 + 16 | 0)) {
            $par3 = $par1;
            if ($par3 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 5;
                continue main;
            }
            $this.$isModified = 1;
        }
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $var7 - 16 | 0, $var6 + 16 | 0, 16, $var7 + 16 | 0)) {
            if ($par1 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 6;
                continue main;
            }
            $this.$isModified = 1;
        }
        nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
        $this.$isModified = 1;
        return;
    case 5:
        nms_World_updateLightByType($var9, $var10, $var6, $par3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        if ($par3 < $var4) {
            $var9 = $this.$worldObj1;
            $var10 = nms_EnumSkyBlock_Sky;
            continue main;
        }
        $this.$isModified = 1;
        if (var$14 > 0 && nms_World_checkChunksExist($this.$worldObj1, $var6 - 16 | 0, (-16), $var7 - 16 | 0, $var6 + 16 | 0, 16, $var7 + 16 | 0)) {
            if ($par1 < $var4) {
                $var9 = $this.$worldObj1;
                $var10 = nms_EnumSkyBlock_Sky;
                $ptr = 6;
                continue main;
            }
            $this.$isModified = 1;
        }
        nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
        $this.$isModified = 1;
        return;
    case 6:
        nms_World_updateLightByType($var9, $var10, $var6, $par1, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $par1 + 1 | 0;
        if ($par1 >= $var4) {
            $this.$isModified = 1;
            nms_Chunk_totalBlockLightUpdates = nms_Chunk_totalBlockLightUpdates + 1 | 0;
            $this.$isModified = 1;
            return;
        }
        $var9 = $this.$worldObj1;
        $var10 = nms_EnumSkyBlock_Sky;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $var4, $var12, $var9, $var8, $var7, var$11, $var6, $var10, var$14, $ptr);
},
nms_Chunk_getBlockLightOpacity = ($this, $par1, $par2, $par3) => {
    nms_Block_$callClinit();
    return nms_Block_lightOpacity.data[$this.$getBlockID($par1, $par2, $par3)];
},
nms_Chunk_getBlockID = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4, var$7;
    var$4 = $par2 >> 4;
    var$5 = $this.$storageArrays.data;
    if (var$4 >= var$5.length)
        return 0;
    $var4 = var$5[var$4];
    if ($var4 === null)
        $par2 = 0;
    else {
        var$7 = $par2 & 15;
        $par2 = $var4.$blockLSBArray.data[var$7 << 8 | $par3 << 4 | $par1] & 255;
        $var4 = $var4.$blockMSBArray;
        if ($var4 !== null)
            $par2 = nms_NibbleArray_get($var4, $par1, var$7, $par3) << 8 | $par2;
    }
    return $par2;
},
nms_Chunk_getBlockMetadata = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4;
    var$4 = $par2 >> 4;
    var$5 = $this.$storageArrays.data;
    if (var$4 >= var$5.length)
        return 0;
    $var4 = var$5[var$4];
    if ($var4 === null)
        $par1 = 0;
    else {
        $par2 = $par2 & 15;
        $par1 = nms_NibbleArray_get($var4.$blockMetadataArray, $par1, $par2, $par3);
    }
    return $par1;
},
nms_Chunk_setBlockIDWithMetadata = ($this, $par1, $par2, $par3, $par4, $par5) => {
    let var$6, $var6, var$8, $var7, $var8, $var9, var$12, $var12, $var10, $var11, $var13, var$17, $var14, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();$var14 = $thread.pop();var$17 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var12 = $thread.pop();var$12 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 << 4;
        $var6 = var$6 | $par1;
        var$8 = $this.$precipitationHeightMap.data;
        if ($par2 >= (var$8[$var6] - 1 | 0))
            var$8[$var6] = (-999);
        $var7 = $this.$heightMap.data[$var6];
        $var8 = $this.$getBlockID($par1, $par2, $par3);
        $var9 = $this.$getBlockMetadata($par1, $par2, $par3);
        var$12 = $rt_compare($var8, $par4);
        if (!var$12 && $var9 == $par5)
            return 0;
        var$8 = $this.$storageArrays.data;
        $var12 = $par2 >> 4;
        $var10 = var$8[$var12];
        $var11 = 0;
        if ($var10 === null) {
            if (!$par4)
                return 0;
            $var10 = nms_ExtendedBlockStorage__init_($var12 << 4, $this.$worldObj1.$provider.$hasNoSky ? 0 : 1);
            var$8[$var12] = $var10;
            $var11 = $par2 < $var7 ? 0 : 1;
        }
        $var12 = ($this.$xPosition0 * 16 | 0) + $par1 | 0;
        $var13 = ($this.$zPosition0 * 16 | 0) + $par3 | 0;
        if ($var8 && !$this.$worldObj1.$isRemote)
            nms_Block_$callClinit();
        var$17 = $par2 & 15;
        nms_ExtendedBlockStorage_setExtBlockID($var10, $par1, var$17, $par3, $par4);
        if ($var8) {
            $var14 = $this.$worldObj1;
            if (!$var14.$isRemote) {
                nms_Block_$callClinit();
                var$19 = nms_Block_blocksList.data[$var8];
                $ptr = 1;
                continue main;
            }
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$var8], nms_ITileEntityProvider) && var$12) {
                $ptr = 2;
                continue main;
            }
        }
        $var6 = $var10.$blockLSBArray.data[var$17 << 8 | var$6 | $par1] & 255;
        $var14 = $var10.$blockMSBArray;
        if ($var14 !== null)
            $var6 = nms_NibbleArray_get($var14, $par1, var$17, $par3) << 8 | $var6;
        if ($var6 != $par4)
            return 0;
        nms_NibbleArray_set($var10.$blockMetadataArray, $par1, var$17, $par3, $par5);
        if ($var11)
            $this.$generateSkylightMap();
        else {
            a: {
                nms_Block_$callClinit();
                if (nms_Block_lightOpacity.data[$par4 & 4095] <= 0) {
                    if ($par2 != ($var7 - 1 | 0))
                        break a;
                    $ptr = 3;
                    continue main;
                }
                if ($par2 >= $var7) {
                    $par5 = $par2 + 1 | 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $this.$updateSkylightColumns.data[$par1 + ($par3 * 16 | 0) | 0] = 1;
            $this.$isGapLightingUpdated = 1;
        }
        b: {
            if (!$par4) {
                if ($var8 <= 0)
                    break b;
                nms_Block_$callClinit();
                if (!$rt_isInstance(nms_Block_blocksList.data[$var8], nms_ITileEntityProvider))
                    break b;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj1;
            if (!$var14.$isRemote) {
                nms_Block_$callClinit();
                $var10 = nms_Block_blocksList.data[$par4];
                $ptr = 5;
                continue main;
            }
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$par4], nms_ITileEntityProvider)) {
                $ptr = 7;
                continue main;
            }
        }
        $this.$isModified = 1;
        return 1;
    case 1:
        var$19.$breakBlock($var14, $var12, $par2, $var13, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var10.$blockLSBArray.data[var$17 << 8 | var$6 | $par1] & 255;
        $var14 = $var10.$blockMSBArray;
        if ($var14 !== null)
            $var6 = nms_NibbleArray_get($var14, $par1, var$17, $par3) << 8 | $var6;
        if ($var6 != $par4)
            return 0;
        nms_NibbleArray_set($var10.$blockMetadataArray, $par1, var$17, $par3, $par5);
        if ($var11)
            $this.$generateSkylightMap();
        else {
            c: {
                nms_Block_$callClinit();
                if (nms_Block_lightOpacity.data[$par4 & 4095] <= 0) {
                    if ($par2 != ($var7 - 1 | 0))
                        break c;
                    $ptr = 3;
                    continue main;
                }
                if ($par2 >= $var7) {
                    $par5 = $par2 + 1 | 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $this.$updateSkylightColumns.data[$par1 + ($par3 * 16 | 0) | 0] = 1;
            $this.$isGapLightingUpdated = 1;
        }
        d: {
            if (!$par4) {
                if ($var8 <= 0)
                    break d;
                nms_Block_$callClinit();
                if (!$rt_isInstance(nms_Block_blocksList.data[$var8], nms_ITileEntityProvider))
                    break d;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj1;
            if (!$var14.$isRemote) {
                nms_Block_$callClinit();
                $var10 = nms_Block_blocksList.data[$par4];
                $ptr = 5;
                continue main;
            }
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$par4], nms_ITileEntityProvider)) {
                $ptr = 7;
                continue main;
            }
        }
        $this.$isModified = 1;
        return 1;
    case 2:
        nms_World_removeBlockTileEntity($var14, $var12, $par2, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var10.$blockLSBArray.data[var$17 << 8 | var$6 | $par1] & 255;
        $var14 = $var10.$blockMSBArray;
        if ($var14 !== null)
            $var6 = nms_NibbleArray_get($var14, $par1, var$17, $par3) << 8 | $var6;
        if ($var6 != $par4)
            return 0;
        nms_NibbleArray_set($var10.$blockMetadataArray, $par1, var$17, $par3, $par5);
        if ($var11)
            $this.$generateSkylightMap();
        else {
            c: {
                nms_Block_$callClinit();
                if (nms_Block_lightOpacity.data[$par4 & 4095] <= 0) {
                    if ($par2 != ($var7 - 1 | 0))
                        break c;
                    $ptr = 3;
                    continue main;
                }
                if ($par2 >= $var7) {
                    $par5 = $par2 + 1 | 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $this.$updateSkylightColumns.data[$par1 + ($par3 * 16 | 0) | 0] = 1;
            $this.$isGapLightingUpdated = 1;
        }
        d: {
            if (!$par4) {
                if ($var8 <= 0)
                    break d;
                nms_Block_$callClinit();
                if (!$rt_isInstance(nms_Block_blocksList.data[$var8], nms_ITileEntityProvider))
                    break d;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj1;
            if (!$var14.$isRemote) {
                nms_Block_$callClinit();
                $var10 = nms_Block_blocksList.data[$par4];
                $ptr = 5;
                continue main;
            }
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$par4], nms_ITileEntityProvider)) {
                $ptr = 7;
                continue main;
            }
        }
        $this.$isModified = 1;
        return 1;
    case 3:
        nms_Chunk_relightBlock($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$updateSkylightColumns.data[$par1 + ($par3 * 16 | 0) | 0] = 1;
        $this.$isGapLightingUpdated = 1;
        e: {
            if (!$par4) {
                if ($var8 <= 0)
                    break e;
                nms_Block_$callClinit();
                if (!$rt_isInstance(nms_Block_blocksList.data[$var8], nms_ITileEntityProvider))
                    break e;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj1;
            if (!$var14.$isRemote) {
                nms_Block_$callClinit();
                $var10 = nms_Block_blocksList.data[$par4];
                $ptr = 5;
                continue main;
            }
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$par4], nms_ITileEntityProvider)) {
                $ptr = 7;
                continue main;
            }
        }
        $this.$isModified = 1;
        return 1;
    case 4:
        nms_Chunk_relightBlock($this, $par1, $par5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$updateSkylightColumns.data[$par1 + ($par3 * 16 | 0) | 0] = 1;
        $this.$isGapLightingUpdated = 1;
        e: {
            if (!$par4) {
                if ($var8 <= 0)
                    break e;
                nms_Block_$callClinit();
                if (!$rt_isInstance(nms_Block_blocksList.data[$var8], nms_ITileEntityProvider))
                    break e;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj1;
            if (!$var14.$isRemote) {
                nms_Block_$callClinit();
                $var10 = nms_Block_blocksList.data[$par4];
                $ptr = 5;
                continue main;
            }
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$par4], nms_ITileEntityProvider)) {
                $ptr = 7;
                continue main;
            }
        }
        $this.$isModified = 1;
        return 1;
    case 5:
        $var10.$onBlockAdded($var14, $var12, $par2, $var13);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        if (!$rt_isInstance(nms_Block_blocksList.data[$par4], nms_ITileEntityProvider)) {
            $this.$isModified = 1;
            return 1;
        }
        $ptr = 7;
        continue main;
    case 6:
        $tmp = $this.$getChunkBlockTileEntity($par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 !== null)
            $var14.$updateContainingBlockInfo();
        $this.$isModified = 1;
        return 1;
    case 7:
        $tmp = $this.$getChunkBlockTileEntity($par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14 !== null) {
            if ($var14 !== null)
                $var14.$updateContainingBlockInfo();
            $this.$isModified = 1;
            return 1;
        }
        $var10 = nms_Block_blocksList.data[$par4];
        $var14 = $this.$worldObj1;
        $ptr = 8;
    case 8:
        $tmp = $var10.$createNewTileEntity($var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $var10 = $this.$worldObj1;
        $ptr = 9;
    case 9:
        nms_World_setBlockTileEntity($var10, $var12, $par2, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        if ($var14 !== null)
            $var14.$updateContainingBlockInfo();
        $this.$isModified = 1;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, var$6, $var6, var$8, $var7, $var8, $var9, var$12, $var12, $var10, $var11, $var13, var$17, $var14, var$19, $ptr);
},
nms_Chunk_setBlockMetadata = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, var$6, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$storageArrays.data[$par2 >> 4];
        if ($var5 === null)
            return 0;
        var$6 = $par2 & 15;
        if (nms_NibbleArray_get($var5.$blockMetadataArray, $par1, var$6, $par3) == $par4)
            return 0;
        $this.$isModified = 1;
        nms_NibbleArray_set($var5.$blockMetadataArray, $par1, var$6, $par3, $par4);
        $var7 = $var5.$blockLSBArray.data[var$6 << 8 | $par3 << 4 | $par1] & 255;
        $var8 = $var5.$blockMSBArray;
        if ($var8 !== null)
            $var7 = nms_NibbleArray_get($var8, $par1, var$6, $par3) << 8 | $var7;
        if ($var7 > 0) {
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$var7], nms_ITileEntityProvider)) {
                $ptr = 1;
                continue main;
            }
        }
        return 1;
    case 1:
        $tmp = $this.$getChunkBlockTileEntity($par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 !== null) {
            $var8.$updateContainingBlockInfo();
            $var8.$blockMetadata = $par4;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, var$6, $var7, $var8, $ptr);
},
nms_Chunk_getSavedLightValue = ($this, $par1EnumSkyBlock, $par2, $par3, $par4) => {
    let $var5;
    $var5 = $this.$storageArrays.data[$par3 >> 4];
    if ($var5 === null)
        $par2 = !$this.$canBlockSeeTheSky($par2, $par3, $par4) ? 0 : $par1EnumSkyBlock.$defaultLightValue;
    else if ($par1EnumSkyBlock !== nms_EnumSkyBlock_Sky) {
        if ($par1EnumSkyBlock !== nms_EnumSkyBlock_Block)
            $par2 = $par1EnumSkyBlock.$defaultLightValue;
        else {
            $par3 = $par3 & 15;
            $par2 = nms_NibbleArray_get($var5.$blocklightArray, $par2, $par3, $par4);
        }
    } else if ($this.$worldObj1.$provider.$hasNoSky)
        $par2 = 0;
    else {
        $par3 = $par3 & 15;
        $par2 = nms_NibbleArray_get($var5.$skylightArray, $par2, $par3, $par4);
    }
    return $par2;
},
nms_Chunk_setLightValue = ($this, $par1EnumSkyBlock, $par2, $par3, $par4, $par5) => {
    let var$6, var$7, $var6;
    var$6 = $this.$storageArrays.data;
    var$7 = $par3 >> 4;
    $var6 = var$6[var$7];
    if ($var6 === null) {
        $var6 = nms_ExtendedBlockStorage__init_(var$7 << 4, $this.$worldObj1.$provider.$hasNoSky ? 0 : 1);
        var$6[var$7] = $var6;
        $this.$generateSkylightMap();
    }
    $this.$isModified = 1;
    if ($par1EnumSkyBlock !== nms_EnumSkyBlock_Sky) {
        if ($par1EnumSkyBlock === nms_EnumSkyBlock_Block) {
            $par3 = $par3 & 15;
            nms_NibbleArray_set($var6.$blocklightArray, $par2, $par3, $par4, $par5);
        }
    } else if (!$this.$worldObj1.$provider.$hasNoSky) {
        $par3 = $par3 & 15;
        nms_NibbleArray_set($var6.$skylightArray, $par2, $par3, $par4, $par5);
    }
},
nms_Chunk_getBlockLightValue = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7;
    $var5 = $this.$storageArrays.data[$par2 >> 4];
    if ($var5 === null) {
        a: {
            if (!$this.$worldObj1.$provider.$hasNoSky) {
                $par1 = nms_EnumSkyBlock_Sky.$defaultLightValue;
                if ($par4 < $par1) {
                    $par1 = $par1 - $par4 | 0;
                    break a;
                }
            }
            $par1 = 0;
        }
        return $par1;
    }
    if ($this.$worldObj1.$provider.$hasNoSky)
        $var6 = 0;
    else {
        $var6 = $par2 & 15;
        $var6 = nms_NibbleArray_get($var5.$skylightArray, $par1, $var6, $par3);
    }
    if ($var6 > 0)
        nms_Chunk_isLit = 1;
    $par4 = $var6 - $par4 | 0;
    $par2 = $par2 & 15;
    $var7 = nms_NibbleArray_get($var5.$blocklightArray, $par1, $par2, $par3);
    if ($var7 <= $par4)
        $var7 = $par4;
    return $var7;
},
nms_Chunk_addEntity = ($this, $par1Entity) => {
    let var$2, $var2, $var3, var$5, var$6, var$7, $var4, var$9, var$10;
    $this.$hasEntities = 1;
    var$2 = $par1Entity.$posX / 16.0;
    $var2 = var$2 | 0;
    if (var$2 < $var2)
        $var2 = $var2 - 1 | 0;
    var$2 = $par1Entity.$posZ / 16.0;
    $var3 = var$2 | 0;
    if (var$2 < $var3)
        $var3 = $var3 - 1 | 0;
    if (!($var2 == $this.$xPosition0 && $var3 == $this.$zPosition0)) {
        if (jl_System_errCache === null) {
            var$5 = new otcic_JSStderrPrintStream;
            var$6 = new ji_ByteArrayOutputStream;
            var$6.$buf = $rt_createByteArray(32);
            var$5.$out0 = var$6;
            var$6 = new jl_StringBuilder;
            jl_Object__init_(var$6);
            var$6.$buffer = $rt_createCharArray(16);
            var$5.$sb = var$6;
            var$5.$buffer0 = $rt_createCharArray(32);
            var$5.$autoFlush = 0;
            var$5.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$5;
        }
        var$7 = $par1Entity.$toString();
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(2191));
        $var4 = var$5.$length0;
        if (var$7 === null)
            var$7 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$5, $var4, var$7);
        var$6 = new jl_String;
        var$9 = var$5.$buffer;
        var$10 = var$9.data;
        $var2 = var$5.$length0;
        $var3 = var$10.length;
        if ($var2 >= 0 && $var2 <= ($var3 - 0 | 0)) {
            var$6.$nativeString = $rt_charArrayToString(var$9.data, 0, $var2);
            $rt_putStderr($rt_ustr(var$6));
            $rt_putStderr("\n");
        } else {
            $par1Entity = new jl_IndexOutOfBoundsException;
            $par1Entity.$suppressionEnabled = 1;
            $par1Entity.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1Entity);
            $rt_throw($par1Entity);
        }
    }
    var$2 = $par1Entity.$posY / 16.0;
    $var4 = var$2 | 0;
    if (var$2 < $var4)
        $var4 = $var4 - 1 | 0;
    if ($var4 < 0)
        $var4 = 0;
    var$9 = $this.$entityLists.data;
    $var3 = var$9.length;
    if ($var4 >= $var3)
        $var4 = $var3 - 1 | 0;
    $par1Entity.$addedToChunk = 1;
    $par1Entity.$chunkCoordX = $this.$xPosition0;
    $par1Entity.$chunkCoordY = $var4;
    $par1Entity.$chunkCoordZ = $this.$zPosition0;
    var$5 = var$9[$var4];
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$9 = var$5.$array.data;
    $var3 = var$5.$size0;
    var$5.$size0 = $var3 + 1 | 0;
    var$9[$var3] = $par1Entity;
    var$5.$modCount = var$5.$modCount + 1 | 0;
},
nms_Chunk_removeEntity = ($this, $par1Entity) => {
    $this.$removeEntityAtIndex($par1Entity, $par1Entity.$chunkCoordY);
},
nms_Chunk_removeEntityAtIndex = ($this, $par1Entity, $par2) => {
    let var$3, var$4, var$5, var$6, var$7;
    if ($par2 < 0)
        $par2 = 0;
    var$3 = $this.$entityLists.data;
    var$4 = var$3.length;
    if ($par2 >= var$4)
        $par2 = var$4 - 1 | 0;
    var$5 = var$3[$par2];
    var$6 = var$5.$size0;
    $par2 = 0;
    a: {
        b: {
            while (true) {
                if ($par2 >= var$6) {
                    $par2 = (-1);
                    break b;
                }
                if ($par2 < 0)
                    break a;
                if ($par2 >= var$5.$size0)
                    break a;
                var$7 = var$5.$array.data[$par2];
                if ($par1Entity === var$7 ? 1 : $par1Entity !== null ? $par1Entity.$equals(var$7) : var$7 !== null ? 0 : 1)
                    break;
                $par2 = $par2 + 1 | 0;
            }
        }
        if ($par2 >= 0)
            ju_ArrayList_remove(var$5, $par2);
        return;
    }
    $par1Entity = new jl_IndexOutOfBoundsException;
    $par1Entity.$suppressionEnabled = 1;
    $par1Entity.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1Entity);
    $rt_throw($par1Entity);
},
nms_Chunk_canBlockSeeTheSky = ($this, $par1, $par2, $par3) => {
    return $par2 < $this.$heightMap.data[$par3 << 4 | $par1] ? 0 : 1;
},
nms_Chunk_getChunkBlockTileEntity = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, var$6, var$7, var$8, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = new nms_ChunkPosition;
        $var4.$x = $par1;
        $var4.$y = $par2;
        $var4.$z = $par3;
        $var5 = $this.$chunkTileEntityMap;
        var$6 = ($rt_imul($par1, 8976890) + $rt_imul($par2, 981131) | 0) + $par3 | 0;
        var$7 = $var5.$elementData.data;
        $var5 = var$7[var$6 & (var$7.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$6) {
                var$8 = $var5.$key;
                if ($var4 !== var$8 && !nms_ChunkPosition_equals($var4, var$8) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        if ($var5 !== null) {
            if ($var5 !== null && $var5.$tileEntityInvalid) {
                ju_HashMap_removeByKey($this.$chunkTileEntityMap, $var4);
                return null;
            }
            return $var5;
        }
        $var6 = $this.$getBlockID($par1, $par2, $par3);
        if ($var6 > 0) {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data;
            if (var$7[$var6].$isBlockContainer) {
                $var5 = var$7[$var6];
                var$8 = $this.$worldObj1;
                $ptr = 1;
                continue main;
            }
        }
        return null;
    case 1:
        $tmp = $var5.$createNewTileEntity(var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$8 = $this.$worldObj1;
        $par1 = ($this.$xPosition0 * 16 | 0) + $par1 | 0;
        $par3 = ($this.$zPosition0 * 16 | 0) + $par3 | 0;
        $ptr = 2;
    case 2:
        nms_World_setBlockTileEntity(var$8, $par1, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $this.$chunkTileEntityMap;
        if ($var4 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            $par3 = ($rt_imul($var4.$x, 8976890) + $rt_imul($var4.$y, 981131) | 0) + $var4.$z | 0;
            var$7 = $var5.$elementData.data;
            $var5 = var$7[$par3 & (var$7.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == $par3) {
                    var$8 = $var5.$key;
                    if ($var4 !== var$8 && !nms_ChunkPosition_equals($var4, var$8) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        if ($var5 !== null && $var5.$tileEntityInvalid) {
            ju_HashMap_removeByKey($this.$chunkTileEntityMap, $var4);
            return null;
        }
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var5, var$6, var$7, var$8, $var6, $ptr);
},
nms_Chunk_setChunkBlockTileEntity = ($this, $par1, $par2, $par3, $par4TileEntity) => {
    let $var5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4TileEntity = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = new nms_ChunkPosition;
        $var5.$x = $par1;
        $var5.$y = $par2;
        $var5.$z = $par3;
        $par4TileEntity.$worldObj2 = $this.$worldObj1;
        $par4TileEntity.$xCoord0 = ($this.$xPosition0 * 16 | 0) + $par1 | 0;
        $par4TileEntity.$yCoord0 = $par2;
        $par4TileEntity.$zCoord0 = ($this.$zPosition0 * 16 | 0) + $par3 | 0;
        if ($this.$getBlockID($par1, $par2, $par3)) {
            nms_Block_$callClinit();
            if ($rt_isInstance(nms_Block_blocksList.data[$this.$getBlockID($par1, $par2, $par3)], nms_ITileEntityProvider)) {
                var$6 = $this.$chunkTileEntityMap;
                $par3 = ($rt_imul($var5.$x, 8976890) + $rt_imul($var5.$y, 981131) | 0) + $var5.$z | 0;
                var$7 = var$6.$elementData.data;
                var$6 = var$7[$par3 & (var$7.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == $par3) {
                        var$8 = var$6.$key;
                        if ($var5 !== var$8 && !nms_ChunkPosition_equals($var5, var$8) ? 0 : 1)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
                if (var$6 === null ? 0 : 1) {
                    var$6 = $this.$chunkTileEntityMap;
                    if ($var5 === null) {
                        var$6 = var$6.$elementData.data[0];
                        while (var$6 !== null && var$6.$key !== null) {
                            var$6 = var$6.$next3;
                        }
                    } else {
                        $par2 = ($rt_imul($var5.$x, 8976890) + $rt_imul($var5.$y, 981131) | 0) + $var5.$z | 0;
                        var$7 = var$6.$elementData.data;
                        var$6 = var$7[$par2 & (var$7.length - 1 | 0)];
                        while (var$6 !== null) {
                            if (var$6.$origKeyHash == $par2) {
                                var$8 = var$6.$key;
                                if ($var5 !== var$8 && !nms_ChunkPosition_equals($var5, var$8) ? 0 : 1)
                                    break;
                            }
                            var$6 = var$6.$next3;
                        }
                    }
                    var$6 = var$6 === null ? null : var$6.$value0;
                    $ptr = 1;
                    continue main;
                }
                $par4TileEntity.$tileEntityInvalid = 0;
                ju_HashMap_putImpl($this.$chunkTileEntityMap, $var5, $par4TileEntity);
            }
        }
        return;
    case 1:
        var$6.$invalidate();
        if ($rt_suspending()) {
            break main;
        }
        $par4TileEntity.$tileEntityInvalid = 0;
        ju_HashMap_putImpl($this.$chunkTileEntityMap, $var5, $par4TileEntity);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4TileEntity, $var5, var$6, var$7, var$8, $ptr);
},
nms_Chunk_removeChunkBlockTileEntity = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = new nms_ChunkPosition;
        $var4.$x = $par1;
        $var4.$y = $par2;
        $var4.$z = $par3;
        if ($this.$isChunkLoaded) {
            $var4 = ju_HashMap_removeByKey($this.$chunkTileEntityMap, $var4);
            $var5 = $var4 === null ? null : $var4.$value0;
            if ($var5 !== null) {
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $var5.$invalidate();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var5, $ptr);
},
nms_Chunk_onChunkLoad = $this => {
    let var$1, var$2, var$3, var$4, $var2$index, $var1, $var2$index_0, var$8, var$9, var$10, $var2$index_1, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var2$index_1 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var2$index_0 = $thread.pop();$var1 = $thread.pop();$var2$index = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$isChunkLoaded = 1;
        var$1 = $this.$worldObj1;
        var$2 = $this.$chunkTileEntityMap;
        if (var$2.$cachedValues === null) {
            var$3 = new ju_HashMap$2;
            var$3.$this$01 = var$2;
            var$2.$cachedValues = var$3;
        }
        var$2 = var$2.$cachedValues;
        if (!var$1.$scanningTileEntities) {
            var$1 = var$1.$loadedTileEntityList;
            var$2 = var$2.$iterator();
            while (var$2.$hasNext()) {
                var$3 = var$2.$next();
                ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
                var$4 = var$1.$array.data;
                $var2$index = var$1.$size0;
                var$1.$size0 = $var2$index + 1 | 0;
                var$4[$var2$index] = var$3;
                var$1.$modCount = var$1.$modCount + 1 | 0;
            }
        } else {
            var$1 = var$1.$addedTileEntityList;
            var$2 = var$2.$iterator();
            while (var$2.$hasNext()) {
                var$3 = var$2.$next();
                ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
                var$4 = var$1.$array.data;
                $var2$index = var$1.$size0;
                var$1.$size0 = $var2$index + 1 | 0;
                var$4[$var2$index] = var$3;
                var$1.$modCount = var$1.$modCount + 1 | 0;
            }
        }
        $var1 = 0;
        $var2$index_0 = 0;
        var$8 = 0;
        a: {
            while (true) {
                var$4 = $this.$entityLists.data;
                if ($var1 >= var$4.length)
                    break;
                var$1 = var$4[$var1];
                var$9 = var$1.$modCount;
                var$10 = var$1.$size();
                $var2$index_1 = $var2$index_0;
                while ($var2$index_1 >= var$10 ? 0 : 1) {
                    if (var$9 < var$1.$modCount) {
                        var$1 = new ju_ConcurrentModificationException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        $rt_throw(var$1);
                    }
                    $var2$index = $var2$index_1 + 1 | 0;
                    var$1.$get($var2$index_1);
                    $var2$index_1 = $var2$index;
                }
                var$1 = $this.$worldObj1;
                var$3 = $this.$entityLists.data[$var1];
                var$12 = var$1.$loadedEntityList;
                $var2$index_1 = var$3.$modCount;
                var$13 = var$3.$size();
                var$9 = var$8;
                while (var$9 >= var$13 ? 0 : 1) {
                    if ($var2$index_1 < var$3.$modCount) {
                        var$1 = new ju_ConcurrentModificationException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$1);
                        $rt_throw(var$1);
                    }
                    var$10 = var$9 + 1 | 0;
                    var$2 = var$3.$get(var$9);
                    ju_ArrayList_ensureCapacity(var$12, var$12.$size0 + 1 | 0);
                    var$4 = var$12.$array.data;
                    $var2$index = var$12.$size0;
                    var$12.$size0 = $var2$index + 1 | 0;
                    var$4[$var2$index] = var$2;
                    var$12.$modCount = var$12.$modCount + 1 | 0;
                    var$9 = var$10;
                }
                var$10 = 0;
                while (true) {
                    $var2$index = $rt_compare(var$10, var$3.$size0);
                    if ($var2$index >= 0)
                        break;
                    if (var$10 < 0)
                        break a;
                    if ($var2$index >= 0)
                        break a;
                    var$12 = var$3.$array.data[var$10];
                    $var2$index = 0;
                    var$2 = var$1.$worldAccesses;
                    var$9 = $rt_compare($var2$index, var$2.$size0);
                    if (var$9 < 0) {
                        if ($var2$index >= 0 && var$9 < 0) {
                            var$2 = var$2.$array.data[$var2$index].$theWorldServer.$theEntityTracker;
                            $ptr = 1;
                            continue main;
                        }
                        var$1 = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_(var$1);
                        $rt_throw(var$1);
                    }
                    b: {
                        nms_IntHashMap_addKey(var$1.$entityIdMap, var$12.$entityId, var$12);
                        var$4 = var$12.$getParts();
                        if (var$4 !== null) {
                            var$9 = 0;
                            while (true) {
                                var$14 = var$4.data;
                                if (var$9 >= var$14.length)
                                    break b;
                                nms_IntHashMap_addKey(var$1.$entityIdMap, var$14[var$9].$entityId, var$14[var$9]);
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$10 = var$10 + 1 | 0;
                }
                $var1 = $var1 + 1 | 0;
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 1:
        nms_EntityTracker_addEntityToTracker0(var$2, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var2$index = $var2$index + 1 | 0;
        c: {
            d: while (true) {
                var$2 = var$1.$worldAccesses;
                var$9 = $rt_compare($var2$index, var$2.$size0);
                if (var$9 < 0) {
                    if ($var2$index >= 0 && var$9 < 0) {
                        var$2 = var$2.$array.data[$var2$index].$theWorldServer.$theEntityTracker;
                        continue main;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_(var$1);
                    $rt_throw(var$1);
                }
                e: {
                    nms_IntHashMap_addKey(var$1.$entityIdMap, var$12.$entityId, var$12);
                    var$4 = var$12.$getParts();
                    if (var$4 !== null) {
                        var$9 = 0;
                        while (true) {
                            var$14 = var$4.data;
                            if (var$9 >= var$14.length)
                                break e;
                            nms_IntHashMap_addKey(var$1.$entityIdMap, var$14[var$9].$entityId, var$14[var$9]);
                            var$9 = var$9 + 1 | 0;
                        }
                    }
                }
                var$10 = var$10 + 1 | 0;
                while (true) {
                    $var2$index = $rt_compare(var$10, var$3.$size0);
                    if ($var2$index < 0)
                        break;
                    $var1 = $var1 + 1 | 0;
                    var$4 = $this.$entityLists.data;
                    if ($var1 >= var$4.length)
                        break d;
                    var$1 = var$4[$var1];
                    var$9 = var$1.$modCount;
                    var$10 = var$1.$size();
                    $var2$index_1 = $var2$index_0;
                    while ($var2$index_1 >= var$10 ? 0 : 1) {
                        if (var$9 < var$1.$modCount) {
                            var$1 = new ju_ConcurrentModificationException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            $rt_throw(var$1);
                        }
                        $var2$index = $var2$index_1 + 1 | 0;
                        var$1.$get($var2$index_1);
                        $var2$index_1 = $var2$index;
                    }
                    var$1 = $this.$worldObj1;
                    var$3 = $this.$entityLists.data[$var1];
                    var$12 = var$1.$loadedEntityList;
                    $var2$index_1 = var$3.$modCount;
                    var$13 = var$3.$size();
                    var$9 = var$8;
                    while (var$9 >= var$13 ? 0 : 1) {
                        if ($var2$index_1 < var$3.$modCount) {
                            var$1 = new ju_ConcurrentModificationException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace(var$1);
                            $rt_throw(var$1);
                        }
                        var$10 = var$9 + 1 | 0;
                        var$2 = var$3.$get(var$9);
                        ju_ArrayList_ensureCapacity(var$12, var$12.$size0 + 1 | 0);
                        var$4 = var$12.$array.data;
                        $var2$index = var$12.$size0;
                        var$12.$size0 = $var2$index + 1 | 0;
                        var$4[$var2$index] = var$2;
                        var$12.$modCount = var$12.$modCount + 1 | 0;
                        var$9 = var$10;
                    }
                    var$10 = 0;
                }
                if (var$10 < 0)
                    break c;
                if ($var2$index >= 0)
                    break c;
                var$12 = var$3.$array.data[var$10];
                $var2$index = 0;
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $var2$index, $var1, $var2$index_0, var$8, var$9, var$10, $var2$index_1, var$12, var$13, var$14, $ptr);
},
nms_Chunk_onChunkUnload = $this => {
    let $var1, $var2, var$3, var$4, var$5, $var3, var$7, var$8, var$9, var$10;
    $this.$isChunkLoaded = 0;
    $var1 = $this.$chunkTileEntityMap;
    if ($var1.$cachedValues === null) {
        $var2 = new ju_HashMap$2;
        $var2.$this$01 = $var1;
        $var1.$cachedValues = $var2;
    }
    $var1 = $var1.$cachedValues.$iterator();
    while ($var1.$hasNext()) {
        $var2 = $var1.$next();
        var$3 = $this.$worldObj1.$entityRemoval;
        ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
        var$4 = var$3.$array.data;
        var$5 = var$3.$size0;
        var$3.$size0 = var$5 + 1 | 0;
        var$4[var$5] = $var2;
        var$3.$modCount = var$3.$modCount + 1 | 0;
    }
    $var3 = 0;
    while (true) {
        var$4 = $this.$entityLists.data;
        if ($var3 >= var$4.length)
            break;
        $var1 = $this.$worldObj1;
        $var2 = var$4[$var3];
        var$3 = $var1.$unloadedEntityList;
        var$7 = $var2.$modCount;
        var$8 = $var2.$size();
        var$9 = 0;
        while (var$9 >= var$8 ? 0 : 1) {
            if (var$7 < $var2.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            var$5 = var$9 + 1 | 0;
            $var1 = $var2.$get(var$9);
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$4 = var$3.$array.data;
            var$10 = var$3.$size0;
            var$3.$size0 = var$10 + 1 | 0;
            var$4[var$10] = $var1;
            var$3.$modCount = var$3.$modCount + 1 | 0;
            var$9 = var$5;
        }
        $var3 = $var3 + 1 | 0;
    }
},
nms_Chunk_setChunkModified = $this => {
    $this.$isModified = 1;
},
nms_Chunk_getEntitiesWithinAABBForEntity = ($this, $par1Entity, $par2AxisAlignedBB, $par3List, $par4IEntitySelector) => {
    let var$5, $var5, $var6, var$8, $var8, $var9, $var10, var$12, var$13, $var11, $var12;
    var$5 = ($par2AxisAlignedBB.$minY0 - 2.0) / 16.0;
    $var5 = var$5 | 0;
    if (var$5 < $var5)
        $var5 = $var5 - 1 | 0;
    var$5 = ($par2AxisAlignedBB.$maxY + 2.0) / 16.0;
    $var6 = var$5 | 0;
    if (var$5 < $var6)
        $var6 = $var6 - 1 | 0;
    if ($var5 < 0) {
        $var5 = 0;
        if ($var5 > $var6)
            $var6 = $var5;
    }
    var$8 = $this.$entityLists.data.length;
    if ($var6 >= var$8) {
        $var6 = var$8 - 1 | 0;
        if ($var5 >= $var6)
            $var5 = $var6;
    }
    a: {
        while ($var5 <= $var6) {
            $var8 = $this.$entityLists.data[$var5];
            $var9 = 0;
            while (true) {
                var$8 = $rt_compare($var9, $var8.$size0);
                if (var$8 >= 0)
                    break;
                if ($var9 < 0)
                    break a;
                if (var$8 >= 0)
                    break a;
                b: {
                    $var10 = $var8.$array.data[$var9];
                    if ($var10 !== $par1Entity && nms_AxisAlignedBB_intersectsWith($var10.$boundingBox0, $par2AxisAlignedBB) && !($par4IEntitySelector !== null && !$par4IEntitySelector.$isEntityApplicable($var10))) {
                        ju_ArrayList_ensureCapacity($par3List, $par3List.$size0 + 1 | 0);
                        var$12 = $par3List.$array.data;
                        var$13 = $par3List.$size0;
                        $par3List.$size0 = var$13 + 1 | 0;
                        var$12[var$13] = $var10;
                        $par3List.$modCount = $par3List.$modCount + 1 | 0;
                        $var11 = $var10.$getParts();
                        if ($var11 !== null) {
                            $var12 = 0;
                            while (true) {
                                var$12 = $var11.data;
                                if ($var12 >= var$12.length)
                                    break b;
                                $var10 = var$12[$var12];
                                if ($var10 !== $par1Entity && nms_AxisAlignedBB_intersectsWith($var10.$boundingBox0, $par2AxisAlignedBB) && !($par4IEntitySelector !== null && !$par4IEntitySelector.$isEntityApplicable($var10))) {
                                    ju_ArrayList_ensureCapacity($par3List, $par3List.$size0 + 1 | 0);
                                    var$12 = $par3List.$array.data;
                                    var$13 = $par3List.$size0;
                                    $par3List.$size0 = var$13 + 1 | 0;
                                    var$12[var$13] = $var10;
                                    $par3List.$modCount = $par3List.$modCount + 1 | 0;
                                }
                                $var12 = $var12 + 1 | 0;
                            }
                        }
                    }
                }
                $var9 = $var9 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        return;
    }
    $par1Entity = new jl_IndexOutOfBoundsException;
    $par1Entity.$suppressionEnabled = 1;
    $par1Entity.$writableStackTrace = 1;
    $rt_throw($par1Entity);
},
nms_Chunk_getEntitiesOfTypeWithinAAAB = ($this, $par1Class, $par2AxisAlignedBB, $par3List, $par4IEntitySelector) => {
    let var$5, $var5, $var6, $var9, $var8, var$10, $var10, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$par4IEntitySelector = $thread.pop();$par3List = $thread.pop();$par2AxisAlignedBB = $thread.pop();$par1Class = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = ($par2AxisAlignedBB.$minY0 - 2.0) / 16.0;
        $var5 = var$5 | 0;
        if (var$5 < $var5)
            $var5 = $var5 - 1 | 0;
        var$5 = ($par2AxisAlignedBB.$maxY + 2.0) / 16.0;
        $var6 = var$5 | 0;
        if (var$5 < $var6)
            $var6 = $var6 - 1 | 0;
        if ($var5 < 0)
            $var5 = 0;
        else {
            $var9 = $this.$entityLists.data.length;
            if ($var5 >= $var9)
                $var5 = $var9 - 1 | 0;
        }
        $var9 = $this.$entityLists.data.length;
        if ($var6 >= $var9)
            $var6 = $var9 - 1 | 0;
        else if ($var6 < 0)
            $var6 = 0;
        a: {
            while ($var5 <= $var6) {
                $var8 = $this.$entityLists.data[$var5];
                $var9 = 0;
                while (true) {
                    var$10 = $rt_compare($var9, $var8.$size0);
                    if (var$10 >= 0)
                        break;
                    if ($var9 < 0)
                        break a;
                    if (var$10 >= 0)
                        break a;
                    $var10 = $var8.$array.data[$var9];
                    var$12 = $var10.constructor;
                    if (var$12 === null)
                        var$13 = null;
                    else {
                        var$13 = var$12.classObject;
                        if (var$13 === null) {
                            var$13 = new jl_Class;
                            var$13.$platformClass = var$12;
                            var$12.classObject = var$13;
                        }
                    }
                    if (otp_Platform_isAssignable(var$13.$platformClass, $par1Class.$platformClass) && nms_AxisAlignedBB_intersectsWith($var10.$boundingBox0, $par2AxisAlignedBB)) {
                        if ($par4IEntitySelector !== null) {
                            $ptr = 1;
                            continue main;
                        }
                        ju_ArrayList_ensureCapacity($par3List, $par3List.$size0 + 1 | 0);
                        var$14 = $par3List.$array.data;
                        var$15 = $par3List.$size0;
                        $par3List.$size0 = var$15 + 1 | 0;
                        var$14[var$15] = $var10;
                        $par3List.$modCount = $par3List.$modCount + 1 | 0;
                    }
                    $var9 = $var9 + 1 | 0;
                }
                $var5 = $var5 + 1 | 0;
            }
            return;
        }
        $par1Class = new jl_IndexOutOfBoundsException;
        $par1Class.$suppressionEnabled = 1;
        $par1Class.$writableStackTrace = 1;
        $rt_throw($par1Class);
    case 1:
        $tmp = $par4IEntitySelector.$isEntityApplicable($var10);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10) {
            var$15 = $par3List.$size0;
            var$10 = 1;
            var$10 = var$15 + var$10 | 0;
            ju_ArrayList_ensureCapacity($par3List, var$10);
            var$14 = $par3List.$array;
            var$14 = var$14.data;
            var$15 = $par3List.$size0;
            var$10 = 1;
            var$10 = var$15 + var$10 | 0;
            $par3List.$size0 = var$10;
            var$14[var$15] = $var10;
            var$10 = $par3List.$modCount;
            var$15 = 1;
            var$10 = var$10 + var$15 | 0;
            $par3List.$modCount = var$10;
        }
        b: {
            c: while (true) {
                $var9 = $var9 + 1 | 0;
                while (true) {
                    var$10 = $rt_compare($var9, $var8.$size0);
                    if (var$10 < 0)
                        break;
                    $var5 = $var5 + 1 | 0;
                    if ($var5 > $var6)
                        break c;
                    $var8 = $this.$entityLists.data[$var5];
                    $var9 = 0;
                }
                if ($var9 < 0)
                    break b;
                if (var$10 >= 0)
                    break b;
                $var10 = $var8.$array.data[$var9];
                var$12 = $var10.constructor;
                if (var$12 === null)
                    var$13 = null;
                else {
                    var$13 = var$12.classObject;
                    if (var$13 === null) {
                        var$13 = new jl_Class;
                        var$13.$platformClass = var$12;
                        var$12.classObject = var$13;
                    }
                }
                if (!otp_Platform_isAssignable(var$13.$platformClass, $par1Class.$platformClass))
                    continue;
                if (!nms_AxisAlignedBB_intersectsWith($var10.$boundingBox0, $par2AxisAlignedBB))
                    continue;
                if ($par4IEntitySelector !== null) {
                    continue main;
                }
                var$15 = $par3List.$size0;
                var$10 = 1;
                var$10 = var$15 + var$10 | 0;
                ju_ArrayList_ensureCapacity($par3List, var$10);
                var$14 = $par3List.$array;
                var$14 = var$14.data;
                var$15 = $par3List.$size0;
                var$10 = 1;
                var$10 = var$15 + var$10 | 0;
                $par3List.$size0 = var$10;
                var$14[var$15] = $var10;
                var$10 = $par3List.$modCount;
                var$15 = 1;
                var$10 = var$10 + var$15 | 0;
                $par3List.$modCount = var$10;
            }
            return;
        }
        $par1Class = new jl_IndexOutOfBoundsException;
        $par1Class.$suppressionEnabled = 1;
        $par1Class.$writableStackTrace = 1;
        $rt_throw($par1Class);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Class, $par2AxisAlignedBB, $par3List, $par4IEntitySelector, var$5, $var5, $var6, $var9, $var8, var$10, $var10, var$12, var$13, var$14, var$15, $ptr);
},
nms_Chunk_needsSaving = ($this, $par1) => {
    a: {
        if (!$par1) {
            if (!$this.$hasEntities)
                break a;
            if (Long_lt($this.$worldObj1.$worldInfo.$getWorldTotalTime(), Long_add($this.$lastSaveTime, Long_fromInt(600))))
                break a;
            return 1;
        }
        if (!(!($this.$hasEntities && Long_ne($this.$worldObj1.$worldInfo.$getWorldTotalTime(), $this.$lastSaveTime)) && !$this.$isModified))
            return 1;
    }
    return $this.$isModified;
},
nms_Chunk_getRandomWithSeed = ($this, $par1) => {
    let var$2, var$3, var$4, var$5;
    var$2 = new nle_EaglercraftRandom;
    var$3 = $this.$worldObj1.$worldInfo.$getSeed();
    var$4 = $this.$xPosition0;
    var$5 = Long_add(Long_add(var$3, Long_fromInt($rt_imul($rt_imul(var$4, var$4), 4987142))), Long_fromInt($rt_imul(var$4, 5947611)));
    var$4 = $this.$zPosition0;
    $par1 = Long_xor(Long_add(Long_add(var$5, Long_mul(Long_fromInt($rt_imul(var$4, var$4)), Long_fromInt(4392871))), Long_fromInt($rt_imul(var$4, 389711))), $par1);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = $par1;
    return var$2;
},
nms_Chunk_isEmpty = $this => {
    return 0;
},
nms_Chunk_populateChunk = ($this, $par1IChunkProvider, $par2IChunkProvider, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2IChunkProvider = $thread.pop();$par1IChunkProvider
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$isTerrainPopulated) {
                var$5 = $par3 + 1 | 0;
                var$6 = $par4 + 1 | 0;
                var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                var$8 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                var$9 = Long_shl(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), 32);
                var$10 = Long_or(var$8, var$9);
                var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                var$11 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$12 = var$7.$hashArray.data;
                var$13 = var$12.length - 1 | 0;
                var$7 = var$12[var$11 & var$13];
                b: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break b;
                        }
                        if (Long_eq(var$7.$key1, var$10))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                if (var$7 === null ? 0 : 1) {
                    var$14 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
                    var$10 = Long_or(var$14, var$9);
                    var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                    var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$13];
                    c: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break c;
                            }
                            if (Long_eq(var$7.$key1, var$10))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    if (var$7 === null ? 0 : 1) {
                        var$10 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
                        var$8 = Long_or(var$8, var$10);
                        var$5 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$13];
                        d: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break d;
                                }
                                if (Long_eq(var$7.$key1, var$8))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$10 = Long_or(var$14, var$10);
                            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$13];
                            e: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$10)) {
                                        var$7 = var$7.$value4;
                                        break e;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            f: {
                                var$15 = var$7;
                                if (var$15 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break f;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break f;
                                    var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$15.$isTerrainPopulated) {
                                    var$15.$isTerrainPopulated = 1;
                                    var$7 = $par1IChunkProvider.$currentChunkProvider;
                                    if (var$7 !== null) {
                                        $ptr = 5;
                                        continue main;
                                    }
                                }
                                break a;
                            }
                            $ptr = 4;
                            continue main;
                        }
                    }
                }
            }
        }
        var$16 = $par3 - 1 | 0;
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$8 = Long_and(Long_fromInt(var$16), Long_create(4294967295, 0));
        var$17 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
        var$14 = Long_or(var$8, var$17);
        var$5 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$13 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$6 = var$13 & (var$12.length - 1 | 0);
        var$7 = var$12[var$6];
        g: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break g;
                }
                if (Long_eq(var$7.$key1, var$14))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$5 = var$7 === null ? 0 : 1;
        h: {
            i: {
                if (var$5) {
                    var$7 = var$12[var$6];
                    j: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$14)) {
                                var$7 = var$7.$value4;
                                break j;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break h;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break h;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$5 = $par4 + 1 | 0;
                        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                        var$9 = Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32);
                        var$18 = Long_or(var$8, var$9);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$11 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                        var$12 = var$7.$hashArray.data;
                        var$19 = var$12.length - 1 | 0;
                        var$20 = var$11 & var$19;
                        var$7 = var$12[var$20];
                        k: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break k;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$10 = Long_or(Long_and(Long_fromInt($par3), Long_create(4294967295, 0)), var$9);
                            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$19];
                            l: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break l;
                                    }
                                    if (Long_eq(var$7.$key1, var$10))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$20];
                                m: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break m;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$13 & var$19];
                                    n: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$14)) {
                                                var$7 = var$7.$value4;
                                                break n;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    o: {
                                        var$15 = var$7;
                                        if (var$15 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break o;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break o;
                                            var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$15.$isTerrainPopulated) {
                                            var$15.$isTerrainPopulated = 1;
                                            var$7 = $par1IChunkProvider.$currentChunkProvider;
                                            if (var$7 !== null) {
                                                $ptr = 7;
                                                continue main;
                                            }
                                        }
                                        break i;
                                    }
                                    $ptr = 6;
                                    continue main;
                                }
                            }
                        }
                    }
                }
            }
            $par4 = $par4 - 1 | 0;
            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
            var$10 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
            var$9 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
            var$10 = Long_or(var$10, var$9);
            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
            var$19 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$12 = var$7.$hashArray.data;
            var$6 = var$19 & (var$12.length - 1 | 0);
            var$7 = var$12[var$6];
            p: {
                while (true) {
                    if (var$7 === null) {
                        var$7 = null;
                        break p;
                    }
                    if (Long_eq(var$7.$key1, var$10))
                        break;
                    var$7 = var$7.$nextEntry;
                }
            }
            var$5 = var$7 === null ? 0 : 1;
            q: {
                r: {
                    if (var$5) {
                        var$7 = var$12[var$6];
                        s: {
                            while (var$7 !== null) {
                                if (Long_eq(var$7.$key1, var$10)) {
                                    var$7 = var$7.$value4;
                                    break s;
                                }
                                var$7 = var$7.$nextEntry;
                            }
                            var$7 = null;
                        }
                        var$7 = var$7;
                        if (var$7 === null) {
                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                break q;
                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                break q;
                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                        }
                        if (!var$7.$isTerrainPopulated) {
                            var$5 = $par3 + 1 | 0;
                            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                            var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                            var$18 = Long_or(var$21, var$9);
                            var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                            var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                            var$12 = var$7.$hashArray.data;
                            var$20 = var$12.length - 1 | 0;
                            var$6 = var$5 & var$20;
                            var$7 = var$12[var$6];
                            t: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break t;
                                    }
                                    if (Long_eq(var$7.$key1, var$18))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$6];
                                u: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break u;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$18 = Long_or(var$21, var$17);
                                    var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                                    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                                    var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                                    v: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break v;
                                            }
                                            if (Long_eq(var$7.$key1, var$18))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$19 & var$20];
                                        w: {
                                            while (var$7 !== null) {
                                                if (Long_eq(var$7.$key1, var$10)) {
                                                    var$7 = var$7.$value4;
                                                    break w;
                                                }
                                                var$7 = var$7.$nextEntry;
                                            }
                                            var$7 = null;
                                        }
                                        var$15 = var$7;
                                        if (var$15 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break r;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break r;
                                            var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$15.$isTerrainPopulated) {
                                            var$15.$isTerrainPopulated = 1;
                                            var$7 = $par1IChunkProvider.$currentChunkProvider;
                                            if (var$7 !== null) {
                                                $ptr = 11;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                    var$8 = Long_or(var$8, var$9);
                    $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                    $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                    var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                    var$12 = var$7.$hashArray.data;
                    var$5 = var$6 & (var$12.length - 1 | 0);
                    var$7 = var$12[var$5];
                    x: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break x;
                            }
                            if (Long_eq(var$7.$key1, var$8))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    $par3 = var$7 === null ? 0 : 1;
                    y: {
                        z: {
                            if ($par3) {
                                var$7 = var$12[var$5];
                                ba: {
                                    while (var$7 !== null) {
                                        if (Long_eq(var$7.$key1, var$8)) {
                                            var$7 = var$7.$value4;
                                            break ba;
                                        }
                                        var$7 = var$7.$nextEntry;
                                    }
                                    var$7 = null;
                                }
                                var$7 = var$7;
                                if (var$7 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break y;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break y;
                                    var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$7.$isTerrainPopulated) {
                                    var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                                    var$5 = var$12.length - 1 | 0;
                                    var$7 = var$12[var$19 & var$5];
                                    bb: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break bb;
                                            }
                                            if (Long_eq(var$7.$key1, var$10))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$13 & var$5];
                                        bc: {
                                            while (true) {
                                                if (var$7 === null) {
                                                    var$7 = null;
                                                    break bc;
                                                }
                                                if (Long_eq(var$7.$key1, var$14))
                                                    break;
                                                var$7 = var$7.$nextEntry;
                                            }
                                        }
                                        if (var$7 === null ? 0 : 1) {
                                            var$7 = var$12[var$6 & var$5];
                                            bd: {
                                                while (var$7 !== null) {
                                                    if (Long_eq(var$7.$key1, var$8)) {
                                                        var$7 = var$7.$value4;
                                                        break bd;
                                                    }
                                                    var$7 = var$7.$nextEntry;
                                                }
                                                var$7 = null;
                                            }
                                            var$7 = var$7;
                                            if (var$7 === null) {
                                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                    break z;
                                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                    break z;
                                                var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                            }
                                            if (!var$7.$isTerrainPopulated) {
                                                var$7.$isTerrainPopulated = 1;
                                                $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                                if ($par1IChunkProvider !== null) {
                                                    $ptr = 10;
                                                    continue main;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            return;
                        }
                        $ptr = 8;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                $ptr = 9;
                continue main;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        a: {
            if (!var$7.$isTerrainPopulated) {
                var$5 = $par4 + 1 | 0;
                var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                var$9 = Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32);
                var$18 = Long_or(var$8, var$9);
                var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                var$11 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$12 = var$7.$hashArray.data;
                var$19 = var$12.length - 1 | 0;
                var$20 = var$11 & var$19;
                var$7 = var$12[var$20];
                b: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break b;
                        }
                        if (Long_eq(var$7.$key1, var$18))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                if (var$7 === null ? 0 : 1) {
                    var$10 = Long_or(Long_and(Long_fromInt($par3), Long_create(4294967295, 0)), var$9);
                    var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                    var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$19];
                    c: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break c;
                            }
                            if (Long_eq(var$7.$key1, var$10))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    if (var$7 === null ? 0 : 1) {
                        var$7 = var$12[var$20];
                        d: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break d;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$13 & var$19];
                            e: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$14)) {
                                        var$7 = var$7.$value4;
                                        break e;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            f: {
                                var$15 = var$7;
                                if (var$15 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break f;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break f;
                                    var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$15.$isTerrainPopulated) {
                                    var$15.$isTerrainPopulated = 1;
                                    var$7 = $par1IChunkProvider.$currentChunkProvider;
                                    if (var$7 !== null) {
                                        $ptr = 7;
                                        continue main;
                                    }
                                }
                                break a;
                            }
                            $ptr = 6;
                            continue main;
                        }
                    }
                }
            }
        }
        $par4 = $par4 - 1 | 0;
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$10 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
        var$9 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
        var$10 = Long_or(var$10, var$9);
        var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$19 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$6 = var$19 & (var$12.length - 1 | 0);
        var$7 = var$12[var$6];
        g: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break g;
                }
                if (Long_eq(var$7.$key1, var$10))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$5 = var$7 === null ? 0 : 1;
        h: {
            i: {
                if (var$5) {
                    var$7 = var$12[var$6];
                    be: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$10)) {
                                var$7 = var$7.$value4;
                                break be;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break h;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break h;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$5 = $par3 + 1 | 0;
                        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                        var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                        var$18 = Long_or(var$21, var$9);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                        var$12 = var$7.$hashArray.data;
                        var$20 = var$12.length - 1 | 0;
                        var$6 = var$5 & var$20;
                        var$7 = var$12[var$6];
                        bf: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bf;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$6];
                            bg: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bg;
                                    }
                                    if (Long_eq(var$7.$key1, var$18))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$18 = Long_or(var$21, var$17);
                                var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                                var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                                bh: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bh;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$19 & var$20];
                                    bi: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$10)) {
                                                var$7 = var$7.$value4;
                                                break bi;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    var$15 = var$7;
                                    if (var$15 === null) {
                                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                            break i;
                                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                            break i;
                                        var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                    }
                                    if (!var$15.$isTerrainPopulated) {
                                        var$15.$isTerrainPopulated = 1;
                                        var$7 = $par1IChunkProvider.$currentChunkProvider;
                                        if (var$7 !== null) {
                                            $ptr = 11;
                                            continue main;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                var$8 = Long_or(var$8, var$9);
                $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                var$12 = var$7.$hashArray.data;
                var$5 = var$6 & (var$12.length - 1 | 0);
                var$7 = var$12[var$5];
                p: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break p;
                        }
                        if (Long_eq(var$7.$key1, var$8))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                $par3 = var$7 === null ? 0 : 1;
                q: {
                    r: {
                        if ($par3) {
                            var$7 = var$12[var$5];
                            s: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$8)) {
                                        var$7 = var$7.$value4;
                                        break s;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            var$7 = var$7;
                            if (var$7 === null) {
                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                    break q;
                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                    break q;
                                var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                            }
                            if (!var$7.$isTerrainPopulated) {
                                var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                                var$5 = var$12.length - 1 | 0;
                                var$7 = var$12[var$19 & var$5];
                                t: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break t;
                                        }
                                        if (Long_eq(var$7.$key1, var$10))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$13 & var$5];
                                    u: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break u;
                                            }
                                            if (Long_eq(var$7.$key1, var$14))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$6 & var$5];
                                        v: {
                                            while (var$7 !== null) {
                                                if (Long_eq(var$7.$key1, var$8)) {
                                                    var$7 = var$7.$value4;
                                                    break v;
                                                }
                                                var$7 = var$7.$nextEntry;
                                            }
                                            var$7 = null;
                                        }
                                        var$7 = var$7;
                                        if (var$7 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break r;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break r;
                                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$7.$isTerrainPopulated) {
                                            var$7.$isTerrainPopulated = 1;
                                            $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                            if ($par1IChunkProvider !== null) {
                                                $ptr = 10;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        return;
                    }
                    $ptr = 8;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            $ptr = 9;
            continue main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        a: {
            if (!var$7.$isTerrainPopulated) {
                var$5 = $par3 + 1 | 0;
                var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                var$18 = Long_or(var$21, var$9);
                var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                var$12 = var$7.$hashArray.data;
                var$20 = var$12.length - 1 | 0;
                var$6 = var$5 & var$20;
                var$7 = var$12[var$6];
                bj: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break bj;
                        }
                        if (Long_eq(var$7.$key1, var$18))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                if (var$7 === null ? 0 : 1) {
                    var$7 = var$12[var$6];
                    bk: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break bk;
                            }
                            if (Long_eq(var$7.$key1, var$18))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    if (var$7 === null ? 0 : 1) {
                        var$18 = Long_or(var$21, var$17);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                        bl: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bl;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$19 & var$20];
                            bm: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$10)) {
                                        var$7 = var$7.$value4;
                                        break bm;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            var$15 = var$7;
                            if (var$15 === null) {
                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                    break a;
                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                    break a;
                                var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                            }
                            if (!var$15.$isTerrainPopulated) {
                                var$15.$isTerrainPopulated = 1;
                                var$7 = $par1IChunkProvider.$currentChunkProvider;
                                if (var$7 !== null) {
                                    $ptr = 11;
                                    continue main;
                                }
                            }
                        }
                    }
                }
            }
            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
            var$8 = Long_or(var$8, var$9);
            $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
            $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
            var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
            var$12 = var$7.$hashArray.data;
            var$5 = var$6 & (var$12.length - 1 | 0);
            var$7 = var$12[var$5];
            g: {
                while (true) {
                    if (var$7 === null) {
                        var$7 = null;
                        break g;
                    }
                    if (Long_eq(var$7.$key1, var$8))
                        break;
                    var$7 = var$7.$nextEntry;
                }
            }
            $par3 = var$7 === null ? 0 : 1;
            h: {
                i: {
                    if ($par3) {
                        var$7 = var$12[var$5];
                        be: {
                            while (var$7 !== null) {
                                if (Long_eq(var$7.$key1, var$8)) {
                                    var$7 = var$7.$value4;
                                    break be;
                                }
                                var$7 = var$7.$nextEntry;
                            }
                            var$7 = null;
                        }
                        var$7 = var$7;
                        if (var$7 === null) {
                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                break h;
                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                break h;
                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                        }
                        if (!var$7.$isTerrainPopulated) {
                            var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                            var$5 = var$12.length - 1 | 0;
                            var$7 = var$12[var$19 & var$5];
                            bf: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bf;
                                    }
                                    if (Long_eq(var$7.$key1, var$10))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$13 & var$5];
                                bg: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bg;
                                        }
                                        if (Long_eq(var$7.$key1, var$14))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$6 & var$5];
                                    bh: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$8)) {
                                                var$7 = var$7.$value4;
                                                break bh;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    var$7 = var$7;
                                    if (var$7 === null) {
                                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                            break i;
                                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                            break i;
                                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                    }
                                    if (!var$7.$isTerrainPopulated) {
                                        var$7.$isTerrainPopulated = 1;
                                        $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                        if ($par1IChunkProvider !== null) {
                                            $ptr = 10;
                                            continue main;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    return;
                }
                $ptr = 8;
                continue main;
            }
            $ptr = 3;
            continue main;
        }
        $ptr = 9;
        continue main;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        a: {
            if (!var$7.$isTerrainPopulated) {
                var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                var$5 = var$12.length - 1 | 0;
                var$7 = var$12[var$19 & var$5];
                bj: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break bj;
                        }
                        if (Long_eq(var$7.$key1, var$10))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                if (var$7 === null ? 0 : 1) {
                    var$7 = var$12[var$13 & var$5];
                    bk: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break bk;
                            }
                            if (Long_eq(var$7.$key1, var$14))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    if (var$7 === null ? 0 : 1) {
                        var$7 = var$12[var$6 & var$5];
                        bl: {
                            while (var$7 !== null) {
                                if (Long_eq(var$7.$key1, var$8)) {
                                    var$7 = var$7.$value4;
                                    break bl;
                                }
                                var$7 = var$7.$nextEntry;
                            }
                            var$7 = null;
                        }
                        var$7 = var$7;
                        if (var$7 === null) {
                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                break a;
                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                break a;
                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                        }
                        if (!var$7.$isTerrainPopulated) {
                            var$7.$isTerrainPopulated = 1;
                            $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                            if ($par1IChunkProvider !== null) {
                                $ptr = 10;
                                continue main;
                            }
                        }
                    }
                }
            }
            return;
        }
        $ptr = 8;
        continue main;
    case 4:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (!var$15.$isTerrainPopulated) {
            var$15.$isTerrainPopulated = 1;
            var$7 = $par1IChunkProvider.$currentChunkProvider;
            if (var$7 !== null) {
                $ptr = 5;
                continue main;
            }
        }
        var$16 = $par3 - 1 | 0;
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$8 = Long_and(Long_fromInt(var$16), Long_create(4294967295, 0));
        var$17 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
        var$14 = Long_or(var$8, var$17);
        var$5 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$13 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$6 = var$13 & (var$12.length - 1 | 0);
        var$7 = var$12[var$6];
        b: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break b;
                }
                if (Long_eq(var$7.$key1, var$14))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$5 = var$7 === null ? 0 : 1;
        c: {
            bn: {
                if (var$5) {
                    var$7 = var$12[var$6];
                    bk: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$14)) {
                                var$7 = var$7.$value4;
                                break bk;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break c;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break c;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$5 = $par4 + 1 | 0;
                        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                        var$9 = Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32);
                        var$18 = Long_or(var$8, var$9);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$11 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                        var$12 = var$7.$hashArray.data;
                        var$19 = var$12.length - 1 | 0;
                        var$20 = var$11 & var$19;
                        var$7 = var$12[var$20];
                        bo: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bo;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$10 = Long_or(Long_and(Long_fromInt($par3), Long_create(4294967295, 0)), var$9);
                            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$19];
                            bp: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bp;
                                    }
                                    if (Long_eq(var$7.$key1, var$10))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$20];
                                bq: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bq;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$13 & var$19];
                                    br: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$14)) {
                                                var$7 = var$7.$value4;
                                                break br;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    j: {
                                        var$15 = var$7;
                                        if (var$15 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break j;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break j;
                                            var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$15.$isTerrainPopulated) {
                                            var$15.$isTerrainPopulated = 1;
                                            var$7 = $par1IChunkProvider.$currentChunkProvider;
                                            if (var$7 !== null) {
                                                $ptr = 7;
                                                continue main;
                                            }
                                        }
                                        break bn;
                                    }
                                    $ptr = 6;
                                    continue main;
                                }
                            }
                        }
                    }
                }
            }
            $par4 = $par4 - 1 | 0;
            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
            var$10 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
            var$9 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
            var$10 = Long_or(var$10, var$9);
            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
            var$19 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$12 = var$7.$hashArray.data;
            var$6 = var$19 & (var$12.length - 1 | 0);
            var$7 = var$12[var$6];
            k: {
                while (true) {
                    if (var$7 === null) {
                        var$7 = null;
                        break k;
                    }
                    if (Long_eq(var$7.$key1, var$10))
                        break;
                    var$7 = var$7.$nextEntry;
                }
            }
            var$5 = var$7 === null ? 0 : 1;
            l: {
                bs: {
                    if (var$5) {
                        var$7 = var$12[var$6];
                        bt: {
                            while (var$7 !== null) {
                                if (Long_eq(var$7.$key1, var$10)) {
                                    var$7 = var$7.$value4;
                                    break bt;
                                }
                                var$7 = var$7.$nextEntry;
                            }
                            var$7 = null;
                        }
                        var$7 = var$7;
                        if (var$7 === null) {
                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                break l;
                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                break l;
                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                        }
                        if (!var$7.$isTerrainPopulated) {
                            var$5 = $par3 + 1 | 0;
                            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                            var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                            var$18 = Long_or(var$21, var$9);
                            var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                            var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                            var$12 = var$7.$hashArray.data;
                            var$20 = var$12.length - 1 | 0;
                            var$6 = var$5 & var$20;
                            var$7 = var$12[var$6];
                            bu: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bu;
                                    }
                                    if (Long_eq(var$7.$key1, var$18))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$6];
                                o: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break o;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$18 = Long_or(var$21, var$17);
                                    var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                                    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                                    var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                                    bv: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break bv;
                                            }
                                            if (Long_eq(var$7.$key1, var$18))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$19 & var$20];
                                        r: {
                                            while (var$7 !== null) {
                                                if (Long_eq(var$7.$key1, var$10)) {
                                                    var$7 = var$7.$value4;
                                                    break r;
                                                }
                                                var$7 = var$7.$nextEntry;
                                            }
                                            var$7 = null;
                                        }
                                        var$15 = var$7;
                                        if (var$15 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break bs;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break bs;
                                            var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$15.$isTerrainPopulated) {
                                            var$15.$isTerrainPopulated = 1;
                                            var$7 = $par1IChunkProvider.$currentChunkProvider;
                                            if (var$7 !== null) {
                                                $ptr = 11;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                    var$8 = Long_or(var$8, var$9);
                    $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                    $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                    var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                    var$12 = var$7.$hashArray.data;
                    var$5 = var$6 & (var$12.length - 1 | 0);
                    var$7 = var$12[var$5];
                    bw: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break bw;
                            }
                            if (Long_eq(var$7.$key1, var$8))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    $par3 = var$7 === null ? 0 : 1;
                    bx: {
                        by: {
                            if ($par3) {
                                var$7 = var$12[var$5];
                                bz: {
                                    while (var$7 !== null) {
                                        if (Long_eq(var$7.$key1, var$8)) {
                                            var$7 = var$7.$value4;
                                            break bz;
                                        }
                                        var$7 = var$7.$nextEntry;
                                    }
                                    var$7 = null;
                                }
                                var$7 = var$7;
                                if (var$7 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break bx;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break bx;
                                    var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$7.$isTerrainPopulated) {
                                    var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                                    var$5 = var$12.length - 1 | 0;
                                    var$7 = var$12[var$19 & var$5];
                                    bA: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break bA;
                                            }
                                            if (Long_eq(var$7.$key1, var$10))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$13 & var$5];
                                        bB: {
                                            while (true) {
                                                if (var$7 === null) {
                                                    var$7 = null;
                                                    break bB;
                                                }
                                                if (Long_eq(var$7.$key1, var$14))
                                                    break;
                                                var$7 = var$7.$nextEntry;
                                            }
                                        }
                                        if (var$7 === null ? 0 : 1) {
                                            var$7 = var$12[var$6 & var$5];
                                            bC: {
                                                while (var$7 !== null) {
                                                    if (Long_eq(var$7.$key1, var$8)) {
                                                        var$7 = var$7.$value4;
                                                        break bC;
                                                    }
                                                    var$7 = var$7.$nextEntry;
                                                }
                                                var$7 = null;
                                            }
                                            var$7 = var$7;
                                            if (var$7 === null) {
                                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                    break by;
                                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                    break by;
                                                var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                            }
                                            if (!var$7.$isTerrainPopulated) {
                                                var$7.$isTerrainPopulated = 1;
                                                $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                                if ($par1IChunkProvider !== null) {
                                                    $ptr = 10;
                                                    continue main;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            return;
                        }
                        $ptr = 8;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                $ptr = 9;
                continue main;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
        continue main;
    case 5:
        var$7.$populate($par2IChunkProvider, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15.$setChunkModified();
        var$16 = $par3 - 1 | 0;
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$8 = Long_and(Long_fromInt(var$16), Long_create(4294967295, 0));
        var$17 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
        var$14 = Long_or(var$8, var$17);
        var$5 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$13 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$6 = var$13 & (var$12.length - 1 | 0);
        var$7 = var$12[var$6];
        a: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break a;
                }
                if (Long_eq(var$7.$key1, var$14))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$5 = var$7 === null ? 0 : 1;
        bD: {
            c: {
                if (var$5) {
                    var$7 = var$12[var$6];
                    bn: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$14)) {
                                var$7 = var$7.$value4;
                                break bn;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break bD;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break bD;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$5 = $par4 + 1 | 0;
                        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                        var$9 = Long_shl(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), 32);
                        var$18 = Long_or(var$8, var$9);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$11 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                        var$12 = var$7.$hashArray.data;
                        var$19 = var$12.length - 1 | 0;
                        var$20 = var$11 & var$19;
                        var$7 = var$12[var$20];
                        d: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break d;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$10 = Long_or(Long_and(Long_fromInt($par3), Long_create(4294967295, 0)), var$9);
                            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$19];
                            e: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break e;
                                    }
                                    if (Long_eq(var$7.$key1, var$10))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$20];
                                bE: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bE;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$13 & var$19];
                                    bF: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$14)) {
                                                var$7 = var$7.$value4;
                                                break bF;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    i: {
                                        var$15 = var$7;
                                        if (var$15 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break i;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break i;
                                            var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$15.$isTerrainPopulated) {
                                            var$15.$isTerrainPopulated = 1;
                                            var$7 = $par1IChunkProvider.$currentChunkProvider;
                                            if (var$7 !== null) {
                                                $ptr = 7;
                                                continue main;
                                            }
                                        }
                                        break c;
                                    }
                                    $ptr = 6;
                                    continue main;
                                }
                            }
                        }
                    }
                }
            }
            $par4 = $par4 - 1 | 0;
            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
            var$10 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
            var$9 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
            var$10 = Long_or(var$10, var$9);
            var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
            var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
            var$19 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$12 = var$7.$hashArray.data;
            var$6 = var$19 & (var$12.length - 1 | 0);
            var$7 = var$12[var$6];
            bG: {
                while (true) {
                    if (var$7 === null) {
                        var$7 = null;
                        break bG;
                    }
                    if (Long_eq(var$7.$key1, var$10))
                        break;
                    var$7 = var$7.$nextEntry;
                }
            }
            var$5 = var$7 === null ? 0 : 1;
            bH: {
                l: {
                    if (var$5) {
                        var$7 = var$12[var$6];
                        bI: {
                            while (var$7 !== null) {
                                if (Long_eq(var$7.$key1, var$10)) {
                                    var$7 = var$7.$value4;
                                    break bI;
                                }
                                var$7 = var$7.$nextEntry;
                            }
                            var$7 = null;
                        }
                        var$7 = var$7;
                        if (var$7 === null) {
                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                break bH;
                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                break bH;
                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                        }
                        if (!var$7.$isTerrainPopulated) {
                            var$5 = $par3 + 1 | 0;
                            var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                            var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                            var$18 = Long_or(var$21, var$9);
                            var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                            var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                            var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                            var$12 = var$7.$hashArray.data;
                            var$20 = var$12.length - 1 | 0;
                            var$6 = var$5 & var$20;
                            var$7 = var$12[var$6];
                            bh: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bh;
                                    }
                                    if (Long_eq(var$7.$key1, var$18))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$6];
                                bi: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bi;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$18 = Long_or(var$21, var$17);
                                    var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                                    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                                    var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                                    p: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break p;
                                            }
                                            if (Long_eq(var$7.$key1, var$18))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$19 & var$20];
                                        q: {
                                            while (var$7 !== null) {
                                                if (Long_eq(var$7.$key1, var$10)) {
                                                    var$7 = var$7.$value4;
                                                    break q;
                                                }
                                                var$7 = var$7.$nextEntry;
                                            }
                                            var$7 = null;
                                        }
                                        var$15 = var$7;
                                        if (var$15 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break l;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break l;
                                            var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$15.$isTerrainPopulated) {
                                            var$15.$isTerrainPopulated = 1;
                                            var$7 = $par1IChunkProvider.$currentChunkProvider;
                                            if (var$7 !== null) {
                                                $ptr = 11;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                    var$8 = Long_or(var$8, var$9);
                    $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                    $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                    var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                    var$12 = var$7.$hashArray.data;
                    var$5 = var$6 & (var$12.length - 1 | 0);
                    var$7 = var$12[var$5];
                    bJ: {
                        while (true) {
                            if (var$7 === null) {
                                var$7 = null;
                                break bJ;
                            }
                            if (Long_eq(var$7.$key1, var$8))
                                break;
                            var$7 = var$7.$nextEntry;
                        }
                    }
                    $par3 = var$7 === null ? 0 : 1;
                    bK: {
                        bx: {
                            if ($par3) {
                                var$7 = var$12[var$5];
                                bL: {
                                    while (var$7 !== null) {
                                        if (Long_eq(var$7.$key1, var$8)) {
                                            var$7 = var$7.$value4;
                                            break bL;
                                        }
                                        var$7 = var$7.$nextEntry;
                                    }
                                    var$7 = null;
                                }
                                var$7 = var$7;
                                if (var$7 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break bK;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break bK;
                                    var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$7.$isTerrainPopulated) {
                                    var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                                    var$5 = var$12.length - 1 | 0;
                                    var$7 = var$12[var$19 & var$5];
                                    v: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break v;
                                            }
                                            if (Long_eq(var$7.$key1, var$10))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$13 & var$5];
                                        w: {
                                            while (true) {
                                                if (var$7 === null) {
                                                    var$7 = null;
                                                    break w;
                                                }
                                                if (Long_eq(var$7.$key1, var$14))
                                                    break;
                                                var$7 = var$7.$nextEntry;
                                            }
                                        }
                                        if (var$7 === null ? 0 : 1) {
                                            var$7 = var$12[var$6 & var$5];
                                            x: {
                                                while (var$7 !== null) {
                                                    if (Long_eq(var$7.$key1, var$8)) {
                                                        var$7 = var$7.$value4;
                                                        break x;
                                                    }
                                                    var$7 = var$7.$nextEntry;
                                                }
                                                var$7 = null;
                                            }
                                            var$7 = var$7;
                                            if (var$7 === null) {
                                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                    break bx;
                                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                    break bx;
                                                var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                            }
                                            if (!var$7.$isTerrainPopulated) {
                                                var$7.$isTerrainPopulated = 1;
                                                $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                                if ($par1IChunkProvider !== null) {
                                                    $ptr = 10;
                                                    continue main;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            return;
                        }
                        $ptr = 8;
                        continue main;
                    }
                    $ptr = 3;
                    continue main;
                }
                $ptr = 9;
                continue main;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
        continue main;
    case 6:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (!var$15.$isTerrainPopulated) {
            var$15.$isTerrainPopulated = 1;
            var$7 = $par1IChunkProvider.$currentChunkProvider;
            if (var$7 !== null) {
                $ptr = 7;
                continue main;
            }
        }
        $par4 = $par4 - 1 | 0;
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$10 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
        var$9 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
        var$10 = Long_or(var$10, var$9);
        var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$19 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$6 = var$19 & (var$12.length - 1 | 0);
        var$7 = var$12[var$6];
        b: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break b;
                }
                if (Long_eq(var$7.$key1, var$10))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$5 = var$7 === null ? 0 : 1;
        c: {
            bn: {
                if (var$5) {
                    var$7 = var$12[var$6];
                    bM: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$10)) {
                                var$7 = var$7.$value4;
                                break bM;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break c;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break c;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$5 = $par3 + 1 | 0;
                        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                        var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                        var$18 = Long_or(var$21, var$9);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                        var$12 = var$7.$hashArray.data;
                        var$20 = var$12.length - 1 | 0;
                        var$6 = var$5 & var$20;
                        var$7 = var$12[var$6];
                        bN: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bN;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$6];
                            f: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break f;
                                    }
                                    if (Long_eq(var$7.$key1, var$18))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$18 = Long_or(var$21, var$17);
                                var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                                var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                                bO: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bO;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$19 & var$20];
                                    i: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$10)) {
                                                var$7 = var$7.$value4;
                                                break i;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    var$15 = var$7;
                                    if (var$15 === null) {
                                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                            break bn;
                                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                            break bn;
                                        var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                    }
                                    if (!var$15.$isTerrainPopulated) {
                                        var$15.$isTerrainPopulated = 1;
                                        var$7 = $par1IChunkProvider.$currentChunkProvider;
                                        if (var$7 !== null) {
                                            $ptr = 11;
                                            continue main;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                var$8 = Long_or(var$8, var$9);
                $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                var$12 = var$7.$hashArray.data;
                var$5 = var$6 & (var$12.length - 1 | 0);
                var$7 = var$12[var$5];
                k: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break k;
                        }
                        if (Long_eq(var$7.$key1, var$8))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                $par3 = var$7 === null ? 0 : 1;
                l: {
                    bs: {
                        if ($par3) {
                            var$7 = var$12[var$5];
                            bt: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$8)) {
                                        var$7 = var$7.$value4;
                                        break bt;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            var$7 = var$7;
                            if (var$7 === null) {
                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                    break l;
                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                    break l;
                                var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                            }
                            if (!var$7.$isTerrainPopulated) {
                                var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                                var$5 = var$12.length - 1 | 0;
                                var$7 = var$12[var$19 & var$5];
                                bu: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bu;
                                        }
                                        if (Long_eq(var$7.$key1, var$10))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$13 & var$5];
                                    o: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break o;
                                            }
                                            if (Long_eq(var$7.$key1, var$14))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$6 & var$5];
                                        bv: {
                                            while (var$7 !== null) {
                                                if (Long_eq(var$7.$key1, var$8)) {
                                                    var$7 = var$7.$value4;
                                                    break bv;
                                                }
                                                var$7 = var$7.$nextEntry;
                                            }
                                            var$7 = null;
                                        }
                                        var$7 = var$7;
                                        if (var$7 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break bs;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break bs;
                                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$7.$isTerrainPopulated) {
                                            var$7.$isTerrainPopulated = 1;
                                            $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                            if ($par1IChunkProvider !== null) {
                                                $ptr = 10;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        return;
                    }
                    $ptr = 8;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            $ptr = 9;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 7:
        var$7.$populate($par2IChunkProvider, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15.$setChunkModified();
        $par4 = $par4 - 1 | 0;
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$10 = Long_and(Long_fromInt($par3), Long_create(4294967295, 0));
        var$9 = Long_shl(Long_and(Long_fromInt($par4), Long_create(4294967295, 0)), 32);
        var$10 = Long_or(var$10, var$9);
        var$5 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
        var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$19 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$6 = var$19 & (var$12.length - 1 | 0);
        var$7 = var$12[var$6];
        a: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break a;
                }
                if (Long_eq(var$7.$key1, var$10))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$5 = var$7 === null ? 0 : 1;
        bD: {
            c: {
                if (var$5) {
                    var$7 = var$12[var$6];
                    bP: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$10)) {
                                var$7 = var$7.$value4;
                                break bP;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break bD;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break bD;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$5 = $par3 + 1 | 0;
                        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                        var$21 = Long_and(Long_fromInt(var$5), Long_create(4294967295, 0));
                        var$18 = Long_or(var$21, var$9);
                        var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                        var$11 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$5 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                        var$12 = var$7.$hashArray.data;
                        var$20 = var$12.length - 1 | 0;
                        var$6 = var$5 & var$20;
                        var$7 = var$12[var$6];
                        bl: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bl;
                                }
                                if (Long_eq(var$7.$key1, var$18))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$6];
                            bm: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bm;
                                    }
                                    if (Long_eq(var$7.$key1, var$18))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$18 = Long_or(var$21, var$17);
                                var$5 = Long_lo(Long_xor(var$18, Long_shru(var$18, 32)));
                                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                                var$7 = var$12[(var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0)) & var$20];
                                g: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break g;
                                        }
                                        if (Long_eq(var$7.$key1, var$18))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$19 & var$20];
                                    h: {
                                        while (var$7 !== null) {
                                            if (Long_eq(var$7.$key1, var$10)) {
                                                var$7 = var$7.$value4;
                                                break h;
                                            }
                                            var$7 = var$7.$nextEntry;
                                        }
                                        var$7 = null;
                                    }
                                    var$15 = var$7;
                                    if (var$15 === null) {
                                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                            break c;
                                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                            break c;
                                        var$15 = $par1IChunkProvider.$defaultEmptyChunk;
                                    }
                                    if (!var$15.$isTerrainPopulated) {
                                        var$15.$isTerrainPopulated = 1;
                                        var$7 = $par1IChunkProvider.$currentChunkProvider;
                                        if (var$7 !== null) {
                                            $ptr = 11;
                                            continue main;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                var$7 = $par1IChunkProvider.$loadedChunkHashMap;
                var$8 = Long_or(var$8, var$9);
                $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                var$12 = var$7.$hashArray.data;
                var$5 = var$6 & (var$12.length - 1 | 0);
                var$7 = var$12[var$5];
                bG: {
                    while (true) {
                        if (var$7 === null) {
                            var$7 = null;
                            break bG;
                        }
                        if (Long_eq(var$7.$key1, var$8))
                            break;
                        var$7 = var$7.$nextEntry;
                    }
                }
                $par3 = var$7 === null ? 0 : 1;
                bH: {
                    l: {
                        if ($par3) {
                            var$7 = var$12[var$5];
                            bI: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$8)) {
                                        var$7 = var$7.$value4;
                                        break bI;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            var$7 = var$7;
                            if (var$7 === null) {
                                if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                    break bH;
                                if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                    break bH;
                                var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                            }
                            if (!var$7.$isTerrainPopulated) {
                                var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                                var$5 = var$12.length - 1 | 0;
                                var$7 = var$12[var$19 & var$5];
                                bh: {
                                    while (true) {
                                        if (var$7 === null) {
                                            var$7 = null;
                                            break bh;
                                        }
                                        if (Long_eq(var$7.$key1, var$10))
                                            break;
                                        var$7 = var$7.$nextEntry;
                                    }
                                }
                                if (var$7 === null ? 0 : 1) {
                                    var$7 = var$12[var$13 & var$5];
                                    bi: {
                                        while (true) {
                                            if (var$7 === null) {
                                                var$7 = null;
                                                break bi;
                                            }
                                            if (Long_eq(var$7.$key1, var$14))
                                                break;
                                            var$7 = var$7.$nextEntry;
                                        }
                                    }
                                    if (var$7 === null ? 0 : 1) {
                                        var$7 = var$12[var$6 & var$5];
                                        p: {
                                            while (var$7 !== null) {
                                                if (Long_eq(var$7.$key1, var$8)) {
                                                    var$7 = var$7.$value4;
                                                    break p;
                                                }
                                                var$7 = var$7.$nextEntry;
                                            }
                                            var$7 = null;
                                        }
                                        var$7 = var$7;
                                        if (var$7 === null) {
                                            if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                                break l;
                                            if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                                break l;
                                            var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                        }
                                        if (!var$7.$isTerrainPopulated) {
                                            var$7.$isTerrainPopulated = 1;
                                            $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                            if ($par1IChunkProvider !== null) {
                                                $ptr = 10;
                                                continue main;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        return;
                    }
                    $ptr = 8;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            $ptr = 9;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 8:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7.$isTerrainPopulated) {
            var$7.$isTerrainPopulated = 1;
            $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
            if ($par1IChunkProvider !== null) {
                $ptr = 10;
                continue main;
            }
        }
        return;
    case 9:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (!var$15.$isTerrainPopulated) {
            var$15.$isTerrainPopulated = 1;
            var$7 = $par1IChunkProvider.$currentChunkProvider;
            if (var$7 !== null) {
                $ptr = 11;
                continue main;
            }
        }
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$8 = Long_or(var$8, var$9);
        $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
        var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$5 = var$6 & (var$12.length - 1 | 0);
        var$7 = var$12[var$5];
        b: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break b;
                }
                if (Long_eq(var$7.$key1, var$8))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        $par3 = var$7 === null ? 0 : 1;
        c: {
            bn: {
                if ($par3) {
                    var$7 = var$12[var$5];
                    bM: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$8)) {
                                var$7 = var$7.$value4;
                                break bM;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break c;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break c;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                        var$5 = var$12.length - 1 | 0;
                        var$7 = var$12[var$19 & var$5];
                        bN: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bN;
                                }
                                if (Long_eq(var$7.$key1, var$10))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$13 & var$5];
                            f: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break f;
                                    }
                                    if (Long_eq(var$7.$key1, var$14))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$6 & var$5];
                                bO: {
                                    while (var$7 !== null) {
                                        if (Long_eq(var$7.$key1, var$8)) {
                                            var$7 = var$7.$value4;
                                            break bO;
                                        }
                                        var$7 = var$7.$nextEntry;
                                    }
                                    var$7 = null;
                                }
                                var$7 = var$7;
                                if (var$7 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break bn;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break bn;
                                    var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$7.$isTerrainPopulated) {
                                    var$7.$isTerrainPopulated = 1;
                                    $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                    if ($par1IChunkProvider !== null) {
                                        $ptr = 10;
                                        continue main;
                                    }
                                }
                            }
                        }
                    }
                }
                return;
            }
            $ptr = 8;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 10:
        $par1IChunkProvider.$populate($par2IChunkProvider, var$16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$7.$setChunkModified();
        return;
    case 11:
        var$7.$populate($par2IChunkProvider, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$15.$setChunkModified();
        var$7 = $par1IChunkProvider.$loadedChunkHashMap;
        var$8 = Long_or(var$8, var$9);
        $par3 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        $par3 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
        var$6 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
        var$12 = var$7.$hashArray.data;
        var$5 = var$6 & (var$12.length - 1 | 0);
        var$7 = var$12[var$5];
        a: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break a;
                }
                if (Long_eq(var$7.$key1, var$8))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        $par3 = var$7 === null ? 0 : 1;
        bD: {
            c: {
                if ($par3) {
                    var$7 = var$12[var$5];
                    bP: {
                        while (var$7 !== null) {
                            if (Long_eq(var$7.$key1, var$8)) {
                                var$7 = var$7.$value4;
                                break bP;
                            }
                            var$7 = var$7.$nextEntry;
                        }
                        var$7 = null;
                    }
                    var$7 = var$7;
                    if (var$7 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break bD;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break bD;
                        var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    if (!var$7.$isTerrainPopulated) {
                        var$12 = $par1IChunkProvider.$loadedChunkHashMap.$hashArray.data;
                        var$5 = var$12.length - 1 | 0;
                        var$7 = var$12[var$19 & var$5];
                        bl: {
                            while (true) {
                                if (var$7 === null) {
                                    var$7 = null;
                                    break bl;
                                }
                                if (Long_eq(var$7.$key1, var$10))
                                    break;
                                var$7 = var$7.$nextEntry;
                            }
                        }
                        if (var$7 === null ? 0 : 1) {
                            var$7 = var$12[var$13 & var$5];
                            bm: {
                                while (true) {
                                    if (var$7 === null) {
                                        var$7 = null;
                                        break bm;
                                    }
                                    if (Long_eq(var$7.$key1, var$14))
                                        break;
                                    var$7 = var$7.$nextEntry;
                                }
                            }
                            if (var$7 === null ? 0 : 1) {
                                var$7 = var$12[var$6 & var$5];
                                g: {
                                    while (var$7 !== null) {
                                        if (Long_eq(var$7.$key1, var$8)) {
                                            var$7 = var$7.$value4;
                                            break g;
                                        }
                                        var$7 = var$7.$nextEntry;
                                    }
                                    var$7 = null;
                                }
                                var$7 = var$7;
                                if (var$7 === null) {
                                    if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                                        break c;
                                    if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                                        break c;
                                    var$7 = $par1IChunkProvider.$defaultEmptyChunk;
                                }
                                if (!var$7.$isTerrainPopulated) {
                                    var$7.$isTerrainPopulated = 1;
                                    $par1IChunkProvider = $par1IChunkProvider.$currentChunkProvider;
                                    if ($par1IChunkProvider !== null) {
                                        $ptr = 10;
                                        continue main;
                                    }
                                }
                            }
                        }
                    }
                }
                return;
            }
            $ptr = 8;
            continue main;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IChunkProvider, $par2IChunkProvider, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_Chunk_getPrecipitationHeight = ($this, $par1, $par2) => {
    let $var3, $var4, var$5, $var5, $var6, $var7;
    $var3 = $par1 | $par2 << 4;
    $var4 = $this.$precipitationHeightMap.data[$var3];
    if ($var4 == (-999)) {
        var$5 = $this.$storageArrays.data;
        $var5 = var$5.length - 1 | 0;
        a: {
            while ($var5 >= 0) {
                if (var$5[$var5] !== null) {
                    $var6 = var$5[$var5].$yBase;
                    break a;
                }
                $var5 = $var5 + (-1) | 0;
            }
            $var6 = 0;
        }
        $var5 = $var6 + 15 | 0;
        $var4 = (-1);
        while ($var5 > 0 && $var4 == (-1)) {
            $var6 = $this.$getBlockID($par1, $var5, $par2);
            if (!$var6) {
                nms_Material_$callClinit();
                $var7 = nms_Material_air;
            } else {
                nms_Block_$callClinit();
                $var7 = nms_Block_blocksList.data[$var6].$blockMaterial;
            }
            if (!$var7.$blocksMovement() && !$var7.$isLiquid())
                $var5 = $var5 + (-1) | 0;
            else
                $var4 = $var5 + 1 | 0;
        }
        $this.$precipitationHeightMap.data[$var3] = $var4;
    }
    return $var4;
},
nms_Chunk_updateSkylight = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isGapLightingUpdated && !$this.$worldObj1.$provider.$hasNoSky) {
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_Chunk_updateSkylight_do($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_Chunk_getChunkCoordIntPair = $this => {
    let var$1, var$2, var$3;
    var$1 = new nms_ChunkCoordIntPair;
    var$2 = $this.$xPosition0;
    var$3 = $this.$zPosition0;
    var$1.$chunkXPos = var$2;
    var$1.$chunkZPos = var$3;
    return var$1;
},
nms_Chunk_getAreLevelsEmpty = ($this, $var3, $par2) => {
    let $var4;
    if ($var3 < 0)
        $var3 = 0;
    if ($par2 >= 256)
        $par2 = 255;
    while ($var3 <= $par2) {
        $var4 = $this.$storageArrays.data[$var3 >> 4];
        if ($var4 !== null && !($var4.$blockRefCount ? 0 : 1))
            return 0;
        $var3 = $var3 + 16 | 0;
    }
    return 1;
},
nms_Chunk_getBiomeGenForWorldCoords = ($this, $par1, $par2, $par3WorldChunkManager) => {
    let var$4, var$5, $var4;
    var$4 = $this.$blockBiomeArray.data;
    var$5 = $par2 << 4 | $par1;
    $var4 = var$4[var$5] & 255;
    if ($var4 == 255) {
        $var4 = ($par3WorldChunkManager.$getBiomeGenAt(($this.$xPosition0 << 4) + $par1 | 0, ($this.$zPosition0 << 4) + $par2 | 0)).$biomeID;
        $this.$blockBiomeArray.data[var$5] = ($var4 & 255) << 24 >> 24;
    }
    nms_BiomeGenBase_$callClinit();
    var$4 = nms_BiomeGenBase_biomeList.data;
    return var$4[$var4] !== null ? var$4[$var4] : nms_BiomeGenBase_plains;
},
nms_Chunk_getBiomeArray = $this => {
    return $this.$blockBiomeArray;
},
nms_Chunk_enqueueRelightChecks = $this => {
    let $var1, $var5, $var2, $var3, $var4, $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var8, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var8 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var5 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        a: {
            while ($var1 < 8) {
                $var5 = $this.$queuedLightChecks;
                if ($var5 >= 4096)
                    return;
                $var2 = $var5 % 16 | 0;
                $var3 = ($var5 / 16 | 0) % 16 | 0;
                $var4 = $var5 / 256 | 0;
                $this.$queuedLightChecks = $var5 + 1 | 0;
                $var5 = ($this.$xPosition0 << 4) + $var3 | 0;
                $var6 = ($this.$zPosition0 << 4) + $var4 | 0;
                $var7 = 0;
                var$8 = $var2 << 4;
                var$9 = $var5 - 1 | 0;
                var$10 = $var5 + 1 | 0;
                var$11 = $var6 - 1 | 0;
                var$12 = $var6 + 1 | 0;
                var$13 = $rt_compare($var3, 15);
                var$14 = $rt_compare($var4, 15);
                var$15 = $var4 << 4;
                while ($var7 < 16) {
                    $var8 = var$8 + $var7 | 0;
                    var$17 = $this.$storageArrays.data;
                    if (var$17[$var2] === null) {
                        if (!$var7)
                            break a;
                        if ($var7 == 15)
                            break a;
                        if (!$var3)
                            break a;
                        if (!var$13)
                            break a;
                        if (!$var4)
                            break a;
                        if (!var$14)
                            break a;
                    }
                    if (var$17[$var2] !== null) {
                        var$18 = var$17[$var2];
                        var$19 = var$18.$blockLSBArray.data[$var7 << 8 | var$15 | $var3] & 255;
                        var$18 = var$18.$blockMSBArray;
                        if (var$18 !== null)
                            var$19 = nms_NibbleArray_get(var$18, $var3, $var7, $var4) << 8 | var$19;
                        if (!var$19)
                            break a;
                    }
                    $var7 = $var7 + 1 | 0;
                }
                $var1 = $var1 + 1 | 0;
            }
            return;
        }
        nms_Block_$callClinit();
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        var$20 = $var8 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$18, $var5, var$20, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        if (var$17[var$19] <= 0) {
            var$17 = nms_Block_lightValue.data;
            var$18 = $this.$worldObj1;
            var$20 = $var8 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        var$21 = $this.$worldObj1;
        if (var$21.$provider.$hasNoSky) {
            var$18 = nms_EnumSkyBlock_Block;
            $ptr = 4;
            continue main;
        }
        var$18 = nms_EnumSkyBlock_Sky;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$18, $var5, var$20, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        if (var$17[var$19] <= 0) {
            var$17 = nms_Block_lightValue.data;
            var$18 = $this.$worldObj1;
            $ptr = 3;
            continue main;
        }
        var$21 = $this.$worldObj1;
        if (var$21.$provider.$hasNoSky) {
            var$18 = nms_EnumSkyBlock_Block;
            $ptr = 7;
            continue main;
        }
        var$18 = nms_EnumSkyBlock_Sky;
        $ptr = 8;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId(var$18, var$9, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        if (var$17[var$19] <= 0) {
            var$17 = nms_Block_lightValue.data;
            var$18 = $this.$worldObj1;
            $ptr = 6;
            continue main;
        }
        var$21 = $this.$worldObj1;
        if (var$21.$provider.$hasNoSky) {
            var$18 = nms_EnumSkyBlock_Block;
            $ptr = 10;
            continue main;
        }
        var$18 = nms_EnumSkyBlock_Sky;
        $ptr = 11;
        continue main;
    case 4:
        nms_World_updateLightByType(var$21, var$18, $var5, var$20, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        var$20 = $var8 + 1 | 0;
        $ptr = 2;
        continue main;
    case 5:
        nms_World_updateLightByType(var$21, var$18, $var5, var$20, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = nms_EnumSkyBlock_Block;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId(var$18, var$10, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        if (var$17[var$19] <= 0) {
            var$17 = nms_Block_lightValue.data;
            var$18 = $this.$worldObj1;
            $ptr = 9;
            continue main;
        }
        var$21 = $this.$worldObj1;
        if (var$21.$provider.$hasNoSky) {
            var$18 = nms_EnumSkyBlock_Block;
            $ptr = 13;
            continue main;
        }
        var$18 = nms_EnumSkyBlock_Sky;
        $ptr = 14;
        continue main;
    case 7:
        nms_World_updateLightByType(var$21, var$18, $var5, var$20, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        $ptr = 3;
        continue main;
    case 8:
        nms_World_updateLightByType(var$21, var$18, $var5, var$20, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = nms_EnumSkyBlock_Block;
        $ptr = 7;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId(var$18, $var5, $var8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        if (var$17[var$19] <= 0) {
            var$17 = nms_Block_lightValue.data;
            var$18 = $this.$worldObj1;
            $ptr = 12;
            continue main;
        }
        var$21 = $this.$worldObj1;
        if (var$21.$provider.$hasNoSky) {
            var$18 = nms_EnumSkyBlock_Block;
            $ptr = 15;
            continue main;
        }
        var$18 = nms_EnumSkyBlock_Sky;
        $ptr = 16;
        continue main;
    case 10:
        nms_World_updateLightByType(var$21, var$18, var$9, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        $ptr = 6;
        continue main;
    case 11:
        nms_World_updateLightByType(var$21, var$18, var$9, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = nms_EnumSkyBlock_Block;
        $ptr = 10;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$18, $var5, $var8, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        if (var$17[var$19] <= 0) {
            var$18 = $this.$worldObj1;
            if (var$18.$provider.$hasNoSky) {
                var$21 = nms_EnumSkyBlock_Block;
                $ptr = 17;
                continue main;
            }
            var$21 = nms_EnumSkyBlock_Sky;
            $ptr = 18;
            continue main;
        }
        var$18 = $this.$worldObj1;
        if (var$18.$provider.$hasNoSky) {
            var$21 = nms_EnumSkyBlock_Block;
            $ptr = 19;
            continue main;
        }
        var$21 = nms_EnumSkyBlock_Sky;
        $ptr = 20;
        continue main;
    case 13:
        nms_World_updateLightByType(var$21, var$18, var$10, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        $ptr = 9;
        continue main;
    case 14:
        nms_World_updateLightByType(var$21, var$18, var$10, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = nms_EnumSkyBlock_Block;
        $ptr = 13;
        continue main;
    case 15:
        nms_World_updateLightByType(var$21, var$18, $var5, $var8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        $ptr = 12;
        continue main;
    case 16:
        nms_World_updateLightByType(var$21, var$18, $var5, $var8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = nms_EnumSkyBlock_Block;
        $ptr = 15;
        continue main;
    case 17:
        nms_World_updateLightByType(var$18, var$21, $var5, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            b: while (true) {
                $var7 = $var7 + 1 | 0;
                while ($var7 >= 16) {
                    $var1 = $var1 + 1 | 0;
                    if ($var1 >= 8)
                        return;
                    $var5 = $this.$queuedLightChecks;
                    if ($var5 >= 4096)
                        break b;
                    $var2 = $var5 % 16 | 0;
                    $var3 = ($var5 / 16 | 0) % 16 | 0;
                    $var4 = $var5 / 256 | 0;
                    $this.$queuedLightChecks = $var5 + 1 | 0;
                    $var5 = ($this.$xPosition0 << 4) + $var3 | 0;
                    $var6 = ($this.$zPosition0 << 4) + $var4 | 0;
                    $var7 = 0;
                    var$8 = $var2 << 4;
                    var$9 = $var5 - 1 | 0;
                    var$10 = $var5 + 1 | 0;
                    var$11 = $var6 - 1 | 0;
                    var$12 = $var6 + 1 | 0;
                    var$13 = $rt_compare($var3, 15);
                    var$14 = $rt_compare($var4, 15);
                    var$15 = $var4 << 4;
                }
                $var8 = var$8 + $var7 | 0;
                var$17 = $this.$storageArrays.data;
                if (var$17[$var2] === null) {
                    if (!$var7)
                        break a;
                    if ($var7 == 15)
                        break a;
                    if (!$var3)
                        break a;
                    if (!var$13)
                        break a;
                    if (!$var4)
                        break a;
                    if (!var$14)
                        break a;
                }
                if (var$17[$var2] === null)
                    continue;
                var$18 = var$17[$var2];
                var$19 = var$18.$blockLSBArray.data[$var7 << 8 | var$15 | $var3] & 255;
                var$18 = var$18.$blockMSBArray;
                if (var$18 !== null)
                    var$19 = nms_NibbleArray_get(var$18, $var3, $var7, $var4) << 8 | var$19;
                if (var$19)
                    continue;
                else
                    break a;
            }
            return;
        }
        nms_Block_$callClinit();
        var$17 = nms_Block_lightValue.data;
        var$18 = $this.$worldObj1;
        var$20 = $var8 - 1 | 0;
        $ptr = 1;
        continue main;
    case 18:
        nms_World_updateLightByType(var$18, var$21, $var5, $var8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = nms_EnumSkyBlock_Block;
        $ptr = 17;
        continue main;
    case 19:
        nms_World_updateLightByType(var$18, var$21, $var5, $var8, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj1;
        if (var$18.$provider.$hasNoSky) {
            var$21 = nms_EnumSkyBlock_Block;
            $ptr = 17;
            continue main;
        }
        var$21 = nms_EnumSkyBlock_Sky;
        $ptr = 18;
        continue main;
    case 20:
        nms_World_updateLightByType(var$18, var$21, $var5, $var8, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = nms_EnumSkyBlock_Block;
        $ptr = 19;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var5, $var2, $var3, $var4, $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var8, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_Chunk__clinit_ = () => {
    nms_Chunk_totalBlockLightUpdates = 0;
},
nms_EmptyChunk = $rt_classWithoutFields(nms_Chunk),
nms_EmptyChunk_getHeightValue = ($this, $par1, $par2) => {
    return 0;
},
nms_EmptyChunk_generateSkylightMap = $this => {
    return;
},
nms_EmptyChunk_getBlockID = ($this, $par1, $par2, $par3) => {
    return 0;
},
nms_EmptyChunk_getBlockLightOpacity = ($this, $par1, $par2, $par3) => {
    return 255;
},
nms_EmptyChunk_setBlockIDWithMetadata = ($this, $par1, $par2, $par3, $par4, $par5) => {
    return 1;
};
let nms_EmptyChunk_getBlockMetadata = ($this, $par1, $par2, $par3) => {
    return 0;
},
nms_EmptyChunk_setBlockMetadata = ($this, $par1, $par2, $par3, $par4) => {
    return 0;
},
nms_EmptyChunk_getSavedLightValue = ($this, $par1EnumSkyBlock, $par2, $par3, $par4) => {
    return 0;
},
nms_EmptyChunk_setLightValue = ($this, $par1EnumSkyBlock, $par2, $par3, $par4, $par5) => {
    return;
},
nms_EmptyChunk_getBlockLightValue = ($this, $par1, $par2, $par3, $par4) => {
    return 0;
},
nms_EmptyChunk_addEntity = ($this, $par1Entity) => {
    return;
},
nms_EmptyChunk_removeEntity = ($this, $par1Entity) => {
    return;
},
nms_EmptyChunk_removeEntityAtIndex = ($this, $par1Entity, $par2) => {
    return;
},
nms_EmptyChunk_canBlockSeeTheSky = ($this, $par1, $par2, $par3) => {
    return 0;
},
nms_EmptyChunk_getChunkBlockTileEntity = ($this, $par1, $par2, $par3) => {
    return null;
},
nms_EmptyChunk_setChunkBlockTileEntity = ($this, $par1, $par2, $par3, $par4TileEntity) => {
    return;
},
nms_EmptyChunk_removeChunkBlockTileEntity = ($this, $par1, $par2, $par3) => {
    return;
},
nms_EmptyChunk_onChunkLoad = $this => {
    return;
},
nms_EmptyChunk_onChunkUnload = $this => {
    return;
},
nms_EmptyChunk_setChunkModified = $this => {
    return;
},
nms_EmptyChunk_getEntitiesWithinAABBForEntity = ($this, $par1Entity, $par2AxisAlignedBB, $par3List, $par4IEntitySelector) => {
    return;
},
nms_EmptyChunk_getEntitiesOfTypeWithinAAAB = ($this, $par1Class, $par2AxisAlignedBB, $par3List, $par4IEntitySelector) => {
    return;
},
nms_EmptyChunk_needsSaving = ($this, $par1) => {
    return 0;
},
nms_EmptyChunk_getRandomWithSeed = ($this, $par1) => {
    let var$2, var$3, var$4, var$5;
    var$2 = new nle_EaglercraftRandom;
    var$3 = $this.$worldObj1.$worldInfo.$getSeed();
    var$4 = $this.$xPosition0;
    var$5 = Long_add(Long_add(var$3, Long_fromInt($rt_imul($rt_imul(var$4, var$4), 4987142))), Long_fromInt($rt_imul(var$4, 5947611)));
    var$4 = $this.$zPosition0;
    $par1 = Long_xor(Long_add(Long_add(var$5, Long_mul(Long_fromInt($rt_imul(var$4, var$4)), Long_fromInt(4392871))), Long_fromInt($rt_imul(var$4, 389711))), $par1);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = $par1;
    return var$2;
},
nms_EmptyChunk_isEmpty = $this => {
    return 1;
},
nms_EmptyChunk_getAreLevelsEmpty = ($this, $par1, $par2) => {
    return 1;
};
function ju_WeakHashMap() {
    let a = this; ju_AbstractMap.call(a);
    a.$referenceQueue = null;
    a.$elementCount0 = 0;
    a.$elementData0 = null;
    a.$loadFactor0 = 0;
    a.$threshold1 = 0;
    a.$modCount3 = 0;
}
let ju_WeakHashMap__init_ = $this => {
    let var$1, var$2;
    $this.$elementCount0 = 0;
    var$1 = $rt_createArray(ju_WeakHashMap$Entry, 16);
    var$2 = var$1.data;
    $this.$elementData0 = var$1;
    $this.$loadFactor0 = 7500;
    $this.$threshold1 = Long_lo(Long_div(Long_mul(Long_fromInt(var$2.length), Long_fromInt(7500)), Long_fromInt(10000)));
    $this.$referenceQueue = jlr_ReferenceQueue__init_0();
},
ju_WeakHashMap__init_0 = () => {
    let var_0 = new ju_WeakHashMap();
    ju_WeakHashMap__init_(var_0);
    return var_0;
},
ju_WeakHashMap_get = ($this, $key) => {
    let $entry, $index, var$4;
    while (true) {
        $entry = jlr_ReferenceQueue_poll($this.$referenceQueue);
        if ($entry === null)
            break;
        ju_WeakHashMap_removeEntry($this, $entry);
    }
    if ($key === null) {
        $entry = $this.$elementData0.data[0];
        while ($entry !== null) {
            if ($entry.$isNull)
                return $entry.$value13;
            $entry = $entry.$next6;
        }
        return null;
    }
    $index = $key.$hashCode() & 2147483647;
    var$4 = $this.$elementData0.data;
    $entry = var$4[$index % var$4.length | 0];
    while ($entry !== null) {
        if ($key.$equals(jlr_WeakReference_get($entry)))
            return $entry.$value13;
        $entry = $entry.$next6;
    }
    return null;
},
ju_WeakHashMap_removeEntry = ($this, $toRemove) => {
    let $last, var$3, var$4, $index, $entry, $entry_0;
    $last = null;
    var$3 = $toRemove.$hash2 & 2147483647;
    var$4 = $this.$elementData0.data;
    $index = var$3 % var$4.length | 0;
    $entry = var$4[$index];
    a: {
        while (true) {
            if ($entry === null)
                break a;
            if ($toRemove === $entry)
                break;
            $entry_0 = $entry.$next6;
            $last = $entry;
            $entry = $entry_0;
        }
        $this.$modCount3 = $this.$modCount3 + 1 | 0;
        if ($last !== null)
            $last.$next6 = $entry.$next6;
        else
            var$4[$index] = $entry.$next6;
        $this.$elementCount0 = $this.$elementCount0 - 1 | 0;
    }
},
ju_WeakHashMap_put = ($this, $key, $value) => {
    let $entry, $index, var$5, var$6, $result;
    while (true) {
        $entry = jlr_ReferenceQueue_poll($this.$referenceQueue);
        if ($entry === null)
            break;
        ju_WeakHashMap_removeEntry($this, $entry);
    }
    a: {
        $index = 0;
        if ($key === null) {
            $entry = $this.$elementData0.data[0];
            while ($entry !== null) {
                if ($entry.$isNull)
                    break a;
                $entry = $entry.$next6;
            }
        } else {
            var$5 = $key.$hashCode() & 2147483647;
            var$6 = $this.$elementData0.data;
            $index = var$5 % var$6.length | 0;
            $entry = var$6[$index];
            while ($entry !== null) {
                if ($key.$equals(jlr_WeakReference_get($entry)))
                    break a;
                $entry = $entry.$next6;
            }
        }
    }
    if ($entry !== null) {
        $result = $entry.$value13;
        $entry.$value13 = $value;
        return $result;
    }
    $this.$modCount3 = $this.$modCount3 + 1 | 0;
    var$5 = $this.$elementCount0 + 1 | 0;
    $this.$elementCount0 = var$5;
    if (var$5 > $this.$threshold1) {
        ju_WeakHashMap_rehash($this);
        $index = $key === null ? 0 : ($key.$hashCode() & 2147483647) % $this.$elementData0.data.length | 0;
    }
    $entry = new ju_WeakHashMap$Entry;
    jlr_WeakReference__init_($entry, $key, $this.$referenceQueue);
    var$5 = $key !== null ? 0 : 1;
    $entry.$isNull = var$5;
    $entry.$hash2 = !var$5 ? $key.$hashCode() : 0;
    $entry.$value13 = $value;
    var$6 = $this.$elementData0.data;
    $entry.$next6 = var$6[$index];
    var$6[$index] = $entry;
    return null;
},
ju_WeakHashMap_rehash = $this => {
    let var$1, var$2, $length, $newData, var$5, var$6, $entry, $index, $entry_0;
    var$1 = $this.$elementData0.data;
    var$2 = var$1.length;
    $length = var$2 << 1;
    if (!$length)
        $length = 1;
    $newData = $rt_createArray(ju_WeakHashMap$Entry, $length);
    var$5 = $newData.data;
    var$6 = 0;
    while (var$6 < var$2) {
        $entry = var$1[var$6];
        while ($entry !== null) {
            $index = $entry.$isNull ? 0 : ($entry.$hash2 & 2147483647) % $length | 0;
            $entry_0 = $entry.$next6;
            $entry.$next6 = var$5[$index];
            var$5[$index] = $entry;
            $entry = $entry_0;
        }
        var$6 = var$6 + 1 | 0;
    }
    $this.$elementData0 = $newData;
    $this.$threshold1 = Long_lo(Long_div(Long_mul(Long_fromInt(var$5.length), Long_fromInt($this.$loadFactor0)), Long_fromInt(10000)));
},
nms_MathHelper = $rt_classWithoutFields(),
nms_MathHelper_SIN_TABLE = null,
nms_MathHelper__init_ = $this => {
    return;
},
nms_MathHelper__init_0 = () => {
    let var_0 = new nms_MathHelper();
    nms_MathHelper__init_(var_0);
    return var_0;
},
nms_MathHelper__clinit_ = () => {
    let $var0;
    nms_MathHelper_SIN_TABLE = $rt_createFloatArray(65536);
    $var0 = 0;
    while ($var0 < 65536) {
        nms_MathHelper_SIN_TABLE.data[$var0] = jl_Math_sin($var0 * 3.141592653589793 * 2.0 / 65536.0);
        $var0 = $var0 + 1 | 0;
    }
},
jur_IntArrHash = $rt_classWithoutFields(),
nms_BiomeGenOcean = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenPlains = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenDesert = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenDesert__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$spawnableCreatureList;
    var$3 = var$2.$array;
    $par1 = 0;
    var$4 = var$2.$size0;
    var$5 = null;
    if ($par1 > var$4) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$5;
        $par1 = var$7;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    nms_Block_$callClinit();
    $par1 = nms_Block_sand.$blockID << 24 >> 24;
    $this.$topBlock = $par1;
    $this.$fillerBlock = $par1;
    var$2 = $this.$theBiomeDecorator;
    var$2.$treesPerChunk = (-999);
    var$2.$deadBushPerChunk = 2;
    var$2.$reedsPerChunk = 50;
    var$2.$cactiPerChunk = 10;
},
nms_BiomeGenDesert__init_ = var_0 => {
    let var_1 = new nms_BiomeGenDesert();
    nms_BiomeGenDesert__init_0(var_1, var_0);
    return var_1;
},
nms_BiomeGenDesert_decorate = ($this, $par1World, $par2Random, $par3, $par4) => {
    let $var7, var$6, $var6, var$8, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $this.$theBiomeDecorator;
        if ($var7.$currentWorld !== null) {
            $par2Random = new jl_RuntimeException;
            $par2Random.$suppressionEnabled = 1;
            $par2Random.$writableStackTrace = 1;
            $par2Random.$message = $rt_s(2164);
            $rt_throw($par2Random);
        }
        $var7.$currentWorld = $par1World;
        $var7.$randomGenerator = $par2Random;
        $var7.$chunk_X = $par3;
        $var7.$chunk_Z = $par4;
        $ptr = 1;
    case 1:
        $var7.$decorate();
        if ($rt_suspending()) {
            break main;
        }
        $var7.$currentWorld = null;
        $var7.$randomGenerator = null;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var6 = Long_lo(Long_shru(var$6, 17));
        while (true) {
            var$8 = $var6 % 1000 | 0;
            if ((($var6 - var$8 | 0) + 999 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var6 = Long_lo(Long_shru(var$6, 17));
        }
        if (var$8)
            return;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var5 = ($par3 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$6, 17)))), 31)) | 0) + 8 | 0;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var6 = ($par4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$6, 17)))), 31)) | 0) + 8 | 0;
        $var7 = new nms_WorldGenDesertWells;
        $var7.$doBlockNotify = 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getHeightValue($par1World, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        $par3 = $par3 + 1 | 0;
        $ptr = 3;
    case 3:
        nms_WorldGenDesertWells_generate($var7, $par1World, $par2Random, $var5, $par3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $var7, var$6, $var6, var$8, $var5, $ptr);
};
function nms_BiomeGenHills() {
    nms_BiomeGenBase.call(this);
    this.$theWorldGenerator = null;
}
let nms_BiomeGenHills_decorate = ($this, $par1World, $par2Random, $par3, $par4) => {
    let var$5, var$6, var$7, $var10, $var8, $var5, $var6, $var7, var$13, $var8_0, var$15, var$16, $var7_0, $var9, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();$var9 = $thread.pop();$var7_0 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var8_0 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var8 = $thread.pop();$var10 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $this.$theBiomeDecorator;
        if (var$5.$currentWorld !== null) {
            $par2Random = new jl_RuntimeException;
            $par2Random.$suppressionEnabled = 1;
            $par2Random.$writableStackTrace = 1;
            $par2Random.$message = $rt_s(2164);
            $rt_throw($par2Random);
        }
        var$5.$currentWorld = $par1World;
        var$5.$randomGenerator = $par2Random;
        var$5.$chunk_X = $par3;
        var$5.$chunk_Z = $par4;
        $ptr = 1;
    case 1:
        var$5.$decorate();
        if ($rt_suspending()) {
            break main;
        }
        var$5.$currentWorld = null;
        var$5.$randomGenerator = null;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        var$7 = 17;
        $var10 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var10 % 6 | 0;
            if ((($var10 - $var8 | 0) + 5 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var10 = Long_lo(Long_shru(var$6, var$7));
        }
        $var5 = 3 + $var8 | 0;
        $var6 = 0;
        $var7 = 27;
        var$13 = Long_fromInt(16);
        if ($var6 >= $var5) {
            $var8_0 = 0;
            var$15 = Long_fromInt(64);
            if ($var8_0 >= 7)
                return;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
            var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var7 = Long_lo(Long_shr(Long_mul(var$15, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31));
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
            var$5 = $this.$theWorldGenerator;
            $ptr = 2;
            continue main;
        }
        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$16;
        $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var10 = $var9 % 28 | 0;
            if ((($var9 - $var10 | 0) + $var7 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        $var8_0 = $var10 + 4 | 0;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var9 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
        $ptr = 3;
        continue main;
    case 2:
        nms_WorldGenMinable_generate(var$5, $par1World, $par2Random, $var7_0, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $var8_0 + 1 | 0;
        if ($var8_0 >= 7)
            return;
        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$16;
        $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$16;
        $var7 = Long_lo(Long_shr(Long_mul(var$15, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31));
        var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
        var$5 = $this.$theWorldGenerator;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var7_0, $var8_0, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        nms_Block_$callClinit();
        if ($var10 == nms_Block_stone.$blockID) {
            $var8 = nms_Block_oreEmerald.$blockID;
            var$19 = 0;
            $var10 = 2;
            $ptr = 4;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= $var5) {
            $var8_0 = 0;
            var$15 = Long_fromInt(64);
            if ($var8_0 >= 7)
                return;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
            var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var7 = Long_lo(Long_shr(Long_mul(var$15, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31));
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
            var$5 = $this.$theWorldGenerator;
            $ptr = 2;
            continue main;
        }
        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$16;
        $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var10 = $var9 % 28 | 0;
            if ((($var9 - $var10 | 0) + $var7 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        $var8_0 = $var10 + 4 | 0;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var9 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $var7_0, $var8_0, $var9, $var8, var$19, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= $var5) {
            $var8_0 = 0;
            var$15 = Long_fromInt(64);
            if ($var8_0 >= 7)
                return;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
            var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var7 = Long_lo(Long_shr(Long_mul(var$15, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31));
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
            var$5 = $this.$theWorldGenerator;
            $ptr = 2;
            continue main;
        }
        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$16;
        $var7_0 = $par3 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$16, var$7)))), 31)) | 0;
        var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var10 = $var9 % 28 | 0;
            if ((($var9 - $var10 | 0) + $var7 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        $var8_0 = $var10 + 4 | 0;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var9 = $par4 + Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, var$5, var$6, var$7, $var10, $var8, $var5, $var6, $var7, var$13, $var8_0, var$15, var$16, $var7_0, $var9, var$19, $ptr);
},
nms_BiomeGenForest = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenForest_getRandomWorldGenForTrees = ($this, $par1Random) => {
    let var$2, var$3, var$4;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 5 | 0;
        if (((var$3 - var$4 | 0) + 4 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    if (!var$4)
        $par1Random = $this.$worldGeneratorForest;
    else {
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            var$4 = var$3 % 10 | 0;
            if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Random.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        $par1Random = var$4 ? $this.$worldGeneratorTrees : $this.$worldGeneratorBigTree;
    }
    return $par1Random;
},
nms_BiomeGenTaiga = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenTaiga_getRandomWorldGenForTrees = ($this, $par1Random) => {
    let var$2, var$3, var$4;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 3 | 0;
        if (((var$3 - var$4 | 0) + 2 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    if (var$4) {
        $par1Random = new nms_WorldGenTaiga2;
        $par1Random.$doBlockNotify = 0;
    } else {
        $par1Random = new nms_WorldGenTaiga1;
        $par1Random.$doBlockNotify = 0;
    }
    return $par1Random;
},
nms_BiomeGenSwamp = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenSwamp__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$theBiomeDecorator;
    var$2.$treesPerChunk = 2;
    var$2.$flowersPerChunk = (-999);
    var$2.$deadBushPerChunk = 1;
    var$2.$mushroomsPerChunk = 8;
    var$2.$reedsPerChunk = 10;
    var$2.$clayPerChunk = 1;
    var$2.$waterlilyPerChunk = 4;
    $this.$waterColorMultiplier = 14745518;
    var$3 = $this.$spawnableMonsterList;
    var$4 = new nms_SpawnListEntry;
    var$4.$itemWeight = 1;
    var$4.$entityClass = $rt_cls(nms_EntitySlime);
    var$4.$minGroupCount = 1;
    var$4.$maxGroupCount = 1;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
},
nms_BiomeGenSwamp__init_ = var_0 => {
    let var_1 = new nms_BiomeGenSwamp();
    nms_BiomeGenSwamp__init_0(var_1, var_0);
    return var_1;
},
nms_BiomeGenSwamp_getRandomWorldGenForTrees = ($this, $par1Random) => {
    return $this.$worldGeneratorSwamp;
},
nms_BiomeGenRiver = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenHell = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenHell__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$spawnableMonsterList;
    var$3 = var$2.$array;
    $par1 = 0;
    var$4 = var$2.$size0;
    var$5 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$5;
        $par1 = var$7;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$5 = $this.$spawnableCreatureList;
    var$3 = var$5.$array;
    $par1 = 0;
    var$4 = var$5.$size0;
    var$8 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$8;
        $par1 = var$7;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$5 = $this.$spawnableWaterCreatureList;
    var$3 = var$5.$array;
    $par1 = 0;
    var$4 = var$5.$size0;
    var$8 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$8;
        $par1 = var$7;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$5 = $this.$spawnableCaveCreatureList;
    var$3 = var$5.$array;
    $par1 = 0;
    var$4 = var$5.$size0;
    var$8 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$8;
        $par1 = var$7;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$8 = new nms_SpawnListEntry;
    var$8.$itemWeight = 50;
    var$8.$entityClass = $rt_cls(nms_EntityGhast);
    var$8.$minGroupCount = 4;
    var$8.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$3 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$8;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$5 = $this.$spawnableMonsterList;
    var$2 = new nms_SpawnListEntry;
    var$2.$itemWeight = 100;
    var$2.$entityClass = $rt_cls(nms_EntityPigZombie);
    var$2.$minGroupCount = 4;
    var$2.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$3 = var$5.$array.data;
    var$4 = var$5.$size0;
    var$5.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$5 = $this.$spawnableMonsterList;
    var$2 = new nms_SpawnListEntry;
    var$2.$itemWeight = 1;
    var$2.$entityClass = $rt_cls(nms_EntityMagmaCube);
    var$2.$minGroupCount = 4;
    var$2.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
    var$3 = var$5.$array.data;
    var$4 = var$5.$size0;
    var$5.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$2;
    var$5.$modCount = var$5.$modCount + 1 | 0;
},
nms_BiomeGenHell__init_ = var_0 => {
    let var_1 = new nms_BiomeGenHell();
    nms_BiomeGenHell__init_0(var_1, var_0);
    return var_1;
},
nms_BiomeGenEnd = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenEnd__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$spawnableMonsterList;
    var$3 = var$2.$array;
    $par1 = 0;
    var$4 = var$2.$size0;
    var$5 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$5;
        $par1 = var$7;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$5 = $this.$spawnableCreatureList;
    var$3 = var$5.$array;
    $par1 = 0;
    var$4 = var$5.$size0;
    var$8 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$8;
        $par1 = var$7;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$5 = $this.$spawnableWaterCreatureList;
    var$6 = var$5.$array;
    $par1 = 0;
    var$4 = var$5.$size0;
    var$8 = null;
    if ($par1 > var$4) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while ($par1 < var$4) {
        var$3 = var$6.data;
        var$7 = $par1 + 1 | 0;
        var$3[$par1] = var$8;
        $par1 = var$7;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$5 = $this.$spawnableCaveCreatureList;
    var$6 = var$5.$array;
    var$4 = 0;
    var$7 = var$5.$size0;
    var$8 = null;
    if (var$4 > var$7) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    }
    while (var$4 < var$7) {
        var$3 = var$6.data;
        $par1 = var$4 + 1 | 0;
        var$3[var$4] = var$8;
        var$4 = $par1;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$8 = new nms_SpawnListEntry;
    var$8.$itemWeight = 10;
    var$8.$entityClass = $rt_cls(nms_EntityEnderman);
    var$8.$minGroupCount = 4;
    var$8.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$3 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$8;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    nms_Block_$callClinit();
    $par1 = nms_Block_dirt.$blockID << 24 >> 24;
    $this.$topBlock = $par1;
    $this.$fillerBlock = $par1;
    var$5 = new nms_BiomeEndDecorator;
    nms_BiomeDecorator__init_(var$5, $this);
    var$8 = new nms_WorldGenSpikes;
    $par1 = nms_Block_whiteStone.$blockID;
    var$8.$doBlockNotify = 0;
    var$8.$replaceID = $par1;
    var$5.$spikeGen = var$8;
    $this.$theBiomeDecorator = var$5;
},
nms_BiomeGenEnd__init_ = var_0 => {
    let var_1 = new nms_BiomeGenEnd();
    nms_BiomeGenEnd__init_0(var_1, var_0);
    return var_1;
},
nms_BiomeGenSnow = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenMushroomIsland = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenMushroomIsland__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$theBiomeDecorator;
    var$2.$treesPerChunk = (-100);
    var$2.$flowersPerChunk = (-100);
    var$2.$grassPerChunk = (-100);
    var$2.$mushroomsPerChunk = 1;
    var$2.$bigMushroomsPerChunk = 1;
    nms_Block_$callClinit();
    $this.$topBlock = nms_Block_mycelium.$blockID << 24 >> 24;
    var$2 = $this.$spawnableMonsterList;
    var$3 = var$2.$array;
    $par1 = 0;
    var$4 = var$2.$size0;
    var$5 = null;
    if ($par1 > var$4) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$5;
        $par1 = var$7;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$2 = $this.$spawnableCreatureList;
    var$3 = var$2.$array;
    $par1 = 0;
    var$4 = var$2.$size0;
    var$5 = null;
    if ($par1 > var$4) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$5;
        $par1 = var$7;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    var$5 = $this.$spawnableWaterCreatureList;
    var$3 = var$5.$array;
    $par1 = 0;
    var$4 = var$5.$size0;
    var$8 = null;
    if ($par1 > var$4) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$8;
        $par1 = var$7;
    }
    var$5.$size0 = 0;
    var$5.$modCount = var$5.$modCount + 1 | 0;
    var$8 = new nms_SpawnListEntry;
    var$8.$itemWeight = 8;
    var$8.$entityClass = $rt_cls(nms_EntityMooshroom);
    var$8.$minGroupCount = 4;
    var$8.$maxGroupCount = 8;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$3 = var$2.$array.data;
    var$4 = var$2.$size0;
    var$2.$size0 = var$4 + 1 | 0;
    var$3[var$4] = var$8;
    var$2.$modCount = var$2.$modCount + 1 | 0;
},
nms_BiomeGenMushroomIsland__init_ = var_0 => {
    let var_1 = new nms_BiomeGenMushroomIsland();
    nms_BiomeGenMushroomIsland__init_0(var_1, var_0);
    return var_1;
},
nms_BiomeGenBeach = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenBeach__init_ = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$spawnableCreatureList;
    var$3 = var$2.$array;
    $par1 = 0;
    var$4 = var$2.$size0;
    var$5 = null;
    if ($par1 > var$4) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    while ($par1 < var$4) {
        var$6 = var$3.data;
        var$7 = $par1 + 1 | 0;
        var$6[$par1] = var$5;
        $par1 = var$7;
    }
    var$2.$size0 = 0;
    var$2.$modCount = var$2.$modCount + 1 | 0;
    nms_Block_$callClinit();
    $par1 = nms_Block_sand.$blockID << 24 >> 24;
    $this.$topBlock = $par1;
    $this.$fillerBlock = $par1;
    var$2 = $this.$theBiomeDecorator;
    var$2.$treesPerChunk = (-999);
    var$2.$deadBushPerChunk = 0;
    var$2.$reedsPerChunk = 0;
    var$2.$cactiPerChunk = 0;
},
nms_BiomeGenBeach__init_0 = var_0 => {
    let var_1 = new nms_BiomeGenBeach();
    nms_BiomeGenBeach__init_(var_1, var_0);
    return var_1;
},
nms_BiomeGenJungle = $rt_classWithoutFields(nms_BiomeGenBase),
nms_BiomeGenJungle__init_0 = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_BiomeGenBase__init_($this, $par1);
    var$2 = $this.$theBiomeDecorator;
    var$2.$treesPerChunk = 50;
    var$2.$grassPerChunk = 25;
    var$2.$flowersPerChunk = 4;
    var$3 = $this.$spawnableMonsterList;
    var$4 = new nms_SpawnListEntry;
    var$4.$itemWeight = 2;
    var$4.$entityClass = $rt_cls(nms_EntityOcelot);
    var$4.$minGroupCount = 1;
    var$4.$maxGroupCount = 1;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    var$2 = $this.$spawnableCreatureList;
    var$3 = new nms_SpawnListEntry;
    var$3.$itemWeight = 10;
    var$3.$entityClass = $rt_cls(nms_EntityChicken);
    var$3.$minGroupCount = 4;
    var$3.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
    var$5 = var$2.$array.data;
    var$6 = var$2.$size0;
    var$2.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$3;
    var$2.$modCount = var$2.$modCount + 1 | 0;
},
nms_BiomeGenJungle__init_ = var_0 => {
    let var_1 = new nms_BiomeGenJungle();
    nms_BiomeGenJungle__init_0(var_1, var_0);
    return var_1;
},
nms_BiomeGenJungle_getRandomWorldGenForTrees = ($this, $par1Random) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 10 | 0;
        if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    if (!var$4)
        var$5 = $this.$worldGeneratorBigTree;
    else {
        var$6 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$6, 17)))), 31))) {
            var$5 = new nms_WorldGenShrub;
            var$5.$doBlockNotify = 0;
            var$5.$field_76526_b = 3;
            var$5.$field_76527_a = 0;
        } else {
            var$2 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Random.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
            while (true) {
                var$4 = var$3 % 3 | 0;
                if (((var$3 - var$4 | 0) + 2 | 0) >= 0)
                    break;
                var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1Random.$seed = var$2;
                var$3 = Long_lo(Long_shru(var$2, 17));
            }
            if (!var$4) {
                var$5 = new nms_WorldGenHugeTrees;
                var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1Random.$seed = var$2;
                var$7 = Long_lo(Long_shru(var$2, 17));
                while (true) {
                    var$8 = var$7 % 20 | 0;
                    if (((var$7 - var$8 | 0) + 19 | 0) >= 0)
                        break;
                    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1Random.$seed = var$2;
                    var$7 = Long_lo(Long_shru(var$2, 17));
                }
                var$9 = 10 + var$8 | 0;
                var$5.$doBlockNotify = 0;
                var$5.$baseHeight = var$9;
                var$5.$woodMetadata = 3;
                var$5.$leavesMetadata = 3;
            } else {
                var$5 = new nms_WorldGenTrees;
                var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1Random.$seed = var$2;
                var$7 = Long_lo(Long_shru(var$2, 17));
                while (true) {
                    var$8 = var$7 % 7 | 0;
                    if (((var$7 - var$8 | 0) + 6 | 0) >= 0)
                        break;
                    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1Random.$seed = var$2;
                    var$7 = Long_lo(Long_shru(var$2, 17));
                }
                var$3 = 4 + var$8 | 0;
                var$5.$doBlockNotify = 0;
                var$5.$minTreeHeight = var$3;
                var$5.$metaWood = 3;
                var$5.$metaLeaves = 3;
                var$5.$vinesGrow = 1;
            }
        }
    }
    return var$5;
},
nms_BiomeGenJungle_getRandomWorldGenForGrass = ($this, $par1Random) => {
    let var$2, var$3, var$4, var$5;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31))) {
        var$3 = new nms_WorldGenTallGrass;
        nms_Block_$callClinit();
        var$4 = nms_Block_tallGrass.$blockID;
        var$3.$doBlockNotify = 0;
        var$3.$tallGrassID = var$4;
        var$3.$tallGrassMetadata = 1;
    } else {
        var$3 = new nms_WorldGenTallGrass;
        nms_Block_$callClinit();
        var$5 = nms_Block_tallGrass.$blockID;
        var$3.$doBlockNotify = 0;
        var$3.$tallGrassID = var$5;
        var$3.$tallGrassMetadata = 2;
    }
    return var$3;
},
nms_BiomeGenJungle_decorate = ($this, $par1World, $par2Random, $par3, $par4) => {
    let $var5, $var6, var$7, var$8, var$9, $var7, $var8, var$12, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$theBiomeDecorator;
        if ($var5.$currentWorld !== null) {
            $par2Random = new jl_RuntimeException;
            $par2Random.$suppressionEnabled = 1;
            $par2Random.$writableStackTrace = 1;
            $par2Random.$message = $rt_s(2164);
            $rt_throw($par2Random);
        }
        $var5.$currentWorld = $par1World;
        $var5.$randomGenerator = $par2Random;
        $var5.$chunk_X = $par3;
        $var5.$chunk_Z = $par4;
        $ptr = 1;
    case 1:
        $var5.$decorate();
        if ($rt_suspending()) {
            break main;
        }
        $var5.$currentWorld = null;
        $var5.$randomGenerator = null;
        $var5 = new nms_WorldGenVines;
        $var5.$doBlockNotify = 0;
        $var6 = 0;
        var$7 = 17;
        var$8 = Long_fromInt(16);
        if ($var6 >= 50)
            return;
        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        $var7 = ($par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$9, var$7)))), 31)) | 0) + 8 | 0;
        $var8 = 64;
        var$12 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var9 = ($par4 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0) + 8 | 0;
        $ptr = 2;
    case 2:
        nms_WorldGenVines_generate($var5, $par1World, $par2Random, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 50)
            return;
        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        $var7 = ($par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$9, var$7)))), 31)) | 0) + 8 | 0;
        $var8 = 64;
        var$12 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var9 = ($par4 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0) + 8 | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $var5, $var6, var$7, var$8, var$9, $var7, $var8, var$12, $var9, $ptr);
};
function nms_BiomeCache() {
    let a = this; jl_Object.call(a);
    a.$chunkManager = null;
    a.$lastCleanupTime = Long_ZERO;
    a.$cacheMap = null;
    a.$cache0 = null;
}
let nms_BiomeCache_getBiomeCacheBlock = ($this, $par1, $par2) => {
    let $var3, $var5, var$5, var$6, var$7, var$8;
    $par1 = $par1 >> 4;
    $par2 = $par2 >> 4;
    $var3 = Long_or(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
    $var5 = $this.$cacheMap;
    var$5 = Long_lo(Long_xor($var3, Long_shru($var3, 32)));
    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
    var$6 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
    var$7 = $var5.$hashArray.data;
    $var5 = var$7[var$6 & (var$7.length - 1 | 0)];
    a: {
        while ($var5 !== null) {
            if (Long_eq($var5.$key1, $var3)) {
                $var5 = $var5.$value4;
                break a;
            }
            $var5 = $var5.$nextEntry;
        }
        $var5 = null;
    }
    $var5 = $var5;
    if ($var5 === null) {
        $var5 = nms_BiomeCacheBlock__init_($this, $par1, $par2);
        nms_LongHashMap_add($this.$cacheMap, $var3, $var5);
        var$8 = $this.$cache0;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        $par2 = var$8.$size0;
        var$8.$size0 = $par2 + 1 | 0;
        var$7[$par2] = $var5;
        var$8.$modCount = var$8.$modCount + 1 | 0;
    }
    nles_SysUtil_$callClinit();
    $var5.$lastAccessTime = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    return $var5;
},
nms_BiomeCache_cleanupCache = $this => {
    let $var1, $var3, $var5, var$4, var$5, $var6, $var7, $var9;
    a: {
        b: {
            nles_SysUtil_$callClinit();
            $var1 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var3 = Long_sub($var1, $this.$lastCleanupTime);
            if (!(Long_le($var3, Long_fromInt(7500)) && Long_ge($var3, Long_ZERO))) {
                $this.$lastCleanupTime = $var1;
                $var5 = 0;
                while (true) {
                    var$4 = $this.$cache0;
                    var$5 = $rt_compare($var5, var$4.$size0);
                    if (var$5 >= 0)
                        break b;
                    if ($var5 < 0)
                        break a;
                    if (var$5 >= 0)
                        break a;
                    $var6 = var$4.$array.data[$var5];
                    $var7 = Long_sub($var1, $var6.$lastAccessTime);
                    if (Long_le($var7, Long_fromInt(30000)) && Long_ge($var7, Long_ZERO))
                        var$5 = $var5;
                    else {
                        var$5 = $var5 + (-1) | 0;
                        ju_ArrayList_remove(var$4, $var5);
                        $var9 = Long_or(Long_and(Long_fromInt($var6.$xPosition14), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var6.$zPosition15), Long_create(4294967295, 0)), 32));
                        nms_LongHashMap_removeKey($this.$cacheMap, $var9);
                    }
                    $var5 = var$5 + 1 | 0;
                }
            }
        }
        return;
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    $rt_throw(var$4);
};
function nms_GenLayer() {
    let a = this; jl_Object.call(a);
    a.$worldGenSeed = Long_ZERO;
    a.$parent = null;
    a.$chunkSeed = Long_ZERO;
    a.$baseSeed = Long_ZERO;
}
let nms_GenLayer_initializeAllBiomeGenerators = ($par0, $par2WorldType) => {
    let $var3, $var9, $var10, $var11, $var12, $var15, $var4, var$10, $var13, $var7, var$13, $var14, $var16, $var17, $var18, $var19, $var20, $var8;
    $var3 = new nms_GenLayerIsland;
    nms_GenLayer__init_($var3, Long_fromInt(1));
    $var9 = new nms_GenLayerFuzzyZoom;
    nms_GenLayer__init_($var9, Long_fromInt(2000));
    $var9.$parent = $var3;
    $var10 = new nms_GenLayerAddIsland;
    nms_GenLayer__init_($var10, Long_fromInt(1));
    $var10.$parent = $var9;
    $var11 = new nms_GenLayerZoom;
    nms_GenLayer__init_($var11, Long_fromInt(2001));
    $var11.$parent = $var10;
    $var3 = new nms_GenLayerAddIsland;
    nms_GenLayer__init_($var3, Long_fromInt(2));
    $var3.$parent = $var11;
    $var12 = new nms_GenLayerAddSnow;
    nms_GenLayer__init_($var12, Long_fromInt(2));
    $var12.$parent = $var3;
    $var3 = new nms_GenLayerZoom;
    nms_GenLayer__init_($var3, Long_fromInt(2002));
    $var3.$parent = $var12;
    $var9 = new nms_GenLayerAddIsland;
    nms_GenLayer__init_($var9, Long_fromInt(3));
    $var9.$parent = $var3;
    $var3 = new nms_GenLayerZoom;
    nms_GenLayer__init_($var3, Long_fromInt(2003));
    $var3.$parent = $var9;
    $var9 = new nms_GenLayerAddIsland;
    nms_GenLayer__init_($var9, Long_fromInt(4));
    $var9.$parent = $var3;
    $var15 = new nms_GenLayerAddMushroomIsland;
    nms_GenLayer__init_($var15, Long_fromInt(5));
    $var15.$parent = $var9;
    $var4 = 4;
    if ($par2WorldType === nms_WorldType_LARGE_BIOMES)
        $var4 = 6;
    var$10 = 0;
    $var3 = $var15;
    while (var$10 < 0) {
        $var9 = new nms_GenLayerZoom;
        nms_GenLayer__init_($var9, Long_add(Long_fromInt(1000), Long_fromInt(var$10)));
        $var9.$parent = $var3;
        var$10 = var$10 + 1 | 0;
        $var3 = $var9;
    }
    $var13 = new nms_GenLayerRiverInit;
    nms_GenLayer__init_($var13, Long_fromInt(100));
    $var13.$parent = $var3;
    $var7 = $var4 + 2 | 0;
    var$13 = 0;
    while (var$13 < $var7) {
        $var3 = new nms_GenLayerZoom;
        nms_GenLayer__init_($var3, Long_add(Long_fromInt(1000), Long_fromInt(var$13)));
        $var3.$parent = $var13;
        var$13 = var$13 + 1 | 0;
        $var13 = $var3;
    }
    $var14 = new nms_GenLayerRiver;
    nms_GenLayer__init_($var14, Long_fromInt(1));
    $var14.$parent = $var13;
    $var16 = new nms_GenLayerSmooth;
    nms_GenLayer__init_($var16, Long_fromInt(1000));
    $var16.$parent = $var14;
    var$13 = 0;
    while (var$13 < 0) {
        $var3 = new nms_GenLayerZoom;
        nms_GenLayer__init_($var3, Long_add(Long_fromInt(1000), Long_fromInt(var$13)));
        $var3.$parent = $var15;
        var$13 = var$13 + 1 | 0;
        $var15 = $var3;
    }
    $var17 = nms_GenLayerBiome__init_(Long_fromInt(200), $var15, $par2WorldType);
    var$13 = 0;
    while (var$13 < 2) {
        $par2WorldType = new nms_GenLayerZoom;
        nms_GenLayer__init_($par2WorldType, Long_add(Long_fromInt(1000), Long_fromInt(var$13)));
        $par2WorldType.$parent = $var17;
        var$13 = var$13 + 1 | 0;
        $var17 = $par2WorldType;
    }
    $var18 = new nms_GenLayerHills;
    nms_GenLayer__init_($var18, Long_fromInt(1000));
    $var18.$parent = $var17;
    $var7 = 0;
    while ($var7 < $var4) {
        $par2WorldType = new nms_GenLayerZoom;
        nms_GenLayer__init_($par2WorldType, Long_fromInt(1000 + $var7 | 0));
        $par2WorldType.$parent = $var18;
        if ($var7)
            $var3 = $par2WorldType;
        else {
            $var3 = new nms_GenLayerAddIsland;
            nms_GenLayer__init_($var3, Long_fromInt(3));
            $var3.$parent = $par2WorldType;
        }
        var$13 = $rt_compare($var7, 1);
        if (var$13)
            $par2WorldType = $var3;
        else {
            $par2WorldType = new nms_GenLayerShore;
            nms_GenLayer__init_($par2WorldType, Long_fromInt(1000));
            $par2WorldType.$parent = $var3;
        }
        if (var$13)
            $var18 = $par2WorldType;
        else {
            $var18 = new nms_GenLayerSwampRivers;
            nms_GenLayer__init_($var18, Long_fromInt(1000));
            $var18.$parent = $par2WorldType;
        }
        $var7 = $var7 + 1 | 0;
    }
    $var19 = new nms_GenLayerSmooth;
    nms_GenLayer__init_($var19, Long_fromInt(1000));
    $var19.$parent = $var18;
    $var20 = new nms_GenLayerRiverMix;
    nms_GenLayer__init_($var20, Long_fromInt(100));
    $var20.$biomePatternGeneratorChain = $var19;
    $var20.$riverPatternGeneratorChain = $var16;
    $var8 = new nms_GenLayerVoronoiZoom;
    nms_GenLayer__init_($var8, Long_fromInt(10));
    $var8.$parent = $var20;
    nms_GenLayer_initWorldGenSeed($var20.$biomePatternGeneratorChain, $par0);
    nms_GenLayer_initWorldGenSeed($var20.$riverPatternGeneratorChain, $par0);
    nms_GenLayer_initWorldGenSeed($var20, $par0);
    nms_GenLayer_initWorldGenSeed($var8, $par0);
    return $rt_wrapArray(nms_GenLayer, [$var20, $var8, $var20]);
},
nms_GenLayer__init_ = ($this, $par1) => {
    let var$2;
    $this.$baseSeed = $par1;
    var$2 = Long_mul($par1, Long_add(Long_mul($par1, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$baseSeed = var$2;
    var$2 = Long_add(var$2, $par1);
    $this.$baseSeed = var$2;
    var$2 = Long_mul(var$2, Long_add(Long_mul(var$2, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$baseSeed = var$2;
    var$2 = Long_add(var$2, $par1);
    $this.$baseSeed = var$2;
    var$2 = Long_mul(var$2, Long_add(Long_mul(var$2, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$baseSeed = var$2;
    $this.$baseSeed = Long_add(var$2, $par1);
},
nms_GenLayer_initWorldGenSeed = ($this, $par1) => {
    let var$2, var$3;
    $this.$worldGenSeed = $par1;
    var$2 = $this.$parent;
    if (var$2 !== null)
        var$2.$initWorldGenSeed($par1);
    var$3 = $this.$worldGenSeed;
    $par1 = Long_mul(var$3, Long_add(Long_mul(var$3, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$worldGenSeed = $par1;
    var$3 = $this.$baseSeed;
    $par1 = Long_add($par1, var$3);
    $this.$worldGenSeed = $par1;
    $par1 = Long_mul($par1, Long_add(Long_mul($par1, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$worldGenSeed = $par1;
    $par1 = Long_add($par1, var$3);
    $this.$worldGenSeed = $par1;
    $par1 = Long_mul($par1, Long_add(Long_mul($par1, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$worldGenSeed = $par1;
    $this.$worldGenSeed = Long_add($par1, var$3);
},
nms_GenLayer_initChunkSeed = ($this, $par1, $par3) => {
    let var$3, var$4;
    var$3 = $this.$worldGenSeed;
    $this.$chunkSeed = var$3;
    var$4 = Long_mul(var$3, Long_add(Long_mul(var$3, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$chunkSeed = var$4;
    var$3 = Long_add(var$4, $par1);
    $this.$chunkSeed = var$3;
    var$4 = Long_mul(var$3, Long_add(Long_mul(var$3, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$chunkSeed = var$4;
    var$4 = Long_add(var$4, $par3);
    $this.$chunkSeed = var$4;
    var$4 = Long_mul(var$4, Long_add(Long_mul(var$4, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$chunkSeed = var$4;
    $par1 = Long_add(var$4, $par1);
    $this.$chunkSeed = $par1;
    $par1 = Long_mul($par1, Long_add(Long_mul($par1, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$chunkSeed = $par1;
    $this.$chunkSeed = Long_add($par1, $par3);
},
nms_GenLayer_nextInt = ($this, $par1) => {
    let var$2, $var2, var$4;
    var$2 = $this.$chunkSeed;
    $var2 = Long_lo(Long_rem(Long_shr(var$2, 24), Long_fromInt($par1)));
    if ($var2 < 0)
        $var2 = $var2 + $par1 | 0;
    var$4 = Long_mul(var$2, Long_add(Long_mul(var$2, Long_create(1284865837, 1481765933)), Long_create(4150755663, 335903614)));
    $this.$chunkSeed = var$4;
    $this.$chunkSeed = Long_add(var$4, $this.$worldGenSeed);
    return $var2;
};
function nms_FlatLayerInfo() {
    let a = this; jl_Object.call(a);
    a.$layerCount = 0;
    a.$layerFillBlock = 0;
    a.$layerFillBlockMeta = 0;
    a.$layerMinimumY = 0;
}
let nms_FlatLayerInfo_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$layerFillBlock;
    var$2 = new jl_AbstractStringBuilder;
    var$2.$buffer = $rt_createCharArray(20);
    var$2 = (jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, var$1, 10)).$toString();
    var$3 = $this.$layerCount;
    if (var$3 > 1) {
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$3, 10);
        var$3 = var$4.$length0;
        jl_AbstractStringBuilder_insertSpace(var$4, var$3, var$3 + 1 | 0);
        var$4.$buffer.data[var$3] = 120;
        var$1 = var$4.$length0;
        if (var$2 === null)
            var$2 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$4, var$1, var$2);
        var$2 = new jl_String;
        var$5 = var$4.$buffer;
        var$6 = var$5.data;
        var$3 = var$4.$length0;
        var$7 = var$6.length;
        if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0))
            var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$3);
        else {
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
    }
    a: {
        var$1 = $this.$layerFillBlockMeta;
        if (var$1 > 0) {
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            var$3 = var$4.$length0;
            if (var$2 === null)
                var$2 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$4, var$3, var$2);
            var$7 = var$4.$length0;
            jl_AbstractStringBuilder_insertSpace(var$4, var$7, var$7 + 1 | 0);
            var$4.$buffer.data[var$7] = 58;
            jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$1, 10);
            var$2 = new jl_String;
            var$5 = var$4.$buffer;
            var$6 = var$5.data;
            var$3 = var$4.$length0;
            var$7 = var$6.length;
            if (var$3 < 0)
                break a;
            if (var$3 > (var$7 - 0 | 0))
                break a;
            var$2.$nativeString = $rt_charArrayToString(var$5.data, 0, var$3);
        }
        return var$2;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$7() {
    let a = this; jl_Object.call(a);
    a.$val$cb10 = null;
    a.$val$r = null;
}
let nles_VirtualFilesystem$AsyncHandlers$7_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb10;
    var$2 = otji_JSWrapper_wrap(nles_VirtualFilesystem$AsyncHandlers_readRow$js_body$_5(var$0.$val$r.result));
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$8() {
    jl_Object.call(this);
    this.$val$cb3 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$8_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb3;
    var$2 = null;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$15() {
    jl_Object.call(this);
    this.$val$cb9 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$15_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb9;
    var$2 = nles_BooleanResult_TRUE;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$16() {
    jl_Object.call(this);
    this.$val$cb4 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$16_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb4;
    var$2 = nles_BooleanResult_FALSE;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$5() {
    jl_Object.call(this);
    this.$val$cb8 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$5_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb8;
    var$2 = nles_BooleanResult_TRUE;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$6() {
    jl_Object.call(this);
    this.$val$cb1 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$6_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb1;
    var$2 = nles_BooleanResult_FALSE;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$13() {
    let a = this; jl_Object.call(a);
    a.$val$cb7 = null;
    a.$val$r1 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$13_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb7;
    var$2 = !(var$0.$val$r1.result <= 0 ? 0 : 1) ? nles_BooleanResult_FALSE : nles_BooleanResult_TRUE;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nles_VirtualFilesystem$AsyncHandlers$14() {
    jl_Object.call(this);
    this.$val$cb0 = null;
}
let nles_VirtualFilesystem$AsyncHandlers$14_handleEvent$exported$0 = var$0 => {
    let var$1, var$2;
    var$1 = var$0.$val$cb0;
    var$2 = nles_BooleanResult_FALSE;
    var$1.$realAsyncCallback.$complete(var$2);
};
function nms_ExtendedBlockStorage() {
    let a = this; jl_Object.call(a);
    a.$yBase = 0;
    a.$blockRefCount = 0;
    a.$tickRefCount = 0;
    a.$blockLSBArray = null;
    a.$blockMSBArray = null;
    a.$blockMetadataArray = null;
    a.$blocklightArray = null;
    a.$skylightArray = null;
}
let nms_ExtendedBlockStorage__init_0 = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6;
    $this.$yBase = $par1;
    var$3 = $rt_createByteArray(4096);
    var$4 = var$3.data;
    $this.$blockLSBArray = var$3;
    var$5 = new nms_NibbleArray;
    var$6 = var$4.length >> 1;
    var$5.$data8 = $rt_createByteArray(var$6);
    var$5.$depthBits = 4;
    var$5.$depthBitsPlusFour = 8;
    $this.$blockMetadataArray = var$5;
    var$5 = new nms_NibbleArray;
    var$5.$data8 = $rt_createByteArray(var$6);
    var$5.$depthBits = 4;
    var$5.$depthBitsPlusFour = 8;
    $this.$blocklightArray = var$5;
    if ($par2) {
        var$5 = new nms_NibbleArray;
        var$5.$data8 = $rt_createByteArray(var$6);
        var$5.$depthBits = 4;
        var$5.$depthBitsPlusFour = 8;
        $this.$skylightArray = var$5;
    }
},
nms_ExtendedBlockStorage__init_ = (var_0, var_1) => {
    let var_2 = new nms_ExtendedBlockStorage();
    nms_ExtendedBlockStorage__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ExtendedBlockStorage_setExtBlockID = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, $var5, var$8;
    var$5 = $this.$blockLSBArray.data;
    var$6 = $par2 << 8 | $par3 << 4 | $par1;
    $var5 = var$5[var$6] & 255;
    var$8 = $this.$blockMSBArray;
    if (var$8 !== null)
        $var5 = $var5 | nms_NibbleArray_get(var$8, $par1, $par2, $par3) << 8;
    if (!$var5 && $par4) {
        $this.$blockRefCount = $this.$blockRefCount + 1 | 0;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        if (var$5[$par4] !== null && var$5[$par4].$needsRandomTick)
            $this.$tickRefCount = $this.$tickRefCount + 1 | 0;
    } else if ($var5 && !$par4) {
        $this.$blockRefCount = $this.$blockRefCount - 1 | 0;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        if (var$5[$var5] !== null && var$5[$var5].$needsRandomTick)
            $this.$tickRefCount = $this.$tickRefCount - 1 | 0;
    } else {
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        if (var$5[$var5] !== null && var$5[$var5].$needsRandomTick && !(var$5[$par4] !== null && var$5[$par4].$needsRandomTick))
            $this.$tickRefCount = $this.$tickRefCount - 1 | 0;
        else if (!(var$5[$var5] !== null && var$5[$var5].$needsRandomTick) && var$5[$par4] !== null && var$5[$par4].$needsRandomTick)
            $this.$tickRefCount = $this.$tickRefCount + 1 | 0;
    }
    var$5 = $this.$blockLSBArray.data;
    var$5[var$6] = ($par4 & 255) << 24 >> 24;
    if ($par4 <= 255) {
        var$8 = $this.$blockMSBArray;
        if (var$8 !== null)
            nms_NibbleArray_set(var$8, $par1, $par2, $par3, 0);
    } else {
        if ($this.$blockMSBArray === null) {
            var$8 = new nms_NibbleArray;
            var$8.$data8 = $rt_createByteArray(var$5.length >> 1);
            var$8.$depthBits = 4;
            var$8.$depthBitsPlusFour = 8;
            $this.$blockMSBArray = var$8;
        }
        nms_NibbleArray_set($this.$blockMSBArray, $par1, $par2, $par3, ($par4 & 3840) >> 8);
    }
},
nms_ExtendedBlockStorage_removeInvalidBlocks = $this => {
    let $var1, $var2, $var3, var$4, var$5, $var4, var$7;
    $this.$blockRefCount = 0;
    $this.$tickRefCount = 0;
    $var1 = 0;
    while ($var1 < 16) {
        $var2 = 0;
        while ($var2 < 16) {
            $var3 = 0;
            while ($var3 < 16) {
                var$4 = $this.$blockLSBArray.data;
                var$5 = $var2 << 8 | $var3 << 4 | $var1;
                $var4 = var$4[var$5] & 255;
                var$7 = $this.$blockMSBArray;
                if (var$7 !== null)
                    $var4 = nms_NibbleArray_get(var$7, $var1, $var2, $var3) << 8 | $var4;
                if ($var4 > 0) {
                    nms_Block_$callClinit();
                    var$4 = nms_Block_blocksList.data;
                    if (var$4[$var4] === null) {
                        $this.$blockLSBArray.data[var$5] = 0;
                        var$7 = $this.$blockMSBArray;
                        if (var$7 !== null)
                            nms_NibbleArray_set(var$7, $var1, $var2, $var3, 0);
                    } else {
                        $this.$blockRefCount = $this.$blockRefCount + 1 | 0;
                        if (var$4[$var4].$needsRandomTick)
                            $this.$tickRefCount = $this.$tickRefCount + 1 | 0;
                    }
                }
                $var3 = $var3 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        $var1 = $var1 + 1 | 0;
    }
};
function jlr_ReferenceQueue() {
    let a = this; jl_Object.call(a);
    a.$firstCallback = null;
    a.$inner = null;
    a.$registry = null;
}
let jlr_ReferenceQueue__init_ = var$0 => {
    var$0.$inner = [];
    {
        var$0.$registry = new FinalizationRegistry(ref => {
            if (!jlr_ReferenceQueue_reportNext(var$0, ref)) {
                var$0.$inner.push(ref);
            }
        });
    }
},
jlr_ReferenceQueue__init_0 = () => {
    let var_0 = new jlr_ReferenceQueue();
    jlr_ReferenceQueue__init_(var_0);
    return var_0;
},
jlr_ReferenceQueue_poll = var$0 => {
    var value = var$0.$inner.shift();
    return typeof value !== 'undefined' ? value : null;
},
jlr_ReferenceQueue_reportNext = (var$0, $ref) => {
    let $callback;
    $callback = var$0.$firstCallback;
    if ($callback === null)
        return 0;
    $callback.$complete1($ref);
    return 1;
};
function nms_SpawnListEntry() {
    let a = this; nms_WeightedRandomItem.call(a);
    a.$entityClass = null;
    a.$minGroupCount = 0;
    a.$maxGroupCount = 0;
}
let nms_SpawnListEntry_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = jl_Class_getSimpleName($this.$entityClass);
    var$2 = $this.$minGroupCount;
    var$3 = $this.$maxGroupCount;
    var$4 = $this.$itemWeight;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    var$6 = var$5.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$5, var$6, var$1);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(2192));
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$2, 10);
    var$6 = var$5.$length0;
    jl_AbstractStringBuilder_insertSpace(var$5, var$6, var$6 + 1 | 0);
    var$5.$buffer.data[var$6] = 45;
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$3, 10);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(2193));
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, var$4, 10);
    var$1 = new jl_String;
    var$7 = var$5.$buffer;
    var$8 = var$7.data;
    var$3 = var$5.$length0;
    var$4 = var$8.length;
    if (var$3 >= 0 && var$3 <= (var$4 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$7.data, 0, var$3);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function nms_EntityLiving() {
    let a = this; nms_EntityLivingBase.call(a);
    a.$livingSoundTime = 0;
    a.$experienceValue = 0;
    a.$lookHelper = null;
    a.$moveHelper = null;
    a.$jumpHelper = null;
    a.$bodyHelper = null;
    a.$navigator = null;
    a.$tasks0 = null;
    a.$targetTasks = null;
    a.$attackTarget = null;
    a.$senses = null;
    a.$equipment = null;
    a.$equipmentDropChances = null;
    a.$canPickUpLoot = 0;
    a.$persistenceRequired = 0;
    a.$defaultPitch = 0.0;
    a.$currentTarget = null;
    a.$numTicksToChaseTarget = 0;
    a.$isLeashed = 0;
    a.$leashedToEntity = null;
    a.$field_110170_bx = null;
}
let nms_EntityLiving__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, $var2, var$6;
    nms_EntityLivingBase__init_($this, $par1World);
    $this.$equipment = $rt_createArray(nms_ItemStack, 5);
    $this.$equipmentDropChances = $rt_createFloatArray(5);
    $this.$tasks0 = nms_EntityAITasks__init_();
    $this.$targetTasks = nms_EntityAITasks__init_();
    var$2 = new nms_EntityLookHelper;
    var$2.$entity1 = $this;
    $this.$lookHelper = var$2;
    var$2 = new nms_EntityMoveHelper;
    var$2.$entity2 = $this;
    var$2.$posX5 = $this.$posX;
    var$2.$posY6 = $this.$posY;
    var$2.$posZ5 = $this.$posZ;
    $this.$moveHelper = var$2;
    var$2 = new nms_EntityJumpHelper;
    var$2.$entity0 = $this;
    $this.$jumpHelper = var$2;
    var$2 = new nms_EntityBodyHelper;
    var$2.$theLiving = $this;
    $this.$bodyHelper = var$2;
    var$2 = new nms_PathNavigate;
    var$3 = new nms_Vec3;
    var$4 = nms_Vec3_fakePool;
    var$3.$xCoord = 0.0;
    var$3.$yCoord = 0.0;
    var$3.$zCoord = 0.0;
    var$3.$myVec3LocalPool = var$4;
    var$2.$lastPosCheck = var$3;
    var$2.$canPassOpenWoodenDoors = 1;
    var$2.$theEntity = $this;
    var$2.$worldObj3 = $par1World;
    var$2.$pathSearchRange = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_followRange);
    $this.$navigator = var$2;
    $par1World = new nms_EntitySenses;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $par1World.$seenEntities = var$2;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    $par1World.$unseenEntities = var$2;
    $par1World.$entityObj1 = $this;
    $this.$senses = $par1World;
    $var2 = 0;
    while (true) {
        var$6 = $this.$equipmentDropChances.data;
        if ($var2 >= var$6.length)
            break;
        var$6[$var2] = 0.08500000089406967;
        $var2 = $var2 + 1 | 0;
    }
},
nms_EntityLiving_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if (!$this.$isAIEnabled()) {
        var$1 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2 = $this.$attributeMap.$attributes;
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode(var$1.$field_111115_a);
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$1, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        var$5 = var$2 === null ? null : var$2.$value0;
        if (0.10000000149011612 !== var$5.$baseValue) {
            var$5.$baseValue = 0.10000000149011612;
            var$5.$field_111133_g = 1;
            var$1 = var$5.$field_111138_a;
            if (var$5.$field_111136_b.$shouldWatch) {
                var$1 = var$1.$field_111162_d;
                ju_HashMap_putImpl(var$1.$backingMap, var$5, var$1);
            }
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityLiving_getLookHelper = $this => {
    return $this.$lookHelper;
},
nms_EntityLiving_getMoveHelper = $this => {
    return $this.$moveHelper;
},
nms_EntityLiving_getJumpHelper = $this => {
    return $this.$jumpHelper;
},
nms_EntityLiving_getNavigator = $this => {
    return $this.$navigator;
},
nms_EntityLiving_getEntitySenses = $this => {
    return $this.$senses;
},
nms_EntityLiving_getAttackTarget = $this => {
    return $this.$attackTarget;
},
nms_EntityLiving_setAttackTarget = ($this, $par1EntityLivingBase) => {
    $this.$attackTarget = $par1EntityLivingBase;
},
nms_EntityLiving_canAttackClass = ($this, $par1Class) => {
    return $rt_cls(nms_EntityCreeper) !== $par1Class && $rt_cls(nms_EntityGhast) !== $par1Class ? 1 : 0;
},
nms_EntityLiving_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
},
nms_EntityLiving_getTalkInterval = $this => {
    return 80;
},
nms_EntityLiving_playLivingSound = $this => {
    let $var1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$getLivingSound();
        if ($var1 === null)
            return;
        var$2 = $this.$getSoundVolume();
        var$3 = $this.$getSoundPitch();
        var$4 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$4, $this, $var1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, $ptr);
},
nms_EntityLiving_onEntityUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLivingBase_onEntityUpdate($this);
            if ($rt_suspending()) {
                break main;
            }
            if (!$this.$isDead) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[134];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$3 = var$2.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$3) {
                            var$5 = var$1.$key;
                            if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                    var$6 = 1;
                    break a;
                }
            }
            var$6 = 0;
        }
        if (var$6) {
            var$1 = $this.$rand;
            var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$7;
            var$3 = Long_lo(Long_shru(var$7, 17));
            while (true) {
                var$8 = var$3 % 1000 | 0;
                if (((var$3 - var$8 | 0) + 999 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$7;
                var$3 = Long_lo(Long_shru(var$7, 17));
            }
            var$9 = $this.$livingSoundTime;
            $this.$livingSoundTime = var$9 + 1 | 0;
            if (var$8 < var$9) {
                $this.$livingSoundTime =  -$this.$getTalkInterval() | 0;
                var$1 = $this.$getLivingSound();
                if (var$1 !== null) {
                    var$10 = $this.$getSoundVolume();
                    var$11 = $this.$getSoundPitch();
                    var$2 = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 2:
        nms_World_playSoundAtEntity(var$2, $this, var$1, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityLiving_getExperiencePoints = ($this, $par1EntityPlayer) => {
    let $var2, $var3, $var4, var$5, var$6, var$7, var$8;
    $var2 = $this.$experienceValue;
    if ($var2 <= 0)
        return $var2;
    $var3 = $this.$equipment;
    $var4 = 0;
    while (true) {
        var$5 = $var3.data;
        if ($var4 >= var$5.length)
            break;
        if (var$5[$var4] !== null && $this.$equipmentDropChances.data[$var4] <= 1.0) {
            $par1EntityPlayer = $this.$rand;
            var$6 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityPlayer.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
            while (true) {
                var$8 = var$7 % 3 | 0;
                if (((var$7 - var$8 | 0) + 2 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityPlayer.$seed = var$6;
                var$7 = Long_lo(Long_shru(var$6, 17));
            }
            $var2 = $var2 + (1 + var$8 | 0) | 0;
        }
        $var4 = $var4 + 1 | 0;
    }
    return $var2;
},
nms_EntityLiving_spawnExplosionParticle = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6;
    $var1 = 0;
    a: {
        while ($var1 < 20) {
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            var$2 = $this.$worldObj;
            var$3 = $this.$rand;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$3.$seed = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5 = 0;
            while (true) {
                var$6 = $rt_compare(var$5, var$2.$worldAccesses.$size0);
                if (var$6 >= 0)
                    break;
                if (var$5 < 0)
                    break a;
                if (var$6 >= 0)
                    break a;
                var$5 = var$5 + 1 | 0;
            }
            $var1 = $var1 + 1 | 0;
        }
        return;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
nms_EntityLiving_onUpdate = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote)
            return;
        $ptr = 2;
    case 2:
        $this.$func_110159_bB();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_EntityLiving_func_110146_f = ($this, $par1, $par2) => {
    if (!$this.$isAIEnabled())
        return nms_EntityLivingBase_func_110146_f($this, $par1, $par2);
    nms_EntityBodyHelper_func_75664_a($this.$bodyHelper);
    return $par2;
},
nms_EntityLiving_getLivingSound = $this => {
    return null;
},
nms_EntityLiving_getDropItemId = $this => {
    return 0;
},
nms_EntityLiving_dropFewItems = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$getDropItemId();
        if ($var3 > 0) {
            var$4 = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                $var4 = var$6 % 3 | 0;
                if (((var$6 - $var4 | 0) + 2 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$5;
                var$6 = Long_lo(Long_shru(var$5, 17));
            }
            if ($par2 > 0) {
                var$6 = $par2 + 1 | 0;
                var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$5;
                $par2 = Long_lo(Long_shru(var$5, 17));
                $var5 = var$6 - 1 | 0;
                if (!(var$6 & $var5))
                    $par1 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$6), Long_fromInt($par2)), 31));
                else
                    while (true) {
                        $par1 = $par2 % var$6 | 0;
                        if ((($par2 - $par1 | 0) + $var5 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$4.$seed = var$5;
                        $par2 = Long_lo(Long_shru(var$5, 17));
                    }
                $var4 = $var4 + $par1 | 0;
            }
            $var5 = 0;
            var$9 = 0.0;
            $par2 = 138;
            if ($var5 < $var4) {
                var$10 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$10.$itemID = $var3;
                var$10.$stackSize = 1;
                var$10.$itemDamage = 0;
                var$4 = new nms_EntityItem;
                var$11 = $this.$worldObj;
                var$12 = $this.$posX;
                var$13 = $this.$posY + var$9;
                var$14 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityItem__init_(var$4, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = var$4.$dataWatcher;
        var$11 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[$par2]);
        var$16 = var$11 === null ? null : var$11.$value0;
        if (!(var$10 !== var$16.$watchedObject ? 0 : 1)) {
            var$16.$watchedObject = var$10;
            var$16.$watched = 1;
            var$15.$objectChanged = 1;
        }
        var$15 = var$4.$dataWatcher;
        var$11 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[$par2]);
        (var$11 === null ? null : var$11.$value0).$watched = 1;
        var$15.$objectChanged = 1;
        var$4.$delayBeforeCanPickup = 10;
        var$11 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$11, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= $var4)
            return;
        var$10 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$10.$itemID = $var3;
        var$10.$stackSize = 1;
        var$10.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$11 = $this.$worldObj;
        var$12 = $this.$posX;
        var$13 = $this.$posY + var$9;
        var$14 = $this.$posZ;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, var$5, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityLiving_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let $var7, $var4, $var6, $var2, $var3, var$7, var$8, $var5, var$10, var$11, var$12, var$13, var$14;
    nms_EntityLivingBase_writeEntityToNBT($this, $par1NBTTagCompound);
    $var7 = (!$this.$canPickUpLoot ? 0 : 1) << 24 >> 24;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var6 = new nms_NBTTagByte;
    $var6.$name = $rt_s(2194);
    $var6.$data0 = $var7;
    ju_HashMap_putImpl($var4, $rt_s(2194), $var6);
    $var7 = (!$this.$persistenceRequired ? 0 : 1) << 24 >> 24;
    $var4 = $par1NBTTagCompound.$tagMap;
    $var6 = new nms_NBTTagByte;
    $var6.$name = $rt_s(2195);
    $var6.$data0 = $var7;
    ju_HashMap_putImpl($var4, $rt_s(2195), $var6);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    $var6 = new ju_ArrayList;
    $var6.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = $var6;
    $var3 = 0;
    while ($var3 < $this.$equipment.data.length) {
        $var4 = new nms_NBTTagCompound;
        $var4.$name = $rt_s(3);
        $var6 = new ju_HashMap;
        $var7 = ju_HashMap_calculateCapacity(16);
        $var6.$elementCount = 0;
        var$7 = $rt_createArray(ju_HashMap$HashEntry, $var7);
        var$8 = var$7.data;
        $var6.$elementData = var$7;
        $var6.$loadFactor = 0.75;
        $var6.$threshold = var$8.length * 0.75 | 0;
        $var4.$tagMap = $var6;
        var$8 = $this.$equipment.data;
        if (var$8[$var3] !== null) {
            $var5 = var$8[$var3];
            $var7 = $var5.$itemID << 16 >> 16;
            var$10 = new nms_NBTTagShort;
            var$10.$name = $rt_s(914);
            var$10.$data2 = $var7;
            ju_HashMap_putImpl($var6, $rt_s(914), var$10);
            $var7 = $var5.$stackSize << 24 >> 24;
            var$10 = $var4.$tagMap;
            var$11 = new nms_NBTTagByte;
            var$11.$name = $rt_s(915);
            var$11.$data0 = $var7;
            ju_HashMap_putImpl(var$10, $rt_s(915), var$11);
            $var7 = $var5.$itemDamage << 16 >> 16;
            var$10 = $var4.$tagMap;
            var$11 = new nms_NBTTagShort;
            var$11.$name = $rt_s(916);
            var$11.$data2 = $var7;
            ju_HashMap_putImpl(var$10, $rt_s(916), var$11);
            $var6 = $var5.$stackTagCompound;
            if ($var6 !== null) {
                var$11 = $var4.$tagMap;
                $var6.$name = $rt_s(917);
                ju_HashMap_putImpl(var$11, $rt_s(917), $var6);
            }
        }
        $var2.$tagType = 10;
        $var6 = $var2.$tagList;
        ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
        var$8 = $var6.$array.data;
        $var7 = $var6.$size0;
        $var6.$size0 = $var7 + 1 | 0;
        var$8[$var7] = $var4;
        $var6.$modCount = $var6.$modCount + 1 | 0;
        $var3 = $var3 + 1 | 0;
    }
    $var6 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(1991);
    ju_HashMap_putImpl($var6, $rt_s(1991), $var2);
    $var6 = new nms_NBTTagList;
    $var6.$name = $rt_s(3);
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    $var6.$tagList = $var2;
    $var7 = 0;
    while (true) {
        if ($var7 >= $this.$equipmentDropChances.data.length) {
            $var4 = $par1NBTTagCompound.$tagMap;
            $var6.$name = $rt_s(1993);
            ju_HashMap_putImpl($var4, $rt_s(1993), $var6);
            $var6 = nms_EntityLiving_getCustomNameTag($this);
            $var5 = $par1NBTTagCompound.$tagMap;
            $var4 = new nms_NBTTagString;
            $var4.$name = $rt_s(1994);
            $var4.$data1 = $var6;
            if ($var6 === null) {
                $var2 = new jl_IllegalArgumentException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(177);
                $rt_throw($var2);
            }
            ju_HashMap_putImpl($var5, $rt_s(1994), $var4);
            $var7 = (!nms_EntityLiving_getAlwaysRenderNameTag($this) ? 0 : 1) << 24 >> 24;
            $var4 = $par1NBTTagCompound.$tagMap;
            $var6 = new nms_NBTTagByte;
            $var6.$name = $rt_s(1995);
            $var6.$data0 = $var7;
            ju_HashMap_putImpl($var4, $rt_s(1995), $var6);
            $var7 = (!$this.$isLeashed ? 0 : 1) << 24 >> 24;
            $var4 = $par1NBTTagCompound.$tagMap;
            $var6 = new nms_NBTTagByte;
            $var6.$name = $rt_s(2196);
            $var6.$data0 = $var7;
            ju_HashMap_putImpl($var4, $rt_s(2196), $var6);
            if ($this.$leashedToEntity !== null) {
                $var4 = new nms_NBTTagCompound;
                $var4.$name = $rt_s(2197);
                var$11 = new ju_HashMap;
                $var7 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$7 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                var$8 = var$7.data;
                var$11.$elementData = var$7;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$8.length * 0.75 | 0;
                $var4.$tagMap = var$11;
                $var2 = $this.$leashedToEntity;
                if ($var2 instanceof nms_EntityLivingBase) {
                    var$12 = $var2.$entityUniqueID.$mostSigBits;
                    $var2 = new nms_NBTTagLong;
                    $var2.$name = $rt_s(1264);
                    $var2.$data6 = var$12;
                    ju_HashMap_putImpl(var$11, $rt_s(1264), $var2);
                    var$12 = $this.$leashedToEntity.$entityUniqueID.$leastSigBits;
                    $var5 = $var4.$tagMap;
                    $var6 = new nms_NBTTagLong;
                    $var6.$name = $rt_s(1265);
                    $var6.$data6 = var$12;
                    ju_HashMap_putImpl($var5, $rt_s(1265), $var6);
                } else if ($var2 instanceof nms_EntityHanging) {
                    $var5 = $var2;
                    $var7 = $var5.$xPosition1;
                    $var6 = new nms_NBTTagInt;
                    $var6.$name = $rt_s(1525);
                    $var6.$data = $var7;
                    ju_HashMap_putImpl(var$11, $rt_s(1525), $var6);
                    $var7 = $var5.$yPosition0;
                    var$11 = $var4.$tagMap;
                    $var6 = new nms_NBTTagInt;
                    $var6.$name = $rt_s(355);
                    $var6.$data = $var7;
                    ju_HashMap_putImpl(var$11, $rt_s(355), $var6);
                    $var7 = $var5.$zPosition1;
                    $var5 = $var4.$tagMap;
                    $var6 = new nms_NBTTagInt;
                    $var6.$name = $rt_s(2159);
                    $var6.$data = $var7;
                    ju_HashMap_putImpl($var5, $rt_s(2159), $var6);
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                $var4.$name = $rt_s(2197);
                ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2197), $var4);
            }
            return;
        }
        $var2 = new nms_NBTTagFloat;
        $var4 = new jl_StringBuilder;
        $var4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert0($var4, $var4.$length0, $var7, 10);
        $var5 = new jl_String;
        var$8 = $var4.$buffer;
        var$7 = var$8.data;
        var$13 = $var4.$length0;
        $var3 = var$7.length;
        if (var$13 < 0)
            break;
        if (var$13 > ($var3 - 0 | 0))
            break;
        $var5.$nativeString = $rt_charArrayToString(var$8.data, 0, var$13);
        var$14 = $this.$equipmentDropChances.data[$var7];
        $var2.$name = $var5;
        $var2.$data5 = var$14;
        $var6.$tagType = 5;
        $var4 = $var6.$tagList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$8 = $var4.$array.data;
        var$13 = $var4.$size0;
        $var4.$size0 = var$13 + 1 | 0;
        var$8[var$13] = $var2;
        $var4.$modCount = $var4.$modCount + 1 | 0;
        $var7 = $var7 + 1 | 0;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1NBTTagCompound);
    $rt_throw($par1NBTTagCompound);
},
nms_EntityLiving_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        nms_EntityLivingBase_readEntityFromNBT($this, $par1NBTTagCompound);
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2194).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2194).$nativeString.length)
                    break a;
                $rt_s(2194).$hashCode1 = (31 * $rt_s(2194).$hashCode1 | 0) + $rt_s(2194).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(2194).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var3) {
            b: {
                var$5 = $var2.$key;
                if ($rt_s(2194) !== var$5) {
                    if ($rt_s(2194) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2194).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2194) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2194).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2194).$nativeString.length)
                            break c;
                        $rt_s(2194).$hashCode1 = (31 * $rt_s(2194).$hashCode1 | 0) + $rt_s(2194).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2194).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var3) {
                    d: {
                        var$5 = $var2.$key;
                        if ($rt_s(2194) !== var$5) {
                            if ($rt_s(2194) === var$5)
                                var$6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$5 = var$5;
                                var$6 = $rt_s(2194).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data0;
    } else
        $var3 = 0;
    $var3 = !$var3 ? 0 : 1;
    e: {
        $this.$canPickUpLoot = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2195).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2195).$nativeString.length)
                    break e;
                $rt_s(2195).$hashCode1 = (31 * $rt_s(2195).$hashCode1 | 0) + $rt_s(2195).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2195).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            f: {
                var$5 = $var2.$key;
                if ($rt_s(2195) !== var$5) {
                    if ($rt_s(2195) === var$5)
                        $var3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$5 = var$5;
                        $var3 = $rt_s(2195).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2195) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2195).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2195).$nativeString.length)
                            break g;
                        $rt_s(2195).$hashCode1 = (31 * $rt_s(2195).$hashCode1 | 0) + $rt_s(2195).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2195).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$6 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$6) {
                    h: {
                        var$5 = $var2.$key;
                        if ($rt_s(2195) !== var$5) {
                            if ($rt_s(2195) === var$5)
                                $var3 = 1;
                            else if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                $var3 = $rt_s(2195).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                $var3 = 0;
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data0;
    } else
        $var3 = 0;
    $var3 = !$var3 ? 0 : 1;
    i: {
        $this.$persistenceRequired = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1994).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1994).$nativeString.length)
                    break i;
                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1994).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            j: {
                var$5 = $var2.$key;
                if ($rt_s(1994) !== var$5) {
                    if ($rt_s(1994) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(1994).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        k: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1994).$nativeString.length)
                        break k;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(1994).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                l: {
                    var$5 = $var2.$key;
                    if ($rt_s(1994) !== var$5) {
                        if ($rt_s(1994) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(1994).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break l;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            var$8 = $rt_s(3);
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1994) !== null) {
                m: {
                    if (!$rt_s(1994).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1994).$nativeString.length)
                                break m;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(1994).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$7) {
                        n: {
                            var$5 = $var2.$key;
                            if ($rt_s(1994) !== var$5) {
                                if ($rt_s(1994) === var$5)
                                    $var3 = 1;
                                else if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(1994).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                                if (!$var3) {
                                    $var3 = 0;
                                    break n;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$8 = ($var2 === null ? null : $var2.$value0).$data1;
        }
        if (var$8.$nativeString.length > 0) {
            o: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1994).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1994).$nativeString.length)
                            break o;
                        $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1994).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    p: {
                        var$5 = $var2.$key;
                        if ($rt_s(1994) !== var$5) {
                            if ($rt_s(1994) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(1994).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break p;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1994) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    q: {
                        if (!$rt_s(1994).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(1994).$nativeString.length)
                                    break q;
                                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(1994).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            r: {
                                var$5 = $var2.$key;
                                if ($rt_s(1994) !== var$5) {
                                    if ($rt_s(1994) === var$5)
                                        $var3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        var$5 = var$5;
                                        $var3 = $rt_s(1994).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break r;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                var$8 = ($var2 === null ? null : $var2.$value0).$data1;
            } else
                var$8 = $rt_s(3);
            nms_EntityLiving_setCustomNameTag($this, var$8);
        }
    }
    s: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1995).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1995).$nativeString.length)
                    break s;
                $rt_s(1995).$hashCode1 = (31 * $rt_s(1995).$hashCode1 | 0) + $rt_s(1995).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1995).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            t: {
                var$5 = $var2.$key;
                if ($rt_s(1995) !== var$5) {
                    if ($rt_s(1995) === var$5)
                        $var3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$5 = var$5;
                        $var3 = $rt_s(1995).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break t;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1995) !== null) {
            u: {
                if (!$rt_s(1995).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1995).$nativeString.length)
                            break u;
                        $rt_s(1995).$hashCode1 = (31 * $rt_s(1995).$hashCode1 | 0) + $rt_s(1995).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1995).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    v: {
                        var$5 = $var2.$key;
                        if ($rt_s(1995) !== var$5) {
                            if ($rt_s(1995) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(1995).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break v;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data0;
    }
    $var3 = !$var3 ? 0 : 1;
    w: {
        nms_EntityLiving_setAlwaysRenderNameTag($this, $var3);
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1991).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1991).$nativeString.length)
                    break w;
                $rt_s(1991).$hashCode1 = (31 * $rt_s(1991).$hashCode1 | 0) + $rt_s(1991).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1991).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            x: {
                var$5 = $var2.$key;
                if ($rt_s(1991) !== var$5) {
                    if ($rt_s(1991) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(1991).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break x;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    $var3 = $var2 === null ? 0 : 1;
    y: {
        if ($var3) {
            z: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1991).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1991).$nativeString.length)
                            break z;
                        $rt_s(1991).$hashCode1 = (31 * $rt_s(1991).$hashCode1 | 0) + $rt_s(1991).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1991).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    ba: {
                        var$5 = $var2.$key;
                        if ($rt_s(1991) !== var$5) {
                            if ($rt_s(1991) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(1991).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break ba;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1991) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    bb: {
                        if (!$rt_s(1991).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(1991).$nativeString.length)
                                    break bb;
                                $rt_s(1991).$hashCode1 = (31 * $rt_s(1991).$hashCode1 | 0) + $rt_s(1991).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(1991).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bc: {
                                var$5 = $var2.$key;
                                if ($rt_s(1991) !== var$5) {
                                    if ($rt_s(1991) !== var$5) {
                                        if (var$5 instanceof jl_String) {
                                            var$5 = var$5;
                                            $var3 = $rt_s(1991).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        } else
                                            $var3 = 0;
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bc;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var2 = $var2 === null ? null : $var2.$value0;
            } else {
                $var2 = new nms_NBTTagList;
                if ($rt_s(1991) !== null)
                    $var2.$name = $rt_s(1991);
                else
                    $var2.$name = $rt_s(3);
                var$8 = new ju_ArrayList;
                var$8.$array = $rt_createArray(jl_Object, 10);
                $var2.$tagList = var$8;
            }
            $var3 = 0;
            while (true) {
                var$4 = $this.$equipment.data;
                if ($var3 >= var$4.length)
                    break y;
                var$8 = $var2.$tagList;
                if ($var3 < 0)
                    break;
                if ($var3 >= var$8.$size0)
                    break;
                var$8 = var$8.$array.data[$var3];
                nms_ItemStack_$callClinit();
                var$5 = new nms_ItemStack;
                nms_ItemStack_readFromNBT(var$5, var$8);
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$5.$itemID] === null)
                    var$5 = null;
                var$4[$var3] = var$5;
                $var3 = $var3 + 1 | 0;
            }
            $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
    }
    bd: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1993).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1993).$nativeString.length)
                    break bd;
                $rt_s(1993).$hashCode1 = (31 * $rt_s(1993).$hashCode1 | 0) + $rt_s(1993).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1993).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            be: {
                var$5 = $var2.$key;
                if ($rt_s(1993) !== var$5) {
                    if ($rt_s(1993) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(1993).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break be;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    $var3 = $var2 === null ? 0 : 1;
    bf: {
        bg: {
            if ($var3) {
                bh: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1993).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1993).$nativeString.length)
                                break bh;
                            $rt_s(1993).$hashCode1 = (31 * $rt_s(1993).$hashCode1 | 0) + $rt_s(1993).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(1993).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$7) {
                        bi: {
                            var$5 = $var2.$key;
                            if ($rt_s(1993) !== var$5) {
                                if ($rt_s(1993) !== var$5) {
                                    if (!(var$5 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        var$5 = var$5;
                                        $var3 = $rt_s(1993).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                } else
                                    $var3 = 1;
                                if (!$var3) {
                                    $var3 = 0;
                                    break bi;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1)) {
                    $var2 = new nms_NBTTagList;
                    if ($rt_s(1993) !== null)
                        $var2.$name = $rt_s(1993);
                    else
                        $var2.$name = $rt_s(3);
                    var$8 = new ju_ArrayList;
                    var$8.$array = $rt_createArray(jl_Object, 10);
                    $var2.$tagList = var$8;
                } else {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(1993) === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        bj: {
                            if (!$rt_s(1993).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(1993).$nativeString.length)
                                        break bj;
                                    $rt_s(1993).$hashCode1 = (31 * $rt_s(1993).$hashCode1 | 0) + $rt_s(1993).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$7 = $rt_s(1993).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$7) {
                                bk: {
                                    var$5 = $var2.$key;
                                    if ($rt_s(1993) !== var$5) {
                                        if ($rt_s(1993) === var$5)
                                            $var3 = 1;
                                        else if (!(var$5 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            var$5 = var$5;
                                            $var3 = $rt_s(1993).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        }
                                        if (!$var3) {
                                            $var3 = 0;
                                            break bk;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = $var2 === null ? null : $var2.$value0;
                }
                $var3 = 0;
                while (true) {
                    var$8 = $var2.$tagList;
                    var$6 = $rt_compare($var3, var$8.$size0);
                    if (var$6 >= 0)
                        break bg;
                    var$4 = $this.$equipmentDropChances;
                    if ($var3 < 0)
                        break bf;
                    if (var$6 >= 0)
                        break bf;
                    var$4.data[$var3] = var$8.$array.data[$var3].$data5;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        bl: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2196).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2196).$nativeString.length)
                        break bl;
                    $rt_s(2196).$hashCode1 = (31 * $rt_s(2196).$hashCode1 | 0) + $rt_s(2196).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2196).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                bm: {
                    var$5 = $var2.$key;
                    if ($rt_s(2196) !== var$5) {
                        if ($rt_s(2196) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2196).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break bm;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            $var3 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2196) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                bn: {
                    if (!$rt_s(2196).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2196).$nativeString.length)
                                break bn;
                            $rt_s(2196).$hashCode1 = (31 * $rt_s(2196).$hashCode1 | 0) + $rt_s(2196).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2196).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$7) {
                        bo: {
                            var$5 = $var2.$key;
                            if ($rt_s(2196) !== var$5) {
                                if ($rt_s(2196) === var$5)
                                    $var3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2196).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break bo;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var3 = ($var2 === null ? null : $var2.$value0).$data0;
        }
        $var3 = !$var3 ? 0 : 1;
        $this.$isLeashed = $var3;
        if ($var3) {
            bp: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2197).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2197).$nativeString.length)
                            break bp;
                        $rt_s(2197).$hashCode1 = (31 * $rt_s(2197).$hashCode1 | 0) + $rt_s(2197).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2197).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bq: {
                        var$5 = $var2.$key;
                        if ($rt_s(2197) !== var$5) {
                            if ($rt_s(2197) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2197).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bq;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                br: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2197).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2197).$nativeString.length)
                                break br;
                            $rt_s(2197).$hashCode1 = (31 * $rt_s(2197).$hashCode1 | 0) + $rt_s(2197).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2197).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$7) {
                        bs: {
                            var$5 = $var2.$key;
                            if ($rt_s(2197) !== var$5) {
                                if ($rt_s(2197) === var$5)
                                    $var3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2197).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break bs;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1)) {
                    $par1NBTTagCompound = new nms_NBTTagCompound;
                    if ($rt_s(2197) !== null)
                        $par1NBTTagCompound.$name = $rt_s(2197);
                    else
                        $par1NBTTagCompound.$name = $rt_s(3);
                    var$8 = new ju_HashMap;
                    $var3 = ju_HashMap_calculateCapacity(16);
                    var$8.$elementCount = 0;
                    var$9 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                    var$4 = var$9.data;
                    var$8.$elementData = var$9;
                    var$8.$loadFactor = 0.75;
                    var$8.$threshold = var$4.length * 0.75 | 0;
                    $par1NBTTagCompound.$tagMap = var$8;
                } else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2197) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        bt: {
                            if (!$rt_s(2197).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(2197).$nativeString.length)
                                        break bt;
                                    $rt_s(2197).$hashCode1 = (31 * $rt_s(2197).$hashCode1 | 0) + $rt_s(2197).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$7 = $rt_s(2197).$hashCode1;
                        var$4 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == var$7) {
                                bu: {
                                    $var2 = $par1NBTTagCompound.$key;
                                    if ($rt_s(2197) !== $var2) {
                                        if ($rt_s(2197) === $var2)
                                            $var3 = 1;
                                        else if (!($var2 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            $var2 = $var2;
                                            $var3 = $rt_s(2197).$nativeString !== $var2.$nativeString ? 0 : 1;
                                        }
                                        if (!$var3) {
                                            $var3 = 0;
                                            break bu;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
                }
                $this.$field_110170_bx = $par1NBTTagCompound;
            }
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_EntityLiving_setMoveForward = ($this, $par1) => {
    $this.$moveForward = $par1;
},
nms_EntityLiving_setAIMoveSpeed = ($this, $par1) => {
    $this.$landMovementFactor = $par1;
    $this.$moveForward = $par1;
},
nms_EntityLiving_onLivingUpdate = $this => {
    let $var3, $var4, $var10, $var5, $var2$index, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var11, $var7, var$16, $var1, var$18, var$19, var$20, $var2$index_0, var$22, $var8, $var9, var$25, var$26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$22 = $thread.pop();$var2$index_0 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var1 = $thread.pop();var$16 = $thread.pop();$var7 = $thread.pop();$var11 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var2$index
        = $thread.pop();$var5 = $thread.pop();$var10 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$worldObj;
        if (!$var3.$isRemote && $this.$canPickUpLoot && !$this.$dead) {
            a: {
                $var4 = ($var3.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                $var10 = $rt_s(1417);
                $var3 = $rt_s(1417);
                if ($var10 !== $var3) {
                    $var5 = $var10.$nativeString.length;
                    $var2$index = $var3.$nativeString.length;
                    if ($var5 < $var2$index)
                        $var2$index = $var5;
                    $var6 = 0;
                    b: {
                        while (true) {
                            if ($var6 >= $var2$index) {
                                $var10.$nativeString.length;
                                $var3.$nativeString.length;
                                break a;
                            }
                            if ($var6 < 0)
                                break b;
                            if ($var6 >= $var10.$nativeString.length)
                                break b;
                            var$7 = $var10.$nativeString.charCodeAt($var6);
                            if ($var6 < 0)
                                break;
                            if ($var6 >= $var3.$nativeString.length)
                                break;
                            if (var$7 - $var3.$nativeString.charCodeAt($var6) | 0)
                                break a;
                            $var6 = $var6 + 1 | 0;
                        }
                        $var3 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($var3);
                        $rt_throw($var3);
                    }
                    $var3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($var3);
                    $rt_throw($var3);
                }
            }
            $var3 = $rt_s(1417);
            c: {
                d: {
                    e: while (true) {
                        if ($var4 === null) {
                            $var4 = null;
                            break c;
                        }
                        f: {
                            $var10 = $var4.$key0;
                            if ($var3 === $var10)
                                $var6 = 0;
                            else {
                                $var5 = $var3.$nativeString.length;
                                $var2$index = $var10.$nativeString.length;
                                if ($var5 < $var2$index)
                                    $var2$index = $var5;
                                $var5 = 0;
                                while (true) {
                                    if ($var5 >= $var2$index) {
                                        $var6 = $var3.$nativeString.length - $var10.$nativeString.length | 0;
                                        break f;
                                    }
                                    if ($var5 < 0)
                                        break d;
                                    if ($var5 >= $var3.$nativeString.length)
                                        break d;
                                    var$7 = $var3.$nativeString.charCodeAt($var5);
                                    if ($var5 < 0)
                                        break e;
                                    if ($var5 >= $var10.$nativeString.length)
                                        break e;
                                    $var6 = var$7 - $var10.$nativeString.charCodeAt($var5) | 0;
                                    if ($var6)
                                        break;
                                    $var5 = $var5 + 1 | 0;
                                }
                            }
                        }
                        if (!$var6)
                            break c;
                        $var4 = $var6 >= 0 ? $var4.$right : $var4.$left;
                    }
                    $var3 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($var3);
                    $rt_throw($var3);
                }
                $var3 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($var3);
                $rt_throw($var3);
            }
            $var3 = $var4 === null ? null : $var4.$value2;
            if ($var3 === null ? 0 : $var3.$valueBoolean) {
                $var3 = $this.$worldObj;
                $var4 = $rt_cls(nms_EntityItem);
                $var10 = $this.$boundingBox0;
                var$8 = $var10.$minX0 - 1.0;
                var$9 = $var10.$minY0 - 0.0;
                var$10 = $var10.$minZ0 - 1.0;
                var$11 = $var10.$maxX0 + 1.0;
                var$12 = $var10.$maxY + 0.0;
                var$13 = $var10.$maxZ0 + 1.0;
                $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var6 = $var11.$nextPoolIndex;
                $var10 = $var11.$listAABB;
                var$7 = $var10.$size0;
                $var5 = $rt_compare($var6, var$7);
                if ($var5 >= 0) {
                    $var7 = new nms_AxisAlignedBB;
                    $var7.$minX0 = var$8;
                    $var7.$minY0 = var$9;
                    $var7.$minZ0 = var$10;
                    $var7.$maxX0 = var$11;
                    $var7.$maxY = var$12;
                    $var7.$maxZ0 = var$13;
                    ju_ArrayList_ensureCapacity($var10, var$7 + 1 | 0);
                    var$16 = $var10.$array.data;
                    $var5 = $var10.$size0;
                    $var10.$size0 = $var5 + 1 | 0;
                    var$16[$var5] = $var7;
                    $var10.$modCount = $var10.$modCount + 1 | 0;
                } else if ($var6 >= 0 && $var5 < 0) {
                    $var7 = $var10.$array.data[$var6];
                    $var7.$minX0 = var$8;
                    $var7.$minY0 = var$9;
                    $var7.$minZ0 = var$10;
                    $var7.$maxX0 = var$11;
                    $var7.$maxY = var$12;
                    $var7.$maxZ0 = var$13;
                } else {
                    $var3 = new jl_IndexOutOfBoundsException;
                    $var3.$suppressionEnabled = 1;
                    $var3.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var3);
                    $rt_throw($var3);
                }
                $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
                $var10 = null;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var3, $var4, $var7, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $var2$index = 0;
        var$18 = $var1.$modCount;
        var$19 = $var1.$size();
        var$7 = 24;
        var$11 = 0.0;
        var$20 = 138;
        while ($var2$index >= var$19 ? 0 : 1) {
            if (var$18 < $var1.$modCount) {
                $var3 = new ju_ConcurrentModificationException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            $var2$index_0 = $var2$index + 1 | 0;
            $var3 = $var1.$get($var2$index);
            if (!$var3.$isDead && nms_EntityItem_getEntityItem($var3) !== null) {
                $var4 = nms_EntityItem_getEntityItem($var3);
                $var5 = nms_EntityLiving_getArmorPosition($var4);
                if ($var5 > (-1)) {
                    g: {
                        $var6 = 1;
                        $var7 = $this.$equipment.data[$var5];
                        if ($var7 !== null) {
                            if ($var5) {
                                nms_Item_$callClinit();
                                var$16 = nms_Item_itemsList.data;
                                $var6 = $var4.$itemID;
                                if (var$16[$var6] instanceof nms_ItemArmor && !(var$16[$var7.$itemID] instanceof nms_ItemArmor))
                                    $var6 = 1;
                                else {
                                    if (var$16[$var6] instanceof nms_ItemArmor) {
                                        var$22 = $var7.$itemID;
                                        if (var$16[var$22] instanceof nms_ItemArmor) {
                                            $var10 = var$16[$var6];
                                            $var11 = var$16[var$22];
                                            $var6 = $rt_compare($var10.$damageReduceAmount, $var11.$damageReduceAmount);
                                            if ($var6)
                                                $var6 = $var6 <= 0 ? 0 : 1;
                                            else
                                                f: {
                                                    h: {
                                                        if ($var4.$itemDamage <= $var7.$itemDamage) {
                                                            if (!($var4.$stackTagCompound === null ? 0 : 1))
                                                                break h;
                                                            if ($var7.$stackTagCompound === null ? 0 : 1)
                                                                break h;
                                                        }
                                                        $var6 = 1;
                                                        break f;
                                                    }
                                                    $var6 = 0;
                                                }
                                            break g;
                                        }
                                    }
                                    $var6 = 0;
                                }
                            } else {
                                nms_Item_$callClinit();
                                var$16 = nms_Item_itemsList.data;
                                $var2$index = $var4.$itemID;
                                if (var$16[$var2$index] instanceof nms_ItemSword && !(var$16[$var7.$itemID] instanceof nms_ItemSword))
                                    $var6 = 1;
                                else {
                                    if (var$16[$var2$index] instanceof nms_ItemSword) {
                                        var$22 = $var7.$itemID;
                                        if (var$16[var$22] instanceof nms_ItemSword) {
                                            $var8 = var$16[$var2$index];
                                            $var9 = var$16[var$22];
                                            $var6 = $rt_compare($var8.$toolMaterial0.$damageVsEntity, $var9.$toolMaterial0.$damageVsEntity);
                                            if ($var6)
                                                $var6 = $var6 <= 0 ? 0 : 1;
                                            else
                                                i: {
                                                    j: {
                                                        if ($var4.$itemDamage <= $var7.$itemDamage) {
                                                            if (!($var4.$stackTagCompound === null ? 0 : 1))
                                                                break j;
                                                            if ($var7.$stackTagCompound === null ? 0 : 1)
                                                                break j;
                                                        }
                                                        $var6 = 1;
                                                        break i;
                                                    }
                                                    $var6 = 0;
                                                }
                                            break g;
                                        }
                                    }
                                    $var6 = 0;
                                }
                            }
                        }
                    }
                    if ($var6) {
                        if ($var7 !== null) {
                            $var10 = $this.$rand;
                            var$25 = Long_and(Long_add(Long_mul($var10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var10.$seed = var$25;
                            if (Long_lo(Long_shru(var$25, var$7)) / 1.6777216E7 - 0.10000000149011612 < $this.$equipmentDropChances.data[$var5] && $var7.$stackSize) {
                                $var10 = new nms_EntityItem;
                                $var11 = $this.$worldObj;
                                var$12 = $this.$posX;
                                var$13 = $this.$posY + var$11;
                                var$8 = $this.$posZ;
                                $ptr = 5;
                                continue main;
                            }
                        }
                        $ptr = 3;
                        continue main;
                    }
                }
            }
            $var2$index = $var2$index_0;
        }
        return;
    case 3:
        $this.$setCurrentItemOrArmor($var5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$equipmentDropChances.data[$var5] = 2.0;
        $this.$persistenceRequired = 1;
        $var6 = 1;
        $ptr = 4;
    case 4:
        nms_EntityLivingBase_onItemPickup($this, $var3, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var3.$isDead = 1;
        while (true) {
            $var2$index = $var2$index_0;
            if (!($var2$index >= var$19 ? 0 : 1))
                break;
            if (var$18 < $var1.$modCount) {
                $var3 = new ju_ConcurrentModificationException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            $var2$index_0 = $var2$index + 1 | 0;
            $var3 = $var1.$get($var2$index);
            if ($var3.$isDead)
                continue;
            if (nms_EntityItem_getEntityItem($var3) === null)
                continue;
            $var4 = nms_EntityItem_getEntityItem($var3);
            $var5 = nms_EntityLiving_getArmorPosition($var4);
            if ($var5 <= (-1))
                continue;
            k: {
                $var6 = 1;
                $var7 = $this.$equipment.data[$var5];
                if ($var7 !== null) {
                    if ($var5) {
                        nms_Item_$callClinit();
                        var$16 = nms_Item_itemsList.data;
                        $var6 = $var4.$itemID;
                        if (var$16[$var6] instanceof nms_ItemArmor && !(var$16[$var7.$itemID] instanceof nms_ItemArmor))
                            $var6 = 1;
                        else {
                            if (var$16[$var6] instanceof nms_ItemArmor) {
                                var$22 = $var7.$itemID;
                                if (var$16[var$22] instanceof nms_ItemArmor) {
                                    $var10 = var$16[$var6];
                                    $var11 = var$16[var$22];
                                    $var6 = $rt_compare($var10.$damageReduceAmount, $var11.$damageReduceAmount);
                                    if ($var6)
                                        $var6 = $var6 <= 0 ? 0 : 1;
                                    else
                                        l: {
                                            f: {
                                                if ($var4.$itemDamage <= $var7.$itemDamage) {
                                                    if (!($var4.$stackTagCompound === null ? 0 : 1))
                                                        break f;
                                                    if ($var7.$stackTagCompound === null ? 0 : 1)
                                                        break f;
                                                }
                                                $var6 = 1;
                                                break l;
                                            }
                                            $var6 = 0;
                                        }
                                    break k;
                                }
                            }
                            $var6 = 0;
                        }
                    } else {
                        nms_Item_$callClinit();
                        var$16 = nms_Item_itemsList.data;
                        $var2$index = $var4.$itemID;
                        if (var$16[$var2$index] instanceof nms_ItemSword && !(var$16[$var7.$itemID] instanceof nms_ItemSword))
                            $var6 = 1;
                        else {
                            if (var$16[$var2$index] instanceof nms_ItemSword) {
                                var$22 = $var7.$itemID;
                                if (var$16[var$22] instanceof nms_ItemSword) {
                                    $var8 = var$16[$var2$index];
                                    $var9 = var$16[var$22];
                                    $var6 = $rt_compare($var8.$toolMaterial0.$damageVsEntity, $var9.$toolMaterial0.$damageVsEntity);
                                    if ($var6)
                                        $var6 = $var6 <= 0 ? 0 : 1;
                                    else
                                        m: {
                                            i: {
                                                if ($var4.$itemDamage <= $var7.$itemDamage) {
                                                    if (!($var4.$stackTagCompound === null ? 0 : 1))
                                                        break i;
                                                    if ($var7.$stackTagCompound === null ? 0 : 1)
                                                        break i;
                                                }
                                                $var6 = 1;
                                                break m;
                                            }
                                            $var6 = 0;
                                        }
                                    break k;
                                }
                            }
                            $var6 = 0;
                        }
                    }
                }
            }
            if (!$var6)
                continue;
            else {
                if ($var7 !== null) {
                    $var10 = $this.$rand;
                    var$25 = Long_and(Long_add(Long_mul($var10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var10.$seed = var$25;
                    if (Long_lo(Long_shru(var$25, var$7)) / 1.6777216E7 - 0.10000000149011612 < $this.$equipmentDropChances.data[$var5] && $var7.$stackSize) {
                        $var10 = new nms_EntityItem;
                        $var11 = $this.$worldObj;
                        var$12 = $this.$posX;
                        var$13 = $this.$posY + var$11;
                        var$8 = $this.$posZ;
                        $ptr = 5;
                        continue main;
                    }
                }
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 5:
        nms_EntityItem__init_($var10, $var11, var$12, var$13, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$26 = $var10.$dataWatcher;
        $var11 = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[var$20];
        if ($var9 === null) {
            $var11 = $var11.$elementData.data[0];
            while ($var11 !== null && $var11.$key !== null) {
                $var11 = $var11.$next3;
            }
        } else {
            var$22 = jl_Integer_hashCode($var9.$value);
            var$16 = $var11.$elementData.data;
            $var11 = var$16[var$22 & (var$16.length - 1 | 0)];
            while ($var11 !== null && !($var11.$origKeyHash == var$22 && ju_HashMap_areEqualKeys($var9, $var11.$key))) {
                $var11 = $var11.$next3;
            }
        }
        $var8 = $var11 === null ? null : $var11.$value0;
        if (!($var7 !== $var8.$watchedObject ? 0 : 1)) {
            $var8.$watchedObject = $var7;
            $var8.$watched = 1;
            var$26.$objectChanged = 1;
        }
        $var8 = $var10.$dataWatcher;
        $var7 = $var8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var11 = jl_Integer_integerCache.data[var$20];
        if ($var11 === null) {
            $var9 = $var7.$elementData.data[0];
            while ($var9 !== null && $var9.$key !== null) {
                $var9 = $var9.$next3;
            }
        } else {
            $var6 = jl_Integer_hashCode($var11.$value);
            var$16 = $var7.$elementData.data;
            $var9 = var$16[$var6 & (var$16.length - 1 | 0)];
            while ($var9 !== null && !($var9.$origKeyHash == $var6 && ju_HashMap_areEqualKeys($var11, $var9.$key))) {
                $var9 = $var9.$next3;
            }
        }
        ($var9 === null ? null : $var9.$value0).$watched = 1;
        $var8.$objectChanged = 1;
        $var10.$delayBeforeCanPickup = 10;
        $var7 = $this.$worldObj;
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($var7, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var4, $var10, $var5, $var2$index, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var11, $var7, var$16, $var1, var$18, var$19, var$20, $var2$index_0, var$22, $var8, $var9, var$25, var$26, $ptr);
},
nms_EntityLiving_isAIEnabled = $this => {
    return 0;
},
nms_EntityLiving_canDespawn = $this => {
    return 1;
},
nms_EntityLiving_despawnEntity = $this => {
    let $var1, $var2, $var4, $var6, $var8, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$persistenceRequired)
            $this.$entityAge = 0;
        else {
            $var1 = nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, (-1.0));
            if ($var1 !== null) {
                $var2 = $var1.$posX - $this.$posX;
                $var4 = $var1.$posY - $this.$posY;
                $var6 = $var1.$posZ - $this.$posZ;
                $var8 = $var2 * $var2 + $var4 * $var4 + $var6 * $var6;
                if ($this.$canDespawn() && $var8 > 16384.0) {
                    $ptr = 1;
                    continue main;
                }
                if ($this.$entityAge > 600) {
                    $var1 = $this.$rand;
                    var$6 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$6;
                    var$7 = Long_lo(Long_shru(var$6, 17));
                    while (true) {
                        var$8 = var$7 % 800 | 0;
                        if (((var$7 - var$8 | 0) + 799 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var1.$seed = var$6;
                        var$7 = Long_lo(Long_shru(var$6, 17));
                    }
                    if (!var$8 && $var8 > 1024.0 && $this.$canDespawn()) {
                        $ptr = 2;
                        continue main;
                    }
                }
                if ($var8 < 1024.0)
                    $this.$entityAge = 0;
            }
        }
        return;
    case 1:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$entityAge > 600) {
            $var1 = $this.$rand;
            var$6 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var1.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
            while (true) {
                var$8 = var$7 % 800 | 0;
                if (((var$7 - var$8 | 0) + 799 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$6;
                var$7 = Long_lo(Long_shru(var$6, 17));
            }
            if (!var$8 && $var8 > 1024.0 && $this.$canDespawn()) {
                $ptr = 2;
                continue main;
            }
        }
        if ($var8 < 1024.0)
            $this.$entityAge = 0;
        return;
    case 2:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var4, $var6, $var8, var$6, var$7, var$8, $ptr);
},
nms_EntityLiving_updateAITasks = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$entityAge = $this.$entityAge + 1 | 0;
        $ptr = 1;
    case 1:
        $this.$despawnEntity();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$senses;
        var$2 = var$1.$seenEntities;
        var$3 = var$2.$array;
        var$4 = 0;
        var$5 = var$2.$size0;
        var$6 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$6;
            var$4 = var$8;
        }
        var$2.$size0 = 0;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$1 = var$1.$unseenEntities;
        var$3 = var$1.$array;
        var$4 = 0;
        var$8 = var$1.$size0;
        var$2 = null;
        if (var$4 > var$8) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        while (var$4 < var$8) {
            var$7 = var$3.data;
            var$5 = var$4 + 1 | 0;
            var$7[var$4] = var$2;
            var$4 = var$5;
        }
        var$1.$size0 = 0;
        var$1.$modCount = var$1.$modCount + 1 | 0;
        var$1 = $this.$targetTasks;
        $ptr = 2;
    case 2:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$tasks0;
        $ptr = 3;
    case 3:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$navigator;
        $ptr = 4;
    case 4:
        nms_PathNavigate_onUpdateNavigation(var$1);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        $this.$updateAITick();
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityMoveHelper_onUpdateMoveHelper($this.$moveHelper);
        nms_EntityLookHelper_onUpdateLook($this.$lookHelper);
        var$1 = $this.$jumpHelper;
        var$1.$entity0.$isJumping = var$1.$isJumping0;
        var$1.$isJumping0 = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityLiving_updateEntityActionState = $this => {
    let $var2, var$2, var$3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$entityAge = $this.$entityAge + 1 | 0;
        $this.$moveStrafing = 0.0;
        $this.$moveForward = 0.0;
        $ptr = 1;
    case 1:
        $this.$despawnEntity();
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$2;
        var$3 = 24;
        if (Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 < 0.019999999552965164) {
            $var2 = nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 8.0);
            if ($var2 === null) {
                $var2 = $this.$rand;
                var$2 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$2;
                $this.$randomYawVelocity = (Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 - 0.5) * 20.0;
            } else {
                $this.$currentTarget = $var2;
                $var2 = $this.$rand;
                var$2 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$2;
                var$4 = Long_lo(Long_shru(var$2, 17));
                while (true) {
                    var$5 = var$4 % 20 | 0;
                    if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                        break;
                    var$2 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$2;
                    var$4 = Long_lo(Long_shru(var$2, 17));
                }
                $this.$numTicksToChaseTarget = 10 + var$5 | 0;
            }
        }
        a: {
            $var2 = $this.$currentTarget;
            if ($var2 !== null) {
                nms_EntityLiving_faceEntity($this, $var2, 10.0, $this.$getVerticalFaceSpeed());
                $var4 = $this.$numTicksToChaseTarget;
                $this.$numTicksToChaseTarget = $var4 - 1 | 0;
                if ($var4 > 0) {
                    $var2 = $this.$currentTarget;
                    if (!$var2.$isDead) {
                        var$7 = $var2.$posX - $this.$posX;
                        var$8 = $var2.$posY - $this.$posY;
                        var$9 = $var2.$posZ - $this.$posZ;
                        if (var$7 * var$7 + var$8 * var$8 + var$9 * var$9 <= 64.0)
                            break a;
                    }
                }
                $this.$currentTarget = null;
            } else {
                $var2 = $this.$rand;
                var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$10;
                if (Long_lo(Long_shru(var$10, var$3)) / 1.6777216E7 < 0.05000000074505806) {
                    var$2 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$2;
                    $this.$randomYawVelocity = (Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 - 0.5) * 20.0;
                }
                $this.$rotationYaw = $this.$rotationYaw + $this.$randomYawVelocity;
                $this.$rotationPitch = $this.$defaultPitch;
            }
        }
        $ptr = 2;
    case 2:
        $tmp = $this.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = $this.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if (!(!$var4 && !$var3)) {
            $var2 = $this.$rand;
            var$2 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$2;
            $this.$isJumping = Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 >= 0.800000011920929 ? 0 : 1;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, var$4, var$5, $var4, var$7, var$8, var$9, var$10, $var3, $ptr);
},
nms_EntityLiving_getVerticalFaceSpeed = $this => {
    return 40;
},
nms_EntityLiving_faceEntity = ($this, $par1Entity, $par2, $par3) => {
    let $var4, $var8, $var6, $var10, $var14, $var12, $var13, var$11;
    $var4 = $par1Entity.$posX - $this.$posX;
    $var8 = $par1Entity.$posZ - $this.$posZ;
    if (!($par1Entity instanceof nms_EntityLivingBase)) {
        $par1Entity = $par1Entity.$boundingBox0;
        $var6 = ($par1Entity.$minY0 + $par1Entity.$maxY) / 2.0 - ($this.$posY + $this.$getEyeHeight());
    } else {
        $var10 = $par1Entity;
        $var6 = $var10.$posY + $var10.$getEyeHeight() - ($this.$posY + $this.$getEyeHeight());
    }
    $var14 = jl_Math_sqrt($var4 * $var4 + $var8 * $var8);
    $var12 = jl_Math_atan2($var8, $var4) * 180.0 / 3.141592653589793 - 90.0;
    $var13 =  -(jl_Math_atan2($var6, $var14) * 180.0 / 3.141592653589793);
    var$11 = $this.$rotationPitch;
    $var13 = ($var13 - var$11) % 360.0;
    if ($var13 >= 180.0)
        $var13 = $var13 - 360.0;
    if ($var13 < (-180.0))
        $var13 = $var13 + 360.0;
    if ($var13 > $par3)
        $var13 = $par3;
    $par3 =  -$par3;
    if ($var13 >= $par3)
        $par3 = $var13;
    $this.$rotationPitch = var$11 + $par3;
    $par3 = $this.$rotationYaw;
    $var12 = ($var12 - $par3) % 360.0;
    if ($var12 >= 180.0)
        $var12 = $var12 - 360.0;
    if ($var12 < (-180.0))
        $var12 = $var12 + 360.0;
    if ($var12 > $par2)
        $var12 = $par2;
    $par2 =  -$par2;
    if ($var12 >= $par2)
        $par2 = $var12;
    $this.$rotationYaw = $par3 + $par2;
},
nms_EntityLiving_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes(var$1, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!(var$1.$size0 ? 0 : 1))
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isAnyLiquid(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityLiving_getMaxSafePointTries = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $var1;
    if ($this.$attackTarget === null)
        return 3;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[134];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value3;
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$5 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$5 = var$5.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        var$3 = jl_String_hashCode(var$1.$field_111115_a);
        var$4 = var$5.$elementData.data;
        var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$5 !== null && !(var$5.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$1, var$5.$key))) {
            var$5 = var$5.$next3;
        }
    }
    var$1 = var$5 === null ? null : var$5.$value0;
    if (var$1.$field_111133_g) {
        var$1.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$1);
        var$1.$field_111133_g = 0;
    }
    $var1 = (var$6 - var$1.$field_111139_h * 0.33000001311302185 | 0) - ((3 - $this.$worldObj.$difficultySetting | 0) * 4 | 0) | 0;
    if ($var1 < 0)
        $var1 = 0;
    return $var1 + 3 | 0;
},
nms_EntityLiving_getHeldItem = $this => {
    return $this.$equipment.data[0];
},
nms_EntityLiving_getCurrentItemOrArmor = ($this, $par1) => {
    return $this.$equipment.data[$par1];
},
nms_EntityLiving_func_130225_q = ($this, $par1) => {
    return $this.$equipment.data[$par1 + 1 | 0];
},
nms_EntityLiving_setCurrentItemOrArmor = ($this, $par1, $par2ItemStack) => {
    $this.$equipment.data[$par1] = $par2ItemStack;
},
nms_EntityLiving_getLastActiveItems = $this => {
    return $this.$equipment;
},
nms_EntityLiving_dropEquipment = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, $var4, $var5, var$12, var$13, $var7, $var6, $var6_0, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var6_0 = $thread.pop();$var6 = $thread.pop();$var7 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3
        = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 0;
        var$4 = 24;
        var$5 = $par2 * 0.009999999776482582;
        var$6 = 17;
        var$7 = 0.0;
        var$8 = 138;
        while (true) {
            var$9 = $this.$equipment.data;
            if ($var3 >= var$9.length)
                break;
            $var4 = var$9[$var3];
            var$9 = $this.$equipmentDropChances.data;
            $var5 = var$9[$var3] <= 1.0 ? 0 : 1;
            if ($var4 !== null && !(!$par1 && !$var5)) {
                var$12 = $this.$rand;
                var$13 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$12.$seed = var$13;
                if (Long_lo(Long_shru(var$13, var$4)) / 1.6777216E7 - var$5 < var$9[$var3]) {
                    if (!$var5) {
                        nms_Item_$callClinit();
                        var$9 = nms_Item_itemsList.data;
                        $var7 = $var4.$itemID;
                        if (var$9[$var7].$maxDamage <= 0 ? 0 : 1) {
                            $var6 = var$9[$var7].$maxDamage - 25 | 0;
                            $var6_0 = 1;
                            if ($var6 > $var6_0)
                                $var6_0 = $var6;
                            $var7 = var$9[$var7].$maxDamage;
                            var$17 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$12.$seed = var$17;
                            $var6 = Long_lo(Long_shru(var$17, var$6));
                            $par2 = $var6_0 - 1 | 0;
                            if (!($var6_0 & $par2))
                                $var5 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6_0), Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var5 = $var6 % $var6_0 | 0;
                                    if ((($var6 - $var5 | 0) + $par2 | 0) >= 0)
                                        break;
                                    var$17 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$12.$seed = var$17;
                                    $var6 = Long_lo(Long_shru(var$17, var$6));
                                }
                            $par2 = $var5 + 1 | 0;
                            var$17 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$12.$seed = var$17;
                            var$18 = Long_lo(Long_shru(var$17, var$6));
                            $var5 = $par2 - 1 | 0;
                            if (!($par2 & $var5))
                                $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt($par2), Long_fromInt(var$18)), 31));
                            else
                                while (true) {
                                    $var6 = var$18 % $par2 | 0;
                                    if (((var$18 - $var6 | 0) + $var5 | 0) >= 0)
                                        break;
                                    var$17 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$12.$seed = var$17;
                                    var$18 = Long_lo(Long_shru(var$17, var$6));
                                }
                            $var7 = $var7 - $var6 | 0;
                            if ($var7 <= $var6_0)
                                $var6_0 = $var7;
                            if ($var6_0 < 1)
                                $var6_0 = 1;
                            $var4.$itemDamage = $var6_0;
                            if ($var6_0 < 0)
                                $var4.$itemDamage = 0;
                        }
                    }
                    if ($var4.$stackSize) {
                        var$19 = new nms_EntityItem;
                        var$12 = $this.$worldObj;
                        var$20 = $this.$posX;
                        var$21 = $this.$posY + var$7;
                        var$22 = $this.$posZ;
                        $ptr = 1;
                        continue main;
                    }
                }
            }
            $var3 = $var3 + 1 | 0;
        }
        return;
    case 1:
        nms_EntityItem__init_(var$19, var$12, var$20, var$21, var$22);
        if ($rt_suspending()) {
            break main;
        }
        var$23 = var$19.$dataWatcher;
        var$12 = var$23.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$24 = jl_Integer_integerCache.data[var$8];
        if (var$24 === null) {
            var$12 = var$12.$elementData.data[0];
            while (var$12 !== null && var$12.$key !== null) {
                var$12 = var$12.$next3;
            }
        } else {
            $var6 = jl_Integer_hashCode(var$24.$value);
            var$9 = var$12.$elementData.data;
            var$12 = var$9[$var6 & (var$9.length - 1 | 0)];
            while (var$12 !== null && !(var$12.$origKeyHash == $var6 && ju_HashMap_areEqualKeys(var$24, var$12.$key))) {
                var$12 = var$12.$next3;
            }
        }
        var$25 = var$12 === null ? null : var$12.$value0;
        if (!($var4 !== var$25.$watchedObject ? 0 : 1)) {
            var$25.$watchedObject = $var4;
            var$25.$watched = 1;
            var$23.$objectChanged = 1;
        }
        var$23 = var$19.$dataWatcher;
        var$12 = var$23.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$24 = jl_Integer_integerCache.data[var$8];
        if (var$24 === null) {
            var$12 = var$12.$elementData.data[0];
            while (var$12 !== null && var$12.$key !== null) {
                var$12 = var$12.$next3;
            }
        } else {
            $var6 = jl_Integer_hashCode(var$24.$value);
            var$9 = var$12.$elementData.data;
            var$12 = var$9[$var6 & (var$9.length - 1 | 0)];
            while (var$12 !== null && !(var$12.$origKeyHash == $var6 && ju_HashMap_areEqualKeys(var$24, var$12.$key))) {
                var$12 = var$12.$next3;
            }
        }
        (var$12 === null ? null : var$12.$value0).$watched = 1;
        var$23.$objectChanged = 1;
        var$19.$delayBeforeCanPickup = 10;
        var$12 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$12, var$19);
        if ($rt_suspending()) {
            break main;
        }
        a: while (true) {
            while (true) {
                $var3 = $var3 + 1 | 0;
                var$9 = $this.$equipment.data;
                if ($var3 >= var$9.length)
                    break a;
                $var4 = var$9[$var3];
                var$9 = $this.$equipmentDropChances.data;
                $var5 = var$9[$var3] <= 1.0 ? 0 : 1;
                if ($var4 === null)
                    continue;
                if (!$par1 && !$var5)
                    continue;
                var$12 = $this.$rand;
                var$13 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$12.$seed = var$13;
                if (Long_lo(Long_shru(var$13, var$4)) / 1.6777216E7 - var$5 >= var$9[$var3])
                    continue;
                else
                    break;
            }
            if (!$var5) {
                nms_Item_$callClinit();
                var$9 = nms_Item_itemsList.data;
                $var7 = $var4.$itemID;
                if (var$9[$var7].$maxDamage <= 0 ? 0 : 1) {
                    $var6 = var$9[$var7].$maxDamage - 25 | 0;
                    $var6_0 = 1;
                    if ($var6 > $var6_0)
                        $var6_0 = $var6;
                    $var7 = var$9[$var7].$maxDamage;
                    var$17 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$12.$seed = var$17;
                    $var6 = Long_lo(Long_shru(var$17, var$6));
                    $par2 = $var6_0 - 1 | 0;
                    if (!($var6_0 & $par2))
                        $var5 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6_0), Long_fromInt($var6)), 31));
                    else
                        while (true) {
                            $var5 = $var6 % $var6_0 | 0;
                            if ((($var6 - $var5 | 0) + $par2 | 0) >= 0)
                                break;
                            var$17 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$12.$seed = var$17;
                            $var6 = Long_lo(Long_shru(var$17, var$6));
                        }
                    $par2 = $var5 + 1 | 0;
                    var$17 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$12.$seed = var$17;
                    var$18 = Long_lo(Long_shru(var$17, var$6));
                    $var5 = $par2 - 1 | 0;
                    if (!($par2 & $var5))
                        $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt($par2), Long_fromInt(var$18)), 31));
                    else
                        while (true) {
                            $var6 = var$18 % $par2 | 0;
                            if (((var$18 - $var6 | 0) + $var5 | 0) >= 0)
                                break;
                            var$17 = Long_and(Long_add(Long_mul(var$12.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$12.$seed = var$17;
                            var$18 = Long_lo(Long_shru(var$17, var$6));
                        }
                    $var7 = $var7 - $var6 | 0;
                    if ($var7 <= $var6_0)
                        $var6_0 = $var7;
                    if ($var6_0 < 1)
                        $var6_0 = 1;
                    $var4.$itemDamage = $var6_0;
                    if ($var6_0 < 0)
                        $var4.$itemDamage = 0;
                }
            }
            if ($var4.$stackSize) {
                var$19 = new nms_EntityItem;
                var$12 = $this.$worldObj;
                var$20 = $this.$posX;
                var$21 = $this.$posY + var$7;
                var$22 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, $var4, $var5, var$12, var$13, $var7, $var6, $var6_0, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_EntityLiving_addRandomArmor = $this => {
    let $var5, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, $var1, var$11, var$12, var$13, var$14, $var3, var$16, var$17, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var3 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var1 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var5 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var5.$seed = var$2;
        var$3 = 24;
        var$4 = Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7;
        $var2 = 0.15000000596046448;
        $var5 = $this.$worldObj;
        var$6 = $this.$posX;
        var$7 = $this.$posY;
        var$8 = $this.$posZ;
        var$9 = var$6 | 0;
        if (var$6 < var$9)
            var$9 = var$9 - 1 | 0;
        $var1 = var$7 | 0;
        if (var$7 < $var1)
            $var1 = $var1 - 1 | 0;
        var$11 = var$8 | 0;
        if (var$8 < var$11)
            var$11 = var$11 - 1 | 0;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getTensionFactorForBlock($var5, var$9, $var1, var$11);
            if ($rt_suspending()) {
                break main;
            }
            var$12 = $tmp;
            if (var$4 < $var2 * var$12) {
                $var5 = $this.$rand;
                var$13 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$13;
                $var1 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$13, 17)))), 31));
                $var2 = $this.$worldObj.$difficultySetting != 3 ? 0.25 : 0.10000000149011612;
                var$14 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$14;
                if (Long_lo(Long_shru(var$14, var$3)) / 1.6777216E7 < 0.0949999988079071)
                    $var1 = $var1 + 1 | 0;
                var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$14;
                if (Long_lo(Long_shru(var$14, var$3)) / 1.6777216E7 < 0.0949999988079071)
                    $var1 = $var1 + 1 | 0;
                var$2 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$2;
                if (Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 < 0.0949999988079071)
                    $var1 = $var1 + 1 | 0;
                $var3 = 3;
                while (true) {
                    if ($var3 < 0)
                        break a;
                    var$16 = $this.$equipment.data;
                    var$17 = $var3 + 1 | 0;
                    $var4 = var$16[var$17];
                    if ($var3 < 3) {
                        $var5 = $this.$rand;
                        var$2 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$2;
                        if (Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 < $var2)
                            break;
                    }
                    if ($var4 === null) {
                        $var5 = nms_EntityLiving_getArmorItemForSlot(var$17, $var1);
                        if ($var5 !== null) {
                            $var4 = new nms_ItemStack;
                            nms_ItemStack_$callClinit();
                            $var4.$itemID = $var5.$itemID0;
                            $var4.$stackSize = 1;
                            $var4.$itemDamage = 0;
                            $ptr = 2;
                            continue main;
                        }
                    }
                    $var3 = $var3 + (-1) | 0;
                }
            }
        }
        return;
    case 2:
        $this.$setCurrentItemOrArmor(var$17, $var4);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            while (true) {
                $var3 = $var3 + (-1) | 0;
                if ($var3 < 0)
                    break a;
                var$16 = $this.$equipment.data;
                var$17 = $var3 + 1 | 0;
                $var4 = var$16[var$17];
                if ($var3 < 3) {
                    $var5 = $this.$rand;
                    var$2 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$2;
                    if (Long_lo(Long_shru(var$2, var$3)) / 1.6777216E7 < $var2)
                        break;
                }
                if ($var4 !== null)
                    continue;
                $var5 = nms_EntityLiving_getArmorItemForSlot(var$17, $var1);
                if ($var5 === null)
                    continue;
                else {
                    $var4 = new nms_ItemStack;
                    nms_ItemStack_$callClinit();
                    $var4.$itemID = $var5.$itemID0;
                    $var4.$stackSize = 1;
                    $var4.$itemDamage = 0;
                    continue main;
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var5, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, $var1, var$11, var$12, var$13, var$14, $var3, var$16, var$17, $var4, $ptr);
},
nms_EntityLiving_getArmorPosition = $par0ItemStack => {
    let var$2, var$3;
    var$2 = $par0ItemStack.$itemID;
    nms_Block_$callClinit();
    if (var$2 != nms_Block_pumpkin.$blockID) {
        nms_Item_$callClinit();
        if (var$2 != nms_Item_skull.$itemID0) {
            a: {
                var$3 = nms_Item_itemsList.data;
                if (var$3[var$2] instanceof nms_ItemArmor)
                    switch (var$3[var$2].$armorType) {
                        case 0:
                            return 4;
                        case 1:
                            return 3;
                        case 2:
                            return 2;
                        case 3:
                            return 1;
                        default:
                            break a;
                    }
            }
            return 0;
        }
    }
    return 4;
},
nms_EntityLiving_getArmorItemForSlot = ($par0, $par1) => {
    a: {
        b: {
            c: {
                d: {
                    switch ($par0) {
                        case 1:
                            break b;
                        case 2:
                            break c;
                        case 3:
                            break d;
                        case 4:
                            break;
                        default:
                            break a;
                    }
                    if (!$par1) {
                        nms_Item_$callClinit();
                        return nms_Item_helmetLeather;
                    }
                    if ($par1 == 1) {
                        nms_Item_$callClinit();
                        return nms_Item_helmetGold;
                    }
                    if ($par1 == 2) {
                        nms_Item_$callClinit();
                        return nms_Item_helmetChain;
                    }
                    if ($par1 == 3) {
                        nms_Item_$callClinit();
                        return nms_Item_helmetIron;
                    }
                    if ($par1 == 4) {
                        nms_Item_$callClinit();
                        return nms_Item_helmetDiamond;
                    }
                }
                if (!$par1) {
                    nms_Item_$callClinit();
                    return nms_Item_plateLeather;
                }
                if ($par1 == 1) {
                    nms_Item_$callClinit();
                    return nms_Item_plateGold;
                }
                if ($par1 == 2) {
                    nms_Item_$callClinit();
                    return nms_Item_plateChain;
                }
                if ($par1 == 3) {
                    nms_Item_$callClinit();
                    return nms_Item_plateIron;
                }
                if ($par1 == 4) {
                    nms_Item_$callClinit();
                    return nms_Item_plateDiamond;
                }
            }
            if (!$par1) {
                nms_Item_$callClinit();
                return nms_Item_legsLeather;
            }
            if ($par1 == 1) {
                nms_Item_$callClinit();
                return nms_Item_legsGold;
            }
            if ($par1 == 2) {
                nms_Item_$callClinit();
                return nms_Item_legsChain;
            }
            if ($par1 == 3) {
                nms_Item_$callClinit();
                return nms_Item_legsIron;
            }
            if ($par1 == 4) {
                nms_Item_$callClinit();
                return nms_Item_legsDiamond;
            }
        }
        if (!$par1) {
            nms_Item_$callClinit();
            return nms_Item_bootsLeather;
        }
        if ($par1 == 1) {
            nms_Item_$callClinit();
            return nms_Item_bootsGold;
        }
        if ($par1 == 2) {
            nms_Item_$callClinit();
            return nms_Item_bootsChain;
        }
        if ($par1 == 3) {
            nms_Item_$callClinit();
            return nms_Item_bootsIron;
        }
        if ($par1 == 4) {
            nms_Item_$callClinit();
            return nms_Item_bootsDiamond;
        }
    }
    return null;
},
nms_EntityLiving_enchantEquipment = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $var1, var$9, var$10, $var3, var$12, $var2, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var2 = $thread.pop();var$12 = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var1 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$posX;
        var$3 = $this.$posY;
        var$4 = $this.$posZ;
        var$5 = var$2 | 0;
        if (var$2 < var$5)
            var$5 = var$5 - 1 | 0;
        var$6 = var$3 | 0;
        if (var$3 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getTensionFactorForBlock(var$1, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        var$9 = $this.$equipment.data;
        if (var$9[0] !== null) {
            var$1 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$10;
            if (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 < 0.25 * $var1) {
                $var3 = var$9[0];
                var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$12;
                var$6 = Long_lo(Long_shru(var$12, 17));
                while (true) {
                    var$5 = var$6 % 18 | 0;
                    if (((var$6 - var$5 | 0) + 17 | 0) >= 0)
                        break;
                    var$12 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$12;
                    var$6 = Long_lo(Long_shru(var$12, 17));
                }
                nms_EnchantmentHelper_addRandomEnchantment(var$1, $var3, 5.0 + $var1 * var$5 | 0);
            }
        }
        $var2 = 0;
        var$14 = 0.5 * $var1;
        while ($var2 < 4) {
            var$9 = $this.$equipment.data;
            $var2 = $var2 + 1 | 0;
            $var3 = var$9[$var2];
            if ($var3 !== null) {
                var$1 = $this.$rand;
                var$12 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$12;
                if (Long_lo(Long_shru(var$12, 24)) / 1.6777216E7 < var$14) {
                    var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$12;
                    var$15 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        var$16 = var$15 % 18 | 0;
                        if (((var$15 - var$16 | 0) + 17 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1.$seed = var$12;
                        var$15 = Long_lo(Long_shru(var$12, 17));
                    }
                    nms_EnchantmentHelper_addRandomEnchantment(var$1, $var3, 5.0 + $var1 * var$16 | 0);
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $var1, var$9, var$10, $var3, var$12, $var2, var$14, var$15, var$16, $ptr);
},
nms_EntityLiving_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = nms_SharedMonsterAttributes_followRange;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$2 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$4 = var$2.$field_111115_a;
            if (!var$4.$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = var$3.$elementData.data;
        var$3 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$6) {
                var$4 = var$3.$key;
                if (var$2 !== var$4 && !jl_Object_equals(var$2, var$4) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$8 = var$3 === null ? null : var$3.$value0;
    var$3 = new nms_AttributeModifier;
    var$9 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
    var$4 = nle_ProfileUUID_randomUUID();
    var$3.$isSaved = 1;
    var$3.$id1 = var$4;
    var$3.$name3 = $rt_s(2198);
    var$3.$amount0 = var$9;
    var$3.$operation = 1;
    if ($rt_s(2198) === $rt_s(3))
        var$6 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$6 = 0;
    else {
        var$4 = $rt_s(3);
        var$6 = $rt_s(2198).$nativeString !== var$4.$nativeString ? 0 : 1;
    }
    if (!var$6) {
        nms_ModifiableAttributeInstance_applyModifier(var$8, var$3);
        return $par1EntityLivingData;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(1279);
    $rt_throw(var$2);
},
nms_EntityLiving_getEntityName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if (nms_EntityLiving_hasCustomNameTag($this))
        var$1 = nms_EntityLiving_getCustomNameTag($this);
    else {
        nms_EntityList_$callClinit();
        var$1 = nms_EntityList_classToStringMapping;
        var$2 = $this.constructor;
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = var$2.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$2;
                var$2.classObject = var$3;
            }
        }
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$2 = var$3;
            if (!var$2.$id$)
                var$2.$id$ = $rt_nextId();
            var$4 = var$3.$id$;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$4) {
                    var$2 = var$1.$key;
                    if (var$3 !== var$2 && !(var$3 !== var$2 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (var$1 === null)
            var$1 = $rt_s(1266);
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1267));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(400));
        var$1 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$7 = var$3.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            nms_StatCollector_$callClinit();
            var$1 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$1);
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
    }
    return var$1;
},
nms_EntityLiving_func_110163_bv = $this => {
    $this.$persistenceRequired = 1;
},
nms_EntityLiving_setCustomNameTag = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    var$3 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[138];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$4 = var$3 === null ? null : var$3.$value0;
    var$3 = var$4.$watchedObject;
    if ($par1Str === var$3)
        var$8 = 1;
    else if (!(var$3 instanceof jl_String))
        var$8 = 0;
    else {
        var$3 = var$3;
        var$8 = $par1Str.$nativeString !== var$3.$nativeString ? 0 : 1;
    }
    if (!var$8) {
        var$4.$watchedObject = $par1Str;
        var$4.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityLiving_getCustomNameTag = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[138];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject;
};
let nms_EntityLiving_hasCustomNameTag = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[138];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$nativeString.length <= 0 ? 0 : 1;
},
nms_EntityLiving_setAlwaysRenderNameTag = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    $par1 = (!$par1 ? 0 : 1) << 24 >> 24;
    var$3 = jl_Byte_byteCache.data[$par1 + 128 | 0];
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[139];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$8 = var$4 === null ? null : var$4.$value0;
    var$4 = var$8.$watchedObject;
    if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$3.$value1 ? 1 : 0)) {
        var$8.$watchedObject = var$3;
        var$8.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityLiving_getAlwaysRenderNameTag = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[139];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 != 1 ? 0 : 1;
},
nms_EntityLiving_setEquipmentDropChance = ($this, $par1, $par2) => {
    $this.$equipmentDropChances.data[$par1] = $par2;
},
nms_EntityLiving_canPickUpLoot = $this => {
    return $this.$canPickUpLoot;
},
nms_EntityLiving_setCanPickUpLoot = ($this, $par1) => {
    $this.$canPickUpLoot = $par1;
},
nms_EntityLiving_interactFirst = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isLeashed && $this.$leashedToEntity === $par1EntityPlayer) {
            var$2 = 1;
            var$3 = $par1EntityPlayer.$capabilities.$isCreativeMode ? 0 : 1;
            $ptr = 2;
            continue main;
        }
        var$4 = $par1EntityPlayer.$inventory0;
        var$3 = var$4.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? var$4.$mainInventory.data[var$3] : null;
        a: {
            if ($var2 !== null) {
                var$2 = $var2.$itemID;
                nms_Item_$callClinit();
                if (var$2 == nms_Item_leash.$itemID0 && $this.$allowLeashing()) {
                    if ($this instanceof nms_EntityTameable) {
                        var$4 = $this;
                        if (nms_EntityTameable_isTamed(var$4)) {
                            if (!jl_String_equalsIgnoreCase($par1EntityPlayer.$username, nms_EntityTameable_getOwnerName(var$4)))
                                break a;
                            else {
                                var$2 = 1;
                                $ptr = 4;
                                continue main;
                            }
                        }
                    }
                    var$2 = 1;
                    $ptr = 3;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = $this.$interact($par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        return var$2 ? 1 : 0;
    case 2:
        nms_EntityLiving_clearLeashed($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 3:
        nms_EntityLiving_setLeashedToEntity($this, $par1EntityPlayer, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var2.$stackSize = $var2.$stackSize - 1 | 0;
        return 1;
    case 4:
        nms_EntityLiving_setLeashedToEntity($this, $par1EntityPlayer, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var2.$stackSize = $var2.$stackSize - 1 | 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, $var2, $ptr);
},
nms_EntityLiving_interact = ($this, $par1EntityPlayer) => {
    return 0;
},
nms_EntityLiving_func_110159_bB = $this => {
    let var$1, var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_110170_bx !== null) {
            $ptr = 1;
            continue main;
        }
        a: {
            if ($this.$isLeashed) {
                var$1 = $this.$leashedToEntity;
                if (var$1 === null)
                    break a;
                if (var$1.$isDead)
                    break a;
            }
            return;
        }
        var$2 = 1;
        var$3 = 1;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityLiving_recreateLeash($this);
        if ($rt_suspending()) {
            break main;
        }
        b: {
            if ($this.$isLeashed) {
                var$1 = $this.$leashedToEntity;
                if (var$1 === null)
                    break b;
                if (var$1.$isDead)
                    break b;
            }
            return;
        }
        var$2 = 1;
        var$3 = 1;
        $ptr = 2;
    case 2:
        nms_EntityLiving_clearLeashed($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $ptr);
},
nms_EntityLiving_clearLeashed = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isLeashed) {
            $this.$isLeashed = 0;
            $this.$leashedToEntity = null;
            var$3 = $this.$worldObj;
            if (!var$3.$isRemote && $par2) {
                nms_Item_$callClinit();
                $par2 = nms_Item_leash.$itemID0;
                var$4 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$4.$itemID = $par2;
                var$4.$stackSize = 1;
                var$4.$itemDamage = 0;
                var$5 = new nms_EntityItem;
                var$6 = $this.$posX;
                var$7 = $this.$posY + 0.0;
                var$8 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
            var$3 = $this.$worldObj;
            if (!var$3.$isRemote && $par1 && var$3 instanceof nms_WorldServer) {
                var$5 = var$3.$theEntityTracker;
                var$3 = new nms_Packet39AttachEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3.$attachState = 1;
                var$9 = $this.$entityId;
                var$3.$ridingEntityId = var$9;
                var$3.$vehicleEntityId = (-1);
                var$4 = var$5.$trackedEntityIDs;
                $par1 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                $par1 = $par1 ^ ($par1 >>> 7 | 0) ^ ($par1 >>> 4 | 0);
                var$10 = var$4.$slots.data;
                var$4 = var$10[$par1 & (var$10.length - 1 | 0)];
                a: {
                    while (var$4 !== null) {
                        if (var$4.$hashEntry == var$9) {
                            var$4 = var$4.$valueEntry;
                            break a;
                        }
                        var$4 = var$4.$nextEntry0;
                    }
                    var$4 = null;
                }
                var$4 = var$4;
                if (var$4 !== null) {
                    var$4 = var$4.$trackingPlayers.$backingMap;
                    if (var$4.$cachedKeySet === null) {
                        var$5 = new ju_HashMap$1;
                        var$5.$this$0 = var$4;
                        var$4.$cachedKeySet = var$5;
                    }
                    var$5 = var$4.$cachedKeySet.$iterator();
                    $par2 = var$3 instanceof nms_Packet3Chat;
                    var$4 = var$3;
                    while (var$5.$hasNext()) {
                        b: {
                            var$11 = (var$5.$next()).$playerNetServerHandler;
                            if ($par2) {
                                var$12 = var$11.$playerEntity.$chatVisibility;
                                if (var$12 == 2)
                                    break b;
                                if (var$12 == 1 && !var$4.$isServer)
                                    break b;
                            }
                            try {
                                var$11 = var$11.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$11 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$13 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$13, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$13;
                            }
                            jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                        }
                    }
                }
            }
        }
        return;
    case 1:
        nms_EntityItem__init_(var$5, var$3, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = var$5.$dataWatcher;
        var$13 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$13, jl_Integer_integerCache.data[138]);
        var$13 = var$3 === null ? null : var$3.$value0;
        if (!(var$4 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$4;
            var$13.$watched = 1;
            var$11.$objectChanged = 1;
        }
        var$4 = var$5.$dataWatcher;
        var$3 = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[138]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$4.$objectChanged = 1;
        var$5.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$worldObj;
        if (!var$3.$isRemote && $par1 && var$3 instanceof nms_WorldServer) {
            var$5 = var$3.$theEntityTracker;
            var$3 = new nms_Packet39AttachEntity;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$attachState = 1;
            var$9 = $this.$entityId;
            var$3.$ridingEntityId = var$9;
            var$3.$vehicleEntityId = (-1);
            var$4 = var$5.$trackedEntityIDs;
            $par1 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
            $par1 = $par1 ^ ($par1 >>> 7 | 0) ^ ($par1 >>> 4 | 0);
            var$10 = var$4.$slots.data;
            var$4 = var$10[$par1 & (var$10.length - 1 | 0)];
            c: {
                while (var$4 !== null) {
                    if (var$4.$hashEntry == var$9) {
                        var$4 = var$4.$valueEntry;
                        break c;
                    }
                    var$4 = var$4.$nextEntry0;
                }
                var$4 = null;
            }
            var$4 = var$4;
            if (var$4 !== null) {
                var$4 = var$4.$trackingPlayers.$backingMap;
                if (var$4.$cachedKeySet === null) {
                    var$5 = new ju_HashMap$1;
                    var$5.$this$0 = var$4;
                    var$4.$cachedKeySet = var$5;
                }
                var$5 = var$4.$cachedKeySet.$iterator();
                $par2 = var$3 instanceof nms_Packet3Chat;
                var$4 = var$3;
                while (var$5.$hasNext()) {
                    d: {
                        var$11 = (var$5.$next()).$playerNetServerHandler;
                        if ($par2) {
                            var$12 = var$11.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break d;
                            if (var$12 == 1 && !var$4.$isServer)
                                break d;
                        }
                        try {
                            var$11 = var$11.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$13 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$13, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$13;
                        }
                        jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                    }
                }
            }
        }
        return;
    case 3:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$11, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$14 = new ji_ByteArrayOutputStream;
                $par1 = 32;
                ji_ByteArrayOutputStream__init_1(var$14, $par1);
                $par1 = 0;
                ji_PrintStream__init_(var$13, var$14, $par1);
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$13);
        }
        a: while (true) {
            while (true) {
                if (!var$5.$hasNext())
                    break a;
                var$11 = (var$5.$next()).$playerNetServerHandler;
                if (!$par2)
                    break;
                var$12 = var$11.$playerEntity.$chatVisibility;
                if (var$12 == 2)
                    continue;
                if (var$12 != 1)
                    break;
                if (var$4.$isServer)
                    break;
            }
            try {
                var$11 = var$11.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$14 = new ji_ByteArrayOutputStream;
                $par1 = 32;
                ji_ByteArrayOutputStream__init_1(var$14, $par1);
                $par1 = 0;
                ji_PrintStream__init_(var$13, var$14, $par1);
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$13);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityLiving_allowLeashing = $this => {
    return !$this.$isLeashed && !$rt_isInstance($this, nms_IMob) ? 1 : 0;
},
nms_EntityLiving_getLeashed = $this => {
    return $this.$isLeashed;
},
nms_EntityLiving_getLeashedToEntity = $this => {
    return $this.$leashedToEntity;
},
nms_EntityLiving_setLeashedToEntity = ($this, $par1Entity, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$isLeashed = 1;
        $this.$leashedToEntity = $par1Entity;
        var$3 = $this.$worldObj;
        if (!var$3.$isRemote && $par2 && var$3 instanceof nms_WorldServer) {
            var$4 = var$3.$theEntityTracker;
            var$3 = new nms_Packet39AttachEntity;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$attachState = 1;
            $par2 = $this.$entityId;
            var$3.$ridingEntityId = $par2;
            var$3.$vehicleEntityId = $par1Entity === null ? (-1) : $par1Entity.$entityId;
            $par1Entity = var$4.$trackedEntityIDs;
            var$5 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
            var$6 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
            var$7 = $par1Entity.$slots.data;
            $par1Entity = var$7[var$6 & (var$7.length - 1 | 0)];
            a: {
                while ($par1Entity !== null) {
                    if ($par1Entity.$hashEntry == $par2) {
                        $par1Entity = $par1Entity.$valueEntry;
                        break a;
                    }
                    $par1Entity = $par1Entity.$nextEntry0;
                }
                $par1Entity = null;
            }
            $par1Entity = $par1Entity;
            if ($par1Entity !== null) {
                $par1Entity = $par1Entity.$trackingPlayers.$backingMap;
                if ($par1Entity.$cachedKeySet === null) {
                    var$8 = new ju_HashMap$1;
                    var$8.$this$0 = $par1Entity;
                    $par1Entity.$cachedKeySet = var$8;
                }
                var$9 = $par1Entity.$cachedKeySet.$iterator();
                var$10 = var$3 instanceof nms_Packet3Chat;
                var$11 = var$3;
                while (var$9.$hasNext()) {
                    b: {
                        $par1Entity = (var$9.$next()).$playerNetServerHandler;
                        if (var$10) {
                            var$5 = $par1Entity.$playerEntity.$chatVisibility;
                            if (var$5 == 2)
                                break b;
                            if (var$5 == 1 && !var$11.$isServer)
                                break b;
                        }
                        try {
                            $par1Entity = $par1Entity.$netManager;
                            $ptr = 1;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1Entity = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$8 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$8;
                        }
                        jl_Throwable_printStackTrace($par1Entity, jl_System_errCache);
                    }
                }
            }
        }
        return;
    case 1:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1Entity, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$4, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$8, var$4, $par2);
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1Entity, var$8);
        }
        a: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break a;
                $par1Entity = (var$9.$next()).$playerNetServerHandler;
                if (!var$10)
                    break;
                var$5 = $par1Entity.$playerEntity.$chatVisibility;
                if (var$5 == 2)
                    continue;
                if (var$5 != 1)
                    break;
                if (var$11.$isServer)
                    break;
            }
            try {
                $par1Entity = $par1Entity.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1Entity = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                $par2 = 32;
                ji_ByteArrayOutputStream__init_1(var$4, $par2);
                $par2 = 0;
                ji_PrintStream__init_(var$8, var$4, $par2);
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace($par1Entity, var$8);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityLiving_recreateLeash = $this => {
    let $var4, $var7$index, var$3, $var6, $var7$index_0, $var5, var$7, $var3, var$9, var$10, $var8, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var1, $var2, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var7$index_0 = $thread.pop();$var6 = $thread.pop();var$3 = $thread.pop();$var7$index = $thread.pop();$var4
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isLeashed) {
            $var4 = $this.$field_110170_bx;
            if ($var4 !== null) {
                a: {
                    $var4 = $var4.$tagMap;
                    if (!$rt_s(1264).$hashCode1) {
                        $var7$index = 0;
                        while (true) {
                            if ($var7$index >= $rt_s(1264).$nativeString.length)
                                break a;
                            $rt_s(1264).$hashCode1 = (31 * $rt_s(1264).$hashCode1 | 0) + $rt_s(1264).$nativeString.charCodeAt($var7$index) | 0;
                            $var7$index = $var7$index + 1 | 0;
                        }
                    }
                }
                $var7$index = $rt_s(1264).$hashCode1;
                var$3 = $var4.$elementData.data;
                $var4 = var$3[$var7$index & (var$3.length - 1 | 0)];
                while ($var4 !== null) {
                    if ($var4.$origKeyHash == $var7$index) {
                        b: {
                            $var6 = $var4.$key;
                            if ($rt_s(1264) !== $var6) {
                                if ($rt_s(1264) !== $var6) {
                                    if (!($var6 instanceof jl_String))
                                        $var7$index_0 = 0;
                                    else {
                                        $var6 = $var6;
                                        $var7$index_0 = $rt_s(1264).$nativeString !== $var6.$nativeString ? 0 : 1;
                                    }
                                } else
                                    $var7$index_0 = 1;
                                if (!$var7$index_0) {
                                    $var7$index_0 = 0;
                                    break b;
                                }
                            }
                            $var7$index_0 = 1;
                        }
                        if ($var7$index_0)
                            break;
                    }
                    $var4 = $var4.$next3;
                }
                if ($var4 === null ? 0 : 1) {
                    c: {
                        $var4 = $this.$field_110170_bx.$tagMap;
                        if (!$rt_s(1265).$hashCode1) {
                            $var7$index = 0;
                            while (true) {
                                if ($var7$index >= $rt_s(1265).$nativeString.length)
                                    break c;
                                $rt_s(1265).$hashCode1 = (31 * $rt_s(1265).$hashCode1 | 0) + $rt_s(1265).$nativeString.charCodeAt($var7$index) | 0;
                                $var7$index = $var7$index + 1 | 0;
                            }
                        }
                    }
                    $var7$index = $rt_s(1265).$hashCode1;
                    var$3 = $var4.$elementData.data;
                    $var4 = var$3[$var7$index & (var$3.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == $var7$index) {
                            d: {
                                $var6 = $var4.$key;
                                if ($rt_s(1265) !== $var6) {
                                    if ($rt_s(1265) === $var6)
                                        $var7$index_0 = 1;
                                    else if (!($var6 instanceof jl_String))
                                        $var7$index_0 = 0;
                                    else {
                                        $var6 = $var6;
                                        $var7$index_0 = $rt_s(1265).$nativeString !== $var6.$nativeString ? 0 : 1;
                                    }
                                    if (!$var7$index_0) {
                                        $var7$index_0 = 0;
                                        break d;
                                    }
                                }
                                $var7$index_0 = 1;
                            }
                            if ($var7$index_0)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                    if ($var4 === null ? 0 : 1) {
                        e: {
                            $var5 = new nle_ProfileUUID;
                            var$7 = $this.$field_110170_bx;
                            $var4 = var$7.$tagMap;
                            if (!$rt_s(1264).$hashCode1) {
                                $var7$index = 0;
                                while (true) {
                                    if ($var7$index >= $rt_s(1264).$nativeString.length)
                                        break e;
                                    $rt_s(1264).$hashCode1 = (31 * $rt_s(1264).$hashCode1 | 0) + $rt_s(1264).$nativeString.charCodeAt($var7$index) | 0;
                                    $var7$index = $var7$index + 1 | 0;
                                }
                            }
                        }
                        $var3 = $rt_s(1264).$hashCode1;
                        var$3 = $var4.$elementData.data;
                        $var4 = var$3[$var3 & (var$3.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == $var3) {
                                f: {
                                    $var6 = $var4.$key;
                                    if ($rt_s(1264) !== $var6) {
                                        if ($rt_s(1264) === $var6)
                                            $var7$index = 1;
                                        else if (!($var6 instanceof jl_String))
                                            $var7$index = 0;
                                        else {
                                            $var6 = $var6;
                                            $var7$index = $rt_s(1264).$nativeString !== $var6.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7$index) {
                                            $var7$index = 0;
                                            break f;
                                        }
                                    }
                                    $var7$index = 1;
                                }
                                if ($var7$index)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                        if (!($var4 === null ? 0 : 1))
                            var$9 = Long_ZERO;
                        else {
                            $var4 = var$7.$tagMap;
                            if ($rt_s(1264) === null) {
                                $var4 = $var4.$elementData.data[0];
                                while ($var4 !== null && $var4.$key !== null) {
                                    $var4 = $var4.$next3;
                                }
                            } else {
                                g: {
                                    if (!$rt_s(1264).$hashCode1) {
                                        $var7$index = 0;
                                        while (true) {
                                            if ($var7$index >= $rt_s(1264).$nativeString.length)
                                                break g;
                                            $rt_s(1264).$hashCode1 = (31 * $rt_s(1264).$hashCode1 | 0) + $rt_s(1264).$nativeString.charCodeAt($var7$index) | 0;
                                            $var7$index = $var7$index + 1 | 0;
                                        }
                                    }
                                }
                                $var3 = $rt_s(1264).$hashCode1;
                                var$3 = $var4.$elementData.data;
                                $var4 = var$3[$var3 & (var$3.length - 1 | 0)];
                                while ($var4 !== null) {
                                    if ($var4.$origKeyHash == $var3) {
                                        h: {
                                            $var6 = $var4.$key;
                                            if ($rt_s(1264) !== $var6) {
                                                if ($rt_s(1264) === $var6)
                                                    $var7$index = 1;
                                                else if (!($var6 instanceof jl_String))
                                                    $var7$index = 0;
                                                else {
                                                    $var6 = $var6;
                                                    $var7$index = $rt_s(1264).$nativeString !== $var6.$nativeString ? 0 : 1;
                                                }
                                                if (!$var7$index) {
                                                    $var7$index = 0;
                                                    break h;
                                                }
                                            }
                                            $var7$index = 1;
                                        }
                                        if ($var7$index)
                                            break;
                                    }
                                    $var4 = $var4.$next3;
                                }
                            }
                            var$9 = ($var4 === null ? null : $var4.$value0).$data6;
                        }
                        i: {
                            var$10 = $this.$field_110170_bx;
                            $var6 = var$10.$tagMap;
                            if (!$rt_s(1265).$hashCode1) {
                                $var7$index = 0;
                                while (true) {
                                    if ($var7$index >= $rt_s(1265).$nativeString.length)
                                        break i;
                                    $rt_s(1265).$hashCode1 = (31 * $rt_s(1265).$hashCode1 | 0) + $rt_s(1265).$nativeString.charCodeAt($var7$index) | 0;
                                    $var7$index = $var7$index + 1 | 0;
                                }
                            }
                        }
                        $var3 = $rt_s(1265).$hashCode1;
                        var$3 = $var6.$elementData.data;
                        $var6 = var$3[$var3 & (var$3.length - 1 | 0)];
                        while ($var6 !== null) {
                            if ($var6.$origKeyHash == $var3) {
                                j: {
                                    $var8 = $var6.$key;
                                    if ($rt_s(1265) !== $var8) {
                                        if ($rt_s(1265) === $var8)
                                            $var7$index = 1;
                                        else if (!($var8 instanceof jl_String))
                                            $var7$index = 0;
                                        else {
                                            $var8 = $var8;
                                            $var7$index = $rt_s(1265).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7$index) {
                                            $var7$index = 0;
                                            break j;
                                        }
                                    }
                                    $var7$index = 1;
                                }
                                if ($var7$index)
                                    break;
                            }
                            $var6 = $var6.$next3;
                        }
                        if (!($var6 === null ? 0 : 1))
                            var$12 = Long_ZERO;
                        else {
                            $var6 = var$10.$tagMap;
                            if ($rt_s(1265) === null) {
                                var$7 = $var6.$elementData.data[0];
                                while (var$7 !== null && var$7.$key !== null) {
                                    var$7 = var$7.$next3;
                                }
                            } else {
                                k: {
                                    if (!$rt_s(1265).$hashCode1) {
                                        $var7$index = 0;
                                        while (true) {
                                            if ($var7$index >= $rt_s(1265).$nativeString.length)
                                                break k;
                                            $rt_s(1265).$hashCode1 = (31 * $rt_s(1265).$hashCode1 | 0) + $rt_s(1265).$nativeString.charCodeAt($var7$index) | 0;
                                            $var7$index = $var7$index + 1 | 0;
                                        }
                                    }
                                }
                                $var7$index_0 = $rt_s(1265).$hashCode1;
                                var$3 = $var6.$elementData.data;
                                var$7 = var$3[$var7$index_0 & (var$3.length - 1 | 0)];
                                while (var$7 !== null) {
                                    if (var$7.$origKeyHash == $var7$index_0) {
                                        l: {
                                            $var6 = var$7.$key;
                                            if ($rt_s(1265) !== $var6) {
                                                if ($rt_s(1265) === $var6)
                                                    $var7$index = 1;
                                                else if (!($var6 instanceof jl_String))
                                                    $var7$index = 0;
                                                else {
                                                    $var6 = $var6;
                                                    $var7$index = $rt_s(1265).$nativeString !== $var6.$nativeString ? 0 : 1;
                                                }
                                                if (!$var7$index) {
                                                    $var7$index = 0;
                                                    break l;
                                                }
                                            }
                                            $var7$index = 1;
                                        }
                                        if ($var7$index)
                                            break;
                                    }
                                    var$7 = var$7.$next3;
                                }
                            }
                            var$12 = (var$7 === null ? null : var$7.$value0).$data6;
                        }
                        nle_ProfileUUID_$callClinit();
                        $var5.$mostSigBits = var$9;
                        $var5.$leastSigBits = var$12;
                        $var4 = $this.$worldObj;
                        $var6 = $rt_cls(nms_EntityLivingBase);
                        $var8 = $this.$boundingBox0;
                        var$13 = $var8.$minX0 - 10.0;
                        var$14 = $var8.$minY0 - 10.0;
                        var$15 = $var8.$minZ0 - 10.0;
                        var$16 = $var8.$maxX0 + 10.0;
                        var$17 = $var8.$maxY + 10.0;
                        var$18 = $var8.$maxZ0 + 10.0;
                        var$10 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                        $var7$index = var$10.$nextPoolIndex;
                        $var8 = var$10.$listAABB;
                        $var3 = $var8.$size0;
                        $var7$index_0 = $rt_compare($var7$index, $var3);
                        if ($var7$index_0 >= 0) {
                            var$7 = new nms_AxisAlignedBB;
                            var$7.$minX0 = var$13;
                            var$7.$minY0 = var$14;
                            var$7.$minZ0 = var$15;
                            var$7.$maxX0 = var$16;
                            var$7.$maxY = var$17;
                            var$7.$maxZ0 = var$18;
                            ju_ArrayList_ensureCapacity($var8, $var3 + 1 | 0);
                            var$3 = $var8.$array.data;
                            $var7$index_0 = $var8.$size0;
                            $var8.$size0 = $var7$index_0 + 1 | 0;
                            var$3[$var7$index_0] = var$7;
                            $var8.$modCount = $var8.$modCount + 1 | 0;
                        } else if ($var7$index >= 0 && $var7$index_0 < 0) {
                            var$7 = $var8.$array.data[$var7$index];
                            var$7.$minX0 = var$13;
                            var$7.$minY0 = var$14;
                            var$7.$minZ0 = var$15;
                            var$7.$maxX0 = var$16;
                            var$7.$maxY = var$17;
                            var$7.$maxZ0 = var$18;
                        } else {
                            $var4 = new jl_IndexOutOfBoundsException;
                            $var4.$suppressionEnabled = 1;
                            $var4.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($var4);
                            $rt_throw($var4);
                        }
                        var$10.$nextPoolIndex = var$10.$nextPoolIndex + 1 | 0;
                        $var8 = null;
                        $ptr = 2;
                        continue main;
                    }
                }
                m: {
                    $var4 = $this.$field_110170_bx.$tagMap;
                    if (!$rt_s(1525).$hashCode1) {
                        $var7$index = 0;
                        while (true) {
                            if ($var7$index >= $rt_s(1525).$nativeString.length)
                                break m;
                            $rt_s(1525).$hashCode1 = (31 * $rt_s(1525).$hashCode1 | 0) + $rt_s(1525).$nativeString.charCodeAt($var7$index) | 0;
                            $var7$index = $var7$index + 1 | 0;
                        }
                    }
                }
                $var7$index = $rt_s(1525).$hashCode1;
                var$3 = $var4.$elementData.data;
                $var4 = var$3[$var7$index & (var$3.length - 1 | 0)];
                while ($var4 !== null) {
                    if ($var4.$origKeyHash == $var7$index) {
                        n: {
                            $var6 = $var4.$key;
                            if ($rt_s(1525) !== $var6) {
                                if ($rt_s(1525) === $var6)
                                    $var7$index_0 = 1;
                                else if (!($var6 instanceof jl_String))
                                    $var7$index_0 = 0;
                                else {
                                    $var6 = $var6;
                                    $var7$index_0 = $rt_s(1525).$nativeString !== $var6.$nativeString ? 0 : 1;
                                }
                                if (!$var7$index_0) {
                                    $var7$index_0 = 0;
                                    break n;
                                }
                            }
                            $var7$index_0 = 1;
                        }
                        if ($var7$index_0)
                            break;
                    }
                    $var4 = $var4.$next3;
                }
                if ($var4 === null ? 0 : 1) {
                    o: {
                        $var4 = $this.$field_110170_bx.$tagMap;
                        if (!$rt_s(355).$hashCode1) {
                            $var7$index = 0;
                            while (true) {
                                if ($var7$index >= $rt_s(355).$nativeString.length)
                                    break o;
                                $rt_s(355).$hashCode1 = (31 * $rt_s(355).$hashCode1 | 0) + $rt_s(355).$nativeString.charCodeAt($var7$index) | 0;
                                $var7$index = $var7$index + 1 | 0;
                            }
                        }
                    }
                    $var7$index = $rt_s(355).$hashCode1;
                    var$3 = $var4.$elementData.data;
                    $var4 = var$3[$var7$index & (var$3.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == $var7$index) {
                            p: {
                                $var6 = $var4.$key;
                                if ($rt_s(355) !== $var6) {
                                    if ($rt_s(355) !== $var6) {
                                        if ($var6 instanceof jl_String) {
                                            $var6 = $var6;
                                            $var7$index_0 = $rt_s(355).$nativeString !== $var6.$nativeString ? 0 : 1;
                                        } else
                                            $var7$index_0 = 0;
                                    } else
                                        $var7$index_0 = 1;
                                    if (!$var7$index_0) {
                                        $var7$index_0 = 0;
                                        break p;
                                    }
                                }
                                $var7$index_0 = 1;
                            }
                            if ($var7$index_0)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                    if ($var4 === null ? 0 : 1) {
                        q: {
                            $var4 = $this.$field_110170_bx.$tagMap;
                            if (!$rt_s(2159).$hashCode1) {
                                $var7$index = 0;
                                while (true) {
                                    if ($var7$index >= $rt_s(2159).$nativeString.length)
                                        break q;
                                    $rt_s(2159).$hashCode1 = (31 * $rt_s(2159).$hashCode1 | 0) + $rt_s(2159).$nativeString.charCodeAt($var7$index) | 0;
                                    $var7$index = $var7$index + 1 | 0;
                                }
                            }
                        }
                        $var7$index = $rt_s(2159).$hashCode1;
                        var$3 = $var4.$elementData.data;
                        $var4 = var$3[$var7$index & (var$3.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == $var7$index) {
                                r: {
                                    $var6 = $var4.$key;
                                    if ($rt_s(2159) !== $var6) {
                                        if ($rt_s(2159) === $var6)
                                            $var7$index_0 = 1;
                                        else if (!($var6 instanceof jl_String))
                                            $var7$index_0 = 0;
                                        else {
                                            $var6 = $var6;
                                            $var7$index_0 = $rt_s(2159).$nativeString !== $var6.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7$index_0) {
                                            $var7$index_0 = 0;
                                            break r;
                                        }
                                    }
                                    $var7$index_0 = 1;
                                }
                                if ($var7$index_0)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                        if ($var4 === null ? 0 : 1) {
                            s: {
                                $var4 = $this.$field_110170_bx;
                                $var6 = $var4.$tagMap;
                                if (!$rt_s(1525).$hashCode1) {
                                    $var7$index = 0;
                                    while (true) {
                                        if ($var7$index >= $rt_s(1525).$nativeString.length)
                                            break s;
                                        $rt_s(1525).$hashCode1 = (31 * $rt_s(1525).$hashCode1 | 0) + $rt_s(1525).$nativeString.charCodeAt($var7$index) | 0;
                                        $var7$index = $var7$index + 1 | 0;
                                    }
                                }
                            }
                            $var7$index = $rt_s(1525).$hashCode1;
                            var$3 = $var6.$elementData.data;
                            $var6 = var$3[$var7$index & (var$3.length - 1 | 0)];
                            while ($var6 !== null) {
                                if ($var6.$origKeyHash == $var7$index) {
                                    t: {
                                        $var8 = $var6.$key;
                                        if ($rt_s(1525) !== $var8) {
                                            if ($rt_s(1525) !== $var8) {
                                                if ($var8 instanceof jl_String) {
                                                    $var8 = $var8;
                                                    $var7$index_0 = $rt_s(1525).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                } else
                                                    $var7$index_0 = 0;
                                            } else
                                                $var7$index_0 = 1;
                                            if (!$var7$index_0) {
                                                $var7$index_0 = 0;
                                                break t;
                                            }
                                        }
                                        $var7$index_0 = 1;
                                    }
                                    if ($var7$index_0)
                                        break;
                                }
                                $var6 = $var6.$next3;
                            }
                            if (!($var6 === null ? 0 : 1))
                                $var1 = 0;
                            else {
                                $var4 = $var4.$tagMap;
                                if ($rt_s(1525) === null) {
                                    $var4 = $var4.$elementData.data[0];
                                    while ($var4 !== null && $var4.$key !== null) {
                                        $var4 = $var4.$next3;
                                    }
                                } else {
                                    u: {
                                        if (!$rt_s(1525).$hashCode1) {
                                            $var7$index = 0;
                                            while (true) {
                                                if ($var7$index >= $rt_s(1525).$nativeString.length)
                                                    break u;
                                                $rt_s(1525).$hashCode1 = (31 * $rt_s(1525).$hashCode1 | 0) + $rt_s(1525).$nativeString.charCodeAt($var7$index) | 0;
                                                $var7$index = $var7$index + 1 | 0;
                                            }
                                        }
                                    }
                                    $var7$index = $rt_s(1525).$hashCode1;
                                    var$3 = $var4.$elementData.data;
                                    $var4 = var$3[$var7$index & (var$3.length - 1 | 0)];
                                    while ($var4 !== null) {
                                        if ($var4.$origKeyHash == $var7$index) {
                                            v: {
                                                $var6 = $var4.$key;
                                                if ($rt_s(1525) !== $var6) {
                                                    if ($rt_s(1525) === $var6)
                                                        $var7$index_0 = 1;
                                                    else if (!($var6 instanceof jl_String))
                                                        $var7$index_0 = 0;
                                                    else {
                                                        $var6 = $var6;
                                                        $var7$index_0 = $rt_s(1525).$nativeString !== $var6.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var7$index_0) {
                                                        $var7$index_0 = 0;
                                                        break v;
                                                    }
                                                }
                                                $var7$index_0 = 1;
                                            }
                                            if ($var7$index_0)
                                                break;
                                        }
                                        $var4 = $var4.$next3;
                                    }
                                }
                                $var1 = ($var4 === null ? null : $var4.$value0).$data;
                            }
                            w: {
                                $var4 = $this.$field_110170_bx;
                                $var6 = $var4.$tagMap;
                                if (!$rt_s(355).$hashCode1) {
                                    $var7$index = 0;
                                    while (true) {
                                        if ($var7$index >= $rt_s(355).$nativeString.length)
                                            break w;
                                        $rt_s(355).$hashCode1 = (31 * $rt_s(355).$hashCode1 | 0) + $rt_s(355).$nativeString.charCodeAt($var7$index) | 0;
                                        $var7$index = $var7$index + 1 | 0;
                                    }
                                }
                            }
                            $var3 = $rt_s(355).$hashCode1;
                            var$3 = $var6.$elementData.data;
                            $var6 = var$3[$var3 & (var$3.length - 1 | 0)];
                            while ($var6 !== null) {
                                if ($var6.$origKeyHash == $var3) {
                                    x: {
                                        $var8 = $var6.$key;
                                        if ($rt_s(355) !== $var8) {
                                            if ($rt_s(355) === $var8)
                                                $var7$index = 1;
                                            else if (!($var8 instanceof jl_String))
                                                $var7$index = 0;
                                            else {
                                                $var8 = $var8;
                                                $var7$index = $rt_s(355).$nativeString !== $var8.$nativeString ? 0 : 1;
                                            }
                                            if (!$var7$index) {
                                                $var7$index = 0;
                                                break x;
                                            }
                                        }
                                        $var7$index = 1;
                                    }
                                    if ($var7$index)
                                        break;
                                }
                                $var6 = $var6.$next3;
                            }
                            if (!($var6 === null ? 0 : 1))
                                $var2 = 0;
                            else {
                                $var4 = $var4.$tagMap;
                                if ($rt_s(355) === null) {
                                    $var4 = $var4.$elementData.data[0];
                                    while ($var4 !== null && $var4.$key !== null) {
                                        $var4 = $var4.$next3;
                                    }
                                } else {
                                    y: {
                                        if (!$rt_s(355).$hashCode1) {
                                            $var7$index = 0;
                                            while (true) {
                                                if ($var7$index >= $rt_s(355).$nativeString.length)
                                                    break y;
                                                $rt_s(355).$hashCode1 = (31 * $rt_s(355).$hashCode1 | 0) + $rt_s(355).$nativeString.charCodeAt($var7$index) | 0;
                                                $var7$index = $var7$index + 1 | 0;
                                            }
                                        }
                                    }
                                    $var3 = $rt_s(355).$hashCode1;
                                    var$3 = $var4.$elementData.data;
                                    $var4 = var$3[$var3 & (var$3.length - 1 | 0)];
                                    while ($var4 !== null) {
                                        if ($var4.$origKeyHash == $var3) {
                                            z: {
                                                $var6 = $var4.$key;
                                                if ($rt_s(355) !== $var6) {
                                                    if ($rt_s(355) === $var6)
                                                        $var7$index = 1;
                                                    else if (!($var6 instanceof jl_String))
                                                        $var7$index = 0;
                                                    else {
                                                        $var6 = $var6;
                                                        $var7$index = $rt_s(355).$nativeString !== $var6.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var7$index) {
                                                        $var7$index = 0;
                                                        break z;
                                                    }
                                                }
                                                $var7$index = 1;
                                            }
                                            if ($var7$index)
                                                break;
                                        }
                                        $var4 = $var4.$next3;
                                    }
                                }
                                $var2 = ($var4 === null ? null : $var4.$value0).$data;
                            }
                            ba: {
                                $var4 = $this.$field_110170_bx;
                                $var6 = $var4.$tagMap;
                                if (!$rt_s(2159).$hashCode1) {
                                    $var7$index = 0;
                                    while (true) {
                                        if ($var7$index >= $rt_s(2159).$nativeString.length)
                                            break ba;
                                        $rt_s(2159).$hashCode1 = (31 * $rt_s(2159).$hashCode1 | 0) + $rt_s(2159).$nativeString.charCodeAt($var7$index) | 0;
                                        $var7$index = $var7$index + 1 | 0;
                                    }
                                }
                            }
                            $var3 = $rt_s(2159).$hashCode1;
                            var$3 = $var6.$elementData.data;
                            $var6 = var$3[$var3 & (var$3.length - 1 | 0)];
                            while ($var6 !== null) {
                                if ($var6.$origKeyHash == $var3) {
                                    bb: {
                                        $var8 = $var6.$key;
                                        if ($rt_s(2159) !== $var8) {
                                            if ($rt_s(2159) === $var8)
                                                $var7$index = 1;
                                            else if (!($var8 instanceof jl_String))
                                                $var7$index = 0;
                                            else {
                                                $var8 = $var8;
                                                $var7$index = $rt_s(2159).$nativeString !== $var8.$nativeString ? 0 : 1;
                                            }
                                            if (!$var7$index) {
                                                $var7$index = 0;
                                                break bb;
                                            }
                                        }
                                        $var7$index = 1;
                                    }
                                    if ($var7$index)
                                        break;
                                }
                                $var6 = $var6.$next3;
                            }
                            if (!($var6 === null ? 0 : 1))
                                $var3 = 0;
                            else {
                                $var4 = $var4.$tagMap;
                                if ($rt_s(2159) === null) {
                                    $var4 = $var4.$elementData.data[0];
                                    while ($var4 !== null && $var4.$key !== null) {
                                        $var4 = $var4.$next3;
                                    }
                                } else {
                                    bc: {
                                        if (!$rt_s(2159).$hashCode1) {
                                            $var7$index = 0;
                                            while (true) {
                                                if ($var7$index >= $rt_s(2159).$nativeString.length)
                                                    break bc;
                                                $rt_s(2159).$hashCode1 = (31 * $rt_s(2159).$hashCode1 | 0) + $rt_s(2159).$nativeString.charCodeAt($var7$index) | 0;
                                                $var7$index = $var7$index + 1 | 0;
                                            }
                                        }
                                    }
                                    $var3 = $rt_s(2159).$hashCode1;
                                    var$3 = $var4.$elementData.data;
                                    $var4 = var$3[$var3 & (var$3.length - 1 | 0)];
                                    while ($var4 !== null) {
                                        if ($var4.$origKeyHash == $var3) {
                                            bd: {
                                                $var6 = $var4.$key;
                                                if ($rt_s(2159) !== $var6) {
                                                    if ($rt_s(2159) === $var6)
                                                        $var7$index = 1;
                                                    else if (!($var6 instanceof jl_String))
                                                        $var7$index = 0;
                                                    else {
                                                        $var6 = $var6;
                                                        $var7$index = $rt_s(2159).$nativeString !== $var6.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var7$index) {
                                                        $var7$index = 0;
                                                        break bd;
                                                    }
                                                }
                                                $var7$index = 1;
                                            }
                                            if ($var7$index)
                                                break;
                                        }
                                        $var4 = $var4.$next3;
                                    }
                                }
                                $var3 = ($var4 === null ? null : $var4.$value0).$data;
                            }
                            $var4 = $this.$worldObj;
                            $ptr = 3;
                            continue main;
                        }
                    }
                }
                $var7$index_0 = 0;
                $var7$index = 1;
                $ptr = 1;
                continue main;
            }
        }
        $this.$field_110170_bx = null;
        return;
    case 1:
        nms_EntityLiving_clearLeashed($this, $var7$index_0, $var7$index);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_110170_bx = null;
        return;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var4, $var6, var$7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7$index = 0;
        $var3 = $var6.$modCount;
        $var2 = $var6.$size();
        be: {
            while (true) {
                if (!($var7$index >= $var2 ? 0 : 1))
                    break be;
                if ($var3 < $var6.$modCount) {
                    $var4 = new ju_ConcurrentModificationException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
                $var7$index_0 = $var7$index + 1 | 0;
                $var8 = $var6.$get($var7$index);
                var$7 = $var8.$entityUniqueID;
                if (null !== $var5 && $var5 instanceof nle_ProfileUUID) {
                    $var4 = $var5;
                    $var7$index = Long_eq(var$7.$mostSigBits, $var4.$mostSigBits) && Long_eq(var$7.$leastSigBits, $var4.$leastSigBits) ? 1 : 0;
                } else
                    $var7$index = 0;
                if ($var7$index)
                    break;
                $var7$index = $var7$index_0;
            }
            $this.$leashedToEntity = $var8;
        }
        $this.$field_110170_bx = null;
        return;
    case 3:
        $tmp = nms_EntityLeashKnot_getKnotForBlock($var4, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 !== null) {
            $this.$leashedToEntity = $var4;
            $this.$field_110170_bx = null;
            return;
        }
        $var5 = $this.$worldObj;
        $var4 = new nms_EntityLeashKnot;
        nms_Entity__init_($var4, $var5);
        $var4.$yOffset = 0.0;
        var$21 = 0.5;
        var$22 = 0.5;
        $ptr = 4;
    case 4:
        nms_Entity_setSize($var4, var$21, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $var4.$xPosition1 = $var1;
        $var4.$yPosition0 = $var2;
        $var4.$zPosition1 = $var3;
        nms_Entity_setPosition($var4, $var1 + 0.5, $var2 + 0.5, $var3 + 0.5);
        $var4.$forceSpawn = 1;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($var5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$leashedToEntity = $var4;
        $this.$field_110170_bx = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, $var7$index, var$3, $var6, $var7$index_0, $var5, var$7, $var3, var$9, var$10, $var8, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var1, $var2, var$21, var$22, $ptr);
};
function nms_EntityCreature() {
    let a = this; nms_EntityLiving.call(a);
    a.$pathToEntity = null;
    a.$entityToAttack = null;
    a.$hasAttacked = 0;
    a.$fleeingTick = 0;
    a.$homePosition = null;
    a.$maximumHomeDistance = 0.0;
    a.$field_110178_bs = null;
    a.$field_110180_bt = 0;
}
let nms_EntityCreature_field_110179_h = null,
nms_EntityCreature_field_110181_i = null,
nms_EntityCreature_$callClinit = () => {
    nms_EntityCreature_$callClinit = $rt_eraseClinit(nms_EntityCreature);
    nms_EntityCreature__clinit_();
},
nms_EntityCreature_isMovementCeased = $this => {
    return 0;
},
nms_EntityCreature_updateEntityActionState = $this => {
    let $var3, $var5, var$3, var$4, var$5, var$6, $var21, $var14, $var15, $var20, var$11, var$12, var$13, $var6, $var22, var$16, $var12, $var16, $var18, $var8, $var10, var$22, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$22 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var12 = $thread.pop();var$16 = $thread.pop();$var22 = $thread.pop();$var6 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var20 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var21 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var5 =
        $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$fleeingTick;
        if ($var3 > 0) {
            $var3 = $var3 - 1 | 0;
            $this.$fleeingTick = $var3;
            if (!$var3) {
                $var5 = nms_SharedMonsterAttributes_movementSpeed;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$3 = $this.$attributeMap.$attributes;
                if ($var5 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    a: {
                        var$4 = $var5.$field_111115_a;
                        if (!var$4.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$4.$nativeString.length)
                                    break a;
                                var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$5 = var$4.$hashCode1;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            var$4 = var$3.$key;
                            if ($var5 !== var$4 && !jl_Object_equals($var5, var$4) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$3 = var$3 === null ? null : var$3.$value0;
                nms_EntityCreature_$callClinit();
                nms_ModifiableAttributeInstance_removeModifier(var$3, nms_EntityCreature_field_110181_i);
            }
        }
        $this.$hasAttacked = 0;
        $var21 = 16.0;
        $var5 = $this.$entityToAttack;
        if ($var5 === null) {
            $ptr = 1;
            continue main;
        }
        if ($var5.$isEntityAlive()) {
            $var5 = $this.$entityToAttack;
            $var14 = $var5.$posX - $this.$posX;
            $var15 = $var5.$posY - $this.$posY;
            $var20 = $var5.$posZ - $this.$posZ;
            $var14 = jl_Math_sqrt($var14 * $var14 + $var15 * $var15 + $var20 * $var20);
            $var5 = $this.$entityToAttack;
            $ptr = 2;
            continue main;
        }
        $this.$entityToAttack = null;
        b: {
            $var3 = $this.$hasAttacked;
            if (!$var3) {
                $var5 = $this.$entityToAttack;
                if ($var5 !== null) {
                    if ($this.$pathToEntity === null)
                        break b;
                    var$3 = $this.$rand;
                    var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$13 = var$12 % 20 | 0;
                        if (((var$12 - var$13 | 0) + 19 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$11;
                        var$12 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$13)
                        break b;
                }
            }
            c: {
                if (!$var3) {
                    d: {
                        if ($this.$pathToEntity === null) {
                            $var5 = $this.$rand;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                            while (true) {
                                var$12 = var$5 % 180 | 0;
                                if (((var$5 - var$12 | 0) + 179 | 0) >= 0)
                                    break;
                                var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var5.$seed = var$11;
                                var$5 = Long_lo(Long_shru(var$11, 17));
                            }
                            if (!var$12)
                                break d;
                        }
                        $var5 = $this.$rand;
                        var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$11;
                        var$5 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$12 = var$5 % 120 | 0;
                            if (((var$5 - var$12 | 0) + 119 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                        }
                        if (var$12 && $this.$fleeingTick <= 0)
                            break c;
                    }
                    if ($this.$entityAge < 100) {
                        $ptr = 9;
                        continue main;
                    }
                }
            }
            $var6 = $this.$boundingBox0.$minY0 + 0.5;
            $var22 = $var6 | 0;
            if ($var6 < $var22)
                $var22 = $var22 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$worldObj;
        $var3 = 1;
        var$16 = 0;
        var$5 = 0;
        var$12 = 1;
        $ptr = 5;
        continue main;
    case 1:
        $tmp = $this.$findPlayerToAttack();
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $this.$entityToAttack = $var5;
        if ($var5 !== null) {
            var$3 = $this.$worldObj;
            $var3 = 1;
            var$16 = 0;
            var$5 = 0;
            var$12 = 1;
            $ptr = 3;
            continue main;
        }
        e: {
            $var3 = $this.$hasAttacked;
            if (!$var3) {
                $var5 = $this.$entityToAttack;
                if ($var5 !== null) {
                    if ($this.$pathToEntity === null)
                        break e;
                    var$3 = $this.$rand;
                    var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$13 = var$12 % 20 | 0;
                        if (((var$12 - var$13 | 0) + 19 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$11;
                        var$12 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$13)
                        break e;
                }
            }
            f: {
                if (!$var3) {
                    a: {
                        if ($this.$pathToEntity === null) {
                            $var5 = $this.$rand;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                            while (true) {
                                var$12 = var$5 % 180 | 0;
                                if (((var$5 - var$12 | 0) + 179 | 0) >= 0)
                                    break;
                                var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var5.$seed = var$11;
                                var$5 = Long_lo(Long_shru(var$11, 17));
                            }
                            if (!var$12)
                                break a;
                        }
                        $var5 = $this.$rand;
                        var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$11;
                        var$5 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$12 = var$5 % 120 | 0;
                            if (((var$5 - var$12 | 0) + 119 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                        }
                        if (var$12 && $this.$fleeingTick <= 0)
                            break f;
                    }
                    if ($this.$entityAge < 100) {
                        $ptr = 9;
                        continue main;
                    }
                }
            }
            $var6 = $this.$boundingBox0.$minY0 + 0.5;
            $var22 = $var6 | 0;
            if ($var6 < $var22)
                $var22 = $var22 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$worldObj;
        $var3 = 1;
        var$16 = 0;
        var$5 = 0;
        var$12 = 1;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($this, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3) {
            $var5 = $this.$entityToAttack;
            $ptr = 4;
            continue main;
        }
        e: {
            $var3 = $this.$hasAttacked;
            if (!$var3) {
                $var5 = $this.$entityToAttack;
                if ($var5 !== null) {
                    if ($this.$pathToEntity === null)
                        break e;
                    var$3 = $this.$rand;
                    var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$13 = var$12 % 20 | 0;
                        if (((var$12 - var$13 | 0) + 19 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$11;
                        var$12 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$13)
                        break e;
                }
            }
            f: {
                if (!$var3) {
                    a: {
                        if ($this.$pathToEntity === null) {
                            $var5 = $this.$rand;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                            while (true) {
                                var$12 = var$5 % 180 | 0;
                                if (((var$5 - var$12 | 0) + 179 | 0) >= 0)
                                    break;
                                var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var5.$seed = var$11;
                                var$5 = Long_lo(Long_shru(var$11, 17));
                            }
                            if (!var$12)
                                break a;
                        }
                        $var5 = $this.$rand;
                        var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$11;
                        var$5 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$12 = var$5 % 120 | 0;
                            if (((var$5 - var$12 | 0) + 119 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                        }
                        if (var$12 && $this.$fleeingTick <= 0)
                            break f;
                    }
                    if ($this.$entityAge < 100) {
                        $ptr = 9;
                        continue main;
                    }
                }
            }
            $var6 = $this.$boundingBox0.$minY0 + 0.5;
            $var22 = $var6 | 0;
            if ($var6 < $var22)
                $var22 = $var22 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$worldObj;
        $var3 = 1;
        var$16 = 0;
        var$5 = 0;
        var$12 = 1;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$3, $this, $var5, $var21, $var3, var$16, var$5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $this.$pathToEntity = $var5;
        g: {
            $var3 = $this.$hasAttacked;
            if (!$var3) {
                $var5 = $this.$entityToAttack;
                if ($var5 !== null) {
                    if ($this.$pathToEntity === null)
                        break g;
                    var$3 = $this.$rand;
                    var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$13 = var$12 % 20 | 0;
                        if (((var$12 - var$13 | 0) + 19 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$11;
                        var$12 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$13)
                        break g;
                }
            }
            h: {
                if (!$var3) {
                    f: {
                        if ($this.$pathToEntity === null) {
                            $var5 = $this.$rand;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                            while (true) {
                                var$12 = var$5 % 180 | 0;
                                if (((var$5 - var$12 | 0) + 179 | 0) >= 0)
                                    break;
                                var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var5.$seed = var$11;
                                var$5 = Long_lo(Long_shru(var$11, 17));
                            }
                            if (!var$12)
                                break f;
                        }
                        $var5 = $this.$rand;
                        var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$11;
                        var$5 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$12 = var$5 % 120 | 0;
                            if (((var$5 - var$12 | 0) + 119 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                        }
                        if (var$12 && $this.$fleeingTick <= 0)
                            break h;
                    }
                    if ($this.$entityAge < 100) {
                        $ptr = 9;
                        continue main;
                    }
                }
            }
            $var6 = $this.$boundingBox0.$minY0 + 0.5;
            $var22 = $var6 | 0;
            if ($var6 < $var22)
                $var22 = $var22 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$worldObj;
        $var3 = 1;
        var$16 = 0;
        var$5 = 0;
        var$12 = 1;
        $ptr = 5;
        continue main;
    case 4:
        $this.$attackEntity($var5, $var14);
        if ($rt_suspending()) {
            break main;
        }
        g: {
            $var3 = $this.$hasAttacked;
            if (!$var3) {
                $var5 = $this.$entityToAttack;
                if ($var5 !== null) {
                    if ($this.$pathToEntity === null)
                        break g;
                    var$3 = $this.$rand;
                    var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$13 = var$12 % 20 | 0;
                        if (((var$12 - var$13 | 0) + 19 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$11;
                        var$12 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$13)
                        break g;
                }
            }
            h: {
                if (!$var3) {
                    f: {
                        if ($this.$pathToEntity === null) {
                            $var5 = $this.$rand;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                            while (true) {
                                var$12 = var$5 % 180 | 0;
                                if (((var$5 - var$12 | 0) + 179 | 0) >= 0)
                                    break;
                                var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var5.$seed = var$11;
                                var$5 = Long_lo(Long_shru(var$11, 17));
                            }
                            if (!var$12)
                                break f;
                        }
                        $var5 = $this.$rand;
                        var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$11;
                        var$5 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$12 = var$5 % 120 | 0;
                            if (((var$5 - var$12 | 0) + 119 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$11;
                            var$5 = Long_lo(Long_shru(var$11, 17));
                        }
                        if (var$12 && $this.$fleeingTick <= 0)
                            break h;
                    }
                    if ($this.$entityAge < 100) {
                        $ptr = 9;
                        continue main;
                    }
                }
            }
            $var6 = $this.$boundingBox0.$minY0 + 0.5;
            $var22 = $var6 | 0;
            if ($var6 < $var22)
                $var22 = $var22 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        var$3 = $this.$worldObj;
        $var3 = 1;
        var$16 = 0;
        var$5 = 0;
        var$12 = 1;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getPathEntityToEntity(var$3, $this, $var5, $var21, $var3, var$16, var$5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $this.$pathToEntity = $var5;
        $var6 = $this.$boundingBox0.$minY0 + 0.5;
        $var22 = $var6 | 0;
        if ($var6 < $var22)
            $var22 = $var22 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = $this.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var5 = $this.$worldObj;
        var$3 = $this.$boundingBox0;
        $var12 = var$3.$minX0 + 0.10000000149011612;
        $var16 = var$3.$minY0 + 0.4000000059604645;
        $var18 = var$3.$minZ0 + 0.10000000149011612;
        $var6 = var$3.$maxX0 + (-0.10000000149011612);
        $var8 = var$3.$maxY + (-0.4000000059604645);
        $var10 = var$3.$maxZ0 + (-0.10000000149011612);
        var$22 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$16 = var$22.$nextPoolIndex;
        var$3 = var$22.$listAABB;
        var$12 = var$3.$size0;
        var$5 = $rt_compare(var$16, var$12);
        if (var$5 >= 0) {
            var$4 = new nms_AxisAlignedBB;
            var$4.$minX0 = $var12;
            var$4.$minY0 = $var16;
            var$4.$minZ0 = $var18;
            var$4.$maxX0 = $var6;
            var$4.$maxY = $var8;
            var$4.$maxZ0 = $var10;
            ju_ArrayList_ensureCapacity(var$3, var$12 + 1 | 0);
            var$6 = var$3.$array.data;
            var$5 = var$3.$size0;
            var$3.$size0 = var$5 + 1 | 0;
            var$6[var$5] = var$4;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        } else if (var$16 >= 0 && var$5 < 0) {
            var$4 = var$3.$array.data[var$16];
            var$4.$minX0 = $var12;
            var$4.$minY0 = $var16;
            var$4.$minZ0 = $var18;
            var$4.$maxX0 = $var6;
            var$4.$maxY = $var8;
            var$4.$maxZ0 = $var10;
        } else {
            $var5 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($var5);
            $rt_throw($var5);
        }
        var$22.$nextPoolIndex = var$22.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$3 = nms_Material_lava;
        $ptr = 7;
    case 7:
        $tmp = nms_World_isMaterialInBB($var5, var$4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $this.$rotationPitch = 0.0;
        $var5 = $this.$pathToEntity;
        if ($var5 !== null) {
            var$3 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$11;
            var$5 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$12 = var$5 % 100 | 0;
                if (((var$5 - var$12 | 0) + 99 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$11;
                var$5 = Long_lo(Long_shru(var$11, 17));
            }
            if (var$12) {
                $var5 = nms_PathEntity_getVectorFromIndex($var5, $this, $var5.$currentPathIndex);
                $var6 = $this.$width * 2.0;
                $var10 = $var6 * $var6;
                while ($var5 !== null) {
                    $var6 = $this.$posX;
                    $var8 = $var5.$yCoord;
                    $var12 = $this.$posZ;
                    $var6 = $var6 - $var5.$xCoord;
                    $var16 = $var8 - $var8;
                    $var8 = $var12 - $var5.$zCoord;
                    if ($var6 * $var6 + $var16 * $var16 + $var8 * $var8 >= $var10)
                        break;
                    $var5 = $this.$pathToEntity;
                    var$5 = $var5.$currentPathIndex + 1 | 0;
                    $var5.$currentPathIndex = var$5;
                    if (!(var$5 < $var5.$pathLength ? 0 : 1)) {
                        $var5 = nms_PathEntity_getVectorFromIndex($var5, $this, var$5);
                        continue;
                    }
                    $var5 = null;
                    $this.$pathToEntity = null;
                }
                $this.$isJumping = 0;
                if ($var5 !== null) {
                    $var8 = $var5.$xCoord - $this.$posX;
                    $var10 = $var5.$zCoord - $this.$posZ;
                    $var12 = $var5.$yCoord - $var22;
                    $var15 = (jl_Math_atan2($var10, $var8) * 180.0 / 3.141592653589793 - 90.0 - $this.$rotationYaw) % 360.0;
                    if ($var15 >= 180.0)
                        $var15 = $var15 - 360.0;
                    if ($var15 < (-180.0))
                        $var15 = $var15 + 360.0;
                    var$3 = nms_SharedMonsterAttributes_movementSpeed;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    var$4 = $this.$attributeMap.$attributes;
                    if (var$3 === null) {
                        $var5 = var$4.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    } else {
                        i: {
                            $var5 = var$3.$field_111115_a;
                            if (!$var5.$hashCode1) {
                                var$16 = 0;
                                while (true) {
                                    if (var$16 >= $var5.$nativeString.length)
                                        break i;
                                    $var5.$hashCode1 = (31 * $var5.$hashCode1 | 0) + $var5.$nativeString.charCodeAt(var$16) | 0;
                                    var$16 = var$16 + 1 | 0;
                                }
                            }
                        }
                        var$16 = $var5.$hashCode1;
                        var$6 = var$4.$elementData.data;
                        $var5 = var$6[var$16 & (var$6.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == var$16) {
                                var$4 = $var5.$key;
                                if (var$3 !== var$4 && !jl_Object_equals(var$3, var$4) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    }
                    $var5 = $var5 === null ? null : $var5.$value0;
                    if ($var5.$field_111133_g) {
                        $var5.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var5);
                        $var5.$field_111133_g = 0;
                    }
                    $this.$moveForward = $var5.$field_111139_h;
                    if ($var15 > 30.0)
                        $var15 = 30.0;
                    if ($var15 < (-30.0))
                        $var15 = (-30.0);
                    $var20 = $this.$rotationYaw + $var15;
                    $this.$rotationYaw = $var20;
                    if ($this.$hasAttacked) {
                        $var5 = $this.$entityToAttack;
                        if ($var5 !== null) {
                            $var16 = $var5.$posX - $this.$posX;
                            $var21 = jl_Math_atan2($var5.$posZ - $this.$posZ, $var16) * 180.0 / 3.141592653589793 - 90.0;
                            $this.$rotationYaw = $var21;
                            $var21 = ($var20 - $var21 + 90.0) * 3.1415927410125732 / 180.0;
                            var$6 = nms_MathHelper_SIN_TABLE.data;
                            $var20 = $var21 * 10430.3779296875;
                            $var21 =  -var$6[($var20 | 0) & 65535];
                            $var14 = $this.$moveForward;
                            $this.$moveStrafing = $var21 * $var14 * 1.0;
                            $this.$moveForward = var$6[($var20 + 16384.0 | 0) & 65535] * $var14 * 1.0;
                        }
                    }
                    if ($var12 > 0.0)
                        $this.$isJumping = 1;
                }
                $var5 = $this.$entityToAttack;
                if ($var5 !== null)
                    nms_EntityLiving_faceEntity($this, $var5, 30.0, 30.0);
                if ($this.$isCollidedHorizontally && !($this.$pathToEntity === null ? 0 : 1))
                    $this.$isJumping = 1;
                $var5 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$11;
                if (Long_lo(Long_shru(var$11, 24)) / 1.6777216E7 < 0.800000011920929 && !(!$var3 && !$var4))
                    $this.$isJumping = 1;
                return;
            }
        }
        $ptr = 8;
    case 8:
        nms_EntityLiving_updateEntityActionState($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$pathToEntity = null;
        return;
    case 9:
        nms_EntityCreature_updateWanderPath($this);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$boundingBox0.$minY0 + 0.5;
        $var22 = $var6 | 0;
        if ($var6 < $var22)
            $var22 = $var22 - 1 | 0;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var5, var$3, var$4, var$5, var$6, $var21, $var14, $var15, $var20, var$11, var$12, var$13, $var6, $var22, var$16, $var12, $var16, $var18, $var8, $var10, var$22, $var4, $ptr);
},
nms_EntityCreature_updateWanderPath = $this => {
    let $var1, $var2, $var3, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var9, $var8, $var7, var$17, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();var$17 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        $var2 = (-1);
        $var3 = (-1);
        $var4 = (-1);
        $var5 = (-99999.0);
        $var6 = 0;
        var$7 = 17;
        var$8 = 12;
        var$9 = 6;
        if ($var6 >= 10) {
            if (!$var1)
                return;
            var$10 = $this.$worldObj;
            $var5 = 10.0;
            $var1 = 1;
            var$11 = 0;
            var$7 = 0;
            $var6 = 1;
            $ptr = 1;
            continue main;
        }
        var$12 = $this.$posX;
        var$10 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$7));
        while (true) {
            $var8 = $var9 % 13 | 0;
            if ((($var9 - $var8 | 0) + var$8 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$7));
        }
        var$12 = var$12 + $var8 - 6.0;
        $var7 = var$12 | 0;
        if (var$12 < $var7)
            $var7 = $var7 - 1 | 0;
        var$12 = $this.$posY;
        var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$7));
        while (true) {
            $var8 = $var9 % 7 | 0;
            if ((($var9 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$7));
        }
        var$17 = var$12 + $var8 - 3.0;
        $var8 = var$17 | 0;
        if (var$17 < $var8)
            $var8 = $var8 - 1 | 0;
        var$12 = $this.$posZ;
        var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$13;
        var$11 = Long_lo(Long_shru(var$13, var$7));
        while (true) {
            $var9 = var$11 % 13 | 0;
            if (((var$11 - $var9 | 0) + var$8 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$13;
            var$11 = Long_lo(Long_shru(var$13, var$7));
        }
        var$17 = var$12 + $var9 - 6.0;
        $var9 = var$17 | 0;
        if (var$17 < $var9)
            $var9 = $var9 - 1 | 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_getEntityPathToXYZ(var$10, $this, $var2, $var3, $var4, $var5, $var1, var$11, var$7, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        $this.$pathToEntity = var$10;
        return;
    case 2:
        $tmp = $this.$getBlockPathWeight($var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 > $var5) {
            $var1 = 1;
            $var5 = $var10;
            $var2 = $var7;
            $var3 = $var8;
            $var4 = $var9;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10) {
            if (!$var1)
                return;
            var$10 = $this.$worldObj;
            $var5 = 10.0;
            $var1 = 1;
            var$11 = 0;
            var$7 = 0;
            $var6 = 1;
            $ptr = 1;
            continue main;
        }
        var$12 = $this.$posX;
        var$10 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$7));
        while (true) {
            $var8 = $var9 % 13 | 0;
            if ((($var9 - $var8 | 0) + var$8 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$7));
        }
        var$12 = var$12 + $var8 - 6.0;
        $var7 = var$12 | 0;
        if (var$12 < $var7)
            $var7 = $var7 - 1 | 0;
        var$12 = $this.$posY;
        var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$13;
        $var9 = Long_lo(Long_shru(var$13, var$7));
        while (true) {
            $var8 = $var9 % 7 | 0;
            if ((($var9 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$13;
            $var9 = Long_lo(Long_shru(var$13, var$7));
        }
        var$17 = var$12 + $var8 - 3.0;
        $var8 = var$17 | 0;
        if (var$17 < $var8)
            $var8 = $var8 - 1 | 0;
        var$12 = $this.$posZ;
        var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$10.$seed = var$13;
        var$11 = Long_lo(Long_shru(var$13, var$7));
        while (true) {
            $var9 = var$11 % 13 | 0;
            if (((var$11 - $var9 | 0) + var$8 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$10.$seed = var$13;
            var$11 = Long_lo(Long_shru(var$13, var$7));
        }
        var$17 = var$12 + $var9 - 6.0;
        $var9 = var$17 | 0;
        if (var$17 < $var9)
            $var9 = $var9 - 1 | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var3, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var9, $var8, $var7, var$17, $var10, $ptr);
},
nms_EntityCreature_attackEntity = ($this, $par1Entity, $par2) => {
    return;
},
nms_EntityCreature_getBlockPathWeight = ($this, $par1, $par2, $par3) => {
    return 0.0;
},
nms_EntityCreature_findPlayerToAttack = $this => {
    return null;
},
nms_EntityCreature_getCanSpawnHere = $this => {
    let var$1, $var1, $var2, $var3, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$posX;
        $var1 = var$1 | 0;
        if (var$1 < $var1)
            $var1 = $var1 - 1 | 0;
        var$1 = $this.$boundingBox0.$minY0;
        $var2 = var$1 | 0;
        if (var$1 < $var2)
            $var2 = $var2 - 1 | 0;
        var$1 = $this.$posZ;
        $var3 = var$1 | 0;
        if (var$1 < $var3)
            $var3 = $var3 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLiving_getCanSpawnHere($this);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = $this.$getBlockPathWeight($var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return var$6 < 0.0 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, $var3, var$5, var$6, $ptr);
},
nms_EntityCreature_hasPath = $this => {
    return $this.$pathToEntity === null ? 0 : 1;
},
nms_EntityCreature_getEntityToAttack = $this => {
    return $this.$entityToAttack;
},
nms_EntityCreature_func_110173_bK = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$posX;
    var$2 = var$1 | 0;
    if (var$1 < var$2)
        var$2 = var$2 - 1 | 0;
    var$1 = $this.$posY;
    var$3 = var$1 | 0;
    if (var$1 < var$3)
        var$3 = var$3 - 1 | 0;
    var$1 = $this.$posZ;
    var$4 = var$1 | 0;
    if (var$1 < var$4)
        var$4 = var$4 - 1 | 0;
    return nms_EntityCreature_func_110176_b($this, var$2, var$3, var$4);
},
nms_EntityCreature_func_110176_b = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, var$8;
    var$4 = $this.$maximumHomeDistance;
    if (var$4 === (-1.0))
        $par1 = 1;
    else {
        var$5 = $this.$homePosition;
        var$6 = var$5.$posX0 - $par1 | 0;
        var$7 = var$5.$posY0 - $par2 | 0;
        var$8 = var$5.$posZ0 - $par3 | 0;
        $par1 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 >= var$4 * var$4 ? 0 : 1;
    }
    return $par1;
},
nms_EntityCreature_setHomeArea = ($this, $par1, $par2, $par3, $par4) => {
    let var$5;
    var$5 = $this.$homePosition;
    var$5.$posX0 = $par1;
    var$5.$posY0 = $par2;
    var$5.$posZ0 = $par3;
    $this.$maximumHomeDistance = $par4;
},
nms_EntityCreature_getHomePosition = $this => {
    return $this.$homePosition;
},
nms_EntityCreature_func_110174_bM = $this => {
    return $this.$maximumHomeDistance;
},
nms_EntityCreature_detachHome = $this => {
    $this.$maximumHomeDistance = (-1.0);
},
nms_EntityCreature_hasHome = $this => {
    return $this.$maximumHomeDistance === (-1.0) ? 0 : 1;
},
nms_EntityCreature_func_110159_bB = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var3, $var7, $var5, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_110170_bx !== null) {
            $ptr = 1;
            continue main;
        }
        a: {
            if ($this.$isLeashed) {
                var$1 = $this.$leashedToEntity;
                if (var$1 === null)
                    break a;
                if (var$1.$isDead)
                    break a;
            }
            b: {
                c: {
                    var$2 = $this.$isLeashed;
                    if (var$2) {
                        var$3 = $this.$leashedToEntity;
                        if (var$3 !== null && var$3.$worldObj === $this.$worldObj)
                            break c;
                    }
                    if (var$2)
                        break b;
                    if (!$this.$field_110180_bt)
                        break b;
                    $this.$field_110180_bt = 0;
                    var$1 = $this.$tasks0;
                    var$4 = $this.$field_110178_bs;
                    var$5 = var$1.$taskEntries;
                    var$6 = new ju_AbstractList$1;
                    var$6.$this$00 = var$5;
                    var$6.$modCount0 = var$5.$modCount;
                    var$6.$size3 = var$5.$size();
                    var$6.$removeIndex = (-1);
                    var$7 = 0;
                    while (true) {
                        var$2 = var$6.$index;
                        if (!(var$2 >= var$6.$size3 ? 0 : 1))
                            break;
                        var$8 = var$6.$modCount0;
                        var$5 = var$6.$this$00;
                        if (var$8 < var$5.$modCount) {
                            var$1 = new ju_ConcurrentModificationException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            $rt_throw(var$1);
                        }
                        var$6.$removeIndex = var$2;
                        var$6.$index = var$2 + 1 | 0;
                        var$5 = var$5.$get(var$2);
                        var$3 = var$5.$action;
                        if (var$3 === var$4) {
                            var$9 = var$1.$executingTaskEntries;
                            var$10 = var$9.$modCount;
                            var$11 = var$9.$size();
                            var$12 = var$7;
                            d: {
                                while (true) {
                                    if (!(var$12 >= var$11 ? 0 : 1)) {
                                        var$2 = 0;
                                        break d;
                                    }
                                    if (var$10 < var$9.$modCount) {
                                        var$1 = new ju_ConcurrentModificationException;
                                        var$1.$suppressionEnabled = 1;
                                        var$1.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace(var$1);
                                        $rt_throw(var$1);
                                    }
                                    var$8 = var$12 + 1 | 0;
                                    var$13 = var$9.$get(var$12);
                                    if (var$13 === var$5 ? 1 : var$13 !== null ? var$13.$equals(var$5) : var$5 !== null ? 0 : 1)
                                        break;
                                    var$12 = var$8;
                                }
                                var$2 = 1;
                            }
                            if (var$2) {
                                $ptr = 9;
                                continue main;
                            }
                            ju_AbstractList$1_remove(var$6);
                        }
                    }
                    $this.$navigator.$avoidsWater = 1;
                    $this.$maximumHomeDistance = (-1.0);
                    break b;
                }
                $var3 = var$3.$posX;
                var$2 = $var3 | 0;
                $var7 = var$3.$posY;
                var$8 = $var7 | 0;
                $var5 = var$3.$posZ;
                var$10 = $var5 | 0;
                var$1 = $this.$homePosition;
                var$1.$posX0 = var$2;
                var$1.$posY0 = var$8;
                var$1.$posZ0 = var$10;
                $this.$maximumHomeDistance = 5.0;
                var$17 = $this.$posX - $var3;
                var$18 = $this.$posY - $var7;
                var$19 = $this.$posZ - $var5;
                var$18 = jl_Math_sqrt(var$17 * var$17 + var$18 * var$18 + var$19 * var$19);
                if ($this instanceof nms_EntityTameable && nms_EntityTameable_isSitting($this)) {
                    if (var$18 <= 10.0)
                        return;
                    var$2 = 1;
                    var$8 = 1;
                    $ptr = 3;
                    continue main;
                }
                if (!$this.$field_110180_bt) {
                    var$1 = $this.$tasks0;
                    var$4 = $this.$field_110178_bs;
                    var$6 = var$1.$taskEntries;
                    var$5 = new nms_EntityAITaskEntry;
                    var$5.$tasks = var$1;
                    var$5.$priority = 2;
                    var$5.$action = var$4;
                    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                    var$20 = var$6.$array.data;
                    var$8 = var$6.$size0;
                    var$6.$size0 = var$8 + 1 | 0;
                    var$20[var$8] = var$5;
                    var$6.$modCount = var$6.$modCount + 1 | 0;
                    $this.$navigator.$avoidsWater = 0;
                    $this.$field_110180_bt = 1;
                }
                $this.$func_142017_o(var$18);
                if (var$18 > 4.0) {
                    var$6 = $this.$navigator;
                    $var3 = 1.0;
                    var$1 = var$6.$theEntity;
                    if (var$1.$onGround)
                        var$2 = 1;
                    else {
                        if (var$6.$canSwim) {
                            $ptr = 5;
                            continue main;
                        }
                        var$2 = 0;
                    }
                    if (var$2) {
                        var$1 = var$6.$worldObj3;
                        var$4 = var$6.$theEntity;
                        var$5 = var$6.$pathSearchRange;
                        if (var$5.$field_111133_g) {
                            var$5.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$5);
                            var$5.$field_111133_g = 0;
                        }
                        var$17 = var$5.$field_111139_h;
                        var$2 = var$6.$canPassOpenWoodenDoors;
                        var$8 = var$6.$canPassClosedWoodenDoors;
                        var$10 = var$6.$avoidsWater;
                        var$11 = var$6.$canSwim;
                        $ptr = 7;
                        continue main;
                    }
                    var$1 = null;
                    if (var$1 !== null) {
                        $ptr = 8;
                        continue main;
                    }
                }
                if (var$18 > 6.0) {
                    $var3 = var$3.$posX - $this.$posX;
                    $var7 = var$18;
                    $var3 = $var3 / $var7;
                    $var5 = (var$3.$posY - $this.$posY) / $var7;
                    $var7 = (var$3.$posZ - $this.$posZ) / $var7;
                    $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
                    $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
                    $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
                }
                if (var$18 > 10.0) {
                    var$2 = 1;
                    var$8 = 1;
                    $ptr = 4;
                    continue main;
                }
            }
            return;
        }
        var$2 = 1;
        var$8 = 1;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityLiving_recreateLeash($this);
        if ($rt_suspending()) {
            break main;
        }
        e: {
            if ($this.$isLeashed) {
                var$1 = $this.$leashedToEntity;
                if (var$1 === null)
                    break e;
                if (var$1.$isDead)
                    break e;
            }
            f: {
                b: {
                    var$2 = $this.$isLeashed;
                    if (var$2) {
                        var$3 = $this.$leashedToEntity;
                        if (var$3 !== null && var$3.$worldObj === $this.$worldObj)
                            break b;
                    }
                    if (var$2)
                        break f;
                    if (!$this.$field_110180_bt)
                        break f;
                    $this.$field_110180_bt = 0;
                    var$1 = $this.$tasks0;
                    var$4 = $this.$field_110178_bs;
                    var$5 = var$1.$taskEntries;
                    var$6 = new ju_AbstractList$1;
                    var$6.$this$00 = var$5;
                    var$6.$modCount0 = var$5.$modCount;
                    var$6.$size3 = var$5.$size();
                    var$6.$removeIndex = (-1);
                    var$7 = 0;
                    while (true) {
                        var$2 = var$6.$index;
                        if (!(var$2 >= var$6.$size3 ? 0 : 1))
                            break;
                        var$8 = var$6.$modCount0;
                        var$5 = var$6.$this$00;
                        if (var$8 < var$5.$modCount) {
                            var$1 = new ju_ConcurrentModificationException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            $rt_throw(var$1);
                        }
                        var$6.$removeIndex = var$2;
                        var$6.$index = var$2 + 1 | 0;
                        var$5 = var$5.$get(var$2);
                        var$3 = var$5.$action;
                        if (var$3 === var$4) {
                            var$9 = var$1.$executingTaskEntries;
                            var$10 = var$9.$modCount;
                            var$11 = var$9.$size();
                            var$12 = var$7;
                            g: {
                                while (true) {
                                    if (!(var$12 >= var$11 ? 0 : 1)) {
                                        var$2 = 0;
                                        break g;
                                    }
                                    if (var$10 < var$9.$modCount) {
                                        var$1 = new ju_ConcurrentModificationException;
                                        var$1.$suppressionEnabled = 1;
                                        var$1.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace(var$1);
                                        $rt_throw(var$1);
                                    }
                                    var$8 = var$12 + 1 | 0;
                                    var$13 = var$9.$get(var$12);
                                    if (var$13 === var$5 ? 1 : var$13 !== null ? var$13.$equals(var$5) : var$5 !== null ? 0 : 1)
                                        break;
                                    var$12 = var$8;
                                }
                                var$2 = 1;
                            }
                            if (var$2) {
                                $ptr = 9;
                                continue main;
                            }
                            ju_AbstractList$1_remove(var$6);
                        }
                    }
                    $this.$navigator.$avoidsWater = 1;
                    $this.$maximumHomeDistance = (-1.0);
                    break f;
                }
                $var3 = var$3.$posX;
                var$2 = $var3 | 0;
                $var7 = var$3.$posY;
                var$8 = $var7 | 0;
                $var5 = var$3.$posZ;
                var$10 = $var5 | 0;
                var$1 = $this.$homePosition;
                var$1.$posX0 = var$2;
                var$1.$posY0 = var$8;
                var$1.$posZ0 = var$10;
                $this.$maximumHomeDistance = 5.0;
                var$17 = $this.$posX - $var3;
                var$18 = $this.$posY - $var7;
                var$19 = $this.$posZ - $var5;
                var$18 = jl_Math_sqrt(var$17 * var$17 + var$18 * var$18 + var$19 * var$19);
                if ($this instanceof nms_EntityTameable && nms_EntityTameable_isSitting($this)) {
                    if (var$18 <= 10.0)
                        return;
                    var$2 = 1;
                    var$8 = 1;
                    $ptr = 3;
                    continue main;
                }
                if (!$this.$field_110180_bt) {
                    var$1 = $this.$tasks0;
                    var$4 = $this.$field_110178_bs;
                    var$6 = var$1.$taskEntries;
                    var$5 = new nms_EntityAITaskEntry;
                    var$5.$tasks = var$1;
                    var$5.$priority = 2;
                    var$5.$action = var$4;
                    ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                    var$20 = var$6.$array.data;
                    var$8 = var$6.$size0;
                    var$6.$size0 = var$8 + 1 | 0;
                    var$20[var$8] = var$5;
                    var$6.$modCount = var$6.$modCount + 1 | 0;
                    $this.$navigator.$avoidsWater = 0;
                    $this.$field_110180_bt = 1;
                }
                $this.$func_142017_o(var$18);
                if (var$18 > 4.0) {
                    var$6 = $this.$navigator;
                    $var3 = 1.0;
                    var$1 = var$6.$theEntity;
                    if (var$1.$onGround)
                        var$2 = 1;
                    else {
                        if (var$6.$canSwim) {
                            $ptr = 5;
                            continue main;
                        }
                        var$2 = 0;
                    }
                    if (var$2) {
                        var$1 = var$6.$worldObj3;
                        var$4 = var$6.$theEntity;
                        var$5 = var$6.$pathSearchRange;
                        if (var$5.$field_111133_g) {
                            var$5.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$5);
                            var$5.$field_111133_g = 0;
                        }
                        var$17 = var$5.$field_111139_h;
                        var$2 = var$6.$canPassOpenWoodenDoors;
                        var$8 = var$6.$canPassClosedWoodenDoors;
                        var$10 = var$6.$avoidsWater;
                        var$11 = var$6.$canSwim;
                        $ptr = 7;
                        continue main;
                    }
                    var$1 = null;
                    if (var$1 !== null) {
                        $ptr = 8;
                        continue main;
                    }
                }
                if (var$18 > 6.0) {
                    $var3 = var$3.$posX - $this.$posX;
                    $var7 = var$18;
                    $var3 = $var3 / $var7;
                    $var5 = (var$3.$posY - $this.$posY) / $var7;
                    $var7 = (var$3.$posZ - $this.$posZ) / $var7;
                    $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
                    $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
                    $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
                }
                if (var$18 > 10.0) {
                    var$2 = 1;
                    var$8 = 1;
                    $ptr = 4;
                    continue main;
                }
            }
            return;
        }
        var$2 = 1;
        var$8 = 1;
        $ptr = 2;
    case 2:
        nms_EntityLiving_clearLeashed($this, var$2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        h: {
            i: {
                var$2 = $this.$isLeashed;
                if (var$2) {
                    var$3 = $this.$leashedToEntity;
                    if (var$3 !== null && var$3.$worldObj === $this.$worldObj)
                        break i;
                }
                if (var$2)
                    break h;
                if (!$this.$field_110180_bt)
                    break h;
                $this.$field_110180_bt = 0;
                var$1 = $this.$tasks0;
                var$4 = $this.$field_110178_bs;
                var$5 = var$1.$taskEntries;
                var$6 = new ju_AbstractList$1;
                var$6.$this$00 = var$5;
                var$6.$modCount0 = var$5.$modCount;
                var$6.$size3 = var$5.$size();
                var$6.$removeIndex = (-1);
                var$7 = 0;
                while (true) {
                    var$2 = var$6.$index;
                    if (!(var$2 >= var$6.$size3 ? 0 : 1))
                        break;
                    var$8 = var$6.$modCount0;
                    var$5 = var$6.$this$00;
                    if (var$8 < var$5.$modCount) {
                        var$1 = new ju_ConcurrentModificationException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        $rt_throw(var$1);
                    }
                    var$6.$removeIndex = var$2;
                    var$6.$index = var$2 + 1 | 0;
                    var$5 = var$5.$get(var$2);
                    var$3 = var$5.$action;
                    if (var$3 === var$4) {
                        var$9 = var$1.$executingTaskEntries;
                        var$10 = var$9.$modCount;
                        var$11 = var$9.$size();
                        var$12 = var$7;
                        j: {
                            while (true) {
                                if (!(var$12 >= var$11 ? 0 : 1)) {
                                    var$2 = 0;
                                    break j;
                                }
                                if (var$10 < var$9.$modCount) {
                                    var$1 = new ju_ConcurrentModificationException;
                                    var$1.$suppressionEnabled = 1;
                                    var$1.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace(var$1);
                                    $rt_throw(var$1);
                                }
                                var$8 = var$12 + 1 | 0;
                                var$13 = var$9.$get(var$12);
                                if (var$13 === var$5 ? 1 : var$13 !== null ? var$13.$equals(var$5) : var$5 !== null ? 0 : 1)
                                    break;
                                var$12 = var$8;
                            }
                            var$2 = 1;
                        }
                        if (var$2) {
                            $ptr = 9;
                            continue main;
                        }
                        ju_AbstractList$1_remove(var$6);
                    }
                }
                $this.$navigator.$avoidsWater = 1;
                $this.$maximumHomeDistance = (-1.0);
                break h;
            }
            $var3 = var$3.$posX;
            var$2 = $var3 | 0;
            $var7 = var$3.$posY;
            var$8 = $var7 | 0;
            $var5 = var$3.$posZ;
            var$10 = $var5 | 0;
            var$1 = $this.$homePosition;
            var$1.$posX0 = var$2;
            var$1.$posY0 = var$8;
            var$1.$posZ0 = var$10;
            $this.$maximumHomeDistance = 5.0;
            var$17 = $this.$posX - $var3;
            var$18 = $this.$posY - $var7;
            var$19 = $this.$posZ - $var5;
            var$18 = jl_Math_sqrt(var$17 * var$17 + var$18 * var$18 + var$19 * var$19);
            if ($this instanceof nms_EntityTameable && nms_EntityTameable_isSitting($this)) {
                if (var$18 <= 10.0)
                    return;
                var$2 = 1;
                var$8 = 1;
                $ptr = 3;
                continue main;
            }
            if (!$this.$field_110180_bt) {
                var$1 = $this.$tasks0;
                var$4 = $this.$field_110178_bs;
                var$6 = var$1.$taskEntries;
                var$5 = new nms_EntityAITaskEntry;
                var$5.$tasks = var$1;
                var$5.$priority = 2;
                var$5.$action = var$4;
                ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                var$20 = var$6.$array.data;
                var$8 = var$6.$size0;
                var$6.$size0 = var$8 + 1 | 0;
                var$20[var$8] = var$5;
                var$6.$modCount = var$6.$modCount + 1 | 0;
                $this.$navigator.$avoidsWater = 0;
                $this.$field_110180_bt = 1;
            }
            $this.$func_142017_o(var$18);
            if (var$18 > 4.0) {
                var$6 = $this.$navigator;
                $var3 = 1.0;
                var$1 = var$6.$theEntity;
                if (var$1.$onGround)
                    var$2 = 1;
                else {
                    if (var$6.$canSwim) {
                        $ptr = 5;
                        continue main;
                    }
                    var$2 = 0;
                }
                if (var$2) {
                    var$1 = var$6.$worldObj3;
                    var$4 = var$6.$theEntity;
                    var$5 = var$6.$pathSearchRange;
                    if (var$5.$field_111133_g) {
                        var$5.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$5);
                        var$5.$field_111133_g = 0;
                    }
                    var$17 = var$5.$field_111139_h;
                    var$2 = var$6.$canPassOpenWoodenDoors;
                    var$8 = var$6.$canPassClosedWoodenDoors;
                    var$10 = var$6.$avoidsWater;
                    var$11 = var$6.$canSwim;
                    $ptr = 7;
                    continue main;
                }
                var$1 = null;
                if (var$1 !== null) {
                    $ptr = 8;
                    continue main;
                }
            }
            if (var$18 > 6.0) {
                $var3 = var$3.$posX - $this.$posX;
                $var7 = var$18;
                $var3 = $var3 / $var7;
                $var5 = (var$3.$posY - $this.$posY) / $var7;
                $var7 = (var$3.$posZ - $this.$posZ) / $var7;
                $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
                $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
                $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
            }
            if (var$18 > 10.0) {
                var$2 = 1;
                var$8 = 1;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 3:
        nms_EntityLiving_clearLeashed($this, var$2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_EntityLiving_clearLeashed($this, var$2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2) {
            var$1 = var$6.$theEntity;
            $ptr = 6;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$1 = var$6.$worldObj3;
            var$4 = var$6.$theEntity;
            var$5 = var$6.$pathSearchRange;
            if (var$5.$field_111133_g) {
                var$5.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$5);
                var$5.$field_111133_g = 0;
            }
            var$17 = var$5.$field_111139_h;
            var$2 = var$6.$canPassOpenWoodenDoors;
            var$8 = var$6.$canPassClosedWoodenDoors;
            var$10 = var$6.$avoidsWater;
            var$11 = var$6.$canSwim;
            $ptr = 7;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 8;
            continue main;
        }
        if (var$18 > 6.0) {
            $var3 = var$3.$posX - $this.$posX;
            $var7 = var$18;
            $var3 = $var3 / $var7;
            $var5 = (var$3.$posY - $this.$posY) / $var7;
            $var7 = (var$3.$posZ - $this.$posZ) / $var7;
            $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
            $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
            $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
        }
        if (var$18 <= 10.0)
            return;
        var$2 = 1;
        var$8 = 1;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if ((var$2 ? 1 : 0) ? 1 : 0) {
            var$1 = var$6.$worldObj3;
            var$4 = var$6.$theEntity;
            var$5 = var$6.$pathSearchRange;
            if (var$5.$field_111133_g) {
                var$5.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$5);
                var$5.$field_111133_g = 0;
            }
            var$17 = var$5.$field_111139_h;
            var$2 = var$6.$canPassOpenWoodenDoors;
            var$8 = var$6.$canPassClosedWoodenDoors;
            var$10 = var$6.$avoidsWater;
            var$11 = var$6.$canSwim;
            $ptr = 7;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 8;
            continue main;
        }
        if (var$18 > 6.0) {
            $var3 = var$3.$posX - $this.$posX;
            $var7 = var$18;
            $var3 = $var3 / $var7;
            $var5 = (var$3.$posY - $this.$posY) / $var7;
            $var7 = (var$3.$posZ - $this.$posZ) / $var7;
            $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
            $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
            $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
        }
        if (var$18 <= 10.0)
            return;
        var$2 = 1;
        var$8 = 1;
        $ptr = 4;
        continue main;
    case 7:
        $tmp = nms_World_getPathEntityToEntity(var$1, var$4, var$3, var$17, var$2, var$8, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 !== null) {
            $ptr = 8;
            continue main;
        }
        if (var$18 > 6.0) {
            $var3 = var$3.$posX - $this.$posX;
            $var7 = var$18;
            $var3 = $var3 / $var7;
            $var5 = (var$3.$posY - $this.$posY) / $var7;
            $var7 = (var$3.$posZ - $this.$posZ) / $var7;
            $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
            $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
            $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
        }
        if (var$18 <= 10.0)
            return;
        var$2 = 1;
        var$8 = 1;
        $ptr = 4;
        continue main;
    case 8:
        nms_PathNavigate_setPath(var$6, var$1, $var3);
        if ($rt_suspending()) {
            break main;
        }
        if (var$18 > 6.0) {
            $var3 = var$3.$posX - $this.$posX;
            $var7 = var$18;
            $var3 = $var3 / $var7;
            $var5 = (var$3.$posY - $this.$posY) / $var7;
            $var7 = (var$3.$posZ - $this.$posZ) / $var7;
            $this.$motionX = $this.$motionX + $var3 * jl_Math_absImpl($var3) * 0.4;
            $this.$motionY = $this.$motionY + $var5 * jl_Math_absImpl($var5) * 0.4;
            $this.$motionZ = $this.$motionZ + $var7 * jl_Math_absImpl($var7) * 0.4;
        }
        if (var$18 <= 10.0)
            return;
        var$2 = 1;
        var$8 = 1;
        $ptr = 4;
        continue main;
    case 9:
        var$3.$resetTask();
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$1.$executingTaskEntries;
        var$10 = var$3.$size0;
        var$2 = 0;
        e: {
            while (true) {
                var$8 = $rt_compare(var$2, var$10);
                if (var$8 >= 0) {
                    var$2 = (-1);
                    break e;
                }
                if (var$2 < 0)
                    break;
                if (var$8 >= 0)
                    break;
                var$9 = var$3.$array.data[var$2];
                if (var$5 === var$9 ? 1 : var$5 === null ? (var$9 !== null ? 0 : 1) : var$5 !== var$9 ? 0 : 1)
                    break e;
                var$2 = var$2 + 1 | 0;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
        if (var$2 >= 0)
            ju_ArrayList_remove(var$3, var$2);
        d: while (true) {
            ju_AbstractList$1_remove(var$6);
            while (true) {
                var$2 = var$6.$index;
                if (!(var$2 >= var$6.$size3 ? 0 : 1))
                    break d;
                var$8 = var$6.$modCount0;
                var$5 = var$6.$this$00;
                if (var$8 < var$5.$modCount) {
                    var$1 = new ju_ConcurrentModificationException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                var$6.$removeIndex = var$2;
                var$6.$index = var$2 + 1 | 0;
                var$5 = var$5.$get(var$2);
                var$3 = var$5.$action;
                if (var$3 !== var$4)
                    continue;
                else
                    break;
            }
            var$9 = var$1.$executingTaskEntries;
            var$10 = var$9.$modCount;
            var$11 = var$9.$size();
            var$12 = var$7;
            k: {
                while (true) {
                    if (!(var$12 >= var$11 ? 0 : 1)) {
                        var$2 = 0;
                        break k;
                    }
                    if (var$10 < var$9.$modCount) {
                        var$1 = new ju_ConcurrentModificationException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$1);
                        $rt_throw(var$1);
                    }
                    var$8 = var$12 + 1 | 0;
                    var$13 = var$9.$get(var$12);
                    if (var$13 === var$5 ? 1 : var$13 !== null ? var$13.$equals(var$5) : var$5 !== null ? 0 : 1)
                        break;
                    var$12 = var$8;
                }
                var$2 = 1;
            }
            if (!var$2)
                continue;
            else {
                continue main;
            }
        }
        $this.$navigator.$avoidsWater = 1;
        $this.$maximumHomeDistance = (-1.0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var3, $var7, $var5, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntityCreature_func_142017_o = ($this, $par1) => {
    return;
},
nms_EntityCreature__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = nle_ProfileUUID_fromString($rt_s(2199));
    nms_EntityCreature_field_110179_h = var$1;
    var$2 = new nms_AttributeModifier;
    var$2.$isSaved = 1;
    var$2.$id1 = var$1;
    var$2.$name3 = $rt_s(2200);
    var$2.$amount0 = 2.0;
    var$2.$operation = 2;
    if ($rt_s(2200) === $rt_s(3))
        var$3 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(3);
        var$3 = $rt_s(2200).$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (!var$3) {
        var$2.$isSaved = 0;
        nms_EntityCreature_field_110181_i = var$2;
        return;
    }
    var$1 = new jl_IllegalArgumentException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    var$1.$message = $rt_s(1279);
    $rt_throw(var$1);
};
function nms_EntityAgeable() {
    let a = this; nms_EntityCreature.call(a);
    a.$field_98056_d = 0.0;
    a.$field_98057_e = 0.0;
}
let nms_EntityAgeable_interact = ($this, $par1EntityPlayer) => {
    let $var4, var$3, $var2, var$5, var$6, var$7, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par1EntityPlayer.$inventory0;
        var$3 = $var4.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? $var4.$mainInventory.data[var$3] : null;
        if ($var2 !== null) {
            var$5 = $var2.$itemID;
            nms_Item_$callClinit();
            if (var$5 == nms_Item_monsterPlacer.$itemID0) {
                if (!$this.$worldObj.$isRemote) {
                    var$3 = $var2.$itemDamage;
                    nms_EntityList_$callClinit();
                    $var4 = nms_EntityList_IDtoClassMapping;
                    if (var$3 >= (-128) && var$3 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                    } else {
                        var$6 = new jl_Integer;
                        var$6.$value = var$3;
                    }
                    if (var$6 === null) {
                        $var4 = $var4.$elementData.data[0];
                        while ($var4 !== null && $var4.$key !== null) {
                            $var4 = $var4.$next3;
                        }
                    } else {
                        var$5 = var$6.$value;
                        var$7 = $var4.$elementData.data;
                        $var4 = var$7[var$5 & (var$7.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == var$5) {
                                $var3 = $var4.$key;
                                if (var$6 !== $var3 && !(var$6 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$5 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                    }
                    $var3 = $var4 === null ? null : $var4.$value0;
                    if ($var3 !== null) {
                        var$6 = $this.constructor;
                        if (var$6 === null)
                            $var4 = null;
                        else {
                            $var4 = var$6.classObject;
                            if ($var4 === null) {
                                $var4 = new jl_Class;
                                $var4.$platformClass = var$6;
                                var$6.classObject = $var4;
                            }
                        }
                        if (otp_Platform_isAssignable($var4.$platformClass, $var3.$platformClass)) {
                            $ptr = 1;
                            continue main;
                        }
                    }
                }
                return 1;
            }
        }
        return 0;
    case 1:
        $tmp = $this.$createChild($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return 1;
        var$5 = (-24000);
        $ptr = 2;
    case 2:
        nms_EntityAgeable_setGrowingAge($var4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $this.$posX;
        var$10 = $this.$posY;
        var$11 = $this.$posZ;
        $var4.$posX = var$9;
        $var4.$prevPosX = var$9;
        $var4.$lastTickPosX = var$9;
        var$10 = var$10 + $var4.$yOffset;
        $var4.$posY = var$10;
        $var4.$prevPosY = var$10;
        $var4.$lastTickPosY = var$10;
        $var4.$posZ = var$11;
        $var4.$prevPosZ = var$11;
        $var4.$lastTickPosZ = var$11;
        $var4.$rotationYaw = 0.0;
        $var4.$rotationPitch = 0.0;
        nms_Entity_setPosition($var4, var$9, var$10, var$11);
        var$6 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$6, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var2.$stackTagCompound;
        if ($var3 === null)
            var$5 = 0;
        else {
            a: {
                $var3 = $var3.$tagMap;
                if (!$rt_s(918).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(918).$nativeString.length)
                            break a;
                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$12 = $rt_s(918).$hashCode1;
            var$7 = $var3.$elementData.data;
            $var3 = var$7[var$12 & (var$7.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$12) {
                    b: {
                        var$13 = $var3.$key;
                        if ($rt_s(918) !== var$13) {
                            if ($rt_s(918) !== var$13) {
                                if (var$13 instanceof jl_String) {
                                    var$13 = var$13;
                                    var$5 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                } else
                                    var$5 = 0;
                            } else
                                var$5 = 1;
                            if (!var$5) {
                                var$5 = 0;
                                break b;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                c: {
                    var$6 = $var2.$stackTagCompound;
                    var$13 = var$6.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(918).$nativeString.length)
                                break c;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$12 = $rt_s(918).$hashCode1;
                var$7 = var$13.$elementData.data;
                var$13 = var$7[var$12 & (var$7.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$12) {
                        d: {
                            var$14 = var$13.$key;
                            if ($rt_s(918) !== var$14) {
                                if ($rt_s(918) !== var$14) {
                                    if (var$14 instanceof jl_String) {
                                        var$14 = var$14;
                                        var$5 = $rt_s(918).$nativeString !== var$14.$nativeString ? 0 : 1;
                                    } else
                                        var$5 = 0;
                                } else
                                    var$5 = 1;
                                if (!var$5) {
                                    var$5 = 0;
                                    break d;
                                }
                            }
                            var$5 = 1;
                        }
                        if (var$5)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
                if (var$13 === null ? 0 : 1) {
                    var$6 = var$6.$tagMap;
                    if ($rt_s(918) === null) {
                        var$6 = var$6.$elementData.data[0];
                        while (var$6 !== null && var$6.$key !== null) {
                            var$6 = var$6.$next3;
                        }
                    } else {
                        e: {
                            if (!$rt_s(918).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(918).$nativeString.length)
                                        break e;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$12 = $rt_s(918).$hashCode1;
                        var$7 = var$6.$elementData.data;
                        var$6 = var$7[var$12 & (var$7.length - 1 | 0)];
                        while (var$6 !== null) {
                            if (var$6.$origKeyHash == var$12) {
                                f: {
                                    var$13 = var$6.$key;
                                    if ($rt_s(918) !== var$13) {
                                        if ($rt_s(918) !== var$13) {
                                            if (var$13 instanceof jl_String) {
                                                var$13 = var$13;
                                                var$5 = $rt_s(918).$nativeString !== var$13.$nativeString ? 0 : 1;
                                            } else
                                                var$5 = 0;
                                        } else
                                            var$5 = 1;
                                        if (!var$5) {
                                            var$5 = 0;
                                            break f;
                                        }
                                    }
                                    var$5 = 1;
                                }
                                if (var$5)
                                    break;
                            }
                            var$6 = var$6.$next3;
                        }
                    }
                    var$6 = var$6 === null ? null : var$6.$value0;
                } else {
                    var$6 = new nms_NBTTagCompound;
                    if ($rt_s(918) !== null)
                        var$6.$name = $rt_s(918);
                    else
                        var$6.$name = $rt_s(3);
                    $var3 = new ju_HashMap;
                    var$5 = ju_HashMap_calculateCapacity(16);
                    $var3.$elementCount = 0;
                    var$15 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                    var$7 = var$15.data;
                    $var3.$elementData = var$15;
                    $var3.$loadFactor = 0.75;
                    $var3.$threshold = var$7.length * 0.75 | 0;
                    var$6.$tagMap = $var3;
                }
                g: {
                    var$6 = var$6.$tagMap;
                    if (!$rt_s(919).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(919).$nativeString.length)
                                break g;
                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$12 = $rt_s(919).$hashCode1;
                var$7 = var$6.$elementData.data;
                var$6 = var$7[var$12 & (var$7.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$12) {
                        h: {
                            var$13 = var$6.$key;
                            if ($rt_s(919) !== var$13) {
                                if ($rt_s(919) !== var$13) {
                                    if (var$13 instanceof jl_String) {
                                        var$13 = var$13;
                                        var$5 = $rt_s(919).$nativeString !== var$13.$nativeString ? 0 : 1;
                                    } else
                                        var$5 = 0;
                                } else
                                    var$5 = 1;
                                if (!var$5) {
                                    var$5 = 0;
                                    break h;
                                }
                            }
                            var$5 = 1;
                        }
                        if (var$5)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
                var$5 = var$6 === null ? 0 : 1;
            } else
                var$5 = 0;
        }
        if (var$5) {
            var$6 = nms_Item_itemsList.data[$var2.$itemID].$getItemDisplayName($var2);
            $var3 = $var2.$stackTagCompound;
            if ($var3 !== null) {
                i: {
                    $var3 = $var3.$tagMap;
                    if (!$rt_s(918).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(918).$nativeString.length)
                                break i;
                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(918).$hashCode1;
                var$7 = $var3.$elementData.data;
                $var3 = var$7[var$5 & (var$7.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$5) {
                        j: {
                            var$14 = $var3.$key;
                            if ($rt_s(918) !== var$14) {
                                if ($rt_s(918) !== var$14) {
                                    if (var$14 instanceof jl_String) {
                                        var$14 = var$14;
                                        var$3 = $rt_s(918).$nativeString !== var$14.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break j;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if ($var3 === null ? 0 : 1) {
                    k: {
                        $var3 = $var2.$stackTagCompound;
                        var$14 = $var3.$tagMap;
                        if (!$rt_s(918).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(918).$nativeString.length)
                                    break k;
                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$12 = $rt_s(918).$hashCode1;
                    var$7 = var$14.$elementData.data;
                    var$14 = var$7[var$12 & (var$7.length - 1 | 0)];
                    while (var$14 !== null) {
                        if (var$14.$origKeyHash == var$12) {
                            l: {
                                var$16 = var$14.$key;
                                if ($rt_s(918) !== var$16) {
                                    if ($rt_s(918) === var$16)
                                        var$5 = 1;
                                    else if (!(var$16 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        var$16 = var$16;
                                        var$5 = $rt_s(918).$nativeString !== var$16.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break l;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$14 = var$14.$next3;
                    }
                    if (!(var$14 === null ? 0 : 1)) {
                        var$16 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            var$16.$name = $rt_s(918);
                        else
                            var$16.$name = $rt_s(3);
                        $var3 = new ju_HashMap;
                        var$5 = ju_HashMap_calculateCapacity(16);
                        $var3.$elementCount = 0;
                        var$15 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                        var$7 = var$15.data;
                        $var3.$elementData = var$15;
                        $var3.$loadFactor = 0.75;
                        $var3.$threshold = var$7.length * 0.75 | 0;
                        var$16.$tagMap = $var3;
                    } else {
                        $var3 = $var3.$tagMap;
                        if ($rt_s(918) === null) {
                            $var3 = $var3.$elementData.data[0];
                            while ($var3 !== null && $var3.$key !== null) {
                                $var3 = $var3.$next3;
                            }
                        } else {
                            m: {
                                if (!$rt_s(918).$hashCode1) {
                                    var$5 = 0;
                                    while (true) {
                                        if (var$5 >= $rt_s(918).$nativeString.length)
                                            break m;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                        var$5 = var$5 + 1 | 0;
                                    }
                                }
                            }
                            var$12 = $rt_s(918).$hashCode1;
                            var$7 = $var3.$elementData.data;
                            $var3 = var$7[var$12 & (var$7.length - 1 | 0)];
                            while ($var3 !== null) {
                                if ($var3.$origKeyHash == var$12) {
                                    n: {
                                        var$14 = $var3.$key;
                                        if ($rt_s(918) !== var$14) {
                                            if ($rt_s(918) === var$14)
                                                var$5 = 1;
                                            else if (!(var$14 instanceof jl_String))
                                                var$5 = 0;
                                            else {
                                                var$14 = var$14;
                                                var$5 = $rt_s(918).$nativeString !== var$14.$nativeString ? 0 : 1;
                                            }
                                            if (!var$5) {
                                                var$5 = 0;
                                                break n;
                                            }
                                        }
                                        var$5 = 1;
                                    }
                                    if (var$5)
                                        break;
                                }
                                $var3 = $var3.$next3;
                            }
                        }
                        var$16 = $var3 === null ? null : $var3.$value0;
                    }
                    o: {
                        var$13 = var$16.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(919).$nativeString.length)
                                    break o;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$12 = $rt_s(919).$hashCode1;
                    var$7 = var$13.$elementData.data;
                    var$13 = var$7[var$12 & (var$7.length - 1 | 0)];
                    while (var$13 !== null) {
                        if (var$13.$origKeyHash == var$12) {
                            p: {
                                var$14 = var$13.$key;
                                if ($rt_s(919) !== var$14) {
                                    if ($rt_s(919) === var$14)
                                        var$5 = 1;
                                    else if (!(var$14 instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        var$14 = var$14;
                                        var$5 = $rt_s(919).$nativeString !== var$14.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break p;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$13 = var$13.$next3;
                    }
                    if (var$13 === null ? 0 : 1) {
                        q: {
                            $var3 = var$16.$tagMap;
                            if (!$rt_s(919).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(919).$nativeString.length)
                                        break q;
                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$12 = $rt_s(919).$hashCode1;
                        var$7 = $var3.$elementData.data;
                        $var3 = var$7[var$12 & (var$7.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$12) {
                                r: {
                                    var$13 = $var3.$key;
                                    if ($rt_s(919) !== var$13) {
                                        if ($rt_s(919) === var$13)
                                            var$5 = 1;
                                        else if (!(var$13 instanceof jl_String))
                                            var$5 = 0;
                                        else {
                                            var$13 = var$13;
                                            var$5 = $rt_s(919).$nativeString !== var$13.$nativeString ? 0 : 1;
                                        }
                                        if (!var$5) {
                                            var$5 = 0;
                                            break r;
                                        }
                                    }
                                    var$5 = 1;
                                }
                                if (var$5)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                        if (!($var3 === null ? 0 : 1))
                            var$6 = $rt_s(3);
                        else {
                            $var3 = var$16.$tagMap;
                            if ($rt_s(919) === null) {
                                $var3 = $var3.$elementData.data[0];
                                while ($var3 !== null && $var3.$key !== null) {
                                    $var3 = $var3.$next3;
                                }
                            } else {
                                s: {
                                    if (!$rt_s(919).$hashCode1) {
                                        var$5 = 0;
                                        while (true) {
                                            if (var$5 >= $rt_s(919).$nativeString.length)
                                                break s;
                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$5) | 0;
                                            var$5 = var$5 + 1 | 0;
                                        }
                                    }
                                }
                                var$12 = $rt_s(919).$hashCode1;
                                var$7 = $var3.$elementData.data;
                                $var3 = var$7[var$12 & (var$7.length - 1 | 0)];
                                while ($var3 !== null) {
                                    if ($var3.$origKeyHash == var$12) {
                                        t: {
                                            var$13 = $var3.$key;
                                            if ($rt_s(919) !== var$13) {
                                                if ($rt_s(919) === var$13)
                                                    var$5 = 1;
                                                else if (!(var$13 instanceof jl_String))
                                                    var$5 = 0;
                                                else {
                                                    var$13 = var$13;
                                                    var$5 = $rt_s(919).$nativeString !== var$13.$nativeString ? 0 : 1;
                                                }
                                                if (!var$5) {
                                                    var$5 = 0;
                                                    break t;
                                                }
                                            }
                                            var$5 = 1;
                                        }
                                        if (var$5)
                                            break;
                                    }
                                    $var3 = $var3.$next3;
                                }
                            }
                            var$6 = ($var3 === null ? null : $var3.$value0).$data1;
                        }
                    }
                }
            }
            nms_EntityLiving_setCustomNameTag($var4, var$6);
        }
        if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
            var$5 = $var2.$stackSize - 1 | 0;
            $var2.$stackSize = var$5;
            if (var$5 <= 0) {
                $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                var$5 = $par1EntityPlayer.$currentItem;
                $var4 = null;
                var$7 = $par1EntityPlayer.$mainInventory;
                var$3 = var$7.data.length;
                if (var$5 >= var$3) {
                    var$5 = var$5 - var$3 | 0;
                    var$7 = $par1EntityPlayer.$armorInventory;
                }
                var$7.data[var$5] = $var4;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var4, var$3, $var2, var$5, var$6, var$7, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityAgeable_entityInit = $this => {
    let var$1, var$2;
    nms_EntityLiving_entityInit($this);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 12, var$2);
},
nms_EntityAgeable_getGrowingAge = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[140];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
},
nms_EntityAgeable_setGrowingAge = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$dataWatcher;
        if ($par1 >= (-128) && $par1 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = $par1;
        }
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[140];
        if (var$5 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$6 = var$5.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    var$8 = var$4.$key;
                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        var$8 = var$4.$watchedObject;
        if (!(var$3 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$3.$value ? 1 : 0)) {
            var$4.$watchedObject = var$3;
            var$4.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $par1 = nms_EntityAgeable_isChild($this);
        $ptr = 1;
    case 1:
        $this.$setScaleForAge($par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityAgeable_onLivingUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = nms_EntityAgeable_isChild($this);
            $ptr = 2;
            continue main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[140];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$1 = var$3.$value;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$1 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$1) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
        if (var$6 < 0) {
            var$1 = var$6 + 1 | 0;
            var$2 = $this.$dataWatcher;
            if (var$1 >= (-128) && var$1 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[var$1 + 128 | 0];
            } else {
                var$7 = new jl_Integer;
                var$7.$value = var$1;
            }
            var$3 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[140];
            if (var$5 === null) {
                var$8 = var$3.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                var$6 = var$5.$value;
                var$4 = var$3.$elementData.data;
                var$8 = var$4[var$6 & (var$4.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$6) {
                        var$3 = var$8.$key;
                        if (var$5 !== var$3 && !(var$5 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$5 = var$8 === null ? null : var$8.$value0;
            var$3 = var$5.$watchedObject;
            if (!(var$7 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$7.$value ? 1 : 0)) {
                var$5.$watchedObject = var$7;
                var$5.$watched = 1;
                var$2.$objectChanged = 1;
            }
            var$1 = nms_EntityAgeable_isChild($this);
            $ptr = 3;
            continue main;
        }
        if (var$6 <= 0)
            return;
        var$1 = var$6 + (-1) | 0;
        var$2 = $this.$dataWatcher;
        if (var$1 >= (-128) && var$1 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[var$1 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = var$1;
        }
        var$5 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[140];
        if (var$8 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$9 = var$8.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$9 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$9) {
                    var$7 = var$5.$key;
                    if (var$8 !== var$7 && !(var$8 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$7 = var$5 === null ? null : var$5.$value0;
        var$5 = var$7.$watchedObject;
        if (!(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3.$value ? 1 : 0)) {
            var$7.$watchedObject = var$3;
            var$7.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$1 = nms_EntityAgeable_isChild($this);
        $ptr = 4;
        continue main;
    case 2:
        $this.$setScaleForAge(var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $this.$setScaleForAge(var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $this.$setScaleForAge(var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityAgeable_isChild = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[140];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value >= 0 ? 0 : 1;
},
nms_EntityAgeable_setScaleForAge = ($this, $par1) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = !$par1 ? 1.0 : 0.5;
        var$3 = $this.$field_98056_d * var$2;
        var$2 = $this.$field_98057_e * var$2;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, $ptr);
},
nms_IAnimals = $rt_classWithoutFields(0);
function nms_EntityAnimal() {
    let a = this; nms_EntityAgeable.call(a);
    a.$inLove = 0;
    a.$breeding = 0;
}
let nms_EntityAnimal_updateAITick = $this => {
    if (nms_EntityAgeable_getGrowingAge($this))
        $this.$inLove = 0;
},
nms_EntityAnimal_onLivingUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityAgeable_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_EntityAgeable_getGrowingAge($this))
            $this.$inLove = 0;
        a: {
            var$1 = $this.$inLove;
            if (var$1 <= 0)
                $this.$breeding = 0;
            else {
                var$2 = var$1 - 1 | 0;
                $this.$inLove = var$2;
                if (!(var$2 % 10 | 0)) {
                    nle_EaglercraftRandom_nextGaussian($this.$rand);
                    nle_EaglercraftRandom_nextGaussian($this.$rand);
                    nle_EaglercraftRandom_nextGaussian($this.$rand);
                    var$3 = $this.$worldObj;
                    var$4 = $this.$rand;
                    var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$5;
                    var$5 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$5;
                    var$4.$seed = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2 = 0;
                    while (true) {
                        var$1 = $rt_compare(var$2, var$3.$worldAccesses.$size0);
                        if (var$1 >= 0)
                            break;
                        if (var$2 < 0)
                            break a;
                        if (var$1 >= 0)
                            break a;
                        var$2 = var$2 + 1 | 0;
                    }
                }
            }
            return;
        }
        var$3 = new jl_IndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityAnimal_attackEntity = ($this, $par1Entity, $par2) => {
    let $var3, var$4, var$5, $var8, $var7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($par1Entity instanceof nms_EntityPlayer) {
                if ($par2 < 3.0) {
                    $var3 = $par1Entity.$posX - $this.$posX;
                    $this.$rotationYaw = jl_Math_atan2($par1Entity.$posZ - $this.$posZ, $var3) * 180.0 / 3.141592653589793 - 90.0;
                    $this.$hasAttacked = 1;
                }
                $par1Entity = $par1Entity.$inventory0;
                var$4 = $par1Entity.$currentItem;
                var$5 = $rt_compare(var$4, 9);
                $var8 = var$5 < 0 && var$4 >= 0 ? $par1Entity.$mainInventory.data[var$4] : null;
                if (!($var8 !== null && $this.$isBreedingItem(var$5 < 0 && var$4 >= 0 ? $par1Entity.$mainInventory.data[var$4] : null)))
                    $this.$entityToAttack = null;
            } else if ($par1Entity instanceof nms_EntityAnimal) {
                $var8 = $par1Entity;
                if (!(nms_EntityAgeable_getGrowingAge($this) > 0 && nms_EntityAgeable_getGrowingAge($var8) < 0)) {
                    if ($this.$inLove > 0) {
                        var$5 = $var8.$inLove;
                        if (var$5 > 0) {
                            if ($var8.$entityToAttack === null)
                                $var8.$entityToAttack = $this;
                            if ($var8.$entityToAttack === $this && $par2 < 3.5) {
                                b: {
                                    $var8.$inLove = var$5 + 1 | 0;
                                    $this.$inLove = $this.$inLove + 1 | 0;
                                    var$5 = $this.$breeding + 1 | 0;
                                    $this.$breeding = var$5;
                                    if (!(var$5 % 4 | 0)) {
                                        $par1Entity = $this.$worldObj;
                                        $var7 = $this.$rand;
                                        var$8 = Long_and(Long_add(Long_mul($var7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $var7.$seed = var$8;
                                        var$9 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $var7.$seed = var$9;
                                        $var7.$seed = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$4 = 0;
                                        c: {
                                            while (true) {
                                                var$10 = $rt_compare(var$4, $par1Entity.$worldAccesses.$size0);
                                                if (var$10 >= 0)
                                                    break;
                                                if (var$4 < 0)
                                                    break c;
                                                if (var$10 >= 0)
                                                    break c;
                                                var$4 = var$4 + 1 | 0;
                                            }
                                            break b;
                                        }
                                        $par1Entity = new jl_IndexOutOfBoundsException;
                                        $par1Entity.$suppressionEnabled = 1;
                                        $par1Entity.$writableStackTrace = 1;
                                        $rt_throw($par1Entity);
                                    }
                                }
                                if (var$5 != 60)
                                    break a;
                                else {
                                    $ptr = 1;
                                    continue main;
                                }
                            }
                            $this.$breeding = 0;
                            break a;
                        }
                    }
                    $this.$breeding = 0;
                    $this.$entityToAttack = null;
                } else if ($par2 < 2.5)
                    $this.$hasAttacked = 1;
            }
        }
        return;
    case 1:
        nms_EntityAnimal_procreate($this, $var8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var3, var$4, var$5, $var8, $var7, var$8, var$9, var$10, $ptr);
},
nms_EntityAnimal_procreate = ($this, $par1EntityAnimal) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1EntityAnimal = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$createChild($par1EntityAnimal);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 === null)
            return;
        $var3 = 6000;
        $ptr = 2;
    case 2:
        nms_EntityAgeable_setGrowingAge($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 6000;
        $ptr = 3;
    case 3:
        nms_EntityAgeable_setGrowingAge($par1EntityAnimal, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$inLove = 0;
        $this.$breeding = 0;
        $this.$entityToAttack = null;
        $par1EntityAnimal.$entityToAttack = null;
        $par1EntityAnimal.$breeding = 0;
        $par1EntityAnimal.$inLove = 0;
        $var3 = (-24000);
        $ptr = 4;
    case 4:
        nms_EntityAgeable_setGrowingAge($var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$posX;
        var$5 = $this.$posY;
        var$6 = $this.$posZ;
        var$7 = $this.$rotationYaw;
        var$8 = $this.$rotationPitch;
        $var2.$posX = var$4;
        $var2.$prevPosX = var$4;
        $var2.$lastTickPosX = var$4;
        var$5 = var$5 + $var2.$yOffset;
        $var2.$posY = var$5;
        $var2.$prevPosY = var$5;
        $var2.$lastTickPosY = var$5;
        $var2.$posZ = var$6;
        $var2.$prevPosZ = var$6;
        $var2.$lastTickPosZ = var$6;
        $var2.$rotationYaw = var$7;
        $var2.$rotationPitch = var$8;
        nms_Entity_setPosition($var2, var$4, var$5, var$6);
        $var3 = 0;
        a: while (true) {
            if ($var3 >= 7) {
                $par1EntityAnimal = $this.$worldObj;
                $ptr = 5;
                continue main;
            }
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            $par1EntityAnimal = $this.$worldObj;
            var$9 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$10;
            var$9.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11 = 0;
            while (true) {
                var$12 = $rt_compare(var$11, $par1EntityAnimal.$worldAccesses.$size0);
                if (var$12 >= 0)
                    break;
                if (var$11 < 0)
                    break a;
                if (var$12 >= 0)
                    break a;
                var$11 = var$11 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        $par1EntityAnimal = new jl_IndexOutOfBoundsException;
        $par1EntityAnimal.$suppressionEnabled = 1;
        $par1EntityAnimal.$writableStackTrace = 1;
        $rt_throw($par1EntityAnimal);
    case 5:
        nms_World_spawnEntityInWorld($par1EntityAnimal, $var2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAnimal, $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityAnimal_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        $this.$fleeingTick = 60;
        if (!$this.$isAIEnabled()) {
            var$3 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$4 = $this.$attributeMap.$attributes;
            if (var$3 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                a: {
                    var$5 = var$3.$field_111115_a;
                    if (!var$5.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$5.$nativeString.length)
                                break a;
                            var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                var$7 = var$5.$hashCode1;
                var$8 = var$4.$elementData.data;
                var$4 = var$8[var$7 & (var$8.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$7) {
                        var$5 = var$4.$key;
                        if (var$3 !== var$5 && !jl_Object_equals(var$3, var$5) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$5 = var$4 === null ? null : var$4.$value0;
            nms_EntityCreature_$callClinit();
            var$9 = nms_EntityCreature_field_110179_h;
            var$4 = var$5.$field_111135_e;
            if (var$9 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                var$10 = var$9.$mostSigBits;
                var$11 = var$9.$leastSigBits;
                var$12 = Long_xor(var$10, var$11);
                var$7 = Long_hi(var$12) ^ Long_lo(var$12);
                var$8 = var$4.$elementData.data;
                var$4 = var$8[var$7 & (var$8.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$7) {
                        b: {
                            var$3 = var$4.$key;
                            if (var$9 !== var$3) {
                                if (null !== var$3 && var$3 instanceof nle_ProfileUUID) {
                                    var$3 = var$3;
                                    var$13 = Long_eq(var$10, var$3.$mostSigBits) && Long_eq(var$11, var$3.$leastSigBits) ? 1 : 0;
                                } else
                                    var$13 = 0;
                                if (!var$13) {
                                    var$13 = 0;
                                    break b;
                                }
                            }
                            var$13 = 1;
                        }
                        if (var$13)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            if ((var$4 === null ? null : var$4.$value0) === null)
                nms_ModifiableAttributeInstance_applyModifier(var$5, nms_EntityCreature_field_110181_i);
        }
        $this.$entityToAttack = null;
        $this.$inLove = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        return var$13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityAnimal_getBlockPathWeight = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$worldObj;
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$4, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        if (var$5 == nms_Block_grass.$blockID)
            return 10.0;
        var$4 = $this.$worldObj;
        var$6 = var$4.$provider.$lightBrightnessTable.data;
        var$5 = 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockLightValue_do(var$4, $par1, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return var$6[$par1] - 0.5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, $ptr);
},
nms_EntityAnimal_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = nms_EntityAgeable_getGrowingAge($this);
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2201);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2201), var$4);
    var$2 = $this.$inLove;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2202);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2202), $par1NBTTagCompound);
},
nms_EntityAnimal_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2201).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2201).$nativeString.length)
                        break a;
                    $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2201).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2201) !== var$6) {
                        if ($rt_s(2201) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2201) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2201).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2201).$nativeString.length)
                                break c;
                            $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2201).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        d: {
                            var$6 = var$2.$key;
                            if ($rt_s(2201) !== var$6) {
                                if ($rt_s(2201) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        $ptr = 2;
    case 2:
        a: {
            nms_EntityAgeable_setGrowingAge($this, var$3);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2202).$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= $rt_s(2202).$nativeString.length)
                        break a;
                    $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2202).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2202) !== var$6) {
                        if ($rt_s(2202) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break b;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2202) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2202).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2202).$nativeString.length)
                                break c;
                            $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2202).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$7) {
                        d: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(2202) !== $par1NBTTagCompound) {
                                if ($rt_s(2202) === $par1NBTTagCompound)
                                    var$3 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$3 = $rt_s(2202).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$3 = (var$6 === null ? null : var$6.$value0).$data;
        }
        $this.$inLove = var$3;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityAnimal_findPlayerToAttack = $this => {
    let $var4, $var5, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var2, var$11, $var3, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var3 = $thread.pop();var$11 = $thread.pop();$var2 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$fleeingTick > 0)
            return null;
        if ($this.$inLove > 0) {
            $var4 = $this.$worldObj;
            $var5 = $this.constructor;
            if ($var5 === null)
                var$3 = null;
            else {
                var$3 = $var5.classObject;
                if (var$3 === null) {
                    var$3 = new jl_Class;
                    var$3.$platformClass = $var5;
                    $var5.classObject = var$3;
                }
            }
            $var5 = $this.$boundingBox0;
            var$4 = $var5.$minX0 - 8.0;
            var$5 = $var5.$minY0 - 8.0;
            var$6 = $var5.$minZ0 - 8.0;
            var$7 = $var5.$maxX0 + 8.0;
            var$8 = $var5.$maxY + 8.0;
            var$9 = $var5.$maxZ0 + 8.0;
            $var2 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$11 = $var2.$nextPoolIndex;
            $var5 = $var2.$listAABB;
            $var3 = $var5.$size0;
            var$13 = $rt_compare(var$11, $var3);
            if (var$13 >= 0) {
                var$14 = new nms_AxisAlignedBB;
                var$14.$minX0 = var$4;
                var$14.$minY0 = var$5;
                var$14.$minZ0 = var$6;
                var$14.$maxX0 = var$7;
                var$14.$maxY = var$8;
                var$14.$maxZ0 = var$9;
                ju_ArrayList_ensureCapacity($var5, $var3 + 1 | 0);
                var$15 = $var5.$array.data;
                var$11 = $var5.$size0;
                $var5.$size0 = var$11 + 1 | 0;
                var$15[var$11] = var$14;
                $var5.$modCount = $var5.$modCount + 1 | 0;
            } else if (var$11 >= 0 && var$13 < 0) {
                var$14 = $var5.$array.data[var$11];
                var$14.$minX0 = var$4;
                var$14.$minY0 = var$5;
                var$14.$minZ0 = var$6;
                var$14.$maxX0 = var$7;
                var$14.$maxY = var$8;
                var$14.$maxZ0 = var$9;
            } else {
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var4);
                $rt_throw($var4);
            }
            $var2.$nextPoolIndex = $var2.$nextPoolIndex + 1 | 0;
            $var5 = null;
            $ptr = 2;
            continue main;
        }
        if (!nms_EntityAgeable_getGrowingAge($this)) {
            $var4 = $this.$worldObj;
            $var5 = $rt_cls(nms_EntityPlayer);
            $var2 = $this.$boundingBox0;
            var$5 = $var2.$minX0 - 8.0;
            var$6 = $var2.$minY0 - 8.0;
            var$7 = $var2.$minZ0 - 8.0;
            var$8 = $var2.$maxX0 + 8.0;
            var$9 = $var2.$maxY + 8.0;
            var$4 = $var2.$maxZ0 + 8.0;
            var$14 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var3 = var$14.$nextPoolIndex;
            $var2 = var$14.$listAABB;
            var$13 = $var2.$size0;
            var$11 = $rt_compare($var3, var$13);
            if (var$11 >= 0) {
                var$3 = new nms_AxisAlignedBB;
                var$3.$minX0 = var$5;
                var$3.$minY0 = var$6;
                var$3.$minZ0 = var$7;
                var$3.$maxX0 = var$8;
                var$3.$maxY = var$9;
                var$3.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity($var2, var$13 + 1 | 0);
                var$15 = $var2.$array.data;
                var$11 = $var2.$size0;
                $var2.$size0 = var$11 + 1 | 0;
                var$15[var$11] = var$3;
                $var2.$modCount = $var2.$modCount + 1 | 0;
            } else if ($var3 >= 0 && var$11 < 0) {
                var$3 = $var2.$array.data[$var3];
                var$3.$minX0 = var$5;
                var$3.$minY0 = var$6;
                var$3.$minZ0 = var$7;
                var$3.$maxX0 = var$8;
                var$3.$maxY = var$9;
                var$3.$maxZ0 = var$4;
            } else {
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var4);
                $rt_throw($var4);
            }
            var$14.$nextPoolIndex = var$14.$nextPoolIndex + 1 | 0;
            $var2 = null;
            $ptr = 1;
            continue main;
        }
        if (nms_EntityAgeable_getGrowingAge($this) <= 0)
            return null;
        $var4 = $this.$worldObj;
        $var5 = $this.constructor;
        if ($var5 === null)
            var$3 = null;
        else {
            var$3 = $var5.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $var5;
                $var5.classObject = var$3;
            }
        }
        $var5 = $this.$boundingBox0;
        var$5 = $var5.$minX0 - 8.0;
        var$6 = $var5.$minY0 - 8.0;
        var$7 = $var5.$minZ0 - 8.0;
        var$8 = $var5.$maxX0 + 8.0;
        var$9 = $var5.$maxY + 8.0;
        var$4 = $var5.$maxZ0 + 8.0;
        var$14 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var3 = var$14.$nextPoolIndex;
        $var5 = var$14.$listAABB;
        var$11 = $var5.$size0;
        var$13 = $rt_compare($var3, var$11);
        if (var$13 >= 0) {
            $var2 = new nms_AxisAlignedBB;
            $var2.$minX0 = var$5;
            $var2.$minY0 = var$6;
            $var2.$minZ0 = var$7;
            $var2.$maxX0 = var$8;
            $var2.$maxY = var$9;
            $var2.$maxZ0 = var$4;
            ju_ArrayList_ensureCapacity($var5, var$11 + 1 | 0);
            var$15 = $var5.$array.data;
            var$11 = $var5.$size0;
            $var5.$size0 = var$11 + 1 | 0;
            var$15[var$11] = $var2;
            $var5.$modCount = $var5.$modCount + 1 | 0;
        } else if ($var3 >= 0 && var$13 < 0) {
            $var2 = $var5.$array.data[$var3];
            $var2.$minX0 = var$5;
            $var2.$minY0 = var$6;
            $var2.$minZ0 = var$7;
            $var2.$maxX0 = var$8;
            $var2.$maxY = var$9;
            $var2.$maxZ0 = var$4;
        } else {
            $var4 = new jl_IndexOutOfBoundsException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var4);
            $rt_throw($var4);
        }
        var$14.$nextPoolIndex = var$14.$nextPoolIndex + 1 | 0;
        $var5 = null;
        $ptr = 3;
        continue main;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($var4, $var5, var$3, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = 0;
        a: {
            while (true) {
                var$11 = $rt_compare($var3, $var2.$size0);
                if (var$11 >= 0)
                    return null;
                if ($var3 < 0)
                    break a;
                if (var$11 >= 0)
                    break a;
                $var5 = $var2.$array.data[$var3];
                $var4 = $var5.$inventory0;
                var$11 = $var4.$currentItem;
                var$13 = $rt_compare(var$11, 9);
                var$3 = var$13 < 0 && var$11 >= 0 ? $var4.$mainInventory.data[var$11] : null;
                if (var$3 !== null && $this.$isBreedingItem(var$13 < 0 && var$11 >= 0 ? $var4.$mainInventory.data[var$11] : null))
                    break;
                $var3 = $var3 + 1 | 0;
            }
            return $var5;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var4, var$3, var$14, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = 0;
        a: {
            while (true) {
                var$11 = $rt_compare($var3, $var2.$size0);
                if (var$11 >= 0)
                    return null;
                if ($var3 < 0)
                    break a;
                if (var$11 >= 0)
                    break a;
                $var4 = $var2.$array.data[$var3];
                if ($var4 !== $this && $var4.$inLove > 0)
                    break;
                $var3 = $var3 + 1 | 0;
            }
            return $var4;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    case 3:
        $tmp = nms_World_selectEntitiesWithinAABB($var4, var$3, $var2, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = 0;
        a: {
            while (true) {
                var$11 = $rt_compare($var3, $var2.$size0);
                if (var$11 >= 0)
                    return null;
                if ($var3 < 0)
                    break a;
                if (var$11 >= 0)
                    break a;
                $var4 = $var2.$array.data[$var3];
                if ($var4 !== $this && nms_EntityAgeable_getGrowingAge($var4) < 0)
                    break;
                $var3 = $var3 + 1 | 0;
            }
            return $var4;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, $var5, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var2, var$11, $var3, var$13, var$14, var$15, $ptr);
},
nms_EntityAnimal_getCanSpawnHere = $this => {
    let var$1, $var1, $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$posX;
        $var1 = var$1 | 0;
        if (var$1 < $var1)
            $var1 = $var1 - 1 | 0;
        var$1 = $this.$boundingBox0.$minY0;
        $var2 = var$1 | 0;
        if (var$1 < $var2)
            $var2 = $var2 - 1 | 0;
        var$1 = $this.$posZ;
        $var3 = var$1 | 0;
        if (var$1 < $var3)
            $var3 = $var3 - 1 | 0;
        var$5 = $this.$worldObj;
        var$6 = $var2 - 1 | 0;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId(var$5, $var1, var$6, $var3);
            if ($rt_suspending()) {
                break main;
            }
            var$6 = $tmp;
            nms_Block_$callClinit();
            if (var$6 == nms_Block_grass.$blockID) {
                var$5 = $this.$worldObj;
                if ($var2 < 0)
                    var$6 = 0;
                else {
                    if ($var2 >= 256)
                        $var2 = 255;
                    var$7 = $var1 >> 4;
                    var$8 = $var3 >> 4;
                    var$5 = var$5.$chunkProvider;
                    var$9 = var$5.$loadedChunkHashMap;
                    var$10 = Long_or(Long_and(Long_fromInt(var$7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$8), Long_create(4294967295, 0)), 32));
                    var$11 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                    var$6 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                    var$6 = var$6 ^ (var$6 >>> 7 | 0) ^ (var$6 >>> 4 | 0);
                    var$12 = var$9.$hashArray.data;
                    var$9 = var$12[var$6 & (var$12.length - 1 | 0)];
                    b: {
                        while (var$9 !== null) {
                            if (Long_eq(var$9.$key1, var$10)) {
                                var$9 = var$9.$value4;
                                break b;
                            }
                            var$9 = var$9.$nextEntry;
                        }
                        var$9 = null;
                    }
                    var$9 = var$9;
                    if (var$9 === null) {
                        if (var$5.$worldObj0.$findingSpawnPoint)
                            break a;
                        if (var$5.$loadChunkOnProvideRequest)
                            break a;
                        var$9 = var$5.$defaultEmptyChunk;
                    }
                    var$6 = var$9.$getBlockLightValue($var1 & 15, $var2, $var3 & 15, 0);
                }
                if (var$6 > 8) {
                    $ptr = 2;
                    continue main;
                }
            }
            return 0;
        }
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_EntityCreature_getCanSpawnHere($this);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return !var$6 ? 0 : 1;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk(var$5, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9.$getBlockLightValue($var1 & 15, $var2, $var3 & 15, 0) <= 8)
            return 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityAnimal_getTalkInterval = $this => {
    return 120;
},
nms_EntityAnimal_canDespawn = $this => {
    return 0;
},
nms_EntityAnimal_getExperiencePoints = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4;
    $par1EntityPlayer = $this.$worldObj.$rand0;
    var$2 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1EntityPlayer.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 3 | 0;
        if (((var$3 - var$4 | 0) + 2 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityPlayer.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return 1 + var$4 | 0;
},
nms_EntityAnimal_isBreedingItem = ($this, $par1ItemStack) => {
    let var$2;
    var$2 = $par1ItemStack.$itemID;
    nms_Item_$callClinit();
    return var$2 != nms_Item_wheat.$itemID0 ? 0 : 1;
},
nms_EntityAnimal_interact = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $var2, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayer.$inventory0;
        var$3 = var$2.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
        if ($var2 !== null && $this.$isBreedingItem($var2) && !nms_EntityAgeable_getGrowingAge($this) && $this.$inLove <= 0) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                var$5 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = var$5;
                if (var$5 <= 0) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    var$5 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    var$6 = $par1EntityPlayer.$mainInventory;
                    var$3 = var$6.data.length;
                    if (var$5 >= var$3) {
                        var$5 = var$5 - var$3 | 0;
                        var$6 = $par1EntityPlayer.$armorInventory;
                    }
                    var$6.data[var$5] = var$2;
                }
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAgeable_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    case 2:
        nms_EntityAnimal_func_110196_bT($this);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $var2, var$5, var$6, $ptr);
},
nms_EntityAnimal_func_110196_bT = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$inLove = 600;
        $this.$entityToAttack = null;
        var$1 = $this.$worldObj;
        var$2 = new nms_Packet38EntityStatus;
        var$3 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$2.$entityId0 = var$3;
        var$2.$entityStatus = 18;
        var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
        var$4 = $this.$entityId;
        var$3 = var$4 ^ (var$4 >>> 20 | 0) ^ (var$4 >>> 12 | 0);
        var$5 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
        var$6 = var$1.$slots.data;
        var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
        a: {
            while (var$1 !== null) {
                if (var$1.$hashEntry == var$4) {
                    var$1 = var$1.$valueEntry;
                    break a;
                }
                var$1 = var$1.$nextEntry0;
            }
            var$1 = null;
        }
        var$1 = var$1;
        if (var$1 !== null) {
            var$7 = var$1.$trackingPlayers.$backingMap;
            if (var$7.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = var$7;
                ju_AbstractCollection__init_(var$8);
                var$7.$cachedKeySet = var$8;
            }
            var$8 = var$7.$cachedKeySet.$iterator();
            var$3 = var$2 instanceof nms_Packet3Chat;
            var$9 = var$2;
            while (var$8.$hasNext()) {
                b: {
                    var$7 = (var$8.$next()).$playerNetServerHandler;
                    if (var$3) {
                        var$10 = var$7.$playerEntity.$chatVisibility;
                        if (var$10 == 2)
                            break b;
                        if (var$10 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        var$7 = var$7.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$7);
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                }
            }
            var$1 = var$1.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                c: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$3) {
                        var$3 = var$1.$playerEntity.$chatVisibility;
                        if (var$3 == 2)
                            break c;
                        if (var$3 == 1 && !var$9.$isServer)
                            break c;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                }
        }
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$7);
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$7);
        }
        d: while (true) {
            while (true) {
                if (!var$8.$hasNext())
                    break d;
                var$7 = (var$8.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                var$10 = var$7.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$7 = var$7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$7);
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$7);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            e: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$3) {
                    var$3 = var$1.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break e;
                    if (var$3 == 1 && !var$9.$isServer)
                        break e;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityAnimal_isInLove = $this => {
    return $this.$inLove <= 0 ? 0 : 1;
},
nms_EntityAnimal_resetInLove = $this => {
    $this.$inLove = 0;
},
nms_EntityAnimal_canMateWith = ($this, $par1EntityAnimal) => {
    let var$2, var$3, var$4, var$5;
    if ($par1EntityAnimal === $this)
        var$2 = 0;
    else {
        var$3 = $par1EntityAnimal.constructor;
        if (var$3 === null)
            var$4 = null;
        else {
            var$4 = var$3.classObject;
            if (var$4 === null) {
                var$4 = new jl_Class;
                var$4.$platformClass = var$3;
                var$3.classObject = var$4;
            }
        }
        var$5 = $this.constructor;
        if (var$5 === null)
            var$3 = null;
        else {
            var$3 = var$5.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$5;
                var$5.classObject = var$3;
            }
        }
        if (var$4 !== var$3)
            var$2 = 0;
        else {
            var$2 = $this.$inLove <= 0 ? 0 : 1;
            var$2 = var$2 && ($par1EntityAnimal.$inLove <= 0 ? 0 : 1) ? 1 : 0;
        }
    }
    return var$2;
},
nms_IInvBasic = $rt_classWithoutFields(0);
function nms_EntityHorse() {
    let a = this; nms_EntityAnimal.call(a);
    a.$eatingHaystackCounter = 0;
    a.$openMouthCounter = 0;
    a.$jumpRearingCounter = 0;
    a.$field_110278_bp = 0;
    a.$field_110279_bq = 0;
    a.$horseJumping = 0;
    a.$horseChest = null;
    a.$hasReproduced = 0;
    a.$temper = 0;
    a.$jumpPower = 0.0;
    a.$field_110294_bI = 0;
    a.$headLean = 0.0;
    a.$prevHeadLean = 0.0;
    a.$rearingAmount = 0.0;
    a.$prevRearingAmount = 0.0;
    a.$mouthOpenness = 0.0;
    a.$prevMouthOpenness = 0.0;
    a.$field_110285_bP = 0;
    a.$field_110286_bQ = null;
    a.$field_110280_bR = null;
}
let nms_EntityHorse_horseBreedingSelector = null,
nms_EntityHorse_horseJumpStrength = null,
nms_EntityHorse_horseArmorTextures = null,
nms_EntityHorse_field_110273_bx = null,
nms_EntityHorse_armorValues = null,
nms_EntityHorse_horseTextures = null,
nms_EntityHorse_field_110269_bA = null,
nms_EntityHorse_horseMarkingTextures = null,
nms_EntityHorse_field_110292_bC = null,
nms_EntityHorse__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $this.$field_110280_bR = $rt_createArray(jl_String, 3);
        $this.$field_98056_d = 1.399999976158142;
        $this.$field_98057_e = 1.600000023841858;
        var$2 = 1.399999976158142;
        var$3 = 1.600000023841858;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isImmuneToFire = 0;
        $par1World = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            $par1World = $par1World.$elementData.data[0];
            while ($par1World !== null && $par1World.$key !== null) {
                $par1World = $par1World.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $par1World.$elementData.data;
            $par1World = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($par1World !== null) {
                if ($par1World.$origKeyHash == var$5) {
                    var$7 = $par1World.$key;
                    if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                        break;
                }
                $par1World = $par1World.$next3;
            }
        }
        var$8 = ($par1World === null ? null : $par1World.$value0).$watchedObject.$value;
        $par1World = $this.$dataWatcher;
        var$5 = var$8 & (-9);
        if (var$5 >= (-128) && var$5 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[var$5 + 128 | 0];
        } else {
            var$4 = new jl_Integer;
            var$4.$value = var$5;
        }
        var$7 = $par1World.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$10 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$10) {
                    var$11 = var$7.$key;
                    if (var$9 !== var$11 && !jl_Integer_equals(var$9, var$11) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$11 = var$7 === null ? null : var$7.$value0;
        var$7 = var$11.$watchedObject;
        if (!(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$4.$value ? 1 : 0)) {
            var$11.$watchedObject = var$4;
            var$11.$watched = 1;
            $par1World.$objectChanged = 1;
        }
        var$7 = $this.$navigator;
        var$7.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAISwimming;
        var$4.$theEntity3 = $this;
        var$4.$mutexBits = 4;
        var$7.$canSwim = 1;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 0;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIPanic;
        var$4.$theEntityCreature = $this;
        var$4.$speed1 = 1.2;
        var$4.$mutexBits = 1;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 1;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIRunAroundLikeCrazy;
        var$4.$horseHost = $this;
        var$4.$field_111178_b = 1.2;
        var$4.$mutexBits = 1;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 1;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIMate;
        var$4.$theAnimal = $this;
        var$4.$theWorld2 = $this.$worldObj;
        var$4.$moveSpeed = 1.0;
        var$4.$mutexBits = 3;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 2;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIFollowParent;
        var$4.$childAnimal = $this;
        var$4.$field_75347_c = 1.0;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 4;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWander;
        var$4.$entity = $this;
        var$4.$speed = 0.7;
        var$4.$mutexBits = 1;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 6;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWatchClosest;
        var$4.$theWatcher = $this;
        var$4.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$4.$maxDistanceForPlayer = 6.0;
        var$4.$field_75331_e = 0.019999999552965164;
        var$4.$mutexBits = 2;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 7;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAILookIdle;
        var$4.$idleEntity = $this;
        var$4.$mutexBits = 3;
        var$11 = $par1World.$taskEntries;
        var$7 = new nms_EntityAITaskEntry;
        var$7.$tasks = $par1World;
        var$7.$priority = 8;
        var$7.$action = var$4;
        ju_ArrayList_ensureCapacity(var$11, var$11.$size0 + 1 | 0);
        var$6 = var$11.$array.data;
        var$8 = var$11.$size0;
        var$11.$size0 = var$8 + 1 | 0;
        var$6[var$8] = var$7;
        var$11.$modCount = var$11.$modCount + 1 | 0;
        $ptr = 2;
    case 2:
        nms_EntityHorse_func_110226_cD($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityHorse__init_0 = var_0 => {
    let var_1 = new nms_EntityHorse();
    nms_EntityHorse__init_(var_1, var_0);
    return var_1;
},
nms_EntityHorse_entityInit = $this => {
    let var$1, var$2;
    nms_EntityLiving_entityInit($this);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 12, var$2);
    var$2 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$2, 16, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 19, jl_Byte_byteCache.data[128]);
    var$2 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$2, 20, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 21, $rt_s(3));
    var$2 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$2, 22, jl_Integer_integerCache.data[128]);
},
nms_EntityHorse_getEntityName = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    if (nms_EntityLiving_hasCustomNameTag($this))
        return nms_EntityLiving_getCustomNameTag($this);
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[147];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    switch ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1) {
        case 0:
            break;
        case 1:
            nms_StatCollector_$callClinit();
            return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2203));
        case 2:
            nms_StatCollector_$callClinit();
            return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2204));
        case 3:
            nms_StatCollector_$callClinit();
            return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2205));
        case 4:
            nms_StatCollector_$callClinit();
            return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2206));
        default:
    }
    nms_StatCollector_$callClinit();
    return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2207));
},
nms_EntityHorse_isTame = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value & 2) ? 0 : 1;
},
nms_EntityHorse_func_110253_bW = $this => {
    return nms_EntityAgeable_isChild($this) ? 0 : 1;
},
nms_EntityHorse_setScaleForAge = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$par1) {
            var$2 = $this.$field_98056_d * 1.0;
            var$3 = $this.$field_98057_e * 1.0;
            $ptr = 1;
            continue main;
        }
        var$4 = nms_EntityAgeable_getGrowingAge($this);
        var$5 = var$4 >= 0 ? 1.0 : 0.5 + ((-24000) - var$4 | 0) / (-24000.0) * 0.5;
        var$3 = $this.$field_98056_d * var$5;
        var$2 = $this.$field_98057_e * var$5;
        $ptr = 2;
        continue main;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_Entity_setSize($this, var$3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityHorse_allowLeashing = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[147];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
    var$7 = var$6 != 3 && var$6 != 4 ? 0 : 1;
    return !var$7 && (!$this.$isLeashed && !$rt_isInstance($this, nms_IMob) ? 1 : 0) ? 1 : 0;
},
nms_EntityHorse_func_142017_o = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if ($par1 > 6.0) {
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (!(var$2.$watchedObject.$value & 32) ? 0 : 1) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[144];
            if (var$3 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$7 = jl_Integer_hashCode(var$3.$value);
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$3, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            var$8 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
            var$2 = $this.$dataWatcher;
            var$8 = var$8 & (-33);
            if (var$8 >= (-128) && var$8 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[var$8 + 128 | 0];
            } else {
                var$6 = new jl_Integer;
                var$6.$value = var$8;
            }
            var$3 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[144];
            if (var$9 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$7 = jl_Integer_hashCode(var$9.$value);
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$3 !== null && !(var$3.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$9, var$3.$key))) {
                    var$3 = var$3.$next3;
                }
            }
            var$10 = var$3 === null ? null : var$3.$value0;
            var$3 = var$10.$watchedObject;
            if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                var$10.$watchedObject = var$6;
                var$10.$watched = 1;
                var$2.$objectChanged = 1;
            }
        }
    }
},
nms_EntityHorse_getHorseArmorIndex = ($this, $par1ItemStack) => {
    let var$2;
    if ($par1ItemStack === null)
        var$2 = 0;
    else {
        var$2 = $par1ItemStack.$itemID;
        nms_Item_$callClinit();
        var$2 = var$2 == nms_Item_horseArmorIron.$itemID0 ? 1 : var$2 == nms_Item_horseArmorGold.$itemID0 ? 2 : var$2 != nms_Item_horseArmorDiamond.$itemID0 ? 0 : 3;
    }
    return var$2;
},
nms_EntityHorse_setChested = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    if ($par1) {
        var$2 = $this.$dataWatcher;
        $par1 = var$7 | 8;
        if ($par1 >= (-128) && $par1 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[$par1 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = $par1;
        }
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$7 = var$8.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$7) {
                    var$9 = var$3.$key;
                    if (var$8 !== var$9 && !(var$8 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$9 = var$3 === null ? null : var$3.$value0;
        var$3 = var$9.$watchedObject;
        if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
            var$9.$watchedObject = var$6;
            var$9.$watched = 1;
            var$2.$objectChanged = 1;
        }
    } else {
        var$2 = $this.$dataWatcher;
        $par1 = var$7 & (-9);
        if ($par1 >= (-128) && $par1 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[$par1 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = $par1;
        }
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$7 = var$8.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$7) {
                    var$9 = var$3.$key;
                    if (var$8 !== var$9 && !(var$8 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$9 = var$3 === null ? null : var$3.$value0;
        var$3 = var$9.$watchedObject;
        if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
            var$9.$watchedObject = var$6;
            var$9.$watched = 1;
            var$2.$objectChanged = 1;
        }
    }
},
nms_EntityHorse_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1DamageSource.$getEntity();
        var$4 = $this.$riddenByEntity;
        if (var$4 !== null && (!($var3 instanceof nms_Entity) ? 0 : $var3.$entityId != var$4.$entityId ? 0 : 1))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, var$4, var$5, $ptr);
},
nms_EntityHorse_getTotalArmorValue = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = nms_EntityHorse_armorValues;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[150];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    return var$1.data[var$2.$watchedObject.$value];
},
nms_EntityHorse_canBePushed = $this => {
    return $this.$riddenByEntity !== null ? 0 : 1;
},
nms_EntityHorse_fall = ($this, $par1) => {
    let $var4, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10, $var3, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 > 1.0) {
            $var4 = $rt_s(2208);
            var$3 = 0.4000000059604645;
            var$4 = 1.0;
            var$5 = $this.$worldObj;
            $ptr = 1;
            continue main;
        }
        $par1 = $par1 * 0.5 - 3.0;
        $var2 = $par1 | 0;
        if ($par1 > $var2)
            $var2 = $var2 + 1 | 0;
        if ($var2 <= 0)
            return;
        $var4 = nms_DamageSource_fall;
        $par1 = $var2;
        var$5 = $var4.$getEntity();
        var$7 = $this.$riddenByEntity;
        if (var$7 !== null && (!(var$5 instanceof nms_Entity) ? 0 : var$5.$entityId != var$7.$entityId ? 0 : 1)) {
            $var4 = $this.$riddenByEntity;
            if ($var4 !== null) {
                var$5 = nms_DamageSource_fall;
                $ptr = 3;
                continue main;
            }
            $var4 = $this.$worldObj;
            var$8 = $this.$posX;
            var$9 = var$8 | 0;
            if (var$8 < var$9)
                var$9 = var$9 - 1 | 0;
            var$8 = $this.$posY - 0.2 - $this.$prevRotationYaw;
            var$10 = var$8 | 0;
            if (var$8 < var$10)
                var$10 = var$10 - 1 | 0;
            var$8 = $this.$posZ;
            $var2 = var$8 | 0;
            if (var$8 < $var2)
                $var2 = $var2 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        nms_World_playSoundAtEntity(var$5, $this, $var4, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $par1 * 0.5 - 3.0;
        $var2 = $par1 | 0;
        if ($par1 > $var2)
            $var2 = $var2 + 1 | 0;
        if ($var2 <= 0)
            return;
        $var4 = nms_DamageSource_fall;
        $par1 = $var2;
        var$5 = $var4.$getEntity();
        var$7 = $this.$riddenByEntity;
        if (var$7 !== null && (!(var$5 instanceof nms_Entity) ? 0 : var$5.$entityId != var$7.$entityId ? 0 : 1)) {
            $var4 = $this.$riddenByEntity;
            if ($var4 !== null) {
                var$5 = nms_DamageSource_fall;
                $ptr = 3;
                continue main;
            }
            $var4 = $this.$worldObj;
            var$8 = $this.$posX;
            var$9 = var$8 | 0;
            if (var$8 < var$9)
                var$9 = var$9 - 1 | 0;
            var$8 = $this.$posY - 0.2 - $this.$prevRotationYaw;
            var$10 = var$8 | 0;
            if (var$8 < var$10)
                var$10 = var$10 - 1 | 0;
            var$8 = $this.$posZ;
            $var2 = var$8 | 0;
            if (var$8 < $var2)
                $var2 = $var2 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        $ptr = 2;
    case 2:
        nms_EntityAnimal_attackEntityFrom($this, $var4, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$riddenByEntity;
        if ($var4 !== null) {
            var$5 = nms_DamageSource_fall;
            $ptr = 3;
            continue main;
        }
        $var4 = $this.$worldObj;
        var$8 = $this.$posX;
        var$9 = var$8 | 0;
        if (var$8 < var$9)
            var$9 = var$9 - 1 | 0;
        var$8 = $this.$posY - 0.2 - $this.$prevRotationYaw;
        var$10 = var$8 | 0;
        if (var$8 < var$10)
            var$10 = var$10 - 1 | 0;
        var$8 = $this.$posZ;
        $var2 = var$8 | 0;
        if (var$8 < $var2)
            $var2 = $var2 - 1 | 0;
        $ptr = 4;
        continue main;
    case 3:
        $var4.$attackEntityFrom(var$5, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$worldObj;
        var$8 = $this.$posX;
        var$9 = var$8 | 0;
        if (var$8 < var$9)
            var$9 = var$9 - 1 | 0;
        var$8 = $this.$posY - 0.2 - $this.$prevRotationYaw;
        var$10 = var$8 | 0;
        if (var$8 < var$10)
            var$10 = var$10 - 1 | 0;
        var$8 = $this.$posZ;
        $var2 = var$8 | 0;
        if (var$8 < $var2)
            $var2 = $var2 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($var4, var$9, var$10, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 <= 0)
            return;
        nms_Block_$callClinit();
        $var4 = nms_Block_blocksList.data[$var3].$stepSound;
        var$5 = $this.$worldObj;
        var$12 = $var4.$stepSoundName;
        var$7 = new jl_StringBuilder;
        var$7.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(1383));
        $var3 = var$7.$length0;
        if (var$12 === null)
            var$12 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$7, $var3, var$12);
        var$12 = new jl_String;
        var$13 = var$7.$buffer;
        var$14 = var$13.data;
        var$10 = var$7.$length0;
        $var3 = var$14.length;
        if (var$10 >= 0 && var$10 <= ($var3 - 0 | 0)) {
            var$12.$nativeString = $rt_charArrayToString(var$13.data, 0, var$10);
            var$3 = $var4.$stepSoundVolume * 0.5;
            $par1 = $var4.$stepSoundPitch * 0.75;
            $ptr = 5;
            continue main;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($var4);
        $rt_throw($var4);
    case 5:
        nms_World_playSoundAtEntity(var$5, $this, var$12, var$3, $par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var4, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10, $var3, var$12, var$13, var$14, $ptr);
},
nms_EntityHorse_func_110226_cD = $this => {
    let $var1, var$2, var$3, var$4, $var3, var$6, var$7, $var2, var$9, $var2_0, $var4, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();$var2_0 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$horseChest;
        var$2 = new nms_AnimalChest;
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[147];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $var3 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[$var3 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $var3) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        $var2 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value1;
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$7.$value);
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$9 & (var$6.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$7, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        $var3 = !(var$3.$watchedObject.$value & 8) ? 0 : 1;
        $var2_0 = $var3 && !($var2 != 1 && $var2 != 2) ? 17 : 2;
        a: {
            var$2.$inventoryTitle = $rt_s(2209);
            var$2.$field_94051_e = 0;
            var$2.$slotsCount = $var2_0;
            var$2.$inventoryContents = $rt_createArray(nms_ItemStack, $var2_0);
            $this.$horseChest = var$2;
            $var4 = nms_EntityHorse_getEntityName($this);
            var$2.$field_94051_e = 1;
            var$2.$inventoryTitle = $var4;
            if ($var1 !== null) {
                var$2 = $var1.$field_70480_d;
                var$12 = var$2.$size0;
                $var3 = 0;
                b: {
                    while (true) {
                        $var2_0 = $rt_compare($var3, var$12);
                        if ($var2_0 >= 0) {
                            $var3 = (-1);
                            break b;
                        }
                        if ($var3 < 0)
                            break a;
                        if ($var2_0 >= 0)
                            break a;
                        $var4 = var$2.$array.data[$var3];
                        if ($this !== $var4 ? ($this !== null ? (!($var4 instanceof nms_Entity) ? 0 : $var4.$entityId != $this.$entityId ? 0 : 1) : $var4 !== null ? 0 : 1) : 1)
                            break;
                        $var3 = $var3 + 1 | 0;
                    }
                }
                if ($var3 >= 0)
                    ju_ArrayList_remove(var$2, $var3);
                $var2_0 = $var1.$slotsCount;
                $var2 = $this.$horseChest.$slotsCount;
                if ($var2_0 < $var2)
                    $var2 = $var2_0;
                $var3 = 0;
                var$13 = 64;
                var$14 = 64;
                while ($var3 < $var2) {
                    $var4 = $var1.$inventoryContents.data[$var3];
                    if ($var4 !== null) {
                        var$2 = $this.$horseChest;
                        var$15 = new nms_ItemStack;
                        $var2_0 = $var4.$itemID;
                        var$12 = $var4.$stackSize;
                        var$9 = $var4.$itemDamage;
                        nms_ItemStack_$callClinit();
                        var$15.$itemID = $var2_0;
                        var$15.$stackSize = var$12;
                        var$15.$itemDamage = var$9;
                        if (var$9 < 0)
                            var$15.$itemDamage = 0;
                        var$16 = $var4.$stackTagCompound;
                        if (var$16 !== null) {
                            var$17 = new nms_NBTTagCompound;
                            $var4 = var$16.$name;
                            if ($var4 === null)
                                $var4 = $rt_s(3);
                            var$17.$name = $var4;
                            $var4 = new ju_HashMap;
                            $var2_0 = ju_HashMap_calculateCapacity(16);
                            $var4.$elementCount = 0;
                            var$18 = $rt_createArray(ju_HashMap$HashEntry, $var2_0);
                            var$6 = var$18.data;
                            $var4.$elementData = var$18;
                            $var4.$loadFactor = 0.75;
                            $var4.$threshold = var$6.length * 0.75 | 0;
                            var$17.$tagMap = $var4;
                            var$3 = var$16.$tagMap;
                            if (var$3.$cachedKeySet === null) {
                                $var4 = new ju_HashMap$1;
                                $var4.$this$0 = var$3;
                                var$3.$cachedKeySet = $var4;
                            }
                            var$19 = var$3.$cachedKeySet.$iterator();
                            while (var$19.$hasNext()) {
                                $var4 = var$19.$next();
                                var$3 = var$16.$tagMap;
                                if ($var4 === null) {
                                    var$3 = var$3.$elementData.data[0];
                                    while (var$3 !== null && var$3.$key !== null) {
                                        var$3 = var$3.$next3;
                                    }
                                } else {
                                    c: {
                                        if (!$var4.$hashCode1) {
                                            $var2_0 = 0;
                                            while (true) {
                                                if ($var2_0 >= $var4.$nativeString.length)
                                                    break c;
                                                $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt($var2_0) | 0;
                                                $var2_0 = $var2_0 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$9 = $var4.$hashCode1;
                                    var$6 = var$3.$elementData.data;
                                    var$3 = var$6[var$9 & (var$6.length - 1 | 0)];
                                    while (var$3 !== null) {
                                        if (var$3.$origKeyHash == var$9) {
                                            d: {
                                                var$4 = var$3.$key;
                                                if ($var4 !== var$4) {
                                                    if ($var4 === var$4)
                                                        $var2_0 = 1;
                                                    else if (!(var$4 instanceof jl_String))
                                                        $var2_0 = 0;
                                                    else {
                                                        var$4 = var$4;
                                                        $var2_0 = $var4.$nativeString !== var$4.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var2_0) {
                                                        $var2_0 = 0;
                                                        break d;
                                                    }
                                                }
                                                $var2_0 = 1;
                                            }
                                            if ($var2_0)
                                                break;
                                        }
                                        var$3 = var$3.$next3;
                                    }
                                }
                                var$3 = var$3 === null ? null : var$3.$value0;
                                var$3 = var$3.$copy();
                                var$4 = var$17.$tagMap;
                                if ($var4 !== null)
                                    var$3.$name = $var4;
                                else
                                    var$3.$name = $rt_s(3);
                                ju_HashMap_putImpl(var$4, $var4, var$3);
                            }
                            var$15.$stackTagCompound = var$17;
                        }
                        var$2.$inventoryContents.data[$var3] = var$15;
                        if (var$15.$stackSize > var$13)
                            var$15.$stackSize = var$14;
                        $ptr = 1;
                        continue main;
                    }
                    $var3 = $var3 + 1 | 0;
                }
            }
            var$2 = $this.$horseChest;
            if (var$2.$field_70480_d === null) {
                $var4 = new ju_ArrayList;
                $var4.$array = $rt_createArray(jl_Object, 10);
                var$2.$field_70480_d = $var4;
            }
            var$2 = var$2.$field_70480_d;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$6 = var$2.$array.data;
            $var2_0 = var$2.$size0;
            var$2.$size0 = $var2_0 + 1 | 0;
            var$6[$var2_0] = $this;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            if (!$this.$worldObj.$isRemote) {
                $var3 = $this.$horseChest.$inventoryContents.data[0] === null ? 0 : 1;
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var1 = jl_Integer_integerCache.data[144];
                if ($var1 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$9 = jl_Integer_hashCode($var1.$value);
                    var$6 = var$2.$elementData.data;
                    var$2 = var$6[var$9 & (var$6.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == var$9 && ju_HashMap_areEqualKeys($var1, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                var$12 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
                if ($var3) {
                    var$2 = $this.$dataWatcher;
                    $var3 = var$12 | 4;
                    if ($var3 >= (-128) && $var3 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                    } else {
                        $var4 = new jl_Integer;
                        $var4.$value = $var3;
                    }
                    $var1 = var$2.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 === null) {
                        $var1 = $var1.$elementData.data[0];
                        while ($var1 !== null && $var1.$key !== null) {
                            $var1 = $var1.$next3;
                        }
                    } else {
                        var$12 = jl_Integer_hashCode(var$4.$value);
                        var$6 = $var1.$elementData.data;
                        $var1 = var$6[var$12 & (var$6.length - 1 | 0)];
                        while ($var1 !== null && !($var1.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$4, $var1.$key))) {
                            $var1 = $var1.$next3;
                        }
                    }
                    var$3 = $var1 === null ? null : $var1.$value0;
                    $var1 = var$3.$watchedObject;
                    if (!($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var4.$value ? 1 : 0)) {
                        var$3.$watchedObject = $var4;
                        var$3.$watched = 1;
                        var$2.$objectChanged = 1;
                    }
                } else {
                    var$2 = $this.$dataWatcher;
                    $var3 = var$12 & (-5);
                    if ($var3 >= (-128) && $var3 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                    } else {
                        $var4 = new jl_Integer;
                        $var4.$value = $var3;
                    }
                    $var1 = var$2.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 === null) {
                        $var1 = $var1.$elementData.data[0];
                        while ($var1 !== null && $var1.$key !== null) {
                            $var1 = $var1.$next3;
                        }
                    } else {
                        var$12 = jl_Integer_hashCode(var$4.$value);
                        var$6 = $var1.$elementData.data;
                        $var1 = var$6[var$12 & (var$6.length - 1 | 0)];
                        while ($var1 !== null && !($var1.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$4, $var1.$key))) {
                            $var1 = $var1.$next3;
                        }
                    }
                    var$3 = $var1 === null ? null : $var1.$value0;
                    $var1 = var$3.$watchedObject;
                    if (!($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var4.$value ? 1 : 0)) {
                        var$3.$watchedObject = $var4;
                        var$3.$watched = 1;
                        var$2.$objectChanged = 1;
                    }
                }
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var4 = jl_Integer_integerCache.data[147];
                if ($var4 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var3 = jl_Integer_hashCode($var4.$value);
                    var$6 = var$2.$elementData.data;
                    var$2 = var$6[$var3 & (var$6.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var3 && ju_HashMap_areEqualKeys($var4, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1 ? 0 : 1) {
                    $var3 = nms_EntityHorse_getHorseArmorIndex($this, $this.$horseChest.$inventoryContents.data[1]);
                    var$2 = $this.$dataWatcher;
                    if ($var3 >= (-128) && $var3 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                    } else {
                        $var4 = new jl_Integer;
                        $var4.$value = $var3;
                    }
                    $var1 = var$2.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[150];
                    if (var$4 === null) {
                        $var1 = $var1.$elementData.data[0];
                        while ($var1 !== null && $var1.$key !== null) {
                            $var1 = $var1.$next3;
                        }
                    } else {
                        var$12 = var$4.$value;
                        var$6 = $var1.$elementData.data;
                        $var1 = var$6[var$12 & (var$6.length - 1 | 0)];
                        while ($var1 !== null) {
                            if ($var1.$origKeyHash == var$12) {
                                var$3 = $var1.$key;
                                if (var$4 !== var$3 && !jl_Integer_equals(var$4, var$3) ? 0 : 1)
                                    break;
                            }
                            $var1 = $var1.$next3;
                        }
                    }
                    var$3 = $var1 === null ? null : $var1.$value0;
                    $var1 = var$3.$watchedObject;
                    if (!($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var4.$value ? 1 : 0)) {
                        var$3.$watchedObject = $var4;
                        var$3.$watched = 1;
                        var$2.$objectChanged = 1;
                    }
                    $this.$field_110286_bQ = null;
                }
            }
            return;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$2);
        $rt_throw(var$2);
    case 1:
        nms_InventoryBasic_onInventoryChanged(var$2);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var3 = $var3 + 1 | 0;
            if ($var3 >= $var2)
                break;
            $var4 = $var1.$inventoryContents.data[$var3];
            if ($var4 === null)
                continue;
            else {
                var$2 = $this.$horseChest;
                var$15 = new nms_ItemStack;
                $var2_0 = $var4.$itemID;
                var$12 = $var4.$stackSize;
                var$9 = $var4.$itemDamage;
                nms_ItemStack_$callClinit();
                var$15.$itemID = $var2_0;
                var$15.$stackSize = var$12;
                var$15.$itemDamage = var$9;
                if (var$9 < 0)
                    var$15.$itemDamage = 0;
                var$16 = $var4.$stackTagCompound;
                if (var$16 !== null) {
                    var$17 = new nms_NBTTagCompound;
                    $var4 = var$16.$name;
                    if ($var4 === null)
                        $var4 = $rt_s(3);
                    var$17.$name = $var4;
                    $var4 = new ju_HashMap;
                    $var2_0 = ju_HashMap_calculateCapacity(16);
                    $var4.$elementCount = 0;
                    var$18 = $rt_createArray(ju_HashMap$HashEntry, $var2_0);
                    var$6 = var$18.data;
                    $var4.$elementData = var$18;
                    $var4.$loadFactor = 0.75;
                    $var4.$threshold = var$6.length * 0.75 | 0;
                    var$17.$tagMap = $var4;
                    var$3 = var$16.$tagMap;
                    if (var$3.$cachedKeySet === null) {
                        $var4 = new ju_HashMap$1;
                        $var4.$this$0 = var$3;
                        var$3.$cachedKeySet = $var4;
                    }
                    var$19 = var$3.$cachedKeySet.$iterator();
                    while (var$19.$hasNext()) {
                        $var4 = var$19.$next();
                        var$3 = var$16.$tagMap;
                        if ($var4 === null) {
                            var$3 = var$3.$elementData.data[0];
                            while (var$3 !== null && var$3.$key !== null) {
                                var$3 = var$3.$next3;
                            }
                        } else {
                            e: {
                                if (!$var4.$hashCode1) {
                                    $var2_0 = 0;
                                    while (true) {
                                        if ($var2_0 >= $var4.$nativeString.length)
                                            break e;
                                        $var4.$hashCode1 = (31 * $var4.$hashCode1 | 0) + $var4.$nativeString.charCodeAt($var2_0) | 0;
                                        $var2_0 = $var2_0 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = $var4.$hashCode1;
                            var$6 = var$3.$elementData.data;
                            var$3 = var$6[var$9 & (var$6.length - 1 | 0)];
                            while (var$3 !== null) {
                                if (var$3.$origKeyHash == var$9) {
                                    f: {
                                        var$4 = var$3.$key;
                                        if ($var4 !== var$4) {
                                            if ($var4 === var$4)
                                                $var2_0 = 1;
                                            else if (!(var$4 instanceof jl_String))
                                                $var2_0 = 0;
                                            else {
                                                var$4 = var$4;
                                                $var2_0 = $var4.$nativeString !== var$4.$nativeString ? 0 : 1;
                                            }
                                            if (!$var2_0) {
                                                $var2_0 = 0;
                                                break f;
                                            }
                                        }
                                        $var2_0 = 1;
                                    }
                                    if ($var2_0)
                                        break;
                                }
                                var$3 = var$3.$next3;
                            }
                        }
                        var$3 = var$3 === null ? null : var$3.$value0;
                        var$3 = var$3.$copy();
                        var$4 = var$17.$tagMap;
                        if ($var4 !== null)
                            var$3.$name = $var4;
                        else
                            var$3.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$4, $var4, var$3);
                    }
                    var$15.$stackTagCompound = var$17;
                }
                var$2.$inventoryContents.data[$var3] = var$15;
                if (var$15.$stackSize > var$13)
                    var$15.$stackSize = var$14;
                continue main;
            }
        }
        var$2 = $this.$horseChest;
        if (var$2.$field_70480_d === null) {
            $var4 = new ju_ArrayList;
            $var4.$array = $rt_createArray(jl_Object, 10);
            var$2.$field_70480_d = $var4;
        }
        var$2 = var$2.$field_70480_d;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$6 = var$2.$array.data;
        $var2_0 = var$2.$size0;
        var$2.$size0 = $var2_0 + 1 | 0;
        var$6[$var2_0] = $this;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        if (!$this.$worldObj.$isRemote) {
            $var3 = $this.$horseChest.$inventoryContents.data[0] === null ? 0 : 1;
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var1 = jl_Integer_integerCache.data[144];
            if ($var1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$9 = jl_Integer_hashCode($var1.$value);
                var$6 = var$2.$elementData.data;
                var$2 = var$6[var$9 & (var$6.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == var$9 && ju_HashMap_areEqualKeys($var1, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            var$12 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
            if ($var3) {
                var$2 = $this.$dataWatcher;
                $var3 = var$12 | 4;
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    $var4 = new jl_Integer;
                    $var4.$value = $var3;
                }
                $var1 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[144];
                if (var$4 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$12 = jl_Integer_hashCode(var$4.$value);
                    var$6 = $var1.$elementData.data;
                    $var1 = var$6[var$12 & (var$6.length - 1 | 0)];
                    while ($var1 !== null && !($var1.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$4, $var1.$key))) {
                        $var1 = $var1.$next3;
                    }
                }
                var$3 = $var1 === null ? null : $var1.$value0;
                $var1 = var$3.$watchedObject;
                if (!($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var4.$value ? 1 : 0)) {
                    var$3.$watchedObject = $var4;
                    var$3.$watched = 1;
                    var$2.$objectChanged = 1;
                }
            } else {
                var$2 = $this.$dataWatcher;
                $var3 = var$12 & (-5);
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    $var4 = new jl_Integer;
                    $var4.$value = $var3;
                }
                $var1 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[144];
                if (var$4 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$12 = jl_Integer_hashCode(var$4.$value);
                    var$6 = $var1.$elementData.data;
                    $var1 = var$6[var$12 & (var$6.length - 1 | 0)];
                    while ($var1 !== null && !($var1.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$4, $var1.$key))) {
                        $var1 = $var1.$next3;
                    }
                }
                var$3 = $var1 === null ? null : $var1.$value0;
                $var1 = var$3.$watchedObject;
                if (!($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var4.$value ? 1 : 0)) {
                    var$3.$watchedObject = $var4;
                    var$3.$watched = 1;
                    var$2.$objectChanged = 1;
                }
            }
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var4 = jl_Integer_integerCache.data[147];
            if ($var4 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                $var3 = jl_Integer_hashCode($var4.$value);
                var$6 = var$2.$elementData.data;
                var$2 = var$6[$var3 & (var$6.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == $var3 && ju_HashMap_areEqualKeys($var4, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1 ? 0 : 1) {
                $var3 = nms_EntityHorse_getHorseArmorIndex($this, $this.$horseChest.$inventoryContents.data[1]);
                var$2 = $this.$dataWatcher;
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    $var4 = new jl_Integer;
                    $var4.$value = $var3;
                }
                $var1 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[150];
                if (var$4 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$12 = var$4.$value;
                    var$6 = $var1.$elementData.data;
                    $var1 = var$6[var$12 & (var$6.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$12) {
                            var$3 = $var1.$key;
                            if (var$4 !== var$3 && !jl_Integer_equals(var$4, var$3) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                var$3 = $var1 === null ? null : $var1.$value0;
                $var1 = var$3.$watchedObject;
                if (!($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var4.$value ? 1 : 0)) {
                    var$3.$watchedObject = $var4;
                    var$3.$watched = 1;
                    var$2.$objectChanged = 1;
                }
                $this.$field_110286_bQ = null;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, $var3, var$6, var$7, $var2, var$9, $var2_0, $var4, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_EntityHorse_func_110232_cE = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    if (!$this.$worldObj.$isRemote) {
        var$1 = $this.$horseChest.$inventoryContents.data[0] === null ? 0 : 1;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
        if (var$1) {
            var$2 = $this.$dataWatcher;
            var$1 = var$4 | 4;
            if (var$1 >= (-128) && var$1 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[var$1 + 128 | 0];
            } else {
                var$3 = new jl_Integer;
                var$3.$value = var$1;
            }
            var$6 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[144];
            if (var$7 === null) {
                var$6 = var$6.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                var$4 = var$7.$value;
                var$5 = var$6.$elementData.data;
                var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$4) {
                        var$8 = var$6.$key;
                        if (var$7 !== var$8 && !jl_Integer_equals(var$7, var$8) ? 0 : 1)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$8 = var$6 === null ? null : var$6.$value0;
            var$6 = var$8.$watchedObject;
            if (!(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$3.$value ? 1 : 0)) {
                var$8.$watchedObject = var$3;
                var$8.$watched = 1;
                var$2.$objectChanged = 1;
            }
        } else {
            var$2 = $this.$dataWatcher;
            var$9 = var$4 & (-5);
            if (var$9 >= (-128) && var$9 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[var$9 + 128 | 0];
            } else {
                var$6 = new jl_Integer;
                var$6.$value = var$9;
            }
            var$3 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[144];
            if (var$7 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$1 = var$7.$value;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$1 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$1) {
                        var$8 = var$3.$key;
                        if (var$7 !== var$8 && !jl_Integer_equals(var$7, var$8) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$8 = var$3 === null ? null : var$3.$value0;
            var$3 = var$8.$watchedObject;
            if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                var$8.$watchedObject = var$6;
                var$8.$watched = 1;
                var$2.$objectChanged = 1;
            }
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[147];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$6.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$3 = var$2.$key;
                    if (var$6 !== var$3 && !jl_Integer_equals(var$6, var$3) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1 ? 0 : 1) {
            var$1 = nms_EntityHorse_getHorseArmorIndex($this, $this.$horseChest.$inventoryContents.data[1]);
            var$2 = $this.$dataWatcher;
            if (var$1 >= (-128) && var$1 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[var$1 + 128 | 0];
            } else {
                var$3 = new jl_Integer;
                var$3.$value = var$1;
            }
            var$6 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[150];
            if (var$7 === null) {
                var$6 = var$6.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                var$4 = var$7.$value;
                var$5 = var$6.$elementData.data;
                var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$4) {
                        var$8 = var$6.$key;
                        if (var$7 !== var$8 && !(var$7 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$8 = var$6 === null ? null : var$6.$value0;
            var$6 = var$8.$watchedObject;
            if (!(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$3.$value ? 1 : 0)) {
                var$8.$watchedObject = var$3;
                var$8.$watched = 1;
                var$2.$objectChanged = 1;
            }
            $this.$field_110286_bQ = null;
        }
    }
},
nms_EntityHorse_onInventoryChanged = ($this, $par1InventoryBasic) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1InventoryBasic = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[150];
        if (var$2 === null) {
            $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
            while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                $par1InventoryBasic = $par1InventoryBasic.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $par1InventoryBasic.$elementData.data;
            $par1InventoryBasic = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($par1InventoryBasic !== null) {
                if ($par1InventoryBasic.$origKeyHash == var$3) {
                    var$5 = $par1InventoryBasic.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1InventoryBasic = $par1InventoryBasic.$next3;
            }
        }
        var$6 = ($par1InventoryBasic === null ? null : $par1InventoryBasic.$value0).$watchedObject.$value;
        $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 !== null) {
            var$7 = var$5.$value;
            var$4 = $par1InventoryBasic.$elementData.data;
            $par1InventoryBasic = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($par1InventoryBasic !== null) {
                if ($par1InventoryBasic.$origKeyHash == var$7) {
                    var$2 = $par1InventoryBasic.$key;
                    if (var$5 !== var$2 && !jl_Integer_equals(var$5, var$2) ? 0 : 1)
                        break;
                }
                $par1InventoryBasic = $par1InventoryBasic.$next3;
            }
        } else {
            $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
            while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                $par1InventoryBasic = $par1InventoryBasic.$next3;
            }
        }
        $par1InventoryBasic = $par1InventoryBasic === null ? null : $par1InventoryBasic.$value0;
        var$8 = !($par1InventoryBasic.$watchedObject.$value & 4) ? 0 : 1;
        if (!$this.$worldObj.$isRemote) {
            var$3 = $this.$horseChest.$inventoryContents.data[0] === null ? 0 : 1;
            $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
                while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                    $par1InventoryBasic = $par1InventoryBasic.$next3;
                }
            } else {
                var$9 = jl_Integer_hashCode(var$5.$value);
                var$4 = $par1InventoryBasic.$elementData.data;
                $par1InventoryBasic = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($par1InventoryBasic !== null && !($par1InventoryBasic.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$5, $par1InventoryBasic.$key))) {
                    $par1InventoryBasic = $par1InventoryBasic.$next3;
                }
            }
            var$7 = ($par1InventoryBasic === null ? null : $par1InventoryBasic.$value0).$watchedObject.$value;
            if (var$3) {
                $par1InventoryBasic = $this.$dataWatcher;
                var$3 = var$7 | 4;
                if (var$3 >= (-128) && var$3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = var$3;
                }
                var$5 = $par1InventoryBasic.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$10 = jl_Integer_integerCache.data[144];
                if (var$10 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$7 = jl_Integer_hashCode(var$10.$value);
                    var$4 = var$5.$elementData.data;
                    var$5 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while (var$5 !== null && !(var$5.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$10, var$5.$key))) {
                        var$5 = var$5.$next3;
                    }
                }
                var$11 = var$5 === null ? null : var$5.$value0;
                var$5 = var$11.$watchedObject;
                if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
                    var$11.$watchedObject = var$2;
                    var$11.$watched = 1;
                    $par1InventoryBasic.$objectChanged = 1;
                }
            } else {
                $par1InventoryBasic = $this.$dataWatcher;
                var$3 = var$7 & (-5);
                if (var$3 >= (-128) && var$3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = var$3;
                }
                var$5 = $par1InventoryBasic.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$10 = jl_Integer_integerCache.data[144];
                if (var$10 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$7 = jl_Integer_hashCode(var$10.$value);
                    var$4 = var$5.$elementData.data;
                    var$5 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while (var$5 !== null && !(var$5.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$10, var$5.$key))) {
                        var$5 = var$5.$next3;
                    }
                }
                var$11 = var$5 === null ? null : var$5.$value0;
                var$5 = var$11.$watchedObject;
                if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
                    var$11.$watchedObject = var$2;
                    var$11.$watched = 1;
                    $par1InventoryBasic.$objectChanged = 1;
                }
            }
            $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[147];
            if (var$5 === null) {
                $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
                while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                    $par1InventoryBasic = $par1InventoryBasic.$next3;
                }
            } else {
                var$7 = jl_Integer_hashCode(var$5.$value);
                var$4 = $par1InventoryBasic.$elementData.data;
                $par1InventoryBasic = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($par1InventoryBasic !== null && !($par1InventoryBasic.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$5, $par1InventoryBasic.$key))) {
                    $par1InventoryBasic = $par1InventoryBasic.$next3;
                }
            }
            if (($par1InventoryBasic === null ? null : $par1InventoryBasic.$value0).$watchedObject.$value1 ? 0 : 1) {
                var$3 = nms_EntityHorse_getHorseArmorIndex($this, $this.$horseChest.$inventoryContents.data[1]);
                $par1InventoryBasic = $this.$dataWatcher;
                if (var$3 >= (-128) && var$3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = var$3;
                }
                var$5 = $par1InventoryBasic.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$10 = jl_Integer_integerCache.data[150];
                if (var$10 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$7 = var$10.$value;
                    var$4 = var$5.$elementData.data;
                    var$5 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$7) {
                            var$11 = var$5.$key;
                            if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$11 = var$5 === null ? null : var$5.$value0;
                var$5 = var$11.$watchedObject;
                if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
                    var$11.$watchedObject = var$2;
                    var$11.$watched = 1;
                    $par1InventoryBasic.$objectChanged = 1;
                }
                $this.$field_110286_bQ = null;
            }
        }
        if ($this.$ticksExisted > 20) {
            if (!var$6) {
                $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[150];
                if (var$5 === null) {
                    $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
                    while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                        $par1InventoryBasic = $par1InventoryBasic.$next3;
                    }
                } else {
                    var$7 = var$5.$value;
                    var$4 = $par1InventoryBasic.$elementData.data;
                    $par1InventoryBasic = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($par1InventoryBasic !== null) {
                        if ($par1InventoryBasic.$origKeyHash == var$7) {
                            var$2 = $par1InventoryBasic.$key;
                            if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$7 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $par1InventoryBasic = $par1InventoryBasic.$next3;
                    }
                }
                if (var$6 != ($par1InventoryBasic === null ? null : $par1InventoryBasic.$value0).$watchedObject.$value) {
                    $par1InventoryBasic = $rt_s(2210);
                    var$12 = 0.5;
                    var$13 = 1.0;
                    var$2 = $this.$worldObj;
                    $ptr = 1;
                    continue main;
                }
            }
            if (!var$8) {
                $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[144];
                if (var$5 === null) {
                    $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
                    while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                        $par1InventoryBasic = $par1InventoryBasic.$next3;
                    }
                } else {
                    var$8 = var$5.$value;
                    var$4 = $par1InventoryBasic.$elementData.data;
                    $par1InventoryBasic = var$4[var$8 & (var$4.length - 1 | 0)];
                    while ($par1InventoryBasic !== null) {
                        if ($par1InventoryBasic.$origKeyHash == var$8) {
                            var$2 = $par1InventoryBasic.$key;
                            if (var$5 !== var$2 && !jl_Integer_equals(var$5, var$2) ? 0 : 1)
                                break;
                        }
                        $par1InventoryBasic = $par1InventoryBasic.$next3;
                    }
                }
                $par1InventoryBasic = $par1InventoryBasic === null ? null : $par1InventoryBasic.$value0;
                if (!($par1InventoryBasic.$watchedObject.$value & 4) ? 0 : 1) {
                    $par1InventoryBasic = $rt_s(2211);
                    var$12 = 0.5;
                    var$13 = 1.0;
                    var$2 = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$2, $this, $par1InventoryBasic, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        if (!var$8) {
            $par1InventoryBasic = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                $par1InventoryBasic = $par1InventoryBasic.$elementData.data[0];
                while ($par1InventoryBasic !== null && $par1InventoryBasic.$key !== null) {
                    $par1InventoryBasic = $par1InventoryBasic.$next3;
                }
            } else {
                var$8 = var$5.$value;
                var$4 = $par1InventoryBasic.$elementData.data;
                $par1InventoryBasic = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($par1InventoryBasic !== null) {
                    if ($par1InventoryBasic.$origKeyHash == var$8) {
                        var$2 = $par1InventoryBasic.$key;
                        if (var$5 !== var$2 && !jl_Integer_equals(var$5, var$2) ? 0 : 1)
                            break;
                    }
                    $par1InventoryBasic = $par1InventoryBasic.$next3;
                }
            }
            $par1InventoryBasic = $par1InventoryBasic === null ? null : $par1InventoryBasic.$value0;
            if (!($par1InventoryBasic.$watchedObject.$value & 4) ? 0 : 1) {
                $par1InventoryBasic = $rt_s(2211);
                var$12 = 0.5;
                var$13 = 1.0;
                var$2 = $this.$worldObj;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_World_playSoundAtEntity(var$2, $this, $par1InventoryBasic, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1InventoryBasic, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityHorse_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$posX;
        var$2 = var$1 | 0;
        if (var$1 < var$2)
            var$2 = var$2 - 1 | 0;
        var$1 = $this.$posZ;
        var$3 = var$1 | 0;
        if (var$1 < var$3)
            var$3 = var$3 - 1 | 0;
        var$4 = $this.$worldObj;
        var$5 = var$2 >> 4;
        var$6 = var$3 >> 4;
        var$7 = var$4.$chunkProvider.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$6), Long_create(4294967295, 0)), 32));
        var$9 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        var$10 = nms_LongHashMap_hash(var$9);
        var$11 = var$7.$hashArray.data;
        var$7 = var$11[var$10 & (var$11.length - 1 | 0)];
        a: {
            while (true) {
                if (var$7 === null) {
                    var$7 = null;
                    break a;
                }
                if (Long_eq(var$7.$key1, var$8))
                    break;
                var$7 = var$7.$nextEntry;
            }
        }
        var$12 = var$7 === null ? 0 : 1;
        b: {
            c: {
                if (var$12) {
                    var$7 = var$4.$chunkProvider;
                    var$13 = var$7.$loadedChunkHashMap;
                    var$12 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                    var$9 = var$12 ^ (var$12 >>> 7 | 0) ^ (var$12 >>> 4 | 0);
                    var$11 = var$13.$hashArray.data;
                    var$13 = var$11[var$9 & (var$11.length - 1 | 0)];
                    d: {
                        while (var$13 !== null) {
                            if (Long_eq(var$13.$key1, var$8)) {
                                var$13 = var$13.$value4;
                                break d;
                            }
                            var$13 = var$13.$nextEntry;
                        }
                        var$13 = null;
                    }
                    var$13 = var$13;
                    if (var$13 === null) {
                        if (var$7.$worldObj0.$findingSpawnPoint)
                            break b;
                        if (var$7.$loadChunkOnProvideRequest)
                            break b;
                        var$13 = var$7.$defaultEmptyChunk;
                    }
                    if (var$13 !== null) {
                        nms_Chunk_getBiomeGenForWorldCoords(var$13, var$2 & 15, var$3 & 15, var$4.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                var$4.$provider.$worldChunkMgr.$getBiomeGenAt(var$2, var$3);
            }
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_EntityAnimal_getCanSpawnHere($this);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        return var$12;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$7, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (var$13 === null)
            var$4.$provider.$worldChunkMgr.$getBiomeGenAt(var$2, var$3);
        else
            nms_Chunk_getBiomeGenForWorldCoords(var$13, var$2 & 15, var$3 & 15, var$4.$provider.$worldChunkMgr);
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityHorse_getClosestHorse = ($this, $par1Entity, $par2) => {
    let $var4, $var6, $var7, $var9, var$7, $var8$index, var$9, var$10, $var8$index_0, $var10, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var10 = $thread.pop();$var8$index_0 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8$index = $thread.pop();var$7 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = 1.7976931348623157E308;
        $var6 = null;
        $var7 = $this.$worldObj;
        $var9 = nms_AxisAlignedBB_addCoord($par1Entity.$boundingBox0, $par2, $par2, $par2);
        var$7 = nms_EntityHorse_horseBreedingSelector;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var7, $par1Entity, $var9, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var8$index = 0;
        var$9 = $var7.$modCount;
        var$10 = $var7.$size();
        while ($var8$index >= var$10 ? 0 : 1) {
            if (var$9 < $var7.$modCount) {
                $par1Entity = new ju_ConcurrentModificationException;
                $par1Entity.$suppressionEnabled = 1;
                $par1Entity.$writableStackTrace = 1;
                $rt_throw($par1Entity);
            }
            $var8$index_0 = $var8$index + 1 | 0;
            $var9 = $var7.$get($var8$index);
            $var10 = $par1Entity.$posX;
            var$13 = $par1Entity.$posY;
            var$14 = $par1Entity.$posZ;
            $par2 = $var9.$posX - $var10;
            $var10 = $var9.$posY - var$13;
            var$13 = $var9.$posZ - var$14;
            $var10 = $par2 * $par2 + $var10 * $var10 + var$13 * var$13;
            if ($var10 < $var4) {
                $var6 = $var9;
                $var4 = $var10;
            }
            $var8$index = $var8$index_0;
        }
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var4, $var6, $var7, $var9, var$7, $var8$index, var$9, var$10, $var8$index_0, $var10, var$13, var$14, $ptr);
},
nms_EntityHorse_getDeathSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if (!$this.$worldObj.$isRemote) {
        $this.$openMouthCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$7 = var$6 | 128;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$5 = new jl_Integer;
            var$5.$value = var$7;
        }
        var$2 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$8.$value;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$9 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$10 = var$2.$key;
                    if (var$8 !== var$10 && !jl_Integer_equals(var$8, var$10) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$10 = var$2 === null ? null : var$2.$value0;
        var$2 = var$10.$watchedObject;
        if (!(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$5.$value ? 1 : 0)) {
            var$10.$watchedObject = var$5;
            var$10.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[147];
    if (var$5 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$7 = var$5.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$7) {
                var$2 = var$1.$key;
                if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
    return var$6 == 3 ? $rt_s(2212) : var$6 == 4 ? $rt_s(2213) : var$6 != 1 && var$6 != 2 ? $rt_s(2214) : $rt_s(2215);
},
nms_EntityHorse_getDropItemId = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    $var1 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31)) ? 0 : 1;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[147];
    if (var$4 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$1.$elementData.data;
        var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$5) {
                var$7 = var$1.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$8 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
    if (var$8 == 4) {
        nms_Item_$callClinit();
        $var1 = nms_Item_bone.$itemID0;
    } else if (var$8 != 3) {
        nms_Item_$callClinit();
        $var1 = nms_Item_leather.$itemID0;
    } else if ($var1)
        $var1 = 0;
    else {
        nms_Item_$callClinit();
        $var1 = nms_Item_rottenFlesh.$itemID0;
    }
    return $var1;
},
nms_EntityHorse_getHurtSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    if (!$this.$worldObj.$isRemote) {
        $this.$openMouthCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 | 128;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$8 = var$7.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$8) {
                    var$9 = var$5.$key;
                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    var$1 = $this.$rand;
    var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$10;
    var$8 = Long_lo(Long_shru(var$10, 17));
    while (true) {
        var$11 = var$8 % 3 | 0;
        if (((var$8 - var$11 | 0) + 2 | 0) >= 0)
            break;
        var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$10;
        var$8 = Long_lo(Long_shru(var$10, 17));
    }
    if (!var$11 && !$this.$worldObj.$isRemote) {
        $this.$jumpRearingCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$1 = ju_HashMap_entryByKey(var$1, jl_Integer_integerCache.data[144]);
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 & (-33);
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            jl_Object__init_(var$2);
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = ju_HashMap_entryByKey(var$5, jl_Integer_integerCache.data[144]);
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$11 = jl_Integer_hashCode(var$5.$value);
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$11 & (var$4.length - 1 | 0)];
            while (var$1 !== null && !(var$1.$origKeyHash == var$11 && ju_HashMap_areEqualKeys(var$5, var$1.$key))) {
                var$1 = var$1.$next3;
            }
        }
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 | 64;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$8 = jl_Integer_hashCode(var$7.$value);
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == var$8 && ju_HashMap_areEqualKeys(var$7, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[147];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$6 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$6) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
    return var$3 == 3 ? $rt_s(2216) : var$3 == 4 ? $rt_s(2217) : var$3 != 1 && var$3 != 2 ? $rt_s(2218) : $rt_s(2219);
},
nms_EntityHorse_isHorseSaddled = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value & 4) ? 0 : 1;
},
nms_EntityHorse_getLivingSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    if (!$this.$worldObj.$isRemote) {
        $this.$openMouthCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 | 128;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$8 = var$7.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$8) {
                    var$9 = var$5.$key;
                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    var$1 = $this.$rand;
    var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$10;
    var$8 = Long_lo(Long_shru(var$10, 17));
    while (true) {
        var$11 = var$8 % 10 | 0;
        if (((var$8 - var$11 | 0) + 9 | 0) >= 0)
            break;
        var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$10;
        var$8 = Long_lo(Long_shru(var$10, 17));
    }
    if (!var$11 && !nms_EntityHorse_isMovementBlocked($this) && !$this.$worldObj.$isRemote) {
        $this.$jumpRearingCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$1 = ju_HashMap_entryByKey(var$1, jl_Integer_integerCache.data[144]);
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 & (-33);
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            jl_Object__init_(var$2);
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = ju_HashMap_entryByKey(var$5, jl_Integer_integerCache.data[144]);
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$11 = jl_Integer_hashCode(var$5.$value);
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$11 & (var$4.length - 1 | 0)];
            while (var$1 !== null && !(var$1.$origKeyHash == var$11 && ju_HashMap_areEqualKeys(var$5, var$1.$key))) {
                var$1 = var$1.$next3;
            }
        }
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 | 64;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$8 = jl_Integer_hashCode(var$7.$value);
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == var$8 && ju_HashMap_areEqualKeys(var$7, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[147];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$6 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$6) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
    return var$3 == 3 ? $rt_s(2220) : var$3 == 4 ? $rt_s(2221) : var$3 != 1 && var$3 != 2 ? $rt_s(2222) : $rt_s(2223);
},
nms_EntityHorse_getAngrySoundName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if (!$this.$worldObj.$isRemote) {
        $this.$openMouthCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 | 128;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$6 = var$7.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$6) {
                    var$8 = var$5.$key;
                    if (var$7 !== var$8 && !jl_Integer_equals(var$7, var$8) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$7 = var$5 === null ? null : var$5.$value0;
        var$5 = var$7.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$7.$watchedObject = var$2;
            var$7.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    if (!$this.$worldObj.$isRemote) {
        $this.$jumpRearingCounter = 1;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$1 = ju_HashMap_entryByKey(var$1, jl_Integer_integerCache.data[144]);
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 & (-33);
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            jl_Object__init_(var$2);
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = ju_HashMap_entryByKey(var$5, jl_Integer_integerCache.data[144]);
        var$7 = var$5 === null ? null : var$5.$value0;
        var$5 = var$7.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$7.$watchedObject = var$2;
            var$7.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$5.$value);
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$9 & (var$4.length - 1 | 0)];
            while (var$1 !== null && !(var$1.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$5, var$1.$key))) {
                var$1 = var$1.$next3;
            }
        }
        var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
        var$1 = $this.$dataWatcher;
        var$6 = var$3 | 64;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$6;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$10 = jl_Integer_hashCode(var$8.$value);
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$10 & (var$4.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == var$10 && ju_HashMap_areEqualKeys(var$8, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        var$7 = var$5 === null ? null : var$5.$value0;
        var$5 = var$7.$watchedObject;
        if (!(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2.$value ? 1 : 0)) {
            var$7.$watchedObject = var$2;
            var$7.$watched = 1;
            var$1.$objectChanged = 1;
        }
    }
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[147];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$6 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$6) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$3 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
    return var$3 != 3 && var$3 != 4 ? (var$3 != 1 && var$3 != 2 ? $rt_s(2224) : $rt_s(2225)) : null;
},
nms_EntityHorse_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        $var5 = nms_Block_blocksList.data[$par4].$stepSound;
        var$6 = $this.$worldObj;
        $par2 = $par2 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$6, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        var$6 = nms_Block_snow;
        if ($par1 == var$6.$blockID)
            $var5 = var$6.$stepSound;
        a: {
            if (!nms_Block_blocksList.data[$par4].$blockMaterial.$isLiquid()) {
                var$6 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[147];
                if (var$7 === null) {
                    var$8 = var$6.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                } else {
                    $par2 = var$7.$value;
                    var$9 = var$6.$elementData.data;
                    var$8 = var$9[$par2 & (var$9.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == $par2) {
                            var$6 = var$8.$key;
                            if (var$7 !== var$6 && !(var$7 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $par2 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                }
                $par3 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
                if ($this.$riddenByEntity !== null && $par3 != 1 && $par3 != 2) {
                    $par1 = $this.$field_110285_bP + 1 | 0;
                    $this.$field_110285_bP = $par1;
                    $par2 = $rt_compare($par1, 5);
                    if ($par2 > 0 && !($par1 % 3 | 0)) {
                        var$6 = $rt_s(2226);
                        var$10 = $var5.$stepSoundVolume * 0.15000000596046448;
                        var$11 = $var5.$stepSoundPitch;
                        var$7 = $this.$worldObj;
                        $ptr = 5;
                        continue main;
                    }
                    if ($par2 > 0)
                        break a;
                    else {
                        var$6 = $rt_s(2227);
                        var$10 = $var5.$stepSoundVolume * 0.15000000596046448;
                        var$11 = $var5.$stepSoundPitch;
                        $var5 = $this.$worldObj;
                        $ptr = 4;
                        continue main;
                    }
                }
                if ($var5 !== nms_Block_soundWoodFootstep) {
                    var$6 = $rt_s(2227);
                    var$10 = $var5.$stepSoundVolume * 0.15000000596046448;
                    var$11 = $var5.$stepSoundPitch;
                    $var5 = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
                var$6 = $rt_s(2228);
                var$10 = $var5.$stepSoundVolume * 0.15000000596046448;
                var$11 = $var5.$stepSoundPitch;
                $var5 = $this.$worldObj;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        nms_World_playSoundAtEntity($var5, $this, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_World_playSoundAtEntity($var5, $this, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_playSoundAtEntity($var5, $this, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_playSoundAtEntity(var$7, $this, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par3) {
            var$6 = $this.$rand;
            var$12 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$12;
            $par3 = Long_lo(Long_shru(var$12, 17));
            while (true) {
                $par4 = $par3 % 10 | 0;
                if ((($par3 - $par4 | 0) + 9 | 0) >= 0)
                    break;
                var$12 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$6.$seed = var$12;
                $par3 = Long_lo(Long_shru(var$12, 17));
            }
            if (!$par4) {
                var$6 = $rt_s(2229);
                var$10 = $var5.$stepSoundVolume * 0.6000000238418579;
                var$11 = $var5.$stepSoundPitch;
                $var5 = $this.$worldObj;
                $ptr = 6;
                continue main;
            }
        }
        return;
    case 6:
        nms_World_playSoundAtEntity($var5, $this, var$6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityHorse_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    nms_EntityLiving_applyEntityAttributes($this);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_EntityHorse_horseJumpStrength);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (53.0 !== var$3.$baseValue) {
        var$3.$baseValue = 53.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.22499999403953552 !== var$1.$baseValue) {
        var$1.$baseValue = 0.22499999403953552;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityHorse_getSoundVolume = $this => {
    return 0.800000011920929;
},
nms_EntityHorse_getTalkInterval = $this => {
    return 400;
},
nms_EntityHorse_openGUI = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote) {
            var$2 = $this.$riddenByEntity;
            if (!(var$2 !== null && var$2 !== $par1EntityPlayer)) {
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[144];
                if (var$3 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$4 = var$3.$value;
                    var$5 = var$2.$elementData.data;
                    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$4) {
                            var$6 = var$2.$key;
                            if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$2 = var$2 === null ? null : var$2.$value0;
                if (!(var$2.$watchedObject.$value & 2) ? 0 : 1) {
                    var$2 = $this.$horseChest;
                    var$6 = nms_EntityHorse_getEntityName($this);
                    var$2.$field_94051_e = 1;
                    var$2.$inventoryTitle = var$6;
                    var$2 = $this.$horseChest;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_EntityPlayerMP_displayGUIHorse($par1EntityPlayer, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityHorse_interact = ($this, $par1EntityPlayer) => {
    let var$2, $var4, $var2, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var5, $var6, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var4 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayer.$inventory0;
        $var4 = var$2.$currentItem;
        $var2 = $var4 < 9 && $var4 >= 0 ? var$2.$mainInventory.data[$var4] : null;
        if ($var2 !== null) {
            $var3 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var3 == nms_Item_monsterPlacer.$itemID0) {
                $ptr = 1;
                continue main;
            }
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (!(!(var$2.$watchedObject.$value & 2) ? 0 : 1)) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            $var4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            if ($var4 != 3 && $var4 != 4 ? 0 : 1)
                return 0;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var3 = !(var$2.$watchedObject.$value & 2) ? 0 : 1;
        if ($var3 && (nms_EntityAgeable_isChild($this) ? 0 : 1)) {
            var$2 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[128];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$2 = var$2 === null ? null : var$2.$value0;
            if (!(var$2.$watchedObject.$value1 & 2) ? 0 : 1) {
                if (!$this.$worldObj.$isRemote) {
                    var$2 = $this.$riddenByEntity;
                    if (!(var$2 !== null && var$2 !== $par1EntityPlayer)) {
                        var$2 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[144];
                        if (var$6 === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            var$7 = jl_Integer_hashCode(var$6.$value);
                            var$8 = var$2.$elementData.data;
                            var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                            while (var$2 !== null && !(var$2.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$6, var$2.$key))) {
                                var$2 = var$2.$next3;
                            }
                        }
                        var$2 = var$2 === null ? null : var$2.$value0;
                        if (!(var$2.$watchedObject.$value & 2) ? 0 : 1) {
                            a: {
                                var$2 = $this.$horseChest;
                                if (nms_EntityLiving_hasCustomNameTag($this))
                                    var$9 = nms_EntityLiving_getCustomNameTag($this);
                                else {
                                    var$9 = $this.$dataWatcher.$watchedObjects;
                                    jl_Integer_ensureIntegerCache();
                                    $var2 = jl_Integer_integerCache.data[147];
                                    if ($var2 === null) {
                                        var$9 = var$9.$elementData.data[0];
                                        while (var$9 !== null && var$9.$key !== null) {
                                            var$9 = var$9.$next3;
                                        }
                                    } else {
                                        var$10 = jl_Integer_hashCode($var2.$value);
                                        var$8 = var$9.$elementData.data;
                                        var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                                        while (var$9 !== null && !(var$9.$origKeyHash == var$10 && ju_HashMap_areEqualKeys($var2, var$9.$key))) {
                                            var$9 = var$9.$next3;
                                        }
                                    }
                                    switch ((var$9 === null ? null : var$9.$value0).$watchedObject.$value1) {
                                        case 0:
                                            break;
                                        case 1:
                                            nms_StatCollector_$callClinit();
                                            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2203));
                                            break a;
                                        case 2:
                                            nms_StatCollector_$callClinit();
                                            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2204));
                                            break a;
                                        case 3:
                                            nms_StatCollector_$callClinit();
                                            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2205));
                                            break a;
                                        case 4:
                                            nms_StatCollector_$callClinit();
                                            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2206));
                                            break a;
                                        default:
                                    }
                                    nms_StatCollector_$callClinit();
                                    var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2207));
                                }
                            }
                            var$2.$field_94051_e = 1;
                            var$2.$inventoryTitle = var$9;
                            var$2 = $this.$horseChest;
                            $ptr = 5;
                            continue main;
                        }
                    }
                }
                return 1;
            }
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity !== null) {
            $ptr = 2;
            continue main;
        }
        if ($var2 !== null) {
            $var3 = 0;
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 !== null) {
                var$7 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1 ? 0 : 1) {
                $var4 = (-1);
                var$10 = $var2.$itemID;
                nms_Item_$callClinit();
                if (var$10 != nms_Item_horseArmorIron.$itemID0) {
                    if (var$10 == nms_Item_horseArmorGold.$itemID0)
                        $var4 = 2;
                    else if (var$10 == nms_Item_horseArmorDiamond.$itemID0)
                        $var4 = 3;
                } else
                    $var4 = 1;
                if ($var4 >= 0) {
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[144];
                    if (var$6 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        var$7 = var$6.$value;
                        var$8 = var$2.$elementData.data;
                        var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == var$7) {
                                var$9 = var$2.$key;
                                if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    var$2 = var$2 === null ? null : var$2.$value0;
                    if (!(var$2.$watchedObject.$value & 2) ? 0 : 1) {
                        if (!$this.$worldObj.$isRemote) {
                            var$2 = $this.$riddenByEntity;
                            if (!(var$2 !== null && var$2 !== $par1EntityPlayer)) {
                                var$2 = $this.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$6 = jl_Integer_integerCache.data[144];
                                if (var$6 === null) {
                                    var$2 = var$2.$elementData.data[0];
                                    while (var$2 !== null && var$2.$key !== null) {
                                        var$2 = var$2.$next3;
                                    }
                                } else {
                                    var$7 = jl_Integer_hashCode(var$6.$value);
                                    var$8 = var$2.$elementData.data;
                                    var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                                    while (var$2 !== null && !(var$2.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$6, var$2.$key))) {
                                        var$2 = var$2.$next3;
                                    }
                                }
                                var$2 = var$2 === null ? null : var$2.$value0;
                                if (!(var$2.$watchedObject.$value & 2) ? 0 : 1) {
                                    b: {
                                        var$2 = $this.$horseChest;
                                        if (nms_EntityLiving_hasCustomNameTag($this))
                                            var$9 = nms_EntityLiving_getCustomNameTag($this);
                                        else {
                                            var$9 = $this.$dataWatcher.$watchedObjects;
                                            jl_Integer_ensureIntegerCache();
                                            $var2 = jl_Integer_integerCache.data[147];
                                            if ($var2 === null) {
                                                var$9 = var$9.$elementData.data[0];
                                                while (var$9 !== null && var$9.$key !== null) {
                                                    var$9 = var$9.$next3;
                                                }
                                            } else {
                                                var$10 = jl_Integer_hashCode($var2.$value);
                                                var$8 = var$9.$elementData.data;
                                                var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                                                while (var$9 !== null && !(var$9.$origKeyHash == var$10 && ju_HashMap_areEqualKeys($var2, var$9.$key))) {
                                                    var$9 = var$9.$next3;
                                                }
                                            }
                                            switch ((var$9 === null ? null : var$9.$value0).$watchedObject.$value1) {
                                                case 0:
                                                    break;
                                                case 1:
                                                    nms_StatCollector_$callClinit();
                                                    var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2203));
                                                    break b;
                                                case 2:
                                                    nms_StatCollector_$callClinit();
                                                    var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2204));
                                                    break b;
                                                case 3:
                                                    nms_StatCollector_$callClinit();
                                                    var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2205));
                                                    break b;
                                                case 4:
                                                    nms_StatCollector_$callClinit();
                                                    var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2206));
                                                    break b;
                                                default:
                                            }
                                            nms_StatCollector_$callClinit();
                                            var$9 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, $rt_s(2207));
                                        }
                                    }
                                    var$2.$field_94051_e = 1;
                                    var$2.$inventoryTitle = var$9;
                                    var$2 = $this.$horseChest;
                                    $ptr = 12;
                                    continue main;
                                }
                            }
                        }
                        return 1;
                    }
                    if (!$this.$worldObj.$isRemote) {
                        $this.$jumpRearingCounter = 1;
                        var$10 = (ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
                        $par1EntityPlayer = $this.$dataWatcher;
                        $var4 = var$10 & (-33);
                        if ($var4 >= (-128) && $var4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$2 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                        } else {
                            var$2 = new jl_Integer;
                            jl_Number__init_(var$2);
                            var$2.$value = $var4;
                        }
                        var$6 = ju_HashMap_get($par1EntityPlayer.$watchedObjects, jl_Integer_valueOf(16));
                        if (!jl_Integer_equals(var$2, var$6.$watchedObject)) {
                            var$6.$watchedObject = var$2;
                            var$6.$watched = 1;
                            $par1EntityPlayer.$objectChanged = 1;
                        }
                        $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$2 = jl_Integer_integerCache.data[144];
                        if (var$2 === null)
                            $par1EntityPlayer = ju_HashMap_findNullKeyEntry($par1EntityPlayer);
                        else {
                            var$10 = jl_Integer_hashCode0(var$2);
                            $par1EntityPlayer = ju_HashMap_findNonNullKeyEntry($par1EntityPlayer, var$2, var$10 & ($par1EntityPlayer.$elementData.data.length - 1 | 0), var$10);
                        }
                        $var4 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value;
                        $par1EntityPlayer = $this.$dataWatcher;
                        $var3 = $var4 | 64;
                        if ($var3 >= (-128) && $var3 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$2 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                        } else {
                            var$2 = new jl_Integer;
                            var$2.$value = $var3;
                        }
                        var$9 = $par1EntityPlayer.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[144];
                        if (var$6 === null)
                            var$9 = ju_HashMap_findNullKeyEntry(var$9);
                        else {
                            $var4 = jl_Integer_hashCode0(var$6);
                            var$9 = ju_HashMap_findNonNullKeyEntry(var$9, var$6, $var4 & (var$9.$elementData.data.length - 1 | 0), $var4);
                        }
                        var$6 = var$9 === null ? null : var$9.$value0;
                        var$9 = var$6.$watchedObject;
                        if (!(var$2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2.$value ? 1 : 0)) {
                            var$6.$watchedObject = var$2;
                            var$6.$watched = 1;
                            $par1EntityPlayer.$objectChanged = 1;
                        }
                    }
                    $par1EntityPlayer = nms_EntityHorse_getAngrySoundName($this);
                    if ($par1EntityPlayer === null)
                        return 1;
                    var$11 = 0.800000011920929;
                    var$12 = nms_EntityLivingBase_getSoundPitch($this);
                    var$2 = $this.$worldObj;
                    $ptr = 6;
                    continue main;
                }
            }
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$7 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            if (!(var$10 != 3 && var$10 != 4 ? 0 : 1)) {
                c: {
                    $var7 = 0.0;
                    $var5 = 0;
                    $var6 = 0;
                    $var4 = $var2.$itemID;
                    nms_Item_$callClinit();
                    if ($var4 == nms_Item_wheat.$itemID0) {
                        $var7 = 2.0;
                        $var5 = 60;
                        $var6 = 3;
                    } else if ($var4 == nms_Item_sugar.$itemID0) {
                        $var7 = 1.0;
                        $var5 = 30;
                        $var6 = 3;
                    } else if ($var4 == nms_Item_bread.$itemID0) {
                        $var7 = 7.0;
                        $var5 = 180;
                        $var6 = 3;
                    } else {
                        nms_Block_$callClinit();
                        if ($var4 == nms_Block_hay.$blockID) {
                            $var7 = 20.0;
                            $var5 = 180;
                        } else if ($var4 == nms_Item_appleRed.$itemID0) {
                            $var7 = 3.0;
                            $var5 = 60;
                            $var6 = 3;
                        } else {
                            if ($var4 != nms_Item_goldenCarrot.$itemID0) {
                                if ($var4 != nms_Item_appleGold.$itemID0)
                                    break c;
                                $var7 = 10.0;
                                $var5 = 240;
                                $var6 = 10;
                                if (!nms_EntityHorse_isTame($this))
                                    break c;
                                if (nms_EntityAgeable_getGrowingAge($this))
                                    break c;
                                $var3 = 1;
                                $ptr = 8;
                                continue main;
                            }
                            $var7 = 4.0;
                            $var5 = 60;
                            $var6 = 5;
                            if (nms_EntityHorse_isTame($this) && !nms_EntityAgeable_getGrowingAge($this)) {
                                $var3 = 1;
                                $ptr = 7;
                                continue main;
                            }
                        }
                    }
                }
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[134];
                if (var$6 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$7 = var$6.$value;
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$7) {
                            var$9 = var$2.$key;
                            if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$11 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
                var$2 = nms_SharedMonsterAttributes_maxHealth;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$9 = $this.$attributeMap.$attributes;
                if (var$2 === null) {
                    var$9 = var$9.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    var$7 = jl_String_hashCode(var$2.$field_111115_a);
                    var$8 = var$9.$elementData.data;
                    var$9 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while (var$9 !== null && !(var$9.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$2, var$9.$key))) {
                        var$9 = var$9.$next3;
                    }
                }
                var$2 = var$9 === null ? null : var$9.$value0;
                if (var$2.$field_111133_g) {
                    var$2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$2);
                    var$2.$field_111133_g = 0;
                }
                if (var$11 < var$2.$field_111139_h && $var7 > 0.0) {
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[134];
                    if (var$6 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        var$10 = var$6.$value;
                        var$8 = var$2.$elementData.data;
                        var$2 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == var$10) {
                                var$9 = var$2.$key;
                                if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    var$11 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
                    if (var$11 > 0.0) {
                        var$12 = var$11 + $var7;
                        var$2 = $this.$dataWatcher;
                        var$11 = 0.0;
                        var$9 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        var$9 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$9);
                        var$9 = var$9 === null ? null : var$9.$value0;
                        if (var$9.$field_111133_g) {
                            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                            var$9.$field_111133_g = 0;
                        }
                        $var7 = var$9.$field_111139_h;
                        if (var$12 >= var$11)
                            var$11 = var$12 <= $var7 ? var$12 : $var7;
                        var$16 = new jl_Float;
                        var$16.$value3 = var$11;
                        var$9 = var$2.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$17 = jl_Integer_integerCache.data[134];
                        if (var$17 === null) {
                            var$9 = var$9.$elementData.data[0];
                            while (var$9 !== null && var$9.$key !== null) {
                                var$9 = var$9.$next3;
                            }
                        } else {
                            var$10 = var$17.$value;
                            var$8 = var$9.$elementData.data;
                            var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                            while (var$9 !== null) {
                                if (var$9.$origKeyHash == var$10) {
                                    var$6 = var$9.$key;
                                    if (var$17 !== var$6 && !jl_Integer_equals(var$17, var$6) ? 0 : 1)
                                        break;
                                }
                                var$9 = var$9.$next3;
                            }
                        }
                        var$6 = var$9 === null ? null : var$9.$value0;
                        var$9 = var$6.$watchedObject;
                        if (var$16 === var$9)
                            $var3 = 1;
                        else
                            d: {
                                if (var$9 instanceof jl_Float) {
                                    var$12 = var$16.$value3;
                                    var$11 = var$9.$value3;
                                    if (var$12 !== var$12 ? (var$11 === var$11 ? 0 : 1) : $rt_floatToRawIntBits(var$12) != $rt_floatToRawIntBits(var$11) ? 0 : 1) {
                                        $var3 = 1;
                                        break d;
                                    }
                                }
                                $var3 = 0;
                            }
                        if (!$var3) {
                            var$6.$watchedObject = var$16;
                            var$6.$watched = 1;
                            var$2.$objectChanged = 1;
                        }
                    }
                    $var3 = 1;
                }
                $var4 = nms_EntityAgeable_isChild($this) ? 0 : 1;
                if (!$var4 && $var5 > 0) {
                    $var3 = nms_EntityAgeable_getGrowingAge($this) + ($var5 * 20 | 0) | 0;
                    if ($var3 > 0)
                        $var3 = 0;
                    $ptr = 15;
                    continue main;
                }
                e: {
                    if ($var6 > 0) {
                        if (!$var3) {
                            var$9 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$2 = jl_Integer_integerCache.data[144];
                            if (var$2 === null) {
                                var$9 = var$9.$elementData.data[0];
                                while (var$9 !== null && var$9.$key !== null) {
                                    var$9 = var$9.$next3;
                                }
                            } else {
                                var$10 = var$2.$value;
                                var$8 = var$9.$elementData.data;
                                var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                                while (var$9 !== null) {
                                    if (var$9.$origKeyHash == var$10) {
                                        var$6 = var$9.$key;
                                        if (var$2 !== var$6 && !jl_Integer_equals(var$2, var$6) ? 0 : 1)
                                            break;
                                    }
                                    var$9 = var$9.$next3;
                                }
                            }
                            var$2 = var$9 === null ? null : var$9.$value0;
                            if (!(var$2.$watchedObject.$value & 2) ? 0 : 1)
                                break e;
                        }
                        if ($var6 < 100) {
                            $var3 = 1;
                            $var4 = $this.$temper + $var6 | 0;
                            var$10 = 0;
                            if ($var4 >= var$10)
                                var$10 = $var4 <= 100 ? $var4 : 100;
                            $this.$temper = var$10;
                        }
                    }
                }
                if ($var3) {
                    if (!$this.$worldObj.$isRemote) {
                        $this.$openMouthCounter = 1;
                        var$2 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[144];
                        if (var$6 === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            $var4 = jl_Integer_hashCode(var$6.$value);
                            var$8 = var$2.$elementData.data;
                            var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                            while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$6, var$2.$key))) {
                                var$2 = var$2.$next3;
                            }
                        }
                        $var4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
                        var$9 = $this.$dataWatcher;
                        $var4 = $var4 | 128;
                        if ($var4 >= (-128) && $var4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$6 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                        } else {
                            var$6 = new jl_Integer;
                            var$6.$value = $var4;
                        }
                        var$2 = var$9.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$16 = jl_Integer_integerCache.data[144];
                        if (var$16 === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            $var4 = jl_Integer_hashCode(var$16.$value);
                            var$8 = var$2.$elementData.data;
                            var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                            while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$16, var$2.$key))) {
                                var$2 = var$2.$next3;
                            }
                        }
                        var$17 = var$2 === null ? null : var$2.$value0;
                        var$2 = var$17.$watchedObject;
                        if (!(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6.$value ? 1 : 0)) {
                            var$17.$watchedObject = var$6;
                            var$17.$watched = 1;
                            var$9.$objectChanged = 1;
                        }
                    }
                    var$9 = $this.$worldObj;
                    var$2 = $rt_s(2230);
                    var$12 = 1.0;
                    var$6 = $this.$rand;
                    var$18 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$6.$seed = var$18;
                    var$19 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                    var$20 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$6.$seed = var$20;
                    var$11 = 1.0 + (var$19 - Long_lo(Long_shru(var$20, 24)) / 1.6777216E7) * 0.20000000298023224;
                    $ptr = 16;
                    continue main;
                }
            }
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                $var6 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[$var6 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var6) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$2 = var$2 === null ? null : var$2.$value0;
            $var4 = !(var$2.$watchedObject.$value & 2) ? 0 : 1;
            if (!$var4 && !$var3) {
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[$var2.$itemID].$itemInteractionForEntity($var2, $par1EntityPlayer, $this))
                    return 1;
                if (!$this.$worldObj.$isRemote) {
                    $this.$jumpRearingCounter = 1;
                    var$10 = (ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
                    $par1EntityPlayer = $this.$dataWatcher;
                    $var4 = var$10 & (-33);
                    if ($var4 >= (-128) && $var4 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$2 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                    } else {
                        var$2 = new jl_Integer;
                        jl_Number__init_(var$2);
                        var$2.$value = $var4;
                    }
                    var$6 = ju_HashMap_get($par1EntityPlayer.$watchedObjects, jl_Integer_valueOf(16));
                    if (!jl_Integer_equals(var$2, var$6.$watchedObject)) {
                        var$6.$watchedObject = var$2;
                        var$6.$watched = 1;
                        $par1EntityPlayer.$objectChanged = 1;
                    }
                    $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[144];
                    if (var$2 === null)
                        $par1EntityPlayer = ju_HashMap_findNullKeyEntry($par1EntityPlayer);
                    else {
                        var$10 = jl_Integer_hashCode0(var$2);
                        $par1EntityPlayer = ju_HashMap_findNonNullKeyEntry($par1EntityPlayer, var$2, var$10 & ($par1EntityPlayer.$elementData.data.length - 1 | 0), var$10);
                    }
                    $var4 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value;
                    $par1EntityPlayer = $this.$dataWatcher;
                    $var3 = $var4 | 64;
                    if ($var3 >= (-128) && $var3 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$2 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                    } else {
                        var$2 = new jl_Integer;
                        var$2.$value = $var3;
                    }
                    var$9 = $par1EntityPlayer.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[144];
                    if (var$6 === null)
                        var$9 = ju_HashMap_findNullKeyEntry(var$9);
                    else {
                        $var4 = jl_Integer_hashCode0(var$6);
                        var$9 = ju_HashMap_findNonNullKeyEntry(var$9, var$6, $var4 & (var$9.$elementData.data.length - 1 | 0), $var4);
                    }
                    var$6 = var$9 === null ? null : var$9.$value0;
                    var$9 = var$6.$watchedObject;
                    if (!(var$2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2.$value ? 1 : 0)) {
                        var$6.$watchedObject = var$2;
                        var$6.$watched = 1;
                        $par1EntityPlayer.$objectChanged = 1;
                    }
                }
                $par1EntityPlayer = nms_EntityHorse_getAngrySoundName($this);
                if ($par1EntityPlayer === null)
                    return 1;
                var$11 = 0.800000011920929;
                var$12 = nms_EntityLivingBase_getSoundPitch($this);
                var$2 = $this.$worldObj;
                $ptr = 9;
                continue main;
            }
            if (!$var3) {
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[147];
                if (var$6 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = var$6.$value;
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == $var4) {
                            var$9 = var$2.$key;
                            if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
                if ((var$10 != 2 && var$10 != 1 ? 0 : 1) && !(!(jl_Integer_intValue(nms_WatchableObject_getObject(nms_DataWatcher_getWatchedObject($this.$dataWatcher, 16))) & 8) ? 0 : 1)) {
                    $var4 = $var2.$itemID;
                    nms_Block_$callClinit();
                    if ($var4 == nms_Block_chest.$blockID) {
                        nms_EntityHorse_setChested($this, 1);
                        var$2 = $rt_s(2231);
                        var$12 = 1.0;
                        var$11 = (nle_EaglercraftRandom_nextFloat($this.$rand) - nle_EaglercraftRandom_nextFloat($this.$rand)) * 0.20000000298023224 + 1.0;
                        $ptr = 13;
                        continue main;
                    }
                }
            }
            if (!$var3 && nms_EntityHorse_func_110253_bW($this) && !nms_EntityHorse_isHorseSaddled($this)) {
                $var4 = $var2.$itemID;
                nms_Item_$callClinit();
                if ($var4 == nms_Item_saddle.$itemID0) {
                    $ptr = 11;
                    continue main;
                }
            }
            if ($var3) {
                if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                    $var3 = $var2.$stackSize - 1 | 0;
                    $var2.$stackSize = $var3;
                    if (!$var3) {
                        $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                        $var3 = $par1EntityPlayer.$currentItem;
                        var$2 = null;
                        $ptr = 10;
                        continue main;
                    }
                }
                return 1;
            }
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity === null) {
            if ($var2 !== null && nms_ItemStack_func_111282_a($var2, $par1EntityPlayer, $this))
                return 1;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 1:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        return $var3;
    case 2:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        return $var3;
    case 3:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        return $var3;
    case 4:
        nms_EntityHorse_func_110237_h($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 5:
        nms_EntityPlayerMP_displayGUIHorse($par1EntityPlayer, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 6:
        nms_World_playSoundAtEntity(var$2, $this, $par1EntityPlayer, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 7:
        nms_EntityAnimal_func_110196_bT($this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[134];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$11 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
        var$2 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$9 = $this.$attributeMap.$attributes;
        if (var$2 === null) {
            var$9 = var$9.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$7 = jl_String_hashCode(var$2.$field_111115_a);
            var$8 = var$9.$elementData.data;
            var$9 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$9 !== null && !(var$9.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$2, var$9.$key))) {
                var$9 = var$9.$next3;
            }
        }
        var$2 = var$9 === null ? null : var$9.$value0;
        if (var$2.$field_111133_g) {
            var$2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$2);
            var$2.$field_111133_g = 0;
        }
        if (var$11 < var$2.$field_111139_h && $var7 > 0.0) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[134];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$11 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
            if (var$11 > 0.0) {
                var$12 = var$11 + $var7;
                var$2 = $this.$dataWatcher;
                var$11 = 0.0;
                var$9 = nms_SharedMonsterAttributes_maxHealth;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$9 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$9);
                var$9 = var$9 === null ? null : var$9.$value0;
                if (var$9.$field_111133_g) {
                    var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                    var$9.$field_111133_g = 0;
                }
                $var7 = var$9.$field_111139_h;
                if (var$12 >= var$11)
                    var$11 = var$12 <= $var7 ? var$12 : $var7;
                var$16 = new jl_Float;
                var$16.$value3 = var$11;
                var$9 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[134];
                if (var$17 === null) {
                    var$9 = var$9.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    var$10 = var$17.$value;
                    var$8 = var$9.$elementData.data;
                    var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$10) {
                            var$6 = var$9.$key;
                            if (var$17 !== var$6 && !jl_Integer_equals(var$17, var$6) ? 0 : 1)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                var$6 = var$9 === null ? null : var$9.$value0;
                var$9 = var$6.$watchedObject;
                if (var$16 === var$9)
                    $var3 = 1;
                else
                    f: {
                        if (var$9 instanceof jl_Float) {
                            var$12 = var$16.$value3;
                            var$11 = var$9.$value3;
                            if (var$12 !== var$12 ? (var$11 === var$11 ? 0 : 1) : $rt_floatToRawIntBits(var$12) != $rt_floatToRawIntBits(var$11) ? 0 : 1) {
                                $var3 = 1;
                                break f;
                            }
                        }
                        $var3 = 0;
                    }
                if (!$var3) {
                    var$6.$watchedObject = var$16;
                    var$6.$watched = 1;
                    var$2.$objectChanged = 1;
                }
            }
            $var3 = 1;
        }
        $var4 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if (!$var4 && $var5 > 0) {
            $var3 = nms_EntityAgeable_getGrowingAge($this) + ($var5 * 20 | 0) | 0;
            if ($var3 > 0)
                $var3 = 0;
            $ptr = 15;
            continue main;
        }
        g: {
            if ($var6 > 0) {
                if (!$var3) {
                    var$9 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[144];
                    if (var$2 === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        var$10 = var$2.$value;
                        var$8 = var$9.$elementData.data;
                        var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == var$10) {
                                var$6 = var$9.$key;
                                if (var$2 !== var$6 && !jl_Integer_equals(var$2, var$6) ? 0 : 1)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    var$2 = var$9 === null ? null : var$9.$value0;
                    if (!(var$2.$watchedObject.$value & 2) ? 0 : 1)
                        break g;
                }
                if ($var6 < 100) {
                    $var3 = 1;
                    $var4 = $this.$temper + $var6 | 0;
                    var$10 = 0;
                    if ($var4 >= var$10)
                        var$10 = $var4 <= 100 ? $var4 : 100;
                    $this.$temper = var$10;
                }
            }
        }
        if ($var3) {
            if (!$this.$worldObj.$isRemote) {
                $this.$openMouthCounter = 1;
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = jl_Integer_hashCode(var$6.$value);
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$6, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                $var4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
                var$9 = $this.$dataWatcher;
                $var4 = $var4 | 128;
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = $var4;
                }
                var$2 = var$9.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$16 = jl_Integer_integerCache.data[144];
                if (var$16 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = jl_Integer_hashCode(var$16.$value);
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$16, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                var$17 = var$2 === null ? null : var$2.$value0;
                var$2 = var$17.$watchedObject;
                if (!(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6.$value ? 1 : 0)) {
                    var$17.$watchedObject = var$6;
                    var$17.$watched = 1;
                    var$9.$objectChanged = 1;
                }
            }
            var$9 = $this.$worldObj;
            var$2 = $rt_s(2230);
            var$12 = 1.0;
            var$6 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$18;
            var$19 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
            var$20 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$20;
            var$11 = 1.0 + (var$19 - Long_lo(Long_shru(var$20, 24)) / 1.6777216E7) * 0.20000000298023224;
            $ptr = 16;
            continue main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var6 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[$var6 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var6) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var4 = !(var$2.$watchedObject.$value & 2) ? 0 : 1;
        if (!$var4 && !$var3) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var2.$itemID].$itemInteractionForEntity($var2, $par1EntityPlayer, $this))
                return 1;
            if (!$this.$worldObj.$isRemote) {
                $this.$jumpRearingCounter = 1;
                var$10 = (ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var4 = var$10 & (-33);
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    jl_Number__init_(var$2);
                    var$2.$value = $var4;
                }
                var$6 = ju_HashMap_get($par1EntityPlayer.$watchedObjects, jl_Integer_valueOf(16));
                if (!jl_Integer_equals(var$2, var$6.$watchedObject)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
                $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[144];
                if (var$2 === null)
                    $par1EntityPlayer = ju_HashMap_findNullKeyEntry($par1EntityPlayer);
                else {
                    var$10 = jl_Integer_hashCode0(var$2);
                    $par1EntityPlayer = ju_HashMap_findNonNullKeyEntry($par1EntityPlayer, var$2, var$10 & ($par1EntityPlayer.$elementData.data.length - 1 | 0), var$10);
                }
                $var4 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var3 = $var4 | 64;
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = $var3;
                }
                var$9 = $par1EntityPlayer.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null)
                    var$9 = ju_HashMap_findNullKeyEntry(var$9);
                else {
                    $var4 = jl_Integer_hashCode0(var$6);
                    var$9 = ju_HashMap_findNonNullKeyEntry(var$9, var$6, $var4 & (var$9.$elementData.data.length - 1 | 0), $var4);
                }
                var$6 = var$9 === null ? null : var$9.$value0;
                var$9 = var$6.$watchedObject;
                if (!(var$2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2.$value ? 1 : 0)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
            }
            $par1EntityPlayer = nms_EntityHorse_getAngrySoundName($this);
            if ($par1EntityPlayer === null)
                return 1;
            var$11 = 0.800000011920929;
            var$12 = nms_EntityLivingBase_getSoundPitch($this);
            var$2 = $this.$worldObj;
            $ptr = 9;
            continue main;
        }
        if (!$var3) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                $var4 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var4) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            if ((var$10 != 2 && var$10 != 1 ? 0 : 1) && !(!(jl_Integer_intValue(nms_WatchableObject_getObject(nms_DataWatcher_getWatchedObject($this.$dataWatcher, 16))) & 8) ? 0 : 1)) {
                $var4 = $var2.$itemID;
                nms_Block_$callClinit();
                if ($var4 == nms_Block_chest.$blockID) {
                    nms_EntityHorse_setChested($this, 1);
                    var$2 = $rt_s(2231);
                    var$12 = 1.0;
                    var$11 = (nle_EaglercraftRandom_nextFloat($this.$rand) - nle_EaglercraftRandom_nextFloat($this.$rand)) * 0.20000000298023224 + 1.0;
                    $ptr = 13;
                    continue main;
                }
            }
        }
        if (!$var3 && nms_EntityHorse_func_110253_bW($this) && !nms_EntityHorse_isHorseSaddled($this)) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_saddle.$itemID0) {
                $ptr = 11;
                continue main;
            }
        }
        if ($var3) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                $var3 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = $var3;
                if (!$var3) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    $var3 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    $ptr = 10;
                    continue main;
                }
            }
            return 1;
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity === null) {
            if ($var2 !== null && nms_ItemStack_func_111282_a($var2, $par1EntityPlayer, $this))
                return 1;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 8:
        nms_EntityAnimal_func_110196_bT($this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[134];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$11 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
        var$2 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$9 = $this.$attributeMap.$attributes;
        if (var$2 === null) {
            var$9 = var$9.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$7 = jl_String_hashCode(var$2.$field_111115_a);
            var$8 = var$9.$elementData.data;
            var$9 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$9 !== null && !(var$9.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$2, var$9.$key))) {
                var$9 = var$9.$next3;
            }
        }
        var$2 = var$9 === null ? null : var$9.$value0;
        if (var$2.$field_111133_g) {
            var$2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$2);
            var$2.$field_111133_g = 0;
        }
        if (var$11 < var$2.$field_111139_h && $var7 > 0.0) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[134];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[var$10 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$11 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
            if (var$11 > 0.0) {
                var$12 = var$11 + $var7;
                var$2 = $this.$dataWatcher;
                var$11 = 0.0;
                var$9 = nms_SharedMonsterAttributes_maxHealth;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$9 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$9);
                var$9 = var$9 === null ? null : var$9.$value0;
                if (var$9.$field_111133_g) {
                    var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                    var$9.$field_111133_g = 0;
                }
                $var7 = var$9.$field_111139_h;
                if (var$12 >= var$11)
                    var$11 = var$12 <= $var7 ? var$12 : $var7;
                var$16 = new jl_Float;
                var$16.$value3 = var$11;
                var$9 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[134];
                if (var$17 === null) {
                    var$9 = var$9.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    var$10 = var$17.$value;
                    var$8 = var$9.$elementData.data;
                    var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$10) {
                            var$6 = var$9.$key;
                            if (var$17 !== var$6 && !jl_Integer_equals(var$17, var$6) ? 0 : 1)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                var$6 = var$9 === null ? null : var$9.$value0;
                var$9 = var$6.$watchedObject;
                if (var$16 === var$9)
                    $var3 = 1;
                else
                    f: {
                        if (var$9 instanceof jl_Float) {
                            var$12 = var$16.$value3;
                            var$11 = var$9.$value3;
                            if (var$12 !== var$12 ? (var$11 === var$11 ? 0 : 1) : $rt_floatToRawIntBits(var$12) != $rt_floatToRawIntBits(var$11) ? 0 : 1) {
                                $var3 = 1;
                                break f;
                            }
                        }
                        $var3 = 0;
                    }
                if (!$var3) {
                    var$6.$watchedObject = var$16;
                    var$6.$watched = 1;
                    var$2.$objectChanged = 1;
                }
            }
            $var3 = 1;
        }
        $var4 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if (!$var4 && $var5 > 0) {
            $var3 = nms_EntityAgeable_getGrowingAge($this) + ($var5 * 20 | 0) | 0;
            if ($var3 > 0)
                $var3 = 0;
            $ptr = 15;
            continue main;
        }
        g: {
            if ($var6 > 0) {
                if (!$var3) {
                    var$9 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[144];
                    if (var$2 === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        var$10 = var$2.$value;
                        var$8 = var$9.$elementData.data;
                        var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == var$10) {
                                var$6 = var$9.$key;
                                if (var$2 !== var$6 && !jl_Integer_equals(var$2, var$6) ? 0 : 1)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    var$2 = var$9 === null ? null : var$9.$value0;
                    if (!(var$2.$watchedObject.$value & 2) ? 0 : 1)
                        break g;
                }
                if ($var6 < 100) {
                    $var3 = 1;
                    $var4 = $this.$temper + $var6 | 0;
                    var$10 = 0;
                    if ($var4 >= var$10)
                        var$10 = $var4 <= 100 ? $var4 : 100;
                    $this.$temper = var$10;
                }
            }
        }
        if ($var3) {
            if (!$this.$worldObj.$isRemote) {
                $this.$openMouthCounter = 1;
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = jl_Integer_hashCode(var$6.$value);
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$6, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                $var4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
                var$9 = $this.$dataWatcher;
                $var4 = $var4 | 128;
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = $var4;
                }
                var$2 = var$9.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$16 = jl_Integer_integerCache.data[144];
                if (var$16 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = jl_Integer_hashCode(var$16.$value);
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$16, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                var$17 = var$2 === null ? null : var$2.$value0;
                var$2 = var$17.$watchedObject;
                if (!(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6.$value ? 1 : 0)) {
                    var$17.$watchedObject = var$6;
                    var$17.$watched = 1;
                    var$9.$objectChanged = 1;
                }
            }
            var$9 = $this.$worldObj;
            var$2 = $rt_s(2230);
            var$12 = 1.0;
            var$6 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$18;
            var$19 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
            var$20 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$20;
            var$11 = 1.0 + (var$19 - Long_lo(Long_shru(var$20, 24)) / 1.6777216E7) * 0.20000000298023224;
            $ptr = 16;
            continue main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var6 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[$var6 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var6) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var4 = !(var$2.$watchedObject.$value & 2) ? 0 : 1;
        if (!$var4 && !$var3) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var2.$itemID].$itemInteractionForEntity($var2, $par1EntityPlayer, $this))
                return 1;
            if (!$this.$worldObj.$isRemote) {
                $this.$jumpRearingCounter = 1;
                var$10 = (ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var4 = var$10 & (-33);
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    jl_Number__init_(var$2);
                    var$2.$value = $var4;
                }
                var$6 = ju_HashMap_get($par1EntityPlayer.$watchedObjects, jl_Integer_valueOf(16));
                if (!jl_Integer_equals(var$2, var$6.$watchedObject)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
                $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[144];
                if (var$2 === null)
                    $par1EntityPlayer = ju_HashMap_findNullKeyEntry($par1EntityPlayer);
                else {
                    var$10 = jl_Integer_hashCode0(var$2);
                    $par1EntityPlayer = ju_HashMap_findNonNullKeyEntry($par1EntityPlayer, var$2, var$10 & ($par1EntityPlayer.$elementData.data.length - 1 | 0), var$10);
                }
                $var4 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var3 = $var4 | 64;
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = $var3;
                }
                var$9 = $par1EntityPlayer.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null)
                    var$9 = ju_HashMap_findNullKeyEntry(var$9);
                else {
                    $var4 = jl_Integer_hashCode0(var$6);
                    var$9 = ju_HashMap_findNonNullKeyEntry(var$9, var$6, $var4 & (var$9.$elementData.data.length - 1 | 0), $var4);
                }
                var$6 = var$9 === null ? null : var$9.$value0;
                var$9 = var$6.$watchedObject;
                if (!(var$2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2.$value ? 1 : 0)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
            }
            $par1EntityPlayer = nms_EntityHorse_getAngrySoundName($this);
            if ($par1EntityPlayer === null)
                return 1;
            var$11 = 0.800000011920929;
            var$12 = nms_EntityLivingBase_getSoundPitch($this);
            var$2 = $this.$worldObj;
            $ptr = 9;
            continue main;
        }
        if (!$var3) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                $var4 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var4) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            if ((var$10 != 2 && var$10 != 1 ? 0 : 1) && !(!(jl_Integer_intValue(nms_WatchableObject_getObject(nms_DataWatcher_getWatchedObject($this.$dataWatcher, 16))) & 8) ? 0 : 1)) {
                $var4 = $var2.$itemID;
                nms_Block_$callClinit();
                if ($var4 == nms_Block_chest.$blockID) {
                    nms_EntityHorse_setChested($this, 1);
                    var$2 = $rt_s(2231);
                    var$12 = 1.0;
                    var$11 = (nle_EaglercraftRandom_nextFloat($this.$rand) - nle_EaglercraftRandom_nextFloat($this.$rand)) * 0.20000000298023224 + 1.0;
                    $ptr = 13;
                    continue main;
                }
            }
        }
        if (!$var3 && nms_EntityHorse_func_110253_bW($this) && !nms_EntityHorse_isHorseSaddled($this)) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_saddle.$itemID0) {
                $ptr = 11;
                continue main;
            }
        }
        if ($var3) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                $var3 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = $var3;
                if (!$var3) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    $var3 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    $ptr = 10;
                    continue main;
                }
            }
            return 1;
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity === null) {
            if ($var2 !== null && nms_ItemStack_func_111282_a($var2, $par1EntityPlayer, $this))
                return 1;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 9:
        nms_World_playSoundAtEntity(var$2, $this, $par1EntityPlayer, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 10:
        nms_InventoryPlayer_setInventorySlotContents($par1EntityPlayer, $var3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 11:
        nms_EntityHorse_openGUI($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 12:
        nms_EntityPlayerMP_displayGUIHorse($par1EntityPlayer, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 13:
        nms_Entity_playSound($this, var$2, var$12, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 1;
        $ptr = 14;
    case 14:
        nms_EntityHorse_func_110226_cD($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var3 && nms_EntityHorse_func_110253_bW($this) && !nms_EntityHorse_isHorseSaddled($this)) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_saddle.$itemID0) {
                $ptr = 11;
                continue main;
            }
        }
        if ($var3) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                $var3 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = $var3;
                if (!$var3) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    $var3 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    $ptr = 10;
                    continue main;
                }
            }
            return 1;
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity === null) {
            if ($var2 !== null && nms_ItemStack_func_111282_a($var2, $par1EntityPlayer, $this))
                return 1;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 15:
        nms_EntityAgeable_setGrowingAge($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 1;
        h: {
            if ($var6 > 0) {
                if (!$var3) {
                    var$9 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[144];
                    if (var$2 === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        var$10 = var$2.$value;
                        var$8 = var$9.$elementData.data;
                        var$9 = var$8[var$10 & (var$8.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == var$10) {
                                var$6 = var$9.$key;
                                if (var$2 !== var$6 && !jl_Integer_equals(var$2, var$6) ? 0 : 1)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    var$2 = var$9 === null ? null : var$9.$value0;
                    if (!(var$2.$watchedObject.$value & 2) ? 0 : 1)
                        break h;
                }
                if ($var6 < 100) {
                    $var3 = 1;
                    $var4 = $this.$temper + $var6 | 0;
                    var$10 = 0;
                    if ($var4 >= var$10)
                        var$10 = $var4 <= 100 ? $var4 : 100;
                    $this.$temper = var$10;
                }
            }
        }
        if ($var3) {
            if (!$this.$worldObj.$isRemote) {
                $this.$openMouthCounter = 1;
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = jl_Integer_hashCode(var$6.$value);
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$6, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                $var4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
                var$9 = $this.$dataWatcher;
                $var4 = $var4 | 128;
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = $var4;
                }
                var$2 = var$9.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$16 = jl_Integer_integerCache.data[144];
                if (var$16 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var4 = jl_Integer_hashCode(var$16.$value);
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == $var4 && ju_HashMap_areEqualKeys(var$16, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                var$17 = var$2 === null ? null : var$2.$value0;
                var$2 = var$17.$watchedObject;
                if (!(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6.$value ? 1 : 0)) {
                    var$17.$watchedObject = var$6;
                    var$17.$watched = 1;
                    var$9.$objectChanged = 1;
                }
            }
            var$9 = $this.$worldObj;
            var$2 = $rt_s(2230);
            var$12 = 1.0;
            var$6 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$18;
            var$19 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
            var$20 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$20;
            var$11 = 1.0 + (var$19 - Long_lo(Long_shru(var$20, 24)) / 1.6777216E7) * 0.20000000298023224;
            $ptr = 16;
            continue main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var6 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[$var6 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var6) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var4 = !(var$2.$watchedObject.$value & 2) ? 0 : 1;
        if (!$var4 && !$var3) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var2.$itemID].$itemInteractionForEntity($var2, $par1EntityPlayer, $this))
                return 1;
            if (!$this.$worldObj.$isRemote) {
                $this.$jumpRearingCounter = 1;
                var$10 = (ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var4 = var$10 & (-33);
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    jl_Number__init_(var$2);
                    var$2.$value = $var4;
                }
                var$6 = ju_HashMap_get($par1EntityPlayer.$watchedObjects, jl_Integer_valueOf(16));
                if (!jl_Integer_equals(var$2, var$6.$watchedObject)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
                $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[144];
                if (var$2 === null)
                    $par1EntityPlayer = ju_HashMap_findNullKeyEntry($par1EntityPlayer);
                else {
                    var$10 = jl_Integer_hashCode0(var$2);
                    $par1EntityPlayer = ju_HashMap_findNonNullKeyEntry($par1EntityPlayer, var$2, var$10 & ($par1EntityPlayer.$elementData.data.length - 1 | 0), var$10);
                }
                $var4 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var3 = $var4 | 64;
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = $var3;
                }
                var$9 = $par1EntityPlayer.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null)
                    var$9 = ju_HashMap_findNullKeyEntry(var$9);
                else {
                    $var4 = jl_Integer_hashCode0(var$6);
                    var$9 = ju_HashMap_findNonNullKeyEntry(var$9, var$6, $var4 & (var$9.$elementData.data.length - 1 | 0), $var4);
                }
                var$6 = var$9 === null ? null : var$9.$value0;
                var$9 = var$6.$watchedObject;
                if (!(var$2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2.$value ? 1 : 0)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
            }
            $par1EntityPlayer = nms_EntityHorse_getAngrySoundName($this);
            if ($par1EntityPlayer === null)
                return 1;
            var$11 = 0.800000011920929;
            var$12 = nms_EntityLivingBase_getSoundPitch($this);
            var$2 = $this.$worldObj;
            $ptr = 9;
            continue main;
        }
        if (!$var3) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                $var4 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var4) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            if ((var$10 != 2 && var$10 != 1 ? 0 : 1) && !(!(jl_Integer_intValue(nms_WatchableObject_getObject(nms_DataWatcher_getWatchedObject($this.$dataWatcher, 16))) & 8) ? 0 : 1)) {
                $var4 = $var2.$itemID;
                nms_Block_$callClinit();
                if ($var4 == nms_Block_chest.$blockID) {
                    nms_EntityHorse_setChested($this, 1);
                    var$2 = $rt_s(2231);
                    var$12 = 1.0;
                    var$11 = (nle_EaglercraftRandom_nextFloat($this.$rand) - nle_EaglercraftRandom_nextFloat($this.$rand)) * 0.20000000298023224 + 1.0;
                    $ptr = 13;
                    continue main;
                }
            }
        }
        if (!$var3 && nms_EntityHorse_func_110253_bW($this) && !nms_EntityHorse_isHorseSaddled($this)) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_saddle.$itemID0) {
                $ptr = 11;
                continue main;
            }
        }
        if ($var3) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                $var3 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = $var3;
                if (!$var3) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    $var3 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    $ptr = 10;
                    continue main;
                }
            }
            return 1;
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity === null) {
            if ($var2 !== null && nms_ItemStack_func_111282_a($var2, $par1EntityPlayer, $this))
                return 1;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 16:
        nms_World_playSoundAtEntity(var$9, $this, var$2, var$12, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var6 = var$6.$value;
            var$8 = var$2.$elementData.data;
            var$2 = var$8[$var6 & (var$8.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var6) {
                    var$9 = var$2.$key;
                    if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var4 = !(var$2.$watchedObject.$value & 2) ? 0 : 1;
        if (!$var4 && !$var3) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var2.$itemID].$itemInteractionForEntity($var2, $par1EntityPlayer, $this))
                return 1;
            if (!$this.$worldObj.$isRemote) {
                $this.$jumpRearingCounter = 1;
                var$10 = (ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var4 = var$10 & (-33);
                if ($var4 >= (-128) && $var4 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    jl_Number__init_(var$2);
                    var$2.$value = $var4;
                }
                var$6 = ju_HashMap_get($par1EntityPlayer.$watchedObjects, jl_Integer_valueOf(16));
                if (!jl_Integer_equals(var$2, var$6.$watchedObject)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
                $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[144];
                if (var$2 === null)
                    $par1EntityPlayer = ju_HashMap_findNullKeyEntry($par1EntityPlayer);
                else {
                    var$10 = jl_Integer_hashCode0(var$2);
                    $par1EntityPlayer = ju_HashMap_findNonNullKeyEntry($par1EntityPlayer, var$2, var$10 & ($par1EntityPlayer.$elementData.data.length - 1 | 0), var$10);
                }
                $var4 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value;
                $par1EntityPlayer = $this.$dataWatcher;
                $var3 = $var4 | 64;
                if ($var3 >= (-128) && $var3 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                } else {
                    var$2 = new jl_Integer;
                    var$2.$value = $var3;
                }
                var$9 = $par1EntityPlayer.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null)
                    var$9 = ju_HashMap_findNullKeyEntry(var$9);
                else {
                    $var4 = jl_Integer_hashCode0(var$6);
                    var$9 = ju_HashMap_findNonNullKeyEntry(var$9, var$6, $var4 & (var$9.$elementData.data.length - 1 | 0), $var4);
                }
                var$6 = var$9 === null ? null : var$9.$value0;
                var$9 = var$6.$watchedObject;
                if (!(var$2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2.$value ? 1 : 0)) {
                    var$6.$watchedObject = var$2;
                    var$6.$watched = 1;
                    $par1EntityPlayer.$objectChanged = 1;
                }
            }
            $par1EntityPlayer = nms_EntityHorse_getAngrySoundName($this);
            if ($par1EntityPlayer === null)
                return 1;
            var$11 = 0.800000011920929;
            var$12 = nms_EntityLivingBase_getSoundPitch($this);
            var$2 = $this.$worldObj;
            $ptr = 9;
            continue main;
        }
        if (!$var3) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                $var4 = var$6.$value;
                var$8 = var$2.$elementData.data;
                var$2 = var$8[$var4 & (var$8.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var4) {
                        var$9 = var$2.$key;
                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            if ((var$10 != 2 && var$10 != 1 ? 0 : 1) && !(!(jl_Integer_intValue(nms_WatchableObject_getObject(nms_DataWatcher_getWatchedObject($this.$dataWatcher, 16))) & 8) ? 0 : 1)) {
                $var4 = $var2.$itemID;
                nms_Block_$callClinit();
                if ($var4 == nms_Block_chest.$blockID) {
                    nms_EntityHorse_setChested($this, 1);
                    var$2 = $rt_s(2231);
                    var$12 = 1.0;
                    var$11 = (nle_EaglercraftRandom_nextFloat($this.$rand) - nle_EaglercraftRandom_nextFloat($this.$rand)) * 0.20000000298023224 + 1.0;
                    $ptr = 13;
                    continue main;
                }
            }
        }
        if (!$var3 && nms_EntityHorse_func_110253_bW($this) && !nms_EntityHorse_isHorseSaddled($this)) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_saddle.$itemID0) {
                $ptr = 11;
                continue main;
            }
        }
        if ($var3) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                $var3 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = $var3;
                if (!$var3) {
                    $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                    $var3 = $par1EntityPlayer.$currentItem;
                    var$2 = null;
                    $ptr = 10;
                    continue main;
                }
            }
            return 1;
        }
        $var3 = nms_EntityAgeable_isChild($this) ? 0 : 1;
        if ($var3 && $this.$riddenByEntity === null) {
            if ($var2 !== null && nms_ItemStack_func_111282_a($var2, $par1EntityPlayer, $this))
                return 1;
            $ptr = 4;
            continue main;
        }
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, $var4, $var2, $var3, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var5, $var6, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntityHorse_func_110237_h = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityPlayer.$rotationYaw = $this.$rotationYaw;
        $par1EntityPlayer.$rotationPitch = $this.$rotationPitch;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = jl_Integer_hashCode(var$3.$value);
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$3, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
        var$2 = $this.$dataWatcher;
        var$4 = var$6 & (-33);
        if (var$4 >= (-128) && var$4 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[var$4 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = var$4;
        }
        var$7 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$8.$value);
            var$5 = var$7.$elementData.data;
            var$7 = var$5[var$9 & (var$5.length - 1 | 0)];
            while (var$7 !== null && !(var$7.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$8, var$7.$key))) {
                var$7 = var$7.$next3;
            }
        }
        var$10 = var$7 === null ? null : var$7.$value0;
        var$7 = var$10.$watchedObject;
        if (!(var$3 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$3.$value ? 1 : 0)) {
            var$10.$watchedObject = var$3;
            var$10.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$9 = var$7.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$9 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    var$3 = var$2.$key;
                    if (var$7 !== var$3 && !jl_Integer_equals(var$7, var$3) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
        var$2 = $this.$dataWatcher;
        var$4 = var$6 & (-65);
        if (var$4 >= (-128) && var$4 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[var$4 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = var$4;
        }
        var$7 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$9 = var$8.$value;
            var$5 = var$7.$elementData.data;
            var$7 = var$5[var$9 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$9) {
                    var$10 = var$7.$key;
                    if (var$8 !== var$10 && !jl_Integer_equals(var$8, var$10) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$10 = var$7 === null ? null : var$7.$value0;
        var$7 = var$10.$watchedObject;
        if (!(var$3 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$3.$value ? 1 : 0)) {
            var$10.$watchedObject = var$3;
            var$10.$watched = 1;
            var$2.$objectChanged = 1;
        }
        if ($this.$worldObj.$isRemote)
            return;
        $ptr = 1;
    case 1:
        nms_Entity_mountEntity($par1EntityPlayer, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $par1EntityPlayer.$playerNetServerHandler;
        var$3 = new nms_Packet39AttachEntity;
        var$7 = $par1EntityPlayer.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$attachState = 0;
        var$3.$ridingEntityId = $par1EntityPlayer.$entityId;
        var$4 = var$7 === null ? (-1) : var$7.$entityId;
        a: {
            var$3.$vehicleEntityId = var$4;
            if (var$3 instanceof nms_Packet3Chat) {
                var$7 = var$3;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break a;
                if (var$6 == 1 && !var$7.$isServer)
                    break a;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$7);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        b: {
            var$2 = $par1EntityPlayer.$playerNetServerHandler;
            var$11 = $par1EntityPlayer.$posX;
            var$12 = $par1EntityPlayer.$posY;
            var$13 = $par1EntityPlayer.$posZ;
            var$14 = $par1EntityPlayer.$rotationYaw;
            var$15 = $par1EntityPlayer.$rotationPitch;
            var$2.$hasMoved = 0;
            var$2.$lastPosX = var$11;
            var$2.$lastPosY = var$12;
            var$2.$lastPosZ = var$13;
            nms_Entity_setPositionAndRotation(var$2.$playerEntity, var$11, var$12, var$13, var$14, var$15);
            $par1EntityPlayer = var$2.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$16 = var$12 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$11;
            var$2.$yPosition = var$16;
            var$2.$stance = var$12;
            var$2.$zPosition = var$13;
            var$2.$yaw = var$14;
            var$2.$pitch = var$15;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$6 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break b;
                if (var$6 == 1 && !var$3.$isServer)
                    break b;
            }
            try {
                $par1EntityPlayer = $par1EntityPlayer.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$7);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        d: {
            var$2 = $par1EntityPlayer.$playerNetServerHandler;
            var$11 = $par1EntityPlayer.$posX;
            var$12 = $par1EntityPlayer.$posY;
            var$13 = $par1EntityPlayer.$posZ;
            var$14 = $par1EntityPlayer.$rotationYaw;
            var$15 = $par1EntityPlayer.$rotationPitch;
            var$2.$hasMoved = 0;
            var$2.$lastPosX = var$11;
            var$2.$lastPosY = var$12;
            var$2.$lastPosZ = var$13;
            nms_Entity_setPositionAndRotation(var$2.$playerEntity, var$11, var$12, var$13, var$14, var$15);
            $par1EntityPlayer = var$2.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$16 = var$12 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$11;
            var$2.$yPosition = var$16;
            var$2.$stance = var$12;
            var$2.$zPosition = var$13;
            var$2.$yaw = var$14;
            var$2.$pitch = var$15;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$6 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break d;
                if (var$6 == 1 && !var$3.$isServer)
                    break d;
            }
            try {
                $par1EntityPlayer = $par1EntityPlayer.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return;
    case 3:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityHorse_isMovementBlocked = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    a: {
        if ($this.$riddenByEntity !== null) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(var$1.$watchedObject.$value & 4) ? 0 : 1) {
                var$6 = 1;
                break a;
            }
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value & 32) ? 0 : 1)) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(!(var$1.$watchedObject.$value & 64) ? 0 : 1)) {
                var$6 = 0;
                break a;
            }
        }
        var$6 = 1;
    }
    return var$6;
},
nms_EntityHorse_isBreedingItem = ($this, $par1ItemStack) => {
    return 0;
},
nms_EntityHorse_onDeath = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onDeath($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$worldObj.$isRemote;
        if (!var$2) {
            a: {
                $par1DamageSource = $this.$horseChest;
                if ($par1DamageSource !== null && !var$2) {
                    var$2 = 0;
                    var$3 = 0.0;
                    var$4 = 138;
                    while (true) {
                        if (var$2 >= $par1DamageSource.$slotsCount)
                            break a;
                        var$5 = $par1DamageSource.$inventoryContents.data[var$2];
                        if (var$5 !== null && var$5.$stackSize)
                            break;
                        var$2 = var$2 + 1 | 0;
                    }
                    var$6 = new nms_EntityItem;
                    var$7 = $this.$worldObj;
                    var$8 = $this.$posX;
                    var$9 = $this.$posY + var$3;
                    var$10 = $this.$posZ;
                    $ptr = 2;
                    continue main;
                }
            }
            if (!$this.$worldObj.$isRemote) {
                $par1DamageSource = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null)
                    $par1DamageSource = ju_HashMap_findNullKeyEntry($par1DamageSource);
                else {
                    var$4 = jl_Integer_hashCode0(var$6);
                    $par1DamageSource = ju_HashMap_findNonNullKeyEntry($par1DamageSource, var$6, var$4 & ($par1DamageSource.$elementData.data.length - 1 | 0), var$4);
                }
                $par1DamageSource = $par1DamageSource === null ? null : $par1DamageSource.$value0;
                if (!($par1DamageSource.$watchedObject.$value & 8) ? 0 : 1) {
                    nms_Block_$callClinit();
                    var$11 = nms_Block_chest.$blockID;
                    $par1DamageSource = new nms_ItemStack;
                    nms_ItemStack_$callClinit();
                    $par1DamageSource.$itemID = var$11;
                    $par1DamageSource.$stackSize = 1;
                    $par1DamageSource.$itemDamage = 0;
                    var$6 = new nms_EntityItem;
                    var$7 = $this.$worldObj;
                    var$8 = $this.$posX;
                    var$9 = $this.$posY + 0.0;
                    var$3 = $this.$posZ;
                    $ptr = 3;
                    continue main;
                }
            }
        }
        return;
    case 2:
        nms_EntityItem__init_(var$6, var$7, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$6.$dataWatcher;
        var$7 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = ju_HashMap_entryByKey(var$7, jl_Integer_integerCache.data[var$4]);
        var$13 = var$7 === null ? null : var$7.$value0;
        if (!(var$5 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$5;
            var$13.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$13 = var$6.$dataWatcher;
        var$7 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = ju_HashMap_entryByKey(var$7, jl_Integer_integerCache.data[var$4]);
        (var$7 === null ? null : var$7.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$6.$delayBeforeCanPickup = 10;
        var$7 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityItem__init_(var$6, var$7, var$8, var$9, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$6.$dataWatcher;
        var$7 = nms_DataWatcher_getWatchedObject(var$13, 10);
        if (!jl_Object_equals($par1DamageSource, nms_WatchableObject_getObject(var$7))) {
            nms_WatchableObject_setObject(var$7, $par1DamageSource);
            nms_WatchableObject_setWatched(var$7, 1);
            var$13.$objectChanged = 1;
        }
        var$7 = var$6.$dataWatcher;
        nms_WatchableObject_setWatchableObjectWatched(nms_DataWatcher_getWatchedObject(var$7, 10), 1);
        var$7.$objectChanged = 1;
        var$6.$delayBeforeCanPickup = 10;
        $par1DamageSource = $this.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par1DamageSource, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par1DamageSource = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null)
            $par1DamageSource = ju_HashMap_findNullKeyEntry($par1DamageSource);
        else {
            var$11 = jl_Integer_hashCode0(var$6);
            $par1DamageSource = ju_HashMap_findNonNullKeyEntry($par1DamageSource, var$6, var$11 & ($par1DamageSource.$elementData.data.length - 1 | 0), var$11);
        }
        var$2 = ($par1DamageSource === null ? null : $par1DamageSource.$value0).$watchedObject.$value;
        $par1DamageSource = $this.$dataWatcher;
        var$2 = var$2 & (-9);
        if (var$2 >= (-128) && var$2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
        } else {
            var$6 = new jl_Integer;
            var$6.$value = var$2;
        }
        var$7 = $par1DamageSource.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null)
            var$7 = ju_HashMap_findNullKeyEntry(var$7);
        else {
            var$11 = jl_Integer_hashCode0(var$5);
            var$7 = ju_HashMap_findNonNullKeyEntry(var$7, var$5, var$11 & (var$7.$elementData.data.length - 1 | 0), var$11);
        }
        var$5 = var$7 === null ? null : var$7.$value0;
        var$7 = var$5.$watchedObject;
        if (!(var$6 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$6.$value ? 1 : 0)) {
            var$5.$watchedObject = var$6;
            var$5.$watched = 1;
            $par1DamageSource.$objectChanged = 1;
        }
        return;
    case 5:
        nms_World_spawnEntityInWorld(var$7, var$6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            while (true) {
                var$2 = var$2 + 1 | 0;
                if (var$2 >= $par1DamageSource.$slotsCount) {
                    if (!$this.$worldObj.$isRemote) {
                        $par1DamageSource = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[144];
                        if (var$6 === null)
                            $par1DamageSource = ju_HashMap_findNullKeyEntry($par1DamageSource);
                        else {
                            var$4 = jl_Integer_hashCode0(var$6);
                            $par1DamageSource = ju_HashMap_findNonNullKeyEntry($par1DamageSource, var$6, var$4 & ($par1DamageSource.$elementData.data.length - 1 | 0), var$4);
                        }
                        $par1DamageSource = $par1DamageSource === null ? null : $par1DamageSource.$value0;
                        if (!($par1DamageSource.$watchedObject.$value & 8) ? 0 : 1) {
                            nms_Block_$callClinit();
                            var$11 = nms_Block_chest.$blockID;
                            $par1DamageSource = new nms_ItemStack;
                            nms_ItemStack_$callClinit();
                            $par1DamageSource.$itemID = var$11;
                            $par1DamageSource.$stackSize = 1;
                            $par1DamageSource.$itemDamage = 0;
                            var$6 = new nms_EntityItem;
                            var$7 = $this.$worldObj;
                            var$8 = $this.$posX;
                            var$9 = $this.$posY + 0.0;
                            var$3 = $this.$posZ;
                            $ptr = 3;
                            continue main;
                        }
                    }
                    return;
                }
                var$5 = $par1DamageSource.$inventoryContents.data[var$2];
                if (var$5 === null)
                    continue;
                else
                    break;
            }
            if (var$5.$stackSize)
                break;
        }
        var$6 = new nms_EntityItem;
        var$7 = $this.$worldObj;
        var$8 = $this.$posX;
        var$9 = $this.$posY + var$3;
        var$10 = $this.$posZ;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityHorse_onLivingUpdate = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var1.$seed = var$2;
        var$3 = 17;
        var$4 = Long_lo(Long_shru(var$2, var$3));
        while (true) {
            var$5 = var$4 % 200 | 0;
            if (((var$4 - var$5 | 0) + 199 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var1.$seed = var$2;
            var$4 = Long_lo(Long_shru(var$2, var$3));
        }
        if (!var$5)
            $this.$field_110278_bp = 1;
        $ptr = 1;
    case 1:
        nms_EntityAnimal_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote) {
            $var1 = $this.$rand;
            var$2 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var1.$seed = var$2;
            var$4 = Long_lo(Long_shru(var$2, var$3));
            while (true) {
                var$5 = var$4 % 900 | 0;
                if (((var$4 - var$5 | 0) + 899 | 0) >= 0)
                    break;
                var$2 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$2;
                var$4 = Long_lo(Long_shru(var$2, var$3));
            }
            if (!var$5 && !$this.$deathTime) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[134];
                if (var$6 !== null) {
                    var$4 = var$6.$value;
                    var$7 = $var1.$elementData.data;
                    $var1 = var$7[var$4 & (var$7.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$4) {
                            $var2 = $var1.$key;
                            if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                } else {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                }
                var$9 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value3;
                if (var$9 > 0.0) {
                    var$10 = var$9 + 1.0;
                    $var1 = $this.$dataWatcher;
                    var$11 = 0.0;
                    $var2 = nms_SharedMonsterAttributes_maxHealth;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    $var2 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var2);
                    $var2 = $var2 === null ? null : $var2.$value0;
                    if ($var2.$field_111133_g) {
                        $var2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var2);
                        $var2.$field_111133_g = 0;
                    }
                    var$9 = $var2.$field_111139_h;
                    if (var$10 >= var$11)
                        var$11 = var$10 <= var$9 ? var$10 : var$9;
                    var$12 = new jl_Float;
                    var$12.$value3 = var$11;
                    $var2 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$13 = jl_Integer_integerCache.data[134];
                    if (var$13 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$4 = var$13.$value;
                        var$7 = $var2.$elementData.data;
                        $var2 = var$7[var$4 & (var$7.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$4) {
                                var$6 = $var2.$key;
                                if (var$13 !== var$6 && !jl_Integer_equals(var$13, var$6) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    var$6 = $var2 === null ? null : $var2.$value0;
                    $var2 = var$6.$watchedObject;
                    if (var$12 !== $var2)
                        a: {
                            if ($var2 instanceof jl_Float) {
                                var$10 = var$12.$value3;
                                var$11 = $var2.$value3;
                                if (var$10 !== var$10 ? (var$11 === var$11 ? 0 : 1) : $rt_floatToRawIntBits(var$10) != $rt_floatToRawIntBits(var$11) ? 0 : 1) {
                                    var$14 = 1;
                                    break a;
                                }
                            }
                            var$14 = 0;
                        }
                    else
                        var$14 = 1;
                    if (!var$14) {
                        var$6.$watchedObject = var$12;
                        var$6.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                }
            }
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$5 = var$6.$value;
                var$7 = $var1.$elementData.data;
                $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$5) {
                        $var2 = $var1.$key;
                        if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $var1 = $var1 === null ? null : $var1.$value0;
            var$14 = !($var1.$watchedObject.$value & 32) ? 0 : 1;
            if (!var$14 && $this.$riddenByEntity === null) {
                $var1 = $this.$rand;
                var$2 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$2;
                var$4 = Long_lo(Long_shru(var$2, var$3));
                while (true) {
                    var$5 = var$4 % 300 | 0;
                    if (((var$4 - var$5 | 0) + 299 | 0) >= 0)
                        break;
                    var$2 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$2;
                    var$4 = Long_lo(Long_shru(var$2, var$3));
                }
                if (!var$5) {
                    $var1 = $this.$worldObj;
                    var$15 = $this.$posX;
                    var$5 = var$15 | 0;
                    if (var$15 < var$5)
                        var$5 = var$5 - 1 | 0;
                    var$15 = $this.$posY;
                    var$16 = var$15 | 0;
                    if (var$15 < var$16)
                        var$16 = var$16 - 1 | 0;
                    var$14 = var$16 - 1 | 0;
                    var$15 = $this.$posZ;
                    var$4 = var$15 | 0;
                    if (var$15 < var$4)
                        var$4 = var$4 - 1 | 0;
                    $ptr = 2;
                    continue main;
                }
            }
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$5 = var$6.$value;
                var$7 = $var1.$elementData.data;
                $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$5) {
                        $var2 = $var1.$key;
                        if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $var1 = $var1 === null ? null : $var1.$value0;
            if (!($var1.$watchedObject.$value & 32) ? 0 : 1) {
                var$14 = $this.$eatingHaystackCounter + 1 | 0;
                $this.$eatingHaystackCounter = var$14;
                if (var$14 > 50) {
                    $this.$eatingHaystackCounter = 0;
                    $var1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[144];
                    if (var$6 === null) {
                        $var1 = $var1.$elementData.data[0];
                        while ($var1 !== null && $var1.$key !== null) {
                            $var1 = $var1.$next3;
                        }
                    } else {
                        var$4 = jl_Integer_hashCode(var$6.$value);
                        var$7 = $var1.$elementData.data;
                        $var1 = var$7[var$4 & (var$7.length - 1 | 0)];
                        while ($var1 !== null && !($var1.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$6, $var1.$key))) {
                            $var1 = $var1.$next3;
                        }
                    }
                    var$16 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
                    $var1 = $this.$dataWatcher;
                    var$14 = var$16 & (-33);
                    if (var$14 >= (-128) && var$14 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var2 = jl_Integer_integerCache.data[var$14 + 128 | 0];
                    } else {
                        $var2 = new jl_Integer;
                        $var2.$value = var$14;
                    }
                    var$6 = $var1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$12 = jl_Integer_integerCache.data[144];
                    if (var$12 === null) {
                        var$6 = var$6.$elementData.data[0];
                        while (var$6 !== null && var$6.$key !== null) {
                            var$6 = var$6.$next3;
                        }
                    } else {
                        var$4 = jl_Integer_hashCode(var$12.$value);
                        var$7 = var$6.$elementData.data;
                        var$6 = var$7[var$4 & (var$7.length - 1 | 0)];
                        while (var$6 !== null && !(var$6.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$12, var$6.$key))) {
                            var$6 = var$6.$next3;
                        }
                    }
                    var$13 = var$6 === null ? null : var$6.$value0;
                    var$6 = var$13.$watchedObject;
                    if (!($var2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var2.$value ? 1 : 0)) {
                        var$13.$watchedObject = $var2;
                        var$13.$watched = 1;
                        $var1.$objectChanged = 1;
                    }
                }
            }
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$5 = var$6.$value;
                var$7 = $var1.$elementData.data;
                $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$5) {
                        $var2 = $var1.$key;
                        if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $var1 = $var1 === null ? null : $var1.$value0;
            if ((!($var1.$watchedObject.$value & 16) ? 0 : 1) && !(nms_EntityAgeable_isChild($this) ? 0 : 1)) {
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$5 = var$6.$value;
                    var$7 = $var1.$elementData.data;
                    $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$5) {
                            $var2 = $var1.$key;
                            if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                $var1 = $var1 === null ? null : $var1.$value0;
                if (!(!($var1.$watchedObject.$value & 32) ? 0 : 1)) {
                    var$15 = 16.0;
                    $ptr = 3;
                    continue main;
                }
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId($var1, var$5, var$14, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        nms_Block_$callClinit();
        if (var$14 == nms_Block_grass.$blockID) {
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var2 = jl_Integer_integerCache.data[144];
            if ($var2 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$16 = jl_Integer_hashCode($var2.$value);
                var$7 = $var1.$elementData.data;
                $var1 = var$7[var$16 & (var$7.length - 1 | 0)];
                while ($var1 !== null && !($var1.$origKeyHash == var$16 && ju_HashMap_areEqualKeys($var2, $var1.$key))) {
                    $var1 = $var1.$next3;
                }
            }
            var$16 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
            $var1 = $this.$dataWatcher;
            var$14 = var$16 | 32;
            if (var$14 >= (-128) && var$14 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var2 = jl_Integer_integerCache.data[var$14 + 128 | 0];
            } else {
                $var2 = new jl_Integer;
                $var2.$value = var$14;
            }
            var$6 = $var1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$12 = jl_Integer_integerCache.data[144];
            if (var$12 === null) {
                var$6 = var$6.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                var$16 = jl_Integer_hashCode(var$12.$value);
                var$7 = var$6.$elementData.data;
                var$6 = var$7[var$16 & (var$7.length - 1 | 0)];
                while (var$6 !== null && !(var$6.$origKeyHash == var$16 && ju_HashMap_areEqualKeys(var$12, var$6.$key))) {
                    var$6 = var$6.$next3;
                }
            }
            var$13 = var$6 === null ? null : var$6.$value0;
            var$6 = var$13.$watchedObject;
            if (!($var2 !== var$6 ? (var$6 instanceof jl_Integer && var$6.$value == $var2.$value ? 1 : 0) : 1)) {
                var$13.$watchedObject = $var2;
                var$13.$watched = 1;
                $var1.$objectChanged = 1;
            }
        }
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$5 = var$6.$value;
            var$7 = $var1.$elementData.data;
            $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$5) {
                    $var2 = $var1.$key;
                    if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        if (!($var1.$watchedObject.$value & 32) ? 0 : 1) {
            var$14 = $this.$eatingHaystackCounter + 1 | 0;
            $this.$eatingHaystackCounter = var$14;
            if (var$14 > 50) {
                $this.$eatingHaystackCounter = 0;
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$4 = jl_Integer_hashCode(var$6.$value);
                    var$7 = $var1.$elementData.data;
                    $var1 = var$7[var$4 & (var$7.length - 1 | 0)];
                    while ($var1 !== null && !($var1.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$6, $var1.$key))) {
                        $var1 = $var1.$next3;
                    }
                }
                var$16 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
                $var1 = $this.$dataWatcher;
                var$14 = var$16 & (-33);
                if (var$14 >= (-128) && var$14 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var2 = jl_Integer_integerCache.data[var$14 + 128 | 0];
                } else {
                    $var2 = new jl_Integer;
                    $var2.$value = var$14;
                }
                var$6 = $var1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$12 = jl_Integer_integerCache.data[144];
                if (var$12 === null) {
                    var$6 = var$6.$elementData.data[0];
                    while (var$6 !== null && var$6.$key !== null) {
                        var$6 = var$6.$next3;
                    }
                } else {
                    var$4 = jl_Integer_hashCode(var$12.$value);
                    var$7 = var$6.$elementData.data;
                    var$6 = var$7[var$4 & (var$7.length - 1 | 0)];
                    while (var$6 !== null && !(var$6.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$12, var$6.$key))) {
                        var$6 = var$6.$next3;
                    }
                }
                var$13 = var$6 === null ? null : var$6.$value0;
                var$6 = var$13.$watchedObject;
                if (!($var2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var2.$value ? 1 : 0)) {
                    var$13.$watchedObject = $var2;
                    var$13.$watched = 1;
                    $var1.$objectChanged = 1;
                }
            }
        }
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$5 = var$6.$value;
            var$7 = $var1.$elementData.data;
            $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$5) {
                    $var2 = $var1.$key;
                    if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        var$14 = !($var1.$watchedObject.$value & 16) ? 0 : 1;
        if (var$14 && !(nms_EntityAgeable_isChild($this) ? 0 : 1)) {
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$5 = var$6.$value;
                var$7 = $var1.$elementData.data;
                $var1 = var$7[var$5 & (var$7.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$5) {
                        $var2 = $var1.$key;
                        if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $var1 = $var1 === null ? null : $var1.$value0;
            if (!(!($var1.$watchedObject.$value & 32) ? 0 : 1)) {
                var$15 = 16.0;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 3:
        $tmp = nms_EntityHorse_getClosestHorse($this, $this, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 !== null) {
            var$15 = $this.$posX - $var1.$posX;
            var$17 = $this.$posY - $var1.$posY;
            var$18 = $this.$posZ - $var1.$posZ;
            if (var$15 * var$15 + var$17 * var$17 + var$18 * var$18 > 4.0) {
                $var2 = $this.$worldObj;
                var$10 = 16.0;
                var$14 = 1;
                var$16 = 0;
                var$4 = 0;
                var$5 = 1;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 4:
        $tmp = nms_World_getPathEntityToEntity($var2, $this, $var1, var$10, var$14, var$16, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $this.$pathToEntity = $var2;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityHorse_onUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            if ($this.$worldObj.$isRemote) {
                var$1 = $this.$dataWatcher;
                if (var$1.$objectChanged) {
                    var$1.$objectChanged = 0;
                    $this.$field_110286_bQ = null;
                }
            }
            var$2 = $this.$openMouthCounter;
            if (var$2 > 0) {
                var$2 = var$2 + 1 | 0;
                $this.$openMouthCounter = var$2;
                if (var$2 > 30) {
                    $this.$openMouthCounter = 0;
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$3 = jl_Integer_integerCache.data[144];
                    if (var$3 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$4 = var$3.$value;
                        var$5 = var$1.$elementData.data;
                        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$4) {
                                var$6 = var$1.$key;
                                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    var$7 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
                    var$1 = $this.$dataWatcher;
                    var$2 = var$7 & (-129);
                    if (var$2 >= (-128) && var$2 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
                    } else {
                        var$6 = new jl_Integer;
                        var$6.$value = var$2;
                    }
                    var$3 = var$1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$8 = jl_Integer_integerCache.data[144];
                    if (var$8 !== null) {
                        var$4 = var$8.$value;
                        var$5 = var$3.$elementData.data;
                        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$4) {
                                var$9 = var$3.$key;
                                if (var$8 !== var$9 && !(var$8 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    }
                    var$9 = var$3 === null ? null : var$3.$value0;
                    var$3 = var$9.$watchedObject;
                    if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                        var$9.$watchedObject = var$6;
                        var$9.$watched = 1;
                        var$1.$objectChanged = 1;
                    }
                }
            }
            if (!$this.$worldObj.$isRemote) {
                var$2 = $this.$jumpRearingCounter;
                if (var$2 > 0) {
                    var$2 = var$2 + 1 | 0;
                    $this.$jumpRearingCounter = var$2;
                    if (var$2 > 20) {
                        $this.$jumpRearingCounter = 0;
                        var$1 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$3 = jl_Integer_integerCache.data[144];
                        if (var$3 !== null) {
                            var$4 = var$3.$value;
                            var$5 = var$1.$elementData.data;
                            var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
                            while (var$1 !== null) {
                                if (var$1.$origKeyHash == var$4) {
                                    var$6 = var$1.$key;
                                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                                        break;
                                }
                                var$1 = var$1.$next3;
                            }
                        } else {
                            var$1 = var$1.$elementData.data[0];
                            while (var$1 !== null && var$1.$key !== null) {
                                var$1 = var$1.$next3;
                            }
                        }
                        var$7 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
                        var$1 = $this.$dataWatcher;
                        var$2 = var$7 & (-65);
                        if (var$2 >= (-128) && var$2 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
                        } else {
                            var$6 = new jl_Integer;
                            var$6.$value = var$2;
                        }
                        var$3 = var$1.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$8 = jl_Integer_integerCache.data[144];
                        if (var$8 !== null) {
                            var$4 = var$8.$value;
                            var$5 = var$3.$elementData.data;
                            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                            while (var$3 !== null) {
                                if (var$3.$origKeyHash == var$4) {
                                    var$9 = var$3.$key;
                                    if (var$8 !== var$9 && !jl_Integer_equals(var$8, var$9) ? 0 : 1)
                                        break;
                                }
                                var$3 = var$3.$next3;
                            }
                        } else {
                            var$3 = var$3.$elementData.data[0];
                            while (var$3 !== null && var$3.$key !== null) {
                                var$3 = var$3.$next3;
                            }
                        }
                        var$9 = var$3 === null ? null : var$3.$value0;
                        var$3 = var$9.$watchedObject;
                        if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                            var$9.$watchedObject = var$6;
                            var$9.$watched = 1;
                            var$1.$objectChanged = 1;
                        }
                    }
                }
            }
            var$2 = $this.$field_110278_bp;
            if (var$2 > 0) {
                var$2 = var$2 + 1 | 0;
                $this.$field_110278_bp = var$2;
                if (var$2 > 8)
                    $this.$field_110278_bp = 0;
            }
            var$2 = $this.$field_110279_bq;
            if (var$2 > 0) {
                var$2 = var$2 + 1 | 0;
                $this.$field_110279_bq = var$2;
                if (var$2 > 300)
                    $this.$field_110279_bq = 0;
            }
            $this.$prevHeadLean = $this.$headLean;
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[144];
            if (var$3 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$10 = var$3.$value;
                var$5 = var$1.$elementData.data;
                var$1 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$10) {
                        var$6 = var$1.$key;
                        if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(!(var$1.$watchedObject.$value & 32) ? 0 : 1)) {
                var$11 = $this.$headLean;
                var$12 = var$11 + (0.0 - var$11) * 0.4000000059604645 - 0.05000000074505806;
                $this.$headLean = var$12;
                if (var$12 < 0.0)
                    $this.$headLean = 0.0;
            } else {
                var$12 = $this.$headLean;
                var$12 = var$12 + (1.0 - var$12) * 0.4000000059604645 + 0.05000000074505806;
                $this.$headLean = var$12;
                if (var$12 > 1.0)
                    $this.$headLean = 1.0;
            }
            $this.$prevRearingAmount = $this.$rearingAmount;
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[144];
            if (var$3 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$10 = var$3.$value;
                var$5 = var$1.$elementData.data;
                var$1 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$10) {
                        var$6 = var$1.$key;
                        if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(var$1.$watchedObject.$value & 64) ? 0 : 1) {
                $this.$headLean = 0.0;
                $this.$prevHeadLean = 0.0;
                var$12 = $this.$rearingAmount;
                var$12 = var$12 + (1.0 - var$12) * 0.4000000059604645 + 0.05000000074505806;
                $this.$rearingAmount = var$12;
                if (var$12 > 1.0)
                    $this.$rearingAmount = 1.0;
            } else {
                $this.$field_110294_bI = 0;
                var$12 = $this.$rearingAmount;
                var$12 = var$12 + (0.800000011920929 * var$12 * var$12 * var$12 - var$12) * 0.6000000238418579 - 0.05000000074505806;
                $this.$rearingAmount = var$12;
                if (var$12 < 0.0)
                    $this.$rearingAmount = 0.0;
            }
            $this.$prevMouthOpenness = $this.$mouthOpenness;
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[144];
            if (var$3 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$10 = var$3.$value;
                var$5 = var$1.$elementData.data;
                var$1 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$10) {
                        var$6 = var$1.$key;
                        if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(!(var$1.$watchedObject.$value & 128) ? 0 : 1)) {
                var$12 = $this.$mouthOpenness;
                var$12 = var$12 + (0.0 - var$12) * 0.699999988079071 - 0.05000000074505806;
                $this.$mouthOpenness = var$12;
                if (var$12 < 0.0)
                    $this.$mouthOpenness = 0.0;
            } else {
                var$12 = $this.$mouthOpenness;
                var$12 = var$12 + (1.0 - var$12) * 0.699999988079071 + 0.05000000074505806;
                $this.$mouthOpenness = var$12;
                if (var$12 > 1.0)
                    $this.$mouthOpenness = 1.0;
            }
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$dataWatcher;
            if (var$1.$objectChanged) {
                var$1.$objectChanged = 0;
                $this.$field_110286_bQ = null;
            }
        }
        var$2 = $this.$openMouthCounter;
        if (var$2 > 0) {
            var$2 = var$2 + 1 | 0;
            $this.$openMouthCounter = var$2;
            if (var$2 > 30) {
                $this.$openMouthCounter = 0;
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[144];
                if (var$3 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$4 = var$3.$value;
                    var$5 = var$1.$elementData.data;
                    var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$4) {
                            var$6 = var$1.$key;
                            if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$7 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
                var$1 = $this.$dataWatcher;
                var$2 = var$7 & (-129);
                if (var$2 >= (-128) && var$2 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = var$2;
                }
                var$3 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$8 = jl_Integer_integerCache.data[144];
                if (var$8 !== null) {
                    var$4 = var$8.$value;
                    var$5 = var$3.$elementData.data;
                    var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$4) {
                            var$9 = var$3.$key;
                            if (var$8 !== var$9 && !(var$8 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                }
                var$9 = var$3 === null ? null : var$3.$value0;
                var$3 = var$9.$watchedObject;
                if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                    var$9.$watchedObject = var$6;
                    var$9.$watched = 1;
                    var$1.$objectChanged = 1;
                }
            }
        }
        if (!$this.$worldObj.$isRemote) {
            var$2 = $this.$jumpRearingCounter;
            if (var$2 > 0) {
                var$2 = var$2 + 1 | 0;
                $this.$jumpRearingCounter = var$2;
                if (var$2 > 20) {
                    $this.$jumpRearingCounter = 0;
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$3 = jl_Integer_integerCache.data[144];
                    if (var$3 !== null) {
                        var$4 = var$3.$value;
                        var$5 = var$1.$elementData.data;
                        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$4) {
                                var$6 = var$1.$key;
                                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    }
                    var$7 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
                    var$1 = $this.$dataWatcher;
                    var$2 = var$7 & (-65);
                    if (var$2 >= (-128) && var$2 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
                    } else {
                        var$6 = new jl_Integer;
                        var$6.$value = var$2;
                    }
                    var$3 = var$1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$8 = jl_Integer_integerCache.data[144];
                    if (var$8 !== null) {
                        var$4 = var$8.$value;
                        var$5 = var$3.$elementData.data;
                        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$4) {
                                var$9 = var$3.$key;
                                if (var$8 !== var$9 && !jl_Integer_equals(var$8, var$9) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    }
                    var$9 = var$3 === null ? null : var$3.$value0;
                    var$3 = var$9.$watchedObject;
                    if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                        var$9.$watchedObject = var$6;
                        var$9.$watched = 1;
                        var$1.$objectChanged = 1;
                    }
                }
            }
        }
        var$2 = $this.$field_110278_bp;
        if (var$2 > 0) {
            var$2 = var$2 + 1 | 0;
            $this.$field_110278_bp = var$2;
            if (var$2 > 8)
                $this.$field_110278_bp = 0;
        }
        var$2 = $this.$field_110279_bq;
        if (var$2 > 0) {
            var$2 = var$2 + 1 | 0;
            $this.$field_110279_bq = var$2;
            if (var$2 > 300)
                $this.$field_110279_bq = 0;
        }
        $this.$prevHeadLean = $this.$headLean;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$10 = var$3.$value;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$10) {
                    var$6 = var$1.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value & 32) ? 0 : 1)) {
            var$11 = $this.$headLean;
            var$12 = var$11 + (0.0 - var$11) * 0.4000000059604645 - 0.05000000074505806;
            $this.$headLean = var$12;
            if (var$12 < 0.0)
                $this.$headLean = 0.0;
        } else {
            var$12 = $this.$headLean;
            var$12 = var$12 + (1.0 - var$12) * 0.4000000059604645 + 0.05000000074505806;
            $this.$headLean = var$12;
            if (var$12 > 1.0)
                $this.$headLean = 1.0;
        }
        $this.$prevRearingAmount = $this.$rearingAmount;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$10 = var$3.$value;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$10) {
                    var$6 = var$1.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value & 64) ? 0 : 1) {
            $this.$headLean = 0.0;
            $this.$prevHeadLean = 0.0;
            var$12 = $this.$rearingAmount;
            var$12 = var$12 + (1.0 - var$12) * 0.4000000059604645 + 0.05000000074505806;
            $this.$rearingAmount = var$12;
            if (var$12 > 1.0)
                $this.$rearingAmount = 1.0;
        } else {
            $this.$field_110294_bI = 0;
            var$12 = $this.$rearingAmount;
            var$12 = var$12 + (0.800000011920929 * var$12 * var$12 * var$12 - var$12) * 0.6000000238418579 - 0.05000000074505806;
            $this.$rearingAmount = var$12;
            if (var$12 < 0.0)
                $this.$rearingAmount = 0.0;
        }
        $this.$prevMouthOpenness = $this.$mouthOpenness;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$10 = var$3.$value;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$10) {
                    var$6 = var$1.$key;
                    if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value & 128) ? 0 : 1)) {
            var$12 = $this.$mouthOpenness;
            var$12 = var$12 + (0.0 - var$12) * 0.699999988079071 - 0.05000000074505806;
            $this.$mouthOpenness = var$12;
            if (var$12 < 0.0)
                $this.$mouthOpenness = 0.0;
        } else {
            var$12 = $this.$mouthOpenness;
            var$12 = var$12 + (1.0 - var$12) * 0.699999988079071 + 0.05000000074505806;
            $this.$mouthOpenness = var$12;
            if (var$12 > 1.0)
                $this.$mouthOpenness = 1.0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityHorse_func_110200_cJ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        if ($this.$riddenByEntity === null && $this.$ridingEntity === null) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if ((!(var$1.$watchedObject.$value & 2) ? 0 : 1) && (nms_EntityAgeable_isChild($this) ? 0 : 1)) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[147];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$6 = jl_Integer_hashCode(var$2.$value);
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
                    while (var$1 !== null && !(var$1.$origKeyHash == var$6 && ju_HashMap_areEqualKeys(var$2, var$1.$key))) {
                        var$1 = var$1.$next3;
                    }
                }
                var$7 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
                var$8 = var$7 != 3 && var$7 != 4 ? 0 : 1;
                b: {
                    if (!var$8) {
                        var$1 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$2 = jl_Integer_integerCache.data[147];
                        if (var$2 === null) {
                            var$1 = var$1.$elementData.data[0];
                            while (var$1 !== null && var$1.$key !== null) {
                                var$1 = var$1.$next3;
                            }
                        } else {
                            var$6 = var$2.$value;
                            var$4 = var$1.$elementData.data;
                            var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
                            while (var$1 !== null) {
                                if (var$1.$origKeyHash == var$6) {
                                    var$5 = var$1.$key;
                                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                                        break;
                                }
                                var$1 = var$1.$next3;
                            }
                        }
                        if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1 != 2) {
                            var$8 = 0;
                            break b;
                        }
                    }
                    var$8 = 1;
                }
                if (!var$8) {
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[134];
                    if (var$2 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$6 = var$2.$value;
                        var$4 = var$1.$elementData.data;
                        var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$6) {
                                var$5 = var$1.$key;
                                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    var$9 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value3;
                    var$1 = nms_SharedMonsterAttributes_maxHealth;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    var$5 = $this.$attributeMap.$attributes;
                    if (var$1 === null) {
                        var$5 = var$5.$elementData.data[0];
                        while (var$5 !== null && var$5.$key !== null) {
                            var$5 = var$5.$next3;
                        }
                    } else {
                        var$6 = jl_String_hashCode(var$1.$field_111115_a);
                        var$4 = var$5.$elementData.data;
                        var$5 = var$4[var$6 & (var$4.length - 1 | 0)];
                        while (var$5 !== null && !(var$5.$origKeyHash == var$6 && ju_HashMap_areEqualKeys(var$1, var$5.$key))) {
                            var$5 = var$5.$next3;
                        }
                    }
                    var$1 = var$5 === null ? null : var$5.$value0;
                    if (var$1.$field_111133_g) {
                        var$1.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$1);
                        var$1.$field_111133_g = 0;
                    }
                    if (var$9 >= var$1.$field_111139_h) {
                        var$8 = 1;
                        break a;
                    }
                }
            }
        }
        var$8 = 0;
    }
    return var$8;
},
nms_EntityHorse_moveEntityWithHeading = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var8, $var7, var$12, $var3, $var4, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$riddenByEntity !== null) {
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[144];
            if (var$4 !== null) {
                var$5 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        var$7 = var$3.$key;
                        if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            } else {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            if (!(var$3.$watchedObject.$value & 4) ? 0 : 1) {
                var$3 = $this.$riddenByEntity;
                $par1 = var$3.$rotationYaw;
                $this.$rotationYaw = $par1;
                $this.$prevRotationYaw = $par1;
                $par2 = var$3.$rotationPitch * 0.5;
                $this.$rotationPitch = $par2;
                $par1 = $par1 % 360.0;
                $this.$rotationYaw = $par1;
                $this.$rotationPitch = $par2 % 360.0;
                $this.$renderYawOffset = $par1;
                $this.$rotationYawHead = $par1;
                var$3 = var$3;
                $par1 = var$3.$moveStrafing * 0.5;
                $par2 = var$3.$moveForward;
                if ($par2 <= 0.0) {
                    $par2 = $par2 * 0.25;
                    $this.$field_110285_bP = 0;
                }
                if ($this.$onGround && $this.$jumpPower === 0.0) {
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 !== null) {
                        var$5 = var$4.$value;
                        var$6 = var$3.$elementData.data;
                        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$5) {
                                var$7 = var$3.$key;
                                if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if ((!(var$3.$watchedObject.$value & 64) ? 0 : 1) && !$this.$field_110294_bI) {
                        $par1 = 0.0;
                        $par2 = 0.0;
                    }
                }
                if ($this.$jumpPower > 0.0 && !$this.$horseJumping && $this.$onGround) {
                    var$3 = nms_EntityHorse_horseJumpStrength;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    var$7 = $this.$attributeMap.$attributes;
                    if (var$3 === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        var$8 = jl_String_hashCode(var$3.$field_111115_a);
                        var$6 = var$7.$elementData.data;
                        var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
                        while (var$7 !== null && !(var$7.$origKeyHash == var$8 && ju_HashMap_areEqualKeys(var$3, var$7.$key))) {
                            var$7 = var$7.$next3;
                        }
                    }
                    var$3 = var$7 === null ? null : var$7.$value0;
                    if (var$3.$field_111133_g) {
                        var$3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$3);
                        var$3.$field_111133_g = 0;
                    }
                    $this.$motionY = var$3.$field_111139_h * $this.$jumpPower;
                    nms_Potion_$callClinit();
                    var$3 = nms_Potion_jump;
                    var$7 = $this.$activePotionsMap;
                    var$9 = var$3.$id0;
                    if (var$9 >= (-128) && var$9 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$3 = jl_Integer_integerCache.data[var$9 + 128 | 0];
                    } else {
                        var$3 = new jl_Integer;
                        var$3.$value = var$9;
                    }
                    if (var$3 === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        var$8 = var$3.$value;
                        var$6 = var$7.$elementData.data;
                        var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$8) {
                                var$4 = var$7.$key;
                                if (var$3 !== var$4 && !(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    if (var$7 === null ? 0 : 1) {
                        $var8 = $this.$motionY;
                        var$3 = nms_Potion_jump;
                        var$7 = $this.$activePotionsMap;
                        var$9 = var$3.$id0;
                        if (var$9 >= (-128) && var$9 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$3 = jl_Integer_integerCache.data[var$9 + 128 | 0];
                        } else {
                            var$3 = new jl_Integer;
                            var$3.$value = var$9;
                        }
                        if (var$3 === null) {
                            var$7 = var$7.$elementData.data[0];
                            while (var$7 !== null && var$7.$key !== null) {
                                var$7 = var$7.$next3;
                            }
                        } else {
                            var$8 = var$3.$value;
                            var$6 = var$7.$elementData.data;
                            var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
                            while (var$7 !== null) {
                                if (var$7.$origKeyHash == var$8) {
                                    var$4 = var$7.$key;
                                    if (var$3 !== var$4 && !(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$8 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$7 = var$7.$next3;
                            }
                        }
                        $this.$motionY = $var8 + ((var$7 === null ? null : var$7.$value0).$amplifier + 1 | 0) * 0.10000000149011612;
                    }
                    $this.$horseJumping = 1;
                    $this.$isAirBorne = 1;
                    if ($par2 > 0.0) {
                        $var7 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
                        var$6 = nms_MathHelper_SIN_TABLE.data;
                        var$12 = $var7 * 10430.3779296875;
                        $var3 = var$6[(var$12 | 0) & 65535];
                        $var4 = var$6[(var$12 + 16384.0 | 0) & 65535];
                        $var8 = $this.$motionX;
                        $var7 = (-0.4000000059604645) * $var3;
                        var$12 = $this.$jumpPower;
                        $this.$motionX = $var8 + $var7 * var$12;
                        $this.$motionZ = $this.$motionZ + 0.4000000059604645 * $var4 * var$12;
                        var$3 = $rt_s(2232);
                        $var7 = 0.4000000059604645;
                        var$12 = 1.0;
                        var$7 = $this.$worldObj;
                        $ptr = 3;
                        continue main;
                    }
                    $this.$jumpPower = 0.0;
                }
                $this.$stepHeight = 1.0;
                $this.$jumpMovementFactor = $this.$landMovementFactor * 0.10000000149011612;
                if ($this.$worldObj.$isRemote) {
                    if ($this.$onGround) {
                        $this.$jumpPower = 0.0;
                        $this.$horseJumping = 0;
                    }
                    $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
                    $var8 = $this.$posX - $this.$prevPosX;
                    $var5 = $this.$posZ - $this.$prevPosZ;
                    $var7 = jl_Math_sqrt($var8 * $var8 + $var5 * $var5) * 4.0;
                    if ($var7 > 1.0)
                        $var7 = 1.0;
                    $par1 = $this.$limbSwingAmount;
                    $par1 = $par1 + ($var7 - $par1) * 0.4000000059604645;
                    $this.$limbSwingAmount = $par1;
                    $this.$limbSwing = $this.$limbSwing + $par1;
                    return;
                }
                var$3 = nms_SharedMonsterAttributes_movementSpeed;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$7 = $this.$attributeMap.$attributes;
                if (var$3 === null) {
                    var$7 = var$7.$elementData.data[0];
                    while (var$7 !== null && var$7.$key !== null) {
                        var$7 = var$7.$next3;
                    }
                } else {
                    a: {
                        var$4 = var$3.$field_111115_a;
                        if (!var$4.$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= var$4.$nativeString.length)
                                    break a;
                                var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$4.$hashCode1;
                    var$6 = var$7.$elementData.data;
                    var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
                    while (var$7 !== null) {
                        if (var$7.$origKeyHash == var$8) {
                            var$4 = var$7.$key;
                            if (var$3 !== var$4 && !jl_Object_equals(var$3, var$4) ? 0 : 1)
                                break;
                        }
                        var$7 = var$7.$next3;
                    }
                }
                var$3 = var$7 === null ? null : var$7.$value0;
                if (var$3.$field_111133_g) {
                    var$3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$3);
                    var$3.$field_111133_g = 0;
                }
                $var7 = var$3.$field_111139_h;
                $this.$landMovementFactor = $var7;
                $this.$moveForward = $var7;
                $ptr = 2;
                continue main;
            }
        }
        $this.$stepHeight = 0.5;
        $this.$jumpMovementFactor = 0.019999999552965164;
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_moveEntityWithHeading($this, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_EntityLivingBase_moveEntityWithHeading($this, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$onGround) {
            $this.$jumpPower = 0.0;
            $this.$horseJumping = 0;
        }
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var8 = $this.$posX - $this.$prevPosX;
        $var5 = $this.$posZ - $this.$prevPosZ;
        $var7 = jl_Math_sqrt($var8 * $var8 + $var5 * $var5) * 4.0;
        if ($var7 > 1.0)
            $var7 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var7 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    case 3:
        nms_World_playSoundAtEntity(var$7, $this, var$3, $var7, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $this.$jumpPower = 0.0;
        $this.$stepHeight = 1.0;
        $this.$jumpMovementFactor = $this.$landMovementFactor * 0.10000000149011612;
        if ($this.$worldObj.$isRemote) {
            if ($this.$onGround) {
                $this.$jumpPower = 0.0;
                $this.$horseJumping = 0;
            }
            $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
            $var8 = $this.$posX - $this.$prevPosX;
            $var5 = $this.$posZ - $this.$prevPosZ;
            $var7 = jl_Math_sqrt($var8 * $var8 + $var5 * $var5) * 4.0;
            if ($var7 > 1.0)
                $var7 = 1.0;
            $par1 = $this.$limbSwingAmount;
            $par1 = $par1 + ($var7 - $par1) * 0.4000000059604645;
            $this.$limbSwingAmount = $par1;
            $this.$limbSwing = $this.$limbSwing + $par1;
            return;
        }
        var$3 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$7 = $this.$attributeMap.$attributes;
        if (var$3 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            b: {
                var$4 = var$3.$field_111115_a;
                if (!var$4.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= var$4.$nativeString.length)
                            break b;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$8 = var$4.$hashCode1;
            var$6 = var$7.$elementData.data;
            var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$8) {
                    var$4 = var$7.$key;
                    if (var$3 !== var$4 && !jl_Object_equals(var$3, var$4) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$3 = var$7 === null ? null : var$7.$value0;
        if (var$3.$field_111133_g) {
            var$3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$3);
            var$3.$field_111133_g = 0;
        }
        $var7 = var$3.$field_111139_h;
        $this.$landMovementFactor = $var7;
        $this.$moveForward = $var7;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var8, $var7, var$12, $var3, $var4, $var5, $ptr);
},
nms_EntityHorse_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let $var5, var$3, var$4, var$5, var$6, $var3, var$8, var$9, $var2, $var4, var$12, var$13;
    nms_EntityAnimal_writeEntityToNBT($this, $par1NBTTagCompound);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 !== null) {
        var$4 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$4) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    } else {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    }
    $var5 = $var5 === null ? null : $var5.$value0;
    $var3 = (!(!($var5.$watchedObject.$value & 32) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagByte;
    $var5.$name = $rt_s(2233);
    $var5.$data0 = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2233), $var5);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    } else {
        var$8 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$8 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$8) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    }
    $var5 = $var5 === null ? null : $var5.$value0;
    $var3 = (!(!($var5.$watchedObject.$value & 8) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagByte;
    $var5.$name = $rt_s(2234);
    $var5.$data0 = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2234), $var5);
    $var3 = (!$this.$hasReproduced ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagByte;
    $var5.$name = $rt_s(2235);
    $var5.$data0 = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2235), $var5);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$4) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    }
    $var5 = $var5 === null ? null : $var5.$value0;
    $var3 = (!(!($var5.$watchedObject.$value & 16) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagByte;
    $var5.$name = $rt_s(2236);
    $var5.$data0 = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2236), $var5);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[147];
    if (var$3 === null) {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    } else {
        var$9 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$9 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$9) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$9 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    }
    $var3 = ($var5 === null ? null : $var5.$value0).$watchedObject.$value1;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagInt;
    $var5.$name = $rt_s(1636);
    $var5.$data = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(1636), $var5);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[148];
    if (var$3 === null) {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    } else {
        var$9 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$9 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$9) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$9 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    }
    $var3 = ($var5 === null ? null : $var5.$value0).$watchedObject.$value;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagInt;
    $var5.$name = $rt_s(2237);
    $var5.$data = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2237), $var5);
    $var3 = $this.$temper;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagInt;
    $var5.$name = $rt_s(2238);
    $var5.$data = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2238), $var5);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$4) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    }
    $var5 = $var5 === null ? null : $var5.$value0;
    $var3 = (!(!($var5.$watchedObject.$value & 2) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagByte;
    $var5.$name = $rt_s(2239);
    $var5.$data0 = $var3;
    ju_HashMap_putImpl(var$6, $rt_s(2239), $var5);
    $var5 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[149];
    if (var$3 === null) {
        $var5 = $var5.$elementData.data[0];
        while ($var5 !== null && $var5.$key !== null) {
            $var5 = $var5.$next3;
        }
    } else {
        var$9 = var$3.$value;
        var$5 = $var5.$elementData.data;
        $var5 = var$5[var$9 & (var$5.length - 1 | 0)];
        while ($var5 !== null) {
            if ($var5.$origKeyHash == var$9) {
                var$6 = $var5.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$9 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var5 = $var5.$next3;
        }
    }
    var$3 = ($var5 === null ? null : $var5.$value0).$watchedObject;
    var$6 = $par1NBTTagCompound.$tagMap;
    $var5 = new nms_NBTTagString;
    $var5.$name = $rt_s(2240);
    $var5.$data1 = var$3;
    if (var$3 === null) {
        $var2 = new jl_IllegalArgumentException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $var2.$message = $rt_s(177);
        $rt_throw($var2);
    }
    ju_HashMap_putImpl(var$6, $rt_s(2240), $var5);
    $var2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[144];
    if (var$6 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$4 = var$6.$value;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                $var5 = $var2.$key;
                if (var$6 !== $var5 && !jl_Integer_equals(var$6, $var5) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if (!($var2.$watchedObject.$value & 8) ? 0 : 1) {
        $var2 = new nms_NBTTagList;
        $var2.$name = $rt_s(3);
        $var5 = new ju_ArrayList;
        $var5.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $var5;
        $var3 = 2;
        while (true) {
            $var5 = $this.$horseChest;
            if ($var3 >= $var5.$slotsCount)
                break;
            $var4 = $var5.$inventoryContents.data[$var3];
            if ($var4 !== null) {
                $var5 = new nms_NBTTagCompound;
                $var5.$name = $rt_s(3);
                var$12 = new ju_HashMap;
                var$8 = ju_HashMap_calculateCapacity(16);
                var$12.$elementCount = 0;
                var$13 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                var$5 = var$13.data;
                var$12.$elementData = var$13;
                var$12.$loadFactor = 0.75;
                var$12.$threshold = var$5.length * 0.75 | 0;
                $var5.$tagMap = var$12;
                var$8 = $var3 << 24 >> 24;
                var$3 = new nms_NBTTagByte;
                var$3.$name = $rt_s(2022);
                var$3.$data0 = var$8;
                ju_HashMap_putImpl(var$12, $rt_s(2022), var$3);
                var$8 = $var4.$itemID << 16 >> 16;
                var$12 = $var5.$tagMap;
                var$3 = new nms_NBTTagShort;
                var$3.$name = $rt_s(914);
                var$3.$data2 = var$8;
                ju_HashMap_putImpl(var$12, $rt_s(914), var$3);
                var$8 = $var4.$stackSize << 24 >> 24;
                var$12 = $var5.$tagMap;
                var$3 = new nms_NBTTagByte;
                var$3.$name = $rt_s(915);
                var$3.$data0 = var$8;
                ju_HashMap_putImpl(var$12, $rt_s(915), var$3);
                var$8 = $var4.$itemDamage << 16 >> 16;
                var$12 = $var5.$tagMap;
                var$3 = new nms_NBTTagShort;
                var$3.$name = $rt_s(916);
                var$3.$data2 = var$8;
                ju_HashMap_putImpl(var$12, $rt_s(916), var$3);
                var$6 = $var4.$stackTagCompound;
                if (var$6 !== null) {
                    var$12 = $var5.$tagMap;
                    var$6.$name = $rt_s(917);
                    ju_HashMap_putImpl(var$12, $rt_s(917), var$6);
                }
                $var2.$tagType = 10;
                var$6 = $var2.$tagList;
                ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                var$5 = var$6.$array.data;
                var$9 = var$6.$size0;
                var$6.$size0 = var$9 + 1 | 0;
                var$5[var$9] = $var5;
                var$6.$modCount = var$6.$modCount + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        var$6 = $par1NBTTagCompound.$tagMap;
        $var2.$name = $rt_s(2241);
        ju_HashMap_putImpl(var$6, $rt_s(2241), $var2);
    }
    var$5 = $this.$horseChest.$inventoryContents.data;
    if (var$5[1] !== null) {
        $var4 = var$5[1];
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(2242);
        var$12 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        var$12.$elementCount = 0;
        var$13 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$5 = var$13.data;
        var$12.$elementData = var$13;
        var$12.$loadFactor = 0.75;
        var$12.$threshold = var$5.length * 0.75 | 0;
        $var5.$tagMap = var$12;
        $var3 = $var4.$itemID << 16 >> 16;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(914);
        var$3.$data2 = $var3;
        ju_HashMap_putImpl(var$12, $rt_s(914), var$3);
        $var3 = $var4.$stackSize << 24 >> 24;
        var$12 = $var5.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(915);
        var$3.$data0 = $var3;
        ju_HashMap_putImpl(var$12, $rt_s(915), var$3);
        $var3 = $var4.$itemDamage << 16 >> 16;
        var$12 = $var5.$tagMap;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(916);
        var$3.$data2 = $var3;
        ju_HashMap_putImpl(var$12, $rt_s(916), var$3);
        var$6 = $var4.$stackTagCompound;
        if (var$6 !== null) {
            var$12 = $var5.$tagMap;
            var$6.$name = $rt_s(917);
            ju_HashMap_putImpl(var$12, $rt_s(917), var$6);
        }
        var$6 = $par1NBTTagCompound.$tagMap;
        $var5.$name = $rt_s(2242);
        ju_HashMap_putImpl(var$6, $rt_s(2242), $var5);
    }
    var$5 = $this.$horseChest.$inventoryContents.data;
    if (var$5[0] !== null) {
        $var4 = var$5[0];
        var$6 = new nms_NBTTagCompound;
        var$6.$name = $rt_s(2243);
        var$12 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        var$12.$elementCount = 0;
        var$13 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$5 = var$13.data;
        var$12.$elementData = var$13;
        var$12.$loadFactor = 0.75;
        var$12.$threshold = var$5.length * 0.75 | 0;
        var$6.$tagMap = var$12;
        $var3 = $var4.$itemID << 16 >> 16;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(914);
        var$3.$data2 = $var3;
        ju_HashMap_putImpl(var$12, $rt_s(914), var$3);
        $var3 = $var4.$stackSize << 24 >> 24;
        var$12 = var$6.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(915);
        var$3.$data0 = $var3;
        ju_HashMap_putImpl(var$12, $rt_s(915), var$3);
        $var3 = $var4.$itemDamage << 16 >> 16;
        var$12 = var$6.$tagMap;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(916);
        var$3.$data2 = $var3;
        ju_HashMap_putImpl(var$12, $rt_s(916), var$3);
        $var5 = $var4.$stackTagCompound;
        if ($var5 !== null) {
            var$12 = var$6.$tagMap;
            $var5.$name = $rt_s(917);
            ju_HashMap_putImpl(var$12, $rt_s(917), $var5);
        }
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        var$6.$name = $rt_s(2243);
        ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2243), var$6);
    }
};
let nms_EntityHorse_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var3, $var6, var$4, $var5, $var4, var$7, $var7, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityAnimal_readEntityFromNBT($this, $par1NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $par1NBTTagCompound.$tagMap;
        $var6 = jl_String_hashCode($rt_s(2233));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == $var6) {
                $var5 = $var3.$key;
                if ($rt_s(2233) !== $var5 && !jl_String_equals($rt_s(2233), $var5) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            $var4 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2233) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                $var6 = jl_String_hashCode($rt_s(2233));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var6) {
                        $var5 = $var3.$key;
                        if ($rt_s(2233) !== $var5 && !jl_String_equals($rt_s(2233), $var5) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data0;
        }
        var$7 = !$var4 ? 0 : 1;
        $var7 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[144];
        if ($var5 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode0($var5);
            var$4 = $var7.$elementData.data;
            $var7 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var7 !== null && !($var7.$origKeyHash == var$9 && ju_HashMap_areEqualKeys($var5, $var7.$key))) {
                $var7 = $var7.$next3;
            }
        }
        $var6 = ($var7 === null ? null : $var7.$value0).$watchedObject.$value;
        if (var$7) {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 | 32;
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var6 = jl_Integer_hashCode0(var$10);
                var$4 = $var5.$elementData.data;
                $var5 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var5 !== null && !($var5.$origKeyHash == $var6 && ju_HashMap_areEqualKeys(var$10, $var5.$key))) {
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            if (!jl_Integer_equals($var3, var$11.$watchedObject)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        } else {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 & (-33);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var6 = jl_Integer_hashCode0(var$10);
                var$4 = $var5.$elementData.data;
                $var5 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var5 !== null && !($var5.$origKeyHash == $var6 && ju_HashMap_areEqualKeys(var$10, $var5.$key))) {
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            if (!jl_Integer_equals($var3, var$11.$watchedObject)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        }
        $var3 = $par1NBTTagCompound.$tagMap;
        $var6 = jl_String_hashCode($rt_s(2236));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == $var6) {
                $var5 = $var3.$key;
                if ($rt_s(2236) !== $var5 && !jl_String_equals($rt_s(2236), $var5) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            $var4 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2236) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                $var6 = jl_String_hashCode($rt_s(2236));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var6) {
                        $var5 = $var3.$key;
                        if ($rt_s(2236) !== $var5 && !jl_String_equals($rt_s(2236), $var5) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data0;
        }
        var$7 = !$var4 ? 0 : 1;
        $var7 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[144];
        if ($var5 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode0($var5);
            var$4 = $var7.$elementData.data;
            $var7 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$9) {
                    $var3 = $var7.$key;
                    if ($var5 !== $var3 && !jl_Integer_equals($var5, $var3) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var6 = ($var7 === null ? null : $var7.$value0).$watchedObject.$value;
        if (var$7) {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 | 16;
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var6 = jl_Integer_hashCode0(var$10);
                var$4 = $var5.$elementData.data;
                $var5 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == $var6) {
                        var$11 = $var5.$key;
                        if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            if (!jl_Integer_equals($var3, var$11.$watchedObject)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        } else {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 & (-17);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                $var6 = jl_Integer_hashCode0(var$10);
                var$4 = $var5.$elementData.data;
                $var5 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == $var6) {
                        var$11 = $var5.$key;
                        if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            if (!jl_Integer_equals($var3, var$11.$watchedObject)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        }
        $var3 = $par1NBTTagCompound.$tagMap;
        $var6 = jl_String_hashCode($rt_s(2234));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == $var6) {
                $var5 = $var3.$key;
                if ($rt_s(2234) !== $var5 && !jl_String_equals($rt_s(2234), $var5) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            $var4 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2234) !== null) {
                $var6 = jl_String_hashCode($rt_s(2234));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var6) {
                        $var5 = $var3.$key;
                        if ($rt_s(2234) !== $var5 && !jl_String_equals($rt_s(2234), $var5) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            } else {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data0;
        }
        var$7 = !$var4 ? 0 : 1;
        $var7 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[144];
        if ($var5 !== null) {
            var$9 = jl_Integer_hashCode0($var5);
            var$4 = $var7.$elementData.data;
            $var7 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$9) {
                    $var3 = $var7.$key;
                    if ($var5 !== $var3 && !jl_Integer_equals($var5, $var3) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        } else {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        }
        $var6 = ($var7 === null ? null : $var7.$value0).$watchedObject.$value;
        if (var$7) {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 | 8;
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                var$9 = var$10.$value;
                var$4 = $var5.$elementData.data;
                $var5 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == var$9) {
                        var$11 = $var5.$key;
                        if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            if (!jl_Integer_equals($var3, var$11.$watchedObject)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        } else {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 & (-9);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                var$9 = var$10.$value;
                var$4 = $var5.$elementData.data;
                $var5 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == var$9) {
                        var$11 = $var5.$key;
                        if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            if (!jl_Integer_equals($var3, var$11.$watchedObject)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        }
        $var3 = $par1NBTTagCompound.$tagMap;
        $var6 = jl_String_hashCode($rt_s(2235));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == $var6) {
                $var5 = $var3.$key;
                if ($rt_s(2235) !== $var5 && !jl_String_equals($rt_s(2235), $var5) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if ($var3 === null ? 0 : 1) {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2235) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                $var6 = jl_String_hashCode($rt_s(2235));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var6) {
                        $var5 = $var3.$key;
                        if ($rt_s(2235) !== $var5 && !jl_String_equals($rt_s(2235), $var5) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data0;
        } else
            $var4 = 0;
        $this.$hasReproduced = !$var4 ? 0 : 1;
        $var3 = $par1NBTTagCompound.$tagMap;
        $var6 = jl_String_hashCode($rt_s(1636));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == $var6) {
                $var5 = $var3.$key;
                if ($rt_s(1636) !== $var5 && !jl_String_equals($rt_s(1636), $var5) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            $var4 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1636) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                $var6 = jl_String_hashCode($rt_s(1636));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var6) {
                        $var5 = $var3.$key;
                        if ($rt_s(1636) !== $var5 && !jl_String_equals($rt_s(1636), $var5) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data;
        }
        $var7 = $this.$dataWatcher;
        $var4 = $var4 << 24 >> 24;
        var$10 = jl_Byte_byteCache.data[$var4 + 128 | 0];
        $var3 = $var7.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[147];
        if (var$11 !== null) {
            var$9 = var$11.$value;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$9) {
                    $var5 = $var3.$key;
                    if (var$11 !== $var5 && !jl_Integer_equals(var$11, $var5) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        } else {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        }
        $var5 = $var3 === null ? null : $var3.$value0;
        if (!jl_Byte_equals(var$10, $var5.$watchedObject)) {
            $var5.$watchedObject = var$10;
            $var5.$watched = 1;
            $var7.$objectChanged = 1;
        }
        $this.$field_110286_bQ = null;
        $var3 = $par1NBTTagCompound.$tagMap;
        $var6 = jl_String_hashCode($rt_s(2237));
        var$4 = $var3.$elementData.data;
        $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == $var6) {
                $var5 = $var3.$key;
                if ($rt_s(2237) !== $var5 && !jl_String_equals($rt_s(2237), $var5) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if ($var3 === null ? 0 : 1) {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2237) !== null) {
                $var6 = jl_String_hashCode($rt_s(2237));
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var6 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var6) {
                        $var5 = $var3.$key;
                        if ($rt_s(2237) !== $var5 && !jl_String_equals($rt_s(2237), $var5) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            } else {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            }
            $var6 = ($var3 === null ? null : $var3.$value0).$data;
        } else
            $var6 = 0;
        $var7 = $this.$dataWatcher;
        if ($var6 >= (-128) && $var6 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var3 = jl_Integer_integerCache.data[$var6 + 128 | 0];
        } else {
            $var3 = new jl_Integer;
            $var3.$value = $var6;
        }
        $var5 = $var7.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[148];
        if (var$10 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            var$9 = var$10.$value;
            var$4 = $var5.$elementData.data;
            $var5 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$9) {
                    var$11 = $var5.$key;
                    if (var$10 !== var$11 && !(var$10 === var$11 ? 1 : var$11 instanceof jl_Integer && var$11.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        var$11 = $var5 === null ? null : $var5.$value0;
        $var5 = var$11.$watchedObject;
        if (!($var3 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var3.$value ? 1 : 0) : 1)) {
            var$11.$watchedObject = $var3;
            var$11.$watched = 1;
            $var7.$objectChanged = 1;
        }
        a: {
            $this.$field_110286_bQ = null;
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2238).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2238).$nativeString.length)
                        break a;
                    $rt_s(2238).$hashCode1 = (31 * $rt_s(2238).$hashCode1 | 0) + $rt_s(2238).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2238).$hashCode1;
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$9) {
                b: {
                    $var5 = $var3.$key;
                    if ($rt_s(2238) !== $var5) {
                        if ($rt_s(2238) === $var5)
                            $var4 = 1;
                        else if (!($var5 instanceof jl_String))
                            $var4 = 0;
                        else {
                            $var5 = $var5;
                            $var4 = $rt_s(2238).$nativeString !== $var5.$nativeString ? 0 : 1;
                        }
                        if (!$var4) {
                            $var4 = 0;
                            break b;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            $var4 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2238) !== null) {
                c: {
                    if (!$rt_s(2238).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2238).$nativeString.length)
                                break c;
                            $rt_s(2238).$hashCode1 = (31 * $rt_s(2238).$hashCode1 | 0) + $rt_s(2238).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2238).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$9) {
                        d: {
                            $var5 = $var3.$key;
                            if ($rt_s(2238) !== $var5) {
                                if ($rt_s(2238) !== $var5) {
                                    if ($var5 instanceof jl_String) {
                                        $var5 = $var5;
                                        $var4 = $rt_s(2238).$nativeString !== $var5.$nativeString ? 0 : 1;
                                    } else
                                        $var4 = 0;
                                } else
                                    $var4 = 1;
                                if (!$var4) {
                                    $var4 = 0;
                                    break d;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            } else {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data;
        }
        e: {
            $this.$temper = $var4;
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2239).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2239).$nativeString.length)
                        break e;
                    $rt_s(2239).$hashCode1 = (31 * $rt_s(2239).$hashCode1 | 0) + $rt_s(2239).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2239).$hashCode1;
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$9) {
                f: {
                    $var5 = $var3.$key;
                    if ($rt_s(2239) !== $var5) {
                        if ($rt_s(2239) === $var5)
                            $var4 = 1;
                        else if (!($var5 instanceof jl_String))
                            $var4 = 0;
                        else {
                            $var5 = $var5;
                            $var4 = $rt_s(2239).$nativeString !== $var5.$nativeString ? 0 : 1;
                        }
                        if (!$var4) {
                            $var4 = 0;
                            break f;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if ($var3 === null ? 0 : 1) {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2239) !== null) {
                g: {
                    if (!$rt_s(2239).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2239).$nativeString.length)
                                break g;
                            $rt_s(2239).$hashCode1 = (31 * $rt_s(2239).$hashCode1 | 0) + $rt_s(2239).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2239).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$9) {
                        h: {
                            $var5 = $var3.$key;
                            if ($rt_s(2239) !== $var5) {
                                if ($rt_s(2239) !== $var5) {
                                    if ($var5 instanceof jl_String) {
                                        $var5 = $var5;
                                        $var4 = $rt_s(2239).$nativeString !== $var5.$nativeString ? 0 : 1;
                                    } else
                                        $var4 = 0;
                                } else
                                    $var4 = 1;
                                if (!$var4) {
                                    $var4 = 0;
                                    break h;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            } else {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            }
            $var4 = ($var3 === null ? null : $var3.$value0).$data0;
        } else
            $var4 = 0;
        var$12 = !$var4 ? 0 : 1;
        $var7 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[144];
        if ($var5 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            var$7 = $var5.$value;
            var$4 = $var7.$elementData.data;
            $var7 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$7) {
                    $var3 = $var7.$key;
                    if ($var5 !== $var3 && !jl_Integer_equals($var5, $var3) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var6 = ($var7 === null ? null : $var7.$value0).$watchedObject.$value;
        if (var$12) {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 | 2;
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 !== null) {
                var$9 = var$10.$value;
                var$4 = $var5.$elementData.data;
                $var5 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == var$9) {
                        var$11 = $var5.$key;
                        if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            } else {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            $var5 = var$11.$watchedObject;
            if (!($var3 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var3.$value ? 1 : 0) : 1)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        } else {
            $var7 = $this.$dataWatcher;
            $var4 = $var6 & (-3);
            if ($var4 >= (-128) && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                $var3 = new jl_Integer;
                $var3.$value = $var4;
            }
            $var5 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 !== null) {
                var$9 = var$10.$value;
                var$4 = $var5.$elementData.data;
                $var5 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == var$9) {
                        var$11 = $var5.$key;
                        if (var$10 !== var$11 && !jl_Integer_equals(var$10, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            } else {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            }
            var$11 = $var5 === null ? null : $var5.$value0;
            $var5 = var$11.$watchedObject;
            if (!($var3 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var3.$value ? 1 : 0) : 1)) {
                var$11.$watchedObject = $var3;
                var$11.$watched = 1;
                $var7.$objectChanged = 1;
            }
        }
        i: {
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2240).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2240).$nativeString.length)
                        break i;
                    $rt_s(2240).$hashCode1 = (31 * $rt_s(2240).$hashCode1 | 0) + $rt_s(2240).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2240).$hashCode1;
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$9) {
                j: {
                    $var5 = $var3.$key;
                    if ($rt_s(2240) !== $var5) {
                        if ($rt_s(2240) !== $var5) {
                            if ($var5 instanceof jl_String) {
                                $var5 = $var5;
                                $var4 = $rt_s(2240).$nativeString !== $var5.$nativeString ? 0 : 1;
                            } else
                                $var4 = 0;
                        } else
                            $var4 = 1;
                        if (!$var4) {
                            $var4 = 0;
                            break j;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if ($var3 === null ? 0 : 1) {
            k: {
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2240).$hashCode1) {
                    $var4 = 0;
                    while (true) {
                        if ($var4 >= $rt_s(2240).$nativeString.length)
                            break k;
                        $rt_s(2240).$hashCode1 = (31 * $rt_s(2240).$hashCode1 | 0) + $rt_s(2240).$nativeString.charCodeAt($var4) | 0;
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2240).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$9) {
                    l: {
                        $var5 = $var3.$key;
                        if ($rt_s(2240) !== $var5) {
                            if ($rt_s(2240) === $var5)
                                $var4 = 1;
                            else if (!($var5 instanceof jl_String))
                                $var4 = 0;
                            else {
                                $var5 = $var5;
                                $var4 = $rt_s(2240).$nativeString !== $var5.$nativeString ? 0 : 1;
                            }
                            if (!$var4) {
                                $var4 = 0;
                                break l;
                            }
                        }
                        $var4 = 1;
                    }
                    if ($var4)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                var$10 = $rt_s(3);
            else {
                $var3 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2240) === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(2240).$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= $rt_s(2240).$nativeString.length)
                                    break m;
                                $rt_s(2240).$hashCode1 = (31 * $rt_s(2240).$hashCode1 | 0) + $rt_s(2240).$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(2240).$hashCode1;
                    var$4 = $var3.$elementData.data;
                    $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$9) {
                            n: {
                                $var5 = $var3.$key;
                                if ($rt_s(2240) !== $var5) {
                                    if ($rt_s(2240) === $var5)
                                        $var4 = 1;
                                    else if (!($var5 instanceof jl_String))
                                        $var4 = 0;
                                    else {
                                        $var5 = $var5;
                                        $var4 = $rt_s(2240).$nativeString !== $var5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var4) {
                                        $var4 = 0;
                                        break n;
                                    }
                                }
                                $var4 = 1;
                            }
                            if ($var4)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                var$10 = ($var3 === null ? null : $var3.$value0).$data1;
            }
            $var7 = $this.$dataWatcher;
            $var3 = $var7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[149];
            if (var$11 !== null) {
                var$9 = var$11.$value;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$9) {
                        $var5 = $var3.$key;
                        if (var$11 !== $var5 && !(var$11 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == var$9 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            } else {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            }
            $var5 = $var3 === null ? null : $var3.$value0;
            $var3 = $var5.$watchedObject;
            if (var$10 === $var3)
                $var4 = 1;
            else if (!($var3 instanceof jl_String))
                $var4 = 0;
            else {
                $var3 = $var3;
                $var4 = var$10.$nativeString !== $var3.$nativeString ? 0 : 1;
            }
            if (!$var4) {
                $var5.$watchedObject = var$10;
                $var5.$watched = 1;
                $var7.$objectChanged = 1;
            }
        }
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$10 = $this.$attributeMap;
        $var7 = $rt_s(2244);
        $var3 = var$10.$attributesByName.$internalMap;
        $var5 = $var7.$nativeString.toLowerCase();
        $var3 = ju_LinkedHashMap_getOrDefault($var3, $var5 === $var7.$nativeString ? $var7 : jl_String__init_0($var5), null);
        if ($var3 === null) {
            $var3 = var$10.$field_111163_c.$internalMap;
            $var5 = $var7.$nativeString.toLowerCase();
            if ($var5 !== $var7.$nativeString)
                $var7 = jl_String__init_0($var5);
            $var3 = ju_LinkedHashMap_getOrDefault($var3, $var7, null);
        }
        if ($var3 !== null) {
            $var7 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            $var5 = $this.$attributeMap.$attributes;
            if ($var7 === null) {
                $var5 = $var5.$elementData.data[0];
                while ($var5 !== null && $var5.$key !== null) {
                    $var5 = $var5.$next3;
                }
            } else {
                o: {
                    var$11 = $var7.$field_111115_a;
                    if (!var$11.$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= var$11.$nativeString.length)
                                break o;
                            var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$9 = var$11.$hashCode1;
                var$4 = $var5.$elementData.data;
                $var5 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var5 !== null) {
                    if ($var5.$origKeyHash == var$9) {
                        var$11 = $var5.$key;
                        if ($var7 !== var$11 && !jl_Object_equals($var7, var$11) ? 0 : 1)
                            break;
                    }
                    $var5 = $var5.$next3;
                }
            }
            $var7 = $var5 === null ? null : $var5.$value0;
            var$13 = $var3.$baseValue * 0.25;
            if (var$13 !== $var7.$baseValue) {
                $var7.$baseValue = var$13;
                $var7.$field_111133_g = 1;
                $var3 = $var7.$field_111138_a;
                if ($var7.$field_111136_b.$shouldWatch) {
                    $var3 = $var3.$field_111162_d;
                    ju_HashMap_putImpl($var3.$backingMap, $var7, $var3);
                }
            }
        }
        $var7 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[144];
        if ($var5 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            var$12 = $var5.$value;
            var$4 = $var7.$elementData.data;
            $var7 = var$4[var$12 & (var$4.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$12) {
                    $var3 = $var7.$key;
                    if ($var5 !== $var3 && !jl_Integer_equals($var5, $var3) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var7 = $var7 === null ? null : $var7.$value0;
        if (!(!($var7.$watchedObject.$value & 8) ? 0 : 1)) {
            p: {
                $var3 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2242).$hashCode1) {
                    $var4 = 0;
                    while (true) {
                        if ($var4 >= $rt_s(2242).$nativeString.length)
                            break p;
                        $rt_s(2242).$hashCode1 = (31 * $rt_s(2242).$hashCode1 | 0) + $rt_s(2242).$nativeString.charCodeAt($var4) | 0;
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2242).$hashCode1;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$9) {
                    q: {
                        $var5 = $var3.$key;
                        if ($rt_s(2242) !== $var5) {
                            if ($rt_s(2242) === $var5)
                                $var4 = 1;
                            else if (!($var5 instanceof jl_String))
                                $var4 = 0;
                            else {
                                $var5 = $var5;
                                $var4 = $rt_s(2242).$nativeString !== $var5.$nativeString ? 0 : 1;
                            }
                            if (!$var4) {
                                $var4 = 0;
                                break q;
                            }
                        }
                        $var4 = 1;
                    }
                    if ($var4)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if ($var3 === null ? 0 : 1) {
                $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2242)));
                if ($var7 !== null && nms_EntityHorse_func_110211_v($var7.$itemID)) {
                    $var3 = $this.$horseChest;
                    $var4 = 1;
                    $ptr = 3;
                    continue main;
                }
            }
            r: {
                if (!nms_NBTTagCompound_hasKey($par1NBTTagCompound, $rt_s(2243))) {
                    if (!nms_NBTTagCompound_getBoolean($par1NBTTagCompound, $rt_s(2245)))
                        break r;
                    $var7 = $this.$horseChest;
                    $var4 = 0;
                    $var3 = new nms_ItemStack;
                    nms_Item_$callClinit();
                    nms_ItemStack__init_2($var3, nms_Item_saddle);
                    $ptr = 2;
                    continue main;
                }
                $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2243)));
                if ($var7 !== null) {
                    $var4 = $var7.$itemID;
                    nms_Item_$callClinit();
                    if ($var4 == nms_Item_saddle.$itemID0) {
                        $par1NBTTagCompound = $this.$horseChest;
                        $var4 = 0;
                        $ptr = 4;
                        continue main;
                    }
                }
            }
            nms_EntityHorse_func_110232_cE($this);
            return;
        }
        s: {
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2241).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2241).$nativeString.length)
                        break s;
                    $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2241).$hashCode1;
        var$4 = $var3.$elementData.data;
        $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$9) {
                t: {
                    $var5 = $var3.$key;
                    if ($rt_s(2241) !== $var5) {
                        if ($rt_s(2241) === $var5)
                            $var4 = 1;
                        else if (!($var5 instanceof jl_String))
                            $var4 = 0;
                        else {
                            $var5 = $var5;
                            $var4 = $rt_s(2241).$nativeString !== $var5.$nativeString ? 0 : 1;
                        }
                        if (!$var4) {
                            $var4 = 0;
                            break t;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1)) {
            $var3 = new nms_NBTTagList;
            if ($rt_s(2241) !== null)
                $var3.$name = $rt_s(2241);
            else
                $var3.$name = $rt_s(3);
            $var7 = new ju_ArrayList;
            $var7.$array = $rt_createArray(jl_Object, 10);
            $var3.$tagList = $var7;
        } else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2241) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                u: {
                    if (!$rt_s(2241).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2241).$nativeString.length)
                                break u;
                            $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2241).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$9) {
                        v: {
                            $var5 = $var3.$key;
                            if ($rt_s(2241) !== $var5) {
                                if ($rt_s(2241) === $var5)
                                    $var4 = 1;
                                else if (!($var5 instanceof jl_String))
                                    $var4 = 0;
                                else {
                                    $var5 = $var5;
                                    $var4 = $rt_s(2241).$nativeString !== $var5.$nativeString ? 0 : 1;
                                }
                                if (!$var4) {
                                    $var4 = 0;
                                    break v;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var3 = $var3 === null ? null : $var3.$value0;
        }
        $ptr = 5;
        continue main;
    case 2:
        nms_InventoryBasic_setInventorySlotContents($var7, $var4, $var3);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityHorse_func_110232_cE($this);
        return;
    case 3:
        nms_InventoryBasic_setInventorySlotContents($var3, $var4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        w: {
            if (!nms_NBTTagCompound_hasKey($par1NBTTagCompound, $rt_s(2243))) {
                if (!nms_NBTTagCompound_getBoolean($par1NBTTagCompound, $rt_s(2245)))
                    break w;
                $var7 = $this.$horseChest;
                $var4 = 0;
                $var3 = new nms_ItemStack;
                nms_Item_$callClinit();
                nms_ItemStack__init_2($var3, nms_Item_saddle);
                $ptr = 2;
                continue main;
            }
            $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2243)));
            if ($var7 !== null) {
                $var4 = $var7.$itemID;
                nms_Item_$callClinit();
                if ($var4 == nms_Item_saddle.$itemID0) {
                    $par1NBTTagCompound = $this.$horseChest;
                    $var4 = 0;
                    $ptr = 4;
                    continue main;
                }
            }
        }
        nms_EntityHorse_func_110232_cE($this);
        return;
    case 4:
        nms_InventoryBasic_setInventorySlotContents($par1NBTTagCompound, $var4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityHorse_func_110232_cE($this);
        return;
    case 5:
        nms_EntityHorse_func_110226_cD($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        while (true) {
            if ($var4 >= nms_NBTTagList_tagCount($var3)) {
                x: {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2242).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2242).$nativeString.length)
                                break x;
                            $rt_s(2242).$hashCode1 = (31 * $rt_s(2242).$hashCode1 | 0) + $rt_s(2242).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2242).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$9) {
                        y: {
                            $var5 = $var3.$key;
                            if ($rt_s(2242) !== $var5) {
                                if ($rt_s(2242) === $var5)
                                    $var4 = 1;
                                else if (!($var5 instanceof jl_String))
                                    $var4 = 0;
                                else {
                                    $var5 = $var5;
                                    $var4 = $rt_s(2242).$nativeString !== $var5.$nativeString ? 0 : 1;
                                }
                                if (!$var4) {
                                    $var4 = 0;
                                    break y;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if ($var3 === null ? 0 : 1) {
                    $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2242)));
                    if ($var7 !== null && nms_EntityHorse_func_110211_v($var7.$itemID)) {
                        $var3 = $this.$horseChest;
                        $var4 = 1;
                        $ptr = 3;
                        continue main;
                    }
                }
                z: {
                    if (!nms_NBTTagCompound_hasKey($par1NBTTagCompound, $rt_s(2243))) {
                        if (!nms_NBTTagCompound_getBoolean($par1NBTTagCompound, $rt_s(2245)))
                            break z;
                        $var7 = $this.$horseChest;
                        $var4 = 0;
                        $var3 = new nms_ItemStack;
                        nms_Item_$callClinit();
                        nms_ItemStack__init_2($var3, nms_Item_saddle);
                        $ptr = 2;
                        continue main;
                    }
                    $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2243)));
                    if ($var7 !== null) {
                        $var4 = $var7.$itemID;
                        nms_Item_$callClinit();
                        if ($var4 == nms_Item_saddle.$itemID0) {
                            $par1NBTTagCompound = $this.$horseChest;
                            $var4 = 0;
                            $ptr = 4;
                            continue main;
                        }
                    }
                }
                nms_EntityHorse_func_110232_cE($this);
                return;
            }
            $var7 = $var3.$tagList;
            ju_ArrayList_checkIndex($var7, $var4);
            $var5 = $var7.$array.data[$var4];
            $var6 = nms_NBTTagCompound_getByte($var5, $rt_s(2022)) & 255;
            if ($var6 >= 2) {
                $var7 = $this.$horseChest;
                if ($var6 < $var7.$slotsCount)
                    break;
            }
            $var4 = $var4 + 1 | 0;
        }
        $var5 = nms_ItemStack_loadItemStackFromNBT($var5);
        $ptr = 6;
    case 6:
        nms_InventoryBasic_setInventorySlotContents($var7, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var4 = $var4 + 1 | 0;
            if ($var4 >= nms_NBTTagList_tagCount($var3)) {
                ba: {
                    $var3 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2242).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2242).$nativeString.length)
                                break ba;
                            $rt_s(2242).$hashCode1 = (31 * $rt_s(2242).$hashCode1 | 0) + $rt_s(2242).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2242).$hashCode1;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$9) {
                        bb: {
                            $var5 = $var3.$key;
                            if ($rt_s(2242) !== $var5) {
                                if ($rt_s(2242) === $var5)
                                    $var4 = 1;
                                else if (!($var5 instanceof jl_String))
                                    $var4 = 0;
                                else {
                                    $var5 = $var5;
                                    $var4 = $rt_s(2242).$nativeString !== $var5.$nativeString ? 0 : 1;
                                }
                                if (!$var4) {
                                    $var4 = 0;
                                    break bb;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
                if ($var3 === null ? 0 : 1) {
                    $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2242)));
                    if ($var7 !== null && nms_EntityHorse_func_110211_v($var7.$itemID)) {
                        $var3 = $this.$horseChest;
                        $var4 = 1;
                        $ptr = 3;
                        continue main;
                    }
                }
                bc: {
                    if (!nms_NBTTagCompound_hasKey($par1NBTTagCompound, $rt_s(2243))) {
                        if (!nms_NBTTagCompound_getBoolean($par1NBTTagCompound, $rt_s(2245)))
                            break bc;
                        $var7 = $this.$horseChest;
                        $var4 = 0;
                        $var3 = new nms_ItemStack;
                        nms_Item_$callClinit();
                        nms_ItemStack__init_2($var3, nms_Item_saddle);
                        $ptr = 2;
                        continue main;
                    }
                    $var7 = nms_ItemStack_loadItemStackFromNBT(nms_NBTTagCompound_getCompoundTag($par1NBTTagCompound, $rt_s(2243)));
                    if ($var7 !== null) {
                        $var4 = $var7.$itemID;
                        nms_Item_$callClinit();
                        if ($var4 == nms_Item_saddle.$itemID0) {
                            $par1NBTTagCompound = $this.$horseChest;
                            $var4 = 0;
                            $ptr = 4;
                            continue main;
                        }
                    }
                }
                nms_EntityHorse_func_110232_cE($this);
                return;
            }
            $var7 = $var3.$tagList;
            ju_ArrayList_checkIndex($var7, $var4);
            $var5 = $var7.$array.data[$var4];
            $var6 = nms_NBTTagCompound_getByte($var5, $rt_s(2022)) & 255;
            if ($var6 < 2)
                continue;
            $var7 = $this.$horseChest;
            if ($var6 >= $var7.$slotsCount)
                continue;
            else
                break;
        }
        $var5 = nms_ItemStack_loadItemStackFromNBT($var5);
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, $var3, $var6, var$4, $var5, $var4, var$7, $var7, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityHorse_canMateWith = ($this, $par1EntityAnimal) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    if ($par1EntityAnimal === $this)
        return 0;
    $var2 = $par1EntityAnimal.constructor;
    if ($var2 === null)
        var$3 = null;
    else {
        var$3 = $var2.classObject;
        if (var$3 === null) {
            var$3 = new jl_Class;
            var$3.$platformClass = $var2;
            $var2.classObject = var$3;
        }
    }
    var$4 = $this.constructor;
    if (var$4 === null)
        $var2 = null;
    else {
        $var2 = var$4.classObject;
        if ($var2 === null) {
            $var2 = new jl_Class;
            $var2.$platformClass = var$4;
            var$4.classObject = $var2;
        }
    }
    if (var$3 !== $var2)
        return 0;
    $var2 = $par1EntityAnimal;
    if (nms_EntityHorse_func_110200_cJ($this) && nms_EntityHorse_func_110200_cJ($var2)) {
        $par1EntityAnimal = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[147];
        if (var$5 === null) {
            $par1EntityAnimal = $par1EntityAnimal.$elementData.data[0];
            while ($par1EntityAnimal !== null && $par1EntityAnimal.$key !== null) {
                $par1EntityAnimal = $par1EntityAnimal.$next3;
            }
        } else {
            var$6 = var$5.$value;
            var$7 = $par1EntityAnimal.$elementData.data;
            $par1EntityAnimal = var$7[var$6 & (var$7.length - 1 | 0)];
            while ($par1EntityAnimal !== null) {
                if ($par1EntityAnimal.$origKeyHash == var$6) {
                    var$4 = $par1EntityAnimal.$key;
                    if (var$5 !== var$4 && !(var$5 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityAnimal = $par1EntityAnimal.$next3;
            }
        }
        var$8 = ($par1EntityAnimal === null ? null : $par1EntityAnimal.$value0).$watchedObject.$value1;
        $par1EntityAnimal = $var2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[147];
        if (var$4 === null) {
            $par1EntityAnimal = $par1EntityAnimal.$elementData.data[0];
            while ($par1EntityAnimal !== null && $par1EntityAnimal.$key !== null) {
                $par1EntityAnimal = $par1EntityAnimal.$next3;
            }
        } else {
            var$9 = var$4.$value;
            var$7 = $par1EntityAnimal.$elementData.data;
            $par1EntityAnimal = var$7[var$9 & (var$7.length - 1 | 0)];
            while ($par1EntityAnimal !== null) {
                if ($par1EntityAnimal.$origKeyHash == var$9) {
                    $var2 = $par1EntityAnimal.$key;
                    if (var$4 !== $var2 && !(var$4 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityAnimal = $par1EntityAnimal.$next3;
            }
        }
        $par1EntityAnimal = $par1EntityAnimal === null ? null : $par1EntityAnimal.$value0;
        a: {
            b: {
                var$6 = $par1EntityAnimal.$watchedObject.$value1;
                if (var$8 != var$6 && !(!var$8 && var$6 == 1)) {
                    if (var$8 != 1)
                        break b;
                    if (var$6)
                        break b;
                }
                var$8 = 1;
                break a;
            }
            var$8 = 0;
        }
        return var$8;
    }
    return 0;
},
nms_EntityHorse_createChild = ($this, $par1EntityAgeable) => {
    let $var2, $var3, var$4, var$5, $var6, var$7, var$8, var$9, $var8, var$11, $var9, $var7, var$14, $var14, $var13, var$17, var$18, var$19, var$20, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();var$14 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1EntityAgeable;
        $var3 = new nms_EntityHorse;
        var$4 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityHorse__init_($var3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[147];
        if (var$5 !== null) {
            $var6 = var$5.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var6) {
                    var$8 = var$4.$key;
                    if (var$5 !== var$8 && !(var$5 !== var$8 ? (var$8 instanceof jl_Integer && var$8.$value == $var6 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        } else {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        }
        var$9 = (var$4 === null ? null : var$4.$value0).$watchedObject.$value1;
        var$4 = $var2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[147];
        if (var$8 !== null) {
            $var8 = var$8.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var8) {
                    var$5 = var$4.$key;
                    if (var$8 !== var$5 && !(var$8 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == $var8 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        } else {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        a: {
            $var8 = var$4.$watchedObject.$value1;
            if (var$9 != $var8) {
                b: {
                    if (!(!var$9 && $var8 == 1)) {
                        if (var$9 == 1) {
                            if (!$var8)
                                break b;
                            var$9 = 0;
                            break a;
                        }
                        var$9 = 0;
                        break a;
                    }
                }
                var$9 = 2;
            }
        }
        if (!var$9) {
            var$4 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                $var8 = $var9 % 9 | 0;
                if ((($var9 - $var8 | 0) + 8 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, 17));
            }
            if ($var8 < 4) {
                var$4 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$8 = jl_Integer_integerCache.data[148];
                if (var$8 !== null) {
                    $var8 = var$8.$value;
                    var$7 = var$4.$elementData.data;
                    var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == $var8) {
                            var$5 = var$4.$key;
                            if (var$8 !== var$5 && !(var$8 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == $var8 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                }
                $var7 = (var$4 === null ? null : var$4.$value0).$watchedObject.$value & 255;
            } else if ($var8 < 8) {
                var$4 = $var2.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$8 = jl_Integer_integerCache.data[148];
                if (var$8 !== null) {
                    $var8 = var$8.$value;
                    var$7 = var$4.$elementData.data;
                    var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == $var8) {
                            var$5 = var$4.$key;
                            if (var$8 !== var$5 && !(var$8 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == $var8 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                }
                $var7 = (var$4 === null ? null : var$4.$value0).$watchedObject.$value & 255;
            } else {
                var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    $var7 = $var9 % 7 | 0;
                    if ((($var9 - $var7 | 0) + 6 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$11;
                    $var9 = Long_lo(Long_shru(var$11, 17));
                }
            }
            var$4 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            $var6 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                $var9 = $var6 % 5 | 0;
                if ((($var6 - $var9 | 0) + 4 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$11;
                $var6 = Long_lo(Long_shru(var$11, 17));
            }
            if ($var9 < 4) {
                $var2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[148];
                if (var$5 === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var8 = var$5.$value;
                    var$7 = $var2.$elementData.data;
                    $var2 = var$7[$var8 & (var$7.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == $var8) {
                            var$4 = $var2.$key;
                            if (var$5 !== var$4 && !(var$5 !== var$4 ? (var$4 instanceof jl_Integer && var$4.$value == $var8 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var9 = $var7 | ($var2 === null ? null : $var2.$value0).$watchedObject.$value & 65280;
            } else if ($var9 < 8) {
                $var2 = $var2.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[148];
                if (var$5 === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var8 = var$5.$value;
                    var$7 = $var2.$elementData.data;
                    $var2 = var$7[$var8 & (var$7.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == $var8) {
                            var$4 = $var2.$key;
                            if (var$5 !== var$4 && !(var$5 !== var$4 ? (var$4 instanceof jl_Integer && var$4.$value == $var8 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var9 = $var7 | ($var2 === null ? null : $var2.$value0).$watchedObject.$value & 65280;
            } else {
                var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$11;
                $var6 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    $var9 = $var6 % 5 | 0;
                    if ((($var6 - $var9 | 0) + 4 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$11;
                    $var6 = Long_lo(Long_shru(var$11, 17));
                }
                $var9 = $var7 | $var9 << 8 & 65280;
            }
            $var2 = $var3.$dataWatcher;
            if ($var9 >= (-128) && $var9 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[$var9 + 128 | 0];
            } else {
                var$4 = new jl_Integer;
                var$4.$value = $var9;
            }
            var$5 = $var2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$14 = jl_Integer_integerCache.data[148];
            if (var$14 === null) {
                var$5 = var$5.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                $var8 = var$14.$value;
                var$7 = var$5.$elementData.data;
                var$5 = var$7[$var8 & (var$7.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == $var8) {
                        var$8 = var$5.$key;
                        if (var$14 !== var$8 && !(var$14 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == $var8 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            var$8 = var$5 === null ? null : var$5.$value0;
            var$5 = var$8.$watchedObject;
            if (!(var$4 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == var$4.$value ? 1 : 0) : 1)) {
                var$8.$watchedObject = var$4;
                var$8.$watched = 1;
                $var2.$objectChanged = 1;
            }
            $var3.$field_110286_bQ = null;
        }
        $var2 = $var3.$dataWatcher;
        $var6 = var$9 << 24 >> 24;
        var$14 = jl_Byte_byteCache.data[$var6 + 128 | 0];
        var$4 = $var2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[147];
        if (var$8 !== null) {
            $var8 = var$8.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var8) {
                    var$5 = var$4.$key;
                    if (var$8 !== var$5 && !(var$8 !== var$5 ? (var$5 instanceof jl_Integer && var$5.$value == $var8 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        } else {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$14.$value1 ? 1 : 0)) {
            var$5.$watchedObject = var$14;
            var$5.$watched = 1;
            $var2.$objectChanged = 1;
        }
        $var3.$field_110286_bQ = null;
        $var2 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            c: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= var$5.$nativeString.length)
                            break c;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            $var8 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var8) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        $var14 = (var$4 === null ? null : var$4.$value0).$baseValue;
        $var2 = nms_SharedMonsterAttributes_maxHealth;
        if ($par1EntityAgeable.$attributeMap === null)
            $par1EntityAgeable.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $par1EntityAgeable.$attributeMap.$attributes;
        if ($var2 !== null) {
            d: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= var$5.$nativeString.length)
                            break d;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            $var6 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var6) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        } else {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        }
        $var13 = $var14 + (var$4 === null ? null : var$4.$value0).$baseValue;
        $var2 = $this.$rand;
        var$17 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$17;
        var$18 = 15.0 + Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
        var$11 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, 17));
        while (true) {
            var$19 = $var8 % 9 | 0;
            if ((($var8 - var$19 | 0) + 8 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, 17));
        }
        $var14 = $var13 + var$18 + var$19;
        $var2 = nms_SharedMonsterAttributes_maxHealth;
        if ($var3.$attributeMap === null)
            $var3.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $var3.$attributeMap.$attributes;
        if ($var2 !== null) {
            e: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= var$5.$nativeString.length)
                            break e;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            $var8 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var8) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        } else {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        }
        $var2 = var$4 === null ? null : var$4.$value0;
        $var13 = $var14 / 3.0;
        if ($var13 !== $var2.$baseValue) {
            $var2.$baseValue = $var13;
            $var2.$field_111133_g = 1;
            var$4 = $var2.$field_111138_a;
            if ($var2.$field_111136_b.$shouldWatch) {
                var$4 = var$4.$field_111162_d;
                ju_HashMap_putImpl(var$4.$backingMap, $var2, var$4);
            }
        }
        $var2 = nms_EntityHorse_horseJumpStrength;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            f: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= var$5.$nativeString.length)
                            break f;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            $var8 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var8) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        $var13 = (var$4 === null ? null : var$4.$value0).$baseValue;
        $var2 = nms_EntityHorse_horseJumpStrength;
        if ($par1EntityAgeable.$attributeMap === null)
            $par1EntityAgeable.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $par1EntityAgeable.$attributeMap.$attributes;
        if ($var2 !== null) {
            g: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= var$5.$nativeString.length)
                            break g;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            $var8 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var8 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var8) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        } else {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        }
        $var2 = var$4 === null ? null : var$4.$value0;
        $var13 = $var13 + $var2.$baseValue;
        $var2 = $this.$rand;
        var$17 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$17;
        var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 22))), 27);
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$17;
        $var14 = 0.4000000059604645 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$17, 21))))) * 1.1102230246251565E-16 * 0.2;
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$17;
        var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 22))), 27);
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$17;
        $var14 = $var14 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$17, 21))))) * 1.1102230246251565E-16 * 0.2;
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$17;
        var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 22))), 27);
        var$20 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$20;
        $var13 = $var13 + $var14 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$20, 21))))) * 1.1102230246251565E-16 * 0.2;
        $var2 = nms_EntityHorse_horseJumpStrength;
        if ($var3.$attributeMap === null)
            $var3.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $var3.$attributeMap.$attributes;
        if ($var2 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            h: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var8 = 0;
                    while (true) {
                        if ($var8 >= var$5.$nativeString.length)
                            break h;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var8) | 0;
                        $var8 = $var8 + 1 | 0;
                    }
                }
            }
            var$9 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$9 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$9) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        $var13 = $var13 / 3.0;
        if ($var13 !== var$5.$baseValue) {
            var$5.$baseValue = $var13;
            var$5.$field_111133_g = 1;
            $var2 = var$5.$field_111138_a;
            if (var$5.$field_111136_b.$shouldWatch) {
                $var2 = $var2.$field_111162_d;
                ju_HashMap_putImpl($var2.$backingMap, var$5, $var2);
            }
        }
        $var2 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            i: {
                var$5 = $var2.$field_111115_a;
                if (!var$5.$hashCode1) {
                    $var8 = 0;
                    while (true) {
                        if ($var8 >= var$5.$nativeString.length)
                            break i;
                        var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var8) | 0;
                        $var8 = $var8 + 1 | 0;
                    }
                }
            }
            var$9 = var$5.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$9 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$9) {
                    var$5 = var$4.$key;
                    if ($var2 !== var$5 && !jl_Object_equals($var2, var$5) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        $var14 = (var$4 === null ? null : var$4.$value0).$baseValue;
        $var2 = nms_SharedMonsterAttributes_movementSpeed;
        if ($par1EntityAgeable.$attributeMap === null)
            $par1EntityAgeable.$attributeMap = nms_ServersideAttributeMap__init_();
        $par1EntityAgeable = $par1EntityAgeable.$attributeMap.$attributes;
        if ($var2 === null) {
            $par1EntityAgeable = $par1EntityAgeable.$elementData.data[0];
            while ($par1EntityAgeable !== null && $par1EntityAgeable.$key !== null) {
                $par1EntityAgeable = $par1EntityAgeable.$next3;
            }
        } else {
            j: {
                var$4 = $var2.$field_111115_a;
                if (!var$4.$hashCode1) {
                    $var8 = 0;
                    while (true) {
                        if ($var8 >= var$4.$nativeString.length)
                            break j;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt($var8) | 0;
                        $var8 = $var8 + 1 | 0;
                    }
                }
            }
            var$9 = var$4.$hashCode1;
            var$7 = $par1EntityAgeable.$elementData.data;
            $par1EntityAgeable = var$7[var$9 & (var$7.length - 1 | 0)];
            while ($par1EntityAgeable !== null) {
                if ($par1EntityAgeable.$origKeyHash == var$9) {
                    var$4 = $par1EntityAgeable.$key;
                    if ($var2 !== var$4 && !jl_Object_equals($var2, var$4) ? 0 : 1)
                        break;
                }
                $par1EntityAgeable = $par1EntityAgeable.$next3;
            }
        }
        $par1EntityAgeable = $par1EntityAgeable === null ? null : $par1EntityAgeable.$value0;
        $var11 = $var14 + $par1EntityAgeable.$baseValue;
        $par1EntityAgeable = $this.$rand;
        var$17 = Long_and(Long_add(Long_mul($par1EntityAgeable.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityAgeable.$seed = var$17;
        var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 22))), 27);
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityAgeable.$seed = var$17;
        $var13 = 0.44999998807907104 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$17, 21))))) * 1.1102230246251565E-16 * 0.3;
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityAgeable.$seed = var$17;
        var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 22))), 27);
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityAgeable.$seed = var$17;
        $var13 = $var13 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$17, 21))))) * 1.1102230246251565E-16 * 0.3;
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityAgeable.$seed = var$17;
        var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 22))), 27);
        var$20 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityAgeable.$seed = var$20;
        $var11 = $var11 + ($var13 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$20, 21))))) * 1.1102230246251565E-16 * 0.3) * 0.25;
        var$4 = nms_SharedMonsterAttributes_movementSpeed;
        if ($var3.$attributeMap === null)
            $var3.$attributeMap = nms_ServersideAttributeMap__init_();
        $par1EntityAgeable = $var3.$attributeMap.$attributes;
        if (var$4 === null) {
            $par1EntityAgeable = $par1EntityAgeable.$elementData.data[0];
            while ($par1EntityAgeable !== null && $par1EntityAgeable.$key !== null) {
                $par1EntityAgeable = $par1EntityAgeable.$next3;
            }
        } else {
            k: {
                $var2 = var$4.$field_111115_a;
                if (!$var2.$hashCode1) {
                    $var6 = 0;
                    while (true) {
                        if ($var6 >= $var2.$nativeString.length)
                            break k;
                        $var2.$hashCode1 = (31 * $var2.$hashCode1 | 0) + $var2.$nativeString.charCodeAt($var6) | 0;
                        $var6 = $var6 + 1 | 0;
                    }
                }
            }
            $var8 = $var2.$hashCode1;
            var$7 = $par1EntityAgeable.$elementData.data;
            $par1EntityAgeable = var$7[$var8 & (var$7.length - 1 | 0)];
            while ($par1EntityAgeable !== null) {
                if ($par1EntityAgeable.$origKeyHash == $var8) {
                    $var2 = $par1EntityAgeable.$key;
                    if (var$4 !== $var2 && !jl_Object_equals(var$4, $var2) ? 0 : 1)
                        break;
                }
                $par1EntityAgeable = $par1EntityAgeable.$next3;
            }
        }
        var$4 = $par1EntityAgeable === null ? null : $par1EntityAgeable.$value0;
        $var14 = $var11 / 3.0;
        if ($var14 !== var$4.$baseValue) {
            var$4.$baseValue = $var14;
            var$4.$field_111133_g = 1;
            $par1EntityAgeable = var$4.$field_111138_a;
            if (var$4.$field_111136_b.$shouldWatch) {
                $par1EntityAgeable = $par1EntityAgeable.$field_111162_d;
                ju_HashMap_putImpl($par1EntityAgeable.$backingMap, var$4, $par1EntityAgeable);
            }
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, $var2, $var3, var$4, var$5, $var6, var$7, var$8, var$9, $var8, var$11, $var9, $var7, var$14, $var14, $var13, var$17, var$18, var$19, var$20, $var11, $ptr);
},
nms_EntityHorse_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let $par1EntityLivingData1, $var3, $var7, var$5, $var5, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();$par1EntityLivingData1 = $thread.pop();$par1EntityLivingData
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLiving_onSpawnWithEgg($this, $par1EntityLivingData);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityLivingData1 = $tmp;
        $var3 = 0;
        if ($par1EntityLivingData1 instanceof nms_EntityHorseGroupData) {
            $var7 = $par1EntityLivingData1.$field_111107_a;
            $var3 = $par1EntityLivingData1.$field_111106_b & 255;
            $par1EntityLivingData = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityLivingData.$seed = var$5;
            $var5 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                $var4 = $var5 % 5 | 0;
                if ((($var5 - $var4 | 0) + 4 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$5;
                $var5 = Long_lo(Long_shru(var$5, 17));
            }
            $var3 = $var3 | $var4 << 8;
        } else {
            $par1EntityLivingData = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityLivingData.$seed = var$5;
            $var5 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                $var4 = $var5 % 10 | 0;
                if ((($var5 - $var4 | 0) + 9 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$5;
                $var5 = Long_lo(Long_shru(var$5, 17));
            }
            if (!$var4)
                $var7 = 1;
            else {
                var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$5;
                var$8 = Long_lo(Long_shru(var$5, 17));
                while (true) {
                    $var4 = var$8 % 7 | 0;
                    if (((var$8 - $var4 | 0) + 6 | 0) >= 0)
                        break;
                    var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$5;
                    var$8 = Long_lo(Long_shru(var$5, 17));
                }
                var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$5;
                var$8 = Long_lo(Long_shru(var$5, 17));
                while (true) {
                    $var5 = var$8 % 5 | 0;
                    if (((var$8 - $var5 | 0) + 4 | 0) >= 0)
                        break;
                    var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$5;
                    var$8 = Long_lo(Long_shru(var$5, 17));
                }
                $var7 = 0;
                $var3 = $var4 | $var5 << 8;
            }
            $par1EntityLivingData1 = new nms_EntityHorseGroupData;
            $par1EntityLivingData1.$field_111107_a = $var7;
            $par1EntityLivingData1.$field_111106_b = $var3;
        }
        $par1EntityLivingData = $this.$dataWatcher;
        var$9 = $var7 << 24 >> 24;
        var$10 = jl_Byte_byteCache.data[var$9 + 128 | 0];
        var$11 = $par1EntityLivingData.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[147];
        if (var$12 !== null) {
            $var5 = var$12.$value;
            var$13 = var$11.$elementData.data;
            var$11 = var$13[$var5 & (var$13.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == $var5) {
                    var$14 = var$11.$key;
                    if (var$12 !== var$14 && !(var$12 !== var$14 ? (var$14 instanceof jl_Integer && var$14.$value == $var5 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$11 = var$11.$next3;
            }
        } else {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        }
        var$14 = var$11 === null ? null : var$11.$value0;
        var$11 = var$14.$watchedObject;
        if (!(var$11 instanceof jl_Byte && var$11.$value1 == var$10.$value1 ? 1 : 0)) {
            var$14.$watchedObject = var$10;
            var$14.$watched = 1;
            $par1EntityLivingData.$objectChanged = 1;
        }
        $this.$field_110286_bQ = null;
        $par1EntityLivingData = $this.$dataWatcher;
        if ($var3 >= (-128) && $var3 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[$var3 + 128 | 0];
        } else {
            var$11 = new jl_Integer;
            var$11.$value = $var3;
        }
        var$14 = $par1EntityLivingData.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[148];
        if (var$10 === null) {
            var$14 = var$14.$elementData.data[0];
            while (var$14 !== null && var$14.$key !== null) {
                var$14 = var$14.$next3;
            }
        } else {
            var$8 = var$10.$value;
            var$13 = var$14.$elementData.data;
            var$14 = var$13[var$8 & (var$13.length - 1 | 0)];
            while (var$14 !== null) {
                if (var$14.$origKeyHash == var$8) {
                    var$12 = var$14.$key;
                    if (var$10 !== var$12 && !(var$10 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$14 = var$14.$next3;
            }
        }
        var$12 = var$14 === null ? null : var$14.$value0;
        var$14 = var$12.$watchedObject;
        if (!(var$11 === var$14 ? 1 : var$14 instanceof jl_Integer && var$14.$value == var$11.$value ? 1 : 0)) {
            var$12.$watchedObject = var$11;
            var$12.$watched = 1;
            $par1EntityLivingData.$objectChanged = 1;
        }
        $this.$field_110286_bQ = null;
        $par1EntityLivingData = $this.$rand;
        var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityLivingData.$seed = var$5;
        $var4 = 17;
        var$8 = Long_lo(Long_shru(var$5, $var4));
        while (true) {
            $var5 = var$8 % 5 | 0;
            if (((var$8 - $var5 | 0) + 4 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityLivingData.$seed = var$5;
            var$8 = Long_lo(Long_shru(var$5, $var4));
        }
        if ($var5) {
            if ($var7 != 4 && $var7 != 3) {
                $par1EntityLivingData = nms_SharedMonsterAttributes_maxHealth;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData !== null) {
                    a: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break a;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$8) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                } else {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                }
                var$14 = var$11 === null ? null : var$11.$value0;
                $par1EntityLivingData = $this.$rand;
                var$15 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$15;
                var$16 = 15.0 + Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$15, $var4)))), 31));
                var$5 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$5;
                var$8 = Long_lo(Long_shru(var$5, $var4));
                while (true) {
                    $var5 = var$8 % 9 | 0;
                    if (((var$8 - $var5 | 0) + 8 | 0) >= 0)
                        break;
                    var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$5;
                    var$8 = Long_lo(Long_shru(var$5, $var4));
                }
                var$17 = var$16 + $var5;
                if (var$17 !== var$14.$baseValue) {
                    var$14.$baseValue = var$17;
                    var$14.$field_111133_g = 1;
                    $par1EntityLivingData = var$14.$field_111138_a;
                    if (var$14.$field_111136_b.$shouldWatch) {
                        $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                        ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                    }
                }
                if ($var7) {
                    $par1EntityLivingData = nms_SharedMonsterAttributes_movementSpeed;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    var$11 = $this.$attributeMap.$attributes;
                    if ($par1EntityLivingData !== null) {
                        b: {
                            var$14 = $par1EntityLivingData.$field_111115_a;
                            if (!var$14.$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= var$14.$nativeString.length)
                                        break b;
                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$8 = var$14.$hashCode1;
                        var$13 = var$11.$elementData.data;
                        var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                        while (var$11 !== null) {
                            if (var$11.$origKeyHash == var$8) {
                                var$14 = var$11.$key;
                                if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                    break;
                            }
                            var$11 = var$11.$next3;
                        }
                    } else {
                        var$11 = var$11.$elementData.data[0];
                        while (var$11 !== null && var$11.$key !== null) {
                            var$11 = var$11.$next3;
                        }
                    }
                    var$14 = var$11 === null ? null : var$11.$value0;
                    if (0.17499999701976776 !== var$14.$baseValue) {
                        var$14.$baseValue = 0.17499999701976776;
                        var$14.$field_111133_g = 1;
                        $par1EntityLivingData = var$14.$field_111138_a;
                        if (var$14.$field_111136_b.$shouldWatch) {
                            $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                            ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                        }
                    }
                } else {
                    $par1EntityLivingData = nms_SharedMonsterAttributes_movementSpeed;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    var$11 = $this.$attributeMap.$attributes;
                    if ($par1EntityLivingData !== null) {
                        c: {
                            var$14 = $par1EntityLivingData.$field_111115_a;
                            if (!var$14.$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= var$14.$nativeString.length)
                                        break c;
                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$8 = var$14.$hashCode1;
                        var$13 = var$11.$elementData.data;
                        var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                        while (var$11 !== null) {
                            if (var$11.$origKeyHash == var$8) {
                                var$14 = var$11.$key;
                                if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                    break;
                            }
                            var$11 = var$11.$next3;
                        }
                    } else {
                        var$11 = var$11.$elementData.data[0];
                        while (var$11 !== null && var$11.$key !== null) {
                            var$11 = var$11.$next3;
                        }
                    }
                    var$14 = var$11 === null ? null : var$11.$value0;
                    $par1EntityLivingData = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$15;
                    var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$15;
                    var$17 = 0.44999998807907104 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.3;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$15;
                    var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$15;
                    var$17 = var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.3;
                    var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$15;
                    var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                    var$18 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingData.$seed = var$18;
                    var$19 = (var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$18, 21))))) * 1.1102230246251565E-16 * 0.3) * 0.25;
                    if (var$19 !== var$14.$baseValue) {
                        var$14.$baseValue = var$19;
                        var$14.$field_111133_g = 1;
                        $par1EntityLivingData = var$14.$field_111138_a;
                        if (var$14.$field_111136_b.$shouldWatch) {
                            $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                            ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                        }
                    }
                }
            } else {
                $par1EntityLivingData = nms_SharedMonsterAttributes_maxHealth;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData !== null) {
                    d: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break d;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$8) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                } else {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                }
                var$14 = var$11 === null ? null : var$11.$value0;
                if (15.0 !== var$14.$baseValue) {
                    var$14.$baseValue = 15.0;
                    var$14.$field_111133_g = 1;
                    $par1EntityLivingData = var$14.$field_111138_a;
                    if (var$14.$field_111136_b.$shouldWatch) {
                        $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                        ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                    }
                }
                $par1EntityLivingData = nms_SharedMonsterAttributes_movementSpeed;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData !== null) {
                    e: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break e;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$8) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                } else {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                }
                var$14 = var$11 === null ? null : var$11.$value0;
                if (0.20000000298023224 !== var$14.$baseValue) {
                    var$14.$baseValue = 0.20000000298023224;
                    var$14.$field_111133_g = 1;
                    $par1EntityLivingData = var$14.$field_111138_a;
                    if (var$14.$field_111136_b.$shouldWatch) {
                        $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                        ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                    }
                }
            }
            if ($var7 != 2 && $var7 != 1) {
                $par1EntityLivingData = nms_EntityHorse_horseJumpStrength;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData === null) {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    f: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break f;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$9 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$9 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$9) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                $par1EntityLivingData = var$11 === null ? null : var$11.$value0;
                var$11 = $this.$rand;
                var$15 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$15;
                var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$15;
                var$17 = 0.4000000059604645 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.2;
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$15;
                var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$15;
                var$17 = var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.2;
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$15;
                var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                var$18 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$11.$seed = var$18;
                var$17 = var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$18, 21))))) * 1.1102230246251565E-16 * 0.2;
                if (var$17 !== $par1EntityLivingData.$baseValue) {
                    $par1EntityLivingData.$baseValue = var$17;
                    $par1EntityLivingData.$field_111133_g = 1;
                    var$11 = $par1EntityLivingData.$field_111138_a;
                    if ($par1EntityLivingData.$field_111136_b.$shouldWatch) {
                        var$11 = var$11.$field_111162_d;
                        ju_HashMap_putImpl(var$11.$backingMap, $par1EntityLivingData, var$11);
                    }
                }
            } else {
                $par1EntityLivingData = nms_EntityHorse_horseJumpStrength;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData === null) {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                } else {
                    g: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break g;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$9 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$9 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$9) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                }
                $par1EntityLivingData = var$11 === null ? null : var$11.$value0;
                if (0.5 !== $par1EntityLivingData.$baseValue) {
                    $par1EntityLivingData.$baseValue = 0.5;
                    $par1EntityLivingData.$field_111133_g = 1;
                    var$11 = $par1EntityLivingData.$field_111138_a;
                    if ($par1EntityLivingData.$field_111136_b.$shouldWatch) {
                        var$11 = var$11.$field_111162_d;
                        ju_HashMap_putImpl(var$11.$backingMap, $par1EntityLivingData, var$11);
                    }
                }
            }
            $par1EntityLivingData = nms_SharedMonsterAttributes_maxHealth;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$11 = $this.$attributeMap.$attributes;
            if ($par1EntityLivingData === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                var$9 = jl_String_hashCode($par1EntityLivingData.$field_111115_a);
                var$13 = var$11.$elementData.data;
                var$11 = var$13[var$9 & (var$13.length - 1 | 0)];
                while (var$11 !== null && !(var$11.$origKeyHash == var$9 && ju_HashMap_areEqualKeys($par1EntityLivingData, var$11.$key))) {
                    var$11 = var$11.$next3;
                }
            }
            $par1EntityLivingData = var$11 === null ? null : var$11.$value0;
            if ($par1EntityLivingData.$field_111133_g) {
                $par1EntityLivingData.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1EntityLivingData);
                $par1EntityLivingData.$field_111133_g = 0;
            }
            var$20 = $par1EntityLivingData.$field_111139_h;
            $par1EntityLivingData = $this.$dataWatcher;
            var$16 = 0.0;
            var$11 = nms_SharedMonsterAttributes_maxHealth;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$14 = $this.$attributeMap.$attributes;
            if (var$11 === null)
                var$11 = ju_HashMap_findNullKeyEntry(var$14);
            else {
                $var7 = nms_BaseAttribute_hashCode(var$11);
                var$11 = ju_HashMap_findNonNullKeyEntry(var$14, var$11, $var7 & (var$14.$elementData.data.length - 1 | 0), $var7);
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            if (var$11.$field_111133_g) {
                var$11.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$11);
                var$11.$field_111133_g = 0;
            }
            var$21 = var$11.$field_111139_h;
            if (var$20 >= var$16)
                var$16 = var$20 <= var$21 ? var$20 : var$21;
            var$11 = new jl_Float;
            var$11.$value3 = var$16;
            var$14 = $par1EntityLivingData.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[134];
            if (var$10 === null) {
                var$14 = var$14.$elementData.data[0];
                while (var$14 !== null && var$14.$key !== null) {
                    var$14 = var$14.$next3;
                }
            } else {
                var$9 = var$10.$value;
                var$13 = var$14.$elementData.data;
                var$14 = var$13[var$9 & (var$13.length - 1 | 0)];
                while (var$14 !== null) {
                    if (var$14.$origKeyHash == var$9) {
                        var$12 = var$14.$key;
                        if (var$10 !== var$12 && !(var$10 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$9 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$14 = var$14.$next3;
                }
            }
            var$12 = var$14 === null ? null : var$14.$value0;
            var$14 = var$12.$watchedObject;
            if (var$11 === var$14)
                $var3 = 1;
            else
                h: {
                    if (var$14 instanceof jl_Float) {
                        var$16 = var$11.$value3;
                        var$21 = var$14.$value3;
                        if (var$16 !== var$16 ? (var$21 === var$21 ? 0 : 1) : $rt_floatToRawIntBits(var$16) != $rt_floatToRawIntBits(var$21) ? 0 : 1) {
                            $var3 = 1;
                            break h;
                        }
                    }
                    $var3 = 0;
                }
            if (!$var3) {
                var$12.$watchedObject = var$11;
                var$12.$watched = 1;
                $par1EntityLivingData.$objectChanged = 1;
            }
            return $par1EntityLivingData1;
        }
        $var3 = (-24000);
        $ptr = 2;
    case 2:
        nms_EntityAgeable_setGrowingAge($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        if ($var7 != 4 && $var7 != 3) {
            $par1EntityLivingData = nms_SharedMonsterAttributes_maxHealth;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$11 = $this.$attributeMap.$attributes;
            if ($par1EntityLivingData !== null) {
                i: {
                    var$14 = $par1EntityLivingData.$field_111115_a;
                    if (!var$14.$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= var$14.$nativeString.length)
                                break i;
                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = var$14.$hashCode1;
                var$13 = var$11.$elementData.data;
                var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$8) {
                        var$14 = var$11.$key;
                        if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            } else {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            }
            var$14 = var$11 === null ? null : var$11.$value0;
            $par1EntityLivingData = $this.$rand;
            var$15 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityLivingData.$seed = var$15;
            var$16 = 15.0 + Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$15, $var4)))), 31));
            var$5 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityLivingData.$seed = var$5;
            var$8 = Long_lo(Long_shru(var$5, $var4));
            while (true) {
                $var5 = var$8 % 9 | 0;
                if (((var$8 - $var5 | 0) + 8 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$5;
                var$8 = Long_lo(Long_shru(var$5, $var4));
            }
            var$17 = var$16 + $var5;
            if (var$17 !== var$14.$baseValue) {
                var$14.$baseValue = var$17;
                var$14.$field_111133_g = 1;
                $par1EntityLivingData = var$14.$field_111138_a;
                if (var$14.$field_111136_b.$shouldWatch) {
                    $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                    ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                }
            }
            if ($var7) {
                $par1EntityLivingData = nms_SharedMonsterAttributes_movementSpeed;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData !== null) {
                    j: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break j;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$8) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                } else {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                }
                var$14 = var$11 === null ? null : var$11.$value0;
                if (0.17499999701976776 !== var$14.$baseValue) {
                    var$14.$baseValue = 0.17499999701976776;
                    var$14.$field_111133_g = 1;
                    $par1EntityLivingData = var$14.$field_111138_a;
                    if (var$14.$field_111136_b.$shouldWatch) {
                        $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                        ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                    }
                }
            } else {
                $par1EntityLivingData = nms_SharedMonsterAttributes_movementSpeed;
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$11 = $this.$attributeMap.$attributes;
                if ($par1EntityLivingData !== null) {
                    k: {
                        var$14 = $par1EntityLivingData.$field_111115_a;
                        if (!var$14.$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= var$14.$nativeString.length)
                                    break k;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = var$14.$hashCode1;
                    var$13 = var$11.$elementData.data;
                    var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                    while (var$11 !== null) {
                        if (var$11.$origKeyHash == var$8) {
                            var$14 = var$11.$key;
                            if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                                break;
                        }
                        var$11 = var$11.$next3;
                    }
                } else {
                    var$11 = var$11.$elementData.data[0];
                    while (var$11 !== null && var$11.$key !== null) {
                        var$11 = var$11.$next3;
                    }
                }
                var$14 = var$11 === null ? null : var$11.$value0;
                $par1EntityLivingData = $this.$rand;
                var$15 = Long_and(Long_add(Long_mul($par1EntityLivingData.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$15;
                var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$15;
                var$17 = 0.44999998807907104 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.3;
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$15;
                var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$15;
                var$17 = var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.3;
                var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$15;
                var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
                var$18 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1EntityLivingData.$seed = var$18;
                var$19 = (var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$18, 21))))) * 1.1102230246251565E-16 * 0.3) * 0.25;
                if (var$19 !== var$14.$baseValue) {
                    var$14.$baseValue = var$19;
                    var$14.$field_111133_g = 1;
                    $par1EntityLivingData = var$14.$field_111138_a;
                    if (var$14.$field_111136_b.$shouldWatch) {
                        $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                        ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                    }
                }
            }
        } else {
            $par1EntityLivingData = nms_SharedMonsterAttributes_maxHealth;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$11 = $this.$attributeMap.$attributes;
            if ($par1EntityLivingData !== null) {
                l: {
                    var$14 = $par1EntityLivingData.$field_111115_a;
                    if (!var$14.$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= var$14.$nativeString.length)
                                break l;
                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = var$14.$hashCode1;
                var$13 = var$11.$elementData.data;
                var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$8) {
                        var$14 = var$11.$key;
                        if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            } else {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            }
            var$14 = var$11 === null ? null : var$11.$value0;
            if (15.0 !== var$14.$baseValue) {
                var$14.$baseValue = 15.0;
                var$14.$field_111133_g = 1;
                $par1EntityLivingData = var$14.$field_111138_a;
                if (var$14.$field_111136_b.$shouldWatch) {
                    $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                    ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                }
            }
            $par1EntityLivingData = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$11 = $this.$attributeMap.$attributes;
            if ($par1EntityLivingData !== null) {
                b: {
                    var$14 = $par1EntityLivingData.$field_111115_a;
                    if (!var$14.$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= var$14.$nativeString.length)
                                break b;
                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$8 = var$14.$hashCode1;
                var$13 = var$11.$elementData.data;
                var$11 = var$13[var$8 & (var$13.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$8) {
                        var$14 = var$11.$key;
                        if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            } else {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            }
            var$14 = var$11 === null ? null : var$11.$value0;
            if (0.20000000298023224 !== var$14.$baseValue) {
                var$14.$baseValue = 0.20000000298023224;
                var$14.$field_111133_g = 1;
                $par1EntityLivingData = var$14.$field_111138_a;
                if (var$14.$field_111136_b.$shouldWatch) {
                    $par1EntityLivingData = $par1EntityLivingData.$field_111162_d;
                    ju_HashMap_putImpl($par1EntityLivingData.$backingMap, var$14, $par1EntityLivingData);
                }
            }
        }
        if ($var7 != 2 && $var7 != 1) {
            $par1EntityLivingData = nms_EntityHorse_horseJumpStrength;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$11 = $this.$attributeMap.$attributes;
            if ($par1EntityLivingData === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                m: {
                    var$14 = $par1EntityLivingData.$field_111115_a;
                    if (!var$14.$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= var$14.$nativeString.length)
                                break m;
                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$9 = var$14.$hashCode1;
                var$13 = var$11.$elementData.data;
                var$11 = var$13[var$9 & (var$13.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$9) {
                        var$14 = var$11.$key;
                        if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            $par1EntityLivingData = var$11 === null ? null : var$11.$value0;
            var$11 = $this.$rand;
            var$15 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$15;
            var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$15;
            var$17 = 0.4000000059604645 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.2;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$15;
            var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$15;
            var$17 = var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.2;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$15;
            var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
            var$18 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$18;
            var$17 = var$17 + Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$18, 21))))) * 1.1102230246251565E-16 * 0.2;
            if (var$17 !== $par1EntityLivingData.$baseValue) {
                $par1EntityLivingData.$baseValue = var$17;
                $par1EntityLivingData.$field_111133_g = 1;
                var$11 = $par1EntityLivingData.$field_111138_a;
                if ($par1EntityLivingData.$field_111136_b.$shouldWatch) {
                    var$11 = var$11.$field_111162_d;
                    ju_HashMap_putImpl(var$11.$backingMap, $par1EntityLivingData, var$11);
                }
            }
        } else {
            $par1EntityLivingData = nms_EntityHorse_horseJumpStrength;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$11 = $this.$attributeMap.$attributes;
            if ($par1EntityLivingData === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                n: {
                    var$14 = $par1EntityLivingData.$field_111115_a;
                    if (!var$14.$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= var$14.$nativeString.length)
                                break n;
                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$9 = var$14.$hashCode1;
                var$13 = var$11.$elementData.data;
                var$11 = var$13[var$9 & (var$13.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$9) {
                        var$14 = var$11.$key;
                        if ($par1EntityLivingData !== var$14 && !jl_Object_equals($par1EntityLivingData, var$14) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            $par1EntityLivingData = var$11 === null ? null : var$11.$value0;
            if (0.5 !== $par1EntityLivingData.$baseValue) {
                $par1EntityLivingData.$baseValue = 0.5;
                $par1EntityLivingData.$field_111133_g = 1;
                var$11 = $par1EntityLivingData.$field_111138_a;
                if ($par1EntityLivingData.$field_111136_b.$shouldWatch) {
                    var$11 = var$11.$field_111162_d;
                    ju_HashMap_putImpl(var$11.$backingMap, $par1EntityLivingData, var$11);
                }
            }
        }
        $par1EntityLivingData = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$11 = $this.$attributeMap.$attributes;
        if ($par1EntityLivingData === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            var$9 = jl_String_hashCode($par1EntityLivingData.$field_111115_a);
            var$13 = var$11.$elementData.data;
            var$11 = var$13[var$9 & (var$13.length - 1 | 0)];
            while (var$11 !== null && !(var$11.$origKeyHash == var$9 && ju_HashMap_areEqualKeys($par1EntityLivingData, var$11.$key))) {
                var$11 = var$11.$next3;
            }
        }
        $par1EntityLivingData = var$11 === null ? null : var$11.$value0;
        if ($par1EntityLivingData.$field_111133_g) {
            $par1EntityLivingData.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1EntityLivingData);
            $par1EntityLivingData.$field_111133_g = 0;
        }
        var$20 = $par1EntityLivingData.$field_111139_h;
        $par1EntityLivingData = $this.$dataWatcher;
        var$16 = 0.0;
        var$11 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$14 = $this.$attributeMap.$attributes;
        if (var$11 === null)
            var$11 = ju_HashMap_findNullKeyEntry(var$14);
        else {
            $var7 = nms_BaseAttribute_hashCode(var$11);
            var$11 = ju_HashMap_findNonNullKeyEntry(var$14, var$11, $var7 & (var$14.$elementData.data.length - 1 | 0), $var7);
        }
        var$11 = var$11 === null ? null : var$11.$value0;
        if (var$11.$field_111133_g) {
            var$11.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$11);
            var$11.$field_111133_g = 0;
        }
        var$21 = var$11.$field_111139_h;
        if (var$20 >= var$16)
            var$16 = var$20 <= var$21 ? var$20 : var$21;
        var$11 = new jl_Float;
        var$11.$value3 = var$16;
        var$14 = $par1EntityLivingData.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[134];
        if (var$10 === null) {
            var$14 = var$14.$elementData.data[0];
            while (var$14 !== null && var$14.$key !== null) {
                var$14 = var$14.$next3;
            }
        } else {
            var$9 = var$10.$value;
            var$13 = var$14.$elementData.data;
            var$14 = var$13[var$9 & (var$13.length - 1 | 0)];
            while (var$14 !== null) {
                if (var$14.$origKeyHash == var$9) {
                    var$12 = var$14.$key;
                    if (var$10 !== var$12 && !(var$10 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$14 = var$14.$next3;
            }
        }
        var$12 = var$14 === null ? null : var$14.$value0;
        var$14 = var$12.$watchedObject;
        if (var$11 === var$14)
            $var3 = 1;
        else
            o: {
                if (var$14 instanceof jl_Float) {
                    var$16 = var$11.$value3;
                    var$21 = var$14.$value3;
                    if (var$16 !== var$16 ? (var$21 === var$21 ? 0 : 1) : $rt_floatToRawIntBits(var$16) != $rt_floatToRawIntBits(var$21) ? 0 : 1) {
                        $var3 = 1;
                        break o;
                    }
                }
                $var3 = 0;
            }
        if (!$var3) {
            var$12.$watchedObject = var$11;
            var$12.$watched = 1;
            $par1EntityLivingData.$objectChanged = 1;
        }
        return $par1EntityLivingData1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingData, $par1EntityLivingData1, $var3, $var7, var$5, $var5, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityHorse_isAIEnabled = $this => {
    return 1;
},
nms_EntityHorse_setJumpPower = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    if (!(var$2.$watchedObject.$value & 4) ? 0 : 1) {
        if ($par1 < 0)
            $par1 = 0;
        else {
            $this.$field_110294_bI = 1;
            if (!$this.$worldObj.$isRemote) {
                $this.$jumpRearingCounter = 1;
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = ju_HashMap_entryByKey(var$2, jl_Integer_integerCache.data[144]);
                var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
                var$2 = $this.$dataWatcher;
                var$8 = var$7 & (-33);
                if (var$8 >= (-128) && var$8 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[var$8 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    jl_Object__init_(var$6);
                    var$6.$value = var$8;
                }
                var$3 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[144]);
                var$9 = var$3 === null ? null : var$3.$value0;
                var$3 = var$9.$watchedObject;
                if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                    var$9.$watchedObject = var$6;
                    var$9.$watched = 1;
                    var$2.$objectChanged = 1;
                }
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    var$3 = var$2.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$10 = jl_Integer_hashCode(var$6.$value);
                    var$5 = var$2.$elementData.data;
                    var$3 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while (var$3 !== null && !(var$3.$origKeyHash == var$10 && ju_HashMap_areEqualKeys(var$6, var$3.$key))) {
                        var$3 = var$3.$next3;
                    }
                }
                var$7 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value;
                var$2 = $this.$dataWatcher;
                var$8 = var$7 | 64;
                if (var$8 >= (-128) && var$8 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[var$8 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = var$8;
                }
                var$3 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$11 = jl_Integer_integerCache.data[144];
                if (var$11 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$10 = jl_Integer_hashCode(var$11.$value);
                    var$5 = var$3.$elementData.data;
                    var$3 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while (var$3 !== null && !(var$3.$origKeyHash == var$10 && ju_HashMap_areEqualKeys(var$11, var$3.$key))) {
                        var$3 = var$3.$next3;
                    }
                }
                var$9 = var$3 === null ? null : var$3.$value0;
                var$3 = var$9.$watchedObject;
                if (!(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6.$value ? 1 : 0)) {
                    var$9.$watchedObject = var$6;
                    var$9.$watched = 1;
                    var$2.$objectChanged = 1;
                }
            }
        }
        if ($par1 >= 90)
            $this.$jumpPower = 1.0;
        else
            $this.$jumpPower = 0.4000000059604645 + 0.4000000059604645 * $par1 / 90.0;
    }
},
nms_EntityHorse_updateRiderPosition = $this => {
    let var$1, $var4, $var3, var$4, var$5, $var1, $var2;
    var$1 = $this.$riddenByEntity;
    if (var$1 !== null)
        nms_Entity_setPosition(var$1, $this.$posX, $this.$posY + $this.$height0 * 0.75 + var$1.$getYOffset(), $this.$posZ);
    $var4 = $this.$prevRearingAmount;
    if ($var4 > 0.0) {
        $var3 = $this.$renderYawOffset * 3.1415927410125732 / 180.0;
        var$4 = nms_MathHelper_SIN_TABLE.data;
        var$5 = $var3 * 10430.3779296875;
        $var1 = var$4[(var$5 | 0) & 65535];
        $var2 = var$4[(var$5 + 16384.0 | 0) & 65535];
        $var3 = 0.699999988079071 * $var4;
        $var4 = 0.15000000596046448 * $var4;
        var$1 = $this.$riddenByEntity;
        nms_Entity_setPosition(var$1, $this.$posX + $var3 * $var1, $this.$posY + $this.$height0 * 0.75 + var$1.$getYOffset() + $var4, $this.$posZ - $var3 * $var2);
        var$1 = $this.$riddenByEntity;
        if (var$1 instanceof nms_EntityLivingBase)
            var$1.$renderYawOffset = $this.$renderYawOffset;
    }
},
nms_EntityHorse_func_110211_v = $par0 => {
    nms_Item_$callClinit();
    return $par0 != nms_Item_horseArmorIron.$itemID0 && $par0 != nms_Item_horseArmorGold.$itemID0 && $par0 != nms_Item_horseArmorDiamond.$itemID0 ? 0 : 1;
},
nms_EntityHorse_isOnLadder = $this => {
    return 0;
},
nms_EntityHorse__clinit_ = () => {
    let var$1, var$2, var$3;
    nms_EntityHorse_horseBreedingSelector = new nms_EntityHorseBredSelector;
    var$1 = nms_RangedAttribute__init_($rt_s(2246), 0.7, 0.0, 2.0);
    var$1.$field_111119_c = $rt_s(2247);
    var$1.$shouldWatch = 1;
    nms_EntityHorse_horseJumpStrength = var$1;
    var$2 = $rt_createArray(jl_String, 4);
    var$3 = var$2.data;
    var$3[0] = null;
    var$3[1] = $rt_s(2248);
    var$3[2] = $rt_s(2249);
    var$3[3] = $rt_s(2250);
    nms_EntityHorse_horseArmorTextures = var$2;
    nms_EntityHorse_field_110273_bx = $rt_wrapArray(jl_String, [$rt_s(3), $rt_s(2251), $rt_s(2252), $rt_s(2253)]);
    nms_EntityHorse_armorValues = $rt_createIntArrayFromData([0, 5, 7, 11]);
    nms_EntityHorse_horseTextures = $rt_wrapArray(jl_String, [$rt_s(2254), $rt_s(2255), $rt_s(2256), $rt_s(2257), $rt_s(2258), $rt_s(2259), $rt_s(2260)]);
    nms_EntityHorse_field_110269_bA = $rt_wrapArray(jl_String, [$rt_s(2261), $rt_s(2262), $rt_s(2263), $rt_s(2264), $rt_s(2265), $rt_s(2266), $rt_s(2267)]);
    var$2 = $rt_createArray(jl_String, 5);
    var$3 = var$2.data;
    var$3[0] = null;
    var$3[1] = $rt_s(2268);
    var$3[2] = $rt_s(2269);
    var$3[3] = $rt_s(2270);
    var$3[4] = $rt_s(2271);
    nms_EntityHorse_horseMarkingTextures = var$2;
    nms_EntityHorse_field_110292_bC = $rt_wrapArray(jl_String, [$rt_s(3), $rt_s(2272), $rt_s(2273), $rt_s(2274), $rt_s(2275)]);
};
function nms_BiomeDecorator() {
    let a = this; jl_Object.call(a);
    a.$currentWorld = null;
    a.$randomGenerator = null;
    a.$chunk_X = 0;
    a.$chunk_Z = 0;
    a.$biome = null;
    a.$clayGen = null;
    a.$sandGen = null;
    a.$gravelAsSandGen = null;
    a.$dirtGen = null;
    a.$gravelGen = null;
    a.$coalGen = null;
    a.$ironGen = null;
    a.$goldGen = null;
    a.$redstoneGen = null;
    a.$diamondGen = null;
    a.$lapisGen = null;
    a.$plantYellowGen = null;
    a.$plantRedGen = null;
    a.$mushroomBrownGen = null;
    a.$mushroomRedGen = null;
    a.$bigMushroomGen = null;
    a.$reedGen = null;
    a.$cactusGen = null;
    a.$waterlilyGen = null;
    a.$waterlilyPerChunk = 0;
    a.$treesPerChunk = 0;
    a.$flowersPerChunk = 0;
    a.$grassPerChunk = 0;
    a.$deadBushPerChunk = 0;
    a.$mushroomsPerChunk = 0;
    a.$reedsPerChunk = 0;
    a.$cactiPerChunk = 0;
    a.$sandPerChunk = 0;
    a.$sandPerChunk2 = 0;
    a.$clayPerChunk = 0;
    a.$bigMushroomsPerChunk = 0;
    a.$generateLakes = 0;
}
let nms_BiomeDecorator__init_ = ($this, $par1BiomeGenBase) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = new nms_WorldGenClay;
    var$2.$doBlockNotify = 0;
    nms_Block_$callClinit();
    var$2.$clayBlockId = nms_Block_blockClay.$blockID;
    var$2.$numberOfBlocks0 = 4;
    $this.$clayGen = var$2;
    var$3 = new nms_WorldGenSand;
    var$4 = nms_Block_sand.$blockID;
    var$3.$doBlockNotify = 0;
    var$3.$sandID = var$4;
    var$3.$radius = 7;
    $this.$sandGen = var$3;
    var$2 = new nms_WorldGenSand;
    var$4 = nms_Block_gravel.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$sandID = var$4;
    var$2.$radius = 6;
    $this.$gravelAsSandGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_dirt.$blockID;
    var$6 = nms_Block_stone.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 32;
    var$2.$blockToReplace = var$6;
    $this.$dirtGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$4;
    var$2.$numberOfBlocks = 32;
    var$2.$blockToReplace = var$6;
    $this.$gravelGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_oreCoal.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 16;
    var$2.$blockToReplace = var$6;
    $this.$coalGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_oreIron.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 8;
    var$2.$blockToReplace = var$6;
    $this.$ironGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_oreGold.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 8;
    var$2.$blockToReplace = var$6;
    $this.$goldGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_oreRedstone.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 7;
    var$2.$blockToReplace = var$6;
    $this.$redstoneGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_oreDiamond.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 7;
    var$2.$blockToReplace = var$6;
    $this.$diamondGen = var$2;
    var$2 = new nms_WorldGenMinable;
    var$5 = nms_Block_oreLapis.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$minableBlockId = var$5;
    var$2.$numberOfBlocks = 6;
    var$2.$blockToReplace = var$6;
    $this.$lapisGen = var$2;
    var$2 = new nms_WorldGenFlowers;
    var$5 = nms_Block_plantYellow.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$plantBlockId = var$5;
    $this.$plantYellowGen = var$2;
    var$2 = new nms_WorldGenFlowers;
    var$5 = nms_Block_plantRed.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$plantBlockId = var$5;
    $this.$plantRedGen = var$2;
    var$2 = new nms_WorldGenFlowers;
    var$5 = nms_Block_mushroomBrown.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$plantBlockId = var$5;
    $this.$mushroomBrownGen = var$2;
    var$2 = new nms_WorldGenFlowers;
    var$5 = nms_Block_mushroomRed.$blockID;
    var$2.$doBlockNotify = 0;
    var$2.$plantBlockId = var$5;
    $this.$mushroomRedGen = var$2;
    var$2 = new nms_WorldGenBigMushroom;
    var$2.$doBlockNotify = 0;
    var$2.$mushroomType = (-1);
    $this.$bigMushroomGen = var$2;
    var$2 = new nms_WorldGenReed;
    var$2.$doBlockNotify = 0;
    $this.$reedGen = var$2;
    var$2 = new nms_WorldGenCactus;
    var$2.$doBlockNotify = 0;
    $this.$cactusGen = var$2;
    var$2 = new nms_WorldGenWaterlily;
    var$2.$doBlockNotify = 0;
    $this.$waterlilyGen = var$2;
    $this.$flowersPerChunk = 2;
    $this.$grassPerChunk = 1;
    $this.$sandPerChunk = 1;
    $this.$sandPerChunk2 = 3;
    $this.$clayPerChunk = 1;
    $this.$generateLakes = 1;
    $this.$biome = $par1BiomeGenBase;
},
nms_BiomeDecorator__init_0 = var_0 => {
    let var_1 = new nms_BiomeDecorator();
    nms_BiomeDecorator__init_(var_1, var_0);
    return var_1;
},
nms_BiomeDecorator_decorate0 = ($this, $par1World, $par2Random, $par3, $par4) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$currentWorld !== null) {
            $par2Random = new jl_RuntimeException;
            $par2Random.$suppressionEnabled = 1;
            $par2Random.$writableStackTrace = 1;
            $par2Random.$message = $rt_s(2164);
            $rt_throw($par2Random);
        }
        $this.$currentWorld = $par1World;
        $this.$randomGenerator = $par2Random;
        $this.$chunk_X = $par3;
        $this.$chunk_Z = $par4;
        $ptr = 1;
    case 1:
        $this.$decorate();
        if ($rt_suspending()) {
            break main;
        }
        $this.$currentWorld = null;
        $this.$randomGenerator = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $ptr);
},
nms_BiomeDecorator_decorate = $this => {
    let $var1, $var4, var$3, $var2, $var6, var$6, $var3, var$8, $var5, var$10, $var7, $var4_0, var$13, var$14, $var4_1, var$16, $var3_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3_0 = $thread.pop();var$16 = $thread.pop();$var4_1 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var4_0 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BiomeDecorator_generateOres($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        $var4 = 17;
        var$3 = Long_fromInt(16);
        if ($var1 < $this.$sandPerChunk2) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$sandGen;
            var$10 = $this.$currentWorld;
            $ptr = 2;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$clayPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$clayGen;
            var$10 = $this.$currentWorld;
            $ptr = 4;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$sandPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$sandGen;
            var$10 = $this.$currentWorld;
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$treesPerChunk;
        $var6 = $this.$randomGenerator;
        var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var7 = Long_lo(Long_shru(var$8, $var4));
        while (true) {
            $var4_0 = $var7 % 10 | 0;
            if ((($var7 - $var4_0 | 0) + 9 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shru(var$8, $var4));
        }
        if (!$var4_0)
            $var1 = $var1 + 1 | 0;
        $var2 = 0;
        if ($var2 < $var1) {
            $var3 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$biome.$getRandomWorldGenForTrees($var6);
            $var5.$setScale(1.0, 1.0, 1.0);
            $var6 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 8;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$bigMushroomsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$bigMushroomGen;
            var$10 = $this.$currentWorld;
            $ptr = 10;
            continue main;
        }
        $var1 = 0;
        var$13 = Long_fromInt(128);
        var$14 = Long_fromInt(4);
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 2:
        $tmp = nms_World_getTopSolidOrLiquidBlock(var$10, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 3;
    case 3:
        nms_WorldGenSand_generate($var5, var$10, $var6, $var2, $var7, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$sandPerChunk2) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$sandGen;
            var$10 = $this.$currentWorld;
            $ptr = 2;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$clayPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$clayGen;
            var$10 = $this.$currentWorld;
            $ptr = 4;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$sandPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$sandGen;
            var$10 = $this.$currentWorld;
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$treesPerChunk;
        $var6 = $this.$randomGenerator;
        var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var7 = Long_lo(Long_shru(var$8, $var4));
        while (true) {
            $var4_0 = $var7 % 10 | 0;
            if ((($var7 - $var4_0 | 0) + 9 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shru(var$8, $var4));
        }
        if (!$var4_0)
            $var1 = $var1 + 1 | 0;
        $var2 = 0;
        if ($var2 < $var1) {
            $var3 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$biome.$getRandomWorldGenForTrees($var6);
            $var5.$setScale(1.0, 1.0, 1.0);
            $var6 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 8;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$bigMushroomsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$bigMushroomGen;
            var$10 = $this.$currentWorld;
            $ptr = 10;
            continue main;
        }
        $var1 = 0;
        var$13 = Long_fromInt(128);
        var$14 = Long_fromInt(4);
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 4:
        $tmp = nms_World_getTopSolidOrLiquidBlock(var$10, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 5;
    case 5:
        nms_WorldGenClay_generate($var5, var$10, $var6, $var2, $var7, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$clayPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$clayGen;
            var$10 = $this.$currentWorld;
            $ptr = 4;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$sandPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$sandGen;
            var$10 = $this.$currentWorld;
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$treesPerChunk;
        $var6 = $this.$randomGenerator;
        var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var7 = Long_lo(Long_shru(var$8, $var4));
        while (true) {
            $var4_0 = $var7 % 10 | 0;
            if ((($var7 - $var4_0 | 0) + 9 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shru(var$8, $var4));
        }
        if (!$var4_0)
            $var1 = $var1 + 1 | 0;
        $var2 = 0;
        if ($var2 < $var1) {
            $var3 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$biome.$getRandomWorldGenForTrees($var6);
            $var5.$setScale(1.0, 1.0, 1.0);
            $var6 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 8;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$bigMushroomsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$bigMushroomGen;
            var$10 = $this.$currentWorld;
            $ptr = 10;
            continue main;
        }
        $var1 = 0;
        var$13 = Long_fromInt(128);
        var$14 = Long_fromInt(4);
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 6:
        $tmp = nms_World_getTopSolidOrLiquidBlock(var$10, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 7;
    case 7:
        nms_WorldGenSand_generate($var5, var$10, $var6, $var2, $var7, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$sandPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$sandGen;
            var$10 = $this.$currentWorld;
            $ptr = 6;
            continue main;
        }
        $var1 = $this.$treesPerChunk;
        $var6 = $this.$randomGenerator;
        var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var7 = Long_lo(Long_shru(var$8, $var4));
        while (true) {
            $var4_0 = $var7 % 10 | 0;
            if ((($var7 - $var4_0 | 0) + 9 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shru(var$8, $var4));
        }
        if (!$var4_0)
            $var1 = $var1 + 1 | 0;
        $var2 = 0;
        if ($var2 < $var1) {
            $var3 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$biome.$getRandomWorldGenForTrees($var6);
            $var5.$setScale(1.0, 1.0, 1.0);
            $var6 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 8;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$bigMushroomsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$bigMushroomGen;
            var$10 = $this.$currentWorld;
            $ptr = 10;
            continue main;
        }
        $var1 = 0;
        var$13 = Long_fromInt(128);
        var$14 = Long_fromInt(4);
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 8:
        $tmp = nms_World_getHeightValue($var6, $var3, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $ptr = 9;
    case 9:
        $var5.$generate($var6, var$10, $var3, $var7, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        if ($var2 < $var1) {
            $var3 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$biome.$getRandomWorldGenForTrees($var6);
            $var5.$setScale(1.0, 1.0, 1.0);
            $var6 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 8;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$bigMushroomsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$bigMushroomGen;
            var$10 = $this.$currentWorld;
            $ptr = 10;
            continue main;
        }
        $var1 = 0;
        var$13 = Long_fromInt(128);
        var$14 = Long_fromInt(4);
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 10:
        $tmp = nms_World_getHeightValue(var$10, $var3, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $ptr = 11;
    case 11:
        nms_WorldGenBigMushroom_generate($var5, var$10, $var6, $var3, $var2, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$bigMushroomsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$bigMushroomGen;
            var$10 = $this.$currentWorld;
            $ptr = 10;
            continue main;
        }
        $var1 = 0;
        var$13 = Long_fromInt(128);
        var$14 = Long_fromInt(4);
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 12:
        nms_WorldGenFlowers_generate($var5, var$10, $var6, $var3, $var4_0, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$randomGenerator;
        var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
            $var2 = $this.$chunk_X;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var2 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var3 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var3 = ($var3 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantRedGen;
            var$10 = $this.$currentWorld;
            $ptr = 13;
            continue main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 13:
        nms_WorldGenFlowers_generate($var5, var$10, $var6, $var2, $var4_0, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$flowersPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$plantYellowGen;
            var$10 = $this.$currentWorld;
            $ptr = 12;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 14;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 14:
        nms_WorldGenTallGrass_generate($var6, $var5, var$10, $var3, $var4_0, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$grassPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = $this.$biome.$getRandomWorldGenForGrass($var6);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            $ptr = 15;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 15:
        nms_WorldGenDeadBush_generate($var5, var$10, $var6, $var3, $var4_1, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$deadBushPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_1 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = new nms_WorldGenDeadBush;
            nms_Block_$callClinit();
            $var2 = nms_Block_deadBush.$blockID;
            $var5.$doBlockNotify = 0;
            $var5.$deadBushID = $var2;
            var$10 = $this.$currentWorld;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 16;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 16:
        nms_WorldGenWaterlily_generate($var6, $var5, var$10, $var3, $var7, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$waterlilyPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var2 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            if ($var7 <= 0) {
                $var6 = $this.$waterlilyGen;
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                continue main;
            }
            $var6 = $this.$currentWorld;
            $var2 = $var7 - 1 | 0;
            $ptr = 17;
            continue main;
        }
        $var1 = 0;
        var$16 = Long_fromInt(8);
        while (true) {
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($var6, $var3, $var2, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!$var2) {
            $var7 = $var7 + (-1) | 0;
            if ($var7 > 0) {
                $var6 = $this.$currentWorld;
                $var2 = $var7 - 1 | 0;
                continue main;
            }
        }
        $var6 = $this.$waterlilyGen;
        $var5 = $this.$currentWorld;
        var$10 = $this.$randomGenerator;
        $ptr = 16;
        continue main;
    case 18:
        nms_WorldGenFlowers_generate($var5, var$10, $var6, $var1, $var3_0, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$randomGenerator;
        var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
            $var1 = $this.$chunk_X;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$mushroomRedGen;
            var$10 = $this.$currentWorld;
            $ptr = 21;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$reedsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            $ptr = 23;
            continue main;
        }
        $var1 = 0;
        if ($var1 < 10) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            $ptr = 24;
            continue main;
        }
        $var6 = $this.$randomGenerator;
        var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$16;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
            $var1 = $this.$chunk_X;
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = nms_WorldGenPumpkin__init_();
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 25;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$cactiPerChunk) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$cactusGen;
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 26;
            continue main;
        }
        if ($this.$generateLakes) {
            $var1 = 0;
            if ($var1 < 50) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 27;
                continue main;
            }
            $var2 = 0;
            if ($var2 < 20) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 28;
                continue main;
            }
        }
        return;
    case 19:
        $tmp = nms_World_getHeightValue($var6, $var3, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var6 = $this.$mushroomBrownGen;
        $var5 = $this.$currentWorld;
        var$10 = $this.$randomGenerator;
        $ptr = 20;
    case 20:
        nms_WorldGenFlowers_generate($var6, $var5, var$10, $var3, $var7, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                $ptr = 22;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                continue;
            else
                break;
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 21:
        nms_WorldGenFlowers_generate($var5, var$10, $var6, $var1, $var3_0, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        if ($var1 < $this.$reedsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            $ptr = 23;
            continue main;
        }
        $var1 = 0;
        if ($var1 < 10) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            $ptr = 24;
            continue main;
        }
        $var6 = $this.$randomGenerator;
        var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$16;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
            $var1 = $this.$chunk_X;
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = nms_WorldGenPumpkin__init_();
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 25;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$cactiPerChunk) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$cactusGen;
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 26;
            continue main;
        }
        if ($this.$generateLakes) {
            $var1 = 0;
            if ($var1 < 50) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 27;
                continue main;
            }
            $var2 = 0;
            if ($var2 < 20) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 28;
                continue main;
            }
        }
        return;
    case 22:
        nms_WorldGenFlowers_generate($var5, var$10, $var6, $var3, $var7, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var1 = $var1 + 1 | 0;
            if ($var1 >= $this.$mushroomsPerChunk) {
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomBrownGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 18;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                if (!Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$mushroomRedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 21;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$reedsPerChunk) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    $var7 = $this.$chunk_Z;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 23;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < 10) {
                    $var2 = $this.$chunk_X;
                    $var6 = $this.$randomGenerator;
                    var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var5 = $this.$reedGen;
                    var$10 = $this.$currentWorld;
                    $ptr = 24;
                    continue main;
                }
                $var6 = $this.$randomGenerator;
                var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$16;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
                    $var1 = $this.$chunk_X;
                    var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$6;
                    $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
                    $var2 = $this.$chunk_Z;
                    var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
                    $var6 = nms_WorldGenPumpkin__init_();
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 25;
                    continue main;
                }
                $var1 = 0;
                if ($var1 < $this.$cactiPerChunk) {
                    $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
                    $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                    $var6 = $this.$cactusGen;
                    $var5 = $this.$currentWorld;
                    var$10 = $this.$randomGenerator;
                    $ptr = 26;
                    continue main;
                }
                if ($this.$generateLakes) {
                    $var1 = 0;
                    if ($var1 < 50) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 27;
                        continue main;
                    }
                    $var2 = 0;
                    if ($var2 < 20) {
                        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = $this.$randomGenerator;
                        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                        $var6 = new nms_WorldGenLiquids;
                        nms_Block_$callClinit();
                        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                        $var5 = $this.$currentWorld;
                        var$10 = $this.$randomGenerator;
                        $ptr = 28;
                        continue main;
                    }
                }
                return;
            }
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$14, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                break;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            if (Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)))
                continue;
            else {
                $var2 = $this.$chunk_X;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                $var2 = $this.$chunk_Z;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$6;
                $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
                $var5 = $this.$mushroomRedGen;
                var$10 = $this.$currentWorld;
                continue main;
            }
        }
        $var2 = $this.$chunk_X;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$6;
        $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
        $var2 = $this.$chunk_Z;
        var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$8;
        $var4_0 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
        $var6 = $this.$currentWorld;
        $ptr = 19;
        continue main;
    case 23:
        nms_WorldGenReed_generate($var5, var$10, $var6, $var3, $var7, $var4_0);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$reedsPerChunk) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            $var7 = $this.$chunk_Z;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = ($var7 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31));
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            continue main;
        }
        $var1 = 0;
        if ($var1 < 10) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            $ptr = 24;
            continue main;
        }
        $var6 = $this.$randomGenerator;
        var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$16;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
            $var1 = $this.$chunk_X;
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = nms_WorldGenPumpkin__init_();
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 25;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$cactiPerChunk) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$cactusGen;
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 26;
            continue main;
        }
        if ($this.$generateLakes) {
            $var1 = 0;
            if ($var1 < 50) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 27;
                continue main;
            }
            $var2 = 0;
            if ($var2 < 20) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 28;
                continue main;
            }
        }
        return;
    case 24:
        nms_WorldGenReed_generate($var5, var$10, $var6, $var3, $var4_0, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < 10) {
            $var2 = $this.$chunk_X;
            $var6 = $this.$randomGenerator;
            var$6 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var4_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var7 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var5 = $this.$reedGen;
            var$10 = $this.$currentWorld;
            continue main;
        }
        $var6 = $this.$randomGenerator;
        var$16 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$16;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$16, $var4)))), 31))) {
            $var1 = $this.$chunk_X;
            var$6 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var1 = ($var1 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31)) | 0) + 8 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$6;
            $var3_0 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt(Long_lo(Long_shru(var$6, $var4)))), 31));
            $var2 = $this.$chunk_Z;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$8;
            $var4 = ($var2 + Long_lo(Long_shr(Long_mul(var$3, Long_fromInt(Long_lo(Long_shru(var$8, $var4)))), 31)) | 0) + 8 | 0;
            $var6 = nms_WorldGenPumpkin__init_();
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 25;
            continue main;
        }
        $var1 = 0;
        if ($var1 < $this.$cactiPerChunk) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$cactusGen;
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 26;
            continue main;
        }
        if ($this.$generateLakes) {
            $var1 = 0;
            if ($var1 < 50) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 27;
                continue main;
            }
            $var2 = 0;
            if ($var2 < 20) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 28;
                continue main;
            }
        }
        return;
    case 25:
        nms_WorldGenPumpkin_generate($var6, $var5, var$10, $var1, $var3_0, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        if ($var1 < $this.$cactiPerChunk) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$cactusGen;
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            $ptr = 26;
            continue main;
        }
        if ($this.$generateLakes) {
            $var1 = 0;
            if ($var1 < 50) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 27;
                continue main;
            }
            $var2 = 0;
            if ($var2 < 20) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 28;
                continue main;
            }
        }
        return;
    case 26:
        nms_WorldGenCactus_generate($var6, $var5, var$10, $var3, $var4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < $this.$cactiPerChunk) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var4 = nle_EaglercraftRandom_nextInt($this.$randomGenerator, 128);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$cactusGen;
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            continue main;
        }
        if ($this.$generateLakes) {
            $var1 = 0;
            if ($var1 < 50) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 27;
                continue main;
            }
            $var2 = 0;
            if ($var2 < 20) {
                $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = $this.$randomGenerator;
                $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
                $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
                $var6 = new nms_WorldGenLiquids;
                nms_Block_$callClinit();
                nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
                $var5 = $this.$currentWorld;
                var$10 = $this.$randomGenerator;
                $ptr = 28;
                continue main;
            }
        }
        return;
    case 27:
        nms_WorldGenLiquids_generate($var6, $var5, var$10, $var3, $var4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < 50) {
            $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = $this.$randomGenerator;
            $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 120) + 8 | 0);
            $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
            $var6 = new nms_WorldGenLiquids;
            nms_Block_$callClinit();
            nms_WorldGenLiquids__init_($var6, nms_Block_waterMoving.$blockID);
            $var5 = $this.$currentWorld;
            var$10 = $this.$randomGenerator;
            continue main;
        }
        $var2 = 0;
        if ($var2 >= 20)
            return;
        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
        $var6 = $this.$randomGenerator;
        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
        $var6 = new nms_WorldGenLiquids;
        nms_Block_$callClinit();
        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
        $var5 = $this.$currentWorld;
        var$10 = $this.$randomGenerator;
        $ptr = 28;
    case 28:
        nms_WorldGenLiquids_generate($var6, $var5, var$10, $var3, $var4, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        if ($var2 >= 20)
            return;
        $var3 = ($this.$chunk_X + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
        $var6 = $this.$randomGenerator;
        $var4 = nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, nle_EaglercraftRandom_nextInt($var6, 112) + 8 | 0) + 8 | 0);
        $var7 = ($this.$chunk_Z + nle_EaglercraftRandom_nextInt($this.$randomGenerator, 16) | 0) + 8 | 0;
        $var6 = new nms_WorldGenLiquids;
        nms_Block_$callClinit();
        nms_WorldGenLiquids__init_($var6, nms_Block_lavaMoving.$blockID);
        $var5 = $this.$currentWorld;
        var$10 = $this.$randomGenerator;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var4, var$3, $var2, $var6, var$6, $var3, var$8, $var5, var$10, $var7, $var4_0, var$13, var$14, $var4_1, var$16, $var3_0, $ptr);
},
nms_BiomeDecorator_genStandardOre1 = ($this, $par1, $par2WorldGenerator, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, $var6, var$13, var$14, var$15, $var7, $var8, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2WorldGenerator = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        var$6 = 17;
        var$7 = $par4 - $par3 | 0;
        var$8 = var$7 - 1 | 0;
        var$9 = var$7 & var$8;
        var$10 = Long_fromInt(16);
        var$11 = Long_fromInt(var$7);
        if ($var5 >= $par1)
            return;
        $var6 = $this.$chunk_X;
        var$13 = $this.$randomGenerator;
        var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$14;
        $var6 = $var6 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$6)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $par4 = Long_lo(Long_shru(var$15, var$6));
        if (!var$9)
            $var7 = Long_lo(Long_shr(Long_mul(var$11, Long_fromInt($par4)), 31));
        else
            while (true) {
                $var7 = $par4 % var$7 | 0;
                if ((($par4 - $var7 | 0) + var$8 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$15;
                $par4 = Long_lo(Long_shru(var$15, var$6));
            }
        $var7 = $var7 + $par3 | 0;
        $var8 = $this.$chunk_Z;
        var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $var8 = $var8 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, var$6)))), 31)) | 0;
        var$18 = $this.$currentWorld;
        $ptr = 1;
    case 1:
        nms_WorldGenMinable_generate($par2WorldGenerator, var$18, var$13, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= $par1)
            return;
        $var6 = $this.$chunk_X;
        var$13 = $this.$randomGenerator;
        var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$14;
        $var6 = $var6 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$6)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $par4 = Long_lo(Long_shru(var$15, var$6));
        if (!var$9)
            $var7 = Long_lo(Long_shr(Long_mul(var$11, Long_fromInt($par4)), 31));
        else
            while (true) {
                $var7 = $par4 % var$7 | 0;
                if ((($par4 - $var7 | 0) + var$8 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$15;
                $par4 = Long_lo(Long_shru(var$15, var$6));
            }
        $var7 = $var7 + $par3 | 0;
        $var8 = $this.$chunk_Z;
        var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $var8 = $var8 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, var$6)))), 31)) | 0;
        var$18 = $this.$currentWorld;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2WorldGenerator, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, $var6, var$13, var$14, var$15, $var7, $var8, var$18, $ptr);
},
nms_BiomeDecorator_genStandardOre2 = ($this, $par1, $par2WorldGenerator, $par3, $par4) => {
    let $var5, var$6, var$7, var$8, var$9, var$10, var$11, $var6, var$13, var$14, var$15, $var8, $var7, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2WorldGenerator = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = 0;
        var$6 = 17;
        var$7 = $par4 - 1 | 0;
        var$8 = $par4 & var$7;
        var$9 = $par3 - $par4 | 0;
        var$10 = Long_fromInt(16);
        var$11 = Long_fromInt($par4);
        if ($var5 >= $par1)
            return;
        $var6 = $this.$chunk_X;
        var$13 = $this.$randomGenerator;
        var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$14;
        $var6 = $var6 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$6)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $par3 = Long_lo(Long_shru(var$15, var$6));
        if (!var$8)
            $var8 = Long_lo(Long_shr(Long_mul(var$11, Long_fromInt($par3)), 31));
        else
            while (true) {
                $var8 = $par3 % $par4 | 0;
                if ((($par3 - $var8 | 0) + var$7 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$15;
                $par3 = Long_lo(Long_shru(var$15, var$6));
            }
        var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $par3 = Long_lo(Long_shru(var$15, var$6));
        if (!var$8)
            $var7 = Long_lo(Long_shr(Long_mul(var$11, Long_fromInt($par3)), 31));
        else
            while (true) {
                $var7 = $par3 % $par4 | 0;
                if ((($par3 - $var7 | 0) + var$7 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$15;
                $par3 = Long_lo(Long_shru(var$15, var$6));
            }
        $var7 = ($var8 + $var7 | 0) + var$9 | 0;
        $var8 = $this.$chunk_Z;
        var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $var8 = $var8 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, var$6)))), 31)) | 0;
        var$18 = $this.$currentWorld;
        $ptr = 1;
    case 1:
        nms_WorldGenMinable_generate($par2WorldGenerator, var$18, var$13, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= $par1)
            return;
        $var6 = $this.$chunk_X;
        var$13 = $this.$randomGenerator;
        var$14 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$14;
        $var6 = $var6 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$6)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $par3 = Long_lo(Long_shru(var$15, var$6));
        if (!var$8)
            $var8 = Long_lo(Long_shr(Long_mul(var$11, Long_fromInt($par3)), 31));
        else
            while (true) {
                $var8 = $par3 % $par4 | 0;
                if ((($par3 - $var8 | 0) + var$7 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$15;
                $par3 = Long_lo(Long_shru(var$15, var$6));
            }
        var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $par3 = Long_lo(Long_shru(var$15, var$6));
        if (!var$8)
            $var7 = Long_lo(Long_shr(Long_mul(var$11, Long_fromInt($par3)), 31));
        else
            while (true) {
                $var7 = $par3 % $par4 | 0;
                if ((($par3 - $var7 | 0) + var$7 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$13.$seed = var$15;
                $par3 = Long_lo(Long_shru(var$15, var$6));
            }
        $var7 = ($var8 + $var7 | 0) + var$9 | 0;
        $var8 = $this.$chunk_Z;
        var$15 = Long_and(Long_add(Long_mul(var$13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$13.$seed = var$15;
        $var8 = $var8 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, var$6)))), 31)) | 0;
        var$18 = $this.$currentWorld;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2WorldGenerator, $par3, $par4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, $var6, var$13, var$14, var$15, $var8, $var7, var$18, $ptr);
},
nms_BiomeDecorator_generateOres = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = 20;
        var$2 = $this.$dirtGen;
        var$3 = 0;
        var$4 = 128;
        $ptr = 1;
    case 1:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 10;
        var$2 = $this.$gravelGen;
        var$3 = 0;
        var$4 = 128;
        $ptr = 2;
    case 2:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 20;
        var$2 = $this.$coalGen;
        var$3 = 0;
        var$4 = 128;
        $ptr = 3;
    case 3:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 20;
        var$2 = $this.$ironGen;
        var$3 = 0;
        var$4 = 64;
        $ptr = 4;
    case 4:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 2;
        var$2 = $this.$goldGen;
        var$3 = 0;
        var$4 = 32;
        $ptr = 5;
    case 5:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 8;
        var$2 = $this.$redstoneGen;
        var$3 = 0;
        var$4 = 16;
        $ptr = 6;
    case 6:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 1;
        var$2 = $this.$diamondGen;
        var$3 = 0;
        var$4 = 16;
        $ptr = 7;
    case 7:
        nms_BiomeDecorator_genStandardOre1($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = 1;
        var$2 = $this.$lapisGen;
        var$3 = 16;
        var$4 = 16;
        $ptr = 8;
    case 8:
        nms_BiomeDecorator_genStandardOre2($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
};
function nms_WorldGenerator() {
    jl_Object.call(this);
    this.$doBlockNotify = 0;
}
let nms_WorldGenerator_setScale = ($this, $par1, $par3, $par5) => {
    return;
},
nms_WorldGenerator_setBlockAndMetadata = ($this, $par1World, $par2, $par3, $par4, $par5, $par6) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$doBlockNotify) {
            var$7 = 2;
            $ptr = 1;
            continue main;
        }
        var$7 = 3;
        $ptr = 2;
        continue main;
    case 1:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $par6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_setBlock($par1World, $par2, $par3, $par4, $par5, $par6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, var$7, $ptr);
};
function nms_WorldGenMinable() {
    let a = this; nms_WorldGenerator.call(a);
    a.$minableBlockId = 0;
    a.$numberOfBlocks = 0;
    a.$blockToReplace = 0;
}
let nms_WorldGenMinable_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, $var6, var$8, var$9, var$10, $var41, var$12, $var7, $var9, $var11, $var13, var$17, $var15, $var32, $var17, $var19, var$22, $var39, $var42, $var20, $var22, $var24, var$28, $var26, $var28, $var30, $var33, $var34, $var35, $var36, $var37, $var44, $var45, var$39, var$40, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$40 = $thread.pop();var$39 = $thread.pop();$var45 = $thread.pop();$var44 = $thread.pop();$var37 = $thread.pop();$var36 = $thread.pop();$var35 = $thread.pop();$var34 = $thread.pop();$var33 = $thread.pop();$var30 = $thread.pop();$var28 = $thread.pop();$var26 = $thread.pop();var$28 = $thread.pop();$var24 = $thread.pop();$var22 = $thread.pop();$var20 = $thread.pop();$var42 = $thread.pop();$var39 = $thread.pop();var$22 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var32
        = $thread.pop();$var15 = $thread.pop();var$17 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();$var41 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var6 = Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 * 3.1415927410125732;
        var$8 = $par3 + 8 | 0;
        var$9 = nms_MathHelper_SIN_TABLE.data;
        var$10 = $var6 * 10430.3779296875;
        $var41 = (var$10 | 0) & 65535;
        var$12 = var$9[$var41];
        $var6 = $this.$numberOfBlocks;
        $var7 = var$8 + var$12 * $var6 / 8.0;
        $var9 = var$8 - var$9[$var41] * $var6 / 8.0;
        var$12 = $par5 + 8 | 0;
        $par3 = (var$10 + 16384.0 | 0) & 65535;
        $var11 = var$12 + var$9[$par3] * $var6 / 8.0;
        $var13 = var$12 - var$9[$par3] * $var6 / 8.0;
        var$17 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$17;
        $par5 = Long_lo(Long_shru(var$17, 17));
        while (true) {
            $var41 = $par5 % 3 | 0;
            if ((($par5 - $var41 | 0) + 2 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$17;
            $par5 = Long_lo(Long_shru(var$17, 17));
        }
        $var15 = ($par4 + $var41 | 0) - 2 | 0;
        var$17 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$17;
        $var41 = Long_lo(Long_shru(var$17, 17));
        while (true) {
            $var32 = $var41 % 3 | 0;
            if ((($var41 - $var32 | 0) + 2 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$17;
            $var41 = Long_lo(Long_shru(var$17, 17));
        }
        $var17 = ($par4 + $var32 | 0) - 2 | 0;
        $var19 = 0;
        var$22 = $var9 - $var7;
        $var17 = $var17 - $var15;
        $var13 = $var13 - $var11;
        $par5 = 22;
        $par4 = 21;
        while (true) {
            $par3 = $this.$numberOfBlocks;
            if ($var19 > $par3)
                break;
            $var9 = $var19;
            $var39 = var$22 * $var9;
            $var42 = $par3;
            $var20 = $var7 + $var39 / $var42;
            $var22 = $var15 + $var17 * $var9 / $var42;
            $var24 = $var11 + $var13 * $var9 / $var42;
            var$28 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$28;
            var$17 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$28, $par5))), 27);
            var$6 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var26 = Long_toNumber(Long_add(var$17, Long_fromInt(Long_lo(Long_shru(var$6, $par4))))) * 1.1102230246251565E-16 * $var42 / 16.0;
            var$8 = $var19 * 3.1415927410125732 / $par3;
            var$9 = nms_MathHelper_SIN_TABLE.data;
            $par3 = (var$8 * 10430.3779296875 | 0) & 65535;
            $var28 = (var$9[$par3] + 1.0) * $var26 + 1.0;
            $var30 = (var$9[$par3] + 1.0) * $var26 + 1.0;
            $var28 = $var28 / 2.0;
            $var9 = $var20 - $var28;
            $var32 = $var9 | 0;
            if ($var9 < $var32)
                $var32 = $var32 - 1 | 0;
            $var30 = $var30 / 2.0;
            $var9 = $var22 - $var30;
            $var33 = $var9 | 0;
            if ($var9 < $var33)
                $var33 = $var33 - 1 | 0;
            $var9 = $var24 - $var28;
            $var34 = $var9 | 0;
            if ($var9 < $var34)
                $var34 = $var34 - 1 | 0;
            $var9 = $var20 + $var28;
            $var35 = $var9 | 0;
            if ($var9 < $var35)
                $var35 = $var35 - 1 | 0;
            $var9 = $var22 + $var30;
            $var36 = $var9 | 0;
            if ($var9 < $var36)
                $var36 = $var36 - 1 | 0;
            $var9 = $var24 + $var28;
            $var37 = $var9 | 0;
            if ($var9 < $var37)
                $var37 = $var37 - 1 | 0;
            while ($var32 <= $var35) {
                a: {
                    $var39 = ($var32 + 0.5 - $var20) / $var28;
                    $var9 = $var39 * $var39;
                    if ($var9 < 1.0) {
                        $var41 = $var33;
                        while (true) {
                            if ($var41 > $var36)
                                break a;
                            b: {
                                $var42 = ($var41 + 0.5 - $var22) / $var30;
                                $var39 = $var9 + $var42 * $var42;
                                if ($var39 < 1.0) {
                                    $var44 = $var34;
                                    while (true) {
                                        if ($var44 > $var37)
                                            break b;
                                        $var45 = ($var44 + 0.5 - $var24) / $var28;
                                        if ($var39 + $var45 * $var45 < 1.0) {
                                            $ptr = 1;
                                            continue main;
                                        }
                                        $var44 = $var44 + 1 | 0;
                                    }
                                }
                            }
                            $var41 = $var41 + 1 | 0;
                        }
                    }
                }
                $var32 = $var32 + 1 | 0;
            }
            $var19 = $var19 + 1 | 0;
        }
        return 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var32, $var41, $var44);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3 == $this.$blockToReplace) {
            var$39 = $this.$minableBlockId;
            $par3 = 0;
            var$40 = 2;
            $ptr = 2;
            continue main;
        }
        c: while (true) {
            $var44 = $var44 + 1 | 0;
            while ($var44 > $var37) {
                while (true) {
                    $var41 = $var41 + 1 | 0;
                    while ($var41 > $var36) {
                        while (true) {
                            $var32 = $var32 + 1 | 0;
                            while ($var32 > $var35) {
                                $var19 = $var19 + 1 | 0;
                                $par3 = $this.$numberOfBlocks;
                                if ($var19 > $par3)
                                    break c;
                                $var9 = $var19;
                                $var39 = var$22 * $var9;
                                $var42 = $par3;
                                $var20 = $var7 + $var39 / $var42;
                                $var22 = $var15 + $var17 * $var9 / $var42;
                                $var24 = $var11 + $var13 * $var9 / $var42;
                                var$28 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par2Random.$seed = var$28;
                                var$17 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$28, $par5))), 27);
                                var$6 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par2Random.$seed = var$6;
                                $var26 = Long_toNumber(Long_add(var$17, Long_fromInt(Long_lo(Long_shru(var$6, $par4))))) * 1.1102230246251565E-16 * $var42 / 16.0;
                                var$8 = $var19 * 3.1415927410125732 / $par3;
                                var$9 = nms_MathHelper_SIN_TABLE.data;
                                $par3 = (var$8 * 10430.3779296875 | 0) & 65535;
                                $var28 = (var$9[$par3] + 1.0) * $var26 + 1.0;
                                $var30 = (var$9[$par3] + 1.0) * $var26 + 1.0;
                                $var28 = $var28 / 2.0;
                                $var9 = $var20 - $var28;
                                $var32 = $var9 | 0;
                                if ($var9 < $var32)
                                    $var32 = $var32 - 1 | 0;
                                $var30 = $var30 / 2.0;
                                $var9 = $var22 - $var30;
                                $var33 = $var9 | 0;
                                if ($var9 < $var33)
                                    $var33 = $var33 - 1 | 0;
                                $var9 = $var24 - $var28;
                                $var34 = $var9 | 0;
                                if ($var9 < $var34)
                                    $var34 = $var34 - 1 | 0;
                                $var9 = $var20 + $var28;
                                $var35 = $var9 | 0;
                                if ($var9 < $var35)
                                    $var35 = $var35 - 1 | 0;
                                $var9 = $var22 + $var30;
                                $var36 = $var9 | 0;
                                if ($var9 < $var36)
                                    $var36 = $var36 - 1 | 0;
                                $var9 = $var24 + $var28;
                                $var37 = $var9 | 0;
                                if ($var9 < $var37)
                                    $var37 = $var37 - 1 | 0;
                            }
                            $var39 = ($var32 + 0.5 - $var20) / $var28;
                            $var9 = $var39 * $var39;
                            if ($var9 >= 1.0)
                                continue;
                            else
                                break;
                        }
                        $var41 = $var33;
                    }
                    $var42 = ($var41 + 0.5 - $var22) / $var30;
                    $var39 = $var9 + $var42 * $var42;
                    if ($var39 >= 1.0)
                        continue;
                    else
                        break;
                }
                $var44 = $var34;
            }
            $var45 = ($var44 + 0.5 - $var24) / $var28;
            if ($var39 + $var45 * $var45 >= 1.0)
                continue;
            else {
                continue main;
            }
        }
        return 1;
    case 2:
        nms_World_setBlock($par1World, $var32, $var41, $var44, var$39, $par3, var$40);
        if ($rt_suspending()) {
            break main;
        }
        d: while (true) {
            $var44 = $var44 + 1 | 0;
            while ($var44 > $var37) {
                while (true) {
                    $var41 = $var41 + 1 | 0;
                    while ($var41 > $var36) {
                        while (true) {
                            $var32 = $var32 + 1 | 0;
                            while ($var32 > $var35) {
                                $var19 = $var19 + 1 | 0;
                                $par3 = $this.$numberOfBlocks;
                                if ($var19 > $par3)
                                    break d;
                                $var9 = $var19;
                                $var39 = var$22 * $var9;
                                $var42 = $par3;
                                $var20 = $var7 + $var39 / $var42;
                                $var22 = $var15 + $var17 * $var9 / $var42;
                                $var24 = $var11 + $var13 * $var9 / $var42;
                                var$28 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par2Random.$seed = var$28;
                                var$17 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$28, $par5))), 27);
                                var$6 = Long_and(Long_add(Long_mul(var$28, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par2Random.$seed = var$6;
                                $var26 = Long_toNumber(Long_add(var$17, Long_fromInt(Long_lo(Long_shru(var$6, $par4))))) * 1.1102230246251565E-16 * $var42 / 16.0;
                                var$8 = $var19 * 3.1415927410125732 / $par3;
                                var$9 = nms_MathHelper_SIN_TABLE.data;
                                $par3 = (var$8 * 10430.3779296875 | 0) & 65535;
                                $var28 = (var$9[$par3] + 1.0) * $var26 + 1.0;
                                $var30 = (var$9[$par3] + 1.0) * $var26 + 1.0;
                                $var28 = $var28 / 2.0;
                                $var9 = $var20 - $var28;
                                $var32 = $var9 | 0;
                                if ($var9 < $var32)
                                    $var32 = $var32 - 1 | 0;
                                $var30 = $var30 / 2.0;
                                $var9 = $var22 - $var30;
                                $var33 = $var9 | 0;
                                if ($var9 < $var33)
                                    $var33 = $var33 - 1 | 0;
                                $var9 = $var24 - $var28;
                                $var34 = $var9 | 0;
                                if ($var9 < $var34)
                                    $var34 = $var34 - 1 | 0;
                                $var9 = $var20 + $var28;
                                $var35 = $var9 | 0;
                                if ($var9 < $var35)
                                    $var35 = $var35 - 1 | 0;
                                $var9 = $var22 + $var30;
                                $var36 = $var9 | 0;
                                if ($var9 < $var36)
                                    $var36 = $var36 - 1 | 0;
                                $var9 = $var24 + $var28;
                                $var37 = $var9 | 0;
                                if ($var9 < $var37)
                                    $var37 = $var37 - 1 | 0;
                            }
                            $var39 = ($var32 + 0.5 - $var20) / $var28;
                            $var9 = $var39 * $var39;
                            if ($var9 >= 1.0)
                                continue;
                            else
                                break;
                        }
                        $var41 = $var33;
                    }
                    $var42 = ($var41 + 0.5 - $var22) / $var30;
                    $var39 = $var9 + $var42 * $var42;
                    if ($var39 >= 1.0)
                        continue;
                    else
                        break;
                }
                $var44 = $var34;
            }
            $var45 = ($var44 + 0.5 - $var24) / $var28;
            if ($var39 + $var45 * $var45 >= 1.0)
                continue;
            else {
                $ptr = 1;
                continue main;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, $var6, var$8, var$9, var$10, $var41, var$12, $var7, $var9, $var11, $var13, var$17, $var15, $var32, $var17, $var19, var$22, $var39, $var42, $var20, $var22, $var24, var$28, $var26, $var28, $var30, $var33, $var34, $var35, $var36, $var37, $var44, $var45, var$39, var$40, $ptr);
},
nms_EntityOwnable = $rt_classWithoutFields(0);
function nms_EntityTameable() {
    nms_EntityAnimal.call(this);
    this.$aiSit = null;
}
let nms_EntityTameable_playTameEffect = ($this, $par1) => {
    let $var3, var$3, var$4, var$5, var$6, var$7;
    $var3 = 0;
    a: {
        while ($var3 < 7) {
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            var$3 = $this.$worldObj;
            var$4 = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$5;
            var$6 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$6;
            var$4.$seed = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1 = 0;
            while (true) {
                var$7 = $rt_compare($par1, var$3.$worldAccesses.$size0);
                if (var$7 >= 0)
                    break;
                if ($par1 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                $par1 = $par1 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    $rt_throw(var$3);
},
nms_EntityTameable_isTamed = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value1 & 4) ? 0 : 1;
},
nms_EntityTameable_setTamed = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    if (!$par1) {
        var$2 = $this.$dataWatcher;
        $par1 = (var$7 & (-5)) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$6 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$10) {
                    var$3 = var$6.$key;
                    if (var$9 !== var$3 && !(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$3 = var$6 === null ? null : var$6.$value0;
        var$6 = var$3.$watchedObject;
        if (!(var$6 instanceof jl_Byte && var$6.$value1 == var$8.$value1 ? 1 : 0)) {
            var$3.$watchedObject = var$8;
            var$3.$watched = 1;
            var$2.$objectChanged = 1;
        }
    } else {
        var$2 = $this.$dataWatcher;
        $par1 = (var$7 | 4) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$6 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$10) {
                    var$3 = var$6.$key;
                    if (var$9 !== var$3 && !(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$3 = var$6 === null ? null : var$6.$value0;
        var$6 = var$3.$watchedObject;
        if (!(var$6 instanceof jl_Byte && var$6.$value1 == var$8.$value1 ? 1 : 0)) {
            var$3.$watchedObject = var$8;
            var$3.$watched = 1;
            var$2.$objectChanged = 1;
        }
    }
},
nms_EntityTameable_isSitting = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value1 & 1) ? 0 : 1;
},
nms_EntityTameable_setSitting = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    if (!$par1) {
        var$2 = $this.$dataWatcher;
        $par1 = (var$7 & (-2)) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$6 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$10) {
                    var$3 = var$6.$key;
                    if (var$9 !== var$3 && !(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$3 = var$6 === null ? null : var$6.$value0;
        var$6 = var$3.$watchedObject;
        if (!(var$6 instanceof jl_Byte && var$6.$value1 == var$8.$value1 ? 1 : 0)) {
            var$3.$watchedObject = var$8;
            var$3.$watched = 1;
            var$2.$objectChanged = 1;
        }
    } else {
        var$2 = $this.$dataWatcher;
        $par1 = (var$7 | 1) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$6 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$10) {
                    var$3 = var$6.$key;
                    if (var$9 !== var$3 && !(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$3 = var$6 === null ? null : var$6.$value0;
        var$6 = var$3.$watchedObject;
        if (!(var$6 instanceof jl_Byte && var$6.$value1 == var$8.$value1 ? 1 : 0)) {
            var$3.$watchedObject = var$8;
            var$3.$watched = 1;
            var$2.$objectChanged = 1;
        }
    }
},
nms_EntityTameable_getOwnerName = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[145];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject;
},
nms_EntityTameable_setOwner = ($this, $par1Str) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    var$3 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[145];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$4 = var$3 === null ? null : var$3.$value0;
    var$3 = var$4.$watchedObject;
    if ($par1Str === var$3)
        var$8 = 1;
    else if (!(var$3 instanceof jl_String))
        var$8 = 0;
    else {
        var$3 = var$3;
        var$8 = $par1Str.$nativeString !== var$3.$nativeString ? 0 : 1;
    }
    if (!var$8) {
        var$4.$watchedObject = $par1Str;
        var$4.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityTameable_func_130012_q = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$worldObj;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[145];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = (var$2 === null ? null : var$2.$value0).$watchedObject;
    var$7 = 0;
    a: {
        b: {
            c: {
                while (true) {
                    var$2 = var$1.$playerEntities;
                    var$8 = $rt_compare(var$7, var$2.$size0);
                    if (var$8 >= 0)
                        break;
                    if (var$7 < 0)
                        break c;
                    if (var$8 >= 0)
                        break c;
                    var$2 = var$2.$array.data[var$7].$username;
                    if (var$3 === var$2)
                        var$8 = 1;
                    else if (!(var$2 instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$2 = var$2;
                        var$8 = var$3.$nativeString !== var$2.$nativeString ? 0 : 1;
                    }
                    if (var$8) {
                        var$1 = var$1.$playerEntities;
                        if (var$7 < 0)
                            break a;
                        if (var$7 >= var$1.$size0)
                            break a;
                        var$1 = var$1.$array.data[var$7];
                        break b;
                    }
                    var$7 = var$7 + 1 | 0;
                }
                var$1 = null;
                break b;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
nms_EntityTameable_getTeam = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $var1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        $var1 = $var1.$elementData.data[0];
        while ($var1 !== null && $var1.$key !== null) {
            $var1 = $var1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = $var1.$elementData.data;
        $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var1 !== null) {
            if ($var1.$origKeyHash == var$3) {
                var$5 = $var1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var1 = $var1.$next3;
        }
    }
    $var1 = $var1 === null ? null : $var1.$value0;
    if (!($var1.$watchedObject.$value1 & 4) ? 0 : 1) {
        $var1 = $this.$worldObj;
        var$5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[145];
        if (var$6 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$3 = var$6.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$3) {
                    var$2 = var$5.$key;
                    if (var$6 !== var$2 && !jl_Integer_equals(var$6, var$2) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$6 = (var$5 === null ? null : var$5.$value0).$watchedObject;
        var$7 = 0;
        a: {
            while (true) {
                var$5 = $var1.$playerEntities;
                var$8 = $rt_compare(var$7, var$5.$size0);
                if (var$8 >= 0) {
                    $var1 = null;
                    break a;
                }
                if (var$7 < 0)
                    break;
                if (var$8 >= 0)
                    break;
                var$5 = var$5.$array.data[var$7].$username;
                if (var$6 === var$5)
                    var$8 = 1;
                else if (!(var$5 instanceof jl_String))
                    var$8 = 0;
                else {
                    var$5 = var$5;
                    var$8 = var$6.$nativeString !== var$5.$nativeString ? 0 : 1;
                }
                if (var$8) {
                    $var1 = $var1.$playerEntities;
                    if (var$7 >= 0 && var$7 < $var1.$size0) {
                        $var1 = $var1.$array.data[var$7];
                        break a;
                    }
                    $var1 = new jl_IndexOutOfBoundsException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var1);
                    $rt_throw($var1);
                }
                var$7 = var$7 + 1 | 0;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var1);
            $rt_throw($var1);
        }
        if ($var1 !== null) {
            var$5 = $var1.$worldObj.$worldScoreboard;
            $var1 = $var1.$username;
            var$5 = var$5.$teamMemberships;
            if ($var1 === null) {
                var$5 = var$5.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                b: {
                    if (!$var1.$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $var1.$nativeString.length)
                                break b;
                            $var1.$hashCode1 = (31 * $var1.$hashCode1 | 0) + $var1.$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$3 = $var1.$hashCode1;
                var$4 = var$5.$elementData.data;
                var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$3) {
                        c: {
                            var$2 = var$5.$key;
                            if ($var1 !== var$2) {
                                if ($var1 === var$2)
                                    var$7 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    var$2 = var$2;
                                    var$7 = $var1.$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break c;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            return var$5 === null ? null : var$5.$value0;
        }
    }
    return null;
},
nms_EntityTameable_isOnSameTeam = ($this, $par1EntityLivingBase) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $var2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                var$6 = $var2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if (!($var2.$watchedObject.$value1 & 4) ? 0 : 1) {
        $var2 = $this.$worldObj;
        var$6 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[145];
        if (var$7 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$4 = var$7.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$4) {
                    var$3 = var$6.$key;
                    if (var$7 !== var$3 && !jl_Integer_equals(var$7, var$3) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$7 = (var$6 === null ? null : var$6.$value0).$watchedObject;
        var$8 = 0;
        a: {
            while (true) {
                var$6 = $var2.$playerEntities;
                var$9 = $rt_compare(var$8, var$6.$size0);
                if (var$9 >= 0) {
                    $var2 = null;
                    break a;
                }
                if (var$8 < 0)
                    break;
                if (var$9 >= 0)
                    break;
                var$6 = var$6.$array.data[var$8].$username;
                if (var$7 === var$6)
                    var$9 = 1;
                else if (!(var$6 instanceof jl_String))
                    var$9 = 0;
                else {
                    var$6 = var$6;
                    var$9 = var$7.$nativeString !== var$6.$nativeString ? 0 : 1;
                }
                if (var$9) {
                    $var2 = $var2.$playerEntities;
                    if (var$8 >= 0 && var$8 < $var2.$size0) {
                        $var2 = $var2.$array.data[var$8];
                        break a;
                    }
                    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                    $par1EntityLivingBase.$suppressionEnabled = 1;
                    $par1EntityLivingBase.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1EntityLivingBase);
                    $rt_throw($par1EntityLivingBase);
                }
                var$8 = var$8 + 1 | 0;
            }
            $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
            $par1EntityLivingBase.$suppressionEnabled = 1;
            $par1EntityLivingBase.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1EntityLivingBase);
            $rt_throw($par1EntityLivingBase);
        }
        if ($par1EntityLivingBase === $var2)
            return 1;
        if ($var2 !== null) {
            $par1EntityLivingBase = $par1EntityLivingBase.$getTeam();
            var$3 = $var2.$worldObj.$worldScoreboard;
            var$6 = $var2.$username;
            var$3 = var$3.$teamMemberships;
            if (var$6 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                b: {
                    if (!var$6.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= var$6.$nativeString.length)
                                break b;
                            var$6.$hashCode1 = (31 * var$6.$hashCode1 | 0) + var$6.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$4 = var$6.$hashCode1;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$4) {
                        var$7 = var$3.$key;
                        if (var$6 !== var$7 && !jl_String_equals(var$6, var$7) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$6 = var$3 === null ? null : var$3.$value0;
            if (var$6 === null)
                var$8 = 0;
            else {
                var$6 = $var2.$worldObj.$worldScoreboard;
                $var2 = $var2.$username;
                var$6 = var$6.$teamMemberships;
                if ($var2 === null) {
                    var$6 = var$6.$elementData.data[0];
                    while (var$6 !== null && var$6.$key !== null) {
                        var$6 = var$6.$next3;
                    }
                } else {
                    c: {
                        if (!$var2.$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $var2.$nativeString.length)
                                    break c;
                                $var2.$hashCode1 = (31 * $var2.$hashCode1 | 0) + $var2.$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $var2.$hashCode1;
                    var$5 = var$6.$elementData.data;
                    var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$6 !== null) {
                        if (var$6.$origKeyHash == var$4) {
                            var$3 = var$6.$key;
                            if ($var2 !== var$3 && !jl_String_equals($var2, var$3) ? 0 : 1)
                                break;
                        }
                        var$6 = var$6.$next3;
                    }
                }
                $var2 = var$6 === null ? null : var$6.$value0;
                var$8 = $par1EntityLivingBase === null ? 0 : $var2 !== $par1EntityLivingBase ? 0 : 1;
            }
            return var$8;
        }
    }
    $par1EntityLivingBase = $par1EntityLivingBase.$getTeam();
    $var2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[144];
    if (var$6 === null)
        $var2 = ju_HashMap_findNullKeyEntry($var2);
    else {
        var$9 = jl_Integer_hashCode0(var$6);
        $var2 = ju_HashMap_findNonNullKeyEntry($var2, var$6, var$9 & ($var2.$elementData.data.length - 1 | 0), var$9);
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    var$8 = !($var2.$watchedObject.$value1 & 4) ? 0 : 1;
    d: {
        if (var$8) {
            $var2 = $this.$worldObj;
            var$6 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = ju_HashMap_entryByKey(var$6, jl_Integer_integerCache.data[145]);
            var$7 = (var$6 === null ? null : var$6.$value0).$watchedObject;
            var$8 = 0;
            e: {
                while (true) {
                    var$6 = $var2.$playerEntities;
                    var$9 = $rt_compare(var$8, var$6.$size0);
                    if (var$9 >= 0) {
                        var$3 = null;
                        break e;
                    }
                    if (var$8 < 0)
                        break;
                    if (var$9 >= 0)
                        break;
                    var$6 = var$6.$array.data[var$8].$username;
                    if (var$7 === var$6)
                        var$9 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$9 = 0;
                    else {
                        var$6 = var$6;
                        var$9 = var$7.$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (var$9) {
                        $var2 = $var2.$playerEntities;
                        if (var$8 >= 0 && var$8 < $var2.$size0) {
                            var$3 = $var2.$array.data[var$8];
                            break e;
                        }
                        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_($par1EntityLivingBase);
                        $rt_throw($par1EntityLivingBase);
                    }
                    var$8 = var$8 + 1 | 0;
                }
                $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                jl_RuntimeException__init_($par1EntityLivingBase);
                $rt_throw($par1EntityLivingBase);
            }
            if (var$3 !== null) {
                var$6 = var$3.$worldObj.$worldScoreboard;
                $var2 = var$3.$username;
                var$6 = var$6.$teamMemberships;
                if ($var2 === null) {
                    var$6 = var$6.$elementData.data[0];
                    while (var$6 !== null && var$6.$key !== null) {
                        var$6 = var$6.$next3;
                    }
                } else {
                    f: {
                        if (!$var2.$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $var2.$nativeString.length)
                                    break f;
                                $var2.$hashCode1 = (31 * $var2.$hashCode1 | 0) + $var2.$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $var2.$hashCode1;
                    var$5 = var$6.$elementData.data;
                    var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$6 !== null && !(var$6.$origKeyHash == var$4 && ju_HashMap_areEqualKeys($var2, var$6.$key))) {
                        var$6 = var$6.$next3;
                    }
                }
                $var2 = var$6 === null ? null : var$6.$value0;
                break d;
            }
        }
        $var2 = null;
    }
    if ($var2 === null)
        var$8 = 0;
    else {
        $var2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null)
            $var2 = ju_HashMap_findNullKeyEntry($var2);
        else {
            var$9 = jl_Integer_hashCode0(var$6);
            $var2 = ju_HashMap_findNonNullKeyEntry($var2, var$6, var$9 & ($var2.$elementData.data.length - 1 | 0), var$9);
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        var$8 = !($var2.$watchedObject.$value1 & 4) ? 0 : 1;
        g: {
            if (var$8) {
                $var2 = $this.$worldObj;
                var$6 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = ju_HashMap_entryByKey(var$6, jl_Integer_integerCache.data[145]);
                var$7 = (var$6 === null ? null : var$6.$value0).$watchedObject;
                var$8 = 0;
                h: {
                    while (true) {
                        var$6 = $var2.$playerEntities;
                        var$9 = $rt_compare(var$8, var$6.$size0);
                        if (var$9 >= 0) {
                            $var2 = null;
                            break h;
                        }
                        if (var$8 < 0)
                            break;
                        if (var$9 >= 0)
                            break;
                        var$6 = var$6.$array.data[var$8].$username;
                        if (var$7 === var$6)
                            var$9 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$9 = 0;
                        else {
                            var$3 = var$6;
                            var$9 = var$7.$nativeString !== var$3.$nativeString ? 0 : 1;
                        }
                        if (var$9) {
                            $var2 = $var2.$playerEntities;
                            if (var$8 >= 0 && var$8 < $var2.$size0) {
                                $var2 = $var2.$array.data[var$8];
                                break h;
                            }
                            $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                            jl_RuntimeException__init_($par1EntityLivingBase);
                            $rt_throw($par1EntityLivingBase);
                        }
                        var$8 = var$8 + 1 | 0;
                    }
                    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_($par1EntityLivingBase);
                    $rt_throw($par1EntityLivingBase);
                }
                if ($var2 !== null) {
                    var$6 = $var2.$worldObj.$worldScoreboard;
                    $var2 = $var2.$username;
                    var$6 = var$6.$teamMemberships;
                    if ($var2 === null) {
                        var$6 = var$6.$elementData.data[0];
                        while (var$6 !== null && var$6.$key !== null) {
                            var$6 = var$6.$next3;
                        }
                    } else {
                        i: {
                            if (!$var2.$hashCode1) {
                                var$8 = 0;
                                while (true) {
                                    if (var$8 >= $var2.$nativeString.length)
                                        break i;
                                    $var2.$hashCode1 = (31 * $var2.$hashCode1 | 0) + $var2.$nativeString.charCodeAt(var$8) | 0;
                                    var$8 = var$8 + 1 | 0;
                                }
                            }
                        }
                        var$4 = $var2.$hashCode1;
                        var$5 = var$6.$elementData.data;
                        var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$6 !== null && !(var$6.$origKeyHash == var$4 && ju_HashMap_areEqualKeys($var2, var$6.$key))) {
                            var$6 = var$6.$next3;
                        }
                    }
                    $var2 = var$6 === null ? null : var$6.$value0;
                    break g;
                }
            }
            $var2 = null;
        }
        var$8 = $par1EntityLivingBase === null ? 0 : $var2 !== $par1EntityLivingBase ? 0 : 1;
    }
    return var$8;
},
nms_EntityTameable_getOwner = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$worldObj;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[145];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = (var$2 === null ? null : var$2.$value0).$watchedObject;
    var$7 = 0;
    a: {
        b: {
            c: {
                while (true) {
                    var$2 = var$1.$playerEntities;
                    var$8 = $rt_compare(var$7, var$2.$size0);
                    if (var$8 >= 0)
                        break;
                    if (var$7 < 0)
                        break c;
                    if (var$8 >= 0)
                        break c;
                    var$2 = var$2.$array.data[var$7].$username;
                    if (var$3 === var$2)
                        var$8 = 1;
                    else if (!(var$2 instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$2 = var$2;
                        var$8 = var$3.$nativeString !== var$2.$nativeString ? 0 : 1;
                    }
                    if (var$8) {
                        var$1 = var$1.$playerEntities;
                        if (var$7 < 0)
                            break a;
                        if (var$7 >= var$1.$size0)
                            break a;
                        var$1 = var$1.$array.data[var$7];
                        break b;
                    }
                    var$7 = var$7 + 1 | 0;
                }
                var$1 = null;
                break b;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
};
function nms_EntityWolf() {
    let a = this; nms_EntityTameable.call(a);
    a.$field_70926_e = 0.0;
    a.$field_70924_f = 0.0;
    a.$isShaking = 0;
    a.$field_70928_h = 0;
    a.$timeWolfIsShaking = 0.0;
    a.$prevTimeWolfIsShaking = 0.0;
}
let nms_EntityWolf__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $par1World = new nms_EntityAISit;
        $par1World.$theEntity8 = $this;
        $par1World.$mutexBits = 5;
        $this.$aiSit = $par1World;
        $this.$field_98056_d = 0.6000000238418579;
        $this.$field_98057_e = 0.800000011920929;
        var$2 = 0.6000000238418579;
        var$3 = 0.800000011920929;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$navigator;
        var$4.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAISwimming;
        var$5.$theEntity3 = $this;
        var$5.$mutexBits = 4;
        var$4.$canSwim = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = $this.$aiSit;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 2;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAILeapAtTarget;
        var$5.$leaper = $this;
        var$5.$leapMotionY = 0.4000000059604645;
        var$5.$mutexBits = 5;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 3;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIAttackOnCollide;
        var$5.$attacker = $this;
        var$5.$worldObj17 = $this.$worldObj;
        var$5.$field_75440_e = 1.0;
        var$5.$longMemory = 1;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 4;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIFollowOwner;
        var$5.$thePet = $this;
        var$5.$theWorld1 = $this.$worldObj;
        var$5.$field_75336_f = 1.0;
        var$5.$petPathfinder = $this.$navigator;
        var$5.$minDist = 10.0;
        var$5.$maxDist = 2.0;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 5;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIMate;
        var$5.$theAnimal = $this;
        var$5.$theWorld2 = $this.$worldObj;
        var$5.$moveSpeed = 1.0;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 6;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWander;
        var$5.$entity = $this;
        var$5.$speed = 1.0;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 7;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIBeg;
        var$5.$theWolf = $this;
        var$5.$worldObject = $this.$worldObj;
        var$5.$minPlayerDistance = 8.0;
        var$5.$mutexBits = 2;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 8;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWatchClosest;
        var$5.$theWatcher = $this;
        var$5.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$5.$maxDistanceForPlayer = 8.0;
        var$5.$field_75331_e = 0.019999999552965164;
        var$5.$mutexBits = 2;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 9;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAILookIdle;
        var$5.$idleEntity = $this;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 9;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$9 = var$6.$size0;
        var$6.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$5 = new nms_EntityAIOwnerHurtByTarget;
        var$5.$taskOwner = $this;
        var$5.$shouldCheckSight = 0;
        var$5.$nearbyOnly = 0;
        var$5.$theDefendingTameable = $this;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$5 = new nms_EntityAIOwnerHurtTarget;
        var$5.$taskOwner = $this;
        var$5.$shouldCheckSight = 0;
        var$5.$nearbyOnly = 0;
        var$5.$theEntityTameable = $this;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 2;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$5 = new nms_EntityAIHurtByTarget;
        var$5.$taskOwner = $this;
        var$5.$shouldCheckSight = 0;
        var$5.$nearbyOnly = 0;
        var$5.$entityCallsForHelp = 1;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 3;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$5 = new nms_EntityAITargetNonTamed;
        var$6 = null;
        var$5.$taskOwner = $this;
        var$5.$shouldCheckSight = 0;
        var$5.$nearbyOnly = 0;
        var$5.$targetClass = $rt_cls(nms_EntitySheep);
        var$5.$targetChance = 200;
        var$4 = new nms_EntityAINearestAttackableTargetSorter;
        var$4.$theEntity5 = $this;
        var$5.$theNearestAttackableTargetSorter = var$4;
        var$5.$mutexBits = 1;
        var$4 = new nms_EntityAINearestAttackableTargetSelector;
        var$4.$field_111102_d = var$5;
        var$4.$field_111103_c = var$6;
        var$5.$targetEntitySelector = var$4;
        var$5.$theTameable = $this;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 4;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        nms_EntityWolf_setTamed($this, 0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityWolf__init_0 = var_0 => {
    let var_1 = new nms_EntityWolf();
    nms_EntityWolf__init_(var_1, var_0);
    return var_1;
},
nms_EntityWolf_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (0.30000001192092896 !== var$3.$baseValue) {
        var$3.$baseValue = 0.30000001192092896;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    if (!nms_EntityTameable_isTamed($this)) {
        var$1 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2 = $this.$attributeMap.$attributes;
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            b: {
                var$3 = var$1.$field_111115_a;
                if (!var$3.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$3.$nativeString.length)
                            break b;
                        var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$3.$hashCode1;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$5) {
                    var$3 = var$2.$key;
                    if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$1 = var$2 === null ? null : var$2.$value0;
        if (8.0 !== var$1.$baseValue) {
            var$1.$baseValue = 8.0;
            var$1.$field_111133_g = 1;
            var$2 = var$1.$field_111138_a;
            if (var$1.$field_111136_b.$shouldWatch) {
                var$2 = var$2.$field_111162_d;
                ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
            }
        }
    } else {
        var$1 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2 = $this.$attributeMap.$attributes;
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                var$3 = var$1.$field_111115_a;
                if (!var$3.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$3.$nativeString.length)
                            break c;
                        var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$5 = var$3.$hashCode1;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$5) {
                    var$3 = var$2.$key;
                    if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$1 = var$2 === null ? null : var$2.$value0;
        if (20.0 !== var$1.$baseValue) {
            var$1.$baseValue = 20.0;
            var$1.$field_111133_g = 1;
            var$2 = var$1.$field_111138_a;
            if (var$1.$field_111136_b.$shouldWatch) {
                var$2 = var$2.$field_111162_d;
                ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
            }
        }
    }
},
nms_EntityWolf_isAIEnabled = $this => {
    return 1;
},
nms_EntityWolf_setAttackTarget = ($this, $par1EntityLivingBase) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $this.$attackTarget = $par1EntityLivingBase;
    if ($par1EntityLivingBase === null) {
        $par1EntityLivingBase = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
            while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                $par1EntityLivingBase = $par1EntityLivingBase.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $par1EntityLivingBase.$elementData.data;
            $par1EntityLivingBase = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($par1EntityLivingBase !== null) {
                if ($par1EntityLivingBase.$origKeyHash == var$3) {
                    var$5 = $par1EntityLivingBase.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityLivingBase = $par1EntityLivingBase.$next3;
            }
        }
        var$6 = ($par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0).$watchedObject.$value1;
        $par1EntityLivingBase = $this.$dataWatcher;
        var$6 = (var$6 & (-3)) << 24 >> 24;
        var$7 = jl_Byte_byteCache.data[var$6 + 128 | 0];
        var$5 = $par1EntityLivingBase.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$3 = var$8.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$3) {
                    var$2 = var$5.$key;
                    if (var$8 !== var$2 && !(var$8 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$2 = var$5 === null ? null : var$5.$value0;
        var$5 = var$2.$watchedObject;
        if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$7.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$7;
            var$2.$watched = 1;
            $par1EntityLivingBase.$objectChanged = 1;
        }
    } else if (!nms_EntityTameable_isTamed($this)) {
        $par1EntityLivingBase = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
            while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                $par1EntityLivingBase = $par1EntityLivingBase.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $par1EntityLivingBase.$elementData.data;
            $par1EntityLivingBase = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($par1EntityLivingBase !== null) {
                if ($par1EntityLivingBase.$origKeyHash == var$3) {
                    var$5 = $par1EntityLivingBase.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityLivingBase = $par1EntityLivingBase.$next3;
            }
        }
        var$6 = ($par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0).$watchedObject.$value1;
        $par1EntityLivingBase = $this.$dataWatcher;
        var$6 = (var$6 | 2) << 24 >> 24;
        var$7 = jl_Byte_byteCache.data[var$6 + 128 | 0];
        var$5 = $par1EntityLivingBase.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$3 = var$8.$value;
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$3) {
                    var$2 = var$5.$key;
                    if (var$8 !== var$2 && !(var$8 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$2 = var$5 === null ? null : var$5.$value0;
        var$5 = var$2.$watchedObject;
        if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$7.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$7;
            var$2.$watched = 1;
            $par1EntityLivingBase.$objectChanged = 1;
        }
    }
},
nms_EntityWolf_updateAITick = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$dataWatcher;
    var$2 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[134];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value3;
    var$8 = new jl_Float;
    var$8.$value3 = var$7;
    var$2 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[146];
    if (var$6 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$9 = var$6.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$9 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$9) {
                var$3 = var$2.$key;
                if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$9 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    var$2 = var$3.$watchedObject;
    if (var$8 === var$2)
        var$4 = 1;
    else
        a: {
            if (var$2 instanceof jl_Float) {
                var$10 = var$8.$value3;
                var$7 = var$2.$value3;
                if (var$10 !== var$10 ? (var$7 === var$7 ? 0 : 1) : $rt_floatToRawIntBits(var$10) != $rt_floatToRawIntBits(var$7) ? 0 : 1) {
                    var$4 = 1;
                    break a;
                }
            }
            var$4 = 0;
        }
    if (!var$4) {
        var$3.$watchedObject = var$8;
        var$3.$watched = 1;
        var$1.$objectChanged = 1;
    }
},
nms_EntityWolf_entityInit = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 12, var$1);
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 17, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Float;
    var$3 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[134];
    if (var$4 === null) {
        var$5 = var$3.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        var$6 = var$4.$value;
        var$7 = var$3.$elementData.data;
        var$5 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$6) {
                var$3 = var$5.$key;
                if (var$4 !== var$3 && !(var$4 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$5 = var$5.$next3;
        }
    }
    var$1.$value3 = (var$5 === null ? null : var$5.$value0).$watchedObject.$value3;
    nms_DataWatcher_addObject(var$2, 18, var$1);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Byte;
    var$2.$value1 = 0;
    nms_DataWatcher_addObject(var$1, 19, var$2);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Byte;
    var$2.$value1 = 14;
    nms_DataWatcher_addObject(var$1, 20, var$2);
},
nms_EntityWolf_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2276);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityWolf_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[140];
    if (var$3 === null)
        var$2 = ju_HashMap_findNullKeyEntry(var$2);
    else {
        var$4 = jl_Integer_hashCode0(var$3);
        var$2 = ju_HashMap_findNonNullKeyEntry(var$2, var$3, var$4 & (var$2.$elementData.data.length - 1 | 0), var$4);
    }
    var$5 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2201);
    var$2.$data = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2201), var$2);
    var$5 = $this.$inLove;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2202);
    var$2.$data = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2202), var$2);
    if (nms_EntityTameable_getOwnerName($this) === null) {
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagString;
        var$3.$name = $rt_s(2277);
        var$3.$data1 = $rt_s(3);
        ju_HashMap_putImpl(var$6, $rt_s(2277), var$3);
    } else {
        var$2 = nms_EntityTameable_getOwnerName($this);
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagString;
        var$3.$name = $rt_s(2277);
        var$3.$data1 = var$2;
        if (var$2 === null) {
            var$7 = new jl_IllegalArgumentException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            var$7.$message = $rt_s(177);
            $rt_throw(var$7);
        }
        ju_HashMap_putImpl(var$6, $rt_s(2277), var$3);
    }
    var$5 = (!nms_EntityTameable_isSitting($this) ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagByte;
    var$2.$name = $rt_s(2278);
    var$2.$data0 = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2278), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$5 = var$3.$value;
        var$8 = var$2.$elementData.data;
        var$2 = var$8[var$5 & (var$8.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    var$5 = (!(!(var$2.$watchedObject.$value1 & 2) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagByte;
    var$2.$name = $rt_s(2279);
    var$2.$data0 = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2279), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[148];
    if (var$6 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$6.$value;
        var$8 = var$2.$elementData.data;
        var$2 = var$8[var$4 & (var$8.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$3 = var$2.$key;
                if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$5 = ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1 & 15) << 24 >> 24;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2280);
    $par1NBTTagCompound.$data0 = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2280), $par1NBTTagCompound);
},
nms_EntityWolf_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2201).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2201).$nativeString.length)
                        break a;
                    $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2201).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if ($rt_s(2201) !== var$6 && !jl_String_equals($rt_s(2201), var$6) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$7 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2201) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                b: {
                    if (!$rt_s(2201).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2201).$nativeString.length)
                                break b;
                            $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2201).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if ($rt_s(2201) !== var$6 && !jl_String_equals($rt_s(2201), var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$7 = (var$2 === null ? null : var$2.$value0).$data;
        }
        var$8 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$7;
        }
        var$6 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null)
            var$6 = ju_HashMap_findNullKeyEntry(var$6);
        else {
            var$7 = jl_Integer_hashCode0(var$9);
            var$6 = ju_HashMap_findNonNullKeyEntry(var$6, var$9, var$7 & (var$6.$elementData.data.length - 1 | 0), var$7);
        }
        var$9 = var$6 === null ? null : var$6.$value0;
        var$6 = var$9.$watchedObject;
        if (!(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$10 = !((ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(12))).$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$11 = $this.$field_98056_d * var$10;
        var$10 = $this.$field_98057_e * var$10;
        $ptr = 2;
    case 2:
        a: {
            nms_Entity_setSize($this, var$11, var$10);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2202).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2202).$nativeString.length)
                        break a;
                    $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2202).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                c: {
                    var$6 = var$2.$key;
                    if ($rt_s(2202) !== var$6) {
                        if ($rt_s(2202) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break c;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2202) !== null) {
                d: {
                    if (!$rt_s(2202).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2202).$nativeString.length)
                                break d;
                            $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2202).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        e: {
                            var$6 = var$2.$key;
                            if ($rt_s(2202) !== var$6) {
                                if ($rt_s(2202) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break e;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        f: {
            $this.$inLove = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2277).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2277).$nativeString.length)
                        break f;
                    $rt_s(2277).$hashCode1 = (31 * $rt_s(2277).$hashCode1 | 0) + $rt_s(2277).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2277).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                g: {
                    var$6 = var$2.$key;
                    if ($rt_s(2277) !== var$6) {
                        if ($rt_s(2277) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(2277).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break g;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$8 = $rt_s(3);
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2277) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                h: {
                    if (!$rt_s(2277).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2277).$nativeString.length)
                                break h;
                            $rt_s(2277).$hashCode1 = (31 * $rt_s(2277).$hashCode1 | 0) + $rt_s(2277).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2277).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        i: {
                            var$6 = var$2.$key;
                            if ($rt_s(2277) !== var$6) {
                                if ($rt_s(2277) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2277).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break i;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$8 = (var$2 === null ? null : var$2.$value0).$data1;
        }
        if (var$8.$nativeString.length > 0) {
            nms_EntityTameable_setOwner($this, var$8);
            nms_EntityWolf_setTamed($this, 1);
        }
        j: {
            var$2 = $this.$aiSit;
            var$6 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2278).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2278).$nativeString.length)
                        break j;
                    $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2278).$hashCode1;
        var$5 = var$6.$elementData.data;
        var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$4) {
                k: {
                    var$9 = var$6.$key;
                    if ($rt_s(2278) !== var$9) {
                        if ($rt_s(2278) === var$9)
                            var$3 = 1;
                        else if (!(var$9 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$9 = var$9;
                            var$3 = $rt_s(2278).$nativeString !== var$9.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break k;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$6 = var$6.$next3;
        }
        if (!(var$6 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$6 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2278) !== null) {
                l: {
                    if (!$rt_s(2278).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2278).$nativeString.length)
                                break l;
                            $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2278).$hashCode1;
                var$5 = var$6.$elementData.data;
                var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$4) {
                        m: {
                            var$9 = var$6.$key;
                            if ($rt_s(2278) !== var$9) {
                                if ($rt_s(2278) !== var$9) {
                                    if (var$9 instanceof jl_String) {
                                        var$9 = var$9;
                                        var$3 = $rt_s(2278).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break m;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            } else {
                var$6 = var$6.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            }
            var$3 = (var$6 === null ? null : var$6.$value0).$data0;
        }
        var$3 = !var$3 ? 0 : 1;
        n: {
            var$2.$isSitting0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2278).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2278).$nativeString.length)
                        break n;
                    $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2278).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                o: {
                    var$6 = var$2.$key;
                    if ($rt_s(2278) !== var$6) {
                        if ($rt_s(2278) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(2278).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break o;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2278) !== null) {
                p: {
                    if (!$rt_s(2278).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2278).$nativeString.length)
                                break p;
                            $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2278).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        q: {
                            var$6 = var$2.$key;
                            if ($rt_s(2278) !== var$6) {
                                if ($rt_s(2278) !== var$6) {
                                    if (!(var$6 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2278).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break q;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        }
        var$3 = !var$3 ? 0 : 1;
        r: {
            nms_EntityTameable_setSitting($this, var$3);
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2279).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2279).$nativeString.length)
                        break r;
                    $rt_s(2279).$hashCode1 = (31 * $rt_s(2279).$hashCode1 | 0) + $rt_s(2279).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2279).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                s: {
                    var$6 = var$2.$key;
                    if ($rt_s(2279) !== var$6) {
                        if ($rt_s(2279) === var$6)
                            var$7 = 1;
                        else if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2279).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                        if (!var$7) {
                            var$7 = 0;
                            break s;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2279) !== null) {
                t: {
                    if (!$rt_s(2279).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2279).$nativeString.length)
                                break t;
                            $rt_s(2279).$hashCode1 = (31 * $rt_s(2279).$hashCode1 | 0) + $rt_s(2279).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2279).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        u: {
                            var$6 = var$2.$key;
                            if ($rt_s(2279) !== var$6) {
                                if ($rt_s(2279) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$7 = $rt_s(2279).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$7 = 0;
                                } else
                                    var$7 = 1;
                                if (!var$7) {
                                    var$7 = 0;
                                    break u;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            var$3 = 0;
        var$3 = !var$3 ? 0 : 1;
        var$8 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 !== null) {
            var$12 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$12 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$12) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !(var$6 !== var$2 ? (var$2 instanceof jl_Integer && var$2.$value == var$12 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        } else {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        }
        var$7 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
        if (!var$3) {
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 & (-3)) << 24 >> 24;
            var$13 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[144];
            if (var$9 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$9.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$9 !== var$6 && !(var$9 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$13.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$13;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        } else {
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 | 2) << 24 >> 24;
            var$13 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[144];
            if (var$9 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$9.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$9 !== var$6 && !(var$9 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$13.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$13;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        }
        v: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2280).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2280).$nativeString.length)
                        break v;
                    $rt_s(2280).$hashCode1 = (31 * $rt_s(2280).$hashCode1 | 0) + $rt_s(2280).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2280).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                w: {
                    var$6 = var$2.$key;
                    if ($rt_s(2280) !== var$6) {
                        if ($rt_s(2280) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2280).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break w;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            x: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2280).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2280).$nativeString.length)
                            break x;
                        $rt_s(2280).$hashCode1 = (31 * $rt_s(2280).$hashCode1 | 0) + $rt_s(2280).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2280).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    y: {
                        var$6 = var$2.$key;
                        if ($rt_s(2280) !== var$6) {
                            if ($rt_s(2280) === var$6)
                                var$7 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$6 = var$6;
                                var$7 = $rt_s(2280).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break y;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$7 = 0;
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2280) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    z: {
                        if (!$rt_s(2280).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2280).$nativeString.length)
                                    break z;
                                $rt_s(2280).$hashCode1 = (31 * $rt_s(2280).$hashCode1 | 0) + $rt_s(2280).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$3 = $rt_s(2280).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$5[var$3 & (var$5.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$3) {
                            ba: {
                                var$2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2280) !== var$2) {
                                    if ($rt_s(2280) === var$2)
                                        var$7 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        var$2 = var$2;
                                        var$7 = $rt_s(2280).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break ba;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                var$7 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
            }
            $par1NBTTagCompound = $this.$dataWatcher;
            var$3 = (var$7 & 15) << 24 >> 24;
            var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$8 = $par1NBTTagCompound.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[148];
            if (var$6 === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                var$4 = var$6.$value;
                var$5 = var$8.$elementData.data;
                var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$4) {
                        var$2 = var$8.$key;
                        if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$2 = var$8 === null ? null : var$8.$value0;
            var$8 = var$2.$watchedObject;
            if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$9.$value1 ? 1 : 0)) {
                var$2.$watchedObject = var$9;
                var$2.$watched = 1;
                $par1NBTTagCompound.$objectChanged = 1;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityWolf_getLivingSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$6 = !(var$1.$watchedObject.$value1 & 2) ? 0 : 1;
    a: {
        if (var$6)
            var$1 = $rt_s(2281);
        else {
            var$1 = $this.$rand;
            var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$7;
            var$3 = Long_lo(Long_shru(var$7, 17));
            while (true) {
                var$8 = var$3 % 3 | 0;
                if (((var$3 - var$8 | 0) + 2 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$7;
                var$3 = Long_lo(Long_shru(var$7, 17));
            }
            if (var$8)
                var$1 = $rt_s(2282);
            else {
                if (nms_EntityTameable_isTamed($this)) {
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[146];
                    if (var$5 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$6 = var$5.$value;
                        var$4 = var$1.$elementData.data;
                        var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$6) {
                                var$2 = var$1.$key;
                                if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 < 10.0) {
                        var$1 = $rt_s(2283);
                        break a;
                    }
                }
                var$1 = $rt_s(2284);
            }
        }
    }
    return var$1;
},
nms_EntityWolf_getHurtSound = $this => {
    return $rt_s(2285);
},
nms_EntityWolf_getDeathSound = $this => {
    return $rt_s(2286);
},
nms_EntityWolf_getSoundVolume = $this => {
    return 0.4000000059604645;
},
nms_EntityWolf_getDropItemId = $this => {
    return (-1);
},
nms_EntityWolf_onLivingUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityAnimal_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && $this.$isShaking && !$this.$field_70928_h && !($this.$pathToEntity === null ? 0 : 1) && $this.$onGround) {
            $this.$field_70928_h = 1;
            $this.$timeWolfIsShaking = 0.0;
            $this.$prevTimeWolfIsShaking = 0.0;
            var$2 = new nms_Packet38EntityStatus;
            var$3 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$entityId0 = var$3;
            var$2.$entityStatus = 8;
            var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
            var$4 = $this.$entityId;
            var$3 = var$4 ^ (var$4 >>> 20 | 0) ^ (var$4 >>> 12 | 0);
            var$5 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
            var$6 = var$1.$slots.data;
            var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
            a: {
                while (var$1 !== null) {
                    if (var$1.$hashEntry == var$4) {
                        var$1 = var$1.$valueEntry;
                        break a;
                    }
                    var$1 = var$1.$nextEntry0;
                }
                var$1 = null;
            }
            var$1 = var$1;
            if (var$1 !== null) {
                var$7 = var$1.$trackingPlayers.$backingMap;
                if (var$7.$cachedKeySet === null) {
                    var$8 = new ju_HashMap$1;
                    var$8.$this$0 = var$7;
                    ju_AbstractCollection__init_(var$8);
                    var$7.$cachedKeySet = var$8;
                }
                var$9 = var$7.$cachedKeySet.$iterator();
                var$3 = var$2 instanceof nms_Packet3Chat;
                var$8 = var$2;
                while (var$9.$hasNext()) {
                    b: {
                        var$7 = (var$9.$next()).$playerNetServerHandler;
                        if (var$3) {
                            var$10 = var$7.$playerEntity.$chatVisibility;
                            if (var$10 == 2)
                                break b;
                            if (var$10 == 1 && !var$8.$isServer)
                                break b;
                        }
                        try {
                            var$7 = var$7.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$7 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$11 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$11);
                            jl_System_errCache = var$11;
                        }
                        jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                    }
                }
                var$1 = var$1.$myEntity;
                if (var$1 instanceof nms_EntityPlayerMP)
                    c: {
                        var$1 = var$1.$playerNetServerHandler;
                        if (var$3) {
                            var$3 = var$1.$playerEntity.$chatVisibility;
                            if (var$3 == 2)
                                break c;
                            if (var$3 == 1 && !var$8.$isServer)
                                break c;
                        }
                        try {
                            var$1 = var$1.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
            }
        }
        return;
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$11);
        }
        a: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break a;
                var$7 = (var$9.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                var$10 = var$7.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$8.$isServer)
                    break;
            }
            try {
                var$7 = var$7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$11);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            e: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$3) {
                    var$3 = var$1.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break e;
                    if (var$3 == 1 && !var$8.$isServer)
                        break e;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 3:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityWolf_onUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, $var3, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var3 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote) {
            $ptr = 2;
            continue main;
        }
        $this.$field_70924_f = $this.$field_70926_e;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[147];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value1 != 1 ? 0 : 1)) {
            var$6 = $this.$field_70926_e;
            $this.$field_70926_e = var$6 + (0.0 - var$6) * 0.4000000059604645;
        } else {
            var$7 = $this.$field_70926_e;
            $this.$field_70926_e = var$7 + (1.0 - var$7) * 0.4000000059604645;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[147];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (var$1.$watchedObject.$value1 != 1 ? 0 : 1)
            $this.$numTicksToChaseTarget = 10;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_70924_f = $this.$field_70926_e;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[147];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value1 != 1 ? 0 : 1)) {
            var$6 = $this.$field_70926_e;
            $this.$field_70926_e = var$6 + (0.0 - var$6) * 0.4000000059604645;
        } else {
            var$7 = $this.$field_70926_e;
            $this.$field_70926_e = var$7 + (1.0 - var$7) * 0.4000000059604645;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[147];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (var$1.$watchedObject.$value1 != 1 ? 0 : 1)
            $this.$numTicksToChaseTarget = 10;
        $ptr = 3;
    case 3:
        a: {
            b: {
                $tmp = nms_Entity_isWet($this);
                if ($rt_suspending()) {
                    break main;
                }
                $var2 = $tmp;
                if ($var2) {
                    $this.$isShaking = 1;
                    $this.$field_70928_h = 0;
                    $this.$timeWolfIsShaking = 0.0;
                    $this.$prevTimeWolfIsShaking = 0.0;
                } else if (!(!$this.$isShaking && !$this.$field_70928_h) && $this.$field_70928_h) {
                    if ($this.$timeWolfIsShaking === 0.0) {
                        var$1 = $rt_s(2287);
                        var$9 = 0.4000000059604645;
                        var$5 = $this.$rand;
                        var$10 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$5.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
                        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$5.$seed = var$12;
                        var$7 = (var$11 - Long_lo(Long_shru(var$12, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0;
                        var$5 = $this.$worldObj;
                        $ptr = 4;
                        continue main;
                    }
                    var$7 = $this.$timeWolfIsShaking;
                    $this.$prevTimeWolfIsShaking = var$7;
                    $this.$timeWolfIsShaking = var$7 + 0.05000000074505806;
                    if (var$7 >= 2.0) {
                        $this.$isShaking = 0;
                        $this.$field_70928_h = 0;
                        $this.$prevTimeWolfIsShaking = 0.0;
                        $this.$timeWolfIsShaking = 0.0;
                    }
                    var$7 = $this.$timeWolfIsShaking;
                    if (var$7 > 0.4000000059604645) {
                        var$7 = (var$7 - 0.4000000059604645) * 3.1415927410125732;
                        $var2 = nms_MathHelper_SIN_TABLE.data[(var$7 * 10430.3779296875 | 0) & 65535] * 7.0 | 0;
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $var2)
                                break b;
                            var$1 = $this.$rand;
                            var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$1.$seed = var$10;
                            var$1.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$1 = $this.$worldObj;
                            var$3 = 0;
                            while (true) {
                                var$14 = $rt_compare(var$3, var$1.$worldAccesses.$size0);
                                if (var$14 >= 0)
                                    break;
                                if (var$3 < 0)
                                    break a;
                                if (var$14 >= 0)
                                    break a;
                                var$3 = var$3 + 1 | 0;
                            }
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 4:
        nms_World_playSoundAtEntity(var$5, $this, var$1, var$9, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$timeWolfIsShaking;
        $this.$prevTimeWolfIsShaking = var$7;
        $this.$timeWolfIsShaking = var$7 + 0.05000000074505806;
        if (var$7 >= 2.0) {
            $this.$isShaking = 0;
            $this.$field_70928_h = 0;
            $this.$prevTimeWolfIsShaking = 0.0;
            $this.$timeWolfIsShaking = 0.0;
        }
        a: {
            b: {
                var$7 = $this.$timeWolfIsShaking;
                if (var$7 > 0.4000000059604645) {
                    var$7 = (var$7 - 0.4000000059604645) * 3.1415927410125732;
                    $var2 = nms_MathHelper_SIN_TABLE.data[(var$7 * 10430.3779296875 | 0) & 65535] * 7.0 | 0;
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $var2)
                            break b;
                        var$1 = $this.$rand;
                        var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1.$seed = var$10;
                        var$1.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1 = $this.$worldObj;
                        var$3 = 0;
                        while (true) {
                            var$14 = $rt_compare(var$3, var$1.$worldAccesses.$size0);
                            if (var$14 >= 0)
                                break;
                            if (var$3 < 0)
                                break a;
                            if (var$14 >= 0)
                                break a;
                            var$3 = var$3 + 1 | 0;
                        }
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            return;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, $var3, var$14, $ptr);
},
nms_EntityWolf_getEyeHeight = $this => {
    return $this.$height0 * 0.800000011920929;
},
nms_EntityWolf_getVerticalFaceSpeed = $this => {
    return nms_EntityTameable_isSitting($this) ? 20 : 40;
},
nms_EntityWolf_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        $this.$aiSit.$isSitting0 = 0;
        if ($var3 !== null && !($var3 instanceof nms_EntityPlayer) && !($var3 instanceof nms_EntityArrow))
            $par2 = ($par2 + 1.0) / 2.0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, var$4, $ptr);
},
nms_EntityWolf_attackEntityAsMob = ($this, $par1Entity) => {
    let $var2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = !nms_EntityTameable_isTamed($this) ? 2 : 4;
        var$3 = new nms_EntityDamageSource;
        var$3.$hungerDamage = 0.30000001192092896;
        var$3.$damageType = $rt_s(2288);
        var$3.$damageSourceEntity = $this;
        var$4 = $var2;
        $ptr = 1;
    case 1:
        $tmp = $par1Entity.$attackEntityFrom(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var2, var$3, var$4, $ptr);
},
nms_EntityWolf_setTamed = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_EntityTameable_setTamed($this, $par1);
    if (!$par1) {
        var$2 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if (var$2 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                var$4 = var$2.$field_111115_a;
                if (!var$4.$hashCode1) {
                    $par1 = 0;
                    while (true) {
                        if ($par1 >= var$4.$nativeString.length)
                            break a;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt($par1) | 0;
                        $par1 = $par1 + 1 | 0;
                    }
                }
            }
            var$5 = var$4.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$4 = var$3.$key;
                    if (var$2 !== var$4 && !jl_Object_equals(var$2, var$4) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$2 = var$3 === null ? null : var$3.$value0;
        if (8.0 !== var$2.$baseValue) {
            var$2.$baseValue = 8.0;
            var$2.$field_111133_g = 1;
            var$3 = var$2.$field_111138_a;
            if (var$2.$field_111136_b.$shouldWatch) {
                var$3 = var$3.$field_111162_d;
                ju_HashMap_putImpl(var$3.$backingMap, var$2, var$3);
            }
        }
    } else {
        var$2 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if (var$2 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            b: {
                var$4 = var$2.$field_111115_a;
                if (!var$4.$hashCode1) {
                    $par1 = 0;
                    while (true) {
                        if ($par1 >= var$4.$nativeString.length)
                            break b;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt($par1) | 0;
                        $par1 = $par1 + 1 | 0;
                    }
                }
            }
            var$5 = var$4.$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$4 = var$3.$key;
                    if (var$2 !== var$4 && !jl_Object_equals(var$2, var$4) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$2 = var$3 === null ? null : var$3.$value0;
        if (20.0 !== var$2.$baseValue) {
            var$2.$baseValue = 20.0;
            var$2.$field_111133_g = 1;
            var$3 = var$2.$field_111138_a;
            if (var$2.$field_111136_b.$shouldWatch) {
                var$3 = var$3.$field_111162_d;
                ju_HashMap_putImpl(var$3.$backingMap, var$2, var$3);
            }
        }
    }
},
nms_EntityWolf_interact = ($this, $par1EntityPlayer) => {
    let $var3, var$3, $var2, var$5, var$6, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1EntityPlayer.$inventory0;
        var$3 = $var3.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? $var3.$mainInventory.data[var$3] : null;
        a: {
            if (!nms_EntityTameable_isTamed($this)) {
                if ($var2 === null)
                    break a;
                var$5 = $var2.$itemID;
                nms_Item_$callClinit();
                if (var$5 != nms_Item_bone.$itemID0)
                    break a;
                $var3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 !== null) {
                    $var4 = var$6.$value;
                    var$8 = $var3.$elementData.data;
                    $var3 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == $var4) {
                            var$9 = $var3.$key;
                            if (var$6 !== var$9 && !(var$6 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var4 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                } else {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                }
                $var3 = $var3 === null ? null : $var3.$value0;
                if (!($var3.$watchedObject.$value1 & 2) ? 0 : 1)
                    break a;
                if (!$par1EntityPlayer.$capabilities.$isCreativeMode)
                    $var2.$stackSize = $var2.$stackSize - 1 | 0;
                if ($var2.$stackSize <= 0) {
                    $var3 = $par1EntityPlayer.$inventory0;
                    var$5 = $var3.$currentItem;
                    var$9 = null;
                    var$8 = $var3.$mainInventory;
                    var$3 = var$8.data.length;
                    if (var$5 >= var$3) {
                        var$5 = var$5 - var$3 | 0;
                        var$8 = $var3.$armorInventory;
                    }
                    var$8.data[var$5] = var$9;
                }
                if (!$this.$worldObj.$isRemote) {
                    $var3 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$10;
                    $var4 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$11 = $var4 % 3 | 0;
                        if ((($var4 - var$11 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var3.$seed = var$10;
                        $var4 = Long_lo(Long_shru(var$10, 17));
                    }
                    if (var$11) {
                        nms_EntityTameable_playTameEffect($this, 0);
                        $par1EntityPlayer = $this.$worldObj;
                        $var3 = new nms_Packet38EntityStatus;
                        var$3 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var3.$entityId0 = var$3;
                        $var3.$entityStatus = 6;
                        $par1EntityPlayer = $par1EntityPlayer.$theEntityTracker.$trackedEntityIDs;
                        var$5 = $this.$entityId;
                        var$3 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$11 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
                        var$8 = $par1EntityPlayer.$slots.data;
                        $par1EntityPlayer = var$8[var$11 & (var$8.length - 1 | 0)];
                        b: {
                            while ($par1EntityPlayer !== null) {
                                if ($par1EntityPlayer.$hashEntry == var$5) {
                                    $par1EntityPlayer = $par1EntityPlayer.$valueEntry;
                                    break b;
                                }
                                $par1EntityPlayer = $par1EntityPlayer.$nextEntry0;
                            }
                            $par1EntityPlayer = null;
                        }
                        $par1EntityPlayer = $par1EntityPlayer;
                        if ($par1EntityPlayer !== null) {
                            var$9 = $par1EntityPlayer.$trackingPlayers.$backingMap;
                            if (var$9.$cachedKeySet === null) {
                                $var2 = new ju_HashMap$1;
                                $var2.$this$0 = var$9;
                                ju_AbstractCollection__init_($var2);
                                var$9.$cachedKeySet = $var2;
                            }
                            var$12 = var$9.$cachedKeySet.$iterator();
                            var$3 = $var3 instanceof nms_Packet3Chat;
                            $var2 = $var3;
                            while (var$12.$hasNext()) {
                                c: {
                                    var$9 = (var$12.$next()).$playerNetServerHandler;
                                    if (var$3) {
                                        $var4 = var$9.$playerEntity.$chatVisibility;
                                        if ($var4 == 2)
                                            break c;
                                        if ($var4 == 1 && !$var2.$isServer)
                                            break c;
                                    }
                                    try {
                                        var$9 = var$9.$netManager;
                                        $ptr = 2;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$9 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$6 = new otcic_JSStderrPrintStream;
                                        otcic_JsConsolePrintStream__init_(var$6);
                                        jl_System_errCache = var$6;
                                    }
                                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                                }
                            }
                            $par1EntityPlayer = $par1EntityPlayer.$myEntity;
                            if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
                                d: {
                                    $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                                    if (var$3) {
                                        var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                                        if (var$3 == 2)
                                            break d;
                                        if (var$3 == 1 && !$var2.$isServer)
                                            break d;
                                    }
                                    try {
                                        $par1EntityPlayer = $par1EntityPlayer.$netManager;
                                        $ptr = 3;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $par1EntityPlayer = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var3 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = $var3;
                                    }
                                    jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
                                }
                        }
                    } else {
                        nms_EntityTameable_setTamed($this, 1);
                        $var3 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        var$9 = $this.$attributeMap.$attributes;
                        if ($var3 === null) {
                            var$9 = var$9.$elementData.data[0];
                            while (var$9 !== null && var$9.$key !== null) {
                                var$9 = var$9.$next3;
                            }
                        } else {
                            $var4 = jl_String_hashCode($var3.$field_111115_a);
                            var$8 = var$9.$elementData.data;
                            var$9 = var$8[$var4 & (var$8.length - 1 | 0)];
                            while (var$9 !== null && !(var$9.$origKeyHash == $var4 && ju_HashMap_areEqualKeys($var3, var$9.$key))) {
                                var$9 = var$9.$next3;
                            }
                        }
                        $var3 = var$9 === null ? null : var$9.$value0;
                        if (20.0 !== $var3.$baseValue) {
                            $var3.$baseValue = 20.0;
                            $var3.$field_111133_g = 1;
                            var$9 = $var3.$field_111138_a;
                            if ($var3.$field_111136_b.$shouldWatch) {
                                var$9 = var$9.$field_111162_d;
                                ju_HashMap_putImpl(var$9.$backingMap, $var3, var$9);
                            }
                        }
                        $this.$pathToEntity = null;
                        $this.$attackTarget = null;
                        $var3 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[144];
                        if (var$9 === null) {
                            $var3 = $var3.$elementData.data[0];
                            while ($var3 !== null && $var3.$key !== null) {
                                $var3 = $var3.$next3;
                            }
                        } else {
                            var$5 = var$9.$value;
                            var$8 = $var3.$elementData.data;
                            $var3 = var$8[var$5 & (var$8.length - 1 | 0)];
                            while ($var3 !== null) {
                                if ($var3.$origKeyHash == var$5) {
                                    $var2 = $var3.$key;
                                    if (var$9 !== $var2 && !jl_Integer_equals(var$9, $var2) ? 0 : 1)
                                        break;
                                }
                                $var3 = $var3.$next3;
                            }
                        }
                        var$3 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value1;
                        $var3 = $this.$dataWatcher;
                        var$3 = (var$3 & (-3)) << 24 >> 24;
                        $var2 = jl_Byte_byteCache.data[var$3 + 128 | 0];
                        var$6 = $var3.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[144];
                        if (var$9 === null) {
                            var$6 = var$6.$elementData.data[0];
                            while (var$6 !== null && var$6.$key !== null) {
                                var$6 = var$6.$next3;
                            }
                        } else {
                            var$5 = var$9.$value;
                            var$8 = var$6.$elementData.data;
                            var$6 = var$8[var$5 & (var$8.length - 1 | 0)];
                            while (var$6 !== null) {
                                if (var$6.$origKeyHash == var$5) {
                                    var$12 = var$6.$key;
                                    if (var$9 !== var$12 && !jl_Integer_equals(var$9, var$12) ? 0 : 1)
                                        break;
                                }
                                var$6 = var$6.$next3;
                            }
                        }
                        var$6 = var$6 === null ? null : var$6.$value0;
                        var$9 = var$6.$watchedObject;
                        if (!(var$9 instanceof jl_Byte && var$9.$value1 == $var2.$value1 ? 1 : 0)) {
                            var$6.$watchedObject = $var2;
                            var$6.$watched = 1;
                            $var3.$objectChanged = 1;
                        }
                        $this.$aiSit.$isSitting0 = 1;
                        var$13 = 20.0;
                        $var3 = $this.$dataWatcher;
                        var$9 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var2 = $this.$attributeMap.$attributes;
                        if (var$9 === null)
                            var$9 = ju_HashMap_findNullKeyEntry($var2);
                        else {
                            var$3 = nms_BaseAttribute_hashCode(var$9);
                            var$9 = ju_HashMap_findNonNullKeyEntry($var2, var$9, var$3 & ($var2.$elementData.data.length - 1 | 0), var$3);
                        }
                        var$9 = var$9 === null ? null : var$9.$value0;
                        if (var$9.$field_111133_g) {
                            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                            var$9.$field_111133_g = 0;
                        }
                        var$14 = var$9.$field_111139_h;
                        if (var$13 > var$14)
                            var$13 = var$14;
                        var$12 = new jl_Float;
                        var$12.$value3 = var$13;
                        var$9 = $var3.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[134];
                        if (var$6 === null) {
                            var$9 = var$9.$elementData.data[0];
                            while (var$9 !== null && var$9.$key !== null) {
                                var$9 = var$9.$next3;
                            }
                        } else {
                            $var4 = var$6.$value;
                            var$8 = var$9.$elementData.data;
                            var$9 = var$8[$var4 & (var$8.length - 1 | 0)];
                            while (var$9 !== null) {
                                if (var$9.$origKeyHash == $var4) {
                                    $var2 = var$9.$key;
                                    if (var$6 !== $var2 && !(var$6 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == $var4 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$9 = var$9.$next3;
                            }
                        }
                        $var2 = var$9 === null ? null : var$9.$value0;
                        var$9 = $var2.$watchedObject;
                        if (var$12 === var$9)
                            var$5 = 1;
                        else
                            e: {
                                if (var$9 instanceof jl_Float) {
                                    var$13 = var$12.$value3;
                                    var$14 = var$9.$value3;
                                    if (var$13 !== var$13 ? (var$14 === var$14 ? 0 : 1) : $rt_floatToRawIntBits(var$13) != $rt_floatToRawIntBits(var$14) ? 0 : 1) {
                                        var$5 = 1;
                                        break e;
                                    }
                                }
                                var$5 = 0;
                            }
                        if (!var$5) {
                            $var2.$watchedObject = var$12;
                            $var2.$watched = 1;
                            $var3.$objectChanged = 1;
                        }
                        nms_EntityTameable_setOwner($this, $par1EntityPlayer.$username);
                        nms_EntityTameable_playTameEffect($this, 1);
                        $par1EntityPlayer = $this.$worldObj;
                        $var3 = new nms_Packet38EntityStatus;
                        var$3 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var3.$entityId0 = var$3;
                        $var3.$entityStatus = 7;
                        $par1EntityPlayer = $par1EntityPlayer.$theEntityTracker.$trackedEntityIDs;
                        var$5 = $this.$entityId;
                        var$3 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                        var$11 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
                        var$8 = $par1EntityPlayer.$slots.data;
                        $par1EntityPlayer = var$8[var$11 & (var$8.length - 1 | 0)];
                        f: {
                            while ($par1EntityPlayer !== null) {
                                if ($par1EntityPlayer.$hashEntry == var$5) {
                                    $par1EntityPlayer = $par1EntityPlayer.$valueEntry;
                                    break f;
                                }
                                $par1EntityPlayer = $par1EntityPlayer.$nextEntry0;
                            }
                            $par1EntityPlayer = null;
                        }
                        $par1EntityPlayer = $par1EntityPlayer;
                        if ($par1EntityPlayer !== null) {
                            var$9 = $par1EntityPlayer.$trackingPlayers.$backingMap;
                            if (var$9.$cachedKeySet === null) {
                                $var2 = new ju_HashMap$1;
                                $var2.$this$0 = var$9;
                                ju_AbstractCollection__init_($var2);
                                var$9.$cachedKeySet = $var2;
                            }
                            var$12 = var$9.$cachedKeySet.$iterator();
                            var$3 = $var3 instanceof nms_Packet3Chat;
                            $var2 = $var3;
                            while (var$12.$hasNext()) {
                                g: {
                                    var$9 = (var$12.$next()).$playerNetServerHandler;
                                    if (var$3) {
                                        $var4 = var$9.$playerEntity.$chatVisibility;
                                        if ($var4 == 2)
                                            break g;
                                        if ($var4 == 1 && !$var2.$isServer)
                                            break g;
                                    }
                                    try {
                                        var$9 = var$9.$netManager;
                                        $ptr = 4;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$9 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$6 = new otcic_JSStderrPrintStream;
                                        otcic_JsConsolePrintStream__init_(var$6);
                                        jl_System_errCache = var$6;
                                    }
                                    jl_Throwable_printStackTrace(var$9, jl_System_errCache);
                                }
                            }
                            $par1EntityPlayer = $par1EntityPlayer.$myEntity;
                            if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
                                h: {
                                    $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                                    if (var$3) {
                                        var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                                        if (var$3 == 2)
                                            break h;
                                        if (var$3 == 1 && !$var2.$isServer)
                                            break h;
                                    }
                                    try {
                                        $par1EntityPlayer = $par1EntityPlayer.$netManager;
                                        $ptr = 5;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $par1EntityPlayer = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var3 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = $var3;
                                    }
                                    jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
                                }
                        }
                    }
                }
                return 1;
            }
            i: {
                if ($var2 !== null) {
                    nms_Item_$callClinit();
                    var$8 = nms_Item_itemsList.data;
                    var$5 = $var2.$itemID;
                    if (!(var$8[var$5] instanceof nms_ItemFood)) {
                        if (var$5 != nms_Item_dyePowder.$itemID0)
                            break i;
                        $var4 = ($var2.$itemDamage ^ (-1)) & 15;
                        $var3 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$6 = jl_Integer_integerCache.data[148];
                        if (var$6 === null) {
                            $var3 = $var3.$elementData.data[0];
                            while ($var3 !== null && $var3.$key !== null) {
                                $var3 = $var3.$next3;
                            }
                        } else {
                            var$11 = var$6.$value;
                            var$8 = $var3.$elementData.data;
                            $var3 = var$8[var$11 & (var$8.length - 1 | 0)];
                            while ($var3 !== null) {
                                if ($var3.$origKeyHash == var$11) {
                                    var$9 = $var3.$key;
                                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$11 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var3 = $var3.$next3;
                            }
                        }
                        if ($var4 == (($var3 === null ? null : $var3.$value0).$watchedObject.$value1 & 15))
                            break i;
                        $var3 = $this.$dataWatcher;
                        var$5 = ($var4 & 15) << 24 >> 24;
                        var$15 = jl_Byte_byteCache.data[var$5 + 128 | 0];
                        var$9 = $var3.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$12 = jl_Integer_integerCache.data[148];
                        if (var$12 === null) {
                            var$9 = var$9.$elementData.data[0];
                            while (var$9 !== null && var$9.$key !== null) {
                                var$9 = var$9.$next3;
                            }
                        } else {
                            $var4 = var$12.$value;
                            var$8 = var$9.$elementData.data;
                            var$9 = var$8[$var4 & (var$8.length - 1 | 0)];
                            while (var$9 !== null) {
                                if (var$9.$origKeyHash == $var4) {
                                    var$6 = var$9.$key;
                                    if (var$12 !== var$6 && !(var$12 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var4 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$9 = var$9.$next3;
                            }
                        }
                        var$6 = var$9 === null ? null : var$9.$value0;
                        var$9 = var$6.$watchedObject;
                        if (!(var$9 instanceof jl_Byte && var$9.$value1 == var$15.$value1 ? 1 : 0)) {
                            var$6.$watchedObject = var$15;
                            var$6.$watched = 1;
                            $var3.$objectChanged = 1;
                        }
                        if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                            var$5 = $var2.$stackSize - 1 | 0;
                            $var2.$stackSize = var$5;
                            if (var$5 <= 0) {
                                $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                                var$5 = $par1EntityPlayer.$currentItem;
                                $var3 = null;
                                var$8 = $par1EntityPlayer.$mainInventory;
                                var$3 = var$8.data.length;
                                if (var$5 >= var$3) {
                                    var$5 = var$5 - var$3 | 0;
                                    var$8 = $par1EntityPlayer.$armorInventory;
                                }
                                var$8.data[var$5] = $var3;
                            }
                        }
                        return 1;
                    }
                    $var3 = var$8[var$5];
                    if ($var3.$isWolfsFavoriteMeat) {
                        var$9 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$12 = jl_Integer_integerCache.data[146];
                        if (var$12 === null) {
                            var$9 = var$9.$elementData.data[0];
                            while (var$9 !== null && var$9.$key !== null) {
                                var$9 = var$9.$next3;
                            }
                        } else {
                            $var4 = var$12.$value;
                            var$8 = var$9.$elementData.data;
                            var$9 = var$8[$var4 & (var$8.length - 1 | 0)];
                            while (var$9 !== null) {
                                if (var$9.$origKeyHash == $var4) {
                                    var$6 = var$9.$key;
                                    if (var$12 !== var$6 && !(var$12 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var4 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$9 = var$9.$next3;
                            }
                        }
                        if ((var$9 === null ? null : var$9.$value0).$watchedObject.$value3 < 20.0) {
                            if (!$par1EntityPlayer.$capabilities.$isCreativeMode)
                                $var2.$stackSize = $var2.$stackSize - 1 | 0;
                            var$13 = $var3.$healAmount;
                            $var3 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$6 = jl_Integer_integerCache.data[134];
                            if (var$6 === null) {
                                $var3 = $var3.$elementData.data[0];
                                while ($var3 !== null && $var3.$key !== null) {
                                    $var3 = $var3.$next3;
                                }
                            } else {
                                $var4 = var$6.$value;
                                var$8 = $var3.$elementData.data;
                                $var3 = var$8[$var4 & (var$8.length - 1 | 0)];
                                while ($var3 !== null) {
                                    if ($var3.$origKeyHash == $var4) {
                                        var$9 = $var3.$key;
                                        if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                                            break;
                                    }
                                    $var3 = $var3.$next3;
                                }
                            }
                            var$16 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value3;
                            if (var$16 > 0.0) {
                                var$13 = var$16 + var$13;
                                $var3 = $this.$dataWatcher;
                                var$14 = 0.0;
                                var$9 = nms_SharedMonsterAttributes_maxHealth;
                                if ($this.$attributeMap === null)
                                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                                var$9 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$9);
                                var$9 = var$9 === null ? null : var$9.$value0;
                                if (var$9.$field_111133_g) {
                                    var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                                    var$9.$field_111133_g = 0;
                                }
                                var$16 = var$9.$field_111139_h;
                                if (var$13 >= var$14)
                                    var$14 = var$13 <= var$16 ? var$13 : var$16;
                                var$15 = new jl_Float;
                                var$15.$value3 = var$14;
                                var$9 = $var3.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$12 = jl_Integer_integerCache.data[134];
                                if (var$12 === null) {
                                    var$9 = var$9.$elementData.data[0];
                                    while (var$9 !== null && var$9.$key !== null) {
                                        var$9 = var$9.$next3;
                                    }
                                } else {
                                    $var4 = var$12.$value;
                                    var$8 = var$9.$elementData.data;
                                    var$9 = var$8[$var4 & (var$8.length - 1 | 0)];
                                    while (var$9 !== null) {
                                        if (var$9.$origKeyHash == $var4) {
                                            var$6 = var$9.$key;
                                            if (var$12 !== var$6 && !jl_Integer_equals(var$12, var$6) ? 0 : 1)
                                                break;
                                        }
                                        var$9 = var$9.$next3;
                                    }
                                }
                                var$6 = var$9 === null ? null : var$9.$value0;
                                var$9 = var$6.$watchedObject;
                                if (var$15 === var$9)
                                    var$5 = 1;
                                else
                                    j: {
                                        if (var$9 instanceof jl_Float) {
                                            var$13 = var$15.$value3;
                                            var$14 = var$9.$value3;
                                            if (var$13 !== var$13 ? (var$14 === var$14 ? 0 : 1) : $rt_floatToRawIntBits(var$13) != $rt_floatToRawIntBits(var$14) ? 0 : 1) {
                                                var$5 = 1;
                                                break j;
                                            }
                                        }
                                        var$5 = 0;
                                    }
                                if (!var$5) {
                                    var$6.$watchedObject = var$15;
                                    var$6.$watched = 1;
                                    $var3.$objectChanged = 1;
                                }
                            }
                            if ($var2.$stackSize <= 0) {
                                $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                                var$5 = $par1EntityPlayer.$currentItem;
                                $var3 = null;
                                var$8 = $par1EntityPlayer.$mainInventory;
                                var$3 = var$8.data.length;
                                if (var$5 >= var$3) {
                                    var$5 = var$5 - var$3 | 0;
                                    var$8 = $par1EntityPlayer.$armorInventory;
                                }
                                var$8.data[var$5] = $var3;
                            }
                            return 1;
                        }
                    }
                }
            }
            if (jl_String_equalsIgnoreCase($par1EntityPlayer.$username, nms_EntityTameable_getOwnerName($this)) && !$this.$worldObj.$isRemote) {
                if ($var2 === null)
                    var$5 = 0;
                else {
                    nms_Item_$callClinit();
                    var$8 = nms_Item_itemsList.data;
                    var$5 = $var2.$itemID;
                    var$5 = !(var$8[var$5] instanceof nms_ItemFood) ? 0 : var$8[var$5].$isWolfsFavoriteMeat;
                }
                if (!var$5) {
                    $this.$aiSit.$isSitting0 = nms_EntityTameable_isSitting($this) ? 0 : 1;
                    $this.$isJumping = 0;
                    $this.$pathToEntity = null;
                    $this.$entityToAttack = null;
                    $this.$attackTarget = null;
                    $var3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[144];
                    if (var$9 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        var$5 = var$9.$value;
                        var$8 = $var3.$elementData.data;
                        $var3 = var$8[var$5 & (var$8.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$5) {
                                $var2 = $var3.$key;
                                if (var$9 !== $var2 && !jl_Integer_equals(var$9, $var2) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$3 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value1;
                    $var3 = $this.$dataWatcher;
                    var$5 = (var$3 & (-3)) << 24 >> 24;
                    var$12 = jl_Byte_byteCache.data[var$5 + 128 | 0];
                    var$9 = $var3.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[144];
                    if (var$6 === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        $var4 = var$6.$value;
                        var$8 = var$9.$elementData.data;
                        var$9 = var$8[$var4 & (var$8.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == $var4) {
                                $var2 = var$9.$key;
                                if (var$6 !== $var2 && !jl_Integer_equals(var$6, $var2) ? 0 : 1)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    $var2 = var$9 === null ? null : var$9.$value0;
                    var$9 = $var2.$watchedObject;
                    if (!(var$9 instanceof jl_Byte && var$9.$value1 == var$12.$value1 ? 1 : 0)) {
                        $var2.$watchedObject = var$12;
                        $var2.$watched = 1;
                        $var3.$objectChanged = 1;
                    }
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    case 2:
        k: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$9, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break k;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$6);
        }
        a: while (true) {
            while (true) {
                if (!var$12.$hasNext())
                    break a;
                var$9 = (var$12.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                $var4 = var$9.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if ($var2.$isServer)
                    break;
            }
            try {
                var$9 = var$9.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$6);
        }
        $par1EntityPlayer = $par1EntityPlayer.$myEntity;
        if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
            l: {
                $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                if (var$3) {
                    var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break l;
                    if (var$3 == 1 && !$var2.$isServer)
                        break l;
                }
                try {
                    $par1EntityPlayer = $par1EntityPlayer.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayer = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var3;
                }
                jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
            }
        return 1;
    case 3:
        k: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break k;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var3;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 4:
        k: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$9, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break k;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$6);
        }
        a: while (true) {
            while (true) {
                if (!var$12.$hasNext())
                    break a;
                var$9 = (var$12.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                $var4 = var$9.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if ($var2.$isServer)
                    break;
            }
            try {
                var$9 = var$9.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$9, var$6);
        }
        $par1EntityPlayer = $par1EntityPlayer.$myEntity;
        if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
            l: {
                $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                if (var$3) {
                    var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break l;
                    if (var$3 == 1 && !$var2.$isServer)
                        break l;
                }
                try {
                    $par1EntityPlayer = $par1EntityPlayer.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayer = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var3;
                }
                jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
            }
        return 1;
    case 5:
        k: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break k;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var3, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var3;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var3, var$3, $var2, var$5, var$6, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityWolf_isBreedingItem = ($this, $par1ItemStack) => {
    let var$2, var$3;
    if ($par1ItemStack === null)
        var$2 = 0;
    else {
        nms_Item_$callClinit();
        var$3 = nms_Item_itemsList.data;
        var$2 = $par1ItemStack.$itemID;
        var$2 = !(var$3[var$2] instanceof nms_ItemFood) ? 0 : var$3[var$2].$isWolfsFavoriteMeat;
    }
    return var$2;
},
nms_EntityWolf_canMateWith = ($this, $par1EntityAnimal) => {
    let $var2, var$3;
    if ($par1EntityAnimal === $this)
        return 0;
    if (!nms_EntityTameable_isTamed($this))
        return 0;
    if (!($par1EntityAnimal instanceof nms_EntityWolf))
        return 0;
    $var2 = $par1EntityAnimal;
    if (!nms_EntityTameable_isTamed($var2))
        var$3 = 0;
    else if (nms_EntityTameable_isSitting($var2))
        var$3 = 0;
    else {
        var$3 = $this.$inLove <= 0 ? 0 : 1;
        var$3 = var$3 && ($var2.$inLove <= 0 ? 0 : 1) ? 1 : 0;
    }
    return var$3;
},
nms_EntityWolf_canDespawn = $this => {
    return !nms_EntityTameable_isTamed($this) && $this.$ticksExisted > 2400 ? 1 : 0;
},
nms_EntityWolf_func_142018_a = ($this, $par1EntityLivingBase, $par2EntityLivingBase) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9;
    if (!($par1EntityLivingBase instanceof nms_EntityCreeper) && !($par1EntityLivingBase instanceof nms_EntityGhast)) {
        if ($par1EntityLivingBase instanceof nms_EntityWolf) {
            $var3 = $par1EntityLivingBase;
            if (nms_EntityTameable_isTamed($var3) && nms_EntityTameable_func_130012_q($var3) === $par2EntityLivingBase)
                return 0;
        }
        a: {
            if ($par1EntityLivingBase instanceof nms_EntityPlayer && $par2EntityLivingBase instanceof nms_EntityPlayer) {
                $var3 = $par1EntityLivingBase;
                if (!$par2EntityLivingBase.$mcServer3.$pvpEnabled)
                    var$4 = 0;
                else {
                    var$5 = $par2EntityLivingBase.$worldObj.$worldScoreboard;
                    $par2EntityLivingBase = $par2EntityLivingBase.$username;
                    var$5 = var$5.$teamMemberships;
                    if ($par2EntityLivingBase === null) {
                        var$5 = var$5.$elementData.data[0];
                        while (var$5 !== null && var$5.$key !== null) {
                            var$5 = var$5.$next3;
                        }
                    } else {
                        b: {
                            if (!$par2EntityLivingBase.$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $par2EntityLivingBase.$nativeString.length)
                                        break b;
                                    $par2EntityLivingBase.$hashCode1 = (31 * $par2EntityLivingBase.$hashCode1 | 0) + $par2EntityLivingBase.$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $par2EntityLivingBase.$hashCode1;
                        var$7 = var$5.$elementData.data;
                        var$5 = var$7[var$6 & (var$7.length - 1 | 0)];
                        while (var$5 !== null) {
                            if (var$5.$origKeyHash == var$6) {
                                var$8 = var$5.$key;
                                if ($par2EntityLivingBase !== var$8 && !jl_String_equals($par2EntityLivingBase, var$8) ? 0 : 1)
                                    break;
                            }
                            var$5 = var$5.$next3;
                        }
                    }
                    var$8 = var$5 === null ? null : var$5.$value0;
                    var$5 = $var3.$worldObj.$worldScoreboard;
                    $par2EntityLivingBase = $var3.$username;
                    $var3 = var$5.$teamMemberships;
                    if ($par2EntityLivingBase === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        c: {
                            if (!$par2EntityLivingBase.$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $par2EntityLivingBase.$nativeString.length)
                                        break c;
                                    $par2EntityLivingBase.$hashCode1 = (31 * $par2EntityLivingBase.$hashCode1 | 0) + $par2EntityLivingBase.$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$6 = $par2EntityLivingBase.$hashCode1;
                        var$7 = $var3.$elementData.data;
                        $var3 = var$7[var$6 & (var$7.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$6) {
                                var$5 = $var3.$key;
                                if ($par2EntityLivingBase !== var$5 && !jl_String_equals($par2EntityLivingBase, var$5) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    $par2EntityLivingBase = $var3 === null ? null : $var3.$value0;
                    var$4 = var$8 === null ? 1 : !($par2EntityLivingBase === null ? 0 : var$8 !== $par2EntityLivingBase ? 0 : 1) ? 1 : var$8.$allowFriendlyFire;
                }
                if (!var$4) {
                    var$4 = 0;
                    break a;
                }
            }
            if ($par1EntityLivingBase instanceof nms_EntityHorse) {
                $par1EntityLivingBase = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var3 = jl_Integer_integerCache.data[144];
                if ($var3 === null) {
                    $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
                    while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                    }
                } else {
                    var$9 = $var3.$value;
                    var$7 = $par1EntityLivingBase.$elementData.data;
                    $par1EntityLivingBase = var$7[var$9 & (var$7.length - 1 | 0)];
                    while ($par1EntityLivingBase !== null) {
                        if ($par1EntityLivingBase.$origKeyHash == var$9) {
                            $par2EntityLivingBase = $par1EntityLivingBase.$key;
                            if ($var3 !== $par2EntityLivingBase && !jl_Integer_equals($var3, $par2EntityLivingBase) ? 0 : 1)
                                break;
                        }
                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                    }
                }
                $par1EntityLivingBase = $par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0;
                if (!($par1EntityLivingBase.$watchedObject.$value & 2) ? 0 : 1) {
                    var$4 = 0;
                    break a;
                }
            }
            var$4 = 1;
        }
        return var$4;
    }
    return 0;
},
nms_EntityWolf_createChild = ($this, $par1EntityAgeable) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityWolf;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityWolf__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nms_EntityTameable_getOwnerName($this);
        if (var$2 !== null && (jl_String_trim(var$2)).$nativeString.length > 0) {
            nms_EntityTameable_setOwner($par1EntityAgeable, var$2);
            nms_EntityTameable_setTamed($par1EntityAgeable, 1);
            var$2 = nms_SharedMonsterAttributes_maxHealth;
            if ($par1EntityAgeable.$attributeMap === null)
                $par1EntityAgeable.$attributeMap = nms_ServersideAttributeMap__init_();
            var$3 = $par1EntityAgeable.$attributeMap.$attributes;
            if (var$2 === null)
                var$2 = ju_HashMap_findNullKeyEntry(var$3);
            else {
                var$4 = nms_BaseAttribute_hashCode(var$2);
                var$2 = ju_HashMap_findNonNullKeyEntry(var$3, var$2, var$4 & (var$3.$elementData.data.length - 1 | 0), var$4);
            }
            var$5 = var$2 === null ? null : var$2.$value0;
            if (20.0 !== var$5.$baseValue) {
                var$5.$baseValue = 20.0;
                var$5.$field_111133_g = 1;
                var$2 = var$5.$field_111138_a;
                if (var$5.$field_111136_b.$shouldWatch) {
                    var$2 = var$2.$field_111162_d;
                    ju_HashMap_putImpl(var$2.$backingMap, var$5, var$2);
                }
            }
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, var$3, var$4, var$5, $ptr);
},
nms_IMob = $rt_classWithoutFields(0),
nms_IMob_mobSelector = null,
nms_IMob__clinit_ = () => {
    nms_IMob_mobSelector = new nms_FilterIMob;
};
function nms_EntitySlime() {
    let a = this; nms_EntityLiving.call(a);
    a.$squishAmount = 0.0;
    a.$squishFactor = 0.0;
    a.$prevSquishFactor = 0.0;
    a.$slimeJumpDelay = 0;
}
let nms_EntitySlime_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 1;
    nms_DataWatcher_addObject(var$2, 16, var$1);
},
nms_EntitySlime_setSlimeSize = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$dataWatcher;
        var$3 = new jl_Byte;
        var$3.$value1 = $par1 << 24 >> 24;
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$6 = var$5.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    var$8 = var$4.$key;
                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        var$8 = var$4.$watchedObject;
        if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$3.$value1 ? 1 : 0)) {
            var$4.$watchedObject = var$3;
            var$4.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$9 = 0.6000000238418579 * $par1;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$9, var$9);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
        var$3 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $this.$attributeMap.$attributes;
        if (var$3 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            a: {
                var$8 = var$3.$field_111115_a;
                if (!var$8.$hashCode1) {
                    var$10 = 0;
                    while (true) {
                        if (var$10 >= var$8.$nativeString.length)
                            break a;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$10) | 0;
                        var$10 = var$10 + 1 | 0;
                    }
                }
            }
            var$6 = var$8.$hashCode1;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    var$8 = var$4.$key;
                    if (var$3 !== var$8 && !jl_Object_equals(var$3, var$8) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$3 = var$4 === null ? null : var$4.$value0;
        var$11 = $rt_imul($par1, $par1);
        if (var$11 !== var$3.$baseValue) {
            var$3.$baseValue = var$11;
            var$3.$field_111133_g = 1;
            var$4 = var$3.$field_111138_a;
            if (var$3.$field_111136_b.$shouldWatch) {
                var$4 = var$4.$field_111162_d;
                ju_HashMap_putImpl(var$4.$backingMap, var$3, var$4);
            }
        }
        var$3 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$4 = $this.$attributeMap.$attributes;
        if (var$3 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$6 = jl_String_hashCode(var$3.$field_111115_a);
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null && !(var$4.$origKeyHash == var$6 && ju_HashMap_areEqualKeys(var$3, var$4.$key))) {
                var$4 = var$4.$next3;
            }
        }
        var$3 = var$4 === null ? null : var$4.$value0;
        if (var$3.$field_111133_g) {
            var$3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$3);
            var$3.$field_111133_g = 0;
        }
        var$12 = var$3.$field_111139_h;
        var$3 = $this.$dataWatcher;
        var$9 = 0.0;
        var$4 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$8 = $this.$attributeMap.$attributes;
        if (var$4 === null)
            var$4 = ju_HashMap_findNullKeyEntry(var$8);
        else {
            var$13 = nms_BaseAttribute_hashCode(var$4);
            var$4 = ju_HashMap_findNonNullKeyEntry(var$8, var$4, var$13 & (var$8.$elementData.data.length - 1 | 0), var$13);
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        if (var$4.$field_111133_g) {
            var$4.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$4);
            var$4.$field_111133_g = 0;
        }
        var$14 = var$4.$field_111139_h;
        if (var$12 >= var$9)
            var$9 = var$12 <= var$14 ? var$12 : var$14;
        var$4 = new jl_Float;
        var$4.$value3 = var$9;
        var$8 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[134];
        if (var$2 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$6 = var$2.$value;
            var$7 = var$8.$elementData.data;
            var$8 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$6) {
                    var$5 = var$8.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$5 = var$8 === null ? null : var$8.$value0;
        var$8 = var$5.$watchedObject;
        if (var$4 === var$8)
            var$10 = 1;
        else
            b: {
                if (var$8 instanceof jl_Float) {
                    var$9 = var$4.$value3;
                    var$14 = var$8.$value3;
                    if (var$9 !== var$9 ? (var$14 === var$14 ? 0 : 1) : $rt_floatToRawIntBits(var$9) != $rt_floatToRawIntBits(var$14) ? 0 : 1) {
                        var$10 = 1;
                        break b;
                    }
                }
                var$10 = 0;
            }
        if (!var$10) {
            var$5.$watchedObject = var$4;
            var$5.$watched = 1;
            var$3.$objectChanged = 1;
        }
        $this.$experienceValue = $par1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntitySlime_getSlimeSize = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
},
nms_EntitySlime_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1 - 1 | 0;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2289);
    $par1NBTTagCompound.$data = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2289), $par1NBTTagCompound);
},
nms_EntitySlime_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2289).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2289).$nativeString.length)
                        break a;
                    $rt_s(2289).$hashCode1 = (31 * $rt_s(2289).$hashCode1 | 0) + $rt_s(2289).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2289).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2289) !== var$6) {
                        if ($rt_s(2289) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2289).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2289) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2289).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2289).$nativeString.length)
                                break c;
                            $rt_s(2289).$hashCode1 = (31 * $rt_s(2289).$hashCode1 | 0) + $rt_s(2289).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2289).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$3) {
                        d: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(2289) !== $par1NBTTagCompound) {
                                if ($rt_s(2289) === $par1NBTTagCompound)
                                    var$4 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$4 = $rt_s(2289).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break d;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$3 = (var$6 === null ? null : var$6.$value0).$data;
        }
        var$4 = var$3 + 1 | 0;
        $ptr = 2;
    case 2:
        nms_EntitySlime_setSlimeSize($this, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntitySlime_getSlimeParticle = $this => {
    return $rt_s(2290);
},
nms_EntitySlime_getJumpSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$1 = var$1.$watchedObject.$value1 <= 1 ? $rt_s(2291) : $rt_s(2292);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2293));
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$6 = var$4.data;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EntitySlime_onUpdate = $this => {
    let var$1, var$2, $var3, var$4, var$5, var$6, $var1, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var1 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && !var$1.$difficultySetting) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                $var3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[$var3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == $var3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1 > 0)
                $this.$isDead = 1;
        }
        var$6 = $this.$squishFactor;
        var$6 = var$6 + ($this.$squishAmount - var$6) * 0.5;
        $this.$squishFactor = var$6;
        $this.$prevSquishFactor = var$6;
        $var1 = $this.$onGround;
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLivingBase_onUpdate($this);
            if ($rt_suspending()) {
                break main;
            }
            if (!$this.$worldObj.$isRemote) {
                if ($this.$field_110170_bx !== null) {
                    $ptr = 2;
                    continue main;
                }
                if ($this.$isLeashed) {
                    var$1 = $this.$leashedToEntity;
                    if (var$1 === null)
                        break a;
                    if (var$1.$isDead)
                        break a;
                }
            }
            b: {
                $var3 = $this.$onGround;
                if ($var3 && !$var1) {
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[144];
                    if (var$5 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$8 = var$5.$value;
                        var$4 = var$1.$elementData.data;
                        var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$8) {
                                var$2 = var$1.$key;
                                if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    $var1 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
                    $var3 = 0;
                    $var1 = $var1 * 8 | 0;
                    c: while (true) {
                        if ($var3 >= $var1) {
                            if ($this.$makesSoundOnLand()) {
                                var$1 = $this.$getJumpSound();
                                var$6 = nms_EntitySlime_getSoundVolume($this);
                                var$2 = $this.$rand;
                                var$9 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$9;
                                var$10 = Long_lo(Long_shru(var$9, 24)) / 1.6777216E7;
                                var$11 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$11;
                                var$12 = ((var$10 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0) / 0.800000011920929;
                                var$2 = $this.$worldObj;
                                $ptr = 5;
                                continue main;
                            }
                            $this.$squishAmount = (-0.5);
                            break b;
                        }
                        var$1 = $this.$rand;
                        var$9 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1.$seed = var$9;
                        var$1.$seed = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1 = $this.$worldObj;
                        $this.$getSlimeParticle();
                        var$8 = 0;
                        while (true) {
                            var$13 = $rt_compare(var$8, var$1.$worldAccesses.$size0);
                            if (var$13 >= 0)
                                break;
                            if (var$8 < 0)
                                break c;
                            if (var$13 >= 0)
                                break c;
                            var$8 = var$8 + 1 | 0;
                        }
                        $var3 = $var3 + 1 | 0;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                } else if (!$var3 && $var1)
                    $this.$squishAmount = 1.0;
            }
            $this.$alterSquishAmount();
            if (!$this.$worldObj.$isRemote)
                return;
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$8 = var$5.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$8) {
                        var$2 = var$1.$key;
                        if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$6 = 0.6000000238418579 * (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
            $ptr = 4;
            continue main;
        }
        $var3 = 1;
        var$8 = 1;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityLiving_recreateLeash($this);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            if ($this.$isLeashed) {
                var$1 = $this.$leashedToEntity;
                if (var$1 === null)
                    break a;
                if (var$1.$isDead)
                    break a;
            }
            d: {
                $var3 = $this.$onGround;
                if ($var3 && !$var1) {
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[144];
                    if (var$5 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$8 = var$5.$value;
                        var$4 = var$1.$elementData.data;
                        var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$8) {
                                var$2 = var$1.$key;
                                if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    $var1 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
                    $var3 = 0;
                    $var1 = $var1 * 8 | 0;
                    e: while (true) {
                        if ($var3 >= $var1) {
                            if ($this.$makesSoundOnLand()) {
                                var$1 = $this.$getJumpSound();
                                var$6 = nms_EntitySlime_getSoundVolume($this);
                                var$2 = $this.$rand;
                                var$9 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$9;
                                var$10 = Long_lo(Long_shru(var$9, 24)) / 1.6777216E7;
                                var$11 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$11;
                                var$12 = ((var$10 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0) / 0.800000011920929;
                                var$2 = $this.$worldObj;
                                $ptr = 5;
                                continue main;
                            }
                            $this.$squishAmount = (-0.5);
                            break d;
                        }
                        var$1 = $this.$rand;
                        var$9 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1.$seed = var$9;
                        var$1.$seed = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$1 = $this.$worldObj;
                        $this.$getSlimeParticle();
                        var$8 = 0;
                        while (true) {
                            var$13 = $rt_compare(var$8, var$1.$worldAccesses.$size0);
                            if (var$13 >= 0)
                                break;
                            if (var$8 < 0)
                                break e;
                            if (var$13 >= 0)
                                break e;
                            var$8 = var$8 + 1 | 0;
                        }
                        $var3 = $var3 + 1 | 0;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                } else if (!$var3 && $var1)
                    $this.$squishAmount = 1.0;
            }
            $this.$alterSquishAmount();
            if (!$this.$worldObj.$isRemote)
                return;
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$8 = var$5.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$8) {
                        var$2 = var$1.$key;
                        if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$6 = 0.6000000238418579 * (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
            $ptr = 4;
            continue main;
        }
        $var3 = 1;
        var$8 = 1;
        $ptr = 3;
    case 3:
        nms_EntityLiving_clearLeashed($this, $var3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        f: {
            $var3 = $this.$onGround;
            if ($var3 && !$var1) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[144];
                if (var$5 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$8 = var$5.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$8) {
                            var$2 = var$1.$key;
                            if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                $var1 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
                $var3 = 0;
                $var1 = $var1 * 8 | 0;
                g: while (true) {
                    if ($var3 >= $var1) {
                        if ($this.$makesSoundOnLand()) {
                            var$1 = $this.$getJumpSound();
                            var$6 = nms_EntitySlime_getSoundVolume($this);
                            var$2 = $this.$rand;
                            var$9 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$9;
                            var$10 = Long_lo(Long_shru(var$9, 24)) / 1.6777216E7;
                            var$11 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$11;
                            var$12 = ((var$10 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0) / 0.800000011920929;
                            var$2 = $this.$worldObj;
                            $ptr = 5;
                            continue main;
                        }
                        $this.$squishAmount = (-0.5);
                        break f;
                    }
                    var$1 = $this.$rand;
                    var$9 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$9;
                    var$1.$seed = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1 = $this.$worldObj;
                    $this.$getSlimeParticle();
                    var$8 = 0;
                    while (true) {
                        var$13 = $rt_compare(var$8, var$1.$worldAccesses.$size0);
                        if (var$13 >= 0)
                            break;
                        if (var$8 < 0)
                            break g;
                        if (var$13 >= 0)
                            break g;
                        var$8 = var$8 + 1 | 0;
                    }
                    $var3 = $var3 + 1 | 0;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            } else if (!$var3 && $var1)
                $this.$squishAmount = 1.0;
        }
        $this.$alterSquishAmount();
        if (!$this.$worldObj.$isRemote)
            return;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$8 = var$5.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$8) {
                    var$2 = var$1.$key;
                    if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$6 = 0.6000000238418579 * (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
        $ptr = 4;
    case 4:
        nms_Entity_setSize($this, var$6, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_playSoundAtEntity(var$2, $this, var$1, var$6, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $this.$squishAmount = (-0.5);
        $this.$alterSquishAmount();
        if (!$this.$worldObj.$isRemote)
            return;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$8 = var$5.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$8) {
                    var$2 = var$1.$key;
                    if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$6 = 0.6000000238418579 * (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var3, var$4, var$5, var$6, $var1, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntitySlime_updateEntityActionState = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLiving_despawnEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 16.0);
        if ($var1 !== null)
            nms_EntityLiving_faceEntity($this, $var1, 10.0, 20.0);
        a: {
            b: {
                var$2 = $this.$onGround;
                if (var$2) {
                    var$3 = $this.$slimeJumpDelay;
                    $this.$slimeJumpDelay = var$3 - 1 | 0;
                    if (var$3 <= 0)
                        break b;
                }
                $this.$isJumping = 0;
                if (!var$2)
                    break a;
                $this.$moveForward = 0.0;
                $this.$moveStrafing = 0.0;
                break a;
            }
            var$2 = $this.$getJumpDelay();
            $this.$slimeJumpDelay = var$2;
            if ($var1 !== null)
                $this.$slimeJumpDelay = var$2 / 3 | 0;
            $this.$isJumping = 1;
            if (nms_EntitySlime_makesSoundOnJump($this)) {
                $var1 = $this.$getJumpSound();
                var$4 = nms_EntitySlime_getSoundVolume($this);
                var$5 = $this.$rand;
                var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$5.$seed = var$6;
                var$7 = Long_lo(Long_shru(var$6, 24)) / 1.6777216E7;
                var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$5.$seed = var$6;
                var$7 = ((var$7 - Long_lo(Long_shru(var$6, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0) * 0.800000011920929;
                var$5 = $this.$worldObj;
                $ptr = 2;
                continue main;
            }
            $var1 = $this.$rand;
            var$6 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var1.$seed = var$6;
            $this.$moveStrafing = 1.0 - Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 * 2.0;
            $var1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$3 = var$5.$value;
                var$8 = $var1.$elementData.data;
                $var1 = var$8[var$3 & (var$8.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$3) {
                        var$9 = $var1.$key;
                        if (var$5 !== var$9 && !(var$5 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $this.$moveForward = 1 * ($var1 === null ? null : $var1.$value0).$watchedObject.$value1 | 0;
        }
        return;
    case 2:
        nms_World_playSoundAtEntity(var$5, $this, $var1, var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$rand;
        var$6 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var1.$seed = var$6;
        $this.$moveStrafing = 1.0 - Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 * 2.0;
        $var1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$3 = var$5.$value;
            var$8 = $var1.$elementData.data;
            $var1 = var$8[var$3 & (var$8.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$3) {
                    var$9 = $var1.$key;
                    if (var$5 !== var$9 && !(var$5 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $this.$moveForward = 1 * ($var1 === null ? null : $var1.$value0).$watchedObject.$value1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntitySlime_alterSquishAmount = $this => {
    $this.$squishAmount = $this.$squishAmount * 0.6000000238418579;
},
nms_EntitySlime_getJumpDelay = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 20 | 0;
        if (((var$3 - var$4 | 0) + 19 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return var$4 + 10 | 0;
},
nms_EntitySlime_createInstance = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = new nms_EntitySlime;
        nms_EntityLiving__init_(var$1, $this.$worldObj);
        var$2 = var$1.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 3 | 0;
            if (((var$4 - var$5 | 0) + 2 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$6 = 1 << var$5;
        var$1.$yOffset = 0.0;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 20 | 0;
            if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$1.$slimeJumpDelay = var$5 + 10 | 0;
        $ptr = 1;
    case 1:
        nms_EntitySlime_setSlimeSize(var$1, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return var$1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntitySlime_setDead = $this => {
    let $var6, var$2, $var2, var$4, var$5, var$6, $var3, var$8, var$9, var$10, var$11, $var4, $var5, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$var6 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            $var6 = $var6.$elementData.data[0];
            while ($var6 !== null && $var6.$key !== null) {
                $var6 = $var6.$next3;
            }
        } else {
            $var2 = var$2.$value;
            var$4 = $var6.$elementData.data;
            $var6 = var$4[$var2 & (var$4.length - 1 | 0)];
            while ($var6 !== null) {
                if ($var6.$origKeyHash == $var2) {
                    var$5 = $var6.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var2 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var6 = $var6.$next3;
            }
        }
        var$6 = ($var6 === null ? null : $var6.$value0).$watchedObject.$value1;
        if (!$this.$worldObj.$isRemote && var$6 > 1) {
            $var6 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$5 = $var6.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                $var3 = var$2.$value;
                var$4 = $var6.$elementData.data;
                var$5 = var$4[$var3 & (var$4.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == $var3) {
                        $var6 = var$5.$key;
                        if (var$2 !== $var6 && !(var$2 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == $var3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            if ((var$5 === null ? null : var$5.$value0).$watchedObject.$value3 <= 0.0) {
                $var6 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$8;
                var$9 = Long_lo(Long_shru(var$8, 17));
                while (true) {
                    var$10 = var$9 % 3 | 0;
                    if (((var$9 - var$10 | 0) + 2 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$8;
                    var$9 = Long_lo(Long_shru(var$8, 17));
                }
                $var2 = 2 + var$10 | 0;
                $var3 = 0;
                var$11 = var$6;
                var$9 = 24;
                if ($var3 < $var2) {
                    $var4 = (($var3 % 2 | 0) - 0.5) * var$11 / 4.0;
                    $var5 = (($var3 / 2 | 0) - 0.5) * var$11 / 4.0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        $this.$isDead = 1;
        return;
    case 1:
        $tmp = $this.$createInstance();
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$14 = var$6 / 2 | 0;
        $ptr = 2;
    case 2:
        nms_EntitySlime_setSlimeSize($var6, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $this.$posX + $var4;
        var$16 = $this.$posY + 0.5;
        var$17 = $this.$posZ + $var5;
        var$2 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$8;
        $var5 = Long_lo(Long_shru(var$8, var$9)) / 1.6777216E7 * 360.0;
        $var6.$posX = var$15;
        $var6.$prevPosX = var$15;
        $var6.$lastTickPosX = var$15;
        var$16 = var$16 + $var6.$yOffset;
        $var6.$posY = var$16;
        $var6.$prevPosY = var$16;
        $var6.$lastTickPosY = var$16;
        $var6.$posZ = var$17;
        $var6.$prevPosZ = var$17;
        $var6.$lastTickPosZ = var$17;
        $var6.$rotationYaw = $var5;
        $var6.$rotationPitch = 0.0;
        nms_Entity_setPosition($var6, var$15, var$16, var$17);
        var$2 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$2, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var3 + 1 | 0;
        if ($var3 >= $var2) {
            $this.$isDead = 1;
            return;
        }
        $var4 = (($var3 % 2 | 0) - 0.5) * var$11 / 4.0;
        $var5 = (($var3 / 2 | 0) - 0.5) * var$11 / 4.0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var6, var$2, $var2, var$4, var$5, var$6, $var3, var$8, var$9, var$10, var$11, $var4, $var5, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntitySlime_onCollideWithPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$canDamagePlayer())
            return;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4) {
            var$8 = $this.$posX - $par1EntityPlayer.$posX;
            var$9 = $this.$posY - $par1EntityPlayer.$posY;
            var$10 = $this.$posZ - $par1EntityPlayer.$posZ;
            var$11 = var$8 * var$8 + var$9 * var$9 + var$10 * var$10;
            var$9 = var$7;
            if (var$11 < 0.6 * var$9 * 0.6 * var$9) {
                var$2 = new nms_EntityDamageSource;
                var$2.$hungerDamage = 0.30000001192092896;
                var$2.$damageType = $rt_s(2288);
                var$2.$damageSourceEntity = $this;
                var$12 = $this.$getAttackStrength();
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_EntityPlayerMP_attackEntityFrom($par1EntityPlayer, var$2, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            return;
        $par1EntityPlayer = $rt_s(2294);
        var$12 = 1.0;
        var$2 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$13;
        var$14 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7;
        var$15 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$15;
        var$16 = (var$14 - Long_lo(Long_shru(var$15, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0;
        var$2 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_playSoundAtEntity(var$2, $this, $par1EntityPlayer, var$12, var$16);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntitySlime_canDamagePlayer = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 <= 1 ? 0 : 1;
},
nms_EntitySlime_getAttackStrength = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
},
nms_EntitySlime_getHurtSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$1 = var$1.$watchedObject.$value1 <= 1 ? $rt_s(2291) : $rt_s(2292);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2293));
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$6 = var$4.data;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EntitySlime_getDeathSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$1 = var$1.$watchedObject.$value1 <= 1 ? $rt_s(2291) : $rt_s(2292);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2293));
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$6 = var$4.data;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EntitySlime_getDropItemId = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    if (var$1.$watchedObject.$value1 != 1)
        var$3 = 0;
    else {
        nms_Item_$callClinit();
        var$3 = nms_Item_slimeBall.$itemID0;
    }
    return var$3;
},
nms_EntitySlime_getCanSpawnHere = $this => {
    let $var2, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$worldObj;
        var$2 = $this.$posX;
        var$3 = var$2 | 0;
        if (var$2 < var$3)
            var$3 = var$3 - 1 | 0;
        var$2 = $this.$posZ;
        var$4 = var$2 | 0;
        if (var$2 < var$4)
            var$4 = var$4 - 1 | 0;
        var$5 = var$3 >> 4;
        var$3 = var$4 >> 4;
        $var2 = $var2.$chunkProvider;
        var$6 = $var2.$loadedChunkHashMap;
        var$7 = Long_or(Long_and(Long_fromInt(var$5), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$3), Long_create(4294967295, 0)), 32));
        var$4 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
        var$4 = var$4 ^ (var$4 >>> 20 | 0) ^ (var$4 >>> 12 | 0);
        var$8 = var$4 ^ (var$4 >>> 7 | 0) ^ (var$4 >>> 4 | 0);
        var$9 = var$6.$hashArray.data;
        var$6 = var$9[var$8 & (var$9.length - 1 | 0)];
        a: {
            while (var$6 !== null) {
                if (Long_eq(var$6.$key1, var$7)) {
                    var$6 = var$6.$value4;
                    break a;
                }
                var$6 = var$6.$nextEntry;
            }
            var$6 = null;
        }
        b: {
            var$10 = var$6;
            if (var$10 === null) {
                if ($var2.$worldObj0.$findingSpawnPoint)
                    break b;
                if ($var2.$loadChunkOnProvideRequest)
                    break b;
                var$10 = $var2.$defaultEmptyChunk;
            }
            if ($this.$worldObj.$worldInfo.$getTerrainType() === nms_WorldType_FLAT) {
                $var2 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$11;
                if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$11, 17)))), 31)) != 1)
                    return 0;
            }
            $var2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$12 = jl_Integer_integerCache.data[144];
            if (var$12 === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                var$4 = var$12.$value;
                var$9 = $var2.$elementData.data;
                $var2 = var$9[var$4 & (var$9.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$4) {
                        var$6 = $var2.$key;
                        if (var$12 !== var$6 && !(var$12 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var2 = $var2 === null ? null : $var2.$value0;
            c: {
                if (!($var2.$watchedObject.$value1 != 1 && $this.$worldObj.$difficultySetting <= 0)) {
                    $var2 = $this.$worldObj;
                    var$2 = $this.$posX;
                    var$13 = var$2 | 0;
                    if (var$2 < var$13)
                        var$13 = var$13 - 1 | 0;
                    var$2 = $this.$posZ;
                    var$14 = var$2 | 0;
                    if (var$2 < var$14)
                        var$14 = var$14 - 1 | 0;
                    var$3 = var$13 >> 4;
                    var$4 = var$14 >> 4;
                    var$12 = $var2.$chunkProvider;
                    var$6 = var$12.$loadedChunkHashMap;
                    var$7 = Long_or(Long_and(Long_fromInt(var$3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), 32));
                    var$5 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
                    var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                    var$8 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$9 = var$6.$hashArray.data;
                    var$15 = var$8 & (var$9.length - 1 | 0);
                    var$6 = var$9[var$15];
                    d: {
                        while (true) {
                            if (var$6 === null) {
                                var$6 = null;
                                break d;
                            }
                            if (Long_eq(var$6.$key1, var$7))
                                break;
                            var$6 = var$6.$nextEntry;
                        }
                    }
                    var$5 = var$6 === null ? 0 : 1;
                    e: {
                        if (var$5) {
                            var$6 = var$9[var$15];
                            f: {
                                while (var$6 !== null) {
                                    if (Long_eq(var$6.$key1, var$7)) {
                                        var$6 = var$6.$value4;
                                        break f;
                                    }
                                    var$6 = var$6.$nextEntry;
                                }
                                var$6 = null;
                            }
                            var$6 = var$6;
                            if (var$6 === null) {
                                if (var$12.$worldObj0.$findingSpawnPoint)
                                    break c;
                                if (var$12.$loadChunkOnProvideRequest)
                                    break c;
                                var$6 = var$12.$defaultEmptyChunk;
                            }
                            if (var$6 !== null) {
                                $var2 = nms_Chunk_getBiomeGenForWorldCoords(var$6, var$13 & 15, var$14 & 15, $var2.$provider.$worldChunkMgr);
                                break e;
                            }
                        }
                        $var2 = $var2.$provider.$worldChunkMgr.$getBiomeGenAt(var$13, var$14);
                    }
                    nms_BiomeGenBase_$callClinit();
                    if ($var2 === nms_BiomeGenBase_swampland) {
                        var$2 = $this.$posY;
                        if (var$2 > 50.0 && var$2 < 70.0) {
                            $var2 = $this.$rand;
                            var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var2.$seed = var$7;
                            if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.5) {
                                var$11 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var2.$seed = var$11;
                                var$16 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
                                $var2 = $this.$worldObj;
                                if (var$16 < nms_WorldProvider_moonPhaseFactors.data[Long_lo(Long_div($var2.$worldInfo.$getWorldTime(), Long_fromInt(24000))) % 8 | 0]) {
                                    $var2 = $this.$worldObj;
                                    var$2 = $this.$posX;
                                    var$15 = var$2 | 0;
                                    if (var$2 < var$15)
                                        var$15 = var$15 - 1 | 0;
                                    var$2 = $this.$posY;
                                    var$4 = var$2 | 0;
                                    if (var$2 < var$4)
                                        var$4 = var$4 - 1 | 0;
                                    var$2 = $this.$posZ;
                                    var$3 = var$2 | 0;
                                    if (var$2 < var$3)
                                        var$3 = var$3 - 1 | 0;
                                    var$5 = 1;
                                    $ptr = 5;
                                    continue main;
                                }
                            }
                        }
                    }
                    $var2 = $this.$rand;
                    var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$11;
                    var$3 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$4 = var$3 % 10 | 0;
                        if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var2.$seed = var$11;
                        var$3 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$4) {
                        $var2 = var$10.$getRandomWithSeed(Long_fromInt(987234911));
                        var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var2.$seed = var$11;
                        var$3 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$4 = var$3 % 10 | 0;
                            if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var2.$seed = var$11;
                            var$3 = Long_lo(Long_shru(var$11, 17));
                        }
                        if (!var$4 && $this.$posY < 40.0) {
                            $var2 = $this.$worldObj;
                            var$6 = $this.$boundingBox0;
                            var$10 = null;
                            $ptr = 3;
                            continue main;
                        }
                    }
                }
                return 0;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, var$5, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if ($this.$worldObj.$worldInfo.$getTerrainType() === nms_WorldType_FLAT) {
            $var2 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$11;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$11, 17)))), 31)) != 1)
                return 0;
        }
        $var2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[144];
        if (var$12 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            var$4 = var$12.$value;
            var$9 = $var2.$elementData.data;
            $var2 = var$9[var$4 & (var$9.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    var$6 = $var2.$key;
                    if (var$12 !== var$6 && !(var$12 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        g: {
            if (!($var2.$watchedObject.$value1 != 1 && $this.$worldObj.$difficultySetting <= 0)) {
                $var2 = $this.$worldObj;
                var$2 = $this.$posX;
                var$13 = var$2 | 0;
                if (var$2 < var$13)
                    var$13 = var$13 - 1 | 0;
                var$2 = $this.$posZ;
                var$14 = var$2 | 0;
                if (var$2 < var$14)
                    var$14 = var$14 - 1 | 0;
                var$3 = var$13 >> 4;
                var$4 = var$14 >> 4;
                var$12 = $var2.$chunkProvider;
                var$6 = var$12.$loadedChunkHashMap;
                var$7 = Long_or(Long_and(Long_fromInt(var$3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$4), Long_create(4294967295, 0)), 32));
                var$5 = Long_lo(Long_xor(var$7, Long_shru(var$7, 32)));
                var$5 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
                var$8 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$9 = var$6.$hashArray.data;
                var$15 = var$8 & (var$9.length - 1 | 0);
                var$6 = var$9[var$15];
                h: {
                    while (true) {
                        if (var$6 === null) {
                            var$6 = null;
                            break h;
                        }
                        if (Long_eq(var$6.$key1, var$7))
                            break;
                        var$6 = var$6.$nextEntry;
                    }
                }
                var$5 = var$6 === null ? 0 : 1;
                i: {
                    if (var$5) {
                        var$6 = var$9[var$15];
                        j: {
                            while (var$6 !== null) {
                                if (Long_eq(var$6.$key1, var$7)) {
                                    var$6 = var$6.$value4;
                                    break j;
                                }
                                var$6 = var$6.$nextEntry;
                            }
                            var$6 = null;
                        }
                        var$6 = var$6;
                        if (var$6 === null) {
                            if (var$12.$worldObj0.$findingSpawnPoint)
                                break g;
                            if (var$12.$loadChunkOnProvideRequest)
                                break g;
                            var$6 = var$12.$defaultEmptyChunk;
                        }
                        if (var$6 !== null) {
                            $var2 = nms_Chunk_getBiomeGenForWorldCoords(var$6, var$13 & 15, var$14 & 15, $var2.$provider.$worldChunkMgr);
                            break i;
                        }
                    }
                    $var2 = $var2.$provider.$worldChunkMgr.$getBiomeGenAt(var$13, var$14);
                }
                nms_BiomeGenBase_$callClinit();
                if ($var2 === nms_BiomeGenBase_swampland) {
                    var$2 = $this.$posY;
                    if (var$2 > 50.0 && var$2 < 70.0) {
                        $var2 = $this.$rand;
                        var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var2.$seed = var$7;
                        if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.5) {
                            var$11 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var2.$seed = var$11;
                            var$16 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
                            $var2 = $this.$worldObj;
                            if (var$16 < nms_WorldProvider_moonPhaseFactors.data[Long_lo(Long_div($var2.$worldInfo.$getWorldTime(), Long_fromInt(24000))) % 8 | 0]) {
                                $var2 = $this.$worldObj;
                                var$2 = $this.$posX;
                                var$15 = var$2 | 0;
                                if (var$2 < var$15)
                                    var$15 = var$15 - 1 | 0;
                                var$2 = $this.$posY;
                                var$4 = var$2 | 0;
                                if (var$2 < var$4)
                                    var$4 = var$4 - 1 | 0;
                                var$2 = $this.$posZ;
                                var$3 = var$2 | 0;
                                if (var$2 < var$3)
                                    var$3 = var$3 - 1 | 0;
                                var$5 = 1;
                                $ptr = 5;
                                continue main;
                            }
                        }
                    }
                }
                $var2 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$11;
                var$3 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    var$4 = var$3 % 10 | 0;
                    if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$11;
                    var$3 = Long_lo(Long_shru(var$11, 17));
                }
                if (!var$4) {
                    $var2 = var$10.$getRandomWithSeed(Long_fromInt(987234911));
                    var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$11;
                    var$3 = Long_lo(Long_shru(var$11, 17));
                    while (true) {
                        var$4 = var$3 % 10 | 0;
                        if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                            break;
                        var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var2.$seed = var$11;
                        var$3 = Long_lo(Long_shru(var$11, 17));
                    }
                    if (!var$4 && $this.$posY < 40.0) {
                        $var2 = $this.$worldObj;
                        var$6 = $this.$boundingBox0;
                        var$10 = null;
                        $ptr = 3;
                        continue main;
                    }
                }
            }
            return 0;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$12, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        $var2 = var$6 === null ? $var2.$provider.$worldChunkMgr.$getBiomeGenAt(var$13, var$14) : nms_Chunk_getBiomeGenForWorldCoords(var$6, var$13 & 15, var$14 & 15, $var2.$provider.$worldChunkMgr);
        nms_BiomeGenBase_$callClinit();
        if ($var2 === nms_BiomeGenBase_swampland) {
            var$2 = $this.$posY;
            if (var$2 > 50.0 && var$2 < 70.0) {
                $var2 = $this.$rand;
                var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$7;
                if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.5) {
                    var$11 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$11;
                    var$16 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
                    $var2 = $this.$worldObj;
                    if (var$16 < nms_WorldProvider_moonPhaseFactors.data[Long_lo(Long_div($var2.$worldInfo.$getWorldTime(), Long_fromInt(24000))) % 8 | 0]) {
                        $var2 = $this.$worldObj;
                        var$2 = $this.$posX;
                        var$15 = var$2 | 0;
                        if (var$2 < var$15)
                            var$15 = var$15 - 1 | 0;
                        var$2 = $this.$posY;
                        var$4 = var$2 | 0;
                        if (var$2 < var$4)
                            var$4 = var$4 - 1 | 0;
                        var$2 = $this.$posZ;
                        var$3 = var$2 | 0;
                        if (var$2 < var$3)
                            var$3 = var$3 - 1 | 0;
                        var$5 = 1;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
        }
        $var2 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$11;
        var$3 = Long_lo(Long_shru(var$11, 17));
        while (true) {
            var$4 = var$3 % 10 | 0;
            if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$11;
            var$3 = Long_lo(Long_shru(var$11, 17));
        }
        if (!var$4) {
            $var2 = var$10.$getRandomWithSeed(Long_fromInt(987234911));
            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$11;
            var$3 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$4 = var$3 % 10 | 0;
                if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$11;
                var$3 = Long_lo(Long_shru(var$11, 17));
            }
            if (!var$4 && $this.$posY < 40.0) {
                $var2 = $this.$worldObj;
                var$6 = $this.$boundingBox0;
                var$10 = null;
                $ptr = 3;
                continue main;
            }
        }
        return 0;
    case 3:
        $tmp = nms_World_checkNoEntityCollision($var2, var$6, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5)
            return 0;
        $var2 = $this.$worldObj;
        var$6 = $this.$boundingBox0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getCollidingBoundingBoxes($var2, $this, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!($var2.$size0 ? 0 : 1))
            return 0;
        $var2 = $this.$worldObj;
        var$6 = $this.$boundingBox0;
        $ptr = 8;
        continue main;
    case 5:
        $tmp = nms_World_getBlockLightValue_do($var2, var$15, var$4, var$3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $var2 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$11;
        if (var$3 <= Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$11, 17)))), 31))) {
            $var2 = $this.$worldObj;
            var$6 = $this.$boundingBox0;
            var$10 = null;
            $ptr = 6;
            continue main;
        }
        $var2 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$11;
        var$3 = Long_lo(Long_shru(var$11, 17));
        while (true) {
            var$4 = var$3 % 10 | 0;
            if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$11;
            var$3 = Long_lo(Long_shru(var$11, 17));
        }
        if (!var$4) {
            $var2 = var$10.$getRandomWithSeed(Long_fromInt(987234911));
            var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$11;
            var$3 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$4 = var$3 % 10 | 0;
                if (((var$3 - var$4 | 0) + 9 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$11;
                var$3 = Long_lo(Long_shru(var$11, 17));
            }
            if (!var$4 && $this.$posY < 40.0) {
                $var2 = $this.$worldObj;
                var$6 = $this.$boundingBox0;
                var$10 = null;
                $ptr = 3;
                continue main;
            }
        }
        return 0;
    case 6:
        $tmp = nms_World_checkNoEntityCollision($var2, var$6, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5)
            return 0;
        $var2 = $this.$worldObj;
        var$6 = $this.$boundingBox0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getCollidingBoundingBoxes($var2, $this, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!($var2.$size0 ? 0 : 1))
            return 0;
        $var2 = $this.$worldObj;
        var$6 = $this.$boundingBox0;
        $ptr = 9;
        continue main;
    case 8:
        $tmp = nms_World_isAnyLiquid($var2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5 ? 0 : 1;
    case 9:
        $tmp = nms_World_isAnyLiquid($var2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntitySlime_getSoundVolume = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return 0.4000000059604645 * (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
},
nms_EntitySlime_getVerticalFaceSpeed = $this => {
    return 0;
},
nms_EntitySlime_makesSoundOnJump = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 <= 0 ? 0 : 1;
},
nms_EntitySlime_makesSoundOnLand = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 <= 2 ? 0 : 1;
},
nms_EntityFlying = $rt_classWithoutFields(nms_EntityLiving),
nms_EntityFlying_fall = ($this, $par1) => {
    return;
},
nms_EntityFlying_updateFallState = ($this, $par1, $par3) => {
    return;
},
nms_EntityFlying_moveEntityWithHeading = ($this, $par1, $par2) => {
    let $var10, $var9, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var5, var$13, $var4, var$15, var$16, $var7, $var3, var$19, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$19 = $thread.pop();$var3 = $thread.pop();$var7 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var4 = $thread.pop();var$13 = $thread.pop();$var5 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var9 = $thread.pop();$var10 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$inWater) {
            nms_Entity_moveFlying($this, $par1, $par2, 0.019999999552965164);
            $var10 = $this.$motionX;
            $var9 = $this.$motionY;
            var$5 = $this.$motionZ;
            $ptr = 1;
            continue main;
        }
        var$6 = $this.$worldObj;
        var$7 = $this.$boundingBox0;
        var$8 = var$7.$minX0 + 0.10000000149011612;
        var$9 = var$7.$minY0 + 0.4000000059604645;
        var$10 = var$7.$minZ0 + 0.10000000149011612;
        $var10 = var$7.$maxX0 + (-0.10000000149011612);
        $var9 = var$7.$maxY + (-0.4000000059604645);
        var$5 = var$7.$maxZ0 + (-0.10000000149011612);
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var5 = var$11.$nextPoolIndex;
        var$7 = var$11.$listAABB;
        var$13 = var$7.$size0;
        $var4 = $rt_compare($var5, var$13);
        if ($var4 >= 0) {
            var$15 = new nms_AxisAlignedBB;
            var$15.$minX0 = var$8;
            var$15.$minY0 = var$9;
            var$15.$minZ0 = var$10;
            var$15.$maxX0 = $var10;
            var$15.$maxY = $var9;
            var$15.$maxZ0 = var$5;
            ju_ArrayList_ensureCapacity(var$7, var$13 + 1 | 0);
            var$16 = var$7.$array.data;
            $var4 = var$7.$size0;
            var$7.$size0 = $var4 + 1 | 0;
            var$16[$var4] = var$15;
            var$7.$modCount = var$7.$modCount + 1 | 0;
        } else if ($var5 >= 0 && $var4 < 0) {
            var$15 = var$7.$array.data[$var5];
            var$15.$minX0 = var$8;
            var$15.$minY0 = var$9;
            var$15.$minZ0 = var$10;
            var$15.$maxX0 = $var10;
            var$15.$maxY = $var9;
            var$15.$maxZ0 = var$5;
        } else {
            var$6 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$6);
            $rt_throw(var$6);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$7 = nms_Material_lava;
        $ptr = 2;
        continue main;
    case 1:
        nms_Entity_moveEntity($this, $var10, $var9, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$motionX = $this.$motionX * 0.800000011920929;
        $this.$motionY = $this.$motionY * 0.800000011920929;
        $this.$motionZ = $this.$motionZ * 0.800000011920929;
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var10 = $this.$posX - $this.$prevPosX;
        $var9 = $this.$posZ - $this.$prevPosZ;
        $var7 = jl_Math_sqrt($var10 * $var10 + $var9 * $var9) * 4.0;
        if ($var7 > 1.0)
            $var7 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var7 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    case 2:
        $tmp = nms_World_isMaterialInBB(var$6, var$15, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5) {
            nms_Entity_moveFlying($this, $par1, $par2, 0.019999999552965164);
            $var10 = $this.$motionX;
            $var9 = $this.$motionY;
            var$5 = $this.$motionZ;
            $ptr = 3;
            continue main;
        }
        $var3 = 0.9100000262260437;
        if ($this.$onGround) {
            $var3 = 0.546000063419342;
            var$6 = $this.$worldObj;
            $var9 = $this.$posX;
            var$13 = $var9 | 0;
            if ($var9 < var$13)
                var$13 = var$13 - 1 | 0;
            $var9 = $this.$boundingBox0.$minY0;
            $var4 = $var9 | 0;
            if ($var9 < $var4)
                $var4 = $var4 - 1 | 0;
            var$19 = $var4 - 1 | 0;
            $var9 = $this.$posZ;
            $var5 = $var9 | 0;
            if ($var9 < $var5)
                $var5 = $var5 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        $var8 = 0.16277135908603668 / ($var3 * $var3 * $var3);
        nms_Entity_moveFlying($this, $par1, $par2, !$this.$onGround ? 0.019999999552965164 : 0.10000000149011612 * $var8);
        $par1 = 0.9100000262260437;
        if (!$this.$onGround) {
            $var10 = $this.$motionX;
            $var9 = $this.$motionY;
            var$5 = $this.$motionZ;
            $ptr = 4;
            continue main;
        }
        $par1 = 0.546000063419342;
        var$6 = $this.$worldObj;
        $var10 = $this.$posX;
        var$19 = $var10 | 0;
        if ($var10 < var$19)
            var$19 = var$19 - 1 | 0;
        $var10 = $this.$boundingBox0.$minY0;
        $var4 = $var10 | 0;
        if ($var10 < $var4)
            $var4 = $var4 - 1 | 0;
        $var5 = $var4 - 1 | 0;
        $var10 = $this.$posZ;
        var$13 = $var10 | 0;
        if ($var10 < var$13)
            var$13 = var$13 - 1 | 0;
        $ptr = 6;
        continue main;
    case 3:
        nms_Entity_moveEntity($this, $var10, $var9, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$motionX = $this.$motionX * 0.5;
        $this.$motionY = $this.$motionY * 0.5;
        $this.$motionZ = $this.$motionZ * 0.5;
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var10 = $this.$posX - $this.$prevPosX;
        $var9 = $this.$posZ - $this.$prevPosZ;
        $var7 = jl_Math_sqrt($var10 * $var10 + $var9 * $var9) * 4.0;
        if ($var7 > 1.0)
            $var7 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var7 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    case 4:
        nms_Entity_moveEntity($this, $var10, $var9, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$motionX;
        $var9 = $par1;
        $this.$motionX = $var10 * $var9;
        $this.$motionY = $this.$motionY * $var9;
        $this.$motionZ = $this.$motionZ * $var9;
        $this.$prevLimbSwingAmount = $this.$limbSwingAmount;
        $var10 = $this.$posX - $this.$prevPosX;
        $var9 = $this.$posZ - $this.$prevPosZ;
        $var7 = jl_Math_sqrt($var10 * $var10 + $var9 * $var9) * 4.0;
        if ($var7 > 1.0)
            $var7 = 1.0;
        $par1 = $this.$limbSwingAmount;
        $par1 = $par1 + ($var7 - $par1) * 0.4000000059604645;
        $this.$limbSwingAmount = $par1;
        $this.$limbSwing = $this.$limbSwing + $par1;
        return;
    case 5:
        $tmp = nms_World_getBlockId(var$6, var$13, var$19, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 > 0) {
            nms_Block_$callClinit();
            $var3 = nms_Block_blocksList.data[$var4].$slipperiness * 0.9100000262260437;
        }
        $var8 = 0.16277135908603668 / ($var3 * $var3 * $var3);
        nms_Entity_moveFlying($this, $par1, $par2, !$this.$onGround ? 0.019999999552965164 : 0.10000000149011612 * $var8);
        $par1 = 0.9100000262260437;
        if (!$this.$onGround) {
            $var10 = $this.$motionX;
            $var9 = $this.$motionY;
            var$5 = $this.$motionZ;
            $ptr = 4;
            continue main;
        }
        $par1 = 0.546000063419342;
        var$6 = $this.$worldObj;
        $var10 = $this.$posX;
        var$19 = $var10 | 0;
        if ($var10 < var$19)
            var$19 = var$19 - 1 | 0;
        $var10 = $this.$boundingBox0.$minY0;
        $var4 = $var10 | 0;
        if ($var10 < $var4)
            $var4 = $var4 - 1 | 0;
        $var5 = $var4 - 1 | 0;
        $var10 = $this.$posZ;
        var$13 = $var10 | 0;
        if ($var10 < var$13)
            var$13 = var$13 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId(var$6, var$19, $var5, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5 > 0) {
            nms_Block_$callClinit();
            $par1 = nms_Block_blocksList.data[$var5].$slipperiness * 0.9100000262260437;
        }
        $var10 = $this.$motionX;
        $var9 = $this.$motionY;
        var$5 = $this.$motionZ;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var10, $var9, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var5, var$13, $var4, var$15, var$16, $var7, $var3, var$19, $var8, $ptr);
},
nms_EntityFlying_isOnLadder = $this => {
    return 0;
};
function nms_EntityGhast() {
    let a = this; nms_EntityFlying.call(a);
    a.$courseChangeCooldown = 0;
    a.$waypointX = 0.0;
    a.$waypointY = 0.0;
    a.$waypointZ = 0.0;
    a.$targetedEntity = null;
    a.$aggroCooldown = 0;
    a.$prevAttackCounter = 0;
    a.$attackCounter = 0;
    a.$explosionStrength = 0;
}
let nms_EntityGhast_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        var$3 = $par1DamageSource.$damageType;
        if ($rt_s(623) === var$3)
            var$4 = 1;
        else if (!(var$3 instanceof jl_String))
            var$4 = 0;
        else {
            var$3 = var$3;
            var$4 = $rt_s(623).$nativeString !== var$3.$nativeString ? 0 : 1;
        }
        if (var$4 && $par1DamageSource.$getEntity() instanceof nms_EntityPlayer) {
            $par2 = 1000.0;
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    case 2:
        nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par1DamageSource = $par1DamageSource.$getEntity();
        nms_AchievementList_$callClinit();
        var$5 = nms_AchievementList_ghast;
        if (var$5 !== null && !var$5.$isIndependent)
            a: {
                var$3 = $par1DamageSource.$playerNetServerHandler;
                $par1DamageSource = new nms_Packet200Statistic;
                var$6 = var$5.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par1DamageSource.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1DamageSource.$statisticId = var$6;
                $par1DamageSource.$amount = 1;
                if ($par1DamageSource instanceof nms_Packet3Chat) {
                    var$5 = $par1DamageSource;
                    var$6 = var$3.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break a;
                    if (var$6 == 1 && !var$5.$isServer)
                        break a;
                }
                try {
                    var$5 = var$3.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1DamageSource = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$5 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_(var$5, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = var$5;
                }
                jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
            }
        return 1;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, $par1DamageSource);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1DamageSource = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$5 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$5, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$5;
            }
            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityGhast_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
},
nms_EntityGhast_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null)
        var$1 = ju_HashMap_findNullKeyEntry(var$2);
    else {
        var$3 = nms_BaseAttribute_hashCode(var$1);
        var$1 = ju_HashMap_findNonNullKeyEntry(var$2, var$1, var$3 & (var$2.$elementData.data.length - 1 | 0), var$3);
    }
    var$4 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$4.$baseValue) {
        var$4.$baseValue = 0.10000000149011612;
        var$4.$field_111133_g = 1;
        var$1 = var$4.$field_111138_a;
        if (var$4.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$4, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$4 = var$1.$field_111115_a;
            if (!var$4.$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$4 = var$2.$key;
                if (var$1 !== var$4 && !jl_Object_equals(var$1, var$4) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (10.0 !== var$1.$baseValue) {
        var$1.$baseValue = 10.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityGhast_updateEntityActionState = $this => {
    let $var17, $var1, $var11, $var3, $var15, $var5, $var13, $var7, var$9, var$10, $var12, var$12, var$13, var$14, $var18, var$16, $var20, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var20 = $thread.pop();var$16 = $thread.pop();$var18 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var12 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var13 = $thread.pop();$var5 = $thread.pop();$var15 = $thread.pop();$var3
        = $thread.pop();$var11 = $thread.pop();$var1 = $thread.pop();$var17 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var17 = $this.$worldObj;
        if (!$var17.$isRemote && !$var17.$difficultySetting)
            $this.$isDead = 1;
        $ptr = 1;
    case 1:
        nms_EntityLiving_despawnEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$prevAttackCounter = $this.$attackCounter;
        $var1 = $this.$waypointX;
        $var11 = $this.$posX;
        $var1 = $var1 - $var11;
        $var3 = $this.$waypointY;
        $var15 = $this.$posY;
        $var3 = $var3 - $var15;
        $var5 = $this.$waypointZ;
        $var13 = $this.$posZ;
        $var5 = $var5 - $var13;
        $var7 = $var1 * $var1 + $var3 * $var3 + $var5 * $var5;
        if (!($var7 >= 1.0 && $var7 <= 3600.0)) {
            $var17 = $this.$rand;
            var$9 = Long_and(Long_add(Long_mul($var17.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$9;
            $this.$waypointX = $var11 + (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 * 2.0 - 1.0) * 16.0;
            var$9 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$9;
            $this.$waypointY = $var15 + (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 * 2.0 - 1.0) * 16.0;
            var$10 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$10;
            $this.$waypointZ = $var13 + (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 2.0 - 1.0) * 16.0;
        }
        $var12 = $this.$courseChangeCooldown;
        var$12 = $var12 - 1 | 0;
        $this.$courseChangeCooldown = var$12;
        if ($var12 <= 0) {
            $var17 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul($var17.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$10;
            var$13 = Long_lo(Long_shru(var$10, 17));
            while (true) {
                var$14 = var$13 % 5 | 0;
                if (((var$13 - var$14 | 0) + 4 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($var17.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var17.$seed = var$10;
                var$13 = Long_lo(Long_shru(var$10, 17));
            }
            $this.$courseChangeCooldown = var$12 + (var$14 + 2 | 0) | 0;
            $var11 = jl_Math_sqrt($var7);
            $var15 = $this.$waypointX;
            $var13 = $this.$waypointY;
            $var18 = $this.$waypointZ;
            $ptr = 2;
            continue main;
        }
        $var17 = $this.$targetedEntity;
        if ($var17 !== null && $var17.$isDead)
            $this.$targetedEntity = null;
        a: {
            if ($this.$targetedEntity !== null) {
                $var12 = $this.$aggroCooldown;
                $this.$aggroCooldown = $var12 - 1 | 0;
                if ($var12 > 0)
                    break a;
            }
            $var17 = nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 100.0);
            $this.$targetedEntity = $var17;
            if ($var17 !== null)
                $this.$aggroCooldown = 20;
        }
        $var17 = $this.$targetedEntity;
        if ($var17 !== null) {
            $var11 = $var17.$posX - $this.$posX;
            $var1 = $var17.$posY;
            $var3 = $this.$posY;
            $var1 = $var1 - $var3;
            $var15 = $var17.$posZ - $this.$posZ;
            if ($var11 * $var11 + $var1 * $var1 + $var15 * $var15 < 4096.0) {
                $var13 = $var17.$boundingBox0.$minY0 + $var17.$height0 / 2.0 - ($var3 + $this.$height0 / 2.0);
                var$16 =  -jl_Math_atan2($var11, $var15) * 180.0 / 3.1415927410125732;
                $this.$rotationYaw = var$16;
                $this.$renderYawOffset = var$16;
                $var17 = $this.$targetedEntity;
                $ptr = 3;
                continue main;
            }
        }
        var$16 =  -jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.1415927410125732;
        $this.$rotationYaw = var$16;
        $this.$renderYawOffset = var$16;
        $var12 = $this.$attackCounter;
        if ($var12 > 0)
            $this.$attackCounter = $var12 - 1 | 0;
        if (!$this.$worldObj.$isRemote) {
            $var17 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var20 = jl_Integer_integerCache.data[144];
            if ($var20 === null) {
                $var17 = $var17.$elementData.data[0];
                while ($var17 !== null && $var17.$key !== null) {
                    $var17 = $var17.$next3;
                }
            } else {
                $var12 = $var20.$value;
                var$18 = $var17.$elementData.data;
                $var17 = var$18[$var12 & (var$18.length - 1 | 0)];
                while ($var17 !== null) {
                    if ($var17.$origKeyHash == $var12) {
                        var$19 = $var17.$key;
                        if ($var20 !== var$19 && !($var20 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == $var12 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var17 = $var17.$next3;
                }
            }
            var$20 = ($var17 === null ? null : $var17.$value0).$watchedObject.$value1;
            $var12 = ($this.$attackCounter <= 10 ? 0 : 1) << 24 >> 24;
            if (var$20 != $var12) {
                $var17 = $this.$dataWatcher;
                var$21 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                $var20 = $var17.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$22 = jl_Integer_integerCache.data[144];
                if (var$22 === null) {
                    $var20 = $var20.$elementData.data[0];
                    while ($var20 !== null && $var20.$key !== null) {
                        $var20 = $var20.$next3;
                    }
                } else {
                    var$20 = var$22.$value;
                    var$18 = $var20.$elementData.data;
                    $var20 = var$18[var$20 & (var$18.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == var$20) {
                            var$19 = $var20.$key;
                            if (var$22 !== var$19 && !(var$22 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == var$20 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                }
                var$19 = $var20 === null ? null : $var20.$value0;
                $var20 = var$19.$watchedObject;
                if (!($var20 instanceof jl_Byte && $var20.$value1 == var$21.$value1 ? 1 : 0)) {
                    var$19.$watchedObject = var$21;
                    var$19.$watched = 1;
                    $var17.$objectChanged = 1;
                }
            }
        }
        return;
    case 2:
        $tmp = nms_EntityGhast_isCourseTraversable($this, $var15, $var13, $var18, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            $this.$waypointX = $this.$posX;
            $this.$waypointY = $this.$posY;
            $this.$waypointZ = $this.$posZ;
        } else {
            $this.$motionX = $this.$motionX + $var1 / $var11 * 0.1;
            $this.$motionY = $this.$motionY + $var3 / $var11 * 0.1;
            $this.$motionZ = $this.$motionZ + $var5 / $var11 * 0.1;
        }
        $var17 = $this.$targetedEntity;
        if ($var17 !== null && $var17.$isDead)
            $this.$targetedEntity = null;
        b: {
            if ($this.$targetedEntity !== null) {
                $var12 = $this.$aggroCooldown;
                $this.$aggroCooldown = $var12 - 1 | 0;
                if ($var12 > 0)
                    break b;
            }
            $var17 = nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 100.0);
            $this.$targetedEntity = $var17;
            if ($var17 !== null)
                $this.$aggroCooldown = 20;
        }
        $var17 = $this.$targetedEntity;
        if ($var17 !== null) {
            $var11 = $var17.$posX - $this.$posX;
            $var1 = $var17.$posY;
            $var3 = $this.$posY;
            $var1 = $var1 - $var3;
            $var15 = $var17.$posZ - $this.$posZ;
            if ($var11 * $var11 + $var1 * $var1 + $var15 * $var15 < 4096.0) {
                $var13 = $var17.$boundingBox0.$minY0 + $var17.$height0 / 2.0 - ($var3 + $this.$height0 / 2.0);
                var$16 =  -jl_Math_atan2($var11, $var15) * 180.0 / 3.1415927410125732;
                $this.$rotationYaw = var$16;
                $this.$renderYawOffset = var$16;
                $var17 = $this.$targetedEntity;
                $ptr = 3;
                continue main;
            }
        }
        var$16 =  -jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.1415927410125732;
        $this.$rotationYaw = var$16;
        $this.$renderYawOffset = var$16;
        $var12 = $this.$attackCounter;
        if ($var12 > 0)
            $this.$attackCounter = $var12 - 1 | 0;
        if (!$this.$worldObj.$isRemote) {
            $var17 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var20 = jl_Integer_integerCache.data[144];
            if ($var20 === null) {
                $var17 = $var17.$elementData.data[0];
                while ($var17 !== null && $var17.$key !== null) {
                    $var17 = $var17.$next3;
                }
            } else {
                $var12 = $var20.$value;
                var$18 = $var17.$elementData.data;
                $var17 = var$18[$var12 & (var$18.length - 1 | 0)];
                while ($var17 !== null) {
                    if ($var17.$origKeyHash == $var12) {
                        var$19 = $var17.$key;
                        if ($var20 !== var$19 && !($var20 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == $var12 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var17 = $var17.$next3;
                }
            }
            var$20 = ($var17 === null ? null : $var17.$value0).$watchedObject.$value1;
            $var12 = ($this.$attackCounter <= 10 ? 0 : 1) << 24 >> 24;
            if (var$20 != $var12) {
                $var17 = $this.$dataWatcher;
                var$21 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                $var20 = $var17.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$22 = jl_Integer_integerCache.data[144];
                if (var$22 === null) {
                    $var20 = $var20.$elementData.data[0];
                    while ($var20 !== null && $var20.$key !== null) {
                        $var20 = $var20.$next3;
                    }
                } else {
                    var$20 = var$22.$value;
                    var$18 = $var20.$elementData.data;
                    $var20 = var$18[var$20 & (var$18.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == var$20) {
                            var$19 = $var20.$key;
                            if (var$22 !== var$19 && !(var$22 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == var$20 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                }
                var$19 = $var20 === null ? null : $var20.$value0;
                $var20 = var$19.$watchedObject;
                if (!($var20 instanceof jl_Byte && $var20.$value1 == var$21.$value1 ? 1 : 0)) {
                    var$19.$watchedObject = var$21;
                    var$19.$watched = 1;
                    $var17.$objectChanged = 1;
                }
            }
        }
        return;
    case 3:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($this, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            $var12 = $this.$attackCounter;
            if ($var12 > 0)
                $this.$attackCounter = $var12 - 1 | 0;
        } else {
            if ($this.$attackCounter == 10) {
                $var17 = $this.$worldObj;
                $var20 = null;
                $var12 = 1007;
                var$12 = $this.$posX | 0;
                var$20 = $this.$posY | 0;
                var$13 = $this.$posZ | 0;
                var$14 = 0;
                var$23 = 0;
                $var5 = var$12;
                $var18 = var$20;
                $var7 = var$13;
                var$19 = $var17.$worldAccesses;
                var$24 = $rt_compare(var$23, var$19.$size0);
                if (var$24 < 0) {
                    if (var$23 >= 0 && var$24 < 0) {
                        var$22 = var$19.$array.data[var$23];
                        var$19 = var$22.$mcServer.$serverConfigManager;
                        $var3 = 64.0;
                        var$25 = var$22.$theWorldServer.$provider.$dimensionId;
                        var$22 = new nms_Packet61DoorChange;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$22.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$22.$sfxID = $var12;
                        var$22.$posX1 = var$12;
                        var$22.$posY1 = var$20;
                        var$22.$posZ1 = var$13;
                        var$22.$auxData = var$14;
                        var$22.$disableRelativeVolume = 0;
                        $ptr = 6;
                        continue main;
                    }
                    $var17 = new jl_IndexOutOfBoundsException;
                    $var17.$suppressionEnabled = 1;
                    $var17.$writableStackTrace = 1;
                    $rt_throw($var17);
                }
            }
            $var12 = $this.$attackCounter + 1 | 0;
            $this.$attackCounter = $var12;
            if ($var12 == 20) {
                $var17 = $this.$worldObj;
                $var20 = null;
                var$12 = 1008;
                var$20 = $this.$posX | 0;
                var$13 = $this.$posY | 0;
                var$14 = $this.$posZ | 0;
                $var12 = 0;
                var$23 = 0;
                $var3 = var$20;
                $var5 = var$13;
                $var18 = var$14;
                var$19 = $var17.$worldAccesses;
                var$24 = $rt_compare(var$23, var$19.$size0);
                if (var$24 >= 0) {
                    $var17 = new nms_EntityLargeFireball;
                    $var20 = $this.$worldObj;
                    $ptr = 4;
                    continue main;
                }
                if (var$23 >= 0 && var$24 < 0) {
                    var$19 = var$19.$array.data[var$23];
                    var$21 = var$19.$mcServer.$serverConfigManager;
                    $var1 = 64.0;
                    var$25 = var$19.$theWorldServer.$provider.$dimensionId;
                    var$19 = new nms_Packet61DoorChange;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$19.$sfxID = var$12;
                    var$19.$posX1 = var$20;
                    var$19.$posY1 = var$13;
                    var$19.$posZ1 = var$14;
                    var$19.$auxData = $var12;
                    var$19.$disableRelativeVolume = 0;
                    $ptr = 7;
                    continue main;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        if (!$this.$worldObj.$isRemote) {
            $var17 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var20 = jl_Integer_integerCache.data[144];
            if ($var20 === null) {
                $var17 = $var17.$elementData.data[0];
                while ($var17 !== null && $var17.$key !== null) {
                    $var17 = $var17.$next3;
                }
            } else {
                $var12 = $var20.$value;
                var$18 = $var17.$elementData.data;
                $var17 = var$18[$var12 & (var$18.length - 1 | 0)];
                while ($var17 !== null) {
                    if ($var17.$origKeyHash == $var12) {
                        var$19 = $var17.$key;
                        if ($var20 !== var$19 && !($var20 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == $var12 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var17 = $var17.$next3;
                }
            }
            var$20 = ($var17 === null ? null : $var17.$value0).$watchedObject.$value1;
            $var12 = ($this.$attackCounter <= 10 ? 0 : 1) << 24 >> 24;
            if (var$20 != $var12) {
                $var17 = $this.$dataWatcher;
                var$21 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                $var20 = $var17.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$22 = jl_Integer_integerCache.data[144];
                if (var$22 === null) {
                    $var20 = $var20.$elementData.data[0];
                    while ($var20 !== null && $var20.$key !== null) {
                        $var20 = $var20.$next3;
                    }
                } else {
                    var$20 = var$22.$value;
                    var$18 = $var20.$elementData.data;
                    $var20 = var$18[var$20 & (var$18.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == var$20) {
                            var$19 = $var20.$key;
                            if (var$22 !== var$19 && !(var$22 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == var$20 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                }
                var$19 = $var20 === null ? null : $var20.$value0;
                $var20 = var$19.$watchedObject;
                if (!($var20 instanceof jl_Byte && $var20.$value1 == var$21.$value1 ? 1 : 0)) {
                    var$19.$watchedObject = var$21;
                    var$19.$watched = 1;
                    $var17.$objectChanged = 1;
                }
            }
        }
        return;
    case 4:
        nms_EntityFireball__init_($var17, $var20, $this, $var11, $var13, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var17.$field_92057_e = 1;
        $var17.$field_92057_e = $this.$explosionStrength;
        $var20 = nms_EntityLivingBase_getLook($this, 1.0);
        $var17.$posX = $this.$posX + $var20.$xCoord * 4.0;
        $var17.$posY = $this.$posY + $this.$height0 / 2.0 + 0.5;
        $var17.$posZ = $this.$posZ + $var20.$zCoord * 4.0;
        $var20 = $this.$worldObj;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($var20, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $this.$attackCounter = (-40);
        if (!$this.$worldObj.$isRemote) {
            $var17 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var20 = jl_Integer_integerCache.data[144];
            if ($var20 === null) {
                $var17 = $var17.$elementData.data[0];
                while ($var17 !== null && $var17.$key !== null) {
                    $var17 = $var17.$next3;
                }
            } else {
                $var12 = $var20.$value;
                var$18 = $var17.$elementData.data;
                $var17 = var$18[$var12 & (var$18.length - 1 | 0)];
                while ($var17 !== null) {
                    if ($var17.$origKeyHash == $var12) {
                        var$19 = $var17.$key;
                        if ($var20 !== var$19 && !($var20 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == $var12 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var17 = $var17.$next3;
                }
            }
            var$20 = ($var17 === null ? null : $var17.$value0).$watchedObject.$value1;
            $var12 = ($this.$attackCounter <= 10 ? 0 : 1) << 24 >> 24;
            if (var$20 != $var12) {
                $var17 = $this.$dataWatcher;
                var$21 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                $var20 = $var17.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$22 = jl_Integer_integerCache.data[144];
                if (var$22 === null) {
                    $var20 = $var20.$elementData.data[0];
                    while ($var20 !== null && $var20.$key !== null) {
                        $var20 = $var20.$next3;
                    }
                } else {
                    var$20 = var$22.$value;
                    var$18 = $var20.$elementData.data;
                    $var20 = var$18[var$20 & (var$18.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == var$20) {
                            var$19 = $var20.$key;
                            if (var$22 !== var$19 && !(var$22 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == var$20 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                }
                var$19 = $var20 === null ? null : $var20.$value0;
                $var20 = var$19.$watchedObject;
                if (!($var20 instanceof jl_Byte && $var20.$value1 == var$21.$value1 ? 1 : 0)) {
                    var$19.$watchedObject = var$21;
                    var$19.$watched = 1;
                    $var17.$objectChanged = 1;
                }
            }
        }
        return;
    case 6:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$19, $var20, $var5, $var18, $var7, $var3, var$25, var$22);
        if ($rt_suspending()) {
            break main;
        }
        var$23 = var$23 + 1 | 0;
        var$19 = $var17.$worldAccesses;
        var$24 = $rt_compare(var$23, var$19.$size0);
        if (var$24 < 0) {
            if (var$23 >= 0 && var$24 < 0) {
                var$22 = var$19.$array.data[var$23];
                var$19 = var$22.$mcServer.$serverConfigManager;
                $var3 = 64.0;
                var$25 = var$22.$theWorldServer.$provider.$dimensionId;
                var$22 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$22.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$22.$sfxID = $var12;
                var$22.$posX1 = var$12;
                var$22.$posY1 = var$20;
                var$22.$posZ1 = var$13;
                var$22.$auxData = var$14;
                var$22.$disableRelativeVolume = 0;
                continue main;
            }
            $var17 = new jl_IndexOutOfBoundsException;
            $var17.$suppressionEnabled = 1;
            $var17.$writableStackTrace = 1;
            $rt_throw($var17);
        }
        $var12 = $this.$attackCounter + 1 | 0;
        $this.$attackCounter = $var12;
        if ($var12 != 20) {
            if (!$this.$worldObj.$isRemote) {
                $var17 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var20 = jl_Integer_integerCache.data[144];
                if ($var20 === null) {
                    $var17 = $var17.$elementData.data[0];
                    while ($var17 !== null && $var17.$key !== null) {
                        $var17 = $var17.$next3;
                    }
                } else {
                    $var12 = $var20.$value;
                    var$18 = $var17.$elementData.data;
                    $var17 = var$18[$var12 & (var$18.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $var12) {
                            var$19 = $var17.$key;
                            if ($var20 !== var$19 && !($var20 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == $var12 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                }
                var$20 = ($var17 === null ? null : $var17.$value0).$watchedObject.$value1;
                $var12 = ($this.$attackCounter <= 10 ? 0 : 1) << 24 >> 24;
                if (var$20 != $var12) {
                    $var17 = $this.$dataWatcher;
                    var$21 = jl_Byte_byteCache.data[$var12 + 128 | 0];
                    $var20 = $var17.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$22 = jl_Integer_integerCache.data[144];
                    if (var$22 === null) {
                        $var20 = $var20.$elementData.data[0];
                        while ($var20 !== null && $var20.$key !== null) {
                            $var20 = $var20.$next3;
                        }
                    } else {
                        var$20 = var$22.$value;
                        var$18 = $var20.$elementData.data;
                        $var20 = var$18[var$20 & (var$18.length - 1 | 0)];
                        while ($var20 !== null) {
                            if ($var20.$origKeyHash == var$20) {
                                var$19 = $var20.$key;
                                if (var$22 !== var$19 && !(var$22 === var$19 ? 1 : var$19 instanceof jl_Integer && var$19.$value == var$20 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var20 = $var20.$next3;
                        }
                    }
                    var$19 = $var20 === null ? null : $var20.$value0;
                    $var20 = var$19.$watchedObject;
                    if (!($var20 instanceof jl_Byte && $var20.$value1 == var$21.$value1 ? 1 : 0)) {
                        var$19.$watchedObject = var$21;
                        var$19.$watched = 1;
                        $var17.$objectChanged = 1;
                    }
                }
            }
            return;
        }
        $var17 = $this.$worldObj;
        $var20 = null;
        var$12 = 1008;
        var$20 = $this.$posX | 0;
        var$13 = $this.$posY | 0;
        var$14 = $this.$posZ | 0;
        $var12 = 0;
        var$23 = 0;
        $var3 = var$20;
        $var5 = var$13;
        $var18 = var$14;
        var$19 = $var17.$worldAccesses;
        var$24 = $rt_compare(var$23, var$19.$size0);
        if (var$24 >= 0) {
            $var17 = new nms_EntityLargeFireball;
            $var20 = $this.$worldObj;
            $ptr = 4;
            continue main;
        }
        if (var$23 >= 0 && var$24 < 0) {
            var$19 = var$19.$array.data[var$23];
            var$21 = var$19.$mcServer.$serverConfigManager;
            $var1 = 64.0;
            var$25 = var$19.$theWorldServer.$provider.$dimensionId;
            var$19 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$19.$sfxID = var$12;
            var$19.$posX1 = var$20;
            var$19.$posY1 = var$13;
            var$19.$posZ1 = var$14;
            var$19.$auxData = $var12;
            var$19.$disableRelativeVolume = 0;
            $ptr = 7;
            continue main;
        }
        $var17 = new jl_IndexOutOfBoundsException;
        $var17.$suppressionEnabled = 1;
        $var17.$writableStackTrace = 1;
        $rt_throw($var17);
    case 7:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$21, $var20, $var3, $var5, $var18, $var1, var$25, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$23 = var$23 + 1 | 0;
        var$19 = $var17.$worldAccesses;
        var$24 = $rt_compare(var$23, var$19.$size0);
        if (var$24 >= 0) {
            $var17 = new nms_EntityLargeFireball;
            $var20 = $this.$worldObj;
            $ptr = 4;
            continue main;
        }
        if (var$23 >= 0 && var$24 < 0) {
            var$19 = var$19.$array.data[var$23];
            var$21 = var$19.$mcServer.$serverConfigManager;
            $var1 = 64.0;
            var$25 = var$19.$theWorldServer.$provider.$dimensionId;
            var$19 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$19.$sfxID = var$12;
            var$19.$posX1 = var$20;
            var$19.$posY1 = var$13;
            var$19.$posZ1 = var$14;
            var$19.$auxData = $var12;
            var$19.$disableRelativeVolume = 0;
            continue main;
        }
        $var17 = new jl_IndexOutOfBoundsException;
        $var17.$suppressionEnabled = 1;
        $var17.$writableStackTrace = 1;
        $rt_throw($var17);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var17, $var1, $var11, $var3, $var15, $var5, $var13, $var7, var$9, var$10, $var12, var$12, var$13, var$14, $var18, var$16, $var20, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_EntityGhast_isCourseTraversable = ($this, $par1, $par3, $par5, $par7) => {
    let $var9, $var11, $var13, var$8, var$9, var$10, var$11, var$12, $var16, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var16 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$par7 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var9 = ($this.$waypointX - $this.$posX) / $par7;
        $var11 = ($this.$waypointY - $this.$posY) / $par7;
        $var13 = ($this.$waypointZ - $this.$posZ) / $par7;
        var$8 = $this.$boundingBox0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $par1 = var$8.$minX0;
        $par3 = var$8.$minY0;
        $par5 = var$8.$minZ0;
        var$10 = var$8.$maxX0;
        var$11 = var$8.$maxY;
        var$12 = var$8.$maxZ0;
        $var16 = var$9.$nextPoolIndex;
        var$8 = var$9.$listAABB;
        var$14 = var$8.$size0;
        var$15 = $rt_compare($var16, var$14);
        if (var$15 >= 0) {
            var$16 = new nms_AxisAlignedBB;
            var$16.$minX0 = $par1;
            var$16.$minY0 = $par3;
            var$16.$minZ0 = $par5;
            var$16.$maxX0 = var$10;
            var$16.$maxY = var$11;
            var$16.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity(var$8, var$14 + 1 | 0);
            var$17 = var$8.$array.data;
            var$14 = var$8.$size0;
            var$8.$size0 = var$14 + 1 | 0;
            var$17[var$14] = var$16;
            var$8.$modCount = var$8.$modCount + 1 | 0;
        } else if ($var16 >= 0 && var$15 < 0) {
            var$16 = var$8.$array.data[$var16];
            var$16.$minX0 = $par1;
            var$16.$minY0 = $par3;
            var$16.$minZ0 = $par5;
            var$16.$maxX0 = var$10;
            var$16.$maxY = var$11;
            var$16.$maxZ0 = var$12;
        } else {
            var$9 = new jl_IndexOutOfBoundsException;
            var$9.$suppressionEnabled = 1;
            var$9.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$9);
            $rt_throw(var$9);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        $var16 = 1;
        if ($var16 >= $par7)
            return 1;
        var$16.$minX0 = var$16.$minX0 + $var9;
        var$16.$minY0 = var$16.$minY0 + $var11;
        var$16.$minZ0 = var$16.$minZ0 + $var13;
        var$16.$maxX0 = var$16.$maxX0 + $var9;
        var$16.$maxY = var$16.$maxY + $var11;
        var$16.$maxZ0 = var$16.$maxZ0 + $var13;
        var$9 = $this.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getCollidingBoundingBoxes(var$9, $this, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!(var$9.$size0 ? 0 : 1))
            return 0;
        $var16 = $var16 + 1 | 0;
        if ($var16 >= $par7)
            return 1;
        var$16.$minX0 = var$16.$minX0 + $var9;
        var$16.$minY0 = var$16.$minY0 + $var11;
        var$16.$minZ0 = var$16.$minZ0 + $var13;
        var$16.$maxX0 = var$16.$maxX0 + $var9;
        var$16.$maxY = var$16.$maxY + $var11;
        var$16.$maxZ0 = var$16.$maxZ0 + $var13;
        var$9 = $this.$worldObj;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, $par7, $var9, $var11, $var13, var$8, var$9, var$10, var$11, var$12, $var16, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityGhast_getLivingSound = $this => {
    return $rt_s(2295);
},
nms_EntityGhast_getHurtSound = $this => {
    return $rt_s(2296);
},
nms_EntityGhast_getDeathSound = $this => {
    return $rt_s(2297);
},
nms_EntityGhast_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_gunpowder.$itemID0;
},
nms_EntityGhast_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, $var4, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = 17;
        var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$4, var$5)))), 31));
        $par1 = 1 + $par2 | 0;
        var$7 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $par2 = Long_lo(Long_shru(var$7, var$5));
        var$8 = $par1 - 1 | 0;
        var$9 = $par1 & var$8;
        if (!var$9)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$8 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $par2 = Long_lo(Long_shru(var$7, var$5));
            }
        $var3 = var$6 + $var3 | 0;
        $var4 = 0;
        var$12 = 0.0;
        var$6 = 138;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par2 = nms_Item_ghastTear.$itemID0;
            var$13 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$13.$itemID = $par2;
            var$13.$stackSize = 1;
            var$13.$itemDamage = 0;
            var$3 = new nms_EntityItem;
            var$14 = $this.$worldObj;
            var$15 = $this.$posX;
            var$16 = $this.$posY + var$12;
            var$17 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $var3 = Long_lo(Long_shru(var$7, var$5));
        while (true) {
            var$18 = $var3 % 3 | 0;
            if ((($var3 - var$18 | 0) + 2 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$7;
            $var3 = Long_lo(Long_shru(var$7, var$5));
        }
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $par2 = Long_lo(Long_shru(var$7, var$5));
        if (!var$9)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$8 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $par2 = Long_lo(Long_shru(var$7, var$5));
            }
        $par2 = var$18 + $var3 | 0;
        $var3 = 0;
        if ($var3 >= $par2)
            return;
        nms_Item_$callClinit();
        var$18 = nms_Item_gunpowder.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$18;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$19 = $this.$worldObj;
        var$15 = $this.$posX;
        var$16 = $this.$posY + var$12;
        var$17 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityItem__init_(var$3, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = var$3.$dataWatcher;
        var$14 = var$20.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$14 = ju_HashMap_entryByKey(var$14, jl_Integer_integerCache.data[var$6]);
        var$19 = var$14 === null ? null : var$14.$value0;
        if (!(var$13 !== var$19.$watchedObject ? 0 : 1)) {
            var$19.$watchedObject = var$13;
            var$19.$watched = 1;
            var$20.$objectChanged = 1;
        }
        var$13 = var$3.$dataWatcher;
        var$14 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$14 = ju_HashMap_entryByKey(var$14, jl_Integer_integerCache.data[var$6]);
        (var$14 === null ? null : var$14.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$3.$delayBeforeCanPickup = 10;
        var$14 = $this.$worldObj;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityItem__init_(var$14, var$19, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = var$14.$dataWatcher;
        var$19 = var$20.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$19 = ju_HashMap_entryByKey(var$19, jl_Integer_integerCache.data[var$6]);
        var$13 = var$19 === null ? null : var$19.$value0;
        if (!(var$3 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$3;
            var$13.$watched = 1;
            var$20.$objectChanged = 1;
        }
        var$13 = var$14.$dataWatcher;
        var$3 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$6]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$14.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 3:
        nms_World_spawnEntityInWorld(var$14, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par2 = nms_Item_ghastTear.$itemID0;
            var$13 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$13.$itemID = $par2;
            var$13.$stackSize = 1;
            var$13.$itemDamage = 0;
            var$3 = new nms_EntityItem;
            var$14 = $this.$worldObj;
            var$15 = $this.$posX;
            var$16 = $this.$posY + var$12;
            var$17 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $var3 = Long_lo(Long_shru(var$7, var$5));
        while (true) {
            var$18 = $var3 % 3 | 0;
            if ((($var3 - var$18 | 0) + 2 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$7;
            $var3 = Long_lo(Long_shru(var$7, var$5));
        }
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $par2 = Long_lo(Long_shru(var$7, var$5));
        if (!var$9)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$8 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $par2 = Long_lo(Long_shru(var$7, var$5));
            }
        $par2 = var$18 + $var3 | 0;
        $var3 = 0;
        if ($var3 >= $par2)
            return;
        nms_Item_$callClinit();
        var$18 = nms_Item_gunpowder.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$18;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$19 = $this.$worldObj;
        var$15 = $this.$posX;
        var$16 = $this.$posY + var$12;
        var$17 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var3 + 1 | 0;
        if ($var3 >= $par2)
            return;
        nms_Item_$callClinit();
        var$18 = nms_Item_gunpowder.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$18;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$19 = $this.$worldObj;
        var$15 = $this.$posX;
        var$16 = $this.$posY + var$12;
        var$17 = $this.$posZ;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, $var4, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntityGhast_getSoundVolume = $this => {
    return 10.0;
},
nms_EntityGhast_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            var$4 = var$3 % 20 | 0;
            if (((var$3 - var$4 | 0) + 19 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        if (var$4)
            return 0;
        var$1 = $this.$worldObj;
        var$5 = $this.$boundingBox0;
        var$6 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision(var$1, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7)
            return 0 && $this.$worldObj.$difficultySetting > 0 ? 1 : 0;
        var$1 = $this.$worldObj;
        var$5 = $this.$boundingBox0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes(var$1, $this, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!(var$1.$size0 ? 0 : 1))
            return 0 && $this.$worldObj.$difficultySetting > 0 ? 1 : 0;
        var$1 = $this.$worldObj;
        var$5 = $this.$boundingBox0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isAnyLiquid(var$1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$7 = var$7 ? 0 : 1;
        return var$7 && $this.$worldObj.$difficultySetting > 0 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityGhast_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$explosionStrength;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2298);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2298), $par1NBTTagCompound);
},
nms_EntityGhast_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2298).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2298).$nativeString.length)
                    break a;
                $rt_s(2298).$hashCode1 = (31 * $rt_s(2298).$hashCode1 | 0) + $rt_s(2298).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2298).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2298) !== var$6) {
                    if ($rt_s(2298) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2298).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        c: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2298).$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= $rt_s(2298).$nativeString.length)
                        break c;
                    $rt_s(2298).$hashCode1 = (31 * $rt_s(2298).$hashCode1 | 0) + $rt_s(2298).$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2298).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                d: {
                    var$6 = var$2.$key;
                    if ($rt_s(2298) !== var$6) {
                        if ($rt_s(2298) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2298).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break d;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2298) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2298).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2298).$nativeString.length)
                                break e;
                            $rt_s(2298).$hashCode1 = (31 * $rt_s(2298).$hashCode1 | 0) + $rt_s(2298).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2298).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$7) {
                        f: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(2298) !== $par1NBTTagCompound) {
                                if ($rt_s(2298) === $par1NBTTagCompound)
                                    var$3 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$3 = $rt_s(2298).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$3 = (var$6 === null ? null : var$6.$value0).$data;
        }
        $this.$explosionStrength = var$3;
    }
},
nms_EntityMob = $rt_classWithoutFields(nms_EntityCreature),
nms_EntityMob_onLivingUpdate = $this => {
    let $var1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var1 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = $this.$getBrightness($var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 > 0.5)
            $this.$entityAge = $this.$entityAge + 2 | 0;
        $ptr = 2;
    case 2:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $ptr);
},
nms_EntityMob_onUpdate = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote && !var$1.$difficultySetting)
                $this.$isDead = 1;
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && !var$1.$difficultySetting)
            $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityMob_findPlayerToAttack = $this => {
    let $var1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 16.0);
        if ($var1 === null) {
            $var1 = null;
            return $var1;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2)
            $var1 = null;
        return $var1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, $ptr);
},
nms_EntityMob_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        if ($this.$riddenByEntity !== $var3 && $this.$ridingEntity !== $var3) {
            if ($var3 !== $this)
                $this.$entityToAttack = $var3;
            return 1;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, $var3, $ptr);
},
nms_EntityMob_attackEntityAsMob = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, $var4, var$7, $var2, $var3, var$10, var$11, var$12, var$13, $var5, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var5 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = nms_SharedMonsterAttributes_attackDamage;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if (var$2 === null) {
            var$4 = var$3.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            a: {
                var$4 = var$2.$field_111115_a;
                if (!var$4.$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= var$4.$nativeString.length)
                            break a;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            $var4 = var$4.$hashCode1;
            var$7 = var$3.$elementData.data;
            var$4 = var$7[$var4 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var4) {
                    var$3 = var$4.$key;
                    if (var$2 !== var$3 && !jl_Object_equals(var$2, var$3) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$2 = var$4 === null ? null : var$4.$value0;
        if (var$2.$field_111133_g) {
            var$2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$2);
            var$2.$field_111133_g = 0;
        }
        $var2 = var$2.$field_111139_h;
        $var3 = 0;
        var$5 = $par1Entity instanceof nms_EntityLivingBase;
        if (var$5) {
            var$2 = $par1Entity;
            nms_EnchantmentHelper_$callClinit();
            var$4 = nms_EnchantmentHelper_enchantmentModifierLiving;
            var$4.$livingModifier = 0.0;
            var$4.$entityLiving = var$2;
            nms_EnchantmentHelper_applyEnchantmentModifier(var$4, $this.$equipment.data[0]);
            $var2 = $var2 + nms_EnchantmentHelper_enchantmentModifierLiving.$livingModifier;
            nms_Enchantment_$callClinit();
            $var3 = $var3 + nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_knockback.$effectId, $this.$equipment.data[0]) | 0;
        }
        var$2 = new nms_EntityDamageSource;
        var$2.$hungerDamage = 0.30000001192092896;
        var$2.$damageType = $rt_s(2288);
        var$2.$damageSourceEntity = $this;
        $ptr = 1;
    case 1:
        $tmp = $par1Entity.$attackEntityFrom(var$2, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            if ($var3 > 0) {
                $var2 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
                var$7 = nms_MathHelper_SIN_TABLE.data;
                var$10 = $var2 * 10430.3779296875;
                var$11 =  -var$7[(var$10 | 0) & 65535];
                $var2 = $var3;
                var$12 = var$11 * $var2 * 0.5;
                var$13 = var$7[(var$10 + 16384.0 | 0) & 65535] * $var2 * 0.5;
                $par1Entity.$motionX = $par1Entity.$motionX + var$12;
                $par1Entity.$motionY = $par1Entity.$motionY + 0.1;
                $par1Entity.$motionZ = $par1Entity.$motionZ + var$13;
                $par1Entity.$isAirBorne = 1;
                $this.$motionX = $this.$motionX * 0.6;
                $this.$motionZ = $this.$motionZ * 0.6;
            }
            nms_EnchantmentHelper_$callClinit();
            nms_Enchantment_$callClinit();
            $var5 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_fireAspect.$effectId, $this.$equipment.data[0]);
            if ($var5 > 0) {
                $var3 = ($var5 * 4 | 0) * 20 | 0;
                var$15 = nms_Enchantment_fireProtection.$effectId;
                var$7 = $par1Entity.$getLastActiveItems();
                if (var$7 === null)
                    var$16 = 0;
                else {
                    var$7 = var$7.data;
                    var$16 = 0;
                    $var5 = var$7.length;
                    var$17 = 0;
                    while (var$17 < $var5) {
                        var$18 = nms_EnchantmentHelper_getEnchantmentLevel(var$15, var$7[var$17]);
                        if (var$18 > var$16)
                            var$16 = var$18;
                        var$17 = var$17 + 1 | 0;
                    }
                }
                if (var$16 > 0) {
                    $var2 = $var3 * var$16 * 0.15000000596046448;
                    $var5 = $var2 | 0;
                    if ($var2 < $var5)
                        $var5 = $var5 - 1 | 0;
                    $var3 = $var3 - $var5 | 0;
                }
                if ($par1Entity.$fire < $var3)
                    $par1Entity.$fire = $var3;
            }
            if (var$5) {
                $par1Entity = $par1Entity;
                var$2 = $this.$rand;
                $ptr = 2;
                continue main;
            }
        }
        return $var4;
    case 2:
        nms_EnchantmentThorns_func_92096_a($this, $par1Entity, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return $var4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, $var4, var$7, $var2, $var3, var$10, var$11, var$12, var$13, $var5, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityMob_attackEntity = ($this, $par1Entity, $par2) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$attackTime <= 0 && $par2 < 2.0) {
            var$3 = $par1Entity.$boundingBox0;
            var$4 = var$3.$maxY;
            var$5 = $this.$boundingBox0;
            if (var$4 > var$5.$minY0 && var$3.$minY0 < var$5.$maxY) {
                $this.$attackTime = 20;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $this.$attackEntityAsMob($par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, var$3, var$4, var$5, $ptr);
},
nms_EntityMob_getBlockPathWeight = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = 0.5;
        var$5 = $this.$worldObj;
        var$6 = var$5.$provider.$lightBrightnessTable.data;
        var$7 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do(var$5, $par1, $par2, $par3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return var$4 - var$6[$par1];
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityMob_isValidLightLevel = $this => {
    let var$1, $var1, $var2, $var3, var$5, var$6, $var4, var$8, var$9, var$10, var$11, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$posX;
        $var1 = var$1 | 0;
        if (var$1 < $var1)
            $var1 = $var1 - 1 | 0;
        var$1 = $this.$boundingBox0.$minY0;
        $var2 = var$1 | 0;
        if (var$1 < $var2)
            $var2 = $var2 - 1 | 0;
        var$1 = $this.$posZ;
        $var3 = var$1 | 0;
        if (var$1 < $var3)
            $var3 = $var3 - 1 | 0;
        var$5 = $this.$worldObj;
        var$6 = nms_EnumSkyBlock_Sky;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getSavedLightValue(var$5, var$6, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$9 = 17;
        if ($var4 > Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$8, var$9)))), 31)))
            return 0;
        var$6 = $this.$worldObj;
        $var4 = 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockLightValue_do(var$6, $var1, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$6 = $this.$worldObj;
        var$10 = var$6.$prevThunderingStrength;
        var$10 = var$10 + (var$6.$thunderingStrength - var$10) * 1.0;
        var$11 = var$6.$prevRainingStrength;
        if (!(var$10 * (var$11 + (var$6.$rainingStrength - var$11) * 1.0) <= 0.9 ? 0 : 1)) {
            var$6 = $this.$rand;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            return $var4 > Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$8, var$9)))), 31)) ? 0 : 1;
        }
        $var5 = var$6.$skylightSubtracted;
        var$6.$skylightSubtracted = 10;
        $var4 = 1;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockLightValue_do(var$6, $var1, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $this.$worldObj.$skylightSubtracted = $var5;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        return $var4 > Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$8, var$9)))), 31)) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, $var3, var$5, var$6, $var4, var$8, var$9, var$10, var$11, $var5, $ptr);
},
nms_EntityMob_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$difficultySetting <= 0)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = $this.$isValidLightLevel();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!var$1)
            return 0;
        var$2 = $this.$posX;
        var$3 = var$2 | 0;
        if (var$2 < var$3)
            var$3 = var$3 - 1 | 0;
        var$4 = $this.$boundingBox0;
        var$2 = var$4.$minY0;
        var$5 = var$2 | 0;
        if (var$2 < var$5)
            var$5 = var$5 - 1 | 0;
        var$2 = $this.$posZ;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = $this.$worldObj;
        var$8 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_checkNoEntityCollision(var$7, var$4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1) {
            var$4 = $this.$worldObj;
            var$7 = $this.$boundingBox0;
            $ptr = 3;
            continue main;
        }
        if (!0)
            return !0 ? 0 : 1;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getCollidingBoundingBoxes(var$4, $this, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4.$size0 ? 0 : 1) {
            var$4 = $this.$worldObj;
            var$7 = $this.$boundingBox0;
            $ptr = 5;
            continue main;
        }
        if (!0)
            return !0 ? 0 : 1;
        $ptr = 4;
    case 4:
        $tmp = $this.$getBlockPathWeight(var$3, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        return !(var$9 < 0.0 ? 0 : 1) ? 0 : 1;
    case 5:
        $tmp = nms_World_isAnyLiquid(var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!(var$1 ? 0 : 1))
            return !0 ? 0 : 1;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
};
function nms_EntityZombie() {
    nms_EntityMob.call(this);
    this.$conversionTime = 0;
}
let nms_EntityZombie_field_110186_bp = null,
nms_EntityZombie_babySpeedBoostUUID = null,
nms_EntityZombie_babySpeedBoostModifier = null,
nms_EntityZombie_$callClinit = () => {
    nms_EntityZombie_$callClinit = $rt_eraseClinit(nms_EntityZombie);
    nms_EntityZombie__clinit_();
},
nms_EntityZombie__init_0 = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_EntityZombie_$callClinit();
    nms_EntityCreature_$callClinit();
    nms_EntityLiving__init_($this, $par1World);
    $par1World = new nms_ChunkCoordinates;
    $par1World.$posX0 = 0;
    $par1World.$posY0 = 0;
    $par1World.$posZ0 = 0;
    $this.$homePosition = $par1World;
    $this.$maximumHomeDistance = (-1.0);
    $par1World = new nms_EntityAIMoveTowardsRestriction;
    $par1World.$theEntity0 = $this;
    $par1World.$movementSpeed = 1.0;
    $par1World.$mutexBits = 1;
    $this.$field_110178_bs = $par1World;
    $this.$experienceValue = 5;
    var$2 = $this.$navigator;
    var$2.$canPassClosedWoodenDoors = 1;
    var$3 = $this.$tasks0;
    $par1World = new nms_EntityAISwimming;
    $par1World.$theEntity3 = $this;
    $par1World.$mutexBits = 4;
    var$2.$canSwim = 1;
    var$4 = var$3.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = var$3;
    var$2.$priority = 0;
    var$2.$action = $par1World;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAIBreakDoor;
    var$3.$theEntity1 = $this;
    var$3.$field_75358_j = (-1);
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 1;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    var$3 = $this.$tasks0;
    var$2 = new nms_EntityAIAttackOnCollide;
    var$2.$attacker = $this;
    var$2.$worldObj17 = $this.$worldObj;
    var$2.$field_75440_e = 1.0;
    var$2.$longMemory = 0;
    var$2.$mutexBits = 3;
    var$2.$classTarget = $rt_cls(nms_EntityPlayer);
    var$4 = var$3.$taskEntries;
    $par1World = new nms_EntityAITaskEntry;
    $par1World.$tasks = var$3;
    $par1World.$priority = 2;
    $par1World.$action = var$2;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = $par1World;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAIAttackOnCollide;
    var$3.$attacker = $this;
    var$3.$worldObj17 = $this.$worldObj;
    var$3.$field_75440_e = 1.0;
    var$3.$longMemory = 1;
    var$3.$mutexBits = 3;
    var$3.$classTarget = $rt_cls(nms_EntityVillager);
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 3;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAIMoveTowardsRestriction;
    var$3.$theEntity0 = $this;
    var$3.$movementSpeed = 1.0;
    var$3.$mutexBits = 1;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 4;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAIMoveThroughVillage;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    var$3.$doorList = var$2;
    var$3.$theEntity2 = $this;
    var$3.$movementSpeed0 = 1.0;
    var$3.$isNocturnal = 0;
    var$3.$mutexBits = 1;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 5;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAIWander;
    var$3.$entity = $this;
    var$3.$speed = 1.0;
    var$3.$mutexBits = 1;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 6;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAIWatchClosest;
    var$3.$theWatcher = $this;
    var$3.$watchedClass = $rt_cls(nms_EntityPlayer);
    var$3.$maxDistanceForPlayer = 8.0;
    var$3.$field_75331_e = 0.019999999552965164;
    var$3.$mutexBits = 2;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 7;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$3 = new nms_EntityAILookIdle;
    var$3.$idleEntity = $this;
    var$3.$mutexBits = 3;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 7;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$3 = new nms_EntityAIHurtByTarget;
    var$3.$taskOwner = $this;
    var$3.$shouldCheckSight = 0;
    var$3.$nearbyOnly = 0;
    var$3.$entityCallsForHelp = 1;
    var$3.$mutexBits = 1;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 1;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$3 = new nms_EntityAINearestAttackableTarget;
    var$4 = null;
    var$3.$taskOwner = $this;
    var$3.$shouldCheckSight = 1;
    var$3.$nearbyOnly = 0;
    var$3.$targetClass = $rt_cls(nms_EntityPlayer);
    var$3.$targetChance = 0;
    var$2 = new nms_EntityAINearestAttackableTargetSorter;
    var$2.$theEntity5 = $this;
    var$3.$theNearestAttackableTargetSorter = var$2;
    var$3.$mutexBits = 1;
    var$2 = new nms_EntityAINearestAttackableTargetSelector;
    var$2.$field_111102_d = var$3;
    var$2.$field_111103_c = var$4;
    var$3.$targetEntitySelector = var$2;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 2;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$3 = new nms_EntityAINearestAttackableTarget;
    var$4 = null;
    var$3.$taskOwner = $this;
    var$3.$shouldCheckSight = 0;
    var$3.$nearbyOnly = 0;
    var$3.$targetClass = $rt_cls(nms_EntityVillager);
    var$3.$targetChance = 0;
    var$2 = new nms_EntityAINearestAttackableTargetSorter;
    var$2.$theEntity5 = $this;
    var$3.$theNearestAttackableTargetSorter = var$2;
    var$3.$mutexBits = 1;
    var$2 = new nms_EntityAINearestAttackableTargetSelector;
    var$2.$field_111102_d = var$3;
    var$2.$field_111103_c = var$4;
    var$3.$targetEntitySelector = var$2;
    var$4 = $par1World.$taskEntries;
    var$2 = new nms_EntityAITaskEntry;
    var$2.$tasks = $par1World;
    var$2.$priority = 2;
    var$2.$action = var$3;
    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
    var$5 = var$4.$array.data;
    var$6 = var$4.$size0;
    var$4.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$2;
    var$4.$modCount = var$4.$modCount + 1 | 0;
},
nms_EntityZombie__init_ = var_0 => {
    let var_1 = new nms_EntityZombie();
    nms_EntityZombie__init_0(var_1, var_0);
    return var_1;
},
nms_EntityZombie_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if (!$this.$isAIEnabled()) {
        var$1 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$1 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$1);
        var$2 = var$1 === null ? null : var$1.$value0;
        if (0.10000000149011612 !== var$2.$baseValue) {
            var$2.$baseValue = 0.10000000149011612;
            var$2.$field_111133_g = 1;
            var$1 = var$2.$field_111138_a;
            if (var$2.$field_111136_b.$shouldWatch) {
                var$1 = var$1.$field_111162_d;
                ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
            }
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_followRange;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (40.0 !== var$2.$baseValue) {
        var$2.$baseValue = 40.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        b: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break b;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (0.23000000417232513 !== var$2.$baseValue) {
        var$2.$baseValue = 0.23000000417232513;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_attackDamage;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        c: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break c;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (3.0 !== var$2.$baseValue) {
        var$2.$baseValue = 3.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap;
    nms_EntityZombie_$callClinit();
    var$1 = nms_ServersideAttributeMap_func_111150_b(var$3, nms_EntityZombie_field_110186_bp);
    var$3 = $this.$rand;
    var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$3.$seed = var$7;
    var$8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$7, 22))), 27);
    var$9 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$3.$seed = var$9;
    var$10 = Long_toNumber(Long_add(var$8, Long_fromInt(Long_lo(Long_shru(var$9, 21))))) * 1.1102230246251565E-16 * 0.10000000149011612;
    if (var$10 !== var$1.$baseValue) {
        var$1.$baseValue = var$10;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
},
nms_EntityZombie_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    nms_DataWatcher_addObject($this.$dataWatcher, 12, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 13, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 14, jl_Byte_byteCache.data[128]);
},
nms_EntityZombie_getTotalArmorValue = $this => {
    let $var1;
    $var1 = nms_EntityLivingBase_getTotalArmorValue($this) + 2 | 0;
    if ($var1 > 20)
        $var1 = 20;
    return $var1;
},
nms_EntityZombie_isAIEnabled = $this => {
    return 1;
},
nms_EntityZombie_isChild = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[140];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 != 1 ? 0 : 1;
},
nms_EntityZombie_setChild = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = $this.$dataWatcher;
    var$3 = (!$par1 ? 0 : 1) << 24 >> 24;
    var$4 = jl_Byte_byteCache.data[var$3 + 128 | 0];
    var$5 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[140];
    if (var$6 === null) {
        var$5 = var$5.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        var$7 = var$6.$value;
        var$8 = var$5.$elementData.data;
        var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$7) {
                var$9 = var$5.$key;
                if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$5 = var$5.$next3;
        }
    }
    var$9 = var$5 === null ? null : var$5.$value0;
    var$5 = var$9.$watchedObject;
    if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$4.$value1 ? 1 : 0)) {
        var$9.$watchedObject = var$4;
        var$9.$watched = 1;
        var$2.$objectChanged = 1;
    }
    var$5 = $this.$worldObj;
    if (var$5 !== null && !var$5.$isRemote) {
        var$5 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$9 = $this.$attributeMap.$attributes;
        if (var$5 === null) {
            var$9 = var$9.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            a: {
                var$4 = var$5.$field_111115_a;
                if (!var$4.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= var$4.$nativeString.length)
                            break a;
                        var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = var$4.$hashCode1;
            var$8 = var$9.$elementData.data;
            var$9 = var$8[var$3 & (var$8.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$3) {
                    var$4 = var$9.$key;
                    if (var$5 !== var$4 && !jl_Object_equals(var$5, var$4) ? 0 : 1)
                        break;
                }
                var$9 = var$9.$next3;
            }
        }
        var$9 = var$9 === null ? null : var$9.$value0;
        nms_EntityZombie_$callClinit();
        nms_ModifiableAttributeInstance_removeModifier(var$9, nms_EntityZombie_babySpeedBoostModifier);
        if ($par1)
            nms_ModifiableAttributeInstance_applyModifier(var$9, nms_EntityZombie_babySpeedBoostModifier);
    }
},
nms_EntityZombie_isVillager = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[141];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 != 1 ? 0 : 1;
},
nms_EntityZombie_setVillager = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    $par1 = (!$par1 ? 0 : 1) << 24 >> 24;
    var$3 = jl_Byte_byteCache.data[$par1 + 128 | 0];
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[141];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$8 = var$4 === null ? null : var$4.$value0;
    var$4 = var$8.$watchedObject;
    if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$3.$value1 ? 1 : 0)) {
        var$8.$watchedObject = var$3;
        var$8.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityZombie_onLivingUpdate = $this => {
    let var$1, $var2, $var3, var$4, var$5, var$6, $var1, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var1 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        $var2 = var$1.$skylightSubtracted >= 4 ? 0 : 1;
        if ($var2 && !var$1.$isRemote) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var3 = jl_Integer_integerCache.data[140];
            if ($var3 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                $var2 = $var3.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[$var2 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == $var2) {
                        var$5 = var$1.$key;
                        if ($var3 !== var$5 && !($var3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var2 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(var$1.$watchedObject.$value1 != 1 ? 0 : 1)) {
                var$6 = 1.0;
                $ptr = 3;
                continue main;
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$6 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_getBrightness($this, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 > 0.5)
            $this.$entityAge = $this.$entityAge + 2 | 0;
        $ptr = 2;
    case 2:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        a: {
            $tmp = nms_Entity_getBrightness($this, var$6);
            if ($rt_suspending()) {
                break main;
            }
            $var1 = $tmp;
            if ($var1 > 0.5) {
                var$1 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$8;
                if (Long_lo(Long_shru(var$8, 24)) / 1.6777216E7 * 30.0 < ($var1 - 0.4000000059604645) * 2.0) {
                    var$1 = $this.$worldObj;
                    var$9 = $this.$posX;
                    var$10 = var$9 | 0;
                    if (var$9 < var$10)
                        var$10 = var$10 - 1 | 0;
                    var$9 = $this.$posY;
                    var$11 = var$9 | 0;
                    if (var$9 < var$11)
                        var$11 = var$11 - 1 | 0;
                    var$9 = $this.$posZ;
                    var$12 = var$9 | 0;
                    if (var$9 < var$12)
                        var$12 = var$12 - 1 | 0;
                    var$13 = var$10 >> 4;
                    var$14 = var$12 >> 4;
                    var$1 = var$1.$chunkProvider;
                    $var3 = var$1.$loadedChunkHashMap;
                    var$8 = Long_or(Long_and(Long_fromInt(var$13), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)), 32));
                    var$15 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
                    $var2 = var$15 ^ (var$15 >>> 20 | 0) ^ (var$15 >>> 12 | 0);
                    $var2 = $var2 ^ ($var2 >>> 7 | 0) ^ ($var2 >>> 4 | 0);
                    var$4 = $var3.$hashArray.data;
                    $var3 = var$4[$var2 & (var$4.length - 1 | 0)];
                    b: {
                        while ($var3 !== null) {
                            if (Long_eq($var3.$key1, var$8)) {
                                $var3 = $var3.$value4;
                                break b;
                            }
                            $var3 = $var3.$nextEntry;
                        }
                        $var3 = null;
                    }
                    $var3 = $var3;
                    if ($var3 === null) {
                        if (var$1.$worldObj0.$findingSpawnPoint)
                            break a;
                        if (var$1.$loadChunkOnProvideRequest)
                            break a;
                        $var3 = var$1.$defaultEmptyChunk;
                    }
                    if ($var3.$canBlockSeeTheSky(var$10 & 15, var$11, var$12 & 15)) {
                        $var2 = 1;
                        $var3 = $this.$equipment.data[4];
                        if ($var3 !== null) {
                            nms_Item_$callClinit();
                            var$4 = nms_Item_itemsList.data;
                            var$16 = $var3.$itemID;
                            if (var$4[var$16].$maxDamage <= 0 ? 0 : 1) {
                                var$13 = $var3.$itemDamage;
                                var$1 = $this.$rand;
                                var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$1.$seed = var$8;
                                $var2 = var$13 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$8, 17)))), 31)) | 0;
                                $var3.$itemDamage = $var2;
                                if ($var2 < 0)
                                    $var3.$itemDamage = 0;
                                if ($var3.$itemDamage >= var$4[var$16].$maxDamage) {
                                    $ptr = 5;
                                    continue main;
                                }
                            }
                            $var2 = 0;
                        }
                        if ($var2) {
                            $var2 = 160;
                            nms_Enchantment_$callClinit();
                            var$13 = nms_Enchantment_fireProtection.$effectId;
                            var$4 = $this.$equipment;
                            nms_EnchantmentHelper_$callClinit();
                            if (var$4 === null)
                                var$16 = 0;
                            else {
                                var$4 = var$4.data;
                                var$16 = 0;
                                var$15 = var$4.length;
                                var$12 = 0;
                                while (var$12 < var$15) {
                                    var$11 = nms_EnchantmentHelper_getEnchantmentLevel(var$13, var$4[var$12]);
                                    if (var$11 > var$16)
                                        var$16 = var$11;
                                    var$12 = var$12 + 1 | 0;
                                }
                            }
                            if (var$16 > 0) {
                                var$6 = 160.0 * var$16 * 0.15000000596046448;
                                var$13 = var$6 | 0;
                                if (var$6 < var$13)
                                    var$13 = var$13 - 1 | 0;
                                $var2 = $var2 - var$13 | 0;
                            }
                            if ($this.$fire < $var2)
                                $this.$fire = $var2;
                        }
                    }
                }
            }
            nms_EntityLivingBase_updateArmSwingProgress($this);
            var$6 = 1.0;
            $ptr = 1;
            continue main;
        }
        $ptr = 4;
    case 4:
        $tmp = nms_ChunkProviderServer_loadChunk(var$1, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3.$canBlockSeeTheSky(var$10 & 15, var$11, var$12 & 15)) {
            $var2 = 1;
            $var3 = $this.$equipment.data[4];
            if ($var3 !== null) {
                nms_Item_$callClinit();
                var$4 = nms_Item_itemsList.data;
                var$16 = $var3.$itemID;
                if (var$4[var$16].$maxDamage <= 0 ? 0 : 1) {
                    var$13 = $var3.$itemDamage;
                    var$1 = $this.$rand;
                    var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$8;
                    $var2 = var$13 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$8, 17)))), 31)) | 0;
                    $var3.$itemDamage = $var2;
                    if ($var2 < 0)
                        $var3.$itemDamage = 0;
                    if ($var3.$itemDamage >= var$4[var$16].$maxDamage) {
                        $ptr = 5;
                        continue main;
                    }
                }
                $var2 = 0;
            }
            if ($var2) {
                $var2 = 160;
                nms_Enchantment_$callClinit();
                var$13 = nms_Enchantment_fireProtection.$effectId;
                var$4 = $this.$equipment;
                nms_EnchantmentHelper_$callClinit();
                if (var$4 === null)
                    var$16 = 0;
                else {
                    var$4 = var$4.data;
                    var$16 = 0;
                    var$15 = var$4.length;
                    var$12 = 0;
                    while (var$12 < var$15) {
                        var$11 = nms_EnchantmentHelper_getEnchantmentLevel(var$13, var$4[var$12]);
                        if (var$11 > var$16)
                            var$16 = var$11;
                        var$12 = var$12 + 1 | 0;
                    }
                }
                if (var$16 > 0) {
                    var$6 = 160.0 * var$16 * 0.15000000596046448;
                    var$13 = var$6 | 0;
                    if (var$6 < var$13)
                        var$13 = var$13 - 1 | 0;
                    $var2 = $var2 - var$13 | 0;
                }
                if ($this.$fire < $var2)
                    $this.$fire = $var2;
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$6 = 1.0;
        $ptr = 1;
        continue main;
    case 5:
        nms_EntityLivingBase_renderBrokenItemStack($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = null;
        $this.$equipment.data[4] = var$1;
        if (0) {
            $var2 = 160;
            nms_Enchantment_$callClinit();
            var$13 = nms_Enchantment_fireProtection.$effectId;
            var$4 = $this.$equipment;
            nms_EnchantmentHelper_$callClinit();
            if (var$4 === null)
                var$16 = 0;
            else {
                var$4 = var$4.data;
                var$16 = 0;
                var$15 = var$4.length;
                var$12 = 0;
                while (var$12 < var$15) {
                    var$11 = nms_EnchantmentHelper_getEnchantmentLevel(var$13, var$4[var$12]);
                    if (var$11 > var$16)
                        var$16 = var$11;
                    var$12 = var$12 + 1 | 0;
                }
            }
            if (var$16 > 0) {
                var$6 = 160.0 * var$16 * 0.15000000596046448;
                var$13 = var$6 | 0;
                if (var$6 < var$13)
                    var$13 = var$13 - 1 | 0;
                $var2 = $var2 - var$13 | 0;
            }
            if ($this.$fire < $var2)
                $this.$fire = $var2;
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$6 = 1.0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var2, $var3, var$4, var$5, var$6, $var1, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityZombie_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, $var7, var$5, var$6, var$7, $var10, var$9, $var4, $var5, $var6, $var8, var$14, var$15, var$16, var$17, var$18, $var11, $var9, var$21, var$22, var$23, var$24, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var9 = $thread.pop();$var11 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();$var10 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();$par2
        = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$invulnerable) {
            $ptr = 1;
            continue main;
        }
        if (!0)
            return 0;
        $var3 = $this.$attackTarget;
        if ($var3 === null) {
            $var7 = $this.$entityToAttack;
            if ($var7 instanceof nms_EntityLivingBase)
                $var3 = $var7;
        }
        if ($var3 === null && $par1DamageSource.$getEntity() instanceof nms_EntityLivingBase)
            $var3 = $par1DamageSource.$getEntity();
        if ($var3 !== null && $this.$worldObj.$difficultySetting >= 3) {
            $par1DamageSource = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 24)) / 1.6777216E7;
            nms_EntityZombie_$callClinit();
            $par1DamageSource = nms_EntityZombie_field_110186_bp;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            $var7 = $this.$attributeMap.$attributes;
            if ($par1DamageSource === null) {
                $var7 = $var7.$elementData.data[0];
                while ($var7 !== null && $var7.$key !== null) {
                    $var7 = $var7.$next3;
                }
            } else {
                a: {
                    var$7 = $par1DamageSource.$field_111115_a;
                    if (!var$7.$hashCode1) {
                        $var10 = 0;
                        while (true) {
                            if ($var10 >= var$7.$nativeString.length)
                                break a;
                            var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt($var10) | 0;
                            $var10 = $var10 + 1 | 0;
                        }
                    }
                }
                $var10 = var$7.$hashCode1;
                var$9 = $var7.$elementData.data;
                $var7 = var$9[$var10 & (var$9.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == $var10) {
                        var$7 = $var7.$key;
                        if ($par1DamageSource !== var$7 && !jl_Object_equals($par1DamageSource, var$7) ? 0 : 1)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
            }
            $par1DamageSource = $var7 === null ? null : $var7.$value0;
            if ($par1DamageSource.$field_111133_g) {
                $par1DamageSource.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1DamageSource);
                $par1DamageSource.$field_111133_g = 0;
            }
            if (var$6 < $par1DamageSource.$field_111139_h) {
                var$6 = $this.$posX;
                $var4 = var$6 | 0;
                if (var$6 < $var4)
                    $var4 = $var4 - 1 | 0;
                var$6 = $this.$posY;
                $var5 = var$6 | 0;
                if (var$6 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$6 = $this.$posZ;
                $var6 = var$6 | 0;
                if (var$6 < $var6)
                    $var6 = $var6 - 1 | 0;
                $var7 = nms_EntityZombie__init_($this.$worldObj);
                $var8 = 0;
                $par1DamageSource = null;
                var$14 = 3;
                var$15 = 17;
                var$16 = 2;
                var$17 = 34;
                var$18 = 33;
                if ($var8 < 50) {
                    var$7 = $this.$rand;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    $var11 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        $var9 = $var11 % var$17 | 0;
                        if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        $var11 = Long_lo(Long_shru(var$5, var$15));
                    }
                    var$21 = $var9 + 7 | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    $var10 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        $var11 = $var10 % var$14 | 0;
                        if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        $var10 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    $var10 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        $var11 = $var10 % var$17 | 0;
                        if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        $var10 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var10 = $var11 + 7 | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    var$21 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        var$22 = var$21 % var$14 | 0;
                        if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        var$21 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    var$21 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        var$22 = var$21 % var$17 | 0;
                        if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        var$21 = Long_lo(Long_shru(var$5, var$15));
                    }
                    var$21 = var$22 + 7 | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    var$22 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        var$23 = var$22 % var$14 | 0;
                        if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        var$22 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
                    var$7 = $this.$worldObj;
                    var$21 = $var10 - 1 | 0;
                    nms_Block_$callClinit();
                    var$9 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!$var10)
            $var10 = 0;
        else {
            $var3 = $par1DamageSource.$getEntity();
            if ($this.$riddenByEntity !== $var3 && $this.$ridingEntity !== $var3) {
                if ($var3 !== $this)
                    $this.$entityToAttack = $var3;
                $var10 = 1;
            } else
                $var10 = 1;
        }
        if (!$var10)
            return 0;
        $var3 = $this.$attackTarget;
        if ($var3 === null) {
            $var7 = $this.$entityToAttack;
            if ($var7 instanceof nms_EntityLivingBase)
                $var3 = $var7;
        }
        if ($var3 === null && $par1DamageSource.$getEntity() instanceof nms_EntityLivingBase)
            $var3 = $par1DamageSource.$getEntity();
        if ($var3 !== null && $this.$worldObj.$difficultySetting >= 3) {
            $par1DamageSource = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 24)) / 1.6777216E7;
            nms_EntityZombie_$callClinit();
            $par1DamageSource = nms_EntityZombie_field_110186_bp;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            $var7 = $this.$attributeMap.$attributes;
            if ($par1DamageSource === null) {
                $var7 = $var7.$elementData.data[0];
                while ($var7 !== null && $var7.$key !== null) {
                    $var7 = $var7.$next3;
                }
            } else {
                b: {
                    var$7 = $par1DamageSource.$field_111115_a;
                    if (!var$7.$hashCode1) {
                        $var10 = 0;
                        while (true) {
                            if ($var10 >= var$7.$nativeString.length)
                                break b;
                            var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt($var10) | 0;
                            $var10 = $var10 + 1 | 0;
                        }
                    }
                }
                $var10 = var$7.$hashCode1;
                var$9 = $var7.$elementData.data;
                $var7 = var$9[$var10 & (var$9.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == $var10) {
                        var$7 = $var7.$key;
                        if ($par1DamageSource !== var$7 && !jl_Object_equals($par1DamageSource, var$7) ? 0 : 1)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
            }
            $par1DamageSource = $var7 === null ? null : $var7.$value0;
            if ($par1DamageSource.$field_111133_g) {
                $par1DamageSource.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1DamageSource);
                $par1DamageSource.$field_111133_g = 0;
            }
            if (var$6 < $par1DamageSource.$field_111139_h) {
                var$6 = $this.$posX;
                $var4 = var$6 | 0;
                if (var$6 < $var4)
                    $var4 = $var4 - 1 | 0;
                var$6 = $this.$posY;
                $var5 = var$6 | 0;
                if (var$6 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$6 = $this.$posZ;
                $var6 = var$6 | 0;
                if (var$6 < $var6)
                    $var6 = $var6 - 1 | 0;
                $var7 = nms_EntityZombie__init_($this.$worldObj);
                $var8 = 0;
                $par1DamageSource = null;
                var$14 = 3;
                var$15 = 17;
                var$16 = 2;
                var$17 = 34;
                var$18 = 33;
                if ($var8 < 50) {
                    var$7 = $this.$rand;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    $var11 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        $var9 = $var11 % var$17 | 0;
                        if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        $var11 = Long_lo(Long_shru(var$5, var$15));
                    }
                    var$21 = $var9 + 7 | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    $var10 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        $var11 = $var10 % var$14 | 0;
                        if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        $var10 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    $var10 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        $var11 = $var10 % var$17 | 0;
                        if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        $var10 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var10 = $var11 + 7 | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    var$21 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        var$22 = var$21 % var$14 | 0;
                        if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        var$21 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    var$21 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        var$22 = var$21 % var$17 | 0;
                        if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        var$21 = Long_lo(Long_shru(var$5, var$15));
                    }
                    var$21 = var$22 + 7 | 0;
                    var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$7.$seed = var$5;
                    var$22 = Long_lo(Long_shru(var$5, var$15));
                    while (true) {
                        var$23 = var$22 % var$14 | 0;
                        if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                            break;
                        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$7.$seed = var$5;
                        var$22 = Long_lo(Long_shru(var$5, var$15));
                    }
                    $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
                    var$7 = $this.$worldObj;
                    var$21 = $var10 - 1 | 0;
                    nms_Block_$callClinit();
                    var$9 = nms_Block_blocksList.data;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return 1;
    case 2:
        $tmp = nms_World_getBlockId(var$7, $var9, var$21, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$22 = $tmp;
        var$24 = var$9[var$22];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata(var$7, $var9, var$21, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid(var$7, var$24, var$21)) {
            var$7 = $this.$worldObj;
            var$21 = 1;
            $ptr = 4;
            continue main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= 50)
            return 1;
        var$7 = $this.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var11 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var9 = $var11 % var$17 | 0;
            if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var11 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = $var9 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$14 | 0;
            if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$17 | 0;
            if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var11 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$14 | 0;
            if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$17 | 0;
            if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = var$22 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$22 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$23 = var$22 % var$14 | 0;
            if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$22 = Long_lo(Long_shru(var$5, var$15));
        }
        $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
        var$7 = $this.$worldObj;
        var$21 = $var10 - 1 | 0;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_World_getBlockLightValue_do(var$7, $var9, $var10, $var11, var$21);
        if ($rt_suspending()) {
            break main;
        }
        var$22 = $tmp;
        if (var$22 < 10) {
            nms_Entity_setPosition($var7, $var9, $var10, $var11);
            var$7 = $this.$worldObj;
            var$24 = $var7.$boundingBox0;
            $ptr = 5;
            continue main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= 50)
            return 1;
        var$7 = $this.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var11 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var9 = $var11 % var$17 | 0;
            if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var11 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = $var9 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$14 | 0;
            if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$17 | 0;
            if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var11 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$14 | 0;
            if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$17 | 0;
            if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = var$22 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$22 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$23 = var$22 % var$14 | 0;
            if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$22 = Long_lo(Long_shru(var$5, var$15));
        }
        $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
        var$7 = $this.$worldObj;
        var$21 = $var10 - 1 | 0;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    case 5:
        $tmp = nms_World_checkNoEntityCollision(var$7, var$24, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10) {
            var$7 = $this.$worldObj;
            var$24 = $var7.$boundingBox0;
            $ptr = 6;
            continue main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= 50)
            return 1;
        var$7 = $this.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var11 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var9 = $var11 % var$17 | 0;
            if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var11 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = $var9 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$14 | 0;
            if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$17 | 0;
            if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var11 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$14 | 0;
            if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$17 | 0;
            if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = var$22 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$22 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$23 = var$22 % var$14 | 0;
            if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$22 = Long_lo(Long_shru(var$5, var$15));
        }
        $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
        var$7 = $this.$worldObj;
        var$21 = $var10 - 1 | 0;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    case 6:
        $tmp = nms_World_getCollidingBoundingBoxes(var$7, $var7, var$24);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7.$size0 ? 0 : 1) {
            var$7 = $this.$worldObj;
            var$24 = $var7.$boundingBox0;
            $ptr = 7;
            continue main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= 50)
            return 1;
        var$7 = $this.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var11 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var9 = $var11 % var$17 | 0;
            if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var11 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = $var9 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$14 | 0;
            if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$17 | 0;
            if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var11 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$14 | 0;
            if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$17 | 0;
            if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = var$22 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$22 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$23 = var$22 % var$14 | 0;
            if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$22 = Long_lo(Long_shru(var$5, var$15));
        }
        $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
        var$7 = $this.$worldObj;
        var$21 = $var10 - 1 | 0;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    case 7:
        $tmp = nms_World_isAnyLiquid(var$7, var$24);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!$var10) {
            $par1DamageSource = $this.$worldObj;
            $ptr = 8;
            continue main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= 50)
            return 1;
        var$7 = $this.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var11 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var9 = $var11 % var$17 | 0;
            if ((($var11 - $var9 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var11 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = $var9 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$14 | 0;
            if ((($var10 - $var11 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var9 = $var4 + $rt_imul(var$21, $var11 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        $var10 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            $var11 = $var10 % var$17 | 0;
            if ((($var10 - $var11 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            $var10 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var11 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$14 | 0;
            if (((var$21 - var$22 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        $var10 = $var5 + $rt_imul($var10, var$22 + (-1) | 0) | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$21 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$22 = var$21 % var$17 | 0;
            if (((var$21 - var$22 | 0) + var$18 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$21 = Long_lo(Long_shru(var$5, var$15));
        }
        var$21 = var$22 + 7 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$5;
        var$22 = Long_lo(Long_shru(var$5, var$15));
        while (true) {
            var$23 = var$22 % var$14 | 0;
            if (((var$22 - var$23 | 0) + var$16 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$5;
            var$22 = Long_lo(Long_shru(var$5, var$15));
        }
        $var11 = $var6 + $rt_imul(var$21, var$23 + (-1) | 0) | 0;
        var$7 = $this.$worldObj;
        var$21 = $var10 - 1 | 0;
        nms_Block_$callClinit();
        var$9 = nms_Block_blocksList.data;
        $ptr = 2;
        continue main;
    case 8:
        nms_World_spawnEntityInWorld($par1DamageSource, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7.$attackTarget = $var3;
        $par1DamageSource = null;
        $ptr = 9;
    case 9:
        nms_EntityZombie_onSpawnWithEgg($var7, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        $par1DamageSource = nms_EntityZombie_field_110186_bp;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        $var3 = $this.$attributeMap.$attributes;
        if ($par1DamageSource === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            c: {
                var$7 = $par1DamageSource.$field_111115_a;
                if (!var$7.$hashCode1) {
                    $var10 = 0;
                    while (true) {
                        if ($var10 >= var$7.$nativeString.length)
                            break c;
                        var$7.$hashCode1 = (31 * var$7.$hashCode1 | 0) + var$7.$nativeString.charCodeAt($var10) | 0;
                        $var10 = $var10 + 1 | 0;
                    }
                }
            }
            $var4 = var$7.$hashCode1;
            var$9 = $var3.$elementData.data;
            $var3 = var$9[$var4 & (var$9.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == $var4) {
                    var$7 = $var3.$key;
                    if ($par1DamageSource !== var$7 && !jl_Object_equals($par1DamageSource, var$7) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        var$24 = $var3 === null ? null : $var3.$value0;
        $par1DamageSource = new nms_AttributeModifier;
        var$7 = nle_ProfileUUID_randomUUID();
        $par1DamageSource.$isSaved = 1;
        $par1DamageSource.$id1 = var$7;
        $par1DamageSource.$name3 = $rt_s(2299);
        $par1DamageSource.$amount0 = (-0.05000000074505806);
        $par1DamageSource.$operation = 0;
        if ($rt_s(2299) === $rt_s(3))
            $var10 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            $var10 = 0;
        else {
            var$7 = $rt_s(3);
            $var10 = $rt_s(2299).$nativeString !== var$7.$nativeString ? 0 : 1;
        }
        if ($var10) {
            $var3 = new jl_IllegalArgumentException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $rt_s(1279);
            $rt_throw($var3);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$24, $par1DamageSource);
        $par1DamageSource = nms_EntityZombie_field_110186_bp;
        if ($var7.$attributeMap === null)
            $var7.$attributeMap = nms_ServersideAttributeMap__init_();
        $var3 = $var7.$attributeMap.$attributes;
        if ($par1DamageSource === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            d: {
                $var7 = $par1DamageSource.$field_111115_a;
                if (!$var7.$hashCode1) {
                    $var10 = 0;
                    while (true) {
                        if ($var10 >= $var7.$nativeString.length)
                            break d;
                        $var7.$hashCode1 = (31 * $var7.$hashCode1 | 0) + $var7.$nativeString.charCodeAt($var10) | 0;
                        $var10 = $var10 + 1 | 0;
                    }
                }
            }
            $var4 = $var7.$hashCode1;
            var$9 = $var3.$elementData.data;
            $var3 = var$9[$var4 & (var$9.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == $var4) {
                    $var7 = $var3.$key;
                    if ($par1DamageSource !== $var7 && !jl_Object_equals($par1DamageSource, $var7) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        var$7 = $var3 === null ? null : $var3.$value0;
        $par1DamageSource = new nms_AttributeModifier;
        $var7 = nle_ProfileUUID_randomUUID();
        $par1DamageSource.$isSaved = 1;
        $par1DamageSource.$id1 = $var7;
        $par1DamageSource.$name3 = $rt_s(2300);
        $par1DamageSource.$amount0 = (-0.05000000074505806);
        $par1DamageSource.$operation = 0;
        if ($rt_s(2300) === $rt_s(3))
            $var10 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            $var10 = 0;
        else {
            $var7 = $rt_s(3);
            $var10 = $rt_s(2300).$nativeString !== $var7.$nativeString ? 0 : 1;
        }
        if (!$var10) {
            nms_ModifiableAttributeInstance_applyModifier(var$7, $par1DamageSource);
            return 1;
        }
        $var3 = new jl_IllegalArgumentException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $var3.$message = $rt_s(1279);
        $rt_throw($var3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, $var7, var$5, var$6, var$7, $var10, var$9, $var4, $var5, $var6, $var8, var$14, var$15, var$16, var$17, var$18, $var11, $var9, var$21, var$22, var$23, var$24, $ptr);
},
nms_EntityZombie_onUpdate = $this => {
    let var$1, $var1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && nms_EntityZombie_isConverting($this)) {
            $ptr = 3;
            continue main;
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote && !var$1.$difficultySetting)
                $this.$isDead = 1;
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && !var$1.$difficultySetting)
            $this.$isDead = 1;
        return;
    case 3:
        $tmp = nms_EntityZombie_getConversionTimeBoost($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $var1 = $this.$conversionTime - $var1 | 0;
        $this.$conversionTime = $var1;
        if ($var1 <= 0) {
            $ptr = 4;
            continue main;
        }
        $ptr = 1;
        continue main;
    case 4:
        nms_EntityZombie_convertToVillager($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $ptr);
},
nms_EntityZombie_attackEntityAsMob = ($this, $par1Entity) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityMob_attackEntityAsMob($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 && $this.$equipment.data[0] === null) {
            a: {
                b: {
                    if (!$this.$isImmuneToFire) {
                        if ($this.$fire > 0)
                            break b;
                        var$3 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$4 = jl_Integer_integerCache.data[128];
                        if (var$4 === null) {
                            var$3 = var$3.$elementData.data[0];
                            while (var$3 !== null && var$3.$key !== null) {
                                var$3 = var$3.$next3;
                            }
                        } else {
                            var$5 = var$4.$value;
                            var$6 = var$3.$elementData.data;
                            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                            while (var$3 !== null) {
                                if (var$3.$origKeyHash == var$5) {
                                    var$7 = var$3.$key;
                                    if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                                        break;
                                }
                                var$3 = var$3.$next3;
                            }
                        }
                        var$3 = var$3 === null ? null : var$3.$value0;
                        if (!(var$3.$watchedObject.$value1 & 1) ? 0 : 1)
                            break b;
                    }
                    var$8 = 0;
                    break a;
                }
                var$8 = 1;
            }
            if (var$8) {
                var$3 = $this.$rand;
                var$9 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$9;
                var$10 = Long_lo(Long_shru(var$9, 24)) / 1.6777216E7;
                var$8 = $this.$worldObj.$difficultySetting;
                if (var$10 < var$8 * 0.30000001192092896) {
                    var$8 = (2 * var$8 | 0) * 20 | 0;
                    nms_Enchantment_$callClinit();
                    var$11 = nms_Enchantment_fireProtection.$effectId;
                    var$6 = $par1Entity.$getLastActiveItems();
                    nms_EnchantmentHelper_$callClinit();
                    if (var$6 === null)
                        var$5 = 0;
                    else {
                        var$6 = var$6.data;
                        var$5 = 0;
                        var$12 = var$6.length;
                        var$13 = 0;
                        while (var$13 < var$12) {
                            var$14 = nms_EnchantmentHelper_getEnchantmentLevel(var$11, var$6[var$13]);
                            if (var$14 > var$5)
                                var$5 = var$14;
                            var$13 = var$13 + 1 | 0;
                        }
                    }
                    if (var$5 > 0) {
                        var$15 = var$8 * var$5 * 0.15000000596046448;
                        var$11 = var$15 | 0;
                        if (var$15 < var$11)
                            var$11 = var$11 - 1 | 0;
                        var$8 = var$8 - var$11 | 0;
                    }
                    if ($par1Entity.$fire < var$8)
                        $par1Entity.$fire = var$8;
                }
            }
        }
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityZombie_getLivingSound = $this => {
    return $rt_s(2301);
},
nms_EntityZombie_getHurtSound = $this => {
    return $rt_s(2302);
},
nms_EntityZombie_getDeathSound = $this => {
    return $rt_s(2303);
},
nms_EntityZombie_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2304);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityZombie_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_rottenFlesh.$itemID0;
},
nms_EntityZombie_getCreatureAttribute = $this => {
    return nms_EnumCreatureAttribute_UNDEAD;
},
nms_EntityZombie_dropRareDrop = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 3 | 0;
            if (((var$4 - var$5 | 0) + 2 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        switch (var$5) {
            case 0:
                nms_Item_$callClinit();
                var$6 = nms_Item_ingotIron.$itemID0;
                var$2 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$2.$itemID = var$6;
                var$2.$stackSize = 1;
                var$2.$itemDamage = 0;
                var$7 = new nms_EntityItem;
                var$8 = $this.$worldObj;
                var$9 = $this.$posX;
                var$10 = $this.$posY + 0.0;
                var$11 = $this.$posZ;
                $ptr = 1;
                continue main;
            case 1:
                nms_Item_$callClinit();
                $par1 = nms_Item_carrot.$itemID0;
                var$2 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$2.$itemID = $par1;
                var$2.$stackSize = 1;
                var$2.$itemDamage = 0;
                var$7 = new nms_EntityItem;
                var$8 = $this.$worldObj;
                var$9 = $this.$posX;
                var$10 = $this.$posY + 0.0;
                var$11 = $this.$posZ;
                $ptr = 2;
                continue main;
            case 2:
                nms_Item_$callClinit();
                $par1 = nms_Item_potato.$itemID0;
                var$2 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$2.$itemID = $par1;
                var$2.$stackSize = 1;
                var$2.$itemDamage = 0;
                var$7 = new nms_EntityItem;
                var$8 = $this.$worldObj;
                var$9 = $this.$posX;
                var$10 = $this.$posY + 0.0;
                var$11 = $this.$posZ;
                $ptr = 3;
                continue main;
            default:
        }
        return;
    case 1:
        nms_EntityItem__init_(var$7, var$8, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$7.$dataWatcher;
        var$8 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = ju_HashMap_entryByKey(var$8, jl_Integer_integerCache.data[138]);
        var$13 = var$8 === null ? null : var$8.$value0;
        if (!(var$2 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$2;
            var$13.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$13 = var$7.$dataWatcher;
        var$2 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = ju_HashMap_entryByKey(var$2, jl_Integer_integerCache.data[138]);
        (var$2 === null ? null : var$2.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$7.$delayBeforeCanPickup = 10;
        var$2 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntityItem__init_(var$7, var$8, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$7.$dataWatcher;
        var$8 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = ju_HashMap_entryByKey(var$8, jl_Integer_integerCache.data[138]);
        var$13 = var$8 === null ? null : var$8.$value0;
        if (!(var$2 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$2;
            var$13.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$8 = var$7.$dataWatcher;
        var$13 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = ju_HashMap_entryByKey(var$13, jl_Integer_integerCache.data[138]);
        (var$2 === null ? null : var$2.$value0).$watched = 1;
        var$8.$objectChanged = 1;
        var$7.$delayBeforeCanPickup = 10;
        var$2 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityItem__init_(var$7, var$8, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$7.$dataWatcher;
        var$8 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = ju_HashMap_entryByKey(var$8, jl_Integer_integerCache.data[138]);
        var$13 = var$8 === null ? null : var$8.$value0;
        if (!(var$2 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$2;
            var$13.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$13 = var$7.$dataWatcher;
        var$2 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = ju_HashMap_entryByKey(var$2, jl_Integer_integerCache.data[138]);
        (var$2 === null ? null : var$2.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$7.$delayBeforeCanPickup = 10;
        var$2 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$2, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_World_spawnEntityInWorld(var$2, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_spawnEntityInWorld(var$2, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityZombie_addRandomArmor = $this => {
    let var$1, var$2, var$3, $var1, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLiving_addRandomArmor($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        if (Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 < ($this.$worldObj.$difficultySetting != 3 ? 0.009999999776482582 : 0.05000000074505806)) {
            var$2 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
            while (true) {
                $var1 = var$3 % 3 | 0;
                if (((var$3 - $var1 | 0) + 2 | 0) >= 0)
                    break;
                var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$2;
                var$3 = Long_lo(Long_shru(var$2, 17));
            }
            if ($var1) {
                var$5 = new nms_ItemStack;
                nms_Item_$callClinit();
                var$1 = nms_Item_shovelIron;
                nms_ItemStack_$callClinit();
                var$5.$itemID = var$1.$itemID0;
                var$5.$stackSize = 1;
                var$5.$itemDamage = 0;
                $this.$equipment.data[0] = var$5;
            } else {
                var$1 = new nms_ItemStack;
                nms_Item_$callClinit();
                var$5 = nms_Item_swordIron;
                nms_ItemStack_$callClinit();
                var$1.$itemID = var$5.$itemID0;
                var$1.$stackSize = 1;
                var$1.$itemDamage = 0;
                $this.$equipment.data[0] = var$1;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, var$5, $ptr);
},
nms_EntityZombie_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[140];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    if (var$2.$watchedObject.$value1 != 1 ? 0 : 1) {
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(2305);
        var$3.$data0 = 1;
        ju_HashMap_putImpl(var$6, $rt_s(2305), var$3);
    }
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[141];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$7 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$7 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    if (var$2.$watchedObject.$value1 != 1 ? 0 : 1) {
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(2306);
        var$3.$data0 = 1;
        ju_HashMap_putImpl(var$6, $rt_s(2306), var$3);
    }
    var$4 = !nms_EntityZombie_isConverting($this) ? (-1) : $this.$conversionTime;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2307);
    $par1NBTTagCompound.$data = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2307), $par1NBTTagCompound);
},
nms_EntityZombie_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2305).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2305).$nativeString.length)
                        break a;
                    $rt_s(2305).$hashCode1 = (31 * $rt_s(2305).$hashCode1 | 0) + $rt_s(2305).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2305).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2305) !== var$6) {
                        if ($rt_s(2305) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(2305).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2305) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2305).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2305).$nativeString.length)
                                break c;
                            $rt_s(2305).$hashCode1 = (31 * $rt_s(2305).$hashCode1 | 0) + $rt_s(2305).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2305).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        d: {
                            var$6 = var$2.$key;
                            if ($rt_s(2305) !== var$6) {
                                if ($rt_s(2305) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2305).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            var$3 = 0;
        if (!var$3 ? 0 : 1)
            nms_EntityZombie_setChild($this, 1);
        e: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2306).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2306).$nativeString.length)
                        break e;
                    $rt_s(2306).$hashCode1 = (31 * $rt_s(2306).$hashCode1 | 0) + $rt_s(2306).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2306).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                f: {
                    var$6 = var$2.$key;
                    if ($rt_s(2306) !== var$6) {
                        if ($rt_s(2306) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2306).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break f;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2306) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                g: {
                    if (!$rt_s(2306).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2306).$nativeString.length)
                                break g;
                            $rt_s(2306).$hashCode1 = (31 * $rt_s(2306).$hashCode1 | 0) + $rt_s(2306).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2306).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        h: {
                            var$6 = var$2.$key;
                            if ($rt_s(2306) !== var$6) {
                                if ($rt_s(2306) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2306).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break h;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            var$3 = 0;
        if (!var$3 ? 0 : 1) {
            var$2 = $this.$dataWatcher;
            var$7 = jl_Byte_byteCache.data[129];
            var$8 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[141];
            if (var$9 === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                var$4 = var$9.$value;
                var$5 = var$8.$elementData.data;
                var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$4) {
                        var$6 = var$8.$key;
                        if (var$9 !== var$6 && !(var$9 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$8 = var$8 === null ? null : var$8.$value0;
            var$6 = var$8.$watchedObject;
            if (!(var$6 instanceof jl_Byte && var$6.$value1 == var$7.$value1 ? 1 : 0)) {
                var$8.$watchedObject = var$7;
                var$8.$watched = 1;
                var$2.$objectChanged = 1;
            }
        }
        i: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2307).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2307).$nativeString.length)
                        break i;
                    $rt_s(2307).$hashCode1 = (31 * $rt_s(2307).$hashCode1 | 0) + $rt_s(2307).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2307).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                j: {
                    var$6 = var$2.$key;
                    if ($rt_s(2307) !== var$6) {
                        if ($rt_s(2307) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2307).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break j;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            k: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2307).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2307).$nativeString.length)
                            break k;
                        $rt_s(2307).$hashCode1 = (31 * $rt_s(2307).$hashCode1 | 0) + $rt_s(2307).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2307).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(2307) !== var$6) {
                            if ($rt_s(2307) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2307).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$10 = 0;
            else {
                var$2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2307) === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(2307).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(2307).$nativeString.length)
                                    break m;
                                $rt_s(2307).$hashCode1 = (31 * $rt_s(2307).$hashCode1 | 0) + $rt_s(2307).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(2307).$hashCode1;
                    var$5 = var$2.$elementData.data;
                    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$4) {
                            n: {
                                var$6 = var$2.$key;
                                if ($rt_s(2307) !== var$6) {
                                    if ($rt_s(2307) === var$6)
                                        var$3 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2307).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break n;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$10 = (var$2 === null ? null : var$2.$value0).$data;
            }
            if (var$10 > (-1)) {
                o: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2307).$hashCode1) {
                        var$10 = 0;
                        while (true) {
                            if (var$10 >= $rt_s(2307).$nativeString.length)
                                break o;
                            $rt_s(2307).$hashCode1 = (31 * $rt_s(2307).$hashCode1 | 0) + $rt_s(2307).$nativeString.charCodeAt(var$10) | 0;
                            var$10 = var$10 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2307).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        p: {
                            var$6 = var$2.$key;
                            if ($rt_s(2307) !== var$6) {
                                if ($rt_s(2307) === var$6)
                                    var$10 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$10 = 0;
                                else {
                                    var$6 = var$6;
                                    var$10 = $rt_s(2307).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$10) {
                                    var$10 = 0;
                                    break p;
                                }
                            }
                            var$10 = 1;
                        }
                        if (var$10)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1))
                    var$3 = 0;
                else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2307) === null) {
                        var$6 = $par1NBTTagCompound.$elementData.data[0];
                        while (var$6 !== null && var$6.$key !== null) {
                            var$6 = var$6.$next3;
                        }
                    } else {
                        q: {
                            if (!$rt_s(2307).$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $rt_s(2307).$nativeString.length)
                                        break q;
                                    $rt_s(2307).$hashCode1 = (31 * $rt_s(2307).$hashCode1 | 0) + $rt_s(2307).$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$10 = $rt_s(2307).$hashCode1;
                        var$5 = $par1NBTTagCompound.$elementData.data;
                        var$6 = var$5[var$10 & (var$5.length - 1 | 0)];
                        while (var$6 !== null) {
                            if (var$6.$origKeyHash == var$10) {
                                r: {
                                    $par1NBTTagCompound = var$6.$key;
                                    if ($rt_s(2307) !== $par1NBTTagCompound) {
                                        if ($rt_s(2307) === $par1NBTTagCompound)
                                            var$3 = 1;
                                        else if (!($par1NBTTagCompound instanceof jl_String))
                                            var$3 = 0;
                                        else {
                                            $par1NBTTagCompound = $par1NBTTagCompound;
                                            var$3 = $rt_s(2307).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                        }
                                        if (!var$3) {
                                            var$3 = 0;
                                            break r;
                                        }
                                    }
                                    var$3 = 1;
                                }
                                if (var$3)
                                    break;
                            }
                            var$6 = var$6.$next3;
                        }
                    }
                    var$3 = (var$6 === null ? null : var$6.$value0).$data;
                }
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_EntityZombie_startConversion($this, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityZombie_onKillEntity = ($this, $par1EntityLivingBase) => {
    let var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 =
        $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj;
        var$3 = $rt_compare(var$2.$difficultySetting, 2);
        if (var$3 >= 0 && $par1EntityLivingBase instanceof nms_EntityVillager) {
            if (!var$3) {
                $var2 = $this.$rand;
                var$5 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$5;
                if (!Long_lo(Long_shru(var$5, 47)) ? 0 : 1)
                    return;
            }
            $var2 = nms_EntityZombie__init_(var$2);
            var$6 = $par1EntityLivingBase.$posX;
            var$7 = $par1EntityLivingBase.$posY;
            var$8 = $par1EntityLivingBase.$posZ;
            var$9 = $par1EntityLivingBase.$rotationYaw;
            var$10 = $par1EntityLivingBase.$rotationPitch;
            $var2.$posX = var$6;
            $var2.$prevPosX = var$6;
            $var2.$lastTickPosX = var$6;
            var$11 = var$7 + $var2.$yOffset;
            $var2.$posY = var$11;
            $var2.$prevPosY = var$11;
            $var2.$lastTickPosY = var$11;
            $var2.$posZ = var$8;
            $var2.$prevPosZ = var$8;
            $var2.$lastTickPosZ = var$8;
            $var2.$rotationYaw = var$9;
            $var2.$rotationPitch = var$10;
            nms_Entity_setPosition($var2, var$6, var$11, var$8);
            var$12 = $this.$worldObj;
            var$2 = $par1EntityLivingBase.$riddenByEntity;
            if (var$2 !== null) {
                var$13 = null;
                $ptr = 1;
                continue main;
            }
            if ($par1EntityLivingBase.$ridingEntity === null) {
                $ptr = 2;
                continue main;
            }
            var$2 = null;
            $ptr = 3;
            continue main;
        }
        return;
    case 1:
        var$2.$mountEntity(var$13);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1EntityLivingBase.$ridingEntity === null) {
            $ptr = 2;
            continue main;
        }
        var$2 = null;
        $ptr = 3;
        continue main;
    case 2:
        $par1EntityLivingBase.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        if ($par1EntityLivingBase instanceof nms_EntityPlayer) {
            var$13 = var$12.$playerEntities;
            var$14 = var$13.$size0;
            var$15 = 0;
            a: {
                while (true) {
                    var$3 = $rt_compare(var$15, var$14);
                    if (var$3 >= 0) {
                        var$15 = (-1);
                        break a;
                    }
                    if (var$15 < 0)
                        break;
                    if (var$3 >= 0)
                        break;
                    var$2 = var$13.$array.data[var$15];
                    if ($par1EntityLivingBase === var$2 ? 1 : $par1EntityLivingBase === null ? (var$2 !== null ? 0 : 1) : !(var$2 instanceof nms_Entity) ? 0 : var$2.$entityId != $par1EntityLivingBase.$entityId ? 0 : 1)
                        break a;
                    var$15 = var$15 + 1 | 0;
                }
                $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($par1EntityLivingBase);
                $rt_throw($par1EntityLivingBase);
            }
            if (var$15 >= 0)
                ju_ArrayList_remove(var$13, var$15);
            var$2 = var$12.$playerEntities;
            var$12.$allPlayersSleeping = (var$2.$size0 ? 0 : 1) ? 0 : 1;
            var$3 = 0;
            var$15 = var$2.$modCount;
            var$14 = var$2.$size();
            b: {
                while (true) {
                    if (!(var$3 >= var$14 ? 0 : 1))
                        break b;
                    if (var$15 < var$2.$modCount) {
                        $par1EntityLivingBase = new ju_ConcurrentModificationException;
                        $par1EntityLivingBase.$suppressionEnabled = 1;
                        $par1EntityLivingBase.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1EntityLivingBase);
                        $rt_throw($par1EntityLivingBase);
                    }
                    var$16 = var$3 + 1 | 0;
                    if (!(var$2.$get(var$3)).$sleeping)
                        break;
                    var$3 = var$16;
                }
                var$12.$allPlayersSleeping = 0;
            }
        }
        var$2 = null;
        $ptr = 4;
        continue main;
    case 3:
        $par1EntityLivingBase.$mountEntity(var$2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 4:
        nms_EntityZombie_onSpawnWithEgg($var2, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $var2.$dataWatcher;
        var$18 = jl_Byte_byteCache.data[129];
        var$2 = var$17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[141];
        if (var$13 === null) {
            var$12 = var$2.$elementData.data[0];
            while (var$12 !== null && var$12.$key !== null) {
                var$12 = var$12.$next3;
            }
        } else {
            var$16 = var$13.$value;
            var$19 = var$2.$elementData.data;
            var$12 = var$19[var$16 & (var$19.length - 1 | 0)];
            while (var$12 !== null) {
                if (var$12.$origKeyHash == var$16) {
                    var$2 = var$12.$key;
                    if (var$13 !== var$2 && !(var$13 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$16 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$12 = var$12.$next3;
            }
        }
        var$12 = var$12 === null ? null : var$12.$value0;
        var$2 = var$12.$watchedObject;
        if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$18.$value1 ? 1 : 0)) {
            var$12.$watchedObject = var$18;
            var$12.$watched = 1;
            var$17.$objectChanged = 1;
        }
        if ($par1EntityLivingBase.$isChild())
            nms_EntityZombie_setChild($var2, 1);
        $par1EntityLivingBase = $this.$worldObj;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1EntityLivingBase, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityLivingBase = $this.$worldObj;
        var$2 = null;
        var$16 = 1016;
        var$15 = $this.$posX | 0;
        var$14 = $this.$posY | 0;
        var$20 = $this.$posZ | 0;
        var$3 = 0;
        var$21 = 0;
        var$6 = var$15;
        var$7 = var$14;
        var$8 = var$20;
        $var2 = $par1EntityLivingBase.$worldAccesses;
        var$22 = $rt_compare(var$21, $var2.$size0);
        if (var$22 >= 0)
            return;
        if (var$21 >= 0 && var$22 < 0) {
            $var2 = $var2.$array.data[var$21];
            var$13 = $var2.$mcServer.$serverConfigManager;
            var$11 = 64.0;
            var$23 = $var2.$theWorldServer.$provider.$dimensionId;
            $var2 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var2.$sfxID = var$16;
            $var2.$posX1 = var$15;
            $var2.$posY1 = var$14;
            $var2.$posZ1 = var$20;
            $var2.$auxData = var$3;
            $var2.$disableRelativeVolume = 0;
            $ptr = 6;
            continue main;
        }
        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
        $par1EntityLivingBase.$suppressionEnabled = 1;
        $par1EntityLivingBase.$writableStackTrace = 1;
        $rt_throw($par1EntityLivingBase);
    case 6:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$13, var$2, var$6, var$7, var$8, var$11, var$23, $var2);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = var$21 + 1 | 0;
        $var2 = $par1EntityLivingBase.$worldAccesses;
        var$22 = $rt_compare(var$21, $var2.$size0);
        if (var$22 >= 0)
            return;
        if (var$21 >= 0 && var$22 < 0) {
            $var2 = $var2.$array.data[var$21];
            var$13 = $var2.$mcServer.$serverConfigManager;
            var$11 = 64.0;
            var$23 = $var2.$theWorldServer.$provider.$dimensionId;
            $var2 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var2.$sfxID = var$16;
            $var2.$posX1 = var$15;
            $var2.$posY1 = var$14;
            $var2.$posZ1 = var$20;
            $var2.$auxData = var$3;
            $var2.$disableRelativeVolume = 0;
            continue main;
        }
        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
        $par1EntityLivingBase.$suppressionEnabled = 1;
        $par1EntityLivingBase.$writableStackTrace = 1;
        $rt_throw($par1EntityLivingBase);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_EntityZombie_onSpawnWithEgg = ($this, $var3) => {
    let $var5, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var2 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = nms_SharedMonsterAttributes_followRange;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var5 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$4 = jl_String_hashCode($var5.$field_111115_a);
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$4 && ju_HashMap_areEqualKeys($var5, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$6 = var$3 === null ? null : var$3.$value0;
        var$3 = new nms_AttributeModifier;
        var$7 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
        var$8 = nle_ProfileUUID_randomUUID();
        var$3.$isSaved = 1;
        var$3.$id1 = var$8;
        var$3.$name3 = $rt_s(2198);
        var$3.$amount0 = var$7;
        var$3.$operation = 1;
        if ($rt_s(2198) === $rt_s(3))
            var$9 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$9 = 0;
        else {
            var$8 = $rt_s(3);
            var$9 = $rt_s(2198).$nativeString !== var$8.$nativeString ? 0 : 1;
        }
        if (var$9) {
            $var5 = new jl_IllegalArgumentException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var5);
            $var5.$message = $rt_s(1279);
            $rt_throw($var5);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, var$3);
        $var5 = $this.$worldObj;
        var$7 = $this.$posX;
        var$10 = $this.$posY;
        var$11 = $this.$posZ;
        var$12 = var$7 | 0;
        if (var$7 < var$12)
            var$12 = var$12 - 1 | 0;
        var$4 = var$10 | 0;
        if (var$10 < var$4)
            var$4 = var$4 - 1 | 0;
        var$13 = var$11 | 0;
        if (var$11 < var$13)
            var$13 = var$13 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getTensionFactorForBlock($var5, var$12, var$4, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var5 = $this.$rand;
        var$15 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var5.$seed = var$15;
        var$13 = 24;
        $this.$canPickUpLoot = Long_lo(Long_shru(var$15, var$13)) / 1.6777216E7 >= 0.550000011920929 * $var2 ? 0 : 1;
        if ($var3 === null) {
            $var3 = new nms_EntityZombieGroupData;
            $var5 = $this.$worldObj.$rand0;
            var$16 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var5.$seed = var$16;
            var$9 = Long_lo(Long_shru(var$16, var$13)) / 1.6777216E7 >= 0.05000000074505806 ? 0 : 1;
            var$15 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var5.$seed = var$15;
            var$4 = Long_lo(Long_shru(var$15, var$13)) / 1.6777216E7 >= 0.05000000074505806 ? 0 : 1;
            $var3.$field_142047_c = $this;
            $var3.$field_142048_a = 0;
            $var3.$field_142046_b = 0;
            $var3.$field_142048_a = var$9;
            $var3.$field_142046_b = var$4;
        }
        if ($var3 instanceof nms_EntityZombieGroupData) {
            if ($var3.$field_142046_b) {
                var$3 = $this.$dataWatcher;
                var$6 = jl_Byte_byteCache.data[129];
                $var5 = var$3.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[141];
                if (var$17 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    var$12 = var$17.$value;
                    var$5 = $var5.$elementData.data;
                    $var5 = var$5[var$12 & (var$5.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$12) {
                            var$8 = $var5.$key;
                            if (var$17 !== var$8 && !(var$17 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$12 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = $var5 === null ? null : $var5.$value0;
                var$8 = $var5.$watchedObject;
                if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$6.$value1 ? 1 : 0)) {
                    $var5.$watchedObject = var$6;
                    $var5.$watched = 1;
                    var$3.$objectChanged = 1;
                }
            }
            if ($var3.$field_142048_a)
                nms_EntityZombie_setChild($this, 1);
        }
        $ptr = 2;
    case 2:
        $this.$addRandomArmor();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_EntityLiving_enchantEquipment($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$equipment.data[4] === null) {
            $var5 = $this.$worldObj;
            if (Long_eq(Long_rem($var5.$worldInfo.$getWorldTotalTime(), Long_fromInt(600)), Long_ZERO)) {
                var$3 = $var5.$theCalendar;
                nles_SysUtil_$callClinit();
                var$16 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                if (!(var$3.$isTimeSet && var$3.$areFieldsSet && Long_eq(var$3.$time, var$16))) {
                    var$3.$time = var$16;
                    var$3.$isTimeSet = 1;
                    var$3.$areFieldsSet = 0;
                    ju_GregorianCalendar_computeFields(var$3);
                    var$3.$areFieldsSet = 1;
                }
            }
            $var5 = $var5.$theCalendar;
            if (!$var5.$isTimeSet) {
                ju_GregorianCalendar_computeTime($var5);
                $var5.$isTimeSet = 1;
            }
            if (!$var5.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($var5);
                $var5.$areFieldsSet = 1;
            }
            if (($var5.$fields.data[2] + 1 | 0) == 10) {
                if (!$var5.$isTimeSet) {
                    ju_GregorianCalendar_computeTime($var5);
                    $var5.$isTimeSet = 1;
                }
                if (!$var5.$areFieldsSet) {
                    ju_GregorianCalendar_computeFields($var5);
                    $var5.$areFieldsSet = 1;
                }
                if ($var5.$fields.data[5] == 31) {
                    $var5 = $this.$rand;
                    var$16 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$16;
                    if (Long_lo(Long_shru(var$16, var$13)) / 1.6777216E7 < 0.25) {
                        var$3 = new nms_ItemStack;
                        var$15 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var5.$seed = var$15;
                        if (Long_lo(Long_shru(var$15, var$13)) / 1.6777216E7 >= 0.10000000149011612) {
                            nms_Block_$callClinit();
                            $var5 = nms_Block_pumpkin;
                        } else {
                            nms_Block_$callClinit();
                            $var5 = nms_Block_pumpkinLantern;
                        }
                        nms_ItemStack_$callClinit();
                        var$3.$itemID = $var5.$blockID;
                        var$3.$stackSize = 1;
                        var$3.$itemDamage = 0;
                        $this.$equipment.data[4] = var$3;
                        $this.$equipmentDropChances.data[4] = 0.0;
                    }
                }
            }
        }
        $var5 = nms_SharedMonsterAttributes_knockbackResistance;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var5 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                var$8 = $var5.$field_111115_a;
                if (!var$8.$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= var$8.$nativeString.length)
                            break a;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$9 = var$8.$hashCode1;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$9 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$9) {
                    var$8 = var$3.$key;
                    if ($var5 !== var$8 && !jl_Object_equals($var5, var$8) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$6 = var$3 === null ? null : var$3.$value0;
        $var5 = new nms_AttributeModifier;
        var$8 = $this.$rand;
        var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$18;
        var$15 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$18, 22))), 27);
        var$16 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$16;
        var$7 = Long_toNumber(Long_add(var$15, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * 0.05000000074505806;
        var$8 = nle_ProfileUUID_randomUUID();
        $var5.$isSaved = 1;
        $var5.$id1 = var$8;
        $var5.$name3 = $rt_s(2198);
        $var5.$amount0 = var$7;
        $var5.$operation = 0;
        if ($rt_s(2198) === $rt_s(3))
            var$9 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$9 = 0;
        else {
            var$8 = $rt_s(3);
            var$9 = $rt_s(2198).$nativeString !== var$8.$nativeString ? 0 : 1;
        }
        if (var$9) {
            $var5 = new jl_IllegalArgumentException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $var5.$message = $rt_s(1279);
            $rt_throw($var5);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, $var5);
        $var5 = nms_SharedMonsterAttributes_followRange;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var5 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            b: {
                var$8 = $var5.$field_111115_a;
                if (!var$8.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= var$8.$nativeString.length)
                            break b;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$4 = var$8.$hashCode1;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$4) {
                    var$8 = var$3.$key;
                    if ($var5 !== var$8 && !jl_Object_equals($var5, var$8) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$6 = var$3 === null ? null : var$3.$value0;
        $var5 = new nms_AttributeModifier;
        var$8 = $this.$rand;
        var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$18;
        var$15 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$18, 22))), 27);
        var$16 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$8.$seed = var$16;
        var$7 = Long_toNumber(Long_add(var$15, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * 1.5;
        var$8 = nle_ProfileUUID_randomUUID();
        $var5.$isSaved = 1;
        $var5.$id1 = var$8;
        $var5.$name3 = $rt_s(2308);
        $var5.$amount0 = var$7;
        $var5.$operation = 2;
        if ($rt_s(2308) === $rt_s(3))
            var$9 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$9 = 0;
        else {
            var$8 = $rt_s(3);
            var$9 = $rt_s(2308).$nativeString !== var$8.$nativeString ? 0 : 1;
        }
        if (var$9) {
            $var5 = new jl_IllegalArgumentException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $var5.$message = $rt_s(1279);
            $rt_throw($var5);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, $var5);
        $var5 = $this.$rand;
        var$15 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var5.$seed = var$15;
        if (Long_lo(Long_shru(var$15, var$13)) / 1.6777216E7 < $var2 * 0.05000000074505806) {
            $var5 = nms_EntityZombie_field_110186_bp;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$3 = $this.$attributeMap.$attributes;
            if ($var5 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                c: {
                    var$8 = $var5.$field_111115_a;
                    if (!var$8.$hashCode1) {
                        var$9 = 0;
                        while (true) {
                            if (var$9 >= var$8.$nativeString.length)
                                break c;
                            var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$9) | 0;
                            var$9 = var$9 + 1 | 0;
                        }
                    }
                }
                var$4 = var$8.$hashCode1;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$4) {
                        var$8 = var$3.$key;
                        if ($var5 !== var$8 && !jl_Object_equals($var5, var$8) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$6 = var$3 === null ? null : var$3.$value0;
            $var5 = new nms_AttributeModifier;
            var$8 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$18;
            var$15 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$18, 22))), 27);
            var$16 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$16;
            var$7 = Long_toNumber(Long_add(var$15, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * 0.25 + 0.5;
            var$8 = nle_ProfileUUID_randomUUID();
            $var5.$isSaved = 1;
            $var5.$id1 = var$8;
            $var5.$name3 = $rt_s(2309);
            $var5.$amount0 = var$7;
            $var5.$operation = 0;
            if ($rt_s(2309) === $rt_s(3))
                var$9 = 1;
            else if (!($rt_s(3) instanceof jl_String))
                var$9 = 0;
            else {
                var$8 = $rt_s(3);
                var$9 = $rt_s(2309).$nativeString !== var$8.$nativeString ? 0 : 1;
            }
            if (var$9) {
                $var5 = new jl_IllegalArgumentException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $var5.$message = $rt_s(1279);
                $rt_throw($var5);
            }
            nms_ModifiableAttributeInstance_applyModifier(var$6, $var5);
            $var5 = nms_SharedMonsterAttributes_maxHealth;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$3 = $this.$attributeMap.$attributes;
            if ($var5 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                d: {
                    var$8 = $var5.$field_111115_a;
                    if (!var$8.$hashCode1) {
                        var$9 = 0;
                        while (true) {
                            if (var$9 >= var$8.$nativeString.length)
                                break d;
                            var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$9) | 0;
                            var$9 = var$9 + 1 | 0;
                        }
                    }
                }
                var$4 = var$8.$hashCode1;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$4) {
                        var$8 = var$3.$key;
                        if ($var5 !== var$8 && !jl_Object_equals($var5, var$8) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$6 = var$3 === null ? null : var$3.$value0;
            $var5 = new nms_AttributeModifier;
            var$8 = $this.$rand;
            var$15 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$15;
            var$16 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$15;
            var$7 = Long_toNumber(Long_add(var$16, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 3.0 + 1.0;
            var$8 = nle_ProfileUUID_randomUUID();
            $var5.$isSaved = 1;
            $var5.$id1 = var$8;
            $var5.$name3 = $rt_s(2309);
            $var5.$amount0 = var$7;
            $var5.$operation = 2;
            if ($rt_s(2309) === $rt_s(3))
                var$9 = 1;
            else if (!($rt_s(3) instanceof jl_String))
                var$9 = 0;
            else {
                var$8 = $rt_s(3);
                var$9 = $rt_s(2309).$nativeString !== var$8.$nativeString ? 0 : 1;
            }
            if (var$9) {
                $var5 = new jl_IllegalArgumentException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $var5.$message = $rt_s(1279);
                $rt_throw($var5);
            }
            nms_ModifiableAttributeInstance_applyModifier(var$6, $var5);
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var5, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityZombie_interact = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayer.$inventory0;
        var$3 = var$2.$currentItem;
        var$4 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
        if (var$4 !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[var$4.$itemID] === nms_Item_appleGold && !var$4.$itemDamage) {
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[141];
                if (var$5 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$6 = var$5.$value;
                    var$7 = var$2.$elementData.data;
                    var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$6) {
                            var$8 = var$2.$key;
                            if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$2 = var$2 === null ? null : var$2.$value0;
                if (var$2.$watchedObject.$value1 != 1 ? 0 : 1) {
                    nms_Potion_$callClinit();
                    var$2 = nms_Potion_weakness;
                    var$8 = $this.$activePotionsMap;
                    var$9 = var$2.$id0;
                    if (var$9 >= (-128) && var$9 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$2 = jl_Integer_integerCache.data[var$9 + 128 | 0];
                    } else {
                        var$2 = new jl_Integer;
                        var$2.$value = var$9;
                    }
                    if (var$2 === null) {
                        var$8 = var$8.$elementData.data[0];
                        while (var$8 !== null && var$8.$key !== null) {
                            var$8 = var$8.$next3;
                        }
                    } else {
                        var$6 = var$2.$value;
                        var$7 = var$8.$elementData.data;
                        var$8 = var$7[var$6 & (var$7.length - 1 | 0)];
                        while (var$8 !== null) {
                            if (var$8.$origKeyHash == var$6) {
                                var$5 = var$8.$key;
                                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$8 = var$8.$next3;
                        }
                    }
                    if (var$8 === null ? 0 : 1) {
                        if (!$par1EntityPlayer.$capabilities.$isCreativeMode)
                            var$4.$stackSize = var$4.$stackSize - 1 | 0;
                        if (var$4.$stackSize <= 0) {
                            $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                            var$6 = $par1EntityPlayer.$currentItem;
                            var$2 = null;
                            var$7 = $par1EntityPlayer.$mainInventory;
                            var$9 = var$7.data.length;
                            if (var$6 >= var$9) {
                                var$6 = var$6 - var$9 | 0;
                                var$7 = $par1EntityPlayer.$armorInventory;
                            }
                            var$7.data[var$6] = var$2;
                        }
                        if ($this.$worldObj.$isRemote)
                            return 1;
                        $par1EntityPlayer = $this.$rand;
                        var$10 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1EntityPlayer.$seed = var$10;
                        var$6 = Long_lo(Long_shru(var$10, 17));
                        while (true) {
                            var$11 = var$6 % 2401 | 0;
                            if (((var$6 - var$11 | 0) + 2400 | 0) >= 0)
                                break;
                            var$10 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1EntityPlayer.$seed = var$10;
                            var$6 = Long_lo(Long_shru(var$10, 17));
                        }
                        var$9 = var$11 + 3600 | 0;
                        $ptr = 1;
                        continue main;
                    }
                }
            }
        }
        return 0;
    case 1:
        nms_EntityZombie_startConversion($this, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityZombie_startConversion = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$conversionTime = $par1;
        var$2 = $this.$dataWatcher;
        var$3 = jl_Byte_byteCache.data[129];
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[142];
        if (var$5 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$6 = var$5.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    var$8 = var$4.$key;
                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$3.$value1 ? 1 : 0)) {
            var$5.$watchedObject = var$3;
            var$5.$watched = 1;
            var$2.$objectChanged = 1;
        }
        nms_Potion_$callClinit();
        var$9 = nms_Potion_weakness.$id0;
        var$4 = $this.$activePotionsMap;
        if (var$9 >= (-128) && var$9 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[var$9 + 128 | 0];
        } else {
            var$5 = new jl_Integer;
            var$5.$value = var$9;
        }
        var$4 = ju_HashMap_removeByKey(var$4, var$5);
        var$4 = var$4 === null ? null : var$4.$value0;
        if (var$4 !== null) {
            $this.$potionsNeedUpdate = 1;
            if (!$this.$worldObj.$isRemote) {
                var$3 = nms_Potion_potionTypes.data[var$4.$potionID];
                if ($this.$attributeMap === null)
                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                var$3.$removeAttributesModifiersFromEntity($this, $this.$attributeMap, var$4.$amplifier);
            }
        }
        var$5 = new nms_PotionEffect;
        var$10 = nms_Potion_damageBoost.$id0;
        var$9 = $this.$worldObj.$difficultySetting - 1 | 0;
        var$6 = 0;
        if (var$9 < var$6)
            var$6 = var$9;
        var$5.$potionID = var$10;
        var$5.$duration = $par1;
        var$5.$amplifier = var$6;
        var$5.$isAmbient = 0;
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_addPotionEffect($this, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$worldObj;
        var$5 = new nms_Packet38EntityStatus;
        var$9 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$5.$entityId0 = var$9;
        var$5.$entityStatus = 16;
        var$4 = var$4.$theEntityTracker.$trackedEntityIDs;
        $par1 = $this.$entityId;
        var$9 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
        var$6 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
        var$7 = var$4.$slots.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while (var$4 !== null) {
                if (var$4.$hashEntry == $par1) {
                    var$4 = var$4.$valueEntry;
                    break a;
                }
                var$4 = var$4.$nextEntry0;
            }
            var$4 = null;
        }
        var$4 = var$4;
        if (var$4 !== null) {
            var$3 = var$4.$trackingPlayers.$backingMap;
            if (var$3.$cachedKeySet === null) {
                var$2 = new ju_HashMap$1;
                var$2.$this$0 = var$3;
                ju_AbstractCollection__init_(var$2);
                var$3.$cachedKeySet = var$2;
            }
            var$11 = var$3.$cachedKeySet.$iterator();
            var$9 = var$5 instanceof nms_Packet3Chat;
            var$2 = var$5;
            while (var$11.$hasNext()) {
                b: {
                    var$3 = (var$11.$next()).$playerNetServerHandler;
                    if (var$9) {
                        var$10 = var$3.$playerEntity.$chatVisibility;
                        if (var$10 == 2)
                            break b;
                        if (var$10 == 1 && !var$2.$isServer)
                            break b;
                    }
                    try {
                        var$3 = var$3.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$3 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$8 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$8);
                        jl_System_errCache = var$8;
                    }
                    jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                }
            }
            var$4 = var$4.$myEntity;
            if (var$4 instanceof nms_EntityPlayerMP)
                c: {
                    var$4 = var$4.$playerNetServerHandler;
                    if (var$9) {
                        var$9 = var$4.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break c;
                        if (var$9 == 1 && !var$2.$isServer)
                            break c;
                    }
                    try {
                        var$4 = var$4.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$4 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$5 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$5, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$5;
                    }
                    jl_Throwable_printStackTrace(var$4, jl_System_errCache);
                }
        }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$8);
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$3, var$8);
        }
        d: while (true) {
            while (true) {
                if (!var$11.$hasNext())
                    break d;
                var$3 = (var$11.$next()).$playerNetServerHandler;
                if (!var$9)
                    break;
                var$10 = var$3.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$2.$isServer)
                    break;
            }
            try {
                var$3 = var$3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$8 = jl_System_errCache;
            if (var$8 === null) {
                var$8 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$8);
                jl_System_errCache = var$8;
            }
            var$8 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$3, var$8);
        }
        var$4 = var$4.$myEntity;
        if (var$4 instanceof nms_EntityPlayerMP)
            e: {
                var$4 = var$4.$playerNetServerHandler;
                if (var$9) {
                    var$9 = var$4.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break e;
                    if (var$9 == 1 && !var$2.$isServer)
                        break e;
                }
                try {
                    var$4 = var$4.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$4 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$5 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$5, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$5;
                }
                jl_Throwable_printStackTrace(var$4, jl_System_errCache);
            }
        return;
    case 3:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$5 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$5, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$5;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityZombie_canDespawn = $this => {
    return nms_EntityZombie_isConverting($this) ? 0 : 1;
},
nms_EntityZombie_isConverting = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[142];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 != 1 ? 0 : 1;
},
nms_EntityZombie_convertToVillager = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = new nms_EntityVillager;
        var$2 = $this.$worldObj;
        nms_EntityVillager_$callClinit();
        var$3 = 0;
        $ptr = 1;
    case 1:
        nms_EntityVillager__init_($var1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$posX;
        var$5 = $this.$posY;
        var$6 = $this.$posZ;
        var$7 = $this.$rotationYaw;
        var$8 = $this.$rotationPitch;
        $var1.$posX = var$4;
        $var1.$prevPosX = var$4;
        $var1.$lastTickPosX = var$4;
        var$5 = var$5 + $var1.$yOffset;
        $var1.$posY = var$5;
        $var1.$prevPosY = var$5;
        $var1.$lastTickPosY = var$5;
        $var1.$posZ = var$6;
        $var1.$prevPosZ = var$6;
        $var1.$lastTickPosZ = var$6;
        $var1.$rotationYaw = var$7;
        $var1.$rotationPitch = var$8;
        nms_Entity_setPosition($var1, var$4, var$5, var$6);
        var$2 = null;
        $ptr = 2;
    case 2:
        nms_EntityVillager_onSpawnWithEgg($var1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var1.$field_82190_bM = 1;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = var$9.$value;
            var$10 = var$2.$elementData.data;
            var$2 = var$10[var$3 & (var$10.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$11 = var$2.$key;
                    if (var$9 !== var$11 && !(var$9 === var$11 ? 1 : var$11 instanceof jl_Integer && var$11.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (!(var$2.$watchedObject.$value1 != 1 ? 0 : 1)) {
            var$2 = $this.$worldObj;
            var$9 = $this.$riddenByEntity;
            if (var$9 !== null) {
                var$11 = null;
                $ptr = 3;
                continue main;
            }
            if ($this.$ridingEntity !== null) {
                var$9 = null;
                $ptr = 4;
                continue main;
            }
            $this.$isDead = 1;
            if ($this instanceof nms_EntityPlayer) {
                var$9 = var$2.$playerEntities;
                var$12 = var$9.$size0;
                var$3 = 0;
                a: {
                    while (true) {
                        var$13 = $rt_compare(var$3, var$12);
                        if (var$13 >= 0) {
                            var$3 = (-1);
                            break a;
                        }
                        if (var$3 < 0)
                            break;
                        if (var$13 >= 0)
                            break;
                        var$11 = var$9.$array.data[var$3];
                        if ($this === var$11 ? 1 : $this === null ? (var$11 !== null ? 0 : 1) : !(var$11 instanceof nms_Entity) ? 0 : var$11.$entityId != $this.$entityId ? 0 : 1)
                            break a;
                        var$3 = var$3 + 1 | 0;
                    }
                    $var1 = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_($var1);
                    $rt_throw($var1);
                }
                if (var$3 >= 0)
                    ju_ArrayList_remove(var$9, var$3);
                var$9 = var$2.$playerEntities;
                var$2.$allPlayersSleeping = (var$9.$size0 ? 0 : 1) ? 0 : 1;
                var$14 = 0;
                var$12 = var$9.$modCount;
                var$15 = var$9.$size();
                b: {
                    while (true) {
                        if (!(var$14 >= var$15 ? 0 : 1))
                            break b;
                        if (var$12 < var$9.$modCount) {
                            $var1 = new ju_ConcurrentModificationException;
                            $var1.$suppressionEnabled = 1;
                            $var1.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($var1);
                            $rt_throw($var1);
                        }
                        var$13 = var$14 + 1 | 0;
                        if (!(var$9.$get(var$14)).$sleeping)
                            break;
                        var$14 = var$13;
                    }
                    var$2.$allPlayersSleeping = 0;
                }
            }
            var$2 = $this.$worldObj;
            $ptr = 5;
            continue main;
        }
        var$2 = $var1.$dataWatcher;
        var$9 = new jl_Integer;
        var$9.$value = (-24000);
        var$11 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$16 = jl_Integer_integerCache.data[140];
        if (var$16 === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            var$12 = var$16.$value;
            var$10 = var$11.$elementData.data;
            var$11 = var$10[var$12 & (var$10.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$12) {
                    var$17 = var$11.$key;
                    if (var$16 !== var$17 && !(var$16 === var$17 ? 1 : var$17 instanceof jl_Integer && var$17.$value == var$12 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$11 = var$11.$next3;
            }
        }
        var$17 = var$11 === null ? null : var$11.$value0;
        var$11 = var$17.$watchedObject;
        if (!(var$9 === var$11 ? 1 : var$11 instanceof jl_Integer && var$11.$value == var$9.$value ? 1 : 0)) {
            var$17.$watchedObject = var$9;
            var$17.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$2 = $var1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_Integer_hashCode(var$9.$value);
            var$10 = var$2.$elementData.data;
            var$2 = var$10[var$3 & (var$10.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$9, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        var$7 = !(var$2.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$8 = $var1.$field_98056_d * var$7;
        var$7 = $var1.$field_98057_e * var$7;
        $ptr = 8;
        continue main;
    case 3:
        var$9.$mountEntity(var$11);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$ridingEntity !== null) {
            var$9 = null;
            $ptr = 4;
            continue main;
        }
        $this.$isDead = 1;
        if ($this instanceof nms_EntityPlayer) {
            var$9 = var$2.$playerEntities;
            var$12 = var$9.$size0;
            var$3 = 0;
            c: {
                while (true) {
                    var$13 = $rt_compare(var$3, var$12);
                    if (var$13 >= 0) {
                        var$3 = (-1);
                        break c;
                    }
                    if (var$3 < 0)
                        break;
                    if (var$13 >= 0)
                        break;
                    var$11 = var$9.$array.data[var$3];
                    if ($this === var$11 ? 1 : $this === null ? (var$11 !== null ? 0 : 1) : !(var$11 instanceof nms_Entity) ? 0 : var$11.$entityId != $this.$entityId ? 0 : 1)
                        break c;
                    var$3 = var$3 + 1 | 0;
                }
                $var1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($var1);
                $rt_throw($var1);
            }
            if (var$3 >= 0)
                ju_ArrayList_remove(var$9, var$3);
            var$9 = var$2.$playerEntities;
            var$2.$allPlayersSleeping = (var$9.$size0 ? 0 : 1) ? 0 : 1;
            var$14 = 0;
            var$12 = var$9.$modCount;
            var$15 = var$9.$size();
            d: {
                while (true) {
                    if (!(var$14 >= var$15 ? 0 : 1))
                        break d;
                    if (var$12 < var$9.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var1);
                        $rt_throw($var1);
                    }
                    var$13 = var$14 + 1 | 0;
                    if (!(var$9.$get(var$14)).$sleeping)
                        break;
                    var$14 = var$13;
                }
                var$2.$allPlayersSleeping = 0;
            }
        }
        var$2 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 4:
        nms_Entity_mountEntity($this, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        if ($this instanceof nms_EntityPlayer) {
            var$9 = var$2.$playerEntities;
            var$12 = var$9.$size0;
            var$3 = 0;
            e: {
                while (true) {
                    var$13 = $rt_compare(var$3, var$12);
                    if (var$13 >= 0) {
                        var$3 = (-1);
                        break e;
                    }
                    if (var$3 < 0)
                        break;
                    if (var$13 >= 0)
                        break;
                    var$11 = var$9.$array.data[var$3];
                    if ($this === var$11 ? 1 : $this === null ? (var$11 !== null ? 0 : 1) : !(var$11 instanceof nms_Entity) ? 0 : var$11.$entityId != $this.$entityId ? 0 : 1)
                        break e;
                    var$3 = var$3 + 1 | 0;
                }
                $var1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($var1);
                $rt_throw($var1);
            }
            if (var$3 >= 0)
                ju_ArrayList_remove(var$9, var$3);
            var$9 = var$2.$playerEntities;
            var$2.$allPlayersSleeping = (var$9.$size0 ? 0 : 1) ? 0 : 1;
            var$14 = 0;
            var$12 = var$9.$modCount;
            var$15 = var$9.$size();
            a: {
                while (true) {
                    if (!(var$14 >= var$15 ? 0 : 1))
                        break a;
                    if (var$12 < var$9.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var1);
                        $rt_throw($var1);
                    }
                    var$13 = var$14 + 1 | 0;
                    if (!(var$9.$get(var$14)).$sleeping)
                        break;
                    var$14 = var$13;
                }
                var$2.$allPlayersSleeping = 0;
            }
        }
        var$2 = $this.$worldObj;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$2, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = new nms_PotionEffect;
        nms_Potion_$callClinit();
        var$9.$potionID = nms_Potion_confusion.$id0;
        var$9.$duration = 200;
        var$9.$amplifier = 0;
        var$9.$isAmbient = 0;
        $ptr = 6;
    case 6:
        nms_EntityLivingBase_addPotionEffect($var1, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$worldObj;
        var$2 = null;
        var$14 = 1017;
        var$18 = $this.$posX | 0;
        var$19 = $this.$posY | 0;
        var$20 = $this.$posZ | 0;
        var$15 = 0;
        var$3 = 0;
        var$5 = var$18;
        var$6 = var$19;
        var$21 = var$20;
        var$9 = $var1.$worldAccesses;
        var$13 = $rt_compare(var$3, var$9.$size0);
        if (var$13 >= 0)
            return;
        if (var$3 >= 0 && var$13 < 0) {
            var$9 = var$9.$array.data[var$3];
            var$17 = var$9.$mcServer.$serverConfigManager;
            var$4 = 64.0;
            var$12 = var$9.$theWorldServer.$provider.$dimensionId;
            var$9 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$sfxID = var$14;
            var$9.$posX1 = var$18;
            var$9.$posY1 = var$19;
            var$9.$posZ1 = var$20;
            var$9.$auxData = var$15;
            var$9.$disableRelativeVolume = 0;
            $ptr = 7;
            continue main;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 7:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$17, var$2, var$5, var$6, var$21, var$4, var$12, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$3 + 1 | 0;
        var$9 = $var1.$worldAccesses;
        var$13 = $rt_compare(var$3, var$9.$size0);
        if (var$13 >= 0)
            return;
        if (var$3 >= 0 && var$13 < 0) {
            var$9 = var$9.$array.data[var$3];
            var$17 = var$9.$mcServer.$serverConfigManager;
            var$4 = 64.0;
            var$12 = var$9.$theWorldServer.$provider.$dimensionId;
            var$9 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$9.$sfxID = var$14;
            var$9.$posX1 = var$18;
            var$9.$posY1 = var$19;
            var$9.$posZ1 = var$20;
            var$9.$auxData = var$15;
            var$9.$disableRelativeVolume = 0;
            continue main;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 8:
        nms_Entity_setSize($var1, var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$worldObj;
        var$9 = $this.$riddenByEntity;
        if (var$9 !== null) {
            var$11 = null;
            $ptr = 3;
            continue main;
        }
        if ($this.$ridingEntity !== null) {
            var$9 = null;
            $ptr = 4;
            continue main;
        }
        $this.$isDead = 1;
        if ($this instanceof nms_EntityPlayer) {
            var$9 = var$2.$playerEntities;
            var$12 = var$9.$size0;
            var$3 = 0;
            f: {
                while (true) {
                    var$13 = $rt_compare(var$3, var$12);
                    if (var$13 >= 0) {
                        var$3 = (-1);
                        break f;
                    }
                    if (var$3 < 0)
                        break;
                    if (var$13 >= 0)
                        break;
                    var$11 = var$9.$array.data[var$3];
                    if ($this === var$11 ? 1 : $this === null ? (var$11 !== null ? 0 : 1) : !(var$11 instanceof nms_Entity) ? 0 : var$11.$entityId != $this.$entityId ? 0 : 1)
                        break f;
                    var$3 = var$3 + 1 | 0;
                }
                $var1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($var1);
                $rt_throw($var1);
            }
            if (var$3 >= 0)
                ju_ArrayList_remove(var$9, var$3);
            var$9 = var$2.$playerEntities;
            var$2.$allPlayersSleeping = (var$9.$size0 ? 0 : 1) ? 0 : 1;
            var$14 = 0;
            var$12 = var$9.$modCount;
            var$15 = var$9.$size();
            g: {
                while (true) {
                    if (!(var$14 >= var$15 ? 0 : 1))
                        break g;
                    if (var$12 < var$9.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var1);
                        $rt_throw($var1);
                    }
                    var$13 = var$14 + 1 | 0;
                    if (!(var$9.$get(var$14)).$sleeping)
                        break;
                    var$14 = var$13;
                }
                var$2.$allPlayersSleeping = 0;
            }
        }
        var$2 = $this.$worldObj;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityZombie_getConversionTimeBoost = $this => {
    let $var1, var$2, var$3, var$4, $var2, $var3, $var4, $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var1 = 1;
            var$2 = $this.$rand;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = 24;
            if (Long_lo(Long_shru(var$3, var$4)) / 1.6777216E7 < 0.009999999776482582) {
                $var2 = 0;
                $var3 = ($this.$posX | 0) - 4 | 0;
                while ($var3 < (($this.$posX | 0) + 4 | 0)) {
                    if ($var2 >= 14)
                        break a;
                    $var4 = ($this.$posY | 0) - 4 | 0;
                    while ($var4 < (($this.$posY | 0) + 4 | 0) && $var2 < 14) {
                        $var5 = ($this.$posZ | 0) - 4 | 0;
                        if ($var5 < (($this.$posZ | 0) + 4 | 0) && $var2 < 14) {
                            var$2 = $this.$worldObj;
                            $ptr = 1;
                            continue main;
                        }
                        $var4 = $var4 + 1 | 0;
                    }
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        return $var1;
    case 1:
        $tmp = nms_World_getBlockId(var$2, $var3, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        if (!($var6 != nms_Block_fenceIron.$blockID && $var6 != nms_Block_bed.$blockID)) {
            var$2 = $this.$rand;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            if (Long_lo(Long_shru(var$3, var$4)) / 1.6777216E7 < 0.30000001192092896)
                $var1 = $var1 + 1 | 0;
            $var2 = $var2 + 1 | 0;
        }
        $var5 = $var5 + 1 | 0;
        b: {
            c: while (true) {
                if ($var5 < (($this.$posZ | 0) + 4 | 0) && $var2 < 14) {
                    var$2 = $this.$worldObj;
                    continue main;
                }
                $var4 = $var4 + 1 | 0;
                while (!($var4 < (($this.$posY | 0) + 4 | 0) && $var2 < 14)) {
                    $var3 = $var3 + 1 | 0;
                    if ($var3 >= (($this.$posX | 0) + 4 | 0))
                        break b;
                    if ($var2 >= 14)
                        break c;
                    $var4 = ($this.$posY | 0) - 4 | 0;
                }
                $var5 = ($this.$posZ | 0) - 4 | 0;
            }
        }
        return $var1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, $var2, $var3, $var4, $var5, $var6, $ptr);
},
nms_EntityZombie__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = nms_RangedAttribute__init_($rt_s(2310), 0.0, 0.0, 1.0);
    var$1.$field_111119_c = $rt_s(2311);
    nms_EntityZombie_field_110186_bp = var$1;
    var$1 = nle_ProfileUUID_fromString($rt_s(2312));
    nms_EntityZombie_babySpeedBoostUUID = var$1;
    var$2 = new nms_AttributeModifier;
    var$2.$isSaved = 1;
    var$2.$id1 = var$1;
    var$2.$name3 = $rt_s(2313);
    var$2.$amount0 = 0.5;
    var$2.$operation = 1;
    if ($rt_s(2313) === $rt_s(3))
        var$3 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(3);
        var$3 = $rt_s(2313).$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (!var$3) {
        nms_EntityZombie_babySpeedBoostModifier = var$2;
        return;
    }
    var$2 = new jl_IllegalArgumentException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    var$2.$message = $rt_s(1279);
    $rt_throw(var$2);
};
function nms_EntityPigZombie() {
    let a = this; nms_EntityZombie.call(a);
    a.$angerLevel = 0;
    a.$randomSoundDelay = 0;
    a.$field_110191_bu = null;
}
let nms_EntityPigZombie_field_110189_bq = null,
nms_EntityPigZombie_field_110190_br = null,
nms_EntityPigZombie_$callClinit = () => {
    nms_EntityPigZombie_$callClinit = $rt_eraseClinit(nms_EntityPigZombie);
    nms_EntityPigZombie__clinit_();
},
nms_EntityPigZombie_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    nms_EntityZombie_applyEntityAttributes($this);
    var$1 = nms_EntityZombie_field_110186_bp;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (0.0 !== var$3.$baseValue) {
        var$3.$baseValue = 0.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (0.5 !== var$3.$baseValue) {
        var$3.$baseValue = 0.5;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_attackDamage;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        c: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break c;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (5.0 !== var$1.$baseValue) {
        var$1.$baseValue = 5.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityPigZombie_isAIEnabled = $this => {
    return 0;
},
nms_EntityPigZombie_onUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_110191_bu !== $this.$entityToAttack && !$this.$worldObj.$isRemote) {
            var$1 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$2 = $this.$attributeMap.$attributes;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                a: {
                    var$3 = var$1.$field_111115_a;
                    if (!var$3.$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= var$3.$nativeString.length)
                                break a;
                            var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$5 = var$3.$hashCode1;
                var$6 = var$2.$elementData.data;
                var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$5) {
                        var$3 = var$2.$key;
                        if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = var$2 === null ? null : var$2.$value0;
            nms_EntityPigZombie_$callClinit();
            nms_ModifiableAttributeInstance_removeModifier(var$3, nms_EntityPigZombie_field_110190_br);
            if ($this.$entityToAttack !== null)
                nms_ModifiableAttributeInstance_applyModifier(var$3, nms_EntityPigZombie_field_110190_br);
        }
        $this.$field_110191_bu = $this.$entityToAttack;
        var$5 = $this.$randomSoundDelay;
        if (var$5 > 0) {
            var$4 = var$5 - 1 | 0;
            $this.$randomSoundDelay = var$4;
            if (!var$4) {
                var$1 = $rt_s(2314);
                var$7 = 2.0;
                var$3 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$8;
                var$9 = Long_lo(Long_shru(var$8, 24)) / 1.6777216E7;
                var$10 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$10;
                var$11 = ((var$9 - Long_lo(Long_shru(var$10, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0) * 1.7999999523162842;
                var$3 = $this.$worldObj;
                $ptr = 2;
                continue main;
            }
        }
        $ptr = 1;
    case 1:
        nms_EntityZombie_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_playSoundAtEntity(var$3, $this, var$1, var$7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityPigZombie_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        if (var$1.$difficultySetting <= 0)
            return 0;
        var$2 = $this.$boundingBox0;
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes(var$1, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!(var$1.$size0 ? 0 : 1))
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isAnyLiquid(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityPigZombie_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_EntityZombie_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$angerLevel << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagShort;
    $par1NBTTagCompound.$name = $rt_s(2315);
    $par1NBTTagCompound.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2315), $par1NBTTagCompound);
},
nms_EntityPigZombie_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityZombie_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2315).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2315).$nativeString.length)
                        break a;
                    $rt_s(2315).$hashCode1 = (31 * $rt_s(2315).$hashCode1 | 0) + $rt_s(2315).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2315).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2315) !== var$6) {
                        if ($rt_s(2315) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2315).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$4 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2315) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2315).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2315).$nativeString.length)
                                break c;
                            $rt_s(2315).$hashCode1 = (31 * $rt_s(2315).$hashCode1 | 0) + $rt_s(2315).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2315).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$3) {
                        d: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(2315) !== $par1NBTTagCompound) {
                                if ($rt_s(2315) === $par1NBTTagCompound)
                                    var$4 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$4 = $rt_s(2315).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break d;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$4 = (var$6 === null ? null : var$6.$value0).$data2;
        }
        $this.$angerLevel = var$4;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityPigZombie_findPlayerToAttack = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$angerLevel)
            var$1 = null;
        else {
            var$1 = nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 16.0);
            if (var$1 !== null) {
                $ptr = 1;
                continue main;
            }
            var$1 = null;
        }
        return var$1;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($this, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2)
            var$1 = null;
        return var$1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_EntityPigZombie_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, $var6, var$6, var$7, var$8, var$9, var$10, var$11, $var7, var$13, var$14, var$15, $var4, var$17, $var5, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var5 = $thread.pop();var$17 = $thread.pop();$var4 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        if (!($var3 instanceof nms_EntityPlayer)) {
            $ptr = 1;
            continue main;
        }
        var$4 = $this.$worldObj;
        $var6 = $this.$boundingBox0;
        var$6 = $var6.$minX0 - 32.0;
        var$7 = $var6.$minY0 - 32.0;
        var$8 = $var6.$minZ0 - 32.0;
        var$9 = $var6.$maxX0 + 32.0;
        var$10 = $var6.$maxY + 32.0;
        var$11 = $var6.$maxZ0 + 32.0;
        $var7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$13 = $var7.$nextPoolIndex;
        $var6 = $var7.$listAABB;
        var$14 = $var6.$size0;
        var$15 = $rt_compare(var$13, var$14);
        if (var$15 >= 0) {
            $var4 = new nms_AxisAlignedBB;
            $var4.$minX0 = var$6;
            $var4.$minY0 = var$7;
            $var4.$minZ0 = var$8;
            $var4.$maxX0 = var$9;
            $var4.$maxY = var$10;
            $var4.$maxZ0 = var$11;
            ju_ArrayList_ensureCapacity($var6, var$14 + 1 | 0);
            var$17 = $var6.$array.data;
            var$14 = $var6.$size0;
            $var6.$size0 = var$14 + 1 | 0;
            var$17[var$14] = $var4;
            $var6.$modCount = $var6.$modCount + 1 | 0;
        } else if (var$13 >= 0 && var$15 < 0) {
            $var4 = $var6.$array.data[var$13];
            $var4.$minX0 = var$6;
            $var4.$minY0 = var$7;
            $var4.$minZ0 = var$8;
            $var4.$maxX0 = var$9;
            $var4.$maxY = var$10;
            $var4.$maxZ0 = var$11;
        } else {
            $par1DamageSource = new jl_IndexOutOfBoundsException;
            $par1DamageSource.$suppressionEnabled = 1;
            $par1DamageSource.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1DamageSource);
            $rt_throw($par1DamageSource);
        }
        $var7.$nextPoolIndex = $var7.$nextPoolIndex + 1 | 0;
        $var6 = null;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_EntityZombie_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        return var$15;
    case 2:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity(var$4, $this, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = 0;
        while (true) {
            var$15 = $rt_compare($var5, $var4.$size0);
            if (var$15 >= 0) {
                $this.$entityToAttack = $var3;
                $var6 = $this.$rand;
                var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$19;
                $var5 = Long_lo(Long_shru(var$19, 17));
                while (true) {
                    var$20 = $var5 % 400 | 0;
                    if ((($var5 - var$20 | 0) + 399 | 0) >= 0)
                        break;
                    var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$19;
                    $var5 = Long_lo(Long_shru(var$19, 17));
                }
                $this.$angerLevel = 400 + var$20 | 0;
                var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$19;
                var$14 = Long_lo(Long_shru(var$19, 17));
                while (true) {
                    var$13 = var$14 % 40 | 0;
                    if (((var$14 - var$13 | 0) + 39 | 0) >= 0)
                        break;
                    var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$19;
                    var$14 = Long_lo(Long_shru(var$19, 17));
                }
                $this.$randomSoundDelay = var$13;
                $ptr = 1;
                continue main;
            }
            if ($var5 < 0)
                break;
            if (var$15 >= 0)
                break;
            $var6 = $var4.$array.data[$var5];
            if ($var6 instanceof nms_EntityPigZombie) {
                $var7 = $var6;
                $var7.$entityToAttack = $var3;
                $var6 = $var7.$rand;
                var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$19;
                var$20 = Long_lo(Long_shru(var$19, 17));
                while (true) {
                    var$21 = var$20 % 400 | 0;
                    if (((var$20 - var$21 | 0) + 399 | 0) >= 0)
                        break;
                    var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$19;
                    var$20 = Long_lo(Long_shru(var$19, 17));
                }
                $var7.$angerLevel = 400 + var$21 | 0;
                var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$19;
                var$14 = Long_lo(Long_shru(var$19, 17));
                while (true) {
                    var$15 = var$14 % 40 | 0;
                    if (((var$14 - var$15 | 0) + 39 | 0) >= 0)
                        break;
                    var$19 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var6.$seed = var$19;
                    var$14 = Long_lo(Long_shru(var$19, 17));
                }
                $var7.$randomSoundDelay = var$15;
            }
            $var5 = $var5 + 1 | 0;
        }
        $par1DamageSource = new jl_IndexOutOfBoundsException;
        $par1DamageSource.$suppressionEnabled = 1;
        $par1DamageSource.$writableStackTrace = 1;
        $rt_throw($par1DamageSource);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, var$4, $var6, var$6, var$7, var$8, var$9, var$10, var$11, $var7, var$13, var$14, var$15, $var4, var$17, $var5, var$19, var$20, var$21, $ptr);
},
nms_EntityPigZombie_getLivingSound = $this => {
    return $rt_s(2316);
},
nms_EntityPigZombie_getHurtSound = $this => {
    return $rt_s(2317);
},
nms_EntityPigZombie_getDeathSound = $this => {
    return $rt_s(2318);
},
nms_EntityPigZombie_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, $var3, $var4, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        $par1 = 2 + $par2 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = 17;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        var$6 = $par1 - 1 | 0;
        var$7 = $par1 & var$6;
        if (!var$7)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$6 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $par2 = Long_lo(Long_shru(var$4, var$5));
            }
        $var4 = 0;
        var$10 = 0.0;
        var$11 = 138;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par2 = nms_Item_rottenFlesh.$itemID0;
            var$12 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$12.$itemID = $par2;
            var$12.$stackSize = 1;
            var$12.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$14 = $this.$posX;
            var$15 = $this.$posY + var$10;
            var$16 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        if (!var$7)
            $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var4 = $par2 % $par1 | 0;
                if ((($par2 - $var4 | 0) + var$6 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $par2 = Long_lo(Long_shru(var$4, var$5));
            }
        $par1 = 0;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_goldNugget.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$17 = new nms_EntityItem;
        var$18 = $this.$worldObj;
        var$14 = $this.$posX;
        var$15 = $this.$posY + var$10;
        var$16 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityItem__init_(var$13, var$3, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = var$13.$dataWatcher;
        var$3 = var$18.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$11]);
        var$17 = var$3 === null ? null : var$3.$value0;
        if (!(var$12 !== var$17.$watchedObject ? 0 : 1)) {
            var$17.$watchedObject = var$12;
            var$17.$watched = 1;
            var$18.$objectChanged = 1;
        }
        var$18 = var$13.$dataWatcher;
        var$3 = var$18.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$11]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$18.$objectChanged = 1;
        var$13.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityItem__init_(var$17, var$18, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$17.$dataWatcher;
        var$18 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$18 = ju_HashMap_entryByKey(var$18, jl_Integer_integerCache.data[var$11]);
        var$13 = var$18 === null ? null : var$18.$value0;
        if (!(var$3 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$3;
            var$13.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$13 = var$17.$dataWatcher;
        var$3 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$11]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$17.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 3:
        nms_World_spawnEntityInWorld(var$3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par2 = nms_Item_rottenFlesh.$itemID0;
            var$12 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$12.$itemID = $par2;
            var$12.$stackSize = 1;
            var$12.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$14 = $this.$posX;
            var$15 = $this.$posY + var$10;
            var$16 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        if (!var$7)
            $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var4 = $par2 % $par1 | 0;
                if ((($par2 - $var4 | 0) + var$6 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $par2 = Long_lo(Long_shru(var$4, var$5));
            }
        $par1 = 0;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_goldNugget.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$17 = new nms_EntityItem;
        var$18 = $this.$worldObj;
        var$14 = $this.$posX;
        var$15 = $this.$posY + var$10;
        var$16 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $par1 + 1 | 0;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_goldNugget.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$17 = new nms_EntityItem;
        var$18 = $this.$worldObj;
        var$14 = $this.$posX;
        var$15 = $this.$posY + var$10;
        var$16 = $this.$posZ;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, $var3, $var4, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityPigZombie_interact = ($this, $par1EntityPlayer) => {
    return 0;
},
nms_EntityPigZombie_dropRareDrop = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        var$2 = nms_Item_ingotGold.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$5 = $this.$worldObj;
        var$6 = $this.$posX;
        var$7 = $this.$posY + 0.0;
        var$8 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_(var$4, var$5, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$4.$dataWatcher;
        var$10 = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = ju_HashMap_entryByKey(var$10, jl_Integer_integerCache.data[138]);
        var$10 = var$5 === null ? null : var$5.$value0;
        if (!(var$3 !== var$10.$watchedObject ? 0 : 1)) {
            var$10.$watchedObject = var$3;
            var$10.$watched = 1;
            var$9.$objectChanged = 1;
        }
        var$9 = var$4.$dataWatcher;
        var$5 = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$5, jl_Integer_integerCache.data[138]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$9.$objectChanged = 1;
        var$4.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityPigZombie_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_rottenFlesh.$itemID0;
},
nms_EntityPigZombie_addRandomArmor = $this => {
    let var$1, var$2;
    var$1 = new nms_ItemStack;
    nms_Item_$callClinit();
    var$2 = nms_Item_swordGold;
    nms_ItemStack_$callClinit();
    var$1.$itemID = var$2.$itemID0;
    var$1.$stackSize = 1;
    var$1.$itemDamage = 0;
    $this.$equipment.data[0] = var$1;
},
nms_EntityPigZombie_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1EntityLivingData = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityZombie_onSpawnWithEgg($this, $par1EntityLivingData);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityZombie_setVillager($this, 0);
        return $par1EntityLivingData;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingData, $ptr);
},
nms_EntityPigZombie__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = nle_ProfileUUID_fromString($rt_s(2319));
    nms_EntityPigZombie_field_110189_bq = var$1;
    var$2 = new nms_AttributeModifier;
    var$2.$isSaved = 1;
    var$2.$id1 = var$1;
    var$2.$name3 = $rt_s(2320);
    var$2.$amount0 = 0.45;
    var$2.$operation = 0;
    if ($rt_s(2320) === $rt_s(3))
        var$3 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(3);
        var$3 = $rt_s(2320).$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (!var$3) {
        var$2.$isSaved = 0;
        nms_EntityPigZombie_field_110190_br = var$2;
        return;
    }
    var$1 = new jl_IllegalArgumentException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    var$1.$message = $rt_s(1279);
    $rt_throw(var$1);
},
nms_EntityMagmaCube = $rt_classWithoutFields(nms_EntitySlime),
nms_EntityMagmaCube_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null)
        var$1 = ju_HashMap_findNullKeyEntry(var$2);
    else {
        var$3 = nms_BaseAttribute_hashCode(var$1);
        var$1 = ju_HashMap_findNonNullKeyEntry(var$2, var$1, var$3 & (var$2.$elementData.data.length - 1 | 0), var$3);
    }
    var$4 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$4.$baseValue) {
        var$4.$baseValue = 0.10000000149011612;
        var$4.$field_111133_g = 1;
        var$1 = var$4.$field_111138_a;
        if (var$4.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$4, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$4 = var$1.$field_111115_a;
            if (!var$4.$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$4 = var$2.$key;
                if (var$1 !== var$4 && !jl_Object_equals(var$1, var$4) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.20000000298023224 !== var$1.$baseValue) {
        var$1.$baseValue = 0.20000000298023224;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityMagmaCube_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        if (var$1.$difficultySetting <= 0)
            return 0;
        var$2 = $this.$boundingBox0;
        var$3 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes(var$1, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!(var$1.$size0 ? 0 : 1))
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isAnyLiquid(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityMagmaCube_getTotalArmorValue = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value1 * 3 | 0;
},
nms_EntityMagmaCube_getSlimeParticle = $this => {
    return $rt_s(2321);
},
nms_EntityMagmaCube_createInstance = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = new nms_EntityMagmaCube;
        nms_EntityLiving__init_(var$1, $this.$worldObj);
        var$2 = var$1.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 3 | 0;
            if (((var$4 - var$5 | 0) + 2 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$6 = 1 << var$5;
        var$1.$yOffset = 0.0;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 20 | 0;
            if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$1.$slimeJumpDelay = var$5 + 10 | 0;
        $ptr = 1;
    case 1:
        nms_EntitySlime_setSlimeSize(var$1, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$1.$isImmuneToFire = 1;
        return var$1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityMagmaCube_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_magmaCream.$itemID0;
},
nms_EntityMagmaCube_dropFewItems = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, $var5, var$7, var$8, var$9, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        $var3 = nms_Item_magmaCream.$itemID0;
        if ($var3 > 0) {
            var$4 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                $var5 = var$5.$value;
                var$7 = var$4.$elementData.data;
                var$4 = var$7[$var5 & (var$7.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == $var5) {
                        var$8 = var$4.$key;
                        if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == $var5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            if ((var$4 === null ? null : var$4.$value0).$watchedObject.$value1 > 1) {
                var$4 = $this.$rand;
                var$9 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$9;
                $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31)) - 2 | 0;
                if ($par2 > 0) {
                    var$11 = $par2 + 1 | 0;
                    var$12 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$12;
                    $var5 = Long_lo(Long_shru(var$12, 17));
                    $par1 = var$11 - 1 | 0;
                    if (!(var$11 & $par1))
                        $par2 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$11), Long_fromInt($var5)), 31));
                    else
                        while (true) {
                            $par2 = $var5 % var$11 | 0;
                            if ((($var5 - $par2 | 0) + $par1 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$4.$seed = var$12;
                            $var5 = Long_lo(Long_shru(var$12, 17));
                        }
                    $var4 = $var4 + $par2 | 0;
                }
                $var5 = 0;
                var$13 = 0.0;
                $par2 = 138;
                if ($var5 < $var4) {
                    var$14 = new nms_ItemStack;
                    nms_ItemStack_$callClinit();
                    var$14.$itemID = $var3;
                    var$14.$stackSize = 1;
                    var$14.$itemDamage = 0;
                    var$15 = new nms_EntityItem;
                    var$4 = $this.$worldObj;
                    var$16 = $this.$posX;
                    var$17 = $this.$posY + var$13;
                    var$18 = $this.$posZ;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_EntityItem__init_(var$15, var$4, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = var$15.$dataWatcher;
        var$4 = var$5.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = ju_HashMap_entryByKey(var$4, jl_Integer_integerCache.data[$par2]);
        var$8 = var$4 === null ? null : var$4.$value0;
        if (!(var$14 !== var$8.$watchedObject ? 0 : 1)) {
            var$8.$watchedObject = var$14;
            var$8.$watched = 1;
            var$5.$objectChanged = 1;
        }
        var$5 = var$15.$dataWatcher;
        var$4 = var$5.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = ju_HashMap_entryByKey(var$4, jl_Integer_integerCache.data[$par2]);
        (var$4 === null ? null : var$4.$value0).$watched = 1;
        var$5.$objectChanged = 1;
        var$15.$delayBeforeCanPickup = 10;
        var$4 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$4, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= $var4)
            return;
        var$14 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$14.$itemID = $var3;
        var$14.$stackSize = 1;
        var$14.$itemDamage = 0;
        var$15 = new nms_EntityItem;
        var$4 = $this.$worldObj;
        var$16 = $this.$posX;
        var$17 = $this.$posY + var$13;
        var$18 = $this.$posZ;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, var$5, $var5, var$7, var$8, var$9, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityMagmaCube_isBurning = $this => {
    return 0;
},
nms_EntityMagmaCube_getJumpDelay = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 20 | 0;
        if (((var$3 - var$4 | 0) + 19 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return (var$4 + 10 | 0) * 4 | 0;
},
nms_EntityMagmaCube_alterSquishAmount = $this => {
    $this.$squishAmount = $this.$squishAmount * 0.8999999761581421;
},
nms_EntityMagmaCube_jump = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    $this.$motionY = 0.41999998688697815 + (var$1 === null ? null : var$1.$value0).$watchedObject.$value1 * 0.10000000149011612;
    $this.$isAirBorne = 1;
},
nms_EntityMagmaCube_fall = ($this, $par1) => {
    return;
},
nms_EntityMagmaCube_canDamagePlayer = $this => {
    return 1;
},
nms_EntityMagmaCube_getAttackStrength = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value1 + 2 | 0;
},
nms_EntityMagmaCube_getHurtSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$1 = var$1.$watchedObject.$value1 <= 1 ? $rt_s(2291) : $rt_s(2292);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2293));
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$6 = var$4.data;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EntityMagmaCube_getDeathSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$1 = var$1.$watchedObject.$value1 <= 1 ? $rt_s(2291) : $rt_s(2292);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2293));
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$6 = var$4.data;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$7);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EntityMagmaCube_getJumpSound = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 <= 1 ? $rt_s(2322) : $rt_s(2323);
},
nms_EntityMagmaCube_handleLavaMovement = $this => {
    return 0;
},
nms_EntityMagmaCube_makesSoundOnLand = $this => {
    return 1;
};
function nms_EntityEnderman() {
    let a = this; nms_EntityMob.call(a);
    a.$teleportDelay = 0;
    a.$stareTimer = 0;
    a.$lastEntityToAttack = null;
    a.$isAggressive = 0;
}
let nms_EntityEnderman_attackingSpeedBoostModifierUUID = null,
nms_EntityEnderman_attackingSpeedBoostModifier = null,
nms_EntityEnderman_carriableBlocks = null,
nms_EntityEnderman_$callClinit = () => {
    nms_EntityEnderman_$callClinit = $rt_eraseClinit(nms_EntityEnderman);
    nms_EntityEnderman__clinit_();
},
nms_EntityEnderman_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$1);
    var$2 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$2.$baseValue) {
        var$2.$baseValue = 0.10000000149011612;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (40.0 !== var$2.$baseValue) {
        var$2.$baseValue = 40.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        b: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break b;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (0.30000001192092896 !== var$2.$baseValue) {
        var$2.$baseValue = 0.30000001192092896;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_attackDamage;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        c: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break c;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$1 = var$3 === null ? null : var$3.$value0;
    if (7.0 !== var$1.$baseValue) {
        var$1.$baseValue = 7.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
},
nms_EntityEnderman_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 0;
    nms_DataWatcher_addObject(var$2, 16, var$1);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Byte;
    var$2.$value1 = 0;
    nms_DataWatcher_addObject(var$1, 17, var$2);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Byte;
    var$2.$value1 = 0;
    nms_DataWatcher_addObject(var$1, 18, var$2);
},
nms_EntityEnderman_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2324);
    var$2.$data2 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2324), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[145];
    if (var$6 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$7 = var$6.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$7 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                var$3 = var$2.$key;
                if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1 << 16 >> 16;
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2325);
    var$2.$data2 = var$4;
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2325), var$2);
},
nms_EntityEnderman_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    a: {
        nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2324).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2324).$nativeString.length)
                    break a;
                $rt_s(2324).$hashCode1 = (31 * $rt_s(2324).$hashCode1 | 0) + $rt_s(2324).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2324).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(2324) !== var$5) {
                    if ($rt_s(2324) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2324).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2324) !== null) {
            c: {
                if (!$rt_s(2324).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2324).$nativeString.length)
                            break c;
                        $rt_s(2324).$hashCode1 = (31 * $rt_s(2324).$hashCode1 | 0) + $rt_s(2324).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2324).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    d: {
                        var$5 = var$2.$key;
                        if ($rt_s(2324) !== var$5) {
                            if ($rt_s(2324) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$6 = $rt_s(2324).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$6 = 0;
                            } else
                                var$6 = 1;
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data2;
    } else
        var$6 = 0;
    var$7 = $this.$dataWatcher;
    var$3 = (var$6 & 255) << 24 >> 24;
    var$8 = jl_Byte_byteCache.data[var$3 + 128 | 0];
    var$2 = var$7.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$9 = jl_Integer_integerCache.data[144];
    if (var$9 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$10 = var$9.$value;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$10) {
                var$5 = var$2.$key;
                if (var$9 !== var$5 && !(var$9 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$10 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$5 = var$2 === null ? null : var$2.$value0;
    var$2 = var$5.$watchedObject;
    if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$8.$value1 ? 1 : 0)) {
        var$5.$watchedObject = var$8;
        var$5.$watched = 1;
        var$7.$objectChanged = 1;
    }
    e: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2325).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2325).$nativeString.length)
                    break e;
                $rt_s(2325).$hashCode1 = (31 * $rt_s(2325).$hashCode1 | 0) + $rt_s(2325).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(2325).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$10) {
            f: {
                var$5 = var$2.$key;
                if ($rt_s(2325) !== var$5) {
                    if ($rt_s(2325) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2325).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$6 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2325) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2325).$hashCode1) {
                    var$6 = 0;
                    while (true) {
                        if (var$6 >= $rt_s(2325).$nativeString.length)
                            break g;
                        $rt_s(2325).$hashCode1 = (31 * $rt_s(2325).$hashCode1 | 0) + $rt_s(2325).$nativeString.charCodeAt(var$6) | 0;
                        var$6 = var$6 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(2325).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$4[var$10 & (var$4.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$10) {
                    h: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2325) !== var$2) {
                            if ($rt_s(2325) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2325).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$6 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data2;
    }
    $par1NBTTagCompound = $this.$dataWatcher;
    var$3 = (var$6 & 255) << 24 >> 24;
    var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
    var$7 = $par1NBTTagCompound.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[145];
    if (var$5 === null) {
        var$7 = var$7.$elementData.data[0];
        while (var$7 !== null && var$7.$key !== null) {
            var$7 = var$7.$next3;
        }
    } else {
        var$10 = var$5.$value;
        var$4 = var$7.$elementData.data;
        var$7 = var$4[var$10 & (var$4.length - 1 | 0)];
        while (var$7 !== null) {
            if (var$7.$origKeyHash == var$10) {
                var$2 = var$7.$key;
                if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$10 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$7 = var$7.$next3;
        }
    }
    var$2 = var$7 === null ? null : var$7.$value0;
    var$7 = var$2.$watchedObject;
    if (!(var$7 instanceof jl_Byte && var$7.$value1 == var$9.$value1 ? 1 : 0)) {
        var$2.$watchedObject = var$9;
        var$2.$watched = 1;
        $par1NBTTagCompound.$objectChanged = 1;
    }
},
nms_EntityEnderman_findPlayerToAttack = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 64.0);
        if ($var1 === null)
            return null;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityEnderman_shouldAttackPlayer($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2)
            $this.$stareTimer = 0;
        else {
            $this.$isAggressive = 1;
            if (!$this.$stareTimer) {
                var$3 = $this.$worldObj;
                var$4 = $rt_s(2326);
                var$5 = 1.0;
                var$6 = 1.0;
                $ptr = 2;
                continue main;
            }
            var$7 = $this.$stareTimer;
            $this.$stareTimer = var$7 + 1 | 0;
            if (var$7 == 5) {
                $this.$stareTimer = 0;
                var$3 = $this.$dataWatcher;
                var$8 = jl_Byte_byteCache.data[129];
                var$4 = var$3.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$9 = jl_Integer_integerCache.data[146];
                if (var$9 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$10 = var$9.$value;
                    var$11 = var$4.$elementData.data;
                    var$4 = var$11[var$10 & (var$11.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$10) {
                            var$12 = var$4.$key;
                            if (var$9 !== var$12 && !(var$9 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$10 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                var$12 = var$4 === null ? null : var$4.$value0;
                var$4 = var$12.$watchedObject;
                if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$8.$value1 ? 1 : 0)) {
                    var$12.$watchedObject = var$8;
                    var$12.$watched = 1;
                    var$3.$objectChanged = 1;
                }
                return $var1;
            }
        }
        return null;
    case 2:
        nms_World_playSoundAtEntity(var$3, $var1, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$stareTimer;
        $this.$stareTimer = var$7 + 1 | 0;
        if (var$7 != 5)
            return null;
        $this.$stareTimer = 0;
        var$3 = $this.$dataWatcher;
        var$8 = jl_Byte_byteCache.data[129];
        var$4 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[146];
        if (var$9 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$11 = var$4.$elementData.data;
            var$4 = var$11[var$10 & (var$11.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$10) {
                    var$12 = var$4.$key;
                    if (var$9 !== var$12 && !(var$9 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$12 = var$4 === null ? null : var$4.$value0;
        var$4 = var$12.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$8.$value1 ? 1 : 0)) {
            var$12.$watchedObject = var$8;
            var$12.$watched = 1;
            var$3.$objectChanged = 1;
        }
        return $var1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityEnderman_shouldAttackPlayer = ($this, $par1EntityPlayer) => {
    let $var2, var$3, $var3, $var4, var$6, var$7, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1EntityPlayer.$inventory0.$armorInventory.data[3];
        if ($var2 !== null) {
            var$3 = $var2.$itemID;
            nms_Block_$callClinit();
            if (var$3 == nms_Block_pumpkin.$blockID)
                return 0;
        }
        $var3 = nms_Vec3_normalize(nms_EntityLivingBase_getLook($par1EntityPlayer, 1.0));
        $var4 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX - $par1EntityPlayer.$posX, $this.$boundingBox0.$minY0 + $this.$height0 / 2.0 - ($par1EntityPlayer.$posY + 1.6200000047683716), $this.$posZ - $par1EntityPlayer.$posZ);
        var$6 = $var4.$xCoord;
        var$6 = var$6 * var$6;
        var$7 = $var4.$yCoord;
        var$6 = var$6 + var$7 * var$7;
        var$7 = $var4.$zCoord;
        $var5 = jl_Math_sqrt(var$6 + var$7 * var$7);
        $var2 = nms_Vec3_normalize($var4);
        if ($var3.$xCoord * $var2.$xCoord + $var3.$yCoord * $var2.$yCoord + $var3.$zCoord * $var2.$zCoord <= 1.0 - 0.025 / $var5)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($par1EntityPlayer, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, var$3, $var3, $var4, var$6, var$7, $var5, $ptr);
},
nms_EntityEnderman_onLivingUpdate = $this => {
    let $var6, var$2, $var7, var$4, var$5, var$6, $var4, $var3, $var5, var$10, var$11, var$12, var$13, $var6_0, $var2, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var2 = $thread.pop();$var6_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var7 = $thread.pop();var$2 = $thread.pop();$var6 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_isWet($this);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6) {
            var$2 = nms_DamageSource_drown;
            $var7 = 1.0;
            $ptr = 2;
            continue main;
        }
        if ($this.$lastEntityToAttack !== $this.$entityToAttack) {
            var$2 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$4 = $this.$attributeMap.$attributes;
            if (var$2 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                a: {
                    var$5 = var$2.$field_111115_a;
                    if (!var$5.$hashCode1) {
                        $var6 = 0;
                        while (true) {
                            if ($var6 >= var$5.$nativeString.length)
                                break a;
                            var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                            $var6 = $var6 + 1 | 0;
                        }
                    }
                }
                $var6 = var$5.$hashCode1;
                var$6 = var$4.$elementData.data;
                var$4 = var$6[$var6 & (var$6.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == $var6) {
                        var$5 = var$4.$key;
                        if (var$2 !== var$5 && !jl_Object_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$4 = var$4 === null ? null : var$4.$value0;
            nms_EntityEnderman_$callClinit();
            nms_ModifiableAttributeInstance_removeModifier(var$4, nms_EntityEnderman_attackingSpeedBoostModifier);
            if ($this.$entityToAttack !== null)
                nms_ModifiableAttributeInstance_applyModifier(var$4, nms_EntityEnderman_attackingSpeedBoostModifier);
        }
        b: {
            $this.$lastEntityToAttack = $this.$entityToAttack;
            var$2 = $this.$worldObj;
            if (!var$2.$isRemote) {
                c: {
                    var$4 = (var$2.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    var$5 = $rt_s(1417);
                    var$2 = $rt_s(1417);
                    if (var$5 !== var$2) {
                        $var4 = var$5.$nativeString.length;
                        $var3 = var$2.$nativeString.length;
                        if ($var4 < $var3)
                            $var3 = $var4;
                        $var6 = 0;
                        d: {
                            while (true) {
                                if ($var6 >= $var3) {
                                    var$5.$nativeString.length;
                                    var$2.$nativeString.length;
                                    break c;
                                }
                                if ($var6 < 0)
                                    break d;
                                if ($var6 >= var$5.$nativeString.length)
                                    break d;
                                $var5 = var$5.$nativeString.charCodeAt($var6);
                                if ($var6 < 0)
                                    break;
                                if ($var6 >= var$2.$nativeString.length)
                                    break;
                                if ($var5 - var$2.$nativeString.charCodeAt($var6) | 0)
                                    break c;
                                $var6 = $var6 + 1 | 0;
                            }
                            var$2 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_(var$2);
                            $rt_throw(var$2);
                        }
                        var$2 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$2);
                        $rt_throw(var$2);
                    }
                }
                var$2 = $rt_s(1417);
                e: {
                    f: {
                        g: while (true) {
                            if (var$4 === null) {
                                var$4 = null;
                                break e;
                            }
                            h: {
                                var$5 = var$4.$key0;
                                if (var$2 === var$5)
                                    $var6 = 0;
                                else {
                                    $var4 = var$2.$nativeString.length;
                                    $var3 = var$5.$nativeString.length;
                                    if ($var4 < $var3)
                                        $var3 = $var4;
                                    $var4 = 0;
                                    while (true) {
                                        if ($var4 >= $var3) {
                                            $var6 = var$2.$nativeString.length - var$5.$nativeString.length | 0;
                                            break h;
                                        }
                                        if ($var4 < 0)
                                            break f;
                                        if ($var4 >= var$2.$nativeString.length)
                                            break f;
                                        $var5 = var$2.$nativeString.charCodeAt($var4);
                                        if ($var4 < 0)
                                            break g;
                                        if ($var4 >= var$5.$nativeString.length)
                                            break g;
                                        $var6 = $var5 - var$5.$nativeString.charCodeAt($var4) | 0;
                                        if ($var6)
                                            break;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var6)
                                break e;
                            var$4 = $var6 >= 0 ? var$4.$right : var$4.$left;
                        }
                        var$2 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$2);
                        $rt_throw(var$2);
                    }
                    var$2 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$2);
                    $rt_throw(var$2);
                }
                var$2 = var$4 === null ? null : var$4.$value2;
                if (var$2 === null ? 0 : var$2.$valueBoolean) {
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        $var6 = var$4.$value;
                        var$6 = var$2.$elementData.data;
                        var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == $var6) {
                                var$5 = var$2.$key;
                                if (var$4 !== var$5 && !(var$4 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var6 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1) {
                        var$2 = $this.$rand;
                        var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$10;
                        $var5 = Long_lo(Long_shru(var$10, 17));
                        while (true) {
                            $var3 = $var5 % 2000 | 0;
                            if ((($var5 - $var3 | 0) + 1999 | 0) >= 0)
                                break;
                            var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$10;
                            $var5 = Long_lo(Long_shru(var$10, 17));
                        }
                        if ($var3)
                            break b;
                        var$11 = $this.$posX - 1.0;
                        var$12 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 2.0;
                        $var6_0 = var$11 | 0;
                        if (var$11 < $var6_0)
                            $var6_0 = $var6_0 - 1 | 0;
                        var$11 = $this.$posY;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 2.0;
                        $var2 = var$11 | 0;
                        if (var$11 < $var2)
                            $var2 = $var2 - 1 | 0;
                        var$11 = $this.$posZ - 1.0;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 2.0;
                        $var3 = var$11 | 0;
                        if (var$11 < $var3)
                            $var3 = $var3 - 1 | 0;
                        var$2 = $this.$worldObj;
                        $ptr = 12;
                        continue main;
                    }
                    var$2 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$10;
                    $var5 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        $var3 = $var5 % 20 | 0;
                        if ((($var5 - $var3 | 0) + 19 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$10;
                        $var5 = Long_lo(Long_shru(var$10, 17));
                    }
                    if (!$var3) {
                        var$11 = $this.$posX - 2.0;
                        var$12 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 4.0;
                        $var6_0 = var$11 | 0;
                        if (var$11 < $var6_0)
                            $var6_0 = $var6_0 - 1 | 0;
                        var$11 = $this.$posY;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 3.0;
                        $var2 = var$11 | 0;
                        if (var$11 < $var2)
                            $var2 = $var2 - 1 | 0;
                        var$11 = $this.$posZ - 2.0;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 4.0;
                        $var3 = var$11 | 0;
                        if (var$11 < $var3)
                            $var3 = $var3 - 1 | 0;
                        var$2 = $this.$worldObj;
                        $ptr = 14;
                        continue main;
                    }
                }
            }
        }
        $var6 = 0;
        i: while (true) {
            if ($var6 >= 2) {
                var$2 = $this.$worldObj;
                $var6 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
                if ($var6 && !var$2.$isRemote) {
                    $var7 = 1.0;
                    $ptr = 4;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            var$2 = $this.$worldObj;
            var$4 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$4.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var5 = $rt_compare($var4, var$2.$worldAccesses.$size0);
                if ($var5 >= 0)
                    break;
                if ($var4 < 0)
                    break i;
                if ($var5 >= 0)
                    break i;
                $var4 = $var4 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    case 2:
        nms_EntityEnderman_attackEntityFrom($this, var$2, $var7);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$lastEntityToAttack !== $this.$entityToAttack) {
            var$2 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$4 = $this.$attributeMap.$attributes;
            if (var$2 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                j: {
                    var$5 = var$2.$field_111115_a;
                    if (!var$5.$hashCode1) {
                        $var6 = 0;
                        while (true) {
                            if ($var6 >= var$5.$nativeString.length)
                                break j;
                            var$5.$hashCode1 = (31 * var$5.$hashCode1 | 0) + var$5.$nativeString.charCodeAt($var6) | 0;
                            $var6 = $var6 + 1 | 0;
                        }
                    }
                }
                $var6 = var$5.$hashCode1;
                var$6 = var$4.$elementData.data;
                var$4 = var$6[$var6 & (var$6.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == $var6) {
                        var$5 = var$4.$key;
                        if (var$2 !== var$5 && !jl_Object_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$4 = var$4 === null ? null : var$4.$value0;
            nms_EntityEnderman_$callClinit();
            nms_ModifiableAttributeInstance_removeModifier(var$4, nms_EntityEnderman_attackingSpeedBoostModifier);
            if ($this.$entityToAttack !== null)
                nms_ModifiableAttributeInstance_applyModifier(var$4, nms_EntityEnderman_attackingSpeedBoostModifier);
        }
        k: {
            $this.$lastEntityToAttack = $this.$entityToAttack;
            var$2 = $this.$worldObj;
            if (!var$2.$isRemote) {
                b: {
                    var$4 = (var$2.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    var$5 = $rt_s(1417);
                    var$2 = $rt_s(1417);
                    if (var$5 !== var$2) {
                        $var4 = var$5.$nativeString.length;
                        $var3 = var$2.$nativeString.length;
                        if ($var4 < $var3)
                            $var3 = $var4;
                        $var6 = 0;
                        l: {
                            while (true) {
                                if ($var6 >= $var3) {
                                    var$5.$nativeString.length;
                                    var$2.$nativeString.length;
                                    break b;
                                }
                                if ($var6 < 0)
                                    break l;
                                if ($var6 >= var$5.$nativeString.length)
                                    break l;
                                $var5 = var$5.$nativeString.charCodeAt($var6);
                                if ($var6 < 0)
                                    break;
                                if ($var6 >= var$2.$nativeString.length)
                                    break;
                                if ($var5 - var$2.$nativeString.charCodeAt($var6) | 0)
                                    break b;
                                $var6 = $var6 + 1 | 0;
                            }
                            var$2 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_(var$2);
                            $rt_throw(var$2);
                        }
                        var$2 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$2);
                        $rt_throw(var$2);
                    }
                }
                var$2 = $rt_s(1417);
                m: {
                    n: {
                        f: while (true) {
                            if (var$4 === null) {
                                var$4 = null;
                                break m;
                            }
                            o: {
                                var$5 = var$4.$key0;
                                if (var$2 === var$5)
                                    $var6 = 0;
                                else {
                                    $var4 = var$2.$nativeString.length;
                                    $var3 = var$5.$nativeString.length;
                                    if ($var4 < $var3)
                                        $var3 = $var4;
                                    $var4 = 0;
                                    while (true) {
                                        if ($var4 >= $var3) {
                                            $var6 = var$2.$nativeString.length - var$5.$nativeString.length | 0;
                                            break o;
                                        }
                                        if ($var4 < 0)
                                            break n;
                                        if ($var4 >= var$2.$nativeString.length)
                                            break n;
                                        $var5 = var$2.$nativeString.charCodeAt($var4);
                                        if ($var4 < 0)
                                            break f;
                                        if ($var4 >= var$5.$nativeString.length)
                                            break f;
                                        $var6 = $var5 - var$5.$nativeString.charCodeAt($var4) | 0;
                                        if ($var6)
                                            break;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var6)
                                break m;
                            var$4 = $var6 >= 0 ? var$4.$right : var$4.$left;
                        }
                        var$2 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$2);
                        $rt_throw(var$2);
                    }
                    var$2 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$2);
                    $rt_throw(var$2);
                }
                var$2 = var$4 === null ? null : var$4.$value2;
                if (var$2 === null ? 0 : var$2.$valueBoolean) {
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        $var6 = var$4.$value;
                        var$6 = var$2.$elementData.data;
                        var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == $var6) {
                                var$5 = var$2.$key;
                                if (var$4 !== var$5 && !(var$4 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var6 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1) {
                        var$2 = $this.$rand;
                        var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$10;
                        $var5 = Long_lo(Long_shru(var$10, 17));
                        while (true) {
                            $var3 = $var5 % 2000 | 0;
                            if ((($var5 - $var3 | 0) + 1999 | 0) >= 0)
                                break;
                            var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$10;
                            $var5 = Long_lo(Long_shru(var$10, 17));
                        }
                        if ($var3)
                            break k;
                        var$11 = $this.$posX - 1.0;
                        var$12 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 2.0;
                        $var6_0 = var$11 | 0;
                        if (var$11 < $var6_0)
                            $var6_0 = $var6_0 - 1 | 0;
                        var$11 = $this.$posY;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 2.0;
                        $var2 = var$11 | 0;
                        if (var$11 < $var2)
                            $var2 = $var2 - 1 | 0;
                        var$11 = $this.$posZ - 1.0;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 2.0;
                        $var3 = var$11 | 0;
                        if (var$11 < $var3)
                            $var3 = $var3 - 1 | 0;
                        var$2 = $this.$worldObj;
                        $ptr = 12;
                        continue main;
                    }
                    var$2 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$10;
                    $var5 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        $var3 = $var5 % 20 | 0;
                        if ((($var5 - $var3 | 0) + 19 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$10;
                        $var5 = Long_lo(Long_shru(var$10, 17));
                    }
                    if (!$var3) {
                        var$11 = $this.$posX - 2.0;
                        var$12 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 4.0;
                        $var6_0 = var$11 | 0;
                        if (var$11 < $var6_0)
                            $var6_0 = $var6_0 - 1 | 0;
                        var$11 = $this.$posY;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 3.0;
                        $var2 = var$11 | 0;
                        if (var$11 < $var2)
                            $var2 = $var2 - 1 | 0;
                        var$11 = $this.$posZ - 2.0;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$12;
                        var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$11 = var$11 + Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$13, 21))))) * 1.1102230246251565E-16 * 4.0;
                        $var3 = var$11 | 0;
                        if (var$11 < $var3)
                            $var3 = $var3 - 1 | 0;
                        var$2 = $this.$worldObj;
                        $ptr = 14;
                        continue main;
                    }
                }
            }
        }
        $var6 = 0;
        p: while (true) {
            if ($var6 >= 2) {
                var$2 = $this.$worldObj;
                $var6 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
                if ($var6 && !var$2.$isRemote) {
                    $var7 = 1.0;
                    $ptr = 4;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            var$2 = $this.$worldObj;
            var$4 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$4.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var5 = $rt_compare($var4, var$2.$worldAccesses.$size0);
                if ($var5 >= 0)
                    break;
                if ($var4 < 0)
                    break p;
                if ($var5 >= 0)
                    break p;
                $var4 = $var4 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    case 3:
        $tmp = nms_Entity_isWet($this);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            q: {
                r: {
                    if (!$this.$isImmuneToFire) {
                        if ($this.$fire <= 0) {
                            var$2 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$4 = jl_Integer_integerCache.data[128];
                            if (var$4 !== null) {
                                $var6 = var$4.$value;
                                var$6 = var$2.$elementData.data;
                                var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
                                while (var$2 !== null) {
                                    if (var$2.$origKeyHash == $var6) {
                                        var$5 = var$2.$key;
                                        if (var$4 !== var$5 && !jl_Integer_equals(var$4, var$5) ? 0 : 1)
                                            break;
                                    }
                                    var$2 = var$2.$next3;
                                }
                            } else {
                                var$2 = var$2.$elementData.data[0];
                                while (var$2 !== null && var$2.$key !== null) {
                                    var$2 = var$2.$next3;
                                }
                            }
                            var$2 = var$2 === null ? null : var$2.$value0;
                            if (!(!(var$2.$watchedObject.$value1 & 1) ? 0 : 1))
                                break r;
                        }
                        $var6 = 1;
                        break q;
                    }
                }
                $var6 = 0;
            }
            if (!$var6) {
                var$2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[146];
                if (var$4 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    $var6 = var$4.$value;
                    var$6 = var$2.$elementData.data;
                    var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == $var6) {
                            var$5 = var$2.$key;
                            if (var$4 !== var$5 && !(var$4 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var6 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$2 = var$2 === null ? null : var$2.$value0;
                $var6 = var$2.$watchedObject.$value1 <= 0 ? 0 : 1;
                if ($var6 && !$this.$isAggressive) {
                    var$2 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$10;
                    $var5 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        $var3 = $var5 % 100 | 0;
                        if ((($var5 - $var3 | 0) + 99 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$10;
                        $var5 = Long_lo(Long_shru(var$10, 17));
                    }
                    if (!$var3) {
                        var$2 = $this.$dataWatcher;
                        var$16 = jl_Byte_byteCache.data[128];
                        var$4 = var$2.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$17 = jl_Integer_integerCache.data[146];
                        if (var$17 === null) {
                            var$4 = var$4.$elementData.data[0];
                            while (var$4 !== null && var$4.$key !== null) {
                                var$4 = var$4.$next3;
                            }
                        } else {
                            $var5 = var$17.$value;
                            var$6 = var$4.$elementData.data;
                            var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                            while (var$4 !== null) {
                                if (var$4.$origKeyHash == $var5) {
                                    var$5 = var$4.$key;
                                    if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$4 = var$4.$next3;
                            }
                        }
                        var$5 = var$4 === null ? null : var$4.$value0;
                        var$4 = var$5.$watchedObject;
                        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
                            var$5.$watchedObject = var$16;
                            var$5.$watched = 1;
                            var$2.$objectChanged = 1;
                        }
                    }
                }
                $this.$isJumping = 0;
                var$2 = $this.$entityToAttack;
                if (var$2 !== null)
                    nms_EntityLiving_faceEntity($this, var$2, 100.0, 100.0);
                if (!$this.$worldObj.$isRemote) {
                    s: {
                        if (!$this.$isDead) {
                            var$2 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$4 = jl_Integer_integerCache.data[134];
                            if (var$4 === null) {
                                var$2 = var$2.$elementData.data[0];
                                while (var$2 !== null && var$2.$key !== null) {
                                    var$2 = var$2.$next3;
                                }
                            } else {
                                $var6 = var$4.$value;
                                var$6 = var$2.$elementData.data;
                                var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
                                while (var$2 !== null) {
                                    if (var$2.$origKeyHash == $var6) {
                                        var$5 = var$2.$key;
                                        if (var$4 !== var$5 && !jl_Integer_equals(var$4, var$5) ? 0 : 1)
                                            break;
                                    }
                                    var$2 = var$2.$next3;
                                }
                            }
                            if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value3 > 0.0) {
                                $var6 = 1;
                                break s;
                            }
                        }
                        $var6 = 0;
                    }
                    if ($var6) {
                        var$2 = $this.$entityToAttack;
                        if (var$2 === null) {
                            var$2 = $this.$dataWatcher;
                            var$16 = jl_Byte_byteCache.data[128];
                            var$4 = var$2.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$17 = jl_Integer_integerCache.data[146];
                            if (var$17 === null) {
                                var$4 = var$4.$elementData.data[0];
                                while (var$4 !== null && var$4.$key !== null) {
                                    var$4 = var$4.$next3;
                                }
                            } else {
                                $var5 = var$17.$value;
                                var$6 = var$4.$elementData.data;
                                var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                                while (var$4 !== null) {
                                    if (var$4.$origKeyHash == $var5) {
                                        var$5 = var$4.$key;
                                        if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                            break;
                                    }
                                    var$4 = var$4.$next3;
                                }
                            }
                            var$5 = var$4 === null ? null : var$4.$value0;
                            var$4 = var$5.$watchedObject;
                            if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
                                var$5.$watchedObject = var$16;
                                var$5.$watched = 1;
                                var$2.$objectChanged = 1;
                            }
                            $this.$teleportDelay = 0;
                        } else {
                            if (var$2 instanceof nms_EntityPlayer) {
                                var$2 = var$2;
                                $ptr = 9;
                                continue main;
                            }
                            var$2 = $this.$entityToAttack;
                            var$11 = var$2.$posX - $this.$posX;
                            var$18 = var$2.$posY - $this.$posY;
                            var$19 = var$2.$posZ - $this.$posZ;
                            if (var$11 * var$11 + var$18 * var$18 + var$19 * var$19 > 256.0) {
                                $var4 = $this.$teleportDelay;
                                $this.$teleportDelay = $var4 + 1 | 0;
                                if ($var4 >= 30) {
                                    $ptr = 10;
                                    continue main;
                                }
                            }
                        }
                    }
                }
                nms_EntityLivingBase_updateArmSwingProgress($this);
                $var7 = 1.0;
                $ptr = 7;
                continue main;
            }
        }
        $this.$entityToAttack = null;
        var$2 = $this.$dataWatcher;
        var$16 = jl_Byte_byteCache.data[128];
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[146];
        if (var$17 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            $var5 = var$17.$value;
            var$6 = var$4.$elementData.data;
            var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var5) {
                    var$5 = var$4.$key;
                    if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
            var$5.$watchedObject = var$16;
            var$5.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $this.$isAggressive = 0;
        $ptr = 5;
        continue main;
    case 4:
        t: {
            $tmp = nms_Entity_getBrightness($this, $var7);
            if ($rt_suspending()) {
                break main;
            }
            $var7 = $tmp;
            if ($var7 > 0.5) {
                var$2 = $this.$worldObj;
                var$11 = $this.$posX;
                $var3 = var$11 | 0;
                if (var$11 < $var3)
                    $var3 = $var3 - 1 | 0;
                var$11 = $this.$posY;
                $var5 = var$11 | 0;
                if (var$11 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$11 = $this.$posZ;
                $var4 = var$11 | 0;
                if (var$11 < $var4)
                    $var4 = $var4 - 1 | 0;
                $var2 = $var3 >> 4;
                $var6 = $var4 >> 4;
                var$2 = var$2.$chunkProvider;
                var$4 = var$2.$loadedChunkHashMap;
                var$13 = Long_or(Long_and(Long_fromInt($var2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), 32));
                $var6_0 = Long_lo(Long_xor(var$13, Long_shru(var$13, 32)));
                $var6_0 = $var6_0 ^ ($var6_0 >>> 20 | 0) ^ ($var6_0 >>> 12 | 0);
                var$20 = $var6_0 ^ ($var6_0 >>> 7 | 0) ^ ($var6_0 >>> 4 | 0);
                var$6 = var$4.$hashArray.data;
                var$4 = var$6[var$20 & (var$6.length - 1 | 0)];
                u: {
                    while (var$4 !== null) {
                        if (Long_eq(var$4.$key1, var$13)) {
                            var$4 = var$4.$value4;
                            break u;
                        }
                        var$4 = var$4.$nextEntry;
                    }
                    var$4 = null;
                }
                var$4 = var$4;
                if (var$4 === null) {
                    if (var$2.$worldObj0.$findingSpawnPoint)
                        break t;
                    if (var$2.$loadChunkOnProvideRequest)
                        break t;
                    var$4 = var$2.$defaultEmptyChunk;
                }
                if (var$4.$canBlockSeeTheSky($var3 & 15, $var5, $var4 & 15)) {
                    var$2 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$10;
                    if (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 30.0 < ($var7 - 0.4000000059604645) * 2.0) {
                        $this.$entityToAttack = null;
                        var$2 = $this.$dataWatcher;
                        var$16 = jl_Byte_byteCache.data[128];
                        var$4 = var$2.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$17 = jl_Integer_integerCache.data[146];
                        if (var$17 === null) {
                            var$4 = var$4.$elementData.data[0];
                            while (var$4 !== null && var$4.$key !== null) {
                                var$4 = var$4.$next3;
                            }
                        } else {
                            $var5 = var$17.$value;
                            var$6 = var$4.$elementData.data;
                            var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                            while (var$4 !== null) {
                                if (var$4.$origKeyHash == $var5) {
                                    var$5 = var$4.$key;
                                    if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$4 = var$4.$next3;
                            }
                        }
                        var$5 = var$4 === null ? null : var$4.$value0;
                        var$4 = var$5.$watchedObject;
                        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
                            var$5.$watchedObject = var$16;
                            var$5.$watched = 1;
                            var$2.$objectChanged = 1;
                        }
                        $this.$isAggressive = 0;
                        $ptr = 16;
                        continue main;
                    }
                }
            }
            $ptr = 3;
            continue main;
        }
        $ptr = 6;
        continue main;
    case 5:
        nms_EntityEnderman_teleportRandomly($this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[146];
        if (var$4 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var6 = var$4.$value;
            var$6 = var$2.$elementData.data;
            var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var6) {
                    var$5 = var$2.$key;
                    if (var$4 !== var$5 && !(var$4 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var6 = var$2.$watchedObject.$value1 <= 0 ? 0 : 1;
        if ($var6 && !$this.$isAggressive) {
            var$2 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$10;
            $var5 = Long_lo(Long_shru(var$10, 17));
            while (true) {
                $var3 = $var5 % 100 | 0;
                if ((($var5 - $var3 | 0) + 99 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$10;
                $var5 = Long_lo(Long_shru(var$10, 17));
            }
            if (!$var3) {
                var$2 = $this.$dataWatcher;
                var$16 = jl_Byte_byteCache.data[128];
                var$4 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[146];
                if (var$17 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    $var5 = var$17.$value;
                    var$6 = var$4.$elementData.data;
                    var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == $var5) {
                            var$5 = var$4.$key;
                            if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                var$5 = var$4 === null ? null : var$4.$value0;
                var$4 = var$5.$watchedObject;
                if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
                    var$5.$watchedObject = var$16;
                    var$5.$watched = 1;
                    var$2.$objectChanged = 1;
                }
            }
        }
        $this.$isJumping = 0;
        var$2 = $this.$entityToAttack;
        if (var$2 !== null)
            nms_EntityLiving_faceEntity($this, var$2, 100.0, 100.0);
        if (!$this.$worldObj.$isRemote) {
            v: {
                if (!$this.$isDead) {
                    var$2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[134];
                    if (var$4 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        $var6 = var$4.$value;
                        var$6 = var$2.$elementData.data;
                        var$2 = var$6[$var6 & (var$6.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == $var6) {
                                var$5 = var$2.$key;
                                if (var$4 !== var$5 && !jl_Integer_equals(var$4, var$5) ? 0 : 1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value3 > 0.0) {
                        $var6 = 1;
                        break v;
                    }
                }
                $var6 = 0;
            }
            if ($var6) {
                var$2 = $this.$entityToAttack;
                if (var$2 === null) {
                    var$2 = $this.$dataWatcher;
                    var$16 = jl_Byte_byteCache.data[128];
                    var$4 = var$2.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$17 = jl_Integer_integerCache.data[146];
                    if (var$17 === null) {
                        var$4 = var$4.$elementData.data[0];
                        while (var$4 !== null && var$4.$key !== null) {
                            var$4 = var$4.$next3;
                        }
                    } else {
                        $var5 = var$17.$value;
                        var$6 = var$4.$elementData.data;
                        var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                        while (var$4 !== null) {
                            if (var$4.$origKeyHash == $var5) {
                                var$5 = var$4.$key;
                                if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$4 = var$4.$next3;
                        }
                    }
                    var$5 = var$4 === null ? null : var$4.$value0;
                    var$4 = var$5.$watchedObject;
                    if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
                        var$5.$watchedObject = var$16;
                        var$5.$watched = 1;
                        var$2.$objectChanged = 1;
                    }
                    $this.$teleportDelay = 0;
                } else {
                    if (var$2 instanceof nms_EntityPlayer) {
                        var$2 = var$2;
                        $ptr = 9;
                        continue main;
                    }
                    var$2 = $this.$entityToAttack;
                    var$11 = var$2.$posX - $this.$posX;
                    var$18 = var$2.$posY - $this.$posY;
                    var$19 = var$2.$posZ - $this.$posZ;
                    if (var$11 * var$11 + var$18 * var$18 + var$19 * var$19 > 256.0) {
                        $var4 = $this.$teleportDelay;
                        $this.$teleportDelay = $var4 + 1 | 0;
                        if ($var4 >= 30) {
                            $ptr = 10;
                            continue main;
                        }
                    }
                }
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var7 = 1.0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_ChunkProviderServer_loadChunk(var$2, $var2, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4.$canBlockSeeTheSky($var3 & 15, $var5, $var4 & 15)) {
            var$2 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$10;
            if (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 30.0 < ($var7 - 0.4000000059604645) * 2.0) {
                $this.$entityToAttack = null;
                var$2 = $this.$dataWatcher;
                var$16 = jl_Byte_byteCache.data[128];
                var$4 = var$2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[146];
                if (var$17 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    $var5 = var$17.$value;
                    var$6 = var$4.$elementData.data;
                    var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == $var5) {
                            var$5 = var$4.$key;
                            if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                var$5 = var$4 === null ? null : var$4.$value0;
                var$4 = var$5.$watchedObject;
                if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
                    var$5.$watchedObject = var$16;
                    var$5.$watched = 1;
                    var$2.$objectChanged = 1;
                }
                $this.$isAggressive = 0;
                $ptr = 16;
                continue main;
            }
        }
        $ptr = 3;
        continue main;
    case 7:
        $tmp = nms_Entity_getBrightness($this, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 > 0.5)
            $this.$entityAge = $this.$entityAge + 2 | 0;
        $ptr = 8;
    case 8:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        t: {
            $tmp = nms_EntityEnderman_shouldAttackPlayer($this, var$2);
            if ($rt_suspending()) {
                break main;
            }
            $var6 = $tmp;
            if ($var6) {
                var$2 = $this.$entityToAttack;
                var$11 = var$2.$posX - $this.$posX;
                var$18 = var$2.$posY - $this.$posY;
                var$19 = var$2.$posZ - $this.$posZ;
                if (var$11 * var$11 + var$18 * var$18 + var$19 * var$19 >= 16.0) {
                    $this.$teleportDelay = 0;
                    break t;
                }
                $ptr = 11;
                continue main;
            }
            var$2 = $this.$entityToAttack;
            var$11 = var$2.$posX - $this.$posX;
            var$18 = var$2.$posY - $this.$posY;
            var$19 = var$2.$posZ - $this.$posZ;
            if (var$11 * var$11 + var$18 * var$18 + var$19 * var$19 > 256.0) {
                $var4 = $this.$teleportDelay;
                $this.$teleportDelay = $var4 + 1 | 0;
                if ($var4 >= 30) {
                    $ptr = 10;
                    continue main;
                }
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var7 = 1.0;
        $ptr = 7;
        continue main;
    case 10:
        $tmp = nms_EntityEnderman_teleportToEntity($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6)
            $this.$teleportDelay = 0;
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var7 = 1.0;
        $ptr = 7;
        continue main;
    case 11:
        nms_EntityEnderman_teleportRandomly($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$teleportDelay = 0;
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var7 = 1.0;
        $ptr = 7;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$2, $var6_0, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$2 = $this.$worldObj;
        $var6 = $var2 - 1 | 0;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId(var$2, $var6_0, $var6, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var4 && $var5 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var5].$renderAsNormalBlock()) {
                var$2 = $this.$worldObj;
                var$4 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[144];
                if (var$17 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    $var5 = var$17.$value;
                    var$6 = var$4.$elementData.data;
                    var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == $var5) {
                            var$5 = var$4.$key;
                            if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                $var4 = (var$4 === null ? null : var$4.$value0).$watchedObject.$value1;
                var$4 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$17 = jl_Integer_integerCache.data[145];
                if (var$17 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$21 = var$17.$value;
                    var$6 = var$4.$elementData.data;
                    var$4 = var$6[var$21 & (var$6.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$21) {
                            var$5 = var$4.$key;
                            if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$21 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                $var5 = (var$4 === null ? null : var$4.$value0).$watchedObject.$value1;
                $var6 = 3;
                $ptr = 18;
                continue main;
            }
        }
        $var6 = 0;
        r: while (true) {
            if ($var6 >= 2) {
                var$2 = $this.$worldObj;
                $var6 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
                if ($var6 && !var$2.$isRemote) {
                    $var7 = 1.0;
                    $ptr = 4;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            var$2 = $this.$worldObj;
            var$4 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$4.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var5 = $rt_compare($var4, var$2.$worldAccesses.$size0);
                if ($var5 >= 0)
                    break;
                if ($var4 < 0)
                    break r;
                if ($var5 >= 0)
                    break r;
                $var4 = $var4 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    case 14:
        $tmp = nms_World_getBlockId(var$2, $var6_0, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        nms_EntityEnderman_$callClinit();
        if (nms_EntityEnderman_carriableBlocks.data[$var4]) {
            var$2 = $this.$worldObj;
            $ptr = 15;
            continue main;
        }
        $var6 = 0;
        q: while (true) {
            if ($var6 >= 2) {
                var$2 = $this.$worldObj;
                $var6 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
                if ($var6 && !var$2.$isRemote) {
                    $var7 = 1.0;
                    $ptr = 4;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            var$2 = $this.$worldObj;
            var$4 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$4.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var5 = $rt_compare($var4, var$2.$worldAccesses.$size0);
                if ($var5 >= 0)
                    break;
                if ($var4 < 0)
                    break q;
                if ($var5 >= 0)
                    break q;
                $var4 = $var4 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    case 15:
        $tmp = nms_World_getBlockId(var$2, $var6_0, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$2 = $this.$dataWatcher;
        $var6 = ($var6 & 255) << 24 >> 24;
        var$16 = jl_Byte_byteCache.data[$var6 + 128 | 0];
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[144];
        if (var$17 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            $var5 = var$17.$value;
            var$6 = var$4.$elementData.data;
            var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var5) {
                    var$5 = var$4.$key;
                    if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
            var$5.$watchedObject = var$16;
            var$5.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$2 = $this.$worldObj;
        $ptr = 17;
        continue main;
    case 16:
        nms_EntityEnderman_teleportRandomly($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
        continue main;
    case 17:
        $tmp = nms_World_getBlockMetadata(var$2, $var6_0, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        var$2 = $this.$dataWatcher;
        $var6 = ($var6 & 255) << 24 >> 24;
        var$16 = jl_Byte_byteCache.data[$var6 + 128 | 0];
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[145];
        if (var$17 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            $var5 = var$17.$value;
            var$6 = var$4.$elementData.data;
            var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var5) {
                    var$5 = var$4.$key;
                    if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
            var$5.$watchedObject = var$16;
            var$5.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$2 = $this.$worldObj;
        $var6 = 0;
        $var4 = 0;
        $var5 = 3;
        $ptr = 19;
        continue main;
    case 18:
        nms_World_setBlock(var$2, $var6_0, $var2, $var3, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$dataWatcher;
        var$16 = jl_Byte_byteCache.data[128];
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[144];
        if (var$17 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            $var5 = var$17.$value;
            var$6 = var$4.$elementData.data;
            var$4 = var$6[$var5 & (var$6.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var5) {
                    var$5 = var$4.$key;
                    if (var$17 !== var$5 && !(var$17 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$16.$value1 ? 1 : 0)) {
            var$5.$watchedObject = var$16;
            var$5.$watched = 1;
            var$2.$objectChanged = 1;
        }
        $var6 = 0;
        w: while (true) {
            if ($var6 >= 2) {
                var$2 = $this.$worldObj;
                $var6 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
                if ($var6 && !var$2.$isRemote) {
                    $var7 = 1.0;
                    $ptr = 4;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            var$2 = $this.$worldObj;
            var$4 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$4.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var5 = $rt_compare($var4, var$2.$worldAccesses.$size0);
                if ($var5 >= 0)
                    break;
                if ($var4 < 0)
                    break w;
                if ($var5 >= 0)
                    break w;
                $var4 = $var4 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    case 19:
        nms_World_setBlock(var$2, $var6_0, $var2, $var3, $var6, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        x: while (true) {
            if ($var6 >= 2) {
                var$2 = $this.$worldObj;
                $var6 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
                if ($var6 && !var$2.$isRemote) {
                    $var7 = 1.0;
                    $ptr = 4;
                    continue main;
                }
                $ptr = 3;
                continue main;
            }
            var$2 = $this.$worldObj;
            var$4 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$4.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            while (true) {
                $var5 = $rt_compare($var4, var$2.$worldAccesses.$size0);
                if ($var5 >= 0)
                    break;
                if ($var4 < 0)
                    break x;
                if ($var5 >= 0)
                    break x;
                $var4 = $var4 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var6, var$2, $var7, var$4, var$5, var$6, $var4, $var3, $var5, var$10, var$11, var$12, var$13, $var6_0, $var2, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityEnderman_teleportRandomly = $this => {
    let $var3, var$2, var$3, var$4, $var1, $var5, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var1 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$posX;
        var$2 = $this.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$3, 22))), 27);
        var$3 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        $var1 = $var3 + (Long_toNumber(Long_add(var$4, Long_fromInt(Long_lo(Long_shru(var$3, 21))))) * 1.1102230246251565E-16 - 0.5) * 64.0;
        $var3 = $this.$posY;
        var$3 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        $var3 = $var3 + (Long_lo(Long_shr(Long_mul(Long_fromInt(64), Long_fromInt(Long_lo(Long_shru(var$3, 17)))), 31)) - 32 | 0);
        $var5 = $this.$posZ;
        var$4 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$4;
        var$3 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
        var$7 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$7;
        $var5 = $var5 + (Long_toNumber(Long_add(var$3, Long_fromInt(Long_lo(Long_shru(var$7, 21))))) * 1.1102230246251565E-16 - 0.5) * 64.0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityEnderman_teleportTo($this, $var1, $var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$8;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, var$2, var$3, var$4, $var1, $var5, var$7, var$8, $ptr);
},
nms_EntityEnderman_teleportToEntity = ($this, $par1Entity) => {
    let $var9, $var2, var$4, var$5, $var5, $var7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var9 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1Entity = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX - $par1Entity.$posX, $this.$boundingBox0.$minY0 + $this.$height0 / 2.0 - $par1Entity.$posY + $par1Entity.$getEyeHeight(), $this.$posZ - $par1Entity.$posZ));
        $var9 = $this.$posX;
        $var2 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$4;
        var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
        var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$4;
        $var5 = $var9 + (Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$4, 21))))) * 1.1102230246251565E-16 - 0.5) * 8.0 - $par1Entity.$xCoord * 16.0;
        $var7 = $this.$posY;
        var$5 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$5;
        $var7 = $var7 + (Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$5, 17)))), 31)) - 8 | 0) - $par1Entity.$yCoord * 16.0;
        $var9 = $this.$posZ;
        var$4 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$4;
        var$8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
        var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$4;
        $var9 = $var9 + (Long_toNumber(Long_add(var$8, Long_fromInt(Long_lo(Long_shru(var$4, 21))))) * 1.1102230246251565E-16 - 0.5) * 8.0 - $par1Entity.$zCoord * 16.0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityEnderman_teleportTo($this, $var5, $var7, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        return var$9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var9, $var2, var$4, var$5, $var5, $var7, var$8, var$9, $ptr);
},
nms_EntityEnderman_teleportTo = ($this, $par1, $par3, $par5) => {
    let $var7, $var9, $var11, $var13, $var14, $var15, $var16, var$11, $var30, $var17, var$14, $var18, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var18 = $thread.pop();var$14 = $thread.pop();$var17 = $thread.pop();$var30 = $thread.pop();var$11 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $this.$posX;
        $var9 = $this.$posY;
        $var11 = $this.$posZ;
        $this.$posX = $par1;
        $this.$posY = $par3;
        $this.$posZ = $par5;
        $var13 = 0;
        $var14 = $par1 | 0;
        if ($par1 < $var14)
            $var14 = $var14 - 1 | 0;
        $var15 = $par3 | 0;
        if ($par3 < $var15)
            $var15 = $var15 - 1 | 0;
        $var16 = $par5 | 0;
        if ($par5 < $var16)
            $var16 = $var16 - 1 | 0;
        var$11 = $this.$worldObj;
        if ($var15 >= 0 && $var15 < 256) {
            $var30 = $var14 >> 4;
            $var17 = $var16 >> 4;
            var$11 = var$11.$chunkProvider.$loadedChunkHashMap;
            var$14 = Long_or(Long_and(Long_fromInt($var30), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var17), Long_create(4294967295, 0)), 32));
            $var17 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
            $var17 = $var17 ^ ($var17 >>> 20 | 0) ^ ($var17 >>> 12 | 0);
            $var18 = $var17 ^ ($var17 >>> 7 | 0) ^ ($var17 >>> 4 | 0);
            var$16 = var$11.$hashArray.data;
            var$11 = var$16[$var18 & (var$16.length - 1 | 0)];
            a: {
                while (true) {
                    if (var$11 === null) {
                        var$11 = null;
                        break a;
                    }
                    if (Long_eq(var$11.$key1, var$14))
                        break;
                    var$11 = var$11.$nextEntry;
                }
            }
            $var17 = var$11 === null ? 0 : 1;
        } else
            $var17 = 0;
        if ($var17) {
            $var17 = 0;
            if (!$var17 && $var15 > 0) {
                var$11 = $this.$worldObj;
                $var30 = $var15 - 1 | 0;
                $ptr = 2;
                continue main;
            }
            if ($var17) {
                nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                var$11 = $this.$worldObj;
                var$17 = $this.$boundingBox0;
                $ptr = 1;
                continue main;
            }
        }
        if (!$var13) {
            nms_Entity_setPosition($this, $var7, $var9, $var11);
            return 0;
        }
        $var18 = 0;
        b: while (true) {
            if ($var18 >= 128) {
                var$18 = $this.$worldObj;
                var$11 = $rt_s(2327);
                var$19 = 1.0;
                var$20 = 1.0;
                $var30 = 0;
                var$21 = null;
                $par1 = 16.0;
                var$17 = var$18.$worldAccesses;
                $var17 = $rt_compare($var30, var$17.$size0);
                if ($var17 >= 0) {
                    var$11 = $rt_s(2327);
                    var$19 = 1.0;
                    var$20 = 1.0;
                    var$17 = $this.$worldObj;
                    $ptr = 3;
                    continue main;
                }
                if ($var30 >= 0 && $var17 < 0) {
                    var$22 = var$17.$array.data[$var30];
                    var$17 = var$22.$mcServer.$serverConfigManager;
                    $var17 = var$22.$theWorldServer.$provider.$dimensionId;
                    var$22 = nms_Packet62LevelSound__init_(var$11, $var7, $var9, $var11, var$19, var$20);
                    $ptr = 5;
                    continue main;
                }
                var$11 = new jl_IndexOutOfBoundsException;
                var$11.$suppressionEnabled = 1;
                var$11.$writableStackTrace = 1;
                $rt_throw(var$11);
            }
            var$11 = $this.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$11.$seed = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11 = $this.$worldObj;
            $var17 = 0;
            while (true) {
                $var15 = $rt_compare($var17, var$11.$worldAccesses.$size0);
                if ($var15 >= 0)
                    break;
                if ($var17 < 0)
                    break b;
                if ($var15 >= 0)
                    break b;
                $var17 = $var17 + 1 | 0;
            }
            $var18 = $var18 + 1 | 0;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    case 1:
        $tmp = nms_World_getCollidingBoundingBoxes(var$11, $this, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11.$size0 ? 0 : 1) {
            var$11 = $this.$worldObj;
            var$17 = $this.$boundingBox0;
            $ptr = 4;
            continue main;
        }
        if (!$var13) {
            nms_Entity_setPosition($this, $var7, $var9, $var11);
            return 0;
        }
        $var18 = 0;
        c: while (true) {
            if ($var18 >= 128) {
                var$18 = $this.$worldObj;
                var$11 = $rt_s(2327);
                var$19 = 1.0;
                var$20 = 1.0;
                $var30 = 0;
                var$21 = null;
                $par1 = 16.0;
                var$17 = var$18.$worldAccesses;
                $var17 = $rt_compare($var30, var$17.$size0);
                if ($var17 >= 0) {
                    var$11 = $rt_s(2327);
                    var$19 = 1.0;
                    var$20 = 1.0;
                    var$17 = $this.$worldObj;
                    $ptr = 3;
                    continue main;
                }
                if ($var30 >= 0 && $var17 < 0) {
                    var$22 = var$17.$array.data[$var30];
                    var$17 = var$22.$mcServer.$serverConfigManager;
                    $var17 = var$22.$theWorldServer.$provider.$dimensionId;
                    var$22 = nms_Packet62LevelSound__init_(var$11, $var7, $var9, $var11, var$19, var$20);
                    $ptr = 5;
                    continue main;
                }
                var$11 = new jl_IndexOutOfBoundsException;
                var$11.$suppressionEnabled = 1;
                var$11.$writableStackTrace = 1;
                $rt_throw(var$11);
            }
            var$11 = $this.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$11.$seed = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11 = $this.$worldObj;
            $var17 = 0;
            while (true) {
                $var15 = $rt_compare($var17, var$11.$worldAccesses.$size0);
                if ($var15 >= 0)
                    break;
                if ($var17 < 0)
                    break c;
                if ($var15 >= 0)
                    break c;
                $var17 = $var17 + 1 | 0;
            }
            $var18 = $var18 + 1 | 0;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    case 2:
        d: {
            $tmp = nms_World_getBlockId(var$11, $var14, $var30, $var16);
            if ($rt_suspending()) {
                break main;
            }
            $var18 = $tmp;
            if ($var18) {
                nms_Block_$callClinit();
                if (nms_Block_blocksList.data[$var18].$blockMaterial.$blocksMovement()) {
                    $var17 = 1;
                    break d;
                }
            }
            $this.$posY = $this.$posY - 1.0;
            $var15 = $var15 + (-1) | 0;
        }
        if (!$var17 && $var15 > 0) {
            var$11 = $this.$worldObj;
            $var30 = $var15 - 1 | 0;
            continue main;
        }
        if ($var17) {
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            var$11 = $this.$worldObj;
            var$17 = $this.$boundingBox0;
            $ptr = 1;
            continue main;
        }
        if (!$var13) {
            nms_Entity_setPosition($this, $var7, $var9, $var11);
            return 0;
        }
        $var18 = 0;
        e: while (true) {
            if ($var18 >= 128) {
                var$18 = $this.$worldObj;
                var$11 = $rt_s(2327);
                var$19 = 1.0;
                var$20 = 1.0;
                $var30 = 0;
                var$21 = null;
                $par1 = 16.0;
                var$17 = var$18.$worldAccesses;
                $var17 = $rt_compare($var30, var$17.$size0);
                if ($var17 >= 0) {
                    var$11 = $rt_s(2327);
                    var$19 = 1.0;
                    var$20 = 1.0;
                    var$17 = $this.$worldObj;
                    $ptr = 3;
                    continue main;
                }
                if ($var30 >= 0 && $var17 < 0) {
                    var$22 = var$17.$array.data[$var30];
                    var$17 = var$22.$mcServer.$serverConfigManager;
                    $var17 = var$22.$theWorldServer.$provider.$dimensionId;
                    var$22 = nms_Packet62LevelSound__init_(var$11, $var7, $var9, $var11, var$19, var$20);
                    $ptr = 5;
                    continue main;
                }
                var$11 = new jl_IndexOutOfBoundsException;
                var$11.$suppressionEnabled = 1;
                var$11.$writableStackTrace = 1;
                $rt_throw(var$11);
            }
            var$11 = $this.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$11.$seed = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11 = $this.$worldObj;
            $var17 = 0;
            while (true) {
                $var15 = $rt_compare($var17, var$11.$worldAccesses.$size0);
                if ($var15 >= 0)
                    break;
                if ($var17 < 0)
                    break e;
                if ($var15 >= 0)
                    break e;
                $var17 = $var17 + 1 | 0;
            }
            $var18 = $var18 + 1 | 0;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    case 3:
        nms_World_playSoundAtEntity(var$17, $this, var$11, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 4:
        $tmp = nms_World_isAnyLiquid(var$11, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        if (!$var17)
            $var13 = 1;
        if (!$var13) {
            nms_Entity_setPosition($this, $var7, $var9, $var11);
            return 0;
        }
        $var18 = 0;
        f: while (true) {
            if ($var18 >= 128) {
                var$18 = $this.$worldObj;
                var$11 = $rt_s(2327);
                var$19 = 1.0;
                var$20 = 1.0;
                $var30 = 0;
                var$21 = null;
                $par1 = 16.0;
                var$17 = var$18.$worldAccesses;
                $var17 = $rt_compare($var30, var$17.$size0);
                if ($var17 >= 0) {
                    var$11 = $rt_s(2327);
                    var$19 = 1.0;
                    var$20 = 1.0;
                    var$17 = $this.$worldObj;
                    $ptr = 3;
                    continue main;
                }
                if ($var30 >= 0 && $var17 < 0) {
                    var$22 = var$17.$array.data[$var30];
                    var$17 = var$22.$mcServer.$serverConfigManager;
                    $var17 = var$22.$theWorldServer.$provider.$dimensionId;
                    var$22 = nms_Packet62LevelSound__init_(var$11, $var7, $var9, $var11, var$19, var$20);
                    $ptr = 5;
                    continue main;
                }
                var$11 = new jl_IndexOutOfBoundsException;
                var$11.$suppressionEnabled = 1;
                var$11.$writableStackTrace = 1;
                $rt_throw(var$11);
            }
            var$11 = $this.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$14;
            var$11.$seed = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11 = $this.$worldObj;
            $var17 = 0;
            while (true) {
                $var15 = $rt_compare($var17, var$11.$worldAccesses.$size0);
                if ($var15 >= 0)
                    break;
                if ($var17 < 0)
                    break f;
                if ($var15 >= 0)
                    break f;
                $var17 = $var17 + 1 | 0;
            }
            $var18 = $var18 + 1 | 0;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    case 5:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$17, var$21, $var7, $var9, $var11, $par1, $var17, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $var30 = $var30 + 1 | 0;
        var$17 = var$18.$worldAccesses;
        $var17 = $rt_compare($var30, var$17.$size0);
        if ($var17 >= 0) {
            var$11 = $rt_s(2327);
            var$19 = 1.0;
            var$20 = 1.0;
            var$17 = $this.$worldObj;
            $ptr = 3;
            continue main;
        }
        if ($var30 >= 0 && $var17 < 0) {
            var$22 = var$17.$array.data[$var30];
            var$17 = var$22.$mcServer.$serverConfigManager;
            $var17 = var$22.$theWorldServer.$provider.$dimensionId;
            var$22 = nms_Packet62LevelSound__init_(var$11, $var7, $var9, $var11, var$19, var$20);
            continue main;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        $rt_throw(var$11);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, $var7, $var9, $var11, $var13, $var14, $var15, $var16, var$11, $var30, $var17, var$14, $var18, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_EntityEnderman_getLivingSound = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[146];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value1 <= 0 ? 0 : 1) ? $rt_s(2328) : $rt_s(2329);
},
nms_EntityEnderman_getHurtSound = $this => {
    return $rt_s(2330);
},
nms_EntityEnderman_getDeathSound = $this => {
    return $rt_s(2331);
},
nms_EntityEnderman_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_enderPearl.$itemID0;
},
nms_EntityEnderman_dropFewItems = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        $var3 = nms_Item_enderPearl.$itemID0;
        if ($var3 > 0) {
            var$4 = $this.$rand;
            $par1 = 2 + $par2 | 0;
            var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 17));
            $par2 = $par1 - 1 | 0;
            if (!($par1 & $par2))
                $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$6)), 31));
            else
                while (true) {
                    $var4 = var$6 % $par1 | 0;
                    if (((var$6 - $var4 | 0) + $par2 | 0) >= 0)
                        break;
                    var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$5;
                    var$6 = Long_lo(Long_shru(var$5, 17));
                }
            $var5 = 0;
            var$9 = 0.0;
            $par2 = 138;
            if ($var5 < $var4) {
                var$10 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$10.$itemID = $var3;
                var$10.$stackSize = 1;
                var$10.$itemDamage = 0;
                var$11 = new nms_EntityItem;
                var$4 = $this.$worldObj;
                var$12 = $this.$posX;
                var$13 = $this.$posY + var$9;
                var$14 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityItem__init_(var$11, var$4, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = var$11.$dataWatcher;
        var$4 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = ju_HashMap_entryByKey(var$4, jl_Integer_integerCache.data[$par2]);
        var$16 = var$4 === null ? null : var$4.$value0;
        if (!(var$10 !== var$16.$watchedObject ? 0 : 1)) {
            var$16.$watchedObject = var$10;
            var$16.$watched = 1;
            var$15.$objectChanged = 1;
        }
        var$15 = var$11.$dataWatcher;
        var$4 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = ju_HashMap_entryByKey(var$4, jl_Integer_integerCache.data[$par2]);
        (var$4 === null ? null : var$4.$value0).$watched = 1;
        var$15.$objectChanged = 1;
        var$11.$delayBeforeCanPickup = 10;
        var$4 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= $var4)
            return;
        var$10 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$10.$itemID = $var3;
        var$10.$stackSize = 1;
        var$10.$itemDamage = 0;
        var$11 = new nms_EntityItem;
        var$4 = $this.$worldObj;
        var$12 = $this.$posX;
        var$13 = $this.$posY + var$9;
        var$14 = $this.$posZ;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, var$5, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityEnderman_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        var$3 = $this.$dataWatcher;
        var$4 = jl_Byte_byteCache.data[129];
        var$5 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[146];
        if (var$6 === null) {
            var$7 = var$5.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$8 = var$6.$value;
            var$9 = var$5.$elementData.data;
            var$7 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$8) {
                    var$5 = var$7.$key;
                    if (var$6 !== var$5 && !(var$6 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$6 = var$7 === null ? null : var$7.$value0;
        var$5 = var$6.$watchedObject;
        if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$4.$value1 ? 1 : 0)) {
            var$6.$watchedObject = var$4;
            var$6.$watched = 1;
            var$3.$objectChanged = 1;
        }
        if ($par1DamageSource instanceof nms_EntityDamageSource && $par1DamageSource.$getEntity() instanceof nms_EntityPlayer)
            $this.$isAggressive = 1;
        if (!($par1DamageSource instanceof nms_EntityDamageSourceIndirect)) {
            if ($this.$invulnerable)
                return 0;
            $ptr = 1;
            continue main;
        }
        $this.$isAggressive = 0;
        $var3 = 0;
        if ($var3 >= 64)
            return 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if (!$var3)
            $var3 = 0;
        else {
            $par1DamageSource = $par1DamageSource.$getEntity();
            if ($this.$riddenByEntity !== $par1DamageSource && $this.$ridingEntity !== $par1DamageSource) {
                if ($par1DamageSource !== $this)
                    $this.$entityToAttack = $par1DamageSource;
                $var3 = 1;
            } else
                $var3 = 1;
        }
        return $var3;
    case 2:
        $tmp = nms_EntityEnderman_teleportRandomly($this);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8)
            return 1;
        $var3 = $var3 + 1 | 0;
        if ($var3 >= 64)
            return 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, $ptr);
},
nms_EntityEnderman__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = nle_ProfileUUID_fromString($rt_s(2332));
    nms_EntityEnderman_attackingSpeedBoostModifierUUID = var$1;
    var$2 = new nms_AttributeModifier;
    var$2.$isSaved = 1;
    var$2.$id1 = var$1;
    var$2.$name3 = $rt_s(2320);
    var$2.$amount0 = 6.199999809265137;
    var$2.$operation = 0;
    if ($rt_s(2320) === $rt_s(3))
        var$3 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(3);
        var$3 = $rt_s(2320).$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (var$3) {
        var$1 = new jl_IllegalArgumentException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(1279);
        $rt_throw(var$1);
    }
    var$2.$isSaved = 0;
    nms_EntityEnderman_attackingSpeedBoostModifier = var$2;
    var$4 = $rt_createBooleanArray(256);
    var$5 = var$4.data;
    nms_EntityEnderman_carriableBlocks = var$4;
    nms_Block_$callClinit();
    var$5[nms_Block_grass.$blockID] = 1;
    var$5[nms_Block_dirt.$blockID] = 1;
    var$5[nms_Block_sand.$blockID] = 1;
    var$5[nms_Block_gravel.$blockID] = 1;
    var$5[nms_Block_plantYellow.$blockID] = 1;
    var$5[nms_Block_plantRed.$blockID] = 1;
    var$5[nms_Block_mushroomBrown.$blockID] = 1;
    var$5[nms_Block_mushroomRed.$blockID] = 1;
    var$5[nms_Block_tnt.$blockID] = 1;
    var$5[nms_Block_cactus.$blockID] = 1;
    var$5[nms_Block_blockClay.$blockID] = 1;
    var$5[nms_Block_pumpkin.$blockID] = 1;
    var$5[nms_Block_melon.$blockID] = 1;
    var$5[nms_Block_mycelium.$blockID] = 1;
};
function nms_BiomeEndDecorator() {
    nms_BiomeDecorator.call(this);
    this.$spikeGen = null;
}
let nms_BiomeEndDecorator_decorate = $this => {
    let $var4, var$2, var$3, var$4, var$5, $var1, var$7, $var3, $var2, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var4 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_BiomeDecorator_generateOres($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$randomGenerator;
        var$2 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            var$4 = var$3 % 5 | 0;
            if (((var$3 - var$4 | 0) + 4 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        if (var$4) {
            if (!$this.$chunk_X && !$this.$chunk_Z) {
                $var4 = new nms_EntityDragon;
                var$5 = $this.$currentWorld;
                $ptr = 4;
                continue main;
            }
            return;
        }
        $var1 = $this.$chunk_X;
        var$7 = Long_and(Long_add(Long_mul($var4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$7;
        $var1 = ($var1 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$7, 17)))), 31)) | 0) + 8 | 0;
        $var3 = $this.$chunk_Z;
        var$2 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var4.$seed = var$2;
        $var2 = ($var3 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31)) | 0) + 8 | 0;
        $var4 = $this.$currentWorld;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getTopSolidOrLiquidBlock($var4, $var1, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var4 = $this.$spikeGen;
        var$5 = $this.$currentWorld;
        var$10 = $this.$randomGenerator;
        $ptr = 3;
    case 3:
        nms_WorldGenSpikes_generate($var4, var$5, var$10, $var1, $var3, $var2);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$chunk_X && !$this.$chunk_Z) {
            $var4 = new nms_EntityDragon;
            var$5 = $this.$currentWorld;
            $ptr = 4;
            continue main;
        }
        return;
    case 4:
        nms_EntityDragon__init_($var4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$randomGenerator;
        var$2 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$2;
        var$11 = Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 360.0;
        $var4.$posX = 0.0;
        $var4.$prevPosX = 0.0;
        $var4.$lastTickPosX = 0.0;
        var$12 = 128.0 + $var4.$yOffset;
        $var4.$posY = var$12;
        $var4.$prevPosY = var$12;
        $var4.$lastTickPosY = var$12;
        $var4.$posZ = 0.0;
        $var4.$prevPosZ = 0.0;
        $var4.$lastTickPosZ = 0.0;
        $var4.$rotationYaw = var$11;
        $var4.$rotationPitch = 0.0;
        nms_Entity_setPosition($var4, 0.0, var$12, 0.0);
        var$5 = $this.$currentWorld;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$5, $var4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, var$2, var$3, var$4, var$5, $var1, var$7, $var3, $var2, var$10, var$11, var$12, $ptr);
},
nms_EntityCow = $rt_classWithoutFields(nms_EntityAnimal),
nms_EntityCow__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $this.$field_98056_d = 0.8999999761581421;
        $this.$field_98057_e = 1.2999999523162842;
        var$2 = 0.8999999761581421;
        var$3 = 1.2999999523162842;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$navigator;
        var$4.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAISwimming;
        var$5.$theEntity3 = $this;
        var$5.$mutexBits = 4;
        var$4.$canSwim = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 0;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIPanic;
        var$5.$theEntityCreature = $this;
        var$5.$speed1 = 2.0;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$9 = var$6.$size0;
        var$6.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIMate;
        var$5.$theAnimal = $this;
        var$5.$theWorld2 = $this.$worldObj;
        var$5.$moveSpeed = 1.0;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 2;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        var$5 = $this.$tasks0;
        var$4 = new nms_EntityAITempt;
        nms_Item_$callClinit();
        var$10 = nms_Item_wheat.$itemID0;
        var$4.$temptedEntity = $this;
        var$4.$field_75282_b = 1.25;
        var$4.$breedingFood = var$10;
        var$4.$scaredByPlayerMovement = 0;
        var$4.$mutexBits = 3;
        var$6 = var$5.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$5;
        $par1World.$priority = 3;
        $par1World.$action = var$4;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = $par1World;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIFollowParent;
        var$5.$childAnimal = $this;
        var$5.$field_75347_c = 1.25;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 4;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWander;
        var$5.$entity = $this;
        var$5.$speed = 1.0;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 5;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWatchClosest;
        var$5.$theWatcher = $this;
        var$5.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$5.$maxDistanceForPlayer = 6.0;
        var$5.$field_75331_e = 0.019999999552965164;
        var$5.$mutexBits = 2;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 6;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAILookIdle;
        var$5.$idleEntity = $this;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 7;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityCow__init_0 = var_0 => {
    let var_1 = new nms_EntityCow();
    nms_EntityCow__init_(var_1, var_0);
    return var_1;
},
nms_EntityCow_isAIEnabled = $this => {
    return 1;
},
nms_EntityCow_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (10.0 !== var$3.$baseValue) {
        var$3.$baseValue = 10.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.20000000298023224 !== var$1.$baseValue) {
        var$1.$baseValue = 0.20000000298023224;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityCow_getLivingSound = $this => {
    return $rt_s(2333);
},
nms_EntityCow_getHurtSound = $this => {
    return $rt_s(2334);
},
nms_EntityCow_getDeathSound = $this => {
    return $rt_s(2334);
},
nms_EntityCow_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2335);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityCow_getSoundVolume = $this => {
    return 0.4000000059604645;
},
nms_EntityCow_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_leather.$itemID0;
},
nms_EntityCow_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $var3, var$7, $var4, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = 17;
        $var3 = Long_lo(Long_shru(var$4, var$5));
        var$7 = 2;
        while (true) {
            $var4 = $var3 % 3 | 0;
            if ((($var3 - $var4 | 0) + var$7 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var3 = Long_lo(Long_shru(var$4, var$5));
        }
        $par1 = 1 + $par2 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        var$9 = $par1 - 1 | 0;
        var$10 = $par1 & var$9;
        if (!var$10)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$9 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $par2 = Long_lo(Long_shru(var$4, var$5));
            }
        $var3 = $var4 + $var3 | 0;
        $var4 = 0;
        var$11 = 0.0;
        var$12 = 138;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            var$13 = nms_Item_leather.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$13;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$14 = new nms_EntityItem;
            var$15 = $this.$worldObj;
            var$16 = $this.$posX;
            var$17 = $this.$posY + var$11;
            var$18 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        while (true) {
            $var3 = $par2 % 3 | 0;
            if ((($par2 - $var3 | 0) + var$7 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $par2 = Long_lo(Long_shru(var$4, var$5));
        }
        $var4 = $var3 + 1 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        if (!var$10)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$9 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $par2 = Long_lo(Long_shru(var$4, var$5));
            }
        var$9 = $var4 + $var3 | 0;
        var$10 = 0;
        $var4 = 128;
        $par2 = 1;
        if (var$10 >= var$9)
            return;
        a: {
            b: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break b;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$15 = jl_Integer_integerCache.data[$var4];
                    if (var$15 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$7 = var$15.$value;
                        var$19 = var$3.$elementData.data;
                        var$3 = var$19[var$7 & (var$19.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$7) {
                                var$14 = var$3.$key;
                                if (var$15 !== var$14 && !jl_Integer_equals(var$15, var$14) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & $par2) ? 0 : 1)
                        break b;
                }
                $par1 = 0;
                break a;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            $par1 = nms_Item_beefRaw.$itemID0;
            var$15 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$15.$itemID = $par1;
            var$15.$stackSize = 1;
            var$15.$itemDamage = 0;
            var$20 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$16 = $this.$posX;
            var$17 = $this.$posY + var$11;
            var$18 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_beefCooked.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$15 = $this.$worldObj;
        var$16 = $this.$posX;
        var$17 = $this.$posY + var$11;
        var$18 = $this.$posZ;
        $ptr = 4;
        continue main;
    case 1:
        nms_EntityItem__init_(var$14, var$15, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = var$14.$dataWatcher;
        var$15 = var$21.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$15 = ju_HashMap_entryByKey(var$15, jl_Integer_integerCache.data[var$12]);
        var$20 = var$15 === null ? null : var$15.$value0;
        if (!(var$3 !== var$20.$watchedObject ? 0 : 1)) {
            var$20.$watchedObject = var$3;
            var$20.$watched = 1;
            var$21.$objectChanged = 1;
        }
        var$20 = var$14.$dataWatcher;
        var$3 = var$20.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$12]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$20.$objectChanged = 1;
        var$14.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            var$13 = nms_Item_leather.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$13;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$14 = new nms_EntityItem;
            var$15 = $this.$worldObj;
            var$16 = $this.$posX;
            var$17 = $this.$posY + var$11;
            var$18 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        while (true) {
            $var3 = $par2 % 3 | 0;
            if ((($par2 - $var3 | 0) + var$7 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $par2 = Long_lo(Long_shru(var$4, var$5));
        }
        $var4 = $var3 + 1 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        if (!var$10)
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($par2)), 31));
        else
            while (true) {
                $var3 = $par2 % $par1 | 0;
                if ((($par2 - $var3 | 0) + var$9 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $par2 = Long_lo(Long_shru(var$4, var$5));
            }
        var$9 = $var4 + $var3 | 0;
        var$10 = 0;
        $var4 = 128;
        $par2 = 1;
        if (var$10 >= var$9)
            return;
        c: {
            d: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break d;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$15 = jl_Integer_integerCache.data[$var4];
                    if (var$15 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$7 = var$15.$value;
                        var$19 = var$3.$elementData.data;
                        var$3 = var$19[var$7 & (var$19.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$7) {
                                var$14 = var$3.$key;
                                if (var$15 !== var$14 && !jl_Integer_equals(var$15, var$14) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & $par2) ? 0 : 1)
                        break d;
                }
                $par1 = 0;
                break c;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            $par1 = nms_Item_beefRaw.$itemID0;
            var$15 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$15.$itemID = $par1;
            var$15.$stackSize = 1;
            var$15.$itemDamage = 0;
            var$20 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$16 = $this.$posX;
            var$17 = $this.$posY + var$11;
            var$18 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_beefCooked.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$15 = $this.$worldObj;
        var$16 = $this.$posX;
        var$17 = $this.$posY + var$11;
        var$18 = $this.$posZ;
        $ptr = 4;
        continue main;
    case 3:
        nms_EntityItem__init_(var$20, var$3, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = var$20.$dataWatcher;
        var$21 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$21, jl_Integer_integerCache.data[var$12]);
        var$21 = var$3 === null ? null : var$3.$value0;
        if (!(var$15 !== var$21.$watchedObject ? 0 : 1)) {
            var$21.$watchedObject = var$15;
            var$21.$watched = 1;
            var$14.$objectChanged = 1;
        }
        var$15 = var$20.$dataWatcher;
        var$3 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$12]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$15.$objectChanged = 1;
        var$20.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 4:
        nms_EntityItem__init_(var$14, var$15, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = var$14.$dataWatcher;
        var$15 = var$21.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$15 = ju_HashMap_entryByKey(var$15, jl_Integer_integerCache.data[var$12]);
        var$20 = var$15 === null ? null : var$15.$value0;
        if (!(var$3 !== var$20.$watchedObject ? 0 : 1)) {
            var$20.$watchedObject = var$3;
            var$20.$watched = 1;
            var$21.$objectChanged = 1;
        }
        var$20 = var$14.$dataWatcher;
        var$3 = var$20.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$12]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$20.$objectChanged = 1;
        var$14.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 5:
        nms_World_spawnEntityInWorld(var$3, var$20);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 >= var$9)
            return;
        e: {
            f: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break f;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$15 = jl_Integer_integerCache.data[$var4];
                    if (var$15 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$7 = var$15.$value;
                        var$19 = var$3.$elementData.data;
                        var$3 = var$19[var$7 & (var$19.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$7) {
                                var$14 = var$3.$key;
                                if (var$15 !== var$14 && !jl_Integer_equals(var$15, var$14) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & $par2) ? 0 : 1)
                        break f;
                }
                $par1 = 0;
                break e;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            $par1 = nms_Item_beefRaw.$itemID0;
            var$15 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$15.$itemID = $par1;
            var$15.$stackSize = 1;
            var$15.$itemDamage = 0;
            var$20 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$16 = $this.$posX;
            var$17 = $this.$posY + var$11;
            var$18 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_beefCooked.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$15 = $this.$worldObj;
        var$16 = $this.$posX;
        var$17 = $this.$posY + var$11;
        var$18 = $this.$posZ;
        $ptr = 4;
        continue main;
    case 6:
        nms_World_spawnEntityInWorld(var$3, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = var$10 + 1 | 0;
        if (var$10 >= var$9)
            return;
        e: {
            f: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break f;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$15 = jl_Integer_integerCache.data[$var4];
                    if (var$15 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$7 = var$15.$value;
                        var$19 = var$3.$elementData.data;
                        var$3 = var$19[var$7 & (var$19.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$7) {
                                var$14 = var$3.$key;
                                if (var$15 !== var$14 && !jl_Integer_equals(var$15, var$14) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & $par2) ? 0 : 1)
                        break f;
                }
                $par1 = 0;
                break e;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            $par1 = nms_Item_beefRaw.$itemID0;
            var$15 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$15.$itemID = $par1;
            var$15.$stackSize = 1;
            var$15.$itemDamage = 0;
            var$20 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$16 = $this.$posX;
            var$17 = $this.$posY + var$11;
            var$18 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_beefCooked.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$14 = new nms_EntityItem;
        var$15 = $this.$worldObj;
        var$16 = $this.$posX;
        var$17 = $this.$posY + var$11;
        var$18 = $this.$posZ;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $var3, var$7, $var4, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityCow_interact = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $var2, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayer.$inventory0;
        var$3 = var$2.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
        if ($var2 !== null) {
            var$5 = $var2.$itemID;
            nms_Item_$callClinit();
            if (var$5 == nms_Item_bucketEmpty.$itemID0 && !$par1EntityPlayer.$capabilities.$isCreativeMode) {
                var$6 = $var2.$stackSize;
                $var2.$stackSize = var$6 - 1 | 0;
                if (var$6 == 1) {
                    $par1EntityPlayer = new nms_ItemStack;
                    var$7 = nms_Item_bucketMilk;
                    nms_ItemStack_$callClinit();
                    $par1EntityPlayer.$itemID = var$7.$itemID0;
                    $par1EntityPlayer.$stackSize = 1;
                    $par1EntityPlayer.$itemDamage = 0;
                    var$8 = var$2.$mainInventory;
                    var$5 = var$8.data.length;
                    if (var$3 >= var$5) {
                        var$3 = var$3 - var$5 | 0;
                        var$8 = var$2.$armorInventory;
                    }
                    var$8.data[var$3] = $par1EntityPlayer;
                } else {
                    var$7 = new nms_ItemStack;
                    $var2 = nms_Item_bucketMilk;
                    nms_ItemStack_$callClinit();
                    var$7.$itemID = $var2.$itemID0;
                    var$7.$stackSize = 1;
                    var$7.$itemDamage = 0;
                    if (!nms_InventoryPlayer_addItemStackToInventory(var$2, var$7)) {
                        var$2 = new nms_ItemStack;
                        var$2.$itemID = nms_Item_bucketMilk.$itemID0;
                        var$2.$stackSize = 1;
                        var$2.$itemDamage = 0;
                        var$5 = 0;
                        $ptr = 2;
                        continue main;
                    }
                }
                return 1;
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $var2, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityCow_spawnBabyAnimal = ($this, $par1EntityAgeable) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityCow;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityCow__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, $ptr);
},
nms_EntityCow_createChild = ($this, $par1EntityAgeable) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$spawnBabyAnimal($par1EntityAgeable);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityAgeable = $tmp;
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, $ptr);
},
nms_EntityMooshroom = $rt_classWithoutFields(nms_EntityCow),
nms_EntityMooshroom_interact = ($this, $par1EntityPlayer) => {
    let $var3, var$3, $var2, $var4, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1EntityPlayer.$inventory0;
        var$3 = $var3.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? $var3.$mainInventory.data[var$3] : null;
        if ($var2 !== null) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_bowlEmpty.$itemID0) {
                $var3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[140];
                if (var$6 === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    var$7 = var$6.$value;
                    var$8 = $var3.$elementData.data;
                    $var3 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == var$7) {
                            var$9 = $var3.$key;
                            if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                if (($var3 === null ? null : $var3.$value0).$watchedObject.$value >= 0) {
                    if ($var2.$stackSize == 1) {
                        $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                        $var4 = $par1EntityPlayer.$currentItem;
                        $var3 = new nms_ItemStack;
                        $var2 = nms_Item_bowlSoup;
                        nms_ItemStack_$callClinit();
                        $var3.$itemID = $var2.$itemID0;
                        $var3.$stackSize = 1;
                        $var3.$itemDamage = 0;
                        var$8 = $par1EntityPlayer.$mainInventory;
                        var$3 = var$8.data.length;
                        if ($var4 >= var$3) {
                            $var4 = $var4 - var$3 | 0;
                            var$8 = $par1EntityPlayer.$armorInventory;
                        }
                        var$8.data[$var4] = $var3;
                        return 1;
                    }
                    $var3 = $par1EntityPlayer.$inventory0;
                    var$9 = new nms_ItemStack;
                    var$6 = nms_Item_bowlSoup;
                    nms_ItemStack_$callClinit();
                    var$9.$itemID = var$6.$itemID0;
                    var$9.$stackSize = 1;
                    var$9.$itemDamage = 0;
                    if (nms_InventoryPlayer_addItemStackToInventory($var3, var$9) && !$par1EntityPlayer.$capabilities.$isCreativeMode) {
                        $par1EntityPlayer = $par1EntityPlayer.$inventory0;
                        $var4 = $par1EntityPlayer.$currentItem;
                        var$3 = 1;
                        $ptr = 2;
                        continue main;
                    }
                }
            }
        }
        if ($var2 !== null) {
            $var4 = $var2.$itemID;
            nms_Item_$callClinit();
            if ($var4 == nms_Item_shears.$itemID0) {
                $var3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var2 = jl_Integer_integerCache.data[140];
                if ($var2 === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    $var4 = $var2.$value;
                    var$8 = $var3.$elementData.data;
                    $var3 = var$8[$var4 & (var$8.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == $var4) {
                            var$9 = $var3.$key;
                            if ($var2 !== var$9 && !($var2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var4 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                if (($var3 === null ? null : $var3.$value0).$watchedObject.$value >= 0) {
                    $this.$isDead = 1;
                    $par1EntityPlayer = $this.$worldObj;
                    $var4 = 0;
                    while (true) {
                        var$3 = $rt_compare($var4, $par1EntityPlayer.$worldAccesses.$size0);
                        if (var$3 >= 0) {
                            if ($par1EntityPlayer.$isRemote)
                                return 1;
                            $var3 = new nms_EntityCow;
                            $ptr = 3;
                            continue main;
                        }
                        if ($var4 < 0)
                            break;
                        if (var$3 >= 0)
                            break;
                        $var4 = $var4 + 1 | 0;
                    }
                    $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                    $par1EntityPlayer.$suppressionEnabled = 1;
                    $par1EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayer);
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityCow_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        return $var4;
    case 2:
        nms_InventoryPlayer_decrStackSize($par1EntityPlayer, $var4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 3:
        nms_EntityCow__init_($var3, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $this.$posX;
        var$11 = $this.$posY;
        var$12 = $this.$posZ;
        var$13 = $this.$rotationYaw;
        var$14 = $this.$rotationPitch;
        $var3.$posX = var$10;
        $var3.$prevPosX = var$10;
        $var3.$lastTickPosX = var$10;
        var$11 = var$11 + $var3.$yOffset;
        $var3.$posY = var$11;
        $var3.$prevPosY = var$11;
        $var3.$lastTickPosY = var$11;
        $var3.$posZ = var$12;
        $var3.$prevPosZ = var$12;
        $var3.$lastTickPosZ = var$12;
        $var3.$rotationYaw = var$13;
        $var3.$rotationPitch = var$14;
        nms_Entity_setPosition($var3, var$10, var$11, var$12);
        $par1EntityPlayer = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[134];
        if ($var2 === null) {
            $par1EntityPlayer = $par1EntityPlayer.$elementData.data[0];
            while ($par1EntityPlayer !== null && $par1EntityPlayer.$key !== null) {
                $par1EntityPlayer = $par1EntityPlayer.$next3;
            }
        } else {
            $var4 = $var2.$value;
            var$8 = $par1EntityPlayer.$elementData.data;
            $par1EntityPlayer = var$8[$var4 & (var$8.length - 1 | 0)];
            while ($par1EntityPlayer !== null) {
                if ($par1EntityPlayer.$origKeyHash == $var4) {
                    var$9 = $par1EntityPlayer.$key;
                    if ($var2 !== var$9 && !($var2 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityPlayer = $par1EntityPlayer.$next3;
            }
        }
        var$15 = ($par1EntityPlayer === null ? null : $par1EntityPlayer.$value0).$watchedObject.$value3;
        $par1EntityPlayer = $var3.$dataWatcher;
        var$13 = 0.0;
        $var2 = nms_SharedMonsterAttributes_maxHealth;
        if ($var3.$attributeMap === null)
            $var3.$attributeMap = nms_ServersideAttributeMap__init_();
        var$9 = $var3.$attributeMap.$attributes;
        if ($var2 === null)
            $var2 = ju_HashMap_findNullKeyEntry(var$9);
        else {
            var$3 = nms_BaseAttribute_hashCode($var2);
            $var2 = ju_HashMap_findNonNullKeyEntry(var$9, $var2, var$3 & (var$9.$elementData.data.length - 1 | 0), var$3);
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2.$field_111133_g) {
            $var2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var2);
            $var2.$field_111133_g = 0;
        }
        var$14 = $var2.$field_111139_h;
        if (var$15 >= var$13)
            var$13 = var$15 <= var$14 ? var$15 : var$14;
        $var2 = new jl_Float;
        $var2.$value3 = var$13;
        var$9 = $par1EntityPlayer.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$16 = jl_Integer_integerCache.data[134];
        if (var$16 === null) {
            var$9 = var$9.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$7 = var$16.$value;
            var$8 = var$9.$elementData.data;
            var$9 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$7) {
                    var$6 = var$9.$key;
                    if (var$16 !== var$6 && !(var$16 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$9 = var$9.$next3;
            }
        }
        var$6 = var$9 === null ? null : var$9.$value0;
        var$9 = var$6.$watchedObject;
        if ($var2 === var$9)
            $var4 = 1;
        else
            a: {
                if (var$9 instanceof jl_Float) {
                    var$13 = $var2.$value3;
                    var$14 = var$9.$value3;
                    if (var$13 !== var$13 ? (var$14 === var$14 ? 0 : 1) : $rt_floatToRawIntBits(var$13) != $rt_floatToRawIntBits(var$14) ? 0 : 1) {
                        $var4 = 1;
                        break a;
                    }
                }
                $var4 = 0;
            }
        if (!$var4) {
            var$6.$watchedObject = $var2;
            var$6.$watched = 1;
            $par1EntityPlayer.$objectChanged = 1;
        }
        $var3.$renderYawOffset = $this.$renderYawOffset;
        $par1EntityPlayer = $this.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par1EntityPlayer, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        var$17 = 138;
        if ($var4 >= 5)
            return 1;
        $par1EntityPlayer = $this.$worldObj;
        var$16 = new nms_EntityItem;
        var$10 = $this.$posX;
        var$11 = $this.$posY + $this.$height0;
        var$12 = $this.$posZ;
        var$18 = new nms_ItemStack;
        nms_Block_$callClinit();
        $var3 = nms_Block_mushroomRed;
        nms_ItemStack_$callClinit();
        var$18.$itemID = $var3.$blockID;
        var$18.$stackSize = 1;
        var$18.$itemDamage = 0;
        $ptr = 5;
    case 5:
        nms_EntityItem__init_(var$16, $par1EntityPlayer, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$16.$dataWatcher;
        $var3 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[var$17];
        if (var$9 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$19 = var$9.$value;
            var$8 = $var3.$elementData.data;
            $var3 = var$8[var$19 & (var$8.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$19) {
                    $var2 = $var3.$key;
                    if (var$9 !== $var2 && !jl_Integer_equals(var$9, $var2) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if (!(var$18 !== $var3.$watchedObject ? 0 : 1)) {
            $var3.$watchedObject = var$18;
            $var3.$watched = 1;
            var$6.$objectChanged = 1;
        }
        var$6 = var$16.$dataWatcher;
        $var3 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[var$17];
        if (var$9 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$3 = var$9.$value;
            var$8 = $var3.$elementData.data;
            $var3 = var$8[var$3 & (var$8.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$3) {
                    $var2 = $var3.$key;
                    if (var$9 !== $var2 && !jl_Integer_equals(var$9, $var2) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        ($var3 === null ? null : $var3.$value0).$watched = 1;
        var$6.$objectChanged = 1;
        $ptr = 6;
    case 6:
        nms_World_spawnEntityInWorld($par1EntityPlayer, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= 5)
            return 1;
        $par1EntityPlayer = $this.$worldObj;
        var$16 = new nms_EntityItem;
        var$10 = $this.$posX;
        var$11 = $this.$posY + $this.$height0;
        var$12 = $this.$posZ;
        var$18 = new nms_ItemStack;
        nms_Block_$callClinit();
        $var3 = nms_Block_mushroomRed;
        nms_ItemStack_$callClinit();
        var$18.$itemID = $var3.$blockID;
        var$18.$stackSize = 1;
        var$18.$itemDamage = 0;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var3, var$3, $var2, $var4, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_EntityMooshroom_spawnBabyAnimal = ($this, $par1EntityAgeable) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityMooshroom;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityCow__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $par1EntityAgeable.$field_98056_d <= 0.0 ? 0 : 1;
        $par1EntityAgeable.$field_98056_d = 0.8999999761581421;
        $par1EntityAgeable.$field_98057_e = 1.2999999523162842;
        if (var$3)
            return $par1EntityAgeable;
        var$4 = 0.8999999761581421;
        var$5 = 1.2999999523162842;
        $ptr = 2;
    case 2:
        nms_Entity_setSize($par1EntityAgeable, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityMooshroom_createChild = ($this, $par1EntityAgeable) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityMooshroom;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityCow__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $par1EntityAgeable.$field_98056_d <= 0.0 ? 0 : 1;
        $par1EntityAgeable.$field_98056_d = 0.8999999761581421;
        $par1EntityAgeable.$field_98057_e = 1.2999999523162842;
        if (var$3)
            return $par1EntityAgeable;
        var$4 = 0.8999999761581421;
        var$5 = 1.2999999523162842;
        $ptr = 2;
    case 2:
        nms_Entity_setSize($par1EntityAgeable, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, var$3, var$4, var$5, $ptr);
};
function nms_EntityOcelot() {
    nms_EntityTameable.call(this);
    this.$aiTempt = null;
}
let nms_EntityOcelot__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $par1World = new nms_EntityAISit;
        $par1World.$theEntity8 = $this;
        $par1World.$mutexBits = 5;
        $this.$aiSit = $par1World;
        $this.$field_98056_d = 0.6000000238418579;
        $this.$field_98057_e = 0.800000011920929;
        var$2 = 0.6000000238418579;
        var$3 = 0.800000011920929;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$navigator;
        var$4.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAISwimming;
        var$5.$theEntity3 = $this;
        var$5.$mutexBits = 4;
        var$4.$canSwim = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = $this.$aiSit;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 2;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        var$5 = $this.$tasks0;
        var$4 = new nms_EntityAITempt;
        nms_Item_$callClinit();
        var$9 = nms_Item_fishRaw.$itemID0;
        var$4.$temptedEntity = $this;
        var$4.$field_75282_b = 0.6;
        var$4.$breedingFood = var$9;
        var$4.$scaredByPlayerMovement = 1;
        var$4.$mutexBits = 3;
        $this.$aiTempt = var$4;
        var$6 = var$5.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$5;
        $par1World.$priority = 3;
        $par1World.$action = var$4;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = $par1World;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIAvoidEntity;
        var$6 = new nms_EntityAIAvoidEntitySelector;
        var$6.$entityAvoiderAI = var$5;
        var$5.$field_98218_a = var$6;
        var$5.$theEntity4 = $this;
        var$5.$targetEntityClass = $rt_cls(nms_EntityPlayer);
        var$5.$distanceFromEntity = 16.0;
        var$5.$farSpeed = 0.8;
        var$5.$nearSpeed = 1.33;
        var$5.$entityPathNavigate0 = $this.$navigator;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 4;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIFollowOwner;
        var$5.$thePet = $this;
        var$5.$theWorld1 = $this.$worldObj;
        var$5.$field_75336_f = 1.0;
        var$5.$petPathfinder = $this.$navigator;
        var$5.$minDist = 10.0;
        var$5.$maxDist = 5.0;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 5;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIOcelotSit;
        var$5.$theOcelot = $this;
        var$5.$field_75404_b = 1.33;
        var$5.$mutexBits = 5;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 6;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAILeapAtTarget;
        var$5.$leaper = $this;
        var$5.$leapMotionY = 0.30000001192092896;
        var$5.$mutexBits = 5;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 7;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIOcelotAttack;
        var$5.$theEntity6 = $this;
        var$5.$theWorld7 = $this.$worldObj;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 8;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIMate;
        var$5.$theAnimal = $this;
        var$5.$theWorld2 = $this.$worldObj;
        var$5.$moveSpeed = 0.8;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 9;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWander;
        var$5.$entity = $this;
        var$5.$speed = 0.8;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 10;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWatchClosest;
        var$5.$theWatcher = $this;
        var$5.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$5.$maxDistanceForPlayer = 10.0;
        var$5.$field_75331_e = 0.019999999552965164;
        var$5.$mutexBits = 2;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 11;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$5 = new nms_EntityAITargetNonTamed;
        var$6 = null;
        var$5.$taskOwner = $this;
        var$5.$shouldCheckSight = 0;
        var$5.$nearbyOnly = 0;
        var$5.$targetClass = $rt_cls(nms_EntityChicken);
        var$5.$targetChance = 750;
        var$4 = new nms_EntityAINearestAttackableTargetSorter;
        var$4.$theEntity5 = $this;
        var$5.$theNearestAttackableTargetSorter = var$4;
        var$5.$mutexBits = 1;
        var$4 = new nms_EntityAINearestAttackableTargetSelector;
        var$4.$field_111102_d = var$5;
        var$4.$field_111103_c = var$6;
        var$5.$targetEntitySelector = var$4;
        var$5.$theTameable = $this;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityOcelot__init_0 = var_0 => {
    let var_1 = new nms_EntityOcelot();
    nms_EntityOcelot__init_(var_1, var_0);
    return var_1;
},
nms_EntityOcelot_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 12, var$1);
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 17, $rt_s(3));
    nms_DataWatcher_addObject($this.$dataWatcher, 18, jl_Byte_byteCache.data[128]);
},
nms_EntityOcelot_updateAITick = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var1;
    var$1 = $this.$moveHelper;
    if (!var$1.$update2) {
        nms_Entity_setFlag($this, 1, 0);
        nms_Entity_setFlag($this, 3, 0);
        var$1 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2 = $this.$attributeMap.$attributes;
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = jl_String_hashCode(var$1.$field_111115_a);
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$1, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        var$5 = var$2 === null ? null : var$2.$value0;
        nms_EntityLivingBase_$callClinit();
        var$1 = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
        var$2 = var$5.$field_111135_e;
        if (var$1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$6 = var$1.$mostSigBits;
            var$7 = var$1.$leastSigBits;
            var$8 = Long_xor(var$6, var$7);
            var$3 = Long_hi(var$8) ^ Long_lo(var$8);
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    a: {
                        var$9 = var$2.$key;
                        if (var$1 !== var$9) {
                            if (null !== var$9 && var$9 instanceof nle_ProfileUUID) {
                                var$9 = var$9;
                                var$10 = Long_eq(var$6, var$9.$mostSigBits) && Long_eq(var$7, var$9.$leastSigBits) ? 1 : 0;
                            } else
                                var$10 = 0;
                            if (!var$10) {
                                var$10 = 0;
                                break a;
                            }
                        }
                        var$10 = 1;
                    }
                    if (var$10)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$1 = var$2 === null ? null : var$2.$value0;
        if (var$1 !== null)
            nms_ModifiableAttributeInstance_removeModifier(var$5, nms_EntityLivingBase_sprintingSpeedBoostModifier);
    } else {
        $var1 = var$1.$speed2;
        if ($var1 === 0.6) {
            nms_Entity_setFlag($this, 1, 1);
            nms_Entity_setFlag($this, 3, 0);
            var$1 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$2 = $this.$attributeMap.$attributes;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode(var$1.$field_111115_a);
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$1, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            var$5 = var$2 === null ? null : var$2.$value0;
            nms_EntityLivingBase_$callClinit();
            var$1 = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
            var$2 = var$5.$field_111135_e;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$6 = var$1.$mostSigBits;
                var$7 = var$1.$leastSigBits;
                var$8 = Long_xor(var$6, var$7);
                var$3 = Long_hi(var$8) ^ Long_lo(var$8);
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        b: {
                            var$9 = var$2.$key;
                            if (var$1 !== var$9) {
                                if (null !== var$9 && var$9 instanceof nle_ProfileUUID) {
                                    var$9 = var$9;
                                    var$10 = Long_eq(var$6, var$9.$mostSigBits) && Long_eq(var$7, var$9.$leastSigBits) ? 1 : 0;
                                } else
                                    var$10 = 0;
                                if (!var$10) {
                                    var$10 = 0;
                                    break b;
                                }
                            }
                            var$10 = 1;
                        }
                        if (var$10)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$1 = var$2 === null ? null : var$2.$value0;
            if (var$1 !== null)
                nms_ModifiableAttributeInstance_removeModifier(var$5, nms_EntityLivingBase_sprintingSpeedBoostModifier);
        } else if ($var1 !== 1.33) {
            nms_Entity_setFlag($this, 1, 0);
            nms_Entity_setFlag($this, 3, 0);
            var$1 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$2 = $this.$attributeMap.$attributes;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode(var$1.$field_111115_a);
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$1, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            var$5 = var$2 === null ? null : var$2.$value0;
            nms_EntityLivingBase_$callClinit();
            var$1 = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
            var$2 = var$5.$field_111135_e;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$6 = var$1.$mostSigBits;
                var$7 = var$1.$leastSigBits;
                var$8 = Long_xor(var$6, var$7);
                var$3 = Long_hi(var$8) ^ Long_lo(var$8);
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        c: {
                            var$9 = var$2.$key;
                            if (var$1 !== var$9) {
                                if (null !== var$9 && var$9 instanceof nle_ProfileUUID) {
                                    var$9 = var$9;
                                    var$10 = Long_eq(var$6, var$9.$mostSigBits) && Long_eq(var$7, var$9.$leastSigBits) ? 1 : 0;
                                } else
                                    var$10 = 0;
                                if (!var$10) {
                                    var$10 = 0;
                                    break c;
                                }
                            }
                            var$10 = 1;
                        }
                        if (var$10)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$1 = var$2 === null ? null : var$2.$value0;
            if (var$1 !== null)
                nms_ModifiableAttributeInstance_removeModifier(var$5, nms_EntityLivingBase_sprintingSpeedBoostModifier);
        } else {
            nms_Entity_setFlag($this, 1, 0);
            nms_Entity_setFlag($this, 3, 1);
            var$1 = nms_SharedMonsterAttributes_movementSpeed;
            if ($this.$attributeMap === null)
                $this.$attributeMap = nms_ServersideAttributeMap__init_();
            var$2 = $this.$attributeMap.$attributes;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$3 = jl_String_hashCode(var$1.$field_111115_a);
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$1, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            var$5 = var$2 === null ? null : var$2.$value0;
            nms_EntityLivingBase_$callClinit();
            var$1 = nms_EntityLivingBase_sprintingSpeedBoostModifierUUID;
            var$2 = var$5.$field_111135_e;
            if (var$1 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$6 = var$1.$mostSigBits;
                var$7 = var$1.$leastSigBits;
                var$8 = Long_xor(var$6, var$7);
                var$3 = Long_hi(var$8) ^ Long_lo(var$8);
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        d: {
                            var$9 = var$2.$key;
                            if (var$1 !== var$9) {
                                if (null !== var$9 && var$9 instanceof nle_ProfileUUID) {
                                    var$9 = var$9;
                                    var$10 = Long_eq(var$6, var$9.$mostSigBits) && Long_eq(var$7, var$9.$leastSigBits) ? 1 : 0;
                                } else
                                    var$10 = 0;
                                if (!var$10) {
                                    var$10 = 0;
                                    break d;
                                }
                            }
                            var$10 = 1;
                        }
                        if (var$10)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$1 = var$2 === null ? null : var$2.$value0;
            if (var$1 !== null)
                nms_ModifiableAttributeInstance_removeModifier(var$5, nms_EntityLivingBase_sprintingSpeedBoostModifier);
            nms_ModifiableAttributeInstance_applyModifier(var$5, nms_EntityLivingBase_sprintingSpeedBoostModifier);
        }
    }
},
nms_EntityOcelot_canDespawn = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$6 = !(var$1.$watchedObject.$value1 & 4) ? 0 : 1;
    return !var$6 && $this.$ticksExisted > 2400 ? 1 : 0;
},
nms_EntityOcelot_isAIEnabled = $this => {
    return 1;
},
nms_EntityOcelot_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (10.0 !== var$3.$baseValue) {
        var$3.$baseValue = 10.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.30000001192092896 !== var$1.$baseValue) {
        var$1.$baseValue = 0.30000001192092896;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityOcelot_fall = ($this, $par1) => {
    return;
},
nms_EntityOcelot_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[140];
    if (var$3 === null)
        var$2 = ju_HashMap_findNullKeyEntry(var$2);
    else {
        var$4 = jl_Integer_hashCode0(var$3);
        var$2 = ju_HashMap_findNonNullKeyEntry(var$2, var$3, var$4 & (var$2.$elementData.data.length - 1 | 0), var$4);
    }
    var$5 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2201);
    var$2.$data = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2201), var$2);
    var$5 = $this.$inLove;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2202);
    var$2.$data = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2202), var$2);
    var$6 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[145];
    if (var$2 === null) {
        var$6 = var$6.$elementData.data[0];
        while (var$6 !== null && var$6.$key !== null) {
            var$6 = var$6.$next3;
        }
    } else {
        var$5 = var$2.$value;
        var$7 = var$6.$elementData.data;
        var$6 = var$7[var$5 & (var$7.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$5) {
                var$3 = var$6.$key;
                if (var$2 !== var$3 && !jl_Integer_equals(var$2, var$3) ? 0 : 1)
                    break;
            }
            var$6 = var$6.$next3;
        }
    }
    var$6 = var$6 === null ? null : var$6.$value0;
    if (var$6.$watchedObject === null) {
        var$8 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagString;
        var$3.$name = $rt_s(2277);
        var$3.$data1 = $rt_s(3);
        ju_HashMap_putImpl(var$8, $rt_s(2277), var$3);
    } else {
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[145];
        if (var$3 === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$7 = var$2.$elementData.data;
            var$8 = var$7[var$4 & (var$7.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$4) {
                    var$2 = var$8.$key;
                    if (var$3 !== var$2 && !jl_Integer_equals(var$3, var$2) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$8 = (var$8 === null ? null : var$8.$value0).$watchedObject;
        var$3 = $par1NBTTagCompound.$tagMap;
        var$2 = new nms_NBTTagString;
        var$2.$name = $rt_s(2277);
        var$2.$data1 = var$8;
        if (var$8 === null) {
            var$6 = new jl_IllegalArgumentException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            var$6.$message = $rt_s(177);
            $rt_throw(var$6);
        }
        ju_HashMap_putImpl(var$3, $rt_s(2277), var$2);
    }
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[144];
    if (var$8 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$9 = var$8.$value;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$9 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$9) {
                var$3 = var$2.$key;
                if (var$8 !== var$3 && !jl_Integer_equals(var$8, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    var$5 = (!(!(var$2.$watchedObject.$value1 & 1) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagByte;
    var$2.$name = $rt_s(2278);
    var$2.$data0 = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2278), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[146];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$5 = var$3.$value;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$5 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$8 = var$2.$key;
                if (var$3 !== var$8 && !(var$3 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$5 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2336);
    $par1NBTTagCompound.$data = var$5;
    ju_HashMap_putImpl(var$2, $rt_s(2336), $par1NBTTagCompound);
},
nms_EntityOcelot_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2201).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2201).$nativeString.length)
                        break a;
                    $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2201).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if ($rt_s(2201) !== var$6 && !jl_String_equals($rt_s(2201), var$6) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$7 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2201) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                b: {
                    if (!$rt_s(2201).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2201).$nativeString.length)
                                break b;
                            $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2201).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if ($rt_s(2201) !== var$6 && !jl_String_equals($rt_s(2201), var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$7 = (var$2 === null ? null : var$2.$value0).$data;
        }
        var$8 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$7;
        }
        var$6 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null)
            var$6 = ju_HashMap_findNullKeyEntry(var$6);
        else {
            var$7 = jl_Integer_hashCode0(var$9);
            var$6 = ju_HashMap_findNonNullKeyEntry(var$6, var$9, var$7 & (var$6.$elementData.data.length - 1 | 0), var$7);
        }
        var$9 = var$6 === null ? null : var$6.$value0;
        var$6 = var$9.$watchedObject;
        if (!(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2.$value ? 1 : 0)) {
            var$9.$watchedObject = var$2;
            var$9.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$10 = !((ju_HashMap_get($this.$dataWatcher.$watchedObjects, jl_Integer_valueOf(12))).$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$11 = $this.$field_98056_d * var$10;
        var$10 = $this.$field_98057_e * var$10;
        $ptr = 2;
    case 2:
        a: {
            nms_Entity_setSize($this, var$11, var$10);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2202).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2202).$nativeString.length)
                        break a;
                    $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2202).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                c: {
                    var$6 = var$2.$key;
                    if ($rt_s(2202) !== var$6) {
                        if ($rt_s(2202) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break c;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2202) !== null) {
                d: {
                    if (!$rt_s(2202).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2202).$nativeString.length)
                                break d;
                            $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2202).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        e: {
                            var$6 = var$2.$key;
                            if ($rt_s(2202) !== var$6) {
                                if ($rt_s(2202) !== var$6) {
                                    if (!(var$6 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break e;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        f: {
            $this.$inLove = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2277).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2277).$nativeString.length)
                        break f;
                    $rt_s(2277).$hashCode1 = (31 * $rt_s(2277).$hashCode1 | 0) + $rt_s(2277).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2277).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                g: {
                    var$6 = var$2.$key;
                    if ($rt_s(2277) !== var$6) {
                        if ($rt_s(2277) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2277).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break g;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$12 = $rt_s(3);
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2277) !== null) {
                h: {
                    if (!$rt_s(2277).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2277).$nativeString.length)
                                break h;
                            $rt_s(2277).$hashCode1 = (31 * $rt_s(2277).$hashCode1 | 0) + $rt_s(2277).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2277).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        i: {
                            var$6 = var$2.$key;
                            if ($rt_s(2277) !== var$6) {
                                if ($rt_s(2277) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2277).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break i;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$12 = (var$2 === null ? null : var$2.$value0).$data1;
        }
        if (var$12.$nativeString.length > 0) {
            var$8 = $this.$dataWatcher;
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[145];
            if (var$9 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$9.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$9 !== var$6 && !jl_Integer_equals(var$9, var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (var$12 !== var$2) {
                if (var$2 instanceof jl_String) {
                    var$2 = var$2;
                    var$3 = var$12.$nativeString !== var$2.$nativeString ? 0 : 1;
                } else
                    var$3 = 0;
            } else
                var$3 = 1;
            if (!var$3) {
                var$6.$watchedObject = var$12;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
            var$8 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                var$3 = jl_Integer_hashCode(var$2.$value);
                var$5 = var$8.$elementData.data;
                var$8 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$8 !== null && !(var$8.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$2, var$8.$key))) {
                    var$8 = var$8.$next3;
                }
            }
            var$7 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 | 4) << 24 >> 24;
            var$12 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[144];
            if (var$9 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = jl_Integer_hashCode(var$9.$value);
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null && !(var$2.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$9, var$2.$key))) {
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$12.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$12;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        }
        j: {
            var$9 = $this.$aiSit;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2278).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2278).$nativeString.length)
                        break j;
                    $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2278).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$12 = var$5[var$7 & (var$5.length - 1 | 0)];
        while (var$12 !== null) {
            if (var$12.$origKeyHash == var$7) {
                k: {
                    var$2 = var$12.$key;
                    if ($rt_s(2278) !== var$2) {
                        if ($rt_s(2278) === var$2)
                            var$3 = 1;
                        else if (!(var$2 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$2 = var$2;
                            var$3 = $rt_s(2278).$nativeString !== var$2.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break k;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$12 = var$12.$next3;
        }
        if (var$12 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2278) === null) {
                var$12 = var$2.$elementData.data[0];
                while (var$12 !== null && var$12.$key !== null) {
                    var$12 = var$12.$next3;
                }
            } else {
                l: {
                    if (!$rt_s(2278).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2278).$nativeString.length)
                                break l;
                            $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2278).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$12 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$7) {
                        m: {
                            var$2 = var$12.$key;
                            if ($rt_s(2278) !== var$2) {
                                if ($rt_s(2278) === var$2)
                                    var$3 = 1;
                                else if (var$2 instanceof jl_String) {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2278).$nativeString !== var$2.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                                if (!var$3) {
                                    var$3 = 0;
                                    break m;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
            }
            var$3 = (var$12 === null ? null : var$12.$value0).$data0;
        } else
            var$3 = 0;
        var$3 = !var$3 ? 0 : 1;
        n: {
            var$9.$isSitting0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2278).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2278).$nativeString.length)
                        break n;
                    $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2278).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                o: {
                    var$6 = var$2.$key;
                    if ($rt_s(2278) !== var$6) {
                        if ($rt_s(2278) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2278).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break o;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2278) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                p: {
                    if (!$rt_s(2278).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2278).$nativeString.length)
                                break p;
                            $rt_s(2278).$hashCode1 = (31 * $rt_s(2278).$hashCode1 | 0) + $rt_s(2278).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2278).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        q: {
                            var$6 = var$2.$key;
                            if ($rt_s(2278) !== var$6) {
                                if ($rt_s(2278) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2278).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break q;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            var$3 = 0;
        var$3 = !var$3 ? 0 : 1;
        var$8 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 !== null) {
            var$13 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$13 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$13) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !jl_Integer_equals(var$6, var$2) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        } else {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        }
        var$7 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
        if (!var$3) {
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 & (-2)) << 24 >> 24;
            var$12 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[144];
            if (var$9 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$9.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$9 !== var$6 && !jl_Integer_equals(var$9, var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$12.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$12;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        } else {
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 | 1) << 24 >> 24;
            var$12 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[144];
            if (var$9 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$9.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$9 !== var$6 && !jl_Integer_equals(var$9, var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$12.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$12;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        }
        r: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2336).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2336).$nativeString.length)
                        break r;
                    $rt_s(2336).$hashCode1 = (31 * $rt_s(2336).$hashCode1 | 0) + $rt_s(2336).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2336).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                s: {
                    var$6 = var$2.$key;
                    if ($rt_s(2336) !== var$6) {
                        if ($rt_s(2336) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2336).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break s;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2336) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                t: {
                    if (!$rt_s(2336).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2336).$nativeString.length)
                                break t;
                            $rt_s(2336).$hashCode1 = (31 * $rt_s(2336).$hashCode1 | 0) + $rt_s(2336).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2336).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$4) {
                        u: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2336) !== var$2) {
                                if ($rt_s(2336) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2336).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break u;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
        }
        $par1NBTTagCompound = $this.$dataWatcher;
        var$3 = var$3 << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
        var$8 = $par1NBTTagCompound.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[146];
        if (var$6 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$4 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$4) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$2 = var$8 === null ? null : var$8.$value0;
        var$8 = var$2.$watchedObject;
        if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$9.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$9;
            var$2.$watched = 1;
            $par1NBTTagCompound.$objectChanged = 1;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityOcelot_getLivingSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    if (!(!(var$1.$watchedObject.$value1 & 4) ? 0 : 1))
        var$1 = $rt_s(3);
    else if ($this.$inLove <= 0 ? 0 : 1)
        var$1 = $rt_s(2337);
    else {
        var$1 = $this.$rand;
        var$6 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$6;
        var$1 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$6, 17)))), 31)) ? $rt_s(2338) : $rt_s(2339);
    }
    return var$1;
},
nms_EntityOcelot_getHurtSound = $this => {
    return $rt_s(2340);
},
nms_EntityOcelot_getDeathSound = $this => {
    return $rt_s(2340);
},
nms_EntityOcelot_getSoundVolume = $this => {
    return 0.4000000059604645;
},
nms_EntityOcelot_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_leather.$itemID0;
},
nms_EntityOcelot_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        $this.$aiSit.$isSitting0 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, $ptr);
},
nms_EntityOcelot_dropFewItems = ($this, $par1, $par2) => {
    return;
},
nms_EntityOcelot_interact = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayer.$inventory0;
        var$3 = var$2.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 !== null) {
            var$6 = var$5.$value;
            var$7 = var$2.$elementData.data;
            var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$6) {
                    var$8 = var$2.$key;
                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        var$9 = !(var$2.$watchedObject.$value1 & 4) ? 0 : 1;
        a: {
            if (!var$9) {
                if (!$this.$aiTempt.$isRunning)
                    break a;
                if ($var2 === null)
                    break a;
                var$9 = $var2.$itemID;
                nms_Item_$callClinit();
                if (var$9 != nms_Item_fishRaw.$itemID0)
                    break a;
                var$10 = $par1EntityPlayer.$posX - $this.$posX;
                var$11 = $par1EntityPlayer.$posY - $this.$posY;
                var$12 = $par1EntityPlayer.$posZ - $this.$posZ;
                if (var$10 * var$10 + var$11 * var$11 + var$12 * var$12 >= 9.0)
                    break a;
                if (!$par1EntityPlayer.$capabilities.$isCreativeMode)
                    $var2.$stackSize = $var2.$stackSize - 1 | 0;
                if ($var2.$stackSize <= 0) {
                    var$2 = $par1EntityPlayer.$inventory0;
                    var$9 = var$2.$currentItem;
                    $var2 = null;
                    var$7 = var$2.$mainInventory;
                    var$3 = var$7.data.length;
                    if (var$9 >= var$3) {
                        var$9 = var$9 - var$3 | 0;
                        var$7 = var$2.$armorInventory;
                    }
                    var$7.data[var$9] = $var2;
                }
                if (!$this.$worldObj.$isRemote) {
                    var$2 = $this.$rand;
                    var$13 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$13;
                    var$3 = Long_lo(Long_shru(var$13, 17));
                    while (true) {
                        var$6 = var$3 % 3 | 0;
                        if (((var$3 - var$6 | 0) + 2 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$3 = Long_lo(Long_shru(var$13, 17));
                    }
                    if (var$6) {
                        nms_EntityTameable_playTameEffect($this, 0);
                        $par1EntityPlayer = $this.$worldObj;
                        var$2 = new nms_Packet38EntityStatus;
                        var$3 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$2.$entityId0 = var$3;
                        var$2.$entityStatus = 6;
                        $par1EntityPlayer = $par1EntityPlayer.$theEntityTracker.$trackedEntityIDs;
                        var$9 = $this.$entityId;
                        var$3 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                        var$14 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
                        var$7 = $par1EntityPlayer.$slots.data;
                        $par1EntityPlayer = var$7[var$14 & (var$7.length - 1 | 0)];
                        b: {
                            while ($par1EntityPlayer !== null) {
                                if ($par1EntityPlayer.$hashEntry == var$9) {
                                    $par1EntityPlayer = $par1EntityPlayer.$valueEntry;
                                    break b;
                                }
                                $par1EntityPlayer = $par1EntityPlayer.$nextEntry0;
                            }
                            $par1EntityPlayer = null;
                        }
                        $par1EntityPlayer = $par1EntityPlayer;
                        if ($par1EntityPlayer !== null) {
                            $var2 = $par1EntityPlayer.$trackingPlayers.$backingMap;
                            if ($var2.$cachedKeySet === null) {
                                var$8 = new ju_HashMap$1;
                                var$8.$this$0 = $var2;
                                ju_AbstractCollection__init_(var$8);
                                $var2.$cachedKeySet = var$8;
                            }
                            var$15 = $var2.$cachedKeySet.$iterator();
                            var$3 = var$2 instanceof nms_Packet3Chat;
                            var$8 = var$2;
                            while (var$15.$hasNext()) {
                                c: {
                                    $var2 = (var$15.$next()).$playerNetServerHandler;
                                    if (var$3) {
                                        var$6 = $var2.$playerEntity.$chatVisibility;
                                        if (var$6 == 2)
                                            break c;
                                        if (var$6 == 1 && !var$8.$isServer)
                                            break c;
                                    }
                                    try {
                                        $var2 = $var2.$netManager;
                                        $ptr = 2;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var2 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$5 = new otcic_JSStderrPrintStream;
                                        otcic_JsConsolePrintStream__init_(var$5);
                                        jl_System_errCache = var$5;
                                    }
                                    jl_Throwable_printStackTrace($var2, jl_System_errCache);
                                }
                            }
                            $par1EntityPlayer = $par1EntityPlayer.$myEntity;
                            if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
                                d: {
                                    $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                                    if (var$3) {
                                        var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                                        if (var$3 == 2)
                                            break d;
                                        if (var$3 == 1 && !var$8.$isServer)
                                            break d;
                                    }
                                    try {
                                        $par1EntityPlayer = $par1EntityPlayer.$netManager;
                                        $ptr = 3;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $par1EntityPlayer = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$2 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = var$2;
                                    }
                                    jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
                                }
                        }
                    } else {
                        var$2 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$8 = jl_Integer_integerCache.data[144];
                        if (var$8 !== null) {
                            var$6 = var$8.$value;
                            var$7 = var$2.$elementData.data;
                            var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
                            while (var$2 !== null) {
                                if (var$2.$origKeyHash == var$6) {
                                    $var2 = var$2.$key;
                                    if (var$8 !== $var2 && !(var$8 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$6 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$2 = var$2.$next3;
                            }
                        } else {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        }
                        var$3 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
                        var$2 = $this.$dataWatcher;
                        var$9 = (var$3 | 4) << 24 >> 24;
                        var$15 = jl_Byte_byteCache.data[var$9 + 128 | 0];
                        $var2 = var$2.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$5 = jl_Integer_integerCache.data[144];
                        if (var$5 !== null) {
                            var$6 = var$5.$value;
                            var$7 = $var2.$elementData.data;
                            $var2 = var$7[var$6 & (var$7.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$6) {
                                    var$8 = $var2.$key;
                                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        } else {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        }
                        var$8 = $var2 === null ? null : $var2.$value0;
                        $var2 = var$8.$watchedObject;
                        if (!($var2 instanceof jl_Byte && $var2.$value1 == var$15.$value1 ? 1 : 0)) {
                            var$8.$watchedObject = var$15;
                            var$8.$watched = 1;
                            var$2.$objectChanged = 1;
                        }
                        var$2 = $this.$worldObj.$rand0;
                        var$13 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$13;
                        var$6 = Long_lo(Long_shru(var$13, 17));
                        while (true) {
                            var$14 = var$6 % 3 | 0;
                            if (((var$6 - var$14 | 0) + 2 | 0) >= 0)
                                break;
                            var$13 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$13;
                            var$6 = Long_lo(Long_shru(var$13, 17));
                        }
                        var$9 = 1 + var$14 | 0;
                        var$2 = $this.$dataWatcher;
                        var$9 = var$9 << 24 >> 24;
                        var$15 = jl_Byte_byteCache.data[var$9 + 128 | 0];
                        $var2 = var$2.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$5 = jl_Integer_integerCache.data[146];
                        if (var$5 === null) {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            var$6 = var$5.$value;
                            var$7 = $var2.$elementData.data;
                            $var2 = var$7[var$6 & (var$7.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$6) {
                                    var$8 = $var2.$key;
                                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        var$8 = $var2 === null ? null : $var2.$value0;
                        $var2 = var$8.$watchedObject;
                        if (!($var2 instanceof jl_Byte && $var2.$value1 == var$15.$value1 ? 1 : 0)) {
                            var$8.$watchedObject = var$15;
                            var$8.$watched = 1;
                            var$2.$objectChanged = 1;
                        }
                        var$8 = $par1EntityPlayer.$username;
                        $par1EntityPlayer = $this.$dataWatcher;
                        var$2 = $par1EntityPlayer.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var2 = jl_Integer_integerCache.data[145];
                        if ($var2 === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            var$6 = $var2.$value;
                            var$7 = var$2.$elementData.data;
                            var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
                            while (var$2 !== null) {
                                if (var$2.$origKeyHash == var$6) {
                                    var$5 = var$2.$key;
                                    if ($var2 !== var$5 && !($var2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$6 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$2 = var$2.$next3;
                            }
                        }
                        $var2 = var$2 === null ? null : var$2.$value0;
                        var$2 = $var2.$watchedObject;
                        if (var$8 === var$2)
                            var$9 = 1;
                        else if (!(var$2 instanceof jl_String))
                            var$9 = 0;
                        else {
                            var$2 = var$2;
                            var$9 = var$8.$nativeString !== var$2.$nativeString ? 0 : 1;
                        }
                        if (!var$9) {
                            $var2.$watchedObject = var$8;
                            $var2.$watched = 1;
                            $par1EntityPlayer.$objectChanged = 1;
                        }
                        nms_EntityTameable_playTameEffect($this, 1);
                        $this.$aiSit.$isSitting0 = 1;
                        $par1EntityPlayer = $this.$worldObj;
                        var$2 = new nms_Packet38EntityStatus;
                        var$3 = $this.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$2.$entityId0 = var$3;
                        var$2.$entityStatus = 7;
                        $par1EntityPlayer = $par1EntityPlayer.$theEntityTracker.$trackedEntityIDs;
                        var$9 = $this.$entityId;
                        var$3 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                        var$14 = var$3 ^ (var$3 >>> 7 | 0) ^ (var$3 >>> 4 | 0);
                        var$7 = $par1EntityPlayer.$slots.data;
                        $par1EntityPlayer = var$7[var$14 & (var$7.length - 1 | 0)];
                        e: {
                            while ($par1EntityPlayer !== null) {
                                if ($par1EntityPlayer.$hashEntry == var$9) {
                                    $par1EntityPlayer = $par1EntityPlayer.$valueEntry;
                                    break e;
                                }
                                $par1EntityPlayer = $par1EntityPlayer.$nextEntry0;
                            }
                            $par1EntityPlayer = null;
                        }
                        $par1EntityPlayer = $par1EntityPlayer;
                        if ($par1EntityPlayer !== null) {
                            $var2 = $par1EntityPlayer.$trackingPlayers.$backingMap;
                            if ($var2.$cachedKeySet === null) {
                                var$8 = new ju_HashMap$1;
                                var$8.$this$0 = $var2;
                                ju_AbstractCollection__init_(var$8);
                                $var2.$cachedKeySet = var$8;
                            }
                            var$15 = $var2.$cachedKeySet.$iterator();
                            var$3 = var$2 instanceof nms_Packet3Chat;
                            var$8 = var$2;
                            while (var$15.$hasNext()) {
                                f: {
                                    $var2 = (var$15.$next()).$playerNetServerHandler;
                                    if (var$3) {
                                        var$6 = $var2.$playerEntity.$chatVisibility;
                                        if (var$6 == 2)
                                            break f;
                                        if (var$6 == 1 && !var$8.$isServer)
                                            break f;
                                    }
                                    try {
                                        $var2 = $var2.$netManager;
                                        $ptr = 4;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $var2 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$5 = new otcic_JSStderrPrintStream;
                                        otcic_JsConsolePrintStream__init_(var$5);
                                        jl_System_errCache = var$5;
                                    }
                                    jl_Throwable_printStackTrace($var2, jl_System_errCache);
                                }
                            }
                            $par1EntityPlayer = $par1EntityPlayer.$myEntity;
                            if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
                                g: {
                                    $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                                    if (var$3) {
                                        var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                                        if (var$3 == 2)
                                            break g;
                                        if (var$3 == 1 && !var$8.$isServer)
                                            break g;
                                    }
                                    try {
                                        $par1EntityPlayer = $par1EntityPlayer.$netManager;
                                        $ptr = 5;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            $par1EntityPlayer = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$2 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = var$2;
                                    }
                                    jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
                                }
                        }
                    }
                }
                return 1;
            }
            var$15 = $par1EntityPlayer.$username;
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[145];
            if (var$5 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$6 = var$5.$value;
                var$7 = var$2.$elementData.data;
                var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$6) {
                        var$8 = var$2.$key;
                        if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            if (jl_String_equalsIgnoreCase(var$15, (var$2 === null ? null : var$2.$value0).$watchedObject) && !$this.$worldObj.$isRemote) {
                h: {
                    if ($var2 !== null) {
                        var$9 = $var2.$itemID;
                        nms_Item_$callClinit();
                        if (var$9 == nms_Item_fishRaw.$itemID0) {
                            var$9 = 1;
                            break h;
                        }
                    }
                    var$9 = 0;
                }
                if (!var$9) {
                    var$2 = $this.$aiSit;
                    $var2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$8 = jl_Integer_integerCache.data[144];
                    if (var$8 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$9 = var$8.$value;
                        var$7 = $var2.$elementData.data;
                        $var2 = var$7[var$9 & (var$7.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$9) {
                                var$5 = $var2.$key;
                                if (var$8 !== var$5 && !(var$8 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = $var2 === null ? null : $var2.$value0;
                    var$2.$isSitting0 = (!($var2.$watchedObject.$value1 & 1) ? 0 : 1) ? 0 : 1;
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        return var$9;
    case 2:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$5);
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$5);
        }
        j: while (true) {
            while (true) {
                if (!var$15.$hasNext())
                    break j;
                $var2 = (var$15.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                var$6 = $var2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    continue;
                if (var$6 != 1)
                    break;
                if (var$8.$isServer)
                    break;
            }
            try {
                $var2 = $var2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$5);
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$5);
        }
        $par1EntityPlayer = $par1EntityPlayer.$myEntity;
        if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
            k: {
                $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                if (var$3) {
                    var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break k;
                    if (var$3 == 1 && !var$8.$isServer)
                        break k;
                }
                try {
                    $par1EntityPlayer = $par1EntityPlayer.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayer = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
            }
        return 1;
    case 3:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 4:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$5);
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$5);
        }
        j: while (true) {
            while (true) {
                if (!var$15.$hasNext())
                    break j;
                $var2 = (var$15.$next()).$playerNetServerHandler;
                if (!var$3)
                    break;
                var$6 = $var2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    continue;
                if (var$6 != 1)
                    break;
                if (var$8.$isServer)
                    break;
            }
            try {
                $var2 = $var2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$5 = jl_System_errCache;
            if (var$5 === null) {
                var$5 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$5);
                jl_System_errCache = var$5;
            }
            var$5 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$5);
        }
        $par1EntityPlayer = $par1EntityPlayer.$myEntity;
        if ($par1EntityPlayer instanceof nms_EntityPlayerMP)
            k: {
                $par1EntityPlayer = $par1EntityPlayer.$playerNetServerHandler;
                if (var$3) {
                    var$3 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                    if (var$3 == 2)
                        break k;
                    if (var$3 == 1 && !var$8.$isServer)
                        break k;
                }
                try {
                    $par1EntityPlayer = $par1EntityPlayer.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayer = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
            }
        return 1;
    case 5:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityOcelot_isBreedingItem = ($this, $par1ItemStack) => {
    let var$2;
    a: {
        if ($par1ItemStack !== null) {
            var$2 = $par1ItemStack.$itemID;
            nms_Item_$callClinit();
            if (var$2 == nms_Item_fishRaw.$itemID0) {
                var$2 = 1;
                break a;
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EntityOcelot_canMateWith = ($this, $par1EntityAnimal) => {
    let $var2, var$3, var$4, var$5, var$6, var$7;
    if ($par1EntityAnimal === $this)
        return 0;
    $var2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$4) {
                var$6 = $var2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if (!(!($var2.$watchedObject.$value1 & 4) ? 0 : 1))
        return 0;
    if (!($par1EntityAnimal instanceof nms_EntityOcelot))
        return 0;
    $var2 = $par1EntityAnimal;
    $par1EntityAnimal = $var2.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[144];
    if (var$6 === null) {
        $par1EntityAnimal = $par1EntityAnimal.$elementData.data[0];
        while ($par1EntityAnimal !== null && $par1EntityAnimal.$key !== null) {
            $par1EntityAnimal = $par1EntityAnimal.$next3;
        }
    } else {
        var$7 = var$6.$value;
        var$5 = $par1EntityAnimal.$elementData.data;
        $par1EntityAnimal = var$5[var$7 & (var$5.length - 1 | 0)];
        while ($par1EntityAnimal !== null) {
            if ($par1EntityAnimal.$origKeyHash == var$7) {
                var$3 = $par1EntityAnimal.$key;
                if (var$6 !== var$3 && !(var$6 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par1EntityAnimal = $par1EntityAnimal.$next3;
        }
    }
    $par1EntityAnimal = $par1EntityAnimal === null ? null : $par1EntityAnimal.$value0;
    if (!(!($par1EntityAnimal.$watchedObject.$value1 & 4) ? 0 : 1))
        var$4 = 0;
    else {
        var$4 = $this.$inLove <= 0 ? 0 : 1;
        var$4 = var$4 && ($var2.$inLove <= 0 ? 0 : 1) ? 1 : 0;
    }
    return var$4;
},
nms_EntityOcelot_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, $var1, $var2, var$6, $var4, var$8, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = var$1.$rand0;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        $var1 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            $var2 = $var1 % 3 | 0;
            if ((($var1 - $var2 | 0) + 2 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            $var1 = Long_lo(Long_shru(var$3, 17));
        }
        if (!$var2)
            return 0;
        var$2 = $this.$boundingBox0;
        var$6 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision(var$1, var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4)
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes(var$1, $this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!(var$1.$size0 ? 0 : 1))
            return 0;
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_isAnyLiquid(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4)
            return 0;
        var$8 = $this.$posX;
        $var1 = var$8 | 0;
        if (var$8 < $var1)
            $var1 = $var1 - 1 | 0;
        var$8 = $this.$boundingBox0.$minY0;
        $var2 = var$8 | 0;
        if (var$8 < $var2)
            $var2 = $var2 - 1 | 0;
        var$8 = $this.$posZ;
        $var3 = var$8 | 0;
        if (var$8 < $var3)
            $var3 = $var3 - 1 | 0;
        if ($var2 < 63)
            return 0;
        var$1 = $this.$worldObj;
        $var4 = $var2 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId(var$1, $var1, $var4, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        nms_Block_$callClinit();
        if ($var4 != nms_Block_grass.$blockID && $var4 != nms_Block_leaves.$blockID)
            return 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, $var2, var$6, $var4, var$8, $var3, $ptr);
},
nms_EntityOcelot_getEntityName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[138];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    if (var$1.$watchedObject.$nativeString.length <= 0 ? 0 : 1) {
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[138];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$6 = var$5.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$6) {
                    var$2 = var$1.$key;
                    if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = (var$1 === null ? null : var$1.$value0).$watchedObject;
    } else {
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value1 & 4) ? 0 : 1)
            var$1 = $rt_s(2341);
        else {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[138];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (var$1.$watchedObject.$nativeString.length <= 0 ? 0 : 1) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[138];
                if (var$5 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$6 = var$5.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$6) {
                            var$2 = var$1.$key;
                            if (var$5 !== var$2 && !jl_Integer_equals(var$5, var$2) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$1 = (var$1 === null ? null : var$1.$value0).$watchedObject;
            } else {
                nms_EntityList_$callClinit();
                var$1 = nms_EntityList_classToStringMapping;
                var$2 = $this.constructor;
                if (var$2 === null)
                    var$5 = null;
                else {
                    var$5 = var$2.classObject;
                    if (var$5 === null) {
                        var$5 = new jl_Class;
                        var$5.$platformClass = var$2;
                        var$2.classObject = var$5;
                    }
                }
                if (var$5 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$2 = var$5;
                    if (!var$2.$id$)
                        var$2.$id$ = $rt_nextId();
                    var$6 = var$5.$id$;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$6 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$6) {
                            var$2 = var$1.$key;
                            if (var$5 !== var$2 && !(var$5 !== var$2 ? 0 : 1) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$1 = var$1 === null ? null : var$1.$value0;
                if (var$1 === null)
                    var$1 = $rt_s(1266);
                var$5 = new jl_StringBuilder;
                var$5.$buffer = $rt_createCharArray(16);
                jl_StringBuilder_insert0(var$5, var$5.$length0, $rt_s(1267));
                jl_StringBuilder_insert0(var$5, var$5.$length0, var$1);
                jl_StringBuilder_insert0(var$5, var$5.$length0, $rt_s(400));
                var$1 = new jl_String;
                var$4 = var$5.$buffer;
                var$7 = var$4.data;
                var$8 = var$5.$length0;
                var$3 = var$7.length;
                if (var$8 >= 0 && var$8 <= (var$3 - 0 | 0)) {
                    var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$8);
                    nms_StatCollector_$callClinit();
                    var$1 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$1);
                } else {
                    var$1 = new jl_IndexOutOfBoundsException;
                    jl_Exception__init_(var$1);
                    $rt_throw(var$1);
                }
            }
        }
    }
    return var$1;
},
nms_EntityOcelot_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let $var3, var$3, var$4, var$5, var$6, var$7, var$8, $var2, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var2 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1EntityLivingData = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = nms_SharedMonsterAttributes_followRange;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var3 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$4 = jl_String_hashCode($var3.$field_111115_a);
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$4 && ju_HashMap_areEqualKeys($var3, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$6 = var$3 === null ? null : var$3.$value0;
        var$3 = new nms_AttributeModifier;
        var$7 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
        var$8 = nle_ProfileUUID_randomUUID();
        var$3.$isSaved = 1;
        var$3.$id1 = var$8;
        var$3.$name3 = $rt_s(2198);
        var$3.$amount0 = var$7;
        var$3.$operation = 1;
        if ($rt_s(2198) === $rt_s(3))
            $var2 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            $var2 = 0;
        else {
            var$8 = $rt_s(3);
            $var2 = $rt_s(2198).$nativeString !== var$8.$nativeString ? 0 : 1;
        }
        if ($var2) {
            $var3 = new jl_IllegalArgumentException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var3);
            $var3.$message = $rt_s(1279);
            $rt_throw($var3);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, var$3);
        $var3 = $this.$worldObj.$rand0;
        var$10 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$10;
        $var2 = Long_lo(Long_shru(var$10, 17));
        while (true) {
            var$11 = $var2 % 7 | 0;
            if ((($var2 - var$11 | 0) + 6 | 0) >= 0)
                break;
            var$10 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$10;
            $var2 = Long_lo(Long_shru(var$10, 17));
        }
        if (!var$11) {
            $var2 = 0;
            var$12 = 140;
            if ($var2 < 2) {
                $var3 = new nms_EntityOcelot;
                var$3 = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
        }
        return $par1EntityLivingData;
    case 1:
        nms_EntityOcelot__init_($var3, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$posX;
        var$13 = $this.$posY;
        var$14 = $this.$posZ;
        var$15 = $this.$rotationYaw;
        $var3.$posX = var$7;
        $var3.$prevPosX = var$7;
        $var3.$lastTickPosX = var$7;
        var$13 = var$13 + $var3.$yOffset;
        $var3.$posY = var$13;
        $var3.$prevPosY = var$13;
        $var3.$lastTickPosY = var$13;
        $var3.$posZ = var$14;
        $var3.$prevPosZ = var$14;
        $var3.$lastTickPosZ = var$14;
        $var3.$rotationYaw = var$15;
        $var3.$rotationPitch = 0.0;
        nms_Entity_setPosition($var3, var$7, var$13, var$14);
        var$3 = $var3.$dataWatcher;
        var$16 = new jl_Integer;
        var$16.$value = (-24000);
        var$8 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[var$12];
        if (var$17 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$11 = var$17.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$11 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$11) {
                    var$6 = var$8.$key;
                    if (var$17 !== var$6 && !(var$17 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$11 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$6 = var$8 === null ? null : var$8.$value0;
        var$8 = var$6.$watchedObject;
        if (!(var$16 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$16.$value ? 1 : 0)) {
            var$6.$watchedObject = var$16;
            var$6.$watched = 1;
            var$3.$objectChanged = 1;
        }
        var$3 = $var3.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$12];
        if (var$6 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$11 = jl_Integer_hashCode(var$6.$value);
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$11 & (var$5.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$11 && ju_HashMap_areEqualKeys(var$6, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        var$18 = !(var$3.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$15 = $var3.$field_98056_d * var$18;
        var$18 = $var3.$field_98057_e * var$18;
        $ptr = 2;
    case 2:
        nms_Entity_setSize($var3, var$15, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        if ($var2 >= 2)
            return $par1EntityLivingData;
        $var3 = new nms_EntityOcelot;
        var$3 = $this.$worldObj;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingData, $var3, var$3, var$4, var$5, var$6, var$7, var$8, $var2, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityOcelot_createChild = ($this, $par1EntityAgeable) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityOcelot;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityOcelot__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (!(var$2.$watchedObject.$value1 & 4) ? 0 : 1) {
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[145];
            if (var$3 !== null) {
                var$4 = var$3.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject;
            var$2 = $par1EntityAgeable.$dataWatcher;
            var$3 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$8 = jl_Integer_integerCache.data[145];
            if (var$8 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$9 = var$8.$value;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$9 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$9) {
                        var$6 = var$3.$key;
                        if (var$8 !== var$6 && !jl_Integer_equals(var$8, var$6) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$6 = var$3 === null ? null : var$3.$value0;
            var$3 = var$6.$watchedObject;
            if (var$7 === var$3)
                var$4 = 1;
            else if (!(var$3 instanceof jl_String))
                var$4 = 0;
            else {
                var$3 = var$3;
                var$4 = var$7.$nativeString !== var$3.$nativeString ? 0 : 1;
            }
            if (!var$4) {
                var$6.$watchedObject = var$7;
                var$6.$watched = 1;
                var$2.$objectChanged = 1;
            }
            var$2 = $par1EntityAgeable.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[144];
            if (var$3 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$3.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$10 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            var$2 = $par1EntityAgeable.$dataWatcher;
            var$4 = (var$10 | 4) << 24 >> 24;
            var$8 = jl_Byte_byteCache.data[var$4 + 128 | 0];
            var$3 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$9 = var$6.$value;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$9 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$9) {
                        var$7 = var$3.$key;
                        if (var$6 !== var$7 && !jl_Integer_equals(var$6, var$7) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$6 = var$3 === null ? null : var$3.$value0;
            var$3 = var$6.$watchedObject;
            if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$8.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$8;
                var$6.$watched = 1;
                var$2.$objectChanged = 1;
            }
            var$2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[146];
            if (var$3 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$4 = var$3.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$4 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
            var$2 = $par1EntityAgeable.$dataWatcher;
            var$4 = var$4 << 24 >> 24;
            var$7 = jl_Byte_byteCache.data[var$4 + 128 | 0];
            var$3 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$8 = jl_Integer_integerCache.data[146];
            if (var$8 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$9 = var$8.$value;
                var$5 = var$3.$elementData.data;
                var$3 = var$5[var$9 & (var$5.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$9) {
                        var$6 = var$3.$key;
                        if (var$8 !== var$6 && !jl_Integer_equals(var$8, var$6) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$6 = var$3 === null ? null : var$3.$value0;
            var$3 = var$6.$watchedObject;
            if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$7.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$7;
                var$6.$watched = 1;
                var$2.$objectChanged = 1;
            }
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
};
function nms_EntityChicken() {
    let a = this; nms_EntityAnimal.call(a);
    a.$field_70886_e = 0.0;
    a.$destPos = 0.0;
    a.$field_70884_g = 0.0;
    a.$field_70888_h = 0.0;
    a.$field_70889_i = 0.0;
    a.$timeUntilNextEgg = 0;
}
let nms_EntityChicken__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $this.$field_70889_i = 1.0;
        $this.$field_98056_d = 0.30000001192092896;
        $this.$field_98057_e = 0.699999988079071;
        var$2 = 0.30000001192092896;
        var$3 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        while (true) {
            var$6 = var$5 % 6000 | 0;
            if (((var$5 - var$6 | 0) + 5999 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
        $this.$timeUntilNextEgg = var$6 + 6000 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAISwimming;
        var$7.$theEntity3 = $this;
        var$7.$mutexBits = 4;
        $this.$navigator.$canSwim = 1;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 0;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAIPanic;
        var$7.$theEntityCreature = $this;
        var$7.$speed1 = 1.4;
        var$7.$mutexBits = 1;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 1;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAIMate;
        var$7.$theAnimal = $this;
        var$7.$theWorld2 = $this.$worldObj;
        var$7.$moveSpeed = 1.0;
        var$7.$mutexBits = 3;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 2;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        var$7 = $this.$tasks0;
        var$9 = new nms_EntityAITempt;
        nms_Item_$callClinit();
        var$5 = nms_Item_seeds.$itemID0;
        var$9.$temptedEntity = $this;
        var$9.$field_75282_b = 1.0;
        var$9.$breedingFood = var$5;
        var$9.$scaredByPlayerMovement = 0;
        var$9.$mutexBits = 3;
        var$8 = var$7.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$7;
        $par1World.$priority = 3;
        $par1World.$action = var$9;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = $par1World;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAIFollowParent;
        var$7.$childAnimal = $this;
        var$7.$field_75347_c = 1.1;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 4;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAIWander;
        var$7.$entity = $this;
        var$7.$speed = 1.0;
        var$7.$mutexBits = 1;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 5;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAIWatchClosest;
        var$7.$theWatcher = $this;
        var$7.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$7.$maxDistanceForPlayer = 6.0;
        var$7.$field_75331_e = 0.019999999552965164;
        var$7.$mutexBits = 2;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 6;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$7 = new nms_EntityAILookIdle;
        var$7.$idleEntity = $this;
        var$7.$mutexBits = 3;
        var$8 = $par1World.$taskEntries;
        var$9 = new nms_EntityAITaskEntry;
        var$9.$tasks = $par1World;
        var$9.$priority = 7;
        var$9.$action = var$7;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$10 = var$8.$array.data;
        var$11 = var$8.$size0;
        var$8.$size0 = var$11 + 1 | 0;
        var$10[var$11] = var$9;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityChicken__init_0 = var_0 => {
    let var_1 = new nms_EntityChicken();
    nms_EntityChicken__init_(var_1, var_0);
    return var_1;
},
nms_EntityChicken_isAIEnabled = $this => {
    return 1;
},
nms_EntityChicken_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (4.0 !== var$3.$baseValue) {
        var$3.$baseValue = 4.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.25 !== var$1.$baseValue) {
        var$1.$baseValue = 0.25;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityChicken_onLivingUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityAnimal_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$field_70886_e;
        $this.$field_70888_h = var$1;
        var$2 = $this.$destPos;
        $this.$field_70884_g = var$2;
        var$3 = var$2;
        var$4 = $this.$onGround;
        var$2 = var$3 + (!var$4 ? 4 : (-1)) * 0.3;
        $this.$destPos = var$2;
        if (var$2 < 0.0)
            $this.$destPos = 0.0;
        if ($this.$destPos > 1.0)
            $this.$destPos = 1.0;
        if (!var$4 && $this.$field_70889_i < 1.0)
            $this.$field_70889_i = 1.0;
        var$2 = $this.$field_70889_i * 0.9;
        $this.$field_70889_i = var$2;
        if (!var$4) {
            var$5 = $this.$motionY;
            if (var$5 < 0.0)
                $this.$motionY = var$5 * 0.6;
        }
        $this.$field_70886_e = var$1 + var$2 * 2.0;
        var$6 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[140];
        if (var$7 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$4 = var$7.$value;
            var$8 = var$6.$elementData.data;
            var$6 = var$8[var$4 & (var$8.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$4) {
                    var$9 = var$6.$key;
                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$6 = var$6 === null ? null : var$6.$value0;
        if (!(var$6.$watchedObject.$value >= 0 ? 0 : 1)) {
            var$6 = $this.$worldObj;
            if (!var$6.$isRemote) {
                var$4 = $this.$timeUntilNextEgg - 1 | 0;
                $this.$timeUntilNextEgg = var$4;
                if (var$4 <= 0) {
                    var$7 = $rt_s(2342);
                    var$1 = 1.0;
                    var$9 = $this.$rand;
                    var$10 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$10;
                    var$2 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
                    var$11 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$9.$seed = var$11;
                    var$2 = (var$2 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224 + 1.0;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 2:
        nms_World_playSoundAtEntity(var$6, $this, var$7, var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        nms_Item_$callClinit();
        var$4 = nms_Item_egg.$itemID0;
        var$6 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$6.$itemID = var$4;
        var$6.$stackSize = 1;
        var$6.$itemDamage = 0;
        var$7 = new nms_EntityItem;
        var$9 = $this.$worldObj;
        var$5 = $this.$posX;
        var$3 = $this.$posY + 0.0;
        var$12 = $this.$posZ;
        $ptr = 3;
    case 3:
        nms_EntityItem__init_(var$7, var$9, var$5, var$3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$7.$dataWatcher;
        var$9 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = ju_HashMap_entryByKey(var$9, jl_Integer_integerCache.data[138]);
        var$14 = var$9 === null ? null : var$9.$value0;
        if (!(var$6 !== var$14.$watchedObject ? 0 : 1)) {
            var$14.$watchedObject = var$6;
            var$14.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$14 = var$7.$dataWatcher;
        var$6 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = ju_HashMap_entryByKey(var$6, jl_Integer_integerCache.data[138]);
        (var$6 === null ? null : var$6.$value0).$watched = 1;
        var$14.$objectChanged = 1;
        var$7.$delayBeforeCanPickup = 10;
        var$6 = $this.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld(var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$11;
        var$15 = Long_lo(Long_shru(var$11, 17));
        while (true) {
            var$16 = var$15 % 6000 | 0;
            if (((var$15 - var$16 | 0) + 5999 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
        }
        $this.$timeUntilNextEgg = var$16 + 6000 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityChicken_fall = ($this, $par1) => {
    return;
},
nms_EntityChicken_getLivingSound = $this => {
    return $rt_s(2343);
},
nms_EntityChicken_getHurtSound = $this => {
    return $rt_s(2344);
},
nms_EntityChicken_getDeathSound = $this => {
    return $rt_s(2344);
},
nms_EntityChicken_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2345);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityChicken_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_feather.$itemID0;
},
nms_EntityChicken_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $var4, $var3, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        while (true) {
            $var4 = var$5 % 3 | 0;
            if (((var$5 - $var4 | 0) + 2 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
        $par1 = 1 + $par2 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $var3 = Long_lo(Long_shru(var$4, 17));
        $par2 = $par1 - 1 | 0;
        if (!($par1 & $par2))
            var$5 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var3)), 31));
        else
            while (true) {
                var$5 = $var3 % $par1 | 0;
                if ((($var3 - var$5 | 0) + $par2 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $var3 = Long_lo(Long_shru(var$4, 17));
            }
        $var3 = $var4 + var$5 | 0;
        $var4 = 0;
        var$8 = 0.0;
        var$9 = 138;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par1 = nms_Item_feather.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$10 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$12 = $this.$posX;
            var$13 = $this.$posY + var$8;
            var$14 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        a: {
            b: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break b;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$11 = jl_Integer_integerCache.data[128];
                    if (var$11 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        $var3 = var$11.$value;
                        var$15 = var$3.$elementData.data;
                        var$3 = var$15[$var3 & (var$15.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == $var3) {
                                var$10 = var$3.$key;
                                if (var$11 !== var$10 && !jl_Integer_equals(var$11, var$10) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & 1) ? 0 : 1)
                        break b;
                }
                $par1 = 0;
                break a;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            $par1 = nms_Item_chickenRaw.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$10 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$12 = $this.$posX;
            var$8 = $this.$posY + var$8;
            var$13 = $this.$posZ;
            $ptr = 2;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_chickenCooked.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$10 = new nms_EntityItem;
        var$11 = $this.$worldObj;
        var$12 = $this.$posX;
        var$8 = $this.$posY + var$8;
        var$13 = $this.$posZ;
        $ptr = 3;
        continue main;
    case 1:
        nms_EntityItem__init_(var$10, var$11, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = var$10.$dataWatcher;
        var$11 = var$16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[var$9]);
        var$17 = var$11 === null ? null : var$11.$value0;
        if (!(var$3 !== var$17.$watchedObject ? 0 : 1)) {
            var$17.$watchedObject = var$3;
            var$17.$watched = 1;
            var$16.$objectChanged = 1;
        }
        var$17 = var$10.$dataWatcher;
        var$3 = var$17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$9]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$17.$objectChanged = 1;
        var$10.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntityItem__init_(var$10, var$11, var$12, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = var$10.$dataWatcher;
        var$11 = var$16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[var$9]);
        var$17 = var$11 === null ? null : var$11.$value0;
        if (!(var$3 !== var$17.$watchedObject ? 0 : 1)) {
            var$17.$watchedObject = var$3;
            var$17.$watched = 1;
            var$16.$objectChanged = 1;
        }
        var$11 = var$10.$dataWatcher;
        var$3 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$9]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        var$10.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityItem__init_(var$10, var$11, var$12, var$8, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = var$10.$dataWatcher;
        var$11 = var$16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[var$9]);
        var$17 = var$11 === null ? null : var$11.$value0;
        if (!(var$3 !== var$17.$watchedObject ? 0 : 1)) {
            var$17.$watchedObject = var$3;
            var$17.$watched = 1;
            var$16.$objectChanged = 1;
        }
        var$11 = var$10.$dataWatcher;
        var$3 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$9]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        var$10.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par1 = nms_Item_feather.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$10 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$12 = $this.$posX;
            var$13 = $this.$posY + var$8;
            var$14 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        c: {
            d: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break d;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$11 = jl_Integer_integerCache.data[128];
                    if (var$11 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        $var3 = var$11.$value;
                        var$15 = var$3.$elementData.data;
                        var$3 = var$15[$var3 & (var$15.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == $var3) {
                                var$10 = var$3.$key;
                                if (var$11 !== var$10 && !jl_Integer_equals(var$11, var$10) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & 1) ? 0 : 1)
                        break d;
                }
                $par1 = 0;
                break c;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            $par1 = nms_Item_chickenRaw.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$10 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$12 = $this.$posX;
            var$8 = $this.$posY + var$8;
            var$13 = $this.$posZ;
            $ptr = 2;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_chickenCooked.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$10 = new nms_EntityItem;
        var$11 = $this.$worldObj;
        var$12 = $this.$posX;
        var$8 = $this.$posY + var$8;
        var$13 = $this.$posZ;
        $ptr = 3;
        continue main;
    case 5:
        nms_World_spawnEntityInWorld(var$3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_World_spawnEntityInWorld(var$3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $var4, $var3, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityChicken_isBreedingItem = ($this, $par1ItemStack) => {
    let var$2;
    a: {
        if ($par1ItemStack !== null) {
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$par1ItemStack.$itemID] instanceof nms_ItemSeeds) {
                var$2 = 1;
                break a;
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EntityChicken_createChild = ($this, $par1EntityAgeable) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityChicken;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityChicken__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, $ptr);
},
nms_GenLayerIsland = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerIsland_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, var$8, var$9;
    $var5 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var6 = 0;
    while ($var6 < $par4) {
        $var7 = 0;
        while ($var7 < $par3) {
            nms_GenLayer_initChunkSeed($this, Long_fromInt($par1 + $var7 | 0), Long_fromInt($par2 + $var6 | 0));
            var$8 = $var7 + $rt_imul($var6, $par3) | 0;
            var$9 = nms_GenLayer_nextInt($this, 10) ? 0 : 1;
            $var5.data[var$8] = var$9;
            $var7 = $var7 + 1 | 0;
        }
        $var6 = $var6 + 1 | 0;
    }
    if ($par1 > ( -$par3 | 0) && $par1 <= 0 && $par2 > ( -$par4 | 0) && $par2 <= 0)
        $var5.data[( -$par1 | 0) + $rt_imul( -$par2 | 0, $par3) | 0] = 1;
    return $var5;
},
nms_GenLayerFuzzyZoom = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerFuzzyZoom_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, var$14, $var20, $var14, var$17, $var15, $var12_0, var$20, $var16, $var17, var$23, $var18, $var19, $var13_0;
    $var5 = $par1 >> 1;
    $var6 = $par2 >> 1;
    $var7 = ($par3 >> 1) + 3 | 0;
    $var8 = ($par4 >> 1) + 3 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($var7 * 2 | 0, $var8) * 2 | 0);
    $var11 = $var7 << 1;
    $var12 = 0;
    $var13 = $var8 - 1 | 0;
    var$14 = $var7 - 1 | 0;
    while ($var12 < $var13) {
        $var20 = $var9.data;
        $var14 = $rt_imul($var12 << 1, $var11);
        var$17 = $rt_imul($var12 + 0 | 0, $var7);
        $var15 = $var20[0 + var$17 | 0];
        $var12_0 = $var12 + 1 | 0;
        var$20 = $rt_imul($var12_0, $var7);
        $var16 = $var20[0 + var$20 | 0];
        $var17 = 0;
        while ($var17 < var$14) {
            var$23 = $var10.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt(($var17 + $var5 | 0) << 1), Long_fromInt(($var12 + $var6 | 0) << 1));
            $var17 = $var17 + 1 | 0;
            $var18 = $var20[$var17 + var$17 | 0];
            $var19 = $var20[$var17 + var$20 | 0];
            var$23[$var14] = $var15;
            $var8 = $var14 + 1 | 0;
            var$23[$var14 + $var11 | 0] = nms_GenLayer_nextInt($this, 2) ? $var16 : $var15;
            var$23[$var8] = nms_GenLayer_nextInt($this, 2) ? $var18 : $var15;
            $var14 = $var8 + 1 | 0;
            $var8 = $var8 + $var11 | 0;
            $var13_0 = nms_GenLayer_nextInt($this, 4);
            if ($var13_0)
                $var15 = $var13_0 == 1 ? $var18 : $var13_0 != 2 ? $var19 : $var16;
            var$23[$var8] = $var15;
            $var15 = $var18;
            $var16 = $var19;
        }
        $var12 = $var12_0;
    }
    $var20 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var13 = 0;
    $var14 = $par2 & 1;
    $par2 = $par1 & 1;
    while ($var13 < $par4) {
        jl_System_fastArraycopy($var10, $rt_imul($var13 + $var14 | 0, $var11) + $par2 | 0, $var20, $rt_imul($var13, $par3), $par3);
        $var13 = $var13 + 1 | 0;
    }
    return $var20;
},
nms_GenLayerAddIsland = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerAddIsland_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, var$13, $var13, $var17, $var14, $var15, $var16, $var12_0;
    $var5 = $par1 - 1 | 0;
    $var6 = $par2 - 1 | 0;
    $var7 = $par3 + 2 | 0;
    $var8 = $par4 + 2 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var11 = 0;
    while ($var11 < $par4) {
        $var12 = 0;
        while ($var12 < $par3) {
            a: {
                b: {
                    var$13 = $var9.data;
                    $var6 = $var12 + 0 | 0;
                    $var8 = $rt_imul($var11 + 0 | 0, $var7);
                    $var13 = var$13[$var6 + $var8 | 0];
                    $var17 = $var12 + 2 | 0;
                    $var14 = var$13[$var17 + $var8 | 0];
                    $var8 = $rt_imul($var11 + 2 | 0, $var7);
                    $var15 = var$13[$var6 + $var8 | 0];
                    $var16 = var$13[$var17 + $var8 | 0];
                    $var12_0 = $var12 + 1 | 0;
                    $var17 = var$13[$var12_0 + $rt_imul($var11 + 1 | 0, $var7) | 0];
                    nms_GenLayer_initChunkSeed($this, Long_fromInt($var12 + $par1 | 0), Long_fromInt($var11 + $par2 | 0));
                    if (!$var17) {
                        if ($var13)
                            break b;
                        if ($var14)
                            break b;
                        if ($var15)
                            break b;
                        if ($var16)
                            break b;
                    }
                    c: {
                        if ($var17 > 0) {
                            if (!$var13)
                                break c;
                            if (!$var14)
                                break c;
                            if (!$var15)
                                break c;
                            if (!$var16)
                                break c;
                        }
                        $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = $var17;
                        break a;
                    }
                    if (nms_GenLayer_nextInt($this, 5)) {
                        $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = $var17;
                        break a;
                    }
                    nms_BiomeGenBase_$callClinit();
                    if ($var17 != nms_BiomeGenBase_icePlains.$biomeID) {
                        $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = 0;
                        break a;
                    }
                    $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = nms_BiomeGenBase_frozenOcean.$biomeID;
                    break a;
                }
                if (!$var13) {
                    $var6 = 1;
                    $var13 = 1;
                } else {
                    $var6 = 2;
                    if (nms_GenLayer_nextInt($this, 1))
                        $var13 = 1;
                }
                if (!$var14) {
                    $var8 = $var6;
                    $var14 = $var13;
                } else {
                    $var8 = $var6 + 1 | 0;
                    if (nms_GenLayer_nextInt($this, $var6))
                        $var14 = $var13;
                }
                if (!$var15) {
                    $var6 = $var8;
                    $var15 = $var14;
                } else {
                    $var6 = $var8 + 1 | 0;
                    if (nms_GenLayer_nextInt($this, $var8))
                        $var15 = $var14;
                }
                if (!$var16)
                    $var16 = $var15;
                else if (nms_GenLayer_nextInt($this, $var6))
                    $var16 = $var15;
                if (!nms_GenLayer_nextInt($this, 3))
                    $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = $var16;
                else {
                    nms_BiomeGenBase_$callClinit();
                    if ($var16 != nms_BiomeGenBase_icePlains.$biomeID)
                        $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = 0;
                    else
                        $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = nms_BiomeGenBase_frozenOcean.$biomeID;
                }
            }
            $var12 = $var12_0;
        }
        $var11 = $var11 + 1 | 0;
    }
    return $var10;
},
nms_GenLayerZoom = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerZoom_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, $var13, var$14, $var20, $var14, $var15, $var12_0, var$19, $var16, $var17, var$22, $var18, $var19, var$25, $var13_0;
    $var5 = $par1 >> 1;
    $var6 = $par2 >> 1;
    $var7 = ($par3 >> 1) + 3 | 0;
    $var8 = ($par4 >> 1) + 3 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($var7 * 2 | 0, $var8) * 2 | 0);
    $var11 = $var7 << 1;
    $var12 = 0;
    $var13 = $var8 - 1 | 0;
    var$14 = $var7 - 1 | 0;
    while ($var12 < $var13) {
        $var20 = $var9.data;
        $var14 = $rt_imul($var12 << 1, $var11);
        $var8 = $rt_imul($var12 + 0 | 0, $var7);
        $var15 = $var20[0 + $var8 | 0];
        $var12_0 = $var12 + 1 | 0;
        var$19 = $rt_imul($var12_0, $var7);
        $var16 = $var20[0 + var$19 | 0];
        $var17 = 0;
        while ($var17 < var$14) {
            var$22 = $var10.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt(($var17 + $var5 | 0) << 1), Long_fromInt(($var12 + $var6 | 0) << 1));
            $var17 = $var17 + 1 | 0;
            $var18 = $var20[$var17 + $var8 | 0];
            $var19 = $var20[$var17 + var$19 | 0];
            var$22[$var14] = $var15;
            var$25 = $var14 + 1 | 0;
            var$22[$var14 + $var11 | 0] = nms_GenLayer_nextInt($this, 2) ? $var16 : $var15;
            var$22[var$25] = nms_GenLayer_nextInt($this, 2) ? $var18 : $var15;
            $var14 = var$25 + 1 | 0;
            var$22[var$25 + $var11 | 0] = nms_GenLayerZoom_modeOrRandom($this, $var15, $var18, $var16, $var19);
            $var15 = $var18;
            $var16 = $var19;
        }
        $var12 = $var12_0;
    }
    $var20 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var13 = 0;
    $par2 = $par2 & 1;
    $var13_0 = $par1 & 1;
    while ($var13 < $par4) {
        jl_System_fastArraycopy($var10, $rt_imul($var13 + $par2 | 0, $var11) + $var13_0 | 0, $var20, $rt_imul($var13, $par3), $par3);
        $var13 = $var13 + 1 | 0;
    }
    return $var20;
},
nms_GenLayerZoom_modeOrRandom = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $var5;
    var$5 = $rt_compare($par2, $par3);
    if (!var$5 && $par3 == $par4)
        return $par2;
    var$6 = $rt_compare($par1, $par2);
    if (!var$6 && $par1 == $par3)
        return $par1;
    if (!var$6 && $par1 == $par4)
        return $par1;
    var$7 = $rt_compare($par1, $par3);
    if (!var$7 && $par1 == $par4)
        return $par1;
    if (!var$6 && $par3 != $par4)
        return $par1;
    if (!var$7 && $par2 != $par4)
        return $par1;
    var$8 = $rt_compare($par1, $par4);
    if (!var$8 && var$5)
        return $par1;
    if ($par2 == $par1 && $par3 != $par4)
        return $par2;
    if (!var$5 && var$8)
        return $par2;
    $var5 = $rt_compare($par2, $par4);
    if (!$var5 && var$7)
        return $par2;
    if ($par3 == $par1 && $var5)
        return $par3;
    if ($par3 == $par2 && var$8)
        return $par3;
    if ($par3 == $par4 && var$6)
        return $par3;
    if ($par4 == $par1 && var$5)
        return $par3;
    if ($par4 == $par2 && var$7)
        return $par3;
    if ($par4 == $par3 && var$6)
        return $par3;
    $var5 = nms_GenLayer_nextInt($this, 4);
    if ($var5)
        $par1 = $var5 == 1 ? $par2 : $var5 != 2 ? $par4 : $par3;
    return $par1;
},
nms_GenLayerAddSnow = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerAddSnow_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, var$13, $var12_0, $var13;
    $var5 = $par1 - 1 | 0;
    $var6 = $par2 - 1 | 0;
    $var7 = $par3 + 2 | 0;
    $var8 = $par4 + 2 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var11 = 0;
    while ($var11 < $par4) {
        $var12 = 0;
        while ($var12 < $par3) {
            var$13 = $var9.data;
            $var12_0 = $var12 + 1 | 0;
            $var13 = var$13[$var12_0 + $rt_imul($var11 + 1 | 0, $var7) | 0];
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var12 + $par1 | 0), Long_fromInt($var11 + $par2 | 0));
            if (!$var13)
                $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = 0;
            else {
                if (nms_GenLayer_nextInt($this, 5))
                    $var6 = 1;
                else {
                    nms_BiomeGenBase_$callClinit();
                    $var6 = nms_BiomeGenBase_icePlains.$biomeID;
                }
                $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = $var6;
            }
            $var12 = $var12_0;
        }
        $var11 = $var11 + 1 | 0;
    }
    return $var10;
},
nms_GenLayerAddMushroomIsland = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerAddMushroomIsland_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, var$13, $var13, $var17, $var14, $var15, $var16, $var12_0;
    $var5 = $par1 - 1 | 0;
    $var6 = $par2 - 1 | 0;
    $var7 = $par3 + 2 | 0;
    $var8 = $par4 + 2 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var11 = 0;
    while ($var11 < $par4) {
        $var12 = 0;
        while ($var12 < $par3) {
            var$13 = $var9.data;
            $var6 = $var12 + 0 | 0;
            $var8 = $rt_imul($var11 + 0 | 0, $var7);
            $var13 = var$13[$var6 + $var8 | 0];
            $var17 = $var12 + 2 | 0;
            $var14 = var$13[$var17 + $var8 | 0];
            $var8 = $rt_imul($var11 + 2 | 0, $var7);
            $var15 = var$13[$var6 + $var8 | 0];
            $var16 = var$13[$var17 + $var8 | 0];
            $var12_0 = $var12 + 1 | 0;
            $var17 = var$13[$var12_0 + $rt_imul($var11 + 1 | 0, $var7) | 0];
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var12 + $par1 | 0), Long_fromInt($var11 + $par2 | 0));
            if (!$var17 && !$var13 && !$var14 && !$var15 && !$var16 && !nms_GenLayer_nextInt($this, 100)) {
                var$13 = $var10.data;
                $var6 = $var12 + $rt_imul($var11, $par3) | 0;
                nms_BiomeGenBase_$callClinit();
                var$13[$var6] = nms_BiomeGenBase_mushroomIsland.$biomeID;
            } else
                $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = $var17;
            $var12 = $var12_0;
        }
        $var11 = $var11 + 1 | 0;
    }
    return $var10;
},
nms_GenLayerRiverInit = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerRiverInit_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, var$10, var$11;
    $var5 = $this.$parent.$getInts($par1, $par2, $par3, $par4);
    $var6 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var7 = 0;
    while ($var7 < $par4) {
        $var8 = 0;
        while ($var8 < $par3) {
            var$9 = $var5.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var8 + $par1 | 0), Long_fromInt($var7 + $par2 | 0));
            var$10 = $var8 + $rt_imul($var7, $par3) | 0;
            var$11 = var$9[var$10] <= 0 ? 0 : nms_GenLayer_nextInt($this, 2) + 2 | 0;
            $var6.data[var$10] = var$11;
            $var8 = $var8 + 1 | 0;
        }
        $var7 = $var7 + 1 | 0;
    }
    return $var6;
},
nms_GenLayerRiver = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerRiver_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, var$13, $var13, $var14, $var12_0, $var15, $var16, $var17;
    $var5 = $par1 - 1 | 0;
    $var6 = $par2 - 1 | 0;
    $var7 = $par3 + 2 | 0;
    $var8 = $par4 + 2 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var11 = 0;
    while ($var11 < $par4) {
        $var12 = 0;
        while ($var12 < $par3) {
            a: {
                b: {
                    var$13 = $var9.data;
                    $par1 = $var12 + 0 | 0;
                    $par2 = $rt_imul($var11 + 1 | 0, $var7);
                    $var13 = var$13[$par1 + $par2 | 0];
                    $var14 = var$13[($var12 + 2 | 0) + $par2 | 0];
                    $var12_0 = $var12 + 1 | 0;
                    $var15 = var$13[$var12_0 + $rt_imul($var11 + 0 | 0, $var7) | 0];
                    $var16 = var$13[$var12_0 + $rt_imul($var11 + 2 | 0, $var7) | 0];
                    $var17 = var$13[$var12_0 + $par2 | 0];
                    if (!$var17)
                        break b;
                    if (!$var13)
                        break b;
                    if (!$var14)
                        break b;
                    if (!$var15)
                        break b;
                    if (!$var16)
                        break b;
                    if ($var17 != $var13)
                        break b;
                    if ($var17 != $var15)
                        break b;
                    if ($var17 != $var14)
                        break b;
                    if ($var17 != $var16)
                        break b;
                    $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = (-1);
                    break a;
                }
                var$13 = $var10.data;
                $par1 = $var12 + $rt_imul($var11, $par3) | 0;
                nms_BiomeGenBase_$callClinit();
                var$13[$par1] = nms_BiomeGenBase_river.$biomeID;
            }
            $var12 = $var12_0;
        }
        $var11 = $var11 + 1 | 0;
    }
    return $var10;
},
nms_GenLayerSmooth = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerSmooth_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, $var9, $var10, $var11, $var12, var$13, $var13, $var14, $var12_0, $var15, $var16, $var17;
    $var5 = $par1 - 1 | 0;
    $var6 = $par2 - 1 | 0;
    $var7 = $par3 + 2 | 0;
    $var8 = $par4 + 2 | 0;
    $var9 = $this.$parent.$getInts($var5, $var6, $var7, $var8);
    $var10 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var11 = 0;
    while ($var11 < $par4) {
        $var12 = 0;
        while ($var12 < $par3) {
            var$13 = $var9.data;
            $var6 = $var12 + 0 | 0;
            $var8 = $rt_imul($var11 + 1 | 0, $var7);
            $var13 = var$13[$var6 + $var8 | 0];
            $var14 = var$13[($var12 + 2 | 0) + $var8 | 0];
            $var12_0 = $var12 + 1 | 0;
            $var15 = var$13[$var12_0 + $rt_imul($var11 + 0 | 0, $var7) | 0];
            $var16 = var$13[$var12_0 + $rt_imul($var11 + 2 | 0, $var7) | 0];
            $var17 = var$13[$var12_0 + $var8 | 0];
            $var6 = $rt_compare($var13, $var14);
            if (!$var6 && $var15 == $var16) {
                nms_GenLayer_initChunkSeed($this, Long_fromInt($var12 + $par1 | 0), Long_fromInt($var11 + $par2 | 0));
                if (!nms_GenLayer_nextInt($this, 2))
                    $var15 = $var13;
            } else {
                if ($var6)
                    $var13 = $var17;
                if ($var15 != $var16)
                    $var15 = $var13;
            }
            $var10.data[$var12 + $rt_imul($var11, $par3) | 0] = $var15;
            $var12 = $var12_0;
        }
        $var11 = $var11 + 1 | 0;
    }
    return $var10;
};
function nms_GenLayerBiome() {
    nms_GenLayer.call(this);
    this.$allowedBiomes = null;
}
let nms_GenLayerBiome__init_0 = ($this, $par1, $par3GenLayer, $par4WorldType) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    nms_GenLayer__init_($this, $par1);
    var$4 = $rt_createArray(nms_BiomeGenBase, 7);
    var$5 = var$4.data;
    nms_BiomeGenBase_$callClinit();
    var$6 = nms_BiomeGenBase_desert;
    var$5[0] = var$6;
    var$7 = nms_BiomeGenBase_forest;
    var$5[1] = var$7;
    var$8 = nms_BiomeGenBase_extremeHills;
    var$5[2] = var$8;
    var$9 = nms_BiomeGenBase_swampland;
    var$5[3] = var$9;
    var$10 = nms_BiomeGenBase_plains;
    var$5[4] = var$10;
    var$11 = nms_BiomeGenBase_taiga;
    var$5[5] = var$11;
    var$5[6] = nms_BiomeGenBase_jungle;
    $this.$allowedBiomes = var$4;
    $this.$parent = $par3GenLayer;
    if ($par4WorldType === nms_WorldType_DEFAULT_1_1)
        $this.$allowedBiomes = $rt_wrapArray(nms_BiomeGenBase, [var$6, var$7, var$8, var$9, var$10, var$11]);
},
nms_GenLayerBiome__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_GenLayerBiome();
    nms_GenLayerBiome__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_GenLayerBiome_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, var$10, $var9, var$12, $var10;
    $var5 = $this.$parent.$getInts($par1, $par2, $par3, $par4);
    $var6 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var7 = 0;
    while ($var7 < $par4) {
        $var8 = 0;
        while ($var8 < $par3) {
            var$9 = $var5.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var8 + $par1 | 0), Long_fromInt($var7 + $par2 | 0));
            var$10 = $var8 + $rt_imul($var7, $par3) | 0;
            $var9 = var$9[var$10];
            if (!$var9)
                $var6.data[var$10] = 0;
            else {
                nms_BiomeGenBase_$callClinit();
                if ($var9 == nms_BiomeGenBase_mushroomIsland.$biomeID)
                    $var6.data[var$10] = $var9;
                else if ($var9 == 1) {
                    var$12 = $var6.data;
                    var$9 = $this.$allowedBiomes.data;
                    var$12[var$10] = var$9[nms_GenLayer_nextInt($this, var$9.length)].$biomeID;
                } else {
                    var$9 = $this.$allowedBiomes.data;
                    $var10 = var$9[nms_GenLayer_nextInt($this, var$9.length)].$biomeID;
                    if ($var10 == nms_BiomeGenBase_taiga.$biomeID)
                        $var6.data[var$10] = $var10;
                    else
                        $var6.data[var$10] = nms_BiomeGenBase_icePlains.$biomeID;
                }
            }
            $var8 = $var8 + 1 | 0;
        }
        $var7 = $var7 + 1 | 0;
    }
    return $var6;
},
nms_GenLayerHills = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerHills_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, $var8, $var8_0, var$8, $var5, $var6, $var7, var$12, var$13, $var14, $var9, var$16, $var11, $var12, $var13;
    var$5 = $this.$parent;
    $var8 = $par1 - 1 | 0;
    $var8_0 = $par2 - 1 | 0;
    var$8 = $par3 + 2 | 0;
    $var5 = var$5.$getInts($var8, $var8_0, var$8, $par4 + 2 | 0);
    $var6 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var7 = 0;
    while ($var7 < $par4) {
        $var8 = 0;
        while ($var8 < $par3) {
            var$12 = $var5.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var8 + $par1 | 0), Long_fromInt($var7 + $par2 | 0));
            $var8_0 = $var8 + 1 | 0;
            var$13 = $var7 + 1 | 0;
            $var14 = $rt_imul(var$13, var$8);
            $var9 = var$12[$var8_0 + $var14 | 0];
            if (nms_GenLayer_nextInt($this, 3))
                $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
            else {
                nms_BiomeGenBase_$callClinit();
                if ($var9 == nms_BiomeGenBase_desert.$biomeID)
                    var$16 = nms_BiomeGenBase_desertHills.$biomeID;
                else {
                    var$16 = nms_BiomeGenBase_forest.$biomeID;
                    if ($var9 == var$16)
                        var$16 = nms_BiomeGenBase_forestHills.$biomeID;
                    else if ($var9 == nms_BiomeGenBase_taiga.$biomeID)
                        var$16 = nms_BiomeGenBase_taigaHills.$biomeID;
                    else if ($var9 != nms_BiomeGenBase_plains.$biomeID)
                        var$16 = $var9 == nms_BiomeGenBase_icePlains.$biomeID ? nms_BiomeGenBase_iceMountains.$biomeID : $var9 != nms_BiomeGenBase_jungle.$biomeID ? $var9 : nms_BiomeGenBase_jungleHills.$biomeID;
                }
                if (var$16 == $var9)
                    $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
                else {
                    $var11 = var$12[$var8_0 + $rt_imul(var$13 - 1 | 0, var$8) | 0];
                    $var12 = var$12[($var8_0 + 1 | 0) + $var14 | 0];
                    $var13 = var$12[($var8_0 - 1 | 0) + $var14 | 0];
                    $var14 = var$12[$var8_0 + $rt_imul(var$13 + 1 | 0, var$8) | 0];
                    if ($var11 == $var9 && $var12 == $var9 && $var13 == $var9 && $var14 == $var9)
                        $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = var$16;
                    else
                        $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
                }
            }
            $var8 = $var8_0;
        }
        $var7 = $var7 + 1 | 0;
    }
    return $var6;
};
function nms_GenLayerRiverMix() {
    let a = this; nms_GenLayer.call(a);
    a.$biomePatternGeneratorChain = null;
    a.$riverPatternGeneratorChain = null;
}
let nms_GenLayerRiverMix_initWorldGenSeed = ($this, $par1) => {
    nms_GenLayer_initWorldGenSeed($this.$biomePatternGeneratorChain, $par1);
    nms_GenLayer_initWorldGenSeed($this.$riverPatternGeneratorChain, $par1);
    nms_GenLayer_initWorldGenSeed($this, $par1);
},
nms_GenLayerRiverMix_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, $var7, $var8, var$9, var$10;
    $var5 = nms_GenLayerSmooth_getInts($this.$biomePatternGeneratorChain, $par1, $par2, $par3, $par4);
    $var6 = nms_GenLayerSmooth_getInts($this.$riverPatternGeneratorChain, $par1, $par2, $par3, $par4);
    $par1 = $rt_imul($par3, $par4);
    $var7 = nms_IntCache_getIntCache($par1);
    $var8 = 0;
    while ($var8 < $par1) {
        var$9 = $var5.data;
        $par2 = var$9[$var8];
        nms_BiomeGenBase_$callClinit();
        if ($par2 == nms_BiomeGenBase_ocean.$biomeID)
            $var7.data[$var8] = var$9[$var8];
        else {
            var$10 = $var6.data;
            if (var$10[$var8] < 0)
                $var7.data[$var8] = var$9[$var8];
            else if (var$9[$var8] == nms_BiomeGenBase_icePlains.$biomeID)
                $var7.data[$var8] = nms_BiomeGenBase_frozenRiver.$biomeID;
            else if (var$9[$var8] != nms_BiomeGenBase_mushroomIsland.$biomeID && var$9[$var8] != nms_BiomeGenBase_mushroomIslandShore.$biomeID)
                $var7.data[$var8] = var$10[$var8];
            else
                $var7.data[$var8] = nms_BiomeGenBase_mushroomIslandShore.$biomeID;
        }
        $var8 = $var8 + 1 | 0;
    }
    return $var7;
},
nms_GenLayerVoronoiZoom = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerVoronoiZoom_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, $var7, $var8, $var9, $var10, $var11, $var12, $var14, $var15, var$15, $var50, $var16, $var15_0, $var13, $var17, $var18, $var18_0, var$23, $var37, var$25, $var21, $var23, var$28, $var25, $var27, $var29, $var31, $var33, $var35, $var38, $var39, $var40, $var41, var$39, $var44, var$41, $var46, $var42, $var48, var$45;
    var$5 = $par1 + (-2) | 0;
    var$6 = $par2 + (-2) | 0;
    $var7 = var$5 >> 2;
    $var8 = var$6 >> 2;
    $var9 = ($par3 >> 2) + 3 | 0;
    $var10 = ($par4 >> 2) + 3 | 0;
    $var11 = $this.$parent.$getInts($var7, $var8, $var9, $var10);
    $var12 = $var9 << 2;
    $var14 = nms_IntCache_getIntCache($rt_imul($var12, $var10 << 2));
    $var15 = 0;
    $var10 = $var10 - 1 | 0;
    var$15 = $var9 - 1 | 0;
    while ($var15 < $var10) {
        $var50 = $var11.data;
        $par1 = $rt_imul($var15 + 0 | 0, $var9);
        $var16 = $var50[0 + $par1 | 0];
        $var15_0 = $var15 + 1 | 0;
        $var13 = $rt_imul($var15_0, $var9);
        $var17 = $var50[0 + $var13 | 0];
        $var18 = 0;
        while ($var18 < var$15) {
            $var18_0 = $var18 + $var7 | 0;
            var$23 = Long_fromInt($var18_0 << 2);
            $var37 = $var15 + $var8 | 0;
            var$25 = Long_fromInt($var37 << 2);
            nms_GenLayer_initChunkSeed($this, var$23, var$25);
            $var21 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6;
            $var23 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6;
            var$28 = Long_fromInt(($var18_0 + 1 | 0) << 2);
            nms_GenLayer_initChunkSeed($this, var$28, var$25);
            $var25 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6 + 4.0;
            $var27 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6;
            var$25 = Long_fromInt(($var37 + 1 | 0) << 2);
            nms_GenLayer_initChunkSeed($this, var$23, var$25);
            $var29 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6;
            $var31 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6 + 4.0;
            nms_GenLayer_initChunkSeed($this, var$28, var$25);
            $var33 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6 + 4.0;
            $var35 = (nms_GenLayer_nextInt($this, 1024) / 1024.0 - 0.5) * 3.6 + 4.0;
            $var18_0 = $var18 + 1 | 0;
            $var37 = $var50[$var18_0 + $par1 | 0];
            $var38 = $var50[$var18_0 + $var13 | 0];
            $var39 = 0;
            while ($var39 < 4) {
                $var40 = $rt_imul(($var15 << 2) + $var39 | 0, $var12) + ($var18 << 2) | 0;
                $var41 = 0;
                while ($var41 < 4) {
                    var$39 = $var39;
                    $var44 = var$39 - $var23;
                    $var44 = $var44 * $var44;
                    var$41 = $var41;
                    $var46 = var$41 - $var21;
                    $var42 = $var44 + $var46 * $var46;
                    $var44 = var$39 - $var27;
                    $var44 = $var44 * $var44;
                    $var46 = var$41 - $var25;
                    $var44 = $var44 + $var46 * $var46;
                    $var46 = var$39 - $var31;
                    $var46 = $var46 * $var46;
                    $var48 = var$41 - $var29;
                    $var46 = $var46 + $var48 * $var48;
                    $var48 = var$39 - $var35;
                    $var48 = $var48 * $var48;
                    var$39 = var$41 - $var33;
                    $var48 = $var48 + var$39 * var$39;
                    if ($var42 < $var44 && $var42 < $var46 && $var42 < $var48) {
                        var$45 = $var14.data;
                        $par2 = $var40 + 1 | 0;
                        var$45[$var40] = $var16;
                    } else if ($var44 < $var42 && $var44 < $var46 && $var44 < $var48) {
                        var$45 = $var14.data;
                        $par2 = $var40 + 1 | 0;
                        var$45[$var40] = $var37;
                    } else if ($var46 < $var42 && $var46 < $var44 && $var46 < $var48) {
                        var$45 = $var14.data;
                        $par2 = $var40 + 1 | 0;
                        var$45[$var40] = $var17;
                    } else {
                        var$45 = $var14.data;
                        $par2 = $var40 + 1 | 0;
                        var$45[$var40] = $var38;
                    }
                    $var41 = $var41 + 1 | 0;
                    $var40 = $par2;
                }
                $var39 = $var39 + 1 | 0;
            }
            $var16 = $var37;
            $var17 = $var38;
            $var18 = $var18_0;
        }
        $var15 = $var15_0;
    }
    $var50 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var16 = 0;
    $par2 = var$6 & 3;
    $var10 = var$5 & 3;
    while ($var16 < $par4) {
        jl_System_fastArraycopy($var14, $rt_imul($var16 + $par2 | 0, $var12) + $var10 | 0, $var50, $rt_imul($var16, $par3), $par3);
        $var16 = $var16 + 1 | 0;
    }
    return $var50;
},
nms_GenLayerShore = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerShore_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, $var8, $var8_0, var$8, $var5, $var6, $var7, var$12, var$13, $var13, $var9, $var10, $var11, $var12, $var10_0, $var11_0;
    var$5 = $this.$parent;
    $var8 = $par1 - 1 | 0;
    $var8_0 = $par2 - 1 | 0;
    var$8 = $par3 + 2 | 0;
    $var5 = var$5.$getInts($var8, $var8_0, var$8, $par4 + 2 | 0);
    $var6 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var7 = 0;
    while ($var7 < $par4) {
        $var8 = 0;
        while ($var8 < $par3) {
            var$12 = $var5.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var8 + $par1 | 0), Long_fromInt($var7 + $par2 | 0));
            $var8_0 = $var8 + 1 | 0;
            var$13 = $var7 + 1 | 0;
            $var13 = $rt_imul(var$13, var$8);
            $var9 = var$12[$var8_0 + $var13 | 0];
            nms_BiomeGenBase_$callClinit();
            if ($var9 == nms_BiomeGenBase_mushroomIsland.$biomeID) {
                $var10 = var$12[$var8_0 + $rt_imul(var$13 - 1 | 0, var$8) | 0];
                $var11 = var$12[($var8_0 + 1 | 0) + $var13 | 0];
                $var12 = var$12[($var8_0 - 1 | 0) + $var13 | 0];
                $var13 = var$12[$var8_0 + $rt_imul(var$13 + 1 | 0, var$8) | 0];
                var$13 = nms_BiomeGenBase_ocean.$biomeID;
                if ($var10 != var$13 && $var11 != var$13 && $var12 != var$13 && $var13 != var$13)
                    $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
                else
                    $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = nms_BiomeGenBase_mushroomIslandShore.$biomeID;
            } else {
                $var10_0 = nms_BiomeGenBase_ocean.$biomeID;
                if ($var9 != $var10_0 && $var9 != nms_BiomeGenBase_river.$biomeID && $var9 != nms_BiomeGenBase_swampland.$biomeID && $var9 != nms_BiomeGenBase_extremeHills.$biomeID) {
                    $var10 = var$12[$var8_0 + $rt_imul(var$13 - 1 | 0, var$8) | 0];
                    $var11 = var$12[($var8_0 + 1 | 0) + $var13 | 0];
                    $var12 = var$12[($var8_0 - 1 | 0) + $var13 | 0];
                    $var13 = var$12[$var8_0 + $rt_imul(var$13 + 1 | 0, var$8) | 0];
                    if ($var10 != $var10_0 && $var11 != $var10_0 && $var12 != $var10_0 && $var13 != $var10_0)
                        $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
                    else
                        $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = nms_BiomeGenBase_beach.$biomeID;
                } else {
                    $var11 = nms_BiomeGenBase_extremeHills.$biomeID;
                    if ($var9 != $var11)
                        $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
                    else {
                        $var10_0 = var$12[$var8_0 + $rt_imul(var$13 - 1 | 0, var$8) | 0];
                        $var11_0 = var$12[($var8_0 + 1 | 0) + $var13 | 0];
                        $var12 = var$12[($var8_0 - 1 | 0) + $var13 | 0];
                        $var13 = var$12[$var8_0 + $rt_imul(var$13 + 1 | 0, var$8) | 0];
                        if ($var10_0 == $var11 && $var11_0 == $var11 && $var12 == $var11 && $var13 == $var11)
                            $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = $var9;
                        else
                            $var6.data[$var8 + $rt_imul($var7, $par3) | 0] = nms_BiomeGenBase_extremeHillsEdge.$biomeID;
                    }
                }
            }
            $var8 = $var8_0;
        }
        $var7 = $var7 + 1 | 0;
    }
    return $var6;
},
nms_GenLayerSwampRivers = $rt_classWithoutFields(nms_GenLayer),
nms_GenLayerSwampRivers_getInts = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, $var8, $var9, var$8, $var5, $var6, $var7, $var8_0, var$13;
    var$5 = $this.$parent;
    $var8 = $par1 - 1 | 0;
    $var9 = $par2 - 1 | 0;
    var$8 = $par3 + 2 | 0;
    $var5 = var$5.$getInts($var8, $var9, var$8, $par4 + 2 | 0);
    $var6 = nms_IntCache_getIntCache($rt_imul($par3, $par4));
    $var7 = 0;
    while ($var7 < $par4) {
        $var8_0 = 0;
        while ($var8_0 < $par3) {
            var$13 = $var5.data;
            nms_GenLayer_initChunkSeed($this, Long_fromInt($var8_0 + $par1 | 0), Long_fromInt($var7 + $par2 | 0));
            $var8 = $var8_0 + 1 | 0;
            $var9 = var$13[$var8 + $rt_imul($var7 + 1 | 0, var$8) | 0];
            nms_BiomeGenBase_$callClinit();
            if (!($var9 == nms_BiomeGenBase_swampland.$biomeID && !nms_GenLayer_nextInt($this, 6)) && !(!($var9 != nms_BiomeGenBase_jungle.$biomeID && $var9 != nms_BiomeGenBase_jungleHills.$biomeID) && !nms_GenLayer_nextInt($this, 8)))
                $var6.data[$var8_0 + $rt_imul($var7, $par3) | 0] = $var9;
            else
                $var6.data[$var8_0 + $rt_imul($var7, $par3) | 0] = nms_BiomeGenBase_river.$biomeID;
            $var8_0 = $var8;
        }
        $var7 = $var7 + 1 | 0;
    }
    return $var6;
},
jt_DecimalFormat$1 = $rt_classWithoutFields(),
jt_DecimalFormat$1_$SwitchMap$java$math$RoundingMode = null,
jt_DecimalFormat$1_$callClinit = () => {
    jt_DecimalFormat$1_$callClinit = $rt_eraseClinit(jt_DecimalFormat$1);
    jt_DecimalFormat$1__clinit_();
},
jt_DecimalFormat$1__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createIntArray((jm_RoundingMode_$VALUES.$clone0()).data.length);
    var$2 = var$1.data;
    jt_DecimalFormat$1_$SwitchMap$java$math$RoundingMode = var$1;
    var$2[jm_RoundingMode_CEILING.$ordinal] = 1;
    var$2[jm_RoundingMode_FLOOR.$ordinal] = 2;
    var$2[jm_RoundingMode_UP.$ordinal] = 3;
    var$2[jm_RoundingMode_DOWN.$ordinal] = 4;
    var$2[jm_RoundingMode_UNNECESSARY.$ordinal] = 5;
    var$2[jm_RoundingMode_HALF_DOWN.$ordinal] = 6;
    var$2[jm_RoundingMode_HALF_UP.$ordinal] = 7;
    var$2[jm_RoundingMode_HALF_EVEN.$ordinal] = 8;
},
jlr_Reference = $rt_classWithoutFields();
function jlr_WeakReference() {
    jlr_Reference.call(this);
    this.$value15 = null;
}
let jlr_WeakReference__init_ = (var$0, var$1, var$2) => {
    let supported = typeof WeakRef !== 'undefined';
    let value = supported && var$1 !== null ? new WeakRef(var$1) : var$1;
    var$0.$value15 = value;
    if (var$2 !== null && supported && var$1 !== null) {
        let registry = var$2.$registry;
        if (registry !== null) {
            registry.register(var$1, var$0);
        }
    }
},
jlr_WeakReference__init_0 = (var_0, var_1) => {
    let var_2 = new jlr_WeakReference();
    jlr_WeakReference__init_(var_2, var_0, var_1);
    return var_2;
},
jlr_WeakReference_get = var$0 => {
    let value = var$0.$value15;
    if (typeof WeakRef !== 'undefined') {
        if (value === null) {
            return null;
        }
        let result = value.deref();
        return typeof result !== 'undefined' ? result : null;
    }
    return value;
};
function ju_WeakHashMap$Entry() {
    let a = this; jlr_WeakReference.call(a);
    a.$hash2 = 0;
    a.$isNull = 0;
    a.$value13 = null;
    a.$next6 = null;
}
function nms_WorldGenTrees() {
    let a = this; nms_WorldGenerator.call(a);
    a.$minTreeHeight = 0;
    a.$vinesGrow = 0;
    a.$metaWood = 0;
    a.$metaLeaves = 0;
}
let nms_WorldGenTrees_generate = (var$0, var$1, var$2, $par3, $par4, $par5) => {
    let var$6, var$7, $var9, var$9, $var11, $var6, $var7, $var12, $var12_0, $var8, $var9_0, $var10, $var14, $var16, $var15, $var15_0, $var13, $var13_0, var$24, var$25, $var12_1, $var17, var$28, $var18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var18 = $thread.pop();var$28 = $thread.pop();$var17 = $thread.pop();$var12_1 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();$var13_0 = $thread.pop();$var13 = $thread.pop();$var15_0 = $thread.pop();$var15 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();$var10 = $thread.pop();$var9_0 = $thread.pop();$var8 = $thread.pop();$var12_0 = $thread.pop();$var12 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var11 = $thread.pop();var$9 = $thread.pop();$var9
        = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        var$7 = 17;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        var$9 = 2;
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        $var6 = $var11 + var$0.$minTreeHeight | 0;
        $var7 = 1;
        if ($par4 >= 1) {
            $var12 = $par4 + $var6 | 0;
            if (($var12 + 1 | 0) <= 256) {
                $var9 = ($par4 + 1 | 0) + $var6 | 0;
                $var12_0 = $var9 - 2 | 0;
                $var8 = $par4;
                a: while (true) {
                    if ($var8 > $var9) {
                        if (!$var7)
                            return 0;
                        $var8 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var9_0 = 1;
                    if ($var8 == $par4)
                        $var9_0 = 0;
                    if ($var8 >= $var12_0)
                        $var9_0 = 2;
                    $var10 = $par3 - $var9_0 | 0;
                    while ($var10 <= ($par3 + $var9_0 | 0) && $var7) {
                        $var11 = $par5 - $var9_0 | 0;
                        while ($var11 <= ($par5 + $var9_0 | 0) && $var7) {
                            if ($var8 >= 0 && $var8 < 256)
                                break a;
                            $var7 = 0;
                            $var11 = $var11 + 1 | 0;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                $ptr = 7;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId(var$1, $par3, $var8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        nms_Block_$callClinit();
        if (!($var9 != nms_Block_grass.$blockID && $var9 != nms_Block_dirt.$blockID) && $par4 < ((256 - $var6 | 0) - 1 | 0)) {
            $var9 = nms_Block_dirt.$blockID;
            $var11 = 0;
            if (!var$0.$doBlockNotify) {
                $var12_0 = 2;
                $ptr = 2;
                continue main;
            }
            $var12_0 = 3;
            $ptr = 3;
            continue main;
        }
        return 0;
    case 2:
        nms_World_setBlock(var$1, $par3, $var8, $par5, $var9, $var11, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = ($par4 - 3 | 0) + $var6 | 0;
        var$6 = Long_fromInt(2);
        $var11 = $var8;
        b: while (true) {
            if ($var11 > $var12) {
                $var14 = 0;
                $var12_0 = $par3 - 1 | 0;
                $var9_0 = $par3 + 1 | 0;
                $var16 = $par5 - 1 | 0;
                $var15 = $par5 + 1 | 0;
                if ($var14 < $var6) {
                    $var15_0 = $par4 + $var14 | 0;
                    $ptr = 4;
                    continue main;
                }
                c: {
                    if (var$0.$vinesGrow) {
                        var$6 = Long_fromInt(4);
                        d: {
                            e: while (true) {
                                if ($var8 > $var12)
                                    break d;
                                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                                $var14 = $par3 - $var13 | 0;
                                $par4 = $par3 + $var13 | 0;
                                $var9_0 = $par5 - $var13 | 0;
                                $var16 = $par5 + $var13 | 0;
                                while ($var14 <= $par4) {
                                    $var15 = $var9_0;
                                    if ($var15 <= $var16)
                                        break e;
                                    $var14 = $var14 + 1 | 0;
                                }
                                $var8 = $var8 + 1 | 0;
                            }
                            $ptr = 9;
                            continue main;
                        }
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                        while (true) {
                            $var11 = $var9 % 5 | 0;
                            if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                                break;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var9 = Long_lo(Long_shru(var$6, var$7));
                        }
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break c;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                }
                return 1;
            }
            $var12_0 = $var11 - $var12 | 0;
            $var13 = 1 - ($var12_0 / 2 | 0) | 0;
            $var14 = $par3 - $var13 | 0;
            $var9 = $par3 + $var13 | 0;
            $var15 = $par5 - $var13 | 0;
            $var9_0 = $par5 + $var13 | 0;
            while ($var14 <= $var9) {
                $var15_0 = $var14 - $par3 | 0;
                $var12_1 =  -$var15_0 | 0;
                $var16 = $var15;
                while ($var16 <= $var9_0) {
                    $var17 = $var16 - $par5 | 0;
                    if (($var15_0 < 0 ? $var12_1 : $var15_0) != $var13)
                        break b;
                    if ($var17 < 0)
                        $var17 =  -$var17 | 0;
                    if ($var17 != $var13)
                        break b;
                    var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$28;
                    if (Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31)) && $var12_0)
                        break b;
                    $var16 = $var16 + 1 | 0;
                }
                $var14 = $var14 + 1 | 0;
            }
            $var11 = $var11 + 1 | 0;
        }
        $ptr = 8;
        continue main;
    case 3:
        nms_World_setBlock(var$1, $par3, $var8, $par5, $var9, $var11, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = ($par4 - 3 | 0) + $var6 | 0;
        var$6 = Long_fromInt(2);
        $var11 = $var8;
        b: while (true) {
            if ($var11 > $var12) {
                $var14 = 0;
                $var12_0 = $par3 - 1 | 0;
                $var9_0 = $par3 + 1 | 0;
                $var16 = $par5 - 1 | 0;
                $var15 = $par5 + 1 | 0;
                if ($var14 < $var6) {
                    $var15_0 = $par4 + $var14 | 0;
                    $ptr = 4;
                    continue main;
                }
                c: {
                    if (var$0.$vinesGrow) {
                        var$6 = Long_fromInt(4);
                        d: {
                            e: while (true) {
                                if ($var8 > $var12)
                                    break d;
                                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                                $var14 = $par3 - $var13 | 0;
                                $par4 = $par3 + $var13 | 0;
                                $var9_0 = $par5 - $var13 | 0;
                                $var16 = $par5 + $var13 | 0;
                                while ($var14 <= $par4) {
                                    $var15 = $var9_0;
                                    if ($var15 <= $var16)
                                        break e;
                                    $var14 = $var14 + 1 | 0;
                                }
                                $var8 = $var8 + 1 | 0;
                            }
                            $ptr = 9;
                            continue main;
                        }
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                        while (true) {
                            $var11 = $var9 % 5 | 0;
                            if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                                break;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var9 = Long_lo(Long_shru(var$6, var$7));
                        }
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break c;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                }
                return 1;
            }
            $var12_0 = $var11 - $var12 | 0;
            $var13 = 1 - ($var12_0 / 2 | 0) | 0;
            $var14 = $par3 - $var13 | 0;
            $var9 = $par3 + $var13 | 0;
            $var15 = $par5 - $var13 | 0;
            $var9_0 = $par5 + $var13 | 0;
            while ($var14 <= $var9) {
                $var15_0 = $var14 - $par3 | 0;
                $var12_1 =  -$var15_0 | 0;
                $var16 = $var15;
                while ($var16 <= $var9_0) {
                    $var17 = $var16 - $par5 | 0;
                    if (($var15_0 < 0 ? $var12_1 : $var15_0) != $var13)
                        break b;
                    if ($var17 < 0)
                        $var17 =  -$var17 | 0;
                    if ($var17 != $var13)
                        break b;
                    var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$28;
                    if (Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31)) && $var12_0)
                        break b;
                    $var16 = $var16 + 1 | 0;
                }
                $var14 = $var14 + 1 | 0;
            }
            $var11 = $var11 + 1 | 0;
        }
        $ptr = 8;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId(var$1, $par3, $var15_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var12_1 = $tmp;
        if ($var12_1 && $var12_1 != nms_Block_leaves.$blockID) {
            $var14 = $var14 + 1 | 0;
            if ($var14 < $var6) {
                $var15_0 = $par4 + $var14 | 0;
                continue main;
            }
            f: {
                if (var$0.$vinesGrow) {
                    var$6 = Long_fromInt(4);
                    g: {
                        h: while (true) {
                            if ($var8 > $var12)
                                break g;
                            $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                            $var14 = $par3 - $var13 | 0;
                            $par4 = $par3 + $var13 | 0;
                            $var9_0 = $par5 - $var13 | 0;
                            $var16 = $par5 + $var13 | 0;
                            while ($var14 <= $par4) {
                                $var15 = $var9_0;
                                if ($var15 <= $var16)
                                    break h;
                                $var14 = $var14 + 1 | 0;
                            }
                            $var8 = $var8 + 1 | 0;
                        }
                        $ptr = 9;
                        continue main;
                    }
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    if (!$var11 && $var6 > 5) {
                        $par4 = 0;
                        $var9 = $var12 - 5 | 0;
                        while (true) {
                            if ($par4 >= 2)
                                break f;
                            $var12 = 0;
                            while ($var12 < 4) {
                                $var8 = 4 - $par4 | 0;
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var13 = Long_lo(Long_shru(var$6, var$7));
                                $var11 = $var8 - 1 | 0;
                                if (!($var8 & $var11))
                                    $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                else
                                    while (true) {
                                        $var12_0 = $var13 % $var8 | 0;
                                        if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                            break;
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var13 = Long_lo(Long_shru(var$6, var$7));
                                    }
                                if (!$var12_0) {
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                    while (true) {
                                        $var13_0 = $var11 % 3 | 0;
                                        if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                            break;
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                    }
                                    var$24 = nms_Direction_offsetX.data;
                                    var$25 = nms_Direction_rotateOpposite.data;
                                    $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                    $var11 = $var9 + $par4 | 0;
                                    $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                    $var13 = nms_Block_cocoaPlant.$blockID;
                                    $var14 = $var13_0 << 2 | $var12;
                                    if (!var$0.$doBlockNotify) {
                                        $var15_0 = 2;
                                        $ptr = 41;
                                        continue main;
                                    }
                                    $var15_0 = 3;
                                    $ptr = 42;
                                    continue main;
                                }
                                $var12 = $var12 + 1 | 0;
                            }
                            $par4 = $par4 + 1 | 0;
                        }
                    }
                }
            }
            return 1;
        }
        $var9 = nms_Block_wood.$blockID;
        $var11 = var$0.$metaWood;
        if (!var$0.$doBlockNotify) {
            $var13 = 2;
            $ptr = 5;
            continue main;
        }
        $var13 = 3;
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlock(var$1, $par3, $var15_0, $par5, $var9, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        if (var$0.$vinesGrow && $var14 > 0) {
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 13;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 24;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 36;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 45;
                continue main;
            }
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        i: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                j: {
                    c: while (true) {
                        if ($var8 > $var12)
                            break j;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break c;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break i;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 6:
        nms_World_setBlock(var$1, $par3, $var15_0, $par5, $var9, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        if (var$0.$vinesGrow && $var14 > 0) {
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 13;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 24;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 36;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var11 = $var9 % 3 | 0;
                if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var11 > 0) {
                $ptr = 45;
                continue main;
            }
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        i: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                j: {
                    c: while (true) {
                        if ($var8 > $var12)
                            break j;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break c;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break i;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 7:
        $tmp = nms_World_getBlockId(var$1, $var10, $var8, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12_1 = $tmp;
        if ($var12_1) {
            nms_Block_$callClinit();
            if ($var12_1 != nms_Block_leaves.$blockID && $var12_1 != nms_Block_grass.$blockID && $var12_1 != nms_Block_dirt.$blockID && $var12_1 != nms_Block_wood.$blockID)
                $var7 = 0;
        }
        while (true) {
            $var11 = $var11 + 1 | 0;
            while (!($var11 <= ($par5 + $var9_0 | 0) && $var7)) {
                $var10 = $var10 + 1 | 0;
                while (!($var10 <= ($par3 + $var9_0 | 0) && $var7)) {
                    $var8 = $var8 + 1 | 0;
                    if ($var8 > $var9) {
                        if (!$var7)
                            return 0;
                        $var8 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var9_0 = 1;
                    if ($var8 == $par4)
                        $var9_0 = 0;
                    if ($var8 >= $var12_0)
                        $var9_0 = 2;
                    $var10 = $par3 - $var9_0 | 0;
                }
                $var11 = $par5 - $var9_0 | 0;
            }
            if ($var8 >= 0 && $var8 < 256)
                break;
            $var7 = 0;
        }
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$1, $var14, $var11, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        if ($var18 && $var18 != nms_Block_leaves.$blockID) {
            while (true) {
                $var16 = $var16 + 1 | 0;
                while ($var16 > $var9_0) {
                    $var14 = $var14 + 1 | 0;
                    while ($var14 > $var9) {
                        $var11 = $var11 + 1 | 0;
                        if ($var11 > $var12) {
                            $var14 = 0;
                            $var12_0 = $par3 - 1 | 0;
                            $var9_0 = $par3 + 1 | 0;
                            $var16 = $par5 - 1 | 0;
                            $var15 = $par5 + 1 | 0;
                            if ($var14 < $var6) {
                                $var15_0 = $par4 + $var14 | 0;
                                $ptr = 4;
                                continue main;
                            }
                            e: {
                                if (var$0.$vinesGrow) {
                                    var$6 = Long_fromInt(4);
                                    k: {
                                        l: while (true) {
                                            if ($var8 > $var12)
                                                break k;
                                            $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                                            $var14 = $par3 - $var13 | 0;
                                            $par4 = $par3 + $var13 | 0;
                                            $var9_0 = $par5 - $var13 | 0;
                                            $var16 = $par5 + $var13 | 0;
                                            while ($var14 <= $par4) {
                                                $var15 = $var9_0;
                                                if ($var15 <= $var16)
                                                    break l;
                                                $var14 = $var14 + 1 | 0;
                                            }
                                            $var8 = $var8 + 1 | 0;
                                        }
                                        $ptr = 9;
                                        continue main;
                                    }
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var9 = Long_lo(Long_shru(var$6, var$7));
                                    while (true) {
                                        $var11 = $var9 % 5 | 0;
                                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                                            break;
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var9 = Long_lo(Long_shru(var$6, var$7));
                                    }
                                    if (!$var11 && $var6 > 5) {
                                        $par4 = 0;
                                        $var9 = $var12 - 5 | 0;
                                        while (true) {
                                            if ($par4 >= 2)
                                                break e;
                                            $var12 = 0;
                                            while ($var12 < 4) {
                                                $var8 = 4 - $par4 | 0;
                                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                var$2.$seed = var$6;
                                                $var13 = Long_lo(Long_shru(var$6, var$7));
                                                $var11 = $var8 - 1 | 0;
                                                if (!($var8 & $var11))
                                                    $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                                else
                                                    while (true) {
                                                        $var12_0 = $var13 % $var8 | 0;
                                                        if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                            break;
                                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                        var$2.$seed = var$6;
                                                        $var13 = Long_lo(Long_shru(var$6, var$7));
                                                    }
                                                if (!$var12_0) {
                                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    var$2.$seed = var$6;
                                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                                    while (true) {
                                                        $var13_0 = $var11 % 3 | 0;
                                                        if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                            break;
                                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                        var$2.$seed = var$6;
                                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                                    }
                                                    var$24 = nms_Direction_offsetX.data;
                                                    var$25 = nms_Direction_rotateOpposite.data;
                                                    $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                                    $var11 = $var9 + $par4 | 0;
                                                    $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                                    $var13 = nms_Block_cocoaPlant.$blockID;
                                                    $var14 = $var13_0 << 2 | $var12;
                                                    if (!var$0.$doBlockNotify) {
                                                        $var15_0 = 2;
                                                        $ptr = 41;
                                                        continue main;
                                                    }
                                                    $var15_0 = 3;
                                                    $ptr = 42;
                                                    continue main;
                                                }
                                                $var12 = $var12 + 1 | 0;
                                            }
                                            $par4 = $par4 + 1 | 0;
                                        }
                                    }
                                }
                            }
                            return 1;
                        }
                        $var12_0 = $var11 - $var12 | 0;
                        $var13 = 1 - ($var12_0 / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $var9 = $par3 + $var13 | 0;
                        $var15 = $par5 - $var13 | 0;
                        $var9_0 = $par5 + $var13 | 0;
                    }
                    $var15_0 = $var14 - $par3 | 0;
                    $var12_1 =  -$var15_0 | 0;
                    $var16 = $var15;
                }
                $var17 = $var16 - $par5 | 0;
                if (($var15_0 < 0 ? $var12_1 : $var15_0) != $var13)
                    break;
                if ($var17 < 0)
                    $var17 =  -$var17 | 0;
                if ($var17 != $var13)
                    break;
                var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$28;
                if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31)))
                    continue;
                if (!$var12_0)
                    continue;
                else
                    break;
            }
            continue main;
        }
        $var17 = nms_Block_leaves.$blockID;
        $var18 = var$0.$metaLeaves;
        if (!var$0.$doBlockNotify) {
            $var10 = 2;
            $ptr = 10;
            continue main;
        }
        $var10 = 3;
        $ptr = 11;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId(var$1, $var14, $var8, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 == nms_Block_leaves.$blockID) {
            var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$28;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
                $var17 = $var14 - 1 | 0;
                $ptr = 12;
                continue main;
            }
            var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$28;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
                $var15_0 = $var14 + 1 | 0;
                $ptr = 14;
                continue main;
            }
            var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$28;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
                $var15_0 = $var15 - 1 | 0;
                $ptr = 15;
                continue main;
            }
            var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$28;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
                $var15_0 = $var15 + 1 | 0;
                $ptr = 18;
                continue main;
            }
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    m: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break m;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        continue main;
    case 10:
        nms_World_setBlock(var$1, $var14, $var11, $var16, $var17, $var18, $var10);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > $var9_0) {
                $var14 = $var14 + 1 | 0;
                while ($var14 > $var9) {
                    $var11 = $var11 + 1 | 0;
                    if ($var11 > $var12) {
                        $var14 = 0;
                        $var12_0 = $par3 - 1 | 0;
                        $var9_0 = $par3 + 1 | 0;
                        $var16 = $par5 - 1 | 0;
                        $var15 = $par5 + 1 | 0;
                        if ($var14 < $var6) {
                            $var15_0 = $par4 + $var14 | 0;
                            $ptr = 4;
                            continue main;
                        }
                        j: {
                            if (var$0.$vinesGrow) {
                                var$6 = Long_fromInt(4);
                                c: {
                                    d: while (true) {
                                        if ($var8 > $var12)
                                            break c;
                                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                                        $var14 = $par3 - $var13 | 0;
                                        $par4 = $par3 + $var13 | 0;
                                        $var9_0 = $par5 - $var13 | 0;
                                        $var16 = $par5 + $var13 | 0;
                                        while ($var14 <= $par4) {
                                            $var15 = $var9_0;
                                            if ($var15 <= $var16)
                                                break d;
                                            $var14 = $var14 + 1 | 0;
                                        }
                                        $var8 = $var8 + 1 | 0;
                                    }
                                    $ptr = 9;
                                    continue main;
                                }
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var9 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var11 = $var9 % 5 | 0;
                                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var9 = Long_lo(Long_shru(var$6, var$7));
                                }
                                if (!$var11 && $var6 > 5) {
                                    $par4 = 0;
                                    $var9 = $var12 - 5 | 0;
                                    while (true) {
                                        if ($par4 >= 2)
                                            break j;
                                        $var12 = 0;
                                        while ($var12 < 4) {
                                            $var8 = 4 - $par4 | 0;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                            $var11 = $var8 - 1 | 0;
                                            if (!($var8 & $var11))
                                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                            else
                                                while (true) {
                                                    $var12_0 = $var13 % $var8 | 0;
                                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                        break;
                                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    var$2.$seed = var$6;
                                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                                }
                                            if (!$var12_0) {
                                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                var$2.$seed = var$6;
                                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                                while (true) {
                                                    $var13_0 = $var11 % 3 | 0;
                                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                        break;
                                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    var$2.$seed = var$6;
                                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                                }
                                                var$24 = nms_Direction_offsetX.data;
                                                var$25 = nms_Direction_rotateOpposite.data;
                                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                                $var11 = $var9 + $par4 | 0;
                                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                                $var13 = nms_Block_cocoaPlant.$blockID;
                                                $var14 = $var13_0 << 2 | $var12;
                                                if (!var$0.$doBlockNotify) {
                                                    $var15_0 = 2;
                                                    $ptr = 41;
                                                    continue main;
                                                }
                                                $var15_0 = 3;
                                                $ptr = 42;
                                                continue main;
                                            }
                                            $var12 = $var12 + 1 | 0;
                                        }
                                        $par4 = $par4 + 1 | 0;
                                    }
                                }
                            }
                        }
                        return 1;
                    }
                    $var12_0 = $var11 - $var12 | 0;
                    $var13 = 1 - ($var12_0 / 2 | 0) | 0;
                    $var14 = $par3 - $var13 | 0;
                    $var9 = $par3 + $var13 | 0;
                    $var15 = $par5 - $var13 | 0;
                    $var9_0 = $par5 + $var13 | 0;
                }
                $var15_0 = $var14 - $par3 | 0;
                $var12_1 =  -$var15_0 | 0;
                $var16 = $var15;
            }
            $var17 = $var16 - $par5 | 0;
            if (($var15_0 < 0 ? $var12_1 : $var15_0) != $var13)
                break;
            if ($var17 < 0)
                $var17 =  -$var17 | 0;
            if ($var17 != $var13)
                break;
            var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$28;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31)))
                continue;
            if (!$var12_0)
                continue;
            else
                break;
        }
        $ptr = 8;
        continue main;
    case 11:
        nms_World_setBlock(var$1, $var14, $var11, $var16, $var17, $var18, $var10);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var16 = $var16 + 1 | 0;
            while ($var16 > $var9_0) {
                $var14 = $var14 + 1 | 0;
                while ($var14 > $var9) {
                    $var11 = $var11 + 1 | 0;
                    if ($var11 > $var12) {
                        $var14 = 0;
                        $var12_0 = $par3 - 1 | 0;
                        $var9_0 = $par3 + 1 | 0;
                        $var16 = $par5 - 1 | 0;
                        $var15 = $par5 + 1 | 0;
                        if ($var14 < $var6) {
                            $var15_0 = $par4 + $var14 | 0;
                            $ptr = 4;
                            continue main;
                        }
                        j: {
                            if (var$0.$vinesGrow) {
                                var$6 = Long_fromInt(4);
                                c: {
                                    d: while (true) {
                                        if ($var8 > $var12)
                                            break c;
                                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                                        $var14 = $par3 - $var13 | 0;
                                        $par4 = $par3 + $var13 | 0;
                                        $var9_0 = $par5 - $var13 | 0;
                                        $var16 = $par5 + $var13 | 0;
                                        while ($var14 <= $par4) {
                                            $var15 = $var9_0;
                                            if ($var15 <= $var16)
                                                break d;
                                            $var14 = $var14 + 1 | 0;
                                        }
                                        $var8 = $var8 + 1 | 0;
                                    }
                                    $ptr = 9;
                                    continue main;
                                }
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var9 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var11 = $var9 % 5 | 0;
                                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var9 = Long_lo(Long_shru(var$6, var$7));
                                }
                                if (!$var11 && $var6 > 5) {
                                    $par4 = 0;
                                    $var9 = $var12 - 5 | 0;
                                    while (true) {
                                        if ($par4 >= 2)
                                            break j;
                                        $var12 = 0;
                                        while ($var12 < 4) {
                                            $var8 = 4 - $par4 | 0;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                            $var11 = $var8 - 1 | 0;
                                            if (!($var8 & $var11))
                                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                            else
                                                while (true) {
                                                    $var12_0 = $var13 % $var8 | 0;
                                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                        break;
                                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    var$2.$seed = var$6;
                                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                                }
                                            if (!$var12_0) {
                                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                var$2.$seed = var$6;
                                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                                while (true) {
                                                    $var13_0 = $var11 % 3 | 0;
                                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                        break;
                                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    var$2.$seed = var$6;
                                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                                }
                                                var$24 = nms_Direction_offsetX.data;
                                                var$25 = nms_Direction_rotateOpposite.data;
                                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                                $var11 = $var9 + $par4 | 0;
                                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                                $var13 = nms_Block_cocoaPlant.$blockID;
                                                $var14 = $var13_0 << 2 | $var12;
                                                if (!var$0.$doBlockNotify) {
                                                    $var15_0 = 2;
                                                    $ptr = 41;
                                                    continue main;
                                                }
                                                $var15_0 = 3;
                                                $ptr = 42;
                                                continue main;
                                            }
                                            $var12 = $var12 + 1 | 0;
                                        }
                                        $par4 = $par4 + 1 | 0;
                                    }
                                }
                            }
                        }
                        return 1;
                    }
                    $var12_0 = $var11 - $var12 | 0;
                    $var13 = 1 - ($var12_0 / 2 | 0) | 0;
                    $var14 = $par3 - $var13 | 0;
                    $var9 = $par3 + $var13 | 0;
                    $var15 = $par5 - $var13 | 0;
                    $var9_0 = $par5 + $var13 | 0;
                }
                $var15_0 = $var14 - $par3 | 0;
                $var12_1 =  -$var15_0 | 0;
                $var16 = $var15;
            }
            $var17 = $var16 - $par5 | 0;
            if (($var15_0 < 0 ? $var12_1 : $var15_0) != $var13)
                break;
            if ($var17 < 0)
                $var17 =  -$var17 | 0;
            if ($var17 != $var13)
                break;
            var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$28;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31)))
                continue;
            if (!$var12_0)
                continue;
            else
                break;
        }
        $ptr = 8;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$1, $var17, $var8, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            $var9 = 8;
            $var11 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var12_0 = 2;
                $ptr = 16;
                continue main;
            }
            $var12_0 = 3;
            $ptr = 17;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var14 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    i: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break i;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId(var$1, $var12_0, $var15_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 ? 0 : 1) {
            $var9 = nms_Block_vine.$blockID;
            $var11 = 8;
            if (!var$0.$doBlockNotify) {
                $var13 = 2;
                $ptr = 25;
                continue main;
            }
            $var13 = 3;
            $ptr = 26;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 24;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 36;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        c: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                d: {
                    e: while (true) {
                        if ($var8 > $var12)
                            break d;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break e;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break c;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 14:
        $tmp = nms_World_getBlockId(var$1, $var15_0, $var8, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            $var17 = 2;
            $var9 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var11 = 2;
                $ptr = 19;
                continue main;
            }
            $var11 = 3;
            $ptr = 20;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    m: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break m;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId(var$1, $var14, $var8, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            $var17 = 1;
            $var9 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var11 = 2;
                $ptr = 21;
                continue main;
            }
            $var11 = 3;
            $ptr = 22;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    n: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break n;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 16:
        nms_World_setBlock(var$1, $var17, $var8, $var15, $var11, $var9, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 4;
        $var12_0 = $var8;
        $var12_0 = $var12_0 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 17:
        nms_World_setBlock(var$1, $var17, $var8, $var15, $var11, $var9, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 4;
        $var12_0 = $var8;
        $var12_0 = $var12_0 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 18:
        $tmp = nms_World_getBlockId(var$1, $var14, $var8, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            $var17 = 4;
            $var9 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var11 = 2;
                $ptr = 27;
                continue main;
            }
            $var11 = 3;
            $ptr = 28;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    h: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break h;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 19:
        nms_World_setBlock(var$1, $var15_0, $var8, $var15, $var9, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 4;
        $var11 = $var8;
        $var11 = $var11 + (-1) | 0;
        $ptr = 29;
        continue main;
    case 20:
        nms_World_setBlock(var$1, $var15_0, $var8, $var15, $var9, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 4;
        $var11 = $var8;
        $var11 = $var11 + (-1) | 0;
        $ptr = 29;
        continue main;
    case 21:
        nms_World_setBlock(var$1, $var14, $var8, $var15_0, $var9, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 4;
        $var11 = $var8;
        $var11 = $var11 + (-1) | 0;
        $ptr = 30;
        continue main;
    case 22:
        nms_World_setBlock(var$1, $var14, $var8, $var15_0, $var9, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 4;
        $var11 = $var8;
        $var11 = $var11 + (-1) | 0;
        $ptr = 30;
        continue main;
    case 23:
        $tmp = nms_World_getBlockId(var$1, $var17, $var12_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if (!$var13 && $var11 > 0) {
            $var13 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var15_0 = 2;
                $ptr = 32;
                continue main;
            }
            $var15_0 = 3;
            $ptr = 33;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var14 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    i: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break i;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 24:
        $tmp = nms_World_getBlockId(var$1, $var9_0, $var15_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 ? 0 : 1) {
            $var9 = nms_Block_vine.$blockID;
            $var11 = 2;
            if (!var$0.$doBlockNotify) {
                $var13 = 2;
                $ptr = 37;
                continue main;
            }
            $var13 = 3;
            $ptr = 38;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 36;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        i: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                j: {
                    c: while (true) {
                        if ($var8 > $var12)
                            break j;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break c;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break i;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 25:
        nms_World_setBlock(var$1, $var12_0, $var15_0, $par5, $var9, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 24;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 36;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        n: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                m: {
                    i: while (true) {
                        if ($var8 > $var12)
                            break m;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break i;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break n;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 26:
        nms_World_setBlock(var$1, $var12_0, $var15_0, $par5, $var9, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 24;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 36;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        n: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                m: {
                    i: while (true) {
                        if ($var8 > $var12)
                            break m;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break i;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break n;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 27:
        nms_World_setBlock(var$1, $var14, $var8, $var15_0, $var9, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 4;
        $var11 = $var8;
        $var11 = $var11 + (-1) | 0;
        $ptr = 31;
        continue main;
    case 28:
        nms_World_setBlock(var$1, $var14, $var8, $var15_0, $var9, $var17, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 4;
        $var11 = $var8;
        $var11 = $var11 + (-1) | 0;
        $ptr = 31;
        continue main;
    case 29:
        $tmp = nms_World_getBlockId(var$1, $var15_0, $var11, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $tmp;
        if (!$var12_0 && $var9 > 0) {
            $var12_0 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var13 = 2;
                $ptr = 34;
                continue main;
            }
            $var13 = 3;
            $ptr = 35;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    m: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break m;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 30:
        $tmp = nms_World_getBlockId(var$1, $var14, $var11, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $tmp;
        if (!$var12_0 && $var9 > 0) {
            $var12_0 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var13 = 2;
                $ptr = 39;
                continue main;
            }
            $var13 = 3;
            $ptr = 40;
            continue main;
        }
        var$28 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$28;
        if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$28, var$7)))), 31))) {
            $var15_0 = $var15 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    n: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break n;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 31:
        $tmp = nms_World_getBlockId(var$1, $var14, $var11, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $tmp;
        if (!$var12_0 && $var9 > 0) {
            $var12_0 = nms_Block_vine.$blockID;
            if (!var$0.$doBlockNotify) {
                $var13 = 2;
                $ptr = 43;
                continue main;
            }
            $var13 = 3;
            $ptr = 44;
            continue main;
        }
        $var15 = $var15 + 1 | 0;
        while ($var15 > $var16) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $par4) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > $var12) {
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                    while (true) {
                        $var11 = $var9 % 5 | 0;
                        if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$2.$seed = var$6;
                        $var9 = Long_lo(Long_shru(var$6, var$7));
                    }
                    h: {
                        if (!$var11 && $var6 > 5) {
                            $par4 = 0;
                            $var9 = $var12 - 5 | 0;
                            while (true) {
                                if ($par4 >= 2)
                                    break h;
                                $var12 = 0;
                                while ($var12 < 4) {
                                    $var8 = 4 - $par4 | 0;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                    $var11 = $var8 - 1 | 0;
                                    if (!($var8 & $var11))
                                        $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                                    else
                                        while (true) {
                                            $var12_0 = $var13 % $var8 | 0;
                                            if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var13 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                    if (!$var12_0) {
                                        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        var$2.$seed = var$6;
                                        $var11 = Long_lo(Long_shru(var$6, var$7));
                                        while (true) {
                                            $var13_0 = $var11 % 3 | 0;
                                            if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                                break;
                                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            var$2.$seed = var$6;
                                            $var11 = Long_lo(Long_shru(var$6, var$7));
                                        }
                                        var$24 = nms_Direction_offsetX.data;
                                        var$25 = nms_Direction_rotateOpposite.data;
                                        $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                        $var11 = $var9 + $par4 | 0;
                                        $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                        $var13 = nms_Block_cocoaPlant.$blockID;
                                        $var14 = $var13_0 << 2 | $var12;
                                        if (!var$0.$doBlockNotify) {
                                            $var15_0 = 2;
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var15_0 = 3;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var12 = $var12 + 1 | 0;
                                }
                                $par4 = $par4 + 1 | 0;
                            }
                        }
                    }
                    return 1;
                }
                $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                $var14 = $par3 - $var13 | 0;
                $par4 = $par3 + $var13 | 0;
                $var9_0 = $par5 - $var13 | 0;
                $var16 = $par5 + $var13 | 0;
            }
            $var15 = $var9_0;
        }
        $ptr = 9;
        continue main;
    case 32:
        nms_World_setBlock(var$1, $var17, $var12_0, $var15, $var13, $var9, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + (-1) | 0;
        $var12_0 = $var12_0 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 33:
        nms_World_setBlock(var$1, $var17, $var12_0, $var15, $var13, $var9, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + (-1) | 0;
        $var12_0 = $var12_0 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 34:
        nms_World_setBlock(var$1, $var15_0, $var11, $var15, $var12_0, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $var11 = $var11 + (-1) | 0;
        $ptr = 29;
        continue main;
    case 35:
        nms_World_setBlock(var$1, $var15_0, $var11, $var15, $var12_0, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $var11 = $var11 + (-1) | 0;
        $ptr = 29;
        continue main;
    case 36:
        $tmp = nms_World_getBlockId(var$1, $par3, $var15_0, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 ? 0 : 1) {
            $var11 = nms_Block_vine.$blockID;
            $var13 = 1;
            if (!var$0.$doBlockNotify) {
                $var9 = 2;
                $ptr = 46;
                continue main;
            }
            $var9 = 3;
            $ptr = 47;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        n: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                m: {
                    i: while (true) {
                        if ($var8 > $var12)
                            break m;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break i;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break n;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 37:
        nms_World_setBlock(var$1, $var9_0, $var15_0, $par5, $var9, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 36;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        g: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                h: {
                    n: while (true) {
                        if ($var8 > $var12)
                            break h;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break n;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break g;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 38:
        nms_World_setBlock(var$1, $var9_0, $var15_0, $par5, $var9, $var11, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 36;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        g: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                h: {
                    n: while (true) {
                        if ($var8 > $var12)
                            break h;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break n;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break g;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 39:
        nms_World_setBlock(var$1, $var14, $var11, $var15_0, $var12_0, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $var11 = $var11 + (-1) | 0;
        $ptr = 30;
        continue main;
    case 40:
        nms_World_setBlock(var$1, $var14, $var11, $var15_0, $var12_0, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $var11 = $var11 + (-1) | 0;
        $ptr = 30;
        continue main;
    case 41:
        nms_World_setBlock(var$1, $var8, $var11, $var12_0, $var13, $var14, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        b: while (true) {
            $var12 = $var12 + 1 | 0;
            while ($var12 >= 4) {
                $par4 = $par4 + 1 | 0;
                if ($par4 >= 2)
                    break b;
                $var12 = 0;
            }
            $var8 = 4 - $par4 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var13 = Long_lo(Long_shru(var$6, var$7));
            $var11 = $var8 - 1 | 0;
            if (!($var8 & $var11))
                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
            else
                while (true) {
                    $var12_0 = $var13 % $var8 | 0;
                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var13 = Long_lo(Long_shru(var$6, var$7));
                }
            if ($var12_0)
                continue;
            else {
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var13_0 = $var11 % 3 | 0;
                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var11 = Long_lo(Long_shru(var$6, var$7));
                }
                var$24 = nms_Direction_offsetX.data;
                var$25 = nms_Direction_rotateOpposite.data;
                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                $var11 = $var9 + $par4 | 0;
                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                $var13 = nms_Block_cocoaPlant.$blockID;
                $var14 = $var13_0 << 2 | $var12;
                if (!var$0.$doBlockNotify) {
                    $var15_0 = 2;
                    continue main;
                }
                $var15_0 = 3;
                $ptr = 42;
                continue main;
            }
        }
        return 1;
    case 42:
        nms_World_setBlock(var$1, $var8, $var11, $var12_0, $var13, $var14, $var15_0);
        if ($rt_suspending()) {
            break main;
        }
        b: while (true) {
            $var12 = $var12 + 1 | 0;
            while ($var12 >= 4) {
                $par4 = $par4 + 1 | 0;
                if ($par4 >= 2)
                    break b;
                $var12 = 0;
            }
            $var8 = 4 - $par4 | 0;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var13 = Long_lo(Long_shru(var$6, var$7));
            $var11 = $var8 - 1 | 0;
            if (!($var8 & $var11))
                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
            else
                while (true) {
                    $var12_0 = $var13 % $var8 | 0;
                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var13 = Long_lo(Long_shru(var$6, var$7));
                }
            if ($var12_0)
                continue;
            else {
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var13_0 = $var11 % 3 | 0;
                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var11 = Long_lo(Long_shru(var$6, var$7));
                }
                var$24 = nms_Direction_offsetX.data;
                var$25 = nms_Direction_rotateOpposite.data;
                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                $var11 = $var9 + $par4 | 0;
                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                $var13 = nms_Block_cocoaPlant.$blockID;
                $var14 = $var13_0 << 2 | $var12;
                if (!var$0.$doBlockNotify) {
                    $var15_0 = 2;
                    $ptr = 41;
                    continue main;
                }
                $var15_0 = 3;
                continue main;
            }
        }
        return 1;
    case 43:
        nms_World_setBlock(var$1, $var14, $var11, $var15_0, $var12_0, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $var11 = $var11 + (-1) | 0;
        $ptr = 31;
        continue main;
    case 44:
        nms_World_setBlock(var$1, $var14, $var11, $var15_0, $var12_0, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $var11 = $var11 + (-1) | 0;
        $ptr = 31;
        continue main;
    case 45:
        $tmp = nms_World_getBlockId(var$1, $par3, $var15_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 ? 0 : 1) {
            $var11 = nms_Block_vine.$blockID;
            $var13 = 4;
            if (!var$0.$doBlockNotify) {
                $var9 = 2;
                $ptr = 48;
                continue main;
            }
            $var9 = 3;
            $ptr = 49;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        g: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                h: {
                    n: while (true) {
                        if ($var8 > $var12)
                            break h;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break n;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break g;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 46:
        nms_World_setBlock(var$1, $par3, $var15_0, $var16, $var11, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        a: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                f: {
                    g: while (true) {
                        if ($var8 > $var12)
                            break f;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break g;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break a;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 47:
        nms_World_setBlock(var$1, $par3, $var15_0, $var16, $var11, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var9 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var11 = $var9 % 3 | 0;
            if ((($var9 - $var11 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var9 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var11 > 0) {
            $ptr = 45;
            continue main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        a: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                f: {
                    g: while (true) {
                        if ($var8 > $var12)
                            break f;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break g;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break a;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 48:
        nms_World_setBlock(var$1, $par3, $var15_0, $var15, $var11, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        o: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                p: {
                    a: while (true) {
                        if ($var8 > $var12)
                            break p;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break a;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break o;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    case 49:
        nms_World_setBlock(var$1, $par3, $var15_0, $var15, $var11, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 < $var6) {
            $var15_0 = $par4 + $var14 | 0;
            $ptr = 4;
            continue main;
        }
        o: {
            if (var$0.$vinesGrow) {
                var$6 = Long_fromInt(4);
                p: {
                    a: while (true) {
                        if ($var8 > $var12)
                            break p;
                        $var13 = 2 - (($var8 - $var12 | 0) / 2 | 0) | 0;
                        $var14 = $par3 - $var13 | 0;
                        $par4 = $par3 + $var13 | 0;
                        $var9_0 = $par5 - $var13 | 0;
                        $var16 = $par5 + $var13 | 0;
                        while ($var14 <= $par4) {
                            $var15 = $var9_0;
                            if ($var15 <= $var16)
                                break a;
                            $var14 = $var14 + 1 | 0;
                        }
                        $var8 = $var8 + 1 | 0;
                    }
                    $ptr = 9;
                    continue main;
                }
                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$6;
                $var9 = Long_lo(Long_shru(var$6, var$7));
                while (true) {
                    $var11 = $var9 % 5 | 0;
                    if ((($var9 - $var11 | 0) + 4 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$6;
                    $var9 = Long_lo(Long_shru(var$6, var$7));
                }
                if (!$var11 && $var6 > 5) {
                    $par4 = 0;
                    $var9 = $var12 - 5 | 0;
                    while (true) {
                        if ($par4 >= 2)
                            break o;
                        $var12 = 0;
                        while ($var12 < 4) {
                            $var8 = 4 - $par4 | 0;
                            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$2.$seed = var$6;
                            $var13 = Long_lo(Long_shru(var$6, var$7));
                            $var11 = $var8 - 1 | 0;
                            if (!($var8 & $var11))
                                $var12_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var13)), 31));
                            else
                                while (true) {
                                    $var12_0 = $var13 % $var8 | 0;
                                    if ((($var13 - $var12_0 | 0) + $var11 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var13 = Long_lo(Long_shru(var$6, var$7));
                                }
                            if (!$var12_0) {
                                var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$2.$seed = var$6;
                                $var11 = Long_lo(Long_shru(var$6, var$7));
                                while (true) {
                                    $var13_0 = $var11 % 3 | 0;
                                    if ((($var11 - $var13_0 | 0) + var$9 | 0) >= 0)
                                        break;
                                    var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$2.$seed = var$6;
                                    $var11 = Long_lo(Long_shru(var$6, var$7));
                                }
                                var$24 = nms_Direction_offsetX.data;
                                var$25 = nms_Direction_rotateOpposite.data;
                                $var8 = $par3 + var$24[var$25[$var12]] | 0;
                                $var11 = $var9 + $par4 | 0;
                                $var12_0 = $par5 + nms_Direction_offsetZ.data[var$25[$var12]] | 0;
                                $var13 = nms_Block_cocoaPlant.$blockID;
                                $var14 = $var13_0 << 2 | $var12;
                                if (!var$0.$doBlockNotify) {
                                    $var15_0 = 2;
                                    $ptr = 41;
                                    continue main;
                                }
                                $var15_0 = 3;
                                $ptr = 42;
                                continue main;
                            }
                            $var12 = $var12 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $par3, $par4, $par5, var$6, var$7, $var9, var$9, $var11, $var6, $var7, $var12, $var12_0, $var8, $var9_0, $var10, $var14, $var16, $var15, $var15_0, $var13, $var13_0, var$24, var$25, $var12_1, $var17, var$28, $var18, $ptr);
};
function nms_WorldGenBigTree() {
    let a = this; nms_WorldGenerator.call(a);
    a.$rand5 = null;
    a.$worldObj13 = null;
    a.$basePos = null;
    a.$heightLimit = 0;
    a.$height1 = 0;
    a.$heightAttenuation = 0.0;
    a.$branchDensity = 0.0;
    a.$branchSlope = 0.0;
    a.$scaleWidth = 0.0;
    a.$leafDensity = 0.0;
    a.$trunkSize = 0;
    a.$heightLimitLimit = 0;
    a.$leafDistanceLimit = 0;
    a.$leafNodes = null;
}
let nms_WorldGenBigTree_otherCoordPairs = null,
nms_WorldGenBigTree__init_0 = ($this, $par1) => {
    let var$2, var$3;
    $this.$doBlockNotify = $par1;
    var$2 = new nle_EaglercraftRandom;
    var$3 = Long_fromNumber(performance.now() * 1000000.0);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = var$3;
    $this.$rand5 = var$2;
    $this.$basePos = $rt_createIntArrayFromData([0, 0, 0]);
    $this.$heightAttenuation = 0.618;
    $this.$branchDensity = 1.0;
    $this.$branchSlope = 0.381;
    $this.$scaleWidth = 1.0;
    $this.$leafDensity = 1.0;
    $this.$trunkSize = 1;
    $this.$heightLimitLimit = 12;
    $this.$leafDistanceLimit = 4;
},
nms_WorldGenBigTree__init_ = var_0 => {
    let var_1 = new nms_WorldGenBigTree();
    nms_WorldGenBigTree__init_0(var_1, var_0);
    return var_1;
},
nms_WorldGenBigTree_generateLeafNodeList = $this => {
    let $var1, $var22, $var6, $var2, var$5, $var17, $var3, $var4, $var5, var$10, var$11, var$12, $var7, $var8, $var9, var$16, $var13, var$18, var$19, $var11, var$21, $var15, $var16, var$24, $var18, var$26, $var19, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();$var19 = $thread.pop();var$26 = $thread.pop();$var18 = $thread.pop();var$24 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var13 = $thread.pop();var$16 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3
        = $thread.pop();$var17 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();$var6 = $thread.pop();$var22 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$heightLimit;
        $var22 = $var1;
        $var6 = $var22 * $this.$heightAttenuation | 0;
        $this.$height1 = $var6;
        if ($var6 >= $var1)
            $this.$height1 = $var1 - 1 | 0;
        $var1 = 1.382 + jl_Math_powImpl($this.$leafDensity * $var22 / 13.0, 2.0) | 0;
        if ($var1 < 1)
            $var1 = 1;
        $var6 = $this.$heightLimit;
        $var2 = $rt_createIntMultiArray([4, $rt_imul($var1, $var6)]);
        var$5 = $var2.data;
        $var17 = $this.$basePos.data;
        $var3 = ($var17[1] + $var6 | 0) - $this.$leafDistanceLimit | 0;
        $var4 = 1;
        $var5 = $var17[1] + $this.$height1 | 0;
        $var6 = $var3 - $var17[1] | 0;
        var$5[0].data[0] = $var17[0];
        var$5[0].data[1] = $var3;
        var$5[0].data[2] = $var17[2];
        var$5[0].data[3] = $var5;
        var$10 = $var3 + (-1) | 0;
        var$11 = 24;
        var$12 = $var5;
        while ($var6 >= 0) {
            $var7 = 0;
            $var8 = nms_WorldGenBigTree_layerSize($this, $var6);
            if ($var8 < 0.0) {
                var$10 = var$10 + (-1) | 0;
                $var6 = $var6 + (-1) | 0;
            } else {
                $var9 = 0.5;
                var$16 = $var8;
                if ($var7 < $var1) {
                    $var13 = $this.$scaleWidth * var$16;
                    var$18 = $this.$rand5;
                    var$19 = Long_and(Long_add(Long_mul(var$18.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$18.$seed = var$19;
                    $var11 = $var13 * (Long_lo(Long_shru(var$19, var$11)) / 1.6777216E7 + 0.328);
                    var$21 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$18.$seed = var$21;
                    $var13 = Long_lo(Long_shru(var$21, var$11)) / 1.6777216E7 * 2.0 * 3.141592653589793;
                    $var22 = $var11 * jl_Math_sin($var13) + $this.$basePos.data[0] + $var9;
                    $var15 = $var22 | 0;
                    if ($var22 < $var15)
                        $var15 = $var15 - 1 | 0;
                    $var22 = $var11 * jl_Math_cos($var13) + $this.$basePos.data[2] + $var9;
                    $var16 = $var22 | 0;
                    if ($var22 < $var16)
                        $var16 = $var16 - 1 | 0;
                    $var17 = $rt_createIntArray(3);
                    var$24 = $var17.data;
                    var$24[0] = $var15;
                    var$24[1] = var$10;
                    var$24[2] = $var16;
                    $var18 = $rt_createIntArrayFromData([$var15, var$10 + $this.$leafDistanceLimit | 0, $var16]);
                    $ptr = 1;
                    continue main;
                }
                var$10 = var$10 + (-1) | 0;
                $var6 = $var6 + (-1) | 0;
            }
        }
        var$5 = $rt_createIntMultiArray([4, $var4]);
        $this.$leafNodes = var$5;
        jl_System_fastArraycopy($var2, 0, var$5, 0, $var4);
        return;
    case 1:
        $tmp = nms_WorldGenBigTree_checkBlockLine($this, $var17, $var18);
        if ($rt_suspending()) {
            break main;
        }
        var$26 = $tmp;
        if (var$26 == (-1)) {
            $var19 = $rt_createIntArray(3);
            var$28 = $var19.data;
            $var18 = $this.$basePos.data;
            var$28[0] = $var18[0];
            var$28[1] = $var18[1];
            var$28[2] = $var18[2];
            var$26 = $var18[0] - var$24[0] | 0;
            if (var$26 < 0)
                var$26 =  -var$26 | 0;
            $var11 = jl_Math_powImpl(var$26, 2.0);
            var$26 = $this.$basePos.data[2] - var$24[2] | 0;
            if (var$26 < 0)
                var$26 =  -var$26 | 0;
            $var22 = jl_Math_sqrt($var11 + jl_Math_powImpl(var$26, 2.0)) * $this.$branchSlope;
            if (var$24[1] - $var22 > var$12)
                var$28[1] = $var5;
            else
                var$28[1] = var$24[1] - $var22 | 0;
            $ptr = 2;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        a: while (true) {
            if ($var7 < $var1) {
                $var13 = $this.$scaleWidth * var$16;
                var$18 = $this.$rand5;
                var$19 = Long_and(Long_add(Long_mul(var$18.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$18.$seed = var$19;
                $var11 = $var13 * (Long_lo(Long_shru(var$19, var$11)) / 1.6777216E7 + 0.328);
                var$21 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$18.$seed = var$21;
                $var13 = Long_lo(Long_shru(var$21, var$11)) / 1.6777216E7 * 2.0 * 3.141592653589793;
                $var22 = $var11 * jl_Math_sin($var13) + $this.$basePos.data[0] + $var9;
                $var15 = $var22 | 0;
                if ($var22 < $var15)
                    $var15 = $var15 - 1 | 0;
                $var22 = $var11 * jl_Math_cos($var13) + $this.$basePos.data[2] + $var9;
                $var16 = $var22 | 0;
                if ($var22 < $var16)
                    $var16 = $var16 - 1 | 0;
                $var17 = $rt_createIntArray(3);
                var$24 = $var17.data;
                var$24[0] = $var15;
                var$24[1] = var$10;
                var$24[2] = $var16;
                $var18 = $rt_createIntArrayFromData([$var15, var$10 + $this.$leafDistanceLimit | 0, $var16]);
                continue main;
            }
            var$10 = var$10 + (-1) | 0;
            $var6 = $var6 + (-1) | 0;
            while (true) {
                if ($var6 < 0)
                    break a;
                $var7 = 0;
                $var8 = nms_WorldGenBigTree_layerSize($this, $var6);
                if ($var8 >= 0.0)
                    break;
                var$10 = var$10 + (-1) | 0;
                $var6 = $var6 + (-1) | 0;
            }
            $var9 = 0.5;
            var$16 = $var8;
        }
        var$5 = $rt_createIntMultiArray([4, $var4]);
        $this.$leafNodes = var$5;
        jl_System_fastArraycopy($var2, 0, var$5, 0, $var4);
        return;
    case 2:
        $tmp = nms_WorldGenBigTree_checkBlockLine($this, $var19, $var17);
        if ($rt_suspending()) {
            break main;
        }
        var$26 = $tmp;
        if (var$26 == (-1)) {
            var$5[$var4].data[0] = $var15;
            var$5[$var4].data[1] = var$10;
            var$5[$var4].data[2] = $var16;
            var$5[$var4].data[3] = var$28[1];
            $var4 = $var4 + 1 | 0;
        }
        $var7 = $var7 + 1 | 0;
        b: while (true) {
            if ($var7 < $var1) {
                $var13 = $this.$scaleWidth * var$16;
                var$18 = $this.$rand5;
                var$19 = Long_and(Long_add(Long_mul(var$18.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$18.$seed = var$19;
                $var11 = $var13 * (Long_lo(Long_shru(var$19, var$11)) / 1.6777216E7 + 0.328);
                var$21 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$18.$seed = var$21;
                $var13 = Long_lo(Long_shru(var$21, var$11)) / 1.6777216E7 * 2.0 * 3.141592653589793;
                $var22 = $var11 * jl_Math_sin($var13) + $this.$basePos.data[0] + $var9;
                $var15 = $var22 | 0;
                if ($var22 < $var15)
                    $var15 = $var15 - 1 | 0;
                $var22 = $var11 * jl_Math_cos($var13) + $this.$basePos.data[2] + $var9;
                $var16 = $var22 | 0;
                if ($var22 < $var16)
                    $var16 = $var16 - 1 | 0;
                $var17 = $rt_createIntArray(3);
                var$24 = $var17.data;
                var$24[0] = $var15;
                var$24[1] = var$10;
                var$24[2] = $var16;
                $var18 = $rt_createIntArrayFromData([$var15, var$10 + $this.$leafDistanceLimit | 0, $var16]);
                $ptr = 1;
                continue main;
            }
            var$10 = var$10 + (-1) | 0;
            $var6 = $var6 + (-1) | 0;
            while (true) {
                if ($var6 < 0)
                    break b;
                $var7 = 0;
                $var8 = nms_WorldGenBigTree_layerSize($this, $var6);
                if ($var8 >= 0.0)
                    break;
                var$10 = var$10 + (-1) | 0;
                $var6 = $var6 + (-1) | 0;
            }
            $var9 = 0.5;
            var$16 = $var8;
        }
        var$5 = $rt_createIntMultiArray([4, $var4]);
        $this.$leafNodes = var$5;
        jl_System_fastArraycopy($var2, 0, var$5, 0, $var4);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var22, $var6, $var2, var$5, $var17, $var3, $var4, $var5, var$10, var$11, var$12, $var7, $var8, $var9, var$16, $var13, var$18, var$19, $var11, var$21, $var15, $var16, var$24, $var18, var$26, $var19, var$28, $ptr);
},
nms_WorldGenBigTree_genTreeLayer = ($this, $par1, $par2, $par3, $par4, $par5, $par6) => {
    let $var7, $var11, $var8, $var9, $var10, $var12, var$13, var$14, $var14, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var14 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var11 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $par4 + 0.618 | 0;
        $var11 = nms_WorldGenBigTree_otherCoordPairs.data;
        $var8 = $var11[$par5];
        $var9 = $var11[$par5 + 3 | 0];
        $var10 = $rt_createIntArray(3).data;
        $var10[0] = $par1;
        $var10[1] = $par2;
        $var10[2] = $par3;
        $var11 = $rt_createIntArray(3).data;
        $var11[0] = 0;
        $var11[1] = 0;
        $var11[2] = 0;
        $var12 =  -$var7 | 0;
        $var11[$par5] = $var10[$par5];
        var$13 = $par4 * $par4;
        $par2 = $var12;
        while ($par2 <= $var7) {
            $var11[$var8] = $var10[$var8] + $par2 | 0;
            $par3 = $var12;
            while ($par3 <= $var7) {
                if (jl_Math_powImpl(($par2 < 0 ?  -$par2 | 0 : $par2) + 0.5, 2.0) + jl_Math_powImpl(($par3 < 0 ?  -$par3 | 0 : $par3) + 0.5, 2.0) <= var$13) {
                    $var11[$var9] = $var10[$var9] + $par3 | 0;
                    var$14 = $this.$worldObj13;
                    $var14 = $var11[0];
                    $par1 = $var11[1];
                    $par5 = $var11[2];
                    $ptr = 1;
                    continue main;
                }
                $par3 = $par3 + 1 | 0;
            }
            $par2 = $par2 + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId(var$14, $var14, $par1, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var14) {
            nms_Block_$callClinit();
            if ($var14 != nms_Block_leaves.$blockID) {
                $par3 = $par3 + 1 | 0;
                a: while (true) {
                    while ($par3 > $var7) {
                        $par2 = $par2 + 1 | 0;
                        if ($par2 > $var7)
                            break a;
                        $var11[$var8] = $var10[$var8] + $par2 | 0;
                        $par3 = $var12;
                    }
                    if (jl_Math_powImpl(($par2 < 0 ?  -$par2 | 0 : $par2) + 0.5, 2.0) + jl_Math_powImpl(($par3 < 0 ?  -$par3 | 0 : $par3) + 0.5, 2.0) <= var$13) {
                        $var11[$var9] = $var10[$var9] + $par3 | 0;
                        var$14 = $this.$worldObj13;
                        $var14 = $var11[0];
                        $par1 = $var11[1];
                        $par5 = $var11[2];
                        continue main;
                    }
                    $par3 = $par3 + 1 | 0;
                }
                return;
            }
        }
        var$14 = $this.$worldObj13;
        $par1 = $var11[0];
        $par5 = $var11[1];
        $var14 = $var11[2];
        var$16 = 0;
        if (!$this.$doBlockNotify) {
            var$17 = 2;
            $ptr = 2;
            continue main;
        }
        var$17 = 3;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlock(var$14, $par1, $par5, $var14, $par6, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        b: while (true) {
            while ($par3 > $var7) {
                $par2 = $par2 + 1 | 0;
                if ($par2 > $var7)
                    break b;
                $var11[$var8] = $var10[$var8] + $par2 | 0;
                $par3 = $var12;
            }
            if (jl_Math_powImpl(($par2 < 0 ?  -$par2 | 0 : $par2) + 0.5, 2.0) + jl_Math_powImpl(($par3 < 0 ?  -$par3 | 0 : $par3) + 0.5, 2.0) <= var$13) {
                $var11[$var9] = $var10[$var9] + $par3 | 0;
                var$14 = $this.$worldObj13;
                $var14 = $var11[0];
                $par1 = $var11[1];
                $par5 = $var11[2];
                $ptr = 1;
                continue main;
            }
            $par3 = $par3 + 1 | 0;
        }
        return;
    case 3:
        nms_World_setBlock(var$14, $par1, $par5, $var14, $par6, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $par3 + 1 | 0;
        b: while (true) {
            while ($par3 > $var7) {
                $par2 = $par2 + 1 | 0;
                if ($par2 > $var7)
                    break b;
                $var11[$var8] = $var10[$var8] + $par2 | 0;
                $par3 = $var12;
            }
            if (jl_Math_powImpl(($par2 < 0 ?  -$par2 | 0 : $par2) + 0.5, 2.0) + jl_Math_powImpl(($par3 < 0 ?  -$par3 | 0 : $par3) + 0.5, 2.0) <= var$13) {
                $var11[$var9] = $var10[$var9] + $par3 | 0;
                var$14 = $this.$worldObj13;
                $var14 = $var11[0];
                $par1 = $var11[1];
                $par5 = $var11[2];
                $ptr = 1;
                continue main;
            }
            $par3 = $par3 + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, $var7, $var11, $var8, $var9, $var10, $var12, var$13, var$14, $var14, var$16, var$17, $ptr);
},
nms_WorldGenBigTree_layerSize = ($this, $par1) => {
    let var$2, $var3, $var4;
    var$2 = $par1;
    $var3 = $this.$heightLimit;
    if (var$2 < $var3 * 0.3)
        return (-1.6180000305175781);
    $var4 = $var3 / 2.0;
    $var3 = $var4 - $par1;
    if ($var3 !== 0.0)
        $var4 = jl_Math_absImpl0($var3) >= $var4 ? 0.0 : jl_Math_sqrt(jl_Math_powImpl(jl_Math_absImpl0($var4), 2.0) - jl_Math_powImpl(jl_Math_absImpl0($var3), 2.0));
    return $var4 * 0.5;
},
nms_WorldGenBigTree_placeBlockLine = ($this, $par1ArrayOfInteger, $par2ArrayOfInteger, $par3) => {
    let $var4, $var5, $var6, $var14, var$8, $var17, $var18, $var7, $var8, $var9, $var10, $var12, $var15, $var16, var$18, var$19, $var19, $var20, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();var$8 = $thread.pop();$var14 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2ArrayOfInteger = $thread.pop();$par1ArrayOfInteger
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $rt_createIntArray(3).data;
        $var4[0] = 0;
        $var4[1] = 0;
        $var4[2] = 0;
        $var5 = 0;
        $var6 = 0;
        while ($var5 < 3) {
            $var14 = $par2ArrayOfInteger.data;
            var$8 = $par1ArrayOfInteger.data;
            $var4[$var5] = $var14[$var5] - var$8[$var5] | 0;
            $var17 = $var4[$var5];
            if ($var17 < 0)
                $var17 =  -$var17 | 0;
            $var18 = $var4[$var6];
            if ($var18 < 0)
                $var18 =  -$var18 | 0;
            if ($var17 > $var18)
                $var6 = $var5;
            $var5 = ($var5 + 1 | 0) << 24 >> 24;
        }
        if ($var4[$var6]) {
            $par2ArrayOfInteger = nms_WorldGenBigTree_otherCoordPairs.data;
            $var7 = $par2ArrayOfInteger[$var6];
            $var8 = $par2ArrayOfInteger[$var6 + 3 | 0];
            $var9 = $var4[$var6] <= 0 ? (-1) : 1;
            $var10 = $var4[$var7] / $var4[$var6];
            $var12 = $var4[$var8] / $var4[$var6];
            $par2ArrayOfInteger = $rt_createIntArray(3).data;
            $par2ArrayOfInteger[0] = 0;
            $par2ArrayOfInteger[1] = 0;
            $par2ArrayOfInteger[2] = 0;
            $var15 = 0;
            $var16 = $var4[$var6] + $var9 | 0;
            if ($var15 != $var16) {
                $var4 = $par1ArrayOfInteger.data;
                var$18 = ($var4[$var6] + $var15 | 0) + 0.5;
                $var17 = var$18 | 0;
                if (var$18 < $var17)
                    $var17 = $var17 - 1 | 0;
                $par2ArrayOfInteger[$var6] = $var17;
                var$19 = $var4[$var7];
                var$18 = $var15;
                var$19 = var$19 + var$18 * $var10 + 0.5;
                $var17 = var$19 | 0;
                if (var$19 < $var17)
                    $var17 = $var17 - 1 | 0;
                $par2ArrayOfInteger[$var7] = $var17;
                var$19 = $var4[$var8] + var$18 * $var12 + 0.5;
                $var17 = var$19 | 0;
                if (var$19 < $var17)
                    $var17 = $var17 - 1 | 0;
                $par2ArrayOfInteger[$var8] = $var17;
                $var17 = 0;
                $var18 = $par2ArrayOfInteger[0] - $var4[0] | 0;
                if ($var18 < 0)
                    $var18 =  -$var18 | 0;
                $var19 = $par2ArrayOfInteger[2] - $var4[2] | 0;
                if ($var19 < 0)
                    $var19 =  -$var19 | 0;
                $var20 = $var18 <= $var19 ? $var19 : $var18;
                if ($var20 > 0) {
                    if ($var18 == $var20)
                        $var17 = 4;
                    else if ($var19 == $var20)
                        $var17 = 8;
                }
                var$22 = $this.$worldObj13;
                $var18 = $par2ArrayOfInteger[0];
                $var19 = $par2ArrayOfInteger[1];
                $var5 = $par2ArrayOfInteger[2];
                if (!$this.$doBlockNotify) {
                    $var20 = 2;
                    $ptr = 1;
                    continue main;
                }
                $var20 = 3;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_setBlock(var$22, $var18, $var19, $var5, $par3, $var17, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + $var9 | 0;
        if ($var15 == $var16)
            return;
        $var4 = $par1ArrayOfInteger.data;
        var$18 = ($var4[$var6] + $var15 | 0) + 0.5;
        $var17 = var$18 | 0;
        if (var$18 < $var17)
            $var17 = $var17 - 1 | 0;
        $par2ArrayOfInteger[$var6] = $var17;
        var$19 = $var4[$var7];
        var$18 = $var15;
        var$19 = var$19 + var$18 * $var10 + 0.5;
        $var17 = var$19 | 0;
        if (var$19 < $var17)
            $var17 = $var17 - 1 | 0;
        $par2ArrayOfInteger[$var7] = $var17;
        var$19 = $var4[$var8] + var$18 * $var12 + 0.5;
        $var17 = var$19 | 0;
        if (var$19 < $var17)
            $var17 = $var17 - 1 | 0;
        $par2ArrayOfInteger[$var8] = $var17;
        $var17 = 0;
        $var18 = $par2ArrayOfInteger[0] - $var4[0] | 0;
        if ($var18 < 0)
            $var18 =  -$var18 | 0;
        $var19 = $par2ArrayOfInteger[2] - $var4[2] | 0;
        if ($var19 < 0)
            $var19 =  -$var19 | 0;
        $var20 = $var18 <= $var19 ? $var19 : $var18;
        if ($var20 > 0) {
            if ($var18 == $var20)
                $var17 = 4;
            else if ($var19 == $var20)
                $var17 = 8;
        }
        var$22 = $this.$worldObj13;
        $var18 = $par2ArrayOfInteger[0];
        $var19 = $par2ArrayOfInteger[1];
        $var5 = $par2ArrayOfInteger[2];
        if (!$this.$doBlockNotify) {
            $var20 = 2;
            continue main;
        }
        $var20 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock(var$22, $var18, $var19, $var5, $par3, $var17, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + $var9 | 0;
        if ($var15 == $var16)
            return;
        $var4 = $par1ArrayOfInteger.data;
        var$18 = ($var4[$var6] + $var15 | 0) + 0.5;
        $var17 = var$18 | 0;
        if (var$18 < $var17)
            $var17 = $var17 - 1 | 0;
        $par2ArrayOfInteger[$var6] = $var17;
        var$19 = $var4[$var7];
        var$18 = $var15;
        var$19 = var$19 + var$18 * $var10 + 0.5;
        $var17 = var$19 | 0;
        if (var$19 < $var17)
            $var17 = $var17 - 1 | 0;
        $par2ArrayOfInteger[$var7] = $var17;
        var$19 = $var4[$var8] + var$18 * $var12 + 0.5;
        $var17 = var$19 | 0;
        if (var$19 < $var17)
            $var17 = $var17 - 1 | 0;
        $par2ArrayOfInteger[$var8] = $var17;
        $var17 = 0;
        $var18 = $par2ArrayOfInteger[0] - $var4[0] | 0;
        if ($var18 < 0)
            $var18 =  -$var18 | 0;
        $var19 = $par2ArrayOfInteger[2] - $var4[2] | 0;
        if ($var19 < 0)
            $var19 =  -$var19 | 0;
        $var20 = $var18 <= $var19 ? $var19 : $var18;
        if ($var20 > 0) {
            if ($var18 == $var20)
                $var17 = 4;
            else if ($var19 == $var20)
                $var17 = 8;
        }
        var$22 = $this.$worldObj13;
        $var18 = $par2ArrayOfInteger[0];
        $var19 = $par2ArrayOfInteger[1];
        $var5 = $par2ArrayOfInteger[2];
        if (!$this.$doBlockNotify) {
            $var20 = 2;
            $ptr = 1;
            continue main;
        }
        $var20 = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ArrayOfInteger, $par2ArrayOfInteger, $par3, $var4, $var5, $var6, $var14, var$8, $var17, $var18, $var7, $var8, $var9, $var10, $var12, $var15, $var16, var$18, var$19, $var19, $var20, var$22, $ptr);
},
nms_WorldGenBigTree_generateLeaves = $this => {
    let $var1, $var2, var$3, $var3, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        $var2 = $this.$leafNodes.data.length;
        while ($var1 < $var2) {
            var$3 = $this.$leafNodes.data;
            $var3 = var$3[$var1].data[0];
            $var4 = var$3[$var1].data[1];
            $var5 = var$3[$var1].data[2];
            var$7 = $var4 + $this.$leafDistanceLimit | 0;
            var$8 = $var4;
            if (var$8 < var$7) {
                a: {
                    var$9 = var$8 - $var4 | 0;
                    if (var$9 >= 0) {
                        var$10 = $this.$leafDistanceLimit;
                        if (var$9 < var$10) {
                            if (var$9 && var$9 != (var$10 - 1 | 0)) {
                                var$11 = 3.0;
                                break a;
                            }
                            var$11 = 2.0;
                            break a;
                        }
                    }
                    var$11 = (-1.0);
                }
                var$9 = 1;
                nms_Block_$callClinit();
                var$12 = nms_Block_leaves.$blockID;
                $ptr = 1;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        return;
    case 1:
        nms_WorldGenBigTree_genTreeLayer($this, $var3, var$8, $var5, var$11, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$8 + 1 | 0;
        while (true) {
            if (var$8 < var$7) {
                b: {
                    var$9 = var$8 - $var4 | 0;
                    if (var$9 >= 0) {
                        var$10 = $this.$leafDistanceLimit;
                        if (var$9 < var$10) {
                            if (var$9 && var$9 != (var$10 - 1 | 0)) {
                                var$11 = 3.0;
                                break b;
                            }
                            var$11 = 2.0;
                            break b;
                        }
                    }
                    var$11 = (-1.0);
                }
                var$9 = 1;
                nms_Block_$callClinit();
                var$12 = nms_Block_leaves.$blockID;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
            if ($var1 >= $var2)
                break;
            var$3 = $this.$leafNodes.data;
            $var3 = var$3[$var1].data[0];
            $var4 = var$3[$var1].data[1];
            $var5 = var$3[$var1].data[2];
            var$7 = $var4 + $this.$leafDistanceLimit | 0;
            var$8 = $var4;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, var$3, $var3, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_WorldGenBigTree_generateTrunk = $this => {
    let $var5, $var1, $var2, $var3, $var4, var$6, $var6, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$var5 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$basePos.data;
        $var1 = $var5[0];
        $var2 = $var5[1];
        $var3 = $var5[1] + $this.$height1 | 0;
        $var4 = $var5[2];
        $var5 = $rt_createIntArray(3);
        var$6 = $var5.data;
        var$6[0] = $var1;
        var$6[1] = $var2;
        var$6[2] = $var4;
        $var6 = $rt_createIntArray(3);
        var$8 = $var6.data;
        var$8[0] = $var1;
        var$8[1] = $var3;
        var$8[2] = $var4;
        nms_Block_$callClinit();
        var$9 = nms_Block_wood.$blockID;
        $ptr = 1;
    case 1:
        nms_WorldGenBigTree_placeBlockLine($this, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$trunkSize != 2)
            return;
        var$6[0] = var$6[0] + 1 | 0;
        var$8[0] = var$8[0] + 1 | 0;
        var$9 = nms_Block_wood.$blockID;
        $ptr = 2;
    case 2:
        nms_WorldGenBigTree_placeBlockLine($this, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$6[2] = var$6[2] + 1 | 0;
        var$8[2] = var$8[2] + 1 | 0;
        var$9 = nms_Block_wood.$blockID;
        $ptr = 3;
    case 3:
        nms_WorldGenBigTree_placeBlockLine($this, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$6[0] = var$6[0] + (-1) | 0;
        var$8[0] = var$8[0] + (-1) | 0;
        var$9 = nms_Block_wood.$blockID;
        $ptr = 4;
    case 4:
        nms_WorldGenBigTree_placeBlockLine($this, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var5, $var1, $var2, $var3, $var4, var$6, $var6, var$8, var$9, $ptr);
},
nms_WorldGenBigTree_generateLeafNodeBases = $this => {
    let $var1, $var2, $var3, var$4, $var5, $var4, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        $var2 = $this.$leafNodes.data.length;
        $var3 = $rt_createIntArray(3);
        var$4 = $var3.data;
        $var5 = $this.$basePos.data;
        var$4[0] = $var5[0];
        var$4[1] = $var5[1];
        var$4[2] = $var5[2];
        while ($var1 < $var2) {
            $var4 = $this.$leafNodes.data[$var1].data;
            $var5 = $rt_createIntArrayFromData([$var4[0], $var4[1], $var4[2]]);
            var$4[1] = $var4[3];
            if ((var$4[1] - $this.$basePos.data[1] | 0) < $this.$heightLimit * 0.2 ? 0 : 1) {
                nms_Block_$callClinit();
                $var6 = nms_Block_wood.$blockID << 24 >> 24;
                $ptr = 1;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        return;
    case 1:
        nms_WorldGenBigTree_placeBlockLine($this, $var3, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var1 = $var1 + 1 | 0;
            if ($var1 >= $var2)
                break;
            $var4 = $this.$leafNodes.data[$var1].data;
            $var5 = $rt_createIntArrayFromData([$var4[0], $var4[1], $var4[2]]);
            var$4[1] = $var4[3];
            if (!((var$4[1] - $this.$basePos.data[1] | 0) < $this.$heightLimit * 0.2 ? 0 : 1))
                continue;
            else {
                nms_Block_$callClinit();
                $var6 = nms_Block_wood.$blockID << 24 >> 24;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var3, var$4, $var5, $var4, $var6, $ptr);
},
nms_WorldGenBigTree_checkBlockLine = ($this, $par1ArrayOfInteger, $par2ArrayOfInteger) => {
    let var$3, $var4, $var5, $var3, $var13, $var6, $var7, $var8, $var9, $var11, $var14, $var15, var$15, var$16, var$17, var$18, $var16, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var16 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var13 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$par2ArrayOfInteger = $thread.pop();$par1ArrayOfInteger
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $rt_createIntArray(3).data;
        var$3[0] = 0;
        var$3[1] = 0;
        var$3[2] = 0;
        $var4 = 0;
        $var5 = 0;
        while ($var4 < 3) {
            $var3 = $par2ArrayOfInteger.data;
            $var13 = $par1ArrayOfInteger.data;
            var$3[$var4] = $var3[$var4] - $var13[$var4] | 0;
            $var6 = var$3[$var4];
            if ($var6 < 0)
                $var6 =  -$var6 | 0;
            $var7 = var$3[$var5];
            if ($var7 < 0)
                $var7 =  -$var7 | 0;
            if ($var6 > $var7)
                $var5 = $var4;
            $var4 = ($var4 + 1 | 0) << 24 >> 24;
        }
        if (!var$3[$var5])
            return (-1);
        $par2ArrayOfInteger = nms_WorldGenBigTree_otherCoordPairs.data;
        $var6 = $par2ArrayOfInteger[$var5];
        $var7 = $par2ArrayOfInteger[$var5 + 3 | 0];
        $var8 = var$3[$var5] <= 0 ? (-1) : 1;
        $var9 = var$3[$var6] / var$3[$var5];
        $var11 = var$3[$var7] / var$3[$var5];
        $par2ArrayOfInteger = $rt_createIntArray(3).data;
        $par2ArrayOfInteger[0] = 0;
        $par2ArrayOfInteger[1] = 0;
        $par2ArrayOfInteger[2] = 0;
        $var14 = 0;
        $var15 = var$3[$var5] + $var8 | 0;
        var$15 = $rt_compare($var14, $var15);
        if (!var$15) {
            if (!var$15)
                $var14 = (-1);
            else if ($var14 < 0)
                $var14 =  -$var14 | 0;
            return $var14;
        }
        $var3 = $par1ArrayOfInteger.data;
        $par2ArrayOfInteger[$var5] = $var3[$var5] + $var14 | 0;
        var$16 = $var3[$var6];
        var$17 = $var14;
        var$18 = var$16 + var$17 * $var9;
        $var16 = var$18 | 0;
        if (var$18 < $var16)
            $var16 = $var16 - 1 | 0;
        $par2ArrayOfInteger[$var6] = $var16;
        var$17 = $var3[$var7] + var$17 * $var11;
        $var16 = var$17 | 0;
        if (var$17 < $var16)
            $var16 = $var16 - 1 | 0;
        $par2ArrayOfInteger[$var7] = $var16;
        var$20 = $this.$worldObj13;
        var$21 = $par2ArrayOfInteger[0];
        $var4 = $par2ArrayOfInteger[1];
        $var16 = $par2ArrayOfInteger[2];
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId(var$20, var$21, $var4, $var16);
            if ($rt_suspending()) {
                break main;
            }
            $var16 = $tmp;
            if ($var16) {
                nms_Block_$callClinit();
                if ($var16 != nms_Block_leaves.$blockID)
                    break a;
            }
            $var14 = $var14 + $var8 | 0;
            var$15 = $rt_compare($var14, $var15);
            if (var$15) {
                $var3 = $par1ArrayOfInteger.data;
                $par2ArrayOfInteger[$var5] = $var3[$var5] + $var14 | 0;
                var$16 = $var3[$var6];
                var$17 = $var14;
                var$18 = var$16 + var$17 * $var9;
                $var16 = var$18 | 0;
                if (var$18 < $var16)
                    $var16 = $var16 - 1 | 0;
                $par2ArrayOfInteger[$var6] = $var16;
                var$17 = $var3[$var7] + var$17 * $var11;
                $var16 = var$17 | 0;
                if (var$17 < $var16)
                    $var16 = $var16 - 1 | 0;
                $par2ArrayOfInteger[$var7] = $var16;
                var$20 = $this.$worldObj13;
                var$21 = $par2ArrayOfInteger[0];
                $var4 = $par2ArrayOfInteger[1];
                $var16 = $par2ArrayOfInteger[2];
                continue main;
            }
        }
        if (!var$15)
            $var14 = (-1);
        else if ($var14 < 0)
            $var14 =  -$var14 | 0;
        return $var14;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ArrayOfInteger, $par2ArrayOfInteger, var$3, $var4, $var5, $var3, $var13, $var6, $var7, $var8, $var9, $var11, $var14, $var15, var$15, var$16, var$17, var$18, $var16, var$20, var$21, $ptr);
},
nms_WorldGenBigTree_validTreeLocation = $this => {
    let $var1, $var2, var$3, var$4, var$5, $var3, $var4, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $rt_createIntArray(3);
        $var2 = $var1.data;
        var$3 = $this.$basePos.data;
        $var2[0] = var$3[0];
        $var2[1] = var$3[1];
        $var2[2] = var$3[2];
        $var2 = $rt_createIntArray(3);
        var$4 = $var2.data;
        var$4[0] = var$3[0];
        var$4[1] = (var$3[1] + $this.$heightLimit | 0) - 1 | 0;
        var$4[2] = var$3[2];
        var$5 = $this.$worldObj13;
        $var3 = var$3[0];
        $var4 = var$3[1] - 1 | 0;
        var$8 = var$3[2];
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$5, $var3, $var4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 != 2 && $var3 != 3)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_WorldGenBigTree_checkBlockLine($this, $var1, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 == (-1))
            return 1;
        if ($var4 < 6)
            return 0;
        $this.$heightLimit = $var4;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, var$3, var$4, var$5, $var3, $var4, var$8, $ptr);
},
nms_WorldGenBigTree_setScale = ($this, $par1, $par3, $par5) => {
    $this.$heightLimitLimit = $par1 * 12.0 | 0;
    if ($par1 > 0.5)
        $this.$leafDistanceLimit = 5;
    $this.$scaleWidth = $par3;
    $this.$leafDensity = $par5;
},
nms_WorldGenBigTree_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$worldObj13 = $par1World;
        $var6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = $var6;
        var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru($var6, 16))), 32);
        $var6 = Long_and(Long_add(Long_mul($var6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = $var6;
        $var6 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru($var6, 16))));
        $par1World = $this.$rand5;
        $par1World.$seed = $var6;
        var$8 = $this.$basePos.data;
        var$8[0] = $par3;
        var$8[1] = $par4;
        var$8[2] = $par5;
        if (!$this.$heightLimit) {
            $par4 = $this.$heightLimitLimit;
            $var6 = Long_and(Long_add(Long_mul($var6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = $var6;
            var$9 = Long_lo(Long_shru($var6, 17));
            $par5 = $par4 - 1 | 0;
            if (!($par4 & $par5))
                var$10 = Long_lo(Long_shr(Long_mul(Long_fromInt($par4), Long_fromInt(var$9)), 31));
            else
                while (true) {
                    var$10 = var$9 % $par4 | 0;
                    if (((var$9 - var$10 | 0) + $par5 | 0) >= 0)
                        break;
                    $var6 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = $var6;
                    var$9 = Long_lo(Long_shru($var6, 17));
                }
            $this.$heightLimit = 5 + var$10 | 0;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_WorldGenBigTree_validTreeLocation($this);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3)
            return 0;
        $ptr = 2;
    case 2:
        nms_WorldGenBigTree_generateLeafNodeList($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_WorldGenBigTree_generateLeaves($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_WorldGenBigTree_generateTrunk($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_WorldGenBigTree_generateLeafNodeBases($this);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, $ptr);
},
nms_WorldGenBigTree__clinit_ = () => {
    nms_WorldGenBigTree_otherCoordPairs = $rt_createByteArrayFromData([2, 0, 0, 1, 2, 1]);
},
nms_WorldGenForest = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenForest_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, var$7, $var11, $var12, $var6, $var7, var$12, $var17, $var8, $var9, $var10, $var10_0, $var13, $var12_0, $var14, $var15, var$22, $var16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var16 = $thread.pop();var$22 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var12_0 = $thread.pop();$var13 = $thread.pop();$var10_0 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var17 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random
        = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        var$7 = 17;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var12 = $var11 % 3 | 0;
            if ((($var11 - $var12 | 0) + 2 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        $var6 = $var12 + 5 | 0;
        $var7 = 1;
        if ($par4 >= 1) {
            var$12 = $par4 + $var6 | 0;
            if ((var$12 + 1 | 0) <= 256) {
                $var17 = ($par4 + 1 | 0) + $var6 | 0;
                $var12 = $var17 - 2 | 0;
                $var8 = $par4;
                a: while (true) {
                    if ($var8 > $var17) {
                        if (!$var7)
                            return 0;
                        $var8 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var9 = 1;
                    if ($var8 == $par4)
                        $var9 = 0;
                    if ($var8 >= $var12)
                        $var9 = 2;
                    $var10 = $par3 - $var9 | 0;
                    while ($var10 <= ($par3 + $var9 | 0) && $var7) {
                        $var11 = $par5 - $var9 | 0;
                        while ($var11 <= ($par5 + $var9 | 0) && $var7) {
                            if ($var8 >= 0 && $var8 < 256)
                                break a;
                            $var7 = 0;
                            $var11 = $var11 + 1 | 0;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                $ptr = 7;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $var8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        nms_Block_$callClinit();
        if (!($var17 != nms_Block_grass.$blockID && $var17 != nms_Block_dirt.$blockID) && $par4 < ((256 - $var6 | 0) - 1 | 0)) {
            $var17 = nms_Block_dirt.$blockID;
            $var11 = 0;
            if (!$this.$doBlockNotify) {
                $var12 = 2;
                $ptr = 2;
                continue main;
            }
            $var12 = 3;
            $ptr = 3;
            continue main;
        }
        return 0;
    case 2:
        nms_World_setBlock($par1World, $par3, $var8, $par5, $var17, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = ($par4 - 3 | 0) + $var6 | 0;
        var$6 = Long_fromInt(2);
        b: while (true) {
            if ($var17 > var$12) {
                $var17 = 0;
                if ($var17 >= $var6)
                    return 1;
                $var11 = $par4 + $var17 | 0;
                $ptr = 4;
                continue main;
            }
            $var10_0 = $var17 - var$12 | 0;
            $var11 = 1 - ($var10_0 / 2 | 0) | 0;
            $var12 = $par3 - $var11 | 0;
            $var8 = $par3 + $var11 | 0;
            $var9 = $par5 - $var11 | 0;
            $var7 = $par5 + $var11 | 0;
            while ($var12 <= $var8) {
                $var13 = $var12 - $par3 | 0;
                $var12_0 =  -$var13 | 0;
                $var14 = $var9;
                while ($var14 <= $var7) {
                    $var15 = $var14 - $par5 | 0;
                    if (($var13 < 0 ? $var12_0 : $var13) != $var11)
                        break b;
                    if ($var15 < 0)
                        $var15 =  -$var15 | 0;
                    if ($var15 != $var11)
                        break b;
                    var$22 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$22;
                    if (Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$22, var$7)))), 31)) && $var10_0)
                        break b;
                    $var14 = $var14 + 1 | 0;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var17 = $var17 + 1 | 0;
        }
        $ptr = 8;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $par3, $var8, $par5, $var17, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = ($par4 - 3 | 0) + $var6 | 0;
        var$6 = Long_fromInt(2);
        b: while (true) {
            if ($var17 > var$12) {
                $var17 = 0;
                if ($var17 >= $var6)
                    return 1;
                $var11 = $par4 + $var17 | 0;
                $ptr = 4;
                continue main;
            }
            $var10_0 = $var17 - var$12 | 0;
            $var11 = 1 - ($var10_0 / 2 | 0) | 0;
            $var12 = $par3 - $var11 | 0;
            $var8 = $par3 + $var11 | 0;
            $var9 = $par5 - $var11 | 0;
            $var7 = $par5 + $var11 | 0;
            while ($var12 <= $var8) {
                $var13 = $var12 - $par3 | 0;
                $var12_0 =  -$var13 | 0;
                $var14 = $var9;
                while ($var14 <= $var7) {
                    $var15 = $var14 - $par5 | 0;
                    if (($var13 < 0 ? $var12_0 : $var13) != $var11)
                        break b;
                    if ($var15 < 0)
                        $var15 =  -$var15 | 0;
                    if ($var15 != $var11)
                        break b;
                    var$22 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$22;
                    if (Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$22, var$7)))), 31)) && $var10_0)
                        break b;
                    $var14 = $var14 + 1 | 0;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var17 = $var17 + 1 | 0;
        }
        $ptr = 8;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par3, $var11, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 && $var10 != nms_Block_leaves.$blockID) {
            $var17 = $var17 + 1 | 0;
            if ($var17 >= $var6)
                return 1;
            $var11 = $par4 + $var17 | 0;
            continue main;
        }
        $var12 = nms_Block_wood.$blockID;
        $var8 = 2;
        if (!$this.$doBlockNotify) {
            $var13 = 2;
            $ptr = 5;
            continue main;
        }
        $var13 = 3;
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $par3, $var11, $par5, $var12, $var8, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $var17 + 1 | 0;
        if ($var17 >= $var6)
            return 1;
        $var11 = $par4 + $var17 | 0;
        $ptr = 4;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par3, $var11, $par5, $var12, $var8, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $var17 + 1 | 0;
        if ($var17 >= $var6)
            return 1;
        $var11 = $par4 + $var17 | 0;
        $ptr = 4;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $var10, $var8, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $tmp;
        if ($var12_0) {
            nms_Block_$callClinit();
            if ($var12_0 != nms_Block_leaves.$blockID)
                $var7 = 0;
        }
        while (true) {
            $var11 = $var11 + 1 | 0;
            while (!($var11 <= ($par5 + $var9 | 0) && $var7)) {
                $var10 = $var10 + 1 | 0;
                while (!($var10 <= ($par3 + $var9 | 0) && $var7)) {
                    $var8 = $var8 + 1 | 0;
                    if ($var8 > $var17) {
                        if (!$var7)
                            return 0;
                        $var8 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var9 = 1;
                    if ($var8 == $par4)
                        $var9 = 0;
                    if ($var8 >= $var12)
                        $var9 = 2;
                    $var10 = $par3 - $var9 | 0;
                }
                $var11 = $par5 - $var9 | 0;
            }
            if ($var8 >= 0 && $var8 < 256)
                break;
            $var7 = 0;
        }
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var12, $var17, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if ($var16 && $var16 != nms_Block_leaves.$blockID) {
            while (true) {
                $var14 = $var14 + 1 | 0;
                while ($var14 > $var7) {
                    $var12 = $var12 + 1 | 0;
                    while ($var12 > $var8) {
                        $var17 = $var17 + 1 | 0;
                        if ($var17 > var$12) {
                            $var17 = 0;
                            if ($var17 >= $var6)
                                return 1;
                            $var11 = $par4 + $var17 | 0;
                            $ptr = 4;
                            continue main;
                        }
                        $var10_0 = $var17 - var$12 | 0;
                        $var11 = 1 - ($var10_0 / 2 | 0) | 0;
                        $var12 = $par3 - $var11 | 0;
                        $var8 = $par3 + $var11 | 0;
                        $var9 = $par5 - $var11 | 0;
                        $var7 = $par5 + $var11 | 0;
                    }
                    $var13 = $var12 - $par3 | 0;
                    $var12_0 =  -$var13 | 0;
                    $var14 = $var9;
                }
                $var15 = $var14 - $par5 | 0;
                if (($var13 < 0 ? $var12_0 : $var13) != $var11)
                    break;
                if ($var15 < 0)
                    $var15 =  -$var15 | 0;
                if ($var15 != $var11)
                    break;
                var$22 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$22;
                if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$22, var$7)))), 31)))
                    continue;
                if (!$var10_0)
                    continue;
                else
                    break;
            }
            continue main;
        }
        $var10 = nms_Block_leaves.$blockID;
        $var15 = 2;
        if (!$this.$doBlockNotify) {
            $var16 = 2;
            $ptr = 9;
            continue main;
        }
        $var16 = 3;
        $ptr = 10;
        continue main;
    case 9:
        nms_World_setBlock($par1World, $var12, $var17, $var14, $var10, $var15, $var16);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $var7) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > $var8) {
                    $var17 = $var17 + 1 | 0;
                    if ($var17 > var$12) {
                        $var17 = 0;
                        if ($var17 >= $var6)
                            return 1;
                        $var11 = $par4 + $var17 | 0;
                        $ptr = 4;
                        continue main;
                    }
                    $var10_0 = $var17 - var$12 | 0;
                    $var11 = 1 - ($var10_0 / 2 | 0) | 0;
                    $var12 = $par3 - $var11 | 0;
                    $var8 = $par3 + $var11 | 0;
                    $var9 = $par5 - $var11 | 0;
                    $var7 = $par5 + $var11 | 0;
                }
                $var13 = $var12 - $par3 | 0;
                $var12_0 =  -$var13 | 0;
                $var14 = $var9;
            }
            $var15 = $var14 - $par5 | 0;
            if (($var13 < 0 ? $var12_0 : $var13) != $var11)
                break;
            if ($var15 < 0)
                $var15 =  -$var15 | 0;
            if ($var15 != $var11)
                break;
            var$22 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$22;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$22, var$7)))), 31)))
                continue;
            if (!$var10_0)
                continue;
            else
                break;
        }
        $ptr = 8;
        continue main;
    case 10:
        nms_World_setBlock($par1World, $var12, $var17, $var14, $var10, $var15, $var16);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $var7) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > $var8) {
                    $var17 = $var17 + 1 | 0;
                    if ($var17 > var$12) {
                        $var17 = 0;
                        if ($var17 >= $var6)
                            return 1;
                        $var11 = $par4 + $var17 | 0;
                        $ptr = 4;
                        continue main;
                    }
                    $var10_0 = $var17 - var$12 | 0;
                    $var11 = 1 - ($var10_0 / 2 | 0) | 0;
                    $var12 = $par3 - $var11 | 0;
                    $var8 = $par3 + $var11 | 0;
                    $var9 = $par5 - $var11 | 0;
                    $var7 = $par5 + $var11 | 0;
                }
                $var13 = $var12 - $par3 | 0;
                $var12_0 =  -$var13 | 0;
                $var14 = $var9;
            }
            $var15 = $var14 - $par5 | 0;
            if (($var13 < 0 ? $var12_0 : $var13) != $var11)
                break;
            if ($var15 < 0)
                $var15 =  -$var15 | 0;
            if ($var15 != $var11)
                break;
            var$22 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$22;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$22, var$7)))), 31)))
                continue;
            if (!$var10_0)
                continue;
            else
                break;
        }
        $ptr = 8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, var$7, $var11, $var12, $var6, $var7, var$12, $var17, $var8, $var9, $var10, $var10_0, $var13, $var12_0, $var14, $var15, var$22, $var16, $ptr);
},
nms_WorldGenSwamp = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenSwamp__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenSwamp__init_0 = () => {
    let var_0 = new nms_WorldGenSwamp();
    nms_WorldGenSwamp__init_(var_0);
    return var_0;
},
nms_WorldGenSwamp_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, var$7, $var6, $var10, $var8, var$11, $var7, var$13, $var10_0, $var9, $var15, $var11, $var16, var$19, $var11_0, $var12, $var13, var$23, $var14, var$25, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var14 = $thread.pop();var$23 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11_0 = $thread.pop();var$19 = $thread.pop();$var16 = $thread.pop();$var11 = $thread.pop();$var15 = $thread.pop();$var9 = $thread.pop();$var10_0 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();var$6
        = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        var$7 = 17;
        $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) + 5 | 0;
        $var10 = $par4 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $var10, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8) {
            nms_Material_$callClinit();
            var$11 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$11 = nms_Block_blocksList.data[$var8].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$11 === nms_Material_water) {
            $par4 = $par4 + (-1) | 0;
            $var10 = $par4 - 1 | 0;
            continue main;
        }
        $var7 = 1;
        if ($par4 >= 1) {
            var$13 = $par4 + $var6 | 0;
            if ((var$13 + 1 | 0) <= 128) {
                $var8 = $par4;
                a: while (true) {
                    $var10_0 = ($par4 + 1 | 0) + $var6 | 0;
                    if ($var8 > $var10_0) {
                        if (!$var7)
                            return 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var9 = 1;
                    $var15 = $rt_compare($var8, $par4);
                    if (!$var15)
                        $var9 = 0;
                    if ($var8 >= ($var10_0 - 2 | 0))
                        $var9 = 3;
                    $var10_0 = $par3 - $var9 | 0;
                    while ($var10_0 <= ($par3 + $var9 | 0) && $var7) {
                        $var11 = $par5 - $var9 | 0;
                        while ($var11 <= ($par5 + $var9 | 0) && $var7) {
                            if ($var8 >= 0 && $var8 < 128)
                                break a;
                            $var7 = 0;
                            $var11 = $var11 + 1 | 0;
                        }
                        $var10_0 = $var10_0 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                $ptr = 8;
                continue main;
            }
        }
        return 0;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $var10, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        nms_Block_$callClinit();
        if (!($var8 != nms_Block_grass.$blockID && $var8 != nms_Block_dirt.$blockID) && $par4 < ((128 - $var6 | 0) - 1 | 0)) {
            $var8 = nms_Block_dirt.$blockID;
            $var10_0 = 0;
            if (!$this.$doBlockNotify) {
                $var15 = 2;
                $ptr = 3;
                continue main;
            }
            $var15 = 3;
            $ptr = 4;
            continue main;
        }
        return 0;
    case 3:
        nms_World_setBlock($par1World, $par3, $var10, $par5, $var8, $var10_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = ($par4 - 3 | 0) + $var6 | 0;
        var$6 = Long_fromInt(2);
        $var16 = $var8;
        b: while (true) {
            if ($var16 > var$13) {
                $var11 = 0;
                if ($var11 < $var6) {
                    $var16 = $par4 + $var11 | 0;
                    $ptr = 5;
                    continue main;
                }
                var$19 = Long_fromInt(4);
                while ($var8 <= var$13) {
                    $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                    $var12 = $par3 - $var11_0 | 0;
                    $var11 = $par3 + $var11_0 | 0;
                    $var9 = $par5 - $var11_0 | 0;
                    $var11_0 = $par5 + $var11_0 | 0;
                    while ($var12 <= $var11) {
                        $var13 = $var9;
                        if ($var13 <= $var11_0) {
                            $ptr = 10;
                            continue main;
                        }
                        $var12 = $var12 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                return 1;
            }
            $var10 = $var16 - var$13 | 0;
            $var11 = 2 - ($var10 / 2 | 0) | 0;
            $var12 = $par3 - $var11 | 0;
            $var9 = $par3 + $var11 | 0;
            $var11_0 = $par5 - $var11 | 0;
            $var7 = $par5 + $var11 | 0;
            while ($var12 <= $var9) {
                $var13 = $var12 - $par3 | 0;
                var$23 =  -$var13 | 0;
                $var14 = $var11_0;
                while ($var14 <= $var7) {
                    $var15 = $var14 - $par5 | 0;
                    if (($var13 < 0 ? var$23 : $var13) != $var11)
                        break b;
                    if ($var15 < 0)
                        $var15 =  -$var15 | 0;
                    if ($var15 != $var11)
                        break b;
                    var$25 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$25;
                    if (Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$25, var$7)))), 31)) && $var10)
                        break b;
                    $var14 = $var14 + 1 | 0;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var16 = $var16 + 1 | 0;
        }
        var$26 = nms_Block_opaqueCubeLookup.data;
        $ptr = 9;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par3, $var10, $par5, $var8, $var10_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = ($par4 - 3 | 0) + $var6 | 0;
        var$6 = Long_fromInt(2);
        $var16 = $var8;
        b: while (true) {
            if ($var16 > var$13) {
                $var11 = 0;
                if ($var11 < $var6) {
                    $var16 = $par4 + $var11 | 0;
                    $ptr = 5;
                    continue main;
                }
                var$19 = Long_fromInt(4);
                while ($var8 <= var$13) {
                    $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                    $var12 = $par3 - $var11_0 | 0;
                    $var11 = $par3 + $var11_0 | 0;
                    $var9 = $par5 - $var11_0 | 0;
                    $var11_0 = $par5 + $var11_0 | 0;
                    while ($var12 <= $var11) {
                        $var13 = $var9;
                        if ($var13 <= $var11_0) {
                            $ptr = 10;
                            continue main;
                        }
                        $var12 = $var12 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                return 1;
            }
            $var10 = $var16 - var$13 | 0;
            $var11 = 2 - ($var10 / 2 | 0) | 0;
            $var12 = $par3 - $var11 | 0;
            $var9 = $par3 + $var11 | 0;
            $var11_0 = $par5 - $var11 | 0;
            $var7 = $par5 + $var11 | 0;
            while ($var12 <= $var9) {
                $var13 = $var12 - $par3 | 0;
                var$23 =  -$var13 | 0;
                $var14 = $var11_0;
                while ($var14 <= $var7) {
                    $var15 = $var14 - $par5 | 0;
                    if (($var13 < 0 ? var$23 : $var13) != $var11)
                        break b;
                    if ($var15 < 0)
                        $var15 =  -$var15 | 0;
                    if ($var15 != $var11)
                        break b;
                    var$25 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$25;
                    if (Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$25, var$7)))), 31)) && $var10)
                        break b;
                    $var14 = $var14 + 1 | 0;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var16 = $var16 + 1 | 0;
        }
        var$26 = nms_Block_opaqueCubeLookup.data;
        $ptr = 9;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par3, $var16, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $tmp;
        if ($var10_0 && $var10_0 != nms_Block_leaves.$blockID && $var10_0 != nms_Block_waterMoving.$blockID && $var10_0 != nms_Block_waterStill.$blockID) {
            $var11 = $var11 + 1 | 0;
            if ($var11 < $var6) {
                $var16 = $par4 + $var11 | 0;
                continue main;
            }
            var$19 = Long_fromInt(4);
            while ($var8 <= var$13) {
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
                while ($var12 <= $var11) {
                    $var13 = $var9;
                    if ($var13 <= $var11_0) {
                        $ptr = 10;
                        continue main;
                    }
                    $var12 = $var12 + 1 | 0;
                }
                $var8 = $var8 + 1 | 0;
            }
            return 1;
        }
        $var10 = nms_Block_wood.$blockID;
        $var10_0 = 0;
        if (!$this.$doBlockNotify) {
            $var15 = 2;
            $ptr = 6;
            continue main;
        }
        $var15 = 3;
        $ptr = 7;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par3, $var16, $par5, $var10, $var10_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 < $var6) {
            $var16 = $par4 + $var11 | 0;
            $ptr = 5;
            continue main;
        }
        var$19 = Long_fromInt(4);
        while ($var8 <= var$13) {
            $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
            $var12 = $par3 - $var11_0 | 0;
            $var11 = $par3 + $var11_0 | 0;
            $var9 = $par5 - $var11_0 | 0;
            $var11_0 = $par5 + $var11_0 | 0;
            while ($var12 <= $var11) {
                $var13 = $var9;
                if ($var13 <= $var11_0) {
                    $ptr = 10;
                    continue main;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        return 1;
    case 7:
        nms_World_setBlock($par1World, $par3, $var16, $par5, $var10, $var10_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 < $var6) {
            $var16 = $par4 + $var11 | 0;
            $ptr = 5;
            continue main;
        }
        var$19 = Long_fromInt(4);
        while ($var8 <= var$13) {
            $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
            $var12 = $par3 - $var11_0 | 0;
            $var11 = $par3 + $var11_0 | 0;
            $var9 = $par5 - $var11_0 | 0;
            $var11_0 = $par5 + $var11_0 | 0;
            while ($var12 <= $var11) {
                $var13 = $var9;
                if ($var13 <= $var11_0) {
                    $ptr = 10;
                    continue main;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        return 1;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var10_0, $var8, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12) {
            nms_Block_$callClinit();
            if ($var12 != nms_Block_leaves.$blockID) {
                if ($var12 != nms_Block_waterStill.$blockID && $var12 != nms_Block_waterMoving.$blockID)
                    $var7 = 0;
                else if ($var15 > 0)
                    $var7 = 0;
            }
        }
        while (true) {
            $var11 = $var11 + 1 | 0;
            while (!($var11 <= ($par5 + $var9 | 0) && $var7)) {
                $var10_0 = $var10_0 + 1 | 0;
                while (!($var10_0 <= ($par3 + $var9 | 0) && $var7)) {
                    $var8 = $var8 + 1 | 0;
                    $var10_0 = ($par4 + 1 | 0) + $var6 | 0;
                    if ($var8 > $var10_0) {
                        if (!$var7)
                            return 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var9 = 1;
                    $var15 = $rt_compare($var8, $par4);
                    if (!$var15)
                        $var9 = 0;
                    if ($var8 >= ($var10_0 - 2 | 0))
                        $var9 = 3;
                    $var10_0 = $par3 - $var9 | 0;
                }
                $var11 = $par5 - $var9 | 0;
            }
            if ($var8 >= 0 && $var8 < 128)
                break;
            $var7 = 0;
        }
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var12, $var16, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $tmp;
        if (!var$26[$var10_0]) {
            var$27 = nms_Block_leaves.$blockID;
            $var10_0 = 0;
            if (!$this.$doBlockNotify) {
                $var15 = 2;
                $ptr = 11;
                continue main;
            }
            $var15 = 3;
            $ptr = 12;
            continue main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $var7) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > $var9) {
                    $var16 = $var16 + 1 | 0;
                    if ($var16 > var$13) {
                        $var11 = 0;
                        if ($var11 < $var6) {
                            $var16 = $par4 + $var11 | 0;
                            $ptr = 5;
                            continue main;
                        }
                        var$19 = Long_fromInt(4);
                        while ($var8 <= var$13) {
                            $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                            $var12 = $par3 - $var11_0 | 0;
                            $var11 = $par3 + $var11_0 | 0;
                            $var9 = $par5 - $var11_0 | 0;
                            $var11_0 = $par5 + $var11_0 | 0;
                            while ($var12 <= $var11) {
                                $var13 = $var9;
                                if ($var13 <= $var11_0) {
                                    $ptr = 10;
                                    continue main;
                                }
                                $var12 = $var12 + 1 | 0;
                            }
                            $var8 = $var8 + 1 | 0;
                        }
                        return 1;
                    }
                    $var10 = $var16 - var$13 | 0;
                    $var11 = 2 - ($var10 / 2 | 0) | 0;
                    $var12 = $par3 - $var11 | 0;
                    $var9 = $par3 + $var11 | 0;
                    $var11_0 = $par5 - $var11 | 0;
                    $var7 = $par5 + $var11 | 0;
                }
                $var13 = $var12 - $par3 | 0;
                var$23 =  -$var13 | 0;
                $var14 = $var11_0;
            }
            $var15 = $var14 - $par5 | 0;
            if (($var13 < 0 ? var$23 : $var13) != $var11)
                break;
            if ($var15 < 0)
                $var15 =  -$var15 | 0;
            if ($var15 != $var11)
                break;
            var$25 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$25;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$25, var$7)))), 31)))
                continue;
            if (!$var10)
                continue;
            else
                break;
        }
        var$26 = nms_Block_opaqueCubeLookup.data;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $var12, $var8, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4 == nms_Block_leaves.$blockID) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
                $var6 = $var12 - 1 | 0;
                $ptr = 13;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
                $par4 = $var12 + 1 | 0;
                $ptr = 14;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
                $par4 = $var13 - 1 | 0;
                $ptr = 15;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
                $par4 = $var13 + 1 | 0;
                $ptr = 18;
                continue main;
            }
        }
        $var13 = $var13 + 1 | 0;
        c: while (true) {
            if ($var13 <= $var11_0) {
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break c;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 11:
        nms_World_setBlock($par1World, $var12, $var16, $var14, var$27, $var10_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $var7) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > $var9) {
                    $var16 = $var16 + 1 | 0;
                    if ($var16 > var$13) {
                        $var11 = 0;
                        if ($var11 < $var6) {
                            $var16 = $par4 + $var11 | 0;
                            $ptr = 5;
                            continue main;
                        }
                        var$19 = Long_fromInt(4);
                        while ($var8 <= var$13) {
                            $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                            $var12 = $par3 - $var11_0 | 0;
                            $var11 = $par3 + $var11_0 | 0;
                            $var9 = $par5 - $var11_0 | 0;
                            $var11_0 = $par5 + $var11_0 | 0;
                            while ($var12 <= $var11) {
                                $var13 = $var9;
                                if ($var13 <= $var11_0) {
                                    $ptr = 10;
                                    continue main;
                                }
                                $var12 = $var12 + 1 | 0;
                            }
                            $var8 = $var8 + 1 | 0;
                        }
                        return 1;
                    }
                    $var10 = $var16 - var$13 | 0;
                    $var11 = 2 - ($var10 / 2 | 0) | 0;
                    $var12 = $par3 - $var11 | 0;
                    $var9 = $par3 + $var11 | 0;
                    $var11_0 = $par5 - $var11 | 0;
                    $var7 = $par5 + $var11 | 0;
                }
                $var13 = $var12 - $par3 | 0;
                var$23 =  -$var13 | 0;
                $var14 = $var11_0;
            }
            $var15 = $var14 - $par5 | 0;
            if (($var13 < 0 ? var$23 : $var13) != $var11)
                break;
            if ($var15 < 0)
                $var15 =  -$var15 | 0;
            if ($var15 != $var11)
                break;
            var$25 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$25;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$25, var$7)))), 31)))
                continue;
            if (!$var10)
                continue;
            else
                break;
        }
        var$26 = nms_Block_opaqueCubeLookup.data;
        $ptr = 9;
        continue main;
    case 12:
        nms_World_setBlock($par1World, $var12, $var16, $var14, var$27, $var10_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 > $var7) {
                $var12 = $var12 + 1 | 0;
                while ($var12 > $var9) {
                    $var16 = $var16 + 1 | 0;
                    if ($var16 > var$13) {
                        $var11 = 0;
                        if ($var11 < $var6) {
                            $var16 = $par4 + $var11 | 0;
                            $ptr = 5;
                            continue main;
                        }
                        var$19 = Long_fromInt(4);
                        while ($var8 <= var$13) {
                            $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                            $var12 = $par3 - $var11_0 | 0;
                            $var11 = $par3 + $var11_0 | 0;
                            $var9 = $par5 - $var11_0 | 0;
                            $var11_0 = $par5 + $var11_0 | 0;
                            while ($var12 <= $var11) {
                                $var13 = $var9;
                                if ($var13 <= $var11_0) {
                                    $ptr = 10;
                                    continue main;
                                }
                                $var12 = $var12 + 1 | 0;
                            }
                            $var8 = $var8 + 1 | 0;
                        }
                        return 1;
                    }
                    $var10 = $var16 - var$13 | 0;
                    $var11 = 2 - ($var10 / 2 | 0) | 0;
                    $var12 = $par3 - $var11 | 0;
                    $var9 = $par3 + $var11 | 0;
                    $var11_0 = $par5 - $var11 | 0;
                    $var7 = $par5 + $var11 | 0;
                }
                $var13 = $var12 - $par3 | 0;
                var$23 =  -$var13 | 0;
                $var14 = $var11_0;
            }
            $var15 = $var14 - $par5 | 0;
            if (($var13 < 0 ? var$23 : $var13) != $var11)
                break;
            if ($var15 < 0)
                $var15 =  -$var15 | 0;
            if ($var15 != $var11)
                break;
            var$25 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$25;
            if (!Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$25, var$7)))), 31)))
                continue;
            if (!$var10)
                continue;
            else
                break;
        }
        var$26 = nms_Block_opaqueCubeLookup.data;
        $ptr = 9;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $var6, $var8, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            $var16 = 8;
            $var10_0 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $par4 = 2;
                $ptr = 16;
                continue main;
            }
            $par4 = 3;
            $ptr = 17;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var12 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        a: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break a;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 14:
        $tmp = nms_World_getBlockId($par1World, $par4, $var8, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $tmp;
        if (!$var10_0) {
            $var10_0 = 2;
            $var15 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var6 = 2;
                $ptr = 19;
                continue main;
            }
            $var6 = 3;
            $ptr = 20;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        c: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break c;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 15:
        $tmp = nms_World_getBlockId($par1World, $var12, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $tmp;
        if (!$var10_0) {
            $var10_0 = 1;
            $var15 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var6 = 2;
                $ptr = 21;
                continue main;
            }
            $var6 = 3;
            $ptr = 22;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        d: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break d;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 16:
        nms_World_setBlock($par1World, $var6, $var8, $var13, $var10_0, $var16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 4;
        $par4 = $var8;
        $par4 = $par4 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 17:
        nms_World_setBlock($par1World, $var6, $var8, $var13, $var10_0, $var16, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 4;
        $par4 = $var8;
        $par4 = $par4 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 18:
        $tmp = nms_World_getBlockId($par1World, $var12, $var8, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $tmp;
        if (!$var10_0) {
            $var10_0 = 4;
            $var15 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var6 = 2;
                $ptr = 24;
                continue main;
            }
            $var6 = 3;
            $ptr = 25;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        e: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break e;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 19:
        nms_World_setBlock($par1World, $par4, $var8, $var13, $var15, $var10_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 4;
        $var6 = $var8;
        $var6 = $var6 + (-1) | 0;
        $ptr = 26;
        continue main;
    case 20:
        nms_World_setBlock($par1World, $par4, $var8, $var13, $var15, $var10_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 4;
        $var6 = $var8;
        $var6 = $var6 + (-1) | 0;
        $ptr = 26;
        continue main;
    case 21:
        nms_World_setBlock($par1World, $var12, $var8, $par4, $var15, $var10_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 4;
        $var10 = $var8;
        $var10 = $var10 + (-1) | 0;
        $ptr = 27;
        continue main;
    case 22:
        nms_World_setBlock($par1World, $var12, $var8, $par4, $var15, $var10_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 4;
        $var10 = $var8;
        $var10 = $var10 + (-1) | 0;
        $ptr = 27;
        continue main;
    case 23:
        $tmp = nms_World_getBlockId($par1World, $var6, $par4, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $tmp;
        if (!$var10_0 && $var10 > 0) {
            $var10_0 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var15 = 2;
                $ptr = 29;
                continue main;
            }
            $var15 = 3;
            $ptr = 30;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var12 + 1 | 0;
            $ptr = 14;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        a: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break a;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 24:
        nms_World_setBlock($par1World, $var12, $var8, $par4, $var15, $var10_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 4;
        $var6 = $var8;
        $var6 = $var6 + (-1) | 0;
        $ptr = 28;
        continue main;
    case 25:
        nms_World_setBlock($par1World, $var12, $var8, $par4, $var15, $var10_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = 4;
        $var6 = $var8;
        $var6 = $var6 + (-1) | 0;
        $ptr = 28;
        continue main;
    case 26:
        $tmp = nms_World_getBlockId($par1World, $par4, $var6, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if (!$var16 && $var15 > 0) {
            $var16 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var10 = 2;
                $ptr = 31;
                continue main;
            }
            $var10 = 3;
            $ptr = 32;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 - 1 | 0;
            $ptr = 15;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        c: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break c;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 27:
        $tmp = nms_World_getBlockId($par1World, $var12, $var10, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6 && $var15 > 0) {
            $var6 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var16 = 2;
                $ptr = 33;
                continue main;
            }
            $var16 = 3;
            $ptr = 34;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        if (!Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31))) {
            $par4 = $var13 + 1 | 0;
            $ptr = 18;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        d: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break d;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 28:
        $tmp = nms_World_getBlockId($par1World, $var12, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if (!$var16 && $var15 > 0) {
            $var16 = nms_Block_vine.$blockID;
            if (!$this.$doBlockNotify) {
                $var10 = 2;
                $ptr = 35;
                continue main;
            }
            $var10 = 3;
            $ptr = 36;
            continue main;
        }
        $var13 = $var13 + 1 | 0;
        e: while (true) {
            if ($var13 <= $var11_0) {
                $ptr = 10;
                continue main;
            }
            $var12 = $var12 + 1 | 0;
            while ($var12 > $var11) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$13)
                    break e;
                $var11_0 = 2 - (($var8 - var$13 | 0) / 2 | 0) | 0;
                $var12 = $par3 - $var11_0 | 0;
                $var11 = $par3 + $var11_0 | 0;
                $var9 = $par5 - $var11_0 | 0;
                $var11_0 = $par5 + $var11_0 | 0;
            }
            $var13 = $var9;
        }
        return 1;
    case 29:
        nms_World_setBlock($par1World, $var6, $par4, $var13, $var10_0, $var16, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + (-1) | 0;
        $par4 = $par4 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 30:
        nms_World_setBlock($par1World, $var6, $par4, $var13, $var10_0, $var16, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + (-1) | 0;
        $par4 = $par4 + (-1) | 0;
        $ptr = 23;
        continue main;
    case 31:
        nms_World_setBlock($par1World, $par4, $var6, $var13, $var16, $var10_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + (-1) | 0;
        $var6 = $var6 + (-1) | 0;
        $ptr = 26;
        continue main;
    case 32:
        nms_World_setBlock($par1World, $par4, $var6, $var13, $var16, $var10_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + (-1) | 0;
        $var6 = $var6 + (-1) | 0;
        $ptr = 26;
        continue main;
    case 33:
        nms_World_setBlock($par1World, $var12, $var10, $par4, $var6, $var10_0, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + (-1) | 0;
        $var10 = $var10 + (-1) | 0;
        $ptr = 27;
        continue main;
    case 34:
        nms_World_setBlock($par1World, $var12, $var10, $par4, $var6, $var10_0, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + (-1) | 0;
        $var10 = $var10 + (-1) | 0;
        $ptr = 27;
        continue main;
    case 35:
        nms_World_setBlock($par1World, $var12, $var6, $par4, $var16, $var10_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + (-1) | 0;
        $var6 = $var6 + (-1) | 0;
        $ptr = 28;
        continue main;
    case 36:
        nms_World_setBlock($par1World, $var12, $var6, $par4, $var16, $var10_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $var15 + (-1) | 0;
        $var6 = $var6 + (-1) | 0;
        $ptr = 28;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, var$7, $var6, $var10, $var8, var$11, $var7, var$13, $var10_0, $var9, $var15, $var11, $var16, var$19, $var11_0, $var12, $var13, var$23, $var14, var$25, var$26, var$27, $ptr);
};
function nms_EntitySheep() {
    let a = this; nms_EntityAnimal.call(a);
    a.$field_90016_e = null;
    a.$sheepTimer = 0;
    a.$aiEatGrass = null;
}
let nms_EntitySheep_fleeceColorTable = null,
nms_EntitySheep__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        var$2 = new nms_InventoryCrafting;
        $par1World = new nms_ContainerSheep;
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $par1World.$inventoryItemStacks = var$3;
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $par1World.$inventorySlots = var$3;
        $par1World.$field_94535_f = (-1);
        var$3 = new ju_HashSet;
        var$4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$backingMap = var$4;
        $par1World.$field_94537_h = var$3;
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $par1World.$crafters = var$3;
        var$3 = new ju_HashSet;
        var$4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$backingMap = var$4;
        $par1World.$playerList = var$3;
        $par1World.$field_90034_a = $this;
        var$2.$stackList = $rt_createArray(nms_ItemStack, 2);
        var$2.$eventHandler = $par1World;
        var$2.$inventoryWidth = 2;
        $this.$field_90016_e = var$2;
        $par1World = new nms_EntityAIEatGrass;
        $par1World.$theEntity7 = $this;
        $par1World.$theWorld0 = $this.$worldObj;
        $par1World.$mutexBits = 7;
        $this.$aiEatGrass = $par1World;
        var$5 = $this.$field_98056_d <= 0.0 ? 0 : 1;
        $this.$field_98056_d = 0.8999999761581421;
        $this.$field_98057_e = 1.2999999523162842;
        if (!var$5) {
            var$8 = 0.8999999761581421;
            var$9 = 1.2999999523162842;
            $ptr = 3;
            continue main;
        }
        var$3 = $this.$navigator;
        var$3.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAISwimming;
        var$2.$theEntity3 = $this;
        var$2.$mutexBits = 4;
        var$3.$canSwim = 1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 0;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIPanic;
        var$2.$theEntityCreature = $this;
        var$2.$speed1 = 1.25;
        var$2.$mutexBits = 1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 1;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIMate;
        var$2.$theAnimal = $this;
        var$2.$theWorld2 = $this.$worldObj;
        var$2.$moveSpeed = 1.0;
        var$2.$mutexBits = 3;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 2;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAITempt;
        nms_Item_$callClinit();
        var$11 = nms_Item_wheat.$itemID0;
        var$3.$temptedEntity = $this;
        var$3.$field_75282_b = 1.1;
        var$3.$breedingFood = var$11;
        var$3.$scaredByPlayerMovement = 0;
        var$3.$mutexBits = 3;
        var$4 = var$2.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$2;
        $par1World.$priority = 3;
        $par1World.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = $par1World;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIFollowParent;
        var$2.$childAnimal = $this;
        var$2.$field_75347_c = 1.1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 4;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = $this.$aiEatGrass;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 5;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$5 = var$4.$size0;
        var$4.$size0 = var$5 + 1 | 0;
        var$7[var$5] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIWander;
        var$2.$entity = $this;
        var$2.$speed = 1.0;
        var$2.$mutexBits = 1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 6;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIWatchClosest;
        var$2.$theWatcher = $this;
        var$2.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$2.$maxDistanceForPlayer = 6.0;
        var$2.$field_75331_e = 0.019999999552965164;
        var$2.$mutexBits = 2;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 7;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAILookIdle;
        var$2.$idleEntity = $this;
        var$2.$mutexBits = 3;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 8;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$field_90016_e;
        var$2 = new nms_ItemStack;
        var$3 = nms_Item_dyePowder;
        nms_ItemStack_$callClinit();
        var$2.$itemID = var$3.$itemID0;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $par1World.$stackList.data[0] = var$2;
        var$2 = $par1World.$eventHandler;
        $ptr = 1;
    case 1:
        var$2.$onCraftMatrixChanged($par1World);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $this.$field_90016_e;
        var$2 = new nms_ItemStack;
        var$2.$itemID = nms_Item_dyePowder.$itemID0;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $par1World.$stackList.data[1] = var$2;
        var$2 = $par1World.$eventHandler;
        $ptr = 2;
    case 2:
        var$2.$onCraftMatrixChanged($par1World);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_Entity_setSize($this, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$navigator;
        var$3.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAISwimming;
        var$2.$theEntity3 = $this;
        var$2.$mutexBits = 4;
        var$3.$canSwim = 1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 0;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIPanic;
        var$2.$theEntityCreature = $this;
        var$2.$speed1 = 1.25;
        var$2.$mutexBits = 1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 1;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIMate;
        var$2.$theAnimal = $this;
        var$2.$theWorld2 = $this.$worldObj;
        var$2.$moveSpeed = 1.0;
        var$2.$mutexBits = 3;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 2;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAITempt;
        nms_Item_$callClinit();
        var$11 = nms_Item_wheat.$itemID0;
        var$3.$temptedEntity = $this;
        var$3.$field_75282_b = 1.1;
        var$3.$breedingFood = var$11;
        var$3.$scaredByPlayerMovement = 0;
        var$3.$mutexBits = 3;
        var$4 = var$2.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$2;
        $par1World.$priority = 3;
        $par1World.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = $par1World;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIFollowParent;
        var$2.$childAnimal = $this;
        var$2.$field_75347_c = 1.1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 4;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = $this.$aiEatGrass;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 5;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$5 = var$4.$size0;
        var$4.$size0 = var$5 + 1 | 0;
        var$7[var$5] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIWander;
        var$2.$entity = $this;
        var$2.$speed = 1.0;
        var$2.$mutexBits = 1;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 6;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAIWatchClosest;
        var$2.$theWatcher = $this;
        var$2.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$2.$maxDistanceForPlayer = 6.0;
        var$2.$field_75331_e = 0.019999999552965164;
        var$2.$mutexBits = 2;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 7;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$2 = new nms_EntityAILookIdle;
        var$2.$idleEntity = $this;
        var$2.$mutexBits = 3;
        var$4 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 8;
        var$3.$action = var$2;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par1World = $this.$field_90016_e;
        var$2 = new nms_ItemStack;
        var$3 = nms_Item_dyePowder;
        nms_ItemStack_$callClinit();
        var$2.$itemID = var$3.$itemID0;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $par1World.$stackList.data[0] = var$2;
        var$2 = $par1World.$eventHandler;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntitySheep__init_0 = var_0 => {
    let var_1 = new nms_EntitySheep();
    nms_EntitySheep__init_(var_1, var_0);
    return var_1;
},
nms_EntitySheep_isAIEnabled = $this => {
    return 1;
},
nms_EntitySheep_updateAITasks = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$sheepTimer = $this.$aiEatGrass.$eatGrassTick;
        $this.$entityAge = $this.$entityAge + 1 | 0;
        $ptr = 1;
    case 1:
        nms_EntityLiving_despawnEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$senses;
        var$2 = var$1.$seenEntities;
        var$3 = var$2.$array;
        var$4 = 0;
        var$5 = var$2.$size0;
        var$6 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$6;
            var$4 = var$8;
        }
        var$2.$size0 = 0;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$1 = var$1.$unseenEntities;
        var$3 = var$1.$array;
        var$4 = 0;
        var$5 = var$1.$size0;
        var$2 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$2;
            var$4 = var$8;
        }
        var$1.$size0 = 0;
        var$1.$modCount = var$1.$modCount + 1 | 0;
        var$1 = $this.$targetTasks;
        $ptr = 2;
    case 2:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$tasks0;
        $ptr = 3;
    case 3:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$navigator;
        $ptr = 4;
    case 4:
        nms_PathNavigate_onUpdateNavigation(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[140];
        if (var$2 === null)
            var$1 = ju_HashMap_findNullKeyEntry(var$1);
        else {
            var$5 = jl_Integer_hashCode0(var$2);
            var$1 = ju_HashMap_findNonNullKeyEntry(var$1, var$2, var$5 & (var$1.$elementData.data.length - 1 | 0), var$5);
        }
        if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value)
            $this.$inLove = 0;
        nms_EntityMoveHelper_onUpdateMoveHelper($this.$moveHelper);
        nms_EntityLookHelper_onUpdateLook($this.$lookHelper);
        var$1 = $this.$jumpHelper;
        var$1.$entity0.$isJumping = var$1.$isJumping0;
        var$1.$isJumping0 = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntitySheep_onLivingUpdate = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$sheepTimer - 1 | 0;
            if (0 > var$1)
                var$1 = 0;
            $this.$sheepTimer = var$1;
        }
        $ptr = 1;
    case 1:
        nms_EntityAnimal_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntitySheep_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (8.0 !== var$3.$baseValue) {
        var$3.$baseValue = 8.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.23000000417232513 !== var$1.$baseValue) {
        var$1.$baseValue = 0.23000000417232513;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntitySheep_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 12, var$1);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 0;
    nms_DataWatcher_addObject(var$2, 16, var$1);
},
nms_EntitySheep_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $par1 = var$4.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[$par1 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $par1) {
                    var$6 = var$3.$key;
                    if (var$4 !== var$6 && !(var$4 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $par1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (!(var$3.$watchedObject.$value1 & 16) ? 0 : 1)
            return;
        var$3 = new nms_ItemStack;
        nms_Block_$callClinit();
        $par2 = nms_Block_cloth.$blockID;
        var$4 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$5 = var$4.$elementData.data;
            var$4 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$7) {
                    var$8 = var$4.$key;
                    if (var$6 !== var$8 && !(var$6 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        var$7 = var$4.$watchedObject.$value1 & 15;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = var$7;
        if (var$7 < 0)
            var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$6 = $this.$worldObj;
        var$9 = $this.$posX;
        var$10 = $this.$posY + 0.0;
        var$11 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_(var$4, var$6, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$4.$dataWatcher;
        var$6 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[138];
        if (var$13 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$7 = jl_Integer_hashCode(var$13.$value);
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$6 !== null && !(var$6.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$13, var$6.$key))) {
                var$6 = var$6.$next3;
            }
        }
        var$8 = var$6 === null ? null : var$6.$value0;
        if (!(var$3 !== var$8.$watchedObject ? 0 : 1)) {
            var$8.$watchedObject = var$3;
            var$8.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$13 = var$4.$dataWatcher;
        var$3 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[138];
        if (var$8 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$7 = jl_Integer_hashCode(var$8.$value);
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$8, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$13.$objectChanged = 1;
        var$4.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntitySheep_getDropItemId = $this => {
    nms_Block_$callClinit();
    return nms_Block_cloth.$blockID;
},
nms_EntitySheep_interact = ($this, $par1EntityPlayer) => {
    let $var5, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var3, $var4, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7
        = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var5 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par1EntityPlayer.$inventory0;
        var$3 = $var5.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? $var5.$mainInventory.data[var$3] : null;
        if ($var2 !== null) {
            var$5 = $var2.$itemID;
            nms_Item_$callClinit();
            if (var$5 == nms_Item_shears.$itemID0) {
                $var5 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 !== null) {
                    var$7 = var$6.$value;
                    var$8 = $var5.$elementData.data;
                    $var5 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$7) {
                            var$9 = $var5.$key;
                            if (var$6 !== var$9 && !(var$6 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                }
                $var5 = $var5 === null ? null : $var5.$value0;
                if (!(!($var5.$watchedObject.$value1 & 16) ? 0 : 1)) {
                    $var5 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[140];
                    if (var$6 === null) {
                        $var5 = $var5.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    } else {
                        var$7 = var$6.$value;
                        var$8 = $var5.$elementData.data;
                        $var5 = var$8[var$7 & (var$8.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == var$7) {
                                var$9 = $var5.$key;
                                if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    }
                    $var5 = $var5 === null ? null : $var5.$value0;
                    if (!($var5.$watchedObject.$value >= 0 ? 0 : 1)) {
                        if (!$this.$worldObj.$isRemote) {
                            $var5 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$6 = jl_Integer_integerCache.data[144];
                            if (var$6 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                var$7 = var$6.$value;
                                var$8 = $var5.$elementData.data;
                                $var5 = var$8[var$7 & (var$8.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == var$7) {
                                        var$9 = $var5.$key;
                                        if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$5 = ($var5 === null ? null : $var5.$value0).$watchedObject.$value1;
                            var$10 = $this.$dataWatcher;
                            var$3 = (var$5 | 16) << 24 >> 24;
                            var$11 = jl_Byte_byteCache.data[var$3 + 128 | 0];
                            $var5 = var$10.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$6 = jl_Integer_integerCache.data[144];
                            if (var$6 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                var$3 = var$6.$value;
                                var$8 = $var5.$elementData.data;
                                $var5 = var$8[var$3 & (var$8.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == var$3) {
                                        var$9 = $var5.$key;
                                        if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$3 ? 1 : 0) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if (!($var5 instanceof jl_Byte && $var5.$value1 == var$11.$value1 ? 1 : 0)) {
                                var$9.$watchedObject = var$11;
                                var$9.$watched = 1;
                                var$10.$objectChanged = 1;
                            }
                            $var5 = $this.$rand;
                            var$12 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var5.$seed = var$12;
                            var$13 = Long_lo(Long_shru(var$12, 17));
                            while (true) {
                                var$14 = var$13 % 3 | 0;
                                if (((var$13 - var$14 | 0) + 2 | 0) >= 0)
                                    break;
                                var$12 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var5.$seed = var$12;
                                var$13 = Long_lo(Long_shru(var$12, 17));
                            }
                            $var3 = 1 + var$14 | 0;
                            $var4 = 0;
                            var$14 = 144;
                            var$17 = 1.0;
                            var$3 = 138;
                            var$18 = 24;
                            if ($var4 < $var3) {
                                var$6 = new nms_ItemStack;
                                nms_Block_$callClinit();
                                var$19 = nms_Block_cloth.$blockID;
                                $var5 = $this.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$11 = jl_Integer_integerCache.data[var$14];
                                if (var$11 === null) {
                                    $var5 = $var5.$elementData.data[0];
                                    while ($var5 !== null && $var5.$key !== null) {
                                        $var5 = $var5.$next3;
                                    }
                                } else {
                                    var$20 = var$11.$value;
                                    var$8 = $var5.$elementData.data;
                                    $var5 = var$8[var$20 & (var$8.length - 1 | 0)];
                                    while ($var5 !== null) {
                                        if ($var5.$origKeyHash == var$20) {
                                            var$9 = $var5.$key;
                                            if (var$11 !== var$9 && !(var$11 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$20 ? 1 : 0) ? 0 : 1)
                                                break;
                                        }
                                        $var5 = $var5.$next3;
                                    }
                                }
                                $var5 = $var5 === null ? null : $var5.$value0;
                                var$7 = $var5.$watchedObject.$value1 & 15;
                                nms_ItemStack_$callClinit();
                                var$6.$itemID = var$19;
                                var$6.$stackSize = 1;
                                var$6.$itemDamage = var$7;
                                if (var$7 < 0)
                                    var$6.$itemDamage = 0;
                                $var5 = new nms_EntityItem;
                                var$9 = $this.$worldObj;
                                var$21 = $this.$posX;
                                var$22 = $this.$posY + var$17;
                                var$23 = $this.$posZ;
                                $ptr = 4;
                                continue main;
                            }
                        }
                        var$5 = 1;
                        $ptr = 2;
                        continue main;
                    }
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return var$5;
    case 2:
        nms_ItemStack_damageItem($var2, var$5, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $rt_s(2346);
        var$24 = 1.0;
        var$25 = 1.0;
        var$9 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_playSoundAtEntity(var$9, $this, $var5, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 1;
        continue main;
    case 4:
        nms_EntityItem__init_($var5, var$9, var$21, var$22, var$23);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $var5.$dataWatcher;
        var$11 = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$26 = jl_Integer_integerCache.data[var$3];
        if (var$26 === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            var$5 = jl_Integer_hashCode(var$26.$value);
            var$8 = var$11.$elementData.data;
            var$11 = var$8[var$5 & (var$8.length - 1 | 0)];
            while (var$11 !== null && !(var$11.$origKeyHash == var$5 && ju_HashMap_areEqualKeys(var$26, var$11.$key))) {
                var$11 = var$11.$next3;
            }
        }
        var$10 = var$11 === null ? null : var$11.$value0;
        if (!(var$6 !== var$10.$watchedObject ? 0 : 1)) {
            var$10.$watchedObject = var$6;
            var$10.$watched = 1;
            var$9.$objectChanged = 1;
        }
        var$10 = $var5.$dataWatcher;
        var$9 = var$10.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[var$3];
        if (var$11 === null) {
            var$9 = var$9.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$5 = jl_Integer_hashCode(var$11.$value);
            var$8 = var$9.$elementData.data;
            var$9 = var$8[var$5 & (var$8.length - 1 | 0)];
            while (var$9 !== null && !(var$9.$origKeyHash == var$5 && ju_HashMap_areEqualKeys(var$11, var$9.$key))) {
                var$9 = var$9.$next3;
            }
        }
        (var$9 === null ? null : var$9.$value0).$watched = 1;
        var$10.$objectChanged = 1;
        $var5.$delayBeforeCanPickup = 10;
        var$9 = $this.$worldObj;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $var5.$motionY;
        var$9 = $this.$rand;
        var$27 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$27;
        $var5.$motionY = var$21 + Long_lo(Long_shru(var$27, var$18)) / 1.6777216E7 * 0.05000000074505806;
        var$21 = $var5.$motionX;
        var$27 = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$27;
        var$28 = Long_lo(Long_shru(var$27, var$18)) / 1.6777216E7;
        var$27 = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$27;
        $var5.$motionX = var$21 + (var$28 - Long_lo(Long_shru(var$27, var$18)) / 1.6777216E7) * 0.10000000149011612;
        var$21 = $var5.$motionZ;
        var$27 = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$27;
        var$28 = Long_lo(Long_shru(var$27, var$18)) / 1.6777216E7;
        var$12 = Long_and(Long_add(Long_mul(var$27, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$12;
        $var5.$motionZ = var$21 + (var$28 - Long_lo(Long_shru(var$12, var$18)) / 1.6777216E7) * 0.10000000149011612;
        $var4 = $var4 + 1 | 0;
        if ($var4 >= $var3) {
            var$5 = 1;
            $ptr = 2;
            continue main;
        }
        var$6 = new nms_ItemStack;
        nms_Block_$callClinit();
        var$19 = nms_Block_cloth.$blockID;
        $var5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[var$14];
        if (var$11 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            var$20 = var$11.$value;
            var$8 = $var5.$elementData.data;
            $var5 = var$8[var$20 & (var$8.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$20) {
                    var$9 = $var5.$key;
                    if (var$11 !== var$9 && !(var$11 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$20 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        var$7 = $var5.$watchedObject.$value1 & 15;
        nms_ItemStack_$callClinit();
        var$6.$itemID = var$19;
        var$6.$stackSize = 1;
        var$6.$itemDamage = var$7;
        if (var$7 < 0)
            var$6.$itemDamage = 0;
        $var5 = new nms_EntityItem;
        var$9 = $this.$worldObj;
        var$21 = $this.$posX;
        var$22 = $this.$posY + var$17;
        var$23 = $this.$posZ;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var5, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var3, $var4, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, $ptr);
},
nms_EntitySheep_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[140];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = jl_Integer_hashCode(var$3.$value);
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null && !(var$2.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$3, var$2.$key))) {
            var$2 = var$2.$next3;
        }
    }
    var$6 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    var$7 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2201);
    var$2.$data = var$6;
    ju_HashMap_putImpl(var$7, $rt_s(2201), var$2);
    var$6 = $this.$inLove;
    var$7 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2202);
    var$2.$data = var$6;
    ju_HashMap_putImpl(var$7, $rt_s(2202), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[144];
    if (var$7 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$6 = var$7.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$6 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$3 = var$2.$key;
                if (var$7 !== var$3 && !(var$7 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    var$6 = (!(!(var$2.$watchedObject.$value1 & 16) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$7 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagByte;
    var$2.$name = $rt_s(2347);
    var$2.$data0 = var$6;
    ju_HashMap_putImpl(var$7, $rt_s(2347), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$7 = var$2.$key;
                if (var$3 !== var$7 && !(var$3 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$6 = ((var$2 === null ? null : var$2.$value0).$watchedObject.$value1 & 15) << 24 >> 24;
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagByte;
    var$2.$name = $rt_s(2348);
    var$2.$data0 = var$6;
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2348), var$2);
},
nms_EntitySheep_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2201).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2201).$nativeString.length)
                        break a;
                    $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2201).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2201) !== var$6) {
                        if ($rt_s(2201) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$7 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2201) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2201).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2201).$nativeString.length)
                                break c;
                            $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2201).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        d: {
                            var$6 = var$2.$key;
                            if ($rt_s(2201) !== var$6) {
                                if ($rt_s(2201) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$7 = (var$2 === null ? null : var$2.$value0).$data;
        }
        var$8 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$7;
        }
        var$6 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$4 = jl_Integer_hashCode(var$9.$value);
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$6 !== null && !(var$6.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$9, var$6.$key))) {
                var$6 = var$6.$next3;
            }
        }
        var$10 = var$6 === null ? null : var$6.$value0;
        var$6 = var$10.$watchedObject;
        if (!(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2.$value ? 1 : 0)) {
            var$10.$watchedObject = var$2;
            var$10.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = ju_HashMap_entryByKey(var$8, jl_Integer_integerCache.data[140]);
        var$8 = var$8 === null ? null : var$8.$value0;
        var$11 = !(var$8.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$12 = $this.$field_98056_d * var$11;
        var$11 = $this.$field_98057_e * var$11;
        $ptr = 2;
    case 2:
        a: {
            nms_Entity_setSize($this, var$12, var$11);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2202).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2202).$nativeString.length)
                        break a;
                    $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2202).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2202) !== var$6) {
                        if ($rt_s(2202) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2202) !== null) {
                e: {
                    if (!$rt_s(2202).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2202).$nativeString.length)
                                break e;
                            $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2202).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        f: {
                            var$6 = var$2.$key;
                            if ($rt_s(2202) !== var$6) {
                                if ($rt_s(2202) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        } else
            var$3 = 0;
        g: {
            $this.$inLove = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2347).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2347).$nativeString.length)
                        break g;
                    $rt_s(2347).$hashCode1 = (31 * $rt_s(2347).$hashCode1 | 0) + $rt_s(2347).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2347).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                h: {
                    var$6 = var$2.$key;
                    if ($rt_s(2347) !== var$6) {
                        if ($rt_s(2347) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2347).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break h;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2347) !== null) {
                i: {
                    if (!$rt_s(2347).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2347).$nativeString.length)
                                break i;
                            $rt_s(2347).$hashCode1 = (31 * $rt_s(2347).$hashCode1 | 0) + $rt_s(2347).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2347).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        j: {
                            var$6 = var$2.$key;
                            if ($rt_s(2347) !== var$6) {
                                if ($rt_s(2347) === var$6)
                                    var$7 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    var$6 = var$6;
                                    var$7 = $rt_s(2347).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break j;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        }
        var$3 = !var$3 ? 0 : 1;
        var$8 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$13 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$13 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$13) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !(var$6 !== var$2 ? (var$2 instanceof jl_Integer && var$2.$value == var$13 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$7 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
        if (!var$3) {
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 & (-17)) << 24 >> 24;
            var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 !== null) {
                var$4 = var$10.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$10 !== var$6 && !(var$10 !== var$6 ? (var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$9.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$9;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        } else {
            var$8 = $this.$dataWatcher;
            var$3 = (var$7 | 16) << 24 >> 24;
            var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
            var$2 = var$8.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[144];
            if (var$10 !== null) {
                var$4 = var$10.$value;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        var$6 = var$2.$key;
                        if (var$10 !== var$6 && !(var$10 !== var$6 ? (var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$9.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$9;
                var$6.$watched = 1;
                var$8.$objectChanged = 1;
            }
        }
        k: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2348).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2348).$nativeString.length)
                        break k;
                    $rt_s(2348).$hashCode1 = (31 * $rt_s(2348).$hashCode1 | 0) + $rt_s(2348).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2348).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                l: {
                    var$6 = var$2.$key;
                    if ($rt_s(2348) !== var$6) {
                        if ($rt_s(2348) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2348).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break l;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$4 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2348) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                m: {
                    if (!$rt_s(2348).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2348).$nativeString.length)
                                break m;
                            $rt_s(2348).$hashCode1 = (31 * $rt_s(2348).$hashCode1 | 0) + $rt_s(2348).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2348).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$3 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$3) {
                        n: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2348) !== var$2) {
                                if ($rt_s(2348) === var$2)
                                    var$7 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    var$2 = var$2;
                                    var$7 = $rt_s(2348).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break n;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
        }
        $par1NBTTagCompound = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            var$13 = var$2.$value;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$13 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$13) {
                    var$8 = $par1NBTTagCompound.$key;
                    if (var$2 !== var$8 && !(var$2 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$13 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$watchedObject.$value1;
        $par1NBTTagCompound = $this.$dataWatcher;
        var$3 = (var$3 & 240 | var$4 & 15) << 24 >> 24;
        var$10 = jl_Byte_byteCache.data[var$3 + 128 | 0];
        var$8 = $par1NBTTagCompound.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$4 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$4) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$2 = var$8 === null ? null : var$8.$value0;
        var$8 = var$2.$watchedObject;
        if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$10.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$10;
            var$2.$watched = 1;
            $par1NBTTagCompound.$objectChanged = 1;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntitySheep_getLivingSound = $this => {
    return $rt_s(2349);
},
nms_EntitySheep_getHurtSound = $this => {
    return $rt_s(2349);
},
nms_EntitySheep_getDeathSound = $this => {
    return $rt_s(2349);
},
nms_EntitySheep_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2350);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntitySheep_getRandomFleeceColor = $par0Random => {
    let var$2, var$3, $var1, var$5;
    var$2 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        $var1 = var$3 % 100 | 0;
        if (((var$3 - $var1 | 0) + 99 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    if ($var1 < 5)
        var$5 = 15;
    else if ($var1 < 10)
        var$5 = 7;
    else if ($var1 < 15)
        var$5 = 8;
    else if ($var1 < 18)
        var$5 = 12;
    else {
        var$2 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            $var1 = var$3 % 500 | 0;
            if (((var$3 - $var1 | 0) + 499 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        var$5 = $var1 ? 0 : 6;
    }
    return var$5;
},
nms_EntitySheep_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$2 = nms_SharedMonsterAttributes_followRange;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$2 === null) {
        var$4 = var$3.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$5 = jl_String_hashCode(var$2.$field_111115_a);
        var$6 = var$3.$elementData.data;
        var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$4 !== null && !(var$4.$origKeyHash == var$5 && ju_HashMap_areEqualKeys(var$2, var$4.$key))) {
            var$4 = var$4.$next3;
        }
    }
    var$7 = var$4 === null ? null : var$4.$value0;
    var$4 = new nms_AttributeModifier;
    var$8 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
    var$3 = nle_ProfileUUID_randomUUID();
    var$4.$isSaved = 1;
    var$4.$id1 = var$3;
    var$4.$name3 = $rt_s(2198);
    var$4.$amount0 = var$8;
    var$4.$operation = 1;
    if ($rt_s(2198) === $rt_s(3))
        var$9 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$9 = 0;
    else {
        var$3 = $rt_s(3);
        var$9 = $rt_s(2198).$nativeString !== var$3.$nativeString ? 0 : 1;
    }
    if (var$9) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    nms_ModifiableAttributeInstance_applyModifier(var$7, var$4);
    var$9 = nms_EntitySheep_getRandomFleeceColor($this.$worldObj.$rand0);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$10 = var$3.$value;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$10 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$10) {
                var$4 = var$2.$key;
                if (var$3 !== var$4 && !(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$10 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$5 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    var$2 = $this.$dataWatcher;
    var$9 = (var$5 & 240 | var$9 & 15) << 24 >> 24;
    var$11 = jl_Byte_byteCache.data[var$9 + 128 | 0];
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[144];
    if (var$7 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$12 = var$7.$value;
        var$6 = var$4.$elementData.data;
        var$4 = var$6[var$12 & (var$6.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$12) {
                var$3 = var$4.$key;
                if (var$7 !== var$3 && !(var$7 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$12 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$3 = var$4 === null ? null : var$4.$value0;
    var$4 = var$3.$watchedObject;
    if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$11.$value1 ? 1 : 0)) {
        var$3.$watchedObject = var$11;
        var$3.$watched = 1;
        var$2.$objectChanged = 1;
    }
    return $par1EntityLivingData;
},
nms_EntitySheep_func_90014_a = ($this, $par1EntityAnimal, $par2EntityAnimal) => {
    let $var5, var$4, var$5, var$6, var$7, $var3, $var6, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var5 = $thread.pop();$par2EntityAnimal = $thread.pop();$par1EntityAnimal = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $par1EntityAnimal.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            $var5 = $var5.$elementData.data[0];
            while ($var5 !== null && $var5.$key !== null) {
                $var5 = $var5.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $var5.$elementData.data;
            $var5 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$5) {
                    var$7 = $var5.$key;
                    if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                        break;
                }
                $var5 = $var5.$next3;
            }
        }
        $var5 = $var5 === null ? null : $var5.$value0;
        $var3 = 15 - ($var5.$watchedObject.$value1 & 15) | 0;
        $par2EntityAnimal = $par2EntityAnimal.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            $par2EntityAnimal = $par2EntityAnimal.$elementData.data[0];
            while ($par2EntityAnimal !== null && $par2EntityAnimal.$key !== null) {
                $par2EntityAnimal = $par2EntityAnimal.$next3;
            }
        } else {
            $var6 = var$7.$value;
            var$6 = $par2EntityAnimal.$elementData.data;
            $par2EntityAnimal = var$6[$var6 & (var$6.length - 1 | 0)];
            while ($par2EntityAnimal !== null) {
                if ($par2EntityAnimal.$origKeyHash == $var6) {
                    $var5 = $par2EntityAnimal.$key;
                    if (var$7 !== $var5 && !jl_Integer_equals(var$7, $var5) ? 0 : 1)
                        break;
                }
                $par2EntityAnimal = $par2EntityAnimal.$next3;
            }
        }
        $par2EntityAnimal = $par2EntityAnimal === null ? null : $par2EntityAnimal.$value0;
        $var6 = 15 - ($par2EntityAnimal.$watchedObject.$value1 & 15) | 0;
        $par2EntityAnimal = $this.$field_90016_e;
        var$6 = $par2EntityAnimal.$stackList.data;
        var$10 = var$6.length;
        $var5 = 0 < var$10 ? var$6[0] : null;
        $var5.$itemDamage = $var3;
        if ($var3 < 0)
            $var5.$itemDamage = 0;
        $var5 = 1 < var$10 ? var$6[1] : null;
        $var5.$itemDamage = $var6;
        if ($var6 < 0)
            $var5.$itemDamage = 0;
        nms_CraftingManager_$callClinit();
        $var5 = nms_CraftingManager_instance;
        $par1EntityAnimal = $par1EntityAnimal.$worldObj;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_CraftingManager_findMatchingRecipe($var5, $par2EntityAnimal, $par1EntityAnimal);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if ($var5 !== null) {
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[$var5.$itemID].$itemID0 == nms_Item_dyePowder.$itemID0) {
                    $var6 = $var5.$itemDamage;
                    break a;
                }
            }
            $par1EntityAnimal = $this.$worldObj.$rand0;
            var$11 = Long_and(Long_add(Long_mul($par1EntityAnimal.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1EntityAnimal.$seed = var$11;
            if (!Long_lo(Long_shru(var$11, 47)) ? 0 : 1)
                $var6 = $var3;
        }
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAnimal, $par2EntityAnimal, $var5, var$4, var$5, var$6, var$7, $var3, $var6, var$10, var$11, $ptr);
},
nms_EntitySheep_createChild = ($this, $par1EntityAgeable) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = $par1EntityAgeable;
        var$2 = new nms_EntitySheep;
        var$3 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntitySheep__init_(var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_EntitySheep_func_90014_a($this, $this, $par1EntityAgeable);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        var$4 = 15 - var$4 | 0;
        $par1EntityAgeable = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            $par1EntityAgeable = $par1EntityAgeable.$elementData.data[0];
            while ($par1EntityAgeable !== null && $par1EntityAgeable.$key !== null) {
                $par1EntityAgeable = $par1EntityAgeable.$next3;
            }
        } else {
            var$5 = var$3.$value;
            var$6 = $par1EntityAgeable.$elementData.data;
            $par1EntityAgeable = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($par1EntityAgeable !== null) {
                if ($par1EntityAgeable.$origKeyHash == var$5) {
                    var$7 = $par1EntityAgeable.$key;
                    if (var$3 !== var$7 && !jl_Integer_equals(var$3, var$7) ? 0 : 1)
                        break;
                }
                $par1EntityAgeable = $par1EntityAgeable.$next3;
            }
        }
        var$8 = ($par1EntityAgeable === null ? null : $par1EntityAgeable.$value0).$watchedObject.$value1;
        $par1EntityAgeable = var$2.$dataWatcher;
        var$4 = (var$8 & 240 | var$4 & 15) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[var$4 + 128 | 0];
        var$3 = $par1EntityAgeable.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$7.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$10 = var$3.$key;
                    if (var$7 !== var$10 && !jl_Integer_equals(var$7, var$10) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$7 = var$3 === null ? null : var$3.$value0;
        var$3 = var$7.$watchedObject;
        if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$9.$value1 ? 1 : 0)) {
            var$7.$watchedObject = var$9;
            var$7.$watched = 1;
            $par1EntityAgeable.$objectChanged = 1;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntitySheep__clinit_ = () => {
    let var$1, var$2;
    var$1 = $rt_createArray($rt_arraycls($rt_floatcls), 16);
    var$2 = var$1.data;
    var$2[0] = $rt_createFloatArrayFromData([1.0, 1.0, 1.0]);
    var$2[1] = $rt_createFloatArrayFromData([0.8500000238418579, 0.5, 0.20000000298023224]);
    var$2[2] = $rt_createFloatArrayFromData([0.699999988079071, 0.30000001192092896, 0.8500000238418579]);
    var$2[3] = $rt_createFloatArrayFromData([0.4000000059604645, 0.6000000238418579, 0.8500000238418579]);
    var$2[4] = $rt_createFloatArrayFromData([0.8999999761581421, 0.8999999761581421, 0.20000000298023224]);
    var$2[5] = $rt_createFloatArrayFromData([0.5, 0.800000011920929, 0.10000000149011612]);
    var$2[6] = $rt_createFloatArrayFromData([0.949999988079071, 0.5, 0.6499999761581421]);
    var$2[7] = $rt_createFloatArrayFromData([0.30000001192092896, 0.30000001192092896, 0.30000001192092896]);
    var$2[8] = $rt_createFloatArrayFromData([0.6000000238418579, 0.6000000238418579, 0.6000000238418579]);
    var$2[9] = $rt_createFloatArrayFromData([0.30000001192092896, 0.5, 0.6000000238418579]);
    var$2[10] = $rt_createFloatArrayFromData([0.5, 0.25, 0.699999988079071]);
    var$2[11] = $rt_createFloatArrayFromData([0.20000000298023224, 0.30000001192092896, 0.699999988079071]);
    var$2[12] = $rt_createFloatArrayFromData([0.4000000059604645, 0.30000001192092896, 0.20000000298023224]);
    var$2[13] = $rt_createFloatArrayFromData([0.4000000059604645, 0.5, 0.20000000298023224]);
    var$2[14] = $rt_createFloatArrayFromData([0.6000000238418579, 0.20000000298023224, 0.20000000298023224]);
    var$2[15] = $rt_createFloatArrayFromData([0.10000000149011612, 0.10000000149011612, 0.10000000149011612]);
    nms_EntitySheep_fleeceColorTable = var$1;
};
function nms_EntityPig() {
    nms_EntityAnimal.call(this);
    this.$aiControlledByPlayer = null;
}
let nms_EntityPig__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $this.$field_98056_d = 0.8999999761581421;
        $this.$field_98057_e = 0.8999999761581421;
        var$2 = 0.8999999761581421;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$navigator;
        var$3.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAISwimming;
        var$4.$theEntity3 = $this;
        var$4.$mutexBits = 4;
        var$3.$canSwim = 1;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 0;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIPanic;
        var$4.$theEntityCreature = $this;
        var$4.$speed1 = 1.25;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 1;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIControlledByPlayer;
        var$4.$thisEntity = $this;
        var$4.$maxSpeed = 0.30000001192092896;
        var$4.$mutexBits = 7;
        $this.$aiControlledByPlayer = var$4;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 2;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIMate;
        var$4.$theAnimal = $this;
        var$4.$theWorld2 = $this.$worldObj;
        var$4.$moveSpeed = 1.0;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 3;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        var$4 = $this.$tasks0;
        var$3 = new nms_EntityAITempt;
        nms_Item_$callClinit();
        var$8 = nms_Item_carrotOnAStick.$itemID0;
        var$3.$temptedEntity = $this;
        var$3.$field_75282_b = 1.2;
        var$3.$breedingFood = var$8;
        var$3.$scaredByPlayerMovement = 0;
        var$3.$mutexBits = 3;
        var$5 = var$4.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$4;
        $par1World.$priority = 4;
        $par1World.$action = var$3;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = $par1World;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAITempt;
        var$7 = nms_Item_carrot.$itemID0;
        var$4.$temptedEntity = $this;
        var$4.$field_75282_b = 1.2;
        var$4.$breedingFood = var$7;
        var$4.$scaredByPlayerMovement = 0;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 4;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIFollowParent;
        var$4.$childAnimal = $this;
        var$4.$field_75347_c = 1.1;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 5;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWander;
        var$4.$entity = $this;
        var$4.$speed = 1.0;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 6;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWatchClosest;
        var$4.$theWatcher = $this;
        var$4.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$4.$maxDistanceForPlayer = 6.0;
        var$4.$field_75331_e = 0.019999999552965164;
        var$4.$mutexBits = 2;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 7;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAILookIdle;
        var$4.$idleEntity = $this;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$3 = new nms_EntityAITaskEntry;
        var$3.$tasks = $par1World;
        var$3.$priority = 8;
        var$3.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$6 = var$5.$array.data;
        var$7 = var$5.$size0;
        var$5.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$3;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityPig__init_0 = var_0 => {
    let var_1 = new nms_EntityPig();
    nms_EntityPig__init_(var_1, var_0);
    return var_1;
},
nms_EntityPig_isAIEnabled = $this => {
    return 1;
},
nms_EntityPig_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (10.0 !== var$3.$baseValue) {
        var$3.$baseValue = 10.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.25 !== var$1.$baseValue) {
        var$1.$baseValue = 0.25;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityPig_updateAITasks = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$entityAge = $this.$entityAge + 1 | 0;
        $ptr = 1;
    case 1:
        nms_EntityLiving_despawnEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$senses;
        var$2 = var$1.$seenEntities;
        var$3 = var$2.$array;
        var$4 = 0;
        var$5 = var$2.$size0;
        var$6 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$6;
            var$4 = var$8;
        }
        var$2.$size0 = 0;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$1 = var$1.$unseenEntities;
        var$3 = var$1.$array;
        var$4 = 0;
        var$5 = var$1.$size0;
        var$2 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$2;
            var$4 = var$8;
        }
        var$1.$size0 = 0;
        var$1.$modCount = var$1.$modCount + 1 | 0;
        var$1 = $this.$targetTasks;
        $ptr = 2;
    case 2:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$tasks0;
        $ptr = 3;
    case 3:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$navigator;
        $ptr = 4;
    case 4:
        nms_PathNavigate_onUpdateNavigation(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[140];
        if (var$2 === null)
            var$1 = ju_HashMap_findNullKeyEntry(var$1);
        else {
            var$5 = jl_Integer_hashCode0(var$2);
            var$1 = ju_HashMap_findNonNullKeyEntry(var$1, var$2, var$5 & (var$1.$elementData.data.length - 1 | 0), var$5);
        }
        if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value)
            $this.$inLove = 0;
        nms_EntityMoveHelper_onUpdateMoveHelper($this.$moveHelper);
        nms_EntityLookHelper_onUpdateLook($this.$lookHelper);
        var$1 = $this.$jumpHelper;
        var$1.$entity0.$isJumping = var$1.$isJumping0;
        var$1.$isJumping0 = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityPig_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 12, var$1);
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
},
nms_EntityPig_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[140];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = jl_Integer_hashCode(var$3.$value);
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null && !(var$2.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$3, var$2.$key))) {
            var$2 = var$2.$next3;
        }
    }
    var$6 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    var$7 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2201);
    var$2.$data = var$6;
    ju_HashMap_putImpl(var$7, $rt_s(2201), var$2);
    var$6 = $this.$inLove;
    var$7 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2202);
    var$2.$data = var$6;
    ju_HashMap_putImpl(var$7, $rt_s(2202), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[144];
    if (var$7 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$6 = var$7.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$6 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$3 = var$2.$key;
                if (var$7 !== var$3 && !(var$7 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    var$6 = (!(!(var$2.$watchedObject.$value1 & 1) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2245);
    $par1NBTTagCompound.$data0 = var$6;
    ju_HashMap_putImpl(var$2, $rt_s(2245), $par1NBTTagCompound);
},
nms_EntityPig_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2201).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2201).$nativeString.length)
                        break a;
                    $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2201).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2201) !== var$6) {
                        if ($rt_s(2201) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$7 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2201) === null) {
                var$8 = var$2.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2201).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2201).$nativeString.length)
                                break c;
                            $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2201).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$7) {
                        d: {
                            var$2 = var$8.$key;
                            if ($rt_s(2201) !== var$2) {
                                if ($rt_s(2201) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2201).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$7 = (var$8 === null ? null : var$8.$value0).$data;
        }
        var$9 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$7;
        }
        var$6 = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[140];
        if (var$10 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$4 = jl_Integer_hashCode(var$10.$value);
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$6 !== null && !(var$6.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$10, var$6.$key))) {
                var$6 = var$6.$next3;
            }
        }
        var$8 = var$6 === null ? null : var$6.$value0;
        var$6 = var$8.$watchedObject;
        if (!(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2.$value ? 1 : 0)) {
            var$8.$watchedObject = var$2;
            var$8.$watched = 1;
            var$9.$objectChanged = 1;
        }
        var$9 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = ju_HashMap_entryByKey(var$9, jl_Integer_integerCache.data[140]);
        var$9 = var$9 === null ? null : var$9.$value0;
        var$11 = !(var$9.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$12 = $this.$field_98056_d * var$11;
        var$11 = $this.$field_98057_e * var$11;
        $ptr = 2;
    case 2:
        a: {
            nms_Entity_setSize($this, var$12, var$11);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2202).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2202).$nativeString.length)
                        break a;
                    $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2202).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2202) !== var$6) {
                        if ($rt_s(2202) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2202) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2202).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(2202).$nativeString.length)
                                break e;
                            $rt_s(2202).$hashCode1 = (31 * $rt_s(2202).$hashCode1 | 0) + $rt_s(2202).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2202).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        f: {
                            var$6 = var$2.$key;
                            if ($rt_s(2202) !== var$6) {
                                if ($rt_s(2202) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2202).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        g: {
            $this.$inLove = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2245).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2245).$nativeString.length)
                        break g;
                    $rt_s(2245).$hashCode1 = (31 * $rt_s(2245).$hashCode1 | 0) + $rt_s(2245).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2245).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                h: {
                    var$6 = var$2.$key;
                    if ($rt_s(2245) !== var$6) {
                        if ($rt_s(2245) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2245).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break h;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2245) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2245).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2245).$nativeString.length)
                                break i;
                            $rt_s(2245).$hashCode1 = (31 * $rt_s(2245).$hashCode1 | 0) + $rt_s(2245).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2245).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$4) {
                        j: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2245) !== var$2) {
                                if ($rt_s(2245) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2245).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break j;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
        }
        if (!(!var$3 ? 0 : 1)) {
            $par1NBTTagCompound = $this.$dataWatcher;
            var$8 = jl_Byte_byteCache.data[128];
            var$9 = $par1NBTTagCompound.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                var$9 = var$9.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                var$4 = var$6.$value;
                var$5 = var$9.$elementData.data;
                var$9 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == var$4) {
                        var$2 = var$9.$key;
                        if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            var$2 = var$9 === null ? null : var$9.$value0;
            var$9 = var$2.$watchedObject;
            if (!(var$9 instanceof jl_Byte && var$9.$value1 == var$8.$value1 ? 1 : 0)) {
                var$2.$watchedObject = var$8;
                var$2.$watched = 1;
                $par1NBTTagCompound.$objectChanged = 1;
            }
        } else {
            $par1NBTTagCompound = $this.$dataWatcher;
            var$8 = jl_Byte_byteCache.data[129];
            var$9 = $par1NBTTagCompound.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[144];
            if (var$6 === null) {
                var$9 = var$9.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                var$4 = var$6.$value;
                var$5 = var$9.$elementData.data;
                var$9 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == var$4) {
                        var$2 = var$9.$key;
                        if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            var$2 = var$9 === null ? null : var$9.$value0;
            var$9 = var$2.$watchedObject;
            if (!(var$9 instanceof jl_Byte && var$9.$value1 == var$8.$value1 ? 1 : 0)) {
                var$2.$watchedObject = var$8;
                var$2.$watched = 1;
                $par1NBTTagCompound.$objectChanged = 1;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityPig_getLivingSound = $this => {
    return $rt_s(2351);
},
nms_EntityPig_getHurtSound = $this => {
    return $rt_s(2351);
},
nms_EntityPig_getDeathSound = $this => {
    return $rt_s(2352);
},
nms_EntityPig_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2353);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityPig_interact = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAnimal_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2)
            return 1;
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        var$2 = !(var$3.$watchedObject.$value1 & 1) ? 0 : 1;
        a: {
            if (var$2 && !$this.$worldObj.$isRemote) {
                var$3 = $this.$riddenByEntity;
                if (var$3 === null)
                    break a;
                if (var$3 === $par1EntityPlayer)
                    break a;
            }
            return 0;
        }
        $ptr = 2;
    case 2:
        nms_Entity_mountEntity($par1EntityPlayer, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $par1EntityPlayer.$playerNetServerHandler;
        var$7 = new nms_Packet39AttachEntity;
        var$4 = $par1EntityPlayer.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$7.$attachState = 0;
        var$7.$ridingEntityId = $par1EntityPlayer.$entityId;
        var$2 = var$4 === null ? (-1) : var$4.$entityId;
        b: {
            var$7.$vehicleEntityId = var$2;
            if (var$7 instanceof nms_Packet3Chat) {
                var$4 = var$7;
                var$8 = var$3.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    break b;
                if (var$8 == 1 && !var$4.$isServer)
                    break b;
            }
            try {
                var$3 = var$3.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$4);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        c: {
            var$3 = $par1EntityPlayer.$playerNetServerHandler;
            var$9 = $par1EntityPlayer.$posX;
            var$10 = $par1EntityPlayer.$posY;
            var$11 = $par1EntityPlayer.$posZ;
            var$12 = $par1EntityPlayer.$rotationYaw;
            var$13 = $par1EntityPlayer.$rotationPitch;
            var$3.$hasMoved = 0;
            var$3.$lastPosX = var$9;
            var$3.$lastPosY = var$10;
            var$3.$lastPosZ = var$11;
            nms_Entity_setPositionAndRotation(var$3.$playerEntity, var$9, var$10, var$11, var$12, var$13);
            var$3 = var$3.$playerEntity.$playerNetServerHandler;
            var$7 = new nms_Packet13PlayerLookMove;
            var$14 = var$10 + 1.6200000047683716;
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$xPosition = var$9;
            var$7.$yPosition = var$14;
            var$7.$stance = var$10;
            var$7.$zPosition = var$11;
            var$7.$yaw = var$12;
            var$7.$pitch = var$13;
            var$7.$onGround0 = 0;
            var$7.$rotating = 1;
            var$7.$moving = 1;
            if (var$7 instanceof nms_Packet3Chat) {
                $par1EntityPlayer = var$7;
                var$8 = var$3.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    break c;
                if (var$8 == 1 && !$par1EntityPlayer.$isServer)
                    break c;
            }
            try {
                $par1EntityPlayer = var$3.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 3:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$4);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        e: {
            var$3 = $par1EntityPlayer.$playerNetServerHandler;
            var$9 = $par1EntityPlayer.$posX;
            var$10 = $par1EntityPlayer.$posY;
            var$11 = $par1EntityPlayer.$posZ;
            var$12 = $par1EntityPlayer.$rotationYaw;
            var$13 = $par1EntityPlayer.$rotationPitch;
            var$3.$hasMoved = 0;
            var$3.$lastPosX = var$9;
            var$3.$lastPosY = var$10;
            var$3.$lastPosZ = var$11;
            nms_Entity_setPositionAndRotation(var$3.$playerEntity, var$9, var$10, var$11, var$12, var$13);
            var$3 = var$3.$playerEntity.$playerNetServerHandler;
            var$7 = new nms_Packet13PlayerLookMove;
            var$14 = var$10 + 1.6200000047683716;
            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$7.$xPosition = var$9;
            var$7.$yPosition = var$14;
            var$7.$stance = var$10;
            var$7.$zPosition = var$11;
            var$7.$yaw = var$12;
            var$7.$pitch = var$13;
            var$7.$onGround0 = 0;
            var$7.$rotating = 1;
            var$7.$moving = 1;
            if (var$7 instanceof nms_Packet3Chat) {
                $par1EntityPlayer = var$7;
                var$8 = var$3.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    break e;
                if (var$8 == 1 && !$par1EntityPlayer.$isServer)
                    break e;
            }
            try {
                $par1EntityPlayer = var$3.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 4:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityPig_getDropItemId = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    a: {
        b: {
            if (!$this.$isImmuneToFire) {
                if ($this.$fire > 0)
                    break b;
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[128];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$3 = var$2.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$3) {
                            var$5 = var$1.$key;
                            if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$1 = var$1 === null ? null : var$1.$value0;
                if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)
                    break b;
            }
            var$3 = 0;
            break a;
        }
        var$3 = 1;
    }
    if (!var$3) {
        nms_Item_$callClinit();
        var$3 = nms_Item_porkRaw.$itemID0;
    } else {
        nms_Item_$callClinit();
        var$3 = nms_Item_porkCooked.$itemID0;
    }
    return var$3;
},
nms_EntityPig_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, $var3, $var4, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        while (true) {
            var$6 = var$5 % 3 | 0;
            if (((var$5 - var$6 | 0) + 2 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
        $var3 = var$6 + 1 | 0;
        $par1 = 1 + $par2 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        $par2 = $par1 - 1 | 0;
        if (!($par1 & $par2))
            var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$5)), 31));
        else
            while (true) {
                var$6 = var$5 % $par1 | 0;
                if (((var$5 - var$6 | 0) + $par2 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$5 = Long_lo(Long_shru(var$4, 17));
            }
        $var3 = $var3 + var$6 | 0;
        $var4 = 0;
        var$9 = 0.0;
        var$6 = 138;
        $par2 = 128;
        var$10 = 1;
        if ($var4 >= $var3) {
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                $var3 = var$11.$value;
                var$12 = var$3.$elementData.data;
                var$3 = var$12[$var3 & (var$12.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == $var3) {
                        var$13 = var$3.$key;
                        if (var$11 !== var$13 && !(var$11 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == $var3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            if (!(!(var$3.$watchedObject.$value1 & 1) ? 0 : 1))
                return;
            nms_Item_$callClinit();
            $par1 = nms_Item_saddle.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$14 = $this.$posX;
            var$9 = $this.$posY + var$9;
            var$15 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        a: {
            b: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break b;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$11 = jl_Integer_integerCache.data[$par2];
                    if (var$11 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$5 = var$11.$value;
                        var$12 = var$3.$elementData.data;
                        var$3 = var$12[var$5 & (var$12.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$5) {
                                var$13 = var$3.$key;
                                if (var$11 !== var$13 && !jl_Integer_equals(var$11, var$13) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & var$10) ? 0 : 1)
                        break b;
                }
                $par1 = 0;
                break a;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            var$5 = nms_Item_porkRaw.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$5;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$14 = $this.$posX;
            var$15 = $this.$posY + var$9;
            var$16 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_porkCooked.$itemID0;
        var$17 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$17.$itemID = $par1;
        var$17.$stackSize = 1;
        var$17.$itemDamage = 0;
        var$18 = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$16 = $this.$posX;
        var$14 = $this.$posY + var$9;
        var$15 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityItem__init_(var$13, var$11, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = var$13.$dataWatcher;
        var$11 = var$18.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[var$6]);
        var$17 = var$11 === null ? null : var$11.$value0;
        if (!(var$3 !== var$17.$watchedObject ? 0 : 1)) {
            var$17.$watchedObject = var$3;
            var$17.$watched = 1;
            var$18.$objectChanged = 1;
        }
        var$17 = var$13.$dataWatcher;
        var$3 = var$17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$6]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$17.$objectChanged = 1;
        var$13.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntityItem__init_(var$18, var$3, var$16, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = var$18.$dataWatcher;
        var$3 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$6]);
        var$13 = var$3 === null ? null : var$3.$value0;
        if (!(var$17 !== var$13.$watchedObject ? 0 : 1)) {
            var$13.$watchedObject = var$17;
            var$13.$watched = 1;
            var$11.$objectChanged = 1;
        }
        var$11 = var$18.$dataWatcher;
        var$3 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$6]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        var$18.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityItem__init_(var$13, var$11, var$14, var$9, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = var$13.$dataWatcher;
        var$11 = var$17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$11, jl_Integer_integerCache.data[var$6]);
        var$11 = var$11 === null ? null : var$11.$value0;
        if (!(var$3 !== var$11.$watchedObject ? 0 : 1)) {
            var$11.$watchedObject = var$3;
            var$11.$watched = 1;
            var$17.$objectChanged = 1;
        }
        var$17 = var$13.$dataWatcher;
        var$3 = var$17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$6]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$17.$objectChanged = 1;
        var$13.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= $var3) {
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                $var3 = var$11.$value;
                var$12 = var$3.$elementData.data;
                var$3 = var$12[$var3 & (var$12.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == $var3) {
                        var$13 = var$3.$key;
                        if (var$11 !== var$13 && !(var$11 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == $var3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            if (!(!(var$3.$watchedObject.$value1 & 1) ? 0 : 1))
                return;
            nms_Item_$callClinit();
            $par1 = nms_Item_saddle.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$14 = $this.$posX;
            var$9 = $this.$posY + var$9;
            var$15 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        c: {
            d: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break d;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$11 = jl_Integer_integerCache.data[$par2];
                    if (var$11 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$5 = var$11.$value;
                        var$12 = var$3.$elementData.data;
                        var$3 = var$12[var$5 & (var$12.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$5) {
                                var$13 = var$3.$key;
                                if (var$11 !== var$13 && !jl_Integer_equals(var$11, var$13) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & var$10) ? 0 : 1)
                        break d;
                }
                $par1 = 0;
                break c;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            var$5 = nms_Item_porkRaw.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$5;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$14 = $this.$posX;
            var$15 = $this.$posY + var$9;
            var$16 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_porkCooked.$itemID0;
        var$17 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$17.$itemID = $par1;
        var$17.$stackSize = 1;
        var$17.$itemDamage = 0;
        var$18 = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$16 = $this.$posX;
        var$14 = $this.$posY + var$9;
        var$15 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 5:
        nms_World_spawnEntityInWorld(var$3, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= $var3) {
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                $var3 = var$11.$value;
                var$12 = var$3.$elementData.data;
                var$3 = var$12[$var3 & (var$12.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == $var3) {
                        var$13 = var$3.$key;
                        if (var$11 !== var$13 && !(var$11 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == $var3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            if (!(!(var$3.$watchedObject.$value1 & 1) ? 0 : 1))
                return;
            nms_Item_$callClinit();
            $par1 = nms_Item_saddle.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$14 = $this.$posX;
            var$9 = $this.$posY + var$9;
            var$15 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        c: {
            d: {
                if (!$this.$isImmuneToFire) {
                    if ($this.$fire > 0)
                        break d;
                    var$3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$11 = jl_Integer_integerCache.data[$par2];
                    if (var$11 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$5 = var$11.$value;
                        var$12 = var$3.$elementData.data;
                        var$3 = var$12[var$5 & (var$12.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$5) {
                                var$13 = var$3.$key;
                                if (var$11 !== var$13 && !jl_Integer_equals(var$11, var$13) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$3 = var$3 === null ? null : var$3.$value0;
                    if (!(var$3.$watchedObject.$value1 & var$10) ? 0 : 1)
                        break d;
                }
                $par1 = 0;
                break c;
            }
            $par1 = 1;
        }
        if (!$par1) {
            nms_Item_$callClinit();
            var$5 = nms_Item_porkRaw.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$5;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$13 = new nms_EntityItem;
            var$11 = $this.$worldObj;
            var$14 = $this.$posX;
            var$15 = $this.$posY + var$9;
            var$16 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_porkCooked.$itemID0;
        var$17 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$17.$itemID = $par1;
        var$17.$stackSize = 1;
        var$17.$itemDamage = 0;
        var$18 = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$16 = $this.$posX;
        var$14 = $this.$posY + var$9;
        var$15 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 6:
        nms_World_spawnEntityInWorld(var$3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, $var3, $var4, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityPig_onStruckByLightning = ($this, $par1EntityLightningBolt) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityLightningBolt = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityLightningBolt = $this.$worldObj;
        if ($par1EntityLightningBolt.$isRemote)
            return;
        $var2 = new nms_EntityPigZombie;
        nms_EntityPigZombie_$callClinit();
        nms_EntityZombie__init_0($var2, $par1EntityLightningBolt);
        $var2.$isImmuneToFire = 1;
        var$3 = $this.$posX;
        var$4 = $this.$posY;
        var$5 = $this.$posZ;
        var$6 = $this.$rotationYaw;
        var$7 = $this.$rotationPitch;
        $var2.$posX = var$3;
        $var2.$prevPosX = var$3;
        $var2.$lastTickPosX = var$3;
        var$4 = var$4 + $var2.$yOffset;
        $var2.$posY = var$4;
        $var2.$prevPosY = var$4;
        $var2.$lastTickPosY = var$4;
        $var2.$posZ = var$5;
        $var2.$prevPosZ = var$5;
        $var2.$lastTickPosZ = var$5;
        $var2.$rotationYaw = var$6;
        $var2.$rotationPitch = var$7;
        nms_Entity_setPosition($var2, var$3, var$4, var$5);
        $par1EntityLightningBolt = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_spawnEntityInWorld($par1EntityLightningBolt, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLightningBolt, $var2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityPig_fall = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_fall($this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1 > 5.0) {
            var$2 = $this.$riddenByEntity;
            if (var$2 instanceof nms_EntityPlayer) {
                var$2 = var$2;
                nms_AchievementList_$callClinit();
                var$3 = nms_AchievementList_flyPig;
                if (var$3 !== null && !var$3.$isIndependent)
                    a: {
                        var$4 = var$2.$playerNetServerHandler;
                        var$2 = new nms_Packet200Statistic;
                        var$5 = var$3.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$2.$statisticId = var$5;
                        var$2.$amount = 1;
                        if (var$2 instanceof nms_Packet3Chat) {
                            var$3 = var$2;
                            var$5 = var$4.$playerEntity.$chatVisibility;
                            if (var$5 == 2)
                                break a;
                            if (var$5 == 1 && !var$3.$isServer)
                                break a;
                        }
                        try {
                            var$3 = var$4.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$2 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$3 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = var$3;
                        }
                        jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                    }
            }
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$3, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityPig_isBreedingItem = ($this, $par1ItemStack) => {
    let var$2;
    a: {
        if ($par1ItemStack !== null) {
            var$2 = $par1ItemStack.$itemID;
            nms_Item_$callClinit();
            if (var$2 == nms_Item_carrot.$itemID0) {
                var$2 = 1;
                break a;
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EntityPig_createChild = ($this, $par1EntityAgeable) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityPig;
        var$2 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityPig__init_($par1EntityAgeable, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, $ptr);
},
nms_EntitySpider = $rt_classWithoutFields(nms_EntityMob),
nms_EntitySpider_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 0;
    nms_DataWatcher_addObject(var$2, 16, var$1);
},
nms_EntitySpider_onUpdate = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$worldObj;
            var$2 = var$1.$isRemote;
            if (!var$2 && !var$1.$difficultySetting)
                $this.$isDead = 1;
            if (!var$2)
                nms_EntitySpider_setBesideClimbableBlock($this, $this.$isCollidedHorizontally);
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj;
        var$2 = var$1.$isRemote;
        if (!var$2 && !var$1.$difficultySetting)
            $this.$isDead = 1;
        if (!var$2)
            nms_EntitySpider_setBesideClimbableBlock($this, $this.$isCollidedHorizontally);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_EntitySpider_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$1);
    var$2 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$2.$baseValue) {
        var$2.$baseValue = 0.10000000149011612;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (16.0 !== var$2.$baseValue) {
        var$2.$baseValue = 16.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        b: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break b;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$1 = var$3 === null ? null : var$3.$value0;
    if (0.800000011920929 !== var$1.$baseValue) {
        var$1.$baseValue = 0.800000011920929;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
},
nms_EntitySpider_findPlayerToAttack = $this => {
    let $var1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_getBrightness($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 >= 0.5)
            return null;
        return nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 16.0);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $ptr);
},
nms_EntitySpider_getLivingSound = $this => {
    return $rt_s(2354);
},
nms_EntitySpider_getHurtSound = $this => {
    return $rt_s(2354);
},
nms_EntitySpider_getDeathSound = $this => {
    return $rt_s(2355);
},
nms_EntitySpider_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2356);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntitySpider_attackEntity = ($this, $par1Entity, $par2) => {
    let $var8, $var3, var$5, var$6, var$7, var$8, var$9, var$10, $var4, $var6, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var8 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = 1.0;
        $ptr = 1;
    case 1:
        a: {
            b: {
                $tmp = nms_Entity_getBrightness($this, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                $var3 = $tmp;
                if ($var3 > 0.5) {
                    var$5 = $this.$rand;
                    var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$5.$seed = var$6;
                    var$7 = Long_lo(Long_shru(var$6, 17));
                    while (true) {
                        var$8 = var$7 % 100 | 0;
                        if (((var$7 - var$8 | 0) + 99 | 0) >= 0)
                            break;
                        var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$5.$seed = var$6;
                        var$7 = Long_lo(Long_shru(var$6, 17));
                    }
                    if (!var$8) {
                        $this.$entityToAttack = null;
                        break b;
                    }
                }
                if ($par2 <= 2.0)
                    break a;
                if ($par2 >= 6.0)
                    break a;
                var$5 = $this.$rand;
                var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$5.$seed = var$6;
                var$9 = Long_lo(Long_shru(var$6, 17));
                while (true) {
                    var$10 = var$9 % 10 | 0;
                    if (((var$9 - var$10 | 0) + 9 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$5.$seed = var$6;
                    var$9 = Long_lo(Long_shru(var$6, 17));
                }
                if (var$10)
                    break a;
                if ($this.$onGround) {
                    $var4 = $par1Entity.$posX - $this.$posX;
                    $var6 = $par1Entity.$posZ - $this.$posZ;
                    var$13 = jl_Math_sqrt($var4 * $var4 + $var6 * $var6);
                    $this.$motionX = $var4 / var$13 * 0.5 * 0.800000011920929 + $this.$motionX * 0.20000000298023224;
                    $this.$motionZ = $var6 / var$13 * 0.5 * 0.800000011920929 + $this.$motionZ * 0.20000000298023224;
                    $this.$motionY = 0.4000000059604645;
                }
            }
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityMob_attackEntity($this, $par1Entity, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var8, $var3, var$5, var$6, var$7, var$8, var$9, var$10, $var4, $var6, var$13, $ptr);
},
nms_EntitySpider_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_silk.$itemID0;
},
nms_EntitySpider_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_dropFewItems($this, $par1, $par2);
            if ($rt_suspending()) {
                break main;
            }
            if ($par1) {
                var$3 = $this.$rand;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$5 = Long_lo(Long_shru(var$4, 17));
                while (true) {
                    var$6 = var$5 % 3 | 0;
                    if (((var$5 - var$6 | 0) + 2 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                }
                if (!var$6)
                    break a;
                $par1 = 1 + $par2 | 0;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$7 = Long_lo(Long_shru(var$4, 17));
                var$5 = $par1 - 1 | 0;
                if (!($par1 & var$5))
                    $par2 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$7)), 31));
                else
                    while (true) {
                        $par2 = var$7 % $par1 | 0;
                        if (((var$7 - $par2 | 0) + var$5 | 0) >= 0)
                            break;
                        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$4;
                        var$7 = Long_lo(Long_shru(var$4, 17));
                    }
                if ($par2 > 0)
                    break a;
            }
            return;
        }
        nms_Item_$callClinit();
        $par1 = nms_Item_spiderEye.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$8 = new nms_EntityItem;
        var$9 = $this.$worldObj;
        var$10 = $this.$posX;
        var$11 = $this.$posY + 0.0;
        var$12 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityItem__init_(var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$8.$dataWatcher;
        var$9 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = ju_HashMap_entryByKey(var$9, jl_Integer_integerCache.data[138]);
        var$14 = var$9 === null ? null : var$9.$value0;
        if (!(var$3 !== var$14.$watchedObject ? 0 : 1)) {
            var$14.$watchedObject = var$3;
            var$14.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$14 = var$8.$dataWatcher;
        var$3 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[138]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$14.$objectChanged = 1;
        var$8.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntitySpider_isOnLadder = $this => {
    return nms_EntitySpider_isBesideClimbableBlock($this);
},
nms_EntitySpider_setInWeb = $this => {
    return;
},
nms_EntitySpider_getCreatureAttribute = $this => {
    return nms_EnumCreatureAttribute_ARTHROPOD;
},
nms_EntitySpider_isPotionApplicable = ($this, $par1PotionEffect) => {
    let var$2, var$3;
    var$2 = $par1PotionEffect.$potionID;
    nms_Potion_$callClinit();
    var$3 = $rt_compare(var$2, nms_Potion_poison.$id0);
    if (!var$3)
        var$3 = 0;
    else
        a: {
            b: {
                if (nms_EnumCreatureAttribute_ARTHROPOD === nms_EnumCreatureAttribute_UNDEAD) {
                    if (var$2 == nms_Potion_regeneration.$id0)
                        break b;
                    if (!var$3)
                        break b;
                }
                var$3 = 1;
                break a;
            }
            var$3 = 0;
        }
    return var$3;
},
nms_EntitySpider_isBesideClimbableBlock = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value1 & 1) ? 0 : 1;
},
nms_EntitySpider_setBesideClimbableBlock = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    $par1 = !$par1 ? (var$7 & (-2)) << 24 >> 24 : (var$7 | 1) << 24 >> 24;
    var$2 = $this.$dataWatcher;
    var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
    var$6 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$9 = jl_Integer_integerCache.data[144];
    if (var$9 === null) {
        var$6 = var$6.$elementData.data[0];
        while (var$6 !== null && var$6.$key !== null) {
            var$6 = var$6.$next3;
        }
    } else {
        var$10 = var$9.$value;
        var$5 = var$6.$elementData.data;
        var$6 = var$5[var$10 & (var$5.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$10) {
                var$3 = var$6.$key;
                if (var$9 !== var$3 && !(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$6 = var$6.$next3;
        }
    }
    var$3 = var$6 === null ? null : var$6.$value0;
    var$6 = var$3.$watchedObject;
    if (!(var$6 instanceof jl_Byte && var$6.$value1 == var$8.$value1 ? 1 : 0)) {
        var$3.$watchedObject = var$8;
        var$3.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntitySpider_onSpawnWithEgg = ($this, $par1EntityLivingData1) => {
    let var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var4, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1EntityLivingData1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = nms_SharedMonsterAttributes_followRange;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        $var2 = $this.$attributeMap.$attributes;
        if (var$2 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            var$4 = jl_String_hashCode(var$2.$field_111115_a);
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null && !($var2.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$2, $var2.$key))) {
                $var2 = $var2.$next3;
            }
        }
        var$6 = $var2 === null ? null : $var2.$value0;
        $var2 = new nms_AttributeModifier;
        var$7 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
        var$8 = nle_ProfileUUID_randomUUID();
        $var2.$isSaved = 1;
        $var2.$id1 = var$8;
        $var2.$name3 = $rt_s(2198);
        $var2.$amount0 = var$7;
        $var2.$operation = 1;
        if ($rt_s(2198) === $rt_s(3))
            var$9 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$9 = 0;
        else {
            var$8 = $rt_s(3);
            var$9 = $rt_s(2198).$nativeString !== var$8.$nativeString ? 0 : 1;
        }
        if (var$9) {
            var$2 = new jl_IllegalArgumentException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            var$2.$message = $rt_s(1279);
            $rt_throw(var$2);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, $var2);
        var$2 = $this.$worldObj;
        $var2 = var$2.$rand0;
        var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$10;
        $var4 = Long_lo(Long_shru(var$10, 17));
        while (true) {
            var$4 = $var4 % 100 | 0;
            if ((($var4 - var$4 | 0) + 99 | 0) >= 0)
                break;
            var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$10;
            $var4 = Long_lo(Long_shru(var$10, 17));
        }
        if (!var$4) {
            $var2 = new nms_EntitySkeleton;
            $ptr = 1;
            continue main;
        }
        if ($par1EntityLivingData1 === null) {
            $par1EntityLivingData1 = new nms_SpiderEffectsGroupData;
            var$2 = $this.$worldObj;
            if (var$2.$difficultySetting > 2) {
                $var2 = var$2.$rand0;
                var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$10;
                var$12 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
                var$13 = 0.10000000149011612;
                var$7 = $this.$posX;
                var$14 = $this.$posY;
                var$15 = $this.$posZ;
                var$16 = var$7 | 0;
                if (var$7 < var$16)
                    var$16 = var$16 - 1 | 0;
                var$4 = var$14 | 0;
                if (var$14 < var$4)
                    var$4 = var$4 - 1 | 0;
                $var4 = var$15 | 0;
                if (var$15 < $var4)
                    $var4 = $var4 - 1 | 0;
                $ptr = 6;
                continue main;
            }
        }
        if ($par1EntityLivingData1 instanceof nms_SpiderEffectsGroupData) {
            $var4 = $par1EntityLivingData1.$field_111105_a;
            if ($var4 > 0) {
                nms_Potion_$callClinit();
                if (nms_Potion_potionTypes.data[$var4] !== null) {
                    var$2 = new nms_PotionEffect;
                    var$2.$potionID = $var4;
                    var$2.$duration = 2147483647;
                    var$2.$amplifier = 0;
                    var$2.$isAmbient = 0;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        return $par1EntityLivingData1;
    case 1:
        nms_EntitySkeleton__init_($var2, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $this.$posX;
        var$15 = $this.$posY;
        var$17 = $this.$posZ;
        var$12 = $this.$rotationYaw;
        $var2.$posX = var$14;
        $var2.$prevPosX = var$14;
        $var2.$lastTickPosX = var$14;
        var$7 = var$15 + $var2.$yOffset;
        $var2.$posY = var$7;
        $var2.$prevPosY = var$7;
        $var2.$lastTickPosY = var$7;
        $var2.$posZ = var$17;
        $var2.$prevPosZ = var$17;
        $var2.$lastTickPosZ = var$17;
        $var2.$rotationYaw = var$12;
        $var2.$rotationPitch = 0.0;
        nms_Entity_setPosition($var2, var$14, var$7, var$17);
        var$2 = null;
        $ptr = 2;
    case 2:
        nms_EntitySkeleton_onSpawnWithEgg($var2, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$2, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 4;
    case 4:
        nms_Entity_mountEntity($var2, $this);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1EntityLivingData1 === null) {
            $par1EntityLivingData1 = new nms_SpiderEffectsGroupData;
            var$2 = $this.$worldObj;
            if (var$2.$difficultySetting > 2) {
                $var2 = var$2.$rand0;
                var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$10;
                var$12 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
                var$13 = 0.10000000149011612;
                var$7 = $this.$posX;
                var$14 = $this.$posY;
                var$15 = $this.$posZ;
                var$16 = var$7 | 0;
                if (var$7 < var$16)
                    var$16 = var$16 - 1 | 0;
                var$4 = var$14 | 0;
                if (var$14 < var$4)
                    var$4 = var$4 - 1 | 0;
                $var4 = var$15 | 0;
                if (var$15 < $var4)
                    $var4 = $var4 - 1 | 0;
                $ptr = 6;
                continue main;
            }
        }
        if ($par1EntityLivingData1 instanceof nms_SpiderEffectsGroupData) {
            $var4 = $par1EntityLivingData1.$field_111105_a;
            if ($var4 > 0) {
                nms_Potion_$callClinit();
                if (nms_Potion_potionTypes.data[$var4] !== null) {
                    var$2 = new nms_PotionEffect;
                    var$2.$potionID = $var4;
                    var$2.$duration = 2147483647;
                    var$2.$amplifier = 0;
                    var$2.$isAmbient = 0;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        return $par1EntityLivingData1;
    case 5:
        nms_EntityLivingBase_addPotionEffect($this, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return $par1EntityLivingData1;
    case 6:
        $tmp = nms_World_getTensionFactorForBlock(var$2, var$16, var$4, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$12 < var$13 * var$18)
            nms_SpiderEffectsGroupData_func_111104_a($par1EntityLivingData1, $this.$worldObj.$rand0);
        if ($par1EntityLivingData1 instanceof nms_SpiderEffectsGroupData) {
            $var4 = $par1EntityLivingData1.$field_111105_a;
            if ($var4 > 0) {
                nms_Potion_$callClinit();
                if (nms_Potion_potionTypes.data[$var4] !== null) {
                    var$2 = new nms_PotionEffect;
                    var$2.$potionID = $var4;
                    var$2.$duration = 2147483647;
                    var$2.$amplifier = 0;
                    var$2.$isAmbient = 0;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        return $par1EntityLivingData1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingData1, var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var4, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_IRangedAttackMob = $rt_classWithoutFields(0);
function nms_EntitySkeleton() {
    let a = this; nms_EntityMob.call(a);
    a.$aiArrowAttack = null;
    a.$aiAttackOnCollide = null;
}
let nms_EntitySkeleton__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        var$2 = new nms_ChunkCoordinates;
        var$2.$posX0 = 0;
        var$2.$posY0 = 0;
        var$2.$posZ0 = 0;
        $this.$homePosition = var$2;
        $this.$maximumHomeDistance = (-1.0);
        var$2 = new nms_EntityAIMoveTowardsRestriction;
        var$2.$theEntity0 = $this;
        var$2.$movementSpeed = 1.0;
        var$2.$mutexBits = 1;
        $this.$field_110178_bs = var$2;
        $this.$experienceValue = 5;
        var$2 = new nms_EntityAIArrowAttack;
        var$2.$rangedAttackTime = (-1);
        if (!($this instanceof nms_EntityLivingBase)) {
            $par1World = new jl_IllegalArgumentException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $par1World.$message = $rt_s(2357);
            $rt_throw($par1World);
        }
        var$2.$rangedAttackEntityHost = $this;
        var$2.$entityHost = $this;
        var$2.$entityMoveSpeed = 1.0;
        var$2.$field_96561_g = 20;
        var$2.$maxRangedAttackTime = 60;
        var$2.$field_96562_i = 15.0;
        var$2.$field_82642_h = 225.0;
        var$2.$mutexBits = 3;
        $this.$aiArrowAttack = var$2;
        var$2 = new nms_EntityAIAttackOnCollide;
        var$2.$attacker = $this;
        var$2.$worldObj17 = $this.$worldObj;
        var$2.$field_75440_e = 1.2;
        var$2.$longMemory = 0;
        var$2.$mutexBits = 3;
        var$2.$classTarget = $rt_cls(nms_EntityPlayer);
        $this.$aiAttackOnCollide = var$2;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAISwimming;
        var$3.$theEntity3 = $this;
        var$3.$mutexBits = 4;
        $this.$navigator.$canSwim = 1;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 1;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAIRestrictSun;
        var$3.$theEntity10 = $this;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 2;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAIFleeSun;
        var$3.$theCreature = $this;
        var$3.$movementSpeed1 = 1.0;
        var$3.$theWorld3 = $this.$worldObj;
        var$3.$mutexBits = 1;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 3;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAIWander;
        var$3.$entity = $this;
        var$3.$speed = 1.0;
        var$3.$mutexBits = 1;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 5;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAIWatchClosest;
        var$3.$theWatcher = $this;
        var$3.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$3.$maxDistanceForPlayer = 8.0;
        var$3.$field_75331_e = 0.019999999552965164;
        var$3.$mutexBits = 2;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 6;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$tasks0;
        var$3 = new nms_EntityAILookIdle;
        var$3.$idleEntity = $this;
        var$3.$mutexBits = 3;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 6;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$targetTasks;
        var$3 = new nms_EntityAIHurtByTarget;
        var$3.$taskOwner = $this;
        var$3.$shouldCheckSight = 0;
        var$3.$nearbyOnly = 0;
        var$3.$entityCallsForHelp = 0;
        var$3.$mutexBits = 1;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 1;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$2 = $this.$targetTasks;
        var$3 = new nms_EntityAINearestAttackableTarget;
        var$4 = null;
        var$3.$taskOwner = $this;
        var$3.$shouldCheckSight = 1;
        var$3.$nearbyOnly = 0;
        var$3.$targetClass = $rt_cls(nms_EntityPlayer);
        var$3.$targetChance = 0;
        var$5 = new nms_EntityAINearestAttackableTargetSorter;
        var$5.$theEntity5 = $this;
        var$3.$theNearestAttackableTargetSorter = var$5;
        var$3.$mutexBits = 1;
        var$5 = new nms_EntityAINearestAttackableTargetSelector;
        var$5.$field_111102_d = var$3;
        var$5.$field_111103_c = var$4;
        var$3.$targetEntitySelector = var$5;
        var$4 = var$2.$taskEntries;
        var$5 = new nms_EntityAITaskEntry;
        var$5.$tasks = var$2;
        var$5.$priority = 2;
        var$5.$action = var$3;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$6 = var$4.$array.data;
        var$7 = var$4.$size0;
        var$4.$size0 = var$7 + 1 | 0;
        var$6[var$7] = var$5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        if ($par1World !== null && !$par1World.$isRemote) {
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_EntitySkeleton_setCombatTask($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntitySkeleton__init_0 = var_0 => {
    let var_1 = new nms_EntitySkeleton();
    nms_EntitySkeleton__init_(var_1, var_0);
    return var_1;
},
nms_EntitySkeleton_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.25 !== var$1.$baseValue) {
        var$1.$baseValue = 0.25;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntitySkeleton_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 0;
    nms_DataWatcher_addObject(var$2, 13, var$1);
},
nms_EntitySkeleton_isAIEnabled = $this => {
    return 1;
},
nms_EntitySkeleton_getLivingSound = $this => {
    return $rt_s(2358);
},
nms_EntitySkeleton_getHurtSound = $this => {
    return $rt_s(2359);
},
nms_EntitySkeleton_getDeathSound = $this => {
    return $rt_s(2360);
},
nms_EntitySkeleton_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2361);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntitySkeleton_attackEntityAsMob = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityMob_attackEntityAsMob($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2)
            return 0;
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[141];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        if (var$3.$watchedObject.$value1 == 1 && $par1Entity instanceof nms_EntityLivingBase) {
            var$3 = $par1Entity;
            var$7 = new nms_PotionEffect;
            nms_Potion_$callClinit();
            var$7.$potionID = nms_Potion_wither.$id0;
            var$7.$duration = 200;
            var$7.$amplifier = 0;
            var$7.$isAmbient = 0;
            $ptr = 2;
            continue main;
        }
        return 1;
    case 2:
        var$3.$addPotionEffect(var$7);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntitySkeleton_getCreatureAttribute = $this => {
    return nms_EnumCreatureAttribute_UNDEAD;
},
nms_EntitySkeleton_onLivingUpdate = $this => {
    let var$1, $var2, $var1, var$4, var$5, var$6, $var3, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();$var2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        $var2 = var$1.$skylightSubtracted >= 4 ? 0 : 1;
        if ($var2 && !var$1.$isRemote) {
            $var1 = 1.0;
            $ptr = 2;
            continue main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[141];
            if (var$4 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$1.$elementData.data;
                var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$5) {
                        $var3 = var$1.$key;
                        if (var$4 !== $var3 && !(var$4 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1 == 1) {
                var$8 = 0.7200000286102295;
                $var1 = 2.3399999141693115;
                $ptr = 4;
                continue main;
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var1 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_getBrightness($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 > 0.5)
            $this.$entityAge = $this.$entityAge + 2 | 0;
        $ptr = 3;
        continue main;
    case 2:
        a: {
            $tmp = nms_Entity_getBrightness($this, $var1);
            if ($rt_suspending()) {
                break main;
            }
            $var1 = $tmp;
            if ($var1 > 0.5) {
                var$1 = $this.$rand;
                var$9 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$9;
                if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 * 30.0 < ($var1 - 0.4000000059604645) * 2.0) {
                    var$1 = $this.$worldObj;
                    var$10 = $this.$posX;
                    var$11 = var$10 | 0;
                    if (var$10 < var$11)
                        var$11 = var$11 - 1 | 0;
                    var$10 = $this.$posY;
                    var$12 = var$10 | 0;
                    if (var$10 < var$12)
                        var$12 = var$12 - 1 | 0;
                    var$10 = $this.$posZ;
                    var$13 = var$10 | 0;
                    if (var$10 < var$13)
                        var$13 = var$13 - 1 | 0;
                    var$14 = var$11 >> 4;
                    var$15 = var$13 >> 4;
                    var$1 = var$1.$chunkProvider;
                    $var3 = var$1.$loadedChunkHashMap;
                    var$16 = Long_or(Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$15), Long_create(4294967295, 0)), 32));
                    $var2 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                    $var2 = $var2 ^ ($var2 >>> 20 | 0) ^ ($var2 >>> 12 | 0);
                    var$5 = $var2 ^ ($var2 >>> 7 | 0) ^ ($var2 >>> 4 | 0);
                    var$6 = $var3.$hashArray.data;
                    $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    b: {
                        while ($var3 !== null) {
                            if (Long_eq($var3.$key1, var$16)) {
                                $var3 = $var3.$value4;
                                break b;
                            }
                            $var3 = $var3.$nextEntry;
                        }
                        $var3 = null;
                    }
                    $var3 = $var3;
                    if ($var3 === null) {
                        if (var$1.$worldObj0.$findingSpawnPoint)
                            break a;
                        if (var$1.$loadChunkOnProvideRequest)
                            break a;
                        $var3 = var$1.$defaultEmptyChunk;
                    }
                    if ($var3.$canBlockSeeTheSky(var$11 & 15, var$12, var$13 & 15)) {
                        $var2 = 1;
                        $var3 = $this.$equipment.data[4];
                        if ($var3 !== null) {
                            nms_Item_$callClinit();
                            var$6 = nms_Item_itemsList.data;
                            var$5 = $var3.$itemID;
                            if (var$6[var$5].$maxDamage <= 0 ? 0 : 1) {
                                var$14 = $var3.$itemDamage;
                                var$1 = $this.$rand;
                                var$9 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$1.$seed = var$9;
                                $var2 = var$14 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31)) | 0;
                                $var3.$itemDamage = $var2;
                                if ($var2 < 0)
                                    $var3.$itemDamage = 0;
                                if ($var3.$itemDamage >= var$6[var$5].$maxDamage) {
                                    $ptr = 6;
                                    continue main;
                                }
                            }
                            $var2 = 0;
                        }
                        if ($var2) {
                            $var2 = 160;
                            nms_Enchantment_$callClinit();
                            var$14 = nms_Enchantment_fireProtection.$effectId;
                            var$6 = $this.$equipment;
                            nms_EnchantmentHelper_$callClinit();
                            if (var$6 === null)
                                var$5 = 0;
                            else {
                                var$6 = var$6.data;
                                var$5 = 0;
                                var$17 = var$6.length;
                                var$13 = 0;
                                while (var$13 < var$17) {
                                    var$12 = nms_EnchantmentHelper_getEnchantmentLevel(var$14, var$6[var$13]);
                                    if (var$12 > var$5)
                                        var$5 = var$12;
                                    var$13 = var$13 + 1 | 0;
                                }
                            }
                            if (var$5 > 0) {
                                $var1 = 160.0 * var$5 * 0.15000000596046448;
                                var$14 = $var1 | 0;
                                if ($var1 < var$14)
                                    var$14 = var$14 - 1 | 0;
                                $var2 = $var2 - var$14 | 0;
                            }
                            if ($this.$fire < $var2)
                                $this.$fire = $var2;
                        }
                    }
                }
            }
            if ($this.$worldObj.$isRemote) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[141];
                if (var$4 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$5 = var$4.$value;
                    var$6 = var$1.$elementData.data;
                    var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$5) {
                            $var3 = var$1.$key;
                            if (var$4 !== $var3 && !(var$4 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1 == 1) {
                    var$8 = 0.7200000286102295;
                    $var1 = 2.3399999141693115;
                    $ptr = 4;
                    continue main;
                }
            }
            nms_EntityLivingBase_updateArmSwingProgress($this);
            $var1 = 1.0;
            $ptr = 1;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_Entity_setSize($this, var$8, $var1);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var1 = 1.0;
        $ptr = 1;
        continue main;
    case 5:
        $tmp = nms_ChunkProviderServer_loadChunk(var$1, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3.$canBlockSeeTheSky(var$11 & 15, var$12, var$13 & 15)) {
            $var2 = 1;
            $var3 = $this.$equipment.data[4];
            if ($var3 !== null) {
                nms_Item_$callClinit();
                var$6 = nms_Item_itemsList.data;
                var$5 = $var3.$itemID;
                if (var$6[var$5].$maxDamage <= 0 ? 0 : 1) {
                    var$14 = $var3.$itemDamage;
                    var$1 = $this.$rand;
                    var$9 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$9;
                    $var2 = var$14 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31)) | 0;
                    $var3.$itemDamage = $var2;
                    if ($var2 < 0)
                        $var3.$itemDamage = 0;
                    if ($var3.$itemDamage >= var$6[var$5].$maxDamage) {
                        $ptr = 6;
                        continue main;
                    }
                }
                $var2 = 0;
            }
            if ($var2) {
                $var2 = 160;
                nms_Enchantment_$callClinit();
                var$14 = nms_Enchantment_fireProtection.$effectId;
                var$6 = $this.$equipment;
                nms_EnchantmentHelper_$callClinit();
                if (var$6 === null)
                    var$5 = 0;
                else {
                    var$6 = var$6.data;
                    var$5 = 0;
                    var$17 = var$6.length;
                    var$13 = 0;
                    while (var$13 < var$17) {
                        var$12 = nms_EnchantmentHelper_getEnchantmentLevel(var$14, var$6[var$13]);
                        if (var$12 > var$5)
                            var$5 = var$12;
                        var$13 = var$13 + 1 | 0;
                    }
                }
                if (var$5 > 0) {
                    $var1 = 160.0 * var$5 * 0.15000000596046448;
                    var$14 = $var1 | 0;
                    if ($var1 < var$14)
                        var$14 = var$14 - 1 | 0;
                    $var2 = $var2 - var$14 | 0;
                }
                if ($this.$fire < $var2)
                    $this.$fire = $var2;
            }
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[141];
            if (var$4 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$1.$elementData.data;
                var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$5) {
                        $var3 = var$1.$key;
                        if (var$4 !== $var3 && !(var$4 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1 == 1) {
                var$8 = 0.7200000286102295;
                $var1 = 2.3399999141693115;
                $ptr = 4;
                continue main;
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var1 = 1.0;
        $ptr = 1;
        continue main;
    case 6:
        nms_EntityLivingBase_renderBrokenItemStack($this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$equipment.data[4] = null;
        if (0) {
            $var2 = 160;
            nms_Enchantment_$callClinit();
            var$14 = nms_Enchantment_fireProtection.$effectId;
            var$6 = $this.$equipment;
            nms_EnchantmentHelper_$callClinit();
            if (var$6 === null)
                var$5 = 0;
            else {
                var$6 = var$6.data;
                var$5 = 0;
                var$17 = var$6.length;
                var$13 = 0;
                while (var$13 < var$17) {
                    var$12 = nms_EnchantmentHelper_getEnchantmentLevel(var$14, var$6[var$13]);
                    if (var$12 > var$5)
                        var$5 = var$12;
                    var$13 = var$13 + 1 | 0;
                }
            }
            if (var$5 > 0) {
                $var1 = 160.0 * var$5 * 0.15000000596046448;
                var$14 = $var1 | 0;
                if ($var1 < var$14)
                    var$14 = var$14 - 1 | 0;
                $var2 = $var2 - var$14 | 0;
            }
            if ($this.$fire < $var2)
                $this.$fire = $var2;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[141];
            if (var$4 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$1.$elementData.data;
                var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$5) {
                        $var3 = var$1.$key;
                        if (var$4 !== $var3 && !(var$4 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value1 == 1) {
                var$8 = 0.7200000286102295;
                $var1 = 2.3399999141693115;
                $ptr = 4;
                continue main;
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var1 = 1.0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var2, $var1, var$4, var$5, var$6, $var3, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntitySkeleton_updateRidden = $this => {
    let $var1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_updateRidden($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_70768_au = $this.$field_110154_aX;
        $this.$field_110154_aX = 0.0;
        $this.$fallDistance = 0.0;
        $var1 = $this.$ridingEntity;
        if ($var1 instanceof nms_EntityCreature)
            $this.$renderYawOffset = $var1.$renderYawOffset;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $ptr);
},
nms_EntitySkeleton_onDeath = ($this, $par1DamageSource) => {
    let $var2, $var3, $var5, var$5, var$6, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onDeath($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1DamageSource.$getSourceOfDamage() instanceof nms_EntityArrow && $par1DamageSource.$getEntity() instanceof nms_EntityPlayer) {
            $var2 = $par1DamageSource.$getEntity();
            $var3 = $var2.$posX - $this.$posX;
            $var5 = $var2.$posZ - $this.$posZ;
            if ($var3 * $var3 + $var5 * $var5 >= 2500.0) {
                nms_AchievementList_$callClinit();
                $par1DamageSource = nms_AchievementList_snipeSkeleton;
                if ($par1DamageSource !== null && !$par1DamageSource.$isIndependent)
                    a: {
                        var$5 = $var2.$playerNetServerHandler;
                        $var2 = new nms_Packet200Statistic;
                        var$6 = $par1DamageSource.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var2.$statisticId = var$6;
                        $var2.$amount = 1;
                        if ($var2 instanceof nms_Packet3Chat) {
                            $par1DamageSource = $var2;
                            var$6 = var$5.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break a;
                            if (var$6 == 1 && !$par1DamageSource.$isServer)
                                break a;
                        }
                        try {
                            $par1DamageSource = var$5.$netManager;
                            $ptr = 2;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1DamageSource = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                            jl_System_errCache = $var2;
                        }
                        jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
                    }
            }
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1DamageSource, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1DamageSource = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($var2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace($par1DamageSource, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $var2, $var3, $var5, var$5, var$6, $ptr);
},
nms_EntitySkeleton_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_arrow.$itemID0;
},
nms_EntitySkeleton_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $var4, $var3, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[141];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $par1 = var$4.$value;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[$par1 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $par1) {
                    var$6 = var$3.$key;
                    if (var$4 !== var$6 && !(var$4 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $par1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        a: {
            if (var$3.$watchedObject.$value1 != 1) {
                var$3 = $this.$rand;
                $par1 = 3 + $par2 | 0;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                var$8 = Long_lo(Long_shru(var$7, 17));
                $var4 = $par1 - 1 | 0;
                if (!($par1 & $var4))
                    $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$8)), 31));
                else
                    while (true) {
                        $var3 = var$8 % $par1 | 0;
                        if (((var$8 - $var3 | 0) + $var4 | 0) >= 0)
                            break;
                        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$7;
                        var$8 = Long_lo(Long_shru(var$7, 17));
                    }
                $var4 = 0;
                var$11 = 0.0;
                $par1 = 138;
                if ($var4 >= $var3)
                    break a;
                nms_Item_$callClinit();
                var$8 = nms_Item_arrow.$itemID0;
                var$6 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$6.$itemID = var$8;
                var$6.$stackSize = 1;
                var$6.$itemDamage = 0;
                var$12 = new nms_EntityItem;
                var$3 = $this.$worldObj;
                var$13 = $this.$posX;
                var$14 = $this.$posY + var$11;
                var$15 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
            var$3 = $this.$rand;
            $par1 = 3 + $par2 | 0;
            var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 17));
            $var4 = $par1 - 1 | 0;
            if (!($par1 & $var4))
                $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$8)), 31));
            else
                while (true) {
                    $var3 = var$8 % $par1 | 0;
                    if (((var$8 - $var3 | 0) + $var4 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$7;
                    var$8 = Long_lo(Long_shru(var$7, 17));
                }
            $var3 = $var3 - 1 | 0;
            $var4 = 0;
            var$14 = 0.0;
            var$16 = 138;
            if ($var4 < $var3) {
                nms_Item_$callClinit();
                $par1 = nms_Item_coal.$itemID0;
                var$3 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$3.$itemID = $par1;
                var$3.$stackSize = 1;
                var$3.$itemDamage = 0;
                var$4 = new nms_EntityItem;
                var$6 = $this.$worldObj;
                var$11 = $this.$posX;
                var$13 = $this.$posY + var$14;
                var$15 = $this.$posZ;
                $ptr = 2;
                continue main;
            }
        }
        var$3 = $this.$rand;
        $par1 = 3 + $par2 | 0;
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $var3 = Long_lo(Long_shru(var$7, 17));
        $par2 = $par1 - 1 | 0;
        if (!($par1 & $par2))
            $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var3)), 31));
        else
            while (true) {
                $var4 = $var3 % $par1 | 0;
                if ((($var3 - $var4 | 0) + $par2 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $var3 = Long_lo(Long_shru(var$7, 17));
            }
        $par1 = 0;
        var$14 = 0.0;
        var$17 = 138;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_bone.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$6 = $this.$worldObj;
        var$11 = $this.$posX;
        var$13 = $this.$posY + var$14;
        var$15 = $this.$posZ;
        $ptr = 3;
        continue main;
    case 1:
        nms_EntityItem__init_(var$12, var$3, var$13, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$12.$dataWatcher;
        var$18 = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$18, jl_Integer_integerCache.data[$par1]);
        var$3 = var$3 === null ? null : var$3.$value0;
        if (!(var$6 !== var$3.$watchedObject ? 0 : 1)) {
            var$3.$watchedObject = var$6;
            var$3.$watched = 1;
            var$4.$objectChanged = 1;
        }
        var$6 = var$12.$dataWatcher;
        var$3 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[$par1]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$6.$objectChanged = 1;
        var$12.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntityItem__init_(var$4, var$6, var$11, var$13, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = var$4.$dataWatcher;
        var$6 = var$18.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = ju_HashMap_entryByKey(var$6, jl_Integer_integerCache.data[var$16]);
        var$12 = var$6 === null ? null : var$6.$value0;
        if (!(var$3 !== var$12.$watchedObject ? 0 : 1)) {
            var$12.$watchedObject = var$3;
            var$12.$watched = 1;
            var$18.$objectChanged = 1;
        }
        var$12 = var$4.$dataWatcher;
        var$3 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$16]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$12.$objectChanged = 1;
        var$4.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityItem__init_(var$4, var$6, var$11, var$13, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = var$4.$dataWatcher;
        var$6 = var$18.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = ju_HashMap_entryByKey(var$6, jl_Integer_integerCache.data[var$17]);
        var$12 = var$6 === null ? null : var$6.$value0;
        if (!(var$3 !== var$12.$watchedObject ? 0 : 1)) {
            var$12.$watchedObject = var$3;
            var$12.$watched = 1;
            var$18.$objectChanged = 1;
        }
        var$12 = var$4.$dataWatcher;
        var$3 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$17]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$12.$objectChanged = 1;
        var$4.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            var$8 = nms_Item_arrow.$itemID0;
            var$6 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$6.$itemID = var$8;
            var$6.$stackSize = 1;
            var$6.$itemDamage = 0;
            var$12 = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$13 = $this.$posX;
            var$14 = $this.$posY + var$11;
            var$15 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        $par1 = 3 + $par2 | 0;
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $var3 = Long_lo(Long_shru(var$7, 17));
        $par2 = $par1 - 1 | 0;
        if (!($par1 & $par2))
            $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var3)), 31));
        else
            while (true) {
                $var4 = $var3 % $par1 | 0;
                if ((($var3 - $var4 | 0) + $par2 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $var3 = Long_lo(Long_shru(var$7, 17));
            }
        $par1 = 0;
        var$14 = 0.0;
        var$17 = 138;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_bone.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$6 = $this.$worldObj;
        var$11 = $this.$posX;
        var$13 = $this.$posY + var$14;
        var$15 = $this.$posZ;
        $ptr = 3;
        continue main;
    case 5:
        nms_World_spawnEntityInWorld(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Item_$callClinit();
            $par1 = nms_Item_coal.$itemID0;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$4 = new nms_EntityItem;
            var$6 = $this.$worldObj;
            var$11 = $this.$posX;
            var$13 = $this.$posY + var$14;
            var$15 = $this.$posZ;
            $ptr = 2;
            continue main;
        }
        var$3 = $this.$rand;
        $par1 = 3 + $par2 | 0;
        var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$7;
        $var3 = Long_lo(Long_shru(var$7, 17));
        $par2 = $par1 - 1 | 0;
        if (!($par1 & $par2))
            $var4 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var3)), 31));
        else
            while (true) {
                $var4 = $var3 % $par1 | 0;
                if ((($var3 - $var4 | 0) + $par2 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$7;
                $var3 = Long_lo(Long_shru(var$7, 17));
            }
        $par1 = 0;
        var$14 = 0.0;
        var$17 = 138;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_bone.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$6 = $this.$worldObj;
        var$11 = $this.$posX;
        var$13 = $this.$posY + var$14;
        var$15 = $this.$posZ;
        $ptr = 3;
        continue main;
    case 6:
        nms_World_spawnEntityInWorld(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $par1 + 1 | 0;
        if ($par1 >= $var4)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_bone.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$6 = $this.$worldObj;
        var$11 = $this.$posX;
        var$13 = $this.$posY + var$14;
        var$15 = $this.$posZ;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, $var4, $var3, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntitySkeleton_dropRareDrop = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[141];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $par1 = var$3.$value;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$par1 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $par1) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $par1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2.$watchedObject.$value1 != 1)
            return;
        var$3 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$6 = nms_Item_skull.$itemID0;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$6;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 1;
        var$2 = new nms_EntityItem;
        var$5 = $this.$worldObj;
        var$7 = $this.$posX;
        var$8 = $this.$posY + 0.0;
        var$9 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_(var$2, var$5, var$7, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = var$2.$dataWatcher;
        var$5 = var$10.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[138];
        if (var$11 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$6 = jl_Integer_hashCode(var$11.$value);
            var$4 = var$5.$elementData.data;
            var$5 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == var$6 && ju_HashMap_areEqualKeys(var$11, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        var$5 = var$5 === null ? null : var$5.$value0;
        if (!(var$3 !== var$5.$watchedObject ? 0 : 1)) {
            var$5.$watchedObject = var$3;
            var$5.$watched = 1;
            var$10.$objectChanged = 1;
        }
        var$10 = var$2.$dataWatcher;
        var$3 = var$10.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[138];
        if (var$5 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$6 = jl_Integer_hashCode(var$5.$value);
            var$4 = var$3.$elementData.data;
            var$3 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$6 && ju_HashMap_areEqualKeys(var$5, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$10.$objectChanged = 1;
        var$2.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntitySkeleton_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityLivingData = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = nms_SharedMonsterAttributes_followRange;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$4 = jl_String_hashCode($var2.$field_111115_a);
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$4 && ju_HashMap_areEqualKeys($var2, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$6 = var$3 === null ? null : var$3.$value0;
        var$3 = new nms_AttributeModifier;
        var$7 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
        var$8 = nle_ProfileUUID_randomUUID();
        var$3.$isSaved = 1;
        var$3.$id1 = var$8;
        var$3.$name3 = $rt_s(2198);
        var$3.$amount0 = var$7;
        var$3.$operation = 1;
        if ($rt_s(2198) === $rt_s(3))
            var$9 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$9 = 0;
        else {
            var$8 = $rt_s(3);
            var$9 = $rt_s(2198).$nativeString !== var$8.$nativeString ? 0 : 1;
        }
        if (var$9) {
            $var2 = new jl_IllegalArgumentException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var2);
            $var2.$message = $rt_s(1279);
            $rt_throw($var2);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, var$3);
        if ($this.$worldObj.$provider instanceof nms_WorldProviderHell) {
            $var2 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$10;
            var$11 = Long_lo(Long_shru(var$10, 17));
            while (true) {
                var$12 = var$11 % 5 | 0;
                if (((var$11 - var$12 | 0) + 4 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
            if (var$12 > 0) {
                $var2 = $this.$tasks0;
                var$3 = $this.$aiAttackOnCollide;
                var$6 = $var2.$taskEntries;
                var$8 = new nms_EntityAITaskEntry;
                var$8.$tasks = $var2;
                var$8.$priority = 4;
                var$8.$action = var$3;
                ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
                var$5 = var$6.$array.data;
                var$13 = var$6.$size0;
                var$6.$size0 = var$13 + 1 | 0;
                var$5[var$13] = var$8;
                var$6.$modCount = var$6.$modCount + 1 | 0;
                $var2 = $this.$dataWatcher;
                var$14 = jl_Byte_byteCache.data[129];
                var$3 = $var2.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[141];
                if (var$6 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$4 = var$6.$value;
                    var$5 = var$3.$elementData.data;
                    var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$4) {
                            var$8 = var$3.$key;
                            if (var$6 !== var$8 && !(var$6 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$4 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$8 = var$3 === null ? null : var$3.$value0;
                var$3 = var$8.$watchedObject;
                if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$14.$value1 ? 1 : 0)) {
                    var$8.$watchedObject = var$14;
                    var$8.$watched = 1;
                    $var2.$objectChanged = 1;
                }
                $this.$isImmuneToFire = 1;
                var$15 = 0.7200000286102295;
                var$16 = 2.3399999141693115;
                $ptr = 5;
                continue main;
            }
        }
        $var2 = $this.$tasks0;
        var$3 = $this.$aiArrowAttack;
        var$6 = $var2.$taskEntries;
        var$8 = new nms_EntityAITaskEntry;
        var$8.$tasks = $var2;
        var$8.$priority = 4;
        var$8.$action = var$3;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$5 = var$6.$array.data;
        var$13 = var$6.$size0;
        var$6.$size0 = var$13 + 1 | 0;
        var$5[var$13] = var$8;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $ptr = 1;
    case 1:
        nms_EntityLiving_addRandomArmor($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$3 = nms_Item_bow;
        nms_ItemStack_$callClinit();
        $var2.$itemID = var$3.$itemID0;
        $var2.$stackSize = 1;
        $var2.$itemDamage = 0;
        $this.$equipment.data[0] = $var2;
        if ($this.$worldObj.$isRemote) {
            $ptr = 2;
            continue main;
        }
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityLiving_enchantEquipment($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$10;
        var$12 = 24;
        var$17 = Long_lo(Long_shru(var$10, var$12)) / 1.6777216E7;
        var$15 = 0.550000011920929;
        $var2 = $this.$worldObj;
        var$7 = $this.$posX;
        var$18 = $this.$posY;
        var$19 = $this.$posZ;
        var$11 = var$7 | 0;
        if (var$7 < var$11)
            var$11 = var$11 - 1 | 0;
        var$4 = var$18 | 0;
        if (var$18 < var$4)
            var$4 = var$4 - 1 | 0;
        var$13 = var$19 | 0;
        if (var$19 < var$13)
            var$13 = var$13 - 1 | 0;
        $ptr = 4;
        continue main;
    case 3:
        nms_EntitySkeleton_setCombatTask($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_World_getTensionFactorForBlock($var2, var$11, var$4, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $tmp;
        $this.$canPickUpLoot = var$17 >= var$15 * var$16 ? 0 : 1;
        if ($this.$equipment.data[4] === null) {
            $var2 = $this.$worldObj;
            if (Long_eq(Long_rem($var2.$worldInfo.$getWorldTotalTime(), Long_fromInt(600)), Long_ZERO)) {
                var$3 = $var2.$theCalendar;
                nles_SysUtil_$callClinit();
                var$20 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                if (!(var$3.$isTimeSet && var$3.$areFieldsSet && Long_eq(var$3.$time, var$20))) {
                    var$3.$time = var$20;
                    var$3.$isTimeSet = 1;
                    var$3.$areFieldsSet = 0;
                    ju_GregorianCalendar_computeFields(var$3);
                    var$3.$areFieldsSet = 1;
                }
            }
            $var2 = $var2.$theCalendar;
            if (!$var2.$isTimeSet) {
                ju_GregorianCalendar_computeTime($var2);
                $var2.$isTimeSet = 1;
            }
            if (!$var2.$areFieldsSet) {
                ju_GregorianCalendar_computeFields($var2);
                $var2.$areFieldsSet = 1;
            }
            if (($var2.$fields.data[2] + 1 | 0) == 10) {
                if (!$var2.$isTimeSet) {
                    ju_GregorianCalendar_computeTime($var2);
                    $var2.$isTimeSet = 1;
                }
                if (!$var2.$areFieldsSet) {
                    ju_GregorianCalendar_computeFields($var2);
                    $var2.$areFieldsSet = 1;
                }
                if ($var2.$fields.data[5] == 31) {
                    $var2 = $this.$rand;
                    var$20 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$20;
                    if (Long_lo(Long_shru(var$20, var$12)) / 1.6777216E7 < 0.25) {
                        var$3 = new nms_ItemStack;
                        var$10 = Long_and(Long_add(Long_mul(var$20, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var2.$seed = var$10;
                        if (Long_lo(Long_shru(var$10, var$12)) / 1.6777216E7 >= 0.10000000149011612) {
                            nms_Block_$callClinit();
                            $var2 = nms_Block_pumpkin;
                        } else {
                            nms_Block_$callClinit();
                            $var2 = nms_Block_pumpkinLantern;
                        }
                        nms_ItemStack_$callClinit();
                        var$3.$itemID = $var2.$blockID;
                        var$3.$stackSize = 1;
                        var$3.$itemDamage = 0;
                        $this.$equipment.data[4] = var$3;
                        $this.$equipmentDropChances.data[4] = 0.0;
                    }
                }
            }
        }
        return $par1EntityLivingData;
    case 5:
        nms_Entity_setSize($this, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = new nms_ItemStack;
        nms_Item_$callClinit();
        $var2 = nms_Item_swordStone;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $var2.$itemID0;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        $this.$equipment.data[0] = var$3;
        if (!$this.$worldObj.$isRemote) {
            $ptr = 6;
            continue main;
        }
        $var2 = nms_SharedMonsterAttributes_attackDamage;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            a: {
                var$8 = $var2.$field_111115_a;
                if (!var$8.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= var$8.$nativeString.length)
                            break a;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$4 = var$8.$hashCode1;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$4) {
                    var$8 = var$3.$key;
                    if ($var2 !== var$8 && !jl_Object_equals($var2, var$8) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        $var2 = var$3 === null ? null : var$3.$value0;
        if (4.0 !== $var2.$baseValue) {
            $var2.$baseValue = 4.0;
            $var2.$field_111133_g = 1;
            var$3 = $var2.$field_111138_a;
            if ($var2.$field_111136_b.$shouldWatch) {
                var$3 = var$3.$field_111162_d;
                ju_HashMap_putImpl(var$3.$backingMap, $var2, var$3);
            }
        }
        $var2 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$10;
        var$12 = 24;
        var$17 = Long_lo(Long_shru(var$10, var$12)) / 1.6777216E7;
        var$15 = 0.550000011920929;
        $var2 = $this.$worldObj;
        var$7 = $this.$posX;
        var$18 = $this.$posY;
        var$19 = $this.$posZ;
        var$11 = var$7 | 0;
        if (var$7 < var$11)
            var$11 = var$11 - 1 | 0;
        var$4 = var$18 | 0;
        if (var$18 < var$4)
            var$4 = var$4 - 1 | 0;
        var$13 = var$19 | 0;
        if (var$19 < var$13)
            var$13 = var$13 - 1 | 0;
        $ptr = 4;
        continue main;
    case 6:
        nms_EntitySkeleton_setCombatTask($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = nms_SharedMonsterAttributes_attackDamage;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$3 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            b: {
                var$8 = $var2.$field_111115_a;
                if (!var$8.$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= var$8.$nativeString.length)
                            break b;
                        var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$4 = var$8.$hashCode1;
            var$5 = var$3.$elementData.data;
            var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$4) {
                    var$8 = var$3.$key;
                    if ($var2 !== var$8 && !jl_Object_equals($var2, var$8) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        $var2 = var$3 === null ? null : var$3.$value0;
        if (4.0 !== $var2.$baseValue) {
            $var2.$baseValue = 4.0;
            $var2.$field_111133_g = 1;
            var$3 = $var2.$field_111138_a;
            if ($var2.$field_111136_b.$shouldWatch) {
                var$3 = var$3.$field_111162_d;
                ju_HashMap_putImpl(var$3.$backingMap, $var2, var$3);
            }
        }
        $var2 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$10;
        var$12 = 24;
        var$17 = Long_lo(Long_shru(var$10, var$12)) / 1.6777216E7;
        var$15 = 0.550000011920929;
        $var2 = $this.$worldObj;
        var$7 = $this.$posX;
        var$18 = $this.$posY;
        var$19 = $this.$posZ;
        var$11 = var$7 | 0;
        if (var$7 < var$11)
            var$11 = var$11 - 1 | 0;
        var$4 = var$18 | 0;
        if (var$18 < var$4)
            var$4 = var$4 - 1 | 0;
        var$13 = var$19 | 0;
        if (var$19 < var$13)
            var$13 = var$13 - 1 | 0;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingData, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntitySkeleton_setCombatTask = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$tasks0;
        var$2 = $this.$aiAttackOnCollide;
        var$3 = $var1.$taskEntries;
        var$4 = new ju_AbstractList$1;
        var$4.$this$00 = var$3;
        var$4.$modCount0 = var$3.$modCount;
        var$4.$size3 = var$3.$size();
        var$4.$removeIndex = (-1);
        var$5 = 0;
        while (true) {
            var$6 = var$4.$index;
            if (!(var$6 >= var$4.$size3 ? 0 : 1)) {
                $var1 = $this.$tasks0;
                var$2 = $this.$aiArrowAttack;
                var$3 = $var1.$taskEntries;
                var$7 = new ju_AbstractList$1;
                var$7.$this$00 = var$3;
                var$7.$modCount0 = var$3.$modCount;
                var$7.$size3 = var$3.$size();
                var$7.$removeIndex = (-1);
                var$8 = 0;
                while (true) {
                    var$6 = var$7.$index;
                    if (!(var$6 >= var$7.$size3 ? 0 : 1)) {
                        a: {
                            $var1 = $this.$equipment.data[0];
                            if ($var1 !== null) {
                                var$6 = $var1.$itemID;
                                nms_Item_$callClinit();
                                if (var$6 == nms_Item_bow.$itemID0) {
                                    $var1 = $this.$tasks0;
                                    var$2 = $this.$aiArrowAttack;
                                    var$4 = $var1.$taskEntries;
                                    var$3 = new nms_EntityAITaskEntry;
                                    var$3.$tasks = $var1;
                                    var$3.$priority = 4;
                                    var$3.$action = var$2;
                                    ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                                    var$9 = var$4.$array.data;
                                    var$10 = var$4.$size0;
                                    var$4.$size0 = var$10 + 1 | 0;
                                    var$9[var$10] = var$3;
                                    var$4.$modCount = var$4.$modCount + 1 | 0;
                                    break a;
                                }
                            }
                            $var1 = $this.$tasks0;
                            var$2 = $this.$aiAttackOnCollide;
                            var$4 = $var1.$taskEntries;
                            var$3 = new nms_EntityAITaskEntry;
                            var$3.$tasks = $var1;
                            var$3.$priority = 4;
                            var$3.$action = var$2;
                            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                            var$9 = var$4.$array.data;
                            var$10 = var$4.$size0;
                            var$4.$size0 = var$10 + 1 | 0;
                            var$9[var$10] = var$3;
                            var$4.$modCount = var$4.$modCount + 1 | 0;
                        }
                        return;
                    }
                    var$10 = var$7.$modCount0;
                    var$3 = var$7.$this$00;
                    if (var$10 < var$3.$modCount)
                        break;
                    var$7.$removeIndex = var$6;
                    var$7.$index = var$6 + 1 | 0;
                    var$3 = var$3.$get(var$6);
                    var$11 = var$3.$action;
                    if (var$11 === var$2) {
                        var$12 = $var1.$executingTaskEntries;
                        var$10 = var$12.$modCount;
                        var$13 = var$12.$size();
                        var$14 = var$8;
                        b: {
                            while (true) {
                                if (!(var$14 >= var$13 ? 0 : 1)) {
                                    var$6 = 0;
                                    break b;
                                }
                                if (var$10 < var$12.$modCount) {
                                    $var1 = new ju_ConcurrentModificationException;
                                    $var1.$suppressionEnabled = 1;
                                    $var1.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace($var1);
                                    $rt_throw($var1);
                                }
                                var$6 = var$14 + 1 | 0;
                                var$4 = var$12.$get(var$14);
                                if (var$4 === var$3 ? 1 : var$4 !== null ? var$4.$equals(var$3) : var$3 !== null ? 0 : 1)
                                    break;
                                var$14 = var$6;
                            }
                            var$6 = 1;
                        }
                        if (var$6) {
                            $ptr = 2;
                            continue main;
                        }
                        ju_AbstractList$1_remove(var$7);
                    }
                }
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            var$10 = var$4.$modCount0;
            var$3 = var$4.$this$00;
            if (var$10 < var$3.$modCount)
                break;
            var$4.$removeIndex = var$6;
            var$4.$index = var$6 + 1 | 0;
            var$3 = var$3.$get(var$6);
            var$11 = var$3.$action;
            if (var$11 === var$2) {
                var$12 = $var1.$executingTaskEntries;
                var$13 = var$12.$modCount;
                var$14 = var$12.$size();
                var$8 = var$5;
                c: {
                    while (true) {
                        if (!(var$8 >= var$14 ? 0 : 1)) {
                            var$6 = 0;
                            break c;
                        }
                        if (var$13 < var$12.$modCount) {
                            $var1 = new ju_ConcurrentModificationException;
                            $var1.$suppressionEnabled = 1;
                            $var1.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($var1);
                            $rt_throw($var1);
                        }
                        var$10 = var$8 + 1 | 0;
                        var$7 = var$12.$get(var$8);
                        if (var$7 === var$3 ? 1 : var$7 !== null ? var$7.$equals(var$3) : var$3 !== null ? 0 : 1)
                            break;
                        var$8 = var$10;
                    }
                    var$6 = 1;
                }
                if (var$6) {
                    $ptr = 1;
                    continue main;
                }
                ju_AbstractList$1_remove(var$4);
            }
        }
        $var1 = new ju_ConcurrentModificationException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 1:
        var$11.$resetTask();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $var1.$executingTaskEntries;
        var$13 = var$11.$size0;
        var$6 = 0;
        d: {
            while (true) {
                var$10 = $rt_compare(var$6, var$13);
                if (var$10 >= 0) {
                    var$6 = (-1);
                    break d;
                }
                if (var$6 < 0)
                    break;
                if (var$10 >= 0)
                    break;
                var$12 = var$11.$array.data[var$6];
                if (var$3 === var$12 ? 1 : var$3 === null ? (var$12 !== null ? 0 : 1) : var$3 !== var$12 ? 0 : 1)
                    break d;
                var$6 = var$6 + 1 | 0;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($var1);
            $rt_throw($var1);
        }
        if (var$6 >= 0)
            ju_ArrayList_remove(var$11, var$6);
        e: while (true) {
            ju_AbstractList$1_remove(var$4);
            while (true) {
                var$6 = var$4.$index;
                if (!(var$6 >= var$4.$size3 ? 0 : 1)) {
                    $var1 = $this.$tasks0;
                    var$2 = $this.$aiArrowAttack;
                    var$3 = $var1.$taskEntries;
                    var$7 = new ju_AbstractList$1;
                    var$7.$this$00 = var$3;
                    var$7.$modCount0 = var$3.$modCount;
                    var$7.$size3 = var$3.$size();
                    var$7.$removeIndex = (-1);
                    var$8 = 0;
                    while (true) {
                        var$6 = var$7.$index;
                        if (!(var$6 >= var$7.$size3 ? 0 : 1)) {
                            f: {
                                $var1 = $this.$equipment.data[0];
                                if ($var1 !== null) {
                                    var$6 = $var1.$itemID;
                                    nms_Item_$callClinit();
                                    if (var$6 == nms_Item_bow.$itemID0) {
                                        $var1 = $this.$tasks0;
                                        var$2 = $this.$aiArrowAttack;
                                        var$4 = $var1.$taskEntries;
                                        var$3 = new nms_EntityAITaskEntry;
                                        var$3.$tasks = $var1;
                                        var$3.$priority = 4;
                                        var$3.$action = var$2;
                                        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                                        var$9 = var$4.$array.data;
                                        var$10 = var$4.$size0;
                                        var$4.$size0 = var$10 + 1 | 0;
                                        var$9[var$10] = var$3;
                                        var$4.$modCount = var$4.$modCount + 1 | 0;
                                        break f;
                                    }
                                }
                                $var1 = $this.$tasks0;
                                var$2 = $this.$aiAttackOnCollide;
                                var$4 = $var1.$taskEntries;
                                var$3 = new nms_EntityAITaskEntry;
                                var$3.$tasks = $var1;
                                var$3.$priority = 4;
                                var$3.$action = var$2;
                                ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                                var$9 = var$4.$array.data;
                                var$10 = var$4.$size0;
                                var$4.$size0 = var$10 + 1 | 0;
                                var$9[var$10] = var$3;
                                var$4.$modCount = var$4.$modCount + 1 | 0;
                            }
                            return;
                        }
                        var$10 = var$7.$modCount0;
                        var$3 = var$7.$this$00;
                        if (var$10 < var$3.$modCount)
                            break;
                        var$7.$removeIndex = var$6;
                        var$7.$index = var$6 + 1 | 0;
                        var$3 = var$3.$get(var$6);
                        var$11 = var$3.$action;
                        if (var$11 === var$2) {
                            var$12 = $var1.$executingTaskEntries;
                            var$10 = var$12.$modCount;
                            var$13 = var$12.$size();
                            var$14 = var$8;
                            g: {
                                while (true) {
                                    if (!(var$14 >= var$13 ? 0 : 1)) {
                                        var$6 = 0;
                                        break g;
                                    }
                                    if (var$10 < var$12.$modCount) {
                                        $var1 = new ju_ConcurrentModificationException;
                                        $var1.$suppressionEnabled = 1;
                                        $var1.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace($var1);
                                        $rt_throw($var1);
                                    }
                                    var$6 = var$14 + 1 | 0;
                                    var$4 = var$12.$get(var$14);
                                    if (var$4 === var$3 ? 1 : var$4 !== null ? var$4.$equals(var$3) : var$3 !== null ? 0 : 1)
                                        break;
                                    var$14 = var$6;
                                }
                                var$6 = 1;
                            }
                            if (var$6) {
                                $ptr = 2;
                                continue main;
                            }
                            ju_AbstractList$1_remove(var$7);
                        }
                    }
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                var$10 = var$4.$modCount0;
                var$3 = var$4.$this$00;
                if (var$10 < var$3.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                var$4.$removeIndex = var$6;
                var$4.$index = var$6 + 1 | 0;
                var$3 = var$3.$get(var$6);
                var$11 = var$3.$action;
                if (var$11 !== var$2)
                    continue;
                else
                    break;
            }
            var$12 = $var1.$executingTaskEntries;
            var$13 = var$12.$modCount;
            var$14 = var$12.$size();
            var$8 = var$5;
            h: {
                while (true) {
                    if (!(var$8 >= var$14 ? 0 : 1)) {
                        var$6 = 0;
                        break h;
                    }
                    if (var$13 < var$12.$modCount)
                        break e;
                    var$10 = var$8 + 1 | 0;
                    var$7 = var$12.$get(var$8);
                    if (var$7 === var$3 ? 1 : var$7 !== null ? var$7.$equals(var$3) : var$3 !== null ? 0 : 1)
                        break;
                    var$8 = var$10;
                }
                var$6 = 1;
            }
            if (!var$6)
                continue;
            else {
                continue main;
            }
        }
        $var1 = new ju_ConcurrentModificationException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $rt_throw($var1);
    case 2:
        var$11.$resetTask();
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $var1.$executingTaskEntries;
        var$13 = var$4.$size0;
        var$6 = 0;
        d: {
            while (true) {
                var$10 = $rt_compare(var$6, var$13);
                if (var$10 >= 0) {
                    var$6 = (-1);
                    break d;
                }
                if (var$6 < 0)
                    break;
                if (var$10 >= 0)
                    break;
                var$11 = var$4.$array.data[var$6];
                if (var$3 === var$11 ? 1 : var$3 === null ? (var$11 !== null ? 0 : 1) : var$3 !== var$11 ? 0 : 1)
                    break d;
                var$6 = var$6 + 1 | 0;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($var1);
            $rt_throw($var1);
        }
        if (var$6 >= 0)
            ju_ArrayList_remove(var$4, var$6);
        e: while (true) {
            ju_AbstractList$1_remove(var$7);
            while (true) {
                var$6 = var$7.$index;
                if (!(var$6 >= var$7.$size3 ? 0 : 1)) {
                    i: {
                        $var1 = $this.$equipment.data[0];
                        if ($var1 !== null) {
                            var$6 = $var1.$itemID;
                            nms_Item_$callClinit();
                            if (var$6 == nms_Item_bow.$itemID0) {
                                $var1 = $this.$tasks0;
                                var$2 = $this.$aiArrowAttack;
                                var$4 = $var1.$taskEntries;
                                var$3 = new nms_EntityAITaskEntry;
                                var$3.$tasks = $var1;
                                var$3.$priority = 4;
                                var$3.$action = var$2;
                                ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                                var$9 = var$4.$array.data;
                                var$10 = var$4.$size0;
                                var$4.$size0 = var$10 + 1 | 0;
                                var$9[var$10] = var$3;
                                var$4.$modCount = var$4.$modCount + 1 | 0;
                                break i;
                            }
                        }
                        $var1 = $this.$tasks0;
                        var$2 = $this.$aiAttackOnCollide;
                        var$4 = $var1.$taskEntries;
                        var$3 = new nms_EntityAITaskEntry;
                        var$3.$tasks = $var1;
                        var$3.$priority = 4;
                        var$3.$action = var$2;
                        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
                        var$9 = var$4.$array.data;
                        var$10 = var$4.$size0;
                        var$4.$size0 = var$10 + 1 | 0;
                        var$9[var$10] = var$3;
                        var$4.$modCount = var$4.$modCount + 1 | 0;
                    }
                    return;
                }
                var$10 = var$7.$modCount0;
                var$3 = var$7.$this$00;
                if (var$10 < var$3.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                var$7.$removeIndex = var$6;
                var$7.$index = var$6 + 1 | 0;
                var$3 = var$3.$get(var$6);
                var$11 = var$3.$action;
                if (var$11 !== var$2)
                    continue;
                else
                    break;
            }
            var$12 = $var1.$executingTaskEntries;
            var$10 = var$12.$modCount;
            var$13 = var$12.$size();
            var$14 = var$8;
            h: {
                while (true) {
                    if (!(var$14 >= var$13 ? 0 : 1)) {
                        var$6 = 0;
                        break h;
                    }
                    if (var$10 < var$12.$modCount)
                        break e;
                    var$6 = var$14 + 1 | 0;
                    var$4 = var$12.$get(var$14);
                    if (var$4 === var$3 ? 1 : var$4 !== null ? var$4.$equals(var$3) : var$3 !== null ? 0 : 1)
                        break;
                    var$14 = var$6;
                }
                var$6 = 1;
            }
            if (!var$6)
                continue;
            else {
                continue main;
            }
        }
        $var1 = new ju_ConcurrentModificationException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntitySkeleton_attackEntityWithRangedAttack = ($this, $par1EntityLivingBase, $par2) => {
    let $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = new nms_EntityArrow;
        var$4 = $this.$worldObj;
        nms_EntityArrow__init_($var3, var$4, $this, $par1EntityLivingBase, 1.600000023841858, 14 - (var$4.$difficultySetting * 4 | 0) | 0);
        nms_Enchantment_$callClinit();
        $var4 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_power.$effectId, $this.$equipment.data[0]);
        $var5 = nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_punch.$effectId, $this.$equipment.data[0]);
        var$7 = $par2 * 2.0 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.25 + $this.$worldObj.$difficultySetting * 0.10999999940395355;
        $var3.$damage = var$7;
        if ($var4 > 0)
            $var3.$damage = var$7 + $var4 * 0.5 + 0.5;
        if ($var5 > 0)
            $var3.$knockbackStrength = $var5;
        a: {
            if (nms_EnchantmentHelper_getEnchantmentLevel(nms_Enchantment_flame.$effectId, $this.$equipment.data[0]) <= 0) {
                var$4 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $par1EntityLivingBase = jl_Integer_integerCache.data[141];
                if ($par1EntityLivingBase === null) {
                    var$8 = var$4.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                } else {
                    $var4 = $par1EntityLivingBase.$value;
                    var$9 = var$4.$elementData.data;
                    var$8 = var$9[$var4 & (var$9.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == $var4) {
                            var$4 = var$8.$key;
                            if ($par1EntityLivingBase !== var$4 && !($par1EntityLivingBase === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == $var4 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                }
                if ((var$8 === null ? null : var$8.$value0).$watchedObject.$value1 != 1)
                    break a;
            }
            if ($var3.$fire < 2000)
                $var3.$fire = 2000;
        }
        $par1EntityLivingBase = $rt_s(1167);
        $par2 = 1.0;
        var$4 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$4.$seed = var$10;
        var$11 = 1.0 / (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        var$4 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$4, $this, $par1EntityLivingBase, $par2, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityLivingBase = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1EntityLivingBase, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2, $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntitySkeleton_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2362).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2362).$nativeString.length)
                        break a;
                    $rt_s(2362).$hashCode1 = (31 * $rt_s(2362).$hashCode1 | 0) + $rt_s(2362).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2362).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                b: {
                    var$5 = var$2.$key;
                    if ($rt_s(2362) !== var$5) {
                        if ($rt_s(2362) === var$5)
                            $var2 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var2 = 0;
                        else {
                            var$5 = var$5;
                            $var2 = $rt_s(2362).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var2) {
                            $var2 = 0;
                            break b;
                        }
                    }
                    $var2 = 1;
                }
                if ($var2)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            $ptr = 2;
            continue main;
        }
        c: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2362).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2362).$nativeString.length)
                        break c;
                    $rt_s(2362).$hashCode1 = (31 * $rt_s(2362).$hashCode1 | 0) + $rt_s(2362).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2362).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                d: {
                    var$5 = var$2.$key;
                    if ($rt_s(2362) !== var$5) {
                        if ($rt_s(2362) === var$5)
                            $var2 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var2 = 0;
                        else {
                            var$5 = var$5;
                            $var2 = $rt_s(2362).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var2) {
                            $var2 = 0;
                            break d;
                        }
                    }
                    $var2 = 1;
                }
                if ($var2)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            $var2 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2362) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2362).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2362).$nativeString.length)
                                break e;
                            $rt_s(2362).$hashCode1 = (31 * $rt_s(2362).$hashCode1 | 0) + $rt_s(2362).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2362).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$3) {
                        f: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2362) !== var$2) {
                                if ($rt_s(2362) === var$2)
                                    $var2 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    $var2 = 0;
                                else {
                                    var$2 = var$2;
                                    $var2 = $rt_s(2362).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!$var2) {
                                    $var2 = 0;
                                    break f;
                                }
                            }
                            $var2 = 1;
                        }
                        if ($var2)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var2 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
        }
        $par1NBTTagCompound = $this.$dataWatcher;
        var$7 = $var2 << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[var$7 + 128 | 0];
        var$9 = $par1NBTTagCompound.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[141];
        if (var$5 === null) {
            var$9 = var$9.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$7 = var$5.$value;
            var$4 = var$9.$elementData.data;
            var$9 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$7) {
                    var$2 = var$9.$key;
                    if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$9 = var$9.$next3;
            }
        }
        var$2 = var$9 === null ? null : var$9.$value0;
        var$9 = var$2.$watchedObject;
        if (!(var$9 instanceof jl_Byte && var$9.$value1 == var$8.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$8;
            var$2.$watched = 1;
            $par1NBTTagCompound.$objectChanged = 1;
        }
        var$3 = $rt_compare($var2, 1);
        $this.$isImmuneToFire = var$3 ? 0 : 1;
        if (var$3) {
            var$10 = 0.6000000238418579;
            var$11 = 1.7999999523162842;
            $ptr = 3;
            continue main;
        }
        var$10 = 0.7200000286102295;
        var$11 = 2.3399999141693115;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntitySkeleton_setCombatTask($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        nms_Entity_setSize($this, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    case 4:
        nms_Entity_setSize($this, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntitySkeleton_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[141];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1 << 24 >> 24;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2362);
    $par1NBTTagCompound.$data0 = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2362), $par1NBTTagCompound);
},
nms_EntitySkeleton_setCurrentItemOrArmor = ($this, $par1, $par2ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2ItemStack = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$equipment.data[$par1] = $par2ItemStack;
        if (!$this.$worldObj.$isRemote && !$par1) {
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_EntitySkeleton_setCombatTask($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ItemStack, $ptr);
},
nms_EntitySkeleton_getYOffset = $this => {
    return $this.$yOffset - 0.5;
};
function nms_EntityCreeper() {
    let a = this; nms_EntityMob.call(a);
    a.$lastActiveTime = 0;
    a.$timeSinceIgnited = 0;
    a.$fuseTime = 0;
    a.$explosionRadius = 0;
}
let nms_EntityCreeper__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_EntityCreature_$callClinit();
    nms_EntityLiving__init_($this, $par1World);
    $par1World = new nms_ChunkCoordinates;
    $par1World.$posX0 = 0;
    $par1World.$posY0 = 0;
    $par1World.$posZ0 = 0;
    $this.$homePosition = $par1World;
    $this.$maximumHomeDistance = (-1.0);
    $par1World = new nms_EntityAIMoveTowardsRestriction;
    $par1World.$theEntity0 = $this;
    $par1World.$movementSpeed = 1.0;
    $par1World.$mutexBits = 1;
    $this.$field_110178_bs = $par1World;
    $this.$experienceValue = 5;
    $this.$fuseTime = 30;
    $this.$explosionRadius = 3;
    var$2 = $this.$tasks0;
    $par1World = new nms_EntityAISwimming;
    $par1World.$theEntity3 = $this;
    $par1World.$mutexBits = 4;
    $this.$navigator.$canSwim = 1;
    var$3 = var$2.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = var$2;
    var$4.$priority = 1;
    var$4.$action = $par1World;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAICreeperSwell;
    var$2.$swellingCreeper = $this;
    var$2.$mutexBits = 1;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 2;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    var$2 = $this.$tasks0;
    var$4 = new nms_EntityAIAvoidEntity;
    var$3 = new nms_EntityAIAvoidEntitySelector;
    var$3.$entityAvoiderAI = var$4;
    var$4.$field_98218_a = var$3;
    var$4.$theEntity4 = $this;
    var$4.$targetEntityClass = $rt_cls(nms_EntityOcelot);
    var$4.$distanceFromEntity = 6.0;
    var$4.$farSpeed = 1.0;
    var$4.$nearSpeed = 1.2;
    var$4.$entityPathNavigate0 = $this.$navigator;
    var$4.$mutexBits = 1;
    var$3 = var$2.$taskEntries;
    $par1World = new nms_EntityAITaskEntry;
    $par1World.$tasks = var$2;
    $par1World.$priority = 3;
    $par1World.$action = var$4;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = $par1World;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAIAttackOnCollide;
    var$2.$attacker = $this;
    var$2.$worldObj17 = $this.$worldObj;
    var$2.$field_75440_e = 1.0;
    var$2.$longMemory = 0;
    var$2.$mutexBits = 3;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 4;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAIWander;
    var$2.$entity = $this;
    var$2.$speed = 0.8;
    var$2.$mutexBits = 1;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 5;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAIWatchClosest;
    var$2.$theWatcher = $this;
    var$2.$watchedClass = $rt_cls(nms_EntityPlayer);
    var$2.$maxDistanceForPlayer = 8.0;
    var$2.$field_75331_e = 0.019999999552965164;
    var$2.$mutexBits = 2;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 6;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAILookIdle;
    var$2.$idleEntity = $this;
    var$2.$mutexBits = 3;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 6;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$2 = new nms_EntityAINearestAttackableTarget;
    var$3 = null;
    var$2.$taskOwner = $this;
    var$2.$shouldCheckSight = 1;
    var$2.$nearbyOnly = 0;
    var$2.$targetClass = $rt_cls(nms_EntityPlayer);
    var$2.$targetChance = 0;
    var$4 = new nms_EntityAINearestAttackableTargetSorter;
    var$4.$theEntity5 = $this;
    var$2.$theNearestAttackableTargetSorter = var$4;
    var$2.$mutexBits = 1;
    var$4 = new nms_EntityAINearestAttackableTargetSelector;
    var$4.$field_111102_d = var$2;
    var$4.$field_111103_c = var$3;
    var$2.$targetEntitySelector = var$4;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 1;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$2 = new nms_EntityAIHurtByTarget;
    var$2.$taskOwner = $this;
    var$2.$shouldCheckSight = 0;
    var$2.$nearbyOnly = 0;
    var$2.$entityCallsForHelp = 0;
    var$2.$mutexBits = 1;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 2;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
},
nms_EntityCreeper__init_0 = var_0 => {
    let var_1 = new nms_EntityCreeper();
    nms_EntityCreeper__init_(var_1, var_0);
    return var_1;
},
nms_EntityCreeper_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.25 !== var$1.$baseValue) {
        var$1.$baseValue = 0.25;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityCreeper_isAIEnabled = $this => {
    return 1;
},
nms_EntityCreeper_getMaxSafePointTries = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attackTarget === null)
        var$1 = 3;
    else {
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[134];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$1 = 3 + ((var$2 === null ? null : var$2.$value0).$watchedObject.$value3 - 1.0 | 0) | 0;
    }
    return var$1;
},
nms_EntityCreeper_fall = ($this, $par1) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_fall($this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$timeSinceIgnited + $par1 * 1.5 | 0;
        $this.$timeSinceIgnited = var$2;
        var$3 = $this.$fuseTime - 5 | 0;
        if (var$2 > var$3)
            $this.$timeSinceIgnited = var$3;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, $ptr);
},
nms_EntityCreeper_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[127]);
    nms_DataWatcher_addObject($this.$dataWatcher, 17, jl_Byte_byteCache.data[128]);
},
nms_EntityCreeper_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[145];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    if (var$2.$watchedObject.$value1 == 1) {
        var$6 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(2363);
        var$3.$data0 = 1;
        ju_HashMap_putImpl(var$6, $rt_s(2363), var$3);
    }
    var$7 = $this.$fuseTime << 16 >> 16;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagShort;
    var$3.$name = $rt_s(2364);
    var$3.$data2 = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(2364), var$3);
    var$7 = $this.$explosionRadius << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2365);
    $par1NBTTagCompound.$data0 = var$7;
    ju_HashMap_putImpl(var$3, $rt_s(2365), $par1NBTTagCompound);
},
nms_EntityCreeper_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    a: {
        nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $this.$dataWatcher;
        var$3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2363).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2363).$nativeString.length)
                    break a;
                $rt_s(2363).$hashCode1 = (31 * $rt_s(2363).$hashCode1 | 0) + $rt_s(2363).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$5 = $rt_s(2363).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$5) {
            b: {
                var$7 = var$3.$key;
                if ($rt_s(2363) !== var$7) {
                    if ($rt_s(2363) !== var$7) {
                        if (var$7 instanceof jl_String) {
                            var$7 = var$7;
                            var$8 = $rt_s(2363).$nativeString !== var$7.$nativeString ? 0 : 1;
                        } else
                            var$8 = 0;
                    } else
                        var$8 = 1;
                    if (!var$8) {
                        var$8 = 0;
                        break b;
                    }
                }
                var$8 = 1;
            }
            if (var$8)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (var$3 === null ? 0 : 1) {
        var$3 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2363) !== null) {
            c: {
                if (!$rt_s(2363).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2363).$nativeString.length)
                            break c;
                        $rt_s(2363).$hashCode1 = (31 * $rt_s(2363).$hashCode1 | 0) + $rt_s(2363).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2363).$hashCode1;
            var$6 = var$3.$elementData.data;
            var$9 = var$6[var$4 & (var$6.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$4) {
                    d: {
                        var$3 = var$9.$key;
                        if ($rt_s(2363) !== var$3) {
                            if ($rt_s(2363) === var$3)
                                var$8 = 1;
                            else if (!(var$3 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$3 = var$3;
                                var$8 = $rt_s(2363).$nativeString !== var$3.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break d;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$9 = var$9.$next3;
            }
        } else {
            var$9 = var$3.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        }
        var$8 = (var$9 === null ? null : var$9.$value0).$data0;
    } else
        var$8 = 0;
    var$8 = (!(!var$8 ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$9 = jl_Byte_byteCache.data[var$8 + 128 | 0];
    var$10 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[145];
    if (var$7 === null) {
        var$10 = var$10.$elementData.data[0];
        while (var$10 !== null && var$10.$key !== null) {
            var$10 = var$10.$next3;
        }
    } else {
        var$5 = var$7.$value;
        var$6 = var$10.$elementData.data;
        var$10 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$10 !== null) {
            if (var$10.$origKeyHash == var$5) {
                var$3 = var$10.$key;
                if (var$7 !== var$3 && !(var$7 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$10 = var$10.$next3;
        }
    }
    var$3 = var$10 === null ? null : var$10.$value0;
    var$10 = var$3.$watchedObject;
    if (!(var$10 instanceof jl_Byte && var$10.$value1 == var$9.$value1 ? 1 : 0)) {
        var$3.$watchedObject = var$9;
        var$3.$watched = 1;
        var$2.$objectChanged = 1;
    }
    e: {
        var$3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2364).$hashCode1) {
            var$8 = 0;
            while (true) {
                if (var$8 >= $rt_s(2364).$nativeString.length)
                    break e;
                $rt_s(2364).$hashCode1 = (31 * $rt_s(2364).$hashCode1 | 0) + $rt_s(2364).$nativeString.charCodeAt(var$8) | 0;
                var$8 = var$8 + 1 | 0;
            }
        }
    }
    var$5 = $rt_s(2364).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$5) {
            f: {
                var$7 = var$3.$key;
                if ($rt_s(2364) !== var$7) {
                    if ($rt_s(2364) === var$7)
                        var$8 = 1;
                    else if (var$7 instanceof jl_String) {
                        var$7 = var$7;
                        var$8 = $rt_s(2364).$nativeString !== var$7.$nativeString ? 0 : 1;
                    } else
                        var$8 = 0;
                    if (!var$8) {
                        var$8 = 0;
                        break f;
                    }
                }
                var$8 = 1;
            }
            if (var$8)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (var$3 === null ? 0 : 1) {
        g: {
            var$3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2364).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2364).$nativeString.length)
                        break g;
                    $rt_s(2364).$hashCode1 = (31 * $rt_s(2364).$hashCode1 | 0) + $rt_s(2364).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(2364).$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                h: {
                    var$7 = var$3.$key;
                    if ($rt_s(2364) !== var$7) {
                        if ($rt_s(2364) === var$7)
                            var$8 = 1;
                        else if (!(var$7 instanceof jl_String))
                            var$8 = 0;
                        else {
                            var$7 = var$7;
                            var$8 = $rt_s(2364).$nativeString !== var$7.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break h;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1))
            var$8 = 0;
        else {
            var$3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2364) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2364).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2364).$nativeString.length)
                                break i;
                            $rt_s(2364).$hashCode1 = (31 * $rt_s(2364).$hashCode1 | 0) + $rt_s(2364).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(2364).$hashCode1;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        j: {
                            var$7 = var$3.$key;
                            if ($rt_s(2364) !== var$7) {
                                if ($rt_s(2364) === var$7)
                                    var$8 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$7 = var$7;
                                    var$8 = $rt_s(2364).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break j;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$8 = (var$3 === null ? null : var$3.$value0).$data2;
        }
        $this.$fuseTime = var$8;
    }
    k: {
        var$3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2365).$hashCode1) {
            var$8 = 0;
            while (true) {
                if (var$8 >= $rt_s(2365).$nativeString.length)
                    break k;
                $rt_s(2365).$hashCode1 = (31 * $rt_s(2365).$hashCode1 | 0) + $rt_s(2365).$nativeString.charCodeAt(var$8) | 0;
                var$8 = var$8 + 1 | 0;
            }
        }
    }
    var$5 = $rt_s(2365).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$5) {
            l: {
                var$7 = var$3.$key;
                if ($rt_s(2365) !== var$7) {
                    if ($rt_s(2365) === var$7)
                        var$8 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$7 = var$7;
                        var$8 = $rt_s(2365).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        var$8 = 0;
                        break l;
                    }
                }
                var$8 = 1;
            }
            if (var$8)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (var$3 === null ? 0 : 1) {
        m: {
            var$3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2365).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2365).$nativeString.length)
                        break m;
                    $rt_s(2365).$hashCode1 = (31 * $rt_s(2365).$hashCode1 | 0) + $rt_s(2365).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(2365).$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                n: {
                    var$7 = var$3.$key;
                    if ($rt_s(2365) !== var$7) {
                        if ($rt_s(2365) === var$7)
                            var$8 = 1;
                        else if (!(var$7 instanceof jl_String))
                            var$8 = 0;
                        else {
                            var$7 = var$7;
                            var$8 = $rt_s(2365).$nativeString !== var$7.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break n;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1))
            var$8 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2365) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                o: {
                    if (!$rt_s(2365).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2365).$nativeString.length)
                                break o;
                            $rt_s(2365).$hashCode1 = (31 * $rt_s(2365).$hashCode1 | 0) + $rt_s(2365).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(2365).$hashCode1;
                var$6 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$6[var$5 & (var$6.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$5) {
                        p: {
                            var$3 = $par1NBTTagCompound.$key;
                            if ($rt_s(2365) !== var$3) {
                                if ($rt_s(2365) === var$3)
                                    var$8 = 1;
                                else if (!(var$3 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$3 = var$3;
                                    var$8 = $rt_s(2365).$nativeString !== var$3.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break p;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$8 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
        }
        $this.$explosionRadius = var$8;
    }
},
nms_EntityCreeper_onUpdate = $this => {
    let var$1, var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if (!$this.$isDead) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[134];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    $var2 = var$2.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[$var2 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == $var2) {
                            var$5 = var$1.$key;
                            if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                    var$6 = 1;
                    break a;
                }
            }
            var$6 = 0;
        }
        if (var$6) {
            $this.$lastActiveTime = $this.$timeSinceIgnited;
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                $var2 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[$var2 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == $var2) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var2 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$7 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
            if (var$7 > 0 && !$this.$timeSinceIgnited) {
                var$1 = $rt_s(1413);
                var$8 = 1.0;
                var$9 = 0.5;
                var$5 = $this.$worldObj;
                $ptr = 3;
                continue main;
            }
            var$6 = $this.$timeSinceIgnited + var$7 | 0;
            $this.$timeSinceIgnited = var$6;
            if (var$6 < 0)
                $this.$timeSinceIgnited = 0;
            var$6 = $this.$timeSinceIgnited;
            var$7 = $this.$fuseTime;
            if (var$6 >= var$7) {
                $this.$timeSinceIgnited = var$7;
                var$1 = $this.$worldObj;
                if (!var$1.$isRemote) {
                    b: {
                        var$5 = (var$1.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                        var$2 = $rt_s(1417);
                        var$1 = $rt_s(1417);
                        if (var$2 !== var$1) {
                            var$7 = var$2.$nativeString.length;
                            var$10 = var$1.$nativeString.length;
                            if (var$7 < var$10)
                                var$10 = var$7;
                            var$6 = 0;
                            c: {
                                while (true) {
                                    if (var$6 >= var$10) {
                                        var$2.$nativeString.length;
                                        var$1.$nativeString.length;
                                        break b;
                                    }
                                    if (var$6 < 0)
                                        break c;
                                    if (var$6 >= var$2.$nativeString.length)
                                        break c;
                                    $var2 = var$2.$nativeString.charCodeAt(var$6);
                                    if (var$6 < 0)
                                        break;
                                    if (var$6 >= var$1.$nativeString.length)
                                        break;
                                    if ($var2 - var$1.$nativeString.charCodeAt(var$6) | 0)
                                        break b;
                                    var$6 = var$6 + 1 | 0;
                                }
                                var$1 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_(var$1);
                                $rt_throw(var$1);
                            }
                            var$1 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_(var$1);
                            $rt_throw(var$1);
                        }
                    }
                    var$1 = $rt_s(1417);
                    d: {
                        e: {
                            f: while (true) {
                                if (var$5 === null) {
                                    var$5 = null;
                                    break d;
                                }
                                g: {
                                    var$2 = var$5.$key0;
                                    if (var$1 === var$2)
                                        var$6 = 0;
                                    else {
                                        var$7 = var$1.$nativeString.length;
                                        $var2 = var$2.$nativeString.length;
                                        if (var$7 < $var2)
                                            $var2 = var$7;
                                        var$7 = 0;
                                        while (true) {
                                            if (var$7 >= $var2) {
                                                var$6 = var$1.$nativeString.length - var$2.$nativeString.length | 0;
                                                break g;
                                            }
                                            if (var$7 < 0)
                                                break e;
                                            if (var$7 >= var$1.$nativeString.length)
                                                break e;
                                            var$10 = var$1.$nativeString.charCodeAt(var$7);
                                            if (var$7 < 0)
                                                break f;
                                            if (var$7 >= var$2.$nativeString.length)
                                                break f;
                                            var$6 = var$10 - var$2.$nativeString.charCodeAt(var$7) | 0;
                                            if (var$6)
                                                break;
                                            var$7 = var$7 + 1 | 0;
                                        }
                                    }
                                }
                                if (!var$6)
                                    break d;
                                var$5 = var$6 >= 0 ? var$5.$right : var$5.$left;
                            }
                            var$1 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_(var$1);
                            $rt_throw(var$1);
                        }
                        var$1 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$1);
                        $rt_throw(var$1);
                    }
                    var$1 = var$5 === null ? null : var$5.$value2;
                    $var2 = var$1 === null ? 0 : var$1.$valueBoolean;
                    var$1 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[145];
                    if (var$2 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$10 = var$2.$value;
                        var$4 = var$1.$elementData.data;
                        var$1 = var$4[var$10 & (var$4.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$10) {
                                var$5 = var$1.$key;
                                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$10 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    var$1 = var$1 === null ? null : var$1.$value0;
                    if (!(var$1.$watchedObject.$value1 != 1 ? 0 : 1)) {
                        var$1 = $this.$worldObj;
                        var$11 = $this.$posX;
                        var$12 = $this.$posY;
                        var$13 = $this.$posZ;
                        var$9 = $this.$explosionRadius;
                        var$6 = 0;
                        $ptr = 4;
                        continue main;
                    }
                    var$1 = $this.$worldObj;
                    var$11 = $this.$posX;
                    var$12 = $this.$posY;
                    var$13 = $this.$posZ;
                    var$9 = $this.$explosionRadius * 2 | 0;
                    var$6 = 0;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote && !var$1.$difficultySetting)
                $this.$isDead = 1;
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && !var$1.$difficultySetting)
            $this.$isDead = 1;
        return;
    case 3:
        nms_World_playSoundAtEntity(var$5, $this, var$1, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $this.$timeSinceIgnited + var$7 | 0;
        $this.$timeSinceIgnited = var$6;
        if (var$6 < 0)
            $this.$timeSinceIgnited = 0;
        var$6 = $this.$timeSinceIgnited;
        var$7 = $this.$fuseTime;
        if (var$6 >= var$7) {
            $this.$timeSinceIgnited = var$7;
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote) {
                h: {
                    var$5 = (var$1.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    var$2 = $rt_s(1417);
                    var$1 = $rt_s(1417);
                    if (var$2 !== var$1) {
                        var$7 = var$2.$nativeString.length;
                        var$10 = var$1.$nativeString.length;
                        if (var$7 < var$10)
                            var$10 = var$7;
                        var$6 = 0;
                        i: {
                            while (true) {
                                if (var$6 >= var$10) {
                                    var$2.$nativeString.length;
                                    var$1.$nativeString.length;
                                    break h;
                                }
                                if (var$6 < 0)
                                    break i;
                                if (var$6 >= var$2.$nativeString.length)
                                    break i;
                                $var2 = var$2.$nativeString.charCodeAt(var$6);
                                if (var$6 < 0)
                                    break;
                                if (var$6 >= var$1.$nativeString.length)
                                    break;
                                if ($var2 - var$1.$nativeString.charCodeAt(var$6) | 0)
                                    break h;
                                var$6 = var$6 + 1 | 0;
                            }
                            var$1 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_(var$1);
                            $rt_throw(var$1);
                        }
                        var$1 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$1);
                        $rt_throw(var$1);
                    }
                }
                var$1 = $rt_s(1417);
                j: {
                    k: {
                        l: while (true) {
                            if (var$5 === null) {
                                var$5 = null;
                                break j;
                            }
                            m: {
                                var$2 = var$5.$key0;
                                if (var$1 === var$2)
                                    var$6 = 0;
                                else {
                                    var$7 = var$1.$nativeString.length;
                                    $var2 = var$2.$nativeString.length;
                                    if (var$7 < $var2)
                                        $var2 = var$7;
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= $var2) {
                                            var$6 = var$1.$nativeString.length - var$2.$nativeString.length | 0;
                                            break m;
                                        }
                                        if (var$7 < 0)
                                            break k;
                                        if (var$7 >= var$1.$nativeString.length)
                                            break k;
                                        var$10 = var$1.$nativeString.charCodeAt(var$7);
                                        if (var$7 < 0)
                                            break l;
                                        if (var$7 >= var$2.$nativeString.length)
                                            break l;
                                        var$6 = var$10 - var$2.$nativeString.charCodeAt(var$7) | 0;
                                        if (var$6)
                                            break;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            if (!var$6)
                                break j;
                            var$5 = var$6 >= 0 ? var$5.$right : var$5.$left;
                        }
                        var$1 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$1);
                        $rt_throw(var$1);
                    }
                    var$1 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$1);
                    $rt_throw(var$1);
                }
                var$1 = var$5 === null ? null : var$5.$value2;
                $var2 = var$1 === null ? 0 : var$1.$valueBoolean;
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[145];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$10 = var$2.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$10) {
                            var$5 = var$1.$key;
                            if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$10 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$1 = var$1 === null ? null : var$1.$value0;
                if (!(var$1.$watchedObject.$value1 != 1 ? 0 : 1)) {
                    var$1 = $this.$worldObj;
                    var$11 = $this.$posX;
                    var$12 = $this.$posY;
                    var$13 = $this.$posZ;
                    var$9 = $this.$explosionRadius;
                    var$6 = 0;
                    $ptr = 4;
                    continue main;
                }
                var$1 = $this.$worldObj;
                var$11 = $this.$posX;
                var$12 = $this.$posY;
                var$13 = $this.$posZ;
                var$9 = $this.$explosionRadius * 2 | 0;
                var$6 = 0;
                $ptr = 5;
                continue main;
            }
        }
        $ptr = 1;
        continue main;
    case 4:
        nms_WorldServer_newExplosion(var$1, $this, var$11, var$12, var$13, var$9, var$6, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        $ptr = 1;
        continue main;
    case 5:
        nms_WorldServer_newExplosion(var$1, $this, var$11, var$12, var$13, var$9, var$6, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityCreeper_getHurtSound = $this => {
    return $rt_s(2366);
},
nms_EntityCreeper_getDeathSound = $this => {
    return $rt_s(2367);
},
nms_EntityCreeper_onDeath = ($this, $par1DamageSource) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onDeath($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        if (!($par1DamageSource.$getEntity() instanceof nms_EntitySkeleton))
            return;
        nms_Item_$callClinit();
        $var2 = nms_Item_record13.$itemID0;
        var$3 = $this.$rand;
        var$4 = (nms_Item_recordWait.$itemID0 - $var2 | 0) + 1 | 0;
        var$5 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$5;
        var$6 = Long_lo(Long_shru(var$5, 17));
        var$7 = var$4 - 1 | 0;
        if (!(var$4 & var$7))
            var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$4), Long_fromInt(var$6)), 31));
        else
            while (true) {
                var$8 = var$6 % var$4 | 0;
                if (((var$6 - var$8 | 0) + var$7 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$5;
                var$6 = Long_lo(Long_shru(var$5, 17));
            }
        $var2 = $var2 + var$8 | 0;
        $par1DamageSource = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $par1DamageSource.$itemID = $var2;
        $par1DamageSource.$stackSize = 1;
        $par1DamageSource.$itemDamage = 0;
        var$3 = new nms_EntityItem;
        var$9 = $this.$worldObj;
        var$10 = $this.$posX;
        var$11 = $this.$posY + 0.0;
        var$12 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityItem__init_(var$3, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$3.$dataWatcher;
        var$9 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = ju_HashMap_entryByKey(var$9, jl_Integer_integerCache.data[138]);
        var$14 = var$9 === null ? null : var$9.$value0;
        if (!($par1DamageSource !== var$14.$watchedObject ? 0 : 1)) {
            var$14.$watchedObject = $par1DamageSource;
            var$14.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$14 = var$3.$dataWatcher;
        $par1DamageSource = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $par1DamageSource = ju_HashMap_entryByKey($par1DamageSource, jl_Integer_integerCache.data[138]);
        ($par1DamageSource === null ? null : $par1DamageSource.$value0).$watched = 1;
        var$14.$objectChanged = 1;
        var$3.$delayBeforeCanPickup = 10;
        $par1DamageSource = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1DamageSource, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityCreeper_attackEntityAsMob = ($this, $par1Entity) => {
    return 1;
},
nms_EntityCreeper_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_gunpowder.$itemID0;
},
nms_EntityCreeper_onStruckByLightning = ($this, $par1EntityLightningBolt) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityLightningBolt = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$isImmuneToFire) {
            $par1EntityLightningBolt = nms_DamageSource_inFire;
            var$2 = 5.0;
            if (!$this.$invulnerable) {
                $ptr = 1;
                continue main;
            }
        }
        var$3 = $this.$fire + 1 | 0;
        $this.$fire = var$3;
        if (!var$3) {
            var$3 = 160;
            nms_Enchantment_$callClinit();
            var$4 = nms_Enchantment_fireProtection.$effectId;
            var$5 = $this.$equipment;
            nms_EnchantmentHelper_$callClinit();
            if (var$5 === null)
                var$6 = 0;
            else {
                var$5 = var$5.data;
                var$6 = 0;
                var$7 = var$5.length;
                var$8 = 0;
                while (var$8 < var$7) {
                    var$9 = nms_EnchantmentHelper_getEnchantmentLevel(var$4, var$5[var$8]);
                    if (var$9 > var$6)
                        var$6 = var$9;
                    var$8 = var$8 + 1 | 0;
                }
            }
            if (var$6 > 0) {
                var$2 = 160.0 * var$6 * 0.15000000596046448;
                var$4 = var$2 | 0;
                if (var$2 < var$4)
                    var$4 = var$4 - 1 | 0;
                var$3 = var$3 - var$4 | 0;
            }
            if ($this.$fire < var$3)
                $this.$fire = var$3;
        }
        $par1EntityLightningBolt = $this.$dataWatcher;
        var$10 = jl_Byte_byteCache.data[129];
        var$11 = $par1EntityLightningBolt.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[145];
        if (var$12 === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            var$6 = var$12.$value;
            var$5 = var$11.$elementData.data;
            var$11 = var$5[var$6 & (var$5.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$6) {
                    var$13 = var$11.$key;
                    if (var$12 !== var$13 && !(var$12 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$11 = var$11.$next3;
            }
        }
        var$13 = var$11 === null ? null : var$11.$value0;
        var$11 = var$13.$watchedObject;
        if (!(var$11 instanceof jl_Byte && var$11.$value1 == var$10.$value1 ? 1 : 0)) {
            var$13.$watchedObject = var$10;
            var$13.$watched = 1;
            $par1EntityLightningBolt.$objectChanged = 1;
        }
        return;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1EntityLightningBolt, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (var$3) {
            $par1EntityLightningBolt = $par1EntityLightningBolt.$getEntity();
            if ($this.$riddenByEntity !== $par1EntityLightningBolt && $this.$ridingEntity !== $par1EntityLightningBolt && $par1EntityLightningBolt !== $this)
                $this.$entityToAttack = $par1EntityLightningBolt;
        }
        var$3 = $this.$fire + 1 | 0;
        $this.$fire = var$3;
        if (!var$3) {
            var$3 = 160;
            nms_Enchantment_$callClinit();
            var$4 = nms_Enchantment_fireProtection.$effectId;
            var$5 = $this.$equipment;
            nms_EnchantmentHelper_$callClinit();
            if (var$5 === null)
                var$6 = 0;
            else {
                var$5 = var$5.data;
                var$6 = 0;
                var$7 = var$5.length;
                var$8 = 0;
                while (var$8 < var$7) {
                    var$9 = nms_EnchantmentHelper_getEnchantmentLevel(var$4, var$5[var$8]);
                    if (var$9 > var$6)
                        var$6 = var$9;
                    var$8 = var$8 + 1 | 0;
                }
            }
            if (var$6 > 0) {
                var$2 = 160.0 * var$6 * 0.15000000596046448;
                var$4 = var$2 | 0;
                if (var$2 < var$4)
                    var$4 = var$4 - 1 | 0;
                var$3 = var$3 - var$4 | 0;
            }
            if ($this.$fire < var$3)
                $this.$fire = var$3;
        }
        $par1EntityLightningBolt = $this.$dataWatcher;
        var$10 = jl_Byte_byteCache.data[129];
        var$11 = $par1EntityLightningBolt.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[145];
        if (var$12 === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            var$6 = var$12.$value;
            var$5 = var$11.$elementData.data;
            var$11 = var$5[var$6 & (var$5.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == var$6) {
                    var$13 = var$11.$key;
                    if (var$12 !== var$13 && !(var$12 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$11 = var$11.$next3;
            }
        }
        var$13 = var$11 === null ? null : var$11.$value0;
        var$11 = var$13.$watchedObject;
        if (!(var$11 instanceof jl_Byte && var$11.$value1 == var$10.$value1 ? 1 : 0)) {
            var$13.$watchedObject = var$10;
            var$13.$watched = 1;
            $par1EntityLightningBolt.$objectChanged = 1;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLightningBolt, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityWaterMob = $rt_classWithoutFields(nms_EntityCreature),
nms_EntityWaterMob_canBreatheUnderwater = $this => {
    return 1;
},
nms_EntityWaterMob_getTalkInterval = $this => {
    return 120;
},
nms_EntityWaterMob_canDespawn = $this => {
    return 1;
},
nms_EntityWaterMob_getExperiencePoints = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4;
    $par1EntityPlayer = $this.$worldObj.$rand0;
    var$2 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1EntityPlayer.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 3 | 0;
        if (((var$3 - var$4 | 0) + 2 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1EntityPlayer.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityPlayer.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    return 1 + var$4 | 0;
},
nms_EntityWaterMob_onEntityUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[129];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value6;
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLivingBase_onEntityUpdate($this);
            if ($rt_suspending()) {
                break main;
            }
            if (!$this.$isDead) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[134];
                if (var$5 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$7 = jl_Integer_hashCode(var$5.$value);
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while (var$1 !== null && !(var$1.$origKeyHash == var$7 && ju_HashMap_areEqualKeys(var$5, var$1.$key))) {
                        var$1 = var$1.$next3;
                    }
                }
                if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                    var$3 = 1;
                    break a;
                }
            }
            var$3 = 0;
        }
        if (var$3) {
            var$1 = $this.$rand;
            var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$8;
            var$7 = Long_lo(Long_shru(var$8, 17));
            while (true) {
                var$9 = var$7 % 1000 | 0;
                if (((var$7 - var$9 | 0) + 999 | 0) >= 0)
                    break;
                var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$8;
                var$7 = Long_lo(Long_shru(var$8, 17));
            }
            var$10 = $this.$livingSoundTime;
            $this.$livingSoundTime = var$10 + 1 | 0;
            if (var$9 < var$10)
                $this.$livingSoundTime = (-120);
        }
        b: {
            if (!$this.$isDead) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[134];
                if (var$5 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$7 = var$5.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$7) {
                            var$2 = var$1.$key;
                            if (var$5 !== var$2 && !jl_Integer_equals(var$5, var$2) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                    var$3 = 1;
                    break b;
                }
            }
            var$3 = 0;
        }
        if (!var$3) {
            var$1 = $this.$dataWatcher;
            var$11 = new jl_Short;
            var$11.$value6 = 300;
            var$2 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$12 = jl_Integer_integerCache.data[129];
            if (var$12 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$12.$value;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$5 = var$2.$key;
                        if (var$12 !== var$5 && !(var$12 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$5 = var$2 === null ? null : var$2.$value0;
            var$2 = var$5.$watchedObject;
            if (!(var$2 instanceof jl_Short && var$2.$value6 == var$11.$value6 ? 1 : 0)) {
                var$5.$watchedObject = var$11;
                var$5.$watched = 1;
                var$1.$objectChanged = 1;
            }
            return;
        }
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        var$13 = var$2.$minX0 - 0.0;
        var$14 = var$2.$minY0 + 0.6000000238418579;
        var$15 = var$2.$minZ0 - 0.0;
        var$16 = var$2.$maxX0 + 0.0;
        var$17 = var$2.$maxY + (-0.6000000238418579);
        var$18 = var$2.$maxZ0 + 0.0;
        var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$5.$nextPoolIndex;
        var$2 = var$5.$listAABB;
        var$3 = var$2.$size0;
        var$7 = $rt_compare(var$10, var$3);
        if (var$7 >= 0) {
            var$12 = new nms_AxisAlignedBB;
            var$12.$minX0 = var$13;
            var$12.$minY0 = var$14;
            var$12.$minZ0 = var$15;
            var$12.$maxX0 = var$16;
            var$12.$maxY = var$17;
            var$12.$maxZ0 = var$18;
            ju_ArrayList_ensureCapacity(var$2, var$3 + 1 | 0);
            var$4 = var$2.$array.data;
            var$10 = var$2.$size0;
            var$2.$size0 = var$10 + 1 | 0;
            var$4[var$10] = var$12;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else if (var$10 >= 0 && var$7 < 0) {
            var$12 = var$2.$array.data[var$10];
            var$12.$minX0 = var$13;
            var$12.$minY0 = var$14;
            var$12.$minZ0 = var$15;
            var$12.$maxX0 = var$16;
            var$12.$maxY = var$17;
            var$12.$maxZ0 = var$18;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
        var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$2 = nms_Material_water;
        $ptr = 2;
    case 2:
        $tmp = nms_World_handleMaterialAcceleration(var$1, var$12, var$2, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (var$3) {
            var$1 = $this.$dataWatcher;
            var$11 = new jl_Short;
            var$11.$value6 = 300;
            var$2 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$12 = jl_Integer_integerCache.data[129];
            if (var$12 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$10 = var$12.$value;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$10) {
                        var$5 = var$2.$key;
                        if (var$12 !== var$5 && !(var$12 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$5 = var$2 === null ? null : var$2.$value0;
            var$2 = var$5.$watchedObject;
            if (!(var$2 instanceof jl_Short && var$2.$value6 == var$11.$value6 ? 1 : 0)) {
                var$5.$watchedObject = var$11;
                var$5.$watched = 1;
                var$1.$objectChanged = 1;
            }
        } else {
            var$3 = var$6 + (-1) | 0;
            var$1 = $this.$dataWatcher;
            var$3 = var$3 << 16 >> 16;
            if (var$3 >= (-128) && var$3 <= 127) {
                jl_Short_ensureShortCache();
                var$2 = jl_Short_shortCache.data[var$3 + 128 | 0];
            } else {
                var$2 = new jl_Short;
                var$2.$value6 = var$3;
            }
            var$5 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[129];
            if (var$11 === null) {
                var$5 = var$5.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                var$10 = var$11.$value;
                var$4 = var$5.$elementData.data;
                var$5 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$10) {
                        var$12 = var$5.$key;
                        if (var$11 !== var$12 && !(var$11 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            var$12 = var$5 === null ? null : var$5.$value0;
            var$5 = var$12.$watchedObject;
            if (!(var$5 instanceof jl_Short && var$5.$value6 == var$2.$value6 ? 1 : 0)) {
                var$12.$watchedObject = var$2;
                var$12.$watched = 1;
                var$1.$objectChanged = 1;
            }
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[129];
            if (var$5 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$10 = var$5.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$10 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$10) {
                        var$2 = var$1.$key;
                        if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value6 == (-20)) {
                var$1 = $this.$dataWatcher;
                jl_Short_ensureShortCache();
                var$11 = jl_Short_shortCache.data[128];
                var$2 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$12 = jl_Integer_integerCache.data[129];
                if (var$12 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$10 = var$12.$value;
                    var$4 = var$2.$elementData.data;
                    var$2 = var$4[var$10 & (var$4.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$10) {
                            var$5 = var$2.$key;
                            if (var$12 !== var$5 && !(var$12 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$10 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$5 = var$2 === null ? null : var$2.$value0;
                var$2 = var$5.$watchedObject;
                if (!(var$2 instanceof jl_Short && var$2.$value6 == var$11.$value6 ? 1 : 0)) {
                    var$5.$watchedObject = var$11;
                    var$5.$watched = 1;
                    var$1.$objectChanged = 1;
                }
                var$1 = nms_DamageSource_drown;
                var$19 = 2.0;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 3:
        nms_EntityLivingBase_attackEntityFrom($this, var$1, var$19);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
};
function nms_EntitySquid() {
    let a = this; nms_EntityWaterMob.call(a);
    a.$squidPitch = 0.0;
    a.$prevSquidPitch = 0.0;
    a.$squidYaw = 0.0;
    a.$prevSquidYaw = 0.0;
    a.$squidRotation = 0.0;
    a.$prevSquidRotation = 0.0;
    a.$tentacleAngle = 0.0;
    a.$prevTentacleAngle = 0.0;
    a.$randomMotionSpeed = 0.0;
    a.$rotationVelocity = 0.0;
    a.$field_70871_bB = 0.0;
    a.$randomMotionVecX = 0.0;
    a.$randomMotionVecY = 0.0;
    a.$randomMotionVecZ = 0.0;
}
let nms_EntitySquid_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null)
        var$1 = ju_HashMap_findNullKeyEntry(var$2);
    else {
        var$3 = nms_BaseAttribute_hashCode(var$1);
        var$1 = ju_HashMap_findNonNullKeyEntry(var$2, var$1, var$3 & (var$2.$elementData.data.length - 1 | 0), var$3);
    }
    var$4 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$4.$baseValue) {
        var$4.$baseValue = 0.10000000149011612;
        var$4.$field_111133_g = 1;
        var$1 = var$4.$field_111138_a;
        if (var$4.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$4, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$4 = var$1.$field_111115_a;
            if (!var$4.$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$4 = var$2.$key;
                if (var$1 !== var$4 && !jl_Object_equals(var$1, var$4) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (10.0 !== var$1.$baseValue) {
        var$1.$baseValue = 10.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntitySquid_getLivingSound = $this => {
    return null;
},
nms_EntitySquid_getHurtSound = $this => {
    return null;
},
nms_EntitySquid_getDeathSound = $this => {
    return null;
},
nms_EntitySquid_getSoundVolume = $this => {
    return 0.4000000059604645;
},
nms_EntitySquid_getDropItemId = $this => {
    return 0;
},
nms_EntitySquid_canTriggerWalking = $this => {
    return 0;
},
nms_EntitySquid_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, $var3, var$6, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        $par1 = 3 + $par2 | 0;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $var3 = Long_lo(Long_shru(var$4, 17));
        $par2 = $par1 - 1 | 0;
        if (!($par1 & $par2))
            var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var3)), 31));
        else
            while (true) {
                var$6 = $var3 % $par1 | 0;
                if ((($var3 - var$6 | 0) + $par2 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $var3 = Long_lo(Long_shru(var$4, 17));
            }
        $var3 = var$6 + 1 | 0;
        $var4 = 0;
        var$8 = 0.0;
        var$9 = 138;
        if ($var4 >= $var3)
            return;
        var$10 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$3 = nms_Item_dyePowder;
        nms_ItemStack_$callClinit();
        var$10.$itemID = var$3.$itemID0;
        var$10.$stackSize = 1;
        var$10.$itemDamage = 0;
        var$11 = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$12 = $this.$posX;
        var$13 = $this.$posY + var$8;
        var$14 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_(var$11, var$3, var$12, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = var$11.$dataWatcher;
        var$3 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$16 = jl_Integer_integerCache.data[var$9];
        if (var$16 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $par2 = jl_Integer_hashCode(var$16.$value);
            var$17 = var$3.$elementData.data;
            var$3 = var$17[$par2 & (var$17.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == $par2 && ju_HashMap_areEqualKeys(var$16, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$18 = var$3 === null ? null : var$3.$value0;
        if (!(var$10 !== var$18.$watchedObject ? 0 : 1)) {
            var$18.$watchedObject = var$10;
            var$18.$watched = 1;
            var$15.$objectChanged = 1;
        }
        var$16 = var$11.$dataWatcher;
        var$3 = var$16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$18 = jl_Integer_integerCache.data[var$9];
        if (var$18 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            $par1 = jl_Integer_hashCode(var$18.$value);
            var$17 = var$3.$elementData.data;
            var$3 = var$17[$par1 & (var$17.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == $par1 && ju_HashMap_areEqualKeys(var$18, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$16.$objectChanged = 1;
        var$11.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= $var3)
            return;
        var$10 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$3 = nms_Item_dyePowder;
        nms_ItemStack_$callClinit();
        var$10.$itemID = var$3.$itemID0;
        var$10.$stackSize = 1;
        var$10.$itemDamage = 0;
        var$11 = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$12 = $this.$posX;
        var$13 = $this.$posY + var$8;
        var$14 = $this.$posZ;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, $var3, var$6, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntitySquid_isInWater = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        var$3 = var$2.$minX0 - 0.0;
        var$4 = var$2.$minY0 + 0.6000000238418579;
        var$5 = var$2.$minZ0 - 0.0;
        var$6 = var$2.$maxX0 + 0.0;
        var$7 = var$2.$maxY + (-0.6000000238418579);
        var$8 = var$2.$maxZ0 + 0.0;
        var$9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$10 = var$9.$nextPoolIndex;
        var$11 = var$9.$listAABB;
        var$12 = var$11.$size0;
        var$13 = $rt_compare(var$10, var$12);
        if (var$13 >= 0) {
            var$2 = new nms_AxisAlignedBB;
            var$2.$minX0 = var$3;
            var$2.$minY0 = var$4;
            var$2.$minZ0 = var$5;
            var$2.$maxX0 = var$6;
            var$2.$maxY = var$7;
            var$2.$maxZ0 = var$8;
            ju_ArrayList_ensureCapacity(var$11, var$12 + 1 | 0);
            var$14 = var$11.$array.data;
            var$12 = var$11.$size0;
            var$11.$size0 = var$12 + 1 | 0;
            var$14[var$12] = var$2;
            var$11.$modCount = var$11.$modCount + 1 | 0;
        } else if (var$10 >= 0 && var$13 < 0) {
            var$2 = var$11.$array.data[var$10];
            var$2.$minX0 = var$3;
            var$2.$minY0 = var$4;
            var$2.$minZ0 = var$5;
            var$2.$maxX0 = var$6;
            var$2.$maxY = var$7;
            var$2.$maxZ0 = var$8;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$9.$nextPoolIndex = var$9.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$9 = nms_Material_water;
        $ptr = 1;
    case 1:
        $tmp = nms_World_handleMaterialAcceleration(var$1, var$2, var$9, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        return var$10;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntitySquid_onLivingUpdate = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var1_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1_0 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$prevSquidPitch = $this.$squidPitch;
        $this.$prevSquidYaw = $this.$squidYaw;
        $var1 = $this.$squidRotation;
        $this.$prevSquidRotation = $var1;
        $this.$prevTentacleAngle = $this.$tentacleAngle;
        $var1 = $var1 + $this.$rotationVelocity;
        $this.$squidRotation = $var1;
        if ($var1 > 6.2831854820251465) {
            $this.$squidRotation = $var1 - 6.2831854820251465;
            var$2 = $this.$rand;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
            while (true) {
                var$5 = var$4 % 10 | 0;
                if (((var$4 - var$5 | 0) + 9 | 0) >= 0)
                    break;
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                var$4 = Long_lo(Long_shru(var$3, 17));
            }
            if (!var$5) {
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                $this.$rotationVelocity = 1.0 / (Long_lo(Long_shru(var$3, 24)) / 1.6777216E7 + 1.0) * 0.20000000298023224;
            }
        }
        var$2 = $this.$worldObj;
        var$6 = $this.$boundingBox0;
        var$7 = var$6.$minX0 - 0.0;
        var$8 = var$6.$minY0 + 0.6000000238418579;
        var$9 = var$6.$minZ0 - 0.0;
        var$10 = var$6.$maxX0 + 0.0;
        var$11 = var$6.$maxY + (-0.6000000238418579);
        var$12 = var$6.$maxZ0 + 0.0;
        var$13 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$4 = var$13.$nextPoolIndex;
        var$6 = var$13.$listAABB;
        var$14 = var$6.$size0;
        var$15 = $rt_compare(var$4, var$14);
        if (var$15 >= 0) {
            var$16 = new nms_AxisAlignedBB;
            var$16.$minX0 = var$7;
            var$16.$minY0 = var$8;
            var$16.$minZ0 = var$9;
            var$16.$maxX0 = var$10;
            var$16.$maxY = var$11;
            var$16.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity(var$6, var$14 + 1 | 0);
            var$17 = var$6.$array.data;
            var$14 = var$6.$size0;
            var$6.$size0 = var$14 + 1 | 0;
            var$17[var$14] = var$16;
            var$6.$modCount = var$6.$modCount + 1 | 0;
        } else if (var$4 >= 0 && var$15 < 0) {
            var$16 = var$6.$array.data[var$4];
            var$16.$minX0 = var$7;
            var$16.$minY0 = var$8;
            var$16.$minZ0 = var$9;
            var$16.$maxX0 = var$10;
            var$16.$maxY = var$11;
            var$16.$maxZ0 = var$12;
        } else {
            var$2 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$2);
            $rt_throw(var$2);
        }
        var$13.$nextPoolIndex = var$13.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$6 = nms_Material_water;
        $ptr = 2;
    case 2:
        $tmp = nms_World_handleMaterialAcceleration(var$2, var$16, var$6, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (!var$15) {
            $var1 = $this.$squidRotation;
            var$18 = nms_MathHelper_SIN_TABLE.data[($var1 * 10430.3779296875 | 0) & 65535];
            if (var$18 < 0.0)
                var$18 =  -var$18;
            $this.$tentacleAngle = var$18 * 3.1415927410125732 * 0.25;
            if (!$this.$worldObj.$isRemote) {
                $this.$motionX = 0.0;
                var$10 = $this.$motionY - 0.08;
                $this.$motionY = var$10;
                $this.$motionY = var$10 * 0.9800000190734863;
                $this.$motionZ = 0.0;
            }
            var$18 = $this.$squidPitch;
            $this.$squidPitch = var$18 + ((-90.0) - var$18) * 0.02;
        } else {
            $var1 = $this.$squidRotation;
            if ($var1 >= 3.1415927410125732) {
                $this.$tentacleAngle = 0.0;
                $this.$randomMotionSpeed = $this.$randomMotionSpeed * 0.8999999761581421;
                $this.$field_70871_bB = $this.$field_70871_bB * 0.9900000095367432;
            } else {
                $var1 = $var1 / 3.1415927410125732;
                var$18 = $var1 * $var1 * 3.1415927410125732;
                $this.$tentacleAngle = nms_MathHelper_SIN_TABLE.data[(var$18 * 10430.3779296875 | 0) & 65535] * 3.1415927410125732 * 0.25;
                if ($var1 <= 0.75)
                    $this.$field_70871_bB = $this.$field_70871_bB * 0.800000011920929;
                else {
                    $this.$randomMotionSpeed = 1.0;
                    $this.$field_70871_bB = 1.0;
                }
            }
            if (!$this.$worldObj.$isRemote) {
                $var1 = $this.$randomMotionVecX;
                var$18 = $this.$randomMotionSpeed;
                $this.$motionX = $var1 * var$18;
                $this.$motionY = $this.$randomMotionVecY * var$18;
                $this.$motionZ = $this.$randomMotionVecZ * var$18;
            }
            var$10 = $this.$motionX;
            var$10 = var$10 * var$10;
            var$11 = $this.$motionZ;
            $var1_0 = jl_Math_sqrt(var$10 + var$11 * var$11);
            $var1 = $this.$renderYawOffset + ( -jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.1415927410125732 - $this.$renderYawOffset) * 0.10000000149011612;
            $this.$renderYawOffset = $var1;
            $this.$rotationYaw = $var1;
            $this.$squidYaw = $this.$squidYaw + 3.1415927410125732 * $this.$field_70871_bB * 1.5;
            $this.$squidPitch = $this.$squidPitch + ( -jl_Math_atan2($var1_0, $this.$motionY) * 180.0 / 3.1415927410125732 - $this.$squidPitch) * 0.10000000149011612;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var1_0, $ptr);
},
nms_EntitySquid_moveEntityWithHeading = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$motionX;
        var$4 = $this.$motionY;
        var$5 = $this.$motionZ;
        $ptr = 1;
    case 1:
        nms_Entity_moveEntity($this, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $ptr);
},
nms_EntitySquid_updateEntityActionState = $this => {
    let var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$1 = $this.$entityAge + 1 | 0;
            $this.$entityAge = var$1;
            if (var$1 > 100) {
                $this.$randomMotionVecZ = 0.0;
                $this.$randomMotionVecY = 0.0;
                $this.$randomMotionVecX = 0.0;
            } else {
                var$2 = $this.$rand;
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                var$4 = Long_lo(Long_shru(var$3, 17));
                while (true) {
                    var$5 = var$4 % 50 | 0;
                    if (((var$4 - var$5 | 0) + 49 | 0) >= 0)
                        break;
                    var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$3;
                    var$4 = Long_lo(Long_shru(var$3, 17));
                }
                if (var$5 && $this.$inWater) {
                    if ($this.$randomMotionVecX !== 0.0)
                        break a;
                    if ($this.$randomMotionVecY !== 0.0)
                        break a;
                    if ($this.$randomMotionVecZ !== 0.0)
                        break a;
                }
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                $var1 = Long_lo(Long_shru(var$3, 24)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                var$7 = nms_MathHelper_SIN_TABLE.data;
                var$8 = $var1 * 10430.3779296875;
                $this.$randomMotionVecX = var$7[(var$8 + 16384.0 | 0) & 65535] * 0.20000000298023224;
                var$3 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                $this.$randomMotionVecY = (-0.10000000149011612) + Long_lo(Long_shru(var$3, 24)) / 1.6777216E7 * 0.20000000298023224;
                $this.$randomMotionVecZ = var$7[(var$8 | 0) & 65535] * 0.20000000298023224;
            }
        }
        $ptr = 1;
    case 1:
        nms_EntityLiving_despawnEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, $ptr);
},
nms_EntitySquid_getCanSpawnHere = $this => {
    let var$1, var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$posY;
        if (var$1 > 45.0 && var$1 < 63.0) {
            var$2 = $this.$worldObj;
            var$3 = $this.$boundingBox0;
            var$4 = null;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_World_checkNoEntityCollision(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        return !var$5 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityAmbientCreature = $rt_classWithoutFields(nms_EntityLiving),
nms_EntityAmbientCreature_allowLeashing = $this => {
    return 0;
},
nms_EntityAmbientCreature_interact = ($this, $par1EntityPlayer) => {
    return 0;
};
function nms_EntityBat() {
    nms_EntityAmbientCreature.call(this);
    this.$currentFlightTarget = null;
}
let nms_EntityBat_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 0;
    nms_DataWatcher_addObject(var$2, 16, var$1);
},
nms_EntityBat_getSoundVolume = $this => {
    return 0.10000000149011612;
},
nms_EntityBat_getSoundPitch = $this => {
    return nms_EntityLivingBase_getSoundPitch($this) * 0.949999988079071;
},
nms_EntityBat_getLivingSound = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    var$6 = !(var$1.$watchedObject.$value1 & 1) ? 0 : 1;
    a: {
        if (var$6) {
            var$1 = $this.$rand;
            var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$7;
            if (Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$7, 17)))), 31))) {
                var$1 = null;
                break a;
            }
        }
        var$1 = $rt_s(2368);
    }
    return var$1;
},
nms_EntityBat_getHurtSound = $this => {
    return $rt_s(2369);
},
nms_EntityBat_getDeathSound = $this => {
    return $rt_s(2370);
},
nms_EntityBat_canBePushed = $this => {
    return 0;
},
nms_EntityBat_collideWithEntity = ($this, $par1Entity) => {
    return;
},
nms_EntityBat_collideWithNearbyEntities = $this => {
    return;
},
nms_EntityBat_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (6.0 !== var$1.$baseValue) {
        var$1.$baseValue = 6.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityBat_isAIEnabled = $this => {
    return 1;
},
nms_EntityBat_onUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLivingBase_onUpdate($this);
            if ($rt_suspending()) {
                break main;
            }
            if (!$this.$worldObj.$isRemote) {
                if ($this.$field_110170_bx !== null) {
                    $ptr = 2;
                    continue main;
                }
                if ($this.$isLeashed) {
                    var$1 = $this.$leashedToEntity;
                    if (var$1 === null)
                        break a;
                    if (var$1.$isDead)
                        break a;
                }
            }
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(!(var$1.$watchedObject.$value1 & 1) ? 0 : 1))
                $this.$motionY = $this.$motionY * 0.6000000238418579;
            else {
                $this.$motionZ = 0.0;
                $this.$motionY = 0.0;
                $this.$motionX = 0.0;
                var$6 = $this.$posY;
                var$7 = var$6 | 0;
                if (var$6 < var$7)
                    var$7 = var$7 - 1 | 0;
                $this.$posY = var$7 + 1.0 - $this.$height0;
            }
            return;
        }
        var$8 = 1;
        var$7 = 1;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityLiving_recreateLeash($this);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            if ($this.$isLeashed) {
                var$1 = $this.$leashedToEntity;
                if (var$1 === null)
                    break a;
                if (var$1.$isDead)
                    break a;
            }
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(!(var$1.$watchedObject.$value1 & 1) ? 0 : 1))
                $this.$motionY = $this.$motionY * 0.6000000238418579;
            else {
                $this.$motionZ = 0.0;
                $this.$motionY = 0.0;
                $this.$motionX = 0.0;
                var$6 = $this.$posY;
                var$7 = var$6 | 0;
                if (var$6 < var$7)
                    var$7 = var$7 - 1 | 0;
                $this.$posY = var$7 + 1.0 - $this.$height0;
            }
            return;
        }
        var$8 = 1;
        var$7 = 1;
        $ptr = 3;
    case 3:
        nms_EntityLiving_clearLeashed($this, var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value1 & 1) ? 0 : 1))
            $this.$motionY = $this.$motionY * 0.6000000238418579;
        else {
            $this.$motionZ = 0.0;
            $this.$motionY = 0.0;
            $this.$motionX = 0.0;
            var$6 = $this.$posY;
            var$7 = var$6 | 0;
            if (var$6 < var$7)
                var$7 = var$7 - 1 | 0;
            $this.$posY = var$7 + 1.0 - $this.$height0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityBat_updateAITasks = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $var1, var$10, var$11, $var7, var$13, $var8, var$15, var$16, $var3, $var5, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var8 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var1 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$entityAge = $this.$entityAge + 1 | 0;
        $ptr = 1;
    case 1:
        nms_EntityLiving_despawnEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$senses;
        var$2 = var$1.$seenEntities;
        var$3 = var$2.$array;
        var$4 = 0;
        var$5 = var$2.$size0;
        var$6 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$6;
            var$4 = var$8;
        }
        var$2.$size0 = 0;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$1 = var$1.$unseenEntities;
        var$3 = var$1.$array;
        var$4 = 0;
        var$5 = var$1.$size0;
        var$2 = null;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$7 = var$3.data;
            var$8 = var$4 + 1 | 0;
            var$7[var$4] = var$2;
            var$4 = var$8;
        }
        var$1.$size0 = 0;
        var$1.$modCount = var$1.$modCount + 1 | 0;
        var$1 = $this.$targetTasks;
        $ptr = 2;
    case 2:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$tasks0;
        $ptr = 3;
    case 3:
        nms_EntityAITasks_onUpdateTasks(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$navigator;
        $ptr = 4;
    case 4:
        nms_PathNavigate_onUpdateNavigation(var$1);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityMoveHelper_onUpdateMoveHelper($this.$moveHelper);
        nms_EntityLookHelper_onUpdateLook($this.$lookHelper);
        var$1 = $this.$jumpHelper;
        var$1.$entity0.$isJumping = var$1.$isJumping0;
        var$1.$isJumping0 = 0;
        var$1 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$4 = var$2.$value;
            var$3 = var$1.$elementData.data;
            var$1 = var$3[var$4 & (var$3.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$4) {
                    var$6 = var$1.$key;
                    if (var$2 !== var$6 && !(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1) {
            var$1 = $this.$worldObj;
            $var1 = $this.$posX;
            var$10 = $var1 | 0;
            if ($var1 < var$10)
                var$10 = var$10 - 1 | 0;
            var$4 = ($this.$posY | 0) + 1 | 0;
            $var1 = $this.$posZ;
            var$8 = $var1 | 0;
            if ($var1 < var$8)
                var$8 = var$8 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        var$1 = $this.$currentFlightTarget;
        if (var$1 !== null) {
            var$2 = $this.$worldObj;
            var$4 = var$1.$posX0;
            var$5 = var$1.$posY0;
            var$8 = var$1.$posZ0;
            $ptr = 5;
            continue main;
        }
        a: {
            var$1 = $this.$currentFlightTarget;
            if (var$1 !== null) {
                var$2 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    var$10 = var$8 % 30 | 0;
                    if (((var$8 - var$10 | 0) + 29 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$11;
                    var$8 = Long_lo(Long_shru(var$11, 17));
                }
                if (var$10) {
                    var$4 = $this.$posX | 0;
                    var$5 = $this.$posY | 0;
                    var$8 = $this.$posZ | 0;
                    $var7 = var$1.$posX0 - var$4 | 0;
                    var$13 = var$1.$posY0 - var$5 | 0;
                    $var8 = var$1.$posZ0 - var$8 | 0;
                    if ($var7 * $var7 + var$13 * var$13 + $var8 * $var8 >= 4.0)
                        break a;
                }
            }
            var$1 = new nms_ChunkCoordinates;
            var$5 = $this.$posX | 0;
            var$2 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$10 = var$8 % 7 | 0;
                if (((var$8 - var$10 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
            }
            var$4 = var$5 + var$10 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$10 = var$8 % 7 | 0;
                if (((var$8 - var$10 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
            }
            var$5 = var$4 - var$10 | 0;
            var$8 = $this.$posY | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$16 = var$15 % 6 | 0;
                if (((var$15 - var$16 | 0) + 5 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$15 = Long_lo(Long_shru(var$11, 17));
            }
            var$8 = (var$8 + var$16 | 0) - 2 | 0;
            var$10 = $this.$posZ | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$16 = var$15 % 7 | 0;
                if (((var$15 - var$16 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$15 = Long_lo(Long_shru(var$11, 17));
            }
            var$4 = var$10 + var$16 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$16 = var$15 % 7 | 0;
                if (((var$15 - var$16 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$15 = Long_lo(Long_shru(var$11, 17));
            }
            var$4 = var$4 - var$16 | 0;
            var$1.$posX0 = var$5;
            var$1.$posY0 = var$8;
            var$1.$posZ0 = var$4;
            $this.$currentFlightTarget = var$1;
        }
        var$1 = $this.$currentFlightTarget;
        $var1 = var$1.$posX0 + 0.5 - $this.$posX;
        $var3 = var$1.$posY0 + 0.1 - $this.$posY;
        $var5 = var$1.$posZ0 + 0.5 - $this.$posZ;
        $this.$motionX = $this.$motionX + (jl_Math_sign($var1) * 0.5 - $this.$motionX) * 0.10000000149011612;
        $this.$motionY = $this.$motionY + (jl_Math_sign($var3) * 0.699999988079071 - $this.$motionY) * 0.10000000149011612;
        $var1 = $this.$motionZ + (jl_Math_sign($var5) * 0.5 - $this.$motionZ) * 0.10000000149011612;
        $this.$motionZ = $var1;
        $var7 = jl_Math_atan2($var1, $this.$motionX) * 180.0 / 3.141592653589793 - 90.0;
        var$13 = $this.$rotationYaw;
        $var8 = ($var7 - var$13) % 360.0;
        if ($var8 >= 180.0)
            $var8 = $var8 - 360.0;
        if ($var8 < (-180.0))
            $var8 = $var8 + 360.0;
        $this.$moveForward = 0.5;
        $this.$rotationYaw = var$13 + $var8;
        var$1 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$11;
        var$8 = Long_lo(Long_shru(var$11, 17));
        while (true) {
            var$10 = var$8 % 100 | 0;
            if (((var$8 - var$10 | 0) + 99 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
        }
        if (var$10)
            return;
        var$1 = $this.$worldObj;
        $var1 = $this.$posX;
        var$8 = $var1 | 0;
        if ($var1 < var$8)
            var$8 = var$8 - 1 | 0;
        var$4 = ($this.$posY | 0) + 1 | 0;
        $var1 = $this.$posZ;
        var$10 = $var1 | 0;
        if ($var1 < var$10)
            var$10 = var$10 - 1 | 0;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId(var$2, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        var$4 = var$4 ? 0 : 1;
        if (!(var$4 && $this.$currentFlightTarget.$posY0 >= 1))
            $this.$currentFlightTarget = null;
        b: {
            var$1 = $this.$currentFlightTarget;
            if (var$1 !== null) {
                var$2 = $this.$rand;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    var$10 = var$8 % 30 | 0;
                    if (((var$8 - var$10 | 0) + 29 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$11;
                    var$8 = Long_lo(Long_shru(var$11, 17));
                }
                if (var$10) {
                    var$4 = $this.$posX | 0;
                    var$5 = $this.$posY | 0;
                    var$8 = $this.$posZ | 0;
                    $var7 = var$1.$posX0 - var$4 | 0;
                    var$13 = var$1.$posY0 - var$5 | 0;
                    $var8 = var$1.$posZ0 - var$8 | 0;
                    if ($var7 * $var7 + var$13 * var$13 + $var8 * $var8 >= 4.0)
                        break b;
                }
            }
            var$1 = new nms_ChunkCoordinates;
            var$5 = $this.$posX | 0;
            var$2 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$10 = var$8 % 7 | 0;
                if (((var$8 - var$10 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
            }
            var$4 = var$5 + var$10 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$10 = var$8 % 7 | 0;
                if (((var$8 - var$10 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
            }
            var$5 = var$4 - var$10 | 0;
            var$8 = $this.$posY | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$16 = var$15 % 6 | 0;
                if (((var$15 - var$16 | 0) + 5 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$15 = Long_lo(Long_shru(var$11, 17));
            }
            var$8 = (var$8 + var$16 | 0) - 2 | 0;
            var$10 = $this.$posZ | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$16 = var$15 % 7 | 0;
                if (((var$15 - var$16 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$15 = Long_lo(Long_shru(var$11, 17));
            }
            var$4 = var$10 + var$16 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$11;
            var$15 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$16 = var$15 % 7 | 0;
                if (((var$15 - var$16 | 0) + 6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$11;
                var$15 = Long_lo(Long_shru(var$11, 17));
            }
            var$4 = var$4 - var$16 | 0;
            var$1.$posX0 = var$5;
            var$1.$posY0 = var$8;
            var$1.$posZ0 = var$4;
            $this.$currentFlightTarget = var$1;
        }
        var$1 = $this.$currentFlightTarget;
        $var1 = var$1.$posX0 + 0.5 - $this.$posX;
        $var3 = var$1.$posY0 + 0.1 - $this.$posY;
        $var5 = var$1.$posZ0 + 0.5 - $this.$posZ;
        $this.$motionX = $this.$motionX + (jl_Math_sign($var1) * 0.5 - $this.$motionX) * 0.10000000149011612;
        $this.$motionY = $this.$motionY + (jl_Math_sign($var3) * 0.699999988079071 - $this.$motionY) * 0.10000000149011612;
        $var1 = $this.$motionZ + (jl_Math_sign($var5) * 0.5 - $this.$motionZ) * 0.10000000149011612;
        $this.$motionZ = $var1;
        $var7 = jl_Math_atan2($var1, $this.$motionX) * 180.0 / 3.141592653589793 - 90.0;
        var$13 = $this.$rotationYaw;
        $var8 = ($var7 - var$13) % 360.0;
        if ($var8 >= 180.0)
            $var8 = $var8 - 360.0;
        if ($var8 < (-180.0))
            $var8 = $var8 + 360.0;
        $this.$moveForward = 0.5;
        $this.$rotationYaw = var$13 + $var8;
        var$1 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$11;
        var$8 = Long_lo(Long_shru(var$11, 17));
        while (true) {
            var$10 = var$8 % 100 | 0;
            if (((var$8 - var$10 | 0) + 99 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
        }
        if (var$10)
            return;
        var$1 = $this.$worldObj;
        $var1 = $this.$posX;
        var$8 = $var1 | 0;
        if ($var1 < var$8)
            var$8 = var$8 - 1 | 0;
        var$4 = ($this.$posY | 0) + 1 | 0;
        $var1 = $this.$posZ;
        var$10 = $var1 | 0;
        if ($var1 < var$10)
            var$10 = var$10 - 1 | 0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId(var$1, var$10, var$4, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        nms_Block_$callClinit();
        var$1 = nms_Block_blocksList.data[var$4];
        if (var$1 === null)
            var$4 = 0;
        else {
            var$2 = var$1.$blockMaterial;
            var$4 = !var$2.$isTranslucent ? var$2.$blocksMovement() : 0;
            var$4 = var$4 && var$1.$renderAsNormalBlock() && !var$1.$canProvidePower() ? 1 : 0;
        }
        c: {
            if (!var$4) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[144];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$4 = var$2.$value;
                    var$3 = var$1.$elementData.data;
                    var$1 = var$3[var$4 & (var$3.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$4) {
                            var$6 = var$1.$key;
                            if (var$2 !== var$6 && !(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$5 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
                var$1 = $this.$dataWatcher;
                var$4 = (var$5 & (-2)) << 24 >> 24;
                var$19 = jl_Byte_byteCache.data[var$4 + 128 | 0];
                var$2 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$20 = jl_Integer_integerCache.data[144];
                if (var$20 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$8 = var$20.$value;
                    var$3 = var$2.$elementData.data;
                    var$2 = var$3[var$8 & (var$3.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$8) {
                            var$6 = var$2.$key;
                            if (var$20 !== var$6 && !(var$20 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$8 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$6 = var$2 === null ? null : var$2.$value0;
                var$2 = var$6.$watchedObject;
                if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$19.$value1 ? 1 : 0)) {
                    var$6.$watchedObject = var$19;
                    var$6.$watched = 1;
                    var$1.$objectChanged = 1;
                }
                var$1 = $this.$worldObj;
                var$2 = null;
                var$4 = 1015;
                var$5 = $this.$posX | 0;
                var$8 = $this.$posY | 0;
                var$10 = $this.$posZ | 0;
                var$15 = 0;
                var$16 = 0;
                $var3 = var$5;
                $var5 = var$8;
                var$21 = var$10;
                var$6 = var$1.$worldAccesses;
                var$22 = $rt_compare(var$16, var$6.$size0);
                if (var$22 >= 0)
                    break c;
                if (var$16 >= 0 && var$22 < 0) {
                    var$6 = var$6.$array.data[var$16];
                    var$19 = var$6.$mcServer.$serverConfigManager;
                    $var1 = 64.0;
                    var$23 = var$6.$theWorldServer.$provider.$dimensionId;
                    var$6 = new nms_Packet61DoorChange;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$sfxID = var$4;
                    var$6.$posX1 = var$5;
                    var$6.$posY1 = var$8;
                    var$6.$posZ1 = var$10;
                    var$6.$auxData = var$15;
                    var$6.$disableRelativeVolume = 0;
                    $ptr = 8;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            var$1 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$11;
            var$8 = Long_lo(Long_shru(var$11, 17));
            while (true) {
                var$10 = var$8 % 200 | 0;
                if (((var$8 - var$10 | 0) + 199 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
            }
            if (!var$10) {
                var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$11;
                var$8 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    var$10 = var$8 % 360 | 0;
                    if (((var$8 - var$10 | 0) + 359 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$11;
                    var$8 = Long_lo(Long_shru(var$11, 17));
                }
                $this.$rotationYawHead = var$10;
            }
            if (nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 4.0) !== null) {
                var$1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[144];
                if (var$2 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$4 = var$2.$value;
                    var$3 = var$1.$elementData.data;
                    var$1 = var$3[var$4 & (var$3.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$4) {
                            var$6 = var$1.$key;
                            if (var$2 !== var$6 && !(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$5 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
                var$1 = $this.$dataWatcher;
                var$4 = (var$5 & (-2)) << 24 >> 24;
                var$19 = jl_Byte_byteCache.data[var$4 + 128 | 0];
                var$2 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$20 = jl_Integer_integerCache.data[144];
                if (var$20 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$8 = var$20.$value;
                    var$3 = var$2.$elementData.data;
                    var$2 = var$3[var$8 & (var$3.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$8) {
                            var$6 = var$2.$key;
                            if (var$20 !== var$6 && !(var$20 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$8 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$6 = var$2 === null ? null : var$2.$value0;
                var$2 = var$6.$watchedObject;
                if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$19.$value1 ? 1 : 0)) {
                    var$6.$watchedObject = var$19;
                    var$6.$watched = 1;
                    var$1.$objectChanged = 1;
                }
                var$1 = $this.$worldObj;
                var$2 = null;
                var$4 = 1015;
                var$5 = $this.$posX | 0;
                var$8 = $this.$posY | 0;
                var$10 = $this.$posZ | 0;
                var$15 = 0;
                var$16 = 0;
                $var3 = var$5;
                $var5 = var$8;
                var$21 = var$10;
                var$6 = var$1.$worldAccesses;
                var$22 = $rt_compare(var$16, var$6.$size0);
                if (var$22 < 0) {
                    if (var$16 >= 0 && var$22 < 0) {
                        var$6 = var$6.$array.data[var$16];
                        var$19 = var$6.$mcServer.$serverConfigManager;
                        $var1 = 64.0;
                        var$23 = var$6.$theWorldServer.$provider.$dimensionId;
                        var$6 = new nms_Packet61DoorChange;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$6.$sfxID = var$4;
                        var$6.$posX1 = var$5;
                        var$6.$posY1 = var$8;
                        var$6.$posZ1 = var$10;
                        var$6.$auxData = var$15;
                        var$6.$disableRelativeVolume = 0;
                        $ptr = 9;
                        continue main;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
            }
        }
        return;
    case 7:
        $tmp = nms_World_getBlockId(var$1, var$8, var$4, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        nms_Block_$callClinit();
        var$1 = nms_Block_blocksList.data[var$4];
        if (var$1 === null)
            var$4 = 0;
        else {
            var$2 = var$1.$blockMaterial;
            var$4 = !var$2.$isTranslucent ? var$2.$blocksMovement() : 0;
            var$4 = var$4 && var$1.$renderAsNormalBlock() && !var$1.$canProvidePower() ? 1 : 0;
        }
        if (var$4) {
            var$1 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$4 = var$2.$value;
                var$3 = var$1.$elementData.data;
                var$1 = var$3[var$4 & (var$3.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$4) {
                        var$6 = var$1.$key;
                        if (var$2 !== var$6 && !(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$5 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
            var$1 = $this.$dataWatcher;
            var$4 = (var$5 | 1) << 24 >> 24;
            var$19 = jl_Byte_byteCache.data[var$4 + 128 | 0];
            var$2 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$20 = jl_Integer_integerCache.data[144];
            if (var$20 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$8 = var$20.$value;
                var$3 = var$2.$elementData.data;
                var$2 = var$3[var$8 & (var$3.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        var$6 = var$2.$key;
                        if (var$20 !== var$6 && !(var$20 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$8 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$6 = var$2 === null ? null : var$2.$value0;
            var$2 = var$6.$watchedObject;
            if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$19.$value1 ? 1 : 0)) {
                var$6.$watchedObject = var$19;
                var$6.$watched = 1;
                var$1.$objectChanged = 1;
            }
        }
        return;
    case 8:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$19, var$2, $var3, $var5, var$21, $var1, var$23, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = var$16 + 1 | 0;
        var$6 = var$1.$worldAccesses;
        var$22 = $rt_compare(var$16, var$6.$size0);
        if (var$22 >= 0)
            return;
        if (var$16 >= 0 && var$22 < 0) {
            var$6 = var$6.$array.data[var$16];
            var$19 = var$6.$mcServer.$serverConfigManager;
            $var1 = 64.0;
            var$23 = var$6.$theWorldServer.$provider.$dimensionId;
            var$6 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$6.$sfxID = var$4;
            var$6.$posX1 = var$5;
            var$6.$posY1 = var$8;
            var$6.$posZ1 = var$10;
            var$6.$auxData = var$15;
            var$6.$disableRelativeVolume = 0;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 9:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$19, var$2, $var3, $var5, var$21, $var1, var$23, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = var$16 + 1 | 0;
        var$6 = var$1.$worldAccesses;
        var$22 = $rt_compare(var$16, var$6.$size0);
        if (var$22 >= 0)
            return;
        if (var$16 >= 0 && var$22 < 0) {
            var$6 = var$6.$array.data[var$16];
            var$19 = var$6.$mcServer.$serverConfigManager;
            $var1 = 64.0;
            var$23 = var$6.$theWorldServer.$provider.$dimensionId;
            var$6 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$6.$sfxID = var$4;
            var$6.$posX1 = var$5;
            var$6.$posY1 = var$8;
            var$6.$posZ1 = var$10;
            var$6.$auxData = var$15;
            var$6.$disableRelativeVolume = 0;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $var1, var$10, var$11, $var7, var$13, $var8, var$15, var$16, $var3, $var5, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_EntityBat_canTriggerWalking = $this => {
    return 0;
},
nms_EntityBat_fall = ($this, $par1) => {
    return;
},
nms_EntityBat_updateFallState = ($this, $par1, $par3) => {
    return;
},
nms_EntityBat_doesEntityNotTriggerPressurePlate = $this => {
    return 1;
},
nms_EntityBat_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if (!$this.$worldObj.$isRemote) {
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[144];
            if (var$4 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        var$7 = var$3.$key;
                        if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$3 = var$3 === null ? null : var$3.$value0;
            if (!(var$3.$watchedObject.$value1 & 1) ? 0 : 1) {
                var$3 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[144];
                if (var$4 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$5 = var$4.$value;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            var$7 = var$3.$key;
                            if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$8 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value1;
                var$9 = $this.$dataWatcher;
                var$10 = (var$8 & (-2)) << 24 >> 24;
                var$11 = jl_Byte_byteCache.data[var$10 + 128 | 0];
                var$3 = var$9.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[144];
                if (var$4 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$5 = var$4.$value;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            var$7 = var$3.$key;
                            if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$7 = var$3 === null ? null : var$3.$value0;
                var$3 = var$7.$watchedObject;
                if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$11.$value1 ? 1 : 0)) {
                    var$7.$watchedObject = var$11;
                    var$7.$watched = 1;
                    var$9.$objectChanged = 1;
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        return var$8;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityBat_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $this.$dataWatcher;
        var$3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2371).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2371).$nativeString.length)
                    break a;
                $rt_s(2371).$hashCode1 = (31 * $rt_s(2371).$hashCode1 | 0) + $rt_s(2371).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$5 = $rt_s(2371).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$5) {
            b: {
                var$7 = var$3.$key;
                if ($rt_s(2371) !== var$7) {
                    if ($rt_s(2371) === var$7)
                        var$4 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$7 = var$7;
                        var$4 = $rt_s(2371).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break b;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (!(var$3 === null ? 0 : 1))
        var$8 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2371) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2371).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2371).$nativeString.length)
                            break c;
                        $rt_s(2371).$hashCode1 = (31 * $rt_s(2371).$hashCode1 | 0) + $rt_s(2371).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2371).$hashCode1;
            var$6 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$6[var$4 & (var$6.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    d: {
                        var$3 = $par1NBTTagCompound.$key;
                        if ($rt_s(2371) !== var$3) {
                            if ($rt_s(2371) === var$3)
                                var$8 = 1;
                            else if (!(var$3 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$3 = var$3;
                                var$8 = $rt_s(2371).$nativeString !== var$3.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break d;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$8 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
    }
    var$3 = jl_Byte_byteCache.data[var$8 + 128 | 0];
    $par1NBTTagCompound = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[144];
    if (var$7 === null) {
        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    } else {
        var$5 = var$7.$value;
        var$6 = $par1NBTTagCompound.$elementData.data;
        $par1NBTTagCompound = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($par1NBTTagCompound !== null) {
            if ($par1NBTTagCompound.$origKeyHash == var$5) {
                var$9 = $par1NBTTagCompound.$key;
                if (var$7 !== var$9 && !(var$7 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    }
    var$9 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
    $par1NBTTagCompound = var$9.$watchedObject;
    if (!($par1NBTTagCompound instanceof jl_Byte && $par1NBTTagCompound.$value1 == var$3.$value1 ? 1 : 0)) {
        var$9.$watchedObject = var$3;
        var$9.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityBat_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2371);
    $par1NBTTagCompound.$data0 = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2371), $par1NBTTagCompound);
},
nms_EntityBat_getCanSpawnHere = $this => {
    let var$1, $var1, $var2, $var3, $var6, $var5, $var4, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$boundingBox0.$minY0;
        $var1 = var$1 | 0;
        if (var$1 < $var1)
            $var1 = $var1 - 1 | 0;
        if ($var1 >= 63)
            return 0;
        var$1 = $this.$posX;
        $var2 = var$1 | 0;
        if (var$1 < $var2)
            $var2 = $var2 - 1 | 0;
        var$1 = $this.$posZ;
        $var3 = var$1 | 0;
        if (var$1 < $var3)
            $var3 = $var3 - 1 | 0;
        $var6 = $this.$worldObj;
        $var5 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do($var6, $var2, $var1, $var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = 4;
        $var6 = $this.$worldObj;
        if (Long_eq(Long_rem($var6.$worldInfo.$getWorldTotalTime(), Long_fromInt(600)), Long_ZERO)) {
            var$8 = $var6.$theCalendar;
            nles_SysUtil_$callClinit();
            var$9 = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            if (!(var$8.$isTimeSet && var$8.$areFieldsSet && Long_eq(var$8.$time, var$9))) {
                var$8.$time = var$9;
                var$8.$isTimeSet = 1;
                var$8.$areFieldsSet = 0;
                ju_GregorianCalendar_computeFields(var$8);
                var$8.$areFieldsSet = 1;
            }
        }
        $var6 = $var6.$theCalendar;
        if (!$var6.$isTimeSet) {
            ju_GregorianCalendar_computeTime($var6);
            $var6.$isTimeSet = 1;
        }
        if (!$var6.$areFieldsSet) {
            ju_GregorianCalendar_computeFields($var6);
            $var6.$areFieldsSet = 1;
        }
        a: {
            b: {
                c: {
                    if (($var6.$fields.data[2] + 1 | 0) == 10) {
                        if (!$var6.$isTimeSet) {
                            ju_GregorianCalendar_computeTime($var6);
                            $var6.$isTimeSet = 1;
                        }
                        if (!$var6.$areFieldsSet) {
                            ju_GregorianCalendar_computeFields($var6);
                            $var6.$areFieldsSet = 1;
                        }
                        if ($var6.$fields.data[5] >= 20)
                            break c;
                    }
                    if (!$var6.$isTimeSet) {
                        ju_GregorianCalendar_computeTime($var6);
                        $var6.$isTimeSet = 1;
                    }
                    if (!$var6.$areFieldsSet) {
                        ju_GregorianCalendar_computeFields($var6);
                        $var6.$areFieldsSet = 1;
                    }
                    if (($var6.$fields.data[2] + 1 | 0) != 11)
                        break b;
                    if (!$var6.$isTimeSet) {
                        ju_GregorianCalendar_computeTime($var6);
                        $var6.$isTimeSet = 1;
                    }
                    if (!$var6.$areFieldsSet) {
                        ju_GregorianCalendar_computeFields($var6);
                        $var6.$areFieldsSet = 1;
                    }
                    if ($var6.$fields.data[5] > 3)
                        break b;
                }
                $var5 = 7;
                break a;
            }
            $var6 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var6.$seed = var$10;
            if (!Long_lo(Long_shru(var$10, 47)) ? 0 : 1)
                return 0;
        }
        $var6 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var6.$seed = var$10;
        $var1 = Long_lo(Long_shru(var$10, 17));
        $var3 = $var5 - 1 | 0;
        if (!($var5 & $var3))
            $var2 = Long_lo(Long_shr(Long_mul(Long_fromInt($var5), Long_fromInt($var1)), 31));
        else
            while (true) {
                $var2 = $var1 % $var5 | 0;
                if ((($var1 - $var2 | 0) + $var3 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($var6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6.$seed = var$10;
                $var1 = Long_lo(Long_shru(var$10, 17));
            }
        if ($var4 > $var2)
            return 0;
        $var6 = $this.$worldObj;
        var$8 = $this.$boundingBox0;
        var$11 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_checkNoEntityCollision($var6, var$8, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if (!$var5)
            return 0;
        $var6 = $this.$worldObj;
        var$8 = $this.$boundingBox0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getCollidingBoundingBoxes($var6, $this, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6.$size0 ? 0 : 1))
            return 0;
        $var6 = $this.$worldObj;
        var$8 = $this.$boundingBox0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_isAnyLiquid($var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        return $var5 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, $var3, $var6, $var5, $var4, var$8, var$9, var$10, var$11, $ptr);
};
function nms_WorldGenSpikes() {
    nms_WorldGenerator.call(this);
    this.$replaceID = 0;
}
let nms_WorldGenSpikes_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var10, $var9, var$8, var$9, $var6, var$11, $var7, var$13, var$14, var$15, var$16, $var8, $var10_0, $var11, $var12, $var13, var$22, var$23, $var9_0, var$25, var$26, var$27, var$28, var$29, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var9_0 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10_0 = $thread.pop();$var8 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();var$8
        = $thread.pop();$var9 = $thread.pop();$var10 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!($var10 ? 0 : 1))
            return 0;
        $var9 = $par4 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $var9, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 != $this.$replaceID)
            return 0;
        var$8 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$8;
        var$9 = 17;
        $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$8, var$9)))), 31)) + 6 | 0;
        var$11 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$11, var$9)))), 31)) + 1 | 0;
        var$13 = $par3 - $var7 | 0;
        var$14 = $par3 + $var7 | 0;
        var$15 = $par5 - $var7 | 0;
        var$16 = $par5 + $var7 | 0;
        $var7 = $rt_imul($var7, $var7) + 1 | 0;
        $var8 = var$13;
        a: while (true) {
            if ($var8 > var$14) {
                $var10 = $par4 + $var6 | 0;
                b: {
                    c: while (true) {
                        if ($par4 >= $var10)
                            break b;
                        if ($par4 >= 128)
                            break b;
                        $var9 = var$13;
                        while ($var9 <= var$14) {
                            $var10_0 = var$15;
                            while ($var10_0 <= var$16) {
                                $var11 = $var9 - $par3 | 0;
                                $var12 = $var10_0 - $par5 | 0;
                                if (($rt_imul($var11, $var11) + $rt_imul($var12, $var12) | 0) <= $var7)
                                    break c;
                                $var10_0 = $var10_0 + 1 | 0;
                            }
                            $var9 = $var9 + 1 | 0;
                        }
                        $par4 = $par4 + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var11 = nms_Block_obsidian.$blockID;
                    $var6 = 0;
                    $var8 = 2;
                    $ptr = 7;
                    continue main;
                }
                $var13 = new nms_EntityEnderCrystal;
                nms_Entity__init_($var13, $par1World);
                $var13.$preventEntitySpawning = 1;
                var$22 = 2.0;
                var$23 = 2.0;
                $ptr = 3;
                continue main;
            }
            $var9_0 = var$15;
            while ($var9_0 <= var$16) {
                $var10 = $var8 - $par3 | 0;
                $var11 = $var9_0 - $par5 | 0;
                if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) <= $var7)
                    break a;
                $var9_0 = $var9_0 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        $ptr = 4;
        continue main;
    case 3:
        nms_Entity_setSize($var13, var$22, var$23);
        if ($rt_suspending()) {
            break main;
        }
        var$25 = $var13.$height0 / 2.0;
        $var13.$yOffset = var$25;
        $var13.$health0 = 5;
        var$26 = $var13.$rand;
        var$11 = Long_and(Long_add(Long_mul(var$26.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$26.$seed = var$11;
        $var11 = Long_lo(Long_shru(var$11, var$9));
        while (true) {
            $var7 = $var11 % 100000 | 0;
            if ((($var11 - $var7 | 0) + 99999 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul(var$26.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$26.$seed = var$11;
            $var11 = Long_lo(Long_shru(var$11, var$9));
        }
        $var13.$innerRotation = $var7;
        var$27 = $par3 + 0.5;
        var$28 = $var10;
        var$29 = $par5 + 0.5;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$23 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7 * 360.0;
        $var13.$posX = var$27;
        $var13.$prevPosX = var$27;
        $var13.$lastTickPosX = var$27;
        var$28 = var$28 + var$25;
        $var13.$posY = var$28;
        $var13.$prevPosY = var$28;
        $var13.$lastTickPosY = var$28;
        $var13.$posZ = var$29;
        $var13.$prevPosZ = var$29;
        $var13.$lastTickPosZ = var$29;
        $var13.$rotationYaw = var$23;
        $var13.$rotationPitch = 0.0;
        nms_Entity_setPosition($var13, var$27, var$28, var$29);
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $var9_0);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 != $this.$replaceID)
            return 0;
        while (true) {
            $var9_0 = $var9_0 + 1 | 0;
            while ($var9_0 > var$16) {
                $var8 = $var8 + 1 | 0;
                if ($var8 > var$14) {
                    $var10 = $par4 + $var6 | 0;
                    d: {
                        b: while (true) {
                            if ($par4 >= $var10)
                                break d;
                            if ($par4 >= 128)
                                break d;
                            $var9 = var$13;
                            while ($var9 <= var$14) {
                                $var10_0 = var$15;
                                while ($var10_0 <= var$16) {
                                    $var11 = $var9 - $par3 | 0;
                                    $var12 = $var10_0 - $par5 | 0;
                                    if (($rt_imul($var11, $var11) + $rt_imul($var12, $var12) | 0) <= $var7)
                                        break b;
                                    $var10_0 = $var10_0 + 1 | 0;
                                }
                                $var9 = $var9 + 1 | 0;
                            }
                            $par4 = $par4 + 1 | 0;
                        }
                        nms_Block_$callClinit();
                        $var11 = nms_Block_obsidian.$blockID;
                        $var6 = 0;
                        $var8 = 2;
                        $ptr = 7;
                        continue main;
                    }
                    $var13 = new nms_EntityEnderCrystal;
                    nms_Entity__init_($var13, $par1World);
                    $var13.$preventEntitySpawning = 1;
                    var$22 = 2.0;
                    var$23 = 2.0;
                    $ptr = 3;
                    continue main;
                }
                $var9_0 = var$15;
            }
            $var10 = $var8 - $par3 | 0;
            $var11 = $var9_0 - $par5 | 0;
            if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) > $var7)
                continue;
            else
                break;
        }
        continue main;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var13);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        $par4 = nms_Block_bedrock.$blockID;
        var$9 = 0;
        $var9 = 2;
        $ptr = 6;
    case 6:
        nms_World_setBlock($par1World, $par3, $var10, $par5, $par4, var$9, $var9);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 7:
        nms_World_setBlock($par1World, $var9, $par4, $var10_0, $var11, $var6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        e: {
            while (true) {
                $var10_0 = $var10_0 + 1 | 0;
                while ($var10_0 > var$16) {
                    $var9 = $var9 + 1 | 0;
                    while ($var9 > var$14) {
                        $par4 = $par4 + 1 | 0;
                        if ($par4 >= $var10)
                            break e;
                        if ($par4 >= 128)
                            break e;
                        $var9 = var$13;
                    }
                    $var10_0 = var$15;
                }
                $var11 = $var9 - $par3 | 0;
                $var12 = $var10_0 - $par5 | 0;
                if (($rt_imul($var11, $var11) + $rt_imul($var12, $var12) | 0) > $var7)
                    continue;
                else
                    break;
            }
            nms_Block_$callClinit();
            $var11 = nms_Block_obsidian.$blockID;
            $var6 = 0;
            $var8 = 2;
            continue main;
        }
        $var13 = new nms_EntityEnderCrystal;
        nms_Entity__init_($var13, $par1World);
        $var13.$preventEntitySpawning = 1;
        var$22 = 2.0;
        var$23 = 2.0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var10, $var9, var$8, var$9, $var6, var$11, $var7, var$13, var$14, var$15, var$16, $var8, $var10_0, $var11, $var12, $var13, var$22, var$23, $var9_0, var$25, var$26, var$27, var$28, var$29, $ptr);
};
function nms_WorldGenClay() {
    let a = this; nms_WorldGenerator.call(a);
    a.$clayBlockId = 0;
    a.$numberOfBlocks0 = 0;
}
let nms_WorldGenClay_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var9, var$7, $var11, var$9, var$10, $var6, $var8, var$13, var$14, var$15, $var7, $var10, $var12, $var13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var11 = $thread.pop();var$7 = $thread.pop();$var9 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var9].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$7 !== nms_Material_water)
            return 0;
        $var11 = $this.$numberOfBlocks0 - 2 | 0;
        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        var$10 = Long_lo(Long_shru(var$9, 17));
        $var6 = $var11 - 1 | 0;
        if (!($var11 & $var6))
            $var9 = Long_lo(Long_shr(Long_mul(Long_fromInt($var11), Long_fromInt(var$10)), 31));
        else
            while (true) {
                $var9 = var$10 % $var11 | 0;
                if (((var$10 - $var9 | 0) + $var6 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                var$10 = Long_lo(Long_shru(var$9, 17));
            }
        $var6 = $var9 + 2 | 0;
        $var8 = $par3 - $var6 | 0;
        var$13 = $par3 + $var6 | 0;
        var$14 = $par5 - $var6 | 0;
        var$10 = $par5 + $var6 | 0;
        $var6 = $rt_imul($var6, $var6);
        var$15 = $par4 - 1 | 0;
        $var7 = $par4 + 1 | 0;
        while ($var8 <= var$13) {
            $var9 = var$14;
            while ($var9 <= var$10) {
                $var10 = $var8 - $par3 | 0;
                $var11 = $var9 - $par5 | 0;
                if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) <= $var6) {
                    $var12 = var$15;
                    if ($var12 <= $var7) {
                        $ptr = 2;
                        continue main;
                    }
                }
                $var9 = $var9 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        return 1;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, $var12, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        nms_Block_$callClinit();
        if ($var13 != nms_Block_dirt.$blockID && $var13 != nms_Block_blockClay.$blockID) {
            $var12 = $var12 + 1 | 0;
            a: while (true) {
                if ($var12 <= $var7) {
                    continue main;
                }
                while (true) {
                    $var9 = $var9 + 1 | 0;
                    while ($var9 > var$10) {
                        $var8 = $var8 + 1 | 0;
                        if ($var8 > var$13)
                            break a;
                        $var9 = var$14;
                    }
                    $var10 = $var8 - $par3 | 0;
                    $var11 = $var9 - $par5 | 0;
                    if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) > $var6)
                        continue;
                    else
                        break;
                }
                $var12 = var$15;
            }
            return 1;
        }
        $var11 = $this.$clayBlockId;
        $par4 = 0;
        $var10 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $var8, $var12, $var9, $var11, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var12 + 1 | 0;
        b: while (true) {
            if ($var12 <= $var7) {
                $ptr = 2;
                continue main;
            }
            while (true) {
                $var9 = $var9 + 1 | 0;
                while ($var9 > var$10) {
                    $var8 = $var8 + 1 | 0;
                    if ($var8 > var$13)
                        break b;
                    $var9 = var$14;
                }
                $var10 = $var8 - $par3 | 0;
                $var11 = $var9 - $par5 | 0;
                if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) > $var6)
                    continue;
                else
                    break;
            }
            $var12 = var$15;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var9, var$7, $var11, var$9, var$10, $var6, $var8, var$13, var$14, var$15, $var7, $var10, $var12, $var13, $ptr);
};
function nms_WorldGenSand() {
    let a = this; nms_WorldGenerator.call(a);
    a.$sandID = 0;
    a.$radius = 0;
}
let nms_WorldGenSand_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var9, var$7, $var11, var$9, var$10, $var6, $var8, var$13, var$14, var$15, $var7, $var10, $var12, $var13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var11 = $thread.pop();var$7 = $thread.pop();$var9 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if (!$var9) {
            nms_Material_$callClinit();
            var$7 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$7 = nms_Block_blocksList.data[$var9].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$7 !== nms_Material_water)
            return 0;
        $var11 = $this.$radius - 2 | 0;
        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        var$10 = Long_lo(Long_shru(var$9, 17));
        $var6 = $var11 - 1 | 0;
        if (!($var11 & $var6))
            $var9 = Long_lo(Long_shr(Long_mul(Long_fromInt($var11), Long_fromInt(var$10)), 31));
        else
            while (true) {
                $var9 = var$10 % $var11 | 0;
                if (((var$10 - $var9 | 0) + $var6 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                var$10 = Long_lo(Long_shru(var$9, 17));
            }
        $var6 = $var9 + 2 | 0;
        $var8 = $par3 - $var6 | 0;
        var$13 = $par3 + $var6 | 0;
        var$14 = $par5 - $var6 | 0;
        var$10 = $par5 + $var6 | 0;
        $var6 = $rt_imul($var6, $var6);
        var$15 = $par4 - 2 | 0;
        $var7 = $par4 + 2 | 0;
        while ($var8 <= var$13) {
            $var9 = var$14;
            while ($var9 <= var$10) {
                $var10 = $var8 - $par3 | 0;
                $var11 = $var9 - $par5 | 0;
                if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) <= $var6) {
                    $var12 = var$15;
                    if ($var12 <= $var7) {
                        $ptr = 2;
                        continue main;
                    }
                }
                $var9 = $var9 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        return 1;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, $var12, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        nms_Block_$callClinit();
        if ($var13 != nms_Block_dirt.$blockID && $var13 != nms_Block_grass.$blockID) {
            $var12 = $var12 + 1 | 0;
            a: while (true) {
                if ($var12 <= $var7) {
                    continue main;
                }
                while (true) {
                    $var9 = $var9 + 1 | 0;
                    while ($var9 > var$10) {
                        $var8 = $var8 + 1 | 0;
                        if ($var8 > var$13)
                            break a;
                        $var9 = var$14;
                    }
                    $var10 = $var8 - $par3 | 0;
                    $var11 = $var9 - $par5 | 0;
                    if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) > $var6)
                        continue;
                    else
                        break;
                }
                $var12 = var$15;
            }
            return 1;
        }
        $var11 = $this.$sandID;
        $par4 = 0;
        $var10 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $var8, $var12, $var9, $var11, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var12 + 1 | 0;
        b: while (true) {
            if ($var12 <= $var7) {
                $ptr = 2;
                continue main;
            }
            while (true) {
                $var9 = $var9 + 1 | 0;
                while ($var9 > var$10) {
                    $var8 = $var8 + 1 | 0;
                    if ($var8 > var$13)
                        break b;
                    $var9 = var$14;
                }
                $var10 = $var8 - $par3 | 0;
                $var11 = $var9 - $par5 | 0;
                if (($rt_imul($var10, $var10) + $rt_imul($var11, $var11) | 0) > $var6)
                    continue;
                else
                    break;
            }
            $var12 = var$15;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var9, var$7, $var11, var$9, var$10, $var6, $var8, var$13, var$14, var$15, $var7, $var10, $var12, $var13, $ptr);
};
function nms_WorldGenFlowers() {
    nms_WorldGenerator.call(this);
    this.$plantBlockId = 0;
}
let nms_WorldGenFlowers_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, $var7, $var8, $var9, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        var$7 = 17;
        var$8 = Long_fromInt(8);
        var$9 = Long_fromInt(4);
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = $var8 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = $var9 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        var$15 = var$15 ? 0 : 1;
        a: {
            if (var$15) {
                if (!$par1World.$provider.$hasNoSky)
                    break a;
                if ($var8 < 127)
                    break a;
            }
            $var6 = $var6 + 1 | 0;
            if ($var6 >= 64)
                return 1;
            var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var8 = $var8 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var9 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
            var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var9 = $var9 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
            continue main;
        }
        nms_Block_$callClinit();
        var$16 = nms_Block_blocksList.data[$this.$plantBlockId];
        $ptr = 2;
    case 2:
        $tmp = var$16.$canBlockStay($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        if (var$15) {
            var$15 = $this.$plantBlockId;
            var$17 = 0;
            var$18 = 2;
            $ptr = 3;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = $var8 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = $var9 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $var7, $var8, $var9, var$15, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = $var8 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = $var9 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, $var7, $var8, $var9, var$14, var$15, var$16, var$17, var$18, $ptr);
};
function nms_WorldGenBigMushroom() {
    nms_WorldGenerator.call(this);
    this.$mushroomType = 0;
}
let nms_WorldGenBigMushroom__init_ = $this => {
    $this.$doBlockNotify = 0;
    $this.$mushroomType = (-1);
},
nms_WorldGenBigMushroom__init_0 = () => {
    let var_0 = new nms_WorldGenBigMushroom();
    nms_WorldGenBigMushroom__init_(var_0);
    return var_0;
},
nms_WorldGenBigMushroom_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, $var6, var$8, var$9, $var8, $var9, $var7, var$13, $var12, $var13, $var10, $var11, $var12_0, $var11_0, var$20, var$21, $var14, var$23, $var15, var$25, $var13_0, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();$var13_0 = $thread.pop();var$25 = $thread.pop();$var15 = $thread.pop();var$23 = $thread.pop();$var14 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var11_0 = $thread.pop();$var12_0 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6
        = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$6, 17)))), 31));
        var$8 = $this.$mushroomType;
        if (var$8 < 0)
            var$8 = $var6;
        var$9 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        $var8 = Long_lo(Long_shru(var$9, 17));
        while (true) {
            $var9 = $var8 % 3 | 0;
            if ((($var8 - $var9 | 0) + 2 | 0) >= 0)
                break;
            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$9;
            $var8 = Long_lo(Long_shru(var$9, 17));
        }
        $var7 = $var9 + 4 | 0;
        $var8 = 1;
        if ($par4 >= 1) {
            var$13 = $par4 + $var7 | 0;
            if ((var$13 + 1 | 0) < 256) {
                $var12 = ($par4 + 1 | 0) + $var7 | 0;
                $var13 = $par4 + 3 | 0;
                $var9 = $par4;
                a: while (true) {
                    if ($var9 > $var12) {
                        if (!$var8)
                            return 0;
                        $var6 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var10 = 3;
                    if ($var9 <= $var13)
                        $var10 = 0;
                    $var11 = $par3 - $var10 | 0;
                    while ($var11 <= ($par3 + $var10 | 0) && $var8) {
                        $var12_0 = $par5 - $var10 | 0;
                        while ($var12_0 <= ($par5 + $var10 | 0) && $var8) {
                            if ($var9 >= 0 && $var9 < 256)
                                break a;
                            $var8 = 0;
                            $var12_0 = $var12_0 + 1 | 0;
                        }
                        $var11 = $var11 + 1 | 0;
                    }
                    $var9 = $var9 + 1 | 0;
                }
                $ptr = 5;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $var6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        if ($var6 != nms_Block_dirt.$blockID && $var6 != nms_Block_grass.$blockID && $var6 != nms_Block_mycelium.$blockID)
            return 0;
        $var11_0 = var$8 != 1 ? var$13 : var$13 - 3 | 0;
        var$20 = $rt_compare($par4, var$13 - 1 | 0);
        b: while (true) {
            var$21 = $rt_compare($var11_0, var$13);
            if (var$21 > 0) {
                $var8 = 0;
                if ($var8 >= $var7)
                    return 1;
                $var9 = $par4 + $var8 | 0;
                $ptr = 2;
                continue main;
            }
            $var12 = 1;
            if (var$21 < 0)
                $var12 = 2;
            if (!var$8)
                $var12 = 3;
            $var6 = $par3 - $var12 | 0;
            $var13 = $var6;
            while (true) {
                $var8 = $rt_compare($var13, $par3 + $var12 | 0);
                if ($var8 > 0)
                    break;
                $var9 = $par5 - $var12 | 0;
                $var14 = $var9;
                while (true) {
                    var$23 = $rt_compare($var14, $par5 + $var12 | 0);
                    if (var$23 > 0)
                        break;
                    $var15 = 5;
                    var$25 = $rt_compare($var13, $var6);
                    if (!var$25)
                        $var15 = 4;
                    if (!$var8)
                        $var15 = $var15 + 1 | 0;
                    $var10 = $rt_compare($var14, $var9);
                    if (!$var10)
                        $var15 = $var15 + (-3) | 0;
                    if (!var$23)
                        $var15 = $var15 + 3 | 0;
                    c: {
                        if (!(var$8 && var$21 >= 0)) {
                            if (!(var$25 && $var8)) {
                                if (!$var10)
                                    break c;
                                if (!var$23)
                                    break c;
                            }
                            $var11 = $var12 - 1 | 0;
                            $var12_0 = $rt_compare($var13, $par3 - $var11 | 0);
                            if (!$var12_0 && !$var10)
                                $var15 = 1;
                            if (!var$25 && $var14 == ($par5 - $var11 | 0))
                                $var15 = 1;
                            $var13_0 = $rt_compare($var13, $par3 + $var11 | 0);
                            if (!$var13_0 && !$var10)
                                $var15 = 3;
                            if (!$var8 && $var14 == ($par5 - $var11 | 0))
                                $var15 = 3;
                            if (!$var12_0 && !var$23)
                                $var15 = 7;
                            if (!var$25 && $var14 == ($par5 + $var11 | 0))
                                $var15 = 7;
                            if (!$var13_0 && !var$23)
                                $var15 = 9;
                            if (!$var8 && $var14 == ($par5 + $var11 | 0))
                                $var15 = 9;
                        }
                        if ($var15 == 5 && var$21 < 0)
                            $var15 = 0;
                        if ($var15)
                            break b;
                        if (var$20 >= 0)
                            break b;
                    }
                    $var14 = $var14 + 1 | 0;
                }
                $var13 = $var13 + 1 | 0;
            }
            $var11_0 = $var11_0 + 1 | 0;
        }
        var$27 = nms_Block_opaqueCubeLookup.data;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $var9, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (nms_Block_opaqueCubeLookup.data[$var12]) {
            $var8 = $var8 + 1 | 0;
            if ($var8 >= $var7)
                return 1;
            $var9 = $par4 + $var8 | 0;
            continue main;
        }
        $var6 = nms_Block_mushroomCapBrown.$blockID + var$8 | 0;
        $var12 = 10;
        if (!$this.$doBlockNotify) {
            $var13 = 2;
            $ptr = 3;
            continue main;
        }
        $var13 = 3;
        $ptr = 4;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $par3, $var9, $par5, $var6, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= $var7)
            return 1;
        $var9 = $par4 + $var8 | 0;
        $ptr = 2;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par3, $var9, $par5, $var6, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 >= $var7)
            return 1;
        $var9 = $par4 + $var8 | 0;
        $ptr = 2;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var11, $var9, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var13_0 = $tmp;
        if ($var13_0) {
            nms_Block_$callClinit();
            if ($var13_0 != nms_Block_leaves.$blockID)
                $var8 = 0;
        }
        while (true) {
            $var12_0 = $var12_0 + 1 | 0;
            while (!($var12_0 <= ($par5 + $var10 | 0) && $var8)) {
                $var11 = $var11 + 1 | 0;
                while (!($var11 <= ($par3 + $var10 | 0) && $var8)) {
                    $var9 = $var9 + 1 | 0;
                    if ($var9 > $var12) {
                        if (!$var8)
                            return 0;
                        $var6 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var10 = 3;
                    if ($var9 <= $var13)
                        $var10 = 0;
                    $var11 = $par3 - $var10 | 0;
                }
                $var12_0 = $par5 - $var10 | 0;
            }
            if ($var9 >= 0 && $var9 < 256)
                break;
            $var8 = 0;
        }
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var13, $var11_0, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!var$27[$var10]) {
            $var10 = nms_Block_mushroomCapBrown.$blockID + var$8 | 0;
            if (!$this.$doBlockNotify) {
                $var11 = 2;
                $ptr = 7;
                continue main;
            }
            $var11 = 3;
            $ptr = 8;
            continue main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while (true) {
                var$23 = $rt_compare($var14, $par5 + $var12 | 0);
                if (var$23 <= 0)
                    break;
                $var13 = $var13 + 1 | 0;
                while (true) {
                    $var8 = $rt_compare($var13, $par3 + $var12 | 0);
                    if ($var8 <= 0)
                        break;
                    $var11_0 = $var11_0 + 1 | 0;
                    var$21 = $rt_compare($var11_0, var$13);
                    if (var$21 > 0) {
                        $var8 = 0;
                        if ($var8 >= $var7)
                            return 1;
                        $var9 = $par4 + $var8 | 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var12 = 1;
                    if (var$21 < 0)
                        $var12 = 2;
                    if (!var$8)
                        $var12 = 3;
                    $var6 = $par3 - $var12 | 0;
                    $var13 = $var6;
                }
                $var9 = $par5 - $var12 | 0;
                $var14 = $var9;
            }
            $var15 = 5;
            var$25 = $rt_compare($var13, $var6);
            if (!var$25)
                $var15 = 4;
            if (!$var8)
                $var15 = $var15 + 1 | 0;
            $var10 = $rt_compare($var14, $var9);
            if (!$var10)
                $var15 = $var15 + (-3) | 0;
            if (!var$23)
                $var15 = $var15 + 3 | 0;
            if (!(var$8 && var$21 >= 0)) {
                if (!(var$25 && $var8)) {
                    if (!$var10)
                        continue;
                    if (!var$23)
                        continue;
                }
                $var11 = $var12 - 1 | 0;
                $var12_0 = $rt_compare($var13, $par3 - $var11 | 0);
                if (!$var12_0 && !$var10)
                    $var15 = 1;
                if (!var$25 && $var14 == ($par5 - $var11 | 0))
                    $var15 = 1;
                $var13_0 = $rt_compare($var13, $par3 + $var11 | 0);
                if (!$var13_0 && !$var10)
                    $var15 = 3;
                if (!$var8 && $var14 == ($par5 - $var11 | 0))
                    $var15 = 3;
                if (!$var12_0 && !var$23)
                    $var15 = 7;
                if (!var$25 && $var14 == ($par5 + $var11 | 0))
                    $var15 = 7;
                if (!$var13_0 && !var$23)
                    $var15 = 9;
                if (!$var8 && $var14 == ($par5 + $var11 | 0))
                    $var15 = 9;
            }
            if ($var15 == 5 && var$21 < 0)
                $var15 = 0;
            if ($var15)
                break;
            if (var$20 < 0)
                continue;
            else
                break;
        }
        var$27 = nms_Block_opaqueCubeLookup.data;
        continue main;
    case 7:
        nms_World_setBlock($par1World, $var13, $var11_0, $var14, $var10, $var15, $var11);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while (true) {
                var$23 = $rt_compare($var14, $par5 + $var12 | 0);
                if (var$23 <= 0)
                    break;
                $var13 = $var13 + 1 | 0;
                while (true) {
                    $var8 = $rt_compare($var13, $par3 + $var12 | 0);
                    if ($var8 <= 0)
                        break;
                    $var11_0 = $var11_0 + 1 | 0;
                    var$21 = $rt_compare($var11_0, var$13);
                    if (var$21 > 0) {
                        $var8 = 0;
                        if ($var8 >= $var7)
                            return 1;
                        $var9 = $par4 + $var8 | 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var12 = 1;
                    if (var$21 < 0)
                        $var12 = 2;
                    if (!var$8)
                        $var12 = 3;
                    $var6 = $par3 - $var12 | 0;
                    $var13 = $var6;
                }
                $var9 = $par5 - $var12 | 0;
                $var14 = $var9;
            }
            $var15 = 5;
            var$25 = $rt_compare($var13, $var6);
            if (!var$25)
                $var15 = 4;
            if (!$var8)
                $var15 = $var15 + 1 | 0;
            $var10 = $rt_compare($var14, $var9);
            if (!$var10)
                $var15 = $var15 + (-3) | 0;
            if (!var$23)
                $var15 = $var15 + 3 | 0;
            if (!(var$8 && var$21 >= 0)) {
                if (!(var$25 && $var8)) {
                    if (!$var10)
                        continue;
                    if (!var$23)
                        continue;
                }
                $var11 = $var12 - 1 | 0;
                $var12_0 = $rt_compare($var13, $par3 - $var11 | 0);
                if (!$var12_0 && !$var10)
                    $var15 = 1;
                if (!var$25 && $var14 == ($par5 - $var11 | 0))
                    $var15 = 1;
                $var13_0 = $rt_compare($var13, $par3 + $var11 | 0);
                if (!$var13_0 && !$var10)
                    $var15 = 3;
                if (!$var8 && $var14 == ($par5 - $var11 | 0))
                    $var15 = 3;
                if (!$var12_0 && !var$23)
                    $var15 = 7;
                if (!var$25 && $var14 == ($par5 + $var11 | 0))
                    $var15 = 7;
                if (!$var13_0 && !var$23)
                    $var15 = 9;
                if (!$var8 && $var14 == ($par5 + $var11 | 0))
                    $var15 = 9;
            }
            if ($var15 == 5 && var$21 < 0)
                $var15 = 0;
            if ($var15)
                break;
            if (var$20 < 0)
                continue;
            else
                break;
        }
        var$27 = nms_Block_opaqueCubeLookup.data;
        $ptr = 6;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $var13, $var11_0, $var14, $var10, $var15, $var11);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var14 = $var14 + 1 | 0;
            while (true) {
                var$23 = $rt_compare($var14, $par5 + $var12 | 0);
                if (var$23 <= 0)
                    break;
                $var13 = $var13 + 1 | 0;
                while (true) {
                    $var8 = $rt_compare($var13, $par3 + $var12 | 0);
                    if ($var8 <= 0)
                        break;
                    $var11_0 = $var11_0 + 1 | 0;
                    var$21 = $rt_compare($var11_0, var$13);
                    if (var$21 > 0) {
                        $var8 = 0;
                        if ($var8 >= $var7)
                            return 1;
                        $var9 = $par4 + $var8 | 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var12 = 1;
                    if (var$21 < 0)
                        $var12 = 2;
                    if (!var$8)
                        $var12 = 3;
                    $var6 = $par3 - $var12 | 0;
                    $var13 = $var6;
                }
                $var9 = $par5 - $var12 | 0;
                $var14 = $var9;
            }
            $var15 = 5;
            var$25 = $rt_compare($var13, $var6);
            if (!var$25)
                $var15 = 4;
            if (!$var8)
                $var15 = $var15 + 1 | 0;
            $var10 = $rt_compare($var14, $var9);
            if (!$var10)
                $var15 = $var15 + (-3) | 0;
            if (!var$23)
                $var15 = $var15 + 3 | 0;
            if (!(var$8 && var$21 >= 0)) {
                if (!(var$25 && $var8)) {
                    if (!$var10)
                        continue;
                    if (!var$23)
                        continue;
                }
                $var11 = $var12 - 1 | 0;
                $var12_0 = $rt_compare($var13, $par3 - $var11 | 0);
                if (!$var12_0 && !$var10)
                    $var15 = 1;
                if (!var$25 && $var14 == ($par5 - $var11 | 0))
                    $var15 = 1;
                $var13_0 = $rt_compare($var13, $par3 + $var11 | 0);
                if (!$var13_0 && !$var10)
                    $var15 = 3;
                if (!$var8 && $var14 == ($par5 - $var11 | 0))
                    $var15 = 3;
                if (!$var12_0 && !var$23)
                    $var15 = 7;
                if (!var$25 && $var14 == ($par5 + $var11 | 0))
                    $var15 = 7;
                if (!$var13_0 && !var$23)
                    $var15 = 9;
                if (!$var8 && $var14 == ($par5 + $var11 | 0))
                    $var15 = 9;
            }
            if ($var15 == 5 && var$21 < 0)
                $var15 = 0;
            if ($var15)
                break;
            if (var$20 < 0)
                continue;
            else
                break;
        }
        var$27 = nms_Block_opaqueCubeLookup.data;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, $var6, var$8, var$9, $var8, $var9, $var7, var$13, $var12, $var13, $var10, $var11, $var12_0, $var11_0, var$20, var$21, $var14, var$23, $var15, var$25, $var13_0, var$27, $ptr);
},
nms_WorldGenReed = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenReed__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenReed__init_0 = () => {
    let var_0 = new nms_WorldGenReed();
    nms_WorldGenReed__init_(var_0);
    return var_0;
},
nms_WorldGenReed_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, var$14, $var9, var$16, var$17, $var10, var$19, $var11, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();var$19 = $thread.pop();$var10 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        var$7 = 17;
        var$8 = $par4 - 1 | 0;
        var$9 = 2;
        var$10 = Long_fromInt(4);
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var7, $par4, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (var$12 ? 0 : 1) {
            var$12 = $var7 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, var$12, var$8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (!var$12) {
            nms_Material_$callClinit();
            var$16 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$16 = nms_Block_blocksList.data[var$12].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$16 !== nms_Material_water) {
            var$12 = $var7 + 1 | 0;
            $ptr = 3;
            continue main;
        }
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$12 = Long_lo(Long_shru(var$14, var$7));
        while (true) {
            var$17 = var$12 % 3 | 0;
            if (((var$12 - var$17 | 0) + var$9 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, var$7));
        }
        $var10 = var$17 + 1 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$17 = Long_lo(Long_shru(var$14, var$7));
        var$19 = $var10 - 1 | 0;
        if (!($var10 & var$19))
            var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10), Long_fromInt(var$17)), 31));
        else
            while (true) {
                var$12 = var$17 % $var10 | 0;
                if (((var$17 - var$12 | 0) + var$19 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$14;
                var$17 = Long_lo(Long_shru(var$14, var$7));
            }
        $var10 = 2 + var$12 | 0;
        $var11 = 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_reed;
            var$19 = $par4 + $var11 | 0;
            $ptr = 6;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$12, var$8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (!var$12)
            var$16 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$16 = nms_Block_blocksList.data[var$12].$blockMaterial;
        }
        if (var$16 !== nms_Material_water) {
            var$12 = $var9 - 1 | 0;
            $ptr = 4;
            continue main;
        }
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$12 = Long_lo(Long_shru(var$14, var$7));
        while (true) {
            var$17 = var$12 % 3 | 0;
            if (((var$12 - var$17 | 0) + var$9 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, var$7));
        }
        $var10 = var$17 + 1 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$17 = Long_lo(Long_shru(var$14, var$7));
        var$19 = $var10 - 1 | 0;
        if (!($var10 & var$19))
            var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10), Long_fromInt(var$17)), 31));
        else
            while (true) {
                var$12 = var$17 % $var10 | 0;
                if (((var$17 - var$12 | 0) + var$19 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$14;
                var$17 = Long_lo(Long_shru(var$14, var$7));
            }
        $var10 = 2 + var$12 | 0;
        $var11 = 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_reed;
            var$19 = $par4 + $var11 | 0;
            $ptr = 6;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $var7, var$8, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (!var$12)
            var$16 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$16 = nms_Block_blocksList.data[var$12].$blockMaterial;
        }
        if (var$16 !== nms_Material_water) {
            var$12 = $var9 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$12 = Long_lo(Long_shru(var$14, var$7));
        while (true) {
            var$17 = var$12 % 3 | 0;
            if (((var$12 - var$17 | 0) + var$9 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, var$7));
        }
        $var10 = var$17 + 1 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$17 = Long_lo(Long_shru(var$14, var$7));
        var$19 = $var10 - 1 | 0;
        if (!($var10 & var$19))
            var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10), Long_fromInt(var$17)), 31));
        else
            while (true) {
                var$12 = var$17 % $var10 | 0;
                if (((var$17 - var$12 | 0) + var$19 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$14;
                var$17 = Long_lo(Long_shru(var$14, var$7));
            }
        $var10 = 2 + var$12 | 0;
        $var11 = 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_reed;
            var$19 = $par4 + $var11 | 0;
            $ptr = 6;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var7, var$8, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (!var$12)
            var$16 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            var$16 = nms_Block_blocksList.data[var$12].$blockMaterial;
        }
        if (var$16 === nms_Material_water) {
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, var$7));
            while (true) {
                var$17 = var$12 % 3 | 0;
                if (((var$12 - var$17 | 0) + var$9 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$14;
                var$12 = Long_lo(Long_shru(var$14, var$7));
            }
            $var10 = var$17 + 1 | 0;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$17 = Long_lo(Long_shru(var$14, var$7));
            var$19 = $var10 - 1 | 0;
            if (!($var10 & var$19))
                var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$12 = var$17 % $var10 | 0;
                    if (((var$17 - var$12 | 0) + var$19 | 0) >= 0)
                        break;
                    var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$14;
                    var$17 = Long_lo(Long_shru(var$14, var$7));
                }
            $var10 = 2 + var$12 | 0;
            $var11 = 0;
            if ($var11 < $var10) {
                nms_Block_$callClinit();
                var$21 = nms_Block_reed;
                var$19 = $par4 + $var11 | 0;
                $ptr = 6;
                continue main;
            }
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 6:
        $tmp = var$21.$canBlockStay($par1World, $var7, var$19, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (var$12) {
            var$22 = nms_Block_reed.$blockID;
            var$17 = 0;
            var$12 = 2;
            $ptr = 7;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_reed;
            var$19 = $par4 + $var11 | 0;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 7:
        nms_World_setBlock($par1World, $var7, var$19, $var9, var$22, var$17, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_reed;
            var$19 = $par4 + $var11 | 0;
            $ptr = 6;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 20)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, var$14, $var9, var$16, var$17, $var10, var$19, $var11, var$21, var$22, $ptr);
},
nms_WorldGenCactus = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenCactus__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenCactus__init_0 = () => {
    let var_0 = new nms_WorldGenCactus();
    nms_WorldGenCactus__init_(var_0);
    return var_0;
},
nms_WorldGenCactus_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var8, var$15, var$16, $var9, var$18, $var10, $var11, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();$var9 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        var$7 = 17;
        var$8 = 2;
        var$9 = Long_fromInt(8);
        var$10 = Long_fromInt(4);
        if ($var6 >= 10)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var8 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        var$16 = $par5 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        $var9 = var$16 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (var$12 ? 0 : 1) {
            var$15 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$15;
            var$12 = Long_lo(Long_shru(var$15, var$7));
            while (true) {
                var$16 = var$12 % 3 | 0;
                if (((var$12 - var$16 | 0) + var$8 | 0) >= 0)
                    break;
                var$15 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$15;
                var$12 = Long_lo(Long_shru(var$15, var$7));
            }
            var$18 = var$16 + 1 | 0;
            var$15 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$15;
            $var10 = Long_lo(Long_shru(var$15, var$7));
            var$12 = var$18 - 1 | 0;
            if (!(var$18 & var$12))
                var$16 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$18), Long_fromInt($var10)), 31));
            else
                while (true) {
                    var$16 = $var10 % var$18 | 0;
                    if ((($var10 - var$16 | 0) + var$12 | 0) >= 0)
                        break;
                    var$15 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$15;
                    $var10 = Long_lo(Long_shru(var$15, var$7));
                }
            $var10 = 1 + var$16 | 0;
            $var11 = 0;
            if ($var11 < $var10) {
                nms_Block_$callClinit();
                var$21 = nms_Block_cactus;
                var$18 = $var8 + $var11 | 0;
                $ptr = 2;
                continue main;
            }
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var8 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        var$16 = $par5 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        $var9 = var$16 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        continue main;
    case 2:
        $tmp = var$21.$canBlockStay($par1World, $var7, var$18, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (var$12) {
            var$16 = nms_Block_cactus.$blockID;
            var$22 = 0;
            var$12 = 2;
            $ptr = 3;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_cactus;
            var$18 = $var8 + $var11 | 0;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var8 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        var$16 = $par5 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        $var9 = var$16 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $var7, var$18, $var9, var$16, var$22, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $var11 + 1 | 0;
        if ($var11 < $var10) {
            nms_Block_$callClinit();
            var$21 = nms_Block_cactus;
            var$18 = $var8 + $var11 | 0;
            $ptr = 2;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10)
            return 1;
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par3 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var7 = var$12 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        var$12 = $par4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var8 = var$12 - Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        var$16 = $par5 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$15;
        $var9 = var$16 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$15, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var8, var$15, var$16, $var9, var$18, $var10, $var11, var$21, var$22, $ptr);
},
nms_WorldGenWaterlily = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenWaterlily__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenWaterlily__init_0 = () => {
    let var_0 = new nms_WorldGenWaterlily();
    nms_WorldGenWaterlily__init_(var_0);
    return var_0;
},
nms_WorldGenWaterlily_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var8, var$15, $var9, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var9 = $thread.pop();var$15 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        var$7 = 17;
        var$8 = Long_fromInt(8);
        var$9 = Long_fromInt(4);
        if ($var6 >= 10)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$15 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = var$15 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11 ? 0 : 1) {
            nms_Block_$callClinit();
            var$17 = nms_Block_waterlily;
            $ptr = 2;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$15 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = var$15 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        continue main;
    case 2:
        $tmp = var$17.$canPlaceBlockAt($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11) {
            var$15 = nms_Block_waterlily.$blockID;
            var$18 = 0;
            var$11 = 2;
            $ptr = 3;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$15 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = var$15 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $var7, $var8, $var9, var$15, var$18, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 10)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$15 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$12, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var9 = var$15 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var8, var$15, $var9, var$17, var$18, $ptr);
},
jm_BitLevel = $rt_classWithoutFields(),
jm_BitLevel__init_ = $this => {
    return;
},
jm_BitLevel__init_0 = () => {
    let var_0 = new jm_BitLevel();
    jm_BitLevel__init_(var_0);
    return var_0;
},
jm_BitLevel_bitLength = $val => {
    let $i, var$3, $bLength, var$5, var$6, $highDigit;
    $i = $val.$sign1;
    if (!$i)
        return 0;
    var$3 = $val.$numberLength;
    $bLength = var$3 << 5;
    var$5 = $val.$digits.data;
    var$6 = var$3 - 1 | 0;
    $highDigit = var$5[var$6];
    if ($i < 0) {
        if ($val.$firstNonzeroDigit == (-2)) {
            if (!$i)
                $i = (-1);
            else {
                $i = 0;
                while (!var$5[$i]) {
                    $i = $i + 1 | 0;
                }
            }
            $val.$firstNonzeroDigit = $i;
        }
        if ($val.$firstNonzeroDigit == var$6)
            $highDigit = $highDigit + (-1) | 0;
    }
    return $bLength - jl_Integer_numberOfLeadingZeros($highDigit) | 0;
},
jm_BitLevel_nonZeroDroppedBits = ($numberOfBits, $digits) => {
    let $intCount, $bitCount, $i;
    $intCount = $numberOfBits >> 5;
    $bitCount = $numberOfBits & 31;
    $i = 0;
    while (true) {
        $numberOfBits = $rt_compare($i, $intCount);
        if ($numberOfBits >= 0)
            break;
        if ($digits.data[$i])
            break;
        $i = $i + 1 | 0;
    }
    return !$numberOfBits && !($digits.data[$i] << (32 - $bitCount | 0)) ? 0 : 1;
},
jm_BitLevel_shiftLeft = ($result, $source, $intCount, $count) => {
    let var$5, $rightShiftCount, $i, var$8, $i_0, var$10;
    a: {
        if (!$count)
            jl_System_fastArraycopy($source, 0, $result, $intCount, $result.data.length - $intCount | 0);
        else {
            var$5 = $result.data;
            $rightShiftCount = 32 - $count | 0;
            $i = var$5.length - 1 | 0;
            var$5[$i] = 0;
            while (true) {
                if ($i <= $intCount)
                    break a;
                var$8 = $source.data;
                $i_0 = var$5[$i];
                var$10 = ($i - $intCount | 0) - 1 | 0;
                var$5[$i] = $i_0 | (var$8[var$10] >>> $rightShiftCount | 0);
                var$5[$i - 1 | 0] = var$8[var$10] << $count;
                $i = $i + (-1) | 0;
            }
        }
    }
    $i_0 = 0;
    while ($i_0 < $intCount) {
        $result.data[$i_0] = 0;
        $i_0 = $i_0 + 1 | 0;
    }
},
jm_BitLevel_shiftRight = ($source, $count) => {
    let $intCount, $resLength, var$5, $resDigits, var$7, $i, var$9, var$10, var$11, $result;
    $intCount = $count >> 5;
    $count = $count & 31;
    $resLength = $source.$numberLength;
    if ($intCount >= $resLength)
        return $source.$sign1 >= 0 ? jm_BigInteger_ZERO : jm_BigInteger_MINUS_ONE;
    a: {
        $resLength = $resLength - $intCount | 0;
        var$5 = $resLength + 1 | 0;
        $resDigits = $rt_createIntArray(var$5);
        jm_BitLevel_shiftRight0($resDigits, $resLength, $source.$digits, $intCount, $count);
        var$7 = $source.$sign1;
        if (var$7 >= 0)
            var$5 = $resLength;
        else {
            $i = 0;
            while (true) {
                var$9 = $rt_compare($i, $intCount);
                if (var$9 >= 0)
                    break;
                if ($source.$digits.data[$i])
                    break;
                $i = $i + 1 | 0;
            }
            if (var$9 >= 0) {
                if ($count <= 0) {
                    var$5 = $resLength;
                    break a;
                }
                if (!($source.$digits.data[$i] << (32 - $count | 0))) {
                    var$5 = $resLength;
                    break a;
                }
            }
            var$10 = $resDigits.data;
            var$11 = 0;
            while (true) {
                $i = $rt_compare(var$11, $resLength);
                if ($i >= 0)
                    break;
                if (var$10[var$11] != (-1))
                    break;
                var$10[var$11] = 0;
                var$11 = var$11 + 1 | 0;
            }
            if ($i)
                var$5 = $resLength;
            var$10[var$11] = var$10[var$11] + 1 | 0;
        }
    }
    $result = new jm_BigInteger;
    $result.$firstNonzeroDigit = (-2);
    $result.$sign1 = var$7;
    $result.$numberLength = var$5;
    $result.$digits = $resDigits;
    jm_BigInteger_cutOffLeadingZeroes($result);
    return $result;
},
jm_BitLevel_shiftRight0 = ($result, $resultLen, $source, $intCount, $count) => {
    let $allZero, $i, var$8, $leftShiftCount, var$10, var$11;
    $allZero = 1;
    $i = 0;
    while ($i < $intCount) {
        $allZero = $allZero & ($source.data[$i] ? 0 : 1);
        $i = $i + 1 | 0;
    }
    if (!$count)
        jl_System_fastArraycopy($source, $intCount, $result, 0, $resultLen);
    else {
        var$8 = $source.data;
        $leftShiftCount = 32 - $count | 0;
        $allZero = $allZero & (var$8[$i] << $leftShiftCount ? 0 : 1);
        var$10 = 0;
        var$11 = $resultLen - 1 | 0;
        while (var$10 < var$11) {
            $source = $result.data;
            $resultLen = var$10 + $intCount | 0;
            $source[var$10] = (var$8[$resultLen] >>> $count | 0) | var$8[$resultLen + 1 | 0] << $leftShiftCount;
            var$10 = var$10 + 1 | 0;
        }
        $result.data[var$10] = var$8[var$10 + $intCount | 0] >>> $count | 0;
    }
    return $allZero;
},
jm_Elementary = $rt_classWithoutFields(),
jm_Elementary__init_ = $this => {
    return;
},
jm_Elementary__init_0 = () => {
    let var_0 = new jm_Elementary();
    jm_Elementary__init_(var_0);
    return var_0;
},
jm_Elementary_compareArrays = ($a, $b, $size) => {
    let $i, var$5;
    $i = $size - 1 | 0;
    while ($i >= 0) {
        var$5 = $b.data;
        if ($a.data[$i] != var$5[$i])
            break;
        $i = $i + (-1) | 0;
    }
    if ($i < 0)
        $size = 0;
    else {
        $b = $b.data;
        $size = Long_ge(Long_and(Long_fromInt($a.data[$i]), Long_create(4294967295, 0)), Long_and(Long_fromInt($b[$i]), Long_create(4294967295, 0))) ? 1 : (-1);
    }
    return $size;
},
jm_Elementary_add = ($op1, $op2) => {
    let $op1Sign, $op2Sign, $op1Len, $op2Len, $a, $b, $res, $valueLo, $valueHi, var$12, var$13, $resDigits, $cmp, $res_0;
    $op1Sign = $op1.$sign1;
    $op2Sign = $op2.$sign1;
    if (!$op1Sign)
        return $op2;
    if (!$op2Sign)
        return $op1;
    $op1Len = $op1.$numberLength;
    $op2Len = $op2.$numberLength;
    if (($op1Len + $op2Len | 0) == 2) {
        $a = Long_and(Long_fromInt($op1.$digits.data[0]), Long_create(4294967295, 0));
        $b = Long_and(Long_fromInt($op2.$digits.data[0]), Long_create(4294967295, 0));
        if ($op1Sign != $op2Sign)
            return jm_BigInteger_valueOf($op1Sign >= 0 ? Long_sub($a, $b) : Long_sub($b, $a));
        $res = Long_add($a, $b);
        $valueLo = Long_lo($res);
        $valueHi = Long_hi($res);
        if (!$valueHi) {
            $op1 = new jm_BigInteger;
            $op1.$firstNonzeroDigit = (-2);
            $op1.$sign1 = $op1Sign;
            $op1.$numberLength = 1;
            var$12 = $rt_createIntArray(1);
            var$12.data[0] = $valueLo;
            $op1.$digits = var$12;
        } else {
            $op1 = new jm_BigInteger;
            var$12 = $rt_createIntArrayFromData([$valueLo, $valueHi]);
            $op1.$firstNonzeroDigit = (-2);
            $op1.$sign1 = $op1Sign;
            $op1.$numberLength = 2;
            $op1.$digits = var$12;
        }
        return $op1;
    }
    if ($op1Sign == $op2Sign) {
        if ($op1Len < $op2Len) {
            var$12 = $op2.$digits;
            var$13 = $op1.$digits;
            $resDigits = $rt_createIntArray($op2Len + 1 | 0);
            jm_Elementary_add0($resDigits, var$12, $op2Len, var$13, $op1Len);
        } else {
            var$13 = $op1.$digits;
            var$12 = $op2.$digits;
            $resDigits = $rt_createIntArray($op1Len + 1 | 0);
            jm_Elementary_add0($resDigits, var$13, $op1Len, var$12, $op2Len);
        }
    } else {
        $cmp = $rt_compare($op1Len, $op2Len);
        $cmp = !$cmp ? jm_Elementary_compareArrays($op1.$digits, $op2.$digits, $op1Len) : $cmp <= 0 ? (-1) : 1;
        if (!$cmp)
            return jm_BigInteger_ZERO;
        if ($cmp != 1) {
            var$12 = $op2.$digits;
            var$13 = $op1.$digits;
            $resDigits = $rt_createIntArray($op2Len);
            jm_Elementary_subtract0($resDigits, var$12, $op2Len, var$13, $op1Len);
            $op1Sign = $op2Sign;
        } else {
            var$12 = $op1.$digits;
            var$13 = $op2.$digits;
            $resDigits = $rt_createIntArray($op1Len);
            jm_Elementary_subtract0($resDigits, var$12, $op1Len, var$13, $op2Len);
        }
    }
    var$12 = $resDigits.data;
    $res_0 = new jm_BigInteger;
    $op2Sign = var$12.length;
    $res_0.$firstNonzeroDigit = (-2);
    $res_0.$sign1 = $op1Sign;
    $res_0.$numberLength = $op2Sign;
    $res_0.$digits = $resDigits;
    jm_BigInteger_cutOffLeadingZeroes($res_0);
    return $res_0;
},
jm_Elementary_add0 = ($res, $a, $aSize, $b, $bSize) => {
    let var$6, $carry, var$8, $i;
    var$6 = $res.data;
    $res = $b.data;
    $a = $a.data;
    $carry = Long_add(Long_and(Long_fromInt($a[0]), Long_create(4294967295, 0)), Long_and(Long_fromInt($res[0]), Long_create(4294967295, 0)));
    var$6[0] = Long_lo($carry);
    var$8 = Long_shr($carry, 32);
    if ($aSize < $bSize) {
        $i = 1;
        while ($i < $aSize) {
            $carry = Long_add(var$8, Long_add(Long_and(Long_fromInt($a[$i]), Long_create(4294967295, 0)), Long_and(Long_fromInt($res[$i]), Long_create(4294967295, 0))));
            var$6[$i] = Long_lo($carry);
            var$8 = Long_shr($carry, 32);
            $i = $i + 1 | 0;
        }
        while ($i < $bSize) {
            $carry = Long_add(var$8, Long_and(Long_fromInt($res[$i]), Long_create(4294967295, 0)));
            var$6[$i] = Long_lo($carry);
            var$8 = Long_shr($carry, 32);
            $i = $i + 1 | 0;
        }
    } else {
        $i = 1;
        while ($i < $bSize) {
            $carry = Long_add(var$8, Long_add(Long_and(Long_fromInt($a[$i]), Long_create(4294967295, 0)), Long_and(Long_fromInt($res[$i]), Long_create(4294967295, 0))));
            var$6[$i] = Long_lo($carry);
            var$8 = Long_shr($carry, 32);
            $i = $i + 1 | 0;
        }
        while ($i < $aSize) {
            $carry = Long_add(var$8, Long_and(Long_fromInt($a[$i]), Long_create(4294967295, 0)));
            var$6[$i] = Long_lo($carry);
            var$8 = Long_shr($carry, 32);
            $i = $i + 1 | 0;
        }
    }
    if (Long_ne(var$8, Long_ZERO))
        var$6[$i] = Long_lo(var$8);
},
jm_Elementary_subtract = ($op1, $op2) => {
    let $op1Sign, $op2Sign, var$5, $op1Len, $op2Len, $a, $b, $resSign, $cmp, var$12, $resDigits, $res;
    $op1Sign = $op1.$sign1;
    $op2Sign = $op2.$sign1;
    if (!$op2Sign)
        return $op1;
    if (!$op1Sign) {
        if (!$op2Sign)
            $op1 = $op2;
        else {
            $op1 = new jm_BigInteger;
            $op1Sign =  -$op2Sign | 0;
            $op2Sign = $op2.$numberLength;
            var$5 = $op2.$digits;
            $op1.$firstNonzeroDigit = (-2);
            $op1.$sign1 = $op1Sign;
            $op1.$numberLength = $op2Sign;
            $op1.$digits = var$5;
        }
        return $op1;
    }
    $op1Len = $op1.$numberLength;
    $op2Len = $op2.$numberLength;
    if (($op1Len + $op2Len | 0) == 2) {
        $a = Long_and(Long_fromInt($op1.$digits.data[0]), Long_create(4294967295, 0));
        $b = Long_and(Long_fromInt($op2.$digits.data[0]), Long_create(4294967295, 0));
        if ($op1Sign < 0)
            $a = Long_neg($a);
        if ($op2Sign < 0)
            $b = Long_neg($b);
        return jm_BigInteger_valueOf(Long_sub($a, $b));
    }
    $resSign = $rt_compare($op1Len, $op2Len);
    $cmp = !$resSign ? jm_Elementary_compareArrays($op1.$digits, $op2.$digits, $op1Len) : $resSign <= 0 ? (-1) : 1;
    if ($cmp == (-1)) {
        $resSign =  -$op2Sign | 0;
        if ($op1Sign == $op2Sign) {
            var$5 = $op2.$digits;
            var$12 = $op1.$digits;
            $resDigits = $rt_createIntArray($op2Len);
            jm_Elementary_subtract0($resDigits, var$5, $op2Len, var$12, $op1Len);
        } else {
            var$5 = $op2.$digits;
            var$12 = $op1.$digits;
            $resDigits = $rt_createIntArray($op2Len + 1 | 0);
            jm_Elementary_add0($resDigits, var$5, $op2Len, var$12, $op1Len);
        }
    } else if ($op1Sign != $op2Sign) {
        var$5 = $op1.$digits;
        var$12 = $op2.$digits;
        $resDigits = $rt_createIntArray($op1Len + 1 | 0);
        jm_Elementary_add0($resDigits, var$5, $op1Len, var$12, $op2Len);
        $resSign = $op1Sign;
    } else {
        if (!$cmp)
            return jm_BigInteger_ZERO;
        var$5 = $op1.$digits;
        var$12 = $op2.$digits;
        $resDigits = $rt_createIntArray($op1Len);
        jm_Elementary_subtract0($resDigits, var$5, $op1Len, var$12, $op2Len);
        $resSign = $op1Sign;
    }
    var$5 = $resDigits.data;
    $res = new jm_BigInteger;
    $op1Sign = var$5.length;
    $res.$firstNonzeroDigit = (-2);
    $res.$sign1 = $resSign;
    $res.$numberLength = $op1Sign;
    $res.$digits = $resDigits;
    jm_BigInteger_cutOffLeadingZeroes($res);
    return $res;
},
jm_Elementary_subtract0 = ($res, $a, $aSize, $b, $bSize) => {
    let $borrow, $i, var$8, var$9, var$10, var$11;
    $borrow = Long_ZERO;
    $i = 0;
    while ($i < $bSize) {
        var$8 = $res.data;
        var$9 = $b.data;
        var$10 = Long_add($borrow, Long_sub(Long_and(Long_fromInt($a.data[$i]), Long_create(4294967295, 0)), Long_and(Long_fromInt(var$9[$i]), Long_create(4294967295, 0))));
        var$8[$i] = Long_lo(var$10);
        $borrow = Long_shr(var$10, 32);
        $i = $i + 1 | 0;
    }
    while ($i < $aSize) {
        var$11 = $res.data;
        var$10 = Long_add($borrow, Long_and(Long_fromInt($a.data[$i]), Long_create(4294967295, 0)));
        var$11[$i] = Long_lo(var$10);
        $borrow = Long_shr(var$10, 32);
        $i = $i + 1 | 0;
    }
},
jm_Division = $rt_classWithoutFields(),
jm_Division__init_ = $this => {
    return;
},
jm_Division__init_0 = () => {
    let var_0 = new jm_Division();
    jm_Division__init_(var_0);
    return var_0;
},
jm_Division_divide = ($quot, $quotLength, $a, $j, $b, $bLength) => {
    let var$7, $normA, $normB, $borrow, $divisorShift, $firstDivisorDigit, $i, var$14, var$15, var$16, $res, $rem, $rOverflowed, $product, $carry, $longR, $k;
    var$7 = $b.data;
    $normA = $rt_createIntArray($j + 1 | 0);
    $normB = $rt_createIntArray($bLength + 1 | 0);
    $borrow = $bLength - 1 | 0;
    $divisorShift = jl_Integer_numberOfLeadingZeros(var$7[$borrow]);
    if ($divisorShift) {
        jm_BitLevel_shiftLeft($normB, $b, 0, $divisorShift);
        jm_BitLevel_shiftLeft($normA, $a, 0, $divisorShift);
    } else {
        jl_System_fastArraycopy($a, 0, $normA, 0, $j);
        jl_System_fastArraycopy($b, 0, $normB, 0, $bLength);
    }
    var$7 = $normB.data;
    $b = $normA.data;
    $firstDivisorDigit = var$7[$borrow];
    $i = $quotLength - 1 | 0;
    var$14 = $bLength - 2 | 0;
    var$15 = Long_and(Long_fromInt($firstDivisorDigit), Long_create(4294967295, 0));
    while ($i >= 0) {
        a: {
            if ($b[$j] == $firstDivisorDigit)
                var$16 = (-1);
            else {
                $res = jm_Division_divideLongByInt(Long_add(Long_shl(Long_and(Long_fromInt($b[$j]), Long_create(4294967295, 0)), 32), Long_and(Long_fromInt($b[$j - 1 | 0]), Long_create(4294967295, 0))), $firstDivisorDigit);
                var$16 = Long_lo($res);
                $rem = Long_hi($res);
                if (var$16) {
                    $rOverflowed = 0;
                    var$16 = var$16 + 1 | 0;
                    while (true) {
                        var$16 = var$16 + (-1) | 0;
                        if ($rOverflowed)
                            break;
                        $product = Long_mul(Long_and(Long_fromInt(var$16), Long_create(4294967295, 0)), Long_and(Long_fromInt(var$7[var$14]), Long_create(4294967295, 0)));
                        $carry = Long_fromInt($rem);
                        $res = Long_add(Long_shl($carry, 32), Long_and(Long_fromInt($b[$j - 2 | 0]), Long_create(4294967295, 0)));
                        $longR = Long_add(Long_and($carry, Long_create(4294967295, 0)), var$15);
                        if (jl_Integer_numberOfLeadingZeros(Long_hi($longR)) >= 32)
                            $rem = Long_lo($longR);
                        else
                            $rOverflowed = 1;
                        if (Long_le(Long_xor($product, Long_create(0, 2147483648)), Long_xor($res, Long_create(0, 2147483648))))
                            break a;
                    }
                }
            }
        }
        if (var$16) {
            $quotLength = $j - $bLength | 0;
            if (jm_Division_multiplyAndSubtract($normA, $quotLength, $normB, $bLength, var$16)) {
                var$16 = var$16 + (-1) | 0;
                $carry = Long_ZERO;
                $k = 0;
                while ($k < $bLength) {
                    $borrow = $quotLength + $k | 0;
                    $carry = Long_add($carry, Long_add(Long_and(Long_fromInt($b[$borrow]), Long_create(4294967295, 0)), Long_and(Long_fromInt(var$7[$k]), Long_create(4294967295, 0))));
                    $b[$borrow] = Long_lo($carry);
                    $carry = Long_shru($carry, 32);
                    $k = $k + 1 | 0;
                }
            }
        }
        if ($quot !== null)
            $quot.data[$i] = var$16;
        $j = $j + (-1) | 0;
        $i = $i + (-1) | 0;
    }
    if ($divisorShift) {
        jm_BitLevel_shiftRight0($normB, $bLength, $normA, 0, $divisorShift);
        return $normB;
    }
    jl_System_fastArraycopy($normA, 0, $normB, 0, $bLength);
    return $normA;
},
jm_Division_divideArrayByInt = ($dest, $src, $srcLength, $divisor) => {
    let $rem, $bLong, $i, $bPos, var$9, var$10, $temp, $quot, $aPos;
    $rem = Long_ZERO;
    $bLong = Long_and(Long_fromInt($divisor), Long_create(4294967295, 0));
    $i = $srcLength - 1 | 0;
    $bPos = Long_fromInt($divisor >>> 1 | 0);
    $divisor = $divisor & 1;
    var$9 = Long_shl($bLong, 1);
    while ($i >= 0) {
        var$10 = $src.data;
        $temp = Long_or(Long_shl($rem, 32), Long_and(Long_fromInt(var$10[$i]), Long_create(4294967295, 0)));
        if (Long_ge($temp, Long_ZERO)) {
            $quot = Long_div($temp, $bLong);
            $rem = Long_rem($temp, $bLong);
        } else {
            $aPos = Long_shru($temp, 1);
            $quot = Long_div($aPos, $bPos);
            $rem = Long_add(Long_shl(Long_rem($aPos, $bPos), 1), Long_and($temp, Long_fromInt(1)));
            if ($divisor) {
                if (Long_le($quot, $rem))
                    $rem = Long_sub($rem, $quot);
                else if (Long_gt(Long_sub($quot, $rem), $bLong)) {
                    $rem = Long_add($rem, Long_sub(var$9, $quot));
                    $quot = Long_sub($quot, Long_fromInt(2));
                } else {
                    $rem = Long_add($rem, Long_sub($bLong, $quot));
                    $quot = Long_sub($quot, Long_fromInt(1));
                }
            }
        }
        $dest.data[$i] = Long_lo(Long_and($quot, Long_create(4294967295, 0)));
        $i = $i + (-1) | 0;
    }
    return Long_lo($rem);
},
jm_Division_remainderArrayByInt = ($src, $srcLength, $divisor) => {
    let $result, $i, var$6;
    $result = Long_ZERO;
    $i = $srcLength - 1 | 0;
    while ($i >= 0) {
        var$6 = $src.data;
        $result = Long_fromInt(Long_hi((jm_Division_divideLongByInt(Long_add(Long_shl($result, 32), Long_and(Long_fromInt(var$6[$i]), Long_create(4294967295, 0))), $divisor))));
        $i = $i + (-1) | 0;
    }
    return Long_lo($result);
},
jm_Division_divideLongByInt = ($a, $b) => {
    let $bLong, $quot, $rem, $aPos, $bPos;
    $bLong = Long_and(Long_fromInt($b), Long_create(4294967295, 0));
    if (Long_ge($a, Long_ZERO)) {
        $quot = Long_div($a, $bLong);
        $rem = Long_rem($a, $bLong);
    } else {
        $aPos = Long_shru($a, 1);
        $bPos = Long_fromInt($b >>> 1 | 0);
        $quot = Long_div($aPos, $bPos);
        $rem = Long_add(Long_shl(Long_rem($aPos, $bPos), 1), Long_and($a, Long_fromInt(1)));
        if ($b & 1) {
            if (Long_le($quot, $rem))
                $rem = Long_sub($rem, $quot);
            else if (Long_le(Long_sub($quot, $rem), $bLong)) {
                $rem = Long_add($rem, Long_sub($bLong, $quot));
                $quot = Long_sub($quot, Long_fromInt(1));
            } else {
                $rem = Long_add($rem, Long_sub(Long_shl($bLong, 1), $quot));
                $quot = Long_sub($quot, Long_fromInt(2));
            }
        }
    }
    return Long_or(Long_shl($rem, 32), Long_and($quot, Long_create(4294967295, 0)));
},
jm_Division_divideAndRemainderByInteger = ($val, $divisor, $divisorSign) => {
    let $valDigits, $valLen, $valSign, $a, $b, $quo, $rem, $quotientSign, $quotientDigits, $remainderDigits, $result0, $result1;
    $valDigits = $val.$digits;
    $valLen = $val.$numberLength;
    $valSign = $val.$sign1;
    if ($valLen == 1) {
        $a = Long_and(Long_fromInt($valDigits.data[0]), Long_create(4294967295, 0));
        $b = Long_and(Long_fromInt($divisor), Long_create(4294967295, 0));
        $quo = Long_div($a, $b);
        $rem = Long_rem($a, $b);
        if ($valSign != $divisorSign)
            $quo = Long_neg($quo);
        if ($valSign < 0)
            $rem = Long_neg($rem);
        return $rt_wrapArray(jm_BigInteger, [jm_BigInteger_valueOf($quo), jm_BigInteger_valueOf($rem)]);
    }
    $quotientSign = $valSign != $divisorSign ? (-1) : 1;
    $quotientDigits = $rt_createIntArray($valLen);
    $remainderDigits = $rt_createIntArray(1);
    $remainderDigits.data[0] = jm_Division_divideArrayByInt($quotientDigits, $valDigits, $valLen, $divisor);
    $result0 = new jm_BigInteger;
    $result0.$firstNonzeroDigit = (-2);
    $result0.$sign1 = $quotientSign;
    $result0.$numberLength = $valLen;
    $result0.$digits = $quotientDigits;
    $result1 = new jm_BigInteger;
    $result1.$firstNonzeroDigit = (-2);
    $result1.$sign1 = $valSign;
    $result1.$numberLength = 1;
    $result1.$digits = $remainderDigits;
    jm_BigInteger_cutOffLeadingZeroes($result0);
    jm_BigInteger_cutOffLeadingZeroes($result1);
    return $rt_wrapArray(jm_BigInteger, [$result0, $result1]);
},
jm_Division_multiplyAndSubtract = ($a, $start, $b, $bLen, $c) => {
    let $carry0, $carry1, $i, var$9, var$10, var$11, var$12, var$13;
    $carry0 = Long_ZERO;
    $carry1 = Long_ZERO;
    $i = 0;
    var$9 = Long_and(Long_fromInt($c), Long_create(4294967295, 0));
    while ($i < $bLen) {
        var$10 = $b.data;
        var$11 = $a.data;
        $c = var$10[$i];
        var$12 = Long_lo($carry0);
        jm_Multiplication_$callClinit();
        $carry0 = Long_add(Long_add(Long_mul(Long_and(Long_fromInt($c), Long_create(4294967295, 0)), var$9), Long_and(Long_fromInt(var$12), Long_create(4294967295, 0))), Long_ZERO);
        var$12 = $start + $i | 0;
        var$13 = Long_add(Long_sub(Long_and(Long_fromInt(var$11[var$12]), Long_create(4294967295, 0)), Long_and($carry0, Long_create(4294967295, 0))), $carry1);
        var$11[var$12] = Long_lo(var$13);
        $carry1 = Long_shr(var$13, 32);
        $carry0 = Long_shru($carry0, 32);
        $i = $i + 1 | 0;
    }
    $a = $a.data;
    $start = $start + $bLen | 0;
    var$9 = Long_add(Long_sub(Long_and(Long_fromInt($a[$start]), Long_create(4294967295, 0)), $carry0), $carry1);
    $a[$start] = Long_lo(var$9);
    return Long_hi(var$9);
};
function jul_LogRecord() {
    let a = this; jl_Object.call(a);
    a.$level = null;
    a.$message0 = null;
    a.$millis = Long_ZERO;
    a.$parameters = null;
    a.$sequenceNumber = Long_ZERO;
    a.$threadID = Long_ZERO;
    a.$thrown = null;
}
let jul_LogRecord_sequenceNumberGenerator = Long_ZERO;
function nms_ChunkProviderHell() {
    let a = this; jl_Object.call(a);
    a.$hellRNG = null;
    a.$netherNoiseGen1 = null;
    a.$netherNoiseGen2 = null;
    a.$netherNoiseGen3 = null;
    a.$slowsandGravelNoiseGen = null;
    a.$netherrackExculsivityNoiseGen = null;
    a.$netherNoiseGen6 = null;
    a.$netherNoiseGen7 = null;
    a.$worldObj6 = null;
    a.$noiseField = null;
    a.$genNetherBridge = null;
    a.$slowsandNoise = null;
    a.$gravelNoise = null;
    a.$netherrackExclusivityNoise = null;
    a.$netherCaveGenerator = null;
    a.$noiseData1 = null;
    a.$noiseData2 = null;
    a.$noiseData3 = null;
    a.$noiseData40 = null;
    a.$noiseData5 = null;
}
let nms_ChunkProviderHell__init_ = ($this, $par1World, $par2) => {
    let var$3, var$4, var$5, var$6, var$7;
    $this.$genNetherBridge = nms_MapGenNetherBridge__init_0();
    $this.$slowsandNoise = $rt_createDoubleArray(256);
    $this.$gravelNoise = $rt_createDoubleArray(256);
    $this.$netherrackExclusivityNoise = $rt_createDoubleArray(256);
    var$3 = new nms_MapGenCavesHell;
    var$3.$range = 8;
    var$4 = new nle_EaglercraftRandom;
    var$5 = Long_fromNumber(performance.now() * 1000000.0);
    var$4.$seed = Long_fromInt(69);
    var$4.$haveNextNextGaussian = 0;
    var$4.$seed = var$5;
    var$3.$rand1 = var$4;
    $this.$netherCaveGenerator = var$3;
    $this.$worldObj6 = $par1World;
    $par1World = new nle_EaglercraftRandom;
    $par1World.$seed = Long_fromInt(69);
    $par1World.$haveNextNextGaussian = 0;
    $par1World.$seed = $par2;
    $this.$hellRNG = $par1World;
    var$3 = new nms_NoiseGeneratorOctaves;
    var$3.$octaves = 16;
    var$3.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$6 = 0;
    while (var$6 < 16) {
        var$3.$generatorCollection.data[var$6] = nms_NoiseGeneratorPerlin__init_($par1World);
        var$6 = var$6 + 1 | 0;
    }
    $this.$netherNoiseGen1 = var$3;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$hellRNG;
    $par1World.$octaves = 16;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$6 = 0;
    while (var$6 < 16) {
        $par1World.$generatorCollection.data[var$6] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$6 = var$6 + 1 | 0;
    }
    $this.$netherNoiseGen2 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$hellRNG;
    $par1World.$octaves = 8;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 8);
    var$7 = 0;
    while (var$7 < 8) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$7 = var$7 + 1 | 0;
    }
    $this.$netherNoiseGen3 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$hellRNG;
    $par1World.$octaves = 4;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 4);
    var$6 = 0;
    while (var$6 < 4) {
        $par1World.$generatorCollection.data[var$6] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$6 = var$6 + 1 | 0;
    }
    $this.$slowsandGravelNoiseGen = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$hellRNG;
    $par1World.$octaves = 4;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 4);
    var$6 = 0;
    while (var$6 < 4) {
        $par1World.$generatorCollection.data[var$6] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$6 = var$6 + 1 | 0;
    }
    $this.$netherrackExculsivityNoiseGen = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$hellRNG;
    $par1World.$octaves = 10;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 10);
    var$6 = 0;
    while (var$6 < 10) {
        $par1World.$generatorCollection.data[var$6] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$6 = var$6 + 1 | 0;
    }
    $this.$netherNoiseGen6 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$hellRNG;
    $par1World.$octaves = 16;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$6 = 0;
    while (var$6 < 16) {
        $par1World.$generatorCollection.data[var$6] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$6 = var$6 + 1 | 0;
    }
    $this.$netherNoiseGen7 = $par1World;
},
nms_ChunkProviderHell__init_0 = (var_0, var_1) => {
    let var_2 = new nms_ChunkProviderHell();
    nms_ChunkProviderHell__init_(var_2, var_0, var_1);
    return var_2;
},
nms_ChunkProviderHell_generateNetherTerrain = ($this, $par1, $par2, $par3ArrayOfByte) => {
    let var$4, $var9, $var10, $var11, var$8, $var14, $var50, $var16, $var42, $var18, $var20, $var22, $var24, $var26, $var28, $var30, $var37, $var39, $var41, $var31, var$24, $var48, $var12, $var51;
    var$4 = nms_ChunkProviderHell_initializeNoiseField($this, $this.$noiseField, $par1 * 4 | 0, 0, $par2 * 4 | 0, 5, 17, 5);
    $this.$noiseField = var$4;
    $var9 = 0;
    while ($var9 < 4) {
        $var10 = 0;
        while ($var10 < 4) {
            $var11 = 0;
            while ($var11 < 16) {
                var$8 = var$4.data;
                $par1 = (($var9 + 0 | 0) * 5 | 0) + $var10 | 0;
                $par2 = (($par1 + 0 | 0) * 17 | 0) + $var11 | 0;
                $var14 = var$8[$par2 + 0 | 0];
                $var50 = (($par1 + 1 | 0) * 17 | 0) + $var11 | 0;
                $var16 = var$8[$var50 + 0 | 0];
                $par1 = (($var9 + 1 | 0) * 5 | 0) + $var10 | 0;
                $var42 = (($par1 + 0 | 0) * 17 | 0) + $var11 | 0;
                $var18 = var$8[$var42 + 0 | 0];
                $par1 = (($par1 + 1 | 0) * 17 | 0) + $var11 | 0;
                $var20 = var$8[$par1 + 0 | 0];
                $var22 = (var$8[$par2 + 1 | 0] - $var14) * 0.125;
                $var24 = (var$8[$var50 + 1 | 0] - $var16) * 0.125;
                $var26 = (var$8[$var42 + 1 | 0] - $var18) * 0.125;
                $var28 = (var$8[$par1 + 1 | 0] - $var20) * 0.125;
                $var30 = 0;
                while ($var30 < 8) {
                    $var37 = ($var18 - $var14) * 0.25;
                    $var39 = ($var20 - $var16) * 0.25;
                    $var41 = 0;
                    $var31 = $var14;
                    var$24 = $var16;
                    while ($var41 < 4) {
                        $par1 = ($var41 + ($var9 * 4 | 0) | 0) << 11 | (0 + ($var10 * 4 | 0) | 0) << 7;
                        $par2 = ($var11 * 8 | 0) + $var30 | 0;
                        $var42 = $par1 | $par2;
                        $var48 = (var$24 - $var31) * 0.25;
                        $var50 = 0;
                        $par1 = $rt_compare($par2, 32);
                        $var12 = $var31;
                        while ($var50 < 4) {
                            $var51 = 0;
                            if ($par1 < 0) {
                                nms_Block_$callClinit();
                                $var51 = nms_Block_lavaStill.$blockID;
                            }
                            if ($var12 > 0.0) {
                                nms_Block_$callClinit();
                                $var51 = nms_Block_netherrack.$blockID;
                            }
                            $par3ArrayOfByte.data[$var42] = $var51 << 24 >> 24;
                            $var42 = $var42 + 128 | 0;
                            $var12 = $var12 + $var48;
                            $var50 = $var50 + 1 | 0;
                        }
                        $var31 = $var31 + $var37;
                        var$24 = var$24 + $var39;
                        $var41 = $var41 + 1 | 0;
                    }
                    $var14 = $var14 + $var22;
                    $var16 = $var16 + $var24;
                    $var18 = $var18 + $var26;
                    $var20 = $var20 + $var28;
                    $var30 = $var30 + 1 | 0;
                }
                $var11 = $var11 + 1 | 0;
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9 = $var9 + 1 | 0;
    }
},
nms_ChunkProviderHell_replaceBlocksForBiome = ($this, $par1, $par2, $par3ArrayOfByte) => {
    let var$4, var$5, $var7, var$7, $var8, var$9, var$10, var$11, var$12, $var9, $var5, $var10, var$16, $var11, $var12, var$19, $var14, $var15, var$22, var$23, var$24, $var16, $var17, var$27, var$28;
    var$4 = $this.$slowsandGravelNoiseGen;
    var$5 = $this.$slowsandNoise;
    $var7 = $par1 * 16 | 0;
    var$7 = $par2 * 16 | 0;
    $this.$slowsandNoise = nms_NoiseGeneratorOctaves_generateNoiseOctaves(var$4, var$5, $var7, var$7, 0, 16, 16, 1, 0.03125, 0.03125, 1.0);
    $this.$gravelNoise = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$slowsandGravelNoiseGen, $this.$gravelNoise, $var7, 109, var$7, 16, 1, 16, 0.03125, 1.0, 0.03125);
    var$5 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$netherrackExculsivityNoiseGen, $this.$netherrackExclusivityNoise, $var7, var$7, 0, 16, 16, 1, 0.0625, 0.0625, 0.0625);
    $this.$netherrackExclusivityNoise = var$5;
    $var7 = 0;
    while ($var7 < 16) {
        $var8 = 0;
        while ($var8 < 16) {
            var$9 = $this.$slowsandNoise.data;
            var$7 = $var7 + ($var8 * 16 | 0) | 0;
            var$10 = var$9[var$7];
            var$4 = $this.$hellRNG;
            var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            var$12 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$11, 22))), 27);
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            $var9 = var$10 + Long_toNumber(Long_add(var$12, Long_fromInt(Long_lo(Long_shru(var$11, 21))))) * 1.1102230246251565E-16 * 0.2 <= 0.0 ? 0 : 1;
            $var5 = $this.$gravelNoise.data[var$7];
            var$12 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$12;
            var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
            var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$12;
            $var10 = $var5 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$12, 21))))) * 1.1102230246251565E-16 * 0.2 <= 0.0 ? 0 : 1;
            $var5 = var$5.data[var$7] / 3.0 + 3.0;
            var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$12;
            var$11 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
            var$16 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$16;
            $var11 = $var5 + Long_toNumber(Long_add(var$11, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * 0.25 | 0;
            $var12 = (-1);
            nms_Block_$callClinit();
            var$19 = nms_Block_netherrack.$blockID;
            $var14 = var$19 << 24 >> 24;
            $var15 = 127;
            var$22 = var$7 * 128 | 0;
            var$23 = $var14;
            var$24 = $var14;
            while ($var15 >= 0) {
                $var16 = var$22 + $var15 | 0;
                var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$11;
                $var17 = Long_lo(Long_shru(var$11, 17));
                while (true) {
                    var$7 = $var17 % 5 | 0;
                    if ((($var17 - var$7 | 0) + 4 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$4.$seed = var$11;
                    $var17 = Long_lo(Long_shru(var$11, 17));
                }
                a: {
                    if ($var15 < (127 - var$7 | 0)) {
                        var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$4.$seed = var$11;
                        var$27 = Long_lo(Long_shru(var$11, 17));
                        while (true) {
                            var$28 = var$27 % 5 | 0;
                            if (((var$27 - var$28 | 0) + 4 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$4.$seed = var$11;
                            var$27 = Long_lo(Long_shru(var$11, 17));
                        }
                        if ($var15 > (0 + var$28 | 0)) {
                            var$9 = $par3ArrayOfByte.data;
                            $var17 = var$9[$var16];
                            if (!$var17)
                                $var12 = (-1);
                            else if ($var17 == var$19) {
                                if ($var12 == (-1)) {
                                    if ($var11 <= 0) {
                                        var$23 = 0;
                                        var$24 = $var14;
                                    } else if ($var15 >= 60 && $var15 <= 65) {
                                        var$23 = !$var10 ? $var14 : nms_Block_gravel.$blockID << 24 >> 24;
                                        var$24 = $var10 ? $var14 : $var14;
                                        if ($var9)
                                            var$23 = nms_Block_slowSand.$blockID << 24 >> 24;
                                        if ($var9)
                                            var$24 = nms_Block_slowSand.$blockID << 24 >> 24;
                                    }
                                    if ($var15 < 64 && !var$23)
                                        var$23 = nms_Block_lavaStill.$blockID << 24 >> 24;
                                    if ($var15 < 63) {
                                        var$9[$var16] = var$24;
                                        $var12 = $var11;
                                    } else {
                                        var$9[$var16] = var$23;
                                        $var12 = $var11;
                                    }
                                } else if ($var12 > 0) {
                                    $var12 = $var12 + (-1) | 0;
                                    var$9[$var16] = var$24;
                                }
                            }
                            break a;
                        }
                    }
                    $par3ArrayOfByte.data[$var16] = nms_Block_bedrock.$blockID << 24 >> 24;
                }
                $var15 = $var15 + (-1) | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        $var7 = $var7 + 1 | 0;
    }
},
nms_ChunkProviderHell_provideChunk = ($this, $par1, $par2) => {
    let $var3, $var4, var$5, $var5, $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$hellRNG.$seed = Long_add(Long_mul(Long_fromInt($par1), Long_create(2570712328, 79)), Long_mul(Long_fromInt($par2), Long_create(4048968661, 30)));
        $var3 = $rt_createByteArray(32768);
        nms_ChunkProviderHell_generateNetherTerrain($this, $par1, $par2, $var3);
        nms_ChunkProviderHell_replaceBlocksForBiome($this, $par1, $par2, $var3);
        $var4 = $this.$netherCaveGenerator;
        var$5 = $this.$worldObj6;
        $ptr = 1;
    case 1:
        nms_MapGenBase_generate($var4, $this, var$5, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$genNetherBridge;
        var$5 = $this.$worldObj6;
        $ptr = 2;
    case 2:
        nms_MapGenBase_generate($var4, $this, var$5, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Chunk__init_($this.$worldObj6, $var3, $par1, $par2);
        $var5 = $this.$worldObj6.$provider.$worldChunkMgr.$loadBlockGeneratorData(null, $par1 * 16 | 0, $par2 * 16 | 0, 16, 16);
        $var6 = $var4.$blockBiomeArray;
        $var7 = 0;
        while (true) {
            $var3 = $var6.data;
            if ($var7 >= $var3.length)
                break;
            $var3[$var7] = $var5.data[$var7].$biomeID << 24 >> 24;
            $var7 = $var7 + 1 | 0;
        }
        $var4.$queuedLightChecks = 0;
        return $var4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, $var4, var$5, $var5, $var6, $var7, $ptr);
},
nms_ChunkProviderHell_initializeNoiseField = ($this, $par1ArrayOfDouble, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var12, $var13, $var14, $var15, $var8, $var10, $var26, $var36, $var21, $var23, $var28, $var30, $var32, $var34;
    if ($par1ArrayOfDouble === null)
        $par1ArrayOfDouble = $rt_createDoubleArray($rt_imul($rt_imul($par5, $par6), $par7));
    $this.$noiseData40 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$netherNoiseGen6, $this.$noiseData40, $par2, $par3, $par4, $par5, 1, $par7, 1.0, 0.0, 1.0);
    $this.$noiseData5 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$netherNoiseGen7, $this.$noiseData5, $par2, $par3, $par4, $par5, 1, $par7, 100.0, 0.0, 100.0);
    $this.$noiseData1 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$netherNoiseGen3, $this.$noiseData1, $par2, $par3, $par4, $par5, $par6, $par7, 8.555150000000001, 34.2206, 8.555150000000001);
    $this.$noiseData2 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$netherNoiseGen1, $this.$noiseData2, $par2, $par3, $par4, $par5, $par6, $par7, 684.412, 2053.236, 684.412);
    $this.$noiseData3 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$netherNoiseGen2, $this.$noiseData3, $par2, $par3, $par4, $par5, $par6, $par7, 684.412, 2053.236, 684.412);
    $var12 = 0;
    $var13 = 0;
    $var14 = $rt_createDoubleArray($par6).data;
    $var15 = 0;
    $var8 = $par6;
    $par3 = $par6 - 1 | 0;
    while ($var15 < $par6) {
        $var10 = $var15;
        $var14[$var15] = jl_Math_cos($var10 * 3.141592653589793 * 6.0 / $var8) * 2.0;
        if ($var15 > ($par6 / 2 | 0))
            $var10 = $par3 - $var15 | 0;
        if ($var10 < 4.0) {
            $var26 = 4.0 - $var10;
            $var14[$var15] = $var14[$var15] - $var26 * $var26 * $var26 * 10.0;
        }
        $var15 = $var15 + 1 | 0;
    }
    $par3 = 0;
    $par4 = $par6 - 4 | 0;
    while ($par3 < $par5) {
        $var36 = 0;
        while ($var36 < $par7) {
            $var21 = $this.$noiseData5.data[$var13] / 8000.0;
            if ($var21 < 0.0)
                $var21 =  -$var21;
            $var26 = $var21 * 3.0 - 3.0;
            $var13 = $var13 + 1 | 0;
            $var23 = 0;
            while ($var23 < $par6) {
                $var26 = $var14[$var23];
                $var28 = $this.$noiseData2.data[$var12] / 512.0;
                $var30 = $this.$noiseData3.data[$var12] / 512.0;
                $var32 = ($this.$noiseData1.data[$var12] / 10.0 + 1.0) / 2.0;
                if ($var32 >= 0.0)
                    $var28 = $var32 > 1.0 ? $var30 : $var28 + ($var30 - $var28) * $var32;
                $var26 = $var28 - $var26;
                if ($var23 > $par4) {
                    $var34 = ($var23 - $par4 | 0) / 3.0;
                    $var26 = $var26 * (1.0 - $var34) + (-10.0) * $var34;
                }
                $var28 = $var23;
                if ($var28 < 0.0) {
                    $var34 = (0.0 - $var28) / 4.0;
                    if ($var34 < 0.0)
                        $var34 = 0.0;
                    if ($var34 > 1.0)
                        $var34 = 1.0;
                    $var26 = $var26 * (1.0 - $var34) + (-10.0) * $var34;
                }
                $par1ArrayOfDouble.data[$var12] = $var26;
                $var12 = $var12 + 1 | 0;
                $var23 = $var23 + 1 | 0;
            }
            $var36 = $var36 + 1 | 0;
        }
        $par3 = $par3 + 1 | 0;
    }
    return $par1ArrayOfDouble;
},
nms_ChunkProviderHell_populate = ($this, $par1IChunkProvider, $par2, $par3) => {
    let $var4, $var5, $var12, var$7, $var6, $var10, var$10, var$11, $var7, $var8, $var9, var$15, $var8_0, $var10_0, var$18, var$19, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var10_0 = $thread.pop();$var8_0 = $thread.pop();var$15 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();var$7 = $thread.pop();$var12 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IChunkProvider = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_BlockSand_fallInstantly = 1;
        $var4 = $par2 * 16 | 0;
        $var5 = $par3 * 16 | 0;
        $par1IChunkProvider = $this.$genNetherBridge;
        $var12 = $this.$worldObj6;
        var$7 = $this.$hellRNG;
        $ptr = 1;
    case 1:
        nms_MapGenStructure_generateStructuresInChunk($par1IChunkProvider, $var12, var$7, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        $par3 = 17;
        $var10 = 119;
        var$10 = Long_fromInt(16);
        if ($var6 < 8) {
            $par1IChunkProvider = $this.$hellRNG;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var9 = $var8 % 120 | 0;
                if ((($var8 - $var9 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var8 = Long_lo(Long_shru(var$11, $par3));
            }
            $var8 = $var9 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenHellLava;
            nms_Block_$callClinit();
            $par2 = nms_Block_lavaMoving.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$hellLavaID = $par2;
            $var12.$field_94524_b = 0;
            var$7 = $this.$worldObj6;
            $ptr = 2;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var6 = Long_lo(Long_shru(var$11, $par3));
        $var8 = 9;
        while (true) {
            $var7 = $var6 % 10 | 0;
            if ((($var6 - $var7 | 0) + $var8 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var6 = Long_lo(Long_shru(var$11, $par3));
        }
        $var9 = $var7 + 1 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var7 = Long_lo(Long_shru(var$11, $par3));
        $par2 = $var9 - 1 | 0;
        if (!($var9 & $par2))
            $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt($var7)), 31));
        else
            while (true) {
                $var6 = $var7 % $var9 | 0;
                if ((($var7 - $var6 | 0) + $par2 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
        $par2 = $var6 + 1 | 0;
        $var7 = 0;
        if ($var7 < $par2) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8_0 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10_0 = $var9 % 120 | 0;
                if ((($var9 - $var10_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var10_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFire;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 3;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var6 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var7 = $var6 % 10 | 0;
            if ((($var6 - $var7 | 0) + $var8 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var6 = Long_lo(Long_shru(var$11, $par3));
        }
        $par2 = $var7 + 1 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        $var6 = $par2 - 1 | 0;
        if (!($par2 & $var6))
            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt($par2), Long_fromInt($var8)), 31));
        else
            while (true) {
                $var7 = $var8 % $par2 | 0;
                if ((($var8 - $var7 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var8 = Long_lo(Long_shru(var$11, $par3));
            }
        $par2 = 0;
        if ($par2 < $var7) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var8_0 = $var9 % 120 | 0;
                if ((($var9 - $var8_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var8_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone1;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 6;
            continue main;
        }
        $par2 = 0;
        var$18 = Long_fromInt(128);
        if ($par2 < 10) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone2;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 4;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomBrown.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 5;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomRed.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 7;
            continue main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 2:
        nms_WorldGenHellLava_generate($var12, var$7, $par1IChunkProvider, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 < 8) {
            $par1IChunkProvider = $this.$hellRNG;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var9 = $var8 % 120 | 0;
                if ((($var8 - $var9 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var8 = Long_lo(Long_shru(var$11, $par3));
            }
            $var8 = $var9 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenHellLava;
            nms_Block_$callClinit();
            $par2 = nms_Block_lavaMoving.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$hellLavaID = $par2;
            $var12.$field_94524_b = 0;
            var$7 = $this.$worldObj6;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var6 = Long_lo(Long_shru(var$11, $par3));
        $var8 = 9;
        while (true) {
            $var7 = $var6 % 10 | 0;
            if ((($var6 - $var7 | 0) + $var8 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var6 = Long_lo(Long_shru(var$11, $par3));
        }
        $var9 = $var7 + 1 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var7 = Long_lo(Long_shru(var$11, $par3));
        $par2 = $var9 - 1 | 0;
        if (!($var9 & $par2))
            $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt($var9), Long_fromInt($var7)), 31));
        else
            while (true) {
                $var6 = $var7 % $var9 | 0;
                if ((($var7 - $var6 | 0) + $par2 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
        $par2 = $var6 + 1 | 0;
        $var7 = 0;
        if ($var7 < $par2) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8_0 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10_0 = $var9 % 120 | 0;
                if ((($var9 - $var10_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var10_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFire;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 3;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var6 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var7 = $var6 % 10 | 0;
            if ((($var6 - $var7 | 0) + $var8 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var6 = Long_lo(Long_shru(var$11, $par3));
        }
        $par2 = $var7 + 1 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        $var6 = $par2 - 1 | 0;
        if (!($par2 & $var6))
            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt($par2), Long_fromInt($var8)), 31));
        else
            while (true) {
                $var7 = $var8 % $par2 | 0;
                if ((($var8 - $var7 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var8 = Long_lo(Long_shru(var$11, $par3));
            }
        $par2 = 0;
        if ($par2 < $var7) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var8_0 = $var9 % 120 | 0;
                if ((($var9 - $var8_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var8_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone1;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 6;
            continue main;
        }
        $par2 = 0;
        var$18 = Long_fromInt(128);
        if ($par2 < 10) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone2;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 4;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomBrown.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 5;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomRed.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 7;
            continue main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 3:
        nms_WorldGenFire_generate($var12, var$7, $par1IChunkProvider, $var8_0, $var9, $var10_0);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 < $par2) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8_0 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10_0 = $var9 % 120 | 0;
                if ((($var9 - $var10_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var10_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFire;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var6 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var7 = $var6 % 10 | 0;
            if ((($var6 - $var7 | 0) + $var8 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var6 = Long_lo(Long_shru(var$11, $par3));
        }
        $par2 = $var7 + 1 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        $var6 = $par2 - 1 | 0;
        if (!($par2 & $var6))
            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt($par2), Long_fromInt($var8)), 31));
        else
            while (true) {
                $var7 = $var8 % $par2 | 0;
                if ((($var8 - $var7 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var8 = Long_lo(Long_shru(var$11, $par3));
            }
        $par2 = 0;
        if ($par2 < $var7) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var8_0 = $var9 % 120 | 0;
                if ((($var9 - $var8_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var8_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone1;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 6;
            continue main;
        }
        $par2 = 0;
        var$18 = Long_fromInt(128);
        if ($par2 < 10) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone2;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 4;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomBrown.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 5;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomRed.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 7;
            continue main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 4:
        nms_WorldGenGlowStone2_generate($var12, var$7, $par1IChunkProvider, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $par2 + 1 | 0;
        if ($par2 < 10) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone2;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomBrown.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 5;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomRed.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 7;
            continue main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 5:
        nms_WorldGenFlowers_generate($var12, var$7, $par1IChunkProvider, $par2, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomRed.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 7;
            continue main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 6:
        nms_WorldGenGlowStone1_generate($var12, var$7, $par1IChunkProvider, $var8, $var9, $var10_0);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $par2 + 1 | 0;
        if ($par2 < $var7) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var8_0 = $var9 % 120 | 0;
                if ((($var9 - $var8_0 | 0) + $var10 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var9 = Long_lo(Long_shru(var$11, $par3));
            }
            $var9 = $var8_0 + 4 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10_0 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone1;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            continue main;
        }
        $par2 = 0;
        var$18 = Long_fromInt(128);
        if ($par2 < 10) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var10 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenGlowStone2;
            $var12.$doBlockNotify = 0;
            var$7 = $this.$worldObj6;
            $ptr = 4;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomBrown.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 5;
            continue main;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$19 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(1), Long_fromInt(Long_lo(Long_shru(var$19, $par3)))), 31))) {
            var$15 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $par2 = ($var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0) + 8 | 0;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var8 = Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31));
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var9 = ($var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0) + 8 | 0;
            $var12 = new nms_WorldGenFlowers;
            nms_Block_$callClinit();
            $var6 = nms_Block_mushroomRed.$blockID;
            $var12.$doBlockNotify = 0;
            $var12.$plantBlockId = $var6;
            var$7 = $this.$worldObj6;
            $ptr = 7;
            continue main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 7:
        nms_WorldGenFlowers_generate($var12, var$7, $par1IChunkProvider, $par2, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = new nms_WorldGenMinable;
        nms_Block_$callClinit();
        $par2 = nms_Block_oreNetherQuartz.$blockID;
        $var7 = nms_Block_netherrack.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$minableBlockId = $par2;
        $var12.$numberOfBlocks = 13;
        $var12.$blockToReplace = $var7;
        $var8 = 0;
        $var6 = 107;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            $ptr = 8;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
        continue main;
    case 8:
        nms_WorldGenMinable_generate($var12, var$7, $par1IChunkProvider, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $var8 + 1 | 0;
        if ($var8 < 16) {
            $par1IChunkProvider = $this.$hellRNG;
            var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$15;
            $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
            var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var7 = Long_lo(Long_shru(var$11, $par3));
            while (true) {
                $var10 = $var7 % 108 | 0;
                if ((($var7 - $var10 | 0) + $var6 | 0) >= 0)
                    break;
                var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$11;
                $var7 = Long_lo(Long_shru(var$11, $par3));
            }
            $var10 = $var10 + 10 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
            var$7 = $this.$worldObj6;
            continue main;
        }
        $par2 = 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        $ptr = 9;
    case 9:
        nms_WorldGenHellLava_generate($var12, var$7, $par1IChunkProvider, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $par2 + 1 | 0;
        if ($par2 >= 16) {
            nms_BlockSand_fallInstantly = 0;
            return;
        }
        $par1IChunkProvider = $this.$hellRNG;
        var$15 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$15;
        $var9 = $var4 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$15, $par3)))), 31)) | 0;
        var$11 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var8 = Long_lo(Long_shru(var$11, $par3));
        while (true) {
            $var10 = $var8 % 108 | 0;
            if ((($var8 - $var10 | 0) + $var6 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$11;
            $var8 = Long_lo(Long_shru(var$11, $par3));
        }
        $var10 = $var10 + 10 | 0;
        var$11 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$11;
        $var11 = $var5 + Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$11, $par3)))), 31)) | 0;
        $var12 = new nms_WorldGenHellLava;
        $var7 = nms_Block_lavaMoving.$blockID;
        $var12.$doBlockNotify = 0;
        $var12.$hellLavaID = $var7;
        $var12.$field_94524_b = 1;
        var$7 = $this.$worldObj6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IChunkProvider, $par2, $par3, $var4, $var5, $var12, var$7, $var6, $var10, var$10, var$11, $var7, $var8, $var9, var$15, $var8_0, $var10_0, var$18, var$19, $var11, $ptr);
},
nms_ChunkProviderHell_unloadQueuedChunks = $this => {
    return 0;
},
nms_ChunkProviderHell_findClosestStructure = ($this, $par1World, $par2Str, $par3, $par4, $par5) => {
    return null;
},
nms_ChunkProviderHell_recreateStructures = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$genNetherBridge;
        var$4 = $this.$worldObj6;
        var$5 = null;
        $ptr = 1;
    case 1:
        nms_MapGenBase_generate(var$3, $this, var$4, $par1, $par2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $ptr);
};
function nms_ChunkProviderGenerate() {
    let a = this; jl_Object.call(a);
    a.$rand2 = null;
    a.$noiseGen1 = null;
    a.$noiseGen2 = null;
    a.$noiseGen3 = null;
    a.$noiseGen4 = null;
    a.$noiseGen5 = null;
    a.$noiseGen6 = null;
    a.$mobSpawnerNoise = null;
    a.$worldObj5 = null;
    a.$mapFeaturesEnabled0 = 0;
    a.$noiseArray = null;
    a.$stoneNoise = null;
    a.$caveGenerator = null;
    a.$strongholdGenerator = null;
    a.$villageGenerator = null;
    a.$mineshaftGenerator = null;
    a.$scatteredFeatureGenerator = null;
    a.$ravineGenerator = null;
    a.$biomesForGeneration = null;
    a.$noise3 = null;
    a.$noise1 = null;
    a.$noise2 = null;
    a.$noise5 = null;
    a.$noise6 = null;
    a.$parabolicField = null;
    a.$field_73219_j = null;
}
let nms_ChunkProviderGenerate__init_ = ($this, $par1World, $par2, $par4) => {
    let var$4, var$5, var$6, var$7;
    $this.$stoneNoise = $rt_createDoubleArray(256);
    var$4 = new nms_MapGenCaves;
    var$4.$range = 8;
    var$5 = new nle_EaglercraftRandom;
    var$6 = Long_fromNumber(performance.now() * 1000000.0);
    var$5.$seed = Long_fromInt(69);
    var$5.$haveNextNextGaussian = 0;
    var$5.$seed = var$6;
    var$4.$rand1 = var$5;
    $this.$caveGenerator = var$4;
    $this.$strongholdGenerator = nms_MapGenStronghold__init_1();
    $this.$villageGenerator = nms_MapGenVillage__init_2();
    $this.$mineshaftGenerator = nms_MapGenMineshaft__init_0();
    $this.$scatteredFeatureGenerator = nms_MapGenScatteredFeature__init_1();
    $this.$ravineGenerator = nms_MapGenRavine__init_0();
    $this.$field_73219_j = $rt_createIntMultiArray([32, 32]);
    $this.$worldObj5 = $par1World;
    $this.$mapFeaturesEnabled0 = $par4;
    $par1World = new nle_EaglercraftRandom;
    $par1World.$seed = Long_fromInt(69);
    $par1World.$haveNextNextGaussian = 0;
    $par1World.$seed = $par2;
    $this.$rand2 = $par1World;
    var$4 = new nms_NoiseGeneratorOctaves;
    var$4.$octaves = 16;
    var$4.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$7 = 0;
    while (var$7 < 16) {
        var$4.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_($par1World);
        var$7 = var$7 + 1 | 0;
    }
    $this.$noiseGen1 = var$4;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$5 = $this.$rand2;
    $par1World.$octaves = 16;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$7 = 0;
    while (var$7 < 16) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$5);
        var$7 = var$7 + 1 | 0;
    }
    $this.$noiseGen2 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$4 = $this.$rand2;
    $par1World.$octaves = 8;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 8);
    var$7 = 0;
    while (var$7 < 8) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$4);
        var$7 = var$7 + 1 | 0;
    }
    $this.$noiseGen3 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$4 = $this.$rand2;
    $par1World.$octaves = 4;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 4);
    var$7 = 0;
    while (var$7 < 4) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$4);
        var$7 = var$7 + 1 | 0;
    }
    $this.$noiseGen4 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$4 = $this.$rand2;
    $par1World.$octaves = 10;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 10);
    var$7 = 0;
    while (var$7 < 10) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$4);
        var$7 = var$7 + 1 | 0;
    }
    $this.$noiseGen5 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$4 = $this.$rand2;
    $par1World.$octaves = 16;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$7 = 0;
    while (var$7 < 16) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$4);
        var$7 = var$7 + 1 | 0;
    }
    $this.$noiseGen6 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$4 = $this.$rand2;
    $par1World.$octaves = 8;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 8);
    var$7 = 0;
    while (var$7 < 8) {
        $par1World.$generatorCollection.data[var$7] = nms_NoiseGeneratorPerlin__init_(var$4);
        var$7 = var$7 + 1 | 0;
    }
    $this.$mobSpawnerNoise = $par1World;
},
nms_ChunkProviderGenerate__init_0 = (var_0, var_1, var_2) => {
    let var_3 = new nms_ChunkProviderGenerate();
    nms_ChunkProviderGenerate__init_(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ChunkProviderGenerate_generateTerrain = ($this, $par1, $par2, $par3ArrayOfByte) => {
    let var$4, var$5, $var43, $var44, $var10, $var11, $var12, var$11, $var15, $var42, $var17, $var19, $var21, $var23, $var25, $var27, $var29, $var31, $var38, $var40, $var32, $var13, $var49, $var47, $var51;
    var$4 = $this.$worldObj5.$provider.$worldChunkMgr;
    var$5 = $this.$biomesForGeneration;
    $var43 = $par1 * 4 | 0;
    $var44 = $var43 - 2 | 0;
    $par1 = $par2 * 4 | 0;
    $this.$biomesForGeneration = var$4.$getBiomesForGeneration(var$5, $var44, $par1 - 2 | 0, 10, 10);
    var$5 = nms_ChunkProviderGenerate_initializeNoiseField($this, $this.$noiseArray, $var43, 0, $par1, 5, 17, 5);
    $this.$noiseArray = var$5;
    $var10 = 0;
    while ($var10 < 4) {
        $var11 = 0;
        while ($var11 < 4) {
            $var12 = 0;
            while ($var12 < 16) {
                var$11 = var$5.data;
                $par2 = (($var10 + 0 | 0) * 5 | 0) + $var11 | 0;
                $var44 = (($par2 + 0 | 0) * 17 | 0) + $var12 | 0;
                $var15 = var$11[$var44 + 0 | 0];
                $var42 = (($par2 + 1 | 0) * 17 | 0) + $var12 | 0;
                $var17 = var$11[$var42 + 0 | 0];
                $par1 = (($var10 + 1 | 0) * 5 | 0) + $var11 | 0;
                $par2 = (($par1 + 0 | 0) * 17 | 0) + $var12 | 0;
                $var19 = var$11[$par2 + 0 | 0];
                $var43 = (($par1 + 1 | 0) * 17 | 0) + $var12 | 0;
                $var21 = var$11[$var43 + 0 | 0];
                $var23 = (var$11[$var44 + 1 | 0] - $var15) * 0.125;
                $var25 = (var$11[$var42 + 1 | 0] - $var17) * 0.125;
                $var27 = (var$11[$par2 + 1 | 0] - $var19) * 0.125;
                $var29 = (var$11[$var43 + 1 | 0] - $var21) * 0.125;
                $var31 = 0;
                while ($var31 < 8) {
                    $var38 = ($var19 - $var15) * 0.25;
                    $var40 = ($var21 - $var17) * 0.25;
                    $var42 = 0;
                    $var32 = $var15;
                    $var13 = $var17;
                    while ($var42 < 4) {
                        $par1 = ($var42 + ($var10 * 4 | 0) | 0) << 11 | (0 + ($var11 * 4 | 0) | 0) << 7;
                        $par2 = ($var12 * 8 | 0) + $var31 | 0;
                        $par1 = ($par1 | $par2) - 128 | 0;
                        $var49 = ($var13 - $var32) * 0.25;
                        $var47 = $var32 - $var49;
                        $var51 = 0;
                        $var43 = $rt_compare($par2, 63);
                        while ($var51 < 4) {
                            $var47 = $var47 + $var49;
                            if ($var47 > 0.0) {
                                var$11 = $par3ArrayOfByte.data;
                                $par1 = $par1 + 128 | 0;
                                nms_Block_$callClinit();
                                var$11[$par1] = nms_Block_stone.$blockID << 24 >> 24;
                            } else if ($var43 >= 0) {
                                var$11 = $par3ArrayOfByte.data;
                                $par1 = $par1 + 128 | 0;
                                var$11[$par1] = 0;
                            } else {
                                var$11 = $par3ArrayOfByte.data;
                                $par1 = $par1 + 128 | 0;
                                nms_Block_$callClinit();
                                var$11[$par1] = nms_Block_waterStill.$blockID << 24 >> 24;
                            }
                            $var51 = $var51 + 1 | 0;
                        }
                        $var32 = $var32 + $var38;
                        $var13 = $var13 + $var40;
                        $var42 = $var42 + 1 | 0;
                    }
                    $var15 = $var15 + $var23;
                    $var17 = $var17 + $var25;
                    $var19 = $var19 + $var27;
                    $var21 = $var21 + $var29;
                    $var31 = $var31 + 1 | 0;
                }
                $var12 = $var12 + 1 | 0;
            }
            $var11 = $var11 + 1 | 0;
        }
        $var10 = $var10 + 1 | 0;
    }
},
nms_ChunkProviderGenerate_replaceBlocksForBiome = ($this, $par1, $par2, $par3ArrayOfByte, $par4ArrayOfBiomeGenBase) => {
    let var$5, $var8, $var9, var$8, var$9, $var10, $var11, $var18, var$13, var$14, var$15, var$16, $var12, $var13, $var14, $var15, $var16, var$22, var$23, var$24, var$25, $var17, var$27, var$28;
    var$5 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen4, $this.$stoneNoise, $par1 * 16 | 0, $par2 * 16 | 0, 0, 16, 16, 1, 0.0625, 0.0625, 0.0625);
    $this.$stoneNoise = var$5;
    $var8 = 0;
    while ($var8 < 16) {
        $var9 = 0;
        while ($var9 < 16) {
            var$8 = $par4ArrayOfBiomeGenBase.data;
            var$9 = var$5.data;
            $var10 = var$8[$var9 + ($var8 * 16 | 0) | 0];
            $var11 = $var10.$temperature;
            $var18 = $var8 + ($var9 * 16 | 0) | 0;
            var$13 = var$9[$var18] / 3.0 + 3.0;
            var$14 = $this.$rand2;
            var$15 = Long_and(Long_add(Long_mul(var$14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$14.$seed = var$15;
            var$16 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$15, 22))), 27);
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$14.$seed = var$15;
            $var12 = var$13 + Long_toNumber(Long_add(var$16, Long_fromInt(Long_lo(Long_shru(var$15, 21))))) * 1.1102230246251565E-16 * 0.25 | 0;
            $var13 = (-1);
            $var14 = $var10.$topBlock;
            $var15 = $var10.$fillerBlock;
            $var16 = 127;
            var$22 = $var18 * 128 | 0;
            var$23 = $rt_compare($var11, 0.15000000596046448);
            var$24 = $var14;
            var$25 = $var15;
            while ($var16 >= 0) {
                $var17 = var$22 + $var16 | 0;
                var$15 = Long_and(Long_add(Long_mul(var$14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$14.$seed = var$15;
                var$27 = Long_lo(Long_shru(var$15, 17));
                while (true) {
                    var$28 = var$27 % 5 | 0;
                    if (((var$27 - var$28 | 0) + 4 | 0) >= 0)
                        break;
                    var$15 = Long_and(Long_add(Long_mul(var$14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$14.$seed = var$15;
                    var$27 = Long_lo(Long_shru(var$15, 17));
                }
                if ($var16 <= (0 + var$28 | 0)) {
                    var$8 = $par3ArrayOfByte.data;
                    nms_Block_$callClinit();
                    var$8[$var17] = nms_Block_bedrock.$blockID << 24 >> 24;
                } else {
                    var$8 = $par3ArrayOfByte.data;
                    $var18 = var$8[$var17];
                    if (!$var18)
                        $var13 = (-1);
                    else {
                        nms_Block_$callClinit();
                        $par2 = nms_Block_stone.$blockID;
                        if ($var18 == $par2) {
                            if ($var13 == (-1)) {
                                if ($var12 <= 0) {
                                    var$24 = 0;
                                    var$25 = $par2 << 24 >> 24;
                                } else if ($var16 >= 59 && $var16 <= 64) {
                                    var$24 = $var14;
                                    var$25 = $var15;
                                }
                                if ($var16 < 63 && !var$24)
                                    var$24 = var$23 >= 0 ? nms_Block_waterStill.$blockID << 24 >> 24 : nms_Block_ice.$blockID << 24 >> 24;
                                if ($var16 < 62) {
                                    var$8[$var17] = var$25;
                                    $var13 = $var12;
                                } else {
                                    var$8[$var17] = var$24;
                                    $var13 = $var12;
                                }
                            } else if ($var13 > 0) {
                                $var13 = $var13 + (-1) | 0;
                                var$8[$var17] = var$25;
                                if (!$var13 && var$25 == nms_Block_sand.$blockID) {
                                    var$15 = Long_and(Long_add(Long_mul(var$14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    var$14.$seed = var$15;
                                    $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$15, 17)))), 31));
                                    var$25 = nms_Block_sandStone.$blockID << 24 >> 24;
                                }
                            }
                        }
                    }
                }
                $var16 = $var16 + (-1) | 0;
            }
            $var9 = $var9 + 1 | 0;
        }
        $var8 = $var8 + 1 | 0;
    }
},
nms_ChunkProviderGenerate_provideChunk = ($this, $par1, $par2) => {
    let $var3, var$4, $var4, var$6, $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$rand2.$seed = Long_add(Long_mul(Long_fromInt($par1), Long_create(2570712328, 79)), Long_mul(Long_fromInt($par2), Long_create(4048968661, 30)));
        $var3 = $rt_createByteArray(32768);
        nms_ChunkProviderGenerate_generateTerrain($this, $par1, $par2, $var3);
        var$4 = $this.$worldObj5.$provider.$worldChunkMgr.$loadBlockGeneratorData($this.$biomesForGeneration, $par1 * 16 | 0, $par2 * 16 | 0, 16, 16);
        $this.$biomesForGeneration = var$4;
        nms_ChunkProviderGenerate_replaceBlocksForBiome($this, $par1, $par2, $var3, var$4);
        $var4 = $this.$caveGenerator;
        var$6 = $this.$worldObj5;
        $ptr = 1;
    case 1:
        nms_MapGenBase_generate($var4, $this, var$6, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$ravineGenerator;
        var$6 = $this.$worldObj5;
        $ptr = 2;
    case 2:
        nms_MapGenBase_generate($var4, $this, var$6, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$mapFeaturesEnabled0) {
            $var4 = nms_Chunk__init_($this.$worldObj5, $var3, $par1, $par2);
            $var5 = $var4.$blockBiomeArray;
            $var6 = 0;
            while (true) {
                var$4 = $var5.data;
                if ($var6 >= var$4.length)
                    break;
                var$4[$var6] = $this.$biomesForGeneration.data[$var6].$biomeID << 24 >> 24;
                $var6 = $var6 + 1 | 0;
            }
            nms_Chunk_generateSkylightMap($var4);
            return $var4;
        }
        $var4 = $this.$mineshaftGenerator;
        var$6 = $this.$worldObj5;
        $ptr = 3;
    case 3:
        nms_MapGenBase_generate($var4, $this, var$6, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$villageGenerator;
        var$6 = $this.$worldObj5;
        $ptr = 4;
    case 4:
        nms_MapGenBase_generate($var4, $this, var$6, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$strongholdGenerator;
        var$6 = $this.$worldObj5;
        $ptr = 5;
    case 5:
        nms_MapGenBase_generate($var4, $this, var$6, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$scatteredFeatureGenerator;
        var$6 = $this.$worldObj5;
        $ptr = 6;
    case 6:
        nms_MapGenBase_generate($var4, $this, var$6, $par1, $par2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Chunk__init_($this.$worldObj5, $var3, $par1, $par2);
        $var5 = $var4.$blockBiomeArray;
        $var6 = 0;
        while (true) {
            var$4 = $var5.data;
            if ($var6 >= var$4.length)
                break;
            var$4[$var6] = $this.$biomesForGeneration.data[$var6].$biomeID << 24 >> 24;
            $var6 = $var6 + 1 | 0;
        }
        nms_Chunk_generateSkylightMap($var4);
        return $var4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, var$4, $var4, var$6, $var5, $var6, $ptr);
},
nms_ChunkProviderGenerate_initializeNoiseField = ($this, $par1ArrayOfDouble, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, $var10, var$11, $var12, $var13, $var14, var$15, var$16, var$17, $var15, $var16, $var17, $var18, var$22, $var20, $var21, $var22, $var23, var$27, $var24, $var46, $var45, $var44, $var47, $var48, $var26, $var32, var$36, $var34, $var36, $var38, $var40;
    if ($par1ArrayOfDouble === null)
        $par1ArrayOfDouble = $rt_createDoubleArray($rt_imul($rt_imul($par5, $par6), $par7));
    a: {
        if ($this.$parabolicField === null) {
            $this.$parabolicField = $rt_createFloatArray(25);
            $var8 = (-2);
            while (true) {
                if ($var8 > 2)
                    break a;
                $var9 = (-2);
                while ($var9 <= 2) {
                    $var10 = 10.0 / jl_Math_sqrt(($rt_imul($var8, $var8) + $rt_imul($var9, $var9) | 0) + 0.20000000298023224);
                    $this.$parabolicField.data[($var8 + 2 | 0) + (($var9 + 2 | 0) * 5 | 0) | 0] = $var10;
                    $var9 = $var9 + 1 | 0;
                }
                $var8 = $var8 + 1 | 0;
            }
        }
    }
    $this.$noise5 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen5, $this.$noise5, $par2, 10, $par4, $par5, 1, $par7, 1.121, 1.0, 1.121);
    $this.$noise6 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen6, $this.$noise6, $par2, 10, $par4, $par5, 1, $par7, 200.0, 1.0, 200.0);
    $this.$noise3 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen3, $this.$noise3, $par2, $par3, $par4, $par5, $par6, $par7, 8.555150000000001, 4.277575000000001, 8.555150000000001);
    $this.$noise1 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen1, $this.$noise1, $par2, $par3, $par4, $par5, $par6, $par7, 684.412, 684.412, 684.412);
    var$11 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen2, $this.$noise2, $par2, $par3, $par4, $par5, $par6, $par7, 684.412, 684.412, 684.412);
    $this.$noise2 = var$11;
    $var12 = 0;
    $var13 = 0;
    $var14 = 0;
    $var8 = $par5 + 5 | 0;
    var$15 = $par6;
    var$16 = $par6 - 4 | 0;
    var$17 = var$15 / 2.0;
    while ($var14 < $par5) {
        $var15 = 0;
        while ($var15 < $par7) {
            $var16 = 0.0;
            $var17 = 0.0;
            $var18 = 0.0;
            var$22 = $this.$biomesForGeneration.data;
            $var20 = var$22[($var14 + 2 | 0) + $rt_imul($var15 + 2 | 0, $var8) | 0];
            $var21 = (-2);
            while ($var21 <= 2) {
                $var22 = (-2);
                while ($var22 <= 2) {
                    $var23 = var$22[(($var14 + $var21 | 0) + 2 | 0) + $rt_imul(($var15 + $var22 | 0) + 2 | 0, $var8) | 0];
                    $var10 = $this.$parabolicField.data[($var21 + 2 | 0) + (($var22 + 2 | 0) * 5 | 0) | 0];
                    var$27 = $var23.$minHeight;
                    $var24 = $var10 / (var$27 + 2.0);
                    if (var$27 > $var20.$minHeight)
                        $var24 = $var24 / 2.0;
                    $var16 = $var16 + $var23.$maxHeight * $var24;
                    $var17 = $var17 + var$27 * $var24;
                    $var18 = $var18 + $var24;
                    $var22 = $var22 + 1 | 0;
                }
                $var21 = $var21 + 1 | 0;
            }
            $var10 = $var16 / $var18;
            var$27 = $var17 / $var18;
            $var10 = $var10 * 0.8999999761581421 + 0.10000000149011612;
            var$27 = (var$27 * 4.0 - 1.0) / 8.0;
            $var46 = $this.$noise6.data[$var13] / 8000.0;
            if ($var46 < 0.0)
                $var46 =  -$var46 * 0.3;
            $var45 = $var46 * 3.0 - 2.0;
            if ($var45 >= 0.0) {
                if ($var45 > 1.0)
                    $var45 = 1.0;
                $var46 = $var45 / 8.0;
            } else {
                $var44 = $var45 / 2.0;
                if ($var44 < (-1.0))
                    $var44 = (-1.0);
                $var46 = $var44 / 1.4 / 2.0;
            }
            $var13 = $var13 + 1 | 0;
            $var47 = 0;
            $var48 = var$27;
            $var26 = $var10;
            while ($var47 < $par6) {
                $var32 = ($var47 - (var$17 + ($var48 + $var46 * 0.2) * var$15 / 16.0 * 4.0)) * 12.0 * 128.0 / 128.0 / $var26;
                if ($var32 < 0.0)
                    $var32 = $var32 * 4.0;
                var$36 = var$11.data;
                $var34 = $this.$noise1.data[$var12] / 512.0;
                $var36 = var$36[$var12] / 512.0;
                $var38 = ($this.$noise3.data[$var12] / 10.0 + 1.0) / 2.0;
                if ($var38 >= 0.0)
                    $var34 = $var38 > 1.0 ? $var36 : $var34 + ($var36 - $var34) * $var38;
                $var45 = $var34 - $var32;
                if ($var47 > var$16) {
                    $var40 = ($var47 - var$16 | 0) / 3.0;
                    $var45 = $var45 * (1.0 - $var40) + (-10.0) * $var40;
                }
                $par1ArrayOfDouble.data[$var12] = $var45;
                $var12 = $var12 + 1 | 0;
                $var47 = $var47 + 1 | 0;
            }
            $var15 = $var15 + 1 | 0;
        }
        $var14 = $var14 + 1 | 0;
    }
    return $par1ArrayOfDouble;
},
nms_ChunkProviderGenerate_populate = ($this, $par1IChunkProvider, $par2, $par3) => {
    let $var4, $var5, $var11, $var13, $var12, $var15, $var6, var$11, var$12, $var13_0, $var14, var$15, $var14_0, var$17, $var9, $var7, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();var$17 = $thread.pop();$var14_0 = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$var13_0 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var6 = $thread.pop();$var15 = $thread.pop();$var12 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IChunkProvider = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_BlockSand_fallInstantly = 1;
        $var4 = $par2 * 16 | 0;
        $var5 = $par3 * 16 | 0;
        $par1IChunkProvider = $this.$worldObj5;
        $var11 = $var4 + 16 | 0;
        $var13 = $var5 + 16 | 0;
        $var12 = $var11 >> 4;
        $var15 = $var13 >> 4;
        $var6 = $par1IChunkProvider.$chunkProvider;
        var$11 = $var6.$loadedChunkHashMap;
        var$12 = Long_or(Long_and(Long_fromInt($var12), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var15), Long_create(4294967295, 0)), 32));
        $var13_0 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
        $var13_0 = $var13_0 ^ ($var13_0 >>> 20 | 0) ^ ($var13_0 >>> 12 | 0);
        $var14 = $var13_0 ^ ($var13_0 >>> 7 | 0) ^ ($var13_0 >>> 4 | 0);
        var$15 = var$11.$hashArray.data;
        $var14_0 = $var14 & (var$15.length - 1 | 0);
        var$11 = var$15[$var14_0];
        a: {
            while (true) {
                if (var$11 === null) {
                    var$11 = null;
                    break a;
                }
                if (Long_eq(var$11.$key1, var$12))
                    break;
                var$11 = var$11.$nextEntry;
            }
        }
        $var13_0 = var$11 === null ? 0 : 1;
        b: {
            c: {
                if ($var13_0) {
                    var$11 = var$15[$var14_0];
                    d: {
                        while (var$11 !== null) {
                            if (Long_eq(var$11.$key1, var$12)) {
                                var$11 = var$11.$value4;
                                break d;
                            }
                            var$11 = var$11.$nextEntry;
                        }
                        var$11 = null;
                    }
                    var$11 = var$11;
                    if (var$11 === null) {
                        if ($var6.$worldObj0.$findingSpawnPoint)
                            break b;
                        if ($var6.$loadChunkOnProvideRequest)
                            break b;
                        var$11 = $var6.$defaultEmptyChunk;
                    }
                    if (var$11 !== null) {
                        $var6 = nms_Chunk_getBiomeGenForWorldCoords(var$11, $var11 & 15, $var13 & 15, $par1IChunkProvider.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var6 = $par1IChunkProvider.$provider.$worldChunkMgr.$getBiomeGenAt($var11, $var13);
            }
            $this.$rand2.$seed = $this.$worldObj5.$worldInfo.$getSeed();
            var$11 = $this.$rand2;
            var$17 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$17;
            $var9 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
            var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$17;
            $var7 = Long_add(Long_mul(Long_div(Long_add($var9, Long_fromInt(Long_lo(Long_shru(var$17, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1));
            var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$17;
            $var9 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
            var$12 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$11.$seed = var$12;
            var$11.$seed = Long_xor(Long_add(Long_mul(Long_fromInt($par2), $var7), Long_mul(Long_fromInt($par3), Long_add(Long_mul(Long_div(Long_add($var9, Long_fromInt(Long_lo(Long_shru(var$12, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1)))), $this.$worldObj5.$worldInfo.$getSeed());
            $var11 = 0;
            if ($this.$mapFeaturesEnabled0) {
                $par1IChunkProvider = $this.$mineshaftGenerator;
                var$11 = $this.$worldObj5;
                var$20 = $this.$rand2;
                $ptr = 1;
                continue main;
            }
            nms_BiomeGenBase_$callClinit();
            if ($var6 !== nms_BiomeGenBase_desert && $var6 !== nms_BiomeGenBase_desertHills && !$var11) {
                $par1IChunkProvider = $this.$rand2;
                var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru($var9, 17)))), 31)) | 0) + 8 | 0;
                    var$11 = new nms_WorldGenLakes;
                    nms_Block_$callClinit();
                    $par3 = nms_Block_waterStill.$blockID;
                    var$11.$doBlockNotify = 0;
                    var$11.$blockIndex = $par3;
                    var$20 = $this.$worldObj5;
                    $ptr = 8;
                    continue main;
                }
            }
            e: {
                if (!$var11) {
                    $par1IChunkProvider = $this.$rand2;
                    var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = var$17;
                        $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                        $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par3 = Long_lo(Long_shru($var9, 17));
                        while (true) {
                            $var13 = $par3 % 120 | 0;
                            if ((($par3 - $var13 | 0) + 119 | 0) >= 0)
                                break;
                            $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1IChunkProvider.$seed = $var9;
                            $par3 = Long_lo(Long_shru($var9, 17));
                        }
                        $var15 = $var13 + 8 | 0;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $var13 = Long_lo(Long_shru($var9, 17));
                        $par2 = $var15 - 1 | 0;
                        if (!($var15 & $par2))
                            $var13_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt($var13)), 31));
                        else
                            while (true) {
                                $var13_0 = $var13 % $var15 | 0;
                                if ((($var13 - $var13_0 | 0) + $par2 | 0) >= 0)
                                    break;
                                $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $par1IChunkProvider.$seed = $var9;
                                $var13 = Long_lo(Long_shru($var9, 17));
                            }
                        var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = var$17;
                        $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                        if ($var13_0 < 63)
                            break e;
                        $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par2 = Long_lo(Long_shru($var9, 17));
                        while (true) {
                            $par3 = $par2 % 10 | 0;
                            if ((($par2 - $par3 | 0) + 9 | 0) >= 0)
                                break;
                            $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1IChunkProvider.$seed = $var9;
                            $par2 = Long_lo(Long_shru($var9, 17));
                        }
                        if (!$par3)
                            break e;
                    }
                }
                $var12 = 0;
                $var11 = 17;
                $var9 = Long_fromInt(16);
                var$12 = Long_fromInt(128);
                if ($var12 >= 8) {
                    $par1IChunkProvider = $this.$worldObj5;
                    var$11 = $this.$rand2;
                    $ptr = 6;
                    continue main;
                }
                $par1IChunkProvider = $this.$rand2;
                $var7 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var7;
                $var13 = ($var4 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31)) | 0) + 8 | 0;
                $var7 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var7;
                $var14_0 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31));
                var$17 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                $var15 = ($var5 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru(var$17, $var11)))), 31)) | 0) + 8 | 0;
                var$11 = new nms_WorldGenDungeons;
                nms_WorldGenDungeons_$callClinit();
                var$11.$doBlockNotify = 0;
                var$20 = $this.$worldObj5;
                $ptr = 7;
                continue main;
            }
            var$11 = new nms_WorldGenLakes;
            nms_Block_$callClinit();
            $par3 = nms_Block_lavaStill.$blockID;
            var$11.$doBlockNotify = 0;
            var$11.$blockIndex = $par3;
            var$20 = $this.$worldObj5;
            $ptr = 9;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 1:
        nms_MapGenStructure_generateStructuresInChunk($par1IChunkProvider, var$11, var$20, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1IChunkProvider = $this.$villageGenerator;
        var$11 = $this.$worldObj5;
        var$20 = $this.$rand2;
        $ptr = 2;
    case 2:
        $tmp = nms_MapGenStructure_generateStructuresInChunk($par1IChunkProvider, var$11, var$20, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $par1IChunkProvider = $this.$strongholdGenerator;
        var$11 = $this.$worldObj5;
        var$20 = $this.$rand2;
        $ptr = 3;
    case 3:
        nms_MapGenStructure_generateStructuresInChunk($par1IChunkProvider, var$11, var$20, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1IChunkProvider = $this.$scatteredFeatureGenerator;
        var$11 = $this.$worldObj5;
        var$20 = $this.$rand2;
        $ptr = 4;
    case 4:
        nms_MapGenStructure_generateStructuresInChunk($par1IChunkProvider, var$11, var$20, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        nms_BiomeGenBase_$callClinit();
        if ($var6 !== nms_BiomeGenBase_desert && $var6 !== nms_BiomeGenBase_desertHills && !$var11) {
            $par1IChunkProvider = $this.$rand2;
            var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
                $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var9;
                $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru($var9, 17)))), 31)) | 0) + 8 | 0;
                var$11 = new nms_WorldGenLakes;
                nms_Block_$callClinit();
                $par3 = nms_Block_waterStill.$blockID;
                var$11.$doBlockNotify = 0;
                var$11.$blockIndex = $par3;
                var$20 = $this.$worldObj5;
                $ptr = 8;
                continue main;
            }
        }
        f: {
            if (!$var11) {
                $par1IChunkProvider = $this.$rand2;
                var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $par3 = Long_lo(Long_shru($var9, 17));
                    while (true) {
                        $var13 = $par3 % 120 | 0;
                        if ((($par3 - $var13 | 0) + 119 | 0) >= 0)
                            break;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par3 = Long_lo(Long_shru($var9, 17));
                    }
                    $var15 = $var13 + 8 | 0;
                    $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $var13 = Long_lo(Long_shru($var9, 17));
                    $par2 = $var15 - 1 | 0;
                    if (!($var15 & $par2))
                        $var13_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt($var13)), 31));
                    else
                        while (true) {
                            $var13_0 = $var13 % $var15 | 0;
                            if ((($var13 - $var13_0 | 0) + $par2 | 0) >= 0)
                                break;
                            $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1IChunkProvider.$seed = $var9;
                            $var13 = Long_lo(Long_shru($var9, 17));
                        }
                    var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    if ($var13_0 < 63)
                        break f;
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $par2 = Long_lo(Long_shru($var9, 17));
                    while (true) {
                        $par3 = $par2 % 10 | 0;
                        if ((($par2 - $par3 | 0) + 9 | 0) >= 0)
                            break;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par2 = Long_lo(Long_shru($var9, 17));
                    }
                    if (!$par3)
                        break f;
                }
            }
            $var12 = 0;
            $var11 = 17;
            $var9 = Long_fromInt(16);
            var$12 = Long_fromInt(128);
            if ($var12 >= 8) {
                $par1IChunkProvider = $this.$worldObj5;
                var$11 = $this.$rand2;
                $ptr = 6;
                continue main;
            }
            $par1IChunkProvider = $this.$rand2;
            $var7 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = $var7;
            $var13 = ($var4 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31)) | 0) + 8 | 0;
            $var7 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = $var7;
            $var14_0 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31));
            var$17 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            $var15 = ($var5 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru(var$17, $var11)))), 31)) | 0) + 8 | 0;
            var$11 = new nms_WorldGenDungeons;
            nms_WorldGenDungeons_$callClinit();
            var$11.$doBlockNotify = 0;
            var$20 = $this.$worldObj5;
            $ptr = 7;
            continue main;
        }
        var$11 = new nms_WorldGenLakes;
        nms_Block_$callClinit();
        $par3 = nms_Block_lavaStill.$blockID;
        var$11.$doBlockNotify = 0;
        var$11.$blockIndex = $par3;
        var$20 = $this.$worldObj5;
        $ptr = 9;
        continue main;
    case 5:
        $tmp = nms_ChunkProviderServer_loadChunk($var6, $var12, $var15);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        $var6 = var$11 === null ? $par1IChunkProvider.$provider.$worldChunkMgr.$getBiomeGenAt($var11, $var13) : nms_Chunk_getBiomeGenForWorldCoords(var$11, $var11 & 15, $var13 & 15, $par1IChunkProvider.$provider.$worldChunkMgr);
        $this.$rand2.$seed = $this.$worldObj5.$worldInfo.$getSeed();
        var$11 = $this.$rand2;
        var$17 = Long_and(Long_add(Long_mul(var$11.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$11.$seed = var$17;
        $var9 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$11.$seed = var$17;
        $var7 = Long_add(Long_mul(Long_div(Long_add($var9, Long_fromInt(Long_lo(Long_shru(var$17, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1));
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$11.$seed = var$17;
        $var9 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
        var$12 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$11.$seed = var$12;
        var$11.$seed = Long_xor(Long_add(Long_mul(Long_fromInt($par2), $var7), Long_mul(Long_fromInt($par3), Long_add(Long_mul(Long_div(Long_add($var9, Long_fromInt(Long_lo(Long_shru(var$12, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1)))), $this.$worldObj5.$worldInfo.$getSeed());
        $var11 = 0;
        if ($this.$mapFeaturesEnabled0) {
            $par1IChunkProvider = $this.$mineshaftGenerator;
            var$11 = $this.$worldObj5;
            var$20 = $this.$rand2;
            $ptr = 1;
            continue main;
        }
        nms_BiomeGenBase_$callClinit();
        if ($var6 !== nms_BiomeGenBase_desert && $var6 !== nms_BiomeGenBase_desertHills && !$var11) {
            $par1IChunkProvider = $this.$rand2;
            var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
                $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var9;
                $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru($var9, 17)))), 31)) | 0) + 8 | 0;
                var$11 = new nms_WorldGenLakes;
                nms_Block_$callClinit();
                $par3 = nms_Block_waterStill.$blockID;
                var$11.$doBlockNotify = 0;
                var$11.$blockIndex = $par3;
                var$20 = $this.$worldObj5;
                $ptr = 8;
                continue main;
            }
        }
        g: {
            if (!$var11) {
                $par1IChunkProvider = $this.$rand2;
                var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $par3 = Long_lo(Long_shru($var9, 17));
                    while (true) {
                        $var13 = $par3 % 120 | 0;
                        if ((($par3 - $var13 | 0) + 119 | 0) >= 0)
                            break;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par3 = Long_lo(Long_shru($var9, 17));
                    }
                    $var15 = $var13 + 8 | 0;
                    $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $var13 = Long_lo(Long_shru($var9, 17));
                    $par2 = $var15 - 1 | 0;
                    if (!($var15 & $par2))
                        $var13_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt($var13)), 31));
                    else
                        while (true) {
                            $var13_0 = $var13 % $var15 | 0;
                            if ((($var13 - $var13_0 | 0) + $par2 | 0) >= 0)
                                break;
                            $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1IChunkProvider.$seed = $var9;
                            $var13 = Long_lo(Long_shru($var9, 17));
                        }
                    var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    if ($var13_0 < 63)
                        break g;
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $par2 = Long_lo(Long_shru($var9, 17));
                    while (true) {
                        $par3 = $par2 % 10 | 0;
                        if ((($par2 - $par3 | 0) + 9 | 0) >= 0)
                            break;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par2 = Long_lo(Long_shru($var9, 17));
                    }
                    if (!$par3)
                        break g;
                }
            }
            $var12 = 0;
            $var11 = 17;
            $var9 = Long_fromInt(16);
            var$12 = Long_fromInt(128);
            if ($var12 >= 8) {
                $par1IChunkProvider = $this.$worldObj5;
                var$11 = $this.$rand2;
                $ptr = 6;
                continue main;
            }
            $par1IChunkProvider = $this.$rand2;
            $var7 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = $var7;
            $var13 = ($var4 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31)) | 0) + 8 | 0;
            $var7 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = $var7;
            $var14_0 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31));
            var$17 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            $var15 = ($var5 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru(var$17, $var11)))), 31)) | 0) + 8 | 0;
            var$11 = new nms_WorldGenDungeons;
            nms_WorldGenDungeons_$callClinit();
            var$11.$doBlockNotify = 0;
            var$20 = $this.$worldObj5;
            $ptr = 7;
            continue main;
        }
        var$11 = new nms_WorldGenLakes;
        nms_Block_$callClinit();
        $par3 = nms_Block_lavaStill.$blockID;
        var$11.$doBlockNotify = 0;
        var$11.$blockIndex = $par3;
        var$20 = $this.$worldObj5;
        $ptr = 9;
        continue main;
    case 6:
        $var6.$decorate0($par1IChunkProvider, var$11, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $var4 + 8 | 0;
        $var13 = $var5 + 8 | 0;
        $var4 = 0;
        while ($var4 < 16) {
            $var13_0 = 0;
            if ($var13_0 < 16) {
                $par1IChunkProvider = $this.$worldObj5;
                $var11 = $par3 + $var4 | 0;
                $var5 = $var13 + $var13_0 | 0;
                $var12 = $var11 >> 4;
                $par2 = $var5 >> 4;
                $par1IChunkProvider = $par1IChunkProvider.$chunkProvider;
                var$11 = $par1IChunkProvider.$loadedChunkHashMap;
                var$12 = Long_or(Long_and(Long_fromInt($var12), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
                $var15 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
                $var15 = $var15 ^ ($var15 >>> 20 | 0) ^ ($var15 >>> 12 | 0);
                $var14 = $var15 ^ ($var15 >>> 7 | 0) ^ ($var15 >>> 4 | 0);
                var$15 = var$11.$hashArray.data;
                var$11 = var$15[$var14 & (var$15.length - 1 | 0)];
                h: {
                    while (var$11 !== null) {
                        if (Long_eq(var$11.$key1, var$12)) {
                            var$11 = var$11.$value4;
                            break h;
                        }
                        var$11 = var$11.$nextEntry;
                    }
                    var$11 = null;
                }
                i: {
                    var$11 = var$11;
                    if (var$11 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break i;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break i;
                        var$11 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    $var14 = nms_Chunk_getPrecipitationHeight(var$11, $var11 & 15, $var5 & 15);
                    $par1IChunkProvider = $this.$worldObj5;
                    $par2 = $var14 - 1 | 0;
                    $var12 = 0;
                    $ptr = 10;
                    continue main;
                }
                $ptr = 11;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        nms_BlockSand_fallInstantly = 0;
        return;
    case 7:
        nms_WorldGenDungeons_generate(var$11, var$20, $par1IChunkProvider, $var13, $var14_0, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var12 + 1 | 0;
        if ($var12 >= 8) {
            $par1IChunkProvider = $this.$worldObj5;
            var$11 = $this.$rand2;
            $ptr = 6;
            continue main;
        }
        $par1IChunkProvider = $this.$rand2;
        $var7 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var7;
        $var13 = ($var4 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31)) | 0) + 8 | 0;
        $var7 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var7;
        $var14_0 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31));
        var$17 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$17;
        $var15 = ($var5 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru(var$17, $var11)))), 31)) | 0) + 8 | 0;
        var$11 = new nms_WorldGenDungeons;
        nms_WorldGenDungeons_$callClinit();
        var$11.$doBlockNotify = 0;
        var$20 = $this.$worldObj5;
        continue main;
    case 8:
        nms_WorldGenLakes_generate(var$11, var$20, $par1IChunkProvider, $var12, $var13, $var14_0);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            if (!$var11) {
                $par1IChunkProvider = $this.$rand2;
                var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var12 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $par3 = Long_lo(Long_shru($var9, 17));
                    while (true) {
                        $var13 = $par3 % 120 | 0;
                        if ((($par3 - $var13 | 0) + 119 | 0) >= 0)
                            break;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par3 = Long_lo(Long_shru($var9, 17));
                    }
                    $var15 = $var13 + 8 | 0;
                    $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $var13 = Long_lo(Long_shru($var9, 17));
                    $par2 = $var15 - 1 | 0;
                    if (!($var15 & $par2))
                        $var13_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt($var13)), 31));
                    else
                        while (true) {
                            $var13_0 = $var13 % $var15 | 0;
                            if ((($var13 - $var13_0 | 0) + $par2 | 0) >= 0)
                                break;
                            $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par1IChunkProvider.$seed = $var9;
                            $var13 = Long_lo(Long_shru($var9, 17));
                        }
                    var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = var$17;
                    $var14_0 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    if ($var13_0 < 63)
                        break a;
                    $var9 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var9;
                    $par2 = Long_lo(Long_shru($var9, 17));
                    while (true) {
                        $par3 = $par2 % 10 | 0;
                        if ((($par2 - $par3 | 0) + 9 | 0) >= 0)
                            break;
                        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var9;
                        $par2 = Long_lo(Long_shru($var9, 17));
                    }
                    if (!$par3)
                        break a;
                }
            }
            $var12 = 0;
            $var11 = 17;
            $var9 = Long_fromInt(16);
            var$12 = Long_fromInt(128);
            if ($var12 >= 8) {
                $par1IChunkProvider = $this.$worldObj5;
                var$11 = $this.$rand2;
                $ptr = 6;
                continue main;
            }
            $par1IChunkProvider = $this.$rand2;
            $var7 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = $var7;
            $var13 = ($var4 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31)) | 0) + 8 | 0;
            $var7 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = $var7;
            $var14_0 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31));
            var$17 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            $var15 = ($var5 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru(var$17, $var11)))), 31)) | 0) + 8 | 0;
            var$11 = new nms_WorldGenDungeons;
            nms_WorldGenDungeons_$callClinit();
            var$11.$doBlockNotify = 0;
            var$20 = $this.$worldObj5;
            $ptr = 7;
            continue main;
        }
        var$11 = new nms_WorldGenLakes;
        nms_Block_$callClinit();
        $par3 = nms_Block_lavaStill.$blockID;
        var$11.$doBlockNotify = 0;
        var$11.$blockIndex = $par3;
        var$20 = $this.$worldObj5;
        $ptr = 9;
    case 9:
        nms_WorldGenLakes_generate(var$11, var$20, $par1IChunkProvider, $var12, $var13_0, $var14_0);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = 0;
        $var11 = 17;
        $var9 = Long_fromInt(16);
        var$12 = Long_fromInt(128);
        if ($var12 >= 8) {
            $par1IChunkProvider = $this.$worldObj5;
            var$11 = $this.$rand2;
            $ptr = 6;
            continue main;
        }
        $par1IChunkProvider = $this.$rand2;
        $var7 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var7;
        $var13 = ($var4 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31)) | 0) + 8 | 0;
        $var7 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var7;
        $var14_0 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(Long_lo(Long_shru($var7, $var11)))), 31));
        var$17 = Long_and(Long_add(Long_mul($var7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$17;
        $var15 = ($var5 + Long_lo(Long_shr(Long_mul($var9, Long_fromInt(Long_lo(Long_shru(var$17, $var11)))), 31)) | 0) + 8 | 0;
        var$11 = new nms_WorldGenDungeons;
        nms_WorldGenDungeons_$callClinit();
        var$11.$doBlockNotify = 0;
        var$20 = $this.$worldObj5;
        $ptr = 7;
        continue main;
    case 10:
        $tmp = nms_World_canBlockFreeze($par1IChunkProvider, $var11, $par2, $var5, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12) {
            $par1IChunkProvider = $this.$worldObj5;
            $ptr = 12;
            continue main;
        }
        $par1IChunkProvider = $this.$worldObj5;
        nms_Block_$callClinit();
        $var12 = nms_Block_ice.$blockID;
        $var15 = 0;
        $var14_0 = 2;
        $ptr = 13;
        continue main;
    case 11:
        $tmp = nms_ChunkProviderServer_loadChunk($par1IChunkProvider, $var12, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        $var14 = nms_Chunk_getPrecipitationHeight(var$11, $var11 & 15, $var5 & 15);
        $par1IChunkProvider = $this.$worldObj5;
        $par2 = $var14 - 1 | 0;
        $var12 = 0;
        $ptr = 10;
        continue main;
    case 12:
        $tmp = nms_World_canSnowAt($par1IChunkProvider, $var11, $var14, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if ($par2) {
            $par1IChunkProvider = $this.$worldObj5;
            nms_Block_$callClinit();
            $var12 = nms_Block_snow.$blockID;
            $var15 = 0;
            $par2 = 2;
            $ptr = 14;
            continue main;
        }
        $var13_0 = $var13_0 + 1 | 0;
        while (true) {
            if ($var13_0 < 16) {
                $par1IChunkProvider = $this.$worldObj5;
                $var11 = $par3 + $var4 | 0;
                $var5 = $var13 + $var13_0 | 0;
                $var12 = $var11 >> 4;
                $par2 = $var5 >> 4;
                $par1IChunkProvider = $par1IChunkProvider.$chunkProvider;
                var$11 = $par1IChunkProvider.$loadedChunkHashMap;
                var$12 = Long_or(Long_and(Long_fromInt($var12), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
                $var15 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
                $var15 = $var15 ^ ($var15 >>> 20 | 0) ^ ($var15 >>> 12 | 0);
                $var14 = $var15 ^ ($var15 >>> 7 | 0) ^ ($var15 >>> 4 | 0);
                var$15 = var$11.$hashArray.data;
                var$11 = var$15[$var14 & (var$15.length - 1 | 0)];
                g: {
                    while (var$11 !== null) {
                        if (Long_eq(var$11.$key1, var$12)) {
                            var$11 = var$11.$value4;
                            break g;
                        }
                        var$11 = var$11.$nextEntry;
                    }
                    var$11 = null;
                }
                c: {
                    var$11 = var$11;
                    if (var$11 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break c;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break c;
                        var$11 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    $var14 = nms_Chunk_getPrecipitationHeight(var$11, $var11 & 15, $var5 & 15);
                    $par1IChunkProvider = $this.$worldObj5;
                    $par2 = $var14 - 1 | 0;
                    $var12 = 0;
                    $ptr = 10;
                    continue main;
                }
                $ptr = 11;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= 16)
                break;
            $var13_0 = 0;
        }
        nms_BlockSand_fallInstantly = 0;
        return;
    case 13:
        nms_World_setBlock($par1IChunkProvider, $var11, $par2, $var5, $var12, $var15, $var14_0);
        if ($rt_suspending()) {
            break main;
        }
        $par1IChunkProvider = $this.$worldObj5;
        $ptr = 12;
        continue main;
    case 14:
        nms_World_setBlock($par1IChunkProvider, $var11, $var14, $var5, $var12, $var15, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var13_0 = $var13_0 + 1 | 0;
        while (true) {
            if ($var13_0 < 16) {
                $par1IChunkProvider = $this.$worldObj5;
                $var11 = $par3 + $var4 | 0;
                $var5 = $var13 + $var13_0 | 0;
                $var12 = $var11 >> 4;
                $par2 = $var5 >> 4;
                $par1IChunkProvider = $par1IChunkProvider.$chunkProvider;
                var$11 = $par1IChunkProvider.$loadedChunkHashMap;
                var$12 = Long_or(Long_and(Long_fromInt($var12), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), 32));
                $var15 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
                $var15 = $var15 ^ ($var15 >>> 20 | 0) ^ ($var15 >>> 12 | 0);
                $var14 = $var15 ^ ($var15 >>> 7 | 0) ^ ($var15 >>> 4 | 0);
                var$15 = var$11.$hashArray.data;
                var$11 = var$15[$var14 & (var$15.length - 1 | 0)];
                j: {
                    while (var$11 !== null) {
                        if (Long_eq(var$11.$key1, var$12)) {
                            var$11 = var$11.$value4;
                            break j;
                        }
                        var$11 = var$11.$nextEntry;
                    }
                    var$11 = null;
                }
                b: {
                    var$11 = var$11;
                    if (var$11 === null) {
                        if ($par1IChunkProvider.$worldObj0.$findingSpawnPoint)
                            break b;
                        if ($par1IChunkProvider.$loadChunkOnProvideRequest)
                            break b;
                        var$11 = $par1IChunkProvider.$defaultEmptyChunk;
                    }
                    $var14 = nms_Chunk_getPrecipitationHeight(var$11, $var11 & 15, $var5 & 15);
                    $par1IChunkProvider = $this.$worldObj5;
                    $par2 = $var14 - 1 | 0;
                    $var12 = 0;
                    $ptr = 10;
                    continue main;
                }
                $ptr = 11;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= 16)
                break;
            $var13_0 = 0;
        }
        nms_BlockSand_fallInstantly = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IChunkProvider, $par2, $par3, $var4, $var5, $var11, $var13, $var12, $var15, $var6, var$11, var$12, $var13_0, $var14, var$15, $var14_0, var$17, $var9, $var7, var$20, $ptr);
},
nms_ChunkProviderGenerate_unloadQueuedChunks = $this => {
    return 0;
},
nms_ChunkProviderGenerate_findClosestStructure = ($this, $par1World, $par2Str, $par3, $par4, $par5) => {
    let var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Str = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($rt_s(1337) === $par2Str)
            var$6 = 1;
        else if (!($par2Str instanceof jl_String))
            var$6 = 0;
        else {
            $par2Str = $par2Str;
            var$6 = $rt_s(1337).$nativeString !== $par2Str.$nativeString ? 0 : 1;
        }
        if (var$6) {
            $par2Str = $this.$strongholdGenerator;
            if ($par2Str !== null) {
                $ptr = 1;
                continue main;
            }
        }
        return null;
    case 1:
        $tmp = nms_MapGenStructure_getNearestInstance($par2Str, $par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Str, $par3, $par4, $par5, var$6, $ptr);
},
nms_ChunkProviderGenerate_recreateStructures = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$mapFeaturesEnabled0)
            return;
        var$3 = $this.$mineshaftGenerator;
        var$4 = $this.$worldObj5;
        var$5 = null;
        $ptr = 1;
    case 1:
        nms_MapGenBase_generate(var$3, $this, var$4, $par1, $par2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$villageGenerator;
        var$5 = $this.$worldObj5;
        var$3 = null;
        $ptr = 2;
    case 2:
        nms_MapGenBase_generate(var$4, $this, var$5, $par1, $par2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$strongholdGenerator;
        var$3 = $this.$worldObj5;
        var$4 = null;
        $ptr = 3;
    case 3:
        nms_MapGenBase_generate(var$5, $this, var$3, $par1, $par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$scatteredFeatureGenerator;
        var$3 = $this.$worldObj5;
        var$4 = null;
        $ptr = 4;
    case 4:
        nms_MapGenBase_generate(var$5, $this, var$3, $par1, $par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $ptr);
};
function nms_ChunkProviderFlat() {
    let a = this; jl_Object.call(a);
    a.$worldObj8 = null;
    a.$random = null;
    a.$cachedBlockIDs = null;
    a.$cachedBlockMetadata = null;
    a.$flatWorldGenInfo = null;
    a.$structureGenerators = null;
    a.$hasDecoration = 0;
    a.$hasDungeons = 0;
    a.$waterLakeGenerator = null;
    a.$lavaLakeGenerator = null;
}
let nms_ChunkProviderFlat__init_ = ($this, $par1World, $par2, $par4, $par5Str) => {
    let $var10, $var6, var$7, var$8, $var7, $var8, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $var9$index, var$19, $var9$index_0, var$21, $$je;
    $this.$cachedBlockIDs = $rt_createByteArray(256);
    $this.$cachedBlockMetadata = $rt_createByteArray(256);
    $var10 = new ju_ArrayList;
    $var10.$array = $rt_createArray(jl_Object, 10);
    $this.$structureGenerators = $var10;
    $this.$worldObj8 = $par1World;
    $par1World = new nle_EaglercraftRandom;
    $par1World.$seed = Long_fromInt(69);
    $par1World.$haveNextNextGaussian = 0;
    $par1World.$seed = $par2;
    $this.$random = $par1World;
    $par1World = nms_FlatGeneratorInfo_createFlatGeneratorFromString($par5Str);
    $this.$flatWorldGenInfo = $par1World;
    if ($par4) {
        a: {
            $var6 = $par1World.$worldFeatures;
            if (!$rt_s(2190).$hashCode1) {
                $par4 = 0;
                while (true) {
                    if ($par4 >= $rt_s(2190).$nativeString.length)
                        break a;
                    $rt_s(2190).$hashCode1 = (31 * $rt_s(2190).$hashCode1 | 0) + $rt_s(2190).$nativeString.charCodeAt($par4) | 0;
                    $par4 = $par4 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2190).$hashCode1;
        var$8 = $var6.$elementData.data;
        $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($par5Str !== null) {
            if ($par5Str.$origKeyHash == var$7) {
                b: {
                    $var10 = $par5Str.$key;
                    if ($rt_s(2190) !== $var10) {
                        if ($rt_s(2190) === $var10)
                            $par4 = 1;
                        else if (!($var10 instanceof jl_String))
                            $par4 = 0;
                        else {
                            $var10 = $var10;
                            $par4 = $rt_s(2190).$nativeString !== $var10.$nativeString ? 0 : 1;
                        }
                        if (!$par4) {
                            $par4 = 0;
                            break b;
                        }
                    }
                    $par4 = 1;
                }
                if ($par4)
                    break;
            }
            $par5Str = $par5Str.$next3;
        }
        if ($par5Str === null ? 0 : 1) {
            c: {
                if (!$rt_s(2190).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(2190).$nativeString.length)
                            break c;
                        $rt_s(2190).$hashCode1 = (31 * $rt_s(2190).$hashCode1 | 0) + $rt_s(2190).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2190).$hashCode1;
            var$8 = $var6.$elementData.data;
            $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($par5Str !== null) {
                if ($par5Str.$origKeyHash == var$7) {
                    d: {
                        $var10 = $par5Str.$key;
                        if ($rt_s(2190) !== $var10) {
                            if ($rt_s(2190) === $var10)
                                $par4 = 1;
                            else if (!($var10 instanceof jl_String))
                                $par4 = 0;
                            else {
                                $var10 = $var10;
                                $par4 = $rt_s(2190).$nativeString !== $var10.$nativeString ? 0 : 1;
                            }
                            if (!$par4) {
                                $par4 = 0;
                                break d;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                $par5Str = $par5Str.$next3;
            }
            $par1World = $par5Str === null ? null : $par5Str.$value0;
            e: {
                $var7 = $par1World;
                if (!$rt_s(2372).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(2372).$nativeString.length)
                            break e;
                        $rt_s(2372).$hashCode1 = (31 * $rt_s(2372).$hashCode1 | 0) + $rt_s(2372).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2372).$hashCode1;
            var$8 = $var7.$elementData.data;
            $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($par5Str !== null) {
                if ($par5Str.$origKeyHash == var$7) {
                    f: {
                        $var10 = $par5Str.$key;
                        if ($rt_s(2372) !== $var10) {
                            if ($rt_s(2372) === $var10)
                                $par4 = 1;
                            else if (!($var10 instanceof jl_String))
                                $par4 = 0;
                            else {
                                $var10 = $var10;
                                $par4 = $rt_s(2372).$nativeString !== $var10.$nativeString ? 0 : 1;
                            }
                            if (!$par4) {
                                $par4 = 0;
                                break f;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                $par5Str = $par5Str.$next3;
            }
            if (!($par5Str === null ? 0 : 1))
                ju_HashMap_putImpl($var7, $rt_s(2372), $rt_s(946));
            $par1World = $this.$structureGenerators;
            $par5Str = nms_MapGenVillage__init_0($var7);
            ju_ArrayList_ensureCapacity($par1World, $par1World.$size0 + 1 | 0);
            var$8 = $par1World.$array.data;
            $var8 = $par1World.$size0;
            $par1World.$size0 = $var8 + 1 | 0;
            var$8[$var8] = $par5Str;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        }
        g: {
            if (!$rt_s(2373).$hashCode1) {
                $par4 = 0;
                while (true) {
                    if ($par4 >= $rt_s(2373).$nativeString.length)
                        break g;
                    $rt_s(2373).$hashCode1 = (31 * $rt_s(2373).$hashCode1 | 0) + $rt_s(2373).$nativeString.charCodeAt($par4) | 0;
                    $par4 = $par4 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2373).$hashCode1;
        var$8 = $var6.$elementData.data;
        $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($par5Str !== null) {
            if ($par5Str.$origKeyHash == var$7) {
                h: {
                    $var10 = $par5Str.$key;
                    if ($rt_s(2373) !== $var10) {
                        if ($rt_s(2373) === $var10)
                            $par4 = 1;
                        else if (!($var10 instanceof jl_String))
                            $par4 = 0;
                        else {
                            $var10 = $var10;
                            $par4 = $rt_s(2373).$nativeString !== $var10.$nativeString ? 0 : 1;
                        }
                        if (!$par4) {
                            $par4 = 0;
                            break h;
                        }
                    }
                    $par4 = 1;
                }
                if ($par4)
                    break;
            }
            $par5Str = $par5Str.$next3;
        }
        if ($par5Str === null ? 0 : 1) {
            i: {
                $par1World = $this.$structureGenerators;
                $par5Str = new nms_MapGenScatteredFeature;
                if (!$rt_s(2373).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(2373).$nativeString.length)
                            break i;
                        $rt_s(2373).$hashCode1 = (31 * $rt_s(2373).$hashCode1 | 0) + $rt_s(2373).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2373).$hashCode1;
            var$8 = $var6.$elementData.data;
            $var7 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$7) {
                    j: {
                        var$11 = $var7.$key;
                        if ($rt_s(2373) !== var$11) {
                            if ($rt_s(2373) !== var$11) {
                                if (var$11 instanceof jl_String) {
                                    var$11 = var$11;
                                    $par4 = $rt_s(2373).$nativeString !== var$11.$nativeString ? 0 : 1;
                                } else
                                    $par4 = 0;
                            } else
                                $par4 = 1;
                            if (!$par4) {
                                $par4 = 0;
                                break j;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                $var7 = $var7.$next3;
            }
            nms_MapGenScatteredFeature__init_0($par5Str, $var7 === null ? null : $var7.$value0);
            ju_ArrayList_ensureCapacity($par1World, $par1World.$size0 + 1 | 0);
            var$8 = $par1World.$array.data;
            $var8 = $par1World.$size0;
            $par1World.$size0 = $var8 + 1 | 0;
            var$8[$var8] = $par5Str;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        }
        k: {
            if (!$rt_s(2374).$hashCode1) {
                $par4 = 0;
                while (true) {
                    if ($par4 >= $rt_s(2374).$nativeString.length)
                        break k;
                    $rt_s(2374).$hashCode1 = (31 * $rt_s(2374).$hashCode1 | 0) + $rt_s(2374).$nativeString.charCodeAt($par4) | 0;
                    $par4 = $par4 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2374).$hashCode1;
        var$8 = $var6.$elementData.data;
        $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($par5Str !== null) {
            if ($par5Str.$origKeyHash == var$7) {
                l: {
                    $var10 = $par5Str.$key;
                    if ($rt_s(2374) !== $var10) {
                        if ($rt_s(2374) !== $var10) {
                            if ($var10 instanceof jl_String) {
                                $var10 = $var10;
                                $par4 = $rt_s(2374).$nativeString !== $var10.$nativeString ? 0 : 1;
                            } else
                                $par4 = 0;
                        } else
                            $par4 = 1;
                        if (!$par4) {
                            $par4 = 0;
                            break l;
                        }
                    }
                    $par4 = 1;
                }
                if ($par4)
                    break;
            }
            $par5Str = $par5Str.$next3;
        }
        if ($par5Str === null ? 0 : 1) {
            m: {
                $par1World = $this.$structureGenerators;
                $par5Str = new nms_MapGenMineshaft;
                if (!$rt_s(2374).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(2374).$nativeString.length)
                            break m;
                        $rt_s(2374).$hashCode1 = (31 * $rt_s(2374).$hashCode1 | 0) + $rt_s(2374).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2374).$hashCode1;
            var$8 = $var6.$elementData.data;
            $var10 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var10 !== null) {
                if ($var10.$origKeyHash == var$7) {
                    n: {
                        $var7 = $var10.$key;
                        if ($rt_s(2374) !== $var7) {
                            if ($rt_s(2374) === $var7)
                                $par4 = 1;
                            else if ($var7 instanceof jl_String) {
                                $var7 = $var7;
                                $par4 = $rt_s(2374).$nativeString !== $var7.$nativeString ? 0 : 1;
                            } else
                                $par4 = 0;
                            if (!$par4) {
                                $par4 = 0;
                                break n;
                            }
                        }
                        $par4 = 1;
                    }
                    if ($par4)
                        break;
                }
                $var10 = $var10.$next3;
            }
            var$12 = $var10 === null ? null : $var10.$value0;
            $par5Str.$range = 8;
            $var10 = new nle_EaglercraftRandom;
            var$13 = Long_fromNumber(performance.now() * 1000000.0);
            $var10.$seed = Long_fromInt(69);
            $var10.$haveNextNextGaussian = 0;
            $var10.$seed = var$13;
            $par5Str.$rand1 = $var10;
            $var10 = new ju_HashMap;
            $par4 = ju_HashMap_calculateCapacity(16);
            $var10.$elementCount = 0;
            var$14 = $rt_createArray(ju_HashMap$HashEntry, $par4);
            var$8 = var$14.data;
            $var10.$elementData = var$14;
            $var10.$loadFactor = 0.75;
            $var10.$threshold = var$8.length * 0.75 | 0;
            $par5Str.$structureMap = $var10;
            $par5Str.$field_82673_e = 0.01;
            var$15 = new ju_HashMap$EntryIterator;
            var$15.$associatedMap = var$12;
            var$15.$expectedModCount = var$12.$modCount1;
            var$15.$futureEntry0 = null;
            while (ju_HashMap$AbstractMapIterator_hasNext(var$15)) {
                ju_HashMap$AbstractMapIterator_makeNext(var$15);
                var$11 = var$15.$currentEntry0;
                $var7 = var$11.$key;
                if ($var7 === $rt_s(2375))
                    $par4 = 1;
                else if (!($rt_s(2375) instanceof jl_String))
                    $par4 = 0;
                else {
                    $var10 = $rt_s(2375);
                    $par4 = $var7.$nativeString !== $var10.$nativeString ? 0 : 1;
                }
                if ($par4) {
                    $var10 = var$11.$value0;
                    var$16 = $par5Str.$field_82673_e;
                    o: {
                        try {
                            var$17 = jl_Double_parseDouble($var10);
                            var$16 = var$17;
                            break o;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                            } else {
                                throw $$e;
                            }
                        }
                        var$17 = var$16;
                    }
                    $par5Str.$field_82673_e = var$17;
                }
            }
            ju_ArrayList_ensureCapacity($par1World, $par1World.$size0 + 1 | 0);
            var$8 = $par1World.$array.data;
            $var8 = $par1World.$size0;
            $par1World.$size0 = $var8 + 1 | 0;
            var$8[$var8] = $par5Str;
            $par1World.$modCount = $par1World.$modCount + 1 | 0;
        }
        p: {
            if (!$rt_s(2376).$hashCode1) {
                $par4 = 0;
                while (true) {
                    if ($par4 >= $rt_s(2376).$nativeString.length)
                        break p;
                    $rt_s(2376).$hashCode1 = (31 * $rt_s(2376).$hashCode1 | 0) + $rt_s(2376).$nativeString.charCodeAt($par4) | 0;
                    $par4 = $par4 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2376).$hashCode1;
        var$8 = $var6.$elementData.data;
        $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($par5Str !== null) {
            if ($par5Str.$origKeyHash == var$7) {
                q: {
                    $var10 = $par5Str.$key;
                    if ($rt_s(2376) !== $var10) {
                        if ($rt_s(2376) !== $var10) {
                            if ($var10 instanceof jl_String) {
                                $var10 = $var10;
                                $par4 = $rt_s(2376).$nativeString !== $var10.$nativeString ? 0 : 1;
                            } else
                                $par4 = 0;
                        } else
                            $par4 = 1;
                        if (!$par4) {
                            $par4 = 0;
                            break q;
                        }
                    }
                    $par4 = 1;
                }
                if ($par4)
                    break;
            }
            $par5Str = $par5Str.$next3;
        }
        if ($par5Str === null ? 0 : 1) {
            r: {
                $par5Str = $this.$structureGenerators;
                $var10 = new nms_MapGenStronghold;
                if (!$rt_s(2376).$hashCode1) {
                    $par4 = 0;
                    while (true) {
                        if ($par4 >= $rt_s(2376).$nativeString.length)
                            break r;
                        $rt_s(2376).$hashCode1 = (31 * $rt_s(2376).$hashCode1 | 0) + $rt_s(2376).$nativeString.charCodeAt($par4) | 0;
                        $par4 = $par4 + 1 | 0;
                    }
                }
            }
            $par4 = $rt_s(2376).$hashCode1;
            var$8 = $var6.$elementData.data;
            $var7 = var$8[$par4 & (var$8.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == $par4) {
                    s: {
                        var$11 = $var7.$key;
                        if ($rt_s(2376) !== var$11) {
                            if ($rt_s(2376) !== var$11) {
                                if (var$11 instanceof jl_String) {
                                    var$11 = var$11;
                                    $var8 = $rt_s(2376).$nativeString !== var$11.$nativeString ? 0 : 1;
                                } else
                                    $var8 = 0;
                            } else
                                $var8 = 1;
                            if (!$var8) {
                                $var8 = 0;
                                break s;
                            }
                        }
                        $var8 = 1;
                    }
                    if ($var8)
                        break;
                }
                $var7 = $var7.$next3;
            }
            nms_MapGenStronghold__init_($var10, $var7 === null ? null : $var7.$value0);
            ju_ArrayList_ensureCapacity($par5Str, $par5Str.$size0 + 1 | 0);
            var$8 = $par5Str.$array.data;
            $var8 = $par5Str.$size0;
            $par5Str.$size0 = $var8 + 1 | 0;
            var$8[$var8] = $var10;
            $par5Str.$modCount = $par5Str.$modCount + 1 | 0;
        }
    }
    t: {
        $par5Str = $this.$flatWorldGenInfo.$worldFeatures;
        if (!$rt_s(2377).$hashCode1) {
            $par4 = 0;
            while (true) {
                if ($par4 >= $rt_s(2377).$nativeString.length)
                    break t;
                $rt_s(2377).$hashCode1 = (31 * $rt_s(2377).$hashCode1 | 0) + $rt_s(2377).$nativeString.charCodeAt($par4) | 0;
                $par4 = $par4 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2377).$hashCode1;
    var$8 = $par5Str.$elementData.data;
    $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
    while ($par5Str !== null) {
        if ($par5Str.$origKeyHash == var$7) {
            u: {
                $var10 = $par5Str.$key;
                if ($rt_s(2377) !== $var10) {
                    if ($rt_s(2377) === $var10)
                        $par4 = 1;
                    else if (!($var10 instanceof jl_String))
                        $par4 = 0;
                    else {
                        $var10 = $var10;
                        $par4 = $rt_s(2377).$nativeString !== $var10.$nativeString ? 0 : 1;
                    }
                    if (!$par4) {
                        $par4 = 0;
                        break u;
                    }
                }
                $par4 = 1;
            }
            if ($par4)
                break;
        }
        $par5Str = $par5Str.$next3;
    }
    $par4 = $par5Str === null ? 0 : 1;
    v: {
        $this.$hasDecoration = $par4;
        $par5Str = $this.$flatWorldGenInfo.$worldFeatures;
        if (!$rt_s(2378).$hashCode1) {
            $par4 = 0;
            while (true) {
                if ($par4 >= $rt_s(2378).$nativeString.length)
                    break v;
                $rt_s(2378).$hashCode1 = (31 * $rt_s(2378).$hashCode1 | 0) + $rt_s(2378).$nativeString.charCodeAt($par4) | 0;
                $par4 = $par4 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2378).$hashCode1;
    var$8 = $par5Str.$elementData.data;
    $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
    while ($par5Str !== null) {
        if ($par5Str.$origKeyHash == var$7) {
            w: {
                $var10 = $par5Str.$key;
                if ($rt_s(2378) !== $var10) {
                    if ($rt_s(2378) === $var10)
                        $par4 = 1;
                    else if (!($var10 instanceof jl_String))
                        $par4 = 0;
                    else {
                        $var10 = $var10;
                        $par4 = $rt_s(2378).$nativeString !== $var10.$nativeString ? 0 : 1;
                    }
                    if (!$par4) {
                        $par4 = 0;
                        break w;
                    }
                }
                $par4 = 1;
            }
            if ($par4)
                break;
        }
        $par5Str = $par5Str.$next3;
    }
    if ($par5Str === null ? 0 : 1) {
        $par1World = new nms_WorldGenLakes;
        nms_Block_$callClinit();
        $par4 = nms_Block_waterStill.$blockID;
        $par1World.$doBlockNotify = 0;
        $par1World.$blockIndex = $par4;
        $this.$waterLakeGenerator = $par1World;
    }
    x: {
        $par5Str = $this.$flatWorldGenInfo.$worldFeatures;
        if (!$rt_s(2379).$hashCode1) {
            $par4 = 0;
            while (true) {
                if ($par4 >= $rt_s(2379).$nativeString.length)
                    break x;
                $rt_s(2379).$hashCode1 = (31 * $rt_s(2379).$hashCode1 | 0) + $rt_s(2379).$nativeString.charCodeAt($par4) | 0;
                $par4 = $par4 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2379).$hashCode1;
    var$8 = $par5Str.$elementData.data;
    $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
    while ($par5Str !== null) {
        if ($par5Str.$origKeyHash == var$7) {
            y: {
                $var10 = $par5Str.$key;
                if ($rt_s(2379) !== $var10) {
                    if ($rt_s(2379) === $var10)
                        $par4 = 1;
                    else if (!($var10 instanceof jl_String))
                        $par4 = 0;
                    else {
                        $var10 = $var10;
                        $par4 = $rt_s(2379).$nativeString !== $var10.$nativeString ? 0 : 1;
                    }
                    if (!$par4) {
                        $par4 = 0;
                        break y;
                    }
                }
                $par4 = 1;
            }
            if ($par4)
                break;
        }
        $par5Str = $par5Str.$next3;
    }
    if ($par5Str === null ? 0 : 1) {
        $par1World = new nms_WorldGenLakes;
        nms_Block_$callClinit();
        $par4 = nms_Block_lavaStill.$blockID;
        $par1World.$doBlockNotify = 0;
        $par1World.$blockIndex = $par4;
        $this.$lavaLakeGenerator = $par1World;
    }
    z: {
        $par5Str = $this.$flatWorldGenInfo.$worldFeatures;
        if (!$rt_s(2380).$hashCode1) {
            $par4 = 0;
            while (true) {
                if ($par4 >= $rt_s(2380).$nativeString.length)
                    break z;
                $rt_s(2380).$hashCode1 = (31 * $rt_s(2380).$hashCode1 | 0) + $rt_s(2380).$nativeString.charCodeAt($par4) | 0;
                $par4 = $par4 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2380).$hashCode1;
    var$8 = $par5Str.$elementData.data;
    $par5Str = var$8[var$7 & (var$8.length - 1 | 0)];
    while ($par5Str !== null) {
        if ($par5Str.$origKeyHash == var$7) {
            ba: {
                $var10 = $par5Str.$key;
                if ($rt_s(2380) !== $var10) {
                    if ($rt_s(2380) === $var10)
                        $par4 = 1;
                    else if (!($var10 instanceof jl_String))
                        $par4 = 0;
                    else {
                        $var10 = $var10;
                        $par4 = $rt_s(2380).$nativeString !== $var10.$nativeString ? 0 : 1;
                    }
                    if (!$par4) {
                        $par4 = 0;
                        break ba;
                    }
                }
                $par4 = 1;
            }
            if ($par4)
                break;
        }
        $par5Str = $par5Str.$next3;
    }
    $this.$hasDungeons = $par5Str === null ? 0 : 1;
    $par1World = $this.$flatWorldGenInfo.$flatLayers;
    $var9$index = 0;
    var$7 = $par1World.$modCount;
    var$19 = $par1World.$size();
    while ($var9$index >= var$19 ? 0 : 1) {
        if (var$7 < $par1World.$modCount) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var9$index_0 = $var9$index + 1 | 0;
        $var10 = $par1World.$get($var9$index);
        var$21 = $var10.$layerMinimumY;
        $var8 = var$21;
        while ($var8 < (var$21 + $var10.$layerCount | 0)) {
            $this.$cachedBlockIDs.data[$var8] = ($var10.$layerFillBlock & 255) << 24 >> 24;
            $this.$cachedBlockMetadata.data[$var8] = $var10.$layerFillBlockMeta << 24 >> 24;
            $var8 = $var8 + 1 | 0;
        }
        $var9$index = $var9$index_0;
    }
},
nms_ChunkProviderFlat__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ChunkProviderFlat();
    nms_ChunkProviderFlat__init_(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ChunkProviderFlat_provideChunk = ($this, $par1, $par2) => {
    let $var3, $var4, $var5, $var6, $var7, $var8, $var11, $var9, $var10, var$12, var$13, $var12$index, $var13, var$16, $var12$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12$index_0 = $thread.pop();var$16 = $thread.pop();$var13 = $thread.pop();$var12$index = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var11 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = nms_Chunk__init_1($this.$worldObj8, $par1, $par2);
        $var4 = 0;
        while ($var4 < $this.$cachedBlockIDs.data.length) {
            $var5 = $var4 >> 4;
            $var6 = $var3.$storageArrays.data[$var5];
            if ($var6 === null) {
                $var6 = nms_ExtendedBlockStorage__init_($var4, $this.$worldObj8.$provider.$hasNoSky ? 0 : 1);
                $var3.$storageArrays.data[$var5] = $var6;
            }
            $var7 = 0;
            while ($var7 < 16) {
                $var8 = 0;
                while ($var8 < 16) {
                    $var5 = $var4 & 15;
                    nms_ExtendedBlockStorage_setExtBlockID($var6, $var7, $var5, $var8, $this.$cachedBlockIDs.data[$var4] & 255);
                    $var11 = $this.$cachedBlockMetadata.data[$var4];
                    nms_NibbleArray_set($var6.$blockMetadataArray, $var7, $var5, $var8, $var11);
                    $var8 = $var8 + 1 | 0;
                }
                $var7 = $var7 + 1 | 0;
            }
            $var4 = $var4 + 1 | 0;
        }
        nms_Chunk_generateSkylightMap($var3);
        $var9 = $this.$worldObj8.$provider.$worldChunkMgr.$loadBlockGeneratorData(null, $par1 * 16 | 0, $par2 * 16 | 0, 16, 16);
        $var10 = $var3.$blockBiomeArray;
        $var11 = 0;
        while (true) {
            var$12 = $var10.data;
            if ($var11 >= var$12.length)
                break;
            var$12[$var11] = $var9.data[$var11].$biomeID << 24 >> 24;
            $var11 = $var11 + 1 | 0;
        }
        $var6 = $this.$structureGenerators;
        $var5 = $var6.$modCount;
        $var4 = $var6.$size();
        var$13 = null;
        if (!(0 >= $var4 ? 0 : 1)) {
            nms_Chunk_generateSkylightMap($var3);
            return $var3;
        }
        if ($var5 < $var6.$modCount) {
            $var6 = new ju_ConcurrentModificationException;
            $var6.$suppressionEnabled = 1;
            $var6.$writableStackTrace = 1;
            $rt_throw($var6);
        }
        $var12$index = 0 + 1 | 0;
        $var13 = $var6.$get(0);
        var$16 = $this.$worldObj8;
        $ptr = 1;
    case 1:
        nms_MapGenBase_generate($var13, $this, var$16, $par1, $par2, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var12$index_0 = $var12$index;
        if (!($var12$index_0 >= $var4 ? 0 : 1)) {
            nms_Chunk_generateSkylightMap($var3);
            return $var3;
        }
        if ($var5 < $var6.$modCount) {
            $var6 = new ju_ConcurrentModificationException;
            $var6.$suppressionEnabled = 1;
            $var6.$writableStackTrace = 1;
            $rt_throw($var6);
        }
        $var12$index = $var12$index_0 + 1 | 0;
        $var13 = $var6.$get($var12$index_0);
        var$16 = $this.$worldObj8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, $var4, $var5, $var6, $var7, $var8, $var11, $var9, $var10, var$12, var$13, $var12$index, $var13, var$16, $var12$index_0, $ptr);
},
nms_ChunkProviderFlat_populate = ($this, $par1IChunkProvider, $par2, $par3) => {
    let $var4, $var5, $var17, $var7, $var18, $var14, $var13, $var6, $var10, $var16, $var12$index, var$15, $var12$index_0, var$17, $var8, var$19, var$20, var$21, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var8 = $thread.pop();var$17 = $thread.pop();$var12$index_0 = $thread.pop();var$15 = $thread.pop();$var12$index = $thread.pop();$var16 = $thread.pop();$var10 = $thread.pop();$var6 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();$var18 = $thread.pop();$var7 = $thread.pop();$var17 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IChunkProvider
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par2 * 16 | 0;
        $var5 = $par3 * 16 | 0;
        $par1IChunkProvider = $this.$worldObj8;
        $var17 = $var4 + 16 | 0;
        $var7 = $var5 + 16 | 0;
        $var18 = $var17 >> 4;
        $var14 = $var7 >> 4;
        $var13 = $par1IChunkProvider.$chunkProvider;
        $var6 = $var13.$loadedChunkHashMap;
        $var10 = Long_or(Long_and(Long_fromInt($var18), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var14), Long_create(4294967295, 0)), 32));
        $var16 = Long_lo(Long_xor($var10, Long_shru($var10, 32)));
        $var16 = $var16 ^ ($var16 >>> 20 | 0) ^ ($var16 >>> 12 | 0);
        $var12$index = $var16 ^ ($var16 >>> 7 | 0) ^ ($var16 >>> 4 | 0);
        var$15 = $var6.$hashArray.data;
        $var12$index_0 = $var12$index & (var$15.length - 1 | 0);
        $var6 = var$15[$var12$index_0];
        a: {
            while (true) {
                if ($var6 === null) {
                    $var6 = null;
                    break a;
                }
                if (Long_eq($var6.$key1, $var10))
                    break;
                $var6 = $var6.$nextEntry;
            }
        }
        $var16 = $var6 === null ? 0 : 1;
        b: {
            c: {
                if ($var16) {
                    $var6 = var$15[$var12$index_0];
                    d: {
                        while ($var6 !== null) {
                            if (Long_eq($var6.$key1, $var10)) {
                                $var6 = $var6.$value4;
                                break d;
                            }
                            $var6 = $var6.$nextEntry;
                        }
                        $var6 = null;
                    }
                    $var6 = $var6;
                    if ($var6 === null) {
                        if ($var13.$worldObj0.$findingSpawnPoint)
                            break b;
                        if ($var13.$loadChunkOnProvideRequest)
                            break b;
                        $var6 = $var13.$defaultEmptyChunk;
                    }
                    if ($var6 !== null) {
                        $var6 = nms_Chunk_getBiomeGenForWorldCoords($var6, $var17 & 15, $var7 & 15, $par1IChunkProvider.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var6 = $par1IChunkProvider.$provider.$worldChunkMgr.$getBiomeGenAt($var17, $var7);
            }
            $var7 = 0;
            $this.$random.$seed = $this.$worldObj8.$worldInfo.$getSeed();
            $par1IChunkProvider = $this.$random;
            var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            $var8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
            var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            $var8 = Long_add(Long_mul(Long_div(Long_add($var8, Long_fromInt(Long_lo(Long_shru(var$17, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1));
            var$19 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$19;
            $var10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$19, 16))), 32);
            var$17 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1IChunkProvider.$seed = var$17;
            $par1IChunkProvider.$seed = Long_xor(Long_add(Long_mul(Long_fromInt($par2), $var8), Long_mul(Long_fromInt($par3), Long_add(Long_mul(Long_div(Long_add($var10, Long_fromInt(Long_lo(Long_shru(var$17, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1)))), $this.$worldObj8.$worldInfo.$getSeed());
            $par1IChunkProvider = $this.$structureGenerators;
            $var16 = $par1IChunkProvider.$modCount;
            $var18 = $par1IChunkProvider.$size();
            if (0 >= $var18 ? 0 : 1) {
                if ($var16 < $par1IChunkProvider.$modCount) {
                    $par1IChunkProvider = new ju_ConcurrentModificationException;
                    $par1IChunkProvider.$suppressionEnabled = 1;
                    $par1IChunkProvider.$writableStackTrace = 1;
                    $rt_throw($par1IChunkProvider);
                }
                $var12$index_0 = 0 + 1 | 0;
                $var13 = $par1IChunkProvider.$get(0);
                var$20 = $this.$worldObj8;
                var$21 = $this.$random;
                $ptr = 2;
                continue main;
            }
            $par1IChunkProvider = $this.$waterLakeGenerator;
            if ($par1IChunkProvider !== null && !$var7) {
                $var13 = $this.$random;
                var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru($var8, 17)))), 31)) | 0) + 8 | 0;
                    var$20 = $this.$worldObj8;
                    $ptr = 3;
                    continue main;
                }
            }
            e: {
                $par1IChunkProvider = $this.$lavaLakeGenerator;
                if ($par1IChunkProvider !== null && !$var7) {
                    $var13 = $this.$random;
                    var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = var$17;
                        $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                        $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $var7 = Long_lo(Long_shru($var8, 17));
                        while (true) {
                            $var17 = $var7 % 120 | 0;
                            if ((($var7 - $var17 | 0) + 119 | 0) >= 0)
                                break;
                            $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var13.$seed = $var8;
                            $var7 = Long_lo(Long_shru($var8, 17));
                        }
                        $var18 = $var17 + 8 | 0;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $var7 = Long_lo(Long_shru($var8, 17));
                        $par2 = $var18 - 1 | 0;
                        if (!($var18 & $par2))
                            $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt($var18), Long_fromInt($var7)), 31));
                        else
                            while (true) {
                                $var17 = $var7 % $var18 | 0;
                                if ((($var7 - $var17 | 0) + $par2 | 0) >= 0)
                                    break;
                                $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var13.$seed = $var8;
                                $var7 = Long_lo(Long_shru($var8, 17));
                            }
                        var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = var$17;
                        $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                        if ($var17 < 63)
                            break e;
                        $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $par3 = Long_lo(Long_shru($var8, 17));
                        while (true) {
                            $var7 = $par3 % 10 | 0;
                            if ((($par3 - $var7 | 0) + 9 | 0) >= 0)
                                break;
                            $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var13.$seed = $var8;
                            $par3 = Long_lo(Long_shru($var8, 17));
                        }
                        if (!$var7)
                            break e;
                    }
                }
                if ($this.$hasDungeons) {
                    $var16 = 0;
                    $par2 = 17;
                    var$17 = Long_fromInt(16);
                    var$19 = Long_fromInt(128);
                    if ($var16 < 8) {
                        $par1IChunkProvider = $this.$random;
                        $var8 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var8;
                        $var17 = ($var4 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                        $var10 = Long_and(Long_add(Long_mul($var8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var10;
                        $var18 = Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru($var10, $par2)))), 31));
                        $var8 = Long_and(Long_add(Long_mul($var10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1IChunkProvider.$seed = $var8;
                        $var15 = ($var5 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                        $var13 = new nms_WorldGenDungeons;
                        nms_WorldGenDungeons_$callClinit();
                        $var13.$doBlockNotify = 0;
                        var$20 = $this.$worldObj8;
                        $ptr = 5;
                        continue main;
                    }
                }
                if (!$this.$hasDecoration)
                    return;
                $par1IChunkProvider = $this.$worldObj8;
                $var13 = $this.$random;
                $ptr = 4;
                continue main;
            }
            var$20 = $this.$worldObj8;
            $ptr = 6;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var13, $var18, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $var6 === null ? $par1IChunkProvider.$provider.$worldChunkMgr.$getBiomeGenAt($var17, $var7) : nms_Chunk_getBiomeGenForWorldCoords($var6, $var17 & 15, $var7 & 15, $par1IChunkProvider.$provider.$worldChunkMgr);
        $var7 = 0;
        $this.$random.$seed = $this.$worldObj8.$worldInfo.$getSeed();
        $par1IChunkProvider = $this.$random;
        var$17 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$17;
        $var8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
        var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$17;
        $var8 = Long_add(Long_mul(Long_div(Long_add($var8, Long_fromInt(Long_lo(Long_shru(var$17, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1));
        var$19 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$19;
        $var10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$19, 16))), 32);
        var$17 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = var$17;
        $par1IChunkProvider.$seed = Long_xor(Long_add(Long_mul(Long_fromInt($par2), $var8), Long_mul(Long_fromInt($par3), Long_add(Long_mul(Long_div(Long_add($var10, Long_fromInt(Long_lo(Long_shru(var$17, 16)))), Long_fromInt(2)), Long_fromInt(2)), Long_fromInt(1)))), $this.$worldObj8.$worldInfo.$getSeed());
        $par1IChunkProvider = $this.$structureGenerators;
        $var16 = $par1IChunkProvider.$modCount;
        $var18 = $par1IChunkProvider.$size();
        if (0 >= $var18 ? 0 : 1) {
            if ($var16 < $par1IChunkProvider.$modCount) {
                $par1IChunkProvider = new ju_ConcurrentModificationException;
                $par1IChunkProvider.$suppressionEnabled = 1;
                $par1IChunkProvider.$writableStackTrace = 1;
                $rt_throw($par1IChunkProvider);
            }
            $var12$index_0 = 0 + 1 | 0;
            $var13 = $par1IChunkProvider.$get(0);
            var$20 = $this.$worldObj8;
            var$21 = $this.$random;
            $ptr = 2;
            continue main;
        }
        $par1IChunkProvider = $this.$waterLakeGenerator;
        if ($par1IChunkProvider !== null && !$var7) {
            $var13 = $this.$random;
            var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var13.$seed = var$17;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
                $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = $var8;
                $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru($var8, 17)))), 31)) | 0) + 8 | 0;
                var$20 = $this.$worldObj8;
                $ptr = 3;
                continue main;
            }
        }
        c: {
            $par1IChunkProvider = $this.$lavaLakeGenerator;
            if ($par1IChunkProvider !== null && !$var7) {
                $var13 = $this.$random;
                var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var7 = Long_lo(Long_shru($var8, 17));
                    while (true) {
                        $var17 = $var7 % 120 | 0;
                        if ((($var7 - $var17 | 0) + 119 | 0) >= 0)
                            break;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $var7 = Long_lo(Long_shru($var8, 17));
                    }
                    $var18 = $var17 + 8 | 0;
                    $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var7 = Long_lo(Long_shru($var8, 17));
                    $par2 = $var18 - 1 | 0;
                    if (!($var18 & $par2))
                        $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt($var18), Long_fromInt($var7)), 31));
                    else
                        while (true) {
                            $var17 = $var7 % $var18 | 0;
                            if ((($var7 - $var17 | 0) + $par2 | 0) >= 0)
                                break;
                            $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var13.$seed = $var8;
                            $var7 = Long_lo(Long_shru($var8, 17));
                        }
                    var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    if ($var17 < 63)
                        break c;
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $par3 = Long_lo(Long_shru($var8, 17));
                    while (true) {
                        $var7 = $par3 % 10 | 0;
                        if ((($par3 - $var7 | 0) + 9 | 0) >= 0)
                            break;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $par3 = Long_lo(Long_shru($var8, 17));
                    }
                    if (!$var7)
                        break c;
                }
            }
            if ($this.$hasDungeons) {
                $var16 = 0;
                $par2 = 17;
                var$17 = Long_fromInt(16);
                var$19 = Long_fromInt(128);
                if ($var16 < 8) {
                    $par1IChunkProvider = $this.$random;
                    $var8 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var8;
                    $var17 = ($var4 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                    $var10 = Long_and(Long_add(Long_mul($var8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var10;
                    $var18 = Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru($var10, $par2)))), 31));
                    $var8 = Long_and(Long_add(Long_mul($var10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var8;
                    $var15 = ($var5 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                    $var13 = new nms_WorldGenDungeons;
                    nms_WorldGenDungeons_$callClinit();
                    $var13.$doBlockNotify = 0;
                    var$20 = $this.$worldObj8;
                    $ptr = 5;
                    continue main;
                }
            }
            if (!$this.$hasDecoration)
                return;
            $par1IChunkProvider = $this.$worldObj8;
            $var13 = $this.$random;
            $ptr = 4;
            continue main;
        }
        var$20 = $this.$worldObj8;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_MapGenStructure_generateStructuresInChunk($var13, var$20, var$21, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        if ($var13 instanceof nms_MapGenVillage)
            $var7 = $var7 | $var14;
        $var12$index = $var12$index_0;
        if ($var12$index >= $var18 ? 0 : 1) {
            if ($var16 < $par1IChunkProvider.$modCount) {
                $par1IChunkProvider = new ju_ConcurrentModificationException;
                $par1IChunkProvider.$suppressionEnabled = 1;
                $par1IChunkProvider.$writableStackTrace = 1;
                $rt_throw($par1IChunkProvider);
            }
            $var12$index_0 = $var12$index + 1 | 0;
            $var13 = $par1IChunkProvider.$get($var12$index);
            var$20 = $this.$worldObj8;
            var$21 = $this.$random;
            continue main;
        }
        $par1IChunkProvider = $this.$waterLakeGenerator;
        if ($par1IChunkProvider !== null && !$var7) {
            $var13 = $this.$random;
            var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var13.$seed = var$17;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31));
                $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = $var8;
                $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru($var8, 17)))), 31)) | 0) + 8 | 0;
                var$20 = $this.$worldObj8;
                $ptr = 3;
                continue main;
            }
        }
        c: {
            $par1IChunkProvider = $this.$lavaLakeGenerator;
            if ($par1IChunkProvider !== null && !$var7) {
                $var13 = $this.$random;
                var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var7 = Long_lo(Long_shru($var8, 17));
                    while (true) {
                        $var17 = $var7 % 120 | 0;
                        if ((($var7 - $var17 | 0) + 119 | 0) >= 0)
                            break;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $var7 = Long_lo(Long_shru($var8, 17));
                    }
                    $var18 = $var17 + 8 | 0;
                    $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var7 = Long_lo(Long_shru($var8, 17));
                    $par2 = $var18 - 1 | 0;
                    if (!($var18 & $par2))
                        $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt($var18), Long_fromInt($var7)), 31));
                    else
                        while (true) {
                            $var17 = $var7 % $var18 | 0;
                            if ((($var7 - $var17 | 0) + $par2 | 0) >= 0)
                                break;
                            $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var13.$seed = $var8;
                            $var7 = Long_lo(Long_shru($var8, 17));
                        }
                    var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    if ($var17 < 63)
                        break c;
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $par3 = Long_lo(Long_shru($var8, 17));
                    while (true) {
                        $var7 = $par3 % 10 | 0;
                        if ((($par3 - $var7 | 0) + 9 | 0) >= 0)
                            break;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $par3 = Long_lo(Long_shru($var8, 17));
                    }
                    if (!$var7)
                        break c;
                }
            }
            if ($this.$hasDungeons) {
                $var16 = 0;
                $par2 = 17;
                var$17 = Long_fromInt(16);
                var$19 = Long_fromInt(128);
                if ($var16 < 8) {
                    $par1IChunkProvider = $this.$random;
                    $var8 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var8;
                    $var17 = ($var4 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                    $var10 = Long_and(Long_add(Long_mul($var8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var10;
                    $var18 = Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru($var10, $par2)))), 31));
                    $var8 = Long_and(Long_add(Long_mul($var10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var8;
                    $var15 = ($var5 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                    $var13 = new nms_WorldGenDungeons;
                    nms_WorldGenDungeons_$callClinit();
                    $var13.$doBlockNotify = 0;
                    var$20 = $this.$worldObj8;
                    $ptr = 5;
                    continue main;
                }
            }
            if (!$this.$hasDecoration)
                return;
            $par1IChunkProvider = $this.$worldObj8;
            $var13 = $this.$random;
            $ptr = 4;
            continue main;
        }
        var$20 = $this.$worldObj8;
        $ptr = 6;
        continue main;
    case 3:
        nms_WorldGenLakes_generate($par1IChunkProvider, var$20, $var13, $var16, $var17, $var18);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $par1IChunkProvider = $this.$lavaLakeGenerator;
            if ($par1IChunkProvider !== null && !$var7) {
                $var13 = $this.$random;
                var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var13.$seed = var$17;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31))) {
                    var$17 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var16 = ($var4 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var7 = Long_lo(Long_shru($var8, 17));
                    while (true) {
                        $var17 = $var7 % 120 | 0;
                        if ((($var7 - $var17 | 0) + 119 | 0) >= 0)
                            break;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $var7 = Long_lo(Long_shru($var8, 17));
                    }
                    $var18 = $var17 + 8 | 0;
                    $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $var7 = Long_lo(Long_shru($var8, 17));
                    $par2 = $var18 - 1 | 0;
                    if (!($var18 & $par2))
                        $var17 = Long_lo(Long_shr(Long_mul(Long_fromInt($var18), Long_fromInt($var7)), 31));
                    else
                        while (true) {
                            $var17 = $var7 % $var18 | 0;
                            if ((($var7 - $var17 | 0) + $par2 | 0) >= 0)
                                break;
                            $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var13.$seed = $var8;
                            $var7 = Long_lo(Long_shru($var8, 17));
                        }
                    var$17 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = var$17;
                    $var18 = ($var5 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$17, 17)))), 31)) | 0) + 8 | 0;
                    if ($var17 < 63)
                        break a;
                    $var8 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var13.$seed = $var8;
                    $par3 = Long_lo(Long_shru($var8, 17));
                    while (true) {
                        $var7 = $par3 % 10 | 0;
                        if ((($par3 - $var7 | 0) + 9 | 0) >= 0)
                            break;
                        $var8 = Long_and(Long_add(Long_mul($var13.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var13.$seed = $var8;
                        $par3 = Long_lo(Long_shru($var8, 17));
                    }
                    if (!$var7)
                        break a;
                }
            }
            if ($this.$hasDungeons) {
                $var16 = 0;
                $par2 = 17;
                var$17 = Long_fromInt(16);
                var$19 = Long_fromInt(128);
                if ($var16 < 8) {
                    $par1IChunkProvider = $this.$random;
                    $var8 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var8;
                    $var17 = ($var4 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                    $var10 = Long_and(Long_add(Long_mul($var8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var10;
                    $var18 = Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru($var10, $par2)))), 31));
                    $var8 = Long_and(Long_add(Long_mul($var10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1IChunkProvider.$seed = $var8;
                    $var15 = ($var5 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                    $var13 = new nms_WorldGenDungeons;
                    nms_WorldGenDungeons_$callClinit();
                    $var13.$doBlockNotify = 0;
                    var$20 = $this.$worldObj8;
                    $ptr = 5;
                    continue main;
                }
            }
            if (!$this.$hasDecoration)
                return;
            $par1IChunkProvider = $this.$worldObj8;
            $var13 = $this.$random;
            $ptr = 4;
            continue main;
        }
        var$20 = $this.$worldObj8;
        $ptr = 6;
        continue main;
    case 4:
        $var6.$decorate0($par1IChunkProvider, $var13, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_WorldGenDungeons_generate($var13, var$20, $par1IChunkProvider, $var17, $var18, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $var16 + 1 | 0;
        if ($var16 >= 8) {
            if (!$this.$hasDecoration)
                return;
            $par1IChunkProvider = $this.$worldObj8;
            $var13 = $this.$random;
            $ptr = 4;
            continue main;
        }
        $par1IChunkProvider = $this.$random;
        $var8 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var8;
        $var17 = ($var4 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
        $var10 = Long_and(Long_add(Long_mul($var8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var10;
        $var18 = Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru($var10, $par2)))), 31));
        $var8 = Long_and(Long_add(Long_mul($var10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var8;
        $var15 = ($var5 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
        $var13 = new nms_WorldGenDungeons;
        nms_WorldGenDungeons_$callClinit();
        $var13.$doBlockNotify = 0;
        var$20 = $this.$worldObj8;
        continue main;
    case 6:
        nms_WorldGenLakes_generate($par1IChunkProvider, var$20, $var13, $var16, $var17, $var18);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$hasDungeons) {
            $var16 = 0;
            $par2 = 17;
            var$17 = Long_fromInt(16);
            var$19 = Long_fromInt(128);
            if ($var16 < 8) {
                $par1IChunkProvider = $this.$random;
                $var8 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var8;
                $var17 = ($var4 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                $var10 = Long_and(Long_add(Long_mul($var8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var10;
                $var18 = Long_lo(Long_shr(Long_mul(var$19, Long_fromInt(Long_lo(Long_shru($var10, $par2)))), 31));
                $var8 = Long_and(Long_add(Long_mul($var10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1IChunkProvider.$seed = $var8;
                $var15 = ($var5 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru($var8, $par2)))), 31)) | 0) + 8 | 0;
                $var13 = new nms_WorldGenDungeons;
                nms_WorldGenDungeons_$callClinit();
                $var13.$doBlockNotify = 0;
                var$20 = $this.$worldObj8;
                $ptr = 5;
                continue main;
            }
        }
        if (!$this.$hasDecoration)
            return;
        $par1IChunkProvider = $this.$worldObj8;
        $var13 = $this.$random;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IChunkProvider, $par2, $par3, $var4, $var5, $var17, $var7, $var18, $var14, $var13, $var6, $var10, $var16, $var12$index, var$15, $var12$index_0, var$17, $var8, var$19, var$20, var$21, $var15, $ptr);
},
nms_ChunkProviderFlat_unloadQueuedChunks = $this => {
    return 0;
},
nms_ChunkProviderFlat_findClosestStructure = ($this, $par1World, $par2Str, $par3, $par4, $par5) => {
    let var$6, var$7, $var6$index, var$9, var$10, $var6$index_0, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6$index_0 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var6$index = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Str = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($rt_s(1337) === $par2Str)
            var$6 = 1;
        else if (!($par2Str instanceof jl_String))
            var$6 = 0;
        else {
            $par2Str = $par2Str;
            var$6 = $rt_s(1337).$nativeString !== $par2Str.$nativeString ? 0 : 1;
        }
        a: {
            if (var$6) {
                var$7 = $this.$structureGenerators;
                $var6$index = 0;
                var$9 = var$7.$modCount;
                var$10 = var$7.$size();
                while (true) {
                    if (!($var6$index >= var$10 ? 0 : 1))
                        break a;
                    if (var$9 < var$7.$modCount) {
                        $par1World = new ju_ConcurrentModificationException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    $var6$index_0 = $var6$index + 1 | 0;
                    $var7 = var$7.$get($var6$index);
                    if ($var7 instanceof nms_MapGenStronghold) {
                        $ptr = 1;
                        continue main;
                    }
                    $var6$index = $var6$index_0;
                }
            }
        }
        return null;
    case 1:
        $tmp = nms_MapGenStructure_getNearestInstance($var7, $par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        return $par1World;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Str, $par3, $par4, $par5, var$6, var$7, $var6$index, var$9, var$10, $var6$index_0, $var7, $ptr);
},
nms_ChunkProviderFlat_recreateStructures = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, $var3$index, $var4, var$9, $var3$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3$index_0 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();$var3$index = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$structureGenerators;
        var$4 = var$3.$modCount;
        var$5 = var$3.$size();
        var$6 = null;
        if (!(0 >= var$5 ? 0 : 1))
            return;
        if (var$4 < var$3.$modCount) {
            var$6 = new ju_ConcurrentModificationException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        $var3$index = 0 + 1 | 0;
        $var4 = var$3.$get(0);
        var$9 = $this.$worldObj8;
        $ptr = 1;
    case 1:
        nms_MapGenBase_generate($var4, $this, var$9, $par1, $par2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var3$index_0 = $var3$index;
        if (!($var3$index_0 >= var$5 ? 0 : 1))
            return;
        if (var$4 < var$3.$modCount) {
            var$6 = new ju_ConcurrentModificationException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        $var3$index = $var3$index_0 + 1 | 0;
        $var4 = var$3.$get($var3$index_0);
        var$9 = $this.$worldObj8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, $var3$index, $var4, var$9, $var3$index_0, $ptr);
};
function nms_ChunkProviderEnd() {
    let a = this; jl_Object.call(a);
    a.$endRNG = null;
    a.$noiseGen10 = null;
    a.$noiseGen20 = null;
    a.$noiseGen30 = null;
    a.$noiseGen40 = null;
    a.$noiseGen50 = null;
    a.$endWorld = null;
    a.$densities = null;
    a.$biomesForGeneration0 = null;
    a.$noiseData10 = null;
    a.$noiseData20 = null;
    a.$noiseData30 = null;
    a.$noiseData4 = null;
    a.$noiseData50 = null;
    a.$field_73203_h = null;
}
let nms_ChunkProviderEnd__init_ = ($this, $par1World, $par2) => {
    let var$3, var$4, var$5;
    $this.$field_73203_h = $rt_createIntMultiArray([32, 32]);
    $this.$endWorld = $par1World;
    $par1World = new nle_EaglercraftRandom;
    $par1World.$seed = Long_fromInt(69);
    $par1World.$haveNextNextGaussian = 0;
    $par1World.$seed = $par2;
    $this.$endRNG = $par1World;
    var$3 = new nms_NoiseGeneratorOctaves;
    var$3.$octaves = 16;
    var$3.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$4 = 0;
    while (var$4 < 16) {
        var$3.$generatorCollection.data[var$4] = nms_NoiseGeneratorPerlin__init_($par1World);
        var$4 = var$4 + 1 | 0;
    }
    $this.$noiseGen10 = var$3;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$endRNG;
    $par1World.$octaves = 16;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$4 = 0;
    while (var$4 < 16) {
        $par1World.$generatorCollection.data[var$4] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$4 = var$4 + 1 | 0;
    }
    $this.$noiseGen20 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$endRNG;
    $par1World.$octaves = 8;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 8);
    var$5 = 0;
    while (var$5 < 8) {
        $par1World.$generatorCollection.data[var$5] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$5 = var$5 + 1 | 0;
    }
    $this.$noiseGen30 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$endRNG;
    $par1World.$octaves = 10;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 10);
    var$4 = 0;
    while (var$4 < 10) {
        $par1World.$generatorCollection.data[var$4] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$4 = var$4 + 1 | 0;
    }
    $this.$noiseGen40 = $par1World;
    $par1World = new nms_NoiseGeneratorOctaves;
    var$3 = $this.$endRNG;
    $par1World.$octaves = 16;
    $par1World.$generatorCollection = $rt_createArray(nms_NoiseGeneratorPerlin, 16);
    var$4 = 0;
    while (var$4 < 16) {
        $par1World.$generatorCollection.data[var$4] = nms_NoiseGeneratorPerlin__init_(var$3);
        var$4 = var$4 + 1 | 0;
    }
    $this.$noiseGen50 = $par1World;
},
nms_ChunkProviderEnd__init_0 = (var_0, var_1) => {
    let var_2 = new nms_ChunkProviderEnd();
    nms_ChunkProviderEnd__init_(var_2, var_0, var_1);
    return var_2;
},
nms_ChunkProviderEnd_generateTerrain = ($this, $par1, $par2, $par3ArrayOfByte, $par4ArrayOfBiomeGenBase) => {
    let var$5, $var9, $var10, $var11, $var51, $var14, $var42, $var16, $var50, $var18, $var20, $var22, $var24, $var26, $var28, $var30, $var37, $var39, $var41, $var12, var$25, $var48, $var44;
    var$5 = nms_ChunkProviderEnd_initializeNoiseField($this, $this.$densities, $par1 * 2 | 0, 0, $par2 * 2 | 0, 3, 33, 3);
    $this.$densities = var$5;
    $var9 = 0;
    while ($var9 < 2) {
        $var10 = 0;
        while ($var10 < 2) {
            $var11 = 0;
            while ($var11 < 32) {
                $par4ArrayOfBiomeGenBase = var$5.data;
                $par1 = (($var9 + 0 | 0) * 3 | 0) + $var10 | 0;
                $var51 = (($par1 + 0 | 0) * 33 | 0) + $var11 | 0;
                $var14 = $par4ArrayOfBiomeGenBase[$var51 + 0 | 0];
                $var42 = (($par1 + 1 | 0) * 33 | 0) + $var11 | 0;
                $var16 = $par4ArrayOfBiomeGenBase[$var42 + 0 | 0];
                $var50 = (($var9 + 1 | 0) * 3 | 0) + $var10 | 0;
                $par1 = (($var50 + 0 | 0) * 33 | 0) + $var11 | 0;
                $var18 = $par4ArrayOfBiomeGenBase[$par1 + 0 | 0];
                $par2 = (($var50 + 1 | 0) * 33 | 0) + $var11 | 0;
                $var20 = $par4ArrayOfBiomeGenBase[$par2 + 0 | 0];
                $var22 = ($par4ArrayOfBiomeGenBase[$var51 + 1 | 0] - $var14) * 0.25;
                $var24 = ($par4ArrayOfBiomeGenBase[$var42 + 1 | 0] - $var16) * 0.25;
                $var26 = ($par4ArrayOfBiomeGenBase[$par1 + 1 | 0] - $var18) * 0.25;
                $var28 = ($par4ArrayOfBiomeGenBase[$par2 + 1 | 0] - $var20) * 0.25;
                $var30 = 0;
                while ($var30 < 4) {
                    $var37 = ($var18 - $var14) * 0.125;
                    $var39 = ($var20 - $var16) * 0.125;
                    $var41 = 0;
                    $var12 = $var14;
                    var$25 = $var16;
                    while ($var41 < 8) {
                        $var42 = ($var41 + ($var9 * 8 | 0) | 0) << 11 | (0 + ($var10 * 8 | 0) | 0) << 7 | (($var11 * 4 | 0) + $var30 | 0);
                        $var48 = (var$25 - $var12) * 0.125;
                        $var50 = 0;
                        $var44 = $var12;
                        while ($var50 < 8) {
                            $var51 = 0;
                            if ($var44 > 0.0) {
                                nms_Block_$callClinit();
                                $var51 = nms_Block_whiteStone.$blockID;
                            }
                            $par3ArrayOfByte.data[$var42] = $var51 << 24 >> 24;
                            $var42 = $var42 + 128 | 0;
                            $var44 = $var44 + $var48;
                            $var50 = $var50 + 1 | 0;
                        }
                        $var12 = $var12 + $var37;
                        var$25 = var$25 + $var39;
                        $var41 = $var41 + 1 | 0;
                    }
                    $var14 = $var14 + $var22;
                    $var16 = $var16 + $var24;
                    $var18 = $var18 + $var26;
                    $var20 = $var20 + $var28;
                    $var30 = $var30 + 1 | 0;
                }
                $var11 = $var11 + 1 | 0;
            }
            $var10 = $var10 + 1 | 0;
        }
        $var9 = $var9 + 1 | 0;
    }
},
nms_ChunkProviderEnd_replaceBlocksForBiome = ($this, $par1, $par2, $par3ArrayOfByte, $par4ArrayOfBiomeGenBase) => {
    let $var5, $var6, $var8, $var10, $var11, $var12, $var13;
    $var5 = 0;
    while ($var5 < 16) {
        $var6 = 0;
        while ($var6 < 16) {
            $var8 = (-1);
            nms_Block_$callClinit();
            $var10 = nms_Block_whiteStone.$blockID << 24 >> 24;
            $var11 = 127;
            $par2 = $var10;
            while ($var11 >= 0) {
                $par4ArrayOfBiomeGenBase = $par3ArrayOfByte.data;
                $var12 = ((($var6 * 16 | 0) + $var5 | 0) * 128 | 0) + $var11 | 0;
                $var13 = $par4ArrayOfBiomeGenBase[$var12];
                if (!$var13)
                    $var8 = (-1);
                else if ($var13 == nms_Block_stone.$blockID) {
                    if ($var8 != (-1)) {
                        if ($var8 > 0) {
                            $var8 = $var8 + (-1) | 0;
                            $par4ArrayOfBiomeGenBase[$var12] = $var10;
                        }
                    } else if ($var11 < 0) {
                        $par4ArrayOfBiomeGenBase[$var12] = $var10;
                        $var8 = 1;
                    } else {
                        $par4ArrayOfBiomeGenBase[$var12] = $par2;
                        $var8 = 1;
                    }
                }
                $var11 = $var11 + (-1) | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        $var5 = $var5 + 1 | 0;
    }
},
nms_ChunkProviderEnd_provideChunk = ($this, $par1, $par2) => {
    let $var3, var$4, $var4, $var5, $var6;
    $this.$endRNG.$seed = Long_add(Long_mul(Long_fromInt($par1), Long_create(2570712328, 79)), Long_mul(Long_fromInt($par2), Long_create(4048968661, 30)));
    $var3 = $rt_createByteArray(32768);
    var$4 = $this.$endWorld.$provider.$worldChunkMgr.$loadBlockGeneratorData($this.$biomesForGeneration0, $par1 * 16 | 0, $par2 * 16 | 0, 16, 16);
    $this.$biomesForGeneration0 = var$4;
    nms_ChunkProviderEnd_generateTerrain($this, $par1, $par2, $var3, var$4);
    nms_ChunkProviderEnd_replaceBlocksForBiome($this, $par1, $par2, $var3, $this.$biomesForGeneration0);
    $var4 = nms_Chunk__init_($this.$endWorld, $var3, $par1, $par2);
    $var5 = $var4.$blockBiomeArray;
    $var6 = 0;
    while (true) {
        var$4 = $var5.data;
        if ($var6 >= var$4.length)
            break;
        var$4[$var6] = $this.$biomesForGeneration0.data[$var6].$biomeID << 24 >> 24;
        $var6 = $var6 + 1 | 0;
    }
    nms_Chunk_generateSkylightMap($var4);
    return $var4;
},
nms_ChunkProviderEnd_initializeNoiseField = ($this, $par1ArrayOfDouble, $par2, $par3, $par4, $par5, $par6, $par7) => {
    let $var12, $var13, $var14, $var23, $var15, $var16, $var18, $var20, $var21, $var22, $var25, $var30, $var32, $var34, $var37;
    if ($par1ArrayOfDouble === null)
        $par1ArrayOfDouble = $rt_createDoubleArray($rt_imul($rt_imul($par5, $par6), $par7));
    $this.$noiseData4 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen40, $this.$noiseData4, $par2, 10, $par4, $par5, 1, $par7, 1.121, 1.0, 1.121);
    $this.$noiseData50 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen50, $this.$noiseData50, $par2, 10, $par4, $par5, 1, $par7, 200.0, 1.0, 200.0);
    $this.$noiseData10 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen30, $this.$noiseData10, $par2, $par3, $par4, $par5, $par6, $par7, 17.110300000000002, 4.277575000000001, 17.110300000000002);
    $this.$noiseData20 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen10, $this.$noiseData20, $par2, $par3, $par4, $par5, $par6, $par7, 1368.824, 684.412, 1368.824);
    $this.$noiseData30 = nms_NoiseGeneratorOctaves_generateNoiseOctaves($this.$noiseGen20, $this.$noiseData30, $par2, $par3, $par4, $par5, $par6, $par7, 1368.824, 684.412, 1368.824);
    $var12 = 0;
    $var13 = 0;
    $var14 = 0;
    $var23 = $par6 / 2.0;
    while ($var14 < $par5) {
        $var15 = 0;
        while ($var15 < $par7) {
            $var16 = ($this.$noiseData4.data[$var13] + 256.0) / 512.0;
            if ($var16 > 1.0)
                $var16 = 1.0;
            $var18 = $this.$noiseData50.data[$var13] / 8000.0;
            if ($var18 < 0.0)
                $var18 =  -$var18 * 0.3;
            $var18 = $var18 * 3.0 - 2.0;
            $var20 = (($var14 + $par2 | 0) - 0 | 0) / 1.0;
            $var21 = (($var15 + $par4 | 0) - 0 | 0) / 1.0;
            $var22 = 100.0 - jl_Math_sqrt($var20 * $var20 + $var21 * $var21) * 8.0;
            if ($var22 > 80.0)
                $var22 = 80.0;
            if ($var22 < (-100.0))
                $var22 = (-100.0);
            if ($var16 < 0.0)
                $var16 = 0.0;
            $var16 = $var16 + 0.5;
            $var13 = $var13 + 1 | 0;
            $var25 = 0;
            while ($var25 < $par6) {
                $var30 = $this.$noiseData20.data[$var12] / 512.0;
                $var32 = $this.$noiseData30.data[$var12] / 512.0;
                $var34 = ($this.$noiseData10.data[$var12] / 10.0 + 1.0) / 2.0;
                if ($var34 >= 0.0)
                    $var30 = $var34 > 1.0 ? $var32 : $var30 + ($var32 - $var30) * $var34;
                $var18 = $var30 - 8.0 + $var22;
                $par3 = ($par6 / 2 | 0) - 2 | 0;
                if ($var25 > $par3) {
                    $var37 = ($var25 - $par3 | 0) / 64.0;
                    if ($var37 < 0.0)
                        $var37 = 0.0;
                    if ($var37 > 1.0)
                        $var37 = 1.0;
                    $var18 = $var18 * (1.0 - $var37) + (-3000.0) * $var37;
                }
                if ($var25 < 8) {
                    $var37 = (8 - $var25 | 0) / 7.0;
                    $var18 = $var18 * (1.0 - $var37) + (-30.0) * $var37;
                }
                $par1ArrayOfDouble.data[$var12] = $var18;
                $var12 = $var12 + 1 | 0;
                $var25 = $var25 + 1 | 0;
            }
            $var15 = $var15 + 1 | 0;
        }
        $var14 = $var14 + 1 | 0;
    }
    return $par1ArrayOfDouble;
},
nms_ChunkProviderEnd_populate = ($this, $par1IChunkProvider, $par2, $par3) => {
    let $var4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1IChunkProvider = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_BlockSand_fallInstantly = 1;
        $var4 = $par2 * 16 | 0;
        $var5 = $par3 * 16 | 0;
        var$6 = $this.$endWorld;
        var$7 = $var4 + 16 | 0;
        var$8 = $var5 + 16 | 0;
        $par3 = var$7 >> 4;
        var$9 = var$8 >> 4;
        var$10 = var$6.$chunkProvider;
        $par1IChunkProvider = var$10.$loadedChunkHashMap;
        var$11 = Long_or(Long_and(Long_fromInt($par3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), 32));
        $par2 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
        $par2 = $par2 ^ ($par2 >>> 20 | 0) ^ ($par2 >>> 12 | 0);
        var$12 = $par2 ^ ($par2 >>> 7 | 0) ^ ($par2 >>> 4 | 0);
        var$13 = $par1IChunkProvider.$hashArray.data;
        var$14 = var$12 & (var$13.length - 1 | 0);
        $par1IChunkProvider = var$13[var$14];
        a: {
            while (true) {
                if ($par1IChunkProvider === null) {
                    $par1IChunkProvider = null;
                    break a;
                }
                if (Long_eq($par1IChunkProvider.$key1, var$11))
                    break;
                $par1IChunkProvider = $par1IChunkProvider.$nextEntry;
            }
        }
        $par2 = $par1IChunkProvider === null ? 0 : 1;
        b: {
            c: {
                if ($par2) {
                    $par1IChunkProvider = var$13[var$14];
                    d: {
                        while ($par1IChunkProvider !== null) {
                            if (Long_eq($par1IChunkProvider.$key1, var$11)) {
                                $par1IChunkProvider = $par1IChunkProvider.$value4;
                                break d;
                            }
                            $par1IChunkProvider = $par1IChunkProvider.$nextEntry;
                        }
                        $par1IChunkProvider = null;
                    }
                    $var6 = $par1IChunkProvider;
                    if ($var6 === null) {
                        if (var$10.$worldObj0.$findingSpawnPoint)
                            break b;
                        if (var$10.$loadChunkOnProvideRequest)
                            break b;
                        $var6 = var$10.$defaultEmptyChunk;
                    }
                    if ($var6 !== null) {
                        $var6 = nms_Chunk_getBiomeGenForWorldCoords($var6, var$7 & 15, var$8 & 15, var$6.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var6 = var$6.$provider.$worldChunkMgr.$getBiomeGenAt(var$7, var$8);
            }
            $par1IChunkProvider = $this.$endWorld;
            var$6 = $par1IChunkProvider.$rand0;
            $ptr = 1;
            continue main;
        }
        $ptr = 2;
        continue main;
    case 1:
        $var6.$decorate0($par1IChunkProvider, var$6, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        nms_BlockSand_fallInstantly = 0;
        return;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk(var$10, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var6 = $var6 === null ? var$6.$provider.$worldChunkMgr.$getBiomeGenAt(var$7, var$8) : nms_Chunk_getBiomeGenForWorldCoords($var6, var$7 & 15, var$8 & 15, var$6.$provider.$worldChunkMgr);
        $par1IChunkProvider = $this.$endWorld;
        var$6 = $par1IChunkProvider.$rand0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IChunkProvider, $par2, $par3, $var4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var6, $ptr);
},
nms_ChunkProviderEnd_unloadQueuedChunks = $this => {
    return 0;
},
nms_ChunkProviderEnd_findClosestStructure = ($this, $par1World, $par2Str, $par3, $par4, $par5) => {
    return null;
},
nms_ChunkProviderEnd_recreateStructures = ($this, $par1, $par2) => {
    return;
};
function nms_ChunkPosition() {
    let a = this; jl_Object.call(a);
    a.$x = 0;
    a.$y = 0;
    a.$z = 0;
}
let nms_ChunkPosition_equals = ($this, $par1Obj) => {
    let $var2;
    if (!($par1Obj instanceof nms_ChunkPosition))
        return 0;
    $var2 = $par1Obj;
    return $var2.$x == $this.$x && $var2.$y == $this.$y && $var2.$z == $this.$z ? 1 : 0;
},
nms_ChunkPosition_hashCode = $this => {
    return ($rt_imul($this.$x, 8976890) + $rt_imul($this.$y, 981131) | 0) + $this.$z | 0;
},
jt_DecimalFormat$Constants = $rt_classWithoutFields(),
jt_DecimalFormat$Constants_doubleAnalysisResult = null,
jt_DecimalFormat$Constants_floatAnalysisResult = null,
jt_DecimalFormat$Constants__init_ = $this => {
    return;
},
jt_DecimalFormat$Constants__init_0 = () => {
    let var_0 = new jt_DecimalFormat$Constants();
    jt_DecimalFormat$Constants__init_(var_0);
    return var_0;
},
jt_DecimalFormat$Constants__clinit_ = () => {
    jt_DecimalFormat$Constants_doubleAnalysisResult = new otcit_DoubleAnalyzer$Result;
    jt_DecimalFormat$Constants_floatAnalysisResult = new otcit_FloatAnalyzer$Result;
},
otcit_DoubleAnalyzer = $rt_classWithoutFields(),
otcit_DoubleAnalyzer_MAX_MANTISSA = Long_ZERO,
otcit_DoubleAnalyzer_resultForLog10 = null,
otcit_DoubleAnalyzer_mantissa10Table = null,
otcit_DoubleAnalyzer_exp10Table = null,
otcit_DoubleAnalyzer__init_ = $this => {
    return;
},
otcit_DoubleAnalyzer__init_0 = () => {
    let var_0 = new otcit_DoubleAnalyzer();
    otcit_DoubleAnalyzer__init_(var_0);
    return var_0;
},
otcit_DoubleAnalyzer_analyze = ($d, $result) => {
    let $bits, $mantissa, $exponent, var$6, $decExponent, $posCmp, $mantissaShift, $decMantissa, $decMantissaLow, $decMantissaHi, $lowerPos, $lowerPos_0, $upperPos, $upperPos_0;
    $bits = !(isNaN($d) ? 1 : 0) ? $rt_doubleToRawLongBits($d) : Long_create(0, 2146959360);
    $result.$sign2 = Long_eq(Long_and($bits, Long_create(0, 2147483648)), Long_ZERO) ? 0 : 1;
    $mantissa = Long_and($bits, Long_create(4294967295, 1048575));
    $exponent = Long_lo(Long_shr($bits, 52)) & 2047;
    if (Long_eq($mantissa, Long_ZERO) && !$exponent) {
        $result.$mantissa = Long_ZERO;
        $result.$exponent = 0;
        return;
    }
    if ($exponent)
        $mantissa = Long_or($mantissa, Long_create(0, 1048576));
    else {
        $mantissa = Long_shl($mantissa, 1);
        while (Long_eq(Long_and($mantissa, Long_create(0, 1048576)), Long_ZERO)) {
            $mantissa = Long_shl($mantissa, 1);
            $exponent = $exponent + (-1) | 0;
        }
    }
    var$6 = otcit_DoubleAnalyzer_exp10Table;
    $decExponent = ju_Arrays_binarySearch1(var$6, 0, var$6.data.length, $exponent << 16 >> 16);
    if ($decExponent < 0)
        $decExponent =  -$decExponent | 0;
    var$6 = otcit_DoubleAnalyzer_exp10Table.data;
    $posCmp = $decExponent + 1 | 0;
    $mantissaShift = 12 + ($exponent - var$6[$posCmp] | 0) | 0;
    $decMantissa = otcit_DoubleAnalyzer_mulAndShiftRight($mantissa, otcit_DoubleAnalyzer_mantissa10Table.data[$posCmp], $mantissaShift);
    if (Long_le($decMantissa, otcit_DoubleAnalyzer_MAX_MANTISSA)) {
        while (jl_Long_compareUnsigned($decMantissa, otcit_DoubleAnalyzer_MAX_MANTISSA) <= 0) {
            $decExponent = $decExponent + (-1) | 0;
            $decMantissa = Long_add(Long_mul($decMantissa, Long_fromInt(10)), Long_fromInt(9));
        }
        var$6 = otcit_DoubleAnalyzer_exp10Table.data;
        $posCmp = $decExponent + 1 | 0;
        $mantissaShift = 12 + ($exponent - var$6[$posCmp] | 0) | 0;
        $decMantissa = otcit_DoubleAnalyzer_mulAndShiftRight($mantissa, otcit_DoubleAnalyzer_mantissa10Table.data[$posCmp], $mantissaShift);
    }
    $mantissa = Long_shl($mantissa, 1);
    $bits = Long_add($mantissa, Long_fromInt(1));
    var$6 = otcit_DoubleAnalyzer_mantissa10Table.data;
    $posCmp = $decExponent + 1 | 0;
    $decMantissaLow = var$6[$posCmp];
    $exponent = $mantissaShift - 1 | 0;
    $decMantissaHi = otcit_DoubleAnalyzer_mulAndShiftRight($bits, $decMantissaLow, $exponent);
    $decMantissaLow = otcit_DoubleAnalyzer_mulAndShiftRight(Long_sub($mantissa, Long_fromInt(1)), otcit_DoubleAnalyzer_mantissa10Table.data[$posCmp], $exponent);
    $lowerPos = Long_fromInt(1);
    while (true) {
        $lowerPos_0 = Long_mul($lowerPos, Long_fromInt(10));
        if (jl_Long_compareUnsigned(jl_Long_divideUnsigned($decMantissa, $lowerPos_0), jl_Long_divideUnsigned($decMantissaLow, $lowerPos_0)) <= 0)
            break;
        $lowerPos = $lowerPos_0;
    }
    $upperPos = Long_fromInt(1);
    while (true) {
        $upperPos_0 = Long_mul($upperPos, Long_fromInt(10));
        if (jl_Long_compareUnsigned(jl_Long_divideUnsigned($decMantissa, $upperPos_0), jl_Long_divideUnsigned($decMantissaHi, $upperPos_0)) >= 0)
            break;
        $upperPos = $upperPos_0;
    }
    $posCmp = jl_Long_compareUnsigned($lowerPos, $upperPos);
    $mantissa = $posCmp > 0 ? Long_mul(jl_Long_divideUnsigned($decMantissa, $lowerPos), $lowerPos) : $posCmp < 0 ? Long_add(Long_mul(jl_Long_divideUnsigned($decMantissa, $upperPos), $upperPos), $upperPos) : Long_mul(jl_Long_divideUnsigned(Long_add($decMantissa, Long_div($upperPos, Long_fromInt(2))), $upperPos), $upperPos);
    if (jl_Long_compareUnsigned($mantissa, Long_create(2808348672, 232830643)) >= 0)
        while (true) {
            $decExponent = $decExponent + 1 | 0;
            $mantissa = jl_Long_divideUnsigned($mantissa, Long_fromInt(10));
            if (jl_Long_compareUnsigned($mantissa, Long_create(2808348672, 232830643)) < 0)
                break;
        }
    else if (jl_Long_compareUnsigned($mantissa, Long_create(1569325056, 23283064)) < 0) {
        $decExponent = $decExponent + (-1) | 0;
        $mantissa = Long_mul($mantissa, Long_fromInt(10));
    }
    $result.$mantissa = $mantissa;
    $result.$exponent = $decExponent - 330 | 0;
},
otcit_DoubleAnalyzer_mulAndShiftRight = ($a, $b, $shift) => {
    let $a1, $a2, $a3, $a4, $b1, $b2, $b3, $b4;
    $a1 = Long_and($a, Long_fromInt(65535));
    $a2 = Long_and(Long_shru($a, 16), Long_fromInt(65535));
    $a3 = Long_and(Long_shru($a, 32), Long_fromInt(65535));
    $a4 = Long_and(Long_shru($a, 48), Long_fromInt(65535));
    $b1 = Long_and($b, Long_fromInt(65535));
    $b2 = Long_and(Long_shru($b, 16), Long_fromInt(65535));
    $b3 = Long_and(Long_shru($b, 32), Long_fromInt(65535));
    $b4 = Long_and(Long_shru($b, 48), Long_fromInt(65535));
    return Long_add(Long_add(Long_add(Long_shl(Long_mul($b4, $a4), 32 + $shift | 0), Long_shl(Long_add(Long_mul($b4, $a3), Long_mul($b3, $a4)), 16 + $shift | 0)), Long_shl(Long_add(Long_add(Long_mul($b4, $a2), Long_mul($b3, $a3)), Long_mul($b2, $a4)), $shift)), Long_shru(Long_add(Long_add(Long_add(Long_mul($b3, $a1), Long_mul($b2, $a2)), Long_mul($b1, $a3)), Long_shl(Long_add(Long_add(Long_add(Long_mul($b4, $a1), Long_mul($b3, $a2)), Long_mul($b2, $a3)), Long_mul($b1, $a4)), 16)), 32 - $shift | 0));
},
otcit_DoubleAnalyzer__clinit_ = () => {
    otcit_DoubleAnalyzer_MAX_MANTISSA = jl_Long_divideUnsigned(Long_fromInt(-1), Long_fromInt(10));
    otcit_DoubleAnalyzer_resultForLog10 = otcit_DoubleAnalyzer$Result__init_0();
    otcit_DoubleAnalyzer_mantissa10Table = $rt_createLongArrayFromData([Long_create(3251292512, 2194092222), Long_create(1766094183, 3510547556), Long_create(553881887, 2808438045), Long_create(443105509, 2246750436), Long_create(3285949193, 3594800697), Long_create(910772436, 2875840558), Long_create(2446604867, 2300672446), Long_create(2196580869, 3681075914), Long_create(2616258154, 2944860731), Long_create(1234013064, 2355888585), Long_create(1974420903, 3769421736), Long_create(720543263, 3015537389), Long_create(1435428070, 2412429911),
    Long_create(578697993, 3859887858), Long_create(2180945313, 3087910286), Long_create(885762791, 2470328229), Long_create(3135207384, 3952525166), Long_create(1649172448, 3162020133), Long_create(3037324877, 2529616106), Long_create(3141732885, 4047385770), Long_create(2513386308, 3237908616), Long_create(1151715587, 2590326893), Long_create(983751480, 4144523029), Long_create(1645994643, 3315618423), Long_create(3034782633, 2652494738), Long_create(3996658754, 4243991581), Long_create(2338333544, 3395193265),
    Long_create(1870666835, 2716154612), Long_create(4073513845, 2172923689), Long_create(3940641775, 3476677903), Long_create(575533043, 2781342323), Long_create(2178413352, 2225073858), Long_create(2626467905, 3560118173), Long_create(3819161242, 2848094538), Long_create(478348616, 2278475631), Long_create(3342338164, 3645561009), Long_create(3532863990, 2916448807), Long_create(1108304273, 2333159046), Long_create(55299919, 3733054474), Long_create(903233395, 2986443579), Long_create(1581580175, 2389154863),
    Long_create(1671534821, 3822647781), Long_create(478234397, 3058118225), Long_create(382587518, 2446494580), Long_create(612140029, 3914391328), Long_create(2207698941, 3131513062), Long_create(48172235, 2505210450), Long_create(77075576, 4008336720), Long_create(61660460, 3206669376), Long_create(3485302205, 2565335500), Long_create(1281516232, 4104536801), Long_create(166219527, 3283629441), Long_create(3568949458, 2626903552), Long_create(2274345296, 4203045684), Long_create(2678469696, 3362436547), Long_create(424788838, 2689949238),
    Long_create(2057817989, 2151959390), Long_create(3292508783, 3443135024), Long_create(3493000485, 2754508019), Long_create(3653393847, 2203606415), Long_create(1550462860, 3525770265), Long_create(1240370288, 2820616212), Long_create(3569276608, 2256492969), Long_create(3133862195, 3610388751), Long_create(1648096297, 2888311001), Long_create(459483578, 2310648801), Long_create(3312154103, 3697038081), Long_create(1790729823, 2957630465), Long_create(1432583858, 2366104372), Long_create(3151127633, 3785766995),
    Long_create(2520902106, 3028613596), Long_create(1157728226, 2422890877), Long_create(2711358621, 3876625403), Long_create(3887073815, 3101300322), Long_create(1391672133, 2481040258), Long_create(1367681954, 3969664413), Long_create(2812132482, 3175731530), Long_create(2249705985, 2540585224), Long_create(1022549199, 4064936359), Long_create(1677032818, 3251949087), Long_create(3918606632, 2601559269), Long_create(3692790234, 4162494831), Long_create(2095238728, 3329995865), Long_create(1676190982, 2663996692),
    Long_create(3540899031, 4262394707), Long_create(1114732307, 3409915766), Long_create(32792386, 2727932613), Long_create(1744220827, 2182346090), Long_create(2790753324, 3491753744), Long_create(3091596118, 2793402995), Long_create(2473276894, 2234722396), Long_create(2239256113, 3575555834), Long_create(2650398349, 2860444667), Long_create(402331761, 2288355734), Long_create(2361717736, 3661369174), Long_create(2748367648, 2929095339), Long_create(3057687578, 2343276271), Long_create(3174313206, 3749242034),
    Long_create(3398444024, 2999393627), Long_create(1000768301, 2399514902), Long_create(2460222741, 3839223843), Long_create(3686165111, 3071379074), Long_create(3807925548, 2457103259), Long_create(3515700499, 3931365215), Long_create(2812560399, 3145092172), Long_create(532061401, 2516073738), Long_create(4287272078, 4025717980), Long_create(3429817663, 3220574384), Long_create(3602847589, 2576459507), Long_create(2328582306, 4122335212), Long_create(144878926, 3297868170), Long_create(115903141, 2638294536),
    Long_create(2762425404, 4221271257), Long_create(491953404, 3377017006), Long_create(3829536560, 2701613604), Long_create(3922622707, 2161290883), Long_create(1122235577, 3458065414), Long_create(1756781920, 2766452331), Long_create(546432077, 2213161865), Long_create(874291324, 3541058984), Long_create(1558426518, 2832847187), Long_create(3823721592, 2266277749), Long_create(3540974170, 3626044399), Long_create(3691772795, 2900835519), Long_create(3812411695, 2320668415), Long_create(1804891416, 3713069465),
    Long_create(1443913133, 2970455572), Long_create(3732110884, 2376364457), Long_create(2535403578, 3802183132), Long_create(310335944, 3041746506), Long_create(3684242592, 2433397204), Long_create(3317807769, 3893435527), Long_create(936259297, 3114748422), Long_create(3325987815, 2491798737), Long_create(1885606668, 3986877980), Long_create(1508485334, 3189502384), Long_create(2065781726, 2551601907), Long_create(4164244222, 4082563051), Long_create(2472401918, 3266050441), Long_create(1118928075, 2612840353),
    Long_create(931291461, 4180544565), Long_create(745033169, 3344435652), Long_create(3173006913, 2675548521), Long_create(3358824142, 4280877634), Long_create(3546052773, 3424702107), Long_create(1118855300, 2739761686), Long_create(36090780, 2191809349), Long_create(1775732167, 3506894958), Long_create(3138572652, 2805515966), Long_create(1651864662, 2244412773), Long_create(1783990001, 3591060437), Long_create(4004172378, 2872848349), Long_create(4062331362, 2298278679), Long_create(3922749802, 3677245887),
    Long_create(1420212923, 2941796710), Long_create(1136170338, 2353437368), Long_create(958879082, 3765499789), Long_create(1626096725, 3012399831), Long_create(441883920, 2409919865), Long_create(707014273, 3855871784), Long_create(1424604878, 3084697427), Long_create(3716664280, 2467757941), Long_create(4228675929, 3948412706), Long_create(2523947284, 3158730165), Long_create(2019157827, 2526984132), Long_create(4089645983, 4043174611), Long_create(2412723327, 3234539689), Long_create(2789172121, 2587631751),
    Long_create(2744688475, 4140210802), Long_create(477763862, 3312168642), Long_create(2959191467, 2649734913), Long_create(3875712888, 4239575861), Long_create(2241576851, 3391660689), Long_create(2652254940, 2713328551), Long_create(1262810493, 2170662841), Long_create(302509870, 3473060546), Long_create(3677981733, 2778448436), Long_create(2083391927, 2222758749), Long_create(756446706, 3556413999), Long_create(1464150824, 2845131199), Long_create(2030314118, 2276104959), Long_create(671522212, 3641767935),
    Long_create(537217769, 2913414348), Long_create(2147761134, 2330731478), Long_create(2577424355, 3729170365), Long_create(2061939484, 2983336292), Long_create(4226531965, 2386669033), Long_create(1608490388, 3818670454), Long_create(2145785770, 3054936363), Long_create(3434615534, 2443949090), Long_create(1200417559, 3910318545), Long_create(960334047, 3128254836), Long_create(4204241074, 2502603868), Long_create(1572824964, 4004166190), Long_create(1258259971, 3203332952), Long_create(3583588354, 2562666361),
    Long_create(4015754449, 4100266178), Long_create(635623181, 3280212943), Long_create(2226485463, 2624170354), Long_create(985396364, 4198672567), Long_create(3365297469, 3358938053), Long_create(115257597, 2687150443), Long_create(1810192996, 2149720354), Long_create(319328417, 3439552567), Long_create(2832443111, 2751642053), Long_create(3983941407, 2201313642), Long_create(2938332415, 3522101828), Long_create(4068652850, 2817681462), Long_create(1536935362, 2254145170), Long_create(2459096579, 3606632272),
    Long_create(249290345, 2885305818), Long_create(1917419194, 2308244654), Long_create(490890333, 3693191447), Long_create(2969692644, 2954553157), Long_create(657767197, 2363642526), Long_create(3629407892, 3781828041), Long_create(2044532855, 3025462433), Long_create(3353613202, 2420369946), Long_create(3647794205, 3872591914), Long_create(3777228823, 3098073531), Long_create(2162789599, 2478458825), Long_create(3460463359, 3965534120), Long_create(2768370687, 3172427296), Long_create(1355703090, 2537941837),
    Long_create(3028118404, 4060706939), Long_create(3281488183, 3248565551), Long_create(1766197087, 2598852441), Long_create(1107928421, 4158163906), Long_create(27349277, 3326531125), Long_create(21879422, 2661224900), Long_create(35007075, 4257959840), Long_create(28005660, 3406367872), Long_create(2599384905, 2725094297), Long_create(361521006, 2180075438), Long_create(4014407446, 3488120700), Long_create(3211525957, 2790496560), Long_create(2569220766, 2232397248), Long_create(3251759766, 3571835597),
    Long_create(883420894, 2857468478), Long_create(2424723634, 2285974782), Long_create(443583977, 3657559652), Long_create(2931847559, 2926047721), Long_create(1486484588, 2340838177), Long_create(3237368801, 3745341083), Long_create(12914663, 2996272867), Long_create(2587312108, 2397018293), Long_create(3280705914, 3835229269), Long_create(3483558190, 3068183415), Long_create(2786846552, 2454546732), Long_create(1022980646, 3927274772), Long_create(3395364895, 3141819817), Long_create(998304997, 2513455854),
    Long_create(3315274914, 4021529366), Long_create(1793226472, 3217223493), Long_create(3152568096, 2573778794), Long_create(2467128576, 4118046071), Long_create(1114709402, 3294436857), Long_create(3468747899, 2635549485), Long_create(1255029343, 4216879177), Long_create(3581003852, 3373503341), Long_create(2005809622, 2698802673), Long_create(3322634616, 2159042138), Long_create(162254630, 3454467422), Long_create(2706784082, 2763573937), Long_create(447440347, 2210859150), Long_create(715904555, 3537374640),
    Long_create(572723644, 2829899712), Long_create(3035159293, 2263919769), Long_create(2279274491, 3622271631), Long_create(964426134, 2897817305), Long_create(771540907, 2318253844), Long_create(2952452370, 3709206150), Long_create(2361961896, 2967364920), Long_create(1889569516, 2373891936), Long_create(1305324308, 3798227098), Long_create(2762246365, 3038581678), Long_create(3927784010, 2430865342), Long_create(2848480580, 3889384548), Long_create(3996771382, 3111507638), Long_create(620436728, 2489206111),
    Long_create(3569679143, 3982729777), Long_create(1137756396, 3186183822), Long_create(3487185494, 2548947057), Long_create(2143522954, 4078315292), Long_create(4291798741, 3262652233), Long_create(856458615, 2610121787), Long_create(2229327243, 4176194859), Long_create(2642455254, 3340955887), Long_create(395977285, 2672764710), Long_create(633563656, 4276423536), Long_create(3942824761, 3421138828), Long_create(577279431, 2736911063), Long_create(2179810463, 2189528850), Long_create(3487696741, 3503246160),
    Long_create(2790157393, 2802596928), Long_create(3950112833, 2242077542), Long_create(2884206696, 3587324068), Long_create(4025352275, 2869859254), Long_create(4079275279, 2295887403), Long_create(1372879692, 3673419846), Long_create(239310294, 2938735877), Long_create(2768428613, 2350988701), Long_create(2711498862, 3761581922), Long_create(451212171, 3009265538), Long_create(2078956655, 2407412430), Long_create(3326330649, 3851859888), Long_create(84084141, 3081487911), Long_create(3503241150, 2465190328),
    Long_create(451225085, 3944304526), Long_create(3796953905, 3155443620), Long_create(3037563124, 2524354896), Long_create(3142114080, 4038967834), Long_create(3372684723, 3231174267), Long_create(980160860, 2584939414), Long_create(3286244294, 4135903062), Long_create(911008517, 3308722450), Long_create(728806813, 2646977960), Long_create(1166090902, 4235164736), Long_create(73879262, 3388131789), Long_create(918096869, 2710505431), Long_create(4170451332, 2168404344), Long_create(4095741754, 3469446951),
    Long_create(2417599944, 2775557561), Long_create(1075086496, 2220446049), Long_create(3438125312, 3552713678), Long_create(173519872, 2842170943), Long_create(1856802816, 2273736754), Long_create(393904128, 3637978807), Long_create(2892103680, 2910383045), Long_create(2313682944, 2328306436), Long_create(1983905792, 3725290298), Long_create(3305111552, 2980232238), Long_create(67108864, 2384185791), Long_create(2684354560, 3814697265), Long_create(2147483648, 3051757812), Long_create(0, 2441406250), Long_create(0, 3906250000),
    Long_create(0, 3125000000), Long_create(0, 2500000000), Long_create(0, 4000000000), Long_create(0, 3200000000), Long_create(0, 2560000000), Long_create(0, 4096000000), Long_create(0, 3276800000), Long_create(0, 2621440000), Long_create(0, 4194304000), Long_create(0, 3355443200), Long_create(0, 2684354560), Long_create(0, 2147483648), Long_create(3435973836, 3435973836), Long_create(1889785610, 2748779069), Long_create(2370821947, 2199023255), Long_create(3793315115, 3518437208), Long_create(457671715, 2814749767),
    Long_create(2943117749, 2251799813), Long_create(3849994940, 3602879701), Long_create(2221002492, 2882303761), Long_create(917808535, 2305843009), Long_create(3186480574, 3689348814), Long_create(3408177918, 2951479051), Long_create(1867548875, 2361183241), Long_create(1270091283, 3777893186), Long_create(157079567, 3022314549), Long_create(984657113, 2417851639), Long_create(3293438299, 3868562622), Long_create(916763721, 3094850098), Long_create(2451397895, 2475880078), Long_create(3063243173, 3961408125),
    Long_create(2450594538, 3169126500), Long_create(1960475630, 2535301200), Long_create(3136761009, 4056481920), Long_create(2509408807, 3245185536), Long_create(1148533586, 2596148429), Long_create(3555640657, 4153837486), Long_create(1985519066, 3323069989), Long_create(2447408712, 2658455991), Long_create(2197867021, 4253529586), Long_create(899300158, 3402823669), Long_create(1578433585, 2722258935), Long_create(1262746868, 2177807148), Long_create(1161401530, 3484491437), Long_create(3506101601, 2787593149),
    Long_create(3663874740, 2230074519), Long_create(3285219207, 3568119231), Long_create(1769181906, 2854495385), Long_create(1415345525, 2283596308), Long_create(1405559381, 3653754093), Long_create(2842434423, 2923003274), Long_create(3132940998, 2338402619), Long_create(2435725219, 3741444191), Long_create(1089586716, 2993155353), Long_create(2589656291, 2394524282), Long_create(707476229, 3831238852), Long_create(3142961361, 3064991081), Long_create(1655375629, 2451992865), Long_create(2648601007, 3923188584),
    Long_create(2977874265, 3138550867), Long_create(664312493, 2510840694), Long_create(2780886908, 4017345110), Long_create(2224709526, 3213876088), Long_create(3497754539, 2571100870), Long_create(1301439967, 4113761393), Long_create(2759138892, 3291009114), Long_create(3066304573, 2632807291), Long_create(3188100398, 4212491666), Long_create(1691486859, 3369993333), Long_create(3071176406, 2695994666), Long_create(1597947665, 2156795733), Long_create(1697722806, 3450873173), Long_create(3076165163, 2760698538),
    Long_create(4178919049, 2208558830), Long_create(2391303182, 3533694129), Long_create(2772036005, 2826955303), Long_create(3935615722, 2261564242), Long_create(2861011319, 3618502788), Long_create(4006795973, 2894802230), Long_create(3205436779, 2315841784), Long_create(2551718468, 3705346855), Long_create(2041374775, 2964277484), Long_create(2492093279, 2371421987), Long_create(551375410, 3794275180), Long_create(441100328, 3035420144), Long_create(1211873721, 2428336115), Long_create(1938997954, 3885337784),
    Long_create(2410191822, 3108270227), Long_create(210166539, 2486616182), Long_create(1195259923, 3978585891), Long_create(97214479, 3182868713), Long_create(1795758501, 2546294970), Long_create(2873213602, 4074071952), Long_create(580583963, 3259257562), Long_create(3041447548, 2607406049), Long_create(2289335700, 4171849679), Long_create(2690462019, 3337479743), Long_create(3870356534, 2669983794), Long_create(3615590076, 4271974071), Long_create(2033478602, 3417579257), Long_create(4203763259, 2734063405),
    Long_create(3363010607, 2187250724), Long_create(2803836594, 3499601159), Long_create(3102062734, 2799680927), Long_create(763663269, 2239744742), Long_create(2080854690, 3583591587), Long_create(4241664129, 2866873269), Long_create(4252324763, 2293498615), Long_create(2508752324, 3669597785), Long_create(2007001859, 2935678228), Long_create(3323588406, 2348542582), Long_create(1881767613, 3757668132), Long_create(4082394468, 3006134505), Long_create(3265915574, 2404907604), Long_create(2648484541, 3847852167),
    Long_create(400800715, 3078281734), Long_create(1179634031, 2462625387), Long_create(2746407909, 3940200619), Long_create(3056119786, 3152160495), Long_create(2444895829, 2521728396), Long_create(2193846408, 4034765434), Long_create(2614070585, 3227812347), Long_create(373269550, 2582249878), Long_create(4033205117, 4131599804), Long_create(4085557553, 3305279843), Long_create(691465664, 2644223875), Long_create(1106345063, 4230758200), Long_create(885076050, 3384606560), Long_create(708060840, 2707685248),
    Long_create(2284435591, 2166148198), Long_create(2796103486, 3465837117), Long_create(518895870, 2772669694), Long_create(1274110155, 2218135755), Long_create(2038576249, 3549017208), Long_create(3348847917, 2839213766), Long_create(1820084875, 2271371013), Long_create(2053142340, 3634193621), Long_create(783520413, 2907354897), Long_create(3203796708, 2325883917), Long_create(1690100896, 3721414268), Long_create(3070067635, 2977131414), Long_create(3315047567, 2381705131), Long_create(3586089190, 3810728210),
    Long_create(2868871352, 3048582568), Long_create(4013084000, 2438866054), Long_create(3843954022, 3902185687), Long_create(1357176299, 3121748550), Long_create(1085741039, 2497398840), Long_create(1737185663, 3995838144), Long_create(2248741989, 3196670515), Long_create(1798993591, 2557336412), Long_create(3737383206, 4091738259), Long_create(3848900024, 3273390607), Long_create(1361133101, 2618712486), Long_create(459826043, 4189939978), Long_create(2085847752, 3351951982), Long_create(4245658579, 2681561585),
    Long_create(2498086431, 4290498537), Long_create(280482227, 3432398830), Long_create(224385781, 2745919064), Long_create(1038502084, 2196735251), Long_create(4238583712, 3514776401), Long_create(2531873511, 2811821121), Long_create(1166505349, 2249456897), Long_create(2725402018, 3599131035), Long_create(2180321615, 2879304828), Long_create(3462244210, 2303443862), Long_create(2103616899, 3685510180), Long_create(1682893519, 2948408144), Long_create(2205308275, 2358726515), Long_create(3528493240, 3773962424),
    Long_create(3681788051, 3019169939), Long_create(3804423900, 2415335951), Long_create(74124026, 3864537523), Long_create(1777286139, 3091630018), Long_create(3139815829, 2473304014), Long_create(2446724950, 3957286423), Long_create(3675366878, 3165829138), Long_create(363313125, 2532663311), Long_create(3158281377, 4052261297), Long_create(808638183, 3241809038), Long_create(2364897465, 2593447230), Long_create(3783835944, 4149515568), Long_create(450088378, 3319612455), Long_create(360070702, 2655689964),
    Long_create(2294100042, 4249103942), Long_create(117293115, 3399283154), Long_create(952827951, 2719426523), Long_create(2480249279, 2175541218), Long_create(3109405388, 3480865949), Long_create(3346517769, 2784692759), Long_create(3536207675, 2227754207), Long_create(2221958443, 3564406732), Long_create(59579836, 2851525386), Long_create(3483637705, 2281220308), Long_create(419859574, 3649952494), Long_create(1194881118, 2919961995), Long_create(955904894, 2335969596), Long_create(4106428209, 3737551353),
    Long_create(708162189, 2990041083), Long_create(2284516670, 2392032866), Long_create(1937239754, 3827252586), Long_create(690798344, 3061802069), Long_create(1411632134, 2449441655), Long_create(2258611415, 3919106648), Long_create(3524876050, 3135285318), Long_create(242920462, 2508228255), Long_create(388672740, 4013165208), Long_create(2028925110, 3210532166), Long_create(764146629, 2568425733), Long_create(363641147, 4109481173), Long_create(2008899836, 3287584938), Long_create(3325106787, 2630067950),
    Long_create(1025203564, 4208108721), Long_create(4256136688, 3366486976), Long_create(2545915891, 2693189581), Long_create(1177739254, 2154551665), Long_create(1884382806, 3447282664), Long_create(2366499704, 2757826131), Long_create(1034206304, 2206260905), Long_create(1654730086, 3530017448), Long_create(3041770987, 2824013958), Long_create(4151403708, 2259211166), Long_create(629291719, 3614737867), Long_create(3080413753, 2891790293), Long_create(4182317920, 2313432234), Long_create(4114728295, 3701491575),
    Long_create(3291782636, 2961193260), Long_create(2633426109, 2368954608), Long_create(3354488315, 3790327373), Long_create(106610275, 3032261899), Long_create(944281679, 2425809519), Long_create(3228837605, 3881295230), Long_create(2583070084, 3105036184), Long_create(2925449526, 2484028947), Long_create(1244745405, 3974446316), Long_create(136802865, 3179557053), Long_create(1827429210, 2543645642), Long_create(3782880196, 4069833027), Long_create(1308317238, 3255866422), Long_create(3623634168, 2604693137),
    Long_create(2361840832, 4167509020), Long_create(1889472666, 3334007216), Long_create(652584673, 2667205773), Long_create(185142018, 4267529237), Long_create(2725093992, 3414023389), Long_create(3039068653, 2731218711), Long_create(1572261463, 2184974969), Long_create(4233605259, 3495959950), Long_create(3386884207, 2796767960), Long_create(2709507366, 2237414368), Long_create(3476218326, 3579862989), Long_create(3639968120, 2863890391), Long_create(2052981037, 2291112313), Long_create(2425776200, 3665779701),
    Long_create(1081627501, 2932623761), Long_create(6308541, 2346099009), Long_create(1728080585, 3753758414), Long_create(2241457927, 3003006731), Long_create(934172882, 2402405385), Long_create(1494676612, 3843848616), Long_create(336747830, 3075078893), Long_create(1987385183, 2460063114), Long_create(602835915, 3936100983), Long_create(2200255650, 3148880786), Long_create(901211061, 2519104629), Long_create(3159924616, 4030567406), Long_create(1668946233, 3224453925), Long_create(1335156987, 2579563140),
    Long_create(2136251179, 4127301024), Long_create(2567994402, 3301840819), Long_create(2913388981, 2641472655), Long_create(366455074, 4226356249), Long_create(1152157518, 3381084999), Long_create(1780719474, 2704867999), Long_create(2283569038, 2163894399), Long_create(1076730083, 3462231039), Long_create(1720377526, 2769784831), Long_create(517308561, 2215827865), Long_create(827693699, 3545324584), Long_create(1521148418, 2836259667), Long_create(3793899112, 2269007733), Long_create(916277824, 3630412374),
    Long_create(1592015718, 2904329899), Long_create(2132606034, 2323463919), Long_create(835189277, 3717542271), Long_create(4104125258, 2974033816), Long_create(2424306747, 2379227053), Long_create(3019897337, 3806763285), Long_create(2415917869, 3045410628), Long_create(3650721214, 2436328502), Long_create(2405180105, 3898125604), Long_create(2783137543, 3118500483), Long_create(3944496953, 2494800386), Long_create(298240911, 3991680619), Long_create(1097586188, 3193344495), Long_create(878068950, 2554675596),
    Long_create(3981890698, 4087480953), Long_create(608532181, 3269984763), Long_create(2204812663, 2615987810), Long_create(3527700261, 4185580496), Long_create(1963166749, 3348464397), Long_create(4147513777, 2678771517), Long_create(3200048207, 4286034428), Long_create(4278025484, 3428827542), Long_create(1704433468, 2743062034), Long_create(2222540234, 2194449627), Long_create(120090538, 3511119404), Long_create(955065889, 2808895523), Long_create(2482039630, 2247116418), Long_create(3112269949, 3595386269),
    Long_create(3348809418, 2876309015), Long_create(2679047534, 2301047212), Long_create(850502218, 3681675540), Long_create(680401775, 2945340432), Long_create(3121301797, 2356272345), Long_create(699115580, 3770035753), Long_create(2277279382, 3016028602), Long_create(103836587, 2412822882), Long_create(1025131999, 3860516611), Long_create(4256079436, 3088413288), Long_create(827883168, 2470730631), Long_create(3901593088, 3953169009)]);
    otcit_DoubleAnalyzer_exp10Table = $rt_createShortArrayFromData([(-70), (-66), (-63), (-60), (-56), (-53), (-50), (-46), (-43), (-40), (-36), (-33), (-30), (-26), (-23), (-20), (-16), (-13), (-10), (-6), (-3), 0, 4, 7, 10, 14, 17, 20, 23, 27, 30, 33, 37, 40, 43, 47, 50, 53, 57, 60, 63, 67, 70, 73, 77, 80, 83, 87, 90, 93, 97, 100, 103, 107, 110, 113, 116, 120, 123, 126, 130, 133, 136, 140, 143, 146, 150, 153, 156, 160, 163, 166, 170, 173, 176, 180, 183, 186, 190, 193, 196, 200, 203, 206, 210, 213, 216, 219,
    223, 226, 229, 233, 236, 239, 243, 246, 249, 253, 256, 259, 263, 266, 269, 273, 276, 279, 283, 286, 289, 293, 296, 299, 303, 306, 309, 312, 316, 319, 322, 326, 329, 332, 336, 339, 342, 346, 349, 352, 356, 359, 362, 366, 369, 372, 376, 379, 382, 386, 389, 392, 396, 399, 402, 406, 409, 412, 415, 419, 422, 425, 429, 432, 435, 439, 442, 445, 449, 452, 455, 459, 462, 465, 469, 472, 475, 479, 482, 485, 489, 492, 495, 499, 502, 505, 508, 512, 515, 518, 522, 525, 528, 532, 535, 538, 542, 545, 548, 552, 555, 558,
    562, 565, 568, 572, 575, 578, 582, 585, 588, 592, 595, 598, 601, 605, 608, 611, 615, 618, 621, 625, 628, 631, 635, 638, 641, 645, 648, 651, 655, 658, 661, 665, 668, 671, 675, 678, 681, 685, 688, 691, 695, 698, 701, 704, 708, 711, 714, 718, 721, 724, 728, 731, 734, 738, 741, 744, 748, 751, 754, 758, 761, 764, 768, 771, 774, 778, 781, 784, 788, 791, 794, 797, 801, 804, 807, 811, 814, 817, 821, 824, 827, 831, 834, 837, 841, 844, 847, 851, 854, 857, 861, 864, 867, 871, 874, 877, 881, 884, 887, 891, 894, 897,
    900, 904, 907, 910, 914, 917, 920, 924, 927, 930, 934, 937, 940, 944, 947, 950, 954, 957, 960, 964, 967, 970, 974, 977, 980, 984, 987, 990, 993, 997, 1000, 1003, 1007, 1010, 1013, 1017, 1020, 1023, 1027, 1030, 1033, 1037, 1040, 1043, 1047, 1050, 1053, 1057, 1060, 1063, 1067, 1070, 1073, 1077, 1080, 1083, 1086, 1090, 1093, 1096, 1100, 1103, 1106, 1110, 1113, 1116, 1120, 1123, 1126, 1130, 1133, 1136, 1140, 1143, 1146, 1150, 1153, 1156, 1160, 1163, 1166, 1170, 1173, 1176, 1180, 1183, 1186, 1189, 1193, 1196,
    1199, 1203, 1206, 1209, 1213, 1216, 1219, 1223, 1226, 1229, 1233, 1236, 1239, 1243, 1246, 1249, 1253, 1256, 1259, 1263, 1266, 1269, 1273, 1276, 1279, 1282, 1286, 1289, 1292, 1296, 1299, 1302, 1306, 1309, 1312, 1316, 1319, 1322, 1326, 1329, 1332, 1336, 1339, 1342, 1346, 1349, 1352, 1356, 1359, 1362, 1366, 1369, 1372, 1376, 1379, 1382, 1385, 1389, 1392, 1395, 1399, 1402, 1405, 1409, 1412, 1415, 1419, 1422, 1425, 1429, 1432, 1435, 1439, 1442, 1445, 1449, 1452, 1455, 1459, 1462, 1465, 1469, 1472, 1475, 1478,
    1482, 1485, 1488, 1492, 1495, 1498, 1502, 1505, 1508, 1512, 1515, 1518, 1522, 1525, 1528, 1532, 1535, 1538, 1542, 1545, 1548, 1552, 1555, 1558, 1562, 1565, 1568, 1572, 1575, 1578, 1581, 1585, 1588, 1591, 1595, 1598, 1601, 1605, 1608, 1611, 1615, 1618, 1621, 1625, 1628, 1631, 1635, 1638, 1641, 1645, 1648, 1651, 1655, 1658, 1661, 1665, 1668, 1671, 1674, 1678, 1681, 1684, 1688, 1691, 1694, 1698, 1701, 1704, 1708, 1711, 1714, 1718, 1721, 1724, 1728, 1731, 1734, 1738, 1741, 1744, 1748, 1751, 1754, 1758, 1761,
    1764, 1767, 1771, 1774, 1777, 1781, 1784, 1787, 1791, 1794, 1797, 1801, 1804, 1807, 1811, 1814, 1817, 1821, 1824, 1827, 1831, 1834, 1837, 1841, 1844, 1847, 1851, 1854, 1857, 1861, 1864, 1867, 1870, 1874, 1877, 1880, 1884, 1887, 1890, 1894, 1897, 1900, 1904, 1907, 1910, 1914, 1917, 1920, 1924, 1927, 1930, 1934, 1937, 1940, 1944, 1947, 1950, 1954, 1957, 1960, 1963, 1967, 1970, 1973, 1977, 1980, 1983, 1987, 1990, 1993, 1997, 2000, 2003, 2007, 2010, 2013, 2017, 2020, 2023, 2027, 2030, 2033, 2037, 2040, 2043,
    2047, 2050, 2053, 2057, 2060, 2063, 2066, 2070, 2073, 2076, 2080, 2083, 2086, 2090, 2093, 2096, 2100, 2103, 2106, 2110, 2113, 2116, 2120]);
};
function otcit_DoubleAnalyzer$Result() {
    let a = this; jl_Object.call(a);
    a.$mantissa = Long_ZERO;
    a.$exponent = 0;
    a.$sign2 = 0;
}
let otcit_DoubleAnalyzer$Result__init_ = $this => {
    return;
},
otcit_DoubleAnalyzer$Result__init_0 = () => {
    let var_0 = new otcit_DoubleAnalyzer$Result();
    otcit_DoubleAnalyzer$Result__init_(var_0);
    return var_0;
},
jnci_Iso8859Encoder = $rt_classWithoutFields(jnci_BufferedEncoder),
jnci_Iso8859Encoder_arrayEncode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $c, $next, var$13;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize) {
                var$9 = $inPos;
                break a;
            }
            var$10 = $inArray.data;
            var$9 = $inPos + 1 | 0;
            $c = var$10[$inPos];
            $next = $c & 64512;
            if ($next != 55296 ? 0 : 1) {
                if (var$9 == $inSize) {
                    var$13 = $controller.$in2;
                    if (!((var$13.$limit - var$13.$position1 | 0) < 2 ? 0 : 1)) {
                        $result = jnc_CoderResult_UNDERFLOW;
                        break a;
                    }
                    var$9 = var$9 + (-1) | 0;
                    break a;
                }
                if (!((var$10[var$9] & 64512) != 56320 ? 0 : 1)) {
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 1;
                    break a;
                }
                var$9 = var$9 + (-1) | 0;
                $result = new jnc_CoderResult;
                $result.$kind = 3;
                $result.$length2 = 2;
                break a;
            }
            if ($next != 56320 ? 0 : 1) {
                $result = new jnc_CoderResult;
                $result.$kind = 2;
                $result.$length2 = 1;
            }
            if ($c >= 256) {
                var$9 = var$9 + (-1) | 0;
                $result = new jnc_CoderResult;
                $result.$kind = 3;
                $result.$length2 = 1;
                break a;
            }
            var$10 = $outArray.data;
            $next = $outPos + 1 | 0;
            var$10[$outPos] = $c << 24 >> 24;
            $inPos = var$9;
            $outPos = $next;
        }
        var$9 = $inPos;
    }
    $controller.$inPosition = var$9;
    $controller.$outPosition0 = $outPos;
    return $result;
};
function jnci_UTF16Encoder() {
    let a = this; jnci_BufferedEncoder.call(a);
    a.$bom0 = 0;
    a.$littleEndian1 = 0;
}
let jnci_UTF16Encoder_arrayEncode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let var$8, var$9;
    if ($this.$bom0) {
        if (($outPos + 2 | 0) > $outSize) {
            $controller = $controller.$out2;
            return !($controller.$position1 >= $controller.$limit ? 0 : 1) ? jnc_CoderResult_OVERFLOW : null;
        }
        $this.$bom0 = 0;
        if (!$this.$littleEndian1) {
            var$8 = $outArray.data;
            var$9 = $outPos + 1 | 0;
            var$8[$outPos] = (-2);
            $outPos = var$9 + 1 | 0;
            var$8[var$9] = (-1);
        } else {
            var$8 = $outArray.data;
            var$9 = $outPos + 1 | 0;
            var$8[$outPos] = (-1);
            $outPos = var$9 + 1 | 0;
            var$8[var$9] = (-2);
        }
    }
    return !$this.$littleEndian1 ? jnci_UTF16Encoder_arrayEncodeBE($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) : jnci_UTF16Encoder_arrayEncodeLE($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller);
},
jnci_UTF16Encoder_arrayEncodeLE = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $c, var$12, $next;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize)
                break a;
            var$9 = $inArray.data;
            var$10 = $inPos + 1 | 0;
            $c = var$9[$inPos];
            $inPos = $c & 64512;
            if (!($inPos != 55296 ? 0 : 1)) {
                if ($inPos != 56320 ? 0 : 1) {
                    $inPos = var$10 + (-1) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 1;
                    break a;
                }
                if (($outPos + 2 | 0) > $outSize) {
                    $inPos = var$10 + (-1) | 0;
                    var$12 = $controller.$out2;
                    if ((var$12.$limit - var$12.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$9 = $outArray.data;
                $inPos = $outPos + 1 | 0;
                var$9[$outPos] = ($c & 255) << 24 >> 24;
                $outPos = $inPos + 1 | 0;
                var$9[$inPos] = $c >> 8 << 24 >> 24;
                $inPos = var$10;
            } else {
                if (var$10 == $inSize) {
                    $inPos = var$10 + (-1) | 0;
                    var$12 = $controller.$in2;
                    if ((var$12.$limit - var$12.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_UNDERFLOW;
                    break a;
                }
                $inPos = var$10 + 1 | 0;
                $next = var$9[var$10];
                if (!(($next & 64512) != 56320 ? 0 : 1)) {
                    $inPos = $inPos + (-2) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 1;
                    break a;
                }
                if (($outPos + 4 | 0) > $outSize) {
                    $inPos = $inPos + (-2) | 0;
                    var$12 = $controller.$out2;
                    if ((var$12.$limit - var$12.$position1 | 0) < 4 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$9 = $outArray.data;
                var$10 = $outPos + 1 | 0;
                var$9[$outPos] = ($c & 255) << 24 >> 24;
                $outPos = var$10 + 1 | 0;
                var$9[var$10] = $c >> 8 << 24 >> 24;
                var$10 = $outPos + 1 | 0;
                var$9[$outPos] = ($next & 255) << 24 >> 24;
                $outPos = var$10 + 1 | 0;
                var$9[var$10] = $next >> 8 << 24 >> 24;
            }
        }
    }
    $controller.$inPosition = $inPos;
    $controller.$outPosition0 = $outPos;
    return $result;
},
jnci_UTF16Encoder_arrayEncodeBE = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $c, var$12, $next;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize)
                break a;
            var$9 = $inArray.data;
            var$10 = $inPos + 1 | 0;
            $c = var$9[$inPos];
            $inPos = $c & 64512;
            if (!($inPos != 55296 ? 0 : 1)) {
                if ($inPos != 56320 ? 0 : 1) {
                    $inPos = var$10 + (-1) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 1;
                    break a;
                }
                if (($outPos + 2 | 0) > $outSize) {
                    $inPos = var$10 + (-1) | 0;
                    var$12 = $controller.$out2;
                    if ((var$12.$limit - var$12.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$9 = $outArray.data;
                $inPos = $outPos + 1 | 0;
                var$9[$outPos] = $c >> 8 << 24 >> 24;
                $outPos = $inPos + 1 | 0;
                var$9[$inPos] = ($c & 255) << 24 >> 24;
                $inPos = var$10;
            } else {
                if (var$10 == $inSize) {
                    $inPos = var$10 + (-1) | 0;
                    var$12 = $controller.$in2;
                    if ((var$12.$limit - var$12.$position1 | 0) < 2 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_UNDERFLOW;
                    break a;
                }
                $inPos = var$10 + 1 | 0;
                $next = var$9[var$10];
                if (!(($next & 64512) != 56320 ? 0 : 1)) {
                    $inPos = $inPos + (-2) | 0;
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 1;
                    break a;
                }
                if (($outPos + 4 | 0) > $outSize) {
                    $inPos = $inPos + (-2) | 0;
                    var$12 = $controller.$out2;
                    if ((var$12.$limit - var$12.$position1 | 0) < 4 ? 0 : 1)
                        break a;
                    $result = jnc_CoderResult_OVERFLOW;
                    break a;
                }
                var$9 = $outArray.data;
                var$10 = $outPos + 1 | 0;
                var$9[$outPos] = $c >> 8 << 24 >> 24;
                $outPos = var$10 + 1 | 0;
                var$9[var$10] = ($c & 255) << 24 >> 24;
                var$10 = $outPos + 1 | 0;
                var$9[$outPos] = $next >> 8 << 24 >> 24;
                $outPos = var$10 + 1 | 0;
                var$9[var$10] = ($next & 255) << 24 >> 24;
            }
        }
    }
    $controller.$inPosition = $inPos;
    $controller.$outPosition0 = $outPos;
    return $result;
},
jnci_AsciiEncoder = $rt_classWithoutFields(jnci_BufferedEncoder),
jnci_AsciiEncoder_arrayEncode = ($this, $inArray, $inPos, $inSize, $outArray, $outPos, $outSize, $controller) => {
    let $result, var$9, var$10, $c, $next, var$13;
    $result = null;
    a: {
        while ($inPos < $inSize) {
            if ($outPos >= $outSize) {
                var$9 = $inPos;
                break a;
            }
            var$10 = $inArray.data;
            var$9 = $inPos + 1 | 0;
            $c = var$10[$inPos];
            $next = $c & 64512;
            if ($next != 55296 ? 0 : 1) {
                if (var$9 >= $inSize) {
                    var$13 = $controller.$in2;
                    if (!((var$13.$limit - var$13.$position1 | 0) < 2 ? 0 : 1)) {
                        $result = jnc_CoderResult_UNDERFLOW;
                        break a;
                    }
                    var$9 = var$9 + (-1) | 0;
                    break a;
                }
                if (!((var$10[var$9] & 64512) != 56320 ? 0 : 1)) {
                    $result = new jnc_CoderResult;
                    $result.$kind = 2;
                    $result.$length2 = 1;
                    break a;
                }
                var$9 = var$9 + (-1) | 0;
                $result = new jnc_CoderResult;
                $result.$kind = 3;
                $result.$length2 = 2;
                break a;
            }
            if ($next != 56320 ? 0 : 1) {
                $result = new jnc_CoderResult;
                $result.$kind = 2;
                $result.$length2 = 1;
            }
            if ($c >= 128) {
                $result = new jnc_CoderResult;
                $result.$kind = 3;
                $result.$length2 = 1;
                var$9 = var$9 + (-1) | 0;
                break a;
            }
            var$10 = $outArray.data;
            $next = $outPos + 1 | 0;
            var$10[$outPos] = $c << 24 >> 24;
            $inPos = var$9;
            $outPos = $next;
        }
        var$9 = $inPos;
    }
    $controller.$inPosition = var$9;
    $controller.$outPosition0 = $outPos;
    return $result;
};
function nms_MapGenBase() {
    let a = this; jl_Object.call(a);
    a.$range = 0;
    a.$rand1 = null;
    a.$worldObj9 = null;
}
let nms_MapGenBase__init_ = $this => {
    let var$1, var$2;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
},
nms_MapGenBase__init_0 = () => {
    let var_0 = new nms_MapGenBase();
    nms_MapGenBase__init_(var_0);
    return var_0;
},
nms_MapGenBase_generate = ($this, $par1IChunkProvider, $par2World, $par3, $par4, $par5ArrayOfByte) => {
    let $var6, $var9, $var13, $var7, $var15, $var11, var$12, var$13, var$14, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var11 = $thread.pop();$var15 = $thread.pop();$var7 = $thread.pop();$var13 = $thread.pop();$var9 = $thread.pop();$var6 = $thread.pop();$par5ArrayOfByte = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1IChunkProvider = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $this.$range;
        $this.$worldObj9 = $par2World;
        $this.$rand1.$seed = $par2World.$worldInfo.$getSeed();
        $par1IChunkProvider = $this.$rand1;
        $var9 = Long_and(Long_add(Long_mul($par1IChunkProvider.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var9;
        $var13 = Long_shl(Long_fromInt(Long_lo(Long_shru($var9, 16))), 32);
        $var9 = Long_and(Long_add(Long_mul($var9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var9;
        $var7 = Long_add($var13, Long_fromInt(Long_lo(Long_shru($var9, 16))));
        $var9 = Long_and(Long_add(Long_mul($var9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var9;
        $var13 = Long_shl(Long_fromInt(Long_lo(Long_shru($var9, 16))), 32);
        $var15 = Long_and(Long_add(Long_mul($var9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1IChunkProvider.$seed = $var15;
        $var9 = Long_add($var13, Long_fromInt(Long_lo(Long_shru($var15, 16))));
        $var11 = $par3 - $var6 | 0;
        var$12 = $par3 + $var6 | 0;
        var$13 = $par4 - $var6 | 0;
        var$14 = $par4 + $var6 | 0;
        while ($var11 <= var$12) {
            $var12 = var$13;
            if ($var12 <= var$14) {
                $this.$rand1.$seed = Long_xor(Long_xor(Long_mul(Long_fromInt($var11), $var7), Long_mul(Long_fromInt($var12), $var9)), $par2World.$worldInfo.$getSeed());
                $ptr = 1;
                continue main;
            }
            $var11 = $var11 + 1 | 0;
        }
        return;
    case 1:
        $this.$recursiveGenerate($par2World, $var11, $var12, $par3, $par4, $par5ArrayOfByte);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var12 + 1 | 0;
        while (true) {
            if ($var12 <= var$14) {
                $this.$rand1.$seed = Long_xor(Long_xor(Long_mul(Long_fromInt($var11), $var7), Long_mul(Long_fromInt($var12), $var9)), $par2World.$worldInfo.$getSeed());
                continue main;
            }
            $var11 = $var11 + 1 | 0;
            if ($var11 > var$12)
                break;
            $var12 = var$13;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IChunkProvider, $par2World, $par3, $par4, $par5ArrayOfByte, $var6, $var9, $var13, $var7, $var15, $var11, var$12, var$13, var$14, $var12, $ptr);
};
function nms_MapGenStructure() {
    let a = this; nms_MapGenBase.call(a);
    a.$field_143029_e = null;
    a.$structureMap = null;
}
let nms_MapGenStructure_recursiveGenerate = ($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte) => {
    let $var7, var$8, $var10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6ArrayOfByte = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_MapGenStructure_func_143027_a($this, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $this.$structureMap;
        var$8 = Long_or(Long_and(Long_fromInt($par2), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par3), Long_create(4294967295, 0)), 32));
        $par1World = new jl_Long;
        $par1World.$value7 = var$8;
        $par5 = Long_lo(var$8) ^ Long_hi(var$8);
        $par6ArrayOfByte = $var7.$elementData.data;
        $var10 = $par6ArrayOfByte[$par5 & ($par6ArrayOfByte.length - 1 | 0)];
        while ($var10 !== null) {
            if ($var10.$origKeyHash == $par5) {
                $var7 = $var10.$key;
                if ($par1World !== $var7 && !($par1World === $var7 ? 1 : $var7 instanceof jl_Long && Long_eq($var7.$value7, var$8) ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var10 = $var10.$next3;
        }
        $par4 = $var10 === null ? 0 : 1;
        a: {
            if (!$par4) {
                $par1World = $this.$rand1;
                $par1World.$seed = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                try {
                    if (!$this.$canSpawnStructureAtCoords($par2, $par3))
                        break a;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par1World = new otcic_JSStderrPrintStream;
                    $var7 = new ji_ByteArrayOutputStream;
                    $var7.$buf = $rt_createByteArray(32);
                    jl_Object__init_($par1World);
                    $par1World.$out0 = $var7;
                    $var7 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var7, 16);
                    $par1World.$sb = $var7;
                    $par1World.$buffer0 = $rt_createCharArray(32);
                    $par1World.$autoFlush = 0;
                    $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $par1World;
                }
                jl_Throwable_printStackTrace($var10, jl_System_errCache);
            }
        }
        return;
    case 2:
        b: {
            try {
                $tmp = $this.$getStructureStart($par2, $par3);
                if ($rt_suspending()) {
                    break main;
                }
                $var7 = $tmp;
                ju_HashMap_put($this.$structureMap, jl_Long_valueOf(nms_ChunkCoordIntPair_chunkXZ2Int($par2, $par3)), $var7);
                nms_MapGenStructure_func_143026_a($this, $par2, $par3, $var7);
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var10 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par1World = new otcic_JSStderrPrintStream;
                $var7 = new ji_ByteArrayOutputStream;
                $var7.$buf = $rt_createByteArray(32);
                jl_Object__init_($par1World);
                $par1World.$out0 = $var7;
                $var7 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_0($var7, 16);
                $par1World.$sb = $var7;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1World;
            }
            jl_Throwable_printStackTrace($var10, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte, $var7, var$8, $var10, $ptr);
},
nms_MapGenStructure_generateStructuresInChunk = ($this, $par1World, $par2Random, $par3, $par4) => {
    let $var5, $var6, $var8, $var9, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_MapGenStructure_func_143027_a($this, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = ($par3 << 4) + 8 | 0;
        $var6 = ($par4 << 4) + 8 | 0;
        $var8 = $this.$structureMap;
        if ($var8.$cachedValues === null) {
            $var9 = new ju_HashMap$2;
            $var9.$this$01 = $var8;
            $var8.$cachedValues = $var9;
        }
        $var8 = $var8.$cachedValues.$iterator();
        var$9 = $var5 + 15 | 0;
        var$10 = $var6 + 15 | 0;
        var$11 = 91;
        var$12 = 44;
        var$13 = 93;
        while ($var8.$hasNext()) {
            $var9 = $var8.$next();
            if ($var9.$isSizeableStructure()) {
                var$14 = $var9.$boundingBox1;
                if (var$14.$maxX >= $var5 && var$14.$minX <= var$9 && var$14.$maxZ >= $var6 && var$14.$minZ <= var$10 ? 1 : 0) {
                    var$14 = new nms_StructureBoundingBox;
                    var$14.$minX = $var5;
                    var$14.$minZ = $var6;
                    var$14.$maxX = var$9;
                    var$14.$maxZ = var$10;
                    var$14.$minY = 1;
                    var$14.$maxY1 = 512;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return 0;
    case 2:
        nms_StructureStart_generateStructure($var9, $par1World, $par2Random, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $var9.$field_143024_c;
        var$16 = $var9.$field_143023_d;
        var$14 = $this.$field_143029_e;
        var$17 = nms_StructureStart_func_143021_a($var9, var$15, var$16);
        var$18 = new jl_StringBuilder;
        var$18.$buffer = $rt_createCharArray(16);
        $par3 = var$18.$length0;
        jl_AbstractStringBuilder_insertSpace(var$18, $par3, $par3 + 1 | 0);
        var$18.$buffer.data[$par3] = var$11;
        jl_AbstractStringBuilder_insert0(var$18, var$18.$length0, var$15, 10);
        $par3 = var$18.$length0;
        jl_AbstractStringBuilder_insertSpace(var$18, $par3, $par3 + 1 | 0);
        var$18.$buffer.data[$par3] = var$12;
        jl_AbstractStringBuilder_insert0(var$18, var$18.$length0, var$16, 10);
        $par3 = var$18.$length0;
        jl_AbstractStringBuilder_insertSpace(var$18, $par3, $par3 + 1 | 0);
        var$19 = var$18.$buffer;
        var$20 = var$19.data;
        var$20[$par3] = var$13;
        $var9 = new jl_String;
        $par4 = var$18.$length0;
        var$16 = var$20.length;
        if ($par4 >= 0 && $par4 <= (var$16 - 0 | 0)) {
            $var9.$nativeString = $rt_charArrayToString(var$19.data, 0, $par4);
            var$17.$name = $var9;
            var$14 = var$14.$field_143044_a.$tagMap;
            var$17.$name = $var9;
            ju_HashMap_putImpl(var$14, $var9, var$17);
            $this.$field_143029_e.$dirty = 1;
            while ($var8.$hasNext()) {
                $var9 = $var8.$next();
                if (!$var9.$isSizeableStructure())
                    continue;
                var$14 = $var9.$boundingBox1;
                if (var$14.$maxX >= $var5 && var$14.$minX <= var$9 && var$14.$maxZ >= $var6 && var$14.$minZ <= var$10 ? 1 : 0) {
                    var$14 = new nms_StructureBoundingBox;
                    var$14.$minX = $var5;
                    var$14.$minZ = $var6;
                    var$14.$maxX = var$9;
                    var$14.$maxZ = var$10;
                    var$14.$minY = 1;
                    var$14.$maxY1 = 512;
                    continue main;
                }
            }
            return 1;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        jl_RuntimeException__init_($par1World);
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $var5, $var6, $var8, $var9, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_MapGenStructure_getNearestInstance = ($this, $par1World, $par2, $par3, $par4) => {
    let $var15, var$6, $var7, $var5, var$9, $var21, $var9, $var22, $var16, $var20, var$15, $var27$index, $var13, $var25, $var26, var$20, var$21, $var27$index_0, $var19, $var23, $var17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var17 = $thread.pop();$var23 = $thread.pop();$var19 = $thread.pop();$var27$index_0 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var26 = $thread.pop();$var25 = $thread.pop();$var13 = $thread.pop();$var27$index = $thread.pop();var$15 = $thread.pop();$var20 = $thread.pop();$var16 = $thread.pop();$var22 = $thread.pop();$var9 = $thread.pop();$var21 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();$var15 = $thread.pop();$par4
        = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$worldObj9 = $par1World;
        $ptr = 1;
    case 1:
        nms_MapGenStructure_func_143027_a($this, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $this.$rand1.$seed = $par1World.$worldInfo.$getSeed();
        $var15 = $this.$rand1;
        var$6 = Long_and(Long_add(Long_mul($var15.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$6;
        $var7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$6, 16))), 32);
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$6;
        $var5 = Long_add($var7, Long_fromInt(Long_lo(Long_shru(var$6, 16))));
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$6;
        $var7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$6, 16))), 32);
        var$9 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$9;
        $var7 = Long_add($var7, Long_fromInt(Long_lo(Long_shru(var$9, 16))));
        $var21 = $par2 >> 4;
        var$9 = Long_fromInt($var21);
        $var9 = Long_mul(var$9, $var5);
        $var22 = $par4 >> 4;
        var$6 = Long_fromInt($var22);
        $var15.$seed = Long_xor(Long_xor($var9, Long_mul(var$6, $var7)), $par1World.$worldInfo.$getSeed());
        $ptr = 2;
    case 2:
        nms_MapGenStructure_func_143027_a($this, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $this.$structureMap;
        var$9 = Long_or(Long_and(var$9, Long_create(4294967295, 0)), Long_shl(Long_and(var$6, Long_create(4294967295, 0)), 32));
        $var16 = new jl_Long;
        $var16.$value7 = var$9;
        $var20 = Long_lo(var$9) ^ Long_hi(var$9);
        var$15 = $par1World.$elementData.data;
        $var15 = var$15[$var20 & (var$15.length - 1 | 0)];
        while ($var15 !== null) {
            if ($var15.$origKeyHash == $var20) {
                $par1World = $var15.$key;
                if ($var16 !== $par1World && !($var16 === $par1World ? 1 : $par1World instanceof jl_Long && Long_eq($par1World.$value7, var$9) ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var15 = $var15.$next3;
        }
        $var27$index = $var15 === null ? 0 : 1;
        a: {
            if (!$var27$index) {
                $par1World = $this.$rand1;
                $par1World.$seed = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                try {
                    if (!$this.$canSpawnStructureAtCoords($var21, $var22))
                        break a;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var15 = new otcic_JSStderrPrintStream;
                    $var16 = new ji_ByteArrayOutputStream;
                    jl_Object__init_($var16);
                    $var16.$buf = $rt_createByteArray(32);
                    ji_OutputStream__init_($var15);
                    $var15.$out0 = $var16;
                    $var16 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_($var16);
                    $var15.$sb = $var16;
                    $var15.$buffer0 = $rt_createCharArray(32);
                    $var15.$autoFlush = 0;
                    $var15.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var15;
                }
                jl_Throwable_printStackTrace($par1World, jl_System_errCache);
            }
        }
        $var13 = 1.7976931348623157E308;
        $var15 = null;
        $par1World = $this.$structureMap;
        if ($par1World.$cachedValues === null) {
            $var16 = new ju_HashMap$2;
            $var16.$this$01 = $par1World;
            $par1World.$cachedValues = $var16;
        }
        $var16 = $par1World.$cachedValues.$iterator();
        while (true) {
            if (!$var16.$hasNext()) {
                if ($var15 !== null)
                    return $var15;
                $var25 = $this.$getCoordList();
                if ($var25 === null)
                    return null;
                $var26 = null;
                $var27$index = 0;
                var$20 = $var25.$modCount;
                var$21 = $var25.$size();
                while ($var27$index >= var$21 ? 0 : 1) {
                    if (var$20 < $var25.$modCount) {
                        $par1World = new ju_ConcurrentModificationException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    $var27$index_0 = $var27$index + 1 | 0;
                    $var19 = $var25.$get($var27$index);
                    $var20 = $var19.$x - $par2 | 0;
                    $var21 = $var19.$y - $par3 | 0;
                    $var22 = $var19.$z - $par4 | 0;
                    $var23 = ($rt_imul($var20, $var20) + $rt_imul($var21, $var21) | 0) + $rt_imul($var22, $var22) | 0;
                    if ($var23 >= $var13) {
                        $var27$index = $var27$index_0;
                        continue;
                    }
                    $var13 = $var23;
                    $var26 = $var19;
                    $var27$index = $var27$index_0;
                }
                return $var26;
            }
            $var17 = $var16.$next();
            if ($var17.$isSizeableStructure()) {
                $par1World = ju_LinkedList_listIterator($var17.$components, 0);
                if ($par1World.$version < $par1World.$this$02.$modCount) {
                    $par1World = new ju_ConcurrentModificationException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                $var25 = $par1World.$nextEntry1;
                if ($var25 === null)
                    break;
                $var26 = $var25.$item;
                $par1World.$currentEntry2 = $var25;
                $par1World.$prevEntry = $var25;
                $par1World.$nextEntry1 = $var25.$next5;
                $par1World.$index4 = $par1World.$index4 + 1 | 0;
                $var19 = $var26.$getCenter();
                $var20 = $var19.$x - $par2 | 0;
                $var21 = $var19.$y - $par3 | 0;
                $var22 = $var19.$z - $par4 | 0;
                $var23 = ($rt_imul($var20, $var20) + $rt_imul($var21, $var21) | 0) + $rt_imul($var22, $var22) | 0;
                if ($var23 < $var13) {
                    $var13 = $var23;
                    $var15 = $var19;
                }
            }
        }
        $par1World = new ju_NoSuchElementException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 3:
        b: {
            try {
                $tmp = $this.$getStructureStart($var21, $var22);
                if ($rt_suspending()) {
                    break main;
                }
                $par1World = $tmp;
                ju_HashMap_put($this.$structureMap, jl_Long_valueOf(nms_ChunkCoordIntPair_chunkXZ2Int($var21, $var22)), $par1World);
                nms_MapGenStructure_func_143026_a($this, $var21, $var22, $par1World);
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var15 = new otcic_JSStderrPrintStream;
                $var16 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var16);
                $var16.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var15);
                $var15.$out0 = $var16;
                $var16 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var16);
                $var15.$sb = $var16;
                $var15.$buffer0 = $rt_createCharArray(32);
                $var15.$autoFlush = 0;
                $var15.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var15;
            }
            jl_Throwable_printStackTrace($par1World, jl_System_errCache);
        }
        $var13 = 1.7976931348623157E308;
        $var15 = null;
        $par1World = $this.$structureMap;
        if ($par1World.$cachedValues === null) {
            $var16 = new ju_HashMap$2;
            $var16.$this$01 = $par1World;
            $par1World.$cachedValues = $var16;
        }
        $var16 = $par1World.$cachedValues.$iterator();
        while (true) {
            if (!$var16.$hasNext()) {
                if ($var15 !== null)
                    return $var15;
                $var25 = $this.$getCoordList();
                if ($var25 === null)
                    return null;
                $var26 = null;
                $var27$index = 0;
                var$20 = $var25.$modCount;
                var$21 = $var25.$size();
                while ($var27$index >= var$21 ? 0 : 1) {
                    if (var$20 < $var25.$modCount) {
                        $par1World = new ju_ConcurrentModificationException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    $var27$index_0 = $var27$index + 1 | 0;
                    $var19 = $var25.$get($var27$index);
                    $var20 = $var19.$x - $par2 | 0;
                    $var21 = $var19.$y - $par3 | 0;
                    $var22 = $var19.$z - $par4 | 0;
                    $var23 = ($rt_imul($var20, $var20) + $rt_imul($var21, $var21) | 0) + $rt_imul($var22, $var22) | 0;
                    if ($var23 >= $var13) {
                        $var27$index = $var27$index_0;
                        continue;
                    }
                    $var13 = $var23;
                    $var26 = $var19;
                    $var27$index = $var27$index_0;
                }
                return $var26;
            }
            $var17 = $var16.$next();
            if ($var17.$isSizeableStructure()) {
                $par1World = ju_LinkedList_listIterator($var17.$components, 0);
                if ($par1World.$version < $par1World.$this$02.$modCount) {
                    $par1World = new ju_ConcurrentModificationException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                $var25 = $par1World.$nextEntry1;
                if ($var25 === null)
                    break;
                $var26 = $var25.$item;
                $par1World.$currentEntry2 = $var25;
                $par1World.$prevEntry = $var25;
                $par1World.$nextEntry1 = $var25.$next5;
                $par1World.$index4 = $par1World.$index4 + 1 | 0;
                $var19 = $var26.$getCenter();
                $var20 = $var19.$x - $par2 | 0;
                $var21 = $var19.$y - $par3 | 0;
                $var22 = $var19.$z - $par4 | 0;
                $var23 = ($rt_imul($var20, $var20) + $rt_imul($var21, $var21) | 0) + $rt_imul($var22, $var22) | 0;
                if ($var23 < $var13) {
                    $var13 = $var23;
                    $var15 = $var19;
                }
            }
        }
        $par1World = new ju_NoSuchElementException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var15, var$6, $var7, $var5, var$9, $var21, $var9, $var22, $var16, $var20, var$15, $var27$index, $var13, $var25, $var26, var$20, var$21, $var27$index_0, $var19, $var23, $var17, $ptr);
},
nms_MapGenStructure_getCoordList = $this => {
    return null;
},
nms_MapGenStructure_func_143027_a = ($this, $par1World) => {
    let $var8, $var3, $var4, $var7, var$6, var$7, var$8, $var5, $var2, var$11, var$12, $var6, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var6 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var2 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var8 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_143029_e !== null)
            return;
        $var8 = new nms_MapGenStructure$func_143027_a$lambda$_9_0;
        $var3 = $this.$func_143025_a();
        $var4 = $par1World.$mapStorage;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_MapStorage_loadData($var4, $var8, $var3);
            if ($rt_suspending()) {
                break main;
            }
            $var3 = $tmp;
            $var3 = $var3;
            $this.$field_143029_e = $var3;
            if ($var3 === null) {
                $var3 = new nms_MapGenStructureData;
                $var3.$mapName = $this.$func_143025_a();
                $var4 = new nms_NBTTagCompound;
                $var4.$name = $rt_s(2381);
                $var8 = new ju_HashMap;
                $var7 = ju_HashMap_calculateCapacity(16);
                $var8.$elementCount = 0;
                var$6 = $rt_createArray(ju_HashMap$HashEntry, $var7);
                var$7 = var$6.data;
                $var8.$elementData = var$6;
                $var8.$loadFactor = 0.75;
                $var8.$threshold = var$7.length * 0.75 | 0;
                $var4.$tagMap = $var8;
                $var3.$field_143044_a = $var4;
                $this.$field_143029_e = $var3;
                $var3 = $this.$func_143025_a();
                $var8 = $this.$field_143029_e;
                $par1World = $par1World.$mapStorage;
                if ($var8 === null) {
                    $par1World = new jl_RuntimeException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $par1World.$message = $rt_s(1664);
                    $rt_throw($par1World);
                }
                $var4 = $par1World.$loadedDataMap;
                if ($var3 === null) {
                    $var4 = $var4.$elementData.data[0];
                    while ($var4 !== null && $var4.$key !== null) {
                        $var4 = $var4.$next3;
                    }
                } else {
                    b: {
                        if (!$var3.$hashCode1) {
                            $var7 = 0;
                            while (true) {
                                if ($var7 >= $var3.$nativeString.length)
                                    break b;
                                $var3.$hashCode1 = (31 * $var3.$hashCode1 | 0) + $var3.$nativeString.charCodeAt($var7) | 0;
                                $var7 = $var7 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $var3.$hashCode1;
                    var$7 = $var4.$elementData.data;
                    $var4 = var$7[var$8 & (var$7.length - 1 | 0)];
                    while ($var4 !== null) {
                        if ($var4.$origKeyHash == var$8) {
                            c: {
                                $var5 = $var4.$key;
                                if ($var3 !== $var5) {
                                    if ($var3 === $var5)
                                        $var7 = 1;
                                    else if (!($var5 instanceof jl_String))
                                        $var7 = 0;
                                    else {
                                        $var5 = $var5;
                                        $var7 = $var3.$nativeString !== $var5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var7) {
                                        $var7 = 0;
                                        break c;
                                    }
                                }
                                $var7 = 1;
                            }
                            if ($var7)
                                break;
                        }
                        $var4 = $var4.$next3;
                    }
                }
                if ($var4 === null ? 0 : 1) {
                    $var4 = $par1World.$loadedDataList;
                    $var5 = ju_HashMap_removeByKey($par1World.$loadedDataMap, $var3);
                    $var5 = $var5 === null ? null : $var5.$value0;
                    var$8 = $var4.$size0;
                    $var7 = 0;
                    d: {
                        while (true) {
                            if ($var7 >= var$8) {
                                $var7 = (-1);
                                break d;
                            }
                            if ($var7 < 0)
                                break;
                            if ($var7 >= $var4.$size0)
                                break;
                            $var2 = $var4.$array.data[$var7];
                            if ($var5 === $var2 ? 1 : $var5 !== null ? $var5.$equals($var2) : $var2 !== null ? 0 : 1)
                                break d;
                            $var7 = $var7 + 1 | 0;
                        }
                        $par1World = new jl_IndexOutOfBoundsException;
                        jl_Exception__init_($par1World);
                        $rt_throw($par1World);
                    }
                    if ($var7 >= 0)
                        ju_ArrayList_remove($var4, $var7);
                }
                ju_HashMap_putImpl($par1World.$loadedDataMap, $var3, $var8);
                $par1World = $par1World.$loadedDataList;
                ju_ArrayList_ensureCapacity($par1World, $par1World.$size0 + 1 | 0);
                var$7 = $par1World.$array.data;
                var$11 = $par1World.$size0;
                $par1World.$size0 = var$11 + 1 | 0;
                var$7[var$11] = $var8;
                $par1World.$modCount = $par1World.$modCount + 1 | 0;
            } else {
                $var3 = $var3.$field_143044_a.$tagMap;
                if ($var3.$cachedValues === null) {
                    $var8 = new ju_HashMap$2;
                    $var8.$this$01 = $var3;
                    $var3.$cachedValues = $var8;
                }
                $var3 = $var3.$cachedValues.$iterator();
                while (true) {
                    if (!$var3.$hasNext())
                        break a;
                    $var4 = $var3.$next();
                    if ($var4.$getId() == 10) {
                        e: {
                            $var5 = $var4;
                            $var4 = $var5.$tagMap;
                            if (!$rt_s(2382).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(2382).$nativeString.length)
                                        break e;
                                    $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(2382).$hashCode1;
                        var$7 = $var4.$elementData.data;
                        $var4 = var$7[var$8 & (var$7.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == var$8) {
                                f: {
                                    $var2 = $var4.$key;
                                    if ($rt_s(2382) !== $var2) {
                                        if ($rt_s(2382) === $var2)
                                            $var7 = 1;
                                        else if (!($var2 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            $var2 = $var2;
                                            $var7 = $rt_s(2382).$nativeString !== $var2.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break f;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                        if ($var4 === null ? 0 : 1) {
                            g: {
                                $var4 = $var5.$tagMap;
                                if (!$rt_s(2383).$hashCode1) {
                                    $var7 = 0;
                                    while (true) {
                                        if ($var7 >= $rt_s(2383).$nativeString.length)
                                            break g;
                                        $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var7) | 0;
                                        $var7 = $var7 + 1 | 0;
                                    }
                                }
                            }
                            $var7 = $rt_s(2383).$hashCode1;
                            var$7 = $var4.$elementData.data;
                            $var4 = var$7[$var7 & (var$7.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == $var7) {
                                    h: {
                                        $var2 = $var4.$key;
                                        if ($rt_s(2383) !== $var2) {
                                            if ($rt_s(2383) === $var2)
                                                var$11 = 1;
                                            else if (!($var2 instanceof jl_String))
                                                var$11 = 0;
                                            else {
                                                $var2 = $var2;
                                                var$11 = $rt_s(2383).$nativeString !== $var2.$nativeString ? 0 : 1;
                                            }
                                            if (!var$11) {
                                                var$11 = 0;
                                                break h;
                                            }
                                        }
                                        var$11 = 1;
                                    }
                                    if (var$11)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                            if ($var4 === null ? 0 : 1) {
                                i: {
                                    $var8 = $var5.$tagMap;
                                    if (!$rt_s(2382).$hashCode1) {
                                        $var7 = 0;
                                        while (true) {
                                            if ($var7 >= $rt_s(2382).$nativeString.length)
                                                break i;
                                            $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var7) | 0;
                                            $var7 = $var7 + 1 | 0;
                                        }
                                    }
                                }
                                var$11 = $rt_s(2382).$hashCode1;
                                var$7 = $var8.$elementData.data;
                                var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                                while (var$12 !== null) {
                                    if (var$12.$origKeyHash == var$11) {
                                        j: {
                                            $var8 = var$12.$key;
                                            if ($rt_s(2382) !== $var8) {
                                                if ($rt_s(2382) === $var8)
                                                    $var7 = 1;
                                                else if (!($var8 instanceof jl_String))
                                                    $var7 = 0;
                                                else {
                                                    $var8 = $var8;
                                                    $var7 = $rt_s(2382).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                }
                                                if (!$var7) {
                                                    $var7 = 0;
                                                    break j;
                                                }
                                            }
                                            $var7 = 1;
                                        }
                                        if ($var7)
                                            break;
                                    }
                                    var$12 = var$12.$next3;
                                }
                                if (!(var$12 === null ? 0 : 1))
                                    $var6 = 0;
                                else {
                                    $var8 = $var5.$tagMap;
                                    if ($rt_s(2382) === null) {
                                        var$12 = $var8.$elementData.data[0];
                                        while (var$12 !== null && var$12.$key !== null) {
                                            var$12 = var$12.$next3;
                                        }
                                    } else {
                                        k: {
                                            if (!$rt_s(2382).$hashCode1) {
                                                $var7 = 0;
                                                while (true) {
                                                    if ($var7 >= $rt_s(2382).$nativeString.length)
                                                        break k;
                                                    $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var7) | 0;
                                                    $var7 = $var7 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$11 = $rt_s(2382).$hashCode1;
                                        var$7 = $var8.$elementData.data;
                                        var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                                        while (var$12 !== null) {
                                            if (var$12.$origKeyHash == var$11) {
                                                l: {
                                                    $var8 = var$12.$key;
                                                    if ($rt_s(2382) !== $var8) {
                                                        if ($rt_s(2382) === $var8)
                                                            $var7 = 1;
                                                        else if (!($var8 instanceof jl_String))
                                                            $var7 = 0;
                                                        else {
                                                            $var8 = $var8;
                                                            $var7 = $rt_s(2382).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var7) {
                                                            $var7 = 0;
                                                            break l;
                                                        }
                                                    }
                                                    $var7 = 1;
                                                }
                                                if ($var7)
                                                    break;
                                            }
                                            var$12 = var$12.$next3;
                                        }
                                    }
                                    $var6 = (var$12 === null ? null : var$12.$value0).$data;
                                }
                                m: {
                                    $var8 = $var5.$tagMap;
                                    if (!$rt_s(2383).$hashCode1) {
                                        $var7 = 0;
                                        while (true) {
                                            if ($var7 >= $rt_s(2383).$nativeString.length)
                                                break m;
                                            $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var7) | 0;
                                            $var7 = $var7 + 1 | 0;
                                        }
                                    }
                                }
                                var$11 = $rt_s(2383).$hashCode1;
                                var$7 = $var8.$elementData.data;
                                var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                                while (var$12 !== null) {
                                    if (var$12.$origKeyHash == var$11) {
                                        n: {
                                            $var8 = var$12.$key;
                                            if ($rt_s(2383) !== $var8) {
                                                if ($rt_s(2383) === $var8)
                                                    $var7 = 1;
                                                else if (!($var8 instanceof jl_String))
                                                    $var7 = 0;
                                                else {
                                                    $var8 = $var8;
                                                    $var7 = $rt_s(2383).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                }
                                                if (!$var7) {
                                                    $var7 = 0;
                                                    break n;
                                                }
                                            }
                                            $var7 = 1;
                                        }
                                        if ($var7)
                                            break;
                                    }
                                    var$12 = var$12.$next3;
                                }
                                if (!(var$12 === null ? 0 : 1))
                                    $var7 = 0;
                                else {
                                    $var8 = $var5.$tagMap;
                                    if ($rt_s(2383) === null) {
                                        var$12 = $var8.$elementData.data[0];
                                        while (var$12 !== null && var$12.$key !== null) {
                                            var$12 = var$12.$next3;
                                        }
                                    } else {
                                        o: {
                                            if (!$rt_s(2383).$hashCode1) {
                                                $var7 = 0;
                                                while (true) {
                                                    if ($var7 >= $rt_s(2383).$nativeString.length)
                                                        break o;
                                                    $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var7) | 0;
                                                    $var7 = $var7 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$11 = $rt_s(2383).$hashCode1;
                                        var$7 = $var8.$elementData.data;
                                        var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                                        while (var$12 !== null) {
                                            if (var$12.$origKeyHash == var$11) {
                                                p: {
                                                    $var8 = var$12.$key;
                                                    if ($rt_s(2383) !== $var8) {
                                                        if ($rt_s(2383) === $var8)
                                                            $var7 = 1;
                                                        else if (!($var8 instanceof jl_String))
                                                            $var7 = 0;
                                                        else {
                                                            $var8 = $var8;
                                                            $var7 = $rt_s(2383).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var7) {
                                                            $var7 = 0;
                                                            break p;
                                                        }
                                                    }
                                                    $var7 = 1;
                                                }
                                                if ($var7)
                                                    break;
                                            }
                                            var$12 = var$12.$next3;
                                        }
                                    }
                                    $var7 = (var$12 === null ? null : var$12.$value0).$data;
                                }
                                $ptr = 2;
                                continue main;
                            }
                        }
                    }
                }
            }
        }
        return;
    case 2:
        $tmp = nms_MapGenStructureIO_func_143035_a($var5, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var4 = $this.$structureMap;
        var$14 = Long_or(Long_and(Long_fromInt($var6), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), 32));
        $var5 = new jl_Long;
        $var5.$value7 = var$14;
        ju_HashMap_putImpl($var4, $var5, $var8);
        while ($var3.$hasNext()) {
            $var4 = $var3.$next();
            if ($var4.$getId() != 10)
                continue;
            q: {
                $var5 = $var4;
                $var4 = $var5.$tagMap;
                if (!$rt_s(2382).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(2382).$nativeString.length)
                            break q;
                        $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2382).$hashCode1;
            var$7 = $var4.$elementData.data;
            $var4 = var$7[var$8 & (var$7.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$8) {
                    b: {
                        $var2 = $var4.$key;
                        if ($rt_s(2382) !== $var2) {
                            if ($rt_s(2382) === $var2)
                                $var7 = 1;
                            else if (!($var2 instanceof jl_String))
                                $var7 = 0;
                            else {
                                $var2 = $var2;
                                $var7 = $rt_s(2382).$nativeString !== $var2.$nativeString ? 0 : 1;
                            }
                            if (!$var7) {
                                $var7 = 0;
                                break b;
                            }
                        }
                        $var7 = 1;
                    }
                    if ($var7)
                        break;
                }
                $var4 = $var4.$next3;
            }
            if (!($var4 === null ? 0 : 1))
                continue;
            r: {
                $var4 = $var5.$tagMap;
                if (!$rt_s(2383).$hashCode1) {
                    $var7 = 0;
                    while (true) {
                        if ($var7 >= $rt_s(2383).$nativeString.length)
                            break r;
                        $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var7) | 0;
                        $var7 = $var7 + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(2383).$hashCode1;
            var$7 = $var4.$elementData.data;
            $var4 = var$7[$var7 & (var$7.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == $var7) {
                    s: {
                        $var2 = $var4.$key;
                        if ($rt_s(2383) !== $var2) {
                            if ($rt_s(2383) === $var2)
                                var$11 = 1;
                            else if (!($var2 instanceof jl_String))
                                var$11 = 0;
                            else {
                                $var2 = $var2;
                                var$11 = $rt_s(2383).$nativeString !== $var2.$nativeString ? 0 : 1;
                            }
                            if (!var$11) {
                                var$11 = 0;
                                break s;
                            }
                        }
                        var$11 = 1;
                    }
                    if (var$11)
                        break;
                }
                $var4 = $var4.$next3;
            }
            if (!($var4 === null ? 0 : 1))
                continue;
            else {
                t: {
                    $var8 = $var5.$tagMap;
                    if (!$rt_s(2382).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(2382).$nativeString.length)
                                break t;
                            $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2382).$hashCode1;
                var$7 = $var8.$elementData.data;
                var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$11) {
                        u: {
                            $var8 = var$12.$key;
                            if ($rt_s(2382) !== $var8) {
                                if ($rt_s(2382) === $var8)
                                    $var7 = 1;
                                else if (!($var8 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $var8 = $var8;
                                    $var7 = $rt_s(2382).$nativeString !== $var8.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break u;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                if (!(var$12 === null ? 0 : 1))
                    $var6 = 0;
                else {
                    $var8 = $var5.$tagMap;
                    if ($rt_s(2382) === null) {
                        var$12 = $var8.$elementData.data[0];
                        while (var$12 !== null && var$12.$key !== null) {
                            var$12 = var$12.$next3;
                        }
                    } else {
                        v: {
                            if (!$rt_s(2382).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(2382).$nativeString.length)
                                        break v;
                                    $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2382).$hashCode1;
                        var$7 = $var8.$elementData.data;
                        var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == var$11) {
                                w: {
                                    $var8 = var$12.$key;
                                    if ($rt_s(2382) !== $var8) {
                                        if ($rt_s(2382) === $var8)
                                            $var7 = 1;
                                        else if (!($var8 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            $var8 = $var8;
                                            $var7 = $rt_s(2382).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break w;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                    }
                    $var6 = (var$12 === null ? null : var$12.$value0).$data;
                }
                x: {
                    $var8 = $var5.$tagMap;
                    if (!$rt_s(2383).$hashCode1) {
                        $var7 = 0;
                        while (true) {
                            if ($var7 >= $rt_s(2383).$nativeString.length)
                                break x;
                            $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var7) | 0;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(2383).$hashCode1;
                var$7 = $var8.$elementData.data;
                var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                while (var$12 !== null) {
                    if (var$12.$origKeyHash == var$11) {
                        y: {
                            $var8 = var$12.$key;
                            if ($rt_s(2383) !== $var8) {
                                if ($rt_s(2383) === $var8)
                                    $var7 = 1;
                                else if (!($var8 instanceof jl_String))
                                    $var7 = 0;
                                else {
                                    $var8 = $var8;
                                    $var7 = $rt_s(2383).$nativeString !== $var8.$nativeString ? 0 : 1;
                                }
                                if (!$var7) {
                                    $var7 = 0;
                                    break y;
                                }
                            }
                            $var7 = 1;
                        }
                        if ($var7)
                            break;
                    }
                    var$12 = var$12.$next3;
                }
                if (!(var$12 === null ? 0 : 1))
                    $var7 = 0;
                else {
                    $var8 = $var5.$tagMap;
                    if ($rt_s(2383) === null) {
                        var$12 = $var8.$elementData.data[0];
                        while (var$12 !== null && var$12.$key !== null) {
                            var$12 = var$12.$next3;
                        }
                    } else {
                        z: {
                            if (!$rt_s(2383).$hashCode1) {
                                $var7 = 0;
                                while (true) {
                                    if ($var7 >= $rt_s(2383).$nativeString.length)
                                        break z;
                                    $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var7) | 0;
                                    $var7 = $var7 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(2383).$hashCode1;
                        var$7 = $var8.$elementData.data;
                        var$12 = var$7[var$11 & (var$7.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == var$11) {
                                ba: {
                                    $var8 = var$12.$key;
                                    if ($rt_s(2383) !== $var8) {
                                        if ($rt_s(2383) === $var8)
                                            $var7 = 1;
                                        else if (!($var8 instanceof jl_String))
                                            $var7 = 0;
                                        else {
                                            $var8 = $var8;
                                            $var7 = $rt_s(2383).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!$var7) {
                                            $var7 = 0;
                                            break ba;
                                        }
                                    }
                                    $var7 = 1;
                                }
                                if ($var7)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                    }
                    $var7 = (var$12 === null ? null : var$12.$value0).$data;
                }
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $var8, $var3, $var4, $var7, var$6, var$7, var$8, $var5, $var2, var$11, var$12, $var6, var$14, $ptr);
},
nms_MapGenStructure_func_143026_a = ($this, $par1, $par2, $par3StructureStart) => {
    let var$4, var$5, var$6, var$7, var$8, var$9;
    var$4 = $this.$field_143029_e;
    $par3StructureStart = nms_StructureStart_func_143021_a($par3StructureStart, $par1, $par2);
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    var$6 = var$5.$length0;
    jl_AbstractStringBuilder_insertSpace(var$5, var$6, var$6 + 1 | 0);
    var$5.$buffer.data[var$6] = 91;
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $par1, 10);
    $par1 = var$5.$length0;
    jl_AbstractStringBuilder_insertSpace(var$5, $par1, $par1 + 1 | 0);
    var$5.$buffer.data[$par1] = 44;
    jl_AbstractStringBuilder_insert0(var$5, var$5.$length0, $par2, 10);
    $par2 = var$5.$length0;
    jl_AbstractStringBuilder_insertSpace(var$5, $par2, $par2 + 1 | 0);
    var$7 = var$5.$buffer;
    var$8 = var$7.data;
    var$8[$par2] = 93;
    var$9 = new jl_String;
    $par2 = var$5.$length0;
    var$6 = var$8.length;
    if ($par2 >= 0 && $par2 <= (var$6 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$7.data, 0, $par2);
        $par3StructureStart.$name = var$9;
        var$4 = var$4.$field_143044_a.$tagMap;
        $par3StructureStart.$name = var$9;
        ju_HashMap_putImpl(var$4, var$9, $par3StructureStart);
        $this.$field_143029_e.$dirty = 1;
        return;
    }
    $par3StructureStart = new jl_IndexOutOfBoundsException;
    jl_Exception__init_($par3StructureStart);
    $rt_throw($par3StructureStart);
};
function nms_MapGenNetherBridge() {
    nms_MapGenStructure.call(this);
    this.$spawnList = null;
}
let nms_MapGenNetherBridge__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
    var$1 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    $this.$structureMap = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$spawnList = var$1;
    var$6 = new nms_SpawnListEntry;
    var$6.$itemWeight = 10;
    var$6.$entityClass = $rt_cls(nms_EntityBlaze);
    var$6.$minGroupCount = 2;
    var$6.$maxGroupCount = 3;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$5 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$5[var$7] = var$6;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$spawnList;
    var$8 = new nms_SpawnListEntry;
    var$8.$itemWeight = 5;
    var$8.$entityClass = $rt_cls(nms_EntityPigZombie);
    var$8.$minGroupCount = 4;
    var$8.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$5 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$5[var$7] = var$8;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$spawnList;
    var$8 = new nms_SpawnListEntry;
    var$8.$itemWeight = 10;
    var$8.$entityClass = $rt_cls(nms_EntitySkeleton);
    var$8.$minGroupCount = 4;
    var$8.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$5 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$5[var$7] = var$8;
    var$1.$modCount = var$1.$modCount + 1 | 0;
    var$1 = $this.$spawnList;
    var$8 = new nms_SpawnListEntry;
    var$8.$itemWeight = 3;
    var$8.$entityClass = $rt_cls(nms_EntityMagmaCube);
    var$8.$minGroupCount = 4;
    var$8.$maxGroupCount = 4;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$5 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$5[var$7] = var$8;
    var$1.$modCount = var$1.$modCount + 1 | 0;
},
nms_MapGenNetherBridge__init_0 = () => {
    let var_0 = new nms_MapGenNetherBridge();
    nms_MapGenNetherBridge__init_(var_0);
    return var_0;
},
nms_MapGenNetherBridge_func_143025_a = $this => {
    return $rt_s(2384);
},
nms_MapGenNetherBridge_canSpawnStructureAtCoords = ($this, $par1, $par2) => {
    let $var3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    $var3 = $par1 >> 4;
    $var4 = $par2 >> 4;
    var$5 = $this.$rand1;
    var$6 = $var4 << 4;
    var$5.$seed = Long_xor(Long_fromInt($var3 ^ var$6), $this.$worldObj9.$worldInfo.$getSeed());
    var$7 = $this.$rand1;
    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$7.$seed = var$8;
    var$9 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$7.$seed = var$9;
    var$10 = Long_lo(Long_shru(var$9, 17));
    while (true) {
        var$11 = var$10 % 3 | 0;
        if (((var$10 - var$11 | 0) + 2 | 0) >= 0)
            break;
        var$9 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$9;
        var$10 = Long_lo(Long_shru(var$9, 17));
    }
    if (var$11)
        $par1 = 0;
    else {
        var$10 = ($var3 << 4) + 4 | 0;
        var$12 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$12;
        if ($par1 != (var$10 + Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$12, 17)))), 31)) | 0))
            $par1 = 0;
        else {
            $par1 = var$6 + 4 | 0;
            var$9 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$9;
            $par1 = $par2 != ($par1 + Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31)) | 0) ? 0 : 1;
        }
    }
    return $par1;
},
nms_MapGenNetherBridge_getStructureStart = ($this, $par1, $par2) => {
    return nms_StructureNetherBridgeStart__init_0($this.$worldObj9, $this.$rand1, $par1, $par2);
},
nms_MapGenCavesHell = $rt_classWithoutFields(nms_MapGenBase),
nms_MapGenCavesHell__init_ = $this => {
    let var$1, var$2;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
},
nms_MapGenCavesHell__init_0 = () => {
    let var_0 = new nms_MapGenCavesHell();
    nms_MapGenCavesHell__init_(var_0);
    return var_0;
},
nms_MapGenCavesHell_generateCaveNode = ($this, $var25$seed, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, $par13, $par14, $par15, $par16, $par17) => {
    let var$14, $var19, var$16, $var21, $var23, $var24, $var26, $var43, var$22, var$23, $var53, $var25$seed_0, $var52, $var27, $var25$seed_1, $var28, $var41, var$31, var$32, var$33, var$34, var$35, var$36, $var29, $var31, var$39, $var33, $var34, $var25$seed_2, $var35, $var37, $var39, $var54, $var36, $var55, $var38, $var56, $var40, $var57, $var42, $var44, $var45, $var45_0, $var58, $var46, $var48, $var49, $var50;
    var$14 = $par3 * 16 | 0;
    $var19 = var$14 + 8 | 0;
    var$16 = $par4 * 16 | 0;
    $var21 = var$16 + 8 | 0;
    $var23 = 0.0;
    $var24 = 0.0;
    if ($par16 <= 0) {
        $var26 = ($this.$range * 16 | 0) - 16 | 0;
        $var43 = $var26 / 4 | 0;
        $var25$seed = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$22 = Long_lo(Long_shru($var25$seed, 17));
        $par16 = $var43 - 1 | 0;
        if (!($var43 & $par16))
            var$23 = Long_lo(Long_shr(Long_mul(Long_fromInt($var43), Long_fromInt(var$22)), 31));
        else
            while (true) {
                var$23 = var$22 % $var43 | 0;
                if (((var$22 - var$23 | 0) + $par16 | 0) >= 0)
                    break;
                $var25$seed = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$22 = Long_lo(Long_shru($var25$seed, 17));
            }
        $par16 = $var26 - var$23 | 0;
    }
    $var53 = 0;
    if ($par15 == (-1)) {
        $par15 = $par16 / 2 | 0;
        $var53 = 1;
    }
    var$23 = $par16 / 2 | 0;
    $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $var43 = Long_lo(Long_shru($var25$seed_0, 17));
    $var52 = var$23 - 1 | 0;
    if (!(var$23 & $var52))
        $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$23), Long_fromInt($var43)), 31));
    else
        while (true) {
            $var26 = $var43 % var$23 | 0;
            if ((($var43 - $var26 | 0) + $var52 | 0) >= 0)
                break;
            $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var43 = Long_lo(Long_shru($var25$seed_0, 17));
        }
    $var27 = $var26 + ($par16 / 4 | 0) | 0;
    $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $var52 = Long_lo(Long_shru($var25$seed_1, 17));
    while (true) {
        $var26 = $var52 % 6 | 0;
        if ((($var52 - $var26 | 0) + 5 | 0) >= 0)
            break;
        $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var52 = Long_lo(Long_shru($var25$seed_1, 17));
    }
    $var28 = $var26 ? 0 : 1;
    $var26 = $rt_compare($par12, 1.0);
    $var41 = $par12 + 2.0 + 16.0;
    $var41 = $var41 * $var41;
    var$31 = $var19 - 16.0;
    var$32 = $var21 - 16.0;
    var$33 = $var19 + 16.0;
    var$34 = $var21 + 16.0;
    a: {
        b: while (true) {
            if ($par15 >= $par16)
                break a;
            var$35 = $par15 * 3.1415927410125732 / $par16;
            var$36 = nms_MathHelper_SIN_TABLE.data;
            $var29 = 1.5 + var$36[(var$35 * 10430.3779296875 | 0) & 65535] * $par12 * 1.0;
            $var31 = $var29 * $par17;
            var$39 = $par14 * 10430.3779296875;
            $var33 = var$36[(var$39 + 16384.0 | 0) & 65535];
            $var34 = var$36[(var$39 | 0) & 65535];
            var$39 = $par13 * 10430.3779296875;
            $par6 = $par6 + var$36[(var$39 + 16384.0 | 0) & 65535] * $var33;
            $par8 = $par8 + $var34;
            $par10 = $par10 + var$36[(var$39 | 0) & 65535] * $var33;
            $par14 = (!$var28 ? $par14 * 0.699999988079071 : $par14 * 0.9200000166893005) + $var24 * 0.10000000149011612;
            $par13 = $par13 + $var23 * 0.10000000149011612;
            var$35 = $var24 * 0.8999999761581421;
            $var34 = $var23 * 0.75;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var24 = Long_lo(Long_shru($var25$seed_1, 24)) / 1.6777216E7;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var24 = $var24 - Long_lo(Long_shru($var25$seed_1, 24)) / 1.6777216E7;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var24 = var$35 + $var24 * Long_lo(Long_shru($var25$seed_1, 24)) / 1.6777216E7 * 2.0;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$35 = Long_lo(Long_shru($var25$seed_1, 24)) / 1.6777216E7;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$35 = var$35 - Long_lo(Long_shru($var25$seed_1, 24)) / 1.6777216E7;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var23 = $var34 + var$35 * Long_lo(Long_shru($var25$seed_1, 24)) / 1.6777216E7 * 4.0;
            if (!$var53 && $par15 == $var27 && $var26 > 0) {
                $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var25$seed = Long_shl(Long_fromInt(Long_lo(Long_shru($var25$seed_1, 16))), 32);
                $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var25$seed = Long_add($var25$seed, Long_fromInt(Long_lo(Long_shru($var25$seed_1, 16))));
                $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$39 = Long_lo(Long_shru($var25$seed_0, 24)) / 1.6777216E7 * 0.5 + 0.5;
                $var23 = $par13 - 1.5707963705062866;
                $par12 = $par14 / 3.0;
                nms_MapGenCavesHell_generateCaveNode($this, $var25$seed, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, var$39, $var23, $par12, $par15, $par16, 1.0);
                $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var25$seed = Long_shl(Long_fromInt(Long_lo(Long_shru($var25$seed_1, 16))), 32);
                $var25$seed_2 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                nms_MapGenCavesHell_generateCaveNode($this, Long_add($var25$seed, Long_fromInt(Long_lo(Long_shru($var25$seed_2, 16)))), $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, Long_lo(Long_shru(Long_and(Long_add(Long_mul($var25$seed_2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535)), 24)) / 1.6777216E7 * 0.5 + 0.5, $par13 + 1.5707963705062866, $par12, $par15, $par16, 1.0);
                return;
            }
            c: {
                if (!$var53) {
                    $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru($var25$seed_1, 17)))), 31)))
                        break c;
                }
                $var35 = $par6 - $var19;
                $var37 = $par10 - $var21;
                $var39 = $par16 - $par15 | 0;
                if ($var35 * $var35 + $var37 * $var37 - $var39 * $var39 > $var41)
                    break b;
                $var37 = $var29 * 2.0;
                if ($par6 >= var$31 - $var37 && $par10 >= var$32 - $var37 && $par6 <= var$33 + $var37 && $par10 <= var$34 + $var37) {
                    $var39 = $par6 - $var29;
                    $var52 = $var39 | 0;
                    if ($var39 < $var52)
                        $var52 = $var52 - 1 | 0;
                    $var54 = ($var52 - var$14 | 0) - 1 | 0;
                    $var39 = $par6 + $var29;
                    var$23 = $var39 | 0;
                    if ($var39 < var$23)
                        var$23 = var$23 - 1 | 0;
                    $var36 = (var$23 - var$14 | 0) + 1 | 0;
                    $var39 = $par8 - $var31;
                    $var52 = $var39 | 0;
                    if ($var39 < $var52)
                        $var52 = $var52 - 1 | 0;
                    $var55 = $var52 - 1 | 0;
                    $var39 = $par8 + $var31;
                    $var52 = $var39 | 0;
                    if ($var39 < $var52)
                        $var52 = $var52 - 1 | 0;
                    $var38 = $var52 + 1 | 0;
                    $var39 = $par10 - $var29;
                    $var52 = $var39 | 0;
                    if ($var39 < $var52)
                        $var52 = $var52 - 1 | 0;
                    $var56 = ($var52 - var$16 | 0) - 1 | 0;
                    $var39 = $par10 + $var29;
                    $var52 = $var39 | 0;
                    if ($var39 < $var52)
                        $var52 = $var52 - 1 | 0;
                    $var40 = ($var52 - var$16 | 0) + 1 | 0;
                    if ($var54 < 0)
                        $var54 = 0;
                    if ($var36 > 16)
                        $var36 = 16;
                    if ($var55 < 1)
                        $var55 = 1;
                    if ($var38 > 120)
                        $var38 = 120;
                    if ($var56 < 0)
                        $var56 = 0;
                    if ($var40 > 16)
                        $var40 = 16;
                    $var57 = 0;
                    $var42 = $var54;
                    while (!$var57 && $var42 < $var36) {
                        $var43 = $var56;
                        while (!$var57 && $var43 < $var40) {
                            $var44 = $var38 + 1 | 0;
                            while (!$var57) {
                                $var45 = $rt_compare($var44, $var55 - 1 | 0);
                                if ($var45 < 0)
                                    break;
                                $var45_0 = ((($var42 * 16 | 0) + $var43 | 0) * 128 | 0) + $var44 | 0;
                                if ($var44 >= 0 && $var44 < 128) {
                                    var$36 = $par5ArrayOfByte.data;
                                    var$23 = var$36[$var45_0];
                                    nms_Block_$callClinit();
                                    if (!(var$23 != nms_Block_lavaMoving.$blockID && var$36[$var45_0] != nms_Block_lavaStill.$blockID))
                                        $var57 = 1;
                                    if ($var45 && $var42 != $var54 && $var42 != ($var36 - 1 | 0) && $var43 != $var56 && $var43 != ($var40 - 1 | 0))
                                        $var44 = $var55;
                                }
                                $var44 = $var44 + (-1) | 0;
                            }
                            $var43 = $var43 + 1 | 0;
                        }
                        $var42 = $var42 + 1 | 0;
                    }
                    if (!$var57) {
                        while ($var54 < $var36) {
                            $var58 = (($var54 + var$14 | 0) + 0.5 - $par6) / $var29;
                            $var37 = $var58 * $var58;
                            $var45 = $var56;
                            while ($var45 < $var40) {
                                $var46 = (($var45 + var$16 | 0) + 0.5 - $par10) / $var29;
                                $var48 = ((($var54 * 16 | 0) + $var45 | 0) * 128 | 0) + $var38 | 0;
                                $var49 = $var38 - 1 | 0;
                                $var35 = $var46 * $var46;
                                while ($var49 >= $var55) {
                                    $var50 = ($var49 + 0.5 - $par8) / $var31;
                                    if ($var50 > (-0.7) && $var37 + $var50 * $var50 + $var35 < 1.0) {
                                        var$36 = $par5ArrayOfByte.data;
                                        $var52 = var$36[$var48];
                                        nms_Block_$callClinit();
                                        if (!($var52 != nms_Block_netherrack.$blockID && $var52 != nms_Block_dirt.$blockID && $var52 != nms_Block_grass.$blockID))
                                            var$36[$var48] = 0;
                                    }
                                    $var48 = $var48 + (-1) | 0;
                                    $var49 = $var49 + (-1) | 0;
                                }
                                $var45 = $var45 + 1 | 0;
                            }
                            $var54 = $var54 + 1 | 0;
                        }
                        if ($var53)
                            break a;
                    }
                }
            }
            $par15 = $par15 + 1 | 0;
        }
        return;
    }
},
nms_MapGenCavesHell_recursiveGenerate = ($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte) => {
    let var$7, var$8, $var15, $var8, var$11, $var7, var$13, $var9, $var11, $var13, var$17, var$18, $var16, $var17, $var18, var$22, $var19;
    $par1World = $this.$rand1;
    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1World.$seed = var$7;
    var$8 = Long_lo(Long_shru(var$7, 17));
    while (true) {
        $var15 = var$8 % 10 | 0;
        if (((var$8 - $var15 | 0) + 9 | 0) >= 0)
            break;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        var$8 = Long_lo(Long_shru(var$7, 17));
    }
    $var8 = $var15 + 1 | 0;
    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1World.$seed = var$7;
    $var15 = Long_lo(Long_shru(var$7, 17));
    var$11 = $var8 - 1 | 0;
    if (!($var8 & var$11))
        var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var15)), 31));
    else
        while (true) {
            var$8 = $var15 % $var8 | 0;
            if ((($var15 - var$8 | 0) + var$11 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var15 = Long_lo(Long_shru(var$7, 17));
        }
    $var8 = var$8 + 1 | 0;
    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1World.$seed = var$7;
    $var15 = Long_lo(Long_shru(var$7, 17));
    var$11 = $var8 - 1 | 0;
    if (!($var8 & var$11))
        $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt($var8), Long_fromInt($var15)), 31));
    else
        while (true) {
            $var7 = $var15 % $var8 | 0;
            if ((($var15 - $var7 | 0) + var$11 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var15 = Long_lo(Long_shru(var$7, 17));
        }
    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1World.$seed = var$7;
    var$8 = Long_lo(Long_shru(var$7, 17));
    while (true) {
        $var15 = var$8 % 5 | 0;
        if (((var$8 - $var15 | 0) + 4 | 0) >= 0)
            break;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        var$8 = Long_lo(Long_shru(var$7, 17));
    }
    if ($var15)
        $var7 = 0;
    $var8 = 0;
    var$11 = $par2 * 16 | 0;
    var$8 = $par3 * 16 | 0;
    while ($var8 < $var7) {
        $par1World = $this.$rand1;
        var$13 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$13;
        $var9 = var$11 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$13, 17)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$13;
        $var11 = Long_lo(Long_shr(Long_mul(Long_fromInt(128), Long_fromInt(Long_lo(Long_shru(var$13, 17)))), 31));
        var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$13;
        $var13 = var$8 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$13, 17)))), 31)) | 0;
        $var15 = 1;
        var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$13;
        if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$13, 17)))), 31))) {
            var$17 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$17;
            var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$17, 16))), 32);
            var$18 = Long_and(Long_add(Long_mul(var$17, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$18;
            var$17 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$18, 16))));
            var$7 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            nms_MapGenCavesHell_generateCaveNode($this, var$17, $par4, $par5, $par6ArrayOfByte, $var9, $var11, $var13, 1.0 + Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 6.0, 0.0, 0.0, (-1), (-1), 0.5);
            $par1World = $this.$rand1;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var15 = $var15 + Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$7, 17)))), 31)) | 0;
        }
        $var16 = 0;
        while ($var16 < $var15) {
            $par1World = $this.$rand1;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var17 = Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
            var$13 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$13;
            $var18 = (Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 - 0.5) * 2.0 / 8.0;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$13;
            var$22 = Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 2.0;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$13;
            $var19 = var$22 + Long_lo(Long_shru(var$13, 24)) / 1.6777216E7;
            var$7 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            var$13 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$7, 16))), 32);
            var$7 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            nms_MapGenCavesHell_generateCaveNode($this, Long_add(var$13, Long_fromInt(Long_lo(Long_shru(var$7, 16)))), $par4, $par5, $par6ArrayOfByte, $var9, $var11, $var13, $var19 * 2.0, $var17, $var18, 0, 0, 0.5);
            $var16 = $var16 + 1 | 0;
        }
        $var8 = $var8 + 1 | 0;
    }
},
nms_NoiseGenerator = $rt_classWithoutFields();
function nms_NoiseGeneratorOctaves() {
    let a = this; nms_NoiseGenerator.call(a);
    a.$generatorCollection = null;
    a.$octaves = 0;
}
let nms_NoiseGeneratorOctaves_generateNoiseOctaves = ($this, $par1ArrayOfDouble, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $par10, $par12) => {
    let $var14, var$12, $var27, $var16, var$15, var$16, var$17, $var17, $var19, $var21, $var23, $var25, var$23, var$24;
    if ($par1ArrayOfDouble === null)
        $par1ArrayOfDouble = $rt_createDoubleArray($rt_imul($rt_imul($par5, $par6), $par7));
    else {
        $var14 = 0;
        while (true) {
            var$12 = $par1ArrayOfDouble.data;
            if ($var14 >= var$12.length)
                break;
            var$12[$var14] = 0.0;
            $var14 = $var14 + 1 | 0;
        }
    }
    $var27 = 1.0;
    $var16 = 0;
    var$15 = $par2;
    var$16 = $par3;
    var$17 = $par4;
    while ($var16 < $this.$octaves) {
        $var17 = var$15 * $var27 * $par8;
        $var19 = var$16 * $var27 * $par10;
        $var21 = var$17 * $var27 * $par12;
        $var23 = Long_fromNumber($var17);
        if ($var17 < Long_toNumber($var23))
            $var23 = Long_sub($var23, Long_fromInt(1));
        $var25 = Long_fromNumber($var21);
        if ($var21 < Long_toNumber($var25))
            $var25 = Long_sub($var25, Long_fromInt(1));
        var$23 = $var17 - Long_toNumber($var23);
        $var17 = $var21 - Long_toNumber($var25);
        var$24 = Long_rem($var23, Long_fromInt(16777216));
        $var23 = Long_rem($var25, Long_fromInt(16777216));
        var$23 = var$23 + Long_toNumber(var$24);
        $var17 = $var17 + Long_toNumber($var23);
        nms_NoiseGeneratorPerlin_populateNoiseArray($this.$generatorCollection.data[$var16], $par1ArrayOfDouble, var$23, $var19, $var17, $par5, $par6, $par7, $par8 * $var27, $par10 * $var27, $par12 * $var27, $var27);
        $var27 = $var27 / 2.0;
        $var16 = $var16 + 1 | 0;
    }
    return $par1ArrayOfDouble;
},
nms_MapGenCaves = $rt_classWithoutFields(nms_MapGenBase),
nms_MapGenCaves__init_ = $this => {
    let var$1, var$2;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
},
nms_MapGenCaves__init_0 = () => {
    let var_0 = new nms_MapGenCaves();
    nms_MapGenCaves__init_(var_0);
    return var_0;
},
nms_MapGenCaves_generateCaveNode = ($this, $var25$seed, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, $par13, $par14, $par15, $par16, $par17) => {
    let var$14, $var19, var$16, $var21, $var23, $var24, $var26, $var58, $var54, var$23, $var28, $var25$seed_0, var$26, $var27, $var25$seed_1, var$29, $var25$seed_2, $var41, var$32, var$33, var$34, var$35, var$36, var$37, $var29, $var31, var$40, $var33, $var34, $var25$seed_3, $var35, $var37, $var39, $var55, $var36, $var56, $var38, $var57, $var40, $var42, $var43, $var44, $var45, $var53, var$58, $var59, $var45_0, var$61, $var46, $var48, $var49, $var50, var$66, $var51, var$68, var$69, var$70, var$71, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$71 = $thread.pop();var$70 = $thread.pop();var$69 = $thread.pop();var$68 = $thread.pop();$var51 = $thread.pop();var$66 = $thread.pop();$var50 = $thread.pop();$var49 = $thread.pop();$var48 = $thread.pop();$var46 = $thread.pop();var$61 = $thread.pop();$var45_0 = $thread.pop();$var59 = $thread.pop();var$58 = $thread.pop();$var53 = $thread.pop();$var45 = $thread.pop();$var44 = $thread.pop();$var43 = $thread.pop();$var42 = $thread.pop();$var40 = $thread.pop();$var57 = $thread.pop();$var38
        = $thread.pop();$var56 = $thread.pop();$var36 = $thread.pop();$var55 = $thread.pop();$var39 = $thread.pop();$var37 = $thread.pop();$var35 = $thread.pop();$var25$seed_3 = $thread.pop();$var34 = $thread.pop();$var33 = $thread.pop();var$40 = $thread.pop();$var31 = $thread.pop();$var29 = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();$var41 = $thread.pop();$var25$seed_2 = $thread.pop();var$29 = $thread.pop();$var25$seed_1
        = $thread.pop();$var27 = $thread.pop();var$26 = $thread.pop();$var25$seed_0 = $thread.pop();$var28 = $thread.pop();var$23 = $thread.pop();$var54 = $thread.pop();$var58 = $thread.pop();$var26 = $thread.pop();$var24 = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();var$16 = $thread.pop();$var19 = $thread.pop();var$14 = $thread.pop();$par17 = $thread.pop();$par16 = $thread.pop();$par15 = $thread.pop();$par14 = $thread.pop();$par13 = $thread.pop();$par12 = $thread.pop();$par10 = $thread.pop();$par8
        = $thread.pop();$par6 = $thread.pop();$par5ArrayOfByte = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$var25$seed = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$14 = $par3 * 16 | 0;
        $var19 = var$14 + 8 | 0;
        var$16 = $par4 * 16 | 0;
        $var21 = var$16 + 8 | 0;
        $var23 = 0.0;
        $var24 = 0.0;
        if ($par16 <= 0) {
            $var26 = ($this.$range * 16 | 0) - 16 | 0;
            $var58 = $var26 / 4 | 0;
            $var25$seed = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var54 = Long_lo(Long_shru($var25$seed, 17));
            $par16 = $var58 - 1 | 0;
            if (!($var58 & $par16))
                var$23 = Long_lo(Long_shr(Long_mul(Long_fromInt($var58), Long_fromInt($var54)), 31));
            else
                while (true) {
                    var$23 = $var54 % $var58 | 0;
                    if ((($var54 - var$23 | 0) + $par16 | 0) >= 0)
                        break;
                    $var25$seed = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var54 = Long_lo(Long_shru($var25$seed, 17));
                }
            $par16 = $var26 - var$23 | 0;
        }
        $var54 = 0;
        if ($par15 == (-1)) {
            $par15 = $par16 / 2 | 0;
            $var54 = 1;
        }
        $var28 = $par16 / 2 | 0;
        $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$23 = 17;
        $var58 = Long_lo(Long_shru($var25$seed_0, var$23));
        var$26 = $var28 - 1 | 0;
        if (!($var28 & var$26))
            $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var28), Long_fromInt($var58)), 31));
        else
            while (true) {
                $var26 = $var58 % $var28 | 0;
                if ((($var58 - $var26 | 0) + var$26 | 0) >= 0)
                    break;
                $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var58 = Long_lo(Long_shru($var25$seed_0, var$23));
            }
        $var27 = $var26 + ($par16 / 4 | 0) | 0;
        $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$26 = Long_lo(Long_shru($var25$seed_1, var$23));
        while (true) {
            $var26 = var$26 % 6 | 0;
            if (((var$26 - $var26 | 0) + 5 | 0) >= 0)
                break;
            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$26 = Long_lo(Long_shru($var25$seed_1, var$23));
        }
        $var28 = $var26 ? 0 : 1;
        $var26 = 24;
        var$29 = $rt_compare($par12, 1.0);
        $var25$seed_2 = Long_fromInt(4);
        $var41 = $par12 + 2.0 + 16.0;
        $var41 = $var41 * $var41;
        var$32 = $var19 - 16.0;
        var$33 = $var21 - 16.0;
        var$34 = $var19 + 16.0;
        var$35 = $var21 + 16.0;
        a: {
            b: {
                c: while (true) {
                    if ($par15 >= $par16)
                        break b;
                    var$36 = $par15 * 3.1415927410125732 / $par16;
                    var$37 = nms_MathHelper_SIN_TABLE.data;
                    $var29 = 1.5 + var$37[(var$36 * 10430.3779296875 | 0) & 65535] * $par12 * 1.0;
                    $var31 = $var29 * $par17;
                    var$40 = $par14 * 10430.3779296875;
                    $var33 = var$37[(var$40 + 16384.0 | 0) & 65535];
                    $var34 = var$37[(var$40 | 0) & 65535];
                    var$40 = $par13 * 10430.3779296875;
                    $par6 = $par6 + var$37[(var$40 + 16384.0 | 0) & 65535] * $var33;
                    $par8 = $par8 + $var34;
                    $par10 = $par10 + var$37[(var$40 | 0) & 65535] * $var33;
                    $par14 = (!$var28 ? $par14 * 0.699999988079071 : $par14 * 0.9200000166893005) + $var24 * 0.10000000149011612;
                    $par13 = $par13 + $var23 * 0.10000000149011612;
                    $var34 = $var24 * 0.8999999761581421;
                    var$36 = $var23 * 0.75;
                    $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var24 = Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7;
                    $var25$seed = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$40 = $var24 - Long_lo(Long_shru($var25$seed, $var26)) / 1.6777216E7;
                    $var25$seed = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var24 = $var34 + var$40 * Long_lo(Long_shru($var25$seed, $var26)) / 1.6777216E7 * 2.0;
                    $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var34 = Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7;
                    $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var34 = $var34 - Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7;
                    $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var23 = var$36 + $var34 * Long_lo(Long_shru($var25$seed_1, $var26)) / 1.6777216E7 * 4.0;
                    if (!$var54 && $par15 == $var27 && var$29 > 0 && $par16 > 0) {
                        $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var54 = 16;
                        $var25$seed = Long_shl(Long_fromInt(Long_lo(Long_shru($var25$seed_0, $var54))), 32);
                        $var25$seed_2 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var25$seed_0 = Long_add($var25$seed, Long_fromInt(Long_lo(Long_shru($var25$seed_2, $var54))));
                        $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed_2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par12 = Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7 * 0.5 + 0.5;
                        var$40 = $par13 - 1.5707963705062866;
                        $par14 = $par14 / 3.0;
                        $par17 = 1.0;
                        $ptr = 1;
                        continue main;
                    }
                    d: {
                        if (!$var54) {
                            $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            if (!Long_lo(Long_shr(Long_mul($var25$seed_2, Long_fromInt(Long_lo(Long_shru($var25$seed_1, var$23)))), 31)))
                                break d;
                        }
                        $var35 = $par6 - $var19;
                        $var37 = $par10 - $var21;
                        $var39 = $par16 - $par15 | 0;
                        if ($var35 * $var35 + $var37 * $var37 - $var39 * $var39 > $var41)
                            break c;
                        $var37 = $var29 * 2.0;
                        if ($par6 >= var$32 - $var37 && $par10 >= var$33 - $var37 && $par6 <= var$34 + $var37 && $par10 <= var$35 + $var37) {
                            $var37 = $par6 - $var29;
                            $var58 = $var37 | 0;
                            if ($var37 < $var58)
                                $var58 = $var58 - 1 | 0;
                            $var55 = ($var58 - var$14 | 0) - 1 | 0;
                            $var37 = $par6 + $var29;
                            $var58 = $var37 | 0;
                            if ($var37 < $var58)
                                $var58 = $var58 - 1 | 0;
                            $var36 = ($var58 - var$14 | 0) + 1 | 0;
                            $var37 = $par8 - $var31;
                            $var58 = $var37 | 0;
                            if ($var37 < $var58)
                                $var58 = $var58 - 1 | 0;
                            $var56 = $var58 - 1 | 0;
                            $var37 = $par8 + $var31;
                            $var58 = $var37 | 0;
                            if ($var37 < $var58)
                                $var58 = $var58 - 1 | 0;
                            $var38 = $var58 + 1 | 0;
                            $var37 = $par10 - $var29;
                            $var58 = $var37 | 0;
                            if ($var37 < $var58)
                                $var58 = $var58 - 1 | 0;
                            $var57 = ($var58 - var$16 | 0) - 1 | 0;
                            $var37 = $par10 + $var29;
                            var$26 = $var37 | 0;
                            if ($var37 < var$26)
                                var$26 = var$26 - 1 | 0;
                            $var40 = (var$26 - var$16 | 0) + 1 | 0;
                            if ($var55 < 0)
                                $var55 = 0;
                            if ($var36 > 16)
                                $var36 = 16;
                            if ($var56 < 1)
                                $var56 = 1;
                            if ($var38 > 120)
                                $var38 = 120;
                            if ($var57 < 0)
                                $var57 = 0;
                            if ($var40 > 16)
                                $var40 = 16;
                            $var58 = 0;
                            $var42 = $var55;
                            while (!$var58 && $var42 < $var36) {
                                $var43 = $var57;
                                while (!$var58 && $var43 < $var40) {
                                    $var44 = $var38 + 1 | 0;
                                    while (!$var58) {
                                        var$26 = $rt_compare($var44, $var56 - 1 | 0);
                                        if (var$26 < 0)
                                            break;
                                        $var45 = ((($var42 * 16 | 0) + $var43 | 0) * 128 | 0) + $var44 | 0;
                                        if ($var44 >= 0 && $var44 < 128) {
                                            var$37 = $par5ArrayOfByte.data;
                                            $var53 = var$37[$var45];
                                            nms_Block_$callClinit();
                                            if (!($var53 != nms_Block_waterMoving.$blockID && var$37[$var45] != nms_Block_waterStill.$blockID))
                                                $var58 = 1;
                                            if (var$26 && $var42 != $var55 && $var42 != ($var36 - 1 | 0) && $var43 != $var57 && $var43 != ($var40 - 1 | 0))
                                                $var44 = $var56;
                                        }
                                        $var44 = $var44 + (-1) | 0;
                                    }
                                    $var43 = $var43 + 1 | 0;
                                }
                                $var42 = $var42 + 1 | 0;
                            }
                            if (!$var58) {
                                while ($var55 < $var36) {
                                    var$58 = $var55 + var$14 | 0;
                                    $var59 = (var$58 + 0.5 - $par6) / $var29;
                                    $var35 = $var59 * $var59;
                                    $var44 = var$58 >> 4;
                                    $var25$seed_3 = Long_and(Long_fromInt($var44), Long_create(4294967295, 0));
                                    $var42 = var$58 & 15;
                                    $var45_0 = $var57;
                                    while ($var45_0 < $var40) {
                                        e: {
                                            var$61 = $var45_0 + var$16 | 0;
                                            $var46 = (var$61 + 0.5 - $par10) / $var29;
                                            $var48 = ((($var55 * 16 | 0) + $var45_0 | 0) * 128 | 0) + $var38 | 0;
                                            $var49 = 0;
                                            $var37 = $var46 * $var46;
                                            if ($var35 + $var37 < 1.0) {
                                                $var50 = $var38 - 1 | 0;
                                                $var45 = var$61 >> 4;
                                                $var25$seed_0 = Long_or($var25$seed_3, Long_shl(Long_and(Long_fromInt($var45), Long_create(4294967295, 0)), 32));
                                                $var58 = Long_lo(Long_xor($var25$seed_0, Long_shru($var25$seed_0, 32)));
                                                $var58 = $var58 ^ ($var58 >>> 20 | 0) ^ ($var58 >>> 12 | 0);
                                                var$66 = $var58 ^ ($var58 >>> 7 | 0) ^ ($var58 >>> 4 | 0);
                                                $var43 = var$61 & 15;
                                                while (true) {
                                                    if ($var50 < $var56)
                                                        break e;
                                                    $var51 = ($var50 + 0.5 - $par8) / $var31;
                                                    if ($var51 > (-0.7) && $var35 + $var51 * $var51 + $var37 < 1.0) {
                                                        var$37 = $par5ArrayOfByte.data;
                                                        $var53 = var$37[$var48];
                                                        nms_Block_$callClinit();
                                                        var$26 = $rt_compare($var53, nms_Block_grass.$blockID);
                                                        if (!var$26)
                                                            $var49 = 1;
                                                        if (!($var53 != nms_Block_stone.$blockID && $var53 != nms_Block_dirt.$blockID && var$26)) {
                                                            if ($var50 < 10)
                                                                var$37[$var48] = nms_Block_lavaMoving.$blockID << 24 >> 24;
                                                            else {
                                                                var$37[$var48] = 0;
                                                                if ($var49) {
                                                                    var$26 = $var48 - 1 | 0;
                                                                    if (var$37[var$26] == nms_Block_dirt.$blockID) {
                                                                        var$68 = $this.$worldObj9;
                                                                        var$69 = var$68.$chunkProvider;
                                                                        var$70 = var$69.$loadedChunkHashMap.$hashArray.data;
                                                                        $var53 = var$66 & (var$70.length - 1 | 0);
                                                                        var$71 = var$70[$var53];
                                                                        f: {
                                                                            while (true) {
                                                                                if (var$71 === null) {
                                                                                    var$71 = null;
                                                                                    break f;
                                                                                }
                                                                                if (Long_eq(var$71.$key1, $var25$seed_0))
                                                                                    break;
                                                                                var$71 = var$71.$nextEntry;
                                                                            }
                                                                        }
                                                                        $var58 = var$71 === null ? 0 : 1;
                                                                        g: {
                                                                            if ($var58) {
                                                                                var$71 = var$70[$var53];
                                                                                h: {
                                                                                    while (var$71 !== null) {
                                                                                        if (Long_eq(var$71.$key1, $var25$seed_0)) {
                                                                                            var$71 = var$71.$value4;
                                                                                            break h;
                                                                                        }
                                                                                        var$71 = var$71.$nextEntry;
                                                                                    }
                                                                                    var$71 = null;
                                                                                }
                                                                                var$71 = var$71;
                                                                                if (var$71 === null) {
                                                                                    if (var$69.$worldObj0.$findingSpawnPoint)
                                                                                        break a;
                                                                                    if (var$69.$loadChunkOnProvideRequest)
                                                                                        break a;
                                                                                    var$71 = var$69.$defaultEmptyChunk;
                                                                                }
                                                                                if (var$71 !== null) {
                                                                                    var$68 = nms_Chunk_getBiomeGenForWorldCoords(var$71, $var42, $var43, var$68.$provider.$worldChunkMgr);
                                                                                    break g;
                                                                                }
                                                                            }
                                                                            var$68 = var$68.$provider.$worldChunkMgr.$getBiomeGenAt(var$58, var$61);
                                                                        }
                                                                        var$37[var$26] = var$68.$topBlock;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    $var48 = $var48 + (-1) | 0;
                                                    $var50 = $var50 + (-1) | 0;
                                                }
                                            }
                                        }
                                        $var45_0 = $var45_0 + 1 | 0;
                                    }
                                    $var55 = $var55 + 1 | 0;
                                }
                                if ($var54)
                                    break b;
                            }
                        }
                    }
                    $par15 = $par15 + 1 | 0;
                }
                return;
            }
            return;
        }
        $ptr = 3;
        continue main;
    case 1:
        nms_MapGenCaves_generateCaveNode($this, $var25$seed_0, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, var$40, $par14, $par15, $par16, $par17);
        if ($rt_suspending()) {
            break main;
        }
        $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var25$seed = Long_shl(Long_fromInt(Long_lo(Long_shru($var25$seed_0, $var54))), 32);
        $var25$seed_2 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var25$seed_0 = Long_add($var25$seed, Long_fromInt(Long_lo(Long_shru($var25$seed_2, $var54))));
        $par12 = Long_lo(Long_shru(Long_and(Long_add(Long_mul($var25$seed_2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535)), $var26)) / 1.6777216E7 * 0.5 + 0.5;
        $par13 = $par13 + 1.5707963705062866;
        $par17 = 1.0;
        $ptr = 2;
    case 2:
        nms_MapGenCaves_generateCaveNode($this, $var25$seed_0, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, $par13, $par14, $par15, $par16, $par17);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $tmp = nms_ChunkProviderServer_loadChunk(var$69, $var44, $var45);
        if ($rt_suspending()) {
            break main;
        }
        var$71 = $tmp;
        i: {
            j: {
                k: while (true) {
                    if (var$71 === null) {
                        var$68 = var$68.$provider;
                        var$68 = var$68.$worldChunkMgr;
                        var$68 = var$68.$getBiomeGenAt(var$58, var$61);
                    } else
                        var$68 = nms_Chunk_getBiomeGenForWorldCoords(var$71, $var42, $var43, var$68.$provider.$worldChunkMgr);
                    while (true) {
                        var$37[var$26] = var$68.$topBlock;
                        while (true) {
                            $var48 = $var48 + (-1) | 0;
                            $var50 = $var50 + (-1) | 0;
                            while ($var50 < $var56) {
                                while (true) {
                                    $var45_0 = $var45_0 + 1 | 0;
                                    while ($var45_0 >= $var40) {
                                        $var55 = $var55 + 1 | 0;
                                        while ($var55 >= $var36) {
                                            if ($var54)
                                                break j;
                                            while (true) {
                                                $par15 = $par15 + 1 | 0;
                                                if ($par15 >= $par16)
                                                    break j;
                                                var$36 = $par15 * 3.1415927410125732 / $par16;
                                                var$37 = nms_MathHelper_SIN_TABLE.data;
                                                $var29 = 1.5 + var$37[(var$36 * 10430.3779296875 | 0) & 65535] * $par12 * 1.0;
                                                $var31 = $var29 * $par17;
                                                var$40 = $par14 * 10430.3779296875;
                                                $var33 = var$37[(var$40 + 16384.0 | 0) & 65535];
                                                $var34 = var$37[(var$40 | 0) & 65535];
                                                var$40 = $par13 * 10430.3779296875;
                                                $par6 = $par6 + var$37[(var$40 + 16384.0 | 0) & 65535] * $var33;
                                                $par8 = $par8 + $var34;
                                                $par10 = $par10 + var$37[(var$40 | 0) & 65535] * $var33;
                                                $par14 = (!$var28 ? $par14 * 0.699999988079071 : $par14 * 0.9200000166893005) + $var24 * 0.10000000149011612;
                                                $par13 = $par13 + $var23 * 0.10000000149011612;
                                                $var34 = $var24 * 0.8999999761581421;
                                                var$36 = $var23 * 0.75;
                                                $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var24 = Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7;
                                                $var25$seed = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                var$40 = $var24 - Long_lo(Long_shru($var25$seed, $var26)) / 1.6777216E7;
                                                $var25$seed = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var24 = $var34 + var$40 * Long_lo(Long_shru($var25$seed, $var26)) / 1.6777216E7 * 2.0;
                                                $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var34 = Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7;
                                                $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var34 = $var34 - Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7;
                                                $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var23 = var$36 + $var34 * Long_lo(Long_shru($var25$seed_1, $var26)) / 1.6777216E7 * 4.0;
                                                if (!$var54 && $par15 == $var27 && var$29 > 0 && $par16 > 0) {
                                                    $var25$seed_0 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    $var54 = 16;
                                                    $var25$seed = Long_shl(Long_fromInt(Long_lo(Long_shru($var25$seed_0, $var54))), 32);
                                                    $var25$seed_2 = Long_and(Long_add(Long_mul($var25$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    $var25$seed_0 = Long_add($var25$seed, Long_fromInt(Long_lo(Long_shru($var25$seed_2, $var54))));
                                                    $var25$seed_3 = Long_and(Long_add(Long_mul($var25$seed_2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    $par12 = Long_lo(Long_shru($var25$seed_3, $var26)) / 1.6777216E7 * 0.5 + 0.5;
                                                    var$40 = $par13 - 1.5707963705062866;
                                                    $par14 = $par14 / 3.0;
                                                    $par17 = 1.0;
                                                    $ptr = 1;
                                                    continue main;
                                                }
                                                if (!$var54) {
                                                    $var25$seed_1 = Long_and(Long_add(Long_mul($var25$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    if (!Long_lo(Long_shr(Long_mul($var25$seed_2, Long_fromInt(Long_lo(Long_shru($var25$seed_1, var$23)))), 31)))
                                                        continue;
                                                }
                                                $var35 = $par6 - $var19;
                                                $var37 = $par10 - $var21;
                                                $var39 = $par16 - $par15 | 0;
                                                if ($var35 * $var35 + $var37 * $var37 - $var39 * $var39 > $var41)
                                                    break k;
                                                $var37 = $var29 * 2.0;
                                                if ($par6 < var$32 - $var37)
                                                    continue;
                                                if ($par10 < var$33 - $var37)
                                                    continue;
                                                if ($par6 > var$34 + $var37)
                                                    continue;
                                                if ($par10 > var$35 + $var37)
                                                    continue;
                                                $var37 = $par6 - $var29;
                                                $var58 = $var37 | 0;
                                                if ($var37 < $var58)
                                                    $var58 = $var58 - 1 | 0;
                                                $var55 = ($var58 - var$14 | 0) - 1 | 0;
                                                $var37 = $par6 + $var29;
                                                $var58 = $var37 | 0;
                                                if ($var37 < $var58)
                                                    $var58 = $var58 - 1 | 0;
                                                $var36 = ($var58 - var$14 | 0) + 1 | 0;
                                                $var37 = $par8 - $var31;
                                                $var58 = $var37 | 0;
                                                if ($var37 < $var58)
                                                    $var58 = $var58 - 1 | 0;
                                                $var56 = $var58 - 1 | 0;
                                                $var37 = $par8 + $var31;
                                                $var58 = $var37 | 0;
                                                if ($var37 < $var58)
                                                    $var58 = $var58 - 1 | 0;
                                                $var38 = $var58 + 1 | 0;
                                                $var37 = $par10 - $var29;
                                                $var58 = $var37 | 0;
                                                if ($var37 < $var58)
                                                    $var58 = $var58 - 1 | 0;
                                                $var57 = ($var58 - var$16 | 0) - 1 | 0;
                                                $var37 = $par10 + $var29;
                                                var$26 = $var37 | 0;
                                                if ($var37 < var$26)
                                                    var$26 = var$26 - 1 | 0;
                                                $var40 = (var$26 - var$16 | 0) + 1 | 0;
                                                if ($var55 < 0)
                                                    $var55 = 0;
                                                if ($var36 > 16)
                                                    $var36 = 16;
                                                if ($var56 < 1)
                                                    $var56 = 1;
                                                if ($var38 > 120)
                                                    $var38 = 120;
                                                if ($var57 < 0)
                                                    $var57 = 0;
                                                if ($var40 > 16)
                                                    $var40 = 16;
                                                $var58 = 0;
                                                $var42 = $var55;
                                                while (!$var58 && $var42 < $var36) {
                                                    $var43 = $var57;
                                                    while (!$var58 && $var43 < $var40) {
                                                        $var44 = $var38 + 1 | 0;
                                                        while (!$var58) {
                                                            var$26 = $rt_compare($var44, $var56 - 1 | 0);
                                                            if (var$26 < 0)
                                                                break;
                                                            $var45 = ((($var42 * 16 | 0) + $var43 | 0) * 128 | 0) + $var44 | 0;
                                                            if ($var44 >= 0 && $var44 < 128) {
                                                                var$37 = $par5ArrayOfByte.data;
                                                                $var53 = var$37[$var45];
                                                                nms_Block_$callClinit();
                                                                if (!($var53 != nms_Block_waterMoving.$blockID && var$37[$var45] != nms_Block_waterStill.$blockID))
                                                                    $var58 = 1;
                                                                if (var$26 && $var42 != $var55 && $var42 != ($var36 - 1 | 0) && $var43 != $var57 && $var43 != ($var40 - 1 | 0))
                                                                    $var44 = $var56;
                                                            }
                                                            $var44 = $var44 + (-1) | 0;
                                                        }
                                                        $var43 = $var43 + 1 | 0;
                                                    }
                                                    $var42 = $var42 + 1 | 0;
                                                }
                                                if (!$var58)
                                                    break;
                                            }
                                        }
                                        var$58 = $var55 + var$14 | 0;
                                        $var59 = (var$58 + 0.5 - $par6) / $var29;
                                        $var35 = $var59 * $var59;
                                        $var44 = var$58 >> 4;
                                        $var25$seed_3 = Long_and(Long_fromInt($var44), Long_create(4294967295, 0));
                                        $var42 = var$58 & 15;
                                        $var45_0 = $var57;
                                    }
                                    var$61 = $var45_0 + var$16 | 0;
                                    $var46 = (var$61 + 0.5 - $par10) / $var29;
                                    $var48 = ((($var55 * 16 | 0) + $var45_0 | 0) * 128 | 0) + $var38 | 0;
                                    $var49 = 0;
                                    $var37 = $var46 * $var46;
                                    if ($var35 + $var37 >= 1.0)
                                        continue;
                                    else
                                        break;
                                }
                                $var50 = $var38 - 1 | 0;
                                $var45 = var$61 >> 4;
                                $var25$seed_0 = Long_or($var25$seed_3, Long_shl(Long_and(Long_fromInt($var45), Long_create(4294967295, 0)), 32));
                                $var58 = Long_lo(Long_xor($var25$seed_0, Long_shru($var25$seed_0, 32)));
                                $var58 = $var58 ^ ($var58 >>> 20 | 0) ^ ($var58 >>> 12 | 0);
                                var$66 = $var58 ^ ($var58 >>> 7 | 0) ^ ($var58 >>> 4 | 0);
                                $var43 = var$61 & 15;
                            }
                            $var51 = ($var50 + 0.5 - $par8) / $var31;
                            if ($var51 <= (-0.7))
                                continue;
                            if ($var35 + $var51 * $var51 + $var37 >= 1.0)
                                continue;
                            var$37 = $par5ArrayOfByte.data;
                            $var53 = var$37[$var48];
                            nms_Block_$callClinit();
                            var$26 = $rt_compare($var53, nms_Block_grass.$blockID);
                            if (!var$26)
                                $var49 = 1;
                            if ($var53 != nms_Block_stone.$blockID && $var53 != nms_Block_dirt.$blockID && var$26)
                                continue;
                            if ($var50 < 10) {
                                var$37[$var48] = nms_Block_lavaMoving.$blockID << 24 >> 24;
                                continue;
                            }
                            var$37[$var48] = 0;
                            if (!$var49)
                                continue;
                            var$26 = $var48 - 1 | 0;
                            if (var$37[var$26] == nms_Block_dirt.$blockID)
                                break;
                        }
                        var$68 = $this.$worldObj9;
                        var$69 = var$68.$chunkProvider;
                        var$70 = var$69.$loadedChunkHashMap.$hashArray.data;
                        $var53 = var$66 & (var$70.length - 1 | 0);
                        var$71 = var$70[$var53];
                        l: {
                            while (true) {
                                if (var$71 === null) {
                                    var$71 = null;
                                    break l;
                                }
                                if (Long_eq(var$71.$key1, $var25$seed_0))
                                    break;
                                var$71 = var$71.$nextEntry;
                            }
                        }
                        if (var$71 === null ? 0 : 1)
                            break;
                        var$68 = var$68.$provider;
                        var$68 = var$68.$worldChunkMgr;
                        var$68 = var$68.$getBiomeGenAt(var$58, var$61);
                    }
                    var$71 = var$70[$var53];
                    m: {
                        while (var$71 !== null) {
                            if (Long_eq(var$71.$key1, $var25$seed_0)) {
                                var$71 = var$71.$value4;
                                break m;
                            }
                            var$71 = var$71.$nextEntry;
                        }
                        var$71 = null;
                    }
                    var$71 = var$71;
                    if (var$71 !== null)
                        continue;
                    if (var$69.$worldObj0.$findingSpawnPoint)
                        break i;
                    if (var$69.$loadChunkOnProvideRequest)
                        break i;
                    var$71 = var$69.$defaultEmptyChunk;
                }
                return;
            }
            return;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var25$seed, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, $par13, $par14, $par15, $par16, $par17, var$14, $var19, var$16, $var21, $var23, $var24, $var26, $var58, $var54, var$23, $var28, $var25$seed_0, var$26, $var27, $var25$seed_1, var$29, $var25$seed_2, $var41, var$32, var$33, var$34, var$35, var$36, var$37, $var29, $var31, var$40, $var33, $var34, $var25$seed_3, $var35, $var37, $var39, $var55, $var36, $var56, $var38, $var57, $var40, $var42, $var43, $var44,
    $var45, $var53, var$58, $var59, $var45_0, var$61, $var46, $var48, $var49, $var50, var$66, $var51, var$68, var$69, var$70, var$71, $ptr);
},
nms_MapGenCaves_recursiveGenerate = ($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte) => {
    let var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var8, var$15, var$16, var$17, var$18, var$19, $var9, $var15, $var11, $var13, var$24, var$25, var$26, var$27, $var17, var$29, $var16, $var18, $var19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();var$29 = $thread.pop();$var17 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var15 = $thread.pop();$var9 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11
        = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par6ArrayOfByte = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1World = $this.$rand1;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        var$8 = 17;
        var$9 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            var$10 = var$9 % 40 | 0;
            if (((var$9 - var$10 | 0) + 39 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            var$9 = Long_lo(Long_shru(var$7, var$8));
        }
        var$11 = var$10 + 1 | 0;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        var$10 = Long_lo(Long_shru(var$7, var$8));
        var$12 = var$11 - 1 | 0;
        if (!(var$11 & var$12))
            var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$11), Long_fromInt(var$10)), 31));
        else
            while (true) {
                var$9 = var$10 % var$11 | 0;
                if (((var$10 - var$9 | 0) + var$12 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$10 = Long_lo(Long_shru(var$7, var$8));
            }
        var$9 = var$9 + 1 | 0;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        var$12 = Long_lo(Long_shru(var$7, var$8));
        var$11 = var$9 - 1 | 0;
        if (!(var$9 & var$11))
            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$12)), 31));
        else
            while (true) {
                $var7 = var$12 % var$9 | 0;
                if (((var$12 - $var7 | 0) + var$11 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$12 = Long_lo(Long_shru(var$7, var$8));
            }
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        var$12 = Long_lo(Long_shru(var$7, var$8));
        while (true) {
            var$9 = var$12 % 15 | 0;
            if (((var$12 - var$9 | 0) + 14 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            var$12 = Long_lo(Long_shru(var$7, var$8));
        }
        if (var$9)
            $var7 = 0;
        $var8 = 0;
        var$15 = $par2 * 16 | 0;
        var$16 = 119;
        var$11 = $par3 * 16 | 0;
        var$10 = 16;
        $par2 = 24;
        var$17 = Long_fromInt(4);
        var$18 = Long_fromInt(16);
        while ($var8 < $var7) {
            $par1World = $this.$rand1;
            var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            $var9 = var$15 + Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31)) | 0;
            var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $par3 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$12 = $par3 % 120 | 0;
                if ((($par3 - var$12 | 0) + var$16 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                $par3 = Long_lo(Long_shru(var$7, var$8));
            }
            $var15 = var$12 + 8 | 0;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            var$9 = Long_lo(Long_shru(var$7, var$8));
            $par3 = $var15 - 1 | 0;
            if (!($var15 & $par3))
                var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt(var$9)), 31));
            else
                while (true) {
                    var$12 = var$9 % $var15 | 0;
                    if (((var$9 - var$12 | 0) + $par3 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    var$9 = Long_lo(Long_shru(var$7, var$8));
                }
            $var11 = var$12;
            var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            $var13 = var$11 + Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31)) | 0;
            $var15 = 1;
            var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            if (!Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31))) {
                var$24 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$24;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$24, var$10))), 32);
                var$25 = Long_and(Long_add(Long_mul(var$24, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$25;
                var$24 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$25, var$10))));
                var$7 = Long_and(Long_add(Long_mul(var$25, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$26 = 1.0 + Long_lo(Long_shru(var$7, $par2)) / 1.6777216E7 * 6.0;
                var$27 = 0.0;
                $var17 = 0.0;
                $par3 = (-1);
                var$12 = (-1);
                var$29 = 0.5;
                $ptr = 1;
                continue main;
            }
            $var16 = 0;
            if ($var16 < $var15) {
                $par1World = $this.$rand1;
                var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var17 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var18 = (Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 - 0.5) * 2.0 / 8.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var19 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 * 2.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var19 = $var19 + Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7;
                var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$12 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$9 = var$12 % 10 | 0;
                    if (((var$12 - var$9 | 0) + 9 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    var$12 = Long_lo(Long_shru(var$7, var$8));
                }
                if (!var$9) {
                    var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$19;
                    var$27 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7;
                    var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    $var19 = $var19 * (var$27 * Long_lo(Long_shru(var$7, $par2)) / 1.6777216E7 * 3.0 + 1.0);
                }
                var$24 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$24;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$24, var$10))), 32);
                var$19 = Long_and(Long_add(Long_mul(var$24, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                var$7 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$19, var$10))));
                $par3 = 0;
                var$12 = 0;
                var$29 = 1.0;
                $ptr = 2;
                continue main;
            }
            $var8 = $var8 + 1 | 0;
        }
        return;
    case 1:
        nms_MapGenCaves_generateCaveNode($this, var$24, $par4, $par5, $par6ArrayOfByte, $var9, $var11, $var13, var$26, var$27, $var17, $par3, var$12, var$29);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $this.$rand1;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        $var15 = $var15 + Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru(var$7, var$8)))), 31)) | 0;
        while (true) {
            $var16 = 0;
            if ($var16 < $var15) {
                $par1World = $this.$rand1;
                var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var17 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var18 = (Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 - 0.5) * 2.0 / 8.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var19 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 * 2.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var19 = $var19 + Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7;
                var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$12 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$9 = var$12 % 10 | 0;
                    if (((var$12 - var$9 | 0) + 9 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    var$12 = Long_lo(Long_shru(var$7, var$8));
                }
                if (!var$9) {
                    var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$19;
                    var$27 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7;
                    var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    $var19 = $var19 * (var$27 * Long_lo(Long_shru(var$7, $par2)) / 1.6777216E7 * 3.0 + 1.0);
                }
                var$24 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$24;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$24, var$10))), 32);
                var$19 = Long_and(Long_add(Long_mul(var$24, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                var$7 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$19, var$10))));
                $par3 = 0;
                var$12 = 0;
                var$29 = 1.0;
                $ptr = 2;
                continue main;
            }
            $var8 = $var8 + 1 | 0;
            if ($var8 >= $var7)
                break;
            $par1World = $this.$rand1;
            var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            $var9 = var$15 + Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31)) | 0;
            var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $par3 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$12 = $par3 % 120 | 0;
                if ((($par3 - var$12 | 0) + var$16 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                $par3 = Long_lo(Long_shru(var$7, var$8));
            }
            $var15 = var$12 + 8 | 0;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            var$9 = Long_lo(Long_shru(var$7, var$8));
            $par3 = $var15 - 1 | 0;
            if (!($var15 & $par3))
                var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt(var$9)), 31));
            else
                while (true) {
                    var$12 = var$9 % $var15 | 0;
                    if (((var$9 - var$12 | 0) + $par3 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    var$9 = Long_lo(Long_shru(var$7, var$8));
                }
            $var11 = var$12;
            var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            $var13 = var$11 + Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31)) | 0;
            $var15 = 1;
            var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            if (!Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31))) {
                var$24 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$24;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$24, var$10))), 32);
                var$25 = Long_and(Long_add(Long_mul(var$24, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$25;
                var$24 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$25, var$10))));
                var$7 = Long_and(Long_add(Long_mul(var$25, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$26 = 1.0 + Long_lo(Long_shru(var$7, $par2)) / 1.6777216E7 * 6.0;
                var$27 = 0.0;
                $var17 = 0.0;
                $par3 = (-1);
                var$12 = (-1);
                var$29 = 0.5;
                continue main;
            }
        }
        return;
    case 2:
        nms_MapGenCaves_generateCaveNode($this, var$7, $par4, $par5, $par6ArrayOfByte, $var9, $var11, $var13, $var19, $var17, $var18, $par3, var$12, var$29);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $var16 + 1 | 0;
        while (true) {
            if ($var16 < $var15) {
                $par1World = $this.$rand1;
                var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var17 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var18 = (Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 - 0.5) * 2.0 / 8.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var19 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7 * 2.0;
                var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                $var19 = $var19 + Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7;
                var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$12 = Long_lo(Long_shru(var$7, var$8));
                while (true) {
                    var$9 = var$12 % 10 | 0;
                    if (((var$12 - var$9 | 0) + 9 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    var$12 = Long_lo(Long_shru(var$7, var$8));
                }
                if (!var$9) {
                    var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$19;
                    var$27 = Long_lo(Long_shru(var$19, $par2)) / 1.6777216E7;
                    var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    $var19 = $var19 * (var$27 * Long_lo(Long_shru(var$7, $par2)) / 1.6777216E7 * 3.0 + 1.0);
                }
                var$24 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$24;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$24, var$10))), 32);
                var$19 = Long_and(Long_add(Long_mul(var$24, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$19;
                var$7 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$19, var$10))));
                $par3 = 0;
                var$12 = 0;
                var$29 = 1.0;
                continue main;
            }
            $var8 = $var8 + 1 | 0;
            if ($var8 >= $var7)
                break;
            $par1World = $this.$rand1;
            var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            $var9 = var$15 + Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31)) | 0;
            var$7 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $par3 = Long_lo(Long_shru(var$7, var$8));
            while (true) {
                var$12 = $par3 % 120 | 0;
                if ((($par3 - var$12 | 0) + var$16 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                $par3 = Long_lo(Long_shru(var$7, var$8));
            }
            $var15 = var$12 + 8 | 0;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            var$9 = Long_lo(Long_shru(var$7, var$8));
            $par3 = $var15 - 1 | 0;
            if (!($var15 & $par3))
                var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15), Long_fromInt(var$9)), 31));
            else
                while (true) {
                    var$12 = var$9 % $var15 | 0;
                    if (((var$9 - var$12 | 0) + $par3 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    var$9 = Long_lo(Long_shru(var$7, var$8));
                }
            $var11 = var$12;
            var$19 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            $var13 = var$11 + Long_lo(Long_shr(Long_mul(var$18, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31)) | 0;
            $var15 = 1;
            var$19 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$19;
            if (!Long_lo(Long_shr(Long_mul(var$17, Long_fromInt(Long_lo(Long_shru(var$19, var$8)))), 31))) {
                var$24 = Long_and(Long_add(Long_mul(var$19, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$24;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$24, var$10))), 32);
                var$25 = Long_and(Long_add(Long_mul(var$24, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$25;
                var$24 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$25, var$10))));
                var$7 = Long_and(Long_add(Long_mul(var$25, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                var$26 = 1.0 + Long_lo(Long_shru(var$7, $par2)) / 1.6777216E7 * 6.0;
                var$27 = 0.0;
                $var17 = 0.0;
                $par3 = (-1);
                var$12 = (-1);
                var$29 = 0.5;
                $ptr = 1;
                continue main;
            }
            $var16 = 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $var8, var$15, var$16, var$17, var$18, var$19, $var9, $var15, $var11, $var13, var$24, var$25, var$26, var$27, $var17, var$29, $var16, $var18, $var19, $ptr);
};
function nms_MapGenStronghold() {
    let a = this; nms_MapGenStructure.call(a);
    a.$allowedBiomeGenBases = null;
    a.$ranBiomeCheck = 0;
    a.$structureCoords = null;
    a.$field_82671_h = 0.0;
    a.$field_82672_i = 0;
}
let nms_MapGenStronghold__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
    var$1 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    $this.$structureMap = var$1;
    var$5 = $rt_createArray(nms_BiomeGenBase, 12);
    var$4 = var$5.data;
    nms_BiomeGenBase_$callClinit();
    var$4[0] = nms_BiomeGenBase_desert;
    var$4[1] = nms_BiomeGenBase_forest;
    var$4[2] = nms_BiomeGenBase_extremeHills;
    var$4[3] = nms_BiomeGenBase_swampland;
    var$4[4] = nms_BiomeGenBase_taiga;
    var$4[5] = nms_BiomeGenBase_icePlains;
    var$4[6] = nms_BiomeGenBase_iceMountains;
    var$4[7] = nms_BiomeGenBase_desertHills;
    var$4[8] = nms_BiomeGenBase_forestHills;
    var$4[9] = nms_BiomeGenBase_extremeHillsEdge;
    var$4[10] = nms_BiomeGenBase_jungle;
    var$4[11] = nms_BiomeGenBase_jungleHills;
    $this.$allowedBiomeGenBases = var$5;
    $this.$structureCoords = $rt_createArray(nms_ChunkCoordIntPair, 3);
    $this.$field_82671_h = 32.0;
    $this.$field_82672_i = 3;
},
nms_MapGenStronghold__init_1 = () => {
    let var_0 = new nms_MapGenStronghold();
    nms_MapGenStronghold__init_0(var_0);
    return var_0;
},
nms_MapGenStronghold__init_ = ($this, $par1Map) => {
    let var$2, var$3, var$4, var$5, var$6, $var2, var$8, var$9, var$10, var$11, var$12, var$13, $$je;
    $this.$range = 8;
    var$2 = new nle_EaglercraftRandom;
    var$3 = Long_fromNumber(performance.now() * 1000000.0);
    var$2.$seed = Long_fromInt(69);
    var$2.$haveNextNextGaussian = 0;
    var$2.$seed = var$3;
    $this.$rand1 = var$2;
    var$2 = new ju_HashMap;
    var$4 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
    var$6 = var$5.data;
    var$2.$elementData = var$5;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$6.length * 0.75 | 0;
    $this.$structureMap = var$2;
    var$6 = $rt_createArray(nms_BiomeGenBase, 12);
    var$5 = var$6.data;
    nms_BiomeGenBase_$callClinit();
    var$5[0] = nms_BiomeGenBase_desert;
    var$5[1] = nms_BiomeGenBase_forest;
    var$5[2] = nms_BiomeGenBase_extremeHills;
    var$5[3] = nms_BiomeGenBase_swampland;
    var$5[4] = nms_BiomeGenBase_taiga;
    var$5[5] = nms_BiomeGenBase_icePlains;
    var$5[6] = nms_BiomeGenBase_iceMountains;
    var$5[7] = nms_BiomeGenBase_desertHills;
    var$5[8] = nms_BiomeGenBase_forestHills;
    var$5[9] = nms_BiomeGenBase_extremeHillsEdge;
    var$5[10] = nms_BiomeGenBase_jungle;
    var$5[11] = nms_BiomeGenBase_jungleHills;
    $this.$allowedBiomeGenBases = var$6;
    $this.$structureCoords = $rt_createArray(nms_ChunkCoordIntPair, 3);
    $this.$field_82671_h = 32.0;
    $this.$field_82672_i = 3;
    $var2 = new ju_HashMap$EntryIterator;
    $var2.$associatedMap = $par1Map;
    $var2.$expectedModCount = $par1Map.$modCount1;
    $var2.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext($var2)) {
        ju_HashMap$AbstractMapIterator_makeNext($var2);
        var$8 = $var2.$currentEntry0;
        $par1Map = var$8.$key;
        if ($par1Map === $rt_s(2385))
            var$4 = 1;
        else if (!($rt_s(2385) instanceof jl_String))
            var$4 = 0;
        else {
            var$2 = $rt_s(2385);
            var$4 = $par1Map.$nativeString !== var$2.$nativeString ? 0 : 1;
        }
        if (var$4) {
            $par1Map = var$8.$value0;
            var$9 = $this.$field_82671_h;
            var$10 = 1.0;
            a: {
                try {
                    var$11 = jl_Double_parseDouble($par1Map);
                    var$9 = var$11;
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
                var$11 = var$9;
            }
            if (var$11 >= var$10)
                var$10 = var$11;
            $this.$field_82671_h = var$10;
        } else {
            $par1Map = var$8.$key;
            if ($par1Map === $rt_s(2386))
                var$4 = 1;
            else if (!($rt_s(2386) instanceof jl_String))
                var$4 = 0;
            else {
                var$2 = $rt_s(2386);
                var$4 = $par1Map.$nativeString !== var$2.$nativeString ? 0 : 1;
            }
            if (var$4) {
                $par1Map = var$8.$value0;
                var$4 = $this.$structureCoords.data.length;
                var$12 = 1;
                b: {
                    try {
                        var$13 = jl_Integer_parseInt($par1Map);
                        var$4 = var$13;
                        break b;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                        } else {
                            throw $$e;
                        }
                    }
                    var$13 = var$4;
                }
                if (var$13 >= var$12)
                    var$12 = var$13;
                $this.$structureCoords = $rt_createArray(nms_ChunkCoordIntPair, var$12);
            } else {
                $par1Map = var$8.$key;
                if ($par1Map === $rt_s(2387))
                    var$4 = 1;
                else if (!($rt_s(2387) instanceof jl_String))
                    var$4 = 0;
                else {
                    var$2 = $rt_s(2387);
                    var$4 = $par1Map.$nativeString !== var$2.$nativeString ? 0 : 1;
                }
                if (var$4) {
                    $par1Map = var$8.$value0;
                    var$4 = $this.$field_82672_i;
                    var$13 = 1;
                    c: {
                        try {
                            var$12 = jl_Integer_parseInt($par1Map);
                            var$4 = var$12;
                            break c;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Throwable) {
                            } else {
                                throw $$e;
                            }
                        }
                        var$12 = var$4;
                    }
                    if (var$12 >= var$13)
                        var$13 = var$12;
                    $this.$field_82672_i = var$13;
                }
            }
        }
    }
},
nms_MapGenStronghold__init_2 = var_0 => {
    let var_1 = new nms_MapGenStronghold();
    nms_MapGenStronghold__init_(var_1, var_0);
    return var_1;
},
nms_MapGenStronghold_func_143025_a = $this => {
    return $rt_s(1337);
},
nms_MapGenStronghold_canSpawnStructureAtCoords = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, var$6, $var4, $var6, $var7, var$10, $var8, var$12, var$13, $var10, $var11, $var12, $var14, $var13, var$19, var$20, $var5, var$22, $var16, $var15;
    a: {
        if (!$this.$ranBiomeCheck) {
            $var3 = new nle_EaglercraftRandom;
            var$4 = Long_fromNumber(performance.now() * 1000000.0);
            $var3.$seed = Long_fromInt(69);
            $var3.$haveNextNextGaussian = 0;
            $var3.$seed = var$4;
            var$4 = $this.$worldObj9.$worldInfo.$getSeed();
            $var3.$seed = var$4;
            var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$4;
            var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
            var$6 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$6;
            $var4 = Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$6, 21))))) * 1.1102230246251565E-16 * 3.141592653589793 * 2.0;
            $var6 = 1;
            $var7 = 0;
            b: while (true) {
                if ($var7 >= $this.$structureCoords.data.length) {
                    $this.$ranBiomeCheck = 1;
                    break a;
                }
                var$10 = $var6;
                $var8 = 1.25 * var$10;
                var$12 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$12;
                var$4 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$12, 22))), 27);
                var$5 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$5;
                $var8 = ($var8 + Long_toNumber(Long_add(var$4, Long_fromInt(Long_lo(Long_shru(var$5, 21))))) * 1.1102230246251565E-16) * $this.$field_82671_h * var$10;
                var$13 = jl_Math_cos($var4) * $var8;
                $var10 = Long_lo(Long_fromNumber(var$13 + jl_Math_sign(var$13) * 0.5));
                $var8 = jl_Math_sin($var4) * $var8;
                $var11 = Long_lo(Long_fromNumber($var8 + jl_Math_sign($var8) * 0.5));
                $var12 = new ju_ArrayList;
                $var12.$array = $rt_createArray(jl_Object, 10);
                $var14 = $this.$allowedBiomeGenBases;
                if ($var14 === null) {
                    $var12 = new jl_NullPointerException;
                    $var12.$suppressionEnabled = 1;
                    $var12.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var12);
                    $var12.$message = $rt_s(3);
                    $rt_throw($var12);
                }
                $var13 = new ju_Arrays$ArrayAsList;
                $var13.$array1 = $var14;
                var$19 = $var13.$modCount;
                var$20 = $var13.$size();
                $var5 = 0;
                while ($var5 >= var$20 ? 0 : 1) {
                    if (var$19 < $var13.$modCount)
                        break b;
                    var$22 = $var5 + 1 | 0;
                    $var16 = $var13.$get($var5);
                    ju_ArrayList_ensureCapacity($var12, $var12.$size0 + 1 | 0);
                    $var14 = $var12.$array.data;
                    $var5 = $var12.$size0;
                    $var12.$size0 = $var5 + 1 | 0;
                    $var14[$var5] = $var16;
                    $var12.$modCount = $var12.$modCount + 1 | 0;
                    $var5 = var$22;
                }
                $var13 = $this.$worldObj9.$provider.$worldChunkMgr.$findBiomePosition(($var10 << 4) + 8 | 0, ($var11 << 4) + 8 | 0, 112, $var12, $var3);
                if ($var13 !== null) {
                    $var10 = $var13.$x >> 4;
                    $var11 = $var13.$z >> 4;
                }
                $var14 = $this.$structureCoords.data;
                $var12 = new nms_ChunkCoordIntPair;
                $var12.$chunkXPos = $var10;
                $var12.$chunkZPos = $var11;
                $var14[$var7] = $var12;
                $var8 = 6.283185307179586 * var$10;
                $var15 = $this.$field_82672_i;
                $var4 = $var4 + $var8 / $var15;
                if ($var7 == $var15) {
                    var$4 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$4;
                    $var10 = Long_lo(Long_shru(var$4, 17));
                    while (true) {
                        $var11 = $var10 % 5 | 0;
                        if ((($var10 - $var11 | 0) + 4 | 0) >= 0)
                            break;
                        var$4 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var3.$seed = var$4;
                        $var10 = Long_lo(Long_shru(var$4, 17));
                    }
                    $var6 = $var6 + (2 + $var11 | 0) | 0;
                    var$4 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$4;
                    $this.$field_82672_i = $var15 + (1 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$4, 17)))), 31)) | 0) | 0;
                }
                $var7 = $var7 + 1 | 0;
            }
            $var12 = new ju_ConcurrentModificationException;
            $var12.$suppressionEnabled = 1;
            $var12.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var12);
            $rt_throw($var12);
        }
    }
    $var14 = $this.$structureCoords.data;
    $var15 = $var14.length;
    $var5 = 0;
    while ($var5 < $var15) {
        $var16 = $var14[$var5];
        if ($par1 == $var16.$chunkXPos && $par2 == $var16.$chunkZPos)
            return 1;
        $var5 = $var5 + 1 | 0;
    }
    return 0;
},
nms_MapGenStronghold_getCoordList = $this => {
    let $var1, $var2, $var3, $var4, $var5, var$6, var$7, var$8, var$9;
    $var1 = new ju_ArrayList;
    $var1.$array = $rt_createArray(jl_Object, 10);
    $var2 = $this.$structureCoords.data;
    $var3 = $var2.length;
    $var4 = 0;
    while ($var4 < $var3) {
        $var5 = $var2[$var4];
        if ($var5 !== null) {
            var$6 = new nms_ChunkPosition;
            var$7 = ($var5.$chunkXPos << 4) + 8 | 0;
            var$8 = ($var5.$chunkZPos << 4) + 8 | 0;
            var$6.$x = var$7;
            var$6.$y = 64;
            var$6.$z = var$8;
            ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
            var$9 = $var1.$array.data;
            var$7 = $var1.$size0;
            $var1.$size0 = var$7 + 1 | 0;
            var$9[var$7] = var$6;
            $var1.$modCount = $var1.$modCount + 1 | 0;
        }
        $var4 = $var4 + 1 | 0;
    }
    return $var1;
},
nms_MapGenStronghold_getStructureStart = ($this, $par1, $par2) => {
    let $var3, var$4, var$5, var$6;
    $var3 = nms_StructureStrongholdStart__init_0($this.$worldObj9, $this.$rand1, $par1, $par2);
    while (true) {
        var$4 = $var3.$components;
        if (!(var$4.$size2 ? 0 : 1)) {
            var$5 = ju_LinkedList_listIterator(var$4, 0);
            if (var$5.$version < var$5.$this$02.$modCount) {
                var$4 = new ju_ConcurrentModificationException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            var$4 = var$5.$nextEntry1;
            if (var$4 === null) {
                var$4 = new ju_NoSuchElementException;
                var$4.$suppressionEnabled = 1;
                var$4.$writableStackTrace = 1;
                $rt_throw(var$4);
            }
            var$6 = var$4.$item;
            var$5.$currentEntry2 = var$4;
            var$5.$prevEntry = var$4;
            var$5.$nextEntry1 = var$4.$next5;
            var$5.$index4 = var$5.$index4 + 1 | 0;
            if (var$6.$strongholdPortalRoom !== null)
                break;
        }
        $var3 = nms_StructureStrongholdStart__init_0($this.$worldObj9, $this.$rand1, $par1, $par2);
    }
    return $var3;
};
function nms_MapGenVillage() {
    let a = this; nms_MapGenStructure.call(a);
    a.$terrainType3 = 0;
    a.$field_82665_g = 0;
    a.$field_82666_h = 0;
}
let nms_MapGenVillage_villageSpawnBiomes = null,
nms_MapGenVillage_$callClinit = () => {
    nms_MapGenVillage_$callClinit = $rt_eraseClinit(nms_MapGenVillage);
    nms_MapGenVillage__clinit_();
},
nms_MapGenVillage__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    nms_MapGenVillage_$callClinit();
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
    var$1 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    $this.$structureMap = var$1;
    $this.$field_82665_g = 32;
    $this.$field_82666_h = 8;
},
nms_MapGenVillage__init_2 = () => {
    let var_0 = new nms_MapGenVillage();
    nms_MapGenVillage__init_(var_0);
    return var_0;
},
nms_MapGenVillage__init_1 = ($this, $par1Map) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, $$je;
    nms_MapGenVillage_$callClinit();
    nms_MapGenVillage__init_($this);
    $var2 = new ju_HashMap$EntryIterator;
    $var2.$associatedMap = $par1Map;
    $var2.$expectedModCount = $par1Map.$modCount1;
    $var2.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext($var2)) {
        ju_HashMap$AbstractMapIterator_makeNext($var2);
        var$3 = $var2.$currentEntry0;
        var$4 = var$3.$key;
        if (var$4 === $rt_s(2372))
            var$5 = 1;
        else if (!($rt_s(2372) instanceof jl_String))
            var$5 = 0;
        else {
            $par1Map = $rt_s(2372);
            var$5 = var$4.$nativeString !== $par1Map.$nativeString ? 0 : 1;
        }
        if (var$5) {
            $par1Map = var$3.$value0;
            var$5 = $this.$terrainType3;
            var$6 = 0;
            a: {
                try {
                    var$7 = jl_Integer_parseInt($par1Map);
                    var$5 = var$7;
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
                var$7 = var$5;
            }
            if (var$7 >= var$6)
                var$6 = var$7;
            $this.$terrainType3 = var$6;
        } else {
            $par1Map = var$3.$key;
            if ($par1Map === $rt_s(2385))
                var$5 = 1;
            else if (!($rt_s(2385) instanceof jl_String))
                var$5 = 0;
            else {
                var$4 = $rt_s(2385);
                var$5 = $par1Map.$nativeString !== var$4.$nativeString ? 0 : 1;
            }
            if (var$5) {
                $par1Map = var$3.$value0;
                var$6 = $this.$field_82665_g;
                var$5 = $this.$field_82666_h + 1 | 0;
                b: {
                    try {
                        var$7 = jl_Integer_parseInt($par1Map);
                        var$6 = var$7;
                        break b;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Throwable) {
                        } else {
                            throw $$e;
                        }
                    }
                    var$7 = var$6;
                }
                if (var$7 >= var$5)
                    var$5 = var$7;
                $this.$field_82665_g = var$5;
            }
        }
    }
},
nms_MapGenVillage__init_0 = var_0 => {
    let var_1 = new nms_MapGenVillage();
    nms_MapGenVillage__init_1(var_1, var_0);
    return var_1;
},
nms_MapGenVillage_func_143025_a = $this => {
    return $rt_s(2126);
},
nms_MapGenVillage_canSpawnStructureAtCoords = ($this, $par1, $par2) => {
    let $var5, $var6, $var8, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    $var5 = $par1 >= 0 ? $par1 : $par1 - ($this.$field_82665_g - 1 | 0) | 0;
    $var6 = $par2 >= 0 ? $par2 : $par2 - ($this.$field_82665_g - 1 | 0) | 0;
    $var8 = $this.$field_82665_g;
    $var5 = $var5 / $var8 | 0;
    $var6 = $var6 / $var8 | 0;
    var$6 = $this.$worldObj9;
    var$7 = Long_add(Long_add(Long_add(Long_mul(Long_fromInt($var5), Long_create(2570712328, 79)), Long_mul(Long_fromInt($var6), Long_create(4048968661, 30))), var$6.$worldInfo.$getSeed()), Long_fromInt(10387312));
    var$6 = var$6.$rand0;
    var$6.$seed = var$7;
    $var8 = $this.$field_82665_g;
    var$8 = $rt_imul($var5, $var8);
    var$9 = $rt_imul($var6, $var8);
    var$10 = $var8 - $this.$field_82666_h | 0;
    var$11 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$6.$seed = var$11;
    var$12 = Long_lo(Long_shru(var$11, 17));
    $var5 = var$10 - 1 | 0;
    $var6 = var$10 & $var5;
    if (!$var6)
        var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$10), Long_fromInt(var$12)), 31));
    else
        while (true) {
            var$13 = var$12 % var$10 | 0;
            if (((var$12 - var$13 | 0) + $var5 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
        }
    var$8 = var$8 + var$13 | 0;
    var$11 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$6.$seed = var$11;
    var$12 = Long_lo(Long_shru(var$11, 17));
    if (!$var6)
        $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$10), Long_fromInt(var$12)), 31));
    else
        while (true) {
            $var6 = var$12 % var$10 | 0;
            if (((var$12 - $var6 | 0) + $var5 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
        }
    $var5 = var$9 + $var6 | 0;
    if ($par1 == var$8 && $par2 == $var5) {
        var$14 = $this.$worldObj9.$provider.$worldChunkMgr;
        $par1 = ($par1 * 16 | 0) + 8 | 0;
        $par2 = ($par2 * 16 | 0) + 8 | 0;
        nms_MapGenVillage_$callClinit();
        if (var$14.$areBiomesViable($par1, $par2, 0, nms_MapGenVillage_villageSpawnBiomes))
            return 1;
    }
    return 0;
},
nms_MapGenVillage_getStructureStart = ($this, $par1, $par2) => {
    return nms_StructureVillageStart__init_1($this.$worldObj9, $this.$rand1, $par1, $par2, $this.$terrainType3);
},
nms_MapGenVillage__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = $rt_createArray(nms_BiomeGenBase, 2);
    var$2 = var$1.data;
    nms_BiomeGenBase_$callClinit();
    var$2[0] = nms_BiomeGenBase_plains;
    var$2[1] = nms_BiomeGenBase_desert;
    var$3 = new ju_Arrays$ArrayAsList;
    var$3.$array1 = var$1;
    nms_MapGenVillage_villageSpawnBiomes = var$3;
};
function nms_MapGenMineshaft() {
    nms_MapGenStructure.call(this);
    this.$field_82673_e = 0.0;
}
let nms_MapGenMineshaft__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
    var$1 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    $this.$structureMap = var$1;
    $this.$field_82673_e = 0.01;
},
nms_MapGenMineshaft__init_0 = () => {
    let var_0 = new nms_MapGenMineshaft();
    nms_MapGenMineshaft__init_(var_0);
    return var_0;
},
nms_MapGenMineshaft_func_143025_a = $this => {
    return $rt_s(2388);
},
nms_MapGenMineshaft_canSpawnStructureAtCoords = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$3 = $this.$rand1;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
        var$6 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$6;
        if (Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$6, 21))))) * 1.1102230246251565E-16 < $this.$field_82673_e) {
            var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
            while (true) {
                var$8 = var$7 % 80 | 0;
                if (((var$7 - var$8 | 0) + 79 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$6;
                var$7 = Long_lo(Long_shru(var$6, 17));
            }
            if ($par1 < 0)
                $par1 =  -$par1 | 0;
            if ($par2 < 0)
                $par2 =  -$par2 | 0;
            if ($par1 > $par2)
                $par2 = $par1;
            if (var$8 < $par2) {
                $par1 = 1;
                break a;
            }
        }
        $par1 = 0;
    }
    return $par1;
},
nms_MapGenMineshaft_getStructureStart = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8;
    var$3 = new nms_StructureMineshaftStart;
    var$4 = $this.$worldObj9;
    var$5 = $this.$rand1;
    var$3.$components = new ju_LinkedList;
    var$3.$field_143024_c = $par1;
    var$3.$field_143023_d = $par2;
    var$6 = nms_ComponentMineshaftRoom__init_0(0, var$5, ($par1 << 4) + 2 | 0, ($par2 << 4) + 2 | 0);
    var$7 = var$3.$components;
    $par1 = var$7.$size2;
    if ($par1 < 0) {
        var$3 = new jl_IndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    }
    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator(var$7, $par1), var$6);
    nms_ComponentMineshaftRoom_buildComponent(var$6, var$6, var$3.$components, var$5);
    var$7 = new nms_StructureBoundingBox;
    var$7.$minX = 2147483647;
    var$7.$minY = 2147483647;
    var$7.$minZ = 2147483647;
    var$7.$maxX = (-2147483648);
    var$7.$maxY1 = (-2147483648);
    var$7.$maxZ = (-2147483648);
    var$3.$boundingBox1 = var$7;
    var$7 = var$3.$components;
    var$8 = var$7.$firstEntry;
    $par2 = var$7.$modCount;
    while (var$8 === null ? 0 : 1) {
        if ($par2 < var$7.$modCount) {
            var$3 = new ju_ConcurrentModificationException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$3);
            $rt_throw(var$3);
        }
        if (var$8 === null) {
            var$3 = new ju_NoSuchElementException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            $rt_throw(var$3);
        }
        var$6 = var$8.$item;
        var$8 = var$8.$next5;
        var$6 = var$6;
        nms_StructureBoundingBox_expandTo(var$3.$boundingBox1, var$6.$boundingBox);
    }
    nms_StructureStart_markAvailableHeight(var$3, var$4, var$5, 10);
    return var$3;
};
function nms_MapGenScatteredFeature() {
    let a = this; nms_MapGenStructure.call(a);
    a.$scatteredFeatureSpawnList = null;
    a.$maxDistanceBetweenScatteredFeatures = 0;
    a.$minDistanceBetweenScatteredFeatures = 0;
}
let nms_MapGenScatteredFeature_biomelist = null,
nms_MapGenScatteredFeature_$callClinit = () => {
    nms_MapGenScatteredFeature_$callClinit = $rt_eraseClinit(nms_MapGenScatteredFeature);
    nms_MapGenScatteredFeature__clinit_();
},
nms_MapGenScatteredFeature__init_ = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    nms_MapGenScatteredFeature_$callClinit();
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
    var$1 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    $this.$structureMap = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$scatteredFeatureSpawnList = var$1;
    $this.$maxDistanceBetweenScatteredFeatures = 32;
    $this.$minDistanceBetweenScatteredFeatures = 8;
    var$6 = new nms_SpawnListEntry;
    var$6.$itemWeight = 1;
    var$6.$entityClass = $rt_cls(nms_EntityWitch);
    var$6.$minGroupCount = 1;
    var$6.$maxGroupCount = 1;
    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
    var$5 = var$1.$array.data;
    var$7 = var$1.$size0;
    var$1.$size0 = var$7 + 1 | 0;
    var$5[var$7] = var$6;
    var$1.$modCount = var$1.$modCount + 1 | 0;
},
nms_MapGenScatteredFeature__init_1 = () => {
    let var_0 = new nms_MapGenScatteredFeature();
    nms_MapGenScatteredFeature__init_(var_0);
    return var_0;
},
nms_MapGenScatteredFeature__init_0 = ($this, $par1Map) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, $$je;
    nms_MapGenScatteredFeature_$callClinit();
    nms_MapGenScatteredFeature__init_($this);
    $var2 = new ju_HashMap$EntryIterator;
    $var2.$associatedMap = $par1Map;
    $var2.$expectedModCount = $par1Map.$modCount1;
    $var2.$futureEntry0 = null;
    while (ju_HashMap$AbstractMapIterator_hasNext($var2)) {
        ju_HashMap$AbstractMapIterator_makeNext($var2);
        var$3 = $var2.$currentEntry0;
        var$4 = var$3.$key;
        if (var$4 === $rt_s(2385))
            var$5 = 1;
        else if (!($rt_s(2385) instanceof jl_String))
            var$5 = 0;
        else {
            $par1Map = $rt_s(2385);
            var$5 = var$4.$nativeString !== $par1Map.$nativeString ? 0 : 1;
        }
        if (var$5) {
            $par1Map = var$3.$value0;
            var$6 = $this.$maxDistanceBetweenScatteredFeatures;
            var$5 = $this.$minDistanceBetweenScatteredFeatures + 1 | 0;
            a: {
                try {
                    var$7 = jl_Integer_parseInt($par1Map);
                    var$6 = var$7;
                    break a;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Throwable) {
                    } else {
                        throw $$e;
                    }
                }
                var$7 = var$6;
            }
            if (var$7 >= var$5)
                var$5 = var$7;
            $this.$maxDistanceBetweenScatteredFeatures = var$5;
        }
    }
},
nms_MapGenScatteredFeature__init_2 = var_0 => {
    let var_1 = new nms_MapGenScatteredFeature();
    nms_MapGenScatteredFeature__init_0(var_1, var_0);
    return var_1;
},
nms_MapGenScatteredFeature_func_143025_a = $this => {
    return $rt_s(2389);
},
nms_MapGenScatteredFeature_canSpawnStructureAtCoords = ($this, $par1, $par2) => {
    let $var5, $var9$index, $var6, $var8, var$7, var$8, var$9, var$10, var$11, var$12, $var9$index_0, var$14, var$15;
    $var5 = $par1 >= 0 ? $par1 : $par1 - ($this.$maxDistanceBetweenScatteredFeatures - 1 | 0) | 0;
    $var9$index = $par2 >= 0 ? $par2 : $par2 - ($this.$maxDistanceBetweenScatteredFeatures - 1 | 0) | 0;
    $var6 = $this.$maxDistanceBetweenScatteredFeatures;
    $var5 = $var5 / $var6 | 0;
    $var6 = $var9$index / $var6 | 0;
    $var8 = $this.$worldObj9;
    var$7 = Long_add(Long_add(Long_add(Long_mul(Long_fromInt($var5), Long_create(2570712328, 79)), Long_mul(Long_fromInt($var6), Long_create(4048968661, 30))), $var8.$worldInfo.$getSeed()), Long_fromInt(14357617));
    $var8 = $var8.$rand0;
    $var8.$seed = var$7;
    $var9$index = $this.$maxDistanceBetweenScatteredFeatures;
    var$8 = $rt_imul($var5, $var9$index);
    var$9 = $rt_imul($var6, $var9$index);
    var$10 = $var9$index - $this.$minDistanceBetweenScatteredFeatures | 0;
    var$11 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $var8.$seed = var$11;
    var$12 = Long_lo(Long_shru(var$11, 17));
    $var5 = var$10 - 1 | 0;
    $var9$index_0 = var$10 & $var5;
    if (!$var9$index_0)
        var$14 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$10), Long_fromInt(var$12)), 31));
    else
        while (true) {
            var$14 = var$12 % var$10 | 0;
            if (((var$12 - var$14 | 0) + $var5 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
        }
    $var9$index = var$8 + var$14 | 0;
    var$11 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $var8.$seed = var$11;
    var$12 = Long_lo(Long_shru(var$11, 17));
    if (!$var9$index_0)
        $var9$index_0 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$10), Long_fromInt(var$12)), 31));
    else
        while (true) {
            $var9$index_0 = var$12 % var$10 | 0;
            if (((var$12 - $var9$index_0 | 0) + $var5 | 0) >= 0)
                break;
            var$11 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
        }
    a: {
        $var6 = var$9 + $var9$index_0 | 0;
        if ($par1 == $var9$index && $par2 == $var6) {
            $var8 = $this.$worldObj9.$provider.$worldChunkMgr.$getBiomeGenAt(($par1 * 16 | 0) + 8 | 0, ($par2 * 16 | 0) + 8 | 0);
            nms_MapGenScatteredFeature_$callClinit();
            var$15 = nms_MapGenScatteredFeature_biomelist;
            $var9$index_0 = 0;
            $par2 = var$15.$modCount;
            $var6 = var$15.$size();
            while (true) {
                if (!($var9$index_0 >= $var6 ? 0 : 1))
                    break a;
                if ($par2 < var$15.$modCount) {
                    $var8 = new ju_ConcurrentModificationException;
                    $var8.$suppressionEnabled = 1;
                    $var8.$writableStackTrace = 1;
                    $rt_throw($var8);
                }
                $var9$index = $var9$index_0 + 1 | 0;
                if ($var8 === var$15.$get($var9$index_0))
                    break;
                $var9$index_0 = $var9$index;
            }
            return 1;
        }
    }
    return 0;
},
nms_MapGenScatteredFeature_getStructureStart = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = new nms_StructureScatteredFeatureStart;
        var$4 = $this.$worldObj9;
        var$5 = $this.$rand1;
        $ptr = 1;
    case 1:
        nms_StructureScatteredFeatureStart__init_0(var$3, var$4, var$5, $par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $ptr);
},
nms_MapGenScatteredFeature__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = $rt_createArray(nms_BiomeGenBase, 5);
    var$2 = var$1.data;
    nms_BiomeGenBase_$callClinit();
    var$2[0] = nms_BiomeGenBase_desert;
    var$2[1] = nms_BiomeGenBase_desertHills;
    var$2[2] = nms_BiomeGenBase_jungle;
    var$2[3] = nms_BiomeGenBase_jungleHills;
    var$2[4] = nms_BiomeGenBase_swampland;
    var$3 = new ju_Arrays$ArrayAsList;
    var$3.$array1 = var$1;
    nms_MapGenScatteredFeature_biomelist = var$3;
};
function nms_MapGenRavine() {
    nms_MapGenBase.call(this);
    this.$field_75046_d = null;
}
let nms_MapGenRavine__init_ = $this => {
    let var$1, var$2;
    $this.$range = 8;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$rand1 = var$1;
    $this.$field_75046_d = $rt_createFloatArray(1024);
},
nms_MapGenRavine__init_0 = () => {
    let var_0 = new nms_MapGenRavine();
    nms_MapGenRavine__init_(var_0);
    return var_0;
},
nms_MapGenRavine_generateRavine = ($this, $var19$seed, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, $par13, $par14, $par15, $par16, $par17) => {
    let var$14, $var20, var$16, $var22, $var24, $var25, $var26, $var48, $var53, $var27, $var28, var$25, $var47, $var19$seed_0, $var32, $var40, var$30, var$31, var$32, var$33, $var33, var$35, $var54, $var30, var$38, $var19$seed_1, var$40, $var34, $var36, $var38, $var50, $var45, $var55, $var35, $var56, $var37, $var57, $var39, $var58, $var41, $var42, $var43, $var44, $var59, var$58, $var44_0, $var49, var$61, $var52, var$63, var$64, var$65, var$66, var$67, var$68, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$68 = $thread.pop();var$67 = $thread.pop();var$66 = $thread.pop();var$65 = $thread.pop();var$64 = $thread.pop();var$63 = $thread.pop();$var52 = $thread.pop();var$61 = $thread.pop();$var49 = $thread.pop();$var44_0 = $thread.pop();var$58 = $thread.pop();$var59 = $thread.pop();$var44 = $thread.pop();$var43 = $thread.pop();$var42 = $thread.pop();$var41 = $thread.pop();$var58 = $thread.pop();$var39 = $thread.pop();$var57 = $thread.pop();$var37 = $thread.pop();$var56 = $thread.pop();$var35
        = $thread.pop();$var55 = $thread.pop();$var45 = $thread.pop();$var50 = $thread.pop();$var38 = $thread.pop();$var36 = $thread.pop();$var34 = $thread.pop();var$40 = $thread.pop();$var19$seed_1 = $thread.pop();var$38 = $thread.pop();$var30 = $thread.pop();$var54 = $thread.pop();var$35 = $thread.pop();$var33 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();$var40 = $thread.pop();$var32 = $thread.pop();$var19$seed_0 = $thread.pop();$var47 = $thread.pop();var$25
        = $thread.pop();$var28 = $thread.pop();$var27 = $thread.pop();$var53 = $thread.pop();$var48 = $thread.pop();$var26 = $thread.pop();$var25 = $thread.pop();$var24 = $thread.pop();$var22 = $thread.pop();var$16 = $thread.pop();$var20 = $thread.pop();var$14 = $thread.pop();$par17 = $thread.pop();$par16 = $thread.pop();$par15 = $thread.pop();$par14 = $thread.pop();$par13 = $thread.pop();$par12 = $thread.pop();$par10 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par5ArrayOfByte = $thread.pop();$par4
        = $thread.pop();$par3 = $thread.pop();$var19$seed = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$14 = $par3 * 16 | 0;
        $var20 = var$14 + 8 | 0;
        var$16 = $par4 * 16 | 0;
        $var22 = var$16 + 8 | 0;
        $var24 = 0.0;
        $var25 = 0.0;
        if ($par16 <= 0) {
            $var26 = ($this.$range * 16 | 0) - 16 | 0;
            $var48 = $var26 / 4 | 0;
            $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par16 = Long_lo(Long_shru($var19$seed, 17));
            $par3 = $var48 - 1 | 0;
            if (!($var48 & $par3))
                $par4 = Long_lo(Long_shr(Long_mul(Long_fromInt($var48), Long_fromInt($par16)), 31));
            else
                while (true) {
                    $par4 = $par16 % $var48 | 0;
                    if ((($par16 - $par4 | 0) + $par3 | 0) >= 0)
                        break;
                    $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par16 = Long_lo(Long_shru($var19$seed, 17));
                }
            $par16 = $var26 - $par4 | 0;
        }
        $var53 = 0;
        if ($par15 == (-1)) {
            $par15 = $par16 / 2 | 0;
            $var53 = 1;
        }
        $var27 = 1.0;
        $var28 = 0;
        $var26 = 17;
        var$25 = 24;
        while ($var28 < 128) {
            a: {
                if ($var28) {
                    $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3 = Long_lo(Long_shru($var19$seed, $var26));
                    while (true) {
                        $var47 = $par3 % 3 | 0;
                        if ((($par3 - $var47 | 0) + 2 | 0) >= 0)
                            break;
                        $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3 = Long_lo(Long_shru($var19$seed, $var26));
                    }
                    if ($var47)
                        break a;
                }
                $var19$seed_0 = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var32 = Long_lo(Long_shru($var19$seed_0, var$25)) / 1.6777216E7;
                $var19$seed = Long_and(Long_add(Long_mul($var19$seed_0, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var27 = 1.0 + $var32 * Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7 * 1.0;
            }
            $this.$field_75046_d.data[$var28] = $var27 * $var27;
            $var28 = $var28 + 1 | 0;
        }
        $var19$seed_0 = Long_fromInt(4);
        $var40 = $par12 + 2.0 + 16.0;
        var$30 = $var40 * $var40;
        var$31 = $var20 - 16.0;
        $var40 = $var22 - 16.0;
        var$32 = $var20 + 16.0;
        var$33 = $var22 + 16.0;
        b: {
            c: {
                d: while (true) {
                    if ($par15 >= $par16)
                        break c;
                    e: {
                        $var33 = $par15 * 3.1415927410125732 / $par16;
                        var$35 = nms_MathHelper_SIN_TABLE.data;
                        $var54 = 1.5 + var$35[($var33 * 10430.3779296875 | 0) & 65535] * $par12 * 1.0;
                        $var30 = $var54 * $par17;
                        $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$38 = $var54 * (Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7 * 0.25 + 0.75);
                        $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var30 = $var30 * (Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7 * 0.25 + 0.75);
                        $var27 = $par14 * 10430.3779296875;
                        $var32 = var$35[($var27 + 16384.0 | 0) & 65535];
                        $var33 = var$35[($var27 | 0) & 65535];
                        var$40 = $par13 * 10430.3779296875;
                        $par6 = $par6 + var$35[(var$40 + 16384.0 | 0) & 65535] * $var32;
                        $par8 = $par8 + $var33;
                        $par10 = $par10 + var$35[(var$40 | 0) & 65535] * $var32;
                        $par14 = $par14 * 0.699999988079071 + $var25 * 0.05000000074505806;
                        $par13 = $par13 + $var24 * 0.05000000074505806;
                        var$40 = $var25 * 0.800000011920929;
                        $var24 = $var24 * 0.5;
                        $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var32 = Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7;
                        $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var32 = $var32 - Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7;
                        $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var25 = var$40 + $var32 * Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7 * 2.0;
                        $var19$seed = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var27 = Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7;
                        $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var27 = $var27 - Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7;
                        $var19$seed = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var24 = $var24 + $var27 * Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7 * 4.0;
                        if (!$var53) {
                            $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            if (!Long_lo(Long_shr(Long_mul($var19$seed_0, Long_fromInt(Long_lo(Long_shru($var19$seed, $var26)))), 31)))
                                break e;
                        }
                        $var34 = $par6 - $var20;
                        $var36 = $par10 - $var22;
                        $var38 = $par16 - $par15 | 0;
                        if ($var34 * $var34 + $var36 * $var36 - $var38 * $var38 > var$30)
                            break d;
                        $var50 = var$38 * 2.0;
                        if ($par6 >= var$31 - $var50 && $par10 >= $var40 - $var50 && $par6 <= var$32 + $var50 && $par10 <= var$33 + $var50) {
                            $var45 = $par6 - var$38;
                            $par4 = $var45 | 0;
                            if ($var45 < $par4)
                                $par4 = $par4 - 1 | 0;
                            $var55 = ($par4 - var$14 | 0) - 1 | 0;
                            $var45 = $par6 + var$38;
                            $par4 = $var45 | 0;
                            if ($var45 < $par4)
                                $par4 = $par4 - 1 | 0;
                            $var35 = ($par4 - var$14 | 0) + 1 | 0;
                            $var45 = $par8 - $var30;
                            $par4 = $var45 | 0;
                            if ($var45 < $par4)
                                $par4 = $par4 - 1 | 0;
                            $var56 = $par4 - 1 | 0;
                            $var50 = $par8 + $var30;
                            $par4 = $var50 | 0;
                            if ($var50 < $par4)
                                $par4 = $par4 - 1 | 0;
                            $var37 = $par4 + 1 | 0;
                            $var50 = $par10 - var$38;
                            $par4 = $var50 | 0;
                            if ($var50 < $par4)
                                $par4 = $par4 - 1 | 0;
                            $var57 = ($par4 - var$16 | 0) - 1 | 0;
                            $var45 = $par10 + var$38;
                            $par4 = $var45 | 0;
                            if ($var45 < $par4)
                                $par4 = $par4 - 1 | 0;
                            $var39 = ($par4 - var$16 | 0) + 1 | 0;
                            if ($var55 < 0)
                                $var55 = 0;
                            if ($var35 > 16)
                                $var35 = 16;
                            if ($var56 < 1)
                                $var56 = 1;
                            if ($var37 > 120)
                                $var37 = 120;
                            if ($var57 < 0)
                                $var57 = 0;
                            if ($var39 > 16)
                                $var39 = 16;
                            $var58 = 0;
                            $var41 = $var55;
                            while (!$var58 && $var41 < $var35) {
                                $var42 = $var57;
                                while (!$var58 && $var42 < $var39) {
                                    $var43 = $var37 + 1 | 0;
                                    while (!$var58) {
                                        $par3 = $rt_compare($var43, $var56 - 1 | 0);
                                        if ($par3 < 0)
                                            break;
                                        $var44 = ((($var41 * 16 | 0) + $var42 | 0) * 128 | 0) + $var43 | 0;
                                        if ($var43 >= 0 && $var43 < 128) {
                                            var$35 = $par5ArrayOfByte.data;
                                            $par4 = var$35[$var44];
                                            nms_Block_$callClinit();
                                            if (!($par4 != nms_Block_waterMoving.$blockID && var$35[$var44] != nms_Block_waterStill.$blockID))
                                                $var58 = 1;
                                            if ($par3 && $var41 != $var55 && $var41 != ($var35 - 1 | 0) && $var42 != $var57 && $var42 != ($var39 - 1 | 0))
                                                $var43 = $var56;
                                        }
                                        $var43 = $var43 + (-1) | 0;
                                    }
                                    $var42 = $var42 + 1 | 0;
                                }
                                $var41 = $var41 + 1 | 0;
                            }
                            if (!$var58) {
                                while ($var55 < $var35) {
                                    $var58 = $var55 + var$14 | 0;
                                    $var59 = ($var58 + 0.5 - $par6) / var$38;
                                    $var34 = $var59 * $var59;
                                    $var42 = $var58 >> 4;
                                    var$58 = Long_and(Long_fromInt($var42), Long_create(4294967295, 0));
                                    $var41 = $var58 & 15;
                                    $var44_0 = $var57;
                                    while ($var44_0 < $var39) {
                                        f: {
                                            $par3 = $var44_0 + var$16 | 0;
                                            $var45 = ($par3 + 0.5 - $par10) / var$38;
                                            $var47 = ((($var55 * 16 | 0) + $var44_0 | 0) * 128 | 0) + $var37 | 0;
                                            $var48 = 0;
                                            $var36 = $var34 + $var45 * $var45;
                                            if ($var36 < 1.0) {
                                                $var49 = $var37 - 1 | 0;
                                                $var43 = $par3 >> 4;
                                                var$61 = Long_or(var$58, Long_shl(Long_and(Long_fromInt($var43), Long_create(4294967295, 0)), 32));
                                                $var52 = Long_lo(Long_xor(var$61, Long_shru(var$61, 32)));
                                                $var52 = $var52 ^ ($var52 >>> 20 | 0) ^ ($var52 >>> 12 | 0);
                                                $var44 = $var52 ^ ($var52 >>> 7 | 0) ^ ($var52 >>> 4 | 0);
                                                $var28 = $par3 & 15;
                                                while (true) {
                                                    if ($var49 < $var56)
                                                        break f;
                                                    $var50 = ($var49 + 0.5 - $par8) / $var30;
                                                    if ($var36 * $this.$field_75046_d.data[$var49] + $var50 * $var50 / 6.0 < 1.0) {
                                                        var$35 = $par5ArrayOfByte.data;
                                                        $var52 = var$35[$var47];
                                                        nms_Block_$callClinit();
                                                        $par4 = $rt_compare($var52, nms_Block_grass.$blockID);
                                                        if (!$par4)
                                                            $var48 = 1;
                                                        if (!($var52 != nms_Block_stone.$blockID && $var52 != nms_Block_dirt.$blockID && $par4)) {
                                                            if ($var49 < 10)
                                                                var$35[$var47] = nms_Block_lavaMoving.$blockID << 24 >> 24;
                                                            else {
                                                                var$35[$var47] = 0;
                                                                if ($var48) {
                                                                    var$63 = $var47 - 1 | 0;
                                                                    if (var$35[var$63] == nms_Block_dirt.$blockID) {
                                                                        var$64 = $this.$worldObj9;
                                                                        var$65 = var$64.$chunkProvider;
                                                                        var$66 = var$65.$loadedChunkHashMap.$hashArray.data;
                                                                        $var52 = $var44 & (var$66.length - 1 | 0);
                                                                        var$67 = var$66[$var52];
                                                                        g: {
                                                                            while (true) {
                                                                                if (var$67 === null) {
                                                                                    var$67 = null;
                                                                                    break g;
                                                                                }
                                                                                if (Long_eq(var$67.$key1, var$61))
                                                                                    break;
                                                                                var$67 = var$67.$nextEntry;
                                                                            }
                                                                        }
                                                                        $par4 = var$67 === null ? 0 : 1;
                                                                        h: {
                                                                            if ($par4) {
                                                                                var$67 = var$66[$var52];
                                                                                i: {
                                                                                    while (var$67 !== null) {
                                                                                        if (Long_eq(var$67.$key1, var$61)) {
                                                                                            var$67 = var$67.$value4;
                                                                                            break i;
                                                                                        }
                                                                                        var$67 = var$67.$nextEntry;
                                                                                    }
                                                                                    var$67 = null;
                                                                                }
                                                                                var$68 = var$67;
                                                                                if (var$68 === null) {
                                                                                    if (var$65.$worldObj0.$findingSpawnPoint)
                                                                                        break b;
                                                                                    if (var$65.$loadChunkOnProvideRequest)
                                                                                        break b;
                                                                                    var$68 = var$65.$defaultEmptyChunk;
                                                                                }
                                                                                if (var$68 !== null) {
                                                                                    var$67 = nms_Chunk_getBiomeGenForWorldCoords(var$68, $var41, $var28, var$64.$provider.$worldChunkMgr);
                                                                                    break h;
                                                                                }
                                                                            }
                                                                            var$67 = var$64.$provider.$worldChunkMgr.$getBiomeGenAt($var58, $par3);
                                                                        }
                                                                        var$35[var$63] = var$67.$topBlock;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                    $var47 = $var47 + (-1) | 0;
                                                    $var49 = $var49 + (-1) | 0;
                                                }
                                            }
                                        }
                                        $var44_0 = $var44_0 + 1 | 0;
                                    }
                                    $var55 = $var55 + 1 | 0;
                                }
                                if ($var53)
                                    break c;
                            }
                        }
                    }
                    $par15 = $par15 + 1 | 0;
                }
                return;
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$65, $var42, $var43);
        if ($rt_suspending()) {
            break main;
        }
        var$68 = $tmp;
        j: {
            k: {
                l: while (true) {
                    if (var$68 === null) {
                        var$67 = var$64.$provider;
                        var$67 = var$67.$worldChunkMgr;
                        var$67 = var$67.$getBiomeGenAt($var58, $par3);
                    } else
                        var$67 = nms_Chunk_getBiomeGenForWorldCoords(var$68, $var41, $var28, var$64.$provider.$worldChunkMgr);
                    while (true) {
                        var$35[var$63] = var$67.$topBlock;
                        while (true) {
                            $var47 = $var47 + (-1) | 0;
                            $var49 = $var49 + (-1) | 0;
                            while ($var49 < $var56) {
                                while (true) {
                                    $var44_0 = $var44_0 + 1 | 0;
                                    while ($var44_0 >= $var39) {
                                        $var55 = $var55 + 1 | 0;
                                        while ($var55 >= $var35) {
                                            if ($var53)
                                                break k;
                                            while (true) {
                                                $par15 = $par15 + 1 | 0;
                                                if ($par15 >= $par16)
                                                    break k;
                                                $var33 = $par15 * 3.1415927410125732 / $par16;
                                                var$35 = nms_MathHelper_SIN_TABLE.data;
                                                $var54 = 1.5 + var$35[($var33 * 10430.3779296875 | 0) & 65535] * $par12 * 1.0;
                                                $var30 = $var54 * $par17;
                                                $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                var$38 = $var54 * (Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7 * 0.25 + 0.75);
                                                $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var30 = $var30 * (Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7 * 0.25 + 0.75);
                                                $var27 = $par14 * 10430.3779296875;
                                                $var32 = var$35[($var27 + 16384.0 | 0) & 65535];
                                                $var33 = var$35[($var27 | 0) & 65535];
                                                var$40 = $par13 * 10430.3779296875;
                                                $par6 = $par6 + var$35[(var$40 + 16384.0 | 0) & 65535] * $var32;
                                                $par8 = $par8 + $var33;
                                                $par10 = $par10 + var$35[(var$40 | 0) & 65535] * $var32;
                                                $par14 = $par14 * 0.699999988079071 + $var25 * 0.05000000074505806;
                                                $par13 = $par13 + $var24 * 0.05000000074505806;
                                                var$40 = $var25 * 0.800000011920929;
                                                $var24 = $var24 * 0.5;
                                                $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var32 = Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7;
                                                $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var32 = $var32 - Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7;
                                                $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var25 = var$40 + $var32 * Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7 * 2.0;
                                                $var19$seed = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var27 = Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7;
                                                $var19$seed_1 = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var27 = $var27 - Long_lo(Long_shru($var19$seed_1, var$25)) / 1.6777216E7;
                                                $var19$seed = Long_and(Long_add(Long_mul($var19$seed_1, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $var24 = $var24 + $var27 * Long_lo(Long_shru($var19$seed, var$25)) / 1.6777216E7 * 4.0;
                                                if (!$var53) {
                                                    $var19$seed = Long_and(Long_add(Long_mul($var19$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                    if (!Long_lo(Long_shr(Long_mul($var19$seed_0, Long_fromInt(Long_lo(Long_shru($var19$seed, $var26)))), 31)))
                                                        continue;
                                                }
                                                $var34 = $par6 - $var20;
                                                $var36 = $par10 - $var22;
                                                $var38 = $par16 - $par15 | 0;
                                                if ($var34 * $var34 + $var36 * $var36 - $var38 * $var38 > var$30)
                                                    break l;
                                                $var50 = var$38 * 2.0;
                                                if ($par6 < var$31 - $var50)
                                                    continue;
                                                if ($par10 < $var40 - $var50)
                                                    continue;
                                                if ($par6 > var$32 + $var50)
                                                    continue;
                                                if ($par10 > var$33 + $var50)
                                                    continue;
                                                $var45 = $par6 - var$38;
                                                $par4 = $var45 | 0;
                                                if ($var45 < $par4)
                                                    $par4 = $par4 - 1 | 0;
                                                $var55 = ($par4 - var$14 | 0) - 1 | 0;
                                                $var45 = $par6 + var$38;
                                                $par4 = $var45 | 0;
                                                if ($var45 < $par4)
                                                    $par4 = $par4 - 1 | 0;
                                                $var35 = ($par4 - var$14 | 0) + 1 | 0;
                                                $var45 = $par8 - $var30;
                                                $par4 = $var45 | 0;
                                                if ($var45 < $par4)
                                                    $par4 = $par4 - 1 | 0;
                                                $var56 = $par4 - 1 | 0;
                                                $var50 = $par8 + $var30;
                                                $par4 = $var50 | 0;
                                                if ($var50 < $par4)
                                                    $par4 = $par4 - 1 | 0;
                                                $var37 = $par4 + 1 | 0;
                                                $var50 = $par10 - var$38;
                                                $par4 = $var50 | 0;
                                                if ($var50 < $par4)
                                                    $par4 = $par4 - 1 | 0;
                                                $var57 = ($par4 - var$16 | 0) - 1 | 0;
                                                $var45 = $par10 + var$38;
                                                $par4 = $var45 | 0;
                                                if ($var45 < $par4)
                                                    $par4 = $par4 - 1 | 0;
                                                $var39 = ($par4 - var$16 | 0) + 1 | 0;
                                                if ($var55 < 0)
                                                    $var55 = 0;
                                                if ($var35 > 16)
                                                    $var35 = 16;
                                                if ($var56 < 1)
                                                    $var56 = 1;
                                                if ($var37 > 120)
                                                    $var37 = 120;
                                                if ($var57 < 0)
                                                    $var57 = 0;
                                                if ($var39 > 16)
                                                    $var39 = 16;
                                                $var58 = 0;
                                                $var41 = $var55;
                                                while (!$var58 && $var41 < $var35) {
                                                    $var42 = $var57;
                                                    while (!$var58 && $var42 < $var39) {
                                                        $var43 = $var37 + 1 | 0;
                                                        while (!$var58) {
                                                            $par3 = $rt_compare($var43, $var56 - 1 | 0);
                                                            if ($par3 < 0)
                                                                break;
                                                            $var44 = ((($var41 * 16 | 0) + $var42 | 0) * 128 | 0) + $var43 | 0;
                                                            if ($var43 >= 0 && $var43 < 128) {
                                                                var$35 = $par5ArrayOfByte.data;
                                                                $par4 = var$35[$var44];
                                                                nms_Block_$callClinit();
                                                                if (!($par4 != nms_Block_waterMoving.$blockID && var$35[$var44] != nms_Block_waterStill.$blockID))
                                                                    $var58 = 1;
                                                                if ($par3 && $var41 != $var55 && $var41 != ($var35 - 1 | 0) && $var42 != $var57 && $var42 != ($var39 - 1 | 0))
                                                                    $var43 = $var56;
                                                            }
                                                            $var43 = $var43 + (-1) | 0;
                                                        }
                                                        $var42 = $var42 + 1 | 0;
                                                    }
                                                    $var41 = $var41 + 1 | 0;
                                                }
                                                if (!$var58)
                                                    break;
                                            }
                                        }
                                        $var58 = $var55 + var$14 | 0;
                                        $var59 = ($var58 + 0.5 - $par6) / var$38;
                                        $var34 = $var59 * $var59;
                                        $var42 = $var58 >> 4;
                                        var$58 = Long_and(Long_fromInt($var42), Long_create(4294967295, 0));
                                        $var41 = $var58 & 15;
                                        $var44_0 = $var57;
                                    }
                                    $par3 = $var44_0 + var$16 | 0;
                                    $var45 = ($par3 + 0.5 - $par10) / var$38;
                                    $var47 = ((($var55 * 16 | 0) + $var44_0 | 0) * 128 | 0) + $var37 | 0;
                                    $var48 = 0;
                                    $var36 = $var34 + $var45 * $var45;
                                    if ($var36 >= 1.0)
                                        continue;
                                    else
                                        break;
                                }
                                $var49 = $var37 - 1 | 0;
                                $var43 = $par3 >> 4;
                                var$61 = Long_or(var$58, Long_shl(Long_and(Long_fromInt($var43), Long_create(4294967295, 0)), 32));
                                $var52 = Long_lo(Long_xor(var$61, Long_shru(var$61, 32)));
                                $var52 = $var52 ^ ($var52 >>> 20 | 0) ^ ($var52 >>> 12 | 0);
                                $var44 = $var52 ^ ($var52 >>> 7 | 0) ^ ($var52 >>> 4 | 0);
                                $var28 = $par3 & 15;
                            }
                            $var50 = ($var49 + 0.5 - $par8) / $var30;
                            if ($var36 * $this.$field_75046_d.data[$var49] + $var50 * $var50 / 6.0 >= 1.0)
                                continue;
                            var$35 = $par5ArrayOfByte.data;
                            $var52 = var$35[$var47];
                            nms_Block_$callClinit();
                            $par4 = $rt_compare($var52, nms_Block_grass.$blockID);
                            if (!$par4)
                                $var48 = 1;
                            if ($var52 != nms_Block_stone.$blockID && $var52 != nms_Block_dirt.$blockID && $par4)
                                continue;
                            if ($var49 < 10) {
                                var$35[$var47] = nms_Block_lavaMoving.$blockID << 24 >> 24;
                                continue;
                            }
                            var$35[$var47] = 0;
                            if (!$var48)
                                continue;
                            var$63 = $var47 - 1 | 0;
                            if (var$35[var$63] == nms_Block_dirt.$blockID)
                                break;
                        }
                        var$64 = $this.$worldObj9;
                        var$65 = var$64.$chunkProvider;
                        var$66 = var$65.$loadedChunkHashMap.$hashArray.data;
                        $var52 = $var44 & (var$66.length - 1 | 0);
                        var$67 = var$66[$var52];
                        f: {
                            while (true) {
                                if (var$67 === null) {
                                    var$67 = null;
                                    break f;
                                }
                                if (Long_eq(var$67.$key1, var$61))
                                    break;
                                var$67 = var$67.$nextEntry;
                            }
                        }
                        if (var$67 === null ? 0 : 1)
                            break;
                        var$67 = var$64.$provider;
                        var$67 = var$67.$worldChunkMgr;
                        var$67 = var$67.$getBiomeGenAt($var58, $par3);
                    }
                    var$67 = var$66[$var52];
                    m: {
                        while (var$67 !== null) {
                            if (Long_eq(var$67.$key1, var$61)) {
                                var$67 = var$67.$value4;
                                break m;
                            }
                            var$67 = var$67.$nextEntry;
                        }
                        var$67 = null;
                    }
                    var$68 = var$67;
                    if (var$68 !== null)
                        continue;
                    if (var$65.$worldObj0.$findingSpawnPoint)
                        break j;
                    if (var$65.$loadChunkOnProvideRequest)
                        break j;
                    var$68 = var$65.$defaultEmptyChunk;
                }
                return;
            }
            return;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var19$seed, $par3, $par4, $par5ArrayOfByte, $par6, $par8, $par10, $par12, $par13, $par14, $par15, $par16, $par17, var$14, $var20, var$16, $var22, $var24, $var25, $var26, $var48, $var53, $var27, $var28, var$25, $var47, $var19$seed_0, $var32, $var40, var$30, var$31, var$32, var$33, $var33, var$35, $var54, $var30, var$38, $var19$seed_1, var$40, $var34, $var36, $var38, $var50, $var45, $var55, $var35, $var56, $var37, $var57, $var39, $var58, $var41, $var42, $var43, $var44, $var59,
    var$58, $var44_0, $var49, var$61, $var52, var$63, var$64, var$65, var$66, var$67, var$68, $ptr);
},
nms_MapGenRavine_recursiveGenerate = ($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte) => {
    let var$7, $var13, $var14, var$10, var$11, $var7, $var9, $var11, var$15, var$16, $var15, $var16, $var17, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();var$7 = $thread.pop();$par6ArrayOfByte = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1World = $this.$rand1;
        var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        $var13 = Long_lo(Long_shru(var$7, 17));
        while (true) {
            $var14 = $var13 % 50 | 0;
            if ((($var13 - $var14 | 0) + 49 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var13 = Long_lo(Long_shru(var$7, 17));
        }
        if (!$var14) {
            var$10 = $par2 * 16 | 0;
            var$11 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$11;
            $var7 = var$10 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$11, 17)))), 31)) | 0;
            var$7 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $par2 = Long_lo(Long_shru(var$7, 17));
            while (true) {
                $var13 = $par2 % 40 | 0;
                if ((($par2 - $var13 | 0) + 39 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                $par2 = Long_lo(Long_shru(var$7, 17));
            }
            $par2 = $var13 + 8 | 0;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var14 = Long_lo(Long_shru(var$7, 17));
            var$10 = $par2 - 1 | 0;
            if (!($par2 & var$10))
                $var13 = Long_lo(Long_shr(Long_mul(Long_fromInt($par2), Long_fromInt($var14)), 31));
            else
                while (true) {
                    $var13 = $var14 % $par2 | 0;
                    if ((($var14 - $var13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1World.$seed = var$7;
                    $var14 = Long_lo(Long_shru(var$7, 17));
                }
            $var9 = $var13 + 20 | 0;
            $par2 = $par3 * 16 | 0;
            var$7 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$7;
            $var11 = $par2 + Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$7, 17)))), 31)) | 0;
            $var13 = 1;
            $var14 = 0;
            $par3 = 24;
            var$15 = 16;
            if ($var14 < $var13) {
                $par1World = $this.$rand1;
                var$16 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$16;
                $var15 = Long_lo(Long_shru(var$16, $par3)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
                var$7 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                $var16 = (Long_lo(Long_shru(var$7, $par3)) / 1.6777216E7 - 0.5) * 2.0 / 8.0;
                var$7 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$7;
                $var17 = Long_lo(Long_shru(var$7, $par3)) / 1.6777216E7 * 2.0;
                var$16 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$16;
                $var17 = ($var17 + Long_lo(Long_shru(var$16, $par3)) / 1.6777216E7) * 2.0;
                var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$16;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$16, var$15))), 32);
                var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1World.$seed = var$16;
                var$7 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$16, var$15))));
                $par2 = 0;
                var$10 = 0;
                var$20 = 3.0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_MapGenRavine_generateRavine($this, var$7, $par4, $par5, $par6ArrayOfByte, $var7, $var9, $var11, $var17, $var15, $var16, $par2, var$10, var$20);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $var14 + 1 | 0;
        if ($var14 >= $var13)
            return;
        $par1World = $this.$rand1;
        var$16 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$16;
        $var15 = Long_lo(Long_shru(var$16, $par3)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
        var$7 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        $var16 = (Long_lo(Long_shru(var$7, $par3)) / 1.6777216E7 - 0.5) * 2.0 / 8.0;
        var$7 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$7;
        $var17 = Long_lo(Long_shru(var$7, $par3)) / 1.6777216E7 * 2.0;
        var$16 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$16;
        $var17 = ($var17 + Long_lo(Long_shru(var$16, $par3)) / 1.6777216E7) * 2.0;
        var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$16;
        var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$16, var$15))), 32);
        var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$16;
        var$7 = Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$16, var$15))));
        $par2 = 0;
        var$10 = 0;
        var$20 = 3.0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6ArrayOfByte, var$7, $var13, $var14, var$10, var$11, $var7, $var9, $var11, var$15, var$16, $var15, $var16, $var17, var$20, $ptr);
};
function nms_WorldGenLakes() {
    nms_WorldGenerator.call(this);
    this.$blockIndex = 0;
}
let nms_WorldGenLakes_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, var$7, var$8, $var6, var$10, $var35, $var7, $var8, var$14, $var9, var$16, $var11, $var13, $var15, $var17, $var19, $var21, $var22, $var23, $var24, $var26, $var28, $var32, $var34, $var32_0, $var10, $var33, $var10_0, $var12, var$35, var$36, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();$var12 = $thread.pop();$var10_0 = $thread.pop();$var33 = $thread.pop();$var10 = $thread.pop();$var32_0 = $thread.pop();$var34 = $thread.pop();$var32 = $thread.pop();$var28 = $thread.pop();$var26 = $thread.pop();$var24 = $thread.pop();$var23 = $thread.pop();$var22 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();var$16 = $thread.pop();$var9
        = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var35 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par3 + (-8) | 0;
        var$7 = $par5 + (-8) | 0;
        if ($par4 > 5) {
            $ptr = 1;
            continue main;
        }
        if ($par4 <= 4)
            return 0;
        var$8 = $par4 + (-4) | 0;
        $var6 = $rt_createBooleanArray(2048).data;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var35 = 17;
        $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$10, $var35)))), 31)) + 4 | 0;
        $var8 = 0;
        while ($var8 < $var7) {
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var9 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * 6.0 + 3.0;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$16 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$10 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var11 = Long_toNumber(Long_add(var$16, Long_fromInt(Long_lo(Long_shru(var$10, 21))))) * 1.1102230246251565E-16 * 4.0 + 2.0;
            var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var13 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * 6.0 + 3.0;
            var$10 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            var$16 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$10, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var15 = Long_toNumber(Long_add(var$16, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * (16.0 - $var9 - 2.0) + 1.0;
            $var9 = $var9 / 2.0;
            $var15 = $var15 + $var9;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var17 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * (8.0 - $var11 - 4.0) + 2.0;
            $var11 = $var11 / 2.0;
            $var17 = $var17 + $var11;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$16 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var19 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * (16.0 - $var13 - 2.0) + 1.0;
            $var13 = $var13 / 2.0;
            $var19 = $var19 + $var13;
            $var21 = 1;
            while ($var21 < 15) {
                $var22 = 1;
                while ($var22 < 15) {
                    $var23 = 1;
                    while ($var23 < 7) {
                        $var24 = ($var21 - $var15) / $var9;
                        $var26 = ($var23 - $var17) / $var11;
                        $var28 = ($var22 - $var19) / $var13;
                        if ($var24 * $var24 + $var26 * $var26 + $var28 * $var28 < 1.0)
                            $var6[((($var21 * 16 | 0) + $var22 | 0) * 8 | 0) + $var23 | 0] = 1;
                        $var23 = $var23 + 1 | 0;
                    }
                    $var22 = $var22 + 1 | 0;
                }
                $var21 = $var21 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        $var32 = 0;
        a: while (true) {
            if ($var32 >= 16) {
                $var7 = 0;
                b: while (true) {
                    if ($var7 >= 16) {
                        $par3 = 0;
                        c: while (true) {
                            if ($par3 >= 16) {
                                d: {
                                    nms_Block_$callClinit();
                                    $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                                    nms_Material_$callClinit();
                                    if ($var34 === nms_Material_lava) {
                                        $var32 = 0;
                                        var$10 = Long_fromInt(2);
                                        e: while (true) {
                                            if ($var32 >= 16)
                                                break d;
                                            $var32_0 = 0;
                                            while ($var32_0 < 16) {
                                                $var10 = 0;
                                                while ($var10 < 8) {
                                                    f: {
                                                        g: {
                                                            $par3 = $var32 * 16 | 0;
                                                            $par4 = $par3 + $var32_0 | 0;
                                                            $par5 = $par4 * 8 | 0;
                                                            $var33 = $par5 + $var10 | 0;
                                                            if (!$var6[$var33]) {
                                                                if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                    break g;
                                                                if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                    break g;
                                                                if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                                    break g;
                                                                if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                                    break g;
                                                                if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                                    break g;
                                                                if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                                    break g;
                                                            }
                                                            $var33 = 0;
                                                            break f;
                                                        }
                                                        $var33 = 1;
                                                    }
                                                    if ($var33) {
                                                        if ($var10 < 4)
                                                            break e;
                                                        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                        $par2Random.$seed = var$16;
                                                        if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                            break e;
                                                    }
                                                    $var10 = $var10 + 1 | 0;
                                                }
                                                $var32_0 = $var32_0 + 1 | 0;
                                            }
                                            $var32 = $var32 + 1 | 0;
                                        }
                                        $par3 = var$6 + $var32 | 0;
                                        $par4 = var$8 + $var10 | 0;
                                        $par5 = var$7 + $var32_0 | 0;
                                        $ptr = 9;
                                        continue main;
                                    }
                                }
                                h: {
                                    if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                        $par5 = 0;
                                        $var33 = var$8 + 4 | 0;
                                        while (true) {
                                            if ($par5 >= 16)
                                                break h;
                                            $var32_0 = 0;
                                            if ($var32_0 < 16) {
                                                $var10 = var$6 + $par5 | 0;
                                                $var7 = var$7 + $var32_0 | 0;
                                                $par3 = 0;
                                                $ptr = 5;
                                                continue main;
                                            }
                                            $par5 = $par5 + 1 | 0;
                                        }
                                    }
                                }
                                return 1;
                            }
                            $var32_0 = 0;
                            while ($var32_0 < 16) {
                                $var10 = 4;
                                while ($var10 < 8) {
                                    if ($var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                        break c;
                                    $var10 = $var10 + 1 | 0;
                                }
                                $var32_0 = $var32_0 + 1 | 0;
                            }
                            $par3 = $par3 + 1 | 0;
                        }
                        $par4 = var$6 + $par3 | 0;
                        $par5 = var$8 + $var10 | 0;
                        $var33 = $par5 - 1 | 0;
                        $var21 = var$7 + $var32_0 | 0;
                        $ptr = 3;
                        continue main;
                    }
                    $var32 = 0;
                    while ($var32 < 16) {
                        $var10_0 = 0;
                        while ($var10_0 < 8) {
                            if ($var6[((($var7 * 16 | 0) + $var32 | 0) * 8 | 0) + $var10_0 | 0])
                                break b;
                            $var10_0 = $var10_0 + 1 | 0;
                        }
                        $var32 = $var32 + 1 | 0;
                    }
                    $var7 = $var7 + 1 | 0;
                }
                $par3 = var$6 + $var7 | 0;
                $par4 = var$8 + $var10_0 | 0;
                $par5 = var$7 + $var32 | 0;
                $var32_0 = $var10_0 < 4 ? $this.$blockIndex : 0;
                $var10 = 0;
                $var33 = 2;
                $ptr = 4;
                continue main;
            }
            $var32_0 = 0;
            while ($var32_0 < 16) {
                $var10 = 0;
                while ($var10 < 8) {
                    i: {
                        j: {
                            $par3 = $var32 * 16 | 0;
                            $par4 = $par3 + $var32_0 | 0;
                            $par5 = $par4 * 8 | 0;
                            $var33 = $par5 + $var10 | 0;
                            if (!$var6[$var33]) {
                                if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                    break j;
                                if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                    break j;
                                if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                    break j;
                                if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                    break j;
                                if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                    break j;
                                if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                    break j;
                            }
                            $var33 = 0;
                            break i;
                        }
                        $var33 = 1;
                    }
                    if ($var33)
                        break a;
                    $var10 = $var10 + 1 | 0;
                }
                $var32_0 = $var32_0 + 1 | 0;
            }
            $var32 = $var32 + 1 | 0;
        }
        $par3 = var$6 + $var32 | 0;
        $par4 = var$8 + $var10 | 0;
        $par5 = var$7 + $var32_0 | 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$6, $par4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3 ? 0 : 1) {
            $par4 = $par4 + (-1) | 0;
            if ($par4 > 5) {
                continue main;
            }
        }
        if ($par4 <= 4)
            return 0;
        var$8 = $par4 + (-4) | 0;
        $var6 = $rt_createBooleanArray(2048).data;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var35 = 17;
        $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$10, $var35)))), 31)) + 4 | 0;
        $var8 = 0;
        while ($var8 < $var7) {
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var9 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * 6.0 + 3.0;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$16 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$10 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var11 = Long_toNumber(Long_add(var$16, Long_fromInt(Long_lo(Long_shru(var$10, 21))))) * 1.1102230246251565E-16 * 4.0 + 2.0;
            var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var13 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * 6.0 + 3.0;
            var$10 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            var$16 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$10, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var15 = Long_toNumber(Long_add(var$16, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * (16.0 - $var9 - 2.0) + 1.0;
            $var9 = $var9 / 2.0;
            $var15 = $var15 + $var9;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $var17 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$14, 21))))) * 1.1102230246251565E-16 * (8.0 - $var11 - 4.0) + 2.0;
            $var11 = $var11 / 2.0;
            $var17 = $var17 + $var11;
            var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            var$10 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$14, 22))), 27);
            var$16 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var19 = Long_toNumber(Long_add(var$10, Long_fromInt(Long_lo(Long_shru(var$16, 21))))) * 1.1102230246251565E-16 * (16.0 - $var13 - 2.0) + 1.0;
            $var13 = $var13 / 2.0;
            $var19 = $var19 + $var13;
            $var21 = 1;
            while ($var21 < 15) {
                $var22 = 1;
                while ($var22 < 15) {
                    $var23 = 1;
                    while ($var23 < 7) {
                        $var24 = ($var21 - $var15) / $var9;
                        $var26 = ($var23 - $var17) / $var11;
                        $var28 = ($var22 - $var19) / $var13;
                        if ($var24 * $var24 + $var26 * $var26 + $var28 * $var28 < 1.0)
                            $var6[((($var21 * 16 | 0) + $var22 | 0) * 8 | 0) + $var23 | 0] = 1;
                        $var23 = $var23 + 1 | 0;
                    }
                    $var22 = $var22 + 1 | 0;
                }
                $var21 = $var21 + 1 | 0;
            }
            $var8 = $var8 + 1 | 0;
        }
        $var32 = 0;
        k: while (true) {
            if ($var32 >= 16) {
                $var7 = 0;
                l: while (true) {
                    if ($var7 >= 16) {
                        $par3 = 0;
                        m: while (true) {
                            if ($par3 >= 16) {
                                n: {
                                    nms_Block_$callClinit();
                                    $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                                    nms_Material_$callClinit();
                                    if ($var34 === nms_Material_lava) {
                                        $var32 = 0;
                                        var$10 = Long_fromInt(2);
                                        o: while (true) {
                                            if ($var32 >= 16)
                                                break n;
                                            $var32_0 = 0;
                                            while ($var32_0 < 16) {
                                                $var10 = 0;
                                                while ($var10 < 8) {
                                                    p: {
                                                        q: {
                                                            $par3 = $var32 * 16 | 0;
                                                            $par4 = $par3 + $var32_0 | 0;
                                                            $par5 = $par4 * 8 | 0;
                                                            $var33 = $par5 + $var10 | 0;
                                                            if (!$var6[$var33]) {
                                                                if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                    break q;
                                                                if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                    break q;
                                                                if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                                    break q;
                                                                if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                                    break q;
                                                                if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                                    break q;
                                                                if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                                    break q;
                                                            }
                                                            $var33 = 0;
                                                            break p;
                                                        }
                                                        $var33 = 1;
                                                    }
                                                    if ($var33) {
                                                        if ($var10 < 4)
                                                            break o;
                                                        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                        $par2Random.$seed = var$16;
                                                        if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                            break o;
                                                    }
                                                    $var10 = $var10 + 1 | 0;
                                                }
                                                $var32_0 = $var32_0 + 1 | 0;
                                            }
                                            $var32 = $var32 + 1 | 0;
                                        }
                                        $par3 = var$6 + $var32 | 0;
                                        $par4 = var$8 + $var10 | 0;
                                        $par5 = var$7 + $var32_0 | 0;
                                        $ptr = 9;
                                        continue main;
                                    }
                                }
                                r: {
                                    if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                        $par5 = 0;
                                        $var33 = var$8 + 4 | 0;
                                        while (true) {
                                            if ($par5 >= 16)
                                                break r;
                                            $var32_0 = 0;
                                            if ($var32_0 < 16) {
                                                $var10 = var$6 + $par5 | 0;
                                                $var7 = var$7 + $var32_0 | 0;
                                                $par3 = 0;
                                                $ptr = 5;
                                                continue main;
                                            }
                                            $par5 = $par5 + 1 | 0;
                                        }
                                    }
                                }
                                return 1;
                            }
                            $var32_0 = 0;
                            while ($var32_0 < 16) {
                                $var10 = 4;
                                while ($var10 < 8) {
                                    if ($var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                        break m;
                                    $var10 = $var10 + 1 | 0;
                                }
                                $var32_0 = $var32_0 + 1 | 0;
                            }
                            $par3 = $par3 + 1 | 0;
                        }
                        $par4 = var$6 + $par3 | 0;
                        $par5 = var$8 + $var10 | 0;
                        $var33 = $par5 - 1 | 0;
                        $var21 = var$7 + $var32_0 | 0;
                        $ptr = 3;
                        continue main;
                    }
                    $var32 = 0;
                    while ($var32 < 16) {
                        $var10_0 = 0;
                        while ($var10_0 < 8) {
                            if ($var6[((($var7 * 16 | 0) + $var32 | 0) * 8 | 0) + $var10_0 | 0])
                                break l;
                            $var10_0 = $var10_0 + 1 | 0;
                        }
                        $var32 = $var32 + 1 | 0;
                    }
                    $var7 = $var7 + 1 | 0;
                }
                $par3 = var$6 + $var7 | 0;
                $par4 = var$8 + $var10_0 | 0;
                $par5 = var$7 + $var32 | 0;
                $var32_0 = $var10_0 < 4 ? $this.$blockIndex : 0;
                $var10 = 0;
                $var33 = 2;
                $ptr = 4;
                continue main;
            }
            $var32_0 = 0;
            while ($var32_0 < 16) {
                $var10 = 0;
                while ($var10 < 8) {
                    s: {
                        t: {
                            $par3 = $var32 * 16 | 0;
                            $par4 = $par3 + $var32_0 | 0;
                            $par5 = $par4 * 8 | 0;
                            $var33 = $par5 + $var10 | 0;
                            if (!$var6[$var33]) {
                                if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                    break t;
                                if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                    break t;
                                if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                    break t;
                                if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                    break t;
                                if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                    break t;
                                if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                    break t;
                            }
                            $var33 = 0;
                            break s;
                        }
                        $var33 = 1;
                    }
                    if ($var33)
                        break k;
                    $var10 = $var10 + 1 | 0;
                }
                $var32_0 = $var32_0 + 1 | 0;
            }
            $var32 = $var32 + 1 | 0;
        }
        $par3 = var$6 + $var32 | 0;
        $par4 = var$8 + $var10 | 0;
        $par5 = var$7 + $var32_0 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $tmp;
        if (!$var33) {
            nms_Material_$callClinit();
            $var12 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var12 = nms_Block_blocksList.data[$var33].$blockMaterial;
        }
        $var33 = $rt_compare($var10, 4);
        if ($var33 >= 0 && $var12.$isLiquid())
            return 0;
        if ($var33 < 0 && !$var12.$isSolid()) {
            $ptr = 8;
            continue main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $var32 = $var32 + 1 | 0;
                    if ($var32 >= 16) {
                        $var7 = 0;
                        u: while (true) {
                            if ($var7 >= 16) {
                                $par3 = 0;
                                v: while (true) {
                                    if ($par3 >= 16) {
                                        c: {
                                            nms_Block_$callClinit();
                                            $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                                            nms_Material_$callClinit();
                                            if ($var34 === nms_Material_lava) {
                                                $var32 = 0;
                                                var$10 = Long_fromInt(2);
                                                w: while (true) {
                                                    if ($var32 >= 16)
                                                        break c;
                                                    $var32_0 = 0;
                                                    while ($var32_0 < 16) {
                                                        $var10 = 0;
                                                        while ($var10 < 8) {
                                                            e: {
                                                                n: {
                                                                    $par3 = $var32 * 16 | 0;
                                                                    $par4 = $par3 + $var32_0 | 0;
                                                                    $par5 = $par4 * 8 | 0;
                                                                    $var33 = $par5 + $var10 | 0;
                                                                    if (!$var6[$var33]) {
                                                                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                            break n;
                                                                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                            break n;
                                                                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                                            break n;
                                                                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                                            break n;
                                                                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                                            break n;
                                                                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                                            break n;
                                                                    }
                                                                    $var33 = 0;
                                                                    break e;
                                                                }
                                                                $var33 = 1;
                                                            }
                                                            if ($var33) {
                                                                if ($var10 < 4)
                                                                    break w;
                                                                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                                $par2Random.$seed = var$16;
                                                                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                                    break w;
                                                            }
                                                            $var10 = $var10 + 1 | 0;
                                                        }
                                                        $var32_0 = $var32_0 + 1 | 0;
                                                    }
                                                    $var32 = $var32 + 1 | 0;
                                                }
                                                $par3 = var$6 + $var32 | 0;
                                                $par4 = var$8 + $var10 | 0;
                                                $par5 = var$7 + $var32_0 | 0;
                                                $ptr = 9;
                                                continue main;
                                            }
                                        }
                                        x: {
                                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                                $par5 = 0;
                                                $var33 = var$8 + 4 | 0;
                                                while (true) {
                                                    if ($par5 >= 16)
                                                        break x;
                                                    $var32_0 = 0;
                                                    if ($var32_0 < 16) {
                                                        $var10 = var$6 + $par5 | 0;
                                                        $var7 = var$7 + $var32_0 | 0;
                                                        $par3 = 0;
                                                        $ptr = 5;
                                                        continue main;
                                                    }
                                                    $par5 = $par5 + 1 | 0;
                                                }
                                            }
                                        }
                                        return 1;
                                    }
                                    $var32_0 = 0;
                                    while ($var32_0 < 16) {
                                        $var10 = 4;
                                        while ($var10 < 8) {
                                            if ($var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                break v;
                                            $var10 = $var10 + 1 | 0;
                                        }
                                        $var32_0 = $var32_0 + 1 | 0;
                                    }
                                    $par3 = $par3 + 1 | 0;
                                }
                                $par4 = var$6 + $par3 | 0;
                                $par5 = var$8 + $var10 | 0;
                                $var33 = $par5 - 1 | 0;
                                $var21 = var$7 + $var32_0 | 0;
                                $ptr = 3;
                                continue main;
                            }
                            $var32 = 0;
                            while ($var32 < 16) {
                                $var10_0 = 0;
                                while ($var10_0 < 8) {
                                    if ($var6[((($var7 * 16 | 0) + $var32 | 0) * 8 | 0) + $var10_0 | 0])
                                        break u;
                                    $var10_0 = $var10_0 + 1 | 0;
                                }
                                $var32 = $var32 + 1 | 0;
                            }
                            $var7 = $var7 + 1 | 0;
                        }
                        $par3 = var$6 + $var7 | 0;
                        $par4 = var$8 + $var10_0 | 0;
                        $par5 = var$7 + $var32 | 0;
                        $var32_0 = $var10_0 < 4 ? $this.$blockIndex : 0;
                        $var10 = 0;
                        $var33 = 2;
                        $ptr = 4;
                        continue main;
                    }
                    $var32_0 = 0;
                }
                $var10 = 0;
            }
            a: {
                y: {
                    $par3 = $var32 * 16 | 0;
                    $par4 = $par3 + $var32_0 | 0;
                    $par5 = $par4 * 8 | 0;
                    $var33 = $par5 + $var10 | 0;
                    if (!$var6[$var33]) {
                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break y;
                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break y;
                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                            break y;
                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                            break y;
                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                            break y;
                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                            break y;
                    }
                    $var33 = 0;
                    break a;
                }
                $var33 = 1;
            }
            if (!$var33)
                continue;
            else
                break;
        }
        $par3 = var$6 + $var32 | 0;
        $par4 = var$8 + $var10 | 0;
        $par5 = var$7 + $var32_0 | 0;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $par4, $var33, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if ($var7 == nms_Block_dirt.$blockID) {
            $var34 = nms_EnumSkyBlock_Sky;
            $ptr = 6;
            continue main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $par3 = $par3 + 1 | 0;
                    if ($par3 >= 16) {
                        z: {
                            nms_Block_$callClinit();
                            $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                            nms_Material_$callClinit();
                            if ($var34 === nms_Material_lava) {
                                $var32 = 0;
                                var$10 = Long_fromInt(2);
                                ba: while (true) {
                                    if ($var32 >= 16)
                                        break z;
                                    $var32_0 = 0;
                                    while ($var32_0 < 16) {
                                        $var10 = 0;
                                        while ($var10 < 8) {
                                            k: {
                                                bb: {
                                                    $par3 = $var32 * 16 | 0;
                                                    $par4 = $par3 + $var32_0 | 0;
                                                    $par5 = $par4 * 8 | 0;
                                                    $var33 = $par5 + $var10 | 0;
                                                    if (!$var6[$var33]) {
                                                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break bb;
                                                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break bb;
                                                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                            break bb;
                                                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                            break bb;
                                                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                            break bb;
                                                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                            break bb;
                                                    }
                                                    $var33 = 0;
                                                    break k;
                                                }
                                                $var33 = 1;
                                            }
                                            if ($var33) {
                                                if ($var10 < 4)
                                                    break ba;
                                                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$16;
                                                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                    break ba;
                                            }
                                            $var10 = $var10 + 1 | 0;
                                        }
                                        $var32_0 = $var32_0 + 1 | 0;
                                    }
                                    $var32 = $var32 + 1 | 0;
                                }
                                $par3 = var$6 + $var32 | 0;
                                $par4 = var$8 + $var10 | 0;
                                $par5 = var$7 + $var32_0 | 0;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        bc: {
                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                $par5 = 0;
                                $var33 = var$8 + 4 | 0;
                                while (true) {
                                    if ($par5 >= 16)
                                        break bc;
                                    $var32_0 = 0;
                                    if ($var32_0 < 16) {
                                        $var10 = var$6 + $par5 | 0;
                                        $var7 = var$7 + $var32_0 | 0;
                                        $par3 = 0;
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $par5 = $par5 + 1 | 0;
                                }
                            }
                        }
                        return 1;
                    }
                    $var32_0 = 0;
                }
                $var10 = 4;
            }
            if (!$var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                continue;
            else
                break;
        }
        $par4 = var$6 + $par3 | 0;
        $par5 = var$8 + $var10 | 0;
        $var33 = $par5 - 1 | 0;
        $var21 = var$7 + $var32_0 | 0;
        continue main;
    case 4:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $var32_0, $var10, $var33);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var10_0 = $var10_0 + 1 | 0;
            while ($var10_0 >= 8) {
                $var32 = $var32 + 1 | 0;
                while ($var32 >= 16) {
                    $var7 = $var7 + 1 | 0;
                    if ($var7 >= 16) {
                        $par3 = 0;
                        bd: while (true) {
                            if ($par3 >= 16) {
                                bb: {
                                    nms_Block_$callClinit();
                                    $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                                    nms_Material_$callClinit();
                                    if ($var34 === nms_Material_lava) {
                                        $var32 = 0;
                                        var$10 = Long_fromInt(2);
                                        i: while (true) {
                                            if ($var32 >= 16)
                                                break bb;
                                            $var32_0 = 0;
                                            while ($var32_0 < 16) {
                                                $var10 = 0;
                                                while ($var10 < 8) {
                                                    be: {
                                                        u: {
                                                            $par3 = $var32 * 16 | 0;
                                                            $par4 = $par3 + $var32_0 | 0;
                                                            $par5 = $par4 * 8 | 0;
                                                            $var33 = $par5 + $var10 | 0;
                                                            if (!$var6[$var33]) {
                                                                if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                    break u;
                                                                if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                    break u;
                                                                if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                                    break u;
                                                                if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                                    break u;
                                                                if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                                    break u;
                                                                if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                                    break u;
                                                            }
                                                            $var33 = 0;
                                                            break be;
                                                        }
                                                        $var33 = 1;
                                                    }
                                                    if ($var33) {
                                                        if ($var10 < 4)
                                                            break i;
                                                        var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                        $par2Random.$seed = var$16;
                                                        if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                            break i;
                                                    }
                                                    $var10 = $var10 + 1 | 0;
                                                }
                                                $var32_0 = $var32_0 + 1 | 0;
                                            }
                                            $var32 = $var32 + 1 | 0;
                                        }
                                        $par3 = var$6 + $var32 | 0;
                                        $par4 = var$8 + $var10 | 0;
                                        $par5 = var$7 + $var32_0 | 0;
                                        $ptr = 9;
                                        continue main;
                                    }
                                }
                                bf: {
                                    if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                        $par5 = 0;
                                        $var33 = var$8 + 4 | 0;
                                        while (true) {
                                            if ($par5 >= 16)
                                                break bf;
                                            $var32_0 = 0;
                                            if ($var32_0 < 16) {
                                                $var10 = var$6 + $par5 | 0;
                                                $var7 = var$7 + $var32_0 | 0;
                                                $par3 = 0;
                                                $ptr = 5;
                                                continue main;
                                            }
                                            $par5 = $par5 + 1 | 0;
                                        }
                                    }
                                }
                                return 1;
                            }
                            $var32_0 = 0;
                            while ($var32_0 < 16) {
                                $var10 = 4;
                                while ($var10 < 8) {
                                    if ($var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                        break bd;
                                    $var10 = $var10 + 1 | 0;
                                }
                                $var32_0 = $var32_0 + 1 | 0;
                            }
                            $par3 = $par3 + 1 | 0;
                        }
                        $par4 = var$6 + $par3 | 0;
                        $par5 = var$8 + $var10 | 0;
                        $var33 = $par5 - 1 | 0;
                        $var21 = var$7 + $var32_0 | 0;
                        $ptr = 3;
                        continue main;
                    }
                    $var32 = 0;
                }
                $var10_0 = 0;
            }
            if (!$var6[((($var7 * 16 | 0) + $var32 | 0) * 8 | 0) + $var10_0 | 0])
                continue;
            else
                break;
        }
        $par3 = var$6 + $var7 | 0;
        $par4 = var$8 + $var10_0 | 0;
        $par5 = var$7 + $var32 | 0;
        $var32_0 = $var10_0 < 4 ? $this.$blockIndex : 0;
        $var10 = 0;
        $var33 = 2;
        continue main;
    case 5:
        $tmp = nms_World_canBlockFreeze($par1World, $var10, $var33, $var7, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3) {
            $var8 = nms_Block_ice.$blockID;
            $par3 = 0;
            $par4 = 2;
            $ptr = 7;
            continue main;
        }
        $var32_0 = $var32_0 + 1 | 0;
        while (true) {
            if ($var32_0 < 16) {
                $var10 = var$6 + $par5 | 0;
                $var7 = var$7 + $var32_0 | 0;
                $par3 = 0;
                continue main;
            }
            $par5 = $par5 + 1 | 0;
            if ($par5 >= 16)
                break;
            $var32_0 = 0;
        }
        return 1;
    case 6:
        $tmp = nms_World_getSavedLightValue($par1World, $var34, $par4, $par5, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if ($par5 > 0) {
            $var7 = $par4 >> 4;
            $var8 = $var21 >> 4;
            var$35 = $par1World.$chunkProvider;
            $var34 = var$35.$loadedChunkHashMap;
            var$16 = Long_or(Long_and(Long_fromInt($var7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var8), Long_create(4294967295, 0)), 32));
            $par5 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
            $par5 = $par5 ^ ($par5 >>> 20 | 0) ^ ($par5 >>> 12 | 0);
            $var10_0 = $par5 ^ ($par5 >>> 7 | 0) ^ ($par5 >>> 4 | 0);
            var$36 = $var34.$hashArray.data;
            $var32 = $var10_0 & (var$36.length - 1 | 0);
            $var34 = var$36[$var32];
            bg: {
                while (true) {
                    if ($var34 === null) {
                        $var34 = null;
                        break bg;
                    }
                    if (Long_eq($var34.$key1, var$16))
                        break;
                    $var34 = $var34.$nextEntry;
                }
            }
            $par5 = $var34 === null ? 0 : 1;
            bd: {
                a: {
                    if ($par5) {
                        $var34 = var$36[$var32];
                        bb: {
                            while ($var34 !== null) {
                                if (Long_eq($var34.$key1, var$16)) {
                                    $var34 = $var34.$value4;
                                    break bb;
                                }
                                $var34 = $var34.$nextEntry;
                            }
                            $var34 = null;
                        }
                        $var12 = $var34;
                        if ($var12 === null) {
                            if (var$35.$worldObj0.$findingSpawnPoint)
                                break bd;
                            if (var$35.$loadChunkOnProvideRequest)
                                break bd;
                            $var12 = var$35.$defaultEmptyChunk;
                        }
                        if ($var12 !== null) {
                            $var34 = nms_Chunk_getBiomeGenForWorldCoords($var12, $par4 & 15, $var21 & 15, $par1World.$provider.$worldChunkMgr);
                            break a;
                        }
                    }
                    $var34 = $par1World.$provider.$worldChunkMgr.$getBiomeGenAt($par4, $var21);
                }
                $par5 = $var34.$topBlock;
                $var7 = nms_Block_mycelium.$blockID;
                if ($par5 == $var7) {
                    $par5 = 0;
                    $var8 = 2;
                    $ptr = 12;
                    continue main;
                }
                $par5 = nms_Block_grass.$blockID;
                $var7 = 0;
                $var8 = 2;
                $ptr = 11;
                continue main;
            }
            $ptr = 13;
            continue main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $par3 = $par3 + 1 | 0;
                    if ($par3 >= 16) {
                        b: {
                            nms_Block_$callClinit();
                            $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                            nms_Material_$callClinit();
                            if ($var34 === nms_Material_lava) {
                                $var32 = 0;
                                var$10 = Long_fromInt(2);
                                bh: while (true) {
                                    if ($var32 >= 16)
                                        break b;
                                    $var32_0 = 0;
                                    while ($var32_0 < 16) {
                                        $var10 = 0;
                                        while ($var10 < 8) {
                                            bf: {
                                                bi: {
                                                    $par3 = $var32 * 16 | 0;
                                                    $par4 = $par3 + $var32_0 | 0;
                                                    $par5 = $par4 * 8 | 0;
                                                    $var33 = $par5 + $var10 | 0;
                                                    if (!$var6[$var33]) {
                                                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break bi;
                                                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break bi;
                                                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                            break bi;
                                                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                            break bi;
                                                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                            break bi;
                                                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                            break bi;
                                                    }
                                                    $var33 = 0;
                                                    break bf;
                                                }
                                                $var33 = 1;
                                            }
                                            if ($var33) {
                                                if ($var10 < 4)
                                                    break bh;
                                                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$16;
                                                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                    break bh;
                                            }
                                            $var10 = $var10 + 1 | 0;
                                        }
                                        $var32_0 = $var32_0 + 1 | 0;
                                    }
                                    $var32 = $var32 + 1 | 0;
                                }
                                $par3 = var$6 + $var32 | 0;
                                $par4 = var$8 + $var10 | 0;
                                $par5 = var$7 + $var32_0 | 0;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        bj: {
                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                $par5 = 0;
                                $var33 = var$8 + 4 | 0;
                                while (true) {
                                    if ($par5 >= 16)
                                        break bj;
                                    $var32_0 = 0;
                                    if ($var32_0 < 16) {
                                        $var10 = var$6 + $par5 | 0;
                                        $var7 = var$7 + $var32_0 | 0;
                                        $par3 = 0;
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $par5 = $par5 + 1 | 0;
                                }
                            }
                        }
                        return 1;
                    }
                    $var32_0 = 0;
                }
                $var10 = 4;
            }
            if (!$var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                continue;
            else
                break;
        }
        $par4 = var$6 + $par3 | 0;
        $par5 = var$8 + $var10 | 0;
        $var33 = $par5 - 1 | 0;
        $var21 = var$7 + $var32_0 | 0;
        $ptr = 3;
        continue main;
    case 7:
        nms_World_setBlock($par1World, $var10, $var33, $var7, $var8, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var32_0 = $var32_0 + 1 | 0;
        while (true) {
            if ($var32_0 < 16) {
                $var10 = var$6 + $par5 | 0;
                $var7 = var$7 + $var32_0 | 0;
                $par3 = 0;
                $ptr = 5;
                continue main;
            }
            $par5 = $par5 + 1 | 0;
            if ($par5 >= 16)
                break;
            $var32_0 = 0;
        }
        return 1;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if ($par3 != $this.$blockIndex)
            return 0;
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $var32 = $var32 + 1 | 0;
                    if ($var32 >= 16) {
                        $var7 = 0;
                        s: while (true) {
                            if ($var7 >= 16) {
                                $par3 = 0;
                                b: while (true) {
                                    if ($par3 >= 16) {
                                        bk: {
                                            nms_Block_$callClinit();
                                            $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                                            nms_Material_$callClinit();
                                            if ($var34 === nms_Material_lava) {
                                                $var32 = 0;
                                                var$10 = Long_fromInt(2);
                                                bf: while (true) {
                                                    if ($var32 >= 16)
                                                        break bk;
                                                    $var32_0 = 0;
                                                    while ($var32_0 < 16) {
                                                        $var10 = 0;
                                                        while ($var10 < 8) {
                                                            m: {
                                                                bl: {
                                                                    $par3 = $var32 * 16 | 0;
                                                                    $par4 = $par3 + $var32_0 | 0;
                                                                    $par5 = $par4 * 8 | 0;
                                                                    $var33 = $par5 + $var10 | 0;
                                                                    if (!$var6[$var33]) {
                                                                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                            break bl;
                                                                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                                            break bl;
                                                                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                                            break bl;
                                                                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                                            break bl;
                                                                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                                            break bl;
                                                                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                                            break bl;
                                                                    }
                                                                    $var33 = 0;
                                                                    break m;
                                                                }
                                                                $var33 = 1;
                                                            }
                                                            if ($var33) {
                                                                if ($var10 < 4)
                                                                    break bf;
                                                                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                                $par2Random.$seed = var$16;
                                                                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                                    break bf;
                                                            }
                                                            $var10 = $var10 + 1 | 0;
                                                        }
                                                        $var32_0 = $var32_0 + 1 | 0;
                                                    }
                                                    $var32 = $var32 + 1 | 0;
                                                }
                                                $par3 = var$6 + $var32 | 0;
                                                $par4 = var$8 + $var10 | 0;
                                                $par5 = var$7 + $var32_0 | 0;
                                                $ptr = 9;
                                                continue main;
                                            }
                                        }
                                        q: {
                                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                                $par5 = 0;
                                                $var33 = var$8 + 4 | 0;
                                                while (true) {
                                                    if ($par5 >= 16)
                                                        break q;
                                                    $var32_0 = 0;
                                                    if ($var32_0 < 16) {
                                                        $var10 = var$6 + $par5 | 0;
                                                        $var7 = var$7 + $var32_0 | 0;
                                                        $par3 = 0;
                                                        $ptr = 5;
                                                        continue main;
                                                    }
                                                    $par5 = $par5 + 1 | 0;
                                                }
                                            }
                                        }
                                        return 1;
                                    }
                                    $var32_0 = 0;
                                    while ($var32_0 < 16) {
                                        $var10 = 4;
                                        while ($var10 < 8) {
                                            if ($var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                break b;
                                            $var10 = $var10 + 1 | 0;
                                        }
                                        $var32_0 = $var32_0 + 1 | 0;
                                    }
                                    $par3 = $par3 + 1 | 0;
                                }
                                $par4 = var$6 + $par3 | 0;
                                $par5 = var$8 + $var10 | 0;
                                $var33 = $par5 - 1 | 0;
                                $var21 = var$7 + $var32_0 | 0;
                                $ptr = 3;
                                continue main;
                            }
                            $var32 = 0;
                            while ($var32 < 16) {
                                $var10_0 = 0;
                                while ($var10_0 < 8) {
                                    if ($var6[((($var7 * 16 | 0) + $var32 | 0) * 8 | 0) + $var10_0 | 0])
                                        break s;
                                    $var10_0 = $var10_0 + 1 | 0;
                                }
                                $var32 = $var32 + 1 | 0;
                            }
                            $var7 = $var7 + 1 | 0;
                        }
                        $par3 = var$6 + $var7 | 0;
                        $par4 = var$8 + $var10_0 | 0;
                        $par5 = var$7 + $var32 | 0;
                        $var32_0 = $var10_0 < 4 ? $this.$blockIndex : 0;
                        $var10 = 0;
                        $var33 = 2;
                        $ptr = 4;
                        continue main;
                    }
                    $var32_0 = 0;
                }
                $var10 = 0;
            }
            z: {
                ba: {
                    $par3 = $var32 * 16 | 0;
                    $par4 = $par3 + $var32_0 | 0;
                    $par5 = $par4 * 8 | 0;
                    $var33 = $par5 + $var10 | 0;
                    if (!$var6[$var33]) {
                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break ba;
                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break ba;
                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                            break ba;
                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                            break ba;
                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                            break ba;
                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                            break ba;
                    }
                    $var33 = 0;
                    break z;
                }
                $var33 = 1;
            }
            if (!$var33)
                continue;
            else
                break;
        }
        $par3 = var$6 + $var32 | 0;
        $par4 = var$8 + $var10 | 0;
        $par5 = var$7 + $var32_0 | 0;
        $ptr = 2;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var33 = $tmp;
        if ((!$var33 ? nms_Material_air : nms_Block_blocksList.data[$var33].$blockMaterial).$isSolid()) {
            $var33 = nms_Block_stone.$blockID;
            $var7 = 0;
            $var8 = 2;
            $ptr = 10;
            continue main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $var32 = $var32 + 1 | 0;
                    if ($var32 >= 16) {
                        u: {
                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                $par5 = 0;
                                $var33 = var$8 + 4 | 0;
                                while (true) {
                                    if ($par5 >= 16)
                                        break u;
                                    $var32_0 = 0;
                                    if ($var32_0 < 16) {
                                        $var10 = var$6 + $par5 | 0;
                                        $var7 = var$7 + $var32_0 | 0;
                                        $par3 = 0;
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $par5 = $par5 + 1 | 0;
                                }
                            }
                        }
                        return 1;
                    }
                    $var32_0 = 0;
                }
                $var10 = 0;
            }
            bd: {
                a: {
                    $par3 = $var32 * 16 | 0;
                    $par4 = $par3 + $var32_0 | 0;
                    $par5 = $par4 * 8 | 0;
                    $var33 = $par5 + $var10 | 0;
                    if (!$var6[$var33]) {
                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break a;
                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break a;
                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                            break a;
                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                            break a;
                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                            break a;
                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                            break a;
                    }
                    $var33 = 0;
                    break bd;
                }
                $var33 = 1;
            }
            if (!$var33)
                continue;
            if ($var10 < 4)
                break;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            if (!Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                continue;
            else
                break;
        }
        $par3 = var$6 + $var32 | 0;
        $par4 = var$8 + $var10 | 0;
        $par5 = var$7 + $var32_0 | 0;
        continue main;
    case 10:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $var33, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $var32 = $var32 + 1 | 0;
                    if ($var32 >= 16) {
                        s: {
                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                $par5 = 0;
                                $var33 = var$8 + 4 | 0;
                                while (true) {
                                    if ($par5 >= 16)
                                        break s;
                                    $var32_0 = 0;
                                    if ($var32_0 < 16) {
                                        $var10 = var$6 + $par5 | 0;
                                        $var7 = var$7 + $var32_0 | 0;
                                        $par3 = 0;
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $par5 = $par5 + 1 | 0;
                                }
                            }
                        }
                        return 1;
                    }
                    $var32_0 = 0;
                }
                $var10 = 0;
            }
            bm: {
                z: {
                    $par3 = $var32 * 16 | 0;
                    $par4 = $par3 + $var32_0 | 0;
                    $par5 = $par4 * 8 | 0;
                    $var33 = $par5 + $var10 | 0;
                    if (!$var6[$var33]) {
                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break z;
                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                            break z;
                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                            break z;
                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                            break z;
                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                            break z;
                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                            break z;
                    }
                    $var33 = 0;
                    break bm;
                }
                $var33 = 1;
            }
            if (!$var33)
                continue;
            if ($var10 < 4)
                break;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            if (!Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                continue;
            else
                break;
        }
        $par3 = var$6 + $var32 | 0;
        $par4 = var$8 + $var10 | 0;
        $par5 = var$7 + $var32_0 | 0;
        $ptr = 9;
        continue main;
    case 11:
        nms_World_setBlock($par1World, $par4, $var33, $var21, $par5, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $par3 = $par3 + 1 | 0;
                    if ($par3 >= 16) {
                        bm: {
                            nms_Block_$callClinit();
                            $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                            nms_Material_$callClinit();
                            if ($var34 === nms_Material_lava) {
                                $var32 = 0;
                                var$10 = Long_fromInt(2);
                                z: while (true) {
                                    if ($var32 >= 16)
                                        break bm;
                                    $var32_0 = 0;
                                    while ($var32_0 < 16) {
                                        $var10 = 0;
                                        while ($var10 < 8) {
                                            y: {
                                                k: {
                                                    $par3 = $var32 * 16 | 0;
                                                    $par4 = $par3 + $var32_0 | 0;
                                                    $par5 = $par4 * 8 | 0;
                                                    $var33 = $par5 + $var10 | 0;
                                                    if (!$var6[$var33]) {
                                                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                            break k;
                                                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                            break k;
                                                    }
                                                    $var33 = 0;
                                                    break y;
                                                }
                                                $var33 = 1;
                                            }
                                            if ($var33) {
                                                if ($var10 < 4)
                                                    break z;
                                                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$16;
                                                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                    break z;
                                            }
                                            $var10 = $var10 + 1 | 0;
                                        }
                                        $var32_0 = $var32_0 + 1 | 0;
                                    }
                                    $var32 = $var32 + 1 | 0;
                                }
                                $par3 = var$6 + $var32 | 0;
                                $par4 = var$8 + $var10 | 0;
                                $par5 = var$7 + $var32_0 | 0;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        bn: {
                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                $par5 = 0;
                                $var33 = var$8 + 4 | 0;
                                while (true) {
                                    if ($par5 >= 16)
                                        break bn;
                                    $var32_0 = 0;
                                    if ($var32_0 < 16) {
                                        $var10 = var$6 + $par5 | 0;
                                        $var7 = var$7 + $var32_0 | 0;
                                        $par3 = 0;
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $par5 = $par5 + 1 | 0;
                                }
                            }
                        }
                        return 1;
                    }
                    $var32_0 = 0;
                }
                $var10 = 4;
            }
            if (!$var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                continue;
            else
                break;
        }
        $par4 = var$6 + $par3 | 0;
        $par5 = var$8 + $var10 | 0;
        $var33 = $par5 - 1 | 0;
        $var21 = var$7 + $var32_0 | 0;
        $ptr = 3;
        continue main;
    case 12:
        nms_World_setBlock($par1World, $par4, $var33, $var21, $var7, $par5, $var8);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var10 = $var10 + 1 | 0;
            while ($var10 >= 8) {
                $var32_0 = $var32_0 + 1 | 0;
                while ($var32_0 >= 16) {
                    $par3 = $par3 + 1 | 0;
                    if ($par3 >= 16) {
                        bm: {
                            nms_Block_$callClinit();
                            $var34 = nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial;
                            nms_Material_$callClinit();
                            if ($var34 === nms_Material_lava) {
                                $var32 = 0;
                                var$10 = Long_fromInt(2);
                                z: while (true) {
                                    if ($var32 >= 16)
                                        break bm;
                                    $var32_0 = 0;
                                    while ($var32_0 < 16) {
                                        $var10 = 0;
                                        while ($var10 < 8) {
                                            y: {
                                                k: {
                                                    $par3 = $var32 * 16 | 0;
                                                    $par4 = $par3 + $var32_0 | 0;
                                                    $par5 = $par4 * 8 | 0;
                                                    $var33 = $par5 + $var10 | 0;
                                                    if (!$var6[$var33]) {
                                                        if ($var32 < 15 && $var6[(((($var32 + 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var32 > 0 && $var6[(((($var32 - 1 | 0) * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var32_0 < 15 && $var6[(($par4 + 1 | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var32_0 > 0 && $var6[(($par3 + ($var32_0 - 1 | 0) | 0) * 8 | 0) + $var10 | 0])
                                                            break k;
                                                        if ($var10 < 7 && $var6[$var33 + 1 | 0])
                                                            break k;
                                                        if ($var10 > 0 && $var6[$par5 + ($var10 - 1 | 0) | 0])
                                                            break k;
                                                    }
                                                    $var33 = 0;
                                                    break y;
                                                }
                                                $var33 = 1;
                                            }
                                            if ($var33) {
                                                if ($var10 < 4)
                                                    break z;
                                                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$16;
                                                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$16, $var35)))), 31)))
                                                    break z;
                                            }
                                            $var10 = $var10 + 1 | 0;
                                        }
                                        $var32_0 = $var32_0 + 1 | 0;
                                    }
                                    $var32 = $var32 + 1 | 0;
                                }
                                $par3 = var$6 + $var32 | 0;
                                $par4 = var$8 + $var10 | 0;
                                $par5 = var$7 + $var32_0 | 0;
                                $ptr = 9;
                                continue main;
                            }
                        }
                        bn: {
                            if (nms_Block_blocksList.data[$this.$blockIndex].$blockMaterial === nms_Material_water) {
                                $par5 = 0;
                                $var33 = var$8 + 4 | 0;
                                while (true) {
                                    if ($par5 >= 16)
                                        break bn;
                                    $var32_0 = 0;
                                    if ($var32_0 < 16) {
                                        $var10 = var$6 + $par5 | 0;
                                        $var7 = var$7 + $var32_0 | 0;
                                        $par3 = 0;
                                        $ptr = 5;
                                        continue main;
                                    }
                                    $par5 = $par5 + 1 | 0;
                                }
                            }
                        }
                        return 1;
                    }
                    $var32_0 = 0;
                }
                $var10 = 4;
            }
            if (!$var6[((($par3 * 16 | 0) + $var32_0 | 0) * 8 | 0) + $var10 | 0])
                continue;
            else
                break;
        }
        $par4 = var$6 + $par3 | 0;
        $par5 = var$8 + $var10 | 0;
        $var33 = $par5 - 1 | 0;
        $var21 = var$7 + $var32_0 | 0;
        $ptr = 3;
        continue main;
    case 13:
        $tmp = nms_ChunkProviderServer_loadChunk(var$35, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        $par5 = ($var12 === null ? $par1World.$provider.$worldChunkMgr.$getBiomeGenAt($par4, $var21) : nms_Chunk_getBiomeGenForWorldCoords($var12, $par4 & 15, $var21 & 15, $par1World.$provider.$worldChunkMgr)).$topBlock;
        $var7 = nms_Block_mycelium.$blockID;
        if ($par5 == $var7) {
            $par5 = 0;
            $var8 = 2;
            $ptr = 12;
            continue main;
        }
        $par5 = nms_Block_grass.$blockID;
        $var7 = 0;
        $var8 = 2;
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, var$7, var$8, $var6, var$10, $var35, $var7, $var8, var$14, $var9, var$16, $var11, $var13, $var15, $var17, $var19, $var21, $var22, $var23, $var24, $var26, $var28, $var32, $var34, $var32_0, $var10, $var33, $var10_0, $var12, var$35, var$36, $ptr);
};
function nms_BlockEventData() {
    let a = this; jl_Object.call(a);
    a.$coordX = 0;
    a.$coordY = 0;
    a.$coordZ = 0;
    a.$blockID2 = 0;
    a.$eventID = 0;
    a.$eventParameter = 0;
}
let nms_BlockEventData_equals = ($this, $par1Obj) => {
    let $var2;
    if (!($par1Obj instanceof nms_BlockEventData))
        return 0;
    $var2 = $par1Obj;
    return $this.$coordX == $var2.$coordX && $this.$coordY == $var2.$coordY && $this.$coordZ == $var2.$coordZ && $this.$eventID == $var2.$eventID && $this.$eventParameter == $var2.$eventParameter && $this.$blockID2 == $var2.$blockID2 ? 1 : 0;
},
nms_BlockEventData_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$1 = $this.$coordX;
    var$2 = $this.$coordY;
    var$3 = $this.$coordZ;
    var$4 = $this.$eventID;
    var$5 = $this.$eventParameter;
    var$6 = $this.$blockID2;
    var$7 = new jl_StringBuilder;
    var$7.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(2390));
    jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$1, 10);
    var$8 = var$7.$length0;
    jl_AbstractStringBuilder_insertSpace(var$7, var$8, var$8 + 1 | 0);
    var$7.$buffer.data[var$8] = 44;
    jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$2, 10);
    var$2 = var$7.$length0;
    jl_AbstractStringBuilder_insertSpace(var$7, var$2, var$2 + 1 | 0);
    var$7.$buffer.data[var$2] = 44;
    jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$3, 10);
    jl_AbstractStringBuilder_insert(var$7, var$7.$length0, $rt_s(2391));
    jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$4, 10);
    var$2 = var$7.$length0;
    jl_AbstractStringBuilder_insertSpace(var$7, var$2, var$2 + 1 | 0);
    var$7.$buffer.data[var$2] = 44;
    jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$5, 10);
    var$2 = var$7.$length0;
    jl_AbstractStringBuilder_insertSpace(var$7, var$2, var$2 + 1 | 0);
    var$7.$buffer.data[var$2] = 44;
    jl_AbstractStringBuilder_insert0(var$7, var$7.$length0, var$6, 10);
    var$9 = new jl_String;
    var$10 = var$7.$buffer;
    var$11 = var$10.data;
    var$2 = var$7.$length0;
    var$3 = var$11.length;
    if (var$2 >= 0 && var$2 <= (var$3 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$10.data, 0, var$2);
        return var$9;
    }
    var$7 = new jl_IndexOutOfBoundsException;
    var$7.$suppressionEnabled = 1;
    var$7.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$7);
    $rt_throw(var$7);
},
jl_AbstractStringBuilder$Constants = $rt_classWithoutFields(),
jl_AbstractStringBuilder$Constants_longLogPowersOfTen = null,
jl_AbstractStringBuilder$Constants_doubleAnalysisResult = null,
jl_AbstractStringBuilder$Constants_floatAnalysisResult = null,
jl_AbstractStringBuilder$Constants__init_ = $this => {
    return;
},
jl_AbstractStringBuilder$Constants__init_0 = () => {
    let var_0 = new jl_AbstractStringBuilder$Constants();
    jl_AbstractStringBuilder$Constants__init_(var_0);
    return var_0;
},
jl_AbstractStringBuilder$Constants__clinit_ = () => {
    jl_AbstractStringBuilder$Constants_longLogPowersOfTen = $rt_createLongArrayFromData([Long_fromInt(1), Long_fromInt(10), Long_fromInt(100), Long_fromInt(10000), Long_fromInt(100000000), Long_create(1874919424, 2328306)]);
    jl_AbstractStringBuilder$Constants_doubleAnalysisResult = new otcit_DoubleAnalyzer$Result;
    jl_AbstractStringBuilder$Constants_floatAnalysisResult = new otcit_FloatAnalyzer$Result;
},
otcit_FloatAnalyzer = $rt_classWithoutFields(),
otcit_FloatAnalyzer_MAX_MANTISSA = 0,
otcit_FloatAnalyzer_mantissa10Table = null,
otcit_FloatAnalyzer_exp10Table = null,
otcit_FloatAnalyzer__init_ = $this => {
    return;
},
otcit_FloatAnalyzer__init_0 = () => {
    let var_0 = new otcit_FloatAnalyzer();
    otcit_FloatAnalyzer__init_(var_0);
    return var_0;
},
otcit_FloatAnalyzer_analyze = ($d, $result) => {
    let $bits, $mantissa, $exponent, var$6, $decExponent, $mantissaShift, var$9, $decMantissa, $upperPos, $upperPos_0, var$13, $decMantissaHi, $decMantissaLow, $lowerPos, $lowerPos_0, $posCmp;
    $bits = (isNaN($d) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits($d);
    $result.$sign3 = !($bits & (-2147483648)) ? 0 : 1;
    $mantissa = $bits & 8388607;
    $exponent = $bits >> 23 & 255;
    if (!$mantissa && !$exponent) {
        $result.$mantissa0 = 0;
        $result.$exponent0 = 0;
        return;
    }
    if ($exponent)
        $bits = $mantissa | 8388608;
    else {
        $bits = $mantissa << 1;
        while (Long_eq(Long_and(Long_fromInt($bits), Long_fromInt(8388608)), Long_ZERO)) {
            $bits = $bits << 1;
            $exponent = $exponent + (-1) | 0;
        }
    }
    var$6 = otcit_FloatAnalyzer_exp10Table;
    $decExponent = ju_Arrays_binarySearch0(var$6, 0, var$6.data.length, $exponent);
    if ($decExponent < 0)
        $decExponent =  -$decExponent | 0;
    var$6 = otcit_FloatAnalyzer_exp10Table.data;
    $mantissa = $decExponent + 1 | 0;
    $mantissaShift = 9 + ($exponent - var$6[$mantissa] | 0) | 0;
    $mantissa = otcit_FloatAnalyzer_mantissa10Table.data[$mantissa];
    var$9 = Long_and(Long_fromInt($bits), Long_create(4294967295, 0));
    $decMantissa = Long_lo(Long_shru(Long_mul(var$9, Long_and(Long_fromInt($mantissa), Long_create(4294967295, 0))), 32 - $mantissaShift | 0));
    if ($decMantissa < otcit_FloatAnalyzer_MAX_MANTISSA) {
        while ($rt_ucmp($decMantissa, otcit_FloatAnalyzer_MAX_MANTISSA) <= 0) {
            $decExponent = $decExponent + (-1) | 0;
            $decMantissa = ($decMantissa * 10 | 0) + 9 | 0;
        }
        var$6 = otcit_FloatAnalyzer_exp10Table.data;
        $mantissa = $decExponent + 1 | 0;
        $mantissaShift = 9 + ($exponent - var$6[$mantissa] | 0) | 0;
        $decMantissa = Long_lo(Long_shru(Long_mul(var$9, Long_and(Long_fromInt(otcit_FloatAnalyzer_mantissa10Table.data[$mantissa]), Long_create(4294967295, 0))), 32 - $mantissaShift | 0));
    }
    $bits = $bits << 1;
    $upperPos = $bits + 1 | 0;
    var$6 = otcit_FloatAnalyzer_mantissa10Table.data;
    $exponent = $decExponent + 1 | 0;
    $mantissa = var$6[$exponent];
    $upperPos_0 = $mantissaShift - 1 | 0;
    var$13 = Long_mul(Long_and(Long_fromInt($upperPos), Long_create(4294967295, 0)), Long_and(Long_fromInt($mantissa), Long_create(4294967295, 0)));
    $mantissa = 32 - $upperPos_0 | 0;
    $decMantissaHi = Long_lo(Long_shru(var$13, $mantissa));
    $decMantissaLow = Long_lo(Long_shru(Long_mul(Long_and(Long_fromInt($bits - 1 | 0), Long_create(4294967295, 0)), Long_and(Long_fromInt(var$6[$exponent]), Long_create(4294967295, 0))), $mantissa));
    $lowerPos = 1;
    while (true) {
        $lowerPos_0 = $lowerPos * 10 | 0;
        if ($rt_ucmp($rt_udiv($decMantissa, $lowerPos_0), $rt_udiv($decMantissaLow, $lowerPos_0)) <= 0)
            break;
        $lowerPos = $lowerPos_0;
    }
    $upperPos_0 = 1;
    while (true) {
        $upperPos = $upperPos_0 * 10 | 0;
        if ($rt_ucmp($rt_udiv($decMantissa, $upperPos), $rt_udiv($decMantissaHi, $upperPos)) >= 0)
            break;
        $upperPos_0 = $upperPos;
    }
    $posCmp = $rt_ucmp($lowerPos, $upperPos_0);
    $bits = $posCmp > 0 ? $rt_imul($rt_udiv($decMantissa, $lowerPos), $lowerPos) : $posCmp < 0 ? $rt_imul($rt_udiv($decMantissa, $upperPos_0), $upperPos_0) + $upperPos_0 | 0 : $rt_imul($rt_udiv(($decMantissa + ($upperPos_0 / 2 | 0) | 0), $upperPos_0), $upperPos_0);
    if (jl_Long_compareUnsigned(Long_fromInt($bits), Long_fromInt(1000000000)) >= 0)
        while (true) {
            $decExponent = $decExponent + 1 | 0;
            $bits = $rt_udiv($bits, 10);
            if ($rt_ucmp($bits, 1000000000) < 0)
                break;
        }
    else if ($rt_ucmp($bits, 100000000) < 0) {
        $decExponent = $decExponent + (-1) | 0;
        $bits = $bits * 10 | 0;
    }
    $result.$mantissa0 = $bits;
    $result.$exponent0 = $decExponent - 50 | 0;
},
otcit_FloatAnalyzer__clinit_ = () => {
    otcit_FloatAnalyzer_MAX_MANTISSA = $rt_udiv((-1), 10);
    otcit_FloatAnalyzer_mantissa10Table = $rt_createIntArrayFromData([(-18543760), (-873828468), (-1558056233), (-2105438446), (-791721136), (-1492370368), (-2052889754), (-707643228), (-1425108042), (-1999079893), (-621547450), (-1356231419), (-1943978595), (-533385374), (-1285701758), (-1887554866), (-443107408), (-1213479385), (-1829776968), (-350662770), (-1139523676), (-1770612400), (-255999462), (-1063793029), (-1710027882), (-159064234), (-986244846), (-1647989336), (-59802560), (-906835507), (-1584461865),
    (-2126562952), (-825520345), (-1519409735), (-2074521247), (-742253618), (-1452796353), (-2021230542), (-656988489), (-1384584251), (-1966660860), (-569676998), (-1314735058), (-1910781505), (-480270031), (-1243209484), (-1853561046), (-388717296), (-1169967296), (-1794967296), (-294967296), (-1094967296), (-1734967296), (-198967296), (-1018167296), (-1673527296), (-100663296), (-939524096), (-1610612736), (-2147483648), (-858993460), (-1546188227), (-2095944041), (-776530088), (-1480217529), (-2043167483),
    (-692087595), (-1412663535), (-1989124287), (-605618482), (-1343488245), (-1933784055), (-517074110), (-1272652747), (-1877115657), (-426404674), (-1200117198), (-1819087218), (-333559171), (-1125840796), (-1759666096), (-238485376), (-1049781760), (-1698818867), (-141129810), (-971897307), (-1636511305), (-41437710), (-892143627), (-1572708361), (-2117160148), (-810475859), (-1507374147), (-2064892777), (-726848065), (-1440471911), (-2011370988), (-641213203), (-1371964022), (-1956564688)]);
    otcit_FloatAnalyzer_exp10Table = $rt_createIntArrayFromData([(-37), (-34), (-31), (-28), (-24), (-21), (-18), (-14), (-11), (-8), (-4), (-1), 2, 6, 9, 12, 16, 19, 22, 26, 29, 32, 36, 39, 42, 46, 49, 52, 56, 59, 62, 65, 69, 72, 75, 79, 82, 85, 89, 92, 95, 99, 102, 105, 109, 112, 115, 119, 122, 125, 129, 132, 135, 139, 142, 145, 149, 152, 155, 158, 162, 165, 168, 172, 175, 178, 182, 185, 188, 192, 195, 198, 202, 205, 208, 212, 215, 218, 222, 225, 228, 232, 235, 238, 242, 245, 248, 252, 255, 258, 261, 265,
    268, 271, 275, 278, 281, 285, 288, 291]);
};
function otcit_FloatAnalyzer$Result() {
    let a = this; jl_Object.call(a);
    a.$mantissa0 = 0;
    a.$exponent0 = 0;
    a.$sign3 = 0;
}
let otcit_FloatAnalyzer$Result__init_ = $this => {
    return;
},
otcit_FloatAnalyzer$Result__init_0 = () => {
    let var_0 = new otcit_FloatAnalyzer$Result();
    otcit_FloatAnalyzer$Result__init_(var_0);
    return var_0;
},
otcit_DoubleSynthesizer = $rt_classWithoutFields(),
otcit_DoubleSynthesizer_mantissa10Table = null,
otcit_DoubleSynthesizer_exp10Table = null,
otcit_DoubleSynthesizer__init_ = $this => {
    return;
},
otcit_DoubleSynthesizer__init_0 = () => {
    let var_0 = new otcit_DoubleSynthesizer();
    otcit_DoubleSynthesizer__init_(var_0);
    return var_0;
},
otcit_DoubleSynthesizer_synthesizeDouble = ($mantissa, $exp, $negative) => {
    let $indexInTable, var$5, $binMantissa, $binExp, $binMantissaShift, $error, $correction, $binMantissaWithoutError, $cmp, $iee754;
    $indexInTable = 330 + $exp | 0;
    if (Long_ne($mantissa, Long_ZERO) && $indexInTable >= 0) {
        var$5 = otcit_DoubleSynthesizer_mantissa10Table.data;
        if ($indexInTable >= var$5.length)
            return !$negative ? Infinity : (-Infinity);
        $binMantissa = otcit_DoubleAnalyzer_mulAndShiftRight($mantissa, var$5[$indexInTable], 0);
        $binExp = otcit_DoubleSynthesizer_exp10Table.data[$indexInTable];
        $binMantissaShift = (64 - jl_Long_numberOfLeadingZeros($binMantissa) | 0) - 58 | 0;
        $binMantissa = $binMantissaShift >= 0 ? Long_shru($binMantissa, $binMantissaShift) : Long_shl($binMantissa,  -$binMantissaShift | 0);
        $exp = $binExp + $binMantissaShift | 0;
        if ($exp >= 2047)
            return !$negative ? Infinity : (-Infinity);
        $error = Long_lo(Long_and($binMantissa, Long_fromInt(31)));
        $correction = 16;
        $binExp = $error - 16 | 0;
        if ($binExp < 0)
            $binExp =  -$binExp | 0;
        if ($binExp <= 1) {
            $binMantissaWithoutError = Long_and($binMantissa, Long_fromInt(-32));
            $cmp = jl_Long_compareUnsigned(Long_sub($mantissa, otcit_DoubleSynthesizer_calcDecMantissa($binMantissaWithoutError, 32, $indexInTable, $exp)), Long_sub(otcit_DoubleSynthesizer_calcDecMantissa(Long_add($binMantissaWithoutError, Long_fromInt(32)), 32, $indexInTable, $exp), $mantissa));
            if ($cmp < 0)
                $correction =  -$error | 0;
            else if ($cmp > 0)
                $correction = 32 - $error | 0;
        }
        $mantissa = Long_add($binMantissa, Long_fromInt($correction));
        if (Long_ne(Long_and($mantissa, Long_create(0, 4227858432)), Long_ZERO)) {
            $mantissa = Long_shru($mantissa, 1);
            $exp = $exp + 1 | 0;
        }
        if ($exp <= 0) {
            $exp = ( -$exp | 0) + 1 | 0;
            $indexInTable = 64;
            if ($exp < $indexInTable)
                $indexInTable = $exp;
            $mantissa = Long_shr($mantissa, $indexInTable);
            $exp = 0;
        }
        $iee754 = Long_or(Long_and(Long_shru($mantissa, 5), Long_create(4294967295, 1048575)), Long_shl(Long_fromInt($exp), 52));
        if ($negative)
            $iee754 = Long_xor($iee754, Long_create(0, 2147483648));
        return $rt_longBitsToDouble($iee754);
    }
    return $rt_longBitsToDouble((!$negative ? Long_ZERO : Long_create(0, 2147483648)));
},
otcit_DoubleSynthesizer_calcDecMantissa = ($mantissa, $lowerBit, $indexInTable, $binExp) => {
    let $half, $shift, $decMantissa, $decMantissaLow, $decMantissaHi, $lowerPos, $lowerPos_0, $upperPos, $upperPos_0, $posCmp;
    $half = $lowerBit >>> 1 | 0;
    $shift = 7 - (otcit_DoubleAnalyzer_exp10Table.data[$indexInTable] - $binExp | 0) | 0;
    $decMantissa = otcit_DoubleAnalyzer_mulAndShiftRight($mantissa, otcit_DoubleAnalyzer_mantissa10Table.data[$indexInTable], $shift);
    $decMantissaLow = Long_fromInt($half);
    $decMantissaHi = otcit_DoubleAnalyzer_mulAndShiftRight(Long_add($mantissa, $decMantissaLow), otcit_DoubleAnalyzer_mantissa10Table.data[$indexInTable], $shift);
    $decMantissaLow = otcit_DoubleAnalyzer_mulAndShiftRight(Long_sub($mantissa, $decMantissaLow), otcit_DoubleAnalyzer_mantissa10Table.data[$indexInTable], $shift);
    $lowerPos = Long_fromInt(1);
    while (true) {
        $lowerPos_0 = Long_mul($lowerPos, Long_fromInt(10));
        if (jl_Long_compareUnsigned(jl_Long_divideUnsigned($decMantissa, $lowerPos_0), jl_Long_divideUnsigned($decMantissaLow, $lowerPos_0)) <= 0)
            break;
        $lowerPos = $lowerPos_0;
    }
    $upperPos = Long_fromInt(1);
    while (true) {
        $upperPos_0 = Long_mul($upperPos, Long_fromInt(10));
        if (jl_Long_compareUnsigned(jl_Long_divideUnsigned($decMantissa, $upperPos_0), jl_Long_divideUnsigned($decMantissaHi, $upperPos_0)) >= 0)
            break;
        $upperPos = $upperPos_0;
    }
    $posCmp = jl_Long_compareUnsigned($lowerPos, $upperPos);
    return $posCmp > 0 ? Long_mul(jl_Long_divideUnsigned($decMantissa, $lowerPos), $lowerPos) : $posCmp < 0 ? Long_add(Long_mul(jl_Long_divideUnsigned($decMantissa, $upperPos), $upperPos), $upperPos) : Long_mul(jl_Long_divideUnsigned(Long_add($decMantissa, Long_div($upperPos, Long_fromInt(2))), $upperPos), $upperPos);
},
otcit_DoubleSynthesizer__clinit_ = () => {
    otcit_DoubleSynthesizer_mantissa10Table = $rt_createLongArrayFromData([Long_create(136053384, 4203730336), Long_create(85033365, 2627331460), Long_create(106291706, 3284164325), Long_create(1206606457, 4105205406), Long_create(3975354508, 2565753378), Long_create(2821709486, 3207191723), Long_create(2453395034, 4008989654), Long_create(459630072, 2505618534), Long_create(2722021238, 3132023167), Long_create(2328784724, 3915028959), Long_create(3066103188, 2446893099), Long_create(2758887162, 3058616374),
    Long_create(1301125304, 3823270468), Long_create(2960686963, 2389544042), Long_create(1553375056, 2986930053), Long_create(3015460644, 3733662566), Long_create(810921078, 2333539104), Long_create(1013651348, 2916923880), Long_create(1267064185, 3646154850), Long_create(1865656940, 2278846781), Long_create(3405812998, 2848558476), Long_create(4257266248, 3560698095), Long_create(4271404141, 2225436309), Long_create(2118029704, 2781795387), Long_create(1573795306, 3477244234), Long_create(2057363890, 2173277646),
    Long_create(424221215, 2716597058), Long_create(2677760167, 3395746322), Long_create(1199716561, 4244682903), Long_create(2360435586, 2652926814), Long_create(803060835, 3316158518), Long_create(3151309692, 4145198147), Long_create(1432697645, 2590748842), Long_create(3938355705, 3238436052), Long_create(627977335, 4048045066), Long_create(1466227658, 2530028166), Long_create(3980268221, 3162535207), Long_create(3901593452, 3953169009), Long_create(827883171, 2470730631), Long_create(4256079436, 3088413288),
    Long_create(1025131999, 3860516611), Long_create(103836588, 2412822882), Long_create(2277279383, 3016028602), Long_create(699115580, 3770035753), Long_create(3121301798, 2356272345), Long_create(680401775, 2945340432), Long_create(850502219, 3681675540), Long_create(2679047535, 2301047212), Long_create(3348809418, 2876309015), Long_create(3112269949, 3595386269), Long_create(2482039630, 2247116418), Long_create(955065890, 2808895523), Long_create(120090538, 3511119404), Long_create(2222540234, 2194449627),
    Long_create(1704433469, 2743062034), Long_create(4278025484, 3428827542), Long_create(3200048207, 4286034428), Long_create(4147513777, 2678771517), Long_create(1963166750, 3348464397), Long_create(3527700261, 4185580496), Long_create(2204812663, 2615987810), Long_create(608532181, 3269984763), Long_create(3981890698, 4087480953), Long_create(878068951, 2554675596), Long_create(1097586188, 3193344495), Long_create(298240911, 3991680619), Long_create(3944496953, 2494800386), Long_create(2783137544, 3118500483),
    Long_create(2405180106, 3898125604), Long_create(3650721214, 2436328502), Long_create(2415917870, 3045410628), Long_create(3019897337, 3806763285), Long_create(2424306748, 2379227053), Long_create(4104125259, 2974033816), Long_create(835189277, 3717542271), Long_create(2132606034, 2323463919), Long_create(1592015719, 2904329899), Long_create(916277825, 3630412374), Long_create(3793899112, 2269007733), Long_create(1521148418, 2836259667), Long_create(827693699, 3545324584), Long_create(517308562, 2215827865),
    Long_create(1720377526, 2769784831), Long_create(1076730084, 3462231039), Long_create(2283569038, 2163894399), Long_create(1780719474, 2704867999), Long_create(1152157519, 3381084999), Long_create(366455074, 4226356249), Long_create(2913388981, 2641472655), Long_create(2567994403, 3301840819), Long_create(2136251179, 4127301024), Long_create(1335156987, 2579563140), Long_create(1668946234, 3224453925), Long_create(3159924616, 4030567406), Long_create(901211061, 2519104629), Long_create(2200255651, 3148880786),
    Long_create(602835915, 3936100983), Long_create(1987385183, 2460063114), Long_create(336747831, 3075078893), Long_create(1494676613, 3843848616), Long_create(934172883, 2402405385), Long_create(2241457928, 3003006731), Long_create(1728080585, 3753758414), Long_create(6308542, 2346099009), Long_create(1081627501, 2932623761), Long_create(2425776201, 3665779701), Long_create(2052981037, 2291112313), Long_create(3639968121, 2863890391), Long_create(3476218327, 3579862989), Long_create(2709507366, 2237414368),
    Long_create(3386884208, 2796767960), Long_create(4233605260, 3495959950), Long_create(1572261463, 2184974969), Long_create(3039068653, 2731218711), Long_create(2725093993, 3414023389), Long_create(185142019, 4267529237), Long_create(652584674, 2667205773), Long_create(1889472666, 3334007216), Long_create(2361840833, 4167509020), Long_create(3623634168, 2604693137), Long_create(1308317239, 3255866422), Long_create(3782880196, 4069833027), Long_create(1827429211, 2543645642), Long_create(136802865, 3179557053),
    Long_create(1244745406, 3974446316), Long_create(2925449527, 2484028947), Long_create(2583070084, 3105036184), Long_create(3228837605, 3881295230), Long_create(944281679, 2425809519), Long_create(106610275, 3032261899), Long_create(3354488316, 3790327373), Long_create(2633426109, 2368954608), Long_create(3291782637, 2961193260), Long_create(4114728296, 3701491575), Long_create(4182317921, 2313432234), Long_create(3080413753, 2891790293), Long_create(629291719, 3614737867), Long_create(4151403709, 2259211166),
    Long_create(3041770988, 2824013958), Long_create(1654730087, 3530017448), Long_create(1034206304, 2206260905), Long_create(2366499704, 2757826131), Long_create(1884382806, 3447282664), Long_create(1177739254, 2154551665), Long_create(2545915892, 2693189581), Long_create(4256136688, 3366486976), Long_create(1025203564, 4208108721), Long_create(3325106788, 2630067950), Long_create(2008899837, 3287584938), Long_create(363641148, 4109481173), Long_create(764146629, 2568425733), Long_create(2028925111, 3210532166),
    Long_create(388672741, 4013165208), Long_create(242920463, 2508228255), Long_create(3524876051, 3135285318), Long_create(2258611415, 3919106648), Long_create(1411632134, 2449441655), Long_create(690798344, 3061802069), Long_create(1937239754, 3827252586), Long_create(2284516670, 2392032866), Long_create(708162190, 2990041083), Long_create(4106428209, 3737551353), Long_create(955904895, 2335969596), Long_create(1194881119, 2919961995), Long_create(419859574, 3649952494), Long_create(3483637706, 2281220308),
    Long_create(59579836, 2851525386), Long_create(2221958443, 3564406732), Long_create(3536207675, 2227754207), Long_create(3346517770, 2784692759), Long_create(3109405388, 3480865949), Long_create(2480249280, 2175541218), Long_create(952827952, 2719426523), Long_create(117293116, 3399283154), Long_create(2294100043, 4249103942), Long_create(360070703, 2655689964), Long_create(450088378, 3319612455), Long_create(3783835945, 4149515568), Long_create(2364897466, 2593447230), Long_create(808638184, 3241809038),
    Long_create(3158281378, 4052261297), Long_create(363313125, 2532663311), Long_create(3675366878, 3165829138), Long_create(2446724950, 3957286423), Long_create(3139815830, 2473304014), Long_create(1777286139, 3091630018), Long_create(74124026, 3864537523), Long_create(3804423900, 2415335951), Long_create(3681788051, 3019169939), Long_create(3528493240, 3773962424), Long_create(2205308275, 2358726515), Long_create(1682893520, 2948408144), Long_create(2103616900, 3685510180), Long_create(3462244210, 2303443862),
    Long_create(2180321615, 2879304828), Long_create(2725402019, 3599131035), Long_create(1166505350, 2249456897), Long_create(2531873511, 2811821121), Long_create(4238583713, 3514776401), Long_create(1038502085, 2196735251), Long_create(224385782, 2745919064), Long_create(280482227, 3432398830), Long_create(2498086432, 4290498537), Long_create(4245658580, 2681561585), Long_create(2085847753, 3351951982), Long_create(459826043, 4189939978), Long_create(1361133101, 2618712486), Long_create(3848900024, 3273390607),
    Long_create(3737383206, 4091738259), Long_create(1798993592, 2557336412), Long_create(2248741990, 3196670515), Long_create(1737185663, 3995838144), Long_create(1085741040, 2497398840), Long_create(1357176300, 3121748550), Long_create(3843954022, 3902185687), Long_create(4013084000, 2438866054), Long_create(2868871352, 3048582568), Long_create(3586089190, 3810728210), Long_create(3315047568, 2381705131), Long_create(3070067636, 2977131414), Long_create(1690100897, 3721414268), Long_create(3203796708, 2325883917),
    Long_create(783520414, 2907354897), Long_create(2053142341, 3634193621), Long_create(1820084875, 2271371013), Long_create(3348847918, 2839213766), Long_create(2038576249, 3549017208), Long_create(1274110156, 2218135755), Long_create(518895871, 2772669694), Long_create(2796103486, 3465837117), Long_create(2284435591, 2166148198), Long_create(708060841, 2707685248), Long_create(885076051, 3384606560), Long_create(1106345064, 4230758200), Long_create(691465665, 2644223875), Long_create(4085557553, 3305279843),
    Long_create(4033205117, 4131599804), Long_create(373269550, 2582249878), Long_create(2614070586, 3227812347), Long_create(2193846408, 4034765434), Long_create(2444895829, 2521728396), Long_create(3056119787, 3152160495), Long_create(2746407909, 3940200619), Long_create(1179634031, 2462625387), Long_create(400800715, 3078281734), Long_create(2648484542, 3847852167), Long_create(3265915575, 2404907604), Long_create(4082394468, 3006134505), Long_create(1881767613, 3757668132), Long_create(3323588406, 2348542582),
    Long_create(2007001860, 2935678228), Long_create(2508752325, 3669597785), Long_create(4252324763, 2293498615), Long_create(4241664130, 2866873269), Long_create(2080854690, 3583591587), Long_create(763663269, 2239744742), Long_create(3102062735, 2799680927), Long_create(2803836594, 3499601159), Long_create(3363010608, 2187250724), Long_create(4203763259, 2734063405), Long_create(2033478602, 3417579257), Long_create(3615590077, 4271974071), Long_create(3870356534, 2669983794), Long_create(2690462020, 3337479743),
    Long_create(2289335700, 4171849679), Long_create(3041447549, 2607406049), Long_create(580583964, 3259257562), Long_create(2873213603, 4074071952), Long_create(1795758502, 2546294970), Long_create(97214479, 3182868713), Long_create(1195259923, 3978585891), Long_create(210166540, 2486616182), Long_create(2410191823, 3108270227), Long_create(1938997955, 3885337784), Long_create(1211873722, 2428336115), Long_create(441100328, 3035420144), Long_create(551375410, 3794275180), Long_create(2492093279, 2371421987),
    Long_create(2041374775, 2964277484), Long_create(2551718469, 3705346855), Long_create(3205436779, 2315841784), Long_create(4006795974, 2894802230), Long_create(2861011319, 3618502788), Long_create(3935615723, 2261564242), Long_create(2772036005, 2826955303), Long_create(2391303183, 3533694129), Long_create(4178919049, 2208558830), Long_create(3076165163, 2760698538), Long_create(1697722806, 3450873173), Long_create(1597947666, 2156795733), Long_create(3071176406, 2695994666), Long_create(1691486860, 3369993333),
    Long_create(3188100399, 4212491666), Long_create(3066304573, 2632807291), Long_create(2759138893, 3291009114), Long_create(1301439968, 4113761393), Long_create(3497754540, 2571100870), Long_create(2224709527, 3213876088), Long_create(2780886909, 4017345110), Long_create(664312494, 2510840694), Long_create(2977874265, 3138550867), Long_create(2648601008, 3923188584), Long_create(1655375630, 2451992865), Long_create(3142961361, 3064991081), Long_create(707476230, 3831238852), Long_create(2589656291, 2394524282),
    Long_create(1089586716, 2993155353), Long_create(2435725219, 3741444191), Long_create(3132940998, 2338402619), Long_create(2842434424, 2923003274), Long_create(1405559382, 3653754093), Long_create(1415345525, 2283596308), Long_create(1769181907, 2854495385), Long_create(3285219208, 3568119231), Long_create(3663874741, 2230074519), Long_create(3506101602, 2787593149), Long_create(1161401530, 3484491437), Long_create(1262746869, 2177807148), Long_create(1578433586, 2722258935), Long_create(899300158, 3402823669),
    Long_create(2197867022, 4253529586), Long_create(2447408712, 2658455991), Long_create(1985519067, 3323069989), Long_create(3555640657, 4153837486), Long_create(1148533587, 2596148429), Long_create(2509408807, 3245185536), Long_create(3136761009, 4056481920), Long_create(1960475631, 2535301200), Long_create(2450594539, 3169126500), Long_create(3063243173, 3961408125), Long_create(2451397895, 2475880078), Long_create(916763721, 3094850098), Long_create(3293438299, 3868562622), Long_create(984657113, 2417851639),
    Long_create(157079567, 3022314549), Long_create(1270091283, 3777893186), Long_create(1867548876, 2361183241), Long_create(3408177919, 2951479051), Long_create(3186480575, 3689348814), Long_create(917808535, 2305843009), Long_create(2221002493, 2882303761), Long_create(3849994940, 3602879701), Long_create(2943117750, 2251799813), Long_create(457671715, 2814749767), Long_create(3793315116, 3518437208), Long_create(2370821947, 2199023255), Long_create(1889785610, 2748779069), Long_create(3435973837, 3435973836),
    Long_create(0, 2147483648), Long_create(0, 2684354560), Long_create(0, 3355443200), Long_create(0, 4194304000), Long_create(0, 2621440000), Long_create(0, 3276800000), Long_create(0, 4096000000), Long_create(0, 2560000000), Long_create(0, 3200000000), Long_create(0, 4000000000), Long_create(0, 2500000000), Long_create(0, 3125000000), Long_create(0, 3906250000), Long_create(0, 2441406250), Long_create(2147483648, 3051757812), Long_create(2684354560, 3814697265), Long_create(67108864, 2384185791), Long_create(3305111552, 2980232238),
    Long_create(1983905792, 3725290298), Long_create(2313682944, 2328306436), Long_create(2892103680, 2910383045), Long_create(393904128, 3637978807), Long_create(1856802816, 2273736754), Long_create(173519872, 2842170943), Long_create(3438125312, 3552713678), Long_create(1075086496, 2220446049), Long_create(2417599944, 2775557561), Long_create(4095741754, 3469446951), Long_create(4170451332, 2168404344), Long_create(918096869, 2710505431), Long_create(73879263, 3388131789), Long_create(1166090902, 4235164736),
    Long_create(728806814, 2646977960), Long_create(911008517, 3308722450), Long_create(3286244295, 4135903062), Long_create(980160860, 2584939414), Long_create(3372684723, 3231174267), Long_create(3142114080, 4038967834), Long_create(3037563124, 2524354896), Long_create(3796953905, 3155443620), Long_create(451225085, 3944304526), Long_create(3503241150, 2465190328), Long_create(84084142, 3081487911), Long_create(3326330649, 3851859888), Long_create(2078956656, 2407412430), Long_create(451212172, 3009265538),
    Long_create(2711498863, 3761581922), Long_create(2768428613, 2350988701), Long_create(239310295, 2938735877), Long_create(1372879692, 3673419846), Long_create(4079275280, 2295887403), Long_create(4025352276, 2869859254), Long_create(2884206696, 3587324068), Long_create(3950112833, 2242077542), Long_create(2790157394, 2802596928), Long_create(3487696742, 3503246160), Long_create(2179810464, 2189528850), Long_create(577279432, 2736911063), Long_create(3942824762, 3421138828), Long_create(633563656, 4276423536),
    Long_create(395977285, 2672764710), Long_create(2642455254, 3340955887), Long_create(2229327244, 4176194859), Long_create(856458615, 2610121787), Long_create(4291798741, 3262652233), Long_create(2143522955, 4078315292), Long_create(3487185495, 2548947057), Long_create(1137756396, 3186183822), Long_create(3569679143, 3982729777), Long_create(620436729, 2489206111), Long_create(3996771383, 3111507638), Long_create(2848480580, 3889384548), Long_create(3927784011, 2430865342), Long_create(2762246365, 3038581678),
    Long_create(1305324309, 3798227098), Long_create(1889569517, 2373891936), Long_create(2361961896, 2967364920), Long_create(2952452370, 3709206150), Long_create(771540907, 2318253844), Long_create(964426134, 2897817305), Long_create(2279274492, 3622271631), Long_create(3035159293, 2263919769), Long_create(572723645, 2829899712), Long_create(715904556, 3537374640), Long_create(447440347, 2210859150), Long_create(2706784082, 2763573937), Long_create(162254631, 3454467422), Long_create(3322634616, 2159042138),
    Long_create(2005809622, 2698802673), Long_create(3581003852, 3373503341), Long_create(1255029343, 4216879177), Long_create(3468747899, 2635549485), Long_create(1114709402, 3294436857), Long_create(2467128577, 4118046071), Long_create(3152568096, 2573778794), Long_create(1793226473, 3217223493), Long_create(3315274915, 4021529366), Long_create(998304998, 2513455854), Long_create(3395364895, 3141819817), Long_create(1022980647, 3927274772), Long_create(2786846552, 2454546732), Long_create(3483558190, 3068183415),
    Long_create(3280705914, 3835229269), Long_create(2587312108, 2397018293), Long_create(12914663, 2996272867), Long_create(3237368801, 3745341083), Long_create(1486484589, 2340838177), Long_create(2931847560, 2926047721), Long_create(443583978, 3657559652), Long_create(2424723634, 2285974782), Long_create(883420895, 2857468478), Long_create(3251759766, 3571835597), Long_create(2569220766, 2232397248), Long_create(3211525958, 2790496560), Long_create(4014407447, 3488120700), Long_create(361521006, 2180075438),
    Long_create(2599384906, 2725094297), Long_create(28005660, 3406367872), Long_create(35007075, 4257959840), Long_create(21879422, 2661224900), Long_create(27349278, 3326531125), Long_create(1107928421, 4158163906), Long_create(1766197087, 2598852441), Long_create(3281488183, 3248565551), Long_create(3028118405, 4060706939), Long_create(1355703091, 2537941837), Long_create(2768370688, 3172427296), Long_create(3460463360, 3965534120), Long_create(2162789600, 2478458825), Long_create(3777228824, 3098073531),
    Long_create(3647794206, 3872591914), Long_create(3353613203, 2420369946), Long_create(2044532855, 3025462433), Long_create(3629407893, 3781828041), Long_create(657767197, 2363642526), Long_create(2969692644, 2954553157), Long_create(490890333, 3693191447), Long_create(1917419194, 2308244654), Long_create(249290345, 2885305818), Long_create(2459096579, 3606632272), Long_create(1536935362, 2254145170), Long_create(4068652851, 2817681462), Long_create(2938332415, 3522101828), Long_create(3983941407, 2201313642),
    Long_create(2832443111, 2751642053), Long_create(319328417, 3439552567), Long_create(1810192997, 2149720354), Long_create(115257598, 2687150443), Long_create(3365297469, 3358938053), Long_create(985396365, 4198672567), Long_create(2226485464, 2624170354), Long_create(635623182, 3280212943), Long_create(4015754449, 4100266178), Long_create(3583588355, 2562666361), Long_create(1258259972, 3203332952), Long_create(1572824965, 4004166190), Long_create(4204241075, 2502603868), Long_create(960334048, 3128254836),
    Long_create(1200417559, 3910318545), Long_create(3434615535, 2443949090), Long_create(2145785770, 3054936363), Long_create(1608490389, 3818670454), Long_create(4226531965, 2386669033), Long_create(2061939484, 2983336292), Long_create(2577424355, 3729170365), Long_create(2147761134, 2330731478), Long_create(537217770, 2913414348), Long_create(671522212, 3641767935), Long_create(2030314119, 2276104959), Long_create(1464150824, 2845131199), Long_create(756446706, 3556413999), Long_create(2083391927, 2222758749),
    Long_create(3677981733, 2778448436), Long_create(302509871, 3473060546), Long_create(1262810493, 2170662841), Long_create(2652254940, 2713328551), Long_create(2241576851, 3391660689), Long_create(3875712888, 4239575861), Long_create(2959191467, 2649734913), Long_create(477763862, 3312168642), Long_create(2744688476, 4140210802), Long_create(2789172121, 2587631751), Long_create(2412723328, 3234539689), Long_create(4089645983, 4043174611), Long_create(2019157828, 2526984132), Long_create(2523947285, 3158730165),
    Long_create(4228675930, 3948412706), Long_create(3716664280, 2467757941), Long_create(1424604878, 3084697427), Long_create(707014274, 3855871784), Long_create(441883921, 2409919865), Long_create(1626096725, 3012399831), Long_create(958879083, 3765499789), Long_create(1136170339, 2353437368), Long_create(1420212923, 2941796710), Long_create(3922749802, 3677245887), Long_create(4062331362, 2298278679), Long_create(4004172379, 2872848349), Long_create(1783990002, 3591060437), Long_create(1651864663, 2244412773),
    Long_create(3138572653, 2805515966), Long_create(1775732168, 3506894958), Long_create(36090781, 2191809349), Long_create(1118855300, 2739761686), Long_create(3546052773, 3424702107), Long_create(3358824142, 4280877634), Long_create(3173006913, 2675548521), Long_create(745033169, 3344435652), Long_create(931291462, 4180544565), Long_create(1118928076, 2612840353), Long_create(2472401918, 3266050441), Long_create(4164244222, 4082563051), Long_create(2065781727, 2551601907), Long_create(1508485334, 3189502384),
    Long_create(1885606668, 3986877980), Long_create(3325987816, 2491798737), Long_create(936259297, 3114748422), Long_create(3317807770, 3893435527), Long_create(3684242592, 2433397204), Long_create(310335944, 3041746506), Long_create(2535403578, 3802183132), Long_create(3732110884, 2376364457), Long_create(1443913133, 2970455572), Long_create(1804891417, 3713069465), Long_create(3812411696, 2320668415), Long_create(3691772795, 2900835519), Long_create(3540974170, 3626044399), Long_create(3823721592, 2266277749),
    Long_create(1558426518, 2832847187), Long_create(874291324, 3541058984), Long_create(546432078, 2213161865), Long_create(1756781921, 2766452331), Long_create(1122235577, 3458065414), Long_create(3922622708, 2161290883), Long_create(3829536561, 2701613604), Long_create(491953405, 3377017006), Long_create(2762425404, 4221271257), Long_create(115903142, 2638294536), Long_create(144878927, 3297868170), Long_create(2328582307, 4122335212), Long_create(3602847590, 2576459507), Long_create(3429817663, 3220574384),
    Long_create(4287272079, 4025717980), Long_create(532061401, 2516073738), Long_create(2812560400, 3145092172), Long_create(3515700500, 3931365215), Long_create(3807925548, 2457103259), Long_create(3686165111, 3071379074), Long_create(2460222741, 3839223843), Long_create(1000768301, 2399514902), Long_create(3398444024, 2999393627), Long_create(3174313207, 3749242034), Long_create(3057687578, 2343276271), Long_create(2748367649, 2929095339), Long_create(2361717737, 3661369174), Long_create(402331761, 2288355734),
    Long_create(2650398350, 2860444667), Long_create(2239256113, 3575555834), Long_create(2473276895, 2234722396), Long_create(3091596119, 2793402995), Long_create(2790753324, 3491753744), Long_create(1744220828, 2182346090), Long_create(32792387, 2727932613), Long_create(1114732307, 3409915766), Long_create(3540899032, 4262394707), Long_create(1676190983, 2663996692), Long_create(2095238729, 3329995865), Long_create(3692790235, 4162494831), Long_create(3918606633, 2601559269), Long_create(1677032819, 3251949087),
    Long_create(1022549200, 4064936359), Long_create(2249705986, 2540585224), Long_create(2812132482, 3175731530), Long_create(1367681955, 3969664413), Long_create(1391672134, 2481040258), Long_create(3887073815, 3101300322), Long_create(2711358621, 3876625403), Long_create(1157728226, 2422890877), Long_create(2520902107, 3028613596), Long_create(3151127633, 3785766995), Long_create(1432583859, 2366104372), Long_create(1790729824, 2957630465), Long_create(3312154103, 3697038081), Long_create(459483579, 2310648801),
    Long_create(1648096297, 2888311001), Long_create(3133862196, 3610388751), Long_create(3569276608, 2256492969), Long_create(1240370288, 2820616212), Long_create(1550462860, 3525770265), Long_create(3653393848, 2203606415), Long_create(3493000486, 2754508019), Long_create(3292508783, 3443135024), Long_create(2057817989, 2151959390), Long_create(424788839, 2689949238), Long_create(2678469697, 3362436547), Long_create(2274345297, 4203045684), Long_create(3568949458, 2626903552), Long_create(166219527, 3283629441),
    Long_create(1281516233, 4104536801), Long_create(3485302206, 2565335500), Long_create(61660461, 3206669376), Long_create(77075576, 4008336720), Long_create(48172235, 2505210450), Long_create(2207698942, 3131513062), Long_create(612140029, 3914391328), Long_create(382587518, 2446494580), Long_create(478234398, 3058118225), Long_create(1671534821, 3822647781), Long_create(1581580175, 2389154863), Long_create(903233395, 2986443579), Long_create(55299920, 3733054474), Long_create(1108304274, 2333159046)]);
    otcit_DoubleSynthesizer_exp10Table = $rt_createShortArrayFromData([(-76), (-72), (-69), (-66), (-62), (-59), (-56), (-52), (-49), (-46), (-42), (-39), (-36), (-32), (-29), (-26), (-22), (-19), (-16), (-12), (-9), (-6), (-2), 1, 4, 8, 11, 14, 17, 21, 24, 27, 31, 34, 37, 41, 44, 47, 51, 54, 57, 61, 64, 67, 71, 74, 77, 81, 84, 87, 91, 94, 97, 101, 104, 107, 110, 114, 117, 120, 124, 127, 130, 134, 137, 140, 144, 147, 150, 154, 157, 160, 164, 167, 170, 174, 177, 180, 184, 187, 190, 194, 197, 200, 204, 207, 210,
    213, 217, 220, 223, 227, 230, 233, 237, 240, 243, 247, 250, 253, 257, 260, 263, 267, 270, 273, 277, 280, 283, 287, 290, 293, 297, 300, 303, 306, 310, 313, 316, 320, 323, 326, 330, 333, 336, 340, 343, 346, 350, 353, 356, 360, 363, 366, 370, 373, 376, 380, 383, 386, 390, 393, 396, 400, 403, 406, 409, 413, 416, 419, 423, 426, 429, 433, 436, 439, 443, 446, 449, 453, 456, 459, 463, 466, 469, 473, 476, 479, 483, 486, 489, 493, 496, 499, 502, 506, 509, 512, 516, 519, 522, 526, 529, 532, 536, 539, 542, 546, 549,
    552, 556, 559, 562, 566, 569, 572, 576, 579, 582, 586, 589, 592, 595, 599, 602, 605, 609, 612, 615, 619, 622, 625, 629, 632, 635, 639, 642, 645, 649, 652, 655, 659, 662, 665, 669, 672, 675, 679, 682, 685, 689, 692, 695, 698, 702, 705, 708, 712, 715, 718, 722, 725, 728, 732, 735, 738, 742, 745, 748, 752, 755, 758, 762, 765, 768, 772, 775, 778, 782, 785, 788, 791, 795, 798, 801, 805, 808, 811, 815, 818, 821, 825, 828, 831, 835, 838, 841, 845, 848, 851, 855, 858, 861, 865, 868, 871, 875, 878, 881, 885, 888,
    891, 894, 898, 901, 904, 908, 911, 914, 918, 921, 924, 928, 931, 934, 938, 941, 944, 948, 951, 954, 958, 961, 964, 968, 971, 974, 978, 981, 984, 987, 991, 994, 997, 1001, 1004, 1007, 1011, 1014, 1017, 1021, 1024, 1027, 1031, 1034, 1037, 1041, 1044, 1047, 1051, 1054, 1057, 1061, 1064, 1067, 1071, 1074, 1077, 1081, 1084, 1087, 1090, 1094, 1097, 1100, 1104, 1107, 1110, 1114, 1117, 1120, 1124, 1127, 1130, 1134, 1137, 1140, 1144, 1147, 1150, 1154, 1157, 1160, 1164, 1167, 1170, 1174, 1177, 1180, 1183, 1187, 1190,
    1193, 1197, 1200, 1203, 1207, 1210, 1213, 1217, 1220, 1223, 1227, 1230, 1233, 1237, 1240, 1243, 1247, 1250, 1253, 1257, 1260, 1263, 1267, 1270, 1273, 1276, 1280, 1283, 1286, 1290, 1293, 1296, 1300, 1303, 1306, 1310, 1313, 1316, 1320, 1323, 1326, 1330, 1333, 1336, 1340, 1343, 1346, 1350, 1353, 1356, 1360, 1363, 1366, 1370, 1373, 1376, 1379, 1383, 1386, 1389, 1393, 1396, 1399, 1403, 1406, 1409, 1413, 1416, 1419, 1423, 1426, 1429, 1433, 1436, 1439, 1443, 1446, 1449, 1453, 1456, 1459, 1463, 1466, 1469, 1472,
    1476, 1479, 1482, 1486, 1489, 1492, 1496, 1499, 1502, 1506, 1509, 1512, 1516, 1519, 1522, 1526, 1529, 1532, 1536, 1539, 1542, 1546, 1549, 1552, 1556, 1559, 1562, 1566, 1569, 1572, 1575, 1579, 1582, 1585, 1589, 1592, 1595, 1599, 1602, 1605, 1609, 1612, 1615, 1619, 1622, 1625, 1629, 1632, 1635, 1639, 1642, 1645, 1649, 1652, 1655, 1659, 1662, 1665, 1668, 1672, 1675, 1678, 1682, 1685, 1688, 1692, 1695, 1698, 1702, 1705, 1708, 1712, 1715, 1718, 1722, 1725, 1728, 1732, 1735, 1738, 1742, 1745, 1748, 1752, 1755,
    1758, 1761, 1765, 1768, 1771, 1775, 1778, 1781, 1785, 1788, 1791, 1795, 1798, 1801, 1805, 1808, 1811, 1815, 1818, 1821, 1825, 1828, 1831, 1835, 1838, 1841, 1845, 1848, 1851, 1855, 1858, 1861, 1864, 1868, 1871, 1874, 1878, 1881, 1884, 1888, 1891, 1894, 1898, 1901, 1904, 1908, 1911, 1914, 1918, 1921, 1924, 1928, 1931, 1934, 1938, 1941, 1944, 1948, 1951, 1954, 1957, 1961, 1964, 1967, 1971, 1974, 1977, 1981, 1984, 1987, 1991, 1994, 1997, 2001, 2004, 2007, 2011, 2014, 2017, 2021, 2024, 2027, 2031, 2034, 2037,
    2041, 2044, 2047, 2051, 2054, 2057, 2060, 2064, 2067, 2070, 2074, 2077, 2080, 2084, 2087, 2090, 2094, 2097, 2100, 2104, 2107, 2110, 2114]);
};
function nms_EntityBlaze() {
    let a = this; nms_EntityMob.call(a);
    a.$heightOffset = 0.0;
    a.$heightOffsetUpdateTime = 0;
    a.$field_70846_g = 0;
}
let nms_EntityBlaze_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$1);
    var$2 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$2.$baseValue) {
        var$2.$baseValue = 0.10000000149011612;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_attackDamage;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$1 = var$3 === null ? null : var$3.$value0;
    if (6.0 !== var$1.$baseValue) {
        var$1.$baseValue = 6.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
},
nms_EntityBlaze_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Byte;
    var$1.$value1 = 0;
    nms_DataWatcher_addObject(var$2, 16, var$1);
},
nms_EntityBlaze_getLivingSound = $this => {
    return $rt_s(2392);
},
nms_EntityBlaze_getHurtSound = $this => {
    return $rt_s(2393);
},
nms_EntityBlaze_getDeathSound = $this => {
    return $rt_s(2394);
},
nms_EntityBlaze_getBrightness = ($this, $par1) => {
    return 1.0;
},
nms_EntityBlaze_onLivingUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var1, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var1 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote) {
            $ptr = 1;
            continue main;
        }
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            var$4 = var$3 % 24 | 0;
            if (((var$3 - var$4 | 0) + 23 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        if (!var$4) {
            var$5 = $this.$worldObj;
            var$6 = $this.$posX + 0.5;
            var$7 = $this.$posY + 0.5;
            var$8 = $this.$posZ + 0.5;
            var$9 = $rt_s(2395);
            var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$10;
            var$11 = 1.0 + Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
            var$2 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$12 = Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 0.699999988079071 + 0.30000001192092896;
            $var1 = 0;
            var$3 = $rt_compare(var$11, 1.0);
            var$14 = null;
            var$15 = 16.0 * var$11;
            var$1 = var$5.$worldAccesses;
            var$16 = $rt_compare($var1, var$1.$size0);
            if (var$16 < 0) {
                if ($var1 >= 0 && var$16 < 0) {
                    var$1 = var$1.$array.data[$var1];
                    var$17 = var$1.$mcServer.$serverConfigManager;
                    var$18 = var$3 <= 0 ? 16.0 : var$15;
                    var$16 = var$1.$theWorldServer.$provider.$dimensionId;
                    var$1 = nms_Packet62LevelSound__init_(var$9, var$6, var$7, var$8, var$11, var$12);
                    $ptr = 4;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
        }
        if (!$this.$onGround) {
            var$18 = $this.$motionY;
            if (var$18 < 0.0)
                $this.$motionY = var$18 * 0.6;
        }
        $var1 = 0;
        a: while (true) {
            if ($var1 >= 2) {
                nms_EntityLivingBase_updateArmSwingProgress($this);
                $this.$entityAge = $this.$entityAge + 2 | 0;
                $ptr = 3;
                continue main;
            }
            var$1 = $this.$worldObj;
            var$5 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$5.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$16 = 0;
            while (true) {
                var$3 = $rt_compare(var$16, var$1.$worldAccesses.$size0);
                if (var$3 >= 0)
                    break;
                if (var$16 < 0)
                    break a;
                if (var$3 >= 0)
                    break a;
                var$16 = var$16 + 1 | 0;
            }
            $var1 = $var1 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 1:
        $tmp = nms_Entity_isWet($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1) {
            var$1 = nms_DamageSource_drown;
            var$11 = 1.0;
            if (!$this.$invulnerable) {
                $ptr = 2;
                continue main;
            }
        }
        $var1 = $this.$heightOffsetUpdateTime - 1 | 0;
        $this.$heightOffsetUpdateTime = $var1;
        if ($var1 <= 0) {
            $this.$heightOffsetUpdateTime = 100;
            $this.$heightOffset = 0.5 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 3.0;
        }
        var$1 = $this.$entityToAttack;
        if (var$1 !== null && var$1.$posY + var$1.$getEyeHeight() > $this.$posY + $this.$height0 * 0.8500000238418579 + $this.$heightOffset) {
            var$8 = $this.$motionY;
            $this.$motionY = var$8 + (0.30000001192092896 - var$8) * 0.30000001192092896;
        }
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            var$4 = var$3 % 24 | 0;
            if (((var$3 - var$4 | 0) + 23 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        if (!var$4) {
            var$5 = $this.$worldObj;
            var$6 = $this.$posX + 0.5;
            var$7 = $this.$posY + 0.5;
            var$8 = $this.$posZ + 0.5;
            var$9 = $rt_s(2395);
            var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$10;
            var$11 = 1.0 + Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
            var$2 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$12 = Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 0.699999988079071 + 0.30000001192092896;
            $var1 = 0;
            var$3 = $rt_compare(var$11, 1.0);
            var$14 = null;
            var$15 = 16.0 * var$11;
            var$1 = var$5.$worldAccesses;
            var$16 = $rt_compare($var1, var$1.$size0);
            if (var$16 < 0) {
                if ($var1 >= 0 && var$16 < 0) {
                    var$1 = var$1.$array.data[$var1];
                    var$17 = var$1.$mcServer.$serverConfigManager;
                    var$18 = var$3 <= 0 ? 16.0 : var$15;
                    var$16 = var$1.$theWorldServer.$provider.$dimensionId;
                    var$1 = nms_Packet62LevelSound__init_(var$9, var$6, var$7, var$8, var$11, var$12);
                    $ptr = 4;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
        }
        if (!$this.$onGround) {
            var$18 = $this.$motionY;
            if (var$18 < 0.0)
                $this.$motionY = var$18 * 0.6;
        }
        $var1 = 0;
        b: while (true) {
            if ($var1 >= 2) {
                nms_EntityLivingBase_updateArmSwingProgress($this);
                $this.$entityAge = $this.$entityAge + 2 | 0;
                $ptr = 3;
                continue main;
            }
            var$1 = $this.$worldObj;
            var$5 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$5.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$16 = 0;
            while (true) {
                var$3 = $rt_compare(var$16, var$1.$worldAccesses.$size0);
                if (var$3 >= 0)
                    break;
                if (var$16 < 0)
                    break b;
                if (var$3 >= 0)
                    break b;
                var$16 = var$16 + 1 | 0;
            }
            $var1 = $var1 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 2:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, var$1, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1) {
            var$1 = var$1.$getEntity();
            if ($this.$riddenByEntity !== var$1 && $this.$ridingEntity !== var$1 && var$1 !== $this)
                $this.$entityToAttack = var$1;
        }
        $var1 = $this.$heightOffsetUpdateTime - 1 | 0;
        $this.$heightOffsetUpdateTime = $var1;
        if ($var1 <= 0) {
            $this.$heightOffsetUpdateTime = 100;
            $this.$heightOffset = 0.5 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 3.0;
        }
        var$1 = $this.$entityToAttack;
        if (var$1 !== null && var$1.$posY + var$1.$getEyeHeight() > $this.$posY + $this.$height0 * 0.8500000238418579 + $this.$heightOffset) {
            var$8 = $this.$motionY;
            $this.$motionY = var$8 + (0.30000001192092896 - var$8) * 0.30000001192092896;
        }
        var$1 = $this.$rand;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
        while (true) {
            var$4 = var$3 % 24 | 0;
            if (((var$3 - var$4 | 0) + 23 | 0) >= 0)
                break;
            var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$3 = Long_lo(Long_shru(var$2, 17));
        }
        if (!var$4) {
            var$5 = $this.$worldObj;
            var$6 = $this.$posX + 0.5;
            var$7 = $this.$posY + 0.5;
            var$8 = $this.$posZ + 0.5;
            var$9 = $rt_s(2395);
            var$10 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$10;
            var$11 = 1.0 + Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
            var$2 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            var$12 = Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 0.699999988079071 + 0.30000001192092896;
            $var1 = 0;
            var$3 = $rt_compare(var$11, 1.0);
            var$14 = null;
            var$15 = 16.0 * var$11;
            var$1 = var$5.$worldAccesses;
            var$16 = $rt_compare($var1, var$1.$size0);
            if (var$16 < 0) {
                if ($var1 >= 0 && var$16 < 0) {
                    var$1 = var$1.$array.data[$var1];
                    var$17 = var$1.$mcServer.$serverConfigManager;
                    var$18 = var$3 <= 0 ? 16.0 : var$15;
                    var$16 = var$1.$theWorldServer.$provider.$dimensionId;
                    var$1 = nms_Packet62LevelSound__init_(var$9, var$6, var$7, var$8, var$11, var$12);
                    $ptr = 4;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
        }
        if (!$this.$onGround) {
            var$18 = $this.$motionY;
            if (var$18 < 0.0)
                $this.$motionY = var$18 * 0.6;
        }
        $var1 = 0;
        c: while (true) {
            if ($var1 >= 2) {
                nms_EntityLivingBase_updateArmSwingProgress($this);
                $this.$entityAge = $this.$entityAge + 2 | 0;
                $ptr = 3;
                continue main;
            }
            var$1 = $this.$worldObj;
            var$5 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$5.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$16 = 0;
            while (true) {
                var$3 = $rt_compare(var$16, var$1.$worldAccesses.$size0);
                if (var$3 >= 0)
                    break;
                if (var$16 < 0)
                    break c;
                if (var$3 >= 0)
                    break c;
                var$16 = var$16 + 1 | 0;
            }
            $var1 = $var1 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 3:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$17, var$14, var$6, var$7, var$8, var$18, var$16, var$1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        var$1 = var$5.$worldAccesses;
        var$16 = $rt_compare($var1, var$1.$size0);
        if (var$16 < 0) {
            if ($var1 >= 0 && var$16 < 0) {
                var$1 = var$1.$array.data[$var1];
                var$17 = var$1.$mcServer.$serverConfigManager;
                var$18 = var$3 <= 0 ? 16.0 : var$15;
                var$16 = var$1.$theWorldServer.$provider.$dimensionId;
                var$1 = nms_Packet62LevelSound__init_(var$9, var$6, var$7, var$8, var$11, var$12);
                continue main;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        if (!$this.$onGround) {
            var$18 = $this.$motionY;
            if (var$18 < 0.0)
                $this.$motionY = var$18 * 0.6;
        }
        $var1 = 0;
        d: while (true) {
            if ($var1 >= 2) {
                nms_EntityLivingBase_updateArmSwingProgress($this);
                $this.$entityAge = $this.$entityAge + 2 | 0;
                $ptr = 3;
                continue main;
            }
            var$1 = $this.$worldObj;
            var$5 = $this.$rand;
            var$10 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$10;
            var$5.$seed = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$16 = 0;
            while (true) {
                var$3 = $rt_compare(var$16, var$1.$worldAccesses.$size0);
                if (var$3 >= 0)
                    break;
                if (var$16 < 0)
                    break d;
                if (var$3 >= 0)
                    break d;
                var$16 = var$16 + 1 | 0;
            }
            $var1 = $var1 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var1, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityBlaze_attackEntity = ($this, $par1Entity, $par2) => {
    let $var10, $var11, $var7, var$6, $var3, $var5, var$9, var$10, var$11, var$12, var$13, $var9, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var9 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par2 =
        $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10 = $this.$attackTime;
        if ($var10 <= 0 && $par2 < 2.0) {
            $var11 = $par1Entity.$boundingBox0;
            $var7 = $var11.$maxY;
            var$6 = $this.$boundingBox0;
            if ($var7 > var$6.$minY0 && $var11.$minY0 < var$6.$maxY) {
                $this.$attackTime = 20;
                $ptr = 1;
                continue main;
            }
        }
        if ($par2 < 30.0) {
            $var3 = $par1Entity.$posX - $this.$posX;
            $var5 = $par1Entity.$boundingBox0.$minY0 + $par1Entity.$height0 / 2.0 - ($this.$posY + $this.$height0 / 2.0);
            $var7 = $par1Entity.$posZ - $this.$posZ;
            if (!$var10) {
                $var10 = $this.$field_70846_g + 1 | 0;
                $this.$field_70846_g = $var10;
                if ($var10 == 1) {
                    $this.$attackTime = 60;
                    $par1Entity = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var11 = jl_Integer_integerCache.data[144];
                    if ($var11 === null) {
                        $par1Entity = $par1Entity.$elementData.data[0];
                        while ($par1Entity !== null && $par1Entity.$key !== null) {
                            $par1Entity = $par1Entity.$next3;
                        }
                    } else {
                        $var10 = $var11.$value;
                        var$9 = $par1Entity.$elementData.data;
                        $par1Entity = var$9[$var10 & (var$9.length - 1 | 0)];
                        while ($par1Entity !== null) {
                            if ($par1Entity.$origKeyHash == $var10) {
                                var$6 = $par1Entity.$key;
                                if ($var11 !== var$6 && !($var11 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == $var10 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $par1Entity = $par1Entity.$next3;
                        }
                    }
                    $par1Entity = $par1Entity === null ? null : $par1Entity.$value0;
                    $var10 = ($par1Entity.$watchedObject.$value1 | 1) << 24 >> 24;
                    $par1Entity = $this.$dataWatcher;
                    var$6 = jl_Byte_byteCache.data[$var10 + 128 | 0];
                    $var11 = $par1Entity.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$10 = jl_Integer_integerCache.data[144];
                    if (var$10 === null) {
                        $var11 = $var11.$elementData.data[0];
                        while ($var11 !== null && $var11.$key !== null) {
                            $var11 = $var11.$next3;
                        }
                    } else {
                        var$11 = var$10.$value;
                        var$9 = $var11.$elementData.data;
                        $var11 = var$9[var$11 & (var$9.length - 1 | 0)];
                        while ($var11 !== null) {
                            if ($var11.$origKeyHash == var$11) {
                                var$12 = $var11.$key;
                                if (var$10 !== var$12 && !(var$10 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var11 = $var11.$next3;
                        }
                    }
                    $var11 = $var11 === null ? null : $var11.$value0;
                    var$12 = $var11.$watchedObject;
                    if (!(var$12 instanceof jl_Byte && var$12.$value1 == var$6.$value1 ? 1 : 0)) {
                        $var11.$watchedObject = var$6;
                        $var11.$watched = 1;
                        $par1Entity.$objectChanged = 1;
                    }
                } else if ($var10 <= 4)
                    $this.$attackTime = 6;
                else {
                    $this.$attackTime = 100;
                    $this.$field_70846_g = 0;
                    $par1Entity = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[144];
                    if (var$6 === null) {
                        $par1Entity = $par1Entity.$elementData.data[0];
                        while ($par1Entity !== null && $par1Entity.$key !== null) {
                            $par1Entity = $par1Entity.$next3;
                        }
                    } else {
                        var$11 = var$6.$value;
                        var$9 = $par1Entity.$elementData.data;
                        $par1Entity = var$9[var$11 & (var$9.length - 1 | 0)];
                        while ($par1Entity !== null) {
                            if ($par1Entity.$origKeyHash == var$11) {
                                $var11 = $par1Entity.$key;
                                if (var$6 !== $var11 && !(var$6 === $var11 ? 1 : $var11 instanceof jl_Integer && $var11.$value == var$11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $par1Entity = $par1Entity.$next3;
                        }
                    }
                    $par1Entity = $par1Entity === null ? null : $par1Entity.$value0;
                    var$13 = ($par1Entity.$watchedObject.$value1 & (-2)) << 24 >> 24;
                    var$12 = $this.$dataWatcher;
                    var$6 = jl_Byte_byteCache.data[var$13 + 128 | 0];
                    $par1Entity = var$12.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var11 = jl_Integer_integerCache.data[144];
                    if ($var11 === null) {
                        var$10 = $par1Entity.$elementData.data[0];
                        while (var$10 !== null && var$10.$key !== null) {
                            var$10 = var$10.$next3;
                        }
                    } else {
                        var$11 = $var11.$value;
                        var$9 = $par1Entity.$elementData.data;
                        var$10 = var$9[var$11 & (var$9.length - 1 | 0)];
                        while (var$10 !== null) {
                            if (var$10.$origKeyHash == var$11) {
                                $par1Entity = var$10.$key;
                                if ($var11 !== $par1Entity && !($var11 === $par1Entity ? 1 : $par1Entity instanceof jl_Integer && $par1Entity.$value == var$11 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$10 = var$10.$next3;
                        }
                    }
                    $var11 = var$10 === null ? null : var$10.$value0;
                    $par1Entity = $var11.$watchedObject;
                    if (!($par1Entity instanceof jl_Byte && $par1Entity.$value1 == var$6.$value1 ? 1 : 0)) {
                        $var11.$watchedObject = var$6;
                        $var11.$watched = 1;
                        var$12.$objectChanged = 1;
                    }
                }
                if ($this.$field_70846_g > 1) {
                    $var9 = jl_Math_sqrt($par2) * 0.5;
                    var$10 = $this.$worldObj;
                    var$12 = null;
                    var$15 = 1009;
                    var$16 = $this.$posX | 0;
                    var$17 = $this.$posY | 0;
                    var$18 = $this.$posZ | 0;
                    $var10 = 0;
                    var$13 = 0;
                    var$19 = var$16;
                    var$20 = var$17;
                    var$21 = var$18;
                    $par1Entity = var$10.$worldAccesses;
                    var$11 = $rt_compare(var$13, $par1Entity.$size0);
                    if (var$11 < 0) {
                        if (var$13 >= 0 && var$11 < 0) {
                            $par1Entity = $par1Entity.$array.data[var$13];
                            var$6 = $par1Entity.$mcServer.$serverConfigManager;
                            var$22 = 64.0;
                            var$23 = $par1Entity.$theWorldServer.$provider.$dimensionId;
                            $par1Entity = new nms_Packet61DoorChange;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $par1Entity.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $par1Entity.$sfxID = var$15;
                            $par1Entity.$posX1 = var$16;
                            $par1Entity.$posY1 = var$17;
                            $par1Entity.$posZ1 = var$18;
                            $par1Entity.$auxData = $var10;
                            $par1Entity.$disableRelativeVolume = 0;
                            $ptr = 5;
                            continue main;
                        }
                        $par1Entity = new jl_IndexOutOfBoundsException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        $rt_throw($par1Entity);
                    }
                    $var10 = 0;
                    var$19 = $var9;
                    if ($var10 < 1) {
                        $var11 = new nms_EntitySmallFireball;
                        $par1Entity = $this.$worldObj;
                        var$22 = $var3 + nle_EaglercraftRandom_nextGaussian($this.$rand) * var$19;
                        var$20 = $var7 + nle_EaglercraftRandom_nextGaussian($this.$rand) * var$19;
                        $ptr = 2;
                        continue main;
                    }
                }
            }
            $this.$rotationYaw = jl_Math_atan2($var7, $var3) * 180.0 / 3.141592653589793 - 90.0;
            $this.$hasAttacked = 1;
        }
        return;
    case 1:
        nms_EntityMob_attackEntityAsMob($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_EntityFireball__init_($var11, $par1Entity, $this, var$22, $var5, var$20);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = 0.3125;
        $var9 = 0.3125;
        $ptr = 3;
    case 3:
        nms_Entity_setSize($var11, $par2, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var11.$posY = $this.$posY + $this.$height0 / 2.0 + 0.5;
        $par1Entity = $this.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par1Entity, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + 1 | 0;
        if ($var10 >= 1) {
            $this.$rotationYaw = jl_Math_atan2($var7, $var3) * 180.0 / 3.141592653589793 - 90.0;
            $this.$hasAttacked = 1;
            return;
        }
        $var11 = new nms_EntitySmallFireball;
        $par1Entity = $this.$worldObj;
        var$22 = $var3 + nle_EaglercraftRandom_nextGaussian($this.$rand) * var$19;
        var$20 = $var7 + nle_EaglercraftRandom_nextGaussian($this.$rand) * var$19;
        $ptr = 2;
        continue main;
    case 5:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$6, var$12, var$19, var$20, var$21, var$22, var$23, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$13 + 1 | 0;
        $par1Entity = var$10.$worldAccesses;
        var$11 = $rt_compare(var$13, $par1Entity.$size0);
        if (var$11 >= 0) {
            $var10 = 0;
            var$19 = $var9;
            if ($var10 >= 1) {
                $this.$rotationYaw = jl_Math_atan2($var7, $var3) * 180.0 / 3.141592653589793 - 90.0;
                $this.$hasAttacked = 1;
                return;
            }
            $var11 = new nms_EntitySmallFireball;
            $par1Entity = $this.$worldObj;
            var$22 = $var3 + nle_EaglercraftRandom_nextGaussian($this.$rand) * var$19;
            var$20 = $var7 + nle_EaglercraftRandom_nextGaussian($this.$rand) * var$19;
            $ptr = 2;
            continue main;
        }
        if (var$13 >= 0 && var$11 < 0) {
            $par1Entity = $par1Entity.$array.data[var$13];
            var$6 = $par1Entity.$mcServer.$serverConfigManager;
            var$22 = 64.0;
            var$23 = $par1Entity.$theWorldServer.$provider.$dimensionId;
            $par1Entity = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1Entity.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1Entity.$sfxID = var$15;
            $par1Entity.$posX1 = var$16;
            $par1Entity.$posY1 = var$17;
            $par1Entity.$posZ1 = var$18;
            $par1Entity.$auxData = $var10;
            $par1Entity.$disableRelativeVolume = 0;
            continue main;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        $par1Entity.$suppressionEnabled = 1;
        $par1Entity.$writableStackTrace = 1;
        $rt_throw($par1Entity);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $var10, $var11, $var7, var$6, $var3, $var5, var$9, var$10, var$11, var$12, var$13, $var9, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_EntityBlaze_fall = ($this, $par1) => {
    return;
},
nms_EntityBlaze_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_blazeRod.$itemID0;
},
nms_EntityBlaze_isBurning = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return !(var$1.$watchedObject.$value1 & 1) ? 0 : 1;
},
nms_EntityBlaze_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, $var4, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1) {
            var$3 = $this.$rand;
            $par1 = 2 + $par2 | 0;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var4 = Long_lo(Long_shru(var$4, 17));
            $par2 = $par1 - 1 | 0;
            if (!($par1 & $par2))
                $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt($var4)), 31));
            else
                while (true) {
                    $var3 = $var4 % $par1 | 0;
                    if ((($var4 - $var3 | 0) + $par2 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    $var4 = Long_lo(Long_shru(var$4, 17));
                }
            $var4 = 0;
            var$7 = 0.0;
            $par1 = 138;
            if ($var4 < $var3) {
                nms_Item_$callClinit();
                $par2 = nms_Item_blazeRod.$itemID0;
                var$8 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$8.$itemID = $par2;
                var$8.$stackSize = 1;
                var$8.$itemDamage = 0;
                var$9 = new nms_EntityItem;
                var$3 = $this.$worldObj;
                var$10 = $this.$posX;
                var$11 = $this.$posY + var$7;
                var$12 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityItem__init_(var$9, var$3, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$9.$dataWatcher;
        var$3 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[$par1]);
        var$3 = var$3 === null ? null : var$3.$value0;
        if (!(var$8 !== var$3.$watchedObject ? 0 : 1)) {
            var$3.$watchedObject = var$8;
            var$3.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$14 = var$9.$dataWatcher;
        var$13 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$13, jl_Integer_integerCache.data[$par1]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$14.$objectChanged = 1;
        var$9.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= $var3)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_blazeRod.$itemID0;
        var$8 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$8.$itemID = $par2;
        var$8.$stackSize = 1;
        var$8.$itemDamage = 0;
        var$9 = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$10 = $this.$posX;
        var$11 = $this.$posY + var$7;
        var$12 = $this.$posZ;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, $var4, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityBlaze_isValidLightLevel = $this => {
    return 1;
};
function nms_NoiseGeneratorPerlin() {
    let a = this; nms_NoiseGenerator.call(a);
    a.$permutations = null;
    a.$xCoord3 = 0.0;
    a.$yCoord3 = 0.0;
    a.$zCoord3 = 0.0;
}
let nms_NoiseGeneratorPerlin__init_1 = $this => {
    let var$1, var$2;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    nms_NoiseGeneratorPerlin__init_0($this, var$1);
},
nms_NoiseGeneratorPerlin__init_2 = () => {
    let var_0 = new nms_NoiseGeneratorPerlin();
    nms_NoiseGeneratorPerlin__init_1(var_0);
    return var_0;
},
nms_NoiseGeneratorPerlin__init_0 = ($this, $par1Random) => {
    let var$2, var$3, var$4, var$5, var$6, $var2, $var2_0, $var3, var$10, $var4, var$12;
    var$2 = $rt_createIntArray(512);
    var$3 = var$2.data;
    $this.$permutations = var$2;
    var$4 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$4;
    var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
    var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$4;
    $this.$xCoord3 = Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$4, 21))))) * 1.1102230246251565E-16 * 256.0;
    var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$4;
    var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
    var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$4;
    $this.$yCoord3 = Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$4, 21))))) * 1.1102230246251565E-16 * 256.0;
    var$4 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$4;
    var$5 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$4, 22))), 27);
    var$6 = Long_and(Long_add(Long_mul(var$4, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$6;
    $this.$zCoord3 = Long_toNumber(Long_add(var$5, Long_fromInt(Long_lo(Long_shru(var$6, 21))))) * 1.1102230246251565E-16 * 256.0;
    $var2 = 0;
    while ($var2 < 256) {
        $var2_0 = $var2 + 1 | 0;
        var$3[$var2] = $var2;
        $var2 = $var2_0;
    }
    $var2_0 = 0;
    while ($var2_0 < 256) {
        $var3 = 256 - $var2_0 | 0;
        var$5 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$5;
        var$10 = Long_lo(Long_shru(var$5, 17));
        $var4 = $var3 - 1 | 0;
        if (!($var3 & $var4))
            var$12 = Long_lo(Long_shr(Long_mul(Long_fromInt($var3), Long_fromInt(var$10)), 31));
        else
            while (true) {
                var$12 = var$10 % $var3 | 0;
                if (((var$10 - var$12 | 0) + $var4 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1Random.$seed = var$5;
                var$10 = Long_lo(Long_shru(var$5, 17));
            }
        $var3 = var$12 + $var2_0 | 0;
        $var4 = var$3[$var2_0];
        var$3[$var2_0] = var$3[$var3];
        var$3[$var3] = $var4;
        var$3[$var2_0 + 256 | 0] = var$3[$var2_0];
        $var2_0 = $var2_0 + 1 | 0;
    }
},
nms_NoiseGeneratorPerlin__init_ = var_0 => {
    let var_1 = new nms_NoiseGeneratorPerlin();
    nms_NoiseGeneratorPerlin__init_0(var_1, var_0);
    return var_1;
},
nms_NoiseGeneratorPerlin_func_76309_a = ($this, $par1, $var9, $var9_0) => {
    let $var6, $var7;
    $var6 = $par1 & 15;
    $var7 = (1 - (($var6 & 8) >> 3) | 0) * $var9;
    if ($var6 < 4)
        $var9 = 0.0;
    else if ($var6 != 12 && $var6 != 14)
        $var9 = $var9_0;
    if ($var6 & 1)
        $var7 =  -$var7;
    if ($var6 & 2)
        $var9 =  -$var9;
    return $var7 + $var9;
},
nms_NoiseGeneratorPerlin_grad = ($this, $par1, $var11, $var11_0, $var11_1) => {
    let $var8, $var9;
    $var8 = $par1 & 15;
    $var9 = $var8 >= 8 ? $var11_0 : $var11;
    if ($var8 >= 4)
        $var11_0 = $var8 != 12 && $var8 != 14 ? $var11_1 : $var11;
    if ($var8 & 1)
        $var9 =  -$var9;
    if ($var8 & 2)
        $var11_0 =  -$var11_0;
    return $var9 + $var11_0;
},
nms_NoiseGeneratorPerlin_populateNoiseArray = ($this, $par1ArrayOfDouble, $par2, $par4, $par6, $par8, $par9, $par10, $par11, $par13, $par15, $par17) => {
    let $var75, $var77, $var30, $var31, $var78, $var34, $var33, $var35, $var37, $var47, $var38, $var40, var$24, $var41, $var42, var$27, $var66, $var22, $var29, $var79, $var19, $var20, $var44, $var45, $var48, $var49, $var51, $var52, $var54, $var55, $var60, $var56, $var69, $var71, $var72, $var74, $var76, $var58, $var62;
    a: {
        if ($par9 == 1) {
            $var75 = 0;
            $var77 = 1.0 / $par17;
            $var30 = 0;
            while ($var30 < $par8) {
                $var31 = $par2 + $var30 * $par11 + $this.$xCoord3;
                $var78 = $var31 | 0;
                if ($var31 < $var78)
                    $var78 = $var78 + (-1) | 0;
                $var34 = $var78 & 255;
                $var33 = $var31 - $var78;
                $var35 = $var33 * $var33 * $var33 * ($var33 * ($var33 * 6.0 - 15.0) + 10.0);
                $var37 = 0;
                $var47 = $var34 + 1 | 0;
                $var31 = $var33 - 1.0;
                while ($var37 < $par10) {
                    $var38 = $par6 + $var37 * $par15 + $this.$zCoord3;
                    $var40 = $var38 | 0;
                    if ($var38 < $var40)
                        $var40 = $var40 + (-1) | 0;
                    var$24 = $par1ArrayOfDouble.data;
                    $var41 = $var40 & 255;
                    $par4 = $var38 - $var40;
                    $var42 = $par4 * $par4 * $par4 * ($par4 * ($par4 * 6.0 - 15.0) + 10.0);
                    var$27 = $this.$permutations.data;
                    $var66 = var$27[var$27[$var34] + 0 | 0] + $var41 | 0;
                    $var22 = var$27[var$27[$var47] + 0 | 0] + $var41 | 0;
                    $par13 = nms_NoiseGeneratorPerlin_func_76309_a($this, var$27[$var66], $var33, $par4);
                    $par13 = $par13 + $var35 * (nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var22], $var31, 0.0, $par4) - $par13);
                    $par9 = $this.$permutations.data[$var66 + 1 | 0];
                    $par17 = $par4 - 1.0;
                    $var29 = nms_NoiseGeneratorPerlin_grad($this, $par9, $var33, 0.0, $par17);
                    $var79 = $par13 + $var42 * ($var29 + $var35 * (nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var22 + 1 | 0], $var31, 0.0, $par17) - $var29) - $par13);
                    $par9 = $var75 + 1 | 0;
                    var$24[$var75] = var$24[$var75] + $var79 * $var77;
                    $var37 = $var37 + 1 | 0;
                    $var75 = $par9;
                }
                $var30 = $var30 + 1 | 0;
            }
        } else {
            $var19 = 0;
            $var20 = 1.0 / $par17;
            $var22 = (-1);
            $var29 = 0.0;
            $var31 = 0.0;
            $var33 = 0.0;
            $var35 = 0.0;
            $var37 = 0;
            while (true) {
                if ($var37 >= $par8)
                    break a;
                $var38 = $par2 + $var37 * $par11 + $this.$xCoord3;
                $var40 = $var38 | 0;
                if ($var38 < $var40)
                    $var40 = $var40 + (-1) | 0;
                $var41 = $var40 & 255;
                $var77 = $var38 - $var40;
                $var42 = $var77 * $var77 * $var77 * ($var77 * ($var77 * 6.0 - 15.0) + 10.0);
                $var44 = 0;
                $var40 = $var41 + 1 | 0;
                $var79 = $var77 - 1.0;
                while ($var44 < $par10) {
                    $var45 = $par6 + $var44 * $par15 + $this.$zCoord3;
                    $var47 = $var45 | 0;
                    if ($var45 < $var47)
                        $var47 = $var47 + (-1) | 0;
                    $var48 = $var47 & 255;
                    $par17 = $var45 - $var47;
                    $var49 = $par17 * $par17 * $par17 * ($par17 * ($par17 * 6.0 - 15.0) + 10.0);
                    $var51 = 0;
                    $var38 = $par17 - 1.0;
                    while ($var51 < $par9) {
                        $var52 = $par4 + $var51 * $par13 + $this.$yCoord3;
                        $var54 = $var52 | 0;
                        if ($var52 < $var54)
                            $var54 = $var54 + (-1) | 0;
                        $var55 = $var54 & 255;
                        $var60 = $var52 - $var54;
                        $var56 = $var60 * $var60 * $var60 * ($var60 * ($var60 * 6.0 - 15.0) + 10.0);
                        if ($var51 && $var55 == $var22)
                            $var55 = $var22;
                        else {
                            var$27 = $this.$permutations.data;
                            $var69 = var$27[$var41] + $var55 | 0;
                            $var71 = var$27[$var69] + $var48 | 0;
                            $var72 = var$27[$var69 + 1 | 0] + $var48 | 0;
                            $var74 = var$27[$var40] + $var55 | 0;
                            $var75 = var$27[$var74] + $var48 | 0;
                            $var76 = var$27[$var74 + 1 | 0] + $var48 | 0;
                            $var29 = nms_NoiseGeneratorPerlin_grad($this, var$27[$var71], $var77, $var60, $par17);
                            $var29 = $var29 + $var42 * (nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var75], $var79, $var60, $par17) - $var29);
                            $var22 = $this.$permutations.data[$var72];
                            $var45 = $var60 - 1.0;
                            $var33 = nms_NoiseGeneratorPerlin_grad($this, $var22, $var77, $var45, $par17);
                            $var31 = $var33 + $var42 * (nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var76], $var79, $var45, $par17) - $var33);
                            $var33 = nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var71 + 1 | 0], $var77, $var60, $var38);
                            $var33 = $var33 + $var42 * (nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var75 + 1 | 0], $var79, $var60, $var38) - $var33);
                            $var35 = nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var72 + 1 | 0], $var77, $var45, $var38);
                            $var35 = $var35 + $var42 * (nms_NoiseGeneratorPerlin_grad($this, $this.$permutations.data[$var76 + 1 | 0], $var79, $var45, $var38) - $var35);
                        }
                        var$27 = $par1ArrayOfDouble.data;
                        $var58 = $var29 + $var56 * ($var31 - $var29);
                        $var62 = $var58 + $var49 * ($var33 + $var56 * ($var35 - $var33) - $var58);
                        $var22 = $var19 + 1 | 0;
                        var$27[$var19] = var$27[$var19] + $var62 * $var20;
                        $var51 = $var51 + 1 | 0;
                        $var19 = $var22;
                        $var22 = $var55;
                    }
                    $var44 = $var44 + 1 | 0;
                }
                $var37 = $var37 + 1 | 0;
            }
        }
    }
};
function nms_ChunkCoordIntPair() {
    let a = this; jl_Object.call(a);
    a.$chunkXPos = 0;
    a.$chunkZPos = 0;
}
let nms_ChunkCoordIntPair_chunkXZ2Int = ($par0, $par1) => {
    return Long_or(Long_and(Long_fromInt($par0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($par1), Long_create(4294967295, 0)), 32));
},
nms_ChunkCoordIntPair_hashCode = $this => {
    let $var4, $var3, $var1;
    $var4 = $this.$chunkXPos;
    $var3 = $this.$chunkZPos;
    $var1 = Long_or(Long_and(Long_fromInt($var4), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), 32));
    return Long_lo($var1) ^ Long_hi($var1);
},
nms_ChunkCoordIntPair_equals = ($this, $par1Obj) => {
    let $var2;
    $var2 = $par1Obj;
    return $var2.$chunkXPos == $this.$chunkXPos && $var2.$chunkZPos == $this.$chunkZPos ? 1 : 0;
},
nms_ChunkCoordIntPair_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$chunkXPos;
    var$2 = $this.$chunkZPos;
    var$3 = new jl_StringBuilder;
    var$3.$buffer = $rt_createCharArray(16);
    var$4 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$4, var$4 + 1 | 0);
    var$3.$buffer.data[var$4] = 91;
    jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, var$1, 10);
    jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert0(var$3, var$3.$length0, var$2, 10);
    var$2 = var$3.$length0;
    jl_AbstractStringBuilder_insertSpace(var$3, var$2, var$2 + 1 | 0);
    var$5 = var$3.$buffer;
    var$6 = var$5.data;
    var$6[var$2] = 93;
    var$7 = new jl_String;
    var$2 = var$3.$length0;
    var$8 = var$6.length;
    if (var$2 >= 0 && var$2 <= (var$8 - 0 | 0)) {
        var$7.$nativeString = $rt_charArrayToString(var$5.data, 0, var$2);
        return var$7;
    }
    var$3 = new jl_IndexOutOfBoundsException;
    var$3.$suppressionEnabled = 1;
    var$3.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$3);
    $rt_throw(var$3);
};
function nms_EntityWitch() {
    nms_EntityMob.call(this);
    this.$witchAttackTimer = 0;
}
let nms_EntityWitch_field_110184_bp = null,
nms_EntityWitch_field_110185_bq = null,
nms_EntityWitch_witchDrops = null,
nms_EntityWitch_$callClinit = () => {
    nms_EntityWitch_$callClinit = $rt_eraseClinit(nms_EntityWitch);
    nms_EntityWitch__clinit_();
},
nms_EntityWitch__init_0 = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityWitch_$callClinit();
    nms_EntityCreature_$callClinit();
    nms_EntityLiving__init_($this, $par1World);
    $par1World = new nms_ChunkCoordinates;
    $par1World.$posX0 = 0;
    $par1World.$posY0 = 0;
    $par1World.$posZ0 = 0;
    $this.$homePosition = $par1World;
    $this.$maximumHomeDistance = (-1.0);
    $par1World = new nms_EntityAIMoveTowardsRestriction;
    $par1World.$theEntity0 = $this;
    $par1World.$movementSpeed = 1.0;
    $par1World.$mutexBits = 1;
    $this.$field_110178_bs = $par1World;
    $this.$experienceValue = 5;
    var$2 = $this.$tasks0;
    $par1World = new nms_EntityAISwimming;
    $par1World.$theEntity3 = $this;
    $par1World.$mutexBits = 4;
    $this.$navigator.$canSwim = 1;
    var$3 = var$2.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = var$2;
    var$4.$priority = 1;
    var$4.$action = $par1World;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAIArrowAttack;
    var$2.$rangedAttackTime = (-1);
    if (!($this instanceof nms_EntityLivingBase)) {
        $par1World = new jl_IllegalArgumentException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $par1World.$message = $rt_s(2357);
        $rt_throw($par1World);
    }
    var$2.$rangedAttackEntityHost = $this;
    var$2.$entityHost = $this;
    var$2.$entityMoveSpeed = 1.0;
    var$2.$field_96561_g = 60;
    var$2.$maxRangedAttackTime = 60;
    var$2.$field_96562_i = 10.0;
    var$2.$field_82642_h = 100.0;
    var$2.$mutexBits = 3;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 2;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAIWander;
    var$2.$entity = $this;
    var$2.$speed = 1.0;
    var$2.$mutexBits = 1;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 2;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAIWatchClosest;
    var$2.$theWatcher = $this;
    var$2.$watchedClass = $rt_cls(nms_EntityPlayer);
    var$2.$maxDistanceForPlayer = 8.0;
    var$2.$field_75331_e = 0.019999999552965164;
    var$2.$mutexBits = 2;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 3;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$7 = var$3.$size0;
    var$3.$size0 = var$7 + 1 | 0;
    var$5[var$7] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$tasks0;
    var$2 = new nms_EntityAILookIdle;
    var$2.$idleEntity = $this;
    var$2.$mutexBits = 3;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 3;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$2 = new nms_EntityAIHurtByTarget;
    var$2.$taskOwner = $this;
    var$2.$shouldCheckSight = 0;
    var$2.$nearbyOnly = 0;
    var$2.$entityCallsForHelp = 0;
    var$2.$mutexBits = 1;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 1;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $par1World = $this.$targetTasks;
    var$2 = new nms_EntityAINearestAttackableTarget;
    var$3 = null;
    var$2.$taskOwner = $this;
    var$2.$shouldCheckSight = 1;
    var$2.$nearbyOnly = 0;
    var$2.$targetClass = $rt_cls(nms_EntityPlayer);
    var$2.$targetChance = 0;
    var$4 = new nms_EntityAINearestAttackableTargetSorter;
    var$4.$theEntity5 = $this;
    var$2.$theNearestAttackableTargetSorter = var$4;
    var$2.$mutexBits = 1;
    var$4 = new nms_EntityAINearestAttackableTargetSelector;
    var$4.$field_111102_d = var$2;
    var$4.$field_111103_c = var$3;
    var$2.$targetEntitySelector = var$4;
    var$3 = $par1World.$taskEntries;
    var$4 = new nms_EntityAITaskEntry;
    var$4.$tasks = $par1World;
    var$4.$priority = 2;
    var$4.$action = var$2;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$5 = var$3.$array.data;
    var$6 = var$3.$size0;
    var$3.$size0 = var$6 + 1 | 0;
    var$5[var$6] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
},
nms_EntityWitch__init_ = var_0 => {
    let var_1 = new nms_EntityWitch();
    nms_EntityWitch__init_0(var_1, var_0);
    return var_1;
},
nms_EntityWitch_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    nms_DataWatcher_addObject($this.$dataWatcher, 21, jl_Byte_byteCache.data[128]);
},
nms_EntityWitch_getLivingSound = $this => {
    return $rt_s(2396);
},
nms_EntityWitch_getHurtSound = $this => {
    return $rt_s(2397);
},
nms_EntityWitch_getDeathSound = $this => {
    return $rt_s(2398);
},
nms_EntityWitch_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (26.0 !== var$3.$baseValue) {
        var$3.$baseValue = 26.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.25 !== var$1.$baseValue) {
        var$1.$baseValue = 0.25;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityWitch_isAIEnabled = $this => {
    return 1;
},
nms_EntityWitch_onLivingUpdate = $this => {
    let $var2, $var4, var$3, var$4, $var1, $var5, var$7, $var3$index, var$9, var$10, var$11, var$12, $var3$index_0, var$14, var$15, var$16, var$17, var$18, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var3$index_0 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3$index = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var1 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote) {
            $var2 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var4 = jl_Integer_integerCache.data[149];
            if ($var4 === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                var$3 = $var4.$value;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$3) {
                        $var1 = $var2.$key;
                        if ($var4 !== $var1 && !($var4 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == var$3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var2 = $var2 === null ? null : $var2.$value0;
            if (!($var2.$watchedObject.$value1 != 1 ? 0 : 1)) {
                a: {
                    $var5 = (-1);
                    $var2 = $this.$rand;
                    var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$7;
                    if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.15000000596046448) {
                        b: {
                            c: {
                                if (!$this.$isImmuneToFire) {
                                    if ($this.$fire > 0)
                                        break c;
                                    $var2 = $this.$dataWatcher.$watchedObjects;
                                    jl_Integer_ensureIntegerCache();
                                    $var1 = jl_Integer_integerCache.data[128];
                                    if ($var1 !== null) {
                                        $var3$index = $var1.$value;
                                        var$4 = $var2.$elementData.data;
                                        $var2 = var$4[$var3$index & (var$4.length - 1 | 0)];
                                        while ($var2 !== null) {
                                            if ($var2.$origKeyHash == $var3$index) {
                                                $var4 = $var2.$key;
                                                if ($var1 !== $var4 && !jl_Integer_equals($var1, $var4) ? 0 : 1)
                                                    break;
                                            }
                                            $var2 = $var2.$next3;
                                        }
                                    } else {
                                        $var2 = $var2.$elementData.data[0];
                                        while ($var2 !== null && $var2.$key !== null) {
                                            $var2 = $var2.$next3;
                                        }
                                    }
                                    $var2 = $var2 === null ? null : $var2.$value0;
                                    if (!($var2.$watchedObject.$value1 & 1) ? 0 : 1)
                                        break c;
                                }
                                var$3 = 0;
                                break b;
                            }
                            var$3 = 1;
                        }
                        if (var$3) {
                            nms_Potion_$callClinit();
                            $var2 = nms_Potion_fireResistance;
                            $var4 = $this.$activePotionsMap;
                            var$3 = $var2.$id0;
                            if (var$3 >= (-128) && var$3 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                $var2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                            } else {
                                $var2 = new jl_Integer;
                                $var2.$value = var$3;
                            }
                            if ($var2 === null) {
                                $var4 = $var4.$elementData.data[0];
                                while ($var4 !== null && $var4.$key !== null) {
                                    $var4 = $var4.$next3;
                                }
                            } else {
                                $var3$index = $var2.$value;
                                var$4 = $var4.$elementData.data;
                                $var4 = var$4[$var3$index & (var$4.length - 1 | 0)];
                                while ($var4 !== null) {
                                    if ($var4.$origKeyHash == $var3$index) {
                                        $var1 = $var4.$key;
                                        if ($var2 !== $var1 && !($var2 !== $var1 ? ($var1 instanceof jl_Integer && $var1.$value == $var3$index ? 1 : 0) : 1) ? 0 : 1)
                                            break;
                                    }
                                    $var4 = $var4.$next3;
                                }
                            }
                            if (!($var4 === null ? 0 : 1)) {
                                $var5 = 16307;
                                break a;
                            }
                        }
                    }
                    $var2 = $this.$rand;
                    var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$7;
                    if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.05000000074505806) {
                        $var2 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var1 = jl_Integer_integerCache.data[134];
                        if ($var1 !== null) {
                            $var3$index = $var1.$value;
                            var$4 = $var2.$elementData.data;
                            $var2 = var$4[$var3$index & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == $var3$index) {
                                    $var4 = $var2.$key;
                                    if ($var1 !== $var4 && !($var1 !== $var4 ? ($var4 instanceof jl_Integer && $var4.$value == $var3$index ? 1 : 0) : 1) ? 0 : 1)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        } else {
                            $var2 = $var2.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        }
                        var$9 = ($var2 === null ? null : $var2.$value0).$watchedObject.$value3;
                        $var2 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var4 = $this.$attributeMap.$attributes;
                        if ($var2 === null) {
                            $var4 = $var4.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            $var3$index = jl_String_hashCode($var2.$field_111115_a);
                            var$4 = $var4.$elementData.data;
                            $var4 = var$4[$var3$index & (var$4.length - 1 | 0)];
                            while ($var4 !== null && !($var4.$origKeyHash == $var3$index && ju_HashMap_areEqualKeys($var2, $var4.$key))) {
                                $var4 = $var4.$next3;
                            }
                        }
                        $var2 = $var4 === null ? null : $var4.$value0;
                        if ($var2.$field_111133_g) {
                            $var2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var2);
                            $var2.$field_111133_g = 0;
                        }
                        if (var$9 < $var2.$field_111139_h) {
                            $var5 = 16341;
                            break a;
                        }
                    }
                    $var2 = $this.$rand;
                    var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$7;
                    if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.25 && $this.$attackTarget !== null) {
                        nms_Potion_$callClinit();
                        $var2 = nms_Potion_moveSpeed;
                        $var4 = $this.$activePotionsMap;
                        var$3 = $var2.$id0;
                        if (var$3 >= (-128) && var$3 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                        } else {
                            $var2 = new jl_Integer;
                            $var2.$value = var$3;
                        }
                        if ($var2 === null) {
                            $var4 = $var4.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            $var3$index = $var2.$value;
                            var$4 = $var4.$elementData.data;
                            $var4 = var$4[$var3$index & (var$4.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == $var3$index) {
                                    $var1 = $var4.$key;
                                    if ($var2 !== $var1 && !($var2 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var3$index ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        if (!($var4 === null ? 0 : 1)) {
                            $var2 = $this.$attackTarget;
                            var$10 = $var2.$posX - $this.$posX;
                            var$11 = $var2.$posY - $this.$posY;
                            var$12 = $var2.$posZ - $this.$posZ;
                            if (var$10 * var$10 + var$11 * var$11 + var$12 * var$12 > 121.0) {
                                $var5 = 16274;
                                break a;
                            }
                        }
                    }
                    $var2 = $this.$rand;
                    var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$7;
                    if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 0.25 && $this.$attackTarget !== null) {
                        nms_Potion_$callClinit();
                        $var2 = nms_Potion_moveSpeed;
                        $var4 = $this.$activePotionsMap;
                        var$3 = $var2.$id0;
                        if (var$3 >= (-128) && var$3 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var2 = jl_Integer_integerCache.data[var$3 + 128 | 0];
                        } else {
                            $var2 = new jl_Integer;
                            $var2.$value = var$3;
                        }
                        if ($var2 === null) {
                            $var4 = $var4.$elementData.data[0];
                            while ($var4 !== null && $var4.$key !== null) {
                                $var4 = $var4.$next3;
                            }
                        } else {
                            $var3$index_0 = $var2.$value;
                            var$4 = $var4.$elementData.data;
                            $var4 = var$4[$var3$index_0 & (var$4.length - 1 | 0)];
                            while ($var4 !== null) {
                                if ($var4.$origKeyHash == $var3$index_0) {
                                    $var1 = $var4.$key;
                                    if ($var2 !== $var1 && !($var2 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == $var3$index_0 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var4 = $var4.$next3;
                            }
                        }
                        if (!($var4 === null ? 0 : 1)) {
                            $var2 = $this.$attackTarget;
                            var$10 = $var2.$posX - $this.$posX;
                            var$11 = $var2.$posY - $this.$posY;
                            var$12 = $var2.$posZ - $this.$posZ;
                            if (var$10 * var$10 + var$11 * var$11 + var$12 * var$12 > 121.0)
                                $var5 = 16274;
                        }
                    }
                }
                if ($var5 > (-1)) {
                    $var4 = new nms_ItemStack;
                    nms_Item_$callClinit();
                    $var2 = nms_Item_potion;
                    nms_ItemStack_$callClinit();
                    $var4.$itemID = $var2.$itemID0;
                    $var4.$stackSize = 1;
                    $var4.$itemDamage = $var5;
                    if ($var5 < 0)
                        $var4.$itemDamage = 0;
                    var$4 = $this.$equipment.data;
                    var$4[0] = $var4;
                    $var2 = var$4[0];
                    $this.$witchAttackTimer = nms_Item_itemsList.data[$var2.$itemID].$getMaxItemUseDuration($var2);
                    $var4 = $this.$dataWatcher;
                    var$14 = jl_Byte_byteCache.data[129];
                    $var2 = $var4.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$15 = jl_Integer_integerCache.data[149];
                    if (var$15 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$16 = var$15.$value;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$16 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$16) {
                                $var1 = $var2.$key;
                                if (var$15 !== $var1 && !(var$15 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == var$16 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = $var2 === null ? null : $var2.$value0;
                    $var1 = $var2.$watchedObject;
                    if (!($var1 instanceof jl_Byte && $var1.$value1 == var$14.$value1 ? 1 : 0)) {
                        $var2.$watchedObject = var$14;
                        $var2.$watched = 1;
                        $var4.$objectChanged = 1;
                    }
                    $var2 = nms_SharedMonsterAttributes_movementSpeed;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    $var4 = $this.$attributeMap.$attributes;
                    if ($var2 === null) {
                        $var4 = $var4.$elementData.data[0];
                        while ($var4 !== null && $var4.$key !== null) {
                            $var4 = $var4.$next3;
                        }
                    } else {
                        d: {
                            $var1 = $var2.$field_111115_a;
                            if (!$var1.$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $var1.$nativeString.length)
                                        break d;
                                    $var1.$hashCode1 = (31 * $var1.$hashCode1 | 0) + $var1.$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$3 = $var1.$hashCode1;
                        var$4 = $var4.$elementData.data;
                        $var4 = var$4[var$3 & (var$4.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == var$3) {
                                $var1 = $var4.$key;
                                if ($var2 !== $var1 && !jl_Object_equals($var2, $var1) ? 0 : 1)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                    }
                    $var4 = $var4 === null ? null : $var4.$value0;
                    nms_EntityWitch_$callClinit();
                    nms_ModifiableAttributeInstance_removeModifier($var4, nms_EntityWitch_field_110185_bq);
                    nms_ModifiableAttributeInstance_applyModifier($var4, nms_EntityWitch_field_110185_bq);
                }
            } else {
                var$3 = $this.$witchAttackTimer;
                $this.$witchAttackTimer = var$3 - 1 | 0;
                if (var$3 <= 0) {
                    $var4 = $this.$dataWatcher;
                    var$14 = jl_Byte_byteCache.data[128];
                    $var2 = $var4.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$15 = jl_Integer_integerCache.data[149];
                    if (var$15 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$16 = var$15.$value;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$16 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$16) {
                                $var1 = $var2.$key;
                                if (var$15 !== $var1 && !(var$15 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == var$16 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = $var2 === null ? null : $var2.$value0;
                    $var1 = $var2.$watchedObject;
                    if (!($var1 instanceof jl_Byte && $var1.$value1 == var$14.$value1 ? 1 : 0)) {
                        $var2.$watchedObject = var$14;
                        $var2.$watched = 1;
                        $var4.$objectChanged = 1;
                    }
                    var$4 = $this.$equipment.data;
                    $var1 = var$4[0];
                    var$4[0] = null;
                    if ($var1 !== null) {
                        var$3 = $var1.$itemID;
                        nms_Item_$callClinit();
                        $var2 = nms_Item_potion;
                        if (var$3 == $var2.$itemID0) {
                            $var2 = nms_ItemPotion_getEffects($var2, $var1);
                            if ($var2 !== null) {
                                $var5 = $var2.$modCount;
                                var$16 = $var2.$size();
                                if (0 >= var$16 ? 0 : 1) {
                                    if ($var5 < $var2.$modCount) {
                                        $var2 = new ju_ConcurrentModificationException;
                                        $var2.$suppressionEnabled = 1;
                                        $var2.$writableStackTrace = 1;
                                        $rt_throw($var2);
                                    }
                                    $var3$index = 0 + 1 | 0;
                                    $var4 = $var2.$get(0);
                                    $var1 = new nms_PotionEffect;
                                    $var1.$potionID = $var4.$potionID;
                                    $var1.$duration = $var4.$duration;
                                    $var1.$amplifier = $var4.$amplifier;
                                    $ptr = 5;
                                    continue main;
                                }
                            }
                        }
                    }
                    $var2 = nms_SharedMonsterAttributes_movementSpeed;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    $var4 = $this.$attributeMap.$attributes;
                    if ($var2 === null) {
                        $var4 = $var4.$elementData.data[0];
                        while ($var4 !== null && $var4.$key !== null) {
                            $var4 = $var4.$next3;
                        }
                    } else {
                        e: {
                            $var1 = $var2.$field_111115_a;
                            if (!$var1.$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $var1.$nativeString.length)
                                        break e;
                                    $var1.$hashCode1 = (31 * $var1.$hashCode1 | 0) + $var1.$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$3 = $var1.$hashCode1;
                        var$4 = $var4.$elementData.data;
                        $var4 = var$4[var$3 & (var$4.length - 1 | 0)];
                        while ($var4 !== null) {
                            if ($var4.$origKeyHash == var$3) {
                                $var1 = $var4.$key;
                                if ($var2 !== $var1 && !jl_Object_equals($var2, $var1) ? 0 : 1)
                                    break;
                            }
                            $var4 = $var4.$next3;
                        }
                    }
                    $var4 = $var4 === null ? null : $var4.$value0;
                    nms_EntityWitch_$callClinit();
                    nms_ModifiableAttributeInstance_removeModifier($var4, nms_EntityWitch_field_110185_bq);
                }
            }
            $var2 = $this.$rand;
            var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$7;
            if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 7.50000006519258E-4) {
                $var2 = $this.$worldObj;
                $var4 = new nms_Packet38EntityStatus;
                $var5 = $this.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var4.$entityId0 = $var5;
                $var4.$entityStatus = 15;
                $var2 = $var2.$theEntityTracker.$trackedEntityIDs;
                var$3 = $this.$entityId;
                $var5 = var$3 ^ (var$3 >>> 20 | 0) ^ (var$3 >>> 12 | 0);
                $var3$index_0 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
                var$4 = $var2.$slots.data;
                $var2 = var$4[$var3$index_0 & (var$4.length - 1 | 0)];
                f: {
                    while ($var2 !== null) {
                        if ($var2.$hashEntry == var$3) {
                            $var2 = $var2.$valueEntry;
                            break f;
                        }
                        $var2 = $var2.$nextEntry0;
                    }
                    $var2 = null;
                }
                $var2 = $var2;
                if ($var2 !== null) {
                    $var1 = $var2.$trackingPlayers.$backingMap;
                    if ($var1.$cachedKeySet === null) {
                        var$14 = new ju_HashMap$1;
                        var$14.$this$0 = $var1;
                        ju_AbstractCollection__init_(var$14);
                        $var1.$cachedKeySet = var$14;
                    }
                    var$17 = $var1.$cachedKeySet.$iterator();
                    $var5 = $var4 instanceof nms_Packet3Chat;
                    var$14 = $var4;
                    while (var$17.$hasNext()) {
                        g: {
                            $var1 = (var$17.$next()).$playerNetServerHandler;
                            if ($var5) {
                                var$16 = $var1.$playerEntity.$chatVisibility;
                                if (var$16 == 2)
                                    break g;
                                if (var$16 == 1 && !var$14.$isServer)
                                    break g;
                            }
                            try {
                                $var1 = $var1.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$15 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$15);
                                jl_System_errCache = var$15;
                            }
                            jl_Throwable_printStackTrace($var1, jl_System_errCache);
                        }
                    }
                    $var2 = $var2.$myEntity;
                    if ($var2 instanceof nms_EntityPlayerMP)
                        h: {
                            $var2 = $var2.$playerNetServerHandler;
                            if ($var5) {
                                $var5 = $var2.$playerEntity.$chatVisibility;
                                if ($var5 == 2)
                                    break h;
                                if ($var5 == 1 && !var$14.$isServer)
                                    break h;
                            }
                            try {
                                $var2 = $var2.$netManager;
                                $ptr = 4;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var2 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                $var4 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0($var4, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = $var4;
                            }
                            jl_Throwable_printStackTrace($var2, jl_System_errCache);
                        }
                }
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$18 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_getBrightness($this, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $tmp;
        if (var$18 > 0.5)
            $this.$entityAge = $this.$entityAge + 2 | 0;
        $ptr = 2;
    case 2:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var1, $var4);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var1 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$15 = jl_System_errCache;
            if (var$15 === null) {
                var$15 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$15);
                jl_System_errCache = var$15;
            }
            var$15 = jl_System_errCache;
            jl_Throwable_printStackTrace($var1, var$15);
        }
        j: while (true) {
            while (true) {
                if (!var$17.$hasNext())
                    break j;
                $var1 = (var$17.$next()).$playerNetServerHandler;
                if (!$var5)
                    break;
                var$16 = $var1.$playerEntity.$chatVisibility;
                if (var$16 == 2)
                    continue;
                if (var$16 != 1)
                    break;
                if (var$14.$isServer)
                    break;
            }
            try {
                $var1 = $var1.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var1 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$15 = jl_System_errCache;
            if (var$15 === null) {
                var$15 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$15);
                jl_System_errCache = var$15;
            }
            var$15 = jl_System_errCache;
            jl_Throwable_printStackTrace($var1, var$15);
        }
        $var2 = $var2.$myEntity;
        if ($var2 instanceof nms_EntityPlayerMP)
            k: {
                $var2 = $var2.$playerNetServerHandler;
                if ($var5) {
                    $var5 = $var2.$playerEntity.$chatVisibility;
                    if ($var5 == 2)
                        break k;
                    if ($var5 == 1 && !var$14.$isServer)
                        break k;
                }
                try {
                    $var2 = $var2.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var4 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var4, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var4;
                }
                jl_Throwable_printStackTrace($var2, jl_System_errCache);
            }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$18 = 1.0;
        $ptr = 1;
        continue main;
    case 4:
        i: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, $var4);
                if ($rt_suspending()) {
                    break main;
                }
                break i;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var4 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var4, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var4;
            }
            jl_Throwable_printStackTrace($var2, jl_System_errCache);
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$18 = 1.0;
        $ptr = 1;
        continue main;
    case 5:
        nms_EntityLivingBase_addPotionEffect($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var3$index_0 = $var3$index;
        if ($var3$index_0 >= var$16 ? 0 : 1) {
            if ($var5 < $var2.$modCount) {
                $var2 = new ju_ConcurrentModificationException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $rt_throw($var2);
            }
            $var3$index = $var3$index_0 + 1 | 0;
            $var4 = $var2.$get($var3$index_0);
            $var1 = new nms_PotionEffect;
            $var1.$potionID = $var4.$potionID;
            $var1.$duration = $var4.$duration;
            $var1.$amplifier = $var4.$amplifier;
            continue main;
        }
        $var2 = nms_SharedMonsterAttributes_movementSpeed;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        $var4 = $this.$attributeMap.$attributes;
        if ($var2 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            l: {
                $var1 = $var2.$field_111115_a;
                if (!$var1.$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $var1.$nativeString.length)
                            break l;
                        $var1.$hashCode1 = (31 * $var1.$hashCode1 | 0) + $var1.$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $var1.$hashCode1;
            var$4 = $var4.$elementData.data;
            $var4 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$3) {
                    $var1 = $var4.$key;
                    if ($var2 !== $var1 && !jl_Object_equals($var2, $var1) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        nms_EntityWitch_$callClinit();
        nms_ModifiableAttributeInstance_removeModifier($var4, nms_EntityWitch_field_110185_bq);
        $var2 = $this.$rand;
        var$7 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$7;
        if (Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 < 7.50000006519258E-4) {
            $var2 = $this.$worldObj;
            $var4 = new nms_Packet38EntityStatus;
            $var5 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var4.$entityId0 = $var5;
            $var4.$entityStatus = 15;
            $var2 = $var2.$theEntityTracker.$trackedEntityIDs;
            var$3 = $this.$entityId;
            $var5 = var$3 ^ (var$3 >>> 20 | 0) ^ (var$3 >>> 12 | 0);
            $var3$index_0 = $var5 ^ ($var5 >>> 7 | 0) ^ ($var5 >>> 4 | 0);
            var$4 = $var2.$slots.data;
            $var2 = var$4[$var3$index_0 & (var$4.length - 1 | 0)];
            m: {
                while ($var2 !== null) {
                    if ($var2.$hashEntry == var$3) {
                        $var2 = $var2.$valueEntry;
                        break m;
                    }
                    $var2 = $var2.$nextEntry0;
                }
                $var2 = null;
            }
            $var2 = $var2;
            if ($var2 !== null) {
                $var1 = $var2.$trackingPlayers.$backingMap;
                if ($var1.$cachedKeySet === null) {
                    var$14 = new ju_HashMap$1;
                    var$14.$this$0 = $var1;
                    ju_AbstractCollection__init_(var$14);
                    $var1.$cachedKeySet = var$14;
                }
                var$17 = $var1.$cachedKeySet.$iterator();
                $var5 = $var4 instanceof nms_Packet3Chat;
                var$14 = $var4;
                while (var$17.$hasNext()) {
                    n: {
                        $var1 = (var$17.$next()).$playerNetServerHandler;
                        if ($var5) {
                            var$16 = $var1.$playerEntity.$chatVisibility;
                            if (var$16 == 2)
                                break n;
                            if (var$16 == 1 && !var$14.$isServer)
                                break n;
                        }
                        try {
                            $var1 = $var1.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$15 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$15);
                            jl_System_errCache = var$15;
                        }
                        jl_Throwable_printStackTrace($var1, jl_System_errCache);
                    }
                }
                $var2 = $var2.$myEntity;
                if ($var2 instanceof nms_EntityPlayerMP)
                    o: {
                        $var2 = $var2.$playerNetServerHandler;
                        if ($var5) {
                            $var5 = $var2.$playerEntity.$chatVisibility;
                            if ($var5 == 2)
                                break o;
                            if ($var5 == 1 && !var$14.$isServer)
                                break o;
                        }
                        try {
                            $var2 = $var2.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var2 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var4 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0($var4, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = $var4;
                        }
                        jl_Throwable_printStackTrace($var2, jl_System_errCache);
                    }
            }
        }
        nms_EntityLivingBase_updateArmSwingProgress($this);
        var$18 = 1.0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, $var4, var$3, var$4, $var1, $var5, var$7, $var3$index, var$9, var$10, var$11, var$12, $var3$index_0, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityWitch_applyPotionDamageCalculations = ($this, $par1DamageSource, $par2) => {
    $par2 = nms_EntityLivingBase_applyPotionDamageCalculations($this, $par1DamageSource, $par2);
    if ($par1DamageSource.$getEntity() === $this)
        $par2 = 0.0;
    if ($par1DamageSource.$magicDamage)
        $par2 = $par2 * 0.15;
    return $par2;
},
nms_EntityWitch_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $var3, var$7, var$8, $var4, var$10, var$11, var$12, var$13, $var6, $var5, var$16, var$17, var$18, var$19, $var7, var$21, var$22, var$23, var$24, var$25, var$26, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var7 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 =
        $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = 17;
        $var3 = Long_lo(Long_shru(var$4, var$5));
        var$7 = 2;
        while (true) {
            var$8 = $var3 % 3 | 0;
            if ((($var3 - var$8 | 0) + var$7 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var3 = Long_lo(Long_shru(var$4, var$5));
        }
        $var3 = var$8 + 1 | 0;
        $var4 = 0;
        var$10 = $par2 + 1 | 0;
        var$8 = var$10 - 1 | 0;
        var$11 = var$10 & var$8;
        var$12 = Long_fromInt(var$10);
        var$13 = 0.0;
        $par1 = 138;
        while ($var4 < $var3) {
            var$3 = $this.$rand;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var6 = Long_lo(Long_shru(var$4, var$5));
            while (true) {
                $var5 = $var6 % 3 | 0;
                if ((($var6 - $var5 | 0) + var$7 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $var6 = Long_lo(Long_shru(var$4, var$5));
            }
            nms_EntityWitch_$callClinit();
            var$16 = nms_EntityWitch_witchDrops.data;
            $var6 = var$16.length;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$17 = Long_lo(Long_shru(var$4, var$5));
            var$18 = $var6 - 1 | 0;
            if (!($var6 & var$18))
                var$19 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$19 = var$17 % $var6 | 0;
                    if (((var$17 - var$19 | 0) + var$18 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$17 = Long_lo(Long_shru(var$4, var$5));
                }
            $var6 = var$16[var$19];
            if ($par2 > 0) {
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$18 = Long_lo(Long_shru(var$4, var$5));
                if (!var$11)
                    $var7 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(var$18)), 31));
                else
                    while (true) {
                        $var7 = var$18 % var$10 | 0;
                        if (((var$18 - $var7 | 0) + var$8 | 0) >= 0)
                            break;
                        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$4;
                        var$18 = Long_lo(Long_shru(var$4, var$5));
                    }
                $var5 = $var5 + $var7 | 0;
            }
            $var7 = 0;
            if ($var7 < $var5) {
                var$21 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$21.$itemID = $var6;
                var$21.$stackSize = 1;
                var$21.$itemDamage = 0;
                var$22 = new nms_EntityItem;
                var$3 = $this.$worldObj;
                var$23 = $this.$posX;
                var$24 = $this.$posY + var$13;
                var$25 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        return;
    case 1:
        nms_EntityItem__init_(var$22, var$3, var$23, var$24, var$25);
        if ($rt_suspending()) {
            break main;
        }
        var$26 = var$22.$dataWatcher;
        var$3 = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[$par1]);
        var$3 = var$3 === null ? null : var$3.$value0;
        if (!(var$21 !== var$3.$watchedObject ? 0 : 1)) {
            var$3.$watchedObject = var$21;
            var$3.$watched = 1;
            var$26.$objectChanged = 1;
        }
        var$26 = var$22.$dataWatcher;
        var$3 = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[$par1]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$26.$objectChanged = 1;
        var$22.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        while (true) {
            if ($var7 < $var5) {
                var$21 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                var$21.$itemID = $var6;
                var$21.$stackSize = 1;
                var$21.$itemDamage = 0;
                var$22 = new nms_EntityItem;
                var$3 = $this.$worldObj;
                var$23 = $this.$posX;
                var$24 = $this.$posY + var$13;
                var$25 = $this.$posZ;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $var3)
                break;
            var$3 = $this.$rand;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var6 = Long_lo(Long_shru(var$4, var$5));
            while (true) {
                $var5 = $var6 % 3 | 0;
                if ((($var6 - $var5 | 0) + var$7 | 0) >= 0)
                    break;
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                $var6 = Long_lo(Long_shru(var$4, var$5));
            }
            nms_EntityWitch_$callClinit();
            var$16 = nms_EntityWitch_witchDrops.data;
            $var6 = var$16.length;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$17 = Long_lo(Long_shru(var$4, var$5));
            var$18 = $var6 - 1 | 0;
            if (!($var6 & var$18))
                var$19 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$17)), 31));
            else
                while (true) {
                    var$19 = var$17 % $var6 | 0;
                    if (((var$17 - var$19 | 0) + var$18 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$17 = Long_lo(Long_shru(var$4, var$5));
                }
            $var6 = var$16[var$19];
            if ($par2 > 0) {
                var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$4;
                var$18 = Long_lo(Long_shru(var$4, var$5));
                if (!var$11)
                    $var7 = Long_lo(Long_shr(Long_mul(var$12, Long_fromInt(var$18)), 31));
                else
                    while (true) {
                        $var7 = var$18 % var$10 | 0;
                        if (((var$18 - $var7 | 0) + var$8 | 0) >= 0)
                            break;
                        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$3.$seed = var$4;
                        var$18 = Long_lo(Long_shru(var$4, var$5));
                    }
                $var5 = $var5 + $var7 | 0;
            }
            $var7 = 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $var3, var$7, var$8, $var4, var$10, var$11, var$12, var$13, $var6, $var5, var$16, var$17, var$18, var$19, $var7, var$21, var$22, var$23, var$24, var$25, var$26, $ptr);
},
nms_EntityWitch_attackEntityWithRangedAttack = ($this, $par1EntityLivingBase, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, $var4, $var6, $var8, $var10, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[149];
        if (var$4 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $var3.$elementData.data;
            $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$5) {
                    var$7 = $var3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3.$watchedObject.$value1 != 1 ? 0 : 1)
            return;
        $var3 = new nms_EntityPotion;
        var$4 = $this.$worldObj;
        var$7 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$8 = nms_Item_potion;
        nms_ItemStack_$callClinit();
        var$7.$itemID = var$8.$itemID0;
        var$7.$stackSize = 1;
        var$7.$itemDamage = 32732;
        $ptr = 1;
    case 1:
        a: {
            nms_EntityThrowable__init_($var3, var$4, $this);
            if ($rt_suspending()) {
                break main;
            }
            $var3.$potionDamage = var$7;
            $var3.$rotationPitch = $var3.$rotationPitch + 20.0;
            $var4 = $par1EntityLivingBase.$posX + $par1EntityLivingBase.$motionX - $this.$posX;
            $var6 = $par1EntityLivingBase.$posY + $par1EntityLivingBase.$getEyeHeight() - 1.100000023841858 - $this.$posY;
            $var8 = $par1EntityLivingBase.$posZ + $par1EntityLivingBase.$motionZ - $this.$posZ;
            $var10 = jl_Math_sqrt($var4 * $var4 + $var8 * $var8);
            if ($var10 >= 8.0) {
                nms_Potion_$callClinit();
                var$7 = nms_Potion_moveSlowdown;
                var$4 = $par1EntityLivingBase.$activePotionsMap;
                var$5 = var$7.$id0;
                if (var$5 >= (-128) && var$5 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$5 + 128 | 0];
                } else {
                    var$7 = new jl_Integer;
                    var$7.$value = var$5;
                }
                if (var$7 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$13 = var$7.$value;
                    var$6 = var$4.$elementData.data;
                    var$4 = var$6[var$13 & (var$6.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$13) {
                            var$8 = var$4.$key;
                            if (var$7 !== var$8 && !(var$7 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$13 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                if (!(var$4 === null ? 0 : 1)) {
                    if ($var3.$potionDamage === null) {
                        var$4 = new nms_ItemStack;
                        var$4.$itemID = nms_Item_potion.$itemID0;
                        var$4.$stackSize = 1;
                        var$4.$itemDamage = 0;
                        $var3.$potionDamage = var$4;
                    }
                    $var3.$potionDamage.$itemDamage = 32698;
                    break a;
                }
            }
            var$4 = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[134];
            if (var$7 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                var$5 = var$7.$value;
                var$6 = var$4.$elementData.data;
                var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$5) {
                        var$8 = var$4.$key;
                        if (var$7 !== var$8 && !(var$7 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$4 = var$4 === null ? null : var$4.$value0;
            if (var$4.$watchedObject.$value3 >= 8.0) {
                nms_Potion_$callClinit();
                var$7 = nms_Potion_poison;
                var$4 = $par1EntityLivingBase.$activePotionsMap;
                var$5 = var$7.$id0;
                if (var$5 >= (-128) && var$5 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$5 + 128 | 0];
                } else {
                    var$7 = new jl_Integer;
                    var$7.$value = var$5;
                }
                if (var$7 === null) {
                    var$4 = var$4.$elementData.data[0];
                    while (var$4 !== null && var$4.$key !== null) {
                        var$4 = var$4.$next3;
                    }
                } else {
                    var$14 = var$7.$value;
                    var$6 = var$4.$elementData.data;
                    var$4 = var$6[var$14 & (var$6.length - 1 | 0)];
                    while (var$4 !== null) {
                        if (var$4.$origKeyHash == var$14) {
                            var$8 = var$4.$key;
                            if (var$7 !== var$8 && !(var$7 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$14 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$4 = var$4.$next3;
                    }
                }
                if (!(var$4 === null ? 0 : 1)) {
                    if ($var3.$potionDamage === null) {
                        var$4 = new nms_ItemStack;
                        var$4.$itemID = nms_Item_potion.$itemID0;
                        var$4.$stackSize = 1;
                        var$4.$itemDamage = 0;
                        $var3.$potionDamage = var$4;
                    }
                    $var3.$potionDamage.$itemDamage = 32660;
                    break a;
                }
            }
            if ($var10 <= 3.0) {
                nms_Potion_$callClinit();
                var$4 = nms_Potion_weakness;
                $par1EntityLivingBase = $par1EntityLivingBase.$activePotionsMap;
                var$13 = var$4.$id0;
                if (var$13 >= (-128) && var$13 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$13 + 128 | 0];
                } else {
                    var$7 = new jl_Integer;
                    var$7.$value = var$13;
                }
                if (var$7 === null) {
                    $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
                    while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                    }
                } else {
                    var$13 = var$7.$value;
                    var$6 = $par1EntityLivingBase.$elementData.data;
                    $par1EntityLivingBase = var$6[var$13 & (var$6.length - 1 | 0)];
                    while ($par1EntityLivingBase !== null) {
                        if ($par1EntityLivingBase.$origKeyHash == var$13) {
                            var$4 = $par1EntityLivingBase.$key;
                            if (var$7 !== var$4 && !(var$7 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$13 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                    }
                }
                if (!($par1EntityLivingBase === null ? 0 : 1)) {
                    $par1EntityLivingBase = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($par1EntityLivingBase.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1EntityLivingBase.$seed = var$15;
                    if (Long_lo(Long_shru(var$15, 24)) / 1.6777216E7 < 0.25) {
                        if ($var3.$potionDamage === null) {
                            var$4 = new nms_ItemStack;
                            var$4.$itemID = nms_Item_potion.$itemID0;
                            var$4.$stackSize = 1;
                            var$4.$itemDamage = 0;
                            $var3.$potionDamage = var$4;
                        }
                        $var3.$potionDamage.$itemDamage = 32696;
                    }
                }
            }
        }
        nms_EntityThrowable_setThrowableHeading($var3, $var4, $var6 + $var10 * 0.20000000298023224, $var8, 0.75, 8.0);
        $par1EntityLivingBase = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1EntityLivingBase, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2, $var3, var$4, var$5, var$6, var$7, var$8, $var4, $var6, $var8, $var10, var$13, var$14, var$15, $ptr);
},
nms_EntityWitch__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = nle_ProfileUUID_fromString($rt_s(2399));
    nms_EntityWitch_field_110184_bp = var$1;
    var$2 = new nms_AttributeModifier;
    var$2.$isSaved = 1;
    var$2.$id1 = var$1;
    var$2.$name3 = $rt_s(2400);
    var$2.$amount0 = (-0.25);
    var$2.$operation = 0;
    if ($rt_s(2400) === $rt_s(3))
        var$3 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(3);
        var$3 = $rt_s(2400).$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (var$3) {
        var$1 = new jl_IllegalArgumentException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        var$1.$message = $rt_s(1279);
        $rt_throw(var$1);
    }
    var$2.$isSaved = 0;
    nms_EntityWitch_field_110185_bq = var$2;
    var$4 = $rt_createIntArray(8);
    var$5 = var$4.data;
    nms_Item_$callClinit();
    var$5[0] = nms_Item_glowstone.$itemID0;
    var$5[1] = nms_Item_sugar.$itemID0;
    var$5[2] = nms_Item_redstone.$itemID0;
    var$5[3] = nms_Item_spiderEye.$itemID0;
    var$5[4] = nms_Item_glassBottle.$itemID0;
    var$5[5] = nms_Item_gunpowder.$itemID0;
    var$6 = nms_Item_stick.$itemID0;
    var$5[6] = var$6;
    var$5[7] = var$6;
    nms_EntityWitch_witchDrops = var$4;
},
otr_EventQueue$Event = $rt_classWithoutFields(0),
jl_ThreadInterruptHandler = $rt_classWithoutFields(0),
jlr_ReferenceQueue$RemoveCallback = $rt_classWithoutFields();
function jur_Matcher$1() {
    let a = this; jl_Object.call(a);
    a.$grN = 0;
    a.$val$gr = 0;
    a.$this$09 = null;
}
let jur_Matcher$1__init_ = ($this, $this$0, var$2) => {
    $this.$this$09 = $this$0;
    $this.$val$gr = var$2;
    $this.$grN = var$2;
},
jur_Matcher$1__init_0 = (var_0, var_1) => {
    let var_2 = new jur_Matcher$1();
    jur_Matcher$1__init_(var_2, var_0, var_1);
    return var_2;
},
jur_Matcher$1_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$this$09;
    var$2 = $this.$grN;
    var$1 = var$1.$matchResult;
    var$3 = var$1.$valid;
    if (!var$3) {
        var$1 = new jl_IllegalStateException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    }
    if (var$2 >= 0) {
        var$4 = $rt_compare(var$2, var$1.$groupCount);
        if (var$4 < 0) {
            a: {
                var$5 = var$1.$groupBounds.data;
                var$6 = var$2 * 2 | 0;
                if (var$5[var$6] < 0)
                    var$1 = null;
                else {
                    var$1 = var$1.$string0;
                    if (!var$3) {
                        var$1 = new jl_IllegalStateException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$1);
                        $rt_throw(var$1);
                    }
                    if (var$2 >= 0 && var$4 < 0) {
                        var$7 = var$5[var$6];
                        if (!var$3) {
                            var$1 = new jl_IllegalStateException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace(var$1);
                            $rt_throw(var$1);
                        }
                        if (var$2 < 0)
                            break a;
                        if (var$4 >= 0)
                            break a;
                        var$1 = jl_String_substring(var$1, var$7, var$5[var$6 + 1 | 0]);
                    } else {
                        var$1 = new jl_IndexOutOfBoundsException;
                        var$8 = new jl_StringBuilder;
                        jl_Object__init_(var$8);
                        var$8.$buffer = $rt_createCharArray(16);
                        jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$2, 10);
                        var$9 = new jl_String;
                        var$5 = var$8.$buffer;
                        var$10 = var$5.data;
                        var$7 = var$8.$length0;
                        jl_Object__init_(var$9);
                        ju_Objects_checkFromIndexSize(0, var$7, var$10.length);
                        var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$1);
                        var$1.$message = var$9;
                        $rt_throw(var$1);
                    }
                }
                return var$1;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$8 = new jl_StringBuilder;
            jl_Object__init_(var$8);
            var$8.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$2, 10);
            var$9 = new jl_String;
            var$5 = var$8.$buffer;
            var$10 = var$5.data;
            var$7 = var$8.$length0;
            jl_Object__init_(var$9);
            ju_Objects_checkFromIndexSize(0, var$7, var$10.length);
            var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            var$1.$message = var$9;
            $rt_throw(var$1);
        }
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$8 = new jl_StringBuilder;
    jl_Object__init_(var$8);
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$2, 10);
    var$9 = new jl_String;
    var$5 = var$8.$buffer;
    var$10 = var$5.data;
    var$7 = var$8.$length0;
    jl_Object__init_(var$9);
    ju_Objects_checkFromIndexSize(0, var$7, var$10.length);
    var$9.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    var$1.$message = var$9;
    $rt_throw(var$1);
},
nms_IInventory = $rt_classWithoutFields(0),
nms_ISidedInventory = $rt_classWithoutFields(0);
function nms_TileEntityFurnace() {
    let a = this; nms_TileEntity.call(a);
    a.$furnaceItemStacks = null;
    a.$furnaceBurnTime = 0;
    a.$currentItemBurnTime = 0;
    a.$furnaceCookTime = 0;
    a.$field_94130_e = null;
}
let nms_TileEntityFurnace_slots_top = null,
nms_TileEntityFurnace_slots_bottom = null,
nms_TileEntityFurnace_slots_sides = null,
nms_TileEntityFurnace__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$furnaceItemStacks = $rt_createArray(nms_ItemStack, 3);
},
nms_TileEntityFurnace__init_0 = () => {
    let var_0 = new nms_TileEntityFurnace();
    nms_TileEntityFurnace__init_(var_0);
    return var_0;
},
nms_TileEntityFurnace_getSizeInventory = $this => {
    return $this.$furnaceItemStacks.data.length;
},
nms_TileEntityFurnace_getStackInSlot = ($this, $par1) => {
    return $this.$furnaceItemStacks.data[$par1];
},
nms_TileEntityFurnace_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, $var3_0, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    var$3 = $this.$furnaceItemStacks.data;
    if (var$3[$par1] === null)
        return null;
    if (var$3[$par1].$stackSize <= $par2) {
        $var3 = var$3[$par1];
        var$3[$par1] = null;
        return $var3;
    }
    var$5 = var$3[$par1];
    $var3_0 = new nms_ItemStack;
    var$7 = var$5.$itemID;
    var$8 = var$5.$itemDamage;
    nms_ItemStack_$callClinit();
    $var3_0.$itemID = var$7;
    $var3_0.$stackSize = $par2;
    $var3_0.$itemDamage = var$8;
    if (var$8 < 0)
        $var3_0.$itemDamage = 0;
    var$9 = var$5.$stackTagCompound;
    if (var$9 !== null) {
        var$10 = new nms_NBTTagCompound;
        $var3 = var$9.$name;
        if ($var3 === null)
            $var3 = $rt_s(3);
        var$10.$name = $var3;
        $var3 = new ju_HashMap;
        var$8 = ju_HashMap_calculateCapacity(16);
        $var3.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, var$8);
        var$3 = var$11.data;
        $var3.$elementData = var$11;
        $var3.$loadFactor = 0.75;
        $var3.$threshold = var$3.length * 0.75 | 0;
        var$10.$tagMap = $var3;
        $var3 = var$9.$tagMap;
        if ($var3.$cachedKeySet === null) {
            var$12 = new ju_HashMap$1;
            var$12.$this$0 = $var3;
            $var3.$cachedKeySet = var$12;
        }
        $var3 = $var3.$cachedKeySet.$iterator();
        while ($var3.$hasNext()) {
            var$12 = $var3.$next();
            var$13 = var$9.$tagMap;
            if (var$12 === null) {
                var$13 = var$13.$elementData.data[0];
                while (var$13 !== null && var$13.$key !== null) {
                    var$13 = var$13.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = var$12.$hashCode1;
                var$3 = var$13.$elementData.data;
                var$13 = var$3[var$14 & (var$3.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$14) {
                        b: {
                            var$15 = var$13.$key;
                            if (var$12 !== var$15) {
                                if (var$12 === var$15)
                                    var$8 = 1;
                                else if (!(var$15 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$15 = var$15;
                                    var$8 = var$12.$nativeString !== var$15.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break b;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
            }
            var$13 = var$13 === null ? null : var$13.$value0;
            var$13 = var$13.$copy();
            var$15 = var$10.$tagMap;
            if (var$12 !== null)
                var$13.$name = var$12;
            else
                var$13.$name = $rt_s(3);
            ju_HashMap_putImpl(var$15, var$12, var$13);
        }
        $var3_0.$stackTagCompound = var$10;
    }
    var$5.$stackSize = var$5.$stackSize - $par2 | 0;
    var$3 = $this.$furnaceItemStacks.data;
    if (!var$3[$par1].$stackSize)
        var$3[$par1] = null;
    return $var3_0;
},
nms_TileEntityFurnace_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    $this.$furnaceItemStacks.data[$par1] = $par2ItemStack;
    if ($par2ItemStack !== null && $par2ItemStack.$stackSize > 64)
        $par2ItemStack.$stackSize = 64;
},
nms_TileEntityFurnace_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, $var5, var$5, var$6, $var4, var$8, var$9, var$10, var$11;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(349).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            b: {
                var$6 = $var2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break b;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) !== null) {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(349).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    d: {
                        var$6 = $var2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break d;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(350).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            f: {
                var$6 = $var2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        $var3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$6 = var$6;
                        $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(350).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    h: {
                        var$6 = $var2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(351).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            j: {
                var$6 = $var2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(351).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    l: {
                        var$6 = $var2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) === var$6)
                                $var3 = 1;
                            else if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                $var3 = 0;
                            if (!$var3) {
                                $var3 = 0;
                                break l;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2241).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2241).$nativeString.length)
                    break m;
                $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(2241).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            n: {
                var$6 = $var2.$key;
                if ($rt_s(2241) !== var$6) {
                    if ($rt_s(2241) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break n;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2241) !== null) {
            o: {
                if (!$rt_s(2241).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2241).$nativeString.length)
                            break o;
                        $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(2241).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    p: {
                        var$6 = $var2.$key;
                        if ($rt_s(2241) !== var$6) {
                            if ($rt_s(2241) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    $var3 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break p;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    } else {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2241) !== null)
            $var2.$name = $rt_s(2241);
        else
            $var2.$name = $rt_s(3);
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $var4;
    }
    $this.$furnaceItemStacks = $rt_createArray(nms_ItemStack, $this.$furnaceItemStacks.data.length);
    $var3 = 0;
    q: {
        while (true) {
            $var4 = $var2.$tagList;
            var$8 = $rt_compare($var3, $var4.$size0);
            if (var$8 >= 0)
                break;
            if ($var3 < 0)
                break q;
            if (var$8 >= 0)
                break q;
            r: {
                $var4 = $var4.$array.data[$var3];
                var$9 = $var4.$tagMap;
                if (!$rt_s(2022).$hashCode1) {
                    var$8 = 0;
                    while (true) {
                        if (var$8 >= $rt_s(2022).$nativeString.length)
                            break r;
                        $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$8) | 0;
                        var$8 = var$8 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(2022).$hashCode1;
            var$5 = var$9.$elementData.data;
            var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$10) {
                    s: {
                        var$11 = var$9.$key;
                        if ($rt_s(2022) !== var$11) {
                            if ($rt_s(2022) === var$11)
                                var$8 = 1;
                            else if (!(var$11 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$11 = var$11;
                                var$8 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break s;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                var$9 = var$9.$next3;
            }
            if (!(var$9 === null ? 0 : 1))
                $var5 = 0;
            else {
                var$9 = $var4.$tagMap;
                if ($rt_s(2022) === null) {
                    var$9 = var$9.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    t: {
                        if (!$rt_s(2022).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2022).$nativeString.length)
                                    break t;
                                $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$10 = $rt_s(2022).$hashCode1;
                    var$5 = var$9.$elementData.data;
                    var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$10) {
                            u: {
                                var$11 = var$9.$key;
                                if ($rt_s(2022) !== var$11) {
                                    if ($rt_s(2022) === var$11)
                                        var$8 = 1;
                                    else if (!(var$11 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$11 = var$11;
                                        var$8 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break u;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                $var5 = (var$9 === null ? null : var$9.$value0).$data0;
            }
            if ($var5 >= 0) {
                var$5 = $this.$furnaceItemStacks.data;
                if ($var5 < var$5.length) {
                    nms_ItemStack_$callClinit();
                    var$6 = new nms_ItemStack;
                    nms_ItemStack_readFromNBT(var$6, $var4);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[var$6.$itemID] === null)
                        var$6 = null;
                    var$5[$var5] = var$6;
                }
            }
            $var3 = $var3 + 1 | 0;
        }
        v: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2401).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2401).$nativeString.length)
                        break v;
                    $rt_s(2401).$hashCode1 = (31 * $rt_s(2401).$hashCode1 | 0) + $rt_s(2401).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        $var3 = $rt_s(2401).$hashCode1;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == $var3) {
                w: {
                    var$6 = $var2.$key;
                    if ($rt_s(2401) !== var$6) {
                        if ($rt_s(2401) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$8 = $rt_s(2401).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$8 = 0;
                        } else
                            var$8 = 1;
                        if (!var$8) {
                            var$8 = 0;
                            break w;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2401) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                x: {
                    if (!$rt_s(2401).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2401).$nativeString.length)
                                break x;
                            $rt_s(2401).$hashCode1 = (31 * $rt_s(2401).$hashCode1 | 0) + $rt_s(2401).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var3 = $rt_s(2401).$hashCode1;
                var$5 = $var2.$elementData.data;
                $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == $var3) {
                        y: {
                            var$6 = $var2.$key;
                            if ($rt_s(2401) !== var$6) {
                                if ($rt_s(2401) === var$6)
                                    var$8 = 1;
                                else if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$8 = $rt_s(2401).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$8 = 0;
                                if (!var$8) {
                                    var$8 = 0;
                                    break y;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var3 = ($var2 === null ? null : $var2.$value0).$data2;
        } else
            $var3 = 0;
        z: {
            $this.$furnaceBurnTime = $var3;
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2402).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2402).$nativeString.length)
                        break z;
                    $rt_s(2402).$hashCode1 = (31 * $rt_s(2402).$hashCode1 | 0) + $rt_s(2402).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        $var5 = $rt_s(2402).$hashCode1;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == $var5) {
                ba: {
                    var$6 = $var2.$key;
                    if ($rt_s(2402) !== var$6) {
                        if ($rt_s(2402) === var$6)
                            $var3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$6 = var$6;
                            $var3 = $rt_s(2402).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break ba;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1))
            $var3 = 0;
        else {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2402) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                bb: {
                    if (!$rt_s(2402).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2402).$nativeString.length)
                                break bb;
                            $rt_s(2402).$hashCode1 = (31 * $rt_s(2402).$hashCode1 | 0) + $rt_s(2402).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var5 = $rt_s(2402).$hashCode1;
                var$5 = $var2.$elementData.data;
                $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == $var5) {
                        bc: {
                            var$6 = $var2.$key;
                            if ($rt_s(2402) !== var$6) {
                                if ($rt_s(2402) === var$6)
                                    $var3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$6 = var$6;
                                    $var3 = $rt_s(2402).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break bc;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var3 = ($var2 === null ? null : $var2.$value0).$data2;
        }
        bd: {
            $this.$furnaceCookTime = $var3;
            $this.$currentItemBurnTime = nms_TileEntityFurnace_getItemBurnTime($this.$furnaceItemStacks.data[1]);
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1994).$nativeString.length)
                        break bd;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        $var5 = $rt_s(1994).$hashCode1;
        var$5 = $var2.$elementData.data;
        $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == $var5) {
                be: {
                    var$6 = $var2.$key;
                    if ($rt_s(1994) !== var$6) {
                        if ($rt_s(1994) === var$6)
                            $var3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$6 = var$6;
                            $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break be;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bf: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1994).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1994).$nativeString.length)
                            break bf;
                        $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(1994).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    bg: {
                        var$6 = $var2.$key;
                        if ($rt_s(1994) !== var$6) {
                            if ($rt_s(1994) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bg;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $par1NBTTagCompound = $rt_s(3);
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1994) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bh: {
                        if (!$rt_s(1994).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(1994).$nativeString.length)
                                    break bh;
                                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    $var5 = $rt_s(1994).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$5[$var5 & (var$5.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == $var5) {
                            bi: {
                                $var2 = $par1NBTTagCompound.$key;
                                if ($rt_s(1994) !== $var2) {
                                    if ($rt_s(1994) === $var2)
                                        $var3 = 1;
                                    else if (!($var2 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        $var2 = $var2;
                                        $var3 = $rt_s(1994).$nativeString !== $var2.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bi;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
            }
            $this.$field_94130_e = $par1NBTTagCompound;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntityFurnace_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, $var2, $var3, var$7, $var4, var$9, var$10, var$11, var$12;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$furnaceBurnTime << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2401);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2401), var$4);
    var$2 = $this.$furnaceCookTime << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2402);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2402), var$4);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$4;
    $var3 = 0;
    while (true) {
        var$7 = $this.$furnaceItemStacks.data;
        if ($var3 >= var$7.length)
            break;
        if (var$7[$var3] !== null) {
            $var4 = new nms_NBTTagCompound;
            $var4.$name = $rt_s(3);
            var$9 = new ju_HashMap;
            var$2 = ju_HashMap_calculateCapacity(16);
            var$9.$elementCount = 0;
            var$10 = $rt_createArray(ju_HashMap$HashEntry, var$2);
            var$7 = var$10.data;
            var$9.$elementData = var$10;
            var$9.$loadFactor = 0.75;
            var$9.$threshold = var$7.length * 0.75 | 0;
            $var4.$tagMap = var$9;
            var$2 = $var3 << 24 >> 24;
            var$4 = new nms_NBTTagByte;
            var$4.$name = $rt_s(2022);
            var$4.$data0 = var$2;
            ju_HashMap_putImpl(var$9, $rt_s(2022), var$4);
            var$4 = $this.$furnaceItemStacks.data[$var3];
            var$2 = var$4.$itemID << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$9 = new nms_NBTTagShort;
            var$9.$name = $rt_s(914);
            var$9.$data2 = var$2;
            ju_HashMap_putImpl(var$11, $rt_s(914), var$9);
            var$2 = var$4.$stackSize << 24 >> 24;
            var$11 = $var4.$tagMap;
            var$9 = new nms_NBTTagByte;
            var$9.$name = $rt_s(915);
            var$9.$data0 = var$2;
            ju_HashMap_putImpl(var$11, $rt_s(915), var$9);
            var$2 = var$4.$itemDamage << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$9 = new nms_NBTTagShort;
            var$9.$name = $rt_s(916);
            var$9.$data2 = var$2;
            ju_HashMap_putImpl(var$11, $rt_s(916), var$9);
            var$4 = var$4.$stackTagCompound;
            if (var$4 !== null) {
                var$9 = $var4.$tagMap;
                var$4.$name = $rt_s(917);
                ju_HashMap_putImpl(var$9, $rt_s(917), var$4);
            }
            $var2.$tagType = 10;
            var$4 = $var2.$tagList;
            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
            var$7 = var$4.$array.data;
            var$12 = var$4.$size0;
            var$4.$size0 = var$12 + 1 | 0;
            var$7[var$12] = $var4;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    var$3 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2241);
    ju_HashMap_putImpl(var$3, $rt_s(2241), $var2);
    $var2 = $this.$field_94130_e;
    if ($var2 !== null && $var2.$nativeString.length > 0 ? 1 : 0) {
        var$4 = $this.$field_94130_e;
        var$3 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$4;
        if (var$4 === null) {
            $var2 = new jl_IllegalArgumentException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            $var2.$message = $rt_s(177);
            $rt_throw($var2);
        }
        ju_HashMap_putImpl(var$3, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_TileEntityFurnace_getInventoryStackLimit = $this => {
    return 64;
},
nms_TileEntityFurnace_updateEntity = $this => {
    let var$1, $var1, $var2, var$4, var$5, $var3, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$furnaceBurnTime;
        $var1 = var$1 <= 0 ? 0 : 1;
        $var2 = 0;
        if (var$1 > 0)
            $this.$furnaceBurnTime = var$1 - 1 | 0;
        if (!$this.$worldObj2.$isRemote) {
            if (!$this.$furnaceBurnTime && nms_TileEntityFurnace_canSmelt($this)) {
                var$1 = nms_TileEntityFurnace_getItemBurnTime($this.$furnaceItemStacks.data[1]);
                $this.$furnaceBurnTime = var$1;
                $this.$currentItemBurnTime = var$1;
                if (var$1 > 0) {
                    $var2 = 1;
                    var$4 = $this.$furnaceItemStacks.data;
                    if (var$4[1] !== null) {
                        var$5 = var$4[1];
                        var$5.$stackSize = var$5.$stackSize - 1 | 0;
                        if (!var$4[1].$stackSize) {
                            var$5 = var$4[1];
                            nms_Item_$callClinit();
                            $var3 = nms_Item_itemsList.data[var$5.$itemID].$containerItem;
                            if ($var3 === null)
                                var$5 = null;
                            else {
                                var$5 = new nms_ItemStack;
                                nms_ItemStack_$callClinit();
                                var$5.$itemID = $var3.$itemID0;
                                var$5.$stackSize = 1;
                                var$5.$itemDamage = 0;
                            }
                            var$4[1] = var$5;
                        }
                    }
                }
            }
            var$1 = $this.$furnaceBurnTime <= 0 ? 0 : 1;
            if (var$1 && nms_TileEntityFurnace_canSmelt($this)) {
                var$1 = $this.$furnaceCookTime + 1 | 0;
                $this.$furnaceCookTime = var$1;
                if (var$1 == 200) {
                    $this.$furnaceCookTime = 0;
                    nms_TileEntityFurnace_smeltItem($this);
                    $var2 = 1;
                }
            } else
                $this.$furnaceCookTime = 0;
            var$7 = $this.$furnaceBurnTime;
            if ($var1 != (var$7 <= 0 ? 0 : 1)) {
                $var2 = 1;
                var$1 = var$7 <= 0 ? 0 : 1;
                var$5 = $this.$worldObj2;
                $var1 = $this.$xCoord0;
                var$7 = $this.$yCoord0;
                var$8 = $this.$zCoord0;
                $ptr = 2;
                continue main;
            }
        }
        if (!$var2)
            return;
        $ptr = 1;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_BlockFurnace_updateFurnaceBlockState(var$1, var$5, $var1, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var2)
            return;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, var$4, var$5, $var3, var$7, var$8, $ptr);
},
nms_TileEntityFurnace_canSmelt = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6, var$7;
    var$1 = $this.$furnaceItemStacks.data;
    if (var$1[0] === null)
        return 0;
    nms_FurnaceRecipes_$callClinit();
    var$2 = nms_FurnaceRecipes_smeltingBase;
    $var1 = var$1[0];
    nms_Item_$callClinit();
    var$4 = nms_Item_itemsList.data[$var1.$itemID].$itemID0;
    $var1 = var$2.$smeltingList;
    if (var$4 >= (-128) && var$4 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[var$4 + 128 | 0];
    } else {
        var$2 = new jl_Integer;
        var$2.$value = var$4;
    }
    if (var$2 === null) {
        $var1 = $var1.$elementData.data[0];
        while ($var1 !== null && $var1.$key !== null) {
            $var1 = $var1.$next3;
        }
    } else {
        var$5 = var$2.$value;
        var$1 = $var1.$elementData.data;
        $var1 = var$1[var$5 & (var$1.length - 1 | 0)];
        while ($var1 !== null) {
            if ($var1.$origKeyHash == var$5) {
                var$6 = $var1.$key;
                if (var$2 !== var$6 && !(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var1 = $var1.$next3;
        }
    }
    $var1 = $var1 === null ? null : $var1.$value0;
    a: {
        $var1 = $var1;
        if ($var1 === null)
            var$4 = 0;
        else {
            var$1 = $this.$furnaceItemStacks.data;
            if (var$1[2] === null)
                var$4 = 1;
            else {
                var$2 = var$1[2];
                var$4 = var$2.$itemID;
                var$7 = $var1.$itemID;
                if (!(var$4 == var$7 && var$2.$itemDamage == $var1.$itemDamage ? 1 : 0))
                    var$4 = 0;
                else {
                    if (var$1[2].$stackSize < 64) {
                        var$4 = var$1[2].$stackSize;
                        $var1 = var$1[2];
                        if (var$4 < nms_Item_itemsList.data[$var1.$itemID].$maxStackSize) {
                            var$4 = 1;
                            break a;
                        }
                    }
                    if (var$1[2].$stackSize >= nms_Item_itemsList.data[var$7].$maxStackSize)
                        var$4 = 0;
                    else
                        var$4 = 1;
                }
            }
        }
    }
    return var$4;
},
nms_TileEntityFurnace_smeltItem = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    if (nms_TileEntityFurnace_canSmelt($this)) {
        nms_FurnaceRecipes_$callClinit();
        $var1 = nms_FurnaceRecipes_smeltingBase;
        var$2 = $this.$furnaceItemStacks.data[0];
        nms_Item_$callClinit();
        var$3 = nms_Item_itemsList.data[var$2.$itemID].$itemID0;
        var$2 = $var1.$smeltingList;
        if (var$3 >= (-128) && var$3 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var1 = jl_Integer_integerCache.data[var$3 + 128 | 0];
        } else {
            $var1 = new jl_Integer;
            $var1.$value = var$3;
        }
        if ($var1 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$3 = $var1.$value;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    var$5 = var$2.$key;
                    if ($var1 !== var$5 && !($var1 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var1 = var$2 === null ? null : var$2.$value0;
        var$4 = $this.$furnaceItemStacks.data;
        if (var$4[2] === null) {
            var$2 = new nms_ItemStack;
            var$6 = $var1.$itemID;
            var$7 = $var1.$stackSize;
            var$8 = $var1.$itemDamage;
            nms_ItemStack_$callClinit();
            var$2.$itemID = var$6;
            var$2.$stackSize = var$7;
            var$2.$itemDamage = var$8;
            if (var$8 < 0)
                var$2.$itemDamage = 0;
            var$9 = $var1.$stackTagCompound;
            if (var$9 !== null) {
                $var1 = new nms_NBTTagCompound;
                var$5 = var$9.$name;
                if (var$5 === null)
                    var$5 = $rt_s(3);
                $var1.$name = var$5;
                var$5 = new ju_HashMap;
                var$6 = ju_HashMap_calculateCapacity(16);
                var$5.$elementCount = 0;
                var$10 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$11 = var$10.data;
                var$5.$elementData = var$10;
                var$5.$loadFactor = 0.75;
                var$5.$threshold = var$11.length * 0.75 | 0;
                $var1.$tagMap = var$5;
                var$5 = var$9.$tagMap;
                if (var$5.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$5;
                    var$5.$cachedKeySet = var$12;
                }
                var$5 = var$5.$cachedKeySet.$iterator();
                while (var$5.$hasNext()) {
                    var$12 = var$5.$next();
                    var$13 = var$9.$tagMap;
                    if (var$12 === null) {
                        var$13 = var$13.$elementData.data[0];
                        while (var$13 !== null && var$13.$key !== null) {
                            var$13 = var$13.$next3;
                        }
                    } else {
                        a: {
                            if (!var$12.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$12.$nativeString.length)
                                        break a;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        var$8 = var$12.$hashCode1;
                        var$11 = var$13.$elementData.data;
                        var$13 = var$11[var$8 & (var$11.length - 1 | 0)];
                        while (var$13 !== null) {
                            if (var$13.$origKeyHash == var$8) {
                                b: {
                                    var$14 = var$13.$key;
                                    if (var$12 !== var$14) {
                                        if (var$12 === var$14)
                                            var$6 = 1;
                                        else if (!(var$14 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$14 = var$14;
                                            var$6 = var$12.$nativeString !== var$14.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break b;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$13 = var$13.$next3;
                        }
                    }
                    var$13 = var$13 === null ? null : var$13.$value0;
                    var$13 = var$13.$copy();
                    var$14 = $var1.$tagMap;
                    if (var$12 !== null)
                        var$13.$name = var$12;
                    else
                        var$13.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$14, var$12, var$13);
                }
                var$2.$stackTagCompound = $var1;
            }
            var$4[2] = var$2;
        } else if (var$4[2].$itemID == $var1.$itemID) {
            var$2 = var$4[2];
            var$2.$stackSize = var$2.$stackSize + 1 | 0;
        }
        var$4 = $this.$furnaceItemStacks.data;
        var$2 = var$4[0];
        var$2.$stackSize = var$2.$stackSize - 1 | 0;
        if (var$4[0].$stackSize <= 0)
            var$4[0] = null;
    }
},
nms_TileEntityFurnace_getItemBurnTime = $par0ItemStack => {
    let var$2, var$3, $var1, $var2, $var3;
    if ($par0ItemStack === null)
        return 0;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data;
    var$3 = $par0ItemStack.$itemID;
    $var1 = var$2[var$3].$itemID0;
    $var2 = var$2[var$3];
    if ($var1 < 256) {
        nms_Block_$callClinit();
        var$2 = nms_Block_blocksList.data;
        if (var$2[$var1] !== null) {
            $var3 = var$2[$var1];
            if ($var3 === nms_Block_woodSingleSlab)
                return 150;
            $par0ItemStack = $var3.$blockMaterial;
            nms_Material_$callClinit();
            if ($par0ItemStack === nms_Material_wood)
                return 300;
            if ($var3 === nms_Block_coalBlock)
                return 16000;
        }
    }
    a: {
        if ($var2 instanceof nms_ItemTool) {
            $var3 = $var2.$toolMaterial.$name0;
            if ($var3 === $rt_s(1160))
                var$3 = 1;
            else if (!($rt_s(1160) instanceof jl_String))
                var$3 = 0;
            else {
                $par0ItemStack = $rt_s(1160);
                var$3 = $var3.$nativeString !== $par0ItemStack.$nativeString ? 0 : 1;
            }
            if (var$3) {
                var$3 = 200;
                break a;
            }
        }
        if ($var2 instanceof nms_ItemSword) {
            $var3 = $var2.$toolMaterial0.$name0;
            if ($var3 === $rt_s(1160))
                var$3 = 1;
            else if (!($rt_s(1160) instanceof jl_String))
                var$3 = 0;
            else {
                $par0ItemStack = $rt_s(1160);
                var$3 = $var3.$nativeString !== $par0ItemStack.$nativeString ? 0 : 1;
            }
            if (var$3) {
                var$3 = 200;
                break a;
            }
        }
        if ($var2 instanceof nms_ItemHoe) {
            $var2 = $var2.$theToolMaterial.$name0;
            if ($var2 === $rt_s(1160))
                var$3 = 1;
            else if (!($rt_s(1160) instanceof jl_String))
                var$3 = 0;
            else {
                $par0ItemStack = $rt_s(1160);
                var$3 = $var2.$nativeString !== $par0ItemStack.$nativeString ? 0 : 1;
            }
            if (var$3) {
                var$3 = 200;
                break a;
            }
        }
        if ($var1 == nms_Item_stick.$itemID0)
            var$3 = 100;
        else if ($var1 == nms_Item_coal.$itemID0)
            var$3 = 1600;
        else if ($var1 == nms_Item_bucketLava.$itemID0)
            var$3 = 20000;
        else {
            nms_Block_$callClinit();
            if ($var1 == nms_Block_sapling.$blockID)
                var$3 = 100;
            else if ($var1 != nms_Item_blazeRod.$itemID0)
                var$3 = 0;
            else
                var$3 = 2400;
        }
    }
    return var$3;
},
nms_TileEntityFurnace_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityFurnace_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    return $par1 == 2 ? 0 : $par1 != 1 ? 1 : nms_TileEntityFurnace_getItemBurnTime($par2ItemStack) <= 0 ? 0 : 1;
},
nms_TileEntityFurnace_getAccessibleSlotsFromSide = ($this, $par1) => {
    return !$par1 ? nms_TileEntityFurnace_slots_bottom : $par1 != 1 ? nms_TileEntityFurnace_slots_sides : nms_TileEntityFurnace_slots_top;
},
nms_TileEntityFurnace_canInsertItem = ($this, $par1, $par2ItemStack, $par3) => {
    return $par1 == 2 ? 0 : $par1 != 1 ? 1 : nms_TileEntityFurnace_getItemBurnTime($par2ItemStack) <= 0 ? 0 : 1;
},
nms_TileEntityFurnace_canExtractItem = ($this, $par1, $par2ItemStack, $par3) => {
    a: {
        if (!$par3 && $par1 == 1) {
            $par1 = $par2ItemStack.$itemID;
            nms_Item_$callClinit();
            if ($par1 != nms_Item_bucketEmpty.$itemID0) {
                $par1 = 0;
                break a;
            }
        }
        $par1 = 1;
    }
    return $par1;
},
nms_TileEntityFurnace__clinit_ = () => {
    let var$1;
    var$1 = $rt_createIntArray(1);
    var$1.data[0] = 0;
    nms_TileEntityFurnace_slots_top = var$1;
    nms_TileEntityFurnace_slots_bottom = $rt_createIntArrayFromData([2, 1]);
    var$1 = $rt_createIntArray(1);
    var$1.data[0] = 1;
    nms_TileEntityFurnace_slots_sides = var$1;
};
function nms_TileEntityChest() {
    let a = this; nms_TileEntity.call(a);
    a.$chestContents = null;
    a.$adjacentChestChecked = 0;
    a.$adjacentChestZNeg = null;
    a.$adjacentChestXPos = null;
    a.$adjacentChestXNeg = null;
    a.$adjacentChestZPosition = null;
    a.$lidAngle = 0.0;
    a.$prevLidAngle = 0.0;
    a.$numUsingPlayers = 0;
    a.$ticksSinceSync = 0;
    a.$cachedChestType = 0;
    a.$customName0 = null;
}
let nms_TileEntityChest__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$chestContents = $rt_createArray(nms_ItemStack, 36);
    $this.$cachedChestType = (-1);
},
nms_TileEntityChest__init_0 = () => {
    let var_0 = new nms_TileEntityChest();
    nms_TileEntityChest__init_(var_0);
    return var_0;
},
nms_TileEntityChest_getSizeInventory = $this => {
    return 27;
},
nms_TileEntityChest_getStackInSlot = ($this, $par1) => {
    return $this.$chestContents.data[$par1];
},
nms_TileEntityChest_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$chestContents.data;
        if (var$3[$par1] === null)
            return null;
        if (var$3[$par1].$stackSize <= $par2) {
            $var3 = var$3[$par1];
            var$3[$par1] = null;
            $ptr = 1;
            continue main;
        }
        var$5 = var$3[$par1];
        $var3 = new nms_ItemStack;
        var$6 = var$5.$itemID;
        var$7 = var$5.$itemDamage;
        nms_ItemStack_$callClinit();
        $var3.$itemID = var$6;
        $var3.$stackSize = $par2;
        $var3.$itemDamage = var$7;
        if (var$7 < 0)
            $var3.$itemDamage = 0;
        var$8 = var$5.$stackTagCompound;
        if (var$8 !== null) {
            var$9 = new nms_NBTTagCompound;
            var$10 = var$8.$name;
            if (var$10 === null)
                var$10 = $rt_s(3);
            var$9.$name = var$10;
            var$10 = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            var$10.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$3 = var$11.data;
            var$10.$elementData = var$11;
            var$10.$loadFactor = 0.75;
            var$10.$threshold = var$3.length * 0.75 | 0;
            var$9.$tagMap = var$10;
            var$12 = var$8.$tagMap;
            if (var$12.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = var$12;
                var$12.$cachedKeySet = var$10;
            }
            var$13 = var$12.$cachedKeySet.$iterator();
            while (var$13.$hasNext()) {
                var$14 = var$13.$next();
                var$10 = var$8.$tagMap;
                if (var$14 === null) {
                    var$15 = var$10.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                } else {
                    a: {
                        if (!var$14.$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= var$14.$nativeString.length)
                                    break a;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$7 = var$14.$hashCode1;
                    var$3 = var$10.$elementData.data;
                    var$15 = var$3[var$7 & (var$3.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$7) {
                            b: {
                                var$10 = var$15.$key;
                                if (var$14 !== var$10) {
                                    if (var$14 === var$10)
                                        var$6 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$10 = var$10;
                                        var$6 = var$14.$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break b;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                }
                var$10 = var$15 === null ? null : var$15.$value0;
                var$10 = var$10.$copy();
                var$12 = var$9.$tagMap;
                if (var$14 !== null)
                    var$10.$name = var$14;
                else
                    var$10.$name = $rt_s(3);
                ju_HashMap_putImpl(var$12, var$14, var$10);
            }
            $var3.$stackTagCompound = var$9;
        }
        var$5.$stackSize = var$5.$stackSize - $par2 | 0;
        var$3 = $this.$chestContents.data;
        if (!var$3[$par1].$stackSize)
            var$3[$par1] = null;
        $ptr = 2;
        continue main;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 2:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_TileEntityChest_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2ItemStack = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$chestContents.data[$par1] = $par2ItemStack;
        if ($par2ItemStack !== null && $par2ItemStack.$stackSize > 64)
            $par2ItemStack.$stackSize = 64;
        $ptr = 1;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ItemStack, $ptr);
},
nms_TileEntityChest_getInvName = $this => {
    let var$1;
    var$1 = $this.$customName0;
    return !(var$1 !== null && var$1.$nativeString.length > 0 ? 1 : 0) ? $rt_s(2403) : $this.$customName0;
},
nms_TileEntityChest_isInvNameLocalized = $this => {
    let var$1;
    var$1 = $this.$customName0;
    return var$1 !== null && var$1.$nativeString.length > 0 ? 1 : 0;
},
nms_TileEntityChest_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, var$4, var$5, $var4, $var5, var$8, var$9, var$10;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            b: {
                $var4 = $var2.$key;
                if ($rt_s(349) !== $var4) {
                    if ($rt_s(349) === $var4)
                        $var3 = 1;
                    else if (!($var4 instanceof jl_String))
                        $var3 = 0;
                    else {
                        $var4 = $var4;
                        $var3 = $rt_s(349).$nativeString !== $var4.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break b;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) !== null) {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    d: {
                        $var4 = $var2.$key;
                        if ($rt_s(349) !== $var4) {
                            if ($rt_s(349) !== $var4) {
                                if ($var4 instanceof jl_String) {
                                    $var4 = $var4;
                                    $var3 = $rt_s(349).$nativeString !== $var4.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break d;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    } else
        $var3 = 0;
    e: {
        $this.$xCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            f: {
                $var4 = $var2.$key;
                if ($rt_s(350) !== $var4) {
                    if ($rt_s(350) !== $var4) {
                        if ($var4 instanceof jl_String) {
                            $var4 = $var4;
                            $var3 = $rt_s(350).$nativeString !== $var4.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    h: {
                        $var4 = $var2.$key;
                        if ($rt_s(350) !== $var4) {
                            if ($rt_s(350) !== $var4) {
                                if ($var4 instanceof jl_String) {
                                    $var4 = $var4;
                                    $var3 = $rt_s(350).$nativeString !== $var4.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    } else
        $var3 = 0;
    i: {
        $this.$yCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            j: {
                $var4 = $var2.$key;
                if ($rt_s(351) !== $var4) {
                    if ($rt_s(351) === $var4)
                        $var3 = 1;
                    else if ($var4 instanceof jl_String) {
                        $var4 = $var4;
                        $var3 = $rt_s(351).$nativeString !== $var4.$nativeString ? 0 : 1;
                    } else
                        $var3 = 0;
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    l: {
                        $var4 = $var2.$key;
                        if ($rt_s(351) !== $var4) {
                            if ($rt_s(351) === $var4)
                                $var3 = 1;
                            else if (!($var4 instanceof jl_String))
                                $var3 = 0;
                            else {
                                $var4 = $var4;
                                $var3 = $rt_s(351).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break l;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    } else
        $var3 = 0;
    m: {
        $this.$zCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2241).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2241).$nativeString.length)
                    break m;
                $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(2241).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var3) {
            n: {
                $var4 = $var2.$key;
                if ($rt_s(2241) !== $var4) {
                    if ($rt_s(2241) === $var4)
                        $var5 = 1;
                    else if (!($var4 instanceof jl_String))
                        $var5 = 0;
                    else {
                        $var4 = $var4;
                        $var5 = $rt_s(2241).$nativeString !== $var4.$nativeString ? 0 : 1;
                    }
                    if (!$var5) {
                        $var5 = 0;
                        break n;
                    }
                }
                $var5 = 1;
            }
            if ($var5)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2241) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2241).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2241).$nativeString.length)
                            break o;
                        $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2241).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var3) {
                    p: {
                        $var4 = $var2.$key;
                        if ($rt_s(2241) !== $var4) {
                            if ($rt_s(2241) === $var4)
                                $var5 = 1;
                            else if (!($var4 instanceof jl_String))
                                $var5 = 0;
                            else {
                                $var4 = $var4;
                                $var5 = $rt_s(2241).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break p;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    } else {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2241) !== null)
            $var2.$name = $rt_s(2241);
        else
            $var2.$name = $rt_s(3);
        var$8 = new ju_ArrayList;
        var$8.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = var$8;
    }
    q: {
        $this.$chestContents = $rt_createArray(nms_ItemStack, 27);
        $var4 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1994).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1994).$nativeString.length)
                    break q;
                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1994).$hashCode1;
    var$5 = $var4.$elementData.data;
    $var4 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == var$4) {
            r: {
                var$9 = $var4.$key;
                if ($rt_s(1994) !== var$9) {
                    if ($rt_s(1994) === var$9)
                        $var3 = 1;
                    else if (!(var$9 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$9 = var$9;
                        $var3 = $rt_s(1994).$nativeString !== var$9.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break r;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var4 = $var4.$next3;
    }
    if ($var4 === null ? 0 : 1) {
        s: {
            $var4 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1994).$nativeString.length)
                        break s;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(1994).$hashCode1;
        var$5 = $var4.$elementData.data;
        $var4 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$4) {
                t: {
                    var$9 = $var4.$key;
                    if ($rt_s(1994) !== var$9) {
                        if ($rt_s(1994) === var$9)
                            $var3 = 1;
                        else if (!(var$9 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$9 = var$9;
                            $var3 = $rt_s(1994).$nativeString !== var$9.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break t;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var4 = $var4.$next3;
        }
        if (!($var4 === null ? 0 : 1))
            $par1NBTTagCompound = $rt_s(3);
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1994) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                u: {
                    if (!$rt_s(1994).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1994).$nativeString.length)
                                break u;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(1994).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$4) {
                        v: {
                            $var4 = $par1NBTTagCompound.$key;
                            if ($rt_s(1994) !== $var4) {
                                if ($rt_s(1994) === $var4)
                                    $var3 = 1;
                                else if (!($var4 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    $var4 = $var4;
                                    $var3 = $rt_s(1994).$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break v;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
        }
        $this.$customName0 = $par1NBTTagCompound;
    }
    $var3 = 0;
    w: {
        while (true) {
            $par1NBTTagCompound = $var2.$tagList;
            $var5 = $rt_compare($var3, $par1NBTTagCompound.$size0);
            if ($var5 >= 0)
                break;
            if ($var3 < 0)
                break w;
            if ($var5 >= 0)
                break w;
            x: {
                $var4 = $par1NBTTagCompound.$array.data[$var3];
                $par1NBTTagCompound = $var4.$tagMap;
                if (!$rt_s(2022).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2022).$nativeString.length)
                            break x;
                        $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2022).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            var$10 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$10 !== null) {
                if (var$10.$origKeyHash == var$4) {
                    y: {
                        $par1NBTTagCompound = var$10.$key;
                        if ($rt_s(2022) !== $par1NBTTagCompound) {
                            if ($rt_s(2022) === $par1NBTTagCompound)
                                $var5 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                $var5 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                $var5 = $rt_s(2022).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break y;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$10 = var$10.$next3;
            }
            if (!(var$10 === null ? 0 : 1))
                var$4 = 0;
            else {
                $par1NBTTagCompound = $var4.$tagMap;
                if ($rt_s(2022) === null) {
                    var$10 = $par1NBTTagCompound.$elementData.data[0];
                    while (var$10 !== null && var$10.$key !== null) {
                        var$10 = var$10.$next3;
                    }
                } else {
                    z: {
                        if (!$rt_s(2022).$hashCode1) {
                            $var5 = 0;
                            while (true) {
                                if ($var5 >= $rt_s(2022).$nativeString.length)
                                    break z;
                                $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var5) | 0;
                                $var5 = $var5 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(2022).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    var$10 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$10 !== null) {
                        if (var$10.$origKeyHash == var$4) {
                            ba: {
                                $par1NBTTagCompound = var$10.$key;
                                if ($rt_s(2022) !== $par1NBTTagCompound) {
                                    if ($rt_s(2022) === $par1NBTTagCompound)
                                        $var5 = 1;
                                    else if (!($par1NBTTagCompound instanceof jl_String))
                                        $var5 = 0;
                                    else {
                                        $par1NBTTagCompound = $par1NBTTagCompound;
                                        $var5 = $rt_s(2022).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                    }
                                    if (!$var5) {
                                        $var5 = 0;
                                        break ba;
                                    }
                                }
                                $var5 = 1;
                            }
                            if ($var5)
                                break;
                        }
                        var$10 = var$10.$next3;
                    }
                }
                var$4 = (var$10 === null ? null : var$10.$value0).$data0;
            }
            $var5 = var$4 & 255;
            if ($var5 >= 0) {
                var$5 = $this.$chestContents.data;
                if ($var5 < var$5.length) {
                    nms_ItemStack_$callClinit();
                    $par1NBTTagCompound = new nms_ItemStack;
                    nms_ItemStack_readFromNBT($par1NBTTagCompound, $var4);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[$par1NBTTagCompound.$itemID] === null)
                        $par1NBTTagCompound = null;
                    var$5[$var5] = $par1NBTTagCompound;
                }
            }
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntityChest_writeToNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, $var3, var$5, $var4, var$7, var$8, var$9, var$10, var$11;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$3;
    $var3 = 0;
    while (true) {
        var$5 = $this.$chestContents.data;
        if ($var3 >= var$5.length)
            break;
        if (var$5[$var3] !== null) {
            $var4 = new nms_NBTTagCompound;
            $var4.$name = $rt_s(3);
            var$7 = new ju_HashMap;
            var$8 = ju_HashMap_calculateCapacity(16);
            var$7.$elementCount = 0;
            var$9 = $rt_createArray(ju_HashMap$HashEntry, var$8);
            var$5 = var$9.data;
            var$7.$elementData = var$9;
            var$7.$loadFactor = 0.75;
            var$7.$threshold = var$5.length * 0.75 | 0;
            $var4.$tagMap = var$7;
            var$8 = $var3 << 24 >> 24;
            var$3 = new nms_NBTTagByte;
            var$3.$name = $rt_s(2022);
            var$3.$data0 = var$8;
            ju_HashMap_putImpl(var$7, $rt_s(2022), var$3);
            var$10 = $this.$chestContents.data[$var3];
            var$8 = var$10.$itemID << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagShort;
            var$7.$name = $rt_s(914);
            var$7.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(914), var$7);
            var$8 = var$10.$stackSize << 24 >> 24;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagByte;
            var$7.$name = $rt_s(915);
            var$7.$data0 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(915), var$7);
            var$8 = var$10.$itemDamage << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagShort;
            var$7.$name = $rt_s(916);
            var$7.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(916), var$7);
            var$3 = var$10.$stackTagCompound;
            if (var$3 !== null) {
                var$11 = $var4.$tagMap;
                var$3.$name = $rt_s(917);
                ju_HashMap_putImpl(var$11, $rt_s(917), var$3);
            }
            $var2.$tagType = 10;
            var$3 = $var2.$tagList;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$5 = var$3.$array.data;
            var$8 = var$3.$size0;
            var$3.$size0 = var$8 + 1 | 0;
            var$5[var$8] = $var4;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    var$7 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2241);
    ju_HashMap_putImpl(var$7, $rt_s(2241), $var2);
    $var2 = $this.$customName0;
    if ($var2 !== null && $var2.$nativeString.length > 0 ? 1 : 0) {
        var$3 = $this.$customName0;
        var$7 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$3;
        if (var$3 === null) {
            $var2 = new jl_IllegalArgumentException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            $var2.$message = $rt_s(177);
            $rt_throw($var2);
        }
        ju_HashMap_putImpl(var$7, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_TileEntityChest_getInventoryStackLimit = $this => {
    return 64;
},
nms_TileEntityChest_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityChest_updateContainingBlockInfo = $this => {
    $this.$blockType = null;
    $this.$blockMetadata = (-1);
    $this.$adjacentChestChecked = 0;
},
nms_TileEntityChest_func_90009_a = ($this, $par1TileEntityChest, $par2) => {
    a: {
        if ($par1TileEntityChest.$tileEntityInvalid)
            $this.$adjacentChestChecked = 0;
        else if ($this.$adjacentChestChecked) {
            b: {
                c: {
                    d: {
                        switch ($par2) {
                            case 0:
                                break;
                            case 1:
                                break d;
                            case 2:
                                break c;
                            case 3:
                                break b;
                            default:
                                break a;
                        }
                        if ($this.$adjacentChestZPosition === $par1TileEntityChest)
                            break a;
                        $this.$adjacentChestChecked = 0;
                        break a;
                    }
                    if ($this.$adjacentChestXNeg === $par1TileEntityChest)
                        break a;
                    $this.$adjacentChestChecked = 0;
                    break a;
                }
                if ($this.$adjacentChestZNeg === $par1TileEntityChest)
                    break a;
                $this.$adjacentChestChecked = 0;
                break a;
            }
            if ($this.$adjacentChestXPos !== $par1TileEntityChest)
                $this.$adjacentChestChecked = 0;
        }
    }
},
nms_TileEntityChest_checkForAdjacentChests = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$adjacentChestChecked)
            return;
        $this.$adjacentChestChecked = 1;
        $this.$adjacentChestZNeg = null;
        $this.$adjacentChestXPos = null;
        $this.$adjacentChestXNeg = null;
        $this.$adjacentChestZPosition = null;
        var$1 = $this.$xCoord0 - 1 | 0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$5, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        var$5 = var$4[var$1];
        if (var$5 !== null && var$5 instanceof nms_BlockChest) {
            a: {
                b: {
                    var$1 = var$5.$chestType;
                    if ($this.$cachedChestType == (-1)) {
                        var$5 = $this.$worldObj2;
                        if (var$5 !== null) {
                            if ($this.$blockType === null) {
                                var$4 = nms_Block_blocksList.data;
                                var$2 = $this.$xCoord0;
                                var$3 = $this.$yCoord0;
                                var$6 = $this.$zCoord0;
                                $ptr = 4;
                                continue main;
                            }
                            var$5 = $this.$blockType;
                            if (var$5 instanceof nms_BlockChest) {
                                if (var$5 === null) {
                                    var$4 = nms_Block_blocksList.data;
                                    var$5 = $this.$worldObj2;
                                    var$2 = $this.$xCoord0;
                                    var$3 = $this.$yCoord0;
                                    var$6 = $this.$zCoord0;
                                    $ptr = 7;
                                    continue main;
                                }
                                $this.$cachedChestType = $this.$blockType.$chestType;
                                break b;
                            }
                        }
                        var$2 = 0;
                        break a;
                    }
                }
                var$2 = $this.$cachedChestType;
            }
            var$1 = var$1 != var$2 ? 0 : 1;
        } else
            var$1 = 0;
        if (var$1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0 - 1 | 0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0;
            $ptr = 3;
            continue main;
        }
        var$1 = $this.$xCoord0 + 1 | 0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$5, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        var$5 = var$4[var$1];
        if (var$5 !== null && var$5 instanceof nms_BlockChest) {
            a: {
                b: {
                    var$1 = var$5.$chestType;
                    if ($this.$cachedChestType == (-1)) {
                        var$5 = $this.$worldObj2;
                        if (var$5 !== null) {
                            if ($this.$blockType === null) {
                                var$4 = nms_Block_blocksList.data;
                                var$2 = $this.$xCoord0;
                                var$3 = $this.$yCoord0;
                                var$6 = $this.$zCoord0;
                                $ptr = 8;
                                continue main;
                            }
                            var$5 = $this.$blockType;
                            if (var$5 instanceof nms_BlockChest) {
                                if (var$5 === null) {
                                    var$4 = nms_Block_blocksList.data;
                                    var$5 = $this.$worldObj2;
                                    var$2 = $this.$xCoord0;
                                    var$3 = $this.$yCoord0;
                                    var$6 = $this.$zCoord0;
                                    $ptr = 11;
                                    continue main;
                                }
                                $this.$cachedChestType = $this.$blockType.$chestType;
                                break b;
                            }
                        }
                        var$2 = 0;
                        break a;
                    }
                }
                var$2 = $this.$cachedChestType;
            }
            var$1 = var$1 != var$2 ? 0 : 1;
        } else
            var$1 = 0;
        if (var$1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0 + 1 | 0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0;
            $ptr = 6;
            continue main;
        }
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 - 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_getBlockTileEntity(var$5, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $this.$adjacentChestXNeg = var$5;
        var$1 = $this.$xCoord0 + 1 | 0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 2;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        var$5 = $this.$blockType;
        if (!(var$5 instanceof nms_BlockChest))
            var$2 = 0;
        else {
            if (var$5 === null) {
                var$4 = nms_Block_blocksList.data;
                var$5 = $this.$worldObj2;
                var$2 = $this.$xCoord0;
                var$3 = $this.$yCoord0;
                var$6 = $this.$zCoord0;
                $ptr = 7;
                continue main;
            }
            $this.$cachedChestType = $this.$blockType.$chestType;
            var$2 = $this.$cachedChestType;
        }
        if (var$1 != var$2 ? 0 : 1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0 - 1 | 0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0;
            $ptr = 3;
            continue main;
        }
        var$1 = $this.$xCoord0 + 1 | 0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 2;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        var$5 = var$4[var$1];
        if (var$5 !== null && var$5 instanceof nms_BlockChest) {
            a: {
                b: {
                    var$1 = var$5.$chestType;
                    if ($this.$cachedChestType == (-1)) {
                        var$5 = $this.$worldObj2;
                        if (var$5 !== null) {
                            if ($this.$blockType === null) {
                                var$4 = nms_Block_blocksList.data;
                                var$2 = $this.$xCoord0;
                                var$3 = $this.$yCoord0;
                                var$6 = $this.$zCoord0;
                                $ptr = 12;
                                continue main;
                            }
                            var$5 = $this.$blockType;
                            if (var$5 instanceof nms_BlockChest) {
                                if (var$5 === null) {
                                    var$4 = nms_Block_blocksList.data;
                                    var$5 = $this.$worldObj2;
                                    var$2 = $this.$xCoord0;
                                    var$3 = $this.$yCoord0;
                                    var$6 = $this.$zCoord0;
                                    $ptr = 14;
                                    continue main;
                                }
                                $this.$cachedChestType = $this.$blockType.$chestType;
                                break b;
                            }
                        }
                        var$2 = 0;
                        break a;
                    }
                }
                var$2 = $this.$cachedChestType;
            }
            var$1 = var$1 != var$2 ? 0 : 1;
        } else
            var$1 = 0;
        if (var$1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0 - 1 | 0;
            $ptr = 10;
            continue main;
        }
        var$1 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0 + 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 9;
        continue main;
    case 6:
        $tmp = nms_World_getBlockTileEntity(var$5, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $this.$adjacentChestXPos = var$5;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 - 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 5;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        $this.$cachedChestType = $this.$blockType.$chestType;
        if (var$1 != $this.$cachedChestType ? 0 : 1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0 - 1 | 0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0;
            $ptr = 3;
            continue main;
        }
        var$1 = $this.$xCoord0 + 1 | 0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 2;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        var$5 = $this.$blockType;
        if (!(var$5 instanceof nms_BlockChest))
            var$2 = 0;
        else {
            if (var$5 === null) {
                var$4 = nms_Block_blocksList.data;
                var$5 = $this.$worldObj2;
                var$2 = $this.$xCoord0;
                var$3 = $this.$yCoord0;
                var$6 = $this.$zCoord0;
                $ptr = 11;
                continue main;
            }
            $this.$cachedChestType = $this.$blockType.$chestType;
            var$2 = $this.$cachedChestType;
        }
        if (var$1 != var$2 ? 0 : 1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0 + 1 | 0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0;
            $ptr = 6;
            continue main;
        }
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 - 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 5;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId(var$5, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        var$5 = var$4[var$1];
        if (var$5 !== null && var$5 instanceof nms_BlockChest) {
            a: {
                b: {
                    var$1 = var$5.$chestType;
                    if ($this.$cachedChestType == (-1)) {
                        var$5 = $this.$worldObj2;
                        if (var$5 !== null) {
                            if ($this.$blockType === null) {
                                var$4 = nms_Block_blocksList.data;
                                var$2 = $this.$xCoord0;
                                var$3 = $this.$yCoord0;
                                var$6 = $this.$zCoord0;
                                $ptr = 15;
                                continue main;
                            }
                            var$5 = $this.$blockType;
                            if (var$5 instanceof nms_BlockChest) {
                                if (var$5 === null) {
                                    var$4 = nms_Block_blocksList.data;
                                    var$5 = $this.$worldObj2;
                                    var$2 = $this.$xCoord0;
                                    var$3 = $this.$yCoord0;
                                    var$6 = $this.$zCoord0;
                                    $ptr = 16;
                                    continue main;
                                }
                                $this.$cachedChestType = $this.$blockType.$chestType;
                                break b;
                            }
                        }
                        var$2 = 0;
                        break a;
                    }
                }
                var$2 = $this.$cachedChestType;
            }
            var$1 = var$1 != var$2 ? 0 : 1;
        } else
            var$1 = 0;
        if (!var$1) {
            var$5 = $this.$adjacentChestZNeg;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 0);
            var$5 = $this.$adjacentChestZPosition;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 2);
            var$5 = $this.$adjacentChestXPos;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 1);
            var$5 = $this.$adjacentChestXNeg;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 3);
            return;
        }
        var$5 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 + 1 | 0;
        $ptr = 13;
        continue main;
    case 10:
        $tmp = nms_World_getBlockTileEntity(var$5, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $this.$adjacentChestZNeg = var$5;
        var$1 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0 + 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 9;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        $this.$cachedChestType = $this.$blockType.$chestType;
        if (var$1 != $this.$cachedChestType ? 0 : 1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0 + 1 | 0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0;
            $ptr = 6;
            continue main;
        }
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 - 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 5;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        var$5 = $this.$blockType;
        if (!(var$5 instanceof nms_BlockChest))
            var$2 = 0;
        else {
            if (var$5 === null) {
                var$4 = nms_Block_blocksList.data;
                var$5 = $this.$worldObj2;
                var$2 = $this.$xCoord0;
                var$3 = $this.$yCoord0;
                var$6 = $this.$zCoord0;
                $ptr = 14;
                continue main;
            }
            $this.$cachedChestType = $this.$blockType.$chestType;
            var$2 = $this.$cachedChestType;
        }
        if (var$1 != var$2 ? 0 : 1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0 - 1 | 0;
            $ptr = 10;
            continue main;
        }
        var$1 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0 + 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 9;
        continue main;
    case 13:
        $tmp = nms_World_getBlockTileEntity(var$5, var$2, var$3, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        $this.$adjacentChestZPosition = var$5;
        var$5 = $this.$adjacentChestZNeg;
        if (var$5 !== null)
            nms_TileEntityChest_func_90009_a(var$5, $this, 0);
        var$5 = $this.$adjacentChestZPosition;
        if (var$5 !== null)
            nms_TileEntityChest_func_90009_a(var$5, $this, 2);
        var$5 = $this.$adjacentChestXPos;
        if (var$5 !== null)
            nms_TileEntityChest_func_90009_a(var$5, $this, 1);
        var$5 = $this.$adjacentChestXNeg;
        if (var$5 !== null)
            nms_TileEntityChest_func_90009_a(var$5, $this, 3);
        return;
    case 14:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        $this.$cachedChestType = $this.$blockType.$chestType;
        if (var$1 != $this.$cachedChestType ? 0 : 1) {
            var$5 = $this.$worldObj2;
            var$1 = $this.$xCoord0;
            var$2 = $this.$yCoord0;
            var$3 = $this.$zCoord0 - 1 | 0;
            $ptr = 10;
            continue main;
        }
        var$1 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0 + 1 | 0;
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$worldObj2;
        $ptr = 9;
        continue main;
    case 15:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        var$5 = $this.$blockType;
        if (!(var$5 instanceof nms_BlockChest))
            var$2 = 0;
        else {
            if (var$5 === null) {
                var$4 = nms_Block_blocksList.data;
                var$5 = $this.$worldObj2;
                var$2 = $this.$xCoord0;
                var$3 = $this.$yCoord0;
                var$6 = $this.$zCoord0;
                $ptr = 16;
                continue main;
            }
            $this.$cachedChestType = $this.$blockType.$chestType;
            var$2 = $this.$cachedChestType;
        }
        if (!(var$1 != var$2 ? 0 : 1)) {
            var$5 = $this.$adjacentChestZNeg;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 0);
            var$5 = $this.$adjacentChestZPosition;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 2);
            var$5 = $this.$adjacentChestXPos;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 1);
            var$5 = $this.$adjacentChestXNeg;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 3);
            return;
        }
        var$5 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 + 1 | 0;
        $ptr = 13;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$4[var$2];
        $this.$cachedChestType = $this.$blockType.$chestType;
        if (!(var$1 != $this.$cachedChestType ? 0 : 1)) {
            var$5 = $this.$adjacentChestZNeg;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 0);
            var$5 = $this.$adjacentChestZPosition;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 2);
            var$5 = $this.$adjacentChestXPos;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 1);
            var$5 = $this.$adjacentChestXNeg;
            if (var$5 !== null)
                nms_TileEntityChest_func_90009_a(var$5, $this, 3);
            return;
        }
        var$5 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$1 = $this.$zCoord0 + 1 | 0;
        $ptr = 13;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_TileEntityChest_updateEntity = $this => {
    let $var3$index, $var4, $var2, $var5, $var8, var$6, $var11, var$8, $var6, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var1, var$18, $var10, $var3$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3$index_0 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();$var1 = $thread.pop();$var9 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();$var11 = $thread.pop();var$6 = $thread.pop();$var8 = $thread.pop();$var5 = $thread.pop();$var2 = $thread.pop();$var4 = $thread.pop();$var3$index = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_TileEntityChest_checkForAdjacentChests($this);
        if ($rt_suspending()) {
            break main;
        }
        $var3$index = $this.$ticksSinceSync + 1 | 0;
        $this.$ticksSinceSync = $var3$index;
        $var4 = $this.$worldObj2;
        if (!$var4.$isRemote && $this.$numUsingPlayers && !(((($var3$index + $this.$xCoord0 | 0) + $this.$yCoord0 | 0) + $this.$zCoord0 | 0) % 200 | 0)) {
            $this.$numUsingPlayers = 0;
            $var2 = $rt_cls(nms_EntityPlayer);
            $var5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var3$index = $this.$xCoord0;
            $var8 = $var3$index - 5.0;
            var$6 = $this.$yCoord0;
            $var11 = var$6 - 5.0;
            var$8 = $this.$zCoord0;
            $var6 = var$8 - 5.0;
            var$10 = ($var3$index + 1 | 0) + 5.0;
            var$11 = (var$6 + 1 | 0) + 5.0;
            var$12 = (var$8 + 1 | 0) + 5.0;
            $var3$index = $var5.$nextPoolIndex;
            var$13 = $var5.$listAABB;
            var$8 = var$13.$size0;
            var$6 = $rt_compare($var3$index, var$8);
            if (var$6 >= 0) {
                var$14 = new nms_AxisAlignedBB;
                var$14.$minX0 = $var8;
                var$14.$minY0 = $var11;
                var$14.$minZ0 = $var6;
                var$14.$maxX0 = var$10;
                var$14.$maxY = var$11;
                var$14.$maxZ0 = var$12;
                ju_ArrayList_ensureCapacity(var$13, var$8 + 1 | 0);
                var$15 = var$13.$array.data;
                var$6 = var$13.$size0;
                var$13.$size0 = var$6 + 1 | 0;
                var$15[var$6] = var$14;
                var$13.$modCount = var$13.$modCount + 1 | 0;
            } else if ($var3$index >= 0 && var$6 < 0) {
                var$14 = var$13.$array.data[$var3$index];
                var$14.$minX0 = $var8;
                var$14.$minY0 = $var11;
                var$14.$minZ0 = $var6;
                var$14.$maxX0 = var$10;
                var$14.$maxY = var$11;
                var$14.$maxZ0 = var$12;
            } else {
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
            $var5.$nextPoolIndex = $var5.$nextPoolIndex + 1 | 0;
            $var5 = null;
            $ptr = 2;
            continue main;
        }
        $var9 = $this.$lidAngle;
        $this.$prevLidAngle = $var9;
        $var1 = 0.10000000149011612;
        if ($this.$numUsingPlayers > 0 && $var9 === 0.0 && $this.$adjacentChestZNeg === null && $this.$adjacentChestXNeg === null) {
            $var8 = $this.$xCoord0 + 0.5;
            $var11 = $this.$zCoord0 + 0.5;
            if ($this.$adjacentChestZPosition !== null)
                $var11 = $var11 + 0.5;
            if ($this.$adjacentChestXPos !== null)
                $var8 = $var8 + 0.5;
            $var4 = $this.$worldObj2;
            $var6 = $this.$yCoord0 + 0.5;
            $var2 = $rt_s(2404);
            $var9 = 0.5;
            $var5 = $var4.$rand0;
            var$18 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var5.$seed = var$18;
            $var10 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
            $var3$index = 0;
            var$14 = null;
            var$10 = 16.0;
            $var5 = $var4.$worldAccesses;
            var$6 = $rt_compare($var3$index, $var5.$size0);
            if (var$6 < 0) {
                if ($var3$index >= 0 && var$6 < 0) {
                    $var5 = $var5.$array.data[$var3$index];
                    var$13 = $var5.$mcServer.$serverConfigManager;
                    var$6 = $var5.$theWorldServer.$provider.$dimensionId;
                    $var5 = nms_Packet62LevelSound__init_($var2, $var8, $var6, $var11, $var9, $var10);
                    $ptr = 3;
                    continue main;
                }
                $var4 = new jl_IndexOutOfBoundsException;
                $var4.$suppressionEnabled = 1;
                $var4.$writableStackTrace = 1;
                $rt_throw($var4);
            }
        }
        a: {
            $var3$index = $this.$numUsingPlayers;
            if (!(!$var3$index && $this.$lidAngle > 0.0)) {
                if ($var3$index <= 0)
                    break a;
                if ($this.$lidAngle >= 1.0)
                    break a;
            }
            $var9 = $this.$lidAngle;
            if ($var3$index <= 0)
                $this.$lidAngle = $var9 - $var1;
            else
                $this.$lidAngle = $var9 + $var1;
            if ($this.$lidAngle > 1.0)
                $this.$lidAngle = 1.0;
            if ($this.$lidAngle < 0.5 && $var9 >= 0.5 && $this.$adjacentChestZNeg === null && $this.$adjacentChestXNeg === null) {
                $var11 = $this.$xCoord0 + 0.5;
                $var6 = $this.$zCoord0 + 0.5;
                if ($this.$adjacentChestZPosition !== null)
                    $var6 = $var6 + 0.5;
                if ($this.$adjacentChestXPos !== null)
                    $var11 = $var11 + 0.5;
                var$13 = $this.$worldObj2;
                var$10 = $this.$yCoord0 + 0.5;
                $var4 = $rt_s(2405);
                $var9 = 0.5;
                $var2 = var$13.$rand0;
                var$18 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$18;
                $var1 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
                $var3$index = 0;
                $var5 = null;
                $var8 = 16.0;
                $var2 = var$13.$worldAccesses;
                var$6 = $rt_compare($var3$index, $var2.$size0);
                if (var$6 < 0) {
                    if ($var3$index >= 0 && var$6 < 0) {
                        $var2 = $var2.$array.data[$var3$index];
                        var$14 = $var2.$mcServer.$serverConfigManager;
                        var$6 = $var2.$theWorldServer.$provider.$dimensionId;
                        $var2 = nms_Packet62LevelSound__init_($var4, $var11, var$10, $var6, $var9, $var1);
                        $ptr = 4;
                        continue main;
                    }
                    $var4 = new jl_IndexOutOfBoundsException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
            }
            if ($this.$lidAngle < 0.0)
                $this.$lidAngle = 0.0;
        }
        return;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var4, $var2, var$14, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3$index_0 = 0;
        var$6 = $var2.$modCount;
        var$8 = $var2.$size();
        while (true) {
            if (!($var3$index_0 >= var$8 ? 0 : 1)) {
                $var9 = $this.$lidAngle;
                $this.$prevLidAngle = $var9;
                $var1 = 0.10000000149011612;
                if ($this.$numUsingPlayers > 0 && $var9 === 0.0 && $this.$adjacentChestZNeg === null && $this.$adjacentChestXNeg === null) {
                    $var8 = $this.$xCoord0 + 0.5;
                    $var11 = $this.$zCoord0 + 0.5;
                    if ($this.$adjacentChestZPosition !== null)
                        $var11 = $var11 + 0.5;
                    if ($this.$adjacentChestXPos !== null)
                        $var8 = $var8 + 0.5;
                    $var4 = $this.$worldObj2;
                    $var6 = $this.$yCoord0 + 0.5;
                    $var2 = $rt_s(2404);
                    $var9 = 0.5;
                    $var5 = $var4.$rand0;
                    var$18 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    $var10 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
                    $var3$index = 0;
                    var$14 = null;
                    var$10 = 16.0;
                    $var5 = $var4.$worldAccesses;
                    var$6 = $rt_compare($var3$index, $var5.$size0);
                    if (var$6 < 0) {
                        if ($var3$index >= 0 && var$6 < 0) {
                            $var5 = $var5.$array.data[$var3$index];
                            var$13 = $var5.$mcServer.$serverConfigManager;
                            var$6 = $var5.$theWorldServer.$provider.$dimensionId;
                            $var5 = nms_Packet62LevelSound__init_($var2, $var8, $var6, $var11, $var9, $var10);
                            $ptr = 3;
                            continue main;
                        }
                        $var4 = new jl_IndexOutOfBoundsException;
                        $var4.$suppressionEnabled = 1;
                        $var4.$writableStackTrace = 1;
                        $rt_throw($var4);
                    }
                }
                b: {
                    $var3$index = $this.$numUsingPlayers;
                    if (!(!$var3$index && $this.$lidAngle > 0.0)) {
                        if ($var3$index <= 0)
                            break b;
                        if ($this.$lidAngle >= 1.0)
                            break b;
                    }
                    $var9 = $this.$lidAngle;
                    if ($var3$index <= 0)
                        $this.$lidAngle = $var9 - $var1;
                    else
                        $this.$lidAngle = $var9 + $var1;
                    if ($this.$lidAngle > 1.0)
                        $this.$lidAngle = 1.0;
                    if ($this.$lidAngle < 0.5 && $var9 >= 0.5 && $this.$adjacentChestZNeg === null && $this.$adjacentChestXNeg === null) {
                        $var11 = $this.$xCoord0 + 0.5;
                        $var6 = $this.$zCoord0 + 0.5;
                        if ($this.$adjacentChestZPosition !== null)
                            $var6 = $var6 + 0.5;
                        if ($this.$adjacentChestXPos !== null)
                            $var11 = $var11 + 0.5;
                        var$13 = $this.$worldObj2;
                        var$10 = $this.$yCoord0 + 0.5;
                        $var4 = $rt_s(2405);
                        $var9 = 0.5;
                        $var2 = var$13.$rand0;
                        var$18 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var2.$seed = var$18;
                        $var1 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
                        $var3$index = 0;
                        $var5 = null;
                        $var8 = 16.0;
                        $var2 = var$13.$worldAccesses;
                        var$6 = $rt_compare($var3$index, $var2.$size0);
                        if (var$6 < 0) {
                            if ($var3$index >= 0 && var$6 < 0) {
                                $var2 = $var2.$array.data[$var3$index];
                                var$14 = $var2.$mcServer.$serverConfigManager;
                                var$6 = $var2.$theWorldServer.$provider.$dimensionId;
                                $var2 = nms_Packet62LevelSound__init_($var4, $var11, var$10, $var6, $var9, $var1);
                                $ptr = 4;
                                continue main;
                            }
                            $var4 = new jl_IndexOutOfBoundsException;
                            $var4.$suppressionEnabled = 1;
                            $var4.$writableStackTrace = 1;
                            $rt_throw($var4);
                        }
                    }
                    if ($this.$lidAngle < 0.0)
                        $this.$lidAngle = 0.0;
                }
                return;
            }
            if (var$6 < $var2.$modCount)
                break;
            c: {
                $var3$index = $var3$index_0 + 1 | 0;
                $var4 = ($var2.$get($var3$index_0)).$openContainer;
                if ($var4 instanceof nms_ContainerChest) {
                    $var5 = $var4.$lowerChestInventory;
                    if ($var5 !== $this) {
                        if (!($var5 instanceof nms_InventoryLargeChest))
                            break c;
                        $var4 = $var5;
                        if (!($var4.$upperChest !== $this && $var4.$lowerChest !== $this ? 0 : 1))
                            break c;
                    }
                    $this.$numUsingPlayers = $this.$numUsingPlayers + 1 | 0;
                }
            }
            $var3$index_0 = $var3$index;
        }
        $var4 = new ju_ConcurrentModificationException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    case 3:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$13, var$14, $var8, $var6, $var11, var$10, var$6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var3$index = $var3$index + 1 | 0;
        $var5 = $var4.$worldAccesses;
        var$6 = $rt_compare($var3$index, $var5.$size0);
        if (var$6 < 0) {
            if ($var3$index >= 0 && var$6 < 0) {
                $var5 = $var5.$array.data[$var3$index];
                var$13 = $var5.$mcServer.$serverConfigManager;
                var$6 = $var5.$theWorldServer.$provider.$dimensionId;
                $var5 = nms_Packet62LevelSound__init_($var2, $var8, $var6, $var11, $var9, $var10);
                continue main;
            }
            $var4 = new jl_IndexOutOfBoundsException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        d: {
            $var3$index = $this.$numUsingPlayers;
            if (!(!$var3$index && $this.$lidAngle > 0.0)) {
                if ($var3$index <= 0)
                    break d;
                if ($this.$lidAngle >= 1.0)
                    break d;
            }
            $var9 = $this.$lidAngle;
            if ($var3$index <= 0)
                $this.$lidAngle = $var9 - $var1;
            else
                $this.$lidAngle = $var9 + $var1;
            if ($this.$lidAngle > 1.0)
                $this.$lidAngle = 1.0;
            if ($this.$lidAngle < 0.5 && $var9 >= 0.5 && $this.$adjacentChestZNeg === null && $this.$adjacentChestXNeg === null) {
                $var11 = $this.$xCoord0 + 0.5;
                $var6 = $this.$zCoord0 + 0.5;
                if ($this.$adjacentChestZPosition !== null)
                    $var6 = $var6 + 0.5;
                if ($this.$adjacentChestXPos !== null)
                    $var11 = $var11 + 0.5;
                var$13 = $this.$worldObj2;
                var$10 = $this.$yCoord0 + 0.5;
                $var4 = $rt_s(2405);
                $var9 = 0.5;
                $var2 = var$13.$rand0;
                var$18 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$18;
                $var1 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
                $var3$index = 0;
                $var5 = null;
                $var8 = 16.0;
                $var2 = var$13.$worldAccesses;
                var$6 = $rt_compare($var3$index, $var2.$size0);
                if (var$6 < 0) {
                    if ($var3$index >= 0 && var$6 < 0) {
                        $var2 = $var2.$array.data[$var3$index];
                        var$14 = $var2.$mcServer.$serverConfigManager;
                        var$6 = $var2.$theWorldServer.$provider.$dimensionId;
                        $var2 = nms_Packet62LevelSound__init_($var4, $var11, var$10, $var6, $var9, $var1);
                        $ptr = 4;
                        continue main;
                    }
                    $var4 = new jl_IndexOutOfBoundsException;
                    $var4.$suppressionEnabled = 1;
                    $var4.$writableStackTrace = 1;
                    $rt_throw($var4);
                }
            }
            if ($this.$lidAngle < 0.0)
                $this.$lidAngle = 0.0;
        }
        return;
    case 4:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$14, $var5, $var11, var$10, $var6, $var8, var$6, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3$index = $var3$index + 1 | 0;
        $var2 = var$13.$worldAccesses;
        var$6 = $rt_compare($var3$index, $var2.$size0);
        if (var$6 >= 0) {
            if ($this.$lidAngle < 0.0)
                $this.$lidAngle = 0.0;
            return;
        }
        if ($var3$index >= 0 && var$6 < 0) {
            $var2 = $var2.$array.data[$var3$index];
            var$14 = $var2.$mcServer.$serverConfigManager;
            var$6 = $var2.$theWorldServer.$provider.$dimensionId;
            $var2 = nms_Packet62LevelSound__init_($var4, $var11, var$10, $var6, $var9, $var1);
            continue main;
        }
        $var4 = new jl_IndexOutOfBoundsException;
        $var4.$suppressionEnabled = 1;
        $var4.$writableStackTrace = 1;
        $rt_throw($var4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3$index, $var4, $var2, $var5, $var8, var$6, $var11, var$8, $var6, var$10, var$11, var$12, var$13, var$14, var$15, $var9, $var1, var$18, $var10, $var3$index_0, $ptr);
},
nms_TileEntityChest_receiveClientEvent = ($this, $par1, $par2) => {
    if ($par1 != 1)
        return 0;
    $this.$numUsingPlayers = $par2;
    return 1;
},
nms_TileEntityChest_openChest = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$numUsingPlayers < 0)
            $this.$numUsingPlayers = 0;
        $this.$numUsingPlayers = $this.$numUsingPlayers + 1 | 0;
        var$1 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 1;
            continue main;
        }
        var$6 = $this.$blockType.$blockID;
        var$7 = $this.$numUsingPlayers;
        var$8 = new nms_BlockEventData;
        var$8.$coordX = var$2;
        var$8.$coordY = var$3;
        var$8.$coordZ = var$4;
        var$8.$eventID = 1;
        var$8.$eventParameter = var$7;
        var$8.$blockID2 = var$6;
        var$9 = var$1.$blockEventCache.data[var$1.$blockEventCacheIndex];
        var$6 = 0;
        var$3 = var$9.$modCount;
        var$4 = var$9.$size();
        a: {
            while (true) {
                if (!(var$6 >= var$4 ? 0 : 1)) {
                    var$1 = var$1.$blockEventCache.data[var$1.$blockEventCacheIndex];
                    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
                    var$5 = var$1.$array.data;
                    var$2 = var$1.$size0;
                    var$1.$size0 = var$2 + 1 | 0;
                    var$5[var$2] = var$8;
                    var$1.$modCount = var$1.$modCount + 1 | 0;
                    break a;
                }
                if (var$3 < var$9.$modCount)
                    break;
                var$2 = var$6 + 1 | 0;
                if (nms_BlockEventData_equals(var$9.$get(var$6), var$8))
                    break a;
                var$6 = var$2;
            }
            var$1 = new ju_ConcurrentModificationException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        var$7 = $this.$blockType.$blockID;
        var$4 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 3;
            continue main;
        }
        var$4 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId(var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        $this.$blockType = var$5[var$10];
        var$6 = $this.$blockType.$blockID;
        var$7 = $this.$numUsingPlayers;
        var$8 = new nms_BlockEventData;
        var$8.$coordX = var$2;
        var$8.$coordY = var$3;
        var$8.$coordZ = var$4;
        var$8.$eventID = 1;
        var$8.$eventParameter = var$7;
        var$8.$blockID2 = var$6;
        var$9 = var$1.$blockEventCache.data[var$1.$blockEventCacheIndex];
        var$6 = 0;
        var$3 = var$9.$modCount;
        var$4 = var$9.$size();
        b: {
            while (true) {
                if (!(var$6 >= var$4 ? 0 : 1)) {
                    var$1 = var$1.$blockEventCache.data[var$1.$blockEventCacheIndex];
                    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
                    var$5 = var$1.$array.data;
                    var$2 = var$1.$size0;
                    var$1.$size0 = var$2 + 1 | 0;
                    var$5[var$2] = var$8;
                    var$1.$modCount = var$1.$modCount + 1 | 0;
                    break b;
                }
                if (var$3 < var$9.$modCount)
                    break;
                var$2 = var$6 + 1 | 0;
                if (nms_BlockEventData_equals(var$9.$get(var$6), var$8))
                    break b;
                var$6 = var$2;
            }
            var$1 = new ju_ConcurrentModificationException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            $rt_throw(var$1);
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        var$7 = $this.$blockType.$blockID;
        var$4 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 3;
            continue main;
        }
        var$4 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$1, var$10, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        $this.$blockType = var$5[var$4];
        var$7 = $this.$blockType.$blockID;
        var$4 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 3;
            continue main;
        }
        var$4 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId(var$1, var$4, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 !== null) {
            $ptr = 5;
            continue main;
        }
        var$4 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId(var$1, var$4, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 !== null) {
            $ptr = 7;
            continue main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 5:
        var$8.$onNeighborBlockChange(var$1, var$4, var$2, var$3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId(var$1, var$10, var$4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 !== null) {
            $ptr = 9;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 7:
        var$8.$onNeighborBlockChange(var$1, var$4, var$2, var$3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$2 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$1, var$10, var$4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 !== null) {
            $ptr = 11;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 9:
        var$8.$onNeighborBlockChange(var$1, var$10, var$4, var$3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$2 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId(var$1, var$10, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 !== null) {
            $ptr = 13;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 11:
        var$8.$onNeighborBlockChange(var$1, var$10, var$4, var$3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$1, var$10, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$4];
        if (var$8 !== null) {
            $ptr = 15;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 13:
        var$8.$onNeighborBlockChange(var$1, var$10, var$2, var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId(var$1, var$10, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockType = var$5[var$2];
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 15:
        var$8.$onNeighborBlockChange(var$1, var$10, var$2, var$3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj2;
        var$10 = $this.$xCoord0;
        var$2 = $this.$yCoord0;
        var$3 = var$2 - 1 | 0;
        var$4 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$2 = $this.$blockType.$blockID;
        var$6 = var$10 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId(var$1, var$6, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 18;
            continue main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId(var$1, var$6, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 20;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 18:
        var$8.$onNeighborBlockChange(var$1, var$6, var$3, var$4, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$10 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 19:
        $tmp = nms_World_getBlockId(var$1, var$10, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 22;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 20:
        var$8.$onNeighborBlockChange(var$1, var$6, var$3, var$4, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$3 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 21:
        $tmp = nms_World_getBlockId(var$1, var$10, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 24;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 22:
        var$8.$onNeighborBlockChange(var$1, var$10, var$6, var$4, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$3 + 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 23:
        $tmp = nms_World_getBlockId(var$1, var$10, var$3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$7];
        if (var$8 !== null) {
            $ptr = 26;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 24:
        var$8.$onNeighborBlockChange(var$1, var$10, var$6, var$4, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$4 - 1 | 0;
        if (!var$1.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
    case 25:
        $tmp = nms_World_getBlockId(var$1, var$10, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 === null)
            return;
        $ptr = 27;
        continue main;
    case 26:
        var$8.$onNeighborBlockChange(var$1, var$10, var$3, var$6, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = var$4 + 1 | 0;
        if (var$1.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 27:
        var$8.$onNeighborBlockChange(var$1, var$10, var$3, var$4, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_TileEntityChest_closeChest = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            var$2 = $this.$worldObj2;
            var$3 = $this.$xCoord0;
            var$4 = $this.$yCoord0;
            var$5 = $this.$zCoord0;
            $ptr = 1;
            continue main;
        }
        var$6 = $this.$blockType;
        if (var$6 !== null && var$6 instanceof nms_BlockChest) {
            var$4 = $this.$numUsingPlayers - 1 | 0;
            $this.$numUsingPlayers = var$4;
            var$2 = $this.$worldObj2;
            var$5 = $this.$xCoord0;
            var$7 = $this.$yCoord0;
            var$8 = $this.$zCoord0;
            var$9 = var$6.$blockID;
            var$6 = new nms_BlockEventData;
            var$6.$coordX = var$5;
            var$6.$coordY = var$7;
            var$6.$coordZ = var$8;
            var$6.$eventID = 1;
            var$6.$eventParameter = var$4;
            var$6.$blockID2 = var$9;
            var$10 = var$2.$blockEventCache.data[var$2.$blockEventCacheIndex];
            var$8 = 0;
            var$5 = var$10.$modCount;
            var$7 = var$10.$size();
            a: {
                while (true) {
                    if (!(var$8 >= var$7 ? 0 : 1)) {
                        var$2 = var$2.$blockEventCache.data[var$2.$blockEventCacheIndex];
                        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
                        var$1 = var$2.$array.data;
                        var$4 = var$2.$size0;
                        var$2.$size0 = var$4 + 1 | 0;
                        var$1[var$4] = var$6;
                        var$2.$modCount = var$2.$modCount + 1 | 0;
                        break a;
                    }
                    if (var$5 < var$10.$modCount)
                        break;
                    var$4 = var$8 + 1 | 0;
                    if (nms_BlockEventData_equals(var$10.$get(var$8), var$6))
                        break a;
                    var$8 = var$4;
                }
                var$2 = new ju_ConcurrentModificationException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            var$2 = $this.$worldObj2;
            var$3 = $this.$xCoord0;
            var$4 = $this.$yCoord0;
            var$5 = $this.$zCoord0;
            if ($this.$blockType === null) {
                nms_Block_$callClinit();
                var$1 = nms_Block_blocksList.data;
                $ptr = 2;
                continue main;
            }
            var$8 = $this.$blockType.$blockID;
            var$9 = var$3 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 3;
                continue main;
            }
            var$9 = var$3 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 4;
                continue main;
            }
            var$9 = var$4 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 6;
                continue main;
            }
            var$9 = var$4 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 8;
                continue main;
            }
            var$7 = var$5 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 10;
                continue main;
            }
            var$5 = var$5 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 12;
                continue main;
            }
            var$2 = $this.$worldObj2;
            var$3 = $this.$xCoord0;
            var$4 = $this.$yCoord0;
            var$5 = var$4 - 1 | 0;
            var$7 = $this.$zCoord0;
            if ($this.$blockType === null) {
                nms_Block_$callClinit();
                var$1 = nms_Block_blocksList.data;
                $ptr = 14;
                continue main;
            }
            var$4 = $this.$blockType.$blockID;
            var$8 = var$3 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 16;
                continue main;
            }
            var$8 = var$3 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 17;
                continue main;
            }
            var$8 = var$5 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 19;
                continue main;
            }
            var$8 = var$5 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 21;
                continue main;
            }
            var$8 = var$7 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 23;
                continue main;
            }
            var$7 = var$7 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 25;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $this.$blockType = var$1[var$3];
        var$6 = $this.$blockType;
        if (var$6 !== null && var$6 instanceof nms_BlockChest) {
            var$4 = $this.$numUsingPlayers - 1 | 0;
            $this.$numUsingPlayers = var$4;
            var$2 = $this.$worldObj2;
            var$5 = $this.$xCoord0;
            var$7 = $this.$yCoord0;
            var$8 = $this.$zCoord0;
            var$9 = var$6.$blockID;
            var$6 = new nms_BlockEventData;
            var$6.$coordX = var$5;
            var$6.$coordY = var$7;
            var$6.$coordZ = var$8;
            var$6.$eventID = 1;
            var$6.$eventParameter = var$4;
            var$6.$blockID2 = var$9;
            var$10 = var$2.$blockEventCache.data[var$2.$blockEventCacheIndex];
            var$8 = 0;
            var$5 = var$10.$modCount;
            var$7 = var$10.$size();
            b: {
                while (true) {
                    if (!(var$8 >= var$7 ? 0 : 1)) {
                        var$2 = var$2.$blockEventCache.data[var$2.$blockEventCacheIndex];
                        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
                        var$1 = var$2.$array.data;
                        var$4 = var$2.$size0;
                        var$2.$size0 = var$4 + 1 | 0;
                        var$1[var$4] = var$6;
                        var$2.$modCount = var$2.$modCount + 1 | 0;
                        break b;
                    }
                    if (var$5 < var$10.$modCount)
                        break;
                    var$4 = var$8 + 1 | 0;
                    if (nms_BlockEventData_equals(var$10.$get(var$8), var$6))
                        break b;
                    var$8 = var$4;
                }
                var$2 = new ju_ConcurrentModificationException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            var$2 = $this.$worldObj2;
            var$3 = $this.$xCoord0;
            var$4 = $this.$yCoord0;
            var$5 = $this.$zCoord0;
            if ($this.$blockType === null) {
                nms_Block_$callClinit();
                var$1 = nms_Block_blocksList.data;
                $ptr = 2;
                continue main;
            }
            var$8 = $this.$blockType.$blockID;
            var$9 = var$3 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 3;
                continue main;
            }
            var$9 = var$3 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 4;
                continue main;
            }
            var$9 = var$4 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 6;
                continue main;
            }
            var$9 = var$4 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 8;
                continue main;
            }
            var$7 = var$5 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 10;
                continue main;
            }
            var$5 = var$5 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 12;
                continue main;
            }
            var$2 = $this.$worldObj2;
            var$3 = $this.$xCoord0;
            var$4 = $this.$yCoord0;
            var$5 = var$4 - 1 | 0;
            var$7 = $this.$zCoord0;
            if ($this.$blockType === null) {
                nms_Block_$callClinit();
                var$1 = nms_Block_blocksList.data;
                $ptr = 14;
                continue main;
            }
            var$4 = $this.$blockType.$blockID;
            var$8 = var$3 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 16;
                continue main;
            }
            var$8 = var$3 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 17;
                continue main;
            }
            var$8 = var$5 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 19;
                continue main;
            }
            var$8 = var$5 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 21;
                continue main;
            }
            var$8 = var$7 - 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 23;
                continue main;
            }
            var$7 = var$7 + 1 | 0;
            if (!var$2.$isRemote) {
                $ptr = 25;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $this.$blockType = var$1[var$7];
        var$8 = $this.$blockType.$blockID;
        var$9 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 3;
            continue main;
        }
        var$9 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$9 = var$4 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId(var$2, var$9, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$7];
        if (var$6 !== null) {
            $ptr = 5;
            continue main;
        }
        var$9 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$9 = var$4 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId(var$2, var$9, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$7];
        if (var$6 !== null) {
            $ptr = 7;
            continue main;
        }
        var$9 = var$4 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 5:
        var$6.$onNeighborBlockChange(var$2, var$9, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 4;
            continue main;
        }
        var$9 = var$4 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId(var$2, var$3, var$9, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$7];
        if (var$6 !== null) {
            $ptr = 9;
            continue main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 7:
        var$6.$onNeighborBlockChange(var$2, var$9, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$4 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 6;
            continue main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$2, var$3, var$9, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$7];
        if (var$6 !== null) {
            $ptr = 11;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 9:
        var$6.$onNeighborBlockChange(var$2, var$3, var$9, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$4 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 8;
            continue main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$9];
        if (var$6 !== null) {
            $ptr = 13;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 11:
        var$6.$onNeighborBlockChange(var$2, var$3, var$9, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 10;
            continue main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$7];
        if (var$6 !== null) {
            $ptr = 15;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 13:
        var$6.$onNeighborBlockChange(var$2, var$3, var$4, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 12;
            continue main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        $this.$blockType = var$1[var$4];
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 15:
        var$6.$onNeighborBlockChange(var$2, var$3, var$4, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = var$4 - 1 | 0;
        var$7 = $this.$zCoord0;
        if ($this.$blockType === null) {
            nms_Block_$callClinit();
            var$1 = nms_Block_blocksList.data;
            $ptr = 14;
            continue main;
        }
        var$4 = $this.$blockType.$blockID;
        var$8 = var$3 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 16;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 16:
        $tmp = nms_World_getBlockId(var$2, var$8, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$9];
        if (var$6 !== null) {
            $ptr = 18;
            continue main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId(var$2, var$8, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$9];
        if (var$6 !== null) {
            $ptr = 20;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 18:
        var$6.$onNeighborBlockChange(var$2, var$8, var$5, var$7, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$3 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 17;
            continue main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 19:
        $tmp = nms_World_getBlockId(var$2, var$3, var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$9];
        if (var$6 !== null) {
            $ptr = 22;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 20:
        var$6.$onNeighborBlockChange(var$2, var$8, var$5, var$7, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$5 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 19;
            continue main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 21:
        $tmp = nms_World_getBlockId(var$2, var$3, var$8, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$9];
        if (var$6 !== null) {
            $ptr = 24;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 22:
        var$6.$onNeighborBlockChange(var$2, var$3, var$8, var$7, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$5 + 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 21;
            continue main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 23:
        $tmp = nms_World_getBlockId(var$2, var$3, var$5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$9];
        if (var$6 !== null) {
            $ptr = 26;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 24:
        var$6.$onNeighborBlockChange(var$2, var$3, var$8, var$7, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$7 - 1 | 0;
        if (!var$2.$isRemote) {
            $ptr = 23;
            continue main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
    case 25:
        $tmp = nms_World_getBlockId(var$2, var$3, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        var$6 = nms_Block_blocksList.data[var$8];
        if (var$6 === null)
            return;
        $ptr = 27;
        continue main;
    case 26:
        var$6.$onNeighborBlockChange(var$2, var$3, var$5, var$8, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = var$7 + 1 | 0;
        if (var$2.$isRemote)
            return;
        $ptr = 25;
        continue main;
    case 27:
        var$6.$onNeighborBlockChange(var$2, var$3, var$5, var$7, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_TileEntityChest_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    return 1;
},
nms_TileEntityChest_invalidate = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$tileEntityInvalid = 1;
        $this.$blockType = null;
        $this.$blockMetadata = (-1);
        $this.$adjacentChestChecked = 0;
        $ptr = 1;
    case 1:
        nms_TileEntityChest_checkForAdjacentChests($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
};
function nms_TileEntityEnderChest() {
    let a = this; nms_TileEntity.call(a);
    a.$lidAngle0 = 0.0;
    a.$prevLidAngle0 = 0.0;
    a.$numUsingPlayers0 = 0;
    a.$ticksSinceSync0 = 0;
}
let nms_TileEntityEnderChest__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityEnderChest__init_0 = () => {
    let var_0 = new nms_TileEntityEnderChest();
    nms_TileEntityEnderChest__init_(var_0);
    return var_0;
},
nms_TileEntityEnderChest_updateEntity = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var8, $var1, $var2, $var4, $var6, var$16, $var3, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var3 = $thread.pop();var$16 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$var8 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$ticksSinceSync0 + 1 | 0;
        $this.$ticksSinceSync0 = var$1;
        if (!((var$1 % 20 | 0) * 4 | 0)) {
            var$2 = $this.$worldObj2;
            var$1 = $this.$xCoord0;
            var$3 = $this.$yCoord0;
            var$4 = $this.$zCoord0;
            nms_Block_$callClinit();
            var$5 = nms_Block_enderChest.$blockID;
            var$6 = $this.$numUsingPlayers0;
            var$7 = new nms_BlockEventData;
            var$7.$coordX = var$1;
            var$7.$coordY = var$3;
            var$7.$coordZ = var$4;
            var$7.$eventID = 1;
            var$7.$eventParameter = var$6;
            var$7.$blockID2 = var$5;
            var$8 = var$2.$blockEventCache.data[var$2.$blockEventCacheIndex];
            var$9 = 0;
            var$4 = var$8.$modCount;
            var$5 = var$8.$size();
            a: {
                while (true) {
                    if (!(var$9 >= var$5 ? 0 : 1)) {
                        var$2 = var$2.$blockEventCache.data[var$2.$blockEventCacheIndex];
                        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
                        var$10 = var$2.$array.data;
                        var$3 = var$2.$size0;
                        var$2.$size0 = var$3 + 1 | 0;
                        var$10[var$3] = var$7;
                        var$2.$modCount = var$2.$modCount + 1 | 0;
                        break a;
                    }
                    if (var$4 < var$8.$modCount)
                        break;
                    var$3 = var$9 + 1 | 0;
                    if (nms_BlockEventData_equals(var$8.$get(var$9), var$7))
                        break a;
                    var$9 = var$3;
                }
                var$7 = new ju_ConcurrentModificationException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                $rt_throw(var$7);
            }
        }
        $var8 = $this.$lidAngle0;
        $this.$prevLidAngle0 = $var8;
        $var1 = 0.10000000149011612;
        if ($this.$numUsingPlayers0 > 0 && $var8 === 0.0) {
            $var2 = $this.$xCoord0 + 0.5;
            $var4 = $this.$zCoord0 + 0.5;
            var$7 = $this.$worldObj2;
            $var6 = $this.$yCoord0 + 0.5;
            var$2 = $rt_s(2404);
            $var8 = 0.5;
            var$8 = var$7.$rand0;
            var$16 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$16;
            $var3 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
            var$1 = 0;
            var$18 = null;
            var$19 = 16.0;
            var$8 = var$7.$worldAccesses;
            var$3 = $rt_compare(var$1, var$8.$size0);
            if (var$3 < 0) {
                if (var$1 >= 0 && var$3 < 0) {
                    var$8 = var$8.$array.data[var$1];
                    var$20 = var$8.$mcServer.$serverConfigManager;
                    var$3 = var$8.$theWorldServer.$provider.$dimensionId;
                    var$8 = nms_Packet62LevelSound__init_(var$2, $var2, $var6, $var4, $var8, $var3);
                    $ptr = 1;
                    continue main;
                }
                var$7 = new jl_IndexOutOfBoundsException;
                var$7.$suppressionEnabled = 1;
                var$7.$writableStackTrace = 1;
                $rt_throw(var$7);
            }
        }
        b: {
            var$1 = $this.$numUsingPlayers0;
            if (!(!var$1 && $this.$lidAngle0 > 0.0)) {
                if (var$1 <= 0)
                    break b;
                if ($this.$lidAngle0 >= 1.0)
                    break b;
            }
            $var8 = $this.$lidAngle0;
            if (var$1 <= 0)
                $this.$lidAngle0 = $var8 - $var1;
            else
                $this.$lidAngle0 = $var8 + $var1;
            if ($this.$lidAngle0 > 1.0)
                $this.$lidAngle0 = 1.0;
            if ($this.$lidAngle0 < 0.5 && $var8 >= 0.5) {
                $var4 = $this.$xCoord0 + 0.5;
                $var6 = $this.$zCoord0 + 0.5;
                var$18 = $this.$worldObj2;
                var$19 = $this.$yCoord0 + 0.5;
                var$7 = $rt_s(2405);
                $var8 = 0.5;
                var$2 = var$18.$rand0;
                var$16 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$16;
                $var1 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
                var$3 = 0;
                var$20 = null;
                $var2 = 16.0;
                var$2 = var$18.$worldAccesses;
                var$1 = $rt_compare(var$3, var$2.$size0);
                if (var$1 < 0) {
                    if (var$3 >= 0 && var$1 < 0) {
                        var$21 = var$2.$array.data[var$3];
                        var$8 = var$21.$mcServer.$serverConfigManager;
                        var$1 = var$21.$theWorldServer.$provider.$dimensionId;
                        var$2 = nms_Packet62LevelSound__init_(var$7, $var4, var$19, $var6, $var8, $var1);
                        $ptr = 2;
                        continue main;
                    }
                    var$7 = new jl_IndexOutOfBoundsException;
                    var$7.$suppressionEnabled = 1;
                    var$7.$writableStackTrace = 1;
                    $rt_throw(var$7);
                }
            }
            if ($this.$lidAngle0 < 0.0)
                $this.$lidAngle0 = 0.0;
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$20, var$18, $var2, $var6, $var4, var$19, var$3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = var$1 + 1 | 0;
        var$8 = var$7.$worldAccesses;
        var$3 = $rt_compare(var$1, var$8.$size0);
        if (var$3 < 0) {
            if (var$1 >= 0 && var$3 < 0) {
                var$8 = var$8.$array.data[var$1];
                var$20 = var$8.$mcServer.$serverConfigManager;
                var$3 = var$8.$theWorldServer.$provider.$dimensionId;
                var$8 = nms_Packet62LevelSound__init_(var$2, $var2, $var6, $var4, $var8, $var3);
                continue main;
            }
            var$7 = new jl_IndexOutOfBoundsException;
            var$7.$suppressionEnabled = 1;
            var$7.$writableStackTrace = 1;
            $rt_throw(var$7);
        }
        c: {
            var$1 = $this.$numUsingPlayers0;
            if (!(!var$1 && $this.$lidAngle0 > 0.0)) {
                if (var$1 <= 0)
                    break c;
                if ($this.$lidAngle0 >= 1.0)
                    break c;
            }
            $var8 = $this.$lidAngle0;
            if (var$1 <= 0)
                $this.$lidAngle0 = $var8 - $var1;
            else
                $this.$lidAngle0 = $var8 + $var1;
            if ($this.$lidAngle0 > 1.0)
                $this.$lidAngle0 = 1.0;
            if ($this.$lidAngle0 < 0.5 && $var8 >= 0.5) {
                $var4 = $this.$xCoord0 + 0.5;
                $var6 = $this.$zCoord0 + 0.5;
                var$18 = $this.$worldObj2;
                var$19 = $this.$yCoord0 + 0.5;
                var$7 = $rt_s(2405);
                $var8 = 0.5;
                var$2 = var$18.$rand0;
                var$16 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$16;
                $var1 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7 * 0.10000000149011612 + 0.8999999761581421;
                var$3 = 0;
                var$20 = null;
                $var2 = 16.0;
                var$2 = var$18.$worldAccesses;
                var$1 = $rt_compare(var$3, var$2.$size0);
                if (var$1 < 0) {
                    if (var$3 >= 0 && var$1 < 0) {
                        var$21 = var$2.$array.data[var$3];
                        var$8 = var$21.$mcServer.$serverConfigManager;
                        var$1 = var$21.$theWorldServer.$provider.$dimensionId;
                        var$2 = nms_Packet62LevelSound__init_(var$7, $var4, var$19, $var6, $var8, $var1);
                        $ptr = 2;
                        continue main;
                    }
                    var$7 = new jl_IndexOutOfBoundsException;
                    var$7.$suppressionEnabled = 1;
                    var$7.$writableStackTrace = 1;
                    $rt_throw(var$7);
                }
            }
            if ($this.$lidAngle0 < 0.0)
                $this.$lidAngle0 = 0.0;
        }
        return;
    case 2:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$8, var$20, $var4, var$19, $var6, $var2, var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$3 + 1 | 0;
        var$2 = var$18.$worldAccesses;
        var$1 = $rt_compare(var$3, var$2.$size0);
        if (var$1 >= 0) {
            if ($this.$lidAngle0 < 0.0)
                $this.$lidAngle0 = 0.0;
            return;
        }
        if (var$3 >= 0 && var$1 < 0) {
            var$21 = var$2.$array.data[var$3];
            var$8 = var$21.$mcServer.$serverConfigManager;
            var$1 = var$21.$theWorldServer.$provider.$dimensionId;
            var$2 = nms_Packet62LevelSound__init_(var$7, $var4, var$19, $var6, $var8, $var1);
            continue main;
        }
        var$7 = new jl_IndexOutOfBoundsException;
        var$7.$suppressionEnabled = 1;
        var$7.$writableStackTrace = 1;
        $rt_throw(var$7);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var8, $var1, $var2, $var4, $var6, var$16, $var3, var$18, var$19, var$20, var$21, $ptr);
},
nms_TileEntityEnderChest_receiveClientEvent = ($this, $par1, $par2) => {
    if ($par1 != 1)
        return 0;
    $this.$numUsingPlayers0 = $par2;
    return 1;
},
nms_TileEntityEnderChest_invalidate = $this => {
    $this.$blockType = null;
    $this.$blockMetadata = (-1);
    $this.$tileEntityInvalid = 1;
},
nms_TileEntityEnderChest_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
};
function nms_TileEntityRecordPlayer() {
    nms_TileEntity.call(this);
    this.$record = null;
}
let nms_TileEntityRecordPlayer__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityRecordPlayer__init_0 = () => {
    let var_0 = new nms_TileEntityRecordPlayer();
    nms_TileEntityRecordPlayer__init_(var_0);
    return var_0;
},
nms_TileEntityRecordPlayer_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(349).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(349).$nativeString.length)
                        break a;
                    $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(349).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(349) !== var$6) {
                        if ($rt_s(349) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(349) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(349).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(349).$nativeString.length)
                                break c;
                            $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(349).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        d: {
                            var$6 = var$2.$key;
                            if ($rt_s(349) !== var$6) {
                                if ($rt_s(349) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        e: {
            $this.$xCoord0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(350).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(350).$nativeString.length)
                        break e;
                    $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(350).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                f: {
                    var$6 = var$2.$key;
                    if ($rt_s(350) !== var$6) {
                        if ($rt_s(350) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break f;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(350) !== null) {
                g: {
                    if (!$rt_s(350).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(350).$nativeString.length)
                                break g;
                            $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(350).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        h: {
                            var$6 = var$2.$key;
                            if ($rt_s(350) !== var$6) {
                                if ($rt_s(350) !== var$6) {
                                    if (!(var$6 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break h;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        i: {
            $this.$yCoord0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(351).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(351).$nativeString.length)
                        break i;
                    $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(351).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                j: {
                    var$6 = var$2.$key;
                    if ($rt_s(351) !== var$6) {
                        if ($rt_s(351) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break j;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(351) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                k: {
                    if (!$rt_s(351).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(351).$nativeString.length)
                                break k;
                            $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(351).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        l: {
                            var$6 = var$2.$key;
                            if ($rt_s(351) !== var$6) {
                                if ($rt_s(351) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break l;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        m: {
            $this.$zCoord0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2406).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2406).$nativeString.length)
                        break m;
                    $rt_s(2406).$hashCode1 = (31 * $rt_s(2406).$hashCode1 | 0) + $rt_s(2406).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2406).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                n: {
                    var$6 = var$2.$key;
                    if ($rt_s(2406) !== var$6) {
                        if ($rt_s(2406) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2406).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break n;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            o: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2406).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2406).$nativeString.length)
                            break o;
                        $rt_s(2406).$hashCode1 = (31 * $rt_s(2406).$hashCode1 | 0) + $rt_s(2406).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2406).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    p: {
                        var$6 = var$2.$key;
                        if ($rt_s(2406) !== var$6) {
                            if ($rt_s(2406) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2406).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1)) {
                $par1NBTTagCompound = new nms_NBTTagCompound;
                if ($rt_s(2406) !== null)
                    $par1NBTTagCompound.$name = $rt_s(2406);
                else
                    $par1NBTTagCompound.$name = $rt_s(3);
                var$8 = new ju_HashMap;
                var$3 = ju_HashMap_calculateCapacity(16);
                var$8.$elementCount = 0;
                var$9 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                var$5 = var$9.data;
                var$8.$elementData = var$9;
                var$8.$loadFactor = 0.75;
                var$8.$threshold = var$5.length * 0.75 | 0;
                $par1NBTTagCompound.$tagMap = var$8;
            } else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2406) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    q: {
                        if (!$rt_s(2406).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(2406).$nativeString.length)
                                    break q;
                                $rt_s(2406).$hashCode1 = (31 * $rt_s(2406).$hashCode1 | 0) + $rt_s(2406).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$4 = $rt_s(2406).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$4) {
                            r: {
                                var$2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2406) !== var$2) {
                                    if ($rt_s(2406) === var$2)
                                        var$3 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$2 = var$2;
                                        var$3 = $rt_s(2406).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break r;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
            }
            nms_ItemStack_$callClinit();
            var$8 = new nms_ItemStack;
            nms_ItemStack_readFromNBT(var$8, $par1NBTTagCompound);
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[var$8.$itemID] === null)
                var$8 = null;
            $this.$record = var$8;
            $ptr = 1;
            continue main;
        }
        s: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2407).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2407).$nativeString.length)
                        break s;
                    $rt_s(2407).$hashCode1 = (31 * $rt_s(2407).$hashCode1 | 0) + $rt_s(2407).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2407).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                t: {
                    var$6 = var$2.$key;
                    if ($rt_s(2407) !== var$6) {
                        if ($rt_s(2407) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2407).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break t;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2407) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                u: {
                    if (!$rt_s(2407).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2407).$nativeString.length)
                                break u;
                            $rt_s(2407).$hashCode1 = (31 * $rt_s(2407).$hashCode1 | 0) + $rt_s(2407).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2407).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        v: {
                            var$6 = var$2.$key;
                            if ($rt_s(2407) !== var$6) {
                                if ($rt_s(2407) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2407).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break v;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        if (var$3 <= 0)
            return;
        w: {
            var$2 = new nms_ItemStack;
            var$6 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2407).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2407).$nativeString.length)
                        break w;
                    $rt_s(2407).$hashCode1 = (31 * $rt_s(2407).$hashCode1 | 0) + $rt_s(2407).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2407).$hashCode1;
        var$5 = var$6.$elementData.data;
        var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$6 !== null) {
            if (var$6.$origKeyHash == var$4) {
                x: {
                    var$10 = var$6.$key;
                    if ($rt_s(2407) !== var$10) {
                        if ($rt_s(2407) === var$10)
                            var$3 = 1;
                        else if (!(var$10 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$10 = var$10;
                            var$3 = $rt_s(2407).$nativeString !== var$10.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break x;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$6 = var$6.$next3;
        }
        if (!(var$6 === null ? 0 : 1))
            var$4 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2407) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                y: {
                    if (!$rt_s(2407).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2407).$nativeString.length)
                                break y;
                            $rt_s(2407).$hashCode1 = (31 * $rt_s(2407).$hashCode1 | 0) + $rt_s(2407).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2407).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$4) {
                        z: {
                            var$6 = $par1NBTTagCompound.$key;
                            if ($rt_s(2407) !== var$6) {
                                if ($rt_s(2407) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2407).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break z;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
        }
        nms_ItemStack_$callClinit();
        var$2.$itemID = var$4;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $this.$record = var$2;
        $ptr = 2;
        continue main;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_TileEntityRecordPlayer_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$record;
    if (var$2 !== null) {
        var$3 = new nms_NBTTagCompound;
        var$3.$name = $rt_s(3);
        var$4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$tagMap = var$4;
        var$5 = var$2.$itemID << 16 >> 16;
        var$8 = new nms_NBTTagShort;
        var$8.$name = $rt_s(914);
        var$8.$data2 = var$5;
        ju_HashMap_putImpl(var$4, $rt_s(914), var$8);
        var$5 = var$2.$stackSize << 24 >> 24;
        var$4 = var$3.$tagMap;
        var$8 = new nms_NBTTagByte;
        var$8.$name = $rt_s(915);
        var$8.$data0 = var$5;
        ju_HashMap_putImpl(var$4, $rt_s(915), var$8);
        var$5 = var$2.$itemDamage << 16 >> 16;
        var$4 = var$3.$tagMap;
        var$8 = new nms_NBTTagShort;
        var$8.$name = $rt_s(916);
        var$8.$data2 = var$5;
        ju_HashMap_putImpl(var$4, $rt_s(916), var$8);
        var$8 = var$2.$stackTagCompound;
        if (var$8 !== null) {
            var$2 = var$3.$tagMap;
            var$8.$name = $rt_s(917);
            ju_HashMap_putImpl(var$2, $rt_s(917), var$8);
        }
        var$8 = $par1NBTTagCompound.$tagMap;
        var$3.$name = $rt_s(2406);
        ju_HashMap_putImpl(var$8, $rt_s(2406), var$3);
        var$5 = $this.$record.$itemID;
        var$8 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagInt;
        $par1NBTTagCompound.$name = $rt_s(2407);
        $par1NBTTagCompound.$data = var$5;
        ju_HashMap_putImpl(var$8, $rt_s(2407), $par1NBTTagCompound);
    }
};
function nms_TileEntityDispenser() {
    let a = this; nms_TileEntity.call(a);
    a.$dispenserContents = null;
    a.$dispenserRandom = null;
    a.$customName = null;
}
let nms_TileEntityDispenser__init_ = $this => {
    let var$1, var$2;
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$dispenserContents = $rt_createArray(nms_ItemStack, 9);
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$dispenserRandom = var$1;
},
nms_TileEntityDispenser__init_0 = () => {
    let var_0 = new nms_TileEntityDispenser();
    nms_TileEntityDispenser__init_(var_0);
    return var_0;
},
nms_TileEntityDispenser_getSizeInventory = $this => {
    return 9;
},
nms_TileEntityDispenser_getStackInSlot = ($this, $par1) => {
    return $this.$dispenserContents.data[$par1];
},
nms_TileEntityDispenser_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$dispenserContents.data;
        if (var$3[$par1] === null)
            return null;
        if (var$3[$par1].$stackSize <= $par2) {
            $var3 = var$3[$par1];
            var$3[$par1] = null;
            $ptr = 1;
            continue main;
        }
        var$5 = var$3[$par1];
        $var3 = new nms_ItemStack;
        var$6 = var$5.$itemID;
        var$7 = var$5.$itemDamage;
        nms_ItemStack_$callClinit();
        $var3.$itemID = var$6;
        $var3.$stackSize = $par2;
        $var3.$itemDamage = var$7;
        if (var$7 < 0)
            $var3.$itemDamage = 0;
        var$8 = var$5.$stackTagCompound;
        if (var$8 !== null) {
            var$9 = new nms_NBTTagCompound;
            var$10 = var$8.$name;
            if (var$10 === null)
                var$10 = $rt_s(3);
            var$9.$name = var$10;
            var$10 = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            var$10.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$3 = var$11.data;
            var$10.$elementData = var$11;
            var$10.$loadFactor = 0.75;
            var$10.$threshold = var$3.length * 0.75 | 0;
            var$9.$tagMap = var$10;
            var$12 = var$8.$tagMap;
            if (var$12.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = var$12;
                var$12.$cachedKeySet = var$10;
            }
            var$13 = var$12.$cachedKeySet.$iterator();
            while (var$13.$hasNext()) {
                var$14 = var$13.$next();
                var$10 = var$8.$tagMap;
                if (var$14 === null) {
                    var$15 = var$10.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                } else {
                    a: {
                        if (!var$14.$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= var$14.$nativeString.length)
                                    break a;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$7 = var$14.$hashCode1;
                    var$3 = var$10.$elementData.data;
                    var$15 = var$3[var$7 & (var$3.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$7) {
                            b: {
                                var$10 = var$15.$key;
                                if (var$14 !== var$10) {
                                    if (var$14 === var$10)
                                        var$6 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$10 = var$10;
                                        var$6 = var$14.$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break b;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                }
                var$10 = var$15 === null ? null : var$15.$value0;
                var$10 = var$10.$copy();
                var$12 = var$9.$tagMap;
                if (var$14 !== null)
                    var$10.$name = var$14;
                else
                    var$10.$name = $rt_s(3);
                ju_HashMap_putImpl(var$12, var$14, var$10);
            }
            $var3.$stackTagCompound = var$9;
        }
        var$5.$stackSize = var$5.$stackSize - $par2 | 0;
        var$3 = $this.$dispenserContents.data;
        if (!var$3[$par1].$stackSize)
            var$3[$par1] = null;
        $ptr = 2;
        continue main;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 2:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_TileEntityDispenser_getRandomStackFromInventory = $this => {
    let $var1, $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $var1 = (-1);
    $var2 = 1;
    $var3 = 0;
    while (true) {
        var$4 = $this.$dispenserContents.data;
        if ($var3 >= var$4.length)
            break;
        if (var$4[$var3] !== null) {
            var$5 = $this.$dispenserRandom;
            var$6 = $var2 + 1 | 0;
            var$7 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 17));
            var$9 = $var2 - 1 | 0;
            if (!($var2 & var$9))
                var$10 = Long_lo(Long_shr(Long_mul(Long_fromInt($var2), Long_fromInt(var$8)), 31));
            else
                while (true) {
                    var$10 = var$8 % $var2 | 0;
                    if (((var$8 - var$10 | 0) + var$9 | 0) >= 0)
                        break;
                    var$7 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$5.$seed = var$7;
                    var$8 = Long_lo(Long_shru(var$7, 17));
                }
            if (var$10)
                $var2 = var$6;
            else {
                $var1 = $var3;
                $var2 = var$6;
            }
        }
        $var3 = $var3 + 1 | 0;
    }
    return $var1;
},
nms_TileEntityDispenser_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2ItemStack = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$dispenserContents.data[$par1] = $par2ItemStack;
        if ($par2ItemStack !== null && $par2ItemStack.$stackSize > 64)
            $par2ItemStack.$stackSize = 64;
        $ptr = 1;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ItemStack, $ptr);
},
nms_TileEntityDispenser_addItem = ($this, $par1ItemStack) => {
    let $var2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 0;
        a: {
            while (true) {
                var$3 = $this.$dispenserContents.data;
                if ($var2 >= var$3.length)
                    break;
                if (var$3[$var2] === null)
                    break a;
                if (!var$3[$var2].$itemID)
                    break a;
                $var2 = $var2 + 1 | 0;
            }
            return (-1);
        }
        var$3[$var2] = $par1ItemStack;
        if ($par1ItemStack !== null && $par1ItemStack.$stackSize > 64)
            $par1ItemStack.$stackSize = 64;
        $ptr = 1;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $var2, var$3, $ptr);
},
nms_TileEntityDispenser_getInvName = $this => {
    let var$1;
    var$1 = $this.$customName;
    if (!(var$1 === null ? 0 : 1))
        var$1 = $rt_s(2408);
    return var$1;
},
nms_TileEntityDispenser_setCustomName = ($this, $par1Str) => {
    $this.$customName = $par1Str;
},
nms_TileEntityDispenser_isInvNameLocalized = $this => {
    return $this.$customName === null ? 0 : 1;
},
nms_TileEntityDispenser_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, var$4, var$5, var$6, $var4, $var5, var$9, var$10, var$11;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            b: {
                var$6 = $var2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break b;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) !== null) {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    d: {
                        var$6 = $var2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break d;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            f: {
                var$6 = $var2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    h: {
                        var$6 = $var2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) !== var$6) {
                                if (!(var$6 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$6 = var$6;
                                    $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            j: {
                var$6 = $var2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    l: {
                        var$6 = $var2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break l;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2241).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2241).$nativeString.length)
                    break m;
                $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2241).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$4) {
            n: {
                var$6 = $var2.$key;
                if ($rt_s(2241) !== var$6) {
                    if ($rt_s(2241) === var$6)
                        $var3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$6 = var$6;
                        $var3 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break n;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2241) !== null)
            $var2.$name = $rt_s(2241);
        else
            $var2.$name = $rt_s(3);
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $var4;
    } else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2241) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2241).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2241).$nativeString.length)
                            break o;
                        $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2241).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    p: {
                        var$6 = $var2.$key;
                        if ($rt_s(2241) !== var$6) {
                            if ($rt_s(2241) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break p;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    }
    $this.$dispenserContents = $rt_createArray(nms_ItemStack, 9);
    $var3 = 0;
    while (true) {
        $var4 = $var2.$tagList;
        $var5 = $rt_compare($var3, $var4.$size0);
        if ($var5 >= 0) {
            q: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1994).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1994).$nativeString.length)
                            break q;
                        $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(1994).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$4) {
                    r: {
                        var$6 = $var2.$key;
                        if ($rt_s(1994) !== var$6) {
                            if ($rt_s(1994) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break r;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                s: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1994).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1994).$nativeString.length)
                                break s;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var3 = $rt_s(1994).$hashCode1;
                var$5 = $var2.$elementData.data;
                $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == $var3) {
                        t: {
                            var$6 = $var2.$key;
                            if ($rt_s(1994) !== var$6) {
                                if ($rt_s(1994) === var$6)
                                    $var5 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    $var5 = 0;
                                else {
                                    var$6 = var$6;
                                    $var5 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!$var5) {
                                    $var5 = 0;
                                    break t;
                                }
                            }
                            $var5 = 1;
                        }
                        if ($var5)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1))
                    $par1NBTTagCompound = $rt_s(3);
                else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(1994) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        u: {
                            if (!$rt_s(1994).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(1994).$nativeString.length)
                                        break u;
                                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        $var3 = $rt_s(1994).$hashCode1;
                        var$5 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$5[$var3 & (var$5.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == $var3) {
                                v: {
                                    $var2 = $par1NBTTagCompound.$key;
                                    if ($rt_s(1994) !== $var2) {
                                        if ($rt_s(1994) === $var2)
                                            $var5 = 1;
                                        else if (!($var2 instanceof jl_String))
                                            $var5 = 0;
                                        else {
                                            $var2 = $var2;
                                            $var5 = $rt_s(1994).$nativeString !== $var2.$nativeString ? 0 : 1;
                                        }
                                        if (!$var5) {
                                            $var5 = 0;
                                            break v;
                                        }
                                    }
                                    $var5 = 1;
                                }
                                if ($var5)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
                }
                $this.$customName = $par1NBTTagCompound;
            }
            return;
        }
        if ($var3 < 0)
            break;
        if ($var5 >= 0)
            break;
        w: {
            $var4 = $var4.$array.data[$var3];
            var$9 = $var4.$tagMap;
            if (!$rt_s(2022).$hashCode1) {
                $var5 = 0;
                while (true) {
                    if ($var5 >= $rt_s(2022).$nativeString.length)
                        break w;
                    $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var5) | 0;
                    $var5 = $var5 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2022).$hashCode1;
        var$5 = var$9.$elementData.data;
        var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
        while (var$9 !== null) {
            if (var$9.$origKeyHash == var$10) {
                x: {
                    var$11 = var$9.$key;
                    if ($rt_s(2022) !== var$11) {
                        if ($rt_s(2022) === var$11)
                            $var5 = 1;
                        else if (!(var$11 instanceof jl_String))
                            $var5 = 0;
                        else {
                            var$11 = var$11;
                            $var5 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!$var5) {
                            $var5 = 0;
                            break x;
                        }
                    }
                    $var5 = 1;
                }
                if ($var5)
                    break;
            }
            var$9 = var$9.$next3;
        }
        if (!(var$9 === null ? 0 : 1))
            var$4 = 0;
        else {
            var$9 = $var4.$tagMap;
            if ($rt_s(2022) === null) {
                var$9 = var$9.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                y: {
                    if (!$rt_s(2022).$hashCode1) {
                        $var5 = 0;
                        while (true) {
                            if ($var5 >= $rt_s(2022).$nativeString.length)
                                break y;
                            $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var5) | 0;
                            $var5 = $var5 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2022).$hashCode1;
                var$5 = var$9.$elementData.data;
                var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == var$10) {
                        z: {
                            var$11 = var$9.$key;
                            if ($rt_s(2022) !== var$11) {
                                if ($rt_s(2022) === var$11)
                                    $var5 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    $var5 = 0;
                                else {
                                    var$11 = var$11;
                                    $var5 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!$var5) {
                                    $var5 = 0;
                                    break z;
                                }
                            }
                            $var5 = 1;
                        }
                        if ($var5)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            var$4 = (var$9 === null ? null : var$9.$value0).$data0;
        }
        $var5 = var$4 & 255;
        if ($var5 >= 0) {
            var$5 = $this.$dispenserContents.data;
            if ($var5 < var$5.length) {
                nms_ItemStack_$callClinit();
                var$6 = new nms_ItemStack;
                nms_ItemStack_readFromNBT(var$6, $var4);
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$6.$itemID] === null)
                    var$6 = null;
                var$5[$var5] = var$6;
            }
        }
        $var3 = $var3 + 1 | 0;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntityDispenser_writeToNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, $var3, var$5, $var4, var$7, var$8, var$9, var$10, var$11;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$3;
    $var3 = 0;
    while (true) {
        var$5 = $this.$dispenserContents.data;
        if ($var3 >= var$5.length)
            break;
        if (var$5[$var3] !== null) {
            $var4 = new nms_NBTTagCompound;
            $var4.$name = $rt_s(3);
            var$7 = new ju_HashMap;
            var$8 = ju_HashMap_calculateCapacity(16);
            var$7.$elementCount = 0;
            var$9 = $rt_createArray(ju_HashMap$HashEntry, var$8);
            var$5 = var$9.data;
            var$7.$elementData = var$9;
            var$7.$loadFactor = 0.75;
            var$7.$threshold = var$5.length * 0.75 | 0;
            $var4.$tagMap = var$7;
            var$8 = $var3 << 24 >> 24;
            var$3 = new nms_NBTTagByte;
            var$3.$name = $rt_s(2022);
            var$3.$data0 = var$8;
            ju_HashMap_putImpl(var$7, $rt_s(2022), var$3);
            var$10 = $this.$dispenserContents.data[$var3];
            var$8 = var$10.$itemID << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagShort;
            var$7.$name = $rt_s(914);
            var$7.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(914), var$7);
            var$8 = var$10.$stackSize << 24 >> 24;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagByte;
            var$7.$name = $rt_s(915);
            var$7.$data0 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(915), var$7);
            var$8 = var$10.$itemDamage << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagShort;
            var$7.$name = $rt_s(916);
            var$7.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(916), var$7);
            var$3 = var$10.$stackTagCompound;
            if (var$3 !== null) {
                var$11 = $var4.$tagMap;
                var$3.$name = $rt_s(917);
                ju_HashMap_putImpl(var$11, $rt_s(917), var$3);
            }
            $var2.$tagType = 10;
            var$3 = $var2.$tagList;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$5 = var$3.$array.data;
            var$8 = var$3.$size0;
            var$3.$size0 = var$8 + 1 | 0;
            var$5[var$8] = $var4;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    var$7 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2241);
    ju_HashMap_putImpl(var$7, $rt_s(2241), $var2);
    var$7 = $this.$customName;
    if (var$7 === null ? 0 : 1) {
        var$3 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$7;
        if (var$7 === null) {
            $var2 = new jl_IllegalArgumentException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            $var2.$message = $rt_s(177);
            $rt_throw($var2);
        }
        ju_HashMap_putImpl(var$3, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_TileEntityDispenser_getInventoryStackLimit = $this => {
    return 64;
},
nms_TileEntityDispenser_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityDispenser_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    return 1;
},
nms_TileEntityDropper = $rt_classWithoutFields(nms_TileEntityDispenser),
nms_TileEntityDropper__init_ = $this => {
    let var$1, var$2;
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$dispenserContents = $rt_createArray(nms_ItemStack, 9);
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    $this.$dispenserRandom = var$1;
},
nms_TileEntityDropper__init_0 = () => {
    let var_0 = new nms_TileEntityDropper();
    nms_TileEntityDropper__init_(var_0);
    return var_0;
},
nms_TileEntityDropper_getInvName = $this => {
    let var$1;
    var$1 = $this.$customName;
    if (!(var$1 === null ? 0 : 1))
        var$1 = $rt_s(2409);
    return var$1;
};
function nms_TileEntityMobSpawner() {
    nms_TileEntity.call(this);
    this.$field_98050_a = null;
}
let nms_TileEntityMobSpawner__init_ = $this => {
    let var$1;
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    var$1 = new nms_TileEntityMobSpawnerLogic;
    var$1.$spawnDelay = 20;
    var$1.$mobID = $rt_s(1309);
    var$1.$minSpawnDelay = 200;
    var$1.$maxSpawnDelay = 800;
    var$1.$spawnCount = 4;
    var$1.$maxNearbyEntities = 6;
    var$1.$activatingRangeFromPlayer = 16;
    var$1.$spawnRange = 4;
    var$1.$mobSpawnerEntity = $this;
    $this.$field_98050_a = var$1;
},
nms_TileEntityMobSpawner__init_0 = () => {
    let var_0 = new nms_TileEntityMobSpawner();
    nms_TileEntityMobSpawner__init_(var_0);
    return var_0;
},
nms_TileEntityMobSpawner_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(349).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(349).$nativeString.length)
                        break a;
                    $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(349).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(349) !== var$6) {
                        if ($rt_s(349) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(349) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(349).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(349).$nativeString.length)
                                break c;
                            $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(349).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        d: {
                            var$6 = var$2.$key;
                            if ($rt_s(349) !== var$6) {
                                if ($rt_s(349) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        e: {
            $this.$xCoord0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(350).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(350).$nativeString.length)
                        break e;
                    $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(350).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                f: {
                    var$6 = var$2.$key;
                    if ($rt_s(350) !== var$6) {
                        if ($rt_s(350) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break f;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(350) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                g: {
                    if (!$rt_s(350).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(350).$nativeString.length)
                                break g;
                            $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(350).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        h: {
                            var$6 = var$2.$key;
                            if ($rt_s(350) !== var$6) {
                                if ($rt_s(350) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break h;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        i: {
            $this.$yCoord0 = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(351).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(351).$nativeString.length)
                        break i;
                    $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(351).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                j: {
                    var$6 = var$2.$key;
                    if ($rt_s(351) !== var$6) {
                        if ($rt_s(351) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break j;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(351) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                k: {
                    if (!$rt_s(351).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(351).$nativeString.length)
                                break k;
                            $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(351).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        l: {
                            var$6 = var$2.$key;
                            if ($rt_s(351) !== var$6) {
                                if ($rt_s(351) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break l;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        $this.$zCoord0 = var$3;
        var$8 = $this.$field_98050_a;
        $ptr = 1;
    case 1:
        nms_MobSpawnerBaseLogic_readFromNBT(var$8, $par1NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityMobSpawner_writeToNBT = ($this, $par1NBTTagCompound) => {
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    nms_MobSpawnerBaseLogic_writeToNBT($this.$field_98050_a, $par1NBTTagCompound);
},
nms_TileEntityMobSpawner_updateEntity = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$field_98050_a;
        $ptr = 1;
    case 1:
        nms_MobSpawnerBaseLogic_updateSpawner(var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_TileEntityMobSpawner_getDescriptionPacket = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    nms_TileEntity_writeToNBT($this, $var1);
    nms_MobSpawnerBaseLogic_writeToNBT($this.$field_98050_a, $var1);
    ju_HashMap_removeByKey($var1.$tagMap, $rt_s(2410));
    var$2 = new nms_Packet132TileEntityData;
    var$3 = $this.$xCoord0;
    var$6 = $this.$yCoord0;
    var$7 = $this.$zCoord0;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$2.$isChunkDataPacket = 1;
    var$2.$xPosition5 = var$3;
    var$2.$yPosition4 = var$6;
    var$2.$zPosition5 = var$7;
    var$2.$actionType = 1;
    var$2.$data12 = $var1;
    return var$2;
},
nms_TileEntityMobSpawner_receiveClientEvent = ($this, $par1, $par2) => {
    let var$3;
    var$3 = $this.$field_98050_a;
    if ($par1 == 1 && var$3.$mobSpawnerEntity.$worldObj2.$isRemote) {
        var$3.$spawnDelay = var$3.$minSpawnDelay;
        $par1 = 1;
    } else
        $par1 = 0;
    return $par1 ? 1 : 0;
};
function nms_TileEntityNote() {
    let a = this; nms_TileEntity.call(a);
    a.$note = 0;
    a.$previousRedstoneState = 0;
}
let nms_TileEntityNote__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityNote__init_0 = () => {
    let var_0 = new nms_TileEntityNote();
    nms_TileEntityNote__init_(var_0);
    return var_0;
},
nms_TileEntityNote_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$note;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2411);
    $par1NBTTagCompound.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2411), $par1NBTTagCompound);
},
nms_TileEntityNote_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2411).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2411).$nativeString.length)
                    break m;
                $rt_s(2411).$hashCode1 = (31 * $rt_s(2411).$hashCode1 | 0) + $rt_s(2411).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2411).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2411) !== var$6) {
                    if ($rt_s(2411) === var$6)
                        var$7 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$7 = 0;
                    else {
                        var$6 = var$6;
                        var$7 = $rt_s(2411).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2411) === null) {
            var$2 = $par1NBTTagCompound.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2411).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2411).$nativeString.length)
                            break o;
                        $rt_s(2411).$hashCode1 = (31 * $rt_s(2411).$hashCode1 | 0) + $rt_s(2411).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2411).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    p: {
                        $par1NBTTagCompound = var$2.$key;
                        if ($rt_s(2411) !== $par1NBTTagCompound) {
                            if ($rt_s(2411) === $par1NBTTagCompound)
                                var$7 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                var$7 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                var$7 = $rt_s(2411).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break p;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    $this.$note = var$3;
    if (var$3 < 0)
        $this.$note = 0;
    if ($this.$note > 24)
        $this.$note = 24;
},
nms_TileEntityNote_triggerNote = ($this, $par1World, $par2, $par3, $par4) => {
    let $var6, var$6, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par3 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            var$6 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$6 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$6 !== nms_Material_air)
            return;
        $var6 = $par3 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par2, $var6, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var5 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $var5 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        $var6 = 0;
        if ($var5 === nms_Material_rock)
            $var6 = 1;
        if ($var5 === nms_Material_sand)
            $var6 = 2;
        if ($var5 === nms_Material_glass)
            $var6 = 3;
        if ($var5 === nms_Material_wood)
            $var6 = 4;
        nms_Block_$callClinit();
        nms_WorldServer_addBlockEvent($par1World, $par2, $par3, $par4, nms_Block_music.$blockID, $var6, $this.$note);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var6, var$6, $var5, $ptr);
};
function nms_TileEntityPiston() {
    let a = this; nms_TileEntity.call(a);
    a.$storedBlockID = 0;
    a.$storedMetadata = 0;
    a.$storedOrientation = 0;
    a.$extending = 0;
    a.$shouldHeadBeRendered = 0;
    a.$progress = 0.0;
    a.$lastProgress = 0.0;
    a.$pushedObjects = null;
}
let nms_TileEntityPiston__init_ = $this => {
    let var$1;
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$pushedObjects = var$1;
},
nms_TileEntityPiston__init_0 = () => {
    let var_0 = new nms_TileEntityPiston();
    nms_TileEntityPiston__init_(var_0);
    return var_0;
},
nms_TileEntityPiston_updatePushedObjects = ($this, $par1, $par2) => {
    let $var3, $var6, var$5, $var5$index, var$7, var$8, $var5$index_0, $var4, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();$var5$index_0 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5$index = $thread.pop();var$5 = $thread.pop();$var6 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1 = !$this.$extending ? $par1 - 1.0 : 1.0 - $par1;
        nms_Block_$callClinit();
        $var3 = nms_Block_pistonMoving;
        $var6 = $this.$worldObj2;
        var$5 = $this.$xCoord0;
        $var5$index = $this.$yCoord0;
        var$7 = $this.$zCoord0;
        var$8 = $this.$storedBlockID;
        $var5$index_0 = $this.$storedOrientation;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockPistonMoving_getAxisAlignedBB($var3, $var6, var$5, $var5$index, var$7, var$8, $par1, $var5$index_0);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 === null)
            return;
        $var6 = $this.$worldObj2;
        $var4 = null;
        var$11 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var6, $var4, $var3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$5 = $var4.$size0 ? 0 : 1;
        a: {
            if (!var$5) {
                $var3 = $this.$pushedObjects;
                $var5$index = 0;
                var$8 = $var4.$modCount;
                $var5$index_0 = $var4.$size();
                while (true) {
                    if (!($var5$index >= $var5$index_0 ? 0 : 1)) {
                        $var3 = $this.$pushedObjects;
                        var$7 = $var3.$modCount;
                        var$8 = $var3.$size();
                        if (0 >= var$8 ? 0 : 1) {
                            if (var$7 < $var3.$modCount) {
                                $var3 = new ju_ConcurrentModificationException;
                                $var3.$suppressionEnabled = 1;
                                $var3.$writableStackTrace = 1;
                                $rt_throw($var3);
                            }
                            $var5$index = 0 + 1 | 0;
                            $var6 = $var3.$get(0);
                            var$12 = nms_Facing_offsetsXForSide.data;
                            $var5$index_0 = $this.$storedOrientation;
                            var$13 = $par2 * var$12[$var5$index_0];
                            var$14 = $par2 * nms_Facing_offsetsYForSide.data[$var5$index_0];
                            var$15 = $par2 * nms_Facing_offsetsZForSide.data[$var5$index_0];
                            $ptr = 3;
                            continue main;
                        }
                        $var3 = $this.$pushedObjects;
                        var$12 = $var3.$array;
                        var$5 = 0;
                        $var5$index = $var3.$size0;
                        $var6 = null;
                        if (var$5 > $var5$index) {
                            $var3 = new jl_IllegalArgumentException;
                            $var3.$suppressionEnabled = 1;
                            $var3.$writableStackTrace = 1;
                            $rt_throw($var3);
                        }
                        while (var$5 < $var5$index) {
                            var$16 = var$12.data;
                            var$7 = var$5 + 1 | 0;
                            var$16[var$5] = $var6;
                            var$5 = var$7;
                        }
                        $var3.$size0 = 0;
                        $var3.$modCount = $var3.$modCount + 1 | 0;
                        break a;
                    }
                    if (var$8 < $var4.$modCount)
                        break;
                    var$7 = $var5$index + 1 | 0;
                    $var6 = $var4.$get($var5$index);
                    ju_ArrayList_ensureCapacity($var3, $var3.$size0 + 1 | 0);
                    var$12 = $var3.$array.data;
                    $var5$index = $var3.$size0;
                    $var3.$size0 = $var5$index + 1 | 0;
                    var$12[$var5$index] = $var6;
                    $var3.$modCount = $var3.$modCount + 1 | 0;
                    $var5$index = var$7;
                }
                $var3 = new ju_ConcurrentModificationException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
        }
        return;
    case 3:
        $var6.$moveEntity(var$13, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var5$index_0 = $var5$index;
        if (!($var5$index_0 >= var$8 ? 0 : 1)) {
            $var3 = $this.$pushedObjects;
            var$12 = $var3.$array;
            var$5 = 0;
            $var5$index = $var3.$size0;
            $var6 = null;
            if (var$5 > $var5$index) {
                $var3 = new jl_IllegalArgumentException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            while (var$5 < $var5$index) {
                var$16 = var$12.data;
                var$7 = var$5 + 1 | 0;
                var$16[var$5] = $var6;
                var$5 = var$7;
            }
            $var3.$size0 = 0;
            $var3.$modCount = $var3.$modCount + 1 | 0;
            return;
        }
        if (var$7 < $var3.$modCount) {
            $var3 = new ju_ConcurrentModificationException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $rt_throw($var3);
        }
        $var5$index = $var5$index_0 + 1 | 0;
        $var6 = $var3.$get($var5$index_0);
        var$12 = nms_Facing_offsetsXForSide.data;
        $var5$index_0 = $this.$storedOrientation;
        var$13 = $par2 * var$12[$var5$index_0];
        var$14 = $par2 * nms_Facing_offsetsYForSide.data[$var5$index_0];
        var$15 = $par2 * nms_Facing_offsetsZForSide.data[$var5$index_0];
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, $var6, var$5, $var5$index, var$7, var$8, $var5$index_0, $var4, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_TileEntityPiston_clearPistonTileEntity = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$lastProgress < 1.0) {
            var$1 = $this.$worldObj2;
            if (var$1 !== null) {
                $this.$progress = 1.0;
                $this.$lastProgress = 1.0;
                var$2 = $this.$xCoord0;
                var$3 = $this.$yCoord0;
                var$4 = $this.$zCoord0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_removeBlockTileEntity(var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$tileEntityInvalid = 1;
        var$1 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        nms_Block_$callClinit();
        if (var$2 != nms_Block_pistonMoving.$blockID)
            return;
        var$1 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        var$6 = $this.$storedBlockID;
        var$7 = $this.$storedMetadata;
        var$2 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock(var$1, var$3, var$4, var$5, var$6, var$7, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj2;
        var$2 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$4 = $this.$zCoord0;
        var$5 = $this.$storedBlockID;
        if (var$1.$isRemote)
            return;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId(var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$8 = nms_Block_blocksList.data[var$6];
        if (var$8 === null)
            return;
        $ptr = 5;
    case 5:
        var$8.$onNeighborBlockChange(var$1, var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityPiston_updateEntity = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$progress;
        $this.$lastProgress = var$1;
        if (var$1 >= 1.0) {
            var$2 = 1.0;
            var$1 = 0.25;
            $ptr = 1;
            continue main;
        }
        var$2 = var$1 + 0.5;
        $this.$progress = var$2;
        if (var$2 >= 1.0)
            $this.$progress = 1.0;
        if (!$this.$extending)
            return;
        var$2 = $this.$progress;
        var$1 = var$2 - var$1 + 0.0625;
        $ptr = 5;
        continue main;
    case 1:
        nms_TileEntityPiston_updatePushedObjects($this, var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$worldObj2;
        var$4 = $this.$xCoord0;
        var$5 = $this.$yCoord0;
        var$6 = $this.$zCoord0;
        $ptr = 2;
    case 2:
        nms_World_removeBlockTileEntity(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $this.$tileEntityInvalid = 1;
        var$3 = $this.$worldObj2;
        var$4 = $this.$xCoord0;
        var$5 = $this.$yCoord0;
        var$6 = $this.$zCoord0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        nms_Block_$callClinit();
        if (var$4 != nms_Block_pistonMoving.$blockID)
            return;
        var$3 = $this.$worldObj2;
        var$5 = $this.$xCoord0;
        var$6 = $this.$yCoord0;
        var$7 = $this.$zCoord0;
        var$8 = $this.$storedBlockID;
        var$9 = $this.$storedMetadata;
        var$4 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock(var$3, var$5, var$6, var$7, var$8, var$9, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$worldObj2;
        var$4 = $this.$xCoord0;
        var$5 = $this.$yCoord0;
        var$6 = $this.$zCoord0;
        var$7 = $this.$storedBlockID;
        if (var$3.$isRemote)
            return;
        $ptr = 6;
        continue main;
    case 5:
        nms_TileEntityPiston_updatePushedObjects($this, var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        $tmp = nms_World_getBlockId(var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$10 = nms_Block_blocksList.data[var$8];
        if (var$10 === null)
            return;
        $ptr = 7;
    case 7:
        var$10.$onNeighborBlockChange(var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_TileEntityPiston_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) !== null) {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2412).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(2412).$nativeString.length)
                    break m;
                $rt_s(2412).$hashCode1 = (31 * $rt_s(2412).$hashCode1 | 0) + $rt_s(2412).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2412).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2412) !== var$6) {
                    if ($rt_s(2412) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2412).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2412) !== null) {
            o: {
                if (!$rt_s(2412).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2412).$nativeString.length)
                            break o;
                        $rt_s(2412).$hashCode1 = (31 * $rt_s(2412).$hashCode1 | 0) + $rt_s(2412).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2412).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$7) {
                    p: {
                        var$2 = var$8.$key;
                        if ($rt_s(2412) !== var$2) {
                            if ($rt_s(2412) !== var$2) {
                                if (var$2 instanceof jl_String) {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2412).$nativeString !== var$2.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
        } else {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        }
        var$3 = (var$8 === null ? null : var$8.$value0).$data;
    } else
        var$3 = 0;
    q: {
        $this.$storedBlockID = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2413).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2413).$nativeString.length)
                    break q;
                $rt_s(2413).$hashCode1 = (31 * $rt_s(2413).$hashCode1 | 0) + $rt_s(2413).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2413).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2413) !== var$6) {
                    if ($rt_s(2413) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2413).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2413) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2413).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2413).$nativeString.length)
                            break s;
                        $rt_s(2413).$hashCode1 = (31 * $rt_s(2413).$hashCode1 | 0) + $rt_s(2413).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2413).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    t: {
                        var$6 = var$2.$key;
                        if ($rt_s(2413) !== var$6) {
                            if ($rt_s(2413) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2413).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    u: {
        $this.$storedMetadata = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2414).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2414).$nativeString.length)
                    break u;
                $rt_s(2414).$hashCode1 = (31 * $rt_s(2414).$hashCode1 | 0) + $rt_s(2414).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2414).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            v: {
                var$6 = var$2.$key;
                if ($rt_s(2414) !== var$6) {
                    if ($rt_s(2414) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2414).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2414) !== null) {
            w: {
                if (!$rt_s(2414).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2414).$nativeString.length)
                            break w;
                        $rt_s(2414).$hashCode1 = (31 * $rt_s(2414).$hashCode1 | 0) + $rt_s(2414).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2414).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    x: {
                        var$6 = var$2.$key;
                        if ($rt_s(2414) !== var$6) {
                            if ($rt_s(2414) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2414).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break x;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    y: {
        $this.$storedOrientation = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2415).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2415).$nativeString.length)
                    break y;
                $rt_s(2415).$hashCode1 = (31 * $rt_s(2415).$hashCode1 | 0) + $rt_s(2415).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2415).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            z: {
                var$6 = var$2.$key;
                if ($rt_s(2415) !== var$6) {
                    if ($rt_s(2415) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2415).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break z;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$9 = 0.0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2415) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            ba: {
                if (!$rt_s(2415).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2415).$nativeString.length)
                            break ba;
                        $rt_s(2415).$hashCode1 = (31 * $rt_s(2415).$hashCode1 | 0) + $rt_s(2415).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2415).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    bb: {
                        var$6 = var$2.$key;
                        if ($rt_s(2415) !== var$6) {
                            if ($rt_s(2415) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2415).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break bb;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$9 = (var$2 === null ? null : var$2.$value0).$data5;
    }
    bc: {
        $this.$progress = var$9;
        $this.$lastProgress = var$9;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2416).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2416).$nativeString.length)
                    break bc;
                $rt_s(2416).$hashCode1 = (31 * $rt_s(2416).$hashCode1 | 0) + $rt_s(2416).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2416).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            bd: {
                var$6 = var$2.$key;
                if ($rt_s(2416) !== var$6) {
                    if ($rt_s(2416) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2416).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break bd;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2416) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            be: {
                if (!$rt_s(2416).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2416).$nativeString.length)
                            break be;
                        $rt_s(2416).$hashCode1 = (31 * $rt_s(2416).$hashCode1 | 0) + $rt_s(2416).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2416).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    bf: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2416) !== var$2) {
                            if ($rt_s(2416) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2416).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break bf;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
    }
    $this.$extending = !var$3 ? 0 : 1;
},
nms_TileEntityPiston_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$storedBlockID;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2412);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2412), var$4);
    var$2 = $this.$storedMetadata;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagInt;
    var$3.$name = $rt_s(2413);
    var$3.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2413), var$3);
    var$2 = $this.$storedOrientation;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2414);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2414), var$4);
    var$5 = $this.$lastProgress;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagFloat;
    var$4.$name = $rt_s(2415);
    var$4.$data5 = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2415), var$4);
    var$2 = (!$this.$extending ? 0 : 1) << 24 >> 24;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2416);
    $par1NBTTagCompound.$data0 = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2416), $par1NBTTagCompound);
};
function nms_TileEntityBrewingStand() {
    let a = this; nms_TileEntity.call(a);
    a.$brewingItemStacks = null;
    a.$brewTime = 0;
    a.$filledSlots = 0;
    a.$ingredientID = 0;
    a.$field_94132_e = null;
}
let nms_TileEntityBrewingStand_field_102017_a = null,
nms_TileEntityBrewingStand_field_102016_b = null,
nms_TileEntityBrewingStand__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$brewingItemStacks = $rt_createArray(nms_ItemStack, 4);
},
nms_TileEntityBrewingStand__init_0 = () => {
    let var_0 = new nms_TileEntityBrewingStand();
    nms_TileEntityBrewingStand__init_(var_0);
    return var_0;
},
nms_TileEntityBrewingStand_getSizeInventory = $this => {
    return $this.$brewingItemStacks.data.length;
},
nms_TileEntityBrewingStand_updateEntity = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$brewTime;
        if (var$1 > 0) {
            var$1 = var$1 - 1 | 0;
            $this.$brewTime = var$1;
            if (!var$1) {
                nms_TileEntityBrewingStand_brewPotions($this);
                $ptr = 1;
                continue main;
            }
            if (!nms_TileEntityBrewingStand_canBrew($this)) {
                $this.$brewTime = 0;
                $ptr = 2;
                continue main;
            }
            if ($this.$ingredientID != $this.$brewingItemStacks.data[3].$itemID) {
                $this.$brewTime = 0;
                $ptr = 3;
                continue main;
            }
        } else if (nms_TileEntityBrewingStand_canBrew($this)) {
            $this.$brewTime = 400;
            $this.$ingredientID = $this.$brewingItemStacks.data[3].$itemID;
        }
        $var1 = 0;
        var$3 = 0;
        while (var$3 < 3) {
            if ($this.$brewingItemStacks.data[var$3] !== null)
                $var1 = $var1 | 1 << var$3;
            var$3 = var$3 + 1 | 0;
        }
        if ($var1 == $this.$filledSlots)
            return;
        $this.$filledSlots = $var1;
        var$4 = $this.$worldObj2;
        var$1 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        var$6 = 2;
        $ptr = 4;
        continue main;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        var$3 = 0;
        while (var$3 < 3) {
            if ($this.$brewingItemStacks.data[var$3] !== null)
                $var1 = $var1 | 1 << var$3;
            var$3 = var$3 + 1 | 0;
        }
        if ($var1 == $this.$filledSlots)
            return;
        $this.$filledSlots = $var1;
        var$4 = $this.$worldObj2;
        var$1 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        var$6 = 2;
        $ptr = 4;
        continue main;
    case 2:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        var$3 = 0;
        while (var$3 < 3) {
            if ($this.$brewingItemStacks.data[var$3] !== null)
                $var1 = $var1 | 1 << var$3;
            var$3 = var$3 + 1 | 0;
        }
        if ($var1 == $this.$filledSlots)
            return;
        $this.$filledSlots = $var1;
        var$4 = $this.$worldObj2;
        var$1 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        var$6 = 2;
        $ptr = 4;
        continue main;
    case 3:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        var$3 = 0;
        while (var$3 < 3) {
            if ($this.$brewingItemStacks.data[var$3] !== null)
                $var1 = $var1 | 1 << var$3;
            var$3 = var$3 + 1 | 0;
        }
        if ($var1 == $this.$filledSlots)
            return;
        $this.$filledSlots = $var1;
        var$4 = $this.$worldObj2;
        var$1 = $this.$xCoord0;
        var$3 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        var$6 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlockMetadataWithNotify(var$4, var$1, var$3, var$5, $var1, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, $ptr);
},
nms_TileEntityBrewingStand_canBrew = $this => {
    let var$1, $var1, $var2, $var3, $var4, $var5, var$7, $var7, var$9, var$10, var$11, var$12, var$13, $var6, var$15;
    var$1 = $this.$brewingItemStacks.data;
    if (var$1[3] !== null && var$1[3].$stackSize > 0) {
        $var1 = var$1[3];
        nms_Item_$callClinit();
        if (!(nms_Item_itemsList.data[$var1.$itemID].$potionEffect === null ? 0 : 1))
            return 0;
        $var2 = 0;
        $var3 = 0;
        a: {
            while ($var3 < 3) {
                b: {
                    var$1 = $this.$brewingItemStacks.data;
                    if (var$1[$var3] !== null && var$1[$var3].$itemID == nms_Item_potion.$itemID0) {
                        $var4 = var$1[$var3].$itemDamage;
                        if ($var1 === null)
                            $var5 = $var4;
                        else {
                            var$1 = nms_Item_itemsList.data;
                            var$7 = $var1.$itemID;
                            $var5 = !(var$1[var$7].$potionEffect === null ? 0 : 1) ? $var4 : nms_PotionHelper_applyIngredient($var4, var$1[var$7].$potionEffect);
                        }
                        var$7 = !($var4 & 16384) ? 0 : 1;
                        if (!var$7 && (!($var5 & 16384) ? 0 : 1)) {
                            $var2 = 1;
                            break a;
                        }
                        $var7 = nms_Item_potion;
                        var$9 = $var7.$effectCache;
                        var$10 = $rt_compare($var4, (-128));
                        if (var$10 >= 0 && $var4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$11 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                        } else {
                            var$11 = new jl_Integer;
                            var$11.$value = $var4;
                        }
                        if (var$11 === null) {
                            var$9 = var$9.$elementData.data[0];
                            while (var$9 !== null && var$9.$key !== null) {
                                var$9 = var$9.$next3;
                            }
                        } else {
                            var$12 = var$11.$value;
                            var$1 = var$9.$elementData.data;
                            var$9 = var$1[var$12 & (var$1.length - 1 | 0)];
                            while (var$9 !== null) {
                                if (var$9.$origKeyHash == var$12) {
                                    var$13 = var$9.$key;
                                    if (var$11 !== var$13 && !(var$11 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == var$12 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$9 = var$9.$next3;
                            }
                        }
                        $var6 = var$9 === null ? null : var$9.$value0;
                        if ($var6 === null) {
                            $var6 = nms_PotionHelper_getPotionEffects($var4, 0);
                            $var7 = $var7.$effectCache;
                            if (var$10 >= 0 && $var4 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                var$9 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                            } else {
                                var$9 = new jl_Integer;
                                var$9.$value = $var4;
                            }
                            ju_HashMap_putImpl($var7, var$9, $var6);
                        }
                        var$11 = nms_Item_potion;
                        $var7 = var$11.$effectCache;
                        var$15 = $rt_compare($var5, (-128));
                        if (var$15 >= 0 && $var5 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$13 = jl_Integer_integerCache.data[$var5 + 128 | 0];
                        } else {
                            var$13 = new jl_Integer;
                            var$13.$value = $var5;
                        }
                        if (var$13 === null) {
                            $var7 = $var7.$elementData.data[0];
                            while ($var7 !== null && $var7.$key !== null) {
                                $var7 = $var7.$next3;
                            }
                        } else {
                            var$12 = var$13.$value;
                            var$1 = $var7.$elementData.data;
                            $var7 = var$1[var$12 & (var$1.length - 1 | 0)];
                            while ($var7 !== null) {
                                if ($var7.$origKeyHash == var$12) {
                                    var$9 = $var7.$key;
                                    if (var$13 !== var$9 && !(var$13 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$12 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var7 = $var7.$next3;
                            }
                        }
                        $var7 = $var7 === null ? null : $var7.$value0;
                        if ($var7 === null) {
                            $var7 = nms_PotionHelper_getPotionEffects($var5, 0);
                            var$9 = var$11.$effectCache;
                            if (var$15 >= 0 && $var5 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                var$11 = jl_Integer_integerCache.data[$var5 + 128 | 0];
                            } else {
                                var$11 = new jl_Integer;
                                var$11.$value = $var5;
                            }
                            ju_HashMap_putImpl(var$9, var$11, $var7);
                        }
                        if (!($var4 > 0 && $var6 === $var7)) {
                            if ($var6 !== null) {
                                if (ju_AbstractList_equals($var6, $var7))
                                    break b;
                                if ($var7 === null)
                                    break b;
                            }
                            if ($var4 != $var5) {
                                $var2 = 1;
                                break a;
                            }
                        }
                    }
                }
                $var3 = $var3 + 1 | 0;
            }
        }
        return $var2;
    }
    return 0;
},
nms_TileEntityBrewingStand_brewPotions = $this => {
    let $var1, $var2, var$3, var$4, $var3, $var4, var$7, $var5, var$9, var$10, var$11, $var6, var$13, var$14, var$15;
    if (nms_TileEntityBrewingStand_canBrew($this)) {
        $var1 = $this.$brewingItemStacks.data[3];
        $var2 = 0;
        while ($var2 < 3) {
            a: {
                var$3 = $this.$brewingItemStacks.data;
                if (var$3[$var2] !== null) {
                    var$4 = var$3[$var2].$itemID;
                    nms_Item_$callClinit();
                    if (var$4 == nms_Item_potion.$itemID0) {
                        $var3 = var$3[$var2].$itemDamage;
                        if ($var1 === null)
                            $var4 = $var3;
                        else {
                            var$3 = nms_Item_itemsList.data;
                            var$4 = $var1.$itemID;
                            $var4 = !(var$3[var$4].$potionEffect === null ? 0 : 1) ? $var3 : nms_PotionHelper_applyIngredient($var3, var$3[var$4].$potionEffect);
                        }
                        var$7 = nms_Item_potion;
                        $var5 = var$7.$effectCache;
                        var$9 = $rt_compare($var3, (-128));
                        if (var$9 >= 0 && $var3 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$10 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                        } else {
                            var$10 = new jl_Integer;
                            var$10.$value = $var3;
                        }
                        if (var$10 === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            var$11 = var$10.$value;
                            var$3 = $var5.$elementData.data;
                            $var5 = var$3[var$11 & (var$3.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == var$11) {
                                    $var6 = $var5.$key;
                                    if (var$10 !== $var6 && !(var$10 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == var$11 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        $var5 = $var5 === null ? null : $var5.$value0;
                        if ($var5 === null) {
                            $var5 = nms_PotionHelper_getPotionEffects($var3, 0);
                            var$10 = var$7.$effectCache;
                            if (var$9 >= 0 && $var3 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                $var6 = jl_Integer_integerCache.data[$var3 + 128 | 0];
                            } else {
                                $var6 = new jl_Integer;
                                $var6.$value = $var3;
                            }
                            ju_HashMap_putImpl(var$10, $var6, $var5);
                        }
                        var$10 = nms_Item_potion;
                        $var6 = var$10.$effectCache;
                        var$13 = $rt_compare($var4, (-128));
                        if (var$13 >= 0 && $var4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                        } else {
                            var$7 = new jl_Integer;
                            var$7.$value = $var4;
                        }
                        if (var$7 === null) {
                            $var6 = $var6.$elementData.data[0];
                            while ($var6 !== null && $var6.$key !== null) {
                                $var6 = $var6.$next3;
                            }
                        } else {
                            var$11 = var$7.$value;
                            var$3 = $var6.$elementData.data;
                            $var6 = var$3[var$11 & (var$3.length - 1 | 0)];
                            while ($var6 !== null) {
                                if ($var6.$origKeyHash == var$11) {
                                    var$14 = $var6.$key;
                                    if (var$7 !== var$14 && !(var$7 === var$14 ? 1 : var$14 instanceof jl_Integer && var$14.$value == var$11 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var6 = $var6.$next3;
                            }
                        }
                        $var6 = $var6 === null ? null : $var6.$value0;
                        if ($var6 === null) {
                            $var6 = nms_PotionHelper_getPotionEffects($var4, 0);
                            var$10 = var$10.$effectCache;
                            if (var$13 >= 0 && $var4 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                var$7 = jl_Integer_integerCache.data[$var4 + 128 | 0];
                            } else {
                                var$7 = new jl_Integer;
                                var$7.$value = $var4;
                            }
                            ju_HashMap_putImpl(var$10, var$7, $var6);
                        }
                        b: {
                            if (!($var3 > 0 && $var5 === $var6)) {
                                if ($var5 !== null) {
                                    if (ju_AbstractList_equals($var5, $var6))
                                        break b;
                                    if ($var6 === null)
                                        break b;
                                }
                                if ($var3 == $var4)
                                    break a;
                                $var5 = $this.$brewingItemStacks.data[$var2];
                                $var5.$itemDamage = $var4;
                                if ($var4 < 0)
                                    $var5.$itemDamage = 0;
                                break a;
                            }
                        }
                        if (!(!($var3 & 16384) ? 0 : 1) && (!($var4 & 16384) ? 0 : 1)) {
                            $var5 = $this.$brewingItemStacks.data[$var2];
                            $var5.$itemDamage = $var4;
                            if ($var4 < 0)
                                $var5.$itemDamage = 0;
                        }
                    }
                }
            }
            $var2 = $var2 + 1 | 0;
        }
        nms_Item_$callClinit();
        var$3 = nms_Item_itemsList.data;
        $var2 = $var1.$itemID;
        if (!(var$3[$var2].$containerItem === null ? 0 : 1)) {
            var$3 = $this.$brewingItemStacks.data;
            $var1 = var$3[3];
            $var1.$stackSize = $var1.$stackSize - 1 | 0;
            if (var$3[3].$stackSize <= 0)
                var$3[3] = null;
        } else {
            var$15 = $this.$brewingItemStacks.data;
            $var1 = new nms_ItemStack;
            $var5 = var$3[$var2].$containerItem;
            nms_ItemStack_$callClinit();
            $var1.$itemID = $var5.$itemID0;
            $var1.$stackSize = 1;
            $var1.$itemDamage = 0;
            var$15[3] = $var1;
        }
    }
},
nms_TileEntityBrewingStand_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, $var5, var$5, var$6, $var4, var$8, var$9, var$10, var$11;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(349).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            b: {
                var$6 = $var2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        $var3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$6 = var$6;
                        $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break b;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) !== null) {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(349).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    d: {
                        var$6 = $var2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break d;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(350).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            f: {
                var$6 = $var2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        $var3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$6 = var$6;
                        $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(350).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    h: {
                        var$6 = $var2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    } else
        $var3 = 0;
    i: {
        $this.$yCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(351).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            j: {
                var$6 = $var2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        $var3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$6 = var$6;
                        $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) !== null) {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(351).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    l: {
                        var$6 = $var2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break l;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        $var3 = ($var2 === null ? null : $var2.$value0).$data;
    } else
        $var3 = 0;
    m: {
        $this.$zCoord0 = $var3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2241).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2241).$nativeString.length)
                    break m;
                $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(2241).$hashCode1;
    var$5 = $var2.$elementData.data;
    $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var5) {
            n: {
                var$6 = $var2.$key;
                if ($rt_s(2241) !== var$6) {
                    if ($rt_s(2241) === var$6)
                        $var3 = 1;
                    else if (var$6 instanceof jl_String) {
                        var$6 = var$6;
                        $var3 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                    } else
                        $var3 = 0;
                    if (!$var3) {
                        $var3 = 0;
                        break n;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2241) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2241).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2241).$nativeString.length)
                            break o;
                        $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(2241).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    p: {
                        var$6 = $var2.$key;
                        if ($rt_s(2241) !== var$6) {
                            if ($rt_s(2241) === var$6)
                                $var3 = 1;
                            else if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                $var3 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                $var3 = 0;
                            if (!$var3) {
                                $var3 = 0;
                                break p;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
    } else {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2241) !== null)
            $var2.$name = $rt_s(2241);
        else
            $var2.$name = $rt_s(3);
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $var4;
    }
    $this.$brewingItemStacks = $rt_createArray(nms_ItemStack, $this.$brewingItemStacks.data.length);
    $var3 = 0;
    while (true) {
        $var4 = $var2.$tagList;
        var$8 = $rt_compare($var3, $var4.$size0);
        if (var$8 >= 0) {
            q: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2417).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2417).$nativeString.length)
                            break q;
                        $rt_s(2417).$hashCode1 = (31 * $rt_s(2417).$hashCode1 | 0) + $rt_s(2417).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2417).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var3) {
                    r: {
                        var$6 = $var2.$key;
                        if ($rt_s(2417) !== var$6) {
                            if ($rt_s(2417) === var$6)
                                var$8 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$6 = var$6;
                                var$8 = $rt_s(2417).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$8) {
                                var$8 = 0;
                                break r;
                            }
                        }
                        var$8 = 1;
                    }
                    if (var$8)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2417) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    s: {
                        if (!$rt_s(2417).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2417).$nativeString.length)
                                    break s;
                                $rt_s(2417).$hashCode1 = (31 * $rt_s(2417).$hashCode1 | 0) + $rt_s(2417).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    $var3 = $rt_s(2417).$hashCode1;
                    var$5 = $var2.$elementData.data;
                    $var2 = var$5[$var3 & (var$5.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == $var3) {
                            t: {
                                var$6 = $var2.$key;
                                if ($rt_s(2417) !== var$6) {
                                    if ($rt_s(2417) === var$6)
                                        var$8 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$8 = $rt_s(2417).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break t;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            u: {
                $this.$brewTime = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1994).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(1994).$nativeString.length)
                            break u;
                        $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(1994).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    v: {
                        var$6 = $var2.$key;
                        if ($rt_s(1994) !== var$6) {
                            if ($rt_s(1994) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break v;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                w: {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(1994).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1994).$nativeString.length)
                                break w;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var5 = $rt_s(1994).$hashCode1;
                var$5 = $var2.$elementData.data;
                $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == $var5) {
                        x: {
                            var$6 = $var2.$key;
                            if ($rt_s(1994) !== var$6) {
                                if ($rt_s(1994) === var$6)
                                    $var3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$6 = var$6;
                                    $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break x;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1))
                    $par1NBTTagCompound = $rt_s(3);
                else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(1994) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        y: {
                            if (!$rt_s(1994).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(1994).$nativeString.length)
                                        break y;
                                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        $var5 = $rt_s(1994).$hashCode1;
                        var$5 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$5[$var5 & (var$5.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == $var5) {
                                z: {
                                    $var2 = $par1NBTTagCompound.$key;
                                    if ($rt_s(1994) !== $var2) {
                                        if ($rt_s(1994) === $var2)
                                            $var3 = 1;
                                        else if (!($var2 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            $var2 = $var2;
                                            $var3 = $rt_s(1994).$nativeString !== $var2.$nativeString ? 0 : 1;
                                        }
                                        if (!$var3) {
                                            $var3 = 0;
                                            break z;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
                }
                $this.$field_94132_e = $par1NBTTagCompound;
            }
            return;
        }
        if ($var3 < 0)
            break;
        if (var$8 >= 0)
            break;
        ba: {
            $var4 = $var4.$array.data[$var3];
            var$9 = $var4.$tagMap;
            if (!$rt_s(2022).$hashCode1) {
                var$8 = 0;
                while (true) {
                    if (var$8 >= $rt_s(2022).$nativeString.length)
                        break ba;
                    $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$8) | 0;
                    var$8 = var$8 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2022).$hashCode1;
        var$5 = var$9.$elementData.data;
        var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
        while (var$9 !== null) {
            if (var$9.$origKeyHash == var$10) {
                bb: {
                    var$11 = var$9.$key;
                    if ($rt_s(2022) !== var$11) {
                        if ($rt_s(2022) === var$11)
                            var$8 = 1;
                        else if (!(var$11 instanceof jl_String))
                            var$8 = 0;
                        else {
                            var$11 = var$11;
                            var$8 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break bb;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            var$9 = var$9.$next3;
        }
        if (!(var$9 === null ? 0 : 1))
            $var5 = 0;
        else {
            var$9 = $var4.$tagMap;
            if ($rt_s(2022) === null) {
                var$9 = var$9.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                bc: {
                    if (!$rt_s(2022).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2022).$nativeString.length)
                                break bc;
                            $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2022).$hashCode1;
                var$5 = var$9.$elementData.data;
                var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == var$10) {
                        bd: {
                            var$11 = var$9.$key;
                            if ($rt_s(2022) !== var$11) {
                                if ($rt_s(2022) === var$11)
                                    var$8 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$11 = var$11;
                                    var$8 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break bd;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            $var5 = (var$9 === null ? null : var$9.$value0).$data0;
        }
        if ($var5 >= 0) {
            var$5 = $this.$brewingItemStacks.data;
            if ($var5 < var$5.length) {
                nms_ItemStack_$callClinit();
                var$6 = new nms_ItemStack;
                nms_ItemStack_readFromNBT(var$6, $var4);
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$6.$itemID] === null)
                    var$6 = null;
                var$5[$var5] = var$6;
            }
        }
        $var3 = $var3 + 1 | 0;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntityBrewingStand_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, $var2, $var3, var$7, $var4, var$9, var$10, var$11, var$12;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$brewTime << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2417);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2417), var$4);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$4;
    $var3 = 0;
    while (true) {
        var$7 = $this.$brewingItemStacks.data;
        if ($var3 >= var$7.length)
            break;
        if (var$7[$var3] !== null) {
            $var4 = new nms_NBTTagCompound;
            $var4.$name = $rt_s(3);
            var$9 = new ju_HashMap;
            var$2 = ju_HashMap_calculateCapacity(16);
            var$9.$elementCount = 0;
            var$10 = $rt_createArray(ju_HashMap$HashEntry, var$2);
            var$7 = var$10.data;
            var$9.$elementData = var$10;
            var$9.$loadFactor = 0.75;
            var$9.$threshold = var$7.length * 0.75 | 0;
            $var4.$tagMap = var$9;
            var$2 = $var3 << 24 >> 24;
            var$4 = new nms_NBTTagByte;
            var$4.$name = $rt_s(2022);
            var$4.$data0 = var$2;
            ju_HashMap_putImpl(var$9, $rt_s(2022), var$4);
            var$11 = $this.$brewingItemStacks.data[$var3];
            var$2 = var$11.$itemID << 16 >> 16;
            var$9 = $var4.$tagMap;
            var$3 = new nms_NBTTagShort;
            var$3.$name = $rt_s(914);
            var$3.$data2 = var$2;
            ju_HashMap_putImpl(var$9, $rt_s(914), var$3);
            var$2 = var$11.$stackSize << 24 >> 24;
            var$9 = $var4.$tagMap;
            var$3 = new nms_NBTTagByte;
            var$3.$name = $rt_s(915);
            var$3.$data0 = var$2;
            ju_HashMap_putImpl(var$9, $rt_s(915), var$3);
            var$2 = var$11.$itemDamage << 16 >> 16;
            var$9 = $var4.$tagMap;
            var$3 = new nms_NBTTagShort;
            var$3.$name = $rt_s(916);
            var$3.$data2 = var$2;
            ju_HashMap_putImpl(var$9, $rt_s(916), var$3);
            var$4 = var$11.$stackTagCompound;
            if (var$4 !== null) {
                var$9 = $var4.$tagMap;
                var$4.$name = $rt_s(917);
                ju_HashMap_putImpl(var$9, $rt_s(917), var$4);
            }
            $var2.$tagType = 10;
            var$4 = $var2.$tagList;
            ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
            var$7 = var$4.$array.data;
            var$12 = var$4.$size0;
            var$4.$size0 = var$12 + 1 | 0;
            var$7[var$12] = $var4;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    var$3 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2241);
    ju_HashMap_putImpl(var$3, $rt_s(2241), $var2);
    $var2 = $this.$field_94132_e;
    if ($var2 !== null && $var2.$nativeString.length > 0 ? 1 : 0) {
        var$4 = $this.$field_94132_e;
        var$3 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$4;
        if (var$4 === null) {
            $var2 = new jl_IllegalArgumentException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            $var2.$message = $rt_s(177);
            $rt_throw($var2);
        }
        ju_HashMap_putImpl(var$3, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_TileEntityBrewingStand_getStackInSlot = ($this, $par1) => {
    let var$2, var$3;
    a: {
        if ($par1 >= 0) {
            var$2 = $this.$brewingItemStacks.data;
            if ($par1 < var$2.length) {
                var$3 = var$2[$par1];
                break a;
            }
        }
        var$3 = null;
    }
    return var$3;
},
nms_TileEntityBrewingStand_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3;
    if ($par1 >= 0) {
        var$3 = $this.$brewingItemStacks.data;
        if ($par1 < var$3.length) {
            $var3 = var$3[$par1];
            var$3[$par1] = null;
            return $var3;
        }
    }
    return null;
},
nms_TileEntityBrewingStand_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let var$3;
    if ($par1 >= 0) {
        var$3 = $this.$brewingItemStacks.data;
        if ($par1 < var$3.length)
            var$3[$par1] = $par2ItemStack;
    }
},
nms_TileEntityBrewingStand_getInventoryStackLimit = $this => {
    return 64;
},
nms_TileEntityBrewingStand_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityBrewingStand_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    if ($par1 == 3) {
        nms_Item_$callClinit();
        $par1 = nms_Item_itemsList.data[$par2ItemStack.$itemID].$potionEffect === null ? 0 : 1;
    } else {
        $par1 = $par2ItemStack.$itemID;
        nms_Item_$callClinit();
        $par1 = $par1 != nms_Item_potion.$itemID0 && $par1 != nms_Item_glassBottle.$itemID0 ? 0 : 1;
    }
    return $par1;
},
nms_TileEntityBrewingStand_getAccessibleSlotsFromSide = ($this, $par1) => {
    return $par1 != 1 ? nms_TileEntityBrewingStand_field_102016_b : nms_TileEntityBrewingStand_field_102017_a;
},
nms_TileEntityBrewingStand_canInsertItem = ($this, $par1, $par2ItemStack, $par3) => {
    return nms_TileEntityBrewingStand_isItemValidForSlot($this, $par1, $par2ItemStack);
},
nms_TileEntityBrewingStand_canExtractItem = ($this, $par1, $par2ItemStack, $par3) => {
    return 1;
},
nms_TileEntityBrewingStand__clinit_ = () => {
    let var$1;
    var$1 = $rt_createIntArray(1);
    var$1.data[0] = 3;
    nms_TileEntityBrewingStand_field_102017_a = var$1;
    nms_TileEntityBrewingStand_field_102016_b = $rt_createIntArrayFromData([0, 1, 2]);
};
function nms_TileEntityEnchantmentTable() {
    let a = this; nms_TileEntity.call(a);
    a.$tickCount0 = 0;
    a.$pageFlip = 0.0;
    a.$pageFlipPrev = 0.0;
    a.$field_70373_d = 0.0;
    a.$field_70374_e = 0.0;
    a.$bookSpread = 0.0;
    a.$bookSpreadPrev = 0.0;
    a.$bookRotation2 = 0.0;
    a.$bookRotationPrev = 0.0;
    a.$bookRotation = 0.0;
    a.$field_94136_s = null;
}
let nms_TileEntityEnchantmentTable_rand = null,
nms_TileEntityEnchantmentTable_$callClinit = () => {
    nms_TileEntityEnchantmentTable_$callClinit = $rt_eraseClinit(nms_TileEntityEnchantmentTable);
    nms_TileEntityEnchantmentTable__clinit_();
},
nms_TileEntityEnchantmentTable__init_ = $this => {
    nms_TileEntityEnchantmentTable_$callClinit();
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityEnchantmentTable__init_0 = () => {
    let var_0 = new nms_TileEntityEnchantmentTable();
    nms_TileEntityEnchantmentTable__init_(var_0);
    return var_0;
},
nms_TileEntityEnchantmentTable_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$field_94136_s;
    if (var$2 !== null && var$2.$nativeString.length > 0 ? 1 : 0) {
        var$3 = $this.$field_94136_s;
        var$4 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$3;
        if (var$3 === null) {
            var$2 = new jl_IllegalArgumentException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            var$2.$message = $rt_s(177);
            $rt_throw(var$2);
        }
        ju_HashMap_putImpl(var$4, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_TileEntityEnchantmentTable_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) === var$6)
                                var$3 = 1;
                            else if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1994).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1994).$nativeString.length)
                    break m;
                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1994).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(1994) !== var$6) {
                    if ($rt_s(1994) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break n;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        o: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= $rt_s(1994).$nativeString.length)
                        break o;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(1994).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                p: {
                    var$6 = var$2.$key;
                    if ($rt_s(1994) !== var$6) {
                        if ($rt_s(1994) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break p;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            $par1NBTTagCompound = $rt_s(3);
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1994) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                q: {
                    if (!$rt_s(1994).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(1994).$nativeString.length)
                                break q;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(1994).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$7) {
                        r: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(1994) !== $par1NBTTagCompound) {
                                if ($rt_s(1994) === $par1NBTTagCompound)
                                    var$3 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$3 = $rt_s(1994).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break r;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            $par1NBTTagCompound = (var$6 === null ? null : var$6.$value0).$data1;
        }
        $this.$field_94136_s = $par1NBTTagCompound;
    }
},
nms_TileEntityEnchantmentTable_updateEntity = $this => {
    let $var1, $var2, $var6, var$4, var$5, var$6, $var3, var$8, var$9, var$10, $var7, $var8;
    $this.$bookSpreadPrev = $this.$bookSpread;
    $this.$bookRotationPrev = $this.$bookRotation2;
    $var1 = nms_World_getClosestPlayer($this.$worldObj2, $this.$xCoord0 + 0.5, $this.$yCoord0 + 0.5, $this.$zCoord0 + 0.5, 3.0);
    if ($var1 === null) {
        $this.$bookRotation = $this.$bookRotation + 0.019999999552965164;
        $this.$bookSpread = $this.$bookSpread - 0.10000000149011612;
    } else
        a: {
            $var2 = $var1.$posX - ($this.$xCoord0 + 0.5);
            $this.$bookRotation = jl_Math_atan2($var1.$posZ - ($this.$zCoord0 + 0.5), $var2);
            $var6 = $this.$bookSpread + 0.10000000149011612;
            $this.$bookSpread = $var6;
            if ($var6 >= 0.5) {
                nms_TileEntityEnchantmentTable_$callClinit();
                $var1 = nms_TileEntityEnchantmentTable_rand;
                var$4 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$4;
                var$5 = Long_lo(Long_shru(var$4, 17));
                while (true) {
                    var$6 = var$5 % 40 | 0;
                    if (((var$5 - var$6 | 0) + 39 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                }
                if (var$6)
                    break a;
            }
            $var6 = $this.$field_70373_d;
            while (true) {
                $var3 = $this.$field_70373_d;
                nms_TileEntityEnchantmentTable_$callClinit();
                $var1 = nms_TileEntityEnchantmentTable_rand;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$8, 17)))), 31));
                var$10 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$10;
                $var3 = $var3 + (var$9 - Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$10, 17)))), 31)) | 0);
                $this.$field_70373_d = $var3;
                if ($var6 === $var3)
                    continue;
                else
                    break a;
            }
        }
    while (true) {
        $var6 = $this.$bookRotation2;
        if ($var6 < 3.1415927410125732)
            break;
        $this.$bookRotation2 = $var6 - 6.2831854820251465;
    }
    while (true) {
        $var6 = $this.$bookRotation2;
        if ($var6 >= (-3.1415927410125732))
            break;
        $this.$bookRotation2 = $var6 + 6.2831854820251465;
    }
    while (true) {
        $var7 = $this.$bookRotation;
        if ($var7 < 3.1415927410125732)
            break;
        $this.$bookRotation = $var7 - 6.2831854820251465;
    }
    while (true) {
        $var7 = $this.$bookRotation;
        if ($var7 >= (-3.1415927410125732))
            break;
        $this.$bookRotation = $var7 + 6.2831854820251465;
    }
    $var7 = $var7 - $var6;
    while ($var7 >= 3.1415927410125732) {
        $var7 = $var7 - 6.2831854820251465;
    }
    while ($var7 < (-3.1415927410125732)) {
        $var7 = $var7 + 6.2831854820251465;
    }
    $this.$bookRotation2 = $var6 + $var7 * 0.4000000059604645;
    if ($this.$bookSpread < 0.0)
        $this.$bookSpread = 0.0;
    if ($this.$bookSpread > 1.0)
        $this.$bookSpread = 1.0;
    $this.$tickCount0 = $this.$tickCount0 + 1 | 0;
    $var6 = $this.$pageFlip;
    $this.$pageFlipPrev = $var6;
    $var3 = ($this.$field_70373_d - $var6) * 0.4000000059604645;
    $var8 = 0.20000000298023224;
    $var7 = (-0.20000000298023224);
    if ($var3 >= $var7)
        $var7 = $var3;
    if ($var7 <= $var8)
        $var8 = $var7;
    $var3 = $this.$field_70374_e;
    $var3 = $var3 + ($var8 - $var3) * 0.8999999761581421;
    $this.$field_70374_e = $var3;
    $this.$pageFlip = $var6 + $var3;
},
nms_TileEntityEnchantmentTable__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    nms_TileEntityEnchantmentTable_rand = var$1;
},
nms_TileEntityEndPortal = $rt_classWithoutFields(nms_TileEntity),
nms_TileEntityEndPortal__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityEndPortal__init_0 = () => {
    let var_0 = new nms_TileEntityEndPortal();
    nms_TileEntityEndPortal__init_(var_0);
    return var_0;
};
function nms_TileEntityCommandBlock() {
    let a = this; nms_TileEntity.call(a);
    a.$succesCount = 0;
    a.$command = null;
    a.$commandSenderName = null;
}
let nms_TileEntityCommandBlock__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$command = $rt_s(3);
    $this.$commandSenderName = $rt_s(1454);
},
nms_TileEntityCommandBlock__init_0 = () => {
    let var_0 = new nms_TileEntityCommandBlock();
    nms_TileEntityCommandBlock__init_(var_0);
    return var_0;
},
nms_TileEntityCommandBlock_setCommand = ($this, $par1Str) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$command = $par1Str;
        $ptr = 1;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, $ptr);
},
nms_TileEntityCommandBlock_getCommandSenderName = $this => {
    return $this.$commandSenderName;
},
nms_TileEntityCommandBlock_sendChatToPlayer = ($this, $par1ChatMessageComponent) => {
    return;
},
nms_TileEntityCommandBlock_canCommandSenderUseCommand = ($this, $par1, $par2Str) => {
    return $par1 > 2 ? 0 : 1;
},
nms_TileEntityCommandBlock_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$command;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagString;
    var$4.$name = $rt_s(2418);
    var$4.$data1 = var$2;
    if (var$2 === null) {
        var$5 = new jl_IllegalArgumentException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        var$5.$message = $rt_s(177);
        $rt_throw(var$5);
    }
    ju_HashMap_putImpl(var$3, $rt_s(2418), var$4);
    var$6 = $this.$succesCount;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2419);
    var$2.$data = var$6;
    ju_HashMap_putImpl(var$4, $rt_s(2419), var$2);
    var$2 = $this.$commandSenderName;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagString;
    $par1NBTTagCompound.$name = $rt_s(1994);
    $par1NBTTagCompound.$data1 = var$2;
    if (var$2 !== null) {
        ju_HashMap_putImpl(var$4, $rt_s(1994), $par1NBTTagCompound);
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    var$5.$message = $rt_s(177);
    $rt_throw(var$5);
},
nms_TileEntityCommandBlock_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                var$3 = 1;
                            else if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2418).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(2418).$nativeString.length)
                    break m;
                $rt_s(2418).$hashCode1 = (31 * $rt_s(2418).$hashCode1 | 0) + $rt_s(2418).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2418).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2418) !== var$6) {
                    if ($rt_s(2418) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2418).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2418) === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2418).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2418).$nativeString.length)
                            break o;
                        $rt_s(2418).$hashCode1 = (31 * $rt_s(2418).$hashCode1 | 0) + $rt_s(2418).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2418).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$7) {
                    p: {
                        var$2 = var$8.$key;
                        if ($rt_s(2418) !== var$2) {
                            if ($rt_s(2418) === var$2)
                                var$3 = 1;
                            else if (var$2 instanceof jl_String) {
                                var$2 = var$2;
                                var$3 = $rt_s(2418).$nativeString !== var$2.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$9 = (var$8 === null ? null : var$8.$value0).$data1;
    } else
        var$9 = $rt_s(3);
    q: {
        $this.$command = var$9;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2419).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2419).$nativeString.length)
                    break q;
                $rt_s(2419).$hashCode1 = (31 * $rt_s(2419).$hashCode1 | 0) + $rt_s(2419).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2419).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2419) !== var$6) {
                    if ($rt_s(2419) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2419).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2419) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2419).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2419).$nativeString.length)
                            break s;
                        $rt_s(2419).$hashCode1 = (31 * $rt_s(2419).$hashCode1 | 0) + $rt_s(2419).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2419).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    t: {
                        var$6 = var$2.$key;
                        if ($rt_s(2419) !== var$6) {
                            if ($rt_s(2419) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2419).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    u: {
        $this.$succesCount = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1994).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1994).$nativeString.length)
                    break u;
                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1994).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            v: {
                var$6 = var$2.$key;
                if ($rt_s(1994) !== var$6) {
                    if ($rt_s(1994) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        w: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(1994).$nativeString.length)
                        break w;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(1994).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                x: {
                    var$6 = var$2.$key;
                    if ($rt_s(1994) !== var$6) {
                        if ($rt_s(1994) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break x;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            $par1NBTTagCompound = $rt_s(3);
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1994) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                y: {
                    if (!$rt_s(1994).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(1994).$nativeString.length)
                                break y;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(1994).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$4) {
                        z: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(1994) !== var$2) {
                                if ($rt_s(1994) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(1994).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break z;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
        }
        $this.$commandSenderName = $par1NBTTagCompound;
    }
},
nms_TileEntityCommandBlock_getPlayerCoordinates = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = new nms_ChunkCoordinates;
    var$2 = $this.$xCoord0;
    var$3 = $this.$yCoord0;
    var$4 = $this.$zCoord0;
    var$1.$posX0 = var$2;
    var$1.$posY0 = var$3;
    var$1.$posZ0 = var$4;
    return var$1;
},
nms_TileEntityCommandBlock_getDescriptionPacket = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    nms_TileEntity_writeToNBT($this, $var1);
    var$6 = $this.$command;
    var$7 = $var1.$tagMap;
    var$8 = new nms_NBTTagString;
    var$8.$name = $rt_s(2418);
    var$8.$data1 = var$6;
    if (var$6 === null) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(177);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$7, $rt_s(2418), var$8);
    var$3 = $this.$succesCount;
    var$8 = $var1.$tagMap;
    var$6 = new nms_NBTTagInt;
    var$6.$name = $rt_s(2419);
    var$6.$data = var$3;
    ju_HashMap_putImpl(var$8, $rt_s(2419), var$6);
    var$7 = $this.$commandSenderName;
    var$8 = $var1.$tagMap;
    var$6 = new nms_NBTTagString;
    var$6.$name = $rt_s(1994);
    var$6.$data1 = var$7;
    if (var$7 === null) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(177);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$8, $rt_s(1994), var$6);
    var$2 = new nms_Packet132TileEntityData;
    var$3 = $this.$xCoord0;
    var$9 = $this.$yCoord0;
    var$10 = $this.$zCoord0;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$2.$isChunkDataPacket = 1;
    var$2.$xPosition5 = var$3;
    var$2.$yPosition4 = var$9;
    var$2.$zPosition5 = var$10;
    var$2.$actionType = 2;
    var$2.$data12 = $var1;
    return var$2;
};
function nms_TileEntityBeacon() {
    let a = this; nms_TileEntity.call(a);
    a.$isBeaconActive = 0;
    a.$levels = 0;
    a.$primaryEffect = 0;
    a.$secondaryEffect = 0;
    a.$payment = null;
    a.$field_94048_i = null;
}
let nms_TileEntityBeacon_effectsList = null,
nms_TileEntityBeacon_$callClinit = () => {
    nms_TileEntityBeacon_$callClinit = $rt_eraseClinit(nms_TileEntityBeacon);
    nms_TileEntityBeacon__clinit_();
},
nms_TileEntityBeacon__init_ = $this => {
    nms_TileEntityBeacon_$callClinit();
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$levels = (-1);
},
nms_TileEntityBeacon__init_0 = () => {
    let var_0 = new nms_TileEntityBeacon();
    nms_TileEntityBeacon__init_(var_0);
    return var_0;
},
nms_TileEntityBeacon_updateEntity = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (Long_ne(Long_rem($this.$worldObj2.$worldInfo.$getWorldTotalTime(), Long_fromInt(80)), Long_ZERO))
            return;
        $ptr = 1;
    case 1:
        nms_TileEntityBeacon_updateState($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_TileEntityBeacon_addEffectsToPlayers($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_TileEntityBeacon_addEffectsToPlayers = $this => {
    let $var6$index, var$2, $var1, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var6$index_0, $var5, $var7, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var6$index_0 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();$var6$index = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isBeaconActive) {
            $var6$index = $this.$levels;
            if ($var6$index > 0 && !$this.$worldObj2.$isRemote) {
                var$2 = $this.$primaryEffect;
                if (var$2 > 0) {
                    $var1 = ($var6$index * 10 | 0) + 10 | 0;
                    $var3 = 0;
                    if ($var6$index >= 4 && var$2 == $this.$secondaryEffect)
                        $var3 = 1;
                    var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var6$index = $this.$xCoord0;
                    var$6 = $var6$index;
                    var$2 = $this.$yCoord0;
                    var$7 = var$2;
                    var$8 = $this.$zCoord0;
                    var$9 = var$8;
                    var$10 = $var6$index + 1 | 0;
                    var$11 = var$2 + 1 | 0;
                    var$12 = var$8 + 1 | 0;
                    $var6$index_0 = var$5.$nextPoolIndex;
                    $var5 = var$5.$listAABB;
                    var$2 = $var5.$size0;
                    $var6$index = $rt_compare($var6$index_0, var$2);
                    if ($var6$index >= 0) {
                        $var7 = new nms_AxisAlignedBB;
                        $var7.$minX0 = var$6;
                        $var7.$minY0 = var$7;
                        $var7.$minZ0 = var$9;
                        $var7.$maxX0 = var$10;
                        $var7.$maxY = var$11;
                        $var7.$maxZ0 = var$12;
                        ju_ArrayList_ensureCapacity($var5, var$2 + 1 | 0);
                        var$16 = $var5.$array.data;
                        $var6$index = $var5.$size0;
                        $var5.$size0 = $var6$index + 1 | 0;
                        var$16[$var6$index] = $var7;
                        $var5.$modCount = $var5.$modCount + 1 | 0;
                    } else if ($var6$index_0 >= 0 && $var6$index < 0) {
                        $var7 = $var5.$array.data[$var6$index_0];
                        $var7.$minX0 = var$6;
                        $var7.$minY0 = var$7;
                        $var7.$minZ0 = var$9;
                        $var7.$maxX0 = var$10;
                        $var7.$maxY = var$11;
                        $var7.$maxZ0 = var$12;
                    } else {
                        $var5 = new jl_IndexOutOfBoundsException;
                        $var5.$suppressionEnabled = 1;
                        $var5.$writableStackTrace = 1;
                        $rt_throw($var5);
                    }
                    var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
                    var$6 = $var7.$minX0 - $var1;
                    var$7 = $var7.$minY0 - $var1;
                    var$9 = $var7.$minZ0 - $var1;
                    var$10 = $var7.$maxX0 + $var1;
                    var$11 = $var7.$maxY + $var1;
                    $var1 = $var7.$maxZ0 + $var1;
                    $var7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var6$index = $var7.$nextPoolIndex;
                    $var5 = $var7.$listAABB;
                    $var6$index_0 = $var5.$size0;
                    var$2 = $rt_compare($var6$index, $var6$index_0);
                    if (var$2 >= 0) {
                        var$5 = new nms_AxisAlignedBB;
                        var$5.$minX0 = var$6;
                        var$5.$minY0 = var$7;
                        var$5.$minZ0 = var$9;
                        var$5.$maxX0 = var$10;
                        var$5.$maxY = var$11;
                        var$5.$maxZ0 = $var1;
                        ju_ArrayList_ensureCapacity($var5, $var6$index_0 + 1 | 0);
                        var$16 = $var5.$array.data;
                        $var6$index_0 = $var5.$size0;
                        $var5.$size0 = $var6$index_0 + 1 | 0;
                        var$16[$var6$index_0] = var$5;
                        $var5.$modCount = $var5.$modCount + 1 | 0;
                    } else if ($var6$index >= 0 && var$2 < 0) {
                        var$5 = $var5.$array.data[$var6$index];
                        var$5.$minX0 = var$6;
                        var$5.$minY0 = var$7;
                        var$5.$minZ0 = var$9;
                        var$5.$maxX0 = var$10;
                        var$5.$maxY = var$11;
                        var$5.$maxZ0 = $var1;
                    } else {
                        $var5 = new jl_IndexOutOfBoundsException;
                        $var5.$suppressionEnabled = 1;
                        $var5.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var5);
                        $rt_throw($var5);
                    }
                    $var7.$nextPoolIndex = $var7.$nextPoolIndex + 1 | 0;
                    var$5.$maxY = 256.0;
                    $var5 = $this.$worldObj2;
                    $var7 = $rt_cls(nms_EntityPlayer);
                    var$17 = null;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($var5, $var7, var$5, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$2 = $var5.$modCount;
        var$8 = $var5.$size();
        if (0 >= var$8 ? 0 : 1) {
            if (var$2 < $var5.$modCount) {
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
            $var6$index = 0 + 1 | 0;
            $var7 = $var5.$get(0);
            var$5 = new nms_PotionEffect;
            var$5.$potionID = $this.$primaryEffect;
            var$5.$duration = 180;
            var$5.$amplifier = $var3;
            var$5.$isAmbient = 1;
            $ptr = 2;
            continue main;
        }
        if ($this.$levels >= 4) {
            $var6$index_0 = $this.$primaryEffect;
            $var6$index = $this.$secondaryEffect;
            if ($var6$index_0 != $var6$index && $var6$index > 0) {
                var$18 = $var5.$modCount;
                var$19 = $var5.$size();
                if (0 >= var$19 ? 0 : 1) {
                    if (var$18 < $var5.$modCount) {
                        $var5 = new ju_ConcurrentModificationException;
                        $var5.$suppressionEnabled = 1;
                        $var5.$writableStackTrace = 1;
                        $rt_throw($var5);
                    }
                    var$8 = 0 + 1 | 0;
                    $var7 = $var5.$get(0);
                    var$5 = new nms_PotionEffect;
                    var$5.$potionID = $this.$secondaryEffect;
                    var$5.$duration = 180;
                    var$5.$amplifier = 0;
                    var$5.$isAmbient = 1;
                    $ptr = 3;
                    continue main;
                }
            }
        }
        return;
    case 2:
        nms_EntityLivingBase_addPotionEffect($var7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var6$index_0 = $var6$index;
        if ($var6$index_0 >= var$8 ? 0 : 1) {
            if (var$2 < $var5.$modCount) {
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
            $var6$index = $var6$index_0 + 1 | 0;
            $var7 = $var5.$get($var6$index_0);
            var$5 = new nms_PotionEffect;
            var$5.$potionID = $this.$primaryEffect;
            var$5.$duration = 180;
            var$5.$amplifier = $var3;
            var$5.$isAmbient = 1;
            continue main;
        }
        if ($this.$levels >= 4) {
            $var6$index_0 = $this.$primaryEffect;
            $var6$index = $this.$secondaryEffect;
            if ($var6$index_0 != $var6$index && $var6$index > 0) {
                var$18 = $var5.$modCount;
                var$19 = $var5.$size();
                if (0 >= var$19 ? 0 : 1) {
                    if (var$18 < $var5.$modCount) {
                        $var5 = new ju_ConcurrentModificationException;
                        $var5.$suppressionEnabled = 1;
                        $var5.$writableStackTrace = 1;
                        $rt_throw($var5);
                    }
                    var$8 = 0 + 1 | 0;
                    $var7 = $var5.$get(0);
                    var$5 = new nms_PotionEffect;
                    var$5.$potionID = $this.$secondaryEffect;
                    var$5.$duration = 180;
                    var$5.$amplifier = 0;
                    var$5.$isAmbient = 1;
                    $ptr = 3;
                    continue main;
                }
            }
        }
        return;
    case 3:
        nms_EntityLivingBase_addPotionEffect($var7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var6$index = var$8;
        if (!($var6$index >= var$19 ? 0 : 1))
            return;
        if (var$18 < $var5.$modCount) {
            $var5 = new ju_ConcurrentModificationException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $rt_throw($var5);
        }
        var$8 = $var6$index + 1 | 0;
        $var7 = $var5.$get($var6$index);
        var$5 = new nms_PotionEffect;
        var$5.$potionID = $this.$secondaryEffect;
        var$5.$duration = 180;
        var$5.$amplifier = 0;
        var$5.$isAmbient = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var6$index, var$2, $var1, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var6$index_0, $var5, $var7, var$16, var$17, var$18, var$19, $ptr);
},
nms_TileEntityBeacon_updateState = $this => {
    let var$1, $var2, $var1, $var4, $var1_0, $var5, var$7, var$8, var$9, $var3, var$11, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var1_0 = $thread.pop();$var4 = $thread.pop();$var1 = $thread.pop();$var2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj2;
        $var2 = $this.$xCoord0;
        $var1 = $this.$yCoord0 + 1 | 0;
        $var4 = $this.$zCoord0;
        $var1_0 = $var2 >> 4;
        $var5 = $var4 >> 4;
        var$1 = var$1.$chunkProvider;
        var$7 = var$1.$loadedChunkHashMap;
        var$8 = Long_or(Long_and(Long_fromInt($var1_0), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var5), Long_create(4294967295, 0)), 32));
        var$9 = Long_lo(Long_xor(var$8, Long_shru(var$8, 32)));
        $var3 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
        $var3 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
        var$11 = var$7.$hashArray.data;
        var$7 = var$11[$var3 & (var$11.length - 1 | 0)];
        a: {
            while (var$7 !== null) {
                if (Long_eq(var$7.$key1, var$8)) {
                    var$7 = var$7.$value4;
                    break a;
                }
                var$7 = var$7.$nextEntry;
            }
            var$7 = null;
        }
        b: {
            var$7 = var$7;
            if (var$7 === null) {
                if (var$1.$worldObj0.$findingSpawnPoint)
                    break b;
                if (var$1.$loadChunkOnProvideRequest)
                    break b;
                var$7 = var$1.$defaultEmptyChunk;
            }
            if (!var$7.$canBlockSeeTheSky($var2 & 15, $var1, $var4 & 15)) {
                $this.$isBeaconActive = 0;
                $this.$levels = 0;
            } else {
                $this.$isBeaconActive = 1;
                $this.$levels = 0;
                $var1 = 1;
                c: {
                    while (true) {
                        if ($var1 > 4)
                            break c;
                        $var2 = $this.$yCoord0 - $var1 | 0;
                        if ($var2 < 0)
                            break c;
                        $var3 = 1;
                        $var4 = $this.$xCoord0 - $var1 | 0;
                        while ($var4 <= ($this.$xCoord0 + $var1 | 0) && $var3) {
                            $var5 = $this.$zCoord0 - $var1 | 0;
                            if ($var5 <= ($this.$zCoord0 + $var1 | 0)) {
                                var$1 = $this.$worldObj2;
                                $ptr = 2;
                                continue main;
                            }
                            $var4 = $var4 + 1 | 0;
                        }
                        if (!$var3)
                            break;
                        $var1_0 = $var1 + 1 | 0;
                        $this.$levels = $var1;
                        $var1 = $var1_0;
                    }
                }
                if (!$this.$levels)
                    $this.$isBeaconActive = 0;
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$1, $var1_0, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7.$canBlockSeeTheSky($var2 & 15, $var1, $var4 & 15)) {
            $this.$isBeaconActive = 0;
            $this.$levels = 0;
        } else {
            $this.$isBeaconActive = 1;
            $this.$levels = 0;
            $var1 = 1;
            b: {
                while (true) {
                    if ($var1 > 4)
                        break b;
                    $var2 = $this.$yCoord0 - $var1 | 0;
                    if ($var2 < 0)
                        break b;
                    $var3 = 1;
                    $var4 = $this.$xCoord0 - $var1 | 0;
                    while ($var4 <= ($this.$xCoord0 + $var1 | 0) && $var3) {
                        $var5 = $this.$zCoord0 - $var1 | 0;
                        if ($var5 <= ($this.$zCoord0 + $var1 | 0)) {
                            var$1 = $this.$worldObj2;
                            $ptr = 2;
                            continue main;
                        }
                        $var4 = $var4 + 1 | 0;
                    }
                    if (!$var3)
                        break;
                    $var1_0 = $var1 + 1 | 0;
                    $this.$levels = $var1;
                    $var1 = $var1_0;
                }
            }
            if (!$this.$levels)
                $this.$isBeaconActive = 0;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId(var$1, $var4, $var2, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        if ($var6 != nms_Block_blockEmerald.$blockID && $var6 != nms_Block_blockGold.$blockID && $var6 != nms_Block_blockDiamond.$blockID && $var6 != nms_Block_blockIron.$blockID)
            $var3 = 0;
        else {
            $var5 = $var5 + 1 | 0;
            $var1_0 = $this.$zCoord0;
            $var1_0 = $var1_0 + $var1 | 0;
            $var1_0 = $rt_compare($var5, $var1_0);
            if ($var1_0 <= 0) {
                var$1 = $this.$worldObj2;
                continue main;
            }
        }
        d: {
            e: while (true) {
                $var4 = $var4 + 1 | 0;
                while (!($var4 <= ($this.$xCoord0 + $var1 | 0) && $var3)) {
                    if (!$var3)
                        break d;
                    $var1_0 = $var1 + 1 | 0;
                    $this.$levels = $var1;
                    $var1 = $var1_0;
                    if ($var1 > 4)
                        break d;
                    $var2 = $this.$yCoord0 - $var1 | 0;
                    if ($var2 < 0)
                        break e;
                    $var3 = 1;
                    $var4 = $this.$xCoord0 - $var1 | 0;
                }
                $var5 = $this.$zCoord0 - $var1 | 0;
                $var1_0 = $this.$zCoord0;
                $var1_0 = $var1_0 + $var1 | 0;
                $var1_0 = $rt_compare($var5, $var1_0);
                if ($var1_0 <= 0) {
                    var$1 = $this.$worldObj2;
                    continue main;
                }
            }
        }
        if (!$this.$levels)
            $this.$isBeaconActive = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var2, $var1, $var4, $var1_0, $var5, var$7, var$8, var$9, $var3, var$11, $var6, $ptr);
},
nms_TileEntityBeacon_setPrimaryEffect = ($this, $par1) => {
    let $var2, $var3, $var4, $var5;
    $this.$primaryEffect = 0;
    $var2 = 0;
    while ($var2 < $this.$levels && $var2 < 3) {
        nms_TileEntityBeacon_$callClinit();
        $var3 = nms_TileEntityBeacon_effectsList.data[$var2].data;
        $var4 = $var3.length;
        $var5 = 0;
        while ($var5 < $var4) {
            if ($var3[$var5].$id0 == $par1) {
                $this.$primaryEffect = $par1;
                return;
            }
            $var5 = $var5 + 1 | 0;
        }
        $var2 = $var2 + 1 | 0;
    }
},
nms_TileEntityBeacon_setSecondaryEffect = ($this, $par1) => {
    let $var2, $var3, $var4, $var5;
    a: {
        $this.$secondaryEffect = 0;
        if ($this.$levels >= 4) {
            $var2 = 0;
            while (true) {
                if ($var2 >= 4)
                    break a;
                nms_TileEntityBeacon_$callClinit();
                $var3 = nms_TileEntityBeacon_effectsList.data[$var2].data;
                $var4 = $var3.length;
                $var5 = 0;
                while ($var5 < $var4) {
                    if ($var3[$var5].$id0 == $par1) {
                        $this.$secondaryEffect = $par1;
                        return;
                    }
                    $var5 = $var5 + 1 | 0;
                }
                $var2 = $var2 + 1 | 0;
            }
        }
    }
},
nms_TileEntityBeacon_getDescriptionPacket = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    nms_TileEntityBeacon_writeToNBT($this, $var1);
    var$2 = new nms_Packet132TileEntityData;
    var$3 = $this.$xCoord0;
    var$6 = $this.$yCoord0;
    var$7 = $this.$zCoord0;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$2.$isChunkDataPacket = 1;
    var$2.$xPosition5 = var$3;
    var$2.$yPosition4 = var$6;
    var$2.$zPosition5 = var$7;
    var$2.$actionType = 3;
    var$2.$data12 = $var1;
    return var$2;
},
nms_TileEntityBeacon_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2420).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(2420).$nativeString.length)
                    break m;
                $rt_s(2420).$hashCode1 = (31 * $rt_s(2420).$hashCode1 | 0) + $rt_s(2420).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2420).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2420) !== var$6) {
                    if ($rt_s(2420) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2420).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2420) === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2420).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2420).$nativeString.length)
                            break o;
                        $rt_s(2420).$hashCode1 = (31 * $rt_s(2420).$hashCode1 | 0) + $rt_s(2420).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2420).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$7) {
                    p: {
                        var$2 = var$8.$key;
                        if ($rt_s(2420) !== var$2) {
                            if ($rt_s(2420) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2420).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$3 = (var$8 === null ? null : var$8.$value0).$data;
    }
    q: {
        $this.$primaryEffect = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2421).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2421).$nativeString.length)
                    break q;
                $rt_s(2421).$hashCode1 = (31 * $rt_s(2421).$hashCode1 | 0) + $rt_s(2421).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2421).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2421) !== var$6) {
                    if ($rt_s(2421) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2421).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2421) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2421).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2421).$nativeString.length)
                            break s;
                        $rt_s(2421).$hashCode1 = (31 * $rt_s(2421).$hashCode1 | 0) + $rt_s(2421).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2421).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    t: {
                        var$6 = var$2.$key;
                        if ($rt_s(2421) !== var$6) {
                            if ($rt_s(2421) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2421).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    u: {
        $this.$secondaryEffect = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2422).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2422).$nativeString.length)
                    break u;
                $rt_s(2422).$hashCode1 = (31 * $rt_s(2422).$hashCode1 | 0) + $rt_s(2422).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2422).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            v: {
                var$6 = var$2.$key;
                if ($rt_s(2422) !== var$6) {
                    if ($rt_s(2422) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2422).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2422) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            w: {
                if (!$rt_s(2422).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2422).$nativeString.length)
                            break w;
                        $rt_s(2422).$hashCode1 = (31 * $rt_s(2422).$hashCode1 | 0) + $rt_s(2422).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2422).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    x: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2422) !== var$2) {
                            if ($rt_s(2422) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2422).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break x;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$levels = var$3;
},
nms_TileEntityBeacon_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$primaryEffect;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2420);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2420), var$4);
    var$2 = $this.$secondaryEffect;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2421);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2421), var$4);
    var$2 = $this.$levels;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2422);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2422), $par1NBTTagCompound);
},
nms_TileEntityBeacon_getSizeInventory = $this => {
    return 1;
},
nms_TileEntityBeacon_getStackInSlot = ($this, $par1) => {
    return $par1 ? null : $this.$payment;
},
nms_TileEntityBeacon_decrStackSize = ($this, $par1, $par2) => {
    let $var3, var$4, var$5;
    if (!$par1) {
        $var3 = $this.$payment;
        if ($var3 !== null) {
            $par1 = $var3.$stackSize;
            if ($par2 >= $par1) {
                $this.$payment = null;
                return $var3;
            }
            $var3.$stackSize = $par1 - $par2 | 0;
            var$4 = new nms_ItemStack;
            $par1 = $var3.$itemID;
            var$5 = $var3.$itemDamage;
            nms_ItemStack_$callClinit();
            var$4.$itemID = $par1;
            var$4.$stackSize = $par2;
            var$4.$itemDamage = var$5;
            if (var$5 < 0)
                var$4.$itemDamage = 0;
            return var$4;
        }
    }
    return null;
},
nms_TileEntityBeacon_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    if (!$par1)
        $this.$payment = $par2ItemStack;
},
nms_TileEntityBeacon_getInventoryStackLimit = $this => {
    return 1;
},
nms_TileEntityBeacon_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityBeacon_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    $par1 = $par2ItemStack.$itemID;
    nms_Item_$callClinit();
    return $par1 != nms_Item_emerald.$itemID0 && $par1 != nms_Item_diamond.$itemID0 && $par1 != nms_Item_ingotGold.$itemID0 && $par1 != nms_Item_ingotIron.$itemID0 ? 0 : 1;
},
nms_TileEntityBeacon__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = $rt_createArray($rt_arraycls(nms_Potion), 4);
    var$2 = var$1.data;
    var$3 = $rt_createArray(nms_Potion, 2);
    var$4 = var$3.data;
    nms_Potion_$callClinit();
    var$4[0] = nms_Potion_moveSpeed;
    var$4[1] = nms_Potion_digSpeed;
    var$2[0] = var$3;
    var$3 = $rt_createArray(nms_Potion, 2);
    var$4 = var$3.data;
    var$4[0] = nms_Potion_resistance;
    var$4[1] = nms_Potion_jump;
    var$2[1] = var$3;
    var$3 = $rt_createArray(nms_Potion, 1);
    var$3.data[0] = nms_Potion_damageBoost;
    var$2[2] = var$3;
    var$4 = $rt_createArray(nms_Potion, 1);
    var$4.data[0] = nms_Potion_regeneration;
    var$2[3] = var$4;
    nms_TileEntityBeacon_effectsList = var$1;
};
function nms_TileEntitySkull() {
    let a = this; nms_TileEntity.call(a);
    a.$skullType = 0;
    a.$skullRotation = 0;
    a.$extraType = null;
}
let nms_TileEntitySkull__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$extraType = $rt_s(3);
},
nms_TileEntitySkull__init_0 = () => {
    let var_0 = new nms_TileEntitySkull();
    nms_TileEntitySkull__init_(var_0);
    return var_0;
},
nms_TileEntitySkull_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = ($this.$skullType & 255) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2423);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2423), var$4);
    var$2 = ($this.$skullRotation & 255) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2424);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2424), var$4);
    var$4 = $this.$extraType;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagString;
    $par1NBTTagCompound.$name = $rt_s(2425);
    $par1NBTTagCompound.$data1 = var$4;
    if (var$4 !== null) {
        ju_HashMap_putImpl(var$3, $rt_s(2425), $par1NBTTagCompound);
        return;
    }
    var$5 = new jl_IllegalArgumentException;
    var$5.$suppressionEnabled = 1;
    var$5.$writableStackTrace = 1;
    var$5.$message = $rt_s(177);
    $rt_throw(var$5);
},
nms_TileEntitySkull_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                var$3 = 1;
                            else if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2423).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(2423).$nativeString.length)
                    break m;
                $rt_s(2423).$hashCode1 = (31 * $rt_s(2423).$hashCode1 | 0) + $rt_s(2423).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2423).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2423) !== var$6) {
                    if ($rt_s(2423) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2423).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2423) === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2423).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2423).$nativeString.length)
                            break o;
                        $rt_s(2423).$hashCode1 = (31 * $rt_s(2423).$hashCode1 | 0) + $rt_s(2423).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2423).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$7) {
                    p: {
                        var$2 = var$8.$key;
                        if ($rt_s(2423) !== var$2) {
                            if ($rt_s(2423) === var$2)
                                var$3 = 1;
                            else if (var$2 instanceof jl_String) {
                                var$2 = var$2;
                                var$3 = $rt_s(2423).$nativeString !== var$2.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$3 = (var$8 === null ? null : var$8.$value0).$data0;
    } else
        var$3 = 0;
    q: {
        $this.$skullType = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2424).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2424).$nativeString.length)
                    break q;
                $rt_s(2424).$hashCode1 = (31 * $rt_s(2424).$hashCode1 | 0) + $rt_s(2424).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2424).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2424) !== var$6) {
                    if ($rt_s(2424) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2424).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2424) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2424).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2424).$nativeString.length)
                            break s;
                        $rt_s(2424).$hashCode1 = (31 * $rt_s(2424).$hashCode1 | 0) + $rt_s(2424).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2424).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    t: {
                        var$6 = var$2.$key;
                        if ($rt_s(2424) !== var$6) {
                            if ($rt_s(2424) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2424).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    u: {
        $this.$skullRotation = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2425).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2425).$nativeString.length)
                    break u;
                $rt_s(2425).$hashCode1 = (31 * $rt_s(2425).$hashCode1 | 0) + $rt_s(2425).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2425).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            v: {
                var$6 = var$2.$key;
                if ($rt_s(2425) !== var$6) {
                    if ($rt_s(2425) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2425).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        w: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2425).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2425).$nativeString.length)
                        break w;
                    $rt_s(2425).$hashCode1 = (31 * $rt_s(2425).$hashCode1 | 0) + $rt_s(2425).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2425).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                x: {
                    var$6 = var$2.$key;
                    if ($rt_s(2425) !== var$6) {
                        if ($rt_s(2425) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2425).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break x;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            $par1NBTTagCompound = $rt_s(3);
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2425) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                y: {
                    if (!$rt_s(2425).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2425).$nativeString.length)
                                break y;
                            $rt_s(2425).$hashCode1 = (31 * $rt_s(2425).$hashCode1 | 0) + $rt_s(2425).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2425).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$4) {
                        z: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2425) !== var$2) {
                                if ($rt_s(2425) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2425).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break z;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
        }
        $this.$extraType = $par1NBTTagCompound;
    }
},
nms_TileEntitySkull_getDescriptionPacket = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    nms_TileEntity_writeToNBT($this, $var1);
    var$3 = ($this.$skullType & 255) << 24 >> 24;
    var$6 = $var1.$tagMap;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2423);
    var$7.$data0 = var$3;
    ju_HashMap_putImpl(var$6, $rt_s(2423), var$7);
    var$3 = ($this.$skullRotation & 255) << 24 >> 24;
    var$6 = $var1.$tagMap;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2424);
    var$7.$data0 = var$3;
    ju_HashMap_putImpl(var$6, $rt_s(2424), var$7);
    var$7 = $this.$extraType;
    var$8 = $var1.$tagMap;
    var$6 = new nms_NBTTagString;
    var$6.$name = $rt_s(2425);
    var$6.$data1 = var$7;
    if (var$7 === null) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(177);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$8, $rt_s(2425), var$6);
    var$2 = new nms_Packet132TileEntityData;
    var$3 = $this.$xCoord0;
    var$9 = $this.$yCoord0;
    var$10 = $this.$zCoord0;
    nms_Packet_$callClinit();
    nles_SysUtil_$callClinit();
    var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
    var$2.$isChunkDataPacket = 1;
    var$2.$xPosition5 = var$3;
    var$2.$yPosition4 = var$9;
    var$2.$zPosition5 = var$10;
    var$2.$actionType = 4;
    var$2.$data12 = $var1;
    return var$2;
},
nms_TileEntityDaylightDetector = $rt_classWithoutFields(nms_TileEntity),
nms_TileEntityDaylightDetector__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityDaylightDetector__init_0 = () => {
    let var_0 = new nms_TileEntityDaylightDetector();
    nms_TileEntityDaylightDetector__init_(var_0);
    return var_0;
},
nms_TileEntityDaylightDetector_updateEntity = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj2;
        if (var$1 !== null && !var$1.$isRemote && Long_eq(Long_rem(var$1.$worldInfo.$getWorldTotalTime(), Long_fromInt(20)), Long_ZERO)) {
            if ($this.$blockType === null) {
                nms_Block_$callClinit();
                var$2 = nms_Block_blocksList.data;
                var$1 = $this.$worldObj2;
                var$3 = $this.$xCoord0;
                var$4 = $this.$yCoord0;
                var$5 = $this.$zCoord0;
                $ptr = 1;
                continue main;
            }
            var$1 = $this.$blockType;
            $this.$blockType = var$1;
            if (var$1 !== null && var$1 instanceof nms_BlockDaylightDetector) {
                var$1 = var$1;
                var$6 = $this.$worldObj2;
                var$3 = $this.$xCoord0;
                var$4 = $this.$yCoord0;
                var$5 = $this.$zCoord0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId(var$1, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $this.$blockType = var$2[var$3];
        var$1 = $this.$blockType;
        $this.$blockType = var$1;
        if (var$1 !== null && var$1 instanceof nms_BlockDaylightDetector) {
            var$1 = var$1;
            var$6 = $this.$worldObj2;
            var$3 = $this.$xCoord0;
            var$4 = $this.$yCoord0;
            var$5 = $this.$zCoord0;
            $ptr = 2;
            continue main;
        }
        return;
    case 2:
        nms_BlockDaylightDetector_updateLightLevel(var$1, var$6, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_Hopper = $rt_classWithoutFields(0);
function nms_TileEntityHopper() {
    let a = this; nms_TileEntity.call(a);
    a.$hopperItemStacks = null;
    a.$inventoryName = null;
    a.$transferCooldown = 0;
}
let nms_TileEntityHopper__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
    $this.$hopperItemStacks = $rt_createArray(nms_ItemStack, 5);
    $this.$transferCooldown = (-1);
},
nms_TileEntityHopper__init_0 = () => {
    let var_0 = new nms_TileEntityHopper();
    nms_TileEntityHopper__init_(var_0);
    return var_0;
},
nms_TileEntityHopper_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $var3, $var5, var$5, var$6, var$7, $var2, $var4, var$10, var$11;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var5) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break b;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var5) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                $var3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$6 = var$6;
                                $var3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break d;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = $var3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var5) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) === var$6)
                        $var3 = 1;
                    else if (var$6 instanceof jl_String) {
                        var$6 = var$6;
                        $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                    } else
                        $var3 = 0;
                    if (!$var3) {
                        $var3 = 0;
                        break f;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) !== null) {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var5) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    $var3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break h;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = $var3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var5) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) !== var$6) {
                        if (!(var$6 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$6 = var$6;
                            $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                    } else
                        $var3 = 1;
                    if (!$var3) {
                        $var3 = 0;
                        break j;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) !== null) {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var5) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    $var3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break l;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = $var3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2241).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2241).$nativeString.length)
                    break m;
                $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(2241).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[$var3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2241) !== var$6) {
                    if ($rt_s(2241) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2241) !== null)
            $var2.$name = $rt_s(2241);
        else
            $var2.$name = $rt_s(3);
        $var4 = new ju_ArrayList;
        $var4.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $var4;
    } else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2241) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2241).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2241).$nativeString.length)
                            break o;
                        $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2241).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[$var3 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var3) {
                    p: {
                        var$6 = var$2.$key;
                        if ($rt_s(2241) !== var$6) {
                            if ($rt_s(2241) === var$6)
                                var$7 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$6 = var$6;
                                var$7 = $rt_s(2241).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break p;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var2 = var$2 === null ? null : var$2.$value0;
    }
    q: {
        $this.$hopperItemStacks = $rt_createArray(nms_ItemStack, $this.$hopperItemStacks.data.length);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1994).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(1994).$nativeString.length)
                    break q;
                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(1994).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$10 = var$5[$var3 & (var$5.length - 1 | 0)];
    while (var$10 !== null) {
        if (var$10.$origKeyHash == $var3) {
            r: {
                var$2 = var$10.$key;
                if ($rt_s(1994) !== var$2) {
                    if ($rt_s(1994) !== var$2) {
                        if (!(var$2 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$2;
                            var$7 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break r;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$10 = var$10.$next3;
    }
    if (var$10 === null ? 0 : 1) {
        s: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(1994).$nativeString.length)
                        break s;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        $var5 = $rt_s(1994).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == $var5) {
                t: {
                    var$6 = var$2.$key;
                    if ($rt_s(1994) !== var$6) {
                        if ($rt_s(1994) === var$6)
                            $var3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$6 = var$6;
                            $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break t;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1994) !== null) {
                u: {
                    if (!$rt_s(1994).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1994).$nativeString.length)
                                break u;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var5 = $rt_s(1994).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var5) {
                        v: {
                            var$6 = var$2.$key;
                            if ($rt_s(1994) !== var$6) {
                                if ($rt_s(1994) === var$6)
                                    $var3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$6 = var$6;
                                    $var3 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break v;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            $var4 = (var$2 === null ? null : var$2.$value0).$data1;
        } else
            $var4 = $rt_s(3);
        $this.$inventoryName = $var4;
    }
    w: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2426).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2426).$nativeString.length)
                    break w;
                $rt_s(2426).$hashCode1 = (31 * $rt_s(2426).$hashCode1 | 0) + $rt_s(2426).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(2426).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[$var5 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var5) {
            x: {
                var$6 = var$2.$key;
                if ($rt_s(2426) !== var$6) {
                    if ($rt_s(2426) === var$6)
                        $var3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        $var3 = 0;
                    else {
                        var$6 = var$6;
                        $var3 = $rt_s(2426).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!$var3) {
                        $var3 = 0;
                        break x;
                    }
                }
                $var3 = 1;
            }
            if ($var3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2426) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            y: {
                if (!$rt_s(2426).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2426).$nativeString.length)
                            break y;
                        $rt_s(2426).$hashCode1 = (31 * $rt_s(2426).$hashCode1 | 0) + $rt_s(2426).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(2426).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == $var5) {
                    z: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2426) !== var$2) {
                            if ($rt_s(2426) === var$2)
                                $var3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$2 = var$2;
                                $var3 = $rt_s(2426).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break z;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        $var3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$transferCooldown = $var3;
    $var3 = 0;
    ba: {
        while (true) {
            $par1NBTTagCompound = $var2.$tagList;
            var$7 = $rt_compare($var3, $par1NBTTagCompound.$size0);
            if (var$7 >= 0)
                break;
            if ($var3 < 0)
                break ba;
            if (var$7 >= 0)
                break ba;
            bb: {
                $var4 = $par1NBTTagCompound.$array.data[$var3];
                var$2 = $var4.$tagMap;
                if (!$rt_s(2022).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(2022).$nativeString.length)
                            break bb;
                        $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(2022).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$11 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$11) {
                    bc: {
                        var$6 = var$2.$key;
                        if ($rt_s(2022) !== var$6) {
                            if ($rt_s(2022) === var$6)
                                var$7 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$6 = var$6;
                                var$7 = $rt_s(2022).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break bc;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                $var5 = 0;
            else {
                var$2 = $var4.$tagMap;
                if ($rt_s(2022) === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    bd: {
                        if (!$rt_s(2022).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(2022).$nativeString.length)
                                    break bd;
                                $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(2022).$hashCode1;
                    var$5 = var$2.$elementData.data;
                    var$2 = var$5[var$11 & (var$5.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$11) {
                            be: {
                                var$6 = var$2.$key;
                                if ($rt_s(2022) !== var$6) {
                                    if ($rt_s(2022) === var$6)
                                        var$7 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$7 = $rt_s(2022).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break be;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                $var5 = (var$2 === null ? null : var$2.$value0).$data0;
            }
            if ($var5 >= 0) {
                var$5 = $this.$hopperItemStacks.data;
                if ($var5 < var$5.length) {
                    nms_ItemStack_$callClinit();
                    $par1NBTTagCompound = new nms_ItemStack;
                    nms_ItemStack_readFromNBT($par1NBTTagCompound, $var4);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[$par1NBTTagCompound.$itemID] === null)
                        $par1NBTTagCompound = null;
                    var$5[$var5] = $par1NBTTagCompound;
                }
            }
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_TileEntityHopper_writeToNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, $var3, var$5, $var4, var$7, var$8, var$9, var$10, var$11;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$3;
    $var3 = 0;
    while (true) {
        var$5 = $this.$hopperItemStacks.data;
        if ($var3 >= var$5.length)
            break;
        if (var$5[$var3] !== null) {
            $var4 = new nms_NBTTagCompound;
            $var4.$name = $rt_s(3);
            var$7 = new ju_HashMap;
            var$8 = ju_HashMap_calculateCapacity(16);
            var$7.$elementCount = 0;
            var$5 = $rt_createArray(ju_HashMap$HashEntry, var$8);
            var$9 = var$5.data;
            var$7.$elementData = var$5;
            var$7.$loadFactor = 0.75;
            var$7.$threshold = var$9.length * 0.75 | 0;
            $var4.$tagMap = var$7;
            var$8 = $var3 << 24 >> 24;
            var$3 = new nms_NBTTagByte;
            var$3.$name = $rt_s(2022);
            var$3.$data0 = var$8;
            ju_HashMap_putImpl(var$7, $rt_s(2022), var$3);
            var$10 = $this.$hopperItemStacks.data[$var3];
            var$8 = var$10.$itemID << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagShort;
            var$7.$name = $rt_s(914);
            var$7.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(914), var$7);
            var$8 = var$10.$stackSize << 24 >> 24;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagByte;
            var$7.$name = $rt_s(915);
            var$7.$data0 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(915), var$7);
            var$8 = var$10.$itemDamage << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$7 = new nms_NBTTagShort;
            var$7.$name = $rt_s(916);
            var$7.$data2 = var$8;
            ju_HashMap_putImpl(var$11, $rt_s(916), var$7);
            var$3 = var$10.$stackTagCompound;
            if (var$3 !== null) {
                var$11 = $var4.$tagMap;
                var$3.$name = $rt_s(917);
                ju_HashMap_putImpl(var$11, $rt_s(917), var$3);
            }
            $var2.$tagType = 10;
            var$3 = $var2.$tagList;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$5 = var$3.$array.data;
            var$8 = var$3.$size0;
            var$3.$size0 = var$8 + 1 | 0;
            var$5[var$8] = $var4;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    var$7 = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2241);
    ju_HashMap_putImpl(var$7, $rt_s(2241), $var2);
    var$8 = $this.$transferCooldown;
    var$7 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagInt;
    var$3.$name = $rt_s(2426);
    var$3.$data = var$8;
    ju_HashMap_putImpl(var$7, $rt_s(2426), var$3);
    $var2 = $this.$inventoryName;
    if ($var2 !== null && $var2.$nativeString.length > 0 ? 1 : 0) {
        var$3 = $this.$inventoryName;
        var$7 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$3;
        if (var$3 === null) {
            $var2 = new jl_IllegalArgumentException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            $var2.$message = $rt_s(177);
            $rt_throw($var2);
        }
        ju_HashMap_putImpl(var$7, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_TileEntityHopper_onInventoryChanged = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_TileEntityHopper_getSizeInventory = $this => {
    return $this.$hopperItemStacks.data.length;
},
nms_TileEntityHopper_getStackInSlot = ($this, $par1) => {
    return $this.$hopperItemStacks.data[$par1];
},
nms_TileEntityHopper_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, $var3_0, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    var$3 = $this.$hopperItemStacks.data;
    if (var$3[$par1] === null)
        return null;
    if (var$3[$par1].$stackSize <= $par2) {
        $var3 = var$3[$par1];
        var$3[$par1] = null;
        return $var3;
    }
    var$5 = var$3[$par1];
    $var3_0 = new nms_ItemStack;
    var$7 = var$5.$itemID;
    var$8 = var$5.$itemDamage;
    nms_ItemStack_$callClinit();
    $var3_0.$itemID = var$7;
    $var3_0.$stackSize = $par2;
    $var3_0.$itemDamage = var$8;
    if (var$8 < 0)
        $var3_0.$itemDamage = 0;
    var$9 = var$5.$stackTagCompound;
    if (var$9 !== null) {
        var$10 = new nms_NBTTagCompound;
        $var3 = var$9.$name;
        if ($var3 === null)
            $var3 = $rt_s(3);
        var$10.$name = $var3;
        $var3 = new ju_HashMap;
        var$8 = ju_HashMap_calculateCapacity(16);
        $var3.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, var$8);
        var$3 = var$11.data;
        $var3.$elementData = var$11;
        $var3.$loadFactor = 0.75;
        $var3.$threshold = var$3.length * 0.75 | 0;
        var$10.$tagMap = $var3;
        $var3 = var$9.$tagMap;
        if ($var3.$cachedKeySet === null) {
            var$12 = new ju_HashMap$1;
            var$12.$this$0 = $var3;
            $var3.$cachedKeySet = var$12;
        }
        $var3 = $var3.$cachedKeySet.$iterator();
        while ($var3.$hasNext()) {
            var$12 = $var3.$next();
            var$13 = var$9.$tagMap;
            if (var$12 === null) {
                var$13 = var$13.$elementData.data[0];
                while (var$13 !== null && var$13.$key !== null) {
                    var$13 = var$13.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = var$12.$hashCode1;
                var$3 = var$13.$elementData.data;
                var$13 = var$3[var$14 & (var$3.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$14) {
                        b: {
                            var$15 = var$13.$key;
                            if (var$12 !== var$15) {
                                if (var$12 === var$15)
                                    var$8 = 1;
                                else if (!(var$15 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$15 = var$15;
                                    var$8 = var$12.$nativeString !== var$15.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break b;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
            }
            var$13 = var$13 === null ? null : var$13.$value0;
            var$13 = var$13.$copy();
            var$15 = var$10.$tagMap;
            if (var$12 !== null)
                var$13.$name = var$12;
            else
                var$13.$name = $rt_s(3);
            ju_HashMap_putImpl(var$15, var$12, var$13);
        }
        $var3_0.$stackTagCompound = var$10;
    }
    var$5.$stackSize = var$5.$stackSize - $par2 | 0;
    var$3 = $this.$hopperItemStacks.data;
    if (!var$3[$par1].$stackSize)
        var$3[$par1] = null;
    return $var3_0;
},
nms_TileEntityHopper_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    $this.$hopperItemStacks.data[$par1] = $par2ItemStack;
    if ($par2ItemStack !== null && $par2ItemStack.$stackSize > 64)
        $par2ItemStack.$stackSize = 64;
},
nms_TileEntityHopper_getInventoryStackLimit = $this => {
    return 64;
},
nms_TileEntityHopper_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj2;
        var$3 = $this.$xCoord0;
        var$4 = $this.$yCoord0;
        var$5 = $this.$zCoord0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== $this)
            var$3 = 0;
        else {
            var$6 = $this.$xCoord0 + 0.5;
            var$7 = $this.$yCoord0 + 0.5;
            var$8 = $this.$zCoord0 + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_TileEntityHopper_openChest = $this => {
    return;
},
nms_TileEntityHopper_closeChest = $this => {
    return;
},
nms_TileEntityHopper_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    return 1;
},
nms_TileEntityHopper_updateEntity = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj2;
        if (var$1 !== null && !var$1.$isRemote) {
            var$2 = $this.$transferCooldown - 1 | 0;
            $this.$transferCooldown = var$2;
            if (!(var$2 <= 0 ? 0 : 1)) {
                $this.$transferCooldown = 0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_TileEntityHopper_updateHopper($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_TileEntityHopper_updateHopper = $this => {
    let var$1, $var1, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj2;
        if (var$1 !== null && !var$1.$isRemote) {
            if (!($this.$transferCooldown <= 0 ? 0 : 1)) {
                if ($this.$blockMetadata == (-1)) {
                    $var1 = $this.$xCoord0;
                    var$3 = $this.$yCoord0;
                    var$4 = $this.$zCoord0;
                    $ptr = 1;
                    continue main;
                }
                if (($this.$blockMetadata & 8) == 8 ? 0 : 1) {
                    $ptr = 2;
                    continue main;
                }
            }
            return 0;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockMetadata(var$1, $var1, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $this.$blockMetadata = $var1;
        if (!(($this.$blockMetadata & 8) == 8 ? 0 : 1))
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_TileEntityHopper_insertItemToInventory($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $ptr = 3;
    case 3:
        $tmp = nms_TileEntityHopper_suckItemsIntoHopper($this);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!(!var$3 && !$var1 ? 0 : 1))
            return 0;
        $this.$transferCooldown = 8;
        $ptr = 4;
    case 4:
        nms_TileEntity_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, $ptr);
},
nms_TileEntityHopper_insertItemToInventory = $this => {
    let $var1, $var2, var$3, var$4, var$5, $var4, $var3, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_TileEntityHopper_getOutputInventory($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        $var2 = 0;
        var$3 = 64;
        var$4 = 64;
        while (true) {
            var$5 = $this.$hopperItemStacks.data;
            if ($var2 >= var$5.length)
                break;
            if (var$5[$var2] !== null) {
                $var4 = var$5[$var2];
                $var3 = new nms_ItemStack;
                var$8 = $var4.$itemID;
                var$9 = $var4.$stackSize;
                var$10 = $var4.$itemDamage;
                nms_ItemStack_$callClinit();
                $var3.$itemID = var$8;
                $var3.$stackSize = var$9;
                $var3.$itemDamage = var$10;
                if (var$10 < 0)
                    $var3.$itemDamage = 0;
                var$11 = $var4.$stackTagCompound;
                if (var$11 !== null) {
                    var$12 = new nms_NBTTagCompound;
                    $var4 = var$11.$name;
                    if ($var4 === null)
                        $var4 = $rt_s(3);
                    var$12.$name = $var4;
                    $var4 = new ju_HashMap;
                    var$8 = ju_HashMap_calculateCapacity(16);
                    $var4.$elementCount = 0;
                    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                    var$13 = var$5.data;
                    $var4.$elementData = var$5;
                    $var4.$loadFactor = 0.75;
                    $var4.$threshold = var$13.length * 0.75 | 0;
                    var$12.$tagMap = $var4;
                    $var4 = var$11.$tagMap;
                    if ($var4.$cachedKeySet === null) {
                        var$14 = new ju_HashMap$1;
                        var$14.$this$0 = $var4;
                        $var4.$cachedKeySet = var$14;
                    }
                    var$15 = $var4.$cachedKeySet.$iterator();
                    while (var$15.$hasNext()) {
                        var$16 = var$15.$next();
                        $var4 = var$11.$tagMap;
                        if (var$16 === null) {
                            var$17 = $var4.$elementData.data[0];
                            while (var$17 !== null && var$17.$key !== null) {
                                var$17 = var$17.$next3;
                            }
                        } else {
                            a: {
                                if (!var$16.$hashCode1) {
                                    var$8 = 0;
                                    while (true) {
                                        if (var$8 >= var$16.$nativeString.length)
                                            break a;
                                        var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt(var$8) | 0;
                                        var$8 = var$8 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = var$16.$hashCode1;
                            var$5 = $var4.$elementData.data;
                            var$17 = var$5[var$9 & (var$5.length - 1 | 0)];
                            while (var$17 !== null) {
                                if (var$17.$origKeyHash == var$9) {
                                    b: {
                                        $var4 = var$17.$key;
                                        if (var$16 !== $var4) {
                                            if (var$16 === $var4)
                                                var$8 = 1;
                                            else if (!($var4 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                $var4 = $var4;
                                                var$8 = var$16.$nativeString !== $var4.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break b;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                var$17 = var$17.$next3;
                            }
                        }
                        $var4 = var$17 === null ? null : var$17.$value0;
                        $var4 = $var4.$copy();
                        var$14 = var$12.$tagMap;
                        if (var$16 !== null)
                            $var4.$name = var$16;
                        else
                            $var4.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$14, var$16, $var4);
                    }
                    $var3.$stackTagCompound = var$12;
                }
                var$8 = 1;
                $ptr = 2;
                continue main;
            }
            $var2 = $var2 + 1 | 0;
        }
        return 0;
    case 2:
        $tmp = nms_TileEntityHopper_decrStackSize($this, $var2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $tmp;
        var$5 = nms_Facing_oppositeSide;
        if ($this.$blockMetadata == (-1)) {
            $var4 = $this.$worldObj2;
            var$8 = $this.$xCoord0;
            var$9 = $this.$yCoord0;
            var$10 = $this.$zCoord0;
            $ptr = 4;
            continue main;
        }
        var$8 = var$5.data[$this.$blockMetadata & 7];
        $ptr = 3;
    case 3:
        $tmp = nms_TileEntityHopper_insertStack($var1, var$14, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 !== null && $var4.$stackSize) {
            $this.$hopperItemStacks.data[$var2] = $var3;
            if ($var3.$stackSize > var$3)
                $var3.$stackSize = var$4;
            while (true) {
                $var2 = $var2 + 1 | 0;
                var$5 = $this.$hopperItemStacks.data;
                if ($var2 >= var$5.length)
                    break;
                if (var$5[$var2] === null)
                    continue;
                else {
                    $var4 = var$5[$var2];
                    $var3 = new nms_ItemStack;
                    var$8 = $var4.$itemID;
                    var$9 = $var4.$stackSize;
                    var$10 = $var4.$itemDamage;
                    nms_ItemStack_$callClinit();
                    $var3.$itemID = var$8;
                    $var3.$stackSize = var$9;
                    $var3.$itemDamage = var$10;
                    if (var$10 < 0)
                        $var3.$itemDamage = 0;
                    var$11 = $var4.$stackTagCompound;
                    if (var$11 !== null) {
                        var$12 = new nms_NBTTagCompound;
                        $var4 = var$11.$name;
                        if ($var4 === null)
                            $var4 = $rt_s(3);
                        var$12.$name = $var4;
                        $var4 = new ju_HashMap;
                        var$8 = ju_HashMap_calculateCapacity(16);
                        $var4.$elementCount = 0;
                        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                        var$13 = var$5.data;
                        $var4.$elementData = var$5;
                        $var4.$loadFactor = 0.75;
                        $var4.$threshold = var$13.length * 0.75 | 0;
                        var$12.$tagMap = $var4;
                        $var4 = var$11.$tagMap;
                        if ($var4.$cachedKeySet === null) {
                            var$14 = new ju_HashMap$1;
                            var$14.$this$0 = $var4;
                            $var4.$cachedKeySet = var$14;
                        }
                        var$15 = $var4.$cachedKeySet.$iterator();
                        while (var$15.$hasNext()) {
                            var$16 = var$15.$next();
                            $var4 = var$11.$tagMap;
                            if (var$16 === null) {
                                var$17 = $var4.$elementData.data[0];
                                while (var$17 !== null && var$17.$key !== null) {
                                    var$17 = var$17.$next3;
                                }
                            } else {
                                c: {
                                    if (!var$16.$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= var$16.$nativeString.length)
                                                break c;
                                            var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$9 = var$16.$hashCode1;
                                var$5 = $var4.$elementData.data;
                                var$17 = var$5[var$9 & (var$5.length - 1 | 0)];
                                while (var$17 !== null) {
                                    if (var$17.$origKeyHash == var$9) {
                                        d: {
                                            $var4 = var$17.$key;
                                            if (var$16 !== $var4) {
                                                if (var$16 === $var4)
                                                    var$8 = 1;
                                                else if (!($var4 instanceof jl_String))
                                                    var$8 = 0;
                                                else {
                                                    $var4 = $var4;
                                                    var$8 = var$16.$nativeString !== $var4.$nativeString ? 0 : 1;
                                                }
                                                if (!var$8) {
                                                    var$8 = 0;
                                                    break d;
                                                }
                                            }
                                            var$8 = 1;
                                        }
                                        if (var$8)
                                            break;
                                    }
                                    var$17 = var$17.$next3;
                                }
                            }
                            $var4 = var$17 === null ? null : var$17.$value0;
                            $var4 = $var4.$copy();
                            var$14 = var$12.$tagMap;
                            if (var$16 !== null)
                                $var4.$name = var$16;
                            else
                                $var4.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$14, var$16, $var4);
                        }
                        $var3.$stackTagCompound = var$12;
                    }
                    var$8 = 1;
                    $ptr = 2;
                    continue main;
                }
            }
            return 0;
        }
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getBlockMetadata($var4, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $this.$blockMetadata = var$8;
        var$8 = var$5.data[$this.$blockMetadata & 7];
        $ptr = 3;
        continue main;
    case 5:
        $var1.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, var$3, var$4, var$5, $var4, $var3, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_TileEntityHopper_suckItemsIntoHopper = $par0Hopper => {
    let $var7, var$3, var$4, var$5, $var1, var$7, var$8, var$9, var$10, var$11, $var2, var$13, $var3, var$15, var$16, $var8, $var4, var$19, $var6, var$21, $var5, var$23, var$24, var$25, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var5 = $thread.pop();var$21 = $thread.pop();$var6 = $thread.pop();var$19 = $thread.pop();$var4 = $thread.pop();$var8 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var3 = $thread.pop();var$13 = $thread.pop();$var2 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();var$5
        = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var7 = $thread.pop();$par0Hopper = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $par0Hopper.$getWorldObj();
        var$3 = $par0Hopper.$getXPos();
        var$4 = $par0Hopper.$getYPos() + 1.0;
        var$5 = $par0Hopper.$getZPos();
        $ptr = 1;
    case 1:
        $tmp = nms_TileEntityHopper_getInventoryAtLocation($var7, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null) {
            $var7 = $par0Hopper.$getWorldObj();
            var$3 = $par0Hopper.$getXPos();
            var$4 = $par0Hopper.$getYPos() + 1.0;
            var$5 = $par0Hopper.$getZPos();
            var$7 = $rt_cls(nms_EntityItem);
            var$8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$9 = var$3 + 1.0;
            var$10 = var$4 + 1.0;
            var$11 = var$5 + 1.0;
            $var2 = var$8.$nextPoolIndex;
            var$13 = var$8.$listAABB;
            $var3 = var$13.$size0;
            var$15 = $rt_compare($var2, $var3);
            if (var$15 >= 0) {
                var$16 = new nms_AxisAlignedBB;
                var$16.$minX0 = var$3;
                var$16.$minY0 = var$4;
                var$16.$minZ0 = var$5;
                var$16.$maxX0 = var$9;
                var$16.$maxY = var$10;
                var$16.$maxZ0 = var$11;
                ju_ArrayList_ensureCapacity(var$13, $var3 + 1 | 0);
                $var8 = var$13.$array.data;
                var$15 = var$13.$size0;
                var$13.$size0 = var$15 + 1 | 0;
                $var8[var$15] = var$16;
                var$13.$modCount = var$13.$modCount + 1 | 0;
            } else if ($var2 >= 0 && var$15 < 0) {
                var$16 = var$13.$array.data[$var2];
                var$16.$minX0 = var$3;
                var$16.$minY0 = var$4;
                var$16.$minZ0 = var$5;
                var$16.$maxX0 = var$9;
                var$16.$maxY = var$10;
                var$16.$maxZ0 = var$11;
            } else {
                $par0Hopper = new jl_IndexOutOfBoundsException;
                $par0Hopper.$suppressionEnabled = 1;
                $par0Hopper.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0Hopper);
                $rt_throw($par0Hopper);
            }
            var$8.$nextPoolIndex = var$8.$nextPoolIndex + 1 | 0;
            var$13 = nms_IEntitySelector_selectAnything;
            $ptr = 2;
            continue main;
        }
        a: {
            $var2 = 0;
            var$15 = $rt_isInstance($var1, nms_ISidedInventory);
            if (!var$15) {
                $var3 = $var1.$getSizeInventory();
                $var4 = 0;
                var$19 = $var1;
                while (true) {
                    if ($var4 >= $var3)
                        break a;
                    $var7 = $var1.$getStackInSlot($var4);
                    if ($var7 !== null && (var$15 && !var$19.$canExtractItem($var4, $var7, $var2) ? 0 : 1)) {
                        $var6 = new nms_ItemStack;
                        var$21 = $var7.$itemID;
                        $var5 = $var7.$stackSize;
                        var$23 = $var7.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var6.$itemID = var$21;
                        $var6.$stackSize = $var5;
                        $var6.$itemDamage = var$23;
                        if (var$23 < 0)
                            $var6.$itemDamage = 0;
                        $var7 = $var7.$stackTagCompound;
                        if ($var7 !== null) {
                            var$7 = new nms_NBTTagCompound;
                            var$13 = $var7.$name;
                            if (var$13 === null)
                                var$13 = $rt_s(3);
                            var$7.$name = var$13;
                            var$13 = new ju_HashMap;
                            jl_Object__init_(var$13);
                            $var5 = ju_HashMap_calculateCapacity(16);
                            var$13.$elementCount = 0;
                            var$24 = $rt_createArray(ju_HashMap$HashEntry, $var5);
                            $var8 = var$24.data;
                            var$13.$elementData = var$24;
                            var$13.$loadFactor = 0.75;
                            var$13.$threshold = $var8.length * 0.75 | 0;
                            var$7.$tagMap = var$13;
                            var$13 = $var7.$tagMap;
                            if (var$13.$cachedKeySet === null) {
                                var$16 = new ju_HashMap$1;
                                var$16.$this$0 = var$13;
                                var$13.$cachedKeySet = var$16;
                            }
                            var$13 = var$13.$cachedKeySet.$iterator();
                            while (var$13.$hasNext()) {
                                var$16 = var$13.$next();
                                var$8 = $var7.$tagMap;
                                if (var$16 === null) {
                                    var$8 = var$8.$elementData.data[0];
                                    while (var$8 !== null && var$8.$key !== null) {
                                        var$8 = var$8.$next3;
                                    }
                                } else {
                                    b: {
                                        if (!var$16.$hashCode1) {
                                            $var5 = 0;
                                            while (true) {
                                                if ($var5 >= var$16.$nativeString.length)
                                                    break b;
                                                var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt($var5) | 0;
                                                $var5 = $var5 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$21 = var$16.$hashCode1;
                                    $var8 = var$8.$elementData.data;
                                    var$8 = $var8[var$21 & ($var8.length - 1 | 0)];
                                    while (var$8 !== null) {
                                        if (var$8.$origKeyHash == var$21) {
                                            c: {
                                                var$25 = var$8.$key;
                                                if (var$16 !== var$25) {
                                                    if (var$16 === var$25)
                                                        $var5 = 1;
                                                    else if (!(var$25 instanceof jl_String))
                                                        $var5 = 0;
                                                    else {
                                                        var$25 = var$25;
                                                        $var5 = var$16.$nativeString !== var$25.$nativeString ? 0 : 1;
                                                    }
                                                    if (!$var5) {
                                                        $var5 = 0;
                                                        break c;
                                                    }
                                                }
                                                $var5 = 1;
                                            }
                                            if ($var5)
                                                break;
                                        }
                                        var$8 = var$8.$next3;
                                    }
                                }
                                var$8 = var$8 === null ? null : var$8.$value0;
                                var$8 = var$8.$copy();
                                var$25 = var$7.$tagMap;
                                if (var$16 !== null)
                                    var$8.$name = var$16;
                                else
                                    var$8.$name = $rt_s(3);
                                ju_HashMap_putImpl(var$25, var$16, var$8);
                            }
                            $var6.$stackTagCompound = var$7;
                        }
                        $var5 = 1;
                        $ptr = 4;
                        continue main;
                    }
                    if (0)
                        break;
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            $var7 = $var1;
            $var8 = $var7.$getAccessibleSlotsFromSide($var2);
            $var5 = 0;
            while (true) {
                var$24 = $var8.data;
                if ($var5 >= var$24.length)
                    break a;
                $var3 = var$24[$var5];
                var$7 = $var1.$getStackInSlot($var3);
                if (var$7 !== null && (var$15 && !$var7.$canExtractItem($var3, var$7, $var2) ? 0 : 1)) {
                    var$13 = new nms_ItemStack;
                    var$23 = var$7.$itemID;
                    var$21 = var$7.$stackSize;
                    $var4 = var$7.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$13.$itemID = var$23;
                    var$13.$stackSize = var$21;
                    var$13.$itemDamage = $var4;
                    if ($var4 < 0)
                        var$13.$itemDamage = 0;
                    var$7 = var$7.$stackTagCompound;
                    if (var$7 !== null) {
                        var$16 = new nms_NBTTagCompound;
                        var$8 = var$7.$name;
                        if (var$8 === null)
                            var$8 = $rt_s(3);
                        var$16.$name = var$8;
                        var$8 = new ju_HashMap;
                        jl_Object__init_(var$8);
                        var$23 = ju_HashMap_calculateCapacity(16);
                        var$8.$elementCount = 0;
                        var$26 = $rt_createArray(ju_HashMap$HashEntry, var$23);
                        var$24 = var$26.data;
                        var$8.$elementData = var$26;
                        var$8.$loadFactor = 0.75;
                        var$8.$threshold = var$24.length * 0.75 | 0;
                        var$16.$tagMap = var$8;
                        var$8 = var$7.$tagMap;
                        if (var$8.$cachedKeySet === null) {
                            var$25 = new ju_HashMap$1;
                            var$25.$this$0 = var$8;
                            var$8.$cachedKeySet = var$25;
                        }
                        var$8 = var$8.$cachedKeySet.$iterator();
                        while (var$8.$hasNext()) {
                            var$25 = var$8.$next();
                            var$27 = var$7.$tagMap;
                            if (var$25 === null) {
                                $var6 = var$27.$elementData.data[0];
                                while ($var6 !== null && $var6.$key !== null) {
                                    $var6 = $var6.$next3;
                                }
                            } else {
                                d: {
                                    if (!var$25.$hashCode1) {
                                        var$23 = 0;
                                        while (true) {
                                            if (var$23 >= var$25.$nativeString.length)
                                                break d;
                                            var$25.$hashCode1 = (31 * var$25.$hashCode1 | 0) + var$25.$nativeString.charCodeAt(var$23) | 0;
                                            var$23 = var$23 + 1 | 0;
                                        }
                                    }
                                }
                                var$21 = var$25.$hashCode1;
                                var$24 = var$27.$elementData.data;
                                $var6 = var$24[var$21 & (var$24.length - 1 | 0)];
                                while ($var6 !== null) {
                                    if ($var6.$origKeyHash == var$21) {
                                        e: {
                                            var$27 = $var6.$key;
                                            if (var$25 !== var$27) {
                                                if (var$25 === var$27)
                                                    var$23 = 1;
                                                else if (!(var$27 instanceof jl_String))
                                                    var$23 = 0;
                                                else {
                                                    var$27 = var$27;
                                                    var$23 = var$25.$nativeString !== var$27.$nativeString ? 0 : 1;
                                                }
                                                if (!var$23) {
                                                    var$23 = 0;
                                                    break e;
                                                }
                                            }
                                            var$23 = 1;
                                        }
                                        if (var$23)
                                            break;
                                    }
                                    $var6 = $var6.$next3;
                                }
                            }
                            var$27 = $var6 === null ? null : $var6.$value0;
                            var$27 = var$27.$copy();
                            var$19 = var$16.$tagMap;
                            if (var$25 !== null)
                                var$27.$name = var$25;
                            else
                                var$27.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$19, var$25, var$27);
                        }
                        var$13.$stackTagCompound = var$16;
                    }
                    var$23 = 1;
                    $ptr = 6;
                    continue main;
                }
                if (0)
                    break;
                $var5 = $var5 + 1 | 0;
            }
            return 1;
        }
        return 0;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var7, var$7, var$16, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        var$15 = $var7.$size0;
        if (var$15 <= 0)
            $var6 = null;
        else {
            if (0 >= var$15) {
                $par0Hopper = new jl_IndexOutOfBoundsException;
                $par0Hopper.$suppressionEnabled = 1;
                $par0Hopper.$writableStackTrace = 1;
                $rt_throw($par0Hopper);
            }
            $var6 = $var7.$array.data[0];
        }
        if ($var6 === null)
            return 0;
        $var2 = 0;
        $var7 = nms_EntityItem_getEntityItem($var6);
        var$7 = new nms_ItemStack;
        var$15 = $var7.$itemID;
        $var3 = $var7.$stackSize;
        $var5 = $var7.$itemDamage;
        nms_ItemStack_$callClinit();
        var$7.$itemID = var$15;
        var$7.$stackSize = $var3;
        var$7.$itemDamage = $var5;
        if ($var5 < 0)
            var$7.$itemDamage = 0;
        $var7 = $var7.$stackTagCompound;
        if ($var7 !== null) {
            var$13 = new nms_NBTTagCompound;
            var$16 = $var7.$name;
            if (var$16 === null)
                var$16 = $rt_s(3);
            var$13.$name = var$16;
            var$16 = new ju_HashMap;
            jl_Object__init_(var$16);
            var$15 = ju_HashMap_calculateCapacity(16);
            var$16.$elementCount = 0;
            var$24 = $rt_createArray(ju_HashMap$HashEntry, var$15);
            $var8 = var$24.data;
            var$16.$elementData = var$24;
            var$16.$loadFactor = 0.75;
            var$16.$threshold = $var8.length * 0.75 | 0;
            var$13.$tagMap = var$16;
            var$16 = $var7.$tagMap;
            if (var$16.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = var$16;
                var$16.$cachedKeySet = var$8;
            }
            var$16 = var$16.$cachedKeySet.$iterator();
            while (var$16.$hasNext()) {
                var$8 = var$16.$next();
                var$25 = $var7.$tagMap;
                if (var$8 === null) {
                    var$25 = var$25.$elementData.data[0];
                    while (var$25 !== null && var$25.$key !== null) {
                        var$25 = var$25.$next3;
                    }
                } else {
                    f: {
                        if (!var$8.$hashCode1) {
                            var$15 = 0;
                            while (true) {
                                if (var$15 >= var$8.$nativeString.length)
                                    break f;
                                var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt(var$15) | 0;
                                var$15 = var$15 + 1 | 0;
                            }
                        }
                    }
                    $var5 = var$8.$hashCode1;
                    $var8 = var$25.$elementData.data;
                    var$25 = $var8[$var5 & ($var8.length - 1 | 0)];
                    while (var$25 !== null) {
                        if (var$25.$origKeyHash == $var5) {
                            g: {
                                var$27 = var$25.$key;
                                if (var$8 !== var$27) {
                                    if (var$8 === var$27)
                                        var$15 = 1;
                                    else if (!(var$27 instanceof jl_String))
                                        var$15 = 0;
                                    else {
                                        var$27 = var$27;
                                        var$15 = var$8.$nativeString !== var$27.$nativeString ? 0 : 1;
                                    }
                                    if (!var$15) {
                                        var$15 = 0;
                                        break g;
                                    }
                                }
                                var$15 = 1;
                            }
                            if (var$15)
                                break;
                        }
                        var$25 = var$25.$next3;
                    }
                }
                var$25 = var$25 === null ? null : var$25.$value0;
                var$25 = var$25.$copy();
                var$27 = var$13.$tagMap;
                if (var$8 !== null)
                    var$25.$name = var$8;
                else
                    var$25.$name = $rt_s(3);
                ju_HashMap_putImpl(var$27, var$8, var$25);
            }
            var$7.$stackTagCompound = var$13;
        }
        var$15 = (-1);
        $ptr = 3;
    case 3:
        $tmp = nms_TileEntityHopper_insertStack($par0Hopper, var$7, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $par0Hopper = $tmp;
        if ($par0Hopper !== null && $par0Hopper.$stackSize) {
            var$16 = $var6.$dataWatcher;
            $var7 = var$16.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$13 = jl_Integer_integerCache.data[138];
            if (var$13 === null) {
                $var7 = $var7.$elementData.data[0];
                while ($var7 !== null && $var7.$key !== null) {
                    $var7 = $var7.$next3;
                }
            } else {
                $var5 = var$13.$value;
                $var8 = $var7.$elementData.data;
                $var7 = $var8[$var5 & ($var8.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == $var5) {
                        var$7 = $var7.$key;
                        if (var$13 !== var$7 && !jl_Integer_equals(var$13, var$7) ? 0 : 1)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
            }
            var$7 = $var7 === null ? null : $var7.$value0;
            if (!($par0Hopper !== var$7.$watchedObject ? 0 : 1)) {
                var$7.$watchedObject = $par0Hopper;
                var$7.$watched = 1;
                var$16.$objectChanged = 1;
            }
            var$13 = $var6.$dataWatcher;
            $par0Hopper = var$13.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[138];
            if (var$7 === null) {
                $par0Hopper = $par0Hopper.$elementData.data[0];
                while ($par0Hopper !== null && $par0Hopper.$key !== null) {
                    $par0Hopper = $par0Hopper.$next3;
                }
            } else {
                $var5 = var$7.$value;
                $var8 = $par0Hopper.$elementData.data;
                $par0Hopper = $var8[$var5 & ($var8.length - 1 | 0)];
                while ($par0Hopper !== null) {
                    if ($par0Hopper.$origKeyHash == $var5) {
                        $var7 = $par0Hopper.$key;
                        if (var$7 !== $var7 && !jl_Integer_equals(var$7, $var7) ? 0 : 1)
                            break;
                    }
                    $par0Hopper = $par0Hopper.$next3;
                }
            }
            ($par0Hopper === null ? null : $par0Hopper.$value0).$watched = 1;
            var$13.$objectChanged = 1;
        } else {
            $var2 = 1;
            $var6.$isDead = 1;
        }
        return $var2;
    case 4:
        $tmp = $var1.$decrStackSize($var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var5 = (-1);
        $ptr = 5;
    case 5:
        $tmp = nms_TileEntityHopper_insertStack($par0Hopper, $var7, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 !== null && $var7.$stackSize) {
            $ptr = 10;
            continue main;
        }
        $ptr = 8;
        continue main;
    case 6:
        $tmp = $var1.$decrStackSize($var3, var$23);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        var$23 = (-1);
        $ptr = 7;
    case 7:
        $tmp = nms_TileEntityHopper_insertStack($par0Hopper, var$7, var$23);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 !== null && var$7.$stackSize) {
            $ptr = 11;
            continue main;
        }
        $ptr = 9;
        continue main;
    case 8:
        $var1.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $var5 = 1;
        while (!$var5) {
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $var3)
                return 0;
            $var7 = $var1.$getStackInSlot($var4);
            if ($var7 !== null && (var$15 && !var$19.$canExtractItem($var4, $var7, $var2) ? 0 : 1)) {
                $var6 = new nms_ItemStack;
                var$21 = $var7.$itemID;
                $var5 = $var7.$stackSize;
                var$23 = $var7.$itemDamage;
                nms_ItemStack_$callClinit();
                $var6.$itemID = var$21;
                $var6.$stackSize = $var5;
                $var6.$itemDamage = var$23;
                if (var$23 < 0)
                    $var6.$itemDamage = 0;
                $var7 = $var7.$stackTagCompound;
                if ($var7 !== null) {
                    var$7 = new nms_NBTTagCompound;
                    var$13 = $var7.$name;
                    if (var$13 === null)
                        var$13 = $rt_s(3);
                    var$7.$name = var$13;
                    var$13 = new ju_HashMap;
                    jl_Object__init_(var$13);
                    $var5 = ju_HashMap_calculateCapacity(16);
                    var$13.$elementCount = 0;
                    var$24 = $rt_createArray(ju_HashMap$HashEntry, $var5);
                    $var8 = var$24.data;
                    var$13.$elementData = var$24;
                    var$13.$loadFactor = 0.75;
                    var$13.$threshold = $var8.length * 0.75 | 0;
                    var$7.$tagMap = var$13;
                    var$13 = $var7.$tagMap;
                    if (var$13.$cachedKeySet === null) {
                        var$16 = new ju_HashMap$1;
                        var$16.$this$0 = var$13;
                        var$13.$cachedKeySet = var$16;
                    }
                    var$13 = var$13.$cachedKeySet.$iterator();
                    while (var$13.$hasNext()) {
                        var$16 = var$13.$next();
                        var$8 = $var7.$tagMap;
                        if (var$16 === null) {
                            var$8 = var$8.$elementData.data[0];
                            while (var$8 !== null && var$8.$key !== null) {
                                var$8 = var$8.$next3;
                            }
                        } else {
                            h: {
                                if (!var$16.$hashCode1) {
                                    $var5 = 0;
                                    while (true) {
                                        if ($var5 >= var$16.$nativeString.length)
                                            break h;
                                        var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt($var5) | 0;
                                        $var5 = $var5 + 1 | 0;
                                    }
                                }
                            }
                            var$21 = var$16.$hashCode1;
                            $var8 = var$8.$elementData.data;
                            var$8 = $var8[var$21 & ($var8.length - 1 | 0)];
                            while (var$8 !== null) {
                                if (var$8.$origKeyHash == var$21) {
                                    i: {
                                        var$25 = var$8.$key;
                                        if (var$16 !== var$25) {
                                            if (var$16 === var$25)
                                                $var5 = 1;
                                            else if (!(var$25 instanceof jl_String))
                                                $var5 = 0;
                                            else {
                                                var$25 = var$25;
                                                $var5 = var$16.$nativeString !== var$25.$nativeString ? 0 : 1;
                                            }
                                            if (!$var5) {
                                                $var5 = 0;
                                                break i;
                                            }
                                        }
                                        $var5 = 1;
                                    }
                                    if ($var5)
                                        break;
                                }
                                var$8 = var$8.$next3;
                            }
                        }
                        var$8 = var$8 === null ? null : var$8.$value0;
                        var$8 = var$8.$copy();
                        var$25 = var$7.$tagMap;
                        if (var$16 !== null)
                            var$8.$name = var$16;
                        else
                            var$8.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$25, var$16, var$8);
                    }
                    $var6.$stackTagCompound = var$7;
                }
                $var5 = 1;
                $ptr = 4;
                continue main;
            }
            $var5 = 0;
        }
        return 1;
    case 9:
        $var1.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 1;
        while (!$var3) {
            $var5 = $var5 + 1 | 0;
            var$24 = $var8.data;
            if ($var5 >= var$24.length)
                return 0;
            $var3 = var$24[$var5];
            var$7 = $var1.$getStackInSlot($var3);
            if (var$7 !== null && (var$15 && !$var7.$canExtractItem($var3, var$7, $var2) ? 0 : 1)) {
                var$13 = new nms_ItemStack;
                var$23 = var$7.$itemID;
                var$21 = var$7.$stackSize;
                $var4 = var$7.$itemDamage;
                nms_ItemStack_$callClinit();
                var$13.$itemID = var$23;
                var$13.$stackSize = var$21;
                var$13.$itemDamage = $var4;
                if ($var4 < 0)
                    var$13.$itemDamage = 0;
                var$7 = var$7.$stackTagCompound;
                if (var$7 !== null) {
                    var$16 = new nms_NBTTagCompound;
                    var$8 = var$7.$name;
                    if (var$8 === null)
                        var$8 = $rt_s(3);
                    var$16.$name = var$8;
                    var$8 = new ju_HashMap;
                    jl_Object__init_(var$8);
                    var$23 = ju_HashMap_calculateCapacity(16);
                    var$8.$elementCount = 0;
                    var$26 = $rt_createArray(ju_HashMap$HashEntry, var$23);
                    var$24 = var$26.data;
                    var$8.$elementData = var$26;
                    var$8.$loadFactor = 0.75;
                    var$8.$threshold = var$24.length * 0.75 | 0;
                    var$16.$tagMap = var$8;
                    var$8 = var$7.$tagMap;
                    if (var$8.$cachedKeySet === null) {
                        var$25 = new ju_HashMap$1;
                        var$25.$this$0 = var$8;
                        var$8.$cachedKeySet = var$25;
                    }
                    var$8 = var$8.$cachedKeySet.$iterator();
                    while (var$8.$hasNext()) {
                        var$25 = var$8.$next();
                        var$27 = var$7.$tagMap;
                        if (var$25 === null) {
                            $var6 = var$27.$elementData.data[0];
                            while ($var6 !== null && $var6.$key !== null) {
                                $var6 = $var6.$next3;
                            }
                        } else {
                            h: {
                                if (!var$25.$hashCode1) {
                                    var$23 = 0;
                                    while (true) {
                                        if (var$23 >= var$25.$nativeString.length)
                                            break h;
                                        var$25.$hashCode1 = (31 * var$25.$hashCode1 | 0) + var$25.$nativeString.charCodeAt(var$23) | 0;
                                        var$23 = var$23 + 1 | 0;
                                    }
                                }
                            }
                            var$21 = var$25.$hashCode1;
                            var$24 = var$27.$elementData.data;
                            $var6 = var$24[var$21 & (var$24.length - 1 | 0)];
                            while ($var6 !== null) {
                                if ($var6.$origKeyHash == var$21) {
                                    i: {
                                        var$27 = $var6.$key;
                                        if (var$25 !== var$27) {
                                            if (var$25 === var$27)
                                                var$23 = 1;
                                            else if (!(var$27 instanceof jl_String))
                                                var$23 = 0;
                                            else {
                                                var$27 = var$27;
                                                var$23 = var$25.$nativeString !== var$27.$nativeString ? 0 : 1;
                                            }
                                            if (!var$23) {
                                                var$23 = 0;
                                                break i;
                                            }
                                        }
                                        var$23 = 1;
                                    }
                                    if (var$23)
                                        break;
                                }
                                $var6 = $var6.$next3;
                            }
                        }
                        var$27 = $var6 === null ? null : $var6.$value0;
                        var$27 = var$27.$copy();
                        var$19 = var$16.$tagMap;
                        if (var$25 !== null)
                            var$27.$name = var$25;
                        else
                            var$27.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$19, var$25, var$27);
                    }
                    var$13.$stackTagCompound = var$16;
                }
                var$23 = 1;
                $ptr = 6;
                continue main;
            }
            $var3 = 0;
        }
        return 1;
    case 10:
        $var1.$setInventorySlotContents($var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        while (!0) {
            $var4 = $var4 + 1 | 0;
            if ($var4 >= $var3)
                return 0;
            $var7 = $var1.$getStackInSlot($var4);
            if ($var7 === null)
                continue;
            if (!(var$15 && !var$19.$canExtractItem($var4, $var7, $var2) ? 0 : 1))
                continue;
            else {
                $var6 = new nms_ItemStack;
                var$21 = $var7.$itemID;
                $var5 = $var7.$stackSize;
                var$23 = $var7.$itemDamage;
                nms_ItemStack_$callClinit();
                $var6.$itemID = var$21;
                $var6.$stackSize = $var5;
                $var6.$itemDamage = var$23;
                if (var$23 < 0)
                    $var6.$itemDamage = 0;
                $var7 = $var7.$stackTagCompound;
                if ($var7 !== null) {
                    var$7 = new nms_NBTTagCompound;
                    var$13 = $var7.$name;
                    if (var$13 === null)
                        var$13 = $rt_s(3);
                    var$7.$name = var$13;
                    var$13 = new ju_HashMap;
                    jl_Object__init_(var$13);
                    $var5 = ju_HashMap_calculateCapacity(16);
                    var$13.$elementCount = 0;
                    var$24 = $rt_createArray(ju_HashMap$HashEntry, $var5);
                    $var8 = var$24.data;
                    var$13.$elementData = var$24;
                    var$13.$loadFactor = 0.75;
                    var$13.$threshold = $var8.length * 0.75 | 0;
                    var$7.$tagMap = var$13;
                    var$13 = $var7.$tagMap;
                    if (var$13.$cachedKeySet === null) {
                        var$16 = new ju_HashMap$1;
                        var$16.$this$0 = var$13;
                        var$13.$cachedKeySet = var$16;
                    }
                    var$13 = var$13.$cachedKeySet.$iterator();
                    while (var$13.$hasNext()) {
                        var$16 = var$13.$next();
                        var$8 = $var7.$tagMap;
                        if (var$16 === null) {
                            var$8 = var$8.$elementData.data[0];
                            while (var$8 !== null && var$8.$key !== null) {
                                var$8 = var$8.$next3;
                            }
                        } else {
                            h: {
                                if (!var$16.$hashCode1) {
                                    $var5 = 0;
                                    while (true) {
                                        if ($var5 >= var$16.$nativeString.length)
                                            break h;
                                        var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt($var5) | 0;
                                        $var5 = $var5 + 1 | 0;
                                    }
                                }
                            }
                            var$21 = var$16.$hashCode1;
                            $var8 = var$8.$elementData.data;
                            var$8 = $var8[var$21 & ($var8.length - 1 | 0)];
                            while (var$8 !== null) {
                                if (var$8.$origKeyHash == var$21) {
                                    i: {
                                        var$25 = var$8.$key;
                                        if (var$16 !== var$25) {
                                            if (var$16 === var$25)
                                                $var5 = 1;
                                            else if (!(var$25 instanceof jl_String))
                                                $var5 = 0;
                                            else {
                                                var$25 = var$25;
                                                $var5 = var$16.$nativeString !== var$25.$nativeString ? 0 : 1;
                                            }
                                            if (!$var5) {
                                                $var5 = 0;
                                                break i;
                                            }
                                        }
                                        $var5 = 1;
                                    }
                                    if ($var5)
                                        break;
                                }
                                var$8 = var$8.$next3;
                            }
                        }
                        var$8 = var$8 === null ? null : var$8.$value0;
                        var$8 = var$8.$copy();
                        var$25 = var$7.$tagMap;
                        if (var$16 !== null)
                            var$8.$name = var$16;
                        else
                            var$8.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$25, var$16, var$8);
                    }
                    $var6.$stackTagCompound = var$7;
                }
                $var5 = 1;
                $ptr = 4;
                continue main;
            }
        }
        return 1;
    case 11:
        $var1.$setInventorySlotContents($var3, var$13);
        if ($rt_suspending()) {
            break main;
        }
        while (!0) {
            $var5 = $var5 + 1 | 0;
            var$24 = $var8.data;
            if ($var5 >= var$24.length)
                return 0;
            $var3 = var$24[$var5];
            var$7 = $var1.$getStackInSlot($var3);
            if (var$7 === null)
                continue;
            if (!(var$15 && !$var7.$canExtractItem($var3, var$7, $var2) ? 0 : 1))
                continue;
            else {
                var$13 = new nms_ItemStack;
                var$23 = var$7.$itemID;
                var$21 = var$7.$stackSize;
                $var4 = var$7.$itemDamage;
                nms_ItemStack_$callClinit();
                var$13.$itemID = var$23;
                var$13.$stackSize = var$21;
                var$13.$itemDamage = $var4;
                if ($var4 < 0)
                    var$13.$itemDamage = 0;
                var$7 = var$7.$stackTagCompound;
                if (var$7 !== null) {
                    var$16 = new nms_NBTTagCompound;
                    var$8 = var$7.$name;
                    if (var$8 === null)
                        var$8 = $rt_s(3);
                    var$16.$name = var$8;
                    var$8 = new ju_HashMap;
                    jl_Object__init_(var$8);
                    var$23 = ju_HashMap_calculateCapacity(16);
                    var$8.$elementCount = 0;
                    var$26 = $rt_createArray(ju_HashMap$HashEntry, var$23);
                    var$24 = var$26.data;
                    var$8.$elementData = var$26;
                    var$8.$loadFactor = 0.75;
                    var$8.$threshold = var$24.length * 0.75 | 0;
                    var$16.$tagMap = var$8;
                    var$8 = var$7.$tagMap;
                    if (var$8.$cachedKeySet === null) {
                        var$25 = new ju_HashMap$1;
                        var$25.$this$0 = var$8;
                        var$8.$cachedKeySet = var$25;
                    }
                    var$8 = var$8.$cachedKeySet.$iterator();
                    while (var$8.$hasNext()) {
                        var$25 = var$8.$next();
                        var$27 = var$7.$tagMap;
                        if (var$25 === null) {
                            $var6 = var$27.$elementData.data[0];
                            while ($var6 !== null && $var6.$key !== null) {
                                $var6 = $var6.$next3;
                            }
                        } else {
                            h: {
                                if (!var$25.$hashCode1) {
                                    var$23 = 0;
                                    while (true) {
                                        if (var$23 >= var$25.$nativeString.length)
                                            break h;
                                        var$25.$hashCode1 = (31 * var$25.$hashCode1 | 0) + var$25.$nativeString.charCodeAt(var$23) | 0;
                                        var$23 = var$23 + 1 | 0;
                                    }
                                }
                            }
                            var$21 = var$25.$hashCode1;
                            var$24 = var$27.$elementData.data;
                            $var6 = var$24[var$21 & (var$24.length - 1 | 0)];
                            while ($var6 !== null) {
                                if ($var6.$origKeyHash == var$21) {
                                    i: {
                                        var$27 = $var6.$key;
                                        if (var$25 !== var$27) {
                                            if (var$25 === var$27)
                                                var$23 = 1;
                                            else if (!(var$27 instanceof jl_String))
                                                var$23 = 0;
                                            else {
                                                var$27 = var$27;
                                                var$23 = var$25.$nativeString !== var$27.$nativeString ? 0 : 1;
                                            }
                                            if (!var$23) {
                                                var$23 = 0;
                                                break i;
                                            }
                                        }
                                        var$23 = 1;
                                    }
                                    if (var$23)
                                        break;
                                }
                                $var6 = $var6.$next3;
                            }
                        }
                        var$27 = $var6 === null ? null : $var6.$value0;
                        var$27 = var$27.$copy();
                        var$19 = var$16.$tagMap;
                        if (var$25 !== null)
                            var$27.$name = var$25;
                        else
                            var$27.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$19, var$25, var$27);
                    }
                    var$13.$stackTagCompound = var$16;
                }
                var$23 = 1;
                $ptr = 6;
                continue main;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0Hopper, $var7, var$3, var$4, var$5, $var1, var$7, var$8, var$9, var$10, var$11, $var2, var$13, $var3, var$15, var$16, $var8, $var4, var$19, $var6, var$21, $var5, var$23, var$24, var$25, var$26, var$27, $ptr);
},
nms_TileEntityHopper_insertStack = ($par0IInventory, $par1ItemStack, $par2) => {
    let $var7, $var5, var$6, $var3, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$par0IInventory = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($rt_isInstance($par0IInventory, nms_ISidedInventory) && $par2 > (-1)) {
            $var7 = $par0IInventory.$getAccessibleSlotsFromSide($par2);
            $var5 = 0;
            var$6 = $var7.data;
            if ($var5 < var$6.length && $par1ItemStack !== null && $par1ItemStack.$stackSize > 0) {
                $var3 = var$6[$var5];
                $ptr = 2;
                continue main;
            }
        } else {
            $var3 = $par0IInventory.$getSizeInventory();
            $var4 = 0;
            if ($var4 < $var3 && $par1ItemStack !== null && $par1ItemStack.$stackSize > 0) {
                $ptr = 1;
                continue main;
            }
        }
        if ($par1ItemStack !== null && !$par1ItemStack.$stackSize)
            $par1ItemStack = null;
        return $par1ItemStack;
    case 1:
        $tmp = nms_TileEntityHopper_func_102014_c($par0IInventory, $par1ItemStack, $var4, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = $tmp;
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3 && $par1ItemStack !== null && $par1ItemStack.$stackSize > 0) {
            continue main;
        }
        if ($par1ItemStack !== null && !$par1ItemStack.$stackSize)
            $par1ItemStack = null;
        return $par1ItemStack;
    case 2:
        $tmp = nms_TileEntityHopper_func_102014_c($par0IInventory, $par1ItemStack, $var3, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = $tmp;
        $var5 = $var5 + 1 | 0;
        var$6 = $var7.data;
        if ($var5 < var$6.length && $par1ItemStack !== null && $par1ItemStack.$stackSize > 0) {
            $var3 = var$6[$var5];
            continue main;
        }
        if ($par1ItemStack !== null && !$par1ItemStack.$stackSize)
            $par1ItemStack = null;
        return $par1ItemStack;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0IInventory, $par1ItemStack, $par2, $var7, $var5, var$6, $var3, $var4, $ptr);
},
nms_TileEntityHopper_func_102014_c = ($par0IInventory, $par1ItemStack, $par2, $par3) => {
    let $var4, $var5, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$par0IInventory = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par0IInventory.$getStackInSlot($par2);
        if (!$par0IInventory.$isItemValidForSlot($par2, $par1ItemStack) ? 0 : $rt_isInstance($par0IInventory, nms_ISidedInventory) && !$par0IInventory.$canInsertItem($par2, $par1ItemStack, $par3) ? 0 : 1) {
            $var5 = 0;
            if ($var4 === null) {
                $ptr = 1;
                continue main;
            }
            $par2 = $var4.$itemID;
            if ($par2 != $par1ItemStack.$itemID)
                $par2 = 0;
            else if ($var4.$itemDamage != $par1ItemStack.$itemDamage)
                $par2 = 0;
            else {
                $par3 = $var4.$stackSize;
                nms_Item_$callClinit();
                $par2 = $par3 <= nms_Item_itemsList.data[$par2].$maxStackSize ? nms_ItemStack_areItemStackTagsEqual($var4, $par1ItemStack) : 0;
            }
            if ($par2) {
                nms_Item_$callClinit();
                $var7 = nms_Item_itemsList.data[$par1ItemStack.$itemID].$maxStackSize - $var4.$stackSize | 0;
                $par2 = $par1ItemStack.$stackSize;
                if ($par2 < $var7)
                    $var7 = $par2;
                $par1ItemStack.$stackSize = $par2 - $var7 | 0;
                $var4.$stackSize = $var4.$stackSize + $var7 | 0;
                $var5 = $var7 <= 0 ? 0 : 1;
            }
            if ($var5) {
                if (!($par0IInventory instanceof nms_TileEntityHopper)) {
                    $ptr = 2;
                    continue main;
                }
                $par0IInventory.$transferCooldown = 8;
                $ptr = 3;
                continue main;
            }
        }
        return $par1ItemStack;
    case 1:
        $par0IInventory.$setInventorySlotContents($par2, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = null;
        if (!1)
            return $par1ItemStack;
        if (!($par0IInventory instanceof nms_TileEntityHopper)) {
            $ptr = 2;
            continue main;
        }
        $par0IInventory.$transferCooldown = 8;
        $ptr = 3;
        continue main;
    case 2:
        $par0IInventory.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $par1ItemStack;
    case 3:
        $par0IInventory.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0IInventory, $par1ItemStack, $par2, $par3, $var4, $var5, $var7, $ptr);
},
nms_TileEntityHopper_getOutputInventory = $this => {
    let var$1, var$2, var$3, $var1, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$blockMetadata == (-1)) {
            var$1 = $this.$worldObj2;
            var$2 = $this.$xCoord0;
            var$3 = $this.$yCoord0;
            $var1 = $this.$zCoord0;
            $ptr = 2;
            continue main;
        }
        $var1 = $this.$blockMetadata & 7;
        var$1 = $this.$worldObj2;
        var$5 = $this.$xCoord0 + nms_Facing_offsetsXForSide.data[$var1] | 0;
        var$6 = $this.$yCoord0 + nms_Facing_offsetsYForSide.data[$var1] | 0;
        var$7 = $this.$zCoord0 + nms_Facing_offsetsZForSide.data[$var1] | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_TileEntityHopper_getInventoryAtLocation(var$1, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        return var$1;
    case 2:
        $tmp = nms_World_getBlockMetadata(var$1, var$2, var$3, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$blockMetadata = var$2;
        $var1 = $this.$blockMetadata & 7;
        var$1 = $this.$worldObj2;
        var$5 = $this.$xCoord0 + nms_Facing_offsetsXForSide.data[$var1] | 0;
        var$6 = $this.$yCoord0 + nms_Facing_offsetsYForSide.data[$var1] | 0;
        var$7 = $this.$zCoord0 + nms_Facing_offsetsZForSide.data[$var1] | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, var$5, var$6, var$7, $ptr);
},
nms_TileEntityHopper_getInventoryAtLocation = ($par0World, $par1, $par3, $par5) => {
    let $var7, $var8, $var9, $var10, $var11, $var14, $var13, var$12, var$13, var$14, $var12, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var12 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = null;
        $var8 = $par1 | 0;
        if ($par1 < $var8)
            $var8 = $var8 - 1 | 0;
        $var9 = $par3 | 0;
        if ($par3 < $var9)
            $var9 = $var9 - 1 | 0;
        $var10 = $par5 | 0;
        if ($par5 < $var10)
            $var10 = $var10 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockTileEntity($par0World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 !== null && $rt_isInstance($var11, nms_IInventory)) {
            $var7 = $var11;
            if ($var7 instanceof nms_TileEntityChest) {
                $ptr = 2;
                continue main;
            }
        }
        if ($var7 !== null)
            return $var7;
        $var14 = null;
        $var13 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = $par1 + 1.0;
        var$13 = $par3 + 1.0;
        var$14 = $par5 + 1.0;
        $var12 = $var13.$nextPoolIndex;
        var$16 = $var13.$listAABB;
        $var10 = var$16.$size0;
        $var9 = $rt_compare($var12, $var10);
        if ($var9 >= 0) {
            $var11 = new nms_AxisAlignedBB;
            $var11.$minX0 = $par1;
            $var11.$minY0 = $par3;
            $var11.$minZ0 = $par5;
            $var11.$maxX0 = var$12;
            $var11.$maxY = var$13;
            $var11.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity(var$16, $var10 + 1 | 0);
            var$17 = var$16.$array.data;
            $var10 = var$16.$size0;
            var$16.$size0 = $var10 + 1 | 0;
            var$17[$var10] = $var11;
            var$16.$modCount = var$16.$modCount + 1 | 0;
        } else if ($var12 >= 0 && $var9 < 0) {
            $var11 = var$16.$array.data[$var12];
            $var11.$minX0 = $par1;
            $var11.$minY0 = $par3;
            $var11.$minZ0 = $par5;
            $var11.$maxX0 = var$12;
            $var11.$maxY = var$13;
            $var11.$maxZ0 = var$14;
        } else {
            $par0World = new jl_IndexOutOfBoundsException;
            $par0World.$suppressionEnabled = 1;
            $par0World.$writableStackTrace = 1;
            $rt_throw($par0World);
        }
        $var13.$nextPoolIndex = $var13.$nextPoolIndex + 1 | 0;
        $var13 = nms_IEntitySelector_selectInventories;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par0World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        nms_Block_$callClinit();
        $var13 = nms_Block_blocksList.data[$var12];
        if ($var13 instanceof nms_BlockChest) {
            $var7 = $var13;
            $ptr = 3;
            continue main;
        }
        if ($var7 !== null)
            return $var7;
        $var14 = null;
        $var13 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = $par1 + 1.0;
        var$13 = $par3 + 1.0;
        var$14 = $par5 + 1.0;
        $var12 = $var13.$nextPoolIndex;
        var$16 = $var13.$listAABB;
        $var10 = var$16.$size0;
        $var9 = $rt_compare($var12, $var10);
        if ($var9 >= 0) {
            $var11 = new nms_AxisAlignedBB;
            $var11.$minX0 = $par1;
            $var11.$minY0 = $par3;
            $var11.$minZ0 = $par5;
            $var11.$maxX0 = var$12;
            $var11.$maxY = var$13;
            $var11.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity(var$16, $var10 + 1 | 0);
            var$17 = var$16.$array.data;
            $var10 = var$16.$size0;
            var$16.$size0 = $var10 + 1 | 0;
            var$17[$var10] = $var11;
            var$16.$modCount = var$16.$modCount + 1 | 0;
        } else if ($var12 >= 0 && $var9 < 0) {
            $var11 = var$16.$array.data[$var12];
            $var11.$minX0 = $par1;
            $var11.$minY0 = $par3;
            $var11.$minZ0 = $par5;
            $var11.$maxX0 = var$12;
            $var11.$maxY = var$13;
            $var11.$maxZ0 = var$14;
        } else {
            $par0World = new jl_IndexOutOfBoundsException;
            $par0World.$suppressionEnabled = 1;
            $par0World.$writableStackTrace = 1;
            $rt_throw($par0World);
        }
        $var13.$nextPoolIndex = $var13.$nextPoolIndex + 1 | 0;
        $var13 = nms_IEntitySelector_selectInventories;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_BlockChest_getInventory($var7, $par0World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 !== null)
            return $var7;
        $var14 = null;
        $var13 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = $par1 + 1.0;
        var$13 = $par3 + 1.0;
        var$14 = $par5 + 1.0;
        $var12 = $var13.$nextPoolIndex;
        var$16 = $var13.$listAABB;
        $var10 = var$16.$size0;
        $var9 = $rt_compare($var12, $var10);
        if ($var9 >= 0) {
            $var11 = new nms_AxisAlignedBB;
            $var11.$minX0 = $par1;
            $var11.$minY0 = $par3;
            $var11.$minZ0 = $par5;
            $var11.$maxX0 = var$12;
            $var11.$maxY = var$13;
            $var11.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity(var$16, $var10 + 1 | 0);
            var$17 = var$16.$array.data;
            $var10 = var$16.$size0;
            var$16.$size0 = $var10 + 1 | 0;
            var$17[$var10] = $var11;
            var$16.$modCount = var$16.$modCount + 1 | 0;
        } else if ($var12 >= 0 && $var9 < 0) {
            $var11 = var$16.$array.data[$var12];
            $var11.$minX0 = $par1;
            $var11.$minY0 = $par3;
            $var11.$minZ0 = $par5;
            $var11.$maxX0 = var$12;
            $var11.$maxY = var$13;
            $var11.$maxZ0 = var$14;
        } else {
            $par0World = new jl_IndexOutOfBoundsException;
            $par0World.$suppressionEnabled = 1;
            $par0World.$writableStackTrace = 1;
            $rt_throw($par0World);
        }
        $var13.$nextPoolIndex = $var13.$nextPoolIndex + 1 | 0;
        $var13 = nms_IEntitySelector_selectInventories;
        $ptr = 4;
    case 4:
        a: {
            $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($par0World, $var14, $var11, $var13);
            if ($rt_suspending()) {
                break main;
            }
            $var14 = $tmp;
            if ($var14 !== null) {
                var$18 = $var14.$size0;
                if (var$18 > 0) {
                    $par0World = $par0World.$rand0;
                    var$19 = Long_and(Long_add(Long_mul($par0World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0World.$seed = var$19;
                    $var9 = Long_lo(Long_shru(var$19, 17));
                    $var12 = var$18 - 1 | 0;
                    if (!(var$18 & $var12))
                        $var10 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$18), Long_fromInt($var9)), 31));
                    else
                        while (true) {
                            $var10 = $var9 % var$18 | 0;
                            if ((($var9 - $var10 | 0) + $var12 | 0) >= 0)
                                break;
                            var$19 = Long_and(Long_add(Long_mul($par0World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par0World.$seed = var$19;
                            $var9 = Long_lo(Long_shru(var$19, 17));
                        }
                    if ($var10 < 0)
                        break a;
                    if ($var10 >= var$18)
                        break a;
                    $var7 = $var14.$array.data[$var10];
                }
            }
            return $var7;
        }
        $par0World = new jl_IndexOutOfBoundsException;
        $par0World.$suppressionEnabled = 1;
        $par0World.$writableStackTrace = 1;
        $rt_throw($par0World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par3, $par5, $var7, $var8, $var9, $var10, $var11, $var14, $var13, var$12, var$13, var$14, $var12, var$16, var$17, var$18, var$19, $ptr);
},
nms_TileEntityHopper_getXPos = $this => {
    return $this.$xCoord0;
},
nms_TileEntityHopper_getYPos = $this => {
    return $this.$yCoord0;
},
nms_TileEntityHopper_getZPos = $this => {
    return $this.$zCoord0;
};
function nms_TileEntityComparator() {
    nms_TileEntity.call(this);
    this.$outputSignal = 0;
}
let nms_TileEntityComparator__init_ = $this => {
    nms_TileEntity_$callClinit();
    $this.$blockMetadata = (-1);
},
nms_TileEntityComparator__init_0 = () => {
    let var_0 = new nms_TileEntityComparator();
    nms_TileEntityComparator__init_(var_0);
    return var_0;
},
nms_TileEntityComparator_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_TileEntity_writeToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$outputSignal;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2427);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2427), $par1NBTTagCompound);
},
nms_TileEntityComparator_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(349).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(349).$nativeString.length)
                    break a;
                $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(349).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(349) !== var$6) {
                    if ($rt_s(349) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(349) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(349).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(349).$nativeString.length)
                            break c;
                        $rt_s(349).$hashCode1 = (31 * $rt_s(349).$hashCode1 | 0) + $rt_s(349).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(349).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(349) !== var$6) {
                            if ($rt_s(349) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(349).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    e: {
        $this.$xCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(350).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(350).$nativeString.length)
                    break e;
                $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(350).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(350) !== var$6) {
                    if ($rt_s(350) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(350) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(350).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(350).$nativeString.length)
                            break g;
                        $rt_s(350).$hashCode1 = (31 * $rt_s(350).$hashCode1 | 0) + $rt_s(350).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(350).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(350) !== var$6) {
                            if ($rt_s(350) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(350).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$yCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(351).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(351).$nativeString.length)
                    break i;
                $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(351).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(351) !== var$6) {
                    if ($rt_s(351) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(351) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(351).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(351).$nativeString.length)
                            break k;
                        $rt_s(351).$hashCode1 = (31 * $rt_s(351).$hashCode1 | 0) + $rt_s(351).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(351).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(351) !== var$6) {
                            if ($rt_s(351) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(351).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    m: {
        $this.$zCoord0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2427).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(2427).$nativeString.length)
                    break m;
                $rt_s(2427).$hashCode1 = (31 * $rt_s(2427).$hashCode1 | 0) + $rt_s(2427).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2427).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2427) !== var$6) {
                    if ($rt_s(2427) === var$6)
                        var$7 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$7 = 0;
                    else {
                        var$6 = var$6;
                        var$7 = $rt_s(2427).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2427) === null) {
            var$6 = $par1NBTTagCompound.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2427).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2427).$nativeString.length)
                            break o;
                        $rt_s(2427).$hashCode1 = (31 * $rt_s(2427).$hashCode1 | 0) + $rt_s(2427).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2427).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$7) {
                    p: {
                        $par1NBTTagCompound = var$6.$key;
                        if ($rt_s(2427) !== $par1NBTTagCompound) {
                            if ($rt_s(2427) === $par1NBTTagCompound)
                                var$3 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                var$3 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                var$3 = $rt_s(2427).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$3 = (var$6 === null ? null : var$6.$value0).$data;
    }
    $this.$outputSignal = var$3;
};
function nms_EntityTrackerEntry() {
    let a = this; jl_Object.call(a);
    a.$myEntity = null;
    a.$blocksDistanceThreshold = 0;
    a.$updateFrequency = 0;
    a.$lastScaledXPosition = 0;
    a.$lastScaledYPosition = 0;
    a.$lastScaledZPosition = 0;
    a.$lastYaw = 0;
    a.$lastPitch = 0;
    a.$lastHeadMotion = 0;
    a.$motionX0 = 0.0;
    a.$motionY0 = 0.0;
    a.$motionZ0 = 0.0;
    a.$ticks = 0;
    a.$posX11 = 0.0;
    a.$posY11 = 0.0;
    a.$posZ11 = 0.0;
    a.$isDataInitialized = 0;
    a.$sendVelocityUpdates = 0;
    a.$ticksSinceLastForcedTeleport = 0;
    a.$field_85178_v = null;
    a.$ridingEntity0 = 0;
    a.$playerEntitiesUpdated = 0;
    a.$trackingPlayers = null;
}
let nms_EntityTrackerEntry__init_0 = ($this, $par1Entity, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$5 = new ju_HashSet;
    var$6 = new ju_HashMap;
    var$7 = ju_HashMap_calculateCapacity(16);
    var$6.$elementCount = 0;
    var$8 = $rt_createArray(ju_HashMap$HashEntry, var$7);
    var$9 = var$8.data;
    var$6.$elementData = var$8;
    var$6.$loadFactor = 0.75;
    var$6.$threshold = var$9.length * 0.75 | 0;
    var$5.$backingMap = var$6;
    $this.$trackingPlayers = var$5;
    $this.$myEntity = $par1Entity;
    $this.$blocksDistanceThreshold = $par2;
    $this.$updateFrequency = $par3;
    $this.$sendVelocityUpdates = $par4;
    var$10 = $par1Entity.$posX * 32.0;
    $par2 = var$10 | 0;
    if (var$10 < $par2)
        $par2 = $par2 - 1 | 0;
    $this.$lastScaledXPosition = $par2;
    var$10 = $par1Entity.$posY * 32.0;
    $par2 = var$10 | 0;
    if (var$10 < $par2)
        $par2 = $par2 - 1 | 0;
    $this.$lastScaledYPosition = $par2;
    var$10 = $par1Entity.$posZ * 32.0;
    $par2 = var$10 | 0;
    if (var$10 < $par2)
        $par2 = $par2 - 1 | 0;
    $this.$lastScaledZPosition = $par2;
    var$11 = $par1Entity.$rotationYaw * 256.0 / 360.0;
    $par2 = var$11 | 0;
    if (var$11 < $par2)
        $par2 = $par2 - 1 | 0;
    $this.$lastYaw = $par2;
    var$11 = $par1Entity.$rotationPitch * 256.0 / 360.0;
    $par2 = var$11 | 0;
    if (var$11 < $par2)
        $par2 = $par2 - 1 | 0;
    $this.$lastPitch = $par2;
    var$11 = $par1Entity.$getRotationYawHead() * 256.0 / 360.0;
    $par2 = var$11 | 0;
    if (var$11 < $par2)
        $par2 = $par2 - 1 | 0;
    $this.$lastHeadMotion = $par2;
},
nms_EntityTrackerEntry__init_ = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_EntityTrackerEntry();
    nms_EntityTrackerEntry__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_EntityTrackerEntry_equals = ($this, $par1Obj) => {
    return !($par1Obj instanceof nms_EntityTrackerEntry) ? 0 : $par1Obj.$myEntity.$entityId != $this.$myEntity.$entityId ? 0 : 1;
},
nms_EntityTrackerEntry_hashCode = $this => {
    return $this.$myEntity.$entityId;
},
nms_EntityTrackerEntry_sendLocationToAllClients = ($this, $par1List) => {
    let $var23, var$3, $var13, var$5, $var25, $var2, $var26, var$9, $var29, $var4, var$12, var$13, $var2_0, $var3, $var5, $var6, $var7, $var8, $var9, $var10, $var27$index, $var11, $var12, $var27$index_0, $var15, var$27, $var17, $var21, $var30, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var30 = $thread.pop();$var21 = $thread.pop();$var17 = $thread.pop();var$27 = $thread.pop();$var15 = $thread.pop();$var27$index_0 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var27$index = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var2_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();$var29 = $thread.pop();var$9
        = $thread.pop();$var26 = $thread.pop();$var2 = $thread.pop();$var25 = $thread.pop();var$5 = $thread.pop();$var13 = $thread.pop();var$3 = $thread.pop();$var23 = $thread.pop();$par1List = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $this.$playerEntitiesUpdated = 0;
            if ($this.$isDataInitialized) {
                $var23 = $this.$myEntity;
                var$3 = $this.$posX11;
                $var13 = $this.$posY11;
                var$5 = $this.$posZ11;
                var$3 = $var23.$posX - var$3;
                $var13 = $var23.$posY - $var13;
                var$5 = $var23.$posZ - var$5;
                if (var$3 * var$3 + $var13 * $var13 + var$5 * var$5 <= 16.0)
                    break a;
            }
            $var23 = $this.$myEntity;
            $this.$posX11 = $var23.$posX;
            $this.$posY11 = $var23.$posY;
            $this.$posZ11 = $var23.$posZ;
            $this.$isDataInitialized = 1;
            $this.$playerEntitiesUpdated = 1;
            $var25 = 0;
            $var2 = $rt_compare($var25, $par1List.$size0);
            if ($var2 < 0) {
                if ($var25 >= 0 && $var2 < 0) {
                    $var23 = $par1List.$array.data[$var25];
                    $ptr = 1;
                    continue main;
                }
                $par1List = new jl_IndexOutOfBoundsException;
                $par1List.$suppressionEnabled = 1;
                $par1List.$writableStackTrace = 1;
                $rt_throw($par1List);
            }
        }
        b: {
            $var23 = $this.$field_85178_v;
            $var26 = $this.$myEntity;
            var$9 = $var26.$ridingEntity;
            if ($var23 === var$9) {
                if (var$9 === null)
                    break b;
                if ($this.$ticks % 60 | 0)
                    break b;
            }
            $this.$field_85178_v = var$9;
            $var23 = new nms_Packet39AttachEntity;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var23.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var23.$attachState = 0;
            $var23.$ridingEntityId = $var26.$entityId;
            $var23.$vehicleEntityId = var$9 === null ? (-1) : var$9.$entityId;
            $var26 = $this.$trackingPlayers.$backingMap;
            if ($var26.$cachedKeySet === null) {
                var$9 = new ju_HashMap$1;
                var$9.$this$0 = $var26;
                $var26.$cachedKeySet = var$9;
            }
            var$9 = $var26.$cachedKeySet.$iterator();
            $var2 = $var23 instanceof nms_Packet3Chat;
            $var26 = $var23;
            while (var$9.$hasNext()) {
                c: {
                    $var29 = (var$9.$next()).$playerNetServerHandler;
                    if ($var2) {
                        $var4 = $var29.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break c;
                        if ($var4 == 1 && !$var26.$isServer)
                            break c;
                    }
                    try {
                        $var29 = $var29.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var29 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var29);
                }
            }
        }
        $var23 = $this.$myEntity;
        if ($var23 instanceof nms_EntityItemFrame && !($this.$ticks % 10 | 0)) {
            $var23 = $var23.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var26 = jl_Integer_integerCache.data[130];
            if ($var26 === null) {
                $var23 = $var23.$elementData.data[0];
                while ($var23 !== null && $var23.$key !== null) {
                    $var23 = $var23.$next3;
                }
            } else {
                $var25 = $var26.$value;
                var$12 = $var23.$elementData.data;
                $var23 = var$12[$var25 & (var$12.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var25) {
                        var$9 = $var23.$key;
                        if ($var26 !== var$9 && !($var26 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var25 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
            }
            var$9 = ($var23 === null ? null : $var23.$value0).$watchedObject;
            if (var$9 !== null) {
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$9.$itemID] instanceof nms_ItemMap) {
                    $var23 = nms_Item_map;
                    $var26 = $this.$myEntity.$worldObj;
                    $ptr = 6;
                    continue main;
                }
            }
            $ptr = 4;
            continue main;
        }
        if (($this.$ticks % $this.$updateFrequency | 0) && !$var23.$isAirBorne && !$var23.$dataWatcher.$objectChanged) {
            $this.$ticks = $this.$ticks + 1 | 0;
            $par1List = $this.$myEntity;
            if ($par1List.$velocityChanged) {
                $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
                $par1List = $this.$trackingPlayers.$backingMap;
                if ($par1List.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $par1List;
                    $par1List.$cachedKeySet = $var26;
                }
                $var29 = $par1List.$cachedKeySet.$iterator();
                $var2 = $var23 instanceof nms_Packet3Chat;
                var$9 = $var23;
                while ($var29.$hasNext()) {
                    d: {
                        $par1List = ($var29.$next()).$playerNetServerHandler;
                        if ($var2) {
                            $var4 = $par1List.$playerEntity.$chatVisibility;
                            if ($var4 == 2)
                                break d;
                            if ($var4 == 1 && !var$9.$isServer)
                                break d;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                }
                $par1List = $this.$myEntity;
                if ($par1List instanceof nms_EntityPlayerMP)
                    e: {
                        $par1List = $par1List.$playerNetServerHandler;
                        if ($var2) {
                            $var2 = $par1List.$playerEntity.$chatVisibility;
                            if ($var2 == 2)
                                break e;
                            if ($var2 == 1 && !var$9.$isServer)
                                break e;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                $this.$myEntity.$velocityChanged = 0;
            }
            return;
        }
        if ($var23.$ridingEntity !== null) {
            var$13 = $var23.$rotationYaw * 256.0 / 360.0;
            $var2_0 = var$13 | 0;
            if (var$13 < $var2_0)
                $var2_0 = $var2_0 - 1 | 0;
            var$13 = $var23.$rotationPitch * 256.0 / 360.0;
            $var3 = var$13 | 0;
            if (var$13 < $var3)
                $var3 = $var3 - 1 | 0;
            $var25 = $var2_0 - $this.$lastYaw | 0;
            if ($var25 < 0)
                $var25 =  -$var25 | 0;
            f: {
                if ($var25 < 4) {
                    $var25 = $var3 - $this.$lastPitch | 0;
                    if ($var25 < 0)
                        $var25 =  -$var25 | 0;
                    if ($var25 < 4) {
                        $var25 = 0;
                        break f;
                    }
                }
                $var25 = 1;
            }
            if ($var25) {
                $par1List = new nms_Packet32EntityLook;
                $var25 = $var23.$entityId;
                $var2 = $var2_0 << 24 >> 24;
                $var4 = $var3 << 24 >> 24;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par1List.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1List.$entityId2 = $var25;
                $par1List.$yaw0 = $var2;
                $par1List.$pitch0 = $var4;
                $par1List.$rotating0 = 1;
                $var23 = $this.$trackingPlayers.$backingMap;
                if ($var23.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $var23;
                    $var23.$cachedKeySet = $var26;
                }
                $var29 = $var23.$cachedKeySet.$iterator();
                $var2 = $par1List instanceof nms_Packet3Chat;
                $var26 = $par1List;
                while ($var29.$hasNext()) {
                    g: {
                        $var23 = ($var29.$next()).$playerNetServerHandler;
                        if ($var2) {
                            $var4 = $var23.$playerEntity.$chatVisibility;
                            if ($var4 == 2)
                                break g;
                            if ($var4 == 1 && !$var26.$isServer)
                                break g;
                        }
                        try {
                            $var23 = $var23.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var23 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var23);
                    }
                }
                $this.$lastYaw = $var2_0;
                $this.$lastPitch = $var3;
            }
            $par1List = $this.$myEntity;
            $this.$lastScaledXPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posX);
            $par1List = $this.$myEntity;
            var$3 = $par1List.$posY * 32.0;
            $var2 = var$3 | 0;
            if (var$3 < $var2)
                $var2 = $var2 - 1 | 0;
            $this.$lastScaledYPosition = $var2;
            $this.$lastScaledZPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
            $ptr = 7;
            continue main;
        }
        $this.$ticksSinceLastForcedTeleport = $this.$ticksSinceLastForcedTeleport + 1 | 0;
        $var2 = nms_EnumEntitySize_multiplyBy32AndRound($var23.$myEntitySize, $var23.$posX);
        $par1List = $this.$myEntity;
        var$3 = $par1List.$posY * 32.0;
        $var3 = var$3 | 0;
        if (var$3 < $var3)
            $var3 = $var3 - 1 | 0;
        $var4 = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
        $par1List = $this.$myEntity;
        var$13 = $par1List.$rotationYaw * 256.0 / 360.0;
        $var5 = var$13 | 0;
        if (var$13 < $var5)
            $var5 = $var5 - 1 | 0;
        var$13 = $par1List.$rotationPitch * 256.0 / 360.0;
        $var6 = var$13 | 0;
        if (var$13 < $var6)
            $var6 = $var6 - 1 | 0;
        $var7 = $var2 - $this.$lastScaledXPosition | 0;
        $var8 = $var3 - $this.$lastScaledYPosition | 0;
        $var9 = $var4 - $this.$lastScaledZPosition | 0;
        $var10 = null;
        $var27$index = $var7 < 0 ?  -$var7 | 0 : $var7;
        $var11 = $var27$index < 4 && ($var8 < 0 ?  -$var8 | 0 : $var8) < 4 && ($var9 < 0 ?  -$var9 | 0 : $var9) < 4 && ($this.$ticks % 60 | 0) ? 0 : 1;
        $var25 = $var5 - $this.$lastYaw | 0;
        if ($var25 < 0)
            $var25 =  -$var25 | 0;
        h: {
            if ($var25 < 4) {
                $var25 = $var6 - $this.$lastPitch | 0;
                if ($var25 < 0)
                    $var25 =  -$var25 | 0;
                if ($var25 < 4) {
                    $var12 = 0;
                    break h;
                }
            }
            $var12 = 1;
        }
        if (!($this.$ticks <= 0 && !($par1List instanceof nms_EntityArrow))) {
            if ($var7 >= (-128) && $var7 < 128 && $var8 >= (-128) && $var8 < 128 && $var9 >= (-128) && $var9 < 128 && $this.$ticksSinceLastForcedTeleport <= 400 && !$this.$ridingEntity0) {
                if ($var11 && $var12) {
                    $var10 = new nms_Packet33RelEntityMoveLook;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var7 << 24 >> 24;
                    $var7 = $var8 << 24 >> 24;
                    $var8 = $var9 << 24 >> 24;
                    $var9 = $var5 << 24 >> 24;
                    $var27$index_0 = $var6 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$xPosition3 = $var27$index;
                    $var10.$yPosition2 = $var7;
                    $var10.$zPosition3 = $var8;
                    $var10.$yaw0 = $var9;
                    $var10.$pitch0 = $var27$index_0;
                    $var10.$rotating0 = 1;
                } else if ($var11) {
                    $var10 = new nms_Packet31RelEntityMove;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var7 << 24 >> 24;
                    $var7 = $var8 << 24 >> 24;
                    $var8 = $var9 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$xPosition3 = $var27$index;
                    $var10.$yPosition2 = $var7;
                    $var10.$zPosition3 = $var8;
                } else if ($var12) {
                    $var10 = new nms_Packet32EntityLook;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var5 << 24 >> 24;
                    $var7 = $var6 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$yaw0 = $var27$index;
                    $var10.$pitch0 = $var7;
                    $var10.$rotating0 = 1;
                }
            } else {
                $this.$ticksSinceLastForcedTeleport = 0;
                $var10 = new nms_Packet34EntityTeleport;
                $var25 = $par1List.$entityId;
                $var27$index = $var5 << 24 >> 24;
                $var7 = $var6 << 24 >> 24;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var10.$entityId5 = $var25;
                $var10.$xPosition8 = $var2;
                $var10.$yPosition5 = $var3;
                $var10.$zPosition6 = $var4;
                $var10.$yaw1 = $var27$index;
                $var10.$pitch2 = $var7;
            }
        }
        i: {
            if ($this.$sendVelocityUpdates) {
                $par1List = $this.$myEntity;
                var$3 = $par1List.$motionX;
                $var13 = var$3 - $this.$motionX0;
                var$5 = $par1List.$motionY;
                $var15 = var$5 - $this.$motionY0;
                var$27 = $par1List.$motionZ;
                $var17 = var$27 - $this.$motionZ0;
                $var21 = $var13 * $var13 + $var15 * $var15 + $var17 * $var17;
                if ($var21 <= 4.0E-4) {
                    if ($var21 <= 0.0)
                        break i;
                    if (var$3 !== 0.0)
                        break i;
                    if (var$5 !== 0.0)
                        break i;
                    if (var$27 !== 0.0)
                        break i;
                }
                $this.$motionX0 = var$3;
                $this.$motionY0 = var$5;
                $this.$motionZ0 = var$27;
                $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, var$3, var$5, var$27);
                $par1List = $this.$trackingPlayers.$backingMap;
                if ($par1List.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $par1List;
                    $par1List.$cachedKeySet = $var26;
                }
                $var29 = $par1List.$cachedKeySet.$iterator();
                $var27$index = $var23 instanceof nms_Packet3Chat;
                $var26 = $var23;
                while ($var29.$hasNext()) {
                    j: {
                        $par1List = ($var29.$next()).$playerNetServerHandler;
                        if ($var27$index) {
                            $var7 = $par1List.$playerEntity.$chatVisibility;
                            if ($var7 == 2)
                                break j;
                            if ($var7 == 1 && !$var26.$isServer)
                                break j;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 14;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                }
            }
        }
        if ($var10 !== null) {
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var23 = new ju_HashMap$1;
                $var23.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var23;
            }
            var$9 = $par1List.$cachedKeySet.$iterator();
            $var27$index = $var10 instanceof nms_Packet3Chat;
            $var23 = $var10;
            while (var$9.$hasNext()) {
                k: {
                    $par1List = (var$9.$next()).$playerNetServerHandler;
                    if ($var27$index) {
                        $var7 = $par1List.$playerEntity.$chatVisibility;
                        if ($var7 == 2)
                            break k;
                        if ($var7 == 1 && !$var23.$isServer)
                            break k;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
        }
        $ptr = 11;
        continue main;
    case 1:
        nms_EntityTrackerEntry_tryStartWachingThis($this, $var23);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $var25 + 1 | 0;
        $var2 = $rt_compare($var25, $par1List.$size0);
        if ($var2 < 0) {
            if ($var25 >= 0 && $var2 < 0) {
                $var23 = $par1List.$array.data[$var25];
                continue main;
            }
            $par1List = new jl_IndexOutOfBoundsException;
            $par1List.$suppressionEnabled = 1;
            $par1List.$writableStackTrace = 1;
            $rt_throw($par1List);
        }
        b: {
            $var23 = $this.$field_85178_v;
            $var26 = $this.$myEntity;
            var$9 = $var26.$ridingEntity;
            if ($var23 === var$9) {
                if (var$9 === null)
                    break b;
                if ($this.$ticks % 60 | 0)
                    break b;
            }
            $this.$field_85178_v = var$9;
            $var23 = new nms_Packet39AttachEntity;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var23.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var23.$attachState = 0;
            $var23.$ridingEntityId = $var26.$entityId;
            $var23.$vehicleEntityId = var$9 === null ? (-1) : var$9.$entityId;
            $var26 = $this.$trackingPlayers.$backingMap;
            if ($var26.$cachedKeySet === null) {
                var$9 = new ju_HashMap$1;
                var$9.$this$0 = $var26;
                $var26.$cachedKeySet = var$9;
            }
            var$9 = $var26.$cachedKeySet.$iterator();
            $var2 = $var23 instanceof nms_Packet3Chat;
            $var26 = $var23;
            while (var$9.$hasNext()) {
                c: {
                    $var29 = (var$9.$next()).$playerNetServerHandler;
                    if ($var2) {
                        $var4 = $var29.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break c;
                        if ($var4 == 1 && !$var26.$isServer)
                            break c;
                    }
                    try {
                        $var29 = $var29.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var29 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var29);
                }
            }
        }
        $var23 = $this.$myEntity;
        if ($var23 instanceof nms_EntityItemFrame && !($this.$ticks % 10 | 0)) {
            $var23 = $var23.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var26 = jl_Integer_integerCache.data[130];
            if ($var26 === null) {
                $var23 = $var23.$elementData.data[0];
                while ($var23 !== null && $var23.$key !== null) {
                    $var23 = $var23.$next3;
                }
            } else {
                $var25 = $var26.$value;
                var$12 = $var23.$elementData.data;
                $var23 = var$12[$var25 & (var$12.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var25) {
                        var$9 = $var23.$key;
                        if ($var26 !== var$9 && !($var26 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var25 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
            }
            var$9 = ($var23 === null ? null : $var23.$value0).$watchedObject;
            if (var$9 !== null) {
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$9.$itemID] instanceof nms_ItemMap) {
                    $var23 = nms_Item_map;
                    $var26 = $this.$myEntity.$worldObj;
                    $ptr = 6;
                    continue main;
                }
            }
            $ptr = 4;
            continue main;
        }
        if (($this.$ticks % $this.$updateFrequency | 0) && !$var23.$isAirBorne && !$var23.$dataWatcher.$objectChanged) {
            $this.$ticks = $this.$ticks + 1 | 0;
            $par1List = $this.$myEntity;
            if ($par1List.$velocityChanged) {
                $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
                $par1List = $this.$trackingPlayers.$backingMap;
                if ($par1List.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $par1List;
                    $par1List.$cachedKeySet = $var26;
                }
                $var29 = $par1List.$cachedKeySet.$iterator();
                $var2 = $var23 instanceof nms_Packet3Chat;
                var$9 = $var23;
                while ($var29.$hasNext()) {
                    d: {
                        $par1List = ($var29.$next()).$playerNetServerHandler;
                        if ($var2) {
                            $var4 = $par1List.$playerEntity.$chatVisibility;
                            if ($var4 == 2)
                                break d;
                            if ($var4 == 1 && !var$9.$isServer)
                                break d;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                }
                $par1List = $this.$myEntity;
                if ($par1List instanceof nms_EntityPlayerMP)
                    e: {
                        $par1List = $par1List.$playerNetServerHandler;
                        if ($var2) {
                            $var2 = $par1List.$playerEntity.$chatVisibility;
                            if ($var2 == 2)
                                break e;
                            if ($var2 == 1 && !var$9.$isServer)
                                break e;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                $this.$myEntity.$velocityChanged = 0;
            }
            return;
        }
        if ($var23.$ridingEntity !== null) {
            var$13 = $var23.$rotationYaw * 256.0 / 360.0;
            $var2_0 = var$13 | 0;
            if (var$13 < $var2_0)
                $var2_0 = $var2_0 - 1 | 0;
            var$13 = $var23.$rotationPitch * 256.0 / 360.0;
            $var3 = var$13 | 0;
            if (var$13 < $var3)
                $var3 = $var3 - 1 | 0;
            $var25 = $var2_0 - $this.$lastYaw | 0;
            if ($var25 < 0)
                $var25 =  -$var25 | 0;
            f: {
                if ($var25 < 4) {
                    $var25 = $var3 - $this.$lastPitch | 0;
                    if ($var25 < 0)
                        $var25 =  -$var25 | 0;
                    if ($var25 < 4) {
                        $var25 = 0;
                        break f;
                    }
                }
                $var25 = 1;
            }
            if ($var25) {
                $par1List = new nms_Packet32EntityLook;
                $var25 = $var23.$entityId;
                $var2 = $var2_0 << 24 >> 24;
                $var4 = $var3 << 24 >> 24;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par1List.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1List.$entityId2 = $var25;
                $par1List.$yaw0 = $var2;
                $par1List.$pitch0 = $var4;
                $par1List.$rotating0 = 1;
                $var23 = $this.$trackingPlayers.$backingMap;
                if ($var23.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $var23;
                    $var23.$cachedKeySet = $var26;
                }
                $var29 = $var23.$cachedKeySet.$iterator();
                $var2 = $par1List instanceof nms_Packet3Chat;
                $var26 = $par1List;
                while ($var29.$hasNext()) {
                    g: {
                        $var23 = ($var29.$next()).$playerNetServerHandler;
                        if ($var2) {
                            $var4 = $var23.$playerEntity.$chatVisibility;
                            if ($var4 == 2)
                                break g;
                            if ($var4 == 1 && !$var26.$isServer)
                                break g;
                        }
                        try {
                            $var23 = $var23.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var23 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var23);
                    }
                }
                $this.$lastYaw = $var2_0;
                $this.$lastPitch = $var3;
            }
            $par1List = $this.$myEntity;
            $this.$lastScaledXPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posX);
            $par1List = $this.$myEntity;
            var$3 = $par1List.$posY * 32.0;
            $var2 = var$3 | 0;
            if (var$3 < $var2)
                $var2 = $var2 - 1 | 0;
            $this.$lastScaledYPosition = $var2;
            $this.$lastScaledZPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
            $ptr = 7;
            continue main;
        }
        $this.$ticksSinceLastForcedTeleport = $this.$ticksSinceLastForcedTeleport + 1 | 0;
        $var2 = nms_EnumEntitySize_multiplyBy32AndRound($var23.$myEntitySize, $var23.$posX);
        $par1List = $this.$myEntity;
        var$3 = $par1List.$posY * 32.0;
        $var3 = var$3 | 0;
        if (var$3 < $var3)
            $var3 = $var3 - 1 | 0;
        $var4 = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
        $par1List = $this.$myEntity;
        var$13 = $par1List.$rotationYaw * 256.0 / 360.0;
        $var5 = var$13 | 0;
        if (var$13 < $var5)
            $var5 = $var5 - 1 | 0;
        var$13 = $par1List.$rotationPitch * 256.0 / 360.0;
        $var6 = var$13 | 0;
        if (var$13 < $var6)
            $var6 = $var6 - 1 | 0;
        $var7 = $var2 - $this.$lastScaledXPosition | 0;
        $var8 = $var3 - $this.$lastScaledYPosition | 0;
        $var9 = $var4 - $this.$lastScaledZPosition | 0;
        $var10 = null;
        $var27$index = $var7 < 0 ?  -$var7 | 0 : $var7;
        $var11 = $var27$index < 4 && ($var8 < 0 ?  -$var8 | 0 : $var8) < 4 && ($var9 < 0 ?  -$var9 | 0 : $var9) < 4 && ($this.$ticks % 60 | 0) ? 0 : 1;
        $var25 = $var5 - $this.$lastYaw | 0;
        if ($var25 < 0)
            $var25 =  -$var25 | 0;
        h: {
            if ($var25 < 4) {
                $var25 = $var6 - $this.$lastPitch | 0;
                if ($var25 < 0)
                    $var25 =  -$var25 | 0;
                if ($var25 < 4) {
                    $var12 = 0;
                    break h;
                }
            }
            $var12 = 1;
        }
        if (!($this.$ticks <= 0 && !($par1List instanceof nms_EntityArrow))) {
            if ($var7 >= (-128) && $var7 < 128 && $var8 >= (-128) && $var8 < 128 && $var9 >= (-128) && $var9 < 128 && $this.$ticksSinceLastForcedTeleport <= 400 && !$this.$ridingEntity0) {
                if ($var11 && $var12) {
                    $var10 = new nms_Packet33RelEntityMoveLook;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var7 << 24 >> 24;
                    $var7 = $var8 << 24 >> 24;
                    $var8 = $var9 << 24 >> 24;
                    $var9 = $var5 << 24 >> 24;
                    $var27$index_0 = $var6 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$xPosition3 = $var27$index;
                    $var10.$yPosition2 = $var7;
                    $var10.$zPosition3 = $var8;
                    $var10.$yaw0 = $var9;
                    $var10.$pitch0 = $var27$index_0;
                    $var10.$rotating0 = 1;
                } else if ($var11) {
                    $var10 = new nms_Packet31RelEntityMove;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var7 << 24 >> 24;
                    $var7 = $var8 << 24 >> 24;
                    $var8 = $var9 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$xPosition3 = $var27$index;
                    $var10.$yPosition2 = $var7;
                    $var10.$zPosition3 = $var8;
                } else if ($var12) {
                    $var10 = new nms_Packet32EntityLook;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var5 << 24 >> 24;
                    $var7 = $var6 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$yaw0 = $var27$index;
                    $var10.$pitch0 = $var7;
                    $var10.$rotating0 = 1;
                }
            } else {
                $this.$ticksSinceLastForcedTeleport = 0;
                $var10 = new nms_Packet34EntityTeleport;
                $var25 = $par1List.$entityId;
                $var27$index = $var5 << 24 >> 24;
                $var7 = $var6 << 24 >> 24;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var10.$entityId5 = $var25;
                $var10.$xPosition8 = $var2;
                $var10.$yPosition5 = $var3;
                $var10.$zPosition6 = $var4;
                $var10.$yaw1 = $var27$index;
                $var10.$pitch2 = $var7;
            }
        }
        i: {
            if ($this.$sendVelocityUpdates) {
                $par1List = $this.$myEntity;
                var$3 = $par1List.$motionX;
                $var13 = var$3 - $this.$motionX0;
                var$5 = $par1List.$motionY;
                $var15 = var$5 - $this.$motionY0;
                var$27 = $par1List.$motionZ;
                $var17 = var$27 - $this.$motionZ0;
                $var21 = $var13 * $var13 + $var15 * $var15 + $var17 * $var17;
                if ($var21 <= 4.0E-4) {
                    if ($var21 <= 0.0)
                        break i;
                    if (var$3 !== 0.0)
                        break i;
                    if (var$5 !== 0.0)
                        break i;
                    if (var$27 !== 0.0)
                        break i;
                }
                $this.$motionX0 = var$3;
                $this.$motionY0 = var$5;
                $this.$motionZ0 = var$27;
                $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, var$3, var$5, var$27);
                $par1List = $this.$trackingPlayers.$backingMap;
                if ($par1List.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $par1List;
                    $par1List.$cachedKeySet = $var26;
                }
                $var29 = $par1List.$cachedKeySet.$iterator();
                $var27$index = $var23 instanceof nms_Packet3Chat;
                $var26 = $var23;
                while ($var29.$hasNext()) {
                    j: {
                        $par1List = ($var29.$next()).$playerNetServerHandler;
                        if ($var27$index) {
                            $var7 = $par1List.$playerEntity.$chatVisibility;
                            if ($var7 == 2)
                                break j;
                            if ($var7 == 1 && !$var26.$isServer)
                                break j;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 14;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                }
            }
        }
        if ($var10 !== null) {
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var23 = new ju_HashMap$1;
                $var23.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var23;
            }
            var$9 = $par1List.$cachedKeySet.$iterator();
            $var27$index = $var10 instanceof nms_Packet3Chat;
            $var23 = $var10;
            while (var$9.$hasNext()) {
                k: {
                    $par1List = (var$9.$next()).$playerNetServerHandler;
                    if ($var27$index) {
                        $var7 = $par1List.$playerEntity.$chatVisibility;
                        if ($var7 == 2)
                            break k;
                        if ($var7 == 1 && !$var23.$isServer)
                            break k;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
        }
        $ptr = 11;
        continue main;
    case 2:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var29, $var23);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var29 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var29);
        }
        m: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break m;
                $var29 = (var$9.$next()).$playerNetServerHandler;
                if (!$var2)
                    break;
                $var4 = $var29.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if ($var26.$isServer)
                    break;
            }
            try {
                $var29 = $var29.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var29 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var29);
        }
        $var23 = $this.$myEntity;
        if ($var23 instanceof nms_EntityItemFrame && !($this.$ticks % 10 | 0)) {
            $var23 = $var23.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var26 = jl_Integer_integerCache.data[130];
            if ($var26 === null) {
                $var23 = $var23.$elementData.data[0];
                while ($var23 !== null && $var23.$key !== null) {
                    $var23 = $var23.$next3;
                }
            } else {
                $var25 = $var26.$value;
                var$12 = $var23.$elementData.data;
                $var23 = var$12[$var25 & (var$12.length - 1 | 0)];
                while ($var23 !== null) {
                    if ($var23.$origKeyHash == $var25) {
                        var$9 = $var23.$key;
                        if ($var26 !== var$9 && !($var26 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var25 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var23 = $var23.$next3;
                }
            }
            var$9 = ($var23 === null ? null : $var23.$value0).$watchedObject;
            if (var$9 !== null) {
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$9.$itemID] instanceof nms_ItemMap) {
                    $var23 = nms_Item_map;
                    $var26 = $this.$myEntity.$worldObj;
                    $ptr = 6;
                    continue main;
                }
            }
            $ptr = 4;
            continue main;
        }
        if (($this.$ticks % $this.$updateFrequency | 0) && !$var23.$isAirBorne && !$var23.$dataWatcher.$objectChanged) {
            $this.$ticks = $this.$ticks + 1 | 0;
            $par1List = $this.$myEntity;
            if ($par1List.$velocityChanged) {
                $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
                $par1List = $this.$trackingPlayers.$backingMap;
                if ($par1List.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $par1List;
                    $par1List.$cachedKeySet = $var26;
                }
                $var29 = $par1List.$cachedKeySet.$iterator();
                $var2 = $var23 instanceof nms_Packet3Chat;
                var$9 = $var23;
                while ($var29.$hasNext()) {
                    n: {
                        $par1List = ($var29.$next()).$playerNetServerHandler;
                        if ($var2) {
                            $var4 = $par1List.$playerEntity.$chatVisibility;
                            if ($var4 == 2)
                                break n;
                            if ($var4 == 1 && !var$9.$isServer)
                                break n;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                }
                $par1List = $this.$myEntity;
                if ($par1List instanceof nms_EntityPlayerMP)
                    o: {
                        $par1List = $par1List.$playerNetServerHandler;
                        if ($var2) {
                            $var2 = $par1List.$playerEntity.$chatVisibility;
                            if ($var2 == 2)
                                break o;
                            if ($var2 == 1 && !var$9.$isServer)
                                break o;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                $this.$myEntity.$velocityChanged = 0;
            }
            return;
        }
        if ($var23.$ridingEntity !== null) {
            var$13 = $var23.$rotationYaw * 256.0 / 360.0;
            $var2_0 = var$13 | 0;
            if (var$13 < $var2_0)
                $var2_0 = $var2_0 - 1 | 0;
            var$13 = $var23.$rotationPitch * 256.0 / 360.0;
            $var3 = var$13 | 0;
            if (var$13 < $var3)
                $var3 = $var3 - 1 | 0;
            $var25 = $var2_0 - $this.$lastYaw | 0;
            if ($var25 < 0)
                $var25 =  -$var25 | 0;
            p: {
                if ($var25 < 4) {
                    $var25 = $var3 - $this.$lastPitch | 0;
                    if ($var25 < 0)
                        $var25 =  -$var25 | 0;
                    if ($var25 < 4) {
                        $var25 = 0;
                        break p;
                    }
                }
                $var25 = 1;
            }
            if ($var25) {
                $par1List = new nms_Packet32EntityLook;
                $var25 = $var23.$entityId;
                $var2 = $var2_0 << 24 >> 24;
                $var4 = $var3 << 24 >> 24;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $par1List.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $par1List.$entityId2 = $var25;
                $par1List.$yaw0 = $var2;
                $par1List.$pitch0 = $var4;
                $par1List.$rotating0 = 1;
                $var23 = $this.$trackingPlayers.$backingMap;
                if ($var23.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $var23;
                    $var23.$cachedKeySet = $var26;
                }
                $var29 = $var23.$cachedKeySet.$iterator();
                $var2 = $par1List instanceof nms_Packet3Chat;
                $var26 = $par1List;
                while ($var29.$hasNext()) {
                    q: {
                        $var23 = ($var29.$next()).$playerNetServerHandler;
                        if ($var2) {
                            $var4 = $var23.$playerEntity.$chatVisibility;
                            if ($var4 == 2)
                                break q;
                            if ($var4 == 1 && !$var26.$isServer)
                                break q;
                        }
                        try {
                            $var23 = $var23.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var23 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var23);
                    }
                }
                $this.$lastYaw = $var2_0;
                $this.$lastPitch = $var3;
            }
            $par1List = $this.$myEntity;
            $this.$lastScaledXPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posX);
            $par1List = $this.$myEntity;
            var$3 = $par1List.$posY * 32.0;
            $var2 = var$3 | 0;
            if (var$3 < $var2)
                $var2 = $var2 - 1 | 0;
            $this.$lastScaledYPosition = $var2;
            $this.$lastScaledZPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
            $ptr = 7;
            continue main;
        }
        $this.$ticksSinceLastForcedTeleport = $this.$ticksSinceLastForcedTeleport + 1 | 0;
        $var2 = nms_EnumEntitySize_multiplyBy32AndRound($var23.$myEntitySize, $var23.$posX);
        $par1List = $this.$myEntity;
        var$3 = $par1List.$posY * 32.0;
        $var3 = var$3 | 0;
        if (var$3 < $var3)
            $var3 = $var3 - 1 | 0;
        $var4 = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
        $par1List = $this.$myEntity;
        var$13 = $par1List.$rotationYaw * 256.0 / 360.0;
        $var5 = var$13 | 0;
        if (var$13 < $var5)
            $var5 = $var5 - 1 | 0;
        var$13 = $par1List.$rotationPitch * 256.0 / 360.0;
        $var6 = var$13 | 0;
        if (var$13 < $var6)
            $var6 = $var6 - 1 | 0;
        $var7 = $var2 - $this.$lastScaledXPosition | 0;
        $var8 = $var3 - $this.$lastScaledYPosition | 0;
        $var9 = $var4 - $this.$lastScaledZPosition | 0;
        $var10 = null;
        $var27$index = $var7 < 0 ?  -$var7 | 0 : $var7;
        $var11 = $var27$index < 4 && ($var8 < 0 ?  -$var8 | 0 : $var8) < 4 && ($var9 < 0 ?  -$var9 | 0 : $var9) < 4 && ($this.$ticks % 60 | 0) ? 0 : 1;
        $var25 = $var5 - $this.$lastYaw | 0;
        if ($var25 < 0)
            $var25 =  -$var25 | 0;
        r: {
            if ($var25 < 4) {
                $var25 = $var6 - $this.$lastPitch | 0;
                if ($var25 < 0)
                    $var25 =  -$var25 | 0;
                if ($var25 < 4) {
                    $var12 = 0;
                    break r;
                }
            }
            $var12 = 1;
        }
        if (!($this.$ticks <= 0 && !($par1List instanceof nms_EntityArrow))) {
            if ($var7 >= (-128) && $var7 < 128 && $var8 >= (-128) && $var8 < 128 && $var9 >= (-128) && $var9 < 128 && $this.$ticksSinceLastForcedTeleport <= 400 && !$this.$ridingEntity0) {
                if ($var11 && $var12) {
                    $var10 = new nms_Packet33RelEntityMoveLook;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var7 << 24 >> 24;
                    $var7 = $var8 << 24 >> 24;
                    $var8 = $var9 << 24 >> 24;
                    $var9 = $var5 << 24 >> 24;
                    $var27$index_0 = $var6 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$xPosition3 = $var27$index;
                    $var10.$yPosition2 = $var7;
                    $var10.$zPosition3 = $var8;
                    $var10.$yaw0 = $var9;
                    $var10.$pitch0 = $var27$index_0;
                    $var10.$rotating0 = 1;
                } else if ($var11) {
                    $var10 = new nms_Packet31RelEntityMove;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var7 << 24 >> 24;
                    $var7 = $var8 << 24 >> 24;
                    $var8 = $var9 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$xPosition3 = $var27$index;
                    $var10.$yPosition2 = $var7;
                    $var10.$zPosition3 = $var8;
                } else if ($var12) {
                    $var10 = new nms_Packet32EntityLook;
                    $var25 = $par1List.$entityId;
                    $var27$index = $var5 << 24 >> 24;
                    $var7 = $var6 << 24 >> 24;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var10.$entityId2 = $var25;
                    $var10.$yaw0 = $var27$index;
                    $var10.$pitch0 = $var7;
                    $var10.$rotating0 = 1;
                }
            } else {
                $this.$ticksSinceLastForcedTeleport = 0;
                $var10 = new nms_Packet34EntityTeleport;
                $var25 = $par1List.$entityId;
                $var27$index = $var5 << 24 >> 24;
                $var7 = $var6 << 24 >> 24;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var10.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var10.$entityId5 = $var25;
                $var10.$xPosition8 = $var2;
                $var10.$yPosition5 = $var3;
                $var10.$zPosition6 = $var4;
                $var10.$yaw1 = $var27$index;
                $var10.$pitch2 = $var7;
            }
        }
        s: {
            if ($this.$sendVelocityUpdates) {
                $par1List = $this.$myEntity;
                var$3 = $par1List.$motionX;
                $var13 = var$3 - $this.$motionX0;
                var$5 = $par1List.$motionY;
                $var15 = var$5 - $this.$motionY0;
                var$27 = $par1List.$motionZ;
                $var17 = var$27 - $this.$motionZ0;
                $var21 = $var13 * $var13 + $var15 * $var15 + $var17 * $var17;
                if ($var21 <= 4.0E-4) {
                    if ($var21 <= 0.0)
                        break s;
                    if (var$3 !== 0.0)
                        break s;
                    if (var$5 !== 0.0)
                        break s;
                    if (var$27 !== 0.0)
                        break s;
                }
                $this.$motionX0 = var$3;
                $this.$motionY0 = var$5;
                $this.$motionZ0 = var$27;
                $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, var$3, var$5, var$27);
                $par1List = $this.$trackingPlayers.$backingMap;
                if ($par1List.$cachedKeySet === null) {
                    $var26 = new ju_HashMap$1;
                    $var26.$this$0 = $par1List;
                    $par1List.$cachedKeySet = $var26;
                }
                $var29 = $par1List.$cachedKeySet.$iterator();
                $var27$index = $var23 instanceof nms_Packet3Chat;
                $var26 = $var23;
                while ($var29.$hasNext()) {
                    t: {
                        $par1List = ($var29.$next()).$playerNetServerHandler;
                        if ($var27$index) {
                            $var7 = $par1List.$playerEntity.$chatVisibility;
                            if ($var7 == 2)
                                break t;
                            if ($var7 == 1 && !$var26.$isServer)
                                break t;
                        }
                        try {
                            $par1List = $par1List.$netManager;
                            $ptr = 14;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1List = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($par1List);
                    }
                }
            }
        }
        if ($var10 !== null) {
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var23 = new ju_HashMap$1;
                $var23.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var23;
            }
            var$9 = $par1List.$cachedKeySet.$iterator();
            $var27$index = $var10 instanceof nms_Packet3Chat;
            $var23 = $var10;
            while (var$9.$hasNext()) {
                u: {
                    $par1List = (var$9.$next()).$playerNetServerHandler;
                    if ($var27$index) {
                        $var7 = $par1List.$playerEntity.$chatVisibility;
                        if ($var7 == 2)
                            break u;
                        if ($var7 == 1 && !$var23.$isServer)
                            break u;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
        }
        $ptr = 11;
        continue main;
    case 3:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1List, $var23);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        m: while (true) {
            while (true) {
                if (!$var29.$hasNext())
                    break m;
                $par1List = ($var29.$next()).$playerNetServerHandler;
                if (!$var2)
                    break;
                $var4 = $par1List.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                $par1List = $par1List.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        $par1List = $this.$myEntity;
        if ($par1List instanceof nms_EntityPlayerMP)
            v: {
                $par1List = $par1List.$playerNetServerHandler;
                if ($var2) {
                    $var2 = $par1List.$playerEntity.$chatVisibility;
                    if ($var2 == 2)
                        break v;
                    if ($var2 == 1 && !var$9.$isServer)
                        break v;
                }
                try {
                    $par1List = $par1List.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1List = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($par1List);
            }
        $this.$myEntity.$velocityChanged = 0;
        return;
    case 4:
        nms_EntityTrackerEntry_func_111190_b($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$ticks = $this.$ticks + 1 | 0;
        $par1List = $this.$myEntity;
        if ($par1List.$velocityChanged) {
            $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var26 = new ju_HashMap$1;
                $var26.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var26;
            }
            $var29 = $par1List.$cachedKeySet.$iterator();
            $var2 = $var23 instanceof nms_Packet3Chat;
            var$9 = $var23;
            while ($var29.$hasNext()) {
                b: {
                    $par1List = ($var29.$next()).$playerNetServerHandler;
                    if ($var2) {
                        $var4 = $par1List.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break b;
                        if ($var4 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
            $par1List = $this.$myEntity;
            if ($par1List instanceof nms_EntityPlayerMP)
                w: {
                    $par1List = $par1List.$playerNetServerHandler;
                    if ($var2) {
                        $var2 = $par1List.$playerEntity.$chatVisibility;
                        if ($var2 == 2)
                            break w;
                        if ($var2 == 1 && !var$9.$isServer)
                            break w;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            $this.$myEntity.$velocityChanged = 0;
        }
        return;
    case 5:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1List, $var23);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        $this.$myEntity.$velocityChanged = 0;
        return;
    case 6:
        $tmp = nms_ItemMap_getMapData($var23, var$9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var26 = $tmp;
        $var4 = $par1List.$modCount;
        $var7 = $par1List.$size();
        if (!(0 >= $var7 ? 0 : 1)) {
            $ptr = 4;
            continue main;
        }
        if ($var4 < $par1List.$modCount) {
            $par1List = new ju_ConcurrentModificationException;
            $par1List.$suppressionEnabled = 1;
            $par1List.$writableStackTrace = 1;
            $rt_throw($par1List);
        }
        $var27$index = 0 + 1 | 0;
        $var29 = $par1List.$get(0);
        nms_MapData_updateVisiblePlayers($var26, $var29, var$9);
        $var23 = nms_Item_map;
        $var10 = $this.$myEntity.$worldObj;
        $ptr = 8;
        continue main;
    case 7:
        nms_EntityTrackerEntry_func_111190_b($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$ridingEntity0 = 1;
        var$13 = $this.$myEntity.$getRotationYawHead() * 256.0 / 360.0;
        $var25 = var$13 | 0;
        if (var$13 < $var25)
            $var25 = $var25 - 1 | 0;
        $var2 = $var25 - $this.$lastHeadMotion | 0;
        if ($var2 < 0)
            $var2 =  -$var2 | 0;
        if ($var2 >= 4) {
            $par1List = new nms_Packet35EntityHeadRotation;
            $var2 = $this.$myEntity.$entityId;
            $var4 = $var25 << 24 >> 24;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1List.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1List.$entityId7 = $var2;
            $par1List.$headRotationYaw = $var4;
            $var23 = $this.$trackingPlayers.$backingMap;
            if ($var23.$cachedKeySet === null) {
                $var26 = new ju_HashMap$1;
                $var26.$this$0 = $var23;
                $var23.$cachedKeySet = $var26;
            }
            $var29 = $var23.$cachedKeySet.$iterator();
            $var4 = $par1List instanceof nms_Packet3Chat;
            $var26 = $par1List;
            while ($var29.$hasNext()) {
                w: {
                    $var23 = ($var29.$next()).$playerNetServerHandler;
                    if ($var4) {
                        $var27$index = $var23.$playerEntity.$chatVisibility;
                        if ($var27$index == 2)
                            break w;
                        if ($var27$index == 1 && !$var26.$isServer)
                            break w;
                    }
                    try {
                        $var23 = $var23.$netManager;
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var23 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var23);
                }
            }
            $this.$lastHeadMotion = $var25;
        }
        $this.$myEntity.$isAirBorne = 0;
        $this.$ticks = $this.$ticks + 1 | 0;
        $par1List = $this.$myEntity;
        if ($par1List.$velocityChanged) {
            $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var26 = new ju_HashMap$1;
                $var26.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var26;
            }
            $var29 = $par1List.$cachedKeySet.$iterator();
            $var2 = $var23 instanceof nms_Packet3Chat;
            var$9 = $var23;
            while ($var29.$hasNext()) {
                x: {
                    $par1List = ($var29.$next()).$playerNetServerHandler;
                    if ($var2) {
                        $var4 = $par1List.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break x;
                        if ($var4 == 1 && !var$9.$isServer)
                            break x;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
            $par1List = $this.$myEntity;
            if ($par1List instanceof nms_EntityPlayerMP)
                y: {
                    $par1List = $par1List.$playerNetServerHandler;
                    if ($var2) {
                        $var2 = $par1List.$playerEntity.$chatVisibility;
                        if ($var2 == 2)
                            break y;
                        if ($var2 == 1 && !var$9.$isServer)
                            break y;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            $this.$myEntity.$velocityChanged = 0;
        }
        return;
    case 8:
        $tmp = nms_ItemMap_createMapDataPacket($var23, var$9, $var10, $var29);
        if ($rt_suspending()) {
            break main;
        }
        $var30 = $tmp;
        if ($var30 !== null)
            a: {
                $var23 = $var29.$playerNetServerHandler;
                if ($var30 instanceof nms_Packet3Chat) {
                    $var29 = $var30;
                    $var2 = $var23.$playerEntity.$chatVisibility;
                    if ($var2 == 2)
                        break a;
                    if ($var2 == 1 && !$var29.$isServer)
                        break a;
                }
                try {
                    $var23 = $var23.$netManager;
                    $ptr = 10;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var23 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var23);
            }
        $var27$index_0 = $var27$index;
        if (!($var27$index_0 >= $var7 ? 0 : 1)) {
            $ptr = 4;
            continue main;
        }
        if ($var4 < $par1List.$modCount) {
            $par1List = new ju_ConcurrentModificationException;
            $par1List.$suppressionEnabled = 1;
            $par1List.$writableStackTrace = 1;
            $rt_throw($par1List);
        }
        $var27$index = $var27$index_0 + 1 | 0;
        $var29 = $par1List.$get($var27$index_0);
        nms_MapData_updateVisiblePlayers($var26, $var29, var$9);
        $var23 = nms_Item_map;
        $var10 = $this.$myEntity.$worldObj;
        continue main;
    case 9:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var23, $par1List);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var23 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var23);
        }
        m: while (true) {
            while (true) {
                if (!$var29.$hasNext())
                    break m;
                $var23 = ($var29.$next()).$playerNetServerHandler;
                if (!$var2)
                    break;
                $var4 = $var23.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if ($var26.$isServer)
                    break;
            }
            try {
                $var23 = $var23.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var23 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var23);
        }
        $this.$lastYaw = $var2_0;
        $this.$lastPitch = $var3;
        $par1List = $this.$myEntity;
        $this.$lastScaledXPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posX);
        $par1List = $this.$myEntity;
        var$3 = $par1List.$posY * 32.0;
        $var2 = var$3 | 0;
        if (var$3 < $var2)
            $var2 = $var2 - 1 | 0;
        $this.$lastScaledYPosition = $var2;
        $this.$lastScaledZPosition = nms_EnumEntitySize_multiplyBy32AndRound($par1List.$myEntitySize, $par1List.$posZ);
        $ptr = 7;
        continue main;
    case 10:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var23, $var30);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var23 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var23);
        }
        $var27$index_0 = $var27$index;
        if (!($var27$index_0 >= $var7 ? 0 : 1)) {
            $ptr = 4;
            continue main;
        }
        if ($var4 < $par1List.$modCount) {
            $par1List = new ju_ConcurrentModificationException;
            $par1List.$suppressionEnabled = 1;
            $par1List.$writableStackTrace = 1;
            $rt_throw($par1List);
        }
        $var27$index = $var27$index_0 + 1 | 0;
        $var29 = $par1List.$get($var27$index_0);
        nms_MapData_updateVisiblePlayers($var26, $var29, var$9);
        $var23 = nms_Item_map;
        $var10 = $this.$myEntity.$worldObj;
        $ptr = 8;
        continue main;
    case 11:
        nms_EntityTrackerEntry_func_111190_b($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($var11) {
            $this.$lastScaledXPosition = $var2;
            $this.$lastScaledYPosition = $var3;
            $this.$lastScaledZPosition = $var4;
        }
        if ($var12) {
            $this.$lastYaw = $var5;
            $this.$lastPitch = $var6;
        }
        $this.$ridingEntity0 = 0;
        var$13 = $this.$myEntity.$getRotationYawHead() * 256.0 / 360.0;
        $var25 = var$13 | 0;
        if (var$13 < $var25)
            $var25 = $var25 - 1 | 0;
        $var2 = $var25 - $this.$lastHeadMotion | 0;
        if ($var2 < 0)
            $var2 =  -$var2 | 0;
        if ($var2 >= 4) {
            $par1List = new nms_Packet35EntityHeadRotation;
            $var2 = $this.$myEntity.$entityId;
            $var4 = $var25 << 24 >> 24;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par1List.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1List.$entityId7 = $var2;
            $par1List.$headRotationYaw = $var4;
            $var23 = $this.$trackingPlayers.$backingMap;
            if ($var23.$cachedKeySet === null) {
                $var26 = new ju_HashMap$1;
                $var26.$this$0 = $var23;
                $var23.$cachedKeySet = $var26;
            }
            $var29 = $var23.$cachedKeySet.$iterator();
            $var4 = $par1List instanceof nms_Packet3Chat;
            $var26 = $par1List;
            while ($var29.$hasNext()) {
                c: {
                    $var23 = ($var29.$next()).$playerNetServerHandler;
                    if ($var4) {
                        $var27$index = $var23.$playerEntity.$chatVisibility;
                        if ($var27$index == 2)
                            break c;
                        if ($var27$index == 1 && !$var26.$isServer)
                            break c;
                    }
                    try {
                        $var23 = $var23.$netManager;
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var23 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var23);
                }
            }
            $this.$lastHeadMotion = $var25;
        }
        $this.$myEntity.$isAirBorne = 0;
        $this.$ticks = $this.$ticks + 1 | 0;
        $par1List = $this.$myEntity;
        if ($par1List.$velocityChanged) {
            $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var26 = new ju_HashMap$1;
                $var26.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var26;
            }
            $var29 = $par1List.$cachedKeySet.$iterator();
            $var2 = $var23 instanceof nms_Packet3Chat;
            var$9 = $var23;
            while ($var29.$hasNext()) {
                z: {
                    $par1List = ($var29.$next()).$playerNetServerHandler;
                    if ($var2) {
                        $var4 = $par1List.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break z;
                        if ($var4 == 1 && !var$9.$isServer)
                            break z;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
            $par1List = $this.$myEntity;
            if ($par1List instanceof nms_EntityPlayerMP)
                ba: {
                    $par1List = $par1List.$playerNetServerHandler;
                    if ($var2) {
                        $var2 = $par1List.$playerEntity.$chatVisibility;
                        if ($var2 == 2)
                            break ba;
                        if ($var2 == 1 && !var$9.$isServer)
                            break ba;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            $this.$myEntity.$velocityChanged = 0;
        }
        return;
    case 12:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var23, $par1List);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var23 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var23);
        }
        m: while (true) {
            while (true) {
                if (!$var29.$hasNext())
                    break m;
                $var23 = ($var29.$next()).$playerNetServerHandler;
                if (!$var4)
                    break;
                $var27$index = $var23.$playerEntity.$chatVisibility;
                if ($var27$index == 2)
                    continue;
                if ($var27$index != 1)
                    break;
                if ($var26.$isServer)
                    break;
            }
            try {
                $var23 = $var23.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var23 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var23);
        }
        $this.$lastHeadMotion = $var25;
        $this.$myEntity.$isAirBorne = 0;
        $this.$ticks = $this.$ticks + 1 | 0;
        $par1List = $this.$myEntity;
        if ($par1List.$velocityChanged) {
            $var23 = nms_Packet28EntityVelocity__init_($par1List.$entityId, $par1List.$motionX, $par1List.$motionY, $par1List.$motionZ);
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var26 = new ju_HashMap$1;
                $var26.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var26;
            }
            $var29 = $par1List.$cachedKeySet.$iterator();
            $var2 = $var23 instanceof nms_Packet3Chat;
            var$9 = $var23;
            while ($var29.$hasNext()) {
                bb: {
                    $par1List = ($var29.$next()).$playerNetServerHandler;
                    if ($var2) {
                        $var4 = $par1List.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break bb;
                        if ($var4 == 1 && !var$9.$isServer)
                            break bb;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
            $par1List = $this.$myEntity;
            if ($par1List instanceof nms_EntityPlayerMP)
                bc: {
                    $par1List = $par1List.$playerNetServerHandler;
                    if ($var2) {
                        $var2 = $par1List.$playerEntity.$chatVisibility;
                        if ($var2 == 2)
                            break bc;
                        if ($var2 == 1 && !var$9.$isServer)
                            break bc;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            $this.$myEntity.$velocityChanged = 0;
        }
        return;
    case 13:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1List, $var10);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        m: while (true) {
            while (true) {
                if (!var$9.$hasNext())
                    break m;
                $par1List = (var$9.$next()).$playerNetServerHandler;
                if (!$var27$index)
                    break;
                $var7 = $par1List.$playerEntity.$chatVisibility;
                if ($var7 == 2)
                    continue;
                if ($var7 != 1)
                    break;
                if ($var23.$isServer)
                    break;
            }
            try {
                $par1List = $par1List.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        $ptr = 11;
        continue main;
    case 14:
        l: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1List, $var23);
                if ($rt_suspending()) {
                    break main;
                }
                break l;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        m: while (true) {
            while (true) {
                if (!$var29.$hasNext())
                    break m;
                $par1List = ($var29.$next()).$playerNetServerHandler;
                if (!$var27$index)
                    break;
                $var7 = $par1List.$playerEntity.$chatVisibility;
                if ($var7 == 2)
                    continue;
                if ($var7 != 1)
                    break;
                if ($var26.$isServer)
                    break;
            }
            try {
                $par1List = $par1List.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1List = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($par1List);
        }
        if ($var10 !== null) {
            $par1List = $this.$trackingPlayers.$backingMap;
            if ($par1List.$cachedKeySet === null) {
                $var23 = new ju_HashMap$1;
                $var23.$this$0 = $par1List;
                $par1List.$cachedKeySet = $var23;
            }
            var$9 = $par1List.$cachedKeySet.$iterator();
            $var27$index = $var10 instanceof nms_Packet3Chat;
            $var23 = $var10;
            while (var$9.$hasNext()) {
                bb: {
                    $par1List = (var$9.$next()).$playerNetServerHandler;
                    if ($var27$index) {
                        $var7 = $par1List.$playerEntity.$chatVisibility;
                        if ($var7 == 2)
                            break bb;
                        if ($var7 == 1 && !$var23.$isServer)
                            break bb;
                    }
                    try {
                        $par1List = $par1List.$netManager;
                        $ptr = 13;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1List = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($par1List);
                }
            }
        }
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1List, $var23, var$3, $var13, var$5, $var25, $var2, $var26, var$9, $var29, $var4, var$12, var$13, $var2_0, $var3, $var5, $var6, $var7, $var8, $var9, $var10, $var27$index, $var11, $var12, $var27$index_0, $var15, var$27, $var17, $var21, $var30, $ptr);
},
nms_EntityTrackerEntry_func_111190_b = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$myEntity;
        $var1 = var$1.$dataWatcher;
        if ($var1.$objectChanged) {
            var$3 = new nms_Packet40EntityMetadata;
            var$4 = var$1.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$3.$entityId4 = var$4;
            var$3.$metadata1 = nms_DataWatcher_unwatchAndReturnAllWatched($var1);
            var$1 = $this.$trackingPlayers.$backingMap;
            if (var$1.$cachedKeySet === null) {
                $var1 = new ju_HashMap$1;
                $var1.$this$0 = var$1;
                var$1.$cachedKeySet = $var1;
            }
            var$5 = var$1.$cachedKeySet.$iterator();
            var$6 = var$3 instanceof nms_Packet3Chat;
            $var1 = var$3;
            while (var$5.$hasNext()) {
                a: {
                    var$1 = (var$5.$next()).$playerNetServerHandler;
                    if (var$6) {
                        var$7 = var$1.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break a;
                        if (var$7 == 1 && !$var1.$isServer)
                            break a;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0(var$1);
                }
            }
            var$1 = $this.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                b: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$6) {
                        var$6 = var$1.$playerEntity.$chatVisibility;
                        if (var$6 == 2)
                            break b;
                        if (var$6 == 1 && !$var1.$isServer)
                            break b;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0(var$1);
                }
        }
        var$1 = $this.$myEntity;
        if (var$1 instanceof nms_EntityLivingBase) {
            var$1 = var$1;
            if (var$1.$attributeMap === null)
                var$1.$attributeMap = nms_ServersideAttributeMap__init_();
            $var3 = var$1.$attributeMap.$field_111162_d;
            if (!($var3.$backingMap.$elementCount ? 0 : 1)) {
                var$1 = new nms_Packet44UpdateAttributes;
                var$4 = $this.$myEntity.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3 = new ju_ArrayList;
                var$3.$array = $rt_createArray(jl_Object, 10);
                var$1.$field_111004_b = var$3;
                var$1.$field_111005_a = var$4;
                var$3 = $var3.$backingMap;
                if (var$3.$cachedKeySet === null) {
                    $var1 = new ju_HashMap$1;
                    $var1.$this$0 = var$3;
                    var$3.$cachedKeySet = $var1;
                }
                var$9 = var$3.$cachedKeySet.$iterator();
                while (var$9.$hasNext()) {
                    var$3 = var$9.$next();
                    $var1 = var$1.$field_111004_b;
                    var$5 = new nms_Packet44UpdateAttributesSnapshot;
                    var$10 = var$3.$field_111136_b.$field_111115_a;
                    var$11 = var$3.$baseValue;
                    var$12 = ju_HashSet__init_();
                    var$4 = 0;
                    while (var$4 < 3) {
                        var$13 = var$3.$field_111137_c;
                        if (var$4 >= (-128) && var$4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$14 = jl_Integer_integerCache.data[var$4 + 128 | 0];
                        } else {
                            var$14 = new jl_Integer;
                            var$14.$value = var$4;
                        }
                        if (var$14 === null) {
                            var$13 = var$13.$elementData.data[0];
                            while (var$13 !== null && var$13.$key !== null) {
                                var$13 = var$13.$next3;
                            }
                        } else {
                            var$15 = var$14.$value;
                            var$16 = var$13.$elementData.data;
                            var$13 = var$16[var$15 & (var$16.length - 1 | 0)];
                            while (var$13 !== null) {
                                if (var$13.$origKeyHash == var$15) {
                                    var$17 = var$13.$key;
                                    if (var$14 !== var$17 && !(var$14 === var$17 ? 1 : var$17 instanceof jl_Integer && var$17.$value == var$15 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$13 = var$13.$next3;
                            }
                        }
                        var$13 = (var$13 === null ? null : var$13.$value0).$iterator();
                        while (var$13.$hasNext()) {
                            var$17 = var$13.$next();
                            if (!(ju_HashMap_putImpl(var$12.$backingMap, var$17, var$12) !== null ? 0 : 1))
                                continue;
                        }
                        var$4 = var$4 + 1 | 0;
                    }
                    var$5.$field_142045_a = var$1;
                    var$5.$field_142043_b = var$10;
                    var$5.$field_142044_c = var$11;
                    var$5.$field_142042_d = var$12;
                    ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
                    var$16 = $var1.$array.data;
                    var$6 = $var1.$size0;
                    $var1.$size0 = var$6 + 1 | 0;
                    var$16[var$6] = var$5;
                    $var1.$modCount = $var1.$modCount + 1 | 0;
                }
                var$3 = $this.$trackingPlayers.$backingMap;
                if (var$3.$cachedKeySet === null) {
                    $var1 = new ju_HashMap$1;
                    $var1.$this$0 = var$3;
                    var$3.$cachedKeySet = $var1;
                }
                var$12 = var$3.$cachedKeySet.$iterator();
                var$6 = var$1 instanceof nms_Packet3Chat;
                $var1 = var$1;
                while (var$12.$hasNext()) {
                    c: {
                        var$3 = (var$12.$next()).$playerNetServerHandler;
                        if (var$6) {
                            var$7 = var$3.$playerEntity.$chatVisibility;
                            if (var$7 == 2)
                                break c;
                            if (var$7 == 1 && !$var1.$isServer)
                                break c;
                        }
                        try {
                            var$3 = var$3.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$3);
                    }
                }
                var$3 = $this.$myEntity;
                if (var$3 instanceof nms_EntityPlayerMP)
                    d: {
                        var$3 = var$3.$playerNetServerHandler;
                        if (var$6) {
                            var$6 = var$3.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break d;
                            if (var$6 == 1 && !$var1.$isServer)
                                break d;
                        }
                        try {
                            var$3 = var$3.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$1);
                    }
            }
            var$1 = $var3.$backingMap;
            if (var$1.$elementCount > 0) {
                var$1.$elementCount = 0;
                var$16 = var$1.$elementData.data;
                var$3 = null;
                var$4 = 0;
                var$6 = var$16.length;
                if (var$4 > var$6) {
                    var$1 = new jl_IllegalArgumentException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                while (var$4 < var$6) {
                    var$7 = var$4 + 1 | 0;
                    var$16[var$4] = var$3;
                    var$4 = var$7;
                }
                var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
            }
        }
        return;
    case 1:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$1);
        }
        f: while (true) {
            while (true) {
                if (!var$5.$hasNext())
                    break f;
                var$1 = (var$5.$next()).$playerNetServerHandler;
                if (!var$6)
                    break;
                var$7 = var$1.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    continue;
                if (var$7 != 1)
                    break;
                if ($var1.$isServer)
                    break;
            }
            try {
                var$1 = var$1.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$1);
        }
        var$1 = $this.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            g: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$6) {
                    var$6 = var$1.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break g;
                    if (var$6 == 1 && !$var1.$isServer)
                        break g;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0(var$1);
            }
        var$1 = $this.$myEntity;
        if (var$1 instanceof nms_EntityLivingBase) {
            var$1 = var$1;
            if (var$1.$attributeMap === null)
                var$1.$attributeMap = nms_ServersideAttributeMap__init_();
            $var3 = var$1.$attributeMap.$field_111162_d;
            if (!($var3.$backingMap.$elementCount ? 0 : 1)) {
                var$1 = new nms_Packet44UpdateAttributes;
                var$4 = $this.$myEntity.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3 = new ju_ArrayList;
                var$3.$array = $rt_createArray(jl_Object, 10);
                var$1.$field_111004_b = var$3;
                var$1.$field_111005_a = var$4;
                var$3 = $var3.$backingMap;
                if (var$3.$cachedKeySet === null) {
                    $var1 = new ju_HashMap$1;
                    $var1.$this$0 = var$3;
                    var$3.$cachedKeySet = $var1;
                }
                var$9 = var$3.$cachedKeySet.$iterator();
                while (var$9.$hasNext()) {
                    var$3 = var$9.$next();
                    $var1 = var$1.$field_111004_b;
                    var$5 = new nms_Packet44UpdateAttributesSnapshot;
                    var$10 = var$3.$field_111136_b.$field_111115_a;
                    var$11 = var$3.$baseValue;
                    var$12 = ju_HashSet__init_();
                    var$4 = 0;
                    while (var$4 < 3) {
                        var$13 = var$3.$field_111137_c;
                        if (var$4 >= (-128) && var$4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$14 = jl_Integer_integerCache.data[var$4 + 128 | 0];
                        } else {
                            var$14 = new jl_Integer;
                            var$14.$value = var$4;
                        }
                        if (var$14 === null) {
                            var$13 = var$13.$elementData.data[0];
                            while (var$13 !== null && var$13.$key !== null) {
                                var$13 = var$13.$next3;
                            }
                        } else {
                            var$15 = var$14.$value;
                            var$16 = var$13.$elementData.data;
                            var$13 = var$16[var$15 & (var$16.length - 1 | 0)];
                            while (var$13 !== null) {
                                if (var$13.$origKeyHash == var$15) {
                                    var$17 = var$13.$key;
                                    if (var$14 !== var$17 && !(var$14 === var$17 ? 1 : var$17 instanceof jl_Integer && var$17.$value == var$15 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$13 = var$13.$next3;
                            }
                        }
                        var$13 = (var$13 === null ? null : var$13.$value0).$iterator();
                        while (var$13.$hasNext()) {
                            var$17 = var$13.$next();
                            if (!(ju_HashMap_putImpl(var$12.$backingMap, var$17, var$12) !== null ? 0 : 1))
                                continue;
                        }
                        var$4 = var$4 + 1 | 0;
                    }
                    var$5.$field_142045_a = var$1;
                    var$5.$field_142043_b = var$10;
                    var$5.$field_142044_c = var$11;
                    var$5.$field_142042_d = var$12;
                    ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
                    var$16 = $var1.$array.data;
                    var$6 = $var1.$size0;
                    $var1.$size0 = var$6 + 1 | 0;
                    var$16[var$6] = var$5;
                    $var1.$modCount = $var1.$modCount + 1 | 0;
                }
                var$3 = $this.$trackingPlayers.$backingMap;
                if (var$3.$cachedKeySet === null) {
                    $var1 = new ju_HashMap$1;
                    $var1.$this$0 = var$3;
                    var$3.$cachedKeySet = $var1;
                }
                var$12 = var$3.$cachedKeySet.$iterator();
                var$6 = var$1 instanceof nms_Packet3Chat;
                $var1 = var$1;
                while (var$12.$hasNext()) {
                    h: {
                        var$3 = (var$12.$next()).$playerNetServerHandler;
                        if (var$6) {
                            var$7 = var$3.$playerEntity.$chatVisibility;
                            if (var$7 == 2)
                                break h;
                            if (var$7 == 1 && !$var1.$isServer)
                                break h;
                        }
                        try {
                            var$3 = var$3.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$3);
                    }
                }
                var$3 = $this.$myEntity;
                if (var$3 instanceof nms_EntityPlayerMP)
                    i: {
                        var$3 = var$3.$playerNetServerHandler;
                        if (var$6) {
                            var$6 = var$3.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break i;
                            if (var$6 == 1 && !$var1.$isServer)
                                break i;
                        }
                        try {
                            var$3 = var$3.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$1);
                    }
            }
            var$1 = $var3.$backingMap;
            if (var$1.$elementCount > 0) {
                var$1.$elementCount = 0;
                var$16 = var$1.$elementData.data;
                var$3 = null;
                var$4 = 0;
                var$6 = var$16.length;
                if (var$4 > var$6) {
                    var$1 = new jl_IllegalArgumentException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                while (var$4 < var$6) {
                    var$7 = var$4 + 1 | 0;
                    var$16[var$4] = var$3;
                    var$4 = var$7;
                }
                var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
            }
        }
        return;
    case 2:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$1);
        }
        var$1 = $this.$myEntity;
        if (var$1 instanceof nms_EntityLivingBase) {
            var$1 = var$1;
            if (var$1.$attributeMap === null)
                var$1.$attributeMap = nms_ServersideAttributeMap__init_();
            $var3 = var$1.$attributeMap.$field_111162_d;
            if (!($var3.$backingMap.$elementCount ? 0 : 1)) {
                var$1 = new nms_Packet44UpdateAttributes;
                var$4 = $this.$myEntity.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3 = new ju_ArrayList;
                var$3.$array = $rt_createArray(jl_Object, 10);
                var$1.$field_111004_b = var$3;
                var$1.$field_111005_a = var$4;
                var$3 = $var3.$backingMap;
                if (var$3.$cachedKeySet === null) {
                    $var1 = new ju_HashMap$1;
                    $var1.$this$0 = var$3;
                    var$3.$cachedKeySet = $var1;
                }
                var$9 = var$3.$cachedKeySet.$iterator();
                while (var$9.$hasNext()) {
                    var$3 = var$9.$next();
                    $var1 = var$1.$field_111004_b;
                    var$5 = new nms_Packet44UpdateAttributesSnapshot;
                    var$10 = var$3.$field_111136_b.$field_111115_a;
                    var$11 = var$3.$baseValue;
                    var$12 = ju_HashSet__init_();
                    var$4 = 0;
                    while (var$4 < 3) {
                        var$13 = var$3.$field_111137_c;
                        if (var$4 >= (-128) && var$4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$14 = jl_Integer_integerCache.data[var$4 + 128 | 0];
                        } else {
                            var$14 = new jl_Integer;
                            var$14.$value = var$4;
                        }
                        if (var$14 === null) {
                            var$13 = var$13.$elementData.data[0];
                            while (var$13 !== null && var$13.$key !== null) {
                                var$13 = var$13.$next3;
                            }
                        } else {
                            var$15 = var$14.$value;
                            var$16 = var$13.$elementData.data;
                            var$13 = var$16[var$15 & (var$16.length - 1 | 0)];
                            while (var$13 !== null) {
                                if (var$13.$origKeyHash == var$15) {
                                    var$17 = var$13.$key;
                                    if (var$14 !== var$17 && !(var$14 === var$17 ? 1 : var$17 instanceof jl_Integer && var$17.$value == var$15 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$13 = var$13.$next3;
                            }
                        }
                        var$13 = (var$13 === null ? null : var$13.$value0).$iterator();
                        while (var$13.$hasNext()) {
                            var$17 = var$13.$next();
                            if (!(ju_HashMap_putImpl(var$12.$backingMap, var$17, var$12) !== null ? 0 : 1))
                                continue;
                        }
                        var$4 = var$4 + 1 | 0;
                    }
                    var$5.$field_142045_a = var$1;
                    var$5.$field_142043_b = var$10;
                    var$5.$field_142044_c = var$11;
                    var$5.$field_142042_d = var$12;
                    ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
                    var$16 = $var1.$array.data;
                    var$6 = $var1.$size0;
                    $var1.$size0 = var$6 + 1 | 0;
                    var$16[var$6] = var$5;
                    $var1.$modCount = $var1.$modCount + 1 | 0;
                }
                var$3 = $this.$trackingPlayers.$backingMap;
                if (var$3.$cachedKeySet === null) {
                    $var1 = new ju_HashMap$1;
                    $var1.$this$0 = var$3;
                    var$3.$cachedKeySet = $var1;
                }
                var$12 = var$3.$cachedKeySet.$iterator();
                var$6 = var$1 instanceof nms_Packet3Chat;
                $var1 = var$1;
                while (var$12.$hasNext()) {
                    j: {
                        var$3 = (var$12.$next()).$playerNetServerHandler;
                        if (var$6) {
                            var$7 = var$3.$playerEntity.$chatVisibility;
                            if (var$7 == 2)
                                break j;
                            if (var$7 == 1 && !$var1.$isServer)
                                break j;
                        }
                        try {
                            var$3 = var$3.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$3 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$3);
                    }
                }
                var$3 = $this.$myEntity;
                if (var$3 instanceof nms_EntityPlayerMP)
                    k: {
                        var$3 = var$3.$playerNetServerHandler;
                        if (var$6) {
                            var$6 = var$3.$playerEntity.$chatVisibility;
                            if (var$6 == 2)
                                break k;
                            if (var$6 == 1 && !$var1.$isServer)
                                break k;
                        }
                        try {
                            var$3 = var$3.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0(var$1);
                    }
            }
            var$1 = $var3.$backingMap;
            if (var$1.$elementCount > 0) {
                var$1.$elementCount = 0;
                var$16 = var$1.$elementData.data;
                var$3 = null;
                var$4 = 0;
                var$6 = var$16.length;
                if (var$4 > var$6) {
                    var$1 = new jl_IllegalArgumentException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                while (var$4 < var$6) {
                    var$7 = var$4 + 1 | 0;
                    var$16[var$4] = var$3;
                    var$4 = var$7;
                }
                var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
            }
        }
        return;
    case 3:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$3);
        }
        f: while (true) {
            while (true) {
                if (!var$12.$hasNext())
                    break f;
                var$3 = (var$12.$next()).$playerNetServerHandler;
                if (!var$6)
                    break;
                var$7 = var$3.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    continue;
                if (var$7 != 1)
                    break;
                if ($var1.$isServer)
                    break;
            }
            try {
                var$3 = var$3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$3);
        }
        var$3 = $this.$myEntity;
        if (var$3 instanceof nms_EntityPlayerMP)
            g: {
                var$3 = var$3.$playerNetServerHandler;
                if (var$6) {
                    var$6 = var$3.$playerEntity.$chatVisibility;
                    if (var$6 == 2)
                        break g;
                    if (var$6 == 1 && !$var1.$isServer)
                        break g;
                }
                try {
                    var$3 = var$3.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0(var$1);
            }
        var$1 = $var3.$backingMap;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$16 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$6 = var$16.length;
            if (var$4 > var$6) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$6) {
                var$7 = var$4 + 1 | 0;
                var$16[var$4] = var$3;
                var$4 = var$7;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        return;
    case 4:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$1);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$1);
        }
        var$1 = $var3.$backingMap;
        if (var$1.$elementCount > 0) {
            var$1.$elementCount = 0;
            var$16 = var$1.$elementData.data;
            var$3 = null;
            var$4 = 0;
            var$6 = var$16.length;
            if (var$4 > var$6) {
                var$1 = new jl_IllegalArgumentException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            while (var$4 < var$6) {
                var$7 = var$4 + 1 | 0;
                var$16[var$4] = var$3;
                var$4 = var$7;
            }
            var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityTrackerEntry_tryStartWachingThis = ($this, $par1EntityPlayerMP) => {
    let $var2, $var4, $var10, var$5, var$6, $var6, $var11, var$9, var$10, var$11, var$12, $var8, $var14, $var13, $var9, var$17, var$18, var$19, var$20, var$21, $var12, var$23, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();$var12 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var9 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var11 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var10 = $thread.pop();$var4 = $thread.pop();$var2 =
        $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($par1EntityPlayerMP !== $this.$myEntity) {
                b: {
                    $var2 = $par1EntityPlayerMP.$posX - ($this.$lastScaledXPosition / 32 | 0);
                    $var4 = $par1EntityPlayerMP.$posZ - ($this.$lastScaledZPosition / 32 | 0);
                    $var10 = $this.$blocksDistanceThreshold;
                    var$5 =  -$var10 | 0;
                    if ($var2 >= var$5) {
                        var$6 = $var10;
                        if ($var2 <= var$6 && $var4 >= var$5 && $var4 <= var$6)
                            break b;
                    }
                    if (!ju_HashSet_contains($this.$trackingPlayers, $par1EntityPlayerMP))
                        break a;
                    $var6 = ju_HashMap_removeByKey($this.$trackingPlayers.$backingMap, $par1EntityPlayerMP);
                    $par1EntityPlayerMP = $par1EntityPlayerMP.$destroyedItemsNetCache;
                    $var10 = $this.$myEntity.$entityId;
                    if ($var10 >= (-128) && $var10 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var6 = jl_Integer_integerCache.data[$var10 + 128 | 0];
                    } else {
                        $var6 = new jl_Integer;
                        $var6.$value = $var10;
                    }
                    $var10 = $par1EntityPlayerMP.$size2;
                    if ($var10 >= 0) {
                        ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1EntityPlayerMP, $var10), $var6);
                        break a;
                    }
                    $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                    $par1EntityPlayerMP.$suppressionEnabled = 1;
                    $par1EntityPlayerMP.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayerMP);
                }
                if (!ju_HashSet_contains($this.$trackingPlayers, $par1EntityPlayerMP)) {
                    $var11 = $par1EntityPlayerMP.$worldObj.$thePlayerManager0;
                    $var6 = $this.$myEntity;
                    $var10 = $var6.$chunkCoordX;
                    var$9 = $var6.$chunkCoordZ;
                    var$10 = 0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        c: {
            $tmp = nms_PlayerManager_getOrCreateChunkWatcher($var11, $var10, var$9, var$10);
            if ($rt_suspending()) {
                break main;
            }
            $var6 = $tmp;
            if ($var6 === null)
                $var10 = 0;
            else {
                $var11 = $var6.$playersInChunk;
                var$11 = 0;
                var$10 = $var11.$modCount;
                var$12 = $var11.$size();
                b: {
                    while (true) {
                        if (!(var$11 >= var$12 ? 0 : 1)) {
                            $var10 = 0;
                            break b;
                        }
                        if (var$10 < $var11.$modCount)
                            break;
                        var$9 = var$11 + 1 | 0;
                        $var8 = $var11.$get(var$11);
                        if ($var8 !== $par1EntityPlayerMP ? ($var8 !== null ? $var8.$equals($par1EntityPlayerMP) : $par1EntityPlayerMP !== null ? 0 : 1) : 1) {
                            $var10 = 1;
                            break b;
                        }
                        var$11 = var$9;
                    }
                    $par1EntityPlayerMP = new ju_ConcurrentModificationException;
                    $par1EntityPlayerMP.$suppressionEnabled = 1;
                    $par1EntityPlayerMP.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayerMP);
                }
                if ($var10) {
                    $var11 = $par1EntityPlayerMP.$loadedChunks;
                    $var6 = $var6.$chunkLocation;
                    $var8 = new ju_LinkedList$SequentialListIterator;
                    $var14 = $var11.$firstEntry;
                    $var13 = null;
                    $var8.$this$02 = $var11;
                    $var8.$version = $var11.$modCount;
                    $var8.$nextEntry1 = $var14;
                    $var8.$prevEntry = $var13;
                    $var8.$index4 = 0;
                    d: {
                        while (true) {
                            if (!($var8.$nextEntry1 === null ? 0 : 1)) {
                                $var10 = 0;
                                break d;
                            }
                            $var11 = ju_LinkedList$SequentialListIterator_next($var8);
                            if ($var11 === $var6 ? 1 : $var11 !== null ? $var11.$equals($var6) : $var6 !== null ? 0 : 1)
                                break;
                        }
                        $var10 = 1;
                    }
                    if (!$var10) {
                        $var10 = 1;
                        break c;
                    }
                }
                $var10 = 0;
            }
        }
        if (!(!$var10 && !$this.$myEntity.$forceSpawn)) {
            $var6 = $this.$trackingPlayers;
            ju_HashMap_putImpl($var6.$backingMap, $par1EntityPlayerMP, $var6);
            e: {
                f: {
                    $var6 = nms_EntityTrackerEntry_getPacketForThisEntity($this);
                    $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                    if ($var6 instanceof nms_Packet3Chat) {
                        $var8 = $var6;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 != 2) {
                            if (var$9 != 1)
                                break f;
                            if ($var8.$isServer)
                                break f;
                            break e;
                        }
                        break e;
                    }
                }
                try {
                    $var11 = $var11.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var11 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var11);
            }
            $var11 = $this.$myEntity;
            $var8 = $var11.$dataWatcher;
            if (!$var8.$isBlank) {
                $var14 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var9 = new nms_Packet40EntityMetadata;
                $var10 = $var11.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var9.$entityId4 = $var10;
                $var11 = null;
                $var8 = $var8.$watchedObjects;
                if ($var8.$cachedValues === null) {
                    $var13 = new ju_HashMap$2;
                    $var13.$this$01 = $var8;
                    $var8.$cachedValues = $var13;
                }
                $var8 = $var8.$cachedValues.$iterator();
                while ($var8.$hasNext()) {
                    $var13 = $var8.$next();
                    if ($var11 === null) {
                        $var11 = new ju_ArrayList;
                        $var11.$array = $rt_createArray(jl_Object, 10);
                    }
                    ju_ArrayList_ensureCapacity($var11, $var11.$size0 + 1 | 0);
                    var$17 = $var11.$array.data;
                    var$9 = $var11.$size0;
                    $var11.$size0 = var$9 + 1 | 0;
                    var$17[var$9] = $var13;
                    $var11.$modCount = $var11.$modCount + 1 | 0;
                }
                g: {
                    h: {
                        $var9.$metadata1 = $var11;
                        if ($var9 instanceof nms_Packet3Chat) {
                            $var11 = $var9;
                            var$9 = $var14.$playerEntity.$chatVisibility;
                            if (var$9 != 2) {
                                if (var$9 != 1)
                                    break h;
                                if ($var11.$isServer)
                                    break h;
                                break g;
                            }
                            break g;
                        }
                    }
                    try {
                        $var11 = $var14.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var11);
                }
            }
            $var11 = $this.$myEntity;
            if ($var11 instanceof nms_EntityLivingBase) {
                $var8 = $var11;
                if ($var8.$attributeMap === null)
                    $var8.$attributeMap = nms_ServersideAttributeMap__init_();
                $var11 = $var8.$attributeMap;
                $var8 = ju_HashSet__init_();
                $var11 = $var11.$attributesByName.$internalMap;
                if ($var11.$cachedValues === null) {
                    $var13 = new ju_LinkedHashMapValues;
                    $var13.$base = $var11;
                    $var13.$reversed = 0;
                    $var11.$cachedValues = $var13;
                }
                $var13 = $var11.$cachedValues;
                $var14 = new ju_LinkedHashMapIterator$ValueIterator;
                $var11 = $var13.$base;
                $var10 = $var13.$reversed;
                $var14.$base0 = $var11;
                $var14.$reversed0 = $var10;
                $var14.$expectedModCount0 = $var11.$modCount1;
                $var14.$futureEntry = !$var10 ? $var11.$head : $var11.$tail;
                while ($var14.$futureEntry === null ? 0 : 1) {
                    $var11 = ju_LinkedHashMapIterator$ValueIterator_next($var14);
                    if ($var11.$field_111136_b.$shouldWatch)
                        ju_HashMap_putImpl($var8.$backingMap, $var11, $var8);
                }
                if (!($var8.$backingMap.$elementCount ? 0 : 1)) {
                    var$18 = $par1EntityPlayerMP.$playerNetServerHandler;
                    var$19 = new nms_Packet44UpdateAttributes;
                    var$9 = $this.$myEntity.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var11 = new ju_ArrayList;
                    $var11.$array = $rt_createArray(jl_Object, 10);
                    var$19.$field_111004_b = $var11;
                    var$19.$field_111005_a = var$9;
                    $var11 = $var8.$backingMap;
                    if ($var11.$cachedKeySet === null) {
                        $var8 = new ju_HashMap$1;
                        $var8.$this$0 = $var11;
                        $var11.$cachedKeySet = $var8;
                    }
                    var$20 = $var11.$cachedKeySet.$iterator();
                    while (var$20.$hasNext()) {
                        $var11 = var$20.$next();
                        $var8 = var$19.$field_111004_b;
                        $var13 = new nms_Packet44UpdateAttributesSnapshot;
                        var$21 = $var11.$field_111136_b.$field_111115_a;
                        $var2 = $var11.$baseValue;
                        $var14 = ju_HashSet__init_();
                        $var10 = 0;
                        while ($var10 < 3) {
                            $var9 = $var11.$field_111137_c;
                            if ($var10 >= (-128) && $var10 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                $var12 = jl_Integer_integerCache.data[$var10 + 128 | 0];
                            } else {
                                $var12 = new jl_Integer;
                                $var12.$value = $var10;
                            }
                            if ($var12 === null) {
                                $var9 = $var9.$elementData.data[0];
                                while ($var9 !== null && $var9.$key !== null) {
                                    $var9 = $var9.$next3;
                                }
                            } else {
                                var$12 = $var12.$value;
                                var$17 = $var9.$elementData.data;
                                $var9 = var$17[var$12 & (var$17.length - 1 | 0)];
                                while ($var9 !== null) {
                                    if ($var9.$origKeyHash == var$12) {
                                        var$23 = $var9.$key;
                                        if ($var12 !== var$23 && !($var12 === var$23 ? 1 : var$23 instanceof jl_Integer && var$23.$value == var$12 ? 1 : 0) ? 0 : 1)
                                            break;
                                    }
                                    $var9 = $var9.$next3;
                                }
                            }
                            $var9 = ($var9 === null ? null : $var9.$value0).$iterator();
                            while ($var9.$hasNext()) {
                                $var12 = $var9.$next();
                                if (!(ju_HashMap_putImpl($var14.$backingMap, $var12, $var14) !== null ? 0 : 1))
                                    continue;
                            }
                            $var10 = $var10 + 1 | 0;
                        }
                        $var13.$field_142045_a = var$19;
                        $var13.$field_142043_b = var$21;
                        $var13.$field_142044_c = $var2;
                        $var13.$field_142042_d = $var14;
                        ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                        var$17 = $var8.$array.data;
                        var$9 = $var8.$size0;
                        $var8.$size0 = var$9 + 1 | 0;
                        var$17[var$9] = $var13;
                        $var8.$modCount = $var8.$modCount + 1 | 0;
                    }
                    i: {
                        if (var$19 instanceof nms_Packet3Chat) {
                            $var11 = var$19;
                            var$9 = var$18.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break i;
                            if (var$9 == 1 && !$var11.$isServer)
                                break i;
                        }
                        try {
                            $var11 = var$18.$netManager;
                            $ptr = 10;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var11 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var11);
                    }
                }
            }
            $var11 = $this.$myEntity;
            $var2 = $var11.$motionX;
            $this.$motionX0 = $var2;
            $var4 = $var11.$motionY;
            $this.$motionY0 = $var4;
            var$5 = $var11.$motionZ;
            $this.$motionZ0 = var$5;
            if ($this.$sendVelocityUpdates && !($var6 instanceof nms_Packet24MobSpawn))
                j: {
                    $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var8 = nms_Packet28EntityVelocity__init_($var11.$entityId, $var2, $var4, var$5);
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var11 = $var8;
                        var$9 = $var6.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break j;
                        if (var$9 == 1 && !$var11.$isServer)
                            break j;
                    }
                    try {
                        $var6 = $var6.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
            $var6 = $this.$myEntity;
            $var11 = $var6.$ridingEntity;
            if ($var11 !== null)
                k: {
                    $var8 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var13 = new nms_Packet39AttachEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var13.$attachState = 0;
                    $var13.$ridingEntityId = $var6.$entityId;
                    $var13.$vehicleEntityId = $var11.$entityId;
                    if ($var13 instanceof nms_Packet3Chat) {
                        $var6 = $var13;
                        var$9 = $var8.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break k;
                        if (var$9 == 1 && !$var6.$isServer)
                            break k;
                    }
                    try {
                        $var6 = $var8.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLiving) {
                $var14 = $var6.$leashedToEntity;
                if ($var14 !== null)
                    l: {
                        $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var8 = new nms_Packet39AttachEntity;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var8.$attachState = 1;
                        $var8.$ridingEntityId = $var6.$entityId;
                        $var8.$vehicleEntityId = $var14.$entityId;
                        if ($var8 instanceof nms_Packet3Chat) {
                            $var6 = $var8;
                            var$9 = $var11.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break l;
                            if (var$9 == 1 && !$var6.$isServer)
                                break l;
                        }
                        try {
                            $var6 = $var11.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
            }
            m: {
                if ($this.$myEntity instanceof nms_EntityLivingBase) {
                    $var10 = 0;
                    while (true) {
                        if ($var10 >= 5)
                            break m;
                        $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                        if ($var12 !== null) {
                            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                            $var11 = new nms_Packet5PlayerInventory;
                            var$9 = $this.$myEntity.$entityId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var11.$entityID = var$9;
                            $var11.$slot = $var10;
                            $var8 = new nms_ItemStack;
                            var$9 = $var12.$itemID;
                            var$10 = $var12.$stackSize;
                            var$12 = $var12.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var8.$itemID = var$9;
                            $var8.$stackSize = var$10;
                            $var8.$itemDamage = var$12;
                            if (var$12 < 0)
                                $var8.$itemDamage = 0;
                            $var13 = $var12.$stackTagCompound;
                            if ($var13 !== null)
                                $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                            n: {
                                $var11.$itemSlot0 = $var8;
                                if ($var11 instanceof nms_Packet3Chat) {
                                    $var8 = $var11;
                                    var$10 = $var6.$playerEntity.$chatVisibility;
                                    if (var$10 == 2)
                                        break n;
                                    if (var$10 == 1 && !$var8.$isServer)
                                        break n;
                                }
                                try {
                                    $var6 = $var6.$netManager;
                                    $ptr = 8;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var6 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                jl_Throwable_printStackTrace0($var6);
                            }
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                }
            }
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
                $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var8 = new nms_Packet17Sleep;
                $var2 = $var6.$posX;
                var$11 = $var2 | 0;
                if ($var2 < var$11)
                    var$11 = var$11 - 1 | 0;
                $var2 = $var6.$posY;
                var$12 = $var2 | 0;
                if ($var2 < var$12)
                    var$12 = var$12 - 1 | 0;
                $var2 = $var6.$posZ;
                var$10 = $var2 | 0;
                if ($var2 < var$10)
                    var$10 = var$10 - 1 | 0;
                o: {
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var8.$field_73622_e = 0;
                    $var8.$bedX = var$11;
                    $var8.$bedY = var$12;
                    $var8.$bedZ = var$10;
                    $var8.$entityID0 = $var6.$entityId;
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var6 = $var8;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break o;
                        if (var$9 == 1 && !$var6.$isServer)
                            break o;
                    }
                    try {
                        $var6 = $var11.$netManager;
                        $ptr = 9;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
            }
            p: {
                $var6 = $this.$myEntity;
                if ($var6 instanceof nms_EntityLivingBase) {
                    $var6 = $var6.$activePotionsMap;
                    if ($var6.$cachedValues === null) {
                        $var11 = new ju_HashMap$2;
                        $var11.$this$01 = $var6;
                        $var6.$cachedValues = $var11;
                    }
                    $var14 = $var6.$cachedValues.$iterator();
                    while (true) {
                        if (!$var14.$hasNext())
                            break p;
                        q: {
                            $var9 = $var14.$next();
                            $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                            $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$9 = $var6.$playerEntity.$chatVisibility;
                                if (var$9 == 2)
                                    break q;
                                if (var$9 == 1 && !$var8.$isServer)
                                    break q;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                }
            }
        }
        return;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var11);
        }
        $var11 = $this.$myEntity;
        $var8 = $var11.$dataWatcher;
        if (!$var8.$isBlank) {
            $var14 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var9 = new nms_Packet40EntityMetadata;
            $var10 = $var11.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var9.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var9.$entityId4 = $var10;
            $var11 = null;
            $var8 = $var8.$watchedObjects;
            if ($var8.$cachedValues === null) {
                $var13 = new ju_HashMap$2;
                $var13.$this$01 = $var8;
                $var8.$cachedValues = $var13;
            }
            $var8 = $var8.$cachedValues.$iterator();
            while ($var8.$hasNext()) {
                $var13 = $var8.$next();
                if ($var11 === null) {
                    $var11 = new ju_ArrayList;
                    $var11.$array = $rt_createArray(jl_Object, 10);
                }
                ju_ArrayList_ensureCapacity($var11, $var11.$size0 + 1 | 0);
                var$17 = $var11.$array.data;
                var$9 = $var11.$size0;
                $var11.$size0 = var$9 + 1 | 0;
                var$17[var$9] = $var13;
                $var11.$modCount = $var11.$modCount + 1 | 0;
            }
            r: {
                s: {
                    $var9.$metadata1 = $var11;
                    if ($var9 instanceof nms_Packet3Chat) {
                        $var11 = $var9;
                        var$9 = $var14.$playerEntity.$chatVisibility;
                        if (var$9 != 2) {
                            if (var$9 != 1)
                                break s;
                            if ($var11.$isServer)
                                break s;
                            break r;
                        }
                        break r;
                    }
                }
                try {
                    $var11 = $var14.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var11 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var11);
            }
        }
        $var11 = $this.$myEntity;
        if ($var11 instanceof nms_EntityLivingBase) {
            $var8 = $var11;
            if ($var8.$attributeMap === null)
                $var8.$attributeMap = nms_ServersideAttributeMap__init_();
            $var11 = $var8.$attributeMap;
            $var8 = ju_HashSet__init_();
            $var11 = $var11.$attributesByName.$internalMap;
            if ($var11.$cachedValues === null) {
                $var13 = new ju_LinkedHashMapValues;
                $var13.$base = $var11;
                $var13.$reversed = 0;
                $var11.$cachedValues = $var13;
            }
            $var13 = $var11.$cachedValues;
            $var14 = new ju_LinkedHashMapIterator$ValueIterator;
            $var11 = $var13.$base;
            $var10 = $var13.$reversed;
            $var14.$base0 = $var11;
            $var14.$reversed0 = $var10;
            $var14.$expectedModCount0 = $var11.$modCount1;
            $var14.$futureEntry = !$var10 ? $var11.$head : $var11.$tail;
            while ($var14.$futureEntry === null ? 0 : 1) {
                $var11 = ju_LinkedHashMapIterator$ValueIterator_next($var14);
                if ($var11.$field_111136_b.$shouldWatch)
                    ju_HashMap_putImpl($var8.$backingMap, $var11, $var8);
            }
            if (!($var8.$backingMap.$elementCount ? 0 : 1)) {
                var$18 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = new nms_Packet44UpdateAttributes;
                var$9 = $this.$myEntity.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var11 = new ju_ArrayList;
                $var11.$array = $rt_createArray(jl_Object, 10);
                var$19.$field_111004_b = $var11;
                var$19.$field_111005_a = var$9;
                $var11 = $var8.$backingMap;
                if ($var11.$cachedKeySet === null) {
                    $var8 = new ju_HashMap$1;
                    $var8.$this$0 = $var11;
                    $var11.$cachedKeySet = $var8;
                }
                var$20 = $var11.$cachedKeySet.$iterator();
                while (var$20.$hasNext()) {
                    $var11 = var$20.$next();
                    $var8 = var$19.$field_111004_b;
                    $var13 = new nms_Packet44UpdateAttributesSnapshot;
                    var$21 = $var11.$field_111136_b.$field_111115_a;
                    $var2 = $var11.$baseValue;
                    $var14 = ju_HashSet__init_();
                    $var10 = 0;
                    while ($var10 < 3) {
                        $var9 = $var11.$field_111137_c;
                        if ($var10 >= (-128) && $var10 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var12 = jl_Integer_integerCache.data[$var10 + 128 | 0];
                        } else {
                            $var12 = new jl_Integer;
                            $var12.$value = $var10;
                        }
                        if ($var12 === null) {
                            $var9 = $var9.$elementData.data[0];
                            while ($var9 !== null && $var9.$key !== null) {
                                $var9 = $var9.$next3;
                            }
                        } else {
                            var$12 = $var12.$value;
                            var$17 = $var9.$elementData.data;
                            $var9 = var$17[var$12 & (var$17.length - 1 | 0)];
                            while ($var9 !== null) {
                                if ($var9.$origKeyHash == var$12) {
                                    var$23 = $var9.$key;
                                    if ($var12 !== var$23 && !($var12 === var$23 ? 1 : var$23 instanceof jl_Integer && var$23.$value == var$12 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var9 = $var9.$next3;
                            }
                        }
                        $var9 = ($var9 === null ? null : $var9.$value0).$iterator();
                        while ($var9.$hasNext()) {
                            $var12 = $var9.$next();
                            if (!(ju_HashMap_putImpl($var14.$backingMap, $var12, $var14) !== null ? 0 : 1))
                                continue;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var13.$field_142045_a = var$19;
                    $var13.$field_142043_b = var$21;
                    $var13.$field_142044_c = $var2;
                    $var13.$field_142042_d = $var14;
                    ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                    var$17 = $var8.$array.data;
                    var$9 = $var8.$size0;
                    $var8.$size0 = var$9 + 1 | 0;
                    var$17[var$9] = $var13;
                    $var8.$modCount = $var8.$modCount + 1 | 0;
                }
                t: {
                    if (var$19 instanceof nms_Packet3Chat) {
                        $var11 = var$19;
                        var$9 = var$18.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break t;
                        if (var$9 == 1 && !$var11.$isServer)
                            break t;
                    }
                    try {
                        $var11 = var$18.$netManager;
                        $ptr = 10;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var11);
                }
            }
        }
        $var11 = $this.$myEntity;
        $var2 = $var11.$motionX;
        $this.$motionX0 = $var2;
        $var4 = $var11.$motionY;
        $this.$motionY0 = $var4;
        var$5 = $var11.$motionZ;
        $this.$motionZ0 = var$5;
        if ($this.$sendVelocityUpdates && !($var6 instanceof nms_Packet24MobSpawn))
            u: {
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var8 = nms_Packet28EntityVelocity__init_($var11.$entityId, $var2, $var4, var$5);
                if ($var8 instanceof nms_Packet3Chat) {
                    $var11 = $var8;
                    var$9 = $var6.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break u;
                    if (var$9 == 1 && !$var11.$isServer)
                        break u;
                }
                try {
                    $var6 = $var6.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        $var11 = $var6.$ridingEntity;
        if ($var11 !== null)
            v: {
                $var8 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var13 = new nms_Packet39AttachEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var13.$attachState = 0;
                $var13.$ridingEntityId = $var6.$entityId;
                $var13.$vehicleEntityId = $var11.$entityId;
                if ($var13 instanceof nms_Packet3Chat) {
                    $var6 = $var13;
                    var$9 = $var8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break v;
                    if (var$9 == 1 && !$var6.$isServer)
                        break v;
                }
                try {
                    $var6 = $var8.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityLiving) {
            $var14 = $var6.$leashedToEntity;
            if ($var14 !== null)
                w: {
                    $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var8 = new nms_Packet39AttachEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var8.$attachState = 1;
                    $var8.$ridingEntityId = $var6.$entityId;
                    $var8.$vehicleEntityId = $var14.$entityId;
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var6 = $var8;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break w;
                        if (var$9 == 1 && !$var6.$isServer)
                            break w;
                    }
                    try {
                        $var6 = $var11.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
        }
        x: {
            if ($this.$myEntity instanceof nms_EntityLivingBase) {
                $var10 = 0;
                while (true) {
                    if ($var10 >= 5)
                        break x;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 !== null) {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = new nms_Packet5PlayerInventory;
                        var$9 = $this.$myEntity.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var11.$entityID = var$9;
                        $var11.$slot = $var10;
                        $var8 = new nms_ItemStack;
                        var$9 = $var12.$itemID;
                        var$10 = $var12.$stackSize;
                        var$12 = $var12.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var8.$itemID = var$9;
                        $var8.$stackSize = var$10;
                        $var8.$itemDamage = var$12;
                        if (var$12 < 0)
                            $var8.$itemDamage = 0;
                        $var13 = $var12.$stackTagCompound;
                        if ($var13 !== null)
                            $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                        y: {
                            $var11.$itemSlot0 = $var8;
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$10 = $var6.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break y;
                                if (var$10 == 1 && !$var8.$isServer)
                                    break y;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 8;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
            }
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            z: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break z;
                    if (var$9 == 1 && !$var6.$isServer)
                        break z;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        ba: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break ba;
                    j: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break j;
                            if (var$9 == 1 && !$var8.$isServer)
                                break j;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 3:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var13);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityLiving) {
            $var14 = $var6.$leashedToEntity;
            if ($var14 !== null)
                bb: {
                    $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var8 = new nms_Packet39AttachEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var8.$attachState = 1;
                    $var8.$ridingEntityId = $var6.$entityId;
                    $var8.$vehicleEntityId = $var14.$entityId;
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var6 = $var8;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break bb;
                        if (var$9 == 1 && !$var6.$isServer)
                            break bb;
                    }
                    try {
                        $var6 = $var11.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
        }
        bc: {
            if ($this.$myEntity instanceof nms_EntityLivingBase) {
                $var10 = 0;
                while (true) {
                    if ($var10 >= 5)
                        break bc;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 !== null) {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = new nms_Packet5PlayerInventory;
                        var$9 = $this.$myEntity.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var11.$entityID = var$9;
                        $var11.$slot = $var10;
                        $var8 = new nms_ItemStack;
                        var$9 = $var12.$itemID;
                        var$10 = $var12.$stackSize;
                        var$12 = $var12.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var8.$itemID = var$9;
                        $var8.$stackSize = var$10;
                        $var8.$itemDamage = var$12;
                        if (var$12 < 0)
                            $var8.$itemDamage = 0;
                        $var13 = $var12.$stackTagCompound;
                        if ($var13 !== null)
                            $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                        bd: {
                            $var11.$itemSlot0 = $var8;
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$10 = $var6.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break bd;
                                if (var$10 == 1 && !$var8.$isServer)
                                    break bd;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 8;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
            }
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            be: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break be;
                    if (var$9 == 1 && !$var6.$isServer)
                        break be;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        bf: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break bf;
                    bg: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break bg;
                            if (var$9 == 1 && !$var8.$isServer)
                                break bg;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 4:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        $var6 = $this.$myEntity;
        $var11 = $var6.$ridingEntity;
        if ($var11 !== null)
            bb: {
                $var8 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var13 = new nms_Packet39AttachEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var13.$attachState = 0;
                $var13.$ridingEntityId = $var6.$entityId;
                $var13.$vehicleEntityId = $var11.$entityId;
                if ($var13 instanceof nms_Packet3Chat) {
                    $var6 = $var13;
                    var$9 = $var8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bb;
                    if (var$9 == 1 && !$var6.$isServer)
                        break bb;
                }
                try {
                    $var6 = $var8.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityLiving) {
            $var14 = $var6.$leashedToEntity;
            if ($var14 !== null)
                r: {
                    $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var8 = new nms_Packet39AttachEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var8.$attachState = 1;
                    $var8.$ridingEntityId = $var6.$entityId;
                    $var8.$vehicleEntityId = $var14.$entityId;
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var6 = $var8;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break r;
                        if (var$9 == 1 && !$var6.$isServer)
                            break r;
                    }
                    try {
                        $var6 = $var11.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
        }
        bh: {
            if ($this.$myEntity instanceof nms_EntityLivingBase) {
                $var10 = 0;
                while (true) {
                    if ($var10 >= 5)
                        break bh;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 !== null) {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = new nms_Packet5PlayerInventory;
                        var$9 = $this.$myEntity.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var11.$entityID = var$9;
                        $var11.$slot = $var10;
                        $var8 = new nms_ItemStack;
                        var$9 = $var12.$itemID;
                        var$10 = $var12.$stackSize;
                        var$12 = $var12.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var8.$itemID = var$9;
                        $var8.$stackSize = var$10;
                        $var8.$itemDamage = var$12;
                        if (var$12 < 0)
                            $var8.$itemDamage = 0;
                        $var13 = $var12.$stackTagCompound;
                        if ($var13 !== null)
                            $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                        bi: {
                            $var11.$itemSlot0 = $var8;
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$10 = $var6.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break bi;
                                if (var$10 == 1 && !$var8.$isServer)
                                    break bi;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 8;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
            }
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            bj: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bj;
                    if (var$9 == 1 && !$var6.$isServer)
                        break bj;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        bk: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break bk;
                    e: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break e;
                            if (var$9 == 1 && !$var8.$isServer)
                                break e;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 5:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, $var9);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var11);
        }
        $var11 = $this.$myEntity;
        if ($var11 instanceof nms_EntityLivingBase) {
            $var8 = $var11;
            if ($var8.$attributeMap === null)
                $var8.$attributeMap = nms_ServersideAttributeMap__init_();
            $var11 = $var8.$attributeMap;
            $var8 = ju_HashSet__init_();
            $var11 = $var11.$attributesByName.$internalMap;
            if ($var11.$cachedValues === null) {
                $var13 = new ju_LinkedHashMapValues;
                $var13.$base = $var11;
                $var13.$reversed = 0;
                $var11.$cachedValues = $var13;
            }
            $var13 = $var11.$cachedValues;
            $var14 = new ju_LinkedHashMapIterator$ValueIterator;
            $var11 = $var13.$base;
            $var10 = $var13.$reversed;
            $var14.$base0 = $var11;
            $var14.$reversed0 = $var10;
            $var14.$expectedModCount0 = $var11.$modCount1;
            $var14.$futureEntry = !$var10 ? $var11.$head : $var11.$tail;
            while ($var14.$futureEntry === null ? 0 : 1) {
                $var11 = ju_LinkedHashMapIterator$ValueIterator_next($var14);
                if ($var11.$field_111136_b.$shouldWatch)
                    ju_HashMap_putImpl($var8.$backingMap, $var11, $var8);
            }
            if (!($var8.$backingMap.$elementCount ? 0 : 1)) {
                var$18 = $par1EntityPlayerMP.$playerNetServerHandler;
                var$19 = new nms_Packet44UpdateAttributes;
                var$9 = $this.$myEntity.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var11 = new ju_ArrayList;
                $var11.$array = $rt_createArray(jl_Object, 10);
                var$19.$field_111004_b = $var11;
                var$19.$field_111005_a = var$9;
                $var11 = $var8.$backingMap;
                if ($var11.$cachedKeySet === null) {
                    $var8 = new ju_HashMap$1;
                    $var8.$this$0 = $var11;
                    $var11.$cachedKeySet = $var8;
                }
                var$20 = $var11.$cachedKeySet.$iterator();
                while (var$20.$hasNext()) {
                    $var11 = var$20.$next();
                    $var8 = var$19.$field_111004_b;
                    $var13 = new nms_Packet44UpdateAttributesSnapshot;
                    var$21 = $var11.$field_111136_b.$field_111115_a;
                    $var2 = $var11.$baseValue;
                    $var14 = ju_HashSet__init_();
                    $var10 = 0;
                    while ($var10 < 3) {
                        $var9 = $var11.$field_111137_c;
                        if ($var10 >= (-128) && $var10 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var12 = jl_Integer_integerCache.data[$var10 + 128 | 0];
                        } else {
                            $var12 = new jl_Integer;
                            $var12.$value = $var10;
                        }
                        if ($var12 === null) {
                            $var9 = $var9.$elementData.data[0];
                            while ($var9 !== null && $var9.$key !== null) {
                                $var9 = $var9.$next3;
                            }
                        } else {
                            var$12 = $var12.$value;
                            var$17 = $var9.$elementData.data;
                            $var9 = var$17[var$12 & (var$17.length - 1 | 0)];
                            while ($var9 !== null) {
                                if ($var9.$origKeyHash == var$12) {
                                    var$23 = $var9.$key;
                                    if ($var12 !== var$23 && !($var12 === var$23 ? 1 : var$23 instanceof jl_Integer && var$23.$value == var$12 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var9 = $var9.$next3;
                            }
                        }
                        $var9 = ($var9 === null ? null : $var9.$value0).$iterator();
                        while ($var9.$hasNext()) {
                            $var12 = $var9.$next();
                            if (!(ju_HashMap_putImpl($var14.$backingMap, $var12, $var14) !== null ? 0 : 1))
                                continue;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var13.$field_142045_a = var$19;
                    $var13.$field_142043_b = var$21;
                    $var13.$field_142044_c = $var2;
                    $var13.$field_142042_d = $var14;
                    ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                    var$17 = $var8.$array.data;
                    var$9 = $var8.$size0;
                    $var8.$size0 = var$9 + 1 | 0;
                    var$17[var$9] = $var13;
                    $var8.$modCount = $var8.$modCount + 1 | 0;
                }
                h: {
                    if (var$19 instanceof nms_Packet3Chat) {
                        $var11 = var$19;
                        var$9 = var$18.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break h;
                        if (var$9 == 1 && !$var11.$isServer)
                            break h;
                    }
                    try {
                        $var11 = var$18.$netManager;
                        $ptr = 10;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var11);
                }
            }
        }
        $var11 = $this.$myEntity;
        $var2 = $var11.$motionX;
        $this.$motionX0 = $var2;
        $var4 = $var11.$motionY;
        $this.$motionY0 = $var4;
        var$5 = $var11.$motionZ;
        $this.$motionZ0 = var$5;
        if ($this.$sendVelocityUpdates && !($var6 instanceof nms_Packet24MobSpawn))
            bl: {
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var8 = nms_Packet28EntityVelocity__init_($var11.$entityId, $var2, $var4, var$5);
                if ($var8 instanceof nms_Packet3Chat) {
                    $var11 = $var8;
                    var$9 = $var6.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bl;
                    if (var$9 == 1 && !$var11.$isServer)
                        break bl;
                }
                try {
                    $var6 = $var6.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        $var11 = $var6.$ridingEntity;
        if ($var11 !== null)
            t: {
                $var8 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var13 = new nms_Packet39AttachEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var13.$attachState = 0;
                $var13.$ridingEntityId = $var6.$entityId;
                $var13.$vehicleEntityId = $var11.$entityId;
                if ($var13 instanceof nms_Packet3Chat) {
                    $var6 = $var13;
                    var$9 = $var8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break t;
                    if (var$9 == 1 && !$var6.$isServer)
                        break t;
                }
                try {
                    $var6 = $var8.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityLiving) {
            $var14 = $var6.$leashedToEntity;
            if ($var14 !== null)
                u: {
                    $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var8 = new nms_Packet39AttachEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var8.$attachState = 1;
                    $var8.$ridingEntityId = $var6.$entityId;
                    $var8.$vehicleEntityId = $var14.$entityId;
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var6 = $var8;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break u;
                        if (var$9 == 1 && !$var6.$isServer)
                            break u;
                    }
                    try {
                        $var6 = $var11.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
        }
        bm: {
            if ($this.$myEntity instanceof nms_EntityLivingBase) {
                $var10 = 0;
                while (true) {
                    if ($var10 >= 5)
                        break bm;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 !== null) {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = new nms_Packet5PlayerInventory;
                        var$9 = $this.$myEntity.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var11.$entityID = var$9;
                        $var11.$slot = $var10;
                        $var8 = new nms_ItemStack;
                        var$9 = $var12.$itemID;
                        var$10 = $var12.$stackSize;
                        var$12 = $var12.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var8.$itemID = var$9;
                        $var8.$stackSize = var$10;
                        $var8.$itemDamage = var$12;
                        if (var$12 < 0)
                            $var8.$itemDamage = 0;
                        $var13 = $var12.$stackTagCompound;
                        if ($var13 !== null)
                            $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                        w: {
                            $var11.$itemSlot0 = $var8;
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$10 = $var6.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break w;
                                if (var$10 == 1 && !$var8.$isServer)
                                    break w;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 8;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
            }
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            bn: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bn;
                    if (var$9 == 1 && !$var6.$isServer)
                        break bn;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        bo: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break bo;
                    bp: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break bp;
                            if (var$9 == 1 && !$var8.$isServer)
                                break bp;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 6:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        b: {
            if ($this.$myEntity instanceof nms_EntityLivingBase) {
                $var10 = 0;
                while (true) {
                    if ($var10 >= 5)
                        break b;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 !== null) {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = new nms_Packet5PlayerInventory;
                        var$9 = $this.$myEntity.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var11.$entityID = var$9;
                        $var11.$slot = $var10;
                        $var8 = new nms_ItemStack;
                        var$9 = $var12.$itemID;
                        var$10 = $var12.$stackSize;
                        var$12 = $var12.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var8.$itemID = var$9;
                        $var8.$stackSize = var$10;
                        $var8.$itemDamage = var$12;
                        if (var$12 < 0)
                            $var8.$itemDamage = 0;
                        $var13 = $var12.$stackTagCompound;
                        if ($var13 !== null)
                            $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                        r: {
                            $var11.$itemSlot0 = $var8;
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$10 = $var6.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break r;
                                if (var$10 == 1 && !$var8.$isServer)
                                    break r;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 8;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
            }
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            bq: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bq;
                    if (var$9 == 1 && !$var6.$isServer)
                        break bq;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        br: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break br;
                    bs: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break bs;
                            if (var$9 == 1 && !$var8.$isServer)
                                break bs;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 7:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var11);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        b: while (true) {
            while (true) {
                if (!$var14.$hasNext())
                    break b;
                $var9 = $var14.$next();
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                if (!($var11 instanceof nms_Packet3Chat))
                    break;
                $var8 = $var11;
                var$9 = $var6.$playerEntity.$chatVisibility;
                if (var$9 == 2)
                    continue;
                if (var$9 != 1)
                    break;
                if ($var8.$isServer)
                    break;
            }
            try {
                $var6 = $var6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        return;
    case 8:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var11);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        b: while (true) {
            while (true) {
                while (true) {
                    $var10 = $var10 + 1 | 0;
                    if ($var10 >= 5)
                        break b;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 === null)
                        continue;
                    else
                        break;
                }
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var11 = new nms_Packet5PlayerInventory;
                var$9 = $this.$myEntity.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var11.$entityID = var$9;
                $var11.$slot = $var10;
                $var8 = new nms_ItemStack;
                var$9 = $var12.$itemID;
                var$10 = $var12.$stackSize;
                var$12 = $var12.$itemDamage;
                nms_ItemStack_$callClinit();
                $var8.$itemID = var$9;
                $var8.$stackSize = var$10;
                $var8.$itemDamage = var$12;
                if (var$12 < 0)
                    $var8.$itemDamage = 0;
                $var13 = $var12.$stackTagCompound;
                if ($var13 !== null)
                    $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                $var11.$itemSlot0 = $var8;
                if (!($var11 instanceof nms_Packet3Chat))
                    break;
                $var8 = $var11;
                var$10 = $var6.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if ($var8.$isServer)
                    break;
            }
            try {
                $var6 = $var6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            bq: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bq;
                    if (var$9 == 1 && !$var6.$isServer)
                        break bq;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        br: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break br;
                    bs: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break bs;
                            if (var$9 == 1 && !$var8.$isServer)
                                break bs;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 9:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var6, $var8);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var6 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var6);
        }
        b: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break b;
                    bt: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break bt;
                            if (var$9 == 1 && !$var8.$isServer)
                                break bt;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    case 10:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var11, var$19);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var11 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var11);
        }
        $var11 = $this.$myEntity;
        $var2 = $var11.$motionX;
        $this.$motionX0 = $var2;
        $var4 = $var11.$motionY;
        $this.$motionY0 = $var4;
        var$5 = $var11.$motionZ;
        $this.$motionZ0 = var$5;
        if ($this.$sendVelocityUpdates && !($var6 instanceof nms_Packet24MobSpawn))
            bb: {
                $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var8 = nms_Packet28EntityVelocity__init_($var11.$entityId, $var2, $var4, var$5);
                if ($var8 instanceof nms_Packet3Chat) {
                    $var11 = $var8;
                    var$9 = $var6.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bb;
                    if (var$9 == 1 && !$var11.$isServer)
                        break bb;
                }
                try {
                    $var6 = $var6.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        $var11 = $var6.$ridingEntity;
        if ($var11 !== null)
            r: {
                $var8 = $par1EntityPlayerMP.$playerNetServerHandler;
                $var13 = new nms_Packet39AttachEntity;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var13.$attachState = 0;
                $var13.$ridingEntityId = $var6.$entityId;
                $var13.$vehicleEntityId = $var11.$entityId;
                if ($var13 instanceof nms_Packet3Chat) {
                    $var6 = $var13;
                    var$9 = $var8.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break r;
                    if (var$9 == 1 && !$var6.$isServer)
                        break r;
                }
                try {
                    $var6 = $var8.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityLiving) {
            $var14 = $var6.$leashedToEntity;
            if ($var14 !== null)
                bd: {
                    $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
                    $var8 = new nms_Packet39AttachEntity;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var8.$attachState = 1;
                    $var8.$ridingEntityId = $var6.$entityId;
                    $var8.$vehicleEntityId = $var14.$entityId;
                    if ($var8 instanceof nms_Packet3Chat) {
                        $var6 = $var8;
                        var$9 = $var11.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break bd;
                        if (var$9 == 1 && !$var6.$isServer)
                            break bd;
                    }
                    try {
                        $var6 = $var11.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    jl_Throwable_printStackTrace0($var6);
                }
        }
        bu: {
            if ($this.$myEntity instanceof nms_EntityLivingBase) {
                $var10 = 0;
                while (true) {
                    if ($var10 >= 5)
                        break bu;
                    $var12 = $this.$myEntity.$getCurrentItemOrArmor($var10);
                    if ($var12 !== null) {
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = new nms_Packet5PlayerInventory;
                        var$9 = $this.$myEntity.$entityId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var11.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var11.$entityID = var$9;
                        $var11.$slot = $var10;
                        $var8 = new nms_ItemStack;
                        var$9 = $var12.$itemID;
                        var$10 = $var12.$stackSize;
                        var$12 = $var12.$itemDamage;
                        nms_ItemStack_$callClinit();
                        $var8.$itemID = var$9;
                        $var8.$stackSize = var$10;
                        $var8.$itemDamage = var$12;
                        if (var$12 < 0)
                            $var8.$itemDamage = 0;
                        $var13 = $var12.$stackTagCompound;
                        if ($var13 !== null)
                            $var8.$stackTagCompound = nms_NBTTagCompound_copy($var13);
                        bv: {
                            $var11.$itemSlot0 = $var8;
                            if ($var11 instanceof nms_Packet3Chat) {
                                $var8 = $var11;
                                var$10 = $var6.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break bv;
                                if (var$10 == 1 && !$var8.$isServer)
                                    break bv;
                            }
                            try {
                                $var6 = $var6.$netManager;
                                $ptr = 8;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    $var6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            jl_Throwable_printStackTrace0($var6);
                        }
                    }
                    $var10 = $var10 + 1 | 0;
                }
            }
        }
        $var6 = $this.$myEntity;
        if ($var6 instanceof nms_EntityPlayer && $var6.$sleeping) {
            $var11 = $par1EntityPlayerMP.$playerNetServerHandler;
            $var8 = new nms_Packet17Sleep;
            $var2 = $var6.$posX;
            var$11 = $var2 | 0;
            if ($var2 < var$11)
                var$11 = var$11 - 1 | 0;
            $var2 = $var6.$posY;
            var$12 = $var2 | 0;
            if ($var2 < var$12)
                var$12 = var$12 - 1 | 0;
            $var2 = $var6.$posZ;
            var$10 = $var2 | 0;
            if ($var2 < var$10)
                var$10 = var$10 - 1 | 0;
            bw: {
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var8.$field_73622_e = 0;
                $var8.$bedX = var$11;
                $var8.$bedY = var$12;
                $var8.$bedZ = var$10;
                $var8.$entityID0 = $var6.$entityId;
                if ($var8 instanceof nms_Packet3Chat) {
                    $var6 = $var8;
                    var$9 = $var11.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break bw;
                    if (var$9 == 1 && !$var6.$isServer)
                        break bw;
                }
                try {
                    $var6 = $var11.$netManager;
                    $ptr = 9;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                jl_Throwable_printStackTrace0($var6);
            }
        }
        f: {
            $var6 = $this.$myEntity;
            if ($var6 instanceof nms_EntityLivingBase) {
                $var6 = $var6.$activePotionsMap;
                if ($var6.$cachedValues === null) {
                    $var11 = new ju_HashMap$2;
                    $var11.$this$01 = $var6;
                    $var6.$cachedValues = $var11;
                }
                $var14 = $var6.$cachedValues.$iterator();
                while (true) {
                    if (!$var14.$hasNext())
                        break f;
                    bx: {
                        $var9 = $var14.$next();
                        $var6 = $par1EntityPlayerMP.$playerNetServerHandler;
                        $var11 = nms_Packet41EntityEffect__init_($this.$myEntity.$entityId, $var9);
                        if ($var11 instanceof nms_Packet3Chat) {
                            $var8 = $var11;
                            var$9 = $var6.$playerEntity.$chatVisibility;
                            if (var$9 == 2)
                                break bx;
                            if (var$9 == 1 && !$var8.$isServer)
                                break bx;
                        }
                        try {
                            $var6 = $var6.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        jl_Throwable_printStackTrace0($var6);
                    }
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var2, $var4, $var10, var$5, var$6, $var6, $var11, var$9, var$10, var$11, var$12, $var8, $var14, $var13, $var9, var$17, var$18, var$19, var$20, var$21, $var12, var$23, $ptr);
},
nms_EntityTrackerEntry_sendEventsToPlayers = ($this, $par1List) => {
    let $var2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1List = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 0;
        var$3 = $rt_compare($var2, $par1List.$size0);
        if (var$3 >= 0)
            return;
        if ($var2 >= 0 && var$3 < 0) {
            var$4 = $par1List.$array.data[$var2];
            $ptr = 1;
            continue main;
        }
        $par1List = new jl_IndexOutOfBoundsException;
        $par1List.$suppressionEnabled = 1;
        $par1List.$writableStackTrace = 1;
        $rt_throw($par1List);
    case 1:
        nms_EntityTrackerEntry_tryStartWachingThis($this, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        var$3 = $rt_compare($var2, $par1List.$size0);
        if (var$3 >= 0)
            return;
        if ($var2 >= 0 && var$3 < 0) {
            var$4 = $par1List.$array.data[$var2];
            continue main;
        }
        $par1List = new jl_IndexOutOfBoundsException;
        $par1List.$suppressionEnabled = 1;
        $par1List.$writableStackTrace = 1;
        $rt_throw($par1List);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1List, $var2, var$3, var$4, $ptr);
},
nms_EntityTrackerEntry_getPacketForThisEntity = $this => {
    let var$1, $var1, $var9, $var8, $var7, $var2, $var4, $var5, $var6, $var3, var$11, var$12, var$13, var$14, var$15, var$16;
    if ($this.$myEntity.$isDead) {
        if (jl_System_outCache === null) {
            var$1 = new otcic_JSStdoutPrintStream;
            $var1 = new ji_ByteArrayOutputStream;
            $var1.$buf = $rt_createByteArray(32);
            var$1.$out0 = $var1;
            $var1 = new jl_StringBuilder;
            $var1.$buffer = $rt_createCharArray(16);
            var$1.$sb = $var1;
            var$1.$buffer0 = $rt_createCharArray(32);
            var$1.$autoFlush = 0;
            var$1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_outCache = var$1;
        }
        $rt_putStdout("Fetching addPacket for removed entity");
        $rt_putStdout("\n");
    }
    var$1 = $this.$myEntity;
    if (var$1 instanceof nms_EntityItem)
        return nms_Packet23VehicleSpawn__init_(var$1, 2, 1);
    if (var$1 instanceof nms_EntityPlayerMP)
        return nms_Packet20NamedEntitySpawn__init_1(var$1);
    if (var$1 instanceof nms_EntityMinecart) {
        $var9 = var$1;
        return nms_Packet23VehicleSpawn__init_(var$1, 10, $var9.$getMinecartType());
    }
    if (var$1 instanceof nms_EntityBoat)
        return nms_Packet23VehicleSpawn__init_(var$1, 1, 0);
    if (!$rt_isInstance(var$1, nms_IAnimals) && !(var$1 instanceof nms_EntityDragon)) {
        if (var$1 instanceof nms_EntityFishHook) {
            $var8 = var$1.$angler;
            return nms_Packet23VehicleSpawn__init_(var$1, 90, $var8 === null ? var$1.$entityId : $var8.$entityId);
        }
        if (var$1 instanceof nms_EntityArrow) {
            $var7 = var$1.$shootingEntity;
            return nms_Packet23VehicleSpawn__init_(var$1, 60, $var7 === null ? var$1.$entityId : $var7.$entityId);
        }
        if (var$1 instanceof nms_EntitySnowball)
            return nms_Packet23VehicleSpawn__init_(var$1, 61, 0);
        if (var$1 instanceof nms_EntityPotion) {
            $var1 = new nms_Packet23VehicleSpawn;
            $var2 = var$1;
            if ($var2.$potionDamage === null) {
                $var4 = new nms_ItemStack;
                nms_Item_$callClinit();
                $var5 = nms_Item_potion;
                nms_ItemStack_$callClinit();
                $var4.$itemID = $var5.$itemID0;
                $var4.$stackSize = 1;
                $var4.$itemDamage = 0;
                $var2.$potionDamage = $var4;
            }
            nms_Packet23VehicleSpawn__init_0($var1, var$1, 73, $var2.$potionDamage.$itemDamage);
            return $var1;
        }
        if (var$1 instanceof nms_EntityExpBottle)
            return nms_Packet23VehicleSpawn__init_(var$1, 75, 0);
        if (var$1 instanceof nms_EntityEnderPearl)
            return nms_Packet23VehicleSpawn__init_(var$1, 65, 0);
        if (var$1 instanceof nms_EntityEnderEye)
            return nms_Packet23VehicleSpawn__init_(var$1, 72, 0);
        if (var$1 instanceof nms_EntityFireworkRocket)
            return nms_Packet23VehicleSpawn__init_(var$1, 76, 0);
        if (var$1 instanceof nms_EntityFireball) {
            $var6 = var$1;
            $var3 = 63;
            if (var$1 instanceof nms_EntitySmallFireball)
                $var3 = 64;
            else if (var$1 instanceof nms_EntityWitherSkull)
                $var3 = 66;
            $var1 = $var6.$shootingEntity0;
            $var2 = $var1 === null ? nms_Packet23VehicleSpawn__init_(var$1, $var3, 0) : nms_Packet23VehicleSpawn__init_(var$1, $var3, $var1.$entityId);
            $var2.$speedX = $var6.$accelerationX * 8000.0 | 0;
            $var2.$speedY = $var6.$accelerationY * 8000.0 | 0;
            $var2.$speedZ = $var6.$accelerationZ * 8000.0 | 0;
            return $var2;
        }
        if (var$1 instanceof nms_EntityEgg)
            return nms_Packet23VehicleSpawn__init_(var$1, 62, 0);
        if (var$1 instanceof nms_EntityTNTPrimed)
            return nms_Packet23VehicleSpawn__init_(var$1, 50, 0);
        if (var$1 instanceof nms_EntityEnderCrystal)
            return nms_Packet23VehicleSpawn__init_(var$1, 51, 0);
        if (var$1 instanceof nms_EntityFallingSand) {
            $var5 = var$1;
            return nms_Packet23VehicleSpawn__init_(var$1, 70, $var5.$blockID1 | $var5.$metadata << 16);
        }
        if (var$1 instanceof nms_EntityPainting) {
            $var1 = new nms_Packet25EntityPainting;
            var$1 = var$1;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var1.$entityId13 = var$1.$entityId;
            $var1.$xPosition9 = var$1.$xPosition1;
            $var1.$yPosition8 = var$1.$yPosition0;
            $var1.$zPosition11 = var$1.$zPosition1;
            $var1.$direction = var$1.$hangingDirection;
            $var1.$title0 = var$1.$art.$title;
            return $var1;
        }
        if (var$1 instanceof nms_EntityItemFrame) {
            $var4 = var$1;
            $var2 = nms_Packet23VehicleSpawn__init_(var$1, 71, $var4.$hangingDirection);
            var$11 = $var4.$xPosition1 * 32 | 0;
            $var3 = var$11 | 0;
            if (var$11 < $var3)
                $var3 = $var3 - 1 | 0;
            $var2.$xPosition6 = $var3;
            var$11 = $var4.$yPosition0 * 32 | 0;
            $var3 = var$11 | 0;
            if (var$11 < $var3)
                $var3 = $var3 - 1 | 0;
            $var2.$yPosition6 = $var3;
            var$11 = $var4.$zPosition1 * 32 | 0;
            $var3 = var$11 | 0;
            if (var$11 < $var3)
                $var3 = $var3 - 1 | 0;
            $var2.$zPosition8 = $var3;
            return $var2;
        }
        if (var$1 instanceof nms_EntityLeashKnot) {
            $var1 = var$1;
            $var2 = nms_Packet23VehicleSpawn__init_(var$1, 77, 0);
            var$11 = $var1.$xPosition1 * 32 | 0;
            $var3 = var$11 | 0;
            if (var$11 < $var3)
                $var3 = $var3 - 1 | 0;
            $var2.$xPosition6 = $var3;
            var$11 = $var1.$yPosition0 * 32 | 0;
            $var3 = var$11 | 0;
            if (var$11 < $var3)
                $var3 = $var3 - 1 | 0;
            $var2.$yPosition6 = $var3;
            var$11 = $var1.$zPosition1 * 32 | 0;
            $var3 = var$11 | 0;
            if (var$11 < $var3)
                $var3 = $var3 - 1 | 0;
            $var2.$zPosition8 = $var3;
            return $var2;
        }
        if (var$1 instanceof nms_EntityXPOrb) {
            $var1 = new nms_Packet26EntityExpOrb;
            var$1 = var$1;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var1.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var1.$entityId12 = var$1.$entityId;
            var$12 = var$1.$posX * 32.0;
            var$13 = var$12 | 0;
            if (var$12 < var$13)
                var$13 = var$13 - 1 | 0;
            $var1.$posX8 = var$13;
            var$12 = var$1.$posY * 32.0;
            var$13 = var$12 | 0;
            if (var$12 < var$13)
                var$13 = var$13 - 1 | 0;
            $var1.$posY8 = var$13;
            var$12 = var$1.$posZ * 32.0;
            var$13 = var$12 | 0;
            if (var$12 < var$13)
                var$13 = var$13 - 1 | 0;
            $var1.$posZ8 = var$13;
            $var1.$xpValue0 = var$1.$xpValue;
            return $var1;
        }
        $var1 = new jl_IllegalArgumentException;
        $var2 = var$1.constructor;
        if ($var2 === null)
            var$1 = null;
        else {
            var$1 = $var2.classObject;
            if (var$1 === null) {
                var$1 = new jl_Class;
                var$1.$platformClass = $var2;
                $var2.classObject = var$1;
            }
        }
        $var4 = var$1 === null ? $rt_s(1) : jl_Class_toString(var$1);
        var$1 = new jl_StringBuilder;
        var$1.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$1, var$1.$length0, $rt_s(2428));
        $var3 = var$1.$length0;
        if ($var4 === null)
            $var4 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$1, $var3, $var4);
        var$13 = var$1.$length0;
        jl_AbstractStringBuilder_insertSpace(var$1, var$13, var$13 + 1 | 0);
        var$14 = var$1.$buffer;
        var$15 = var$14.data;
        var$15[var$13] = 33;
        $var2 = new jl_String;
        var$13 = var$1.$length0;
        var$16 = var$15.length;
        if (var$13 >= 0 && var$13 <= (var$16 - 0 | 0)) {
            $var2.$nativeString = $rt_charArrayToString(var$14.data, 0, var$13);
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $var1.$message = $var2;
            $rt_throw($var1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    }
    var$11 = var$1.$getRotationYawHead() * 256.0 / 360.0;
    $var3 = var$11 | 0;
    if (var$11 < $var3)
        $var3 = $var3 - 1 | 0;
    $this.$lastHeadMotion = $var3;
    return nms_Packet24MobSpawn__init_1($this.$myEntity);
},
jm_Conversion = $rt_classWithoutFields(),
jm_Conversion_digitFitInInt = null,
jm_Conversion_bigRadices = null,
jm_Conversion__init_ = $this => {
    return;
},
jm_Conversion__init_0 = () => {
    let var_0 = new jm_Conversion();
    jm_Conversion__init_(var_0);
    return var_0;
},
jm_Conversion_bigInteger2Double = $val => {
    let $bitLen, $delta, var$4, var$5, $exponent, var$7, var$8, var$9, $mantissa;
    a: {
        $bitLen = $val.$numberLength;
        $delta = $rt_compare($bitLen, 2);
        if ($delta >= 0) {
            if ($delta)
                break a;
            if ($val.$digits.data[1] <= 0)
                break a;
        }
        return Long_toNumber(jm_BigInteger_longValue($val));
    }
    if ($bitLen > 32)
        return $val.$sign1 <= 0 ? (-Infinity) : Infinity;
    if ($val.$sign1 >= 0)
        var$4 = $val;
    else {
        var$4 = new jm_BigInteger;
        var$5 = $val.$digits;
        var$4.$firstNonzeroDigit = (-2);
        var$4.$sign1 = 1;
        var$4.$numberLength = $bitLen;
        var$4.$digits = var$5;
    }
    $bitLen = jm_BitLevel_bitLength(var$4);
    $exponent = Long_fromInt($bitLen - 1 | 0);
    $delta = $bitLen - 54 | 0;
    if ($val.$sign1 >= 0)
        var$4 = $val;
    else {
        var$4 = new jm_BigInteger;
        var$7 = $val.$numberLength;
        var$5 = $val.$digits;
        var$4.$firstNonzeroDigit = (-2);
        var$4.$sign1 = 1;
        var$4.$numberLength = var$7;
        var$4.$digits = var$5;
    }
    if ($delta && var$4.$sign1) {
        if ($delta > 0)
            var$4 = jm_BitLevel_shiftRight(var$4, $delta);
        else {
            $bitLen =  -$delta | 0;
            var$7 = $bitLen >> 5;
            var$8 = $bitLen & 31;
            $bitLen = (var$4.$numberLength + var$7 | 0) + (var$8 ? 1 : 0) | 0;
            var$5 = $rt_createIntArray($bitLen);
            jm_BitLevel_shiftLeft(var$5, var$4.$digits, var$7, var$8);
            var$9 = new jm_BigInteger;
            var$7 = var$4.$sign1;
            var$9.$firstNonzeroDigit = (-2);
            var$9.$sign1 = var$7;
            var$9.$numberLength = $bitLen;
            var$9.$digits = var$5;
            jm_BigInteger_cutOffLeadingZeroes(var$9);
            var$4 = var$9;
        }
    }
    $mantissa = Long_and(jm_BigInteger_longValue(var$4), Long_create(4294967295, 2097151));
    if (Long_eq($exponent, Long_fromInt(1023))) {
        if (Long_eq($mantissa, Long_create(4294967295, 2097151)))
            return $val.$sign1 <= 0 ? (-Infinity) : Infinity;
        if (Long_eq($mantissa, Long_create(4294967294, 2097151)))
            return $val.$sign1 <= 0 ? (-1.7976931348623157E308) : 1.7976931348623157E308;
    }
    if (!(!(Long_eq(Long_and($mantissa, Long_fromInt(1)), Long_fromInt(1)) && Long_eq(Long_and($mantissa, Long_fromInt(2)), Long_fromInt(2))) && !jm_BitLevel_nonZeroDroppedBits($delta, $val.$digits)))
        $mantissa = Long_add($mantissa, Long_fromInt(2));
    $mantissa = Long_shr($mantissa, 1);
    return $rt_longBitsToDouble(Long_or(Long_or($val.$sign1 >= 0 ? Long_ZERO : Long_create(0, 2147483648), Long_and(Long_shl(Long_add(Long_fromInt(1023), $exponent), 52), Long_create(0, 2146435072))), $mantissa));
},
jm_Conversion__clinit_ = () => {
    jm_Conversion_digitFitInInt = $rt_createIntArrayFromData([(-1), (-1), 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
    jm_Conversion_bigRadices = $rt_createIntArrayFromData([(-2147483648), 1162261467, 1073741824, 1220703125, 362797056, 1977326743, 1073741824, 387420489, 1000000000, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 1280000000, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729000000, 887503681, 1073741824, 1291467969, 1544804416, 1838265625, 60466176]);
},
nms_IntCache = $rt_classWithoutFields(),
nms_IntCache_intCacheSize = 0,
nms_IntCache_freeSmallArrays = null,
nms_IntCache_inUseSmallArrays = null,
nms_IntCache_freeLargeArrays = null,
nms_IntCache_inUseLargeArrays = null,
nms_IntCache__init_ = $this => {
    return;
},
nms_IntCache__init_0 = () => {
    let var_0 = new nms_IntCache();
    nms_IntCache__init_(var_0);
    return var_0;
},
nms_IntCache_getIntCache = $par0 => {
    let var$2, var$3, $var1, var$5, var$6, var$7, var$8;
    jl_Object_monitorEnterSync($rt_cls(nms_IntCache));
    try {
        if ($par0 <= 256) {
            var$2 = nms_IntCache_freeSmallArrays;
            var$3 = var$2.$size0;
            if (var$3 ? 0 : 1) {
                $var1 = $rt_createIntArray(256);
                var$2 = nms_IntCache_inUseSmallArrays;
                ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
                var$5 = var$2.$array.data;
                var$3 = var$2.$size0;
                var$2.$size0 = var$3 + 1 | 0;
                var$5[var$3] = $var1;
                var$2.$modCount = var$2.$modCount + 1 | 0;
                return $var1;
            }
            $var1 = ju_ArrayList_remove(var$2, var$3 - 1 | 0);
            var$2 = nms_IntCache_inUseSmallArrays;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$5 = var$2.$array.data;
            var$3 = var$2.$size0;
            var$2.$size0 = var$3 + 1 | 0;
            var$5[var$3] = $var1;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            return $var1;
        }
        var$3 = nms_IntCache_intCacheSize;
        if ($par0 > var$3) {
            nms_IntCache_intCacheSize = $par0;
            var$2 = nms_IntCache_freeLargeArrays;
            $var1 = var$2.$array;
            var$3 = 0;
            var$6 = var$2.$size0;
            var$7 = null;
            if (var$3 > var$6) {
                var$2 = new jl_IllegalArgumentException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            while (var$3 < var$6) {
                var$5 = $var1.data;
                var$8 = var$3 + 1 | 0;
                var$5[var$3] = var$7;
                var$3 = var$8;
            }
            var$2.$size0 = 0;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = nms_IntCache_inUseLargeArrays;
            $var1 = var$2.$array;
            var$3 = 0;
            var$6 = var$2.$size0;
            var$7 = null;
            if (var$3 > var$6) {
                var$2 = new jl_IllegalArgumentException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            while (var$3 < var$6) {
                var$5 = $var1.data;
                var$8 = var$3 + 1 | 0;
                var$5[var$3] = var$7;
                var$3 = var$8;
            }
            var$2.$size0 = 0;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            $var1 = $rt_createIntArray($par0);
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$5 = var$2.$array.data;
            var$3 = var$2.$size0;
            var$2.$size0 = var$3 + 1 | 0;
            var$5[var$3] = $var1;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            return $var1;
        }
        var$2 = nms_IntCache_freeLargeArrays;
        var$6 = var$2.$size0;
        if (var$6 ? 0 : 1) {
            $var1 = $rt_createIntArray(var$3);
            var$2 = nms_IntCache_inUseLargeArrays;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$5 = var$2.$array.data;
            var$3 = var$2.$size0;
            var$2.$size0 = var$3 + 1 | 0;
            var$5[var$3] = $var1;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            return $var1;
        }
        $var1 = ju_ArrayList_remove(var$2, var$6 - 1 | 0);
        var$2 = nms_IntCache_inUseLargeArrays;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$5 = var$2.$array.data;
        var$3 = var$2.$size0;
        var$2.$size0 = var$3 + 1 | 0;
        var$5[var$3] = $var1;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        return $var1;
    } finally {
        jl_Object_monitorExitSync($rt_cls(nms_IntCache));
    }
},
nms_IntCache_resetIntCache = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    jl_Object_monitorEnterSync($rt_cls(nms_IntCache));
    try {
        var$1 = nms_IntCache_freeLargeArrays;
        var$2 = var$1.$size0;
        if (!(var$2 ? 0 : 1))
            ju_ArrayList_remove(var$1, var$2 - 1 | 0);
        var$1 = nms_IntCache_freeSmallArrays;
        var$2 = var$1.$size0;
        if (!(var$2 ? 0 : 1))
            ju_ArrayList_remove(var$1, var$2 - 1 | 0);
        var$3 = nms_IntCache_freeLargeArrays;
        var$1 = nms_IntCache_inUseLargeArrays;
        var$2 = 0;
        var$4 = var$1.$modCount;
        var$5 = var$1.$size();
        while (true) {
            if (!(var$2 >= var$5 ? 0 : 1)) {
                var$1 = nms_IntCache_freeSmallArrays;
                var$3 = nms_IntCache_inUseSmallArrays;
                var$2 = 0;
                var$4 = var$3.$modCount;
                var$5 = var$3.$size();
                while (true) {
                    if (!(var$2 >= var$5 ? 0 : 1)) {
                        var$1 = nms_IntCache_inUseLargeArrays;
                        var$6 = var$1.$array;
                        var$7 = 0;
                        var$2 = var$1.$size0;
                        var$3 = null;
                        if (var$7 > var$2) {
                            var$1 = new jl_IllegalArgumentException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            $rt_throw(var$1);
                        }
                        while (var$7 < var$2) {
                            var$8 = var$6.data;
                            var$9 = var$7 + 1 | 0;
                            var$8[var$7] = var$3;
                            var$7 = var$9;
                        }
                        var$1.$size0 = 0;
                        var$1.$modCount = var$1.$modCount + 1 | 0;
                        var$1 = nms_IntCache_inUseSmallArrays;
                        var$6 = var$1.$array;
                        var$7 = 0;
                        var$2 = var$1.$size0;
                        var$3 = null;
                        if (var$7 > var$2) {
                            var$1 = new jl_IllegalArgumentException;
                            var$1.$suppressionEnabled = 1;
                            var$1.$writableStackTrace = 1;
                            $rt_throw(var$1);
                        }
                        while (var$7 < var$2) {
                            var$8 = var$6.data;
                            var$9 = var$7 + 1 | 0;
                            var$8[var$7] = var$3;
                            var$7 = var$9;
                        }
                        var$1.$size0 = 0;
                        var$1.$modCount = var$1.$modCount + 1 | 0;
                        return;
                    }
                    if (var$4 < var$3.$modCount)
                        break;
                    var$9 = var$2 + 1 | 0;
                    var$10 = var$3.$get(var$2);
                    ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
                    var$6 = var$1.$array.data;
                    var$2 = var$1.$size0;
                    var$1.$size0 = var$2 + 1 | 0;
                    var$6[var$2] = var$10;
                    var$1.$modCount = var$1.$modCount + 1 | 0;
                    var$2 = var$9;
                }
                var$1 = new ju_ConcurrentModificationException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            if (var$4 < var$1.$modCount)
                break;
            var$9 = var$2 + 1 | 0;
            var$10 = var$1.$get(var$2);
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$6 = var$3.$array.data;
            var$2 = var$3.$size0;
            var$3.$size0 = var$2 + 1 | 0;
            var$6[var$2] = var$10;
            var$3.$modCount = var$3.$modCount + 1 | 0;
            var$2 = var$9;
        }
        var$1 = new ju_ConcurrentModificationException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    } finally {
        jl_Object_monitorExitSync($rt_cls(nms_IntCache));
    }
},
nms_IntCache__clinit_ = () => {
    let var$1;
    nms_IntCache_intCacheSize = 256;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_IntCache_freeSmallArrays = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_IntCache_inUseSmallArrays = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_IntCache_freeLargeArrays = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    nms_IntCache_inUseLargeArrays = var$1;
};
function nms_WorldGeneratorBonusChest() {
    let a = this; nms_WorldGenerator.call(a);
    a.$theBonusChestGenerator = null;
    a.$itemsToGenerateInBonusChest = 0;
}
let nms_WorldGeneratorBonusChest_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, var$7, $var7, var$9, var$10, var$11, var$12, $var8, var$14, $var9, $var10, var$17, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();var$17 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
            if ($rt_suspending()) {
                break main;
            }
            var$6 = $tmp;
            if (var$6) {
                nms_Block_$callClinit();
                if (var$6 != nms_Block_leaves.$blockID)
                    break a;
            }
            if ($par4 > 1) {
                $par4 = $par4 + (-1) | 0;
                continue main;
            }
        }
        if ($par4 < 1)
            return 0;
        var$7 = $par4 + 1 | 0;
        $var7 = 0;
        var$9 = 17;
        var$10 = 2;
        var$11 = Long_fromInt(4);
        if ($var7 >= 4)
            return 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$6 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var8 = var$6 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $par4 = Long_lo(Long_shru(var$14, var$9));
        while (true) {
            var$6 = $par4 % 3 | 0;
            if ((($par4 - var$6 | 0) + var$10 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $par4 = Long_lo(Long_shru(var$14, var$9));
        }
        $var9 = var$7 + var$6 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $par4 = Long_lo(Long_shru(var$14, var$9));
        while (true) {
            var$6 = $par4 % 3 | 0;
            if ((($par4 - var$6 | 0) + var$10 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $par4 = Long_lo(Long_shru(var$14, var$9));
        }
        $var9 = $var9 - var$6 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$6 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$14, var$9)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var10 = var$6 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$14, var$9)))), 31)) | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4 ? 0 : 1) {
            $par4 = $var9 - 1 | 0;
            nms_Block_$callClinit();
            var$17 = nms_Block_blocksList.data;
            $ptr = 3;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4)
            return 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$6 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var8 = var$6 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $par4 = Long_lo(Long_shru(var$14, var$9));
        while (true) {
            var$6 = $par4 % 3 | 0;
            if ((($par4 - var$6 | 0) + var$10 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $par4 = Long_lo(Long_shru(var$14, var$9));
        }
        $var9 = var$7 + var$6 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $par4 = Long_lo(Long_shru(var$14, var$9));
        while (true) {
            var$6 = $par4 % 3 | 0;
            if ((($par4 - var$6 | 0) + var$10 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $par4 = Long_lo(Long_shru(var$14, var$9));
        }
        $var9 = $var9 - var$6 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$6 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$14, var$9)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var10 = var$6 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$14, var$9)))), 31)) | 0;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var8, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        $var11 = var$17[var$6];
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata($par1World, $var8, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid($par1World, $var11, var$6)) {
            var$6 = nms_Block_chest.$blockID;
            $par3 = 0;
            $par5 = 2;
            $ptr = 5;
            continue main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 >= 4)
            return 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        var$6 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var8 = var$6 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $par4 = Long_lo(Long_shru(var$14, var$9));
        while (true) {
            var$6 = $par4 % 3 | 0;
            if ((($par4 - var$6 | 0) + var$10 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $par4 = Long_lo(Long_shru(var$14, var$9));
        }
        $var9 = var$7 + var$6 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $par4 = Long_lo(Long_shru(var$14, var$9));
        while (true) {
            var$6 = $par4 % 3 | 0;
            if ((($par4 - var$6 | 0) + var$10 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$14;
            $par4 = Long_lo(Long_shru(var$14, var$9));
        }
        $var9 = $var9 - var$6 | 0;
        var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        var$6 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$14, var$9)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var10 = var$6 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$14, var$9)))), 31)) | 0;
        $ptr = 2;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $var8, $var9, $var10, var$6, $par3, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockTileEntity($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var11 = $var11;
        if ($var11 !== null) {
            var$17 = $this.$theBonusChestGenerator;
            $par3 = $this.$itemsToGenerateInBonusChest;
            $ptr = 8;
            continue main;
        }
        var$9 = $var8 - 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$9, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!($par3 ? 0 : 1)) {
            $par3 = $var8 + 1 | 0;
            $ptr = 9;
            continue main;
        }
        var$17 = nms_Block_blocksList.data;
        $ptr = 10;
        continue main;
    case 8:
        nms_WeightedRandomChestContent_generateChestContents($par2Random, var$17, $var11, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $var8 - 1 | 0;
        $ptr = 7;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $par3, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1)) {
            $par3 = $var10 - 1 | 0;
            $ptr = 13;
            continue main;
        }
        var$17 = nms_Block_blocksList.data;
        $ptr = 14;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        $par2Random = var$17[$par3];
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockMetadata($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, $par2Random, $par3)) {
            $par3 = $var8 + 1 | 0;
            $ptr = 9;
            continue main;
        }
        $par3 = nms_Block_torchWood.$blockID;
        $par5 = 0;
        var$6 = 2;
        $ptr = 12;
    case 12:
        nms_World_setBlock($par1World, var$9, $var9, $var10, $par3, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $var8 + 1 | 0;
        $ptr = 9;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1)) {
            $par3 = $var10 + 1 | 0;
            $ptr = 17;
            continue main;
        }
        var$17 = nms_Block_blocksList.data;
        $ptr = 18;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par2Random = var$17[$par5];
        $ptr = 15;
    case 15:
        $tmp = nms_World_getBlockMetadata($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, $par2Random, $par5)) {
            $par3 = $var10 - 1 | 0;
            $ptr = 13;
            continue main;
        }
        $par5 = nms_Block_torchWood.$blockID;
        var$6 = 0;
        var$10 = 2;
        $ptr = 16;
    case 16:
        nms_World_setBlock($par1World, $par3, $var9, $var10, $par5, var$6, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $var10 - 1 | 0;
        $ptr = 13;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!($par5 ? 0 : 1))
            return 1;
        var$17 = nms_Block_blocksList.data;
        $ptr = 21;
        continue main;
    case 18:
        $tmp = nms_World_getBlockId($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par2Random = var$17[$par5];
        $ptr = 19;
    case 19:
        $tmp = nms_World_getBlockMetadata($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, $par2Random, $par5)) {
            $par3 = $var10 + 1 | 0;
            $ptr = 17;
            continue main;
        }
        $par5 = nms_Block_torchWood.$blockID;
        var$6 = 0;
        var$10 = 2;
        $ptr = 20;
    case 20:
        nms_World_setBlock($par1World, $var8, $var9, $par3, $par5, var$6, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $var10 + 1 | 0;
        $ptr = 17;
        continue main;
    case 21:
        $tmp = nms_World_getBlockId($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        $par2Random = var$17[$par5];
        $ptr = 22;
    case 22:
        $tmp = nms_World_getBlockMetadata($par1World, var$9, $par4, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, $par2Random, $par4))
            return 1;
        $par4 = nms_Block_torchWood.$blockID;
        $par5 = 0;
        var$6 = 2;
        $ptr = 23;
    case 23:
        nms_World_setBlock($par1World, $var8, $var9, $par3, $par4, $par5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, var$7, $var7, var$9, var$10, var$11, var$12, $var8, var$14, $var9, $var10, var$17, $var11, $ptr);
};
function nms_NextTickListEntry() {
    let a = this; jl_Object.call(a);
    a.$xCoord2 = 0;
    a.$yCoord2 = 0;
    a.$zCoord2 = 0;
    a.$blockID3 = 0;
    a.$scheduledTime = Long_ZERO;
    a.$priority0 = 0;
    a.$tickEntryID = Long_ZERO;
}
let nms_NextTickListEntry_nextTickEntryID = Long_ZERO,
nms_NextTickListEntry_equals = ($this, $par1Obj) => {
    let $var2;
    if (!($par1Obj instanceof nms_NextTickListEntry))
        return 0;
    $var2 = $par1Obj;
    return $this.$xCoord2 == $var2.$xCoord2 && $this.$yCoord2 == $var2.$yCoord2 && $this.$zCoord2 == $var2.$zCoord2 && nms_Block_isAssociatedBlockID($this.$blockID3, $var2.$blockID3) ? 1 : 0;
},
nms_NextTickListEntry_hashCode = $this => {
    return (((($this.$xCoord2 * 1024 | 0) * 1024 | 0) + ($this.$zCoord2 * 1024 | 0) | 0) + $this.$yCoord2 | 0) * 256 | 0;
},
nms_NextTickListEntry_comparer = ($this, $par1NextTickListEntry) => {
    let var$2, var$3;
    var$2 = Long_compare($this.$scheduledTime, $par1NextTickListEntry.$scheduledTime);
    if (var$2 < 0)
        var$2 = (-1);
    else if (var$2 > 0)
        var$2 = 1;
    else {
        var$2 = $this.$priority0;
        var$3 = $par1NextTickListEntry.$priority0;
        if (var$2 != var$3)
            var$2 = var$2 - var$3 | 0;
        else {
            var$2 = Long_compare($this.$tickEntryID, $par1NextTickListEntry.$tickEntryID);
            var$2 = var$2 < 0 ? (-1) : var$2 <= 0 ? 0 : 1;
        }
    }
    return var$2;
},
nms_NextTickListEntry_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    var$1 = $this.$blockID3;
    var$2 = $this.$xCoord2;
    var$3 = $this.$yCoord2;
    var$4 = $this.$zCoord2;
    var$5 = $this.$scheduledTime;
    var$6 = $this.$priority0;
    var$7 = $this.$tickEntryID;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$1, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(2429));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$2, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$3, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$4, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(2430));
    jl_AbstractStringBuilder_insert4(var$8, var$8.$length0, var$5, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$6, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert4(var$8, var$8.$length0, var$7, 10);
    var$9 = new jl_String;
    var$10 = var$8.$buffer;
    var$11 = var$10.data;
    var$2 = var$8.$length0;
    var$3 = var$11.length;
    if (var$2 >= 0 && var$2 <= (var$3 - 0 | 0)) {
        var$9.$nativeString = $rt_charArrayToString(var$10.data, 0, var$2);
        return var$9;
    }
    var$8 = new jl_IndexOutOfBoundsException;
    var$8.$suppressionEnabled = 1;
    var$8.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$8);
    $rt_throw(var$8);
},
nms_NextTickListEntry_compareTo = ($this, $par1Obj) => {
    return nms_NextTickListEntry_comparer($this, $par1Obj);
},
nms_EntityWeatherEffect = $rt_classWithoutFields(nms_Entity);
function nms_EntityLightningBolt() {
    let a = this; nms_EntityWeatherEffect.call(a);
    a.$lightningState = 0;
    a.$boltVertex = Long_ZERO;
    a.$boltLivingTime = 0;
}
let nms_EntityLightningBolt__init_ = ($this, $par1World, $par2, $par4, $par6) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var9, var$20, var$21, $var8, var$23, var$24, $var10, var$26, var$27, var$28, $var11, var$30, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$30 = $thread.pop();$var11 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var10 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var8 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var9 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9
        = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$posX = $par2;
        $this.$prevPosX = $par2;
        $this.$lastTickPosX = $par2;
        var$5 = $par4 + $this.$yOffset;
        $this.$posY = var$5;
        $this.$prevPosY = var$5;
        $this.$lastTickPosY = var$5;
        $this.$posZ = $par6;
        $this.$prevPosZ = $par6;
        $this.$lastTickPosZ = $par6;
        $this.$rotationYaw = 0.0;
        $this.$rotationPitch = 0.0;
        nms_Entity_setPosition($this, $par2, var$5, $par6);
        $this.$lightningState = 2;
        var$6 = $this.$rand;
        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$7;
        var$8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$7, 16))), 32);
        var$9 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$9;
        $this.$boltVertex = Long_add(var$8, Long_fromInt(Long_lo(Long_shru(var$9, 16))));
        var$8 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$10 = 17;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        var$12 = 2;
        while (true) {
            var$13 = var$11 % 3 | 0;
            if (((var$11 - var$13 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        $this.$boltLivingTime = var$13 + 1 | 0;
        if (!$par1World.$isRemote) {
            a: {
                var$6 = ($par1World.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                var$14 = $rt_s(1414);
                var$15 = $rt_s(1414);
                if (var$14 !== var$15) {
                    var$11 = var$14.$nativeString.length;
                    var$13 = var$15.$nativeString.length;
                    if (var$11 < var$13)
                        var$13 = var$11;
                    var$16 = 0;
                    b: {
                        while (true) {
                            if (var$16 >= var$13) {
                                var$14.$nativeString.length;
                                var$15.$nativeString.length;
                                break a;
                            }
                            if (var$16 < 0)
                                break b;
                            if (var$16 >= var$14.$nativeString.length)
                                break b;
                            var$11 = var$14.$nativeString.charCodeAt(var$16);
                            if (var$16 < 0)
                                break;
                            if (var$16 >= var$15.$nativeString.length)
                                break;
                            if (var$11 - var$15.$nativeString.charCodeAt(var$16) | 0)
                                break a;
                            var$16 = var$16 + 1 | 0;
                        }
                        $par1World = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1World);
                        $rt_throw($par1World);
                    }
                    $par1World = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1World);
                    $rt_throw($par1World);
                }
            }
            var$14 = $rt_s(1414);
            c: {
                d: {
                    e: while (true) {
                        if (var$6 === null) {
                            var$6 = null;
                            break c;
                        }
                        f: {
                            var$15 = var$6.$key0;
                            if (var$14 === var$15)
                                var$17 = 0;
                            else {
                                var$11 = var$14.$nativeString.length;
                                var$16 = var$15.$nativeString.length;
                                if (var$11 < var$16)
                                    var$16 = var$11;
                                var$11 = 0;
                                while (true) {
                                    if (var$11 >= var$16) {
                                        var$17 = var$14.$nativeString.length - var$15.$nativeString.length | 0;
                                        break f;
                                    }
                                    if (var$11 < 0)
                                        break d;
                                    if (var$11 >= var$14.$nativeString.length)
                                        break d;
                                    var$13 = var$14.$nativeString.charCodeAt(var$11);
                                    if (var$11 < 0)
                                        break e;
                                    if (var$11 >= var$15.$nativeString.length)
                                        break e;
                                    var$17 = var$13 - var$15.$nativeString.charCodeAt(var$11) | 0;
                                    if (var$17)
                                        break;
                                    var$11 = var$11 + 1 | 0;
                                }
                            }
                        }
                        if (!var$17)
                            break c;
                        var$6 = var$17 >= 0 ? var$6.$right : var$6.$left;
                    }
                    $par1World = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1World);
                    $rt_throw($par1World);
                }
                $par1World = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1World);
                $rt_throw($par1World);
            }
            var$6 = var$6 === null ? null : var$6.$value2;
            if ((var$6 === null ? 0 : var$6.$valueBoolean) && $par1World.$difficultySetting >= 2) {
                var$17 = $par2 | 0;
                var$18 = $rt_compare($par2, var$17);
                $var9 = var$18 >= 0 ? var$17 : var$17 - 1 | 0;
                var$20 = $par4 | 0;
                var$21 = $rt_compare($par4, var$20);
                $var8 = var$21 >= 0 ? var$20 : var$20 - 1 | 0;
                var$16 = $par6 | 0;
                var$23 = $rt_compare($par6, var$16);
                var$24 = var$23 >= 0 ? var$16 : var$16 - 1 | 0;
                if (nms_World_checkChunksExist($par1World, $var9 - 10 | 0, $var8 - 10 | 0, var$24 - 10 | 0, $var9 + 10 | 0, $var8 + 10 | 0, var$24 + 10 | 0)) {
                    $var8 = var$18 >= 0 ? var$17 : var$17 - 1 | 0;
                    $var9 = var$21 >= 0 ? var$20 : var$20 - 1 | 0;
                    $var10 = var$23 >= 0 ? var$16 : var$16 - 1 | 0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11) {
            nms_Block_$callClinit();
            var$14 = nms_Block_fire;
            var$11 = $var9 - 1 | 0;
            var$26 = nms_Block_blocksList.data;
            $ptr = 2;
            continue main;
        }
        var$13 = 0;
        var$24 = var$16 - 1 | 0;
        var$27 = var$20 - 1 | 0;
        $var9 = var$17 - 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, var$11, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        var$6 = var$26[var$13];
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata($par1World, $var8, var$11, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$6, var$11)) {
            $ptr = 4;
            continue main;
        }
        if (1) {
            $var11 = nms_Block_fire.$blockID;
            var$11 = 0;
            var$13 = 3;
            $ptr = 5;
            continue main;
        }
        var$13 = 0;
        var$24 = var$16 - 1 | 0;
        var$27 = var$20 - 1 | 0;
        $var9 = var$17 - 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_BlockFire_canNeighborBurn(var$14, $par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11 ? 1 : 0) {
            $var11 = nms_Block_fire.$blockID;
            var$11 = 0;
            var$13 = 3;
            $ptr = 5;
            continue main;
        }
        var$13 = 0;
        var$24 = var$16 - 1 | 0;
        var$27 = var$20 - 1 | 0;
        $var9 = var$17 - 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $var8, $var9, $var10, $var11, var$11, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = 0;
        var$24 = var$16 - 1 | 0;
        var$27 = var$20 - 1 | 0;
        $var9 = var$17 - 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$11, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!$var8) {
            nms_Block_$callClinit();
            var$14 = nms_Block_fire;
            var$28 = $var10 - 1 | 0;
            var$26 = nms_Block_blocksList.data;
            $ptr = 7;
            continue main;
        }
        var$13 = var$13 + 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$11, var$28, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$6 = var$26[$var8];
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockMetadata($par1World, var$11, var$28, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($par1World, var$6, $var8)) {
            $ptr = 9;
            continue main;
        }
        if (1) {
            $var8 = nms_Block_fire.$blockID;
            var$28 = 0;
            var$30 = 3;
            $ptr = 10;
            continue main;
        }
        var$13 = var$13 + 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
        continue main;
    case 9:
        $tmp = nms_BlockFire_canNeighborBurn(var$14, $par1World, var$11, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 ? 1 : 0) {
            $var8 = nms_Block_fire.$blockID;
            var$28 = 0;
            var$30 = 3;
            $ptr = 10;
            continue main;
        }
        var$13 = var$13 + 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
        continue main;
    case 10:
        nms_World_setBlock($par1World, var$11, $var10, $var11, $var8, var$28, var$30);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$13 + 1 | 0;
        if (var$13 >= 4)
            return;
        $var8 = var$18 >= 0 ? var$17 : $var9;
        var$6 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        var$11 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var10 = var$11 % 3 | 0;
            if (((var$11 - $var10 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            var$11 = Long_lo(Long_shru(var$8, var$10));
        }
        var$11 = ($var8 + $var10 | 0) - 1 | 0;
        var$28 = var$21 >= 0 ? var$20 : var$27;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var10 = (var$28 + $var11 | 0) - 1 | 0;
        var$28 = var$23 >= 0 ? var$16 : var$24;
        var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$6.$seed = var$8;
        $var8 = Long_lo(Long_shru(var$8, var$10));
        while (true) {
            $var11 = $var8 % 3 | 0;
            if ((($var8 - $var11 | 0) + var$12 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$8;
            $var8 = Long_lo(Long_shru(var$8, var$10));
        }
        $var11 = (var$28 + $var11 | 0) - 1 | 0;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $var9, var$20, var$21, $var8, var$23, var$24, $var10, var$26, var$27, var$28, $var11, var$30, $ptr);
},
nms_EntityLightningBolt__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_EntityLightningBolt();
    nms_EntityLightningBolt__init_(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_EntityLightningBolt_onUpdate = $this => {
    let $var5, var$2, $var6, var$4, $var7, var$6, var$7, var$8, var$9, var$10, $var4, var$12, var$13, $var1, var$15, $var3, $var2, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();var$15 = $thread.pop();$var1 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var7 = $thread.pop();var$4 = $thread.pop();$var6
        = $thread.pop();var$2 = $thread.pop();$var5 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$lightningState == 2) {
            $var5 = $this.$worldObj;
            var$2 = $this.$posX;
            $var6 = $this.$posY;
            var$4 = $this.$posZ;
            $var7 = $rt_s(2431);
            var$6 = 10000.0;
            var$7 = $this.$rand;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            var$9 = 24;
            var$10 = 0.800000011920929 + Long_lo(Long_shru(var$8, var$9)) / 1.6777216E7 * 0.20000000298023224;
            $var4 = 0;
            var$12 = null;
            var$13 = 160000.0;
            var$7 = $var5.$worldAccesses;
            $var1 = $rt_compare($var4, var$7.$size0);
            if ($var1 < 0) {
                if ($var4 >= 0 && $var1 < 0) {
                    var$7 = var$7.$array.data[$var4];
                    var$15 = var$7.$mcServer.$serverConfigManager;
                    $var1 = var$7.$theWorldServer.$provider.$dimensionId;
                    var$7 = nms_Packet62LevelSound__init_($var7, var$2, $var6, var$4, var$6, var$10);
                    $ptr = 2;
                    continue main;
                }
                $var5 = new jl_IndexOutOfBoundsException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
            $var5 = $this.$worldObj;
            var$2 = $this.$posX;
            $var6 = $this.$posY;
            var$4 = $this.$posZ;
            $var7 = $rt_s(2432);
            var$6 = 2.0;
            var$7 = $this.$rand;
            var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$7.$seed = var$8;
            var$10 = 0.5 + Long_lo(Long_shru(var$8, var$9)) / 1.6777216E7 * 0.20000000298023224;
            $var4 = 0;
            var$12 = null;
            var$13 = 32.0;
            var$7 = $var5.$worldAccesses;
            $var1 = $rt_compare($var4, var$7.$size0);
            if ($var1 < 0) {
                if ($var4 >= 0 && $var1 < 0) {
                    var$7 = var$7.$array.data[$var4];
                    var$15 = var$7.$mcServer.$serverConfigManager;
                    $var1 = var$7.$theWorldServer.$provider.$dimensionId;
                    var$7 = nms_Packet62LevelSound__init_($var7, var$2, $var6, var$4, var$6, var$10);
                    $ptr = 4;
                    continue main;
                }
                $var5 = new jl_IndexOutOfBoundsException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
        }
        $var4 = $this.$lightningState - 1 | 0;
        $this.$lightningState = $var4;
        if ($var4 < 0) {
            $var1 = $this.$boltLivingTime;
            if (!$var1)
                $this.$isDead = 1;
            else {
                $var5 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$8;
                $var3 = Long_lo(Long_shru(var$8, 17));
                while (true) {
                    $var2 = $var3 % 10 | 0;
                    if ((($var3 - $var2 | 0) + 9 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$8;
                    $var3 = Long_lo(Long_shru(var$8, 17));
                }
                if ($var4 < ( -$var2 | 0)) {
                    $this.$boltLivingTime = $var1 - 1 | 0;
                    $this.$lightningState = 1;
                    var$18 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    var$8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$18, 16))), 32);
                    var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    $this.$boltVertex = Long_add(var$8, Long_fromInt(Long_lo(Long_shru(var$18, 16))));
                    $var5 = $this.$worldObj;
                    if (!$var5.$isRemote) {
                        a: {
                            $var7 = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                            var$7 = $rt_s(1414);
                            $var5 = $rt_s(1414);
                            if (var$7 !== $var5) {
                                $var1 = var$7.$nativeString.length;
                                var$19 = $var5.$nativeString.length;
                                if ($var1 < var$19)
                                    var$19 = $var1;
                                $var4 = 0;
                                b: {
                                    while (true) {
                                        if ($var4 >= var$19) {
                                            var$7.$nativeString.length;
                                            $var5.$nativeString.length;
                                            break a;
                                        }
                                        if ($var4 < 0)
                                            break b;
                                        if ($var4 >= var$7.$nativeString.length)
                                            break b;
                                        var$9 = var$7.$nativeString.charCodeAt($var4);
                                        if ($var4 < 0)
                                            break;
                                        if ($var4 >= $var5.$nativeString.length)
                                            break;
                                        if (var$9 - $var5.$nativeString.charCodeAt($var4) | 0)
                                            break a;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                    $var5 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var5);
                                    $rt_throw($var5);
                                }
                                $var5 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var5);
                                $rt_throw($var5);
                            }
                        }
                        $var5 = $rt_s(1414);
                        c: {
                            d: {
                                e: while (true) {
                                    if ($var7 === null) {
                                        $var7 = null;
                                        break c;
                                    }
                                    f: {
                                        var$7 = $var7.$key0;
                                        if ($var5 === var$7)
                                            $var4 = 0;
                                        else {
                                            $var1 = $var5.$nativeString.length;
                                            var$19 = var$7.$nativeString.length;
                                            if ($var1 < var$19)
                                                var$19 = $var1;
                                            $var1 = 0;
                                            while (true) {
                                                if ($var1 >= var$19) {
                                                    $var4 = $var5.$nativeString.length - var$7.$nativeString.length | 0;
                                                    break f;
                                                }
                                                if ($var1 < 0)
                                                    break d;
                                                if ($var1 >= $var5.$nativeString.length)
                                                    break d;
                                                var$9 = $var5.$nativeString.charCodeAt($var1);
                                                if ($var1 < 0)
                                                    break e;
                                                if ($var1 >= var$7.$nativeString.length)
                                                    break e;
                                                $var4 = var$9 - var$7.$nativeString.charCodeAt($var1) | 0;
                                                if ($var4)
                                                    break;
                                                $var1 = $var1 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (!$var4)
                                        break c;
                                    $var7 = $var4 >= 0 ? $var7.$right : $var7.$left;
                                }
                                $var5 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var5);
                                $rt_throw($var5);
                            }
                            $var5 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($var5);
                            $rt_throw($var5);
                        }
                        $var5 = $var7 === null ? null : $var7.$value2;
                        if ($var5 === null ? 0 : $var5.$valueBoolean) {
                            $var5 = $this.$worldObj;
                            var$2 = $this.$posX;
                            $var3 = var$2 | 0;
                            if (var$2 < $var3)
                                $var3 = $var3 - 1 | 0;
                            var$2 = $this.$posY;
                            $var2 = var$2 | 0;
                            if (var$2 < $var2)
                                $var2 = $var2 - 1 | 0;
                            var$2 = $this.$posZ;
                            var$20 = var$2 | 0;
                            if (var$2 < var$20)
                                var$20 = var$20 - 1 | 0;
                            if (nms_World_checkChunksExist($var5, $var3 - 10 | 0, $var2 - 10 | 0, var$20 - 10 | 0, $var3 + 10 | 0, $var2 + 10 | 0, var$20 + 10 | 0)) {
                                var$2 = $this.$posX;
                                $var1 = var$2 | 0;
                                if (var$2 < $var1)
                                    $var1 = $var1 - 1 | 0;
                                var$2 = $this.$posY;
                                $var2 = var$2 | 0;
                                if (var$2 < $var2)
                                    $var2 = $var2 - 1 | 0;
                                var$2 = $this.$posZ;
                                $var3 = var$2 | 0;
                                if (var$2 < $var3)
                                    $var3 = $var3 - 1 | 0;
                                $var5 = $this.$worldObj;
                                $ptr = 6;
                                continue main;
                            }
                        }
                    }
                }
            }
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    case 2:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$12, var$2, $var6, var$4, var$13, $var1, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        var$7 = $var5.$worldAccesses;
        $var1 = $rt_compare($var4, var$7.$size0);
        if ($var1 < 0) {
            if ($var4 >= 0 && $var1 < 0) {
                var$7 = var$7.$array.data[$var4];
                var$15 = var$7.$mcServer.$serverConfigManager;
                $var1 = var$7.$theWorldServer.$provider.$dimensionId;
                var$7 = nms_Packet62LevelSound__init_($var7, var$2, $var6, var$4, var$6, var$10);
                continue main;
            }
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $rt_throw($var5);
        }
        $var5 = $this.$worldObj;
        var$2 = $this.$posX;
        $var6 = $this.$posY;
        var$4 = $this.$posZ;
        $var7 = $rt_s(2432);
        var$6 = 2.0;
        var$7 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        var$10 = 0.5 + Long_lo(Long_shru(var$8, var$9)) / 1.6777216E7 * 0.20000000298023224;
        $var4 = 0;
        var$12 = null;
        var$13 = 32.0;
        var$7 = $var5.$worldAccesses;
        $var1 = $rt_compare($var4, var$7.$size0);
        if ($var1 < 0) {
            if ($var4 >= 0 && $var1 < 0) {
                var$7 = var$7.$array.data[$var4];
                var$15 = var$7.$mcServer.$serverConfigManager;
                $var1 = var$7.$theWorldServer.$provider.$dimensionId;
                var$7 = nms_Packet62LevelSound__init_($var7, var$2, $var6, var$4, var$6, var$10);
                $ptr = 4;
                continue main;
            }
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $rt_throw($var5);
        }
        $var4 = $this.$lightningState - 1 | 0;
        $this.$lightningState = $var4;
        if ($var4 < 0) {
            $var1 = $this.$boltLivingTime;
            if (!$var1)
                $this.$isDead = 1;
            else {
                $var5 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$8;
                $var3 = Long_lo(Long_shru(var$8, 17));
                while (true) {
                    $var2 = $var3 % 10 | 0;
                    if ((($var3 - $var2 | 0) + 9 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$8;
                    $var3 = Long_lo(Long_shru(var$8, 17));
                }
                if ($var4 < ( -$var2 | 0)) {
                    $this.$boltLivingTime = $var1 - 1 | 0;
                    $this.$lightningState = 1;
                    var$18 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    var$8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$18, 16))), 32);
                    var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    $this.$boltVertex = Long_add(var$8, Long_fromInt(Long_lo(Long_shru(var$18, 16))));
                    $var5 = $this.$worldObj;
                    if (!$var5.$isRemote) {
                        g: {
                            $var7 = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                            var$7 = $rt_s(1414);
                            $var5 = $rt_s(1414);
                            if (var$7 !== $var5) {
                                $var1 = var$7.$nativeString.length;
                                var$19 = $var5.$nativeString.length;
                                if ($var1 < var$19)
                                    var$19 = $var1;
                                $var4 = 0;
                                h: {
                                    while (true) {
                                        if ($var4 >= var$19) {
                                            var$7.$nativeString.length;
                                            $var5.$nativeString.length;
                                            break g;
                                        }
                                        if ($var4 < 0)
                                            break h;
                                        if ($var4 >= var$7.$nativeString.length)
                                            break h;
                                        var$9 = var$7.$nativeString.charCodeAt($var4);
                                        if ($var4 < 0)
                                            break;
                                        if ($var4 >= $var5.$nativeString.length)
                                            break;
                                        if (var$9 - $var5.$nativeString.charCodeAt($var4) | 0)
                                            break g;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                    $var5 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var5);
                                    $rt_throw($var5);
                                }
                                $var5 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var5);
                                $rt_throw($var5);
                            }
                        }
                        $var5 = $rt_s(1414);
                        i: {
                            e: {
                                j: while (true) {
                                    if ($var7 === null) {
                                        $var7 = null;
                                        break i;
                                    }
                                    k: {
                                        var$7 = $var7.$key0;
                                        if ($var5 === var$7)
                                            $var4 = 0;
                                        else {
                                            $var1 = $var5.$nativeString.length;
                                            var$19 = var$7.$nativeString.length;
                                            if ($var1 < var$19)
                                                var$19 = $var1;
                                            $var1 = 0;
                                            while (true) {
                                                if ($var1 >= var$19) {
                                                    $var4 = $var5.$nativeString.length - var$7.$nativeString.length | 0;
                                                    break k;
                                                }
                                                if ($var1 < 0)
                                                    break e;
                                                if ($var1 >= $var5.$nativeString.length)
                                                    break e;
                                                var$9 = $var5.$nativeString.charCodeAt($var1);
                                                if ($var1 < 0)
                                                    break j;
                                                if ($var1 >= var$7.$nativeString.length)
                                                    break j;
                                                $var4 = var$9 - var$7.$nativeString.charCodeAt($var1) | 0;
                                                if ($var4)
                                                    break;
                                                $var1 = $var1 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (!$var4)
                                        break i;
                                    $var7 = $var4 >= 0 ? $var7.$right : $var7.$left;
                                }
                                $var5 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var5);
                                $rt_throw($var5);
                            }
                            $var5 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($var5);
                            $rt_throw($var5);
                        }
                        $var5 = $var7 === null ? null : $var7.$value2;
                        if ($var5 === null ? 0 : $var5.$valueBoolean) {
                            $var5 = $this.$worldObj;
                            var$2 = $this.$posX;
                            $var3 = var$2 | 0;
                            if (var$2 < $var3)
                                $var3 = $var3 - 1 | 0;
                            var$2 = $this.$posY;
                            $var2 = var$2 | 0;
                            if (var$2 < $var2)
                                $var2 = $var2 - 1 | 0;
                            var$2 = $this.$posZ;
                            var$20 = var$2 | 0;
                            if (var$2 < var$20)
                                var$20 = var$20 - 1 | 0;
                            if (nms_World_checkChunksExist($var5, $var3 - 10 | 0, $var2 - 10 | 0, var$20 - 10 | 0, $var3 + 10 | 0, $var2 + 10 | 0, var$20 + 10 | 0)) {
                                var$2 = $this.$posX;
                                $var1 = var$2 | 0;
                                if (var$2 < $var1)
                                    $var1 = $var1 - 1 | 0;
                                var$2 = $this.$posY;
                                $var2 = var$2 | 0;
                                if (var$2 < $var2)
                                    $var2 = $var2 - 1 | 0;
                                var$2 = $this.$posZ;
                                $var3 = var$2 | 0;
                                if (var$2 < $var3)
                                    $var3 = $var3 - 1 | 0;
                                $var5 = $this.$worldObj;
                                $ptr = 6;
                                continue main;
                            }
                        }
                    }
                }
            }
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    case 3:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var5, $this, var$15, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var4 = 0;
        $var1 = $rt_compare($var4, $var7.$size0);
        if ($var1 >= 0)
            return;
        if ($var4 >= 0 && $var1 < 0) {
            $var5 = $var7.$array.data[$var4];
            $ptr = 5;
            continue main;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 4:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$12, var$2, $var6, var$4, var$13, $var1, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        var$7 = $var5.$worldAccesses;
        $var1 = $rt_compare($var4, var$7.$size0);
        if ($var1 < 0) {
            if ($var4 >= 0 && $var1 < 0) {
                var$7 = var$7.$array.data[$var4];
                var$15 = var$7.$mcServer.$serverConfigManager;
                $var1 = var$7.$theWorldServer.$provider.$dimensionId;
                var$7 = nms_Packet62LevelSound__init_($var7, var$2, $var6, var$4, var$6, var$10);
                continue main;
            }
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $rt_throw($var5);
        }
        $var4 = $this.$lightningState - 1 | 0;
        $this.$lightningState = $var4;
        if ($var4 < 0) {
            $var1 = $this.$boltLivingTime;
            if (!$var1)
                $this.$isDead = 1;
            else {
                $var5 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var5.$seed = var$8;
                $var3 = Long_lo(Long_shru(var$8, 17));
                while (true) {
                    $var2 = $var3 % 10 | 0;
                    if ((($var3 - $var2 | 0) + 9 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$8;
                    $var3 = Long_lo(Long_shru(var$8, 17));
                }
                if ($var4 < ( -$var2 | 0)) {
                    $this.$boltLivingTime = $var1 - 1 | 0;
                    $this.$lightningState = 1;
                    var$18 = Long_and(Long_add(Long_mul($var5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    var$8 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$18, 16))), 32);
                    var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var5.$seed = var$18;
                    $this.$boltVertex = Long_add(var$8, Long_fromInt(Long_lo(Long_shru(var$18, 16))));
                    $var5 = $this.$worldObj;
                    if (!$var5.$isRemote) {
                        l: {
                            $var7 = ($var5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                            var$7 = $rt_s(1414);
                            $var5 = $rt_s(1414);
                            if (var$7 !== $var5) {
                                $var1 = var$7.$nativeString.length;
                                var$19 = $var5.$nativeString.length;
                                if ($var1 < var$19)
                                    var$19 = $var1;
                                $var4 = 0;
                                m: {
                                    while (true) {
                                        if ($var4 >= var$19) {
                                            var$7.$nativeString.length;
                                            $var5.$nativeString.length;
                                            break l;
                                        }
                                        if ($var4 < 0)
                                            break m;
                                        if ($var4 >= var$7.$nativeString.length)
                                            break m;
                                        var$9 = var$7.$nativeString.charCodeAt($var4);
                                        if ($var4 < 0)
                                            break;
                                        if ($var4 >= $var5.$nativeString.length)
                                            break;
                                        if (var$9 - $var5.$nativeString.charCodeAt($var4) | 0)
                                            break l;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                    $var5 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var5);
                                    $rt_throw($var5);
                                }
                                $var5 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var5);
                                $rt_throw($var5);
                            }
                        }
                        $var5 = $rt_s(1414);
                        h: {
                            i: {
                                n: while (true) {
                                    if ($var7 === null) {
                                        $var7 = null;
                                        break h;
                                    }
                                    e: {
                                        var$7 = $var7.$key0;
                                        if ($var5 === var$7)
                                            $var4 = 0;
                                        else {
                                            $var1 = $var5.$nativeString.length;
                                            var$19 = var$7.$nativeString.length;
                                            if ($var1 < var$19)
                                                var$19 = $var1;
                                            $var1 = 0;
                                            while (true) {
                                                if ($var1 >= var$19) {
                                                    $var4 = $var5.$nativeString.length - var$7.$nativeString.length | 0;
                                                    break e;
                                                }
                                                if ($var1 < 0)
                                                    break i;
                                                if ($var1 >= $var5.$nativeString.length)
                                                    break i;
                                                var$9 = $var5.$nativeString.charCodeAt($var1);
                                                if ($var1 < 0)
                                                    break n;
                                                if ($var1 >= var$7.$nativeString.length)
                                                    break n;
                                                $var4 = var$9 - var$7.$nativeString.charCodeAt($var1) | 0;
                                                if ($var4)
                                                    break;
                                                $var1 = $var1 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (!$var4)
                                        break h;
                                    $var7 = $var4 >= 0 ? $var7.$right : $var7.$left;
                                }
                                $var5 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var5);
                                $rt_throw($var5);
                            }
                            $var5 = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($var5);
                            $rt_throw($var5);
                        }
                        $var5 = $var7 === null ? null : $var7.$value2;
                        if ($var5 === null ? 0 : $var5.$valueBoolean) {
                            $var5 = $this.$worldObj;
                            var$2 = $this.$posX;
                            $var3 = var$2 | 0;
                            if (var$2 < $var3)
                                $var3 = $var3 - 1 | 0;
                            var$2 = $this.$posY;
                            $var2 = var$2 | 0;
                            if (var$2 < $var2)
                                $var2 = $var2 - 1 | 0;
                            var$2 = $this.$posZ;
                            var$20 = var$2 | 0;
                            if (var$2 < var$20)
                                var$20 = var$20 - 1 | 0;
                            if (nms_World_checkChunksExist($var5, $var3 - 10 | 0, $var2 - 10 | 0, var$20 - 10 | 0, $var3 + 10 | 0, $var2 + 10 | 0, var$20 + 10 | 0)) {
                                var$2 = $this.$posX;
                                $var1 = var$2 | 0;
                                if (var$2 < $var1)
                                    $var1 = $var1 - 1 | 0;
                                var$2 = $this.$posY;
                                $var2 = var$2 | 0;
                                if (var$2 < $var2)
                                    $var2 = $var2 - 1 | 0;
                                var$2 = $this.$posZ;
                                $var3 = var$2 | 0;
                                if (var$2 < $var3)
                                    $var3 = $var3 - 1 | 0;
                                $var5 = $this.$worldObj;
                                $ptr = 6;
                                continue main;
                            }
                        }
                    }
                }
            }
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    case 5:
        $var5.$onStruckByLightning($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        $var1 = $rt_compare($var4, $var7.$size0);
        if ($var1 >= 0)
            return;
        if ($var4 >= 0 && $var1 < 0) {
            $var5 = $var7.$array.data[$var4];
            continue main;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 6:
        $tmp = nms_World_getBlockId($var5, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            nms_Block_$callClinit();
            $var5 = nms_Block_fire;
            $var7 = $this.$worldObj;
            $var4 = $var2 - 1 | 0;
            var$25 = nms_Block_blocksList.data;
            $ptr = 7;
            continue main;
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    case 7:
        $tmp = nms_World_getBlockId($var7, $var1, $var4, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        var$7 = var$25[var$9];
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockMetadata($var7, $var1, $var4, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!nms_World_isBlockTopFacingSurfaceSolid($var7, var$7, $var4)) {
            $ptr = 9;
            continue main;
        }
        if (1) {
            $var5 = $this.$worldObj;
            $var4 = nms_Block_fire.$blockID;
            var$9 = 0;
            var$19 = 3;
            $ptr = 10;
            continue main;
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    case 9:
        $tmp = nms_BlockFire_canNeighborBurn($var5, $var7, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 ? 1 : 0) {
            $var5 = $this.$worldObj;
            $var4 = nms_Block_fire.$blockID;
            var$9 = 0;
            var$19 = 3;
            $ptr = 10;
            continue main;
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    case 10:
        nms_World_setBlock($var5, $var1, $var2, $var3, $var4, var$9, var$19);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$lightningState >= 0) {
            $var5 = $this.$worldObj;
            if (!$var5.$isRemote) {
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$2 = $this.$posX;
                var$4 = var$2 - 3.0;
                var$13 = $this.$posY;
                var$21 = var$13 - 3.0;
                var$22 = $this.$posZ;
                var$23 = var$22 - 3.0;
                var$24 = var$2 + 3.0;
                var$2 = var$13 + 6.0 + 3.0;
                $var6 = var$22 + 3.0;
                $var4 = var$7.$nextPoolIndex;
                $var7 = var$7.$listAABB;
                var$9 = $var7.$size0;
                $var1 = $rt_compare($var4, var$9);
                if ($var1 >= 0) {
                    var$15 = new nms_AxisAlignedBB;
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                    ju_ArrayList_ensureCapacity($var7, var$9 + 1 | 0);
                    var$25 = $var7.$array.data;
                    $var1 = $var7.$size0;
                    $var7.$size0 = $var1 + 1 | 0;
                    var$25[$var1] = var$15;
                    $var7.$modCount = $var7.$modCount + 1 | 0;
                } else if ($var4 >= 0 && $var1 < 0) {
                    var$15 = $var7.$array.data[$var4];
                    var$15.$minX0 = var$4;
                    var$15.$minY0 = var$21;
                    var$15.$minZ0 = var$23;
                    var$15.$maxX0 = var$24;
                    var$15.$maxY = var$2;
                    var$15.$maxZ0 = $var6;
                } else {
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var7 = null;
                $ptr = 3;
                continue main;
            }
            $var5.$lastLightningBolt = 2;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var5, var$2, $var6, var$4, $var7, var$6, var$7, var$8, var$9, var$10, $var4, var$12, var$13, $var1, var$15, $var3, $var2, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_EntityLightningBolt_entityInit = $this => {
    return;
},
nms_EntityLightningBolt_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    return;
};
function nms_PlayerInstance() {
    let a = this; jl_Object.call(a);
    a.$playersInChunk = null;
    a.$chunkLocation = null;
    a.$locationOfBlockChange = null;
    a.$numberOfTilesToUpdate = 0;
    a.$flagsYAreasToUpdate = 0;
    a.$previousWorldTime = Long_ZERO;
    a.$thePlayerManager = null;
}
let nms_PlayerInstance_addPlayer = ($this, $par1EntityPlayerMP) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$playersInChunk;
    var$3 = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    a: {
        while (true) {
            if (!(var$3 >= var$5 ? 0 : 1)) {
                var$6 = 0;
                break a;
            }
            if (var$4 < var$2.$modCount)
                break;
            var$7 = var$3 + 1 | 0;
            var$8 = var$2.$get(var$3);
            if (var$8 === $par1EntityPlayerMP ? 1 : var$8 !== null ? var$8.$equals($par1EntityPlayerMP) : $par1EntityPlayerMP !== null ? 0 : 1) {
                var$6 = 1;
                break a;
            }
            var$3 = var$7;
        }
        $par1EntityPlayerMP = new ju_ConcurrentModificationException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    }
    if (!var$6) {
        if ($this.$playersInChunk.$size0 ? 0 : 1)
            $this.$previousWorldTime = $this.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime();
        var$2 = $this.$playersInChunk;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$9 = var$2.$array.data;
        var$7 = var$2.$size0;
        var$2.$size0 = var$7 + 1 | 0;
        var$9[var$7] = $par1EntityPlayerMP;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        $par1EntityPlayerMP = $par1EntityPlayerMP.$loadedChunks;
        var$2 = $this.$chunkLocation;
        var$6 = $par1EntityPlayerMP.$size2;
        if (var$6 >= 0) {
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1EntityPlayerMP, var$6), var$2);
            return;
        }
        $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
        $par1EntityPlayerMP.$suppressionEnabled = 1;
        $par1EntityPlayerMP.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayerMP);
    }
    var$2 = new jl_IllegalStateException;
    $par1EntityPlayerMP = $par1EntityPlayerMP === null ? $rt_s(1) : nms_Entity_toString($par1EntityPlayerMP);
    var$8 = $this.$chunkLocation;
    var$6 = var$8.$chunkXPos;
    var$7 = var$8.$chunkZPos;
    var$8 = new jl_StringBuilder;
    var$8.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(2433));
    var$4 = var$8.$length0;
    if ($par1EntityPlayerMP === null)
        $par1EntityPlayerMP = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$8, var$4, $par1EntityPlayerMP);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(2434));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$6, 10);
    jl_AbstractStringBuilder_insert(var$8, var$8.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert0(var$8, var$8.$length0, var$7, 10);
    $par1EntityPlayerMP = new jl_String;
    var$9 = var$8.$buffer;
    var$10 = var$9.data;
    var$7 = var$8.$length0;
    var$4 = var$10.length;
    if (var$7 >= 0 && var$7 <= (var$4 - 0 | 0)) {
        $par1EntityPlayerMP.$nativeString = $rt_charArrayToString(var$9.data, 0, var$7);
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $par1EntityPlayerMP;
        $rt_throw(var$2);
    }
    $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
    $par1EntityPlayerMP.$suppressionEnabled = 1;
    $par1EntityPlayerMP.$writableStackTrace = 1;
    $rt_throw($par1EntityPlayerMP);
},
nms_PlayerInstance_removePlayer = ($this, $par1EntityPlayerMP) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var3, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayerMP = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$playersInChunk;
        var$3 = 0;
        var$4 = $var2.$modCount;
        var$5 = $var2.$size();
        a: {
            while (true) {
                if (!(var$3 >= var$5 ? 0 : 1)) {
                    var$3 = 0;
                    break a;
                }
                if (var$4 < $var2.$modCount) {
                    $par1EntityPlayerMP = new ju_ConcurrentModificationException;
                    $par1EntityPlayerMP.$suppressionEnabled = 1;
                    $par1EntityPlayerMP.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayerMP);
                }
                var$6 = var$3 + 1 | 0;
                var$7 = $var2.$get(var$3);
                if (var$7 === $par1EntityPlayerMP ? 1 : var$7 !== null ? var$7.$equals($par1EntityPlayerMP) : $par1EntityPlayerMP !== null ? 0 : 1)
                    break;
                var$3 = var$6;
            }
            var$3 = 1;
        }
        if (!var$3)
            return;
        var$7 = $this.$thePlayerManager.$theWorldServer0;
        $var2 = $this.$chunkLocation;
        var$3 = $var2.$chunkXPos;
        var$6 = $var2.$chunkZPos;
        $ptr = 1;
    case 1:
        b: {
            $tmp = nms_World_getChunkFromChunkCoords(var$7, var$3, var$6);
            if ($rt_suspending()) {
                break main;
            }
            $var2 = $tmp;
            var$7 = $par1EntityPlayerMP.$playerNetServerHandler;
            var$8 = nms_Packet51MapChunk__init_1($var2, 1, 0);
            if (var$8 instanceof nms_Packet3Chat) {
                var$9 = var$8;
                var$6 = var$7.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break b;
                if (var$6 == 1 && !var$9.$isServer)
                    break b;
            }
            try {
                var$7 = var$7.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$7);
        }
        var$7 = $this.$playersInChunk;
        var$3 = var$7.$size0;
        var$5 = 0;
        c: {
            while (true) {
                var$6 = $rt_compare(var$5, var$3);
                if (var$6 >= 0) {
                    var$5 = (-1);
                    break c;
                }
                if (var$5 < 0)
                    break;
                if (var$6 >= 0)
                    break;
                var$8 = var$7.$array.data[var$5];
                if ($par1EntityPlayerMP === var$8 ? 1 : $par1EntityPlayerMP === null ? (var$8 !== null ? 0 : 1) : !(var$8 instanceof nms_Entity) ? 0 : var$8.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                    break c;
                var$5 = var$5 + 1 | 0;
            }
            $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if (var$5 >= 0)
            ju_ArrayList_remove(var$7, var$5);
        $par1EntityPlayerMP = $par1EntityPlayerMP.$loadedChunks;
        var$7 = $this.$chunkLocation;
        var$8 = new ju_LinkedList$SequentialListIterator;
        var$9 = $par1EntityPlayerMP.$firstEntry;
        var$10 = null;
        var$8.$this$02 = $par1EntityPlayerMP;
        var$8.$version = $par1EntityPlayerMP.$modCount;
        var$8.$nextEntry1 = var$9;
        var$8.$prevEntry = var$10;
        var$8.$index4 = 0;
        d: {
            while (var$8.$nextEntry1 === null ? 0 : 1) {
                $par1EntityPlayerMP = ju_LinkedList$SequentialListIterator_next(var$8);
                if ($par1EntityPlayerMP === var$7 ? 1 : $par1EntityPlayerMP !== null ? $par1EntityPlayerMP.$equals(var$7) : var$7 !== null ? 0 : 1) {
                    ju_LinkedList$SequentialListIterator_remove(var$8);
                    break d;
                }
            }
        }
        if ($this.$playersInChunk.$size0 ? 0 : 1) {
            $par1EntityPlayerMP = $this.$chunkLocation;
            $var3 = Long_or(Long_add(Long_fromInt($par1EntityPlayerMP.$chunkXPos), Long_fromInt(2147483647)), Long_shl(Long_add(Long_fromInt($par1EntityPlayerMP.$chunkZPos), Long_fromInt(2147483647)), 32));
            $var2.$inhabitedTime = Long_add($var2.$inhabitedTime, Long_sub($this.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime(), $this.$previousWorldTime));
            $this.$previousWorldTime = $this.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime();
            nms_LongHashMap_removeKey($this.$thePlayerManager.$playerInstances, $var3);
            $var2 = $this.$thePlayerManager.$playerInstanceList;
            var$4 = $var2.$size0;
            var$3 = 0;
            e: {
                while (true) {
                    var$6 = $rt_compare(var$3, var$4);
                    if (var$6 >= 0) {
                        var$3 = (-1);
                        break e;
                    }
                    if (var$3 < 0)
                        break;
                    if (var$6 >= 0)
                        break;
                    $par1EntityPlayerMP = $var2.$array.data[var$3];
                    if ($this === $par1EntityPlayerMP ? 1 : $this === null ? ($par1EntityPlayerMP !== null ? 0 : 1) : $this !== $par1EntityPlayerMP ? 0 : 1)
                        break e;
                    var$3 = var$3 + 1 | 0;
                }
                $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                $par1EntityPlayerMP.$suppressionEnabled = 1;
                $par1EntityPlayerMP.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayerMP);
            }
            if (var$3 >= 0)
                ju_ArrayList_remove($var2, var$3);
            if ($this.$numberOfTilesToUpdate > 0) {
                $var2 = $this.$thePlayerManager.$chunkWatcherWithPlayers;
                var$4 = $var2.$size0;
                var$3 = 0;
                f: {
                    while (true) {
                        var$6 = $rt_compare(var$3, var$4);
                        if (var$6 >= 0) {
                            var$3 = (-1);
                            break f;
                        }
                        if (var$3 < 0)
                            break;
                        if (var$6 >= 0)
                            break;
                        $par1EntityPlayerMP = $var2.$array.data[var$3];
                        if ($this === $par1EntityPlayerMP ? 1 : $this === null ? ($par1EntityPlayerMP !== null ? 0 : 1) : $this !== $par1EntityPlayerMP ? 0 : 1)
                            break f;
                        var$3 = var$3 + 1 | 0;
                    }
                    $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                    $par1EntityPlayerMP.$suppressionEnabled = 1;
                    $par1EntityPlayerMP.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayerMP);
                }
                if (var$3 >= 0)
                    ju_ArrayList_remove($var2, var$3);
            }
            $par1EntityPlayerMP = $this.$thePlayerManager.$theWorldServer0.$theChunkProviderServer;
            $var2 = $this.$chunkLocation;
            nms_ChunkProviderServer_unloadChunksIfNotNearSpawn($par1EntityPlayerMP, $var2.$chunkXPos, $var2.$chunkZPos);
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0(var$7);
        }
        var$7 = $this.$playersInChunk;
        var$3 = var$7.$size0;
        var$5 = 0;
        g: {
            while (true) {
                var$6 = $rt_compare(var$5, var$3);
                if (var$6 >= 0) {
                    var$5 = (-1);
                    break g;
                }
                if (var$5 < 0)
                    break;
                if (var$6 >= 0)
                    break;
                var$8 = var$7.$array.data[var$5];
                if ($par1EntityPlayerMP === var$8 ? 1 : $par1EntityPlayerMP === null ? (var$8 !== null ? 0 : 1) : !(var$8 instanceof nms_Entity) ? 0 : var$8.$entityId != $par1EntityPlayerMP.$entityId ? 0 : 1)
                    break g;
                var$5 = var$5 + 1 | 0;
            }
            $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
            $par1EntityPlayerMP.$suppressionEnabled = 1;
            $par1EntityPlayerMP.$writableStackTrace = 1;
            $rt_throw($par1EntityPlayerMP);
        }
        if (var$5 >= 0)
            ju_ArrayList_remove(var$7, var$5);
        $par1EntityPlayerMP = $par1EntityPlayerMP.$loadedChunks;
        var$7 = $this.$chunkLocation;
        var$8 = new ju_LinkedList$SequentialListIterator;
        var$9 = $par1EntityPlayerMP.$firstEntry;
        var$10 = null;
        var$8.$this$02 = $par1EntityPlayerMP;
        var$8.$version = $par1EntityPlayerMP.$modCount;
        var$8.$nextEntry1 = var$9;
        var$8.$prevEntry = var$10;
        var$8.$index4 = 0;
        h: {
            while (var$8.$nextEntry1 === null ? 0 : 1) {
                $par1EntityPlayerMP = ju_LinkedList$SequentialListIterator_next(var$8);
                if ($par1EntityPlayerMP === var$7 ? 1 : $par1EntityPlayerMP !== null ? $par1EntityPlayerMP.$equals(var$7) : var$7 !== null ? 0 : 1) {
                    ju_LinkedList$SequentialListIterator_remove(var$8);
                    break h;
                }
            }
        }
        if ($this.$playersInChunk.$size0 ? 0 : 1) {
            $par1EntityPlayerMP = $this.$chunkLocation;
            $var3 = Long_or(Long_add(Long_fromInt($par1EntityPlayerMP.$chunkXPos), Long_fromInt(2147483647)), Long_shl(Long_add(Long_fromInt($par1EntityPlayerMP.$chunkZPos), Long_fromInt(2147483647)), 32));
            $var2.$inhabitedTime = Long_add($var2.$inhabitedTime, Long_sub($this.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime(), $this.$previousWorldTime));
            $this.$previousWorldTime = $this.$thePlayerManager.$theWorldServer0.$worldInfo.$getWorldTotalTime();
            nms_LongHashMap_removeKey($this.$thePlayerManager.$playerInstances, $var3);
            $var2 = $this.$thePlayerManager.$playerInstanceList;
            var$4 = $var2.$size0;
            var$3 = 0;
            i: {
                while (true) {
                    var$6 = $rt_compare(var$3, var$4);
                    if (var$6 >= 0) {
                        var$3 = (-1);
                        break i;
                    }
                    if (var$3 < 0)
                        break;
                    if (var$6 >= 0)
                        break;
                    $par1EntityPlayerMP = $var2.$array.data[var$3];
                    if ($this === $par1EntityPlayerMP ? 1 : $this === null ? ($par1EntityPlayerMP !== null ? 0 : 1) : $this !== $par1EntityPlayerMP ? 0 : 1)
                        break i;
                    var$3 = var$3 + 1 | 0;
                }
                $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                $par1EntityPlayerMP.$suppressionEnabled = 1;
                $par1EntityPlayerMP.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayerMP);
            }
            if (var$3 >= 0)
                ju_ArrayList_remove($var2, var$3);
            if ($this.$numberOfTilesToUpdate > 0) {
                $var2 = $this.$thePlayerManager.$chunkWatcherWithPlayers;
                var$4 = $var2.$size0;
                var$3 = 0;
                j: {
                    while (true) {
                        var$6 = $rt_compare(var$3, var$4);
                        if (var$6 >= 0) {
                            var$3 = (-1);
                            break j;
                        }
                        if (var$3 < 0)
                            break;
                        if (var$6 >= 0)
                            break;
                        $par1EntityPlayerMP = $var2.$array.data[var$3];
                        if ($this === $par1EntityPlayerMP ? 1 : $this === null ? ($par1EntityPlayerMP !== null ? 0 : 1) : $this !== $par1EntityPlayerMP ? 0 : 1)
                            break j;
                        var$3 = var$3 + 1 | 0;
                    }
                    $par1EntityPlayerMP = new jl_IndexOutOfBoundsException;
                    $par1EntityPlayerMP.$suppressionEnabled = 1;
                    $par1EntityPlayerMP.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayerMP);
                }
                if (var$3 >= 0)
                    ju_ArrayList_remove($var2, var$3);
            }
            $par1EntityPlayerMP = $this.$thePlayerManager.$theWorldServer0.$theChunkProviderServer;
            $var2 = $this.$chunkLocation;
            nms_ChunkProviderServer_unloadChunksIfNotNearSpawn($par1EntityPlayerMP, $var2.$chunkXPos, $var2.$chunkZPos);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayerMP, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $var3, $ptr);
},
nms_PlayerInstance_flagChunkForUpdate = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var4, var$7, $var5;
    if (!$this.$numberOfTilesToUpdate) {
        var$4 = $this.$thePlayerManager.$chunkWatcherWithPlayers;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$5 = var$4.$array.data;
        $var4 = var$4.$size0;
        var$4.$size0 = $var4 + 1 | 0;
        var$5[$var4] = $this;
        var$4.$modCount = var$4.$modCount + 1 | 0;
    }
    a: {
        $this.$flagsYAreasToUpdate = $this.$flagsYAreasToUpdate | 1 << ($par2 >> 4);
        var$7 = $this.$numberOfTilesToUpdate;
        if (var$7 < 64) {
            $var4 = ($par1 << 12 | $par3 << 8 | $par2) << 16 >> 16;
            $var5 = 0;
            while (true) {
                if ($var5 >= var$7) {
                    var$5 = $this.$locationOfBlockChange.data;
                    $this.$numberOfTilesToUpdate = var$7 + 1 | 0;
                    var$5[var$7] = $var4;
                    break a;
                }
                if ($this.$locationOfBlockChange.data[$var5] == $var4)
                    break;
                $var5 = $var5 + 1 | 0;
            }
            return;
        }
    }
},
nms_PlayerInstance_sendChunkUpdate = $this => {
    let $var2, $var5, $var1, var$4, $var3, var$6, var$7, $var1_0, $var2_0, var$10, var$11, $var6, var$13, $var3_0, var$15, $var4, var$17, var$18, var$19, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var4 = $thread.pop();var$15 = $thread.pop();$var3_0 = $thread.pop();var$13 = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var2_0 = $thread.pop();$var1_0 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();$var5 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                c: {
                    d: {
                        $var2 = $this.$numberOfTilesToUpdate;
                        if ($var2) {
                            if ($var2 == 1) {
                                $var5 = $this.$chunkLocation;
                                $var1 = $var5.$chunkXPos * 16 | 0;
                                var$4 = $this.$locationOfBlockChange.data;
                                $var1 = $var1 + (var$4[0] >> 12 & 15) | 0;
                                $var2 = var$4[0] & 255;
                                $var3 = ($var5.$chunkZPos * 16 | 0) + (var$4[0] >> 8 & 15) | 0;
                                $var5 = new nms_Packet53BlockChange;
                                var$6 = $this.$thePlayerManager.$theWorldServer0;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                $var5.$isChunkDataPacket = 1;
                                $var5.$xPosition2 = $var1;
                                $var5.$yPosition1 = $var2;
                                $var5.$zPosition2 = $var3;
                                $ptr = 1;
                                continue main;
                            }
                            if ($var2 != 64) {
                                $var5 = new nms_Packet52MultiBlockChange;
                                var$7 = $this.$chunkLocation;
                                $var1 = var$7.$chunkXPos;
                                $var3 = var$7.$chunkZPos;
                                var$4 = $this.$locationOfBlockChange;
                                var$7 = $this.$thePlayerManager.$theWorldServer0;
                                $ptr = 3;
                                continue main;
                            }
                            $var5 = $this.$chunkLocation;
                            $var1 = $var5.$chunkXPos;
                            $var1_0 = $var1 * 16 | 0;
                            $var2 = $var5.$chunkZPos;
                            $var2_0 = $var2 * 16 | 0;
                            var$10 = new nms_Packet51MapChunk;
                            $var5 = $this.$thePlayerManager.$theWorldServer0.$chunkProvider;
                            var$7 = $var5.$loadedChunkHashMap;
                            var$11 = Long_or(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var2), Long_create(4294967295, 0)), 32));
                            $var3 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
                            $var3 = $var3 ^ ($var3 >>> 20 | 0) ^ ($var3 >>> 12 | 0);
                            $var6 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                            var$4 = var$7.$hashArray.data;
                            var$7 = var$4[$var6 & (var$4.length - 1 | 0)];
                            e: {
                                while (var$7 !== null) {
                                    if (Long_eq(var$7.$key1, var$11)) {
                                        var$7 = var$7.$value4;
                                        break e;
                                    }
                                    var$7 = var$7.$nextEntry;
                                }
                                var$7 = null;
                            }
                            var$7 = var$7;
                            if (var$7 === null) {
                                if ($var5.$worldObj0.$findingSpawnPoint)
                                    break a;
                                if ($var5.$loadChunkOnProvideRequest)
                                    break a;
                                var$7 = $var5.$defaultEmptyChunk;
                            }
                            nms_Packet51MapChunk__init_(var$10, var$7, 0, $this.$flagsYAreasToUpdate);
                            $var1 = 0;
                            $var3 = var$10 instanceof nms_Packet3Chat;
                            var$13 = var$10;
                            while (true) {
                                $var5 = $this.$playersInChunk;
                                $var2 = $rt_compare($var1, $var5.$size0);
                                if ($var2 >= 0) {
                                    $var3_0 = 0;
                                    var$15 = $var1_0 + 16 | 0;
                                    $var1 = $var2_0 + 16 | 0;
                                    while ($var3_0 < 16) {
                                        f: {
                                            if ($this.$flagsYAreasToUpdate & 1 << $var3_0) {
                                                $var4 = $var3_0 << 4;
                                                $var5 = nms_WorldServer_getAllTileEntityInBox($this.$thePlayerManager.$theWorldServer0, $var1_0, $var4, $var2_0, var$15, $var4 + 16 | 0, $var1);
                                                $var6 = 0;
                                                while (true) {
                                                    $var2 = $rt_compare($var6, $var5.$size0);
                                                    if ($var2 >= 0)
                                                        break f;
                                                    if ($var6 < 0)
                                                        break c;
                                                    if ($var2 >= 0)
                                                        break c;
                                                    var$7 = $var5.$array.data[$var6];
                                                    if (var$7 !== null) {
                                                        var$7 = var$7.$getDescriptionPacket();
                                                        if (var$7 !== null) {
                                                            $var2 = 0;
                                                            while (true) {
                                                                var$6 = $this.$playersInChunk;
                                                                $var3 = $rt_compare($var2, var$6.$size0);
                                                                if ($var3 >= 0)
                                                                    break;
                                                                if ($var2 < 0)
                                                                    break b;
                                                                if ($var3 >= 0)
                                                                    break b;
                                                                var$6 = var$6.$array.data[$var2];
                                                                var$13 = var$6.$loadedChunks;
                                                                var$17 = $this.$chunkLocation;
                                                                var$18 = new ju_LinkedList$SequentialListIterator;
                                                                var$10 = var$13.$firstEntry;
                                                                var$19 = null;
                                                                var$18.$this$02 = var$13;
                                                                var$18.$version = var$13.$modCount;
                                                                var$18.$nextEntry1 = var$10;
                                                                var$18.$prevEntry = var$19;
                                                                var$18.$index4 = 0;
                                                                g: {
                                                                    while (true) {
                                                                        if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                                                                            $var3 = 0;
                                                                            break g;
                                                                        }
                                                                        var$13 = ju_LinkedList$SequentialListIterator_next(var$18);
                                                                        if (var$13 === var$17 ? 1 : var$13 !== null ? var$13.$equals(var$17) : var$17 !== null ? 0 : 1)
                                                                            break;
                                                                    }
                                                                    $var3 = 1;
                                                                }
                                                                if (!$var3)
                                                                    h: {
                                                                        var$6 = var$6.$playerNetServerHandler;
                                                                        if (var$7 instanceof nms_Packet3Chat) {
                                                                            var$13 = var$7;
                                                                            $var4 = var$6.$playerEntity.$chatVisibility;
                                                                            if ($var4 == 2)
                                                                                break h;
                                                                            if ($var4 == 1 && !var$13.$isServer)
                                                                                break h;
                                                                        }
                                                                        try {
                                                                            var$6 = var$6.$netManager;
                                                                            $ptr = 14;
                                                                            continue main;
                                                                        } catch ($$e) {
                                                                            $$je = $rt_wrapException($$e);
                                                                            if ($$je instanceof jl_Exception) {
                                                                                var$6 = $$je;
                                                                            } else {
                                                                                throw $$e;
                                                                            }
                                                                        }
                                                                        if (jl_System_errCache === null) {
                                                                            var$13 = new otcic_JSStderrPrintStream;
                                                                            ji_PrintStream__init_(var$13, ji_ByteArrayOutputStream__init_0(32), 0);
                                                                            jl_System_errCache = var$13;
                                                                        }
                                                                        jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                                                                    }
                                                                $var2 = $var2 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    $var6 = $var6 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var3_0 = $var3_0 + 1 | 0;
                                    }
                                    $this.$numberOfTilesToUpdate = 0;
                                    $this.$flagsYAreasToUpdate = 0;
                                    break d;
                                }
                                if ($var1 < 0)
                                    break;
                                if ($var2 >= 0)
                                    break;
                                $var5 = $var5.$array.data[$var1];
                                var$7 = $var5.$loadedChunks;
                                var$6 = $this.$chunkLocation;
                                var$17 = new ju_LinkedList$SequentialListIterator;
                                var$19 = var$7.$firstEntry;
                                var$18 = null;
                                var$17.$this$02 = var$7;
                                var$17.$version = var$7.$modCount;
                                var$17.$nextEntry1 = var$19;
                                var$17.$prevEntry = var$18;
                                var$17.$index4 = 0;
                                i: {
                                    while (true) {
                                        if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                                            $var2 = 0;
                                            break i;
                                        }
                                        var$7 = ju_LinkedList$SequentialListIterator_next(var$17);
                                        if (var$7 === var$6 ? 1 : var$7 !== null ? var$7.$equals(var$6) : var$6 !== null ? 0 : 1)
                                            break;
                                    }
                                    $var2 = 1;
                                }
                                if (!$var2)
                                    j: {
                                        $var5 = $var5.$playerNetServerHandler;
                                        if ($var3) {
                                            $var4 = $var5.$playerEntity.$chatVisibility;
                                            if ($var4 == 2)
                                                break j;
                                            if ($var4 == 1 && !var$13.$isServer)
                                                break j;
                                        }
                                        try {
                                            $var5 = $var5.$netManager;
                                            $ptr = 11;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                $var5 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            var$7 = new otcic_JSStderrPrintStream;
                                            var$6 = new ji_ByteArrayOutputStream;
                                            ji_OutputStream__init_(var$6);
                                            var$6.$buf = $rt_createByteArray(32);
                                            ji_FilterOutputStream__init_(var$7, var$6);
                                            var$7.$sb = jl_StringBuilder__init_();
                                            var$7.$buffer0 = $rt_createCharArray(32);
                                            var$7.$autoFlush = 0;
                                            var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                            jl_System_errCache = var$7;
                                        }
                                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                                    }
                                $var1 = $var1 + 1 | 0;
                            }
                            $var5 = new jl_IndexOutOfBoundsException;
                            $var5.$suppressionEnabled = 1;
                            $var5.$writableStackTrace = 1;
                            $rt_throw($var5);
                        }
                    }
                    return;
                }
                $var5 = new jl_IndexOutOfBoundsException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var5);
            $rt_throw($var5);
        }
        $ptr = 7;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId(var$6, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5.$type2 = $var4;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata(var$6, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5.$metadata0 = $var4;
        $var4 = 0;
        $var2_0 = $var5 instanceof nms_Packet3Chat;
        var$17 = $var5;
        while (true) {
            var$7 = $this.$playersInChunk;
            $var1_0 = $rt_compare($var4, var$7.$size0);
            if ($var1_0 >= 0) {
                $var5 = $this.$thePlayerManager.$theWorldServer0;
                $ptr = 4;
                continue main;
            }
            if ($var4 < 0)
                break;
            if ($var1_0 >= 0)
                break;
            var$7 = var$7.$array.data[$var4];
            var$6 = var$7.$loadedChunks;
            var$13 = $this.$chunkLocation;
            var$18 = new ju_LinkedList$SequentialListIterator;
            var$10 = var$6.$firstEntry;
            var$19 = null;
            var$18.$this$02 = var$6;
            var$18.$version = var$6.$modCount;
            var$18.$nextEntry1 = var$10;
            var$18.$prevEntry = var$19;
            var$18.$index4 = 0;
            d: {
                while (true) {
                    if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                        $var1_0 = 0;
                        break d;
                    }
                    var$6 = ju_LinkedList$SequentialListIterator_next(var$18);
                    if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                        break;
                }
                $var1_0 = 1;
            }
            if (!$var1_0)
                k: {
                    var$7 = var$7.$playerNetServerHandler;
                    if ($var2_0) {
                        $var6 = var$7.$playerEntity.$chatVisibility;
                        if ($var6 == 2)
                            break k;
                        if ($var6 == 1 && !var$17.$isServer)
                            break k;
                    }
                    try {
                        var$7 = var$7.$netManager;
                        $ptr = 9;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        var$13 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$13);
                        var$13.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$6, var$13);
                        var$6.$sb = jl_StringBuilder__init_();
                        var$6.$buffer0 = $rt_createCharArray(32);
                        var$6.$autoFlush = 0;
                        var$6.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                }
            $var4 = $var4 + 1 | 0;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 3:
        nms_Packet52MultiBlockChange__init_0($var5, $var1, $var3, var$4, $var2, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        $var3 = $var5 instanceof nms_Packet3Chat;
        var$17 = $var5;
        while (true) {
            var$7 = $this.$playersInChunk;
            $var2 = $rt_compare($var1, var$7.$size0);
            if ($var2 >= 0) {
                $var1 = 0;
                if ($var1 >= $this.$numberOfTilesToUpdate) {
                    $this.$numberOfTilesToUpdate = 0;
                    $this.$flagsYAreasToUpdate = 0;
                    return;
                }
                $var5 = $this.$chunkLocation;
                $var2 = $var5.$chunkXPos * 16 | 0;
                var$4 = $this.$locationOfBlockChange.data;
                $var2 = $var2 + (var$4[$var1] >> 12 & 15) | 0;
                $var3 = var$4[$var1] & 255;
                $var4 = ($var5.$chunkZPos * 16 | 0) + (var$4[$var1] >> 8 & 15) | 0;
                $var5 = $this.$thePlayerManager.$theWorldServer0;
                $ptr = 5;
                continue main;
            }
            if ($var1 < 0)
                break;
            if ($var2 >= 0)
                break;
            var$7 = var$7.$array.data[$var1];
            var$6 = var$7.$loadedChunks;
            var$13 = $this.$chunkLocation;
            var$18 = new ju_LinkedList$SequentialListIterator;
            var$10 = var$6.$firstEntry;
            var$19 = null;
            var$18.$this$02 = var$6;
            var$18.$version = var$6.$modCount;
            var$18.$nextEntry1 = var$10;
            var$18.$prevEntry = var$19;
            var$18.$index4 = 0;
            d: {
                while (true) {
                    if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                        $var2 = 0;
                        break d;
                    }
                    var$6 = ju_LinkedList$SequentialListIterator_next(var$18);
                    if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                        break;
                }
                $var2 = 1;
            }
            if (!$var2)
                k: {
                    var$7 = var$7.$playerNetServerHandler;
                    if ($var3) {
                        $var4 = var$7.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break k;
                        if ($var4 == 1 && !var$17.$isServer)
                            break k;
                    }
                    try {
                        var$7 = var$7.$netManager;
                        $ptr = 10;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        var$13 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$13);
                        var$13.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$6, var$13);
                        var$6.$sb = jl_StringBuilder__init_();
                        var$6.$buffer0 = $rt_createCharArray(32);
                        var$6.$autoFlush = 0;
                        var$6.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                }
            $var1 = $var1 + 1 | 0;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 4:
        $tmp = nms_World_getBlockId($var5, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        if (!(var$4[$var4] !== null && var$4[$var4].$isBlockContainer ? 1 : 0)) {
            $this.$numberOfTilesToUpdate = 0;
            $this.$flagsYAreasToUpdate = 0;
            return;
        }
        $var5 = $this.$thePlayerManager.$theWorldServer0;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($var5, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var1_0 = $tmp;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        if (var$4[$var1_0] !== null && var$4[$var1_0].$isBlockContainer ? 1 : 0) {
            $var5 = $this.$thePlayerManager.$theWorldServer0;
            $ptr = 8;
            continue main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 >= $this.$numberOfTilesToUpdate) {
            $this.$numberOfTilesToUpdate = 0;
            $this.$flagsYAreasToUpdate = 0;
            return;
        }
        $var5 = $this.$chunkLocation;
        $var2 = $var5.$chunkXPos * 16 | 0;
        var$4 = $this.$locationOfBlockChange.data;
        $var2 = $var2 + (var$4[$var1] >> 12 & 15) | 0;
        $var3 = var$4[$var1] & 255;
        $var4 = ($var5.$chunkZPos * 16 | 0) + (var$4[$var1] >> 8 & 15) | 0;
        $var5 = $this.$thePlayerManager.$theWorldServer0;
        continue main;
    case 6:
        a: {
            $tmp = nms_World_getBlockTileEntity($var5, $var1, $var2, $var3);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if ($var5 !== null) {
                $var5 = $var5.$getDescriptionPacket();
                if ($var5 !== null) {
                    $var1 = 0;
                    while (true) {
                        var$7 = $this.$playersInChunk;
                        $var2 = $rt_compare($var1, var$7.$size0);
                        if ($var2 >= 0)
                            break;
                        if ($var1 < 0)
                            break a;
                        if ($var2 >= 0)
                            break a;
                        var$7 = var$7.$array.data[$var1];
                        var$6 = var$7.$loadedChunks;
                        var$13 = $this.$chunkLocation;
                        var$17 = new ju_LinkedList$SequentialListIterator;
                        var$19 = var$6.$firstEntry;
                        var$18 = null;
                        var$17.$this$02 = var$6;
                        var$17.$version = var$6.$modCount;
                        var$17.$nextEntry1 = var$19;
                        var$17.$prevEntry = var$18;
                        var$17.$index4 = 0;
                        d: {
                            while (true) {
                                if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                                    $var2 = 0;
                                    break d;
                                }
                                var$6 = ju_LinkedList$SequentialListIterator_next(var$17);
                                if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                                    break;
                            }
                            $var2 = 1;
                        }
                        if (!$var2)
                            k: {
                                var$7 = var$7.$playerNetServerHandler;
                                if ($var5 instanceof nms_Packet3Chat) {
                                    var$6 = $var5;
                                    $var3 = var$7.$playerEntity.$chatVisibility;
                                    if ($var3 == 2)
                                        break k;
                                    if ($var3 == 1 && !var$6.$isServer)
                                        break k;
                                }
                                try {
                                    var$7 = var$7.$netManager;
                                    $ptr = 12;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$7 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$6 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = var$6;
                                }
                                jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                            }
                        $var1 = $var1 + 1 | 0;
                    }
                }
            }
            $this.$numberOfTilesToUpdate = 0;
            $this.$flagsYAreasToUpdate = 0;
            return;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var5);
        $rt_throw($var5);
    case 7:
        $tmp = nms_ChunkProviderServer_loadChunk($var5, $var1, $var2);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Packet51MapChunk__init_(var$10, var$7, 0, $this.$flagsYAreasToUpdate);
        $var1 = 0;
        $var3 = var$10 instanceof nms_Packet3Chat;
        var$13 = var$10;
        while (true) {
            $var5 = $this.$playersInChunk;
            $var2 = $rt_compare($var1, $var5.$size0);
            if ($var2 >= 0) {
                $var3_0 = 0;
                var$15 = $var1_0 + 16 | 0;
                $var1 = $var2_0 + 16 | 0;
                l: {
                    m: {
                        while ($var3_0 < 16) {
                            n: {
                                if ($this.$flagsYAreasToUpdate & 1 << $var3_0) {
                                    $var4 = $var3_0 << 4;
                                    $var5 = nms_WorldServer_getAllTileEntityInBox($this.$thePlayerManager.$theWorldServer0, $var1_0, $var4, $var2_0, var$15, $var4 + 16 | 0, $var1);
                                    $var6 = 0;
                                    while (true) {
                                        $var2 = $rt_compare($var6, $var5.$size0);
                                        if ($var2 >= 0)
                                            break n;
                                        if ($var6 < 0)
                                            break m;
                                        if ($var2 >= 0)
                                            break m;
                                        var$7 = $var5.$array.data[$var6];
                                        if (var$7 !== null) {
                                            var$7 = var$7.$getDescriptionPacket();
                                            if (var$7 !== null) {
                                                $var2 = 0;
                                                while (true) {
                                                    var$6 = $this.$playersInChunk;
                                                    $var3 = $rt_compare($var2, var$6.$size0);
                                                    if ($var3 >= 0)
                                                        break;
                                                    if ($var2 < 0)
                                                        break l;
                                                    if ($var3 >= 0)
                                                        break l;
                                                    var$6 = var$6.$array.data[$var2];
                                                    var$13 = var$6.$loadedChunks;
                                                    var$17 = $this.$chunkLocation;
                                                    var$18 = new ju_LinkedList$SequentialListIterator;
                                                    var$10 = var$13.$firstEntry;
                                                    var$19 = null;
                                                    var$18.$this$02 = var$13;
                                                    var$18.$version = var$13.$modCount;
                                                    var$18.$nextEntry1 = var$10;
                                                    var$18.$prevEntry = var$19;
                                                    var$18.$index4 = 0;
                                                    j: {
                                                        while (true) {
                                                            if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                                                                $var3 = 0;
                                                                break j;
                                                            }
                                                            var$13 = ju_LinkedList$SequentialListIterator_next(var$18);
                                                            if (var$13 === var$17 ? 1 : var$13 !== null ? var$13.$equals(var$17) : var$17 !== null ? 0 : 1)
                                                                break;
                                                        }
                                                        $var3 = 1;
                                                    }
                                                    if (!$var3)
                                                        o: {
                                                            var$6 = var$6.$playerNetServerHandler;
                                                            if (var$7 instanceof nms_Packet3Chat) {
                                                                var$13 = var$7;
                                                                $var4 = var$6.$playerEntity.$chatVisibility;
                                                                if ($var4 == 2)
                                                                    break o;
                                                                if ($var4 == 1 && !var$13.$isServer)
                                                                    break o;
                                                            }
                                                            try {
                                                                var$6 = var$6.$netManager;
                                                                $ptr = 14;
                                                                continue main;
                                                            } catch ($$e) {
                                                                $$je = $rt_wrapException($$e);
                                                                if ($$je instanceof jl_Exception) {
                                                                    var$6 = $$je;
                                                                } else {
                                                                    throw $$e;
                                                                }
                                                            }
                                                            if (jl_System_errCache === null) {
                                                                var$13 = new otcic_JSStderrPrintStream;
                                                                ji_PrintStream__init_(var$13, ji_ByteArrayOutputStream__init_0(32), 0);
                                                                jl_System_errCache = var$13;
                                                            }
                                                            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                                                        }
                                                    $var2 = $var2 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var6 = $var6 + 1 | 0;
                                    }
                                }
                            }
                            $var3_0 = $var3_0 + 1 | 0;
                        }
                        $this.$numberOfTilesToUpdate = 0;
                        $this.$flagsYAreasToUpdate = 0;
                        return;
                    }
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    $rt_throw($var5);
                }
                $var5 = new jl_IndexOutOfBoundsException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var5);
                $rt_throw($var5);
            }
            if ($var1 < 0)
                break;
            if ($var2 >= 0)
                break;
            $var5 = $var5.$array.data[$var1];
            var$7 = $var5.$loadedChunks;
            var$6 = $this.$chunkLocation;
            var$17 = new ju_LinkedList$SequentialListIterator;
            var$19 = var$7.$firstEntry;
            var$18 = null;
            var$17.$this$02 = var$7;
            var$17.$version = var$7.$modCount;
            var$17.$nextEntry1 = var$19;
            var$17.$prevEntry = var$18;
            var$17.$index4 = 0;
            d: {
                while (true) {
                    if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                        $var2 = 0;
                        break d;
                    }
                    var$7 = ju_LinkedList$SequentialListIterator_next(var$17);
                    if (var$7 === var$6 ? 1 : var$7 !== null ? var$7.$equals(var$6) : var$6 !== null ? 0 : 1)
                        break;
                }
                $var2 = 1;
            }
            if (!$var2)
                k: {
                    $var5 = $var5.$playerNetServerHandler;
                    if ($var3) {
                        $var4 = $var5.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            break k;
                        if ($var4 == 1 && !var$13.$isServer)
                            break k;
                    }
                    try {
                        $var5 = $var5.$netManager;
                        $ptr = 11;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var5 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        var$6 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$6);
                        var$6.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$7, var$6);
                        var$7.$sb = jl_StringBuilder__init_();
                        var$7.$buffer0 = $rt_createCharArray(32);
                        var$7.$autoFlush = 0;
                        var$7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace($var5, jl_System_errCache);
                }
            $var1 = $var1 + 1 | 0;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 8:
        a: {
            $tmp = nms_World_getBlockTileEntity($var5, $var2, $var3, $var4);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = $tmp;
            if ($var5 !== null) {
                $var5 = $var5.$getDescriptionPacket();
                if ($var5 !== null) {
                    $var2 = 0;
                    while (true) {
                        var$7 = $this.$playersInChunk;
                        $var3 = $rt_compare($var2, var$7.$size0);
                        if ($var3 >= 0)
                            break a;
                        if ($var2 < 0)
                            break;
                        if ($var3 >= 0)
                            break;
                        var$7 = var$7.$array.data[$var2];
                        var$6 = var$7.$loadedChunks;
                        var$13 = $this.$chunkLocation;
                        var$17 = new ju_LinkedList$SequentialListIterator;
                        var$19 = var$6.$firstEntry;
                        var$18 = null;
                        var$17.$this$02 = var$6;
                        var$17.$version = var$6.$modCount;
                        var$17.$nextEntry1 = var$19;
                        var$17.$prevEntry = var$18;
                        var$17.$index4 = 0;
                        p: {
                            while (true) {
                                if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                                    $var3 = 0;
                                    break p;
                                }
                                var$6 = ju_LinkedList$SequentialListIterator_next(var$17);
                                if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                                    break;
                            }
                            $var3 = 1;
                        }
                        if (!$var3)
                            q: {
                                var$7 = var$7.$playerNetServerHandler;
                                if ($var5 instanceof nms_Packet3Chat) {
                                    var$6 = $var5;
                                    $var4 = var$7.$playerEntity.$chatVisibility;
                                    if ($var4 == 2)
                                        break q;
                                    if ($var4 == 1 && !var$6.$isServer)
                                        break q;
                                }
                                try {
                                    var$7 = var$7.$netManager;
                                    $ptr = 13;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$7 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$6 = new otcic_JSStderrPrintStream;
                                    ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                                    jl_System_errCache = var$6;
                                }
                                jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                            }
                        $var2 = $var2 + 1 | 0;
                    }
                    $var5 = new jl_IndexOutOfBoundsException;
                    $var5.$suppressionEnabled = 1;
                    $var5.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var5);
                    $rt_throw($var5);
                }
            }
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 >= $this.$numberOfTilesToUpdate) {
            $this.$numberOfTilesToUpdate = 0;
            $this.$flagsYAreasToUpdate = 0;
            return;
        }
        $var5 = $this.$chunkLocation;
        $var2 = $var5.$chunkXPos * 16 | 0;
        var$4 = $this.$locationOfBlockChange.data;
        $var2 = $var2 + (var$4[$var1] >> 12 & 15) | 0;
        $var3 = var$4[$var1] & 255;
        $var4 = ($var5.$chunkZPos * 16 | 0) + (var$4[$var1] >> 8 & 15) | 0;
        $var5 = $this.$thePlayerManager.$theWorldServer0;
        $ptr = 5;
        continue main;
    case 9:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var1_0 = 32;
                ji_OutputStream__init_(var$13);
                var$4 = $rt_createByteArray($var1_0);
                var$13.$buf = var$4;
                $var1_0 = 0;
                ji_FilterOutputStream__init_(var$6, var$13);
                var$13 = jl_StringBuilder__init_();
                var$6.$sb = var$13;
                $var6 = 32;
                var$4 = $rt_createCharArray($var6);
                var$6.$buffer0 = var$4;
                var$6.$autoFlush = $var1_0;
                var$13 = jnci_UTF8Charset_INSTANCE;
                var$6.$charset = var$13;
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        p: while (true) {
            while (true) {
                while (true) {
                    $var4 = $var4 + 1 | 0;
                    var$7 = $this.$playersInChunk;
                    $var1_0 = $rt_compare($var4, var$7.$size0);
                    if ($var1_0 >= 0) {
                        $var5 = $this.$thePlayerManager.$theWorldServer0;
                        $ptr = 4;
                        continue main;
                    }
                    if ($var4 < 0)
                        break p;
                    if ($var1_0 >= 0)
                        break p;
                    var$7 = var$7.$array.data[$var4];
                    var$6 = var$7.$loadedChunks;
                    var$13 = $this.$chunkLocation;
                    var$18 = new ju_LinkedList$SequentialListIterator;
                    var$10 = var$6.$firstEntry;
                    var$19 = null;
                    var$18.$this$02 = var$6;
                    var$18.$version = var$6.$modCount;
                    var$18.$nextEntry1 = var$10;
                    var$18.$prevEntry = var$19;
                    var$18.$index4 = 0;
                    r: {
                        while (true) {
                            if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                                $var1_0 = 0;
                                break r;
                            }
                            var$6 = ju_LinkedList$SequentialListIterator_next(var$18);
                            if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                                break;
                        }
                        $var1_0 = 1;
                    }
                    if ($var1_0)
                        continue;
                    else
                        break;
                }
                var$7 = var$7.$playerNetServerHandler;
                if (!$var2_0)
                    break;
                $var6 = var$7.$playerEntity.$chatVisibility;
                if ($var6 == 2)
                    continue;
                if ($var6 != 1)
                    break;
                if (var$17.$isServer)
                    break;
            }
            try {
                var$7 = var$7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var1_0 = 32;
                ji_OutputStream__init_(var$13);
                var$4 = $rt_createByteArray($var1_0);
                var$13.$buf = var$4;
                $var1_0 = 0;
                ji_FilterOutputStream__init_(var$6, var$13);
                var$13 = jl_StringBuilder__init_();
                var$6.$sb = var$13;
                $var6 = 32;
                var$4 = $rt_createCharArray($var6);
                var$6.$buffer0 = var$4;
                var$6.$autoFlush = $var1_0;
                var$13 = jnci_UTF8Charset_INSTANCE;
                var$6.$charset = var$13;
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 10:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var2 = 32;
                ji_OutputStream__init_(var$13);
                var$4 = $rt_createByteArray($var2);
                var$13.$buf = var$4;
                $var2 = 0;
                ji_FilterOutputStream__init_(var$6, var$13);
                var$13 = jl_StringBuilder__init_();
                var$6.$sb = var$13;
                $var4 = 32;
                var$4 = $rt_createCharArray($var4);
                var$6.$buffer0 = var$4;
                var$6.$autoFlush = $var2;
                var$13 = jnci_UTF8Charset_INSTANCE;
                var$6.$charset = var$13;
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        p: while (true) {
            while (true) {
                while (true) {
                    $var1 = $var1 + 1 | 0;
                    var$7 = $this.$playersInChunk;
                    $var2 = $rt_compare($var1, var$7.$size0);
                    if ($var2 >= 0) {
                        $var1 = 0;
                        if ($var1 >= $this.$numberOfTilesToUpdate) {
                            $this.$numberOfTilesToUpdate = 0;
                            $this.$flagsYAreasToUpdate = 0;
                            return;
                        }
                        $var5 = $this.$chunkLocation;
                        $var2 = $var5.$chunkXPos * 16 | 0;
                        var$4 = $this.$locationOfBlockChange.data;
                        $var2 = $var2 + (var$4[$var1] >> 12 & 15) | 0;
                        $var3 = var$4[$var1] & 255;
                        $var4 = ($var5.$chunkZPos * 16 | 0) + (var$4[$var1] >> 8 & 15) | 0;
                        $var5 = $this.$thePlayerManager.$theWorldServer0;
                        $ptr = 5;
                        continue main;
                    }
                    if ($var1 < 0)
                        break p;
                    if ($var2 >= 0)
                        break p;
                    var$7 = var$7.$array.data[$var1];
                    var$6 = var$7.$loadedChunks;
                    var$13 = $this.$chunkLocation;
                    var$18 = new ju_LinkedList$SequentialListIterator;
                    var$10 = var$6.$firstEntry;
                    var$19 = null;
                    var$18.$this$02 = var$6;
                    var$18.$version = var$6.$modCount;
                    var$18.$nextEntry1 = var$10;
                    var$18.$prevEntry = var$19;
                    var$18.$index4 = 0;
                    r: {
                        while (true) {
                            if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                                $var2 = 0;
                                break r;
                            }
                            var$6 = ju_LinkedList$SequentialListIterator_next(var$18);
                            if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                                break;
                        }
                        $var2 = 1;
                    }
                    if ($var2)
                        continue;
                    else
                        break;
                }
                var$7 = var$7.$playerNetServerHandler;
                if (!$var3)
                    break;
                $var4 = var$7.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if (var$17.$isServer)
                    break;
            }
            try {
                var$7 = var$7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var2 = 32;
                ji_OutputStream__init_(var$13);
                var$4 = $rt_createByteArray($var2);
                var$13.$buf = var$4;
                $var2 = 0;
                ji_FilterOutputStream__init_(var$6, var$13);
                var$13 = jl_StringBuilder__init_();
                var$6.$sb = var$13;
                $var4 = 32;
                var$4 = $rt_createCharArray($var4);
                var$6.$buffer0 = var$4;
                var$6.$autoFlush = $var2;
                var$13 = jnci_UTF8Charset_INSTANCE;
                var$6.$charset = var$13;
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 11:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, var$10);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                $var2 = 32;
                ji_OutputStream__init_(var$6);
                var$4 = $rt_createByteArray($var2);
                var$6.$buf = var$4;
                $var2 = 0;
                ji_FilterOutputStream__init_(var$7, var$6);
                var$6 = jl_StringBuilder__init_();
                var$7.$sb = var$6;
                $var4 = 32;
                var$4 = $rt_createCharArray($var4);
                var$7.$buffer0 = var$4;
                var$7.$autoFlush = $var2;
                var$6 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = var$6;
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace($var5, var$7);
        }
        p: while (true) {
            while (true) {
                while (true) {
                    $var1 = $var1 + 1 | 0;
                    $var5 = $this.$playersInChunk;
                    $var2 = $rt_compare($var1, $var5.$size0);
                    if ($var2 >= 0) {
                        $var3_0 = 0;
                        var$15 = $var1_0 + 16 | 0;
                        $var1 = $var2_0 + 16 | 0;
                        n: {
                            s: {
                                while ($var3_0 < 16) {
                                    t: {
                                        if ($this.$flagsYAreasToUpdate & 1 << $var3_0) {
                                            $var4 = $var3_0 << 4;
                                            $var5 = nms_WorldServer_getAllTileEntityInBox($this.$thePlayerManager.$theWorldServer0, $var1_0, $var4, $var2_0, var$15, $var4 + 16 | 0, $var1);
                                            $var6 = 0;
                                            while (true) {
                                                $var2 = $rt_compare($var6, $var5.$size0);
                                                if ($var2 >= 0)
                                                    break t;
                                                if ($var6 < 0)
                                                    break s;
                                                if ($var2 >= 0)
                                                    break s;
                                                var$7 = $var5.$array.data[$var6];
                                                if (var$7 !== null) {
                                                    var$7 = var$7.$getDescriptionPacket();
                                                    if (var$7 !== null) {
                                                        $var2 = 0;
                                                        while (true) {
                                                            var$6 = $this.$playersInChunk;
                                                            $var3 = $rt_compare($var2, var$6.$size0);
                                                            if ($var3 >= 0)
                                                                break;
                                                            if ($var2 < 0)
                                                                break n;
                                                            if ($var3 >= 0)
                                                                break n;
                                                            var$6 = var$6.$array.data[$var2];
                                                            var$13 = var$6.$loadedChunks;
                                                            var$17 = $this.$chunkLocation;
                                                            var$18 = new ju_LinkedList$SequentialListIterator;
                                                            var$10 = var$13.$firstEntry;
                                                            var$19 = null;
                                                            var$18.$this$02 = var$13;
                                                            var$18.$version = var$13.$modCount;
                                                            var$18.$nextEntry1 = var$10;
                                                            var$18.$prevEntry = var$19;
                                                            var$18.$index4 = 0;
                                                            u: {
                                                                while (true) {
                                                                    if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                                                                        $var3 = 0;
                                                                        break u;
                                                                    }
                                                                    var$13 = ju_LinkedList$SequentialListIterator_next(var$18);
                                                                    if (var$13 === var$17 ? 1 : var$13 !== null ? var$13.$equals(var$17) : var$17 !== null ? 0 : 1)
                                                                        break;
                                                                }
                                                                $var3 = 1;
                                                            }
                                                            if (!$var3)
                                                                v: {
                                                                    var$6 = var$6.$playerNetServerHandler;
                                                                    if (var$7 instanceof nms_Packet3Chat) {
                                                                        var$13 = var$7;
                                                                        $var4 = var$6.$playerEntity.$chatVisibility;
                                                                        if ($var4 == 2)
                                                                            break v;
                                                                        if ($var4 == 1 && !var$13.$isServer)
                                                                            break v;
                                                                    }
                                                                    try {
                                                                        var$6 = var$6.$netManager;
                                                                        $ptr = 14;
                                                                        continue main;
                                                                    } catch ($$e) {
                                                                        $$je = $rt_wrapException($$e);
                                                                        if ($$je instanceof jl_Exception) {
                                                                            var$6 = $$je;
                                                                        } else {
                                                                            throw $$e;
                                                                        }
                                                                    }
                                                                    if (jl_System_errCache === null) {
                                                                        var$13 = new otcic_JSStderrPrintStream;
                                                                        ji_PrintStream__init_(var$13, ji_ByteArrayOutputStream__init_0(32), 0);
                                                                        jl_System_errCache = var$13;
                                                                    }
                                                                    jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                                                                }
                                                            $var2 = $var2 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                $var6 = $var6 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var3_0 = $var3_0 + 1 | 0;
                                }
                                $this.$numberOfTilesToUpdate = 0;
                                $this.$flagsYAreasToUpdate = 0;
                                return;
                            }
                            $var5 = new jl_IndexOutOfBoundsException;
                            $var5.$suppressionEnabled = 1;
                            $var5.$writableStackTrace = 1;
                            $rt_throw($var5);
                        }
                        $var5 = new jl_IndexOutOfBoundsException;
                        $var5.$suppressionEnabled = 1;
                        $var5.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var5);
                        $rt_throw($var5);
                    }
                    if ($var1 < 0)
                        break p;
                    if ($var2 >= 0)
                        break p;
                    $var5 = $var5.$array.data[$var1];
                    var$7 = $var5.$loadedChunks;
                    var$6 = $this.$chunkLocation;
                    var$17 = new ju_LinkedList$SequentialListIterator;
                    var$19 = var$7.$firstEntry;
                    var$18 = null;
                    var$17.$this$02 = var$7;
                    var$17.$version = var$7.$modCount;
                    var$17.$nextEntry1 = var$19;
                    var$17.$prevEntry = var$18;
                    var$17.$index4 = 0;
                    r: {
                        while (true) {
                            if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                                $var2 = 0;
                                break r;
                            }
                            var$7 = ju_LinkedList$SequentialListIterator_next(var$17);
                            if (var$7 === var$6 ? 1 : var$7 !== null ? var$7.$equals(var$6) : var$6 !== null ? 0 : 1)
                                break;
                        }
                        $var2 = 1;
                    }
                    if ($var2)
                        continue;
                    else
                        break;
                }
                $var5 = $var5.$playerNetServerHandler;
                if (!$var3)
                    break;
                $var4 = $var5.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if (var$13.$isServer)
                    break;
            }
            try {
                $var5 = $var5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                $var2 = 32;
                ji_OutputStream__init_(var$6);
                var$4 = $rt_createByteArray($var2);
                var$6.$buf = var$4;
                $var2 = 0;
                ji_FilterOutputStream__init_(var$7, var$6);
                var$6 = jl_StringBuilder__init_();
                var$7.$sb = var$6;
                $var4 = 32;
                var$4 = $rt_createCharArray($var4);
                var$7.$buffer0 = var$4;
                var$7.$autoFlush = $var2;
                var$6 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = var$6;
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace($var5, var$7);
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    case 12:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var2 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $var2);
                $var2 = 0;
                ji_PrintStream__init_(var$6, var$13, $var2);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        d: {
            p: while (true) {
                while (true) {
                    while (true) {
                        $var1 = $var1 + 1 | 0;
                        var$7 = $this.$playersInChunk;
                        $var2 = $rt_compare($var1, var$7.$size0);
                        if ($var2 >= 0)
                            break p;
                        if ($var1 < 0)
                            break d;
                        if ($var2 >= 0)
                            break d;
                        var$7 = var$7.$array.data[$var1];
                        var$6 = var$7.$loadedChunks;
                        var$13 = $this.$chunkLocation;
                        var$17 = new ju_LinkedList$SequentialListIterator;
                        var$19 = var$6.$firstEntry;
                        var$18 = null;
                        var$17.$this$02 = var$6;
                        var$17.$version = var$6.$modCount;
                        var$17.$nextEntry1 = var$19;
                        var$17.$prevEntry = var$18;
                        var$17.$index4 = 0;
                        r: {
                            while (true) {
                                if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                                    $var2 = 0;
                                    break r;
                                }
                                var$6 = ju_LinkedList$SequentialListIterator_next(var$17);
                                if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                                    break;
                            }
                            $var2 = 1;
                        }
                        if ($var2)
                            continue;
                        else
                            break;
                    }
                    var$7 = var$7.$playerNetServerHandler;
                    if (!($var5 instanceof nms_Packet3Chat))
                        break;
                    var$6 = $var5;
                    $var3 = var$7.$playerEntity.$chatVisibility;
                    if ($var3 == 2)
                        continue;
                    if ($var3 != 1)
                        break;
                    if (var$6.$isServer)
                        break;
                }
                try {
                    var$7 = var$7.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$7 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$6 = jl_System_errCache;
                if (var$6 === null) {
                    var$6 = new otcic_JSStderrPrintStream;
                    var$13 = new ji_ByteArrayOutputStream;
                    $var2 = 32;
                    ji_ByteArrayOutputStream__init_1(var$13, $var2);
                    $var2 = 0;
                    ji_PrintStream__init_(var$6, var$13, $var2);
                    jl_System_errCache = var$6;
                }
                var$6 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$7, var$6);
            }
            $this.$numberOfTilesToUpdate = 0;
            $this.$flagsYAreasToUpdate = 0;
            return;
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var5);
        $rt_throw($var5);
    case 13:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, $var5);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var3 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $var3);
                $var3 = 0;
                ji_PrintStream__init_(var$6, var$13, $var3);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        p: while (true) {
            while (true) {
                while (true) {
                    $var2 = $var2 + 1 | 0;
                    var$7 = $this.$playersInChunk;
                    $var3 = $rt_compare($var2, var$7.$size0);
                    if ($var3 >= 0) {
                        $var1 = $var1 + 1 | 0;
                        if ($var1 >= $this.$numberOfTilesToUpdate) {
                            $this.$numberOfTilesToUpdate = 0;
                            $this.$flagsYAreasToUpdate = 0;
                            return;
                        }
                        $var5 = $this.$chunkLocation;
                        $var2 = $var5.$chunkXPos * 16 | 0;
                        var$4 = $this.$locationOfBlockChange.data;
                        $var2 = $var2 + (var$4[$var1] >> 12 & 15) | 0;
                        $var3 = var$4[$var1] & 255;
                        $var4 = ($var5.$chunkZPos * 16 | 0) + (var$4[$var1] >> 8 & 15) | 0;
                        $var5 = $this.$thePlayerManager.$theWorldServer0;
                        $ptr = 5;
                        continue main;
                    }
                    if ($var2 < 0)
                        break p;
                    if ($var3 >= 0)
                        break p;
                    var$7 = var$7.$array.data[$var2];
                    var$6 = var$7.$loadedChunks;
                    var$13 = $this.$chunkLocation;
                    var$17 = new ju_LinkedList$SequentialListIterator;
                    var$19 = var$6.$firstEntry;
                    var$18 = null;
                    var$17.$this$02 = var$6;
                    var$17.$version = var$6.$modCount;
                    var$17.$nextEntry1 = var$19;
                    var$17.$prevEntry = var$18;
                    var$17.$index4 = 0;
                    r: {
                        while (true) {
                            if (!(var$17.$nextEntry1 === null ? 0 : 1)) {
                                $var3 = 0;
                                break r;
                            }
                            var$6 = ju_LinkedList$SequentialListIterator_next(var$17);
                            if (var$6 === var$13 ? 1 : var$6 !== null ? var$6.$equals(var$13) : var$13 !== null ? 0 : 1)
                                break;
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        continue;
                    else
                        break;
                }
                var$7 = var$7.$playerNetServerHandler;
                if (!($var5 instanceof nms_Packet3Chat))
                    break;
                var$6 = $var5;
                $var4 = var$7.$playerEntity.$chatVisibility;
                if ($var4 == 2)
                    continue;
                if ($var4 != 1)
                    break;
                if (var$6.$isServer)
                    break;
            }
            try {
                var$7 = var$7.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                var$13 = new ji_ByteArrayOutputStream;
                $var3 = 32;
                ji_ByteArrayOutputStream__init_1(var$13, $var3);
                $var3 = 0;
                ji_PrintStream__init_(var$6, var$13, $var3);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$6);
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var5);
        $rt_throw($var5);
    case 14:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                var$17 = new ji_ByteArrayOutputStream;
                $var3 = 32;
                ji_ByteArrayOutputStream__init_1(var$17, $var3);
                $var3 = 0;
                ji_PrintStream__init_(var$13, var$17, $var3);
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$13);
        }
        d: {
            p: {
                w: while (true) {
                    while (true) {
                        while (true) {
                            $var2 = $var2 + 1 | 0;
                            while (true) {
                                var$6 = $this.$playersInChunk;
                                $var3 = $rt_compare($var2, var$6.$size0);
                                if ($var3 < 0)
                                    break;
                                while (true) {
                                    $var6 = $var6 + 1 | 0;
                                    while (true) {
                                        $var2 = $rt_compare($var6, $var5.$size0);
                                        if ($var2 < 0)
                                            break;
                                        while (true) {
                                            $var3_0 = $var3_0 + 1 | 0;
                                            if ($var3_0 >= 16)
                                                break w;
                                            if (!($this.$flagsYAreasToUpdate & 1 << $var3_0))
                                                continue;
                                            else
                                                break;
                                        }
                                        $var4 = $var3_0 << 4;
                                        $var5 = nms_WorldServer_getAllTileEntityInBox($this.$thePlayerManager.$theWorldServer0, $var1_0, $var4, $var2_0, var$15, $var4 + 16 | 0, $var1);
                                        $var6 = 0;
                                    }
                                    if ($var6 < 0)
                                        break d;
                                    if ($var2 >= 0)
                                        break d;
                                    var$7 = $var5.$array.data[$var6];
                                    if (var$7 === null)
                                        continue;
                                    var$7 = var$7.$getDescriptionPacket();
                                    if (var$7 === null)
                                        continue;
                                    else
                                        break;
                                }
                                $var2 = 0;
                            }
                            if ($var2 < 0)
                                break p;
                            if ($var3 >= 0)
                                break p;
                            var$6 = var$6.$array.data[$var2];
                            var$13 = var$6.$loadedChunks;
                            var$17 = $this.$chunkLocation;
                            var$18 = new ju_LinkedList$SequentialListIterator;
                            var$10 = var$13.$firstEntry;
                            var$19 = null;
                            var$18.$this$02 = var$13;
                            var$18.$version = var$13.$modCount;
                            var$18.$nextEntry1 = var$10;
                            var$18.$prevEntry = var$19;
                            var$18.$index4 = 0;
                            x: {
                                while (true) {
                                    if (!(var$18.$nextEntry1 === null ? 0 : 1)) {
                                        $var3 = 0;
                                        break x;
                                    }
                                    var$13 = ju_LinkedList$SequentialListIterator_next(var$18);
                                    if (var$13 === var$17 ? 1 : var$13 !== null ? var$13.$equals(var$17) : var$17 !== null ? 0 : 1)
                                        break;
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                continue;
                            else
                                break;
                        }
                        var$6 = var$6.$playerNetServerHandler;
                        if (!(var$7 instanceof nms_Packet3Chat))
                            break;
                        var$13 = var$7;
                        $var4 = var$6.$playerEntity.$chatVisibility;
                        if ($var4 == 2)
                            continue;
                        if ($var4 != 1)
                            break;
                        if (var$13.$isServer)
                            break;
                    }
                    try {
                        var$6 = var$6.$netManager;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    var$13 = jl_System_errCache;
                    if (var$13 === null) {
                        var$13 = new otcic_JSStderrPrintStream;
                        var$17 = new ji_ByteArrayOutputStream;
                        $var3 = 32;
                        ji_ByteArrayOutputStream__init_1(var$17, $var3);
                        $var3 = 0;
                        ji_PrintStream__init_(var$13, var$17, $var3);
                        jl_System_errCache = var$13;
                    }
                    var$13 = jl_System_errCache;
                    jl_Throwable_printStackTrace(var$6, var$13);
                }
                $this.$numberOfTilesToUpdate = 0;
                $this.$flagsYAreasToUpdate = 0;
                return;
            }
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var5);
            $rt_throw($var5);
        }
        $var5 = new jl_IndexOutOfBoundsException;
        $var5.$suppressionEnabled = 1;
        $var5.$writableStackTrace = 1;
        $rt_throw($var5);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, $var5, $var1, var$4, $var3, var$6, var$7, $var1_0, $var2_0, var$10, var$11, $var6, var$13, $var3_0, var$15, $var4, var$17, var$18, var$19, $ptr);
};
function nms_ChunkCoordinates() {
    let a = this; jl_Object.call(a);
    a.$posX0 = 0;
    a.$posY0 = 0;
    a.$posZ0 = 0;
}
let nms_ChunkCoordinates__init_ = $this => {
    return;
},
nms_ChunkCoordinates__init_0 = () => {
    let var_0 = new nms_ChunkCoordinates();
    nms_ChunkCoordinates__init_(var_0);
    return var_0;
},
nms_ChunkCoordinates_equals = ($this, $par1Obj) => {
    let $var2;
    if (!($par1Obj instanceof nms_ChunkCoordinates))
        return 0;
    $var2 = $par1Obj;
    return $this.$posX0 == $var2.$posX0 && $this.$posY0 == $var2.$posY0 && $this.$posZ0 == $var2.$posZ0 ? 1 : 0;
},
nms_ChunkCoordinates_hashCode = $this => {
    return ($this.$posX0 + $this.$posZ0 | 0) << (8 + $this.$posY0 | 0) << 16;
},
nms_ChunkCoordinates_compareTo = ($this, $par1Obj) => {
    let var$2, var$3;
    $par1Obj = $par1Obj;
    var$2 = $this.$posY0;
    var$3 = $par1Obj.$posY0;
    if (var$2 != var$3)
        var$2 = var$2 - var$3 | 0;
    else {
        var$2 = $this.$posZ0;
        var$3 = $par1Obj.$posZ0;
        var$2 = var$2 != var$3 ? var$2 - var$3 | 0 : $this.$posX0 - $par1Obj.$posX0 | 0;
    }
    return var$2;
};
function nms_PortalPosition() {
    let a = this; nms_ChunkCoordinates.call(a);
    a.$lastUpdateTime = Long_ZERO;
    a.$teleporterInstance = null;
}
let nms_ScoreObjectiveCriteria = $rt_classWithoutFields(0),
nms_ScoreObjectiveCriteria_field_96643_a = null,
nms_ScoreObjectiveCriteria_field_96641_b = null,
nms_ScoreObjectiveCriteria_deathCount = null,
nms_ScoreObjectiveCriteria_playerKillCount = null,
nms_ScoreObjectiveCriteria_totalKillCount = null,
nms_ScoreObjectiveCriteria_health = null,
nms_ScoreObjectiveCriteria_$callClinit = () => {
    nms_ScoreObjectiveCriteria_$callClinit = $rt_eraseClinit(nms_ScoreObjectiveCriteria);
    nms_ScoreObjectiveCriteria__clinit_();
},
nms_ScoreObjectiveCriteria__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_ScoreObjectiveCriteria_field_96643_a = var$1;
    var$5 = new nms_ScoreDummyCriteria;
    var$5.$field_96644_g = $rt_s(2435);
    nms_ScoreObjectiveCriteria_$callClinit();
    ju_HashMap_putImpl(var$1, $rt_s(2435), var$5);
    nms_ScoreObjectiveCriteria_field_96641_b = var$5;
    var$1 = new nms_ScoreDummyCriteria;
    var$1.$field_96644_g = $rt_s(2436);
    ju_HashMap_putImpl(nms_ScoreObjectiveCriteria_field_96643_a, $rt_s(2436), var$1);
    nms_ScoreObjectiveCriteria_deathCount = var$1;
    var$1 = new nms_ScoreDummyCriteria;
    var$1.$field_96644_g = $rt_s(2437);
    ju_HashMap_putImpl(nms_ScoreObjectiveCriteria_field_96643_a, $rt_s(2437), var$1);
    nms_ScoreObjectiveCriteria_playerKillCount = var$1;
    var$1 = new nms_ScoreDummyCriteria;
    var$1.$field_96644_g = $rt_s(2438);
    ju_HashMap_putImpl(nms_ScoreObjectiveCriteria_field_96643_a, $rt_s(2438), var$1);
    nms_ScoreObjectiveCriteria_totalKillCount = var$1;
    var$1 = new nms_ScoreHealthCriteria;
    var$1.$field_96644_g = $rt_s(2439);
    ju_HashMap_putImpl(nms_ScoreObjectiveCriteria_field_96643_a, $rt_s(2439), var$1);
    nms_ScoreObjectiveCriteria_health = var$1;
},
nms_Facing = $rt_classWithoutFields(),
nms_Facing_oppositeSide = null,
nms_Facing_offsetsXForSide = null,
nms_Facing_offsetsYForSide = null,
nms_Facing_offsetsZForSide = null,
nms_Facing_facings = null,
nms_Facing__init_ = $this => {
    return;
},
nms_Facing__init_0 = () => {
    let var_0 = new nms_Facing();
    nms_Facing__init_(var_0);
    return var_0;
},
nms_Facing__clinit_ = () => {
    nms_Facing_oppositeSide = $rt_createIntArrayFromData([1, 0, 3, 2, 5, 4]);
    nms_Facing_offsetsXForSide = $rt_createIntArrayFromData([0, 0, 0, 0, (-1), 1]);
    nms_Facing_offsetsYForSide = $rt_createIntArrayFromData([(-1), 1, 0, 0, 0, 0]);
    nms_Facing_offsetsZForSide = $rt_createIntArrayFromData([0, 0, (-1), 1, 0, 0]);
    nms_Facing_facings = $rt_wrapArray(jl_String, [$rt_s(1601), $rt_s(1600), $rt_s(2440), $rt_s(2441), $rt_s(2442), $rt_s(2443)]);
};
function nms_NibbleArray() {
    let a = this; jl_Object.call(a);
    a.$data8 = null;
    a.$depthBits = 0;
    a.$depthBitsPlusFour = 0;
}
let nms_NibbleArray_get = ($this, $par1, $par2, $par3) => {
    let $var4, $var5;
    $var4 = $par2 << $this.$depthBitsPlusFour | $par3 << $this.$depthBits | $par1;
    $var5 = $var4 >> 1;
    return !($var4 & 1) ? $this.$data8.data[$var5] & 15 : $this.$data8.data[$var5] >> 4 & 15;
},
nms_NibbleArray_set = ($this, $par1, $par2, $par3, $par4) => {
    let $var5, $var6, var$7;
    $var5 = $par2 << $this.$depthBitsPlusFour | $par3 << $this.$depthBits | $par1;
    $var6 = $var5 >> 1;
    if (!($var5 & 1)) {
        var$7 = $this.$data8.data;
        var$7[$var6] = (var$7[$var6] & 240 | $par4 & 15) << 24 >> 24;
    } else {
        var$7 = $this.$data8.data;
        var$7[$var6] = (var$7[$var6] & 15 | ($par4 & 15) << 4) << 24 >> 24;
    }
};
function nms_VillageDoorInfo() {
    let a = this; jl_Object.call(a);
    a.$posX2 = 0;
    a.$posY2 = 0;
    a.$posZ2 = 0;
    a.$insideDirectionX = 0;
    a.$insideDirectionZ = 0;
    a.$lastActivityTimestamp = 0;
    a.$isDetachedFromVillageFlag = 0;
    a.$doorOpeningRestrictionCounter = 0;
}
let nms_EntityLivingData = $rt_classWithoutFields(0);
function nms_Vec3() {
    let a = this; jl_Object.call(a);
    a.$myVec3LocalPool = null;
    a.$xCoord = 0.0;
    a.$yCoord = 0.0;
    a.$zCoord = 0.0;
}
let nms_Vec3_fakePool = null,
nms_Vec3_normalize = $this => {
    let $var1, var$2;
    $var1 = $this.$xCoord;
    $var1 = $var1 * $var1;
    var$2 = $this.$yCoord;
    $var1 = $var1 + var$2 * var$2;
    var$2 = $this.$zCoord;
    $var1 = jl_Math_sqrt($var1 + var$2 * var$2);
    return $var1 < 1.0E-4 ? nms_Vec3Pool_getVecFromPool($this.$myVec3LocalPool, 0.0, 0.0, 0.0) : nms_Vec3Pool_getVecFromPool($this.$myVec3LocalPool, $this.$xCoord / $var1, $this.$yCoord / $var1, $this.$zCoord / $var1);
},
nms_Vec3_getIntermediateWithXValue = ($this, $par1Vec3, $par2) => {
    let $var4, var$4, $var10, var$6, $var6, var$8, $var8;
    $var4 = $par1Vec3.$xCoord;
    var$4 = $this.$xCoord;
    $var4 = $var4 - var$4;
    $var10 = $par1Vec3.$yCoord;
    var$6 = $this.$yCoord;
    $var6 = $var10 - var$6;
    $var10 = $par1Vec3.$zCoord;
    var$8 = $this.$zCoord;
    $var8 = $var10 - var$8;
    if ($var4 * $var4 < 1.0000000116860974E-7)
        return null;
    $var10 = ($par2 - var$4) / $var4;
    return $var10 >= 0.0 && $var10 <= 1.0 ? nms_Vec3Pool_getVecFromPool($this.$myVec3LocalPool, var$4 + $var4 * $var10, var$6 + $var6 * $var10, var$8 + $var8 * $var10) : null;
},
nms_Vec3_getIntermediateWithYValue = ($this, $par1Vec3, $par2) => {
    let $var4, var$4, $var10, var$6, $var6, var$8, $var8;
    $var4 = $par1Vec3.$xCoord;
    var$4 = $this.$xCoord;
    $var4 = $var4 - var$4;
    $var10 = $par1Vec3.$yCoord;
    var$6 = $this.$yCoord;
    $var6 = $var10 - var$6;
    $var10 = $par1Vec3.$zCoord;
    var$8 = $this.$zCoord;
    $var8 = $var10 - var$8;
    if ($var6 * $var6 < 1.0000000116860974E-7)
        return null;
    $var10 = ($par2 - var$6) / $var6;
    return $var10 >= 0.0 && $var10 <= 1.0 ? nms_Vec3Pool_getVecFromPool($this.$myVec3LocalPool, var$4 + $var4 * $var10, var$6 + $var6 * $var10, var$8 + $var8 * $var10) : null;
},
nms_Vec3_getIntermediateWithZValue = ($this, $par1Vec3, $par2) => {
    let $var4, var$4, $var10, var$6, $var6, var$8, $var8;
    $var4 = $par1Vec3.$xCoord;
    var$4 = $this.$xCoord;
    $var4 = $var4 - var$4;
    $var10 = $par1Vec3.$yCoord;
    var$6 = $this.$yCoord;
    $var6 = $var10 - var$6;
    $var10 = $par1Vec3.$zCoord;
    var$8 = $this.$zCoord;
    $var8 = $var10 - var$8;
    if ($var8 * $var8 < 1.0000000116860974E-7)
        return null;
    $var10 = ($par2 - var$8) / $var8;
    return $var10 >= 0.0 && $var10 <= 1.0 ? nms_Vec3Pool_getVecFromPool($this.$myVec3LocalPool, var$4 + $var4 * $var10, var$6 + $var6 * $var10, var$8 + $var8 * $var10) : null;
},
nms_Vec3_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$xCoord;
    var$2 = $this.$yCoord;
    var$3 = $this.$zCoord;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    var$5 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$5, var$5 + 1 | 0);
    var$4.$buffer.data[var$5] = 40;
    jl_AbstractStringBuilder_insert2(var$4, var$4.$length0, var$1);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert2(var$4, var$4.$length0, var$2);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(118));
    jl_AbstractStringBuilder_insert2(var$4, var$4.$length0, var$3);
    var$5 = var$4.$length0;
    jl_AbstractStringBuilder_insertSpace(var$4, var$5, var$5 + 1 | 0);
    var$6 = var$4.$buffer;
    var$7 = var$6.data;
    var$7[var$5] = 41;
    var$8 = new jl_String;
    var$5 = var$4.$length0;
    var$9 = var$7.length;
    if (var$5 >= 0 && var$5 <= (var$9 - 0 | 0)) {
        var$8.$nativeString = $rt_charArrayToString(var$6.data, 0, var$5);
        return var$8;
    }
    var$4 = new jl_IndexOutOfBoundsException;
    var$4.$suppressionEnabled = 1;
    var$4.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$4);
    $rt_throw(var$4);
},
nms_Vec3__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nms_Vec3Pool;
    var$2 = new ju_ArrayList;
    var$2.$array = $rt_createArray(jl_Object, 10);
    var$1.$vec3Cache = var$2;
    var$1.$truncateArrayResetThreshold = (-1);
    var$1.$minimumSize = (-1);
    nms_Vec3_fakePool = var$1;
};
function nms_Score() {
    let a = this; jl_Object.call(a);
    a.$theScoreboard0 = null;
    a.$theScoreObjective = null;
    a.$field_96654_d = null;
    a.$field_96655_e = 0;
}
let nms_Score_field_96658_a = null,
nms_Score__clinit_ = () => {
    nms_Score_field_96658_a = new nms_ScoreComparator;
},
nms_Team = $rt_classWithoutFields();
function nms_ScorePlayerTeam() {
    let a = this; nms_Team.call(a);
    a.$theScoreboard1 = null;
    a.$field_96675_b = null;
    a.$membershipSet = null;
    a.$field_96673_d = null;
    a.$field_96674_e = null;
    a.$colorSuffix = null;
    a.$allowFriendlyFire = 0;
    a.$field_98301_h = 0;
}
function nms_EnumCreatureType() {
    let a = this; jl_Enum.call(a);
    a.$creatureClass = null;
    a.$maxNumberOfCreature = 0;
    a.$creatureMaterial = null;
    a.$isPeacefulCreature = 0;
    a.$isAnimal = 0;
}
let nms_EnumCreatureType_monster = null,
nms_EnumCreatureType_creature = null,
nms_EnumCreatureType_ambient = null,
nms_EnumCreatureType_waterCreature = null,
nms_EnumCreatureType_$VALUES = null,
nms_EnumCreatureType_$callClinit = () => {
    nms_EnumCreatureType_$callClinit = $rt_eraseClinit(nms_EnumCreatureType);
    nms_EnumCreatureType__clinit_();
},
nms_EnumCreatureType_values = () => {
    nms_EnumCreatureType_$callClinit();
    return nms_EnumCreatureType_$VALUES.$clone0();
},
nms_EnumCreatureType__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new nms_EnumCreatureType;
    nms_Material_$callClinit();
    var$2 = nms_Material_air;
    nms_EnumCreatureType_$callClinit();
    var$1.$name0 = $rt_s(2444);
    var$1.$ordinal = 0;
    var$1.$creatureClass = $rt_cls(nms_IMob);
    var$1.$maxNumberOfCreature = 70;
    var$1.$creatureMaterial = var$2;
    var$1.$isPeacefulCreature = 0;
    var$1.$isAnimal = 0;
    nms_EnumCreatureType_monster = var$1;
    var$3 = new nms_EnumCreatureType;
    var$3.$name0 = $rt_s(2445);
    var$3.$ordinal = 1;
    var$3.$creatureClass = $rt_cls(nms_EntityAnimal);
    var$3.$maxNumberOfCreature = 10;
    var$3.$creatureMaterial = var$2;
    var$3.$isPeacefulCreature = 1;
    var$3.$isAnimal = 1;
    nms_EnumCreatureType_creature = var$3;
    var$4 = new nms_EnumCreatureType;
    var$4.$name0 = $rt_s(2446);
    var$4.$ordinal = 2;
    var$4.$creatureClass = $rt_cls(nms_EntityAmbientCreature);
    var$4.$maxNumberOfCreature = 15;
    var$4.$creatureMaterial = var$2;
    var$4.$isPeacefulCreature = 1;
    var$4.$isAnimal = 0;
    nms_EnumCreatureType_ambient = var$4;
    var$5 = new nms_EnumCreatureType;
    var$2 = nms_Material_water;
    var$5.$name0 = $rt_s(2447);
    var$5.$ordinal = 3;
    var$5.$creatureClass = $rt_cls(nms_EntityWaterMob);
    var$5.$maxNumberOfCreature = 5;
    var$5.$creatureMaterial = var$2;
    var$5.$isPeacefulCreature = 1;
    var$5.$isAnimal = 0;
    nms_EnumCreatureType_waterCreature = var$5;
    nms_EnumCreatureType_$VALUES = $rt_wrapArray(nms_EnumCreatureType, [var$1, var$3, var$4, var$5]);
};
function nms_EntityAIBase() {
    jl_Object.call(this);
    this.$mutexBits = 0;
}
let nms_EntityAIBase_continueExecuting = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = $this.$shouldExecute();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        return var$1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityAIBase_isInterruptible = $this => {
    return 1;
},
nms_EntityAIBase_startExecuting = $this => {
    return;
},
nms_EntityAIBase_resetTask = $this => {
    return;
},
nms_EntityAIBase_updateTask = $this => {
    return;
},
nms_EntityAIBase_setMutexBits = ($this, $par1) => {
    $this.$mutexBits = $par1;
},
nms_EntityAIBase_getMutexBits = $this => {
    return $this.$mutexBits;
};
function nms_EntityAISwimming() {
    nms_EntityAIBase.call(this);
    this.$theEntity3 = null;
}
let nms_EntityAISwimming_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity3;
        if (var$1.$inWater)
            return 1;
        var$2 = var$1.$worldObj;
        var$1 = var$1.$boundingBox0;
        var$3 = var$1.$minX0 + 0.10000000149011612;
        var$4 = var$1.$minY0 + 0.4000000059604645;
        var$5 = var$1.$minZ0 + 0.10000000149011612;
        var$6 = var$1.$maxX0 + (-0.10000000149011612);
        var$7 = var$1.$maxY + (-0.4000000059604645);
        var$8 = var$1.$maxZ0 + (-0.10000000149011612);
        var$1 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$9 = var$1.$nextPoolIndex;
        var$10 = var$1.$listAABB;
        var$11 = var$10.$size0;
        var$12 = $rt_compare(var$9, var$11);
        if (var$12 >= 0) {
            var$13 = new nms_AxisAlignedBB;
            var$13.$minX0 = var$3;
            var$13.$minY0 = var$4;
            var$13.$minZ0 = var$5;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$7;
            var$13.$maxZ0 = var$8;
            ju_ArrayList_ensureCapacity(var$10, var$11 + 1 | 0);
            var$14 = var$10.$array.data;
            var$12 = var$10.$size0;
            var$10.$size0 = var$12 + 1 | 0;
            var$14[var$12] = var$13;
            var$10.$modCount = var$10.$modCount + 1 | 0;
        } else if (var$9 >= 0 && var$12 < 0) {
            var$13 = var$10.$array.data[var$9];
            var$13.$minX0 = var$3;
            var$13.$minY0 = var$4;
            var$13.$minZ0 = var$5;
            var$13.$maxX0 = var$6;
            var$13.$maxY = var$7;
            var$13.$maxZ0 = var$8;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
        var$1.$nextPoolIndex = var$1.$nextPoolIndex + 1 | 0;
        nms_Material_$callClinit();
        var$1 = nms_Material_lava;
        $ptr = 1;
    case 1:
        $tmp = nms_World_isMaterialInBB(var$2, var$13, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        return var$9 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityAISwimming_updateTask = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$theEntity3;
    var$2 = var$1.$rand;
    var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$2.$seed = var$3;
    if (Long_lo(Long_shru(var$3, 24)) / 1.6777216E7 < 0.800000011920929)
        var$1.$jumpHelper.$isJumping0 = 1;
};
function nms_EntityAIDoorInteract() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntity1 = null;
    a.$entityPosX = 0;
    a.$entityPosY = 0;
    a.$entityPosZ = 0;
    a.$targetDoor = null;
    a.$hasStoppedDoorInteraction = 0;
    a.$entityPositionX = 0.0;
    a.$entityPositionZ = 0.0;
}
let nms_EntityAIDoorInteract_shouldExecute = $this => {
    let $var4, $var1, $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$var4 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $this.$theEntity1;
        if (!$var4.$isCollidedHorizontally)
            return 0;
        $var1 = $var4.$navigator;
        $var2 = $var1.$currentPath;
        if ($var2 !== null && !($var2.$currentPathIndex < $var2.$pathLength ? 0 : 1) && $var1.$canPassClosedWoodenDoors) {
            $var3 = 0;
            while (true) {
                var$5 = $var2.$currentPathIndex + 2 | 0;
                var$6 = $var2.$pathLength;
                if (var$5 < var$6)
                    var$6 = var$5;
                if ($var3 >= var$6) {
                    $var4 = $this.$theEntity1;
                    var$7 = $var4.$posX;
                    var$8 = var$7 | 0;
                    if (var$7 < var$8)
                        var$8 = var$8 - 1 | 0;
                    $this.$entityPosX = var$8;
                    var$7 = $var4.$posY + 1.0;
                    $var3 = var$7 | 0;
                    if (var$7 < $var3)
                        $var3 = $var3 - 1 | 0;
                    $this.$entityPosY = $var3;
                    var$7 = $var4.$posZ;
                    var$5 = var$7 | 0;
                    if (var$7 < var$5)
                        var$5 = var$5 - 1 | 0;
                    $this.$entityPosZ = var$5;
                    $var4 = $var4.$worldObj;
                    $ptr = 2;
                    continue main;
                }
                $var4 = $var2.$points.data[$var3];
                var$5 = $var4.$xCoord1;
                $this.$entityPosX = var$5;
                var$8 = $var4.$yCoord1 + 1 | 0;
                $this.$entityPosY = var$8;
                var$6 = $var4.$zCoord1;
                $this.$entityPosZ = var$6;
                $var4 = $this.$theEntity1;
                var$7 = var$5;
                var$9 = $var4.$posY;
                var$10 = var$6;
                var$7 = $var4.$posX - var$7;
                var$9 = var$9 - var$9;
                var$10 = $var4.$posZ - var$10;
                if (var$7 * var$7 + var$9 * var$9 + var$10 * var$10 <= 2.25)
                    break;
                $var3 = $var3 + 1 | 0;
            }
            $var4 = $var4.$worldObj;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($var4, var$5, var$8, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        $var4 = var$5 != nms_Block_doorWood.$blockID ? null : nms_Block_blocksList.data[var$5];
        $this.$targetDoor = $var4;
        if ($var4 !== null)
            return 1;
        while (true) {
            $var3 = $var3 + 1 | 0;
            var$5 = $var2.$currentPathIndex + 2 | 0;
            var$6 = $var2.$pathLength;
            if (var$5 < var$6)
                var$6 = var$5;
            if ($var3 >= var$6) {
                $var4 = $this.$theEntity1;
                var$7 = $var4.$posX;
                var$8 = var$7 | 0;
                if (var$7 < var$8)
                    var$8 = var$8 - 1 | 0;
                $this.$entityPosX = var$8;
                var$7 = $var4.$posY + 1.0;
                $var3 = var$7 | 0;
                if (var$7 < $var3)
                    $var3 = $var3 - 1 | 0;
                $this.$entityPosY = $var3;
                var$7 = $var4.$posZ;
                var$5 = var$7 | 0;
                if (var$7 < var$5)
                    var$5 = var$5 - 1 | 0;
                $this.$entityPosZ = var$5;
                $var4 = $var4.$worldObj;
                $ptr = 2;
                continue main;
            }
            $var4 = $var2.$points.data[$var3];
            var$5 = $var4.$xCoord1;
            $this.$entityPosX = var$5;
            var$8 = $var4.$yCoord1 + 1 | 0;
            $this.$entityPosY = var$8;
            var$6 = $var4.$zCoord1;
            $this.$entityPosZ = var$6;
            $var4 = $this.$theEntity1;
            var$7 = var$5;
            var$9 = $var4.$posY;
            var$10 = var$6;
            var$7 = $var4.$posX - var$7;
            var$9 = var$9 - var$9;
            var$10 = $var4.$posZ - var$10;
            if (var$7 * var$7 + var$9 * var$9 + var$10 * var$10 > 2.25)
                continue;
            else
                break;
        }
        $var4 = $var4.$worldObj;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($var4, var$8, $var3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        $var4 = var$5 != nms_Block_doorWood.$blockID ? null : nms_Block_blocksList.data[var$5];
        $this.$targetDoor = $var4;
        return $var4 === null ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, $var1, $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityAIDoorInteract_startExecuting = $this => {
    let var$1, var$2;
    $this.$hasStoppedDoorInteraction = 0;
    var$1 = $this.$entityPosX + 0.5;
    var$2 = $this.$theEntity1;
    $this.$entityPositionX = var$1 - var$2.$posX;
    $this.$entityPositionZ = $this.$entityPosZ + 0.5 - var$2.$posZ;
},
nms_EntityAIDoorInteract_updateTask = $this => {
    let var$1, var$2, $var1, $var2;
    var$1 = $this.$entityPosX + 0.5;
    var$2 = $this.$theEntity1;
    $var1 = var$1 - var$2.$posX;
    $var2 = $this.$entityPosZ + 0.5 - var$2.$posZ;
    if ($this.$entityPositionX * $var1 + $this.$entityPositionZ * $var2 < 0.0)
        $this.$hasStoppedDoorInteraction = 1;
};
function nms_EntityAIBreakDoor() {
    let a = this; nms_EntityAIDoorInteract.call(a);
    a.$breakingTime = 0;
    a.$field_75358_j = 0;
}
let nms_EntityAIBreakDoor_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAIDoorInteract_shouldExecute($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!var$1)
            var$1 = 0;
        else {
            a: {
                var$2 = ($this.$theEntity1.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                var$3 = $rt_s(1417);
                var$4 = $rt_s(1417);
                if (var$3 !== var$4) {
                    var$5 = var$3.$nativeString.length;
                    var$6 = var$4.$nativeString.length;
                    if (var$5 < var$6)
                        var$6 = var$5;
                    var$5 = 0;
                    b: {
                        while (true) {
                            if (var$5 >= var$6) {
                                var$3.$nativeString.length;
                                var$4.$nativeString.length;
                                break a;
                            }
                            if (var$5 < 0)
                                break b;
                            if (var$5 >= var$3.$nativeString.length)
                                break b;
                            var$7 = var$3.$nativeString.charCodeAt(var$5);
                            if (var$5 < 0)
                                break;
                            if (var$5 >= var$4.$nativeString.length)
                                break;
                            if (var$7 - var$4.$nativeString.charCodeAt(var$5) | 0)
                                break a;
                            var$5 = var$5 + 1 | 0;
                        }
                        var$4 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$4);
                        $rt_throw(var$4);
                    }
                    var$4 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$4);
                    $rt_throw(var$4);
                }
            }
            var$4 = $rt_s(1417);
            c: {
                d: {
                    e: while (true) {
                        if (var$2 === null) {
                            var$2 = null;
                            break c;
                        }
                        f: {
                            var$3 = var$2.$key0;
                            if (var$4 === var$3)
                                var$1 = 0;
                            else {
                                var$5 = var$4.$nativeString.length;
                                var$6 = var$3.$nativeString.length;
                                if (var$5 < var$6)
                                    var$6 = var$5;
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= var$6) {
                                        var$1 = var$4.$nativeString.length - var$3.$nativeString.length | 0;
                                        break f;
                                    }
                                    if (var$5 < 0)
                                        break d;
                                    if (var$5 >= var$4.$nativeString.length)
                                        break d;
                                    var$7 = var$4.$nativeString.charCodeAt(var$5);
                                    if (var$5 < 0)
                                        break e;
                                    if (var$5 >= var$3.$nativeString.length)
                                        break e;
                                    var$1 = var$7 - var$3.$nativeString.charCodeAt(var$5) | 0;
                                    if (var$1)
                                        break;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        if (!var$1)
                            break c;
                        var$2 = var$1 >= 0 ? var$2.$right : var$2.$left;
                    }
                    var$4 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$4);
                    $rt_throw(var$4);
                }
                var$4 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$4);
                $rt_throw(var$4);
            }
            var$4 = var$2 === null ? null : var$2.$value2;
            if (var$4 === null ? 0 : var$4.$valueBoolean) {
                var$4 = $this.$targetDoor;
                var$2 = $this.$theEntity1.$worldObj;
                var$1 = $this.$entityPosX;
                var$5 = $this.$entityPosY;
                var$7 = $this.$entityPosZ;
                $ptr = 2;
                continue main;
            }
            var$1 = 0;
        }
        return var$1;
    case 2:
        $tmp = nms_BlockDoor_getFullMetadata(var$4, var$2, var$1, var$5, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        return (!(var$1 & 4) ? 0 : 1) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityAIBreakDoor_startExecuting = $this => {
    nms_EntityAIDoorInteract_startExecuting($this);
    $this.$breakingTime = 0;
},
nms_EntityAIBreakDoor_continueExecuting = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity1;
        var$2 = $this.$entityPosX;
        $var1 = var$2;
        var$4 = $this.$entityPosY;
        var$5 = var$4;
        var$6 = $this.$entityPosZ;
        var$7 = var$6;
        $var1 = var$1.$posX - $var1;
        var$8 = var$1.$posY - var$5;
        var$7 = var$1.$posZ - var$7;
        $var1 = $var1 * $var1 + var$8 * var$8 + var$7 * var$7;
        if ($this.$breakingTime > 240)
            return 0;
        var$9 = $this.$targetDoor;
        var$1 = var$1.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockDoor_getFullMetadata(var$9, var$1, var$2, var$4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        var$2 = !(var$2 & 4) ? 0 : 1;
        return !var$2 && $var1 < 4.0 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityAIBreakDoor_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity1;
        var$2 = var$1.$worldObj;
        var$3 = var$1.$entityId;
        var$4 = $this.$entityPosX;
        var$5 = $this.$entityPosY;
        var$6 = $this.$entityPosZ;
        var$7 = (-1);
        var$8 = 0;
        var$1 = var$2.$worldAccesses;
        var$9 = $rt_compare(var$8, var$1.$size0);
        if (var$9 >= 0)
            return;
        if (var$8 >= 0 && var$9 < 0) {
            var$1 = var$1.$array.data[var$8];
            $ptr = 1;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 1:
        nms_WorldManager_destroyBlockPartially(var$1, var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$8 + 1 | 0;
        var$1 = var$2.$worldAccesses;
        var$9 = $rt_compare(var$8, var$1.$size0);
        if (var$9 >= 0)
            return;
        if (var$8 >= 0 && var$9 < 0) {
            var$1 = var$1.$array.data[var$8];
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityAIBreakDoor_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityAIDoorInteract_updateTask($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$theEntity1;
        var$2 = var$1.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 20 | 0;
            if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        if (!var$5) {
            var$1 = var$1.$worldObj;
            $var1 = 1010;
            var$7 = $this.$entityPosX;
            var$4 = $this.$entityPosY;
            var$5 = $this.$entityPosZ;
            var$8 = 0;
            var$2 = null;
            var$9 = 0;
            var$10 = var$7;
            var$11 = var$4;
            var$12 = var$5;
            var$13 = var$1.$worldAccesses;
            var$14 = $rt_compare(var$9, var$13.$size0);
            if (var$14 < 0) {
                if (var$9 >= 0 && var$14 < 0) {
                    var$13 = var$13.$array.data[var$9];
                    var$15 = var$13.$mcServer.$serverConfigManager;
                    var$16 = 64.0;
                    var$17 = var$13.$theWorldServer.$provider.$dimensionId;
                    var$13 = new nms_Packet61DoorChange;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$13.$sfxID = $var1;
                    var$13.$posX1 = var$7;
                    var$13.$posY1 = var$4;
                    var$13.$posZ1 = var$5;
                    var$13.$auxData = var$8;
                    var$13.$disableRelativeVolume = 0;
                    $ptr = 3;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$1);
                $rt_throw(var$1);
            }
        }
        $var1 = $this.$breakingTime + 1 | 0;
        $this.$breakingTime = $var1;
        $var1 = $var1 / 240.0 * 10.0 | 0;
        if ($var1 != $this.$field_75358_j) {
            var$1 = $this.$theEntity1;
            var$2 = var$1.$worldObj;
            var$7 = var$1.$entityId;
            var$4 = $this.$entityPosX;
            var$5 = $this.$entityPosY;
            var$8 = $this.$entityPosZ;
            var$9 = 0;
            var$1 = var$2.$worldAccesses;
            var$14 = $rt_compare(var$9, var$1.$size0);
            if (var$14 < 0) {
                if (var$9 >= 0 && var$14 < 0) {
                    var$1 = var$1.$array.data[var$9];
                    $ptr = 4;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            $this.$field_75358_j = $var1;
        }
        if ($this.$breakingTime == 240) {
            var$1 = $this.$theEntity1.$worldObj;
            if (var$1.$difficultySetting == 3) {
                $var1 = $this.$entityPosX;
                var$7 = $this.$entityPosY;
                var$4 = $this.$entityPosZ;
                var$5 = 0;
                var$8 = 0;
                var$9 = 3;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_World_setBlock(var$1, $var1, var$7, var$4, var$5, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$theEntity1.$worldObj;
        var$7 = 1012;
        var$4 = $this.$entityPosX;
        var$5 = $this.$entityPosY;
        var$8 = $this.$entityPosZ;
        $var1 = 0;
        var$18 = null;
        var$14 = 0;
        var$11 = var$4;
        var$12 = var$5;
        var$19 = var$8;
        var$2 = var$1.$worldAccesses;
        var$9 = $rt_compare(var$14, var$2.$size0);
        if (var$9 < 0) {
            if (var$14 >= 0 && var$9 < 0) {
                var$2 = var$2.$array.data[var$14];
                var$13 = var$2.$mcServer.$serverConfigManager;
                var$10 = 64.0;
                var$9 = var$2.$theWorldServer.$provider.$dimensionId;
                var$15 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$15.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$15.$sfxID = var$7;
                var$15.$posX1 = var$4;
                var$15.$posY1 = var$5;
                var$15.$posZ1 = var$8;
                var$15.$auxData = $var1;
                var$15.$disableRelativeVolume = 0;
                $ptr = 5;
                continue main;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$1 = $this.$theEntity1.$worldObj;
        $var1 = 2001;
        var$7 = $this.$entityPosX;
        var$4 = $this.$entityPosY;
        var$5 = $this.$entityPosZ;
        var$8 = $this.$targetDoor.$blockID;
        var$2 = null;
        var$9 = 0;
        var$10 = var$7;
        var$11 = var$4;
        var$12 = var$5;
        var$13 = var$1.$worldAccesses;
        var$14 = $rt_compare(var$9, var$13.$size0);
        if (var$14 >= 0)
            return;
        if (var$9 >= 0 && var$14 < 0) {
            var$13 = var$13.$array.data[var$9];
            var$15 = var$13.$mcServer.$serverConfigManager;
            var$16 = 64.0;
            var$17 = var$13.$theWorldServer.$provider.$dimensionId;
            var$13 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$13.$sfxID = $var1;
            var$13.$posX1 = var$7;
            var$13.$posY1 = var$4;
            var$13.$posZ1 = var$5;
            var$13.$auxData = var$8;
            var$13.$disableRelativeVolume = 0;
            $ptr = 6;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    case 3:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$2, var$10, var$11, var$12, var$16, var$17, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$9 + 1 | 0;
        var$13 = var$1.$worldAccesses;
        var$14 = $rt_compare(var$9, var$13.$size0);
        if (var$14 < 0) {
            if (var$9 >= 0 && var$14 < 0) {
                var$13 = var$13.$array.data[var$9];
                var$15 = var$13.$mcServer.$serverConfigManager;
                var$16 = 64.0;
                var$17 = var$13.$theWorldServer.$provider.$dimensionId;
                var$13 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$13.$sfxID = $var1;
                var$13.$posX1 = var$7;
                var$13.$posY1 = var$4;
                var$13.$posZ1 = var$5;
                var$13.$auxData = var$8;
                var$13.$disableRelativeVolume = 0;
                continue main;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        $var1 = $this.$breakingTime + 1 | 0;
        $this.$breakingTime = $var1;
        $var1 = $var1 / 240.0 * 10.0 | 0;
        if ($var1 != $this.$field_75358_j) {
            var$1 = $this.$theEntity1;
            var$2 = var$1.$worldObj;
            var$7 = var$1.$entityId;
            var$4 = $this.$entityPosX;
            var$5 = $this.$entityPosY;
            var$8 = $this.$entityPosZ;
            var$9 = 0;
            var$1 = var$2.$worldAccesses;
            var$14 = $rt_compare(var$9, var$1.$size0);
            if (var$14 < 0) {
                if (var$9 >= 0 && var$14 < 0) {
                    var$1 = var$1.$array.data[var$9];
                    $ptr = 4;
                    continue main;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                $rt_throw(var$1);
            }
            $this.$field_75358_j = $var1;
        }
        if ($this.$breakingTime == 240) {
            var$1 = $this.$theEntity1.$worldObj;
            if (var$1.$difficultySetting == 3) {
                $var1 = $this.$entityPosX;
                var$7 = $this.$entityPosY;
                var$4 = $this.$entityPosZ;
                var$5 = 0;
                var$8 = 0;
                var$9 = 3;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 4:
        nms_WorldManager_destroyBlockPartially(var$1, var$7, var$4, var$5, var$8, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$9 + 1 | 0;
        var$1 = var$2.$worldAccesses;
        var$14 = $rt_compare(var$9, var$1.$size0);
        if (var$14 >= 0) {
            $this.$field_75358_j = $var1;
            if ($this.$breakingTime == 240) {
                var$1 = $this.$theEntity1.$worldObj;
                if (var$1.$difficultySetting == 3) {
                    $var1 = $this.$entityPosX;
                    var$7 = $this.$entityPosY;
                    var$4 = $this.$entityPosZ;
                    var$5 = 0;
                    var$8 = 0;
                    var$9 = 3;
                    $ptr = 2;
                    continue main;
                }
            }
            return;
        }
        if (var$9 >= 0 && var$14 < 0) {
            var$1 = var$1.$array.data[var$9];
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    case 5:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$13, var$18, var$11, var$12, var$19, var$10, var$9, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = var$14 + 1 | 0;
        var$2 = var$1.$worldAccesses;
        var$9 = $rt_compare(var$14, var$2.$size0);
        if (var$9 < 0) {
            if (var$14 >= 0 && var$9 < 0) {
                var$2 = var$2.$array.data[var$14];
                var$13 = var$2.$mcServer.$serverConfigManager;
                var$10 = 64.0;
                var$9 = var$2.$theWorldServer.$provider.$dimensionId;
                var$15 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$15.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$15.$sfxID = var$7;
                var$15.$posX1 = var$4;
                var$15.$posY1 = var$5;
                var$15.$posZ1 = var$8;
                var$15.$auxData = $var1;
                var$15.$disableRelativeVolume = 0;
                continue main;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$1 = $this.$theEntity1.$worldObj;
        $var1 = 2001;
        var$7 = $this.$entityPosX;
        var$4 = $this.$entityPosY;
        var$5 = $this.$entityPosZ;
        var$8 = $this.$targetDoor.$blockID;
        var$2 = null;
        var$9 = 0;
        var$10 = var$7;
        var$11 = var$4;
        var$12 = var$5;
        var$13 = var$1.$worldAccesses;
        var$14 = $rt_compare(var$9, var$13.$size0);
        if (var$14 >= 0)
            return;
        if (var$9 >= 0 && var$14 < 0) {
            var$13 = var$13.$array.data[var$9];
            var$15 = var$13.$mcServer.$serverConfigManager;
            var$16 = 64.0;
            var$17 = var$13.$theWorldServer.$provider.$dimensionId;
            var$13 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$13.$sfxID = $var1;
            var$13.$posX1 = var$7;
            var$13.$posY1 = var$4;
            var$13.$posZ1 = var$5;
            var$13.$auxData = var$8;
            var$13.$disableRelativeVolume = 0;
            $ptr = 6;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    case 6:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$2, var$10, var$11, var$12, var$16, var$17, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$9 + 1 | 0;
        var$13 = var$1.$worldAccesses;
        var$14 = $rt_compare(var$9, var$13.$size0);
        if (var$14 >= 0)
            return;
        if (var$9 >= 0 && var$14 < 0) {
            var$13 = var$13.$array.data[var$9];
            var$15 = var$13.$mcServer.$serverConfigManager;
            var$16 = 64.0;
            var$17 = var$13.$theWorldServer.$provider.$dimensionId;
            var$13 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$13.$sfxID = $var1;
            var$13.$posX1 = var$7;
            var$13.$posY1 = var$4;
            var$13.$posZ1 = var$5;
            var$13.$auxData = var$8;
            var$13.$disableRelativeVolume = 0;
            continue main;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
};
function nms_EntityAIAttackOnCollide() {
    let a = this; nms_EntityAIBase.call(a);
    a.$worldObj17 = null;
    a.$attacker = null;
    a.$attackTick = 0;
    a.$field_75440_e = 0.0;
    a.$longMemory = 0;
    a.$entityPathEntity = null;
    a.$classTarget = null;
    a.$field_75445_i = 0;
}
let nms_EntityAIAttackOnCollide_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$attacker.$attackTarget;
        if ($var1 === null)
            return 0;
        a: {
            if (!$var1.$isDead) {
                var$2 = $var1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[134];
                if (var$3 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$4 = var$3.$value;
                    var$5 = var$2.$elementData.data;
                    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$4) {
                            var$6 = var$2.$key;
                            if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value3 > 0.0) {
                    var$4 = 1;
                    break a;
                }
            }
            var$4 = 0;
        }
        if (!var$4)
            return 0;
        var$2 = $this.$classTarget;
        if (var$2 !== null) {
            var$6 = $var1.constructor;
            if (var$6 === null)
                var$3 = null;
            else {
                var$3 = var$6.classObject;
                if (var$3 === null) {
                    var$3 = new jl_Class;
                    var$3.$platformClass = var$6;
                    var$6.classObject = var$3;
                }
            }
            if (!otp_Platform_isAssignable(var$3.$platformClass, var$2.$platformClass))
                return 0;
        }
        var$7 = $this.$attacker.$navigator;
        var$2 = var$7.$theEntity;
        if (var$2.$onGround)
            var$4 = 1;
        else {
            if (var$7.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$4 = 0;
        }
        if (!var$4) {
            var$2 = null;
            $this.$entityPathEntity = var$2;
            return var$2 === null ? 0 : 1;
        }
        var$2 = var$7.$worldObj3;
        var$3 = var$7.$theEntity;
        var$6 = var$7.$pathSearchRange;
        if (var$6.$field_111133_g) {
            var$6.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$6);
            var$6.$field_111133_g = 0;
        }
        var$8 = var$6.$field_111139_h;
        var$4 = var$7.$canPassOpenWoodenDoors;
        var$9 = var$7.$canPassClosedWoodenDoors;
        var$10 = var$7.$avoidsWater;
        var$11 = var$7.$canSwim;
        $ptr = 3;
        continue main;
    case 1:
        $tmp = var$2.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4) {
            var$2 = var$7.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$2 = null;
            $this.$entityPathEntity = var$2;
            return var$2 === null ? 0 : 1;
        }
        var$2 = var$7.$worldObj3;
        var$3 = var$7.$theEntity;
        var$6 = var$7.$pathSearchRange;
        if (var$6.$field_111133_g) {
            var$6.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$6);
            var$6.$field_111133_g = 0;
        }
        var$8 = var$6.$field_111139_h;
        var$4 = var$7.$canPassOpenWoodenDoors;
        var$9 = var$7.$canPassClosedWoodenDoors;
        var$10 = var$7.$avoidsWater;
        var$11 = var$7.$canSwim;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = var$2.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!((var$4 ? 1 : 0) ? 1 : 0)) {
            var$2 = null;
            $this.$entityPathEntity = var$2;
            return var$2 === null ? 0 : 1;
        }
        var$2 = var$7.$worldObj3;
        var$3 = var$7.$theEntity;
        var$6 = var$7.$pathSearchRange;
        if (var$6.$field_111133_g) {
            var$6.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$6);
            var$6.$field_111133_g = 0;
        }
        var$8 = var$6.$field_111139_h;
        var$4 = var$7.$canPassOpenWoodenDoors;
        var$9 = var$7.$canPassClosedWoodenDoors;
        var$10 = var$7.$avoidsWater;
        var$11 = var$7.$canSwim;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$2, var$3, $var1, var$8, var$4, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $this.$entityPathEntity = var$2;
        return var$2 === null ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityAIAttackOnCollide_continueExecuting = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    $var1 = $this.$attacker.$attackTarget;
    if ($var1 === null)
        var$2 = 0;
    else {
        a: {
            if (!$var1.$isDead) {
                var$3 = $var1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[134];
                if (var$4 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$5 = var$4.$value;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            var$7 = var$3.$key;
                            if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                if ((var$3 === null ? null : var$3.$value0).$watchedObject.$value3 > 0.0) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
        if (!var$2)
            var$2 = 0;
        else if (!$this.$longMemory) {
            var$3 = $this.$attacker.$navigator.$currentPath;
            var$2 = (var$3 !== null && !(var$3.$currentPathIndex < var$3.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
        } else {
            var$3 = $this.$attacker;
            var$8 = $var1.$posX;
            var$5 = var$8 | 0;
            if (var$8 < var$5)
                var$5 = var$5 - 1 | 0;
            var$8 = $var1.$posY;
            var$9 = var$8 | 0;
            if (var$8 < var$9)
                var$9 = var$9 - 1 | 0;
            var$8 = $var1.$posZ;
            var$10 = var$8 | 0;
            if (var$8 < var$10)
                var$10 = var$10 - 1 | 0;
            var$11 = var$3.$maximumHomeDistance;
            if (var$11 === (-1.0))
                var$2 = 1;
            else {
                var$3 = var$3.$homePosition;
                var$12 = var$3.$posX0 - var$5 | 0;
                var$13 = var$3.$posY0 - var$9 | 0;
                var$14 = var$3.$posZ0 - var$10 | 0;
                var$2 = var$12 * var$12 + var$13 * var$13 + var$14 * var$14 >= var$11 * var$11 ? 0 : 1;
            }
        }
    }
    return var$2;
},
nms_EntityAIAttackOnCollide_startExecuting = $this => {
    let var$1, var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$attacker.$navigator;
        var$2 = $this.$entityPathEntity;
        var$3 = $this.$field_75440_e;
        $ptr = 1;
    case 1:
        nms_PathNavigate_setPath(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_75445_i = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $ptr);
},
nms_EntityAIAttackOnCollide_resetTask = $this => {
    $this.$attacker.$navigator.$currentPath = null;
},
nms_EntityAIAttackOnCollide_updateTask = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var2 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$1 = $this.$attacker;
            $var1 = var$1.$attackTarget;
            nms_EntityLookHelper_setLookPositionWithEntity(var$1.$lookHelper, $var1, 30.0, 30.0);
            if (!$this.$longMemory) {
                var$3 = $this.$attacker.$senses;
                var$1 = var$3.$seenEntities;
                var$4 = 0;
                var$5 = var$1.$modCount;
                var$6 = var$1.$size();
                b: {
                    while (true) {
                        if (!(var$4 >= var$6 ? 0 : 1)) {
                            var$7 = 0;
                            break b;
                        }
                        if (var$5 < var$1.$modCount)
                            break;
                        var$8 = var$4 + 1 | 0;
                        var$9 = var$1.$get(var$4);
                        if (var$9 === $var1 ? 1 : var$9 !== null ? var$9.$equals($var1) : $var1 !== null ? 0 : 1) {
                            var$7 = 1;
                            break b;
                        }
                        var$4 = var$8;
                    }
                    var$1 = new ju_ConcurrentModificationException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$1);
                    $rt_throw(var$1);
                }
                if (var$7)
                    var$7 = 1;
                else {
                    var$1 = var$3.$unseenEntities;
                    var$4 = 0;
                    var$5 = var$1.$modCount;
                    var$6 = var$1.$size();
                    c: {
                        while (true) {
                            if (!(var$4 >= var$6 ? 0 : 1)) {
                                var$7 = 0;
                                break c;
                            }
                            if (var$5 < var$1.$modCount)
                                break;
                            var$8 = var$4 + 1 | 0;
                            var$9 = var$1.$get(var$4);
                            if (var$9 === $var1 ? 1 : var$9 !== null ? var$9.$equals($var1) : $var1 !== null ? 0 : 1) {
                                var$7 = 1;
                                break c;
                            }
                            var$4 = var$8;
                        }
                        var$1 = new ju_ConcurrentModificationException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$1);
                        $rt_throw(var$1);
                    }
                    if (!var$7) {
                        var$1 = var$3.$entityObj1;
                        $ptr = 7;
                        continue main;
                    }
                    var$7 = 0;
                }
                if (!var$7)
                    break a;
            }
            var$7 = $this.$field_75445_i - 1 | 0;
            $this.$field_75445_i = var$7;
            if (var$7 <= 0) {
                var$1 = $this.$attacker;
                var$3 = var$1.$rand;
                var$10 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$10;
                var$6 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$4 = var$6 % 7 | 0;
                    if (((var$6 - var$4 | 0) + 6 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$10;
                    var$6 = Long_lo(Long_shru(var$10, 17));
                }
                $this.$field_75445_i = 4 + var$4 | 0;
                var$11 = var$1.$navigator;
                var$12 = $this.$field_75440_e;
                var$1 = var$11.$theEntity;
                if (var$1.$onGround)
                    var$7 = 1;
                else {
                    if (var$11.$canSwim) {
                        $ptr = 3;
                        continue main;
                    }
                    var$7 = 0;
                }
                if (var$7) {
                    var$1 = var$11.$worldObj3;
                    var$3 = var$11.$theEntity;
                    var$9 = var$11.$pathSearchRange;
                    if (var$9.$field_111133_g) {
                        var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                        var$9.$field_111133_g = 0;
                    }
                    var$13 = var$9.$field_111139_h;
                    var$7 = var$11.$canPassOpenWoodenDoors;
                    var$8 = var$11.$canPassClosedWoodenDoors;
                    var$5 = var$11.$avoidsWater;
                    var$6 = var$11.$canSwim;
                    $ptr = 5;
                    continue main;
                }
                var$1 = null;
                if (var$1 !== null) {
                    $ptr = 6;
                    continue main;
                }
            }
        }
        var$7 = $this.$attackTick - 1 | 0;
        var$8 = 0;
        if (var$7 > var$8)
            var$8 = var$7;
        $this.$attackTick = var$8;
        var$1 = $this.$attacker;
        var$13 = var$1.$width;
        $var2 = var$13 * 2.0 * var$13 * 2.0 + $var1.$width;
        var$15 = $var1.$posX;
        var$16 = $var1.$boundingBox0.$minY0;
        var$12 = $var1.$posZ;
        var$17 = var$1.$posX - var$15;
        var$15 = var$1.$posY - var$16;
        var$12 = var$1.$posZ - var$12;
        if (var$17 * var$17 + var$15 * var$15 + var$12 * var$12 <= $var2 && var$8 <= 0) {
            $this.$attackTick = 20;
            if (var$1.$equipment.data[0] !== null) {
                $ptr = 2;
                continue main;
            }
            var$1 = $this.$attacker;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        var$1.$attackEntityAsMob($var1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_EntityLivingBase_swingItem(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$attacker;
        $ptr = 1;
        continue main;
    case 3:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7) {
            var$1 = var$11.$theEntity;
            $ptr = 4;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$1 = var$11.$worldObj3;
            var$3 = var$11.$theEntity;
            var$9 = var$11.$pathSearchRange;
            if (var$9.$field_111133_g) {
                var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                var$9.$field_111133_g = 0;
            }
            var$13 = var$9.$field_111139_h;
            var$7 = var$11.$canPassOpenWoodenDoors;
            var$8 = var$11.$canPassClosedWoodenDoors;
            var$5 = var$11.$avoidsWater;
            var$6 = var$11.$canSwim;
            $ptr = 5;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 6;
            continue main;
        }
        var$7 = $this.$attackTick - 1 | 0;
        var$8 = 0;
        if (var$7 > var$8)
            var$8 = var$7;
        $this.$attackTick = var$8;
        var$1 = $this.$attacker;
        var$13 = var$1.$width;
        $var2 = var$13 * 2.0 * var$13 * 2.0 + $var1.$width;
        var$15 = $var1.$posX;
        var$16 = $var1.$boundingBox0.$minY0;
        var$12 = $var1.$posZ;
        var$17 = var$1.$posX - var$15;
        var$15 = var$1.$posY - var$16;
        var$12 = var$1.$posZ - var$12;
        if (var$17 * var$17 + var$15 * var$15 + var$12 * var$12 <= $var2 && var$8 <= 0) {
            $this.$attackTick = 20;
            if (var$1.$equipment.data[0] !== null) {
                $ptr = 2;
                continue main;
            }
            var$1 = $this.$attacker;
            $ptr = 1;
            continue main;
        }
        return;
    case 4:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if ((var$7 ? 1 : 0) ? 1 : 0) {
            var$1 = var$11.$worldObj3;
            var$3 = var$11.$theEntity;
            var$9 = var$11.$pathSearchRange;
            if (var$9.$field_111133_g) {
                var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                var$9.$field_111133_g = 0;
            }
            var$13 = var$9.$field_111139_h;
            var$7 = var$11.$canPassOpenWoodenDoors;
            var$8 = var$11.$canPassClosedWoodenDoors;
            var$5 = var$11.$avoidsWater;
            var$6 = var$11.$canSwim;
            $ptr = 5;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 6;
            continue main;
        }
        var$7 = $this.$attackTick - 1 | 0;
        var$8 = 0;
        if (var$7 > var$8)
            var$8 = var$7;
        $this.$attackTick = var$8;
        var$1 = $this.$attacker;
        var$13 = var$1.$width;
        $var2 = var$13 * 2.0 * var$13 * 2.0 + $var1.$width;
        var$15 = $var1.$posX;
        var$16 = $var1.$boundingBox0.$minY0;
        var$12 = $var1.$posZ;
        var$17 = var$1.$posX - var$15;
        var$15 = var$1.$posY - var$16;
        var$12 = var$1.$posZ - var$12;
        if (var$17 * var$17 + var$15 * var$15 + var$12 * var$12 <= $var2 && var$8 <= 0) {
            $this.$attackTick = 20;
            if (var$1.$equipment.data[0] !== null) {
                $ptr = 2;
                continue main;
            }
            var$1 = $this.$attacker;
            $ptr = 1;
            continue main;
        }
        return;
    case 5:
        $tmp = nms_World_getPathEntityToEntity(var$1, var$3, $var1, var$13, var$7, var$8, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 !== null) {
            $ptr = 6;
            continue main;
        }
        var$7 = $this.$attackTick - 1 | 0;
        var$8 = 0;
        if (var$7 > var$8)
            var$8 = var$7;
        $this.$attackTick = var$8;
        var$1 = $this.$attacker;
        var$13 = var$1.$width;
        $var2 = var$13 * 2.0 * var$13 * 2.0 + $var1.$width;
        var$15 = $var1.$posX;
        var$16 = $var1.$boundingBox0.$minY0;
        var$12 = $var1.$posZ;
        var$17 = var$1.$posX - var$15;
        var$15 = var$1.$posY - var$16;
        var$12 = var$1.$posZ - var$12;
        if (var$17 * var$17 + var$15 * var$15 + var$12 * var$12 <= $var2 && var$8 <= 0) {
            $this.$attackTick = 20;
            if (var$1.$equipment.data[0] !== null) {
                $ptr = 2;
                continue main;
            }
            var$1 = $this.$attacker;
            $ptr = 1;
            continue main;
        }
        return;
    case 6:
        nms_PathNavigate_setPath(var$11, var$1, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$attackTick - 1 | 0;
        var$8 = 0;
        if (var$7 > var$8)
            var$8 = var$7;
        $this.$attackTick = var$8;
        var$1 = $this.$attacker;
        var$13 = var$1.$width;
        $var2 = var$13 * 2.0 * var$13 * 2.0 + $var1.$width;
        var$15 = $var1.$posX;
        var$16 = $var1.$boundingBox0.$minY0;
        var$12 = $var1.$posZ;
        var$17 = var$1.$posX - var$15;
        var$15 = var$1.$posY - var$16;
        var$12 = var$1.$posZ - var$12;
        if (var$17 * var$17 + var$15 * var$15 + var$12 * var$12 <= $var2 && var$8 <= 0) {
            $this.$attackTick = 20;
            if (var$1.$equipment.data[0] !== null) {
                $ptr = 2;
                continue main;
            }
            var$1 = $this.$attacker;
            $ptr = 1;
            continue main;
        }
        return;
    case 7:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$1, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7) {
            var$1 = var$3.$unseenEntities;
            ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
            var$18 = var$1.$array.data;
            var$5 = var$1.$size0;
            var$1.$size0 = var$5 + 1 | 0;
            var$18[var$5] = $var1;
            var$1.$modCount = var$1.$modCount + 1 | 0;
        } else {
            var$1 = var$3.$seenEntities;
            ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
            var$18 = var$1.$array.data;
            var$5 = var$1.$size0;
            var$1.$size0 = var$5 + 1 | 0;
            var$18[var$5] = $var1;
            var$1.$modCount = var$1.$modCount + 1 | 0;
        }
        if (var$7) {
            var$7 = $this.$field_75445_i - 1 | 0;
            $this.$field_75445_i = var$7;
            if (var$7 <= 0) {
                var$1 = $this.$attacker;
                var$3 = var$1.$rand;
                var$10 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$3.$seed = var$10;
                var$6 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$4 = var$6 % 7 | 0;
                    if (((var$6 - var$4 | 0) + 6 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$10;
                    var$6 = Long_lo(Long_shru(var$10, 17));
                }
                $this.$field_75445_i = 4 + var$4 | 0;
                var$11 = var$1.$navigator;
                var$12 = $this.$field_75440_e;
                var$1 = var$11.$theEntity;
                if (var$1.$onGround)
                    var$7 = 1;
                else {
                    if (var$11.$canSwim) {
                        $ptr = 3;
                        continue main;
                    }
                    var$7 = 0;
                }
                if (var$7) {
                    var$1 = var$11.$worldObj3;
                    var$3 = var$11.$theEntity;
                    var$9 = var$11.$pathSearchRange;
                    if (var$9.$field_111133_g) {
                        var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                        var$9.$field_111133_g = 0;
                    }
                    var$13 = var$9.$field_111139_h;
                    var$7 = var$11.$canPassOpenWoodenDoors;
                    var$8 = var$11.$canPassClosedWoodenDoors;
                    var$5 = var$11.$avoidsWater;
                    var$6 = var$11.$canSwim;
                    $ptr = 5;
                    continue main;
                }
                var$1 = null;
                if (var$1 !== null) {
                    $ptr = 6;
                    continue main;
                }
            }
        }
        var$7 = $this.$attackTick - 1 | 0;
        var$8 = 0;
        if (var$7 > var$8)
            var$8 = var$7;
        $this.$attackTick = var$8;
        var$1 = $this.$attacker;
        var$13 = var$1.$width;
        $var2 = var$13 * 2.0 * var$13 * 2.0 + $var1.$width;
        var$15 = $var1.$posX;
        var$16 = $var1.$boundingBox0.$minY0;
        var$12 = $var1.$posZ;
        var$17 = var$1.$posX - var$15;
        var$15 = var$1.$posY - var$16;
        var$12 = var$1.$posZ - var$12;
        if (var$17 * var$17 + var$15 * var$15 + var$12 * var$12 <= $var2 && var$8 <= 0) {
            $this.$attackTick = 20;
            if (var$1.$equipment.data[0] !== null) {
                $ptr = 2;
                continue main;
            }
            var$1 = $this.$attacker;
            $ptr = 1;
            continue main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2, var$15, var$16, var$17, var$18, $ptr);
},
nms_IMerchant = $rt_classWithoutFields(0),
nms_INpc = $rt_classWithoutFields(0);
function nms_EntityVillager() {
    let a = this; nms_EntityAgeable.call(a);
    a.$randomTickDivider = 0;
    a.$isMating = 0;
    a.$isPlaying = 0;
    a.$villageObj = null;
    a.$buyingPlayer = null;
    a.$buyingList = null;
    a.$timeUntilReset = 0;
    a.$needsInitilization = 0;
    a.$wealth = 0;
    a.$lastBuyingPlayer = null;
    a.$field_82190_bM = 0;
    a.$field_82191_bN = 0.0;
}
let nms_EntityVillager_villagerStockList = null,
nms_EntityVillager_blacksmithSellingList = null,
nms_EntityVillager_$callClinit = () => {
    nms_EntityVillager_$callClinit = $rt_eraseClinit(nms_EntityVillager);
    nms_EntityVillager__clinit_();
},
nms_EntityVillager__init_ = ($this, $par1World, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityVillager_$callClinit();
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$field_98056_d = (-1.0);
        $par1World = $this.$dataWatcher;
        if ($par2 >= (-128) && $par2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[$par2 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = $par2;
        }
        var$4 = $par1World.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$6 = var$5.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$6) {
                    var$8 = var$4.$key;
                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$8 = var$4 === null ? null : var$4.$value0;
        var$4 = var$8.$watchedObject;
        if (!(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$3.$value ? 1 : 0)) {
            var$8.$watchedObject = var$3;
            var$8.$watched = 1;
            $par1World.$objectChanged = 1;
        }
        $par2 = $this.$field_98056_d <= 0.0 ? 0 : 1;
        $this.$field_98056_d = 0.6000000238418579;
        $this.$field_98057_e = 1.7999999523162842;
        if ($par2) {
            var$4 = $this.$navigator;
            var$4.$canPassClosedWoodenDoors = 1;
            var$4.$avoidsWater = 1;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAISwimming;
            var$3.$theEntity3 = $this;
            var$3.$mutexBits = 4;
            var$4.$canSwim = 1;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 0;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            var$3 = $this.$tasks0;
            var$4 = new nms_EntityAIAvoidEntity;
            var$8 = new nms_EntityAIAvoidEntitySelector;
            var$8.$entityAvoiderAI = var$4;
            var$4.$field_98218_a = var$8;
            var$4.$theEntity4 = $this;
            var$4.$targetEntityClass = $rt_cls(nms_EntityZombie);
            var$4.$distanceFromEntity = 8.0;
            var$4.$farSpeed = 0.6;
            var$4.$nearSpeed = 0.6;
            var$4.$entityPathNavigate0 = $this.$navigator;
            var$4.$mutexBits = 1;
            var$8 = var$3.$taskEntries;
            $par1World = new nms_EntityAITaskEntry;
            $par1World.$tasks = var$3;
            $par1World.$priority = 1;
            $par1World.$action = var$4;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = $par1World;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAITradePlayer;
            var$3.$villager = $this;
            var$3.$mutexBits = 5;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 1;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAILookAtTradePlayer;
            var$3.$theWatcher = $this;
            var$3.$watchedClass = $rt_cls(nms_EntityPlayer);
            var$3.$maxDistanceForPlayer = 8.0;
            var$3.$field_75331_e = 0.019999999552965164;
            var$3.$mutexBits = 2;
            var$3.$theMerchant1 = $this;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 1;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIMoveIndoors;
            var$3.$insidePosX = (-1);
            var$3.$insidePosZ = (-1);
            var$3.$entityObj0 = $this;
            var$3.$mutexBits = 1;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 2;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            $par2 = var$8.$size0;
            var$8.$size0 = $par2 + 1 | 0;
            var$7[$par2] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIRestrictOpenDoor;
            var$3.$entityObj = $this;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 3;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIOpenDoor;
            var$3.$theEntity1 = $this;
            var$3.$theEntity1 = $this;
            var$3.$field_75361_i = 1;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 4;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIMoveTowardsRestriction;
            var$3.$theEntity0 = $this;
            var$3.$movementSpeed = 0.6;
            var$3.$mutexBits = 1;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 5;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIVillagerMate;
            var$3.$villagerObj = $this;
            var$3.$worldObj14 = $this.$worldObj;
            var$3.$mutexBits = 3;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 6;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIFollowGolem;
            var$3.$theVillager = $this;
            var$3.$mutexBits = 3;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 7;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIPlay;
            var$3.$villagerObj0 = $this;
            var$3.$field_75261_c = 0.32;
            var$3.$mutexBits = 1;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 8;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIWatchClosest2;
            var$3.$theWatcher = $this;
            var$3.$watchedClass = $rt_cls(nms_EntityPlayer);
            var$3.$maxDistanceForPlayer = 3.0;
            var$3.$field_75331_e = 1.0;
            var$3.$mutexBits = 2;
            var$3.$mutexBits = 3;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 9;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIWatchClosest2;
            var$3.$theWatcher = $this;
            var$3.$watchedClass = $rt_cls(nms_EntityVillager);
            var$3.$maxDistanceForPlayer = 5.0;
            var$3.$field_75331_e = 0.019999999552965164;
            var$3.$mutexBits = 2;
            var$3.$mutexBits = 3;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 9;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIWander;
            var$3.$entity = $this;
            var$3.$speed = 0.6;
            var$3.$mutexBits = 1;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 9;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            $par1World = $this.$tasks0;
            var$3 = new nms_EntityAIWatchClosest;
            var$3.$theWatcher = $this;
            var$3.$watchedClass = $rt_cls(nms_EntityLiving);
            var$3.$maxDistanceForPlayer = 8.0;
            var$3.$field_75331_e = 0.019999999552965164;
            var$3.$mutexBits = 2;
            var$8 = $par1World.$taskEntries;
            var$4 = new nms_EntityAITaskEntry;
            var$4.$tasks = $par1World;
            var$4.$priority = 10;
            var$4.$action = var$3;
            ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
            var$7 = var$8.$array.data;
            var$9 = var$8.$size0;
            var$8.$size0 = var$9 + 1 | 0;
            var$7[var$9] = var$4;
            var$8.$modCount = var$8.$modCount + 1 | 0;
            return;
        }
        var$10 = 0.6000000238418579;
        var$11 = 1.7999999523162842;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$navigator;
        var$4.$canPassClosedWoodenDoors = 1;
        var$4.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAISwimming;
        var$3.$theEntity3 = $this;
        var$3.$mutexBits = 4;
        var$4.$canSwim = 1;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 0;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        var$3 = $this.$tasks0;
        var$4 = new nms_EntityAIAvoidEntity;
        var$8 = new nms_EntityAIAvoidEntitySelector;
        var$8.$entityAvoiderAI = var$4;
        var$4.$field_98218_a = var$8;
        var$4.$theEntity4 = $this;
        var$4.$targetEntityClass = $rt_cls(nms_EntityZombie);
        var$4.$distanceFromEntity = 8.0;
        var$4.$farSpeed = 0.6;
        var$4.$nearSpeed = 0.6;
        var$4.$entityPathNavigate0 = $this.$navigator;
        var$4.$mutexBits = 1;
        var$8 = var$3.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$3;
        $par1World.$priority = 1;
        $par1World.$action = var$4;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = $par1World;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAITradePlayer;
        var$3.$villager = $this;
        var$3.$mutexBits = 5;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAILookAtTradePlayer;
        var$3.$theWatcher = $this;
        var$3.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$3.$maxDistanceForPlayer = 8.0;
        var$3.$field_75331_e = 0.019999999552965164;
        var$3.$mutexBits = 2;
        var$3.$theMerchant1 = $this;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIMoveIndoors;
        var$3.$insidePosX = (-1);
        var$3.$insidePosZ = (-1);
        var$3.$entityObj0 = $this;
        var$3.$mutexBits = 1;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 2;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        $par2 = var$8.$size0;
        var$8.$size0 = $par2 + 1 | 0;
        var$7[$par2] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIRestrictOpenDoor;
        var$3.$entityObj = $this;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 3;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIOpenDoor;
        var$3.$theEntity1 = $this;
        var$3.$theEntity1 = $this;
        var$3.$field_75361_i = 1;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 4;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIMoveTowardsRestriction;
        var$3.$theEntity0 = $this;
        var$3.$movementSpeed = 0.6;
        var$3.$mutexBits = 1;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 5;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIVillagerMate;
        var$3.$villagerObj = $this;
        var$3.$worldObj14 = $this.$worldObj;
        var$3.$mutexBits = 3;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 6;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIFollowGolem;
        var$3.$theVillager = $this;
        var$3.$mutexBits = 3;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 7;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIPlay;
        var$3.$villagerObj0 = $this;
        var$3.$field_75261_c = 0.32;
        var$3.$mutexBits = 1;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 8;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIWatchClosest2;
        var$3.$theWatcher = $this;
        var$3.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$3.$maxDistanceForPlayer = 3.0;
        var$3.$field_75331_e = 1.0;
        var$3.$mutexBits = 2;
        var$3.$mutexBits = 3;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 9;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIWatchClosest2;
        var$3.$theWatcher = $this;
        var$3.$watchedClass = $rt_cls(nms_EntityVillager);
        var$3.$maxDistanceForPlayer = 5.0;
        var$3.$field_75331_e = 0.019999999552965164;
        var$3.$mutexBits = 2;
        var$3.$mutexBits = 3;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 9;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIWander;
        var$3.$entity = $this;
        var$3.$speed = 0.6;
        var$3.$mutexBits = 1;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 9;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$3 = new nms_EntityAIWatchClosest;
        var$3.$theWatcher = $this;
        var$3.$watchedClass = $rt_cls(nms_EntityLiving);
        var$3.$maxDistanceForPlayer = 8.0;
        var$3.$field_75331_e = 0.019999999552965164;
        var$3.$mutexBits = 2;
        var$8 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 10;
        var$4.$action = var$3;
        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
        var$7 = var$8.$array.data;
        var$9 = var$8.$size0;
        var$8.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$8.$modCount = var$8.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityVillager__init_0 = (var_0, var_1) => {
    let var_2 = new nms_EntityVillager();
    nms_EntityVillager__init_(var_2, var_0, var_1);
    return var_2;
},
nms_EntityVillager_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.5 !== var$1.$baseValue) {
        var$1.$baseValue = 0.5;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityVillager_isAIEnabled = $this => {
    return 1;
},
nms_EntityVillager_updateAITick = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $var2, var$8, $var3$index, var$10, $var1, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $var3$index_0, var$21, var$22, var$23, var$24, var$25, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var3$index_0 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var1 = $thread.pop();var$10 = $thread.pop();$var3$index = $thread.pop();var$8 = $thread.pop();$var2 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4
        = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$1 = $this.$randomTickDivider - 1 | 0;
            $this.$randomTickDivider = var$1;
            if (var$1 <= 0) {
                var$2 = $this.$worldObj.$villageCollectionObj;
                var$3 = $this.$posX;
                var$4 = var$3 | 0;
                if (var$3 < var$4)
                    var$4 = var$4 - 1 | 0;
                var$3 = $this.$posY;
                var$5 = var$3 | 0;
                if (var$3 < var$5)
                    var$5 = var$5 - 1 | 0;
                var$3 = $this.$posZ;
                var$6 = var$3 | 0;
                if (var$3 < var$6)
                    var$6 = var$6 - 1 | 0;
                if (var$2.$villagerPositionsList.$size0 <= 64 && !nms_VillageCollection_isVillagerPositionPresent(var$2, var$4, var$5, var$6)) {
                    var$2 = var$2.$villagerPositionsList;
                    $var2 = new nms_ChunkCoordinates;
                    $var2.$posX0 = var$4;
                    $var2.$posY0 = var$5;
                    $var2.$posZ0 = var$6;
                    ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
                    var$8 = var$2.$array.data;
                    $var3$index = var$2.$size0;
                    var$2.$size0 = $var3$index + 1 | 0;
                    var$8[$var3$index] = $var2;
                    var$2.$modCount = var$2.$modCount + 1 | 0;
                }
                var$2 = $this.$rand;
                var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$10;
                var$5 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$4 = var$5 % 50 | 0;
                    if (((var$5 - var$4 | 0) + 49 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2.$seed = var$10;
                    var$5 = Long_lo(Long_shru(var$10, 17));
                }
                $this.$randomTickDivider = 70 + var$4 | 0;
                var$2 = $this.$worldObj.$villageCollectionObj;
                var$3 = $this.$posX;
                var$5 = var$3 | 0;
                if (var$3 < var$5)
                    var$5 = var$5 - 1 | 0;
                var$3 = $this.$posY;
                var$6 = var$3 | 0;
                if (var$3 < var$6)
                    var$6 = var$6 - 1 | 0;
                var$3 = $this.$posZ;
                $var3$index = var$3 | 0;
                if (var$3 < $var3$index)
                    $var3$index = $var3$index - 1 | 0;
                var$2 = nms_VillageCollection_findNearestVillage(var$2, var$5, var$6, $var3$index, 32);
                $this.$villageObj = var$2;
                if (var$2 === null)
                    $this.$maximumHomeDistance = (-1.0);
                else {
                    $var1 = var$2.$center;
                    var$1 = $var1.$posX0;
                    $var3$index = $var1.$posY0;
                    var$6 = $var1.$posZ0;
                    var$5 = var$2.$villageRadius * 0.6000000238418579 | 0;
                    $var2 = $this.$homePosition;
                    $var2.$posX0 = var$1;
                    $var2.$posY0 = $var3$index;
                    $var2.$posZ0 = var$6;
                    $this.$maximumHomeDistance = var$5;
                    if ($this.$field_82190_bM) {
                        $this.$field_82190_bM = 0;
                        $var2 = var$2.$playerReputation;
                        if ($var2.$cachedKeySet === null) {
                            $var1 = new ju_AbstractMap$KeySet;
                            $var1.$this$03 = $var2;
                            $var2.$cachedKeySet = $var1;
                        }
                        $var1 = $var2.$cachedKeySet.$iterator();
                        b: {
                            c: {
                                while ($var1.$hasNext()) {
                                    d: {
                                        var$12 = $var1.$next();
                                        var$13 = var$2.$playerReputation.$root;
                                        var$14 = var$12;
                                        $var2 = var$12;
                                        if (var$14 !== $var2) {
                                            var$1 = jl_Math_min(jl_String_length(var$14), jl_String_length($var2));
                                            $var3$index = 0;
                                            while (true) {
                                                if ($var3$index >= var$1) {
                                                    jl_String_length(var$14);
                                                    jl_String_length($var2);
                                                    break d;
                                                }
                                                if (jl_String_charAt(var$14, $var3$index) - jl_String_charAt($var2, $var3$index) | 0)
                                                    break;
                                                $var3$index = $var3$index + 1 | 0;
                                            }
                                        }
                                    }
                                    e: {
                                        while (true) {
                                            if (var$13 === null) {
                                                var$13 = null;
                                                break e;
                                            }
                                            f: {
                                                $var2 = var$13.$key0;
                                                if (var$14 === $var2)
                                                    var$1 = 0;
                                                else {
                                                    $var3$index = jl_Math_min(jl_String_length(var$14), jl_String_length($var2));
                                                    var$6 = 0;
                                                    while (true) {
                                                        if (var$6 >= $var3$index) {
                                                            var$1 = jl_String_length(var$14) - jl_String_length($var2) | 0;
                                                            break f;
                                                        }
                                                        var$1 = jl_String_charAt(var$14, var$6) - jl_String_charAt($var2, var$6) | 0;
                                                        if (var$1)
                                                            break;
                                                        var$6 = var$6 + 1 | 0;
                                                    }
                                                }
                                            }
                                            if (!var$1)
                                                break;
                                            var$13 = var$1 >= 0 ? var$13.$right : var$13.$left;
                                        }
                                    }
                                    $var2 = var$13 === null ? null : var$13.$value2;
                                    $var3$index = ($var2 === null ? 0 : $var2.$value) + 5 | 0;
                                    var$6 = (-30);
                                    if ($var3$index >= var$6)
                                        var$6 = $var3$index <= 10 ? $var3$index : 10;
                                    var$13 = var$2.$playerReputation;
                                    if (var$6 >= (-128) && var$6 <= 127) {
                                        jl_Integer_ensureIntegerCache();
                                        var$15 = jl_Integer_integerCache.data[var$6 + 128 | 0];
                                    } else {
                                        var$15 = new jl_Integer;
                                        var$15.$value = var$6;
                                    }
                                    var$16 = var$13.$root;
                                    if (var$16 === null) {
                                        var$16 = new ju_TreeMap$TreeNode;
                                        $var2 = null;
                                        var$16.$key0 = var$12;
                                        var$16.$value2 = $var2;
                                        var$16.$height = 1;
                                        var$16.$size1 = 1;
                                    } else {
                                        g: {
                                            $var2 = var$16.$key0;
                                            if (var$14 === $var2)
                                                var$1 = 0;
                                            else {
                                                $var3$index = var$14.$nativeString.length;
                                                var$5 = $var2.$nativeString.length;
                                                if ($var3$index < var$5)
                                                    var$5 = $var3$index;
                                                $var3$index = 0;
                                                while (true) {
                                                    if ($var3$index >= var$5) {
                                                        var$1 = var$14.$nativeString.length - $var2.$nativeString.length | 0;
                                                        break g;
                                                    }
                                                    if ($var3$index < 0)
                                                        break b;
                                                    if ($var3$index >= var$14.$nativeString.length)
                                                        break b;
                                                    var$6 = var$14.$nativeString.charCodeAt($var3$index);
                                                    if ($var3$index < 0)
                                                        break c;
                                                    if ($var3$index >= $var2.$nativeString.length)
                                                        break c;
                                                    var$1 = var$6 - $var2.$nativeString.charCodeAt($var3$index) | 0;
                                                    if (var$1)
                                                        break;
                                                    $var3$index = $var3$index + 1 | 0;
                                                }
                                            }
                                        }
                                        if (var$1) {
                                            if (var$1 < 0) {
                                                var$17 = var$16.$left;
                                                if (var$17 === null) {
                                                    var$17 = new ju_TreeMap$TreeNode;
                                                    $var2 = null;
                                                    var$17.$key0 = var$12;
                                                    var$17.$value2 = $var2;
                                                    var$17.$height = 1;
                                                    var$17.$size1 = 1;
                                                } else {
                                                    h: {
                                                        $var2 = var$17.$key0;
                                                        if (var$14 === $var2)
                                                            var$1 = 0;
                                                        else {
                                                            $var3$index = jl_Math_min(jl_String_length(var$14), jl_String_length($var2));
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= $var3$index) {
                                                                    var$1 = jl_String_length(var$14) - jl_String_length($var2) | 0;
                                                                    break h;
                                                                }
                                                                var$1 = jl_String_charAt(var$14, var$6) - jl_String_charAt($var2, var$6) | 0;
                                                                if (var$1)
                                                                    break;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    if (var$1) {
                                                        if (var$1 < 0) {
                                                            var$18 = var$17.$left;
                                                            if (var$18 === null) {
                                                                var$18 = new ju_TreeMap$TreeNode;
                                                                $var2 = null;
                                                                jl_Object__init_(var$18);
                                                                var$18.$key0 = var$12;
                                                                var$18.$value2 = $var2;
                                                                var$18.$height = 1;
                                                                var$18.$size1 = 1;
                                                            } else {
                                                                var$1 = jl_String_compareTo0(var$14, var$18.$key0);
                                                                if (var$1) {
                                                                    if (var$1 < 0) {
                                                                        $var2 = var$18.$left;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0)
                                                                                    $var2.$right = ju_TreeMap_getOrCreateNode(var$13, $var2.$right, var$12);
                                                                                else
                                                                                    $var2.$left = ju_TreeMap_getOrCreateNode(var$13, $var2.$left, var$12);
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$left = $var2;
                                                                    } else {
                                                                        $var2 = var$18.$right;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$right = $var2;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                }
                                                            }
                                                            var$17.$left = var$18;
                                                        } else {
                                                            var$18 = var$17.$right;
                                                            if (var$18 === null) {
                                                                var$18 = new ju_TreeMap$TreeNode;
                                                                $var2 = null;
                                                                jl_Object__init_(var$18);
                                                                var$18.$key0 = var$12;
                                                                var$18.$value2 = $var2;
                                                                var$18.$height = 1;
                                                                var$18.$size1 = 1;
                                                            } else {
                                                                var$1 = jl_String_compareTo0(var$14, var$18.$key0);
                                                                if (var$1) {
                                                                    if (var$1 >= 0) {
                                                                        $var2 = var$18.$right;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$right = $var2;
                                                                    } else {
                                                                        $var2 = var$18.$left;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$left = $var2;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                }
                                                            }
                                                            var$17.$right = var$18;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                    }
                                                }
                                                var$16.$left = var$17;
                                            } else {
                                                var$17 = var$16.$right;
                                                if (var$17 === null) {
                                                    var$17 = new ju_TreeMap$TreeNode;
                                                    $var2 = null;
                                                    var$17.$key0 = var$12;
                                                    var$17.$value2 = $var2;
                                                    var$17.$height = 1;
                                                    var$17.$size1 = 1;
                                                } else {
                                                    i: {
                                                        $var2 = var$17.$key0;
                                                        if (var$14 === $var2)
                                                            var$1 = 0;
                                                        else {
                                                            $var3$index = jl_Math_min(jl_String_length(var$14), jl_String_length($var2));
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= $var3$index) {
                                                                    var$1 = jl_String_length(var$14) - jl_String_length($var2) | 0;
                                                                    break i;
                                                                }
                                                                var$1 = jl_String_charAt(var$14, var$6) - jl_String_charAt($var2, var$6) | 0;
                                                                if (var$1)
                                                                    break;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    if (var$1) {
                                                        if (var$1 >= 0) {
                                                            var$18 = var$17.$right;
                                                            if (var$18 === null) {
                                                                var$18 = new ju_TreeMap$TreeNode;
                                                                $var2 = null;
                                                                jl_Object__init_(var$18);
                                                                var$18.$key0 = var$12;
                                                                var$18.$value2 = $var2;
                                                                var$18.$height = 1;
                                                                var$18.$size1 = 1;
                                                            } else {
                                                                var$1 = jl_String_compareTo0(var$14, var$18.$key0);
                                                                if (var$1) {
                                                                    if (var$1 >= 0) {
                                                                        $var2 = var$18.$right;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$right = $var2;
                                                                    } else {
                                                                        $var2 = var$18.$left;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$left = $var2;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                }
                                                            }
                                                            var$17.$right = var$18;
                                                        } else {
                                                            var$18 = var$17.$left;
                                                            if (var$18 === null) {
                                                                var$18 = new ju_TreeMap$TreeNode;
                                                                $var2 = null;
                                                                jl_Object__init_(var$18);
                                                                var$18.$key0 = var$12;
                                                                var$18.$value2 = $var2;
                                                                var$18.$height = 1;
                                                                var$18.$size1 = 1;
                                                            } else {
                                                                var$1 = jl_String_compareTo0(var$14, var$18.$key0);
                                                                if (var$1) {
                                                                    if (var$1 >= 0) {
                                                                        $var2 = var$18.$right;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$right = $var2;
                                                                    } else {
                                                                        $var2 = var$18.$left;
                                                                        if ($var2 === null) {
                                                                            $var2 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_($var2, var$12, null);
                                                                            $var2.$height = 1;
                                                                            $var2.$size1 = 1;
                                                                        } else {
                                                                            var$1 = jl_String_compareTo(var$14, $var2.$key0);
                                                                            if (var$1) {
                                                                                if (var$1 >= 0) {
                                                                                    var$14 = $var2.$right;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$right = var$14;
                                                                                } else {
                                                                                    var$14 = $var2.$left;
                                                                                    if (var$14 === null)
                                                                                        var$14 = ju_TreeMap$TreeNode__init_(var$12);
                                                                                    else {
                                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$13.$comparator, var$12, ju_AbstractMap$SimpleEntry_getKey(var$14));
                                                                                        if (var$1) {
                                                                                            if (var$1 >= 0)
                                                                                                var$14.$right = ju_TreeMap_getOrCreateNode(var$13, var$14.$right, var$12);
                                                                                            else
                                                                                                var$14.$left = ju_TreeMap_getOrCreateNode(var$13, var$14.$left, var$12);
                                                                                            ju_TreeMap$TreeNode_fix(var$14);
                                                                                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                                                                        }
                                                                                    }
                                                                                    $var2.$left = var$14;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                            }
                                                                        }
                                                                        var$18.$left = $var2;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                }
                                                            }
                                                            var$17.$left = var$18;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                    }
                                                }
                                                var$16.$right = var$17;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$16);
                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                        }
                                    }
                                    var$13.$root = var$16;
                                    $var2 = ju_TreeMap_findExact(var$13, var$12);
                                    ju_AbstractMap$SimpleEntry_setValue($var2, var$15);
                                    ju_AbstractMap$SimpleEntry_setValue($var2, var$15);
                                    var$13.$modCount2 = var$13.$modCount2 + 1 | 0;
                                }
                                break a;
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                    }
                }
            }
        }
        if (!($this.$buyingPlayer === null ? 0 : 1)) {
            var$1 = $this.$timeUntilReset;
            if (var$1 > 0) {
                var$1 = var$1 - 1 | 0;
                $this.$timeUntilReset = var$1;
                if (var$1 <= 0) {
                    if ($this.$needsInitilization) {
                        j: {
                            var$2 = $this.$buyingList;
                            if (var$2.$size0 > 1) {
                                $var3$index = 0;
                                var$4 = var$2.$modCount;
                                var$19 = var$2.$size();
                                while (true) {
                                    if (!($var3$index >= var$19 ? 0 : 1))
                                        break j;
                                    if (var$4 < var$2.$modCount)
                                        break;
                                    $var3$index_0 = $var3$index + 1 | 0;
                                    $var2 = var$2.$get($var3$index);
                                    var$1 = $var2.$toolUses;
                                    var$21 = $var2.$maxTradeUses;
                                    if (var$1 < var$21 ? 0 : 1) {
                                        $var1 = $this.$rand;
                                        var$10 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $var1.$seed = var$10;
                                        $var3$index = Long_lo(Long_shru(var$10, 17));
                                        while (true) {
                                            var$22 = $var3$index % 6 | 0;
                                            if ((($var3$index - var$22 | 0) + 5 | 0) >= 0)
                                                break;
                                            var$10 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            $var1.$seed = var$10;
                                            $var3$index = Long_lo(Long_shru(var$10, 17));
                                        }
                                        var$10 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $var1.$seed = var$10;
                                        $var3$index = Long_lo(Long_shru(var$10, 17));
                                        while (true) {
                                            var$23 = $var3$index % 6 | 0;
                                            if ((($var3$index - var$23 | 0) + 5 | 0) >= 0)
                                                break;
                                            var$10 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            $var1.$seed = var$10;
                                            $var3$index = Long_lo(Long_shru(var$10, 17));
                                        }
                                        $var2.$maxTradeUses = var$21 + ((var$22 + var$23 | 0) + 2 | 0) | 0;
                                    }
                                    $var3$index = $var3$index_0;
                                }
                                var$2 = new ju_ConcurrentModificationException;
                                var$2.$suppressionEnabled = 1;
                                var$2.$writableStackTrace = 1;
                                $rt_throw(var$2);
                            }
                        }
                        nms_EntityVillager_addDefaultEquipmentAndRecipies($this, 1);
                        $this.$needsInitilization = 0;
                        if ($this.$villageObj !== null && $this.$lastBuyingPlayer !== null) {
                            var$2 = $this.$worldObj;
                            $var2 = new nms_Packet38EntityStatus;
                            $var3$index = $this.$entityId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var2.$entityId0 = $var3$index;
                            $var2.$entityStatus = 14;
                            var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
                            var$1 = $this.$entityId;
                            $var3$index = var$1 ^ (var$1 >>> 20 | 0) ^ (var$1 >>> 12 | 0);
                            var$5 = $var3$index ^ ($var3$index >>> 7 | 0) ^ ($var3$index >>> 4 | 0);
                            var$8 = var$2.$slots.data;
                            var$2 = var$8[var$5 & (var$8.length - 1 | 0)];
                            k: {
                                while (var$2 !== null) {
                                    if (var$2.$hashEntry == var$1) {
                                        var$2 = var$2.$valueEntry;
                                        break k;
                                    }
                                    var$2 = var$2.$nextEntry0;
                                }
                                var$2 = null;
                            }
                            var$2 = var$2;
                            if (var$2 !== null) {
                                $var1 = var$2.$trackingPlayers.$backingMap;
                                if ($var1.$cachedKeySet === null) {
                                    var$12 = new ju_HashMap$1;
                                    var$12.$this$0 = $var1;
                                    ju_AbstractCollection__init_(var$12);
                                    $var1.$cachedKeySet = var$12;
                                }
                                var$14 = $var1.$cachedKeySet.$iterator();
                                $var3$index = $var2 instanceof nms_Packet3Chat;
                                var$12 = $var2;
                                while (var$14.$hasNext()) {
                                    l: {
                                        $var1 = (var$14.$next()).$playerNetServerHandler;
                                        if ($var3$index) {
                                            var$6 = $var1.$playerEntity.$chatVisibility;
                                            if (var$6 == 2)
                                                break l;
                                            if (var$6 == 1 && !var$12.$isServer)
                                                break l;
                                        }
                                        try {
                                            $var1 = $var1.$netManager;
                                            $ptr = 2;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                $var1 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            var$13 = new otcic_JSStderrPrintStream;
                                            otcic_JsConsolePrintStream__init_(var$13);
                                            jl_System_errCache = var$13;
                                        }
                                        jl_Throwable_printStackTrace($var1, jl_System_errCache);
                                    }
                                }
                                var$2 = var$2.$myEntity;
                                if (var$2 instanceof nms_EntityPlayerMP)
                                    m: {
                                        var$2 = var$2.$playerNetServerHandler;
                                        if ($var3$index) {
                                            $var3$index = var$2.$playerEntity.$chatVisibility;
                                            if ($var3$index == 2)
                                                break m;
                                            if ($var3$index == 1 && !var$12.$isServer)
                                                break m;
                                        }
                                        try {
                                            var$2 = var$2.$netManager;
                                            $ptr = 3;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                var$2 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            $var2 = new otcic_JSStderrPrintStream;
                                            ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                                            jl_System_errCache = $var2;
                                        }
                                        jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                                    }
                            }
                            var$2 = $this.$villageObj;
                            $var2 = $this.$lastBuyingPlayer;
                            var$12 = var$2.$playerReputation.$root;
                            $var1 = $var2;
                            jl_String_compareTo($var1, $var2);
                            n: {
                                while (true) {
                                    if (var$12 === null) {
                                        var$12 = null;
                                        break n;
                                    }
                                    $var3$index = jl_String_compareTo($var1, var$12.$key0);
                                    if (!$var3$index)
                                        break;
                                    var$12 = $var3$index >= 0 ? var$12.$right : var$12.$left;
                                }
                            }
                            var$12 = var$12 === null ? null : var$12.$value2;
                            $var3$index = (var$12 === null ? 0 : var$12.$value) + 1 | 0;
                            var$6 = (-30);
                            if ($var3$index >= var$6)
                                var$6 = $var3$index <= 10 ? $var3$index : 10;
                            var$2 = var$2.$playerReputation;
                            if (var$6 >= (-128) && var$6 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                var$12 = jl_Integer_integerCache.data[var$6 + 128 | 0];
                            } else {
                                var$12 = new jl_Integer;
                                var$12.$value = var$6;
                            }
                            var$13 = var$2.$root;
                            if (var$13 === null) {
                                var$13 = new ju_TreeMap$TreeNode;
                                var$14 = null;
                                var$13.$key0 = $var2;
                                var$13.$value2 = var$14;
                                var$13.$height = 1;
                                var$13.$size1 = 1;
                            } else {
                                var$1 = jl_String_compareTo0($var1, var$13.$key0);
                                if (var$1) {
                                    if (var$1 >= 0) {
                                        var$14 = var$13.$right;
                                        if (var$14 === null) {
                                            var$14 = new ju_TreeMap$TreeNode;
                                            var$15 = null;
                                            var$14.$key0 = $var2;
                                            var$14.$value2 = var$15;
                                            var$14.$height = 1;
                                            var$14.$size1 = 1;
                                        } else {
                                            var$1 = jl_String_compareTo0($var1, var$14.$key0);
                                            if (var$1) {
                                                if (var$1 >= 0) {
                                                    var$24 = var$14.$right;
                                                    if (var$24 === null) {
                                                        var$24 = new ju_TreeMap$TreeNode;
                                                        var$15 = null;
                                                        var$24.$key0 = $var2;
                                                        var$24.$value2 = var$15;
                                                        var$24.$height = 1;
                                                        var$24.$size1 = 1;
                                                    } else {
                                                        var$1 = jl_String_compareTo0($var1, var$24.$key0);
                                                        if (var$1) {
                                                            if (var$1 >= 0) {
                                                                var$25 = var$24.$right;
                                                                if (var$25 === null) {
                                                                    var$25 = new ju_TreeMap$TreeNode;
                                                                    var$15 = null;
                                                                    jl_Object__init_(var$25);
                                                                    var$25.$key0 = $var2;
                                                                    var$25.$value2 = var$15;
                                                                    var$25.$height = 1;
                                                                    var$25.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$25.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$15 = var$25.$right;
                                                                            if (var$15 === null) {
                                                                                var$15 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                                                var$15.$height = 1;
                                                                                var$15.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$16 = var$15.$right;
                                                                                        if (var$16 === null)
                                                                                            var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                                                else
                                                                                                    var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                            }
                                                                                        }
                                                                                        var$15.$right = var$16;
                                                                                    } else {
                                                                                        var$16 = var$15.$left;
                                                                                        if (var$16 === null)
                                                                                            var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                                                else
                                                                                                    var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                            }
                                                                                        }
                                                                                        var$15.$left = var$16;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$25.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$25.$left;
                                                                            if (var$15 === null) {
                                                                                var$15 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                                                var$15.$height = 1;
                                                                                var$15.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$16 = var$15.$right;
                                                                                        if (var$16 === null)
                                                                                            var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                                                else
                                                                                                    var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                            }
                                                                                        }
                                                                                        var$15.$right = var$16;
                                                                                    } else {
                                                                                        var$16 = var$15.$left;
                                                                                        if (var$16 === null)
                                                                                            var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                                                else
                                                                                                    var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                            }
                                                                                        }
                                                                                        var$15.$left = var$16;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$25.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$25);
                                                                        var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                                    }
                                                                }
                                                                var$24.$right = var$25;
                                                            } else {
                                                                var$18 = var$24.$left;
                                                                if (var$18 === null) {
                                                                    var$18 = new ju_TreeMap$TreeNode;
                                                                    var$15 = null;
                                                                    jl_Object__init_(var$18);
                                                                    var$18.$key0 = $var2;
                                                                    var$18.$value2 = var$15;
                                                                    var$18.$height = 1;
                                                                    var$18.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$18.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$25 = var$18.$right;
                                                                            if (var$25 === null) {
                                                                                var$25 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$25, $var2, null);
                                                                                var$25.$height = 1;
                                                                                var$25.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$25.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$15 = var$25.$right;
                                                                                        if (var$15 === null)
                                                                                            var$15 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$15.$right = ju_TreeMap_getOrCreateNode(var$2, var$15.$right, $var2);
                                                                                                else
                                                                                                    var$15.$left = ju_TreeMap_getOrCreateNode(var$2, var$15.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                            }
                                                                                        }
                                                                                        var$25.$right = var$15;
                                                                                    } else {
                                                                                        var$15 = var$25.$left;
                                                                                        if (var$15 === null)
                                                                                            var$15 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$15.$right = ju_TreeMap_getOrCreateNode(var$2, var$15.$right, $var2);
                                                                                                else
                                                                                                    var$15.$left = ju_TreeMap_getOrCreateNode(var$2, var$15.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                            }
                                                                                        }
                                                                                        var$25.$left = var$15;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$25);
                                                                                    var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                                                }
                                                                            }
                                                                            var$18.$right = var$25;
                                                                        } else {
                                                                            var$17 = var$18.$left;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$25 = var$17.$right;
                                                                                        if (var$25 === null)
                                                                                            var$25 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$25));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$25.$right = ju_TreeMap_getOrCreateNode(var$2, var$25.$right, $var2);
                                                                                                else
                                                                                                    var$25.$left = ju_TreeMap_getOrCreateNode(var$2, var$25.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$25);
                                                                                                var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$25;
                                                                                    } else {
                                                                                        var$16 = var$17.$left;
                                                                                        if (var$16 === null)
                                                                                            var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                                                else
                                                                                                    var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$16);
                                                                                                var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$16;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$18.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                    }
                                                                }
                                                                var$24.$left = var$18;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$24);
                                                            var$24 = ju_TreeMap$TreeNode_balance(var$24);
                                                        }
                                                    }
                                                    var$14.$right = var$24;
                                                } else {
                                                    var$16 = var$14.$left;
                                                    if (var$16 === null) {
                                                        var$16 = new ju_TreeMap$TreeNode;
                                                        var$15 = null;
                                                        var$16.$key0 = $var2;
                                                        var$16.$value2 = var$15;
                                                        var$16.$height = 1;
                                                        var$16.$size1 = 1;
                                                    } else {
                                                        o: {
                                                            var$15 = var$16.$key0;
                                                            if ($var1 === var$15)
                                                                var$1 = 0;
                                                            else {
                                                                $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$15));
                                                                var$6 = 0;
                                                                while (true) {
                                                                    if (var$6 >= $var3$index) {
                                                                        var$1 = jl_String_length($var1) - jl_String_length(var$15) | 0;
                                                                        break o;
                                                                    }
                                                                    var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$15, var$6) | 0;
                                                                    if (var$1)
                                                                        break;
                                                                    var$6 = var$6 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        if (var$1) {
                                                            if (var$1 >= 0) {
                                                                var$17 = var$16.$right;
                                                                if (var$17 === null) {
                                                                    var$17 = new ju_TreeMap$TreeNode;
                                                                    var$15 = null;
                                                                    jl_Object__init_(var$17);
                                                                    var$17.$key0 = $var2;
                                                                    var$17.$value2 = var$15;
                                                                    var$17.$height = 1;
                                                                    var$17.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$17.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$15 = var$17.$right;
                                                                            if (var$15 === null) {
                                                                                var$15 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                                                var$15.$height = 1;
                                                                                var$15.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$15.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$15.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$17.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$17.$left;
                                                                            if (var$15 === null) {
                                                                                var$15 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                                                var$15.$height = 1;
                                                                                var$15.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$15.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$15.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$17.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                    }
                                                                }
                                                                var$16.$right = var$17;
                                                            } else {
                                                                var$17 = var$16.$left;
                                                                if (var$17 === null) {
                                                                    var$17 = new ju_TreeMap$TreeNode;
                                                                    var$15 = null;
                                                                    jl_Object__init_(var$17);
                                                                    var$17.$key0 = $var2;
                                                                    var$17.$value2 = var$15;
                                                                    var$17.$height = 1;
                                                                    var$17.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$17.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$15 = var$17.$right;
                                                                            if (var$15 === null) {
                                                                                var$15 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                                                var$15.$height = 1;
                                                                                var$15.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$15.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$15.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$17.$right = var$15;
                                                                        } else {
                                                                            var$15 = var$17.$left;
                                                                            if (var$15 === null) {
                                                                                var$15 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                                                var$15.$height = 1;
                                                                                var$15.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$15.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$15.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$15.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                                }
                                                                            }
                                                                            var$17.$left = var$15;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                    }
                                                                }
                                                                var$16.$left = var$17;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                        }
                                                    }
                                                    var$14.$left = var$16;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$14);
                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                            }
                                        }
                                        var$13.$right = var$14;
                                    } else {
                                        var$14 = var$13.$left;
                                        if (var$14 === null) {
                                            var$14 = new ju_TreeMap$TreeNode;
                                            var$15 = null;
                                            var$14.$key0 = $var2;
                                            var$14.$value2 = var$15;
                                            var$14.$height = 1;
                                            var$14.$size1 = 1;
                                        } else {
                                            p: {
                                                var$15 = var$14.$key0;
                                                if ($var1 === var$15)
                                                    var$1 = 0;
                                                else {
                                                    $var3$index = $var1.$nativeString.length;
                                                    var$5 = var$15.$nativeString.length;
                                                    if ($var3$index < var$5)
                                                        var$5 = $var3$index;
                                                    $var3$index = 0;
                                                    q: {
                                                        while (true) {
                                                            if ($var3$index >= var$5) {
                                                                var$1 = $var1.$nativeString.length - var$15.$nativeString.length | 0;
                                                                break p;
                                                            }
                                                            if ($var3$index < 0)
                                                                break q;
                                                            if ($var3$index >= $var1.$nativeString.length)
                                                                break q;
                                                            var$6 = $var1.$nativeString.charCodeAt($var3$index);
                                                            if ($var3$index < 0)
                                                                break;
                                                            if ($var3$index >= var$15.$nativeString.length)
                                                                break;
                                                            var$1 = var$6 - var$15.$nativeString.charCodeAt($var3$index) | 0;
                                                            if (var$1)
                                                                break p;
                                                            $var3$index = $var3$index + 1 | 0;
                                                        }
                                                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                                    }
                                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                                }
                                            }
                                            if (var$1) {
                                                if (var$1 >= 0) {
                                                    var$15 = var$14.$right;
                                                    if (var$15 === null) {
                                                        var$15 = new ju_TreeMap$TreeNode;
                                                        var$16 = null;
                                                        var$15.$key0 = $var2;
                                                        var$15.$value2 = var$16;
                                                        var$15.$height = 1;
                                                        var$15.$size1 = 1;
                                                    } else {
                                                        r: {
                                                            var$16 = var$15.$key0;
                                                            if ($var1 === var$16)
                                                                var$1 = 0;
                                                            else {
                                                                $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$16));
                                                                var$6 = 0;
                                                                while (true) {
                                                                    if (var$6 >= $var3$index) {
                                                                        var$1 = jl_String_length($var1) - jl_String_length(var$16) | 0;
                                                                        break r;
                                                                    }
                                                                    var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$16, var$6) | 0;
                                                                    if (var$1)
                                                                        break;
                                                                    var$6 = var$6 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        if (var$1) {
                                                            if (var$1 >= 0) {
                                                                var$16 = var$15.$right;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    var$17 = null;
                                                                    jl_Object__init_(var$16);
                                                                    var$16.$key0 = $var2;
                                                                    var$16.$value2 = var$17;
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$right = var$16;
                                                            } else {
                                                                var$16 = var$15.$left;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    var$17 = null;
                                                                    jl_Object__init_(var$16);
                                                                    var$16.$key0 = $var2;
                                                                    var$16.$value2 = var$17;
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$left = var$16;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                        }
                                                    }
                                                    var$14.$right = var$15;
                                                } else {
                                                    var$15 = var$14.$left;
                                                    if (var$15 === null) {
                                                        var$15 = new ju_TreeMap$TreeNode;
                                                        var$16 = null;
                                                        var$15.$key0 = $var2;
                                                        var$15.$value2 = var$16;
                                                        var$15.$height = 1;
                                                        var$15.$size1 = 1;
                                                    } else {
                                                        s: {
                                                            var$16 = var$15.$key0;
                                                            if ($var1 === var$16)
                                                                var$1 = 0;
                                                            else {
                                                                $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$16));
                                                                var$6 = 0;
                                                                while (true) {
                                                                    if (var$6 >= $var3$index) {
                                                                        var$1 = jl_String_length($var1) - jl_String_length(var$16) | 0;
                                                                        break s;
                                                                    }
                                                                    var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$16, var$6) | 0;
                                                                    if (var$1)
                                                                        break;
                                                                    var$6 = var$6 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        if (var$1) {
                                                            if (var$1 >= 0) {
                                                                var$16 = var$15.$right;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    var$17 = null;
                                                                    jl_Object__init_(var$16);
                                                                    var$16.$key0 = $var2;
                                                                    var$16.$value2 = var$17;
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$right = var$16;
                                                            } else {
                                                                var$16 = var$15.$left;
                                                                if (var$16 === null) {
                                                                    var$16 = new ju_TreeMap$TreeNode;
                                                                    var$17 = null;
                                                                    jl_Object__init_(var$16);
                                                                    var$16.$key0 = $var2;
                                                                    var$16.$value2 = var$17;
                                                                    var$16.$height = 1;
                                                                    var$16.$size1 = 1;
                                                                } else {
                                                                    var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                                    if (var$1) {
                                                                        if (var$1 >= 0) {
                                                                            var$17 = var$16.$right;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$right = var$17;
                                                                        } else {
                                                                            var$17 = var$16.$left;
                                                                            if (var$17 === null) {
                                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                                ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                                                var$17.$height = 1;
                                                                                var$17.$size1 = 1;
                                                                            } else {
                                                                                var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                                                if (var$1) {
                                                                                    if (var$1 >= 0) {
                                                                                        var$18 = var$17.$right;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$right = var$18;
                                                                                    } else {
                                                                                        var$18 = var$17.$left;
                                                                                        if (var$18 === null)
                                                                                            var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                                        else {
                                                                                            var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                            if (var$1) {
                                                                                                if (var$1 >= 0)
                                                                                                    var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                                                else
                                                                                                    var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                            }
                                                                                        }
                                                                                        var$17.$left = var$18;
                                                                                    }
                                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                                }
                                                                            }
                                                                            var$16.$left = var$17;
                                                                        }
                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                    }
                                                                }
                                                                var$15.$left = var$16;
                                                            }
                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                        }
                                                    }
                                                    var$14.$left = var$15;
                                                }
                                                ju_TreeMap$TreeNode_fix(var$14);
                                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                                            }
                                        }
                                        var$13.$left = var$14;
                                    }
                                    ju_TreeMap$TreeNode_fix(var$13);
                                    var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                }
                            }
                            t: {
                                var$2.$root = var$13;
                                $var2 = $var2;
                                if ($var1 !== $var2) {
                                    $var3$index = $var1.$nativeString.length;
                                    var$5 = $var2.$nativeString.length;
                                    if ($var3$index < var$5)
                                        var$5 = $var3$index;
                                    var$1 = 0;
                                    u: {
                                        while (true) {
                                            if (var$1 >= var$5) {
                                                $var1.$nativeString.length;
                                                $var2.$nativeString.length;
                                                break t;
                                            }
                                            if (var$1 < 0)
                                                break u;
                                            if (var$1 >= $var1.$nativeString.length)
                                                break u;
                                            var$6 = $var1.$nativeString.charCodeAt(var$1);
                                            if (var$1 < 0)
                                                break;
                                            if (var$1 >= $var2.$nativeString.length)
                                                break;
                                            if (var$6 - $var2.$nativeString.charCodeAt(var$1) | 0)
                                                break t;
                                            var$1 = var$1 + 1 | 0;
                                        }
                                        var$2 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_(var$2);
                                        $rt_throw(var$2);
                                    }
                                    var$2 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_(var$2);
                                    $rt_throw(var$2);
                                }
                            }
                            v: {
                                w: {
                                    x: while (true) {
                                        if (var$13 === null) {
                                            var$13 = null;
                                            break v;
                                        }
                                        y: {
                                            $var2 = var$13.$key0;
                                            if ($var1 === $var2)
                                                var$1 = 0;
                                            else {
                                                $var3$index = $var1.$nativeString.length;
                                                var$5 = $var2.$nativeString.length;
                                                if ($var3$index < var$5)
                                                    var$5 = $var3$index;
                                                $var3$index = 0;
                                                while (true) {
                                                    if ($var3$index >= var$5) {
                                                        var$1 = $var1.$nativeString.length - $var2.$nativeString.length | 0;
                                                        break y;
                                                    }
                                                    if ($var3$index < 0)
                                                        break w;
                                                    if ($var3$index >= $var1.$nativeString.length)
                                                        break w;
                                                    var$6 = $var1.$nativeString.charCodeAt($var3$index);
                                                    if ($var3$index < 0)
                                                        break x;
                                                    if ($var3$index >= $var2.$nativeString.length)
                                                        break x;
                                                    var$1 = var$6 - $var2.$nativeString.charCodeAt($var3$index) | 0;
                                                    if (var$1)
                                                        break;
                                                    $var3$index = $var3$index + 1 | 0;
                                                }
                                            }
                                        }
                                        if (!var$1)
                                            break v;
                                        var$13 = var$1 >= 0 ? var$13.$right : var$13.$left;
                                    }
                                    var$2 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_(var$2);
                                    $rt_throw(var$2);
                                }
                                var$2 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_(var$2);
                                $rt_throw(var$2);
                            }
                            var$13.$value2 = var$12;
                            var$13.$value2 = var$12;
                            var$2.$modCount2 = var$2.$modCount2 + 1 | 0;
                        }
                    }
                    $var2 = new nms_PotionEffect;
                    nms_Potion_$callClinit();
                    $var2.$potionID = nms_Potion_regeneration.$id0;
                    $var2.$duration = 200;
                    $var2.$amplifier = 0;
                    $var2.$isAmbient = 0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_EntityLivingBase_addPotionEffect($this, $var2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        a: {
            z: {
                try {
                    nles_WorkerNetworkManager_addToSendQueue($var1, $var2);
                    if ($rt_suspending()) {
                        break main;
                    }
                    break z;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$13 = jl_System_errCache;
                if (var$13 === null) {
                    var$13 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_(var$13);
                    jl_System_errCache = var$13;
                }
                var$13 = jl_System_errCache;
                jl_Throwable_printStackTrace($var1, var$13);
                break a;
            }
        }
        ba: while (true) {
            while (true) {
                if (!var$14.$hasNext())
                    break ba;
                $var1 = (var$14.$next()).$playerNetServerHandler;
                if (!$var3$index)
                    break;
                var$6 = $var1.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    continue;
                if (var$6 != 1)
                    break;
                if (var$12.$isServer)
                    break;
            }
            try {
                $var1 = $var1.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var1 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$13);
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace($var1, var$13);
        }
        var$2 = var$2.$myEntity;
        if (var$2 instanceof nms_EntityPlayerMP)
            bb: {
                var$2 = var$2.$playerNetServerHandler;
                if ($var3$index) {
                    $var3$index = var$2.$playerEntity.$chatVisibility;
                    if ($var3$index == 2)
                        break bb;
                    if ($var3$index == 1 && !var$12.$isServer)
                        break bb;
                }
                try {
                    var$2 = var$2.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $var2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = $var2;
                }
                jl_Throwable_printStackTrace(var$2, jl_System_errCache);
            }
        var$2 = $this.$villageObj;
        $var2 = $this.$lastBuyingPlayer;
        var$12 = var$2.$playerReputation.$root;
        $var1 = $var2;
        jl_String_compareTo($var1, $var2);
        bc: {
            while (true) {
                if (var$12 === null) {
                    var$12 = null;
                    break bc;
                }
                $var3$index = jl_String_compareTo($var1, var$12.$key0);
                if (!$var3$index)
                    break;
                var$12 = $var3$index >= 0 ? var$12.$right : var$12.$left;
            }
        }
        var$12 = var$12 === null ? null : var$12.$value2;
        $var3$index = (var$12 === null ? 0 : var$12.$value) + 1 | 0;
        var$6 = (-30);
        if ($var3$index >= var$6)
            var$6 = $var3$index <= 10 ? $var3$index : 10;
        var$2 = var$2.$playerReputation;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$12 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$12 = new jl_Integer;
            var$12.$value = var$6;
        }
        var$13 = var$2.$root;
        if (var$13 === null) {
            var$13 = new ju_TreeMap$TreeNode;
            var$14 = null;
            var$13.$key0 = $var2;
            var$13.$value2 = var$14;
            var$13.$height = 1;
            var$13.$size1 = 1;
        } else {
            var$1 = jl_String_compareTo0($var1, var$13.$key0);
            if (var$1) {
                if (var$1 >= 0) {
                    var$14 = var$13.$right;
                    if (var$14 === null) {
                        var$14 = new ju_TreeMap$TreeNode;
                        var$15 = null;
                        var$14.$key0 = $var2;
                        var$14.$value2 = var$15;
                        var$14.$height = 1;
                        var$14.$size1 = 1;
                    } else {
                        var$1 = jl_String_compareTo0($var1, var$14.$key0);
                        if (var$1) {
                            if (var$1 >= 0) {
                                var$24 = var$14.$right;
                                if (var$24 === null) {
                                    var$24 = new ju_TreeMap$TreeNode;
                                    var$15 = null;
                                    var$24.$key0 = $var2;
                                    var$24.$value2 = var$15;
                                    var$24.$height = 1;
                                    var$24.$size1 = 1;
                                } else {
                                    var$1 = jl_String_compareTo0($var1, var$24.$key0);
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$25 = var$24.$right;
                                            if (var$25 === null) {
                                                var$25 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$25);
                                                var$25.$key0 = $var2;
                                                var$25.$value2 = var$15;
                                                var$25.$height = 1;
                                                var$25.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$25.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$15 = var$25.$right;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$16 = var$15.$right;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$16;
                                                                } else {
                                                                    var$16 = var$15.$left;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$25.$right = var$15;
                                                    } else {
                                                        var$15 = var$25.$left;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$16 = var$15.$right;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$16;
                                                                } else {
                                                                    var$16 = var$15.$left;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$25.$left = var$15;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$25);
                                                    var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                }
                                            }
                                            var$24.$right = var$25;
                                        } else {
                                            var$18 = var$24.$left;
                                            if (var$18 === null) {
                                                var$18 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$18);
                                                var$18.$key0 = $var2;
                                                var$18.$value2 = var$15;
                                                var$18.$height = 1;
                                                var$18.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$18.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$25 = var$18.$right;
                                                        if (var$25 === null) {
                                                            var$25 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$25, $var2, null);
                                                            var$25.$height = 1;
                                                            var$25.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$25.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$15 = var$25.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$2, var$15.$right, $var2);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$2, var$15.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$25.$right = var$15;
                                                                } else {
                                                                    var$15 = var$25.$left;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$2, var$15.$right, $var2);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$2, var$15.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$25.$left = var$15;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$25);
                                                                var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                            }
                                                        }
                                                        var$18.$right = var$25;
                                                    } else {
                                                        var$17 = var$18.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$25 = var$17.$right;
                                                                    if (var$25 === null)
                                                                        var$25 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$25));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$25.$right = ju_TreeMap_getOrCreateNode(var$2, var$25.$right, $var2);
                                                                            else
                                                                                var$25.$left = ju_TreeMap_getOrCreateNode(var$2, var$25.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$25);
                                                                            var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$25;
                                                                } else {
                                                                    var$16 = var$17.$left;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$18.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                }
                                            }
                                            var$24.$left = var$18;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$24);
                                        var$24 = ju_TreeMap$TreeNode_balance(var$24);
                                    }
                                }
                                var$14.$right = var$24;
                            } else {
                                var$16 = var$14.$left;
                                if (var$16 === null) {
                                    var$16 = new ju_TreeMap$TreeNode;
                                    var$15 = null;
                                    var$16.$key0 = $var2;
                                    var$16.$value2 = var$15;
                                    var$16.$height = 1;
                                    var$16.$size1 = 1;
                                } else {
                                    bd: {
                                        var$15 = var$16.$key0;
                                        if ($var1 === var$15)
                                            var$1 = 0;
                                        else {
                                            $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$15));
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $var3$index) {
                                                    var$1 = jl_String_length($var1) - jl_String_length(var$15) | 0;
                                                    break bd;
                                                }
                                                var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$15, var$6) | 0;
                                                if (var$1)
                                                    break;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$17 = var$16.$right;
                                            if (var$17 === null) {
                                                var$17 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$17);
                                                var$17.$key0 = $var2;
                                                var$17.$value2 = var$15;
                                                var$17.$height = 1;
                                                var$17.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$17.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$15 = var$17.$right;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$right = var$15;
                                                    } else {
                                                        var$15 = var$17.$left;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$left = var$15;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                }
                                            }
                                            var$16.$right = var$17;
                                        } else {
                                            var$17 = var$16.$left;
                                            if (var$17 === null) {
                                                var$17 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$17);
                                                var$17.$key0 = $var2;
                                                var$17.$value2 = var$15;
                                                var$17.$height = 1;
                                                var$17.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$17.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$15 = var$17.$right;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$right = var$15;
                                                    } else {
                                                        var$15 = var$17.$left;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$left = var$15;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                }
                                            }
                                            var$16.$left = var$17;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$16);
                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                    }
                                }
                                var$14.$left = var$16;
                            }
                            ju_TreeMap$TreeNode_fix(var$14);
                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                        }
                    }
                    var$13.$right = var$14;
                } else {
                    var$14 = var$13.$left;
                    if (var$14 === null) {
                        var$14 = new ju_TreeMap$TreeNode;
                        var$15 = null;
                        var$14.$key0 = $var2;
                        var$14.$value2 = var$15;
                        var$14.$height = 1;
                        var$14.$size1 = 1;
                    } else {
                        be: {
                            var$15 = var$14.$key0;
                            if ($var1 === var$15)
                                var$1 = 0;
                            else {
                                $var3$index = $var1.$nativeString.length;
                                var$5 = var$15.$nativeString.length;
                                if ($var3$index < var$5)
                                    var$5 = $var3$index;
                                $var3$index = 0;
                                bf: {
                                    while (true) {
                                        if ($var3$index >= var$5) {
                                            var$1 = $var1.$nativeString.length - var$15.$nativeString.length | 0;
                                            break be;
                                        }
                                        if ($var3$index < 0)
                                            break bf;
                                        if ($var3$index >= $var1.$nativeString.length)
                                            break bf;
                                        var$6 = $var1.$nativeString.charCodeAt($var3$index);
                                        if ($var3$index < 0)
                                            break;
                                        if ($var3$index >= var$15.$nativeString.length)
                                            break;
                                        var$1 = var$6 - var$15.$nativeString.charCodeAt($var3$index) | 0;
                                        if (var$1)
                                            break be;
                                        $var3$index = $var3$index + 1 | 0;
                                    }
                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                        }
                        if (var$1) {
                            if (var$1 >= 0) {
                                var$15 = var$14.$right;
                                if (var$15 === null) {
                                    var$15 = new ju_TreeMap$TreeNode;
                                    var$16 = null;
                                    var$15.$key0 = $var2;
                                    var$15.$value2 = var$16;
                                    var$15.$height = 1;
                                    var$15.$size1 = 1;
                                } else {
                                    bg: {
                                        var$16 = var$15.$key0;
                                        if ($var1 === var$16)
                                            var$1 = 0;
                                        else {
                                            $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$16));
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $var3$index) {
                                                    var$1 = jl_String_length($var1) - jl_String_length(var$16) | 0;
                                                    break bg;
                                                }
                                                var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$16, var$6) | 0;
                                                if (var$1)
                                                    break;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$16 = var$15.$right;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$right = var$16;
                                        } else {
                                            var$16 = var$15.$left;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$left = var$16;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$15);
                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                    }
                                }
                                var$14.$right = var$15;
                            } else {
                                var$15 = var$14.$left;
                                if (var$15 === null) {
                                    var$15 = new ju_TreeMap$TreeNode;
                                    var$16 = null;
                                    var$15.$key0 = $var2;
                                    var$15.$value2 = var$16;
                                    var$15.$height = 1;
                                    var$15.$size1 = 1;
                                } else {
                                    bh: {
                                        var$16 = var$15.$key0;
                                        if ($var1 === var$16)
                                            var$1 = 0;
                                        else {
                                            $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$16));
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $var3$index) {
                                                    var$1 = jl_String_length($var1) - jl_String_length(var$16) | 0;
                                                    break bh;
                                                }
                                                var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$16, var$6) | 0;
                                                if (var$1)
                                                    break;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$16 = var$15.$right;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$right = var$16;
                                        } else {
                                            var$16 = var$15.$left;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$left = var$16;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$15);
                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                    }
                                }
                                var$14.$left = var$15;
                            }
                            ju_TreeMap$TreeNode_fix(var$14);
                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                        }
                    }
                    var$13.$left = var$14;
                }
                ju_TreeMap$TreeNode_fix(var$13);
                var$13 = ju_TreeMap$TreeNode_balance(var$13);
            }
        }
        bi: {
            var$2.$root = var$13;
            $var2 = $var2;
            if ($var1 !== $var2) {
                $var3$index = $var1.$nativeString.length;
                var$5 = $var2.$nativeString.length;
                if ($var3$index < var$5)
                    var$5 = $var3$index;
                var$1 = 0;
                bj: {
                    while (true) {
                        if (var$1 >= var$5) {
                            $var1.$nativeString.length;
                            $var2.$nativeString.length;
                            break bi;
                        }
                        if (var$1 < 0)
                            break bj;
                        if (var$1 >= $var1.$nativeString.length)
                            break bj;
                        var$6 = $var1.$nativeString.charCodeAt(var$1);
                        if (var$1 < 0)
                            break;
                        if (var$1 >= $var2.$nativeString.length)
                            break;
                        if (var$6 - $var2.$nativeString.charCodeAt(var$1) | 0)
                            break bi;
                        var$1 = var$1 + 1 | 0;
                    }
                    var$2 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$2);
                    $rt_throw(var$2);
                }
                var$2 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$2);
                $rt_throw(var$2);
            }
        }
        bk: {
            bl: {
                bm: while (true) {
                    if (var$13 === null) {
                        var$13 = null;
                        break bk;
                    }
                    bn: {
                        $var2 = var$13.$key0;
                        if ($var1 === $var2)
                            var$1 = 0;
                        else {
                            $var3$index = $var1.$nativeString.length;
                            var$5 = $var2.$nativeString.length;
                            if ($var3$index < var$5)
                                var$5 = $var3$index;
                            $var3$index = 0;
                            while (true) {
                                if ($var3$index >= var$5) {
                                    var$1 = $var1.$nativeString.length - $var2.$nativeString.length | 0;
                                    break bn;
                                }
                                if ($var3$index < 0)
                                    break bl;
                                if ($var3$index >= $var1.$nativeString.length)
                                    break bl;
                                var$6 = $var1.$nativeString.charCodeAt($var3$index);
                                if ($var3$index < 0)
                                    break bm;
                                if ($var3$index >= $var2.$nativeString.length)
                                    break bm;
                                var$1 = var$6 - $var2.$nativeString.charCodeAt($var3$index) | 0;
                                if (var$1)
                                    break;
                                $var3$index = $var3$index + 1 | 0;
                            }
                        }
                    }
                    if (!var$1)
                        break bk;
                    var$13 = var$1 >= 0 ? var$13.$right : var$13.$left;
                }
                var$2 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$2);
                $rt_throw(var$2);
            }
            var$2 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$2);
            $rt_throw(var$2);
        }
        var$13.$value2 = var$12;
        var$13.$value2 = var$12;
        var$2.$modCount2 = var$2.$modCount2 + 1 | 0;
        $var2 = new nms_PotionEffect;
        nms_Potion_$callClinit();
        $var2.$potionID = nms_Potion_regeneration.$id0;
        $var2.$duration = 200;
        $var2.$amplifier = 0;
        $var2.$isAmbient = 0;
        $ptr = 1;
        continue main;
    case 3:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $var2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0($var2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = $var2;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $this.$villageObj;
        $var2 = $this.$lastBuyingPlayer;
        var$12 = var$2.$playerReputation.$root;
        $var1 = $var2;
        jl_String_compareTo($var1, $var2);
        bo: {
            while (true) {
                if (var$12 === null) {
                    var$12 = null;
                    break bo;
                }
                $var3$index = jl_String_compareTo($var1, var$12.$key0);
                if (!$var3$index)
                    break;
                var$12 = $var3$index >= 0 ? var$12.$right : var$12.$left;
            }
        }
        var$12 = var$12 === null ? null : var$12.$value2;
        $var3$index = (var$12 === null ? 0 : var$12.$value) + 1 | 0;
        var$6 = (-30);
        if ($var3$index >= var$6)
            var$6 = $var3$index <= 10 ? $var3$index : 10;
        var$2 = var$2.$playerReputation;
        if (var$6 >= (-128) && var$6 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$12 = jl_Integer_integerCache.data[var$6 + 128 | 0];
        } else {
            var$12 = new jl_Integer;
            var$12.$value = var$6;
        }
        var$13 = var$2.$root;
        if (var$13 === null) {
            var$13 = new ju_TreeMap$TreeNode;
            var$14 = null;
            var$13.$key0 = $var2;
            var$13.$value2 = var$14;
            var$13.$height = 1;
            var$13.$size1 = 1;
        } else {
            var$1 = jl_String_compareTo0($var1, var$13.$key0);
            if (var$1) {
                if (var$1 >= 0) {
                    var$14 = var$13.$right;
                    if (var$14 === null) {
                        var$14 = new ju_TreeMap$TreeNode;
                        var$15 = null;
                        var$14.$key0 = $var2;
                        var$14.$value2 = var$15;
                        var$14.$height = 1;
                        var$14.$size1 = 1;
                    } else {
                        var$1 = jl_String_compareTo0($var1, var$14.$key0);
                        if (var$1) {
                            if (var$1 >= 0) {
                                var$24 = var$14.$right;
                                if (var$24 === null) {
                                    var$24 = new ju_TreeMap$TreeNode;
                                    var$15 = null;
                                    var$24.$key0 = $var2;
                                    var$24.$value2 = var$15;
                                    var$24.$height = 1;
                                    var$24.$size1 = 1;
                                } else {
                                    var$1 = jl_String_compareTo0($var1, var$24.$key0);
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$25 = var$24.$right;
                                            if (var$25 === null) {
                                                var$25 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$25);
                                                var$25.$key0 = $var2;
                                                var$25.$value2 = var$15;
                                                var$25.$height = 1;
                                                var$25.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$25.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$15 = var$25.$right;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$16 = var$15.$right;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$16;
                                                                } else {
                                                                    var$16 = var$15.$left;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$25.$right = var$15;
                                                    } else {
                                                        var$15 = var$25.$left;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$16 = var$15.$right;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$16;
                                                                } else {
                                                                    var$16 = var$15.$left;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$25.$left = var$15;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$25);
                                                    var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                }
                                            }
                                            var$24.$right = var$25;
                                        } else {
                                            var$18 = var$24.$left;
                                            if (var$18 === null) {
                                                var$18 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$18);
                                                var$18.$key0 = $var2;
                                                var$18.$value2 = var$15;
                                                var$18.$height = 1;
                                                var$18.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$18.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$25 = var$18.$right;
                                                        if (var$25 === null) {
                                                            var$25 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$25, $var2, null);
                                                            var$25.$height = 1;
                                                            var$25.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$25.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$15 = var$25.$right;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$2, var$15.$right, $var2);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$2, var$15.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$25.$right = var$15;
                                                                } else {
                                                                    var$15 = var$25.$left;
                                                                    if (var$15 === null)
                                                                        var$15 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$15));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$15.$right = ju_TreeMap_getOrCreateNode(var$2, var$15.$right, $var2);
                                                                            else
                                                                                var$15.$left = ju_TreeMap_getOrCreateNode(var$2, var$15.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$15);
                                                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                                        }
                                                                    }
                                                                    var$25.$left = var$15;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$25);
                                                                var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                            }
                                                        }
                                                        var$18.$right = var$25;
                                                    } else {
                                                        var$17 = var$18.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$25 = var$17.$right;
                                                                    if (var$25 === null)
                                                                        var$25 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$25));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$25.$right = ju_TreeMap_getOrCreateNode(var$2, var$25.$right, $var2);
                                                                            else
                                                                                var$25.$left = ju_TreeMap_getOrCreateNode(var$2, var$25.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$25);
                                                                            var$25 = ju_TreeMap$TreeNode_balance(var$25);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$25;
                                                                } else {
                                                                    var$16 = var$17.$left;
                                                                    if (var$16 === null)
                                                                        var$16 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$16.$right = ju_TreeMap_getOrCreateNode(var$2, var$16.$right, $var2);
                                                                            else
                                                                                var$16.$left = ju_TreeMap_getOrCreateNode(var$2, var$16.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$18.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                }
                                            }
                                            var$24.$left = var$18;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$24);
                                        var$24 = ju_TreeMap$TreeNode_balance(var$24);
                                    }
                                }
                                var$14.$right = var$24;
                            } else {
                                var$16 = var$14.$left;
                                if (var$16 === null) {
                                    var$16 = new ju_TreeMap$TreeNode;
                                    var$15 = null;
                                    var$16.$key0 = $var2;
                                    var$16.$value2 = var$15;
                                    var$16.$height = 1;
                                    var$16.$size1 = 1;
                                } else {
                                    bp: {
                                        var$15 = var$16.$key0;
                                        if ($var1 === var$15)
                                            var$1 = 0;
                                        else {
                                            $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$15));
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $var3$index) {
                                                    var$1 = jl_String_length($var1) - jl_String_length(var$15) | 0;
                                                    break bp;
                                                }
                                                var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$15, var$6) | 0;
                                                if (var$1)
                                                    break;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$17 = var$16.$right;
                                            if (var$17 === null) {
                                                var$17 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$17);
                                                var$17.$key0 = $var2;
                                                var$17.$value2 = var$15;
                                                var$17.$height = 1;
                                                var$17.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$17.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$15 = var$17.$right;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$right = var$15;
                                                    } else {
                                                        var$15 = var$17.$left;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$left = var$15;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                }
                                            }
                                            var$16.$right = var$17;
                                        } else {
                                            var$17 = var$16.$left;
                                            if (var$17 === null) {
                                                var$17 = new ju_TreeMap$TreeNode;
                                                var$15 = null;
                                                jl_Object__init_(var$17);
                                                var$17.$key0 = $var2;
                                                var$17.$value2 = var$15;
                                                var$17.$height = 1;
                                                var$17.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$17.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$15 = var$17.$right;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$right = var$15;
                                                    } else {
                                                        var$15 = var$17.$left;
                                                        if (var$15 === null) {
                                                            var$15 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$15, $var2, null);
                                                            var$15.$height = 1;
                                                            var$15.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$15.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$15.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$right = var$18;
                                                                } else {
                                                                    var$18 = var$15.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$15.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$15);
                                                                var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                            }
                                                        }
                                                        var$17.$left = var$15;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                }
                                            }
                                            var$16.$left = var$17;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$16);
                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                    }
                                }
                                var$14.$left = var$16;
                            }
                            ju_TreeMap$TreeNode_fix(var$14);
                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                        }
                    }
                    var$13.$right = var$14;
                } else {
                    var$14 = var$13.$left;
                    if (var$14 === null) {
                        var$14 = new ju_TreeMap$TreeNode;
                        var$15 = null;
                        var$14.$key0 = $var2;
                        var$14.$value2 = var$15;
                        var$14.$height = 1;
                        var$14.$size1 = 1;
                    } else {
                        bq: {
                            var$15 = var$14.$key0;
                            if ($var1 === var$15)
                                var$1 = 0;
                            else {
                                $var3$index = $var1.$nativeString.length;
                                var$5 = var$15.$nativeString.length;
                                if ($var3$index < var$5)
                                    var$5 = $var3$index;
                                $var3$index = 0;
                                br: {
                                    while (true) {
                                        if ($var3$index >= var$5) {
                                            var$1 = $var1.$nativeString.length - var$15.$nativeString.length | 0;
                                            break bq;
                                        }
                                        if ($var3$index < 0)
                                            break br;
                                        if ($var3$index >= $var1.$nativeString.length)
                                            break br;
                                        var$6 = $var1.$nativeString.charCodeAt($var3$index);
                                        if ($var3$index < 0)
                                            break;
                                        if ($var3$index >= var$15.$nativeString.length)
                                            break;
                                        var$1 = var$6 - var$15.$nativeString.charCodeAt($var3$index) | 0;
                                        if (var$1)
                                            break bq;
                                        $var3$index = $var3$index + 1 | 0;
                                    }
                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                        }
                        if (var$1) {
                            if (var$1 >= 0) {
                                var$15 = var$14.$right;
                                if (var$15 === null) {
                                    var$15 = new ju_TreeMap$TreeNode;
                                    var$16 = null;
                                    var$15.$key0 = $var2;
                                    var$15.$value2 = var$16;
                                    var$15.$height = 1;
                                    var$15.$size1 = 1;
                                } else {
                                    bs: {
                                        var$16 = var$15.$key0;
                                        if ($var1 === var$16)
                                            var$1 = 0;
                                        else {
                                            $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$16));
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $var3$index) {
                                                    var$1 = jl_String_length($var1) - jl_String_length(var$16) | 0;
                                                    break bs;
                                                }
                                                var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$16, var$6) | 0;
                                                if (var$1)
                                                    break;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$16 = var$15.$right;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$right = var$16;
                                        } else {
                                            var$16 = var$15.$left;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$left = var$16;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$15);
                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                    }
                                }
                                var$14.$right = var$15;
                            } else {
                                var$15 = var$14.$left;
                                if (var$15 === null) {
                                    var$15 = new ju_TreeMap$TreeNode;
                                    var$16 = null;
                                    var$15.$key0 = $var2;
                                    var$15.$value2 = var$16;
                                    var$15.$height = 1;
                                    var$15.$size1 = 1;
                                } else {
                                    bt: {
                                        var$16 = var$15.$key0;
                                        if ($var1 === var$16)
                                            var$1 = 0;
                                        else {
                                            $var3$index = jl_Math_min(jl_String_length($var1), jl_String_length(var$16));
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $var3$index) {
                                                    var$1 = jl_String_length($var1) - jl_String_length(var$16) | 0;
                                                    break bt;
                                                }
                                                var$1 = jl_String_charAt($var1, var$6) - jl_String_charAt(var$16, var$6) | 0;
                                                if (var$1)
                                                    break;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (var$1) {
                                        if (var$1 >= 0) {
                                            var$16 = var$15.$right;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$right = var$16;
                                        } else {
                                            var$16 = var$15.$left;
                                            if (var$16 === null) {
                                                var$16 = new ju_TreeMap$TreeNode;
                                                var$17 = null;
                                                jl_Object__init_(var$16);
                                                var$16.$key0 = $var2;
                                                var$16.$value2 = var$17;
                                                var$16.$height = 1;
                                                var$16.$size1 = 1;
                                            } else {
                                                var$1 = jl_String_compareTo0($var1, var$16.$key0);
                                                if (var$1) {
                                                    if (var$1 >= 0) {
                                                        var$17 = var$16.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$right = var$17;
                                                    } else {
                                                        var$17 = var$16.$left;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            ju_AbstractMap$SimpleEntry__init_(var$17, $var2, null);
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$1 = jl_String_compareTo($var1, var$17.$key0);
                                                            if (var$1) {
                                                                if (var$1 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$18 = var$17.$left;
                                                                    if (var$18 === null)
                                                                        var$18 = ju_TreeMap$TreeNode__init_($var2);
                                                                    else {
                                                                        var$1 = ju_Comparator$NaturalOrder_compare(var$2.$comparator, $var2, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                        if (var$1) {
                                                                            if (var$1 >= 0)
                                                                                var$18.$right = ju_TreeMap_getOrCreateNode(var$2, var$18.$right, $var2);
                                                                            else
                                                                                var$18.$left = ju_TreeMap_getOrCreateNode(var$2, var$18.$left, $var2);
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$18;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        var$16.$left = var$17;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                }
                                            }
                                            var$15.$left = var$16;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$15);
                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                    }
                                }
                                var$14.$left = var$15;
                            }
                            ju_TreeMap$TreeNode_fix(var$14);
                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                        }
                    }
                    var$13.$left = var$14;
                }
                ju_TreeMap$TreeNode_fix(var$13);
                var$13 = ju_TreeMap$TreeNode_balance(var$13);
            }
        }
        bu: {
            var$2.$root = var$13;
            $var2 = $var2;
            if ($var1 !== $var2) {
                $var3$index = $var1.$nativeString.length;
                var$5 = $var2.$nativeString.length;
                if ($var3$index < var$5)
                    var$5 = $var3$index;
                var$1 = 0;
                bv: {
                    while (true) {
                        if (var$1 >= var$5) {
                            $var1.$nativeString.length;
                            $var2.$nativeString.length;
                            break bu;
                        }
                        if (var$1 < 0)
                            break bv;
                        if (var$1 >= $var1.$nativeString.length)
                            break bv;
                        var$6 = $var1.$nativeString.charCodeAt(var$1);
                        if (var$1 < 0)
                            break;
                        if (var$1 >= $var2.$nativeString.length)
                            break;
                        if (var$6 - $var2.$nativeString.charCodeAt(var$1) | 0)
                            break bu;
                        var$1 = var$1 + 1 | 0;
                    }
                    var$2 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$2);
                    $rt_throw(var$2);
                }
                var$2 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$2);
                $rt_throw(var$2);
            }
        }
        bw: {
            bi: {
                bx: while (true) {
                    if (var$13 === null) {
                        var$13 = null;
                        break bw;
                    }
                    by: {
                        $var2 = var$13.$key0;
                        if ($var1 === $var2)
                            var$1 = 0;
                        else {
                            $var3$index = $var1.$nativeString.length;
                            var$5 = $var2.$nativeString.length;
                            if ($var3$index < var$5)
                                var$5 = $var3$index;
                            $var3$index = 0;
                            while (true) {
                                if ($var3$index >= var$5) {
                                    var$1 = $var1.$nativeString.length - $var2.$nativeString.length | 0;
                                    break by;
                                }
                                if ($var3$index < 0)
                                    break bi;
                                if ($var3$index >= $var1.$nativeString.length)
                                    break bi;
                                var$6 = $var1.$nativeString.charCodeAt($var3$index);
                                if ($var3$index < 0)
                                    break bx;
                                if ($var3$index >= $var2.$nativeString.length)
                                    break bx;
                                var$1 = var$6 - $var2.$nativeString.charCodeAt($var3$index) | 0;
                                if (var$1)
                                    break;
                                $var3$index = $var3$index + 1 | 0;
                            }
                        }
                    }
                    if (!var$1)
                        break bw;
                    var$13 = var$1 >= 0 ? var$13.$right : var$13.$left;
                }
                var$2 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$2);
                $rt_throw(var$2);
            }
            var$2 = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_(var$2);
            $rt_throw(var$2);
        }
        var$13.$value2 = var$12;
        var$13.$value2 = var$12;
        var$2.$modCount2 = var$2.$modCount2 + 1 | 0;
        $var2 = new nms_PotionEffect;
        nms_Potion_$callClinit();
        $var2.$potionID = nms_Potion_regeneration.$id0;
        $var2.$duration = 200;
        $var2.$amplifier = 0;
        $var2.$isAmbient = 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $var2, var$8, $var3$index, var$10, $var1, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $var3$index_0, var$21, var$22, var$23, var$24, var$25, $ptr);
},
nms_EntityVillager_interact = ($this, $par1EntityPlayer) => {
    let $var2, var$3, $var3, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1EntityPlayer.$inventory0;
        var$3 = $var2.$currentItem;
        $var2 = var$3 < 9 && var$3 >= 0 ? $var2.$mainInventory.data[var$3] : null;
        a: {
            if ($var2 !== null) {
                $var3 = $var2.$itemID;
                nms_Item_$callClinit();
                if ($var3 == nms_Item_monsterPlacer.$itemID0) {
                    $var3 = 1;
                    break a;
                }
            }
            $var3 = 0;
        }
        if (!$var3) {
            b: {
                if (!$this.$isDead) {
                    $var2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$5 = jl_Integer_integerCache.data[134];
                    if (var$5 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        $var3 = var$5.$value;
                        var$6 = $var2.$elementData.data;
                        $var2 = var$6[$var3 & (var$6.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == $var3) {
                                var$7 = $var2.$key;
                                if (var$5 !== var$7 && !jl_Integer_equals(var$5, var$7) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    if (($var2 === null ? null : $var2.$value0).$watchedObject.$value3 > 0.0) {
                        $var3 = 1;
                        break b;
                    }
                }
                $var3 = 0;
            }
            if ($var3 && !($this.$buyingPlayer === null ? 0 : 1)) {
                $var2 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[140];
                if (var$5 === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var3 = var$5.$value;
                    var$6 = $var2.$elementData.data;
                    $var2 = var$6[$var3 & (var$6.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == $var3) {
                            var$7 = $var2.$key;
                            if (var$5 !== var$7 && !jl_Integer_equals(var$5, var$7) ? 0 : 1)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var2 = $var2 === null ? null : $var2.$value0;
                if (!($var2.$watchedObject.$value >= 0 ? 0 : 1)) {
                    if ($this.$worldObj.$isRemote)
                        return 1;
                    $this.$buyingPlayer = $par1EntityPlayer;
                    $var2 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[138];
                    if (var$7 === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        var$8 = var$7.$value;
                        var$6 = $var2.$elementData.data;
                        $var2 = var$6[var$8 & (var$6.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$8) {
                                var$5 = $var2.$key;
                                if (var$7 !== var$5 && !(var$7 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$8 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = ($var2 === null ? null : $var2.$value0).$watchedObject;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAgeable_interact($this, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        return $var3;
    case 2:
        nms_EntityPlayerMP_displayGUIMerchant($par1EntityPlayer, $this, $var2);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, var$3, $var3, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityVillager_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 12, var$1);
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 16, jl_Integer_integerCache.data[128]);
},
nms_EntityVillager_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[140];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    var$6 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagInt;
    var$2.$name = $rt_s(2201);
    var$2.$data = var$7;
    ju_HashMap_putImpl(var$6, $rt_s(2201), var$2);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    a: {
        var$7 = var$2.$watchedObject.$value;
        var$6 = $par1NBTTagCompound.$tagMap;
        var$2 = new nms_NBTTagInt;
        var$2.$name = $rt_s(2448);
        var$2.$data = var$7;
        ju_HashMap_putImpl(var$6, $rt_s(2448), var$2);
        var$7 = $this.$wealth;
        var$6 = $par1NBTTagCompound.$tagMap;
        var$2 = new nms_NBTTagInt;
        var$2.$name = $rt_s(2449);
        var$2.$data = var$7;
        ju_HashMap_putImpl(var$6, $rt_s(2449), var$2);
        var$8 = $this.$buyingList;
        if (var$8 !== null) {
            var$6 = new nms_NBTTagCompound;
            var$6.$name = $rt_s(3);
            var$3 = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            var$3.$elementCount = 0;
            var$9 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$5 = var$9.data;
            var$3.$elementData = var$9;
            var$3.$loadFactor = 0.75;
            var$3.$threshold = var$5.length * 0.75 | 0;
            var$6.$tagMap = var$3;
            var$10 = new nms_NBTTagList;
            var$10.$name = $rt_s(2450);
            var$3 = new ju_ArrayList;
            var$3.$array = $rt_createArray(jl_Object, 10);
            var$10.$tagList = var$3;
            var$7 = 0;
            while (true) {
                var$11 = $rt_compare(var$7, var$8.$size0);
                if (var$11 >= 0) {
                    var$3 = var$6.$tagMap;
                    var$10.$name = $rt_s(2450);
                    ju_HashMap_putImpl(var$3, $rt_s(2450), var$10);
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    var$6.$name = $rt_s(2451);
                    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2451), var$6);
                    break a;
                }
                if (var$7 < 0)
                    break;
                if (var$11 >= 0)
                    break;
                var$3 = nms_MerchantRecipe_writeToTags(var$8.$array.data[var$7]);
                var$10.$tagType = 10;
                var$12 = var$10.$tagList;
                ju_ArrayList_ensureCapacity(var$12, var$12.$size0 + 1 | 0);
                var$5 = var$12.$array.data;
                var$4 = var$12.$size0;
                var$12.$size0 = var$4 + 1 | 0;
                var$5[var$4] = var$3;
                var$12.$modCount = var$12.$modCount + 1 | 0;
                var$7 = var$7 + 1 | 0;
            }
            $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
    }
},
nms_EntityVillager_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var2, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var2 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2201).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2201).$nativeString.length)
                        break a;
                    $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$4 = $rt_s(2201).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2201) !== var$6) {
                        if ($rt_s(2201) === var$6)
                            var$3 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break b;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$7 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2201) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2201).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2201).$nativeString.length)
                                break c;
                            $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2201).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        d: {
                            var$6 = var$2.$key;
                            if ($rt_s(2201) !== var$6) {
                                if ($rt_s(2201) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break d;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$7 = (var$2 === null ? null : var$2.$value0).$data;
        }
        var$8 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$7;
        }
        var$6 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$4 = var$9.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$4) {
                    $var2 = var$6.$key;
                    if (var$9 !== $var2 && !jl_Integer_equals(var$9, $var2) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        $var2 = var$6 === null ? null : var$6.$value0;
        var$6 = $var2.$watchedObject;
        if (!(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2.$value ? 1 : 0)) {
            $var2.$watchedObject = var$2;
            $var2.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[140];
        if (var$2 === null)
            var$8 = ju_HashMap_findNullKeyEntry(var$8);
        else {
            var$7 = jl_Integer_hashCode0(var$2);
            var$8 = ju_HashMap_findNonNullKeyEntry(var$8, var$2, var$7 & (var$8.$elementData.data.length - 1 | 0), var$7);
        }
        var$8 = var$8 === null ? null : var$8.$value0;
        var$11 = !(var$8.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$12 = $this.$field_98056_d * var$11;
        var$11 = $this.$field_98057_e * var$11;
        $ptr = 2;
    case 2:
        a: {
            nms_Entity_setSize($this, var$12, var$11);
            if ($rt_suspending()) {
                break main;
            }
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2448).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2448).$nativeString.length)
                        break a;
                    $rt_s(2448).$hashCode1 = (31 * $rt_s(2448).$hashCode1 | 0) + $rt_s(2448).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2448).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                b: {
                    var$6 = var$2.$key;
                    if ($rt_s(2448) !== var$6) {
                        if ($rt_s(2448) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2448).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break b;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$7 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2448) !== null) {
                e: {
                    if (!$rt_s(2448).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2448).$nativeString.length)
                                break e;
                            $rt_s(2448).$hashCode1 = (31 * $rt_s(2448).$hashCode1 | 0) + $rt_s(2448).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2448).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        f: {
                            var$6 = var$2.$key;
                            if ($rt_s(2448) !== var$6) {
                                if ($rt_s(2448) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$7 = $rt_s(2448).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$7 = 0;
                                } else
                                    var$7 = 1;
                                if (!var$7) {
                                    var$7 = 0;
                                    break f;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$7 = (var$2 === null ? null : var$2.$value0).$data;
        }
        var$8 = $this.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$2 = new jl_Integer;
            var$2.$value = var$7;
        }
        var$6 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 !== null) {
            var$4 = var$9.$value;
            var$5 = var$6.$elementData.data;
            var$6 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$4) {
                    $var2 = var$6.$key;
                    if (var$9 !== $var2 && !(var$9 !== $var2 ? ($var2 instanceof jl_Integer && $var2.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        } else {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        }
        $var2 = var$6 === null ? null : var$6.$value0;
        var$6 = $var2.$watchedObject;
        if (!(var$2 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$2.$value ? 1 : 0)) {
            $var2.$watchedObject = var$2;
            $var2.$watched = 1;
            var$8.$objectChanged = 1;
        }
        g: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2449).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2449).$nativeString.length)
                        break g;
                    $rt_s(2449).$hashCode1 = (31 * $rt_s(2449).$hashCode1 | 0) + $rt_s(2449).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2449).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                h: {
                    var$6 = var$2.$key;
                    if ($rt_s(2449) !== var$6) {
                        if ($rt_s(2449) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$7 = $rt_s(2449).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$7 = 0;
                        } else
                            var$7 = 1;
                        if (!var$7) {
                            var$7 = 0;
                            break h;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2449) !== null) {
                i: {
                    if (!$rt_s(2449).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2449).$nativeString.length)
                                break i;
                            $rt_s(2449).$hashCode1 = (31 * $rt_s(2449).$hashCode1 | 0) + $rt_s(2449).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2449).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$3) {
                        j: {
                            var$6 = var$2.$key;
                            if ($rt_s(2449) !== var$6) {
                                if ($rt_s(2449) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$7 = $rt_s(2449).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$7 = 0;
                                } else
                                    var$7 = 1;
                                if (!var$7) {
                                    var$7 = 0;
                                    break j;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        } else
            var$3 = 0;
        k: {
            $this.$wealth = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2451).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2451).$nativeString.length)
                        break k;
                    $rt_s(2451).$hashCode1 = (31 * $rt_s(2451).$hashCode1 | 0) + $rt_s(2451).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2451).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                l: {
                    var$6 = var$2.$key;
                    if ($rt_s(2451) !== var$6) {
                        if ($rt_s(2451) !== var$6) {
                            if (!(var$6 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$6 = var$6;
                                var$7 = $rt_s(2451).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                        } else
                            var$7 = 1;
                        if (!var$7) {
                            var$7 = 0;
                            break l;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        var$3 = var$2 === null ? 0 : 1;
        m: {
            if (var$3) {
                n: {
                    var$2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2451).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2451).$nativeString.length)
                                break n;
                            $rt_s(2451).$hashCode1 = (31 * $rt_s(2451).$hashCode1 | 0) + $rt_s(2451).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2451).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        o: {
                            var$6 = var$2.$key;
                            if ($rt_s(2451) !== var$6) {
                                if ($rt_s(2451) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2451).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break o;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1)) {
                    $var2 = new nms_NBTTagCompound;
                    if ($rt_s(2451) !== null)
                        $var2.$name = $rt_s(2451);
                    else
                        $var2.$name = $rt_s(3);
                    $par1NBTTagCompound = new ju_HashMap;
                    var$3 = ju_HashMap_calculateCapacity(16);
                    $par1NBTTagCompound.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                    var$5 = var$13.data;
                    $par1NBTTagCompound.$elementData = var$13;
                    $par1NBTTagCompound.$loadFactor = 0.75;
                    $par1NBTTagCompound.$threshold = var$5.length * 0.75 | 0;
                    $var2.$tagMap = $par1NBTTagCompound;
                } else {
                    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2451) === null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    } else {
                        p: {
                            if (!$rt_s(2451).$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $rt_s(2451).$nativeString.length)
                                        break p;
                                    $rt_s(2451).$hashCode1 = (31 * $rt_s(2451).$hashCode1 | 0) + $rt_s(2451).$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$7 = $rt_s(2451).$hashCode1;
                        var$5 = $par1NBTTagCompound.$elementData.data;
                        $par1NBTTagCompound = var$5[var$7 & (var$5.length - 1 | 0)];
                        while ($par1NBTTagCompound !== null) {
                            if ($par1NBTTagCompound.$origKeyHash == var$7) {
                                q: {
                                    var$2 = $par1NBTTagCompound.$key;
                                    if ($rt_s(2451) !== var$2) {
                                        if ($rt_s(2451) === var$2)
                                            var$3 = 1;
                                        else if (!(var$2 instanceof jl_String))
                                            var$3 = 0;
                                        else {
                                            var$2 = var$2;
                                            var$3 = $rt_s(2451).$nativeString !== var$2.$nativeString ? 0 : 1;
                                        }
                                        if (!var$3) {
                                            var$3 = 0;
                                            break q;
                                        }
                                    }
                                    var$3 = 1;
                                }
                                if (var$3)
                                    break;
                            }
                            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                        }
                    }
                    $var2 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
                }
                r: {
                    $par1NBTTagCompound = new nms_MerchantRecipeList;
                    $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
                    var$2 = $var2.$tagMap;
                    if (!$rt_s(2450).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2450).$nativeString.length)
                                break r;
                            $rt_s(2450).$hashCode1 = (31 * $rt_s(2450).$hashCode1 | 0) + $rt_s(2450).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$4 = $rt_s(2450).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$4) {
                        s: {
                            var$6 = var$2.$key;
                            if ($rt_s(2450) !== var$6) {
                                if ($rt_s(2450) === var$6)
                                    var$3 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2450).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break s;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
                if (!(var$2 === null ? 0 : 1)) {
                    var$6 = new nms_NBTTagList;
                    if ($rt_s(2450) !== null)
                        var$6.$name = $rt_s(2450);
                    else
                        var$6.$name = $rt_s(3);
                    var$8 = new ju_ArrayList;
                    jl_Object__init_(var$8);
                    var$8.$array = $rt_createArray(jl_Object, 10);
                    var$6.$tagList = var$8;
                } else {
                    var$2 = $var2.$tagMap;
                    if ($rt_s(2450) === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        t: {
                            if (!$rt_s(2450).$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= $rt_s(2450).$nativeString.length)
                                        break t;
                                    $rt_s(2450).$hashCode1 = (31 * $rt_s(2450).$hashCode1 | 0) + $rt_s(2450).$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$4 = $rt_s(2450).$hashCode1;
                        var$5 = var$2.$elementData.data;
                        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == var$4) {
                                u: {
                                    var$6 = var$2.$key;
                                    if ($rt_s(2450) !== var$6) {
                                        if ($rt_s(2450) === var$6)
                                            var$3 = 1;
                                        else if (!(var$6 instanceof jl_String))
                                            var$3 = 0;
                                        else {
                                            var$6 = var$6;
                                            var$3 = $rt_s(2450).$nativeString !== var$6.$nativeString ? 0 : 1;
                                        }
                                        if (!var$3) {
                                            var$3 = 0;
                                            break u;
                                        }
                                    }
                                    var$3 = 1;
                                }
                                if (var$3)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    var$6 = var$2 === null ? null : var$2.$value0;
                }
                var$3 = 0;
                while (true) {
                    var$8 = var$6.$tagList;
                    var$7 = $rt_compare(var$3, var$8.$size0);
                    if (var$7 >= 0)
                        break;
                    if (var$3 < 0)
                        break m;
                    if (var$7 >= 0)
                        break m;
                    var$8 = var$8.$array.data[var$3];
                    var$2 = new nms_MerchantRecipe;
                    nms_MerchantRecipe_readFromTags(var$2, var$8);
                    ju_ArrayList_ensureCapacity($par1NBTTagCompound, $par1NBTTagCompound.$size0 + 1 | 0);
                    var$5 = $par1NBTTagCompound.$array.data;
                    var$4 = $par1NBTTagCompound.$size0;
                    $par1NBTTagCompound.$size0 = var$4 + 1 | 0;
                    var$5[var$4] = var$2;
                    $par1NBTTagCompound.$modCount = $par1NBTTagCompound.$modCount + 1 | 0;
                    var$3 = var$3 + 1 | 0;
                }
                $this.$buyingList = $par1NBTTagCompound;
            }
            return;
        }
        $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1NBTTagCompound);
        $rt_throw($par1NBTTagCompound);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var2, var$11, var$12, var$13, $ptr);
},
nms_EntityVillager_canDespawn = $this => {
    return 0;
},
nms_EntityVillager_getLivingSound = $this => {
    return !($this.$buyingPlayer === null ? 0 : 1) ? $rt_s(2452) : $rt_s(2453);
},
nms_EntityVillager_getHurtSound = $this => {
    return $rt_s(2454);
},
nms_EntityVillager_getDeathSound = $this => {
    return $rt_s(2455);
},
nms_EntityVillager_setRevengeTarget = ($this, $par1EntityLivingBase) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            b: {
                $this.$entityLivingToAttack = $par1EntityLivingBase;
                $this.$revengeTimer = $this.$ticksExisted;
                var$2 = $this.$villageObj;
                if (var$2 !== null && $par1EntityLivingBase !== null) {
                    var$3 = var$2.$villageAgressors;
                    var$4 = 0;
                    var$5 = var$3.$modCount;
                    var$6 = var$3.$size();
                    c: {
                        while (true) {
                            if (!(var$4 >= var$6 ? 0 : 1)) {
                                var$3 = var$2.$villageAgressors;
                                var$7 = new nms_VillageAgressor;
                                $var2 = var$2.$tickCounter1;
                                var$7.$villageObj2 = var$2;
                                var$7.$agressor = $par1EntityLivingBase;
                                var$7.$agressionTime = $var2;
                                ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
                                var$9 = var$3.$array.data;
                                var$5 = var$3.$size0;
                                var$3.$size0 = var$5 + 1 | 0;
                                var$9[var$5] = var$7;
                                var$3.$modCount = var$3.$modCount + 1 | 0;
                                break c;
                            }
                            if (var$5 < var$3.$modCount)
                                break;
                            $var2 = var$4 + 1 | 0;
                            var$7 = var$3.$get(var$4);
                            if (var$7.$agressor === $par1EntityLivingBase) {
                                var$7.$agressionTime = var$2.$tickCounter1;
                                break c;
                            }
                            var$4 = $var2;
                        }
                        $par1EntityLivingBase = new ju_ConcurrentModificationException;
                        $par1EntityLivingBase.$suppressionEnabled = 1;
                        $par1EntityLivingBase.$writableStackTrace = 1;
                        $rt_throw($par1EntityLivingBase);
                    }
                    if ($par1EntityLivingBase instanceof nms_EntityPlayer) {
                        $var2 = (-1);
                        var$2 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$3 = jl_Integer_integerCache.data[140];
                        if (var$3 === null) {
                            var$2 = var$2.$elementData.data[0];
                            while (var$2 !== null && var$2.$key !== null) {
                                var$2 = var$2.$next3;
                            }
                        } else {
                            var$5 = var$3.$value;
                            var$9 = var$2.$elementData.data;
                            var$2 = var$9[var$5 & (var$9.length - 1 | 0)];
                            while (var$2 !== null) {
                                if (var$2.$origKeyHash == var$5) {
                                    var$7 = var$2.$key;
                                    if (var$3 !== var$7 && !jl_Integer_equals(var$3, var$7) ? 0 : 1)
                                        break;
                                }
                                var$2 = var$2.$next3;
                            }
                        }
                        var$2 = var$2 === null ? null : var$2.$value0;
                        if (var$2.$watchedObject.$value >= 0 ? 0 : 1)
                            $var2 = (-3);
                        d: {
                            var$2 = $this.$villageObj;
                            var$10 = $par1EntityLivingBase.$username;
                            $par1EntityLivingBase = var$2.$playerReputation.$root;
                            var$11 = var$10;
                            var$12 = var$10;
                            if (var$11 !== var$12) {
                                var$6 = var$11.$nativeString.length;
                                var$13 = var$12.$nativeString.length;
                                if (var$6 < var$13)
                                    var$13 = var$6;
                                var$5 = 0;
                                e: {
                                    f: {
                                        while (true) {
                                            if (var$5 >= var$13) {
                                                var$11.$nativeString.length;
                                                var$12.$nativeString.length;
                                                break d;
                                            }
                                            if (var$5 < 0)
                                                break e;
                                            if (var$5 >= var$11.$nativeString.length)
                                                break e;
                                            var$4 = var$11.$nativeString.charCodeAt(var$5);
                                            if (var$5 < 0)
                                                break f;
                                            if (var$5 >= var$12.$nativeString.length)
                                                break f;
                                            if (var$4 - var$12.$nativeString.charCodeAt(var$5) | 0)
                                                break;
                                            var$5 = var$5 + 1 | 0;
                                        }
                                        break d;
                                    }
                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                        }
                        g: {
                            while (true) {
                                if ($par1EntityLivingBase === null) {
                                    $par1EntityLivingBase = null;
                                    break g;
                                }
                                h: {
                                    var$3 = $par1EntityLivingBase.$key0;
                                    if (var$11 !== var$3) {
                                        var$6 = var$11.$nativeString.length;
                                        var$13 = var$3.$nativeString.length;
                                        if (var$6 < var$13)
                                            var$13 = var$6;
                                        var$6 = 0;
                                        while (true) {
                                            if (var$6 >= var$13) {
                                                var$5 = var$11.$nativeString.length - var$3.$nativeString.length | 0;
                                                break h;
                                            }
                                            if (var$6 < 0)
                                                break a;
                                            if (var$6 >= var$11.$nativeString.length)
                                                break a;
                                            var$4 = var$11.$nativeString.charCodeAt(var$6);
                                            if (var$6 < 0)
                                                break b;
                                            if (var$6 >= var$3.$nativeString.length)
                                                break b;
                                            var$5 = var$4 - var$3.$nativeString.charCodeAt(var$6) | 0;
                                            if (var$5)
                                                break;
                                            var$6 = var$6 + 1 | 0;
                                        }
                                    } else
                                        var$5 = 0;
                                }
                                if (!var$5)
                                    break;
                                $par1EntityLivingBase = var$5 >= 0 ? $par1EntityLivingBase.$right : $par1EntityLivingBase.$left;
                            }
                        }
                        $par1EntityLivingBase = $par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value2;
                        var$5 = ($par1EntityLivingBase === null ? 0 : $par1EntityLivingBase.$value) + $var2 | 0;
                        var$6 = (-30);
                        if (var$5 >= var$6)
                            var$6 = var$5 <= 10 ? var$5 : 10;
                        $par1EntityLivingBase = var$2.$playerReputation;
                        if (var$6 >= (-128) && var$6 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$2 = jl_Integer_integerCache.data[var$6 + 128 | 0];
                        } else {
                            var$2 = new jl_Integer;
                            var$2.$value = var$6;
                        }
                        var$14 = $par1EntityLivingBase.$root;
                        if (var$14 === null) {
                            var$14 = new ju_TreeMap$TreeNode;
                            var$3 = null;
                            var$14.$key0 = var$10;
                            var$14.$value2 = var$3;
                            var$14.$height = 1;
                            var$14.$size1 = 1;
                        } else {
                            i: {
                                var$3 = var$14.$key0;
                                if (var$11 !== var$3) {
                                    var$5 = var$11.$nativeString.length;
                                    var$4 = var$3.$nativeString.length;
                                    if (var$5 < var$4)
                                        var$4 = var$5;
                                    var$5 = 0;
                                    j: {
                                        while (true) {
                                            if (var$5 >= var$4) {
                                                $var2 = var$11.$nativeString.length - var$3.$nativeString.length | 0;
                                                break i;
                                            }
                                            if (var$5 < 0)
                                                break j;
                                            if (var$5 >= var$11.$nativeString.length)
                                                break j;
                                            var$6 = var$11.$nativeString.charCodeAt(var$5);
                                            if (var$5 < 0)
                                                break;
                                            if (var$5 >= var$3.$nativeString.length)
                                                break;
                                            $var2 = var$6 - var$3.$nativeString.charCodeAt(var$5) | 0;
                                            if ($var2)
                                                break i;
                                            var$5 = var$5 + 1 | 0;
                                        }
                                        $par1EntityLivingBase = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($par1EntityLivingBase);
                                        $rt_throw($par1EntityLivingBase);
                                    }
                                    $par1EntityLivingBase = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($par1EntityLivingBase);
                                    $rt_throw($par1EntityLivingBase);
                                }
                                $var2 = 0;
                            }
                            if ($var2) {
                                if ($var2 >= 0) {
                                    var$15 = var$14.$right;
                                    if (var$15 === null) {
                                        var$15 = new ju_TreeMap$TreeNode;
                                        var$3 = null;
                                        var$15.$key0 = var$10;
                                        var$15.$value2 = var$3;
                                        var$15.$height = 1;
                                        var$15.$size1 = 1;
                                    } else {
                                        k: {
                                            var$3 = var$15.$key0;
                                            if (var$11 === var$3)
                                                $var2 = 0;
                                            else {
                                                var$5 = var$11.$nativeString.length;
                                                var$4 = var$3.$nativeString.length;
                                                if (var$5 < var$4)
                                                    var$4 = var$5;
                                                var$5 = 0;
                                                l: {
                                                    while (true) {
                                                        if (var$5 >= var$4) {
                                                            $var2 = var$11.$nativeString.length - var$3.$nativeString.length | 0;
                                                            break k;
                                                        }
                                                        if (var$5 < 0)
                                                            break l;
                                                        if (var$5 >= var$11.$nativeString.length)
                                                            break l;
                                                        var$6 = var$11.$nativeString.charCodeAt(var$5);
                                                        if (var$5 < 0)
                                                            break;
                                                        if (var$5 >= var$3.$nativeString.length)
                                                            break;
                                                        $var2 = var$6 - var$3.$nativeString.charCodeAt(var$5) | 0;
                                                        if ($var2)
                                                            break k;
                                                        var$5 = var$5 + 1 | 0;
                                                    }
                                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                        }
                                        if ($var2) {
                                            if ($var2 >= 0) {
                                                var$16 = var$15.$right;
                                                if (var$16 === null) {
                                                    var$16 = new ju_TreeMap$TreeNode;
                                                    var$3 = null;
                                                    var$16.$key0 = var$10;
                                                    var$16.$value2 = var$3;
                                                    var$16.$height = 1;
                                                    var$16.$size1 = 1;
                                                } else {
                                                    m: {
                                                        var$3 = var$16.$key0;
                                                        if (var$11 === var$3)
                                                            $var2 = 0;
                                                        else {
                                                            var$5 = jl_Math_min(jl_String_length(var$11), jl_String_length(var$3));
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= var$5) {
                                                                    $var2 = jl_String_length(var$11) - jl_String_length(var$3) | 0;
                                                                    break m;
                                                                }
                                                                $var2 = jl_String_charAt(var$11, var$6) - jl_String_charAt(var$3, var$6) | 0;
                                                                if ($var2)
                                                                    break;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    if ($var2) {
                                                        if ($var2 >= 0) {
                                                            var$17 = var$16.$right;
                                                            if (var$17 === null) {
                                                                var$17 = new ju_TreeMap$TreeNode;
                                                                var$3 = null;
                                                                jl_Object__init_(var$17);
                                                                var$17.$key0 = var$10;
                                                                var$17.$value2 = var$3;
                                                                var$17.$height = 1;
                                                                var$17.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$17.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$18 = var$17.$right;
                                                                        if (var$18 === null) {
                                                                            var$18 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$18, var$10, null);
                                                                            var$18.$height = 1;
                                                                            var$18.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$18.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$3 = var$18.$right;
                                                                                    if (var$3 === null)
                                                                                        var$3 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$3.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$right, var$10);
                                                                                            else
                                                                                                var$3.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                        }
                                                                                    }
                                                                                    var$18.$right = var$3;
                                                                                } else {
                                                                                    var$3 = var$18.$left;
                                                                                    if (var$3 === null)
                                                                                        var$3 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$3.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$right, var$10);
                                                                                            else
                                                                                                var$3.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                        }
                                                                                    }
                                                                                    var$18.$left = var$3;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                            }
                                                                        }
                                                                        var$17.$right = var$18;
                                                                    } else {
                                                                        var$7 = var$17.$left;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$3 = var$7.$right;
                                                                                    if (var$3 === null)
                                                                                        var$3 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$3.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$right, var$10);
                                                                                            else
                                                                                                var$3.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$3;
                                                                                } else {
                                                                                    var$3 = var$7.$left;
                                                                                    if (var$3 === null)
                                                                                        var$3 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$3.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$right, var$10);
                                                                                            else
                                                                                                var$3.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$3.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$3;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$17.$left = var$7;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$17);
                                                                    var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                }
                                                            }
                                                            var$16.$right = var$17;
                                                        } else {
                                                            var$7 = var$16.$left;
                                                            if (var$7 === null) {
                                                                var$7 = new ju_TreeMap$TreeNode;
                                                                var$3 = null;
                                                                jl_Object__init_(var$7);
                                                                var$7.$key0 = var$10;
                                                                var$7.$value2 = var$3;
                                                                var$7.$height = 1;
                                                                var$7.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$7.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$3 = var$7.$right;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$3.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$3.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$7.$right = var$3;
                                                                    } else {
                                                                        var$3 = var$7.$left;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$3.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$3.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$7.$left = var$3;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$7);
                                                                    var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                }
                                                            }
                                                            var$16.$left = var$7;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                    }
                                                }
                                                var$15.$right = var$16;
                                            } else {
                                                var$7 = var$15.$left;
                                                if (var$7 === null) {
                                                    var$7 = new ju_TreeMap$TreeNode;
                                                    var$3 = null;
                                                    var$7.$key0 = var$10;
                                                    var$7.$value2 = var$3;
                                                    var$7.$height = 1;
                                                    var$7.$size1 = 1;
                                                } else {
                                                    n: {
                                                        var$3 = var$7.$key0;
                                                        if (var$11 === var$3)
                                                            $var2 = 0;
                                                        else {
                                                            var$5 = jl_Math_min(jl_String_length(var$11), jl_String_length(var$3));
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= var$5) {
                                                                    $var2 = jl_String_length(var$11) - jl_String_length(var$3) | 0;
                                                                    break n;
                                                                }
                                                                $var2 = jl_String_charAt(var$11, var$6) - jl_String_charAt(var$3, var$6) | 0;
                                                                if ($var2)
                                                                    break;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    if ($var2) {
                                                        if ($var2 >= 0) {
                                                            var$19 = var$7.$right;
                                                            if (var$19 === null) {
                                                                var$19 = new ju_TreeMap$TreeNode;
                                                                var$3 = null;
                                                                jl_Object__init_(var$19);
                                                                var$19.$key0 = var$10;
                                                                var$19.$value2 = var$3;
                                                                var$19.$height = 1;
                                                                var$19.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$19.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$3 = var$19.$right;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$16 = var$3.$right;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$16;
                                                                                } else {
                                                                                    var$16 = var$3.$left;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$16;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$19.$right = var$3;
                                                                    } else {
                                                                        var$3 = var$19.$left;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$16 = var$3.$right;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$16;
                                                                                } else {
                                                                                    var$16 = var$3.$left;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$16;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$19.$left = var$3;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$19);
                                                                    var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                }
                                                            }
                                                            var$7.$right = var$19;
                                                        } else {
                                                            var$19 = var$7.$left;
                                                            if (var$19 === null) {
                                                                var$19 = new ju_TreeMap$TreeNode;
                                                                var$3 = null;
                                                                jl_Object__init_(var$19);
                                                                var$19.$key0 = var$10;
                                                                var$19.$value2 = var$3;
                                                                var$19.$height = 1;
                                                                var$19.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$19.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$3 = var$19.$right;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$16 = var$3.$right;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$16;
                                                                                } else {
                                                                                    var$16 = var$3.$left;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$16;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$19.$right = var$3;
                                                                    } else {
                                                                        var$3 = var$19.$left;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$16 = var$3.$right;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$16;
                                                                                } else {
                                                                                    var$16 = var$3.$left;
                                                                                    if (var$16 === null)
                                                                                        var$16 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$16.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$right, var$10);
                                                                                            else
                                                                                                var$16.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$16.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$16;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$19.$left = var$3;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$19);
                                                                    var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                }
                                                            }
                                                            var$7.$left = var$19;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$7);
                                                        var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                    }
                                                }
                                                var$15.$left = var$7;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$15);
                                            var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                        }
                                    }
                                    var$14.$right = var$15;
                                } else {
                                    var$18 = var$14.$left;
                                    if (var$18 === null) {
                                        var$18 = new ju_TreeMap$TreeNode;
                                        var$3 = null;
                                        var$18.$key0 = var$10;
                                        var$18.$value2 = var$3;
                                        var$18.$height = 1;
                                        var$18.$size1 = 1;
                                    } else {
                                        o: {
                                            var$3 = var$18.$key0;
                                            if (var$11 === var$3)
                                                $var2 = 0;
                                            else {
                                                var$5 = var$11.$nativeString.length;
                                                var$4 = var$3.$nativeString.length;
                                                if (var$5 < var$4)
                                                    var$4 = var$5;
                                                var$5 = 0;
                                                p: {
                                                    while (true) {
                                                        if (var$5 >= var$4) {
                                                            $var2 = var$11.$nativeString.length - var$3.$nativeString.length | 0;
                                                            break o;
                                                        }
                                                        if (var$5 < 0)
                                                            break p;
                                                        if (var$5 >= var$11.$nativeString.length)
                                                            break p;
                                                        var$6 = var$11.$nativeString.charCodeAt(var$5);
                                                        if (var$5 < 0)
                                                            break;
                                                        if (var$5 >= var$3.$nativeString.length)
                                                            break;
                                                        $var2 = var$6 - var$3.$nativeString.charCodeAt(var$5) | 0;
                                                        if ($var2)
                                                            break o;
                                                        var$5 = var$5 + 1 | 0;
                                                    }
                                                    $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                        }
                                        if ($var2) {
                                            if ($var2 >= 0) {
                                                var$17 = var$18.$right;
                                                if (var$17 === null) {
                                                    var$17 = new ju_TreeMap$TreeNode;
                                                    var$3 = null;
                                                    var$17.$key0 = var$10;
                                                    var$17.$value2 = var$3;
                                                    var$17.$height = 1;
                                                    var$17.$size1 = 1;
                                                } else {
                                                    q: {
                                                        var$3 = var$17.$key0;
                                                        if (var$11 === var$3)
                                                            $var2 = 0;
                                                        else {
                                                            var$5 = jl_Math_min(jl_String_length(var$11), jl_String_length(var$3));
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= var$5) {
                                                                    $var2 = jl_String_length(var$11) - jl_String_length(var$3) | 0;
                                                                    break q;
                                                                }
                                                                $var2 = jl_String_charAt(var$11, var$6) - jl_String_charAt(var$3, var$6) | 0;
                                                                if ($var2)
                                                                    break;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    if ($var2) {
                                                        if ($var2 >= 0) {
                                                            var$3 = var$17.$right;
                                                            if (var$3 === null) {
                                                                var$3 = new ju_TreeMap$TreeNode;
                                                                var$7 = null;
                                                                jl_Object__init_(var$3);
                                                                var$3.$key0 = var$10;
                                                                var$3.$value2 = var$7;
                                                                var$3.$height = 1;
                                                                var$3.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$3.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$7 = var$3.$right;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$7.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$7.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$3.$right = var$7;
                                                                    } else {
                                                                        var$7 = var$3.$left;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$7.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$7.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$3.$left = var$7;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$3);
                                                                    var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                }
                                                            }
                                                            var$17.$right = var$3;
                                                        } else {
                                                            var$3 = var$17.$left;
                                                            if (var$3 === null) {
                                                                var$3 = new ju_TreeMap$TreeNode;
                                                                var$7 = null;
                                                                jl_Object__init_(var$3);
                                                                var$3.$key0 = var$10;
                                                                var$3.$value2 = var$7;
                                                                var$3.$height = 1;
                                                                var$3.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$3.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$7 = var$3.$right;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$7.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$7.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$3.$right = var$7;
                                                                    } else {
                                                                        var$7 = var$3.$left;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$7.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$7.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$3.$left = var$7;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$3);
                                                                    var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                }
                                                            }
                                                            var$17.$left = var$3;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                    }
                                                }
                                                var$18.$right = var$17;
                                            } else {
                                                var$17 = var$18.$left;
                                                if (var$17 === null) {
                                                    var$17 = new ju_TreeMap$TreeNode;
                                                    var$3 = null;
                                                    var$17.$key0 = var$10;
                                                    var$17.$value2 = var$3;
                                                    var$17.$height = 1;
                                                    var$17.$size1 = 1;
                                                } else {
                                                    r: {
                                                        var$3 = var$17.$key0;
                                                        if (var$11 === var$3)
                                                            $var2 = 0;
                                                        else {
                                                            var$5 = jl_Math_min(jl_String_length(var$11), jl_String_length(var$3));
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= var$5) {
                                                                    $var2 = jl_String_length(var$11) - jl_String_length(var$3) | 0;
                                                                    break r;
                                                                }
                                                                $var2 = jl_String_charAt(var$11, var$6) - jl_String_charAt(var$3, var$6) | 0;
                                                                if ($var2)
                                                                    break;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    if ($var2) {
                                                        if ($var2 >= 0) {
                                                            var$16 = var$17.$right;
                                                            if (var$16 === null) {
                                                                var$16 = new ju_TreeMap$TreeNode;
                                                                var$3 = null;
                                                                jl_Object__init_(var$16);
                                                                var$16.$key0 = var$10;
                                                                var$16.$value2 = var$3;
                                                                var$16.$height = 1;
                                                                var$16.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$16.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$3 = var$16.$right;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$7 = var$3.$right;
                                                                                    if (var$7 === null)
                                                                                        var$7 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$7));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$7.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$right, var$10);
                                                                                            else
                                                                                                var$7.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$7);
                                                                                            var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$7;
                                                                                } else {
                                                                                    var$7 = var$3.$left;
                                                                                    if (var$7 === null)
                                                                                        var$7 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$7));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$7.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$right, var$10);
                                                                                            else
                                                                                                var$7.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$7);
                                                                                            var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$7;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$16.$right = var$3;
                                                                    } else {
                                                                        var$3 = var$16.$left;
                                                                        if (var$3 === null) {
                                                                            var$3 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$3, var$10, null);
                                                                            var$3.$height = 1;
                                                                            var$3.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$3.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$7 = var$3.$right;
                                                                                    if (var$7 === null)
                                                                                        var$7 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$7));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$7.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$right, var$10);
                                                                                            else
                                                                                                var$7.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$7);
                                                                                            var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                                        }
                                                                                    }
                                                                                    var$3.$right = var$7;
                                                                                } else {
                                                                                    var$7 = var$3.$left;
                                                                                    if (var$7 === null)
                                                                                        var$7 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$7));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$7.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$right, var$10);
                                                                                            else
                                                                                                var$7.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$7.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$7);
                                                                                            var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                                        }
                                                                                    }
                                                                                    var$3.$left = var$7;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                            }
                                                                        }
                                                                        var$16.$left = var$3;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$16);
                                                                    var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                }
                                                            }
                                                            var$17.$right = var$16;
                                                        } else {
                                                            var$3 = var$17.$left;
                                                            if (var$3 === null) {
                                                                var$3 = new ju_TreeMap$TreeNode;
                                                                var$7 = null;
                                                                jl_Object__init_(var$3);
                                                                var$3.$key0 = var$10;
                                                                var$3.$value2 = var$7;
                                                                var$3.$height = 1;
                                                                var$3.$size1 = 1;
                                                            } else {
                                                                $var2 = jl_String_compareTo0(var$11, var$3.$key0);
                                                                if ($var2) {
                                                                    if ($var2 >= 0) {
                                                                        var$7 = var$3.$right;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$7.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$7.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$3.$right = var$7;
                                                                    } else {
                                                                        var$7 = var$3.$left;
                                                                        if (var$7 === null) {
                                                                            var$7 = new ju_TreeMap$TreeNode;
                                                                            ju_AbstractMap$SimpleEntry__init_(var$7, var$10, null);
                                                                            var$7.$height = 1;
                                                                            var$7.$size1 = 1;
                                                                        } else {
                                                                            $var2 = jl_String_compareTo(var$11, var$7.$key0);
                                                                            if ($var2) {
                                                                                if ($var2 >= 0) {
                                                                                    var$19 = var$7.$right;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$right = var$19;
                                                                                } else {
                                                                                    var$19 = var$7.$left;
                                                                                    if (var$19 === null)
                                                                                        var$19 = ju_TreeMap$TreeNode__init_(var$10);
                                                                                    else {
                                                                                        $var2 = ju_Comparator$NaturalOrder_compare($par1EntityLivingBase.$comparator, var$10, ju_AbstractMap$SimpleEntry_getKey(var$19));
                                                                                        if ($var2) {
                                                                                            if ($var2 >= 0)
                                                                                                var$19.$right = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$right, var$10);
                                                                                            else
                                                                                                var$19.$left = ju_TreeMap_getOrCreateNode($par1EntityLivingBase, var$19.$left, var$10);
                                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                                        }
                                                                                    }
                                                                                    var$7.$left = var$19;
                                                                                }
                                                                                ju_TreeMap$TreeNode_fix(var$7);
                                                                                var$7 = ju_TreeMap$TreeNode_balance(var$7);
                                                                            }
                                                                        }
                                                                        var$3.$left = var$7;
                                                                    }
                                                                    ju_TreeMap$TreeNode_fix(var$3);
                                                                    var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                }
                                                            }
                                                            var$17.$left = var$3;
                                                        }
                                                        ju_TreeMap$TreeNode_fix(var$17);
                                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                    }
                                                }
                                                var$18.$left = var$17;
                                            }
                                            ju_TreeMap$TreeNode_fix(var$18);
                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                        }
                                    }
                                    var$14.$left = var$18;
                                }
                                ju_TreeMap$TreeNode_fix(var$14);
                                var$14 = ju_TreeMap$TreeNode_balance(var$14);
                            }
                        }
                        s: {
                            $par1EntityLivingBase.$root = var$14;
                            if (var$11 !== var$12) {
                                var$5 = var$11.$nativeString.length;
                                var$4 = var$12.$nativeString.length;
                                if (var$5 < var$4)
                                    var$4 = var$5;
                                $var2 = 0;
                                t: {
                                    while (true) {
                                        if ($var2 >= var$4) {
                                            var$11.$nativeString.length;
                                            var$12.$nativeString.length;
                                            break s;
                                        }
                                        if ($var2 < 0)
                                            break t;
                                        if ($var2 >= var$11.$nativeString.length)
                                            break t;
                                        var$6 = var$11.$nativeString.charCodeAt($var2);
                                        if ($var2 < 0)
                                            break;
                                        if ($var2 >= var$12.$nativeString.length)
                                            break;
                                        if (var$6 - var$12.$nativeString.charCodeAt($var2) | 0)
                                            break s;
                                        $var2 = $var2 + 1 | 0;
                                    }
                                    $par1EntityLivingBase = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($par1EntityLivingBase);
                                    $rt_throw($par1EntityLivingBase);
                                }
                                $par1EntityLivingBase = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($par1EntityLivingBase);
                                $rt_throw($par1EntityLivingBase);
                            }
                        }
                        u: {
                            v: {
                                w: while (true) {
                                    if (var$14 === null) {
                                        var$14 = null;
                                        break u;
                                    }
                                    x: {
                                        var$3 = var$14.$key0;
                                        if (var$11 === var$3)
                                            $var2 = 0;
                                        else {
                                            var$5 = var$11.$nativeString.length;
                                            var$4 = var$3.$nativeString.length;
                                            if (var$5 < var$4)
                                                var$4 = var$5;
                                            var$5 = 0;
                                            while (true) {
                                                if (var$5 >= var$4) {
                                                    $var2 = var$11.$nativeString.length - var$3.$nativeString.length | 0;
                                                    break x;
                                                }
                                                if (var$5 < 0)
                                                    break v;
                                                if (var$5 >= var$11.$nativeString.length)
                                                    break v;
                                                var$6 = var$11.$nativeString.charCodeAt(var$5);
                                                if (var$5 < 0)
                                                    break w;
                                                if (var$5 >= var$3.$nativeString.length)
                                                    break w;
                                                $var2 = var$6 - var$3.$nativeString.charCodeAt(var$5) | 0;
                                                if ($var2)
                                                    break;
                                                var$5 = var$5 + 1 | 0;
                                            }
                                        }
                                    }
                                    if (!$var2)
                                        break u;
                                    var$14 = $var2 >= 0 ? var$14.$right : var$14.$left;
                                }
                                $par1EntityLivingBase = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($par1EntityLivingBase);
                                $rt_throw($par1EntityLivingBase);
                            }
                            $par1EntityLivingBase = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1EntityLivingBase);
                            $rt_throw($par1EntityLivingBase);
                        }
                        y: {
                            var$14.$value2 = var$2;
                            var$14.$value2 = var$2;
                            $par1EntityLivingBase.$modCount2 = $par1EntityLivingBase.$modCount2 + 1 | 0;
                            if (!$this.$isDead) {
                                $par1EntityLivingBase = $this.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$3 = jl_Integer_integerCache.data[134];
                                if (var$3 === null) {
                                    $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
                                    while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                    }
                                } else {
                                    var$6 = var$3.$value;
                                    var$9 = $par1EntityLivingBase.$elementData.data;
                                    $par1EntityLivingBase = var$9[var$6 & (var$9.length - 1 | 0)];
                                    while ($par1EntityLivingBase !== null) {
                                        if ($par1EntityLivingBase.$origKeyHash == var$6) {
                                            var$2 = $par1EntityLivingBase.$key;
                                            if (var$3 !== var$2 && !jl_Integer_equals(var$3, var$2) ? 0 : 1)
                                                break;
                                        }
                                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                    }
                                }
                                if (($par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0).$watchedObject.$value3 > 0.0) {
                                    $var2 = 1;
                                    break y;
                                }
                            }
                            $var2 = 0;
                        }
                        if ($var2) {
                            $par1EntityLivingBase = $this.$worldObj;
                            var$2 = new nms_Packet38EntityStatus;
                            var$5 = $this.$entityId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$2.$entityId0 = var$5;
                            var$2.$entityStatus = 13;
                            $par1EntityLivingBase = $par1EntityLivingBase.$theEntityTracker.$trackedEntityIDs;
                            $var2 = $this.$entityId;
                            var$5 = $var2 ^ ($var2 >>> 20 | 0) ^ ($var2 >>> 12 | 0);
                            var$4 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                            var$9 = $par1EntityLivingBase.$slots.data;
                            $par1EntityLivingBase = var$9[var$4 & (var$9.length - 1 | 0)];
                            z: {
                                while ($par1EntityLivingBase !== null) {
                                    if ($par1EntityLivingBase.$hashEntry == $var2) {
                                        $par1EntityLivingBase = $par1EntityLivingBase.$valueEntry;
                                        break z;
                                    }
                                    $par1EntityLivingBase = $par1EntityLivingBase.$nextEntry0;
                                }
                                $par1EntityLivingBase = null;
                            }
                            $par1EntityLivingBase = $par1EntityLivingBase;
                            if ($par1EntityLivingBase !== null) {
                                var$3 = $par1EntityLivingBase.$trackingPlayers.$backingMap;
                                if (var$3.$cachedKeySet === null) {
                                    var$7 = new ju_HashMap$1;
                                    var$7.$this$0 = var$3;
                                    ju_AbstractCollection__init_(var$7);
                                    var$3.$cachedKeySet = var$7;
                                }
                                var$15 = var$3.$cachedKeySet.$iterator();
                                var$5 = var$2 instanceof nms_Packet3Chat;
                                var$7 = var$2;
                                while (var$15.$hasNext()) {
                                    ba: {
                                        var$3 = (var$15.$next()).$playerNetServerHandler;
                                        if (var$5) {
                                            var$6 = var$3.$playerEntity.$chatVisibility;
                                            if (var$6 == 2)
                                                break ba;
                                            if (var$6 == 1 && !var$7.$isServer)
                                                break ba;
                                        }
                                        try {
                                            var$3 = var$3.$netManager;
                                            $ptr = 1;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                var$3 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            var$19 = new otcic_JSStderrPrintStream;
                                            otcic_JsConsolePrintStream__init_(var$19);
                                            jl_System_errCache = var$19;
                                        }
                                        jl_Throwable_printStackTrace(var$3, jl_System_errCache);
                                    }
                                }
                                $par1EntityLivingBase = $par1EntityLivingBase.$myEntity;
                                if ($par1EntityLivingBase instanceof nms_EntityPlayerMP)
                                    bb: {
                                        $par1EntityLivingBase = $par1EntityLivingBase.$playerNetServerHandler;
                                        if (var$5) {
                                            var$5 = $par1EntityLivingBase.$playerEntity.$chatVisibility;
                                            if (var$5 == 2)
                                                break bb;
                                            if (var$5 == 1 && !var$7.$isServer)
                                                break bb;
                                        }
                                        try {
                                            $par1EntityLivingBase = $par1EntityLivingBase.$netManager;
                                            $ptr = 2;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                $par1EntityLivingBase = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            var$2 = new otcic_JSStderrPrintStream;
                                            ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                                            jl_System_errCache = var$2;
                                        }
                                        jl_Throwable_printStackTrace($par1EntityLivingBase, jl_System_errCache);
                                    }
                            }
                        }
                    }
                }
                return;
            }
            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
        }
        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$19 = jl_System_errCache;
            if (var$19 === null) {
                var$19 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$19);
                jl_System_errCache = var$19;
            }
            var$19 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$3, var$19);
        }
        c: while (true) {
            while (true) {
                if (!var$15.$hasNext())
                    break c;
                var$3 = (var$15.$next()).$playerNetServerHandler;
                if (!var$5)
                    break;
                var$6 = var$3.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    continue;
                if (var$6 != 1)
                    break;
                if (var$7.$isServer)
                    break;
            }
            try {
                var$3 = var$3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$19 = jl_System_errCache;
            if (var$19 === null) {
                var$19 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$19);
                jl_System_errCache = var$19;
            }
            var$19 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$3, var$19);
        }
        $par1EntityLivingBase = $par1EntityLivingBase.$myEntity;
        if ($par1EntityLivingBase instanceof nms_EntityPlayerMP)
            bc: {
                $par1EntityLivingBase = $par1EntityLivingBase.$playerNetServerHandler;
                if (var$5) {
                    var$5 = $par1EntityLivingBase.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break bc;
                    if (var$5 == 1 && !var$7.$isServer)
                        break bc;
                }
                try {
                    $par1EntityLivingBase = $par1EntityLivingBase.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityLivingBase = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace($par1EntityLivingBase, jl_System_errCache);
            }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityLivingBase, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityLivingBase = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityLivingBase, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_EntityVillager_onDeath = ($this, $par1DamageSource) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$villageObj !== null) {
            $var2 = $par1DamageSource.$getEntity();
            if ($var2 !== null) {
                if ($var2 instanceof nms_EntityPlayer) {
                    a: {
                        $var3 = $this.$villageObj;
                        var$4 = $var2.$username;
                        $var2 = $var3.$playerReputation.$root;
                        var$5 = var$4;
                        var$6 = var$4;
                        if (var$5 !== var$6) {
                            var$7 = var$5.$nativeString.length;
                            var$8 = var$6.$nativeString.length;
                            if (var$7 < var$8)
                                var$8 = var$7;
                            var$9 = 0;
                            b: {
                                c: {
                                    while (true) {
                                        if (var$9 >= var$8) {
                                            var$5.$nativeString.length;
                                            var$6.$nativeString.length;
                                            break a;
                                        }
                                        if (var$9 < 0)
                                            break b;
                                        if (var$9 >= var$5.$nativeString.length)
                                            break b;
                                        var$10 = var$5.$nativeString.charCodeAt(var$9);
                                        if (var$9 < 0)
                                            break c;
                                        if (var$9 >= var$6.$nativeString.length)
                                            break c;
                                        if (var$10 - var$6.$nativeString.charCodeAt(var$9) | 0)
                                            break;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                    break a;
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                    }
                    d: {
                        e: {
                            f: while (true) {
                                if ($var2 === null) {
                                    $var2 = null;
                                    break d;
                                }
                                g: {
                                    var$11 = $var2.$key0;
                                    if (var$5 !== var$11) {
                                        var$7 = var$5.$nativeString.length;
                                        var$8 = var$11.$nativeString.length;
                                        if (var$7 < var$8)
                                            var$8 = var$7;
                                        var$7 = 0;
                                        while (true) {
                                            if (var$7 >= var$8) {
                                                var$9 = var$5.$nativeString.length - var$11.$nativeString.length | 0;
                                                break g;
                                            }
                                            if (var$7 < 0)
                                                break e;
                                            if (var$7 >= var$5.$nativeString.length)
                                                break e;
                                            var$10 = var$5.$nativeString.charCodeAt(var$7);
                                            if (var$7 < 0)
                                                break f;
                                            if (var$7 >= var$11.$nativeString.length)
                                                break f;
                                            var$9 = var$10 - var$11.$nativeString.charCodeAt(var$7) | 0;
                                            if (var$9)
                                                break;
                                            var$7 = var$7 + 1 | 0;
                                        }
                                    } else
                                        var$9 = 0;
                                }
                                if (!var$9)
                                    break d;
                                $var2 = var$9 >= 0 ? $var2.$right : $var2.$left;
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                    }
                    $var2 = $var2 === null ? null : $var2.$value2;
                    var$7 = ($var2 === null ? 0 : $var2.$value) + (-2) | 0;
                    var$10 = (-30);
                    if (var$7 >= var$10)
                        var$10 = var$7 <= 10 ? var$7 : 10;
                    var$12 = $var3.$playerReputation;
                    if (var$10 >= (-128) && var$10 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$13 = jl_Integer_integerCache.data[var$10 + 128 | 0];
                    } else {
                        var$13 = new jl_Integer;
                        var$13.$value = var$10;
                    }
                    var$14 = var$12.$root;
                    if (var$14 === null) {
                        var$14 = new ju_TreeMap$TreeNode;
                        $var2 = null;
                        var$14.$key0 = var$4;
                        var$14.$value2 = $var2;
                        var$14.$height = 1;
                        var$14.$size1 = 1;
                    } else {
                        h: {
                            $var2 = var$14.$key0;
                            if (var$5 === $var2)
                                var$9 = 0;
                            else {
                                var$7 = var$5.$nativeString.length;
                                var$8 = $var2.$nativeString.length;
                                if (var$7 < var$8)
                                    var$8 = var$7;
                                var$7 = 0;
                                i: {
                                    while (true) {
                                        if (var$7 >= var$8) {
                                            var$9 = var$5.$nativeString.length - $var2.$nativeString.length | 0;
                                            break h;
                                        }
                                        if (var$7 < 0)
                                            break i;
                                        if (var$7 >= var$5.$nativeString.length)
                                            break i;
                                        var$10 = var$5.$nativeString.charCodeAt(var$7);
                                        if (var$7 < 0)
                                            break;
                                        if (var$7 >= $var2.$nativeString.length)
                                            break;
                                        var$9 = var$10 - $var2.$nativeString.charCodeAt(var$7) | 0;
                                        if (var$9)
                                            break h;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                                    $rt_throw($par1DamageSource);
                                }
                                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                                $rt_throw($par1DamageSource);
                            }
                        }
                        if (var$9) {
                            if (var$9 >= 0) {
                                var$15 = var$14.$right;
                                if (var$15 === null) {
                                    var$15 = new ju_TreeMap$TreeNode;
                                    $var2 = null;
                                    var$15.$key0 = var$4;
                                    var$15.$value2 = $var2;
                                    var$15.$height = 1;
                                    var$15.$size1 = 1;
                                } else {
                                    j: {
                                        $var2 = var$15.$key0;
                                        if (var$5 === $var2)
                                            var$9 = 0;
                                        else {
                                            var$7 = var$5.$nativeString.length;
                                            var$8 = $var2.$nativeString.length;
                                            if (var$7 < var$8)
                                                var$8 = var$7;
                                            var$7 = 0;
                                            k: {
                                                while (true) {
                                                    if (var$7 >= var$8) {
                                                        var$9 = var$5.$nativeString.length - $var2.$nativeString.length | 0;
                                                        break j;
                                                    }
                                                    if (var$7 < 0)
                                                        break k;
                                                    if (var$7 >= var$5.$nativeString.length)
                                                        break k;
                                                    var$10 = var$5.$nativeString.charCodeAt(var$7);
                                                    if (var$7 < 0)
                                                        break;
                                                    if (var$7 >= $var2.$nativeString.length)
                                                        break;
                                                    var$9 = var$10 - $var2.$nativeString.charCodeAt(var$7) | 0;
                                                    if (var$9)
                                                        break j;
                                                    var$7 = var$7 + 1 | 0;
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                        }
                                    }
                                    if (var$9) {
                                        if (var$9 >= 0) {
                                            $var2 = var$15.$right;
                                            if ($var2 === null) {
                                                $var2 = new ju_TreeMap$TreeNode;
                                                $var3 = null;
                                                $var2.$key0 = var$4;
                                                $var2.$value2 = $var3;
                                                $var2.$height = 1;
                                                $var2.$size1 = 1;
                                            } else {
                                                l: {
                                                    $var3 = $var2.$key0;
                                                    if (var$5 === $var3)
                                                        var$9 = 0;
                                                    else {
                                                        var$7 = jl_Math_min(jl_String_length(var$5), jl_String_length($var3));
                                                        var$10 = 0;
                                                        while (true) {
                                                            if (var$10 >= var$7) {
                                                                var$9 = jl_String_length(var$5) - jl_String_length($var3) | 0;
                                                                break l;
                                                            }
                                                            var$9 = jl_String_charAt(var$5, var$10) - jl_String_charAt($var3, var$10) | 0;
                                                            if (var$9)
                                                                break;
                                                            var$10 = var$10 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$9) {
                                                    if (var$9 >= 0) {
                                                        $var3 = $var2.$right;
                                                        if ($var3 === null) {
                                                            $var3 = new ju_TreeMap$TreeNode;
                                                            var$11 = null;
                                                            jl_Object__init_($var3);
                                                            $var3.$key0 = var$4;
                                                            $var3.$value2 = var$11;
                                                            $var3.$height = 1;
                                                            $var3.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, $var3.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    var$11 = $var3.$right;
                                                                    if (var$11 === null) {
                                                                        var$11 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$11, var$4, null);
                                                                        var$11.$height = 1;
                                                                        var$11.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$11.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = var$11.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$right = var$16;
                                                                            } else {
                                                                                var$16 = var$11.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                        }
                                                                    }
                                                                    $var3.$right = var$11;
                                                                } else {
                                                                    var$11 = $var3.$left;
                                                                    if (var$11 === null) {
                                                                        var$11 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$11, var$4, null);
                                                                        var$11.$height = 1;
                                                                        var$11.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$11.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = var$11.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$right = var$16;
                                                                            } else {
                                                                                var$16 = var$11.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                        }
                                                                    }
                                                                    $var3.$left = var$11;
                                                                }
                                                                ju_TreeMap$TreeNode_fix($var3);
                                                                $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                            }
                                                        }
                                                        $var2.$right = $var3;
                                                    } else {
                                                        $var3 = $var2.$left;
                                                        if ($var3 === null) {
                                                            $var3 = new ju_TreeMap$TreeNode;
                                                            var$11 = null;
                                                            jl_Object__init_($var3);
                                                            $var3.$key0 = var$4;
                                                            $var3.$value2 = var$11;
                                                            $var3.$height = 1;
                                                            $var3.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, $var3.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    var$11 = $var3.$right;
                                                                    if (var$11 === null) {
                                                                        var$11 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$11, var$4, null);
                                                                        var$11.$height = 1;
                                                                        var$11.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$11.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = var$11.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$right = var$16;
                                                                            } else {
                                                                                var$16 = var$11.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                        }
                                                                    }
                                                                    $var3.$right = var$11;
                                                                } else {
                                                                    var$11 = $var3.$left;
                                                                    if (var$11 === null) {
                                                                        var$11 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$11, var$4, null);
                                                                        var$11.$height = 1;
                                                                        var$11.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$11.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = var$11.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$right = var$16;
                                                                            } else {
                                                                                var$16 = var$11.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                var$11.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                        }
                                                                    }
                                                                    $var3.$left = var$11;
                                                                }
                                                                ju_TreeMap$TreeNode_fix($var3);
                                                                $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                            }
                                                        }
                                                        $var2.$left = $var3;
                                                    }
                                                    ju_TreeMap$TreeNode_fix($var2);
                                                    $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                }
                                            }
                                            var$15.$right = $var2;
                                        } else {
                                            $var2 = var$15.$left;
                                            if ($var2 === null) {
                                                $var2 = new ju_TreeMap$TreeNode;
                                                $var3 = null;
                                                $var2.$key0 = var$4;
                                                $var2.$value2 = $var3;
                                                $var2.$height = 1;
                                                $var2.$size1 = 1;
                                            } else {
                                                m: {
                                                    $var3 = $var2.$key0;
                                                    if (var$5 === $var3)
                                                        var$9 = 0;
                                                    else {
                                                        var$7 = jl_Math_min(jl_String_length(var$5), jl_String_length($var3));
                                                        var$10 = 0;
                                                        while (true) {
                                                            if (var$10 >= var$7) {
                                                                var$9 = jl_String_length(var$5) - jl_String_length($var3) | 0;
                                                                break m;
                                                            }
                                                            var$9 = jl_String_charAt(var$5, var$10) - jl_String_charAt($var3, var$10) | 0;
                                                            if (var$9)
                                                                break;
                                                            var$10 = var$10 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$9) {
                                                    if (var$9 >= 0) {
                                                        var$17 = $var2.$right;
                                                        if (var$17 === null) {
                                                            var$17 = new ju_TreeMap$TreeNode;
                                                            $var3 = null;
                                                            jl_Object__init_(var$17);
                                                            var$17.$key0 = var$4;
                                                            var$17.$value2 = $var3;
                                                            var$17.$height = 1;
                                                            var$17.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, var$17.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    var$18 = var$17.$right;
                                                                    if (var$18 === null) {
                                                                        var$18 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$18, var$4, null);
                                                                        var$18.$height = 1;
                                                                        var$18.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$18.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                $var3 = var$18.$right;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                var$18.$right = $var3;
                                                                            } else {
                                                                                $var3 = var$18.$left;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                var$18.$left = $var3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$18);
                                                                            var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                        }
                                                                    }
                                                                    var$17.$right = var$18;
                                                                } else {
                                                                    var$16 = var$17.$left;
                                                                    if (var$16 === null) {
                                                                        var$16 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$16, var$4, null);
                                                                        var$16.$height = 1;
                                                                        var$16.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$16.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$18 = var$16.$right;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$12, var$18.$right, var$4);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$12, var$18.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$16.$right = var$18;
                                                                            } else {
                                                                                var$11 = var$16.$left;
                                                                                if (var$11 === null)
                                                                                    var$11 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$11.$right = ju_TreeMap_getOrCreateNode(var$12, var$11.$right, var$4);
                                                                                        else
                                                                                            var$11.$left = ju_TreeMap_getOrCreateNode(var$12, var$11.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                var$16.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$16);
                                                                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                        }
                                                                    }
                                                                    var$17.$left = var$16;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$17);
                                                                var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                            }
                                                        }
                                                        $var2.$right = var$17;
                                                    } else {
                                                        var$18 = $var2.$left;
                                                        if (var$18 === null) {
                                                            var$18 = new ju_TreeMap$TreeNode;
                                                            $var3 = null;
                                                            jl_Object__init_(var$18);
                                                            var$18.$key0 = var$4;
                                                            var$18.$value2 = $var3;
                                                            var$18.$height = 1;
                                                            var$18.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, var$18.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    var$17 = var$18.$right;
                                                                    if (var$17 === null) {
                                                                        var$17 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$17, var$4, null);
                                                                        var$17.$height = 1;
                                                                        var$17.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$17.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                $var3 = var$17.$right;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                var$17.$right = $var3;
                                                                            } else {
                                                                                $var3 = var$17.$left;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                var$17.$left = $var3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$18.$right = var$17;
                                                                } else {
                                                                    var$11 = var$18.$left;
                                                                    if (var$11 === null) {
                                                                        var$11 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$11, var$4, null);
                                                                        var$11.$height = 1;
                                                                        var$11.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, var$11.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                $var3 = var$11.$right;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                var$11.$right = $var3;
                                                                            } else {
                                                                                $var3 = var$11.$left;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                var$11.$left = $var3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$11);
                                                                            var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                        }
                                                                    }
                                                                    var$18.$left = var$11;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                            }
                                                        }
                                                        $var2.$left = var$18;
                                                    }
                                                    ju_TreeMap$TreeNode_fix($var2);
                                                    $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                }
                                            }
                                            var$15.$left = $var2;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$15);
                                        var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                    }
                                }
                                var$14.$right = var$15;
                            } else {
                                var$17 = var$14.$left;
                                if (var$17 === null) {
                                    var$17 = new ju_TreeMap$TreeNode;
                                    $var2 = null;
                                    var$17.$key0 = var$4;
                                    var$17.$value2 = $var2;
                                    var$17.$height = 1;
                                    var$17.$size1 = 1;
                                } else {
                                    n: {
                                        $var2 = var$17.$key0;
                                        if (var$5 === $var2)
                                            var$9 = 0;
                                        else {
                                            var$7 = var$5.$nativeString.length;
                                            var$8 = $var2.$nativeString.length;
                                            if (var$7 < var$8)
                                                var$8 = var$7;
                                            var$7 = 0;
                                            o: {
                                                while (true) {
                                                    if (var$7 >= var$8) {
                                                        var$9 = var$5.$nativeString.length - $var2.$nativeString.length | 0;
                                                        break n;
                                                    }
                                                    if (var$7 < 0)
                                                        break o;
                                                    if (var$7 >= var$5.$nativeString.length)
                                                        break o;
                                                    var$10 = var$5.$nativeString.charCodeAt(var$7);
                                                    if (var$7 < 0)
                                                        break;
                                                    if (var$7 >= $var2.$nativeString.length)
                                                        break;
                                                    var$9 = var$10 - $var2.$nativeString.charCodeAt(var$7) | 0;
                                                    if (var$9)
                                                        break n;
                                                    var$7 = var$7 + 1 | 0;
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                        }
                                    }
                                    if (var$9) {
                                        if (var$9 >= 0) {
                                            var$15 = var$17.$right;
                                            if (var$15 === null) {
                                                var$15 = new ju_TreeMap$TreeNode;
                                                $var2 = null;
                                                var$15.$key0 = var$4;
                                                var$15.$value2 = $var2;
                                                var$15.$height = 1;
                                                var$15.$size1 = 1;
                                            } else {
                                                p: {
                                                    $var2 = var$15.$key0;
                                                    if (var$5 === $var2)
                                                        var$9 = 0;
                                                    else {
                                                        var$7 = jl_Math_min(jl_String_length(var$5), jl_String_length($var2));
                                                        var$10 = 0;
                                                        while (true) {
                                                            if (var$10 >= var$7) {
                                                                var$9 = jl_String_length(var$5) - jl_String_length($var2) | 0;
                                                                break p;
                                                            }
                                                            var$9 = jl_String_charAt(var$5, var$10) - jl_String_charAt($var2, var$10) | 0;
                                                            if (var$9)
                                                                break;
                                                            var$10 = var$10 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$9) {
                                                    if (var$9 >= 0) {
                                                        var$18 = var$15.$right;
                                                        if (var$18 === null) {
                                                            var$18 = new ju_TreeMap$TreeNode;
                                                            $var2 = null;
                                                            jl_Object__init_(var$18);
                                                            var$18.$key0 = var$4;
                                                            var$18.$value2 = $var2;
                                                            var$18.$height = 1;
                                                            var$18.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, var$18.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    $var2 = var$18.$right;
                                                                    if ($var2 === null) {
                                                                        $var2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var2, var$4, null);
                                                                        $var2.$height = 1;
                                                                        $var2.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var2.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                $var3 = $var2.$right;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                $var2.$right = $var3;
                                                                            } else {
                                                                                $var3 = $var2.$left;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                $var2.$left = $var3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var2);
                                                                            $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                        }
                                                                    }
                                                                    var$18.$right = $var2;
                                                                } else {
                                                                    $var2 = var$18.$left;
                                                                    if ($var2 === null) {
                                                                        $var2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var2, var$4, null);
                                                                        $var2.$height = 1;
                                                                        $var2.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var2.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                $var3 = $var2.$right;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                $var2.$right = $var3;
                                                                            } else {
                                                                                $var3 = $var2.$left;
                                                                                if ($var3 === null)
                                                                                    $var3 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey($var3));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            $var3.$right = ju_TreeMap_getOrCreateNode(var$12, $var3.$right, var$4);
                                                                                        else
                                                                                            $var3.$left = ju_TreeMap_getOrCreateNode(var$12, $var3.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix($var3);
                                                                                        $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                                    }
                                                                                }
                                                                                $var2.$left = $var3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var2);
                                                                            $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                        }
                                                                    }
                                                                    var$18.$left = $var2;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                            }
                                                        }
                                                        var$15.$right = var$18;
                                                    } else {
                                                        $var2 = var$15.$left;
                                                        if ($var2 === null) {
                                                            $var2 = new ju_TreeMap$TreeNode;
                                                            $var3 = null;
                                                            jl_Object__init_($var2);
                                                            $var2.$key0 = var$4;
                                                            $var2.$value2 = $var3;
                                                            $var2.$height = 1;
                                                            $var2.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, $var2.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    $var3 = $var2.$right;
                                                                    if ($var3 === null) {
                                                                        $var3 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var3, var$4, null);
                                                                        $var3.$height = 1;
                                                                        $var3.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var3.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$11 = $var3.$right;
                                                                                if (var$11 === null)
                                                                                    var$11 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$11.$right = ju_TreeMap_getOrCreateNode(var$12, var$11.$right, var$4);
                                                                                        else
                                                                                            var$11.$left = ju_TreeMap_getOrCreateNode(var$12, var$11.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                $var3.$right = var$11;
                                                                            } else {
                                                                                var$11 = $var3.$left;
                                                                                if (var$11 === null)
                                                                                    var$11 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$11.$right = ju_TreeMap_getOrCreateNode(var$12, var$11.$right, var$4);
                                                                                        else
                                                                                            var$11.$left = ju_TreeMap_getOrCreateNode(var$12, var$11.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                $var3.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var3);
                                                                            $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                        }
                                                                    }
                                                                    $var2.$right = $var3;
                                                                } else {
                                                                    $var3 = $var2.$left;
                                                                    if ($var3 === null) {
                                                                        $var3 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var3, var$4, null);
                                                                        $var3.$height = 1;
                                                                        $var3.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var3.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$11 = $var3.$right;
                                                                                if (var$11 === null)
                                                                                    var$11 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$11.$right = ju_TreeMap_getOrCreateNode(var$12, var$11.$right, var$4);
                                                                                        else
                                                                                            var$11.$left = ju_TreeMap_getOrCreateNode(var$12, var$11.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                $var3.$right = var$11;
                                                                            } else {
                                                                                var$11 = $var3.$left;
                                                                                if (var$11 === null)
                                                                                    var$11 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$11));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$11.$right = ju_TreeMap_getOrCreateNode(var$12, var$11.$right, var$4);
                                                                                        else
                                                                                            var$11.$left = ju_TreeMap_getOrCreateNode(var$12, var$11.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$11);
                                                                                        var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                                                    }
                                                                                }
                                                                                $var3.$left = var$11;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var3);
                                                                            $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                                        }
                                                                    }
                                                                    $var2.$left = $var3;
                                                                }
                                                                ju_TreeMap$TreeNode_fix($var2);
                                                                $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                            }
                                                        }
                                                        var$15.$left = $var2;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$15);
                                                    var$15 = ju_TreeMap$TreeNode_balance(var$15);
                                                }
                                            }
                                            var$17.$right = var$15;
                                        } else {
                                            $var3 = var$17.$left;
                                            if ($var3 === null) {
                                                $var3 = new ju_TreeMap$TreeNode;
                                                $var2 = null;
                                                $var3.$key0 = var$4;
                                                $var3.$value2 = $var2;
                                                $var3.$height = 1;
                                                $var3.$size1 = 1;
                                            } else {
                                                q: {
                                                    $var2 = $var3.$key0;
                                                    if (var$5 === $var2)
                                                        var$9 = 0;
                                                    else {
                                                        var$7 = jl_Math_min(jl_String_length(var$5), jl_String_length($var2));
                                                        var$10 = 0;
                                                        while (true) {
                                                            if (var$10 >= var$7) {
                                                                var$9 = jl_String_length(var$5) - jl_String_length($var2) | 0;
                                                                break q;
                                                            }
                                                            var$9 = jl_String_charAt(var$5, var$10) - jl_String_charAt($var2, var$10) | 0;
                                                            if (var$9)
                                                                break;
                                                            var$10 = var$10 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$9) {
                                                    if (var$9 >= 0) {
                                                        var$11 = $var3.$right;
                                                        if (var$11 === null) {
                                                            var$11 = new ju_TreeMap$TreeNode;
                                                            $var2 = null;
                                                            jl_Object__init_(var$11);
                                                            var$11.$key0 = var$4;
                                                            var$11.$value2 = $var2;
                                                            var$11.$height = 1;
                                                            var$11.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, var$11.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    $var2 = var$11.$right;
                                                                    if ($var2 === null) {
                                                                        $var2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var2, var$4, null);
                                                                        $var2.$height = 1;
                                                                        $var2.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var2.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = $var2.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$right = var$16;
                                                                            } else {
                                                                                var$16 = $var2.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var2);
                                                                            $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                        }
                                                                    }
                                                                    var$11.$right = $var2;
                                                                } else {
                                                                    $var2 = var$11.$left;
                                                                    if ($var2 === null) {
                                                                        $var2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var2, var$4, null);
                                                                        $var2.$height = 1;
                                                                        $var2.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var2.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = $var2.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$right = var$16;
                                                                            } else {
                                                                                var$16 = $var2.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var2);
                                                                            $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                        }
                                                                    }
                                                                    var$11.$left = $var2;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                            }
                                                        }
                                                        $var3.$right = var$11;
                                                    } else {
                                                        var$11 = $var3.$left;
                                                        if (var$11 === null) {
                                                            var$11 = new ju_TreeMap$TreeNode;
                                                            $var2 = null;
                                                            jl_Object__init_(var$11);
                                                            var$11.$key0 = var$4;
                                                            var$11.$value2 = $var2;
                                                            var$11.$height = 1;
                                                            var$11.$size1 = 1;
                                                        } else {
                                                            var$9 = jl_String_compareTo0(var$5, var$11.$key0);
                                                            if (var$9) {
                                                                if (var$9 >= 0) {
                                                                    $var2 = var$11.$right;
                                                                    if ($var2 === null) {
                                                                        $var2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var2, var$4, null);
                                                                        $var2.$height = 1;
                                                                        $var2.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var2.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = $var2.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$right = var$16;
                                                                            } else {
                                                                                var$16 = $var2.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var2);
                                                                            $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                        }
                                                                    }
                                                                    var$11.$right = $var2;
                                                                } else {
                                                                    $var2 = var$11.$left;
                                                                    if ($var2 === null) {
                                                                        $var2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_($var2, var$4, null);
                                                                        $var2.$height = 1;
                                                                        $var2.$size1 = 1;
                                                                    } else {
                                                                        var$9 = jl_String_compareTo(var$5, $var2.$key0);
                                                                        if (var$9) {
                                                                            if (var$9 >= 0) {
                                                                                var$16 = $var2.$right;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$right = var$16;
                                                                            } else {
                                                                                var$16 = $var2.$left;
                                                                                if (var$16 === null)
                                                                                    var$16 = ju_TreeMap$TreeNode__init_(var$4);
                                                                                else {
                                                                                    var$9 = ju_Comparator$NaturalOrder_compare(var$12.$comparator, var$4, ju_AbstractMap$SimpleEntry_getKey(var$16));
                                                                                    if (var$9) {
                                                                                        if (var$9 >= 0)
                                                                                            var$16.$right = ju_TreeMap_getOrCreateNode(var$12, var$16.$right, var$4);
                                                                                        else
                                                                                            var$16.$left = ju_TreeMap_getOrCreateNode(var$12, var$16.$left, var$4);
                                                                                        ju_TreeMap$TreeNode_fix(var$16);
                                                                                        var$16 = ju_TreeMap$TreeNode_balance(var$16);
                                                                                    }
                                                                                }
                                                                                $var2.$left = var$16;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix($var2);
                                                                            $var2 = ju_TreeMap$TreeNode_balance($var2);
                                                                        }
                                                                    }
                                                                    var$11.$left = $var2;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$11);
                                                                var$11 = ju_TreeMap$TreeNode_balance(var$11);
                                                            }
                                                        }
                                                        $var3.$left = var$11;
                                                    }
                                                    ju_TreeMap$TreeNode_fix($var3);
                                                    $var3 = ju_TreeMap$TreeNode_balance($var3);
                                                }
                                            }
                                            var$17.$left = $var3;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$17);
                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                    }
                                }
                                var$14.$left = var$17;
                            }
                            ju_TreeMap$TreeNode_fix(var$14);
                            var$14 = ju_TreeMap$TreeNode_balance(var$14);
                        }
                    }
                    r: {
                        var$12.$root = var$14;
                        if (var$5 !== var$6) {
                            var$7 = var$5.$nativeString.length;
                            var$8 = var$6.$nativeString.length;
                            if (var$7 < var$8)
                                var$8 = var$7;
                            var$9 = 0;
                            s: {
                                while (true) {
                                    if (var$9 >= var$8) {
                                        var$5.$nativeString.length;
                                        var$6.$nativeString.length;
                                        break r;
                                    }
                                    if (var$9 < 0)
                                        break s;
                                    if (var$9 >= var$5.$nativeString.length)
                                        break s;
                                    var$10 = var$5.$nativeString.charCodeAt(var$9);
                                    if (var$9 < 0)
                                        break;
                                    if (var$9 >= var$6.$nativeString.length)
                                        break;
                                    if (var$10 - var$6.$nativeString.charCodeAt(var$9) | 0)
                                        break r;
                                    var$9 = var$9 + 1 | 0;
                                }
                                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                                $rt_throw($par1DamageSource);
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                    }
                    t: {
                        u: {
                            v: while (true) {
                                if (var$14 === null) {
                                    var$14 = null;
                                    break t;
                                }
                                w: {
                                    $var2 = var$14.$key0;
                                    if (var$5 === $var2)
                                        var$9 = 0;
                                    else {
                                        var$7 = var$5.$nativeString.length;
                                        var$8 = $var2.$nativeString.length;
                                        if (var$7 < var$8)
                                            var$8 = var$7;
                                        var$7 = 0;
                                        while (true) {
                                            if (var$7 >= var$8) {
                                                var$9 = var$5.$nativeString.length - $var2.$nativeString.length | 0;
                                                break w;
                                            }
                                            if (var$7 < 0)
                                                break u;
                                            if (var$7 >= var$5.$nativeString.length)
                                                break u;
                                            var$10 = var$5.$nativeString.charCodeAt(var$7);
                                            if (var$7 < 0)
                                                break v;
                                            if (var$7 >= $var2.$nativeString.length)
                                                break v;
                                            var$9 = var$10 - $var2.$nativeString.charCodeAt(var$7) | 0;
                                            if (var$9)
                                                break;
                                            var$7 = var$7 + 1 | 0;
                                        }
                                    }
                                }
                                if (!var$9)
                                    break t;
                                var$14 = var$9 >= 0 ? var$14.$right : var$14.$left;
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                    var$14.$value2 = var$13;
                    var$14.$value2 = var$13;
                    var$12.$modCount2 = var$12.$modCount2 + 1 | 0;
                } else if ($rt_isInstance($var2, nms_IMob)) {
                    $var2 = $this.$villageObj;
                    $var2.$noBreedTicks = $var2.$tickCounter1;
                }
            } else if (nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 16.0) !== null) {
                $var2 = $this.$villageObj;
                $var2.$noBreedTicks = $var2.$tickCounter1;
            }
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onDeath($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityVillager_useRecipe = ($this, $par1MerchantRecipe) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1MerchantRecipe = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1MerchantRecipe.$toolUses = $par1MerchantRecipe.$toolUses + 1 | 0;
        $this.$livingSoundTime = (-80);
        var$2 = $rt_s(2456);
        var$3 = 1.0;
        var$4 = nms_EntityLivingBase_getSoundPitch($this);
        var$5 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$5, $this, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$buyingList;
        var$6 = var$2.$size0;
        var$7 = var$6 - 1 | 0;
        if (var$7 >= 0 && var$7 < var$6) {
            if (nms_MerchantRecipe_hasSameIDsAs($par1MerchantRecipe, var$2.$array.data[var$7])) {
                $this.$timeUntilReset = 40;
                $this.$needsInitilization = 1;
                var$2 = $this.$buyingPlayer;
                if (var$2 === null)
                    $this.$lastBuyingPlayer = null;
                else
                    $this.$lastBuyingPlayer = var$2.$username;
            }
            var$2 = $par1MerchantRecipe.$itemToBuy;
            var$7 = var$2.$itemID;
            nms_Item_$callClinit();
            if (var$7 == nms_Item_emerald.$itemID0)
                $this.$wealth = $this.$wealth + var$2.$stackSize | 0;
            return;
        }
        $par1MerchantRecipe = new jl_IndexOutOfBoundsException;
        $par1MerchantRecipe.$suppressionEnabled = 1;
        $par1MerchantRecipe.$writableStackTrace = 1;
        $rt_throw($par1MerchantRecipe);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MerchantRecipe, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityVillager_func_110297_a_ = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && $this.$livingSoundTime > (-60)) {
            $this.$livingSoundTime = (-80);
            if ($par1ItemStack === null) {
                $par1ItemStack = $rt_s(2457);
                var$2 = 1.0;
                var$3 = nms_EntityLivingBase_getSoundPitch($this);
                var$4 = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
            $par1ItemStack = $rt_s(2456);
            var$2 = 1.0;
            var$3 = nms_EntityLivingBase_getSoundPitch($this);
            var$4 = $this.$worldObj;
            $ptr = 2;
            continue main;
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$4, $this, $par1ItemStack, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_World_playSoundAtEntity(var$4, $this, $par1ItemStack, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, var$2, var$3, var$4, $ptr);
},
nms_EntityVillager_addDefaultEquipmentAndRecipies = ($this, $par1) => {
    let $var8, $var2, $var11, $var6, $var3, var$7, var$8, var$9, $var5, var$11, var$12, var$13, $var7, $var10, var$16, var$17, var$18, var$19, $var9, var$21, var$22;
    $var8 = $this.$buyingList;
    if ($var8 === null)
        $this.$field_82191_bN = 0.0;
    else
        $this.$field_82191_bN = jl_Math_sqrt($var8.$size0) * 0.20000000298023224;
    $var2 = new nms_MerchantRecipeList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    $var8 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    $var11 = jl_Integer_integerCache.data[144];
    if ($var11 === null) {
        $var8 = $var8.$elementData.data[0];
        while ($var8 !== null && $var8.$key !== null) {
            $var8 = $var8.$next3;
        }
    } else {
        $var6 = $var11.$value;
        $var3 = $var8.$elementData.data;
        $var8 = $var3[$var6 & ($var3.length - 1 | 0)];
        while ($var8 !== null) {
            if ($var8.$origKeyHash == $var6) {
                var$7 = $var8.$key;
                if ($var11 !== var$7 && !($var11 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == $var6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var8 = $var8.$next3;
        }
    }
    $var8 = $var8 === null ? null : $var8.$value0;
    a: {
        b: {
            switch ($var8.$watchedObject.$value) {
                case 0:
                    nms_Item_$callClinit();
                    $var6 = nms_Item_wheat.$itemID0;
                    $var8 = $this.$rand;
                    var$8 = 0.8999999761581421 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    nms_EntityVillager_$callClinit();
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$7 = new nms_ItemStack;
                        $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$7.$itemID = $var6;
                        var$7.$stackSize = $var5;
                        var$7.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$11 = new nms_ItemStack;
                        var$11.$itemID = $var8.$itemID0;
                        var$11.$stackSize = 1;
                        var$11.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$7;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$11;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var5 = $var2.$size0;
                        $var2.$size0 = $var5 + 1 | 0;
                        $var3[$var5] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var6 = nms_Block_cloth.$blockID;
                    $var8 = $this.$rand;
                    var$8 = 0.5 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$11 = new nms_ItemStack;
                        $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$11.$itemID = $var6;
                        var$11.$stackSize = $var5;
                        var$11.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$7 = new nms_ItemStack;
                        var$7.$itemID = $var8.$itemID0;
                        var$7.$stackSize = 1;
                        var$7.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$11;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$7;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var5 = $var2.$size0;
                        $var2.$size0 = $var5 + 1 | 0;
                        $var3[$var5] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    $var6 = nms_Item_chickenRaw.$itemID0;
                    $var8 = $this.$rand;
                    var$8 = 0.5 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$11 = new nms_ItemStack;
                        $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$11.$itemID = $var6;
                        var$11.$stackSize = $var5;
                        var$11.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$7 = new nms_ItemStack;
                        var$7.$itemID = $var8.$itemID0;
                        var$7.$stackSize = 1;
                        var$7.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$11;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$7;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var5 = $var2.$size0;
                        $var2.$size0 = $var5 + 1 | 0;
                        $var3[$var5] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    $var6 = nms_Item_fishCooked.$itemID0;
                    $var8 = $this.$rand;
                    var$8 = 0.4000000059604645 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$11 = new nms_ItemStack;
                        $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$11.$itemID = $var6;
                        var$11.$stackSize = $var5;
                        var$11.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$7 = new nms_ItemStack;
                        var$7.$itemID = $var8.$itemID0;
                        var$7.$stackSize = 1;
                        var$7.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$11;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$7;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var5 = $var2.$size0;
                        $var2.$size0 = $var5 + 1 | 0;
                        $var3[$var5] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    $var6 = nms_Item_bread.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.8999999761581421 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_melon.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_appleRed.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_cookie.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_shears.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_flintAndSteel.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_chickenCooked.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_arrow.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.5 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var8 = $this.$rand;
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    var$13 = Long_lo(Long_shru(var$9, 24)) / 1.6777216E7;
                    var$12 = 0.5 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    if (var$13 >= var$12)
                        break a;
                    ju_ArrayList_add($var2, nms_MerchantRecipe__init_(nms_ItemStack__init_(nms_Block_gravel, 10), nms_ItemStack__init_8(nms_Item_emerald), nms_ItemStack__init_7(nms_Item_flint.$itemID0, 4 + nle_EaglercraftRandom_nextInt($this.$rand, 2) | 0, 0)));
                    break a;
                case 1:
                    nms_Item_$callClinit();
                    $var6 = nms_Item_paper.$itemID0;
                    $var8 = $this.$rand;
                    var$8 = 0.800000011920929 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    nms_EntityVillager_$callClinit();
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$11 = new nms_ItemStack;
                        $var7 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$11.$itemID = $var6;
                        var$11.$stackSize = $var7;
                        var$11.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$7 = new nms_ItemStack;
                        var$7.$itemID = $var8.$itemID0;
                        var$7.$stackSize = 1;
                        var$7.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$11;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$7;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var7 = $var2.$size0;
                        $var2.$size0 = $var7 + 1 | 0;
                        $var3[$var7] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    $var6 = nms_Item_book.$itemID0;
                    $var8 = $this.$rand;
                    var$8 = 0.800000011920929 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$11 = new nms_ItemStack;
                        $var7 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$11.$itemID = $var6;
                        var$11.$stackSize = $var7;
                        var$11.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$7 = new nms_ItemStack;
                        var$7.$itemID = $var8.$itemID0;
                        var$7.$stackSize = 1;
                        var$7.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$11;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$7;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var7 = $var2.$size0;
                        $var2.$size0 = $var7 + 1 | 0;
                        $var3[$var7] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    $var6 = nms_Item_writtenBook.$itemID0;
                    $var8 = $this.$rand;
                    var$8 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$8 > 0.8999999761581421)
                        var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                        $var11 = new nms_MerchantRecipe;
                        var$11 = new nms_ItemStack;
                        $var7 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                        nms_ItemStack_$callClinit();
                        var$11.$itemID = $var6;
                        var$11.$stackSize = $var7;
                        var$11.$itemDamage = 0;
                        $var8 = nms_Item_emerald;
                        var$7 = new nms_ItemStack;
                        var$7.$itemID = $var8.$itemID0;
                        var$7.$stackSize = 1;
                        var$7.$itemDamage = 0;
                        $var8 = null;
                        $var11.$itemToBuy = var$11;
                        $var11.$secondItemToBuy = $var8;
                        $var11.$itemToSell = var$7;
                        $var11.$maxTradeUses = 7;
                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                        $var3 = $var2.$array.data;
                        $var7 = $var2.$size0;
                        $var2.$size0 = $var7 + 1 | 0;
                        $var3[$var7] = $var11;
                        $var2.$modCount = $var2.$modCount + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var6 = nms_Block_bookShelf.$blockID;
                    $var8 = $this.$rand;
                    var$12 = 0.800000011920929 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Block_glass.$blockID;
                    $var8 = $this.$rand;
                    var$12 = 0.20000000298023224 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_compass.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.20000000298023224 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_pocketSundial.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.20000000298023224 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var8 = $this.$rand;
                    var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var8.$seed = var$9;
                    var$13 = Long_lo(Long_shru(var$9, 24)) / 1.6777216E7;
                    var$12 = 0.07000000029802322 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    if (var$13 >= var$12)
                        break a;
                    nms_Enchantment_$callClinit();
                    $var3 = nms_Enchantment_enchantmentsBookList.data;
                    $var8 = $var3[nle_EaglercraftRandom_nextInt($var8, $var3.length)];
                    $var11 = $this.$rand;
                    $var10 = 1;
                    $var6 = $var8.$getMaxLevel();
                    if ($var10 < $var6)
                        $var10 = nle_EaglercraftRandom_nextInt($var11, ($var6 - $var10 | 0) + 1 | 0) + $var10 | 0;
                    $var11 = nms_Item_enchantedBook;
                    var$7 = new nms_EnchantmentData;
                    var$7.$itemWeight = $var8.$weight;
                    var$7.$enchantmentobj = $var8;
                    var$7.$enchantmentLevel = $var10;
                    $var11 = nms_ItemEnchantedBook_getEnchantedItemStack($var11, var$7);
                    $var6 = (2 + nle_EaglercraftRandom_nextInt($this.$rand, 5 + ($var10 * 10 | 0) | 0) | 0) + (3 * $var10 | 0) | 0;
                    ju_ArrayList_add($var2, nms_MerchantRecipe__init_(nms_ItemStack__init_8(nms_Item_book), nms_ItemStack__init_0(nms_Item_emerald, $var6), $var11));
                    break a;
                case 2:
                    nms_Item_$callClinit();
                    $var6 = nms_Item_eyeOfEnder.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_expBottle.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.20000000298023224 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var6 = nms_Item_redstone.$itemID0;
                    $var8 = $this.$rand;
                    var$12 = 0.4000000059604645 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    nms_Block_$callClinit();
                    $var6 = nms_Block_glowStone.$blockID;
                    $var8 = $this.$rand;
                    var$12 = 0.30000001192092896 + $this.$field_82191_bN;
                    if (var$12 > 0.8999999761581421)
                        var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                    nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
                    $var3 = $rt_createIntArray(8).data;
                    $var3[0] = nms_Item_swordIron.$itemID0;
                    $var3[1] = nms_Item_swordDiamond.$itemID0;
                    $var3[2] = nms_Item_plateIron.$itemID0;
                    $var3[3] = nms_Item_plateDiamond.$itemID0;
                    $var3[4] = nms_Item_axeIron.$itemID0;
                    $var3[5] = nms_Item_axeDiamond.$itemID0;
                    $var3[6] = nms_Item_pickaxeIron.$itemID0;
                    $var3[7] = nms_Item_pickaxeDiamond.$itemID0;
                    $var5 = $var3.length;
                    $var6 = 0;
                    while ($var6 < $var5) {
                        $var7 = $var3[$var6];
                        $var8 = $this.$rand;
                        var$16 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var8.$seed = var$16;
                        var$13 = Long_lo(Long_shru(var$16, 24)) / 1.6777216E7;
                        var$12 = 0.05000000074505806 + $this.$field_82191_bN;
                        if (var$12 > 0.8999999761581421)
                            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
                        if (var$13 < var$12) {
                            $var11 = new nms_MerchantRecipe;
                            var$7 = new nms_ItemStack;
                            nms_ItemStack_$callClinit();
                            var$7.$itemID = $var7;
                            var$7.$stackSize = 1;
                            var$7.$itemDamage = 0;
                            var$11 = new nms_ItemStack;
                            var$17 = nms_Item_emerald;
                            var$9 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var8.$seed = var$9;
                            var$18 = Long_lo(Long_shru(var$9, 17));
                            while (true) {
                                var$19 = var$18 % 3 | 0;
                                if (((var$18 - var$19 | 0) + 2 | 0) >= 0)
                                    break;
                                var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var8.$seed = var$9;
                                var$18 = Long_lo(Long_shru(var$9, 17));
                            }
                            $var9 = 2 + var$19 | 0;
                            var$11.$itemID = var$17.$itemID0;
                            var$11.$stackSize = $var9;
                            var$11.$itemDamage = 0;
                            var$17 = new nms_ItemStack;
                            var$17.$itemID = $var7;
                            var$17.$stackSize = 1;
                            var$17.$itemDamage = 0;
                            var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var8.$seed = var$9;
                            $var10 = Long_lo(Long_shru(var$9, 17));
                            while (true) {
                                var$18 = $var10 % 15 | 0;
                                if ((($var10 - var$18 | 0) + 14 | 0) >= 0)
                                    break;
                                var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var8.$seed = var$9;
                                $var10 = Long_lo(Long_shru(var$9, 17));
                            }
                            $var8 = nms_EnchantmentHelper_addRandomEnchantment($var8, var$17, 5 + var$18 | 0);
                            $var11.$itemToBuy = var$7;
                            $var11.$secondItemToBuy = var$11;
                            $var11.$itemToSell = $var8;
                            $var11.$maxTradeUses = 7;
                            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                            var$21 = $var2.$array.data;
                            $var9 = $var2.$size0;
                            $var2.$size0 = $var9 + 1 | 0;
                            var$21[$var9] = $var11;
                            $var2.$modCount = $var2.$modCount + 1 | 0;
                        }
                        $var6 = $var6 + 1 | 0;
                    }
                    break a;
                case 3:
                    break;
                case 4:
                    break b;
                default:
                    break a;
            }
            nms_Item_$callClinit();
            $var6 = nms_Item_coal.$itemID0;
            $var8 = $this.$rand;
            var$8 = 0.699999988079071 + $this.$field_82191_bN;
            if (var$8 > 0.8999999761581421)
                var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
            nms_EntityVillager_$callClinit();
            var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8.$seed = var$9;
            if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                $var11 = new nms_MerchantRecipe;
                var$11 = new nms_ItemStack;
                $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                nms_ItemStack_$callClinit();
                var$11.$itemID = $var6;
                var$11.$stackSize = $var5;
                var$11.$itemDamage = 0;
                $var8 = nms_Item_emerald;
                var$7 = new nms_ItemStack;
                var$7.$itemID = $var8.$itemID0;
                var$7.$stackSize = 1;
                var$7.$itemDamage = 0;
                $var8 = null;
                $var11.$itemToBuy = var$11;
                $var11.$secondItemToBuy = $var8;
                $var11.$itemToSell = var$7;
                $var11.$maxTradeUses = 7;
                ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                $var3 = $var2.$array.data;
                $var5 = $var2.$size0;
                $var2.$size0 = $var5 + 1 | 0;
                $var3[$var5] = $var11;
                $var2.$modCount = $var2.$modCount + 1 | 0;
            }
            $var6 = nms_Item_ingotIron.$itemID0;
            $var8 = $this.$rand;
            var$8 = 0.5 + $this.$field_82191_bN;
            if (var$8 > 0.8999999761581421)
                var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
            var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8.$seed = var$9;
            if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                $var11 = new nms_MerchantRecipe;
                var$11 = new nms_ItemStack;
                $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                nms_ItemStack_$callClinit();
                var$11.$itemID = $var6;
                var$11.$stackSize = $var5;
                var$11.$itemDamage = 0;
                $var8 = nms_Item_emerald;
                var$7 = new nms_ItemStack;
                var$7.$itemID = $var8.$itemID0;
                var$7.$stackSize = 1;
                var$7.$itemDamage = 0;
                $var8 = null;
                $var11.$itemToBuy = var$11;
                $var11.$secondItemToBuy = $var8;
                $var11.$itemToSell = var$7;
                $var11.$maxTradeUses = 7;
                ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                $var3 = $var2.$array.data;
                $var5 = $var2.$size0;
                $var2.$size0 = $var5 + 1 | 0;
                $var3[$var5] = $var11;
                $var2.$modCount = $var2.$modCount + 1 | 0;
            }
            $var6 = nms_Item_ingotGold.$itemID0;
            $var8 = $this.$rand;
            var$8 = 0.5 + $this.$field_82191_bN;
            if (var$8 > 0.8999999761581421)
                var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
            var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8.$seed = var$9;
            if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                $var11 = new nms_MerchantRecipe;
                var$11 = new nms_ItemStack;
                $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                nms_ItemStack_$callClinit();
                var$11.$itemID = $var6;
                var$11.$stackSize = $var5;
                var$11.$itemDamage = 0;
                $var8 = nms_Item_emerald;
                var$7 = new nms_ItemStack;
                var$7.$itemID = $var8.$itemID0;
                var$7.$stackSize = 1;
                var$7.$itemDamage = 0;
                $var8 = null;
                $var11.$itemToBuy = var$11;
                $var11.$secondItemToBuy = $var8;
                $var11.$itemToSell = var$7;
                $var11.$maxTradeUses = 7;
                ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                $var3 = $var2.$array.data;
                $var5 = $var2.$size0;
                $var2.$size0 = $var5 + 1 | 0;
                $var3[$var5] = $var11;
                $var2.$modCount = $var2.$modCount + 1 | 0;
            }
            $var6 = nms_Item_diamond.$itemID0;
            $var8 = $this.$rand;
            var$8 = 0.5 + $this.$field_82191_bN;
            if (var$8 > 0.8999999761581421)
                var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
            var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8.$seed = var$9;
            if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
                $var11 = new nms_MerchantRecipe;
                var$11 = new nms_ItemStack;
                $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
                nms_ItemStack_$callClinit();
                var$11.$itemID = $var6;
                var$11.$stackSize = $var5;
                var$11.$itemDamage = 0;
                $var8 = nms_Item_emerald;
                var$7 = new nms_ItemStack;
                var$7.$itemID = $var8.$itemID0;
                var$7.$stackSize = 1;
                var$7.$itemDamage = 0;
                $var8 = null;
                $var11.$itemToBuy = var$11;
                $var11.$secondItemToBuy = $var8;
                $var11.$itemToSell = var$7;
                $var11.$maxTradeUses = 7;
                ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                $var3 = $var2.$array.data;
                $var5 = $var2.$size0;
                $var2.$size0 = $var5 + 1 | 0;
                $var3[$var5] = $var11;
                $var2.$modCount = $var2.$modCount + 1 | 0;
            }
            $var6 = nms_Item_swordIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.5 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_swordDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.5 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_axeIron.$itemID0;
            $var8 = $this.$rand;
            var$22 = 0.30000001192092896 + $this.$field_82191_bN;
            if (var$22 > 0.8999999761581421)
                var$22 = 0.8999999761581421 - (var$22 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$22);
            $var6 = nms_Item_axeDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.30000001192092896 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_pickaxeIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.5 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_pickaxeDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.5 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_shovelIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_shovelDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_hoeIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_hoeDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_bootsIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_bootsDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_helmetIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_helmetDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_plateIron.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_plateDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_legsIron.$itemID0;
            $var8 = $this.$rand;
            var$22 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$22 > 0.8999999761581421)
                var$22 = 0.8999999761581421 - (var$22 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$22);
            $var6 = nms_Item_legsDiamond.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.20000000298023224 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_bootsChain.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.10000000149011612 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_helmetChain.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.10000000149011612 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_plateChain.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.10000000149011612 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            $var6 = nms_Item_legsChain.$itemID0;
            $var8 = $this.$rand;
            var$12 = 0.10000000149011612 + $this.$field_82191_bN;
            if (var$12 > 0.8999999761581421)
                var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
            nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
            break a;
        }
        nms_Item_$callClinit();
        $var6 = nms_Item_coal.$itemID0;
        $var8 = $this.$rand;
        var$8 = 0.699999988079071 + $this.$field_82191_bN;
        if (var$8 > 0.8999999761581421)
            var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
        nms_EntityVillager_$callClinit();
        var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var8.$seed = var$9;
        if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
            $var11 = new nms_MerchantRecipe;
            var$7 = new nms_ItemStack;
            $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
            nms_ItemStack_$callClinit();
            var$7.$itemID = $var6;
            var$7.$stackSize = $var5;
            var$7.$itemDamage = 0;
            $var8 = nms_Item_emerald;
            var$11 = new nms_ItemStack;
            var$11.$itemID = $var8.$itemID0;
            var$11.$stackSize = 1;
            var$11.$itemDamage = 0;
            $var8 = null;
            $var11.$itemToBuy = var$7;
            $var11.$secondItemToBuy = $var8;
            $var11.$itemToSell = var$11;
            $var11.$maxTradeUses = 7;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            $var3 = $var2.$array.data;
            $var5 = $var2.$size0;
            $var2.$size0 = $var5 + 1 | 0;
            $var3[$var5] = $var11;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
        $var6 = nms_Item_porkRaw.$itemID0;
        $var8 = $this.$rand;
        var$8 = 0.5 + $this.$field_82191_bN;
        if (var$8 > 0.8999999761581421)
            var$8 = 0.8999999761581421 - (var$8 - 0.8999999761581421);
        var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var8.$seed = var$9;
        if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$8) {
            $var11 = new nms_MerchantRecipe;
            var$11 = new nms_ItemStack;
            $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
            nms_ItemStack_$callClinit();
            var$11.$itemID = $var6;
            var$11.$stackSize = $var5;
            var$11.$itemDamage = 0;
            $var8 = nms_Item_emerald;
            var$7 = new nms_ItemStack;
            var$7.$itemID = $var8.$itemID0;
            var$7.$stackSize = 1;
            var$7.$itemDamage = 0;
            $var8 = null;
            $var11.$itemToBuy = var$11;
            $var11.$secondItemToBuy = $var8;
            $var11.$itemToSell = var$7;
            $var11.$maxTradeUses = 7;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            $var3 = $var2.$array.data;
            $var5 = $var2.$size0;
            $var2.$size0 = $var5 + 1 | 0;
            $var3[$var5] = $var11;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
        $var6 = nms_Item_beefRaw.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.5 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var8.$seed = var$9;
        if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < var$12) {
            $var11 = new nms_MerchantRecipe;
            var$7 = new nms_ItemStack;
            $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
            nms_ItemStack_$callClinit();
            var$7.$itemID = $var6;
            var$7.$stackSize = $var5;
            var$7.$itemDamage = 0;
            $var8 = nms_Item_emerald;
            var$11 = new nms_ItemStack;
            var$11.$itemID = $var8.$itemID0;
            var$11.$stackSize = 1;
            var$11.$itemDamage = 0;
            $var8 = null;
            $var11.$itemToBuy = var$7;
            $var11.$secondItemToBuy = $var8;
            $var11.$itemToSell = var$11;
            $var11.$maxTradeUses = 7;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            $var3 = $var2.$array.data;
            $var5 = $var2.$size0;
            $var2.$size0 = $var5 + 1 | 0;
            $var3[$var5] = $var11;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
        $var6 = nms_Item_saddle.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.10000000149011612 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
        $var6 = nms_Item_plateLeather.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.30000001192092896 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
        $var6 = nms_Item_bootsLeather.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.30000001192092896 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
        $var6 = nms_Item_helmetLeather.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.30000001192092896 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
        $var6 = nms_Item_legsLeather.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.30000001192092896 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
        $var6 = nms_Item_porkCooked.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.30000001192092896 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
        $var6 = nms_Item_beefCooked.$itemID0;
        $var8 = $this.$rand;
        var$12 = 0.30000001192092896 + $this.$field_82191_bN;
        if (var$12 > 0.8999999761581421)
            var$12 = 0.8999999761581421 - (var$12 - 0.8999999761581421);
        nms_EntityVillager_addBlacksmithItem($var2, $var6, $var8, var$12);
    }
    if ($var2.$size0 ? 0 : 1) {
        nms_Item_$callClinit();
        $var6 = nms_Item_ingotGold.$itemID0;
        $var8 = $this.$rand;
        nms_EntityVillager_$callClinit();
        var$9 = Long_and(Long_add(Long_mul($var8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var8.$seed = var$9;
        if (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 < 1.0) {
            $var11 = new nms_MerchantRecipe;
            var$7 = new nms_ItemStack;
            $var5 = nms_EntityVillager_getRandomCountForItem($var6, $var8);
            nms_ItemStack_$callClinit();
            var$7.$itemID = $var6;
            var$7.$stackSize = $var5;
            var$7.$itemDamage = 0;
            $var8 = nms_Item_emerald;
            var$11 = new nms_ItemStack;
            var$11.$itemID = $var8.$itemID0;
            var$11.$stackSize = 1;
            var$11.$itemDamage = 0;
            $var8 = null;
            $var11.$itemToBuy = var$7;
            $var11.$secondItemToBuy = $var8;
            $var11.$itemToSell = var$11;
            $var11.$maxTradeUses = 7;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            $var3 = $var2.$array.data;
            $var5 = $var2.$size0;
            $var2.$size0 = $var5 + 1 | 0;
            $var3[$var5] = $var11;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
    }
    c: {
        if ($rt_isInstance($var2, ju_RandomAccess)) {
            $var5 = $var2.$size0 - 1 | 0;
            d: {
                e: {
                    f: {
                        while (true) {
                            if ($var5 <= 0)
                                break c;
                            $var6 = $var5 + 1 | 0;
                            if ($var6 <= 0) {
                                $var8 = new jl_IllegalArgumentException;
                                jl_Throwable__init_($var8);
                                $rt_throw($var8);
                            }
                            $var6 = jl_Math_randomImpl() * $var6 | 0;
                            if ($var5 < 0)
                                break d;
                            $var7 = $var2.$size0;
                            $var9 = $rt_compare($var5, $var7);
                            if ($var9 >= 0)
                                break d;
                            $var3 = $var2.$array.data;
                            $var11 = $var3[$var5];
                            if ($var6 < 0)
                                break e;
                            $var7 = $rt_compare($var6, $var7);
                            if ($var7 >= 0)
                                break e;
                            $var8 = $var3[$var6];
                            if ($var5 < 0)
                                break f;
                            if ($var9 >= 0)
                                break f;
                            $var3[$var5] = $var8;
                            if ($var6 < 0)
                                break;
                            if ($var7 >= 0)
                                break;
                            $var3[$var6] = $var11;
                            $var5 = $var5 + (-1) | 0;
                        }
                        $var8 = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_($var8);
                        $rt_throw($var8);
                    }
                    $var8 = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_($var8);
                    $rt_throw($var8);
                }
                $var8 = new jl_IndexOutOfBoundsException;
                jl_RuntimeException__init_($var8);
                $rt_throw($var8);
            }
            $var8 = new jl_IndexOutOfBoundsException;
            jl_RuntimeException__init_($var8);
            $rt_throw($var8);
        }
        $var8 = new ju_ArrayList;
        $var6 = $var2.$size0;
        if ($var6 < 0) {
            $var8 = new jl_IllegalArgumentException;
            jl_Throwable__init_($var8);
            $rt_throw($var8);
        }
        $var8.$array = $rt_createArray(jl_Object, $var6);
        $var10 = 0;
        $var9 = $var2.$modCount;
        $var2.$size();
        $var6 = 0;
        while (true) {
            $var3 = $var8.$array.data;
            $var5 = $var3.length;
            if ($var6 >= $var5) {
                $var8.$size0 = $var5;
                $var5 = $var5 - 1 | 0;
                g: {
                    h: {
                        i: {
                            while (true) {
                                if ($var5 <= 0) {
                                    $var3 = $var2.$array;
                                    $var6 = 0;
                                    $var5 = $var2.$size0;
                                    $var11 = null;
                                    if ($var6 > $var5) {
                                        $var8 = new jl_IllegalArgumentException;
                                        jl_Exception__init_($var8);
                                        $rt_throw($var8);
                                    }
                                    while ($var6 < $var5) {
                                        var$21 = $var3.data;
                                        $var7 = $var6 + 1 | 0;
                                        var$21[$var6] = $var11;
                                        $var6 = $var7;
                                    }
                                    $var2.$size0 = 0;
                                    $var2.$modCount = $var2.$modCount + 1 | 0;
                                    $var5 = 0;
                                    $var9 = $var8.$modCount;
                                    $var10 = $var8.$size();
                                    while (true) {
                                        if (!($var5 >= $var10 ? 0 : 1))
                                            break c;
                                        if ($var9 < $var8.$modCount)
                                            break;
                                        $var7 = $var5 + 1 | 0;
                                        $var11 = $var8.$get($var5);
                                        ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
                                        $var3 = $var2.$array.data;
                                        $var5 = $var2.$size0;
                                        $var2.$size0 = $var5 + 1 | 0;
                                        $var3[$var5] = $var11;
                                        $var2.$modCount = $var2.$modCount + 1 | 0;
                                        $var5 = $var7;
                                    }
                                    $var8 = new ju_ConcurrentModificationException;
                                    $var8.$suppressionEnabled = 1;
                                    $var8.$writableStackTrace = 1;
                                    $rt_throw($var8);
                                }
                                $var6 = $var5 + 1 | 0;
                                if ($var6 <= 0) {
                                    $var8 = new jl_IllegalArgumentException;
                                    jl_Throwable__init_($var8);
                                    $rt_throw($var8);
                                }
                                $var6 = jl_Math_randomImpl() * $var6 | 0;
                                if ($var5 < 0)
                                    break g;
                                $var7 = $var8.$size0;
                                $var9 = $rt_compare($var5, $var7);
                                if ($var9 >= 0)
                                    break g;
                                $var3 = $var8.$array.data;
                                var$7 = $var3[$var5];
                                if ($var6 < 0)
                                    break h;
                                $var7 = $rt_compare($var6, $var7);
                                if ($var7 >= 0)
                                    break h;
                                $var11 = $var3[$var6];
                                if ($var5 < 0)
                                    break i;
                                if ($var9 >= 0)
                                    break i;
                                $var3[$var5] = $var11;
                                if ($var6 < 0)
                                    break;
                                if ($var7 >= 0)
                                    break;
                                $var3[$var6] = var$7;
                                $var5 = $var5 + (-1) | 0;
                            }
                            $var8 = new jl_IndexOutOfBoundsException;
                            jl_RuntimeException__init_($var8);
                            $rt_throw($var8);
                        }
                        $var8 = new jl_IndexOutOfBoundsException;
                        jl_RuntimeException__init_($var8);
                        $rt_throw($var8);
                    }
                    $var8 = new jl_IndexOutOfBoundsException;
                    jl_RuntimeException__init_($var8);
                    $rt_throw($var8);
                }
                $var8 = new jl_IndexOutOfBoundsException;
                jl_RuntimeException__init_($var8);
                $rt_throw($var8);
            }
            if ($var9 < $var2.$modCount)
                break;
            $var7 = $var10 + 1 | 0;
            $var3[$var6] = $var2.$get($var10);
            $var6 = $var6 + 1 | 0;
            $var10 = $var7;
        }
        $var8 = new ju_ConcurrentModificationException;
        $var8.$suppressionEnabled = 1;
        $var8.$writableStackTrace = 1;
        $rt_throw($var8);
    }
    if ($this.$buyingList === null) {
        $var8 = new nms_MerchantRecipeList;
        $var8.$array = $rt_createArray(jl_Object, 10);
        $this.$buyingList = $var8;
    }
    $var9 = 0;
    j: {
        k: {
            l: {
                while ($var9 < $par1) {
                    $var6 = $rt_compare($var9, $var2.$size0);
                    if ($var6 >= 0)
                        break;
                    $var8 = $this.$buyingList;
                    if ($var9 < 0)
                        break j;
                    if ($var6 >= 0)
                        break j;
                    $var11 = $var2.$array.data[$var9];
                    $var6 = 0;
                    m: {
                        while (true) {
                            $var7 = $var8.$size0;
                            $var5 = $rt_compare($var6, $var7);
                            if ($var5 >= 0)
                                break;
                            if ($var6 < 0)
                                break k;
                            if ($var5 >= 0)
                                break k;
                            var$7 = $var8.$array.data[$var6];
                            if (nms_MerchantRecipe_hasSameIDsAs($var11, var$7)) {
                                if (nms_MerchantRecipe_hasSameItemsAs($var11, var$7)) {
                                    if ($var6 < 0)
                                        break l;
                                    if ($var6 >= $var8.$size0)
                                        break l;
                                    $var8.$array.data[$var6] = $var11;
                                }
                                break m;
                            }
                            $var6 = $var6 + 1 | 0;
                        }
                        ju_ArrayList_ensureCapacity($var8, $var7 + 1 | 0);
                        $var3 = $var8.$array.data;
                        $var5 = $var8.$size0;
                        $var8.$size0 = $var5 + 1 | 0;
                        $var3[$var5] = $var11;
                        $var8.$modCount = $var8.$modCount + 1 | 0;
                    }
                    $var9 = $var9 + 1 | 0;
                }
                return;
            }
            $var8 = new jl_IndexOutOfBoundsException;
            $var8.$suppressionEnabled = 1;
            $var8.$writableStackTrace = 1;
            $rt_throw($var8);
        }
        $var8 = new jl_IndexOutOfBoundsException;
        $var8.$suppressionEnabled = 1;
        $var8.$writableStackTrace = 1;
        $rt_throw($var8);
    }
    $var8 = new jl_IndexOutOfBoundsException;
    $var8.$suppressionEnabled = 1;
    $var8.$writableStackTrace = 1;
    $rt_throw($var8);
},
nms_EntityVillager_getRandomCountForItem = ($par0, $par1Random) => {
    let $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    nms_EntityVillager_$callClinit();
    $var2 = nms_EntityVillager_villagerStockList;
    if ($par0 >= (-128) && $par0 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[$par0 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = $par0;
    }
    if (var$4 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = $var2.$elementData.data;
        $var2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$5) {
                var$7 = $var2.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 === null)
        var$8 = 1;
    else {
        var$8 = $var2.$first0.$value;
        var$5 = $var2.$second.$value;
        if (var$8 < var$5) {
            $par0 = var$5 - var$8 | 0;
            var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Random.$seed = var$9;
            var$10 = Long_lo(Long_shru(var$9, 17));
            var$5 = $par0 - 1 | 0;
            if (!($par0 & var$5))
                var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt($par0), Long_fromInt(var$10)), 31));
            else
                while (true) {
                    var$11 = var$10 % $par0 | 0;
                    if (((var$10 - var$11 | 0) + var$5 | 0) >= 0)
                        break;
                    var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1Random.$seed = var$9;
                    var$10 = Long_lo(Long_shru(var$9, 17));
                }
            var$8 = var$8 + var$11 | 0;
        }
    }
    return var$8;
},
nms_EntityVillager_addBlacksmithItem = ($par0MerchantRecipeList, $par1, $par2Random, $par3) => {
    let var$5, $var4, $var5, var$8, $var6, var$10, var$11, var$12;
    nms_EntityVillager_$callClinit();
    var$5 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$5;
    if (Long_lo(Long_shru(var$5, 24)) / 1.6777216E7 < $par3) {
        $var4 = nms_EntityVillager_getRandomCountForBlacksmithItem($par1, $par2Random);
        if ($var4 >= 0) {
            $var5 = new nms_ItemStack;
            nms_Item_$callClinit();
            var$8 = nms_Item_emerald.$itemID0;
            nms_ItemStack_$callClinit();
            $var5.$itemID = var$8;
            $var5.$stackSize = $var4;
            $var5.$itemDamage = 0;
            $var6 = new nms_ItemStack;
            $var6.$itemID = $par1;
            $var6.$stackSize = 1;
            $var6.$itemDamage = 0;
        } else {
            $var5 = new nms_ItemStack;
            nms_Item_$callClinit();
            var$10 = nms_Item_emerald.$itemID0;
            nms_ItemStack_$callClinit();
            $var5.$itemID = var$10;
            $var5.$stackSize = 1;
            $var5.$itemDamage = 0;
            $var6 = new nms_ItemStack;
            $var4 =  -$var4 | 0;
            $var6.$itemID = $par1;
            $var6.$stackSize = $var4;
            $var6.$itemDamage = 0;
        }
        $par2Random = new nms_MerchantRecipe;
        var$11 = null;
        $par2Random.$itemToBuy = $var5;
        $par2Random.$secondItemToBuy = var$11;
        $par2Random.$itemToSell = $var6;
        $par2Random.$maxTradeUses = 7;
        ju_ArrayList_ensureCapacity($par0MerchantRecipeList, $par0MerchantRecipeList.$size0 + 1 | 0);
        var$12 = $par0MerchantRecipeList.$array.data;
        $var4 = $par0MerchantRecipeList.$size0;
        $par0MerchantRecipeList.$size0 = $var4 + 1 | 0;
        var$12[$var4] = $par2Random;
        $par0MerchantRecipeList.$modCount = $par0MerchantRecipeList.$modCount + 1 | 0;
    }
},
nms_EntityVillager_getRandomCountForBlacksmithItem = ($par0, $par1Random) => {
    let $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    nms_EntityVillager_$callClinit();
    $var2 = nms_EntityVillager_blacksmithSellingList;
    if ($par0 >= (-128) && $par0 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[$par0 + 128 | 0];
    } else {
        var$4 = new jl_Integer;
        var$4.$value = $par0;
    }
    if (var$4 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = $var2.$elementData.data;
        $var2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$5) {
                var$7 = $var2.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 === null)
        var$8 = 1;
    else {
        var$8 = $var2.$first0.$value;
        var$5 = $var2.$second.$value;
        if (var$8 < var$5) {
            $par0 = var$5 - var$8 | 0;
            var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1Random.$seed = var$9;
            var$10 = Long_lo(Long_shru(var$9, 17));
            var$5 = $par0 - 1 | 0;
            if (!($par0 & var$5))
                var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt($par0), Long_fromInt(var$10)), 31));
            else
                while (true) {
                    var$11 = var$10 % $par0 | 0;
                    if (((var$10 - var$11 | 0) + var$5 | 0) >= 0)
                        break;
                    var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1Random.$seed = var$9;
                    var$10 = Long_lo(Long_shru(var$9, 17));
                }
            var$8 = var$8 + var$11 | 0;
        }
    }
    return var$8;
},
nms_EntityVillager_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$2 = nms_SharedMonsterAttributes_followRange;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$2 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$4 = jl_String_hashCode(var$2.$field_111115_a);
        var$5 = var$3.$elementData.data;
        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$3 !== null && !(var$3.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$2, var$3.$key))) {
            var$3 = var$3.$next3;
        }
    }
    var$6 = var$3 === null ? null : var$3.$value0;
    var$3 = new nms_AttributeModifier;
    var$7 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05;
    var$8 = nle_ProfileUUID_randomUUID();
    var$3.$isSaved = 1;
    var$3.$id1 = var$8;
    var$3.$name3 = $rt_s(2198);
    var$3.$amount0 = var$7;
    var$3.$operation = 1;
    if ($rt_s(2198) === $rt_s(3))
        var$9 = 1;
    else if (!($rt_s(3) instanceof jl_String))
        var$9 = 0;
    else {
        var$8 = $rt_s(3);
        var$9 = $rt_s(2198).$nativeString !== var$8.$nativeString ? 0 : 1;
    }
    if (var$9) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        var$2.$message = $rt_s(1279);
        $rt_throw(var$2);
    }
    nms_ModifiableAttributeInstance_applyModifier(var$6, var$3);
    var$2 = $this.$worldObj.$rand0;
    var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$2.$seed = var$10;
    var$4 = Long_lo(Long_shru(var$10, 17));
    while (true) {
        var$11 = var$4 % 5 | 0;
        if (((var$4 - var$11 | 0) + 4 | 0) >= 0)
            break;
        var$10 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$10;
        var$4 = Long_lo(Long_shru(var$10, 17));
    }
    var$2 = $this.$dataWatcher;
    if (var$11 >= (-128) && var$11 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$11 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$11;
    }
    var$8 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$12 = jl_Integer_integerCache.data[144];
    if (var$12 === null) {
        var$8 = var$8.$elementData.data[0];
        while (var$8 !== null && var$8.$key !== null) {
            var$8 = var$8.$next3;
        }
    } else {
        var$4 = var$12.$value;
        var$5 = var$8.$elementData.data;
        var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$4) {
                var$6 = var$8.$key;
                if (var$12 !== var$6 && !(var$12 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$8 = var$8.$next3;
        }
    }
    var$6 = var$8 === null ? null : var$8.$value0;
    var$8 = var$6.$watchedObject;
    if (!(var$3 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$3.$value ? 1 : 0)) {
        var$6.$watchedObject = var$3;
        var$6.$watched = 1;
        var$2.$objectChanged = 1;
    }
    return $par1EntityLivingData;
},
nms_EntityVillager_allowLeashing = $this => {
    return 0;
},
nms_EntityVillager_createChild = ($this, $par1EntityAgeable) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityAgeable = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityAgeable = new nms_EntityVillager;
        var$2 = $this.$worldObj;
        nms_EntityVillager_$callClinit();
        var$3 = 0;
        $ptr = 1;
    case 1:
        nms_EntityVillager__init_($par1EntityAgeable, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = nms_SharedMonsterAttributes_followRange;
        if ($par1EntityAgeable.$attributeMap === null)
            $par1EntityAgeable.$attributeMap = nms_ServersideAttributeMap__init_();
        var$2 = ju_HashMap_entryByKey($par1EntityAgeable.$attributeMap.$attributes, var$2);
        var$4 = var$2 === null ? null : var$2.$value0;
        var$5 = new nms_AttributeModifier;
        var$6 = nle_EaglercraftRandom_nextGaussian($par1EntityAgeable.$rand) * 0.05;
        var$7 = nle_ProfileUUID_randomUUID();
        var$5.$isSaved = 1;
        var$5.$id1 = var$7;
        var$5.$name3 = $rt_s(2198);
        var$5.$amount0 = var$6;
        var$5.$operation = 1;
        if ($rt_s(2198) === $rt_s(3))
            var$3 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$3 = 0;
        else {
            var$7 = $rt_s(3);
            var$3 = $rt_s(2198).$nativeString !== var$7.$nativeString ? 0 : 1;
        }
        if (var$3) {
            var$2 = new jl_IllegalArgumentException;
            jl_Exception__init_0(var$2, $rt_s(1279));
            $rt_throw(var$2);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$4, var$5);
        var$2 = $par1EntityAgeable.$worldObj.$rand0;
        var$8 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$8;
        var$9 = Long_lo(Long_shru(var$8, 17));
        while (true) {
            var$10 = var$9 % 5 | 0;
            if (((var$9 - var$10 | 0) + 4 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$8;
            var$9 = Long_lo(Long_shru(var$8, 17));
        }
        var$2 = $par1EntityAgeable.$dataWatcher;
        if (var$10 >= (-128) && var$10 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[var$10 + 128 | 0];
        } else {
            var$5 = new jl_Integer;
            var$5.$value = var$10;
        }
        var$4 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[144];
        if (var$7 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$3 = jl_Integer_hashCode(var$7.$value);
            var$11 = var$4.$elementData.data;
            var$4 = var$11[var$3 & (var$11.length - 1 | 0)];
            while (var$4 !== null && !(var$4.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$7, var$4.$key))) {
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        var$7 = var$4.$watchedObject;
        if (!(var$5 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5.$value ? 1 : 0)) {
            var$4.$watchedObject = var$5;
            var$4.$watched = 1;
            var$2.$objectChanged = 1;
        }
        return $par1EntityAgeable;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityAgeable, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityVillager__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityVillager_villagerStockList = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityVillager_blacksmithSellingList = var$1;
    var$5 = nms_EntityVillager_villagerStockList;
    nms_Item_$callClinit();
    var$2 = nms_Item_coal.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$6 = new jl_Integer;
        var$6.$value = var$2;
    }
    var$1 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[144];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[152];
    var$1.$first0 = var$7;
    var$1.$second = var$8;
    ju_HashMap_putImpl(var$5, var$6, var$1);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_ingotIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[136];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[138];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_ingotGold.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[136];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[138];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_diamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[132];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[134];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_paper.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[152];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[164];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_book.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[139];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[141];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_writtenBook.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[129];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[129];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_enderPearl.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[131];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[132];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_eyeOfEnder.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[130];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[131];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_porkRaw.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[142];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[146];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_beefRaw.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[142];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[146];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_chickenRaw.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[142];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[146];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_fishCooked.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[137];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[141];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_seeds.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[162];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[176];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_melonSeeds.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[158];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[166];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_pumpkinSeeds.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[158];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[166];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_wheat.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[146];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[150];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    nms_Block_$callClinit();
    var$2 = nms_Block_cloth.$blockID;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[142];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[150];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_villagerStockList;
    var$2 = nms_Item_rottenFlesh.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[164];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[192];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_flintAndSteel.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[131];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[132];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_shears.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[131];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[132];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_swordIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[135];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[139];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_swordDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[140];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[142];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_axeIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[134];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[136];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_axeDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[137];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[140];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_pickaxeIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[135];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[137];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_pickaxeDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[138];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[140];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_shovelIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[132];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[134];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_shovelDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[135];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[136];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_hoeIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[132];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[134];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_hoeDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[135];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[136];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_bootsIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[132];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[134];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_bootsDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[135];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[136];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_helmetIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[132];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[134];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_helmetDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[135];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[136];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_plateIron.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = var$2;
    }
    var$6 = new nms_Tuple;
    jl_Integer_ensureIntegerCache();
    var$7 = jl_Integer_integerCache.data[138];
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[142];
    var$6.$first0 = var$7;
    var$6.$second = var$8;
    ju_HashMap_putImpl(var$1, var$5, var$6);
    var$1 = nms_EntityVillager_blacksmithSellingList;
    var$2 = nms_Item_plateDiamond.$itemID0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else
        var$5 = jl_Integer__init_(var$2);
    ju_HashMap_put(var$1, var$5, nms_Tuple__init_(jl_Integer_valueOf(16), jl_Integer_valueOf(19)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_legsIron.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(8), jl_Integer_valueOf(10)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_legsDiamond.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(11), jl_Integer_valueOf(14)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_bootsChain.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(5), jl_Integer_valueOf(7)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_helmetChain.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(5), jl_Integer_valueOf(7)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_plateChain.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(11), jl_Integer_valueOf(15)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_legsChain.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(9), jl_Integer_valueOf(11)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_bread.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-4)), jl_Integer_valueOf((-2))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_melon.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-8)), jl_Integer_valueOf((-4))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_appleRed.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-8)), jl_Integer_valueOf((-4))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_cookie.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-10)), jl_Integer_valueOf((-7))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Block_glass.$blockID), nms_Tuple__init_(jl_Integer_valueOf((-5)), jl_Integer_valueOf((-3))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Block_bookShelf.$blockID), nms_Tuple__init_(jl_Integer_valueOf(3), jl_Integer_valueOf(4)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_plateLeather.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(4), jl_Integer_valueOf(5)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_bootsLeather.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(2), jl_Integer_valueOf(4)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_helmetLeather.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(2), jl_Integer_valueOf(4)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_legsLeather.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(2), jl_Integer_valueOf(4)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_saddle.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(6), jl_Integer_valueOf(8)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_expBottle.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-4)), jl_Integer_valueOf((-1))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_redstone.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-4)), jl_Integer_valueOf((-1))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_compass.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(10), jl_Integer_valueOf(12)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_pocketSundial.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(10), jl_Integer_valueOf(12)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Block_glowStone.$blockID), nms_Tuple__init_(jl_Integer_valueOf((-3)), jl_Integer_valueOf((-1))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_porkCooked.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-7)), jl_Integer_valueOf((-5))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_beefCooked.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-7)), jl_Integer_valueOf((-5))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_chickenCooked.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-8)), jl_Integer_valueOf((-6))));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_eyeOfEnder.$itemID0), nms_Tuple__init_(jl_Integer_valueOf(7), jl_Integer_valueOf(11)));
    ju_HashMap_put(nms_EntityVillager_blacksmithSellingList, jl_Integer_valueOf(nms_Item_arrow.$itemID0), nms_Tuple__init_(jl_Integer_valueOf((-12)), jl_Integer_valueOf((-8))));
};
function nms_EntityAIMoveTowardsRestriction() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntity0 = null;
    a.$movePosX0 = 0.0;
    a.$movePosY0 = 0.0;
    a.$movePosZ0 = 0.0;
    a.$movementSpeed = 0.0;
}
let nms_EntityAIMoveTowardsRestriction_shouldExecute = $this => {
    let $var2, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$theEntity0;
        var$2 = $var2.$posX;
        var$3 = var$2 | 0;
        if (var$2 < var$3)
            var$3 = var$3 - 1 | 0;
        var$2 = $var2.$posY;
        var$4 = var$2 | 0;
        if (var$2 < var$4)
            var$4 = var$4 - 1 | 0;
        var$2 = $var2.$posZ;
        var$5 = var$2 | 0;
        if (var$2 < var$5)
            var$5 = var$5 - 1 | 0;
        var$6 = $var2.$maximumHomeDistance;
        if (var$6 === (-1.0))
            var$7 = 1;
        else {
            var$8 = $var2.$homePosition;
            var$9 = var$8.$posX0 - var$3 | 0;
            var$10 = var$8.$posY0 - var$4 | 0;
            var$11 = var$8.$posZ0 - var$5 | 0;
            var$7 = var$9 * var$9 + var$10 * var$10 + var$11 * var$11 >= var$6 * var$6 ? 0 : 1;
        }
        if (var$7)
            return 0;
        $var1 = $var2.$homePosition;
        var$7 = 16;
        var$5 = 7;
        var$8 = nms_Vec3Pool_getVecFromPool($var2.$worldObj.$vecPool, $var1.$posX0, $var1.$posY0, $var1.$posZ0);
        nms_RandomPositionGenerator_$callClinit();
        $var1 = nms_RandomPositionGenerator_staticVector;
        $var1.$xCoord = var$8.$xCoord - $var2.$posX;
        $var1.$yCoord = var$8.$yCoord - $var2.$posY;
        $var1.$zCoord = var$8.$zCoord - $var2.$posZ;
        $ptr = 1;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var2, var$7, var$5, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 === null)
            return 0;
        $this.$movePosX0 = $var2.$xCoord;
        $this.$movePosY0 = $var2.$yCoord;
        $this.$movePosZ0 = $var2.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var1, $ptr);
},
nms_EntityAIMoveTowardsRestriction_continueExecuting = $this => {
    let var$1;
    var$1 = $this.$theEntity0.$navigator.$currentPath;
    return (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
},
nms_EntityAIMoveTowardsRestriction_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity0.$navigator;
        var$2 = $this.$movePosX0;
        var$3 = $this.$movePosY0;
        var$4 = $this.$movePosZ0;
        var$5 = $this.$movementSpeed;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$8 = var$1.$theEntity;
        if (var$8.$onGround)
            var$9 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$8 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$8, var$10, var$9, var$6, var$11, var$13, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
};
function nms_EntityAIMoveThroughVillage() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntity2 = null;
    a.$movementSpeed0 = 0.0;
    a.$entityPathNavigate = null;
    a.$doorInfo = null;
    a.$isNocturnal = 0;
    a.$doorList = null;
}
let nms_EntityAIMoveThroughVillage_shouldExecute = $this => {
    let $var1, $var3, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$doorList;
        if ($var1.$size0 > 15)
            ju_ArrayList_remove($var1, 0);
        if ($this.$isNocturnal && ($this.$theEntity2.$worldObj.$skylightSubtracted >= 4 ? 0 : 1))
            return 0;
        $var1 = $this.$theEntity2;
        $var3 = $var1.$worldObj.$villageCollectionObj;
        var$3 = $var1.$posX;
        var$4 = var$3 | 0;
        if (var$3 < var$4)
            var$4 = var$4 - 1 | 0;
        var$3 = $var1.$posY;
        $var2 = var$3 | 0;
        if (var$3 < $var2)
            $var2 = $var2 - 1 | 0;
        var$3 = $var1.$posZ;
        var$6 = var$3 | 0;
        if (var$3 < var$6)
            var$6 = var$6 - 1 | 0;
        $var1 = nms_VillageCollection_findNearestVillage($var3, var$4, $var2, var$6, 0);
        if ($var1 === null)
            return 0;
        $var1 = nms_EntityAIMoveThroughVillage_func_75412_a($this, $var1);
        $this.$doorInfo = $var1;
        if ($var1 === null)
            return 0;
        var$7 = $this.$theEntity2.$navigator;
        $var2 = var$7.$canPassClosedWoodenDoors;
        var$7.$canPassClosedWoodenDoors = 0;
        var$3 = $var1.$posX2;
        var$8 = $var1.$posY2;
        var$9 = $var1.$posZ2;
        $var1 = var$7.$theEntity;
        if ($var1.$onGround)
            var$10 = 1;
        else {
            if (var$7.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$10 = 0;
        }
        if (!var$10) {
            var$7 = null;
            $this.$entityPathNavigate = var$7;
            $var1 = $this.$theEntity2;
            $var1.$navigator.$canPassClosedWoodenDoors = $var2;
            if (var$7 !== null)
                return 1;
            var$10 = 10;
            var$6 = 7;
            $var3 = $var1.$worldObj.$vecPool;
            var$7 = $this.$doorInfo;
            $var3 = nms_Vec3Pool_getVecFromPool($var3, var$7.$posX2, var$7.$posY2, var$7.$posZ2);
            nms_RandomPositionGenerator_$callClinit();
            var$7 = nms_RandomPositionGenerator_staticVector;
            var$7.$xCoord = $var3.$xCoord - $var1.$posX;
            var$7.$yCoord = $var3.$yCoord - $var1.$posY;
            var$7.$zCoord = $var3.$zCoord - $var1.$posZ;
            $ptr = 3;
            continue main;
        }
        $var1 = var$7.$worldObj3;
        $var3 = var$7.$theEntity;
        var$11 = var$3 | 0;
        if (var$3 < var$11)
            var$11 = var$11 - 1 | 0;
        var$10 = var$8 | 0;
        var$4 = var$9 | 0;
        if (var$9 < var$4)
            var$4 = var$4 - 1 | 0;
        var$12 = var$7.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$6 = var$7.$canPassOpenWoodenDoors;
        var$14 = var$7.$canPassClosedWoodenDoors;
        var$15 = var$7.$avoidsWater;
        var$16 = var$7.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = $var1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (!var$10) {
            $var1 = var$7.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$7 = null;
            $this.$entityPathNavigate = var$7;
            $var1 = $this.$theEntity2;
            $var1.$navigator.$canPassClosedWoodenDoors = $var2;
            if (var$7 !== null)
                return 1;
            var$10 = 10;
            var$6 = 7;
            $var3 = $var1.$worldObj.$vecPool;
            var$7 = $this.$doorInfo;
            $var3 = nms_Vec3Pool_getVecFromPool($var3, var$7.$posX2, var$7.$posY2, var$7.$posZ2);
            nms_RandomPositionGenerator_$callClinit();
            var$7 = nms_RandomPositionGenerator_staticVector;
            var$7.$xCoord = $var3.$xCoord - $var1.$posX;
            var$7.$yCoord = $var3.$yCoord - $var1.$posY;
            var$7.$zCoord = $var3.$zCoord - $var1.$posZ;
            $ptr = 3;
            continue main;
        }
        $var1 = var$7.$worldObj3;
        $var3 = var$7.$theEntity;
        var$11 = var$3 | 0;
        if (var$3 < var$11)
            var$11 = var$11 - 1 | 0;
        var$10 = var$8 | 0;
        var$4 = var$9 | 0;
        if (var$9 < var$4)
            var$4 = var$4 - 1 | 0;
        var$12 = var$7.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$6 = var$7.$canPassOpenWoodenDoors;
        var$14 = var$7.$canPassClosedWoodenDoors;
        var$15 = var$7.$avoidsWater;
        var$16 = var$7.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = $var1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (!((var$10 ? 1 : 0) ? 1 : 0)) {
            var$7 = null;
            $this.$entityPathNavigate = var$7;
            $var1 = $this.$theEntity2;
            $var1.$navigator.$canPassClosedWoodenDoors = $var2;
            if (var$7 !== null)
                return 1;
            var$10 = 10;
            var$6 = 7;
            $var3 = $var1.$worldObj.$vecPool;
            var$7 = $this.$doorInfo;
            $var3 = nms_Vec3Pool_getVecFromPool($var3, var$7.$posX2, var$7.$posY2, var$7.$posZ2);
            nms_RandomPositionGenerator_$callClinit();
            var$7 = nms_RandomPositionGenerator_staticVector;
            var$7.$xCoord = $var3.$xCoord - $var1.$posX;
            var$7.$yCoord = $var3.$yCoord - $var1.$posY;
            var$7.$zCoord = $var3.$zCoord - $var1.$posZ;
            $ptr = 3;
            continue main;
        }
        $var1 = var$7.$worldObj3;
        $var3 = var$7.$theEntity;
        var$11 = var$3 | 0;
        if (var$3 < var$11)
            var$11 = var$11 - 1 | 0;
        var$10 = var$8 | 0;
        var$4 = var$9 | 0;
        if (var$9 < var$4)
            var$4 = var$4 - 1 | 0;
        var$12 = var$7.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$6 = var$7.$canPassOpenWoodenDoors;
        var$14 = var$7.$canPassClosedWoodenDoors;
        var$15 = var$7.$avoidsWater;
        var$16 = var$7.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$10, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 === null)
            return 0;
        var$12 = $this.$theEntity2.$navigator;
        var$12.$canPassClosedWoodenDoors = 0;
        var$3 = $var3.$xCoord;
        var$8 = $var3.$yCoord;
        var$9 = $var3.$zCoord;
        $var1 = var$12.$theEntity;
        if ($var1.$onGround)
            var$10 = 1;
        else {
            if (var$12.$canSwim) {
                $ptr = 5;
                continue main;
            }
            var$10 = 0;
        }
        if (!var$10) {
            $var3 = null;
            $this.$entityPathNavigate = $var3;
            $this.$theEntity2.$navigator.$canPassClosedWoodenDoors = $var2;
            return $var3 === null ? 0 : 1;
        }
        $var1 = var$12.$worldObj3;
        $var3 = var$12.$theEntity;
        var$16 = var$3 | 0;
        if (var$3 < var$16)
            var$16 = var$16 - 1 | 0;
        var$10 = var$8 | 0;
        var$15 = var$9 | 0;
        if (var$9 < var$15)
            var$15 = var$15 - 1 | 0;
        var$7 = var$12.$pathSearchRange;
        if (var$7.$field_111133_g) {
            var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
            var$7.$field_111133_g = 0;
        }
        var$13 = var$7.$field_111139_h;
        var$6 = var$12.$canPassOpenWoodenDoors;
        var$4 = var$12.$canPassClosedWoodenDoors;
        var$11 = var$12.$avoidsWater;
        var$14 = var$12.$canSwim;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ($var1, $var3, var$11, var$10, var$4, var$13, var$6, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $this.$entityPathNavigate = var$7;
        $var1 = $this.$theEntity2;
        $var1.$navigator.$canPassClosedWoodenDoors = $var2;
        if (var$7 !== null)
            return 1;
        var$10 = 10;
        var$6 = 7;
        $var3 = $var1.$worldObj.$vecPool;
        var$7 = $this.$doorInfo;
        $var3 = nms_Vec3Pool_getVecFromPool($var3, var$7.$posX2, var$7.$posY2, var$7.$posZ2);
        nms_RandomPositionGenerator_$callClinit();
        var$7 = nms_RandomPositionGenerator_staticVector;
        var$7.$xCoord = $var3.$xCoord - $var1.$posX;
        var$7.$yCoord = $var3.$yCoord - $var1.$posY;
        var$7.$zCoord = $var3.$zCoord - $var1.$posZ;
        $ptr = 3;
        continue main;
    case 5:
        $tmp = $var1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (!var$10) {
            $var1 = var$12.$theEntity;
            $ptr = 6;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            $var3 = null;
            $this.$entityPathNavigate = $var3;
            $this.$theEntity2.$navigator.$canPassClosedWoodenDoors = $var2;
            return $var3 === null ? 0 : 1;
        }
        $var1 = var$12.$worldObj3;
        $var3 = var$12.$theEntity;
        var$16 = var$3 | 0;
        if (var$3 < var$16)
            var$16 = var$16 - 1 | 0;
        var$10 = var$8 | 0;
        var$15 = var$9 | 0;
        if (var$9 < var$15)
            var$15 = var$15 - 1 | 0;
        var$7 = var$12.$pathSearchRange;
        if (var$7.$field_111133_g) {
            var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
            var$7.$field_111133_g = 0;
        }
        var$13 = var$7.$field_111139_h;
        var$6 = var$12.$canPassOpenWoodenDoors;
        var$4 = var$12.$canPassClosedWoodenDoors;
        var$11 = var$12.$avoidsWater;
        var$14 = var$12.$canSwim;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = $var1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (!((var$10 ? 1 : 0) ? 1 : 0)) {
            $var3 = null;
            $this.$entityPathNavigate = $var3;
            $this.$theEntity2.$navigator.$canPassClosedWoodenDoors = $var2;
            return $var3 === null ? 0 : 1;
        }
        $var1 = var$12.$worldObj3;
        $var3 = var$12.$theEntity;
        var$16 = var$3 | 0;
        if (var$3 < var$16)
            var$16 = var$16 - 1 | 0;
        var$10 = var$8 | 0;
        var$15 = var$9 | 0;
        if (var$9 < var$15)
            var$15 = var$15 - 1 | 0;
        var$7 = var$12.$pathSearchRange;
        if (var$7.$field_111133_g) {
            var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
            var$7.$field_111133_g = 0;
        }
        var$13 = var$7.$field_111139_h;
        var$6 = var$12.$canPassOpenWoodenDoors;
        var$4 = var$12.$canPassClosedWoodenDoors;
        var$11 = var$12.$avoidsWater;
        var$14 = var$12.$canSwim;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getEntityPathToXYZ($var1, $var3, var$16, var$10, var$15, var$13, var$6, var$4, var$11, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $this.$entityPathNavigate = $var3;
        $this.$theEntity2.$navigator.$canPassClosedWoodenDoors = $var2;
        return $var3 === null ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var3, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityAIMoveThroughVillage_continueExecuting = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6;
    var$1 = $this.$theEntity2;
    var$2 = var$1.$navigator.$currentPath;
    if (var$2 !== null && !(var$2.$currentPathIndex < var$2.$pathLength ? 0 : 1) ? 0 : 1)
        return 0;
    $var1 = var$1.$width + 4.0;
    var$2 = $this.$doorInfo;
    var$4 = var$2.$posX2;
    var$5 = var$2.$posY2;
    var$6 = var$2.$posZ2;
    var$4 = var$1.$posX - var$4;
    var$5 = var$1.$posY - var$5;
    var$6 = var$1.$posZ - var$6;
    return var$4 * var$4 + var$5 * var$5 + var$6 * var$6 <= $var1 * $var1 ? 0 : 1;
},
nms_EntityAIMoveThroughVillage_startExecuting = $this => {
    let var$1, var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity2.$navigator;
        var$2 = $this.$entityPathNavigate;
        var$3 = $this.$movementSpeed0;
        $ptr = 1;
    case 1:
        nms_PathNavigate_setPath(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $ptr);
},
nms_EntityAIMoveThroughVillage_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$theEntity2;
    var$2 = var$1.$navigator.$currentPath;
    var$3 = var$2 !== null && !(var$2.$currentPathIndex < var$2.$pathLength ? 0 : 1) ? 0 : 1;
    a: {
        if (!var$3) {
            var$2 = $this.$doorInfo;
            var$4 = var$2.$posX2;
            var$5 = var$2.$posY2;
            var$6 = var$2.$posZ2;
            var$4 = var$1.$posX - var$4;
            var$5 = var$1.$posY - var$5;
            var$6 = var$1.$posZ - var$6;
            if (var$4 * var$4 + var$5 * var$5 + var$6 * var$6 >= 16.0)
                break a;
        }
        var$1 = $this.$doorList;
        var$2 = $this.$doorInfo;
        ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
        var$7 = var$1.$array.data;
        var$8 = var$1.$size0;
        var$1.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$2;
        var$1.$modCount = var$1.$modCount + 1 | 0;
    }
},
nms_EntityAIMoveThroughVillage_func_75412_a = ($this, $par1Village) => {
    let $var2, $var3, $var4, $var5$index, var$6, var$7, $var5$index_0, $var6, var$10, var$11, var$12, var$13, $var7;
    $var2 = null;
    $var3 = 2147483647;
    $var4 = $par1Village.$villageDoorInfoList;
    $var5$index = 0;
    var$6 = $var4.$modCount;
    var$7 = $var4.$size();
    while ($var5$index >= var$7 ? 0 : 1) {
        if (var$6 < $var4.$modCount) {
            $par1Village = new ju_ConcurrentModificationException;
            $par1Village.$suppressionEnabled = 1;
            $par1Village.$writableStackTrace = 1;
            $rt_throw($par1Village);
        }
        $var5$index_0 = $var5$index + 1 | 0;
        $var6 = $var4.$get($var5$index);
        $par1Village = $this.$theEntity2;
        var$10 = $par1Village.$posX;
        var$11 = var$10 | 0;
        if (var$10 < var$11)
            var$11 = var$11 - 1 | 0;
        var$10 = $par1Village.$posY;
        $var5$index = var$10 | 0;
        if (var$10 < $var5$index)
            $var5$index = $var5$index - 1 | 0;
        var$12 = $par1Village.$posZ;
        var$13 = var$12 | 0;
        if (var$12 < var$13)
            var$13 = var$13 - 1 | 0;
        var$11 = var$11 - $var6.$posX2 | 0;
        $var7 = $var5$index - $var6.$posY2 | 0;
        $var5$index = var$13 - $var6.$posZ2 | 0;
        $var7 = ($rt_imul(var$11, var$11) + $rt_imul($var7, $var7) | 0) + $rt_imul($var5$index, $var5$index) | 0;
        if ($var7 < $var3 && !nms_EntityAIMoveThroughVillage_func_75413_a($this, $var6)) {
            $var2 = $var6;
            $var3 = $var7;
        }
        $var5$index = $var5$index_0;
    }
    return $var2;
},
nms_EntityAIMoveThroughVillage_func_75413_a = ($this, $par1VillageDoorInfo) => {
    let var$2, $var2$index, var$4, var$5, $var2$index_0, $var3;
    var$2 = $this.$doorList;
    $var2$index = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    while (true) {
        if (!($var2$index >= var$5 ? 0 : 1))
            return 0;
        if (var$4 < var$2.$modCount) {
            $par1VillageDoorInfo = new ju_ConcurrentModificationException;
            $par1VillageDoorInfo.$suppressionEnabled = 1;
            $par1VillageDoorInfo.$writableStackTrace = 1;
            $rt_throw($par1VillageDoorInfo);
        }
        $var2$index_0 = $var2$index + 1 | 0;
        $var3 = var$2.$get($var2$index);
        if ($par1VillageDoorInfo.$posX2 != $var3.$posX2) {
            $var2$index = $var2$index_0;
            continue;
        }
        if ($par1VillageDoorInfo.$posY2 != $var3.$posY2) {
            $var2$index = $var2$index_0;
            continue;
        }
        if ($par1VillageDoorInfo.$posZ2 == $var3.$posZ2)
            break;
        $var2$index = $var2$index_0;
    }
    return 1;
};
function nms_EntityAIWander() {
    let a = this; nms_EntityAIBase.call(a);
    a.$entity = null;
    a.$xPosition16 = 0.0;
    a.$yPosition13 = 0.0;
    a.$zPosition14 = 0.0;
    a.$speed = 0.0;
}
let nms_EntityAIWander_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$entity;
        if ($var1.$entityAge >= 100)
            return 0;
        var$2 = $var1.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 120 | 0;
            if (((var$4 - var$5 | 0) + 119 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        if (var$5)
            return 0;
        var$6 = 10;
        var$7 = 7;
        nms_RandomPositionGenerator_$callClinit();
        var$2 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$6, var$7, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        $this.$xPosition16 = $var1.$xCoord;
        $this.$yPosition13 = $var1.$yCoord;
        $this.$zPosition14 = $var1.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityAIWander_continueExecuting = $this => {
    let var$1;
    var$1 = $this.$entity.$navigator.$currentPath;
    return (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
},
nms_EntityAIWander_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$entity.$navigator;
        var$2 = $this.$xPosition16;
        var$3 = $this.$yPosition13;
        var$4 = $this.$zPosition14;
        var$5 = $this.$speed;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$8 = var$1.$theEntity;
        if (var$8.$onGround)
            var$9 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$8 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$8, var$10, var$9, var$6, var$11, var$13, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
};
function nms_EntityAIWatchClosest() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theWatcher = null;
    a.$closestEntity = null;
    a.$maxDistanceForPlayer = 0.0;
    a.$lookTime = 0;
    a.$field_75331_e = 0.0;
    a.$watchedClass = null;
}
let nms_EntityAIWatchClosest_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theWatcher;
        var$2 = var$1.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        if (Long_lo(Long_shru(var$3, 24)) / 1.6777216E7 >= $this.$field_75331_e)
            return 0;
        var$2 = var$1.$attackTarget;
        if (var$2 !== null)
            $this.$closestEntity = var$2;
        var$2 = $this.$watchedClass;
        if (var$2 === $rt_cls(nms_EntityPlayer)) {
            var$2 = var$1.$worldObj;
            var$4 = $this.$maxDistanceForPlayer;
            $this.$closestEntity = nms_World_getClosestPlayer(var$2, var$1.$posX, var$1.$posY, var$1.$posZ, var$4);
            return $this.$closestEntity === null ? 0 : 1;
        }
        var$5 = var$1.$worldObj;
        var$1 = var$1.$boundingBox0;
        var$6 = $this.$maxDistanceForPlayer;
        var$7 = var$1.$minX0 - var$6;
        var$8 = var$1.$minY0 - 3.0;
        var$9 = var$1.$minZ0 - var$6;
        var$10 = var$1.$maxX0 + var$6;
        var$4 = var$1.$maxY + 3.0;
        var$6 = var$1.$maxZ0 + var$6;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = var$11.$nextPoolIndex;
        var$1 = var$11.$listAABB;
        var$13 = var$1.$size0;
        var$14 = $rt_compare(var$12, var$13);
        if (var$14 >= 0) {
            var$15 = new nms_AxisAlignedBB;
            var$15.$minX0 = var$7;
            var$15.$minY0 = var$8;
            var$15.$minZ0 = var$9;
            var$15.$maxX0 = var$10;
            var$15.$maxY = var$4;
            var$15.$maxZ0 = var$6;
            ju_ArrayList_ensureCapacity(var$1, var$13 + 1 | 0);
            var$16 = var$1.$array.data;
            var$14 = var$1.$size0;
            var$1.$size0 = var$14 + 1 | 0;
            var$16[var$14] = var$15;
            var$1.$modCount = var$1.$modCount + 1 | 0;
        } else if (var$12 >= 0 && var$14 < 0) {
            var$15 = var$1.$array.data[var$12];
            var$15.$minX0 = var$7;
            var$15.$minY0 = var$8;
            var$15.$minZ0 = var$9;
            var$15.$maxX0 = var$10;
            var$15.$maxY = var$4;
            var$15.$maxZ0 = var$6;
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        var$1 = $this.$theWatcher;
        var$11 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$5, var$2, var$15, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        var$2 = null;
        var$4 = 1.7976931348623157E308;
        var$12 = 0;
        a: {
            while (true) {
                var$14 = $rt_compare(var$12, var$15.$size0);
                if (var$14 >= 0)
                    break;
                if (var$12 < 0)
                    break a;
                if (var$14 >= 0)
                    break a;
                var$5 = var$15.$array.data[var$12];
                if (var$5 !== var$1) {
                    var$6 = var$1.$posX - var$5.$posX;
                    var$7 = var$1.$posY - var$5.$posY;
                    var$8 = var$1.$posZ - var$5.$posZ;
                    var$6 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8;
                    if (var$6 <= var$4) {
                        var$2 = var$5;
                        var$4 = var$6;
                    }
                }
                var$12 = var$12 + 1 | 0;
            }
            $this.$closestEntity = var$2;
            return $this.$closestEntity === null ? 0 : 1;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityAIWatchClosest_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    if (!$this.$closestEntity.$isEntityAlive())
        var$1 = 0;
    else {
        var$2 = $this.$theWatcher;
        var$3 = $this.$closestEntity;
        var$4 = var$2.$posX - var$3.$posX;
        var$5 = var$2.$posY - var$3.$posY;
        var$6 = var$2.$posZ - var$3.$posZ;
        var$5 = var$4 * var$4 + var$5 * var$5 + var$6 * var$6;
        var$7 = $this.$maxDistanceForPlayer;
        var$1 = var$5 > var$7 * var$7 ? 0 : $this.$lookTime <= 0 ? 0 : 1;
    }
    return var$1;
},
nms_EntityAIWatchClosest_startExecuting = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$theWatcher.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 40 | 0;
        if (((var$3 - var$4 | 0) + 39 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    $this.$lookTime = 40 + var$4 | 0;
},
nms_EntityAIWatchClosest_resetTask = $this => {
    $this.$closestEntity = null;
},
nms_EntityAIWatchClosest_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $this.$theWatcher.$lookHelper;
    var$2 = $this.$closestEntity;
    var$3 = var$2.$posX;
    var$4 = var$2.$posY + var$2.$getEyeHeight();
    var$5 = $this.$closestEntity.$posZ;
    var$6 = $this.$theWatcher.$getVerticalFaceSpeed();
    var$1.$posX6 = var$3;
    var$1.$posY5 = var$4;
    var$1.$posZ6 = var$5;
    var$1.$deltaLookYaw = 10.0;
    var$1.$deltaLookPitch = var$6;
    var$1.$isLooking = 1;
    $this.$lookTime = $this.$lookTime - 1 | 0;
};
function nms_EntityAILookIdle() {
    let a = this; nms_EntityAIBase.call(a);
    a.$idleEntity = null;
    a.$lookX = 0.0;
    a.$lookZ = 0.0;
    a.$idleTime = 0;
}
let nms_EntityAILookIdle_shouldExecute = $this => {
    let var$1, var$2;
    var$1 = $this.$idleEntity.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    return Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 >= 0.019999999552965164 ? 0 : 1;
},
nms_EntityAILookIdle_continueExecuting = $this => {
    return $this.$idleTime < 0 ? 0 : 1;
},
nms_EntityAILookIdle_startExecuting = $this => {
    let var$1, var$2, var$3, $var1, var$5, var$6;
    var$1 = $this.$idleEntity.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$3 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$2, 22))), 27);
    var$2 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    $var1 = 6.283185307179586 * Long_toNumber(Long_add(var$3, Long_fromInt(Long_lo(Long_shru(var$2, 21))))) * 1.1102230246251565E-16;
    $this.$lookX = jl_Math_cos($var1);
    $this.$lookZ = jl_Math_sin($var1);
    var$1 = $this.$idleEntity.$rand;
    var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$3;
    var$5 = Long_lo(Long_shru(var$3, 17));
    while (true) {
        var$6 = var$5 % 20 | 0;
        if (((var$5 - var$6 | 0) + 19 | 0) >= 0)
            break;
        var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$3;
        var$5 = Long_lo(Long_shru(var$3, 17));
    }
    $this.$idleTime = 20 + var$6 | 0;
},
nms_EntityAILookIdle_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    $this.$idleTime = $this.$idleTime - 1 | 0;
    var$1 = $this.$idleEntity;
    var$2 = var$1.$lookHelper;
    var$3 = var$1.$posX + $this.$lookX;
    var$4 = var$1.$posY + var$1.$getEyeHeight();
    var$1 = $this.$idleEntity;
    var$5 = var$1.$posZ + $this.$lookZ;
    var$6 = var$1.$getVerticalFaceSpeed();
    var$2.$posX6 = var$3;
    var$2.$posY5 = var$4;
    var$2.$posZ6 = var$5;
    var$2.$deltaLookYaw = 10.0;
    var$2.$deltaLookPitch = var$6;
    var$2.$isLooking = 1;
};
function nms_EntityAITarget() {
    let a = this; nms_EntityAIBase.call(a);
    a.$taskOwner = null;
    a.$shouldCheckSight = 0;
    a.$nearbyOnly = 0;
    a.$targetSearchStatus = 0;
    a.$targetSearchDelay = 0;
    a.$field_75298_g = 0;
}
let nms_EntityAITarget_continueExecuting = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$taskOwner.$attackTarget;
        if ($var1 === null)
            return 0;
        a: {
            if (!$var1.$isDead) {
                var$2 = $var1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[134];
                if (var$3 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$4 = var$3.$value;
                    var$5 = var$2.$elementData.data;
                    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$4) {
                            var$6 = var$2.$key;
                            if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                if ((var$2 === null ? null : var$2.$value0).$watchedObject.$value3 > 0.0) {
                    var$7 = 1;
                    break a;
                }
            }
            var$7 = 0;
        }
        if (!var$7)
            return 0;
        $var2 = nms_EntityAITarget_getTargetDistance($this);
        var$2 = $this.$taskOwner;
        var$9 = var$2.$posX - $var1.$posX;
        var$10 = var$2.$posY - $var1.$posY;
        var$11 = var$2.$posZ - $var1.$posZ;
        if (var$9 * var$9 + var$10 * var$10 + var$11 * var$11 > $var2 * $var2)
            return 0;
        if ($this.$shouldCheckSight) {
            var$6 = var$2.$senses;
            var$2 = var$6.$seenEntities;
            var$7 = 0;
            var$4 = var$2.$modCount;
            var$12 = var$2.$size();
            b: {
                while (true) {
                    if (!(var$7 >= var$12 ? 0 : 1)) {
                        var$7 = 0;
                        break b;
                    }
                    if (var$4 < var$2.$modCount)
                        break;
                    var$13 = var$7 + 1 | 0;
                    var$3 = var$2.$get(var$7);
                    if (var$3 === $var1 ? 1 : var$3 !== null ? var$3.$equals($var1) : $var1 !== null ? 0 : 1) {
                        var$7 = 1;
                        break b;
                    }
                    var$7 = var$13;
                }
                var$2 = new ju_ConcurrentModificationException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$2);
                $rt_throw(var$2);
            }
            if (var$7)
                var$7 = 1;
            else {
                var$2 = var$6.$unseenEntities;
                var$7 = 0;
                var$4 = var$2.$modCount;
                var$12 = var$2.$size();
                c: {
                    while (true) {
                        if (!(var$7 >= var$12 ? 0 : 1)) {
                            var$7 = 0;
                            break c;
                        }
                        if (var$4 < var$2.$modCount)
                            break;
                        var$13 = var$7 + 1 | 0;
                        var$3 = var$2.$get(var$7);
                        if (var$3 === $var1 ? 1 : var$3 !== null ? var$3.$equals($var1) : $var1 !== null ? 0 : 1) {
                            var$7 = 1;
                            break c;
                        }
                        var$7 = var$13;
                    }
                    var$2 = new ju_ConcurrentModificationException;
                    var$2.$suppressionEnabled = 1;
                    var$2.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$2);
                    $rt_throw(var$2);
                }
                if (!var$7) {
                    var$2 = var$6.$entityObj1;
                    $ptr = 1;
                    continue main;
                }
                var$7 = 0;
            }
            if (var$7)
                $this.$field_75298_g = 0;
            else {
                var$7 = $this.$field_75298_g + 1 | 0;
                $this.$field_75298_g = var$7;
                if (var$7 > 60)
                    return 0;
            }
        }
        return 1;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$2, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7) {
            var$2 = var$6.$unseenEntities;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$5 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$5[var$4] = $var1;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else {
            var$2 = var$6.$seenEntities;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$5 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$5[var$4] = $var1;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        }
        if (var$7)
            $this.$field_75298_g = 0;
        else {
            var$7 = $this.$field_75298_g + 1 | 0;
            $this.$field_75298_g = var$7;
            if (var$7 > 60)
                return 0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, $var2, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityAITarget_getTargetDistance = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$taskOwner;
    var$2 = nms_SharedMonsterAttributes_followRange;
    if (var$1.$attributeMap === null)
        var$1.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = var$1.$attributeMap.$attributes;
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        a: {
            var$3 = var$2.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$1.$elementData.data;
        var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$5) {
                var$3 = var$1.$key;
                if (var$2 !== var$3 && !jl_Object_equals(var$2, var$3) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$2 = var$1 === null ? null : var$1.$value0;
    if (var$2 === null)
        var$7 = 16.0;
    else {
        if (var$2.$field_111133_g) {
            var$2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$2);
            var$2.$field_111133_g = 0;
        }
        var$7 = var$2.$field_111139_h;
    }
    return var$7;
},
nms_EntityAITarget_resetTask = $this => {
    $this.$taskOwner.$setAttackTarget(null);
},
nms_EntityAITarget_isSuitableTarget = ($this, $par1EntityLivingBase, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1EntityLivingBase === null)
            return 0;
        if ($par1EntityLivingBase === $this.$taskOwner)
            return 0;
        a: {
            if (!$par1EntityLivingBase.$isDead) {
                var$3 = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[134];
                if (var$4 !== null) {
                    var$5 = var$4.$value;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            var$7 = var$3.$key;
                            if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                }
                if ((var$3 === null ? null : var$3.$value0).$watchedObject.$value3 > 0.0) {
                    var$8 = 1;
                    break a;
                }
            }
            var$8 = 0;
        }
        if (!var$8)
            return 0;
        var$3 = $this.$taskOwner;
        var$4 = $par1EntityLivingBase.constructor;
        if (var$4 === null)
            var$7 = null;
        else {
            var$7 = var$4.classObject;
            if (var$7 === null) {
                var$7 = new jl_Class;
                var$7.$platformClass = var$4;
                var$4.classObject = var$7;
            }
        }
        if (!var$3.$canAttackClass(var$7))
            return 0;
        b: {
            var$3 = $this.$taskOwner;
            if ($rt_isInstance(var$3, nms_EntityOwnable)) {
                var$3 = var$3.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[145];
                if (var$4 !== null) {
                    var$9 = var$4.$value;
                    var$6 = var$3.$elementData.data;
                    var$7 = var$6[var$9 & (var$6.length - 1 | 0)];
                    while (var$7 !== null) {
                        if (var$7.$origKeyHash == var$9) {
                            var$3 = var$7.$key;
                            if (var$4 !== var$3 && !(var$4 !== var$3 ? (var$3 instanceof jl_Integer && var$3.$value == var$9 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        var$7 = var$7.$next3;
                    }
                } else {
                    var$7 = var$3.$elementData.data[0];
                    while (var$7 !== null && var$7.$key !== null) {
                        var$7 = var$7.$next3;
                    }
                }
                if ((var$7 === null ? null : var$7.$value0).$watchedObject !== null) {
                    if ($rt_isInstance($par1EntityLivingBase, nms_EntityOwnable)) {
                        var$3 = $this.$taskOwner.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[145];
                        if (var$7 !== null) {
                            $par2 = var$7.$value;
                            var$6 = var$3.$elementData.data;
                            var$3 = var$6[$par2 & (var$6.length - 1 | 0)];
                            while (var$3 !== null) {
                                if (var$3.$origKeyHash == $par2) {
                                    var$4 = var$3.$key;
                                    if (var$7 !== var$4 && !(var$7 !== var$4 ? (var$4 instanceof jl_Integer && var$4.$value == $par2 ? 1 : 0) : 1) ? 0 : 1)
                                        break;
                                }
                                var$3 = var$3.$next3;
                            }
                        } else {
                            var$3 = var$3.$elementData.data[0];
                            while (var$3 !== null && var$3.$key !== null) {
                                var$3 = var$3.$next3;
                            }
                        }
                        var$7 = (var$3 === null ? null : var$3.$value0).$watchedObject;
                        var$3 = $par1EntityLivingBase.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$10 = jl_Integer_integerCache.data[145];
                        if (var$10 === null) {
                            var$3 = var$3.$elementData.data[0];
                            while (var$3 !== null && var$3.$key !== null) {
                                var$3 = var$3.$next3;
                            }
                        } else {
                            var$9 = var$10.$value;
                            var$6 = var$3.$elementData.data;
                            var$3 = var$6[var$9 & (var$6.length - 1 | 0)];
                            while (var$3 !== null) {
                                if (var$3.$origKeyHash == var$9) {
                                    var$4 = var$3.$key;
                                    if (var$10 !== var$4 && !(var$10 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$9 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$3 = var$3.$next3;
                            }
                        }
                        var$3 = (var$3 === null ? null : var$3.$value0).$watchedObject;
                        if (var$7 === var$3)
                            $par2 = 1;
                        else if (!(var$3 instanceof jl_String))
                            $par2 = 0;
                        else {
                            var$3 = var$3;
                            $par2 = var$7.$nativeString !== var$3.$nativeString ? 0 : 1;
                        }
                        if ($par2)
                            return 0;
                    }
                    var$3 = $this.$taskOwner;
                    var$7 = var$3.$worldObj;
                    var$3 = var$3.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$10 = jl_Integer_integerCache.data[145];
                    if (var$10 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$9 = jl_Integer_hashCode(var$10.$value);
                        var$6 = var$3.$elementData.data;
                        var$3 = var$6[var$9 & (var$6.length - 1 | 0)];
                        while (var$3 !== null && !(var$3.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$10, var$3.$key))) {
                            var$3 = var$3.$next3;
                        }
                    }
                    var$10 = (var$3 === null ? null : var$3.$value0).$watchedObject;
                    $par2 = 0;
                    c: {
                        while (true) {
                            var$3 = var$7.$playerEntities;
                            var$8 = $rt_compare($par2, var$3.$size0);
                            if (var$8 >= 0) {
                                var$3 = null;
                                break c;
                            }
                            if ($par2 < 0)
                                break;
                            if (var$8 >= 0)
                                break;
                            var$3 = var$3.$array.data[$par2].$username;
                            if (var$10 === var$3)
                                var$8 = 1;
                            else if (!(var$3 instanceof jl_String))
                                var$8 = 0;
                            else {
                                var$3 = var$3;
                                var$8 = var$10.$nativeString !== var$3.$nativeString ? 0 : 1;
                            }
                            if (var$8) {
                                var$3 = var$7.$playerEntities;
                                if ($par2 >= 0 && $par2 < var$3.$size0) {
                                    var$3 = var$3.$array.data[$par2];
                                    break c;
                                }
                                $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                                jl_Throwable__init_($par1EntityLivingBase);
                                $rt_throw($par1EntityLivingBase);
                            }
                            $par2 = $par2 + 1 | 0;
                        }
                        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_($par1EntityLivingBase);
                        $rt_throw($par1EntityLivingBase);
                    }
                    if ($par1EntityLivingBase !== var$3)
                        break b;
                    return 0;
                }
            }
            if ($par1EntityLivingBase instanceof nms_EntityPlayer && !$par2 && $par1EntityLivingBase.$capabilities.$disableDamage)
                return 0;
        }
        var$3 = $this.$taskOwner;
        var$11 = $par1EntityLivingBase.$posX;
        var$5 = var$11 | 0;
        if (var$11 < var$5)
            var$5 = var$5 - 1 | 0;
        var$11 = $par1EntityLivingBase.$posY;
        var$9 = var$11 | 0;
        if (var$11 < var$9)
            var$9 = var$9 - 1 | 0;
        var$11 = $par1EntityLivingBase.$posZ;
        var$8 = var$11 | 0;
        if (var$11 < var$8)
            var$8 = var$8 - 1 | 0;
        var$12 = var$3.$maximumHomeDistance;
        if (var$12 === (-1.0))
            $par2 = 1;
        else {
            var$7 = var$3.$homePosition;
            var$13 = var$7.$posX0 - var$5 | 0;
            var$14 = var$7.$posY0 - var$9 | 0;
            var$15 = var$7.$posZ0 - var$8 | 0;
            $par2 = var$13 * var$13 + var$14 * var$14 + var$15 * var$15 >= var$12 * var$12 ? 0 : 1;
        }
        if (!$par2)
            return 0;
        if ($this.$shouldCheckSight) {
            var$3 = var$3.$senses;
            var$7 = var$3.$seenEntities;
            var$16 = 0;
            var$9 = var$7.$modCount;
            var$5 = var$7.$size();
            d: {
                while (true) {
                    if (!(var$16 >= var$5 ? 0 : 1)) {
                        $par2 = 0;
                        break d;
                    }
                    if (var$9 < var$7.$modCount)
                        break;
                    var$8 = var$16 + 1 | 0;
                    var$4 = var$7.$get(var$16);
                    if (var$4 === $par1EntityLivingBase ? 1 : var$4 !== null ? var$4.$equals($par1EntityLivingBase) : $par1EntityLivingBase !== null ? 0 : 1) {
                        $par2 = 1;
                        break d;
                    }
                    var$16 = var$8;
                }
                $par1EntityLivingBase = new ju_ConcurrentModificationException;
                $par1EntityLivingBase.$suppressionEnabled = 1;
                $par1EntityLivingBase.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1EntityLivingBase);
                $rt_throw($par1EntityLivingBase);
            }
            if ($par2)
                $par2 = 1;
            else {
                var$7 = var$3.$unseenEntities;
                var$16 = 0;
                var$9 = var$7.$modCount;
                var$5 = var$7.$size();
                e: {
                    while (true) {
                        if (!(var$16 >= var$5 ? 0 : 1)) {
                            $par2 = 0;
                            break e;
                        }
                        if (var$9 < var$7.$modCount)
                            break;
                        var$8 = var$16 + 1 | 0;
                        var$4 = var$7.$get(var$16);
                        if (var$4 === $par1EntityLivingBase ? 1 : var$4 !== null ? var$4.$equals($par1EntityLivingBase) : $par1EntityLivingBase !== null ? 0 : 1) {
                            $par2 = 1;
                            break e;
                        }
                        var$16 = var$8;
                    }
                    $par1EntityLivingBase = new ju_ConcurrentModificationException;
                    $par1EntityLivingBase.$suppressionEnabled = 1;
                    $par1EntityLivingBase.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1EntityLivingBase);
                    $rt_throw($par1EntityLivingBase);
                }
                if (!$par2) {
                    var$7 = var$3.$entityObj1;
                    $ptr = 2;
                    continue main;
                }
                $par2 = 0;
            }
            if (!$par2)
                return 0;
        }
        if ($this.$nearbyOnly) {
            $par2 = $this.$targetSearchDelay - 1 | 0;
            $this.$targetSearchDelay = $par2;
            if ($par2 <= 0)
                $this.$targetSearchStatus = 0;
            if (!$this.$targetSearchStatus) {
                $ptr = 1;
                continue main;
            }
            if ($this.$targetSearchStatus == 2)
                return 0;
        }
        return 1;
    case 1:
        $tmp = nms_EntityAITarget_canEasilyReach($this, $par1EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $this.$targetSearchStatus = !$par2 ? 2 : 1;
        if ($this.$targetSearchStatus != 2)
            return 1;
        return 0;
    case 2:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$7, $par1EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2) {
            var$3 = var$3.$unseenEntities;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$6 = var$3.$array.data;
            var$9 = var$3.$size0;
            var$3.$size0 = var$9 + 1 | 0;
            var$6[var$9] = $par1EntityLivingBase;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        } else {
            var$3 = var$3.$seenEntities;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$6 = var$3.$array.data;
            var$9 = var$3.$size0;
            var$3.$size0 = var$9 + 1 | 0;
            var$6[var$9] = $par1EntityLivingBase;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
        if (!$par2)
            return 0;
        if ($this.$nearbyOnly) {
            $par2 = $this.$targetSearchDelay - 1 | 0;
            $this.$targetSearchDelay = $par2;
            if ($par2 <= 0)
                $this.$targetSearchStatus = 0;
            if (!$this.$targetSearchStatus) {
                $ptr = 1;
                continue main;
            }
            if ($this.$targetSearchStatus == 2)
                return 0;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityAITarget_canEasilyReach = ($this, $par1EntityLivingBase) => {
    let $var3, $var2, var$4, var$5, var$6, var$7, $var4, $var5, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$taskOwner;
        $var2 = $var3.$rand;
        var$4 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var2.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        while (true) {
            var$6 = var$5 % 5 | 0;
            if (((var$5 - var$6 | 0) + 4 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
        $this.$targetSearchDelay = 10 + var$6 | 0;
        var$7 = $var3.$navigator;
        $var3 = var$7.$theEntity;
        if ($var3.$onGround)
            $var4 = 1;
        else {
            if (var$7.$canSwim) {
                $ptr = 1;
                continue main;
            }
            $var4 = 0;
        }
        if (!$var4) {
            $var2 = null;
            if ($var2 === null)
                return 0;
            $var5 = $var2.$pathLength;
            $var3 = $var5 <= 0 ? null : $var2.$points.data[$var5 - 1 | 0];
            if ($var3 === null)
                return 0;
            $var4 = $var3.$xCoord1;
            var$10 = $par1EntityLivingBase.$posX;
            var$11 = var$10 | 0;
            if (var$10 < var$11)
                var$11 = var$11 - 1 | 0;
            $var4 = $var4 - var$11 | 0;
            $var5 = $var3.$zCoord1;
            var$10 = $par1EntityLivingBase.$posZ;
            var$5 = var$10 | 0;
            if (var$10 < var$5)
                var$5 = var$5 - 1 | 0;
            $var5 = $var5 - var$5 | 0;
            return ($rt_imul($var4, $var4) + $rt_imul($var5, $var5) | 0) > 2.25 ? 0 : 1;
        }
        $var3 = var$7.$worldObj3;
        $var2 = var$7.$theEntity;
        var$12 = var$7.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        $var4 = var$7.$canPassOpenWoodenDoors;
        $var5 = var$7.$canPassClosedWoodenDoors;
        var$11 = var$7.$avoidsWater;
        var$5 = var$7.$canSwim;
        $ptr = 3;
        continue main;
    case 1:
        $tmp = $var3.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            $var3 = var$7.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            $var2 = null;
            if ($var2 === null)
                return 0;
            $var5 = $var2.$pathLength;
            $var3 = $var5 <= 0 ? null : $var2.$points.data[$var5 - 1 | 0];
            if ($var3 === null)
                return 0;
            $var4 = $var3.$xCoord1;
            var$10 = $par1EntityLivingBase.$posX;
            var$11 = var$10 | 0;
            if (var$10 < var$11)
                var$11 = var$11 - 1 | 0;
            $var4 = $var4 - var$11 | 0;
            $var5 = $var3.$zCoord1;
            var$10 = $par1EntityLivingBase.$posZ;
            var$5 = var$10 | 0;
            if (var$10 < var$5)
                var$5 = var$5 - 1 | 0;
            $var5 = $var5 - var$5 | 0;
            return ($rt_imul($var4, $var4) + $rt_imul($var5, $var5) | 0) > 2.25 ? 0 : 1;
        }
        $var3 = var$7.$worldObj3;
        $var2 = var$7.$theEntity;
        var$12 = var$7.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        $var4 = var$7.$canPassOpenWoodenDoors;
        $var5 = var$7.$canPassClosedWoodenDoors;
        var$11 = var$7.$avoidsWater;
        var$5 = var$7.$canSwim;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = $var3.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!(($var4 ? 1 : 0) ? 1 : 0)) {
            $var2 = null;
            if ($var2 === null)
                return 0;
            $var5 = $var2.$pathLength;
            $var3 = $var5 <= 0 ? null : $var2.$points.data[$var5 - 1 | 0];
            if ($var3 === null)
                return 0;
            $var4 = $var3.$xCoord1;
            var$10 = $par1EntityLivingBase.$posX;
            var$11 = var$10 | 0;
            if (var$10 < var$11)
                var$11 = var$11 - 1 | 0;
            $var4 = $var4 - var$11 | 0;
            $var5 = $var3.$zCoord1;
            var$10 = $par1EntityLivingBase.$posZ;
            var$5 = var$10 | 0;
            if (var$10 < var$5)
                var$5 = var$5 - 1 | 0;
            $var5 = $var5 - var$5 | 0;
            return ($rt_imul($var4, $var4) + $rt_imul($var5, $var5) | 0) > 2.25 ? 0 : 1;
        }
        $var3 = var$7.$worldObj3;
        $var2 = var$7.$theEntity;
        var$12 = var$7.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        $var4 = var$7.$canPassOpenWoodenDoors;
        $var5 = var$7.$canPassClosedWoodenDoors;
        var$11 = var$7.$avoidsWater;
        var$5 = var$7.$canSwim;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getPathEntityToEntity($var3, $var2, $par1EntityLivingBase, var$13, $var4, $var5, var$11, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 === null)
            return 0;
        $var5 = $var2.$pathLength;
        $var3 = $var5 <= 0 ? null : $var2.$points.data[$var5 - 1 | 0];
        if ($var3 === null)
            return 0;
        $var4 = $var3.$xCoord1;
        var$10 = $par1EntityLivingBase.$posX;
        var$11 = var$10 | 0;
        if (var$10 < var$11)
            var$11 = var$11 - 1 | 0;
        $var4 = $var4 - var$11 | 0;
        $var5 = $var3.$zCoord1;
        var$10 = $par1EntityLivingBase.$posZ;
        var$5 = var$10 | 0;
        if (var$10 < var$5)
            var$5 = var$5 - 1 | 0;
        $var5 = $var5 - var$5 | 0;
        return ($rt_imul($var4, $var4) + $rt_imul($var5, $var5) | 0) > 2.25 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $var3, $var2, var$4, var$5, var$6, var$7, $var4, $var5, var$10, var$11, var$12, var$13, $ptr);
};
function nms_EntityAIHurtByTarget() {
    let a = this; nms_EntityAITarget.call(a);
    a.$entityCallsForHelp = 0;
    a.$field_142052_b = 0;
}
let nms_EntityAIHurtByTarget_shouldExecute = $this => {
    let var$1, var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$taskOwner;
        if (var$1.$revengeTimer == $this.$field_142052_b)
            return 0;
        var$1 = var$1.$entityLivingToAttack;
        var$2 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAITarget_isSuitableTarget($this, var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        return !var$2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $ptr);
},
nms_EntityAIHurtByTarget_startExecuting = $this => {
    let $var5, $var1, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var4$index, $var4$index_0, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var4$index_0 = $thread.pop();$var4$index = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();$var5 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$taskOwner;
        $var5.$setAttackTarget($var5.$entityLivingToAttack);
        $this.$field_142052_b = $this.$taskOwner.$revengeTimer;
        if (!$this.$entityCallsForHelp) {
            $this.$targetSearchStatus = 0;
            $this.$targetSearchDelay = 0;
            $this.$field_75298_g = 0;
            return;
        }
        $var1 = nms_EntityAITarget_getTargetDistance($this);
        $var5 = $this.$taskOwner;
        var$3 = $var5.$worldObj;
        $var5 = $var5.constructor;
        if ($var5 === null)
            $var3 = null;
        else {
            $var3 = $var5.classObject;
            if ($var3 === null) {
                $var3 = new jl_Class;
                $var3.$platformClass = $var5;
                $var5.classObject = $var3;
            }
        }
        var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var5 = $this.$taskOwner;
        var$6 = $var5.$posX;
        var$7 = $var5.$posY;
        var$8 = $var5.$posZ;
        var$9 = var$6 + 1.0;
        var$10 = var$7 + 1.0;
        var$11 = var$8 + 1.0;
        $var4$index = var$5.$nextPoolIndex;
        $var5 = var$5.$listAABB;
        $var4$index_0 = $var5.$size0;
        var$14 = $rt_compare($var4$index, $var4$index_0);
        if (var$14 >= 0) {
            var$15 = new nms_AxisAlignedBB;
            var$15.$minX0 = var$6;
            var$15.$minY0 = var$7;
            var$15.$minZ0 = var$8;
            var$15.$maxX0 = var$9;
            var$15.$maxY = var$10;
            var$15.$maxZ0 = var$11;
            ju_ArrayList_ensureCapacity($var5, $var4$index_0 + 1 | 0);
            var$16 = $var5.$array.data;
            $var4$index = $var5.$size0;
            $var5.$size0 = $var4$index + 1 | 0;
            var$16[$var4$index] = var$15;
            $var5.$modCount = $var5.$modCount + 1 | 0;
        } else if ($var4$index >= 0 && var$14 < 0) {
            var$15 = $var5.$array.data[$var4$index];
            var$15.$minX0 = var$6;
            var$15.$minY0 = var$7;
            var$15.$minZ0 = var$8;
            var$15.$maxX0 = var$9;
            var$15.$maxY = var$10;
            var$15.$maxZ0 = var$11;
        } else {
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            $rt_throw($var5);
        }
        var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
        var$6 = var$15.$minX0 - $var1;
        var$7 = var$15.$minY0 - 10.0;
        var$8 = var$15.$minZ0 - $var1;
        var$9 = var$15.$maxX0 + $var1;
        var$11 = var$15.$maxY + 10.0;
        $var1 = var$15.$maxZ0 + $var1;
        var$5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var4$index_0 = var$5.$nextPoolIndex;
        $var5 = var$5.$listAABB;
        $var4$index = $var5.$size0;
        var$14 = $rt_compare($var4$index_0, $var4$index);
        if (var$14 >= 0) {
            var$15 = new nms_AxisAlignedBB;
            var$15.$minX0 = var$6;
            var$15.$minY0 = var$7;
            var$15.$minZ0 = var$8;
            var$15.$maxX0 = var$9;
            var$15.$maxY = var$11;
            var$15.$maxZ0 = $var1;
            ju_ArrayList_ensureCapacity($var5, $var4$index + 1 | 0);
            var$16 = $var5.$array.data;
            $var4$index_0 = $var5.$size0;
            $var5.$size0 = $var4$index_0 + 1 | 0;
            var$16[$var4$index_0] = var$15;
            $var5.$modCount = $var5.$modCount + 1 | 0;
        } else if ($var4$index_0 >= 0 && var$14 < 0) {
            var$15 = $var5.$array.data[$var4$index_0];
            var$15.$minX0 = var$6;
            var$15.$minY0 = var$7;
            var$15.$minZ0 = var$8;
            var$15.$maxX0 = var$9;
            var$15.$maxY = var$11;
            var$15.$maxZ0 = $var1;
        } else {
            $var5 = new jl_IndexOutOfBoundsException;
            $var5.$suppressionEnabled = 1;
            $var5.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var5);
            $rt_throw($var5);
        }
        var$5.$nextPoolIndex = var$5.$nextPoolIndex + 1 | 0;
        $var5 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$3, $var3, var$15, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var4$index_0 = 0;
        var$14 = $var3.$modCount;
        var$17 = $var3.$size();
        while ($var4$index_0 >= var$17 ? 0 : 1) {
            if (var$14 < $var3.$modCount) {
                $var5 = new ju_ConcurrentModificationException;
                $var5.$suppressionEnabled = 1;
                $var5.$writableStackTrace = 1;
                $rt_throw($var5);
            }
            $var4$index = $var4$index_0 + 1 | 0;
            $var5 = $var3.$get($var4$index_0);
            var$3 = $this.$taskOwner;
            if (var$3 !== $var5 && $var5.$attackTarget === null && !$var5.$isOnSameTeam(var$3.$entityLivingToAttack))
                $var5.$setAttackTarget($this.$taskOwner.$entityLivingToAttack);
            $var4$index_0 = $var4$index;
        }
        $this.$targetSearchStatus = 0;
        $this.$targetSearchDelay = 0;
        $this.$field_75298_g = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var5, $var1, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $var4$index, $var4$index_0, var$14, var$15, var$16, var$17, $ptr);
};
function nms_EntityAINearestAttackableTarget() {
    let a = this; nms_EntityAITarget.call(a);
    a.$targetClass = null;
    a.$targetChance = 0;
    a.$theNearestAttackableTargetSorter = null;
    a.$targetEntitySelector = null;
    a.$targetEntity0 = null;
}
let nms_EntityAINearestAttackableTarget_shouldExecute = $this => {
    let var$1, $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var1, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var1 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$targetChance;
        if (var$1 > 0) {
            $var3 = $this.$taskOwner.$rand;
            var$3 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
            var$5 = var$1 - 1 | 0;
            if (!(var$1 & var$5))
                var$6 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$1), Long_fromInt(var$4)), 31));
            else
                while (true) {
                    var$6 = var$4 % var$1 | 0;
                    if (((var$4 - var$6 | 0) + var$5 | 0) >= 0)
                        break;
                    var$3 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$3;
                    var$4 = Long_lo(Long_shru(var$3, 17));
                }
            if (var$6)
                return 0;
        }
        var$7 = $this.$taskOwner;
        $var3 = nms_SharedMonsterAttributes_followRange;
        if (var$7.$attributeMap === null)
            var$7.$attributeMap = nms_ServersideAttributeMap__init_();
        var$7 = var$7.$attributeMap.$attributes;
        if ($var3 === null) {
            var$7 = var$7.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            var$8 = jl_String_hashCode($var3.$field_111115_a);
            var$9 = var$7.$elementData.data;
            var$7 = var$9[var$8 & (var$9.length - 1 | 0)];
            while (var$7 !== null && !(var$7.$origKeyHash == var$8 && ju_HashMap_areEqualKeys($var3, var$7.$key))) {
                var$7 = var$7.$next3;
            }
        }
        $var3 = var$7 === null ? null : var$7.$value0;
        if ($var3 === null)
            $var1 = 16.0;
        else {
            if ($var3.$field_111133_g) {
                $var3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var3);
                $var3.$field_111133_g = 0;
            }
            $var1 = $var3.$field_111139_h;
        }
        $var3 = $this.$taskOwner;
        var$7 = $var3.$worldObj;
        var$11 = $this.$targetClass;
        $var3 = $var3.$boundingBox0;
        var$12 = $var3.$minX0 - $var1;
        var$13 = $var3.$minY0 - 4.0;
        var$14 = $var3.$minZ0 - $var1;
        var$15 = $var3.$maxX0 + $var1;
        var$16 = $var3.$maxY + 4.0;
        var$17 = $var3.$maxZ0 + $var1;
        var$18 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$1 = var$18.$nextPoolIndex;
        $var3 = var$18.$listAABB;
        var$8 = $var3.$size0;
        var$5 = $rt_compare(var$1, var$8);
        if (var$5 >= 0) {
            var$19 = new nms_AxisAlignedBB;
            var$19.$minX0 = var$12;
            var$19.$minY0 = var$13;
            var$19.$minZ0 = var$14;
            var$19.$maxX0 = var$15;
            var$19.$maxY = var$16;
            var$19.$maxZ0 = var$17;
            ju_ArrayList_ensureCapacity($var3, var$8 + 1 | 0);
            var$9 = $var3.$array.data;
            var$5 = $var3.$size0;
            $var3.$size0 = var$5 + 1 | 0;
            var$9[var$5] = var$19;
            $var3.$modCount = $var3.$modCount + 1 | 0;
        } else if (var$1 >= 0 && var$5 < 0) {
            var$19 = $var3.$array.data[var$1];
            var$19.$minX0 = var$12;
            var$19.$minY0 = var$13;
            var$19.$minZ0 = var$14;
            var$19.$maxX0 = var$15;
            var$19.$maxY = var$16;
            var$19.$maxZ0 = var$17;
        } else {
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var3);
            $rt_throw($var3);
        }
        var$18.$nextPoolIndex = var$18.$nextPoolIndex + 1 | 0;
        $var3 = $this.$targetEntitySelector;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$7, var$11, var$19, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        var$7 = $this.$theNearestAttackableTargetSorter;
        if (var$7 === null)
            var$7 = ju_Comparator$NaturalOrder_INSTANCE;
        var$9 = $rt_createArray(jl_Object, $var3.$size0);
        var$20 = var$9.data;
        ju_AbstractCollection_toArray($var3, var$9);
        ju_Arrays_sort(var$9, var$7);
        var$1 = 0;
        var$5 = var$20.length;
        while (true) {
            if (var$1 >= var$5) {
                var$5 = $var3.$size0;
                if (var$5 ? 0 : 1)
                    return 0;
                if (0 < var$5) {
                    $this.$targetEntity0 = $var3.$array.data[0];
                    return 1;
                }
                $var3 = new jl_IndexOutOfBoundsException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            var$7 = var$20[var$1];
            if (var$1 < 0)
                break;
            if (var$1 >= $var3.$size0)
                break;
            $var3.$array.data[var$1] = var$7;
            var$1 = var$1 + 1 | 0;
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var1, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntityAINearestAttackableTarget_startExecuting = $this => {
    $this.$taskOwner.$setAttackTarget($this.$targetEntity0);
    $this.$targetSearchStatus = 0;
    $this.$targetSearchDelay = 0;
    $this.$field_75298_g = 0;
};
function nms_ScoreDummyCriteria() {
    jl_Object.call(this);
    this.$field_96644_g = null;
}
let nms_ScoreDummyCriteria_func_96636_a = $this => {
    return $this.$field_96644_g;
},
nms_ScoreDummyCriteria_func_96635_a = ($this, $par1List) => {
    return 0;
},
nms_ScoreDummyCriteria_isReadOnly = $this => {
    return 0;
},
nms_ScoreHealthCriteria = $rt_classWithoutFields(nms_ScoreDummyCriteria),
nms_ScoreHealthCriteria_func_96635_a = ($this, $par1List) => {
    let $var2, $var3$index, var$4, var$5, $var3$index_0, $var4, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    $var2 = 0.0;
    $var3$index = 0;
    var$4 = $par1List.$modCount;
    var$5 = $par1List.$size();
    while (true) {
        if (!($var3$index >= var$5 ? 0 : 1)) {
            $var3$index = $par1List.$array1.data.length;
            if ($var3$index > 0)
                $var2 = $var2 / $var3$index;
            $var3$index = $var2 | 0;
            if ($var2 > $var3$index)
                $var3$index = $var3$index + 1 | 0;
            return $var3$index;
        }
        if (var$4 < $par1List.$modCount)
            break;
        $var3$index_0 = $var3$index + 1 | 0;
        $var4 = $par1List.$get($var3$index);
        var$8 = $var4.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[134];
        if (var$9 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$10 = var$9.$value;
            var$11 = var$8.$elementData.data;
            var$8 = var$11[var$10 & (var$11.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$10) {
                    var$12 = var$8.$key;
                    if (var$9 !== var$12 && !(var$9 === var$12 ? 1 : var$12 instanceof jl_Integer && var$12.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$13 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value3;
        $var4 = $var4.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[145];
        if (var$9 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$14 = var$9.$value;
            var$11 = $var4.$elementData.data;
            $var4 = var$11[var$14 & (var$11.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$14) {
                    var$8 = $var4.$key;
                    if (var$9 !== var$8 && !(var$9 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$14 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var2 = $var2 + var$13 + ($var4 === null ? null : $var4.$value0).$watchedObject.$value3;
        $var3$index = $var3$index_0;
    }
    $par1List = new ju_ConcurrentModificationException;
    $par1List.$suppressionEnabled = 1;
    $par1List.$writableStackTrace = 1;
    $rt_throw($par1List);
},
nms_ScoreHealthCriteria_isReadOnly = $this => {
    return 1;
};
function nms_DataWatcher() {
    let a = this; jl_Object.call(a);
    a.$isBlank = 0;
    a.$watchedObjects = null;
    a.$objectChanged = 0;
}
let nms_DataWatcher_dataTypes = null,
nms_DataWatcher_$callClinit = () => {
    nms_DataWatcher_$callClinit = $rt_eraseClinit(nms_DataWatcher);
    nms_DataWatcher__clinit_();
},
nms_DataWatcher__init_ = $this => {
    let var$1, var$2, var$3, var$4;
    nms_DataWatcher_$callClinit();
    $this.$isBlank = 1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$watchedObjects = var$1;
},
nms_DataWatcher__init_0 = () => {
    let var_0 = new nms_DataWatcher();
    nms_DataWatcher__init_(var_0);
    return var_0;
},
nms_DataWatcher_addObject = ($this, $par1, $par2Obj) => {
    let $var3, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    nms_DataWatcher_$callClinit();
    $var3 = nms_DataWatcher_dataTypes;
    $var4 = $par2Obj.constructor;
    if ($var4 === null)
        var$5 = null;
    else {
        var$5 = $var4.classObject;
        if (var$5 === null) {
            var$5 = new jl_Class;
            var$5.$platformClass = $var4;
            $var4.classObject = var$5;
        }
    }
    if (var$5 === null) {
        $var3 = $var3.$elementData.data[0];
        while ($var3 !== null && $var3.$key !== null) {
            $var3 = $var3.$next3;
        }
    } else {
        var$6 = var$5;
        if (!var$6.$id$)
            var$6.$id$ = $rt_nextId();
        var$7 = var$5.$id$;
        var$8 = $var3.$elementData.data;
        $var3 = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$7) {
                $var4 = $var3.$key;
                if (var$5 !== $var4 && !(var$5 !== $var4 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
    }
    $var3 = $var3 === null ? null : $var3.$value0;
    if ($var3 === null) {
        $var3 = new jl_IllegalArgumentException;
        $var4 = $par2Obj.constructor;
        if ($var4 === null)
            $par2Obj = null;
        else {
            $par2Obj = $var4.classObject;
            if ($par2Obj === null) {
                $par2Obj = new jl_Class;
                $par2Obj.$platformClass = $var4;
                $var4.classObject = $par2Obj;
            }
        }
        if ($par2Obj === null)
            var$5 = $rt_s(1);
        else {
            $var4 = (!($par2Obj.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(99) : !($par2Obj.$platformClass.$meta.primitive ? 1 : 0) ? $rt_s(100) : $rt_s(3);
            if ($par2Obj.$name1 === null)
                $par2Obj.$name1 = $rt_str($par2Obj.$platformClass.$meta.name);
            var$5 = $par2Obj.$name1;
            $par2Obj = new jl_StringBuilder;
            $par2Obj.$buffer = $rt_createCharArray(16);
            jl_StringBuilder_insert0($par2Obj, $par2Obj.$length0, $var4);
            $par1 = $par2Obj.$length0;
            if (var$5 === null)
                var$5 = $rt_s(1);
            jl_StringBuilder_insert0($par2Obj, $par1, var$5);
            var$5 = new jl_String;
            var$8 = $par2Obj.$buffer;
            var$9 = var$8.data;
            var$10 = $par2Obj.$length0;
            var$11 = var$9.length;
            if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0))
                var$5.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
            else {
                $par2Obj = new jl_IndexOutOfBoundsException;
                $par2Obj.$suppressionEnabled = 1;
                $par2Obj.$writableStackTrace = 1;
                $rt_throw($par2Obj);
            }
        }
        $par2Obj = new jl_StringBuilder;
        $par2Obj.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($par2Obj, $par2Obj.$length0, $rt_s(2458));
        jl_AbstractStringBuilder_insert($par2Obj, $par2Obj.$length0, var$5);
        $var4 = new jl_String;
        var$8 = $par2Obj.$buffer;
        var$9 = var$8.data;
        var$10 = $par2Obj.$length0;
        var$11 = var$9.length;
        if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $var3.$message = $var4;
            $rt_throw($var3);
        }
        $par2Obj = new jl_IndexOutOfBoundsException;
        $par2Obj.$suppressionEnabled = 1;
        $par2Obj.$writableStackTrace = 1;
        $rt_throw($par2Obj);
    }
    if ($par1 > 31) {
        $par2Obj = new jl_IllegalArgumentException;
        $var3 = new jl_StringBuilder;
        $var3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2459));
        jl_AbstractStringBuilder_insert0($var3, $var3.$length0, $par1, 10);
        jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2460));
        $var4 = new jl_String;
        var$8 = $var3.$buffer;
        var$9 = var$8.data;
        var$10 = $var3.$length0;
        var$11 = var$9.length;
        if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
            $var4.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
            $par2Obj.$suppressionEnabled = 1;
            $par2Obj.$writableStackTrace = 1;
            $par2Obj.$message = $var4;
            $rt_throw($par2Obj);
        }
        $par2Obj = new jl_IndexOutOfBoundsException;
        $par2Obj.$suppressionEnabled = 1;
        $par2Obj.$writableStackTrace = 1;
        $rt_throw($par2Obj);
    }
    $var4 = $this.$watchedObjects;
    var$7 = $rt_compare($par1, (-128));
    if (var$7 >= 0 && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = $par1;
    }
    if (var$5 === null) {
        $var4 = $var4.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        var$12 = var$5.$value;
        var$8 = $var4.$elementData.data;
        $var4 = var$8[var$12 & (var$8.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$12) {
                var$13 = $var4.$key;
                if (var$5 !== var$13 && !(var$5 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == var$12 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    if (!($var4 === null ? 0 : 1)) {
        $var4 = new nms_WatchableObject;
        var$10 = $var3.$value;
        $var4.$dataValueId = $par1;
        $var4.$watchedObject = $par2Obj;
        $var4.$objectType = var$10;
        $var4.$watched = 1;
        $par2Obj = $this.$watchedObjects;
        if (var$7 >= 0 && $par1 <= 127) {
            jl_Integer_ensureIntegerCache();
            $var3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
        } else {
            $var3 = new jl_Integer;
            $var3.$value = $par1;
        }
        ju_HashMap_putImpl($par2Obj, $var3, $var4);
        $this.$isBlank = 0;
        return;
    }
    $par2Obj = new jl_IllegalArgumentException;
    $var3 = new jl_StringBuilder;
    $var3.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2461));
    jl_AbstractStringBuilder_insert0($var3, $var3.$length0, $par1, 10);
    var$10 = $var3.$length0;
    jl_AbstractStringBuilder_insertSpace($var3, var$10, var$10 + 1 | 0);
    var$8 = $var3.$buffer;
    var$9 = var$8.data;
    var$9[var$10] = 33;
    $var4 = new jl_String;
    var$10 = $var3.$length0;
    var$11 = var$9.length;
    if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
        $var4.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
        $par2Obj.$suppressionEnabled = 1;
        $par2Obj.$writableStackTrace = 1;
        $par2Obj.$message = $var4;
        $rt_throw($par2Obj);
    }
    $par2Obj = new jl_IndexOutOfBoundsException;
    $par2Obj.$suppressionEnabled = 1;
    $par2Obj.$writableStackTrace = 1;
    $rt_throw($par2Obj);
},
nms_DataWatcher_getWatchedObject = ($this, $par1) => {
    let $var2, var$3, var$4, var$5;
    $var2 = $this.$watchedObjects;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = $par1;
    }
    if (var$3 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        $par1 = var$3.$value;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[$par1 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == $par1) {
                var$5 = $var2.$key;
                if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $par1 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    return $var2 === null ? null : $var2.$value0;
},
nms_DataWatcher_unwatchAndReturnAllWatched = $this => {
    let $var1, $var2, $var3, var$4, var$5;
    $var1 = null;
    if ($this.$objectChanged) {
        $var2 = $this.$watchedObjects;
        if ($var2.$cachedValues === null) {
            $var3 = new ju_HashMap$2;
            $var3.$this$01 = $var2;
            $var2.$cachedValues = $var3;
        }
        $var2 = $var2.$cachedValues.$iterator();
        while ($var2.$hasNext()) {
            $var3 = $var2.$next();
            if ($var3.$watched) {
                $var3.$watched = 0;
                if ($var1 === null) {
                    $var1 = new ju_ArrayList;
                    $var1.$array = $rt_createArray(jl_Object, 10);
                }
                ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
                var$4 = $var1.$array.data;
                var$5 = $var1.$size0;
                $var1.$size0 = var$5 + 1 | 0;
                var$4[var$5] = $var3;
                $var1.$modCount = $var1.$modCount + 1 | 0;
            }
        }
    }
    $this.$objectChanged = 0;
    return $var1;
},
nms_DataWatcher_writeWatchableObject = ($par0DataOutput, $par1WatchableObject) => {
    let $var2, var$4, $var4, $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$par1WatchableObject = $thread.pop();$par0DataOutput = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_DataWatcher_$callClinit();
        a: {
            $var2 = ($par1WatchableObject.$objectType << 5 | $par1WatchableObject.$dataValueId & 31) & 255;
            $par0DataOutput.$out0.$write0($var2);
            $par0DataOutput.$written = $par0DataOutput.$written + 1 | 0;
            switch ($par1WatchableObject.$objectType) {
                case 0:
                    $var2 = $par1WatchableObject.$watchedObject.$value1;
                    $par0DataOutput.$out0.$write0($var2);
                    $par0DataOutput.$written = $par0DataOutput.$written + 1 | 0;
                    break a;
                case 1:
                    break;
                case 2:
                    ji_DataOutputStream_writeInt($par0DataOutput, $par1WatchableObject.$watchedObject.$value);
                    break a;
                case 3:
                    var$4 = $par1WatchableObject.$watchedObject.$value3;
                    ji_DataOutputStream_writeInt($par0DataOutput, (isNaN(var$4) ? 1 : 0) ? 2143289344 : $rt_floatToRawIntBits(var$4));
                    break a;
                case 4:
                    $par1WatchableObject = $par1WatchableObject.$watchedObject;
                    nms_Packet_$callClinit();
                    if ($par1WatchableObject.$nativeString.length > 32767) {
                        $par1WatchableObject = new ji_IOException;
                        $par1WatchableObject.$suppressionEnabled = 1;
                        $par1WatchableObject.$writableStackTrace = 1;
                        $par1WatchableObject.$message = $rt_s(2108);
                        $rt_throw($par1WatchableObject);
                    }
                    ji_DataOutputStream_writeShort($par0DataOutput, $par1WatchableObject.$nativeString.length);
                    ji_DataOutputStream_writeChars($par0DataOutput, $par1WatchableObject);
                    break a;
                case 5:
                    $var4 = $par1WatchableObject.$watchedObject;
                    $ptr = 1;
                    continue main;
                case 6:
                    $var3 = $par1WatchableObject.$watchedObject;
                    ji_DataOutputStream_writeInt($par0DataOutput, $var3.$posX0);
                    ji_DataOutputStream_writeInt($par0DataOutput, $var3.$posY0);
                    ji_DataOutputStream_writeInt($par0DataOutput, $var3.$posZ0);
                    break a;
                default:
                    break a;
            }
            ji_DataOutputStream_writeShort($par0DataOutput, $par1WatchableObject.$watchedObject.$value6);
        }
        return;
    case 1:
        nms_Packet_writeItemStack($var4, $par0DataOutput);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0DataOutput, $par1WatchableObject, $var2, var$4, $var4, $var3, $ptr);
},
nms_DataWatcher_readWatchableObjects = $par0DataInput => {
    let $var1, $var6, $var2, $var3, $var4, $var5, var$8, var$9, var$10, $var7, var$12, var$13, var$14, var$15, var$16, var$17, $var8, var$19, $$je;
    nms_DataWatcher_$callClinit();
    $var1 = null;
    $var6 = $par0DataInput.$in.$read();
    if ($var6 < 0) {
        $par0DataInput = new ji_EOFException;
        $par0DataInput.$suppressionEnabled = 1;
        $par0DataInput.$writableStackTrace = 1;
        $rt_throw($par0DataInput);
    }
    $var2 = $var6 << 24 >> 24;
    while ($var2 != 127) {
        if ($var1 === null) {
            $var1 = new ju_ArrayList;
            $var1.$array = $rt_createArray(jl_Object, 10);
        }
        a: {
            b: {
                $var3 = ($var2 & 224) >> 5;
                $var4 = $var2 & 31;
                $var5 = null;
                switch ($var3) {
                    case 0:
                        $var5 = new nms_WatchableObject;
                        $var6 = $par0DataInput.$in.$read();
                        if ($var6 < 0) {
                            $par0DataInput = new ji_EOFException;
                            $par0DataInput.$suppressionEnabled = 1;
                            $par0DataInput.$writableStackTrace = 1;
                            $rt_throw($par0DataInput);
                        }
                        $var2 = $var6 << 24 >> 24;
                        var$8 = jl_Byte_byteCache.data[$var2 + 128 | 0];
                        $var5.$dataValueId = $var4;
                        $var5.$watchedObject = var$8;
                        $var5.$objectType = $var3;
                        $var5.$watched = 1;
                        break a;
                    case 1:
                        break b;
                    case 2:
                        $var5 = new nms_WatchableObject;
                        $var2 = ji_DataInputStream_readInt($par0DataInput);
                        if ($var2 >= (-128) && $var2 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$8 = jl_Integer_integerCache.data[$var2 + 128 | 0];
                        } else {
                            var$8 = new jl_Integer;
                            var$8.$value = $var2;
                        }
                        $var5.$dataValueId = $var4;
                        $var5.$watchedObject = var$8;
                        $var5.$objectType = $var3;
                        $var5.$watched = 1;
                        break a;
                    case 3:
                        $var5 = new nms_WatchableObject;
                        var$9 = $rt_intBitsToFloat(ji_DataInputStream_readInt($par0DataInput));
                        var$8 = new jl_Float;
                        var$8.$value3 = var$9;
                        $var5.$dataValueId = $var4;
                        $var5.$watchedObject = var$8;
                        $var5.$objectType = $var3;
                        $var5.$watched = 1;
                        break a;
                    case 4:
                        $var5 = new nms_WatchableObject;
                        var$8 = nms_Packet_readString($par0DataInput, 64);
                        $var5.$dataValueId = $var4;
                        $var5.$watchedObject = var$8;
                        $var5.$objectType = $var3;
                        $var5.$watched = 1;
                        break a;
                    case 5:
                        $var5 = new nms_WatchableObject;
                        nms_Packet_$callClinit();
                        var$10 = null;
                        $var2 = ji_DataInputStream_readShort($par0DataInput);
                        if ($var2 >= 0) {
                            $var6 = $par0DataInput.$in.$read();
                            if ($var6 < 0) {
                                $par0DataInput = new ji_EOFException;
                                $par0DataInput.$suppressionEnabled = 1;
                                $par0DataInput.$writableStackTrace = 1;
                                $rt_throw($par0DataInput);
                            }
                            $var6 = $var6 << 24 >> 24;
                            $var7 = ji_DataInputStream_readShort($par0DataInput);
                            var$10 = new nms_ItemStack;
                            nms_ItemStack_$callClinit();
                            var$10.$itemID = $var2;
                            var$10.$stackSize = $var6;
                            var$10.$itemDamage = $var7;
                            if ($var7 < 0)
                                var$10.$itemDamage = 0;
                            $var6 = ji_DataInputStream_readShort($par0DataInput);
                            if ($var6 < 0)
                                var$12 = null;
                            else {
                                var$13 = $rt_createByteArray($var6);
                                $var2 = var$13.data.length;
                                ji_DataInputStream_readFully($par0DataInput, var$13, 0, $var2);
                                var$14 = new ji_DataInputStream;
                                var$15 = new ji_BufferedInputStream;
                                var$12 = new cjj_GZIPInputStream;
                                var$16 = new ji_ByteArrayInputStream;
                                var$16.$buf0 = var$13;
                                var$16.$pos0 = 0;
                                var$16.$mark = 0;
                                var$16.$count = 0 + $var2 | 0;
                                var$17 = new cjj_Inflater;
                                cjj_ZStream__init_(var$17, cjj_Adler32__init_());
                                var$17.$finished0 = 0;
                                var$17.$finished0 = 0;
                                var$8 = cjj_Inflate__init_(var$17);
                                var$17.$istate = var$8;
                                $var6 = cjj_Inflate_inflateInit(var$8, 31);
                                if ($var6) {
                                    $par0DataInput = new cjj_GZIPException;
                                    $var1 = new jl_StringBuilder;
                                    jl_AbstractStringBuilder__init_($var1);
                                    jl_AbstractStringBuilder_append0($var1, $var6);
                                    jl_AbstractStringBuilder_append($var1, $rt_s(102));
                                    jl_AbstractStringBuilder_append($var1, var$17.$msg);
                                    ji_IOException__init_0($par0DataInput, jl_AbstractStringBuilder_toString($var1));
                                    $rt_throw($par0DataInput);
                                }
                                cjj_InflaterInputStream__init_(var$12, var$16, var$17, 512, 1);
                                var$12.$myinflater = 1;
                                var$15.$in = var$12;
                                var$15.$markpos = (-1);
                                var$15.$buf1 = $rt_createByteArray(8192);
                                var$14.$in = var$15;
                                var$14.$buff = $rt_createByteArray(8);
                                try {
                                    var$12 = nms_CompressedStreamTools_read(var$14);
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    $par0DataInput = $$je;
                                    var$14.$in.$close();
                                    $rt_throw($par0DataInput);

                                }
                                var$14.$in.$close();
                            }
                            var$10.$stackTagCompound = var$12;
                        }
                        $var5.$dataValueId = $var4;
                        $var5.$watchedObject = var$10;
                        $var5.$objectType = $var3;
                        $var5.$watched = 1;
                        break a;
                    case 6:
                        $var6 = ji_DataInputStream_readInt($par0DataInput);
                        $var7 = ji_DataInputStream_readInt($par0DataInput);
                        $var8 = ji_DataInputStream_readInt($par0DataInput);
                        $var5 = new nms_WatchableObject;
                        var$8 = new nms_ChunkCoordinates;
                        var$8.$posX0 = $var6;
                        var$8.$posY0 = $var7;
                        var$8.$posZ0 = $var8;
                        $var5.$dataValueId = $var4;
                        $var5.$watchedObject = var$8;
                        $var5.$objectType = $var3;
                        $var5.$watched = 1;
                        break a;
                    default:
                }
                break a;
            }
            $var5 = new nms_WatchableObject;
            $var2 = ji_DataInputStream_readShort($par0DataInput);
            if ($var2 >= (-128) && $var2 <= 127) {
                jl_Short_ensureShortCache();
                var$8 = jl_Short_shortCache.data[$var2 + 128 | 0];
            } else {
                var$8 = new jl_Short;
                var$8.$value6 = $var2;
            }
            $var5.$dataValueId = $var4;
            $var5.$watchedObject = var$8;
            $var5.$objectType = $var3;
            $var5.$watched = 1;
        }
        ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
        var$19 = $var1.$array.data;
        $var2 = $var1.$size0;
        $var1.$size0 = $var2 + 1 | 0;
        var$19[$var2] = $var5;
        $var1.$modCount = $var1.$modCount + 1 | 0;
        $var6 = $par0DataInput.$in.$read();
        if ($var6 < 0) {
            $par0DataInput = new ji_EOFException;
            $par0DataInput.$suppressionEnabled = 1;
            $par0DataInput.$writableStackTrace = 1;
            $rt_throw($par0DataInput);
        }
        $var2 = $var6 << 24 >> 24;
    }
    return $var1;
},
nms_DataWatcher__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_DataWatcher_dataTypes = var$1;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(jl_Byte), jl_Integer_integerCache.data[128]);
    var$1 = nms_DataWatcher_dataTypes;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(jl_Short), jl_Integer_integerCache.data[129]);
    var$1 = nms_DataWatcher_dataTypes;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(jl_Integer), jl_Integer_integerCache.data[130]);
    var$1 = nms_DataWatcher_dataTypes;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(jl_Float), jl_Integer_integerCache.data[131]);
    var$1 = nms_DataWatcher_dataTypes;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(jl_String), jl_Integer_integerCache.data[132]);
    var$1 = nms_DataWatcher_dataTypes;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(nms_ItemStack), jl_Integer_integerCache.data[133]);
    var$1 = nms_DataWatcher_dataTypes;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_cls(nms_ChunkCoordinates), jl_Integer_integerCache.data[134]);
},
nms_EnumEntitySize = $rt_classWithoutFields(jl_Enum),
nms_EnumEntitySize_SIZE_1 = null,
nms_EnumEntitySize_SIZE_2 = null,
nms_EnumEntitySize_SIZE_3 = null,
nms_EnumEntitySize_SIZE_4 = null,
nms_EnumEntitySize_SIZE_5 = null,
nms_EnumEntitySize_SIZE_6 = null,
nms_EnumEntitySize_$VALUES = null,
nms_EnumEntitySize_values = () => {
    return nms_EnumEntitySize_$VALUES.$clone0();
},
nms_EnumEntitySize_multiplyBy32AndRound = ($this, $par1) => {
    let var$2, $var3, var$4;
    var$2 = $par1 | 0;
    if ($par1 < var$2)
        var$2 = var$2 - 1 | 0;
    a: {
        $var3 = $par1 - (var$2 + 0.5);
        nms_EnumEntitySizeHelper_$callClinit();
        switch (nms_EnumEntitySizeHelper_field_96565_a.data[$this.$ordinal]) {
            case 1:
                b: {
                    if ($var3 >= 0.0) {
                        if ($var3 >= 0.3125)
                            break b;
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 > var$4)
                            var$4 = var$4 + 1 | 0;
                        return var$4;
                    }
                    if ($var3 < (-0.3125)) {
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 > var$4)
                            var$4 = var$4 + 1 | 0;
                        return var$4;
                    }
                }
                $par1 = $par1 * 32.0;
                var$4 = $par1 | 0;
                if ($par1 < var$4)
                    var$4 = var$4 - 1 | 0;
                return var$4;
            case 2:
                c: {
                    if ($var3 >= 0.0) {
                        if ($var3 >= 0.3125)
                            break c;
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 < var$4)
                            var$4 = var$4 - 1 | 0;
                        return var$4;
                    }
                    if ($var3 < (-0.3125)) {
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 < var$4)
                            var$4 = var$4 - 1 | 0;
                        return var$4;
                    }
                }
                $par1 = $par1 * 32.0;
                var$4 = $par1 | 0;
                if ($par1 > var$4)
                    var$4 = var$4 + 1 | 0;
                return var$4;
            case 3:
                break;
            case 4:
                d: {
                    if ($var3 >= 0.0) {
                        if ($var3 >= 0.1875)
                            break d;
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 > var$4)
                            var$4 = var$4 + 1 | 0;
                        return var$4;
                    }
                    if ($var3 < (-0.1875)) {
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 > var$4)
                            var$4 = var$4 + 1 | 0;
                        return var$4;
                    }
                }
                $par1 = $par1 * 32.0;
                var$4 = $par1 | 0;
                if ($par1 < var$4)
                    var$4 = var$4 - 1 | 0;
                return var$4;
            case 5:
                e: {
                    if ($var3 >= 0.0) {
                        if ($var3 >= 0.1875)
                            break e;
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 < var$4)
                            var$4 = var$4 - 1 | 0;
                        return var$4;
                    }
                    if ($var3 < (-0.1875)) {
                        $par1 = $par1 * 32.0;
                        var$4 = $par1 | 0;
                        if ($par1 < var$4)
                            var$4 = var$4 - 1 | 0;
                        return var$4;
                    }
                }
                $par1 = $par1 * 32.0;
                var$4 = $par1 | 0;
                if ($par1 > var$4)
                    var$4 = var$4 + 1 | 0;
                return var$4;
            case 6:
                break a;
            default:
                break a;
        }
        if ($var3 <= 0.0) {
            $par1 = $par1 * 32.0;
            var$4 = $par1 | 0;
            if ($par1 > var$4)
                var$4 = var$4 + 1 | 0;
            return var$4;
        }
        $par1 = $par1 * 32.0;
        var$4 = $par1 | 0;
        if ($par1 < var$4)
            var$4 = var$4 - 1 | 0;
        return var$4;
    }
    if ($var3 <= 0.0) {
        $par1 = $par1 * 32.0;
        var$4 = $par1 | 0;
        if ($par1 < var$4)
            var$4 = var$4 - 1 | 0;
        return var$4;
    }
    $par1 = $par1 * 32.0;
    var$4 = $par1 | 0;
    if ($par1 > var$4)
        var$4 = var$4 + 1 | 0;
    return var$4;
},
nms_EnumEntitySize_$values = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_EnumEntitySize, 6);
    var$2 = var$1.data;
    var$2[0] = nms_EnumEntitySize_SIZE_1;
    var$2[1] = nms_EnumEntitySize_SIZE_2;
    var$2[2] = nms_EnumEntitySize_SIZE_3;
    var$2[3] = nms_EnumEntitySize_SIZE_4;
    var$2[4] = nms_EnumEntitySize_SIZE_5;
    var$2[5] = nms_EnumEntitySize_SIZE_6;
    return var$1;
},
nms_EnumEntitySize__clinit_ = () => {
    let var$1;
    var$1 = new nms_EnumEntitySize;
    var$1.$name0 = $rt_s(2462);
    var$1.$ordinal = 0;
    nms_EnumEntitySize_SIZE_1 = var$1;
    var$1 = new nms_EnumEntitySize;
    var$1.$name0 = $rt_s(2463);
    var$1.$ordinal = 1;
    nms_EnumEntitySize_SIZE_2 = var$1;
    var$1 = new nms_EnumEntitySize;
    var$1.$name0 = $rt_s(2464);
    var$1.$ordinal = 2;
    nms_EnumEntitySize_SIZE_3 = var$1;
    var$1 = new nms_EnumEntitySize;
    var$1.$name0 = $rt_s(2465);
    var$1.$ordinal = 3;
    nms_EnumEntitySize_SIZE_4 = var$1;
    var$1 = new nms_EnumEntitySize;
    var$1.$name0 = $rt_s(2466);
    var$1.$ordinal = 4;
    nms_EnumEntitySize_SIZE_5 = var$1;
    var$1 = new nms_EnumEntitySize;
    var$1.$name0 = $rt_s(2467);
    var$1.$ordinal = 5;
    nms_EnumEntitySize_SIZE_6 = var$1;
    nms_EnumEntitySize_$VALUES = nms_EnumEntitySize_$values();
};
function nms_PathNavigate() {
    let a = this; jl_Object.call(a);
    a.$theEntity = null;
    a.$worldObj3 = null;
    a.$currentPath = null;
    a.$speed0 = 0.0;
    a.$pathSearchRange = null;
    a.$noSunPathfind = 0;
    a.$totalTicks = 0;
    a.$ticksAtLastPos = 0;
    a.$lastPosCheck = null;
    a.$canPassOpenWoodenDoors = 0;
    a.$canPassClosedWoodenDoors = 0;
    a.$avoidsWater = 0;
    a.$canSwim = 0;
}
let nms_PathNavigate_setPath = ($this, $par1PathEntity, $par2) => {
    let $var4, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$par2 = $thread.pop();$par1PathEntity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1PathEntity === null) {
            $this.$currentPath = null;
            return 0;
        }
        if (!nms_PathEntity_isSamePath($par1PathEntity, $this.$currentPath))
            $this.$currentPath = $par1PathEntity;
        if ($this.$noSunPathfind) {
            $ptr = 1;
            continue main;
        }
        if (!$this.$currentPath.$pathLength)
            return 0;
        $this.$speed0 = $par2;
        $var4 = $this.$worldObj3.$vecPool;
        $par2 = $this.$theEntity.$posX;
        $ptr = 2;
        continue main;
    case 1:
        nms_PathNavigate_removeSunnyPath($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$currentPath.$pathLength)
            return 0;
        $this.$speed0 = $par2;
        $var4 = $this.$worldObj3.$vecPool;
        $par2 = $this.$theEntity.$posX;
        $ptr = 2;
    case 2:
        $tmp = nms_PathNavigate_getPathableYPos($this);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        $var4 = nms_Vec3Pool_getVecFromPool($var4, $par2, var$4, $this.$theEntity.$posZ);
        $this.$ticksAtLastPos = $this.$totalTicks;
        $par1PathEntity = $this.$lastPosCheck;
        $par1PathEntity.$xCoord = $var4.$xCoord;
        $par1PathEntity.$yCoord = $var4.$yCoord;
        $par1PathEntity.$zCoord = $var4.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1PathEntity, $par2, $var4, var$4, $ptr);
},
nms_PathNavigate_onUpdateNavigation = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$totalTicks = $this.$totalTicks + 1 | 0;
        var$1 = $this.$currentPath;
        if (!(var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1)) {
            var$1 = $this.$theEntity;
            if (var$1.$onGround)
                var$2 = 1;
            else {
                if ($this.$canSwim) {
                    $ptr = 1;
                    continue main;
                }
                var$2 = 0;
            }
            if (var$2) {
                $ptr = 2;
                continue main;
            }
            $var1 = $this.$currentPath;
            if (!($var1 !== null && !($var1.$currentPathIndex < $var1.$pathLength ? 0 : 1) ? 0 : 1)) {
                $var1 = nms_PathEntity_getVectorFromIndex($var1, $this.$theEntity, $var1.$currentPathIndex);
                if ($var1 !== null) {
                    var$1 = $this.$theEntity.$moveHelper;
                    var$4 = $var1.$xCoord;
                    var$5 = $var1.$yCoord;
                    var$6 = $var1.$zCoord;
                    var$7 = $this.$speed0;
                    var$1.$posX5 = var$4;
                    var$1.$posY6 = var$5;
                    var$1.$posZ5 = var$6;
                    var$1.$speed2 = var$7;
                    var$1.$update2 = 1;
                }
            }
        }
        return;
    case 1:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2) {
            var$1 = $this.$theEntity;
            $ptr = 3;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            $var1 = $this.$currentPath;
            if (!($var1 !== null && !($var1.$currentPathIndex < $var1.$pathLength ? 0 : 1) ? 0 : 1)) {
                $var1 = nms_PathEntity_getVectorFromIndex($var1, $this.$theEntity, $var1.$currentPathIndex);
                if ($var1 !== null) {
                    var$1 = $this.$theEntity.$moveHelper;
                    var$4 = $var1.$xCoord;
                    var$5 = $var1.$yCoord;
                    var$6 = $var1.$zCoord;
                    var$7 = $this.$speed0;
                    var$1.$posX5 = var$4;
                    var$1.$posY6 = var$5;
                    var$1.$posZ5 = var$6;
                    var$1.$speed2 = var$7;
                    var$1.$update2 = 1;
                }
            }
            return;
        }
        $ptr = 2;
    case 2:
        nms_PathNavigate_pathFollow($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$currentPath;
        if (!($var1 !== null && !($var1.$currentPathIndex < $var1.$pathLength ? 0 : 1) ? 0 : 1)) {
            $var1 = nms_PathEntity_getVectorFromIndex($var1, $this.$theEntity, $var1.$currentPathIndex);
            if ($var1 !== null) {
                var$1 = $this.$theEntity.$moveHelper;
                var$4 = $var1.$xCoord;
                var$5 = $var1.$yCoord;
                var$6 = $var1.$zCoord;
                var$7 = $this.$speed0;
                var$1.$posX5 = var$4;
                var$1.$posY6 = var$5;
                var$1.$posZ5 = var$6;
                var$1.$speed2 = var$7;
                var$1.$update2 = 1;
            }
        }
        return;
    case 3:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!((var$2 ? 1 : 0) ? 1 : 0)) {
            $var1 = $this.$currentPath;
            if (!($var1 !== null && !($var1.$currentPathIndex < $var1.$pathLength ? 0 : 1) ? 0 : 1)) {
                $var1 = nms_PathEntity_getVectorFromIndex($var1, $this.$theEntity, $var1.$currentPathIndex);
                if ($var1 !== null) {
                    var$1 = $this.$theEntity.$moveHelper;
                    var$4 = $var1.$xCoord;
                    var$5 = $var1.$yCoord;
                    var$6 = $var1.$zCoord;
                    var$7 = $this.$speed0;
                    var$1.$posX5 = var$4;
                    var$1.$posY6 = var$5;
                    var$1.$posZ5 = var$6;
                    var$1.$speed2 = var$7;
                    var$1.$update2 = 1;
                }
            }
            return;
        }
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, var$4, var$5, var$6, var$7, $ptr);
},
nms_PathNavigate_pathFollow = $this => {
    let var$1, var$2, $var3, $var1, var$5, $var2, $var4, $var8, var$9, var$10, var$11, $var5, $var7, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();$var3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj3.$vecPool;
        var$2 = $this.$theEntity.$posX;
        $ptr = 1;
    case 1:
        $tmp = nms_PathNavigate_getPathableYPos($this);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var1 = nms_Vec3Pool_getVecFromPool(var$1, var$2, $var3, $this.$theEntity.$posZ);
        var$5 = $this.$currentPath;
        $var2 = var$5.$pathLength;
        $var4 = var$5.$currentPathIndex;
        $var3 = $var4;
        a: {
            while (true) {
                if ($var3 >= $var2) {
                    $var3 = $var2;
                    break a;
                }
                if (var$5.$points.data[$var3].$yCoord1 != ($var1.$yCoord | 0))
                    break;
                $var3 = $var3 + 1 | 0;
            }
        }
        $var8 = $this.$theEntity.$width;
        var$9 = $var8 * $var8;
        while ($var4 < $var3) {
            var$5 = nms_PathEntity_getVectorFromIndex($this.$currentPath, $this.$theEntity, $var4);
            var$2 = var$5.$xCoord - $var1.$xCoord;
            var$10 = var$5.$yCoord - $var1.$yCoord;
            var$11 = var$5.$zCoord - $var1.$zCoord;
            if (var$2 * var$2 + var$10 * var$10 + var$11 * var$11 < var$9)
                $this.$currentPath.$currentPathIndex = $var4 + 1 | 0;
            $var4 = $var4 + 1 | 0;
        }
        var$5 = $this.$theEntity;
        $var8 = var$5.$width;
        $var2 = $var8 | 0;
        if ($var8 > $var2)
            $var2 = $var2 + 1 | 0;
        $var5 = (var$5.$height0 | 0) + 1 | 0;
        $var7 = $var3 - 1 | 0;
        var$5 = $this.$currentPath;
        if ($var7 < var$5.$currentPathIndex) {
            $var3 = $this.$totalTicks;
            if (($var3 - $this.$ticksAtLastPos | 0) > 100) {
                var$5 = $this.$lastPosCheck;
                var$2 = var$5.$xCoord;
                var$10 = $var1.$xCoord;
                var$2 = var$2 - var$10;
                var$9 = var$5.$yCoord;
                var$11 = $var1.$yCoord;
                var$9 = var$9 - var$11;
                var$14 = var$5.$zCoord;
                var$15 = $var1.$zCoord;
                var$14 = var$14 - var$15;
                if (var$2 * var$2 + var$9 * var$9 + var$14 * var$14 < 2.25)
                    $this.$currentPath = null;
                $this.$ticksAtLastPos = $var3;
                var$5.$xCoord = var$10;
                var$5.$yCoord = var$11;
                var$5.$zCoord = var$15;
            }
            return;
        }
        var$5 = nms_PathEntity_getVectorFromIndex(var$5, $this.$theEntity, $var7);
        $ptr = 2;
    case 2:
        $tmp = nms_PathNavigate_isDirectPathBetweenPoints($this, $var1, var$5, $var2, $var5, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3)
            $this.$currentPath.$currentPathIndex = $var7;
        else {
            $var7 = $var7 + (-1) | 0;
            var$5 = $this.$currentPath;
            if ($var7 >= var$5.$currentPathIndex) {
                var$5 = nms_PathEntity_getVectorFromIndex(var$5, $this.$theEntity, $var7);
                continue main;
            }
        }
        $var3 = $this.$totalTicks;
        if (($var3 - $this.$ticksAtLastPos | 0) > 100) {
            var$5 = $this.$lastPosCheck;
            var$2 = var$5.$xCoord;
            var$10 = $var1.$xCoord;
            var$2 = var$2 - var$10;
            var$9 = var$5.$yCoord;
            var$11 = $var1.$yCoord;
            var$9 = var$9 - var$11;
            var$14 = var$5.$zCoord;
            var$15 = $var1.$zCoord;
            var$14 = var$14 - var$15;
            if (var$2 * var$2 + var$9 * var$9 + var$14 * var$14 < 2.25)
                $this.$currentPath = null;
            $this.$ticksAtLastPos = $var3;
            var$5.$xCoord = var$10;
            var$5.$yCoord = var$11;
            var$5.$zCoord = var$15;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var3, $var1, var$5, $var2, $var4, $var8, var$9, var$10, var$11, $var5, $var7, var$14, var$15, $ptr);
},
nms_PathNavigate_getPathableYPos = $this => {
    let var$1, $var1, var$3, var$4, var$5, $var3, $var2, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity;
        $ptr = 1;
    case 1:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 && $this.$canSwim) {
            var$1 = $this.$theEntity;
            $var1 = var$1.$boundingBox0.$minY0 | 0;
            var$3 = $this.$worldObj3;
            var$4 = var$1.$posX;
            var$5 = var$4 | 0;
            if (var$4 < var$5)
                var$5 = var$5 - 1 | 0;
            var$4 = var$1.$posZ;
            $var3 = var$4 | 0;
            if (var$4 < $var3)
                $var3 = $var3 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        return $this.$theEntity.$boundingBox0.$minY0 + 0.5 | 0;
    case 2:
        $tmp = nms_World_getBlockId(var$3, var$5, $var1, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = 0;
        nms_Block_$callClinit();
        if ($var2 != nms_Block_waterMoving.$blockID && $var2 != nms_Block_waterStill.$blockID)
            return $var1;
        $var1 = $var1 + 1 | 0;
        var$1 = $this.$worldObj3;
        var$3 = $this.$theEntity;
        var$8 = var$3.$posX;
        var$9 = var$8 | 0;
        if (var$8 < var$9)
            var$9 = var$9 - 1 | 0;
        var$8 = var$3.$posZ;
        var$5 = var$8 | 0;
        if (var$8 < var$5)
            var$5 = var$5 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId(var$1, var$9, $var1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = $var3 + 1 | 0;
        if ($var3 > 16)
            return $this.$theEntity.$boundingBox0.$minY0 | 0;
        nms_Block_$callClinit();
        if ($var2 != nms_Block_waterMoving.$blockID && $var2 != nms_Block_waterStill.$blockID)
            return $var1;
        $var1 = $var1 + 1 | 0;
        var$1 = $this.$worldObj3;
        var$3 = $this.$theEntity;
        var$8 = var$3.$posX;
        var$9 = var$8 | 0;
        if (var$8 < var$9)
            var$9 = var$9 - 1 | 0;
        var$8 = var$3.$posZ;
        var$5 = var$8 | 0;
        if (var$8 < var$5)
            var$5 = var$5 - 1 | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, $var3, $var2, var$8, var$9, $ptr);
},
nms_PathNavigate_removeSunnyPath = $this => {
    let $var2, var$2, var$3, var$4, $var1, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var1 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$worldObj3;
        var$2 = $this.$theEntity;
        var$3 = var$2.$posX;
        var$4 = var$3 | 0;
        if (var$3 < var$4)
            var$4 = var$4 - 1 | 0;
        $var1 = var$2.$boundingBox0.$minY0 + 0.5 | 0;
        var$3 = var$2.$posZ;
        var$6 = var$3 | 0;
        if (var$3 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$4 >> 4;
        var$8 = var$6 >> 4;
        $var2 = $var2.$chunkProvider;
        var$2 = $var2.$loadedChunkHashMap;
        var$9 = Long_or(Long_and(Long_fromInt(var$7), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$8), Long_create(4294967295, 0)), 32));
        var$10 = Long_lo(Long_xor(var$9, Long_shru(var$9, 32)));
        var$10 = var$10 ^ (var$10 >>> 20 | 0) ^ (var$10 >>> 12 | 0);
        var$11 = var$10 ^ (var$10 >>> 7 | 0) ^ (var$10 >>> 4 | 0);
        var$12 = var$2.$hashArray.data;
        var$2 = var$12[var$11 & (var$12.length - 1 | 0)];
        a: {
            while (var$2 !== null) {
                if (Long_eq(var$2.$key1, var$9)) {
                    var$2 = var$2.$value4;
                    break a;
                }
                var$2 = var$2.$nextEntry;
            }
            var$2 = null;
        }
        b: {
            var$2 = var$2;
            if (var$2 === null) {
                if ($var2.$worldObj0.$findingSpawnPoint)
                    break b;
                if ($var2.$loadChunkOnProvideRequest)
                    break b;
                var$2 = $var2.$defaultEmptyChunk;
            }
            c: {
                d: {
                    if (!var$2.$canBlockSeeTheSky(var$4 & 15, $var1, var$6 & 15)) {
                        $var1 = 0;
                        while (true) {
                            $var2 = $this.$currentPath;
                            if ($var1 >= $var2.$pathLength)
                                break d;
                            $var2 = $var2.$points.data[$var1];
                            var$2 = $this.$worldObj3;
                            var$6 = $var2.$xCoord1;
                            var$4 = $var2.$yCoord1;
                            var$7 = $var2.$zCoord1;
                            var$10 = var$6 >> 4;
                            var$13 = var$7 >> 4;
                            $var2 = var$2.$chunkProvider;
                            var$2 = $var2.$loadedChunkHashMap;
                            var$14 = Long_or(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$13), Long_create(4294967295, 0)), 32));
                            var$8 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                            var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
                            var$8 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                            var$12 = var$2.$hashArray.data;
                            var$2 = var$12[var$8 & (var$12.length - 1 | 0)];
                            e: {
                                while (var$2 !== null) {
                                    if (Long_eq(var$2.$key1, var$14)) {
                                        var$2 = var$2.$value4;
                                        break e;
                                    }
                                    var$2 = var$2.$nextEntry;
                                }
                                var$2 = null;
                            }
                            var$2 = var$2;
                            if (var$2 === null) {
                                if ($var2.$worldObj0.$findingSpawnPoint)
                                    break c;
                                if ($var2.$loadChunkOnProvideRequest)
                                    break c;
                                var$2 = $var2.$defaultEmptyChunk;
                            }
                            if (var$2.$canBlockSeeTheSky(var$6 & 15, var$4, var$7 & 15)) {
                                $this.$currentPath.$pathLength = $var1 - 1 | 0;
                                return;
                            }
                            $var1 = $var1 + 1 | 0;
                        }
                    }
                }
                return;
            }
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        f: {
            g: {
                if (!var$2.$canBlockSeeTheSky(var$4 & 15, $var1, var$6 & 15)) {
                    $var1 = 0;
                    while (true) {
                        $var2 = $this.$currentPath;
                        if ($var1 >= $var2.$pathLength)
                            break g;
                        $var2 = $var2.$points.data[$var1];
                        var$2 = $this.$worldObj3;
                        var$6 = $var2.$xCoord1;
                        var$4 = $var2.$yCoord1;
                        var$7 = $var2.$zCoord1;
                        var$10 = var$6 >> 4;
                        var$13 = var$7 >> 4;
                        $var2 = var$2.$chunkProvider;
                        var$2 = $var2.$loadedChunkHashMap;
                        var$14 = Long_or(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$13), Long_create(4294967295, 0)), 32));
                        var$8 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                        var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
                        var$8 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                        var$12 = var$2.$hashArray.data;
                        var$2 = var$12[var$8 & (var$12.length - 1 | 0)];
                        a: {
                            while (var$2 !== null) {
                                if (Long_eq(var$2.$key1, var$14)) {
                                    var$2 = var$2.$value4;
                                    break a;
                                }
                                var$2 = var$2.$nextEntry;
                            }
                            var$2 = null;
                        }
                        var$2 = var$2;
                        if (var$2 === null) {
                            if ($var2.$worldObj0.$findingSpawnPoint)
                                break f;
                            if ($var2.$loadChunkOnProvideRequest)
                                break f;
                            var$2 = $var2.$defaultEmptyChunk;
                        }
                        if (var$2.$canBlockSeeTheSky(var$6 & 15, var$4, var$7 & 15)) {
                            $this.$currentPath.$pathLength = $var1 - 1 | 0;
                            return;
                        }
                        $var1 = $var1 + 1 | 0;
                    }
                }
            }
            return;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, var$10, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        f: {
            while (true) {
                if (var$2.$canBlockSeeTheSky(var$6 & 15, var$4, var$7 & 15)) {
                    $this.$currentPath.$pathLength = $var1 - 1 | 0;
                    return;
                }
                $var1 = $var1 + 1 | 0;
                $var2 = $this.$currentPath;
                if ($var1 >= $var2.$pathLength)
                    break;
                $var2 = $var2.$points.data[$var1];
                var$2 = $this.$worldObj3;
                var$6 = $var2.$xCoord1;
                var$4 = $var2.$yCoord1;
                var$7 = $var2.$zCoord1;
                var$10 = var$6 >> 4;
                var$13 = var$7 >> 4;
                $var2 = var$2.$chunkProvider;
                var$2 = $var2.$loadedChunkHashMap;
                var$14 = Long_or(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$13), Long_create(4294967295, 0)), 32));
                var$8 = Long_lo(Long_xor(var$14, Long_shru(var$14, 32)));
                var$8 = var$8 ^ (var$8 >>> 20 | 0) ^ (var$8 >>> 12 | 0);
                var$8 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                var$12 = var$2.$hashArray.data;
                var$2 = var$12[var$8 & (var$12.length - 1 | 0)];
                a: {
                    while (var$2 !== null) {
                        if (Long_eq(var$2.$key1, var$14)) {
                            var$2 = var$2.$value4;
                            break a;
                        }
                        var$2 = var$2.$nextEntry;
                    }
                    var$2 = null;
                }
                var$2 = var$2;
                if (var$2 !== null)
                    continue;
                if ($var2.$worldObj0.$findingSpawnPoint)
                    break f;
                if ($var2.$loadChunkOnProvideRequest)
                    break f;
                var$2 = $var2.$defaultEmptyChunk;
            }
            return;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, var$4, $var1, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_PathNavigate_isDirectPathBetweenPoints = ($this, $par1Vec3, $par2Vec3, $par3, $par4, $par5) => {
    let $var8, $var6, $var12, $var7, $var10, $var14, $var24, var$13, $var16, $var18, $var20, $var22, $var25, $var26, $var27, $var28, $var29, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var29 = $thread.pop();$var28 = $thread.pop();$var27 = $thread.pop();$var26 = $thread.pop();$var25 = $thread.pop();$var22 = $thread.pop();$var20 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();var$13 = $thread.pop();$var24 = $thread.pop();$var14 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var12 = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Vec3 = $thread.pop();$par1Vec3
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $par1Vec3.$xCoord;
        $var6 = $var8 | 0;
        if ($var8 < $var6)
            $var6 = $var6 - 1 | 0;
        $var12 = $par1Vec3.$zCoord;
        $var7 = $var12 | 0;
        if ($var12 < $var7)
            $var7 = $var7 - 1 | 0;
        $var8 = $par2Vec3.$xCoord - $var8;
        $var10 = $par2Vec3.$zCoord - $var12;
        $var12 = $var8 * $var8 + $var10 * $var10;
        if ($var12 < 1.0E-8)
            return 0;
        $var14 = 1.0 / jl_Math_sqrt($var12);
        $var12 = $var8 * $var14;
        $var14 = $var10 * $var14;
        $par3 = $par3 + 2 | 0;
        $par5 = $par5 + 2 | 0;
        $var24 = $par1Vec3.$yCoord | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_PathNavigate_isSafeToStandAt($this, $var6, $var24, $var7, $par3, $par4, $par5, $par1Vec3, $var12, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var24 = $tmp;
        if (!$var24)
            return 0;
        var$13 = $par3 + (-2) | 0;
        $par5 = $par5 + (-2) | 0;
        $var16 = 1.0 / jl_Math_absImpl($var12);
        $var18 = 1.0 / jl_Math_absImpl($var14);
        $var20 = ($var6 * 1 | 0) - $par1Vec3.$xCoord;
        $var22 = ($var7 * 1 | 0) - $par1Vec3.$zCoord;
        $par3 = $rt_compare($var12, 0.0);
        if ($par3 >= 0)
            $var20 = $var20 + 1.0;
        $var25 = $rt_compare($var14, 0.0);
        if ($var25 >= 0)
            $var22 = $var22 + 1.0;
        $var20 = $var20 / $var12;
        $var22 = $var22 / $var14;
        $var24 = $par3 >= 0 ? 1 : (-1);
        $var25 = $var25 >= 0 ? 1 : (-1);
        $var8 = $par2Vec3.$xCoord;
        $var26 = $var8 | 0;
        if ($var8 < $var26)
            $var26 = $var26 - 1 | 0;
        $var8 = $par2Vec3.$zCoord;
        $var27 = $var8 | 0;
        if ($var8 < $var27)
            $var27 = $var27 - 1 | 0;
        $var28 = $var26 - $var6 | 0;
        $var29 = $var27 - $var7 | 0;
        if ($rt_imul($var28, $var24) <= 0 && $rt_imul($var29, $var25) <= 0)
            return 1;
        if ($var20 >= $var22) {
            $var22 = $var22 + $var18;
            $var7 = $var7 + $var25 | 0;
            $var29 = $var27 - $var7 | 0;
        } else {
            $var20 = $var20 + $var16;
            $var6 = $var6 + $var24 | 0;
            $var28 = $var26 - $var6 | 0;
        }
        $par3 = $par1Vec3.$yCoord | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_PathNavigate_isSafeToStandAt($this, $var6, $par3, $var7, var$13, $par4, $par5, $par1Vec3, $var12, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        if (!$par3)
            return 0;
        if ($rt_imul($var28, $var24) <= 0 && $rt_imul($var29, $var25) <= 0)
            return 1;
        if ($var20 >= $var22) {
            $var22 = $var22 + $var18;
            $var7 = $var7 + $var25 | 0;
            $var29 = $var27 - $var7 | 0;
        } else {
            $var20 = $var20 + $var16;
            $var6 = $var6 + $var24 | 0;
            $var28 = $var26 - $var6 | 0;
        }
        $par3 = $par1Vec3.$yCoord | 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Vec3, $par2Vec3, $par3, $par4, $par5, $var8, $var6, $var12, $var7, $var10, $var14, $var24, var$13, $var16, $var18, $var20, $var22, $var25, $var26, $var27, $var28, $var29, $ptr);
},
nms_PathNavigate_isSafeToStandAt = ($this, $par1, $par2, $par3, $par4, $par5, $par6, $par7Vec3, $par8, $par10) => {
    let $var14, $var13, $var15, $var21, $var20, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var20 = $thread.pop();$var21 = $thread.pop();$var15 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();$par10 = $thread.pop();$par8 = $thread.pop();$par7Vec3 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var14 = $par1 - ($par4 / 2 | 0) | 0;
        $var13 = $par3 - ($par6 / 2 | 0) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_PathNavigate_isPositionClear($this, $var14, $par2, $var13, $par4, $par5, $par6, $par7Vec3, $par8, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (!$par1)
            return 0;
        $par1 = $var14 + $par4 | 0;
        $par4 = $var13 + $par6 | 0;
        $par3 = $par2 - 1 | 0;
        while ($var14 < $par1) {
            $var15 = $var13;
            while ($var15 < $par4) {
                if (($var14 + 0.5 - $par7Vec3.$xCoord) * $par8 + ($var15 + 0.5 - $par7Vec3.$zCoord) * $par10 >= 0.0) {
                    $var21 = $this.$worldObj3;
                    $ptr = 2;
                    continue main;
                }
                $var15 = $var15 + 1 | 0;
            }
            $var14 = $var14 + 1 | 0;
        }
        return 1;
    case 2:
        $tmp = nms_World_getBlockId($var21, $var14, $par3, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        if ($var20 <= 0)
            return 0;
        nms_Block_$callClinit();
        $var21 = nms_Block_blocksList.data[$var20].$blockMaterial;
        nms_Material_$callClinit();
        if ($var21 === nms_Material_water) {
            var$15 = $this.$theEntity;
            $ptr = 3;
            continue main;
        }
        if ($var21 === nms_Material_lava)
            return 0;
        a: while (true) {
            $var15 = $var15 + 1 | 0;
            while ($var15 >= $par4) {
                $var14 = $var14 + 1 | 0;
                if ($var14 >= $par1)
                    break a;
                $var15 = $var13;
            }
            if (($var14 + 0.5 - $par7Vec3.$xCoord) * $par8 + ($var15 + 0.5 - $par7Vec3.$zCoord) * $par10 < 0.0)
                continue;
            else {
                $var21 = $this.$worldObj3;
                continue main;
            }
        }
        return 1;
    case 3:
        $tmp = var$15.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return 0;
        if ($var21 === nms_Material_lava)
            return 0;
        b: while (true) {
            $var15 = $var15 + 1 | 0;
            while ($var15 >= $par4) {
                $var14 = $var14 + 1 | 0;
                if ($var14 >= $par1)
                    break b;
                $var15 = $var13;
            }
            if (($var14 + 0.5 - $par7Vec3.$xCoord) * $par8 + ($var15 + 0.5 - $par7Vec3.$zCoord) * $par10 < 0.0)
                continue;
            else {
                $var21 = $this.$worldObj3;
                $ptr = 2;
                continue main;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par5, $par6, $par7Vec3, $par8, $par10, $var14, $var13, $var15, $var21, $var20, var$15, $ptr);
},
nms_PathNavigate_isPositionClear = ($this, $var12, $par2, $par3, $par4, $par5, $par6, $par7Vec3, $par8, $par10) => {
    let var$10, $var13, $var14, var$13, $var19, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var19 = $thread.pop();var$13 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();var$10 = $thread.pop();$par10 = $thread.pop();$par8 = $thread.pop();$par7Vec3 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$var12 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$10 = $var12 + $par4 | 0;
        $par4 = $par2 + $par5 | 0;
        $par6 = $par3 + $par6 | 0;
        while ($var12 < var$10) {
            $var13 = $par2;
            while ($var13 < $par4) {
                $var14 = $par3;
                while ($var14 < $par6) {
                    if (($var12 + 0.5 - $par7Vec3.$xCoord) * $par8 + ($var14 + 0.5 - $par7Vec3.$zCoord) * $par10 >= 0.0) {
                        var$13 = $this.$worldObj3;
                        $ptr = 1;
                        continue main;
                    }
                    $var14 = $var14 + 1 | 0;
                }
                $var13 = $var13 + 1 | 0;
            }
            $var12 = $var12 + 1 | 0;
        }
        return 1;
    case 1:
        $tmp = nms_World_getBlockId(var$13, $var12, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var19 > 0) {
            nms_Block_$callClinit();
            var$13 = nms_Block_blocksList.data[$var19];
            var$15 = $this.$worldObj3;
            $ptr = 2;
            continue main;
        }
        a: while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 >= $par6) {
                $var13 = $var13 + 1 | 0;
                while ($var13 >= $par4) {
                    $var12 = $var12 + 1 | 0;
                    if ($var12 >= var$10)
                        break a;
                    $var13 = $par2;
                }
                $var14 = $par3;
            }
            if (($var12 + 0.5 - $par7Vec3.$xCoord) * $par8 + ($var14 + 0.5 - $par7Vec3.$zCoord) * $par10 < 0.0)
                continue;
            else {
                var$13 = $this.$worldObj3;
                continue main;
            }
        }
        return 1;
    case 2:
        $tmp = var$13.$getBlocksMovement(var$15, $var12, $var13, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $par5 = $tmp;
        if (!$par5)
            return 0;
        a: while (true) {
            $var14 = $var14 + 1 | 0;
            while ($var14 >= $par6) {
                $var13 = $var13 + 1 | 0;
                while ($var13 >= $par4) {
                    $var12 = $var12 + 1 | 0;
                    if ($var12 >= var$10)
                        break a;
                    $var13 = $par2;
                }
                $var14 = $par3;
            }
            if (($var12 + 0.5 - $par7Vec3.$xCoord) * $par8 + ($var14 + 0.5 - $par7Vec3.$zCoord) * $par10 < 0.0)
                continue;
            else {
                var$13 = $this.$worldObj3;
                $ptr = 1;
                continue main;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var12, $par2, $par3, $par4, $par5, $par6, $par7Vec3, $par8, $par10, var$10, $var13, $var14, var$13, $var19, var$15, $ptr);
};
function nms_EntityAITasks() {
    let a = this; jl_Object.call(a);
    a.$taskEntries = null;
    a.$executingTaskEntries = null;
    a.$tickCount = 0;
    a.$tickRate0 = 0;
}
let nms_EntityAITasks__init_0 = $this => {
    let var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$taskEntries = var$1;
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    $this.$executingTaskEntries = var$1;
    $this.$tickRate0 = 3;
},
nms_EntityAITasks__init_ = () => {
    let var_0 = new nms_EntityAITasks();
    nms_EntityAITasks__init_0(var_0);
    return var_0;
},
nms_EntityAITasks_onUpdateTasks = $this => {
    let $var1, $var2$index, $var3, $var2, $var4, $var3_0, var$7, var$8, var$9, $var2$index_0, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var2$index_0 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3_0 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();$var2$index = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var1 = new ju_ArrayList;
            $var1.$array = $rt_createArray(jl_Object, 10);
            $var2$index = $this.$tickCount;
            $this.$tickCount = $var2$index + 1 | 0;
            if ($var2$index % $this.$tickRate0 | 0) {
                $var3 = $this.$executingTaskEntries;
                $var2 = new ju_AbstractList$1;
                $var2.$this$00 = $var3;
                $var2.$modCount0 = $var3.$modCount;
                $var2.$size3 = $var3.$size();
                $var2.$removeIndex = (-1);
                $var4 = $var2.$index;
                if (!($var4 >= $var2.$size3 ? 0 : 1))
                    break a;
                $var2$index = $var2.$modCount0;
                $var3 = $var2.$this$00;
                if ($var2$index < $var3.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                $var2.$removeIndex = $var4;
                $var2.$index = $var4 + 1 | 0;
                $var3 = $var3.$get($var4);
                $var3_0 = $var3.$action;
                $ptr = 1;
                continue main;
            }
            $var3 = $this.$taskEntries;
            $var2$index = 0;
            var$7 = $var3.$modCount;
            var$8 = $var3.$size();
            var$9 = 0;
            b: while (true) {
                if (!($var2$index >= var$8 ? 0 : 1))
                    break a;
                if (var$7 < $var3.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                $var2$index_0 = $var2$index + 1 | 0;
                $var3_0 = $var3.$get($var2$index);
                $var2 = $this.$executingTaskEntries;
                $var2$index = $var2.$modCount;
                var$11 = $var2.$size();
                var$12 = var$9;
                c: {
                    while (true) {
                        if (!(var$12 >= var$11 ? 0 : 1)) {
                            $var4 = 0;
                            break c;
                        }
                        if ($var2$index < $var2.$modCount)
                            break b;
                        var$13 = var$12 + 1 | 0;
                        var$14 = $var2.$get(var$12);
                        if (var$14 === $var3_0 ? 1 : var$14 !== null ? var$14.$equals($var3_0) : $var3_0 !== null ? 0 : 1)
                            break;
                        var$12 = var$13;
                    }
                    $var4 = 1;
                }
                if ($var4) {
                    if (!nms_EntityAITasks_canUse($this, $var3_0)) {
                        $var2 = $var3_0.$action;
                        $ptr = 5;
                        continue main;
                    }
                    $var2 = $var3_0.$action;
                    $ptr = 6;
                    continue main;
                }
                if (nms_EntityAITasks_canUse($this, $var3_0)) {
                    $var2 = $var3_0.$action;
                    $ptr = 4;
                    continue main;
                }
                $var2$index = $var2$index_0;
            }
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (0 >= var$11 ? 0 : 1) {
            if ($var2$index < $var1.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var4 = 0 + 1 | 0;
            $var3 = ($var1.$get(0)).$action;
            $ptr = 3;
            continue main;
        }
        $var1 = $this.$executingTaskEntries;
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (!(0 >= var$11 ? 0 : 1))
            return;
        if ($var2$index < $var1.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var4 = 0 + 1 | 0;
        $var3 = ($var1.$get(0)).$action;
        $ptr = 7;
        continue main;
    case 1:
        $tmp = $var3_0.$continueExecuting();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            $var3 = $var3.$action;
            $ptr = 2;
            continue main;
        }
        $var4 = $var2.$index;
        if ($var4 >= $var2.$size3 ? 0 : 1) {
            $var2$index = $var2.$modCount0;
            $var3 = $var2.$this$00;
            if ($var2$index < $var3.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var2.$removeIndex = $var4;
            $var2.$index = $var4 + 1 | 0;
            $var3 = $var3.$get($var4);
            $var3_0 = $var3.$action;
            continue main;
        }
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (0 >= var$11 ? 0 : 1) {
            if ($var2$index < $var1.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var4 = 0 + 1 | 0;
            $var3 = ($var1.$get(0)).$action;
            $ptr = 3;
            continue main;
        }
        $var1 = $this.$executingTaskEntries;
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (!(0 >= var$11 ? 0 : 1))
            return;
        if ($var2$index < $var1.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var4 = 0 + 1 | 0;
        $var3 = ($var1.$get(0)).$action;
        $ptr = 7;
        continue main;
    case 2:
        $var3.$resetTask();
        if ($rt_suspending()) {
            break main;
        }
        ju_AbstractList$1_remove($var2);
        $var4 = $var2.$index;
        if ($var4 >= $var2.$size3 ? 0 : 1) {
            $var2$index = $var2.$modCount0;
            $var3 = $var2.$this$00;
            if ($var2$index < $var3.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var2.$removeIndex = $var4;
            $var2.$index = $var4 + 1 | 0;
            $var3 = $var3.$get($var4);
            $var3_0 = $var3.$action;
            $ptr = 1;
            continue main;
        }
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (0 >= var$11 ? 0 : 1) {
            if ($var2$index < $var1.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var4 = 0 + 1 | 0;
            $var3 = ($var1.$get(0)).$action;
            $ptr = 3;
            continue main;
        }
        $var1 = $this.$executingTaskEntries;
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (!(0 >= var$11 ? 0 : 1))
            return;
        if ($var2$index < $var1.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var4 = 0 + 1 | 0;
        $var3 = ($var1.$get(0)).$action;
        $ptr = 7;
        continue main;
    case 3:
        $var3.$startExecuting();
        if ($rt_suspending()) {
            break main;
        }
        $var2$index_0 = $var4;
        if ($var2$index_0 >= var$11 ? 0 : 1) {
            if ($var2$index < $var1.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var4 = $var2$index_0 + 1 | 0;
            $var3 = ($var1.$get($var2$index_0)).$action;
            continue main;
        }
        $var1 = $this.$executingTaskEntries;
        $var2$index = $var1.$modCount;
        var$11 = $var1.$size();
        if (!(0 >= var$11 ? 0 : 1))
            return;
        if ($var2$index < $var1.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var4 = 0 + 1 | 0;
        $var3 = ($var1.$get(0)).$action;
        $ptr = 7;
        continue main;
    case 4:
        $tmp = $var2.$shouldExecute();
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
            var$15 = $var1.$array.data;
            $var2$index = $var1.$size0;
            $var1.$size0 = $var2$index + 1 | 0;
            var$15[$var2$index] = $var3_0;
            $var1.$modCount = $var1.$modCount + 1 | 0;
            $var2 = $this.$executingTaskEntries;
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            var$15 = $var2.$array.data;
            $var2$index = $var2.$size0;
            $var2.$size0 = $var2$index + 1 | 0;
            var$15[$var2$index] = $var3_0;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
        d: while (true) {
            $var2$index = $var2$index_0;
            if (!($var2$index >= var$8 ? 0 : 1)) {
                $var2$index = $var1.$modCount;
                var$11 = $var1.$size();
                if (0 >= var$11 ? 0 : 1) {
                    if ($var2$index < $var1.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                    $var4 = 0 + 1 | 0;
                    $var3 = ($var1.$get(0)).$action;
                    $ptr = 3;
                    continue main;
                }
                $var1 = $this.$executingTaskEntries;
                $var2$index = $var1.$modCount;
                var$11 = $var1.$size();
                if (!(0 >= var$11 ? 0 : 1))
                    return;
                if ($var2$index < $var1.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                $var4 = 0 + 1 | 0;
                $var3 = ($var1.$get(0)).$action;
                $ptr = 7;
                continue main;
            }
            if (var$7 < $var3.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var2$index_0 = $var2$index + 1 | 0;
            $var3_0 = $var3.$get($var2$index);
            $var2 = $this.$executingTaskEntries;
            $var2$index = $var2.$modCount;
            var$11 = $var2.$size();
            var$12 = var$9;
            e: {
                while (true) {
                    if (!(var$12 >= var$11 ? 0 : 1)) {
                        $var4 = 0;
                        break e;
                    }
                    if ($var2$index < $var2.$modCount)
                        break d;
                    var$13 = var$12 + 1 | 0;
                    var$14 = $var2.$get(var$12);
                    if (var$14 === $var3_0 ? 1 : var$14 !== null ? var$14.$equals($var3_0) : $var3_0 !== null ? 0 : 1)
                        break;
                    var$12 = var$13;
                }
                $var4 = 1;
            }
            if ($var4) {
                if (!nms_EntityAITasks_canUse($this, $var3_0)) {
                    $var2 = $var3_0.$action;
                    $ptr = 5;
                    continue main;
                }
                $var2 = $var3_0.$action;
                $ptr = 6;
                continue main;
            }
            if (!nms_EntityAITasks_canUse($this, $var3_0))
                continue;
            else {
                $var2 = $var3_0.$action;
                continue main;
            }
        }
        $var1 = new ju_ConcurrentModificationException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 5:
        $var2.$resetTask();
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$executingTaskEntries;
        var$11 = $var2.$size0;
        $var4 = 0;
        a: {
            while (true) {
                $var2$index = $rt_compare($var4, var$11);
                if ($var2$index >= 0) {
                    $var4 = (-1);
                    break a;
                }
                if ($var4 < 0)
                    break;
                if ($var2$index >= 0)
                    break;
                var$14 = $var2.$array.data[$var4];
                if ($var3_0 === var$14 ? 1 : $var3_0 === null ? (var$14 !== null ? 0 : 1) : $var3_0 !== var$14 ? 0 : 1)
                    break a;
                $var4 = $var4 + 1 | 0;
            }
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var1);
            $rt_throw($var1);
        }
        if ($var4 >= 0)
            ju_ArrayList_remove($var2, $var4);
        f: while (true) {
            if (nms_EntityAITasks_canUse($this, $var3_0)) {
                $var2 = $var3_0.$action;
                $ptr = 4;
                continue main;
            }
            $var2$index = $var2$index_0;
            if (!($var2$index >= var$8 ? 0 : 1)) {
                $var2$index = $var1.$modCount;
                var$11 = $var1.$size();
                if (0 >= var$11 ? 0 : 1) {
                    if ($var2$index < $var1.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                    $var4 = 0 + 1 | 0;
                    $var3 = ($var1.$get(0)).$action;
                    $ptr = 3;
                    continue main;
                }
                $var1 = $this.$executingTaskEntries;
                $var2$index = $var1.$modCount;
                var$11 = $var1.$size();
                if (!(0 >= var$11 ? 0 : 1))
                    return;
                if ($var2$index < $var1.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                $var4 = 0 + 1 | 0;
                $var3 = ($var1.$get(0)).$action;
                $ptr = 7;
                continue main;
            }
            if (var$7 < $var3.$modCount) {
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var2$index_0 = $var2$index + 1 | 0;
            $var3_0 = $var3.$get($var2$index);
            $var2 = $this.$executingTaskEntries;
            $var2$index = $var2.$modCount;
            var$11 = $var2.$size();
            var$12 = var$9;
            g: {
                while (true) {
                    if (!(var$12 >= var$11 ? 0 : 1)) {
                        $var4 = 0;
                        break g;
                    }
                    if ($var2$index < $var2.$modCount)
                        break f;
                    var$13 = var$12 + 1 | 0;
                    var$14 = $var2.$get(var$12);
                    if (var$14 === $var3_0 ? 1 : var$14 !== null ? var$14.$equals($var3_0) : $var3_0 !== null ? 0 : 1)
                        break;
                    var$12 = var$13;
                }
                $var4 = 1;
            }
            if (!$var4)
                continue;
            else {
                if (!nms_EntityAITasks_canUse($this, $var3_0)) {
                    $var2 = $var3_0.$action;
                    continue main;
                }
                $var2 = $var3_0.$action;
                $ptr = 6;
                continue main;
            }
        }
        $var1 = new ju_ConcurrentModificationException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 6:
        h: {
            $tmp = $var2.$continueExecuting();
            if ($rt_suspending()) {
                break main;
            }
            $var4 = $tmp;
            if ($var4) {
                $var2$index = $var2$index_0;
                i: while (true) {
                    if (!($var2$index >= var$8 ? 0 : 1)) {
                        $var2$index = $var1.$modCount;
                        var$11 = $var1.$size();
                        if (0 >= var$11 ? 0 : 1) {
                            if ($var2$index < $var1.$modCount) {
                                $var1 = new ju_ConcurrentModificationException;
                                $var1.$suppressionEnabled = 1;
                                $var1.$writableStackTrace = 1;
                                $rt_throw($var1);
                            }
                            $var4 = 0 + 1 | 0;
                            $var3 = ($var1.$get(0)).$action;
                            $ptr = 3;
                            continue main;
                        }
                        $var1 = $this.$executingTaskEntries;
                        $var2$index = $var1.$modCount;
                        var$11 = $var1.$size();
                        if (!(0 >= var$11 ? 0 : 1))
                            return;
                        if ($var2$index < $var1.$modCount) {
                            $var1 = new ju_ConcurrentModificationException;
                            $var1.$suppressionEnabled = 1;
                            $var1.$writableStackTrace = 1;
                            $rt_throw($var1);
                        }
                        $var4 = 0 + 1 | 0;
                        $var3 = ($var1.$get(0)).$action;
                        $ptr = 7;
                        continue main;
                    }
                    if (var$7 < $var3.$modCount) {
                        $var1 = new ju_ConcurrentModificationException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        $rt_throw($var1);
                    }
                    $var2$index_0 = $var2$index + 1 | 0;
                    $var3_0 = $var3.$get($var2$index);
                    $var2 = $this.$executingTaskEntries;
                    $var2$index = $var2.$modCount;
                    var$11 = $var2.$size();
                    var$12 = var$9;
                    j: {
                        while (true) {
                            if (!(var$12 >= var$11 ? 0 : 1)) {
                                $var4 = 0;
                                break j;
                            }
                            if ($var2$index < $var2.$modCount)
                                break i;
                            var$13 = var$12 + 1 | 0;
                            var$14 = $var2.$get(var$12);
                            if (var$14 === $var3_0 ? 1 : var$14 !== null ? var$14.$equals($var3_0) : $var3_0 !== null ? 0 : 1)
                                break;
                            var$12 = var$13;
                        }
                        $var4 = 1;
                    }
                    if ($var4) {
                        if (!nms_EntityAITasks_canUse($this, $var3_0))
                            break h;
                        else {
                            $var2 = $var3_0.$action;
                            continue main;
                        }
                    }
                    if (nms_EntityAITasks_canUse($this, $var3_0)) {
                        $var2 = $var3_0.$action;
                        $ptr = 4;
                        continue main;
                    }
                    $var2$index = $var2$index_0;
                }
                $var1 = new ju_ConcurrentModificationException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
        }
        $var2 = $var3_0.$action;
        $ptr = 5;
        continue main;
    case 7:
        $var3.$updateTask();
        if ($rt_suspending()) {
            break main;
        }
        $var2$index_0 = $var4;
        if (!($var2$index_0 >= var$11 ? 0 : 1))
            return;
        if ($var2$index < $var1.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var4 = $var2$index_0 + 1 | 0;
        $var3 = ($var1.$get($var2$index_0)).$action;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2$index, $var3, $var2, $var4, $var3_0, var$7, var$8, var$9, $var2$index_0, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityAITasks_canUse = ($this, $par1EntityAITaskEntry) => {
    let var$2, $var2$index, var$4, var$5, $var2$index_0, $var3, var$8, var$9, var$10, var$11, var$12;
    var$2 = $this.$taskEntries;
    $var2$index = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    while ($var2$index >= var$5 ? 0 : 1) {
        if (var$4 < var$2.$modCount) {
            $par1EntityAITaskEntry = new ju_ConcurrentModificationException;
            $par1EntityAITaskEntry.$suppressionEnabled = 1;
            $par1EntityAITaskEntry.$writableStackTrace = 1;
            $rt_throw($par1EntityAITaskEntry);
        }
        $var2$index_0 = $var2$index + 1 | 0;
        $var3 = var$2.$get($var2$index);
        if ($var3 !== $par1EntityAITaskEntry) {
            if ($par1EntityAITaskEntry.$priority < $var3.$priority) {
                var$8 = $this.$executingTaskEntries;
                $var2$index = var$8.$modCount;
                var$9 = var$8.$size();
                var$10 = 0;
                a: {
                    while (true) {
                        if (!(var$10 >= var$9 ? 0 : 1)) {
                            var$11 = 0;
                            break a;
                        }
                        if ($var2$index < var$8.$modCount) {
                            $par1EntityAITaskEntry = new ju_ConcurrentModificationException;
                            $par1EntityAITaskEntry.$suppressionEnabled = 1;
                            $par1EntityAITaskEntry.$writableStackTrace = 1;
                            $rt_throw($par1EntityAITaskEntry);
                        }
                        var$11 = var$10 + 1 | 0;
                        var$12 = var$8.$get(var$10);
                        if (var$12 === $var3 ? 1 : var$12 !== null ? var$12.$equals($var3) : $var3 !== null ? 0 : 1)
                            break;
                        var$10 = var$11;
                    }
                    var$11 = 1;
                }
            } else {
                var$12 = $this.$executingTaskEntries;
                var$9 = var$12.$modCount;
                var$10 = var$12.$size();
                $var2$index = 0;
                b: {
                    while (true) {
                        if (!($var2$index >= var$10 ? 0 : 1)) {
                            var$11 = 0;
                            break b;
                        }
                        if (var$9 < var$12.$modCount) {
                            $par1EntityAITaskEntry = new ju_ConcurrentModificationException;
                            $par1EntityAITaskEntry.$suppressionEnabled = 1;
                            $par1EntityAITaskEntry.$writableStackTrace = 1;
                            $rt_throw($par1EntityAITaskEntry);
                        }
                        var$11 = $var2$index + 1 | 0;
                        var$8 = var$12.$get($var2$index);
                        if (var$8 === $var3 ? 1 : var$8 !== null ? var$8.$equals($var3) : $var3 !== null ? 0 : 1)
                            break;
                        $var2$index = var$11;
                    }
                    var$11 = 1;
                }
                if (var$11 && !($par1EntityAITaskEntry.$action.$mutexBits & $var3.$action.$mutexBits ? 0 : 1))
                    return 0;
            }
        }
        $var2$index = $var2$index_0;
    }
    return 1;
},
nms_ScoreComparator = $rt_classWithoutFields(),
nms_ScoreComparator__init_ = $this => {
    return;
},
nms_ScoreComparator__init_0 = () => {
    let var_0 = new nms_ScoreComparator();
    nms_ScoreComparator__init_(var_0);
    return var_0;
},
nms_ScoreComparator_compare = ($this, $par1Obj, $par2Obj) => {
    let var$3;
    $par1Obj = $par1Obj;
    $par2Obj = $par2Obj;
    var$3 = $rt_compare($par1Obj.$field_96655_e, $par2Obj.$field_96655_e);
    return var$3 > 0 ? 1 : var$3 >= 0 ? 0 : (-1);
},
nms_IEntitySelector = $rt_classWithoutFields(0),
nms_IEntitySelector_selectAnything = null,
nms_IEntitySelector_selectInventories = null,
nms_IEntitySelector__clinit_ = () => {
    nms_IEntitySelector_selectAnything = new nms_EntitySelectorAlive;
    nms_IEntitySelector_selectInventories = new nms_EntitySelectorInventory;
};
function nms_EntityLookHelper() {
    let a = this; jl_Object.call(a);
    a.$entity1 = null;
    a.$deltaLookYaw = 0.0;
    a.$deltaLookPitch = 0.0;
    a.$isLooking = 0;
    a.$posX6 = 0.0;
    a.$posY5 = 0.0;
    a.$posZ6 = 0.0;
}
let nms_EntityLookHelper_setLookPositionWithEntity = ($this, $par1Entity, $par2, $par3) => {
    let var$4;
    $this.$posX6 = $par1Entity.$posX;
    if ($par1Entity instanceof nms_EntityLivingBase)
        $this.$posY5 = $par1Entity.$posY + $par1Entity.$getEyeHeight();
    else {
        var$4 = $par1Entity.$boundingBox0;
        $this.$posY5 = (var$4.$minY0 + var$4.$maxY) / 2.0;
    }
    $this.$posZ6 = $par1Entity.$posZ;
    $this.$deltaLookYaw = $par2;
    $this.$deltaLookPitch = $par3;
    $this.$isLooking = 1;
},
nms_EntityLookHelper_onUpdateLook = $this => {
    let var$1, $var10, $var11, $var9, $var1, $var3, $var5, $var7, var$9, var$10, var$11;
    var$1 = $this.$entity1;
    var$1.$rotationPitch = 0.0;
    if (!$this.$isLooking) {
        $var10 = var$1.$rotationYawHead;
        $var11 = var$1.$renderYawOffset;
        $var9 = 10.0;
        $var11 = ($var11 - $var10) % 360.0;
        if ($var11 >= 180.0)
            $var11 = $var11 - 360.0;
        if ($var11 < (-180.0))
            $var11 = $var11 + 360.0;
        if ($var11 <= $var9)
            $var9 = $var11;
        $var11 = (-10.0);
        if ($var9 >= $var11)
            $var11 = $var9;
        var$1.$rotationYawHead = $var10 + $var11;
    } else {
        $this.$isLooking = 0;
        $var1 = $this.$posX6 - var$1.$posX;
        $var3 = $this.$posY5 - (var$1.$posY + var$1.$getEyeHeight());
        $var5 = $this.$posZ6 - $this.$entity1.$posZ;
        $var7 = jl_Math_sqrt($var1 * $var1 + $var5 * $var5);
        $var9 = jl_Math_atan2($var5, $var1) * 180.0 / 3.141592653589793 - 90.0;
        $var10 =  -(jl_Math_atan2($var3, $var7) * 180.0 / 3.141592653589793);
        var$1 = $this.$entity1;
        $var11 = var$1.$rotationPitch;
        var$9 = $this.$deltaLookPitch;
        var$10 = ($var10 - $var11) % 360.0;
        if (var$10 >= 180.0)
            var$10 = var$10 - 360.0;
        if (var$10 < (-180.0))
            var$10 = var$10 + 360.0;
        if (var$10 > var$9)
            var$10 = var$9;
        $var10 =  -var$9;
        if (var$10 >= $var10)
            $var10 = var$10;
        var$1.$rotationPitch = $var11 + $var10;
        $var10 = var$1.$rotationYawHead;
        $var11 = $this.$deltaLookYaw;
        $var9 = ($var9 - $var10) % 360.0;
        if ($var9 >= 180.0)
            $var9 = $var9 - 360.0;
        if ($var9 < (-180.0))
            $var9 = $var9 + 360.0;
        if ($var9 > $var11)
            $var9 = $var11;
        $var11 =  -$var11;
        if ($var9 >= $var11)
            $var11 = $var9;
        var$1.$rotationYawHead = $var10 + $var11;
    }
    var$1 = $this.$entity1;
    $var9 = var$1.$rotationYawHead;
    $var10 = var$1.$renderYawOffset;
    $var11 = ($var9 - $var10) % 360.0;
    if ($var11 >= 180.0)
        $var11 = $var11 - 360.0;
    if ($var11 < (-180.0))
        $var11 = $var11 + 360.0;
    var$11 = var$1.$navigator.$currentPath;
    if (!(var$11 !== null && !(var$11.$currentPathIndex < var$11.$pathLength ? 0 : 1) ? 0 : 1)) {
        if ($var11 < (-75.0))
            var$1.$rotationYawHead = $var10 - 75.0;
        if ($var11 > 75.0)
            var$1.$rotationYawHead = $var10 + 75.0;
    }
};
function nms_EntityMoveHelper() {
    let a = this; jl_Object.call(a);
    a.$entity2 = null;
    a.$posX5 = 0.0;
    a.$posY6 = 0.0;
    a.$posZ5 = 0.0;
    a.$speed2 = 0.0;
    a.$update2 = 0;
}
let nms_EntityMoveHelper_onUpdateMoveHelper = $this => {
    let var$1, $var2, $var1, $var4, $var6, var$6, $var8, var$8, $var10, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17;
    var$1 = $this.$entity2;
    var$1.$moveForward = 0.0;
    if ($this.$update2) {
        $this.$update2 = 0;
        $var2 = var$1.$boundingBox0.$minY0 + 0.5;
        $var1 = $var2 | 0;
        if ($var2 < $var1)
            $var1 = $var1 - 1 | 0;
        $var2 = $this.$posX5 - var$1.$posX;
        $var4 = $this.$posZ5 - var$1.$posZ;
        $var6 = $this.$posY6 - $var1;
        var$6 = $var2 * $var2;
        $var8 = var$6 + $var6 * $var6;
        var$8 = $var4 * $var4;
        if ($var8 + var$8 >= 2.500000277905201E-7) {
            $var10 = jl_Math_atan2($var4, $var2) * 180.0 / 3.141592653589793 - 90.0;
            var$1 = $this.$entity2;
            var$10 = var$1.$rotationYaw;
            var$11 = 30.0;
            $var10 = ($var10 - var$10) % 360.0;
            if ($var10 >= 180.0)
                $var10 = $var10 - 360.0;
            if ($var10 < (-180.0))
                $var10 = $var10 + 360.0;
            if ($var10 <= var$11)
                var$11 = $var10;
            $var10 = (-30.0);
            if (var$11 >= $var10)
                $var10 = var$11;
            var$1.$rotationYaw = var$10 + $var10;
            $var2 = $this.$speed2;
            var$12 = nms_SharedMonsterAttributes_movementSpeed;
            if (var$1.$attributeMap === null)
                var$1.$attributeMap = nms_ServersideAttributeMap__init_();
            var$13 = var$1.$attributeMap.$attributes;
            if (var$12 === null) {
                var$13 = var$13.$elementData.data[0];
                while (var$13 !== null && var$13.$key !== null) {
                    var$13 = var$13.$next3;
                }
            } else {
                a: {
                    var$14 = var$12.$field_111115_a;
                    if (!var$14.$hashCode1) {
                        var$15 = 0;
                        while (true) {
                            if (var$15 >= var$14.$nativeString.length)
                                break a;
                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$15) | 0;
                            var$15 = var$15 + 1 | 0;
                        }
                    }
                }
                var$16 = var$14.$hashCode1;
                var$17 = var$13.$elementData.data;
                var$13 = var$17[var$16 & (var$17.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$16) {
                        var$14 = var$13.$key;
                        if (var$12 !== var$14 && !jl_Object_equals(var$12, var$14) ? 0 : 1)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
            }
            var$12 = var$13 === null ? null : var$13.$value0;
            if (var$12.$field_111133_g) {
                var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
                var$12.$field_111133_g = 0;
            }
            $var10 = $var2 * var$12.$field_111139_h;
            var$1.$landMovementFactor = $var10;
            var$1.$moveForward = $var10;
            if ($var6 > 0.0 && var$6 + var$8 < 1.0)
                $this.$entity2.$jumpHelper.$isJumping0 = 1;
        }
    }
};
function nms_EntityJumpHelper() {
    let a = this; jl_Object.call(a);
    a.$entity0 = null;
    a.$isJumping0 = 0;
}
function nms_EntityBodyHelper() {
    let a = this; jl_Object.call(a);
    a.$theLiving = null;
    a.$field_75666_b = 0;
    a.$field_75667_c = 0.0;
}
let nms_EntityBodyHelper_func_75664_a = $this => {
    let var$1, $var1, $var3, $var5, var$5, var$6, var$7, var$8;
    var$1 = $this.$theLiving;
    $var1 = var$1.$posX - var$1.$prevPosX;
    $var3 = var$1.$posZ - var$1.$prevPosZ;
    if ($var1 * $var1 + $var3 * $var3 > 2.500000277905201E-7) {
        $var5 = var$1.$rotationYaw;
        var$1.$renderYawOffset = $var5;
        var$5 = var$1.$rotationYawHead;
        var$6 = 75.0;
        var$7 = ($var5 - var$5) % 360.0;
        if (var$7 >= 180.0)
            var$7 = var$7 - 360.0;
        if (var$7 < (-180.0))
            var$7 = var$7 + 360.0;
        var$5 = (-75.0);
        if (var$7 >= var$5)
            var$5 = var$7;
        if (var$5 < var$6)
            var$6 = var$5;
        $var5 = $var5 - var$6;
        var$1.$rotationYawHead = $var5;
        $this.$field_75667_c = $var5;
        $this.$field_75666_b = 0;
    } else {
        $var5 = 75.0;
        if (jl_Math_absImpl0(var$1.$rotationYawHead - $this.$field_75667_c) > 15.0) {
            $this.$field_75666_b = 0;
            $this.$field_75667_c = $this.$theLiving.$rotationYawHead;
        } else {
            var$8 = $this.$field_75666_b + 1 | 0;
            $this.$field_75666_b = var$8;
            if (var$8 > 10)
                $var5 = jl_Math_maxImpl(1.0 - (var$8 - 10 | 0) / 10.0, 0.0) * 75.0;
        }
        var$1 = $this.$theLiving;
        var$5 = var$1.$rotationYawHead;
        var$7 = (var$5 - var$1.$renderYawOffset) % 360.0;
        if (var$7 >= 180.0)
            var$7 = var$7 - 360.0;
        if (var$7 < (-180.0))
            var$7 = var$7 + 360.0;
        var$6 =  -$var5;
        if (var$7 >= var$6)
            var$6 = var$7;
        if (var$6 < $var5)
            $var5 = var$6;
        var$1.$renderYawOffset = var$5 - $var5;
    }
};
function nms_EntitySenses() {
    let a = this; jl_Object.call(a);
    a.$entityObj1 = null;
    a.$seenEntities = null;
    a.$unseenEntities = null;
}
function nms_EntityAINearestAttackableTargetSorter() {
    jl_Object.call(this);
    this.$theEntity5 = null;
}
let nms_EntityAINearestAttackableTargetSorter_compare = ($this, $par1Obj, $par2Obj) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $par1Obj = $par1Obj;
    $par2Obj = $par2Obj;
    var$3 = $this.$theEntity5;
    var$4 = var$3.$posX;
    var$5 = var$4 - $par1Obj.$posX;
    var$6 = var$3.$posY;
    var$7 = var$6 - $par1Obj.$posY;
    var$8 = var$3.$posZ;
    var$9 = var$8 - $par1Obj.$posZ;
    var$5 = var$5 * var$5 + var$7 * var$7 + var$9 * var$9;
    var$7 = var$4 - $par2Obj.$posX;
    var$6 = var$6 - $par2Obj.$posY;
    var$4 = var$8 - $par2Obj.$posZ;
    var$10 = $rt_compare(var$5, var$7 * var$7 + var$6 * var$6 + var$4 * var$4);
    return var$10 < 0 ? (-1) : var$10 <= 0 ? 0 : 1;
};
function nms_EntityAINearestAttackableTargetSelector() {
    let a = this; jl_Object.call(a);
    a.$field_111103_c = null;
    a.$field_111102_d = null;
}
let nms_EntityAINearestAttackableTargetSelector_isEntityApplicable = ($this, $par1Entity) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($par1Entity instanceof nms_EntityLivingBase))
            return 0;
        var$2 = $this.$field_111103_c;
        if (var$2 !== null) {
            $ptr = 2;
            continue main;
        }
        var$2 = $this.$field_111102_d;
        $par1Entity = $par1Entity;
        var$3 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAITarget_isSuitableTarget(var$2, $par1Entity, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    case 2:
        $tmp = var$2.$isEntityApplicable($par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3)
            return 0;
        var$2 = $this.$field_111102_d;
        $par1Entity = $par1Entity;
        var$3 = 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, $ptr);
};
function nms_CombatTracker() {
    let a = this; jl_Object.call(a);
    a.$field_94556_a = null;
    a.$fighter = null;
    a.$field_94555_c = 0;
    a.$field_94552_d = 0;
    a.$field_94553_e = 0;
    a.$field_94551_f = null;
}
let nms_CombatTracker_func_94545_a = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$field_94551_f = null;
        var$1 = $this.$fighter;
        $ptr = 1;
    case 1:
        $tmp = var$1.$isOnLadder();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if (!$var1) {
            var$1 = $this.$fighter;
            $ptr = 2;
            continue main;
        }
        var$1 = $this.$fighter;
        var$3 = var$1.$worldObj;
        var$4 = var$1.$posX;
        var$5 = var$4 | 0;
        if (var$4 < var$5)
            var$5 = var$5 - 1 | 0;
        var$4 = var$1.$boundingBox0.$minY0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$4 = var$1.$posZ;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1)
            $this.$field_94551_f = $rt_s(718);
        return;
    case 3:
        $tmp = nms_World_getBlockId(var$3, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        nms_Block_$callClinit();
        if ($var1 == nms_Block_ladder.$blockID)
            $this.$field_94551_f = $rt_s(710);
        else if ($var1 == nms_Block_vine.$blockID)
            $this.$field_94551_f = $rt_s(2468);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_CombatTracker_func_94546_b = $this => {
    let $var1, $var2, var$3, var$4, var$5, var$6, var$7, $var4, $var5, $var6, $var7, $var9, $var8, var$14, var$15, var$16;
    if (!$this.$field_94556_a.$size0) {
        $var1 = $this.$fighter.$getTranslatedEntityName();
        $var2 = new jl_StringBuilder;
        $var2.$buffer = $rt_createCharArray(16);
        var$3 = $var2.$length0;
        if ($var1 === null)
            $var1 = $rt_s(1);
        jl_AbstractStringBuilder_insert($var2, var$3, $var1);
        jl_AbstractStringBuilder_insert($var2, $var2.$length0, $rt_s(2469));
        $var1 = new jl_String;
        var$4 = $var2.$buffer;
        var$5 = var$4.data;
        var$6 = $var2.$length0;
        var$7 = var$5.length;
        if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
            $var1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
            return $var1;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $rt_throw($var1);
    }
    $var1 = nms_CombatTracker_func_94544_f($this);
    $var2 = $this.$field_94556_a;
    var$6 = $var2.$size0;
    var$3 = var$6 - 1 | 0;
    if (var$3 >= 0 && var$3 < var$6) {
        $var2 = $var2.$array.data[var$3];
        $var4 = $var2.$damageSrc.$getEntity() === null ? null : ($var2.$damageSrc.$getEntity()).$getTranslatedEntityName();
        $var5 = $var2.$damageSrc.$getEntity();
        if ($var1 !== null && $var2.$damageSrc === nms_DamageSource_fall) {
            $var6 = $var1.$damageSrc.$getEntity() === null ? null : ($var1.$damageSrc.$getEntity()).$getTranslatedEntityName();
            a: {
                $var7 = $var1.$damageSrc;
                if ($var7 !== nms_DamageSource_fall && $var7 !== nms_DamageSource_outOfWorld) {
                    b: {
                        if ($var6 !== null) {
                            if ($var4 !== null) {
                                if ($var6 !== $var4) {
                                    if ($var4 instanceof jl_String) {
                                        $var2 = $var4;
                                        var$3 = $var6.$nativeString !== $var2.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (var$3)
                                    break b;
                            }
                            $var9 = $var1.$damageSrc.$getEntity();
                            $var8 = !($var9 instanceof nms_EntityLiving) ? null : $var9.$equipment.data[0];
                            c: {
                                if ($var8 !== null) {
                                    $var2 = $var8.$stackTagCompound;
                                    if ($var2 !== null) {
                                        d: {
                                            $var2 = $var2.$tagMap;
                                            if (!$rt_s(918).$hashCode1) {
                                                var$3 = 0;
                                                while (true) {
                                                    if (var$3 >= $rt_s(918).$nativeString.length)
                                                        break d;
                                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                    var$3 = var$3 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$7 = $rt_s(918).$hashCode1;
                                        var$4 = $var2.$elementData.data;
                                        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                                        while ($var2 !== null) {
                                            if ($var2.$origKeyHash == var$7) {
                                                e: {
                                                    $var5 = $var2.$key;
                                                    if ($rt_s(918) !== $var5) {
                                                        if ($rt_s(918) === $var5)
                                                            var$3 = 1;
                                                        else if ($var5 instanceof jl_String) {
                                                            $var5 = $var5;
                                                            var$3 = $rt_s(918).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                        } else
                                                            var$3 = 0;
                                                        if (!var$3) {
                                                            var$3 = 0;
                                                            break e;
                                                        }
                                                    }
                                                    var$3 = 1;
                                                }
                                                if (var$3)
                                                    break;
                                            }
                                            $var2 = $var2.$next3;
                                        }
                                        if (!($var2 === null ? 0 : 1))
                                            var$3 = 0;
                                        else {
                                            f: {
                                                $var1 = $var8.$stackTagCompound;
                                                $var5 = $var1.$tagMap;
                                                if (!$rt_s(918).$hashCode1) {
                                                    var$3 = 0;
                                                    while (true) {
                                                        if (var$3 >= $rt_s(918).$nativeString.length)
                                                            break f;
                                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                        var$3 = var$3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$7 = $rt_s(918).$hashCode1;
                                            var$4 = $var5.$elementData.data;
                                            $var5 = var$4[var$7 & (var$4.length - 1 | 0)];
                                            while ($var5 !== null) {
                                                if ($var5.$origKeyHash == var$7) {
                                                    g: {
                                                        $var7 = $var5.$key;
                                                        if ($rt_s(918) !== $var7) {
                                                            if ($rt_s(918) !== $var7) {
                                                                if ($var7 instanceof jl_String) {
                                                                    $var7 = $var7;
                                                                    var$3 = $rt_s(918).$nativeString !== $var7.$nativeString ? 0 : 1;
                                                                } else
                                                                    var$3 = 0;
                                                            } else
                                                                var$3 = 1;
                                                            if (!var$3) {
                                                                var$3 = 0;
                                                                break g;
                                                            }
                                                        }
                                                        var$3 = 1;
                                                    }
                                                    if (var$3)
                                                        break;
                                                }
                                                $var5 = $var5.$next3;
                                            }
                                            if ($var5 === null ? 0 : 1) {
                                                $var1 = $var1.$tagMap;
                                                if ($rt_s(918) === null) {
                                                    $var1 = $var1.$elementData.data[0];
                                                    while ($var1 !== null && $var1.$key !== null) {
                                                        $var1 = $var1.$next3;
                                                    }
                                                } else {
                                                    h: {
                                                        if (!$rt_s(918).$hashCode1) {
                                                            var$3 = 0;
                                                            while (true) {
                                                                if (var$3 >= $rt_s(918).$nativeString.length)
                                                                    break h;
                                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                                var$3 = var$3 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    var$7 = $rt_s(918).$hashCode1;
                                                    var$4 = $var1.$elementData.data;
                                                    $var1 = var$4[var$7 & (var$4.length - 1 | 0)];
                                                    while ($var1 !== null) {
                                                        if ($var1.$origKeyHash == var$7) {
                                                            i: {
                                                                $var5 = $var1.$key;
                                                                if ($rt_s(918) !== $var5) {
                                                                    if ($rt_s(918) === $var5)
                                                                        var$3 = 1;
                                                                    else if ($var5 instanceof jl_String) {
                                                                        $var5 = $var5;
                                                                        var$3 = $rt_s(918).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                                    } else
                                                                        var$3 = 0;
                                                                    if (!var$3) {
                                                                        var$3 = 0;
                                                                        break i;
                                                                    }
                                                                }
                                                                var$3 = 1;
                                                            }
                                                            if (var$3)
                                                                break;
                                                        }
                                                        $var1 = $var1.$next3;
                                                    }
                                                }
                                                $var5 = $var1 === null ? null : $var1.$value0;
                                            } else {
                                                $var5 = new nms_NBTTagCompound;
                                                if ($rt_s(918) !== null)
                                                    $var5.$name = $rt_s(918);
                                                else
                                                    $var5.$name = $rt_s(3);
                                                $var1 = new ju_HashMap;
                                                var$3 = ju_HashMap_calculateCapacity(16);
                                                $var1.$elementCount = 0;
                                                var$5 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                                                var$4 = var$5.data;
                                                $var1.$elementData = var$5;
                                                $var1.$loadFactor = 0.75;
                                                $var1.$threshold = var$4.length * 0.75 | 0;
                                                $var5.$tagMap = $var1;
                                            }
                                            j: {
                                                $var2 = $var5.$tagMap;
                                                if (!$rt_s(919).$hashCode1) {
                                                    var$3 = 0;
                                                    while (true) {
                                                        if (var$3 >= $rt_s(919).$nativeString.length)
                                                            break j;
                                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$3) | 0;
                                                        var$3 = var$3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$7 = $rt_s(919).$hashCode1;
                                            var$4 = $var2.$elementData.data;
                                            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                                            while ($var2 !== null) {
                                                if ($var2.$origKeyHash == var$7) {
                                                    k: {
                                                        $var5 = $var2.$key;
                                                        if ($rt_s(919) !== $var5) {
                                                            if ($rt_s(919) === $var5)
                                                                var$3 = 1;
                                                            else if (!($var5 instanceof jl_String))
                                                                var$3 = 0;
                                                            else {
                                                                $var5 = $var5;
                                                                var$3 = $rt_s(919).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                            }
                                                            if (!var$3) {
                                                                var$3 = 0;
                                                                break k;
                                                            }
                                                        }
                                                        var$3 = 1;
                                                    }
                                                    if (var$3)
                                                        break;
                                                }
                                                $var2 = $var2.$next3;
                                            }
                                            var$3 = $var2 === null ? 0 : 1;
                                        }
                                    } else
                                        var$3 = 0;
                                    if (var$3) {
                                        var$5 = $rt_createArray(jl_Object, 3);
                                        var$14 = var$5.data;
                                        var$14[0] = $this.$fighter.$getTranslatedEntityName();
                                        var$14[1] = $var4;
                                        nms_Item_$callClinit();
                                        $var7 = nms_Item_itemsList.data[$var8.$itemID].$getItemDisplayName($var8);
                                        $var2 = $var8.$stackTagCompound;
                                        if ($var2 !== null) {
                                            l: {
                                                $var2 = $var2.$tagMap;
                                                if (!$rt_s(918).$hashCode1) {
                                                    var$3 = 0;
                                                    while (true) {
                                                        if (var$3 >= $rt_s(918).$nativeString.length)
                                                            break l;
                                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                        var$3 = var$3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$7 = $rt_s(918).$hashCode1;
                                            var$4 = $var2.$elementData.data;
                                            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                                            while ($var2 !== null) {
                                                if ($var2.$origKeyHash == var$7) {
                                                    m: {
                                                        $var9 = $var2.$key;
                                                        if ($rt_s(918) !== $var9) {
                                                            if ($rt_s(918) === $var9)
                                                                var$3 = 1;
                                                            else if (!($var9 instanceof jl_String))
                                                                var$3 = 0;
                                                            else {
                                                                $var9 = $var9;
                                                                var$3 = $rt_s(918).$nativeString !== $var9.$nativeString ? 0 : 1;
                                                            }
                                                            if (!var$3) {
                                                                var$3 = 0;
                                                                break m;
                                                            }
                                                        }
                                                        var$3 = 1;
                                                    }
                                                    if (var$3)
                                                        break;
                                                }
                                                $var2 = $var2.$next3;
                                            }
                                            if ($var2 === null ? 0 : 1) {
                                                n: {
                                                    $var5 = $var8.$stackTagCompound;
                                                    $var9 = $var5.$tagMap;
                                                    if (!$rt_s(918).$hashCode1) {
                                                        var$3 = 0;
                                                        while (true) {
                                                            if (var$3 >= $rt_s(918).$nativeString.length)
                                                                break n;
                                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                            var$3 = var$3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$7 = $rt_s(918).$hashCode1;
                                                var$4 = $var9.$elementData.data;
                                                $var9 = var$4[var$7 & (var$4.length - 1 | 0)];
                                                while ($var9 !== null) {
                                                    if ($var9.$origKeyHash == var$7) {
                                                        o: {
                                                            $var8 = $var9.$key;
                                                            if ($rt_s(918) !== $var8) {
                                                                if ($rt_s(918) === $var8)
                                                                    var$3 = 1;
                                                                else if (!($var8 instanceof jl_String))
                                                                    var$3 = 0;
                                                                else {
                                                                    $var8 = $var8;
                                                                    var$3 = $rt_s(918).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                                }
                                                                if (!var$3) {
                                                                    var$3 = 0;
                                                                    break o;
                                                                }
                                                            }
                                                            var$3 = 1;
                                                        }
                                                        if (var$3)
                                                            break;
                                                    }
                                                    $var9 = $var9.$next3;
                                                }
                                                if (!($var9 === null ? 0 : 1)) {
                                                    $var9 = new nms_NBTTagCompound;
                                                    if ($rt_s(918) !== null)
                                                        $var9.$name = $rt_s(918);
                                                    else
                                                        $var9.$name = $rt_s(3);
                                                    $var2 = new ju_HashMap;
                                                    var$3 = ju_HashMap_calculateCapacity(16);
                                                    $var2.$elementCount = 0;
                                                    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                                                    var$15 = var$4.data;
                                                    $var2.$elementData = var$4;
                                                    $var2.$loadFactor = 0.75;
                                                    $var2.$threshold = var$15.length * 0.75 | 0;
                                                    $var9.$tagMap = $var2;
                                                } else {
                                                    $var5 = $var5.$tagMap;
                                                    if ($rt_s(918) === null) {
                                                        $var5 = $var5.$elementData.data[0];
                                                        while ($var5 !== null && $var5.$key !== null) {
                                                            $var5 = $var5.$next3;
                                                        }
                                                    } else {
                                                        p: {
                                                            if (!$rt_s(918).$hashCode1) {
                                                                var$3 = 0;
                                                                while (true) {
                                                                    if (var$3 >= $rt_s(918).$nativeString.length)
                                                                        break p;
                                                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                                    var$3 = var$3 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        var$3 = $rt_s(918).$hashCode1;
                                                        var$4 = $var5.$elementData.data;
                                                        $var5 = var$4[var$3 & (var$4.length - 1 | 0)];
                                                        while ($var5 !== null) {
                                                            if ($var5.$origKeyHash == var$3) {
                                                                q: {
                                                                    $var9 = $var5.$key;
                                                                    if ($rt_s(918) !== $var9) {
                                                                        if ($rt_s(918) === $var9)
                                                                            var$6 = 1;
                                                                        else if (!($var9 instanceof jl_String))
                                                                            var$6 = 0;
                                                                        else {
                                                                            $var9 = $var9;
                                                                            var$6 = $rt_s(918).$nativeString !== $var9.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$6) {
                                                                            var$6 = 0;
                                                                            break q;
                                                                        }
                                                                    }
                                                                    var$6 = 1;
                                                                }
                                                                if (var$6)
                                                                    break;
                                                            }
                                                            $var5 = $var5.$next3;
                                                        }
                                                    }
                                                    $var9 = $var5 === null ? null : $var5.$value0;
                                                }
                                                r: {
                                                    $var2 = $var9.$tagMap;
                                                    if (!$rt_s(919).$hashCode1) {
                                                        var$3 = 0;
                                                        while (true) {
                                                            if (var$3 >= $rt_s(919).$nativeString.length)
                                                                break r;
                                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$3) | 0;
                                                            var$3 = var$3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$6 = $rt_s(919).$hashCode1;
                                                var$4 = $var2.$elementData.data;
                                                $var4 = var$4[var$6 & (var$4.length - 1 | 0)];
                                                while ($var4 !== null) {
                                                    if ($var4.$origKeyHash == var$6) {
                                                        s: {
                                                            $var2 = $var4.$key;
                                                            if ($rt_s(919) !== $var2) {
                                                                if ($rt_s(919) === $var2)
                                                                    var$3 = 1;
                                                                else if (!($var2 instanceof jl_String))
                                                                    var$3 = 0;
                                                                else {
                                                                    $var2 = $var2;
                                                                    var$3 = $rt_s(919).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                                }
                                                                if (!var$3) {
                                                                    var$3 = 0;
                                                                    break s;
                                                                }
                                                            }
                                                            var$3 = 1;
                                                        }
                                                        if (var$3)
                                                            break;
                                                    }
                                                    $var4 = $var4.$next3;
                                                }
                                                if ($var4 === null ? 0 : 1) {
                                                    t: {
                                                        $var2 = $var9.$tagMap;
                                                        if (!$rt_s(919).$hashCode1) {
                                                            var$3 = 0;
                                                            while (true) {
                                                                if (var$3 >= $rt_s(919).$nativeString.length)
                                                                    break t;
                                                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$3) | 0;
                                                                var$3 = var$3 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    var$6 = $rt_s(919).$hashCode1;
                                                    var$4 = $var2.$elementData.data;
                                                    $var8 = var$4[var$6 & (var$4.length - 1 | 0)];
                                                    while ($var8 !== null) {
                                                        if ($var8.$origKeyHash == var$6) {
                                                            u: {
                                                                $var2 = $var8.$key;
                                                                if ($rt_s(919) !== $var2) {
                                                                    if ($rt_s(919) === $var2)
                                                                        var$3 = 1;
                                                                    else if (!($var2 instanceof jl_String))
                                                                        var$3 = 0;
                                                                    else {
                                                                        $var2 = $var2;
                                                                        var$3 = $rt_s(919).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                                    }
                                                                    if (!var$3) {
                                                                        var$3 = 0;
                                                                        break u;
                                                                    }
                                                                }
                                                                var$3 = 1;
                                                            }
                                                            if (var$3)
                                                                break;
                                                        }
                                                        $var8 = $var8.$next3;
                                                    }
                                                    if (!($var8 === null ? 0 : 1))
                                                        $var7 = $rt_s(3);
                                                    else {
                                                        $var2 = $var9.$tagMap;
                                                        if ($rt_s(919) === null) {
                                                            $var9 = $var2.$elementData.data[0];
                                                            while ($var9 !== null && $var9.$key !== null) {
                                                                $var9 = $var9.$next3;
                                                            }
                                                        } else {
                                                            v: {
                                                                if (!$rt_s(919).$hashCode1) {
                                                                    var$3 = 0;
                                                                    while (true) {
                                                                        if (var$3 >= $rt_s(919).$nativeString.length)
                                                                            break v;
                                                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$3) | 0;
                                                                        var$3 = var$3 + 1 | 0;
                                                                    }
                                                                }
                                                            }
                                                            var$6 = $rt_s(919).$hashCode1;
                                                            var$4 = $var2.$elementData.data;
                                                            $var9 = var$4[var$6 & (var$4.length - 1 | 0)];
                                                            while ($var9 !== null) {
                                                                if ($var9.$origKeyHash == var$6) {
                                                                    w: {
                                                                        $var2 = $var9.$key;
                                                                        if ($rt_s(919) !== $var2) {
                                                                            if ($rt_s(919) === $var2)
                                                                                var$3 = 1;
                                                                            else if (!($var2 instanceof jl_String))
                                                                                var$3 = 0;
                                                                            else {
                                                                                $var2 = $var2;
                                                                                var$3 = $rt_s(919).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                                            }
                                                                            if (!var$3) {
                                                                                var$3 = 0;
                                                                                break w;
                                                                            }
                                                                        }
                                                                        var$3 = 1;
                                                                    }
                                                                    if (var$3)
                                                                        break;
                                                                }
                                                                $var9 = $var9.$next3;
                                                            }
                                                        }
                                                        $var7 = ($var9 === null ? null : $var9.$value0).$data1;
                                                    }
                                                }
                                            }
                                        }
                                        var$14[2] = $var7;
                                        nms_StatCollector_$callClinit();
                                        $var1 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(2470), var$5);
                                        break c;
                                    }
                                }
                                var$4 = $rt_wrapArray(jl_Object, [$this.$fighter.$getTranslatedEntityName(), $var6]);
                                nms_StatCollector_$callClinit();
                                $var1 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(2471), var$4);
                            }
                            break a;
                        }
                    }
                    if ($var4 === null) {
                        var$4 = $rt_createArray(jl_Object, 1);
                        var$4.data[0] = $this.$fighter.$getTranslatedEntityName();
                        nms_StatCollector_$callClinit();
                        $var1 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(2472), var$4);
                    } else {
                        $var7 = !($var5 instanceof nms_EntityLiving) ? null : $var5.$equipment.data[0];
                        x: {
                            if ($var7 !== null) {
                                $var2 = $var7.$stackTagCompound;
                                if ($var2 !== null) {
                                    y: {
                                        $var2 = $var2.$tagMap;
                                        if (!$rt_s(918).$hashCode1) {
                                            var$3 = 0;
                                            while (true) {
                                                if (var$3 >= $rt_s(918).$nativeString.length)
                                                    break y;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                var$3 = var$3 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$7 = $rt_s(918).$hashCode1;
                                    var$4 = $var2.$elementData.data;
                                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                                    while ($var2 !== null) {
                                        if ($var2.$origKeyHash == var$7) {
                                            z: {
                                                $var5 = $var2.$key;
                                                if ($rt_s(918) !== $var5) {
                                                    if ($rt_s(918) === $var5)
                                                        var$3 = 1;
                                                    else if ($var5 instanceof jl_String) {
                                                        $var5 = $var5;
                                                        var$3 = $rt_s(918).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                    } else
                                                        var$3 = 0;
                                                    if (!var$3) {
                                                        var$3 = 0;
                                                        break z;
                                                    }
                                                }
                                                var$3 = 1;
                                            }
                                            if (var$3)
                                                break;
                                        }
                                        $var2 = $var2.$next3;
                                    }
                                    if (!($var2 === null ? 0 : 1))
                                        var$3 = 0;
                                    else {
                                        ba: {
                                            $var1 = $var7.$stackTagCompound;
                                            $var5 = $var1.$tagMap;
                                            if (!$rt_s(918).$hashCode1) {
                                                var$3 = 0;
                                                while (true) {
                                                    if (var$3 >= $rt_s(918).$nativeString.length)
                                                        break ba;
                                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                    var$3 = var$3 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$7 = $rt_s(918).$hashCode1;
                                        var$4 = $var5.$elementData.data;
                                        $var5 = var$4[var$7 & (var$4.length - 1 | 0)];
                                        while ($var5 !== null) {
                                            if ($var5.$origKeyHash == var$7) {
                                                bb: {
                                                    $var9 = $var5.$key;
                                                    if ($rt_s(918) !== $var9) {
                                                        if ($rt_s(918) !== $var9) {
                                                            if ($var9 instanceof jl_String) {
                                                                $var9 = $var9;
                                                                var$3 = $rt_s(918).$nativeString !== $var9.$nativeString ? 0 : 1;
                                                            } else
                                                                var$3 = 0;
                                                        } else
                                                            var$3 = 1;
                                                        if (!var$3) {
                                                            var$3 = 0;
                                                            break bb;
                                                        }
                                                    }
                                                    var$3 = 1;
                                                }
                                                if (var$3)
                                                    break;
                                            }
                                            $var5 = $var5.$next3;
                                        }
                                        if ($var5 === null ? 0 : 1) {
                                            $var1 = $var1.$tagMap;
                                            if ($rt_s(918) === null) {
                                                $var1 = $var1.$elementData.data[0];
                                                while ($var1 !== null && $var1.$key !== null) {
                                                    $var1 = $var1.$next3;
                                                }
                                            } else {
                                                bc: {
                                                    if (!$rt_s(918).$hashCode1) {
                                                        var$3 = 0;
                                                        while (true) {
                                                            if (var$3 >= $rt_s(918).$nativeString.length)
                                                                break bc;
                                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$3) | 0;
                                                            var$3 = var$3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$7 = $rt_s(918).$hashCode1;
                                                var$4 = $var1.$elementData.data;
                                                $var1 = var$4[var$7 & (var$4.length - 1 | 0)];
                                                while ($var1 !== null) {
                                                    if ($var1.$origKeyHash == var$7) {
                                                        bd: {
                                                            $var5 = $var1.$key;
                                                            if ($rt_s(918) !== $var5) {
                                                                if ($rt_s(918) === $var5)
                                                                    var$3 = 1;
                                                                else if ($var5 instanceof jl_String) {
                                                                    $var5 = $var5;
                                                                    var$3 = $rt_s(918).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                                } else
                                                                    var$3 = 0;
                                                                if (!var$3) {
                                                                    var$3 = 0;
                                                                    break bd;
                                                                }
                                                            }
                                                            var$3 = 1;
                                                        }
                                                        if (var$3)
                                                            break;
                                                    }
                                                    $var1 = $var1.$next3;
                                                }
                                            }
                                            $var5 = $var1 === null ? null : $var1.$value0;
                                        } else {
                                            $var5 = new nms_NBTTagCompound;
                                            if ($rt_s(918) !== null)
                                                $var5.$name = $rt_s(918);
                                            else
                                                $var5.$name = $rt_s(3);
                                            $var1 = new ju_HashMap;
                                            var$3 = ju_HashMap_calculateCapacity(16);
                                            $var1.$elementCount = 0;
                                            var$5 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                                            var$4 = var$5.data;
                                            $var1.$elementData = var$5;
                                            $var1.$loadFactor = 0.75;
                                            $var1.$threshold = var$4.length * 0.75 | 0;
                                            $var5.$tagMap = $var1;
                                        }
                                        be: {
                                            $var2 = $var5.$tagMap;
                                            if (!$rt_s(919).$hashCode1) {
                                                var$3 = 0;
                                                while (true) {
                                                    if (var$3 >= $rt_s(919).$nativeString.length)
                                                        break be;
                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$3) | 0;
                                                    var$3 = var$3 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$7 = $rt_s(919).$hashCode1;
                                        var$4 = $var2.$elementData.data;
                                        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                                        while ($var2 !== null) {
                                            if ($var2.$origKeyHash == var$7) {
                                                bf: {
                                                    $var5 = $var2.$key;
                                                    if ($rt_s(919) !== $var5) {
                                                        if ($rt_s(919) === $var5)
                                                            var$3 = 1;
                                                        else if (!($var5 instanceof jl_String))
                                                            var$3 = 0;
                                                        else {
                                                            $var5 = $var5;
                                                            var$3 = $rt_s(919).$nativeString !== $var5.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$3) {
                                                            var$3 = 0;
                                                            break bf;
                                                        }
                                                    }
                                                    var$3 = 1;
                                                }
                                                if (var$3)
                                                    break;
                                            }
                                            $var2 = $var2.$next3;
                                        }
                                        var$3 = $var2 === null ? 0 : 1;
                                    }
                                } else
                                    var$3 = 0;
                                if (var$3) {
                                    var$4 = $rt_createArray(jl_Object, 3);
                                    var$5 = var$4.data;
                                    var$5[0] = $this.$fighter.$getTranslatedEntityName();
                                    var$5[1] = $var4;
                                    nms_Item_$callClinit();
                                    $var2 = nms_Item_itemsList.data[$var7.$itemID].$getItemDisplayName($var7);
                                    $var5 = $var7.$stackTagCompound;
                                    if ($var5 !== null) {
                                        bg: {
                                            $var5 = $var5.$tagMap;
                                            if (!$rt_s(918).$hashCode1) {
                                                var$6 = 0;
                                                while (true) {
                                                    if (var$6 >= $rt_s(918).$nativeString.length)
                                                        break bg;
                                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                                    var$6 = var$6 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$16 = $rt_s(918).$hashCode1;
                                        var$14 = $var5.$elementData.data;
                                        $var5 = var$14[var$16 & (var$14.length - 1 | 0)];
                                        while ($var5 !== null) {
                                            if ($var5.$origKeyHash == var$16) {
                                                bh: {
                                                    $var8 = $var5.$key;
                                                    if ($rt_s(918) !== $var8) {
                                                        if ($rt_s(918) === $var8)
                                                            var$6 = 1;
                                                        else if (!($var8 instanceof jl_String))
                                                            var$6 = 0;
                                                        else {
                                                            $var8 = $var8;
                                                            var$6 = $rt_s(918).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$6) {
                                                            var$6 = 0;
                                                            break bh;
                                                        }
                                                    }
                                                    var$6 = 1;
                                                }
                                                if (var$6)
                                                    break;
                                            }
                                            $var5 = $var5.$next3;
                                        }
                                        if ($var5 === null ? 0 : 1) {
                                            bi: {
                                                $var5 = $var7.$stackTagCompound;
                                                $var9 = $var5.$tagMap;
                                                if (!$rt_s(918).$hashCode1) {
                                                    var$6 = 0;
                                                    while (true) {
                                                        if (var$6 >= $rt_s(918).$nativeString.length)
                                                            break bi;
                                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                                        var$6 = var$6 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$16 = $rt_s(918).$hashCode1;
                                            var$14 = $var9.$elementData.data;
                                            $var9 = var$14[var$16 & (var$14.length - 1 | 0)];
                                            while ($var9 !== null) {
                                                if ($var9.$origKeyHash == var$16) {
                                                    bj: {
                                                        $var8 = $var9.$key;
                                                        if ($rt_s(918) !== $var8) {
                                                            if ($rt_s(918) === $var8)
                                                                var$6 = 1;
                                                            else if (!($var8 instanceof jl_String))
                                                                var$6 = 0;
                                                            else {
                                                                $var8 = $var8;
                                                                var$6 = $rt_s(918).$nativeString !== $var8.$nativeString ? 0 : 1;
                                                            }
                                                            if (!var$6) {
                                                                var$6 = 0;
                                                                break bj;
                                                            }
                                                        }
                                                        var$6 = 1;
                                                    }
                                                    if (var$6)
                                                        break;
                                                }
                                                $var9 = $var9.$next3;
                                            }
                                            if (!($var9 === null ? 0 : 1)) {
                                                $var8 = new nms_NBTTagCompound;
                                                if ($rt_s(918) !== null)
                                                    $var8.$name = $rt_s(918);
                                                else
                                                    $var8.$name = $rt_s(3);
                                                $var5 = new ju_HashMap;
                                                var$6 = ju_HashMap_calculateCapacity(16);
                                                $var5.$elementCount = 0;
                                                var$15 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                                                var$14 = var$15.data;
                                                $var5.$elementData = var$15;
                                                $var5.$loadFactor = 0.75;
                                                $var5.$threshold = var$14.length * 0.75 | 0;
                                                $var8.$tagMap = $var5;
                                            } else {
                                                $var5 = $var5.$tagMap;
                                                if ($rt_s(918) === null) {
                                                    $var5 = $var5.$elementData.data[0];
                                                    while ($var5 !== null && $var5.$key !== null) {
                                                        $var5 = $var5.$next3;
                                                    }
                                                } else {
                                                    bk: {
                                                        if (!$rt_s(918).$hashCode1) {
                                                            var$6 = 0;
                                                            while (true) {
                                                                if (var$6 >= $rt_s(918).$nativeString.length)
                                                                    break bk;
                                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                                                var$6 = var$6 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    var$16 = $rt_s(918).$hashCode1;
                                                    var$14 = $var5.$elementData.data;
                                                    $var5 = var$14[var$16 & (var$14.length - 1 | 0)];
                                                    while ($var5 !== null) {
                                                        if ($var5.$origKeyHash == var$16) {
                                                            bl: {
                                                                $var9 = $var5.$key;
                                                                if ($rt_s(918) !== $var9) {
                                                                    if ($rt_s(918) === $var9)
                                                                        var$6 = 1;
                                                                    else if (!($var9 instanceof jl_String))
                                                                        var$6 = 0;
                                                                    else {
                                                                        $var9 = $var9;
                                                                        var$6 = $rt_s(918).$nativeString !== $var9.$nativeString ? 0 : 1;
                                                                    }
                                                                    if (!var$6) {
                                                                        var$6 = 0;
                                                                        break bl;
                                                                    }
                                                                }
                                                                var$6 = 1;
                                                            }
                                                            if (var$6)
                                                                break;
                                                        }
                                                        $var5 = $var5.$next3;
                                                    }
                                                }
                                                $var8 = $var5 === null ? null : $var5.$value0;
                                            }
                                            bm: {
                                                $var7 = $var8.$tagMap;
                                                if (!$rt_s(919).$hashCode1) {
                                                    var$6 = 0;
                                                    while (true) {
                                                        if (var$6 >= $rt_s(919).$nativeString.length)
                                                            break bm;
                                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                        var$6 = var$6 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$16 = $rt_s(919).$hashCode1;
                                            var$14 = $var7.$elementData.data;
                                            $var7 = var$14[var$16 & (var$14.length - 1 | 0)];
                                            while ($var7 !== null) {
                                                if ($var7.$origKeyHash == var$16) {
                                                    bn: {
                                                        $var9 = $var7.$key;
                                                        if ($rt_s(919) !== $var9) {
                                                            if ($rt_s(919) === $var9)
                                                                var$6 = 1;
                                                            else if (!($var9 instanceof jl_String))
                                                                var$6 = 0;
                                                            else {
                                                                $var9 = $var9;
                                                                var$6 = $rt_s(919).$nativeString !== $var9.$nativeString ? 0 : 1;
                                                            }
                                                            if (!var$6) {
                                                                var$6 = 0;
                                                                break bn;
                                                            }
                                                        }
                                                        var$6 = 1;
                                                    }
                                                    if (var$6)
                                                        break;
                                                }
                                                $var7 = $var7.$next3;
                                            }
                                            if ($var7 === null ? 0 : 1) {
                                                bo: {
                                                    $var5 = $var8.$tagMap;
                                                    if (!$rt_s(919).$hashCode1) {
                                                        var$6 = 0;
                                                        while (true) {
                                                            if (var$6 >= $rt_s(919).$nativeString.length)
                                                                break bo;
                                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                            var$6 = var$6 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$16 = $rt_s(919).$hashCode1;
                                                var$14 = $var5.$elementData.data;
                                                $var5 = var$14[var$16 & (var$14.length - 1 | 0)];
                                                while ($var5 !== null) {
                                                    if ($var5.$origKeyHash == var$16) {
                                                        bp: {
                                                            $var7 = $var5.$key;
                                                            if ($rt_s(919) !== $var7) {
                                                                if ($rt_s(919) === $var7)
                                                                    var$6 = 1;
                                                                else if (!($var7 instanceof jl_String))
                                                                    var$6 = 0;
                                                                else {
                                                                    $var7 = $var7;
                                                                    var$6 = $rt_s(919).$nativeString !== $var7.$nativeString ? 0 : 1;
                                                                }
                                                                if (!var$6) {
                                                                    var$6 = 0;
                                                                    break bp;
                                                                }
                                                            }
                                                            var$6 = 1;
                                                        }
                                                        if (var$6)
                                                            break;
                                                    }
                                                    $var5 = $var5.$next3;
                                                }
                                                if (!($var5 === null ? 0 : 1))
                                                    $var2 = $rt_s(3);
                                                else {
                                                    $var5 = $var8.$tagMap;
                                                    if ($rt_s(919) === null) {
                                                        $var5 = $var5.$elementData.data[0];
                                                        while ($var5 !== null && $var5.$key !== null) {
                                                            $var5 = $var5.$next3;
                                                        }
                                                    } else {
                                                        bq: {
                                                            if (!$rt_s(919).$hashCode1) {
                                                                var$6 = 0;
                                                                while (true) {
                                                                    if (var$6 >= $rt_s(919).$nativeString.length)
                                                                        break bq;
                                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                                    var$6 = var$6 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        var$16 = $rt_s(919).$hashCode1;
                                                        var$14 = $var5.$elementData.data;
                                                        $var5 = var$14[var$16 & (var$14.length - 1 | 0)];
                                                        while ($var5 !== null) {
                                                            if ($var5.$origKeyHash == var$16) {
                                                                br: {
                                                                    $var7 = $var5.$key;
                                                                    if ($rt_s(919) !== $var7) {
                                                                        if ($rt_s(919) === $var7)
                                                                            var$6 = 1;
                                                                        else if (!($var7 instanceof jl_String))
                                                                            var$6 = 0;
                                                                        else {
                                                                            $var7 = $var7;
                                                                            var$6 = $rt_s(919).$nativeString !== $var7.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$6) {
                                                                            var$6 = 0;
                                                                            break br;
                                                                        }
                                                                    }
                                                                    var$6 = 1;
                                                                }
                                                                if (var$6)
                                                                    break;
                                                            }
                                                            $var5 = $var5.$next3;
                                                        }
                                                    }
                                                    $var2 = ($var5 === null ? null : $var5.$value0).$data1;
                                                }
                                            }
                                        }
                                    }
                                    var$5[2] = $var2;
                                    nms_StatCollector_$callClinit();
                                    $var1 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(2473), var$4);
                                    break x;
                                }
                            }
                            var$4 = $rt_wrapArray(jl_Object, [$this.$fighter.$getTranslatedEntityName(), $var4]);
                            nms_StatCollector_$callClinit();
                            $var1 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $rt_s(2474), var$4);
                        }
                    }
                } else {
                    $var5 = $var1.$field_94566_e;
                    if ($var5 === null)
                        $var5 = $rt_s(1266);
                    $var1 = new jl_StringBuilder;
                    $var1.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2475));
                    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $var5);
                    $var2 = new jl_String;
                    var$4 = $var1.$buffer;
                    var$5 = var$4.data;
                    var$6 = $var1.$length0;
                    var$7 = var$5.length;
                    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
                        $var2.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
                        var$4 = $rt_createArray(jl_Object, 1);
                        var$4.data[0] = $this.$fighter.$getTranslatedEntityName();
                        nms_StatCollector_$callClinit();
                        $var1 = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, $var2, var$4);
                    } else {
                        $var1 = new jl_IndexOutOfBoundsException;
                        $var1.$suppressionEnabled = 1;
                        $var1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var1);
                        $rt_throw($var1);
                    }
                }
            }
        } else
            $var1 = $var2.$damageSrc.$getDeathMessage($this.$fighter);
        return $var1;
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $rt_throw($var1);
},
nms_CombatTracker_func_94550_c = $this => {
    let $var1, $var2, $var3, $var4, var$5, $var5$index, var$7, var$8, $var5$index_0, $var6;
    $var1 = null;
    $var2 = null;
    $var3 = 0.0;
    $var4 = 0.0;
    var$5 = $this.$field_94556_a;
    $var5$index = 0;
    var$7 = var$5.$modCount;
    var$8 = var$5.$size();
    while ($var5$index >= var$8 ? 0 : 1) {
        if (var$7 < var$5.$modCount) {
            $var1 = new ju_ConcurrentModificationException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $var5$index_0 = $var5$index + 1 | 0;
        $var6 = var$5.$get($var5$index);
        if ($var6.$damageSrc.$getEntity() instanceof nms_EntityPlayer && !($var2 !== null && $var6.$field_94568_c <= $var4)) {
            $var4 = $var6.$field_94568_c;
            $var2 = $var6.$damageSrc.$getEntity();
        }
        if ($var6.$damageSrc.$getEntity() instanceof nms_EntityLivingBase && !($var1 !== null && $var6.$field_94568_c <= $var3)) {
            $var3 = $var6.$field_94568_c;
            $var1 = $var6.$damageSrc.$getEntity();
        }
        $var5$index = $var5$index_0;
    }
    if ($var2 !== null && $var4 >= $var3 / 3.0)
        return $var2;
    return $var1;
},
nms_CombatTracker_func_94544_f = $this => {
    let $var1, $var2, $var4, $var5, var$5, var$6, var$7, var$8, $var6, $var7, var$11, var$12;
    $var1 = null;
    $var2 = null;
    $var4 = 0.0;
    $var5 = 0;
    a: {
        b: {
            while (true) {
                var$5 = $this.$field_94556_a;
                var$6 = var$5.$size0;
                var$7 = $rt_compare($var5, var$6);
                if (var$7 >= 0)
                    break;
                if ($var5 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                var$8 = var$5.$array.data;
                $var6 = var$8[$var5];
                if ($var5 <= 0)
                    $var7 = null;
                else {
                    var$11 = $var5 - 1 | 0;
                    if (var$11 < 0)
                        break b;
                    if (var$11 >= var$6)
                        break b;
                    $var7 = var$8[var$11];
                }
                var$12 = $var6.$damageSrc;
                if (!(var$12 !== nms_DamageSource_fall && var$12 !== nms_DamageSource_outOfWorld)) {
                    var$5 = nms_DamageSource_outOfWorld;
                    if ((var$12 !== var$5 ? $var6.$field_94564_f : 3.4028234663852886E38) > 0.0 && !($var1 !== null && (var$12 !== var$5 ? $var6.$field_94564_f : 3.4028234663852886E38) <= $var4)) {
                        if ($var5 <= 0)
                            $var7 = $var6;
                        $var4 = var$12 !== var$5 ? $var6.$field_94564_f : 3.4028234663852886E38;
                        $var1 = $var7;
                    }
                }
                if ($var6.$field_94566_e !== null && !($var2 !== null && $var6.$field_94568_c <= 0.0))
                    $var2 = $var6;
                $var5 = $var5 + 1 | 0;
            }
            if ($var4 > 5.0 && $var1 !== null)
                return $var1;
            return null;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $rt_throw($var1);
},
nms_CombatTracker_func_94549_h = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7;
    $var1 = !$this.$field_94552_d ? 100 : 300;
    if ($this.$field_94553_e && ($this.$fighter.$ticksExisted - $this.$field_94555_c | 0) > $var1) {
        var$2 = $this.$field_94556_a;
        var$3 = var$2.$array;
        $var1 = 0;
        var$4 = var$2.$size0;
        var$5 = null;
        if ($var1 > var$4) {
            var$2 = new jl_IllegalArgumentException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        while ($var1 < var$4) {
            var$6 = var$3.data;
            var$7 = $var1 + 1 | 0;
            var$6[$var1] = var$5;
            $var1 = var$7;
        }
        var$2.$size0 = 0;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        $this.$field_94553_e = 0;
        $this.$field_94552_d = 0;
    }
};
function nms_EntityAITaskEntry() {
    let a = this; jl_Object.call(a);
    a.$action = null;
    a.$priority = 0;
    a.$tasks = null;
}
function nms_BiomeCacheBlock() {
    let a = this; jl_Object.call(a);
    a.$temperatureValues = null;
    a.$rainfallValues = null;
    a.$biomes = null;
    a.$xPosition14 = 0;
    a.$zPosition15 = 0;
    a.$lastAccessTime = Long_ZERO;
    a.$theBiomeCache = null;
}
let nms_BiomeCacheBlock__init_0 = ($this, $par1BiomeCache, $par2, $par3) => {
    let var$4, var$5, var$6;
    $this.$theBiomeCache = $par1BiomeCache;
    var$4 = $rt_createFloatArray(256);
    $this.$temperatureValues = var$4;
    $this.$rainfallValues = $rt_createFloatArray(256);
    $this.$biomes = $rt_createArray(nms_BiomeGenBase, 256);
    $this.$xPosition14 = $par2;
    $this.$zPosition15 = $par3;
    var$5 = $par1BiomeCache.$chunkManager;
    $par2 = $par2 << 4;
    var$6 = $par3 << 4;
    var$5.$getTemperatures(var$4, $par2, var$6, 16, 16);
    $par1BiomeCache.$chunkManager.$getRainfall($this.$rainfallValues, $par2, var$6, 16, 16);
    $par1BiomeCache.$chunkManager.$getBiomeGenAt0($this.$biomes, $par2, var$6, 16, 16, 0);
},
nms_BiomeCacheBlock__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_BiomeCacheBlock();
    nms_BiomeCacheBlock__init_0(var_3, var_0, var_1, var_2);
    return var_3;
};
function nms_RedstoneUpdateInfo() {
    let a = this; jl_Object.call(a);
    a.$x2 = 0;
    a.$y1 = 0;
    a.$z4 = 0;
    a.$updateTime = Long_ZERO;
}
function nms_EnumSkyBlock() {
    jl_Enum.call(this);
    this.$defaultLightValue = 0;
}
let nms_EnumSkyBlock_Sky = null,
nms_EnumSkyBlock_Block = null,
nms_EnumSkyBlock_$VALUES = null,
nms_EnumSkyBlock_values = () => {
    return nms_EnumSkyBlock_$VALUES.$clone0();
},
nms_EnumSkyBlock__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nms_EnumSkyBlock;
    var$1.$name0 = $rt_s(2174);
    var$1.$ordinal = 0;
    var$1.$defaultLightValue = 15;
    nms_EnumSkyBlock_Sky = var$1;
    var$2 = new nms_EnumSkyBlock;
    var$2.$name0 = $rt_s(2476);
    var$2.$ordinal = 1;
    var$2.$defaultLightValue = 0;
    nms_EnumSkyBlock_Block = var$2;
    nms_EnumSkyBlock_$VALUES = $rt_wrapArray(nms_EnumSkyBlock, [var$1, var$2]);
},
nms_Direction = $rt_classWithoutFields(),
nms_Direction_offsetX = null,
nms_Direction_offsetZ = null,
nms_Direction_directions = null,
nms_Direction_directionToFacing = null,
nms_Direction_facingToDirection = null,
nms_Direction_rotateOpposite = null,
nms_Direction_rotateRight = null,
nms_Direction_rotateLeft = null,
nms_Direction_bedDirection = null,
nms_Direction__init_ = $this => {
    return;
},
nms_Direction__init_0 = () => {
    let var_0 = new nms_Direction();
    nms_Direction__init_(var_0);
    return var_0;
},
nms_Direction__clinit_ = () => {
    let var$1, var$2;
    nms_Direction_offsetX = $rt_createIntArrayFromData([0, (-1), 0, 1]);
    nms_Direction_offsetZ = $rt_createIntArrayFromData([1, 0, (-1), 0]);
    nms_Direction_directions = $rt_wrapArray(jl_String, [$rt_s(2441), $rt_s(2442), $rt_s(2440), $rt_s(2443)]);
    nms_Direction_directionToFacing = $rt_createIntArrayFromData([3, 4, 2, 5]);
    nms_Direction_facingToDirection = $rt_createIntArrayFromData([(-1), (-1), 2, 0, 1, 3]);
    nms_Direction_rotateOpposite = $rt_createIntArrayFromData([2, 3, 0, 1]);
    nms_Direction_rotateRight = $rt_createIntArrayFromData([1, 2, 3, 0]);
    nms_Direction_rotateLeft = $rt_createIntArrayFromData([3, 0, 1, 2]);
    var$1 = $rt_createArray($rt_arraycls($rt_intcls), 4);
    var$2 = var$1.data;
    var$2[0] = $rt_createIntArrayFromData([1, 0, 3, 2, 5, 4]);
    var$2[1] = $rt_createIntArrayFromData([1, 0, 5, 4, 2, 3]);
    var$2[2] = $rt_createIntArrayFromData([1, 0, 2, 3, 4, 5]);
    var$2[3] = $rt_createIntArrayFromData([1, 0, 4, 5, 3, 2]);
    nms_Direction_bedDirection = var$1;
};
function nms_EntityZombieGroupData() {
    let a = this; jl_Object.call(a);
    a.$field_142048_a = 0;
    a.$field_142046_b = 0;
    a.$field_142047_c = null;
}
let nms_EntityZombieINNER1 = $rt_classWithoutFields(),
nms_EntityZombieINNER1__init_ = $this => {
    return;
},
nms_EntityZombieINNER1__init_0 = () => {
    let var_0 = new nms_EntityZombieINNER1();
    nms_EntityZombieINNER1__init_(var_0);
    return var_0;
};
function nms_WatchableObject() {
    let a = this; jl_Object.call(a);
    a.$objectType = 0;
    a.$dataValueId = 0;
    a.$watchedObject = null;
    a.$watched = 0;
}
let nms_WatchableObject_setObject = ($this, $par1Obj) => {
    $this.$watchedObject = $par1Obj;
},
nms_WatchableObject_getObject = $this => {
    return $this.$watchedObject;
},
nms_WatchableObject_setWatched = ($this, $par1) => {
    $this.$watched = $par1;
},
nms_WatchableObject_setWatchableObjectWatched = ($par0WatchableObject, $par1) => {
    $par0WatchableObject.$watched = $par1;
    return $par1;
},
nms_EntityGolem = $rt_classWithoutFields(nms_EntityCreature),
nms_EntityGolem_fall = ($this, $par1) => {
    return;
},
nms_EntityGolem_getLivingSound = $this => {
    return $rt_s(2477);
},
nms_EntityGolem_getHurtSound = $this => {
    return $rt_s(2477);
},
nms_EntityGolem_getDeathSound = $this => {
    return $rt_s(2477);
},
nms_EntityGolem_getTalkInterval = $this => {
    return 120;
},
nms_EntityGolem_canDespawn = $this => {
    return 0;
};
function nms_EntityIronGolem() {
    let a = this; nms_EntityGolem.call(a);
    a.$homeCheckTimer = 0;
    a.$villageObj1 = null;
    a.$attackTimer = 0;
    a.$holdRoseTick = 0;
}
let nms_EntityIronGolem__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        var$2 = 1.399999976158142;
        var$3 = 2.9000000953674316;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$navigator.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIAttackOnCollide;
        var$4.$attacker = $this;
        var$4.$worldObj17 = $this.$worldObj;
        var$4.$field_75440_e = 1.0;
        var$4.$longMemory = 1;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 1;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIMoveTowardsTarget;
        var$4.$theEntity9 = $this;
        var$4.$speed3 = 0.9;
        var$4.$maxTargetDistance = 32.0;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 2;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIMoveThroughVillage;
        var$6 = new ju_ArrayList;
        var$6.$array = $rt_createArray(jl_Object, 10);
        var$4.$doorList = var$6;
        var$4.$theEntity2 = $this;
        var$4.$movementSpeed0 = 0.6;
        var$4.$isNocturnal = 1;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 3;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIMoveTowardsRestriction;
        var$4.$theEntity0 = $this;
        var$4.$movementSpeed = 1.0;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 4;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAILookAtVillager;
        var$4.$theGolem0 = $this;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 5;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWander;
        var$4.$entity = $this;
        var$4.$speed = 0.6;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 6;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWatchClosest;
        var$4.$theWatcher = $this;
        var$4.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$4.$maxDistanceForPlayer = 6.0;
        var$4.$field_75331_e = 0.019999999552965164;
        var$4.$mutexBits = 2;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 7;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAILookIdle;
        var$4.$idleEntity = $this;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 8;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$4 = new nms_EntityAIDefendVillage;
        var$4.$taskOwner = $this;
        var$4.$shouldCheckSight = 0;
        var$4.$nearbyOnly = 1;
        var$4.$irongolem = $this;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 1;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$4 = new nms_EntityAIHurtByTarget;
        var$4.$taskOwner = $this;
        var$4.$shouldCheckSight = 0;
        var$4.$nearbyOnly = 0;
        var$4.$entityCallsForHelp = 0;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 2;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        var$4 = $this.$targetTasks;
        var$6 = new nms_EntityAINearestAttackableTarget;
        $par1World = nms_IMob_mobSelector;
        var$6.$taskOwner = $this;
        var$6.$shouldCheckSight = 0;
        var$6.$nearbyOnly = 1;
        var$6.$targetClass = $rt_cls(nms_EntityLiving);
        var$6.$targetChance = 0;
        var$5 = new nms_EntityAINearestAttackableTargetSorter;
        var$5.$theEntity5 = $this;
        var$6.$theNearestAttackableTargetSorter = var$5;
        var$6.$mutexBits = 1;
        var$5 = new nms_EntityAINearestAttackableTargetSelector;
        var$5.$field_111102_d = var$6;
        var$5.$field_111103_c = $par1World;
        var$6.$targetEntitySelector = var$5;
        var$5 = var$4.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$4;
        $par1World.$priority = 3;
        $par1World.$action = var$6;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = $par1World;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityIronGolem__init_0 = var_0 => {
    let var_1 = new nms_EntityIronGolem();
    nms_EntityIronGolem__init_(var_1, var_0);
    return var_1;
},
nms_EntityIronGolem_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
},
nms_EntityIronGolem_isAIEnabled = $this => {
    return 1;
},
nms_EntityIronGolem_updateAITick = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var1;
    var$1 = $this.$homeCheckTimer - 1 | 0;
    $this.$homeCheckTimer = var$1;
    if (var$1 <= 0) {
        var$2 = $this.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 50 | 0;
            if (((var$4 - var$5 | 0) + 49 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        $this.$homeCheckTimer = 70 + var$5 | 0;
        var$2 = $this.$worldObj.$villageCollectionObj;
        var$6 = $this.$posX;
        var$7 = var$6 | 0;
        if (var$6 < var$7)
            var$7 = var$7 - 1 | 0;
        var$6 = $this.$posY;
        var$8 = var$6 | 0;
        if (var$6 < var$8)
            var$8 = var$8 - 1 | 0;
        var$6 = $this.$posZ;
        var$9 = var$6 | 0;
        if (var$6 < var$9)
            var$9 = var$9 - 1 | 0;
        var$2 = nms_VillageCollection_findNearestVillage(var$2, var$7, var$8, var$9, 32);
        $this.$villageObj1 = var$2;
        if (var$2 === null)
            $this.$maximumHomeDistance = (-1.0);
        else {
            $var1 = var$2.$center;
            var$1 = $var1.$posX0;
            var$9 = $var1.$posY0;
            var$8 = $var1.$posZ0;
            var$7 = var$2.$villageRadius * 0.6000000238418579 | 0;
            var$2 = $this.$homePosition;
            var$2.$posX0 = var$1;
            var$2.$posY0 = var$9;
            var$2.$posZ0 = var$8;
            $this.$maximumHomeDistance = var$7;
        }
    }
},
nms_EntityIronGolem_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (100.0 !== var$3.$baseValue) {
        var$3.$baseValue = 100.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.25 !== var$1.$baseValue) {
        var$1.$baseValue = 0.25;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityIronGolem_decreaseAirSupply = ($this, $par1) => {
    return $par1;
},
nms_EntityIronGolem_collideWithEntity = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($rt_isInstance($par1Entity, nms_IMob)) {
            var$2 = $this.$rand;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
            while (true) {
                var$5 = var$4 % 20 | 0;
                if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                    break;
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                var$4 = Long_lo(Long_shru(var$3, 17));
            }
            if (!var$5)
                $this.$attackTarget = $par1Entity;
        }
        $ptr = 1;
    case 1:
        $par1Entity.$applyEntityCollision($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityIronGolem_onLivingUpdate = $this => {
    let $var4, var$2, var$3, var$4, var$5, $var2, $var1, $var3, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var4 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$attackTimer;
        if ($var4 > 0)
            $this.$attackTimer = $var4 - 1 | 0;
        $var4 = $this.$holdRoseTick;
        if ($var4 > 0)
            $this.$holdRoseTick = $var4 - 1 | 0;
        var$2 = $this.$motionX;
        var$2 = var$2 * var$2;
        var$3 = $this.$motionZ;
        if (var$2 + var$3 * var$3 > 2.500000277905201E-7) {
            var$4 = $this.$rand;
            var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$5;
            $var2 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                $var1 = $var2 % 5 | 0;
                if ((($var2 - $var1 | 0) + 4 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$5;
                $var2 = Long_lo(Long_shru(var$5, 17));
            }
            if (!$var1) {
                var$2 = $this.$posX;
                $var1 = var$2 | 0;
                if (var$2 < $var1)
                    $var1 = $var1 - 1 | 0;
                var$2 = $this.$posY - 0.20000000298023224 - $this.$yOffset;
                $var2 = var$2 | 0;
                if (var$2 < $var2)
                    $var2 = $var2 - 1 | 0;
                var$2 = $this.$posZ;
                $var3 = var$2 | 0;
                if (var$2 < $var3)
                    $var3 = $var3 - 1 | 0;
                var$4 = $this.$worldObj;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId(var$4, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 <= 0)
            return;
        var$4 = $this.$worldObj;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata(var$4, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(1250));
        jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $var4, 10);
        $var2 = var$9.$length0;
        jl_AbstractStringBuilder_insertSpace(var$9, $var2, $var2 + 1 | 0);
        var$9.$buffer.data[$var2] = 95;
        jl_AbstractStringBuilder_insert0(var$9, var$9.$length0, $var3, 10);
        var$10 = new jl_String;
        var$11 = var$9.$buffer;
        var$12 = var$11.data;
        $var2 = var$9.$length0;
        $var3 = var$12.length;
        if ($var2 >= 0 && $var2 <= ($var3 - 0 | 0)) {
            var$10.$nativeString = $rt_charArrayToString(var$11.data, 0, $var2);
            var$9 = $this.$rand;
            var$13 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$13;
            var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$13;
            var$9.$seed = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var4 = 0;
            a: {
                while (true) {
                    $var3 = $rt_compare($var4, var$4.$worldAccesses.$size0);
                    if ($var3 >= 0)
                        break;
                    if ($var4 < 0)
                        break a;
                    if ($var3 >= 0)
                        break a;
                    $var4 = $var4 + 1 | 0;
                }
                return;
            }
            var$4 = new jl_IndexOutOfBoundsException;
            var$4.$suppressionEnabled = 1;
            var$4.$writableStackTrace = 1;
            $rt_throw(var$4);
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$4);
        $rt_throw(var$4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, var$2, var$3, var$4, var$5, $var2, $var1, $var3, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityIronGolem_canAttackClass = ($this, $par1Class) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    var$7 = !(var$2.$watchedObject.$value1 & 1) ? 0 : 1;
    return var$7 && otp_Platform_isAssignable($par1Class.$platformClass, $rt_cls(nms_EntityPlayer).$platformClass) ? 0 : $rt_cls(nms_EntityCreeper) !== $par1Class && $rt_cls(nms_EntityGhast) !== $par1Class ? 1 : 0;
},
nms_EntityIronGolem_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$2 = var$2 === null ? null : var$2.$value0;
    var$7 = (!(!(var$2.$watchedObject.$value1 & 1) ? 0 : 1) ? 0 : 1) << 24 >> 24;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2478);
    $par1NBTTagCompound.$data0 = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2478), $par1NBTTagCompound);
},
nms_EntityIronGolem_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2478).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2478).$nativeString.length)
                    break a;
                $rt_s(2478).$hashCode1 = (31 * $rt_s(2478).$hashCode1 | 0) + $rt_s(2478).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2478).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2478) !== var$6) {
                    if ($rt_s(2478) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2478).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2478) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2478).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2478).$nativeString.length)
                            break c;
                        $rt_s(2478).$hashCode1 = (31 * $rt_s(2478).$hashCode1 | 0) + $rt_s(2478).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2478).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    d: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2478) !== var$2) {
                            if ($rt_s(2478) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2478).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
    }
    var$4 = !var$3 ? 0 : 1;
    $par1NBTTagCompound = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    } else {
        var$7 = var$2.$value;
        var$5 = $par1NBTTagCompound.$elementData.data;
        $par1NBTTagCompound = var$5[var$7 & (var$5.length - 1 | 0)];
        while ($par1NBTTagCompound !== null) {
            if ($par1NBTTagCompound.$origKeyHash == var$7) {
                var$8 = $par1NBTTagCompound.$key;
                if (var$2 !== var$8 && !(var$2 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    }
    var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$watchedObject.$value1;
    if (!var$4) {
        $par1NBTTagCompound = $this.$dataWatcher;
        var$3 = (var$3 & (-2)) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
        var$8 = $par1NBTTagCompound.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$4 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$4) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$2 = var$8 === null ? null : var$8.$value0;
        var$8 = var$2.$watchedObject;
        if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$9.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$9;
            var$2.$watched = 1;
            $par1NBTTagCompound.$objectChanged = 1;
        }
    } else {
        $par1NBTTagCompound = $this.$dataWatcher;
        var$3 = (var$3 | 1) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[var$3 + 128 | 0];
        var$8 = $par1NBTTagCompound.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[144];
        if (var$6 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            var$4 = var$6.$value;
            var$5 = var$8.$elementData.data;
            var$8 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$4) {
                    var$2 = var$8.$key;
                    if (var$6 !== var$2 && !(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$2 = var$8 === null ? null : var$8.$value0;
        var$8 = var$2.$watchedObject;
        if (!(var$8 instanceof jl_Byte && var$8.$value1 == var$9.$value1 ? 1 : 0)) {
            var$2.$watchedObject = var$9;
            var$2.$watched = 1;
            $par1NBTTagCompound.$objectChanged = 1;
        }
    }
},
nms_EntityIronGolem_attackEntityAsMob = ($this, $par1Entity) => {
    let var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$attackTimer = 10;
        var$2 = $this.$worldObj;
        var$3 = new nms_Packet38EntityStatus;
        var$4 = $this.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$entityId0 = var$4;
        var$3.$entityStatus = 4;
        var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
        $var2 = $this.$entityId;
        var$4 = $var2 ^ ($var2 >>> 20 | 0) ^ ($var2 >>> 12 | 0);
        var$6 = var$4 ^ (var$4 >>> 7 | 0) ^ (var$4 >>> 4 | 0);
        var$7 = var$2.$slots.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while (var$2 !== null) {
                if (var$2.$hashEntry == $var2) {
                    var$2 = var$2.$valueEntry;
                    break a;
                }
                var$2 = var$2.$nextEntry0;
            }
            var$2 = null;
        }
        var$2 = var$2;
        if (var$2 !== null) {
            var$8 = var$2.$trackingPlayers.$backingMap;
            if (var$8.$cachedKeySet === null) {
                var$9 = new ju_HashMap$1;
                var$9.$this$0 = var$8;
                ju_AbstractCollection__init_(var$9);
                var$8.$cachedKeySet = var$9;
            }
            var$10 = var$8.$cachedKeySet.$iterator();
            var$4 = var$3 instanceof nms_Packet3Chat;
            var$9 = var$3;
            while (var$10.$hasNext()) {
                b: {
                    var$8 = (var$10.$next()).$playerNetServerHandler;
                    if (var$4) {
                        var$11 = var$8.$playerEntity.$chatVisibility;
                        if (var$11 == 2)
                            break b;
                        if (var$11 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        var$8 = var$8.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$8 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$12 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$12);
                        jl_System_errCache = var$12;
                    }
                    jl_Throwable_printStackTrace(var$8, jl_System_errCache);
                }
            }
            var$2 = var$2.$myEntity;
            if (var$2 instanceof nms_EntityPlayerMP)
                c: {
                    var$2 = var$2.$playerNetServerHandler;
                    if (var$4) {
                        var$4 = var$2.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break c;
                        if (var$4 == 1 && !var$9.$isServer)
                            break c;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$3 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$3, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$3;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
        }
        var$2 = new nms_EntityDamageSource;
        var$2.$hungerDamage = 0.30000001192092896;
        var$2.$damageType = $rt_s(2288);
        var$2.$damageSourceEntity = $this;
        var$3 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$13;
        var$11 = Long_lo(Long_shru(var$13, 17));
        while (true) {
            var$4 = var$11 % 15 | 0;
            if (((var$11 - var$4 | 0) + 14 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$13;
            var$11 = Long_lo(Long_shru(var$13, 17));
        }
        var$14 = 7 + var$4 | 0;
        $ptr = 1;
    case 1:
        $tmp = $par1Entity.$attackEntityFrom(var$2, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2)
            $par1Entity.$motionY = $par1Entity.$motionY + 0.4000000059604645;
        $par1Entity = $rt_s(2479);
        var$14 = 1.0;
        var$15 = 1.0;
        var$2 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_playSoundAtEntity(var$2, $this, $par1Entity, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        return $var2;
    case 3:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, var$12);
        }
        d: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break d;
                var$8 = (var$10.$next()).$playerNetServerHandler;
                if (!var$4)
                    break;
                var$11 = var$8.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$8 = var$8.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$12 = jl_System_errCache;
            if (var$12 === null) {
                var$12 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$12);
                jl_System_errCache = var$12;
            }
            var$12 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, var$12);
        }
        var$2 = var$2.$myEntity;
        if (var$2 instanceof nms_EntityPlayerMP)
            e: {
                var$2 = var$2.$playerNetServerHandler;
                if (var$4) {
                    var$4 = var$2.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        break e;
                    if (var$4 == 1 && !var$9.$isServer)
                        break e;
                }
                try {
                    var$2 = var$2.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$3 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$3, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$3;
                }
                jl_Throwable_printStackTrace(var$2, jl_System_errCache);
            }
        var$2 = new nms_EntityDamageSource;
        var$2.$hungerDamage = 0.30000001192092896;
        var$2.$damageType = $rt_s(2288);
        var$2.$damageSourceEntity = $this;
        var$3 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$13;
        var$11 = Long_lo(Long_shru(var$13, 17));
        while (true) {
            var$4 = var$11 % 15 | 0;
            if (((var$11 - var$4 | 0) + 14 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$13;
            var$11 = Long_lo(Long_shru(var$13, 17));
        }
        var$14 = 7 + var$4 | 0;
        $ptr = 1;
        continue main;
    case 4:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$3, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = new nms_EntityDamageSource;
        var$2.$hungerDamage = 0.30000001192092896;
        var$2.$damageType = $rt_s(2288);
        var$2.$damageSourceEntity = $this;
        var$3 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$13;
        var$11 = Long_lo(Long_shru(var$13, 17));
        while (true) {
            var$4 = var$11 % 15 | 0;
            if (((var$11 - var$4 | 0) + 14 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$13;
            var$11 = Long_lo(Long_shru(var$13, 17));
        }
        var$14 = 7 + var$4 | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntityIronGolem_getLivingSound = $this => {
    return $rt_s(2477);
},
nms_EntityIronGolem_getHurtSound = $this => {
    return $rt_s(2480);
},
nms_EntityIronGolem_getDeathSound = $this => {
    return $rt_s(2481);
},
nms_EntityIronGolem_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2482);
        var$6 = 1.0;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityIronGolem_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, $var5, $var3, $var4, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = 17;
        $par2 = Long_lo(Long_shru(var$4, var$5));
        $var5 = 2;
        while (true) {
            $var3 = $par2 % 3 | 0;
            if ((($par2 - $var3 | 0) + $var5 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $par2 = Long_lo(Long_shru(var$4, var$5));
        }
        $var4 = 0;
        var$9 = 0.0;
        var$10 = 138;
        if ($var4 < $var3) {
            nms_Block_$callClinit();
            $par1 = nms_Block_plantRed.$blockID;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$11 = new nms_EntityItem;
            var$12 = $this.$worldObj;
            var$13 = $this.$posX;
            var$14 = $this.$posY + var$9;
            var$15 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $var4 = Long_lo(Long_shru(var$4, var$5));
        while (true) {
            $var3 = $var4 % 3 | 0;
            if ((($var4 - $var3 | 0) + $var5 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var4 = Long_lo(Long_shru(var$4, var$5));
        }
        $par2 = 3 + $var3 | 0;
        $var5 = 0;
        if ($var5 >= $par2)
            return;
        nms_Item_$callClinit();
        $par1 = nms_Item_ingotIron.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$16 = new nms_EntityItem;
        var$11 = $this.$worldObj;
        var$13 = $this.$posX;
        var$14 = $this.$posY + var$9;
        var$15 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityItem__init_(var$11, var$12, var$13, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = var$11.$dataWatcher;
        var$12 = var$17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = ju_HashMap_entryByKey(var$12, jl_Integer_integerCache.data[var$10]);
        var$16 = var$12 === null ? null : var$12.$value0;
        if (!(var$3 !== var$16.$watchedObject ? 0 : 1)) {
            var$16.$watchedObject = var$3;
            var$16.$watched = 1;
            var$17.$objectChanged = 1;
        }
        var$16 = var$11.$dataWatcher;
        var$3 = var$16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$10]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$16.$objectChanged = 1;
        var$11.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityItem__init_(var$16, var$11, var$13, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$16.$dataWatcher;
        var$17 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = ju_HashMap_entryByKey(var$17, jl_Integer_integerCache.data[var$10]);
        var$11 = var$11 === null ? null : var$11.$value0;
        if (!(var$3 !== var$11.$watchedObject ? 0 : 1)) {
            var$11.$watchedObject = var$3;
            var$11.$watched = 1;
            var$12.$objectChanged = 1;
        }
        var$12 = var$16.$dataWatcher;
        var$3 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$10]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$12.$objectChanged = 1;
        var$16.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 3:
        nms_World_spawnEntityInWorld(var$3, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 < $var3) {
            nms_Block_$callClinit();
            $par1 = nms_Block_plantRed.$blockID;
            var$3 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            var$3.$itemID = $par1;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            var$11 = new nms_EntityItem;
            var$12 = $this.$worldObj;
            var$13 = $this.$posX;
            var$14 = $this.$posY + var$9;
            var$15 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $var4 = Long_lo(Long_shru(var$4, var$5));
        while (true) {
            $var3 = $var4 % 3 | 0;
            if ((($var4 - $var3 | 0) + $var5 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            $var4 = Long_lo(Long_shru(var$4, var$5));
        }
        $par2 = 3 + $var3 | 0;
        $var5 = 0;
        if ($var5 >= $par2)
            return;
        nms_Item_$callClinit();
        $par1 = nms_Item_ingotIron.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$16 = new nms_EntityItem;
        var$11 = $this.$worldObj;
        var$13 = $this.$posX;
        var$14 = $this.$posY + var$9;
        var$15 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        if ($var5 >= $par2)
            return;
        nms_Item_$callClinit();
        $par1 = nms_Item_ingotIron.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par1;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$16 = new nms_EntityItem;
        var$11 = $this.$worldObj;
        var$13 = $this.$posX;
        var$14 = $this.$posY + var$9;
        var$15 = $this.$posZ;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, $var5, $var3, $var4, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityIronGolem_onDeath = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 !== null) {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !(var$3 !== var$6 ? (var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (!(!(var$2.$watchedObject.$value1 & 1) ? 0 : 1)) {
            var$3 = $this.$attackingPlayer;
            if (var$3 !== null) {
                var$2 = $this.$villageObj1;
                if (var$2 !== null) {
                    a: {
                        var$7 = var$3.$username;
                        var$3 = var$2.$playerReputation.$root;
                        var$6 = var$7;
                        var$8 = var$7;
                        if (var$6 !== var$8) {
                            var$9 = var$6.$nativeString.length;
                            var$10 = var$8.$nativeString.length;
                            if (var$9 < var$10)
                                var$10 = var$9;
                            var$11 = 0;
                            b: {
                                c: {
                                    while (true) {
                                        if (var$11 >= var$10) {
                                            var$6.$nativeString.length;
                                            var$8.$nativeString.length;
                                            break a;
                                        }
                                        if (var$11 < 0)
                                            break b;
                                        if (var$11 >= var$6.$nativeString.length)
                                            break b;
                                        var$12 = var$6.$nativeString.charCodeAt(var$11);
                                        if (var$11 < 0)
                                            break c;
                                        if (var$11 >= var$8.$nativeString.length)
                                            break c;
                                        if (var$12 - var$8.$nativeString.charCodeAt(var$11) | 0)
                                            break;
                                        var$11 = var$11 + 1 | 0;
                                    }
                                    break a;
                                }
                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                    }
                    d: {
                        e: {
                            f: while (true) {
                                if (var$3 === null) {
                                    var$3 = null;
                                    break d;
                                }
                                g: {
                                    var$13 = var$3.$key0;
                                    if (var$6 !== var$13) {
                                        var$12 = var$6.$nativeString.length;
                                        var$9 = var$13.$nativeString.length;
                                        if (var$12 < var$9)
                                            var$9 = var$12;
                                        var$12 = 0;
                                        while (true) {
                                            if (var$12 >= var$9) {
                                                var$11 = var$6.$nativeString.length - var$13.$nativeString.length | 0;
                                                break g;
                                            }
                                            if (var$12 < 0)
                                                break e;
                                            if (var$12 >= var$6.$nativeString.length)
                                                break e;
                                            var$11 = var$6.$nativeString.charCodeAt(var$12);
                                            if (var$12 < 0)
                                                break f;
                                            if (var$12 >= var$13.$nativeString.length)
                                                break f;
                                            var$11 = var$11 - var$13.$nativeString.charCodeAt(var$12) | 0;
                                            if (var$11)
                                                break;
                                            var$12 = var$12 + 1 | 0;
                                        }
                                    } else
                                        var$11 = 0;
                                }
                                if (!var$11)
                                    break d;
                                var$3 = var$11 >= 0 ? var$3.$right : var$3.$left;
                            }
                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                        }
                        $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                    }
                    var$3 = var$3 === null ? null : var$3.$value2;
                    var$9 = (var$3 === null ? 0 : var$3.$value) + (-5) | 0;
                    var$4 = (-30);
                    if (var$9 >= var$4)
                        var$4 = var$9 <= 10 ? var$9 : 10;
                    var$14 = var$2.$playerReputation;
                    if (var$4 >= (-128) && var$4 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$15 = jl_Integer_integerCache.data[var$4 + 128 | 0];
                    } else {
                        var$15 = new jl_Integer;
                        var$15.$value = var$4;
                    }
                    var$16 = var$14.$root;
                    if (var$16 === null) {
                        var$16 = new ju_TreeMap$TreeNode;
                        var$2 = null;
                        var$16.$key0 = var$7;
                        var$16.$value2 = var$2;
                        var$16.$height = 1;
                        var$16.$size1 = 1;
                    } else {
                        h: {
                            var$2 = var$16.$key0;
                            if (var$6 === var$2)
                                var$4 = 0;
                            else {
                                var$11 = var$6.$nativeString.length;
                                var$12 = var$2.$nativeString.length;
                                if (var$11 < var$12)
                                    var$12 = var$11;
                                var$11 = 0;
                                i: {
                                    while (true) {
                                        if (var$11 >= var$12) {
                                            var$4 = var$6.$nativeString.length - var$2.$nativeString.length | 0;
                                            break h;
                                        }
                                        if (var$11 < 0)
                                            break i;
                                        if (var$11 >= var$6.$nativeString.length)
                                            break i;
                                        var$9 = var$6.$nativeString.charCodeAt(var$11);
                                        if (var$11 < 0)
                                            break;
                                        if (var$11 >= var$2.$nativeString.length)
                                            break;
                                        var$4 = var$9 - var$2.$nativeString.charCodeAt(var$11) | 0;
                                        if (var$4)
                                            break h;
                                        var$11 = var$11 + 1 | 0;
                                    }
                                    $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($par1DamageSource);
                                    $rt_throw($par1DamageSource);
                                }
                                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                                $rt_throw($par1DamageSource);
                            }
                        }
                        if (var$4) {
                            if (var$4 >= 0) {
                                var$17 = var$16.$right;
                                if (var$17 === null) {
                                    var$17 = new ju_TreeMap$TreeNode;
                                    var$2 = null;
                                    var$17.$key0 = var$7;
                                    var$17.$value2 = var$2;
                                    var$17.$height = 1;
                                    var$17.$size1 = 1;
                                } else {
                                    j: {
                                        var$2 = var$17.$key0;
                                        if (var$6 === var$2)
                                            var$4 = 0;
                                        else {
                                            var$11 = var$6.$nativeString.length;
                                            var$12 = var$2.$nativeString.length;
                                            if (var$11 < var$12)
                                                var$12 = var$11;
                                            var$11 = 0;
                                            k: {
                                                while (true) {
                                                    if (var$11 >= var$12) {
                                                        var$4 = var$6.$nativeString.length - var$2.$nativeString.length | 0;
                                                        break j;
                                                    }
                                                    if (var$11 < 0)
                                                        break k;
                                                    if (var$11 >= var$6.$nativeString.length)
                                                        break k;
                                                    var$9 = var$6.$nativeString.charCodeAt(var$11);
                                                    if (var$11 < 0)
                                                        break;
                                                    if (var$11 >= var$2.$nativeString.length)
                                                        break;
                                                    var$4 = var$9 - var$2.$nativeString.charCodeAt(var$11) | 0;
                                                    if (var$4)
                                                        break j;
                                                    var$11 = var$11 + 1 | 0;
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                        }
                                    }
                                    if (var$4) {
                                        if (var$4 >= 0) {
                                            var$2 = var$17.$right;
                                            if (var$2 === null) {
                                                var$2 = new ju_TreeMap$TreeNode;
                                                var$3 = null;
                                                var$2.$key0 = var$7;
                                                var$2.$value2 = var$3;
                                                var$2.$height = 1;
                                                var$2.$size1 = 1;
                                            } else {
                                                l: {
                                                    var$3 = var$2.$key0;
                                                    if (var$6 === var$3)
                                                        var$4 = 0;
                                                    else {
                                                        var$11 = jl_Math_min(jl_String_length(var$6), jl_String_length(var$3));
                                                        var$9 = 0;
                                                        while (true) {
                                                            if (var$9 >= var$11) {
                                                                var$4 = jl_String_length(var$6) - jl_String_length(var$3) | 0;
                                                                break l;
                                                            }
                                                            var$4 = jl_String_charAt(var$6, var$9) - jl_String_charAt(var$3, var$9) | 0;
                                                            if (var$4)
                                                                break;
                                                            var$9 = var$9 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$4) {
                                                    if (var$4 >= 0) {
                                                        var$18 = var$2.$right;
                                                        if (var$18 === null) {
                                                            var$18 = new ju_TreeMap$TreeNode;
                                                            var$3 = null;
                                                            jl_Object__init_(var$18);
                                                            var$18.$key0 = var$7;
                                                            var$18.$value2 = var$3;
                                                            var$18.$height = 1;
                                                            var$18.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$18.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$19 = var$18.$right;
                                                                    if (var$19 === null) {
                                                                        var$19 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$19, var$7, null);
                                                                        var$19.$height = 1;
                                                                        var$19.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$19.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$3 = var$19.$right;
                                                                                if (var$3 === null)
                                                                                    var$3 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$14, var$3.$right, var$7);
                                                                                        else
                                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$14, var$3.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$19.$right = var$3;
                                                                            } else {
                                                                                var$3 = var$19.$left;
                                                                                if (var$3 === null)
                                                                                    var$3 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$14, var$3.$right, var$7);
                                                                                        else
                                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$14, var$3.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$19.$left = var$3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                        }
                                                                    }
                                                                    var$18.$right = var$19;
                                                                } else {
                                                                    var$19 = var$18.$left;
                                                                    if (var$19 === null) {
                                                                        var$19 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$19, var$7, null);
                                                                        var$19.$height = 1;
                                                                        var$19.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$19.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$3 = var$19.$right;
                                                                                if (var$3 === null)
                                                                                    var$3 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$14, var$3.$right, var$7);
                                                                                        else
                                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$14, var$3.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$19.$right = var$3;
                                                                            } else {
                                                                                var$3 = var$19.$left;
                                                                                if (var$3 === null)
                                                                                    var$3 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$3));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$3.$right = ju_TreeMap_getOrCreateNode(var$14, var$3.$right, var$7);
                                                                                        else
                                                                                            var$3.$left = ju_TreeMap_getOrCreateNode(var$14, var$3.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$3);
                                                                                        var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                                    }
                                                                                }
                                                                                var$19.$left = var$3;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$19);
                                                                            var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                                        }
                                                                    }
                                                                    var$18.$left = var$19;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$18);
                                                                var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                            }
                                                        }
                                                        var$2.$right = var$18;
                                                    } else {
                                                        var$13 = var$2.$left;
                                                        if (var$13 === null) {
                                                            var$13 = new ju_TreeMap$TreeNode;
                                                            var$3 = null;
                                                            jl_Object__init_(var$13);
                                                            var$13.$key0 = var$7;
                                                            var$13.$value2 = var$3;
                                                            var$13.$height = 1;
                                                            var$13.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$13.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$3 = var$13.$right;
                                                                    if (var$3 === null) {
                                                                        var$3 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$3, var$7, null);
                                                                        var$3.$height = 1;
                                                                        var$3.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$3.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$20 = var$3.$right;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$3.$right = var$20;
                                                                            } else {
                                                                                var$20 = var$3.$left;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$3.$left = var$20;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                        }
                                                                    }
                                                                    var$13.$right = var$3;
                                                                } else {
                                                                    var$3 = var$13.$left;
                                                                    if (var$3 === null) {
                                                                        var$3 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$3, var$7, null);
                                                                        var$3.$height = 1;
                                                                        var$3.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$3.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$20 = var$3.$right;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$3.$right = var$20;
                                                                            } else {
                                                                                var$20 = var$3.$left;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$3.$left = var$20;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                        }
                                                                    }
                                                                    var$13.$left = var$3;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$13);
                                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                            }
                                                        }
                                                        var$2.$left = var$13;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$2);
                                                    var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                }
                                            }
                                            var$17.$right = var$2;
                                        } else {
                                            var$2 = var$17.$left;
                                            if (var$2 === null) {
                                                var$2 = new ju_TreeMap$TreeNode;
                                                var$3 = null;
                                                var$2.$key0 = var$7;
                                                var$2.$value2 = var$3;
                                                var$2.$height = 1;
                                                var$2.$size1 = 1;
                                            } else {
                                                m: {
                                                    var$3 = var$2.$key0;
                                                    if (var$6 === var$3)
                                                        var$4 = 0;
                                                    else {
                                                        var$11 = jl_Math_min(jl_String_length(var$6), jl_String_length(var$3));
                                                        var$9 = 0;
                                                        while (true) {
                                                            if (var$9 >= var$11) {
                                                                var$4 = jl_String_length(var$6) - jl_String_length(var$3) | 0;
                                                                break m;
                                                            }
                                                            var$4 = jl_String_charAt(var$6, var$9) - jl_String_charAt(var$3, var$9) | 0;
                                                            if (var$4)
                                                                break;
                                                            var$9 = var$9 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$4) {
                                                    if (var$4 >= 0) {
                                                        var$3 = var$2.$right;
                                                        if (var$3 === null) {
                                                            var$3 = new ju_TreeMap$TreeNode;
                                                            var$13 = null;
                                                            jl_Object__init_(var$3);
                                                            var$3.$key0 = var$7;
                                                            var$3.$value2 = var$13;
                                                            var$3.$height = 1;
                                                            var$3.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$3.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$13 = var$3.$right;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, var$7, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$13.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$20 = var$13.$right;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$20;
                                                                            } else {
                                                                                var$20 = var$13.$left;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$20;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    var$3.$right = var$13;
                                                                } else {
                                                                    var$13 = var$3.$left;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, var$7, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$13.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$20 = var$13.$right;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$20;
                                                                            } else {
                                                                                var$20 = var$13.$left;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$20;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    var$3.$left = var$13;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                            }
                                                        }
                                                        var$2.$right = var$3;
                                                    } else {
                                                        var$3 = var$2.$left;
                                                        if (var$3 === null) {
                                                            var$3 = new ju_TreeMap$TreeNode;
                                                            var$13 = null;
                                                            jl_Object__init_(var$3);
                                                            var$3.$key0 = var$7;
                                                            var$3.$value2 = var$13;
                                                            var$3.$height = 1;
                                                            var$3.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$3.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$13 = var$3.$right;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, var$7, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$13.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$20 = var$13.$right;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$20;
                                                                            } else {
                                                                                var$20 = var$13.$left;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$20;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    var$3.$right = var$13;
                                                                } else {
                                                                    var$13 = var$3.$left;
                                                                    if (var$13 === null) {
                                                                        var$13 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$13, var$7, null);
                                                                        var$13.$height = 1;
                                                                        var$13.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$13.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$20 = var$13.$right;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$right = var$20;
                                                                            } else {
                                                                                var$20 = var$13.$left;
                                                                                if (var$20 === null)
                                                                                    var$20 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$20));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$20.$right = ju_TreeMap_getOrCreateNode(var$14, var$20.$right, var$7);
                                                                                        else
                                                                                            var$20.$left = ju_TreeMap_getOrCreateNode(var$14, var$20.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$20);
                                                                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                                                                    }
                                                                                }
                                                                                var$13.$left = var$20;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$13);
                                                                            var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                        }
                                                                    }
                                                                    var$3.$left = var$13;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                            }
                                                        }
                                                        var$2.$left = var$3;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$2);
                                                    var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                }
                                            }
                                            var$17.$left = var$2;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$17);
                                        var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                    }
                                }
                                var$16.$right = var$17;
                            } else {
                                var$20 = var$16.$left;
                                if (var$20 === null) {
                                    var$20 = new ju_TreeMap$TreeNode;
                                    var$2 = null;
                                    var$20.$key0 = var$7;
                                    var$20.$value2 = var$2;
                                    var$20.$height = 1;
                                    var$20.$size1 = 1;
                                } else {
                                    n: {
                                        var$2 = var$20.$key0;
                                        if (var$6 === var$2)
                                            var$4 = 0;
                                        else {
                                            var$11 = var$6.$nativeString.length;
                                            var$12 = var$2.$nativeString.length;
                                            if (var$11 < var$12)
                                                var$12 = var$11;
                                            var$11 = 0;
                                            o: {
                                                while (true) {
                                                    if (var$11 >= var$12) {
                                                        var$4 = var$6.$nativeString.length - var$2.$nativeString.length | 0;
                                                        break n;
                                                    }
                                                    if (var$11 < 0)
                                                        break o;
                                                    if (var$11 >= var$6.$nativeString.length)
                                                        break o;
                                                    var$9 = var$6.$nativeString.charCodeAt(var$11);
                                                    if (var$11 < 0)
                                                        break;
                                                    if (var$11 >= var$2.$nativeString.length)
                                                        break;
                                                    var$4 = var$9 - var$2.$nativeString.charCodeAt(var$11) | 0;
                                                    if (var$4)
                                                        break n;
                                                    var$11 = var$11 + 1 | 0;
                                                }
                                                $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                            }
                                            $rt_throw(jl_StringIndexOutOfBoundsException__init_());
                                        }
                                    }
                                    if (var$4) {
                                        if (var$4 >= 0) {
                                            var$18 = var$20.$right;
                                            if (var$18 === null) {
                                                var$18 = new ju_TreeMap$TreeNode;
                                                var$2 = null;
                                                var$18.$key0 = var$7;
                                                var$18.$value2 = var$2;
                                                var$18.$height = 1;
                                                var$18.$size1 = 1;
                                            } else {
                                                p: {
                                                    var$2 = var$18.$key0;
                                                    if (var$6 === var$2)
                                                        var$4 = 0;
                                                    else {
                                                        var$11 = jl_Math_min(jl_String_length(var$6), jl_String_length(var$2));
                                                        var$9 = 0;
                                                        while (true) {
                                                            if (var$9 >= var$11) {
                                                                var$4 = jl_String_length(var$6) - jl_String_length(var$2) | 0;
                                                                break p;
                                                            }
                                                            var$4 = jl_String_charAt(var$6, var$9) - jl_String_charAt(var$2, var$9) | 0;
                                                            if (var$4)
                                                                break;
                                                            var$9 = var$9 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$4) {
                                                    if (var$4 >= 0) {
                                                        var$19 = var$18.$right;
                                                        if (var$19 === null) {
                                                            var$19 = new ju_TreeMap$TreeNode;
                                                            var$2 = null;
                                                            jl_Object__init_(var$19);
                                                            var$19.$key0 = var$7;
                                                            var$19.$value2 = var$2;
                                                            var$19.$height = 1;
                                                            var$19.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$19.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$17 = var$19.$right;
                                                                    if (var$17 === null) {
                                                                        var$17 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$17, var$7, null);
                                                                        var$17.$height = 1;
                                                                        var$17.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$17.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$2 = var$17.$right;
                                                                                if (var$2 === null)
                                                                                    var$2 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$2));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$2.$right = ju_TreeMap_getOrCreateNode(var$14, var$2.$right, var$7);
                                                                                        else
                                                                                            var$2.$left = ju_TreeMap_getOrCreateNode(var$14, var$2.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$2);
                                                                                        var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                                    }
                                                                                }
                                                                                var$17.$right = var$2;
                                                                            } else {
                                                                                var$2 = var$17.$left;
                                                                                if (var$2 === null)
                                                                                    var$2 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$2));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$2.$right = ju_TreeMap_getOrCreateNode(var$14, var$2.$right, var$7);
                                                                                        else
                                                                                            var$2.$left = ju_TreeMap_getOrCreateNode(var$14, var$2.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$2);
                                                                                        var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                                    }
                                                                                }
                                                                                var$17.$left = var$2;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$17);
                                                                            var$17 = ju_TreeMap$TreeNode_balance(var$17);
                                                                        }
                                                                    }
                                                                    var$19.$right = var$17;
                                                                } else {
                                                                    var$3 = var$19.$left;
                                                                    if (var$3 === null) {
                                                                        var$3 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$3, var$7, null);
                                                                        var$3.$height = 1;
                                                                        var$3.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$3.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$13 = var$3.$right;
                                                                                if (var$13 === null)
                                                                                    var$13 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$14, var$13.$right, var$7);
                                                                                        else
                                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$14, var$13.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                                    }
                                                                                }
                                                                                var$3.$right = var$13;
                                                                            } else {
                                                                                var$2 = var$3.$left;
                                                                                if (var$2 === null)
                                                                                    var$2 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$2));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$2.$right = ju_TreeMap_getOrCreateNode(var$14, var$2.$right, var$7);
                                                                                        else
                                                                                            var$2.$left = ju_TreeMap_getOrCreateNode(var$14, var$2.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$2);
                                                                                        var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                                    }
                                                                                }
                                                                                var$3.$left = var$2;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$3);
                                                                            var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                                        }
                                                                    }
                                                                    var$19.$left = var$3;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$19);
                                                                var$19 = ju_TreeMap$TreeNode_balance(var$19);
                                                            }
                                                        }
                                                        var$18.$right = var$19;
                                                    } else {
                                                        var$3 = var$18.$left;
                                                        if (var$3 === null) {
                                                            var$3 = new ju_TreeMap$TreeNode;
                                                            var$2 = null;
                                                            jl_Object__init_(var$3);
                                                            var$3.$key0 = var$7;
                                                            var$3.$value2 = var$2;
                                                            var$3.$height = 1;
                                                            var$3.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$3.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$2 = var$3.$right;
                                                                    if (var$2 === null) {
                                                                        var$2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$2, var$7, null);
                                                                        var$2.$height = 1;
                                                                        var$2.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$2.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$13 = var$2.$right;
                                                                                if (var$13 === null)
                                                                                    var$13 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$14, var$13.$right, var$7);
                                                                                        else
                                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$14, var$13.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                                    }
                                                                                }
                                                                                var$2.$right = var$13;
                                                                            } else {
                                                                                var$13 = var$2.$left;
                                                                                if (var$13 === null)
                                                                                    var$13 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$14, var$13.$right, var$7);
                                                                                        else
                                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$14, var$13.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                                    }
                                                                                }
                                                                                var$2.$left = var$13;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                        }
                                                                    }
                                                                    var$3.$right = var$2;
                                                                } else {
                                                                    var$2 = var$3.$left;
                                                                    if (var$2 === null) {
                                                                        var$2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$2, var$7, null);
                                                                        var$2.$height = 1;
                                                                        var$2.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$2.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$13 = var$2.$right;
                                                                                if (var$13 === null)
                                                                                    var$13 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$14, var$13.$right, var$7);
                                                                                        else
                                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$14, var$13.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                                    }
                                                                                }
                                                                                var$2.$right = var$13;
                                                                            } else {
                                                                                var$13 = var$2.$left;
                                                                                if (var$13 === null)
                                                                                    var$13 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$13));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$13.$right = ju_TreeMap_getOrCreateNode(var$14, var$13.$right, var$7);
                                                                                        else
                                                                                            var$13.$left = ju_TreeMap_getOrCreateNode(var$14, var$13.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$13);
                                                                                        var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                                                    }
                                                                                }
                                                                                var$2.$left = var$13;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                        }
                                                                    }
                                                                    var$3.$left = var$2;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$3);
                                                                var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                            }
                                                        }
                                                        var$18.$left = var$3;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$18);
                                                    var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                }
                                            }
                                            var$20.$right = var$18;
                                        } else {
                                            var$3 = var$20.$left;
                                            if (var$3 === null) {
                                                var$3 = new ju_TreeMap$TreeNode;
                                                var$2 = null;
                                                var$3.$key0 = var$7;
                                                var$3.$value2 = var$2;
                                                var$3.$height = 1;
                                                var$3.$size1 = 1;
                                            } else {
                                                q: {
                                                    var$2 = var$3.$key0;
                                                    if (var$6 === var$2)
                                                        var$4 = 0;
                                                    else {
                                                        var$11 = jl_Math_min(jl_String_length(var$6), jl_String_length(var$2));
                                                        var$9 = 0;
                                                        while (true) {
                                                            if (var$9 >= var$11) {
                                                                var$4 = jl_String_length(var$6) - jl_String_length(var$2) | 0;
                                                                break q;
                                                            }
                                                            var$4 = jl_String_charAt(var$6, var$9) - jl_String_charAt(var$2, var$9) | 0;
                                                            if (var$4)
                                                                break;
                                                            var$9 = var$9 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (var$4) {
                                                    if (var$4 >= 0) {
                                                        var$13 = var$3.$right;
                                                        if (var$13 === null) {
                                                            var$13 = new ju_TreeMap$TreeNode;
                                                            var$2 = null;
                                                            jl_Object__init_(var$13);
                                                            var$13.$key0 = var$7;
                                                            var$13.$value2 = var$2;
                                                            var$13.$height = 1;
                                                            var$13.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$13.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$2 = var$13.$right;
                                                                    if (var$2 === null) {
                                                                        var$2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$2, var$7, null);
                                                                        var$2.$height = 1;
                                                                        var$2.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$2.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$18 = var$2.$right;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$right = var$18;
                                                                            } else {
                                                                                var$18 = var$2.$left;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$left = var$18;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                        }
                                                                    }
                                                                    var$13.$right = var$2;
                                                                } else {
                                                                    var$2 = var$13.$left;
                                                                    if (var$2 === null) {
                                                                        var$2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$2, var$7, null);
                                                                        var$2.$height = 1;
                                                                        var$2.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$2.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$18 = var$2.$right;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$right = var$18;
                                                                            } else {
                                                                                var$18 = var$2.$left;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$left = var$18;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                        }
                                                                    }
                                                                    var$13.$left = var$2;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$13);
                                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                            }
                                                        }
                                                        var$3.$right = var$13;
                                                    } else {
                                                        var$13 = var$3.$left;
                                                        if (var$13 === null) {
                                                            var$13 = new ju_TreeMap$TreeNode;
                                                            var$2 = null;
                                                            jl_Object__init_(var$13);
                                                            var$13.$key0 = var$7;
                                                            var$13.$value2 = var$2;
                                                            var$13.$height = 1;
                                                            var$13.$size1 = 1;
                                                        } else {
                                                            var$4 = jl_String_compareTo0(var$6, var$13.$key0);
                                                            if (var$4) {
                                                                if (var$4 >= 0) {
                                                                    var$2 = var$13.$right;
                                                                    if (var$2 === null) {
                                                                        var$2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$2, var$7, null);
                                                                        var$2.$height = 1;
                                                                        var$2.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$2.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$18 = var$2.$right;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$right = var$18;
                                                                            } else {
                                                                                var$18 = var$2.$left;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$left = var$18;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                        }
                                                                    }
                                                                    var$13.$right = var$2;
                                                                } else {
                                                                    var$2 = var$13.$left;
                                                                    if (var$2 === null) {
                                                                        var$2 = new ju_TreeMap$TreeNode;
                                                                        ju_AbstractMap$SimpleEntry__init_(var$2, var$7, null);
                                                                        var$2.$height = 1;
                                                                        var$2.$size1 = 1;
                                                                    } else {
                                                                        var$4 = jl_String_compareTo(var$6, var$2.$key0);
                                                                        if (var$4) {
                                                                            if (var$4 >= 0) {
                                                                                var$18 = var$2.$right;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$right = var$18;
                                                                            } else {
                                                                                var$18 = var$2.$left;
                                                                                if (var$18 === null)
                                                                                    var$18 = ju_TreeMap$TreeNode__init_(var$7);
                                                                                else {
                                                                                    var$4 = ju_Comparator$NaturalOrder_compare(var$14.$comparator, var$7, ju_AbstractMap$SimpleEntry_getKey(var$18));
                                                                                    if (var$4) {
                                                                                        if (var$4 >= 0)
                                                                                            var$18.$right = ju_TreeMap_getOrCreateNode(var$14, var$18.$right, var$7);
                                                                                        else
                                                                                            var$18.$left = ju_TreeMap_getOrCreateNode(var$14, var$18.$left, var$7);
                                                                                        ju_TreeMap$TreeNode_fix(var$18);
                                                                                        var$18 = ju_TreeMap$TreeNode_balance(var$18);
                                                                                    }
                                                                                }
                                                                                var$2.$left = var$18;
                                                                            }
                                                                            ju_TreeMap$TreeNode_fix(var$2);
                                                                            var$2 = ju_TreeMap$TreeNode_balance(var$2);
                                                                        }
                                                                    }
                                                                    var$13.$left = var$2;
                                                                }
                                                                ju_TreeMap$TreeNode_fix(var$13);
                                                                var$13 = ju_TreeMap$TreeNode_balance(var$13);
                                                            }
                                                        }
                                                        var$3.$left = var$13;
                                                    }
                                                    ju_TreeMap$TreeNode_fix(var$3);
                                                    var$3 = ju_TreeMap$TreeNode_balance(var$3);
                                                }
                                            }
                                            var$20.$left = var$3;
                                        }
                                        ju_TreeMap$TreeNode_fix(var$20);
                                        var$20 = ju_TreeMap$TreeNode_balance(var$20);
                                    }
                                }
                                var$16.$left = var$20;
                            }
                            ju_TreeMap$TreeNode_fix(var$16);
                            var$16 = ju_TreeMap$TreeNode_balance(var$16);
                        }
                    }
                    r: {
                        var$14.$root = var$16;
                        if (var$6 !== var$8) {
                            var$11 = var$6.$nativeString.length;
                            var$12 = var$8.$nativeString.length;
                            if (var$11 < var$12)
                                var$12 = var$11;
                            var$4 = 0;
                            s: {
                                while (true) {
                                    if (var$4 >= var$12) {
                                        var$6.$nativeString.length;
                                        var$8.$nativeString.length;
                                        break r;
                                    }
                                    if (var$4 < 0)
                                        break s;
                                    if (var$4 >= var$6.$nativeString.length)
                                        break s;
                                    var$9 = var$6.$nativeString.charCodeAt(var$4);
                                    if (var$4 < 0)
                                        break;
                                    if (var$4 >= var$8.$nativeString.length)
                                        break;
                                    if (var$9 - var$8.$nativeString.charCodeAt(var$4) | 0)
                                        break r;
                                    var$4 = var$4 + 1 | 0;
                                }
                                $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($par1DamageSource);
                                $rt_throw($par1DamageSource);
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                    }
                    t: {
                        u: {
                            v: while (true) {
                                if (var$16 === null) {
                                    var$16 = null;
                                    break t;
                                }
                                w: {
                                    var$2 = var$16.$key0;
                                    if (var$6 === var$2)
                                        var$4 = 0;
                                    else {
                                        var$11 = var$6.$nativeString.length;
                                        var$12 = var$2.$nativeString.length;
                                        if (var$11 < var$12)
                                            var$12 = var$11;
                                        var$11 = 0;
                                        while (true) {
                                            if (var$11 >= var$12) {
                                                var$4 = var$6.$nativeString.length - var$2.$nativeString.length | 0;
                                                break w;
                                            }
                                            if (var$11 < 0)
                                                break u;
                                            if (var$11 >= var$6.$nativeString.length)
                                                break u;
                                            var$9 = var$6.$nativeString.charCodeAt(var$11);
                                            if (var$11 < 0)
                                                break v;
                                            if (var$11 >= var$2.$nativeString.length)
                                                break v;
                                            var$4 = var$9 - var$2.$nativeString.charCodeAt(var$11) | 0;
                                            if (var$4)
                                                break;
                                            var$11 = var$11 + 1 | 0;
                                        }
                                    }
                                }
                                if (!var$4)
                                    break t;
                                var$16 = var$4 >= 0 ? var$16.$right : var$16.$left;
                            }
                            $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1DamageSource);
                            $rt_throw($par1DamageSource);
                        }
                        $par1DamageSource = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1DamageSource);
                        $rt_throw($par1DamageSource);
                    }
                    var$16.$value2 = var$15;
                    var$16.$value2 = var$15;
                    var$14.$modCount2 = var$14.$modCount2 + 1 | 0;
                }
            }
        }
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onDeath($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_WeightedRandom = $rt_classWithoutFields(),
nms_WeightedRandom__init_ = $this => {
    return;
},
nms_WeightedRandom__init_0 = () => {
    let var_0 = new nms_WeightedRandom();
    nms_WeightedRandom__init_(var_0);
    return var_0;
};
function nms_EntityFallingSand() {
    let a = this; nms_Entity.call(a);
    a.$blockID1 = 0;
    a.$metadata = 0;
    a.$fallTime = 0;
    a.$shouldDropItem = 0;
    a.$isBreakingAnvil = 0;
    a.$isAnvil = 0;
    a.$fallHurtMax = 0;
    a.$fallHurtAmount = 0.0;
    a.$fallingBlockTileEntityData = null;
}
let nms_EntityFallingSand__init_ = ($this, $par1World, $par2, $par4, $par6, $par8, $par9) => {
    let var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$shouldDropItem = 1;
        $this.$fallHurtMax = 40;
        $this.$fallHurtAmount = 2.0;
        $this.$blockID1 = $par8;
        $this.$metadata = $par9;
        $this.$preventEntitySpawning = 1;
        var$7 = 0.9800000190734863;
        var$8 = 0.9800000190734863;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $this.$yOffset = $this.$height0 / 2.0;
        nms_Entity_setPosition($this, $par2, $par4, $par6);
        $this.$motionX = 0.0;
        $this.$motionY = 0.0;
        $this.$motionZ = 0.0;
        $this.$prevPosX = $par2;
        $this.$prevPosY = $par4;
        $this.$prevPosZ = $par6;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, $par8, $par9, var$7, var$8, $ptr);
},
nms_EntityFallingSand__init_0 = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new nms_EntityFallingSand();
    nms_EntityFallingSand__init_(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
},
nms_EntityFallingSand_canTriggerWalking = $this => {
    return 0;
},
nms_EntityFallingSand_entityInit = $this => {
    return;
},
nms_EntityFallingSand_canBeCollidedWith = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityFallingSand_onUpdate = $this => {
    let var$1, var$2, var$3, $var4, $var1, $var2, $var3, var$8, var$9, var$10, $var5, $var6, var$13, var$14, var$15, $var7, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$blockID1) {
            $this.$isDead = 1;
            return;
        }
        $this.$prevPosX = $this.$posX;
        $this.$prevPosY = $this.$posY;
        $this.$prevPosZ = $this.$posZ;
        $this.$fallTime = $this.$fallTime + 1 | 0;
        var$1 = $this.$motionY - 0.03999999910593033;
        $this.$motionY = var$1;
        var$2 = $this.$motionX;
        var$3 = $this.$motionZ;
        $ptr = 1;
    case 1:
        a: {
            nms_Entity_moveEntity($this, var$2, var$1, var$3);
            if ($rt_suspending()) {
                break main;
            }
            $this.$motionX = $this.$motionX * 0.9800000190734863;
            $this.$motionY = $this.$motionY * 0.9800000190734863;
            $this.$motionZ = $this.$motionZ * 0.9800000190734863;
            $var4 = $this.$worldObj;
            if (!$var4.$isRemote) {
                var$1 = $this.$posX;
                $var1 = var$1 | 0;
                if (var$1 < $var1)
                    $var1 = $var1 - 1 | 0;
                var$1 = $this.$posY;
                $var2 = var$1 | 0;
                if (var$1 < $var2)
                    $var2 = $var2 - 1 | 0;
                var$1 = $this.$posZ;
                $var3 = var$1 | 0;
                if (var$1 < $var3)
                    $var3 = $var3 - 1 | 0;
                if ($this.$fallTime == 1) {
                    $ptr = 2;
                    continue main;
                }
                if ($this.$onGround) {
                    $this.$motionX = $this.$motionX * 0.699999988079071;
                    $this.$motionZ = $this.$motionZ * 0.699999988079071;
                    $this.$motionY = $this.$motionY * (-0.5);
                    $var4 = $this.$worldObj;
                    $ptr = 3;
                    continue main;
                }
                b: {
                    var$8 = $this.$fallTime;
                    if (var$8 > 100 && !$this.$worldObj.$isRemote) {
                        if ($var2 < 1)
                            break b;
                        if ($var2 > 256)
                            break b;
                    }
                    if (var$8 <= 600)
                        break a;
                }
                if ($this.$shouldDropItem) {
                    $var4 = new nms_ItemStack;
                    var$9 = $this.$blockID1;
                    nms_Block_$callClinit();
                    var$10 = nms_Block_blocksList.data[var$9].$damageDropped($this.$metadata);
                    nms_ItemStack_$callClinit();
                    $var4.$itemID = var$9;
                    $var4.$stackSize = 1;
                    $var4.$itemDamage = var$10;
                    if (var$10 < 0)
                        $var4.$itemDamage = 0;
                    $var5 = new nms_EntityItem;
                    $var6 = $this.$worldObj;
                    var$1 = $this.$posX;
                    var$2 = $this.$posY + 0.0;
                    var$3 = $this.$posZ;
                    $ptr = 7;
                    continue main;
                }
                $this.$isDead = 1;
            }
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId($var4, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 != $this.$blockID1) {
            $this.$isDead = 1;
            return;
        }
        $var4 = $this.$worldObj;
        var$8 = 0;
        var$9 = 0;
        var$10 = 3;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($var4, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        if (var$8 != nms_Block_pistonMoving.$blockID) {
            $this.$isDead = 1;
            if (!$this.$isBreakingAnvil) {
                $var6 = $this.$worldObj;
                var$8 = $this.$blockID1;
                var$9 = 1;
                var$10 = 1;
                $var4 = null;
                $var5 = null;
                $ptr = 5;
                continue main;
            }
            if ($this.$shouldDropItem && !$this.$isBreakingAnvil) {
                $var4 = new nms_ItemStack;
                var$8 = $this.$blockID1;
                var$10 = nms_Block_blocksList.data[var$8].$damageDropped($this.$metadata);
                nms_ItemStack_$callClinit();
                $var4.$itemID = var$8;
                $var4.$stackSize = 1;
                $var4.$itemDamage = var$10;
                if (var$10 < 0)
                    $var4.$itemDamage = 0;
                $var5 = new nms_EntityItem;
                $var6 = $this.$worldObj;
                var$1 = $this.$posX;
                var$2 = $this.$posY + 0.0;
                var$3 = $this.$posZ;
                $ptr = 9;
                continue main;
            }
        }
        return;
    case 4:
        nms_World_setBlock($var4, $var1, $var2, $var3, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$onGround) {
            $this.$motionX = $this.$motionX * 0.699999988079071;
            $this.$motionZ = $this.$motionZ * 0.699999988079071;
            $this.$motionY = $this.$motionY * (-0.5);
            $var4 = $this.$worldObj;
            $ptr = 3;
            continue main;
        }
        c: {
            d: {
                var$8 = $this.$fallTime;
                if (var$8 > 100 && !$this.$worldObj.$isRemote) {
                    if ($var2 < 1)
                        break d;
                    if ($var2 > 256)
                        break d;
                }
                if (var$8 <= 600)
                    break c;
            }
            if ($this.$shouldDropItem) {
                $var4 = new nms_ItemStack;
                var$9 = $this.$blockID1;
                nms_Block_$callClinit();
                var$10 = nms_Block_blocksList.data[var$9].$damageDropped($this.$metadata);
                nms_ItemStack_$callClinit();
                $var4.$itemID = var$9;
                $var4.$stackSize = 1;
                $var4.$itemDamage = var$10;
                if (var$10 < 0)
                    $var4.$itemDamage = 0;
                $var5 = new nms_EntityItem;
                $var6 = $this.$worldObj;
                var$1 = $this.$posX;
                var$2 = $this.$posY + 0.0;
                var$3 = $this.$posZ;
                $ptr = 7;
                continue main;
            }
            $this.$isDead = 1;
        }
        return;
    case 5:
        $tmp = nms_World_canPlaceEntityOnSide($var6, var$8, $var1, $var2, $var3, var$9, var$10, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8) {
            $var4 = $this.$worldObj;
            var$8 = $var2 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        if ($this.$shouldDropItem && !$this.$isBreakingAnvil) {
            $var4 = new nms_ItemStack;
            var$8 = $this.$blockID1;
            var$10 = nms_Block_blocksList.data[var$8].$damageDropped($this.$metadata);
            nms_ItemStack_$callClinit();
            $var4.$itemID = var$8;
            $var4.$stackSize = 1;
            $var4.$itemDamage = var$10;
            if (var$10 < 0)
                $var4.$itemDamage = 0;
            $var5 = new nms_EntityItem;
            $var6 = $this.$worldObj;
            var$1 = $this.$posX;
            var$2 = $this.$posY + 0.0;
            var$3 = $this.$posZ;
            $ptr = 9;
            continue main;
        }
        return;
    case 6:
        $tmp = nms_BlockSand_canFallBelow($var4, $var1, var$8, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            $var4 = $this.$worldObj;
            var$8 = $this.$blockID1;
            var$9 = $this.$metadata;
            var$10 = 3;
            $ptr = 8;
            continue main;
        }
        if ($this.$shouldDropItem && !$this.$isBreakingAnvil) {
            $var4 = new nms_ItemStack;
            var$8 = $this.$blockID1;
            var$10 = nms_Block_blocksList.data[var$8].$damageDropped($this.$metadata);
            nms_ItemStack_$callClinit();
            $var4.$itemID = var$8;
            $var4.$stackSize = 1;
            $var4.$itemDamage = var$10;
            if (var$10 < 0)
                $var4.$itemDamage = 0;
            $var5 = new nms_EntityItem;
            $var6 = $this.$worldObj;
            var$1 = $this.$posX;
            var$2 = $this.$posY + 0.0;
            var$3 = $this.$posZ;
            $ptr = 9;
            continue main;
        }
        return;
    case 7:
        nms_EntityItem__init_($var5, $var6, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $var5.$dataWatcher;
        $var6 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$14 = jl_Integer_integerCache.data[138];
        if (var$14 === null) {
            $var6 = $var6.$elementData.data[0];
            while ($var6 !== null && $var6.$key !== null) {
                $var6 = $var6.$next3;
            }
        } else {
            var$10 = jl_Integer_hashCode(var$14.$value);
            var$15 = $var6.$elementData.data;
            $var6 = var$15[var$10 & (var$15.length - 1 | 0)];
            while ($var6 !== null && !($var6.$origKeyHash == var$10 && ju_HashMap_areEqualKeys(var$14, $var6.$key))) {
                $var6 = $var6.$next3;
            }
        }
        $var7 = $var6 === null ? null : $var6.$value0;
        if (!($var4 !== $var7.$watchedObject ? 0 : 1)) {
            $var7.$watchedObject = $var4;
            $var7.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$14 = $var5.$dataWatcher;
        $var4 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var7 = jl_Integer_integerCache.data[138];
        if ($var7 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = jl_Integer_hashCode($var7.$value);
            var$15 = $var4.$elementData.data;
            $var4 = var$15[var$10 & (var$15.length - 1 | 0)];
            while ($var4 !== null && !($var4.$origKeyHash == var$10 && ju_HashMap_areEqualKeys($var7, $var4.$key))) {
                $var4 = $var4.$next3;
            }
        }
        ($var4 === null ? null : $var4.$value0).$watched = 1;
        var$14.$objectChanged = 1;
        $var5.$delayBeforeCanPickup = 10;
        $var4 = $this.$worldObj;
        $ptr = 14;
        continue main;
    case 8:
        a: {
            $tmp = nms_World_setBlock($var4, $var1, $var2, $var3, var$8, var$9, var$10);
            if ($rt_suspending()) {
                break main;
            }
            var$8 = $tmp;
            if (var$8) {
                var$15 = nms_Block_blocksList.data;
                var$8 = $this.$blockID1;
                if (var$15[var$8] instanceof nms_BlockSand) {
                    $var4 = var$15[var$8];
                    $var5 = $this.$worldObj;
                    var$8 = $this.$metadata;
                    $ptr = 10;
                    continue main;
                }
                if ($this.$fallingBlockTileEntityData === null)
                    break a;
                if (!$rt_isInstance(nms_Block_blocksList.data[$this.$blockID1], nms_ITileEntityProvider))
                    break a;
                $var4 = $this.$worldObj;
                $ptr = 11;
                continue main;
            }
            if ($this.$shouldDropItem && !$this.$isBreakingAnvil) {
                $var4 = new nms_ItemStack;
                var$8 = $this.$blockID1;
                var$10 = nms_Block_blocksList.data[var$8].$damageDropped($this.$metadata);
                nms_ItemStack_$callClinit();
                $var4.$itemID = var$8;
                $var4.$stackSize = 1;
                $var4.$itemDamage = var$10;
                if (var$10 < 0)
                    $var4.$itemDamage = 0;
                $var5 = new nms_EntityItem;
                $var6 = $this.$worldObj;
                var$1 = $this.$posX;
                var$2 = $this.$posY + 0.0;
                var$3 = $this.$posZ;
                $ptr = 9;
                continue main;
            }
        }
        return;
    case 9:
        nms_EntityItem__init_($var5, $var6, var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $var5.$dataWatcher;
        $var6 = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$14 = jl_Integer_integerCache.data[138];
        if (var$14 === null) {
            $var6 = $var6.$elementData.data[0];
            while ($var6 !== null && $var6.$key !== null) {
                $var6 = $var6.$next3;
            }
        } else {
            var$10 = jl_Integer_hashCode(var$14.$value);
            var$15 = $var6.$elementData.data;
            $var6 = var$15[var$10 & (var$15.length - 1 | 0)];
            while ($var6 !== null && !($var6.$origKeyHash == var$10 && ju_HashMap_areEqualKeys(var$14, $var6.$key))) {
                $var6 = $var6.$next3;
            }
        }
        $var7 = $var6 === null ? null : $var6.$value0;
        if (!($var4 !== $var7.$watchedObject ? 0 : 1)) {
            $var7.$watchedObject = $var4;
            $var7.$watched = 1;
            var$13.$objectChanged = 1;
        }
        var$14 = $var5.$dataWatcher;
        $var4 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var7 = jl_Integer_integerCache.data[138];
        if ($var7 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$10 = jl_Integer_hashCode($var7.$value);
            var$15 = $var4.$elementData.data;
            $var4 = var$15[var$10 & (var$15.length - 1 | 0)];
            while ($var4 !== null && !($var4.$origKeyHash == var$10 && ju_HashMap_areEqualKeys($var7, $var4.$key))) {
                $var4 = $var4.$next3;
            }
        }
        ($var4 === null ? null : $var4.$value0).$watched = 1;
        var$14.$objectChanged = 1;
        $var5.$delayBeforeCanPickup = 10;
        $var4 = $this.$worldObj;
        $ptr = 15;
        continue main;
    case 10:
        $var4.$onFinishFalling($var5, $var1, $var2, $var3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$fallingBlockTileEntityData !== null && $rt_isInstance(nms_Block_blocksList.data[$this.$blockID1], nms_ITileEntityProvider)) {
            $var4 = $this.$worldObj;
            $ptr = 11;
            continue main;
        }
        return;
    case 11:
        $tmp = nms_World_getBlockTileEntity($var4, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 === null)
            return;
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(3);
        $var6 = new ju_HashMap;
        var$8 = ju_HashMap_calculateCapacity(16);
        $var6.$elementCount = 0;
        var$17 = $rt_createArray(ju_HashMap$HashEntry, var$8);
        var$15 = var$17.data;
        $var6.$elementData = var$17;
        $var6.$loadFactor = 0.75;
        $var6.$threshold = var$15.length * 0.75 | 0;
        $var5.$tagMap = $var6;
        $var4.$writeToNBT($var5);
        $var6 = $this.$fallingBlockTileEntityData.$tagMap;
        if ($var6.$cachedValues === null) {
            $var7 = new ju_HashMap$2;
            $var7.$this$01 = $var6;
            $var6.$cachedValues = $var7;
        }
        $var6 = $var6.$cachedValues.$iterator();
        while ($var6.$hasNext()) {
            $var7 = $var6.$next();
            var$13 = $var7.$name;
            if (var$13 === null)
                var$13 = $rt_s(3);
            if (var$13 === $rt_s(349))
                var$8 = 1;
            else if (!($rt_s(349) instanceof jl_String))
                var$8 = 0;
            else {
                var$14 = $rt_s(349);
                var$8 = var$13.$nativeString !== var$14.$nativeString ? 0 : 1;
            }
            if (!var$8) {
                var$13 = $var7.$name;
                if (var$13 === null)
                    var$13 = $rt_s(3);
                if (var$13 === $rt_s(350))
                    var$8 = 1;
                else if (!($rt_s(350) instanceof jl_String))
                    var$8 = 0;
                else {
                    var$14 = $rt_s(350);
                    var$8 = var$13.$nativeString !== var$14.$nativeString ? 0 : 1;
                }
                if (!var$8) {
                    var$13 = $var7.$name;
                    if (var$13 === null)
                        var$13 = $rt_s(3);
                    if (var$13 === $rt_s(351))
                        var$8 = 1;
                    else if (!($rt_s(351) instanceof jl_String))
                        var$8 = 0;
                    else {
                        var$14 = $rt_s(351);
                        var$8 = var$13.$nativeString !== var$14.$nativeString ? 0 : 1;
                    }
                    if (!var$8) {
                        var$13 = $var7.$name;
                        if (var$13 === null)
                            var$13 = $rt_s(3);
                        $var7 = $var7.$copy();
                        var$14 = $var5.$tagMap;
                        $var7.$name = var$13;
                        ju_HashMap_putImpl(var$14, var$13, $var7);
                    }
                }
            }
        }
        $ptr = 12;
    case 12:
        $var4.$readFromNBT($var5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 13;
    case 13:
        $var4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 14:
        nms_World_spawnEntityInWorld($var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    case 15:
        nms_World_spawnEntityInWorld($var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var4, $var1, $var2, $var3, var$8, var$9, var$10, $var5, $var6, var$13, var$14, var$15, $var7, var$17, $ptr);
},
nms_EntityFallingSand_fall = ($this, $par1) => {
    let $var2, $var3, $var4, $var6, var$6, $var8, var$8, $var5$index, var$10, $var7, var$12, var$13, $var5$index_0, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var5$index_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();var$10 = $thread.pop();$var5$index = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();var$6 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$isAnvil) {
            $par1 = $par1 - 1.0;
            $var2 = $par1 | 0;
            if ($par1 > $var2)
                $var2 = $var2 + 1 | 0;
            if ($var2 > 0) {
                $var3 = new ju_ArrayList;
                $var4 = $this.$worldObj;
                $var6 = $this.$boundingBox0;
                var$6 = null;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var4, $this, $var6, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var8 = $var4.$size0;
        if ($var8 < 0) {
            $var3 = new jl_IllegalArgumentException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $rt_throw($var3);
        }
        $var3.$array = $rt_createArray(jl_Object, $var8);
        var$8 = 0;
        $var5$index = $var4.$modCount;
        $var4.$size();
        $var8 = 0;
        while (true) {
            var$10 = $var3.$array.data;
            $var7 = var$10.length;
            if ($var8 >= $var7) {
                $var3.$size0 = $var7;
                $var8 = $this.$blockID1;
                nms_Block_$callClinit();
                $var4 = $var8 != nms_Block_anvil.$blockID ? nms_DamageSource_fallingBlock : nms_DamageSource_anvil;
                $var7 = $var3.$modCount;
                var$12 = $var3.$size();
                $par1 = $var2;
                if (!(0 >= var$12 ? 0 : 1)) {
                    if ($this.$blockID1 == nms_Block_anvil.$blockID) {
                        $var3 = $this.$rand;
                        var$13 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var3.$seed = var$13;
                        if (Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 < 0.05000000074505806 + $var2 * 0.05) {
                            $var8 = $this.$metadata;
                            $var7 = $var8 >> 2;
                            $var8 = $var8 & 3;
                            $var7 = $var7 + 1 | 0;
                            if ($var7 > 2)
                                $this.$isBreakingAnvil = 1;
                            else
                                $this.$metadata = $var8 | $var7 << 2;
                        }
                    }
                    return;
                }
                if ($var7 < $var3.$modCount) {
                    $var3 = new ju_ConcurrentModificationException;
                    $var3.$suppressionEnabled = 1;
                    $var3.$writableStackTrace = 1;
                    $rt_throw($var3);
                }
                $var5$index_0 = 0 + 1 | 0;
                $var6 = $var3.$get(0);
                var$15 = $par1 * $this.$fallHurtAmount;
                var$8 = var$15 | 0;
                if (var$15 < var$8)
                    var$8 = var$8 - 1 | 0;
                $var8 = $this.$fallHurtMax;
                if (var$8 < $var8)
                    $var8 = var$8;
                var$15 = $var8;
                $ptr = 2;
                continue main;
            }
            if ($var5$index < $var4.$modCount)
                break;
            var$12 = var$8 + 1 | 0;
            var$10[$var8] = $var4.$get(var$8);
            $var8 = $var8 + 1 | 0;
            var$8 = var$12;
        }
        $var3 = new ju_ConcurrentModificationException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    case 2:
        $var6.$attackEntityFrom($var4, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var5$index = $var5$index_0;
        if (!($var5$index >= var$12 ? 0 : 1)) {
            if ($this.$blockID1 == nms_Block_anvil.$blockID) {
                $var3 = $this.$rand;
                var$13 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$13;
                if (Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 < 0.05000000074505806 + $var2 * 0.05) {
                    $var8 = $this.$metadata;
                    $var7 = $var8 >> 2;
                    $var8 = $var8 & 3;
                    $var7 = $var7 + 1 | 0;
                    if ($var7 > 2)
                        $this.$isBreakingAnvil = 1;
                    else
                        $this.$metadata = $var8 | $var7 << 2;
                }
            }
            return;
        }
        if ($var7 < $var3.$modCount) {
            $var3 = new ju_ConcurrentModificationException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $rt_throw($var3);
        }
        $var5$index_0 = $var5$index + 1 | 0;
        $var6 = $var3.$get($var5$index);
        var$15 = $par1 * $this.$fallHurtAmount;
        var$8 = var$15 | 0;
        if (var$15 < var$8)
            var$8 = var$8 - 1 | 0;
        $var8 = $this.$fallHurtMax;
        if (var$8 < $var8)
            $var8 = var$8;
        var$15 = $var8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var2, $var3, $var4, $var6, var$6, $var8, var$8, $var5$index, var$10, $var7, var$12, var$13, $var5$index_0, var$15, $ptr);
},
nms_EntityFallingSand_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = $this.$blockID1 << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2483);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2483), var$4);
    var$2 = $this.$blockID1;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2484);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2484), var$4);
    var$2 = $this.$metadata << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(55);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(55), var$4);
    var$2 = $this.$fallTime << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(1696);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(1696), var$4);
    var$2 = (!$this.$shouldDropItem ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2485);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2485), var$4);
    var$2 = (!$this.$isAnvil ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2486);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2486), var$4);
    var$5 = $this.$fallHurtAmount;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagFloat;
    var$4.$name = $rt_s(2487);
    var$4.$data5 = var$5;
    ju_HashMap_putImpl(var$3, $rt_s(2487), var$4);
    var$2 = $this.$fallHurtMax;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2488);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2488), var$4);
    var$6 = $this.$fallingBlockTileEntityData;
    if (var$6 !== null) {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        var$6.$name = $rt_s(2489);
        ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2489), var$6);
    }
},
nms_EntityFallingSand_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2484).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2484).$nativeString.length)
                    break a;
                $rt_s(2484).$hashCode1 = (31 * $rt_s(2484).$hashCode1 | 0) + $rt_s(2484).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2484).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(2484) !== var$5) {
                    if ($rt_s(2484) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2484).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        c: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2484).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2484).$nativeString.length)
                        break c;
                    $rt_s(2484).$hashCode1 = (31 * $rt_s(2484).$hashCode1 | 0) + $rt_s(2484).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2484).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                d: {
                    var$5 = var$2.$key;
                    if ($rt_s(2484) !== var$5) {
                        if ($rt_s(2484) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2484).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break d;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2484) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2484).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2484).$nativeString.length)
                                break e;
                            $rt_s(2484).$hashCode1 = (31 * $rt_s(2484).$hashCode1 | 0) + $rt_s(2484).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2484).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        f: {
                            var$5 = var$2.$key;
                            if ($rt_s(2484) !== var$5) {
                                if ($rt_s(2484) !== var$5) {
                                    if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2484).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        } else
            var$3 = 0;
        $this.$blockID1 = var$3;
    } else {
        g: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2483).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2483).$nativeString.length)
                        break g;
                    $rt_s(2483).$hashCode1 = (31 * $rt_s(2483).$hashCode1 | 0) + $rt_s(2483).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$6 = $rt_s(2483).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$8 = var$4[var$6 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$6) {
                h: {
                    var$2 = var$8.$key;
                    if ($rt_s(2483) !== var$2) {
                        if ($rt_s(2483) === var$2)
                            var$3 = 1;
                        else if (!(var$2 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$2 = var$2;
                            var$3 = $rt_s(2483).$nativeString !== var$2.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break h;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (var$8 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2483) === null) {
                var$8 = var$2.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2483).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2483).$nativeString.length)
                                break i;
                            $rt_s(2483).$hashCode1 = (31 * $rt_s(2483).$hashCode1 | 0) + $rt_s(2483).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(2483).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$8 = var$4[var$6 & (var$4.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$6) {
                        j: {
                            var$2 = var$8.$key;
                            if ($rt_s(2483) !== var$2) {
                                if ($rt_s(2483) !== var$2) {
                                    if (var$2 instanceof jl_String) {
                                        var$2 = var$2;
                                        var$3 = $rt_s(2483).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break j;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$6 = (var$8 === null ? null : var$8.$value0).$data0;
        } else
            var$6 = 0;
        $this.$blockID1 = var$6 & 255;
    }
    k: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(55).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(55).$nativeString.length)
                    break k;
                $rt_s(55).$hashCode1 = (31 * $rt_s(55).$hashCode1 | 0) + $rt_s(55).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(55).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            l: {
                var$5 = var$2.$key;
                if ($rt_s(55) !== var$5) {
                    if ($rt_s(55) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(55).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break l;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(55) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            m: {
                if (!$rt_s(55).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(55).$nativeString.length)
                            break m;
                        $rt_s(55).$hashCode1 = (31 * $rt_s(55).$hashCode1 | 0) + $rt_s(55).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(55).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    n: {
                        var$5 = var$2.$key;
                        if ($rt_s(55) !== var$5) {
                            if ($rt_s(55) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(55).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break n;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$6 = 0;
    o: {
        $this.$metadata = var$6 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1696).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1696).$nativeString.length)
                    break o;
                $rt_s(1696).$hashCode1 = (31 * $rt_s(1696).$hashCode1 | 0) + $rt_s(1696).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1696).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            p: {
                var$5 = var$2.$key;
                if ($rt_s(1696) !== var$5) {
                    if ($rt_s(1696) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(1696).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break p;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1696) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            q: {
                if (!$rt_s(1696).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1696).$nativeString.length)
                            break q;
                        $rt_s(1696).$hashCode1 = (31 * $rt_s(1696).$hashCode1 | 0) + $rt_s(1696).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(1696).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$7) {
                    r: {
                        var$5 = var$2.$key;
                        if ($rt_s(1696) !== var$5) {
                            if ($rt_s(1696) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(1696).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break r;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$6 = 0;
    s: {
        $this.$fallTime = var$6 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2486).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2486).$nativeString.length)
                    break s;
                $rt_s(2486).$hashCode1 = (31 * $rt_s(2486).$hashCode1 | 0) + $rt_s(2486).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2486).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            t: {
                var$5 = var$2.$key;
                if ($rt_s(2486) !== var$5) {
                    if ($rt_s(2486) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2486).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break t;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        u: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2486).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2486).$nativeString.length)
                        break u;
                    $rt_s(2486).$hashCode1 = (31 * $rt_s(2486).$hashCode1 | 0) + $rt_s(2486).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2486).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                v: {
                    var$5 = var$2.$key;
                    if ($rt_s(2486) !== var$5) {
                        if ($rt_s(2486) !== var$5) {
                            if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                var$3 = $rt_s(2486).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break v;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2486) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                w: {
                    if (!$rt_s(2486).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2486).$nativeString.length)
                                break w;
                            $rt_s(2486).$hashCode1 = (31 * $rt_s(2486).$hashCode1 | 0) + $rt_s(2486).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2486).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        x: {
                            var$5 = var$2.$key;
                            if ($rt_s(2486) !== var$5) {
                                if ($rt_s(2486) === var$5)
                                    var$3 = 1;
                                else if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2486).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                                if (!var$3) {
                                    var$3 = 0;
                                    break x;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        } else
            var$3 = 0;
        var$3 = !var$3 ? 0 : 1;
        y: {
            $this.$isAnvil = var$3;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2487).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2487).$nativeString.length)
                        break y;
                    $rt_s(2487).$hashCode1 = (31 * $rt_s(2487).$hashCode1 | 0) + $rt_s(2487).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2487).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                z: {
                    var$5 = var$2.$key;
                    if ($rt_s(2487) !== var$5) {
                        if ($rt_s(2487) === var$5)
                            var$3 = 1;
                        else if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$3 = $rt_s(2487).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                        if (!var$3) {
                            var$3 = 0;
                            break z;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2487) !== null) {
                ba: {
                    if (!$rt_s(2487).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2487).$nativeString.length)
                                break ba;
                            $rt_s(2487).$hashCode1 = (31 * $rt_s(2487).$hashCode1 | 0) + $rt_s(2487).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2487).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        bb: {
                            var$5 = var$2.$key;
                            if ($rt_s(2487) !== var$5) {
                                if ($rt_s(2487) === var$5)
                                    var$3 = 1;
                                else if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2487).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                                if (!var$3) {
                                    var$3 = 0;
                                    break bb;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$9 = (var$2 === null ? null : var$2.$value0).$data5;
        } else
            var$9 = 0.0;
        bc: {
            $this.$fallHurtAmount = var$9;
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2488).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2488).$nativeString.length)
                        break bc;
                    $rt_s(2488).$hashCode1 = (31 * $rt_s(2488).$hashCode1 | 0) + $rt_s(2488).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2488).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                bd: {
                    var$5 = var$2.$key;
                    if ($rt_s(2488) !== var$5) {
                        if ($rt_s(2488) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2488).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bd;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2488) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                be: {
                    if (!$rt_s(2488).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2488).$nativeString.length)
                                break be;
                            $rt_s(2488).$hashCode1 = (31 * $rt_s(2488).$hashCode1 | 0) + $rt_s(2488).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2488).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        bf: {
                            var$5 = var$2.$key;
                            if ($rt_s(2488) !== var$5) {
                                if ($rt_s(2488) !== var$5) {
                                    if (!(var$5 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2488).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break bf;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data;
        }
        $this.$fallHurtMax = var$3;
    } else {
        var$3 = $this.$blockID1;
        nms_Block_$callClinit();
        if (var$3 == nms_Block_anvil.$blockID)
            $this.$isAnvil = 1;
    }
    bg: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2485).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2485).$nativeString.length)
                    break bg;
                $rt_s(2485).$hashCode1 = (31 * $rt_s(2485).$hashCode1 | 0) + $rt_s(2485).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2485).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            bh: {
                var$5 = var$2.$key;
                if ($rt_s(2485) !== var$5) {
                    if ($rt_s(2485) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2485).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break bh;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        bi: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2485).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2485).$nativeString.length)
                        break bi;
                    $rt_s(2485).$hashCode1 = (31 * $rt_s(2485).$hashCode1 | 0) + $rt_s(2485).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2485).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                bj: {
                    var$5 = var$2.$key;
                    if ($rt_s(2485) !== var$5) {
                        if ($rt_s(2485) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2485).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bj;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2485) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                bk: {
                    if (!$rt_s(2485).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2485).$nativeString.length)
                                break bk;
                            $rt_s(2485).$hashCode1 = (31 * $rt_s(2485).$hashCode1 | 0) + $rt_s(2485).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2485).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$7) {
                        bl: {
                            var$5 = var$2.$key;
                            if ($rt_s(2485) !== var$5) {
                                if ($rt_s(2485) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2485).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bl;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$3 = (var$2 === null ? null : var$2.$value0).$data0;
        }
        $this.$shouldDropItem = !var$3 ? 0 : 1;
    }
    bm: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2489).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2489).$nativeString.length)
                    break bm;
                $rt_s(2489).$hashCode1 = (31 * $rt_s(2489).$hashCode1 | 0) + $rt_s(2489).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2489).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$7) {
            bn: {
                var$5 = var$2.$key;
                if ($rt_s(2489) !== var$5) {
                    if ($rt_s(2489) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2489).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break bn;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        bo: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2489).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2489).$nativeString.length)
                        break bo;
                    $rt_s(2489).$hashCode1 = (31 * $rt_s(2489).$hashCode1 | 0) + $rt_s(2489).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2489).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$7) {
                bp: {
                    var$5 = var$2.$key;
                    if ($rt_s(2489) !== var$5) {
                        if ($rt_s(2489) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2489).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bp;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            $par1NBTTagCompound = new nms_NBTTagCompound;
            if ($rt_s(2489) !== null)
                $par1NBTTagCompound.$name = $rt_s(2489);
            else
                $par1NBTTagCompound.$name = $rt_s(3);
            var$10 = new ju_HashMap;
            var$3 = ju_HashMap_calculateCapacity(16);
            var$10.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$3);
            var$4 = var$11.data;
            var$10.$elementData = var$11;
            var$10.$loadFactor = 0.75;
            var$10.$threshold = var$4.length * 0.75 | 0;
            $par1NBTTagCompound.$tagMap = var$10;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2489) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                bq: {
                    if (!$rt_s(2489).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2489).$nativeString.length)
                                break bq;
                            $rt_s(2489).$hashCode1 = (31 * $rt_s(2489).$hashCode1 | 0) + $rt_s(2489).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2489).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$7) {
                        br: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2489) !== var$2) {
                                if ($rt_s(2489) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2489).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break br;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        $this.$fallingBlockTileEntityData = $par1NBTTagCompound;
    }
    if (!$this.$blockID1) {
        nms_Block_$callClinit();
        $this.$blockID1 = nms_Block_sand.$blockID;
    }
};
function nms_EntityMinecart() {
    let a = this; nms_Entity.call(a);
    a.$isInReverse = 0;
    a.$field_82344_g = null;
    a.$entityName = null;
    a.$turnProgress = 0;
    a.$minecartX = 0.0;
    a.$minecartY = 0.0;
    a.$minecartZ = 0.0;
    a.$minecartYaw = 0.0;
    a.$minecartPitch = 0.0;
}
let nms_EntityMinecart_matrix = null,
nms_EntityMinecart_canTriggerWalking = $this => {
    return 0;
},
nms_EntityMinecart_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 17, var$2);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 1;
    nms_DataWatcher_addObject(var$2, 18, var$1);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Float;
    var$1.$value3 = 0.0;
    nms_DataWatcher_addObject(var$2, 19, var$1);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 20, var$1);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 6;
    nms_DataWatcher_addObject(var$2, 21, var$1);
    nms_DataWatcher_addObject($this.$dataWatcher, 22, jl_Byte_byteCache.data[128]);
},
nms_EntityMinecart_getCollisionBox = ($this, $par1Entity) => {
    return !$par1Entity.$canBePushed() ? null : $par1Entity.$boundingBox0;
},
nms_EntityMinecart_getBoundingBox = $this => {
    return null;
},
nms_EntityMinecart_canBePushed = $this => {
    return 1;
},
nms_EntityMinecart_getMountedYOffset = $this => {
    return $this.$height0 * 0.0 - 0.30000001192092896;
},
nms_EntityMinecart_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && !$this.$isDead) {
            if ($this.$invulnerable)
                return 0;
            nms_EntityMinecart_setRollingDirection($this,  -nms_EntityMinecart_getRollingDirection($this) | 0);
            nms_EntityMinecart_setRollingAmplitude($this, 10);
            $this.$velocityChanged = 1;
            nms_EntityMinecart_setDamage($this, nms_EntityMinecart_getDamage($this) + $par2 * 10.0);
            $var3 = $par1DamageSource.$getEntity() instanceof nms_EntityPlayer && ($par1DamageSource.$getEntity()).$capabilities.$isCreativeMode ? 1 : 0;
            if (!$var3 && nms_EntityMinecart_getDamage($this) <= 40.0)
                return 1;
            var$4 = $this.$riddenByEntity;
            if (var$4 !== null) {
                $ptr = 1;
                continue main;
            }
            if ($var3 && !($this.$entityName === null ? 0 : 1)) {
                $ptr = 3;
                continue main;
            }
            $ptr = 2;
            continue main;
        }
        return 1;
    case 1:
        var$4.$mountEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($var3 && !($this.$entityName === null ? 0 : 1)) {
            $ptr = 3;
            continue main;
        }
        $ptr = 2;
    case 2:
        $this.$killMinecart($par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 3:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, var$4, $ptr);
},
nms_EntityMinecart_killMinecart = ($this, $par1DamageSource) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $var2 = new nms_ItemStack;
        nms_Item_$callClinit();
        $par1DamageSource = nms_Item_minecartEmpty;
        nms_ItemStack_$callClinit();
        $var2.$itemID = $par1DamageSource.$itemID0;
        $var2.$stackSize = 1;
        $var2.$itemDamage = 0;
        $par1DamageSource = $this.$entityName;
        if ($par1DamageSource !== null)
            nms_ItemStack_setItemName($var2, $par1DamageSource);
        if (!$var2.$stackSize)
            return;
        $par1DamageSource = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$4 = $this.$posX;
        var$5 = $this.$posY + 0.0;
        var$6 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityItem__init_($par1DamageSource, var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $par1DamageSource.$dataWatcher;
        var$3 = var$7.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[138];
        if (var$8 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$8.$value);
            var$10 = var$3.$elementData.data;
            var$3 = var$10[var$9 & (var$10.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$8, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$11 = var$3 === null ? null : var$3.$value0;
        if (!($var2 !== var$11.$watchedObject ? 0 : 1)) {
            var$11.$watchedObject = $var2;
            var$11.$watched = 1;
            var$7.$objectChanged = 1;
        }
        var$11 = $par1DamageSource.$dataWatcher;
        $var2 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[138];
        if (var$3 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            var$12 = jl_Integer_hashCode(var$3.$value);
            var$10 = $var2.$elementData.data;
            $var2 = var$10[var$12 & (var$10.length - 1 | 0)];
            while ($var2 !== null && !($var2.$origKeyHash == var$12 && ju_HashMap_areEqualKeys(var$3, $var2.$key))) {
                $var2 = $var2.$next3;
            }
        }
        ($var2 === null ? null : $var2.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        $par1DamageSource.$delayBeforeCanPickup = 10;
        $var2 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($var2, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityMinecart_canBeCollidedWith = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityMinecart_setDead = $this => {
    let var$1;
    $this.$isDead = 1;
    var$1 = $this.$field_82344_g;
    if (var$1 !== null)
        var$1.$update();
},
nms_EntityMinecart_onUpdate = $this => {
    let $var17, $var8, $var3, var$4, var$5, $var4, $var6, $var22, $var19, $var21, $var5, $var7, $var11, $var18, $var2, $var20, $var9, $var13, var$19, var$20, $var15, var$22, $var16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var16 = $thread.pop();var$22 = $thread.pop();$var15 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var13 = $thread.pop();$var9 = $thread.pop();$var20 = $thread.pop();$var2 = $thread.pop();$var18 = $thread.pop();$var11 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var22 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var8 = $thread.pop();$var17
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var17 = $this.$field_82344_g;
        if ($var17 !== null)
            $var17.$update();
        if (nms_EntityMinecart_getRollingAmplitude($this) > 0)
            nms_EntityMinecart_setRollingAmplitude($this, nms_EntityMinecart_getRollingAmplitude($this) - 1 | 0);
        if (nms_EntityMinecart_getDamage($this) > 0.0)
            nms_EntityMinecart_setDamage($this, nms_EntityMinecart_getDamage($this) - 1.0);
        if ($this.$posY < (-64.0)) {
            $ptr = 1;
            continue main;
        }
        $var17 = $this.$worldObj;
        if (!$var17.$isRemote && $var17 instanceof nms_WorldServer) {
            if (!$this.$inPortal) {
                $var8 = $this.$portalCounter;
                if ($var8 > 0)
                    $this.$portalCounter = $var8 - 4 | 0;
                if ($this.$portalCounter < 0)
                    $this.$portalCounter = 0;
            } else {
                if ($this.$ridingEntity === null) {
                    $var8 = $this.$portalCounter;
                    $this.$portalCounter = $var8 + 1 | 0;
                    if ($var8 >= 0) {
                        $this.$portalCounter = 0;
                        $this.$timeUntilPortal = 900;
                        $var3 = $var17.$provider.$dimensionId != (-1) ? (-1) : 0;
                        $ptr = 2;
                        continue main;
                    }
                }
                $this.$inPortal = 0;
            }
            $var8 = $this.$timeUntilPortal;
            if ($var8 > 0)
                $this.$timeUntilPortal = $var8 - 1 | 0;
        }
        $var17 = $this.$worldObj;
        if ($var17.$isRemote) {
            $var8 = $this.$turnProgress;
            if ($var8 <= 0) {
                nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                var$4 = $this.$rotationYaw;
                var$5 = $this.$rotationPitch;
                $this.$rotationYaw = var$4 % 360.0;
                $this.$rotationPitch = var$5 % 360.0;
            } else {
                $var4 = $this.$posX;
                $var6 = $this.$minecartX - $var4;
                $var22 = $var8;
                $var19 = $var4 + $var6 / $var22;
                $var6 = $this.$posY;
                $var21 = $var6 + ($this.$minecartY - $var6) / $var22;
                $var4 = $this.$posZ;
                $var5 = $var4 + ($this.$minecartZ - $var4) / $var22;
                $var4 = $this.$minecartYaw;
                $var6 = $this.$rotationYaw;
                $var7 = ($var4 - $var6) % 360.0;
                if ($var7 >= 180.0)
                    $var7 = $var7 - 360.0;
                if ($var7 < (-180.0))
                    $var7 = $var7 + 360.0;
                $this.$rotationYaw = $var6 + $var7 / $var22;
                $var4 = $this.$rotationPitch;
                $this.$rotationPitch = $var4 + ($this.$minecartPitch - $var4) / $var22;
                $this.$turnProgress = $var8 - 1 | 0;
                nms_Entity_setPosition($this, $var19, $var21, $var5);
                var$4 = $this.$rotationYaw;
                var$5 = $this.$rotationPitch;
                $this.$rotationYaw = var$4 % 360.0;
                $this.$rotationPitch = var$5 % 360.0;
            }
            return;
        }
        $var6 = $this.$posX;
        $this.$prevPosX = $var6;
        $var22 = $this.$posY;
        $this.$prevPosY = $var22;
        $var11 = $this.$posZ;
        $this.$prevPosZ = $var11;
        $this.$motionY = $this.$motionY - 0.03999999910593033;
        $var18 = $var6 | 0;
        if ($var6 < $var18)
            $var18 = $var18 - 1 | 0;
        $var2 = $var22 | 0;
        if ($var22 < $var2)
            $var2 = $var2 - 1 | 0;
        $var20 = $var11 | 0;
        if ($var11 < $var20)
            $var20 = $var20 - 1 | 0;
        $var8 = $var2 - 1 | 0;
        $ptr = 3;
        continue main;
    case 1:
        $this.$setDead();
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $this.$worldObj;
        if (!$var17.$isRemote && $var17 instanceof nms_WorldServer) {
            if (!$this.$inPortal) {
                $var8 = $this.$portalCounter;
                if ($var8 > 0)
                    $this.$portalCounter = $var8 - 4 | 0;
                if ($this.$portalCounter < 0)
                    $this.$portalCounter = 0;
            } else {
                if ($this.$ridingEntity === null) {
                    $var8 = $this.$portalCounter;
                    $this.$portalCounter = $var8 + 1 | 0;
                    if ($var8 >= 0) {
                        $this.$portalCounter = 0;
                        $this.$timeUntilPortal = 900;
                        $var3 = $var17.$provider.$dimensionId != (-1) ? (-1) : 0;
                        $ptr = 2;
                        continue main;
                    }
                }
                $this.$inPortal = 0;
            }
            $var8 = $this.$timeUntilPortal;
            if ($var8 > 0)
                $this.$timeUntilPortal = $var8 - 1 | 0;
        }
        $var17 = $this.$worldObj;
        if ($var17.$isRemote) {
            $var8 = $this.$turnProgress;
            if ($var8 <= 0) {
                nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                var$4 = $this.$rotationYaw;
                var$5 = $this.$rotationPitch;
                $this.$rotationYaw = var$4 % 360.0;
                $this.$rotationPitch = var$5 % 360.0;
            } else {
                $var4 = $this.$posX;
                $var6 = $this.$minecartX - $var4;
                $var22 = $var8;
                $var19 = $var4 + $var6 / $var22;
                $var6 = $this.$posY;
                $var21 = $var6 + ($this.$minecartY - $var6) / $var22;
                $var4 = $this.$posZ;
                $var5 = $var4 + ($this.$minecartZ - $var4) / $var22;
                $var4 = $this.$minecartYaw;
                $var6 = $this.$rotationYaw;
                $var7 = ($var4 - $var6) % 360.0;
                if ($var7 >= 180.0)
                    $var7 = $var7 - 360.0;
                if ($var7 < (-180.0))
                    $var7 = $var7 + 360.0;
                $this.$rotationYaw = $var6 + $var7 / $var22;
                $var4 = $this.$rotationPitch;
                $this.$rotationPitch = $var4 + ($this.$minecartPitch - $var4) / $var22;
                $this.$turnProgress = $var8 - 1 | 0;
                nms_Entity_setPosition($this, $var19, $var21, $var5);
                var$4 = $this.$rotationYaw;
                var$5 = $this.$rotationPitch;
                $this.$rotationYaw = var$4 % 360.0;
                $this.$rotationPitch = var$5 % 360.0;
            }
            return;
        }
        $var6 = $this.$posX;
        $this.$prevPosX = $var6;
        $var22 = $this.$posY;
        $this.$prevPosY = $var22;
        $var11 = $this.$posZ;
        $this.$prevPosZ = $var11;
        $this.$motionY = $this.$motionY - 0.03999999910593033;
        $var18 = $var6 | 0;
        if ($var6 < $var18)
            $var18 = $var18 - 1 | 0;
        $var2 = $var22 | 0;
        if ($var22 < $var2)
            $var2 = $var2 - 1 | 0;
        $var20 = $var11 | 0;
        if ($var11 < $var20)
            $var20 = $var20 - 1 | 0;
        $var8 = $var2 - 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $this.$travelToDimension($var3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$inPortal = 0;
        $var8 = $this.$timeUntilPortal;
        if ($var8 > 0)
            $this.$timeUntilPortal = $var8 - 1 | 0;
        $var17 = $this.$worldObj;
        if ($var17.$isRemote) {
            $var8 = $this.$turnProgress;
            if ($var8 <= 0) {
                nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                var$4 = $this.$rotationYaw;
                var$5 = $this.$rotationPitch;
                $this.$rotationYaw = var$4 % 360.0;
                $this.$rotationPitch = var$5 % 360.0;
            } else {
                $var4 = $this.$posX;
                $var6 = $this.$minecartX - $var4;
                $var22 = $var8;
                $var19 = $var4 + $var6 / $var22;
                $var6 = $this.$posY;
                $var21 = $var6 + ($this.$minecartY - $var6) / $var22;
                $var4 = $this.$posZ;
                $var5 = $var4 + ($this.$minecartZ - $var4) / $var22;
                $var4 = $this.$minecartYaw;
                $var6 = $this.$rotationYaw;
                $var7 = ($var4 - $var6) % 360.0;
                if ($var7 >= 180.0)
                    $var7 = $var7 - 360.0;
                if ($var7 < (-180.0))
                    $var7 = $var7 + 360.0;
                $this.$rotationYaw = $var6 + $var7 / $var22;
                $var4 = $this.$rotationPitch;
                $this.$rotationPitch = $var4 + ($this.$minecartPitch - $var4) / $var22;
                $this.$turnProgress = $var8 - 1 | 0;
                nms_Entity_setPosition($this, $var19, $var21, $var5);
                var$4 = $this.$rotationYaw;
                var$5 = $this.$rotationPitch;
                $this.$rotationYaw = var$4 % 360.0;
                $this.$rotationPitch = var$5 % 360.0;
            }
            return;
        }
        $var6 = $this.$posX;
        $this.$prevPosX = $var6;
        $var22 = $this.$posY;
        $this.$prevPosY = $var22;
        $var11 = $this.$posZ;
        $this.$prevPosZ = $var11;
        $this.$motionY = $this.$motionY - 0.03999999910593033;
        $var18 = $var6 | 0;
        if ($var6 < $var18)
            $var18 = $var18 - 1 | 0;
        $var2 = $var22 | 0;
        if ($var22 < $var2)
            $var2 = $var2 - 1 | 0;
        $var20 = $var11 | 0;
        if ($var11 < $var20)
            $var20 = $var20 - 1 | 0;
        $var8 = $var2 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($var17, $var18, $var8, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (nms_BlockRailBase_isRailBlock($var8))
            $var2 = $var2 + (-1) | 0;
        $var4 = 0.4;
        $var6 = 0.0078125;
        $var17 = $this.$worldObj;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($var17, $var18, $var2, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if (!nms_BlockRailBase_isRailBlock($var8)) {
            $ptr = 5;
            continue main;
        }
        $var17 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 5:
        nms_EntityMinecart_func_94088_b($this, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
        continue main;
    case 6:
        $tmp = nms_World_getBlockMetadata($var17, $var18, $var2, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $ptr = 7;
    case 7:
        $this.$updateOnTrack($var18, $var2, $var20, $var4, $var6, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        if ($var8 != nms_Block_railActivator.$blockID) {
            $ptr = 8;
            continue main;
        }
        $var8 = !($var9 & 8) ? 0 : 1;
        $ptr = 9;
        continue main;
    case 8:
        nms_Entity_doBlockCollisions($this);
        if ($rt_suspending()) {
            break main;
        }
        $this.$rotationPitch = 0.0;
        $var22 = $this.$prevPosX - $this.$posX;
        $var11 = $this.$prevPosZ - $this.$posZ;
        if ($var22 * $var22 + $var11 * $var11 > 0.001) {
            var$4 = jl_Math_atan2($var11, $var22) * 180.0 / 3.141592653589793;
            $this.$rotationYaw = var$4;
            if ($this.$isInReverse)
                $this.$rotationYaw = var$4 + 180.0;
        }
        var$4 = $this.$rotationYaw;
        var$5 = (var$4 - $this.$prevRotationYaw) % 360.0;
        if (var$5 >= 180.0)
            var$5 = var$5 - 360.0;
        if (var$5 < (-180.0))
            var$5 = var$5 + 360.0;
        $var13 = var$5;
        if (!($var13 >= (-170.0) && $var13 < 170.0)) {
            $this.$rotationYaw = var$4 + 180.0;
            $this.$isInReverse = $this.$isInReverse ? 0 : 1;
        }
        var$4 = $this.$rotationYaw;
        var$5 = $this.$rotationPitch;
        $this.$rotationYaw = var$4 % 360.0;
        $this.$rotationPitch = var$5 % 360.0;
        $var17 = $this.$worldObj;
        var$19 = $this.$boundingBox0;
        $var13 = var$19.$minX0 - 0.20000000298023224;
        $var21 = var$19.$minY0 - 0.0;
        $var11 = var$19.$minZ0 - 0.20000000298023224;
        $var6 = var$19.$maxX0 + 0.20000000298023224;
        $var22 = var$19.$maxY + 0.0;
        $var4 = var$19.$maxZ0 + 0.20000000298023224;
        var$20 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var8 = var$20.$nextPoolIndex;
        var$19 = var$20.$listAABB;
        $var9 = var$19.$size0;
        $var2 = $rt_compare($var8, $var9);
        if ($var2 >= 0) {
            $var15 = new nms_AxisAlignedBB;
            $var15.$minX0 = $var13;
            $var15.$minY0 = $var21;
            $var15.$minZ0 = $var11;
            $var15.$maxX0 = $var6;
            $var15.$maxY = $var22;
            $var15.$maxZ0 = $var4;
            ju_ArrayList_ensureCapacity(var$19, $var9 + 1 | 0);
            var$22 = var$19.$array.data;
            $var2 = var$19.$size0;
            var$19.$size0 = $var2 + 1 | 0;
            var$22[$var2] = $var15;
            var$19.$modCount = var$19.$modCount + 1 | 0;
        } else if ($var8 >= 0 && $var2 < 0) {
            $var15 = var$19.$array.data[$var8];
            $var15.$minX0 = $var13;
            $var15.$minY0 = $var21;
            $var15.$minZ0 = $var11;
            $var15.$maxX0 = $var6;
            $var15.$maxY = $var22;
            $var15.$maxZ0 = $var4;
        } else {
            $var17 = new jl_IndexOutOfBoundsException;
            $var17.$suppressionEnabled = 1;
            $var17.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var17);
            $rt_throw($var17);
        }
        var$20.$nextPoolIndex = var$20.$nextPoolIndex + 1 | 0;
        var$19 = null;
        $ptr = 10;
        continue main;
    case 9:
        $this.$onActivatorRailPass($var18, $var2, $var20, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 8;
        continue main;
    case 10:
        a: {
            $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var17, $this, $var15, var$19);
            if ($rt_suspending()) {
                break main;
            }
            $var15 = $tmp;
            if ($var15 !== null && !($var15.$size0 ? 0 : 1)) {
                $var16 = 0;
                while (true) {
                    $var8 = $rt_compare($var16, $var15.$size0);
                    if ($var8 >= 0)
                        break a;
                    if ($var16 < 0)
                        break;
                    if ($var8 >= 0)
                        break;
                    $var17 = $var15.$array.data[$var16];
                    if ($var17 !== $this.$riddenByEntity && $var17.$canBePushed() && $var17 instanceof nms_EntityMinecart) {
                        $ptr = 11;
                        continue main;
                    }
                    $var16 = $var16 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var17 = $this.$riddenByEntity;
        if ($var17 !== null && $var17.$isDead) {
            if ($var17.$ridingEntity === $this)
                $var17.$ridingEntity = null;
            $this.$riddenByEntity = null;
        }
        return;
    case 11:
        $var17.$applyEntityCollision($this);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var16 = $var16 + 1 | 0;
            $var8 = $rt_compare($var16, $var15.$size0);
            if ($var8 >= 0) {
                $var17 = $this.$riddenByEntity;
                if ($var17 !== null && $var17.$isDead) {
                    if ($var17.$ridingEntity === $this)
                        $var17.$ridingEntity = null;
                    $this.$riddenByEntity = null;
                }
                return;
            }
            if ($var16 < 0)
                break;
            if ($var8 >= 0)
                break;
            $var17 = $var15.$array.data[$var16];
            if ($var17 === $this.$riddenByEntity)
                continue;
            if (!$var17.$canBePushed())
                continue;
            if (!($var17 instanceof nms_EntityMinecart))
                continue;
            else {
                continue main;
            }
        }
        $var17 = new jl_IndexOutOfBoundsException;
        $var17.$suppressionEnabled = 1;
        $var17.$writableStackTrace = 1;
        $rt_throw($var17);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var17, $var8, $var3, var$4, var$5, $var4, $var6, $var22, $var19, $var21, $var5, $var7, $var11, $var18, $var2, $var20, $var9, $var13, var$19, var$20, $var15, var$22, $var16, $ptr);
},
nms_EntityMinecart_onActivatorRailPass = ($this, $par1, $par2, $par3, $par4) => {
    return;
},
nms_EntityMinecart_func_94088_b = ($this, $par1) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$motionX;
        var$3 =  -$par1;
        if (var$2 < var$3)
            $this.$motionX = var$3;
        if ($this.$motionX > $par1)
            $this.$motionX = $par1;
        if ($this.$motionZ < var$3)
            $this.$motionZ = var$3;
        if ($this.$motionZ > $par1)
            $this.$motionZ = $par1;
        if ($this.$onGround) {
            $this.$motionX = $this.$motionX * 0.5;
            $this.$motionY = $this.$motionY * 0.5;
            $this.$motionZ = $this.$motionZ * 0.5;
        }
        $par1 = $this.$motionX;
        var$2 = $this.$motionY;
        var$3 = $this.$motionZ;
        $ptr = 1;
    case 1:
        nms_Entity_moveEntity($this, $par1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$onGround) {
            $this.$motionX = $this.$motionX * 0.949999988079071;
            $this.$motionY = $this.$motionY * 0.949999988079071;
            $this.$motionZ = $this.$motionZ * 0.949999988079071;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, $ptr);
},
nms_EntityMinecart_updateOnTrack = ($this, $par1, $par2, $par3, $par4, $par6, $par8, $par9) => {
    let $var14, $var16, $var18, $var10, $var11, $var12, $var40, var$15, $var20, $var22, $var38, $var26, $var28, $var34, $var30, $var32, $var36, $var39, $var45, $var41, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();$var41 = $thread.pop();$var45 = $thread.pop();$var39 = $thread.pop();$var36 = $thread.pop();$var32 = $thread.pop();$var30 = $thread.pop();$var34 = $thread.pop();$var28 = $thread.pop();$var26 = $thread.pop();$var38 = $thread.pop();$var22 = $thread.pop();$var20 = $thread.pop();var$15 = $thread.pop();$var40 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();$par9
        = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$fallDistance = 0.0;
        $var14 = $this.$posX;
        $var16 = $this.$posY;
        $var18 = $this.$posZ;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityMinecart_func_70489_a($this, $var14, $var16, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        $this.$posY = $par2;
        $var11 = 0;
        $var12 = 0;
        nms_Block_$callClinit();
        if ($par8 == nms_Block_railPowered.$blockID) {
            $var11 = !($par9 & 8) ? 0 : 1;
            $var12 = $var11 ? 0 : 1;
        }
        if (nms_Block_blocksList.data[$par8].$isPowered)
            $par9 = $par9 & 7;
        $var40 = $rt_compare($par9, 2);
        if ($var40 >= 0 && $par9 <= 5)
            $this.$posY = $par2 + 1 | 0;
        if (!$var40)
            $this.$motionX = $this.$motionX - $par6;
        if ($par9 == 3)
            $this.$motionX = $this.$motionX + $par6;
        if ($par9 == 4)
            $this.$motionZ = $this.$motionZ + $par6;
        if ($par9 == 5)
            $this.$motionZ = $this.$motionZ - $par6;
        var$15 = nms_EntityMinecart_matrix.data[$par9].data;
        $var14 = var$15[1].data[0] - var$15[0].data[0] | 0;
        $var16 = var$15[1].data[2] - var$15[0].data[2] | 0;
        $var18 = jl_Math_sqrt($var14 * $var14 + $var16 * $var16);
        $par6 = $this.$motionX;
        $var20 = $par6 * $var14;
        $var22 = $this.$motionZ;
        if ($var20 + $var22 * $var16 < 0.0) {
            $var14 =  -$var14;
            $var16 =  -$var16;
        }
        $var22 = jl_Math_sqrt($par6 * $par6 + $var22 * $var22);
        if ($var22 > 2.0)
            $var22 = 2.0;
        $this.$motionX = $var22 * $var14 / $var18;
        $this.$motionZ = $var22 * $var16 / $var18;
        $var38 = $this.$riddenByEntity;
        if ($var38 !== null && $var38 instanceof nms_EntityLivingBase && $var38.$moveForward > 0.0) {
            $var26 =  -jl_Math_sin($var38.$rotationYaw * 3.1415927410125732 / 180.0);
            $var28 = jl_Math_cos($this.$riddenByEntity.$rotationYaw * 3.1415927410125732 / 180.0);
            $par6 = $this.$motionX;
            $var14 = $par6 * $par6;
            $var16 = $this.$motionZ;
            if ($var14 + $var16 * $var16 < 0.01) {
                $this.$motionX = $par6 + $var26 * 0.1;
                $this.$motionZ = $var16 + $var28 * 0.1;
                $var12 = 0;
            }
        }
        if ($var12) {
            $par6 = $this.$motionX;
            $par6 = $par6 * $par6;
            $var14 = $this.$motionZ;
            if (jl_Math_sqrt($par6 + $var14 * $var14) >= 0.03) {
                $this.$motionX = $this.$motionX * 0.5;
                $this.$motionY = $this.$motionY * 0.0;
                $this.$motionZ = $this.$motionZ * 0.5;
            } else {
                $this.$motionX = $this.$motionX * 0.0;
                $this.$motionY = $this.$motionY * 0.0;
                $this.$motionZ = $this.$motionZ * 0.0;
            }
        }
        $par6 = $par1;
        $var14 = $par6 + 0.5;
        $var26 = $var14 + var$15[0].data[0] * 0.5;
        $var22 = $par3;
        $var34 = $var22 + 0.5;
        $var28 = $var34 + var$15[0].data[2] * 0.5;
        $var30 = $var14 + var$15[1].data[0] * 0.5;
        $var32 = $var34 + var$15[1].data[2] * 0.5;
        $var16 = $var30 - $var26;
        $var18 = $var32 - $var28;
        if ($var16 === 0.0) {
            $this.$posX = $var14;
            $par6 = $this.$posZ - $var22;
        } else if ($var18 === 0.0) {
            $this.$posZ = $var34;
            $par6 = $this.$posX - $par6;
        } else
            $par6 = (($this.$posX - $var26) * $var16 + ($this.$posZ - $var28) * $var18) * 2.0;
        $var14 = $var26 + $var16 * $par6;
        $this.$posX = $var14;
        $par6 = $var28 + $var18 * $par6;
        $this.$posZ = $par6;
        nms_Entity_setPosition($this, $var14, $this.$posY + $this.$yOffset, $par6);
        $var34 = $this.$motionX;
        $var36 = $this.$motionZ;
        if ($this.$riddenByEntity !== null) {
            $var34 = $var34 * 0.75;
            $var36 = $var36 * 0.75;
        }
        $par6 =  -$par4;
        if ($var34 < $par6)
            $var34 = $par6;
        if ($var34 > $par4)
            $var34 = $par4;
        if ($var36 >= $par6)
            $par6 = $var36;
        if ($par6 <= $par4)
            $par4 = $par6;
        $par6 = 0.0;
        $ptr = 2;
    case 2:
        a: {
            nms_Entity_moveEntity($this, $var34, $par6, $par4);
            if ($rt_suspending()) {
                break main;
            }
            if (var$15[0].data[1]) {
                $var16 = $this.$posX;
                $var40 = $var16 | 0;
                if ($var16 < $var40)
                    $var40 = $var40 - 1 | 0;
                if (($var40 - $par1 | 0) == var$15[0].data[0]) {
                    $par4 = $this.$posZ;
                    $var40 = $par4 | 0;
                    if ($par4 < $var40)
                        $var40 = $var40 - 1 | 0;
                    if (($var40 - $par3 | 0) == var$15[0].data[2]) {
                        nms_Entity_setPosition($this, $var16, $this.$posY + var$15[0].data[1], $par4);
                        break a;
                    }
                }
            }
            if (var$15[1].data[1]) {
                $par6 = $this.$posX;
                $var40 = $par6 | 0;
                if ($par6 < $var40)
                    $var40 = $var40 - 1 | 0;
                if (($var40 - $par1 | 0) == var$15[1].data[0]) {
                    $var14 = $this.$posZ;
                    $var40 = $var14 | 0;
                    if ($var14 < $var40)
                        $var40 = $var40 - 1 | 0;
                    if (($var40 - $par3 | 0) == var$15[1].data[2])
                        nms_Entity_setPosition($this, $par6, $this.$posY + var$15[1].data[1], $var14);
                }
            }
        }
        $this.$applyDrag();
        $par4 = $this.$posX;
        $par6 = $this.$posY;
        $var14 = $this.$posZ;
        $ptr = 3;
    case 3:
        $tmp = nms_EntityMinecart_func_70489_a($this, $par4, $par6, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var38 = $tmp;
        if ($var38 !== null && $var10 !== null) {
            $var39 = ($var10.$yCoord - $var38.$yCoord) * 0.05;
            $par4 = $this.$motionX;
            $par4 = $par4 * $par4;
            $par6 = $this.$motionZ;
            $par4 = jl_Math_sqrt($par4 + $par6 * $par6);
            if ($par4 > 0.0) {
                $par6 = $this.$motionX / $par4;
                $var14 = $par4 + $var39;
                $this.$motionX = $par6 * $var14;
                $this.$motionZ = $this.$motionZ / $par4 * $var14;
            }
            nms_Entity_setPosition($this, $this.$posX, $var38.$yCoord, $this.$posZ);
        }
        $par4 = $this.$posX;
        $var45 = $par4 | 0;
        if ($par4 < $var45)
            $var45 = $var45 - 1 | 0;
        $par4 = $this.$posZ;
        $var40 = $par4 | 0;
        if ($par4 < $var40)
            $var40 = $var40 - 1 | 0;
        if (!($var45 == $par1 && $var40 == $par3)) {
            $par4 = $this.$motionX;
            $par4 = $par4 * $par4;
            $par6 = $this.$motionZ;
            $par4 = jl_Math_sqrt($par4 + $par6 * $par6);
            $this.$motionX = $par4 * ($var45 - $par1 | 0);
            $this.$motionZ = $par4 * ($var40 - $par3 | 0);
        }
        if ($var11) {
            $par4 = $this.$motionX;
            $par4 = $par4 * $par4;
            $par6 = $this.$motionZ;
            $var41 = jl_Math_sqrt($par4 + $par6 * $par6);
            if ($var41 > 0.01) {
                $par4 = $this.$motionX;
                $this.$motionX = $par4 + $par4 / $var41 * 0.06;
                $par4 = $this.$motionZ;
                $this.$motionZ = $par4 + $par4 / $var41 * 0.06;
            } else {
                if ($par9 == 1) {
                    $var38 = $this.$worldObj;
                    $par8 = $par1 - 1 | 0;
                    $ptr = 4;
                    continue main;
                }
                if (!$par9) {
                    $var38 = $this.$worldObj;
                    $par8 = $par3 - 1 | 0;
                    $ptr = 5;
                    continue main;
                }
            }
        }
        return;
    case 4:
        $tmp = nms_World_getBlockId($var38, $par8, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par8 = $tmp;
        $var38 = nms_Block_blocksList.data[$par8];
        if ($var38 === null)
            $par8 = 0;
        else {
            var$28 = $var38.$blockMaterial;
            $par8 = !var$28.$isTranslucent ? var$28.$blocksMovement() : 0;
            $par8 = $par8 && $var38.$renderAsNormalBlock() && !$var38.$canProvidePower() ? 1 : 0;
        }
        if ($par8) {
            $this.$motionX = 0.02;
            return;
        }
        $var38 = $this.$worldObj;
        $par1 = $par1 + 1 | 0;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($var38, $par1, $par2, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $par8 = $tmp;
        $var38 = nms_Block_blocksList.data[$par8];
        if ($var38 === null)
            $par8 = 0;
        else {
            var$28 = $var38.$blockMaterial;
            $par8 = !var$28.$isTranslucent ? var$28.$blocksMovement() : 0;
            $par8 = $par8 && $var38.$renderAsNormalBlock() && !$var38.$canProvidePower() ? 1 : 0;
        }
        if ($par8) {
            $this.$motionZ = 0.02;
            return;
        }
        $var38 = $this.$worldObj;
        $par3 = $par3 + 1 | 0;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($var38, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        $var38 = nms_Block_blocksList.data[$par1];
        if ($var38 === null)
            $par1 = 0;
        else {
            var$28 = $var38.$blockMaterial;
            $par1 = !var$28.$isTranslucent ? var$28.$blocksMovement() : 0;
            $par1 = $par1 && $var38.$renderAsNormalBlock() && !$var38.$canProvidePower() ? 1 : 0;
        }
        if ($par1)
            $this.$motionX = (-0.02);
        return;
    case 7:
        $tmp = nms_World_getBlockId($var38, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        $var38 = nms_Block_blocksList.data[$par1];
        if ($var38 === null)
            $par1 = 0;
        else {
            var$28 = $var38.$blockMaterial;
            $par1 = !var$28.$isTranslucent ? var$28.$blocksMovement() : 0;
            $par1 = $par1 && $var38.$renderAsNormalBlock() && !$var38.$canProvidePower() ? 1 : 0;
        }
        if ($par1)
            $this.$motionZ = (-0.02);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par6, $par8, $par9, $var14, $var16, $var18, $var10, $var11, $var12, $var40, var$15, $var20, $var22, $var38, $var26, $var28, $var34, $var30, $var32, $var36, $var39, $var45, $var41, var$28, $ptr);
},
nms_EntityMinecart_applyDrag = $this => {
    if ($this.$riddenByEntity === null) {
        $this.$motionX = $this.$motionX * 0.9599999785423279;
        $this.$motionY = $this.$motionY * 0.0;
        $this.$motionZ = $this.$motionZ * 0.9599999785423279;
    } else {
        $this.$motionX = $this.$motionX * 0.996999979019165;
        $this.$motionY = $this.$motionY * 0.0;
        $this.$motionZ = $this.$motionZ * 0.996999979019165;
    }
},
nms_EntityMinecart_func_70489_a = ($this, $par1, $par3, $par5) => {
    let $var7, $var8, $var9, var$7, $var10, $var11, $var23, $var12, $var33, $var25, $var15, $var17, $var35, $var27, $var19, $var21, $var29, $var31, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var31 = $thread.pop();$var29 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var27 = $thread.pop();$var35 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var25 = $thread.pop();$var33 = $thread.pop();$var12 = $thread.pop();$var23 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$7 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par1 = $thread.pop();$this =
        $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $par1 | 0;
        if ($par1 < $var7)
            $var7 = $var7 - 1 | 0;
        $var8 = $par3 | 0;
        if ($par3 < $var8)
            $var8 = $var8 - 1 | 0;
        $var9 = $par5 | 0;
        if ($par5 < $var9)
            $var9 = $var9 - 1 | 0;
        var$7 = $this.$worldObj;
        $var10 = $var8 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$7, $var7, $var10, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (nms_BlockRailBase_isRailBlock($var10))
            $var8 = $var8 + (-1) | 0;
        var$7 = $this.$worldObj;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$7, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if (!nms_BlockRailBase_isRailBlock($var10))
            return null;
        var$7 = $this.$worldObj;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata(var$7, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        $var23 = $var8;
        nms_Block_$callClinit();
        if (nms_Block_blocksList.data[$var10].$isPowered)
            $var11 = $var11 & 7;
        $var11 >= 2 && $var11 > 5;
        $var12 = nms_EntityMinecart_matrix.data[$var11].data;
        $var33 = $var7;
        $var25 = $var33 + 0.5;
        $var15 = $var25 + $var12[0].data[0] * 0.5;
        $par3 = $var23 + 0.5;
        $var17 = $par3 + $var12[0].data[1] * 0.5;
        $var35 = $var9;
        $var27 = $var35 + 0.5;
        $var19 = $var27 + $var12[0].data[2] * 0.5;
        $var21 = $var25 + $var12[1].data[0] * 0.5;
        $var23 = $par3 + $var12[1].data[1] * 0.5;
        $var25 = $var27 + $var12[1].data[2] * 0.5;
        $var27 = $var21 - $var15;
        $var29 = ($var23 - $var17) * 2.0;
        $var31 = $var25 - $var19;
        $par1 = $var27 === 0.0 ? $par5 - $var35 : $var31 === 0.0 ? $par1 - $var33 : (($par1 - $var15) * $var27 + ($par5 - $var19) * $var31) * 2.0;
        $par3 = $var15 + $var27 * $par1;
        $par5 = $var17 + $var29 * $par1;
        $par1 = $var19 + $var31 * $par1;
        $var10 = $rt_compare($var29, 0.0);
        if ($var10 < 0)
            $par5 = $par5 + 1.0;
        if ($var10 > 0)
            $par5 = $par5 + 0.5;
        return nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $par3, $par5, $par1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par3, $par5, $var7, $var8, $var9, var$7, $var10, $var11, $var23, $var12, $var33, $var25, $var15, $var17, $var35, $var27, $var19, $var21, $var29, $var31, $ptr);
},
nms_EntityMinecart_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2490).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2490).$nativeString.length)
                    break a;
                $rt_s(2490).$hashCode1 = (31 * $rt_s(2490).$hashCode1 | 0) + $rt_s(2490).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2490).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2490) !== var$6) {
                    if ($rt_s(2490) !== var$6) {
                        if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2490).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2490) !== null) {
            c: {
                if (!$rt_s(2490).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2490).$nativeString.length)
                            break c;
                        $rt_s(2490).$hashCode1 = (31 * $rt_s(2490).$hashCode1 | 0) + $rt_s(2490).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2490).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(2490) !== var$2) {
                            if ($rt_s(2490) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2490).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        } else {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        }
        var$4 = (var$7 === null ? null : var$7.$value0).$data0;
    } else
        var$4 = 0;
    if (!var$4 ? 0 : 1) {
        e: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2491).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2491).$nativeString.length)
                        break e;
                    $rt_s(2491).$hashCode1 = (31 * $rt_s(2491).$hashCode1 | 0) + $rt_s(2491).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2491).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                f: {
                    var$6 = var$2.$key;
                    if ($rt_s(2491) !== var$6) {
                        if ($rt_s(2491) !== var$6) {
                            if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2491).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                        } else
                            var$4 = 1;
                        if (!var$4) {
                            var$4 = 0;
                            break f;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$4 = 0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2491) !== null) {
                g: {
                    if (!$rt_s(2491).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2491).$nativeString.length)
                                break g;
                            $rt_s(2491).$hashCode1 = (31 * $rt_s(2491).$hashCode1 | 0) + $rt_s(2491).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2491).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        h: {
                            var$6 = var$2.$key;
                            if ($rt_s(2491) !== var$6) {
                                if ($rt_s(2491) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$4 = $rt_s(2491).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break h;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$4 = (var$2 === null ? null : var$2.$value0).$data;
        }
        i: {
            nms_EntityMinecart_setDisplayTile($this, var$4);
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2492).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2492).$nativeString.length)
                        break i;
                    $rt_s(2492).$hashCode1 = (31 * $rt_s(2492).$hashCode1 | 0) + $rt_s(2492).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2492).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                j: {
                    var$6 = var$2.$key;
                    if ($rt_s(2492) !== var$6) {
                        if ($rt_s(2492) === var$6)
                            var$4 = 1;
                        else if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$4 = $rt_s(2492).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$4 = 0;
                        if (!var$4) {
                            var$4 = 0;
                            break j;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2492) !== null) {
                k: {
                    if (!$rt_s(2492).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2492).$nativeString.length)
                                break k;
                            $rt_s(2492).$hashCode1 = (31 * $rt_s(2492).$hashCode1 | 0) + $rt_s(2492).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2492).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        l: {
                            var$6 = var$2.$key;
                            if ($rt_s(2492) !== var$6) {
                                if ($rt_s(2492) !== var$6) {
                                    if (var$6 instanceof jl_String) {
                                        var$6 = var$6;
                                        var$4 = $rt_s(2492).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break l;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$4 = (var$2 === null ? null : var$2.$value0).$data;
        } else
            var$4 = 0;
        m: {
            nms_EntityMinecart_setDisplayTileData($this, var$4);
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2493).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2493).$nativeString.length)
                        break m;
                    $rt_s(2493).$hashCode1 = (31 * $rt_s(2493).$hashCode1 | 0) + $rt_s(2493).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2493).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                n: {
                    var$6 = var$2.$key;
                    if ($rt_s(2493) !== var$6) {
                        if ($rt_s(2493) !== var$6) {
                            if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$4 = $rt_s(2493).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$4 = 0;
                        } else
                            var$4 = 1;
                        if (!var$4) {
                            var$4 = 0;
                            break n;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2493) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                o: {
                    if (!$rt_s(2493).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2493).$nativeString.length)
                                break o;
                            $rt_s(2493).$hashCode1 = (31 * $rt_s(2493).$hashCode1 | 0) + $rt_s(2493).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2493).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        p: {
                            var$6 = var$2.$key;
                            if ($rt_s(2493) !== var$6) {
                                if ($rt_s(2493) === var$6)
                                    var$4 = 1;
                                else if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$4 = $rt_s(2493).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                                if (!var$4) {
                                    var$4 = 0;
                                    break p;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$4 = (var$2 === null ? null : var$2.$value0).$data;
        } else
            var$4 = 0;
        nms_EntityMinecart_setDisplayTileOffset($this, var$4);
    }
    q: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1994).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(1994).$nativeString.length)
                    break q;
                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(1994).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(1994) !== var$6) {
                    if ($rt_s(1994) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break r;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        s: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(1994).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(1994).$nativeString.length)
                        break s;
                    $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(1994).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                t: {
                    var$6 = var$2.$key;
                    if ($rt_s(1994) !== var$6) {
                        if ($rt_s(1994) === var$6)
                            var$4 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$6 = var$6;
                            var$4 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break t;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$9 = $rt_s(3);
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(1994) === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                u: {
                    if (!$rt_s(1994).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(1994).$nativeString.length)
                                break u;
                            $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(1994).$hashCode1;
                var$5 = var$2.$elementData.data;
                var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        v: {
                            var$6 = var$2.$key;
                            if ($rt_s(1994) !== var$6) {
                                if ($rt_s(1994) === var$6)
                                    var$4 = 1;
                                else if (!(var$6 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$6 = var$6;
                                    var$4 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break v;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$9 = (var$2 === null ? null : var$2.$value0).$data1;
        }
        if (var$9.$nativeString.length > 0) {
            w: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(1994).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(1994).$nativeString.length)
                            break w;
                        $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(1994).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    x: {
                        var$6 = var$2.$key;
                        if ($rt_s(1994) !== var$6) {
                            if ($rt_s(1994) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(1994).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break x;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                $par1NBTTagCompound = $rt_s(3);
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(1994) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    y: {
                        if (!$rt_s(1994).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(1994).$nativeString.length)
                                    break y;
                                $rt_s(1994).$hashCode1 = (31 * $rt_s(1994).$hashCode1 | 0) + $rt_s(1994).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(1994).$hashCode1;
                    var$5 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$8) {
                            z: {
                                var$2 = $par1NBTTagCompound.$key;
                                if ($rt_s(1994) !== var$2) {
                                    if ($rt_s(1994) === var$2)
                                        var$4 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$2 = var$2;
                                        var$4 = $rt_s(1994).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break z;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
            }
            $this.$entityName = $par1NBTTagCompound;
        }
    }
},
nms_EntityMinecart_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    if (nms_EntityMinecart_hasDisplayTile($this)) {
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(2490);
        var$3.$data0 = 1;
        ju_HashMap_putImpl(var$2, $rt_s(2490), var$3);
        var$4 = nms_EntityMinecart_getDisplayTile($this) === null ? 0 : (nms_EntityMinecart_getDisplayTile($this)).$blockID;
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagInt;
        var$3.$name = $rt_s(2491);
        var$3.$data = var$4;
        ju_HashMap_putImpl(var$2, $rt_s(2491), var$3);
        var$4 = nms_EntityMinecart_getDisplayTileData($this);
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagInt;
        var$3.$name = $rt_s(2492);
        var$3.$data = var$4;
        ju_HashMap_putImpl(var$2, $rt_s(2492), var$3);
        var$4 = nms_EntityMinecart_getDisplayTileOffset($this);
        var$2 = $par1NBTTagCompound.$tagMap;
        var$3 = new nms_NBTTagInt;
        var$3.$name = $rt_s(2493);
        var$3.$data = var$4;
        ju_HashMap_putImpl(var$2, $rt_s(2493), var$3);
    }
    var$5 = $this.$entityName;
    if (var$5 !== null && var$5.$nativeString.length > 0) {
        var$3 = $this.$entityName;
        var$2 = $par1NBTTagCompound.$tagMap;
        $par1NBTTagCompound = new nms_NBTTagString;
        $par1NBTTagCompound.$name = $rt_s(1994);
        $par1NBTTagCompound.$data1 = var$3;
        if (var$3 === null) {
            var$5 = new jl_IllegalArgumentException;
            var$5.$suppressionEnabled = 1;
            var$5.$writableStackTrace = 1;
            var$5.$message = $rt_s(177);
            $rt_throw(var$5);
        }
        ju_HashMap_putImpl(var$2, $rt_s(1994), $par1NBTTagCompound);
    }
},
nms_EntityMinecart_applyEntityCollision = ($this, $par1Entity) => {
    let $var2, $var4, $var6, $var8, var$6, $var18, $var10, $var12, $var14, $var15, var$12, var$13, $var20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var20 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var18 = $thread.pop();var$6 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && $par1Entity !== $this.$riddenByEntity) {
            if ($par1Entity instanceof nms_EntityLivingBase && !($par1Entity instanceof nms_EntityPlayer) && !($par1Entity instanceof nms_EntityIronGolem) && !$this.$getMinecartType()) {
                $var2 = $this.$motionX;
                $var2 = $var2 * $var2;
                $var4 = $this.$motionZ;
                if ($var2 + $var4 * $var4 > 0.01 && $this.$riddenByEntity === null && $par1Entity.$ridingEntity === null) {
                    $ptr = 1;
                    continue main;
                }
            }
            $var2 = $par1Entity.$posX - $this.$posX;
            $var4 = $par1Entity.$posZ - $this.$posZ;
            $var6 = $var2 * $var2 + $var4 * $var4;
            if ($var6 >= 9.999999747378752E-5) {
                $var6 = jl_Math_sqrt($var6);
                $var2 = $var2 / $var6;
                $var4 = $var4 / $var6;
                $var8 = 1.0 / $var6;
                if ($var8 > 1.0)
                    $var8 = 1.0;
                $var2 = $var2 * $var8;
                $var4 = $var4 * $var8;
                $var2 = $var2 * 0.10000000149011612;
                $var4 = $var4 * 0.10000000149011612;
                $var6 = 1.0 - $this.$entityCollisionReduction;
                $var2 = $var2 * $var6;
                $var4 = $var4 * $var6;
                $var2 = $var2 * 0.5;
                var$6 = $var4 * 0.5;
                if (!($par1Entity instanceof nms_EntityMinecart)) {
                    $var6 =  -$var2;
                    $var18 =  -var$6;
                    $this.$motionX = $this.$motionX + $var6;
                    $this.$motionY = $this.$motionY + 0.0;
                    $this.$motionZ = $this.$motionZ + $var18;
                    $this.$isAirBorne = 1;
                    $var4 = $var2 / 4.0;
                    $var2 = var$6 / 4.0;
                    $par1Entity.$motionX = $par1Entity.$motionX + $var4;
                    $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
                    $par1Entity.$motionZ = $par1Entity.$motionZ + $var2;
                    $par1Entity.$isAirBorne = 1;
                } else {
                    $var10 = $par1Entity.$posX - $this.$posX;
                    $var12 = $par1Entity.$posZ - $this.$posZ;
                    $var14 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $var10, 0.0, $var12));
                    $var15 = $this.$worldObj.$vecPool;
                    var$12 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
                    var$13 = nms_MathHelper_SIN_TABLE.data;
                    var$12 = var$12 * 10430.3779296875;
                    $var15 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($var15, var$13[(var$12 + 16384.0 | 0) & 65535], 0.0, var$13[(var$12 | 0) & 65535]));
                    if (jl_Math_absImpl($var14.$xCoord * $var15.$xCoord + $var14.$yCoord * $var15.$yCoord + $var14.$zCoord * $var15.$zCoord) < 0.800000011920929)
                        return;
                    $var18 = $par1Entity.$motionX + $this.$motionX;
                    $var20 = $par1Entity.$motionZ + $this.$motionZ;
                    $var14 = $par1Entity;
                    if ($var14.$getMinecartType() == 2 && $this.$getMinecartType() != 2) {
                        $var4 = $this.$motionX * 0.20000000298023224;
                        $this.$motionX = $var4;
                        $var6 = $this.$motionZ * 0.20000000298023224;
                        $this.$motionZ = $var6;
                        $var2 = $par1Entity.$motionX - $var2;
                        $var18 = $par1Entity.$motionZ - var$6;
                        $this.$motionX = $var4 + $var2;
                        $this.$motionY = $this.$motionY + 0.0;
                        $this.$motionZ = $var6 + $var18;
                        $this.$isAirBorne = 1;
                        $par1Entity.$motionX = $par1Entity.$motionX * 0.949999988079071;
                        $par1Entity.$motionZ = $par1Entity.$motionZ * 0.949999988079071;
                    } else if ($var14.$getMinecartType() != 2 && $this.$getMinecartType() == 2) {
                        $var4 = $par1Entity.$motionX * 0.20000000298023224;
                        $par1Entity.$motionX = $var4;
                        $var6 = $par1Entity.$motionZ * 0.20000000298023224;
                        $par1Entity.$motionZ = $var6;
                        $var2 = $this.$motionX + $var2;
                        $var18 = $this.$motionZ + var$6;
                        $par1Entity.$motionX = $var4 + $var2;
                        $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
                        $par1Entity.$motionZ = $var6 + $var18;
                        $par1Entity.$isAirBorne = 1;
                        $this.$motionX = $this.$motionX * 0.949999988079071;
                        $this.$motionZ = $this.$motionZ * 0.949999988079071;
                    } else {
                        $var4 = $var18 / 2.0;
                        $var6 = $var20 / 2.0;
                        $var8 = $this.$motionX * 0.20000000298023224;
                        $this.$motionX = $var8;
                        $var18 = $this.$motionZ * 0.20000000298023224;
                        $this.$motionZ = $var18;
                        $var20 = $var4 - $var2;
                        $var10 = $var6 - var$6;
                        $this.$motionX = $var8 + $var20;
                        $this.$motionY = $this.$motionY + 0.0;
                        $this.$motionZ = $var18 + $var10;
                        $this.$isAirBorne = 1;
                        $var8 = $par1Entity.$motionX * 0.20000000298023224;
                        $par1Entity.$motionX = $var8;
                        $var18 = $par1Entity.$motionZ * 0.20000000298023224;
                        $par1Entity.$motionZ = $var18;
                        $var2 = $var4 + $var2;
                        $var6 = $var6 + var$6;
                        $par1Entity.$motionX = $var8 + $var2;
                        $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
                        $par1Entity.$motionZ = $var18 + $var6;
                        $par1Entity.$isAirBorne = 1;
                    }
                }
            }
        }
        return;
    case 1:
        $par1Entity.$mountEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $par1Entity.$posX - $this.$posX;
        $var4 = $par1Entity.$posZ - $this.$posZ;
        $var6 = $var2 * $var2 + $var4 * $var4;
        if ($var6 >= 9.999999747378752E-5) {
            $var6 = jl_Math_sqrt($var6);
            $var2 = $var2 / $var6;
            $var4 = $var4 / $var6;
            $var8 = 1.0 / $var6;
            if ($var8 > 1.0)
                $var8 = 1.0;
            $var2 = $var2 * $var8;
            $var4 = $var4 * $var8;
            $var2 = $var2 * 0.10000000149011612;
            $var4 = $var4 * 0.10000000149011612;
            $var6 = 1.0 - $this.$entityCollisionReduction;
            $var2 = $var2 * $var6;
            $var4 = $var4 * $var6;
            $var2 = $var2 * 0.5;
            var$6 = $var4 * 0.5;
            if (!($par1Entity instanceof nms_EntityMinecart)) {
                $var6 =  -$var2;
                $var18 =  -var$6;
                $this.$motionX = $this.$motionX + $var6;
                $this.$motionY = $this.$motionY + 0.0;
                $this.$motionZ = $this.$motionZ + $var18;
                $this.$isAirBorne = 1;
                $var4 = $var2 / 4.0;
                $var2 = var$6 / 4.0;
                $par1Entity.$motionX = $par1Entity.$motionX + $var4;
                $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
                $par1Entity.$motionZ = $par1Entity.$motionZ + $var2;
                $par1Entity.$isAirBorne = 1;
            } else {
                $var10 = $par1Entity.$posX - $this.$posX;
                $var12 = $par1Entity.$posZ - $this.$posZ;
                $var14 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $var10, 0.0, $var12));
                $var15 = $this.$worldObj.$vecPool;
                var$12 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
                var$13 = nms_MathHelper_SIN_TABLE.data;
                var$12 = var$12 * 10430.3779296875;
                $var15 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($var15, var$13[(var$12 + 16384.0 | 0) & 65535], 0.0, var$13[(var$12 | 0) & 65535]));
                if (jl_Math_absImpl($var14.$xCoord * $var15.$xCoord + $var14.$yCoord * $var15.$yCoord + $var14.$zCoord * $var15.$zCoord) < 0.800000011920929)
                    return;
                $var18 = $par1Entity.$motionX + $this.$motionX;
                $var20 = $par1Entity.$motionZ + $this.$motionZ;
                $var14 = $par1Entity;
                if ($var14.$getMinecartType() == 2 && $this.$getMinecartType() != 2) {
                    $var4 = $this.$motionX * 0.20000000298023224;
                    $this.$motionX = $var4;
                    $var6 = $this.$motionZ * 0.20000000298023224;
                    $this.$motionZ = $var6;
                    $var2 = $par1Entity.$motionX - $var2;
                    $var18 = $par1Entity.$motionZ - var$6;
                    $this.$motionX = $var4 + $var2;
                    $this.$motionY = $this.$motionY + 0.0;
                    $this.$motionZ = $var6 + $var18;
                    $this.$isAirBorne = 1;
                    $par1Entity.$motionX = $par1Entity.$motionX * 0.949999988079071;
                    $par1Entity.$motionZ = $par1Entity.$motionZ * 0.949999988079071;
                } else if ($var14.$getMinecartType() != 2 && $this.$getMinecartType() == 2) {
                    $var4 = $par1Entity.$motionX * 0.20000000298023224;
                    $par1Entity.$motionX = $var4;
                    $var6 = $par1Entity.$motionZ * 0.20000000298023224;
                    $par1Entity.$motionZ = $var6;
                    $var2 = $this.$motionX + $var2;
                    $var18 = $this.$motionZ + var$6;
                    $par1Entity.$motionX = $var4 + $var2;
                    $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
                    $par1Entity.$motionZ = $var6 + $var18;
                    $par1Entity.$isAirBorne = 1;
                    $this.$motionX = $this.$motionX * 0.949999988079071;
                    $this.$motionZ = $this.$motionZ * 0.949999988079071;
                } else {
                    $var4 = $var18 / 2.0;
                    $var6 = $var20 / 2.0;
                    $var8 = $this.$motionX * 0.20000000298023224;
                    $this.$motionX = $var8;
                    $var18 = $this.$motionZ * 0.20000000298023224;
                    $this.$motionZ = $var18;
                    $var20 = $var4 - $var2;
                    $var10 = $var6 - var$6;
                    $this.$motionX = $var8 + $var20;
                    $this.$motionY = $this.$motionY + 0.0;
                    $this.$motionZ = $var18 + $var10;
                    $this.$isAirBorne = 1;
                    $var8 = $par1Entity.$motionX * 0.20000000298023224;
                    $par1Entity.$motionX = $var8;
                    $var18 = $par1Entity.$motionZ * 0.20000000298023224;
                    $par1Entity.$motionZ = $var18;
                    $var2 = $var4 + $var2;
                    $var6 = $var6 + var$6;
                    $par1Entity.$motionX = $var8 + $var2;
                    $par1Entity.$motionY = $par1Entity.$motionY + 0.0;
                    $par1Entity.$motionZ = $var18 + $var6;
                    $par1Entity.$isAirBorne = 1;
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var2, $var4, $var6, $var8, var$6, $var18, $var10, $var12, $var14, $var15, var$12, var$13, $var20, $ptr);
},
nms_EntityMinecart_setDamage = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$dataWatcher;
    var$3 = new jl_Float;
    var$3.$value3 = $par1;
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[147];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$5 = var$4 === null ? null : var$4.$value0;
    var$4 = var$5.$watchedObject;
    if (var$3 === var$4)
        var$9 = 1;
    else
        a: {
            if (var$4 instanceof jl_Float) {
                var$10 = var$3.$value3;
                $par1 = var$4.$value3;
                if (var$10 !== var$10 ? ($par1 === $par1 ? 0 : 1) : $rt_floatToRawIntBits(var$10) != $rt_floatToRawIntBits($par1) ? 0 : 1) {
                    var$9 = 1;
                    break a;
                }
            }
            var$9 = 0;
        }
    if (!var$9) {
        var$5.$watchedObject = var$3;
        var$5.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityMinecart_getDamage = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[147];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value3;
},
nms_EntityMinecart_setRollingAmplitude = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = $par1;
    }
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[145];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$5 = var$4 === null ? null : var$4.$value0;
    var$4 = var$5.$watchedObject;
    if (!(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$3.$value ? 1 : 0)) {
        var$5.$watchedObject = var$3;
        var$5.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityMinecart_getRollingAmplitude = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[145];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
},
nms_EntityMinecart_setRollingDirection = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = $par1;
    }
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[146];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$5 = var$4 === null ? null : var$4.$value0;
    var$4 = var$5.$watchedObject;
    if (!(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$3.$value ? 1 : 0)) {
        var$5.$watchedObject = var$3;
        var$5.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityMinecart_getRollingDirection = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[146];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    return (var$1 === null ? null : var$1.$value0).$watchedObject.$value;
},
nms_EntityMinecart_getDisplayTile = $this => {
    let var$1, var$2, $var1, var$4, var$5;
    if (!nms_EntityMinecart_hasDisplayTile($this))
        return $this.$getDefaultDisplayTile();
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[148];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        $var1 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[$var1 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == $var1) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var1 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    a: {
        $var1 = var$1.$watchedObject.$value & 65535;
        if ($var1 > 0) {
            nms_Block_$callClinit();
            var$4 = nms_Block_blocksList.data;
            if ($var1 < var$4.length) {
                var$1 = var$4[$var1];
                break a;
            }
        }
        var$1 = null;
    }
    return var$1;
},
nms_EntityMinecart_getDefaultDisplayTile = $this => {
    return null;
},
nms_EntityMinecart_getDisplayTileData = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    if (!nms_EntityMinecart_hasDisplayTile($this))
        var$1 = $this.$getDefaultDisplayTileData();
    else {
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[148];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$1 = var$3.$value;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$1 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$1) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$1 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value >> 16;
    }
    return var$1;
},
nms_EntityMinecart_getDefaultDisplayTileData = $this => {
    return 0;
},
nms_EntityMinecart_getDisplayTileOffset = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    if (!nms_EntityMinecart_hasDisplayTile($this))
        var$1 = $this.$getDefaultDisplayTileOffset();
    else {
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[149];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$1 = var$3.$value;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$1 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$1) {
                    var$5 = var$2.$key;
                    if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$1 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    }
    return var$1;
},
nms_EntityMinecart_getDefaultDisplayTileOffset = $this => {
    return 6;
},
nms_EntityMinecart_setDisplayTile = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$dataWatcher;
    var$3 = $par1 & 65535;
    if (!nms_EntityMinecart_hasDisplayTile($this))
        var$4 = $this.$getDefaultDisplayTileData();
    else {
        var$5 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[148];
        if (var$6 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$5.$elementData.data;
            var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$7) {
                    var$9 = var$5.$key;
                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$4 = (var$5 === null ? null : var$5.$value0).$watchedObject.$value >> 16;
    }
    $par1 = var$3 | var$4 << 16;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = $par1;
    }
    var$9 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$10 = jl_Integer_integerCache.data[148];
    if (var$10 === null) {
        var$9 = var$9.$elementData.data[0];
        while (var$9 !== null && var$9.$key !== null) {
            var$9 = var$9.$next3;
        }
    } else {
        var$4 = var$10.$value;
        var$8 = var$9.$elementData.data;
        var$9 = var$8[var$4 & (var$8.length - 1 | 0)];
        while (var$9 !== null) {
            if (var$9.$origKeyHash == var$4) {
                var$6 = var$9.$key;
                if (var$10 !== var$6 && !(var$10 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$9 = var$9.$next3;
        }
    }
    var$6 = var$9 === null ? null : var$9.$value0;
    var$9 = var$6.$watchedObject;
    if (!(var$5 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$5.$value ? 1 : 0)) {
        var$6.$watchedObject = var$5;
        var$6.$watched = 1;
        var$2.$objectChanged = 1;
    }
    nms_EntityMinecart_setHasDisplayTile($this, 1);
},
nms_EntityMinecart_setDisplayTileData = ($this, $par1) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8;
    $var2 = nms_EntityMinecart_getDisplayTile($this);
    $var3 = $var2 !== null ? $var2.$blockID : 0;
    var$4 = $this.$dataWatcher;
    $par1 = $var3 & 65535 | $par1 << 16;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        $var2 = new jl_Integer;
        $var2.$value = $par1;
    }
    var$5 = var$4.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[148];
    if (var$6 === null) {
        var$5 = var$5.$elementData.data[0];
        while (var$5 !== null && var$5.$key !== null) {
            var$5 = var$5.$next3;
        }
    } else {
        $var3 = var$6.$value;
        var$7 = var$5.$elementData.data;
        var$5 = var$7[$var3 & (var$7.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == $var3) {
                var$8 = var$5.$key;
                if (var$6 !== var$8 && !(var$6 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == $var3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$5 = var$5.$next3;
        }
    }
    var$8 = var$5 === null ? null : var$5.$value0;
    var$5 = var$8.$watchedObject;
    if (!($var2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var2.$value ? 1 : 0)) {
        var$8.$watchedObject = $var2;
        var$8.$watched = 1;
        var$4.$objectChanged = 1;
    }
    nms_EntityMinecart_setHasDisplayTile($this, 1);
},
nms_EntityMinecart_setDisplayTileOffset = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    if ($par1 >= (-128) && $par1 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[$par1 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = $par1;
    }
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[149];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$8 = var$4 === null ? null : var$4.$value0;
    var$4 = var$8.$watchedObject;
    if (!(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$3.$value ? 1 : 0)) {
        var$8.$watchedObject = var$3;
        var$8.$watched = 1;
        var$2.$objectChanged = 1;
    }
    nms_EntityMinecart_setHasDisplayTile($this, 1);
},
nms_EntityMinecart_hasDisplayTile = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[150];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return var$1.$watchedObject.$value1 != 1 ? 0 : 1;
},
nms_EntityMinecart_setHasDisplayTile = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$dataWatcher;
    $par1 = (!$par1 ? 0 : 1) << 24 >> 24;
    var$3 = jl_Byte_byteCache.data[$par1 + 128 | 0];
    var$4 = var$2.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[150];
    if (var$5 === null) {
        var$4 = var$4.$elementData.data[0];
        while (var$4 !== null && var$4.$key !== null) {
            var$4 = var$4.$next3;
        }
    } else {
        var$6 = var$5.$value;
        var$7 = var$4.$elementData.data;
        var$4 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$4 !== null) {
            if (var$4.$origKeyHash == var$6) {
                var$8 = var$4.$key;
                if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$4 = var$4.$next3;
        }
    }
    var$8 = var$4 === null ? null : var$4.$value0;
    var$4 = var$8.$watchedObject;
    if (!(var$4 instanceof jl_Byte && var$4.$value1 == var$3.$value1 ? 1 : 0)) {
        var$8.$watchedObject = var$3;
        var$8.$watched = 1;
        var$2.$objectChanged = 1;
    }
},
nms_EntityMinecart_setMinecartName = ($this, $par1Str) => {
    $this.$entityName = $par1Str;
},
nms_EntityMinecart_getEntityName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$entityName;
    if (var$1 === null) {
        nms_EntityList_$callClinit();
        var$1 = nms_EntityList_classToStringMapping;
        var$2 = $this.constructor;
        if (var$2 === null)
            var$3 = null;
        else {
            var$3 = var$2.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = var$2;
                var$2.classObject = var$3;
            }
        }
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$2 = var$3;
            if (!var$2.$id$)
                var$2.$id$ = $rt_nextId();
            var$4 = var$3.$id$;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$4) {
                    var$2 = var$1.$key;
                    if (var$3 !== var$2 && !(var$3 !== var$2 ? 0 : 1) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (var$1 === null)
            var$1 = $rt_s(1266);
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(1267));
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$1);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(400));
        var$1 = new jl_String;
        var$5 = var$3.$buffer;
        var$6 = var$5.data;
        var$7 = var$3.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$1.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            nms_StatCollector_$callClinit();
            var$1 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$1);
        } else {
            var$1 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$1);
            $rt_throw(var$1);
        }
    }
    return var$1;
},
nms_EntityMinecart_isInvNameLocalized = $this => {
    return $this.$entityName === null ? 0 : 1;
},
nms_EntityMinecart_func_95999_t = $this => {
    return $this.$entityName;
},
nms_EntityMinecart__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $rt_createArray($rt_arraycls($rt_arraycls($rt_intcls)), 10);
    var$2 = var$1.data;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([0, 0, (-1)]);
    var$4[1] = $rt_createIntArrayFromData([0, 0, 1]);
    var$2[0] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([(-1), 0, 0]);
    var$4[1] = $rt_createIntArrayFromData([1, 0, 0]);
    var$2[1] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([(-1), (-1), 0]);
    var$4[1] = $rt_createIntArrayFromData([1, 0, 0]);
    var$2[2] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([(-1), 0, 0]);
    var$4[1] = $rt_createIntArrayFromData([1, (-1), 0]);
    var$2[3] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([0, 0, (-1)]);
    var$4[1] = $rt_createIntArrayFromData([0, (-1), 1]);
    var$2[4] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([0, (-1), (-1)]);
    var$4[1] = $rt_createIntArrayFromData([0, 0, 1]);
    var$2[5] = var$3;
    var$5 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$5.data;
    var$4[0] = $rt_createIntArrayFromData([0, 0, 1]);
    var$4[1] = $rt_createIntArrayFromData([1, 0, 0]);
    var$2[6] = var$5;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([0, 0, 1]);
    var$4[1] = $rt_createIntArrayFromData([(-1), 0, 0]);
    var$2[7] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([0, 0, (-1)]);
    var$4[1] = $rt_createIntArrayFromData([(-1), 0, 0]);
    var$2[8] = var$3;
    var$3 = $rt_createArray($rt_arraycls($rt_intcls), 2);
    var$4 = var$3.data;
    var$4[0] = $rt_createIntArrayFromData([0, 0, (-1)]);
    var$4[1] = $rt_createIntArrayFromData([1, 0, 0]);
    var$2[9] = var$3;
    nms_EntityMinecart_matrix = var$1;
},
nms_IProjectile = $rt_classWithoutFields(0);
function nms_EntityArrow() {
    let a = this; nms_Entity.call(a);
    a.$xTile = 0;
    a.$yTile = 0;
    a.$zTile = 0;
    a.$inTile = 0;
    a.$inData = 0;
    a.$inGround0 = 0;
    a.$canBePickedUp = 0;
    a.$arrowShake = 0;
    a.$shootingEntity = null;
    a.$ticksInGround1 = 0;
    a.$ticksInAir = 0;
    a.$damage = 0.0;
    a.$knockbackStrength = 0;
}
let nms_EntityArrow__init_ = ($this, $par1World, $par2EntityLivingBase, $par3EntityLivingBase, $par4, $par5) => {
    let $var12, $var6, $var8, $var10, $var14, $var15, $var16, $var18, var$14;
    nms_Entity__init_($this, $par1World);
    $this.$xTile = (-1);
    $this.$yTile = (-1);
    $this.$zTile = (-1);
    $this.$damage = 2.0;
    $this.$renderDistanceWeight = 10.0;
    $this.$shootingEntity = $par2EntityLivingBase;
    if ($par2EntityLivingBase instanceof nms_EntityPlayer)
        $this.$canBePickedUp = 1;
    $var12 = $par2EntityLivingBase.$posY + $par2EntityLivingBase.$height0 * 0.8500000238418579 - 0.10000000149011612;
    $this.$posY = $var12;
    $var6 = $par3EntityLivingBase.$posX - $par2EntityLivingBase.$posX;
    $var8 = $par3EntityLivingBase.$boundingBox0.$minY0 + $par3EntityLivingBase.$height0 / 3.0 - $var12;
    $var10 = $par3EntityLivingBase.$posZ - $par2EntityLivingBase.$posZ;
    $var12 = jl_Math_sqrt($var6 * $var6 + $var10 * $var10);
    if ($var12 >= 1.0E-7) {
        $var14 = jl_Math_atan2($var10, $var6) * 180.0 / 3.141592653589793 - 90.0;
        $var15 =  -(jl_Math_atan2($var8, $var12) * 180.0 / 3.141592653589793);
        $var16 = $var6 / $var12;
        $var18 = $var10 / $var12;
        $var16 = $par2EntityLivingBase.$posX + $var16;
        var$14 = $this.$posY;
        $var18 = $par2EntityLivingBase.$posZ + $var18;
        $this.$posX = $var16;
        $this.$prevPosX = $var16;
        $this.$lastTickPosX = $var16;
        var$14 = var$14 + $this.$yOffset;
        $this.$posY = var$14;
        $this.$prevPosY = var$14;
        $this.$lastTickPosY = var$14;
        $this.$posZ = $var18;
        $this.$prevPosZ = $var18;
        $this.$lastTickPosZ = $var18;
        $this.$rotationYaw = $var14;
        $this.$rotationPitch = $var15;
        nms_Entity_setPosition($this, $var16, var$14, $var18);
        $this.$yOffset = 0.0;
        nms_EntityArrow_setThrowableHeading($this, $var6, $var8 + $var12 * 0.20000000298023224, $var10, $par4, $par5);
    }
},
nms_EntityArrow__init_2 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_EntityArrow();
    nms_EntityArrow__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_EntityArrow__init_0 = ($this, $par1World, $par2EntityLivingBase, $par3) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$xTile = (-1);
        $this.$yTile = (-1);
        $this.$zTile = (-1);
        $this.$damage = 2.0;
        $this.$renderDistanceWeight = 10.0;
        $this.$shootingEntity = $par2EntityLivingBase;
        if ($par2EntityLivingBase instanceof nms_EntityPlayer)
            $this.$canBePickedUp = 1;
        var$4 = 0.5;
        var$5 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $par2EntityLivingBase.$posX;
        var$7 = $par2EntityLivingBase.$posY + 1.6200000047683716;
        var$8 = $par2EntityLivingBase.$posZ;
        var$4 = $par2EntityLivingBase.$rotationYaw;
        var$9 = $par2EntityLivingBase.$rotationPitch;
        $this.$posX = var$6;
        $this.$prevPosX = var$6;
        $this.$lastTickPosX = var$6;
        var$10 = var$7 + $this.$yOffset;
        $this.$posY = var$10;
        $this.$prevPosY = var$10;
        $this.$lastTickPosY = var$10;
        $this.$posZ = var$8;
        $this.$prevPosZ = var$8;
        $this.$lastTickPosZ = var$8;
        $this.$rotationYaw = var$4;
        $this.$rotationPitch = var$9;
        nms_Entity_setPosition($this, var$6, var$10, var$8);
        var$10 = $this.$posX;
        var$5 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
        var$11 = nms_MathHelper_SIN_TABLE.data;
        var$4 = var$5 * 10430.3779296875;
        var$10 = var$10 - var$11[(var$4 + 16384.0 | 0) & 65535] * 0.1599999964237213;
        $this.$posX = var$10;
        var$6 = $this.$posY - 0.10000000149011612;
        $this.$posY = var$6;
        var$7 = $this.$posZ - var$11[(var$4 | 0) & 65535] * 0.1599999964237213;
        $this.$posZ = var$7;
        nms_Entity_setPosition($this, var$10, var$6, var$7);
        $this.$yOffset = 0.0;
        var$5 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
        var$11 = nms_MathHelper_SIN_TABLE.data;
        var$12 = var$5 * 10430.3779296875;
        var$5 =  -var$11[(var$12 | 0) & 65535];
        var$9 = $this.$rotationPitch / 180.0 * 3.1415927410125732 * 10430.3779296875;
        var$13 = (var$9 + 16384.0 | 0) & 65535;
        var$10 = var$5 * var$11[var$13];
        $this.$motionX = var$10;
        var$6 = var$11[(var$12 + 16384.0 | 0) & 65535] * var$11[var$13];
        $this.$motionZ = var$6;
        var$7 =  -var$11[(var$9 | 0) & 65535];
        $this.$motionY = var$7;
        nms_EntityArrow_setThrowableHeading($this, var$10, var$7, var$6, $par3 * 1.5, 1.0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityLivingBase, $par3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityArrow__init_1 = (var_0, var_1, var_2) => {
    let var_3 = new nms_EntityArrow();
    nms_EntityArrow__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_EntityArrow_entityInit = $this => {
    nms_DataWatcher_addObject($this.$dataWatcher, 16, jl_Byte_byteCache.data[128]);
},
nms_EntityArrow_setThrowableHeading = ($this, $par1, $par3, $par5, $par7, $par8) => {
    let var$6, var$7, var$8, var$9, $var10;
    var$6 = jl_Math_sqrt($par1 * $par1 + $par3 * $par3 + $par5 * $par5);
    $par1 = $par1 / var$6;
    $par3 = $par3 / var$6;
    $par5 = $par5 / var$6;
    var$6 = nle_EaglercraftRandom_nextGaussian($this.$rand);
    var$7 = $this.$rand;
    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$7.$seed = var$8;
    var$9 = var$6 * (!(!Long_lo(Long_shru(var$8, 47)) ? 0 : 1) ? 1 : (-1)) * 0.007499999832361937;
    var$6 = $par8;
    $par1 = $par1 + var$9 * var$6;
    var$9 = nle_EaglercraftRandom_nextGaussian(var$7);
    var$7 = $this.$rand;
    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$7.$seed = var$8;
    $par3 = $par3 + var$9 * (!(!Long_lo(Long_shru(var$8, 47)) ? 0 : 1) ? 1 : (-1)) * 0.007499999832361937 * var$6;
    var$9 = nle_EaglercraftRandom_nextGaussian(var$7);
    var$7 = $this.$rand;
    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$7.$seed = var$8;
    $par5 = $par5 + var$9 * (!(!Long_lo(Long_shru(var$8, 47)) ? 0 : 1) ? 1 : (-1)) * 0.007499999832361937 * var$6;
    var$6 = $par7;
    $par1 = $par1 * var$6;
    $par3 = $par3 * var$6;
    $par5 = $par5 * var$6;
    $this.$motionX = $par1;
    $this.$motionY = $par3;
    $this.$motionZ = $par5;
    $var10 = jl_Math_sqrt($par1 * $par1 + $par5 * $par5);
    $par7 = jl_Math_atan2($par1, $par5) * 180.0 / 3.141592653589793;
    $this.$rotationYaw = $par7;
    $this.$prevRotationYaw = $par7;
    $par7 = jl_Math_atan2($par3, $var10) * 180.0 / 3.141592653589793;
    $this.$rotationPitch = $par7;
    $this.$prevRotationPitch = $par7;
    $this.$ticksInGround1 = 0;
},
nms_EntityArrow_onUpdate = $this => {
    let $var7, var$2, $var1, $var21, $var17, $var16, $var9, $var26, $var3, $var22, $var4, $var2, $var5, $var10, $var13, var$16, var$17, $var14, var$19, $var20, $var25, var$22, $var18, $var19, var$25, var$26, $var6, $var24, $var27, var$30, var$31, var$32, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();$var27 = $thread.pop();$var24 = $thread.pop();$var6 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();var$22 = $thread.pop();$var25 = $thread.pop();$var20 = $thread.pop();var$19 = $thread.pop();$var14 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var13 = $thread.pop();$var10 = $thread.pop();$var5 = $thread.pop();$var2 = $thread.pop();$var4
        = $thread.pop();$var22 = $thread.pop();$var3 = $thread.pop();$var26 = $thread.pop();$var9 = $thread.pop();$var16 = $thread.pop();$var17 = $thread.pop();$var21 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();$var7 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$prevRotationPitch === 0.0 && $this.$prevRotationYaw === 0.0) {
            $var7 = $this.$motionX;
            $var7 = $var7 * $var7;
            var$2 = $this.$motionZ;
            $var1 = jl_Math_sqrt($var7 + var$2 * var$2);
            $var21 = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
            $this.$rotationYaw = $var21;
            $this.$prevRotationYaw = $var21;
            $var21 = jl_Math_atan2($this.$motionY, $var1) * 180.0 / 3.141592653589793;
            $this.$rotationPitch = $var21;
            $this.$prevRotationPitch = $var21;
        }
        $var17 = $this.$worldObj;
        $var16 = $this.$xTile;
        $var9 = $this.$yTile;
        $var26 = $this.$zTile;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var17, $var16, $var9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if ($var16 > 0) {
            nms_Block_$callClinit();
            $var17 = nms_Block_blocksList.data[$var16];
            $var3 = $this.$worldObj;
            $var9 = $this.$xTile;
            $var26 = $this.$yTile;
            $var22 = $this.$zTile;
            $ptr = 3;
            continue main;
        }
        $var16 = $this.$arrowShake;
        if ($var16 > 0)
            $this.$arrowShake = $var16 - 1 | 0;
        if ($this.$inGround0) {
            $var17 = $this.$worldObj;
            $var16 = $this.$xTile;
            $var9 = $this.$yTile;
            $var26 = $this.$zTile;
            $ptr = 6;
            continue main;
        }
        $this.$ticksInAir = $this.$ticksInAir + 1 | 0;
        $var17 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var3 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var4 = $this.$worldObj;
        $var9 = 0;
        $var16 = 1;
        $ptr = 5;
        continue main;
    case 3:
        $var17.$setBlockBoundsBasedOnState($var3, $var9, $var26, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = nms_Block_blocksList.data[$var16];
        $var3 = $this.$worldObj;
        $var16 = $this.$xTile;
        $var9 = $this.$yTile;
        $var26 = $this.$zTile;
        $ptr = 4;
    case 4:
        $tmp = $var17.$getCollisionBoundingBoxFromPool($var3, $var16, $var9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 !== null && nms_AxisAlignedBB_isVecInside($var2, nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ)))
            $this.$inGround0 = 1;
        $var16 = $this.$arrowShake;
        if ($var16 > 0)
            $this.$arrowShake = $var16 - 1 | 0;
        if ($this.$inGround0) {
            $var17 = $this.$worldObj;
            $var16 = $this.$xTile;
            $var9 = $this.$yTile;
            $var26 = $this.$zTile;
            $ptr = 6;
            continue main;
        }
        $this.$ticksInAir = $this.$ticksInAir + 1 | 0;
        $var17 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var3 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var4 = $this.$worldObj;
        $var9 = 0;
        $var16 = 1;
        $ptr = 5;
    case 5:
        $tmp = nms_World_rayTraceBlocks_do_do($var4, $var17, $var3, $var9, $var16);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var17 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var3 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        if ($var4 !== null) {
            $var5 = $this.$worldObj.$vecPool;
            $var3 = $var4.$hitVec;
            $var3 = nms_Vec3Pool_getVecFromPool($var5, $var3.$xCoord, $var3.$yCoord, $var3.$zCoord);
        }
        $var5 = null;
        $var10 = $this.$worldObj;
        $var13 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $this.$motionX, $this.$motionY, $this.$motionZ);
        var$16 = $var13.$minX0 - 1.0;
        var$17 = $var13.$minY0 - 1.0;
        var$2 = $var13.$minZ0 - 1.0;
        $var7 = $var13.$maxX0 + 1.0;
        $var14 = $var13.$maxY + 1.0;
        var$19 = $var13.$maxZ0 + 1.0;
        $var20 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var16 = $var20.$nextPoolIndex;
        $var13 = $var20.$listAABB;
        $var26 = $var13.$size0;
        $var9 = $rt_compare($var16, $var26);
        if ($var9 >= 0) {
            $var25 = new nms_AxisAlignedBB;
            $var25.$minX0 = var$16;
            $var25.$minY0 = var$17;
            $var25.$minZ0 = var$2;
            $var25.$maxX0 = $var7;
            $var25.$maxY = $var14;
            $var25.$maxZ0 = var$19;
            ju_ArrayList_ensureCapacity($var13, $var26 + 1 | 0);
            var$22 = $var13.$array.data;
            $var9 = $var13.$size0;
            $var13.$size0 = $var9 + 1 | 0;
            var$22[$var9] = $var25;
            $var13.$modCount = $var13.$modCount + 1 | 0;
        } else if ($var16 >= 0 && $var9 < 0) {
            $var25 = $var13.$array.data[$var16];
            $var25.$minX0 = var$16;
            $var25.$minY0 = var$17;
            $var25.$minZ0 = var$2;
            $var25.$maxX0 = $var7;
            $var25.$maxY = $var14;
            $var25.$maxZ0 = var$19;
        } else {
            $var17 = new jl_IndexOutOfBoundsException;
            $var17.$suppressionEnabled = 1;
            $var17.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var17);
            $rt_throw($var17);
        }
        $var20.$nextPoolIndex = $var20.$nextPoolIndex + 1 | 0;
        $var13 = null;
        $ptr = 8;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($var17, $var16, $var9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        $var17 = $this.$worldObj;
        $var16 = $this.$xTile;
        $var9 = $this.$yTile;
        $var26 = $this.$zTile;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockMetadata($var17, $var16, $var9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var18 == $this.$inTile && $var19 == $this.$inData) {
            $var16 = $this.$ticksInGround1 + 1 | 0;
            $this.$ticksInGround1 = $var16;
            if ($var16 == 1200)
                $this.$isDead = 1;
        } else {
            $this.$inGround0 = 0;
            $var7 = $this.$motionX;
            $var17 = $this.$rand;
            var$25 = Long_and(Long_add(Long_mul($var17.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$25;
            $this.$motionX = $var7 * Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224;
            $var7 = $this.$motionY;
            var$26 = Long_and(Long_add(Long_mul(var$25, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$26;
            $this.$motionY = $var7 * Long_lo(Long_shru(var$26, 24)) / 1.6777216E7 * 0.20000000298023224;
            $var7 = $this.$motionZ;
            var$25 = Long_and(Long_add(Long_mul(var$26, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var17.$seed = var$25;
            $this.$motionZ = $var7 * Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224;
            $this.$ticksInGround1 = 0;
            $this.$ticksInAir = 0;
        }
        return;
    case 8:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var10, $this, $var25, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var7 = 0.0;
        $var9 = 0;
        a: {
            while (true) {
                $var16 = $rt_compare($var9, $var6.$size0);
                if ($var16 >= 0) {
                    if ($var5 !== null) {
                        $var4 = new nms_MovingObjectPosition;
                        $var4.$typeOfHit = nms_EnumMovingObjectType_ENTITY;
                        $var4.$entityHit = $var5;
                        $var4.$hitVec = nms_Vec3Pool_getVecFromPool($var5.$worldObj.$vecPool, $var5.$posX, $var5.$posY, $var5.$posZ);
                    }
                    b: {
                        if ($var4 !== null) {
                            $var17 = $var4.$entityHit;
                            if ($var17 !== null && $var17 instanceof nms_EntityPlayer) {
                                $var20 = $var17;
                                if (!$var20.$capabilities.$disableDamage) {
                                    $var17 = $this.$shootingEntity;
                                    if (!($var17 instanceof nms_EntityPlayer))
                                        break b;
                                    $var17 = $var17;
                                    if (!$var17.$mcServer3.$pvpEnabled)
                                        $var16 = 0;
                                    else {
                                        $var3 = $var17.$worldObj.$worldScoreboard;
                                        $var17 = $var17.$username;
                                        $var3 = $var3.$teamMemberships;
                                        if ($var17 !== null) {
                                            c: {
                                                if (!$var17.$hashCode1) {
                                                    $var16 = 0;
                                                    while (true) {
                                                        if ($var16 >= $var17.$nativeString.length)
                                                            break c;
                                                        $var17.$hashCode1 = (31 * $var17.$hashCode1 | 0) + $var17.$nativeString.charCodeAt($var16) | 0;
                                                        $var16 = $var16 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $var26 = $var17.$hashCode1;
                                            var$22 = $var3.$elementData.data;
                                            $var3 = var$22[$var26 & (var$22.length - 1 | 0)];
                                            while ($var3 !== null) {
                                                if ($var3.$origKeyHash == $var26) {
                                                    $var5 = $var3.$key;
                                                    if ($var17 !== $var5 && !jl_String_equals($var17, $var5) ? 0 : 1)
                                                        break;
                                                }
                                                $var3 = $var3.$next3;
                                            }
                                        } else {
                                            $var3 = $var3.$elementData.data[0];
                                            while ($var3 !== null && $var3.$key !== null) {
                                                $var3 = $var3.$next3;
                                            }
                                        }
                                        $var3 = $var3 === null ? null : $var3.$value0;
                                        $var17 = $var20.$worldObj.$worldScoreboard;
                                        $var5 = $var20.$username;
                                        $var17 = $var17.$teamMemberships;
                                        if ($var5 === null) {
                                            $var17 = $var17.$elementData.data[0];
                                            while ($var17 !== null && $var17.$key !== null) {
                                                $var17 = $var17.$next3;
                                            }
                                        } else {
                                            d: {
                                                if (!$var5.$hashCode1) {
                                                    $var16 = 0;
                                                    while (true) {
                                                        if ($var16 >= $var5.$nativeString.length)
                                                            break d;
                                                        $var5.$hashCode1 = (31 * $var5.$hashCode1 | 0) + $var5.$nativeString.charCodeAt($var16) | 0;
                                                        $var16 = $var16 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $var26 = $var5.$hashCode1;
                                            var$22 = $var17.$elementData.data;
                                            $var17 = var$22[$var26 & (var$22.length - 1 | 0)];
                                            while ($var17 !== null) {
                                                if ($var17.$origKeyHash == $var26) {
                                                    $var10 = $var17.$key;
                                                    if ($var5 !== $var10 && !jl_String_equals($var5, $var10) ? 0 : 1)
                                                        break;
                                                }
                                                $var17 = $var17.$next3;
                                            }
                                        }
                                        $var17 = $var17 === null ? null : $var17.$value0;
                                        $var16 = $var3 === null ? 1 : !($var17 === null ? 0 : $var3 !== $var17 ? 0 : 1) ? 1 : $var3.$allowFriendlyFire;
                                    }
                                    if ($var16)
                                        break b;
                                }
                                $var4 = null;
                            }
                        }
                    }
                    if ($var4 === null) {
                        $var17 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var3 = jl_Integer_integerCache.data[144];
                        if ($var3 === null) {
                            $var17 = $var17.$elementData.data[0];
                            while ($var17 !== null && $var17.$key !== null) {
                                $var17 = $var17.$next3;
                            }
                        } else {
                            $var16 = $var3.$value;
                            var$22 = $var17.$elementData.data;
                            $var17 = var$22[$var16 & (var$22.length - 1 | 0)];
                            while ($var17 !== null) {
                                if ($var17.$origKeyHash == $var16) {
                                    $var4 = $var17.$key;
                                    if ($var3 !== $var4 && !($var3 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var16 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var17 = $var17.$next3;
                            }
                        }
                        $var17 = $var17 === null ? null : $var17.$value0;
                        $var16 = !($var17.$watchedObject.$value1 & 1) ? 0 : 1;
                        e: {
                            if ($var16) {
                                $var16 = 0;
                                f: while (true) {
                                    if ($var16 >= 4)
                                        break e;
                                    $var17 = $this.$worldObj;
                                    $var9 = 0;
                                    while (true) {
                                        $var26 = $rt_compare($var9, $var17.$worldAccesses.$size0);
                                        if ($var26 >= 0)
                                            break;
                                        if ($var9 < 0)
                                            break f;
                                        if ($var26 >= 0)
                                            break f;
                                        $var9 = $var9 + 1 | 0;
                                    }
                                    $var16 = $var16 + 1 | 0;
                                }
                                $var17 = new jl_IndexOutOfBoundsException;
                                $var17.$suppressionEnabled = 1;
                                $var17.$writableStackTrace = 1;
                                $rt_throw($var17);
                            }
                        }
                        $var7 = $this.$posX;
                        var$2 = $this.$motionX;
                        $this.$posX = $var7 + var$2;
                        $this.$posY = $this.$posY + $this.$motionY;
                        $var7 = $this.$posZ;
                        $var14 = $this.$motionZ;
                        $this.$posZ = $var7 + $var14;
                        $var21 = jl_Math_sqrt(var$2 * var$2 + $var14 * $var14);
                        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
                        $var21 = jl_Math_atan2($this.$motionY, $var21) * 180.0 / 3.141592653589793;
                        $this.$rotationPitch = $var21;
                        while (true) {
                            $var24 = $this.$prevRotationPitch;
                            if ($var21 - $var24 >= (-180.0))
                                break;
                            $this.$prevRotationPitch = $var24 - 360.0;
                        }
                        while (true) {
                            $var24 = $this.$prevRotationPitch;
                            $var27 = $var21 - $var24;
                            if ($var27 < 180.0)
                                break;
                            $this.$prevRotationPitch = $var24 + 360.0;
                        }
                        while (true) {
                            $var21 = $this.$rotationYaw;
                            $var1 = $this.$prevRotationYaw;
                            if ($var21 - $var1 >= (-180.0))
                                break;
                            $this.$prevRotationYaw = $var1 - 360.0;
                        }
                        while (true) {
                            $var1 = $this.$prevRotationYaw;
                            var$30 = $var21 - $var1;
                            if (var$30 < 180.0)
                                break;
                            $this.$prevRotationYaw = $var1 + 360.0;
                        }
                        g: {
                            $this.$rotationPitch = $var24 + $var27 * 0.20000000298023224;
                            $this.$rotationYaw = $var1 + var$30 * 0.20000000298023224;
                            $var24 = 0.9900000095367432;
                            if ($this.$inWater) {
                                $var26 = 0;
                                h: while (true) {
                                    if ($var26 >= 4) {
                                        $var24 = 0.800000011920929;
                                        break g;
                                    }
                                    $var17 = $this.$worldObj;
                                    $var16 = 0;
                                    while (true) {
                                        $var9 = $rt_compare($var16, $var17.$worldAccesses.$size0);
                                        if ($var9 >= 0)
                                            break;
                                        if ($var16 < 0)
                                            break h;
                                        if ($var9 >= 0)
                                            break h;
                                        $var16 = $var16 + 1 | 0;
                                    }
                                    $var26 = $var26 + 1 | 0;
                                }
                                $var17 = new jl_IndexOutOfBoundsException;
                                $var17.$suppressionEnabled = 1;
                                $var17.$writableStackTrace = 1;
                                $rt_throw($var17);
                            }
                        }
                        $var7 = $this.$motionX;
                        var$2 = $var24;
                        $this.$motionX = $var7 * var$2;
                        $var7 = $this.$motionY * var$2;
                        $this.$motionY = $var7;
                        $this.$motionZ = $this.$motionZ * var$2;
                        $this.$motionY = $var7 - 0.05000000074505806;
                        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                        $ptr = 12;
                        continue main;
                    }
                    if ($var4.$entityHit === null) {
                        $var16 = $var4.$blockX;
                        $this.$xTile = $var16;
                        $var9 = $var4.$blockY;
                        $this.$yTile = $var9;
                        $var26 = $var4.$blockZ;
                        $this.$zTile = $var26;
                        $var17 = $this.$worldObj;
                        $ptr = 9;
                        continue main;
                    }
                    $var7 = $this.$motionX;
                    $var7 = $var7 * $var7;
                    var$2 = $this.$motionY;
                    $var7 = $var7 + var$2 * var$2;
                    var$2 = $this.$motionZ;
                    $var7 = jl_Math_sqrt($var7 + var$2 * var$2) * $this.$damage;
                    $var22 = $var7 | 0;
                    if ($var7 > $var22)
                        $var22 = $var22 + 1 | 0;
                    $var17 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var5 = jl_Integer_integerCache.data[144];
                    if ($var5 === null) {
                        $var17 = $var17.$elementData.data[0];
                        while ($var17 !== null && $var17.$key !== null) {
                            $var17 = $var17.$next3;
                        }
                    } else {
                        $var26 = $var5.$value;
                        var$22 = $var17.$elementData.data;
                        $var17 = var$22[$var26 & (var$22.length - 1 | 0)];
                        while ($var17 !== null) {
                            if ($var17.$origKeyHash == $var26) {
                                $var3 = $var17.$key;
                                if ($var5 !== $var3 && !($var5 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var26 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var17 = $var17.$next3;
                        }
                    }
                    $var17 = $var17 === null ? null : $var17.$value0;
                    if (!($var17.$watchedObject.$value1 & 1) ? 0 : 1) {
                        $var17 = $this.$rand;
                        $var16 = ($var22 / 2 | 0) + 2 | 0;
                        var$25 = Long_and(Long_add(Long_mul($var17.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var17.$seed = var$25;
                        $var18 = Long_lo(Long_shru(var$25, 17));
                        $var9 = $var16 - 1 | 0;
                        if (!($var16 & $var9))
                            $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var16), Long_fromInt($var18)), 31));
                        else
                            while (true) {
                                $var26 = $var18 % $var16 | 0;
                                if ((($var18 - $var26 | 0) + $var9 | 0) >= 0)
                                    break;
                                var$25 = Long_and(Long_add(Long_mul($var17.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var17.$seed = var$25;
                                $var18 = Long_lo(Long_shru(var$25, 17));
                            }
                        $var22 = $var22 + $var26 | 0;
                    }
                    $var17 = $this.$shootingEntity;
                    if ($var17 !== null) {
                        $var3 = new nms_EntityDamageSourceIndirect;
                        $var3.$hungerDamage = 0.30000001192092896;
                        $var3.$damageType = $rt_s(412);
                        $var3.$damageSourceEntity = $this;
                        $var3.$indirectEntity = $var17;
                        $var3.$projectile = 1;
                    } else {
                        $var3 = new nms_EntityDamageSourceIndirect;
                        $var3.$hungerDamage = 0.30000001192092896;
                        $var3.$damageType = $rt_s(412);
                        $var3.$damageSourceEntity = $this;
                        $var3.$indirectEntity = $this;
                        $var3.$projectile = 1;
                    }
                    i: {
                        j: {
                            if (!$this.$isImmuneToFire) {
                                if ($this.$fire > 0)
                                    break j;
                                $var17 = $this.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                $var10 = jl_Integer_integerCache.data[128];
                                if ($var10 === null) {
                                    $var17 = $var17.$elementData.data[0];
                                    while ($var17 !== null && $var17.$key !== null) {
                                        $var17 = $var17.$next3;
                                    }
                                } else {
                                    $var26 = $var10.$value;
                                    var$22 = $var17.$elementData.data;
                                    $var17 = var$22[$var26 & (var$22.length - 1 | 0)];
                                    while ($var17 !== null) {
                                        if ($var17.$origKeyHash == $var26) {
                                            $var5 = $var17.$key;
                                            if ($var10 !== $var5 && !jl_Integer_equals($var10, $var5) ? 0 : 1)
                                                break;
                                        }
                                        $var17 = $var17.$next3;
                                    }
                                }
                                $var17 = $var17 === null ? null : $var17.$value0;
                                if (!($var17.$watchedObject.$value1 & 1) ? 0 : 1)
                                    break j;
                            }
                            $var16 = 0;
                            break i;
                        }
                        $var16 = 1;
                    }
                    if ($var16) {
                        $var17 = $var4.$entityHit;
                        if (!($var17 instanceof nms_EntityEnderman)) {
                            $var16 = 100;
                            nms_Enchantment_$callClinit();
                            $var9 = nms_Enchantment_fireProtection.$effectId;
                            var$22 = $var17.$getLastActiveItems();
                            nms_EnchantmentHelper_$callClinit();
                            if (var$22 === null)
                                $var26 = 0;
                            else {
                                var$22 = var$22.data;
                                $var26 = 0;
                                $var18 = var$22.length;
                                $var19 = 0;
                                while ($var19 < $var18) {
                                    var$31 = nms_EnchantmentHelper_getEnchantmentLevel($var9, var$22[$var19]);
                                    if (var$31 > $var26)
                                        $var26 = var$31;
                                    $var19 = $var19 + 1 | 0;
                                }
                            }
                            if ($var26 > 0) {
                                $var21 = 100.0 * $var26 * 0.15000000596046448;
                                $var9 = $var21 | 0;
                                if ($var21 < $var9)
                                    $var9 = $var9 - 1 | 0;
                                $var16 = $var16 - $var9 | 0;
                            }
                            if ($var17.$fire < $var16)
                                $var17.$fire = $var16;
                        }
                    }
                    $var17 = $var4.$entityHit;
                    $var21 = $var22;
                    $ptr = 14;
                    continue main;
                }
                if ($var9 < 0)
                    break;
                if ($var16 >= 0)
                    break;
                $var10 = $var6.$array.data[$var9];
                if ($var10.$canBeCollidedWith() && !($var10 === $this.$shootingEntity && $this.$ticksInAir < 5)) {
                    $var13 = $var10.$boundingBox0;
                    $var14 = $var13.$minX0 - 0.30000001192092896;
                    var$19 = $var13.$minY0 - 0.30000001192092896;
                    var$32 = $var13.$minZ0 - 0.30000001192092896;
                    var$16 = $var13.$maxX0 + 0.30000001192092896;
                    var$17 = $var13.$maxY + 0.30000001192092896;
                    var$2 = $var13.$maxZ0 + 0.30000001192092896;
                    $var20 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var16 = $var20.$nextPoolIndex;
                    $var13 = $var20.$listAABB;
                    $var22 = $var13.$size0;
                    $var26 = $rt_compare($var16, $var22);
                    if ($var26 >= 0) {
                        $var25 = new nms_AxisAlignedBB;
                        $var25.$minX0 = $var14;
                        $var25.$minY0 = var$19;
                        $var25.$minZ0 = var$32;
                        $var25.$maxX0 = var$16;
                        $var25.$maxY = var$17;
                        $var25.$maxZ0 = var$2;
                        ju_ArrayList_ensureCapacity($var13, $var22 + 1 | 0);
                        var$22 = $var13.$array.data;
                        $var26 = $var13.$size0;
                        $var13.$size0 = $var26 + 1 | 0;
                        var$22[$var26] = $var25;
                        $var13.$modCount = $var13.$modCount + 1 | 0;
                    } else {
                        if ($var16 < 0)
                            break a;
                        if ($var26 >= 0)
                            break a;
                        $var25 = $var13.$array.data[$var16];
                        $var25.$minX0 = $var14;
                        $var25.$minY0 = var$19;
                        $var25.$minZ0 = var$32;
                        $var25.$maxX0 = var$16;
                        $var25.$maxY = var$17;
                        $var25.$maxZ0 = var$2;
                    }
                    $var20.$nextPoolIndex = $var20.$nextPoolIndex + 1 | 0;
                    $var13 = nms_AxisAlignedBB_calculateIntercept($var25, $var17, $var3);
                    if ($var13 !== null) {
                        $var13 = $var13.$hitVec;
                        var$2 = $var13.$xCoord - $var17.$xCoord;
                        $var14 = $var13.$yCoord - $var17.$yCoord;
                        var$19 = $var13.$zCoord - $var17.$zCoord;
                        $var14 = jl_Math_sqrt(var$2 * var$2 + $var14 * $var14 + var$19 * var$19);
                        if (!($var14 >= $var7 && $var7 !== 0.0)) {
                            $var5 = $var10;
                            $var7 = $var14;
                        }
                    }
                }
                $var9 = $var9 + 1 | 0;
            }
            $var17 = new jl_IndexOutOfBoundsException;
            $var17.$suppressionEnabled = 1;
            $var17.$writableStackTrace = 1;
            $rt_throw($var17);
        }
        $var17 = new jl_IndexOutOfBoundsException;
        $var17.$suppressionEnabled = 1;
        $var17.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var17);
        $rt_throw($var17);
    case 9:
        $tmp = nms_World_getBlockId($var17, $var16, $var9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        $this.$inTile = $var16;
        $var17 = $this.$worldObj;
        $var16 = $this.$xTile;
        $var9 = $this.$yTile;
        $var26 = $this.$zTile;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockMetadata($var17, $var16, $var9, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        $this.$inData = $var16;
        $var17 = $var4.$hitVec;
        $var7 = $var17.$xCoord - $this.$posX;
        $this.$motionX = $var7;
        var$2 = $var17.$yCoord - $this.$posY;
        $this.$motionY = var$2;
        $var14 = $var17.$zCoord - $this.$posZ;
        $this.$motionZ = $var14;
        $var21 = jl_Math_sqrt($var7 * $var7 + var$2 * var$2 + $var14 * $var14);
        $var7 = $this.$posX;
        var$2 = $this.$motionX;
        $var14 = $var21;
        $this.$posX = $var7 - var$2 / $var14 * 0.05000000074505806;
        $this.$posY = $this.$posY - $this.$motionY / $var14 * 0.05000000074505806;
        $this.$posZ = $this.$posZ - $this.$motionZ / $var14 * 0.05000000074505806;
        $var17 = $rt_s(1453);
        $var21 = 1.0;
        $var3 = $this.$rand;
        var$25 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$25;
        $var24 = 1.2000000476837158 / (Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.8999999761581421);
        $var3 = $this.$worldObj;
        $ptr = 11;
    case 11:
        nms_World_playSoundAtEntity($var3, $this, $var17, $var21, $var24);
        if ($rt_suspending()) {
            break main;
        }
        $this.$inGround0 = 1;
        $this.$arrowShake = 7;
        $var17 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[144];
        if ($var3 === null) {
            $var17 = $var17.$elementData.data[0];
            while ($var17 !== null && $var17.$key !== null) {
                $var17 = $var17.$next3;
            }
        } else {
            $var16 = $var3.$value;
            var$22 = $var17.$elementData.data;
            $var17 = var$22[$var16 & (var$22.length - 1 | 0)];
            while ($var17 !== null) {
                if ($var17.$origKeyHash == $var16) {
                    $var4 = $var17.$key;
                    if ($var3 !== $var4 && !($var3 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var16 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var17 = $var17.$next3;
            }
        }
        $var9 = ($var17 === null ? null : $var17.$value0).$watchedObject.$value1;
        $var17 = $this.$dataWatcher;
        $var16 = ($var9 & (-2)) << 24 >> 24;
        $var10 = jl_Byte_byteCache.data[$var16 + 128 | 0];
        $var3 = $var17.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var5 = jl_Integer_integerCache.data[144];
        if ($var5 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            $var26 = $var5.$value;
            var$22 = $var3.$elementData.data;
            $var3 = var$22[$var26 & (var$22.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == $var26) {
                    $var4 = $var3.$key;
                    if ($var5 !== $var4 && !($var5 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var26 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var4 = $var3 === null ? null : $var3.$value0;
        $var3 = $var4.$watchedObject;
        if (!($var3 instanceof jl_Byte && $var3.$value1 == $var10.$value1 ? 1 : 0)) {
            $var4.$watchedObject = $var10;
            $var4.$watched = 1;
            $var17.$objectChanged = 1;
        }
        $var16 = $this.$inTile;
        if ($var16) {
            nms_Block_$callClinit();
            $var17 = nms_Block_blocksList.data[$var16];
            $var3 = $this.$worldObj;
            $var16 = $this.$xTile;
            $var9 = $this.$yTile;
            $var26 = $this.$zTile;
            $ptr = 13;
            continue main;
        }
        $var17 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[144];
        if ($var3 === null) {
            $var17 = $var17.$elementData.data[0];
            while ($var17 !== null && $var17.$key !== null) {
                $var17 = $var17.$next3;
            }
        } else {
            $var16 = $var3.$value;
            var$22 = $var17.$elementData.data;
            $var17 = var$22[$var16 & (var$22.length - 1 | 0)];
            while ($var17 !== null) {
                if ($var17.$origKeyHash == $var16) {
                    $var4 = $var17.$key;
                    if ($var3 !== $var4 && !($var3 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var16 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var17 = $var17.$next3;
            }
        }
        $var17 = $var17 === null ? null : $var17.$value0;
        $var16 = !($var17.$watchedObject.$value1 & 1) ? 0 : 1;
        k: {
            if ($var16) {
                $var16 = 0;
                l: while (true) {
                    if ($var16 >= 4)
                        break k;
                    $var17 = $this.$worldObj;
                    $var9 = 0;
                    while (true) {
                        $var26 = $rt_compare($var9, $var17.$worldAccesses.$size0);
                        if ($var26 >= 0)
                            break;
                        if ($var9 < 0)
                            break l;
                        if ($var26 >= 0)
                            break l;
                        $var9 = $var9 + 1 | 0;
                    }
                    $var16 = $var16 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var7 = $this.$posX;
        var$2 = $this.$motionX;
        $this.$posX = $var7 + var$2;
        $this.$posY = $this.$posY + $this.$motionY;
        $var7 = $this.$posZ;
        $var14 = $this.$motionZ;
        $this.$posZ = $var7 + $var14;
        $var21 = jl_Math_sqrt(var$2 * var$2 + $var14 * $var14);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        $var21 = jl_Math_atan2($this.$motionY, $var21) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = $var21;
        while (true) {
            $var24 = $this.$prevRotationPitch;
            if ($var21 - $var24 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var24 - 360.0;
        }
        while (true) {
            $var24 = $this.$prevRotationPitch;
            $var27 = $var21 - $var24;
            if ($var27 < 180.0)
                break;
            $this.$prevRotationPitch = $var24 + 360.0;
        }
        while (true) {
            $var21 = $this.$rotationYaw;
            $var1 = $this.$prevRotationYaw;
            if ($var21 - $var1 >= (-180.0))
                break;
            $this.$prevRotationYaw = $var1 - 360.0;
        }
        while (true) {
            $var1 = $this.$prevRotationYaw;
            var$30 = $var21 - $var1;
            if (var$30 < 180.0)
                break;
            $this.$prevRotationYaw = $var1 + 360.0;
        }
        m: {
            $this.$rotationPitch = $var24 + $var27 * 0.20000000298023224;
            $this.$rotationYaw = $var1 + var$30 * 0.20000000298023224;
            $var24 = 0.9900000095367432;
            if ($this.$inWater) {
                $var26 = 0;
                n: while (true) {
                    if ($var26 >= 4) {
                        $var24 = 0.800000011920929;
                        break m;
                    }
                    $var17 = $this.$worldObj;
                    $var16 = 0;
                    while (true) {
                        $var9 = $rt_compare($var16, $var17.$worldAccesses.$size0);
                        if ($var9 >= 0)
                            break;
                        if ($var16 < 0)
                            break n;
                        if ($var9 >= 0)
                            break n;
                        $var16 = $var16 + 1 | 0;
                    }
                    $var26 = $var26 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var7 = $this.$motionX;
        var$2 = $var24;
        $this.$motionX = $var7 * var$2;
        $var7 = $this.$motionY * var$2;
        $this.$motionY = $var7;
        $this.$motionZ = $this.$motionZ * var$2;
        $this.$motionY = $var7 - 0.05000000074505806;
        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
        $ptr = 12;
    case 12:
        nms_Entity_doBlockCollisions($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 13:
        $var17.$onEntityCollidedWithBlock($var3, $var16, $var9, $var26, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[144];
        if ($var3 === null) {
            $var17 = $var17.$elementData.data[0];
            while ($var17 !== null && $var17.$key !== null) {
                $var17 = $var17.$next3;
            }
        } else {
            $var16 = $var3.$value;
            var$22 = $var17.$elementData.data;
            $var17 = var$22[$var16 & (var$22.length - 1 | 0)];
            while ($var17 !== null) {
                if ($var17.$origKeyHash == $var16) {
                    $var4 = $var17.$key;
                    if ($var3 !== $var4 && !($var3 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var16 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var17 = $var17.$next3;
            }
        }
        $var17 = $var17 === null ? null : $var17.$value0;
        $var16 = !($var17.$watchedObject.$value1 & 1) ? 0 : 1;
        o: {
            if ($var16) {
                $var16 = 0;
                p: while (true) {
                    if ($var16 >= 4)
                        break o;
                    $var17 = $this.$worldObj;
                    $var9 = 0;
                    while (true) {
                        $var26 = $rt_compare($var9, $var17.$worldAccesses.$size0);
                        if ($var26 >= 0)
                            break;
                        if ($var9 < 0)
                            break p;
                        if ($var26 >= 0)
                            break p;
                        $var9 = $var9 + 1 | 0;
                    }
                    $var16 = $var16 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var7 = $this.$posX;
        var$2 = $this.$motionX;
        $this.$posX = $var7 + var$2;
        $this.$posY = $this.$posY + $this.$motionY;
        $var7 = $this.$posZ;
        $var14 = $this.$motionZ;
        $this.$posZ = $var7 + $var14;
        $var21 = jl_Math_sqrt(var$2 * var$2 + $var14 * $var14);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        $var21 = jl_Math_atan2($this.$motionY, $var21) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = $var21;
        while (true) {
            $var24 = $this.$prevRotationPitch;
            if ($var21 - $var24 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var24 - 360.0;
        }
        while (true) {
            $var24 = $this.$prevRotationPitch;
            $var27 = $var21 - $var24;
            if ($var27 < 180.0)
                break;
            $this.$prevRotationPitch = $var24 + 360.0;
        }
        while (true) {
            $var21 = $this.$rotationYaw;
            $var1 = $this.$prevRotationYaw;
            if ($var21 - $var1 >= (-180.0))
                break;
            $this.$prevRotationYaw = $var1 - 360.0;
        }
        while (true) {
            $var1 = $this.$prevRotationYaw;
            var$30 = $var21 - $var1;
            if (var$30 < 180.0)
                break;
            $this.$prevRotationYaw = $var1 + 360.0;
        }
        q: {
            $this.$rotationPitch = $var24 + $var27 * 0.20000000298023224;
            $this.$rotationYaw = $var1 + var$30 * 0.20000000298023224;
            $var24 = 0.9900000095367432;
            if ($this.$inWater) {
                $var26 = 0;
                r: while (true) {
                    if ($var26 >= 4) {
                        $var24 = 0.800000011920929;
                        break q;
                    }
                    $var17 = $this.$worldObj;
                    $var16 = 0;
                    while (true) {
                        $var9 = $rt_compare($var16, $var17.$worldAccesses.$size0);
                        if ($var9 >= 0)
                            break;
                        if ($var16 < 0)
                            break r;
                        if ($var9 >= 0)
                            break r;
                        $var16 = $var16 + 1 | 0;
                    }
                    $var26 = $var26 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var7 = $this.$motionX;
        var$2 = $var24;
        $this.$motionX = $var7 * var$2;
        $var7 = $this.$motionY * var$2;
        $this.$motionY = $var7;
        $this.$motionZ = $this.$motionZ * var$2;
        $this.$motionY = $var7 - 0.05000000074505806;
        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
        $ptr = 12;
        continue main;
    case 14:
        $tmp = $var17.$attackEntityFrom($var3, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $tmp;
        if (!$var16) {
            $this.$motionX = $this.$motionX * (-0.10000000149011612);
            $this.$motionY = $this.$motionY * (-0.10000000149011612);
            $this.$motionZ = $this.$motionZ * (-0.10000000149011612);
            $this.$rotationYaw = $this.$rotationYaw + 180.0;
            $this.$prevRotationYaw = $this.$prevRotationYaw + 180.0;
            $this.$ticksInAir = 0;
            $var17 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var3 = jl_Integer_integerCache.data[144];
            if ($var3 === null) {
                $var17 = $var17.$elementData.data[0];
                while ($var17 !== null && $var17.$key !== null) {
                    $var17 = $var17.$next3;
                }
            } else {
                $var16 = $var3.$value;
                var$22 = $var17.$elementData.data;
                $var17 = var$22[$var16 & (var$22.length - 1 | 0)];
                while ($var17 !== null) {
                    if ($var17.$origKeyHash == $var16) {
                        $var4 = $var17.$key;
                        if ($var3 !== $var4 && !($var3 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var16 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var17 = $var17.$next3;
                }
            }
            $var17 = $var17 === null ? null : $var17.$value0;
            $var16 = !($var17.$watchedObject.$value1 & 1) ? 0 : 1;
            p: {
                if ($var16) {
                    $var16 = 0;
                    s: while (true) {
                        if ($var16 >= 4)
                            break p;
                        $var17 = $this.$worldObj;
                        $var9 = 0;
                        while (true) {
                            $var26 = $rt_compare($var9, $var17.$worldAccesses.$size0);
                            if ($var26 >= 0)
                                break;
                            if ($var9 < 0)
                                break s;
                            if ($var26 >= 0)
                                break s;
                            $var9 = $var9 + 1 | 0;
                        }
                        $var16 = $var16 + 1 | 0;
                    }
                    $var17 = new jl_IndexOutOfBoundsException;
                    $var17.$suppressionEnabled = 1;
                    $var17.$writableStackTrace = 1;
                    $rt_throw($var17);
                }
            }
            $var7 = $this.$posX;
            var$2 = $this.$motionX;
            $this.$posX = $var7 + var$2;
            $this.$posY = $this.$posY + $this.$motionY;
            $var7 = $this.$posZ;
            $var14 = $this.$motionZ;
            $this.$posZ = $var7 + $var14;
            $var21 = jl_Math_sqrt(var$2 * var$2 + $var14 * $var14);
            $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
            $var21 = jl_Math_atan2($this.$motionY, $var21) * 180.0 / 3.141592653589793;
            $this.$rotationPitch = $var21;
            while (true) {
                $var24 = $this.$prevRotationPitch;
                if ($var21 - $var24 >= (-180.0))
                    break;
                $this.$prevRotationPitch = $var24 - 360.0;
            }
            while (true) {
                $var24 = $this.$prevRotationPitch;
                $var27 = $var21 - $var24;
                if ($var27 < 180.0)
                    break;
                $this.$prevRotationPitch = $var24 + 360.0;
            }
            while (true) {
                $var21 = $this.$rotationYaw;
                $var1 = $this.$prevRotationYaw;
                if ($var21 - $var1 >= (-180.0))
                    break;
                $this.$prevRotationYaw = $var1 - 360.0;
            }
            while (true) {
                $var1 = $this.$prevRotationYaw;
                var$30 = $var21 - $var1;
                if (var$30 < 180.0)
                    break;
                $this.$prevRotationYaw = $var1 + 360.0;
            }
            t: {
                $this.$rotationPitch = $var24 + $var27 * 0.20000000298023224;
                $this.$rotationYaw = $var1 + var$30 * 0.20000000298023224;
                $var24 = 0.9900000095367432;
                if ($this.$inWater) {
                    $var26 = 0;
                    u: while (true) {
                        if ($var26 >= 4) {
                            $var24 = 0.800000011920929;
                            break t;
                        }
                        $var17 = $this.$worldObj;
                        $var16 = 0;
                        while (true) {
                            $var9 = $rt_compare($var16, $var17.$worldAccesses.$size0);
                            if ($var9 >= 0)
                                break;
                            if ($var16 < 0)
                                break u;
                            if ($var9 >= 0)
                                break u;
                            $var16 = $var16 + 1 | 0;
                        }
                        $var26 = $var26 + 1 | 0;
                    }
                    $var17 = new jl_IndexOutOfBoundsException;
                    $var17.$suppressionEnabled = 1;
                    $var17.$writableStackTrace = 1;
                    $rt_throw($var17);
                }
            }
            $var7 = $this.$motionX;
            var$2 = $var24;
            $this.$motionX = $var7 * var$2;
            $var7 = $this.$motionY * var$2;
            $this.$motionY = $var7;
            $this.$motionZ = $this.$motionZ * var$2;
            $this.$motionY = $var7 - 0.05000000074505806;
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            $ptr = 12;
            continue main;
        }
        $var17 = $var4.$entityHit;
        if ($var17 instanceof nms_EntityLivingBase) {
            $var25 = $var17;
            if (!$this.$worldObj.$isRemote) {
                $var17 = $var25.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var5 = jl_Integer_integerCache.data[137];
                if ($var5 === null) {
                    $var17 = $var17.$elementData.data[0];
                    while ($var17 !== null && $var17.$key !== null) {
                        $var17 = $var17.$next3;
                    }
                } else {
                    $var26 = $var5.$value;
                    var$22 = $var17.$elementData.data;
                    $var17 = var$22[$var26 & (var$22.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $var26) {
                            $var3 = $var17.$key;
                            if ($var5 !== $var3 && !($var5 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == $var26 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                }
                $var17 = $var17 === null ? null : $var17.$value0;
                $var16 = $var17.$watchedObject.$value1 + 1 | 0;
                $var17 = $var25.$dataWatcher;
                $var16 = $var16 << 24 >> 24;
                $var13 = jl_Byte_byteCache.data[$var16 + 128 | 0];
                $var3 = $var17.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var10 = jl_Integer_integerCache.data[137];
                if ($var10 === null) {
                    $var3 = $var3.$elementData.data[0];
                    while ($var3 !== null && $var3.$key !== null) {
                        $var3 = $var3.$next3;
                    }
                } else {
                    $var26 = $var10.$value;
                    var$22 = $var3.$elementData.data;
                    $var3 = var$22[$var26 & (var$22.length - 1 | 0)];
                    while ($var3 !== null) {
                        if ($var3.$origKeyHash == $var26) {
                            $var5 = $var3.$key;
                            if ($var10 !== $var5 && !($var10 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var26 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var3 = $var3.$next3;
                    }
                }
                $var5 = $var3 === null ? null : $var3.$value0;
                $var3 = $var5.$watchedObject;
                if (!($var3 instanceof jl_Byte && $var3.$value1 == $var13.$value1 ? 1 : 0)) {
                    $var5.$watchedObject = $var13;
                    $var5.$watched = 1;
                    $var17.$objectChanged = 1;
                }
            }
            if ($this.$knockbackStrength > 0) {
                $var7 = $this.$motionX;
                $var7 = $var7 * $var7;
                var$2 = $this.$motionZ;
                $var27 = jl_Math_sqrt($var7 + var$2 * var$2);
                if ($var27 > 0.0) {
                    $var17 = $var4.$entityHit;
                    $var7 = $this.$motionX;
                    var$2 = $this.$knockbackStrength;
                    $var7 = $var7 * var$2 * 0.6000000238418579;
                    $var14 = $var27;
                    $var7 = $var7 / $var14;
                    var$19 = 0.1;
                    var$2 = $this.$motionZ * var$2 * 0.6000000238418579 / $var14;
                    $ptr = 17;
                    continue main;
                }
            }
            $var17 = $this.$shootingEntity;
            if ($var17 !== null) {
                $var3 = $this.$rand;
                $ptr = 16;
                continue main;
            }
            $var17 = $this.$shootingEntity;
            if ($var17 !== null) {
                $var3 = $var4.$entityHit;
                if ($var3 !== $var17 && $var3 instanceof nms_EntityPlayer && $var17 instanceof nms_EntityPlayerMP)
                    f: {
                        $var17 = $var17.$playerNetServerHandler;
                        $var3 = new nms_Packet70GameEvent;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var3.$eventType = 6;
                        $var3.$gameMode = 0;
                        if ($var3 instanceof nms_Packet3Chat) {
                            $var5 = $var3;
                            $var9 = $var17.$playerEntity.$chatVisibility;
                            if ($var9 == 2)
                                break f;
                            if ($var9 == 1 && !$var5.$isServer)
                                break f;
                        }
                        try {
                            $var17 = $var17.$netManager;
                            $ptr = 18;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var17 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            $var3 = new otcic_JSStderrPrintStream;
                            $var5 = new ji_ByteArrayOutputStream;
                            jl_Object__init_($var5);
                            $var5.$buf = $rt_createByteArray(32);
                            ji_OutputStream__init_($var3);
                            $var3.$out0 = $var5;
                            $var5 = new jl_StringBuilder;
                            jl_AbstractStringBuilder__init_($var5);
                            $var3.$sb = $var5;
                            $var3.$buffer0 = $rt_createCharArray(32);
                            $var3.$autoFlush = 0;
                            $var3.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = $var3;
                        }
                        jl_Throwable_printStackTrace($var17, jl_System_errCache);
                    }
            }
        }
        $var17 = $rt_s(1453);
        $var21 = 1.0;
        $var3 = $this.$rand;
        var$25 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$25;
        $var24 = 1.2000000476837158 / (Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.8999999761581421);
        $var3 = $this.$worldObj;
        $ptr = 15;
    case 15:
        nms_World_playSoundAtEntity($var3, $this, $var17, $var21, $var24);
        if ($rt_suspending()) {
            break main;
        }
        if (!($var4.$entityHit instanceof nms_EntityEnderman))
            $this.$isDead = 1;
        $var17 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var3 = jl_Integer_integerCache.data[144];
        if ($var3 === null) {
            $var17 = $var17.$elementData.data[0];
            while ($var17 !== null && $var17.$key !== null) {
                $var17 = $var17.$next3;
            }
        } else {
            $var16 = $var3.$value;
            var$22 = $var17.$elementData.data;
            $var17 = var$22[$var16 & (var$22.length - 1 | 0)];
            while ($var17 !== null) {
                if ($var17.$origKeyHash == $var16) {
                    $var4 = $var17.$key;
                    if ($var3 !== $var4 && !($var3 === $var4 ? 1 : $var4 instanceof jl_Integer && $var4.$value == $var16 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var17 = $var17.$next3;
            }
        }
        $var17 = $var17 === null ? null : $var17.$value0;
        $var16 = !($var17.$watchedObject.$value1 & 1) ? 0 : 1;
        p: {
            if ($var16) {
                $var16 = 0;
                s: while (true) {
                    if ($var16 >= 4)
                        break p;
                    $var17 = $this.$worldObj;
                    $var9 = 0;
                    while (true) {
                        $var26 = $rt_compare($var9, $var17.$worldAccesses.$size0);
                        if ($var26 >= 0)
                            break;
                        if ($var9 < 0)
                            break s;
                        if ($var26 >= 0)
                            break s;
                        $var9 = $var9 + 1 | 0;
                    }
                    $var16 = $var16 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var7 = $this.$posX;
        var$2 = $this.$motionX;
        $this.$posX = $var7 + var$2;
        $this.$posY = $this.$posY + $this.$motionY;
        $var7 = $this.$posZ;
        $var14 = $this.$motionZ;
        $this.$posZ = $var7 + $var14;
        $var21 = jl_Math_sqrt(var$2 * var$2 + $var14 * $var14);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        $var21 = jl_Math_atan2($this.$motionY, $var21) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = $var21;
        while (true) {
            $var24 = $this.$prevRotationPitch;
            if ($var21 - $var24 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var24 - 360.0;
        }
        while (true) {
            $var24 = $this.$prevRotationPitch;
            $var27 = $var21 - $var24;
            if ($var27 < 180.0)
                break;
            $this.$prevRotationPitch = $var24 + 360.0;
        }
        while (true) {
            $var21 = $this.$rotationYaw;
            $var1 = $this.$prevRotationYaw;
            if ($var21 - $var1 >= (-180.0))
                break;
            $this.$prevRotationYaw = $var1 - 360.0;
        }
        while (true) {
            $var1 = $this.$prevRotationYaw;
            var$30 = $var21 - $var1;
            if (var$30 < 180.0)
                break;
            $this.$prevRotationYaw = $var1 + 360.0;
        }
        t: {
            $this.$rotationPitch = $var24 + $var27 * 0.20000000298023224;
            $this.$rotationYaw = $var1 + var$30 * 0.20000000298023224;
            $var24 = 0.9900000095367432;
            if ($this.$inWater) {
                $var26 = 0;
                u: while (true) {
                    if ($var26 >= 4) {
                        $var24 = 0.800000011920929;
                        break t;
                    }
                    $var17 = $this.$worldObj;
                    $var16 = 0;
                    while (true) {
                        $var9 = $rt_compare($var16, $var17.$worldAccesses.$size0);
                        if ($var9 >= 0)
                            break;
                        if ($var16 < 0)
                            break u;
                        if ($var9 >= 0)
                            break u;
                        $var16 = $var16 + 1 | 0;
                    }
                    $var26 = $var26 + 1 | 0;
                }
                $var17 = new jl_IndexOutOfBoundsException;
                $var17.$suppressionEnabled = 1;
                $var17.$writableStackTrace = 1;
                $rt_throw($var17);
            }
        }
        $var7 = $this.$motionX;
        var$2 = $var24;
        $this.$motionX = $var7 * var$2;
        $var7 = $this.$motionY * var$2;
        $this.$motionY = $var7;
        $this.$motionZ = $this.$motionZ * var$2;
        $this.$motionY = $var7 - 0.05000000074505806;
        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
        $ptr = 12;
        continue main;
    case 16:
        nms_EnchantmentThorns_func_92096_a($var17, $var25, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $this.$shootingEntity;
        if ($var17 !== null) {
            $var3 = $var4.$entityHit;
            if ($var3 !== $var17 && $var3 instanceof nms_EntityPlayer && $var17 instanceof nms_EntityPlayerMP)
                a: {
                    $var17 = $var17.$playerNetServerHandler;
                    $var3 = new nms_Packet70GameEvent;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var3.$eventType = 6;
                    $var3.$gameMode = 0;
                    if ($var3 instanceof nms_Packet3Chat) {
                        $var5 = $var3;
                        $var9 = $var17.$playerEntity.$chatVisibility;
                        if ($var9 == 2)
                            break a;
                        if ($var9 == 1 && !$var5.$isServer)
                            break a;
                    }
                    try {
                        $var17 = $var17.$netManager;
                        $ptr = 18;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var17 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        $var5 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var5);
                        $var5.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var3);
                        $var3.$out0 = $var5;
                        $var5 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var5);
                        $var3.$sb = $var5;
                        $var3.$buffer0 = $rt_createCharArray(32);
                        $var3.$autoFlush = 0;
                        $var3.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace($var17, jl_System_errCache);
                }
        }
        $var17 = $rt_s(1453);
        $var21 = 1.0;
        $var3 = $this.$rand;
        var$25 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$25;
        $var24 = 1.2000000476837158 / (Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.8999999761581421);
        $var3 = $this.$worldObj;
        $ptr = 15;
        continue main;
    case 17:
        $var17.$addVelocity($var7, var$19, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $this.$shootingEntity;
        if ($var17 !== null) {
            $var3 = $this.$rand;
            $ptr = 16;
            continue main;
        }
        $var17 = $this.$shootingEntity;
        if ($var17 !== null) {
            $var3 = $var4.$entityHit;
            if ($var3 !== $var17 && $var3 instanceof nms_EntityPlayer && $var17 instanceof nms_EntityPlayerMP)
                v: {
                    $var17 = $var17.$playerNetServerHandler;
                    $var3 = new nms_Packet70GameEvent;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var3.$eventType = 6;
                    $var3.$gameMode = 0;
                    if ($var3 instanceof nms_Packet3Chat) {
                        $var5 = $var3;
                        $var9 = $var17.$playerEntity.$chatVisibility;
                        if ($var9 == 2)
                            break v;
                        if ($var9 == 1 && !$var5.$isServer)
                            break v;
                    }
                    try {
                        $var17 = $var17.$netManager;
                        $ptr = 18;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $var17 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        $var5 = new ji_ByteArrayOutputStream;
                        jl_Object__init_($var5);
                        $var5.$buf = $rt_createByteArray(32);
                        ji_OutputStream__init_($var3);
                        $var3.$out0 = $var5;
                        $var5 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_($var5);
                        $var3.$sb = $var5;
                        $var3.$buffer0 = $rt_createCharArray(32);
                        $var3.$autoFlush = 0;
                        $var3.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace($var17, jl_System_errCache);
                }
        }
        $var17 = $rt_s(1453);
        $var21 = 1.0;
        $var3 = $this.$rand;
        var$25 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$25;
        $var24 = 1.2000000476837158 / (Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.8999999761581421);
        $var3 = $this.$worldObj;
        $ptr = 15;
        continue main;
    case 18:
        w: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var17, $var3);
                if ($rt_suspending()) {
                    break main;
                }
                break w;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var17 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $var3 = new otcic_JSStderrPrintStream;
                $var5 = new ji_ByteArrayOutputStream;
                jl_Object__init_($var5);
                $var5.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_($var3);
                $var3.$out0 = $var5;
                $var5 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_($var5);
                $var3.$sb = $var5;
                $var3.$buffer0 = $rt_createCharArray(32);
                $var3.$autoFlush = 0;
                $var3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $var3;
            }
            jl_Throwable_printStackTrace($var17, jl_System_errCache);
        }
        $var17 = $rt_s(1453);
        $var21 = 1.0;
        $var3 = $this.$rand;
        var$25 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$25;
        $var24 = 1.2000000476837158 / (Long_lo(Long_shru(var$25, 24)) / 1.6777216E7 * 0.20000000298023224 + 0.8999999761581421);
        $var3 = $this.$worldObj;
        $ptr = 15;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var7, var$2, $var1, $var21, $var17, $var16, $var9, $var26, $var3, $var22, $var4, $var2, $var5, $var10, $var13, var$16, var$17, $var14, var$19, $var20, $var25, var$22, $var18, $var19, var$25, var$26, $var6, $var24, $var27, var$30, var$31, var$32, $ptr);
},
nms_EntityArrow_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$xTile << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2494);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2494), var$4);
    var$2 = $this.$yTile << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2495);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2495), var$4);
    var$2 = $this.$zTile << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2496);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2496), var$4);
    var$2 = $this.$inTile << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2497);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2497), var$4);
    var$2 = $this.$inData << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2498);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2498), var$4);
    var$2 = $this.$arrowShake << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2499);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2499), var$4);
    var$2 = (!$this.$inGround0 ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2500);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2500), var$4);
    var$2 = $this.$canBePickedUp << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2501);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2501), var$4);
    var$5 = $this.$damage;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagDouble;
    $par1NBTTagCompound.$name = $rt_s(2502);
    $par1NBTTagCompound.$data7 = var$5;
    ju_HashMap_putImpl(var$4, $rt_s(2502), $par1NBTTagCompound);
},
nms_EntityArrow_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2494).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2494).$nativeString.length)
                    break a;
                $rt_s(2494).$hashCode1 = (31 * $rt_s(2494).$hashCode1 | 0) + $rt_s(2494).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2494).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(2494) !== var$5) {
                    if ($rt_s(2494) === var$5)
                        var$6 = 1;
                    else if (var$5 instanceof jl_String) {
                        var$5 = var$5;
                        var$6 = $rt_s(2494).$nativeString !== var$5.$nativeString ? 0 : 1;
                    } else
                        var$6 = 0;
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2494) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2494).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2494).$nativeString.length)
                            break c;
                        $rt_s(2494).$hashCode1 = (31 * $rt_s(2494).$hashCode1 | 0) + $rt_s(2494).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2494).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$3) {
                    d: {
                        var$5 = var$2.$key;
                        if ($rt_s(2494) !== var$5) {
                            if ($rt_s(2494) === var$5)
                                var$6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$5 = var$5;
                                var$6 = $rt_s(2494).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data2;
    } else
        var$3 = 0;
    e: {
        $this.$xTile = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2495).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2495).$nativeString.length)
                    break e;
                $rt_s(2495).$hashCode1 = (31 * $rt_s(2495).$hashCode1 | 0) + $rt_s(2495).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$6 = $rt_s(2495).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$6 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$6) {
            f: {
                var$5 = var$2.$key;
                if ($rt_s(2495) !== var$5) {
                    if ($rt_s(2495) === var$5)
                        var$3 = 1;
                    else if (var$5 instanceof jl_String) {
                        var$5 = var$5;
                        var$3 = $rt_s(2495).$nativeString !== var$5.$nativeString ? 0 : 1;
                    } else
                        var$3 = 0;
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2495) === null) {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2495).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2495).$nativeString.length)
                            break g;
                        $rt_s(2495).$hashCode1 = (31 * $rt_s(2495).$hashCode1 | 0) + $rt_s(2495).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2495).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$7 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$6) {
                    h: {
                        var$2 = var$7.$key;
                        if ($rt_s(2495) !== var$2) {
                            if ($rt_s(2495) !== var$2) {
                                if (var$2 instanceof jl_String) {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2495).$nativeString !== var$2.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$3 = (var$7 === null ? null : var$7.$value0).$data2;
    }
    i: {
        $this.$yTile = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2496).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2496).$nativeString.length)
                    break i;
                $rt_s(2496).$hashCode1 = (31 * $rt_s(2496).$hashCode1 | 0) + $rt_s(2496).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2496).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            j: {
                var$5 = var$2.$key;
                if ($rt_s(2496) !== var$5) {
                    if ($rt_s(2496) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2496).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2496) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2496).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2496).$nativeString.length)
                            break k;
                        $rt_s(2496).$hashCode1 = (31 * $rt_s(2496).$hashCode1 | 0) + $rt_s(2496).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2496).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    l: {
                        var$5 = var$2.$key;
                        if ($rt_s(2496) !== var$5) {
                            if ($rt_s(2496) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2496).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data2;
    } else
        var$3 = 0;
    m: {
        $this.$zTile = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2497).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2497).$nativeString.length)
                    break m;
                $rt_s(2497).$hashCode1 = (31 * $rt_s(2497).$hashCode1 | 0) + $rt_s(2497).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2497).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            n: {
                var$5 = var$2.$key;
                if ($rt_s(2497) !== var$5) {
                    if ($rt_s(2497) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$3 = $rt_s(2497).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break n;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2497) !== null) {
            o: {
                if (!$rt_s(2497).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2497).$nativeString.length)
                            break o;
                        $rt_s(2497).$hashCode1 = (31 * $rt_s(2497).$hashCode1 | 0) + $rt_s(2497).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2497).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    p: {
                        var$5 = var$2.$key;
                        if ($rt_s(2497) !== var$5) {
                            if ($rt_s(2497) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2497).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$6 = 0;
    q: {
        $this.$inTile = var$6 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2498).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2498).$nativeString.length)
                    break q;
                $rt_s(2498).$hashCode1 = (31 * $rt_s(2498).$hashCode1 | 0) + $rt_s(2498).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2498).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            r: {
                var$5 = var$2.$key;
                if ($rt_s(2498) !== var$5) {
                    if ($rt_s(2498) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2498).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$6 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2498) !== null) {
            s: {
                if (!$rt_s(2498).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2498).$nativeString.length)
                            break s;
                        $rt_s(2498).$hashCode1 = (31 * $rt_s(2498).$hashCode1 | 0) + $rt_s(2498).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2498).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    t: {
                        var$5 = var$2.$key;
                        if ($rt_s(2498) !== var$5) {
                            if ($rt_s(2498) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2498).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    u: {
        $this.$inData = var$6 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2499).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2499).$nativeString.length)
                    break u;
                $rt_s(2499).$hashCode1 = (31 * $rt_s(2499).$hashCode1 | 0) + $rt_s(2499).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2499).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            v: {
                var$5 = var$2.$key;
                if ($rt_s(2499) !== var$5) {
                    if ($rt_s(2499) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$3 = $rt_s(2499).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$6 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2499) !== null) {
            w: {
                if (!$rt_s(2499).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2499).$nativeString.length)
                            break w;
                        $rt_s(2499).$hashCode1 = (31 * $rt_s(2499).$hashCode1 | 0) + $rt_s(2499).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2499).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    x: {
                        var$5 = var$2.$key;
                        if ($rt_s(2499) !== var$5) {
                            if ($rt_s(2499) !== var$5) {
                                if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2499).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break x;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    y: {
        $this.$arrowShake = var$6 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2500).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2500).$nativeString.length)
                    break y;
                $rt_s(2500).$hashCode1 = (31 * $rt_s(2500).$hashCode1 | 0) + $rt_s(2500).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2500).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            z: {
                var$5 = var$2.$key;
                if ($rt_s(2500) !== var$5) {
                    if ($rt_s(2500) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$3 = $rt_s(2500).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break z;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2500) !== null) {
            ba: {
                if (!$rt_s(2500).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2500).$nativeString.length)
                            break ba;
                        $rt_s(2500).$hashCode1 = (31 * $rt_s(2500).$hashCode1 | 0) + $rt_s(2500).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2500).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    bb: {
                        var$5 = var$2.$key;
                        if ($rt_s(2500) !== var$5) {
                            if ($rt_s(2500) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2500).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break bb;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$6 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$6 = 0;
    var$3 = var$6 != 1 ? 0 : 1;
    bc: {
        $this.$inGround0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2502).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2502).$nativeString.length)
                    break bc;
                $rt_s(2502).$hashCode1 = (31 * $rt_s(2502).$hashCode1 | 0) + $rt_s(2502).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2502).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            bd: {
                var$5 = var$2.$key;
                if ($rt_s(2502) !== var$5) {
                    if ($rt_s(2502) === var$5)
                        var$3 = 1;
                    else if (var$5 instanceof jl_String) {
                        var$5 = var$5;
                        var$3 = $rt_s(2502).$nativeString !== var$5.$nativeString ? 0 : 1;
                    } else
                        var$3 = 0;
                    if (!var$3) {
                        var$3 = 0;
                        break bd;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        be: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2502).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2502).$nativeString.length)
                        break be;
                    $rt_s(2502).$hashCode1 = (31 * $rt_s(2502).$hashCode1 | 0) + $rt_s(2502).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2502).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                bf: {
                    var$5 = var$2.$key;
                    if ($rt_s(2502) !== var$5) {
                        if ($rt_s(2502) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2502).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bf;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$9 = 0.0;
        else {
            var$2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2502) !== null) {
                bg: {
                    if (!$rt_s(2502).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2502).$nativeString.length)
                                break bg;
                            $rt_s(2502).$hashCode1 = (31 * $rt_s(2502).$hashCode1 | 0) + $rt_s(2502).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2502).$hashCode1;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$8) {
                        bh: {
                            var$5 = var$2.$key;
                            if ($rt_s(2502) !== var$5) {
                                if ($rt_s(2502) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2502).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bh;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            } else {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            }
            var$9 = (var$2 === null ? null : var$2.$value0).$data7;
        }
        $this.$damage = var$9;
    }
    bi: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2501).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2501).$nativeString.length)
                    break bi;
                $rt_s(2501).$hashCode1 = (31 * $rt_s(2501).$hashCode1 | 0) + $rt_s(2501).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2501).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            bj: {
                var$5 = var$2.$key;
                if ($rt_s(2501) !== var$5) {
                    if ($rt_s(2501) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2501).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break bj;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        bk: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2501).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2501).$nativeString.length)
                        break bk;
                    $rt_s(2501).$hashCode1 = (31 * $rt_s(2501).$hashCode1 | 0) + $rt_s(2501).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2501).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                bl: {
                    var$5 = var$2.$key;
                    if ($rt_s(2501) !== var$5) {
                        if ($rt_s(2501) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2501).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bl;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2501) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                bm: {
                    if (!$rt_s(2501).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2501).$nativeString.length)
                                break bm;
                            $rt_s(2501).$hashCode1 = (31 * $rt_s(2501).$hashCode1 | 0) + $rt_s(2501).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2501).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$8) {
                        bn: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2501) !== var$2) {
                                if ($rt_s(2501) === var$2)
                                    var$3 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$2 = var$2;
                                    var$3 = $rt_s(2501).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break bn;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
        }
        $this.$canBePickedUp = var$3;
    } else {
        bo: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(270).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(270).$nativeString.length)
                        break bo;
                    $rt_s(270).$hashCode1 = (31 * $rt_s(270).$hashCode1 | 0) + $rt_s(270).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(270).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$8) {
                bp: {
                    var$5 = var$2.$key;
                    if ($rt_s(270) !== var$5) {
                        if ($rt_s(270) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(270).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bp;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (var$2 === null ? 0 : 1) {
            bq: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(270).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(270).$nativeString.length)
                            break bq;
                        $rt_s(270).$hashCode1 = (31 * $rt_s(270).$hashCode1 | 0) + $rt_s(270).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(270).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    br: {
                        var$5 = var$2.$key;
                        if ($rt_s(270) !== var$5) {
                            if ($rt_s(270) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(270).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break br;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$3 = 0;
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(270) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bs: {
                        if (!$rt_s(270).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(270).$nativeString.length)
                                    break bs;
                                $rt_s(270).$hashCode1 = (31 * $rt_s(270).$hashCode1 | 0) + $rt_s(270).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(270).$hashCode1;
                    var$4 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$8) {
                            bt: {
                                var$2 = $par1NBTTagCompound.$key;
                                if ($rt_s(270) !== var$2) {
                                    if ($rt_s(270) === var$2)
                                        var$3 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$2 = var$2;
                                        var$3 = $rt_s(270).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break bt;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
            }
            $this.$canBePickedUp = !(!var$3 ? 0 : 1) ? 0 : 1;
        }
    }
},
nms_EntityArrow_onCollideWithPlayer = ($this, $par1EntityPlayer) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote && $this.$inGround0 && $this.$arrowShake <= 0) {
            a: {
                b: {
                    $var2 = $this.$canBePickedUp;
                    var$3 = $rt_compare($var2, 1);
                    if (var$3) {
                        if ($var2 != 2)
                            break b;
                        if (!$par1EntityPlayer.$capabilities.$isCreativeMode)
                            break b;
                    }
                    $var2 = 1;
                    break a;
                }
                $var2 = 0;
            }
            if (!var$3) {
                var$4 = $par1EntityPlayer.$inventory0;
                var$5 = new nms_ItemStack;
                nms_Item_$callClinit();
                var$6 = nms_Item_arrow;
                nms_ItemStack_$callClinit();
                var$5.$itemID = var$6.$itemID0;
                var$5.$stackSize = 1;
                var$5.$itemDamage = 0;
                if (!nms_InventoryPlayer_addItemStackToInventory(var$4, var$5))
                    $var2 = 0;
            }
            if ($var2) {
                var$5 = $rt_s(2503);
                var$7 = 0.20000000298023224;
                var$4 = $this.$rand;
                var$8 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$8;
                var$9 = Long_lo(Long_shru(var$8, 24)) / 1.6777216E7;
                var$10 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$4.$seed = var$10;
                var$11 = ((var$9 - Long_lo(Long_shru(var$10, 24)) / 1.6777216E7) * 0.699999988079071 + 1.0) * 2.0;
                var$4 = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$4, $this, var$5, var$7, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = 1;
        $ptr = 2;
    case 2:
        nms_EntityLivingBase_onItemPickup($par1EntityPlayer, $this, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayer = $par1EntityPlayer.$openContainer;
        $ptr = 3;
    case 3:
        $par1EntityPlayer.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityArrow_canTriggerWalking = $this => {
    return 0;
},
nms_EntityArrow_canAttackWithItem = $this => {
    return 0;
},
nms_EntityList = $rt_classWithoutFields(),
nms_EntityList_stringToClassMapping = null,
nms_EntityList_stringToConstructorMapping = null,
nms_EntityList_classToStringMapping = null,
nms_EntityList_IDtoClassMapping = null,
nms_EntityList_IDtoConstructorMapping = null,
nms_EntityList_classToIDMapping = null,
nms_EntityList_stringToIDMapping = null,
nms_EntityList_entityEggs = null,
nms_EntityList_$callClinit = () => {
    nms_EntityList_$callClinit = $rt_eraseClinit(nms_EntityList);
    nms_EntityList__clinit_();
},
nms_EntityList__init_ = $this => {
    nms_EntityList_$callClinit();
},
nms_EntityList__init_0 = () => {
    let var_0 = new nms_EntityList();
    nms_EntityList__init_(var_0);
    return var_0;
},
nms_EntityList_addMapping0 = ($par0Class, $construst, $par1Str, $par2) => {
    let var$5, var$6, var$7;
    nms_EntityList_$callClinit();
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $par1Str, $par0Class);
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $par1Str, $construst);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $par0Class, $par1Str);
    var$5 = nms_EntityList_IDtoClassMapping;
    var$6 = $rt_compare($par2, (-128));
    if (var$6 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        var$7 = new jl_Integer;
        var$7.$value = $par2;
    }
    ju_HashMap_putImpl(var$5, var$7, $par0Class);
    var$5 = nms_EntityList_IDtoConstructorMapping;
    if (var$6 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        var$7 = new jl_Integer;
        var$7.$value = $par2;
    }
    ju_HashMap_putImpl(var$5, var$7, $construst);
    $construst = nms_EntityList_classToIDMapping;
    if (var$6 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        var$5 = new jl_Integer;
        var$5.$value = $par2;
    }
    ju_HashMap_putImpl($construst, $par0Class, var$5);
    $par0Class = nms_EntityList_stringToIDMapping;
    if (var$6 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        $construst = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        $construst = new jl_Integer;
        $construst.$value = $par2;
    }
    ju_HashMap_putImpl($par0Class, $par1Str, $construst);
},
nms_EntityList_addMapping = ($par0Class, $construst, $par1Str, $par2, $par3, $par4) => {
    let var$7, var$8, var$9;
    nms_EntityList_$callClinit();
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $par1Str, $par0Class);
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $par1Str, $construst);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $par0Class, $par1Str);
    var$7 = nms_EntityList_IDtoClassMapping;
    var$8 = $rt_compare($par2, (-128));
    if (var$8 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        var$9 = new jl_Integer;
        var$9.$value = $par2;
    }
    ju_HashMap_putImpl(var$7, var$9, $par0Class);
    var$9 = nms_EntityList_IDtoConstructorMapping;
    if (var$8 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        var$7 = new jl_Integer;
        var$7.$value = $par2;
    }
    ju_HashMap_putImpl(var$9, var$7, $construst);
    $construst = nms_EntityList_classToIDMapping;
    if (var$8 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        var$9 = new jl_Integer;
        var$9.$value = $par2;
    }
    ju_HashMap_putImpl($construst, $par0Class, var$9);
    $par0Class = nms_EntityList_stringToIDMapping;
    if (var$8 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        $construst = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        $construst = new jl_Integer;
        $construst.$value = $par2;
    }
    ju_HashMap_putImpl($par0Class, $par1Str, $construst);
    $par0Class = nms_EntityList_entityEggs;
    if (var$8 >= 0 && $par2 <= 127) {
        jl_Integer_ensureIntegerCache();
        $construst = jl_Integer_integerCache.data[$par2 + 128 | 0];
    } else {
        $construst = new jl_Integer;
        $construst.$value = $par2;
    }
    $par1Str = new nms_EntityEggInfo;
    $par1Str.$spawnedID = $par2;
    $par1Str.$primaryColor = $par3;
    $par1Str.$secondaryColor = $par4;
    $par4 = $par0Class.$elementCount;
    ju_LinkedHashMap_putImpl($par0Class, $construst, $par1Str, 0, $par0Class.$accessOrder);
},
nms_EntityList_createEntityFromNBT = ($par0NBTTagCompound, $par1World) => {
    let $var2, $ff, var$5, var$6, var$7, var$8, var$9, var$10, $var4, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$ff = $thread.pop();$var2 = $thread.pop();$par1World = $thread.pop();$par0NBTTagCompound = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        a: {
            $var2 = null;
            $ff = $par0NBTTagCompound.$tagMap;
            if (!$rt_s(914).$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= $rt_s(914).$nativeString.length)
                        break a;
                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(914).$hashCode1;
        var$6 = $ff.$elementData.data;
        var$7 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$7 !== null) {
            if (var$7.$origKeyHash == var$5) {
                b: {
                    $ff = var$7.$key;
                    if ($rt_s(914) !== $ff) {
                        if ($rt_s(914) !== $ff) {
                            if ($ff instanceof jl_String) {
                                $ff = $ff;
                                var$8 = $rt_s(914).$nativeString !== $ff.$nativeString ? 0 : 1;
                            } else
                                var$8 = 0;
                        } else
                            var$8 = 1;
                        if (!var$8) {
                            var$8 = 0;
                            break b;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            var$7 = var$7.$next3;
        }
        if (!(var$7 === null ? 0 : 1))
            $ff = $rt_s(3);
        else {
            $ff = $par0NBTTagCompound.$tagMap;
            if ($rt_s(914) !== null) {
                c: {
                    if (!$rt_s(914).$hashCode1) {
                        var$5 = 0;
                        while (true) {
                            if (var$5 >= $rt_s(914).$nativeString.length)
                                break c;
                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$5) | 0;
                            var$5 = var$5 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(914).$hashCode1;
                var$6 = $ff.$elementData.data;
                var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$8) {
                        d: {
                            $ff = var$7.$key;
                            if ($rt_s(914) !== $ff) {
                                if ($rt_s(914) !== $ff) {
                                    if ($ff instanceof jl_String) {
                                        $ff = $ff;
                                        var$5 = $rt_s(914).$nativeString !== $ff.$nativeString ? 0 : 1;
                                    } else
                                        var$5 = 0;
                                } else
                                    var$5 = 1;
                                if (!var$5) {
                                    var$5 = 0;
                                    break d;
                                }
                            }
                            var$5 = 1;
                        }
                        if (var$5)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            } else {
                var$7 = $ff.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            }
            $ff = (var$7 === null ? null : var$7.$value0).$data1;
        }
        if ($rt_s(2504) !== $ff) {
            if (!($ff instanceof jl_String))
                var$5 = 0;
            else {
                $ff = $ff;
                var$5 = $rt_s(2504).$nativeString !== $ff.$nativeString ? 0 : 1;
            }
        } else
            var$5 = 1;
        if (var$5) {
            e: {
                $ff = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(1636).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(1636).$nativeString.length)
                            break e;
                        $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(1636).$hashCode1;
            var$6 = $ff.$elementData.data;
            var$9 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$8) {
                    f: {
                        $ff = var$9.$key;
                        if ($rt_s(1636) !== $ff) {
                            if ($rt_s(1636) === $ff)
                                var$5 = 1;
                            else if (!($ff instanceof jl_String))
                                var$5 = 0;
                            else {
                                $ff = $ff;
                                var$5 = $rt_s(1636).$nativeString !== $ff.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break f;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$9 = var$9.$next3;
            }
            if (!(var$9 === null ? 0 : 1))
                var$5 = 0;
            else {
                $ff = $par0NBTTagCompound.$tagMap;
                if ($rt_s(1636) === null) {
                    var$9 = $ff.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    g: {
                        if (!$rt_s(1636).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(1636).$nativeString.length)
                                    break g;
                                $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(1636).$hashCode1;
                    var$6 = $ff.$elementData.data;
                    var$9 = var$6[var$8 & (var$6.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$8) {
                            h: {
                                $ff = var$9.$key;
                                if ($rt_s(1636) !== $ff) {
                                    if ($rt_s(1636) === $ff)
                                        var$5 = 1;
                                    else if (!($ff instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        $ff = $ff;
                                        var$5 = $rt_s(1636).$nativeString !== $ff.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break h;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                var$5 = (var$9 === null ? null : var$9.$value0).$data;
            }
            i: {
                switch (var$5) {
                    case 0:
                        break;
                    case 1:
                        var$9 = $par0NBTTagCompound.$tagMap;
                        var$10 = new nms_NBTTagString;
                        var$10.$name = $rt_s(914);
                        var$10.$data1 = $rt_s(2505);
                        ju_HashMap_putImpl(var$9, $rt_s(914), var$10);
                        break i;
                    case 2:
                        var$9 = $par0NBTTagCompound.$tagMap;
                        var$10 = new nms_NBTTagString;
                        var$10.$name = $rt_s(914);
                        var$10.$data1 = $rt_s(2506);
                        ju_HashMap_putImpl(var$9, $rt_s(914), var$10);
                        break i;
                    default:
                        break i;
                }
                var$9 = $par0NBTTagCompound.$tagMap;
                var$10 = new nms_NBTTagString;
                var$10.$name = $rt_s(914);
                var$10.$data1 = $rt_s(2507);
                ju_HashMap_putImpl(var$9, $rt_s(914), var$10);
            }
            ju_HashMap_removeByKey($par0NBTTagCompound.$tagMap, $rt_s(1636));
        }
        j: {
            try {
                var$10 = $var2;
                $ff = ju_HashMap_get(nms_EntityList_stringToConstructorMapping, nms_NBTTagCompound_getString($par0NBTTagCompound, $rt_s(914)));
                if ($ff === null)
                    break j;
                var$10 = $var2;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var4);
            $var2 = var$10;
        }
        if ($var2 === null) {
            if (jl_System_errCache === null) {
                $par1World = new otcic_JSStderrPrintStream;
                $ff = new ji_ByteArrayOutputStream;
                $ff.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $ff;
                $ff = new jl_StringBuilder;
                $ff.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $ff;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1World;
            }
            k: {
                $par1World = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(914).$nativeString.length)
                            break k;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(914).$hashCode1;
            var$6 = $par1World.$elementData.data;
            var$10 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$10 !== null) {
                if (var$10.$origKeyHash == var$8) {
                    l: {
                        $par1World = var$10.$key;
                        if ($rt_s(914) !== $par1World) {
                            if ($rt_s(914) === $par1World)
                                var$5 = 1;
                            else if (!($par1World instanceof jl_String))
                                var$5 = 0;
                            else {
                                $par1World = $par1World;
                                var$5 = $rt_s(914).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break l;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$10 = var$10.$next3;
            }
            if (!(var$10 === null ? 0 : 1))
                $ff = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $ff = $par0NBTTagCompound.$elementData.data[0];
                    while ($ff !== null && $ff.$key !== null) {
                        $ff = $ff.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(914).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(914).$nativeString.length)
                                    break m;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(914).$hashCode1;
                    var$6 = $par0NBTTagCompound.$elementData.data;
                    $ff = var$6[var$8 & (var$6.length - 1 | 0)];
                    while ($ff !== null) {
                        if ($ff.$origKeyHash == var$8) {
                            n: {
                                $par0NBTTagCompound = $ff.$key;
                                if ($rt_s(914) !== $par0NBTTagCompound) {
                                    if ($rt_s(914) === $par0NBTTagCompound)
                                        var$5 = 1;
                                    else if (!($par0NBTTagCompound instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        $par0NBTTagCompound = $par0NBTTagCompound;
                                        var$5 = $rt_s(914).$nativeString !== $par0NBTTagCompound.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break n;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        $ff = $ff.$next3;
                    }
                }
                $ff = ($ff === null ? null : $ff.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(1338));
            var$5 = $par0NBTTagCompound.$length0;
            if ($ff === null)
                $ff = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$5, $ff);
            $par1World = new jl_String;
            var$6 = $par0NBTTagCompound.$buffer;
            var$12 = var$6.data;
            var$8 = $par0NBTTagCompound.$length0;
            var$13 = var$12.length;
            if (var$8 >= 0 && var$8 <= (var$13 - 0 | 0)) {
                $par1World.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                $rt_putStderr($rt_ustr($par1World));
                $rt_putStderr("\n");
                return $var2;
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par0NBTTagCompound);
        }
        $ptr = 2;
        continue main;
    case 1:
        a: {
            try {
                $tmp = $ff.$apply($par1World);
                if ($rt_suspending()) {
                    break main;
                }
                $var2 = $tmp;
                var$10 = $var2;
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var4 = $$je;
                } else {
                    throw $$e;
                }
            }
            jl_Throwable_printStackTrace0($var4);
            $var2 = var$10;
        }
        if ($var2 === null) {
            if (jl_System_errCache === null) {
                $par1World = new otcic_JSStderrPrintStream;
                $ff = new ji_ByteArrayOutputStream;
                $ff.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $ff;
                $ff = new jl_StringBuilder;
                $ff.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $ff;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1World;
            }
            b: {
                $par1World = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$5 = 0;
                    while (true) {
                        if (var$5 >= $rt_s(914).$nativeString.length)
                            break b;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$5) | 0;
                        var$5 = var$5 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(914).$hashCode1;
            var$6 = $par1World.$elementData.data;
            var$10 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$10 !== null) {
                if (var$10.$origKeyHash == var$8) {
                    o: {
                        $par1World = var$10.$key;
                        if ($rt_s(914) !== $par1World) {
                            if ($rt_s(914) === $par1World)
                                var$5 = 1;
                            else if (!($par1World instanceof jl_String))
                                var$5 = 0;
                            else {
                                $par1World = $par1World;
                                var$5 = $rt_s(914).$nativeString !== $par1World.$nativeString ? 0 : 1;
                            }
                            if (!var$5) {
                                var$5 = 0;
                                break o;
                            }
                        }
                        var$5 = 1;
                    }
                    if (var$5)
                        break;
                }
                var$10 = var$10.$next3;
            }
            if (!(var$10 === null ? 0 : 1))
                $ff = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $ff = $par0NBTTagCompound.$elementData.data[0];
                    while ($ff !== null && $ff.$key !== null) {
                        $ff = $ff.$next3;
                    }
                } else {
                    p: {
                        if (!$rt_s(914).$hashCode1) {
                            var$5 = 0;
                            while (true) {
                                if (var$5 >= $rt_s(914).$nativeString.length)
                                    break p;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$5) | 0;
                                var$5 = var$5 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(914).$hashCode1;
                    var$6 = $par0NBTTagCompound.$elementData.data;
                    $ff = var$6[var$8 & (var$6.length - 1 | 0)];
                    while ($ff !== null) {
                        if ($ff.$origKeyHash == var$8) {
                            q: {
                                $par0NBTTagCompound = $ff.$key;
                                if ($rt_s(914) !== $par0NBTTagCompound) {
                                    if ($rt_s(914) === $par0NBTTagCompound)
                                        var$5 = 1;
                                    else if (!($par0NBTTagCompound instanceof jl_String))
                                        var$5 = 0;
                                    else {
                                        $par0NBTTagCompound = $par0NBTTagCompound;
                                        var$5 = $rt_s(914).$nativeString !== $par0NBTTagCompound.$nativeString ? 0 : 1;
                                    }
                                    if (!var$5) {
                                        var$5 = 0;
                                        break q;
                                    }
                                }
                                var$5 = 1;
                            }
                            if (var$5)
                                break;
                        }
                        $ff = $ff.$next3;
                    }
                }
                $ff = ($ff === null ? null : $ff.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(1338));
            var$5 = $par0NBTTagCompound.$length0;
            if ($ff === null)
                $ff = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$5, $ff);
            $par1World = new jl_String;
            var$6 = $par0NBTTagCompound.$buffer;
            var$12 = var$6.data;
            var$8 = $par0NBTTagCompound.$length0;
            var$13 = var$12.length;
            if (var$8 >= 0 && var$8 <= (var$13 - 0 | 0)) {
                $par1World.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                $rt_putStderr($rt_ustr($par1World));
                $rt_putStderr("\n");
                return $var2;
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par0NBTTagCompound);
        }
        $ptr = 2;
    case 2:
        nms_Entity_readFromNBT($var2, $par0NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0NBTTagCompound, $par1World, $var2, $ff, var$5, var$6, var$7, var$8, var$9, var$10, $var4, var$12, var$13, $ptr);
},
nms_EntityList__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_stringToClassMapping = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_stringToConstructorMapping = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_classToStringMapping = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_IDtoClassMapping = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_IDtoConstructorMapping = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_classToIDMapping = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_EntityList_stringToIDMapping = var$1;
    var$1 = new ju_LinkedHashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    var$1.$accessOrder = 0;
    var$1.$head = null;
    nms_EntityList_entityEggs = var$1;
    var$5 = new nms_EntityList$_clinit_$lambda$_63_0;
    nms_EntityList_$callClinit();
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(1343), $rt_cls(nms_EntityItem));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(1343), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityItem), $rt_s(1343));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[129], $rt_cls(nms_EntityItem));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[129], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityItem), jl_Integer_integerCache.data[129]);
    var$7 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$7, $rt_s(1343), jl_Integer_integerCache.data[129]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_1;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2508), $rt_cls(nms_EntityXPOrb));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2508), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityXPOrb), $rt_s(2508));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[130], $rt_cls(nms_EntityXPOrb));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[130], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityXPOrb), jl_Integer_integerCache.data[130]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2508), jl_Integer_integerCache.data[130]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_2;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2509), $rt_cls(nms_EntityPainting));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2509), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityPainting), $rt_s(2509));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[137], $rt_cls(nms_EntityPainting));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[137], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityPainting), jl_Integer_integerCache.data[137]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2509), jl_Integer_integerCache.data[137]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_3;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2510), $rt_cls(nms_EntityArrow));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2510), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityArrow), $rt_s(2510));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[138], $rt_cls(nms_EntityArrow));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[138], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityArrow), jl_Integer_integerCache.data[138]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2510), jl_Integer_integerCache.data[138]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_4;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2511), $rt_cls(nms_EntitySnowball));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2511), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntitySnowball), $rt_s(2511));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[139], $rt_cls(nms_EntitySnowball));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[139], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntitySnowball), jl_Integer_integerCache.data[139]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2511), jl_Integer_integerCache.data[139]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_5;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2512), $rt_cls(nms_EntityLargeFireball));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2512), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityLargeFireball), $rt_s(2512));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[140], $rt_cls(nms_EntityLargeFireball));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[140], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityLargeFireball), jl_Integer_integerCache.data[140]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2512), jl_Integer_integerCache.data[140]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_6;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2513), $rt_cls(nms_EntitySmallFireball));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2513), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntitySmallFireball), $rt_s(2513));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[141], $rt_cls(nms_EntitySmallFireball));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[141], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntitySmallFireball), jl_Integer_integerCache.data[141]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2513), jl_Integer_integerCache.data[141]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_7;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2514), $rt_cls(nms_EntityEnderPearl));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2514), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityEnderPearl), $rt_s(2514));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[142], $rt_cls(nms_EntityEnderPearl));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[142], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityEnderPearl), jl_Integer_integerCache.data[142]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2514), jl_Integer_integerCache.data[142]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_8;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2515), $rt_cls(nms_EntityEnderEye));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2515), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityEnderEye), $rt_s(2515));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[143], $rt_cls(nms_EntityEnderEye));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[143], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityEnderEye), jl_Integer_integerCache.data[143]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2515), jl_Integer_integerCache.data[143]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_9;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2516), $rt_cls(nms_EntityPotion));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2516), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityPotion), $rt_s(2516));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[144], $rt_cls(nms_EntityPotion));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[144], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityPotion), jl_Integer_integerCache.data[144]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2516), jl_Integer_integerCache.data[144]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_10;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2517), $rt_cls(nms_EntityExpBottle));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2517), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityExpBottle), $rt_s(2517));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[145], $rt_cls(nms_EntityExpBottle));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[145], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityExpBottle), jl_Integer_integerCache.data[145]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2517), jl_Integer_integerCache.data[145]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_11;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2518), $rt_cls(nms_EntityItemFrame));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2518), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityItemFrame), $rt_s(2518));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[146], $rt_cls(nms_EntityItemFrame));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[146], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityItemFrame), jl_Integer_integerCache.data[146]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2518), jl_Integer_integerCache.data[146]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_12;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2519), $rt_cls(nms_EntityWitherSkull));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2519), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityWitherSkull), $rt_s(2519));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[147], $rt_cls(nms_EntityWitherSkull));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[147], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityWitherSkull), jl_Integer_integerCache.data[147]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2519), jl_Integer_integerCache.data[147]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_13;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2520), $rt_cls(nms_EntityTNTPrimed));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2520), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityTNTPrimed), $rt_s(2520));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[148], $rt_cls(nms_EntityTNTPrimed));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[148], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityTNTPrimed), jl_Integer_integerCache.data[148]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2520), jl_Integer_integerCache.data[148]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_14;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2521), $rt_cls(nms_EntityFallingSand));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2521), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityFallingSand), $rt_s(2521));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[149], $rt_cls(nms_EntityFallingSand));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[149], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityFallingSand), jl_Integer_integerCache.data[149]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2521), jl_Integer_integerCache.data[149]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_15;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2522), $rt_cls(nms_EntityFireworkRocket));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2522), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityFireworkRocket), $rt_s(2522));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[150], $rt_cls(nms_EntityFireworkRocket));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[150], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityFireworkRocket), jl_Integer_integerCache.data[150]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2522), jl_Integer_integerCache.data[150]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_16;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2523), $rt_cls(nms_EntityBoat));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2523), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityBoat), $rt_s(2523));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[169], $rt_cls(nms_EntityBoat));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[169], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityBoat), jl_Integer_integerCache.data[169]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2523), jl_Integer_integerCache.data[169]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_17;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2507), $rt_cls(nms_EntityMinecartEmpty));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2507), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityMinecartEmpty), $rt_s(2507));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[170], $rt_cls(nms_EntityMinecartEmpty));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[170], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityMinecartEmpty), jl_Integer_integerCache.data[170]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2507), jl_Integer_integerCache.data[170]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_18;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2505), $rt_cls(nms_EntityMinecartChest));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2505), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityMinecartChest), $rt_s(2505));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[171], $rt_cls(nms_EntityMinecartChest));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[171], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityMinecartChest), jl_Integer_integerCache.data[171]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2505), jl_Integer_integerCache.data[171]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_19;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2506), $rt_cls(nms_EntityMinecartFurnace));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2506), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityMinecartFurnace), $rt_s(2506));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[172], $rt_cls(nms_EntityMinecartFurnace));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[172], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityMinecartFurnace), jl_Integer_integerCache.data[172]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2506), jl_Integer_integerCache.data[172]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_20;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2524), $rt_cls(nms_EntityMinecartTNT));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2524), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityMinecartTNT), $rt_s(2524));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[173], $rt_cls(nms_EntityMinecartTNT));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[173], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityMinecartTNT), jl_Integer_integerCache.data[173]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2524), jl_Integer_integerCache.data[173]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_21;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2525), $rt_cls(nms_EntityMinecartHopper));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2525), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityMinecartHopper), $rt_s(2525));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[174], $rt_cls(nms_EntityMinecartHopper));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[174], var$5);
    var$5 = nms_EntityList_classToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$5, $rt_cls(nms_EntityMinecartHopper), jl_Integer_integerCache.data[174]);
    var$1 = nms_EntityList_stringToIDMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$1, $rt_s(2525), jl_Integer_integerCache.data[174]);
    var$5 = new nms_EntityList$_clinit_$lambda$_63_22;
    ju_HashMap_putImpl(nms_EntityList_stringToClassMapping, $rt_s(2526), $rt_cls(nms_EntityMinecartMobSpawner));
    ju_HashMap_putImpl(nms_EntityList_stringToConstructorMapping, $rt_s(2526), var$5);
    ju_HashMap_putImpl(nms_EntityList_classToStringMapping, $rt_cls(nms_EntityMinecartMobSpawner), $rt_s(2526));
    var$6 = nms_EntityList_IDtoClassMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$6, jl_Integer_integerCache.data[175], $rt_cls(nms_EntityMinecartMobSpawner));
    var$6 = nms_EntityList_IDtoConstructorMapping;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_put(var$6, jl_Integer_integerCache.data[175], var$5);
    ju_HashMap_put(nms_EntityList_classToIDMapping, $rt_cls(nms_EntityMinecartMobSpawner), jl_Integer_valueOf(47));
    ju_HashMap_put(nms_EntityList_stringToIDMapping, $rt_s(2526), jl_Integer_valueOf(47));
    nms_EntityList_addMapping($rt_cls(nms_EntityCreeper), new nms_EntityList$_clinit_$lambda$_63_23, $rt_s(2527), 50, 894731, 0);
    nms_EntityList_addMapping($rt_cls(nms_EntitySkeleton), new nms_EntityList$_clinit_$lambda$_63_24, $rt_s(2528), 51, 12698049, 4802889);
    nms_EntityList_addMapping($rt_cls(nms_EntitySpider), new nms_EntityList$_clinit_$lambda$_63_25, $rt_s(2529), 52, 3419431, 11013646);
    nms_EntityList_addMapping0($rt_cls(nms_EntityGiantZombie), new nms_EntityList$_clinit_$lambda$_63_26, $rt_s(2530), 53);
    nms_EntityList_addMapping($rt_cls(nms_EntityZombie), new nms_EntityList$_clinit_$lambda$_63_27, $rt_s(2531), 54, 44975, 7969893);
    nms_EntityList_addMapping($rt_cls(nms_EntitySlime), new nms_EntityList$_clinit_$lambda$_63_28, $rt_s(2532), 55, 5349438, 8306542);
    nms_EntityList_addMapping($rt_cls(nms_EntityGhast), new nms_EntityList$_clinit_$lambda$_63_29, $rt_s(2533), 56, 16382457, 12369084);
    nms_EntityList_addMapping($rt_cls(nms_EntityPigZombie), new nms_EntityList$_clinit_$lambda$_63_30, $rt_s(2534), 57, 15373203, 5009705);
    nms_EntityList_addMapping($rt_cls(nms_EntityEnderman), new nms_EntityList$_clinit_$lambda$_63_31, $rt_s(2535), 58, 1447446, 0);
    nms_EntityList_addMapping($rt_cls(nms_EntityCaveSpider), new nms_EntityList$_clinit_$lambda$_63_32, $rt_s(2536), 59, 803406, 11013646);
    nms_EntityList_addMapping($rt_cls(nms_EntitySilverfish), new nms_EntityList$_clinit_$lambda$_63_33, $rt_s(2537), 60, 7237230, 3158064);
    nms_EntityList_addMapping($rt_cls(nms_EntityBlaze), new nms_EntityList$_clinit_$lambda$_63_34, $rt_s(2538), 61, 16167425, 16775294);
    nms_EntityList_addMapping($rt_cls(nms_EntityMagmaCube), new nms_EntityList$_clinit_$lambda$_63_35, $rt_s(2539), 62, 3407872, 16579584);
    nms_EntityList_addMapping0($rt_cls(nms_EntityDragon), new nms_EntityList$_clinit_$lambda$_63_36, $rt_s(2540), 63);
    nms_EntityList_addMapping0($rt_cls(nms_EntityWither), new nms_EntityList$_clinit_$lambda$_63_37, $rt_s(2541), 64);
    nms_EntityList_addMapping($rt_cls(nms_EntityBat), new nms_EntityList$_clinit_$lambda$_63_38, $rt_s(2542), 65, 4996656, 986895);
    nms_EntityList_addMapping($rt_cls(nms_EntityWitch), new nms_EntityList$_clinit_$lambda$_63_39, $rt_s(2543), 66, 3407872, 5349438);
    nms_EntityList_addMapping($rt_cls(nms_EntityPig), new nms_EntityList$_clinit_$lambda$_63_40, $rt_s(1309), 90, 15771042, 14377823);
    nms_EntityList_addMapping($rt_cls(nms_EntitySheep), new nms_EntityList$_clinit_$lambda$_63_41, $rt_s(2544), 91, 15198183, 16758197);
    nms_EntityList_addMapping($rt_cls(nms_EntityCow), new nms_EntityList$_clinit_$lambda$_63_42, $rt_s(2545), 92, 4470310, 10592673);
    nms_EntityList_addMapping($rt_cls(nms_EntityChicken), new nms_EntityList$_clinit_$lambda$_63_43, $rt_s(2546), 93, 10592673, 16711680);
    nms_EntityList_addMapping($rt_cls(nms_EntitySquid), new nms_EntityList$_clinit_$lambda$_63_44, $rt_s(2547), 94, 2243405, 7375001);
    nms_EntityList_addMapping($rt_cls(nms_EntityWolf), new nms_EntityList$_clinit_$lambda$_63_45, $rt_s(2548), 95, 14144467, 13545366);
    nms_EntityList_addMapping($rt_cls(nms_EntityMooshroom), new nms_EntityList$_clinit_$lambda$_63_46, $rt_s(2549), 96, 10489616, 12040119);
    nms_EntityList_addMapping0($rt_cls(nms_EntitySnowman), new nms_EntityList$_clinit_$lambda$_63_47, $rt_s(2550), 97);
    nms_EntityList_addMapping($rt_cls(nms_EntityOcelot), new nms_EntityList$_clinit_$lambda$_63_48, $rt_s(2551), 98, 15720061, 5653556);
    nms_EntityList_addMapping0($rt_cls(nms_EntityIronGolem), new nms_EntityList$_clinit_$lambda$_63_49, $rt_s(2552), 99);
    nms_EntityList_addMapping($rt_cls(nms_EntityHorse), new nms_EntityList$_clinit_$lambda$_63_50, $rt_s(2553), 100, 12623485, 15656192);
    nms_EntityList_addMapping($rt_cls(nms_EntityVillager), new nms_EntityList$_clinit_$lambda$_63_51, $rt_s(2554), 120, 5651507, 12422002);
    nms_EntityList_addMapping0($rt_cls(nms_EntityEnderCrystal), new nms_EntityList$_clinit_$lambda$_63_52, $rt_s(2555), 200);
};
function nms_BaseAttributeMap() {
    let a = this; jl_Object.call(a);
    a.$attributes = null;
    a.$attributesByName = null;
}
function nms_VillageAgressor() {
    let a = this; jl_Object.call(a);
    a.$agressor = null;
    a.$agressionTime = 0;
    a.$villageObj2 = null;
}
function nms_EntityAIMoveTowardsTarget() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntity9 = null;
    a.$targetEntity = null;
    a.$movePosX = 0.0;
    a.$movePosY = 0.0;
    a.$movePosZ = 0.0;
    a.$speed3 = 0.0;
    a.$maxTargetDistance = 0.0;
}
let nms_EntityAIMoveTowardsTarget_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$theEntity9;
        var$2 = $var1.$attackTarget;
        $this.$targetEntity = var$2;
        if (var$2 === null)
            return 0;
        var$3 = var$2.$posX;
        var$4 = var$3 - $var1.$posX;
        var$5 = var$2.$posY;
        var$6 = var$5 - $var1.$posY;
        var$7 = var$2.$posZ;
        var$8 = var$7 - $var1.$posZ;
        var$6 = var$4 * var$4 + var$6 * var$6 + var$8 * var$8;
        var$9 = $this.$maxTargetDistance;
        if (var$6 > var$9 * var$9)
            return 0;
        var$10 = 16;
        var$11 = 7;
        var$2 = nms_Vec3Pool_getVecFromPool($var1.$worldObj.$vecPool, var$3, var$5, var$7);
        nms_RandomPositionGenerator_$callClinit();
        var$12 = nms_RandomPositionGenerator_staticVector;
        var$12.$xCoord = var$2.$xCoord - $var1.$posX;
        var$12.$yCoord = var$2.$yCoord - $var1.$posY;
        var$12.$zCoord = var$2.$zCoord - $var1.$posZ;
        $ptr = 1;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        $this.$movePosX = $var1.$xCoord;
        $this.$movePosY = $var1.$yCoord;
        $this.$movePosZ = $var1.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityAIMoveTowardsTarget_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$theEntity9.$navigator.$currentPath;
    var$2 = var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1;
    a: {
        if (!var$2) {
            b: {
                var$1 = $this.$targetEntity;
                if (!var$1.$isDead) {
                    var$1 = var$1.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$3 = jl_Integer_integerCache.data[134];
                    if (var$3 === null) {
                        var$1 = var$1.$elementData.data[0];
                        while (var$1 !== null && var$1.$key !== null) {
                            var$1 = var$1.$next3;
                        }
                    } else {
                        var$4 = var$3.$value;
                        var$5 = var$1.$elementData.data;
                        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
                        while (var$1 !== null) {
                            if (var$1.$origKeyHash == var$4) {
                                var$6 = var$1.$key;
                                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                                    break;
                            }
                            var$1 = var$1.$next3;
                        }
                    }
                    if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                        var$2 = 1;
                        break b;
                    }
                }
                var$2 = 0;
            }
            if (var$2) {
                var$1 = $this.$targetEntity;
                var$6 = $this.$theEntity9;
                var$7 = var$1.$posX - var$6.$posX;
                var$8 = var$1.$posY - var$6.$posY;
                var$9 = var$1.$posZ - var$6.$posZ;
                var$7 = var$7 * var$7 + var$8 * var$8 + var$9 * var$9;
                var$10 = $this.$maxTargetDistance;
                if (var$7 < var$10 * var$10) {
                    var$2 = 1;
                    break a;
                }
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EntityAIMoveTowardsTarget_resetTask = $this => {
    $this.$targetEntity = null;
},
nms_EntityAIMoveTowardsTarget_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity9.$navigator;
        var$2 = $this.$movePosX;
        var$3 = $this.$movePosY;
        var$4 = $this.$movePosZ;
        var$5 = $this.$speed3;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$8 = var$1.$theEntity;
        if (var$8.$onGround)
            var$9 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$8 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$8, var$10, var$9, var$6, var$11, var$13, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
};
function nms_EntityAILookAtVillager() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theGolem0 = null;
    a.$theVillager0 = null;
    a.$lookTime0 = 0;
}
let nms_EntityAILookAtVillager_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theGolem0;
        var$2 = var$1.$worldObj;
        if (!(var$2.$skylightSubtracted >= 4 ? 0 : 1))
            return 0;
        var$3 = var$1.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        while (true) {
            var$6 = var$5 % 8000 | 0;
            if (((var$5 - var$6 | 0) + 7999 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
        if (var$6)
            return 0;
        var$3 = $rt_cls(nms_EntityVillager);
        var$1 = var$1.$boundingBox0;
        var$7 = var$1.$minX0 - 6.0;
        var$8 = var$1.$minY0 - 2.0;
        var$9 = var$1.$minZ0 - 6.0;
        var$10 = var$1.$maxX0 + 6.0;
        var$11 = var$1.$maxY + 2.0;
        var$12 = var$1.$maxZ0 + 6.0;
        var$13 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$14 = var$13.$nextPoolIndex;
        var$1 = var$13.$listAABB;
        var$15 = var$1.$size0;
        var$16 = $rt_compare(var$14, var$15);
        if (var$16 >= 0) {
            var$17 = new nms_AxisAlignedBB;
            var$17.$minX0 = var$7;
            var$17.$minY0 = var$8;
            var$17.$minZ0 = var$9;
            var$17.$maxX0 = var$10;
            var$17.$maxY = var$11;
            var$17.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity(var$1, var$15 + 1 | 0);
            var$18 = var$1.$array.data;
            var$16 = var$1.$size0;
            var$1.$size0 = var$16 + 1 | 0;
            var$18[var$16] = var$17;
            var$1.$modCount = var$1.$modCount + 1 | 0;
        } else if (var$14 >= 0 && var$16 < 0) {
            var$17 = var$1.$array.data[var$14];
            var$17.$minX0 = var$7;
            var$17.$minY0 = var$8;
            var$17.$minZ0 = var$9;
            var$17.$maxX0 = var$10;
            var$17.$maxY = var$11;
            var$17.$maxZ0 = var$12;
        } else {
            var$3 = new jl_IndexOutOfBoundsException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$3);
            $rt_throw(var$3);
        }
        var$13.$nextPoolIndex = var$13.$nextPoolIndex + 1 | 0;
        var$1 = $this.$theGolem0;
        var$13 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$2, var$3, var$17, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        var$3 = null;
        var$10 = 1.7976931348623157E308;
        var$14 = 0;
        a: {
            while (true) {
                var$16 = $rt_compare(var$14, var$13.$size0);
                if (var$16 >= 0)
                    break;
                if (var$14 < 0)
                    break a;
                if (var$16 >= 0)
                    break a;
                var$2 = var$13.$array.data[var$14];
                if (var$2 !== var$1) {
                    var$11 = var$1.$posX - var$2.$posX;
                    var$12 = var$1.$posY - var$2.$posY;
                    var$7 = var$1.$posZ - var$2.$posZ;
                    var$11 = var$11 * var$11 + var$12 * var$12 + var$7 * var$7;
                    if (var$11 <= var$10) {
                        var$3 = var$2;
                        var$10 = var$11;
                    }
                }
                var$14 = var$14 + 1 | 0;
            }
            var$3 = var$3;
            $this.$theVillager0 = var$3;
            return var$3 === null ? 0 : 1;
        }
        var$3 = new jl_IndexOutOfBoundsException;
        var$3.$suppressionEnabled = 1;
        var$3.$writableStackTrace = 1;
        $rt_throw(var$3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityAILookAtVillager_continueExecuting = $this => {
    return $this.$lookTime0 <= 0 ? 0 : 1;
},
nms_EntityAILookAtVillager_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$lookTime0 = 400;
        var$1 = $this.$theGolem0;
        var$1.$holdRoseTick = 400;
        var$2 = var$1.$worldObj;
        var$3 = new nms_Packet38EntityStatus;
        var$4 = var$1.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$entityId0 = var$4;
        var$3.$entityStatus = 11;
        var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
        var$5 = var$1.$entityId;
        var$4 = var$5 ^ (var$5 >>> 20 | 0) ^ (var$5 >>> 12 | 0);
        var$6 = var$4 ^ (var$4 >>> 7 | 0) ^ (var$4 >>> 4 | 0);
        var$7 = var$2.$slots.data;
        var$1 = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while (var$1 !== null) {
                if (var$1.$hashEntry == var$5) {
                    var$1 = var$1.$valueEntry;
                    break a;
                }
                var$1 = var$1.$nextEntry0;
            }
            var$1 = null;
        }
        var$1 = var$1;
        if (var$1 !== null) {
            var$2 = var$1.$trackingPlayers.$backingMap;
            if (var$2.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = var$2;
                ju_AbstractSet__init_(var$8);
                var$2.$cachedKeySet = var$8;
            }
            var$8 = var$2.$cachedKeySet.$iterator();
            var$4 = var$3 instanceof nms_Packet3Chat;
            var$9 = var$3;
            while (var$8.$hasNext()) {
                b: {
                    var$2 = (var$8.$next()).$playerNetServerHandler;
                    if (var$4) {
                        var$10 = var$2.$playerEntity.$chatVisibility;
                        if (var$10 == 2)
                            break b;
                        if (var$10 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null)
                        jl_System_errCache = otcic_JSStderrPrintStream__init_();
                    jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                }
            }
            var$1 = var$1.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                c: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$4) {
                        var$4 = var$1.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break c;
                        if (var$4 == 1 && !var$9.$isServer)
                            break c;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$2);
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                }
        }
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$2 = jl_System_errCache;
            if (var$2 === null) {
                var$2 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$2;
            }
            var$2 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$2);
        }
        d: while (true) {
            while (true) {
                if (!var$8.$hasNext())
                    break d;
                var$2 = (var$8.$next()).$playerNetServerHandler;
                if (!var$4)
                    break;
                var$10 = var$2.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$2 = var$2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$2 = jl_System_errCache;
            if (var$2 === null) {
                var$2 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$2;
            }
            var$2 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$2);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            e: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$4) {
                    var$4 = var$1.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        break e;
                    if (var$4 == 1 && !var$9.$isServer)
                        break e;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_(var$2);
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$2);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityAILookAtVillager_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theGolem0;
        var$1.$holdRoseTick = 0;
        var$2 = var$1.$worldObj;
        var$3 = new nms_Packet38EntityStatus;
        var$4 = var$1.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$entityId0 = var$4;
        var$3.$entityStatus = 11;
        var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
        var$4 = var$1.$entityId;
        var$5 = var$4 ^ (var$4 >>> 20 | 0) ^ (var$4 >>> 12 | 0);
        var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$6 = var$2.$slots.data;
        var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
        a: {
            while (var$1 !== null) {
                if (var$1.$hashEntry == var$4) {
                    var$1 = var$1.$valueEntry;
                    break a;
                }
                var$1 = var$1.$nextEntry0;
            }
            var$1 = null;
        }
        var$1 = var$1;
        if (var$1 !== null) {
            var$2 = var$1.$trackingPlayers.$backingMap;
            if (var$2.$cachedKeySet === null) {
                var$7 = new ju_HashMap$1;
                var$7.$this$0 = var$2;
                ju_AbstractSet__init_(var$7);
                var$2.$cachedKeySet = var$7;
            }
            var$8 = var$2.$cachedKeySet.$iterator();
            var$4 = var$3 instanceof nms_Packet3Chat;
            var$7 = var$3;
            while (var$8.$hasNext()) {
                b: {
                    var$2 = (var$8.$next()).$playerNetServerHandler;
                    if (var$4) {
                        var$9 = var$2.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break b;
                        if (var$9 == 1 && !var$7.$isServer)
                            break b;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null)
                        jl_System_errCache = otcic_JSStderrPrintStream__init_();
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
            }
            var$1 = var$1.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                c: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$4) {
                        var$4 = var$1.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break c;
                        if (var$4 == 1 && !var$7.$isServer)
                            break c;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$2);
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                }
        }
        $this.$theVillager0 = null;
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$2, var$10);
        }
        d: while (true) {
            while (true) {
                if (!var$8.$hasNext())
                    break d;
                var$2 = (var$8.$next()).$playerNetServerHandler;
                if (!var$4)
                    break;
                var$9 = var$2.$playerEntity.$chatVisibility;
                if (var$9 == 2)
                    continue;
                if (var$9 != 1)
                    break;
                if (var$7.$isServer)
                    break;
            }
            try {
                var$2 = var$2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$2, var$10);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            e: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$4) {
                    var$4 = var$1.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        break e;
                    if (var$4 == 1 && !var$7.$isServer)
                        break e;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_(var$2);
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $this.$theVillager0 = null;
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$2);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $this.$theVillager0 = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityAILookAtVillager_updateTask = $this => {
    nms_EntityLookHelper_setLookPositionWithEntity($this.$theGolem0.$lookHelper, $this.$theVillager0, 30.0, 30.0);
    $this.$lookTime0 = $this.$lookTime0 - 1 | 0;
};
function nms_EntityAIDefendVillage() {
    let a = this; nms_EntityAITarget.call(a);
    a.$irongolem = null;
    a.$villageAgressorTarget = null;
}
let nms_EntityAIDefendVillage_shouldExecute = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$irongolem;
        $var1 = var$1.$villageObj1;
        if ($var1 === null)
            return 0;
        var$1 = nms_Village_findNearestVillageAggressor($var1, var$1);
        $this.$villageAgressorTarget = var$1;
        var$3 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAITarget_isSuitableTarget($this, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (var$3)
            return 1;
        var$1 = $this.$taskOwner.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$4;
        var$5 = Long_lo(Long_shru(var$4, 17));
        while (true) {
            var$6 = var$5 % 20 | 0;
            if (((var$5 - var$6 | 0) + 19 | 0) >= 0)
                break;
            var$4 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
        }
        if (var$6)
            return 0;
        var$1 = nms_Village_func_82685_c($var1, $this.$irongolem);
        $this.$villageAgressorTarget = var$1;
        var$3 = 0;
        $ptr = 2;
    case 2:
        $tmp = nms_EntityAITarget_isSuitableTarget($this, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityAIDefendVillage_startExecuting = $this => {
    $this.$irongolem.$attackTarget = $this.$villageAgressorTarget;
    $this.$targetSearchStatus = 0;
    $this.$targetSearchDelay = 0;
    $this.$field_75298_g = 0;
};
function nms_EntityItem() {
    let a = this; nms_Entity.call(a);
    a.$age = 0;
    a.$delayBeforeCanPickup = 0;
    a.$health = 0;
    a.$hoverStart = 0.0;
}
let nms_EntityItem__init_ = ($this, $par1World, $par2, $par4, $par6) => {
    let var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$health = 5;
        $this.$hoverStart = jl_Math_randomImpl() * 3.141592653589793 * 2.0;
        var$5 = 0.25;
        var$6 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $this.$yOffset = $this.$height0 / 2.0;
        nms_Entity_setPosition($this, $par2, $par4, $par6);
        $this.$rotationYaw = jl_Math_randomImpl() * 360.0;
        $this.$motionX = jl_Math_randomImpl() * 0.20000000298023224 - 0.10000000149011612;
        $this.$motionY = 0.20000000298023224;
        $this.$motionZ = jl_Math_randomImpl() * 0.20000000298023224 - 0.10000000149011612;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, var$5, var$6, $ptr);
},
nms_EntityItem__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_EntityItem();
    nms_EntityItem__init_(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_EntityItem_canTriggerWalking = $this => {
    return 0;
},
nms_EntityItem_entityInit = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$dataWatcher;
    var$2 = new nms_WatchableObject;
    var$3 = null;
    var$2.$dataValueId = 10;
    var$2.$watchedObject = var$3;
    var$2.$objectType = 5;
    var$2.$watched = 1;
    var$3 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$3, jl_Integer_integerCache.data[138], var$2);
    var$1.$isBlank = 0;
},
nms_EntityItem_onUpdate = $this => {
    let $var1, var$2, var$3, var$4, var$5, $var3, $var2, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$delayBeforeCanPickup;
        if ($var1 > 0)
            $this.$delayBeforeCanPickup = $var1 - 1 | 0;
        var$2 = $this.$posX;
        $this.$prevPosX = var$2;
        $this.$prevPosY = $this.$posY;
        var$3 = $this.$posZ;
        $this.$prevPosZ = var$3;
        $this.$motionY = $this.$motionY - 0.03999999910593033;
        var$4 = $this.$boundingBox0;
        var$5 = (var$4.$minY0 + var$4.$maxY) / 2.0;
        $ptr = 2;
    case 2:
        $tmp = nms_Entity_pushOutOfBlocks($this, var$2, var$5, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $this.$noClip = $var1;
        var$5 = $this.$motionX;
        var$2 = $this.$motionY;
        var$3 = $this.$motionZ;
        $ptr = 3;
    case 3:
        nms_Entity_moveEntity($this, var$5, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$prevPosX | 0;
        var$5 = $this.$posX;
        $var3 = var$5 | 0;
        $var1 = $var1 == $var3 && ($this.$prevPosY | 0) == ($this.$posY | 0) && ($this.$prevPosZ | 0) == ($this.$posZ | 0) ? 0 : 1;
        if (!$var1 && ($this.$ticksExisted % 25 | 0)) {
            $var2 = 0.9800000190734863;
            if (!$this.$onGround) {
                var$5 = $this.$motionX;
                var$2 = $var2;
                $this.$motionX = var$5 * var$2;
                var$5 = $this.$motionY * 0.9800000190734863;
                $this.$motionY = var$5;
                $this.$motionZ = $this.$motionZ * var$2;
                if ($this.$onGround)
                    $this.$motionY = var$5 * (-0.5);
                $var1 = $this.$age + 1 | 0;
                $this.$age = $var1;
                if (!$this.$worldObj.$isRemote && $var1 >= 6000)
                    $this.$isDead = 1;
                return;
            }
            $var2 = 0.5880000591278076;
            var$4 = $this.$worldObj;
            var$5 = $this.$posX;
            var$8 = var$5 | 0;
            if (var$5 < var$8)
                var$8 = var$8 - 1 | 0;
            var$5 = $this.$boundingBox0.$minY0;
            $var3 = var$5 | 0;
            if (var$5 < $var3)
                $var3 = $var3 - 1 | 0;
            $var1 = $var3 - 1 | 0;
            var$5 = $this.$posZ;
            var$9 = var$5 | 0;
            if (var$5 < var$9)
                var$9 = var$9 - 1 | 0;
            $ptr = 5;
            continue main;
        }
        var$4 = $this.$worldObj;
        if (var$5 < $var3)
            $var3 = $var3 - 1 | 0;
        var$5 = $this.$posY;
        var$8 = var$5 | 0;
        if (var$5 < var$8)
            var$8 = var$8 - 1 | 0;
        var$5 = $this.$posZ;
        var$9 = var$5 | 0;
        if (var$5 < var$9)
            var$9 = var$9 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId(var$4, $var3, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if (!$var1) {
            nms_Material_$callClinit();
            var$10 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$10 = nms_Block_blocksList.data[$var1].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$10 === nms_Material_lava) {
            $this.$motionY = 0.20000000298023224;
            var$4 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul(var$4.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            $this.$motionX = (var$12 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
            var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$11;
            $this.$motionZ = (var$12 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224;
            var$10 = $rt_s(1251);
            $var2 = 0.4000000059604645;
            var$13 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$4.$seed = var$13;
            var$14 = 2.0 + Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 0.4000000059604645;
            var$4 = $this.$worldObj;
            $ptr = 6;
            continue main;
        }
        var$4 = $this.$worldObj;
        if (!var$4.$isRemote) {
            var$10 = $rt_cls(nms_EntityItem);
            var$15 = $this.$boundingBox0;
            var$16 = var$15.$minX0 - 0.5;
            var$17 = var$15.$minY0 - 0.0;
            var$18 = var$15.$minZ0 - 0.5;
            var$5 = var$15.$maxX0 + 0.5;
            var$2 = var$15.$maxY + 0.0;
            var$3 = var$15.$maxZ0 + 0.5;
            var$19 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var1 = var$19.$nextPoolIndex;
            var$15 = var$19.$listAABB;
            var$9 = var$15.$size0;
            $var3 = $rt_compare($var1, var$9);
            if ($var3 >= 0) {
                var$20 = new nms_AxisAlignedBB;
                var$20.$minX0 = var$16;
                var$20.$minY0 = var$17;
                var$20.$minZ0 = var$18;
                var$20.$maxX0 = var$5;
                var$20.$maxY = var$2;
                var$20.$maxZ0 = var$3;
                ju_ArrayList_ensureCapacity(var$15, var$9 + 1 | 0);
                var$21 = var$15.$array.data;
                $var3 = var$15.$size0;
                var$15.$size0 = $var3 + 1 | 0;
                var$21[$var3] = var$20;
                var$15.$modCount = var$15.$modCount + 1 | 0;
            } else if ($var1 >= 0 && $var3 < 0) {
                var$20 = var$15.$array.data[$var1];
                var$20.$minX0 = var$16;
                var$20.$minY0 = var$17;
                var$20.$minZ0 = var$18;
                var$20.$maxX0 = var$5;
                var$20.$maxY = var$2;
                var$20.$maxZ0 = var$3;
            } else {
                var$4 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$4);
                $rt_throw(var$4);
            }
            var$19.$nextPoolIndex = var$19.$nextPoolIndex + 1 | 0;
            var$15 = null;
            $ptr = 7;
            continue main;
        }
        $var2 = 0.9800000190734863;
        if (!$this.$onGround) {
            var$5 = $this.$motionX;
            var$2 = $var2;
            $this.$motionX = var$5 * var$2;
            var$5 = $this.$motionY * 0.9800000190734863;
            $this.$motionY = var$5;
            $this.$motionZ = $this.$motionZ * var$2;
            if ($this.$onGround)
                $this.$motionY = var$5 * (-0.5);
            $var1 = $this.$age + 1 | 0;
            $this.$age = $var1;
            if (!$this.$worldObj.$isRemote && $var1 >= 6000)
                $this.$isDead = 1;
            return;
        }
        $var2 = 0.5880000591278076;
        var$4 = $this.$worldObj;
        var$5 = $this.$posX;
        var$8 = var$5 | 0;
        if (var$5 < var$8)
            var$8 = var$8 - 1 | 0;
        var$5 = $this.$boundingBox0.$minY0;
        $var3 = var$5 | 0;
        if (var$5 < $var3)
            $var3 = $var3 - 1 | 0;
        $var1 = $var3 - 1 | 0;
        var$5 = $this.$posZ;
        var$9 = var$5 | 0;
        if (var$5 < var$9)
            var$9 = var$9 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId(var$4, var$8, $var1, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 > 0) {
            nms_Block_$callClinit();
            $var2 = nms_Block_blocksList.data[$var3].$slipperiness * 0.9800000190734863;
        }
        var$5 = $this.$motionX;
        var$2 = $var2;
        $this.$motionX = var$5 * var$2;
        var$5 = $this.$motionY * 0.9800000190734863;
        $this.$motionY = var$5;
        $this.$motionZ = $this.$motionZ * var$2;
        if ($this.$onGround)
            $this.$motionY = var$5 * (-0.5);
        $var1 = $this.$age + 1 | 0;
        $this.$age = $var1;
        if (!$this.$worldObj.$isRemote && $var1 >= 6000)
            $this.$isDead = 1;
        return;
    case 6:
        nms_World_playSoundAtEntity(var$4, $this, var$10, $var2, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$worldObj;
        if (!var$4.$isRemote) {
            var$10 = $rt_cls(nms_EntityItem);
            var$15 = $this.$boundingBox0;
            var$16 = var$15.$minX0 - 0.5;
            var$17 = var$15.$minY0 - 0.0;
            var$18 = var$15.$minZ0 - 0.5;
            var$5 = var$15.$maxX0 + 0.5;
            var$2 = var$15.$maxY + 0.0;
            var$3 = var$15.$maxZ0 + 0.5;
            var$19 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var1 = var$19.$nextPoolIndex;
            var$15 = var$19.$listAABB;
            var$9 = var$15.$size0;
            $var3 = $rt_compare($var1, var$9);
            if ($var3 >= 0) {
                var$20 = new nms_AxisAlignedBB;
                var$20.$minX0 = var$16;
                var$20.$minY0 = var$17;
                var$20.$minZ0 = var$18;
                var$20.$maxX0 = var$5;
                var$20.$maxY = var$2;
                var$20.$maxZ0 = var$3;
                ju_ArrayList_ensureCapacity(var$15, var$9 + 1 | 0);
                var$21 = var$15.$array.data;
                $var3 = var$15.$size0;
                var$15.$size0 = $var3 + 1 | 0;
                var$21[$var3] = var$20;
                var$15.$modCount = var$15.$modCount + 1 | 0;
            } else if ($var1 >= 0 && $var3 < 0) {
                var$20 = var$15.$array.data[$var1];
                var$20.$minX0 = var$16;
                var$20.$minY0 = var$17;
                var$20.$minZ0 = var$18;
                var$20.$maxX0 = var$5;
                var$20.$maxY = var$2;
                var$20.$maxZ0 = var$3;
            } else {
                var$4 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_(var$4);
                $rt_throw(var$4);
            }
            var$19.$nextPoolIndex = var$19.$nextPoolIndex + 1 | 0;
            var$15 = null;
            $ptr = 7;
            continue main;
        }
        $var2 = 0.9800000190734863;
        if (!$this.$onGround) {
            var$5 = $this.$motionX;
            var$2 = $var2;
            $this.$motionX = var$5 * var$2;
            var$5 = $this.$motionY * 0.9800000190734863;
            $this.$motionY = var$5;
            $this.$motionZ = $this.$motionZ * var$2;
            if ($this.$onGround)
                $this.$motionY = var$5 * (-0.5);
            $var1 = $this.$age + 1 | 0;
            $this.$age = $var1;
            if (!$this.$worldObj.$isRemote && $var1 >= 6000)
                $this.$isDead = 1;
            return;
        }
        $var2 = 0.5880000591278076;
        var$4 = $this.$worldObj;
        var$5 = $this.$posX;
        var$8 = var$5 | 0;
        if (var$5 < var$8)
            var$8 = var$8 - 1 | 0;
        var$5 = $this.$boundingBox0.$minY0;
        $var3 = var$5 | 0;
        if (var$5 < $var3)
            $var3 = $var3 - 1 | 0;
        $var1 = $var3 - 1 | 0;
        var$5 = $this.$posZ;
        var$9 = var$5 | 0;
        if (var$5 < var$9)
            var$9 = var$9 - 1 | 0;
        $ptr = 5;
        continue main;
    case 7:
        $tmp = nms_World_selectEntitiesWithinAABB(var$4, var$10, var$20, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        var$8 = 0;
        $var3 = var$10.$modCount;
        var$9 = var$10.$size();
        while (true) {
            if (!(var$8 >= var$9 ? 0 : 1)) {
                $var2 = 0.9800000190734863;
                if (!$this.$onGround) {
                    var$5 = $this.$motionX;
                    var$2 = $var2;
                    $this.$motionX = var$5 * var$2;
                    var$5 = $this.$motionY * 0.9800000190734863;
                    $this.$motionY = var$5;
                    $this.$motionZ = $this.$motionZ * var$2;
                    if ($this.$onGround)
                        $this.$motionY = var$5 * (-0.5);
                    $var1 = $this.$age + 1 | 0;
                    $this.$age = $var1;
                    if (!$this.$worldObj.$isRemote && $var1 >= 6000)
                        $this.$isDead = 1;
                    return;
                }
                $var2 = 0.5880000591278076;
                var$4 = $this.$worldObj;
                var$5 = $this.$posX;
                var$8 = var$5 | 0;
                if (var$5 < var$8)
                    var$8 = var$8 - 1 | 0;
                var$5 = $this.$boundingBox0.$minY0;
                $var3 = var$5 | 0;
                if (var$5 < $var3)
                    $var3 = $var3 - 1 | 0;
                $var1 = $var3 - 1 | 0;
                var$5 = $this.$posZ;
                var$9 = var$5 | 0;
                if (var$5 < var$9)
                    var$9 = var$9 - 1 | 0;
                $ptr = 5;
                continue main;
            }
            if ($var3 < var$10.$modCount)
                break;
            $var1 = var$8 + 1 | 0;
            nms_EntityItem_combineItems($this, var$10.$get(var$8));
            var$8 = $var1;
        }
        var$4 = new ju_ConcurrentModificationException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, $var3, $var2, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityItem_combineItems = ($this, $par1EntityItem) => {
    let var$2, $var2, $var3, var$5, var$6, var$7, var$8, var$9, var$10;
    if ($par1EntityItem === $this)
        return 0;
    var$2 = $par1EntityItem.$isDead ? 0 : 1;
    if (var$2 && ($this.$isDead ? 0 : 1)) {
        $var2 = nms_EntityItem_getEntityItem($this);
        $var3 = nms_EntityItem_getEntityItem($par1EntityItem);
        nms_Item_$callClinit();
        var$5 = nms_Item_itemsList.data;
        if (var$5[$var3.$itemID] !== var$5[$var2.$itemID])
            return 0;
        var$6 = $var3.$stackTagCompound;
        var$7 = var$6 === null ? 0 : 1;
        var$8 = $var2.$stackTagCompound;
        if (var$7 ^ (var$8 === null ? 0 : 1))
            return 0;
        if (var$6 === null ? 0 : 1) {
            if (!nms_NBTBase_equals(var$6, var$8))
                var$2 = 0;
            else {
                var$8 = var$8;
                var$6 = var$6.$tagMap;
                var$9 = new ju_HashMap$HashMapEntrySet;
                var$9.$associatedMap0 = var$6;
                var$8 = var$8.$tagMap;
                var$6 = new ju_HashMap$HashMapEntrySet;
                var$6.$associatedMap0 = var$8;
                var$2 = ju_AbstractSet_equals(var$9, var$6);
            }
            if (!var$2)
                return 0;
        }
        var$5 = nms_Item_itemsList.data;
        var$10 = $var3.$itemID;
        if (var$5[var$10].$hasSubtypes && $var3.$itemDamage != $var2.$itemDamage)
            return 0;
        var$2 = $var3.$stackSize;
        var$7 = $var2.$stackSize;
        if (var$2 < var$7)
            return nms_EntityItem_combineItems($par1EntityItem, $this);
        var$7 = var$2 + var$7 | 0;
        if (var$7 > var$5[var$10].$maxStackSize)
            return 0;
        $var3.$stackSize = var$7;
        var$7 = $par1EntityItem.$delayBeforeCanPickup;
        var$10 = $this.$delayBeforeCanPickup;
        if (var$7 > var$10)
            var$10 = var$7;
        $par1EntityItem.$delayBeforeCanPickup = var$10;
        var$7 = $par1EntityItem.$age;
        var$10 = $this.$age;
        if (var$7 < var$10)
            var$10 = var$7;
        $par1EntityItem.$age = var$10;
        var$6 = $par1EntityItem.$dataWatcher;
        $var2 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[138];
        if (var$8 === null) {
            var$9 = $var2.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        } else {
            var$7 = var$8.$value;
            var$5 = $var2.$elementData.data;
            var$9 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$7) {
                    $var2 = var$9.$key;
                    if (var$8 !== $var2 && !(var$8 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$9 = var$9.$next3;
            }
        }
        var$8 = var$9 === null ? null : var$9.$value0;
        if (!($var3 !== var$8.$watchedObject ? 0 : 1)) {
            var$8.$watchedObject = $var3;
            var$8.$watched = 1;
            var$6.$objectChanged = 1;
        }
        $var2 = $par1EntityItem.$dataWatcher;
        $par1EntityItem = $var2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[138];
        if (var$8 === null) {
            $par1EntityItem = $par1EntityItem.$elementData.data[0];
            while ($par1EntityItem !== null && $par1EntityItem.$key !== null) {
                $par1EntityItem = $par1EntityItem.$next3;
            }
        } else {
            var$10 = var$8.$value;
            var$5 = $par1EntityItem.$elementData.data;
            $par1EntityItem = var$5[var$10 & (var$5.length - 1 | 0)];
            while ($par1EntityItem !== null) {
                if ($par1EntityItem.$origKeyHash == var$10) {
                    $var3 = $par1EntityItem.$key;
                    if (var$8 !== $var3 && !(var$8 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1EntityItem = $par1EntityItem.$next3;
            }
        }
        ($par1EntityItem === null ? null : $par1EntityItem.$value0).$watched = 1;
        $var2.$objectChanged = 1;
        $this.$isDead = 1;
        return 1;
    }
    return 0;
},
nms_EntityItem_handleWaterMovement = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        nms_Material_$callClinit();
        var$3 = nms_Material_water;
        $ptr = 1;
    case 1:
        $tmp = nms_World_handleMaterialAcceleration(var$1, var$2, var$3, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityItem_dealFireDamage = ($this, $par1) => {
    nms_EntityItem_attackEntityFrom($this, nms_DamageSource_inFire, $par1);
},
nms_EntityItem_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3;
    if ($this.$invulnerable)
        return 0;
    if (nms_EntityItem_getEntityItem($this) !== null) {
        var$3 = (nms_EntityItem_getEntityItem($this)).$itemID;
        nms_Item_$callClinit();
        if (var$3 == nms_Item_netherStar.$itemID0 && $par1DamageSource.$explosion)
            return 0;
    }
    $this.$velocityChanged = 1;
    var$3 = $this.$health - $par2 | 0;
    $this.$health = var$3;
    if (var$3 <= 0)
        $this.$isDead = 1;
    return 0;
},
nms_EntityItem_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$2 = $this.$health << 24 >> 24 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(1986);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(1986), var$4);
    var$2 = $this.$age << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2201);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2201), var$4);
    if (nms_EntityItem_getEntityItem($this) !== null) {
        var$5 = nms_EntityItem_getEntityItem($this);
        var$4 = new nms_NBTTagCompound;
        var$4.$name = $rt_s(3);
        var$6 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        var$6.$elementCount = 0;
        var$7 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$8 = var$7.data;
        var$6.$elementData = var$7;
        var$6.$loadFactor = 0.75;
        var$6.$threshold = var$8.length * 0.75 | 0;
        var$4.$tagMap = var$6;
        var$2 = var$5.$itemID << 16 >> 16;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(914);
        var$3.$data2 = var$2;
        ju_HashMap_putImpl(var$6, $rt_s(914), var$3);
        var$2 = var$5.$stackSize << 24 >> 24;
        var$9 = var$4.$tagMap;
        var$6 = new nms_NBTTagByte;
        var$6.$name = $rt_s(915);
        var$6.$data0 = var$2;
        ju_HashMap_putImpl(var$9, $rt_s(915), var$6);
        var$2 = var$5.$itemDamage << 16 >> 16;
        var$9 = var$4.$tagMap;
        var$6 = new nms_NBTTagShort;
        var$6.$name = $rt_s(916);
        var$6.$data2 = var$2;
        ju_HashMap_putImpl(var$9, $rt_s(916), var$6);
        var$3 = var$5.$stackTagCompound;
        if (var$3 !== null) {
            var$9 = var$4.$tagMap;
            var$3.$name = $rt_s(917);
            ju_HashMap_putImpl(var$9, $rt_s(917), var$3);
        }
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        var$4.$name = $rt_s(1343);
        ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(1343), var$4);
    }
},
nms_EntityItem_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1986).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1986).$nativeString.length)
                    break a;
                $rt_s(1986).$hashCode1 = (31 * $rt_s(1986).$hashCode1 | 0) + $rt_s(1986).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(1986).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$3) {
            b: {
                var$5 = $var2.$key;
                if ($rt_s(1986) !== var$5) {
                    if ($rt_s(1986) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$6 = $rt_s(1986).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$6 = 0;
                    } else
                        var$6 = 1;
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        var$6 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1986) !== null) {
            c: {
                if (!$rt_s(1986).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1986).$nativeString.length)
                            break c;
                        $rt_s(1986).$hashCode1 = (31 * $rt_s(1986).$hashCode1 | 0) + $rt_s(1986).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(1986).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$3) {
                    d: {
                        var$5 = $var2.$key;
                        if ($rt_s(1986) !== var$5) {
                            if ($rt_s(1986) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$6 = $rt_s(1986).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$6 = 0;
                            } else
                                var$6 = 1;
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        var$6 = ($var2 === null ? null : $var2.$value0).$data2;
    }
    e: {
        $this.$health = var$6 & 255;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2201).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2201).$nativeString.length)
                    break e;
                $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2201).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$3) {
            f: {
                var$5 = $var2.$key;
                if ($rt_s(2201) !== var$5) {
                    if ($rt_s(2201) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2201).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break f;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2201) !== null) {
            g: {
                if (!$rt_s(2201).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2201).$nativeString.length)
                            break g;
                        $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2201).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$3) {
                    h: {
                        var$5 = $var2.$key;
                        if ($rt_s(2201) !== var$5) {
                            if ($rt_s(2201) !== var$5) {
                                if (!(var$5 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    var$5 = var$5;
                                    var$6 = $rt_s(2201).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                            } else
                                var$6 = 1;
                            if (!var$6) {
                                var$6 = 0;
                                break h;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        } else {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        }
        var$3 = ($var2 === null ? null : $var2.$value0).$data2;
    }
    i: {
        $this.$age = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1343).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1343).$nativeString.length)
                    break i;
                $rt_s(1343).$hashCode1 = (31 * $rt_s(1343).$hashCode1 | 0) + $rt_s(1343).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(1343).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            j: {
                var$5 = $var2.$key;
                if ($rt_s(1343) !== var$5) {
                    if ($rt_s(1343) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(1343).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagCompound;
        if ($rt_s(1343) !== null)
            $var2.$name = $rt_s(1343);
        else
            $var2.$name = $rt_s(3);
        $par1NBTTagCompound = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        $par1NBTTagCompound.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$4 = var$8.data;
        $par1NBTTagCompound.$elementData = var$8;
        $par1NBTTagCompound.$loadFactor = 0.75;
        $par1NBTTagCompound.$threshold = var$4.length * 0.75 | 0;
        $var2.$tagMap = $par1NBTTagCompound;
    } else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1343) === null) {
            var$5 = $par1NBTTagCompound.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            k: {
                if (!$rt_s(1343).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(1343).$nativeString.length)
                            break k;
                        $rt_s(1343).$hashCode1 = (31 * $rt_s(1343).$hashCode1 | 0) + $rt_s(1343).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(1343).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            var$5 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$6) {
                    l: {
                        $par1NBTTagCompound = var$5.$key;
                        if ($rt_s(1343) !== $par1NBTTagCompound) {
                            if ($rt_s(1343) === $par1NBTTagCompound)
                                var$3 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                var$3 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                var$3 = $rt_s(1343).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        $var2 = var$5 === null ? null : var$5.$value0;
    }
    nms_ItemStack_$callClinit();
    var$5 = new nms_ItemStack;
    nms_ItemStack_readFromNBT(var$5, $var2);
    nms_Item_$callClinit();
    if (nms_Item_itemsList.data[var$5.$itemID] === null)
        var$5 = null;
    var$9 = $this.$dataWatcher;
    $par1NBTTagCompound = var$9.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$10 = jl_Integer_integerCache.data[138];
    if (var$10 === null) {
        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    } else {
        var$7 = var$10.$value;
        var$4 = $par1NBTTagCompound.$elementData.data;
        $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($par1NBTTagCompound !== null) {
            if ($par1NBTTagCompound.$origKeyHash == var$7) {
                $var2 = $par1NBTTagCompound.$key;
                if (var$10 !== $var2 && !(var$10 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    }
    $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
    if (!(var$5 !== $par1NBTTagCompound.$watchedObject ? 0 : 1)) {
        $par1NBTTagCompound.$watchedObject = var$5;
        $par1NBTTagCompound.$watched = 1;
        var$9.$objectChanged = 1;
    }
    var$9 = $this.$dataWatcher;
    $par1NBTTagCompound = var$9.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$5 = jl_Integer_integerCache.data[138];
    if (var$5 === null) {
        $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
        while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    } else {
        var$7 = var$5.$value;
        var$4 = $par1NBTTagCompound.$elementData.data;
        $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($par1NBTTagCompound !== null) {
            if ($par1NBTTagCompound.$origKeyHash == var$7) {
                $var2 = $par1NBTTagCompound.$key;
                if (var$5 !== $var2 && !(var$5 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$7 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par1NBTTagCompound = $par1NBTTagCompound.$next3;
        }
    }
    ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$watched = 1;
    var$9.$objectChanged = 1;
    if (nms_EntityItem_getEntityItem($this) === null)
        $this.$isDead = 1;
},
nms_EntityItem_onCollideWithPlayer = ($this, $par1EntityPlayer) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote) {
            $var2 = nms_EntityItem_getEntityItem($this);
            $var3 = $var2.$stackSize;
            if (!$this.$delayBeforeCanPickup && nms_InventoryPlayer_addItemStackToInventory($par1EntityPlayer.$inventory0, $var2)) {
                var$4 = $var2.$itemID;
                nms_Block_$callClinit();
                if (var$4 == nms_Block_wood.$blockID) {
                    nms_AchievementList_$callClinit();
                    var$5 = nms_AchievementList_mineWood;
                    if (var$5 !== null && !var$5.$isIndependent)
                        a: {
                            var$6 = $par1EntityPlayer.$playerNetServerHandler;
                            var$7 = new nms_Packet200Statistic;
                            var$8 = var$5.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$7.$statisticId = var$8;
                            var$7.$amount = 1;
                            if (var$7 instanceof nms_Packet3Chat) {
                                var$5 = var$7;
                                var$8 = var$6.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break a;
                                if (var$8 == 1 && !var$5.$isServer)
                                    break a;
                            }
                            try {
                                var$6 = var$6.$netManager;
                                $ptr = 4;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                        }
                }
                var$4 = $var2.$itemID;
                nms_Item_$callClinit();
                if (var$4 == nms_Item_leather.$itemID0) {
                    nms_AchievementList_$callClinit();
                    var$5 = nms_AchievementList_killCow;
                    if (var$5 !== null && !var$5.$isIndependent)
                        b: {
                            var$6 = $par1EntityPlayer.$playerNetServerHandler;
                            var$7 = new nms_Packet200Statistic;
                            var$8 = var$5.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$7.$statisticId = var$8;
                            var$7.$amount = 1;
                            if (var$7 instanceof nms_Packet3Chat) {
                                var$5 = var$7;
                                var$8 = var$6.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break b;
                                if (var$8 == 1 && !var$5.$isServer)
                                    break b;
                            }
                            try {
                                var$6 = var$6.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                        }
                }
                if ($var2.$itemID == nms_Item_diamond.$itemID0) {
                    nms_AchievementList_$callClinit();
                    var$7 = nms_AchievementList_diamonds;
                    if (var$7 !== null && !var$7.$isIndependent)
                        c: {
                            var$5 = $par1EntityPlayer.$playerNetServerHandler;
                            var$6 = new nms_Packet200Statistic;
                            var$8 = var$7.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$6.$statisticId = var$8;
                            var$6.$amount = 1;
                            if (var$6 instanceof nms_Packet3Chat) {
                                var$7 = var$6;
                                var$4 = var$5.$playerEntity.$chatVisibility;
                                if (var$4 == 2)
                                    break c;
                                if (var$4 == 1 && !var$7.$isServer)
                                    break c;
                            }
                            try {
                                var$7 = var$5.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$5 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$7 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$7;
                            }
                            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                        }
                }
                if ($var2.$itemID == nms_Item_blazeRod.$itemID0) {
                    nms_AchievementList_$callClinit();
                    var$7 = nms_AchievementList_blazeRod;
                    if (var$7 !== null && !var$7.$isIndependent)
                        d: {
                            var$5 = $par1EntityPlayer.$playerNetServerHandler;
                            var$6 = new nms_Packet200Statistic;
                            var$8 = var$7.$statId;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$6.$statisticId = var$8;
                            var$6.$amount = 1;
                            if (var$6 instanceof nms_Packet3Chat) {
                                var$7 = var$6;
                                var$8 = var$5.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break d;
                                if (var$8 == 1 && !var$7.$isServer)
                                    break d;
                            }
                            try {
                                var$7 = var$5.$netManager;
                                $ptr = 7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                        }
                }
                var$6 = $rt_s(2503);
                var$9 = 0.20000000298023224;
                var$7 = $this.$rand;
                var$10 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
                var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$7.$seed = var$12;
                var$13 = ((var$11 - Long_lo(Long_shru(var$12, 24)) / 1.6777216E7) * 0.699999988079071 + 1.0) * 2.0;
                var$7 = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$7, $this, var$6, var$9, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        nms_EntityLivingBase_onItemPickup($par1EntityPlayer, $this, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayer = $par1EntityPlayer.$openContainer;
        $ptr = 3;
    case 3:
        $par1EntityPlayer.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        if ($var2.$stackSize <= 0)
            $this.$isDead = 1;
        return;
    case 4:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
        }
        var$4 = $var2.$itemID;
        nms_Item_$callClinit();
        if (var$4 == nms_Item_leather.$itemID0) {
            nms_AchievementList_$callClinit();
            var$5 = nms_AchievementList_killCow;
            if (var$5 !== null && !var$5.$isIndependent)
                f: {
                    var$6 = $par1EntityPlayer.$playerNetServerHandler;
                    var$7 = new nms_Packet200Statistic;
                    var$8 = var$5.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$7.$statisticId = var$8;
                    var$7.$amount = 1;
                    if (var$7 instanceof nms_Packet3Chat) {
                        var$5 = var$7;
                        var$8 = var$6.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break f;
                        if (var$8 == 1 && !var$5.$isServer)
                            break f;
                    }
                    try {
                        var$6 = var$6.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                }
        }
        if ($var2.$itemID == nms_Item_diamond.$itemID0) {
            nms_AchievementList_$callClinit();
            var$7 = nms_AchievementList_diamonds;
            if (var$7 !== null && !var$7.$isIndependent)
                g: {
                    var$5 = $par1EntityPlayer.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$8 = var$7.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$8;
                    var$6.$amount = 1;
                    if (var$6 instanceof nms_Packet3Chat) {
                        var$7 = var$6;
                        var$4 = var$5.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break g;
                        if (var$4 == 1 && !var$7.$isServer)
                            break g;
                    }
                    try {
                        var$7 = var$5.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$5 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                }
        }
        if ($var2.$itemID == nms_Item_blazeRod.$itemID0) {
            nms_AchievementList_$callClinit();
            var$7 = nms_AchievementList_blazeRod;
            if (var$7 !== null && !var$7.$isIndependent)
                h: {
                    var$5 = $par1EntityPlayer.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$8 = var$7.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$8;
                    var$6.$amount = 1;
                    if (var$6 instanceof nms_Packet3Chat) {
                        var$7 = var$6;
                        var$8 = var$5.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break h;
                        if (var$8 == 1 && !var$7.$isServer)
                            break h;
                    }
                    try {
                        var$7 = var$5.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                }
        }
        var$6 = $rt_s(2503);
        var$9 = 0.20000000298023224;
        var$7 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$12;
        var$13 = ((var$11 - Long_lo(Long_shru(var$12, 24)) / 1.6777216E7) * 0.699999988079071 + 1.0) * 2.0;
        var$7 = $this.$worldObj;
        $ptr = 1;
        continue main;
    case 5:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
        }
        if ($var2.$itemID == nms_Item_diamond.$itemID0) {
            nms_AchievementList_$callClinit();
            var$7 = nms_AchievementList_diamonds;
            if (var$7 !== null && !var$7.$isIndependent)
                f: {
                    var$5 = $par1EntityPlayer.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$8 = var$7.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$8;
                    var$6.$amount = 1;
                    if (var$6 instanceof nms_Packet3Chat) {
                        var$7 = var$6;
                        var$4 = var$5.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break f;
                        if (var$4 == 1 && !var$7.$isServer)
                            break f;
                    }
                    try {
                        var$7 = var$5.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$5 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                }
        }
        if ($var2.$itemID == nms_Item_blazeRod.$itemID0) {
            nms_AchievementList_$callClinit();
            var$7 = nms_AchievementList_blazeRod;
            if (var$7 !== null && !var$7.$isIndependent)
                g: {
                    var$5 = $par1EntityPlayer.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$8 = var$7.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$8;
                    var$6.$amount = 1;
                    if (var$6 instanceof nms_Packet3Chat) {
                        var$7 = var$6;
                        var$8 = var$5.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break g;
                        if (var$8 == 1 && !var$7.$isServer)
                            break g;
                    }
                    try {
                        var$7 = var$5.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                }
        }
        var$6 = $rt_s(2503);
        var$9 = 0.20000000298023224;
        var$7 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$12;
        var$13 = ((var$11 - Long_lo(Long_shru(var$12, 24)) / 1.6777216E7) * 0.699999988079071 + 1.0) * 2.0;
        var$7 = $this.$worldObj;
        $ptr = 1;
        continue main;
    case 6:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        if ($var2.$itemID == nms_Item_blazeRod.$itemID0) {
            nms_AchievementList_$callClinit();
            var$7 = nms_AchievementList_blazeRod;
            if (var$7 !== null && !var$7.$isIndependent)
                f: {
                    var$5 = $par1EntityPlayer.$playerNetServerHandler;
                    var$6 = new nms_Packet200Statistic;
                    var$8 = var$7.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$statisticId = var$8;
                    var$6.$amount = 1;
                    if (var$6 instanceof nms_Packet3Chat) {
                        var$7 = var$6;
                        var$8 = var$5.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break f;
                        if (var$8 == 1 && !var$7.$isServer)
                            break f;
                    }
                    try {
                        var$7 = var$5.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$7 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                }
        }
        var$6 = $rt_s(2503);
        var$9 = 0.20000000298023224;
        var$7 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$12;
        var$13 = ((var$11 - Long_lo(Long_shru(var$12, 24)) / 1.6777216E7) * 0.699999988079071 + 1.0) * 2.0;
        var$7 = $this.$worldObj;
        $ptr = 1;
        continue main;
    case 7:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$6, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
        }
        var$6 = $rt_s(2503);
        var$9 = 0.20000000298023224;
        var$7 = $this.$rand;
        var$10 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 24)) / 1.6777216E7;
        var$12 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$12;
        var$13 = ((var$11 - Long_lo(Long_shru(var$12, 24)) / 1.6777216E7) * 0.699999988079071 + 1.0) * 2.0;
        var$7 = $this.$worldObj;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityItem_getEntityName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = nms_EntityItem_getEntityItem($this);
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data[var$1.$itemID].$getUnlocalizedName(var$1);
    var$1 = new jl_StringBuilder;
    var$1.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$1, var$1.$length0, $rt_s(399));
    var$3 = var$1.$length0;
    if (var$2 === null)
        var$2 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$1, var$3, var$2);
    var$4 = new jl_String;
    var$5 = var$1.$buffer;
    var$6 = var$5.data;
    var$7 = var$1.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        nms_StatCollector_$callClinit();
        return nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$4);
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EntityItem_canAttackWithItem = $this => {
    return 0;
},
nms_EntityItem_travelToDimension = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_travelToDimension($this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$worldObj;
        if (var$2.$isRemote)
            return;
        var$3 = $rt_cls(nms_EntityItem);
        var$4 = $this.$boundingBox0;
        var$5 = var$4.$minX0 - 0.5;
        var$6 = var$4.$minY0 - 0.0;
        var$7 = var$4.$minZ0 - 0.5;
        var$8 = var$4.$maxX0 + 0.5;
        var$9 = var$4.$maxY + 0.0;
        var$10 = var$4.$maxZ0 + 0.5;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$12 = var$11.$nextPoolIndex;
        var$4 = var$11.$listAABB;
        $par1 = var$4.$size0;
        var$13 = $rt_compare(var$12, $par1);
        if (var$13 >= 0) {
            var$14 = new nms_AxisAlignedBB;
            var$14.$minX0 = var$5;
            var$14.$minY0 = var$6;
            var$14.$minZ0 = var$7;
            var$14.$maxX0 = var$8;
            var$14.$maxY = var$9;
            var$14.$maxZ0 = var$10;
            ju_ArrayList_ensureCapacity(var$4, $par1 + 1 | 0);
            var$15 = var$4.$array.data;
            $par1 = var$4.$size0;
            var$4.$size0 = $par1 + 1 | 0;
            var$15[$par1] = var$14;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        } else if (var$12 >= 0 && var$13 < 0) {
            var$14 = var$4.$array.data[var$12];
            var$14.$minX0 = var$5;
            var$14.$minY0 = var$6;
            var$14.$minZ0 = var$7;
            var$14.$maxX0 = var$8;
            var$14.$maxY = var$9;
            var$14.$maxZ0 = var$10;
        } else {
            var$2 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$2);
            $rt_throw(var$2);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        var$4 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB(var$2, var$3, var$14, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        var$16 = 0;
        var$12 = var$3.$modCount;
        var$13 = var$3.$size();
        while (var$16 >= var$13 ? 0 : 1) {
            if (var$12 < var$3.$modCount) {
                var$2 = new ju_ConcurrentModificationException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            $par1 = var$16 + 1 | 0;
            nms_EntityItem_combineItems($this, var$3.$get(var$16));
            var$16 = $par1;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityItem_getEntityItem = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $var1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[138];
    if (var$2 === null) {
        $var1 = $var1.$elementData.data[0];
        while ($var1 !== null && $var1.$key !== null) {
            $var1 = $var1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = $var1.$elementData.data;
        $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var1 !== null) {
            if ($var1.$origKeyHash == var$3) {
                var$5 = $var1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var1 = $var1.$next3;
        }
    }
    $var1 = ($var1 === null ? null : $var1.$value0).$watchedObject;
    if ($var1 !== null)
        return $var1;
    if ($this.$worldObj !== null) {
        if (jl_System_errCache === null) {
            $var1 = new otcic_JSStderrPrintStream;
            var$5 = new ji_ByteArrayOutputStream;
            var$5.$buf = $rt_createByteArray(32);
            $var1.$out0 = var$5;
            var$5 = new jl_StringBuilder;
            jl_Object__init_(var$5);
            var$5.$buffer = $rt_createCharArray(16);
            $var1.$sb = var$5;
            $var1.$buffer0 = $rt_createCharArray(32);
            $var1.$autoFlush = 0;
            $var1.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = $var1;
        }
        var$6 = $this.$entityId;
        $var1 = new jl_StringBuilder;
        $var1.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2556));
        jl_AbstractStringBuilder_insert0($var1, $var1.$length0, var$6, 10);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2557));
        var$5 = new jl_String;
        var$4 = $var1.$buffer;
        var$7 = var$4.data;
        var$8 = $var1.$length0;
        var$3 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$3 - 0 | 0)) {
            var$5.$nativeString = $rt_charArrayToString(var$4.data, 0, var$8);
            $rt_putStderr($rt_ustr(var$5));
            $rt_putStderr("\n");
        } else {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var1);
            $rt_throw($var1);
        }
    }
    var$5 = new nms_ItemStack;
    nms_Block_$callClinit();
    $var1 = nms_Block_stone;
    nms_ItemStack_$callClinit();
    var$5.$itemID = $var1.$blockID;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    return var$5;
},
nms_EntityList$_clinit_$lambda$_63_0 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_0__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_0__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_0();
    nms_EntityList$_clinit_$lambda$_63_0__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_0_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityItem;
        nms_Entity__init_(var$2, var$1);
        var$2.$health = 5;
        var$2.$hoverStart = jl_Math_randomImpl() * 3.141592653589793 * 2.0;
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityXPOrb() {
    let a = this; nms_Entity.call(a);
    a.$xpColor = 0;
    a.$xpOrbAge = 0;
    a.$field_70532_c = 0;
    a.$xpOrbHealth = 0;
    a.$xpValue = 0;
    a.$closestPlayer = null;
    a.$xpTargetColor = 0;
}
let nms_EntityXPOrb__init_ = ($this, $par1World, $par2, $par4, $par6, $par8) => {
    let var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$xpOrbHealth = 5;
        var$6 = 0.5;
        var$7 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $this.$yOffset = $this.$height0 / 2.0;
        nms_Entity_setPosition($this, $par2, $par4, $par6);
        $this.$rotationYaw = jl_Math_randomImpl() * 360.0;
        $this.$motionX = (jl_Math_randomImpl() * 0.20000000298023224 - 0.10000000149011612) * 2.0;
        $this.$motionY = jl_Math_randomImpl() * 0.2 * 2.0;
        $this.$motionZ = (jl_Math_randomImpl() * 0.20000000298023224 - 0.10000000149011612) * 2.0;
        $this.$xpValue = $par8;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, $par8, var$6, var$7, $ptr);
},
nms_EntityXPOrb__init_0 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_EntityXPOrb();
    nms_EntityXPOrb__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_EntityXPOrb_canTriggerWalking = $this => {
    return 0;
},
nms_EntityXPOrb_entityInit = $this => {
    return;
},
nms_EntityXPOrb_onUpdate = $this => {
    let $var4, $var3, $var5, $var7, var$5, var$6, var$7, var$8, var$9, $var1, var$11, var$12, var$13, $var13, var$15, $var9, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();var$15 = $thread.pop();$var13 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var1 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$field_70532_c;
        if ($var4 > 0)
            $this.$field_70532_c = $var4 - 1 | 0;
        $var3 = $this.$posX;
        $this.$prevPosX = $var3;
        $var5 = $this.$posY;
        $this.$prevPosY = $var5;
        $var7 = $this.$posZ;
        $this.$prevPosZ = $var7;
        $this.$motionY = $this.$motionY - 0.029999999329447746;
        var$5 = $this.$worldObj;
        var$6 = $var3 | 0;
        if ($var3 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = $var5 | 0;
        if ($var5 < var$7)
            var$7 = var$7 - 1 | 0;
        var$8 = $var7 | 0;
        if ($var7 < var$8)
            var$8 = var$8 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$5, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            nms_Material_$callClinit();
            var$9 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            var$9 = nms_Block_blocksList.data[$var4].$blockMaterial;
        }
        nms_Material_$callClinit();
        if (var$9 !== nms_Material_lava) {
            $var1 = $this.$posX;
            var$5 = $this.$boundingBox0;
            $var3 = (var$5.$minY0 + var$5.$maxY) / 2.0;
            $var5 = $this.$posZ;
            $ptr = 3;
            continue main;
        }
        $this.$motionY = 0.20000000298023224;
        var$5 = $this.$rand;
        var$11 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$11;
        var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$11;
        $this.$motionX = (var$12 - Long_lo(Long_shru(var$11, 24)) / 1.6777216E7) * 0.20000000298023224;
        var$11 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$11;
        var$12 = Long_lo(Long_shru(var$11, 24)) / 1.6777216E7;
        var$13 = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$13;
        $this.$motionZ = (var$12 - Long_lo(Long_shru(var$13, 24)) / 1.6777216E7) * 0.20000000298023224;
        var$9 = $rt_s(1251);
        $var13 = 0.4000000059604645;
        var$13 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$5.$seed = var$13;
        var$15 = 2.0 + Long_lo(Long_shru(var$13, 24)) / 1.6777216E7 * 0.4000000059604645;
        var$5 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 3:
        nms_Entity_pushOutOfBlocks($this, $var1, $var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$xpTargetColor < (($this.$xpColor - 20 | 0) + ($this.$entityId % 100 | 0) | 0)) {
            a: {
                var$5 = $this.$closestPlayer;
                if (var$5 !== null) {
                    $var3 = var$5.$posX - $this.$posX;
                    $var5 = var$5.$posY - $this.$posY;
                    $var7 = var$5.$posZ - $this.$posZ;
                    if ($var3 * $var3 + $var5 * $var5 + $var7 * $var7 <= 64.0)
                        break a;
                }
                $this.$closestPlayer = nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 8.0);
            }
            $this.$xpTargetColor = $this.$xpColor;
        }
        var$5 = $this.$closestPlayer;
        if (var$5 !== null) {
            $var3 = (var$5.$posX - $this.$posX) / 8.0;
            $var5 = (var$5.$posY + 1.6200000047683716 - $this.$posY) / 8.0;
            $var7 = (var$5.$posZ - $this.$posZ) / 8.0;
            $var9 = jl_Math_sqrt($var3 * $var3 + $var5 * $var5 + $var7 * $var7);
            $var11 = 1.0 - $var9;
            if ($var11 > 0.0) {
                $var1 = $var11 * $var11;
                $this.$motionX = $this.$motionX + $var3 / $var9 * $var1 * 0.1;
                $this.$motionY = $this.$motionY + $var5 / $var9 * $var1 * 0.1;
                $this.$motionZ = $this.$motionZ + $var7 / $var9 * $var1 * 0.1;
            }
        }
        $var1 = $this.$motionX;
        $var3 = $this.$motionY;
        $var5 = $this.$motionZ;
        $ptr = 5;
        continue main;
    case 4:
        nms_World_playSoundAtEntity(var$5, $this, var$9, $var13, var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$posX;
        var$5 = $this.$boundingBox0;
        $var3 = (var$5.$minY0 + var$5.$maxY) / 2.0;
        $var5 = $this.$posZ;
        $ptr = 3;
        continue main;
    case 5:
        nms_Entity_moveEntity($this, $var1, $var3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = 0.9800000190734863;
        if (!$this.$onGround) {
            $var1 = $this.$motionX;
            $var3 = $var13;
            $this.$motionX = $var1 * $var3;
            $var1 = $this.$motionY * 0.9800000190734863;
            $this.$motionY = $var1;
            $this.$motionZ = $this.$motionZ * $var3;
            if ($this.$onGround)
                $this.$motionY = $var1 * (-0.8999999761581421);
            $this.$xpColor = $this.$xpColor + 1 | 0;
            $var4 = $this.$xpOrbAge + 1 | 0;
            $this.$xpOrbAge = $var4;
            if ($var4 >= 6000)
                $this.$isDead = 1;
            return;
        }
        $var13 = 0.5880000591278076;
        var$5 = $this.$worldObj;
        $var1 = $this.$posX;
        var$6 = $var1 | 0;
        if ($var1 < var$6)
            var$6 = var$6 - 1 | 0;
        $var1 = $this.$boundingBox0.$minY0;
        var$8 = $var1 | 0;
        if ($var1 < var$8)
            var$8 = var$8 - 1 | 0;
        $var4 = var$8 - 1 | 0;
        $var1 = $this.$posZ;
        var$7 = $var1 | 0;
        if ($var1 < var$7)
            var$7 = var$7 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId(var$5, var$6, $var4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4 > 0) {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var4].$slipperiness * 0.9800000190734863;
        }
        $var1 = $this.$motionX;
        $var3 = $var13;
        $this.$motionX = $var1 * $var3;
        $var1 = $this.$motionY * 0.9800000190734863;
        $this.$motionY = $var1;
        $this.$motionZ = $this.$motionZ * $var3;
        if ($this.$onGround)
            $this.$motionY = $var1 * (-0.8999999761581421);
        $this.$xpColor = $this.$xpColor + 1 | 0;
        $var4 = $this.$xpOrbAge + 1 | 0;
        $this.$xpOrbAge = $var4;
        if ($var4 >= 6000)
            $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, $var3, $var5, $var7, var$5, var$6, var$7, var$8, var$9, $var1, var$11, var$12, var$13, $var13, var$15, $var9, $var11, $ptr);
},
nms_EntityXPOrb_handleWaterMovement = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        var$2 = $this.$boundingBox0;
        nms_Material_$callClinit();
        var$3 = nms_Material_water;
        $ptr = 1;
    case 1:
        $tmp = nms_World_handleMaterialAcceleration(var$1, var$2, var$3, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityXPOrb_dealFireDamage = ($this, $par1) => {
    let var$2;
    var$2 = $par1;
    if (!$this.$invulnerable) {
        $this.$velocityChanged = 1;
        $par1 = $this.$xpOrbHealth - var$2 | 0;
        $this.$xpOrbHealth = $par1;
        if ($par1 <= 0)
            $this.$isDead = 1;
    }
},
nms_EntityXPOrb_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3;
    if ($this.$invulnerable)
        return 0;
    $this.$velocityChanged = 1;
    var$3 = $this.$xpOrbHealth - $par2 | 0;
    $this.$xpOrbHealth = var$3;
    if (var$3 <= 0)
        $this.$isDead = 1;
    return 0;
},
nms_EntityXPOrb_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = $this.$xpOrbHealth << 24 >> 24 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(1986);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(1986), var$4);
    var$2 = $this.$xpOrbAge << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2201);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2201), var$4);
    var$2 = $this.$xpValue << 16 >> 16;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagShort;
    $par1NBTTagCompound.$name = $rt_s(2558);
    $par1NBTTagCompound.$data2 = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2558), $par1NBTTagCompound);
},
nms_EntityXPOrb_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1986).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(1986).$nativeString.length)
                    break a;
                $rt_s(1986).$hashCode1 = (31 * $rt_s(1986).$hashCode1 | 0) + $rt_s(1986).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(1986).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(1986) !== var$6) {
                    if ($rt_s(1986) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(1986).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1986) === null) {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            c: {
                if (!$rt_s(1986).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(1986).$nativeString.length)
                            break c;
                        $rt_s(1986).$hashCode1 = (31 * $rt_s(1986).$hashCode1 | 0) + $rt_s(1986).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(1986).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(1986) !== var$2) {
                            if ($rt_s(1986) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(1986).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$3 = (var$7 === null ? null : var$7.$value0).$data2;
    }
    e: {
        $this.$xpOrbHealth = var$3 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2201).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2201).$nativeString.length)
                    break e;
                $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2201).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2201) !== var$6) {
                    if ($rt_s(2201) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2201) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2201).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2201).$nativeString.length)
                            break g;
                        $rt_s(2201).$hashCode1 = (31 * $rt_s(2201).$hashCode1 | 0) + $rt_s(2201).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2201).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2201) !== var$6) {
                            if ($rt_s(2201) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2201).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data2;
    }
    i: {
        $this.$xpOrbAge = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2558).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2558).$nativeString.length)
                    break i;
                $rt_s(2558).$hashCode1 = (31 * $rt_s(2558).$hashCode1 | 0) + $rt_s(2558).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2558).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2558) !== var$6) {
                    if ($rt_s(2558) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2558).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2558) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2558).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2558).$nativeString.length)
                            break k;
                        $rt_s(2558).$hashCode1 = (31 * $rt_s(2558).$hashCode1 | 0) + $rt_s(2558).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2558).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$8) {
                    l: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2558) !== var$2) {
                            if ($rt_s(2558) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2558).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data2;
    }
    $this.$xpValue = var$4;
},
nms_EntityXPOrb_onCollideWithPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj;
        if (!var$2.$isRemote && !$this.$field_70532_c && !$par1EntityPlayer.$xpCooldown) {
            $par1EntityPlayer.$xpCooldown = 2;
            var$3 = $rt_s(2559);
            var$4 = 0.10000000149011612;
            var$5 = $this.$rand;
            var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 24)) / 1.6777216E7;
            var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$8;
            var$9 = 0.5 * ((var$7 - Long_lo(Long_shru(var$8, 24)) / 1.6777216E7) * 0.699999988079071 + 1.7999999523162842);
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$2, $this, var$3, var$4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = 1;
        $ptr = 2;
    case 2:
        nms_EntityLivingBase_onItemPickup($par1EntityPlayer, $this, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $par1EntityPlayer.$openContainer;
        $ptr = 3;
    case 3:
        var$2.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $this.$xpValue;
        $ptr = 4;
    case 4:
        nms_EntityPlayer_addExperience($par1EntityPlayer, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityXPOrb_getXPSplit = $par0 => {
    a: {
        if ($par0 >= 2477) {
            $par0 = 2477;
            break a;
        }
        if ($par0 >= 1237) {
            $par0 = 1237;
            break a;
        }
        if ($par0 >= 617) {
            $par0 = 617;
            break a;
        }
        if ($par0 >= 307) {
            $par0 = 307;
            break a;
        }
        if ($par0 >= 149) {
            $par0 = 149;
            break a;
        }
        if ($par0 >= 73) {
            $par0 = 73;
            break a;
        }
        if ($par0 >= 37) {
            $par0 = 37;
            break a;
        }
        if ($par0 >= 17) {
            $par0 = 17;
            break a;
        }
        if ($par0 >= 7) {
            $par0 = 7;
            break a;
        }
        if ($par0 < 3) {
            $par0 = 1;
            break a;
        }
        $par0 = 3;
    }
    return $par0;
},
nms_EntityXPOrb_canAttackWithItem = $this => {
    return 0;
},
nms_EntityList$_clinit_$lambda$_63_1 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_1__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_1__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_1();
    nms_EntityList$_clinit_$lambda$_63_1__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_1_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityXPOrb;
        nms_Entity__init_(var$2, var$1);
        var$2.$xpOrbHealth = 5;
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_2 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_2__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_2__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_2();
    nms_EntityList$_clinit_$lambda$_63_2__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_2_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityPainting;
        nms_Entity__init_(var$2, var$1);
        var$2.$yOffset = 0.0;
        var$3 = 0.5;
        var$4 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_3 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_3__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_3__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_3();
    nms_EntityList$_clinit_$lambda$_63_3__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_3_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityArrow;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile = (-1);
        var$2.$yTile = (-1);
        var$2.$zTile = (-1);
        var$2.$damage = 2.0;
        var$2.$renderDistanceWeight = 10.0;
        var$3 = 0.5;
        var$4 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityThrowable() {
    let a = this; nms_Entity.call(a);
    a.$xTile0 = 0;
    a.$yTile0 = 0;
    a.$zTile0 = 0;
    a.$inTile1 = 0;
    a.$inGround1 = 0;
    a.$throwableShake = 0;
    a.$thrower = null;
    a.$throwerName = null;
    a.$ticksInGround = 0;
    a.$ticksInAir1 = 0;
}
let nms_EntityThrowable_entityInit = $this => {
    return;
},
nms_EntityThrowable__init_ = ($this, $par1World, $par2EntityLivingBase) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$xTile0 = (-1);
        $this.$yTile0 = (-1);
        $this.$zTile0 = (-1);
        $this.$thrower = $par2EntityLivingBase;
        var$3 = 0.25;
        $var3 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2EntityLivingBase.$posX;
        var$6 = $par2EntityLivingBase.$posY + $par2EntityLivingBase.$getEyeHeight();
        var$7 = $par2EntityLivingBase.$posZ;
        $var3 = $par2EntityLivingBase.$rotationYaw;
        var$3 = $par2EntityLivingBase.$rotationPitch;
        $this.$posX = var$5;
        $this.$prevPosX = var$5;
        $this.$lastTickPosX = var$5;
        var$6 = var$6 + $this.$yOffset;
        $this.$posY = var$6;
        $this.$prevPosY = var$6;
        $this.$lastTickPosY = var$6;
        $this.$posZ = var$7;
        $this.$prevPosZ = var$7;
        $this.$lastTickPosZ = var$7;
        $this.$rotationYaw = $var3;
        $this.$rotationPitch = var$3;
        nms_Entity_setPosition($this, var$5, var$6, var$7);
        var$5 = $this.$posX;
        $var3 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
        var$8 = nms_MathHelper_SIN_TABLE.data;
        var$3 = $var3 * 10430.3779296875;
        var$5 = var$5 - var$8[(var$3 + 16384.0 | 0) & 65535] * 0.1599999964237213;
        $this.$posX = var$5;
        var$6 = $this.$posY - 0.10000000149011612;
        $this.$posY = var$6;
        var$7 = $this.$posZ - var$8[(var$3 | 0) & 65535] * 0.1599999964237213;
        $this.$posZ = var$7;
        nms_Entity_setPosition($this, var$5, var$6, var$7);
        $this.$yOffset = 0.0;
        var$9 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
        var$8 = nms_MathHelper_SIN_TABLE.data;
        var$10 = var$9 * 10430.3779296875;
        var$11 =  -var$8[(var$10 | 0) & 65535];
        var$12 = $this.$rotationPitch;
        var$13 = (var$12 / 180.0 * 3.1415927410125732 * 10430.3779296875 + 16384.0 | 0) & 65535;
        $this.$motionX = var$11 * var$8[var$13] * 0.4000000059604645;
        $this.$motionZ = var$8[(var$10 + 16384.0 | 0) & 65535] * var$8[var$13] * 0.4000000059604645;
        var$3 = (var$12 + $this.$func_70183_g()) / 180.0 * 3.1415927410125732;
        var$5 =  -nms_MathHelper_SIN_TABLE.data[(var$3 * 10430.3779296875 | 0) & 65535] * 0.4000000059604645;
        $this.$motionY = var$5;
        nms_EntityThrowable_setThrowableHeading($this, $this.$motionX, var$5, $this.$motionZ, $this.$func_70182_d(), 1.0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityLivingBase, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityThrowable_func_70182_d = $this => {
    return 1.5;
},
nms_EntityThrowable_func_70183_g = $this => {
    return 0.0;
},
nms_EntityThrowable_setThrowableHeading = ($this, $par1, $par3, $par5, $par7, $par8) => {
    let var$6, var$7, var$8, $var10;
    var$6 = jl_Math_sqrt($par1 * $par1 + $par3 * $par3 + $par5 * $par5);
    var$7 = $par1 / var$6;
    $par1 = $par3 / var$6;
    var$6 = $par5 / var$6;
    $par3 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.007499999832361937;
    var$8 = $par8;
    $par3 = var$7 + $par3 * var$8;
    $par5 = $par1 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.007499999832361937 * var$8;
    $par1 = var$6 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.007499999832361937 * var$8;
    var$6 = $par7;
    $par3 = $par3 * var$6;
    $par5 = $par5 * var$6;
    $par1 = $par1 * var$6;
    $this.$motionX = $par3;
    $this.$motionY = $par5;
    $this.$motionZ = $par1;
    $var10 = jl_Math_sqrt($par3 * $par3 + $par1 * $par1);
    $par7 = jl_Math_atan2($par3, $par1) * 180.0 / 3.141592653589793;
    $this.$rotationYaw = $par7;
    $this.$prevRotationYaw = $par7;
    $par7 = jl_Math_atan2($par5, $var10) * 180.0 / 3.141592653589793;
    $this.$rotationPitch = $par7;
    $this.$prevRotationPitch = $par7;
    $this.$ticksInGround = 0;
},
nms_EntityThrowable_onUpdate = $this => {
    let $var1, $var16, $var9, $var7, $var2, $var8, $var6, var$8, var$9, $var3, var$11, $var4, $var14, var$14, var$15, var$16, var$17, $var13, $var10, var$20, var$21, $var17, $var18, $var19, var$25, var$26, $var5, var$28, var$29, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();$var5 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var10 = $thread.pop();$var13 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var14 = $thread.pop();$var4 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8
        = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();$var2 = $thread.pop();$var7 = $thread.pop();$var9 = $thread.pop();$var16 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$lastTickPosX = $this.$posX;
        $this.$lastTickPosY = $this.$posY;
        $this.$lastTickPosZ = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $this.$throwableShake;
        if ($var1 > 0)
            $this.$throwableShake = $var1 - 1 | 0;
        if ($this.$inGround1) {
            $var16 = $this.$worldObj;
            $var1 = $this.$xTile0;
            $var9 = $this.$yTile0;
            $var7 = $this.$zTile0;
            $ptr = 2;
            continue main;
        }
        $this.$ticksInAir1 = $this.$ticksInAir1 + 1 | 0;
        $var16 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var8 = $this.$worldObj;
        $var1 = 0;
        $var9 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($var16, $var1, $var9, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 == $this.$inTile1) {
            $var1 = $this.$ticksInGround + 1 | 0;
            $this.$ticksInGround = $var1;
            if ($var1 == 1200)
                $this.$isDead = 1;
            return;
        }
        $this.$inGround1 = 0;
        $var6 = $this.$motionX;
        $var16 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul($var16.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var16.$seed = var$8;
        $this.$motionX = $var6 * Long_lo(Long_shru(var$8, 24)) / 1.6777216E7 * 0.20000000298023224;
        $var6 = $this.$motionY;
        var$8 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var16.$seed = var$8;
        $this.$motionY = $var6 * Long_lo(Long_shru(var$8, 24)) / 1.6777216E7 * 0.20000000298023224;
        $var6 = $this.$motionZ;
        var$9 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var16.$seed = var$9;
        $this.$motionZ = $var6 * Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 * 0.20000000298023224;
        $this.$ticksInGround = 0;
        $this.$ticksInAir1 = 0;
        $var16 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var8 = $this.$worldObj;
        $var1 = 0;
        $var9 = 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_rayTraceBlocks_do_do($var8, $var16, $var2, $var1, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var16 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        if ($var3 !== null) {
            $var8 = $this.$worldObj.$vecPool;
            $var2 = $var3.$hitVec;
            $var2 = nms_Vec3Pool_getVecFromPool($var8, $var2.$xCoord, $var2.$yCoord, $var2.$zCoord);
        }
        var$11 = $this.$worldObj;
        if (!var$11.$isRemote) {
            $var4 = null;
            $var8 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $this.$motionX, $this.$motionY, $this.$motionZ);
            $var14 = $var8.$minX0 - 1.0;
            var$14 = $var8.$minY0 - 1.0;
            var$15 = $var8.$minZ0 - 1.0;
            var$16 = $var8.$maxX0 + 1.0;
            var$17 = $var8.$maxY + 1.0;
            $var6 = $var8.$maxZ0 + 1.0;
            $var13 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var1 = $var13.$nextPoolIndex;
            $var8 = $var13.$listAABB;
            $var7 = $var8.$size0;
            $var9 = $rt_compare($var1, $var7);
            if ($var9 >= 0) {
                $var10 = new nms_AxisAlignedBB;
                $var10.$minX0 = $var14;
                $var10.$minY0 = var$14;
                $var10.$minZ0 = var$15;
                $var10.$maxX0 = var$16;
                $var10.$maxY = var$17;
                $var10.$maxZ0 = $var6;
                ju_ArrayList_ensureCapacity($var8, $var7 + 1 | 0);
                var$20 = $var8.$array.data;
                $var9 = $var8.$size0;
                $var8.$size0 = $var9 + 1 | 0;
                var$20[$var9] = $var10;
                $var8.$modCount = $var8.$modCount + 1 | 0;
            } else if ($var1 >= 0 && $var9 < 0) {
                $var10 = $var8.$array.data[$var1];
                $var10.$minX0 = $var14;
                $var10.$minY0 = var$14;
                $var10.$minZ0 = var$15;
                $var10.$maxX0 = var$16;
                $var10.$maxY = var$17;
                $var10.$maxZ0 = $var6;
            } else {
                $var16 = new jl_IndexOutOfBoundsException;
                $var16.$suppressionEnabled = 1;
                $var16.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var16);
                $rt_throw($var16);
            }
            $var13.$nextPoolIndex = $var13.$nextPoolIndex + 1 | 0;
            $var8 = null;
            $ptr = 4;
            continue main;
        }
        if ($var3 === null) {
            $var6 = $this.$posX;
            var$21 = $this.$motionX;
            $this.$posX = $var6 + var$21;
            $this.$posY = $this.$posY + $this.$motionY;
            $var6 = $this.$posZ;
            $var14 = $this.$motionZ;
            $this.$posZ = $var6 + $var14;
            $var17 = jl_Math_sqrt(var$21 * var$21 + $var14 * $var14);
            $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
            $var17 = jl_Math_atan2($this.$motionY, $var17) * 180.0 / 3.141592653589793;
            $this.$rotationPitch = $var17;
            while (true) {
                $var18 = $this.$prevRotationPitch;
                if ($var17 - $var18 >= (-180.0))
                    break;
                $this.$prevRotationPitch = $var18 - 360.0;
            }
            while (true) {
                $var18 = $this.$prevRotationPitch;
                $var19 = $var17 - $var18;
                if ($var19 < 180.0)
                    break;
                $this.$prevRotationPitch = $var18 + 360.0;
            }
            while (true) {
                $var17 = $this.$rotationYaw;
                var$25 = $this.$prevRotationYaw;
                if ($var17 - var$25 >= (-180.0))
                    break;
                $this.$prevRotationYaw = var$25 - 360.0;
            }
            while (true) {
                var$25 = $this.$prevRotationYaw;
                var$26 = $var17 - var$25;
                if (var$26 < 180.0)
                    break;
                $this.$prevRotationYaw = var$25 + 360.0;
            }
            a: {
                $this.$rotationPitch = $var18 + $var19 * 0.20000000298023224;
                $this.$rotationYaw = var$25 + var$26 * 0.20000000298023224;
                $var18 = 0.9900000095367432;
                $var19 = $this.$getGravityVelocity();
                if ($this.$inWater) {
                    $var7 = 0;
                    b: while (true) {
                        if ($var7 >= 4) {
                            $var18 = 0.800000011920929;
                            break a;
                        }
                        $var16 = $this.$worldObj;
                        $var1 = 0;
                        while (true) {
                            $var9 = $rt_compare($var1, $var16.$worldAccesses.$size0);
                            if ($var9 >= 0)
                                break;
                            if ($var1 < 0)
                                break b;
                            if ($var9 >= 0)
                                break b;
                            $var1 = $var1 + 1 | 0;
                        }
                        $var7 = $var7 + 1 | 0;
                    }
                    $var16 = new jl_IndexOutOfBoundsException;
                    $var16.$suppressionEnabled = 1;
                    $var16.$writableStackTrace = 1;
                    $rt_throw($var16);
                }
            }
            $var6 = $this.$motionX;
            var$21 = $var18;
            $this.$motionX = $var6 * var$21;
            $var6 = $this.$motionY * var$21;
            $this.$motionY = $var6;
            $this.$motionZ = $this.$motionZ * var$21;
            $this.$motionY = $var6 - $var19;
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            return;
        }
        if ($var3.$typeOfHit !== nms_EnumMovingObjectType_TILE) {
            $ptr = 5;
            continue main;
        }
        $var16 = $this.$worldObj;
        $var1 = $var3.$blockX;
        $var9 = $var3.$blockY;
        $var7 = $var3.$blockZ;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity(var$11, $this, $var10, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = 0.0;
        $var8 = nms_EntityThrowable_getThrower($this);
        $var9 = 0;
        c: {
            while (true) {
                $var1 = $rt_compare($var9, $var5.$size0);
                if ($var1 >= 0) {
                    if ($var4 !== null) {
                        $var3 = new nms_MovingObjectPosition;
                        $var3.$typeOfHit = nms_EnumMovingObjectType_ENTITY;
                        $var3.$entityHit = $var4;
                        $var3.$hitVec = nms_Vec3Pool_getVecFromPool($var4.$worldObj.$vecPool, $var4.$posX, $var4.$posY, $var4.$posZ);
                    }
                    if ($var3 === null) {
                        $var6 = $this.$posX;
                        var$21 = $this.$motionX;
                        $this.$posX = $var6 + var$21;
                        $this.$posY = $this.$posY + $this.$motionY;
                        $var6 = $this.$posZ;
                        $var14 = $this.$motionZ;
                        $this.$posZ = $var6 + $var14;
                        $var17 = jl_Math_sqrt(var$21 * var$21 + $var14 * $var14);
                        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
                        $var17 = jl_Math_atan2($this.$motionY, $var17) * 180.0 / 3.141592653589793;
                        $this.$rotationPitch = $var17;
                        while (true) {
                            $var18 = $this.$prevRotationPitch;
                            if ($var17 - $var18 >= (-180.0))
                                break;
                            $this.$prevRotationPitch = $var18 - 360.0;
                        }
                        while (true) {
                            $var18 = $this.$prevRotationPitch;
                            $var19 = $var17 - $var18;
                            if ($var19 < 180.0)
                                break;
                            $this.$prevRotationPitch = $var18 + 360.0;
                        }
                        while (true) {
                            $var17 = $this.$rotationYaw;
                            var$25 = $this.$prevRotationYaw;
                            if ($var17 - var$25 >= (-180.0))
                                break;
                            $this.$prevRotationYaw = var$25 - 360.0;
                        }
                        while (true) {
                            var$25 = $this.$prevRotationYaw;
                            var$26 = $var17 - var$25;
                            if (var$26 < 180.0)
                                break;
                            $this.$prevRotationYaw = var$25 + 360.0;
                        }
                        d: {
                            $this.$rotationPitch = $var18 + $var19 * 0.20000000298023224;
                            $this.$rotationYaw = var$25 + var$26 * 0.20000000298023224;
                            $var18 = 0.9900000095367432;
                            $var19 = $this.$getGravityVelocity();
                            if ($this.$inWater) {
                                $var7 = 0;
                                e: while (true) {
                                    if ($var7 >= 4) {
                                        $var18 = 0.800000011920929;
                                        break d;
                                    }
                                    $var16 = $this.$worldObj;
                                    $var1 = 0;
                                    while (true) {
                                        $var9 = $rt_compare($var1, $var16.$worldAccesses.$size0);
                                        if ($var9 >= 0)
                                            break;
                                        if ($var1 < 0)
                                            break e;
                                        if ($var9 >= 0)
                                            break e;
                                        $var1 = $var1 + 1 | 0;
                                    }
                                    $var7 = $var7 + 1 | 0;
                                }
                                $var16 = new jl_IndexOutOfBoundsException;
                                $var16.$suppressionEnabled = 1;
                                $var16.$writableStackTrace = 1;
                                $rt_throw($var16);
                            }
                        }
                        $var6 = $this.$motionX;
                        var$21 = $var18;
                        $this.$motionX = $var6 * var$21;
                        $var6 = $this.$motionY * var$21;
                        $this.$motionY = $var6;
                        $this.$motionZ = $this.$motionZ * var$21;
                        $this.$motionY = $var6 - $var19;
                        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                        return;
                    }
                    if ($var3.$typeOfHit !== nms_EnumMovingObjectType_TILE) {
                        $ptr = 5;
                        continue main;
                    }
                    $var16 = $this.$worldObj;
                    $var1 = $var3.$blockX;
                    $var9 = $var3.$blockY;
                    $var7 = $var3.$blockZ;
                    $ptr = 6;
                    continue main;
                }
                if ($var9 < 0)
                    break;
                if ($var1 >= 0)
                    break;
                $var10 = $var5.$array.data[$var9];
                if ($var10.$canBeCollidedWith() && !($var10 === $var8 && $this.$ticksInAir1 < 5)) {
                    $var13 = $var10.$boundingBox0;
                    $var14 = $var13.$minX0 - 0.30000001192092896;
                    var$14 = $var13.$minY0 - 0.30000001192092896;
                    var$15 = $var13.$minZ0 - 0.30000001192092896;
                    var$16 = $var13.$maxX0 + 0.30000001192092896;
                    var$17 = $var13.$maxY + 0.30000001192092896;
                    var$21 = $var13.$maxZ0 + 0.30000001192092896;
                    var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var1 = var$11.$nextPoolIndex;
                    $var13 = var$11.$listAABB;
                    var$28 = $var13.$size0;
                    $var7 = $rt_compare($var1, var$28);
                    if ($var7 >= 0) {
                        var$29 = new nms_AxisAlignedBB;
                        var$29.$minX0 = $var14;
                        var$29.$minY0 = var$14;
                        var$29.$minZ0 = var$15;
                        var$29.$maxX0 = var$16;
                        var$29.$maxY = var$17;
                        var$29.$maxZ0 = var$21;
                        ju_ArrayList_ensureCapacity($var13, var$28 + 1 | 0);
                        var$20 = $var13.$array.data;
                        $var7 = $var13.$size0;
                        $var13.$size0 = $var7 + 1 | 0;
                        var$20[$var7] = var$29;
                        $var13.$modCount = $var13.$modCount + 1 | 0;
                    } else {
                        if ($var1 < 0)
                            break c;
                        if ($var7 >= 0)
                            break c;
                        var$29 = $var13.$array.data[$var1];
                        var$29.$minX0 = $var14;
                        var$29.$minY0 = var$14;
                        var$29.$minZ0 = var$15;
                        var$29.$maxX0 = var$16;
                        var$29.$maxY = var$17;
                        var$29.$maxZ0 = var$21;
                    }
                    var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
                    $var13 = nms_AxisAlignedBB_calculateIntercept(var$29, $var16, $var2);
                    if ($var13 !== null) {
                        $var13 = $var13.$hitVec;
                        var$21 = $var13.$xCoord - $var16.$xCoord;
                        $var14 = $var13.$yCoord - $var16.$yCoord;
                        var$14 = $var13.$zCoord - $var16.$zCoord;
                        $var14 = jl_Math_sqrt(var$21 * var$21 + $var14 * $var14 + var$14 * var$14);
                        if (!($var14 >= $var6 && $var6 !== 0.0)) {
                            $var4 = $var10;
                            $var6 = $var14;
                        }
                    }
                }
                $var9 = $var9 + 1 | 0;
            }
            $var16 = new jl_IndexOutOfBoundsException;
            $var16.$suppressionEnabled = 1;
            $var16.$writableStackTrace = 1;
            $rt_throw($var16);
        }
        $var16 = new jl_IndexOutOfBoundsException;
        $var16.$suppressionEnabled = 1;
        $var16.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var16);
        $rt_throw($var16);
    case 5:
        $this.$onImpact($var3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$posX;
        var$21 = $this.$motionX;
        $this.$posX = $var6 + var$21;
        $this.$posY = $this.$posY + $this.$motionY;
        $var6 = $this.$posZ;
        $var14 = $this.$motionZ;
        $this.$posZ = $var6 + $var14;
        $var17 = jl_Math_sqrt(var$21 * var$21 + $var14 * $var14);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        $var17 = jl_Math_atan2($this.$motionY, $var17) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = $var17;
        while (true) {
            $var18 = $this.$prevRotationPitch;
            if ($var17 - $var18 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var18 - 360.0;
        }
        while (true) {
            $var18 = $this.$prevRotationPitch;
            $var19 = $var17 - $var18;
            if ($var19 < 180.0)
                break;
            $this.$prevRotationPitch = $var18 + 360.0;
        }
        while (true) {
            $var17 = $this.$rotationYaw;
            var$25 = $this.$prevRotationYaw;
            if ($var17 - var$25 >= (-180.0))
                break;
            $this.$prevRotationYaw = var$25 - 360.0;
        }
        while (true) {
            var$25 = $this.$prevRotationYaw;
            var$26 = $var17 - var$25;
            if (var$26 < 180.0)
                break;
            $this.$prevRotationYaw = var$25 + 360.0;
        }
        f: {
            $this.$rotationPitch = $var18 + $var19 * 0.20000000298023224;
            $this.$rotationYaw = var$25 + var$26 * 0.20000000298023224;
            $var18 = 0.9900000095367432;
            $var19 = $this.$getGravityVelocity();
            if ($this.$inWater) {
                $var7 = 0;
                g: while (true) {
                    if ($var7 >= 4) {
                        $var18 = 0.800000011920929;
                        break f;
                    }
                    $var16 = $this.$worldObj;
                    $var1 = 0;
                    while (true) {
                        $var9 = $rt_compare($var1, $var16.$worldAccesses.$size0);
                        if ($var9 >= 0)
                            break;
                        if ($var1 < 0)
                            break g;
                        if ($var9 >= 0)
                            break g;
                        $var1 = $var1 + 1 | 0;
                    }
                    $var7 = $var7 + 1 | 0;
                }
                $var16 = new jl_IndexOutOfBoundsException;
                $var16.$suppressionEnabled = 1;
                $var16.$writableStackTrace = 1;
                $rt_throw($var16);
            }
        }
        $var6 = $this.$motionX;
        var$21 = $var18;
        $this.$motionX = $var6 * var$21;
        $var6 = $this.$motionY * var$21;
        $this.$motionY = $var6;
        $this.$motionZ = $this.$motionZ * var$21;
        $this.$motionY = $var6 - $var19;
        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
        return;
    case 6:
        $tmp = nms_World_getBlockId($var16, $var1, $var9, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        nms_Block_$callClinit();
        if ($var1 == nms_Block_portal.$blockID) {
            nms_Entity_setInPortal($this);
            $var6 = $this.$posX;
            var$21 = $this.$motionX;
            $this.$posX = $var6 + var$21;
            $this.$posY = $this.$posY + $this.$motionY;
            $var6 = $this.$posZ;
            $var14 = $this.$motionZ;
            $this.$posZ = $var6 + $var14;
            $var17 = jl_Math_sqrt(var$21 * var$21 + $var14 * $var14);
            $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
            $var17 = jl_Math_atan2($this.$motionY, $var17) * 180.0 / 3.141592653589793;
            $this.$rotationPitch = $var17;
            while (true) {
                $var18 = $this.$prevRotationPitch;
                if ($var17 - $var18 >= (-180.0))
                    break;
                $this.$prevRotationPitch = $var18 - 360.0;
            }
            while (true) {
                $var18 = $this.$prevRotationPitch;
                $var19 = $var17 - $var18;
                if ($var19 < 180.0)
                    break;
                $this.$prevRotationPitch = $var18 + 360.0;
            }
            while (true) {
                $var17 = $this.$rotationYaw;
                var$25 = $this.$prevRotationYaw;
                if ($var17 - var$25 >= (-180.0))
                    break;
                $this.$prevRotationYaw = var$25 - 360.0;
            }
            while (true) {
                var$25 = $this.$prevRotationYaw;
                var$26 = $var17 - var$25;
                if (var$26 < 180.0)
                    break;
                $this.$prevRotationYaw = var$25 + 360.0;
            }
            h: {
                $this.$rotationPitch = $var18 + $var19 * 0.20000000298023224;
                $this.$rotationYaw = var$25 + var$26 * 0.20000000298023224;
                $var18 = 0.9900000095367432;
                $var19 = $this.$getGravityVelocity();
                if ($this.$inWater) {
                    $var7 = 0;
                    i: while (true) {
                        if ($var7 >= 4) {
                            $var18 = 0.800000011920929;
                            break h;
                        }
                        $var16 = $this.$worldObj;
                        $var1 = 0;
                        while (true) {
                            $var9 = $rt_compare($var1, $var16.$worldAccesses.$size0);
                            if ($var9 >= 0)
                                break;
                            if ($var1 < 0)
                                break i;
                            if ($var9 >= 0)
                                break i;
                            $var1 = $var1 + 1 | 0;
                        }
                        $var7 = $var7 + 1 | 0;
                    }
                    $var16 = new jl_IndexOutOfBoundsException;
                    $var16.$suppressionEnabled = 1;
                    $var16.$writableStackTrace = 1;
                    $rt_throw($var16);
                }
            }
            $var6 = $this.$motionX;
            var$21 = $var18;
            $this.$motionX = $var6 * var$21;
            $var6 = $this.$motionY * var$21;
            $this.$motionY = $var6;
            $this.$motionZ = $this.$motionZ * var$21;
            $this.$motionY = $var6 - $var19;
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            return;
        }
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var16, $var9, $var7, $var2, $var8, $var6, var$8, var$9, $var3, var$11, $var4, $var14, var$14, var$15, var$16, var$17, $var13, $var10, var$20, var$21, $var17, $var18, $var19, var$25, var$26, $var5, var$28, var$29, $ptr);
},
nms_EntityThrowable_getGravityVelocity = $this => {
    return 0.029999999329447746;
},
nms_EntityThrowable_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$xTile0 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2494);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2494), var$4);
    var$2 = $this.$yTile0 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2495);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2495), var$4);
    var$2 = $this.$zTile0 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2496);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2496), var$4);
    var$2 = $this.$inTile1 << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2497);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2497), var$4);
    var$2 = $this.$throwableShake << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2499);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2499), var$4);
    var$2 = (!$this.$inGround1 ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2500);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2500), var$4);
    var$5 = $this.$throwerName;
    if (!(var$5 !== null && var$5.$nativeString.length)) {
        var$5 = $this.$thrower;
        if (var$5 !== null && var$5 instanceof nms_EntityPlayer)
            $this.$throwerName = var$5.$getEntityName();
    }
    var$4 = $this.$throwerName;
    if (var$4 === null)
        var$4 = $rt_s(3);
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagString;
    $par1NBTTagCompound.$name = $rt_s(2560);
    $par1NBTTagCompound.$data1 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2560), $par1NBTTagCompound);
},
nms_EntityThrowable_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2494).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2494).$nativeString.length)
                    break a;
                $rt_s(2494).$hashCode1 = (31 * $rt_s(2494).$hashCode1 | 0) + $rt_s(2494).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2494).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2494) !== var$6) {
                    if ($rt_s(2494) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2494).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2494) !== null) {
            c: {
                if (!$rt_s(2494).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2494).$nativeString.length)
                            break c;
                        $rt_s(2494).$hashCode1 = (31 * $rt_s(2494).$hashCode1 | 0) + $rt_s(2494).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2494).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(2494) !== var$2) {
                            if ($rt_s(2494) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2494).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        } else {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        }
        var$4 = (var$7 === null ? null : var$7.$value0).$data2;
    } else
        var$4 = 0;
    e: {
        $this.$xTile0 = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2495).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2495).$nativeString.length)
                    break e;
                $rt_s(2495).$hashCode1 = (31 * $rt_s(2495).$hashCode1 | 0) + $rt_s(2495).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2495).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2495) !== var$6) {
                    if ($rt_s(2495) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2495).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2495) !== null) {
            g: {
                if (!$rt_s(2495).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2495).$nativeString.length)
                            break g;
                        $rt_s(2495).$hashCode1 = (31 * $rt_s(2495).$hashCode1 | 0) + $rt_s(2495).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2495).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2495) !== var$6) {
                            if ($rt_s(2495) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$4 = $rt_s(2495).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data2;
    }
    i: {
        $this.$yTile0 = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2496).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2496).$nativeString.length)
                    break i;
                $rt_s(2496).$hashCode1 = (31 * $rt_s(2496).$hashCode1 | 0) + $rt_s(2496).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2496).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2496) !== var$6) {
                    if ($rt_s(2496) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2496).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2496) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2496).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2496).$nativeString.length)
                            break k;
                        $rt_s(2496).$hashCode1 = (31 * $rt_s(2496).$hashCode1 | 0) + $rt_s(2496).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2496).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(2496) !== var$6) {
                            if ($rt_s(2496) === var$6)
                                var$4 = 1;
                            else if (var$6 instanceof jl_String) {
                                var$6 = var$6;
                                var$4 = $rt_s(2496).$nativeString !== var$6.$nativeString ? 0 : 1;
                            } else
                                var$4 = 0;
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data2;
    } else
        var$4 = 0;
    m: {
        $this.$zTile0 = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2497).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2497).$nativeString.length)
                    break m;
                $rt_s(2497).$hashCode1 = (31 * $rt_s(2497).$hashCode1 | 0) + $rt_s(2497).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2497).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2497) !== var$6) {
                    if ($rt_s(2497) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$4 = $rt_s(2497).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$4 = 0;
                    } else
                        var$4 = 1;
                    if (!var$4) {
                        var$4 = 0;
                        break n;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2497) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2497).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2497).$nativeString.length)
                            break o;
                        $rt_s(2497).$hashCode1 = (31 * $rt_s(2497).$hashCode1 | 0) + $rt_s(2497).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2497).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    p: {
                        var$6 = var$2.$key;
                        if ($rt_s(2497) !== var$6) {
                            if ($rt_s(2497) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$4 = $rt_s(2497).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break p;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    q: {
        $this.$inTile1 = var$3 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2499).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2499).$nativeString.length)
                    break q;
                $rt_s(2499).$hashCode1 = (31 * $rt_s(2499).$hashCode1 | 0) + $rt_s(2499).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2499).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2499) !== var$6) {
                    if ($rt_s(2499) !== var$6) {
                        if (!(var$6 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$6 = var$6;
                            var$4 = $rt_s(2499).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                    } else
                        var$4 = 1;
                    if (!var$4) {
                        var$4 = 0;
                        break r;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2499) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2499).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2499).$nativeString.length)
                            break s;
                        $rt_s(2499).$hashCode1 = (31 * $rt_s(2499).$hashCode1 | 0) + $rt_s(2499).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2499).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    t: {
                        var$6 = var$2.$key;
                        if ($rt_s(2499) !== var$6) {
                            if ($rt_s(2499) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2499).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break t;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$3 = 0;
    u: {
        $this.$throwableShake = var$3 & 255;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2500).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2500).$nativeString.length)
                    break u;
                $rt_s(2500).$hashCode1 = (31 * $rt_s(2500).$hashCode1 | 0) + $rt_s(2500).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2500).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            v: {
                var$6 = var$2.$key;
                if ($rt_s(2500) !== var$6) {
                    if ($rt_s(2500) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2500).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break v;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2500) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            w: {
                if (!$rt_s(2500).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2500).$nativeString.length)
                            break w;
                        $rt_s(2500).$hashCode1 = (31 * $rt_s(2500).$hashCode1 | 0) + $rt_s(2500).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2500).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    x: {
                        var$6 = var$2.$key;
                        if ($rt_s(2500) !== var$6) {
                            if ($rt_s(2500) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2500).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break x;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    var$4 = var$3 != 1 ? 0 : 1;
    y: {
        $this.$inGround1 = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2560).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2560).$nativeString.length)
                    break y;
                $rt_s(2560).$hashCode1 = (31 * $rt_s(2560).$hashCode1 | 0) + $rt_s(2560).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2560).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            z: {
                var$6 = var$2.$key;
                if ($rt_s(2560) !== var$6) {
                    if ($rt_s(2560) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2560).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break z;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $par1NBTTagCompound = $rt_s(3);
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2560) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            ba: {
                if (!$rt_s(2560).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2560).$nativeString.length)
                            break ba;
                        $rt_s(2560).$hashCode1 = (31 * $rt_s(2560).$hashCode1 | 0) + $rt_s(2560).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2560).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$8) {
                    bb: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2560) !== var$2) {
                            if ($rt_s(2560) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2560).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break bb;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        $par1NBTTagCompound = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data1;
    }
    $this.$throwerName = $par1NBTTagCompound;
    if ($par1NBTTagCompound !== null && !$par1NBTTagCompound.$nativeString.length)
        $this.$throwerName = null;
},
nms_EntityThrowable_getThrower = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    a: {
        if ($this.$thrower === null) {
            var$1 = $this.$throwerName;
            if (var$1 !== null && var$1.$nativeString.length > 0) {
                var$1 = $this.$worldObj;
                var$2 = $this.$throwerName;
                var$3 = 0;
                b: {
                    c: {
                        while (true) {
                            var$4 = var$1.$playerEntities;
                            var$5 = $rt_compare(var$3, var$4.$size0);
                            if (var$5 >= 0)
                                break;
                            if (var$3 < 0)
                                break c;
                            if (var$5 >= 0)
                                break c;
                            var$4 = var$4.$array.data[var$3].$username;
                            if (var$2 === var$4)
                                var$5 = 1;
                            else if (!(var$4 instanceof jl_String))
                                var$5 = 0;
                            else {
                                var$4 = var$4;
                                var$5 = var$2.$nativeString !== var$4.$nativeString ? 0 : 1;
                            }
                            if (var$5) {
                                var$1 = var$1.$playerEntities;
                                if (var$3 < 0)
                                    break a;
                                if (var$3 >= var$1.$size0)
                                    break a;
                                var$1 = var$1.$array.data[var$3];
                                break b;
                            }
                            var$3 = var$3 + 1 | 0;
                        }
                        var$1 = null;
                        break b;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    $rt_throw(var$1);
                }
                $this.$thrower = var$1;
            }
        }
        return $this.$thrower;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
nms_EntitySnowball = $rt_classWithoutFields(nms_EntityThrowable),
nms_EntitySnowball_onImpact = ($this, $par1MovingObjectPosition) => {
    let $var3, $var2, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$var3 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
        if ($par1MovingObjectPosition === null) {
            $var3 = 0;
            a: {
                while ($var3 < 8) {
                    $par1MovingObjectPosition = $this.$worldObj;
                    $var2 = 0;
                    while (true) {
                        var$4 = $rt_compare($var2, $par1MovingObjectPosition.$worldAccesses.$size0);
                        if (var$4 >= 0)
                            break;
                        if ($var2 < 0)
                            break a;
                        if (var$4 >= 0)
                            break a;
                        $var2 = $var2 + 1 | 0;
                    }
                    $var3 = $var3 + 1 | 0;
                }
                if (!$this.$worldObj.$isRemote)
                    $this.$isDead = 1;
                return;
            }
            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
            $par1MovingObjectPosition.$suppressionEnabled = 1;
            $par1MovingObjectPosition.$writableStackTrace = 1;
            $rt_throw($par1MovingObjectPosition);
        }
        $var2 = 0;
        if ($par1MovingObjectPosition instanceof nms_EntityBlaze)
            $var2 = 3;
        var$5 = nms_EntityThrowable_getThrower($this);
        var$6 = new nms_EntityDamageSourceIndirect;
        var$6.$hungerDamage = 0.30000001192092896;
        var$6.$damageType = $rt_s(2561);
        var$6.$damageSourceEntity = $this;
        var$6.$indirectEntity = var$5;
        var$6.$projectile = 1;
        var$7 = $var2;
        $ptr = 1;
    case 1:
        $par1MovingObjectPosition.$attackEntityFrom(var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 0;
        b: {
            while ($var3 < 8) {
                $par1MovingObjectPosition = $this.$worldObj;
                $var2 = 0;
                while (true) {
                    var$4 = $rt_compare($var2, $par1MovingObjectPosition.$worldAccesses.$size0);
                    if (var$4 >= 0)
                        break;
                    if ($var2 < 0)
                        break b;
                    if (var$4 >= 0)
                        break b;
                    $var2 = $var2 + 1 | 0;
                }
                $var3 = $var3 + 1 | 0;
            }
            if (!$this.$worldObj.$isRemote)
                $this.$isDead = 1;
            return;
        }
        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        $rt_throw($par1MovingObjectPosition);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, $var3, $var2, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_4 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_4__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_4__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_4();
    nms_EntityList$_clinit_$lambda$_63_4__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_4_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySnowball;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile0 = (-1);
        var$2.$yTile0 = (-1);
        var$2.$zTile0 = (-1);
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityFireball() {
    let a = this; nms_Entity.call(a);
    a.$xTile1 = 0;
    a.$yTile1 = 0;
    a.$zTile1 = 0;
    a.$inTile0 = 0;
    a.$inGround2 = 0;
    a.$shootingEntity0 = null;
    a.$ticksAlive = 0;
    a.$ticksInAir0 = 0;
    a.$accelerationX = 0.0;
    a.$accelerationY = 0.0;
    a.$accelerationZ = 0.0;
}
let nms_EntityFireball_entityInit = $this => {
    return;
},
nms_EntityFireball__init_0 = ($this, $par1World, $par2, $par4, $par6, $par8, $par10, $par12) => {
    let var$8, var$9, $var14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$par12 = $thread.pop();$par10 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$xTile1 = (-1);
        $this.$yTile1 = (-1);
        $this.$zTile1 = (-1);
        var$8 = 1.0;
        var$9 = 1.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $this.$rotationYaw;
        var$9 = $this.$rotationPitch;
        $this.$posX = $par2;
        $this.$prevPosX = $par2;
        $this.$lastTickPosX = $par2;
        $var14 = $par4 + $this.$yOffset;
        $this.$posY = $var14;
        $this.$prevPosY = $var14;
        $this.$lastTickPosY = $var14;
        $this.$posZ = $par6;
        $this.$prevPosZ = $par6;
        $this.$lastTickPosZ = $par6;
        $this.$rotationYaw = var$8;
        $this.$rotationPitch = var$9;
        nms_Entity_setPosition($this, $par2, $var14, $par6);
        nms_Entity_setPosition($this, $par2, $par4, $par6);
        $var14 = jl_Math_sqrt($par8 * $par8 + $par10 * $par10 + $par12 * $par12);
        $this.$accelerationX = $par8 / $var14 * 0.1;
        $this.$accelerationY = $par10 / $var14 * 0.1;
        $this.$accelerationZ = $par12 / $var14 * 0.1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, $par8, $par10, $par12, var$8, var$9, $var14, $ptr);
},
nms_EntityFireball__init_ = ($this, $par1World, $par2EntityLivingBase, $par3, $par5, $par7) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par7 = $thread.pop();$par5 = $thread.pop();$par3 = $thread.pop();$par2EntityLivingBase = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$xTile1 = (-1);
        $this.$yTile1 = (-1);
        $this.$zTile1 = (-1);
        $this.$shootingEntity0 = $par2EntityLivingBase;
        var$6 = 1.0;
        var$7 = 1.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $par2EntityLivingBase.$posX;
        var$9 = $par2EntityLivingBase.$posY;
        var$10 = $par2EntityLivingBase.$posZ;
        var$6 = $par2EntityLivingBase.$rotationYaw;
        var$11 = $par2EntityLivingBase.$rotationPitch;
        $this.$posX = var$8;
        $this.$prevPosX = var$8;
        $this.$lastTickPosX = var$8;
        $var9 = var$9 + $this.$yOffset;
        $this.$posY = $var9;
        $this.$prevPosY = $var9;
        $this.$lastTickPosY = $var9;
        $this.$posZ = var$10;
        $this.$prevPosZ = var$10;
        $this.$lastTickPosZ = var$10;
        $this.$rotationYaw = var$6;
        $this.$rotationPitch = var$11;
        nms_Entity_setPosition($this, var$8, $var9, var$10);
        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
        $this.$yOffset = 0.0;
        $this.$motionZ = 0.0;
        $this.$motionY = 0.0;
        $this.$motionX = 0.0;
        var$8 = $par3 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.4;
        $par3 = $par5 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.4;
        $par5 = $par7 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.4;
        $var9 = jl_Math_sqrt(var$8 * var$8 + $par3 * $par3 + $par5 * $par5);
        $this.$accelerationX = var$8 / $var9 * 0.1;
        $this.$accelerationY = $par3 / $var9 * 0.1;
        $this.$accelerationZ = $par5 / $var9 * 0.1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityLivingBase, $par3, $par5, $par7, var$6, var$7, var$8, var$9, var$10, var$11, $var9, $ptr);
},
nms_EntityFireball_onUpdate = $this => {
    let $var15, $var2, $var1, $var18, var$5, var$6, var$7, $var4, var$9, var$10, $var3, $var5, $var12, $var13, var$15, var$16, var$17, var$18, var$19, var$20, $var6, $var8, $var16, $var17, var$25, var$26, var$27, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();var$7 =
        $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var18 = $thread.pop();$var1 = $thread.pop();$var2 = $thread.pop();$var15 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var15 = $this.$worldObj;
            if (!$var15.$isRemote) {
                $var2 = $this.$shootingEntity0;
                if (!($var2 !== null && $var2.$isDead)) {
                    $var1 = $this.$posX | 0;
                    $var18 = $this.$posY | 0;
                    var$5 = $this.$posZ | 0;
                    if ($var18 >= 0 && $var18 < 256) {
                        $var18 = $var1 >> 4;
                        $var1 = var$5 >> 4;
                        $var15 = $var15.$chunkProvider.$loadedChunkHashMap;
                        var$6 = Long_or(Long_and(Long_fromInt($var18), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var1), Long_create(4294967295, 0)), 32));
                        $var1 = Long_lo(Long_xor(var$6, Long_shru(var$6, 32)));
                        $var1 = $var1 ^ ($var1 >>> 20 | 0) ^ ($var1 >>> 12 | 0);
                        $var1 = $var1 ^ ($var1 >>> 7 | 0) ^ ($var1 >>> 4 | 0);
                        var$7 = $var15.$hashArray.data;
                        $var15 = var$7[$var1 & (var$7.length - 1 | 0)];
                        b: {
                            while (true) {
                                if ($var15 === null) {
                                    $var15 = null;
                                    break b;
                                }
                                if (Long_eq($var15.$key1, var$6))
                                    break;
                                $var15 = $var15.$nextEntry;
                            }
                        }
                        $var1 = $var15 === null ? 0 : 1;
                    } else
                        $var1 = 0;
                    if ($var1)
                        break a;
                }
                $this.$isDead = 1;
                return;
            }
        }
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        nms_Enchantment_$callClinit();
        nms_EnchantmentHelper_$callClinit();
        if ($this.$fire < 20)
            $this.$fire = 20;
        if ($this.$inGround2) {
            $var15 = $this.$worldObj;
            $var1 = $this.$xTile1;
            $var18 = $this.$yTile1;
            var$5 = $this.$zTile1;
            $ptr = 2;
            continue main;
        }
        $this.$ticksInAir0 = $this.$ticksInAir0 + 1 | 0;
        $var15 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var4 = $this.$worldObj;
        $var1 = 0;
        $var18 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($var15, $var1, $var18, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 == $this.$inTile0) {
            $var1 = $this.$ticksAlive + 1 | 0;
            $this.$ticksAlive = $var1;
            if ($var1 == 600)
                $this.$isDead = 1;
            return;
        }
        $this.$inGround2 = 0;
        var$9 = $this.$motionX;
        $var15 = $this.$rand;
        var$6 = Long_and(Long_add(Long_mul($var15.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$6;
        $this.$motionX = var$9 * Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 * 0.20000000298023224;
        var$9 = $this.$motionY;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$6;
        $this.$motionY = var$9 * Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 * 0.20000000298023224;
        var$9 = $this.$motionZ;
        var$10 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var15.$seed = var$10;
        $this.$motionZ = var$9 * Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 0.20000000298023224;
        $this.$ticksAlive = 0;
        $this.$ticksInAir0 = 0;
        $var15 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var4 = $this.$worldObj;
        $var1 = 0;
        $var18 = 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_rayTraceBlocks_do_do($var4, $var15, $var2, $var1, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var15 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        if ($var3 !== null) {
            $var4 = $this.$worldObj.$vecPool;
            $var2 = $var3.$hitVec;
            $var2 = nms_Vec3Pool_getVecFromPool($var4, $var2.$xCoord, $var2.$yCoord, $var2.$zCoord);
        }
        $var4 = null;
        $var5 = $this.$worldObj;
        $var12 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $this.$motionX, $this.$motionY, $this.$motionZ);
        var$9 = $var12.$minX0 - 1.0;
        $var13 = $var12.$minY0 - 1.0;
        var$15 = $var12.$minZ0 - 1.0;
        var$16 = $var12.$maxX0 + 1.0;
        var$17 = $var12.$maxY + 1.0;
        var$18 = $var12.$maxZ0 + 1.0;
        var$19 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var1 = var$19.$nextPoolIndex;
        $var12 = var$19.$listAABB;
        var$5 = $var12.$size0;
        $var18 = $rt_compare($var1, var$5);
        if ($var18 >= 0) {
            var$20 = new nms_AxisAlignedBB;
            var$20.$minX0 = var$9;
            var$20.$minY0 = $var13;
            var$20.$minZ0 = var$15;
            var$20.$maxX0 = var$16;
            var$20.$maxY = var$17;
            var$20.$maxZ0 = var$18;
            ju_ArrayList_ensureCapacity($var12, var$5 + 1 | 0);
            var$7 = $var12.$array.data;
            $var18 = $var12.$size0;
            $var12.$size0 = $var18 + 1 | 0;
            var$7[$var18] = var$20;
            $var12.$modCount = $var12.$modCount + 1 | 0;
        } else if ($var1 >= 0 && $var18 < 0) {
            var$20 = $var12.$array.data[$var1];
            var$20.$minX0 = var$9;
            var$20.$minY0 = $var13;
            var$20.$minZ0 = var$15;
            var$20.$maxX0 = var$16;
            var$20.$maxY = var$17;
            var$20.$maxZ0 = var$18;
        } else {
            $var15 = new jl_IndexOutOfBoundsException;
            $var15.$suppressionEnabled = 1;
            $var15.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var15);
            $rt_throw($var15);
        }
        var$19.$nextPoolIndex = var$19.$nextPoolIndex + 1 | 0;
        $var12 = null;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var5, $this, var$20, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = 0.0;
        $var8 = 0;
        c: {
            while (true) {
                $var1 = $rt_compare($var8, $var5.$size0);
                if ($var1 >= 0) {
                    if ($var4 !== null) {
                        $var3 = new nms_MovingObjectPosition;
                        $var3.$typeOfHit = nms_EnumMovingObjectType_ENTITY;
                        $var3.$entityHit = $var4;
                        $var3.$hitVec = nms_Vec3Pool_getVecFromPool($var4.$worldObj.$vecPool, $var4.$posX, $var4.$posY, $var4.$posZ);
                    }
                    if ($var3 === null) {
                        var$9 = $this.$posX;
                        $var13 = $this.$motionX;
                        $this.$posX = var$9 + $var13;
                        $this.$posY = $this.$posY + $this.$motionY;
                        var$9 = $this.$posZ;
                        var$15 = $this.$motionZ;
                        $this.$posZ = var$9 + var$15;
                        $var16 = jl_Math_sqrt($var13 * $var13 + var$15 * var$15);
                        $this.$rotationYaw = jl_Math_atan2($this.$motionZ, $this.$motionX) * 180.0 / 3.141592653589793 + 90.0;
                        $var16 = jl_Math_atan2($var16, $this.$motionY) * 180.0 / 3.141592653589793 - 90.0;
                        $this.$rotationPitch = $var16;
                        while (true) {
                            $var17 = $this.$prevRotationPitch;
                            if ($var16 - $var17 >= (-180.0))
                                break;
                            $this.$prevRotationPitch = $var17 - 360.0;
                        }
                        while (true) {
                            $var17 = $this.$prevRotationPitch;
                            var$25 = $var16 - $var17;
                            if (var$25 < 180.0)
                                break;
                            $this.$prevRotationPitch = $var17 + 360.0;
                        }
                        while (true) {
                            $var16 = $this.$rotationYaw;
                            var$26 = $this.$prevRotationYaw;
                            if ($var16 - var$26 >= (-180.0))
                                break;
                            $this.$prevRotationYaw = var$26 - 360.0;
                        }
                        while (true) {
                            var$26 = $this.$prevRotationYaw;
                            var$27 = $var16 - var$26;
                            if (var$27 < 180.0)
                                break;
                            $this.$prevRotationYaw = var$26 + 360.0;
                        }
                        d: {
                            $this.$rotationPitch = $var17 + var$25 * 0.20000000298023224;
                            $this.$rotationYaw = var$26 + var$27 * 0.20000000298023224;
                            $var17 = $this.$getMotionFactor();
                            if ($this.$inWater) {
                                $var18 = 0;
                                e: while (true) {
                                    if ($var18 >= 4) {
                                        $var17 = 0.800000011920929;
                                        break d;
                                    }
                                    $var15 = $this.$worldObj;
                                    $var1 = 0;
                                    while (true) {
                                        var$5 = $rt_compare($var1, $var15.$worldAccesses.$size0);
                                        if (var$5 >= 0)
                                            break;
                                        if ($var1 < 0)
                                            break e;
                                        if (var$5 >= 0)
                                            break e;
                                        $var1 = $var1 + 1 | 0;
                                    }
                                    $var18 = $var18 + 1 | 0;
                                }
                                $var15 = new jl_IndexOutOfBoundsException;
                                $var15.$suppressionEnabled = 1;
                                $var15.$writableStackTrace = 1;
                                $rt_throw($var15);
                            }
                        }
                        var$9 = $this.$motionX + $this.$accelerationX;
                        $this.$motionX = var$9;
                        $var13 = $this.$motionY + $this.$accelerationY;
                        $this.$motionY = $var13;
                        var$15 = $this.$motionZ + $this.$accelerationZ;
                        $this.$motionZ = var$15;
                        var$16 = $var17;
                        $this.$motionX = var$9 * var$16;
                        $this.$motionY = $var13 * var$16;
                        $this.$motionZ = var$15 * var$16;
                        $var15 = $this.$worldObj;
                        $var1 = 0;
                        f: {
                            while (true) {
                                $var18 = $rt_compare($var1, $var15.$worldAccesses.$size0);
                                if ($var18 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break f;
                                if ($var18 >= 0)
                                    break f;
                                $var1 = $var1 + 1 | 0;
                            }
                            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                            return;
                        }
                        $var15 = new jl_IndexOutOfBoundsException;
                        $var15.$suppressionEnabled = 1;
                        $var15.$writableStackTrace = 1;
                        $rt_throw($var15);
                    }
                    $ptr = 5;
                    continue main;
                }
                if ($var8 < 0)
                    break;
                if ($var1 >= 0)
                    break;
                $var9 = $var5.$array.data[$var8];
                if ($var9.$canBeCollidedWith() && !($var9.$isEntityEqual($this.$shootingEntity0) && $this.$ticksInAir0 < 25)) {
                    $var12 = $var9.$boundingBox0;
                    $var13 = $var12.$minX0 - 0.30000001192092896;
                    var$15 = $var12.$minY0 - 0.30000001192092896;
                    var$16 = $var12.$minZ0 - 0.30000001192092896;
                    var$17 = $var12.$maxX0 + 0.30000001192092896;
                    var$18 = $var12.$maxY + 0.30000001192092896;
                    var$9 = $var12.$maxZ0 + 0.30000001192092896;
                    var$19 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var1 = var$19.$nextPoolIndex;
                    $var12 = var$19.$listAABB;
                    var$5 = $var12.$size0;
                    $var18 = $rt_compare($var1, var$5);
                    if ($var18 >= 0) {
                        var$20 = new nms_AxisAlignedBB;
                        var$20.$minX0 = $var13;
                        var$20.$minY0 = var$15;
                        var$20.$minZ0 = var$16;
                        var$20.$maxX0 = var$17;
                        var$20.$maxY = var$18;
                        var$20.$maxZ0 = var$9;
                        ju_ArrayList_ensureCapacity($var12, var$5 + 1 | 0);
                        var$7 = $var12.$array.data;
                        $var18 = $var12.$size0;
                        $var12.$size0 = $var18 + 1 | 0;
                        var$7[$var18] = var$20;
                        $var12.$modCount = $var12.$modCount + 1 | 0;
                    } else {
                        if ($var1 < 0)
                            break c;
                        if ($var18 >= 0)
                            break c;
                        var$20 = $var12.$array.data[$var1];
                        var$20.$minX0 = $var13;
                        var$20.$minY0 = var$15;
                        var$20.$minZ0 = var$16;
                        var$20.$maxX0 = var$17;
                        var$20.$maxY = var$18;
                        var$20.$maxZ0 = var$9;
                    }
                    var$19.$nextPoolIndex = var$19.$nextPoolIndex + 1 | 0;
                    $var12 = nms_AxisAlignedBB_calculateIntercept(var$20, $var15, $var2);
                    if ($var12 !== null) {
                        $var12 = $var12.$hitVec;
                        var$9 = $var12.$xCoord - $var15.$xCoord;
                        $var13 = $var12.$yCoord - $var15.$yCoord;
                        var$15 = $var12.$zCoord - $var15.$zCoord;
                        $var13 = jl_Math_sqrt(var$9 * var$9 + $var13 * $var13 + var$15 * var$15);
                        if (!($var13 >= $var6 && $var6 !== 0.0)) {
                            $var4 = $var9;
                            $var6 = $var13;
                        }
                    }
                }
                $var8 = $var8 + 1 | 0;
            }
            $var15 = new jl_IndexOutOfBoundsException;
            $var15.$suppressionEnabled = 1;
            $var15.$writableStackTrace = 1;
            $rt_throw($var15);
        }
        $var15 = new jl_IndexOutOfBoundsException;
        $var15.$suppressionEnabled = 1;
        $var15.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var15);
        $rt_throw($var15);
    case 5:
        $this.$onImpact($var3);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $this.$posX;
        $var13 = $this.$motionX;
        $this.$posX = var$9 + $var13;
        $this.$posY = $this.$posY + $this.$motionY;
        var$9 = $this.$posZ;
        var$15 = $this.$motionZ;
        $this.$posZ = var$9 + var$15;
        $var16 = jl_Math_sqrt($var13 * $var13 + var$15 * var$15);
        $this.$rotationYaw = jl_Math_atan2($this.$motionZ, $this.$motionX) * 180.0 / 3.141592653589793 + 90.0;
        $var16 = jl_Math_atan2($var16, $this.$motionY) * 180.0 / 3.141592653589793 - 90.0;
        $this.$rotationPitch = $var16;
        while (true) {
            $var17 = $this.$prevRotationPitch;
            if ($var16 - $var17 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var17 - 360.0;
        }
        while (true) {
            $var17 = $this.$prevRotationPitch;
            var$25 = $var16 - $var17;
            if (var$25 < 180.0)
                break;
            $this.$prevRotationPitch = $var17 + 360.0;
        }
        while (true) {
            $var16 = $this.$rotationYaw;
            var$26 = $this.$prevRotationYaw;
            if ($var16 - var$26 >= (-180.0))
                break;
            $this.$prevRotationYaw = var$26 - 360.0;
        }
        while (true) {
            var$26 = $this.$prevRotationYaw;
            var$27 = $var16 - var$26;
            if (var$27 < 180.0)
                break;
            $this.$prevRotationYaw = var$26 + 360.0;
        }
        g: {
            $this.$rotationPitch = $var17 + var$25 * 0.20000000298023224;
            $this.$rotationYaw = var$26 + var$27 * 0.20000000298023224;
            $var17 = $this.$getMotionFactor();
            if ($this.$inWater) {
                $var18 = 0;
                h: while (true) {
                    if ($var18 >= 4) {
                        $var17 = 0.800000011920929;
                        break g;
                    }
                    $var15 = $this.$worldObj;
                    $var1 = 0;
                    while (true) {
                        var$5 = $rt_compare($var1, $var15.$worldAccesses.$size0);
                        if (var$5 >= 0)
                            break;
                        if ($var1 < 0)
                            break h;
                        if (var$5 >= 0)
                            break h;
                        $var1 = $var1 + 1 | 0;
                    }
                    $var18 = $var18 + 1 | 0;
                }
                $var15 = new jl_IndexOutOfBoundsException;
                $var15.$suppressionEnabled = 1;
                $var15.$writableStackTrace = 1;
                $rt_throw($var15);
            }
        }
        var$9 = $this.$motionX + $this.$accelerationX;
        $this.$motionX = var$9;
        $var13 = $this.$motionY + $this.$accelerationY;
        $this.$motionY = $var13;
        var$15 = $this.$motionZ + $this.$accelerationZ;
        $this.$motionZ = var$15;
        var$16 = $var17;
        $this.$motionX = var$9 * var$16;
        $this.$motionY = $var13 * var$16;
        $this.$motionZ = var$15 * var$16;
        $var15 = $this.$worldObj;
        $var1 = 0;
        i: {
            while (true) {
                $var18 = $rt_compare($var1, $var15.$worldAccesses.$size0);
                if ($var18 >= 0)
                    break;
                if ($var1 < 0)
                    break i;
                if ($var18 >= 0)
                    break i;
                $var1 = $var1 + 1 | 0;
            }
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            return;
        }
        $var15 = new jl_IndexOutOfBoundsException;
        $var15.$suppressionEnabled = 1;
        $var15.$writableStackTrace = 1;
        $rt_throw($var15);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var15, $var2, $var1, $var18, var$5, var$6, var$7, $var4, var$9, var$10, $var3, $var5, $var12, $var13, var$15, var$16, var$17, var$18, var$19, var$20, $var6, $var8, $var16, $var17, var$25, var$26, var$27, $var9, $ptr);
},
nms_EntityFireball_getMotionFactor = $this => {
    return 0.949999988079071;
},
nms_EntityFireball_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    var$2 = $this.$xTile1 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2494);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2494), var$4);
    var$2 = $this.$yTile1 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2495);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2495), var$4);
    var$2 = $this.$zTile1 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2496);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2496), var$4);
    var$2 = $this.$inTile0 << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2497);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2497), var$4);
    var$2 = (!$this.$inGround2 ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2500);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2500), var$4);
    var$5 = $rt_createDoubleArray(3).data;
    var$5[0] = $this.$motionX;
    var$5[1] = $this.$motionY;
    var$5[2] = $this.$motionZ;
    var$6 = new nms_NBTTagList;
    var$6.$name = $rt_s(3);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    var$6.$tagList = var$4;
    var$7 = var$5.length;
    var$8 = 0;
    var$3 = null;
    while (var$8 < var$7) {
        var$9 = var$5[var$8];
        var$10 = new nms_NBTTagDouble;
        if (var$3 !== null)
            var$10.$name = var$3;
        else
            var$10.$name = $rt_s(3);
        var$10.$data7 = var$9;
        var$6.$tagType = 6;
        var$4 = var$6.$tagList;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$11 = var$4.$array.data;
        var$12 = var$4.$size0;
        var$4.$size0 = var$12 + 1 | 0;
        var$11[var$12] = var$10;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$8 = var$8 + 1 | 0;
    }
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    var$6.$name = $rt_s(2562);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2562), var$6);
},
nms_EntityFireball_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2494).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2494).$nativeString.length)
                    break a;
                $rt_s(2494).$hashCode1 = (31 * $rt_s(2494).$hashCode1 | 0) + $rt_s(2494).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2494).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$3) {
            b: {
                var$5 = $var2.$key;
                if ($rt_s(2494) !== var$5) {
                    if ($rt_s(2494) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$6 = $rt_s(2494).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$6 = 0;
                    } else
                        var$6 = 1;
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2494) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2494).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2494).$nativeString.length)
                            break c;
                        $rt_s(2494).$hashCode1 = (31 * $rt_s(2494).$hashCode1 | 0) + $rt_s(2494).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2494).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$3) {
                    d: {
                        var$5 = $var2.$key;
                        if ($rt_s(2494) !== var$5) {
                            if ($rt_s(2494) === var$5)
                                var$6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$5 = var$5;
                                var$6 = $rt_s(2494).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$3 = ($var2 === null ? null : $var2.$value0).$data2;
    } else
        var$3 = 0;
    e: {
        $this.$xTile1 = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2495).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2495).$nativeString.length)
                    break e;
                $rt_s(2495).$hashCode1 = (31 * $rt_s(2495).$hashCode1 | 0) + $rt_s(2495).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2495).$hashCode1;
    var$4 = $var2.$elementData.data;
    var$7 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$7 !== null) {
        if (var$7.$origKeyHash == var$3) {
            f: {
                $var2 = var$7.$key;
                if ($rt_s(2495) !== $var2) {
                    if ($rt_s(2495) === $var2)
                        var$6 = 1;
                    else if (!($var2 instanceof jl_String))
                        var$6 = 0;
                    else {
                        $var2 = $var2;
                        var$6 = $rt_s(2495).$nativeString !== $var2.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break f;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$7 = var$7.$next3;
    }
    if (var$7 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2495) === null) {
            var$7 = $var2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2495).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2495).$nativeString.length)
                            break g;
                        $rt_s(2495).$hashCode1 = (31 * $rt_s(2495).$hashCode1 | 0) + $rt_s(2495).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2495).$hashCode1;
            var$4 = $var2.$elementData.data;
            var$7 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$6) {
                    h: {
                        $var2 = var$7.$key;
                        if ($rt_s(2495) !== $var2) {
                            if ($rt_s(2495) === $var2)
                                var$3 = 1;
                            else if ($var2 instanceof jl_String) {
                                $var2 = $var2;
                                var$3 = $rt_s(2495).$nativeString !== $var2.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$3 = (var$7 === null ? null : var$7.$value0).$data2;
    } else
        var$3 = 0;
    i: {
        $this.$yTile1 = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2496).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2496).$nativeString.length)
                    break i;
                $rt_s(2496).$hashCode1 = (31 * $rt_s(2496).$hashCode1 | 0) + $rt_s(2496).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2496).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$8) {
            j: {
                var$5 = $var2.$key;
                if ($rt_s(2496) !== var$5) {
                    if ($rt_s(2496) === var$5)
                        var$3 = 1;
                    else if (var$5 instanceof jl_String) {
                        var$5 = var$5;
                        var$3 = $rt_s(2496).$nativeString !== var$5.$nativeString ? 0 : 1;
                    } else
                        var$3 = 0;
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2496) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2496).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2496).$nativeString.length)
                            break k;
                        $rt_s(2496).$hashCode1 = (31 * $rt_s(2496).$hashCode1 | 0) + $rt_s(2496).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2496).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    l: {
                        var$5 = $var2.$key;
                        if ($rt_s(2496) !== var$5) {
                            if ($rt_s(2496) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2496).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$3 = ($var2 === null ? null : $var2.$value0).$data2;
    }
    m: {
        $this.$zTile1 = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2497).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2497).$nativeString.length)
                    break m;
                $rt_s(2497).$hashCode1 = (31 * $rt_s(2497).$hashCode1 | 0) + $rt_s(2497).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2497).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$8) {
            n: {
                var$5 = $var2.$key;
                if ($rt_s(2497) !== var$5) {
                    if ($rt_s(2497) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2497).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break n;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2497) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2497).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2497).$nativeString.length)
                            break o;
                        $rt_s(2497).$hashCode1 = (31 * $rt_s(2497).$hashCode1 | 0) + $rt_s(2497).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2497).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    p: {
                        var$5 = $var2.$key;
                        if ($rt_s(2497) !== var$5) {
                            if ($rt_s(2497) === var$5)
                                var$3 = 1;
                            else if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                var$3 = $rt_s(2497).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$6 = ($var2 === null ? null : $var2.$value0).$data0;
    } else
        var$6 = 0;
    q: {
        $this.$inTile0 = var$6 & 255;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2500).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2500).$nativeString.length)
                    break q;
                $rt_s(2500).$hashCode1 = (31 * $rt_s(2500).$hashCode1 | 0) + $rt_s(2500).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2500).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$8) {
            r: {
                var$5 = $var2.$key;
                if ($rt_s(2500) !== var$5) {
                    if ($rt_s(2500) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2500).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        var$6 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2500) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2500).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2500).$nativeString.length)
                            break s;
                        $rt_s(2500).$hashCode1 = (31 * $rt_s(2500).$hashCode1 | 0) + $rt_s(2500).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2500).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    t: {
                        var$5 = $var2.$key;
                        if ($rt_s(2500) !== var$5) {
                            if ($rt_s(2500) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2500).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$6 = ($var2 === null ? null : $var2.$value0).$data0;
    }
    var$3 = var$6 != 1 ? 0 : 1;
    u: {
        $this.$inGround2 = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2562).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2562).$nativeString.length)
                    break u;
                $rt_s(2562).$hashCode1 = (31 * $rt_s(2562).$hashCode1 | 0) + $rt_s(2562).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2562).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$8) {
            v: {
                var$5 = $var2.$key;
                if ($rt_s(2562) !== var$5) {
                    if ($rt_s(2562) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2562).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        $this.$isDead = 1;
    else {
        w: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2562).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2562).$nativeString.length)
                        break w;
                    $rt_s(2562).$hashCode1 = (31 * $rt_s(2562).$hashCode1 | 0) + $rt_s(2562).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2562).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$8 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$8) {
                x: {
                    var$5 = $var2.$key;
                    if ($rt_s(2562) !== var$5) {
                        if ($rt_s(2562) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2562).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break x;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            $var2 = new nms_NBTTagList;
            if ($rt_s(2562) !== null)
                $var2.$name = $rt_s(2562);
            else
                $var2.$name = $rt_s(3);
            $par1NBTTagCompound = new ju_ArrayList;
            $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
            $var2.$tagList = $par1NBTTagCompound;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2562) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                y: {
                    if (!$rt_s(2562).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2562).$nativeString.length)
                                break y;
                            $rt_s(2562).$hashCode1 = (31 * $rt_s(2562).$hashCode1 | 0) + $rt_s(2562).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2562).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$8 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$8) {
                        z: {
                            $var2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2562) !== $var2) {
                                if ($rt_s(2562) === $var2)
                                    var$3 = 1;
                                else if (!($var2 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $var2 = $var2;
                                    var$3 = $rt_s(2562).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break z;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var2 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        $par1NBTTagCompound = $var2.$tagList;
        var$6 = $par1NBTTagCompound.$size0;
        if (0 >= var$6) {
            $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
        var$4 = $par1NBTTagCompound.$array.data;
        $this.$motionX = var$4[0].$data7;
        if (1 >= var$6) {
            $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
        $this.$motionY = var$4[1].$data7;
        if (2 >= var$6) {
            $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
        $this.$motionZ = var$4[2].$data7;
    }
},
nms_EntityFireball_canBeCollidedWith = $this => {
    return 1;
},
nms_EntityFireball_getCollisionBorderSize = $this => {
    return 1.0;
},
nms_EntityFireball_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, var$5, var$6;
    if ($this.$invulnerable)
        return 0;
    $this.$velocityChanged = 1;
    if ($par1DamageSource.$getEntity() === null)
        return 0;
    $var3 = ($par1DamageSource.$getEntity()).$getLookVec();
    if ($var3 !== null) {
        var$4 = $var3.$xCoord;
        $this.$motionX = var$4;
        var$5 = $var3.$yCoord;
        $this.$motionY = var$5;
        var$6 = $var3.$zCoord;
        $this.$motionZ = var$6;
        $this.$accelerationX = var$4 * 0.1;
        $this.$accelerationY = var$5 * 0.1;
        $this.$accelerationZ = var$6 * 0.1;
    }
    if ($par1DamageSource.$getEntity() instanceof nms_EntityLivingBase)
        $this.$shootingEntity0 = $par1DamageSource.$getEntity();
    return 1;
};
function nms_EntityLargeFireball() {
    nms_EntityFireball.call(this);
    this.$field_92057_e = 0;
}
let nms_EntityLargeFireball_onImpact = ($this, $par1MovingObjectPosition) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote)
            return;
        $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
        if ($par1MovingObjectPosition !== null) {
            var$2 = $this.$shootingEntity0;
            if (var$2 !== null) {
                var$3 = new nms_EntityDamageSourceIndirect;
                var$3.$hungerDamage = 0.30000001192092896;
                var$3.$damageType = $rt_s(623);
                var$3.$damageSourceEntity = $this;
                var$3.$indirectEntity = var$2;
                var$3.$fireDamage = 1;
                var$3.$projectile = 1;
            } else {
                var$3 = new nms_EntityDamageSourceIndirect;
                var$3.$hungerDamage = 0.30000001192092896;
                var$3.$damageType = $rt_s(2563);
                var$3.$damageSourceEntity = $this;
                var$3.$indirectEntity = $this;
                var$3.$fireDamage = 1;
                var$3.$projectile = 1;
            }
            var$4 = 6.0;
            $ptr = 1;
            continue main;
        }
        a: {
            var$5 = $this.$worldObj;
            $par1MovingObjectPosition = null;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$4 = $this.$field_92057_e;
            var$9 = 1;
            var$10 = (var$5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$3 = $rt_s(1417);
            var$2 = $rt_s(1417);
            if (var$3 !== var$2) {
                var$11 = var$3.$nativeString.length;
                var$12 = var$2.$nativeString.length;
                if (var$11 < var$12)
                    var$12 = var$11;
                var$11 = 0;
                b: {
                    while (true) {
                        if (var$11 >= var$12) {
                            var$3.$nativeString.length;
                            var$2.$nativeString.length;
                            break a;
                        }
                        if (var$11 < 0)
                            break b;
                        if (var$11 >= var$3.$nativeString.length)
                            break b;
                        var$13 = var$3.$nativeString.charCodeAt(var$11);
                        if (var$11 < 0)
                            break;
                        if (var$11 >= var$2.$nativeString.length)
                            break;
                        if (var$13 - var$2.$nativeString.charCodeAt(var$11) | 0)
                            break a;
                        var$11 = var$11 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
        }
        var$3 = $rt_s(1417);
        c: {
            d: {
                e: while (true) {
                    if (var$10 === null) {
                        var$10 = null;
                        break c;
                    }
                    f: {
                        var$2 = var$10.$key0;
                        if (var$3 === var$2)
                            var$12 = 0;
                        else {
                            var$11 = var$3.$nativeString.length;
                            var$13 = var$2.$nativeString.length;
                            if (var$11 < var$13)
                                var$13 = var$11;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$13) {
                                    var$12 = var$3.$nativeString.length - var$2.$nativeString.length | 0;
                                    break f;
                                }
                                if (var$11 < 0)
                                    break d;
                                if (var$11 >= var$3.$nativeString.length)
                                    break d;
                                var$14 = var$3.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break e;
                                if (var$11 >= var$2.$nativeString.length)
                                    break e;
                                var$12 = var$14 - var$2.$nativeString.charCodeAt(var$11) | 0;
                                if (var$12)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$12)
                        break c;
                    var$10 = var$12 >= 0 ? var$10.$right : var$10.$left;
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        var$2 = var$10 === null ? null : var$10.$value2;
        var$12 = var$2 === null ? 0 : var$2.$valueBoolean;
        $ptr = 2;
        continue main;
    case 1:
        $par1MovingObjectPosition.$attackEntityFrom(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        g: {
            var$5 = $this.$worldObj;
            $par1MovingObjectPosition = null;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$4 = $this.$field_92057_e;
            var$9 = 1;
            var$10 = (var$5.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$3 = $rt_s(1417);
            var$2 = $rt_s(1417);
            if (var$3 !== var$2) {
                var$11 = var$3.$nativeString.length;
                var$12 = var$2.$nativeString.length;
                if (var$11 < var$12)
                    var$12 = var$11;
                var$11 = 0;
                h: {
                    while (true) {
                        if (var$11 >= var$12) {
                            var$3.$nativeString.length;
                            var$2.$nativeString.length;
                            break g;
                        }
                        if (var$11 < 0)
                            break h;
                        if (var$11 >= var$3.$nativeString.length)
                            break h;
                        var$13 = var$3.$nativeString.charCodeAt(var$11);
                        if (var$11 < 0)
                            break;
                        if (var$11 >= var$2.$nativeString.length)
                            break;
                        if (var$13 - var$2.$nativeString.charCodeAt(var$11) | 0)
                            break g;
                        var$11 = var$11 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
        }
        var$3 = $rt_s(1417);
        i: {
            j: {
                c: while (true) {
                    if (var$10 === null) {
                        var$10 = null;
                        break i;
                    }
                    k: {
                        var$2 = var$10.$key0;
                        if (var$3 === var$2)
                            var$12 = 0;
                        else {
                            var$11 = var$3.$nativeString.length;
                            var$13 = var$2.$nativeString.length;
                            if (var$11 < var$13)
                                var$13 = var$11;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$13) {
                                    var$12 = var$3.$nativeString.length - var$2.$nativeString.length | 0;
                                    break k;
                                }
                                if (var$11 < 0)
                                    break j;
                                if (var$11 >= var$3.$nativeString.length)
                                    break j;
                                var$14 = var$3.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break c;
                                if (var$11 >= var$2.$nativeString.length)
                                    break c;
                                var$12 = var$14 - var$2.$nativeString.charCodeAt(var$11) | 0;
                                if (var$12)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$12)
                        break i;
                    var$10 = var$12 >= 0 ? var$10.$right : var$10.$left;
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        var$2 = var$10 === null ? null : var$10.$value2;
        var$12 = var$2 === null ? 0 : var$2.$valueBoolean;
        $ptr = 2;
    case 2:
        nms_WorldServer_newExplosion(var$5, $par1MovingObjectPosition, var$6, var$7, var$8, var$4, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityLargeFireball_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_EntityFireball_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$field_92057_e;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2298);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2298), $par1NBTTagCompound);
},
nms_EntityLargeFireball_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        nms_EntityFireball_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2298).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2298).$nativeString.length)
                    break a;
                $rt_s(2298).$hashCode1 = (31 * $rt_s(2298).$hashCode1 | 0) + $rt_s(2298).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2298).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2298) !== var$6) {
                    if ($rt_s(2298) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2298).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        c: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2298).$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= $rt_s(2298).$nativeString.length)
                        break c;
                    $rt_s(2298).$hashCode1 = (31 * $rt_s(2298).$hashCode1 | 0) + $rt_s(2298).$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2298).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                d: {
                    var$6 = var$2.$key;
                    if ($rt_s(2298) !== var$6) {
                        if ($rt_s(2298) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2298).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break d;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2298) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2298).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2298).$nativeString.length)
                                break e;
                            $rt_s(2298).$hashCode1 = (31 * $rt_s(2298).$hashCode1 | 0) + $rt_s(2298).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2298).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$7) {
                        f: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(2298) !== $par1NBTTagCompound) {
                                if ($rt_s(2298) === $par1NBTTagCompound)
                                    var$3 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$3 = $rt_s(2298).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$3 = (var$6 === null ? null : var$6.$value0).$data;
        }
        $this.$field_92057_e = var$3;
    }
},
nms_EntityList$_clinit_$lambda$_63_5 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_5__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_5__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_5();
    nms_EntityList$_clinit_$lambda$_63_5__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_5_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityLargeFireball;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile1 = (-1);
        var$2.$yTile1 = (-1);
        var$2.$zTile1 = (-1);
        var$3 = 1.0;
        var$4 = 1.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$field_92057_e = 1;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntitySmallFireball = $rt_classWithoutFields(nms_EntityFireball),
nms_EntitySmallFireball_onImpact = ($this, $par1MovingObjectPosition) => {
    let var$2, var$3, $var2, $var3, $var4, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$worldObj;
        if (!var$2.$isRemote) {
            var$3 = $par1MovingObjectPosition.$entityHit;
            if (var$3 === null) {
                a: {
                    $var2 = $par1MovingObjectPosition.$blockX;
                    $var3 = $par1MovingObjectPosition.$blockY;
                    $var4 = $par1MovingObjectPosition.$blockZ;
                    switch ($par1MovingObjectPosition.$sideHit) {
                        case 0:
                            $var3 = $var3 + (-1) | 0;
                            break a;
                        case 1:
                            $var3 = $var3 + 1 | 0;
                            break a;
                        case 2:
                            $var4 = $var4 + (-1) | 0;
                            break a;
                        case 3:
                            $var4 = $var4 + 1 | 0;
                            break a;
                        case 4:
                            $var2 = $var2 + (-1) | 0;
                            break a;
                        case 5:
                            $var2 = $var2 + 1 | 0;
                            break a;
                        default:
                    }
                }
                $ptr = 1;
                continue main;
            }
            if (!var$3.$isImmuneToFire) {
                var$2 = $this.$shootingEntity0;
                if (var$2 !== null) {
                    var$7 = new nms_EntityDamageSourceIndirect;
                    var$7.$hungerDamage = 0.30000001192092896;
                    var$7.$damageType = $rt_s(623);
                    var$7.$damageSourceEntity = $this;
                    var$7.$indirectEntity = var$2;
                    var$7.$fireDamage = 1;
                    var$7.$projectile = 1;
                } else {
                    var$7 = new nms_EntityDamageSourceIndirect;
                    var$7.$hungerDamage = 0.30000001192092896;
                    var$7.$damageType = $rt_s(2563);
                    var$7.$damageSourceEntity = $this;
                    var$7.$indirectEntity = $this;
                    var$7.$fireDamage = 1;
                    var$7.$projectile = 1;
                }
                var$8 = 5.0;
                $ptr = 2;
                continue main;
            }
            $this.$isDead = 1;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId(var$2, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!(var$9 ? 0 : 1)) {
            $this.$isDead = 1;
            return;
        }
        var$2 = $this.$worldObj;
        nms_Block_$callClinit();
        var$9 = nms_Block_fire.$blockID;
        var$10 = 0;
        var$11 = 3;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = var$3.$attackEntityFrom(var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2) {
            $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
            $var2 = 100;
            nms_Enchantment_$callClinit();
            $var3 = nms_Enchantment_fireProtection.$effectId;
            var$12 = $par1MovingObjectPosition.$getLastActiveItems();
            nms_EnchantmentHelper_$callClinit();
            if (var$12 === null)
                var$9 = 0;
            else {
                var$12 = var$12.data;
                var$9 = 0;
                var$10 = var$12.length;
                var$11 = 0;
                while (var$11 < var$10) {
                    $var4 = nms_EnchantmentHelper_getEnchantmentLevel($var3, var$12[var$11]);
                    if ($var4 > var$9)
                        var$9 = $var4;
                    var$11 = var$11 + 1 | 0;
                }
            }
            if (var$9 > 0) {
                var$8 = 100.0 * var$9 * 0.15000000596046448;
                $var3 = var$8 | 0;
                if (var$8 < $var3)
                    $var3 = $var3 - 1 | 0;
                $var2 = $var2 - $var3 | 0;
            }
            if ($par1MovingObjectPosition.$fire < $var2)
                $par1MovingObjectPosition.$fire = $var2;
        }
        $this.$isDead = 1;
        return;
    case 3:
        nms_World_setBlock(var$2, $var2, $var3, $var4, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, var$2, var$3, $var2, $var3, $var4, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntitySmallFireball_canBeCollidedWith = $this => {
    return 0;
},
nms_EntitySmallFireball_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    return 0;
},
nms_EntityList$_clinit_$lambda$_63_6 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_6__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_6__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_6();
    nms_EntityList$_clinit_$lambda$_63_6__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_6_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySmallFireball;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile1 = (-1);
        var$2.$yTile1 = (-1);
        var$2.$zTile1 = (-1);
        var$3 = 1.0;
        var$4 = 1.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = 0.3125;
        var$4 = 0.3125;
        $ptr = 2;
    case 2:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityEnderPearl = $rt_classWithoutFields(nms_EntityThrowable),
nms_EntityEnderPearl_onImpact = ($this, $par1MovingObjectPosition) => {
    let $var3, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var2 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
        if ($par1MovingObjectPosition !== null) {
            if ($this.$thrower === null) {
                $var3 = $this.$throwerName;
                if ($var3 !== null && $var3.$nativeString.length > 0) {
                    $var3 = $this.$worldObj;
                    var$3 = $this.$throwerName;
                    var$4 = 0;
                    a: {
                        while (true) {
                            var$5 = $var3.$playerEntities;
                            $var2 = $rt_compare(var$4, var$5.$size0);
                            if ($var2 >= 0) {
                                $var3 = null;
                                break a;
                            }
                            if (var$4 < 0)
                                break;
                            if ($var2 >= 0)
                                break;
                            var$5 = var$5.$array.data[var$4].$username;
                            if (var$3 === var$5)
                                $var2 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var2 = 0;
                            else {
                                var$5 = var$5;
                                $var2 = var$3.$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if ($var2) {
                                $var3 = $var3.$playerEntities;
                                if (var$4 >= 0 && var$4 < $var3.$size0) {
                                    $var3 = $var3.$array.data[var$4];
                                    break a;
                                }
                                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                $par1MovingObjectPosition.$suppressionEnabled = 1;
                                $par1MovingObjectPosition.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                $rt_throw($par1MovingObjectPosition);
                            }
                            var$4 = var$4 + 1 | 0;
                        }
                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                        $par1MovingObjectPosition.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                        $rt_throw($par1MovingObjectPosition);
                    }
                    $this.$thrower = $var3;
                }
            }
            var$5 = $this.$thrower;
            $var3 = new nms_EntityDamageSourceIndirect;
            $var3.$hungerDamage = 0.30000001192092896;
            $var3.$damageType = $rt_s(2561);
            $var3.$damageSourceEntity = $this;
            $var3.$indirectEntity = var$5;
            $var3.$projectile = 1;
            var$7 = 0.0;
            $ptr = 1;
            continue main;
        }
        $var2 = 0;
        b: while (true) {
            if ($var2 >= 32) {
                if (!$this.$worldObj.$isRemote) {
                    if ($this.$thrower === null) {
                        $par1MovingObjectPosition = $this.$throwerName;
                        if ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$nativeString.length > 0) {
                            $par1MovingObjectPosition = $this.$worldObj;
                            $var3 = $this.$throwerName;
                            var$4 = 0;
                            c: {
                                while (true) {
                                    var$3 = $par1MovingObjectPosition.$playerEntities;
                                    $var2 = $rt_compare(var$4, var$3.$size0);
                                    if ($var2 >= 0) {
                                        $par1MovingObjectPosition = null;
                                        break c;
                                    }
                                    if (var$4 < 0)
                                        break;
                                    if ($var2 >= 0)
                                        break;
                                    var$3 = var$3.$array.data[var$4].$username;
                                    if ($var3 === var$3)
                                        $var2 = 1;
                                    else if (!(var$3 instanceof jl_String))
                                        $var2 = 0;
                                    else {
                                        var$3 = var$3;
                                        $var2 = $var3.$nativeString !== var$3.$nativeString ? 0 : 1;
                                    }
                                    if ($var2) {
                                        $par1MovingObjectPosition = $par1MovingObjectPosition.$playerEntities;
                                        if (var$4 >= 0 && var$4 < $par1MovingObjectPosition.$size0) {
                                            $par1MovingObjectPosition = $par1MovingObjectPosition.$array.data[var$4];
                                            break c;
                                        }
                                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                                        $par1MovingObjectPosition.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                        $rt_throw($par1MovingObjectPosition);
                                    }
                                    var$4 = var$4 + 1 | 0;
                                }
                                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                $par1MovingObjectPosition.$suppressionEnabled = 1;
                                $par1MovingObjectPosition.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                $rt_throw($par1MovingObjectPosition);
                            }
                            $this.$thrower = $par1MovingObjectPosition;
                        }
                    }
                    var$3 = $this.$thrower;
                    if (var$3 !== null && var$3 instanceof nms_EntityPlayerMP) {
                        $var3 = var$3;
                        if (!$var3.$playerNetServerHandler.$connectionClosed && $var3.$worldObj === $this.$worldObj) {
                            if (var$3.$ridingEntity === null ? 0 : 1) {
                                $par1MovingObjectPosition = null;
                                $ptr = 2;
                                continue main;
                            }
                            if ($this.$thrower === null) {
                                $par1MovingObjectPosition = $this.$throwerName;
                                if ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$nativeString.length > 0) {
                                    $par1MovingObjectPosition = $this.$worldObj;
                                    $var3 = $this.$throwerName;
                                    var$4 = 0;
                                    d: {
                                        e: {
                                            while (true) {
                                                var$3 = $par1MovingObjectPosition.$playerEntities;
                                                $var2 = $rt_compare(var$4, var$3.$size0);
                                                if ($var2 >= 0)
                                                    break;
                                                if (var$4 < 0)
                                                    break e;
                                                if ($var2 >= 0)
                                                    break e;
                                                var$3 = var$3.$array.data[var$4].$username;
                                                if ($var3 === var$3)
                                                    $var2 = 1;
                                                else if (!(var$3 instanceof jl_String))
                                                    $var2 = 0;
                                                else {
                                                    var$3 = var$3;
                                                    $var2 = $var3.$nativeString !== var$3.$nativeString ? 0 : 1;
                                                }
                                                if ($var2) {
                                                    $par1MovingObjectPosition = $par1MovingObjectPosition.$playerEntities;
                                                    if (var$4 >= 0 && var$4 < $par1MovingObjectPosition.$size0) {
                                                        $par1MovingObjectPosition = $par1MovingObjectPosition.$array.data[var$4];
                                                        break d;
                                                    }
                                                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                                                    $par1MovingObjectPosition.$writableStackTrace = 1;
                                                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                                    $rt_throw($par1MovingObjectPosition);
                                                }
                                                var$4 = var$4 + 1 | 0;
                                            }
                                            $par1MovingObjectPosition = null;
                                            break d;
                                        }
                                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                                        $par1MovingObjectPosition.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                        $rt_throw($par1MovingObjectPosition);
                                    }
                                    $this.$thrower = $par1MovingObjectPosition;
                                }
                            }
                            $par1MovingObjectPosition = $this.$thrower;
                            var$8 = $this.$posX;
                            var$9 = $this.$posY;
                            var$10 = $this.$posZ;
                            $ptr = 3;
                            continue main;
                        }
                    }
                    $this.$isDead = 1;
                }
                return;
            }
            $par1MovingObjectPosition = $this.$worldObj;
            $var3 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$11;
            $var3.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            nle_EaglercraftRandom_nextGaussian($var3);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            var$4 = 0;
            while (true) {
                var$12 = $rt_compare(var$4, $par1MovingObjectPosition.$worldAccesses.$size0);
                if (var$12 >= 0)
                    break;
                if (var$4 < 0)
                    break b;
                if (var$12 >= 0)
                    break b;
                var$4 = var$4 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        $rt_throw($par1MovingObjectPosition);
    case 1:
        $par1MovingObjectPosition.$attackEntityFrom($var3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = 0;
        f: while (true) {
            if ($var2 >= 32) {
                if (!$this.$worldObj.$isRemote) {
                    if ($this.$thrower === null) {
                        $par1MovingObjectPosition = $this.$throwerName;
                        if ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$nativeString.length > 0) {
                            $par1MovingObjectPosition = $this.$worldObj;
                            $var3 = $this.$throwerName;
                            var$4 = 0;
                            g: {
                                while (true) {
                                    var$3 = $par1MovingObjectPosition.$playerEntities;
                                    $var2 = $rt_compare(var$4, var$3.$size0);
                                    if ($var2 >= 0) {
                                        $par1MovingObjectPosition = null;
                                        break g;
                                    }
                                    if (var$4 < 0)
                                        break;
                                    if ($var2 >= 0)
                                        break;
                                    var$3 = var$3.$array.data[var$4].$username;
                                    if ($var3 === var$3)
                                        $var2 = 1;
                                    else if (!(var$3 instanceof jl_String))
                                        $var2 = 0;
                                    else {
                                        var$3 = var$3;
                                        $var2 = $var3.$nativeString !== var$3.$nativeString ? 0 : 1;
                                    }
                                    if ($var2) {
                                        $par1MovingObjectPosition = $par1MovingObjectPosition.$playerEntities;
                                        if (var$4 >= 0 && var$4 < $par1MovingObjectPosition.$size0) {
                                            $par1MovingObjectPosition = $par1MovingObjectPosition.$array.data[var$4];
                                            break g;
                                        }
                                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                                        $par1MovingObjectPosition.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                        $rt_throw($par1MovingObjectPosition);
                                    }
                                    var$4 = var$4 + 1 | 0;
                                }
                                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                $par1MovingObjectPosition.$suppressionEnabled = 1;
                                $par1MovingObjectPosition.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                $rt_throw($par1MovingObjectPosition);
                            }
                            $this.$thrower = $par1MovingObjectPosition;
                        }
                    }
                    var$3 = $this.$thrower;
                    if (var$3 !== null && var$3 instanceof nms_EntityPlayerMP) {
                        $var3 = var$3;
                        if (!$var3.$playerNetServerHandler.$connectionClosed && $var3.$worldObj === $this.$worldObj) {
                            if (var$3.$ridingEntity === null ? 0 : 1) {
                                $par1MovingObjectPosition = null;
                                $ptr = 2;
                                continue main;
                            }
                            if ($this.$thrower === null) {
                                $par1MovingObjectPosition = $this.$throwerName;
                                if ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$nativeString.length > 0) {
                                    $par1MovingObjectPosition = $this.$worldObj;
                                    $var3 = $this.$throwerName;
                                    var$4 = 0;
                                    h: {
                                        i: {
                                            while (true) {
                                                var$3 = $par1MovingObjectPosition.$playerEntities;
                                                $var2 = $rt_compare(var$4, var$3.$size0);
                                                if ($var2 >= 0)
                                                    break;
                                                if (var$4 < 0)
                                                    break i;
                                                if ($var2 >= 0)
                                                    break i;
                                                var$3 = var$3.$array.data[var$4].$username;
                                                if ($var3 === var$3)
                                                    $var2 = 1;
                                                else if (!(var$3 instanceof jl_String))
                                                    $var2 = 0;
                                                else {
                                                    var$3 = var$3;
                                                    $var2 = $var3.$nativeString !== var$3.$nativeString ? 0 : 1;
                                                }
                                                if ($var2) {
                                                    $par1MovingObjectPosition = $par1MovingObjectPosition.$playerEntities;
                                                    if (var$4 >= 0 && var$4 < $par1MovingObjectPosition.$size0) {
                                                        $par1MovingObjectPosition = $par1MovingObjectPosition.$array.data[var$4];
                                                        break h;
                                                    }
                                                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                                                    $par1MovingObjectPosition.$writableStackTrace = 1;
                                                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                                    $rt_throw($par1MovingObjectPosition);
                                                }
                                                var$4 = var$4 + 1 | 0;
                                            }
                                            $par1MovingObjectPosition = null;
                                            break h;
                                        }
                                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                                        $par1MovingObjectPosition.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                        $rt_throw($par1MovingObjectPosition);
                                    }
                                    $this.$thrower = $par1MovingObjectPosition;
                                }
                            }
                            $par1MovingObjectPosition = $this.$thrower;
                            var$8 = $this.$posX;
                            var$9 = $this.$posY;
                            var$10 = $this.$posZ;
                            $ptr = 3;
                            continue main;
                        }
                    }
                    $this.$isDead = 1;
                }
                return;
            }
            $par1MovingObjectPosition = $this.$worldObj;
            $var3 = $this.$rand;
            var$11 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$11;
            $var3.$seed = Long_and(Long_add(Long_mul(var$11, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            nle_EaglercraftRandom_nextGaussian($var3);
            nle_EaglercraftRandom_nextGaussian($this.$rand);
            var$4 = 0;
            while (true) {
                var$12 = $rt_compare(var$4, $par1MovingObjectPosition.$worldAccesses.$size0);
                if (var$12 >= 0)
                    break;
                if (var$4 < 0)
                    break f;
                if (var$12 >= 0)
                    break f;
                var$4 = var$4 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        $rt_throw($par1MovingObjectPosition);
    case 2:
        var$3.$mountEntity($par1MovingObjectPosition);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$thrower === null) {
            $par1MovingObjectPosition = $this.$throwerName;
            if ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$nativeString.length > 0) {
                $par1MovingObjectPosition = $this.$worldObj;
                $var3 = $this.$throwerName;
                var$4 = 0;
                f: {
                    j: {
                        while (true) {
                            var$3 = $par1MovingObjectPosition.$playerEntities;
                            $var2 = $rt_compare(var$4, var$3.$size0);
                            if ($var2 >= 0)
                                break;
                            if (var$4 < 0)
                                break j;
                            if ($var2 >= 0)
                                break j;
                            var$3 = var$3.$array.data[var$4].$username;
                            if ($var3 === var$3)
                                $var2 = 1;
                            else if (!(var$3 instanceof jl_String))
                                $var2 = 0;
                            else {
                                var$3 = var$3;
                                $var2 = $var3.$nativeString !== var$3.$nativeString ? 0 : 1;
                            }
                            if ($var2) {
                                $par1MovingObjectPosition = $par1MovingObjectPosition.$playerEntities;
                                if (var$4 >= 0 && var$4 < $par1MovingObjectPosition.$size0) {
                                    $par1MovingObjectPosition = $par1MovingObjectPosition.$array.data[var$4];
                                    break f;
                                }
                                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                $par1MovingObjectPosition.$suppressionEnabled = 1;
                                $par1MovingObjectPosition.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                $rt_throw($par1MovingObjectPosition);
                            }
                            var$4 = var$4 + 1 | 0;
                        }
                        $par1MovingObjectPosition = null;
                        break f;
                    }
                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                    $par1MovingObjectPosition.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $this.$thrower = $par1MovingObjectPosition;
            }
        }
        $par1MovingObjectPosition = $this.$thrower;
        var$8 = $this.$posX;
        var$9 = $this.$posY;
        var$10 = $this.$posZ;
        $ptr = 3;
    case 3:
        $par1MovingObjectPosition.$setPositionAndUpdate(var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$thrower === null) {
            $par1MovingObjectPosition = $this.$throwerName;
            if ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$nativeString.length > 0) {
                $par1MovingObjectPosition = $this.$worldObj;
                $var3 = $this.$throwerName;
                var$4 = 0;
                f: {
                    j: {
                        while (true) {
                            var$3 = $par1MovingObjectPosition.$playerEntities;
                            $var2 = $rt_compare(var$4, var$3.$size0);
                            if ($var2 >= 0)
                                break;
                            if (var$4 < 0)
                                break j;
                            if ($var2 >= 0)
                                break j;
                            var$3 = var$3.$array.data[var$4].$username;
                            if ($var3 === var$3)
                                $var2 = 1;
                            else if (!(var$3 instanceof jl_String))
                                $var2 = 0;
                            else {
                                var$3 = var$3;
                                $var2 = $var3.$nativeString !== var$3.$nativeString ? 0 : 1;
                            }
                            if ($var2) {
                                $par1MovingObjectPosition = $par1MovingObjectPosition.$playerEntities;
                                if (var$4 >= 0 && var$4 < $par1MovingObjectPosition.$size0) {
                                    $par1MovingObjectPosition = $par1MovingObjectPosition.$array.data[var$4];
                                    break f;
                                }
                                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                $par1MovingObjectPosition.$suppressionEnabled = 1;
                                $par1MovingObjectPosition.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                $rt_throw($par1MovingObjectPosition);
                            }
                            var$4 = var$4 + 1 | 0;
                        }
                        $par1MovingObjectPosition = null;
                        break f;
                    }
                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                    $par1MovingObjectPosition.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $this.$thrower = $par1MovingObjectPosition;
            }
        }
        $var3 = $this.$thrower;
        $var3.$fallDistance = 0.0;
        $par1MovingObjectPosition = nms_DamageSource_fall;
        var$7 = 5.0;
        $ptr = 4;
    case 4:
        $var3.$attackEntityFrom($par1MovingObjectPosition, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, $var3, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_7 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_7__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_7__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_7();
    nms_EntityList$_clinit_$lambda$_63_7__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_7_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityEnderPearl;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile0 = (-1);
        var$2.$yTile0 = (-1);
        var$2.$zTile0 = (-1);
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityEnderEye() {
    let a = this; nms_Entity.call(a);
    a.$targetX0 = 0.0;
    a.$targetY0 = 0.0;
    a.$targetZ0 = 0.0;
    a.$despawnTimer = 0;
    a.$shatterOrDrop = 0;
}
let nms_EntityEnderEye_entityInit = $this => {
    return;
},
nms_EntityEnderEye_moveTowards = ($this, $par1, $par3, $par4) => {
    let $var6, $var8, $var10, var$7, var$8, var$9, var$10;
    $var6 = $par1 - $this.$posX;
    $var8 = $par4 - $this.$posZ;
    $var10 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8);
    if ($var10 <= 12.0) {
        $this.$targetX0 = $par1;
        $this.$targetY0 = $par3;
        $this.$targetZ0 = $par4;
    } else {
        $par1 = $this.$posX;
        $par4 = $var10;
        $this.$targetX0 = $par1 + $var6 / $par4 * 12.0;
        $this.$targetZ0 = $this.$posZ + $var8 / $par4 * 12.0;
        $this.$targetY0 = $this.$posY + 8.0;
    }
    $this.$despawnTimer = 0;
    var$7 = $this.$rand;
    var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$7.$seed = var$8;
    var$9 = Long_lo(Long_shru(var$8, 17));
    while (true) {
        var$10 = var$9 % 5 | 0;
        if (((var$9 - var$10 | 0) + 4 | 0) >= 0)
            break;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        var$9 = Long_lo(Long_shru(var$8, 17));
    }
    $this.$shatterOrDrop = var$10 <= 0 ? 0 : 1;
},
nms_EntityEnderEye_onUpdate = $this => {
    let $var2, $var8, $var4, $var1, $var6, $var7, var$7, var$8, var$9, $var3, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var7
        = $thread.pop();$var6 = $thread.pop();$var1 = $thread.pop();$var4 = $thread.pop();$var8 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$lastTickPosX = $this.$posX;
        $this.$lastTickPosY = $this.$posY;
        $this.$lastTickPosZ = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$posX;
        $var8 = $this.$motionX;
        $this.$posX = $var2 + $var8;
        $this.$posY = $this.$posY + $this.$motionY;
        $var2 = $this.$posZ;
        $var4 = $this.$motionZ;
        $this.$posZ = $var2 + $var4;
        $var1 = jl_Math_sqrt($var8 * $var8 + $var4 * $var4);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        $var2 = $this.$motionY;
        $var8 = $var1;
        $var6 = jl_Math_atan2($var2, $var8) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = $var6;
        while (true) {
            $var7 = $this.$prevRotationPitch;
            if ($var6 - $var7 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var7 - 360.0;
        }
        while (true) {
            $var7 = $this.$prevRotationPitch;
            var$7 = $var6 - $var7;
            if (var$7 < 180.0)
                break;
            $this.$prevRotationPitch = $var7 + 360.0;
        }
        while (true) {
            $var6 = $this.$rotationYaw;
            var$8 = $this.$prevRotationYaw;
            if ($var6 - var$8 >= (-180.0))
                break;
            $this.$prevRotationYaw = var$8 - 360.0;
        }
        while (true) {
            var$8 = $this.$prevRotationYaw;
            var$9 = $var6 - var$8;
            if (var$9 < 180.0)
                break;
            $this.$prevRotationYaw = var$8 + 360.0;
        }
        $this.$rotationPitch = $var7 + var$7 * 0.20000000298023224;
        $this.$rotationYaw = var$8 + var$9 * 0.20000000298023224;
        if (!$this.$worldObj.$isRemote) {
            $var2 = $this.$targetX0 - $this.$posX;
            $var4 = $this.$targetZ0 - $this.$posZ;
            $var6 = jl_Math_sqrt($var2 * $var2 + $var4 * $var4);
            $var7 = jl_Math_atan2($var4, $var2);
            $var8 = $var8 + ($var6 - $var1) * 0.0025;
            if ($var6 < 1.0) {
                $var8 = $var8 * 0.8;
                $this.$motionY = $this.$motionY * 0.8;
            }
            $var2 = $var7;
            $this.$motionX = jl_Math_cos($var2) * $var8;
            $this.$motionZ = jl_Math_sin($var2) * $var8;
            if ($this.$posY >= $this.$targetY0) {
                $var2 = $this.$motionY;
                $this.$motionY = $var2 + ((-1.0) - $var2) * 0.014999999664723873;
            } else {
                $var2 = $this.$motionY;
                $this.$motionY = $var2 + (1.0 - $var2) * 0.014999999664723873;
            }
        }
        a: {
            if ($this.$inWater) {
                $var3 = 0;
                b: while (true) {
                    if ($var3 >= 4)
                        break a;
                    var$11 = $this.$worldObj;
                    var$12 = 0;
                    while (true) {
                        var$13 = $rt_compare(var$12, var$11.$worldAccesses.$size0);
                        if (var$13 >= 0)
                            break;
                        if (var$12 < 0)
                            break b;
                        if (var$13 >= 0)
                            break b;
                        var$12 = var$12 + 1 | 0;
                    }
                    $var3 = $var3 + 1 | 0;
                }
                var$11 = new jl_IndexOutOfBoundsException;
                var$11.$suppressionEnabled = 1;
                var$11.$writableStackTrace = 1;
                $rt_throw(var$11);
            }
            var$11 = $this.$worldObj;
            var$14 = $this.$rand;
            var$15 = Long_and(Long_add(Long_mul(var$14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$14.$seed = var$15;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$14.$seed = var$15;
            var$15 = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$14.$seed = var$15;
            var$14.$seed = Long_and(Long_add(Long_mul(var$15, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3 = 0;
            while (true) {
                var$12 = $rt_compare($var3, var$11.$worldAccesses.$size0);
                if (var$12 >= 0)
                    break a;
                if ($var3 < 0)
                    break;
                if (var$12 >= 0)
                    break;
                $var3 = $var3 + 1 | 0;
            }
            var$11 = new jl_IndexOutOfBoundsException;
            var$11.$suppressionEnabled = 1;
            var$11.$writableStackTrace = 1;
            $rt_throw(var$11);
        }
        if (!$this.$worldObj.$isRemote) {
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            $var3 = $this.$despawnTimer + 1 | 0;
            $this.$despawnTimer = $var3;
            if ($var3 > 80) {
                var$11 = $this.$worldObj;
                if (!var$11.$isRemote) {
                    $this.$isDead = 1;
                    if ($this.$shatterOrDrop) {
                        var$14 = new nms_EntityItem;
                        $var2 = $this.$posX;
                        $var8 = $this.$posY;
                        $var4 = $this.$posZ;
                        var$16 = new nms_ItemStack;
                        nms_Item_$callClinit();
                        var$17 = nms_Item_eyeOfEnder;
                        nms_ItemStack_$callClinit();
                        var$16.$itemID = var$17.$itemID0;
                        var$16.$stackSize = 1;
                        var$16.$itemDamage = 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var3 = 2003;
                    $var2 = $this.$posX;
                    var$12 = Long_lo(Long_fromNumber($var2 + jl_Math_sign($var2) * 0.5));
                    $var4 = $this.$posY;
                    var$13 = Long_lo(Long_fromNumber($var4 + jl_Math_sign($var4) * 0.5));
                    $var2 = $this.$posZ;
                    var$18 = Long_lo(Long_fromNumber($var2 + jl_Math_sign($var2) * 0.5));
                    var$19 = 0;
                    var$14 = null;
                    var$20 = 0;
                    $var8 = var$12;
                    $var4 = var$13;
                    var$21 = var$18;
                    var$16 = var$11.$worldAccesses;
                    var$22 = $rt_compare(var$20, var$16.$size0);
                    if (var$22 < 0) {
                        if (var$20 >= 0 && var$22 < 0) {
                            var$16 = var$16.$array.data[var$20];
                            var$23 = var$16.$mcServer.$serverConfigManager;
                            $var2 = 64.0;
                            var$24 = var$16.$theWorldServer.$provider.$dimensionId;
                            var$16 = new nms_Packet61DoorChange;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$16.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$16.$sfxID = $var3;
                            var$16.$posX1 = var$12;
                            var$16.$posY1 = var$13;
                            var$16.$posZ1 = var$18;
                            var$16.$auxData = var$19;
                            var$16.$disableRelativeVolume = 0;
                            $ptr = 3;
                            continue main;
                        }
                        var$11 = new jl_IndexOutOfBoundsException;
                        var$11.$suppressionEnabled = 1;
                        var$11.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$11);
                        $rt_throw(var$11);
                    }
                }
            }
        }
        return;
    case 2:
        nms_EntityItem__init_(var$14, var$11, $var2, $var8, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$25 = var$14.$dataWatcher;
        var$17 = var$25.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$26 = jl_Integer_integerCache.data[138];
        if (var$26 === null) {
            var$17 = var$17.$elementData.data[0];
            while (var$17 !== null && var$17.$key !== null) {
                var$17 = var$17.$next3;
            }
        } else {
            var$13 = var$26.$value;
            var$27 = var$17.$elementData.data;
            var$17 = var$27[var$13 & (var$27.length - 1 | 0)];
            while (var$17 !== null) {
                if (var$17.$origKeyHash == var$13) {
                    var$23 = var$17.$key;
                    if (var$26 !== var$23 && !jl_Integer_equals(var$26, var$23) ? 0 : 1)
                        break;
                }
                var$17 = var$17.$next3;
            }
        }
        var$23 = var$17 === null ? null : var$17.$value0;
        if (!(var$16 !== var$23.$watchedObject ? 0 : 1)) {
            var$23.$watchedObject = var$16;
            var$23.$watched = 1;
            var$25.$objectChanged = 1;
        }
        var$26 = var$14.$dataWatcher;
        var$16 = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$23 = jl_Integer_integerCache.data[138];
        if (var$23 === null) {
            var$16 = var$16.$elementData.data[0];
            while (var$16 !== null && var$16.$key !== null) {
                var$16 = var$16.$next3;
            }
        } else {
            var$13 = var$23.$value;
            var$27 = var$16.$elementData.data;
            var$16 = var$27[var$13 & (var$27.length - 1 | 0)];
            while (var$16 !== null) {
                if (var$16.$origKeyHash == var$13) {
                    var$17 = var$16.$key;
                    if (var$23 !== var$17 && !jl_Integer_equals(var$23, var$17) ? 0 : 1)
                        break;
                }
                var$16 = var$16.$next3;
            }
        }
        (var$16 === null ? null : var$16.$value0).$watched = 1;
        var$26.$objectChanged = 1;
        $ptr = 4;
        continue main;
    case 3:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$23, var$14, $var8, $var4, var$21, $var2, var$24, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = var$20 + 1 | 0;
        var$16 = var$11.$worldAccesses;
        var$22 = $rt_compare(var$20, var$16.$size0);
        if (var$22 >= 0)
            return;
        if (var$20 >= 0 && var$22 < 0) {
            var$16 = var$16.$array.data[var$20];
            var$23 = var$16.$mcServer.$serverConfigManager;
            $var2 = 64.0;
            var$24 = var$16.$theWorldServer.$provider.$dimensionId;
            var$16 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$16.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$16.$sfxID = $var3;
            var$16.$posX1 = var$12;
            var$16.$posY1 = var$13;
            var$16.$posZ1 = var$18;
            var$16.$auxData = var$19;
            var$16.$disableRelativeVolume = 0;
            continue main;
        }
        var$11 = new jl_IndexOutOfBoundsException;
        var$11.$suppressionEnabled = 1;
        var$11.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$11);
        $rt_throw(var$11);
    case 4:
        nms_World_spawnEntityInWorld(var$11, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, $var8, $var4, $var1, $var6, $var7, var$7, var$8, var$9, $var3, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, $ptr);
},
nms_EntityEnderEye_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityEnderEye_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityEnderEye_canAttackWithItem = $this => {
    return 0;
},
nms_EntityList$_clinit_$lambda$_63_8 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_8__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_8__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_8();
    nms_EntityList$_clinit_$lambda$_63_8__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_8_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityEnderEye;
        nms_Entity__init_(var$2, var$1);
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityPotion() {
    nms_EntityThrowable.call(this);
    this.$potionDamage = null;
}
let nms_EntityPotion_getGravityVelocity = $this => {
    return 0.05000000074505806;
},
nms_EntityPotion_func_70182_d = $this => {
    return 0.5;
},
nms_EntityPotion_func_70183_g = $this => {
    return (-20.0);
},
nms_EntityPotion_onImpact = ($this, $par1MovingObjectPosition) => {
    let $var2, $var4, var$4, $var7, $var9, var$7, var$8, var$9, $var6, $var5$index, $var11$index, $var11$index_0, var$14, var$15, $var12, $var5$index_0, $var11$index_1, var$19, var$20, $var13, var$22, var$23, var$24, var$25, var$26, $var14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$var13 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var11$index_1 = $thread.pop();$var5$index_0 = $thread.pop();$var12 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var11$index_0 = $thread.pop();$var11$index = $thread.pop();$var5$index = $thread.pop();$var6 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7
        = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();var$4 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$worldObj.$isRemote) {
            nms_Item_$callClinit();
            $var2 = nms_ItemPotion_getEffects(nms_Item_potion, $this.$potionDamage);
            if ($var2 !== null && !($var2.$size0 ? 0 : 1)) {
                $var4 = $this.$boundingBox0;
                var$4 = $var4.$minX0 - 4.0;
                $var7 = $var4.$minY0 - 2.0;
                $var9 = $var4.$minZ0 - 4.0;
                var$7 = $var4.$maxX0 + 4.0;
                var$8 = $var4.$maxY + 2.0;
                var$9 = $var4.$maxZ0 + 4.0;
                $var6 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var5$index = $var6.$nextPoolIndex;
                $var4 = $var6.$listAABB;
                $var11$index = $var4.$size0;
                $var11$index_0 = $rt_compare($var5$index, $var11$index);
                if ($var11$index_0 >= 0) {
                    var$14 = new nms_AxisAlignedBB;
                    var$14.$minX0 = var$4;
                    var$14.$minY0 = $var7;
                    var$14.$minZ0 = $var9;
                    var$14.$maxX0 = var$7;
                    var$14.$maxY = var$8;
                    var$14.$maxZ0 = var$9;
                    ju_ArrayList_ensureCapacity($var4, $var11$index + 1 | 0);
                    var$15 = $var4.$array.data;
                    $var11$index_0 = $var4.$size0;
                    $var4.$size0 = $var11$index_0 + 1 | 0;
                    var$15[$var11$index_0] = var$14;
                    $var4.$modCount = $var4.$modCount + 1 | 0;
                } else if ($var5$index >= 0 && $var11$index_0 < 0) {
                    var$14 = $var4.$array.data[$var5$index];
                    var$14.$minX0 = var$4;
                    var$14.$minY0 = $var7;
                    var$14.$minZ0 = $var9;
                    var$14.$maxX0 = var$7;
                    var$14.$maxY = var$8;
                    var$14.$maxZ0 = var$9;
                } else {
                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                    $par1MovingObjectPosition.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $var6.$nextPoolIndex = $var6.$nextPoolIndex + 1 | 0;
                $var4 = $this.$worldObj;
                $var6 = $rt_cls(nms_EntityLivingBase);
                $var12 = null;
                $ptr = 2;
                continue main;
            }
            $par1MovingObjectPosition = $this.$worldObj;
            $var5$index = 2002;
            $var7 = $this.$posX;
            $var11$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
            $var7 = $this.$posY;
            $var11$index = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
            $var7 = $this.$posZ;
            $var5$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
            if ($this.$potionDamage === null) {
                $var2 = new nms_ItemStack;
                $var4 = nms_Item_potion;
                nms_ItemStack_$callClinit();
                $var2.$itemID = $var4.$itemID0;
                $var2.$stackSize = 1;
                $var2.$itemDamage = 0;
                $this.$potionDamage = $var2;
            }
            $var11$index_1 = $this.$potionDamage.$itemDamage;
            $var2 = null;
            var$19 = 0;
            $var9 = $var11$index_0;
            var$7 = $var11$index;
            var$8 = $var5$index_0;
            $var4 = $par1MovingObjectPosition.$worldAccesses;
            var$20 = $rt_compare(var$19, $var4.$size0);
            if (var$20 < 0) {
                if (var$19 >= 0 && var$20 < 0) {
                    $var4 = $var4.$array.data[var$19];
                    $var6 = $var4.$mcServer.$serverConfigManager;
                    $var7 = 64.0;
                    $var13 = $var4.$theWorldServer.$provider.$dimensionId;
                    $var4 = new nms_Packet61DoorChange;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $var4.$sfxID = $var5$index;
                    $var4.$posX1 = $var11$index_0;
                    $var4.$posY1 = $var11$index;
                    $var4.$posZ1 = $var5$index_0;
                    $var4.$auxData = $var11$index_1;
                    $var4.$disableRelativeVolume = 0;
                    $ptr = 1;
                    continue main;
                }
                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                $par1MovingObjectPosition.$suppressionEnabled = 1;
                $par1MovingObjectPosition.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $this.$isDead = 1;
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept($var6, $var2, $var9, var$7, var$8, $var7, $var13, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = var$19 + 1 | 0;
        $var4 = $par1MovingObjectPosition.$worldAccesses;
        var$20 = $rt_compare(var$19, $var4.$size0);
        if (var$20 >= 0) {
            $this.$isDead = 1;
            return;
        }
        if (var$19 >= 0 && var$20 < 0) {
            $var4 = $var4.$array.data[var$19];
            $var6 = $var4.$mcServer.$serverConfigManager;
            $var7 = 64.0;
            $var13 = $var4.$theWorldServer.$provider.$dimensionId;
            $var4 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var4.$sfxID = $var5$index;
            $var4.$posX1 = $var11$index_0;
            $var4.$posY1 = $var11$index;
            $var4.$posZ1 = $var5$index_0;
            $var4.$auxData = $var11$index_1;
            $var4.$disableRelativeVolume = 0;
            continue main;
        }
        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
        $rt_throw($par1MovingObjectPosition);
    case 2:
        a: {
            $tmp = nms_World_selectEntitiesWithinAABB($var4, $var6, var$14, $var12);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = $tmp;
            if ($var4 !== null && !($var4.$size0 ? 0 : 1)) {
                $var5$index = 0;
                var$19 = $var4.$modCount;
                var$20 = $var4.$size();
                $var11$index = 0;
                while (true) {
                    if (!($var5$index >= var$20 ? 0 : 1))
                        break a;
                    if (var$19 < $var4.$modCount)
                        break;
                    b: {
                        $var5$index_0 = $var5$index + 1 | 0;
                        $var6 = $var4.$get($var5$index);
                        $var7 = $this.$posX - $var6.$posX;
                        $var9 = $this.$posY - $var6.$posY;
                        var$7 = $this.$posZ - $var6.$posZ;
                        $var7 = $var7 * $var7 + $var9 * $var9 + var$7 * var$7;
                        if ($var7 < 16.0) {
                            $var9 = 1.0 - jl_Math_sqrt($var7) / 4.0;
                            if ($var6 === $par1MovingObjectPosition.$entityHit)
                                $var9 = 1.0;
                            var$22 = $var2.$modCount;
                            var$23 = $var2.$size();
                            $var11$index_0 = $var11$index;
                            while (true) {
                                if (!($var11$index_0 >= var$23 ? 0 : 1))
                                    break b;
                                if (var$22 < $var2.$modCount) {
                                    $par1MovingObjectPosition = new ju_ConcurrentModificationException;
                                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                                    $par1MovingObjectPosition.$writableStackTrace = 1;
                                    $rt_throw($par1MovingObjectPosition);
                                }
                                $var11$index_1 = $var11$index_0 + 1 | 0;
                                $var12 = $var2.$get($var11$index_0);
                                $var13 = $var12.$potionID;
                                nms_Potion_$callClinit();
                                if (nms_Potion_potionTypes.data[$var13].$isInstant()) {
                                    c: {
                                        var$24 = nms_Potion_potionTypes.data[$var13];
                                        if ($this.$thrower === null) {
                                            var$14 = $this.$throwerName;
                                            if (var$14 !== null && var$14.$nativeString.length > 0) {
                                                var$25 = $this.$worldObj;
                                                var$26 = $this.$throwerName;
                                                $var5$index = 0;
                                                d: {
                                                    e: {
                                                        f: {
                                                            while (true) {
                                                                var$14 = var$25.$playerEntities;
                                                                $var11$index_0 = $rt_compare($var5$index, var$14.$size0);
                                                                if ($var11$index_0 >= 0)
                                                                    break;
                                                                if ($var5$index < 0)
                                                                    break f;
                                                                if ($var11$index_0 >= 0)
                                                                    break f;
                                                                var$14 = var$14.$array.data[$var5$index].$username;
                                                                if (var$26 === var$14)
                                                                    $var11$index_0 = 1;
                                                                else if (!(var$14 instanceof jl_String))
                                                                    $var11$index_0 = 0;
                                                                else {
                                                                    var$14 = var$14;
                                                                    $var11$index_0 = var$26.$nativeString !== var$14.$nativeString ? 0 : 1;
                                                                }
                                                                if ($var11$index_0) {
                                                                    var$14 = var$25.$playerEntities;
                                                                    if ($var5$index < 0)
                                                                        break d;
                                                                    if ($var5$index >= var$14.$size0)
                                                                        break d;
                                                                    var$14 = var$14.$array.data[$var5$index];
                                                                    break e;
                                                                }
                                                                $var5$index = $var5$index + 1 | 0;
                                                            }
                                                            var$14 = null;
                                                            break e;
                                                        }
                                                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                                                        $par1MovingObjectPosition.$writableStackTrace = 1;
                                                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                                        $rt_throw($par1MovingObjectPosition);
                                                    }
                                                    $this.$thrower = var$14;
                                                    break c;
                                                }
                                                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                                $par1MovingObjectPosition.$suppressionEnabled = 1;
                                                $par1MovingObjectPosition.$writableStackTrace = 1;
                                                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                                $rt_throw($par1MovingObjectPosition);
                                            }
                                        }
                                    }
                                    var$14 = $this.$thrower;
                                    $var5$index = $var12.$amplifier;
                                    $ptr = 4;
                                    continue main;
                                }
                                $var14 = $var9 * $var12.$duration + 0.5 | 0;
                                if ($var14 > 20) {
                                    var$14 = new nms_PotionEffect;
                                    $var11$index_0 = $var12.$amplifier;
                                    var$14.$potionID = $var13;
                                    var$14.$duration = $var14;
                                    var$14.$amplifier = $var11$index_0;
                                    var$14.$isAmbient = 0;
                                    $ptr = 3;
                                    continue main;
                                }
                                $var11$index_0 = $var11$index_1;
                            }
                        }
                    }
                    $var5$index = $var5$index_0;
                }
                $par1MovingObjectPosition = new ju_ConcurrentModificationException;
                $par1MovingObjectPosition.$suppressionEnabled = 1;
                $par1MovingObjectPosition.$writableStackTrace = 1;
                $rt_throw($par1MovingObjectPosition);
            }
        }
        $par1MovingObjectPosition = $this.$worldObj;
        $var5$index = 2002;
        $var7 = $this.$posX;
        $var11$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
        $var7 = $this.$posY;
        $var11$index = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
        $var7 = $this.$posZ;
        $var5$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
        if ($this.$potionDamage === null) {
            $var2 = new nms_ItemStack;
            $var4 = nms_Item_potion;
            nms_ItemStack_$callClinit();
            $var2.$itemID = $var4.$itemID0;
            $var2.$stackSize = 1;
            $var2.$itemDamage = 0;
            $this.$potionDamage = $var2;
        }
        $var11$index_1 = $this.$potionDamage.$itemDamage;
        $var2 = null;
        var$19 = 0;
        $var9 = $var11$index_0;
        var$7 = $var11$index;
        var$8 = $var5$index_0;
        $var4 = $par1MovingObjectPosition.$worldAccesses;
        var$20 = $rt_compare(var$19, $var4.$size0);
        if (var$20 >= 0) {
            $this.$isDead = 1;
            return;
        }
        if (var$19 >= 0 && var$20 < 0) {
            $var4 = $var4.$array.data[var$19];
            $var6 = $var4.$mcServer.$serverConfigManager;
            $var7 = 64.0;
            $var13 = $var4.$theWorldServer.$provider.$dimensionId;
            $var4 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var4.$sfxID = $var5$index;
            $var4.$posX1 = $var11$index_0;
            $var4.$posY1 = $var11$index;
            $var4.$posZ1 = $var5$index_0;
            $var4.$auxData = $var11$index_1;
            $var4.$disableRelativeVolume = 0;
            $ptr = 1;
            continue main;
        }
        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
        $rt_throw($par1MovingObjectPosition);
    case 3:
        $var6.$addPotionEffect(var$14);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var11$index_0 = $var11$index_1;
            while (!($var11$index_0 >= var$23 ? 0 : 1)) {
                while (true) {
                    $var5$index = $var5$index_0;
                    if (!($var5$index >= var$20 ? 0 : 1)) {
                        $par1MovingObjectPosition = $this.$worldObj;
                        $var5$index = 2002;
                        $var7 = $this.$posX;
                        $var11$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
                        $var7 = $this.$posY;
                        $var11$index = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
                        $var7 = $this.$posZ;
                        $var5$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
                        if ($this.$potionDamage === null) {
                            $var2 = new nms_ItemStack;
                            $var4 = nms_Item_potion;
                            nms_ItemStack_$callClinit();
                            $var2.$itemID = $var4.$itemID0;
                            $var2.$stackSize = 1;
                            $var2.$itemDamage = 0;
                            $this.$potionDamage = $var2;
                        }
                        $var11$index_1 = $this.$potionDamage.$itemDamage;
                        $var2 = null;
                        var$19 = 0;
                        $var9 = $var11$index_0;
                        var$7 = $var11$index;
                        var$8 = $var5$index_0;
                        $var4 = $par1MovingObjectPosition.$worldAccesses;
                        var$20 = $rt_compare(var$19, $var4.$size0);
                        if (var$20 >= 0) {
                            $this.$isDead = 1;
                            return;
                        }
                        if (var$19 >= 0 && var$20 < 0) {
                            $var4 = $var4.$array.data[var$19];
                            $var6 = $var4.$mcServer.$serverConfigManager;
                            $var7 = 64.0;
                            $var13 = $var4.$theWorldServer.$provider.$dimensionId;
                            $var4 = new nms_Packet61DoorChange;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var4.$sfxID = $var5$index;
                            $var4.$posX1 = $var11$index_0;
                            $var4.$posY1 = $var11$index;
                            $var4.$posZ1 = $var5$index_0;
                            $var4.$auxData = $var11$index_1;
                            $var4.$disableRelativeVolume = 0;
                            $ptr = 1;
                            continue main;
                        }
                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                        $par1MovingObjectPosition.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                        $rt_throw($par1MovingObjectPosition);
                    }
                    if (var$19 < $var4.$modCount) {
                        $par1MovingObjectPosition = new ju_ConcurrentModificationException;
                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                        $par1MovingObjectPosition.$writableStackTrace = 1;
                        $rt_throw($par1MovingObjectPosition);
                    }
                    $var5$index_0 = $var5$index + 1 | 0;
                    $var6 = $var4.$get($var5$index);
                    $var7 = $this.$posX - $var6.$posX;
                    $var9 = $this.$posY - $var6.$posY;
                    var$7 = $this.$posZ - $var6.$posZ;
                    $var7 = $var7 * $var7 + $var9 * $var9 + var$7 * var$7;
                    if ($var7 >= 16.0)
                        continue;
                    else
                        break;
                }
                $var9 = 1.0 - jl_Math_sqrt($var7) / 4.0;
                if ($var6 === $par1MovingObjectPosition.$entityHit)
                    $var9 = 1.0;
                var$22 = $var2.$modCount;
                var$23 = $var2.$size();
                $var11$index_0 = $var11$index;
            }
            if (var$22 < $var2.$modCount)
                break;
            $var11$index_1 = $var11$index_0 + 1 | 0;
            $var12 = $var2.$get($var11$index_0);
            $var13 = $var12.$potionID;
            nms_Potion_$callClinit();
            if (nms_Potion_potionTypes.data[$var13].$isInstant()) {
                g: {
                    var$24 = nms_Potion_potionTypes.data[$var13];
                    if ($this.$thrower === null) {
                        var$14 = $this.$throwerName;
                        if (var$14 !== null && var$14.$nativeString.length > 0) {
                            var$25 = $this.$worldObj;
                            var$26 = $this.$throwerName;
                            $var5$index = 0;
                            c: {
                                d: {
                                    h: {
                                        while (true) {
                                            var$14 = var$25.$playerEntities;
                                            $var11$index_0 = $rt_compare($var5$index, var$14.$size0);
                                            if ($var11$index_0 >= 0)
                                                break;
                                            if ($var5$index < 0)
                                                break h;
                                            if ($var11$index_0 >= 0)
                                                break h;
                                            var$14 = var$14.$array.data[$var5$index].$username;
                                            if (var$26 === var$14)
                                                $var11$index_0 = 1;
                                            else if (!(var$14 instanceof jl_String))
                                                $var11$index_0 = 0;
                                            else {
                                                var$14 = var$14;
                                                $var11$index_0 = var$26.$nativeString !== var$14.$nativeString ? 0 : 1;
                                            }
                                            if ($var11$index_0) {
                                                var$14 = var$25.$playerEntities;
                                                if ($var5$index < 0)
                                                    break c;
                                                if ($var5$index >= var$14.$size0)
                                                    break c;
                                                var$14 = var$14.$array.data[$var5$index];
                                                break d;
                                            }
                                            $var5$index = $var5$index + 1 | 0;
                                        }
                                        var$14 = null;
                                        break d;
                                    }
                                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                                    $par1MovingObjectPosition.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                    $rt_throw($par1MovingObjectPosition);
                                }
                                $this.$thrower = var$14;
                                break g;
                            }
                            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                            $par1MovingObjectPosition.$suppressionEnabled = 1;
                            $par1MovingObjectPosition.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                            $rt_throw($par1MovingObjectPosition);
                        }
                    }
                }
                var$14 = $this.$thrower;
                $var5$index = $var12.$amplifier;
                $ptr = 4;
                continue main;
            }
            $var14 = $var9 * $var12.$duration + 0.5 | 0;
            if ($var14 <= 20)
                continue;
            else {
                var$14 = new nms_PotionEffect;
                $var11$index_0 = $var12.$amplifier;
                var$14.$potionID = $var13;
                var$14.$duration = $var14;
                var$14.$amplifier = $var11$index_0;
                var$14.$isAmbient = 0;
                continue main;
            }
        }
        $par1MovingObjectPosition = new ju_ConcurrentModificationException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        $rt_throw($par1MovingObjectPosition);
    case 4:
        nms_Potion_affectEntity(var$24, var$14, $var6, $var5$index, $var9);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var11$index_0 = $var11$index_1;
            while (!($var11$index_0 >= var$23 ? 0 : 1)) {
                while (true) {
                    $var5$index = $var5$index_0;
                    if (!($var5$index >= var$20 ? 0 : 1)) {
                        $par1MovingObjectPosition = $this.$worldObj;
                        $var5$index = 2002;
                        $var7 = $this.$posX;
                        $var11$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
                        $var7 = $this.$posY;
                        $var11$index = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
                        $var7 = $this.$posZ;
                        $var5$index_0 = Long_lo(Long_fromNumber($var7 + jl_Math_sign($var7) * 0.5));
                        if ($this.$potionDamage === null) {
                            $var2 = new nms_ItemStack;
                            $var4 = nms_Item_potion;
                            nms_ItemStack_$callClinit();
                            $var2.$itemID = $var4.$itemID0;
                            $var2.$stackSize = 1;
                            $var2.$itemDamage = 0;
                            $this.$potionDamage = $var2;
                        }
                        $var11$index_1 = $this.$potionDamage.$itemDamage;
                        $var2 = null;
                        var$19 = 0;
                        $var9 = $var11$index_0;
                        var$7 = $var11$index;
                        var$8 = $var5$index_0;
                        $var4 = $par1MovingObjectPosition.$worldAccesses;
                        var$20 = $rt_compare(var$19, $var4.$size0);
                        if (var$20 >= 0) {
                            $this.$isDead = 1;
                            return;
                        }
                        if (var$19 >= 0 && var$20 < 0) {
                            $var4 = $var4.$array.data[var$19];
                            $var6 = $var4.$mcServer.$serverConfigManager;
                            $var7 = 64.0;
                            $var13 = $var4.$theWorldServer.$provider.$dimensionId;
                            $var4 = new nms_Packet61DoorChange;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            $var4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            $var4.$sfxID = $var5$index;
                            $var4.$posX1 = $var11$index_0;
                            $var4.$posY1 = $var11$index;
                            $var4.$posZ1 = $var5$index_0;
                            $var4.$auxData = $var11$index_1;
                            $var4.$disableRelativeVolume = 0;
                            $ptr = 1;
                            continue main;
                        }
                        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                        $par1MovingObjectPosition.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                        $rt_throw($par1MovingObjectPosition);
                    }
                    if (var$19 < $var4.$modCount) {
                        $par1MovingObjectPosition = new ju_ConcurrentModificationException;
                        $par1MovingObjectPosition.$suppressionEnabled = 1;
                        $par1MovingObjectPosition.$writableStackTrace = 1;
                        $rt_throw($par1MovingObjectPosition);
                    }
                    $var5$index_0 = $var5$index + 1 | 0;
                    $var6 = $var4.$get($var5$index);
                    $var7 = $this.$posX - $var6.$posX;
                    $var9 = $this.$posY - $var6.$posY;
                    var$7 = $this.$posZ - $var6.$posZ;
                    $var7 = $var7 * $var7 + $var9 * $var9 + var$7 * var$7;
                    if ($var7 >= 16.0)
                        continue;
                    else
                        break;
                }
                $var9 = 1.0 - jl_Math_sqrt($var7) / 4.0;
                if ($var6 === $par1MovingObjectPosition.$entityHit)
                    $var9 = 1.0;
                var$22 = $var2.$modCount;
                var$23 = $var2.$size();
                $var11$index_0 = $var11$index;
            }
            if (var$22 < $var2.$modCount)
                break;
            $var11$index_1 = $var11$index_0 + 1 | 0;
            $var12 = $var2.$get($var11$index_0);
            $var13 = $var12.$potionID;
            nms_Potion_$callClinit();
            if (nms_Potion_potionTypes.data[$var13].$isInstant()) {
                g: {
                    var$24 = nms_Potion_potionTypes.data[$var13];
                    if ($this.$thrower === null) {
                        var$14 = $this.$throwerName;
                        if (var$14 !== null && var$14.$nativeString.length > 0) {
                            var$25 = $this.$worldObj;
                            var$26 = $this.$throwerName;
                            $var5$index = 0;
                            c: {
                                d: {
                                    h: {
                                        while (true) {
                                            var$14 = var$25.$playerEntities;
                                            $var11$index_0 = $rt_compare($var5$index, var$14.$size0);
                                            if ($var11$index_0 >= 0)
                                                break;
                                            if ($var5$index < 0)
                                                break h;
                                            if ($var11$index_0 >= 0)
                                                break h;
                                            var$14 = var$14.$array.data[$var5$index].$username;
                                            if (var$26 === var$14)
                                                $var11$index_0 = 1;
                                            else if (!(var$14 instanceof jl_String))
                                                $var11$index_0 = 0;
                                            else {
                                                var$14 = var$14;
                                                $var11$index_0 = var$26.$nativeString !== var$14.$nativeString ? 0 : 1;
                                            }
                                            if ($var11$index_0) {
                                                var$14 = var$25.$playerEntities;
                                                if ($var5$index < 0)
                                                    break c;
                                                if ($var5$index >= var$14.$size0)
                                                    break c;
                                                var$14 = var$14.$array.data[$var5$index];
                                                break d;
                                            }
                                            $var5$index = $var5$index + 1 | 0;
                                        }
                                        var$14 = null;
                                        break d;
                                    }
                                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                                    $par1MovingObjectPosition.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                                    $rt_throw($par1MovingObjectPosition);
                                }
                                $this.$thrower = var$14;
                                break g;
                            }
                            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                            $par1MovingObjectPosition.$suppressionEnabled = 1;
                            $par1MovingObjectPosition.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                            $rt_throw($par1MovingObjectPosition);
                        }
                    }
                }
                var$14 = $this.$thrower;
                $var5$index = $var12.$amplifier;
                continue main;
            }
            $var14 = $var9 * $var12.$duration + 0.5 | 0;
            if ($var14 <= 20)
                continue;
            else {
                var$14 = new nms_PotionEffect;
                $var11$index_0 = $var12.$amplifier;
                var$14.$potionID = $var13;
                var$14.$duration = $var14;
                var$14.$amplifier = $var11$index_0;
                var$14.$isAmbient = 0;
                $ptr = 3;
                continue main;
            }
        }
        $par1MovingObjectPosition = new ju_ConcurrentModificationException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        $rt_throw($par1MovingObjectPosition);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, $var2, $var4, var$4, $var7, $var9, var$7, var$8, var$9, $var6, $var5$index, $var11$index, $var11$index_0, var$14, var$15, $var12, $var5$index_0, $var11$index_1, var$19, var$20, $var13, var$22, var$23, var$24, var$25, var$26, $var14, $ptr);
},
nms_EntityPotion_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        nms_EntityThrowable_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2564).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2564).$nativeString.length)
                    break a;
                $rt_s(2564).$hashCode1 = (31 * $rt_s(2564).$hashCode1 | 0) + $rt_s(2564).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2564).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(2564) !== var$5) {
                    if ($rt_s(2564) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2564).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        c: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2564).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2564).$nativeString.length)
                        break c;
                    $rt_s(2564).$hashCode1 = (31 * $rt_s(2564).$hashCode1 | 0) + $rt_s(2564).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$6 = $rt_s(2564).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$6 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                d: {
                    var$5 = var$2.$key;
                    if ($rt_s(2564) !== var$5) {
                        if ($rt_s(2564) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2564).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break d;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1)) {
            var$2 = new nms_NBTTagCompound;
            if ($rt_s(2564) !== null)
                var$2.$name = $rt_s(2564);
            else
                var$2.$name = $rt_s(3);
            $par1NBTTagCompound = new ju_HashMap;
            var$3 = ju_HashMap_calculateCapacity(16);
            $par1NBTTagCompound.$elementCount = 0;
            var$7 = $rt_createArray(ju_HashMap$HashEntry, var$3);
            var$4 = var$7.data;
            $par1NBTTagCompound.$elementData = var$7;
            $par1NBTTagCompound.$loadFactor = 0.75;
            $par1NBTTagCompound.$threshold = var$4.length * 0.75 | 0;
            var$2.$tagMap = $par1NBTTagCompound;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2564) === null) {
                var$5 = $par1NBTTagCompound.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2564).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2564).$nativeString.length)
                                break e;
                            $rt_s(2564).$hashCode1 = (31 * $rt_s(2564).$hashCode1 | 0) + $rt_s(2564).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$6 = $rt_s(2564).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                var$5 = var$4[var$6 & (var$4.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$6) {
                        f: {
                            $par1NBTTagCompound = var$5.$key;
                            if ($rt_s(2564) !== $par1NBTTagCompound) {
                                if ($rt_s(2564) === $par1NBTTagCompound)
                                    var$3 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$3 = $rt_s(2564).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            var$2 = var$5 === null ? null : var$5.$value0;
        }
        nms_ItemStack_$callClinit();
        $par1NBTTagCompound = new nms_ItemStack;
        nms_ItemStack_readFromNBT($par1NBTTagCompound, var$2);
        nms_Item_$callClinit();
        if (nms_Item_itemsList.data[$par1NBTTagCompound.$itemID] === null)
            $par1NBTTagCompound = null;
        $this.$potionDamage = $par1NBTTagCompound;
    } else {
        g: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2565).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2565).$nativeString.length)
                        break g;
                    $rt_s(2565).$hashCode1 = (31 * $rt_s(2565).$hashCode1 | 0) + $rt_s(2565).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2565).$hashCode1;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                h: {
                    var$5 = var$2.$key;
                    if ($rt_s(2565) !== var$5) {
                        if ($rt_s(2565) === var$5)
                            var$6 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$6 = 0;
                        else {
                            var$5 = var$5;
                            var$6 = $rt_s(2565).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$6) {
                            var$6 = 0;
                            break h;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$8 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2565) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2565).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2565).$nativeString.length)
                                break i;
                            $rt_s(2565).$hashCode1 = (31 * $rt_s(2565).$hashCode1 | 0) + $rt_s(2565).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2565).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$3) {
                        j: {
                            var$2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2565) !== var$2) {
                                if ($rt_s(2565) === var$2)
                                    var$6 = 1;
                                else if (!(var$2 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    var$2 = var$2;
                                    var$6 = $rt_s(2565).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break j;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$8 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
        }
        if ($this.$potionDamage === null) {
            var$9 = new nms_ItemStack;
            nms_Item_$callClinit();
            $par1NBTTagCompound = nms_Item_potion;
            nms_ItemStack_$callClinit();
            var$9.$itemID = $par1NBTTagCompound.$itemID0;
            var$9.$stackSize = 1;
            var$9.$itemDamage = 0;
            $this.$potionDamage = var$9;
        }
        $par1NBTTagCompound = $this.$potionDamage;
        $par1NBTTagCompound.$itemDamage = var$8;
        if (var$8 < 0)
            $par1NBTTagCompound.$itemDamage = 0;
    }
    if ($this.$potionDamage === null)
        $this.$isDead = 1;
},
nms_EntityPotion_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    nms_EntityThrowable_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$potionDamage;
    if (var$2 !== null) {
        var$3 = new nms_NBTTagCompound;
        var$3.$name = $rt_s(3);
        var$4 = new ju_HashMap;
        var$5 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$tagMap = var$4;
        var$5 = var$2.$itemID << 16 >> 16;
        var$8 = new nms_NBTTagShort;
        var$8.$name = $rt_s(914);
        var$8.$data2 = var$5;
        ju_HashMap_putImpl(var$4, $rt_s(914), var$8);
        var$5 = var$2.$stackSize << 24 >> 24;
        var$4 = var$3.$tagMap;
        var$8 = new nms_NBTTagByte;
        var$8.$name = $rt_s(915);
        var$8.$data0 = var$5;
        ju_HashMap_putImpl(var$4, $rt_s(915), var$8);
        var$5 = var$2.$itemDamage << 16 >> 16;
        var$4 = var$3.$tagMap;
        var$8 = new nms_NBTTagShort;
        var$8.$name = $rt_s(916);
        var$8.$data2 = var$5;
        ju_HashMap_putImpl(var$4, $rt_s(916), var$8);
        var$2 = var$2.$stackTagCompound;
        if (var$2 !== null) {
            var$4 = var$3.$tagMap;
            var$2.$name = $rt_s(917);
            ju_HashMap_putImpl(var$4, $rt_s(917), var$2);
        }
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        var$3.$name = $rt_s(2564);
        ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2564), var$3);
    }
},
nms_EntityList$_clinit_$lambda$_63_9 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_9__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_9__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_9();
    nms_EntityList$_clinit_$lambda$_63_9__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_9_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityPotion;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile0 = (-1);
        var$2.$yTile0 = (-1);
        var$2.$zTile0 = (-1);
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityExpBottle = $rt_classWithoutFields(nms_EntityThrowable),
nms_EntityExpBottle_getGravityVelocity = $this => {
    return 0.07000000029802322;
},
nms_EntityExpBottle_func_70182_d = $this => {
    return 0.699999988079071;
},
nms_EntityExpBottle_func_70183_g = $this => {
    return (-20.0);
},
nms_EntityExpBottle_onImpact = ($this, $par1MovingObjectPosition) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, $var3, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var3 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1MovingObjectPosition = $this.$worldObj;
        if (!$par1MovingObjectPosition.$isRemote) {
            $var2 = 2002;
            var$3 = $this.$posX;
            var$4 = Long_lo(Long_fromNumber(var$3 + jl_Math_sign(var$3) * 0.5));
            var$5 = $this.$posY;
            var$6 = Long_lo(Long_fromNumber(var$5 + jl_Math_sign(var$5) * 0.5));
            var$7 = $this.$posZ;
            var$8 = Long_lo(Long_fromNumber(var$7 + jl_Math_sign(var$7) * 0.5));
            $var3 = 0;
            var$10 = null;
            var$11 = 0;
            var$5 = var$4;
            var$3 = var$6;
            var$12 = var$8;
            var$13 = $par1MovingObjectPosition.$worldAccesses;
            var$14 = $rt_compare(var$11, var$13.$size0);
            if (var$14 < 0) {
                if (var$11 >= 0 && var$14 < 0) {
                    var$13 = var$13.$array.data[var$11];
                    var$15 = var$13.$mcServer.$serverConfigManager;
                    var$7 = 64.0;
                    var$16 = var$13.$theWorldServer.$provider.$dimensionId;
                    var$13 = new nms_Packet61DoorChange;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$13.$sfxID = $var2;
                    var$13.$posX1 = var$4;
                    var$13.$posY1 = var$6;
                    var$13.$posZ1 = var$8;
                    var$13.$auxData = $var3;
                    var$13.$disableRelativeVolume = 0;
                    $ptr = 1;
                    continue main;
                }
                $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                $par1MovingObjectPosition.$suppressionEnabled = 1;
                $par1MovingObjectPosition.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = $this.$worldObj.$rand0;
            var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1MovingObjectPosition.$seed = var$17;
            var$6 = Long_lo(Long_shru(var$17, 17));
            while (true) {
                var$8 = var$6 % 5 | 0;
                if (((var$6 - var$8 | 0) + 4 | 0) >= 0)
                    break;
                var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1MovingObjectPosition.$seed = var$17;
                var$6 = Long_lo(Long_shru(var$17, 17));
            }
            $var2 = 3 + var$8 | 0;
            var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1MovingObjectPosition.$seed = var$17;
            var$6 = Long_lo(Long_shru(var$17, 17));
            while (true) {
                var$8 = var$6 % 5 | 0;
                if (((var$6 - var$8 | 0) + 4 | 0) >= 0)
                    break;
                var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1MovingObjectPosition.$seed = var$17;
                var$6 = Long_lo(Long_shru(var$17, 17));
            }
            $var2 = $var2 + var$8 | 0;
            if ($var2 > 0) {
                $var3 = nms_EntityXPOrb_getXPSplit($var2);
                $var2 = $var2 - $var3 | 0;
                $par1MovingObjectPosition = $this.$worldObj;
                var$10 = new nms_EntityXPOrb;
                var$7 = $this.$posX;
                var$5 = $this.$posY;
                var$3 = $this.$posZ;
                $ptr = 2;
                continue main;
            }
            $this.$isDead = 1;
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$10, var$5, var$3, var$12, var$7, var$16, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = var$11 + 1 | 0;
        var$13 = $par1MovingObjectPosition.$worldAccesses;
        var$14 = $rt_compare(var$11, var$13.$size0);
        if (var$14 < 0) {
            if (var$11 >= 0 && var$14 < 0) {
                var$13 = var$13.$array.data[var$11];
                var$15 = var$13.$mcServer.$serverConfigManager;
                var$7 = 64.0;
                var$16 = var$13.$theWorldServer.$provider.$dimensionId;
                var$13 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$13.$sfxID = $var2;
                var$13.$posX1 = var$4;
                var$13.$posY1 = var$6;
                var$13.$posZ1 = var$8;
                var$13.$auxData = $var3;
                var$13.$disableRelativeVolume = 0;
                continue main;
            }
            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
            $par1MovingObjectPosition.$suppressionEnabled = 1;
            $par1MovingObjectPosition.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        $par1MovingObjectPosition = $this.$worldObj.$rand0;
        var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1MovingObjectPosition.$seed = var$17;
        var$6 = Long_lo(Long_shru(var$17, 17));
        while (true) {
            var$8 = var$6 % 5 | 0;
            if (((var$6 - var$8 | 0) + 4 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1MovingObjectPosition.$seed = var$17;
            var$6 = Long_lo(Long_shru(var$17, 17));
        }
        $var2 = 3 + var$8 | 0;
        var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1MovingObjectPosition.$seed = var$17;
        var$6 = Long_lo(Long_shru(var$17, 17));
        while (true) {
            var$8 = var$6 % 5 | 0;
            if (((var$6 - var$8 | 0) + 4 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1MovingObjectPosition.$seed = var$17;
            var$6 = Long_lo(Long_shru(var$17, 17));
        }
        $var2 = $var2 + var$8 | 0;
        if ($var2 <= 0) {
            $this.$isDead = 1;
            return;
        }
        $var3 = nms_EntityXPOrb_getXPSplit($var2);
        $var2 = $var2 - $var3 | 0;
        $par1MovingObjectPosition = $this.$worldObj;
        var$10 = new nms_EntityXPOrb;
        var$7 = $this.$posX;
        var$5 = $this.$posY;
        var$3 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityXPOrb__init_(var$10, $par1MovingObjectPosition, var$7, var$5, var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1MovingObjectPosition, var$10);
        if ($rt_suspending()) {
            break main;
        }
        if ($var2 <= 0) {
            $this.$isDead = 1;
            return;
        }
        $var3 = nms_EntityXPOrb_getXPSplit($var2);
        $var2 = $var2 - $var3 | 0;
        $par1MovingObjectPosition = $this.$worldObj;
        var$10 = new nms_EntityXPOrb;
        var$7 = $this.$posX;
        var$5 = $this.$posY;
        var$3 = $this.$posZ;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, $var2, var$3, var$4, var$5, var$6, var$7, var$8, $var3, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_10 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_10__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_10__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_10();
    nms_EntityList$_clinit_$lambda$_63_10__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_10_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityExpBottle;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile0 = (-1);
        var$2.$yTile0 = (-1);
        var$2.$zTile0 = (-1);
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_11 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_11__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_11__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_11();
    nms_EntityList$_clinit_$lambda$_63_11__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_11_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityItemFrame;
        nms_Entity__init_(var$2, var$1);
        var$2.$yOffset = 0.0;
        var$3 = 0.5;
        var$4 = 0.5;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$itemDropChance = 1.0;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityWitherSkull = $rt_classWithoutFields(nms_EntityFireball),
nms_EntityWitherSkull_getMotionFactor = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[138];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$5 = var$1.$key;
                if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    return (var$1.$watchedObject.$value1 != 1 ? 0 : 1) ? 0.7300000190734863 : 0.949999988079071;
},
nms_EntityWitherSkull_isBurning = $this => {
    return 0;
},
nms_EntityWitherSkull_getBlockExplosionResistance = ($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6Block) => {
    let $var7, var$8, var$9;
    $var7 = $par6Block.$getExplosionResistance($this);
    $par1Explosion = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[138];
    if (var$8 === null) {
        $par1Explosion = $par1Explosion.$elementData.data[0];
        while ($par1Explosion !== null && $par1Explosion.$key !== null) {
            $par1Explosion = $par1Explosion.$next3;
        }
    } else {
        $par5 = var$8.$value;
        var$9 = $par1Explosion.$elementData.data;
        $par1Explosion = var$9[$par5 & (var$9.length - 1 | 0)];
        while ($par1Explosion !== null) {
            if ($par1Explosion.$origKeyHash == $par5) {
                $par2World = $par1Explosion.$key;
                if (var$8 !== $par2World && !(var$8 === $par2World ? 1 : $par2World instanceof jl_Integer && $par2World.$value == $par5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $par1Explosion = $par1Explosion.$next3;
        }
    }
    $par1Explosion = $par1Explosion === null ? null : $par1Explosion.$value0;
    $par3 = $par1Explosion.$watchedObject.$value1 != 1 ? 0 : 1;
    if ($par3 && $par6Block !== nms_Block_bedrock && $par6Block !== nms_Block_endPortal && $par6Block !== nms_Block_endPortalFrame)
        $var7 = jl_Math_minImpl(0.800000011920929, $var7);
    return $var7;
},
nms_EntityWitherSkull_onImpact = ($this, $par1MovingObjectPosition) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $var2, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var2 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote)
            return;
        var$2 = $par1MovingObjectPosition.$entityHit;
        if (var$2 !== null) {
            var$3 = $this.$shootingEntity0;
            if (var$3 === null) {
                var$3 = nms_DamageSource_magic;
                var$4 = 5.0;
                $ptr = 1;
                continue main;
            }
            var$5 = new nms_EntityDamageSource;
            var$5.$hungerDamage = 0.30000001192092896;
            var$5.$damageType = $rt_s(2288);
            var$5.$damageSourceEntity = var$3;
            var$4 = 8.0;
            $ptr = 2;
            continue main;
        }
        a: {
            var$2 = $this.$worldObj;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$4 = 1.0;
            $var2 = 0;
            var$3 = (var$2.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$5 = $rt_s(1417);
            $par1MovingObjectPosition = $rt_s(1417);
            if (var$5 !== $par1MovingObjectPosition) {
                var$10 = var$5.$nativeString.length;
                var$11 = $par1MovingObjectPosition.$nativeString.length;
                if (var$10 < var$11)
                    var$11 = var$10;
                var$12 = 0;
                b: {
                    while (true) {
                        if (var$12 >= var$11) {
                            var$5.$nativeString.length;
                            $par1MovingObjectPosition.$nativeString.length;
                            break a;
                        }
                        if (var$12 < 0)
                            break b;
                        if (var$12 >= var$5.$nativeString.length)
                            break b;
                        var$13 = var$5.$nativeString.charCodeAt(var$12);
                        if (var$12 < 0)
                            break;
                        if (var$12 >= $par1MovingObjectPosition.$nativeString.length)
                            break;
                        if (var$13 - $par1MovingObjectPosition.$nativeString.charCodeAt(var$12) | 0)
                            break a;
                        var$12 = var$12 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
        }
        $par1MovingObjectPosition = $rt_s(1417);
        c: {
            d: {
                e: while (true) {
                    if (var$3 === null) {
                        var$3 = null;
                        break c;
                    }
                    f: {
                        var$5 = var$3.$key0;
                        if ($par1MovingObjectPosition === var$5)
                            var$12 = 0;
                        else {
                            var$10 = $par1MovingObjectPosition.$nativeString.length;
                            var$13 = var$5.$nativeString.length;
                            if (var$10 < var$13)
                                var$13 = var$10;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$13) {
                                    var$12 = $par1MovingObjectPosition.$nativeString.length - var$5.$nativeString.length | 0;
                                    break f;
                                }
                                if (var$11 < 0)
                                    break d;
                                if (var$11 >= $par1MovingObjectPosition.$nativeString.length)
                                    break d;
                                var$10 = $par1MovingObjectPosition.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break e;
                                if (var$11 >= var$5.$nativeString.length)
                                    break e;
                                var$12 = var$10 - var$5.$nativeString.charCodeAt(var$11) | 0;
                                if (var$12)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$12)
                        break c;
                    var$3 = var$12 >= 0 ? var$3.$right : var$3.$left;
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        $par1MovingObjectPosition = var$3 === null ? null : var$3.$value2;
        var$12 = $par1MovingObjectPosition === null ? 0 : $par1MovingObjectPosition.$valueBoolean;
        $ptr = 4;
        continue main;
    case 1:
        var$2.$attackEntityFrom(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
        if ($par1MovingObjectPosition instanceof nms_EntityLivingBase) {
            $var2 = 0;
            var$12 = $this.$worldObj.$difficultySetting;
            if (var$12 > 1) {
                if (var$12 == 2)
                    $var2 = 10;
                else if (var$12 == 3)
                    $var2 = 40;
            }
            if ($var2 > 0) {
                var$2 = $par1MovingObjectPosition;
                var$3 = new nms_PotionEffect;
                nms_Potion_$callClinit();
                var$12 = nms_Potion_wither.$id0;
                $var2 = 20 * $var2 | 0;
                var$3.$potionID = var$12;
                var$3.$duration = $var2;
                var$3.$amplifier = 1;
                var$3.$isAmbient = 0;
                $ptr = 3;
                continue main;
            }
        }
        g: {
            var$2 = $this.$worldObj;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$4 = 1.0;
            $var2 = 0;
            var$3 = (var$2.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$5 = $rt_s(1417);
            $par1MovingObjectPosition = $rt_s(1417);
            if (var$5 !== $par1MovingObjectPosition) {
                var$10 = var$5.$nativeString.length;
                var$11 = $par1MovingObjectPosition.$nativeString.length;
                if (var$10 < var$11)
                    var$11 = var$10;
                var$12 = 0;
                h: {
                    while (true) {
                        if (var$12 >= var$11) {
                            var$5.$nativeString.length;
                            $par1MovingObjectPosition.$nativeString.length;
                            break g;
                        }
                        if (var$12 < 0)
                            break h;
                        if (var$12 >= var$5.$nativeString.length)
                            break h;
                        var$13 = var$5.$nativeString.charCodeAt(var$12);
                        if (var$12 < 0)
                            break;
                        if (var$12 >= $par1MovingObjectPosition.$nativeString.length)
                            break;
                        if (var$13 - $par1MovingObjectPosition.$nativeString.charCodeAt(var$12) | 0)
                            break g;
                        var$12 = var$12 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
        }
        $par1MovingObjectPosition = $rt_s(1417);
        i: {
            j: {
                f: while (true) {
                    if (var$3 === null) {
                        var$3 = null;
                        break i;
                    }
                    k: {
                        var$5 = var$3.$key0;
                        if ($par1MovingObjectPosition === var$5)
                            var$12 = 0;
                        else {
                            var$10 = $par1MovingObjectPosition.$nativeString.length;
                            var$13 = var$5.$nativeString.length;
                            if (var$10 < var$13)
                                var$13 = var$10;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$13) {
                                    var$12 = $par1MovingObjectPosition.$nativeString.length - var$5.$nativeString.length | 0;
                                    break k;
                                }
                                if (var$11 < 0)
                                    break j;
                                if (var$11 >= $par1MovingObjectPosition.$nativeString.length)
                                    break j;
                                var$10 = $par1MovingObjectPosition.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break f;
                                if (var$11 >= var$5.$nativeString.length)
                                    break f;
                                var$12 = var$10 - var$5.$nativeString.charCodeAt(var$11) | 0;
                                if (var$12)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$12)
                        break i;
                    var$3 = var$12 >= 0 ? var$3.$right : var$3.$left;
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        $par1MovingObjectPosition = var$3 === null ? null : var$3.$value2;
        var$12 = $par1MovingObjectPosition === null ? 0 : $par1MovingObjectPosition.$valueBoolean;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$2.$attackEntityFrom(var$5, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 && !$par1MovingObjectPosition.$entityHit.$isEntityAlive()) {
            var$2 = $this.$shootingEntity0;
            var$3 = var$2.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$14 = jl_Integer_integerCache.data[134];
            if (var$14 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$10 = var$14.$value;
                var$15 = var$3.$elementData.data;
                var$3 = var$15[var$10 & (var$15.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$10) {
                        var$5 = var$3.$key;
                        if (var$14 !== var$5 && !jl_Integer_equals(var$14, var$5) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$16 = (var$3 === null ? null : var$3.$value0).$watchedObject.$value3;
            if (var$16 > 0.0) {
                var$4 = var$16 + 5.0;
                var$3 = var$2.$dataWatcher;
                var$17 = 0.0;
                var$5 = nms_SharedMonsterAttributes_maxHealth;
                if (var$2.$attributeMap === null)
                    var$2.$attributeMap = nms_ServersideAttributeMap__init_();
                var$2 = ju_HashMap_entryByKey(var$2.$attributeMap.$attributes, var$5);
                var$2 = var$2 === null ? null : var$2.$value0;
                if (var$2.$field_111133_g) {
                    var$2.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$2);
                    var$2.$field_111133_g = 0;
                }
                var$16 = var$2.$field_111139_h;
                if (var$4 >= var$17)
                    var$17 = var$4 <= var$16 ? var$4 : var$16;
                var$2 = new jl_Float;
                var$2.$value3 = var$17;
                var$5 = var$3.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$18 = jl_Integer_integerCache.data[134];
                if (var$18 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$10 = var$18.$value;
                    var$15 = var$5.$elementData.data;
                    var$5 = var$15[var$10 & (var$15.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$10) {
                            var$14 = var$5.$key;
                            if (var$18 !== var$14 && !jl_Integer_equals(var$18, var$14) ? 0 : 1)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$14 = var$5 === null ? null : var$5.$value0;
                var$5 = var$14.$watchedObject;
                if (var$2 === var$5)
                    $var2 = 1;
                else
                    l: {
                        if (var$5 instanceof jl_Float) {
                            var$4 = var$2.$value3;
                            var$17 = var$5.$value3;
                            if (var$4 !== var$4 ? (var$17 === var$17 ? 0 : 1) : $rt_floatToRawIntBits(var$4) != $rt_floatToRawIntBits(var$17) ? 0 : 1) {
                                $var2 = 1;
                                break l;
                            }
                        }
                        $var2 = 0;
                    }
                if (!$var2) {
                    var$14.$watchedObject = var$2;
                    var$14.$watched = 1;
                    var$3.$objectChanged = 1;
                }
            }
        }
        $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
        if ($par1MovingObjectPosition instanceof nms_EntityLivingBase) {
            $var2 = 0;
            var$12 = $this.$worldObj.$difficultySetting;
            if (var$12 > 1) {
                if (var$12 == 2)
                    $var2 = 10;
                else if (var$12 == 3)
                    $var2 = 40;
            }
            if ($var2 > 0) {
                var$2 = $par1MovingObjectPosition;
                var$3 = new nms_PotionEffect;
                nms_Potion_$callClinit();
                var$12 = nms_Potion_wither.$id0;
                $var2 = 20 * $var2 | 0;
                var$3.$potionID = var$12;
                var$3.$duration = $var2;
                var$3.$amplifier = 1;
                var$3.$isAmbient = 0;
                $ptr = 3;
                continue main;
            }
        }
        m: {
            var$2 = $this.$worldObj;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$4 = 1.0;
            $var2 = 0;
            var$3 = (var$2.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$5 = $rt_s(1417);
            $par1MovingObjectPosition = $rt_s(1417);
            if (var$5 !== $par1MovingObjectPosition) {
                var$10 = var$5.$nativeString.length;
                var$11 = $par1MovingObjectPosition.$nativeString.length;
                if (var$10 < var$11)
                    var$11 = var$10;
                var$12 = 0;
                n: {
                    while (true) {
                        if (var$12 >= var$11) {
                            var$5.$nativeString.length;
                            $par1MovingObjectPosition.$nativeString.length;
                            break m;
                        }
                        if (var$12 < 0)
                            break n;
                        if (var$12 >= var$5.$nativeString.length)
                            break n;
                        var$13 = var$5.$nativeString.charCodeAt(var$12);
                        if (var$12 < 0)
                            break;
                        if (var$12 >= $par1MovingObjectPosition.$nativeString.length)
                            break;
                        if (var$13 - $par1MovingObjectPosition.$nativeString.charCodeAt(var$12) | 0)
                            break m;
                        var$12 = var$12 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
        }
        $par1MovingObjectPosition = $rt_s(1417);
        o: {
            p: {
                q: while (true) {
                    if (var$3 === null) {
                        var$3 = null;
                        break o;
                    }
                    r: {
                        var$5 = var$3.$key0;
                        if ($par1MovingObjectPosition === var$5)
                            var$12 = 0;
                        else {
                            var$10 = $par1MovingObjectPosition.$nativeString.length;
                            var$13 = var$5.$nativeString.length;
                            if (var$10 < var$13)
                                var$13 = var$10;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$13) {
                                    var$12 = $par1MovingObjectPosition.$nativeString.length - var$5.$nativeString.length | 0;
                                    break r;
                                }
                                if (var$11 < 0)
                                    break p;
                                if (var$11 >= $par1MovingObjectPosition.$nativeString.length)
                                    break p;
                                var$10 = $par1MovingObjectPosition.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break q;
                                if (var$11 >= var$5.$nativeString.length)
                                    break q;
                                var$12 = var$10 - var$5.$nativeString.charCodeAt(var$11) | 0;
                                if (var$12)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$12)
                        break o;
                    var$3 = var$12 >= 0 ? var$3.$right : var$3.$left;
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        $par1MovingObjectPosition = var$3 === null ? null : var$3.$value2;
        var$12 = $par1MovingObjectPosition === null ? 0 : $par1MovingObjectPosition.$valueBoolean;
        $ptr = 4;
        continue main;
    case 3:
        var$2.$addPotionEffect(var$3);
        if ($rt_suspending()) {
            break main;
        }
        s: {
            var$2 = $this.$worldObj;
            var$6 = $this.$posX;
            var$7 = $this.$posY;
            var$8 = $this.$posZ;
            var$4 = 1.0;
            $var2 = 0;
            var$3 = (var$2.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$5 = $rt_s(1417);
            $par1MovingObjectPosition = $rt_s(1417);
            if (var$5 !== $par1MovingObjectPosition) {
                var$10 = var$5.$nativeString.length;
                var$11 = $par1MovingObjectPosition.$nativeString.length;
                if (var$10 < var$11)
                    var$11 = var$10;
                var$12 = 0;
                t: {
                    while (true) {
                        if (var$12 >= var$11) {
                            var$5.$nativeString.length;
                            $par1MovingObjectPosition.$nativeString.length;
                            break s;
                        }
                        if (var$12 < 0)
                            break t;
                        if (var$12 >= var$5.$nativeString.length)
                            break t;
                        var$13 = var$5.$nativeString.charCodeAt(var$12);
                        if (var$12 < 0)
                            break;
                        if (var$12 >= $par1MovingObjectPosition.$nativeString.length)
                            break;
                        if (var$13 - $par1MovingObjectPosition.$nativeString.charCodeAt(var$12) | 0)
                            break s;
                        var$12 = var$12 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
        }
        $par1MovingObjectPosition = $rt_s(1417);
        b: {
            c: {
                u: while (true) {
                    if (var$3 === null) {
                        var$3 = null;
                        break b;
                    }
                    d: {
                        var$5 = var$3.$key0;
                        if ($par1MovingObjectPosition === var$5)
                            var$12 = 0;
                        else {
                            var$10 = $par1MovingObjectPosition.$nativeString.length;
                            var$13 = var$5.$nativeString.length;
                            if (var$10 < var$13)
                                var$13 = var$10;
                            var$11 = 0;
                            while (true) {
                                if (var$11 >= var$13) {
                                    var$12 = $par1MovingObjectPosition.$nativeString.length - var$5.$nativeString.length | 0;
                                    break d;
                                }
                                if (var$11 < 0)
                                    break c;
                                if (var$11 >= $par1MovingObjectPosition.$nativeString.length)
                                    break c;
                                var$10 = $par1MovingObjectPosition.$nativeString.charCodeAt(var$11);
                                if (var$11 < 0)
                                    break u;
                                if (var$11 >= var$5.$nativeString.length)
                                    break u;
                                var$12 = var$10 - var$5.$nativeString.charCodeAt(var$11) | 0;
                                if (var$12)
                                    break;
                                var$11 = var$11 + 1 | 0;
                            }
                        }
                    }
                    if (!var$12)
                        break b;
                    var$3 = var$12 >= 0 ? var$3.$right : var$3.$left;
                }
                $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
                $rt_throw($par1MovingObjectPosition);
            }
            $par1MovingObjectPosition = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1MovingObjectPosition);
            $rt_throw($par1MovingObjectPosition);
        }
        $par1MovingObjectPosition = var$3 === null ? null : var$3.$value2;
        var$12 = $par1MovingObjectPosition === null ? 0 : $par1MovingObjectPosition.$valueBoolean;
        $ptr = 4;
    case 4:
        nms_WorldServer_newExplosion(var$2, $this, var$6, var$7, var$8, var$4, $var2, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $var2, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityWitherSkull_canBeCollidedWith = $this => {
    return 0;
},
nms_EntityWitherSkull_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    return 0;
},
nms_EntityWitherSkull_entityInit = $this => {
    nms_DataWatcher_addObject($this.$dataWatcher, 10, jl_Byte_byteCache.data[128]);
},
nms_EntityList$_clinit_$lambda$_63_12 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_12__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_12__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_12();
    nms_EntityList$_clinit_$lambda$_63_12__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_12_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityWitherSkull;
        nms_Entity__init_(var$2, var$1);
        var$2.$xTile1 = (-1);
        var$2.$yTile1 = (-1);
        var$2.$zTile1 = (-1);
        var$3 = 1.0;
        var$4 = 1.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = 0.3125;
        var$4 = 0.3125;
        $ptr = 2;
    case 2:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityTNTPrimed() {
    let a = this; nms_Entity.call(a);
    a.$fuse = 0;
    a.$tntPlacedBy = null;
}
let nms_EntityTNTPrimed__init_ = ($this, $par1World, $par2, $par4, $par6, $par8EntityLivingBase) => {
    let var$6, $var9, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var9 = $thread.pop();var$6 = $thread.pop();$par8EntityLivingBase = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$preventEntitySpawning = 1;
        var$6 = 0.9800000190734863;
        $var9 = 0.9800000190734863;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$6, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $this.$yOffset = $this.$height0 / 2.0;
        nms_Entity_setPosition($this, $par2, $par4, $par6);
        var$8 = jl_Math_randomImpl() * 3.141592653589793 * 2.0;
        $this.$motionX =  -jl_Math_sin(var$8) * 0.019999999552965164;
        $this.$motionY = 0.20000000298023224;
        $this.$motionZ =  -jl_Math_cos(var$8) * 0.019999999552965164;
        $this.$fuse = 80;
        $this.$prevPosX = $par2;
        $this.$prevPosY = $par4;
        $this.$prevPosZ = $par6;
        $this.$tntPlacedBy = $par8EntityLivingBase;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, $par8EntityLivingBase, var$6, $var9, var$8, $ptr);
},
nms_EntityTNTPrimed__init_0 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_EntityTNTPrimed();
    nms_EntityTNTPrimed__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_EntityTNTPrimed_entityInit = $this => {
    return;
},
nms_EntityTNTPrimed_canTriggerWalking = $this => {
    return 0;
},
nms_EntityTNTPrimed_canBeCollidedWith = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityTNTPrimed_onUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$prevPosX = $this.$posX;
        $this.$prevPosY = $this.$posY;
        $this.$prevPosZ = $this.$posZ;
        var$1 = $this.$motionY - 0.03999999910593033;
        $this.$motionY = var$1;
        var$2 = $this.$motionX;
        var$3 = $this.$motionZ;
        $ptr = 1;
    case 1:
        nms_Entity_moveEntity($this, var$2, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$motionX * 0.9800000190734863;
        $this.$motionX = var$1;
        var$2 = $this.$motionY * 0.9800000190734863;
        $this.$motionY = var$2;
        var$3 = $this.$motionZ * 0.9800000190734863;
        $this.$motionZ = var$3;
        if ($this.$onGround) {
            $this.$motionX = var$1 * 0.699999988079071;
            $this.$motionZ = var$3 * 0.699999988079071;
            $this.$motionY = var$2 * (-0.5);
        }
        a: {
            var$4 = $this.$fuse;
            $this.$fuse = var$4 - 1 | 0;
            if (var$4 > 0) {
                var$5 = $this.$worldObj;
                var$4 = 0;
                b: {
                    while (true) {
                        var$6 = $rt_compare(var$4, var$5.$worldAccesses.$size0);
                        if (var$6 >= 0)
                            break;
                        if (var$4 < 0)
                            break b;
                        if (var$6 >= 0)
                            break b;
                        var$4 = var$4 + 1 | 0;
                    }
                    break a;
                }
                var$5 = new jl_IndexOutOfBoundsException;
                var$5.$suppressionEnabled = 1;
                var$5.$writableStackTrace = 1;
                $rt_throw(var$5);
            }
            $this.$isDead = 1;
            var$5 = $this.$worldObj;
            if (!var$5.$isRemote) {
                var$7 = 4.0;
                var$1 = $this.$posX;
                var$2 = $this.$posY;
                var$3 = $this.$posZ;
                var$4 = 1;
                var$6 = 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        nms_WorldServer_newExplosion(var$5, $this, var$1, var$2, var$3, var$7, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityTNTPrimed_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    var$2 = $this.$fuse << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2364);
    $par1NBTTagCompound.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2364), $par1NBTTagCompound);
},
nms_EntityTNTPrimed_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2364).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2364).$nativeString.length)
                    break a;
                $rt_s(2364).$hashCode1 = (31 * $rt_s(2364).$hashCode1 | 0) + $rt_s(2364).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2364).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2364) !== var$6) {
                    if ($rt_s(2364) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2364).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2364) === null) {
            var$6 = $par1NBTTagCompound.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2364).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2364).$nativeString.length)
                            break c;
                        $rt_s(2364).$hashCode1 = (31 * $rt_s(2364).$hashCode1 | 0) + $rt_s(2364).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2364).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            var$6 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$3) {
                    d: {
                        $par1NBTTagCompound = var$6.$key;
                        if ($rt_s(2364) !== $par1NBTTagCompound) {
                            if ($rt_s(2364) === $par1NBTTagCompound)
                                var$4 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                var$4 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                var$4 = $rt_s(2364).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$4 = (var$6 === null ? null : var$6.$value0).$data0;
    }
    $this.$fuse = var$4;
},
nms_EntityList$_clinit_$lambda$_63_13 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_13__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_13__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_13();
    nms_EntityList$_clinit_$lambda$_63_13__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_13_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityTNTPrimed;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.9800000190734863;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_14 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_14__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_14__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_14();
    nms_EntityList$_clinit_$lambda$_63_14__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_14_apply = (var$0, var$1) => {
    let var$2;
    nms_EntityList_$callClinit();
    var$2 = new nms_EntityFallingSand;
    nms_Entity__init_(var$2, var$1);
    var$2.$shouldDropItem = 1;
    var$2.$fallHurtMax = 40;
    var$2.$fallHurtAmount = 2.0;
    return var$2;
};
function nms_EntityFireworkRocket() {
    let a = this; nms_Entity.call(a);
    a.$fireworkAge = 0;
    a.$lifetime = 0;
}
let nms_EntityFireworkRocket_entityInit = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$dataWatcher;
    var$2 = new nms_WatchableObject;
    var$3 = null;
    var$2.$dataValueId = 8;
    var$2.$watchedObject = var$3;
    var$2.$objectType = 5;
    var$2.$watched = 1;
    var$3 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    ju_HashMap_putImpl(var$3, jl_Integer_integerCache.data[136], var$2);
    var$1.$isBlank = 0;
},
nms_EntityFireworkRocket__init_ = ($this, $par1World, $par2, $par4, $par6, $par8ItemStack) => {
    let var$6, var$7, $var9, $var11, var$10, var$11, var$12, $var10, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par8ItemStack = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$fireworkAge = 0;
        var$6 = 0.25;
        var$7 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition($this, $par2, $par4, $par6);
        $this.$yOffset = 0.0;
        $var9 = 1;
        if ($par8ItemStack !== null && ($par8ItemStack.$stackTagCompound === null ? 0 : 1)) {
            $par1World = $this.$dataWatcher;
            $var11 = $par1World.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$10 = jl_Integer_integerCache.data[136];
            if (var$10 === null) {
                $var11 = $var11.$elementData.data[0];
                while ($var11 !== null && $var11.$key !== null) {
                    $var11 = $var11.$next3;
                }
            } else {
                var$11 = var$10.$value;
                var$12 = $var11.$elementData.data;
                $var11 = var$12[var$11 & (var$12.length - 1 | 0)];
                while ($var11 !== null) {
                    if ($var11.$origKeyHash == var$11) {
                        $var10 = $var11.$key;
                        if (var$10 !== $var10 && !(var$10 !== $var10 ? ($var10 instanceof jl_Integer && $var10.$value == var$11 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    $var11 = $var11.$next3;
                }
            }
            $var10 = $var11 === null ? null : $var11.$value0;
            if (!($par8ItemStack !== $var10.$watchedObject ? 0 : 1)) {
                $var10.$watchedObject = $par8ItemStack;
                $var10.$watched = 1;
                $par1World.$objectChanged = 1;
            }
            a: {
                $var10 = $par8ItemStack.$stackTagCompound;
                $par8ItemStack = $var10.$tagMap;
                if (!$rt_s(1629).$hashCode1) {
                    var$14 = 0;
                    while (true) {
                        if (var$14 >= $rt_s(1629).$nativeString.length)
                            break a;
                        $rt_s(1629).$hashCode1 = (31 * $rt_s(1629).$hashCode1 | 0) + $rt_s(1629).$nativeString.charCodeAt(var$14) | 0;
                        var$14 = var$14 + 1 | 0;
                    }
                }
            }
            var$11 = $rt_s(1629).$hashCode1;
            var$12 = $par8ItemStack.$elementData.data;
            $par8ItemStack = var$12[var$11 & (var$12.length - 1 | 0)];
            while ($par8ItemStack !== null) {
                if ($par8ItemStack.$origKeyHash == var$11) {
                    b: {
                        $var11 = $par8ItemStack.$key;
                        if ($rt_s(1629) !== $var11) {
                            if ($rt_s(1629) === $var11)
                                var$14 = 1;
                            else if (!($var11 instanceof jl_String))
                                var$14 = 0;
                            else {
                                $var11 = $var11;
                                var$14 = $rt_s(1629).$nativeString !== $var11.$nativeString ? 0 : 1;
                            }
                            if (!var$14) {
                                var$14 = 0;
                                break b;
                            }
                        }
                        var$14 = 1;
                    }
                    if (var$14)
                        break;
                }
                $par8ItemStack = $par8ItemStack.$next3;
            }
            if (!($par8ItemStack === null ? 0 : 1)) {
                $var11 = new nms_NBTTagCompound;
                if ($rt_s(1629) !== null)
                    $var11.$name = $rt_s(1629);
                else
                    $var11.$name = $rt_s(3);
                $par1World = new ju_HashMap;
                var$14 = ju_HashMap_calculateCapacity(16);
                $par1World.$elementCount = 0;
                var$15 = $rt_createArray(ju_HashMap$HashEntry, var$14);
                var$12 = var$15.data;
                $par1World.$elementData = var$15;
                $par1World.$loadFactor = 0.75;
                $par1World.$threshold = var$12.length * 0.75 | 0;
                $var11.$tagMap = $par1World;
            } else {
                $par8ItemStack = $var10.$tagMap;
                if ($rt_s(1629) === null) {
                    $par8ItemStack = $par8ItemStack.$elementData.data[0];
                    while ($par8ItemStack !== null && $par8ItemStack.$key !== null) {
                        $par8ItemStack = $par8ItemStack.$next3;
                    }
                } else {
                    c: {
                        if (!$rt_s(1629).$hashCode1) {
                            var$14 = 0;
                            while (true) {
                                if (var$14 >= $rt_s(1629).$nativeString.length)
                                    break c;
                                $rt_s(1629).$hashCode1 = (31 * $rt_s(1629).$hashCode1 | 0) + $rt_s(1629).$nativeString.charCodeAt(var$14) | 0;
                                var$14 = var$14 + 1 | 0;
                            }
                        }
                    }
                    var$11 = $rt_s(1629).$hashCode1;
                    var$12 = $par8ItemStack.$elementData.data;
                    $par8ItemStack = var$12[var$11 & (var$12.length - 1 | 0)];
                    while ($par8ItemStack !== null) {
                        if ($par8ItemStack.$origKeyHash == var$11) {
                            d: {
                                $var11 = $par8ItemStack.$key;
                                if ($rt_s(1629) !== $var11) {
                                    if ($rt_s(1629) === $var11)
                                        var$14 = 1;
                                    else if (!($var11 instanceof jl_String))
                                        var$14 = 0;
                                    else {
                                        $var11 = $var11;
                                        var$14 = $rt_s(1629).$nativeString !== $var11.$nativeString ? 0 : 1;
                                    }
                                    if (!var$14) {
                                        var$14 = 0;
                                        break d;
                                    }
                                }
                                var$14 = 1;
                            }
                            if (var$14)
                                break;
                        }
                        $par8ItemStack = $par8ItemStack.$next3;
                    }
                }
                $var11 = $par8ItemStack === null ? null : $par8ItemStack.$value0;
            }
            if ($var11 !== null) {
                e: {
                    $par8ItemStack = $var11.$tagMap;
                    if (!$rt_s(1632).$hashCode1) {
                        var$14 = 0;
                        while (true) {
                            if (var$14 >= $rt_s(1632).$nativeString.length)
                                break e;
                            $rt_s(1632).$hashCode1 = (31 * $rt_s(1632).$hashCode1 | 0) + $rt_s(1632).$nativeString.charCodeAt(var$14) | 0;
                            var$14 = var$14 + 1 | 0;
                        }
                    }
                }
                var$11 = $rt_s(1632).$hashCode1;
                var$12 = $par8ItemStack.$elementData.data;
                $par8ItemStack = var$12[var$11 & (var$12.length - 1 | 0)];
                while ($par8ItemStack !== null) {
                    if ($par8ItemStack.$origKeyHash == var$11) {
                        f: {
                            $var10 = $par8ItemStack.$key;
                            if ($rt_s(1632) !== $var10) {
                                if ($rt_s(1632) === $var10)
                                    var$14 = 1;
                                else if (!($var10 instanceof jl_String))
                                    var$14 = 0;
                                else {
                                    $var10 = $var10;
                                    var$14 = $rt_s(1632).$nativeString !== $var10.$nativeString ? 0 : 1;
                                }
                                if (!var$14) {
                                    var$14 = 0;
                                    break f;
                                }
                            }
                            var$14 = 1;
                        }
                        if (var$14)
                            break;
                    }
                    $par8ItemStack = $par8ItemStack.$next3;
                }
                if (!($par8ItemStack === null ? 0 : 1))
                    var$14 = 0;
                else {
                    $par8ItemStack = $var11.$tagMap;
                    if ($rt_s(1632) === null) {
                        $par8ItemStack = $par8ItemStack.$elementData.data[0];
                        while ($par8ItemStack !== null && $par8ItemStack.$key !== null) {
                            $par8ItemStack = $par8ItemStack.$next3;
                        }
                    } else {
                        g: {
                            if (!$rt_s(1632).$hashCode1) {
                                var$14 = 0;
                                while (true) {
                                    if (var$14 >= $rt_s(1632).$nativeString.length)
                                        break g;
                                    $rt_s(1632).$hashCode1 = (31 * $rt_s(1632).$hashCode1 | 0) + $rt_s(1632).$nativeString.charCodeAt(var$14) | 0;
                                    var$14 = var$14 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(1632).$hashCode1;
                        var$12 = $par8ItemStack.$elementData.data;
                        $par8ItemStack = var$12[var$11 & (var$12.length - 1 | 0)];
                        while ($par8ItemStack !== null) {
                            if ($par8ItemStack.$origKeyHash == var$11) {
                                h: {
                                    $var11 = $par8ItemStack.$key;
                                    if ($rt_s(1632) !== $var11) {
                                        if ($rt_s(1632) === $var11)
                                            var$14 = 1;
                                        else if (!($var11 instanceof jl_String))
                                            var$14 = 0;
                                        else {
                                            $var11 = $var11;
                                            var$14 = $rt_s(1632).$nativeString !== $var11.$nativeString ? 0 : 1;
                                        }
                                        if (!var$14) {
                                            var$14 = 0;
                                            break h;
                                        }
                                    }
                                    var$14 = 1;
                                }
                                if (var$14)
                                    break;
                            }
                            $par8ItemStack = $par8ItemStack.$next3;
                        }
                    }
                    var$14 = ($par8ItemStack === null ? null : $par8ItemStack.$value0).$data0;
                }
                $var9 = $var9 + var$14 | 0;
            }
        }
        $this.$motionX = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.001;
        $this.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.001;
        $this.$motionY = 0.05;
        $var9 = 10 * $var9 | 0;
        $par1World = $this.$rand;
        var$16 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$16;
        var$17 = Long_lo(Long_shru(var$16, 17));
        while (true) {
            var$18 = var$17 % 6 | 0;
            if (((var$17 - var$18 | 0) + 5 | 0) >= 0)
                break;
            var$16 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, 17));
        }
        $var9 = $var9 + var$18 | 0;
        var$16 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1World.$seed = var$16;
        var$17 = Long_lo(Long_shru(var$16, 17));
        while (true) {
            var$18 = var$17 % 7 | 0;
            if (((var$17 - var$18 | 0) + 6 | 0) >= 0)
                break;
            var$16 = Long_and(Long_add(Long_mul($par1World.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1World.$seed = var$16;
            var$17 = Long_lo(Long_shru(var$16, 17));
        }
        $this.$lifetime = $var9 + var$18 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par4, $par6, $par8ItemStack, var$6, var$7, $var9, $var11, var$10, var$11, var$12, $var10, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityFireworkRocket__init_0 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_EntityFireworkRocket();
    nms_EntityFireworkRocket__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_EntityFireworkRocket_onUpdate = $this => {
    let var$1, var$2, var$3, $var1, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$lastTickPosX = $this.$posX;
        $this.$lastTickPosY = $this.$posY;
        $this.$lastTickPosZ = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$motionX * 1.15;
        $this.$motionX = var$1;
        var$2 = $this.$motionZ * 1.15;
        $this.$motionZ = var$2;
        var$3 = $this.$motionY + 0.04;
        $this.$motionY = var$3;
        $ptr = 2;
    case 2:
        nms_Entity_moveEntity($this, var$1, var$3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$motionX;
        var$1 = var$1 * var$1;
        var$2 = $this.$motionZ;
        $var1 = jl_Math_sqrt(var$1 + var$2 * var$2);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        var$5 = jl_Math_atan2($this.$motionY, $var1) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = var$5;
        while (true) {
            $var1 = $this.$prevRotationPitch;
            if (var$5 - $var1 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var1 - 360.0;
        }
        while (true) {
            $var1 = $this.$prevRotationPitch;
            var$6 = var$5 - $var1;
            if (var$6 < 180.0)
                break;
            $this.$prevRotationPitch = $var1 + 360.0;
        }
        while (true) {
            var$5 = $this.$rotationYaw;
            var$7 = $this.$prevRotationYaw;
            if (var$5 - var$7 >= (-180.0))
                break;
            $this.$prevRotationYaw = var$7 - 360.0;
        }
        while (true) {
            var$7 = $this.$prevRotationYaw;
            var$8 = var$5 - var$7;
            if (var$8 < 180.0)
                break;
            $this.$prevRotationYaw = var$7 + 360.0;
        }
        $this.$rotationPitch = $var1 + var$6 * 0.20000000298023224;
        $this.$rotationYaw = var$7 + var$8 * 0.20000000298023224;
        if ($this.$fireworkAge) {
            a: {
                var$9 = $this.$fireworkAge + 1 | 0;
                $this.$fireworkAge = var$9;
                var$10 = $this.$worldObj;
                if (var$10.$isRemote && (var$9 % 2 | 0) < 2) {
                    nle_EaglercraftRandom_nextGaussian($this.$rand);
                    nle_EaglercraftRandom_nextGaussian($this.$rand);
                    var$9 = 0;
                    while (true) {
                        var$11 = $rt_compare(var$9, var$10.$worldAccesses.$size0);
                        if (var$11 >= 0)
                            break a;
                        if (var$9 < 0)
                            break;
                        if (var$11 >= 0)
                            break;
                        var$9 = var$9 + 1 | 0;
                    }
                    var$10 = new jl_IndexOutOfBoundsException;
                    var$10.$suppressionEnabled = 1;
                    var$10.$writableStackTrace = 1;
                    $rt_throw(var$10);
                }
            }
            var$10 = $this.$worldObj;
            if (!var$10.$isRemote && $this.$fireworkAge > $this.$lifetime) {
                var$12 = new nms_Packet38EntityStatus;
                var$11 = $this.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$12.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$12.$entityId0 = var$11;
                var$12.$entityStatus = 17;
                var$10 = var$10.$theEntityTracker.$trackedEntityIDs;
                var$9 = $this.$entityId;
                var$11 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                var$14 = var$10.$slots.data;
                var$10 = var$14[var$13 & (var$14.length - 1 | 0)];
                b: {
                    while (var$10 !== null) {
                        if (var$10.$hashEntry == var$9) {
                            var$10 = var$10.$valueEntry;
                            break b;
                        }
                        var$10 = var$10.$nextEntry0;
                    }
                    var$10 = null;
                }
                var$10 = var$10;
                if (var$10 !== null) {
                    var$15 = var$10.$trackingPlayers.$backingMap;
                    if (var$15.$cachedKeySet === null) {
                        var$16 = new ju_HashMap$1;
                        var$16.$this$0 = var$15;
                        ju_AbstractCollection__init_(var$16);
                        var$15.$cachedKeySet = var$16;
                    }
                    var$16 = var$15.$cachedKeySet.$iterator();
                    var$17 = var$12 instanceof nms_Packet3Chat;
                    var$18 = var$12;
                    while (var$16.$hasNext()) {
                        c: {
                            var$15 = (var$16.$next()).$playerNetServerHandler;
                            if (var$17) {
                                var$11 = var$15.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break c;
                                if (var$11 == 1 && !var$18.$isServer)
                                    break c;
                            }
                            try {
                                var$15 = var$15.$netManager;
                                $ptr = 4;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$19 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$15 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$15);
                                jl_System_errCache = var$15;
                            }
                            jl_Throwable_printStackTrace(var$19, jl_System_errCache);
                        }
                    }
                    var$10 = var$10.$myEntity;
                    if (var$10 instanceof nms_EntityPlayerMP)
                        d: {
                            var$10 = var$10.$playerNetServerHandler;
                            if (var$17) {
                                var$11 = var$10.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break d;
                                if (var$11 == 1 && !var$18.$isServer)
                                    break d;
                            }
                            try {
                                var$10 = var$10.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$10 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$12 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0(var$12, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = var$12;
                            }
                            jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                        }
                }
                $this.$isDead = 1;
            }
            return;
        }
        var$10 = $this.$worldObj;
        var$12 = $rt_s(2566);
        var$5 = 3.0;
        $var1 = 1.0;
        $ptr = 3;
    case 3:
        nms_World_playSoundAtEntity(var$10, $this, var$12, var$5, $var1);
        if ($rt_suspending()) {
            break main;
        }
        e: {
            var$9 = $this.$fireworkAge + 1 | 0;
            $this.$fireworkAge = var$9;
            var$10 = $this.$worldObj;
            if (var$10.$isRemote && (var$9 % 2 | 0) < 2) {
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                var$9 = 0;
                while (true) {
                    var$11 = $rt_compare(var$9, var$10.$worldAccesses.$size0);
                    if (var$11 >= 0)
                        break e;
                    if (var$9 < 0)
                        break;
                    if (var$11 >= 0)
                        break;
                    var$9 = var$9 + 1 | 0;
                }
                var$10 = new jl_IndexOutOfBoundsException;
                var$10.$suppressionEnabled = 1;
                var$10.$writableStackTrace = 1;
                $rt_throw(var$10);
            }
        }
        var$10 = $this.$worldObj;
        if (!var$10.$isRemote && $this.$fireworkAge > $this.$lifetime) {
            var$12 = new nms_Packet38EntityStatus;
            var$11 = $this.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$12.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$12.$entityId0 = var$11;
            var$12.$entityStatus = 17;
            var$10 = var$10.$theEntityTracker.$trackedEntityIDs;
            var$9 = $this.$entityId;
            var$11 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
            var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
            var$14 = var$10.$slots.data;
            var$10 = var$14[var$13 & (var$14.length - 1 | 0)];
            a: {
                while (var$10 !== null) {
                    if (var$10.$hashEntry == var$9) {
                        var$10 = var$10.$valueEntry;
                        break a;
                    }
                    var$10 = var$10.$nextEntry0;
                }
                var$10 = null;
            }
            var$10 = var$10;
            if (var$10 !== null) {
                var$15 = var$10.$trackingPlayers.$backingMap;
                if (var$15.$cachedKeySet === null) {
                    var$16 = new ju_HashMap$1;
                    var$16.$this$0 = var$15;
                    ju_AbstractCollection__init_(var$16);
                    var$15.$cachedKeySet = var$16;
                }
                var$16 = var$15.$cachedKeySet.$iterator();
                var$17 = var$12 instanceof nms_Packet3Chat;
                var$18 = var$12;
                while (var$16.$hasNext()) {
                    f: {
                        var$15 = (var$16.$next()).$playerNetServerHandler;
                        if (var$17) {
                            var$11 = var$15.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break f;
                            if (var$11 == 1 && !var$18.$isServer)
                                break f;
                        }
                        try {
                            var$15 = var$15.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$19 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$15 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$15);
                            jl_System_errCache = var$15;
                        }
                        jl_Throwable_printStackTrace(var$19, jl_System_errCache);
                    }
                }
                var$10 = var$10.$myEntity;
                if (var$10 instanceof nms_EntityPlayerMP)
                    c: {
                        var$10 = var$10.$playerNetServerHandler;
                        if (var$17) {
                            var$11 = var$10.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break c;
                            if (var$11 == 1 && !var$18.$isServer)
                                break c;
                        }
                        try {
                            var$10 = var$10.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$10 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$12 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$12, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$12;
                        }
                        jl_Throwable_printStackTrace(var$10, jl_System_errCache);
                    }
            }
            $this.$isDead = 1;
        }
        return;
    case 4:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$15, var$12);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$19 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$15 = jl_System_errCache;
            if (var$15 === null) {
                var$15 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$15);
                jl_System_errCache = var$15;
            }
            var$15 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$19, var$15);
        }
        g: while (true) {
            while (true) {
                if (!var$16.$hasNext())
                    break g;
                var$15 = (var$16.$next()).$playerNetServerHandler;
                if (!var$17)
                    break;
                var$11 = var$15.$playerEntity.$chatVisibility;
                if (var$11 == 2)
                    continue;
                if (var$11 != 1)
                    break;
                if (var$18.$isServer)
                    break;
            }
            try {
                var$15 = var$15.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$19 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$15 = jl_System_errCache;
            if (var$15 === null) {
                var$15 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$15);
                jl_System_errCache = var$15;
            }
            var$15 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$19, var$15);
        }
        var$10 = var$10.$myEntity;
        if (var$10 instanceof nms_EntityPlayerMP)
            b: {
                var$10 = var$10.$playerNetServerHandler;
                if (var$17) {
                    var$11 = var$10.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break b;
                    if (var$11 == 1 && !var$18.$isServer)
                        break b;
                }
                try {
                    var$10 = var$10.$netManager;
                    $ptr = 5;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$10 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$12 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$12, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$12;
                }
                jl_Throwable_printStackTrace(var$10, jl_System_errCache);
            }
        $this.$isDead = 1;
        return;
    case 5:
        e: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$10, var$12);
                if ($rt_suspending()) {
                    break main;
                }
                break e;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$10 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$12, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace(var$10, jl_System_errCache);
        }
        $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_EntityFireworkRocket_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, $var3, var$6, $var2, var$8, var$9;
    var$2 = $this.$fireworkAge;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2567);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2567), var$4);
    var$2 = $this.$lifetime;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2568);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2568), var$4);
    $var3 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[136];
    if (var$4 === null) {
        $var3 = $var3.$elementData.data[0];
        while ($var3 !== null && $var3.$key !== null) {
            $var3 = $var3.$next3;
        }
    } else {
        var$2 = var$4.$value;
        var$6 = $var3.$elementData.data;
        $var3 = var$6[var$2 & (var$6.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$2) {
                var$3 = $var3.$key;
                if (var$4 !== var$3 && !(var$4 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$2 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
    }
    $var2 = ($var3 === null ? null : $var3.$value0).$watchedObject;
    if ($var2 !== null) {
        $var3 = new nms_NBTTagCompound;
        $var3.$name = $rt_s(3);
        var$8 = new ju_HashMap;
        var$2 = ju_HashMap_calculateCapacity(16);
        var$8.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$2);
        var$6 = var$9.data;
        var$8.$elementData = var$9;
        var$8.$loadFactor = 0.75;
        var$8.$threshold = var$6.length * 0.75 | 0;
        $var3.$tagMap = var$8;
        var$2 = $var2.$itemID << 16 >> 16;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(914);
        var$3.$data2 = var$2;
        ju_HashMap_putImpl(var$8, $rt_s(914), var$3);
        var$2 = $var2.$stackSize << 24 >> 24;
        var$8 = $var3.$tagMap;
        var$3 = new nms_NBTTagByte;
        var$3.$name = $rt_s(915);
        var$3.$data0 = var$2;
        ju_HashMap_putImpl(var$8, $rt_s(915), var$3);
        var$2 = $var2.$itemDamage << 16 >> 16;
        var$8 = $var3.$tagMap;
        var$3 = new nms_NBTTagShort;
        var$3.$name = $rt_s(916);
        var$3.$data2 = var$2;
        ju_HashMap_putImpl(var$8, $rt_s(916), var$3);
        var$4 = $var2.$stackTagCompound;
        if (var$4 !== null) {
            var$8 = $var3.$tagMap;
            var$4.$name = $rt_s(917);
            ju_HashMap_putImpl(var$8, $rt_s(917), var$4);
        }
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        $var3.$name = $rt_s(2569);
        ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2569), $var3);
    }
},
nms_EntityFireworkRocket_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, $var3, var$10;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2567).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2567).$nativeString.length)
                    break a;
                $rt_s(2567).$hashCode1 = (31 * $rt_s(2567).$hashCode1 | 0) + $rt_s(2567).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2567).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$3) {
            b: {
                var$5 = $var2.$key;
                if ($rt_s(2567) !== var$5) {
                    if ($rt_s(2567) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            var$6 = $rt_s(2567).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            var$6 = 0;
                    } else
                        var$6 = 1;
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2567) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2567).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2567).$nativeString.length)
                            break c;
                        $rt_s(2567).$hashCode1 = (31 * $rt_s(2567).$hashCode1 | 0) + $rt_s(2567).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2567).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$3) {
                    d: {
                        var$5 = $var2.$key;
                        if ($rt_s(2567) !== var$5) {
                            if ($rt_s(2567) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$6 = $rt_s(2567).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$6 = 0;
                            } else
                                var$6 = 1;
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    e: {
        $this.$fireworkAge = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2568).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2568).$nativeString.length)
                    break e;
                $rt_s(2568).$hashCode1 = (31 * $rt_s(2568).$hashCode1 | 0) + $rt_s(2568).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2568).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$3) {
            f: {
                var$5 = $var2.$key;
                if ($rt_s(2568) !== var$5) {
                    if ($rt_s(2568) !== var$5) {
                        if (!(var$5 instanceof jl_String))
                            var$6 = 0;
                        else {
                            var$5 = var$5;
                            var$6 = $rt_s(2568).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                    } else
                        var$6 = 1;
                    if (!var$6) {
                        var$6 = 0;
                        break f;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $var2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2568) === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2568).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2568).$nativeString.length)
                            break g;
                        $rt_s(2568).$hashCode1 = (31 * $rt_s(2568).$hashCode1 | 0) + $rt_s(2568).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2568).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$3) {
                    h: {
                        var$5 = $var2.$key;
                        if ($rt_s(2568) !== var$5) {
                            if ($rt_s(2568) === var$5)
                                var$6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$5 = var$5;
                                var$6 = $rt_s(2568).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break h;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$3 = ($var2 === null ? null : $var2.$value0).$data;
    }
    i: {
        $this.$lifetime = var$3;
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2569).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2569).$nativeString.length)
                    break i;
                $rt_s(2569).$hashCode1 = (31 * $rt_s(2569).$hashCode1 | 0) + $rt_s(2569).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$7 = $rt_s(2569).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$7) {
            j: {
                var$5 = $var2.$key;
                if ($rt_s(2569) !== var$5) {
                    if ($rt_s(2569) === var$5)
                        var$3 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$5 = var$5;
                        var$3 = $rt_s(2569).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagCompound;
        if ($rt_s(2569) !== null)
            $var2.$name = $rt_s(2569);
        else
            $var2.$name = $rt_s(3);
        $par1NBTTagCompound = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        $par1NBTTagCompound.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$4 = var$8.data;
        $par1NBTTagCompound.$elementData = var$8;
        $par1NBTTagCompound.$loadFactor = 0.75;
        $par1NBTTagCompound.$threshold = var$4.length * 0.75 | 0;
        $var2.$tagMap = $par1NBTTagCompound;
    } else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2569) === null) {
            var$5 = $par1NBTTagCompound.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2569).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2569).$nativeString.length)
                            break k;
                        $rt_s(2569).$hashCode1 = (31 * $rt_s(2569).$hashCode1 | 0) + $rt_s(2569).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2569).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            var$5 = var$4[var$6 & (var$4.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$6) {
                    l: {
                        $par1NBTTagCompound = var$5.$key;
                        if ($rt_s(2569) !== $par1NBTTagCompound) {
                            if ($rt_s(2569) === $par1NBTTagCompound)
                                var$3 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                var$3 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                var$3 = $rt_s(2569).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        $var2 = var$5 === null ? null : var$5.$value0;
    }
    if ($var2 !== null) {
        nms_ItemStack_$callClinit();
        $var3 = new nms_ItemStack;
        nms_ItemStack_readFromNBT($var3, $var2);
        nms_Item_$callClinit();
        if (nms_Item_itemsList.data[$var3.$itemID] === null)
            $var3 = null;
        if ($var3 !== null) {
            $par1NBTTagCompound = $this.$dataWatcher;
            var$10 = $par1NBTTagCompound.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[136];
            if (var$5 === null) {
                var$10 = var$10.$elementData.data[0];
                while (var$10 !== null && var$10.$key !== null) {
                    var$10 = var$10.$next3;
                }
            } else {
                var$7 = var$5.$value;
                var$4 = var$10.$elementData.data;
                var$10 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$10 !== null) {
                    if (var$10.$origKeyHash == var$7) {
                        $var2 = var$10.$key;
                        if (var$5 !== $var2 && !(var$5 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$7 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$10 = var$10.$next3;
                }
            }
            $var2 = var$10 === null ? null : var$10.$value0;
            if (!($var3 !== $var2.$watchedObject ? 0 : 1)) {
                $var2.$watchedObject = $var3;
                $var2.$watched = 1;
                $par1NBTTagCompound.$objectChanged = 1;
            }
        }
    }
},
nms_EntityFireworkRocket_canAttackWithItem = $this => {
    return 0;
},
nms_EntityList$_clinit_$lambda$_63_15 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_15__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_15__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_15();
    nms_EntityList$_clinit_$lambda$_63_15__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_15_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityFireworkRocket;
        nms_Entity__init_(var$2, var$1);
        var$3 = 0.25;
        var$4 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityBoat() {
    let a = this; nms_Entity.call(a);
    a.$field_70279_a = 0;
    a.$speedMultiplier = 0.0;
    a.$boatPosRotationIncrements = 0;
    a.$boatX = 0.0;
    a.$boatY = 0.0;
    a.$boatZ = 0.0;
    a.$boatYaw = 0.0;
    a.$boatPitch = 0.0;
}
let nms_EntityBoat_canTriggerWalking = $this => {
    return 0;
},
nms_EntityBoat_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 17, var$2);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 1;
    nms_DataWatcher_addObject(var$2, 18, var$1);
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Float;
    var$1.$value3 = 0.0;
    nms_DataWatcher_addObject(var$2, 19, var$1);
},
nms_EntityBoat_getCollisionBox = ($this, $par1Entity) => {
    return $par1Entity.$boundingBox0;
},
nms_EntityBoat_getBoundingBox = $this => {
    return $this.$boundingBox0;
},
nms_EntityBoat_canBePushed = $this => {
    return 1;
},
nms_EntityBoat_getMountedYOffset = $this => {
    return $this.$height0 * 0.0 - 0.30000001192092896;
},
nms_EntityBoat_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if (!$this.$worldObj.$isRemote && !$this.$isDead) {
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[146];
            if (var$4 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        var$7 = var$3.$key;
                        if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            $var3 =  -(var$3 === null ? null : var$3.$value0).$watchedObject.$value | 0;
            var$7 = $this.$dataWatcher;
            if ($var3 >= (-128) && $var3 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[$var3 + 128 | 0];
            } else {
                var$4 = new jl_Integer;
                var$4.$value = $var3;
            }
            var$3 = var$7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[146];
            if (var$9 !== null) {
                var$10 = var$9.$value;
                var$6 = var$3.$elementData.data;
                var$11 = var$6[var$10 & (var$6.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$10) {
                        var$3 = var$11.$key;
                        if (var$9 !== var$3 && !(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            } else {
                var$11 = var$3.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            var$3 = var$11.$watchedObject;
            if (!(var$4 !== var$3 ? (var$3 instanceof jl_Integer && var$3.$value == var$4.$value ? 1 : 0) : 1)) {
                var$11.$watchedObject = var$4;
                var$11.$watched = 1;
                var$7.$objectChanged = 1;
            }
            var$7 = $this.$dataWatcher;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[138];
            var$3 = var$7.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[145];
            if (var$11 !== null) {
                var$10 = var$11.$value;
                var$6 = var$3.$elementData.data;
                var$4 = var$6[var$10 & (var$6.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$10) {
                        var$3 = var$4.$key;
                        if (var$11 !== var$3 && !(var$11 !== var$3 ? (var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            } else {
                var$4 = var$3.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            }
            var$4 = var$4 === null ? null : var$4.$value0;
            var$3 = var$4.$watchedObject;
            if (!(var$9 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$9.$value ? 1 : 0)) {
                var$4.$watchedObject = var$9;
                var$4.$watched = 1;
                var$7.$objectChanged = 1;
            }
            var$3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[147];
            if (var$4 === null) {
                var$7 = var$3.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                var$10 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$7 = var$6[var$10 & (var$6.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$10) {
                        var$3 = var$7.$key;
                        if (var$4 !== var$3 && !(var$4 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$10 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$3 = var$7 === null ? null : var$7.$value0;
            $par2 = var$3.$watchedObject.$value3 + $par2 * 10.0;
            var$3 = $this.$dataWatcher;
            var$7 = new jl_Float;
            var$7.$value3 = $par2;
            var$4 = var$3.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$9 = jl_Integer_integerCache.data[147];
            if (var$9 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                var$5 = var$9.$value;
                var$6 = var$4.$elementData.data;
                var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$5) {
                        var$11 = var$4.$key;
                        if (var$9 !== var$11 && !(var$9 === var$11 ? 1 : var$11 instanceof jl_Integer && var$11.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$11 = var$4 === null ? null : var$4.$value0;
            var$4 = var$11.$watchedObject;
            if (var$7 === var$4)
                $var3 = 1;
            else
                a: {
                    if (var$4 instanceof jl_Float) {
                        $par2 = var$7.$value3;
                        var$12 = var$4.$value3;
                        if ($par2 !== $par2 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits($par2) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                            $var3 = 1;
                            break a;
                        }
                    }
                    $var3 = 0;
                }
            if (!$var3) {
                var$11.$watchedObject = var$7;
                var$11.$watched = 1;
                var$3.$objectChanged = 1;
            }
            $this.$velocityChanged = 1;
            $var3 = $par1DamageSource.$getEntity() instanceof nms_EntityPlayer && ($par1DamageSource.$getEntity()).$capabilities.$isCreativeMode ? 1 : 0;
            b: {
                if (!$var3) {
                    $par1DamageSource = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[147];
                    if (var$7 === null) {
                        $par1DamageSource = $par1DamageSource.$elementData.data[0];
                        while ($par1DamageSource !== null && $par1DamageSource.$key !== null) {
                            $par1DamageSource = $par1DamageSource.$next3;
                        }
                    } else {
                        var$13 = var$7.$value;
                        var$6 = $par1DamageSource.$elementData.data;
                        $par1DamageSource = var$6[var$13 & (var$6.length - 1 | 0)];
                        while ($par1DamageSource !== null) {
                            if ($par1DamageSource.$origKeyHash == var$13) {
                                var$3 = $par1DamageSource.$key;
                                if (var$7 !== var$3 && !(var$7 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$13 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $par1DamageSource = $par1DamageSource.$next3;
                        }
                    }
                    if (($par1DamageSource === null ? null : $par1DamageSource.$value0).$watchedObject.$value3 <= 40.0)
                        break b;
                }
                $par1DamageSource = $this.$riddenByEntity;
                if ($par1DamageSource !== null) {
                    $ptr = 1;
                    continue main;
                }
                if (!$var3) {
                    nms_Item_$callClinit();
                    $var3 = nms_Item_boat.$itemID0;
                    $par1DamageSource = new nms_ItemStack;
                    nms_ItemStack_$callClinit();
                    $par1DamageSource.$itemID = $var3;
                    $par1DamageSource.$stackSize = 1;
                    $par1DamageSource.$itemDamage = 0;
                    var$3 = new nms_EntityItem;
                    var$7 = $this.$worldObj;
                    var$14 = $this.$posX;
                    var$15 = $this.$posY + 0.0;
                    var$16 = $this.$posZ;
                    $ptr = 2;
                    continue main;
                }
                $this.$isDead = 1;
            }
            return 1;
        }
        return 1;
    case 1:
        $par1DamageSource.$mountEntity($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($var3) {
            $this.$isDead = 1;
            return 1;
        }
        nms_Item_$callClinit();
        $var3 = nms_Item_boat.$itemID0;
        $par1DamageSource = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $par1DamageSource.$itemID = $var3;
        $par1DamageSource.$stackSize = 1;
        $par1DamageSource.$itemDamage = 0;
        var$3 = new nms_EntityItem;
        var$7 = $this.$worldObj;
        var$14 = $this.$posX;
        var$15 = $this.$posY + 0.0;
        var$16 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityItem__init_(var$3, var$7, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = var$3.$dataWatcher;
        var$7 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null)
            var$7 = ju_HashMap_findNullKeyEntry(var$7);
        else {
            var$10 = jl_Integer_hashCode0(var$4);
            var$7 = ju_HashMap_findNonNullKeyEntry(var$7, var$4, var$10 & (var$7.$elementData.data.length - 1 | 0), var$10);
        }
        var$4 = var$7 === null ? null : var$7.$value0;
        if (!($par1DamageSource !== var$4.$watchedObject ? 0 : 1)) {
            var$4.$watchedObject = $par1DamageSource;
            var$4.$watched = 1;
            var$11.$objectChanged = 1;
        }
        var$4 = var$3.$dataWatcher;
        $par1DamageSource = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[138];
        if (var$7 === null)
            $par1DamageSource = ju_HashMap_findNullKeyEntry($par1DamageSource);
        else {
            var$10 = jl_Integer_hashCode0(var$7);
            $par1DamageSource = ju_HashMap_findNonNullKeyEntry($par1DamageSource, var$7, var$10 & ($par1DamageSource.$elementData.data.length - 1 | 0), var$10);
        }
        ($par1DamageSource === null ? null : $par1DamageSource.$value0).$watched = 1;
        var$4.$objectChanged = 1;
        var$3.$delayBeforeCanPickup = 10;
        $par1DamageSource = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1DamageSource, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, $var3, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityBoat_canBeCollidedWith = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityBoat_onUpdate = $this => {
    let $var18, var$2, $var1, var$4, $var9, var$6, $var24, $var16, var$9, var$10, $var2, $var4, $var6, $var23, $var8, $var5, $var7, $var25, $var12, $var20, $var26, $var10, var$23, var$24, $var6_0, $var14, $var27, $var19, $var21, $var22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var22 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var27 = $thread.pop();$var14 = $thread.pop();$var6_0 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var10 = $thread.pop();$var26 = $thread.pop();$var20 = $thread.pop();$var12 = $thread.pop();$var25 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var8 = $thread.pop();$var23 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$10 = $thread.pop();var$9
        = $thread.pop();$var16 = $thread.pop();$var24 = $thread.pop();var$6 = $thread.pop();$var9 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();$var18 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[145];
        if (var$2 !== null) {
            $var1 = var$2.$value;
            var$4 = $var18.$elementData.data;
            $var18 = var$4[$var1 & (var$4.length - 1 | 0)];
            while ($var18 !== null) {
                if ($var18.$origKeyHash == $var1) {
                    $var9 = $var18.$key;
                    if (var$2 !== $var9 && !(var$2 !== $var9 ? ($var9 instanceof jl_Integer && $var9.$value == $var1 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                $var18 = $var18.$next3;
            }
        } else {
            $var18 = $var18.$elementData.data[0];
            while ($var18 !== null && $var18.$key !== null) {
                $var18 = $var18.$next3;
            }
        }
        $var18 = $var18 === null ? null : $var18.$value0;
        if ($var18.$watchedObject.$value > 0) {
            $var18 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[145];
            if (var$2 !== null) {
                $var1 = var$2.$value;
                var$4 = $var18.$elementData.data;
                $var18 = var$4[$var1 & (var$4.length - 1 | 0)];
                while ($var18 !== null) {
                    if ($var18.$origKeyHash == $var1) {
                        $var9 = $var18.$key;
                        if (var$2 !== $var9 && !(var$2 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var1 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var18 = $var18.$next3;
                }
            } else {
                $var18 = $var18.$elementData.data[0];
                while ($var18 !== null && $var18.$key !== null) {
                    $var18 = $var18.$next3;
                }
            }
            $var18 = $var18 === null ? null : $var18.$value0;
            $var1 = $var18.$watchedObject.$value - 1 | 0;
            $var18 = $this.$dataWatcher;
            if ($var1 >= (-128) && $var1 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[$var1 + 128 | 0];
            } else {
                var$2 = new jl_Integer;
                var$2.$value = $var1;
            }
            $var9 = $var18.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[145];
            if (var$6 === null) {
                $var9 = $var9.$elementData.data[0];
                while ($var9 !== null && $var9.$key !== null) {
                    $var9 = $var9.$next3;
                }
            } else {
                $var24 = var$6.$value;
                var$4 = $var9.$elementData.data;
                $var9 = var$4[$var24 & (var$4.length - 1 | 0)];
                while ($var9 !== null) {
                    if ($var9.$origKeyHash == $var24) {
                        $var16 = $var9.$key;
                        if (var$6 !== $var16 && !(var$6 !== $var16 ? ($var16 instanceof jl_Integer && $var16.$value == $var24 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    $var9 = $var9.$next3;
                }
            }
            $var16 = $var9 === null ? null : $var9.$value0;
            $var9 = $var16.$watchedObject;
            if (!(var$2 !== $var9 ? ($var9 instanceof jl_Integer && $var9.$value == var$2.$value ? 1 : 0) : 1)) {
                $var16.$watchedObject = var$2;
                $var16.$watched = 1;
                $var18.$objectChanged = 1;
            }
        }
        $var18 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[147];
        if (var$2 !== null) {
            $var1 = var$2.$value;
            var$4 = $var18.$elementData.data;
            $var18 = var$4[$var1 & (var$4.length - 1 | 0)];
            while ($var18 !== null) {
                if ($var18.$origKeyHash == $var1) {
                    $var9 = $var18.$key;
                    if (var$2 !== $var9 && !(var$2 !== $var9 ? ($var9 instanceof jl_Integer && $var9.$value == $var1 ? 1 : 0) : 1) ? 0 : 1)
                        break;
                }
                $var18 = $var18.$next3;
            }
        } else {
            $var18 = $var18.$elementData.data[0];
            while ($var18 !== null && $var18.$key !== null) {
                $var18 = $var18.$next3;
            }
        }
        $var18 = $var18 === null ? null : $var18.$value0;
        if ($var18.$watchedObject.$value3 > 0.0) {
            $var18 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[147];
            if (var$2 === null) {
                $var18 = $var18.$elementData.data[0];
                while ($var18 !== null && $var18.$key !== null) {
                    $var18 = $var18.$next3;
                }
            } else {
                $var1 = var$2.$value;
                var$4 = $var18.$elementData.data;
                $var18 = var$4[$var1 & (var$4.length - 1 | 0)];
                while ($var18 !== null) {
                    if ($var18.$origKeyHash == $var1) {
                        $var9 = $var18.$key;
                        if (var$2 !== $var9 && !(var$2 === $var9 ? 1 : $var9 instanceof jl_Integer && $var9.$value == $var1 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var18 = $var18.$next3;
                }
            }
            $var18 = $var18 === null ? null : $var18.$value0;
            var$9 = $var18.$watchedObject.$value3 - 1.0;
            $var18 = $this.$dataWatcher;
            var$2 = new jl_Float;
            var$2.$value3 = var$9;
            $var9 = $var18.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[147];
            if (var$6 === null) {
                $var9 = $var9.$elementData.data[0];
                while ($var9 !== null && $var9.$key !== null) {
                    $var9 = $var9.$next3;
                }
            } else {
                $var24 = var$6.$value;
                var$4 = $var9.$elementData.data;
                $var9 = var$4[$var24 & (var$4.length - 1 | 0)];
                while ($var9 !== null) {
                    if ($var9.$origKeyHash == $var24) {
                        $var16 = $var9.$key;
                        if (var$6 !== $var16 && !(var$6 === $var16 ? 1 : $var16 instanceof jl_Integer && $var16.$value == $var24 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var9 = $var9.$next3;
                }
            }
            $var16 = $var9 === null ? null : $var9.$value0;
            $var9 = $var16.$watchedObject;
            if (var$2 === $var9)
                $var1 = 1;
            else
                a: {
                    if ($var9 instanceof jl_Float) {
                        var$9 = var$2.$value3;
                        var$10 = $var9.$value3;
                        if (var$9 !== var$9 ? (var$10 === var$10 ? 0 : 1) : $rt_floatToRawIntBits(var$9) != $rt_floatToRawIntBits(var$10) ? 0 : 1) {
                            $var1 = 1;
                            break a;
                        }
                    }
                    $var1 = 0;
                }
            if (!$var1) {
                $var16.$watchedObject = var$2;
                $var16.$watched = 1;
                $var18.$objectChanged = 1;
            }
        }
        $this.$prevPosX = $this.$posX;
        $this.$prevPosY = $this.$posY;
        $this.$prevPosZ = $this.$posZ;
        $var1 = 5;
        $var2 = 0.0;
        $var4 = 0;
        $var6 = 0.2;
        if ($var4 < $var1) {
            $var18 = $this.$boundingBox0;
            $var23 = $var18.$minY0;
            $var8 = $var18.$maxY - $var23;
            $var5 = $var23 + $var8 * ($var4 + 0 | 0) / 5.0 - 0.125;
            $var4 = $var4 + 1 | 0;
            $var7 = $var23 + $var8 * $var4 / 5.0 - 0.125;
            var$2 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var18 = $this.$boundingBox0;
            $var23 = $var18.$minX0;
            $var8 = $var18.$minZ0;
            $var25 = $var18.$maxX0;
            $var12 = $var18.$maxZ0;
            $var24 = var$2.$nextPoolIndex;
            $var18 = var$2.$listAABB;
            $var20 = $var18.$size0;
            $var26 = $rt_compare($var24, $var20);
            if ($var26 >= 0) {
                $var9 = new nms_AxisAlignedBB;
                $var9.$minX0 = $var23;
                $var9.$minY0 = $var5;
                $var9.$minZ0 = $var8;
                $var9.$maxX0 = $var25;
                $var9.$maxY = $var7;
                $var9.$maxZ0 = $var12;
                ju_ArrayList_ensureCapacity($var18, $var20 + 1 | 0);
                var$4 = $var18.$array.data;
                $var26 = $var18.$size0;
                $var18.$size0 = $var26 + 1 | 0;
                var$4[$var26] = $var9;
                $var18.$modCount = $var18.$modCount + 1 | 0;
            } else if ($var24 >= 0 && $var26 < 0) {
                $var9 = $var18.$array.data[$var24];
                $var9.$minX0 = $var23;
                $var9.$minY0 = $var5;
                $var9.$minZ0 = $var8;
                $var9.$maxX0 = $var25;
                $var9.$maxY = $var7;
                $var9.$maxZ0 = $var12;
            } else {
                $var18 = new jl_IndexOutOfBoundsException;
                $var18.$suppressionEnabled = 1;
                $var18.$writableStackTrace = 1;
                $rt_throw($var18);
            }
            var$2.$nextPoolIndex = var$2.$nextPoolIndex + 1 | 0;
            $var18 = $this.$worldObj;
            nms_Material_$callClinit();
            var$2 = nms_Material_water;
            $ptr = 2;
            continue main;
        }
        b: {
            $var23 = $this.$motionX;
            $var23 = $var23 * $var23;
            $var6 = $this.$motionZ;
            $var23 = jl_Math_sqrt($var23 + $var6 * $var6);
            if ($var23 > 0.26249999999999996) {
                jl_Math_cos($this.$rotationYaw * 3.141592653589793 / 180.0);
                jl_Math_sin($this.$rotationYaw * 3.141592653589793 / 180.0);
                $var10 = 0;
                $var8 = 1.0 + $var23 * 60.0;
                c: {
                    d: while (true) {
                        if ($var10 >= $var8)
                            break b;
                        $var18 = $this.$rand;
                        var$23 = Long_and(Long_add(Long_mul($var18.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var18.$seed = var$23;
                        var$23 = Long_and(Long_add(Long_mul(var$23, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var18.$seed = var$23;
                        var$24 = Long_and(Long_add(Long_mul(var$23, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var18.$seed = var$24;
                        if (!(!Long_lo(Long_shru(var$24, 47)) ? 0 : 1)) {
                            $var18 = $this.$worldObj;
                            $var1 = 0;
                            while (true) {
                                $var4 = $rt_compare($var1, $var18.$worldAccesses.$size0);
                                if ($var4 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break d;
                                if ($var4 >= 0)
                                    break d;
                                $var1 = $var1 + 1 | 0;
                            }
                        } else {
                            $var18 = $this.$worldObj;
                            $var1 = 0;
                            while (true) {
                                $var4 = $rt_compare($var1, $var18.$worldAccesses.$size0);
                                if ($var4 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break c;
                                if ($var4 >= 0)
                                    break c;
                                $var1 = $var1 + 1 | 0;
                            }
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var18 = new jl_IndexOutOfBoundsException;
                    $var18.$suppressionEnabled = 1;
                    $var18.$writableStackTrace = 1;
                    $rt_throw($var18);
                }
                $var18 = new jl_IndexOutOfBoundsException;
                $var18.$suppressionEnabled = 1;
                $var18.$writableStackTrace = 1;
                $rt_throw($var18);
            }
        }
        if ($this.$worldObj.$isRemote && $this.$field_70279_a) {
            $var1 = $this.$boatPosRotationIncrements;
            if ($var1 <= 0) {
                nms_Entity_setPosition($this, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
                if ($this.$onGround) {
                    $this.$motionX = $this.$motionX * 0.5;
                    $this.$motionY = $this.$motionY * 0.5;
                    $this.$motionZ = $this.$motionZ * 0.5;
                }
                $this.$motionX = $this.$motionX * 0.9900000095367432;
                $this.$motionY = $this.$motionY * 0.949999988079071;
                $this.$motionZ = $this.$motionZ * 0.9900000095367432;
            } else {
                $var2 = $this.$posX;
                $var23 = $this.$boatX - $var2;
                $var6 = $var1;
                $var6_0 = $var2 + $var23 / $var6;
                $var2 = $this.$posY;
                $var8 = $var2 + ($this.$boatY - $var2) / $var6;
                $var2 = $this.$posZ;
                $var25 = $var2 + ($this.$boatZ - $var2) / $var6;
                $var2 = $this.$boatYaw;
                $var23 = $this.$rotationYaw;
                $var12 = ($var2 - $var23) % 360.0;
                if ($var12 >= 180.0)
                    $var12 = $var12 - 360.0;
                if ($var12 < (-180.0))
                    $var12 = $var12 + 360.0;
                $this.$rotationYaw = $var23 + $var12 / $var6;
                $var2 = $this.$rotationPitch;
                $this.$rotationPitch = $var2 + ($this.$boatPitch - $var2) / $var6;
                $this.$boatPosRotationIncrements = $var1 - 1 | 0;
                nms_Entity_setPosition($this, $var6_0, $var8, $var25);
                var$9 = $this.$rotationYaw;
                var$10 = $this.$rotationPitch;
                $this.$rotationYaw = var$9 % 360.0;
                $this.$rotationPitch = var$10 % 360.0;
            }
            return;
        }
        if ($var2 < 1.0) {
            $var6 = $var2 * 2.0 - 1.0;
            $this.$motionY = $this.$motionY + 0.03999999910593033 * $var6;
        } else {
            $var2 = $this.$motionY;
            if ($var2 < 0.0)
                $this.$motionY = $var2 / 2.0;
            $this.$motionY = $this.$motionY + 0.007000000216066837;
        }
        $var18 = $this.$riddenByEntity;
        if ($var18 !== null && $var18 instanceof nms_EntityLivingBase && $var18.$moveForward > 0.0) {
            $var8 =  -jl_Math_sin($var18.$rotationYaw * 3.1415927410125732 / 180.0);
            $var25 = jl_Math_cos($this.$riddenByEntity.$rotationYaw * 3.1415927410125732 / 180.0);
            $var2 = $this.$motionX;
            $var6 = $this.$speedMultiplier;
            $this.$motionX = $var2 + $var8 * $var6 * 0.05000000074505806;
            $this.$motionZ = $this.$motionZ + $var25 * $var6 * 0.05000000074505806;
        }
        $var2 = $this.$motionX;
        $var2 = $var2 * $var2;
        $var6 = $this.$motionZ;
        $var6 = jl_Math_sqrt($var2 + $var6 * $var6);
        if ($var6 > 0.35) {
            $var8 = 0.35 / $var6;
            $this.$motionX = $this.$motionX * $var8;
            $this.$motionZ = $this.$motionZ * $var8;
            $var6 = 0.35;
        }
        e: {
            if ($var6 > $var23) {
                $var2 = $this.$speedMultiplier;
                if ($var2 < 0.35) {
                    $var2 = $var2 + (0.35 - $var2) / 35.0;
                    $this.$speedMultiplier = $var2;
                    if ($var2 <= 0.35)
                        break e;
                    $this.$speedMultiplier = 0.35;
                    break e;
                }
            }
            $var2 = $this.$speedMultiplier;
            $var2 = $var2 - ($var2 - 0.07) / 35.0;
            $this.$speedMultiplier = $var2;
            if ($var2 < 0.07)
                $this.$speedMultiplier = 0.07;
        }
        if ($this.$onGround) {
            $this.$motionX = $this.$motionX * 0.5;
            $this.$motionY = $this.$motionY * 0.5;
            $this.$motionZ = $this.$motionZ * 0.5;
        }
        $var2 = $this.$motionX;
        $var6 = $this.$motionY;
        $var8 = $this.$motionZ;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_isAABBInMaterial($var18, $var9, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var24 = $tmp;
        if ($var24)
            $var2 = $var2 + $var6;
        if ($var4 < $var1) {
            $var18 = $this.$boundingBox0;
            $var23 = $var18.$minY0;
            $var8 = $var18.$maxY - $var23;
            $var5 = $var23 + $var8 * ($var4 + 0 | 0) / 5.0 - 0.125;
            $var4 = $var4 + 1 | 0;
            $var7 = $var23 + $var8 * $var4 / 5.0 - 0.125;
            var$2 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var18 = $this.$boundingBox0;
            $var23 = $var18.$minX0;
            $var8 = $var18.$minZ0;
            $var25 = $var18.$maxX0;
            $var12 = $var18.$maxZ0;
            $var24 = var$2.$nextPoolIndex;
            $var18 = var$2.$listAABB;
            $var20 = $var18.$size0;
            $var26 = $rt_compare($var24, $var20);
            if ($var26 >= 0) {
                $var9 = new nms_AxisAlignedBB;
                $var9.$minX0 = $var23;
                $var9.$minY0 = $var5;
                $var9.$minZ0 = $var8;
                $var9.$maxX0 = $var25;
                $var9.$maxY = $var7;
                $var9.$maxZ0 = $var12;
                ju_ArrayList_ensureCapacity($var18, $var20 + 1 | 0);
                var$4 = $var18.$array.data;
                $var26 = $var18.$size0;
                $var18.$size0 = $var26 + 1 | 0;
                var$4[$var26] = $var9;
                $var18.$modCount = $var18.$modCount + 1 | 0;
            } else if ($var24 >= 0 && $var26 < 0) {
                $var9 = $var18.$array.data[$var24];
                $var9.$minX0 = $var23;
                $var9.$minY0 = $var5;
                $var9.$minZ0 = $var8;
                $var9.$maxX0 = $var25;
                $var9.$maxY = $var7;
                $var9.$maxZ0 = $var12;
            } else {
                $var18 = new jl_IndexOutOfBoundsException;
                $var18.$suppressionEnabled = 1;
                $var18.$writableStackTrace = 1;
                $rt_throw($var18);
            }
            var$2.$nextPoolIndex = var$2.$nextPoolIndex + 1 | 0;
            $var18 = $this.$worldObj;
            nms_Material_$callClinit();
            var$2 = nms_Material_water;
            continue main;
        }
        f: {
            $var23 = $this.$motionX;
            $var23 = $var23 * $var23;
            $var6 = $this.$motionZ;
            $var23 = jl_Math_sqrt($var23 + $var6 * $var6);
            if ($var23 > 0.26249999999999996) {
                jl_Math_cos($this.$rotationYaw * 3.141592653589793 / 180.0);
                jl_Math_sin($this.$rotationYaw * 3.141592653589793 / 180.0);
                $var10 = 0;
                $var8 = 1.0 + $var23 * 60.0;
                g: {
                    h: while (true) {
                        if ($var10 >= $var8)
                            break f;
                        $var18 = $this.$rand;
                        var$23 = Long_and(Long_add(Long_mul($var18.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var18.$seed = var$23;
                        var$23 = Long_and(Long_add(Long_mul(var$23, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var18.$seed = var$23;
                        var$24 = Long_and(Long_add(Long_mul(var$23, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var18.$seed = var$24;
                        if (!(!Long_lo(Long_shru(var$24, 47)) ? 0 : 1)) {
                            $var18 = $this.$worldObj;
                            $var1 = 0;
                            while (true) {
                                $var4 = $rt_compare($var1, $var18.$worldAccesses.$size0);
                                if ($var4 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break h;
                                if ($var4 >= 0)
                                    break h;
                                $var1 = $var1 + 1 | 0;
                            }
                        } else {
                            $var18 = $this.$worldObj;
                            $var1 = 0;
                            while (true) {
                                $var4 = $rt_compare($var1, $var18.$worldAccesses.$size0);
                                if ($var4 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break g;
                                if ($var4 >= 0)
                                    break g;
                                $var1 = $var1 + 1 | 0;
                            }
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var18 = new jl_IndexOutOfBoundsException;
                    $var18.$suppressionEnabled = 1;
                    $var18.$writableStackTrace = 1;
                    $rt_throw($var18);
                }
                $var18 = new jl_IndexOutOfBoundsException;
                $var18.$suppressionEnabled = 1;
                $var18.$writableStackTrace = 1;
                $rt_throw($var18);
            }
        }
        if ($this.$worldObj.$isRemote && $this.$field_70279_a) {
            $var1 = $this.$boatPosRotationIncrements;
            if ($var1 <= 0) {
                nms_Entity_setPosition($this, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
                if ($this.$onGround) {
                    $this.$motionX = $this.$motionX * 0.5;
                    $this.$motionY = $this.$motionY * 0.5;
                    $this.$motionZ = $this.$motionZ * 0.5;
                }
                $this.$motionX = $this.$motionX * 0.9900000095367432;
                $this.$motionY = $this.$motionY * 0.949999988079071;
                $this.$motionZ = $this.$motionZ * 0.9900000095367432;
            } else {
                $var2 = $this.$posX;
                $var23 = $this.$boatX - $var2;
                $var6 = $var1;
                $var6_0 = $var2 + $var23 / $var6;
                $var2 = $this.$posY;
                $var8 = $var2 + ($this.$boatY - $var2) / $var6;
                $var2 = $this.$posZ;
                $var25 = $var2 + ($this.$boatZ - $var2) / $var6;
                $var2 = $this.$boatYaw;
                $var23 = $this.$rotationYaw;
                $var12 = ($var2 - $var23) % 360.0;
                if ($var12 >= 180.0)
                    $var12 = $var12 - 360.0;
                if ($var12 < (-180.0))
                    $var12 = $var12 + 360.0;
                $this.$rotationYaw = $var23 + $var12 / $var6;
                $var2 = $this.$rotationPitch;
                $this.$rotationPitch = $var2 + ($this.$boatPitch - $var2) / $var6;
                $this.$boatPosRotationIncrements = $var1 - 1 | 0;
                nms_Entity_setPosition($this, $var6_0, $var8, $var25);
                var$9 = $this.$rotationYaw;
                var$10 = $this.$rotationPitch;
                $this.$rotationYaw = var$9 % 360.0;
                $this.$rotationPitch = var$10 % 360.0;
            }
            return;
        }
        if ($var2 < 1.0) {
            $var6 = $var2 * 2.0 - 1.0;
            $this.$motionY = $this.$motionY + 0.03999999910593033 * $var6;
        } else {
            $var2 = $this.$motionY;
            if ($var2 < 0.0)
                $this.$motionY = $var2 / 2.0;
            $this.$motionY = $this.$motionY + 0.007000000216066837;
        }
        $var18 = $this.$riddenByEntity;
        if ($var18 !== null && $var18 instanceof nms_EntityLivingBase && $var18.$moveForward > 0.0) {
            $var8 =  -jl_Math_sin($var18.$rotationYaw * 3.1415927410125732 / 180.0);
            $var25 = jl_Math_cos($this.$riddenByEntity.$rotationYaw * 3.1415927410125732 / 180.0);
            $var2 = $this.$motionX;
            $var6 = $this.$speedMultiplier;
            $this.$motionX = $var2 + $var8 * $var6 * 0.05000000074505806;
            $this.$motionZ = $this.$motionZ + $var25 * $var6 * 0.05000000074505806;
        }
        $var2 = $this.$motionX;
        $var2 = $var2 * $var2;
        $var6 = $this.$motionZ;
        $var6 = jl_Math_sqrt($var2 + $var6 * $var6);
        if ($var6 > 0.35) {
            $var8 = 0.35 / $var6;
            $this.$motionX = $this.$motionX * $var8;
            $this.$motionZ = $this.$motionZ * $var8;
            $var6 = 0.35;
        }
        i: {
            if ($var6 > $var23) {
                $var2 = $this.$speedMultiplier;
                if ($var2 < 0.35) {
                    $var2 = $var2 + (0.35 - $var2) / 35.0;
                    $this.$speedMultiplier = $var2;
                    if ($var2 <= 0.35)
                        break i;
                    $this.$speedMultiplier = 0.35;
                    break i;
                }
            }
            $var2 = $this.$speedMultiplier;
            $var2 = $var2 - ($var2 - 0.07) / 35.0;
            $this.$speedMultiplier = $var2;
            if ($var2 < 0.07)
                $this.$speedMultiplier = 0.07;
        }
        if ($this.$onGround) {
            $this.$motionX = $this.$motionX * 0.5;
            $this.$motionY = $this.$motionY * 0.5;
            $this.$motionZ = $this.$motionZ * 0.5;
        }
        $var2 = $this.$motionX;
        $var6 = $this.$motionY;
        $var8 = $this.$motionZ;
        $ptr = 3;
    case 3:
        nms_Entity_moveEntity($this, $var2, $var6, $var8);
        if ($rt_suspending()) {
            break main;
        }
        if (!($this.$isCollidedHorizontally && $var23 > 0.2)) {
            $this.$motionX = $this.$motionX * 0.9900000095367432;
            $this.$motionY = $this.$motionY * 0.949999988079071;
            $this.$motionZ = $this.$motionZ * 0.9900000095367432;
        } else if (!$this.$worldObj.$isRemote && !$this.$isDead) {
            $this.$isDead = 1;
            $var24 = 0;
            $var8 = 0.0;
            $var20 = 138;
            if ($var24 < 3) {
                nms_Block_$callClinit();
                $var1 = nms_Block_planks.$blockID;
                $var18 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                $var18.$itemID = $var1;
                $var18.$stackSize = 1;
                $var18.$itemDamage = 0;
                var$2 = new nms_EntityItem;
                $var9 = $this.$worldObj;
                $var2 = $this.$posX;
                $var23 = $this.$posY + $var8;
                $var6 = $this.$posZ;
                $ptr = 4;
                continue main;
            }
            $var1 = 0;
            if ($var1 < 2) {
                nms_Item_$callClinit();
                $var4 = nms_Item_stick.$itemID0;
                $var18 = new nms_ItemStack;
                nms_ItemStack_$callClinit();
                $var18.$itemID = $var4;
                $var18.$stackSize = 1;
                $var18.$itemDamage = 0;
                var$2 = new nms_EntityItem;
                $var9 = $this.$worldObj;
                $var2 = $this.$posX;
                $var23 = $this.$posY + $var8;
                $var6 = $this.$posZ;
                $ptr = 5;
                continue main;
            }
        }
        $this.$rotationPitch = 0.0;
        $var8 = $this.$rotationYaw;
        $var25 = $this.$prevPosX - $this.$posX;
        $var12 = $this.$prevPosZ - $this.$posZ;
        if ($var25 * $var25 + $var12 * $var12 > 0.001)
            $var8 = jl_Math_atan2($var12, $var25) * 180.0 / 3.141592653589793;
        $var2 = $this.$rotationYaw;
        $var14 = ($var8 - $var2) % 360.0;
        if ($var14 >= 180.0)
            $var14 = $var14 - 360.0;
        if ($var14 < (-180.0))
            $var14 = $var14 + 360.0;
        if ($var14 > 20.0)
            $var14 = 20.0;
        if ($var14 < (-20.0))
            $var14 = (-20.0);
        var$9 = $var2 + $var14;
        $this.$rotationYaw = var$9;
        var$10 = $this.$rotationPitch;
        $this.$rotationYaw = var$9 % 360.0;
        $this.$rotationPitch = var$10 % 360.0;
        $var18 = $this.$worldObj;
        if ($var18.$isRemote)
            return;
        var$2 = $this.$boundingBox0;
        $var8 = var$2.$minX0 - 0.20000000298023224;
        $var25 = var$2.$minY0 - 0.0;
        $var12 = var$2.$minZ0 - 0.20000000298023224;
        $var23 = var$2.$maxX0 + 0.20000000298023224;
        $var6 = var$2.$maxY + 0.0;
        $var2 = var$2.$maxZ0 + 0.20000000298023224;
        $var16 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var1 = $var16.$nextPoolIndex;
        var$2 = $var16.$listAABB;
        $var24 = var$2.$size0;
        $var4 = $rt_compare($var1, $var24);
        if ($var4 >= 0) {
            $var9 = new nms_AxisAlignedBB;
            $var9.$minX0 = $var8;
            $var9.$minY0 = $var25;
            $var9.$minZ0 = $var12;
            $var9.$maxX0 = $var23;
            $var9.$maxY = $var6;
            $var9.$maxZ0 = $var2;
            ju_ArrayList_ensureCapacity(var$2, $var24 + 1 | 0);
            var$4 = var$2.$array.data;
            $var4 = var$2.$size0;
            var$2.$size0 = $var4 + 1 | 0;
            var$4[$var4] = $var9;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else if ($var1 >= 0 && $var4 < 0) {
            $var9 = var$2.$array.data[$var1];
            $var9.$minX0 = $var8;
            $var9.$minY0 = $var25;
            $var9.$minZ0 = $var12;
            $var9.$maxX0 = $var23;
            $var9.$maxY = $var6;
            $var9.$maxZ0 = $var2;
        } else {
            $var18 = new jl_IndexOutOfBoundsException;
            $var18.$suppressionEnabled = 1;
            $var18.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var18);
            $rt_throw($var18);
        }
        $var16.$nextPoolIndex = $var16.$nextPoolIndex + 1 | 0;
        var$2 = null;
        $ptr = 6;
        continue main;
    case 4:
        nms_EntityItem__init_(var$2, $var9, $var2, $var23, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$2.$dataWatcher;
        $var9 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var16 = jl_Integer_integerCache.data[$var20];
        if ($var16 === null)
            $var9 = ju_HashMap_findNullKeyEntry($var9);
        else {
            $var4 = jl_Integer_hashCode0($var16);
            $var9 = ju_HashMap_findNonNullKeyEntry($var9, $var16, $var4 & ($var9.$elementData.data.length - 1 | 0), $var4);
        }
        $var16 = $var9 === null ? null : $var9.$value0;
        if (!($var18 !== $var16.$watchedObject ? 0 : 1)) {
            $var16.$watchedObject = $var18;
            $var16.$watched = 1;
            var$6.$objectChanged = 1;
        }
        $var16 = var$2.$dataWatcher;
        $var18 = $var16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[$var20];
        if ($var9 === null)
            $var18 = ju_HashMap_findNullKeyEntry($var18);
        else {
            $var4 = jl_Integer_hashCode0($var9);
            $var18 = ju_HashMap_findNonNullKeyEntry($var18, $var9, $var4 & ($var18.$elementData.data.length - 1 | 0), $var4);
        }
        ($var18 === null ? null : $var18.$value0).$watched = 1;
        $var16.$objectChanged = 1;
        var$2.$delayBeforeCanPickup = 10;
        $var18 = $this.$worldObj;
        $ptr = 7;
        continue main;
    case 5:
        nms_EntityItem__init_(var$2, $var9, $var2, $var23, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = var$2.$dataWatcher;
        $var9 = var$6.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var16 = jl_Integer_integerCache.data[$var20];
        if ($var16 === null)
            $var9 = ju_HashMap_findNullKeyEntry($var9);
        else {
            $var24 = jl_Integer_hashCode0($var16);
            $var9 = ju_HashMap_findNonNullKeyEntry($var9, $var16, $var24 & ($var9.$elementData.data.length - 1 | 0), $var24);
        }
        $var16 = $var9 === null ? null : $var9.$value0;
        if (!($var18 !== $var16.$watchedObject ? 0 : 1)) {
            $var16.$watchedObject = $var18;
            $var16.$watched = 1;
            var$6.$objectChanged = 1;
        }
        $var16 = var$2.$dataWatcher;
        $var18 = $var16.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var9 = jl_Integer_integerCache.data[$var20];
        if ($var9 === null)
            $var18 = ju_HashMap_findNullKeyEntry($var18);
        else {
            $var24 = jl_Integer_hashCode0($var9);
            $var18 = ju_HashMap_findNonNullKeyEntry($var18, $var9, $var24 & ($var18.$elementData.data.length - 1 | 0), $var24);
        }
        ($var18 === null ? null : $var18.$value0).$watched = 1;
        $var16.$objectChanged = 1;
        var$2.$delayBeforeCanPickup = 10;
        $var18 = $this.$worldObj;
        $ptr = 8;
        continue main;
    case 6:
        j: {
            $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var18, $this, $var9, var$2);
            if ($rt_suspending()) {
                break main;
            }
            $var16 = $tmp;
            if ($var16 !== null && !($var16.$size0 ? 0 : 1)) {
                $var26 = 0;
                while (true) {
                    $var1 = $rt_compare($var26, $var16.$size0);
                    if ($var1 >= 0)
                        break j;
                    if ($var26 < 0)
                        break;
                    if ($var1 >= 0)
                        break;
                    $var18 = $var16.$array.data[$var26];
                    if ($var18 !== $this.$riddenByEntity && $var18.$canBePushed() && $var18 instanceof nms_EntityBoat) {
                        $ptr = 10;
                        continue main;
                    }
                    $var26 = $var26 + 1 | 0;
                }
                $var18 = new jl_IndexOutOfBoundsException;
                $var18.$suppressionEnabled = 1;
                $var18.$writableStackTrace = 1;
                $rt_throw($var18);
            }
        }
        $var26 = 0;
        while ($var26 < 4) {
            $var2 = $this.$posX + (($var26 % 2 | 0) - 0.5) * 0.8;
            $var27 = $var2 | 0;
            if ($var2 < $var27)
                $var27 = $var27 - 1 | 0;
            $var2 = $this.$posZ + (($var26 / 2 | 0) - 0.5) * 0.8;
            $var19 = $var2 | 0;
            if ($var2 < $var19)
                $var19 = $var19 - 1 | 0;
            $var20 = 0;
            if ($var20 < 2) {
                $var2 = $this.$posY;
                $var1 = $var2 | 0;
                if ($var2 < $var1)
                    $var1 = $var1 - 1 | 0;
                $var21 = $var1 + $var20 | 0;
                $var18 = $this.$worldObj;
                $ptr = 9;
                continue main;
            }
            $var26 = $var26 + 1 | 0;
        }
        $var18 = $this.$riddenByEntity;
        if ($var18 !== null && $var18.$isDead)
            $this.$riddenByEntity = null;
        return;
    case 7:
        nms_World_spawnEntityInWorld($var18, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var24 = $var24 + 1 | 0;
        if ($var24 < 3) {
            nms_Block_$callClinit();
            $var1 = nms_Block_planks.$blockID;
            $var18 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            $var18.$itemID = $var1;
            $var18.$stackSize = 1;
            $var18.$itemDamage = 0;
            var$2 = new nms_EntityItem;
            $var9 = $this.$worldObj;
            $var2 = $this.$posX;
            $var23 = $this.$posY + $var8;
            $var6 = $this.$posZ;
            $ptr = 4;
            continue main;
        }
        $var1 = 0;
        if ($var1 < 2) {
            nms_Item_$callClinit();
            $var4 = nms_Item_stick.$itemID0;
            $var18 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            $var18.$itemID = $var4;
            $var18.$stackSize = 1;
            $var18.$itemDamage = 0;
            var$2 = new nms_EntityItem;
            $var9 = $this.$worldObj;
            $var2 = $this.$posX;
            $var23 = $this.$posY + $var8;
            $var6 = $this.$posZ;
            $ptr = 5;
            continue main;
        }
        $this.$rotationPitch = 0.0;
        $var8 = $this.$rotationYaw;
        $var25 = $this.$prevPosX - $this.$posX;
        $var12 = $this.$prevPosZ - $this.$posZ;
        if ($var25 * $var25 + $var12 * $var12 > 0.001)
            $var8 = jl_Math_atan2($var12, $var25) * 180.0 / 3.141592653589793;
        $var2 = $this.$rotationYaw;
        $var14 = ($var8 - $var2) % 360.0;
        if ($var14 >= 180.0)
            $var14 = $var14 - 360.0;
        if ($var14 < (-180.0))
            $var14 = $var14 + 360.0;
        if ($var14 > 20.0)
            $var14 = 20.0;
        if ($var14 < (-20.0))
            $var14 = (-20.0);
        var$9 = $var2 + $var14;
        $this.$rotationYaw = var$9;
        var$10 = $this.$rotationPitch;
        $this.$rotationYaw = var$9 % 360.0;
        $this.$rotationPitch = var$10 % 360.0;
        $var18 = $this.$worldObj;
        if ($var18.$isRemote)
            return;
        var$2 = $this.$boundingBox0;
        $var8 = var$2.$minX0 - 0.20000000298023224;
        $var25 = var$2.$minY0 - 0.0;
        $var12 = var$2.$minZ0 - 0.20000000298023224;
        $var23 = var$2.$maxX0 + 0.20000000298023224;
        $var6 = var$2.$maxY + 0.0;
        $var2 = var$2.$maxZ0 + 0.20000000298023224;
        $var16 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var1 = $var16.$nextPoolIndex;
        var$2 = $var16.$listAABB;
        $var24 = var$2.$size0;
        $var4 = $rt_compare($var1, $var24);
        if ($var4 >= 0) {
            $var9 = new nms_AxisAlignedBB;
            $var9.$minX0 = $var8;
            $var9.$minY0 = $var25;
            $var9.$minZ0 = $var12;
            $var9.$maxX0 = $var23;
            $var9.$maxY = $var6;
            $var9.$maxZ0 = $var2;
            ju_ArrayList_ensureCapacity(var$2, $var24 + 1 | 0);
            var$4 = var$2.$array.data;
            $var4 = var$2.$size0;
            var$2.$size0 = $var4 + 1 | 0;
            var$4[$var4] = $var9;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else if ($var1 >= 0 && $var4 < 0) {
            $var9 = var$2.$array.data[$var1];
            $var9.$minX0 = $var8;
            $var9.$minY0 = $var25;
            $var9.$minZ0 = $var12;
            $var9.$maxX0 = $var23;
            $var9.$maxY = $var6;
            $var9.$maxZ0 = $var2;
        } else {
            $var18 = new jl_IndexOutOfBoundsException;
            $var18.$suppressionEnabled = 1;
            $var18.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var18);
            $rt_throw($var18);
        }
        $var16.$nextPoolIndex = $var16.$nextPoolIndex + 1 | 0;
        var$2 = null;
        $ptr = 6;
        continue main;
    case 8:
        nms_World_spawnEntityInWorld($var18, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 < 2) {
            nms_Item_$callClinit();
            $var4 = nms_Item_stick.$itemID0;
            $var18 = new nms_ItemStack;
            nms_ItemStack_$callClinit();
            $var18.$itemID = $var4;
            $var18.$stackSize = 1;
            $var18.$itemDamage = 0;
            var$2 = new nms_EntityItem;
            $var9 = $this.$worldObj;
            $var2 = $this.$posX;
            $var23 = $this.$posY + $var8;
            $var6 = $this.$posZ;
            $ptr = 5;
            continue main;
        }
        $this.$rotationPitch = 0.0;
        $var8 = $this.$rotationYaw;
        $var25 = $this.$prevPosX - $this.$posX;
        $var12 = $this.$prevPosZ - $this.$posZ;
        if ($var25 * $var25 + $var12 * $var12 > 0.001)
            $var8 = jl_Math_atan2($var12, $var25) * 180.0 / 3.141592653589793;
        $var2 = $this.$rotationYaw;
        $var14 = ($var8 - $var2) % 360.0;
        if ($var14 >= 180.0)
            $var14 = $var14 - 360.0;
        if ($var14 < (-180.0))
            $var14 = $var14 + 360.0;
        if ($var14 > 20.0)
            $var14 = 20.0;
        if ($var14 < (-20.0))
            $var14 = (-20.0);
        var$9 = $var2 + $var14;
        $this.$rotationYaw = var$9;
        var$10 = $this.$rotationPitch;
        $this.$rotationYaw = var$9 % 360.0;
        $this.$rotationPitch = var$10 % 360.0;
        $var18 = $this.$worldObj;
        if ($var18.$isRemote)
            return;
        var$2 = $this.$boundingBox0;
        $var8 = var$2.$minX0 - 0.20000000298023224;
        $var25 = var$2.$minY0 - 0.0;
        $var12 = var$2.$minZ0 - 0.20000000298023224;
        $var23 = var$2.$maxX0 + 0.20000000298023224;
        $var6 = var$2.$maxY + 0.0;
        $var2 = var$2.$maxZ0 + 0.20000000298023224;
        $var16 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var1 = $var16.$nextPoolIndex;
        var$2 = $var16.$listAABB;
        $var24 = var$2.$size0;
        $var4 = $rt_compare($var1, $var24);
        if ($var4 >= 0) {
            $var9 = new nms_AxisAlignedBB;
            $var9.$minX0 = $var8;
            $var9.$minY0 = $var25;
            $var9.$minZ0 = $var12;
            $var9.$maxX0 = $var23;
            $var9.$maxY = $var6;
            $var9.$maxZ0 = $var2;
            ju_ArrayList_ensureCapacity(var$2, $var24 + 1 | 0);
            var$4 = var$2.$array.data;
            $var4 = var$2.$size0;
            var$2.$size0 = $var4 + 1 | 0;
            var$4[$var4] = $var9;
            var$2.$modCount = var$2.$modCount + 1 | 0;
        } else if ($var1 >= 0 && $var4 < 0) {
            $var9 = var$2.$array.data[$var1];
            $var9.$minX0 = $var8;
            $var9.$minY0 = $var25;
            $var9.$minZ0 = $var12;
            $var9.$maxX0 = $var23;
            $var9.$maxY = $var6;
            $var9.$maxZ0 = $var2;
        } else {
            $var18 = new jl_IndexOutOfBoundsException;
            $var18.$suppressionEnabled = 1;
            $var18.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var18);
            $rt_throw($var18);
        }
        $var16.$nextPoolIndex = $var16.$nextPoolIndex + 1 | 0;
        var$2 = null;
        $ptr = 6;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($var18, $var27, $var21, $var19);
        if ($rt_suspending()) {
            break main;
        }
        $var22 = $tmp;
        nms_Block_$callClinit();
        if ($var22 == nms_Block_snow.$blockID) {
            $var18 = $this.$worldObj;
            $var1 = 0;
            $var4 = 0;
            $var24 = 3;
            $ptr = 11;
            continue main;
        }
        if ($var22 == nms_Block_waterlily.$blockID) {
            $var18 = $this.$worldObj;
            $var1 = 1;
            $ptr = 12;
            continue main;
        }
        $var20 = $var20 + 1 | 0;
        while (true) {
            if ($var20 < 2) {
                $var2 = $this.$posY;
                $var1 = $var2 | 0;
                if ($var2 < $var1)
                    $var1 = $var1 - 1 | 0;
                $var21 = $var1 + $var20 | 0;
                $var18 = $this.$worldObj;
                continue main;
            }
            $var26 = $var26 + 1 | 0;
            if ($var26 >= 4)
                break;
            $var2 = $this.$posX + (($var26 % 2 | 0) - 0.5) * 0.8;
            $var27 = $var2 | 0;
            if ($var2 < $var27)
                $var27 = $var27 - 1 | 0;
            $var2 = $this.$posZ + (($var26 / 2 | 0) - 0.5) * 0.8;
            $var19 = $var2 | 0;
            if ($var2 < $var19)
                $var19 = $var19 - 1 | 0;
            $var20 = 0;
        }
        $var18 = $this.$riddenByEntity;
        if ($var18 !== null && $var18.$isDead)
            $this.$riddenByEntity = null;
        return;
    case 10:
        $var18.$applyEntityCollision($this);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var26 = $var26 + 1 | 0;
            $var1 = $rt_compare($var26, $var16.$size0);
            if ($var1 >= 0) {
                $var26 = 0;
                while ($var26 < 4) {
                    $var2 = $this.$posX + (($var26 % 2 | 0) - 0.5) * 0.8;
                    $var27 = $var2 | 0;
                    if ($var2 < $var27)
                        $var27 = $var27 - 1 | 0;
                    $var2 = $this.$posZ + (($var26 / 2 | 0) - 0.5) * 0.8;
                    $var19 = $var2 | 0;
                    if ($var2 < $var19)
                        $var19 = $var19 - 1 | 0;
                    $var20 = 0;
                    if ($var20 < 2) {
                        $var2 = $this.$posY;
                        $var1 = $var2 | 0;
                        if ($var2 < $var1)
                            $var1 = $var1 - 1 | 0;
                        $var21 = $var1 + $var20 | 0;
                        $var18 = $this.$worldObj;
                        $ptr = 9;
                        continue main;
                    }
                    $var26 = $var26 + 1 | 0;
                }
                $var18 = $this.$riddenByEntity;
                if ($var18 !== null && $var18.$isDead)
                    $this.$riddenByEntity = null;
                return;
            }
            if ($var26 < 0)
                break;
            if ($var1 >= 0)
                break;
            $var18 = $var16.$array.data[$var26];
            if ($var18 === $this.$riddenByEntity)
                continue;
            if (!$var18.$canBePushed())
                continue;
            if (!($var18 instanceof nms_EntityBoat))
                continue;
            else {
                continue main;
            }
        }
        $var18 = new jl_IndexOutOfBoundsException;
        $var18.$suppressionEnabled = 1;
        $var18.$writableStackTrace = 1;
        $rt_throw($var18);
    case 11:
        nms_World_setBlock($var18, $var27, $var21, $var19, $var1, $var4, $var24);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $var20 + 1 | 0;
        while (true) {
            if ($var20 < 2) {
                $var2 = $this.$posY;
                $var1 = $var2 | 0;
                if ($var2 < $var1)
                    $var1 = $var1 - 1 | 0;
                $var21 = $var1 + $var20 | 0;
                $var18 = $this.$worldObj;
                $ptr = 9;
                continue main;
            }
            $var26 = $var26 + 1 | 0;
            if ($var26 >= 4)
                break;
            $var2 = $this.$posX + (($var26 % 2 | 0) - 0.5) * 0.8;
            $var27 = $var2 | 0;
            if ($var2 < $var27)
                $var27 = $var27 - 1 | 0;
            $var2 = $this.$posZ + (($var26 / 2 | 0) - 0.5) * 0.8;
            $var19 = $var2 | 0;
            if ($var2 < $var19)
                $var19 = $var19 - 1 | 0;
            $var20 = 0;
        }
        $var18 = $this.$riddenByEntity;
        if ($var18 !== null && $var18.$isDead)
            $this.$riddenByEntity = null;
        return;
    case 12:
        nms_World_destroyBlock($var18, $var27, $var21, $var19, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $var20 + 1 | 0;
        while (true) {
            if ($var20 < 2) {
                $var2 = $this.$posY;
                $var1 = $var2 | 0;
                if ($var2 < $var1)
                    $var1 = $var1 - 1 | 0;
                $var21 = $var1 + $var20 | 0;
                $var18 = $this.$worldObj;
                $ptr = 9;
                continue main;
            }
            $var26 = $var26 + 1 | 0;
            if ($var26 >= 4)
                break;
            $var2 = $this.$posX + (($var26 % 2 | 0) - 0.5) * 0.8;
            $var27 = $var2 | 0;
            if ($var2 < $var27)
                $var27 = $var27 - 1 | 0;
            $var2 = $this.$posZ + (($var26 / 2 | 0) - 0.5) * 0.8;
            $var19 = $var2 | 0;
            if ($var2 < $var19)
                $var19 = $var19 - 1 | 0;
            $var20 = 0;
        }
        $var18 = $this.$riddenByEntity;
        if ($var18 !== null && $var18.$isDead)
            $this.$riddenByEntity = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var18, var$2, $var1, var$4, $var9, var$6, $var24, $var16, var$9, var$10, $var2, $var4, $var6, $var23, $var8, $var5, $var7, $var25, $var12, $var20, $var26, $var10, var$23, var$24, $var6_0, $var14, $var27, $var19, $var21, $var22, $ptr);
},
nms_EntityBoat_updateRiderPosition = $this => {
    let $var1, $var3, var$3;
    if ($this.$riddenByEntity !== null) {
        $var1 = jl_Math_cos($this.$rotationYaw * 3.141592653589793 / 180.0) * 0.4;
        $var3 = jl_Math_sin($this.$rotationYaw * 3.141592653589793 / 180.0) * 0.4;
        var$3 = $this.$riddenByEntity;
        nms_Entity_setPosition(var$3, $this.$posX + $var1, $this.$posY + $this.$height0 * 0.0 - 0.30000001192092896 + var$3.$getYOffset(), $this.$posZ + $var3);
    }
},
nms_EntityBoat_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityBoat_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityBoat_interactFirst = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$riddenByEntity;
        if (var$2 !== null && var$2 instanceof nms_EntityPlayer && var$2 !== $par1EntityPlayer)
            return 1;
        if ($this.$worldObj.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        nms_Entity_mountEntity($par1EntityPlayer, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $par1EntityPlayer.$playerNetServerHandler;
        var$3 = new nms_Packet39AttachEntity;
        var$4 = $par1EntityPlayer.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$attachState = 0;
        var$3.$ridingEntityId = $par1EntityPlayer.$entityId;
        var$5 = var$4 === null ? (-1) : var$4.$entityId;
        a: {
            var$3.$vehicleEntityId = var$5;
            if (var$3 instanceof nms_Packet3Chat) {
                var$4 = var$3;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break a;
                if (var$6 == 1 && !var$4.$isServer)
                    break a;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$4);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        b: {
            var$2 = $par1EntityPlayer.$playerNetServerHandler;
            var$7 = $par1EntityPlayer.$posX;
            var$8 = $par1EntityPlayer.$posY;
            var$9 = $par1EntityPlayer.$posZ;
            var$10 = $par1EntityPlayer.$rotationYaw;
            var$11 = $par1EntityPlayer.$rotationPitch;
            var$2.$hasMoved = 0;
            var$2.$lastPosX = var$7;
            var$2.$lastPosY = var$8;
            var$2.$lastPosZ = var$9;
            nms_Entity_setPositionAndRotation(var$2.$playerEntity, var$7, var$8, var$9, var$10, var$11);
            $par1EntityPlayer = var$2.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$12 = var$8 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$7;
            var$2.$yPosition = var$12;
            var$2.$stance = var$8;
            var$2.$zPosition = var$9;
            var$2.$yaw = var$10;
            var$2.$pitch = var$11;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$6 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break b;
                if (var$6 == 1 && !var$3.$isServer)
                    break b;
            }
            try {
                $par1EntityPlayer = $par1EntityPlayer.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$4);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        d: {
            var$2 = $par1EntityPlayer.$playerNetServerHandler;
            var$7 = $par1EntityPlayer.$posX;
            var$8 = $par1EntityPlayer.$posY;
            var$9 = $par1EntityPlayer.$posZ;
            var$10 = $par1EntityPlayer.$rotationYaw;
            var$11 = $par1EntityPlayer.$rotationPitch;
            var$2.$hasMoved = 0;
            var$2.$lastPosX = var$7;
            var$2.$lastPosY = var$8;
            var$2.$lastPosZ = var$9;
            nms_Entity_setPositionAndRotation(var$2.$playerEntity, var$7, var$8, var$9, var$10, var$11);
            $par1EntityPlayer = var$2.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$12 = var$8 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$7;
            var$2.$yPosition = var$12;
            var$2.$stance = var$8;
            var$2.$zPosition = var$9;
            var$2.$yaw = var$10;
            var$2.$pitch = var$11;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$6 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break d;
                if (var$6 == 1 && !var$3.$isServer)
                    break d;
            }
            try {
                $par1EntityPlayer = $par1EntityPlayer.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 3:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_16 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_16__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_16__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_16();
    nms_EntityList$_clinit_$lambda$_63_16__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_16_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityBoat;
        nms_Entity__init_(var$2, var$1);
        var$2.$field_70279_a = 1;
        var$2.$speedMultiplier = 0.07;
        var$2.$preventEntitySpawning = 1;
        var$3 = 1.5;
        var$4 = 0.6000000238418579;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityMinecartEmpty = $rt_classWithoutFields(nms_EntityMinecart),
nms_EntityMinecartEmpty_interactFirst = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$riddenByEntity;
        if (var$2 !== null && var$2 instanceof nms_EntityPlayer && var$2 !== $par1EntityPlayer)
            return 1;
        if (var$2 !== null && var$2 !== $par1EntityPlayer)
            return 0;
        if ($this.$worldObj.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        nms_Entity_mountEntity($par1EntityPlayer, $this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $par1EntityPlayer.$playerNetServerHandler;
        var$3 = new nms_Packet39AttachEntity;
        var$4 = $par1EntityPlayer.$ridingEntity;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$attachState = 0;
        var$3.$ridingEntityId = $par1EntityPlayer.$entityId;
        var$5 = var$4 === null ? (-1) : var$4.$entityId;
        a: {
            var$3.$vehicleEntityId = var$5;
            if (var$3 instanceof nms_Packet3Chat) {
                var$4 = var$3;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break a;
                if (var$6 == 1 && !var$4.$isServer)
                    break a;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$4);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        b: {
            var$2 = $par1EntityPlayer.$playerNetServerHandler;
            var$7 = $par1EntityPlayer.$posX;
            var$8 = $par1EntityPlayer.$posY;
            var$9 = $par1EntityPlayer.$posZ;
            var$10 = $par1EntityPlayer.$rotationYaw;
            var$11 = $par1EntityPlayer.$rotationPitch;
            var$2.$hasMoved = 0;
            var$2.$lastPosX = var$7;
            var$2.$lastPosY = var$8;
            var$2.$lastPosZ = var$9;
            nms_Entity_setPositionAndRotation(var$2.$playerEntity, var$7, var$8, var$9, var$10, var$11);
            $par1EntityPlayer = var$2.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$12 = var$8 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$7;
            var$2.$yPosition = var$12;
            var$2.$stance = var$8;
            var$2.$zPosition = var$9;
            var$2.$yaw = var$10;
            var$2.$pitch = var$11;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$6 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break b;
                if (var$6 == 1 && !var$3.$isServer)
                    break b;
            }
            try {
                $par1EntityPlayer = $par1EntityPlayer.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 2:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$3, var$4);
                var$3.$sb = jl_StringBuilder__init_();
                var$3.$buffer0 = $rt_createCharArray(32);
                var$3.$autoFlush = 0;
                var$3.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        d: {
            var$2 = $par1EntityPlayer.$playerNetServerHandler;
            var$7 = $par1EntityPlayer.$posX;
            var$8 = $par1EntityPlayer.$posY;
            var$9 = $par1EntityPlayer.$posZ;
            var$10 = $par1EntityPlayer.$rotationYaw;
            var$11 = $par1EntityPlayer.$rotationPitch;
            var$2.$hasMoved = 0;
            var$2.$lastPosX = var$7;
            var$2.$lastPosY = var$8;
            var$2.$lastPosZ = var$9;
            nms_Entity_setPositionAndRotation(var$2.$playerEntity, var$7, var$8, var$9, var$10, var$11);
            $par1EntityPlayer = var$2.$playerEntity.$playerNetServerHandler;
            var$2 = new nms_Packet13PlayerLookMove;
            var$12 = var$8 + 1.6200000047683716;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$xPosition = var$7;
            var$2.$yPosition = var$12;
            var$2.$stance = var$8;
            var$2.$zPosition = var$9;
            var$2.$yaw = var$10;
            var$2.$pitch = var$11;
            var$2.$onGround0 = 0;
            var$2.$rotating = 1;
            var$2.$moving = 1;
            if (var$2 instanceof nms_Packet3Chat) {
                var$3 = var$2;
                var$6 = $par1EntityPlayer.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break d;
                if (var$6 == 1 && !var$3.$isServer)
                    break d;
            }
            try {
                $par1EntityPlayer = $par1EntityPlayer.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 3:
        c: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break c;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityMinecartEmpty_getMinecartType = $this => {
    return 0;
},
nms_EntityList$_clinit_$lambda$_63_17 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_17__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_17__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_17();
    nms_EntityList$_clinit_$lambda$_63_17__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_17_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMinecartEmpty;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$field_82344_g = var$1 === null ? null : null;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityMinecartContainer() {
    let a = this; nms_EntityMinecart.call(a);
    a.$minecartContainerItems = null;
    a.$dropContentsWhenDead = 0;
}
let nms_EntityMinecartContainer_killMinecart = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, var$5, var$6, $var2, var$8, var$9, var$10, $var3, var$12, $var4, $var5, var$15, $var6, var$17, var$18, var$19, var$20, $var7, $var8, var$23, var$24, var$25, var$26, var$27, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var6 = $thread.pop();var$15 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$12 = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var2 = $thread.pop();var$6
        = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecartContainer_setDead($this);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = new nms_ItemStack;
        nms_Item_$callClinit();
        $par1DamageSource = nms_Item_minecartEmpty;
        nms_ItemStack_$callClinit();
        var$2.$itemID = $par1DamageSource.$itemID0;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $par1DamageSource = $this.$entityName;
        if ($par1DamageSource !== null)
            nms_ItemStack_setItemName(var$2, $par1DamageSource);
        if (var$2.$stackSize) {
            $par1DamageSource = new nms_EntityItem;
            var$3 = $this.$worldObj;
            var$4 = $this.$posX;
            var$5 = $this.$posY + 0.0;
            var$6 = $this.$posZ;
            $ptr = 2;
            continue main;
        }
        $var2 = 0;
        var$8 = 24;
        var$9 = 17;
        var$10 = 138;
        while ($var2 < $this.$getSizeInventory()) {
            $var3 = $this.$minecartContainerItems.data[$var2];
            if ($var3 !== null) {
                $par1DamageSource = $this.$rand;
                var$12 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$12;
                $var4 = Long_lo(Long_shru(var$12, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$12;
                $var5 = Long_lo(Long_shru(var$12, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$15 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$15;
                $var6 = Long_lo(Long_shru(var$15, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$5 = $var4;
                var$6 = $var5;
                var$17 = $var6;
                var$18 = $var3.$stackSize;
                if (var$18 > 0) {
                    $par1DamageSource = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1DamageSource.$seed = var$15;
                    var$19 = Long_lo(Long_shru(var$15, var$9));
                    while (true) {
                        var$20 = var$19 % 21 | 0;
                        if (((var$19 - var$20 | 0) + 20 | 0) >= 0)
                            break;
                        var$15 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1DamageSource.$seed = var$15;
                        var$19 = Long_lo(Long_shru(var$15, var$9));
                    }
                    $var7 = var$20 + 10 | 0;
                    if ($var7 > var$18)
                        $var7 = var$18;
                    $var3.$stackSize = var$18 - $var7 | 0;
                    $var8 = new nms_EntityItem;
                    $par1DamageSource = $this.$worldObj;
                    var$4 = $this.$posX + var$5;
                    var$23 = $this.$posY + var$6;
                    var$24 = $this.$posZ + var$17;
                    var$3 = new nms_ItemStack;
                    var$18 = $var3.$itemID;
                    var$25 = $var3.$itemDamage;
                    var$3.$itemID = var$18;
                    var$3.$stackSize = $var7;
                    var$3.$itemDamage = var$25;
                    if (var$25 < 0)
                        var$3.$itemDamage = 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $var2 = $var2 + 1 | 0;
        }
        return;
    case 2:
        nms_EntityItem__init_($par1DamageSource, var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $par1DamageSource.$dataWatcher;
        var$3 = $var3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$26 = jl_Integer_integerCache.data[138];
        if (var$26 === null)
            var$3 = ju_HashMap_findNullKeyEntry(var$3);
        else {
            $var7 = jl_Integer_hashCode0(var$26);
            var$3 = ju_HashMap_findNonNullKeyEntry(var$3, var$26, $var7 & (var$3.$elementData.data.length - 1 | 0), $var7);
        }
        var$26 = var$3 === null ? null : var$3.$value0;
        if (!(var$2 !== var$26.$watchedObject ? 0 : 1)) {
            var$26.$watchedObject = var$2;
            var$26.$watched = 1;
            $var3.$objectChanged = 1;
        }
        var$26 = $par1DamageSource.$dataWatcher;
        var$2 = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[138];
        if (var$3 === null)
            var$2 = ju_HashMap_findNullKeyEntry(var$2);
        else {
            $var7 = jl_Integer_hashCode0(var$3);
            var$2 = ju_HashMap_findNonNullKeyEntry(var$2, var$3, $var7 & (var$2.$elementData.data.length - 1 | 0), $var7);
        }
        (var$2 === null ? null : var$2.$value0).$watched = 1;
        var$26.$objectChanged = 1;
        $par1DamageSource.$delayBeforeCanPickup = 10;
        var$2 = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$2, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = 0;
        var$8 = 24;
        var$9 = 17;
        var$10 = 138;
        while ($var2 < $this.$getSizeInventory()) {
            $var3 = $this.$minecartContainerItems.data[$var2];
            if ($var3 !== null) {
                $par1DamageSource = $this.$rand;
                var$12 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$12;
                $var4 = Long_lo(Long_shru(var$12, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$12;
                $var5 = Long_lo(Long_shru(var$12, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$15 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$15;
                $var6 = Long_lo(Long_shru(var$15, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                var$5 = $var4;
                var$6 = $var5;
                var$17 = $var6;
                var$18 = $var3.$stackSize;
                if (var$18 > 0) {
                    $par1DamageSource = $this.$rand;
                    var$15 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1DamageSource.$seed = var$15;
                    var$19 = Long_lo(Long_shru(var$15, var$9));
                    while (true) {
                        var$20 = var$19 % 21 | 0;
                        if (((var$19 - var$20 | 0) + 20 | 0) >= 0)
                            break;
                        var$15 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par1DamageSource.$seed = var$15;
                        var$19 = Long_lo(Long_shru(var$15, var$9));
                    }
                    $var7 = var$20 + 10 | 0;
                    if ($var7 > var$18)
                        $var7 = var$18;
                    $var3.$stackSize = var$18 - $var7 | 0;
                    $var8 = new nms_EntityItem;
                    $par1DamageSource = $this.$worldObj;
                    var$4 = $this.$posX + var$5;
                    var$23 = $this.$posY + var$6;
                    var$24 = $this.$posZ + var$17;
                    var$3 = new nms_ItemStack;
                    var$18 = $var3.$itemID;
                    var$25 = $var3.$itemDamage;
                    var$3.$itemID = var$18;
                    var$3.$stackSize = $var7;
                    var$3.$itemDamage = var$25;
                    if (var$25 < 0)
                        var$3.$itemDamage = 0;
                    $ptr = 4;
                    continue main;
                }
            }
            $var2 = $var2 + 1 | 0;
        }
        return;
    case 4:
        nms_EntityItem__init_($var8, $par1DamageSource, var$4, var$23, var$24);
        if ($rt_suspending()) {
            break main;
        }
        var$26 = $var8.$dataWatcher;
        $par1DamageSource = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$27 = jl_Integer_integerCache.data[var$10];
        if (var$27 === null) {
            $par1DamageSource = $par1DamageSource.$elementData.data[0];
            while ($par1DamageSource !== null && $par1DamageSource.$key !== null) {
                $par1DamageSource = $par1DamageSource.$next3;
            }
        } else {
            var$25 = var$27.$value;
            var$28 = $par1DamageSource.$elementData.data;
            $par1DamageSource = var$28[var$25 & (var$28.length - 1 | 0)];
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$origKeyHash == var$25) {
                    var$2 = $par1DamageSource.$key;
                    if (var$27 !== var$2 && !jl_Integer_equals(var$27, var$2) ? 0 : 1)
                        break;
                }
                $par1DamageSource = $par1DamageSource.$next3;
            }
        }
        var$2 = $par1DamageSource === null ? null : $par1DamageSource.$value0;
        if (!(var$3 !== var$2.$watchedObject ? 0 : 1)) {
            var$2.$watchedObject = var$3;
            var$2.$watched = 1;
            var$26.$objectChanged = 1;
        }
        var$26 = $var8.$dataWatcher;
        $par1DamageSource = var$26.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$10];
        if (var$3 === null) {
            $par1DamageSource = $par1DamageSource.$elementData.data[0];
            while ($par1DamageSource !== null && $par1DamageSource.$key !== null) {
                $par1DamageSource = $par1DamageSource.$next3;
            }
        } else {
            var$25 = var$3.$value;
            var$28 = $par1DamageSource.$elementData.data;
            $par1DamageSource = var$28[var$25 & (var$28.length - 1 | 0)];
            while ($par1DamageSource !== null) {
                if ($par1DamageSource.$origKeyHash == var$25) {
                    var$2 = $par1DamageSource.$key;
                    if (var$3 !== var$2 && !jl_Integer_equals(var$3, var$2) ? 0 : 1)
                        break;
                }
                $par1DamageSource = $par1DamageSource.$next3;
            }
        }
        ($par1DamageSource === null ? null : $par1DamageSource.$value0).$watched = 1;
        var$26.$objectChanged = 1;
        $var8.$motionX = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05000000074505806;
        $var8.$motionY = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05000000074505806 + 0.20000000298023224;
        $var8.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05000000074505806;
        $par1DamageSource = $this.$worldObj;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1DamageSource, $var8);
        if ($rt_suspending()) {
            break main;
        }
        a: while (true) {
            var$18 = $var3.$stackSize;
            if (var$18 > 0) {
                $par1DamageSource = $this.$rand;
                var$15 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1DamageSource.$seed = var$15;
                var$19 = Long_lo(Long_shru(var$15, var$9));
                while (true) {
                    var$20 = var$19 % 21 | 0;
                    if (((var$19 - var$20 | 0) + 20 | 0) >= 0)
                        break;
                    var$15 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1DamageSource.$seed = var$15;
                    var$19 = Long_lo(Long_shru(var$15, var$9));
                }
                $var7 = var$20 + 10 | 0;
                if ($var7 > var$18)
                    $var7 = var$18;
                $var3.$stackSize = var$18 - $var7 | 0;
                $var8 = new nms_EntityItem;
                $par1DamageSource = $this.$worldObj;
                var$4 = $this.$posX + var$5;
                var$23 = $this.$posY + var$6;
                var$24 = $this.$posZ + var$17;
                var$3 = new nms_ItemStack;
                var$18 = $var3.$itemID;
                var$25 = $var3.$itemDamage;
                var$3.$itemID = var$18;
                var$3.$stackSize = $var7;
                var$3.$itemDamage = var$25;
                if (var$25 < 0)
                    var$3.$itemDamage = 0;
                $ptr = 4;
                continue main;
            }
            while (true) {
                $var2 = $var2 + 1 | 0;
                if ($var2 >= $this.$getSizeInventory())
                    break a;
                $var3 = $this.$minecartContainerItems.data[$var2];
                if ($var3 === null)
                    continue;
                else
                    break;
            }
            $par1DamageSource = $this.$rand;
            var$12 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$12;
            $var4 = Long_lo(Long_shru(var$12, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$12;
            $var5 = Long_lo(Long_shru(var$12, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$15 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$15;
            $var6 = Long_lo(Long_shru(var$15, var$8)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$5 = $var4;
            var$6 = $var5;
            var$17 = $var6;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, var$5, var$6, $var2, var$8, var$9, var$10, $var3, var$12, $var4, $var5, var$15, $var6, var$17, var$18, var$19, var$20, $var7, $var8, var$23, var$24, var$25, var$26, var$27, var$28, $ptr);
},
nms_EntityMinecartContainer_getStackInSlot = ($this, $par1) => {
    return $this.$minecartContainerItems.data[$par1];
},
nms_EntityMinecartContainer_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, $var3_0, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    var$3 = $this.$minecartContainerItems.data;
    if (var$3[$par1] === null)
        return null;
    if (var$3[$par1].$stackSize <= $par2) {
        $var3 = var$3[$par1];
        var$3[$par1] = null;
        return $var3;
    }
    var$5 = var$3[$par1];
    $var3_0 = new nms_ItemStack;
    var$7 = var$5.$itemID;
    var$8 = var$5.$itemDamage;
    nms_ItemStack_$callClinit();
    $var3_0.$itemID = var$7;
    $var3_0.$stackSize = $par2;
    $var3_0.$itemDamage = var$8;
    if (var$8 < 0)
        $var3_0.$itemDamage = 0;
    var$9 = var$5.$stackTagCompound;
    if (var$9 !== null) {
        var$10 = new nms_NBTTagCompound;
        $var3 = var$9.$name;
        if ($var3 === null)
            $var3 = $rt_s(3);
        var$10.$name = $var3;
        $var3 = new ju_HashMap;
        var$8 = ju_HashMap_calculateCapacity(16);
        $var3.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, var$8);
        var$3 = var$11.data;
        $var3.$elementData = var$11;
        $var3.$loadFactor = 0.75;
        $var3.$threshold = var$3.length * 0.75 | 0;
        var$10.$tagMap = $var3;
        $var3 = var$9.$tagMap;
        if ($var3.$cachedKeySet === null) {
            var$12 = new ju_HashMap$1;
            var$12.$this$0 = $var3;
            $var3.$cachedKeySet = var$12;
        }
        $var3 = $var3.$cachedKeySet.$iterator();
        while ($var3.$hasNext()) {
            var$12 = $var3.$next();
            var$13 = var$9.$tagMap;
            if (var$12 === null) {
                var$13 = var$13.$elementData.data[0];
                while (var$13 !== null && var$13.$key !== null) {
                    var$13 = var$13.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$14 = var$12.$hashCode1;
                var$3 = var$13.$elementData.data;
                var$13 = var$3[var$14 & (var$3.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$14) {
                        b: {
                            var$15 = var$13.$key;
                            if (var$12 !== var$15) {
                                if (var$12 === var$15)
                                    var$8 = 1;
                                else if (!(var$15 instanceof jl_String))
                                    var$8 = 0;
                                else {
                                    var$15 = var$15;
                                    var$8 = var$12.$nativeString !== var$15.$nativeString ? 0 : 1;
                                }
                                if (!var$8) {
                                    var$8 = 0;
                                    break b;
                                }
                            }
                            var$8 = 1;
                        }
                        if (var$8)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
            }
            var$13 = var$13 === null ? null : var$13.$value0;
            var$13 = var$13.$copy();
            var$15 = var$10.$tagMap;
            if (var$12 !== null)
                var$13.$name = var$12;
            else
                var$13.$name = $rt_s(3);
            ju_HashMap_putImpl(var$15, var$12, var$13);
        }
        $var3_0.$stackTagCompound = var$10;
    }
    var$5.$stackSize = var$5.$stackSize - $par2 | 0;
    var$3 = $this.$minecartContainerItems.data;
    if (!var$3[$par1].$stackSize)
        var$3[$par1] = null;
    return $var3_0;
},
nms_EntityMinecartContainer_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    $this.$minecartContainerItems.data[$par1] = $par2ItemStack;
    if ($par2ItemStack !== null && $par2ItemStack.$stackSize > 64)
        $par2ItemStack.$stackSize = 64;
},
nms_EntityMinecartContainer_onInventoryChanged = $this => {
    return;
},
nms_EntityMinecartContainer_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5;
    if ($this.$isDead)
        var$2 = 0;
    else {
        var$3 = $par1EntityPlayer.$posX - $this.$posX;
        var$4 = $par1EntityPlayer.$posY - $this.$posY;
        var$5 = $par1EntityPlayer.$posZ - $this.$posZ;
        var$2 = var$3 * var$3 + var$4 * var$4 + var$5 * var$5 > 64.0 ? 0 : 1;
    }
    return var$2;
},
nms_EntityMinecartContainer_openChest = $this => {
    return;
},
nms_EntityMinecartContainer_closeChest = $this => {
    return;
},
nms_EntityMinecartContainer_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    return 1;
},
nms_EntityMinecartContainer_getInvName = $this => {
    let var$1;
    var$1 = $this.$entityName;
    if (!(var$1 === null ? 0 : 1))
        var$1 = $rt_s(2570);
    return var$1;
},
nms_EntityMinecartContainer_getInventoryStackLimit = $this => {
    return 64;
},
nms_EntityMinecartContainer_travelToDimension = ($this, $par1) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$dropContentsWhenDead = 0;
        $ptr = 1;
    case 1:
        nms_Entity_travelToDimension($this, $par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $ptr);
},
nms_EntityMinecartContainer_setDead = $this => {
    let $var1, var$2, var$3, var$4, $var2, var$6, var$7, $var3, var$9, $var4, $var5, var$12, var$13, var$14, var$15, var$16, var$17, $var6, $var7, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, var$29, var$30, var$31, var$32, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var5
        = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($this.$dropContentsWhenDead) {
                $var1 = 0;
                var$2 = 24;
                var$3 = 17;
                var$4 = 138;
                while (true) {
                    if ($var1 >= $this.$getSizeInventory())
                        break a;
                    $var2 = $this.$minecartContainerItems.data[$var1];
                    if ($var2 !== null) {
                        var$6 = $this.$rand;
                        var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$6.$seed = var$7;
                        $var3 = Long_lo(Long_shru(var$7, var$2)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                        var$9 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$6.$seed = var$9;
                        $var4 = Long_lo(Long_shru(var$9, var$2)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                        var$9 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        var$6.$seed = var$9;
                        $var5 = Long_lo(Long_shru(var$9, var$2)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
                        var$12 = $var3;
                        var$13 = $var4;
                        var$14 = $var5;
                        var$15 = $var2.$stackSize;
                        if (var$15 > 0) {
                            var$6 = $this.$rand;
                            var$9 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$6.$seed = var$9;
                            var$16 = Long_lo(Long_shru(var$9, var$3));
                            while (true) {
                                var$17 = var$16 % 21 | 0;
                                if (((var$16 - var$17 | 0) + 20 | 0) >= 0)
                                    break;
                                var$9 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                var$6.$seed = var$9;
                                var$16 = Long_lo(Long_shru(var$9, var$3));
                            }
                            $var6 = var$17 + 10 | 0;
                            if ($var6 > var$15)
                                $var6 = var$15;
                            $var2.$stackSize = var$15 - $var6 | 0;
                            $var7 = new nms_EntityItem;
                            var$20 = $this.$worldObj;
                            var$21 = $this.$posX + var$12;
                            var$22 = $this.$posY + var$13;
                            var$23 = $this.$posZ + var$14;
                            var$6 = new nms_ItemStack;
                            var$15 = $var2.$itemID;
                            var$24 = $var2.$itemDamage;
                            nms_ItemStack_$callClinit();
                            var$6.$itemID = var$15;
                            var$6.$stackSize = $var6;
                            var$6.$itemDamage = var$24;
                            if (var$24 < 0)
                                var$6.$itemDamage = 0;
                            $ptr = 1;
                            continue main;
                        }
                    }
                    $var1 = $var1 + 1 | 0;
                }
            }
        }
        $this.$isDead = 1;
        var$6 = $this.$field_82344_g;
        if (var$6 !== null)
            var$6.$update();
        return;
    case 1:
        nms_EntityItem__init_($var7, var$20, var$21, var$22, var$23);
        if ($rt_suspending()) {
            break main;
        }
        var$25 = $var7.$dataWatcher;
        var$20 = var$25.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$26 = jl_Integer_integerCache.data[var$4];
        if (var$26 === null) {
            var$20 = var$20.$elementData.data[0];
            while (var$20 !== null && var$20.$key !== null) {
                var$20 = var$20.$next3;
            }
        } else {
            var$15 = var$26.$value;
            var$27 = var$20.$elementData.data;
            var$20 = var$27[var$15 & (var$27.length - 1 | 0)];
            while (var$20 !== null) {
                if (var$20.$origKeyHash == var$15) {
                    var$28 = var$20.$key;
                    if (var$26 !== var$28 && !jl_Integer_equals(var$26, var$28) ? 0 : 1)
                        break;
                }
                var$20 = var$20.$next3;
            }
        }
        var$28 = var$20 === null ? null : var$20.$value0;
        if (!(var$6 !== var$28.$watchedObject ? 0 : 1)) {
            var$28.$watchedObject = var$6;
            var$28.$watched = 1;
            var$25.$objectChanged = 1;
        }
        var$20 = $var7.$dataWatcher;
        var$6 = var$20.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$26 = jl_Integer_integerCache.data[var$4];
        if (var$26 === null) {
            var$6 = var$6.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            var$15 = var$26.$value;
            var$27 = var$6.$elementData.data;
            var$6 = var$27[var$15 & (var$27.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$15) {
                    var$28 = var$6.$key;
                    if (var$26 !== var$28 && !jl_Integer_equals(var$26, var$28) ? 0 : 1)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        (var$6 === null ? null : var$6.$value0).$watched = 1;
        var$20.$objectChanged = 1;
        if ($var2.$stackTagCompound === null ? 0 : 1) {
            var$28 = nms_EntityItem_getEntityItem($var7);
            var$29 = $var2.$stackTagCompound;
            var$26 = new nms_NBTTagCompound;
            var$6 = var$29.$name;
            if (var$6 === null)
                var$6 = $rt_s(3);
            var$26.$name = var$6;
            var$6 = new ju_HashMap;
            var$15 = ju_HashMap_calculateCapacity(16);
            var$6.$elementCount = 0;
            var$27 = $rt_createArray(ju_HashMap$HashEntry, var$15);
            var$30 = var$27.data;
            var$6.$elementData = var$27;
            var$6.$loadFactor = 0.75;
            var$6.$threshold = var$30.length * 0.75 | 0;
            var$26.$tagMap = var$6;
            var$6 = var$29.$tagMap;
            if (var$6.$cachedKeySet === null) {
                var$20 = new ju_HashMap$1;
                var$20.$this$0 = var$6;
                var$6.$cachedKeySet = var$20;
            }
            var$25 = var$6.$cachedKeySet.$iterator();
            while (var$25.$hasNext()) {
                var$31 = var$25.$next();
                var$6 = var$29.$tagMap;
                if (var$31 === null) {
                    var$32 = var$6.$elementData.data[0];
                    while (var$32 !== null && var$32.$key !== null) {
                        var$32 = var$32.$next3;
                    }
                } else {
                    b: {
                        if (!var$31.$hashCode1) {
                            var$15 = 0;
                            while (true) {
                                if (var$15 >= var$31.$nativeString.length)
                                    break b;
                                var$31.$hashCode1 = (31 * var$31.$hashCode1 | 0) + var$31.$nativeString.charCodeAt(var$15) | 0;
                                var$15 = var$15 + 1 | 0;
                            }
                        }
                    }
                    $var6 = var$31.$hashCode1;
                    var$27 = var$6.$elementData.data;
                    var$32 = var$27[$var6 & (var$27.length - 1 | 0)];
                    while (var$32 !== null) {
                        if (var$32.$origKeyHash == $var6) {
                            c: {
                                var$6 = var$32.$key;
                                if (var$31 !== var$6) {
                                    if (var$31 === var$6)
                                        var$15 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$15 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$15 = var$31.$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$15) {
                                        var$15 = 0;
                                        break c;
                                    }
                                }
                                var$15 = 1;
                            }
                            if (var$15)
                                break;
                        }
                        var$32 = var$32.$next3;
                    }
                }
                var$6 = var$32 === null ? null : var$32.$value0;
                var$6 = var$6.$copy();
                var$20 = var$26.$tagMap;
                if (var$31 !== null)
                    var$6.$name = var$31;
                else
                    var$6.$name = $rt_s(3);
                ju_HashMap_putImpl(var$20, var$31, var$6);
            }
            var$28.$stackTagCompound = var$26;
        }
        $var7.$motionX = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05000000074505806;
        $var7.$motionY = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05000000074505806 + 0.20000000298023224;
        $var7.$motionZ = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.05000000074505806;
        var$6 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        a: while (true) {
            var$15 = $var2.$stackSize;
            if (var$15 > 0) {
                var$6 = $this.$rand;
                var$9 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$6.$seed = var$9;
                var$16 = Long_lo(Long_shru(var$9, var$3));
                while (true) {
                    var$17 = var$16 % 21 | 0;
                    if (((var$16 - var$17 | 0) + 20 | 0) >= 0)
                        break;
                    var$9 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$6.$seed = var$9;
                    var$16 = Long_lo(Long_shru(var$9, var$3));
                }
                $var6 = var$17 + 10 | 0;
                if ($var6 > var$15)
                    $var6 = var$15;
                $var2.$stackSize = var$15 - $var6 | 0;
                $var7 = new nms_EntityItem;
                var$20 = $this.$worldObj;
                var$21 = $this.$posX + var$12;
                var$22 = $this.$posY + var$13;
                var$23 = $this.$posZ + var$14;
                var$6 = new nms_ItemStack;
                var$15 = $var2.$itemID;
                var$24 = $var2.$itemDamage;
                nms_ItemStack_$callClinit();
                var$6.$itemID = var$15;
                var$6.$stackSize = $var6;
                var$6.$itemDamage = var$24;
                if (var$24 < 0)
                    var$6.$itemDamage = 0;
                $ptr = 1;
                continue main;
            }
            while (true) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= $this.$getSizeInventory())
                    break a;
                $var2 = $this.$minecartContainerItems.data[$var1];
                if ($var2 === null)
                    continue;
                else
                    break;
            }
            var$6 = $this.$rand;
            var$7 = Long_and(Long_add(Long_mul(var$6.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$7;
            $var3 = Long_lo(Long_shru(var$7, var$2)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$9 = Long_and(Long_add(Long_mul(var$7, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$9;
            $var4 = Long_lo(Long_shru(var$9, var$2)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$9 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$6.$seed = var$9;
            $var5 = Long_lo(Long_shru(var$9, var$2)) / 1.6777216E7 * 0.800000011920929 + 0.10000000149011612;
            var$12 = $var3;
            var$13 = $var4;
            var$14 = $var5;
        }
        $this.$isDead = 1;
        var$6 = $this.$field_82344_g;
        if (var$6 !== null)
            var$6.$update();
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, $var2, var$6, var$7, $var3, var$9, $var4, $var5, var$12, var$13, var$14, var$15, var$16, var$17, $var6, $var7, var$20, var$21, var$22, var$23, var$24, var$25, var$26, var$27, var$28, var$29, var$30, var$31, var$32, $ptr);
},
nms_EntityMinecartContainer_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var4, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    nms_EntityMinecart_writeEntityToNBT($this, $par1NBTTagCompound);
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    $var4 = new ju_ArrayList;
    $var4.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = $var4;
    $var3 = 0;
    while (true) {
        var$5 = $this.$minecartContainerItems.data;
        if ($var3 >= var$5.length)
            break;
        if (var$5[$var3] !== null) {
            $var4 = new nms_NBTTagCompound;
            $var4.$name = $rt_s(3);
            var$6 = new ju_HashMap;
            var$7 = ju_HashMap_calculateCapacity(16);
            var$6.$elementCount = 0;
            var$8 = $rt_createArray(ju_HashMap$HashEntry, var$7);
            var$5 = var$8.data;
            var$6.$elementData = var$8;
            var$6.$loadFactor = 0.75;
            var$6.$threshold = var$5.length * 0.75 | 0;
            $var4.$tagMap = var$6;
            var$7 = $var3 << 24 >> 24;
            var$9 = new nms_NBTTagByte;
            var$9.$name = $rt_s(2022);
            var$9.$data0 = var$7;
            ju_HashMap_putImpl(var$6, $rt_s(2022), var$9);
            var$10 = $this.$minecartContainerItems.data[$var3];
            var$7 = var$10.$itemID << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$6 = new nms_NBTTagShort;
            var$6.$name = $rt_s(914);
            var$6.$data2 = var$7;
            ju_HashMap_putImpl(var$11, $rt_s(914), var$6);
            var$7 = var$10.$stackSize << 24 >> 24;
            var$11 = $var4.$tagMap;
            var$6 = new nms_NBTTagByte;
            var$6.$name = $rt_s(915);
            var$6.$data0 = var$7;
            ju_HashMap_putImpl(var$11, $rt_s(915), var$6);
            var$7 = var$10.$itemDamage << 16 >> 16;
            var$11 = $var4.$tagMap;
            var$6 = new nms_NBTTagShort;
            var$6.$name = $rt_s(916);
            var$6.$data2 = var$7;
            ju_HashMap_putImpl(var$11, $rt_s(916), var$6);
            var$10 = var$10.$stackTagCompound;
            if (var$10 !== null) {
                var$6 = $var4.$tagMap;
                var$10.$name = $rt_s(917);
                ju_HashMap_putImpl(var$6, $rt_s(917), var$10);
            }
            $var2.$tagType = 10;
            var$10 = $var2.$tagList;
            ju_ArrayList_ensureCapacity(var$10, var$10.$size0 + 1 | 0);
            var$5 = var$10.$array.data;
            var$12 = var$10.$size0;
            var$10.$size0 = var$12 + 1 | 0;
            var$5[var$12] = $var4;
            var$10.$modCount = var$10.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2241);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2241), $var2);
},
nms_EntityMinecartContainer_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $var3, var$4, $var2, $var5, $var4, var$8, var$9, var$10;
    a: {
        nms_EntityMinecart_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2241).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2241).$nativeString.length)
                    break a;
                $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(2241).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[$var3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var3) {
            b: {
                $var2 = var$2.$key;
                if ($rt_s(2241) !== $var2) {
                    if ($rt_s(2241) === $var2)
                        $var5 = 1;
                    else if (!($var2 instanceof jl_String))
                        $var5 = 0;
                    else {
                        $var2 = $var2;
                        $var5 = $rt_s(2241).$nativeString !== $var2.$nativeString ? 0 : 1;
                    }
                    if (!$var5) {
                        $var5 = 0;
                        break b;
                    }
                }
                $var5 = 1;
            }
            if ($var5)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2241) !== null)
            $var2.$name = $rt_s(2241);
        else
            $var2.$name = $rt_s(3);
        $par1NBTTagCompound = new ju_ArrayList;
        $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $par1NBTTagCompound;
    } else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2241) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2241).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2241).$nativeString.length)
                            break c;
                        $rt_s(2241).$hashCode1 = (31 * $rt_s(2241).$hashCode1 | 0) + $rt_s(2241).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2241).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$4[$var3 & (var$4.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == $var3) {
                    d: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2241) !== var$2) {
                            if ($rt_s(2241) === var$2)
                                $var5 = 1;
                            else if (!(var$2 instanceof jl_String))
                                $var5 = 0;
                            else {
                                var$2 = var$2;
                                $var5 = $rt_s(2241).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break d;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        $var2 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
    }
    $this.$minecartContainerItems = $rt_createArray(nms_ItemStack, $this.$getSizeInventory());
    $var3 = 0;
    e: {
        while (true) {
            $par1NBTTagCompound = $var2.$tagList;
            $var5 = $rt_compare($var3, $par1NBTTagCompound.$size0);
            if ($var5 >= 0)
                break;
            if ($var3 < 0)
                break e;
            if ($var5 >= 0)
                break e;
            f: {
                $var4 = $par1NBTTagCompound.$array.data[$var3];
                var$2 = $var4.$tagMap;
                if (!$rt_s(2022).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2022).$nativeString.length)
                            break f;
                        $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2022).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    g: {
                        var$9 = var$2.$key;
                        if ($rt_s(2022) !== var$9) {
                            if ($rt_s(2022) === var$9)
                                $var5 = 1;
                            else if (!(var$9 instanceof jl_String))
                                $var5 = 0;
                            else {
                                var$9 = var$9;
                                $var5 = $rt_s(2022).$nativeString !== var$9.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break g;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$10 = 0;
            else {
                var$2 = $var4.$tagMap;
                if ($rt_s(2022) === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    h: {
                        if (!$rt_s(2022).$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= $rt_s(2022).$nativeString.length)
                                    break h;
                                $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(2022).$hashCode1;
                    var$4 = var$2.$elementData.data;
                    var$2 = var$4[var$8 & (var$4.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$8) {
                            i: {
                                var$9 = var$2.$key;
                                if ($rt_s(2022) !== var$9) {
                                    if ($rt_s(2022) === var$9)
                                        $var5 = 1;
                                    else if (!(var$9 instanceof jl_String))
                                        $var5 = 0;
                                    else {
                                        var$9 = var$9;
                                        $var5 = $rt_s(2022).$nativeString !== var$9.$nativeString ? 0 : 1;
                                    }
                                    if (!$var5) {
                                        $var5 = 0;
                                        break i;
                                    }
                                }
                                $var5 = 1;
                            }
                            if ($var5)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$10 = (var$2 === null ? null : var$2.$value0).$data0;
            }
            $var5 = var$10 & 255;
            if ($var5 >= 0) {
                var$4 = $this.$minecartContainerItems.data;
                if ($var5 < var$4.length) {
                    nms_ItemStack_$callClinit();
                    $par1NBTTagCompound = new nms_ItemStack;
                    nms_ItemStack_readFromNBT($par1NBTTagCompound, $var4);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[$par1NBTTagCompound.$itemID] === null)
                        $par1NBTTagCompound = null;
                    var$4[$var5] = $par1NBTTagCompound;
                }
            }
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_EntityMinecartContainer_interactFirst = ($this, $par1EntityPlayer) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote)
            return 1;
        $ptr = 1;
    case 1:
        nms_EntityPlayerMP_displayGUIChest($par1EntityPlayer, $this);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $ptr);
},
nms_EntityMinecartContainer_applyDrag = $this => {
    let $var2, var$2, var$3;
    $var2 = 0.9800000190734863 + (15 - nms_Container_calcRedstoneFromInventory($this) | 0) * 0.0010000000474974513;
    var$2 = $this.$motionX;
    var$3 = $var2;
    $this.$motionX = var$2 * var$3;
    $this.$motionY = $this.$motionY * 0.0;
    $this.$motionZ = $this.$motionZ * var$3;
},
nms_EntityMinecartChest = $rt_classWithoutFields(nms_EntityMinecartContainer),
nms_EntityMinecartChest_killMinecart = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecartContainer_killMinecart($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        var$2 = nms_Block_chest.$blockID;
        $par1DamageSource = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $par1DamageSource.$itemID = var$2;
        $par1DamageSource.$stackSize = 1;
        $par1DamageSource.$itemDamage = 0;
        var$3 = new nms_EntityItem;
        var$4 = $this.$worldObj;
        var$5 = $this.$posX;
        var$6 = $this.$posY + 0.0;
        var$7 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityItem__init_(var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$3.$dataWatcher;
        var$9 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null)
            var$4 = ju_HashMap_findNullKeyEntry(var$9);
        else {
            var$2 = jl_Integer_hashCode0(var$4);
            var$4 = ju_HashMap_findNonNullKeyEntry(var$9, var$4, var$2 & (var$9.$elementData.data.length - 1 | 0), var$2);
        }
        var$9 = var$4 === null ? null : var$4.$value0;
        if (!($par1DamageSource !== var$9.$watchedObject ? 0 : 1)) {
            var$9.$watchedObject = $par1DamageSource;
            var$9.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = var$3.$dataWatcher;
        var$4 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $par1DamageSource = jl_Integer_integerCache.data[138];
        if ($par1DamageSource === null)
            $par1DamageSource = ju_HashMap_findNullKeyEntry(var$4);
        else {
            var$2 = jl_Integer_hashCode0($par1DamageSource);
            $par1DamageSource = ju_HashMap_findNonNullKeyEntry(var$4, $par1DamageSource, var$2 & (var$4.$elementData.data.length - 1 | 0), var$2);
        }
        ($par1DamageSource === null ? null : $par1DamageSource.$value0).$watched = 1;
        var$8.$objectChanged = 1;
        var$3.$delayBeforeCanPickup = 10;
        $par1DamageSource = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1DamageSource, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityMinecartChest_getSizeInventory = $this => {
    return 27;
},
nms_EntityMinecartChest_getMinecartType = $this => {
    return 1;
},
nms_EntityMinecartChest_getDefaultDisplayTile = $this => {
    nms_Block_$callClinit();
    return nms_Block_chest;
},
nms_EntityMinecartChest_getDefaultDisplayTileOffset = $this => {
    return 8;
},
nms_EntityList$_clinit_$lambda$_63_18 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_18__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_18__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_18();
    nms_EntityList$_clinit_$lambda$_63_18__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_18_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMinecartChest;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$field_82344_g = var$1 === null ? null : null;
        var$2.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        var$2.$dropContentsWhenDead = 1;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityMinecartFurnace() {
    let a = this; nms_EntityMinecart.call(a);
    a.$fuel = 0;
    a.$pushX = 0.0;
    a.$pushZ = 0.0;
}
let nms_EntityMinecartFurnace_getMinecartType = $this => {
    return 2;
},
nms_EntityMinecartFurnace_entityInit = $this => {
    let var$1, var$2;
    nms_EntityMinecart_entityInit($this);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Byte;
    var$2.$value1 = 0;
    nms_DataWatcher_addObject(var$1, 16, var$2);
},
nms_EntityMinecartFurnace_onUpdate = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecart_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$fuel;
        if (var$1 > 0)
            $this.$fuel = var$1 - 1 | 0;
        var$1 = $this.$fuel;
        if (var$1 <= 0) {
            $this.$pushZ = 0.0;
            $this.$pushX = 0.0;
        }
        nms_EntityMinecartFurnace_setMinecartPowered($this, var$1 <= 0 ? 0 : 1);
        var$2 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[144];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$4 = var$3.$value;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    var$6 = var$2.$key;
                    if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        var$1 = !(var$2.$watchedObject.$value1 & 1) ? 0 : 1;
        a: {
            if (var$1) {
                var$2 = $this.$rand;
                var$7 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$7;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$7, 17)))), 31))) {
                    var$2 = $this.$worldObj;
                    var$1 = 0;
                    while (true) {
                        var$8 = $rt_compare(var$1, var$2.$worldAccesses.$size0);
                        if (var$8 >= 0)
                            break;
                        if (var$1 < 0)
                            break a;
                        if (var$8 >= 0)
                            break a;
                        var$1 = var$1 + 1 | 0;
                    }
                }
            }
            return;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityMinecartFurnace_killMinecart = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$isDead = 1;
        var$2 = $this.$field_82344_g;
        if (var$2 !== null)
            var$2.$update();
        var$3 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$2 = nms_Item_minecartEmpty;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$2.$itemID0;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$2 = $this.$entityName;
        if (var$2 !== null)
            nms_ItemStack_setItemName(var$3, var$2);
        if (var$3.$stackSize) {
            var$2 = new nms_EntityItem;
            var$4 = $this.$worldObj;
            var$5 = $this.$posX;
            var$6 = $this.$posY + 0.0;
            var$7 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        if ($par1DamageSource.$explosion)
            return;
        var$2 = new nms_ItemStack;
        nms_Block_$callClinit();
        var$2.$itemID = nms_Block_furnaceIdle.$blockID;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $par1DamageSource = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$5 = $this.$posX;
        var$6 = $this.$posY + 0.0;
        var$7 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityItem__init_(var$2, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$2.$dataWatcher;
        var$4 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[138];
        if (var$9 === null)
            var$4 = ju_HashMap_findNullKeyEntry(var$4);
        else {
            var$10 = jl_Integer_hashCode0(var$9);
            var$4 = ju_HashMap_findNonNullKeyEntry(var$4, var$9, var$10 & (var$4.$elementData.data.length - 1 | 0), var$10);
        }
        var$9 = var$4 === null ? null : var$4.$value0;
        if (!(var$3 !== var$9.$watchedObject ? 0 : 1)) {
            var$9.$watchedObject = var$3;
            var$9.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$9 = var$2.$dataWatcher;
        var$3 = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null)
            var$3 = ju_HashMap_findNullKeyEntry(var$3);
        else {
            var$10 = jl_Integer_hashCode0(var$4);
            var$3 = ju_HashMap_findNonNullKeyEntry(var$3, var$4, var$10 & (var$3.$elementData.data.length - 1 | 0), var$10);
        }
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$9.$objectChanged = 1;
        var$2.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 3;
        continue main;
    case 2:
        nms_EntityItem__init_($par1DamageSource, var$3, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $par1DamageSource.$dataWatcher;
        var$3 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[138];
        if (var$9 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$11 = jl_Integer_hashCode(var$9.$value);
            var$12 = var$3.$elementData.data;
            var$3 = var$12[var$11 & (var$12.length - 1 | 0)];
            while (var$3 !== null && !(var$3.$origKeyHash == var$11 && ju_HashMap_areEqualKeys(var$9, var$3.$key))) {
                var$3 = var$3.$next3;
            }
        }
        var$4 = var$3 === null ? null : var$3.$value0;
        if (!(var$2 !== var$4.$watchedObject ? 0 : 1)) {
            var$4.$watchedObject = var$2;
            var$4.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$4 = $par1DamageSource.$dataWatcher;
        var$2 = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[138];
        if (var$3 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$13 = jl_Integer_hashCode(var$3.$value);
            var$12 = var$2.$elementData.data;
            var$2 = var$12[var$13 & (var$12.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$13 && ju_HashMap_areEqualKeys(var$3, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        (var$2 === null ? null : var$2.$value0).$watched = 1;
        var$4.$objectChanged = 1;
        $par1DamageSource.$delayBeforeCanPickup = 10;
        var$2 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 3:
        nms_World_spawnEntityInWorld(var$3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        if ($par1DamageSource.$explosion)
            return;
        var$2 = new nms_ItemStack;
        nms_Block_$callClinit();
        var$2.$itemID = nms_Block_furnaceIdle.$blockID;
        var$2.$stackSize = 1;
        var$2.$itemDamage = 0;
        $par1DamageSource = new nms_EntityItem;
        var$3 = $this.$worldObj;
        var$5 = $this.$posX;
        var$6 = $this.$posY + 0.0;
        var$7 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 4:
        nms_World_spawnEntityInWorld(var$2, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityMinecartFurnace_updateOnTrack = ($this, $par1, $par2, $par3, $par4, $par6, $par8, $par9) => {
    let $var10, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();$var10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecart_updateOnTrack($this, $par1, $par2, $par3, $par4, $par6, $par8, $par9);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $this.$pushX;
        $par4 = $par4 * $par4;
        $par6 = $this.$pushZ;
        $var10 = $par4 + $par6 * $par6;
        if ($var10 > 1.0E-4) {
            $par4 = $this.$motionX;
            $par4 = $par4 * $par4;
            $par6 = $this.$motionZ;
            if ($par4 + $par6 * $par6 > 0.001) {
                $par4 = jl_Math_sqrt($var10);
                $par6 = $this.$pushX / $par4;
                $this.$pushX = $par6;
                $par4 = $this.$pushZ / $par4;
                $this.$pushZ = $par4;
                $var10 = $this.$motionX;
                $par6 = $par6 * $var10;
                var$9 = $this.$motionZ;
                if ($par6 + $par4 * var$9 >= 0.0) {
                    $this.$pushX = $var10;
                    $this.$pushZ = var$9;
                } else {
                    $this.$pushX = 0.0;
                    $this.$pushZ = 0.0;
                }
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, $par6, $par8, $par9, $var10, var$9, $ptr);
},
nms_EntityMinecartFurnace_applyDrag = $this => {
    let $var1, var$2, var$3, var$4;
    $var1 = $this.$pushX;
    $var1 = $var1 * $var1;
    var$2 = $this.$pushZ;
    $var1 = $var1 + var$2 * var$2;
    if ($var1 <= 1.0E-4) {
        $this.$motionX = $this.$motionX * 0.9800000190734863;
        $this.$motionY = $this.$motionY * 0.0;
        $this.$motionZ = $this.$motionZ * 0.9800000190734863;
    } else {
        $var1 = jl_Math_sqrt($var1);
        var$2 = $this.$pushX / $var1;
        $this.$pushX = var$2;
        $var1 = $this.$pushZ / $var1;
        $this.$pushZ = $var1;
        var$3 = $this.$motionX * 0.800000011920929;
        $this.$motionX = var$3;
        $this.$motionY = $this.$motionY * 0.0;
        var$4 = $this.$motionZ * 0.800000011920929;
        $this.$motionZ = var$4;
        $this.$motionX = var$3 + var$2 * 0.05;
        $this.$motionZ = var$4 + $var1 * 0.05;
    }
    nms_EntityMinecart_applyDrag($this);
},
nms_EntityMinecartFurnace_interactFirst = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $var2, var$5, var$6;
    var$2 = $par1EntityPlayer.$inventory0;
    var$3 = var$2.$currentItem;
    $var2 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
    if ($var2 !== null) {
        var$5 = $var2.$itemID;
        nms_Item_$callClinit();
        if (var$5 == nms_Item_coal.$itemID0) {
            if (!$par1EntityPlayer.$capabilities.$isCreativeMode) {
                var$5 = $var2.$stackSize - 1 | 0;
                $var2.$stackSize = var$5;
                if (!var$5) {
                    $var2 = null;
                    var$6 = var$2.$mainInventory;
                    var$5 = var$6.data.length;
                    if (var$3 >= var$5) {
                        var$3 = var$3 - var$5 | 0;
                        var$6 = var$2.$armorInventory;
                    }
                    var$6.data[var$3] = $var2;
                }
            }
            $this.$fuel = $this.$fuel + 3600 | 0;
        }
    }
    $this.$pushX = $this.$posX - $par1EntityPlayer.$posX;
    $this.$pushZ = $this.$posZ - $par1EntityPlayer.$posZ;
    return 1;
},
nms_EntityMinecartFurnace_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    nms_EntityMinecart_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$pushX;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagDouble;
    var$4.$name = $rt_s(2571);
    var$4.$data7 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2571), var$4);
    var$2 = $this.$pushZ;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagDouble;
    var$4.$name = $rt_s(2572);
    var$4.$data7 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2572), var$4);
    var$5 = $this.$fuel << 16 >> 16;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagShort;
    $par1NBTTagCompound.$name = $rt_s(2573);
    $par1NBTTagCompound.$data2 = var$5;
    ju_HashMap_putImpl(var$4, $rt_s(2573), $par1NBTTagCompound);
},
nms_EntityMinecartFurnace_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        nms_EntityMinecart_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2571).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2571).$nativeString.length)
                    break a;
                $rt_s(2571).$hashCode1 = (31 * $rt_s(2571).$hashCode1 | 0) + $rt_s(2571).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2571).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2571) !== var$6) {
                    if ($rt_s(2571) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2571).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$7 = 0.0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2571) === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2571).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2571).$nativeString.length)
                            break c;
                        $rt_s(2571).$hashCode1 = (31 * $rt_s(2571).$hashCode1 | 0) + $rt_s(2571).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2571).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$8.$key;
                        if ($rt_s(2571) !== var$2) {
                            if ($rt_s(2571) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2571).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$7 = (var$8 === null ? null : var$8.$value0).$data7;
    }
    e: {
        $this.$pushX = var$7;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2572).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2572).$nativeString.length)
                    break e;
                $rt_s(2572).$hashCode1 = (31 * $rt_s(2572).$hashCode1 | 0) + $rt_s(2572).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$9 = $rt_s(2572).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$9 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$9) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2572) !== var$6) {
                    if ($rt_s(2572) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2572).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$7 = 0.0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2572) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2572).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2572).$nativeString.length)
                            break g;
                        $rt_s(2572).$hashCode1 = (31 * $rt_s(2572).$hashCode1 | 0) + $rt_s(2572).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2572).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$9 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$9) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2572) !== var$6) {
                            if ($rt_s(2572) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2572).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$7 = (var$2 === null ? null : var$2.$value0).$data7;
    }
    i: {
        $this.$pushZ = var$7;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2573).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2573).$nativeString.length)
                    break i;
                $rt_s(2573).$hashCode1 = (31 * $rt_s(2573).$hashCode1 | 0) + $rt_s(2573).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$9 = $rt_s(2573).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$9 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$9) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2573) !== var$6) {
                    if ($rt_s(2573) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2573).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2573) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2573).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2573).$nativeString.length)
                            break k;
                        $rt_s(2573).$hashCode1 = (31 * $rt_s(2573).$hashCode1 | 0) + $rt_s(2573).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2573).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$9 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$9) {
                    l: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2573) !== var$2) {
                            if ($rt_s(2573) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2573).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data2;
    }
    $this.$fuel = var$4;
},
nms_EntityMinecartFurnace_setMinecartPowered = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if (!$par1) {
        var$2 = $this.$dataWatcher;
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        $par1 = (var$3.$watchedObject.$value1 & (-2)) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$7 = var$3 === null ? null : var$3.$value0;
        var$3 = var$7.$watchedObject;
        if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$8.$value1 ? 1 : 0)) {
            var$7.$watchedObject = var$8;
            var$7.$watched = 1;
            var$2.$objectChanged = 1;
        }
    } else {
        var$2 = $this.$dataWatcher;
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$3 = var$3 === null ? null : var$3.$value0;
        $par1 = (var$3.$watchedObject.$value1 | 1) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[$par1 + 128 | 0];
        var$3 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[144];
        if (var$4 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    var$7 = var$3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$7 = var$3 === null ? null : var$3.$value0;
        var$3 = var$7.$watchedObject;
        if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$8.$value1 ? 1 : 0)) {
            var$7.$watchedObject = var$8;
            var$7.$watched = 1;
            var$2.$objectChanged = 1;
        }
    }
},
nms_EntityMinecartFurnace_getDefaultDisplayTile = $this => {
    nms_Block_$callClinit();
    return nms_Block_furnaceBurning;
},
nms_EntityMinecartFurnace_getDefaultDisplayTileData = $this => {
    return 2;
},
nms_EntityList$_clinit_$lambda$_63_19 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_19__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_19__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_19();
    nms_EntityList$_clinit_$lambda$_63_19__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_19_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMinecartFurnace;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$field_82344_g = var$1 === null ? null : null;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityMinecartTNT() {
    nms_EntityMinecart.call(this);
    this.$minecartTNTFuse = 0;
}
let nms_EntityMinecartTNT_getMinecartType = $this => {
    return 3;
},
nms_EntityMinecartTNT_getDefaultDisplayTile = $this => {
    nms_Block_$callClinit();
    return nms_Block_tnt;
},
nms_EntityMinecartTNT_onUpdate = $this => {
    let var$1, var$2, var$3, $var1, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        a: {
            nms_EntityMinecart_onUpdate($this);
            if ($rt_suspending()) {
                break main;
            }
            var$1 = $this.$minecartTNTFuse;
            if (var$1 > 0) {
                $this.$minecartTNTFuse = var$1 - 1 | 0;
                var$2 = $this.$worldObj;
                var$3 = 0;
                while (true) {
                    var$1 = $rt_compare(var$3, var$2.$worldAccesses.$size0);
                    if (var$1 >= 0)
                        break a;
                    if (var$3 < 0)
                        break;
                    if (var$1 >= 0)
                        break;
                    var$3 = var$3 + 1 | 0;
                }
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            if (!var$1) {
                $var1 = $this.$motionX;
                $var1 = $var1 * $var1;
                var$5 = $this.$motionZ;
                $var1 = $var1 + var$5 * var$5;
                $ptr = 2;
                continue main;
            }
        }
        if ($this.$isCollidedHorizontally) {
            $var1 = $this.$motionX;
            $var1 = $var1 * $var1;
            var$5 = $this.$motionZ;
            $var1 = $var1 + var$5 * var$5;
            if ($var1 >= 0.009999999776482582) {
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        nms_EntityMinecartTNT_explodeCart($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$isCollidedHorizontally) {
            $var1 = $this.$motionX;
            $var1 = $var1 * $var1;
            var$5 = $this.$motionZ;
            $var1 = $var1 + var$5 * var$5;
            if ($var1 >= 0.009999999776482582) {
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 3:
        nms_EntityMinecartTNT_explodeCart($this, $var1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, var$5, $ptr);
},
nms_EntityMinecartTNT_killMinecart = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$isDead = 1;
        var$2 = $this.$field_82344_g;
        if (var$2 !== null)
            var$2.$update();
        var$3 = new nms_ItemStack;
        nms_Item_$callClinit();
        var$2 = nms_Item_minecartEmpty;
        nms_ItemStack_$callClinit();
        var$3.$itemID = var$2.$itemID0;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$2 = $this.$entityName;
        if (var$2 !== null)
            nms_ItemStack_setItemName(var$3, var$2);
        if (var$3.$stackSize) {
            var$2 = new nms_EntityItem;
            var$4 = $this.$worldObj;
            $var2 = $this.$posX;
            var$6 = $this.$posY + 0.0;
            var$7 = $this.$posZ;
            $ptr = 1;
            continue main;
        }
        $var2 = $this.$motionX;
        $var2 = $var2 * $var2;
        var$6 = $this.$motionZ;
        $var2 = $var2 + var$6 * var$6;
        if ($par1DamageSource.$explosion) {
            if (!$par1DamageSource.$fireDamage && !$par1DamageSource.$explosion && $var2 < 0.009999999776482582)
                return;
            $ptr = 3;
            continue main;
        }
        var$8 = new nms_ItemStack;
        nms_Block_$callClinit();
        var$8.$itemID = nms_Block_tnt.$blockID;
        var$8.$stackSize = 1;
        var$8.$itemDamage = 0;
        var$9 = new nms_EntityItem;
        var$2 = $this.$worldObj;
        var$10 = $this.$posX;
        var$6 = $this.$posY + 0.0;
        var$7 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityItem__init_(var$2, var$4, $var2, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$2.$dataWatcher;
        var$4 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[138];
        if (var$11 === null)
            var$4 = ju_HashMap_findNullKeyEntry(var$4);
        else {
            var$12 = jl_Integer_hashCode0(var$11);
            var$4 = ju_HashMap_findNonNullKeyEntry(var$4, var$11, var$12 & (var$4.$elementData.data.length - 1 | 0), var$12);
        }
        var$11 = var$4 === null ? null : var$4.$value0;
        if (!(var$3 !== var$11.$watchedObject ? 0 : 1)) {
            var$11.$watchedObject = var$3;
            var$11.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$11 = var$2.$dataWatcher;
        var$3 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null)
            var$3 = ju_HashMap_findNullKeyEntry(var$3);
        else {
            var$12 = jl_Integer_hashCode0(var$4);
            var$3 = ju_HashMap_findNonNullKeyEntry(var$3, var$4, var$12 & (var$3.$elementData.data.length - 1 | 0), var$12);
        }
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        var$2.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 4;
        continue main;
    case 2:
        nms_EntityItem__init_(var$9, var$2, var$10, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = var$9.$dataWatcher;
        var$2 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$13 = jl_Integer_hashCode(var$4.$value);
            var$14 = var$2.$elementData.data;
            var$2 = var$14[var$13 & (var$14.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$13 && ju_HashMap_areEqualKeys(var$4, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = var$2 === null ? null : var$2.$value0;
        if (!(var$8 !== var$3.$watchedObject ? 0 : 1)) {
            var$3.$watchedObject = var$8;
            var$3.$watched = 1;
            var$11.$objectChanged = 1;
        }
        var$11 = var$9.$dataWatcher;
        var$2 = var$11.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            var$13 = jl_Integer_hashCode(var$4.$value);
            var$14 = var$2.$elementData.data;
            var$2 = var$14[var$13 & (var$14.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == var$13 && ju_HashMap_areEqualKeys(var$4, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        (var$2 === null ? null : var$2.$value0).$watched = 1;
        var$11.$objectChanged = 1;
        var$9.$delayBeforeCanPickup = 10;
        var$2 = $this.$worldObj;
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityMinecartTNT_explodeCart($this, $var2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_spawnEntityInWorld(var$3, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$motionX;
        $var2 = $var2 * $var2;
        var$6 = $this.$motionZ;
        $var2 = $var2 + var$6 * var$6;
        if ($par1DamageSource.$explosion) {
            if (!$par1DamageSource.$fireDamage && !$par1DamageSource.$explosion && $var2 < 0.009999999776482582)
                return;
            $ptr = 3;
            continue main;
        }
        var$8 = new nms_ItemStack;
        nms_Block_$callClinit();
        var$8.$itemID = nms_Block_tnt.$blockID;
        var$8.$stackSize = 1;
        var$8.$itemDamage = 0;
        var$9 = new nms_EntityItem;
        var$2 = $this.$worldObj;
        var$10 = $this.$posX;
        var$6 = $this.$posY + 0.0;
        var$7 = $this.$posZ;
        $ptr = 2;
        continue main;
    case 5:
        nms_World_spawnEntityInWorld(var$2, var$9);
        if ($rt_suspending()) {
            break main;
        }
        if (!$par1DamageSource.$fireDamage && !$par1DamageSource.$explosion && $var2 < 0.009999999776482582)
            return;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_EntityMinecartTNT_explodeCart = ($this, $par1) => {
    let $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote)
            return;
        $var3 = jl_Math_sqrt($par1);
        if ($var3 > 5.0)
            $var3 = 5.0;
        var$3 = $this.$worldObj;
        var$4 = $this.$posX;
        var$5 = $this.$posY;
        var$6 = $this.$posZ;
        var$7 = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul(var$7.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$8;
        var$9 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$8, 22))), 27);
        var$10 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$7.$seed = var$10;
        var$11 = 4.0 + Long_toNumber(Long_add(var$9, Long_fromInt(Long_lo(Long_shru(var$10, 21))))) * 1.1102230246251565E-16 * 1.5 * $var3;
        var$12 = 1;
        var$13 = 0;
        $ptr = 1;
    case 1:
        nms_WorldServer_newExplosion(var$3, $this, var$4, var$5, var$6, var$11, var$13, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        var$3 = $this.$field_82344_g;
        if (var$3 !== null)
            var$3.$update();
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var3, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityMinecartTNT_fall = ($this, $par1) => {
    let var$2, $var2, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 < 3.0) {
            var$2 = $this.$riddenByEntity;
            if (var$2 === null)
                return;
            $ptr = 2;
            continue main;
        }
        $var2 = $par1 / 10.0;
        var$4 = $var2 * $var2;
        $ptr = 1;
    case 1:
        nms_EntityMinecartTNT_explodeCart($this, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$riddenByEntity;
        if (var$2 === null)
            return;
        $ptr = 2;
    case 2:
        var$2.$fall($par1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, $var2, var$4, $ptr);
},
nms_EntityMinecartTNT_onActivatorRailPass = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par4 && $this.$minecartTNTFuse < 0) {
            $this.$minecartTNTFuse = 80;
            var$5 = $this.$worldObj;
            if (!var$5.$isRemote) {
                var$6 = new nms_Packet38EntityStatus;
                $par2 = $this.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$6.$entityId0 = $par2;
                var$6.$entityStatus = 10;
                var$5 = var$5.$theEntityTracker.$trackedEntityIDs;
                $par3 = $this.$entityId;
                $par4 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
                $par1 = $par4 ^ ($par4 >>> 7 | 0) ^ ($par4 >>> 4 | 0);
                var$7 = var$5.$slots.data;
                var$5 = var$7[$par1 & (var$7.length - 1 | 0)];
                a: {
                    while (var$5 !== null) {
                        if (var$5.$hashEntry == $par3) {
                            var$5 = var$5.$valueEntry;
                            break a;
                        }
                        var$5 = var$5.$nextEntry0;
                    }
                    var$5 = null;
                }
                var$5 = var$5;
                if (var$5 !== null) {
                    var$8 = var$5.$trackingPlayers.$backingMap;
                    if (var$8.$cachedKeySet === null) {
                        var$9 = new ju_HashMap$1;
                        var$9.$this$0 = var$8;
                        ju_AbstractSet__init_(var$9);
                        var$8.$cachedKeySet = var$9;
                    }
                    var$10 = var$8.$cachedKeySet.$iterator();
                    $par2 = var$6 instanceof nms_Packet3Chat;
                    var$9 = var$6;
                    while (var$10.$hasNext()) {
                        b: {
                            var$8 = (var$10.$next()).$playerNetServerHandler;
                            if ($par2) {
                                $par3 = var$8.$playerEntity.$chatVisibility;
                                if ($par3 == 2)
                                    break b;
                                if ($par3 == 1 && !var$9.$isServer)
                                    break b;
                            }
                            try {
                                var$8 = var$8.$netManager;
                                $ptr = 2;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$8 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null)
                                jl_System_errCache = otcic_JSStderrPrintStream__init_();
                            jl_Throwable_printStackTrace(var$8, jl_System_errCache);
                        }
                    }
                    var$5 = var$5.$myEntity;
                    if (var$5 instanceof nms_EntityPlayerMP)
                        c: {
                            var$5 = var$5.$playerNetServerHandler;
                            if ($par2) {
                                $par2 = var$5.$playerEntity.$chatVisibility;
                                if ($par2 == 2)
                                    break c;
                                if ($par2 == 1 && !var$9.$isServer)
                                    break c;
                            }
                            try {
                                var$5 = var$5.$netManager;
                                $ptr = 3;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$5 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$6);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                        }
                }
                var$5 = $this.$worldObj;
                var$6 = $rt_s(1413);
                var$11 = 1.0;
                var$12 = 1.0;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_World_playSoundAtEntity(var$5, $this, var$6, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, var$13);
        }
        e: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break e;
                var$8 = (var$10.$next()).$playerNetServerHandler;
                if (!$par2)
                    break;
                $par3 = var$8.$playerEntity.$chatVisibility;
                if ($par3 == 2)
                    continue;
                if ($par3 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$8 = var$8.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$8 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$13 = jl_System_errCache;
            if (var$13 === null) {
                var$13 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$13;
            }
            var$13 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$8, var$13);
        }
        var$5 = var$5.$myEntity;
        if (var$5 instanceof nms_EntityPlayerMP)
            f: {
                var$5 = var$5.$playerNetServerHandler;
                if ($par2) {
                    $par2 = var$5.$playerEntity.$chatVisibility;
                    if ($par2 == 2)
                        break f;
                    if ($par2 == 1 && !var$9.$isServer)
                        break f;
                }
                try {
                    var$5 = var$5.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$6 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_(var$6);
                    jl_System_errCache = var$6;
                }
                jl_Throwable_printStackTrace(var$5, jl_System_errCache);
            }
        var$5 = $this.$worldObj;
        var$6 = $rt_s(1413);
        var$11 = 1.0;
        var$12 = 1.0;
        $ptr = 1;
        continue main;
    case 3:
        d: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break d;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        var$5 = $this.$worldObj;
        var$6 = $rt_s(1413);
        var$11 = 1.0;
        var$12 = 1.0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityMinecartTNT_getBlockExplosionResistance = ($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6Block) => {
    let var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();$par6Block = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1Explosion = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$minecartTNTFuse <= (-1) ? 0 : 1))
            var$7 = $par6Block.$getExplosionResistance($this);
        else {
            if (!nms_BlockRailBase_isRailBlock($par6Block.$blockID)) {
                $par4 = $par4 + 1 | 0;
                $ptr = 1;
                continue main;
            }
            var$7 = 0.0;
        }
        return var$7;
    case 1:
        $tmp = nms_World_getBlockId($par2World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        return nms_BlockRailBase_isRailBlock($par3) ? 0.0 : $par6Block.$getExplosionResistance($this);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6Block, var$7, $ptr);
},
nms_EntityMinecartTNT_shouldExplodeBlock = ($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6, $par7) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1Explosion = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$minecartTNTFuse <= (-1) ? 0 : 1))
            $par3 = 1;
        else {
            if (!nms_BlockRailBase_isRailBlock($par6)) {
                $par4 = $par4 + 1 | 0;
                $ptr = 1;
                continue main;
            }
            $par3 = 0;
        }
        return $par3;
    case 1:
        $tmp = nms_World_getBlockId($par2World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par3 = $tmp;
        return nms_BlockRailBase_isRailBlock($par3) ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Explosion, $par2World, $par3, $par4, $par5, $par6, $par7, $ptr);
},
nms_EntityMinecartTNT_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        nms_EntityMinecart_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2574).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2574).$nativeString.length)
                    break a;
                $rt_s(2574).$hashCode1 = (31 * $rt_s(2574).$hashCode1 | 0) + $rt_s(2574).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2574).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2574) !== var$6) {
                    if ($rt_s(2574) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2574).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        c: {
            var$2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2574).$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= $rt_s(2574).$nativeString.length)
                        break c;
                    $rt_s(2574).$hashCode1 = (31 * $rt_s(2574).$hashCode1 | 0) + $rt_s(2574).$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2574).$hashCode1;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                d: {
                    var$6 = var$2.$key;
                    if ($rt_s(2574) !== var$6) {
                        if ($rt_s(2574) === var$6)
                            var$7 = 1;
                        else if (!(var$6 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$6 = var$6;
                            var$7 = $rt_s(2574).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break d;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            var$2 = var$2.$next3;
        }
        if (!(var$2 === null ? 0 : 1))
            var$3 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2574) === null) {
                var$6 = $par1NBTTagCompound.$elementData.data[0];
                while (var$6 !== null && var$6.$key !== null) {
                    var$6 = var$6.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2574).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2574).$nativeString.length)
                                break e;
                            $rt_s(2574).$hashCode1 = (31 * $rt_s(2574).$hashCode1 | 0) + $rt_s(2574).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2574).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                var$6 = var$5[var$7 & (var$5.length - 1 | 0)];
                while (var$6 !== null) {
                    if (var$6.$origKeyHash == var$7) {
                        f: {
                            $par1NBTTagCompound = var$6.$key;
                            if ($rt_s(2574) !== $par1NBTTagCompound) {
                                if ($rt_s(2574) === $par1NBTTagCompound)
                                    var$3 = 1;
                                else if (!($par1NBTTagCompound instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    $par1NBTTagCompound = $par1NBTTagCompound;
                                    var$3 = $rt_s(2574).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break f;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$6 = var$6.$next3;
                }
            }
            var$3 = (var$6 === null ? null : var$6.$value0).$data;
        }
        $this.$minecartTNTFuse = var$3;
    }
},
nms_EntityMinecartTNT_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_EntityMinecart_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$minecartTNTFuse;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2574);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2574), $par1NBTTagCompound);
},
nms_EntityList$_clinit_$lambda$_63_20 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_20__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_20__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_20();
    nms_EntityList$_clinit_$lambda$_63_20__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_20_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMinecartTNT;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$field_82344_g = var$1 === null ? null : null;
        var$2.$minecartTNTFuse = (-1);
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityMinecartHopper() {
    let a = this; nms_EntityMinecartContainer.call(a);
    a.$isBlocked = 0;
    a.$transferTicker = 0;
}
let nms_EntityMinecartHopper_getMinecartType = $this => {
    return 5;
},
nms_EntityMinecartHopper_getDefaultDisplayTile = $this => {
    nms_Block_$callClinit();
    return nms_Block_hopperBlock;
},
nms_EntityMinecartHopper_getDefaultDisplayTileOffset = $this => {
    return 1;
},
nms_EntityMinecartHopper_getSizeInventory = $this => {
    return 5;
},
nms_EntityMinecartHopper_interactFirst = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote)
            return 1;
        var$2 = ($par1EntityPlayer.$currentWindowId % 100 | 0) + 1 | 0;
        $par1EntityPlayer.$currentWindowId = var$2;
        var$3 = $par1EntityPlayer.$playerNetServerHandler;
        var$4 = new nms_Packet100OpenWindow;
        var$5 = $this.$entityName;
        var$6 = !(var$5 === null ? 0 : 1) ? $rt_s(2570) : var$5;
        var$7 = var$5 === null ? 0 : 1;
        a: {
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$4.$windowId2 = var$2;
            var$4.$inventoryType = 9;
            var$4.$windowTitle = var$6;
            var$4.$slotsCount0 = 5;
            var$4.$useProvidedWindowTitle = var$7;
            if (var$4 instanceof nms_Packet3Chat) {
                var$5 = var$4;
                var$7 = var$3.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break a;
                if (var$7 == 1 && !var$5.$isServer)
                    break a;
            }
            try {
                var$5 = var$3.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$5 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$6);
                var$6.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$5, var$6);
                var$5.$sb = jl_StringBuilder__init_();
                var$5.$buffer0 = $rt_createCharArray(32);
                var$5.$autoFlush = 0;
                var$5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$5;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$4 = nms_ContainerHopper__init_($par1EntityPlayer.$inventory0, $this);
        $par1EntityPlayer.$openContainer = var$4;
        var$4.$windowId = $par1EntityPlayer.$currentWindowId;
        $ptr = 2;
        continue main;
    case 1:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$5 = new otcic_JSStderrPrintStream;
                var$6 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$6);
                var$6.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$5, var$6);
                var$5.$sb = jl_StringBuilder__init_();
                var$5.$buffer0 = $rt_createCharArray(32);
                var$5.$autoFlush = 0;
                var$5.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$5;
            }
            jl_Throwable_printStackTrace(var$4, jl_System_errCache);
        }
        var$4 = nms_ContainerHopper__init_($par1EntityPlayer.$inventory0, $this);
        $par1EntityPlayer.$openContainer = var$4;
        var$4.$windowId = $par1EntityPlayer.$currentWindowId;
        $ptr = 2;
    case 2:
        var$4.$addCraftingToCrafters($par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityMinecartHopper_onActivatorRailPass = ($this, $par1, $par2, $par3, $par4) => {
    let $var5;
    $var5 = $par4 ? 0 : 1;
    if ($var5 != $this.$isBlocked)
        $this.$isBlocked = $var5;
},
nms_EntityMinecartHopper_getWorldObj = $this => {
    return $this.$worldObj;
},
nms_EntityMinecartHopper_getXPos = $this => {
    return $this.$posX;
},
nms_EntityMinecartHopper_getYPos = $this => {
    return $this.$posY;
},
nms_EntityMinecartHopper_getZPos = $this => {
    return $this.$posZ;
},
nms_EntityMinecartHopper_onUpdate = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecart_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote && ($this.$isDead ? 0 : 1) && $this.$isBlocked) {
            var$1 = $this.$transferTicker - 1 | 0;
            $this.$transferTicker = var$1;
            if (!(var$1 <= 0 ? 0 : 1)) {
                $this.$transferTicker = 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = nms_EntityMinecartHopper_func_96112_aD($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1)
            $this.$transferTicker = 4;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityMinecartHopper_func_96112_aD = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_TileEntityHopper_suckItemsIntoHopper($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1)
            return 1;
        var$2 = $this.$worldObj;
        $var1 = $rt_cls(nms_EntityItem);
        var$4 = $this.$boundingBox0;
        var$5 = var$4.$minX0 - 0.25;
        var$6 = var$4.$minY0 - 0.0;
        var$7 = var$4.$minZ0 - 0.25;
        var$8 = var$4.$maxX0 + 0.25;
        var$9 = var$4.$maxY + 0.0;
        var$10 = var$4.$maxZ0 + 0.25;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$1 = var$11.$nextPoolIndex;
        var$4 = var$11.$listAABB;
        var$12 = var$4.$size0;
        var$13 = $rt_compare(var$1, var$12);
        if (var$13 >= 0) {
            var$14 = new nms_AxisAlignedBB;
            var$14.$minX0 = var$5;
            var$14.$minY0 = var$6;
            var$14.$minZ0 = var$7;
            var$14.$maxX0 = var$8;
            var$14.$maxY = var$9;
            var$14.$maxZ0 = var$10;
            ju_ArrayList_ensureCapacity(var$4, var$12 + 1 | 0);
            var$15 = var$4.$array.data;
            var$13 = var$4.$size0;
            var$4.$size0 = var$13 + 1 | 0;
            var$15[var$13] = var$14;
            var$4.$modCount = var$4.$modCount + 1 | 0;
        } else if (var$1 >= 0 && var$13 < 0) {
            var$14 = var$4.$array.data[var$1];
            var$14.$minX0 = var$5;
            var$14.$minY0 = var$6;
            var$14.$minZ0 = var$7;
            var$14.$maxX0 = var$8;
            var$14.$maxY = var$9;
            var$14.$maxZ0 = var$10;
        } else {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var1);
            $rt_throw($var1);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        var$4 = nms_IEntitySelector_selectAnything;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB(var$2, $var1, var$14, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        var$13 = $var1.$size0;
        if (var$13 > 0) {
            if (0 >= var$13) {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                $rt_throw($var1);
            }
            $var1 = $var1.$array.data[0];
            if ($var1 !== null) {
                var$2 = nms_EntityItem_getEntityItem($var1);
                var$4 = new nms_ItemStack;
                var$1 = var$2.$itemID;
                var$13 = var$2.$stackSize;
                var$12 = var$2.$itemDamage;
                nms_ItemStack_$callClinit();
                var$4.$itemID = var$1;
                var$4.$stackSize = var$13;
                var$4.$itemDamage = var$12;
                if (var$12 < 0)
                    var$4.$itemDamage = 0;
                var$11 = var$2.$stackTagCompound;
                if (var$11 !== null) {
                    var$16 = new nms_NBTTagCompound;
                    var$2 = var$11.$name;
                    if (var$2 === null)
                        var$2 = $rt_s(3);
                    var$16.$name = var$2;
                    var$2 = new ju_HashMap;
                    jl_Object__init_(var$2);
                    var$1 = ju_HashMap_calculateCapacity(16);
                    var$2.$elementCount = 0;
                    var$17 = $rt_createArray(ju_HashMap$HashEntry, var$1);
                    var$15 = var$17.data;
                    var$2.$elementData = var$17;
                    var$2.$loadFactor = 0.75;
                    var$2.$threshold = var$15.length * 0.75 | 0;
                    var$16.$tagMap = var$2;
                    var$14 = var$11.$tagMap;
                    if (var$14.$cachedKeySet === null) {
                        var$2 = new ju_HashMap$1;
                        var$2.$this$0 = var$14;
                        var$14.$cachedKeySet = var$2;
                    }
                    var$18 = var$14.$cachedKeySet.$iterator();
                    while (var$18.$hasNext()) {
                        var$19 = var$18.$next();
                        var$2 = var$11.$tagMap;
                        if (var$19 === null) {
                            var$20 = var$2.$elementData.data[0];
                            while (var$20 !== null && var$20.$key !== null) {
                                var$20 = var$20.$next3;
                            }
                        } else {
                            a: {
                                if (!var$19.$hashCode1) {
                                    var$1 = 0;
                                    while (true) {
                                        if (var$1 >= var$19.$nativeString.length)
                                            break a;
                                        var$19.$hashCode1 = (31 * var$19.$hashCode1 | 0) + var$19.$nativeString.charCodeAt(var$1) | 0;
                                        var$1 = var$1 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = var$19.$hashCode1;
                            var$15 = var$2.$elementData.data;
                            var$20 = var$15[var$13 & (var$15.length - 1 | 0)];
                            while (var$20 !== null) {
                                if (var$20.$origKeyHash == var$13) {
                                    b: {
                                        var$2 = var$20.$key;
                                        if (var$19 !== var$2) {
                                            if (var$19 === var$2)
                                                var$1 = 1;
                                            else if (!(var$2 instanceof jl_String))
                                                var$1 = 0;
                                            else {
                                                var$2 = var$2;
                                                var$1 = var$19.$nativeString !== var$2.$nativeString ? 0 : 1;
                                            }
                                            if (!var$1) {
                                                var$1 = 0;
                                                break b;
                                            }
                                        }
                                        var$1 = 1;
                                    }
                                    if (var$1)
                                        break;
                                }
                                var$20 = var$20.$next3;
                            }
                        }
                        var$2 = var$20 === null ? null : var$20.$value0;
                        var$2 = var$2.$copy();
                        var$14 = var$16.$tagMap;
                        if (var$19 !== null)
                            var$2.$name = var$19;
                        else
                            var$2.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$14, var$19, var$2);
                    }
                    var$4.$stackTagCompound = var$16;
                }
                var$1 = (-1);
                $ptr = 3;
                continue main;
            }
        }
        return 0;
    case 3:
        $tmp = nms_TileEntityHopper_insertStack($this, var$4, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== null && var$2.$stackSize) {
            var$16 = $var1.$dataWatcher;
            var$4 = var$16.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[138];
            if (var$11 === null) {
                var$4 = var$4.$elementData.data[0];
                while (var$4 !== null && var$4.$key !== null) {
                    var$4 = var$4.$next3;
                }
            } else {
                var$12 = var$11.$value;
                var$15 = var$4.$elementData.data;
                var$4 = var$15[var$12 & (var$15.length - 1 | 0)];
                while (var$4 !== null) {
                    if (var$4.$origKeyHash == var$12) {
                        var$14 = var$4.$key;
                        if (var$11 !== var$14 && !jl_Integer_equals(var$11, var$14) ? 0 : 1)
                            break;
                    }
                    var$4 = var$4.$next3;
                }
            }
            var$14 = var$4 === null ? null : var$4.$value0;
            if (!(var$2 !== var$14.$watchedObject ? 0 : 1)) {
                var$14.$watchedObject = var$2;
                var$14.$watched = 1;
                var$16.$objectChanged = 1;
            }
            var$2 = $var1.$dataWatcher;
            $var1 = var$2.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$14 = jl_Integer_integerCache.data[138];
            if (var$14 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$12 = var$14.$value;
                var$15 = $var1.$elementData.data;
                $var1 = var$15[var$12 & (var$15.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$12) {
                        var$4 = $var1.$key;
                        if (var$14 !== var$4 && !jl_Integer_equals(var$14, var$4) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            ($var1 === null ? null : $var1.$value0).$watched = 1;
            var$2.$objectChanged = 1;
        } else
            $var1.$isDead = 1;
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_EntityMinecartHopper_killMinecart = ($this, $par1DamageSource) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecartContainer_killMinecart($this, $par1DamageSource);
        if ($rt_suspending()) {
            break main;
        }
        nms_Block_$callClinit();
        var$2 = nms_Block_hopperBlock.$blockID;
        $par1DamageSource = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        $par1DamageSource.$itemID = var$2;
        $par1DamageSource.$stackSize = 1;
        $par1DamageSource.$itemDamage = 0;
        var$3 = new nms_EntityItem;
        var$4 = $this.$worldObj;
        var$5 = $this.$posX;
        var$6 = $this.$posY + 0.0;
        var$7 = $this.$posZ;
        $ptr = 2;
    case 2:
        nms_EntityItem__init_(var$3, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = var$3.$dataWatcher;
        var$9 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[138];
        if (var$4 === null)
            var$4 = ju_HashMap_findNullKeyEntry(var$9);
        else {
            var$2 = jl_Integer_hashCode0(var$4);
            var$4 = ju_HashMap_findNonNullKeyEntry(var$9, var$4, var$2 & (var$9.$elementData.data.length - 1 | 0), var$2);
        }
        var$9 = var$4 === null ? null : var$4.$value0;
        if (!($par1DamageSource !== var$9.$watchedObject ? 0 : 1)) {
            var$9.$watchedObject = $par1DamageSource;
            var$9.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = var$3.$dataWatcher;
        var$4 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $par1DamageSource = jl_Integer_integerCache.data[138];
        if ($par1DamageSource === null)
            $par1DamageSource = ju_HashMap_findNullKeyEntry(var$4);
        else {
            var$2 = jl_Integer_hashCode0($par1DamageSource);
            $par1DamageSource = ju_HashMap_findNonNullKeyEntry(var$4, $par1DamageSource, var$2 & (var$4.$elementData.data.length - 1 | 0), var$2);
        }
        ($par1DamageSource === null ? null : $par1DamageSource.$value0).$watched = 1;
        var$8.$objectChanged = 1;
        var$3.$delayBeforeCanPickup = 10;
        $par1DamageSource = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1DamageSource, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityMinecartHopper_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    nms_EntityMinecartContainer_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$transferTicker;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2426);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2426), $par1NBTTagCompound);
},
nms_EntityMinecartHopper_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6;
    a: {
        nms_EntityMinecartContainer_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2426).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2426).$nativeString.length)
                    break a;
                $rt_s(2426).$hashCode1 = (31 * $rt_s(2426).$hashCode1 | 0) + $rt_s(2426).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2426).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2426) !== var$6) {
                    if ($rt_s(2426) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2426).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2426) === null) {
            var$6 = $par1NBTTagCompound.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2426).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2426).$nativeString.length)
                            break c;
                        $rt_s(2426).$hashCode1 = (31 * $rt_s(2426).$hashCode1 | 0) + $rt_s(2426).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2426).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            var$6 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$3) {
                    d: {
                        $par1NBTTagCompound = var$6.$key;
                        if ($rt_s(2426) !== $par1NBTTagCompound) {
                            if ($rt_s(2426) === $par1NBTTagCompound)
                                var$4 = 1;
                            else if (!($par1NBTTagCompound instanceof jl_String))
                                var$4 = 0;
                            else {
                                $par1NBTTagCompound = $par1NBTTagCompound;
                                var$4 = $rt_s(2426).$nativeString !== $par1NBTTagCompound.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$4 = (var$6 === null ? null : var$6.$value0).$data;
    }
    $this.$transferTicker = var$4;
},
nms_EntityList$_clinit_$lambda$_63_21 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_21__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_21__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_21();
    nms_EntityList$_clinit_$lambda$_63_21__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_21_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMinecartHopper;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$field_82344_g = var$1 === null ? null : null;
        var$2.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        var$2.$dropContentsWhenDead = 1;
        var$2.$isBlocked = 1;
        var$2.$transferTicker = (-1);
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntityMinecartMobSpawner() {
    nms_EntityMinecart.call(this);
    this.$mobSpawnerLogic = null;
}
let nms_EntityMinecartMobSpawner_getMinecartType = $this => {
    return 4;
},
nms_EntityMinecartMobSpawner_getDefaultDisplayTile = $this => {
    nms_Block_$callClinit();
    return nms_Block_mobSpawner;
},
nms_EntityMinecartMobSpawner_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecart_readEntityFromNBT($this, $par1NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$mobSpawnerLogic;
        $ptr = 2;
    case 2:
        nms_MobSpawnerBaseLogic_readFromNBT(var$2, $par1NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, var$2, $ptr);
},
nms_EntityMinecartMobSpawner_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    nms_EntityMinecart_writeEntityToNBT($this, $par1NBTTagCompound);
    nms_MobSpawnerBaseLogic_writeToNBT($this.$mobSpawnerLogic, $par1NBTTagCompound);
},
nms_EntityMinecartMobSpawner_onUpdate = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityMinecart_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$mobSpawnerLogic;
        $ptr = 2;
    case 2:
        nms_MobSpawnerBaseLogic_updateSpawner(var$1);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_22 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_22__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_22__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_22();
    nms_EntityList$_clinit_$lambda$_63_22__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_22_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMinecartMobSpawner;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 0.9800000190734863;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$field_82344_g = var$1 === null ? null : null;
        var$1 = new nms_EntityMinecartMobSpawnerLogic;
        var$1.$spawnDelay = 20;
        var$1.$mobID = $rt_s(1309);
        var$1.$minSpawnDelay = 200;
        var$1.$maxSpawnDelay = 800;
        var$1.$spawnCount = 4;
        var$1.$maxNearbyEntities = 6;
        var$1.$activatingRangeFromPlayer = 16;
        var$1.$spawnRange = 4;
        var$1.$spawnerMinecart = var$2;
        var$2.$mobSpawnerLogic = var$1;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_23 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_23__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_23__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_23();
    nms_EntityList$_clinit_$lambda$_63_23__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_23_apply = (var$0, var$1) => {
    nms_EntityList_$callClinit();
    return nms_EntityCreeper__init_0(var$1);
},
nms_EntityList$_clinit_$lambda$_63_24 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_24__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_24__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_24();
    nms_EntityList$_clinit_$lambda$_63_24__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_24_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySkeleton;
        $ptr = 1;
    case 1:
        nms_EntitySkeleton__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_25 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_25__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_25__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_25();
    nms_EntityList$_clinit_$lambda$_63_25__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_25_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySpider;
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = new nms_ChunkCoordinates;
        var$1.$posX0 = 0;
        var$1.$posY0 = 0;
        var$1.$posZ0 = 0;
        var$2.$homePosition = var$1;
        var$2.$maximumHomeDistance = (-1.0);
        var$1 = new nms_EntityAIMoveTowardsRestriction;
        var$1.$theEntity0 = var$2;
        var$1.$movementSpeed = 1.0;
        var$1.$mutexBits = 1;
        var$2.$field_110178_bs = var$1;
        var$2.$experienceValue = 5;
        var$3 = 1.399999976158142;
        var$4 = 0.8999999761581421;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityGiantZombie = $rt_classWithoutFields(nms_EntityMob),
nms_EntityGiantZombie_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$1);
    var$2 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$2.$baseValue) {
        var$2.$baseValue = 0.10000000149011612;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (100.0 !== var$2.$baseValue) {
        var$2.$baseValue = 100.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        b: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break b;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (0.5 !== var$2.$baseValue) {
        var$2.$baseValue = 0.5;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_attackDamage;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        c: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break c;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$1 = var$3 === null ? null : var$3.$value0;
    if (50.0 !== var$1.$baseValue) {
        var$1.$baseValue = 50.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
},
nms_EntityGiantZombie_getBlockPathWeight = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$worldObj;
        var$5 = var$4.$provider.$lightBrightnessTable.data;
        var$6 = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockLightValue_do(var$4, $par1, $par2, $par3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return var$5[$par1] - 0.5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_26 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_26__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_26__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_26();
    nms_EntityList$_clinit_$lambda$_63_26__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_26_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityGiantZombie;
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = new nms_ChunkCoordinates;
        var$1.$posX0 = 0;
        var$1.$posY0 = 0;
        var$1.$posZ0 = 0;
        var$2.$homePosition = var$1;
        var$2.$maximumHomeDistance = (-1.0);
        var$1 = new nms_EntityAIMoveTowardsRestriction;
        var$1.$theEntity0 = var$2;
        var$1.$movementSpeed = 1.0;
        var$1.$mutexBits = 1;
        var$2.$field_110178_bs = var$1;
        var$2.$experienceValue = 5;
        var$2.$yOffset = var$2.$yOffset * 6.0;
        var$3 = var$2.$width * 6.0;
        var$4 = var$2.$height0 * 6.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_27 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_27__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_27__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_27();
    nms_EntityList$_clinit_$lambda$_63_27__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_27_apply = (var$0, var$1) => {
    nms_EntityList_$callClinit();
    return nms_EntityZombie__init_(var$1);
},
nms_EntityList$_clinit_$lambda$_63_28 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_28__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_28__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_28();
    nms_EntityList$_clinit_$lambda$_63_28__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_28_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySlime;
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = var$2.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 3 | 0;
            if (((var$4 - var$5 | 0) + 2 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$6 = 1 << var$5;
        var$2.$yOffset = 0.0;
        var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 20 | 0;
            if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$2.$slimeJumpDelay = var$5 + 10 | 0;
        $ptr = 1;
    case 1:
        nms_EntitySlime_setSlimeSize(var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_29 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_29__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_29__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_29();
    nms_EntityList$_clinit_$lambda$_63_29__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_29_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityGhast;
        nms_EntityLiving__init_(var$2, var$1);
        var$2.$explosionStrength = 1;
        var$3 = 4.0;
        var$4 = 4.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$isImmuneToFire = 1;
        var$2.$experienceValue = 5;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_30 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_30__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_30__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_30();
    nms_EntityList$_clinit_$lambda$_63_30__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_30_apply = (var$0, var$1) => {
    let var$2;
    nms_EntityList_$callClinit();
    var$2 = new nms_EntityPigZombie;
    nms_EntityPigZombie_$callClinit();
    nms_EntityZombie__init_0(var$2, var$1);
    var$2.$isImmuneToFire = 1;
    return var$2;
},
nms_EntityList$_clinit_$lambda$_63_31 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_31__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_31__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_31();
    nms_EntityList$_clinit_$lambda$_63_31__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_31_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityEnderman;
        nms_EntityEnderman_$callClinit();
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = new nms_ChunkCoordinates;
        var$1.$posX0 = 0;
        var$1.$posY0 = 0;
        var$1.$posZ0 = 0;
        var$2.$homePosition = var$1;
        var$2.$maximumHomeDistance = (-1.0);
        var$1 = new nms_EntityAIMoveTowardsRestriction;
        var$1.$theEntity0 = var$2;
        var$1.$movementSpeed = 1.0;
        var$1.$mutexBits = 1;
        var$2.$field_110178_bs = var$1;
        var$2.$experienceValue = 5;
        var$3 = 0.6000000238418579;
        var$4 = 2.9000000953674316;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$stepHeight = 1.0;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityCaveSpider = $rt_classWithoutFields(nms_EntitySpider),
nms_EntityCaveSpider_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = ju_HashMap_get($this.$attributeMap.$attributes, var$1);
    if (0.10000000149011612 !== var$2.$baseValue) {
        var$2.$baseValue = 0.10000000149011612;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_put(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$4 = jl_String_hashCode(var$1.$field_111115_a);
        var$5 = var$3.$elementData.data;
        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$3 !== null && !(var$3.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$1, var$3.$key))) {
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (16.0 !== var$2.$baseValue) {
        var$2.$baseValue = 16.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$4 = jl_String_hashCode(var$1.$field_111115_a);
        var$5 = var$3.$elementData.data;
        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$3 !== null && !(var$3.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$1, var$3.$key))) {
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (0.800000011920929 !== var$2.$baseValue) {
        var$2.$baseValue = 0.800000011920929;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$6 = 0;
                while (true) {
                    if (var$6 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$6) | 0;
                    var$6 = var$6 + 1 | 0;
                }
            }
        }
        var$4 = var$2.$hashCode1;
        var$5 = var$3.$elementData.data;
        var$3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$4) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$1 = var$3 === null ? null : var$3.$value0;
    if (12.0 !== var$1.$baseValue) {
        var$1.$baseValue = 12.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
};
let nms_EntityCaveSpider_attackEntityAsMob = ($this, $par1Entity) => {
    let $var2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_EntityMob_attackEntityAsMob($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!$var2)
            return 0;
        if ($par1Entity instanceof nms_EntityLivingBase) {
            $var2 = 0;
            var$3 = $this.$worldObj.$difficultySetting;
            if (var$3 > 1) {
                if (var$3 == 2)
                    $var2 = 7;
                else if (var$3 == 3)
                    $var2 = 15;
            }
            if ($var2 > 0) {
                var$4 = $par1Entity;
                var$5 = new nms_PotionEffect;
                nms_Potion_$callClinit();
                var$6 = nms_Potion_poison.$id0;
                $var2 = $var2 * 20 | 0;
                var$5.$potionID = var$6;
                var$5.$duration = $var2;
                var$5.$amplifier = 0;
                var$5.$isAmbient = 0;
                $ptr = 2;
                continue main;
            }
        }
        return 1;
    case 2:
        var$4.$addPotionEffect(var$5);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityCaveSpider_onSpawnWithEgg = ($this, $par1EntityLivingData) => {
    return $par1EntityLivingData;
},
nms_EntityList$_clinit_$lambda$_63_32 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_32__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_32__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_32();
    nms_EntityList$_clinit_$lambda$_63_32__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_32_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityCaveSpider;
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = new nms_ChunkCoordinates;
        var$1.$posX0 = 0;
        var$1.$posY0 = 0;
        var$1.$posZ0 = 0;
        var$2.$homePosition = var$1;
        var$2.$maximumHomeDistance = (-1.0);
        var$1 = new nms_EntityAIMoveTowardsRestriction;
        jl_Object__init_(var$1);
        var$1.$theEntity0 = var$2;
        var$1.$movementSpeed = 1.0;
        var$1.$mutexBits = 1;
        var$2.$field_110178_bs = var$1;
        var$2.$experienceValue = 5;
        var$3 = 1.399999976158142;
        var$4 = 0.8999999761581421;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = 0.699999988079071;
        var$4 = 0.5;
        $ptr = 2;
    case 2:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
};
function nms_EntitySilverfish() {
    nms_EntityMob.call(this);
    this.$allySummonCooldown = 0;
}
let nms_EntitySilverfish_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, var$1);
    var$2 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$2.$baseValue) {
        var$2.$baseValue = 0.10000000149011612;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        a: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break a;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (8.0 !== var$2.$baseValue) {
        var$2.$baseValue = 8.0;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        b: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break b;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$2 = var$3 === null ? null : var$3.$value0;
    if (0.6000000238418579 !== var$2.$baseValue) {
        var$2.$baseValue = 0.6000000238418579;
        var$2.$field_111133_g = 1;
        var$1 = var$2.$field_111138_a;
        if (var$2.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$2, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_attackDamage;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$3 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        c: {
            var$2 = var$1.$field_111115_a;
            if (!var$2.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$2.$nativeString.length)
                        break c;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$2.$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$2 = var$3.$key;
                if (var$1 !== var$2 && !jl_Object_equals(var$1, var$2) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$1 = var$3 === null ? null : var$3.$value0;
    if (1.0 !== var$1.$baseValue) {
        var$1.$baseValue = 1.0;
        var$1.$field_111133_g = 1;
        var$3 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$3 = var$3.$field_111162_d;
            ju_HashMap_putImpl(var$3.$backingMap, var$1, var$3);
        }
    }
},
nms_EntitySilverfish_canTriggerWalking = $this => {
    return 0;
},
nms_EntitySilverfish_findPlayerToAttack = $this => {
    return nms_World_getClosestVulnerablePlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 8.0);
},
nms_EntitySilverfish_getLivingSound = $this => {
    return $rt_s(2575);
},
nms_EntitySilverfish_getHurtSound = $this => {
    return $rt_s(2576);
},
nms_EntitySilverfish_getDeathSound = $this => {
    return $rt_s(2577);
},
nms_EntitySilverfish_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$invulnerable;
        if (var$3)
            return 0;
        if ($this.$allySummonCooldown <= 0 && !(!($par1DamageSource instanceof nms_EntityDamageSource) && $par1DamageSource !== nms_DamageSource_magic))
            $this.$allySummonCooldown = 20;
        if (var$3)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4)
            var$4 = 0;
        else {
            $par1DamageSource = $par1DamageSource.$getEntity();
            if ($this.$riddenByEntity !== $par1DamageSource && $this.$ridingEntity !== $par1DamageSource) {
                if ($par1DamageSource !== $this)
                    $this.$entityToAttack = $par1DamageSource;
                var$4 = 1;
            } else
                var$4 = 1;
        }
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, $ptr);
},
nms_EntitySilverfish_attackEntity = ($this, $par1Entity, $par2) => {
    let var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$attackTime <= 0 && $par2 < 1.2000000476837158) {
            var$3 = $par1Entity.$boundingBox0;
            var$4 = var$3.$maxY;
            var$5 = $this.$boundingBox0;
            if (var$4 > var$5.$minY0 && var$3.$minY0 < var$5.$maxY) {
                $this.$attackTime = 20;
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityMob_attackEntityAsMob($this, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, var$3, var$4, var$5, $ptr);
},
nms_EntitySilverfish_playStepSound = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_s(2578);
        var$6 = 0.15000000596046448;
        var$7 = 1.0;
        var$8 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_World_playSoundAtEntity(var$8, $this, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntitySilverfish_getDropItemId = $this => {
    return 0;
},
nms_EntitySilverfish_onUpdate = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$renderYawOffset = $this.$rotationYaw;
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_onUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$worldObj.$isRemote) {
            var$1 = $this.$worldObj;
            if (!var$1.$isRemote && !var$1.$difficultySetting)
                $this.$isDead = 1;
            return;
        }
        $ptr = 2;
    case 2:
        nms_EntityCreature_func_110159_bB($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj;
        if (!var$1.$isRemote && !var$1.$difficultySetting)
            $this.$isDead = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntitySilverfish_updateEntityActionState = $this => {
    let $var5, var$2, $var1, $var2, $var3, $var4, var$7, var$8, var$9, var$10, $var6, $var7, $var10, $var11, var$15, var$16, $var1_0, var$18, $var8, var$20, $var9, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();$var9 = $thread.pop();var$20 = $thread.pop();$var8 = $thread.pop();var$18 = $thread.pop();$var1_0 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();$var5 = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityCreature_updateEntityActionState($this);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote) {
            a: {
                $var5 = $this.$allySummonCooldown;
                if ($var5 > 0) {
                    $var5 = $var5 - 1 | 0;
                    $this.$allySummonCooldown = $var5;
                    if (!$var5) {
                        var$2 = $this.$posX;
                        $var1 = var$2 | 0;
                        if (var$2 < $var1)
                            $var1 = $var1 - 1 | 0;
                        var$2 = $this.$posY;
                        $var2 = var$2 | 0;
                        if (var$2 < $var2)
                            $var2 = $var2 - 1 | 0;
                        var$2 = $this.$posZ;
                        $var3 = var$2 | 0;
                        if (var$2 < $var3)
                            $var3 = $var3 - 1 | 0;
                        $var4 = 0;
                        $var5 = 0;
                        var$7 = $rt_s(1417);
                        var$8 = $rt_s(1417);
                        var$9 = $rt_s(1417);
                        var$10 = 47;
                        b: while (true) {
                            if ($var4)
                                break a;
                            if ($var5 > 5)
                                break a;
                            if ($var5 < (-5))
                                break a;
                            $var6 = 0;
                            while (!$var4 && $var6 <= 10 && $var6 >= (-10)) {
                                $var7 = 0;
                                if (!$var4 && $var7 <= 10 && $var7 >= (-10))
                                    break b;
                                $var6 = $var6 > 0 ? 0 - $var6 | 0 : 1 - $var6 | 0;
                            }
                            $var5 = $var5 > 0 ? 0 - $var5 | 0 : 1 - $var5 | 0;
                        }
                        $var10 = $this.$worldObj;
                        $var11 = $var1 + $var6 | 0;
                        var$15 = $var2 + $var5 | 0;
                        var$16 = $var3 + $var7 | 0;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
            var$8 = $this.$entityToAttack;
            if (var$8 === null && !($this.$pathToEntity === null ? 0 : 1)) {
                var$2 = $this.$posX;
                $var1_0 = var$2 | 0;
                if (var$2 < $var1_0)
                    $var1_0 = $var1_0 - 1 | 0;
                var$2 = $this.$posY + 0.5;
                $var2 = var$2 | 0;
                if (var$2 < $var2)
                    $var2 = $var2 - 1 | 0;
                var$2 = $this.$posZ;
                $var3 = var$2 | 0;
                if (var$2 < $var3)
                    $var3 = $var3 - 1 | 0;
                var$8 = $this.$rand;
                var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$8.$seed = var$18;
                $var4 = Long_lo(Long_shru(var$18, 17));
                while (true) {
                    $var11 = $var4 % 6 | 0;
                    if ((($var4 - $var11 | 0) + 5 | 0) >= 0)
                        break;
                    var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$8.$seed = var$18;
                    $var4 = Long_lo(Long_shru(var$18, 17));
                }
                var$8 = $this.$worldObj;
                $var5 = $var1_0 + nms_Facing_offsetsXForSide.data[$var11] | 0;
                $var1 = $var2 + nms_Facing_offsetsYForSide.data[$var11] | 0;
                $var4 = $var3 + nms_Facing_offsetsZForSide.data[$var11] | 0;
                $ptr = 2;
                continue main;
            }
            if (var$8 !== null && !($this.$pathToEntity === null ? 0 : 1))
                $this.$entityToAttack = null;
        }
        return;
    case 2:
        $tmp = nms_World_getBlockId(var$8, $var5, $var1, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        nms_Block_$callClinit();
        if (!($var5 != nms_Block_stone.$blockID && $var5 != nms_Block_cobblestone.$blockID && $var5 != nms_Block_stoneBrick.$blockID ? 0 : 1)) {
            $ptr = 3;
            continue main;
        }
        var$8 = $this.$worldObj;
        $var1 = $var1_0 + nms_Facing_offsetsXForSide.data[$var11] | 0;
        $var4 = $var2 + nms_Facing_offsetsYForSide.data[$var11] | 0;
        $var11 = $var3 + nms_Facing_offsetsZForSide.data[$var11] | 0;
        $var3 = nms_Block_silverfish.$blockID;
        $var6 = $var5 == nms_Block_cobblestone.$blockID ? 1 : $var5 != nms_Block_stoneBrick.$blockID ? 0 : 2;
        $var5 = 3;
        $ptr = 4;
        continue main;
    case 3:
        nms_EntityCreature_updateWanderPath($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        nms_World_setBlock(var$8, $var1, $var4, $var11, $var3, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityLiving_spawnExplosionParticle($this);
        $this.$isDead = 1;
        return;
    case 5:
        $tmp = nms_World_getBlockId($var10, $var11, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        nms_Block_$callClinit();
        if ($var8 == nms_Block_silverfish.$blockID) {
            c: {
                $var10 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                if (var$7 !== var$8) {
                    $var8 = var$7.$nativeString.length;
                    var$20 = var$8.$nativeString.length;
                    if ($var8 < var$20)
                        var$20 = $var8;
                    $var1_0 = 0;
                    d: {
                        while (true) {
                            if ($var1_0 >= var$20) {
                                var$7.$nativeString.length;
                                var$8.$nativeString.length;
                                break c;
                            }
                            if ($var1_0 < 0)
                                break d;
                            if ($var1_0 >= var$7.$nativeString.length)
                                break d;
                            $var9 = var$7.$nativeString.charCodeAt($var1_0);
                            if ($var1_0 < 0)
                                break;
                            if ($var1_0 >= var$8.$nativeString.length)
                                break;
                            if ($var9 - var$8.$nativeString.charCodeAt($var1_0) | 0)
                                break c;
                            $var1_0 = $var1_0 + 1 | 0;
                        }
                        var$8 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_(var$8);
                        $rt_throw(var$8);
                    }
                    var$8 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$8);
                    $rt_throw(var$8);
                }
            }
            e: {
                f: {
                    g: while (true) {
                        if ($var10 === null) {
                            $var10 = null;
                            break e;
                        }
                        h: {
                            var$22 = $var10.$key0;
                            if (var$9 === var$22)
                                $var1_0 = 0;
                            else {
                                $var9 = var$9.$nativeString.length;
                                $var8 = var$22.$nativeString.length;
                                if ($var9 < $var8)
                                    $var8 = $var9;
                                $var9 = 0;
                                while (true) {
                                    if ($var9 >= $var8) {
                                        $var1_0 = var$9.$nativeString.length - var$22.$nativeString.length | 0;
                                        break h;
                                    }
                                    if ($var9 < 0)
                                        break f;
                                    if ($var9 >= var$9.$nativeString.length)
                                        break f;
                                    var$20 = var$9.$nativeString.charCodeAt($var9);
                                    if ($var9 < 0)
                                        break g;
                                    if ($var9 >= var$22.$nativeString.length)
                                        break g;
                                    $var1_0 = var$20 - var$22.$nativeString.charCodeAt($var9) | 0;
                                    if ($var1_0)
                                        break;
                                    $var9 = $var9 + 1 | 0;
                                }
                            }
                        }
                        if (!$var1_0)
                            break e;
                        $var10 = $var1_0 >= 0 ? $var10.$right : $var10.$left;
                    }
                    var$8 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_(var$8);
                    $rt_throw(var$8);
                }
                var$8 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_(var$8);
                $rt_throw(var$8);
            }
            $var10 = $var10 === null ? null : $var10.$value2;
            if (!($var10 === null ? 0 : $var10.$valueBoolean)) {
                $var10 = $this.$worldObj;
                $ptr = 7;
                continue main;
            }
            $var10 = $this.$worldObj;
            $var1_0 = 0;
            $ptr = 6;
            continue main;
        }
        $var7 = $var7 > 0 ? 0 - $var7 | 0 : 1 - $var7 | 0;
        i: {
            while (!(!$var4 && $var7 <= 10 && $var7 >= (-10))) {
                $var6 = $var6 > 0 ? 0 - $var6 | 0 : 1 - $var6 | 0;
                while (!(!$var4 && $var6 <= 10 && $var6 >= (-10))) {
                    $var5 = $var5 > 0 ? 0 - $var5 | 0 : 1 - $var5 | 0;
                    if ($var4)
                        break i;
                    if ($var5 > 5)
                        break i;
                    if ($var5 < (-5))
                        break i;
                    $var6 = 0;
                }
                $var7 = 0;
            }
            $var10 = $this.$worldObj;
            $var11 = $var1 + $var6 | 0;
            var$15 = $var2 + $var5 | 0;
            var$16 = $var3 + $var7 | 0;
            continue main;
        }
        var$8 = $this.$entityToAttack;
        if (var$8 === null && !($this.$pathToEntity === null ? 0 : 1)) {
            var$2 = $this.$posX;
            $var1_0 = var$2 | 0;
            if (var$2 < $var1_0)
                $var1_0 = $var1_0 - 1 | 0;
            var$2 = $this.$posY + 0.5;
            $var2 = var$2 | 0;
            if (var$2 < $var2)
                $var2 = $var2 - 1 | 0;
            var$2 = $this.$posZ;
            $var3 = var$2 | 0;
            if (var$2 < $var3)
                $var3 = $var3 - 1 | 0;
            var$8 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$18;
            $var4 = Long_lo(Long_shru(var$18, 17));
            while (true) {
                $var11 = $var4 % 6 | 0;
                if ((($var4 - $var11 | 0) + 5 | 0) >= 0)
                    break;
                var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$8.$seed = var$18;
                $var4 = Long_lo(Long_shru(var$18, 17));
            }
            var$8 = $this.$worldObj;
            $var5 = $var1_0 + nms_Facing_offsetsXForSide.data[$var11] | 0;
            $var1 = $var2 + nms_Facing_offsetsYForSide.data[$var11] | 0;
            $var4 = $var3 + nms_Facing_offsetsZForSide.data[$var11] | 0;
            $ptr = 2;
            continue main;
        }
        if (var$8 !== null && !($this.$pathToEntity === null ? 0 : 1))
            $this.$entityToAttack = null;
        return;
    case 6:
        nms_World_destroyBlock($var10, $var11, var$15, var$16, $var1_0);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = nms_Block_silverfish;
        var$22 = $this.$worldObj;
        $var1_0 = 0;
        $ptr = 8;
        continue main;
    case 7:
        $tmp = nms_World_getBlockMetadata($var10, $var11, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var10 = nms_Block_stone;
        if ($var9 == 1)
            $var10 = nms_Block_cobblestone;
        if ($var9 == 2)
            $var10 = nms_Block_stoneBrick;
        var$22 = $this.$worldObj;
        $var1_0 = $var10.$blockID;
        $var8 = 0;
        $var9 = 3;
        $ptr = 9;
        continue main;
    case 8:
        $var10.$onBlockDestroyedByPlayer(var$22, $var11, var$15, var$16, $var1_0);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$rand;
        var$18 = Long_and(Long_add(Long_mul($var10.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var10.$seed = var$18;
        if (!Long_lo(Long_shru(var$18, var$10)) ? 0 : 1)
            $var4 = 1;
        else {
            $var7 = $var7 > 0 ? 0 - $var7 | 0 : 1 - $var7 | 0;
            if (!$var4) {
                $var11 = 10;
                $var11 = $rt_compare($var7, $var11);
                if ($var11 <= 0) {
                    $var11 = (-10);
                    $var11 = $rt_compare($var7, $var11);
                    if ($var11 >= 0) {
                        $var10 = $this.$worldObj;
                        $var11 = $var1 + $var6 | 0;
                        var$15 = $var2 + $var5 | 0;
                        var$16 = $var3 + $var7 | 0;
                        $ptr = 5;
                        continue main;
                    }
                }
            }
        }
        b: {
            while (true) {
                $var6 = $var6 > 0 ? 0 - $var6 | 0 : 1 - $var6 | 0;
                while (!(!$var4 && $var6 <= 10 && $var6 >= (-10))) {
                    $var5 = $var5 > 0 ? 0 - $var5 | 0 : 1 - $var5 | 0;
                    if ($var4)
                        break b;
                    if ($var5 > 5)
                        break b;
                    if ($var5 < (-5))
                        break b;
                    $var6 = 0;
                }
                $var7 = 0;
                if ($var4)
                    continue;
                $var11 = 10;
                $var11 = $rt_compare($var7, $var11);
                if ($var11 > 0)
                    continue;
                $var11 = (-10);
                $var11 = $rt_compare($var7, $var11);
                if ($var11 >= 0)
                    break;
            }
            $var10 = $this.$worldObj;
            $var11 = $var1 + $var6 | 0;
            var$15 = $var2 + $var5 | 0;
            var$16 = $var3 + $var7 | 0;
            $ptr = 5;
            continue main;
        }
        var$8 = $this.$entityToAttack;
        if (var$8 === null && !($this.$pathToEntity === null ? 0 : 1)) {
            var$2 = $this.$posX;
            $var1_0 = var$2 | 0;
            if (var$2 < $var1_0)
                $var1_0 = $var1_0 - 1 | 0;
            var$2 = $this.$posY + 0.5;
            $var2 = var$2 | 0;
            if (var$2 < $var2)
                $var2 = $var2 - 1 | 0;
            var$2 = $this.$posZ;
            $var3 = var$2 | 0;
            if (var$2 < $var3)
                $var3 = $var3 - 1 | 0;
            var$8 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$8.$seed = var$18;
            $var4 = Long_lo(Long_shru(var$18, 17));
            while (true) {
                $var11 = $var4 % 6 | 0;
                if ((($var4 - $var11 | 0) + 5 | 0) >= 0)
                    break;
                var$18 = Long_and(Long_add(Long_mul(var$8.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$8.$seed = var$18;
                $var4 = Long_lo(Long_shru(var$18, 17));
            }
            var$8 = $this.$worldObj;
            $var5 = $var1_0 + nms_Facing_offsetsXForSide.data[$var11] | 0;
            $var1 = $var2 + nms_Facing_offsetsYForSide.data[$var11] | 0;
            $var4 = $var3 + nms_Facing_offsetsZForSide.data[$var11] | 0;
            $ptr = 2;
            continue main;
        }
        if (var$8 !== null && !($this.$pathToEntity === null ? 0 : 1))
            $this.$entityToAttack = null;
        return;
    case 9:
        nms_World_setBlock(var$22, $var11, var$15, var$16, $var1_0, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = nms_Block_silverfish;
        var$22 = $this.$worldObj;
        $var1_0 = 0;
        $ptr = 8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var5, var$2, $var1, $var2, $var3, $var4, var$7, var$8, var$9, var$10, $var6, $var7, $var10, $var11, var$15, var$16, $var1_0, var$18, $var8, var$20, $var9, var$22, $ptr);
},
nms_EntitySilverfish_getBlockPathWeight = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$worldObj;
        var$5 = $par2 - 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$4, $par1, var$5, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        nms_Block_$callClinit();
        if (var$5 == nms_Block_stone.$blockID)
            return 10.0;
        var$6 = 0.5;
        var$4 = $this.$worldObj;
        var$7 = var$4.$provider.$lightBrightnessTable.data;
        var$5 = 1;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockLightValue_do(var$4, $par1, $par2, $par3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        return var$6 - var$7[$par1];
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntitySilverfish_isValidLightLevel = $this => {
    return 1;
},
nms_EntitySilverfish_getCanSpawnHere = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$worldObj;
        if ($var1.$difficultySetting <= 0) {
            if (!0)
                return 0;
            return nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 5.0) !== null ? 0 : 1;
        }
        var$2 = $this.$posX;
        var$3 = var$2 | 0;
        if (var$2 < var$3)
            var$3 = var$3 - 1 | 0;
        var$4 = $this.$boundingBox0;
        var$2 = var$4.$minY0;
        var$5 = var$2 | 0;
        if (var$2 < var$5)
            var$5 = var$5 - 1 | 0;
        var$2 = $this.$posZ;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_checkNoEntityCollision($var1, var$4, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8) {
            $var1 = $this.$worldObj;
            var$4 = $this.$boundingBox0;
            $ptr = 2;
            continue main;
        }
        if (!0) {
            if (!(!0 ? 0 : 1))
                return 0;
            return nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 5.0) !== null ? 0 : 1;
        }
        $var1 = $this.$worldObj;
        var$8 = var$5 - 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getCollidingBoundingBoxes($var1, $this, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1.$size0 ? 0 : 1) {
            $var1 = $this.$worldObj;
            var$4 = $this.$boundingBox0;
            $ptr = 5;
            continue main;
        }
        if (!0) {
            if (!(!0 ? 0 : 1))
                return 0;
            return nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 5.0) !== null ? 0 : 1;
        }
        $var1 = $this.$worldObj;
        var$8 = var$5 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($var1, var$3, var$8, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        nms_Block_$callClinit();
        if (var$8 == nms_Block_stone.$blockID) {
            if (!(!(10.0 < 0.0 ? 0 : 1) ? 0 : 1))
                return 0;
            return nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 5.0) !== null ? 0 : 1;
        }
        var$9 = 0.5;
        $var1 = $this.$worldObj;
        var$10 = $var1.$provider.$lightBrightnessTable.data;
        var$8 = 1;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockLightValue_do($var1, var$3, var$5, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!(!(var$9 - var$10[var$8] < 0.0 ? 0 : 1) ? 0 : 1))
            return 0;
        return nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 5.0) !== null ? 0 : 1;
    case 5:
        $tmp = nms_World_isAnyLiquid($var1, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!(var$8 ? 0 : 1)) {
            if (!(!0 ? 0 : 1))
                return 0;
            return nms_World_getClosestPlayer($this.$worldObj, $this.$posX, $this.$posY, $this.$posZ, 5.0) !== null ? 0 : 1;
        }
        $var1 = $this.$worldObj;
        var$8 = var$5 - 1 | 0;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntitySilverfish_getCreatureAttribute = $this => {
    return nms_EnumCreatureAttribute_ARTHROPOD;
},
nms_EntityList$_clinit_$lambda$_63_33 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_33__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_33__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_33();
    nms_EntityList$_clinit_$lambda$_63_33__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_33_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySilverfish;
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = new nms_ChunkCoordinates;
        var$1.$posX0 = 0;
        var$1.$posY0 = 0;
        var$1.$posZ0 = 0;
        var$2.$homePosition = var$1;
        var$2.$maximumHomeDistance = (-1.0);
        var$1 = new nms_EntityAIMoveTowardsRestriction;
        var$1.$theEntity0 = var$2;
        var$1.$movementSpeed = 1.0;
        var$1.$mutexBits = 1;
        var$2.$field_110178_bs = var$1;
        var$2.$experienceValue = 5;
        var$3 = 0.30000001192092896;
        var$4 = 0.699999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_34 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_34__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_34__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_34();
    nms_EntityList$_clinit_$lambda$_63_34__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_34_apply = (var$0, var$1) => {
    let var$2;
    nms_EntityList_$callClinit();
    var$2 = new nms_EntityBlaze;
    nms_EntityCreature_$callClinit();
    nms_EntityLiving__init_(var$2, var$1);
    var$1 = new nms_ChunkCoordinates;
    var$1.$posX0 = 0;
    var$1.$posY0 = 0;
    var$1.$posZ0 = 0;
    var$2.$homePosition = var$1;
    var$2.$maximumHomeDistance = (-1.0);
    var$1 = new nms_EntityAIMoveTowardsRestriction;
    var$1.$theEntity0 = var$2;
    var$1.$movementSpeed = 1.0;
    var$1.$mutexBits = 1;
    var$2.$field_110178_bs = var$1;
    var$2.$experienceValue = 5;
    var$2.$heightOffset = 0.5;
    var$2.$isImmuneToFire = 1;
    var$2.$experienceValue = 10;
    return var$2;
},
nms_EntityList$_clinit_$lambda$_63_35 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_35__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_35__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_35();
    nms_EntityList$_clinit_$lambda$_63_35__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_35_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMagmaCube;
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = var$2.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 3 | 0;
            if (((var$4 - var$5 | 0) + 2 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$6 = 1 << var$5;
        var$2.$yOffset = 0.0;
        var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            var$5 = var$4 % 20 | 0;
            if (((var$4 - var$5 | 0) + 19 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        var$2.$slimeJumpDelay = var$5 + 10 | 0;
        $ptr = 1;
    case 1:
        nms_EntitySlime_setSlimeSize(var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$isImmuneToFire = 1;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_IBossDisplayData = $rt_classWithoutFields(0),
nms_IEntityMultiPart = $rt_classWithoutFields(0);
function nms_EntityDragon() {
    let a = this; nms_EntityLiving.call(a);
    a.$targetX = 0.0;
    a.$targetY = 0.0;
    a.$targetZ = 0.0;
    a.$ringBuffer = null;
    a.$ringBufferIndex = 0;
    a.$dragonPartArray = null;
    a.$dragonPartHead = null;
    a.$dragonPartBody = null;
    a.$dragonPartTail1 = null;
    a.$dragonPartTail2 = null;
    a.$dragonPartTail3 = null;
    a.$dragonPartWing1 = null;
    a.$dragonPartWing2 = null;
    a.$prevAnimTime = 0.0;
    a.$animTime = 0.0;
    a.$forceNewTarget = 0;
    a.$slowed = 0;
    a.$target = null;
    a.$deathTicks = 0;
    a.$healingEnderCrystal = null;
}
let nms_EntityDragon__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityLiving__init_($this, $par1World);
        $this.$ringBuffer = $rt_createDoubleMultiArray([3, 64]);
        $this.$ringBufferIndex = (-1);
        var$2 = $rt_createArray(nms_EntityDragonPart, 7);
        var$3 = var$2.data;
        var$4 = 0;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2579);
        var$6 = 6.0;
        var$7 = 6.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 1;
    case 1:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartHead = $par1World;
        var$3[var$4] = $par1World;
        var$4 = 1;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2580);
        var$6 = 8.0;
        var$7 = 8.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 2;
    case 2:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartBody = $par1World;
        var$3[var$4] = $par1World;
        var$4 = 2;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2581);
        var$6 = 4.0;
        var$7 = 4.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 3;
    case 3:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartTail1 = $par1World;
        var$3[var$4] = $par1World;
        var$4 = 3;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2581);
        var$6 = 4.0;
        var$7 = 4.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 4;
    case 4:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartTail2 = $par1World;
        var$3[var$4] = $par1World;
        var$4 = 4;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2581);
        var$6 = 4.0;
        var$7 = 4.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 5;
    case 5:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartTail3 = $par1World;
        var$3[var$4] = $par1World;
        var$4 = 5;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2582);
        var$6 = 4.0;
        var$7 = 4.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 6;
    case 6:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartWing1 = $par1World;
        var$3[var$4] = $par1World;
        var$4 = 6;
        $par1World = new nms_EntityDragonPart;
        var$5 = $rt_s(2582);
        var$6 = 4.0;
        var$7 = 4.0;
        nms_Entity__init_($par1World, $this.$worldObj);
        $ptr = 7;
    case 7:
        nms_Entity_setSize($par1World, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$entityDragonObj = $this;
        $par1World.$name10 = var$5;
        $this.$dragonPartWing2 = $par1World;
        var$3[var$4] = $par1World;
        $this.$dragonPartArray = var$2;
        $par1World = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$5 = $this.$attributeMap.$attributes;
        if ($par1World === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$8 = jl_String_hashCode($par1World.$field_111115_a);
            var$2 = var$5.$elementData.data;
            var$5 = var$2[var$8 & (var$2.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == var$8 && ju_HashMap_areEqualKeys($par1World, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        $par1World = var$5 === null ? null : var$5.$value0;
        if ($par1World.$field_111133_g) {
            $par1World.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1World);
            $par1World.$field_111133_g = 0;
        }
        var$7 = $par1World.$field_111139_h;
        var$5 = $this.$dataWatcher;
        var$6 = 0.0;
        var$9 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        $par1World = $this.$attributeMap.$attributes;
        if (var$9 === null)
            $par1World = ju_HashMap_findNullKeyEntry($par1World);
        else {
            var$8 = nms_BaseAttribute_hashCode(var$9);
            $par1World = ju_HashMap_findNonNullKeyEntry($par1World, var$9, var$8 & ($par1World.$elementData.data.length - 1 | 0), var$8);
        }
        $par1World = $par1World === null ? null : $par1World.$value0;
        if ($par1World.$field_111133_g) {
            $par1World.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1World);
            $par1World.$field_111133_g = 0;
        }
        var$10 = $par1World.$field_111139_h;
        if (var$7 >= var$6)
            var$6 = var$7 <= var$10 ? var$7 : var$10;
        var$11 = new jl_Float;
        var$11.$value3 = var$6;
        $par1World = var$5.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[134];
        if (var$12 === null) {
            $par1World = $par1World.$elementData.data[0];
            while ($par1World !== null && $par1World.$key !== null) {
                $par1World = $par1World.$next3;
            }
        } else {
            var$8 = var$12.$value;
            var$2 = $par1World.$elementData.data;
            $par1World = var$2[var$8 & (var$2.length - 1 | 0)];
            while ($par1World !== null) {
                if ($par1World.$origKeyHash == var$8) {
                    var$9 = $par1World.$key;
                    if (var$12 !== var$9 && !(var$12 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$8 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1World = $par1World.$next3;
            }
        }
        var$9 = $par1World === null ? null : $par1World.$value0;
        $par1World = var$9.$watchedObject;
        if (var$11 === $par1World)
            var$4 = 1;
        else
            a: {
                if ($par1World instanceof jl_Float) {
                    var$6 = var$11.$value3;
                    var$7 = $par1World.$value3;
                    if (var$6 !== var$6 ? (var$7 === var$7 ? 0 : 1) : $rt_floatToRawIntBits(var$6) != $rt_floatToRawIntBits(var$7) ? 0 : 1) {
                        var$4 = 1;
                        break a;
                    }
                }
                var$4 = 0;
            }
        if (!var$4) {
            var$9.$watchedObject = var$11;
            var$9.$watched = 1;
            var$5.$objectChanged = 1;
        }
        var$6 = 16.0;
        var$7 = 8.0;
        $ptr = 8;
    case 8:
        nms_Entity_setSize($this, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $this.$noClip = 1;
        $this.$isImmuneToFire = 1;
        $this.$targetY = 100.0;
        $this.$ignoreFrustumCheck = 1;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityDragon__init_0 = var_0 => {
    let var_1 = new nms_EntityDragon();
    nms_EntityDragon__init_(var_1, var_0);
    return var_1;
},
nms_EntityDragon_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null)
        var$1 = ju_HashMap_findNullKeyEntry(var$2);
    else {
        var$3 = nms_BaseAttribute_hashCode(var$1);
        var$1 = ju_HashMap_findNonNullKeyEntry(var$2, var$1, var$3 & (var$2.$elementData.data.length - 1 | 0), var$3);
    }
    var$4 = var$1 === null ? null : var$1.$value0;
    if (0.10000000149011612 !== var$4.$baseValue) {
        var$4.$baseValue = 0.10000000149011612;
        var$4.$field_111133_g = 1;
        var$1 = var$4.$field_111138_a;
        if (var$4.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$4, var$1);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$4 = var$1.$field_111115_a;
            if (!var$4.$hashCode1) {
                var$5 = 0;
                while (true) {
                    if (var$5 >= var$4.$nativeString.length)
                        break a;
                    var$4.$hashCode1 = (31 * var$4.$hashCode1 | 0) + var$4.$nativeString.charCodeAt(var$5) | 0;
                    var$5 = var$5 + 1 | 0;
                }
            }
        }
        var$6 = var$4.$hashCode1;
        var$7 = var$2.$elementData.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$6) {
                var$4 = var$2.$key;
                if (var$1 !== var$4 && !jl_Object_equals(var$1, var$4) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (200.0 !== var$1.$baseValue) {
        var$1.$baseValue = 200.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityDragon_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
},
nms_EntityDragon_getMovementOffsets = ($this, $par1, $par2) => {
    let var$3, var$4, $var3, var$6, var$7, $var4, $var5, var$10, $var6, $var8, var$13;
    var$3 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[134];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        $var3 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[$var3 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == $var3) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == $var3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$3 = var$3 === null ? null : var$3.$value0;
    if (var$3.$watchedObject.$value3 <= 0.0)
        $par2 = 0.0;
    $par2 = 1.0 - $par2;
    $par1 = $this.$ringBufferIndex - ($par1 * 1 | 0) | 0;
    $var3 = $par1 & 63;
    $var4 = ($par1 - 1 | 0) & 63;
    $var5 = $rt_createDoubleArray(3);
    var$10 = $this.$ringBuffer.data;
    $var6 = var$10[$var3].data[0];
    $var8 = (var$10[$var4].data[0] - $var6) % 360.0;
    if ($var8 >= 180.0)
        $var8 = $var8 - 360.0;
    if ($var8 < (-180.0))
        $var8 = $var8 + 360.0;
    var$6 = $var5.data;
    var$13 = $par2;
    var$6[0] = $var6 + $var8 * var$13;
    $var6 = var$10[$var3].data[1];
    var$6[1] = $var6 + (var$10[$var4].data[1] - $var6) * var$13;
    var$6[2] = var$10[$var3].data[2] + (var$10[$var4].data[2] - var$10[$var3].data[2]) * var$13;
    return $var5;
},
nms_EntityDragon_onLivingUpdate = $this => {
    let $var1, $var29, $var1_0, $var15, $var39, var$6, $var23, var$8, $var25, $var10, $var4, $var9, $var12, $var26, $var6, $var6_0, $var8, $var17, $var2, $var3, $var27, $var28, $var7, $var14, $var11, $var13, $var16, $var18, $var19, $var21, $var32, $var30, var$33, $var31, $var33, $var22, $var35, $var37, $var36, $var38, $var40, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var40 = $thread.pop();$var38 = $thread.pop();$var36 = $thread.pop();$var37 = $thread.pop();$var35 = $thread.pop();$var22 = $thread.pop();$var33 = $thread.pop();$var31 = $thread.pop();var$33 = $thread.pop();$var30 = $thread.pop();$var32 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var14 = $thread.pop();$var7 = $thread.pop();$var28 = $thread.pop();$var27 = $thread.pop();$var3
        = $thread.pop();$var2 = $thread.pop();$var17 = $thread.pop();$var8 = $thread.pop();$var6_0 = $thread.pop();$var6 = $thread.pop();$var26 = $thread.pop();$var12 = $thread.pop();$var9 = $thread.pop();$var4 = $thread.pop();$var10 = $thread.pop();$var25 = $thread.pop();var$8 = $thread.pop();$var23 = $thread.pop();var$6 = $thread.pop();$var39 = $thread.pop();$var15 = $thread.pop();$var1_0 = $thread.pop();$var29 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$worldObj.$isRemote) {
            $var1 = $this.$animTime * 3.1415927410125732 * 2.0;
            $var29 = nms_MathHelper_SIN_TABLE.data;
            $var1_0 = $var29[($var1 * 10430.3779296875 + 16384.0 | 0) & 65535];
            if ($var29[($this.$prevAnimTime * 3.1415927410125732 * 2.0 * 10430.3779296875 + 16384.0 | 0) & 65535] <= (-0.30000001192092896) && $var1_0 >= (-0.30000001192092896)) {
                $var15 = $this.$rand;
                $var15.$seed = Long_and(Long_add(Long_mul($var15.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            }
        }
        $this.$prevAnimTime = $this.$animTime;
        $var15 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var39 = jl_Integer_integerCache.data[134];
        if ($var39 === null) {
            $var15 = $var15.$elementData.data[0];
            while ($var15 !== null && $var15.$key !== null) {
                $var15 = $var15.$next3;
            }
        } else {
            var$6 = $var39.$value;
            $var29 = $var15.$elementData.data;
            $var15 = $var29[var$6 & ($var29.length - 1 | 0)];
            while ($var15 !== null) {
                if ($var15.$origKeyHash == var$6) {
                    $var23 = $var15.$key;
                    if ($var39 !== $var23 && !($var39 === $var23 ? 1 : $var23 instanceof jl_Integer && $var23.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var15 = $var15.$next3;
            }
        }
        $var15 = $var15 === null ? null : $var15.$value0;
        if ($var15.$watchedObject.$value3 <= 0.0) {
            $var15 = $this.$rand;
            var$8 = Long_and(Long_add(Long_mul($var15.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var15.$seed = var$8;
            var$8 = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var15.$seed = var$8;
            $var15.$seed = Long_and(Long_add(Long_mul(var$8, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var15 = $this.$worldObj;
            var$6 = 0;
            a: {
                while (true) {
                    $var25 = $rt_compare(var$6, $var15.$worldAccesses.$size0);
                    if ($var25 >= 0)
                        break;
                    if (var$6 < 0)
                        break a;
                    if ($var25 >= 0)
                        break a;
                    var$6 = var$6 + 1 | 0;
                }
                return;
            }
            $var15 = new jl_IndexOutOfBoundsException;
            $var15.$suppressionEnabled = 1;
            $var15.$writableStackTrace = 1;
            $rt_throw($var15);
        }
        $ptr = 1;
    case 1:
        nms_EntityDragon_updateDragonEnderCrystal($this);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$motionX;
        $var10 = $var10 * $var10;
        $var4 = $this.$motionZ;
        $var1 = 0.20000000298023224 / (jl_Math_sqrt($var10 + $var4 * $var4) * 10.0 + 1.0) * jl_Math_powImpl(2.0, $this.$motionY);
        if (!$this.$slowed)
            $this.$animTime = $this.$animTime + $var1;
        else
            $this.$animTime = $this.$animTime + $var1 * 0.5;
        $var1 = $this.$rotationYaw % 360.0;
        if ($var1 >= 180.0)
            $var1 = $var1 - 360.0;
        if ($var1 < (-180.0))
            $var1 = $var1 + 360.0;
        b: {
            $this.$rotationYaw = $var1;
            var$6 = $this.$ringBufferIndex;
            if (var$6 < 0) {
                $var25 = 0;
                while (true) {
                    $var29 = $this.$ringBuffer.data;
                    if ($var25 >= $var29.length)
                        break b;
                    $var29[$var25].data[0] = $var1;
                    $var29[$var25].data[1] = $this.$posY;
                    $var25 = $var25 + 1 | 0;
                }
            }
        }
        var$6 = var$6 + 1 | 0;
        $this.$ringBufferIndex = var$6;
        $var29 = $this.$ringBuffer.data;
        if (var$6 == $var29.length)
            $this.$ringBufferIndex = 0;
        var$6 = $this.$ringBufferIndex;
        $var9 = $var29[var$6].data;
        $var10 = $var1;
        $var9[0] = $var10;
        $var29 = $var29[var$6].data;
        $var4 = $this.$posY;
        $var29[1] = $var4;
        if ($this.$worldObj.$isRemote) {
            var$6 = $this.$newPosRotationIncrements;
            if (var$6 > 0) {
                $var12 = $this.$posX;
                $var26 = $this.$newPosX - $var12;
                $var6 = var$6;
                $var26 = $var12 + $var26 / $var6;
                $var4 = $var4 + ($this.$newPosY - $var4) / $var6;
                $var12 = $this.$posZ;
                $var6_0 = $var12 + ($this.$newPosZ - $var12) / $var6;
                $var8 = ($this.$newRotationYaw - $var10) % 360.0;
                if ($var8 >= 180.0)
                    $var8 = $var8 - 360.0;
                if ($var8 < (-180.0))
                    $var8 = $var8 + 360.0;
                $this.$rotationYaw = $var10 + $var8 / $var6;
                $var10 = $this.$rotationPitch;
                $this.$rotationPitch = $var10 + ($this.$newRotationPitch - $var10) / $var6;
                $this.$newPosRotationIncrements = var$6 - 1 | 0;
                nms_Entity_setPosition($this, $var26, $var4, $var6_0);
                $var1 = $this.$rotationYaw;
                $var17 = $this.$rotationPitch;
                $this.$rotationYaw = $var1 % 360.0;
                $this.$rotationPitch = $var17 % 360.0;
            }
            $this.$renderYawOffset = $this.$rotationYaw;
            $var15 = $this.$dragonPartHead;
            $var15.$height0 = 3.0;
            $var15.$width = 3.0;
            $var15 = $this.$dragonPartTail1;
            $var15.$height0 = 2.0;
            $var15.$width = 2.0;
            $var15 = $this.$dragonPartTail2;
            $var15.$height0 = 2.0;
            $var15.$width = 2.0;
            $var15 = $this.$dragonPartTail3;
            $var15.$height0 = 2.0;
            $var15.$width = 2.0;
            $var15 = $this.$dragonPartBody;
            $var15.$height0 = 3.0;
            $var15.$width = 5.0;
            $var15 = $this.$dragonPartWing1;
            $var15.$height0 = 2.0;
            $var15.$width = 4.0;
            $var15 = $this.$dragonPartWing2;
            $var15.$height0 = 3.0;
            $var15.$width = 4.0;
            $var2 = ((nms_EntityDragon_getMovementOffsets($this, 5, 1.0)).data[1] - (nms_EntityDragon_getMovementOffsets($this, 10, 1.0)).data[1]) * 10.0 / 180.0 * 3.1415927410125732;
            $var29 = nms_MathHelper_SIN_TABLE.data;
            $var1 = $var2 * 10430.3779296875;
            $var3 = $var29[($var1 + 16384.0 | 0) & 65535];
            $var27 =  -$var29[($var1 | 0) & 65535];
            $var17 = $this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
            $var28 = $var29[($var17 | 0) & 65535];
            $var7 = $var29[($var17 + 16384.0 | 0) & 65535];
            $var15 = $this.$dragonPartBody;
            $ptr = 2;
            continue main;
        }
        $var10 = $this.$targetX;
        $var12 = $this.$posX;
        $var26 = $var10 - $var12;
        $var4 = $this.$targetY - $var4;
        $var6 = $this.$targetZ;
        $var14 = $this.$posZ;
        $var6 = $var6 - $var14;
        $var11 = $var26 * $var26;
        $var8 = $var11 + $var4 * $var4;
        $var13 = $var6 * $var6;
        $var8 = $var8 + $var13;
        $var15 = $this.$target;
        if ($var15 === null) {
            $this.$targetX = $var10 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 2.0;
            $this.$targetZ = $this.$targetZ + nle_EaglercraftRandom_nextGaussian($this.$rand) * 2.0;
        } else {
            $var10 = $var15.$posX;
            $this.$targetX = $var10;
            $var16 = $var15.$posZ;
            $this.$targetZ = $var16;
            $var10 = $var10 - $var12;
            $var12 = $var16 - $var14;
            $var16 = 0.4000000059604645 + jl_Math_sqrt($var10 * $var10 + $var12 * $var12) / 80.0 - 1.0;
            if ($var16 > 10.0)
                $var16 = 10.0;
            $this.$targetY = $this.$target.$boundingBox0.$minY0 + $var16;
        }
        if (!(!$this.$forceNewTarget && $var8 >= 100.0 && $var8 <= 22500.0 && !$this.$isCollidedHorizontally && !$this.$isCollidedVertically))
            nms_EntityDragon_setNewTarget($this);
        $var10 = $var4 / jl_Math_sqrt($var11 + $var13);
        $var4 = (-0.6000000238418579);
        if ($var10 >= $var4)
            $var4 = $var10;
        $var10 = 0.6000000238418579;
        if ($var4 <= $var10)
            $var10 = $var4;
        $this.$motionY = $this.$motionY + $var10 * 0.10000000149011612;
        $var1 = $this.$rotationYaw % 360.0;
        if ($var1 >= 180.0)
            $var1 = $var1 - 360.0;
        if ($var1 < (-180.0))
            $var1 = $var1 + 360.0;
        $this.$rotationYaw = $var1;
        $var13 = (180.0 - jl_Math_atan2($var26, $var6) * 180.0 / 3.141592653589793 - $this.$rotationYaw) % 360.0;
        if ($var13 >= 180.0)
            $var13 = $var13 - 360.0;
        if ($var13 < (-180.0))
            $var13 = $var13 + 360.0;
        if ($var13 > 50.0)
            $var13 = 50.0;
        if ($var13 < (-50.0))
            $var13 = (-50.0);
        $var15 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$targetX - $this.$posX, $this.$targetY - $this.$posY, $this.$targetZ - $this.$posZ));
        $var39 = $this.$worldObj.$vecPool;
        $var1 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
        $var29 = nms_MathHelper_SIN_TABLE.data;
        $var17 = $var1 * 10430.3779296875;
        $var39 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($var39, $var29[($var17 | 0) & 65535], $this.$motionY,  -$var29[($var17 + 16384.0 | 0) & 65535]));
        $var17 = ($var39.$xCoord * $var15.$xCoord + $var39.$yCoord * $var15.$yCoord + $var39.$zCoord * $var15.$zCoord + 0.5) / 1.5;
        if ($var17 < 0.0)
            $var17 = 0.0;
        $this.$randomYawVelocity = $this.$randomYawVelocity * 0.800000011920929;
        $var10 = $this.$motionX;
        $var10 = $var10 * $var10;
        $var4 = $this.$motionZ;
        $var18 = jl_Math_sqrt($var10 + $var4 * $var4) * 1.0 + 1.0;
        $var10 = $this.$motionX;
        $var10 = $var10 * $var10;
        $var4 = $this.$motionZ;
        $var19 = jl_Math_sqrt($var10 + $var4 * $var4) * 1.0 + 1.0;
        if ($var19 > 40.0)
            $var19 = 40.0;
        $var1 = $this.$randomYawVelocity + $var13 * 0.699999988079071 / $var19 / $var18;
        $this.$randomYawVelocity = $var1;
        $this.$rotationYaw = $this.$rotationYaw + $var1 * 0.10000000149011612;
        $var21 = 2.0 / ($var19 + 1.0);
        nms_Entity_moveFlying($this, 0.0, (-1.0), 0.05999999865889549 * ($var17 * $var21 + 1.0 - $var21));
        if (!$this.$slowed) {
            $var10 = $this.$motionX;
            $var4 = $this.$motionY;
            $var12 = $this.$motionZ;
            $ptr = 15;
            continue main;
        }
        $var10 = $this.$motionX * 0.800000011920929;
        $var4 = $this.$motionY * 0.800000011920929;
        $var12 = $this.$motionZ * 0.800000011920929;
        $ptr = 16;
        continue main;
    case 2:
        nms_Entity_onEntityUpdate($var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $this.$dragonPartBody;
        $var10 = $this.$posX + $var28 * 0.5;
        $var4 = $this.$posY;
        $var12 = $this.$posZ - $var7 * 0.5;
        $var15.$posX = $var10;
        $var15.$prevPosX = $var10;
        $var15.$lastTickPosX = $var10;
        $var4 = $var4 + $var15.$yOffset;
        $var15.$posY = $var4;
        $var15.$prevPosY = $var4;
        $var15.$lastTickPosY = $var4;
        $var15.$posZ = $var12;
        $var15.$prevPosZ = $var12;
        $var15.$lastTickPosZ = $var12;
        $var15.$rotationYaw = 0.0;
        $var15.$rotationPitch = 0.0;
        nms_Entity_setPosition($var15, $var10, $var4, $var12);
        $var15 = $this.$dragonPartWing1;
        $ptr = 3;
    case 3:
        nms_Entity_onEntityUpdate($var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $this.$dragonPartWing1;
        $var10 = $this.$posX;
        $var4 = $var7 * 4.5;
        $var10 = $var10 + $var4;
        $var12 = $this.$posY + 2.0;
        $var26 = $this.$posZ;
        $var6 = $var28 * 4.5;
        $var26 = $var26 + $var6;
        $var15.$posX = $var10;
        $var15.$prevPosX = $var10;
        $var15.$lastTickPosX = $var10;
        $var12 = $var12 + $var15.$yOffset;
        $var15.$posY = $var12;
        $var15.$prevPosY = $var12;
        $var15.$lastTickPosY = $var12;
        $var15.$posZ = $var26;
        $var15.$prevPosZ = $var26;
        $var15.$lastTickPosZ = $var26;
        $var15.$rotationYaw = 0.0;
        $var15.$rotationPitch = 0.0;
        nms_Entity_setPosition($var15, $var10, $var12, $var26);
        $var15 = $this.$dragonPartWing2;
        $ptr = 4;
    case 4:
        nms_Entity_onEntityUpdate($var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $this.$dragonPartWing2;
        $var10 = $this.$posX - $var4;
        $var4 = $this.$posY + 2.0;
        $var12 = $this.$posZ - $var6;
        $var15.$posX = $var10;
        $var15.$prevPosX = $var10;
        $var15.$lastTickPosX = $var10;
        $var4 = $var4 + $var15.$yOffset;
        $var15.$posY = $var4;
        $var15.$prevPosY = $var4;
        $var15.$lastTickPosY = $var4;
        $var15.$posZ = $var12;
        $var15.$prevPosZ = $var12;
        $var15.$lastTickPosZ = $var12;
        $var15.$rotationYaw = 0.0;
        $var15.$rotationPitch = 0.0;
        nms_Entity_setPosition($var15, $var10, $var4, $var12);
        $var39 = $this.$worldObj;
        if (!$var39.$isRemote && !$this.$hurtTime) {
            $var15 = $this.$dragonPartWing1.$boundingBox0;
            $var26 = $var15.$minX0 - 4.0;
            $var6 = $var15.$minY0 - 2.0;
            $var14 = $var15.$minZ0 - 4.0;
            $var10 = $var15.$maxX0 + 4.0;
            $var4 = $var15.$maxY + 2.0;
            $var12 = $var15.$maxZ0 + 4.0;
            $var32 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$6 = $var32.$nextPoolIndex;
            $var15 = $var32.$listAABB;
            $var30 = $var15.$size0;
            $var25 = $rt_compare(var$6, $var30);
            if ($var25 >= 0) {
                $var23 = new nms_AxisAlignedBB;
                $var23.$minX0 = $var26;
                $var23.$minY0 = $var6;
                $var23.$minZ0 = $var14;
                $var23.$maxX0 = $var10;
                $var23.$maxY = $var4;
                $var23.$maxZ0 = $var12;
                ju_ArrayList_ensureCapacity($var15, $var30 + 1 | 0);
                $var29 = $var15.$array.data;
                $var25 = $var15.$size0;
                $var15.$size0 = $var25 + 1 | 0;
                $var29[$var25] = $var23;
                $var15.$modCount = $var15.$modCount + 1 | 0;
            } else if (var$6 >= 0 && $var25 < 0) {
                $var23 = $var15.$array.data[var$6];
                $var23.$minX0 = $var26;
                $var23.$minY0 = $var6;
                $var23.$minZ0 = $var14;
                $var23.$maxX0 = $var10;
                $var23.$maxY = $var4;
                $var23.$maxZ0 = $var12;
            } else {
                $var15 = new jl_IndexOutOfBoundsException;
                $var15.$suppressionEnabled = 1;
                $var15.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var15);
                $rt_throw($var15);
            }
            $var32.$nextPoolIndex = $var32.$nextPoolIndex + 1 | 0;
            $var23.$minX0 = $var23.$minX0 + 0.0;
            $var23.$minY0 = $var23.$minY0 + (-2.0);
            $var23.$minZ0 = $var23.$minZ0 + 0.0;
            $var23.$maxX0 = $var23.$maxX0 + 0.0;
            $var23.$maxY = $var23.$maxY + (-2.0);
            $var23.$maxZ0 = $var23.$maxZ0 + 0.0;
            $var15 = null;
            $ptr = 8;
            continue main;
        }
        var$33 = (nms_EntityDragon_getMovementOffsets($this, 5, 1.0)).data;
        $var29 = (nms_EntityDragon_getMovementOffsets($this, 0, 1.0)).data;
        $var1 = $this.$rotationYaw * 3.1415927410125732 / 180.0 - $this.$randomYawVelocity * 0.009999999776482582;
        $var9 = nms_MathHelper_SIN_TABLE.data;
        $var17 = $var1 * 10430.3779296875;
        $var31 = $var9[($var17 | 0) & 65535];
        $var33 = $var9[($var17 + 16384.0 | 0) & 65535];
        $var15 = $this.$dragonPartHead;
        $ptr = 5;
    case 5:
        nms_Entity_onEntityUpdate($var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $this.$dragonPartHead;
        $var10 = $this.$posX + $var31 * 5.5 * $var3;
        $var4 = $this.$posY + ($var29[1] - var$33[1]) * 1.0 + $var27 * 5.5;
        $var12 = $this.$posZ - $var33 * 5.5 * $var3;
        $var15.$posX = $var10;
        $var15.$prevPosX = $var10;
        $var15.$lastTickPosX = $var10;
        $var4 = $var4 + $var15.$yOffset;
        $var15.$posY = $var4;
        $var15.$prevPosY = $var4;
        $var15.$lastTickPosY = $var4;
        $var15.$posZ = $var12;
        $var15.$prevPosZ = $var12;
        $var15.$lastTickPosZ = $var12;
        $var15.$rotationYaw = 0.0;
        $var15.$rotationPitch = 0.0;
        nms_Entity_setPosition($var15, $var10, $var4, $var12);
        $var30 = 0;
        $var18 = $var28 * 1.5;
        $var21 = $var7 * 1.5;
        if ($var30 >= 3) {
            if ($this.$worldObj.$isRemote)
                return;
            $var15 = $this.$dragonPartHead.$boundingBox0;
            $ptr = 6;
            continue main;
        }
        $var32 = null;
        if (!$var30)
            $var32 = $this.$dragonPartTail1;
        if ($var30 == 1)
            $var32 = $this.$dragonPartTail2;
        if ($var30 == 2)
            $var32 = $this.$dragonPartTail3;
        $var9 = (nms_EntityDragon_getMovementOffsets($this, 12 + ($var30 * 2 | 0) | 0, 1.0)).data;
        $var22 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
        $var10 = ($var9[0] - var$33[0]) % 360.0;
        if ($var10 >= 180.0)
            $var10 = $var10 - 360.0;
        if ($var10 < (-180.0))
            $var10 = $var10 + 360.0;
        $var35 = $var22 + $var10 * 3.1415927410125732 / 180.0 * 1.0;
        $var29 = nms_MathHelper_SIN_TABLE.data;
        $var17 = $var35 * 10430.3779296875;
        $var37 = $var29[($var17 | 0) & 65535];
        $var36 = $var29[($var17 + 16384.0 | 0) & 65535];
        $var38 = 1.5;
        $var30 = $var30 + 1 | 0;
        $var40 = $var30 * 2.0;
        $ptr = 13;
        continue main;
    case 6:
        $tmp = nms_EntityDragon_destroyBlocksInAABB($this, $var15);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        $var15 = $this.$dragonPartBody.$boundingBox0;
        $ptr = 7;
    case 7:
        $tmp = nms_EntityDragon_destroyBlocksInAABB($this, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $tmp;
        $this.$slowed = var$6 | $var25;
        return;
    case 8:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var39, $this, $var23, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        $ptr = 9;
    case 9:
        nms_EntityDragon_collideWithEntities($this, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $this.$worldObj;
        $var39 = $this.$dragonPartWing2.$boundingBox0;
        $var26 = $var39.$minX0 - 4.0;
        $var6 = $var39.$minY0 - 2.0;
        $var14 = $var39.$minZ0 - 4.0;
        $var10 = $var39.$maxX0 + 4.0;
        $var4 = $var39.$maxY + 2.0;
        $var12 = $var39.$maxZ0 + 4.0;
        $var32 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = $var32.$nextPoolIndex;
        $var39 = $var32.$listAABB;
        $var30 = $var39.$size0;
        $var25 = $rt_compare(var$6, $var30);
        if ($var25 >= 0) {
            $var23 = new nms_AxisAlignedBB;
            $var23.$minX0 = $var26;
            $var23.$minY0 = $var6;
            $var23.$minZ0 = $var14;
            $var23.$maxX0 = $var10;
            $var23.$maxY = $var4;
            $var23.$maxZ0 = $var12;
            ju_ArrayList_ensureCapacity($var39, $var30 + 1 | 0);
            $var29 = $var39.$array.data;
            $var25 = $var39.$size0;
            $var39.$size0 = $var25 + 1 | 0;
            $var29[$var25] = $var23;
            $var39.$modCount = $var39.$modCount + 1 | 0;
        } else if (var$6 >= 0 && $var25 < 0) {
            $var23 = $var39.$array.data[var$6];
            $var23.$minX0 = $var26;
            $var23.$minY0 = $var6;
            $var23.$minZ0 = $var14;
            $var23.$maxX0 = $var10;
            $var23.$maxY = $var4;
            $var23.$maxZ0 = $var12;
        } else {
            $var15 = new jl_IndexOutOfBoundsException;
            $var15.$suppressionEnabled = 1;
            $var15.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var15);
            $rt_throw($var15);
        }
        $var32.$nextPoolIndex = $var32.$nextPoolIndex + 1 | 0;
        $var23.$minX0 = $var23.$minX0 + 0.0;
        $var23.$minY0 = $var23.$minY0 + (-2.0);
        $var23.$minZ0 = $var23.$minZ0 + 0.0;
        $var23.$maxX0 = $var23.$maxX0 + 0.0;
        $var23.$maxY = $var23.$maxY + (-2.0);
        $var23.$maxZ0 = $var23.$maxZ0 + 0.0;
        $var39 = null;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var15, $this, $var23, $var39);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        $ptr = 11;
    case 11:
        nms_EntityDragon_collideWithEntities($this, $var15);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $this.$worldObj;
        $var39 = $this.$dragonPartHead.$boundingBox0;
        $var26 = $var39.$minX0 - 1.0;
        $var6 = $var39.$minY0 - 1.0;
        $var14 = $var39.$minZ0 - 1.0;
        $var10 = $var39.$maxX0 + 1.0;
        $var4 = $var39.$maxY + 1.0;
        $var12 = $var39.$maxZ0 + 1.0;
        $var32 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$6 = $var32.$nextPoolIndex;
        $var39 = $var32.$listAABB;
        $var30 = $var39.$size0;
        $var25 = $rt_compare(var$6, $var30);
        if ($var25 >= 0) {
            $var23 = new nms_AxisAlignedBB;
            $var23.$minX0 = $var26;
            $var23.$minY0 = $var6;
            $var23.$minZ0 = $var14;
            $var23.$maxX0 = $var10;
            $var23.$maxY = $var4;
            $var23.$maxZ0 = $var12;
            ju_ArrayList_ensureCapacity($var39, $var30 + 1 | 0);
            $var29 = $var39.$array.data;
            $var25 = $var39.$size0;
            $var39.$size0 = $var25 + 1 | 0;
            $var29[$var25] = $var23;
            $var39.$modCount = $var39.$modCount + 1 | 0;
        } else if (var$6 >= 0 && $var25 < 0) {
            $var23 = $var39.$array.data[var$6];
            $var23.$minX0 = $var26;
            $var23.$minY0 = $var6;
            $var23.$minZ0 = $var14;
            $var23.$maxX0 = $var10;
            $var23.$maxY = $var4;
            $var23.$maxZ0 = $var12;
        } else {
            $var15 = new jl_IndexOutOfBoundsException;
            $var15.$suppressionEnabled = 1;
            $var15.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var15);
            $rt_throw($var15);
        }
        $var32.$nextPoolIndex = $var32.$nextPoolIndex + 1 | 0;
        $var39 = null;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var15, $this, $var23, $var39);
        if ($rt_suspending()) {
            break main;
        }
        $var32 = $tmp;
        var$6 = 0;
        while (true) {
            $var25 = $rt_compare(var$6, $var32.$size0);
            if ($var25 >= 0) {
                var$33 = (nms_EntityDragon_getMovementOffsets($this, 5, 1.0)).data;
                $var29 = (nms_EntityDragon_getMovementOffsets($this, 0, 1.0)).data;
                $var1 = $this.$rotationYaw * 3.1415927410125732 / 180.0 - $this.$randomYawVelocity * 0.009999999776482582;
                $var9 = nms_MathHelper_SIN_TABLE.data;
                $var17 = $var1 * 10430.3779296875;
                $var31 = $var9[($var17 | 0) & 65535];
                $var33 = $var9[($var17 + 16384.0 | 0) & 65535];
                $var15 = $this.$dragonPartHead;
                $ptr = 5;
                continue main;
            }
            if (var$6 < 0)
                break;
            if ($var25 >= 0)
                break;
            $var15 = $var32.$array.data[var$6];
            if ($var15 instanceof nms_EntityLivingBase) {
                $var39 = new nms_EntityDamageSource;
                $var39.$hungerDamage = 0.30000001192092896;
                $var39.$damageType = $rt_s(2288);
                $var39.$damageSourceEntity = $this;
                $var1 = 10.0;
                $ptr = 14;
                continue main;
            }
            var$6 = var$6 + 1 | 0;
        }
        $var15 = new jl_IndexOutOfBoundsException;
        $var15.$suppressionEnabled = 1;
        $var15.$writableStackTrace = 1;
        $rt_throw($var15);
    case 13:
        nms_Entity_onEntityUpdate($var32);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$posX - ($var18 + $var37 * $var40) * $var3;
        $var4 = $this.$posY + ($var9[1] - var$33[1]) * 1.0 - ($var40 + $var38) * $var27 + 1.5;
        $var12 = $this.$posZ + ($var21 + $var36 * $var40) * $var3;
        $var32.$posX = $var10;
        $var32.$prevPosX = $var10;
        $var32.$lastTickPosX = $var10;
        $var4 = $var4 + $var32.$yOffset;
        $var32.$posY = $var4;
        $var32.$prevPosY = $var4;
        $var32.$lastTickPosY = $var4;
        $var32.$posZ = $var12;
        $var32.$prevPosZ = $var12;
        $var32.$lastTickPosZ = $var12;
        $var32.$rotationYaw = 0.0;
        $var32.$rotationPitch = 0.0;
        nms_Entity_setPosition($var32, $var10, $var4, $var12);
        if ($var30 >= 3) {
            if ($this.$worldObj.$isRemote)
                return;
            $var15 = $this.$dragonPartHead.$boundingBox0;
            $ptr = 6;
            continue main;
        }
        $var32 = null;
        if (!$var30)
            $var32 = $this.$dragonPartTail1;
        if ($var30 == 1)
            $var32 = $this.$dragonPartTail2;
        if ($var30 == 2)
            $var32 = $this.$dragonPartTail3;
        $var9 = (nms_EntityDragon_getMovementOffsets($this, 12 + ($var30 * 2 | 0) | 0, 1.0)).data;
        $var22 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
        $var10 = ($var9[0] - var$33[0]) % 360.0;
        if ($var10 >= 180.0)
            $var10 = $var10 - 360.0;
        if ($var10 < (-180.0))
            $var10 = $var10 + 360.0;
        $var35 = $var22 + $var10 * 3.1415927410125732 / 180.0 * 1.0;
        $var29 = nms_MathHelper_SIN_TABLE.data;
        $var17 = $var35 * 10430.3779296875;
        $var37 = $var29[($var17 | 0) & 65535];
        $var36 = $var29[($var17 + 16384.0 | 0) & 65535];
        $var38 = 1.5;
        $var30 = $var30 + 1 | 0;
        $var40 = $var30 * 2.0;
        continue main;
    case 14:
        $var15.$attackEntityFrom($var39, $var1);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            var$6 = var$6 + 1 | 0;
            $var25 = $rt_compare(var$6, $var32.$size0);
            if ($var25 >= 0) {
                var$33 = (nms_EntityDragon_getMovementOffsets($this, 5, 1.0)).data;
                $var29 = (nms_EntityDragon_getMovementOffsets($this, 0, 1.0)).data;
                $var1 = $this.$rotationYaw * 3.1415927410125732 / 180.0 - $this.$randomYawVelocity * 0.009999999776482582;
                $var9 = nms_MathHelper_SIN_TABLE.data;
                $var17 = $var1 * 10430.3779296875;
                $var31 = $var9[($var17 | 0) & 65535];
                $var33 = $var9[($var17 + 16384.0 | 0) & 65535];
                $var15 = $this.$dragonPartHead;
                $ptr = 5;
                continue main;
            }
            if (var$6 < 0)
                break;
            if ($var25 >= 0)
                break;
            $var15 = $var32.$array.data[var$6];
            if (!($var15 instanceof nms_EntityLivingBase))
                continue;
            else {
                $var39 = new nms_EntityDamageSource;
                $var39.$hungerDamage = 0.30000001192092896;
                $var39.$damageType = $rt_s(2288);
                $var39.$damageSourceEntity = $this;
                $var1 = 10.0;
                continue main;
            }
        }
        $var15 = new jl_IndexOutOfBoundsException;
        $var15.$suppressionEnabled = 1;
        $var15.$writableStackTrace = 1;
        $rt_throw($var15);
    case 15:
        nms_Entity_moveEntity($this, $var10, $var4, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$motionX, $this.$motionY, $this.$motionZ));
        $var1 = 0.800000011920929 + 0.15000000596046448 * ($var23.$xCoord * $var39.$xCoord + $var23.$yCoord * $var39.$yCoord + $var23.$zCoord * $var39.$zCoord + 1.0) / 2.0;
        $var10 = $this.$motionX;
        $var4 = $var1;
        $this.$motionX = $var10 * $var4;
        $this.$motionZ = $this.$motionZ * $var4;
        $this.$motionY = $this.$motionY * 0.9100000262260437;
        $this.$renderYawOffset = $this.$rotationYaw;
        $var15 = $this.$dragonPartHead;
        $var15.$height0 = 3.0;
        $var15.$width = 3.0;
        $var15 = $this.$dragonPartTail1;
        $var15.$height0 = 2.0;
        $var15.$width = 2.0;
        $var15 = $this.$dragonPartTail2;
        $var15.$height0 = 2.0;
        $var15.$width = 2.0;
        $var15 = $this.$dragonPartTail3;
        $var15.$height0 = 2.0;
        $var15.$width = 2.0;
        $var15 = $this.$dragonPartBody;
        $var15.$height0 = 3.0;
        $var15.$width = 5.0;
        $var15 = $this.$dragonPartWing1;
        $var15.$height0 = 2.0;
        $var15.$width = 4.0;
        $var15 = $this.$dragonPartWing2;
        $var15.$height0 = 3.0;
        $var15.$width = 4.0;
        $var2 = ((nms_EntityDragon_getMovementOffsets($this, 5, 1.0)).data[1] - (nms_EntityDragon_getMovementOffsets($this, 10, 1.0)).data[1]) * 10.0 / 180.0 * 3.1415927410125732;
        $var29 = nms_MathHelper_SIN_TABLE.data;
        $var1 = $var2 * 10430.3779296875;
        $var3 = $var29[($var1 + 16384.0 | 0) & 65535];
        $var27 =  -$var29[($var1 | 0) & 65535];
        $var17 = $this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
        $var28 = $var29[($var17 | 0) & 65535];
        $var7 = $var29[($var17 + 16384.0 | 0) & 65535];
        $var15 = $this.$dragonPartBody;
        $ptr = 2;
        continue main;
    case 16:
        nms_Entity_moveEntity($this, $var10, $var4, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var23 = nms_Vec3_normalize(nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$motionX, $this.$motionY, $this.$motionZ));
        $var1 = 0.800000011920929 + 0.15000000596046448 * ($var23.$xCoord * $var39.$xCoord + $var23.$yCoord * $var39.$yCoord + $var23.$zCoord * $var39.$zCoord + 1.0) / 2.0;
        $var10 = $this.$motionX;
        $var4 = $var1;
        $this.$motionX = $var10 * $var4;
        $this.$motionZ = $this.$motionZ * $var4;
        $this.$motionY = $this.$motionY * 0.9100000262260437;
        $this.$renderYawOffset = $this.$rotationYaw;
        $var15 = $this.$dragonPartHead;
        $var15.$height0 = 3.0;
        $var15.$width = 3.0;
        $var15 = $this.$dragonPartTail1;
        $var15.$height0 = 2.0;
        $var15.$width = 2.0;
        $var15 = $this.$dragonPartTail2;
        $var15.$height0 = 2.0;
        $var15.$width = 2.0;
        $var15 = $this.$dragonPartTail3;
        $var15.$height0 = 2.0;
        $var15.$width = 2.0;
        $var15 = $this.$dragonPartBody;
        $var15.$height0 = 3.0;
        $var15.$width = 5.0;
        $var15 = $this.$dragonPartWing1;
        $var15.$height0 = 2.0;
        $var15.$width = 4.0;
        $var15 = $this.$dragonPartWing2;
        $var15.$height0 = 3.0;
        $var15.$width = 4.0;
        $var2 = ((nms_EntityDragon_getMovementOffsets($this, 5, 1.0)).data[1] - (nms_EntityDragon_getMovementOffsets($this, 10, 1.0)).data[1]) * 10.0 / 180.0 * 3.1415927410125732;
        $var29 = nms_MathHelper_SIN_TABLE.data;
        $var1 = $var2 * 10430.3779296875;
        $var3 = $var29[($var1 + 16384.0 | 0) & 65535];
        $var27 =  -$var29[($var1 | 0) & 65535];
        $var17 = $this.$rotationYaw * 3.1415927410125732 / 180.0 * 10430.3779296875;
        $var28 = $var29[($var17 | 0) & 65535];
        $var7 = $var29[($var17 + 16384.0 | 0) & 65535];
        $var15 = $this.$dragonPartBody;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var29, $var1_0, $var15, $var39, var$6, $var23, var$8, $var25, $var10, $var4, $var9, $var12, $var26, $var6, $var6_0, $var8, $var17, $var2, $var3, $var27, $var28, $var7, $var14, $var11, $var13, $var16, $var18, $var19, $var21, $var32, $var30, var$33, $var31, $var33, $var22, $var35, $var37, $var36, $var38, $var40, $ptr);
},
nms_EntityDragon_updateDragonEnderCrystal = $this => {
    let $var3, $var7, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var6$index, $var8, var$16, var$17, var$18, var$19, $var4, $var6$index_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6$index_0 = $thread.pop();$var4 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var8 = $thread.pop();$var6$index = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$healingEnderCrystal;
        if ($var3 !== null) {
            if (!$var3.$isDead) {
                if (!($this.$ticksExisted % 10 | 0)) {
                    $var3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var7 = jl_Integer_integerCache.data[134];
                    if ($var7 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        var$3 = $var7.$value;
                        var$4 = $var3.$elementData.data;
                        $var3 = var$4[var$3 & (var$4.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == var$3) {
                                $var2 = $var3.$key;
                                if ($var7 !== $var2 && !($var7 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$3 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    var$6 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value3;
                    $var3 = nms_SharedMonsterAttributes_maxHealth;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    $var7 = $this.$attributeMap.$attributes;
                    if ($var3 === null) {
                        $var7 = $var7.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        var$7 = jl_String_hashCode($var3.$field_111115_a);
                        var$4 = $var7.$elementData.data;
                        $var7 = var$4[var$7 & (var$4.length - 1 | 0)];
                        while ($var7 !== null && !($var7.$origKeyHash == var$7 && ju_HashMap_areEqualKeys($var3, $var7.$key))) {
                            $var7 = $var7.$next3;
                        }
                    }
                    $var3 = $var7 === null ? null : $var7.$value0;
                    if ($var3.$field_111133_g) {
                        $var3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var3);
                        $var3.$field_111133_g = 0;
                    }
                    if (var$6 < $var3.$field_111139_h) {
                        $var3 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var7 = jl_Integer_integerCache.data[134];
                        if ($var7 === null) {
                            $var3 = $var3.$elementData.data[0];
                            while ($var3 !== null && $var3.$key !== null) {
                                $var3 = $var3.$next3;
                            }
                        } else {
                            var$3 = $var7.$value;
                            var$4 = $var3.$elementData.data;
                            $var3 = var$4[var$3 & (var$4.length - 1 | 0)];
                            while ($var3 !== null) {
                                if ($var3.$origKeyHash == var$3) {
                                    $var2 = $var3.$key;
                                    if ($var7 !== $var2 && !($var7 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$3 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var3 = $var3.$next3;
                            }
                        }
                        $var3 = $var3 === null ? null : $var3.$value0;
                        var$6 = $var3.$watchedObject.$value3 + 1.0;
                        $var3 = $this.$dataWatcher;
                        var$8 = 0.0;
                        $var2 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var7 = $this.$attributeMap.$attributes;
                        if ($var2 === null)
                            $var7 = ju_HashMap_findNullKeyEntry($var7);
                        else {
                            var$9 = nms_BaseAttribute_hashCode($var2);
                            $var7 = ju_HashMap_findNonNullKeyEntry($var7, $var2, var$9 & ($var7.$elementData.data.length - 1 | 0), var$9);
                        }
                        $var7 = $var7 === null ? null : $var7.$value0;
                        if ($var7.$field_111133_g) {
                            $var7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var7);
                            $var7.$field_111133_g = 0;
                        }
                        var$10 = $var7.$field_111139_h;
                        if (var$6 >= var$8)
                            var$8 = var$6 <= var$10 ? var$6 : var$10;
                        var$11 = new jl_Float;
                        var$11.$value3 = var$8;
                        $var7 = $var3.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$12 = jl_Integer_integerCache.data[134];
                        if (var$12 === null) {
                            $var2 = $var7.$elementData.data[0];
                            while ($var2 !== null && $var2.$key !== null) {
                                $var2 = $var2.$next3;
                            }
                        } else {
                            var$9 = var$12.$value;
                            var$4 = $var7.$elementData.data;
                            $var2 = var$4[var$9 & (var$4.length - 1 | 0)];
                            while ($var2 !== null) {
                                if ($var2.$origKeyHash == var$9) {
                                    $var7 = $var2.$key;
                                    if (var$12 !== $var7 && !(var$12 === $var7 ? 1 : $var7 instanceof jl_Integer && $var7.$value == var$9 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                $var2 = $var2.$next3;
                            }
                        }
                        $var2 = $var2 === null ? null : $var2.$value0;
                        $var7 = $var2.$watchedObject;
                        if (var$11 === $var7)
                            var$3 = 1;
                        else
                            a: {
                                if ($var7 instanceof jl_Float) {
                                    var$6 = var$11.$value3;
                                    var$8 = $var7.$value3;
                                    if (var$6 !== var$6 ? (var$8 === var$8 ? 0 : 1) : $rt_floatToRawIntBits(var$6) != $rt_floatToRawIntBits(var$8) ? 0 : 1) {
                                        var$3 = 1;
                                        break a;
                                    }
                                }
                                var$3 = 0;
                            }
                        if (!var$3) {
                            $var2.$watchedObject = var$11;
                            $var2.$watched = 1;
                            $var3.$objectChanged = 1;
                        }
                    }
                }
            } else if ($this.$worldObj.$isRemote)
                $this.$healingEnderCrystal = null;
            else {
                $var3 = $this.$dragonPartHead;
                $var2 = new nms_DamageSource;
                $var2.$hungerDamage = 0.30000001192092896;
                $var2.$damageType = $rt_s(2583);
                $var2.$difficultyScaled = 1;
                $var2.$explosion = 1;
                var$6 = 10.0;
                $ptr = 1;
                continue main;
            }
        }
        $var3 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$13;
        var$7 = Long_lo(Long_shru(var$13, 17));
        while (true) {
            $var6$index = var$7 % 10 | 0;
            if (((var$7 - $var6$index | 0) + 9 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$13;
            var$7 = Long_lo(Long_shru(var$13, 17));
        }
        if ($var6$index)
            return;
        $var3 = $this.$worldObj;
        $var7 = $rt_cls(nms_EntityEnderCrystal);
        $var2 = $this.$boundingBox0;
        $var8 = $var2.$minX0 - 32.0;
        var$16 = $var2.$minY0 - 32.0;
        var$17 = $var2.$minZ0 - 32.0;
        var$18 = $var2.$maxX0 + 32.0;
        var$19 = $var2.$maxY + 32.0;
        $var4 = $var2.$maxZ0 + 32.0;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$3 = var$11.$nextPoolIndex;
        $var2 = var$11.$listAABB;
        var$7 = $var2.$size0;
        var$9 = $rt_compare(var$3, var$7);
        if (var$9 >= 0) {
            var$12 = new nms_AxisAlignedBB;
            var$12.$minX0 = $var8;
            var$12.$minY0 = var$16;
            var$12.$minZ0 = var$17;
            var$12.$maxX0 = var$18;
            var$12.$maxY = var$19;
            var$12.$maxZ0 = $var4;
            ju_ArrayList_ensureCapacity($var2, var$7 + 1 | 0);
            var$4 = $var2.$array.data;
            var$9 = $var2.$size0;
            $var2.$size0 = var$9 + 1 | 0;
            var$4[var$9] = var$12;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        } else if (var$3 >= 0 && var$9 < 0) {
            var$12 = $var2.$array.data[var$3];
            var$12.$minX0 = $var8;
            var$12.$minY0 = var$16;
            var$12.$minZ0 = var$17;
            var$12.$maxX0 = var$18;
            var$12.$maxY = var$19;
            var$12.$maxZ0 = $var4;
        } else {
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var3);
            $rt_throw($var3);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        $var2 = null;
        $ptr = 2;
        continue main;
    case 1:
        nms_EntityDragon_attackEntityFromPart($this, $var3, $var2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $this.$healingEnderCrystal = null;
        $var3 = $this.$rand;
        var$13 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$13;
        var$7 = Long_lo(Long_shru(var$13, 17));
        while (true) {
            $var6$index = var$7 % 10 | 0;
            if (((var$7 - $var6$index | 0) + 9 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var3.$seed = var$13;
            var$7 = Long_lo(Long_shru(var$13, 17));
        }
        if ($var6$index)
            return;
        $var3 = $this.$worldObj;
        $var7 = $rt_cls(nms_EntityEnderCrystal);
        $var2 = $this.$boundingBox0;
        $var8 = $var2.$minX0 - 32.0;
        var$16 = $var2.$minY0 - 32.0;
        var$17 = $var2.$minZ0 - 32.0;
        var$18 = $var2.$maxX0 + 32.0;
        var$19 = $var2.$maxY + 32.0;
        $var4 = $var2.$maxZ0 + 32.0;
        var$11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$3 = var$11.$nextPoolIndex;
        $var2 = var$11.$listAABB;
        var$7 = $var2.$size0;
        var$9 = $rt_compare(var$3, var$7);
        if (var$9 >= 0) {
            var$12 = new nms_AxisAlignedBB;
            var$12.$minX0 = $var8;
            var$12.$minY0 = var$16;
            var$12.$minZ0 = var$17;
            var$12.$maxX0 = var$18;
            var$12.$maxY = var$19;
            var$12.$maxZ0 = $var4;
            ju_ArrayList_ensureCapacity($var2, var$7 + 1 | 0);
            var$4 = $var2.$array.data;
            var$9 = $var2.$size0;
            $var2.$size0 = var$9 + 1 | 0;
            var$4[var$9] = var$12;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        } else if (var$3 >= 0 && var$9 < 0) {
            var$12 = $var2.$array.data[var$3];
            var$12.$minX0 = $var8;
            var$12.$minY0 = var$16;
            var$12.$minZ0 = var$17;
            var$12.$maxX0 = var$18;
            var$12.$maxY = var$19;
            var$12.$maxZ0 = $var4;
        } else {
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var3);
            $rt_throw($var3);
        }
        var$11.$nextPoolIndex = var$11.$nextPoolIndex + 1 | 0;
        $var2 = null;
        $ptr = 2;
    case 2:
        $tmp = nms_World_selectEntitiesWithinAABB($var3, $var7, var$12, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = null;
        $var4 = 1.7976931348623157E308;
        $var6$index = 0;
        var$9 = $var2.$modCount;
        var$7 = $var2.$size();
        while ($var6$index >= var$7 ? 0 : 1) {
            if (var$9 < $var2.$modCount) {
                $var3 = new ju_ConcurrentModificationException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            $var6$index_0 = $var6$index + 1 | 0;
            $var7 = $var2.$get($var6$index);
            $var8 = $var7.$posX - $this.$posX;
            var$16 = $var7.$posY - $this.$posY;
            var$17 = $var7.$posZ - $this.$posZ;
            $var8 = $var8 * $var8 + var$16 * var$16 + var$17 * var$17;
            if ($var8 < $var4) {
                $var4 = $var8;
                $var3 = $var7;
            }
            $var6$index = $var6$index_0;
        }
        $this.$healingEnderCrystal = $var3;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var7, var$3, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var6$index, $var8, var$16, var$17, var$18, var$19, $var4, $var6$index_0, $ptr);
},
nms_EntityDragon_collideWithEntities = ($this, $par1List) => {
    let $var7, $var2, $var4, $var6$index, var$6, var$7, $var6$index_0, $var8, $var10, $var12, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var6$index_0 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var6$index = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var7 = $thread.pop();$par1List = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $this.$dragonPartBody.$boundingBox0;
        $var2 = ($var7.$minX0 + $var7.$maxX0) / 2.0;
        $var4 = ($var7.$minZ0 + $var7.$maxZ0) / 2.0;
        $var6$index = 0;
        var$6 = $par1List.$modCount;
        var$7 = $par1List.$size();
        while ($var6$index >= var$7 ? 0 : 1) {
            if (var$6 < $par1List.$modCount) {
                $par1List = new ju_ConcurrentModificationException;
                $par1List.$suppressionEnabled = 1;
                $par1List.$writableStackTrace = 1;
                $rt_throw($par1List);
            }
            $var6$index_0 = $var6$index + 1 | 0;
            $var7 = $par1List.$get($var6$index);
            if ($var7 instanceof nms_EntityLivingBase) {
                $var8 = $var7.$posX - $var2;
                $var10 = $var7.$posZ - $var4;
                $var12 = $var8 * $var8 + $var10 * $var10;
                $var8 = $var8 / $var12 * 4.0;
                var$12 = 0.20000000298023224;
                $var12 = $var10 / $var12 * 4.0;
                $ptr = 1;
                continue main;
            }
            $var6$index = $var6$index_0;
        }
        return;
    case 1:
        $var7.$addVelocity($var8, var$12, $var12);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var6$index = $var6$index_0;
            if (!($var6$index >= var$7 ? 0 : 1))
                break;
            if (var$6 < $par1List.$modCount) {
                $par1List = new ju_ConcurrentModificationException;
                $par1List.$suppressionEnabled = 1;
                $par1List.$writableStackTrace = 1;
                $rt_throw($par1List);
            }
            $var6$index_0 = $var6$index + 1 | 0;
            $var7 = $par1List.$get($var6$index);
            if (!($var7 instanceof nms_EntityLivingBase))
                continue;
            else {
                $var8 = $var7.$posX - $var2;
                $var10 = $var7.$posZ - $var4;
                $var12 = $var8 * $var8 + $var10 * $var10;
                $var8 = $var8 / $var12 * 4.0;
                var$12 = 0.20000000298023224;
                $var12 = $var10 / $var12 * 4.0;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1List, $var7, $var2, $var4, $var6$index, var$6, var$7, $var6$index_0, $var8, $var10, $var12, var$12, $ptr);
},
nms_EntityDragon_setNewTarget = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $var4, $var2, $var6;
    a: {
        b: {
            $this.$forceNewTarget = 0;
            var$1 = $this.$rand;
            var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$2;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31))) {
                var$3 = $this.$worldObj.$playerEntities;
                var$4 = var$3.$size0;
                if (!(var$4 ? 0 : 1)) {
                    var$2 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$1.$seed = var$2;
                    var$5 = Long_lo(Long_shru(var$2, 17));
                    var$6 = var$4 - 1 | 0;
                    if (!(var$4 & var$6))
                        var$7 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$4), Long_fromInt(var$5)), 31));
                    else
                        while (true) {
                            var$7 = var$5 % var$4 | 0;
                            if (((var$5 - var$7 | 0) + var$6 | 0) >= 0)
                                break;
                            var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$1.$seed = var$2;
                            var$5 = Long_lo(Long_shru(var$2, 17));
                        }
                    if (var$7 < 0)
                        break a;
                    if (var$7 >= var$4)
                        break a;
                    $this.$target = var$3.$array.data[var$7];
                    break b;
                }
            }
            while (true) {
                $this.$targetX = 0.0;
                var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$2;
                $var4 = 70.0 + Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 50.0;
                $this.$targetY = $var4;
                $this.$targetZ = 0.0;
                var$2 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$2;
                $var2 = 0.0 + Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 120.0 - 60.0;
                $this.$targetX = $var2;
                var$2 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$2;
                $var6 = 0.0 + Long_lo(Long_shru(var$2, 24)) / 1.6777216E7 * 120.0 - 60.0;
                $this.$targetZ = $var6;
                $var2 = $this.$posX - $var2;
                $var4 = $this.$posY - $var4;
                $var6 = $this.$posZ - $var6;
                if (!($var2 * $var2 + $var4 * $var4 + $var6 * $var6 <= 100.0 ? 0 : 1))
                    continue;
                else
                    break;
            }
            $this.$target = null;
        }
        return;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    $rt_throw(var$1);
},
nms_EntityDragon_destroyBlocksInAABB = ($this, $par1AxisAlignedBB) => {
    let var$2, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, var$11, var$12, var$13, $var11, $var12, var$16, $var13, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var13 = $thread.pop();var$16 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1AxisAlignedBB = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1AxisAlignedBB.$minX0;
        $var2 = var$2 | 0;
        if (var$2 < $var2)
            $var2 = $var2 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$minY0;
        $var3 = var$2 | 0;
        if (var$2 < $var3)
            $var3 = $var3 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$minZ0;
        $var4 = var$2 | 0;
        if (var$2 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$maxX0;
        $var5 = var$2 | 0;
        if (var$2 < $var5)
            $var5 = $var5 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$maxY;
        $var6 = var$2 | 0;
        if (var$2 < $var6)
            $var6 = $var6 - 1 | 0;
        var$2 = $par1AxisAlignedBB.$maxZ0;
        $var7 = var$2 | 0;
        if (var$2 < $var7)
            $var7 = $var7 - 1 | 0;
        $var8 = 0;
        $var9 = 0;
        var$11 = $rt_s(1417);
        var$12 = $rt_s(1417);
        var$13 = $rt_s(1417);
        while ($var2 <= $var5) {
            $var11 = $var3;
            while ($var11 <= $var6) {
                $var12 = $var4;
                if ($var12 <= $var7) {
                    $par1AxisAlignedBB = $this.$worldObj;
                    $ptr = 1;
                    continue main;
                }
                $var11 = $var11 + 1 | 0;
            }
            $var2 = $var2 + 1 | 0;
        }
        a: {
            if ($var9) {
                $par1AxisAlignedBB = $this.$rand;
                var$16 = Long_and(Long_add(Long_mul($par1AxisAlignedBB.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB.$seed = var$16;
                var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB.$seed = var$16;
                $par1AxisAlignedBB.$seed = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB = $this.$worldObj;
                $var9 = 0;
                while (true) {
                    $var12 = $rt_compare($var9, $par1AxisAlignedBB.$worldAccesses.$size0);
                    if ($var12 >= 0)
                        break;
                    if ($var9 < 0)
                        break a;
                    if ($var12 >= 0)
                        break a;
                    $var9 = $var9 + 1 | 0;
                }
            }
            return $var8;
        }
        $par1AxisAlignedBB = new jl_IndexOutOfBoundsException;
        $par1AxisAlignedBB.$suppressionEnabled = 1;
        $par1AxisAlignedBB.$writableStackTrace = 1;
        $rt_throw($par1AxisAlignedBB);
    case 1:
        $tmp = nms_World_getBlockId($par1AxisAlignedBB, $var2, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if ($var13) {
            nms_Block_$callClinit();
            if ($var13 != nms_Block_obsidian.$blockID && $var13 != nms_Block_whiteStone.$blockID && $var13 != nms_Block_bedrock.$blockID) {
                b: {
                    var$18 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                    if (var$11 !== var$12) {
                        var$19 = var$11.$nativeString.length;
                        var$20 = var$12.$nativeString.length;
                        if (var$19 < var$20)
                            var$20 = var$19;
                        $var13 = 0;
                        c: {
                            while (true) {
                                if ($var13 >= var$20) {
                                    var$11.$nativeString.length;
                                    var$12.$nativeString.length;
                                    break b;
                                }
                                if ($var13 < 0)
                                    break c;
                                if ($var13 >= var$11.$nativeString.length)
                                    break c;
                                var$21 = var$11.$nativeString.charCodeAt($var13);
                                if ($var13 < 0)
                                    break;
                                if ($var13 >= var$12.$nativeString.length)
                                    break;
                                if (var$21 - var$12.$nativeString.charCodeAt($var13) | 0)
                                    break b;
                                $var13 = $var13 + 1 | 0;
                            }
                            $par1AxisAlignedBB = new jl_StringIndexOutOfBoundsException;
                            jl_IndexOutOfBoundsException__init_($par1AxisAlignedBB);
                            $rt_throw($par1AxisAlignedBB);
                        }
                        $par1AxisAlignedBB = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1AxisAlignedBB);
                        $rt_throw($par1AxisAlignedBB);
                    }
                }
                d: {
                    e: {
                        f: while (true) {
                            if (var$18 === null) {
                                var$18 = null;
                                break d;
                            }
                            g: {
                                $par1AxisAlignedBB = var$18.$key0;
                                if (var$13 === $par1AxisAlignedBB)
                                    $var13 = 0;
                                else {
                                    var$19 = var$13.$nativeString.length;
                                    var$20 = $par1AxisAlignedBB.$nativeString.length;
                                    if (var$19 < var$20)
                                        var$20 = var$19;
                                    var$19 = 0;
                                    while (true) {
                                        if (var$19 >= var$20) {
                                            $var13 = var$13.$nativeString.length - $par1AxisAlignedBB.$nativeString.length | 0;
                                            break g;
                                        }
                                        if (var$19 < 0)
                                            break e;
                                        if (var$19 >= var$13.$nativeString.length)
                                            break e;
                                        var$21 = var$13.$nativeString.charCodeAt(var$19);
                                        if (var$19 < 0)
                                            break f;
                                        if (var$19 >= $par1AxisAlignedBB.$nativeString.length)
                                            break f;
                                        $var13 = var$21 - $par1AxisAlignedBB.$nativeString.charCodeAt(var$19) | 0;
                                        if ($var13)
                                            break;
                                        var$19 = var$19 + 1 | 0;
                                    }
                                }
                            }
                            if (!$var13)
                                break d;
                            var$18 = $var13 >= 0 ? var$18.$right : var$18.$left;
                        }
                        $par1AxisAlignedBB = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($par1AxisAlignedBB);
                        $rt_throw($par1AxisAlignedBB);
                    }
                    $par1AxisAlignedBB = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1AxisAlignedBB);
                    $rt_throw($par1AxisAlignedBB);
                }
                $par1AxisAlignedBB = var$18 === null ? null : var$18.$value2;
                if ($par1AxisAlignedBB === null ? 0 : $par1AxisAlignedBB.$valueBoolean) {
                    $par1AxisAlignedBB = $this.$worldObj;
                    $var13 = 0;
                    var$19 = 0;
                    var$21 = 3;
                    $ptr = 2;
                    continue main;
                }
            }
            $var8 = 1;
        }
        $var12 = $var12 + 1 | 0;
        h: while (true) {
            if ($var12 <= $var7) {
                $par1AxisAlignedBB = $this.$worldObj;
                continue main;
            }
            $var11 = $var11 + 1 | 0;
            while ($var11 > $var6) {
                $var2 = $var2 + 1 | 0;
                if ($var2 > $var5)
                    break h;
                $var11 = $var3;
            }
            $var12 = $var4;
        }
        i: {
            if ($var9) {
                $par1AxisAlignedBB = $this.$rand;
                var$16 = Long_and(Long_add(Long_mul($par1AxisAlignedBB.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB.$seed = var$16;
                var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB.$seed = var$16;
                $par1AxisAlignedBB.$seed = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB = $this.$worldObj;
                $var9 = 0;
                while (true) {
                    $var12 = $rt_compare($var9, $par1AxisAlignedBB.$worldAccesses.$size0);
                    if ($var12 >= 0)
                        break;
                    if ($var9 < 0)
                        break i;
                    if ($var12 >= 0)
                        break i;
                    $var9 = $var9 + 1 | 0;
                }
            }
            return $var8;
        }
        $par1AxisAlignedBB = new jl_IndexOutOfBoundsException;
        $par1AxisAlignedBB.$suppressionEnabled = 1;
        $par1AxisAlignedBB.$writableStackTrace = 1;
        $rt_throw($par1AxisAlignedBB);
    case 2:
        $tmp = nms_World_setBlock($par1AxisAlignedBB, $var2, $var11, $var12, $var13, var$19, var$21);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var9 = !$var13 && !$var9 ? 0 : 1;
        $var12 = $var12 + 1 | 0;
        b: while (true) {
            if ($var12 <= $var7) {
                $par1AxisAlignedBB = $this.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var11 = $var11 + 1 | 0;
            while ($var11 > $var6) {
                $var2 = $var2 + 1 | 0;
                if ($var2 > $var5)
                    break b;
                $var11 = $var3;
            }
            $var12 = $var4;
        }
        j: {
            if ($var9) {
                $par1AxisAlignedBB = $this.$rand;
                var$16 = Long_and(Long_add(Long_mul($par1AxisAlignedBB.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB.$seed = var$16;
                var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB.$seed = var$16;
                $par1AxisAlignedBB.$seed = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1AxisAlignedBB = $this.$worldObj;
                $var9 = 0;
                while (true) {
                    $var12 = $rt_compare($var9, $par1AxisAlignedBB.$worldAccesses.$size0);
                    if ($var12 >= 0)
                        break;
                    if ($var9 < 0)
                        break j;
                    if ($var12 >= 0)
                        break j;
                    $var9 = $var9 + 1 | 0;
                }
            }
            return $var8;
        }
        $par1AxisAlignedBB = new jl_IndexOutOfBoundsException;
        $par1AxisAlignedBB.$suppressionEnabled = 1;
        $par1AxisAlignedBB.$writableStackTrace = 1;
        $rt_throw($par1AxisAlignedBB);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1AxisAlignedBB, var$2, $var2, $var3, $var4, $var5, $var6, $var7, $var8, $var9, var$11, var$12, var$13, $var11, $var12, var$16, $var13, var$18, var$19, var$20, var$21, $ptr);
},
nms_EntityDragon_attackEntityFromPart = ($this, $par1EntityDragonPart, $par2DamageSource, $par3) => {
    let $var4, var$5, $var6, $var5, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2DamageSource = $thread.pop();$par1EntityDragonPart = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1EntityDragonPart !== $this.$dragonPartHead)
            $par3 = $par3 / 4.0 + 1.0;
        $var4 = $this.$rotationYaw * 3.1415927410125732 / 180.0;
        var$5 = nms_MathHelper_SIN_TABLE.data;
        $var6 = $var4 * 10430.3779296875;
        $var5 = var$5[($var6 | 0) & 65535];
        $var6 = var$5[($var6 + 16384.0 | 0) & 65535];
        var$8 = $this.$posX + $var5 * 5.0;
        $par1EntityDragonPart = $this.$rand;
        var$9 = Long_and(Long_add(Long_mul($par1EntityDragonPart.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityDragonPart.$seed = var$9;
        $this.$targetX = var$8 + (Long_lo(Long_shru(var$9, 24)) / 1.6777216E7 - 0.5) * 2.0;
        var$8 = $this.$posY;
        var$10 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityDragonPart.$seed = var$10;
        $this.$targetY = var$8 + Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 * 3.0 + 1.0;
        var$8 = $this.$posZ - $var6 * 5.0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityDragonPart.$seed = var$10;
        $this.$targetZ = var$8 + (Long_lo(Long_shru(var$10, 24)) / 1.6777216E7 - 0.5) * 2.0;
        $this.$target = null;
        if (!($par2DamageSource.$getEntity() instanceof nms_EntityPlayer) && !$par2DamageSource.$explosion)
            return 1;
        $ptr = 1;
    case 1:
        nms_EntityLivingBase_attackEntityFrom($this, $par2DamageSource, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityDragonPart, $par2DamageSource, $par3, $var4, var$5, $var6, $var5, var$8, var$9, var$10, $ptr);
},
nms_EntityDragon_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    return 0;
},
nms_EntityDragon_onDeathUpdate = $this => {
    let $var4, var$2, var$3, $var5, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var4 = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var4 = $this.$deathTicks + 1 | 0;
            $this.$deathTicks = $var4;
            if ($var4 >= 180 && $var4 <= 200) {
                var$2 = $this.$rand;
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                var$3 = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                var$2.$seed = Long_and(Long_add(Long_mul(var$3, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2 = $this.$worldObj;
                $var5 = 0;
                while (true) {
                    var$5 = $rt_compare($var5, var$2.$worldAccesses.$size0);
                    if (var$5 >= 0)
                        break a;
                    if ($var5 < 0)
                        break;
                    if (var$5 >= 0)
                        break;
                    $var5 = $var5 + 1 | 0;
                }
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
        }
        b: {
            if (!$this.$worldObj.$isRemote) {
                if ($var4 > 150 && !($var4 % 5 | 0)) {
                    $var4 = 1000;
                    if ($var4 > 0) {
                        $var5 = nms_EntityXPOrb_getXPSplit($var4);
                        $var4 = $var4 - $var5 | 0;
                        var$2 = $this.$worldObj;
                        var$6 = new nms_EntityXPOrb;
                        var$7 = $this.$posX;
                        var$8 = $this.$posY;
                        var$9 = $this.$posZ;
                        $ptr = 4;
                        continue main;
                    }
                }
                if ($this.$deathTicks == 1) {
                    var$2 = $this.$worldObj;
                    $var4 = 1018;
                    $var5 = $this.$posX | 0;
                    var$10 = $this.$posY | 0;
                    var$11 = $this.$posZ | 0;
                    var$12 = 0;
                    var$13 = 0;
                    c: {
                        d: {
                            while (true) {
                                var$6 = var$2.$worldAccesses;
                                var$5 = $rt_compare(var$13, var$6.$size0);
                                if (var$5 >= 0)
                                    break;
                                if (var$13 < 0)
                                    break c;
                                if (var$5 >= 0)
                                    break c;
                                var$14 = var$6.$array.data[var$13].$mcServer.$serverConfigManager;
                                var$15 = new nms_Packet61DoorChange;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                var$15.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                var$15.$sfxID = $var4;
                                var$15.$posX1 = $var5;
                                var$15.$posY1 = var$10;
                                var$15.$posZ1 = var$11;
                                var$15.$auxData = var$12;
                                var$15.$disableRelativeVolume = 1;
                                var$5 = 0;
                                var$16 = var$15 instanceof nms_Packet3Chat;
                                var$17 = var$15;
                                while (true) {
                                    var$6 = var$14.$playerEntityList;
                                    var$18 = $rt_compare(var$5, var$6.$size0);
                                    if (var$18 >= 0)
                                        break;
                                    if (var$5 < 0)
                                        break d;
                                    if (var$18 >= 0)
                                        break d;
                                    e: {
                                        var$6 = var$6.$array.data[var$5].$playerNetServerHandler;
                                        if (var$16) {
                                            var$19 = var$6.$playerEntity.$chatVisibility;
                                            if (var$19 == 2)
                                                break e;
                                            if (var$19 == 1 && !var$17.$isServer)
                                                break e;
                                        }
                                        try {
                                            var$6 = var$6.$netManager;
                                            $ptr = 7;
                                            continue main;
                                        } catch ($$e) {
                                            $$je = $rt_wrapException($$e);
                                            if ($$je instanceof jl_Exception) {
                                                var$6 = $$je;
                                            } else {
                                                throw $$e;
                                            }
                                        }
                                        if (jl_System_errCache === null) {
                                            var$20 = new otcic_JSStderrPrintStream;
                                            ji_PrintStream__init_0(var$20, ji_ByteArrayOutputStream__init_());
                                            jl_System_errCache = var$20;
                                        }
                                        jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                                    }
                                    var$5 = var$5 + 1 | 0;
                                }
                                var$13 = var$13 + 1 | 0;
                            }
                            break b;
                        }
                        var$2 = new jl_IndexOutOfBoundsException;
                        jl_Throwable__init_(var$2);
                        $rt_throw(var$2);
                    }
                    var$2 = new jl_IndexOutOfBoundsException;
                    var$2.$suppressionEnabled = 1;
                    var$2.$writableStackTrace = 1;
                    $rt_throw(var$2);
                }
            }
        }
        var$9 = 0.0;
        var$7 = 0.10000000149011612;
        var$8 = 0.0;
        $ptr = 1;
    case 1:
        nms_Entity_moveEntity($this, var$9, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$21 = $this.$rotationYaw + 20.0;
        $this.$rotationYaw = var$21;
        $this.$renderYawOffset = var$21;
        if ($this.$deathTicks == 200 && !$this.$worldObj.$isRemote) {
            $var4 = 2000;
            if ($var4 > 0) {
                $var5 = nms_EntityXPOrb_getXPSplit($var4);
                $var4 = $var4 - $var5 | 0;
                var$2 = $this.$worldObj;
                var$6 = new nms_EntityXPOrb;
                var$7 = $this.$posX;
                var$8 = $this.$posY;
                var$9 = $this.$posZ;
                $ptr = 2;
                continue main;
            }
            var$7 = $this.$posX;
            var$5 = var$7 | 0;
            if (var$7 < var$5)
                var$5 = var$5 - 1 | 0;
            var$7 = $this.$posZ;
            $var5 = var$7 | 0;
            if (var$7 < $var5)
                $var5 = $var5 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        return;
    case 2:
        nms_EntityXPOrb__init_(var$6, var$2, var$7, var$8, var$9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld(var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if ($var4 > 0) {
            $var5 = nms_EntityXPOrb_getXPSplit($var4);
            $var4 = $var4 - $var5 | 0;
            var$2 = $this.$worldObj;
            var$6 = new nms_EntityXPOrb;
            var$7 = $this.$posX;
            var$8 = $this.$posY;
            var$9 = $this.$posZ;
            $ptr = 2;
            continue main;
        }
        var$7 = $this.$posX;
        var$5 = var$7 | 0;
        if (var$7 < var$5)
            var$5 = var$5 - 1 | 0;
        var$7 = $this.$posZ;
        $var5 = var$7 | 0;
        if (var$7 < $var5)
            $var5 = $var5 - 1 | 0;
        $ptr = 6;
        continue main;
    case 4:
        nms_EntityXPOrb__init_(var$6, var$2, var$7, var$8, var$9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        if ($var4 > 0) {
            $var5 = nms_EntityXPOrb_getXPSplit($var4);
            $var4 = $var4 - $var5 | 0;
            var$2 = $this.$worldObj;
            var$6 = new nms_EntityXPOrb;
            var$7 = $this.$posX;
            var$8 = $this.$posY;
            var$9 = $this.$posZ;
            $ptr = 4;
            continue main;
        }
        f: {
            if ($this.$deathTicks == 1) {
                var$2 = $this.$worldObj;
                $var4 = 1018;
                $var5 = $this.$posX | 0;
                var$10 = $this.$posY | 0;
                var$11 = $this.$posZ | 0;
                var$12 = 0;
                var$13 = 0;
                g: {
                    h: {
                        while (true) {
                            var$6 = var$2.$worldAccesses;
                            var$5 = $rt_compare(var$13, var$6.$size0);
                            if (var$5 >= 0)
                                break;
                            if (var$13 < 0)
                                break g;
                            if (var$5 >= 0)
                                break g;
                            var$14 = var$6.$array.data[var$13].$mcServer.$serverConfigManager;
                            var$15 = new nms_Packet61DoorChange;
                            nms_Packet_$callClinit();
                            nles_SysUtil_$callClinit();
                            var$15.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                            var$15.$sfxID = $var4;
                            var$15.$posX1 = $var5;
                            var$15.$posY1 = var$10;
                            var$15.$posZ1 = var$11;
                            var$15.$auxData = var$12;
                            var$15.$disableRelativeVolume = 1;
                            var$5 = 0;
                            var$16 = var$15 instanceof nms_Packet3Chat;
                            var$17 = var$15;
                            while (true) {
                                var$6 = var$14.$playerEntityList;
                                var$18 = $rt_compare(var$5, var$6.$size0);
                                if (var$18 >= 0)
                                    break;
                                if (var$5 < 0)
                                    break h;
                                if (var$18 >= 0)
                                    break h;
                                i: {
                                    var$6 = var$6.$array.data[var$5].$playerNetServerHandler;
                                    if (var$16) {
                                        var$19 = var$6.$playerEntity.$chatVisibility;
                                        if (var$19 == 2)
                                            break i;
                                        if (var$19 == 1 && !var$17.$isServer)
                                            break i;
                                    }
                                    try {
                                        var$6 = var$6.$netManager;
                                        $ptr = 7;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$6 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        var$20 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0(var$20, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = var$20;
                                    }
                                    jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                                }
                                var$5 = var$5 + 1 | 0;
                            }
                            var$13 = var$13 + 1 | 0;
                        }
                        break f;
                    }
                    var$2 = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_(var$2);
                    $rt_throw(var$2);
                }
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
        }
        var$9 = 0.0;
        var$7 = 0.10000000149011612;
        var$8 = 0.0;
        $ptr = 1;
        continue main;
    case 6:
        nms_EntityDragon_createEnderPortal($this, var$5, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isDead = 1;
        return;
    case 7:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$15);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$20 = jl_System_errCache;
            if (var$20 === null) {
                var$20 = new otcic_JSStderrPrintStream;
                var$22 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$20, var$22);
                jl_System_errCache = var$20;
            }
            var$20 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$20);
        }
        j: {
            b: while (true) {
                while (true) {
                    var$5 = var$5 + 1 | 0;
                    while (true) {
                        var$6 = var$14.$playerEntityList;
                        var$18 = $rt_compare(var$5, var$6.$size0);
                        if (var$18 < 0)
                            break;
                        var$13 = var$13 + 1 | 0;
                        var$6 = var$2.$worldAccesses;
                        var$5 = $rt_compare(var$13, var$6.$size0);
                        if (var$5 >= 0) {
                            var$9 = 0.0;
                            var$7 = 0.10000000149011612;
                            var$8 = 0.0;
                            $ptr = 1;
                            continue main;
                        }
                        if (var$13 < 0)
                            break j;
                        if (var$5 >= 0)
                            break j;
                        var$14 = var$6.$array.data[var$13].$mcServer.$serverConfigManager;
                        var$15 = new nms_Packet61DoorChange;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$15.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$15.$sfxID = $var4;
                        var$15.$posX1 = $var5;
                        var$15.$posY1 = var$10;
                        var$15.$posZ1 = var$11;
                        var$15.$auxData = var$12;
                        var$15.$disableRelativeVolume = 1;
                        var$5 = 0;
                        var$16 = var$15 instanceof nms_Packet3Chat;
                        var$17 = var$15;
                    }
                    if (var$5 < 0)
                        break b;
                    if (var$18 >= 0)
                        break b;
                    var$6 = var$6.$array.data[var$5].$playerNetServerHandler;
                    if (!var$16)
                        break;
                    var$19 = var$6.$playerEntity.$chatVisibility;
                    if (var$19 == 2)
                        continue;
                    if (var$19 != 1)
                        break;
                    if (var$17.$isServer)
                        break;
                }
                try {
                    var$6 = var$6.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$6 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$20 = jl_System_errCache;
                if (var$20 === null) {
                    var$20 = new otcic_JSStderrPrintStream;
                    var$22 = ji_ByteArrayOutputStream__init_();
                    ji_PrintStream__init_0(var$20, var$22);
                    jl_System_errCache = var$20;
                }
                var$20 = jl_System_errCache;
                jl_Throwable_printStackTrace(var$6, var$20);
            }
            var$2 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_(var$2);
            $rt_throw(var$2);
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var4, var$2, var$3, $var5, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_EntityDragon_createEnderPortal = ($this, $par1, $par2) => {
    let $var3, $var5, $var4, var$6, var$7, var$8, var$9, var$10, var$11, $var6, $var4_0, $var7, $var8, $var10, $var12, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var4_0 = $thread.pop();$var6 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 64;
        nms_BlockEndPortal_bossDefeated = 1;
        $var5 = 63;
        $var4 = $par1 - 4 | 0;
        var$6 = $par1 + 4 | 0;
        var$7 = $par2 - 4 | 0;
        var$8 = $par2 + 4 | 0;
        var$9 = 12.25;
        var$10 = 6.25;
        a: while (true) {
            if ($var5 > 96) {
                var$11 = $this.$worldObj;
                $var4 = 64;
                nms_Block_$callClinit();
                $var6 = nms_Block_bedrock.$blockID;
                $var4_0 = 0;
                var$6 = 3;
                $ptr = 1;
                continue main;
            }
            $var6 = $var4;
            while ($var6 <= var$6) {
                $var7 = var$7;
                while ($var7 <= var$8) {
                    $var8 = $var6 - $par1 | 0;
                    $var10 = $var7 - $par2 | 0;
                    $var12 = $var8 * $var8 + $var10 * $var10;
                    if ($var12 <= var$9) {
                        $var4_0 = $rt_compare($var5, $var3);
                        if ($var4_0 >= 0) {
                            if ($var4_0 > 0) {
                                var$18 = $this.$worldObj;
                                $var4_0 = 0;
                                var$19 = 0;
                                var$20 = 3;
                                $ptr = 10;
                                continue main;
                            }
                            if ($var12 <= var$10) {
                                var$18 = $this.$worldObj;
                                nms_Block_$callClinit();
                                $var4_0 = nms_Block_endPortal.$blockID;
                                var$19 = 0;
                                var$20 = 3;
                                $ptr = 12;
                                continue main;
                            }
                            var$18 = $this.$worldObj;
                            nms_Block_$callClinit();
                            $var4_0 = nms_Block_bedrock.$blockID;
                            var$19 = 0;
                            var$20 = 3;
                            $ptr = 13;
                            continue main;
                        }
                        if ($var12 <= var$10)
                            break a;
                    }
                    $var7 = $var7 + 1 | 0;
                }
                $var6 = $var6 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        var$18 = $this.$worldObj;
        nms_Block_$callClinit();
        $var4_0 = nms_Block_bedrock.$blockID;
        var$19 = 0;
        var$20 = 3;
        $ptr = 11;
        continue main;
    case 1:
        nms_World_setBlock(var$11, $par1, $var4, $par2, $var6, $var4_0, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var4 = 65;
        $var6 = nms_Block_bedrock.$blockID;
        $var4_0 = 0;
        var$6 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock(var$18, $par1, $var4, $par2, $var6, $var4_0, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var4 = 66;
        $var6 = nms_Block_bedrock.$blockID;
        $var4_0 = 0;
        var$6 = 3;
        $ptr = 3;
    case 3:
        nms_World_setBlock(var$18, $par1, $var4, $par2, $var6, $var4_0, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var6 = $par1 - 1 | 0;
        $var4_0 = nms_Block_torchWood.$blockID;
        var$6 = 0;
        var$7 = 3;
        $ptr = 4;
    case 4:
        nms_World_setBlock(var$18, $var6, $var4, $par2, $var4_0, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var6 = $par1 + 1 | 0;
        $var4_0 = nms_Block_torchWood.$blockID;
        var$6 = 0;
        var$7 = 3;
        $ptr = 5;
    case 5:
        nms_World_setBlock(var$18, $var6, $var4, $par2, $var4_0, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var6 = $par2 - 1 | 0;
        $var4_0 = nms_Block_torchWood.$blockID;
        var$6 = 0;
        var$7 = 3;
        $ptr = 6;
    case 6:
        nms_World_setBlock(var$18, $par1, $var4, $var6, $var4_0, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var6 = $par2 + 1 | 0;
        $var4_0 = nms_Block_torchWood.$blockID;
        var$6 = 0;
        var$7 = 3;
        $ptr = 7;
    case 7:
        nms_World_setBlock(var$18, $par1, $var4, $var6, $var4_0, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var4 = 67;
        $var6 = nms_Block_bedrock.$blockID;
        $var4_0 = 0;
        var$6 = 3;
        $ptr = 8;
    case 8:
        nms_World_setBlock(var$18, $par1, $var4, $par2, $var6, $var4_0, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$worldObj;
        $var4 = 68;
        $var6 = nms_Block_dragonEgg.$blockID;
        $var4_0 = 0;
        var$6 = 3;
        $ptr = 9;
    case 9:
        nms_World_setBlock(var$18, $par1, $var4, $par2, $var6, $var4_0, var$6);
        if ($rt_suspending()) {
            break main;
        }
        nms_BlockEndPortal_bossDefeated = 0;
        return;
    case 10:
        nms_World_setBlock(var$18, $var6, $var5, $var7, $var4_0, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var7 = $var7 + 1 | 0;
            while ($var7 > var$8) {
                $var6 = $var6 + 1 | 0;
                while ($var6 > var$6) {
                    $var5 = $var5 + 1 | 0;
                    if ($var5 > 96) {
                        var$11 = $this.$worldObj;
                        $var4 = 64;
                        nms_Block_$callClinit();
                        $var6 = nms_Block_bedrock.$blockID;
                        $var4_0 = 0;
                        var$6 = 3;
                        $ptr = 1;
                        continue main;
                    }
                    $var6 = $var4;
                }
                $var7 = var$7;
            }
            $var8 = $var6 - $par1 | 0;
            $var10 = $var7 - $par2 | 0;
            $var12 = $var8 * $var8 + $var10 * $var10;
            if ($var12 > var$9)
                continue;
            $var4_0 = $rt_compare($var5, $var3);
            if ($var4_0 >= 0) {
                if ($var4_0 > 0) {
                    var$18 = $this.$worldObj;
                    $var4_0 = 0;
                    var$19 = 0;
                    var$20 = 3;
                    continue main;
                }
                if ($var12 <= var$10) {
                    var$18 = $this.$worldObj;
                    nms_Block_$callClinit();
                    $var4_0 = nms_Block_endPortal.$blockID;
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 12;
                    continue main;
                }
                var$18 = $this.$worldObj;
                nms_Block_$callClinit();
                $var4_0 = nms_Block_bedrock.$blockID;
                var$19 = 0;
                var$20 = 3;
                $ptr = 13;
                continue main;
            }
            if ($var12 > var$10)
                continue;
            else
                break;
        }
        var$18 = $this.$worldObj;
        nms_Block_$callClinit();
        $var4_0 = nms_Block_bedrock.$blockID;
        var$19 = 0;
        var$20 = 3;
        $ptr = 11;
    case 11:
        nms_World_setBlock(var$18, $var6, $var5, $var7, $var4_0, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var7 = $var7 + 1 | 0;
            while ($var7 > var$8) {
                $var6 = $var6 + 1 | 0;
                while ($var6 > var$6) {
                    $var5 = $var5 + 1 | 0;
                    if ($var5 > 96) {
                        var$11 = $this.$worldObj;
                        $var4 = 64;
                        nms_Block_$callClinit();
                        $var6 = nms_Block_bedrock.$blockID;
                        $var4_0 = 0;
                        var$6 = 3;
                        $ptr = 1;
                        continue main;
                    }
                    $var6 = $var4;
                }
                $var7 = var$7;
            }
            $var8 = $var6 - $par1 | 0;
            $var10 = $var7 - $par2 | 0;
            $var12 = $var8 * $var8 + $var10 * $var10;
            if ($var12 > var$9)
                continue;
            $var4_0 = $rt_compare($var5, $var3);
            if ($var4_0 >= 0) {
                if ($var4_0 > 0) {
                    var$18 = $this.$worldObj;
                    $var4_0 = 0;
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 10;
                    continue main;
                }
                if ($var12 <= var$10) {
                    var$18 = $this.$worldObj;
                    nms_Block_$callClinit();
                    $var4_0 = nms_Block_endPortal.$blockID;
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 12;
                    continue main;
                }
                var$18 = $this.$worldObj;
                nms_Block_$callClinit();
                $var4_0 = nms_Block_bedrock.$blockID;
                var$19 = 0;
                var$20 = 3;
                $ptr = 13;
                continue main;
            }
            if ($var12 > var$10)
                continue;
            else
                break;
        }
        var$18 = $this.$worldObj;
        nms_Block_$callClinit();
        $var4_0 = nms_Block_bedrock.$blockID;
        var$19 = 0;
        var$20 = 3;
        continue main;
    case 12:
        nms_World_setBlock(var$18, $var6, $var5, $var7, $var4_0, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var7 = $var7 + 1 | 0;
            while ($var7 > var$8) {
                $var6 = $var6 + 1 | 0;
                while ($var6 > var$6) {
                    $var5 = $var5 + 1 | 0;
                    if ($var5 > 96) {
                        var$11 = $this.$worldObj;
                        $var4 = 64;
                        nms_Block_$callClinit();
                        $var6 = nms_Block_bedrock.$blockID;
                        $var4_0 = 0;
                        var$6 = 3;
                        $ptr = 1;
                        continue main;
                    }
                    $var6 = $var4;
                }
                $var7 = var$7;
            }
            $var8 = $var6 - $par1 | 0;
            $var10 = $var7 - $par2 | 0;
            $var12 = $var8 * $var8 + $var10 * $var10;
            if ($var12 > var$9)
                continue;
            $var4_0 = $rt_compare($var5, $var3);
            if ($var4_0 >= 0) {
                if ($var4_0 > 0) {
                    var$18 = $this.$worldObj;
                    $var4_0 = 0;
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 10;
                    continue main;
                }
                if ($var12 <= var$10) {
                    var$18 = $this.$worldObj;
                    nms_Block_$callClinit();
                    $var4_0 = nms_Block_endPortal.$blockID;
                    var$19 = 0;
                    var$20 = 3;
                    continue main;
                }
                var$18 = $this.$worldObj;
                nms_Block_$callClinit();
                $var4_0 = nms_Block_bedrock.$blockID;
                var$19 = 0;
                var$20 = 3;
                $ptr = 13;
                continue main;
            }
            if ($var12 > var$10)
                continue;
            else
                break;
        }
        var$18 = $this.$worldObj;
        nms_Block_$callClinit();
        $var4_0 = nms_Block_bedrock.$blockID;
        var$19 = 0;
        var$20 = 3;
        $ptr = 11;
        continue main;
    case 13:
        nms_World_setBlock(var$18, $var6, $var5, $var7, $var4_0, var$19, var$20);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var7 = $var7 + 1 | 0;
            while ($var7 > var$8) {
                $var6 = $var6 + 1 | 0;
                while ($var6 > var$6) {
                    $var5 = $var5 + 1 | 0;
                    if ($var5 > 96) {
                        var$11 = $this.$worldObj;
                        $var4 = 64;
                        nms_Block_$callClinit();
                        $var6 = nms_Block_bedrock.$blockID;
                        $var4_0 = 0;
                        var$6 = 3;
                        $ptr = 1;
                        continue main;
                    }
                    $var6 = $var4;
                }
                $var7 = var$7;
            }
            $var8 = $var6 - $par1 | 0;
            $var10 = $var7 - $par2 | 0;
            $var12 = $var8 * $var8 + $var10 * $var10;
            if ($var12 > var$9)
                continue;
            $var4_0 = $rt_compare($var5, $var3);
            if ($var4_0 >= 0) {
                if ($var4_0 > 0) {
                    var$18 = $this.$worldObj;
                    $var4_0 = 0;
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 10;
                    continue main;
                }
                if ($var12 <= var$10) {
                    var$18 = $this.$worldObj;
                    nms_Block_$callClinit();
                    $var4_0 = nms_Block_endPortal.$blockID;
                    var$19 = 0;
                    var$20 = 3;
                    $ptr = 12;
                    continue main;
                }
                var$18 = $this.$worldObj;
                nms_Block_$callClinit();
                $var4_0 = nms_Block_bedrock.$blockID;
                var$19 = 0;
                var$20 = 3;
                continue main;
            }
            if ($var12 > var$10)
                continue;
            else
                break;
        }
        var$18 = $this.$worldObj;
        nms_Block_$callClinit();
        $var4_0 = nms_Block_bedrock.$blockID;
        var$19 = 0;
        var$20 = 3;
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var3, $var5, $var4, var$6, var$7, var$8, var$9, var$10, var$11, $var6, $var4_0, $var7, $var8, $var10, $var12, var$18, var$19, var$20, $ptr);
},
nms_EntityDragon_despawnEntity = $this => {
    return;
},
nms_EntityDragon_getParts = $this => {
    return $this.$dragonPartArray;
},
nms_EntityDragon_canBeCollidedWith = $this => {
    return 0;
},
nms_EntityDragon_getLivingSound = $this => {
    return $rt_s(2584);
},
nms_EntityDragon_getHurtSound = $this => {
    return $rt_s(2585);
},
nms_EntityDragon_getSoundVolume = $this => {
    return 5.0;
},
nms_EntityList$_clinit_$lambda$_63_36 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_36__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_36__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_36();
    nms_EntityList$_clinit_$lambda$_63_36__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_36_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityDragon;
        $ptr = 1;
    case 1:
        nms_EntityDragon__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
};
function nms_EntityWither() {
    let a = this; nms_EntityMob.call(a);
    a.$field_82220_d = null;
    a.$field_82221_e = null;
    a.$field_82217_f = null;
    a.$field_82218_g = null;
    a.$field_82223_h = null;
    a.$field_82224_i = null;
    a.$field_82222_j = 0;
}
let nms_EntityWither_attackEntitySelector = null,
nms_EntityWither__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        $this.$experienceValue = 5;
        $this.$field_82220_d = $rt_createFloatArray(2);
        $this.$field_82221_e = $rt_createFloatArray(2);
        $this.$field_82217_f = $rt_createFloatArray(2);
        $this.$field_82218_g = $rt_createFloatArray(2);
        $this.$field_82223_h = $rt_createIntArray(2);
        $this.$field_82224_i = $rt_createIntArray(2);
        $par1World = nms_EntityLivingBase_getEntityAttribute($this, nms_SharedMonsterAttributes_maxHealth);
        if ($par1World.$field_111133_g) {
            $par1World.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($par1World);
            $par1World.$field_111133_g = 0;
        }
        nms_EntityLivingBase_setHealth($this, $par1World.$field_111139_h);
        var$2 = 0.8999999761581421;
        var$3 = 4.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$isImmuneToFire = 1;
        var$4 = $this.$navigator;
        var$4.$canSwim = 1;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAISwimming;
        var$5.$theEntity3 = $this;
        var$5.$mutexBits = 4;
        var$4.$canSwim = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 0;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIArrowAttack;
        var$5.$rangedAttackTime = (-1);
        if (!($this instanceof nms_EntityLivingBase)) {
            $par1World = new jl_IllegalArgumentException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $par1World.$message = $rt_s(2357);
            $rt_throw($par1World);
        }
        var$5.$rangedAttackEntityHost = $this;
        var$5.$entityHost = $this;
        var$5.$entityMoveSpeed = 1.0;
        var$5.$field_96561_g = 40;
        var$5.$maxRangedAttackTime = 40;
        var$5.$field_96562_i = 20.0;
        var$5.$field_82642_h = 400.0;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 2;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWander;
        var$5.$entity = $this;
        var$5.$speed = 1.0;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 5;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$9 = var$6.$size0;
        var$6.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAIWatchClosest;
        var$5.$theWatcher = $this;
        var$5.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$5.$maxDistanceForPlayer = 8.0;
        var$5.$field_75331_e = 0.019999999552965164;
        var$5.$mutexBits = 2;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 6;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$5 = new nms_EntityAILookIdle;
        var$5.$idleEntity = $this;
        var$5.$mutexBits = 3;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 7;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $par1World = $this.$targetTasks;
        var$5 = new nms_EntityAIHurtByTarget;
        var$5.$taskOwner = $this;
        var$5.$shouldCheckSight = 0;
        var$5.$nearbyOnly = 0;
        var$5.$entityCallsForHelp = 0;
        var$5.$mutexBits = 1;
        var$6 = $par1World.$taskEntries;
        var$4 = new nms_EntityAITaskEntry;
        var$4.$tasks = $par1World;
        var$4.$priority = 1;
        var$4.$action = var$5;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$4;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        var$5 = $this.$targetTasks;
        var$4 = new nms_EntityAINearestAttackableTarget;
        $par1World = nms_EntityWither_attackEntitySelector;
        var$4.$taskOwner = $this;
        var$4.$shouldCheckSight = 0;
        var$4.$nearbyOnly = 0;
        var$4.$targetClass = $rt_cls(nms_EntityLiving);
        var$4.$targetChance = 0;
        var$6 = new nms_EntityAINearestAttackableTargetSorter;
        var$6.$theEntity5 = $this;
        var$4.$theNearestAttackableTargetSorter = var$6;
        var$4.$mutexBits = 1;
        var$6 = new nms_EntityAINearestAttackableTargetSelector;
        var$6.$field_111102_d = var$4;
        var$6.$field_111103_c = $par1World;
        var$4.$targetEntitySelector = var$6;
        var$6 = var$5.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$5;
        $par1World.$priority = 2;
        $par1World.$action = var$4;
        ju_ArrayList_ensureCapacity(var$6, var$6.$size0 + 1 | 0);
        var$7 = var$6.$array.data;
        var$8 = var$6.$size0;
        var$6.$size0 = var$8 + 1 | 0;
        var$7[var$8] = $par1World;
        var$6.$modCount = var$6.$modCount + 1 | 0;
        $this.$experienceValue = 50;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityWither__init_0 = var_0 => {
    let var_1 = new nms_EntityWither();
    nms_EntityWither__init_(var_1, var_0);
    return var_1;
},
nms_EntityWither_entityInit = $this => {
    let var$1, var$2;
    var$1 = $this.$dataWatcher;
    jl_Integer_ensureIntegerCache();
    nms_DataWatcher_addObject(var$1, 7, jl_Integer_integerCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 8, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 9, jl_Byte_byteCache.data[128]);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Float;
    var$2.$value3 = 1.0;
    nms_DataWatcher_addObject(var$1, 6, var$2);
    nms_DataWatcher_addObject($this.$dataWatcher, 11, jl_Byte_byteCache.data[128]);
    nms_DataWatcher_addObject($this.$dataWatcher, 10, $rt_s(3));
    var$2 = $this.$dataWatcher;
    var$1 = new jl_Integer;
    var$1.$value = 0;
    nms_DataWatcher_addObject(var$2, 17, var$1);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 18, var$2);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 19, var$2);
    var$1 = $this.$dataWatcher;
    var$2 = new jl_Integer;
    var$2.$value = 0;
    nms_DataWatcher_addObject(var$1, 20, var$2);
},
nms_EntityWither_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7;
    nms_EntityLiving_writeEntityToNBT($this, $par1NBTTagCompound);
    var$2 = $this.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[148];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value;
    var$2 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2586);
    $par1NBTTagCompound.$data = var$7;
    ju_HashMap_putImpl(var$2, $rt_s(2586), $par1NBTTagCompound);
},
nms_EntityWither_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        nms_EntityLiving_readEntityFromNBT($this, $par1NBTTagCompound);
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2586).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2586).$nativeString.length)
                    break a;
                $rt_s(2586).$hashCode1 = (31 * $rt_s(2586).$hashCode1 | 0) + $rt_s(2586).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2586).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2586) !== var$6) {
                    if ($rt_s(2586) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2586).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2586) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2586).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2586).$nativeString.length)
                            break c;
                        $rt_s(2586).$hashCode1 = (31 * $rt_s(2586).$hashCode1 | 0) + $rt_s(2586).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2586).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    d: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2586) !== var$2) {
                            if ($rt_s(2586) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2586).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $par1NBTTagCompound = $this.$dataWatcher;
    if (var$3 >= (-128) && var$3 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$7 = jl_Integer_integerCache.data[var$3 + 128 | 0];
    } else {
        var$7 = new jl_Integer;
        var$7.$value = var$3;
    }
    var$2 = $par1NBTTagCompound.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$8 = jl_Integer_integerCache.data[148];
    if (var$8 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$8.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$8 !== var$6 && !(var$8 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$6 = var$2 === null ? null : var$2.$value0;
    var$2 = var$6.$watchedObject;
    if (!(var$7 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$7.$value ? 1 : 0)) {
        var$6.$watchedObject = var$7;
        var$6.$watched = 1;
        $par1NBTTagCompound.$objectChanged = 1;
    }
},
nms_EntityWither_getLivingSound = $this => {
    return $rt_s(2587);
},
nms_EntityWither_getHurtSound = $this => {
    return $rt_s(2588);
},
nms_EntityWither_getDeathSound = $this => {
    return $rt_s(2589);
},
nms_EntityWither_onLivingUpdate = $this => {
    let $var3, $var1, $var20, var$4, var$5, var$6, var$7, $var21, var$9, var$10, $var6, $var2, $var4, $var8, $var18, $var22, var$17, $var19, var$19, $var10, $var12, $var14, $var16, var$24, var$25, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();$var16 = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();var$19 = $thread.pop();$var19 = $thread.pop();var$17 = $thread.pop();$var22 = $thread.pop();$var18 = $thread.pop();$var8 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var6 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var21 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var20
        = $thread.pop();$var1 = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$motionY = $this.$motionY * 0.6000000238418579;
        if (!$this.$worldObj.$isRemote) {
            $var3 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var1 = jl_Integer_integerCache.data[145];
            if ($var1 === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                $var20 = $var1.$value;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var20 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var20) {
                        var$5 = $var3.$key;
                        if ($var1 !== var$5 && !($var1 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var20 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            if (($var3 === null ? null : $var3.$value0).$watchedObject.$value > 0) {
                $var3 = $this.$worldObj;
                $var1 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[145];
                if (var$6 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$7 = var$6.$value;
                    var$4 = $var1.$elementData.data;
                    $var1 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$7) {
                            var$5 = $var1.$key;
                            if (var$6 !== var$5 && !(var$6 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$7 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                $var20 = ($var1 === null ? null : $var1.$value0).$watchedObject.$value;
                $var3 = $var3.$entityIdMap;
                $var21 = $var20 ^ ($var20 >>> 20 | 0) ^ ($var20 >>> 12 | 0);
                var$9 = $var21 ^ ($var21 >>> 7 | 0) ^ ($var21 >>> 4 | 0);
                var$4 = $var3.$slots.data;
                $var3 = var$4[var$9 & (var$4.length - 1 | 0)];
                a: {
                    while ($var3 !== null) {
                        if ($var3.$hashEntry == $var20) {
                            $var3 = $var3.$valueEntry;
                            break a;
                        }
                        $var3 = $var3.$nextEntry0;
                    }
                    $var3 = null;
                }
                $var1 = $var3;
                if ($var1 !== null) {
                    b: {
                        if ($this.$posY >= $var1.$posY) {
                            $var3 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$6 = jl_Integer_integerCache.data[134];
                            if (var$6 === null) {
                                $var3 = $var3.$elementData.data[0];
                                while ($var3 !== null && $var3.$key !== null) {
                                    $var3 = $var3.$next3;
                                }
                            } else {
                                var$7 = var$6.$value;
                                var$4 = $var3.$elementData.data;
                                $var3 = var$4[var$7 & (var$4.length - 1 | 0)];
                                while ($var3 !== null) {
                                    if ($var3.$origKeyHash == var$7) {
                                        var$5 = $var3.$key;
                                        if (var$6 !== var$5 && !jl_Integer_equals(var$6, var$5) ? 0 : 1)
                                            break;
                                    }
                                    $var3 = $var3.$next3;
                                }
                            }
                            var$10 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value3;
                            $var3 = nms_SharedMonsterAttributes_maxHealth;
                            if ($this.$attributeMap === null)
                                $this.$attributeMap = nms_ServersideAttributeMap__init_();
                            var$5 = $this.$attributeMap.$attributes;
                            if ($var3 === null)
                                $var3 = ju_HashMap_findNullKeyEntry(var$5);
                            else {
                                $var21 = nms_BaseAttribute_hashCode($var3);
                                $var3 = ju_HashMap_findNonNullKeyEntry(var$5, $var3, $var21 & (var$5.$elementData.data.length - 1 | 0), $var21);
                            }
                            $var3 = $var3 === null ? null : $var3.$value0;
                            if ($var3.$field_111133_g) {
                                $var3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var3);
                                $var3.$field_111133_g = 0;
                            }
                            if (var$10 > $var3.$field_111139_h / 2.0 ? 0 : 1)
                                break b;
                            if ($this.$posY >= $var1.$posY + 5.0)
                                break b;
                        }
                        if ($this.$motionY < 0.0)
                            $this.$motionY = 0.0;
                        $var6 = $this.$motionY;
                        $this.$motionY = $var6 + (0.5 - $var6) * 0.6000000238418579;
                    }
                    $var2 = $var1.$posX - $this.$posX;
                    $var4 = $var1.$posZ - $this.$posZ;
                    $var6 = $var2 * $var2 + $var4 * $var4;
                    if ($var6 > 9.0) {
                        $var8 = jl_Math_sqrt($var6);
                        $var6 = $this.$motionX;
                        $this.$motionX = $var6 + ($var2 / $var8 * 0.5 - $var6) * 0.6000000238418579;
                        $var6 = $this.$motionZ;
                        $this.$motionZ = $var6 + ($var4 / $var8 * 0.5 - $var6) * 0.6000000238418579;
                    }
                }
            }
        }
        $var6 = $this.$motionX;
        $var8 = $var6 * $var6;
        $var4 = $this.$motionZ;
        if ($var8 + $var4 * $var4 > 0.05000000074505806)
            $this.$rotationYaw = jl_Math_atan2($var4, $var6) * 57.2957763671875 - 90.0;
        nms_EntityLivingBase_updateArmSwingProgress($this);
        $var18 = 1.0;
        $ptr = 1;
    case 1:
        $tmp = nms_Entity_getBrightness($this, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var18 = $tmp;
        if ($var18 > 0.5)
            $this.$entityAge = $this.$entityAge + 2 | 0;
        $ptr = 2;
    case 2:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = 0;
        while ($var20 < 2) {
            $this.$field_82218_g.data[$var20] = $this.$field_82221_e.data[$var20];
            $this.$field_82217_f.data[$var20] = $this.$field_82220_d.data[$var20];
            $var20 = $var20 + 1 | 0;
        }
        $var20 = 0;
        while ($var20 < 2) {
            $var21 = $var20 + 1 | 0;
            $var3 = $this.$dataWatcher;
            var$7 = 17 + $var21 | 0;
            $var3 = $var3.$watchedObjects;
            if (var$7 >= (-128) && var$7 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var1 = jl_Integer_integerCache.data[var$7 + 128 | 0];
            } else {
                $var1 = new jl_Integer;
                $var1.$value = var$7;
            }
            if ($var1 === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                $var22 = $var1.$value;
                var$4 = $var3.$elementData.data;
                $var3 = var$4[$var22 & (var$4.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == $var22) {
                        var$5 = $var3.$key;
                        if ($var1 !== var$5 && !($var1 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var22 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            var$7 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value;
            $var3 = null;
            if (var$7 > 0) {
                $var3 = $this.$worldObj.$entityIdMap;
                var$9 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                var$17 = var$9 ^ (var$9 >>> 7 | 0) ^ (var$9 >>> 4 | 0);
                var$4 = $var3.$slots.data;
                $var3 = var$4[var$17 & (var$4.length - 1 | 0)];
                c: {
                    while ($var3 !== null) {
                        if ($var3.$hashEntry == var$7) {
                            $var3 = $var3.$valueEntry;
                            break c;
                        }
                        $var3 = $var3.$nextEntry0;
                    }
                    $var3 = null;
                }
                $var3 = $var3;
            }
            if ($var3 === null) {
                var$4 = $this.$field_82221_e.data;
                $var19 = var$4[$var20];
                var$19 = $this.$renderYawOffset;
                $var18 = 10.0;
                var$19 = (var$19 - $var19) % 360.0;
                if (var$19 >= 180.0)
                    var$19 = var$19 - 360.0;
                if (var$19 < (-180.0))
                    var$19 = var$19 + 360.0;
                if (var$19 <= $var18)
                    $var18 = var$19;
                if ($var18 < (-10.0))
                    $var18 = (-10.0);
                var$4[$var20] = $var19 + $var18;
            } else {
                if ($var21 <= 0)
                    $var4 = $this.$posX;
                else {
                    $var18 = ($this.$renderYawOffset + (180 * ($var21 - 1 | 0) | 0)) / 180.0 * 3.1415927410125732;
                    $var18 = nms_MathHelper_SIN_TABLE.data[($var18 * 10430.3779296875 + 16384.0 | 0) & 65535];
                    $var4 = $this.$posX + $var18 * 1.3;
                }
                $var6 = $var21 > 0 ? $this.$posY + 2.2 : $this.$posY + 3.0;
                if ($var21 <= 0)
                    $var8 = $this.$posZ;
                else {
                    $var18 = ($this.$renderYawOffset + (180 * ($var21 - 1 | 0) | 0)) / 180.0 * 3.1415927410125732;
                    $var18 = nms_MathHelper_SIN_TABLE.data[($var18 * 10430.3779296875 | 0) & 65535];
                    $var8 = $this.$posZ + $var18 * 1.3;
                }
                $var10 = $var3.$posX - $var4;
                $var12 = $var3.$posY + $var3.$getEyeHeight() - $var6;
                $var14 = $var3.$posZ - $var8;
                $var16 = jl_Math_sqrt($var10 * $var10 + $var14 * $var14);
                $var18 = jl_Math_atan2($var14, $var10) * 180.0 / 3.141592653589793 - 90.0;
                $var19 =  -(jl_Math_atan2($var12, $var16) * 180.0 / 3.141592653589793);
                var$4 = $this.$field_82220_d.data;
                var$19 = var$4[$var20];
                var$24 = 40.0;
                $var19 = ($var19 - var$19) % 360.0;
                if ($var19 >= 180.0)
                    $var19 = $var19 - 360.0;
                if ($var19 < (-180.0))
                    $var19 = $var19 + 360.0;
                if ($var19 <= var$24)
                    var$24 = $var19;
                if (var$24 < (-40.0))
                    var$24 = (-40.0);
                var$4[$var20] = var$19 + var$24;
                var$4 = $this.$field_82221_e.data;
                $var19 = var$4[$var20];
                var$19 = 10.0;
                $var18 = ($var18 - $var19) % 360.0;
                if ($var18 >= 180.0)
                    $var18 = $var18 - 360.0;
                if ($var18 < (-180.0))
                    $var18 = $var18 + 360.0;
                if ($var18 <= var$19)
                    var$19 = $var18;
                if (var$19 < (-10.0))
                    var$19 = (-10.0);
                var$4[$var20] = $var19 + var$19;
            }
            $var20 = $var21;
        }
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var1 = jl_Integer_integerCache.data[134];
        if ($var1 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            $var20 = $var1.$value;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[$var20 & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == $var20) {
                    var$5 = $var3.$key;
                    if ($var1 !== var$5 && !jl_Integer_equals($var1, var$5) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        var$10 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value3;
        $var3 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        $var1 = $this.$attributeMap.$attributes;
        if ($var3 === null)
            $var3 = ju_HashMap_findNullKeyEntry($var1);
        else {
            $var21 = nms_BaseAttribute_hashCode($var3);
            $var3 = ju_HashMap_findNonNullKeyEntry($var1, $var3, $var21 & ($var1.$elementData.data.length - 1 | 0), $var21);
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3.$field_111133_g) {
            $var3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var3);
            $var3.$field_111133_g = 0;
        }
        $var22 = var$10 > $var3.$field_111139_h / 2.0 ? 0 : 1;
        $var21 = 0;
        d: {
            e: while (true) {
                if ($var21 >= 3) {
                    $var3 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var1 = jl_Integer_integerCache.data[148];
                    if ($var1 === null) {
                        $var3 = $var3.$elementData.data[0];
                        while ($var3 !== null && $var3.$key !== null) {
                            $var3 = $var3.$next3;
                        }
                    } else {
                        $var20 = $var1.$value;
                        var$4 = $var3.$elementData.data;
                        $var3 = var$4[$var20 & (var$4.length - 1 | 0)];
                        while ($var3 !== null) {
                            if ($var3.$origKeyHash == $var20) {
                                var$5 = $var3.$key;
                                if ($var1 !== var$5 && !($var1 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var20 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var3 = $var3.$next3;
                        }
                    }
                    $var3 = $var3 === null ? null : $var3.$value0;
                    f: {
                        g: {
                            if ($var3.$watchedObject.$value > 0) {
                                $var20 = 0;
                                while (true) {
                                    if ($var20 >= 3)
                                        break g;
                                    $var3 = $this.$worldObj;
                                    nle_EaglercraftRandom_nextGaussian($this.$rand);
                                    $var1 = $this.$rand;
                                    $var1.$seed = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    nle_EaglercraftRandom_nextGaussian($var1);
                                    $var21 = 0;
                                    while (true) {
                                        var$7 = $rt_compare($var21, $var3.$worldAccesses.$size0);
                                        if (var$7 >= 0)
                                            break;
                                        if ($var21 < 0)
                                            break f;
                                        if (var$7 >= 0)
                                            break f;
                                        $var21 = $var21 + 1 | 0;
                                    }
                                    $var20 = $var20 + 1 | 0;
                                }
                            }
                        }
                        return;
                    }
                    $var3 = new jl_IndexOutOfBoundsException;
                    $var3.$suppressionEnabled = 1;
                    $var3.$writableStackTrace = 1;
                    $rt_throw($var3);
                }
                $var3 = $this.$worldObj;
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                nle_EaglercraftRandom_nextGaussian($this.$rand);
                $var20 = 0;
                while (true) {
                    var$7 = $rt_compare($var20, $var3.$worldAccesses.$size0);
                    if (var$7 >= 0)
                        break;
                    if ($var20 < 0)
                        break e;
                    if (var$7 >= 0)
                        break e;
                    $var20 = $var20 + 1 | 0;
                }
                if ($var22) {
                    $var3 = $this.$worldObj;
                    $var1 = $var3.$rand0;
                    var$25 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$25;
                    if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$25, 17)))), 31))) {
                        nle_EaglercraftRandom_nextGaussian($this.$rand);
                        nle_EaglercraftRandom_nextGaussian($this.$rand);
                        nle_EaglercraftRandom_nextGaussian($this.$rand);
                        $var20 = 0;
                        while (true) {
                            var$7 = $rt_compare($var20, $var3.$worldAccesses.$size0);
                            if (var$7 >= 0)
                                break;
                            if ($var20 < 0)
                                break d;
                            if (var$7 >= 0)
                                break d;
                            $var20 = $var20 + 1 | 0;
                        }
                    }
                }
                $var21 = $var21 + 1 | 0;
            }
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $rt_throw($var3);
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var1, $var20, var$4, var$5, var$6, var$7, $var21, var$9, var$10, $var6, $var2, $var4, $var8, $var18, $var22, var$17, $var19, var$19, $var10, $var12, $var14, $var16, var$24, var$25, $ptr);
},
nms_EntityWither_updateAITasks = $this => {
    let $var14, $var13, $var17, var$4, $var5, $var1, var$7, $var18, var$9, var$10, var$11, var$12, $var8, var$14, var$15, $var19, $var20, $var7, var$19, $var10, $var9, var$22, var$23, $var15, $var12, var$26, var$27, $var4, var$29, $var10003, $var6, var$32, var$33, var$34, $var11, $var16, var$37, var$38, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$38 = $thread.pop();var$37 = $thread.pop();$var16 = $thread.pop();$var11 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();$var6 = $thread.pop();$var10003 = $thread.pop();var$29 = $thread.pop();$var4 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var12 = $thread.pop();$var15 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();$var9 = $thread.pop();$var10 = $thread.pop();var$19 = $thread.pop();$var7 = $thread.pop();$var20
        = $thread.pop();$var19 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var18 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();$var5 = $thread.pop();var$4 = $thread.pop();$var17 = $thread.pop();$var13 = $thread.pop();$var14 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var14 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var13 = jl_Integer_integerCache.data[148];
        if ($var13 === null) {
            $var14 = $var14.$elementData.data[0];
            while ($var14 !== null && $var14.$key !== null) {
                $var14 = $var14.$next3;
            }
        } else {
            $var17 = $var13.$value;
            var$4 = $var14.$elementData.data;
            $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
            while ($var14 !== null) {
                if ($var14.$origKeyHash == $var17) {
                    $var5 = $var14.$key;
                    if ($var13 !== $var5 && !($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var17 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var14 = $var14.$next3;
            }
        }
        $var14 = $var14 === null ? null : $var14.$value0;
        if ($var14.$watchedObject.$value > 0) {
            $var14 = $this.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            $var13 = jl_Integer_integerCache.data[148];
            if ($var13 !== null) {
                $var17 = $var13.$value;
                var$4 = $var14.$elementData.data;
                $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                while ($var14 !== null) {
                    if ($var14.$origKeyHash == $var17) {
                        $var5 = $var14.$key;
                        if ($var13 !== $var5 && !($var13 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var17 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    $var14 = $var14.$next3;
                }
            } else {
                $var14 = $var14.$elementData.data[0];
                while ($var14 !== null && $var14.$key !== null) {
                    $var14 = $var14.$next3;
                }
            }
            $var14 = $var14 === null ? null : $var14.$value0;
            $var1 = $var14.$watchedObject.$value - 1 | 0;
            if ($var1 > 0) {
                $var14 = $this.$dataWatcher;
                if ($var1 >= (-128) && $var1 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var13 = jl_Integer_integerCache.data[$var1 + 128 | 0];
                } else {
                    $var13 = new jl_Integer;
                    $var13.$value = $var1;
                }
                $var5 = $var14.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[148];
                if (var$7 === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    $var18 = var$7.$value;
                    var$4 = $var5.$elementData.data;
                    $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == $var18) {
                            var$9 = $var5.$key;
                            if (var$7 !== var$9 && !(var$7 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                var$9 = $var5 === null ? null : $var5.$value0;
                $var5 = var$9.$watchedObject;
                if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                    var$9.$watchedObject = $var13;
                    var$9.$watched = 1;
                    $var14.$objectChanged = 1;
                }
                if (!($this.$ticksExisted % 10 | 0)) {
                    $var14 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var5 = jl_Integer_integerCache.data[134];
                    if ($var5 === null) {
                        $var14 = $var14.$elementData.data[0];
                        while ($var14 !== null && $var14.$key !== null) {
                            $var14 = $var14.$next3;
                        }
                    } else {
                        $var18 = $var5.$value;
                        var$4 = $var14.$elementData.data;
                        $var14 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var14 !== null) {
                            if ($var14.$origKeyHash == $var18) {
                                $var13 = $var14.$key;
                                if ($var5 !== $var13 && !jl_Integer_equals($var5, $var13) ? 0 : 1)
                                    break;
                            }
                            $var14 = $var14.$next3;
                        }
                    }
                    var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                    if (var$10 > 0.0) {
                        var$11 = var$10 + 10.0;
                        $var14 = $this.$dataWatcher;
                        var$12 = 0.0;
                        $var13 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                        $var13 = $var13 === null ? null : $var13.$value0;
                        if ($var13.$field_111133_g) {
                            $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                            $var13.$field_111133_g = 0;
                        }
                        var$10 = $var13.$field_111139_h;
                        if (var$11 >= var$12)
                            var$12 = var$11 <= var$10 ? var$11 : var$10;
                        $var13 = new jl_Float;
                        $var13.$value3 = var$12;
                        $var5 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[134];
                        if (var$7 === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var18 = var$7.$value;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == $var18) {
                                    var$9 = $var5.$key;
                                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$9 = $var5 === null ? null : $var5.$value0;
                        $var5 = var$9.$watchedObject;
                        if ($var13 === $var5)
                            $var17 = 1;
                        else
                            a: {
                                if ($var5 instanceof jl_Float) {
                                    var$11 = $var13.$value3;
                                    var$12 = $var5.$value3;
                                    if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                        $var17 = 1;
                                        break a;
                                    }
                                }
                                $var17 = 0;
                            }
                        if (!$var17) {
                            var$9.$watchedObject = $var13;
                            var$9.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    }
                }
                return;
            }
            b: {
                $var13 = $this.$worldObj;
                $var8 = $this.$posX;
                var$14 = $this.$posY + $this.$height0 * 0.8500000238418579;
                var$15 = $this.$posZ;
                var$11 = 7.0;
                $var17 = 0;
                $var5 = ($var13.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                var$9 = $rt_s(1417);
                $var14 = $rt_s(1417);
                if (var$9 !== $var14) {
                    $var19 = var$9.$nativeString.length;
                    $var20 = $var14.$nativeString.length;
                    if ($var19 < $var20)
                        $var20 = $var19;
                    $var18 = 0;
                    c: {
                        while (true) {
                            if ($var18 >= $var20) {
                                var$9.$nativeString.length;
                                $var14.$nativeString.length;
                                break b;
                            }
                            if ($var18 < 0)
                                break c;
                            if ($var18 >= var$9.$nativeString.length)
                                break c;
                            $var7 = var$9.$nativeString.charCodeAt($var18);
                            if ($var18 < 0)
                                break;
                            if ($var18 >= $var14.$nativeString.length)
                                break;
                            if ($var7 - $var14.$nativeString.charCodeAt($var18) | 0)
                                break b;
                            $var18 = $var18 + 1 | 0;
                        }
                        $var14 = new jl_StringIndexOutOfBoundsException;
                        jl_IndexOutOfBoundsException__init_($var14);
                        $rt_throw($var14);
                    }
                    $var14 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($var14);
                    $rt_throw($var14);
                }
            }
            $var14 = $rt_s(1417);
            d: {
                e: {
                    f: while (true) {
                        if ($var5 === null) {
                            $var5 = null;
                            break d;
                        }
                        g: {
                            var$9 = $var5.$key0;
                            if ($var14 === var$9)
                                $var18 = 0;
                            else {
                                $var19 = $var14.$nativeString.length;
                                $var20 = var$9.$nativeString.length;
                                if ($var19 < $var20)
                                    $var20 = $var19;
                                $var19 = 0;
                                while (true) {
                                    if ($var19 >= $var20) {
                                        $var18 = $var14.$nativeString.length - var$9.$nativeString.length | 0;
                                        break g;
                                    }
                                    if ($var19 < 0)
                                        break e;
                                    if ($var19 >= $var14.$nativeString.length)
                                        break e;
                                    $var7 = $var14.$nativeString.charCodeAt($var19);
                                    if ($var19 < 0)
                                        break f;
                                    if ($var19 >= var$9.$nativeString.length)
                                        break f;
                                    $var18 = $var7 - var$9.$nativeString.charCodeAt($var19) | 0;
                                    if ($var18)
                                        break;
                                    $var19 = $var19 + 1 | 0;
                                }
                            }
                        }
                        if (!$var18)
                            break d;
                        $var5 = $var18 >= 0 ? $var5.$right : $var5.$left;
                    }
                    $var14 = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($var14);
                    $rt_throw($var14);
                }
                $var14 = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($var14);
                $rt_throw($var14);
            }
            $var14 = $var5 === null ? null : $var5.$value2;
            $var18 = $var14 === null ? 0 : $var14.$valueBoolean;
            $ptr = 4;
            continue main;
        }
        $this.$entityAge = $this.$entityAge + 1 | 0;
        $this.$entityAge = 0;
        $var14 = $this.$senses;
        $var13 = $var14.$seenEntities;
        var$4 = $var13.$array;
        $var17 = 0;
        $var1 = $var13.$size0;
        $var5 = null;
        if ($var17 > $var1) {
            $var14 = new jl_IllegalArgumentException;
            $var14.$suppressionEnabled = 1;
            $var14.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var14);
            $rt_throw($var14);
        }
        while ($var17 < $var1) {
            var$19 = var$4.data;
            $var18 = $var17 + 1 | 0;
            var$19[$var17] = $var5;
            $var17 = $var18;
        }
        $var13.$size0 = 0;
        $var13.$modCount = $var13.$modCount + 1 | 0;
        $var14 = $var14.$unseenEntities;
        var$4 = $var14.$array;
        $var17 = 0;
        $var1 = $var14.$size0;
        $var13 = null;
        if ($var17 > $var1) {
            $var14 = new jl_IllegalArgumentException;
            $var14.$suppressionEnabled = 1;
            $var14.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var14);
            $rt_throw($var14);
        }
        while ($var17 < $var1) {
            var$19 = var$4.data;
            $var18 = $var17 + 1 | 0;
            var$19[$var17] = $var13;
            $var17 = $var18;
        }
        $var14.$size0 = 0;
        $var14.$modCount = $var14.$modCount + 1 | 0;
        $var14 = $this.$targetTasks;
        $ptr = 1;
    case 1:
        nms_EntityAITasks_onUpdateTasks($var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $this.$tasks0;
        $ptr = 2;
    case 2:
        nms_EntityAITasks_onUpdateTasks($var14);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $this.$navigator;
        $ptr = 3;
    case 3:
        nms_PathNavigate_onUpdateNavigation($var14);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityMoveHelper_onUpdateMoveHelper($this.$moveHelper);
        nms_EntityLookHelper_onUpdateLook($this.$lookHelper);
        $var14 = $this.$jumpHelper;
        $var14.$entity0.$isJumping = $var14.$isJumping0;
        $var14.$isJumping0 = 0;
        $var1 = 1;
        $var10 = 17;
        $var9 = 9;
        var$22 = 22;
        var$23 = 21;
        $var15 = 19;
        $var12 = 24;
        var$26 = 128;
        var$27 = 134;
        while (true) {
            if ($var1 >= 3) {
                $var14 = $this.$attackTarget;
                if ($var14 === null) {
                    $var14 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$26];
                    $var13 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[145];
                    if (var$9 !== null) {
                        $var18 = var$9.$value;
                        var$4 = $var13.$elementData.data;
                        $var13 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var13 !== null) {
                            if ($var13.$origKeyHash == $var18) {
                                $var5 = $var13.$key;
                                if (var$9 !== $var5 && !(var$9 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var13 = $var13.$next3;
                        }
                    } else {
                        $var13 = $var13.$elementData.data[0];
                        while ($var13 !== null && $var13.$key !== null) {
                            $var13 = $var13.$next3;
                        }
                    }
                    $var5 = $var13 === null ? null : $var13.$value0;
                    $var13 = $var5.$watchedObject;
                    if (!(var$7 === $var13 ? 1 : $var13 instanceof jl_Integer && $var13.$value == var$7.$value ? 1 : 0)) {
                        $var5.$watchedObject = var$7;
                        $var5.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                } else {
                    $var17 = $var14.$entityId;
                    $var14 = $this.$dataWatcher;
                    if ($var17 >= (-128) && $var17 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                    } else {
                        $var13 = new jl_Integer;
                        $var13.$value = $var17;
                    }
                    $var5 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[145];
                    if (var$7 !== null) {
                        $var18 = var$7.$value;
                        var$4 = $var5.$elementData.data;
                        $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == $var18) {
                                var$9 = $var5.$key;
                                if (var$7 !== var$9 && !(var$7 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    } else {
                        $var5 = $var5.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    }
                    var$9 = $var5 === null ? null : $var5.$value0;
                    $var5 = var$9.$watchedObject;
                    if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                        var$9.$watchedObject = $var13;
                        var$9.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                }
                g: {
                    $var17 = $this.$field_82222_j;
                    if ($var17 > 0) {
                        $var17 = $var17 - 1 | 0;
                        $this.$field_82222_j = $var17;
                        if (!$var17) {
                            h: {
                                $var13 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                                $var5 = $rt_s(1417);
                                $var14 = $rt_s(1417);
                                if ($var5 !== $var14) {
                                    $var1 = $var5.$nativeString.length;
                                    $var19 = $var14.$nativeString.length;
                                    if ($var1 < $var19)
                                        $var19 = $var1;
                                    $var17 = 0;
                                    i: {
                                        while (true) {
                                            if ($var17 >= $var19) {
                                                $var5.$nativeString.length;
                                                $var14.$nativeString.length;
                                                break h;
                                            }
                                            if ($var17 < 0)
                                                break i;
                                            if ($var17 >= $var5.$nativeString.length)
                                                break i;
                                            $var18 = $var5.$nativeString.charCodeAt($var17);
                                            if ($var17 < 0)
                                                break;
                                            if ($var17 >= $var14.$nativeString.length)
                                                break;
                                            if ($var18 - $var14.$nativeString.charCodeAt($var17) | 0)
                                                break h;
                                            $var17 = $var17 + 1 | 0;
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                            }
                            $var14 = $rt_s(1417);
                            j: {
                                k: {
                                    l: while (true) {
                                        if ($var13 === null) {
                                            $var13 = null;
                                            break j;
                                        }
                                        m: {
                                            $var5 = $var13.$key0;
                                            if ($var14 === $var5)
                                                $var17 = 0;
                                            else {
                                                $var1 = $var14.$nativeString.length;
                                                $var19 = $var5.$nativeString.length;
                                                if ($var1 < $var19)
                                                    $var19 = $var1;
                                                $var1 = 0;
                                                while (true) {
                                                    if ($var1 >= $var19) {
                                                        $var17 = $var14.$nativeString.length - $var5.$nativeString.length | 0;
                                                        break m;
                                                    }
                                                    if ($var1 < 0)
                                                        break k;
                                                    if ($var1 >= $var14.$nativeString.length)
                                                        break k;
                                                    $var18 = $var14.$nativeString.charCodeAt($var1);
                                                    if ($var1 < 0)
                                                        break l;
                                                    if ($var1 >= $var5.$nativeString.length)
                                                        break l;
                                                    $var17 = $var18 - $var5.$nativeString.charCodeAt($var1) | 0;
                                                    if ($var17)
                                                        break;
                                                    $var1 = $var1 + 1 | 0;
                                                }
                                            }
                                        }
                                        if (!$var17)
                                            break j;
                                        $var13 = $var17 >= 0 ? $var13.$right : $var13.$left;
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                                $var14 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var14);
                                $rt_throw($var14);
                            }
                            $var14 = $var13 === null ? null : $var13.$value2;
                            if ($var14 === null ? 0 : $var14.$valueBoolean) {
                                $var8 = $this.$posY;
                                var$26 = $var8 | 0;
                                if ($var8 < var$26)
                                    var$26 = var$26 - 1 | 0;
                                $var8 = $this.$posX;
                                $var12 = $var8 | 0;
                                if ($var8 < $var12)
                                    $var12 = $var12 - 1 | 0;
                                $var8 = $this.$posZ;
                                $var15 = $var8 | 0;
                                if ($var8 < $var15)
                                    $var15 = $var15 - 1 | 0;
                                $var17 = 0;
                                $var18 = (-1);
                                n: while (true) {
                                    if ($var18 > 1) {
                                        if (!$var17)
                                            break g;
                                        $var14 = $this.$worldObj;
                                        $var13 = null;
                                        $var1 = 1012;
                                        $var18 = $this.$posX | 0;
                                        $var19 = $this.$posY | 0;
                                        $var7 = $this.$posZ | 0;
                                        $var17 = 0;
                                        $var20 = 0;
                                        var$14 = $var18;
                                        var$15 = $var19;
                                        $var4 = $var7;
                                        $var5 = $var14.$worldAccesses;
                                        $var9 = $rt_compare($var20, $var5.$size0);
                                        if ($var9 < 0) {
                                            if ($var20 >= 0 && $var9 < 0) {
                                                $var5 = $var5.$array.data[$var20];
                                                var$7 = $var5.$mcServer.$serverConfigManager;
                                                $var8 = 64.0;
                                                $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                                $var5 = new nms_Packet61DoorChange;
                                                nms_Packet_$callClinit();
                                                nles_SysUtil_$callClinit();
                                                $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                $var5.$sfxID = $var1;
                                                $var5.$posX1 = $var18;
                                                $var5.$posY1 = $var19;
                                                $var5.$posZ1 = $var7;
                                                $var5.$auxData = $var17;
                                                $var5.$disableRelativeVolume = 0;
                                                $ptr = 12;
                                                continue main;
                                            }
                                            $var14 = new jl_IndexOutOfBoundsException;
                                            $var14.$suppressionEnabled = 1;
                                            $var14.$writableStackTrace = 1;
                                            $rt_throw($var14);
                                        }
                                        break g;
                                    }
                                    $var19 = (-1);
                                    while ($var19 <= 1) {
                                        $var7 = 0;
                                        if ($var7 <= 3)
                                            break n;
                                        $var19 = $var19 + 1 | 0;
                                    }
                                    $var18 = $var18 + 1 | 0;
                                }
                                $var20 = $var12 + $var18 | 0;
                                $var9 = var$26 + $var7 | 0;
                                $var10 = $var15 + $var19 | 0;
                                $var14 = $this.$worldObj;
                                $ptr = 11;
                                continue main;
                            }
                        }
                    }
                }
                if (!($this.$ticksExisted % 20 | 0)) {
                    $var14 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var13 = jl_Integer_integerCache.data[var$27];
                    if ($var13 === null) {
                        $var14 = $var14.$elementData.data[0];
                        while ($var14 !== null && $var14.$key !== null) {
                            $var14 = $var14.$next3;
                        }
                    } else {
                        $var17 = $var13.$value;
                        var$4 = $var14.$elementData.data;
                        $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                        while ($var14 !== null) {
                            if ($var14.$origKeyHash == $var17) {
                                $var5 = $var14.$key;
                                if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                    break;
                            }
                            $var14 = $var14.$next3;
                        }
                    }
                    var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                    if (var$10 > 0.0) {
                        var$11 = var$10 + 1.0;
                        $var14 = $this.$dataWatcher;
                        var$12 = 0.0;
                        $var13 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                        $var13 = $var13 === null ? null : $var13.$value0;
                        if ($var13.$field_111133_g) {
                            $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                            $var13.$field_111133_g = 0;
                        }
                        var$10 = $var13.$field_111139_h;
                        if (var$11 >= var$12)
                            var$12 = var$11 <= var$10 ? var$11 : var$10;
                        $var13 = new jl_Float;
                        $var13.$value3 = var$12;
                        $var5 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[var$27];
                        if (var$7 === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var18 = var$7.$value;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == $var18) {
                                    var$9 = $var5.$key;
                                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$9 = $var5 === null ? null : $var5.$value0;
                        $var5 = var$9.$watchedObject;
                        if ($var13 === $var5)
                            $var17 = 1;
                        else
                            o: {
                                if ($var5 instanceof jl_Float) {
                                    var$11 = $var13.$value3;
                                    var$12 = $var5.$value3;
                                    if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                        $var17 = 1;
                                        break o;
                                    }
                                }
                                $var17 = 0;
                            }
                        if (!$var17) {
                            var$9.$watchedObject = $var13;
                            var$9.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    }
                }
                return;
            }
            $var17 = $this.$ticksExisted;
            var$4 = $this.$field_82223_h.data;
            $var18 = $var1 - 1 | 0;
            if ($var17 >= var$4[$var18]) {
                $var7 = $var17 + 10 | 0;
                $var14 = $this.$rand;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                $var17 = Long_lo(Long_shru(var$29, $var10));
                while (true) {
                    $var19 = $var17 % 10 | 0;
                    if ((($var17 - $var19 | 0) + $var9 | 0) >= 0)
                        break;
                    var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$29;
                    $var17 = Long_lo(Long_shru(var$29, $var10));
                }
                var$4[$var18] = $var7 + $var19 | 0;
                if ($this.$worldObj.$difficultySetting >= 2) {
                    var$4 = $this.$field_82224_i.data;
                    $var10003 = var$4[$var18];
                    var$4[$var18] = var$4[$var18] + 1 | 0;
                    if ($var10003 > 15) {
                        $var8 = $this.$posX;
                        $var4 = $var8 - 10.0;
                        $var6 = $var8 + 10.0;
                        if ($var4 < $var6) {
                            var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$32;
                            var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                            var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$33;
                            $var4 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * ($var6 - $var4) + $var4;
                        }
                        $var8 = $this.$posY;
                        $var6 = $var8 - 5.0;
                        var$34 = $var8 + 5.0;
                        if ($var6 < var$34) {
                            var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$32;
                            var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                            var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$33;
                            $var6 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * (var$34 - $var6) + $var6;
                        }
                        var$14 = $this.$posZ;
                        $var8 = var$14 - 10.0;
                        var$14 = var$14 + 10.0;
                        if ($var8 < var$14) {
                            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$29;
                            var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$29, var$22))), 27);
                            var$29 = Long_and(Long_add(Long_mul(var$29, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$29;
                            $var8 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$29, var$23))))) * 1.1102230246251565E-16 * (var$14 - $var8) + $var8;
                        }
                        $var19 = $var1 + 1 | 0;
                        $var17 = 1;
                        $ptr = 5;
                        continue main;
                    }
                }
                $var14 = $this.$dataWatcher;
                $var17 = 17 + $var1 | 0;
                $var14 = $var14.$watchedObjects;
                $var20 = $rt_compare($var17, (-128));
                if ($var20 >= 0 && $var17 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                } else {
                    $var13 = new jl_Integer;
                    $var13.$value = $var17;
                }
                if ($var13 === null) {
                    $var14 = $var14.$elementData.data[0];
                    while ($var14 !== null && $var14.$key !== null) {
                        $var14 = $var14.$next3;
                    }
                } else {
                    $var11 = $var13.$value;
                    var$4 = $var14.$elementData.data;
                    $var14 = var$4[$var11 & (var$4.length - 1 | 0)];
                    while ($var14 !== null) {
                        if ($var14.$origKeyHash == $var11) {
                            $var5 = $var14.$key;
                            if ($var13 !== $var5 && !($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var11 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var14 = $var14.$next3;
                    }
                }
                $var19 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value;
                if ($var19 <= 0) {
                    $var14 = $this.$worldObj;
                    $var13 = $rt_cls(nms_EntityLivingBase);
                    $var5 = $this.$boundingBox0;
                    $var4 = $var5.$minX0 - 20.0;
                    $var6 = $var5.$minY0 - 8.0;
                    var$34 = $var5.$minZ0 - 20.0;
                    var$14 = $var5.$maxX0 + 20.0;
                    var$15 = $var5.$maxY + 8.0;
                    $var8 = $var5.$maxZ0 + 20.0;
                    var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var18 = var$7.$nextPoolIndex;
                    $var5 = var$7.$listAABB;
                    $var7 = $var5.$size0;
                    $var19 = $rt_compare($var18, $var7);
                    if ($var19 >= 0) {
                        var$9 = new nms_AxisAlignedBB;
                        var$9.$minX0 = $var4;
                        var$9.$minY0 = $var6;
                        var$9.$minZ0 = var$34;
                        var$9.$maxX0 = var$14;
                        var$9.$maxY = var$15;
                        var$9.$maxZ0 = $var8;
                        ju_ArrayList_ensureCapacity($var5, $var7 + 1 | 0);
                        var$4 = $var5.$array.data;
                        $var19 = $var5.$size0;
                        $var5.$size0 = $var19 + 1 | 0;
                        var$4[$var19] = var$9;
                        $var5.$modCount = $var5.$modCount + 1 | 0;
                    } else if ($var18 >= 0 && $var19 < 0) {
                        var$9 = $var5.$array.data[$var18];
                        var$9.$minX0 = $var4;
                        var$9.$minY0 = $var6;
                        var$9.$minZ0 = var$34;
                        var$9.$maxX0 = var$14;
                        var$9.$maxY = var$15;
                        var$9.$maxZ0 = $var8;
                    } else {
                        $var14 = new jl_IndexOutOfBoundsException;
                        $var14.$suppressionEnabled = 1;
                        $var14.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var14);
                        $rt_throw($var14);
                    }
                    var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                    $var5 = nms_EntityWither_attackEntitySelector;
                    $ptr = 6;
                    continue main;
                }
                $var14 = $this.$worldObj.$entityIdMap;
                $var7 = $var19 ^ ($var19 >>> 20 | 0) ^ ($var19 >>> 12 | 0);
                $var16 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
                var$4 = $var14.$slots.data;
                $var14 = var$4[$var16 & (var$4.length - 1 | 0)];
                p: {
                    while ($var14 !== null) {
                        if ($var14.$hashEntry == $var19) {
                            $var14 = $var14.$valueEntry;
                            break p;
                        }
                        $var14 = $var14.$nextEntry0;
                    }
                    $var14 = null;
                }
                $var14 = $var14;
                if ($var14 !== null && $var14.$isEntityAlive()) {
                    $var8 = $this.$posX - $var14.$posX;
                    var$14 = $this.$posY - $var14.$posY;
                    var$15 = $this.$posZ - $var14.$posZ;
                    if ($var8 * $var8 + var$14 * var$14 + var$15 * var$15 <= 900.0)
                        break;
                }
                $var13 = $this.$dataWatcher;
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[var$26];
                $var14 = $var13.$watchedObjects;
                if ($var20 >= 0 && $var17 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var5 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                } else {
                    $var5 = new jl_Integer;
                    $var5.$value = $var17;
                }
                if ($var5 === null) {
                    var$9 = $var14.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    $var18 = $var5.$value;
                    var$4 = $var14.$elementData.data;
                    var$9 = var$4[$var18 & (var$4.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == $var18) {
                            $var14 = var$9.$key;
                            if ($var5 !== $var14 && !($var5 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                $var5 = var$9 === null ? null : var$9.$value0;
                $var14 = $var5.$watchedObject;
                if (!(var$7 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == var$7.$value ? 1 : 0)) {
                    $var5.$watchedObject = var$7;
                    $var5.$watched = 1;
                    $var13.$objectChanged = 1;
                }
            }
            $var1 = $var1 + 1 | 0;
        }
        $ptr = 8;
        continue main;
    case 4:
        nms_WorldServer_newExplosion($var13, $this, $var8, var$14, var$15, var$11, $var17, $var18);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $this.$worldObj;
        $var17 = 1013;
        $var18 = $this.$posX | 0;
        $var19 = $this.$posY | 0;
        $var7 = $this.$posZ | 0;
        $var20 = 0;
        $var9 = 0;
        q: {
            r: while (true) {
                $var13 = $var14.$worldAccesses;
                $var10 = $rt_compare($var9, $var13.$size0);
                if ($var10 >= 0) {
                    $var14 = $this.$dataWatcher;
                    if ($var1 >= (-128) && $var1 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[$var1 + 128 | 0];
                    } else {
                        $var13 = new jl_Integer;
                        $var13.$value = $var1;
                    }
                    $var5 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[148];
                    if (var$7 === null) {
                        $var5 = $var5.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    } else {
                        $var18 = var$7.$value;
                        var$4 = $var5.$elementData.data;
                        $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == $var18) {
                                var$9 = $var5.$key;
                                if (var$7 !== var$9 && !(var$7 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    }
                    var$9 = $var5 === null ? null : $var5.$value0;
                    $var5 = var$9.$watchedObject;
                    if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                        var$9.$watchedObject = $var13;
                        var$9.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                    if (!($this.$ticksExisted % 10 | 0)) {
                        $var14 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var5 = jl_Integer_integerCache.data[134];
                        if ($var5 === null) {
                            $var14 = $var14.$elementData.data[0];
                            while ($var14 !== null && $var14.$key !== null) {
                                $var14 = $var14.$next3;
                            }
                        } else {
                            $var18 = $var5.$value;
                            var$4 = $var14.$elementData.data;
                            $var14 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var14 !== null) {
                                if ($var14.$origKeyHash == $var18) {
                                    $var13 = $var14.$key;
                                    if ($var5 !== $var13 && !jl_Integer_equals($var5, $var13) ? 0 : 1)
                                        break;
                                }
                                $var14 = $var14.$next3;
                            }
                        }
                        var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                        if (var$10 > 0.0) {
                            var$11 = var$10 + 10.0;
                            $var14 = $this.$dataWatcher;
                            var$12 = 0.0;
                            $var13 = nms_SharedMonsterAttributes_maxHealth;
                            if ($this.$attributeMap === null)
                                $this.$attributeMap = nms_ServersideAttributeMap__init_();
                            $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                            $var13 = $var13 === null ? null : $var13.$value0;
                            if ($var13.$field_111133_g) {
                                $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                $var13.$field_111133_g = 0;
                            }
                            var$10 = $var13.$field_111139_h;
                            if (var$11 >= var$12)
                                var$12 = var$11 <= var$10 ? var$11 : var$10;
                            $var13 = new jl_Float;
                            $var13.$value3 = var$12;
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[134];
                            if (var$7 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if ($var13 === $var5)
                                $var17 = 1;
                            else
                                s: {
                                    if ($var5 instanceof jl_Float) {
                                        var$11 = $var13.$value3;
                                        var$12 = $var5.$value3;
                                        if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                            $var17 = 1;
                                            break s;
                                        }
                                    }
                                    $var17 = 0;
                                }
                            if (!$var17) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        }
                    }
                    return;
                }
                if ($var9 < 0)
                    break q;
                if ($var10 >= 0)
                    break q;
                var$37 = $var13.$array.data[$var9].$mcServer.$serverConfigManager;
                $var13 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                $var13.$sfxID = $var17;
                $var13.$posX1 = $var18;
                $var13.$posY1 = $var19;
                $var13.$posZ1 = $var7;
                $var13.$auxData = $var20;
                $var13.$disableRelativeVolume = 1;
                $var10 = 0;
                $var15 = $var13 instanceof nms_Packet3Chat;
                var$9 = $var13;
                while (true) {
                    $var5 = var$37.$playerEntityList;
                    $var11 = $rt_compare($var10, $var5.$size0);
                    if ($var11 >= 0)
                        break;
                    if ($var10 < 0)
                        break r;
                    if ($var11 >= 0)
                        break r;
                    t: {
                        $var5 = $var5.$array.data[$var10].$playerNetServerHandler;
                        if ($var15) {
                            var$27 = $var5.$playerEntity.$chatVisibility;
                            if (var$27 == 2)
                                break t;
                            if (var$27 == 1 && !var$9.$isServer)
                                break t;
                        }
                        try {
                            $var5 = $var5.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $var5 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$7 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$7, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$7;
                        }
                        jl_Throwable_printStackTrace($var5, jl_System_errCache);
                    }
                    $var10 = $var10 + 1 | 0;
                }
                $var9 = $var9 + 1 | 0;
            }
            $var14 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($var14);
            $rt_throw($var14);
        }
        $var14 = new jl_IndexOutOfBoundsException;
        $var14.$suppressionEnabled = 1;
        $var14.$writableStackTrace = 1;
        $rt_throw($var14);
    case 5:
        nms_EntityWither_func_82209_a($this, $var19, $var4, $var6, $var8, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_82224_i.data[$var18] = 0;
        while (true) {
            $var14 = $this.$dataWatcher;
            $var17 = 17 + $var1 | 0;
            $var14 = $var14.$watchedObjects;
            $var20 = $rt_compare($var17, (-128));
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var13 = new jl_Integer;
                $var13.$value = $var17;
            }
            if ($var13 !== null) {
                $var11 = $var13.$value;
                var$4 = $var14.$elementData.data;
                $var14 = var$4[$var11 & (var$4.length - 1 | 0)];
                while ($var14 !== null) {
                    if ($var14.$origKeyHash == $var11) {
                        $var5 = $var14.$key;
                        if ($var13 !== $var5 && !($var13 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var11 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    $var14 = $var14.$next3;
                }
            } else {
                $var14 = $var14.$elementData.data[0];
                while ($var14 !== null && $var14.$key !== null) {
                    $var14 = $var14.$next3;
                }
            }
            $var19 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value;
            if ($var19 <= 0) {
                $var14 = $this.$worldObj;
                $var13 = $rt_cls(nms_EntityLivingBase);
                $var5 = $this.$boundingBox0;
                $var4 = $var5.$minX0 - 20.0;
                $var6 = $var5.$minY0 - 8.0;
                var$34 = $var5.$minZ0 - 20.0;
                var$14 = $var5.$maxX0 + 20.0;
                var$15 = $var5.$maxY + 8.0;
                $var8 = $var5.$maxZ0 + 20.0;
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var18 = var$7.$nextPoolIndex;
                $var5 = var$7.$listAABB;
                $var7 = $var5.$size0;
                $var19 = $rt_compare($var18, $var7);
                if ($var19 >= 0) {
                    var$9 = new nms_AxisAlignedBB;
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                    ju_ArrayList_ensureCapacity($var5, $var7 + 1 | 0);
                    var$4 = $var5.$array.data;
                    $var19 = $var5.$size0;
                    $var5.$size0 = $var19 + 1 | 0;
                    var$4[$var19] = var$9;
                    $var5.$modCount = $var5.$modCount + 1 | 0;
                } else if ($var18 >= 0 && $var19 < 0) {
                    var$9 = $var5.$array.data[$var18];
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                } else {
                    $var14 = new jl_IndexOutOfBoundsException;
                    $var14.$suppressionEnabled = 1;
                    $var14.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var14);
                    $rt_throw($var14);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var5 = nms_EntityWither_attackEntitySelector;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj.$entityIdMap;
            $var7 = $var19 ^ ($var19 >>> 20 | 0) ^ ($var19 >>> 12 | 0);
            $var16 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
            var$4 = $var14.$slots.data;
            $var14 = var$4[$var16 & (var$4.length - 1 | 0)];
            u: {
                while ($var14 !== null) {
                    if ($var14.$hashEntry == $var19) {
                        $var14 = $var14.$valueEntry;
                        break u;
                    }
                    $var14 = $var14.$nextEntry0;
                }
                $var14 = null;
            }
            $var14 = $var14;
            if ($var14 !== null && $var14.$isEntityAlive()) {
                $var8 = $this.$posX - $var14.$posX;
                var$14 = $this.$posY - $var14.$posY;
                var$15 = $this.$posZ - $var14.$posZ;
                if ($var8 * $var8 + var$14 * var$14 + var$15 * var$15 <= 900.0)
                    break;
            }
            $var13 = $this.$dataWatcher;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[var$26];
            $var14 = $var13.$watchedObjects;
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var5 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var5 = new jl_Integer;
                $var5.$value = $var17;
            }
            if ($var5 === null) {
                var$9 = $var14.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                $var18 = $var5.$value;
                var$4 = $var14.$elementData.data;
                var$9 = var$4[$var18 & (var$4.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var18) {
                        $var14 = var$9.$key;
                        if ($var5 !== $var14 && !($var5 !== $var14 ? ($var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            $var5 = var$9 === null ? null : var$9.$value0;
            $var14 = $var5.$watchedObject;
            if (!(var$7 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == var$7.$value ? 1 : 0)) {
                $var5.$watchedObject = var$7;
                $var5.$watched = 1;
                $var13.$objectChanged = 1;
            }
            while (true) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= 3) {
                    $var14 = $this.$attackTarget;
                    if ($var14 === null) {
                        $var14 = $this.$dataWatcher;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[var$26];
                        $var13 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[145];
                        if (var$9 !== null) {
                            $var18 = var$9.$value;
                            var$4 = $var13.$elementData.data;
                            $var13 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var13 !== null) {
                                if ($var13.$origKeyHash == $var18) {
                                    $var5 = $var13.$key;
                                    if (var$9 !== $var5 && !(var$9 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                        break;
                                }
                                $var13 = $var13.$next3;
                            }
                        } else {
                            $var13 = $var13.$elementData.data[0];
                            while ($var13 !== null && $var13.$key !== null) {
                                $var13 = $var13.$next3;
                            }
                        }
                        $var5 = $var13 === null ? null : $var13.$value0;
                        $var13 = $var5.$watchedObject;
                        if (!(var$7 === $var13 ? 1 : $var13 instanceof jl_Integer && $var13.$value == var$7.$value ? 1 : 0)) {
                            $var5.$watchedObject = var$7;
                            $var5.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    } else {
                        $var17 = $var14.$entityId;
                        $var14 = $this.$dataWatcher;
                        if ($var17 >= (-128) && $var17 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                        } else {
                            $var13 = new jl_Integer;
                            $var13.$value = $var17;
                        }
                        $var5 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[145];
                        if (var$7 !== null) {
                            $var18 = var$7.$value;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == $var18) {
                                    var$9 = $var5.$key;
                                    if (var$7 !== var$9 && !(var$7 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        }
                        var$9 = $var5 === null ? null : $var5.$value0;
                        $var5 = var$9.$watchedObject;
                        if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                            var$9.$watchedObject = $var13;
                            var$9.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    }
                    v: {
                        $var17 = $this.$field_82222_j;
                        if ($var17 > 0) {
                            $var17 = $var17 - 1 | 0;
                            $this.$field_82222_j = $var17;
                            if (!$var17) {
                                e: {
                                    $var13 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                                    $var5 = $rt_s(1417);
                                    $var14 = $rt_s(1417);
                                    if ($var5 !== $var14) {
                                        $var1 = $var5.$nativeString.length;
                                        $var19 = $var14.$nativeString.length;
                                        if ($var1 < $var19)
                                            $var19 = $var1;
                                        $var17 = 0;
                                        w: {
                                            while (true) {
                                                if ($var17 >= $var19) {
                                                    $var5.$nativeString.length;
                                                    $var14.$nativeString.length;
                                                    break e;
                                                }
                                                if ($var17 < 0)
                                                    break w;
                                                if ($var17 >= $var5.$nativeString.length)
                                                    break w;
                                                $var18 = $var5.$nativeString.charCodeAt($var17);
                                                if ($var17 < 0)
                                                    break;
                                                if ($var17 >= $var14.$nativeString.length)
                                                    break;
                                                if ($var18 - $var14.$nativeString.charCodeAt($var17) | 0)
                                                    break e;
                                                $var17 = $var17 + 1 | 0;
                                            }
                                            $var14 = new jl_StringIndexOutOfBoundsException;
                                            jl_IndexOutOfBoundsException__init_($var14);
                                            $rt_throw($var14);
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                }
                                $var14 = $rt_s(1417);
                                x: {
                                    y: {
                                        j: while (true) {
                                            if ($var13 === null) {
                                                $var13 = null;
                                                break x;
                                            }
                                            z: {
                                                $var5 = $var13.$key0;
                                                if ($var14 === $var5)
                                                    $var17 = 0;
                                                else {
                                                    $var1 = $var14.$nativeString.length;
                                                    $var19 = $var5.$nativeString.length;
                                                    if ($var1 < $var19)
                                                        $var19 = $var1;
                                                    $var1 = 0;
                                                    while (true) {
                                                        if ($var1 >= $var19) {
                                                            $var17 = $var14.$nativeString.length - $var5.$nativeString.length | 0;
                                                            break z;
                                                        }
                                                        if ($var1 < 0)
                                                            break y;
                                                        if ($var1 >= $var14.$nativeString.length)
                                                            break y;
                                                        $var18 = $var14.$nativeString.charCodeAt($var1);
                                                        if ($var1 < 0)
                                                            break j;
                                                        if ($var1 >= $var5.$nativeString.length)
                                                            break j;
                                                        $var17 = $var18 - $var5.$nativeString.charCodeAt($var1) | 0;
                                                        if ($var17)
                                                            break;
                                                        $var1 = $var1 + 1 | 0;
                                                    }
                                                }
                                            }
                                            if (!$var17)
                                                break x;
                                            $var13 = $var17 >= 0 ? $var13.$right : $var13.$left;
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                                $var14 = $var13 === null ? null : $var13.$value2;
                                if ($var14 === null ? 0 : $var14.$valueBoolean) {
                                    $var8 = $this.$posY;
                                    var$26 = $var8 | 0;
                                    if ($var8 < var$26)
                                        var$26 = var$26 - 1 | 0;
                                    $var8 = $this.$posX;
                                    $var12 = $var8 | 0;
                                    if ($var8 < $var12)
                                        $var12 = $var12 - 1 | 0;
                                    $var8 = $this.$posZ;
                                    $var15 = $var8 | 0;
                                    if ($var8 < $var15)
                                        $var15 = $var15 - 1 | 0;
                                    $var17 = 0;
                                    $var18 = (-1);
                                    ba: while (true) {
                                        if ($var18 > 1) {
                                            if (!$var17)
                                                break v;
                                            $var14 = $this.$worldObj;
                                            $var13 = null;
                                            $var1 = 1012;
                                            $var18 = $this.$posX | 0;
                                            $var19 = $this.$posY | 0;
                                            $var7 = $this.$posZ | 0;
                                            $var17 = 0;
                                            $var20 = 0;
                                            var$14 = $var18;
                                            var$15 = $var19;
                                            $var4 = $var7;
                                            $var5 = $var14.$worldAccesses;
                                            $var9 = $rt_compare($var20, $var5.$size0);
                                            if ($var9 < 0) {
                                                if ($var20 >= 0 && $var9 < 0) {
                                                    $var5 = $var5.$array.data[$var20];
                                                    var$7 = $var5.$mcServer.$serverConfigManager;
                                                    $var8 = 64.0;
                                                    $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                                    $var5 = new nms_Packet61DoorChange;
                                                    nms_Packet_$callClinit();
                                                    nles_SysUtil_$callClinit();
                                                    $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                    $var5.$sfxID = $var1;
                                                    $var5.$posX1 = $var18;
                                                    $var5.$posY1 = $var19;
                                                    $var5.$posZ1 = $var7;
                                                    $var5.$auxData = $var17;
                                                    $var5.$disableRelativeVolume = 0;
                                                    $ptr = 12;
                                                    continue main;
                                                }
                                                $var14 = new jl_IndexOutOfBoundsException;
                                                $var14.$suppressionEnabled = 1;
                                                $var14.$writableStackTrace = 1;
                                                $rt_throw($var14);
                                            }
                                            break v;
                                        }
                                        $var19 = (-1);
                                        while ($var19 <= 1) {
                                            $var7 = 0;
                                            if ($var7 <= 3)
                                                break ba;
                                            $var19 = $var19 + 1 | 0;
                                        }
                                        $var18 = $var18 + 1 | 0;
                                    }
                                    $var20 = $var12 + $var18 | 0;
                                    $var9 = var$26 + $var7 | 0;
                                    $var10 = $var15 + $var19 | 0;
                                    $var14 = $this.$worldObj;
                                    $ptr = 11;
                                    continue main;
                                }
                            }
                        }
                    }
                    if (!($this.$ticksExisted % 20 | 0)) {
                        $var14 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[var$27];
                        if ($var13 === null) {
                            $var14 = $var14.$elementData.data[0];
                            while ($var14 !== null && $var14.$key !== null) {
                                $var14 = $var14.$next3;
                            }
                        } else {
                            $var17 = $var13.$value;
                            var$4 = $var14.$elementData.data;
                            $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                            while ($var14 !== null) {
                                if ($var14.$origKeyHash == $var17) {
                                    $var5 = $var14.$key;
                                    if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                        break;
                                }
                                $var14 = $var14.$next3;
                            }
                        }
                        var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                        if (var$10 > 0.0) {
                            var$11 = var$10 + 1.0;
                            $var14 = $this.$dataWatcher;
                            var$12 = 0.0;
                            $var13 = nms_SharedMonsterAttributes_maxHealth;
                            if ($this.$attributeMap === null)
                                $this.$attributeMap = nms_ServersideAttributeMap__init_();
                            $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                            $var13 = $var13 === null ? null : $var13.$value0;
                            if ($var13.$field_111133_g) {
                                $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                $var13.$field_111133_g = 0;
                            }
                            var$10 = $var13.$field_111139_h;
                            if (var$11 >= var$12)
                                var$12 = var$11 <= var$10 ? var$11 : var$10;
                            $var13 = new jl_Float;
                            $var13.$value3 = var$12;
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[var$27];
                            if (var$7 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if ($var13 === $var5)
                                $var17 = 1;
                            else
                                bb: {
                                    if ($var5 instanceof jl_Float) {
                                        var$11 = $var13.$value3;
                                        var$12 = $var5.$value3;
                                        if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                            $var17 = 1;
                                            break bb;
                                        }
                                    }
                                    $var17 = 0;
                                }
                            if (!$var17) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        }
                    }
                    return;
                }
                $var17 = $this.$ticksExisted;
                var$4 = $this.$field_82223_h.data;
                $var18 = $var1 - 1 | 0;
                if ($var17 < var$4[$var18])
                    continue;
                else
                    break;
            }
            $var7 = $var17 + 10 | 0;
            $var14 = $this.$rand;
            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$29;
            $var17 = Long_lo(Long_shru(var$29, $var10));
            while (true) {
                $var19 = $var17 % 10 | 0;
                if ((($var17 - $var19 | 0) + $var9 | 0) >= 0)
                    break;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                $var17 = Long_lo(Long_shru(var$29, $var10));
            }
            var$4[$var18] = $var7 + $var19 | 0;
            if ($this.$worldObj.$difficultySetting < 2)
                continue;
            var$4 = $this.$field_82224_i.data;
            $var10003 = var$4[$var18];
            var$4[$var18] = var$4[$var18] + 1 | 0;
            if ($var10003 <= 15)
                continue;
            else {
                $var8 = $this.$posX;
                $var4 = $var8 - 10.0;
                $var6 = $var8 + 10.0;
                if ($var4 < $var6) {
                    var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$32;
                    var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                    var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$33;
                    $var4 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * ($var6 - $var4) + $var4;
                }
                $var8 = $this.$posY;
                $var6 = $var8 - 5.0;
                var$34 = $var8 + 5.0;
                if ($var6 < var$34) {
                    var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$32;
                    var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                    var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$33;
                    $var6 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * (var$34 - $var6) + $var6;
                }
                var$14 = $this.$posZ;
                $var8 = var$14 - 10.0;
                var$14 = var$14 + 10.0;
                if ($var8 < var$14) {
                    var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$29;
                    var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$29, var$22))), 27);
                    var$29 = Long_and(Long_add(Long_mul(var$29, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$29;
                    $var8 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$29, var$23))))) * 1.1102230246251565E-16 * (var$14 - $var8) + $var8;
                }
                $var19 = $var1 + 1 | 0;
                $var17 = 1;
                continue main;
            }
        }
        $ptr = 8;
        continue main;
    case 6:
        $tmp = nms_World_selectEntitiesWithinAABB($var14, $var13, var$9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var16 = 0;
        bc: {
            r: {
                bd: while (true) {
                    if ($var16 >= 10)
                        break bc;
                    $var18 = $var13.$size0;
                    if ($var18 ? 0 : 1)
                        break bc;
                    $var14 = $this.$rand;
                    var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$29;
                    $var11 = Long_lo(Long_shru(var$29, $var10));
                    $var19 = $var18 - 1 | 0;
                    if (!($var18 & $var19))
                        $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt($var18), Long_fromInt($var11)), 31));
                    else
                        while (true) {
                            $var7 = $var11 % $var18 | 0;
                            if ((($var11 - $var7 | 0) + $var19 | 0) >= 0)
                                break;
                            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$29;
                            $var11 = Long_lo(Long_shru(var$29, $var10));
                        }
                    if ($var7 < 0)
                        break r;
                    if ($var7 >= $var18)
                        break r;
                    $var5 = $var13.$array.data[$var7];
                    if ($var5 !== $this) {
                        be: {
                            if (!$var5.$isDead) {
                                $var14 = $var5.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$7 = jl_Integer_integerCache.data[var$27];
                                if (var$7 === null) {
                                    $var14 = $var14.$elementData.data[0];
                                    while ($var14 !== null && $var14.$key !== null) {
                                        $var14 = $var14.$next3;
                                    }
                                } else {
                                    $var18 = var$7.$value;
                                    var$4 = $var14.$elementData.data;
                                    $var14 = var$4[$var18 & (var$4.length - 1 | 0)];
                                    while ($var14 !== null) {
                                        if ($var14.$origKeyHash == $var18) {
                                            var$9 = $var14.$key;
                                            if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                                break;
                                        }
                                        $var14 = $var14.$next3;
                                    }
                                }
                                if (($var14 === null ? null : $var14.$value0).$watchedObject.$value3 > 0.0) {
                                    $var18 = 1;
                                    break be;
                                }
                            }
                            $var18 = 0;
                        }
                        if ($var18) {
                            $ptr = 10;
                            continue main;
                        }
                    }
                    $var11 = $var13.$size0;
                    $var7 = 0;
                    bf: {
                        while (true) {
                            $var18 = $rt_compare($var7, $var11);
                            if ($var18 >= 0) {
                                $var7 = (-1);
                                break bf;
                            }
                            if ($var7 < 0)
                                break bd;
                            if ($var18 >= 0)
                                break bd;
                            $var14 = $var13.$array.data[$var7];
                            if ($var5 === $var14 ? 1 : $var5 === null ? ($var14 !== null ? 0 : 1) : !($var14 instanceof nms_Entity) ? 0 : $var14.$entityId != $var5.$entityId ? 0 : 1)
                                break;
                            $var7 = $var7 + 1 | 0;
                        }
                    }
                    if ($var7 >= 0)
                        ju_ArrayList_remove($var13, $var7);
                    $var16 = $var16 + 1 | 0;
                }
                $var14 = new jl_IndexOutOfBoundsException;
                $var14.$suppressionEnabled = 1;
                $var14.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var14);
                $rt_throw($var14);
            }
            $var14 = new jl_IndexOutOfBoundsException;
            $var14.$suppressionEnabled = 1;
            $var14.$writableStackTrace = 1;
            $rt_throw($var14);
        }
        while (true) {
            $var1 = $var1 + 1 | 0;
            if ($var1 >= 3) {
                $var14 = $this.$attackTarget;
                if ($var14 === null) {
                    $var14 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$26];
                    $var13 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[145];
                    if (var$9 !== null) {
                        $var18 = var$9.$value;
                        var$4 = $var13.$elementData.data;
                        $var13 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var13 !== null) {
                            if ($var13.$origKeyHash == $var18) {
                                $var5 = $var13.$key;
                                if (var$9 !== $var5 && !(var$9 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var13 = $var13.$next3;
                        }
                    } else {
                        $var13 = $var13.$elementData.data[0];
                        while ($var13 !== null && $var13.$key !== null) {
                            $var13 = $var13.$next3;
                        }
                    }
                    $var5 = $var13 === null ? null : $var13.$value0;
                    $var13 = $var5.$watchedObject;
                    if (!(var$7 === $var13 ? 1 : $var13 instanceof jl_Integer && $var13.$value == var$7.$value ? 1 : 0)) {
                        $var5.$watchedObject = var$7;
                        $var5.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                } else {
                    $var17 = $var14.$entityId;
                    $var14 = $this.$dataWatcher;
                    if ($var17 >= (-128) && $var17 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                    } else {
                        $var13 = new jl_Integer;
                        $var13.$value = $var17;
                    }
                    $var5 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[145];
                    if (var$7 !== null) {
                        $var18 = var$7.$value;
                        var$4 = $var5.$elementData.data;
                        $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == $var18) {
                                var$9 = $var5.$key;
                                if (var$7 !== var$9 && !(var$7 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    } else {
                        $var5 = $var5.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    }
                    var$9 = $var5 === null ? null : $var5.$value0;
                    $var5 = var$9.$watchedObject;
                    if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                        var$9.$watchedObject = $var13;
                        var$9.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                }
                bg: {
                    $var17 = $this.$field_82222_j;
                    if ($var17 > 0) {
                        $var17 = $var17 - 1 | 0;
                        $this.$field_82222_j = $var17;
                        if (!$var17) {
                            bh: {
                                $var13 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                                $var5 = $rt_s(1417);
                                $var14 = $rt_s(1417);
                                if ($var5 !== $var14) {
                                    $var1 = $var5.$nativeString.length;
                                    $var19 = $var14.$nativeString.length;
                                    if ($var1 < $var19)
                                        $var19 = $var1;
                                    $var17 = 0;
                                    bi: {
                                        while (true) {
                                            if ($var17 >= $var19) {
                                                $var5.$nativeString.length;
                                                $var14.$nativeString.length;
                                                break bh;
                                            }
                                            if ($var17 < 0)
                                                break bi;
                                            if ($var17 >= $var5.$nativeString.length)
                                                break bi;
                                            $var18 = $var5.$nativeString.charCodeAt($var17);
                                            if ($var17 < 0)
                                                break;
                                            if ($var17 >= $var14.$nativeString.length)
                                                break;
                                            if ($var18 - $var14.$nativeString.charCodeAt($var17) | 0)
                                                break bh;
                                            $var17 = $var17 + 1 | 0;
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                            }
                            $var14 = $rt_s(1417);
                            bj: {
                                bk: {
                                    bl: while (true) {
                                        if ($var13 === null) {
                                            $var13 = null;
                                            break bj;
                                        }
                                        bm: {
                                            $var5 = $var13.$key0;
                                            if ($var14 === $var5)
                                                $var17 = 0;
                                            else {
                                                $var1 = $var14.$nativeString.length;
                                                $var19 = $var5.$nativeString.length;
                                                if ($var1 < $var19)
                                                    $var19 = $var1;
                                                $var1 = 0;
                                                while (true) {
                                                    if ($var1 >= $var19) {
                                                        $var17 = $var14.$nativeString.length - $var5.$nativeString.length | 0;
                                                        break bm;
                                                    }
                                                    if ($var1 < 0)
                                                        break bk;
                                                    if ($var1 >= $var14.$nativeString.length)
                                                        break bk;
                                                    $var18 = $var14.$nativeString.charCodeAt($var1);
                                                    if ($var1 < 0)
                                                        break bl;
                                                    if ($var1 >= $var5.$nativeString.length)
                                                        break bl;
                                                    $var17 = $var18 - $var5.$nativeString.charCodeAt($var1) | 0;
                                                    if ($var17)
                                                        break;
                                                    $var1 = $var1 + 1 | 0;
                                                }
                                            }
                                        }
                                        if (!$var17)
                                            break bj;
                                        $var13 = $var17 >= 0 ? $var13.$right : $var13.$left;
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                                $var14 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var14);
                                $rt_throw($var14);
                            }
                            $var14 = $var13 === null ? null : $var13.$value2;
                            if ($var14 === null ? 0 : $var14.$valueBoolean) {
                                $var8 = $this.$posY;
                                var$26 = $var8 | 0;
                                if ($var8 < var$26)
                                    var$26 = var$26 - 1 | 0;
                                $var8 = $this.$posX;
                                $var12 = $var8 | 0;
                                if ($var8 < $var12)
                                    $var12 = $var12 - 1 | 0;
                                $var8 = $this.$posZ;
                                $var15 = $var8 | 0;
                                if ($var8 < $var15)
                                    $var15 = $var15 - 1 | 0;
                                $var17 = 0;
                                $var18 = (-1);
                                bn: while (true) {
                                    if ($var18 > 1) {
                                        if (!$var17)
                                            break bg;
                                        $var14 = $this.$worldObj;
                                        $var13 = null;
                                        $var1 = 1012;
                                        $var18 = $this.$posX | 0;
                                        $var19 = $this.$posY | 0;
                                        $var7 = $this.$posZ | 0;
                                        $var17 = 0;
                                        $var20 = 0;
                                        var$14 = $var18;
                                        var$15 = $var19;
                                        $var4 = $var7;
                                        $var5 = $var14.$worldAccesses;
                                        $var9 = $rt_compare($var20, $var5.$size0);
                                        if ($var9 < 0) {
                                            if ($var20 >= 0 && $var9 < 0) {
                                                $var5 = $var5.$array.data[$var20];
                                                var$7 = $var5.$mcServer.$serverConfigManager;
                                                $var8 = 64.0;
                                                $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                                $var5 = new nms_Packet61DoorChange;
                                                nms_Packet_$callClinit();
                                                nles_SysUtil_$callClinit();
                                                $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                $var5.$sfxID = $var1;
                                                $var5.$posX1 = $var18;
                                                $var5.$posY1 = $var19;
                                                $var5.$posZ1 = $var7;
                                                $var5.$auxData = $var17;
                                                $var5.$disableRelativeVolume = 0;
                                                $ptr = 12;
                                                continue main;
                                            }
                                            $var14 = new jl_IndexOutOfBoundsException;
                                            $var14.$suppressionEnabled = 1;
                                            $var14.$writableStackTrace = 1;
                                            $rt_throw($var14);
                                        }
                                        break bg;
                                    }
                                    $var19 = (-1);
                                    while ($var19 <= 1) {
                                        $var7 = 0;
                                        if ($var7 <= 3)
                                            break bn;
                                        $var19 = $var19 + 1 | 0;
                                    }
                                    $var18 = $var18 + 1 | 0;
                                }
                                $var20 = $var12 + $var18 | 0;
                                $var9 = var$26 + $var7 | 0;
                                $var10 = $var15 + $var19 | 0;
                                $var14 = $this.$worldObj;
                                $ptr = 11;
                                continue main;
                            }
                        }
                    }
                }
                if (!($this.$ticksExisted % 20 | 0)) {
                    $var14 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var13 = jl_Integer_integerCache.data[var$27];
                    if ($var13 === null) {
                        $var14 = $var14.$elementData.data[0];
                        while ($var14 !== null && $var14.$key !== null) {
                            $var14 = $var14.$next3;
                        }
                    } else {
                        $var17 = $var13.$value;
                        var$4 = $var14.$elementData.data;
                        $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                        while ($var14 !== null) {
                            if ($var14.$origKeyHash == $var17) {
                                $var5 = $var14.$key;
                                if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                    break;
                            }
                            $var14 = $var14.$next3;
                        }
                    }
                    var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                    if (var$10 > 0.0) {
                        var$11 = var$10 + 1.0;
                        $var14 = $this.$dataWatcher;
                        var$12 = 0.0;
                        $var13 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                        $var13 = $var13 === null ? null : $var13.$value0;
                        if ($var13.$field_111133_g) {
                            $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                            $var13.$field_111133_g = 0;
                        }
                        var$10 = $var13.$field_111139_h;
                        if (var$11 >= var$12)
                            var$12 = var$11 <= var$10 ? var$11 : var$10;
                        $var13 = new jl_Float;
                        $var13.$value3 = var$12;
                        $var5 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[var$27];
                        if (var$7 === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var18 = var$7.$value;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == $var18) {
                                    var$9 = $var5.$key;
                                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$9 = $var5 === null ? null : $var5.$value0;
                        $var5 = var$9.$watchedObject;
                        if ($var13 === $var5)
                            $var17 = 1;
                        else
                            bo: {
                                if ($var5 instanceof jl_Float) {
                                    var$11 = $var13.$value3;
                                    var$12 = $var5.$value3;
                                    if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                        $var17 = 1;
                                        break bo;
                                    }
                                }
                                $var17 = 0;
                            }
                        if (!$var17) {
                            var$9.$watchedObject = $var13;
                            var$9.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    }
                }
                return;
            }
            $var17 = $this.$ticksExisted;
            var$4 = $this.$field_82223_h.data;
            $var18 = $var1 - 1 | 0;
            if ($var17 < var$4[$var18])
                continue;
            $var7 = $var17 + 10 | 0;
            $var14 = $this.$rand;
            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$29;
            $var17 = Long_lo(Long_shru(var$29, $var10));
            while (true) {
                $var19 = $var17 % 10 | 0;
                if ((($var17 - $var19 | 0) + $var9 | 0) >= 0)
                    break;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                $var17 = Long_lo(Long_shru(var$29, $var10));
            }
            var$4[$var18] = $var7 + $var19 | 0;
            if ($this.$worldObj.$difficultySetting >= 2) {
                var$4 = $this.$field_82224_i.data;
                $var10003 = var$4[$var18];
                var$4[$var18] = var$4[$var18] + 1 | 0;
                if ($var10003 > 15) {
                    $var8 = $this.$posX;
                    $var4 = $var8 - 10.0;
                    $var6 = $var8 + 10.0;
                    if ($var4 < $var6) {
                        var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$32;
                        var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                        var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$33;
                        $var4 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * ($var6 - $var4) + $var4;
                    }
                    $var8 = $this.$posY;
                    $var6 = $var8 - 5.0;
                    var$34 = $var8 + 5.0;
                    if ($var6 < var$34) {
                        var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$32;
                        var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                        var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$33;
                        $var6 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * (var$34 - $var6) + $var6;
                    }
                    var$14 = $this.$posZ;
                    $var8 = var$14 - 10.0;
                    var$14 = var$14 + 10.0;
                    if ($var8 < var$14) {
                        var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$29, var$22))), 27);
                        var$29 = Long_and(Long_add(Long_mul(var$29, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        $var8 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$29, var$23))))) * 1.1102230246251565E-16 * (var$14 - $var8) + $var8;
                    }
                    $var19 = $var1 + 1 | 0;
                    $var17 = 1;
                    $ptr = 5;
                    continue main;
                }
            }
            $var14 = $this.$dataWatcher;
            $var17 = 17 + $var1 | 0;
            $var14 = $var14.$watchedObjects;
            $var20 = $rt_compare($var17, (-128));
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var13 = new jl_Integer;
                $var13.$value = $var17;
            }
            if ($var13 === null) {
                $var14 = $var14.$elementData.data[0];
                while ($var14 !== null && $var14.$key !== null) {
                    $var14 = $var14.$next3;
                }
            } else {
                $var11 = $var13.$value;
                var$4 = $var14.$elementData.data;
                $var14 = var$4[$var11 & (var$4.length - 1 | 0)];
                while ($var14 !== null) {
                    if ($var14.$origKeyHash == $var11) {
                        $var5 = $var14.$key;
                        if ($var13 !== $var5 && !($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var11 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var14 = $var14.$next3;
                }
            }
            $var19 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value;
            if ($var19 <= 0) {
                $var14 = $this.$worldObj;
                $var13 = $rt_cls(nms_EntityLivingBase);
                $var5 = $this.$boundingBox0;
                $var4 = $var5.$minX0 - 20.0;
                $var6 = $var5.$minY0 - 8.0;
                var$34 = $var5.$minZ0 - 20.0;
                var$14 = $var5.$maxX0 + 20.0;
                var$15 = $var5.$maxY + 8.0;
                $var8 = $var5.$maxZ0 + 20.0;
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var18 = var$7.$nextPoolIndex;
                $var5 = var$7.$listAABB;
                $var7 = $var5.$size0;
                $var19 = $rt_compare($var18, $var7);
                if ($var19 >= 0) {
                    var$9 = new nms_AxisAlignedBB;
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                    ju_ArrayList_ensureCapacity($var5, $var7 + 1 | 0);
                    var$4 = $var5.$array.data;
                    $var19 = $var5.$size0;
                    $var5.$size0 = $var19 + 1 | 0;
                    var$4[$var19] = var$9;
                    $var5.$modCount = $var5.$modCount + 1 | 0;
                } else if ($var18 >= 0 && $var19 < 0) {
                    var$9 = $var5.$array.data[$var18];
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                } else {
                    $var14 = new jl_IndexOutOfBoundsException;
                    $var14.$suppressionEnabled = 1;
                    $var14.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var14);
                    $rt_throw($var14);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var5 = nms_EntityWither_attackEntitySelector;
                continue main;
            }
            $var14 = $this.$worldObj.$entityIdMap;
            $var7 = $var19 ^ ($var19 >>> 20 | 0) ^ ($var19 >>> 12 | 0);
            $var16 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
            var$4 = $var14.$slots.data;
            $var14 = var$4[$var16 & (var$4.length - 1 | 0)];
            bp: {
                while ($var14 !== null) {
                    if ($var14.$hashEntry == $var19) {
                        $var14 = $var14.$valueEntry;
                        break bp;
                    }
                    $var14 = $var14.$nextEntry0;
                }
                $var14 = null;
            }
            $var14 = $var14;
            if ($var14 !== null && $var14.$isEntityAlive()) {
                $var8 = $this.$posX - $var14.$posX;
                var$14 = $this.$posY - $var14.$posY;
                var$15 = $this.$posZ - $var14.$posZ;
                if ($var8 * $var8 + var$14 * var$14 + var$15 * var$15 <= 900.0)
                    break;
            }
            $var13 = $this.$dataWatcher;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[var$26];
            $var14 = $var13.$watchedObjects;
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var5 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var5 = new jl_Integer;
                $var5.$value = $var17;
            }
            if ($var5 === null) {
                var$9 = $var14.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                $var18 = $var5.$value;
                var$4 = $var14.$elementData.data;
                var$9 = var$4[$var18 & (var$4.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var18) {
                        $var14 = var$9.$key;
                        if ($var5 !== $var14 && !($var5 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            $var5 = var$9 === null ? null : var$9.$value0;
            $var14 = $var5.$watchedObject;
            if (!(var$7 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == var$7.$value ? 1 : 0)) {
                $var5.$watchedObject = var$7;
                $var5.$watched = 1;
                $var13.$objectChanged = 1;
            }
        }
        $ptr = 8;
        continue main;
    case 7:
        bc: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var5, $var13);
                if ($rt_suspending()) {
                    break main;
                }
                break bc;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$38 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0(var$7, var$38);
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace($var5, var$7);
        }
        bq: {
            t: while (true) {
                while (true) {
                    $var10 = $var10 + 1 | 0;
                    while (true) {
                        $var5 = var$37.$playerEntityList;
                        $var11 = $rt_compare($var10, $var5.$size0);
                        if ($var11 < 0)
                            break;
                        $var9 = $var9 + 1 | 0;
                        $var13 = $var14.$worldAccesses;
                        $var10 = $rt_compare($var9, $var13.$size0);
                        if ($var10 >= 0) {
                            $var14 = $this.$dataWatcher;
                            if ($var1 >= (-128) && $var1 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                $var13 = jl_Integer_integerCache.data[$var1 + 128 | 0];
                            } else {
                                $var13 = new jl_Integer;
                                $var13.$value = $var1;
                            }
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[148];
                            if (var$7 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !(var$7 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                            if (!($this.$ticksExisted % 10 | 0)) {
                                $var14 = $this.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                $var5 = jl_Integer_integerCache.data[134];
                                if ($var5 === null) {
                                    $var14 = $var14.$elementData.data[0];
                                    while ($var14 !== null && $var14.$key !== null) {
                                        $var14 = $var14.$next3;
                                    }
                                } else {
                                    $var18 = $var5.$value;
                                    var$4 = $var14.$elementData.data;
                                    $var14 = var$4[$var18 & (var$4.length - 1 | 0)];
                                    while ($var14 !== null) {
                                        if ($var14.$origKeyHash == $var18) {
                                            $var13 = $var14.$key;
                                            if ($var5 !== $var13 && !jl_Integer_equals($var5, $var13) ? 0 : 1)
                                                break;
                                        }
                                        $var14 = $var14.$next3;
                                    }
                                }
                                var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                                if (var$10 > 0.0) {
                                    var$11 = var$10 + 10.0;
                                    $var14 = $this.$dataWatcher;
                                    var$12 = 0.0;
                                    $var13 = nms_SharedMonsterAttributes_maxHealth;
                                    if ($this.$attributeMap === null)
                                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                                    $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                                    $var13 = $var13 === null ? null : $var13.$value0;
                                    if ($var13.$field_111133_g) {
                                        $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                        $var13.$field_111133_g = 0;
                                    }
                                    var$10 = $var13.$field_111139_h;
                                    if (var$11 >= var$12)
                                        var$12 = var$11 <= var$10 ? var$11 : var$10;
                                    $var13 = new jl_Float;
                                    $var13.$value3 = var$12;
                                    $var5 = $var14.$watchedObjects;
                                    jl_Integer_ensureIntegerCache();
                                    var$7 = jl_Integer_integerCache.data[134];
                                    if (var$7 === null) {
                                        $var5 = $var5.$elementData.data[0];
                                        while ($var5 !== null && $var5.$key !== null) {
                                            $var5 = $var5.$next3;
                                        }
                                    } else {
                                        $var18 = var$7.$value;
                                        var$4 = $var5.$elementData.data;
                                        $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                        while ($var5 !== null) {
                                            if ($var5.$origKeyHash == $var18) {
                                                var$9 = $var5.$key;
                                                if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                                    break;
                                            }
                                            $var5 = $var5.$next3;
                                        }
                                    }
                                    var$9 = $var5 === null ? null : $var5.$value0;
                                    $var5 = var$9.$watchedObject;
                                    if ($var13 === $var5)
                                        $var17 = 1;
                                    else
                                        br: {
                                            if ($var5 instanceof jl_Float) {
                                                var$11 = $var13.$value3;
                                                var$12 = $var5.$value3;
                                                if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                                    $var17 = 1;
                                                    break br;
                                                }
                                            }
                                            $var17 = 0;
                                        }
                                    if (!$var17) {
                                        var$9.$watchedObject = $var13;
                                        var$9.$watched = 1;
                                        $var14.$objectChanged = 1;
                                    }
                                }
                            }
                            return;
                        }
                        if ($var9 < 0)
                            break bq;
                        if ($var10 >= 0)
                            break bq;
                        var$37 = $var13.$array.data[$var9].$mcServer.$serverConfigManager;
                        $var13 = new nms_Packet61DoorChange;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $var13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $var13.$sfxID = $var17;
                        $var13.$posX1 = $var18;
                        $var13.$posY1 = $var19;
                        $var13.$posZ1 = $var7;
                        $var13.$auxData = $var20;
                        $var13.$disableRelativeVolume = 1;
                        $var10 = 0;
                        $var15 = $var13 instanceof nms_Packet3Chat;
                        var$9 = $var13;
                    }
                    if ($var10 < 0)
                        break t;
                    if ($var11 >= 0)
                        break t;
                    $var5 = $var5.$array.data[$var10].$playerNetServerHandler;
                    if (!$var15)
                        break;
                    var$27 = $var5.$playerEntity.$chatVisibility;
                    if (var$27 == 2)
                        continue;
                    if (var$27 != 1)
                        break;
                    if (var$9.$isServer)
                        break;
                }
                try {
                    $var5 = $var5.$netManager;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                var$7 = jl_System_errCache;
                if (var$7 === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    var$38 = ji_ByteArrayOutputStream__init_();
                    ji_PrintStream__init_0(var$7, var$38);
                    jl_System_errCache = var$7;
                }
                var$7 = jl_System_errCache;
                jl_Throwable_printStackTrace($var5, var$7);
            }
            $var14 = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($var14);
            $rt_throw($var14);
        }
        $var14 = new jl_IndexOutOfBoundsException;
        $var14.$suppressionEnabled = 1;
        $var14.$writableStackTrace = 1;
        $rt_throw($var14);
    case 8:
        $tmp = nms_EntityLivingBase_canEntityBeSeen($this, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if (!$var19) {
            while (true) {
                $var13 = $this.$dataWatcher;
                jl_Integer_ensureIntegerCache();
                var$7 = jl_Integer_integerCache.data[var$26];
                $var14 = $var13.$watchedObjects;
                if ($var20 >= 0 && $var17 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var5 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                } else {
                    $var5 = new jl_Integer;
                    $var5.$value = $var17;
                }
                if ($var5 === null) {
                    var$9 = $var14.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    $var18 = $var5.$value;
                    var$4 = $var14.$elementData.data;
                    var$9 = var$4[$var18 & (var$4.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == $var18) {
                            $var14 = var$9.$key;
                            if ($var5 !== $var14 && !($var5 !== $var14 ? ($var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                $var5 = var$9 === null ? null : var$9.$value0;
                $var14 = $var5.$watchedObject;
                if (!(var$7 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == var$7.$value ? 1 : 0)) {
                    $var5.$watchedObject = var$7;
                    $var5.$watched = 1;
                    $var13.$objectChanged = 1;
                }
                while (true) {
                    $var1 = $var1 + 1 | 0;
                    if ($var1 >= 3) {
                        $var14 = $this.$attackTarget;
                        if ($var14 === null) {
                            $var14 = $this.$dataWatcher;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[var$26];
                            $var13 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$9 = jl_Integer_integerCache.data[145];
                            if (var$9 !== null) {
                                $var18 = var$9.$value;
                                var$4 = $var13.$elementData.data;
                                $var13 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var13 !== null) {
                                    if ($var13.$origKeyHash == $var18) {
                                        $var5 = $var13.$key;
                                        if (var$9 !== $var5 && !(var$9 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                            break;
                                    }
                                    $var13 = $var13.$next3;
                                }
                            } else {
                                $var13 = $var13.$elementData.data[0];
                                while ($var13 !== null && $var13.$key !== null) {
                                    $var13 = $var13.$next3;
                                }
                            }
                            $var5 = $var13 === null ? null : $var13.$value0;
                            $var13 = $var5.$watchedObject;
                            if (!(var$7 === $var13 ? 1 : $var13 instanceof jl_Integer && $var13.$value == var$7.$value ? 1 : 0)) {
                                $var5.$watchedObject = var$7;
                                $var5.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        } else {
                            $var17 = $var14.$entityId;
                            $var14 = $this.$dataWatcher;
                            if ($var17 >= (-128) && $var17 <= 127) {
                                jl_Integer_ensureIntegerCache();
                                $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                            } else {
                                $var13 = new jl_Integer;
                                $var13.$value = $var17;
                            }
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[145];
                            if (var$7 !== null) {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !(var$7 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        }
                        e: {
                            $var17 = $this.$field_82222_j;
                            if ($var17 > 0) {
                                $var17 = $var17 - 1 | 0;
                                $this.$field_82222_j = $var17;
                                if (!$var17) {
                                    f: {
                                        $var13 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                                        $var5 = $rt_s(1417);
                                        $var14 = $rt_s(1417);
                                        if ($var5 !== $var14) {
                                            $var1 = $var5.$nativeString.length;
                                            $var19 = $var14.$nativeString.length;
                                            if ($var1 < $var19)
                                                $var19 = $var1;
                                            $var17 = 0;
                                            bs: {
                                                while (true) {
                                                    if ($var17 >= $var19) {
                                                        $var5.$nativeString.length;
                                                        $var14.$nativeString.length;
                                                        break f;
                                                    }
                                                    if ($var17 < 0)
                                                        break bs;
                                                    if ($var17 >= $var5.$nativeString.length)
                                                        break bs;
                                                    $var18 = $var5.$nativeString.charCodeAt($var17);
                                                    if ($var17 < 0)
                                                        break;
                                                    if ($var17 >= $var14.$nativeString.length)
                                                        break;
                                                    if ($var18 - $var14.$nativeString.charCodeAt($var17) | 0)
                                                        break f;
                                                    $var17 = $var17 + 1 | 0;
                                                }
                                                $var14 = new jl_StringIndexOutOfBoundsException;
                                                jl_IndexOutOfBoundsException__init_($var14);
                                                $rt_throw($var14);
                                            }
                                            $var14 = new jl_StringIndexOutOfBoundsException;
                                            jl_IndexOutOfBoundsException__init_($var14);
                                            $rt_throw($var14);
                                        }
                                    }
                                    $var14 = $rt_s(1417);
                                    i: {
                                        j: {
                                            bt: while (true) {
                                                if ($var13 === null) {
                                                    $var13 = null;
                                                    break i;
                                                }
                                                k: {
                                                    $var5 = $var13.$key0;
                                                    if ($var14 === $var5)
                                                        $var17 = 0;
                                                    else {
                                                        $var1 = $var14.$nativeString.length;
                                                        $var19 = $var5.$nativeString.length;
                                                        if ($var1 < $var19)
                                                            $var19 = $var1;
                                                        $var1 = 0;
                                                        while (true) {
                                                            if ($var1 >= $var19) {
                                                                $var17 = $var14.$nativeString.length - $var5.$nativeString.length | 0;
                                                                break k;
                                                            }
                                                            if ($var1 < 0)
                                                                break j;
                                                            if ($var1 >= $var14.$nativeString.length)
                                                                break j;
                                                            $var18 = $var14.$nativeString.charCodeAt($var1);
                                                            if ($var1 < 0)
                                                                break bt;
                                                            if ($var1 >= $var5.$nativeString.length)
                                                                break bt;
                                                            $var17 = $var18 - $var5.$nativeString.charCodeAt($var1) | 0;
                                                            if ($var17)
                                                                break;
                                                            $var1 = $var1 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                if (!$var17)
                                                    break i;
                                                $var13 = $var17 >= 0 ? $var13.$right : $var13.$left;
                                            }
                                            $var14 = new jl_StringIndexOutOfBoundsException;
                                            jl_IndexOutOfBoundsException__init_($var14);
                                            $rt_throw($var14);
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                    $var14 = $var13 === null ? null : $var13.$value2;
                                    if ($var14 === null ? 0 : $var14.$valueBoolean) {
                                        $var8 = $this.$posY;
                                        var$26 = $var8 | 0;
                                        if ($var8 < var$26)
                                            var$26 = var$26 - 1 | 0;
                                        $var8 = $this.$posX;
                                        $var12 = $var8 | 0;
                                        if ($var8 < $var12)
                                            $var12 = $var12 - 1 | 0;
                                        $var8 = $this.$posZ;
                                        $var15 = $var8 | 0;
                                        if ($var8 < $var15)
                                            $var15 = $var15 - 1 | 0;
                                        $var17 = 0;
                                        $var18 = (-1);
                                        bu: while (true) {
                                            if ($var18 > 1) {
                                                if (!$var17)
                                                    break e;
                                                $var14 = $this.$worldObj;
                                                $var13 = null;
                                                $var1 = 1012;
                                                $var18 = $this.$posX | 0;
                                                $var19 = $this.$posY | 0;
                                                $var7 = $this.$posZ | 0;
                                                $var17 = 0;
                                                $var20 = 0;
                                                var$14 = $var18;
                                                var$15 = $var19;
                                                $var4 = $var7;
                                                $var5 = $var14.$worldAccesses;
                                                $var9 = $rt_compare($var20, $var5.$size0);
                                                if ($var9 < 0) {
                                                    if ($var20 >= 0 && $var9 < 0) {
                                                        $var5 = $var5.$array.data[$var20];
                                                        var$7 = $var5.$mcServer.$serverConfigManager;
                                                        $var8 = 64.0;
                                                        $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                                        $var5 = new nms_Packet61DoorChange;
                                                        nms_Packet_$callClinit();
                                                        nles_SysUtil_$callClinit();
                                                        $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                        $var5.$sfxID = $var1;
                                                        $var5.$posX1 = $var18;
                                                        $var5.$posY1 = $var19;
                                                        $var5.$posZ1 = $var7;
                                                        $var5.$auxData = $var17;
                                                        $var5.$disableRelativeVolume = 0;
                                                        $ptr = 12;
                                                        continue main;
                                                    }
                                                    $var14 = new jl_IndexOutOfBoundsException;
                                                    $var14.$suppressionEnabled = 1;
                                                    $var14.$writableStackTrace = 1;
                                                    $rt_throw($var14);
                                                }
                                                break e;
                                            }
                                            $var19 = (-1);
                                            while ($var19 <= 1) {
                                                $var7 = 0;
                                                if ($var7 <= 3)
                                                    break bu;
                                                $var19 = $var19 + 1 | 0;
                                            }
                                            $var18 = $var18 + 1 | 0;
                                        }
                                        $var20 = $var12 + $var18 | 0;
                                        $var9 = var$26 + $var7 | 0;
                                        $var10 = $var15 + $var19 | 0;
                                        $var14 = $this.$worldObj;
                                        $ptr = 11;
                                        continue main;
                                    }
                                }
                            }
                        }
                        if (!($this.$ticksExisted % 20 | 0)) {
                            $var14 = $this.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            $var13 = jl_Integer_integerCache.data[var$27];
                            if ($var13 === null) {
                                $var14 = $var14.$elementData.data[0];
                                while ($var14 !== null && $var14.$key !== null) {
                                    $var14 = $var14.$next3;
                                }
                            } else {
                                $var17 = $var13.$value;
                                var$4 = $var14.$elementData.data;
                                $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                                while ($var14 !== null) {
                                    if ($var14.$origKeyHash == $var17) {
                                        $var5 = $var14.$key;
                                        if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                            break;
                                    }
                                    $var14 = $var14.$next3;
                                }
                            }
                            var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                            if (var$10 > 0.0) {
                                var$11 = var$10 + 1.0;
                                $var14 = $this.$dataWatcher;
                                var$12 = 0.0;
                                $var13 = nms_SharedMonsterAttributes_maxHealth;
                                if ($this.$attributeMap === null)
                                    $this.$attributeMap = nms_ServersideAttributeMap__init_();
                                $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                                $var13 = $var13 === null ? null : $var13.$value0;
                                if ($var13.$field_111133_g) {
                                    $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                    $var13.$field_111133_g = 0;
                                }
                                var$10 = $var13.$field_111139_h;
                                if (var$11 >= var$12)
                                    var$12 = var$11 <= var$10 ? var$11 : var$10;
                                $var13 = new jl_Float;
                                $var13.$value3 = var$12;
                                $var5 = $var14.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$7 = jl_Integer_integerCache.data[var$27];
                                if (var$7 === null) {
                                    $var5 = $var5.$elementData.data[0];
                                    while ($var5 !== null && $var5.$key !== null) {
                                        $var5 = $var5.$next3;
                                    }
                                } else {
                                    $var18 = var$7.$value;
                                    var$4 = $var5.$elementData.data;
                                    $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                    while ($var5 !== null) {
                                        if ($var5.$origKeyHash == $var18) {
                                            var$9 = $var5.$key;
                                            if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                                break;
                                        }
                                        $var5 = $var5.$next3;
                                    }
                                }
                                var$9 = $var5 === null ? null : $var5.$value0;
                                $var5 = var$9.$watchedObject;
                                if ($var13 === $var5)
                                    $var17 = 1;
                                else
                                    bv: {
                                        if ($var5 instanceof jl_Float) {
                                            var$11 = $var13.$value3;
                                            var$12 = $var5.$value3;
                                            if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                                $var17 = 1;
                                                break bv;
                                            }
                                        }
                                        $var17 = 0;
                                    }
                                if (!$var17) {
                                    var$9.$watchedObject = $var13;
                                    var$9.$watched = 1;
                                    $var14.$objectChanged = 1;
                                }
                            }
                        }
                        return;
                    }
                    $var17 = $this.$ticksExisted;
                    var$4 = $this.$field_82223_h.data;
                    $var18 = $var1 - 1 | 0;
                    if ($var17 < var$4[$var18])
                        continue;
                    else
                        break;
                }
                $var7 = $var17 + 10 | 0;
                $var14 = $this.$rand;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                $var17 = Long_lo(Long_shru(var$29, $var10));
                while (true) {
                    $var19 = $var17 % 10 | 0;
                    if ((($var17 - $var19 | 0) + $var9 | 0) >= 0)
                        break;
                    var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var14.$seed = var$29;
                    $var17 = Long_lo(Long_shru(var$29, $var10));
                }
                var$4[$var18] = $var7 + $var19 | 0;
                if ($this.$worldObj.$difficultySetting >= 2) {
                    var$4 = $this.$field_82224_i.data;
                    $var10003 = var$4[$var18];
                    var$4[$var18] = var$4[$var18] + 1 | 0;
                    if ($var10003 > 15) {
                        $var8 = $this.$posX;
                        $var4 = $var8 - 10.0;
                        $var6 = $var8 + 10.0;
                        if ($var4 < $var6) {
                            var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$32;
                            var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                            var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$33;
                            $var4 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * ($var6 - $var4) + $var4;
                        }
                        $var8 = $this.$posY;
                        $var6 = $var8 - 5.0;
                        var$34 = $var8 + 5.0;
                        if ($var6 < var$34) {
                            var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$32;
                            var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                            var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$33;
                            $var6 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * (var$34 - $var6) + $var6;
                        }
                        var$14 = $this.$posZ;
                        $var8 = var$14 - 10.0;
                        var$14 = var$14 + 10.0;
                        if ($var8 < var$14) {
                            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$29;
                            var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$29, var$22))), 27);
                            var$29 = Long_and(Long_add(Long_mul(var$29, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var14.$seed = var$29;
                            $var8 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$29, var$23))))) * 1.1102230246251565E-16 * (var$14 - $var8) + $var8;
                        }
                        $var19 = $var1 + 1 | 0;
                        $var17 = 1;
                        $ptr = 5;
                        continue main;
                    }
                }
                $var14 = $this.$dataWatcher;
                $var17 = 17 + $var1 | 0;
                $var14 = $var14.$watchedObjects;
                $var20 = $rt_compare($var17, (-128));
                if ($var20 >= 0 && $var17 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                } else {
                    $var13 = new jl_Integer;
                    $var13.$value = $var17;
                }
                if ($var13 === null) {
                    $var14 = $var14.$elementData.data[0];
                    while ($var14 !== null && $var14.$key !== null) {
                        $var14 = $var14.$next3;
                    }
                } else {
                    $var11 = $var13.$value;
                    var$4 = $var14.$elementData.data;
                    $var14 = var$4[$var11 & (var$4.length - 1 | 0)];
                    while ($var14 !== null) {
                        if ($var14.$origKeyHash == $var11) {
                            $var5 = $var14.$key;
                            if ($var13 !== $var5 && !($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var11 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var14 = $var14.$next3;
                    }
                }
                $var19 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value;
                if ($var19 <= 0) {
                    $var14 = $this.$worldObj;
                    $var13 = $rt_cls(nms_EntityLivingBase);
                    $var5 = $this.$boundingBox0;
                    $var4 = $var5.$minX0 - 20.0;
                    $var6 = $var5.$minY0 - 8.0;
                    var$34 = $var5.$minZ0 - 20.0;
                    var$14 = $var5.$maxX0 + 20.0;
                    var$15 = $var5.$maxY + 8.0;
                    $var8 = $var5.$maxZ0 + 20.0;
                    var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var18 = var$7.$nextPoolIndex;
                    $var5 = var$7.$listAABB;
                    $var7 = $var5.$size0;
                    $var19 = $rt_compare($var18, $var7);
                    if ($var19 >= 0) {
                        var$9 = new nms_AxisAlignedBB;
                        var$9.$minX0 = $var4;
                        var$9.$minY0 = $var6;
                        var$9.$minZ0 = var$34;
                        var$9.$maxX0 = var$14;
                        var$9.$maxY = var$15;
                        var$9.$maxZ0 = $var8;
                        ju_ArrayList_ensureCapacity($var5, $var7 + 1 | 0);
                        var$4 = $var5.$array.data;
                        $var19 = $var5.$size0;
                        $var5.$size0 = $var19 + 1 | 0;
                        var$4[$var19] = var$9;
                        $var5.$modCount = $var5.$modCount + 1 | 0;
                    } else if ($var18 >= 0 && $var19 < 0) {
                        var$9 = $var5.$array.data[$var18];
                        var$9.$minX0 = $var4;
                        var$9.$minY0 = $var6;
                        var$9.$minZ0 = var$34;
                        var$9.$maxX0 = var$14;
                        var$9.$maxY = var$15;
                        var$9.$maxZ0 = $var8;
                    } else {
                        $var14 = new jl_IndexOutOfBoundsException;
                        $var14.$suppressionEnabled = 1;
                        $var14.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($var14);
                        $rt_throw($var14);
                    }
                    var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                    $var5 = nms_EntityWither_attackEntitySelector;
                    $ptr = 6;
                    continue main;
                }
                $var14 = $this.$worldObj.$entityIdMap;
                $var7 = $var19 ^ ($var19 >>> 20 | 0) ^ ($var19 >>> 12 | 0);
                $var16 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
                var$4 = $var14.$slots.data;
                $var14 = var$4[$var16 & (var$4.length - 1 | 0)];
                bw: {
                    while ($var14 !== null) {
                        if ($var14.$hashEntry == $var19) {
                            $var14 = $var14.$valueEntry;
                            break bw;
                        }
                        $var14 = $var14.$nextEntry0;
                    }
                    $var14 = null;
                }
                $var14 = $var14;
                if ($var14 === null)
                    continue;
                if (!$var14.$isEntityAlive())
                    continue;
                $var8 = $this.$posX - $var14.$posX;
                var$14 = $this.$posY - $var14.$posY;
                var$15 = $this.$posZ - $var14.$posZ;
                if ($var8 * $var8 + var$14 * var$14 + var$15 * var$15 > 900.0)
                    continue;
                else
                    break;
            }
            continue main;
        }
        bx: {
            $var17 = $var1 + 1 | 0;
            $var14 = $var14;
            var$14 = $var14.$posX;
            $var8 = $var14.$posY + $var14.$getEyeHeight() * 0.5;
            var$15 = $var14.$posZ;
            if (!$var17) {
                $var14 = $this.$rand;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                if (Long_lo(Long_shru(var$29, $var12)) / 1.6777216E7 < 0.0010000000474974513) {
                    $var19 = 1;
                    break bx;
                }
            }
            $var19 = 0;
        }
        $ptr = 9;
    case 9:
        nms_EntityWither_func_82209_a($this, $var17, var$14, $var8, var$15, $var19);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$field_82223_h;
        $var17 = $this.$ticksExisted + 40 | 0;
        $var14 = $this.$rand;
        var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var14.$seed = var$29;
        $var7 = Long_lo(Long_shru(var$29, $var10));
        while (true) {
            $var20 = $var7 % 20 | 0;
            if ((($var7 - $var20 | 0) + $var15 | 0) >= 0)
                break;
            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$29;
            $var7 = Long_lo(Long_shru(var$29, $var10));
        }
        var$4.data[$var18] = $var17 + $var20 | 0;
        $this.$field_82224_i.data[$var18] = 0;
        while (true) {
            while (true) {
                $var1 = $var1 + 1 | 0;
                if ($var1 >= 3) {
                    $var14 = $this.$attackTarget;
                    if ($var14 === null) {
                        $var14 = $this.$dataWatcher;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[var$26];
                        $var13 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[145];
                        if (var$9 !== null) {
                            $var18 = var$9.$value;
                            var$4 = $var13.$elementData.data;
                            $var13 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var13 !== null) {
                                if ($var13.$origKeyHash == $var18) {
                                    $var5 = $var13.$key;
                                    if (var$9 !== $var5 && !(var$9 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                        break;
                                }
                                $var13 = $var13.$next3;
                            }
                        } else {
                            $var13 = $var13.$elementData.data[0];
                            while ($var13 !== null && $var13.$key !== null) {
                                $var13 = $var13.$next3;
                            }
                        }
                        $var5 = $var13 === null ? null : $var13.$value0;
                        $var13 = $var5.$watchedObject;
                        if (!(var$7 === $var13 ? 1 : $var13 instanceof jl_Integer && $var13.$value == var$7.$value ? 1 : 0)) {
                            $var5.$watchedObject = var$7;
                            $var5.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    } else {
                        $var17 = $var14.$entityId;
                        $var14 = $this.$dataWatcher;
                        if ($var17 >= (-128) && $var17 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                        } else {
                            $var13 = new jl_Integer;
                            $var13.$value = $var17;
                        }
                        $var5 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[145];
                        if (var$7 !== null) {
                            $var18 = var$7.$value;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == $var18) {
                                    var$9 = $var5.$key;
                                    if (var$7 !== var$9 && !(var$7 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        }
                        var$9 = $var5 === null ? null : $var5.$value0;
                        $var5 = var$9.$watchedObject;
                        if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                            var$9.$watchedObject = $var13;
                            var$9.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    }
                    h: {
                        $var17 = $this.$field_82222_j;
                        if ($var17 > 0) {
                            $var17 = $var17 - 1 | 0;
                            $this.$field_82222_j = $var17;
                            if (!$var17) {
                                by: {
                                    $var13 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                                    $var5 = $rt_s(1417);
                                    $var14 = $rt_s(1417);
                                    if ($var5 !== $var14) {
                                        $var1 = $var5.$nativeString.length;
                                        $var19 = $var14.$nativeString.length;
                                        if ($var1 < $var19)
                                            $var19 = $var1;
                                        $var17 = 0;
                                        bz: {
                                            while (true) {
                                                if ($var17 >= $var19) {
                                                    $var5.$nativeString.length;
                                                    $var14.$nativeString.length;
                                                    break by;
                                                }
                                                if ($var17 < 0)
                                                    break bz;
                                                if ($var17 >= $var5.$nativeString.length)
                                                    break bz;
                                                $var18 = $var5.$nativeString.charCodeAt($var17);
                                                if ($var17 < 0)
                                                    break;
                                                if ($var17 >= $var14.$nativeString.length)
                                                    break;
                                                if ($var18 - $var14.$nativeString.charCodeAt($var17) | 0)
                                                    break by;
                                                $var17 = $var17 + 1 | 0;
                                            }
                                            $var14 = new jl_StringIndexOutOfBoundsException;
                                            jl_IndexOutOfBoundsException__init_($var14);
                                            $rt_throw($var14);
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                }
                                $var14 = $rt_s(1417);
                                bt: {
                                    l: {
                                        bA: while (true) {
                                            if ($var13 === null) {
                                                $var13 = null;
                                                break bt;
                                            }
                                            bB: {
                                                $var5 = $var13.$key0;
                                                if ($var14 === $var5)
                                                    $var17 = 0;
                                                else {
                                                    $var1 = $var14.$nativeString.length;
                                                    $var19 = $var5.$nativeString.length;
                                                    if ($var1 < $var19)
                                                        $var19 = $var1;
                                                    $var1 = 0;
                                                    while (true) {
                                                        if ($var1 >= $var19) {
                                                            $var17 = $var14.$nativeString.length - $var5.$nativeString.length | 0;
                                                            break bB;
                                                        }
                                                        if ($var1 < 0)
                                                            break l;
                                                        if ($var1 >= $var14.$nativeString.length)
                                                            break l;
                                                        $var18 = $var14.$nativeString.charCodeAt($var1);
                                                        if ($var1 < 0)
                                                            break bA;
                                                        if ($var1 >= $var5.$nativeString.length)
                                                            break bA;
                                                        $var17 = $var18 - $var5.$nativeString.charCodeAt($var1) | 0;
                                                        if ($var17)
                                                            break;
                                                        $var1 = $var1 + 1 | 0;
                                                    }
                                                }
                                            }
                                            if (!$var17)
                                                break bt;
                                            $var13 = $var17 >= 0 ? $var13.$right : $var13.$left;
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                                $var14 = $var13 === null ? null : $var13.$value2;
                                if ($var14 === null ? 0 : $var14.$valueBoolean) {
                                    $var8 = $this.$posY;
                                    var$26 = $var8 | 0;
                                    if ($var8 < var$26)
                                        var$26 = var$26 - 1 | 0;
                                    $var8 = $this.$posX;
                                    $var12 = $var8 | 0;
                                    if ($var8 < $var12)
                                        $var12 = $var12 - 1 | 0;
                                    $var8 = $this.$posZ;
                                    $var15 = $var8 | 0;
                                    if ($var8 < $var15)
                                        $var15 = $var15 - 1 | 0;
                                    $var17 = 0;
                                    $var18 = (-1);
                                    bg: while (true) {
                                        if ($var18 > 1) {
                                            if (!$var17)
                                                break h;
                                            $var14 = $this.$worldObj;
                                            $var13 = null;
                                            $var1 = 1012;
                                            $var18 = $this.$posX | 0;
                                            $var19 = $this.$posY | 0;
                                            $var7 = $this.$posZ | 0;
                                            $var17 = 0;
                                            $var20 = 0;
                                            var$14 = $var18;
                                            var$15 = $var19;
                                            $var4 = $var7;
                                            $var5 = $var14.$worldAccesses;
                                            $var9 = $rt_compare($var20, $var5.$size0);
                                            if ($var9 < 0) {
                                                if ($var20 >= 0 && $var9 < 0) {
                                                    $var5 = $var5.$array.data[$var20];
                                                    var$7 = $var5.$mcServer.$serverConfigManager;
                                                    $var8 = 64.0;
                                                    $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                                    $var5 = new nms_Packet61DoorChange;
                                                    nms_Packet_$callClinit();
                                                    nles_SysUtil_$callClinit();
                                                    $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                    $var5.$sfxID = $var1;
                                                    $var5.$posX1 = $var18;
                                                    $var5.$posY1 = $var19;
                                                    $var5.$posZ1 = $var7;
                                                    $var5.$auxData = $var17;
                                                    $var5.$disableRelativeVolume = 0;
                                                    $ptr = 12;
                                                    continue main;
                                                }
                                                $var14 = new jl_IndexOutOfBoundsException;
                                                $var14.$suppressionEnabled = 1;
                                                $var14.$writableStackTrace = 1;
                                                $rt_throw($var14);
                                            }
                                            break h;
                                        }
                                        $var19 = (-1);
                                        while ($var19 <= 1) {
                                            $var7 = 0;
                                            if ($var7 <= 3)
                                                break bg;
                                            $var19 = $var19 + 1 | 0;
                                        }
                                        $var18 = $var18 + 1 | 0;
                                    }
                                    $var20 = $var12 + $var18 | 0;
                                    $var9 = var$26 + $var7 | 0;
                                    $var10 = $var15 + $var19 | 0;
                                    $var14 = $this.$worldObj;
                                    $ptr = 11;
                                    continue main;
                                }
                            }
                        }
                    }
                    if (!($this.$ticksExisted % 20 | 0)) {
                        $var14 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[var$27];
                        if ($var13 === null) {
                            $var14 = $var14.$elementData.data[0];
                            while ($var14 !== null && $var14.$key !== null) {
                                $var14 = $var14.$next3;
                            }
                        } else {
                            $var17 = $var13.$value;
                            var$4 = $var14.$elementData.data;
                            $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                            while ($var14 !== null) {
                                if ($var14.$origKeyHash == $var17) {
                                    $var5 = $var14.$key;
                                    if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                        break;
                                }
                                $var14 = $var14.$next3;
                            }
                        }
                        var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                        if (var$10 > 0.0) {
                            var$11 = var$10 + 1.0;
                            $var14 = $this.$dataWatcher;
                            var$12 = 0.0;
                            $var13 = nms_SharedMonsterAttributes_maxHealth;
                            if ($this.$attributeMap === null)
                                $this.$attributeMap = nms_ServersideAttributeMap__init_();
                            $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                            $var13 = $var13 === null ? null : $var13.$value0;
                            if ($var13.$field_111133_g) {
                                $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                $var13.$field_111133_g = 0;
                            }
                            var$10 = $var13.$field_111139_h;
                            if (var$11 >= var$12)
                                var$12 = var$11 <= var$10 ? var$11 : var$10;
                            $var13 = new jl_Float;
                            $var13.$value3 = var$12;
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[var$27];
                            if (var$7 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if ($var13 === $var5)
                                $var17 = 1;
                            else
                                bC: {
                                    if ($var5 instanceof jl_Float) {
                                        var$11 = $var13.$value3;
                                        var$12 = $var5.$value3;
                                        if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                            $var17 = 1;
                                            break bC;
                                        }
                                    }
                                    $var17 = 0;
                                }
                            if (!$var17) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        }
                    }
                    return;
                }
                $var17 = $this.$ticksExisted;
                var$4 = $this.$field_82223_h.data;
                $var18 = $var1 - 1 | 0;
                if ($var17 < var$4[$var18])
                    continue;
                else
                    break;
            }
            $var7 = $var17 + 10 | 0;
            $var14 = $this.$rand;
            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$29;
            $var17 = Long_lo(Long_shru(var$29, $var10));
            while (true) {
                $var19 = $var17 % 10 | 0;
                if ((($var17 - $var19 | 0) + $var9 | 0) >= 0)
                    break;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                $var17 = Long_lo(Long_shru(var$29, $var10));
            }
            var$4[$var18] = $var7 + $var19 | 0;
            if ($this.$worldObj.$difficultySetting >= 2) {
                var$4 = $this.$field_82224_i.data;
                $var10003 = var$4[$var18];
                var$4[$var18] = var$4[$var18] + 1 | 0;
                if ($var10003 > 15) {
                    $var8 = $this.$posX;
                    $var4 = $var8 - 10.0;
                    $var6 = $var8 + 10.0;
                    if ($var4 < $var6) {
                        var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$32;
                        var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                        var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$33;
                        $var4 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * ($var6 - $var4) + $var4;
                    }
                    $var8 = $this.$posY;
                    $var6 = $var8 - 5.0;
                    var$34 = $var8 + 5.0;
                    if ($var6 < var$34) {
                        var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$32;
                        var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                        var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$33;
                        $var6 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * (var$34 - $var6) + $var6;
                    }
                    var$14 = $this.$posZ;
                    $var8 = var$14 - 10.0;
                    var$14 = var$14 + 10.0;
                    if ($var8 < var$14) {
                        var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$29, var$22))), 27);
                        var$29 = Long_and(Long_add(Long_mul(var$29, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        $var8 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$29, var$23))))) * 1.1102230246251565E-16 * (var$14 - $var8) + $var8;
                    }
                    $var19 = $var1 + 1 | 0;
                    $var17 = 1;
                    $ptr = 5;
                    continue main;
                }
            }
            $var14 = $this.$dataWatcher;
            $var17 = 17 + $var1 | 0;
            $var14 = $var14.$watchedObjects;
            $var20 = $rt_compare($var17, (-128));
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var13 = new jl_Integer;
                $var13.$value = $var17;
            }
            if ($var13 === null) {
                $var14 = $var14.$elementData.data[0];
                while ($var14 !== null && $var14.$key !== null) {
                    $var14 = $var14.$next3;
                }
            } else {
                $var11 = $var13.$value;
                var$4 = $var14.$elementData.data;
                $var14 = var$4[$var11 & (var$4.length - 1 | 0)];
                while ($var14 !== null) {
                    if ($var14.$origKeyHash == $var11) {
                        $var5 = $var14.$key;
                        if ($var13 !== $var5 && !($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var11 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var14 = $var14.$next3;
                }
            }
            $var19 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value;
            if ($var19 <= 0) {
                $var14 = $this.$worldObj;
                $var13 = $rt_cls(nms_EntityLivingBase);
                $var5 = $this.$boundingBox0;
                $var4 = $var5.$minX0 - 20.0;
                $var6 = $var5.$minY0 - 8.0;
                var$34 = $var5.$minZ0 - 20.0;
                var$14 = $var5.$maxX0 + 20.0;
                var$15 = $var5.$maxY + 8.0;
                $var8 = $var5.$maxZ0 + 20.0;
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var18 = var$7.$nextPoolIndex;
                $var5 = var$7.$listAABB;
                $var7 = $var5.$size0;
                $var19 = $rt_compare($var18, $var7);
                if ($var19 >= 0) {
                    var$9 = new nms_AxisAlignedBB;
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                    ju_ArrayList_ensureCapacity($var5, $var7 + 1 | 0);
                    var$4 = $var5.$array.data;
                    $var19 = $var5.$size0;
                    $var5.$size0 = $var19 + 1 | 0;
                    var$4[$var19] = var$9;
                    $var5.$modCount = $var5.$modCount + 1 | 0;
                } else if ($var18 >= 0 && $var19 < 0) {
                    var$9 = $var5.$array.data[$var18];
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                } else {
                    $var14 = new jl_IndexOutOfBoundsException;
                    $var14.$suppressionEnabled = 1;
                    $var14.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var14);
                    $rt_throw($var14);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var5 = nms_EntityWither_attackEntitySelector;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj.$entityIdMap;
            $var7 = $var19 ^ ($var19 >>> 20 | 0) ^ ($var19 >>> 12 | 0);
            $var16 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
            var$4 = $var14.$slots.data;
            $var14 = var$4[$var16 & (var$4.length - 1 | 0)];
            p: {
                while ($var14 !== null) {
                    if ($var14.$hashEntry == $var19) {
                        $var14 = $var14.$valueEntry;
                        break p;
                    }
                    $var14 = $var14.$nextEntry0;
                }
                $var14 = null;
            }
            $var14 = $var14;
            if ($var14 !== null && $var14.$isEntityAlive()) {
                $var8 = $this.$posX - $var14.$posX;
                var$14 = $this.$posY - $var14.$posY;
                var$15 = $this.$posZ - $var14.$posZ;
                if ($var8 * $var8 + var$14 * var$14 + var$15 * var$15 <= 900.0)
                    break;
            }
            $var13 = $this.$dataWatcher;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[var$26];
            $var14 = $var13.$watchedObjects;
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var5 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var5 = new jl_Integer;
                $var5.$value = $var17;
            }
            if ($var5 === null) {
                var$9 = $var14.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                $var18 = $var5.$value;
                var$4 = $var14.$elementData.data;
                var$9 = var$4[$var18 & (var$4.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var18) {
                        $var14 = var$9.$key;
                        if ($var5 !== $var14 && !($var5 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            $var5 = var$9 === null ? null : var$9.$value0;
            $var14 = $var5.$watchedObject;
            if (!(var$7 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == var$7.$value ? 1 : 0)) {
                $var5.$watchedObject = var$7;
                $var5.$watched = 1;
                $var13.$objectChanged = 1;
            }
        }
        $ptr = 8;
        continue main;
    case 10:
        bc: {
            $tmp = nms_EntityLivingBase_canEntityBeSeen($this, $var5);
            if ($rt_suspending()) {
                break main;
            }
            $var18 = $tmp;
            if ($var18) {
                if (!($var5 instanceof nms_EntityPlayer)) {
                    $var18 = $var5.$entityId;
                    $var13 = $this.$dataWatcher;
                    if ($var18 >= (-128) && $var18 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var5 = jl_Integer_integerCache.data[$var18 + 128 | 0];
                    } else {
                        $var5 = new jl_Integer;
                        $var5.$value = $var18;
                    }
                    $var14 = $var13.$watchedObjects;
                    if ($var20 >= 0 && $var17 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                    } else {
                        var$9 = new jl_Integer;
                        var$9.$value = $var17;
                    }
                    if (var$9 === null) {
                        var$7 = $var14.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        $var18 = var$9.$value;
                        var$4 = $var14.$elementData.data;
                        var$7 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == $var18) {
                                $var14 = var$7.$key;
                                if (var$9 !== $var14 && !(var$9 !== $var14 ? ($var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$9 = var$7 === null ? null : var$7.$value0;
                    $var14 = var$9.$watchedObject;
                    if (!($var5 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == $var5.$value ? 1 : 0)) {
                        var$9.$watchedObject = $var5;
                        var$9.$watched = 1;
                        $var13.$objectChanged = 1;
                    }
                } else if (!$var5.$capabilities.$disableDamage) {
                    $var18 = $var5.$entityId;
                    $var13 = $this.$dataWatcher;
                    if ($var18 >= (-128) && $var18 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var5 = jl_Integer_integerCache.data[$var18 + 128 | 0];
                    } else {
                        $var5 = new jl_Integer;
                        $var5.$value = $var18;
                    }
                    $var14 = $var13.$watchedObjects;
                    if ($var20 >= 0 && $var17 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                    } else {
                        var$9 = new jl_Integer;
                        var$9.$value = $var17;
                    }
                    if (var$9 === null) {
                        var$7 = $var14.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        $var18 = var$9.$value;
                        var$4 = $var14.$elementData.data;
                        var$7 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == $var18) {
                                $var14 = var$7.$key;
                                if (var$9 !== $var14 && !(var$9 !== $var14 ? ($var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$9 = var$7 === null ? null : var$7.$value0;
                    $var14 = var$9.$watchedObject;
                    if (!($var5 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == $var5.$value ? 1 : 0)) {
                        var$9.$watchedObject = $var5;
                        var$9.$watched = 1;
                        $var13.$objectChanged = 1;
                    }
                }
            } else {
                bD: {
                    while (true) {
                        $var11 = $var13.$size0;
                        $var7 = 0;
                        bE: {
                            while (true) {
                                $var18 = $rt_compare($var7, $var11);
                                if ($var18 >= 0) {
                                    $var7 = (-1);
                                    break bE;
                                }
                                if ($var7 < 0)
                                    break bD;
                                if ($var18 >= 0)
                                    break bD;
                                $var14 = $var13.$array.data[$var7];
                                if ($var5 !== $var14 ? ($var5 === null ? ($var14 !== null ? 0 : 1) : $var14 instanceof nms_Entity ? ($var14.$entityId != $var5.$entityId ? 0 : 1) : 0) : 1)
                                    break;
                                $var7 = $var7 + 1 | 0;
                            }
                        }
                        if ($var7 >= 0)
                            ju_ArrayList_remove($var13, $var7);
                        $var16 = $var16 + 1 | 0;
                        if ($var16 >= 10)
                            break bc;
                        $var18 = $var13.$size0;
                        if ($var18 ? 0 : 1)
                            break bc;
                        $var14 = $this.$rand;
                        var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        $var11 = Long_lo(Long_shru(var$29, $var10));
                        $var19 = $var18 - 1 | 0;
                        if (!($var18 & $var19))
                            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt($var18), Long_fromInt($var11)), 31));
                        else
                            while (true) {
                                $var7 = $var11 % $var18 | 0;
                                if ((($var11 - $var7 | 0) + $var19 | 0) >= 0)
                                    break;
                                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var14.$seed = var$29;
                                $var11 = Long_lo(Long_shru(var$29, $var10));
                            }
                        if ($var7 < 0)
                            break;
                        if ($var7 >= $var18)
                            break;
                        $var5 = $var13.$array.data[$var7];
                        if ($var5 === $this)
                            continue;
                        bF: {
                            if (!$var5.$isDead) {
                                $var14 = $var5.$dataWatcher.$watchedObjects;
                                jl_Integer_ensureIntegerCache();
                                var$7 = jl_Integer_integerCache.data[var$27];
                                if (var$7 === null) {
                                    $var14 = $var14.$elementData.data[0];
                                    while ($var14 !== null && $var14.$key !== null) {
                                        $var14 = $var14.$next3;
                                    }
                                } else {
                                    $var18 = var$7.$value;
                                    var$4 = $var14.$elementData.data;
                                    $var14 = var$4[$var18 & (var$4.length - 1 | 0)];
                                    while ($var14 !== null) {
                                        if ($var14.$origKeyHash == $var18) {
                                            var$9 = $var14.$key;
                                            if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                                break;
                                        }
                                        $var14 = $var14.$next3;
                                    }
                                }
                                if (($var14 === null ? null : $var14.$value0).$watchedObject.$value3 > 0.0) {
                                    $var18 = 1;
                                    break bF;
                                }
                            }
                            $var18 = 0;
                        }
                        if (!$var18)
                            continue;
                        else {
                            continue main;
                        }
                    }
                    $var14 = new jl_IndexOutOfBoundsException;
                    $var14.$suppressionEnabled = 1;
                    $var14.$writableStackTrace = 1;
                    $rt_throw($var14);
                }
                $var14 = new jl_IndexOutOfBoundsException;
                $var14.$suppressionEnabled = 1;
                $var14.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var14);
                $rt_throw($var14);
            }
        }
        while (true) {
            $var1 = $var1 + 1 | 0;
            if ($var1 >= 3) {
                $var14 = $this.$attackTarget;
                if ($var14 === null) {
                    $var14 = $this.$dataWatcher;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$26];
                    $var13 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[145];
                    if (var$9 !== null) {
                        $var18 = var$9.$value;
                        var$4 = $var13.$elementData.data;
                        $var13 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var13 !== null) {
                            if ($var13.$origKeyHash == $var18) {
                                $var5 = $var13.$key;
                                if (var$9 !== $var5 && !(var$9 !== $var5 ? ($var5 instanceof jl_Integer && $var5.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var13 = $var13.$next3;
                        }
                    } else {
                        $var13 = $var13.$elementData.data[0];
                        while ($var13 !== null && $var13.$key !== null) {
                            $var13 = $var13.$next3;
                        }
                    }
                    $var5 = $var13 === null ? null : $var13.$value0;
                    $var13 = $var5.$watchedObject;
                    if (!(var$7 === $var13 ? 1 : $var13 instanceof jl_Integer && $var13.$value == var$7.$value ? 1 : 0)) {
                        $var5.$watchedObject = var$7;
                        $var5.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                } else {
                    $var17 = $var14.$entityId;
                    $var14 = $this.$dataWatcher;
                    if ($var17 >= (-128) && $var17 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
                    } else {
                        $var13 = new jl_Integer;
                        $var13.$value = $var17;
                    }
                    $var5 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[145];
                    if (var$7 !== null) {
                        $var18 = var$7.$value;
                        var$4 = $var5.$elementData.data;
                        $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == $var18) {
                                var$9 = $var5.$key;
                                if (var$7 !== var$9 && !(var$7 !== var$9 ? (var$9 instanceof jl_Integer && var$9.$value == $var18 ? 1 : 0) : 1) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    } else {
                        $var5 = $var5.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    }
                    var$9 = $var5 === null ? null : $var5.$value0;
                    $var5 = var$9.$watchedObject;
                    if (!($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var13.$value ? 1 : 0)) {
                        var$9.$watchedObject = $var13;
                        var$9.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                }
                bG: {
                    $var17 = $this.$field_82222_j;
                    if ($var17 > 0) {
                        $var17 = $var17 - 1 | 0;
                        $this.$field_82222_j = $var17;
                        if (!$var17) {
                            bH: {
                                $var13 = ($this.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
                                $var5 = $rt_s(1417);
                                $var14 = $rt_s(1417);
                                if ($var5 !== $var14) {
                                    $var1 = $var5.$nativeString.length;
                                    $var19 = $var14.$nativeString.length;
                                    if ($var1 < $var19)
                                        $var19 = $var1;
                                    $var17 = 0;
                                    bI: {
                                        while (true) {
                                            if ($var17 >= $var19) {
                                                $var5.$nativeString.length;
                                                $var14.$nativeString.length;
                                                break bH;
                                            }
                                            if ($var17 < 0)
                                                break bI;
                                            if ($var17 >= $var5.$nativeString.length)
                                                break bI;
                                            $var18 = $var5.$nativeString.charCodeAt($var17);
                                            if ($var17 < 0)
                                                break;
                                            if ($var17 >= $var14.$nativeString.length)
                                                break;
                                            if ($var18 - $var14.$nativeString.charCodeAt($var17) | 0)
                                                break bH;
                                            $var17 = $var17 + 1 | 0;
                                        }
                                        $var14 = new jl_StringIndexOutOfBoundsException;
                                        jl_IndexOutOfBoundsException__init_($var14);
                                        $rt_throw($var14);
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                            }
                            $var14 = $rt_s(1417);
                            bJ: {
                                bK: {
                                    bL: while (true) {
                                        if ($var13 === null) {
                                            $var13 = null;
                                            break bJ;
                                        }
                                        bM: {
                                            $var5 = $var13.$key0;
                                            if ($var14 === $var5)
                                                $var17 = 0;
                                            else {
                                                $var1 = $var14.$nativeString.length;
                                                $var19 = $var5.$nativeString.length;
                                                if ($var1 < $var19)
                                                    $var19 = $var1;
                                                $var1 = 0;
                                                while (true) {
                                                    if ($var1 >= $var19) {
                                                        $var17 = $var14.$nativeString.length - $var5.$nativeString.length | 0;
                                                        break bM;
                                                    }
                                                    if ($var1 < 0)
                                                        break bK;
                                                    if ($var1 >= $var14.$nativeString.length)
                                                        break bK;
                                                    $var18 = $var14.$nativeString.charCodeAt($var1);
                                                    if ($var1 < 0)
                                                        break bL;
                                                    if ($var1 >= $var5.$nativeString.length)
                                                        break bL;
                                                    $var17 = $var18 - $var5.$nativeString.charCodeAt($var1) | 0;
                                                    if ($var17)
                                                        break;
                                                    $var1 = $var1 + 1 | 0;
                                                }
                                            }
                                        }
                                        if (!$var17)
                                            break bJ;
                                        $var13 = $var17 >= 0 ? $var13.$right : $var13.$left;
                                    }
                                    $var14 = new jl_StringIndexOutOfBoundsException;
                                    jl_IndexOutOfBoundsException__init_($var14);
                                    $rt_throw($var14);
                                }
                                $var14 = new jl_StringIndexOutOfBoundsException;
                                jl_IndexOutOfBoundsException__init_($var14);
                                $rt_throw($var14);
                            }
                            $var14 = $var13 === null ? null : $var13.$value2;
                            if ($var14 === null ? 0 : $var14.$valueBoolean) {
                                $var8 = $this.$posY;
                                var$26 = $var8 | 0;
                                if ($var8 < var$26)
                                    var$26 = var$26 - 1 | 0;
                                $var8 = $this.$posX;
                                $var12 = $var8 | 0;
                                if ($var8 < $var12)
                                    $var12 = $var12 - 1 | 0;
                                $var8 = $this.$posZ;
                                $var15 = $var8 | 0;
                                if ($var8 < $var15)
                                    $var15 = $var15 - 1 | 0;
                                $var17 = 0;
                                $var18 = (-1);
                                bN: while (true) {
                                    if ($var18 > 1) {
                                        if (!$var17)
                                            break bG;
                                        $var14 = $this.$worldObj;
                                        $var13 = null;
                                        $var1 = 1012;
                                        $var18 = $this.$posX | 0;
                                        $var19 = $this.$posY | 0;
                                        $var7 = $this.$posZ | 0;
                                        $var17 = 0;
                                        $var20 = 0;
                                        var$14 = $var18;
                                        var$15 = $var19;
                                        $var4 = $var7;
                                        $var5 = $var14.$worldAccesses;
                                        $var9 = $rt_compare($var20, $var5.$size0);
                                        if ($var9 < 0) {
                                            if ($var20 >= 0 && $var9 < 0) {
                                                $var5 = $var5.$array.data[$var20];
                                                var$7 = $var5.$mcServer.$serverConfigManager;
                                                $var8 = 64.0;
                                                $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                                $var5 = new nms_Packet61DoorChange;
                                                nms_Packet_$callClinit();
                                                nles_SysUtil_$callClinit();
                                                $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                $var5.$sfxID = $var1;
                                                $var5.$posX1 = $var18;
                                                $var5.$posY1 = $var19;
                                                $var5.$posZ1 = $var7;
                                                $var5.$auxData = $var17;
                                                $var5.$disableRelativeVolume = 0;
                                                $ptr = 12;
                                                continue main;
                                            }
                                            $var14 = new jl_IndexOutOfBoundsException;
                                            $var14.$suppressionEnabled = 1;
                                            $var14.$writableStackTrace = 1;
                                            $rt_throw($var14);
                                        }
                                        break bG;
                                    }
                                    $var19 = (-1);
                                    while ($var19 <= 1) {
                                        $var7 = 0;
                                        if ($var7 <= 3)
                                            break bN;
                                        $var19 = $var19 + 1 | 0;
                                    }
                                    $var18 = $var18 + 1 | 0;
                                }
                                $var20 = $var12 + $var18 | 0;
                                $var9 = var$26 + $var7 | 0;
                                $var10 = $var15 + $var19 | 0;
                                $var14 = $this.$worldObj;
                                $ptr = 11;
                                continue main;
                            }
                        }
                    }
                }
                if (!($this.$ticksExisted % 20 | 0)) {
                    $var14 = $this.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    $var13 = jl_Integer_integerCache.data[var$27];
                    if ($var13 === null) {
                        $var14 = $var14.$elementData.data[0];
                        while ($var14 !== null && $var14.$key !== null) {
                            $var14 = $var14.$next3;
                        }
                    } else {
                        $var17 = $var13.$value;
                        var$4 = $var14.$elementData.data;
                        $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                        while ($var14 !== null) {
                            if ($var14.$origKeyHash == $var17) {
                                $var5 = $var14.$key;
                                if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                    break;
                            }
                            $var14 = $var14.$next3;
                        }
                    }
                    var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                    if (var$10 > 0.0) {
                        var$11 = var$10 + 1.0;
                        $var14 = $this.$dataWatcher;
                        var$12 = 0.0;
                        $var13 = nms_SharedMonsterAttributes_maxHealth;
                        if ($this.$attributeMap === null)
                            $this.$attributeMap = nms_ServersideAttributeMap__init_();
                        $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                        $var13 = $var13 === null ? null : $var13.$value0;
                        if ($var13.$field_111133_g) {
                            $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                            $var13.$field_111133_g = 0;
                        }
                        var$10 = $var13.$field_111139_h;
                        if (var$11 >= var$12)
                            var$12 = var$11 <= var$10 ? var$11 : var$10;
                        $var13 = new jl_Float;
                        $var13.$value3 = var$12;
                        $var5 = $var14.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$7 = jl_Integer_integerCache.data[var$27];
                        if (var$7 === null) {
                            $var5 = $var5.$elementData.data[0];
                            while ($var5 !== null && $var5.$key !== null) {
                                $var5 = $var5.$next3;
                            }
                        } else {
                            $var18 = var$7.$value;
                            var$4 = $var5.$elementData.data;
                            $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                            while ($var5 !== null) {
                                if ($var5.$origKeyHash == $var18) {
                                    var$9 = $var5.$key;
                                    if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                        break;
                                }
                                $var5 = $var5.$next3;
                            }
                        }
                        var$9 = $var5 === null ? null : $var5.$value0;
                        $var5 = var$9.$watchedObject;
                        if ($var13 === $var5)
                            $var17 = 1;
                        else
                            bO: {
                                if ($var5 instanceof jl_Float) {
                                    var$11 = $var13.$value3;
                                    var$12 = $var5.$value3;
                                    if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                        $var17 = 1;
                                        break bO;
                                    }
                                }
                                $var17 = 0;
                            }
                        if (!$var17) {
                            var$9.$watchedObject = $var13;
                            var$9.$watched = 1;
                            $var14.$objectChanged = 1;
                        }
                    }
                }
                return;
            }
            $var17 = $this.$ticksExisted;
            var$4 = $this.$field_82223_h.data;
            $var18 = $var1 - 1 | 0;
            if ($var17 < var$4[$var18])
                continue;
            $var7 = $var17 + 10 | 0;
            $var14 = $this.$rand;
            var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var14.$seed = var$29;
            $var17 = Long_lo(Long_shru(var$29, $var10));
            while (true) {
                $var19 = $var17 % 10 | 0;
                if ((($var17 - $var19 | 0) + $var9 | 0) >= 0)
                    break;
                var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var14.$seed = var$29;
                $var17 = Long_lo(Long_shru(var$29, $var10));
            }
            var$4[$var18] = $var7 + $var19 | 0;
            if ($this.$worldObj.$difficultySetting >= 2) {
                var$4 = $this.$field_82224_i.data;
                $var10003 = var$4[$var18];
                var$4[$var18] = var$4[$var18] + 1 | 0;
                if ($var10003 > 15) {
                    $var8 = $this.$posX;
                    $var4 = $var8 - 10.0;
                    $var6 = $var8 + 10.0;
                    if ($var4 < $var6) {
                        var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$32;
                        var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                        var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$33;
                        $var4 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * ($var6 - $var4) + $var4;
                    }
                    $var8 = $this.$posY;
                    $var6 = $var8 - 5.0;
                    var$34 = $var8 + 5.0;
                    if ($var6 < var$34) {
                        var$32 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$32;
                        var$29 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$32, var$22))), 27);
                        var$33 = Long_and(Long_add(Long_mul(var$32, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$33;
                        $var6 = Long_toNumber(Long_add(var$29, Long_fromInt(Long_lo(Long_shru(var$33, var$23))))) * 1.1102230246251565E-16 * (var$34 - $var6) + $var6;
                    }
                    var$14 = $this.$posZ;
                    $var8 = var$14 - 10.0;
                    var$14 = var$14 + 10.0;
                    if ($var8 < var$14) {
                        var$29 = Long_and(Long_add(Long_mul($var14.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        var$33 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$29, var$22))), 27);
                        var$29 = Long_and(Long_add(Long_mul(var$29, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var14.$seed = var$29;
                        $var8 = Long_toNumber(Long_add(var$33, Long_fromInt(Long_lo(Long_shru(var$29, var$23))))) * 1.1102230246251565E-16 * (var$14 - $var8) + $var8;
                    }
                    $var19 = $var1 + 1 | 0;
                    $var17 = 1;
                    $ptr = 5;
                    continue main;
                }
            }
            $var14 = $this.$dataWatcher;
            $var17 = 17 + $var1 | 0;
            $var14 = $var14.$watchedObjects;
            $var20 = $rt_compare($var17, (-128));
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var13 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var13 = new jl_Integer;
                $var13.$value = $var17;
            }
            if ($var13 === null) {
                $var14 = $var14.$elementData.data[0];
                while ($var14 !== null && $var14.$key !== null) {
                    $var14 = $var14.$next3;
                }
            } else {
                $var11 = $var13.$value;
                var$4 = $var14.$elementData.data;
                $var14 = var$4[$var11 & (var$4.length - 1 | 0)];
                while ($var14 !== null) {
                    if ($var14.$origKeyHash == $var11) {
                        $var5 = $var14.$key;
                        if ($var13 !== $var5 && !($var13 === $var5 ? 1 : $var5 instanceof jl_Integer && $var5.$value == $var11 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var14 = $var14.$next3;
                }
            }
            $var19 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value;
            if ($var19 <= 0) {
                $var14 = $this.$worldObj;
                $var13 = $rt_cls(nms_EntityLivingBase);
                $var5 = $this.$boundingBox0;
                $var4 = $var5.$minX0 - 20.0;
                $var6 = $var5.$minY0 - 8.0;
                var$34 = $var5.$minZ0 - 20.0;
                var$14 = $var5.$maxX0 + 20.0;
                var$15 = $var5.$maxY + 8.0;
                $var8 = $var5.$maxZ0 + 20.0;
                var$7 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var18 = var$7.$nextPoolIndex;
                $var5 = var$7.$listAABB;
                $var7 = $var5.$size0;
                $var19 = $rt_compare($var18, $var7);
                if ($var19 >= 0) {
                    var$9 = new nms_AxisAlignedBB;
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                    ju_ArrayList_ensureCapacity($var5, $var7 + 1 | 0);
                    var$4 = $var5.$array.data;
                    $var19 = $var5.$size0;
                    $var5.$size0 = $var19 + 1 | 0;
                    var$4[$var19] = var$9;
                    $var5.$modCount = $var5.$modCount + 1 | 0;
                } else if ($var18 >= 0 && $var19 < 0) {
                    var$9 = $var5.$array.data[$var18];
                    var$9.$minX0 = $var4;
                    var$9.$minY0 = $var6;
                    var$9.$minZ0 = var$34;
                    var$9.$maxX0 = var$14;
                    var$9.$maxY = var$15;
                    var$9.$maxZ0 = $var8;
                } else {
                    $var14 = new jl_IndexOutOfBoundsException;
                    $var14.$suppressionEnabled = 1;
                    $var14.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($var14);
                    $rt_throw($var14);
                }
                var$7.$nextPoolIndex = var$7.$nextPoolIndex + 1 | 0;
                $var5 = nms_EntityWither_attackEntitySelector;
                $ptr = 6;
                continue main;
            }
            $var14 = $this.$worldObj.$entityIdMap;
            $var7 = $var19 ^ ($var19 >>> 20 | 0) ^ ($var19 >>> 12 | 0);
            $var16 = $var7 ^ ($var7 >>> 7 | 0) ^ ($var7 >>> 4 | 0);
            var$4 = $var14.$slots.data;
            $var14 = var$4[$var16 & (var$4.length - 1 | 0)];
            w: {
                while ($var14 !== null) {
                    if ($var14.$hashEntry == $var19) {
                        $var14 = $var14.$valueEntry;
                        break w;
                    }
                    $var14 = $var14.$nextEntry0;
                }
                $var14 = null;
            }
            $var14 = $var14;
            if ($var14 !== null && $var14.$isEntityAlive()) {
                $var8 = $this.$posX - $var14.$posX;
                var$14 = $this.$posY - $var14.$posY;
                var$15 = $this.$posZ - $var14.$posZ;
                if ($var8 * $var8 + var$14 * var$14 + var$15 * var$15 <= 900.0)
                    break;
            }
            $var13 = $this.$dataWatcher;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[var$26];
            $var14 = $var13.$watchedObjects;
            if ($var20 >= 0 && $var17 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var5 = jl_Integer_integerCache.data[$var17 + 128 | 0];
            } else {
                $var5 = new jl_Integer;
                $var5.$value = $var17;
            }
            if ($var5 === null) {
                var$9 = $var14.$elementData.data[0];
                while (var$9 !== null && var$9.$key !== null) {
                    var$9 = var$9.$next3;
                }
            } else {
                $var18 = $var5.$value;
                var$4 = $var14.$elementData.data;
                var$9 = var$4[$var18 & (var$4.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var18) {
                        $var14 = var$9.$key;
                        if ($var5 !== $var14 && !($var5 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == $var18 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
            }
            $var5 = var$9 === null ? null : var$9.$value0;
            $var14 = $var5.$watchedObject;
            if (!(var$7 === $var14 ? 1 : $var14 instanceof jl_Integer && $var14.$value == var$7.$value ? 1 : 0)) {
                $var5.$watchedObject = var$7;
                $var5.$watched = 1;
                $var13.$objectChanged = 1;
            }
        }
        $ptr = 8;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($var14, $var20, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 > 0) {
            nms_Block_$callClinit();
            if ($var11 != nms_Block_bedrock.$blockID && $var11 != nms_Block_endPortal.$blockID && $var11 != nms_Block_endPortalFrame.$blockID) {
                $var14 = $this.$worldObj;
                $var1 = 1;
                $ptr = 13;
                continue main;
            }
        }
        $var7 = $var7 + 1 | 0;
        while ($var7 > 3) {
            $var19 = $var19 + 1 | 0;
            while ($var19 > 1) {
                $var18 = $var18 + 1 | 0;
                if ($var18 > 1) {
                    if ($var17) {
                        $var14 = $this.$worldObj;
                        $var13 = null;
                        $var1 = 1012;
                        $var18 = $this.$posX | 0;
                        $var19 = $this.$posY | 0;
                        $var7 = $this.$posZ | 0;
                        $var17 = 0;
                        $var20 = 0;
                        var$14 = $var18;
                        var$15 = $var19;
                        $var4 = $var7;
                        $var5 = $var14.$worldAccesses;
                        $var9 = $rt_compare($var20, $var5.$size0);
                        if ($var9 < 0) {
                            if ($var20 >= 0 && $var9 < 0) {
                                $var5 = $var5.$array.data[$var20];
                                var$7 = $var5.$mcServer.$serverConfigManager;
                                $var8 = 64.0;
                                $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                $var5 = new nms_Packet61DoorChange;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                $var5.$sfxID = $var1;
                                $var5.$posX1 = $var18;
                                $var5.$posY1 = $var19;
                                $var5.$posZ1 = $var7;
                                $var5.$auxData = $var17;
                                $var5.$disableRelativeVolume = 0;
                                $ptr = 12;
                                continue main;
                            }
                            $var14 = new jl_IndexOutOfBoundsException;
                            $var14.$suppressionEnabled = 1;
                            $var14.$writableStackTrace = 1;
                            $rt_throw($var14);
                        }
                    }
                    if (!($this.$ticksExisted % 20 | 0)) {
                        $var14 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[var$27];
                        if ($var13 === null) {
                            $var14 = $var14.$elementData.data[0];
                            while ($var14 !== null && $var14.$key !== null) {
                                $var14 = $var14.$next3;
                            }
                        } else {
                            $var17 = $var13.$value;
                            var$4 = $var14.$elementData.data;
                            $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                            while ($var14 !== null) {
                                if ($var14.$origKeyHash == $var17) {
                                    $var5 = $var14.$key;
                                    if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                        break;
                                }
                                $var14 = $var14.$next3;
                            }
                        }
                        var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                        if (var$10 > 0.0) {
                            var$11 = var$10 + 1.0;
                            $var14 = $this.$dataWatcher;
                            var$12 = 0.0;
                            $var13 = nms_SharedMonsterAttributes_maxHealth;
                            if ($this.$attributeMap === null)
                                $this.$attributeMap = nms_ServersideAttributeMap__init_();
                            $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                            $var13 = $var13 === null ? null : $var13.$value0;
                            if ($var13.$field_111133_g) {
                                $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                $var13.$field_111133_g = 0;
                            }
                            var$10 = $var13.$field_111139_h;
                            if (var$11 >= var$12)
                                var$12 = var$11 <= var$10 ? var$11 : var$10;
                            $var13 = new jl_Float;
                            $var13.$value3 = var$12;
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[var$27];
                            if (var$7 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if ($var13 === $var5)
                                $var17 = 1;
                            else
                                bP: {
                                    if ($var5 instanceof jl_Float) {
                                        var$11 = $var13.$value3;
                                        var$12 = $var5.$value3;
                                        if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                            $var17 = 1;
                                            break bP;
                                        }
                                    }
                                    $var17 = 0;
                                }
                            if (!$var17) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        }
                    }
                    return;
                }
                $var19 = (-1);
            }
            $var7 = 0;
        }
        $var20 = $var12 + $var18 | 0;
        $var9 = var$26 + $var7 | 0;
        $var10 = $var15 + $var19 | 0;
        $var14 = $this.$worldObj;
        continue main;
    case 12:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$7, $var13, var$14, var$15, $var4, $var8, $var10, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $var20 + 1 | 0;
        $var5 = $var14.$worldAccesses;
        $var9 = $rt_compare($var20, $var5.$size0);
        if ($var9 >= 0) {
            if (!($this.$ticksExisted % 20 | 0)) {
                $var14 = $this.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                $var13 = jl_Integer_integerCache.data[var$27];
                if ($var13 === null) {
                    $var14 = $var14.$elementData.data[0];
                    while ($var14 !== null && $var14.$key !== null) {
                        $var14 = $var14.$next3;
                    }
                } else {
                    $var17 = $var13.$value;
                    var$4 = $var14.$elementData.data;
                    $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                    while ($var14 !== null) {
                        if ($var14.$origKeyHash == $var17) {
                            $var5 = $var14.$key;
                            if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                break;
                        }
                        $var14 = $var14.$next3;
                    }
                }
                var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                if (var$10 > 0.0) {
                    var$11 = var$10 + 1.0;
                    $var14 = $this.$dataWatcher;
                    var$12 = 0.0;
                    $var13 = nms_SharedMonsterAttributes_maxHealth;
                    if ($this.$attributeMap === null)
                        $this.$attributeMap = nms_ServersideAttributeMap__init_();
                    $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                    $var13 = $var13 === null ? null : $var13.$value0;
                    if ($var13.$field_111133_g) {
                        $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                        $var13.$field_111133_g = 0;
                    }
                    var$10 = $var13.$field_111139_h;
                    if (var$11 >= var$12)
                        var$12 = var$11 <= var$10 ? var$11 : var$10;
                    $var13 = new jl_Float;
                    $var13.$value3 = var$12;
                    $var5 = $var14.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$7 = jl_Integer_integerCache.data[var$27];
                    if (var$7 === null) {
                        $var5 = $var5.$elementData.data[0];
                        while ($var5 !== null && $var5.$key !== null) {
                            $var5 = $var5.$next3;
                        }
                    } else {
                        $var18 = var$7.$value;
                        var$4 = $var5.$elementData.data;
                        $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                        while ($var5 !== null) {
                            if ($var5.$origKeyHash == $var18) {
                                var$9 = $var5.$key;
                                if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                    break;
                            }
                            $var5 = $var5.$next3;
                        }
                    }
                    var$9 = $var5 === null ? null : $var5.$value0;
                    $var5 = var$9.$watchedObject;
                    if ($var13 === $var5)
                        $var17 = 1;
                    else
                        bQ: {
                            if ($var5 instanceof jl_Float) {
                                var$11 = $var13.$value3;
                                var$12 = $var5.$value3;
                                if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                    $var17 = 1;
                                    break bQ;
                                }
                            }
                            $var17 = 0;
                        }
                    if (!$var17) {
                        var$9.$watchedObject = $var13;
                        var$9.$watched = 1;
                        $var14.$objectChanged = 1;
                    }
                }
            }
            return;
        }
        if ($var20 >= 0 && $var9 < 0) {
            $var5 = $var5.$array.data[$var20];
            var$7 = $var5.$mcServer.$serverConfigManager;
            $var8 = 64.0;
            $var10 = $var5.$theWorldServer.$provider.$dimensionId;
            $var5 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $var5.$sfxID = $var1;
            $var5.$posX1 = $var18;
            $var5.$posY1 = $var19;
            $var5.$posZ1 = $var7;
            $var5.$auxData = $var17;
            $var5.$disableRelativeVolume = 0;
            continue main;
        }
        $var14 = new jl_IndexOutOfBoundsException;
        $var14.$suppressionEnabled = 1;
        $var14.$writableStackTrace = 1;
        $rt_throw($var14);
    case 13:
        $tmp = nms_World_destroyBlock($var14, $var20, $var9, $var10, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $var17 = !$var1 && !$var17 ? 0 : 1;
        $var7 = $var7 + 1 | 0;
        while ($var7 > 3) {
            $var19 = $var19 + 1 | 0;
            while ($var19 > 1) {
                $var18 = $var18 + 1 | 0;
                if ($var18 > 1) {
                    if ($var17) {
                        $var14 = $this.$worldObj;
                        $var13 = null;
                        $var1 = 1012;
                        $var18 = $this.$posX | 0;
                        $var19 = $this.$posY | 0;
                        $var7 = $this.$posZ | 0;
                        $var17 = 0;
                        $var20 = 0;
                        var$14 = $var18;
                        var$15 = $var19;
                        $var4 = $var7;
                        $var5 = $var14.$worldAccesses;
                        $var9 = $rt_compare($var20, $var5.$size0);
                        if ($var9 < 0) {
                            if ($var20 >= 0 && $var9 < 0) {
                                $var5 = $var5.$array.data[$var20];
                                var$7 = $var5.$mcServer.$serverConfigManager;
                                $var8 = 64.0;
                                $var10 = $var5.$theWorldServer.$provider.$dimensionId;
                                $var5 = new nms_Packet61DoorChange;
                                nms_Packet_$callClinit();
                                nles_SysUtil_$callClinit();
                                $var5.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                $var5.$sfxID = $var1;
                                $var5.$posX1 = $var18;
                                $var5.$posY1 = $var19;
                                $var5.$posZ1 = $var7;
                                $var5.$auxData = $var17;
                                $var5.$disableRelativeVolume = 0;
                                $ptr = 12;
                                continue main;
                            }
                            $var14 = new jl_IndexOutOfBoundsException;
                            $var14.$suppressionEnabled = 1;
                            $var14.$writableStackTrace = 1;
                            $rt_throw($var14);
                        }
                    }
                    if (!($this.$ticksExisted % 20 | 0)) {
                        $var14 = $this.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        $var13 = jl_Integer_integerCache.data[var$27];
                        if ($var13 === null) {
                            $var14 = $var14.$elementData.data[0];
                            while ($var14 !== null && $var14.$key !== null) {
                                $var14 = $var14.$next3;
                            }
                        } else {
                            $var17 = $var13.$value;
                            var$4 = $var14.$elementData.data;
                            $var14 = var$4[$var17 & (var$4.length - 1 | 0)];
                            while ($var14 !== null) {
                                if ($var14.$origKeyHash == $var17) {
                                    $var5 = $var14.$key;
                                    if ($var13 !== $var5 && !jl_Integer_equals($var13, $var5) ? 0 : 1)
                                        break;
                                }
                                $var14 = $var14.$next3;
                            }
                        }
                        var$10 = ($var14 === null ? null : $var14.$value0).$watchedObject.$value3;
                        if (var$10 > 0.0) {
                            var$11 = var$10 + 1.0;
                            $var14 = $this.$dataWatcher;
                            var$12 = 0.0;
                            $var13 = nms_SharedMonsterAttributes_maxHealth;
                            if ($this.$attributeMap === null)
                                $this.$attributeMap = nms_ServersideAttributeMap__init_();
                            $var13 = ju_HashMap_entryByKey($this.$attributeMap.$attributes, $var13);
                            $var13 = $var13 === null ? null : $var13.$value0;
                            if ($var13.$field_111133_g) {
                                $var13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var13);
                                $var13.$field_111133_g = 0;
                            }
                            var$10 = $var13.$field_111139_h;
                            if (var$11 >= var$12)
                                var$12 = var$11 <= var$10 ? var$11 : var$10;
                            $var13 = new jl_Float;
                            $var13.$value3 = var$12;
                            $var5 = $var14.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$7 = jl_Integer_integerCache.data[var$27];
                            if (var$7 === null) {
                                $var5 = $var5.$elementData.data[0];
                                while ($var5 !== null && $var5.$key !== null) {
                                    $var5 = $var5.$next3;
                                }
                            } else {
                                $var18 = var$7.$value;
                                var$4 = $var5.$elementData.data;
                                $var5 = var$4[$var18 & (var$4.length - 1 | 0)];
                                while ($var5 !== null) {
                                    if ($var5.$origKeyHash == $var18) {
                                        var$9 = $var5.$key;
                                        if (var$7 !== var$9 && !jl_Integer_equals(var$7, var$9) ? 0 : 1)
                                            break;
                                    }
                                    $var5 = $var5.$next3;
                                }
                            }
                            var$9 = $var5 === null ? null : $var5.$value0;
                            $var5 = var$9.$watchedObject;
                            if ($var13 === $var5)
                                $var17 = 1;
                            else
                                bR: {
                                    if ($var5 instanceof jl_Float) {
                                        var$11 = $var13.$value3;
                                        var$12 = $var5.$value3;
                                        if (var$11 !== var$11 ? (var$12 === var$12 ? 0 : 1) : $rt_floatToRawIntBits(var$11) != $rt_floatToRawIntBits(var$12) ? 0 : 1) {
                                            $var17 = 1;
                                            break bR;
                                        }
                                    }
                                    $var17 = 0;
                                }
                            if (!$var17) {
                                var$9.$watchedObject = $var13;
                                var$9.$watched = 1;
                                $var14.$objectChanged = 1;
                            }
                        }
                    }
                    return;
                }
                $var19 = (-1);
            }
            $var7 = 0;
        }
        $var20 = $var12 + $var18 | 0;
        $var9 = var$26 + $var7 | 0;
        $var10 = $var15 + $var19 | 0;
        $var14 = $this.$worldObj;
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var14, $var13, $var17, var$4, $var5, $var1, var$7, $var18, var$9, var$10, var$11, var$12, $var8, var$14, var$15, $var19, $var20, $var7, var$19, $var10, $var9, var$22, var$23, $var15, $var12, var$26, var$27, $var4, var$29, $var10003, $var6, var$32, var$33, var$34, $var11, $var16, var$37, var$38, $ptr);
},
nms_EntityWither_setInWeb = $this => {
    return;
},
nms_EntityWither_getTotalArmorValue = $this => {
    return 4;
},
nms_EntityWither_func_82209_a = ($this, $par1, $par2, $par4, $par6, $par8) => {
    let var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var15, $var17, $var19, $var21, var$18, var$19, $var13, var$21, $var9, var$23, var$24, $var11, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var11 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var9 = $thread.pop();var$21 = $thread.pop();$var13 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6
        = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $this.$worldObj;
        var$7 = null;
        var$8 = 1014;
        var$9 = $this.$posX | 0;
        var$10 = $this.$posY | 0;
        var$11 = $this.$posZ | 0;
        var$12 = 0;
        var$13 = 0;
        $var15 = var$9;
        $var17 = var$10;
        $var19 = var$11;
        $var21 = var$6.$worldAccesses;
        var$18 = $rt_compare(var$13, $var21.$size0);
        if (var$18 < 0) {
            if (var$13 >= 0 && var$18 < 0) {
                $var21 = $var21.$array.data[var$13];
                var$19 = $var21.$mcServer.$serverConfigManager;
                $var13 = 64.0;
                var$18 = $var21.$theWorldServer.$provider.$dimensionId;
                var$21 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$21.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$21.$sfxID = var$8;
                var$21.$posX1 = var$9;
                var$21.$posY1 = var$10;
                var$21.$posZ1 = var$11;
                var$21.$auxData = var$12;
                var$21.$disableRelativeVolume = 0;
                $ptr = 1;
                continue main;
            }
            $var21 = new jl_IndexOutOfBoundsException;
            $var21.$suppressionEnabled = 1;
            $var21.$writableStackTrace = 1;
            $rt_throw($var21);
        }
        if ($par1 <= 0)
            $var9 = $this.$posX;
        else {
            var$23 = ($this.$renderYawOffset + (180 * ($par1 - 1 | 0) | 0)) / 180.0 * 3.1415927410125732;
            var$24 = nms_MathHelper_SIN_TABLE.data[(var$23 * 10430.3779296875 + 16384.0 | 0) & 65535];
            $var9 = $this.$posX + var$24 * 1.3;
        }
        $var11 = $par1 > 0 ? $this.$posY + 2.2 : $this.$posY + 3.0;
        if ($par1 <= 0)
            $var13 = $this.$posZ;
        else {
            var$24 = ($this.$renderYawOffset + (180 * ($par1 - 1 | 0) | 0)) / 180.0 * 3.1415927410125732;
            var$24 = nms_MathHelper_SIN_TABLE.data[(var$24 * 10430.3779296875 | 0) & 65535];
            $var13 = $this.$posZ + var$24 * 1.3;
        }
        $var15 = $par2 - $var9;
        $var17 = $par4 - $var11;
        $var19 = $par6 - $var13;
        $var21 = new nms_EntityWitherSkull;
        var$19 = $this.$worldObj;
        $ptr = 2;
        continue main;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$19, var$7, $var15, $var17, $var19, $var13, var$18, var$21);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = var$13 + 1 | 0;
        $var21 = var$6.$worldAccesses;
        var$18 = $rt_compare(var$13, $var21.$size0);
        if (var$18 < 0) {
            if (var$13 >= 0 && var$18 < 0) {
                $var21 = $var21.$array.data[var$13];
                var$19 = $var21.$mcServer.$serverConfigManager;
                $var13 = 64.0;
                var$18 = $var21.$theWorldServer.$provider.$dimensionId;
                var$21 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$21.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$21.$sfxID = var$8;
                var$21.$posX1 = var$9;
                var$21.$posY1 = var$10;
                var$21.$posZ1 = var$11;
                var$21.$auxData = var$12;
                var$21.$disableRelativeVolume = 0;
                continue main;
            }
            $var21 = new jl_IndexOutOfBoundsException;
            $var21.$suppressionEnabled = 1;
            $var21.$writableStackTrace = 1;
            $rt_throw($var21);
        }
        if ($par1 <= 0)
            $var9 = $this.$posX;
        else {
            var$23 = ($this.$renderYawOffset + (180 * ($par1 - 1 | 0) | 0)) / 180.0 * 3.1415927410125732;
            var$24 = nms_MathHelper_SIN_TABLE.data[(var$23 * 10430.3779296875 + 16384.0 | 0) & 65535];
            $var9 = $this.$posX + var$24 * 1.3;
        }
        $var11 = $par1 > 0 ? $this.$posY + 2.2 : $this.$posY + 3.0;
        if ($par1 <= 0)
            $var13 = $this.$posZ;
        else {
            var$24 = ($this.$renderYawOffset + (180 * ($par1 - 1 | 0) | 0)) / 180.0 * 3.1415927410125732;
            var$24 = nms_MathHelper_SIN_TABLE.data[(var$24 * 10430.3779296875 | 0) & 65535];
            $var13 = $this.$posZ + var$24 * 1.3;
        }
        $var15 = $par2 - $var9;
        $var17 = $par4 - $var11;
        $var19 = $par6 - $var13;
        $var21 = new nms_EntityWitherSkull;
        var$19 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_EntityFireball__init_($var21, var$19, $this, $var15, $var17, $var19);
        if ($rt_suspending()) {
            break main;
        }
        var$24 = 0.3125;
        var$23 = 0.3125;
        $ptr = 3;
    case 3:
        nms_Entity_setSize($var21, var$24, var$23);
        if ($rt_suspending()) {
            break main;
        }
        if ($par8) {
            var$26 = $var21.$dataWatcher;
            var$6 = jl_Byte_byteCache.data[129];
            var$19 = var$26.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$7 = jl_Integer_integerCache.data[138];
            if (var$7 === null) {
                var$19 = var$19.$elementData.data[0];
                while (var$19 !== null && var$19.$key !== null) {
                    var$19 = var$19.$next3;
                }
            } else {
                var$18 = var$7.$value;
                var$27 = var$19.$elementData.data;
                var$19 = var$27[var$18 & (var$27.length - 1 | 0)];
                while (var$19 !== null) {
                    if (var$19.$origKeyHash == var$18) {
                        var$21 = var$19.$key;
                        if (var$7 !== var$21 && !(var$7 === var$21 ? 1 : var$21 instanceof jl_Integer && var$21.$value == var$18 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$19 = var$19.$next3;
                }
            }
            var$21 = var$19 === null ? null : var$19.$value0;
            var$19 = var$21.$watchedObject;
            if (!(var$19 instanceof jl_Byte && var$19.$value1 == var$6.$value1 ? 1 : 0)) {
                var$21.$watchedObject = var$6;
                var$21.$watched = 1;
                var$26.$objectChanged = 1;
            }
        }
        $var21.$posY = $var11;
        $var21.$posX = $var9;
        $var21.$posZ = $var13;
        var$19 = $this.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld(var$19, $var21);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par4, $par6, $par8, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var15, $var17, $var19, $var21, var$18, var$19, $var13, var$21, $var9, var$23, var$24, $var11, var$26, var$27, $ptr);
},
nms_EntityWither_attackEntityWithRangedAttack = ($this, $par1EntityLivingBase, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = 0;
        var$4 = $par1EntityLivingBase.$posX;
        var$5 = $par1EntityLivingBase.$posY + $par1EntityLivingBase.$getEyeHeight() * 0.5;
        var$6 = $par1EntityLivingBase.$posZ;
        $par1EntityLivingBase = $this.$rand;
        var$7 = Long_and(Long_add(Long_mul($par1EntityLivingBase.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityLivingBase.$seed = var$7;
        var$8 = Long_lo(Long_shru(var$7, 24)) / 1.6777216E7 >= 0.0010000000474974513 ? 0 : 1;
        $ptr = 1;
    case 1:
        nms_EntityWither_func_82209_a($this, var$3, var$4, var$5, var$6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityWither_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let $var3, var$4, var$5, var$6, var$7, var$8, var$9, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if ($par1DamageSource === nms_DamageSource_drown)
            return 0;
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[148];
        if (var$4 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $var3.$elementData.data;
            $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$5) {
                    var$7 = $var3.$key;
                    if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3.$watchedObject.$value > 0)
            return 0;
        $var3 = $this.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$4 = jl_Integer_integerCache.data[134];
        if (var$4 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $var3.$elementData.data;
            $var3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$5) {
                    var$7 = $var3.$key;
                    if (var$4 !== var$7 && !jl_Integer_equals(var$4, var$7) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        var$8 = ($var3 === null ? null : $var3.$value0).$watchedObject.$value3;
        $var3 = nms_SharedMonsterAttributes_maxHealth;
        if ($this.$attributeMap === null)
            $this.$attributeMap = nms_ServersideAttributeMap__init_();
        var$7 = $this.$attributeMap.$attributes;
        if ($var3 === null)
            $var3 = ju_HashMap_findNullKeyEntry(var$7);
        else {
            var$9 = nms_BaseAttribute_hashCode($var3);
            $var3 = ju_HashMap_findNonNullKeyEntry(var$7, $var3, var$9 & (var$7.$elementData.data.length - 1 | 0), var$9);
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3.$field_111133_g) {
            $var3.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g($var3);
            $var3.$field_111133_g = 0;
        }
        $var4 = var$8 > $var3.$field_111139_h / 2.0 ? 0 : 1;
        if ($var4 && $par1DamageSource.$getSourceOfDamage() instanceof nms_EntityArrow)
            return 0;
        $var3 = $par1DamageSource.$getEntity();
        if ($var3 !== null && !($var3 instanceof nms_EntityPlayer) && $var3 instanceof nms_EntityLivingBase && $var3.$getCreatureAttribute() === nms_EnumCreatureAttribute_UNDEAD)
            return 0;
        if ($this.$field_82222_j <= 0)
            $this.$field_82222_j = 20;
        $var4 = 0;
        while (true) {
            var$6 = $this.$field_82224_i.data;
            if ($var4 >= var$6.length)
                break;
            var$6[$var4] = var$6[$var4] + 3 | 0;
            $var4 = $var4 + 1 | 0;
        }
        if ($this.$invulnerable)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityLivingBase_attackEntityFrom($this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4)
            $var4 = 0;
        else {
            $par1DamageSource = $par1DamageSource.$getEntity();
            if ($this.$riddenByEntity !== $par1DamageSource && $this.$ridingEntity !== $par1DamageSource) {
                if ($par1DamageSource !== $this)
                    $this.$entityToAttack = $par1DamageSource;
                $var4 = 1;
            } else
                $var4 = 1;
        }
        return $var4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, $var4, $ptr);
},
nms_EntityWither_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Item_$callClinit();
        $par2 = nms_Item_netherStar.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$4 = new nms_EntityItem;
        var$5 = $this.$worldObj;
        var$6 = $this.$posX;
        var$7 = $this.$posY + 0.0;
        var$8 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_(var$4, var$5, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$4.$dataWatcher;
        var$10 = var$9.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = ju_HashMap_entryByKey(var$10, jl_Integer_integerCache.data[138]);
        var$10 = var$5 === null ? null : var$5.$value0;
        if (!(var$3 !== var$10.$watchedObject ? 0 : 1)) {
            var$10.$watchedObject = var$3;
            var$10.$watched = 1;
            var$9.$objectChanged = 1;
        }
        var$3 = var$4.$dataWatcher;
        var$5 = var$3.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = ju_HashMap_entryByKey(var$5, jl_Integer_integerCache.data[138]);
        (var$5 === null ? null : var$5.$value0).$watched = 1;
        var$3.$objectChanged = 1;
        var$4.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityWither_despawnEntity = $this => {
    $this.$entityAge = 0;
},
nms_EntityWither_canBeCollidedWith = $this => {
    return $this.$isDead ? 0 : 1;
},
nms_EntityWither_fall = ($this, $par1) => {
    return;
},
nms_EntityWither_addPotionEffect = ($this, $par1PotionEffect) => {
    return;
},
nms_EntityWither_isAIEnabled = $this => {
    return 1;
},
nms_EntityWither_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_attackDamage);
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (300.0 !== var$3.$baseValue) {
        var$3.$baseValue = 300.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (0.6000000238418579 !== var$3.$baseValue) {
        var$3.$baseValue = 0.6000000238418579;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_followRange;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        c: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break c;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (40.0 !== var$1.$baseValue) {
        var$1.$baseValue = 40.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntityWither_getCreatureAttribute = $this => {
    return nms_EnumCreatureAttribute_UNDEAD;
},
nms_EntityWither_mountEntity = ($this, $par1Entity) => {
    $this.$ridingEntity = null;
},
nms_EntityWither__clinit_ = () => {
    nms_EntityWither_attackEntitySelector = new nms_EntityWitherAttackFilter;
},
nms_EntityList$_clinit_$lambda$_63_37 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_37__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_37__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_37();
    nms_EntityList$_clinit_$lambda$_63_37__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_37_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityWither;
        $ptr = 1;
    case 1:
        nms_EntityWither__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_38 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_38__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_38__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_38();
    nms_EntityList$_clinit_$lambda$_63_38__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_38_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityBat;
        nms_EntityLiving__init_(var$2, var$1);
        var$3 = 0.5;
        var$4 = 0.8999999761581421;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[144];
        if (var$5 === null)
            var$1 = ju_HashMap_findNullKeyEntry(var$1);
        else {
            var$6 = jl_Integer_hashCode0(var$5);
            var$1 = ju_HashMap_findNonNullKeyEntry(var$1, var$5, var$6 & (var$1.$elementData.data.length - 1 | 0), var$6);
        }
        var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject.$value1;
        var$1 = var$2.$dataWatcher;
        var$7 = (var$6 | 1) << 24 >> 24;
        var$8 = jl_Byte_byteCache.data[var$7 + 128 | 0];
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[144];
        if (var$9 === null)
            var$5 = ju_HashMap_findNullKeyEntry(var$5);
        else {
            var$6 = jl_Integer_hashCode0(var$9);
            var$5 = ju_HashMap_findNonNullKeyEntry(var$5, var$9, var$6 & (var$5.$elementData.data.length - 1 | 0), var$6);
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$8.$value1 ? 1 : 0)) {
            var$9.$watchedObject = var$8;
            var$9.$watched = 1;
            var$1.$objectChanged = 1;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_39 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_39__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_39__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_39();
    nms_EntityList$_clinit_$lambda$_63_39__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_39_apply = (var$0, var$1) => {
    nms_EntityList_$callClinit();
    return nms_EntityWitch__init_(var$1);
},
nms_EntityList$_clinit_$lambda$_63_40 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_40__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_40__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_40();
    nms_EntityList$_clinit_$lambda$_63_40__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_40_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityPig;
        $ptr = 1;
    case 1:
        nms_EntityPig__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_41 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_41__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_41__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_41();
    nms_EntityList$_clinit_$lambda$_63_41__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_41_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySheep;
        $ptr = 1;
    case 1:
        nms_EntitySheep__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_42 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_42__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_42__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_42();
    nms_EntityList$_clinit_$lambda$_63_42__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_42_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityCow;
        $ptr = 1;
    case 1:
        nms_EntityCow__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
};
let nms_EntityList$_clinit_$lambda$_63_43 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_43__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_43__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_43();
    nms_EntityList$_clinit_$lambda$_63_43__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_43_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityChicken;
        $ptr = 1;
    case 1:
        nms_EntityChicken__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_44 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_44__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_44__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_44();
    nms_EntityList$_clinit_$lambda$_63_44__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_44_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySquid;
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_(var$2, var$1);
        var$1 = new nms_ChunkCoordinates;
        var$1.$posX0 = 0;
        var$1.$posY0 = 0;
        var$1.$posZ0 = 0;
        var$2.$homePosition = var$1;
        var$2.$maximumHomeDistance = (-1.0);
        var$1 = new nms_EntityAIMoveTowardsRestriction;
        var$1.$theEntity0 = var$2;
        var$1.$movementSpeed = 1.0;
        var$1.$mutexBits = 1;
        var$2.$field_110178_bs = var$1;
        var$3 = 0.949999988079071;
        var$4 = 0.949999988079071;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = var$2.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$5;
        var$2.$rotationVelocity = 1.0 / (Long_lo(Long_shru(var$5, 24)) / 1.6777216E7 + 1.0) * 0.20000000298023224;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_45 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_45__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_45__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_45();
    nms_EntityList$_clinit_$lambda$_63_45__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_45_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityWolf;
        $ptr = 1;
    case 1:
        nms_EntityWolf__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_46 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_46__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_46__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_46();
    nms_EntityList$_clinit_$lambda$_63_46__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_46_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityMooshroom;
        $ptr = 1;
    case 1:
        nms_EntityCow__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = var$2.$field_98056_d <= 0.0 ? 0 : 1;
        var$2.$field_98056_d = 0.8999999761581421;
        var$2.$field_98057_e = 1.2999999523162842;
        if (var$3)
            return var$2;
        var$4 = 0.8999999761581421;
        var$5 = 1.2999999523162842;
        $ptr = 2;
    case 2:
        nms_Entity_setSize(var$2, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, $ptr);
},
nms_EntitySnowman = $rt_classWithoutFields(nms_EntityGolem),
nms_EntitySnowman__init_ = ($this, $par1World) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityCreature_$callClinit();
        nms_EntityLiving__init_($this, $par1World);
        $par1World = new nms_ChunkCoordinates;
        $par1World.$posX0 = 0;
        $par1World.$posY0 = 0;
        $par1World.$posZ0 = 0;
        $this.$homePosition = $par1World;
        $this.$maximumHomeDistance = (-1.0);
        $par1World = new nms_EntityAIMoveTowardsRestriction;
        $par1World.$theEntity0 = $this;
        $par1World.$movementSpeed = 1.0;
        $par1World.$mutexBits = 1;
        $this.$field_110178_bs = $par1World;
        var$2 = 0.4000000059604645;
        var$3 = 1.7999999523162842;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$navigator.$avoidsWater = 1;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIArrowAttack;
        var$4.$rangedAttackTime = (-1);
        if (!($this instanceof nms_EntityLivingBase)) {
            $par1World = new jl_IllegalArgumentException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $par1World.$message = $rt_s(2357);
            $rt_throw($par1World);
        }
        var$4.$rangedAttackEntityHost = $this;
        var$4.$entityHost = $this;
        var$4.$entityMoveSpeed = 1.25;
        var$4.$field_96561_g = 20;
        var$4.$maxRangedAttackTime = 20;
        var$4.$field_96562_i = 10.0;
        var$4.$field_82642_h = 100.0;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 1;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWander;
        var$4.$entity = $this;
        var$4.$speed = 1.0;
        var$4.$mutexBits = 1;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 2;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$9 = var$5.$size0;
        var$5.$size0 = var$9 + 1 | 0;
        var$7[var$9] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAIWatchClosest;
        var$4.$theWatcher = $this;
        var$4.$watchedClass = $rt_cls(nms_EntityPlayer);
        var$4.$maxDistanceForPlayer = 6.0;
        var$4.$field_75331_e = 0.019999999552965164;
        var$4.$mutexBits = 2;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 3;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        $par1World = $this.$tasks0;
        var$4 = new nms_EntityAILookIdle;
        var$4.$idleEntity = $this;
        var$4.$mutexBits = 3;
        var$5 = $par1World.$taskEntries;
        var$6 = new nms_EntityAITaskEntry;
        var$6.$tasks = $par1World;
        var$6.$priority = 4;
        var$6.$action = var$4;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = var$6;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        var$4 = $this.$targetTasks;
        var$6 = new nms_EntityAINearestAttackableTarget;
        $par1World = nms_IMob_mobSelector;
        var$6.$taskOwner = $this;
        var$6.$shouldCheckSight = 1;
        var$6.$nearbyOnly = 0;
        var$6.$targetClass = $rt_cls(nms_EntityLiving);
        var$6.$targetChance = 0;
        var$5 = new nms_EntityAINearestAttackableTargetSorter;
        var$5.$theEntity5 = $this;
        var$6.$theNearestAttackableTargetSorter = var$5;
        var$6.$mutexBits = 1;
        var$5 = new nms_EntityAINearestAttackableTargetSelector;
        var$5.$field_111102_d = var$6;
        var$5.$field_111103_c = $par1World;
        var$6.$targetEntitySelector = var$5;
        var$5 = var$4.$taskEntries;
        $par1World = new nms_EntityAITaskEntry;
        $par1World.$tasks = var$4;
        $par1World.$priority = 1;
        $par1World.$action = var$6;
        ju_ArrayList_ensureCapacity(var$5, var$5.$size0 + 1 | 0);
        var$7 = var$5.$array.data;
        var$8 = var$5.$size0;
        var$5.$size0 = var$8 + 1 | 0;
        var$7[var$8] = $par1World;
        var$5.$modCount = var$5.$modCount + 1 | 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntitySnowman__init_0 = var_0 => {
    let var_1 = new nms_EntitySnowman();
    nms_EntitySnowman__init_(var_1, var_0);
    return var_1;
},
nms_EntitySnowman_isAIEnabled = $this => {
    return 1;
},
nms_EntitySnowman_applyEntityAttributes = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_maxHealth);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_knockbackResistance);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_movementSpeed);
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$1 = nms_ServersideAttributeMap_func_111150_b($this.$attributeMap, nms_SharedMonsterAttributes_followRange);
    if (16.0 !== var$1.$baseValue) {
        var$1.$baseValue = 16.0;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
    var$1 = nms_SharedMonsterAttributes_maxHealth;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        a: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break a;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$3 = var$2 === null ? null : var$2.$value0;
    if (4.0 !== var$3.$baseValue) {
        var$3.$baseValue = 4.0;
        var$3.$field_111133_g = 1;
        var$1 = var$3.$field_111138_a;
        if (var$3.$field_111136_b.$shouldWatch) {
            var$1 = var$1.$field_111162_d;
            ju_HashMap_putImpl(var$1.$backingMap, var$3, var$1);
        }
    }
    var$1 = nms_SharedMonsterAttributes_movementSpeed;
    if ($this.$attributeMap === null)
        $this.$attributeMap = nms_ServersideAttributeMap__init_();
    var$2 = $this.$attributeMap.$attributes;
    if (var$1 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        b: {
            var$3 = var$1.$field_111115_a;
            if (!var$3.$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= var$3.$nativeString.length)
                        break b;
                    var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$5 = var$3.$hashCode1;
        var$6 = var$2.$elementData.data;
        var$2 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$5) {
                var$3 = var$2.$key;
                if (var$1 !== var$3 && !jl_Object_equals(var$1, var$3) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$1 = var$2 === null ? null : var$2.$value0;
    if (0.20000000298023224 !== var$1.$baseValue) {
        var$1.$baseValue = 0.20000000298023224;
        var$1.$field_111133_g = 1;
        var$2 = var$1.$field_111138_a;
        if (var$1.$field_111136_b.$shouldWatch) {
            var$2 = var$2.$field_111162_d;
            ju_HashMap_putImpl(var$2.$backingMap, var$1, var$2);
        }
    }
},
nms_EntitySnowman_onLivingUpdate = $this => {
    let $var2, var$2, var$3, var$4, $var1, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var4, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();$var4 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_EntityLiving_onLivingUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_Entity_isWet($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2) {
            var$2 = nms_DamageSource_drown;
            var$3 = 1.0;
            $ptr = 3;
            continue main;
        }
        var$4 = $this.$posX;
        $var1 = var$4 | 0;
        if (var$4 < $var1)
            $var1 = $var1 - 1 | 0;
        var$4 = $this.$posZ;
        $var2 = var$4 | 0;
        if (var$4 < $var2)
            $var2 = $var2 - 1 | 0;
        var$2 = $this.$worldObj;
        $var3 = $var1 >> 4;
        var$7 = $var2 >> 4;
        var$8 = var$2.$chunkProvider;
        var$9 = var$8.$loadedChunkHashMap;
        var$10 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$7), Long_create(4294967295, 0)), 32));
        var$11 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
        var$11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
        var$12 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
        var$13 = var$9.$hashArray.data;
        var$14 = var$12 & (var$13.length - 1 | 0);
        var$9 = var$13[var$14];
        a: {
            while (true) {
                if (var$9 === null) {
                    var$9 = null;
                    break a;
                }
                if (Long_eq(var$9.$key1, var$10))
                    break;
                var$9 = var$9.$nextEntry;
            }
        }
        var$11 = var$9 === null ? 0 : 1;
        b: {
            c: {
                if (var$11) {
                    var$9 = var$13[var$14];
                    d: {
                        while (var$9 !== null) {
                            if (Long_eq(var$9.$key1, var$10)) {
                                var$9 = var$9.$value4;
                                break d;
                            }
                            var$9 = var$9.$nextEntry;
                        }
                        var$9 = null;
                    }
                    var$9 = var$9;
                    if (var$9 === null) {
                        if (var$8.$worldObj0.$findingSpawnPoint)
                            break b;
                        if (var$8.$loadChunkOnProvideRequest)
                            break b;
                        var$9 = var$8.$defaultEmptyChunk;
                    }
                    if (var$9 !== null) {
                        var$2 = nms_Chunk_getBiomeGenForWorldCoords(var$9, $var1 & 15, $var2 & 15, var$2.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                var$2 = var$2.$provider.$worldChunkMgr.$getBiomeGenAt($var1, $var2);
            }
            if (var$2.$temperature > 1.0) {
                var$2 = nms_DamageSource_onFire;
                var$3 = 1.0;
                $ptr = 4;
                continue main;
            }
            $var1 = 0;
            if ($var1 >= 4)
                return;
            var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
            var$7 = var$4 | 0;
            if (var$4 < var$7)
                var$7 = var$7 - 1 | 0;
            var$4 = $this.$posY;
            $var3 = var$4 | 0;
            if (var$4 < $var3)
                $var3 = $var3 - 1 | 0;
            var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
            $var4 = var$4 | 0;
            if (var$4 < $var4)
                $var4 = $var4 - 1 | 0;
            var$2 = $this.$worldObj;
            $ptr = 6;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 3:
        nms_EntityLivingBase_attackEntityFrom($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $this.$posX;
        $var1 = var$4 | 0;
        if (var$4 < $var1)
            $var1 = $var1 - 1 | 0;
        var$4 = $this.$posZ;
        $var2 = var$4 | 0;
        if (var$4 < $var2)
            $var2 = $var2 - 1 | 0;
        var$2 = $this.$worldObj;
        $var3 = $var1 >> 4;
        var$7 = $var2 >> 4;
        var$8 = var$2.$chunkProvider;
        var$9 = var$8.$loadedChunkHashMap;
        var$10 = Long_or(Long_and(Long_fromInt($var3), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$7), Long_create(4294967295, 0)), 32));
        var$11 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
        var$11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
        var$12 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
        var$13 = var$9.$hashArray.data;
        var$14 = var$12 & (var$13.length - 1 | 0);
        var$9 = var$13[var$14];
        e: {
            while (true) {
                if (var$9 === null) {
                    var$9 = null;
                    break e;
                }
                if (Long_eq(var$9.$key1, var$10))
                    break;
                var$9 = var$9.$nextEntry;
            }
        }
        var$11 = var$9 === null ? 0 : 1;
        f: {
            b: {
                if (var$11) {
                    var$9 = var$13[var$14];
                    g: {
                        while (var$9 !== null) {
                            if (Long_eq(var$9.$key1, var$10)) {
                                var$9 = var$9.$value4;
                                break g;
                            }
                            var$9 = var$9.$nextEntry;
                        }
                        var$9 = null;
                    }
                    var$9 = var$9;
                    if (var$9 === null) {
                        if (var$8.$worldObj0.$findingSpawnPoint)
                            break f;
                        if (var$8.$loadChunkOnProvideRequest)
                            break f;
                        var$9 = var$8.$defaultEmptyChunk;
                    }
                    if (var$9 !== null) {
                        var$2 = nms_Chunk_getBiomeGenForWorldCoords(var$9, $var1 & 15, $var2 & 15, var$2.$provider.$worldChunkMgr);
                        break b;
                    }
                }
                var$2 = var$2.$provider.$worldChunkMgr.$getBiomeGenAt($var1, $var2);
            }
            if (var$2.$temperature > 1.0) {
                var$2 = nms_DamageSource_onFire;
                var$3 = 1.0;
                $ptr = 4;
                continue main;
            }
            $var1 = 0;
            if ($var1 >= 4)
                return;
            var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
            var$7 = var$4 | 0;
            if (var$4 < var$7)
                var$7 = var$7 - 1 | 0;
            var$4 = $this.$posY;
            $var3 = var$4 | 0;
            if (var$4 < $var3)
                $var3 = $var3 - 1 | 0;
            var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
            $var4 = var$4 | 0;
            if (var$4 < $var4)
                $var4 = $var4 - 1 | 0;
            var$2 = $this.$worldObj;
            $ptr = 6;
            continue main;
        }
        $ptr = 5;
        continue main;
    case 4:
        nms_EntityLivingBase_attackEntityFrom($this, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 0;
        if ($var1 >= 4)
            return;
        var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        var$4 = $this.$posY;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_ChunkProviderServer_loadChunk(var$8, $var3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        var$2 = var$9 === null ? var$2.$provider.$worldChunkMgr.$getBiomeGenAt($var1, $var2) : nms_Chunk_getBiomeGenForWorldCoords(var$9, $var1 & 15, $var2 & 15, var$2.$provider.$worldChunkMgr);
        if (var$2.$temperature > 1.0) {
            var$2 = nms_DamageSource_onFire;
            var$3 = 1.0;
            $ptr = 4;
            continue main;
        }
        $var1 = 0;
        if ($var1 >= 4)
            return;
        var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        var$4 = $this.$posY;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $this.$worldObj;
        $ptr = 6;
    case 6:
        h: {
            $tmp = nms_World_getBlockId(var$2, var$7, $var3, $var4);
            if ($rt_suspending()) {
                break main;
            }
            $var2 = $tmp;
            if (!$var2) {
                var$2 = $this.$worldObj;
                var$11 = var$7 >> 4;
                var$14 = $var4 >> 4;
                var$8 = var$2.$chunkProvider;
                var$9 = var$8.$loadedChunkHashMap;
                var$10 = Long_or(Long_and(Long_fromInt(var$11), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)), 32));
                var$16 = Long_lo(Long_xor(var$10, Long_shru(var$10, 32)));
                $var2 = var$16 ^ (var$16 >>> 20 | 0) ^ (var$16 >>> 12 | 0);
                $var2 = $var2 ^ ($var2 >>> 7 | 0) ^ ($var2 >>> 4 | 0);
                var$13 = var$9.$hashArray.data;
                var$12 = $var2 & (var$13.length - 1 | 0);
                var$9 = var$13[var$12];
                i: {
                    while (true) {
                        if (var$9 === null) {
                            var$9 = null;
                            break i;
                        }
                        if (Long_eq(var$9.$key1, var$10))
                            break;
                        var$9 = var$9.$nextEntry;
                    }
                }
                $var2 = var$9 === null ? 0 : 1;
                j: {
                    if ($var2) {
                        var$9 = var$13[var$12];
                        b: {
                            while (var$9 !== null) {
                                if (Long_eq(var$9.$key1, var$10)) {
                                    var$9 = var$9.$value4;
                                    break b;
                                }
                                var$9 = var$9.$nextEntry;
                            }
                            var$9 = null;
                        }
                        var$9 = var$9;
                        if (var$9 === null) {
                            if (var$8.$worldObj0.$findingSpawnPoint)
                                break h;
                            if (var$8.$loadChunkOnProvideRequest)
                                break h;
                            var$9 = var$8.$defaultEmptyChunk;
                        }
                        if (var$9 !== null) {
                            var$2 = nms_Chunk_getBiomeGenForWorldCoords(var$9, var$7 & 15, $var4 & 15, var$2.$provider.$worldChunkMgr);
                            break j;
                        }
                    }
                    var$2 = var$2.$provider.$worldChunkMgr.$getBiomeGenAt(var$7, $var4);
                }
                if (var$2.$temperature < 0.800000011920929) {
                    nms_Block_$callClinit();
                    var$2 = nms_Block_snow;
                    var$9 = $this.$worldObj;
                    $ptr = 7;
                    continue main;
                }
            }
            $var1 = $var1 + 1 | 0;
            if ($var1 >= 4)
                return;
            var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
            var$7 = var$4 | 0;
            if (var$4 < var$7)
                var$7 = var$7 - 1 | 0;
            var$4 = $this.$posY;
            $var3 = var$4 | 0;
            if (var$4 < $var3)
                $var3 = $var3 - 1 | 0;
            var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
            $var4 = var$4 | 0;
            if (var$4 < $var4)
                $var4 = $var4 - 1 | 0;
            var$2 = $this.$worldObj;
            continue main;
        }
        $ptr = 9;
        continue main;
    case 7:
        $tmp = var$2.$canPlaceBlockAt(var$9, var$7, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2) {
            var$2 = $this.$worldObj;
            $var2 = nms_Block_snow.$blockID;
            var$11 = 0;
            var$14 = 3;
            $ptr = 8;
            continue main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 >= 4)
            return;
        var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        var$4 = $this.$posY;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 8:
        nms_World_setBlock(var$2, var$7, $var3, $var4, $var2, var$11, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 >= 4)
            return;
        var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        var$4 = $this.$posY;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $this.$worldObj;
        $ptr = 6;
        continue main;
    case 9:
        $tmp = nms_ChunkProviderServer_loadChunk(var$8, var$11, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        var$2 = var$9 === null ? var$2.$provider.$worldChunkMgr.$getBiomeGenAt(var$7, $var4) : nms_Chunk_getBiomeGenForWorldCoords(var$9, var$7 & 15, $var4 & 15, var$2.$provider.$worldChunkMgr);
        if (var$2.$temperature < 0.800000011920929) {
            nms_Block_$callClinit();
            var$2 = nms_Block_snow;
            var$9 = $this.$worldObj;
            $ptr = 7;
            continue main;
        }
        $var1 = $var1 + 1 | 0;
        if ($var1 >= 4)
            return;
        var$4 = $this.$posX + ((($var1 % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        var$7 = var$4 | 0;
        if (var$4 < var$7)
            var$7 = var$7 - 1 | 0;
        var$4 = $this.$posY;
        $var3 = var$4 | 0;
        if (var$4 < $var3)
            $var3 = $var3 - 1 | 0;
        var$4 = $this.$posZ + (((($var1 / 2 | 0) % 2 | 0) * 2 | 0) - 1 | 0) * 0.25;
        $var4 = var$4 | 0;
        if (var$4 < $var4)
            $var4 = $var4 - 1 | 0;
        var$2 = $this.$worldObj;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, var$4, $var1, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var4, var$16, $ptr);
},
nms_EntitySnowman_getDropItemId = $this => {
    nms_Item_$callClinit();
    return nms_Item_snowball.$itemID0;
},
nms_EntitySnowman_dropFewItems = ($this, $par1, $par2) => {
    let var$3, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$rand;
        var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$4;
        $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt(16), Long_fromInt(Long_lo(Long_shru(var$4, 17)))), 31));
        $var4 = 0;
        var$7 = 0.0;
        var$8 = 138;
        if ($var4 >= $var3)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_snowball.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$9 = new nms_EntityItem;
        var$10 = $this.$worldObj;
        var$11 = $this.$posX;
        var$12 = $this.$posY + var$7;
        var$13 = $this.$posZ;
        $ptr = 1;
    case 1:
        nms_EntityItem__init_(var$9, var$10, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = var$9.$dataWatcher;
        var$10 = var$14.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = ju_HashMap_entryByKey(var$10, jl_Integer_integerCache.data[var$8]);
        var$15 = var$10 === null ? null : var$10.$value0;
        if (!(var$3 !== var$15.$watchedObject ? 0 : 1)) {
            var$15.$watchedObject = var$3;
            var$15.$watched = 1;
            var$14.$objectChanged = 1;
        }
        var$15 = var$9.$dataWatcher;
        var$3 = var$15.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = ju_HashMap_entryByKey(var$3, jl_Integer_integerCache.data[var$8]);
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$15.$objectChanged = 1;
        var$9.$delayBeforeCanPickup = 10;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= $var3)
            return;
        nms_Item_$callClinit();
        $par2 = nms_Item_snowball.$itemID0;
        var$3 = new nms_ItemStack;
        nms_ItemStack_$callClinit();
        var$3.$itemID = $par2;
        var$3.$stackSize = 1;
        var$3.$itemDamage = 0;
        var$9 = new nms_EntityItem;
        var$10 = $this.$worldObj;
        var$11 = $this.$posX;
        var$12 = $this.$posY + var$7;
        var$13 = $this.$posZ;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_EntitySnowman_attackEntityWithRangedAttack = ($this, $par1EntityLivingBase, $par2) => {
    let $var3, var$4, $var4, $var6, $var8, var$8, $var10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var10 = $thread.pop();var$8 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityLivingBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = new nms_EntitySnowball;
        var$4 = $this.$worldObj;
        $ptr = 1;
    case 1:
        nms_EntityThrowable__init_($var3, var$4, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $par1EntityLivingBase.$posX - $this.$posX;
        $var6 = $par1EntityLivingBase.$posY + $par1EntityLivingBase.$getEyeHeight() - 1.100000023841858 - $var3.$posY;
        $var8 = $par1EntityLivingBase.$posZ - $this.$posZ;
        nms_EntityThrowable_setThrowableHeading($var3, $var4, $var6 + jl_Math_sqrt($var4 * $var4 + $var8 * $var8) * 0.20000000298023224, $var8, 1.600000023841858, 12.0);
        var$4 = $rt_s(1167);
        $par2 = 1.0;
        $par1EntityLivingBase = $this.$rand;
        var$8 = Long_and(Long_add(Long_mul($par1EntityLivingBase.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1EntityLivingBase.$seed = var$8;
        $var10 = 1.0 / (Long_lo(Long_shru(var$8, 24)) / 1.6777216E7 * 0.4000000059604645 + 0.800000011920929);
        $par1EntityLivingBase = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_playSoundAtEntity($par1EntityLivingBase, $this, var$4, $par2, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityLivingBase = $this.$worldObj;
        $ptr = 3;
    case 3:
        nms_World_spawnEntityInWorld($par1EntityLivingBase, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityLivingBase, $par2, $var3, var$4, $var4, $var6, $var8, var$8, $var10, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_47 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_47__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_47__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_47();
    nms_EntityList$_clinit_$lambda$_63_47__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_47_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntitySnowman;
        $ptr = 1;
    case 1:
        nms_EntitySnowman__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_48 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_48__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_48__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_48();
    nms_EntityList$_clinit_$lambda$_63_48__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_48_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityOcelot;
        $ptr = 1;
    case 1:
        nms_EntityOcelot__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_49 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_49__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_49__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_49();
    nms_EntityList$_clinit_$lambda$_63_49__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_49_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityIronGolem;
        $ptr = 1;
    case 1:
        nms_EntityIronGolem__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_50 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_50__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_50__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_50();
    nms_EntityList$_clinit_$lambda$_63_50__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_50_apply = (var$0, var$1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityHorse;
        $ptr = 1;
    case 1:
        nms_EntityHorse__init_(var$2, var$1);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_51 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_51__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_51__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_51();
    nms_EntityList$_clinit_$lambda$_63_51__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_51_apply = (var$0, var$1) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityVillager;
        nms_EntityVillager_$callClinit();
        var$3 = 0;
        $ptr = 1;
    case 1:
        nms_EntityVillager__init_(var$2, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, $ptr);
};
function nms_EntityEnderCrystal() {
    let a = this; nms_Entity.call(a);
    a.$innerRotation = 0;
    a.$health0 = 0;
}
let nms_EntityEnderCrystal_canTriggerWalking = $this => {
    return 0;
},
nms_EntityEnderCrystal_entityInit = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$dataWatcher;
    var$2 = $this.$health0;
    if (var$2 >= (-128) && var$2 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[var$2 + 128 | 0];
    } else {
        var$3 = new jl_Integer;
        var$3.$value = var$2;
    }
    nms_DataWatcher_addObject(var$1, 8, var$3);
},
nms_EntityEnderCrystal_onUpdate = $this => {
    let var$1, $var2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, $var3, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var1 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$prevPosX = $this.$posX;
        $this.$prevPosY = $this.$posY;
        $this.$prevPosZ = $this.$posZ;
        $this.$innerRotation = $this.$innerRotation + 1 | 0;
        var$1 = $this.$dataWatcher;
        $var2 = $this.$health0;
        if ($var2 >= (-128) && $var2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$3 = jl_Integer_integerCache.data[$var2 + 128 | 0];
        } else {
            var$3 = new jl_Integer;
            var$3.$value = $var2;
        }
        var$4 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[136];
        if (var$5 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            $var1 = var$5.$value;
            var$7 = var$4.$elementData.data;
            var$4 = var$7[$var1 & (var$7.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == $var1) {
                    var$8 = var$4.$key;
                    if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == $var1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$8 = var$4 === null ? null : var$4.$value0;
        var$4 = var$8.$watchedObject;
        if (!(var$3 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$3.$value ? 1 : 0)) {
            var$8.$watchedObject = var$3;
            var$8.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$9 = $this.$posX;
        $var1 = var$9 | 0;
        if (var$9 < $var1)
            $var1 = $var1 - 1 | 0;
        var$9 = $this.$posY;
        $var2 = var$9 | 0;
        if (var$9 < $var2)
            $var2 = $var2 - 1 | 0;
        var$9 = $this.$posZ;
        $var3 = var$9 | 0;
        if (var$9 < $var3)
            $var3 = $var3 - 1 | 0;
        var$1 = $this.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$1, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        nms_Block_$callClinit();
        var$12 = nms_Block_fire.$blockID;
        if (var$11 == var$12)
            return;
        var$1 = $this.$worldObj;
        var$11 = 0;
        var$13 = 3;
        $ptr = 2;
    case 2:
        nms_World_setBlock(var$1, $var1, $var2, $var3, var$12, var$11, var$13);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, $var3, var$11, var$12, var$13, $ptr);
},
nms_EntityEnderCrystal_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityEnderCrystal_readEntityFromNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityEnderCrystal_canBeCollidedWith = $this => {
    return 1;
},
nms_EntityEnderCrystal_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        if (!$this.$isDead) {
            $par1DamageSource = $this.$worldObj;
            var$3 = $par1DamageSource.$isRemote;
            if (!var$3) {
                $this.$health0 = 0;
                $this.$isDead = 1;
                if (!var$3) {
                    var$4 = null;
                    var$5 = $this.$posX;
                    var$6 = $this.$posY;
                    var$7 = $this.$posZ;
                    $par2 = 6.0;
                    var$8 = 1;
                    var$3 = 0;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return 1;
    case 1:
        nms_WorldServer_newExplosion($par1DamageSource, var$4, var$5, var$6, var$7, $par2, var$3, var$8);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_EntityList$_clinit_$lambda$_63_52 = $rt_classWithoutFields(),
nms_EntityList$_clinit_$lambda$_63_52__init_ = var$0 => {
    return;
},
nms_EntityList$_clinit_$lambda$_63_52__init_0 = () => {
    let var_0 = new nms_EntityList$_clinit_$lambda$_63_52();
    nms_EntityList$_clinit_$lambda$_63_52__init_(var_0);
    return var_0;
},
nms_EntityList$_clinit_$lambda$_63_52_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();var$0 = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityList_$callClinit();
        var$2 = new nms_EntityEnderCrystal;
        nms_Entity__init_(var$2, var$1);
        var$2.$preventEntitySpawning = 1;
        var$3 = 2.0;
        var$4 = 2.0;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$yOffset = var$2.$height0 / 2.0;
        var$2.$health0 = 5;
        var$1 = var$2.$rand;
        var$5 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$5;
        var$6 = Long_lo(Long_shru(var$5, 17));
        while (true) {
            var$7 = var$6 % 100000 | 0;
            if (((var$6 - var$7 | 0) + 99999 | 0) >= 0)
                break;
            var$5 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$5;
            var$6 = Long_lo(Long_shru(var$5, 17));
        }
        var$2.$innerRotation = var$7;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push(var$0, var$1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_FilterIMob = $rt_classWithoutFields(),
nms_FilterIMob__init_ = $this => {
    return;
},
nms_FilterIMob__init_0 = () => {
    let var_0 = new nms_FilterIMob();
    nms_FilterIMob__init_(var_0);
    return var_0;
},
nms_FilterIMob_isEntityApplicable = ($this, $par1Entity) => {
    return $rt_isInstance($par1Entity, nms_IMob);
};
function nms_EntityEggInfo() {
    let a = this; jl_Object.call(a);
    a.$spawnedID = 0;
    a.$primaryColor = 0;
    a.$secondaryColor = 0;
}
function nms_ServersideAttributeMap() {
    let a = this; nms_BaseAttributeMap.call(a);
    a.$field_111162_d = null;
    a.$field_111163_c = null;
}
let nms_ServersideAttributeMap__init_0 = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    $this.$attributes = var$1;
    var$1 = new nms_LowerStringMap;
    var$5 = new ju_LinkedHashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$3 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, var$2);
    var$4 = var$3.data;
    var$5.$elementData = var$3;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$4.length * 0.75 | 0;
    var$5.$accessOrder = 0;
    var$5.$head = null;
    var$1.$internalMap = var$5;
    $this.$attributesByName = var$1;
    var$1 = new ju_HashSet;
    var$5 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$5.$elementData = var$3;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$4.length * 0.75 | 0;
    var$1.$backingMap = var$5;
    $this.$field_111162_d = var$1;
    var$1 = new nms_LowerStringMap;
    var$5 = new ju_LinkedHashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$3 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, var$2);
    var$4 = var$3.data;
    var$5.$elementData = var$3;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$4.length * 0.75 | 0;
    var$5.$accessOrder = 0;
    var$5.$head = null;
    var$1.$internalMap = var$5;
    $this.$field_111163_c = var$1;
},
nms_ServersideAttributeMap__init_ = () => {
    let var_0 = new nms_ServersideAttributeMap();
    nms_ServersideAttributeMap__init_0(var_0);
    return var_0;
},
nms_ServersideAttributeMap_func_111150_b = ($this, $par1Attribute) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $var2 = $this.$attributesByName;
    var$3 = $par1Attribute.$field_111115_a;
    $var2 = $var2.$internalMap;
    var$4 = var$3.$nativeString.toLowerCase();
    if (var$4 !== var$3.$nativeString)
        var$3 = jl_String__init_0(var$4);
    a: {
        if (!var$3.$hashCode1) {
            var$5 = 0;
            while (true) {
                if (var$5 >= var$3.$nativeString.length)
                    break a;
                var$3.$hashCode1 = (31 * var$3.$hashCode1 | 0) + var$3.$nativeString.charCodeAt(var$5) | 0;
                var$5 = var$5 + 1 | 0;
            }
        }
    }
    var$5 = var$3.$hashCode1;
    var$6 = $var2.$elementData.data;
    $var2 = var$6[var$5 & (var$6.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$5) {
            b: {
                var$4 = $var2.$key;
                if (var$3 !== var$4) {
                    if (var$3 === var$4)
                        var$7 = 1;
                    else if (!(var$4 instanceof jl_String))
                        var$7 = 0;
                    else {
                        var$4 = var$4;
                        var$7 = var$3.$nativeString !== var$4.$nativeString ? 0 : 1;
                    }
                    if (!var$7) {
                        var$7 = 0;
                        break b;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        $par1Attribute = new jl_IllegalArgumentException;
        $par1Attribute.$suppressionEnabled = 1;
        $par1Attribute.$writableStackTrace = 1;
        $par1Attribute.$message = $rt_s(2590);
        $rt_throw($par1Attribute);
    }
    $var2 = nms_ModifiableAttributeInstance__init_($this, $par1Attribute);
    var$4 = $this.$attributesByName;
    var$8 = $par1Attribute.$field_111115_a;
    var$4 = var$4.$internalMap;
    var$9 = var$8.$nativeString.toLowerCase();
    if (var$9 !== var$8.$nativeString)
        var$8 = jl_String__init_0(var$9);
    var$10 = var$4.$elementCount;
    ju_LinkedHashMap_putImpl(var$4, var$8, $var2, 0, var$4.$accessOrder);
    if ($par1Attribute instanceof nms_RangedAttribute) {
        var$9 = $par1Attribute.$field_111119_c;
        if (var$9 !== null) {
            var$3 = $this.$field_111163_c.$internalMap;
            var$4 = var$9.$nativeString.toLowerCase();
            if (var$4 !== var$9.$nativeString)
                var$9 = jl_String__init_0(var$4);
            var$10 = var$3.$elementCount;
            ju_LinkedHashMap_putImpl(var$3, var$9, $var2, 0, var$3.$accessOrder);
        }
    }
    ju_HashMap_putImpl($this.$attributes, $par1Attribute, $var2);
    return $var2;
};
function nms_ItemInWorldManager() {
    let a = this; jl_Object.call(a);
    a.$theWorld = null;
    a.$thisPlayerMP = null;
    a.$gameType = null;
    a.$isDestroyingBlock = 0;
    a.$initialDamage = 0;
    a.$partiallyDestroyedBlockX = 0;
    a.$partiallyDestroyedBlockY = 0;
    a.$partiallyDestroyedBlockZ = 0;
    a.$curblockDamage = 0;
    a.$receivedFinishDiggingPacket = 0;
    a.$posX4 = 0;
    a.$posY4 = 0;
    a.$posZ4 = 0;
    a.$field_73093_n = 0;
    a.$durabilityRemainingOnBlock = 0;
}
let nms_ItemInWorldManager_updateBlockRemoving = $this => {
    let $var1, $var6, $var7, $var5, $var2, $var3, var$7, var$8, var$9, $var4, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$curblockDamage + 1 | 0;
        $this.$curblockDamage = $var1;
        if (!$this.$receivedFinishDiggingPacket) {
            if (!$this.$isDestroyingBlock)
                return;
            $var6 = $this.$theWorld;
            $var1 = $this.$partiallyDestroyedBlockX;
            $var7 = $this.$partiallyDestroyedBlockY;
            $var5 = $this.$partiallyDestroyedBlockZ;
            $ptr = 2;
            continue main;
        }
        $var1 = $var1 - $this.$field_73093_n | 0;
        $var6 = $this.$theWorld;
        $var7 = $this.$posX4;
        $var5 = $this.$posY4;
        $var2 = $this.$posZ4;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($var6, $var7, $var5, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (!$var2)
            $this.$receivedFinishDiggingPacket = 0;
        else {
            nms_Block_$callClinit();
            $var3 = nms_Block_blocksList.data[$var2];
            $var6 = $this.$thisPlayerMP;
            var$7 = $var3.$blockHardness;
            if (var$7 >= 0.0) {
                var$8 = $var6.$inventory0;
                if ($var3.$blockMaterial.$requiresNoTool)
                    $var7 = 1;
                else {
                    $var7 = var$8.$currentItem;
                    var$9 = var$8.$mainInventory;
                    $var5 = var$9.data.length;
                    if ($var7 >= $var5) {
                        $var7 = $var7 - $var5 | 0;
                        var$9 = var$8.$armorInventory;
                    }
                    var$8 = var$9.data[$var7];
                    if (var$8 === null)
                        $var7 = 0;
                    else {
                        nms_Item_$callClinit();
                        $var7 = nms_Item_itemsList.data[var$8.$itemID].$canHarvestBlock($var3);
                    }
                }
                if ($var7) {
                    $var7 = 1;
                    $ptr = 3;
                    continue main;
                }
                $var7 = 0;
                $ptr = 4;
                continue main;
            }
            $var4 = 0.0 * ($var1 + 1 | 0);
            $var5 = $var4 * 10.0 | 0;
            if ($var5 != $this.$durabilityRemainingOnBlock) {
                $var6 = $this.$theWorld;
                $var1 = $this.$thisPlayerMP.$entityId;
                $var7 = $this.$posX4;
                $var2 = $this.$posY4;
                var$11 = $this.$posZ4;
                var$12 = 0;
                $var3 = $var6.$worldAccesses;
                var$13 = $rt_compare(var$12, $var3.$size0);
                if (var$13 < 0) {
                    if (var$12 >= 0 && var$13 < 0) {
                        $var3 = $var3.$array.data[var$12];
                        $ptr = 9;
                        continue main;
                    }
                    $var6 = new jl_IndexOutOfBoundsException;
                    $var6.$suppressionEnabled = 1;
                    $var6.$writableStackTrace = 1;
                    $rt_throw($var6);
                }
                $this.$durabilityRemainingOnBlock = $var5;
            }
            if ($var4 >= 1.0) {
                $this.$receivedFinishDiggingPacket = 0;
                $var1 = $this.$posX4;
                $var7 = $this.$posY4;
                $var5 = $this.$posZ4;
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 2:
        a: {
            $tmp = nms_World_getBlockId($var6, $var1, $var7, $var5);
            if ($rt_suspending()) {
                break main;
            }
            $var1 = $tmp;
            nms_Block_$callClinit();
            $var6 = nms_Block_blocksList.data[$var1];
            if ($var6 === null) {
                $var6 = $this.$theWorld;
                $var1 = $this.$thisPlayerMP.$entityId;
                $var7 = $this.$partiallyDestroyedBlockX;
                $var5 = $this.$partiallyDestroyedBlockY;
                $var2 = $this.$partiallyDestroyedBlockZ;
                var$11 = (-1);
                var$12 = 0;
                $var3 = $var6.$worldAccesses;
                var$13 = $rt_compare(var$12, $var3.$size0);
                if (var$13 >= 0) {
                    $this.$durabilityRemainingOnBlock = (-1);
                    $this.$isDestroyingBlock = 0;
                    break a;
                }
                if (var$12 >= 0 && var$13 < 0) {
                    $var3 = $var3.$array.data[var$12];
                    $ptr = 8;
                    continue main;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            $var7 = $this.$curblockDamage - $this.$initialDamage | 0;
            $var3 = $this.$thisPlayerMP;
            var$7 = $var6.$blockHardness;
            if (var$7 >= 0.0) {
                var$8 = $var3.$inventory0;
                if ($var6.$blockMaterial.$requiresNoTool)
                    $var1 = 1;
                else {
                    $var1 = var$8.$currentItem;
                    var$9 = var$8.$mainInventory;
                    $var5 = var$9.data.length;
                    if ($var1 >= $var5) {
                        $var1 = $var1 - $var5 | 0;
                        var$9 = var$8.$armorInventory;
                    }
                    var$8 = var$9.data[$var1];
                    if (var$8 === null)
                        $var1 = 0;
                    else {
                        nms_Item_$callClinit();
                        $var1 = nms_Item_itemsList.data[var$8.$itemID].$canHarvestBlock($var6);
                    }
                }
                if ($var1) {
                    $var1 = 1;
                    $ptr = 6;
                    continue main;
                }
                $var1 = 0;
                $ptr = 7;
                continue main;
            }
            $var5 = 0.0 * ($var7 + 1 | 0) * 10.0 | 0;
            if ($var5 != $this.$durabilityRemainingOnBlock) {
                $var6 = $this.$theWorld;
                $var1 = $this.$thisPlayerMP.$entityId;
                $var7 = $this.$partiallyDestroyedBlockX;
                $var2 = $this.$partiallyDestroyedBlockY;
                var$11 = $this.$partiallyDestroyedBlockZ;
                var$12 = 0;
                $var3 = $var6.$worldAccesses;
                var$13 = $rt_compare(var$12, $var3.$size0);
                if (var$13 < 0) {
                    if (var$12 >= 0 && var$13 < 0) {
                        $var3 = $var3.$array.data[var$12];
                        $ptr = 10;
                        continue main;
                    }
                    $var6 = new jl_IndexOutOfBoundsException;
                    $var6.$suppressionEnabled = 1;
                    $var6.$writableStackTrace = 1;
                    $rt_throw($var6);
                }
                $this.$durabilityRemainingOnBlock = $var5;
            }
        }
        return;
    case 3:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock($var6, $var3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var4 = $var4 / var$7 / 30.0 * ($var1 + 1 | 0);
        $var5 = $var4 * 10.0 | 0;
        if ($var5 != $this.$durabilityRemainingOnBlock) {
            $var6 = $this.$theWorld;
            $var1 = $this.$thisPlayerMP.$entityId;
            $var7 = $this.$posX4;
            $var2 = $this.$posY4;
            var$11 = $this.$posZ4;
            var$12 = 0;
            $var3 = $var6.$worldAccesses;
            var$13 = $rt_compare(var$12, $var3.$size0);
            if (var$13 < 0) {
                if (var$12 >= 0 && var$13 < 0) {
                    $var3 = $var3.$array.data[var$12];
                    $ptr = 9;
                    continue main;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            $this.$durabilityRemainingOnBlock = $var5;
        }
        if ($var4 < 1.0)
            return;
        $this.$receivedFinishDiggingPacket = 0;
        $var1 = $this.$posX4;
        $var7 = $this.$posY4;
        $var5 = $this.$posZ4;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock($var6, $var3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var4 = $var4 / var$7 / 100.0 * ($var1 + 1 | 0);
        $var5 = $var4 * 10.0 | 0;
        if ($var5 != $this.$durabilityRemainingOnBlock) {
            $var6 = $this.$theWorld;
            $var1 = $this.$thisPlayerMP.$entityId;
            $var7 = $this.$posX4;
            $var2 = $this.$posY4;
            var$11 = $this.$posZ4;
            var$12 = 0;
            $var3 = $var6.$worldAccesses;
            var$13 = $rt_compare(var$12, $var3.$size0);
            if (var$13 < 0) {
                if (var$12 >= 0 && var$13 < 0) {
                    $var3 = $var3.$array.data[var$12];
                    $ptr = 9;
                    continue main;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            $this.$durabilityRemainingOnBlock = $var5;
        }
        if ($var4 < 1.0)
            return;
        $this.$receivedFinishDiggingPacket = 0;
        $var1 = $this.$posX4;
        $var7 = $this.$posY4;
        $var5 = $this.$posZ4;
        $ptr = 5;
    case 5:
        nms_ItemInWorldManager_tryHarvestBlock($this, $var1, $var7, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock($var3, $var6, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = $var4 / var$7 / 30.0 * ($var7 + 1 | 0) * 10.0 | 0;
        if ($var5 != $this.$durabilityRemainingOnBlock) {
            $var6 = $this.$theWorld;
            $var1 = $this.$thisPlayerMP.$entityId;
            $var7 = $this.$partiallyDestroyedBlockX;
            $var2 = $this.$partiallyDestroyedBlockY;
            var$11 = $this.$partiallyDestroyedBlockZ;
            var$12 = 0;
            $var3 = $var6.$worldAccesses;
            var$13 = $rt_compare(var$12, $var3.$size0);
            if (var$13 < 0) {
                if (var$12 >= 0 && var$13 < 0) {
                    $var3 = $var3.$array.data[var$12];
                    $ptr = 10;
                    continue main;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            $this.$durabilityRemainingOnBlock = $var5;
        }
        return;
    case 7:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock($var3, $var6, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var5 = $var4 / var$7 / 100.0 * ($var7 + 1 | 0) * 10.0 | 0;
        if ($var5 != $this.$durabilityRemainingOnBlock) {
            $var6 = $this.$theWorld;
            $var1 = $this.$thisPlayerMP.$entityId;
            $var7 = $this.$partiallyDestroyedBlockX;
            $var2 = $this.$partiallyDestroyedBlockY;
            var$11 = $this.$partiallyDestroyedBlockZ;
            var$12 = 0;
            $var3 = $var6.$worldAccesses;
            var$13 = $rt_compare(var$12, $var3.$size0);
            if (var$13 < 0) {
                if (var$12 >= 0 && var$13 < 0) {
                    $var3 = $var3.$array.data[var$12];
                    $ptr = 10;
                    continue main;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            $this.$durabilityRemainingOnBlock = $var5;
        }
        return;
    case 8:
        nms_WorldManager_destroyBlockPartially($var3, $var1, $var7, $var5, $var2, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$12 + 1 | 0;
        $var3 = $var6.$worldAccesses;
        var$13 = $rt_compare(var$12, $var3.$size0);
        if (var$13 >= 0) {
            $this.$durabilityRemainingOnBlock = (-1);
            $this.$isDestroyingBlock = 0;
            return;
        }
        if (var$12 >= 0 && var$13 < 0) {
            $var3 = $var3.$array.data[var$12];
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    case 9:
        nms_WorldManager_destroyBlockPartially($var3, $var1, $var7, $var2, var$11, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$12 + 1 | 0;
        $var3 = $var6.$worldAccesses;
        var$13 = $rt_compare(var$12, $var3.$size0);
        if (var$13 >= 0) {
            $this.$durabilityRemainingOnBlock = $var5;
            if ($var4 < 1.0)
                return;
            $this.$receivedFinishDiggingPacket = 0;
            $var1 = $this.$posX4;
            $var7 = $this.$posY4;
            $var5 = $this.$posZ4;
            $ptr = 5;
            continue main;
        }
        if (var$12 >= 0 && var$13 < 0) {
            $var3 = $var3.$array.data[var$12];
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    case 10:
        nms_WorldManager_destroyBlockPartially($var3, $var1, $var7, $var2, var$11, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$12 + 1 | 0;
        $var3 = $var6.$worldAccesses;
        var$13 = $rt_compare(var$12, $var3.$size0);
        if (var$13 >= 0) {
            $this.$durabilityRemainingOnBlock = $var5;
            return;
        }
        if (var$12 >= 0 && var$13 < 0) {
            $var3 = $var3.$array.data[var$12];
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var6, $var7, $var5, $var2, $var3, var$7, var$8, var$9, $var4, var$11, var$12, var$13, $ptr);
},
nms_ItemInWorldManager_onBlockClicked = ($this, $par1, $par2, $par3, $par4) => {
    let var$5, var$6, $var7, $var5, $var6, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$gameType !== nms_EnumGameType_ADVENTURE ? 0 : 1) {
            var$5 = $this.$thisPlayerMP;
            $ptr = 1;
            continue main;
        }
        if (!($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
            var$6 = $this.$theWorld;
            var$5 = null;
            $ptr = 2;
            continue main;
        }
        var$5 = $this.$theWorld;
        var$6 = null;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = nms_EntityPlayer_isCurrentToolAdventureModeExempt(var$5, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if (!$var7)
            return;
        if (!($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
            var$6 = $this.$theWorld;
            var$5 = null;
            $ptr = 2;
            continue main;
        }
        var$5 = $this.$theWorld;
        var$6 = null;
        $ptr = 4;
        continue main;
    case 2:
        nms_World_extinguishFire(var$6, var$5, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $this.$initialDamage = $this.$curblockDamage;
        $var5 = 1.0;
        var$5 = $this.$theWorld;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId(var$5, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 > 0) {
            nms_Block_$callClinit();
            var$5 = nms_Block_blocksList.data[$var6];
            var$6 = $this.$theWorld;
            var$10 = $this.$thisPlayerMP;
            $ptr = 5;
            continue main;
        }
        if ($var6 > 0 && $var5 >= 1.0) {
            $ptr = 7;
            continue main;
        }
        $this.$isDestroyingBlock = 1;
        $this.$partiallyDestroyedBlockX = $par1;
        $this.$partiallyDestroyedBlockY = $par2;
        $this.$partiallyDestroyedBlockZ = $par3;
        $var7 = $var5 * 10.0 | 0;
        var$5 = $this.$theWorld;
        $par4 = $this.$thisPlayerMP.$entityId;
        $var6 = 0;
        var$6 = var$5.$worldAccesses;
        var$11 = $rt_compare($var6, var$6.$size0);
        if (var$11 >= 0) {
            $this.$durabilityRemainingOnBlock = $var7;
            return;
        }
        if ($var6 >= 0 && var$11 < 0) {
            var$6 = var$6.$array.data[$var6];
            $ptr = 10;
            continue main;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    case 4:
        $tmp = nms_World_extinguishFire(var$5, var$6, $par1, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4)
            return;
        $ptr = 6;
        continue main;
    case 5:
        var$5.$onBlockClicked(var$6, $par1, $par2, $par3, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = nms_Block_blocksList.data[$var6];
        var$6 = $this.$thisPlayerMP;
        $var5 = var$5.$blockHardness;
        if ($var5 >= 0.0) {
            var$10 = var$6.$inventory0;
            if (var$5.$blockMaterial.$requiresNoTool)
                $par4 = 1;
            else {
                $par4 = var$10.$currentItem;
                var$12 = var$10.$mainInventory;
                $var7 = var$12.data.length;
                if ($par4 >= $var7) {
                    $par4 = $par4 - $var7 | 0;
                    var$12 = var$10.$armorInventory;
                }
                var$10 = var$12.data[$par4];
                if (var$10 === null)
                    $par4 = 0;
                else {
                    nms_Item_$callClinit();
                    $par4 = nms_Item_itemsList.data[var$10.$itemID].$canHarvestBlock(var$5);
                }
            }
            if ($par4) {
                $par4 = 1;
                $ptr = 8;
                continue main;
            }
            $par4 = 0;
            $ptr = 9;
            continue main;
        }
        $var5 = 0.0;
        if ($var6 > 0 && $var5 >= 1.0) {
            $ptr = 7;
            continue main;
        }
        $this.$isDestroyingBlock = 1;
        $this.$partiallyDestroyedBlockX = $par1;
        $this.$partiallyDestroyedBlockY = $par2;
        $this.$partiallyDestroyedBlockZ = $par3;
        $var7 = $var5 * 10.0 | 0;
        var$5 = $this.$theWorld;
        $par4 = $this.$thisPlayerMP.$entityId;
        $var6 = 0;
        var$6 = var$5.$worldAccesses;
        var$11 = $rt_compare($var6, var$6.$size0);
        if (var$11 >= 0) {
            $this.$durabilityRemainingOnBlock = $var7;
            return;
        }
        if ($var6 >= 0 && var$11 < 0) {
            var$6 = var$6.$array.data[$var6];
            $ptr = 10;
            continue main;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    case 6:
        nms_ItemInWorldManager_tryHarvestBlock($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_ItemInWorldManager_tryHarvestBlock($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock(var$6, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        $var5 = var$13 / $var5 / 30.0;
        if ($var6 > 0 && $var5 >= 1.0) {
            $ptr = 7;
            continue main;
        }
        $this.$isDestroyingBlock = 1;
        $this.$partiallyDestroyedBlockX = $par1;
        $this.$partiallyDestroyedBlockY = $par2;
        $this.$partiallyDestroyedBlockZ = $par3;
        $var7 = $var5 * 10.0 | 0;
        var$5 = $this.$theWorld;
        $par4 = $this.$thisPlayerMP.$entityId;
        $var6 = 0;
        var$6 = var$5.$worldAccesses;
        var$11 = $rt_compare($var6, var$6.$size0);
        if (var$11 >= 0) {
            $this.$durabilityRemainingOnBlock = $var7;
            return;
        }
        if ($var6 >= 0 && var$11 < 0) {
            var$6 = var$6.$array.data[$var6];
            $ptr = 10;
            continue main;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    case 9:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock(var$6, var$5, $par4);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        $var5 = var$13 / $var5 / 100.0;
        if ($var6 > 0 && $var5 >= 1.0) {
            $ptr = 7;
            continue main;
        }
        $this.$isDestroyingBlock = 1;
        $this.$partiallyDestroyedBlockX = $par1;
        $this.$partiallyDestroyedBlockY = $par2;
        $this.$partiallyDestroyedBlockZ = $par3;
        $var7 = $var5 * 10.0 | 0;
        var$5 = $this.$theWorld;
        $par4 = $this.$thisPlayerMP.$entityId;
        $var6 = 0;
        var$6 = var$5.$worldAccesses;
        var$11 = $rt_compare($var6, var$6.$size0);
        if (var$11 >= 0) {
            $this.$durabilityRemainingOnBlock = $var7;
            return;
        }
        if ($var6 >= 0 && var$11 < 0) {
            var$6 = var$6.$array.data[$var6];
            $ptr = 10;
            continue main;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    case 10:
        nms_WorldManager_destroyBlockPartially(var$6, $par4, $par1, $par2, $par3, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        var$6 = var$5.$worldAccesses;
        var$11 = $rt_compare($var6, var$6.$size0);
        if (var$11 >= 0) {
            $this.$durabilityRemainingOnBlock = $var7;
            return;
        }
        if ($var6 >= 0 && var$11 < 0) {
            var$6 = var$6.$array.data[$var6];
            continue main;
        }
        var$5 = new jl_IndexOutOfBoundsException;
        var$5.$suppressionEnabled = 1;
        var$5.$writableStackTrace = 1;
        $rt_throw(var$5);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4, var$5, var$6, $var7, $var5, $var6, var$10, var$11, var$12, var$13, $ptr);
},
nms_ItemInWorldManager_uncheckedTryHarvestBlock = ($this, $par1, $par2, $par3) => {
    let $var4, $var6, $var5, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 == $this.$partiallyDestroyedBlockX && $par2 == $this.$partiallyDestroyedBlockY && $par3 == $this.$partiallyDestroyedBlockZ) {
            $var4 = $this.$curblockDamage - $this.$initialDamage | 0;
            $var6 = $this.$theWorld;
            $ptr = 1;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($var6, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var5) {
            nms_Block_$callClinit();
            $var6 = nms_Block_blocksList.data[$var5];
            var$7 = $this.$thisPlayerMP;
            var$8 = $var6.$blockHardness;
            if (var$8 >= 0.0) {
                var$9 = var$7.$inventory0;
                if ($var6.$blockMaterial.$requiresNoTool)
                    $var5 = 1;
                else {
                    $var5 = var$9.$currentItem;
                    var$10 = var$9.$mainInventory;
                    var$11 = var$10.data.length;
                    if ($var5 >= var$11) {
                        $var5 = $var5 - var$11 | 0;
                        var$10 = var$9.$armorInventory;
                    }
                    var$9 = var$10.data[$var5];
                    if (var$9 === null)
                        $var5 = 0;
                    else {
                        nms_Item_$callClinit();
                        $var5 = nms_Item_itemsList.data[var$9.$itemID].$canHarvestBlock($var6);
                    }
                }
                if ($var5) {
                    $var5 = 1;
                    $ptr = 2;
                    continue main;
                }
                $var5 = 0;
                $ptr = 3;
                continue main;
            }
            if (0.0 * ($var4 + 1 | 0) >= 0.699999988079071) {
                $this.$isDestroyingBlock = 0;
                $var6 = $this.$theWorld;
                $var5 = $this.$thisPlayerMP.$entityId;
                $var4 = (-1);
                var$11 = 0;
                var$7 = $var6.$worldAccesses;
                var$12 = $rt_compare(var$11, var$7.$size0);
                if (var$12 >= 0) {
                    $ptr = 4;
                    continue main;
                }
                if (var$11 >= 0 && var$12 < 0) {
                    var$7 = var$7.$array.data[var$11];
                    $ptr = 5;
                    continue main;
                }
                $var6 = new jl_IndexOutOfBoundsException;
                $var6.$suppressionEnabled = 1;
                $var6.$writableStackTrace = 1;
                $rt_throw($var6);
            }
            if (!$this.$receivedFinishDiggingPacket) {
                $this.$isDestroyingBlock = 0;
                $this.$receivedFinishDiggingPacket = 1;
                $this.$posX4 = $par1;
                $this.$posY4 = $par2;
                $this.$posZ4 = $par3;
                $this.$field_73093_n = $this.$initialDamage;
            }
        }
        return;
    case 2:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock(var$7, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 / var$8 / 30.0 * ($var4 + 1 | 0) < 0.699999988079071) {
            if (!$this.$receivedFinishDiggingPacket) {
                $this.$isDestroyingBlock = 0;
                $this.$receivedFinishDiggingPacket = 1;
                $this.$posX4 = $par1;
                $this.$posY4 = $par2;
                $this.$posZ4 = $par3;
                $this.$field_73093_n = $this.$initialDamage;
            }
            return;
        }
        $this.$isDestroyingBlock = 0;
        $var6 = $this.$theWorld;
        $var5 = $this.$thisPlayerMP.$entityId;
        $var4 = (-1);
        var$11 = 0;
        var$7 = $var6.$worldAccesses;
        var$12 = $rt_compare(var$11, var$7.$size0);
        if (var$12 >= 0) {
            $ptr = 4;
            continue main;
        }
        if (var$11 >= 0 && var$12 < 0) {
            var$7 = var$7.$array.data[var$11];
            $ptr = 5;
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    case 3:
        $tmp = nms_EntityPlayer_getCurrentPlayerStrVsBlock(var$7, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 / var$8 / 100.0 * ($var4 + 1 | 0) < 0.699999988079071) {
            if (!$this.$receivedFinishDiggingPacket) {
                $this.$isDestroyingBlock = 0;
                $this.$receivedFinishDiggingPacket = 1;
                $this.$posX4 = $par1;
                $this.$posY4 = $par2;
                $this.$posZ4 = $par3;
                $this.$field_73093_n = $this.$initialDamage;
            }
            return;
        }
        $this.$isDestroyingBlock = 0;
        $var6 = $this.$theWorld;
        $var5 = $this.$thisPlayerMP.$entityId;
        $var4 = (-1);
        var$11 = 0;
        var$7 = $var6.$worldAccesses;
        var$12 = $rt_compare(var$11, var$7.$size0);
        if (var$12 >= 0) {
            $ptr = 4;
            continue main;
        }
        if (var$11 >= 0 && var$12 < 0) {
            var$7 = var$7.$array.data[var$11];
            $ptr = 5;
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    case 4:
        nms_ItemInWorldManager_tryHarvestBlock($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        nms_WorldManager_destroyBlockPartially(var$7, $var5, $par1, $par2, $par3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = var$11 + 1 | 0;
        var$7 = $var6.$worldAccesses;
        var$12 = $rt_compare(var$11, var$7.$size0);
        if (var$12 >= 0) {
            $ptr = 4;
            continue main;
        }
        if (var$11 >= 0 && var$12 < 0) {
            var$7 = var$7.$array.data[var$11];
            continue main;
        }
        $var6 = new jl_IndexOutOfBoundsException;
        $var6.$suppressionEnabled = 1;
        $var6.$writableStackTrace = 1;
        $rt_throw($var6);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $var4, $var6, $var5, var$7, var$8, var$9, var$10, var$11, var$12, $var7, $ptr);
},
nms_ItemInWorldManager_removeBlock = ($this, $par1, $par2, $par3) => {
    let var$4, var$5, $var5, $var4, var$8, $var6, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        var$5 = $this.$theWorld;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$5, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var4 = var$4[$var5];
        var$5 = $this.$theWorld;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata(var$5, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        if ($var4 !== null) {
            var$5 = $this.$theWorld;
            var$8 = $this.$thisPlayerMP;
            $ptr = 4;
            continue main;
        }
        var$5 = $this.$theWorld;
        $var6 = 0;
        var$10 = 0;
        var$11 = 3;
        $ptr = 3;
    case 3:
        $tmp = nms_World_setBlock(var$5, $par1, $par2, $par3, $var6, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var4 !== null && $var6) {
            var$5 = $this.$theWorld;
            $ptr = 5;
            continue main;
        }
        return $var6;
    case 4:
        $var4.$onBlockHarvested(var$5, $par1, $par2, $par3, $var5, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$theWorld;
        $var6 = 0;
        var$10 = 0;
        var$11 = 3;
        $ptr = 3;
        continue main;
    case 5:
        $var4.$onBlockDestroyedByPlayer(var$5, $par1, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, var$5, $var5, $var4, var$8, $var6, var$10, var$11, $ptr);
},
nms_ItemInWorldManager_tryHarvestBlock = ($this, $par1, $par2, $par3) => {
    let var$4, $var8, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, $var6, var$16, var$17, var$18, var$19, var$20, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var6 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();$var8 = $thread.pop();var$4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$gameType !== nms_EnumGameType_ADVENTURE ? 0 : 1) {
            var$4 = $this.$thisPlayerMP;
            $ptr = 1;
            continue main;
        }
        if ($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1) {
            var$4 = $this.$thisPlayerMP.$inventory0;
            $var8 = var$4.$currentItem;
            var$6 = $rt_compare($var8, 9);
            if ((var$6 < 0 && $var8 >= 0 ? var$4.$mainInventory.data[$var8] : null) !== null) {
                var$4 = var$6 < 0 && $var8 >= 0 ? var$4.$mainInventory.data[$var8] : null;
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$4.$itemID] instanceof nms_ItemSword)
                    return 0;
            }
        }
        var$4 = $this.$theWorld;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_EntityPlayer_isCurrentToolAdventureModeExempt(var$4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6)
            return 0;
        if ($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1) {
            var$4 = $this.$thisPlayerMP.$inventory0;
            $var8 = var$4.$currentItem;
            var$6 = $rt_compare($var8, 9);
            if ((var$6 < 0 && $var8 >= 0 ? var$4.$mainInventory.data[$var8] : null) !== null) {
                var$4 = var$6 < 0 && $var8 >= 0 ? var$4.$mainInventory.data[$var8] : null;
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$4.$itemID] instanceof nms_ItemSword)
                    return 0;
            }
        }
        var$4 = $this.$theWorld;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        var$4 = $this.$theWorld;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockMetadata(var$4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        var$4 = $this.$theWorld;
        var$9 = $this.$thisPlayerMP;
        var$6 = 2001;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockMetadata(var$4, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var8 = $var4 + ($var8 << 12) | 0;
        var$10 = 0;
        var$11 = $par1;
        var$12 = $par2;
        var$13 = $par3;
        var$14 = var$4.$worldAccesses;
        $var6 = $rt_compare(var$10, var$14.$size0);
        if ($var6 >= 0) {
            $ptr = 5;
            continue main;
        }
        if (var$10 >= 0 && $var6 < 0) {
            var$14 = var$14.$array.data[var$10];
            var$16 = var$14.$mcServer.$serverConfigManager;
            var$17 = 64.0;
            var$18 = var$14.$theWorldServer.$provider.$dimensionId;
            var$14 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$14.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$14.$sfxID = var$6;
            var$14.$posX1 = $par1;
            var$14.$posY1 = $par2;
            var$14.$posZ1 = $par3;
            var$14.$auxData = $var8;
            var$14.$disableRelativeVolume = 0;
            $ptr = 6;
            continue main;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    case 5:
        $tmp = nms_ItemInWorldManager_removeBlock($this, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1) {
            var$9 = $this.$thisPlayerMP.$playerNetServerHandler;
            var$14 = new nms_Packet53BlockChange;
            var$19 = $this.$theWorld;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$14.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$14.$isChunkDataPacket = 1;
            var$14.$xPosition2 = $par1;
            var$14.$yPosition1 = $par2;
            var$14.$zPosition2 = $par3;
            $ptr = 7;
            continue main;
        }
        var$9 = $this.$thisPlayerMP.$inventory0;
        var$10 = var$9.$currentItem;
        var$14 = var$10 < 9 && var$10 >= 0 ? var$9.$mainInventory.data[var$10] : null;
        nms_Block_$callClinit();
        var$19 = nms_Block_blocksList.data[$var4];
        if (var$19.$blockMaterial.$requiresNoTool)
            $var8 = 1;
        else {
            var$20 = var$9.$mainInventory;
            var$6 = var$20.data.length;
            if (var$10 >= var$6) {
                var$10 = var$10 - var$6 | 0;
                var$20 = var$9.$armorInventory;
            }
            var$4 = var$20.data[var$10];
            if (var$4 === null)
                $var8 = 0;
            else {
                nms_Item_$callClinit();
                $var8 = nms_Item_itemsList.data[var$4.$itemID].$canHarvestBlock(var$19);
            }
        }
        if (var$14 !== null) {
            var$4 = $this.$theWorld;
            var$9 = $this.$thisPlayerMP;
            nms_Item_$callClinit();
            var$19 = nms_Item_itemsList.data[var$14.$itemID];
            $ptr = 10;
            continue main;
        }
        if ($var6 && $var8) {
            var$9 = nms_Block_blocksList.data[$var4];
            var$14 = $this.$theWorld;
            var$4 = $this.$thisPlayerMP;
            $ptr = 11;
            continue main;
        }
        return $var6;
    case 6:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$16, var$9, var$11, var$12, var$13, var$17, var$18, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = var$10 + 1 | 0;
        var$14 = var$4.$worldAccesses;
        $var6 = $rt_compare(var$10, var$14.$size0);
        if ($var6 >= 0) {
            $ptr = 5;
            continue main;
        }
        if (var$10 >= 0 && $var6 < 0) {
            var$14 = var$14.$array.data[var$10];
            var$16 = var$14.$mcServer.$serverConfigManager;
            var$17 = 64.0;
            var$18 = var$14.$theWorldServer.$provider.$dimensionId;
            var$14 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$14.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$14.$sfxID = var$6;
            var$14.$posX1 = $par1;
            var$14.$posY1 = $par2;
            var$14.$posZ1 = $par3;
            var$14.$auxData = $var8;
            var$14.$disableRelativeVolume = 0;
            continue main;
        }
        var$4 = new jl_IndexOutOfBoundsException;
        var$4.$suppressionEnabled = 1;
        var$4.$writableStackTrace = 1;
        $rt_throw(var$4);
    case 7:
        $tmp = nms_World_getBlockId(var$19, $par1, $par2, $par3);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$14.$type2 = var$6;
        $ptr = 8;
    case 8:
        a: {
            $tmp = nms_World_getBlockMetadata(var$19, $par1, $par2, $par3);
            if ($rt_suspending()) {
                break main;
            }
            $par1 = $tmp;
            var$14.$metadata0 = $par1;
            if (var$14 instanceof nms_Packet3Chat) {
                var$4 = var$14;
                $par1 = var$9.$playerEntity.$chatVisibility;
                if ($par1 == 2)
                    break a;
                if ($par1 == 1 && !var$4.$isServer)
                    break a;
            }
            try {
                var$4 = var$9.$netManager;
                $ptr = 9;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$14 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$14);
                var$14.$out0 = var$4;
                var$4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$4);
                var$14.$sb = var$4;
                var$14.$buffer0 = $rt_createCharArray(32);
                var$14.$autoFlush = 0;
                var$14.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$14;
            }
            jl_Throwable_printStackTrace(var$9, jl_System_errCache);
        }
        return $var6;
    case 9:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$14);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$9 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$14 = new otcic_JSStderrPrintStream;
                var$4 = new ji_ByteArrayOutputStream;
                jl_Object__init_(var$4);
                var$4.$buf = $rt_createByteArray(32);
                ji_OutputStream__init_(var$14);
                var$14.$out0 = var$4;
                var$4 = new jl_StringBuilder;
                jl_AbstractStringBuilder__init_(var$4);
                var$14.$sb = var$4;
                var$14.$buffer0 = $rt_createCharArray(32);
                var$14.$autoFlush = 0;
                var$14.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$14;
            }
            jl_Throwable_printStackTrace(var$9, jl_System_errCache);
        }
        return $var6;
    case 10:
        $tmp = var$19.$onBlockDestroyed(var$14, var$4, $var4, $par1, $par2, $par3, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            nms_StatList_$callClinit();
            var$4 = nms_StatList_objectUseStats.data[var$14.$itemID];
            if (var$4 !== null && !var$4.$isIndependent)
                b: {
                    var$16 = var$9.$playerNetServerHandler;
                    var$19 = new nms_Packet200Statistic;
                    var$10 = var$4.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$19.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$19.$statisticId = var$10;
                    var$19.$amount = 1;
                    if (var$19 instanceof nms_Packet3Chat) {
                        var$4 = var$19;
                        var$6 = var$16.$playerEntity.$chatVisibility;
                        if (var$6 == 2)
                            break b;
                        if (var$6 == 1 && !var$4.$isServer)
                            break b;
                    }
                    try {
                        var$4 = var$16.$netManager;
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$19 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$4 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$4, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$4;
                    }
                    jl_Throwable_printStackTrace(var$19, jl_System_errCache);
                }
        }
        if (!var$14.$stackSize) {
            var$9 = $this.$thisPlayerMP.$inventory0;
            var$6 = var$9.$currentItem;
            var$4 = null;
            var$20 = var$9.$mainInventory;
            var$10 = var$20.data.length;
            if (var$6 >= var$10) {
                var$6 = var$6 - var$10 | 0;
                var$20 = var$9.$armorInventory;
            }
            var$20.data[var$6] = var$4;
        }
        if ($var6 && $var8) {
            var$9 = nms_Block_blocksList.data[$var4];
            var$14 = $this.$theWorld;
            var$4 = $this.$thisPlayerMP;
            $ptr = 11;
            continue main;
        }
        return $var6;
    case 11:
        var$9.$harvestBlock(var$14, var$4, $par1, $par2, $par3, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $var6;
    case 12:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$4, var$19);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$19 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$4, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$19, jl_System_errCache);
        }
        if (!var$14.$stackSize) {
            var$9 = $this.$thisPlayerMP.$inventory0;
            var$6 = var$9.$currentItem;
            var$4 = null;
            var$20 = var$9.$mainInventory;
            var$10 = var$20.data.length;
            if (var$6 >= var$10) {
                var$6 = var$6 - var$10 | 0;
                var$20 = var$9.$armorInventory;
            }
            var$20.data[var$6] = var$4;
        }
        if ($var6 && $var8) {
            var$9 = nms_Block_blocksList.data[$var4];
            var$14 = $this.$theWorld;
            var$4 = $this.$thisPlayerMP;
            $ptr = 11;
            continue main;
        }
        return $var6;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, var$4, $var8, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, $var6, var$16, var$17, var$18, var$19, var$20, $ptr);
},
nms_ItemInWorldManager_tryUseItem = ($this, $par1EntityPlayer, $par2World, $par3ItemStack) => {
    let $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3ItemStack = $thread.pop();$par2World = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var4 = $par3ItemStack.$stackSize;
        $var5 = $par3ItemStack.$itemDamage;
        nms_Item_$callClinit();
        $var6 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
        $ptr = 1;
    case 1:
        a: {
            $tmp = $var6.$onItemRightClick($par3ItemStack, $par2World, $par1EntityPlayer);
            if ($rt_suspending()) {
                break main;
            }
            $var6 = $tmp;
            if ($var6 === $par3ItemStack) {
                if ($var6 !== null) {
                    if ($var6.$stackSize != $var4)
                        break a;
                    if (nms_Item_itemsList.data[$var6.$itemID].$getMaxItemUseDuration($var6) > 0)
                        break a;
                    if ($var6.$itemDamage != $var5)
                        break a;
                }
                return 0;
            }
        }
        $par2World = $par1EntityPlayer.$inventory0;
        var$7 = $par2World.$mainInventory.data;
        var$8 = $par2World.$currentItem;
        var$7[var$8] = $var6;
        if ($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1) {
            $var6.$stackSize = $var4;
            if (nms_Item_itemsList.data[$var6.$itemID].$maxDamage <= 0 ? 0 : 1) {
                $var6.$itemDamage = $var5;
                if ($var5 < 0)
                    $var6.$itemDamage = 0;
            }
        }
        if (!$var6.$stackSize)
            var$7[var$8] = null;
        if (!($par1EntityPlayer.$itemInUse === null ? 0 : 1)) {
            b: {
                $par2World = $par1EntityPlayer.$inventoryContainer;
                $par3ItemStack = nms_Container_getInventory($par2World);
                var$9 = $par1EntityPlayer.$playerNetServerHandler;
                $var6 = nms_Packet104WindowItems__init_($par2World.$windowId, $par3ItemStack);
                if ($var6 instanceof nms_Packet3Chat) {
                    $par2World = $var6;
                    var$8 = var$9.$playerEntity.$chatVisibility;
                    if (var$8 == 2)
                        break b;
                    if (var$8 == 1 && !$par2World.$isServer)
                        break b;
                }
                try {
                    $par2World = var$9.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par2World = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par3ItemStack = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($par3ItemStack, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $par3ItemStack;
                }
                jl_Throwable_printStackTrace($par2World, jl_System_errCache);
            }
            $par2World = $par1EntityPlayer.$playerNetServerHandler;
            $par3ItemStack = new nms_Packet103SetSlot;
            $var6 = $par1EntityPlayer.$inventory0.$itemStack;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            $par3ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par3ItemStack.$windowId1 = (-1);
            $par3ItemStack.$itemSlot = (-1);
            if ($var6 !== null) {
                var$10 = new nms_ItemStack;
                $var4 = $var6.$itemID;
                var$8 = $var6.$stackSize;
                $var5 = $var6.$itemDamage;
                nms_ItemStack_$callClinit();
                var$10.$itemID = $var4;
                var$10.$stackSize = var$8;
                var$10.$itemDamage = $var5;
                if ($var5 < 0)
                    var$10.$itemDamage = 0;
                var$11 = $var6.$stackTagCompound;
                if (var$11 !== null) {
                    var$12 = new nms_NBTTagCompound;
                    $par1EntityPlayer = var$11.$name;
                    if ($par1EntityPlayer === null)
                        $par1EntityPlayer = $rt_s(3);
                    var$12.$name = $par1EntityPlayer;
                    var$12.$tagMap = ju_HashMap__init_0(16, 0.75);
                    $var6 = var$11.$tagMap;
                    if ($var6.$cachedKeySet === null) {
                        $par1EntityPlayer = new ju_HashMap$1;
                        $par1EntityPlayer.$this$0 = $var6;
                        ju_AbstractCollection__init_($par1EntityPlayer);
                        $var6.$cachedKeySet = $par1EntityPlayer;
                    }
                    var$13 = $var6.$cachedKeySet.$iterator();
                    while (var$13.$hasNext()) {
                        var$14 = var$13.$next();
                        $par1EntityPlayer = var$11.$tagMap;
                        if (var$14 === null) {
                            $par1EntityPlayer = $par1EntityPlayer.$elementData.data[0];
                            while ($par1EntityPlayer !== null && $par1EntityPlayer.$key !== null) {
                                $par1EntityPlayer = $par1EntityPlayer.$next3;
                            }
                        } else {
                            c: {
                                if (!var$14.$hashCode1) {
                                    $var4 = 0;
                                    while (true) {
                                        if ($var4 >= var$14.$nativeString.length)
                                            break c;
                                        var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var4) | 0;
                                        $var4 = $var4 + 1 | 0;
                                    }
                                }
                            }
                            $var5 = var$14.$hashCode1;
                            var$7 = $par1EntityPlayer.$elementData.data;
                            $par1EntityPlayer = var$7[$var5 & (var$7.length - 1 | 0)];
                            while ($par1EntityPlayer !== null && !($par1EntityPlayer.$origKeyHash == $var5 && ju_HashMap_areEqualKeys(var$14, $par1EntityPlayer.$key))) {
                                $par1EntityPlayer = $par1EntityPlayer.$next3;
                            }
                        }
                        $par1EntityPlayer = $par1EntityPlayer === null ? null : $par1EntityPlayer.$value0;
                        $par1EntityPlayer = $par1EntityPlayer.$copy();
                        $var6 = var$12.$tagMap;
                        if (var$14 !== null)
                            $par1EntityPlayer.$name = var$14;
                        else
                            $par1EntityPlayer.$name = $rt_s(3);
                        ju_HashMap_putImpl($var6, var$14, $par1EntityPlayer);
                    }
                    var$10.$stackTagCompound = var$12;
                }
                $var6 = var$10;
            }
            d: {
                $par3ItemStack.$myItemStack = $var6;
                if ($par3ItemStack instanceof nms_Packet3Chat) {
                    $par1EntityPlayer = $par3ItemStack;
                    var$8 = $par2World.$playerEntity.$chatVisibility;
                    if (var$8 == 2)
                        break d;
                    if (var$8 == 1 && !$par1EntityPlayer.$isServer)
                        break d;
                }
                try {
                    $par1EntityPlayer = $par2World.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $par1EntityPlayer = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    $par2World = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = $par2World;
                }
                jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
            }
        }
        return 1;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2World, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par2World = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par3ItemStack = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($par3ItemStack, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $par3ItemStack;
            }
            jl_Throwable_printStackTrace($par2World, jl_System_errCache);
        }
        $par2World = $par1EntityPlayer.$playerNetServerHandler;
        $par3ItemStack = new nms_Packet103SetSlot;
        $var6 = $par1EntityPlayer.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        $par3ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        $par3ItemStack.$windowId1 = (-1);
        $par3ItemStack.$itemSlot = (-1);
        if ($var6 !== null) {
            var$10 = new nms_ItemStack;
            $var4 = $var6.$itemID;
            var$8 = $var6.$stackSize;
            $var5 = $var6.$itemDamage;
            nms_ItemStack_$callClinit();
            var$10.$itemID = $var4;
            var$10.$stackSize = var$8;
            var$10.$itemDamage = $var5;
            if ($var5 < 0)
                var$10.$itemDamage = 0;
            var$11 = $var6.$stackTagCompound;
            if (var$11 !== null) {
                var$12 = new nms_NBTTagCompound;
                $par1EntityPlayer = var$11.$name;
                if ($par1EntityPlayer === null)
                    $par1EntityPlayer = $rt_s(3);
                var$12.$name = $par1EntityPlayer;
                var$12.$tagMap = ju_HashMap__init_0(16, 0.75);
                $var6 = var$11.$tagMap;
                if ($var6.$cachedKeySet === null) {
                    $par1EntityPlayer = new ju_HashMap$1;
                    $par1EntityPlayer.$this$0 = $var6;
                    ju_AbstractCollection__init_($par1EntityPlayer);
                    $var6.$cachedKeySet = $par1EntityPlayer;
                }
                var$13 = $var6.$cachedKeySet.$iterator();
                while (var$13.$hasNext()) {
                    var$14 = var$13.$next();
                    $par1EntityPlayer = var$11.$tagMap;
                    if (var$14 === null) {
                        $par1EntityPlayer = $par1EntityPlayer.$elementData.data[0];
                        while ($par1EntityPlayer !== null && $par1EntityPlayer.$key !== null) {
                            $par1EntityPlayer = $par1EntityPlayer.$next3;
                        }
                    } else {
                        e: {
                            if (!var$14.$hashCode1) {
                                $var4 = 0;
                                while (true) {
                                    if ($var4 >= var$14.$nativeString.length)
                                        break e;
                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt($var4) | 0;
                                    $var4 = $var4 + 1 | 0;
                                }
                            }
                        }
                        $var5 = var$14.$hashCode1;
                        var$7 = $par1EntityPlayer.$elementData.data;
                        $par1EntityPlayer = var$7[$var5 & (var$7.length - 1 | 0)];
                        while ($par1EntityPlayer !== null && !($par1EntityPlayer.$origKeyHash == $var5 && ju_HashMap_areEqualKeys(var$14, $par1EntityPlayer.$key))) {
                            $par1EntityPlayer = $par1EntityPlayer.$next3;
                        }
                    }
                    $par1EntityPlayer = $par1EntityPlayer === null ? null : $par1EntityPlayer.$value0;
                    $par1EntityPlayer = $par1EntityPlayer.$copy();
                    $var6 = var$12.$tagMap;
                    if (var$14 !== null)
                        $par1EntityPlayer.$name = var$14;
                    else
                        $par1EntityPlayer.$name = $rt_s(3);
                    ju_HashMap_putImpl($var6, var$14, $par1EntityPlayer);
                }
                var$10.$stackTagCompound = var$12;
            }
            $var6 = var$10;
        }
        f: {
            $par3ItemStack.$myItemStack = $var6;
            if ($par3ItemStack instanceof nms_Packet3Chat) {
                $par1EntityPlayer = $par3ItemStack;
                var$8 = $par2World.$playerEntity.$chatVisibility;
                if (var$8 == 2)
                    break f;
                if (var$8 == 1 && !$par1EntityPlayer.$isServer)
                    break f;
            }
            try {
                $par1EntityPlayer = $par2World.$netManager;
                $ptr = 3;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2World = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $par2World;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    case 3:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1EntityPlayer, $par3ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2World = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $par2World;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2World, $par3ItemStack, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_ItemInWorldManager_activateBlockOrUseItem = ($this, $par1EntityPlayer, $par2World, $par3ItemStack, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let var$11, var$12, $var11, var$14, var$15, $var12, $var11_0, $var13, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();$var11_0 = $thread.pop();$var12 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var11 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3ItemStack = $thread.pop();$par2World = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$11 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$12 = jl_Integer_integerCache.data[128];
        if (var$12 === null) {
            var$11 = var$11.$elementData.data[0];
            while (var$11 !== null && var$11.$key !== null) {
                var$11 = var$11.$next3;
            }
        } else {
            $var11 = var$12.$value;
            var$14 = var$11.$elementData.data;
            var$11 = var$14[$var11 & (var$14.length - 1 | 0)];
            while (var$11 !== null) {
                if (var$11.$origKeyHash == $var11) {
                    var$15 = var$11.$key;
                    if (var$12 !== var$15 && !jl_Integer_equals(var$12, var$15) ? 0 : 1)
                        break;
                }
                var$11 = var$11.$next3;
            }
        }
        var$11 = var$11 === null ? null : var$11.$value0;
        if (!(var$11.$watchedObject.$value1 & 2) ? 0 : 1) {
            var$11 = $par1EntityPlayer.$inventory0;
            $var12 = var$11.$currentItem;
            if (($var12 < 9 && $var12 >= 0 ? var$11.$mainInventory.data[$var12] : null) !== null) {
                if ($par3ItemStack === null)
                    return 0;
                if (!($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
                    nms_Item_$callClinit();
                    var$11 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
                    $ptr = 3;
                    continue main;
                }
                $var11 = $par3ItemStack.$itemDamage;
                $var12 = $par3ItemStack.$stackSize;
                nms_Item_$callClinit();
                var$11 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
                $ptr = 4;
                continue main;
            }
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par2World, $par4, $par5, $par6);
        if ($rt_suspending()) {
            break main;
        }
        $var11_0 = $tmp;
        if ($var11_0 > 0) {
            nms_Block_$callClinit();
            var$11 = nms_Block_blocksList.data[$var11_0];
            $ptr = 2;
            continue main;
        }
        if ($par3ItemStack === null)
            return 0;
        if (!($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
            $ptr = 3;
            continue main;
        }
        $var11 = $par3ItemStack.$itemDamage;
        $var12 = $par3ItemStack.$stackSize;
        nms_Item_$callClinit();
        var$11 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$11.$onBlockActivated($par2World, $par4, $par5, $par6, $par1EntityPlayer, $par7, $par8, $par9, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $var11_0 = $tmp;
        if ($var11_0)
            return 1;
        if ($par3ItemStack === null)
            return 0;
        if (!($this.$gameType !== nms_EnumGameType_CREATIVE ? 0 : 1)) {
            nms_Item_$callClinit();
            var$11 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
            $ptr = 3;
            continue main;
        }
        $var11 = $par3ItemStack.$itemDamage;
        $var12 = $par3ItemStack.$stackSize;
        nms_Item_$callClinit();
        var$11 = nms_Item_itemsList.data[$par3ItemStack.$itemID];
        $ptr = 4;
        continue main;
    case 3:
        $tmp = var$11.$onItemUse($par3ItemStack, $par1EntityPlayer, $par2World, $par4, $par5, $par6, $par7, $par8, $par9, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4) {
            nms_StatList_$callClinit();
            $par2World = nms_StatList_objectUseStats.data[$par3ItemStack.$itemID];
            if ($par2World !== null && !$par2World.$isIndependent)
                a: {
                    $par3ItemStack = $par1EntityPlayer.$playerNetServerHandler;
                    $par1EntityPlayer = new nms_Packet200Statistic;
                    $par6 = $par2World.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par1EntityPlayer.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1EntityPlayer.$statisticId = $par6;
                    $par1EntityPlayer.$amount = 1;
                    if ($par1EntityPlayer instanceof nms_Packet3Chat) {
                        $par2World = $par1EntityPlayer;
                        $par6 = $par3ItemStack.$playerEntity.$chatVisibility;
                        if ($par6 == 2)
                            break a;
                        if ($par6 == 1 && !$par2World.$isServer)
                            break a;
                    }
                    try {
                        $par2World = $par3ItemStack.$netManager;
                        $ptr = 5;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1EntityPlayer = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par2World = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $par2World;
                    }
                    jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
                }
        }
        return $par4;
    case 4:
        $tmp = var$11.$onItemUse($par3ItemStack, $par1EntityPlayer, $par2World, $par4, $par5, $par6, $par7, $par8, $par9, $par10);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if ($var13) {
            nms_StatList_$callClinit();
            $par2World = nms_StatList_objectUseStats.data[$par3ItemStack.$itemID];
            if ($par2World !== null && !$par2World.$isIndependent)
                a: {
                    var$11 = $par1EntityPlayer.$playerNetServerHandler;
                    $par1EntityPlayer = new nms_Packet200Statistic;
                    $par5 = $par2World.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par1EntityPlayer.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1EntityPlayer.$statisticId = $par5;
                    $par1EntityPlayer.$amount = 1;
                    if ($par1EntityPlayer instanceof nms_Packet3Chat) {
                        $par2World = $par1EntityPlayer;
                        $par5 = var$11.$playerEntity.$chatVisibility;
                        if ($par5 == 2)
                            break a;
                        if ($par5 == 1 && !$par2World.$isServer)
                            break a;
                    }
                    try {
                        $par2World = var$11.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1EntityPlayer = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        $par2World = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = $par2World;
                    }
                    jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
                }
        }
        $par3ItemStack.$itemDamage = $var11;
        if ($var11 < 0)
            $par3ItemStack.$itemDamage = 0;
        $par3ItemStack.$stackSize = $var12;
        return $var13;
    case 5:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2World, $par1EntityPlayer);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2World = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $par2World;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        return $par4;
    case 6:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par2World, $par1EntityPlayer);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1EntityPlayer = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                $par2World = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_($par2World, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = $par2World;
            }
            jl_Throwable_printStackTrace($par1EntityPlayer, jl_System_errCache);
        }
        $par3ItemStack.$itemDamage = $var11;
        if ($var11 < 0)
            $par3ItemStack.$itemDamage = 0;
        $par3ItemStack.$stackSize = $var12;
        return $var13;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2World, $par3ItemStack, $par4, $par5, $par6, $par7, $par8, $par9, $par10, var$11, var$12, $var11, var$14, var$15, $var12, $var11_0, $var13, $ptr);
};
function nms_InventoryPlayer() {
    let a = this; jl_Object.call(a);
    a.$mainInventory = null;
    a.$armorInventory = null;
    a.$currentItem = 0;
    a.$player = null;
    a.$itemStack = null;
    a.$inventoryChanged = 0;
}
let nms_InventoryPlayer_getCurrentItem = $this => {
    let var$1;
    var$1 = $this.$currentItem;
    return var$1 < 9 && var$1 >= 0 ? $this.$mainInventory.data[var$1] : null;
},
nms_InventoryPlayer_getInventorySlotContainItem = ($this, $par1) => {
    let $var2, var$3;
    $var2 = 0;
    while (true) {
        var$3 = $this.$mainInventory.data;
        if ($var2 >= var$3.length)
            return (-1);
        if (var$3[$var2] !== null && var$3[$var2].$itemID == $par1)
            break;
        $var2 = $var2 + 1 | 0;
    }
    return $var2;
},
nms_InventoryPlayer_storeItemStack = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4, var$5, var$6, var$7;
    $var2 = 0;
    while (true) {
        var$3 = $this.$mainInventory.data;
        if ($var2 >= var$3.length)
            return (-1);
        if (var$3[$var2] !== null && var$3[$var2].$itemID == $par1ItemStack.$itemID) {
            a: {
                b: {
                    var$4 = var$3[$var2];
                    nms_Item_$callClinit();
                    var$5 = nms_Item_itemsList.data;
                    var$6 = var$4.$itemID;
                    if (var$5[var$6].$maxStackSize > 1) {
                        if (!(var$5[var$6].$maxDamage <= 0 ? 0 : 1))
                            break b;
                        var$7 = var$5[var$6].$maxDamage <= 0 ? 0 : 1;
                        if (!(var$7 && var$4.$itemDamage > 0 ? 1 : 0))
                            break b;
                    }
                    var$7 = 0;
                    break a;
                }
                var$7 = 1;
            }
            if (var$7 && var$3[$var2].$stackSize < var$5[var$3[$var2].$itemID].$maxStackSize && var$3[$var2].$stackSize < 64 && !(var$5[var$3[$var2].$itemID].$hasSubtypes && var$3[$var2].$itemDamage != $par1ItemStack.$itemDamage) && nms_ItemStack_areItemStackTagsEqual(var$3[$var2], $par1ItemStack))
                break;
        }
        $var2 = $var2 + 1 | 0;
    }
    return $var2;
},
nms_InventoryPlayer_clearInventory = ($this, $par1, $par2) => {
    let $var3, $var4, var$5, var$6, var$7, $var5;
    $var3 = 0;
    $var4 = 0;
    var$5 = $rt_compare($par1, (-1));
    var$6 = $rt_compare($par2, (-1));
    while (true) {
        var$7 = $this.$mainInventory.data;
        if ($var4 >= var$7.length)
            break;
        $var5 = var$7[$var4];
        if ($var5 !== null && !(var$5 > 0 && $var5.$itemID != $par1) && !(var$6 > 0 && $var5.$itemDamage != $par2)) {
            $var3 = $var3 + $var5.$stackSize | 0;
            var$7[$var4] = null;
        }
        $var4 = $var4 + 1 | 0;
    }
    $var4 = 0;
    while (true) {
        var$7 = $this.$armorInventory.data;
        if ($var4 >= var$7.length)
            break;
        $var5 = var$7[$var4];
        if ($var5 !== null && !(var$5 > 0 && $var5.$itemID != $par1) && !(var$6 > 0 && $var5.$itemDamage != $par2)) {
            $var3 = $var3 + $var5.$stackSize | 0;
            var$7[$var4] = null;
        }
        $var4 = $var4 + 1 | 0;
    }
    $var5 = $this.$itemStack;
    if ($var5 !== null) {
        if (var$5 > 0 && $var5.$itemID != $par1)
            return $var3;
        if (var$6 > 0 && $var5.$itemDamage != $par2)
            return $var3;
        $var3 = $var3 + $var5.$stackSize | 0;
        $this.$itemStack = null;
    }
    return $var3;
},
nms_InventoryPlayer_storePartialItemStack = ($this, $par1ItemStack) => {
    let $var2, $var3, $var4, var$5, var$6, $var4_0, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16;
    $var2 = $par1ItemStack.$itemID;
    $var3 = $par1ItemStack.$stackSize;
    nms_Item_$callClinit();
    if (nms_Item_itemsList.data[$var2].$maxStackSize == 1) {
        $var4 = 0;
        a: {
            while (true) {
                var$5 = $this.$mainInventory.data;
                if ($var4 >= var$5.length) {
                    $var4 = (-1);
                    break a;
                }
                if (var$5[$var4] === null)
                    break;
                $var4 = $var4 + 1 | 0;
            }
        }
        if ($var4 < 0)
            return $var3;
        if (var$5[$var4] === null) {
            nms_ItemStack_$callClinit();
            var$6 = new nms_ItemStack;
            $var4_0 = $par1ItemStack.$itemDamage;
            var$6.$itemID = $var2;
            var$6.$stackSize = $var3;
            var$6.$itemDamage = $var4_0;
            if ($var4_0 < 0)
                var$6.$itemDamage = 0;
            $par1ItemStack = $par1ItemStack.$stackTagCompound;
            if ($par1ItemStack !== null) {
                var$8 = new nms_NBTTagCompound;
                var$9 = $par1ItemStack.$name;
                if (var$9 === null)
                    var$9 = $rt_s(3);
                var$8.$name = var$9;
                var$9 = new ju_HashMap;
                jl_Object__init_(var$9);
                $var3 = ju_HashMap_calculateCapacity(16);
                var$9.$elementCount = 0;
                var$10 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                var$11 = var$10.data;
                var$9.$elementData = var$10;
                var$9.$loadFactor = 0.75;
                var$9.$threshold = var$11.length * 0.75 | 0;
                var$8.$tagMap = var$9;
                var$9 = $par1ItemStack.$tagMap;
                if (var$9.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$9;
                    var$9.$cachedKeySet = var$12;
                }
                var$9 = var$9.$cachedKeySet.$iterator();
                while (var$9.$hasNext()) {
                    var$12 = var$9.$next();
                    var$13 = $par1ItemStack.$tagMap;
                    if (var$12 === null) {
                        var$13 = var$13.$elementData.data[0];
                        while (var$13 !== null && var$13.$key !== null) {
                            var$13 = var$13.$next3;
                        }
                    } else {
                        b: {
                            if (!var$12.$hashCode1) {
                                $var2 = 0;
                                while (true) {
                                    if ($var2 >= var$12.$nativeString.length)
                                        break b;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt($var2) | 0;
                                    $var2 = $var2 + 1 | 0;
                                }
                            }
                        }
                        $var4_0 = var$12.$hashCode1;
                        var$11 = var$13.$elementData.data;
                        var$13 = var$11[$var4_0 & (var$11.length - 1 | 0)];
                        while (var$13 !== null) {
                            if (var$13.$origKeyHash == $var4_0) {
                                c: {
                                    var$14 = var$13.$key;
                                    if (var$12 !== var$14) {
                                        if (var$12 === var$14)
                                            $var2 = 1;
                                        else if (!(var$14 instanceof jl_String))
                                            $var2 = 0;
                                        else {
                                            var$14 = var$14;
                                            $var2 = var$12.$nativeString !== var$14.$nativeString ? 0 : 1;
                                        }
                                        if (!$var2) {
                                            $var2 = 0;
                                            break c;
                                        }
                                    }
                                    $var2 = 1;
                                }
                                if ($var2)
                                    break;
                            }
                            var$13 = var$13.$next3;
                        }
                    }
                    var$13 = var$13 === null ? null : var$13.$value0;
                    var$13 = var$13.$copy();
                    var$14 = var$8.$tagMap;
                    if (var$12 !== null)
                        var$13.$name = var$12;
                    else
                        var$13.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$14, var$12, var$13);
                }
                var$6.$stackTagCompound = var$8;
            }
            var$5[$var4] = var$6;
        }
        return 0;
    }
    $var4_0 = nms_InventoryPlayer_storeItemStack($this, $par1ItemStack);
    if ($var4_0 < 0) {
        $var4_0 = 0;
        d: {
            while (true) {
                var$11 = $this.$mainInventory.data;
                if ($var4_0 >= var$11.length) {
                    $var4_0 = (-1);
                    break d;
                }
                if (var$11[$var4_0] === null)
                    break;
                $var4_0 = $var4_0 + 1 | 0;
            }
        }
    }
    if ($var4_0 < 0)
        return $var3;
    var$11 = $this.$mainInventory.data;
    if (var$11[$var4_0] === null) {
        var$6 = new nms_ItemStack;
        var$15 = $par1ItemStack.$itemDamage;
        nms_ItemStack_$callClinit();
        var$6.$itemID = $var2;
        var$6.$stackSize = 0;
        var$6.$itemDamage = var$15;
        if (var$15 < 0)
            var$6.$itemDamage = 0;
        var$11[$var4_0] = var$6;
        var$14 = $par1ItemStack.$stackTagCompound;
        if (var$14 === null ? 0 : 1) {
            $par1ItemStack = var$11[$var4_0];
            var$16 = new nms_NBTTagCompound;
            var$6 = var$14.$name;
            if (var$6 === null)
                var$6 = $rt_s(3);
            var$16.$name = var$6;
            var$6 = new ju_HashMap;
            $var4 = ju_HashMap_calculateCapacity(16);
            var$6.$elementCount = 0;
            var$5 = $rt_createArray(ju_HashMap$HashEntry, $var4);
            var$11 = var$5.data;
            var$6.$elementData = var$5;
            var$6.$loadFactor = 0.75;
            var$6.$threshold = var$11.length * 0.75 | 0;
            var$16.$tagMap = var$6;
            var$6 = var$14.$tagMap;
            if (var$6.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = var$6;
                var$6.$cachedKeySet = var$8;
            }
            var$6 = var$6.$cachedKeySet.$iterator();
            while (var$6.$hasNext()) {
                var$8 = var$6.$next();
                var$9 = var$14.$tagMap;
                if (var$8 === null) {
                    var$9 = var$9.$elementData.data[0];
                    while (var$9 !== null && var$9.$key !== null) {
                        var$9 = var$9.$next3;
                    }
                } else {
                    e: {
                        if (!var$8.$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= var$8.$nativeString.length)
                                    break e;
                                var$8.$hashCode1 = (31 * var$8.$hashCode1 | 0) + var$8.$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    var$15 = var$8.$hashCode1;
                    var$11 = var$9.$elementData.data;
                    var$9 = var$11[var$15 & (var$11.length - 1 | 0)];
                    while (var$9 !== null) {
                        if (var$9.$origKeyHash == var$15) {
                            f: {
                                var$12 = var$9.$key;
                                if (var$8 !== var$12) {
                                    if (var$8 === var$12)
                                        $var4 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        $var4 = 0;
                                    else {
                                        var$12 = var$12;
                                        $var4 = var$8.$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!$var4) {
                                        $var4 = 0;
                                        break f;
                                    }
                                }
                                $var4 = 1;
                            }
                            if ($var4)
                                break;
                        }
                        var$9 = var$9.$next3;
                    }
                }
                var$9 = var$9 === null ? null : var$9.$value0;
                var$9 = var$9.$copy();
                var$12 = var$16.$tagMap;
                if (var$8 !== null)
                    var$9.$name = var$8;
                else
                    var$9.$name = $rt_s(3);
                ju_HashMap_putImpl(var$12, var$8, var$9);
            }
            $par1ItemStack.$stackTagCompound = var$16;
        }
    }
    var$11 = $this.$mainInventory.data;
    $par1ItemStack = var$11[$var4_0];
    var$5 = nms_Item_itemsList.data;
    $var4 = $var3 <= (var$5[$par1ItemStack.$itemID].$maxStackSize - var$11[$var4_0].$stackSize | 0) ? $var3 : var$5[var$11[$var4_0].$itemID].$maxStackSize - var$11[$var4_0].$stackSize | 0;
    if ($var4 > (64 - var$11[$var4_0].$stackSize | 0))
        $var4 = 64 - var$11[$var4_0].$stackSize | 0;
    if (!$var4)
        return $var3;
    $var2 = $var3 - $var4 | 0;
    $par1ItemStack = var$11[$var4_0];
    $par1ItemStack.$stackSize = $par1ItemStack.$stackSize + $var4 | 0;
    var$11[$var4_0].$animationsToGo = 5;
    return $var2;
},
nms_InventoryPlayer_decrementAnimations = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        while (true) {
            var$2 = $this.$mainInventory.data;
            if ($var1 >= var$2.length)
                break;
            if (var$2[$var1] !== null) {
                var$3 = var$2[$var1];
                var$4 = $this.$player;
                var$5 = var$4.$worldObj;
                var$6 = $this.$currentItem != $var1 ? 0 : 1;
                var$7 = var$3.$animationsToGo;
                if (var$7 > 0)
                    var$3.$animationsToGo = var$7 - 1 | 0;
                nms_Item_$callClinit();
                var$8 = nms_Item_itemsList.data[var$3.$itemID];
                $ptr = 1;
                continue main;
            }
            $var1 = $var1 + 1 | 0;
        }
        return;
    case 1:
        var$8.$onUpdate1(var$3, var$5, var$4, $var1, var$6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var1 = $var1 + 1 | 0;
            var$2 = $this.$mainInventory.data;
            if ($var1 >= var$2.length)
                break;
            if (var$2[$var1] === null)
                continue;
            else {
                var$3 = var$2[$var1];
                var$4 = $this.$player;
                var$5 = var$4.$worldObj;
                var$6 = $this.$currentItem != $var1 ? 0 : 1;
                var$7 = var$3.$animationsToGo;
                if (var$7 > 0)
                    var$3.$animationsToGo = var$7 - 1 | 0;
                nms_Item_$callClinit();
                var$8 = nms_Item_itemsList.data[var$3.$itemID];
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_InventoryPlayer_addItemStackToInventory = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4, $var2_0, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    if ($par1ItemStack === null)
        return 0;
    $var2 = $par1ItemStack.$stackSize;
    if (!$var2)
        return 0;
    nms_Item_$callClinit();
    var$3 = nms_Item_itemsList.data;
    var$4 = $par1ItemStack.$itemID;
    $var2_0 = var$3[var$4].$maxDamage <= 0 ? 0 : 1;
    if (!($var2_0 && $par1ItemStack.$itemDamage > 0 ? 1 : 0)) {
        while (true) {
            $var2 = $par1ItemStack.$stackSize;
            $var2_0 = nms_InventoryPlayer_storePartialItemStack($this, $par1ItemStack);
            $par1ItemStack.$stackSize = $var2_0;
            if ($var2_0 <= 0)
                break;
            if ($var2_0 < $var2)
                continue;
            else
                break;
        }
        $var2 = $rt_compare($var2_0, $var2);
        if (!$var2 && $this.$player.$capabilities.$isCreativeMode) {
            $par1ItemStack.$stackSize = 0;
            return 1;
        }
        return $var2 >= 0 ? 0 : 1;
    }
    $var2_0 = 0;
    a: {
        while (true) {
            var$6 = $this.$mainInventory.data;
            if ($var2_0 >= var$6.length) {
                $var2_0 = (-1);
                break a;
            }
            if (var$6[$var2_0] === null)
                break;
            $var2_0 = $var2_0 + 1 | 0;
        }
    }
    if ($var2_0 < 0) {
        if (!$this.$player.$capabilities.$isCreativeMode)
            return 0;
        $par1ItemStack.$stackSize = 0;
        return 1;
    }
    nms_ItemStack_$callClinit();
    var$7 = new nms_ItemStack;
    var$8 = $par1ItemStack.$itemDamage;
    var$7.$itemID = var$4;
    var$7.$stackSize = $var2;
    var$7.$itemDamage = var$8;
    if (var$8 < 0)
        var$7.$itemDamage = 0;
    var$9 = $par1ItemStack.$stackTagCompound;
    if (var$9 !== null) {
        var$10 = new nms_NBTTagCompound;
        var$11 = var$9.$name;
        if (var$11 === null)
            var$11 = $rt_s(3);
        var$10.$name = var$11;
        var$11 = new ju_HashMap;
        jl_Object__init_(var$11);
        $var2 = ju_HashMap_calculateCapacity(16);
        var$11.$elementCount = 0;
        var$12 = $rt_createArray(ju_HashMap$HashEntry, $var2);
        var$3 = var$12.data;
        var$11.$elementData = var$12;
        var$11.$loadFactor = 0.75;
        var$11.$threshold = var$3.length * 0.75 | 0;
        var$10.$tagMap = var$11;
        var$13 = var$9.$tagMap;
        if (var$13.$cachedKeySet === null) {
            var$11 = new ju_HashMap$1;
            var$11.$this$0 = var$13;
            var$13.$cachedKeySet = var$11;
        }
        var$14 = var$13.$cachedKeySet.$iterator();
        while (var$14.$hasNext()) {
            var$15 = var$14.$next();
            var$11 = var$9.$tagMap;
            if (var$15 === null) {
                var$11 = var$11.$elementData.data[0];
                while (var$11 !== null && var$11.$key !== null) {
                    var$11 = var$11.$next3;
                }
            } else {
                b: {
                    if (!var$15.$hashCode1) {
                        $var2 = 0;
                        while (true) {
                            if ($var2 >= var$15.$nativeString.length)
                                break b;
                            var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt($var2) | 0;
                            $var2 = $var2 + 1 | 0;
                        }
                    }
                }
                var$4 = var$15.$hashCode1;
                var$3 = var$11.$elementData.data;
                var$11 = var$3[var$4 & (var$3.length - 1 | 0)];
                while (var$11 !== null) {
                    if (var$11.$origKeyHash == var$4) {
                        c: {
                            var$13 = var$11.$key;
                            if (var$15 !== var$13) {
                                if (var$15 === var$13)
                                    $var2 = 1;
                                else if (!(var$13 instanceof jl_String))
                                    $var2 = 0;
                                else {
                                    var$13 = var$13;
                                    $var2 = var$15.$nativeString !== var$13.$nativeString ? 0 : 1;
                                }
                                if (!$var2) {
                                    $var2 = 0;
                                    break c;
                                }
                            }
                            $var2 = 1;
                        }
                        if ($var2)
                            break;
                    }
                    var$11 = var$11.$next3;
                }
            }
            var$11 = var$11 === null ? null : var$11.$value0;
            var$11 = var$11.$copy();
            var$13 = var$10.$tagMap;
            if (var$15 !== null)
                var$11.$name = var$15;
            else
                var$11.$name = $rt_s(3);
            ju_HashMap_putImpl(var$13, var$15, var$11);
        }
        var$7.$stackTagCompound = var$10;
    }
    var$6[$var2_0] = var$7;
    $this.$mainInventory.data[$var2_0].$animationsToGo = 5;
    $par1ItemStack.$stackSize = 0;
    return 1;
},
nms_InventoryPlayer_decrStackSize = ($this, $par1, $par2) => {
    let $var3, var$4, $var4, var$6, $var4_0, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16;
    $var3 = $this.$mainInventory;
    var$4 = $var3.data.length;
    if ($par1 >= var$4) {
        $var3 = $this.$armorInventory;
        $par1 = $par1 - var$4 | 0;
    }
    $var3 = $var3.data;
    if ($var3[$par1] === null)
        return null;
    if ($var3[$par1].$stackSize <= $par2) {
        $var4 = $var3[$par1];
        $var3[$par1] = null;
        return $var4;
    }
    var$6 = $var3[$par1];
    $var4_0 = new nms_ItemStack;
    var$4 = var$6.$itemID;
    var$8 = var$6.$itemDamage;
    nms_ItemStack_$callClinit();
    $var4_0.$itemID = var$4;
    $var4_0.$stackSize = $par2;
    $var4_0.$itemDamage = var$8;
    if (var$8 < 0)
        $var4_0.$itemDamage = 0;
    var$9 = var$6.$stackTagCompound;
    if (var$9 !== null) {
        $var4 = new nms_NBTTagCompound;
        var$10 = var$9.$name;
        if (var$10 === null)
            var$10 = $rt_s(3);
        $var4.$name = var$10;
        var$10 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$10.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$12 = var$11.data;
        var$10.$elementData = var$11;
        var$10.$loadFactor = 0.75;
        var$10.$threshold = var$12.length * 0.75 | 0;
        $var4.$tagMap = var$10;
        var$10 = var$9.$tagMap;
        if (var$10.$cachedKeySet === null) {
            var$13 = new ju_HashMap$1;
            var$13.$this$0 = var$10;
            var$10.$cachedKeySet = var$13;
        }
        var$10 = var$10.$cachedKeySet.$iterator();
        while (var$10.$hasNext()) {
            var$13 = var$10.$next();
            var$14 = var$9.$tagMap;
            if (var$13 === null) {
                var$14 = var$14.$elementData.data[0];
                while (var$14 !== null && var$14.$key !== null) {
                    var$14 = var$14.$next3;
                }
            } else {
                a: {
                    if (!var$13.$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= var$13.$nativeString.length)
                                break a;
                            var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$15 = var$13.$hashCode1;
                var$12 = var$14.$elementData.data;
                var$14 = var$12[var$15 & (var$12.length - 1 | 0)];
                while (var$14 !== null) {
                    if (var$14.$origKeyHash == var$15) {
                        b: {
                            var$16 = var$14.$key;
                            if (var$13 !== var$16) {
                                if (var$13 === var$16)
                                    var$4 = 1;
                                else if (!(var$16 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$16 = var$16;
                                    var$4 = var$13.$nativeString !== var$16.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break b;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$14 = var$14.$next3;
                }
            }
            var$14 = var$14 === null ? null : var$14.$value0;
            var$14 = var$14.$copy();
            var$16 = $var4.$tagMap;
            if (var$13 !== null)
                var$14.$name = var$13;
            else
                var$14.$name = $rt_s(3);
            ju_HashMap_putImpl(var$16, var$13, var$14);
        }
        $var4_0.$stackTagCompound = $var4;
    }
    var$6.$stackSize = var$6.$stackSize - $par2 | 0;
    if (!$var3[$par1].$stackSize)
        $var3[$par1] = null;
    return $var4_0;
},
nms_InventoryPlayer_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let $var3, var$4;
    $var3 = $this.$mainInventory;
    var$4 = $var3.data.length;
    if ($par1 >= var$4) {
        $par1 = $par1 - var$4 | 0;
        $var3 = $this.$armorInventory;
    }
    $var3.data[$par1] = $par2ItemStack;
},
nms_InventoryPlayer_writeToNBT = ($this, $par1NBTTagList) => {
    let $var2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    $var2 = 0;
    while (true) {
        var$3 = $this.$mainInventory.data;
        if ($var2 >= var$3.length)
            break;
        if (var$3[$var2] !== null) {
            $var3 = new nms_NBTTagCompound;
            $var3.$name = $rt_s(3);
            var$5 = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            var$5.$elementCount = 0;
            var$7 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$3 = var$7.data;
            var$5.$elementData = var$7;
            var$5.$loadFactor = 0.75;
            var$5.$threshold = var$3.length * 0.75 | 0;
            $var3.$tagMap = var$5;
            var$6 = $var2 << 24 >> 24;
            var$8 = new nms_NBTTagByte;
            var$8.$name = $rt_s(2022);
            var$8.$data0 = var$6;
            ju_HashMap_putImpl(var$5, $rt_s(2022), var$8);
            var$9 = $this.$mainInventory.data[$var2];
            var$6 = var$9.$itemID << 16 >> 16;
            var$10 = $var3.$tagMap;
            var$5 = new nms_NBTTagShort;
            var$5.$name = $rt_s(914);
            var$5.$data2 = var$6;
            ju_HashMap_putImpl(var$10, $rt_s(914), var$5);
            var$6 = var$9.$stackSize << 24 >> 24;
            var$10 = $var3.$tagMap;
            var$5 = new nms_NBTTagByte;
            var$5.$name = $rt_s(915);
            var$5.$data0 = var$6;
            ju_HashMap_putImpl(var$10, $rt_s(915), var$5);
            var$6 = var$9.$itemDamage << 16 >> 16;
            var$10 = $var3.$tagMap;
            var$5 = new nms_NBTTagShort;
            var$5.$name = $rt_s(916);
            var$5.$data2 = var$6;
            ju_HashMap_putImpl(var$10, $rt_s(916), var$5);
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$5 = $var3.$tagMap;
                var$9.$name = $rt_s(917);
                ju_HashMap_putImpl(var$5, $rt_s(917), var$9);
            }
            $par1NBTTagList.$tagType = 10;
            var$9 = $par1NBTTagList.$tagList;
            ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
            var$3 = var$9.$array.data;
            var$11 = var$9.$size0;
            var$9.$size0 = var$11 + 1 | 0;
            var$3[var$11] = $var3;
            var$9.$modCount = var$9.$modCount + 1 | 0;
        }
        $var2 = $var2 + 1 | 0;
    }
    var$6 = 0;
    while (true) {
        var$3 = $this.$armorInventory.data;
        if (var$6 >= var$3.length)
            break;
        if (var$3[var$6] !== null) {
            $var3 = new nms_NBTTagCompound;
            $var3.$name = $rt_s(3);
            var$8 = new ju_HashMap;
            $var2 = ju_HashMap_calculateCapacity(16);
            var$8.$elementCount = 0;
            var$7 = $rt_createArray(ju_HashMap$HashEntry, $var2);
            var$3 = var$7.data;
            var$8.$elementData = var$7;
            var$8.$loadFactor = 0.75;
            var$8.$threshold = var$3.length * 0.75 | 0;
            $var3.$tagMap = var$8;
            $var2 = (var$6 + 100 | 0) << 24 >> 24;
            var$5 = new nms_NBTTagByte;
            var$5.$name = $rt_s(2022);
            var$5.$data0 = $var2;
            ju_HashMap_putImpl(var$8, $rt_s(2022), var$5);
            var$9 = $this.$armorInventory.data[var$6];
            $var2 = var$9.$itemID << 16 >> 16;
            var$10 = $var3.$tagMap;
            var$5 = new nms_NBTTagShort;
            var$5.$name = $rt_s(914);
            var$5.$data2 = $var2;
            ju_HashMap_putImpl(var$10, $rt_s(914), var$5);
            $var2 = var$9.$stackSize << 24 >> 24;
            var$10 = $var3.$tagMap;
            var$5 = new nms_NBTTagByte;
            var$5.$name = $rt_s(915);
            var$5.$data0 = $var2;
            ju_HashMap_putImpl(var$10, $rt_s(915), var$5);
            $var2 = var$9.$itemDamage << 16 >> 16;
            var$10 = $var3.$tagMap;
            var$5 = new nms_NBTTagShort;
            var$5.$name = $rt_s(916);
            var$5.$data2 = $var2;
            ju_HashMap_putImpl(var$10, $rt_s(916), var$5);
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$5 = $var3.$tagMap;
                var$9.$name = $rt_s(917);
                ju_HashMap_putImpl(var$5, $rt_s(917), var$9);
            }
            $par1NBTTagList.$tagType = 10;
            var$9 = $par1NBTTagList.$tagList;
            ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
            var$3 = var$9.$array.data;
            var$12 = var$9.$size0;
            var$9.$size0 = var$12 + 1 | 0;
            var$3[var$12] = $var3;
            var$9.$modCount = var$9.$modCount + 1 | 0;
        }
        var$6 = var$6 + 1 | 0;
    }
    return $par1NBTTagList;
},
nms_InventoryPlayer_readFromNBT = ($this, $par1NBTTagList) => {
    let $var2, $var5, var$4, $var3, var$6, var$7, var$8, $var4;
    $this.$mainInventory = $rt_createArray(nms_ItemStack, 36);
    $this.$armorInventory = $rt_createArray(nms_ItemStack, 4);
    $var2 = 0;
    a: {
        while (true) {
            $var5 = $par1NBTTagList.$tagList;
            var$4 = $rt_compare($var2, $var5.$size0);
            if (var$4 >= 0)
                break;
            if ($var2 < 0)
                break a;
            if (var$4 >= 0)
                break a;
            b: {
                $var3 = $var5.$array.data[$var2];
                $var5 = $var3.$tagMap;
                if (!$rt_s(2022).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2022).$nativeString.length)
                            break b;
                        $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$6 = $rt_s(2022).$hashCode1;
            var$7 = $var5.$elementData.data;
            $var5 = var$7[var$6 & (var$7.length - 1 | 0)];
            while ($var5 !== null) {
                if ($var5.$origKeyHash == var$6) {
                    c: {
                        var$8 = $var5.$key;
                        if ($rt_s(2022) !== var$8) {
                            if ($rt_s(2022) === var$8)
                                var$4 = 1;
                            else if (!(var$8 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$8 = var$8;
                                var$4 = $rt_s(2022).$nativeString !== var$8.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break c;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var5 = $var5.$next3;
            }
            if (!($var5 === null ? 0 : 1))
                var$4 = 0;
            else {
                $var5 = $var3.$tagMap;
                if ($rt_s(2022) === null) {
                    $var5 = $var5.$elementData.data[0];
                    while ($var5 !== null && $var5.$key !== null) {
                        $var5 = $var5.$next3;
                    }
                } else {
                    d: {
                        if (!$rt_s(2022).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(2022).$nativeString.length)
                                    break d;
                                $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$6 = $rt_s(2022).$hashCode1;
                    var$7 = $var5.$elementData.data;
                    $var5 = var$7[var$6 & (var$7.length - 1 | 0)];
                    while ($var5 !== null) {
                        if ($var5.$origKeyHash == var$6) {
                            e: {
                                var$8 = $var5.$key;
                                if ($rt_s(2022) !== var$8) {
                                    if ($rt_s(2022) === var$8)
                                        var$4 = 1;
                                    else if (!(var$8 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$8 = var$8;
                                        var$4 = $rt_s(2022).$nativeString !== var$8.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break e;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var5 = $var5.$next3;
                    }
                }
                var$4 = ($var5 === null ? null : $var5.$value0).$data0;
            }
            $var4 = var$4 & 255;
            nms_ItemStack_$callClinit();
            $var5 = new nms_ItemStack;
            nms_ItemStack_readFromNBT($var5, $var3);
            nms_Item_$callClinit();
            if (nms_Item_itemsList.data[$var5.$itemID] === null)
                $var5 = null;
            if ($var5 !== null) {
                if ($var4 >= 0) {
                    var$7 = $this.$mainInventory.data;
                    if ($var4 < var$7.length)
                        var$7[$var4] = $var5;
                }
                if ($var4 >= 100) {
                    var$7 = $this.$armorInventory.data;
                    if ($var4 < (var$7.length + 100 | 0))
                        var$7[$var4 - 100 | 0] = $var5;
                }
            }
            $var2 = $var2 + 1 | 0;
        }
        return;
    }
    $par1NBTTagList = new jl_IndexOutOfBoundsException;
    $par1NBTTagList.$suppressionEnabled = 1;
    $par1NBTTagList.$writableStackTrace = 1;
    $rt_throw($par1NBTTagList);
},
nms_InventoryPlayer_getStackInSlot = ($this, $par1) => {
    let $var2, var$3;
    $var2 = $this.$mainInventory;
    var$3 = $var2.data.length;
    if ($par1 >= var$3) {
        $par1 = $par1 - var$3 | 0;
        $var2 = $this.$armorInventory;
    }
    return $var2.data[$par1];
},
nms_InventoryPlayer_getInventoryStackLimit = $this => {
    return 64;
},
nms_InventoryPlayer_getTotalArmorValue = $this => {
    let $var1, $var2, var$3, var$4, var$5;
    $var1 = 0;
    $var2 = 0;
    while (true) {
        var$3 = $this.$armorInventory.data;
        if ($var2 >= var$3.length)
            break;
        if (var$3[$var2] !== null) {
            var$4 = var$3[$var2];
            nms_Item_$callClinit();
            var$5 = nms_Item_itemsList.data;
            if (var$5[var$4.$itemID] instanceof nms_ItemArmor)
                $var1 = $var1 + var$5[var$3[$var2].$itemID].$damageReduceAmount | 0;
        }
        $var2 = $var2 + 1 | 0;
    }
    return $var1;
},
nms_InventoryPlayer_damageArmor = ($this, $par1) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1 = $par1 / 4.0;
        if ($par1 < 1.0)
            $par1 = 1.0;
        $var2 = 0;
        while (true) {
            var$3 = $this.$armorInventory.data;
            if ($var2 >= var$3.length)
                break;
            if (var$3[$var2] !== null) {
                var$4 = var$3[$var2];
                nms_Item_$callClinit();
                if (nms_Item_itemsList.data[var$4.$itemID] instanceof nms_ItemArmor) {
                    var$5 = var$3[$var2];
                    var$6 = $par1 | 0;
                    var$4 = $this.$player;
                    $ptr = 1;
                    continue main;
                }
            }
            $var2 = $var2 + 1 | 0;
        }
        return;
    case 1:
        nms_ItemStack_damageItem(var$5, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $this.$armorInventory.data;
        if (!var$7[$var2].$stackSize)
            var$7[$var2] = null;
        while (true) {
            $var2 = $var2 + 1 | 0;
            var$3 = $this.$armorInventory.data;
            if ($var2 >= var$3.length)
                break;
            if (var$3[$var2] === null)
                continue;
            var$4 = var$3[$var2];
            nms_Item_$callClinit();
            if (!(nms_Item_itemsList.data[var$4.$itemID] instanceof nms_ItemArmor))
                continue;
            else {
                var$5 = var$3[$var2];
                var$6 = $par1 | 0;
                var$4 = $this.$player;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_InventoryPlayer_dropAllItems = $this => {
    let $var1, var$2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        while (true) {
            var$2 = $this.$mainInventory.data;
            if ($var1 >= var$2.length) {
                $var1 = 0;
                while (true) {
                    var$2 = $this.$armorInventory.data;
                    if ($var1 >= var$2.length)
                        break;
                    if (var$2[$var1] !== null) {
                        var$3 = $this.$player;
                        var$4 = var$2[$var1];
                        var$5 = 1;
                        $ptr = 2;
                        continue main;
                    }
                    $var1 = $var1 + 1 | 0;
                }
                return;
            }
            if (var$2[$var1] !== null)
                break;
            $var1 = $var1 + 1 | 0;
        }
        var$3 = $this.$player;
        var$4 = var$2[$var1];
        var$5 = 1;
        $ptr = 1;
    case 1:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice(var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$mainInventory.data[$var1] = null;
        while (true) {
            $var1 = $var1 + 1 | 0;
            var$2 = $this.$mainInventory.data;
            if ($var1 >= var$2.length) {
                $var1 = 0;
                while (true) {
                    var$2 = $this.$armorInventory.data;
                    if ($var1 >= var$2.length)
                        break;
                    if (var$2[$var1] !== null) {
                        var$3 = $this.$player;
                        var$4 = var$2[$var1];
                        var$5 = 1;
                        $ptr = 2;
                        continue main;
                    }
                    $var1 = $var1 + 1 | 0;
                }
                return;
            }
            if (var$2[$var1] === null)
                continue;
            else
                break;
        }
        var$3 = $this.$player;
        var$4 = var$2[$var1];
        var$5 = 1;
        continue main;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice(var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$armorInventory.data[$var1] = null;
        while (true) {
            $var1 = $var1 + 1 | 0;
            var$2 = $this.$armorInventory.data;
            if ($var1 >= var$2.length)
                break;
            if (var$2[$var1] === null)
                continue;
            else {
                var$3 = $this.$player;
                var$4 = var$2[$var1];
                var$5 = 1;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, $ptr);
},
nms_InventoryPlayer_onInventoryChanged = $this => {
    $this.$inventoryChanged = 1;
},
nms_InventoryPlayer_hasItemStack = ($this, $par1ItemStack) => {
    let $var2, var$3, var$4;
    $var2 = 0;
    while (true) {
        var$3 = $this.$armorInventory.data;
        if ($var2 >= var$3.length) {
            $var2 = 0;
            while (true) {
                var$3 = $this.$mainInventory.data;
                if ($var2 >= var$3.length)
                    break;
                if (var$3[$var2] !== null) {
                    var$4 = var$3[$var2];
                    if (var$4.$itemID == $par1ItemStack.$itemID && var$4.$itemDamage == $par1ItemStack.$itemDamage ? 1 : 0)
                        return 1;
                }
                $var2 = $var2 + 1 | 0;
            }
            return 0;
        }
        if (var$3[$var2] !== null) {
            var$4 = var$3[$var2];
            if (var$4.$itemID == $par1ItemStack.$itemID && var$4.$itemDamage == $par1ItemStack.$itemDamage ? 1 : 0)
                break;
        }
        $var2 = $var2 + 1 | 0;
    }
    return 1;
},
nms_InventoryPlayer_copyInventory = ($this, $par1InventoryPlayer) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16;
    $var2 = 0;
    while (true) {
        var$3 = $this.$mainInventory.data;
        if ($var2 >= var$3.length)
            break;
        var$4 = $par1InventoryPlayer.$mainInventory.data[$var2];
        nms_ItemStack_$callClinit();
        if (var$4 === null)
            var$5 = null;
        else {
            var$5 = new nms_ItemStack;
            var$6 = var$4.$itemID;
            var$7 = var$4.$stackSize;
            var$8 = var$4.$itemDamage;
            var$5.$itemID = var$6;
            var$5.$stackSize = var$7;
            var$5.$itemDamage = var$8;
            if (var$8 < 0)
                var$5.$itemDamage = 0;
            var$4 = var$4.$stackTagCompound;
            if (var$4 !== null) {
                var$9 = new nms_NBTTagCompound;
                var$10 = var$4.$name;
                if (var$10 === null)
                    var$10 = $rt_s(3);
                var$9.$name = var$10;
                var$10 = new ju_HashMap;
                jl_Object__init_(var$10);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$10.$elementCount = 0;
                var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$12 = var$11.data;
                var$10.$elementData = var$11;
                var$10.$loadFactor = 0.75;
                var$10.$threshold = var$12.length * 0.75 | 0;
                var$9.$tagMap = var$10;
                var$10 = var$4.$tagMap;
                if (var$10.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$10;
                    var$10.$cachedKeySet = var$13;
                }
                var$10 = var$10.$cachedKeySet.$iterator();
                while (var$10.$hasNext()) {
                    var$13 = var$10.$next();
                    var$14 = var$4.$tagMap;
                    if (var$13 === null) {
                        var$14 = var$14.$elementData.data[0];
                        while (var$14 !== null && var$14.$key !== null) {
                            var$14 = var$14.$next3;
                        }
                    } else {
                        a: {
                            if (!var$13.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$13.$nativeString.length)
                                        break a;
                                    var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        var$8 = var$13.$hashCode1;
                        var$12 = var$14.$elementData.data;
                        var$14 = var$12[var$8 & (var$12.length - 1 | 0)];
                        while (var$14 !== null) {
                            if (var$14.$origKeyHash == var$8) {
                                b: {
                                    var$15 = var$14.$key;
                                    if (var$13 !== var$15) {
                                        if (var$13 === var$15)
                                            var$6 = 1;
                                        else if (!(var$15 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$15 = var$15;
                                            var$6 = var$13.$nativeString !== var$15.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break b;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$14 = var$14.$next3;
                        }
                    }
                    var$14 = var$14 === null ? null : var$14.$value0;
                    var$15 = var$14.$copy();
                    var$16 = var$9.$tagMap;
                    if (var$13 !== null)
                        var$15.$name = var$13;
                    else
                        var$15.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$16, var$13, var$15);
                }
                var$5.$stackTagCompound = var$9;
            }
        }
        var$3[$var2] = var$5;
        $var2 = $var2 + 1 | 0;
    }
    $var2 = 0;
    while (true) {
        var$12 = $this.$armorInventory.data;
        if ($var2 >= var$12.length)
            break;
        var$4 = $par1InventoryPlayer.$armorInventory.data[$var2];
        nms_ItemStack_$callClinit();
        if (var$4 === null)
            var$5 = null;
        else {
            var$5 = new nms_ItemStack;
            var$6 = var$4.$itemID;
            var$7 = var$4.$stackSize;
            var$8 = var$4.$itemDamage;
            var$5.$itemID = var$6;
            var$5.$stackSize = var$7;
            var$5.$itemDamage = var$8;
            if (var$8 < 0)
                var$5.$itemDamage = 0;
            var$4 = var$4.$stackTagCompound;
            if (var$4 !== null) {
                var$9 = new nms_NBTTagCompound;
                var$10 = var$4.$name;
                if (var$10 === null)
                    var$10 = $rt_s(3);
                var$9.$name = var$10;
                var$10 = new ju_HashMap;
                jl_Object__init_(var$10);
                var$6 = ju_HashMap_calculateCapacity(16);
                var$10.$elementCount = 0;
                var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$3 = var$11.data;
                var$10.$elementData = var$11;
                var$10.$loadFactor = 0.75;
                var$10.$threshold = var$3.length * 0.75 | 0;
                var$9.$tagMap = var$10;
                var$10 = var$4.$tagMap;
                if (var$10.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$10;
                    var$10.$cachedKeySet = var$13;
                }
                var$14 = var$10.$cachedKeySet.$iterator();
                while (var$14.$hasNext()) {
                    var$15 = var$14.$next();
                    var$10 = var$4.$tagMap;
                    if (var$15 === null) {
                        var$16 = var$10.$elementData.data[0];
                        while (var$16 !== null && var$16.$key !== null) {
                            var$16 = var$16.$next3;
                        }
                    } else {
                        c: {
                            if (!var$15.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$15.$nativeString.length)
                                        break c;
                                    var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        var$7 = var$15.$hashCode1;
                        var$3 = var$10.$elementData.data;
                        var$16 = var$3[var$7 & (var$3.length - 1 | 0)];
                        while (var$16 !== null) {
                            if (var$16.$origKeyHash == var$7) {
                                d: {
                                    var$10 = var$16.$key;
                                    if (var$15 !== var$10) {
                                        if (var$15 === var$10)
                                            var$6 = 1;
                                        else if (!(var$10 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$10 = var$10;
                                            var$6 = var$15.$nativeString !== var$10.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break d;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$16 = var$16.$next3;
                        }
                    }
                    var$10 = var$16 === null ? null : var$16.$value0;
                    var$10 = var$10.$copy();
                    var$13 = var$9.$tagMap;
                    if (var$15 !== null)
                        var$10.$name = var$15;
                    else
                        var$10.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$13, var$15, var$10);
                }
                var$5.$stackTagCompound = var$9;
            }
        }
        var$12[$var2] = var$5;
        $var2 = $var2 + 1 | 0;
    }
    $this.$currentItem = $par1InventoryPlayer.$currentItem;
};
function nms_EnumChatFormatting() {
    let a = this; jl_Enum.call(a);
    a.$field_96329_z = 0;
    a.$field_96303_A = 0;
    a.$field_96304_B = null;
}
let nms_EnumChatFormatting_BLACK = null,
nms_EnumChatFormatting_DARK_BLUE = null,
nms_EnumChatFormatting_DARK_GREEN = null,
nms_EnumChatFormatting_DARK_AQUA = null,
nms_EnumChatFormatting_DARK_RED = null,
nms_EnumChatFormatting_DARK_PURPLE = null,
nms_EnumChatFormatting_GOLD = null,
nms_EnumChatFormatting_GRAY = null,
nms_EnumChatFormatting_DARK_GRAY = null,
nms_EnumChatFormatting_BLUE = null,
nms_EnumChatFormatting_GREEN = null,
nms_EnumChatFormatting_AQUA = null,
nms_EnumChatFormatting_RED = null,
nms_EnumChatFormatting_LIGHT_PURPLE = null,
nms_EnumChatFormatting_YELLOW = null,
nms_EnumChatFormatting_WHITE = null,
nms_EnumChatFormatting_OBFUSCATED = null,
nms_EnumChatFormatting_BOLD = null,
nms_EnumChatFormatting_STRIKETHROUGH = null,
nms_EnumChatFormatting_UNDERLINE = null,
nms_EnumChatFormatting_ITALIC = null,
nms_EnumChatFormatting_RESET = null,
nms_EnumChatFormatting_field_96321_w = null,
nms_EnumChatFormatting_field_96331_x = null,
nms_EnumChatFormatting_field_96330_y = null,
nms_EnumChatFormatting_$VALUES = null,
nms_EnumChatFormatting_$callClinit = () => {
    nms_EnumChatFormatting_$callClinit = $rt_eraseClinit(nms_EnumChatFormatting);
    nms_EnumChatFormatting__clinit_();
},
nms_EnumChatFormatting_values = () => {
    nms_EnumChatFormatting_$callClinit();
    return nms_EnumChatFormatting_$VALUES.$clone0();
},
nms_EnumChatFormatting_toString = $this => {
    return $this.$field_96304_B;
},
nms_EnumChatFormatting_func_96296_a = ($par0, $par1) => {
    let $var2, var$4, $var4, $var5, $var6, var$8, var$9, var$10, var$11;
    nms_EnumChatFormatting_$callClinit();
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    var$4 = (nms_EnumChatFormatting_$VALUES.$clone0()).data;
    $var4 = var$4.length;
    $var5 = 0;
    while ($var5 < $var4) {
        $var6 = var$4[$var5];
        var$8 = $var6.$field_96303_A;
        var$9 = !var$8 && $var6 !== nms_EnumChatFormatting_RESET ? 1 : 0;
        if (!(var$9 && !$par0) && !(var$8 && !$par1)) {
            var$10 = $var6.$name0;
            $var6 = var$10.$nativeString.toLowerCase();
            if ($var6 !== var$10.$nativeString)
                var$10 = jl_String__init_0($var6);
            ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
            var$11 = $var2.$array.data;
            var$9 = $var2.$size0;
            $var2.$size0 = var$9 + 1 | 0;
            var$11[var$9] = var$10;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        }
        $var5 = $var5 + 1 | 0;
    }
    return $var2;
},
nms_EnumChatFormatting_$values = () => {
    let var$1, var$2;
    nms_EnumChatFormatting_$callClinit();
    var$1 = $rt_createArray(nms_EnumChatFormatting, 22);
    var$2 = var$1.data;
    var$2[0] = nms_EnumChatFormatting_BLACK;
    var$2[1] = nms_EnumChatFormatting_DARK_BLUE;
    var$2[2] = nms_EnumChatFormatting_DARK_GREEN;
    var$2[3] = nms_EnumChatFormatting_DARK_AQUA;
    var$2[4] = nms_EnumChatFormatting_DARK_RED;
    var$2[5] = nms_EnumChatFormatting_DARK_PURPLE;
    var$2[6] = nms_EnumChatFormatting_GOLD;
    var$2[7] = nms_EnumChatFormatting_GRAY;
    var$2[8] = nms_EnumChatFormatting_DARK_GRAY;
    var$2[9] = nms_EnumChatFormatting_BLUE;
    var$2[10] = nms_EnumChatFormatting_GREEN;
    var$2[11] = nms_EnumChatFormatting_AQUA;
    var$2[12] = nms_EnumChatFormatting_RED;
    var$2[13] = nms_EnumChatFormatting_LIGHT_PURPLE;
    var$2[14] = nms_EnumChatFormatting_YELLOW;
    var$2[15] = nms_EnumChatFormatting_WHITE;
    var$2[16] = nms_EnumChatFormatting_OBFUSCATED;
    var$2[17] = nms_EnumChatFormatting_BOLD;
    var$2[18] = nms_EnumChatFormatting_STRIKETHROUGH;
    var$2[19] = nms_EnumChatFormatting_UNDERLINE;
    var$2[20] = nms_EnumChatFormatting_ITALIC;
    var$2[21] = nms_EnumChatFormatting_RESET;
    return var$1;
},
nms_EnumChatFormatting__clinit_ = () => {
    let $var3, var$2, var$3, var$4, var$5, var$6, var$7, $var2, $var1, var$10;
    $var3 = new nms_EnumChatFormatting;
    nms_EnumChatFormatting_$callClinit();
    $var3.$name0 = $rt_s(2591);
    $var3.$ordinal = 0;
    $var3.$field_96329_z = 48;
    $var3.$field_96303_A = 0;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$2.$buffer.data[var$3] = 167;
    var$3 = var$2.$length0;
    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$5[var$3] = 48;
    var$6 = new jl_String;
    var$3 = var$2.$length0;
    var$7 = var$5.length;
    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
        $var3.$field_96304_B = var$6;
        nms_EnumChatFormatting_BLACK = $var3;
        $var3 = new nms_EnumChatFormatting;
        $var3.$name0 = $rt_s(2592);
        $var3.$ordinal = 1;
        $var3.$field_96329_z = 49;
        $var3.$field_96303_A = 0;
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        $var2 = var$2.$length0;
        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
        var$2.$buffer.data[$var2] = 167;
        $var2 = var$2.$length0;
        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
        var$4 = var$2.$buffer;
        var$5 = var$4.data;
        var$5[$var2] = 49;
        var$6 = new jl_String;
        var$3 = var$2.$length0;
        var$7 = var$5.length;
        if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
            var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
            $var3.$field_96304_B = var$6;
            nms_EnumChatFormatting_DARK_BLUE = $var3;
            $var3 = new nms_EnumChatFormatting;
            $var3.$name0 = $rt_s(2593);
            $var3.$ordinal = 2;
            $var3.$field_96329_z = 50;
            $var3.$field_96303_A = 0;
            var$2 = new jl_StringBuilder;
            var$2.$buffer = $rt_createCharArray(16);
            $var2 = var$2.$length0;
            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
            var$2.$buffer.data[$var2] = 167;
            $var2 = var$2.$length0;
            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
            var$4 = var$2.$buffer;
            var$5 = var$4.data;
            var$5[$var2] = 50;
            var$6 = new jl_String;
            var$3 = var$2.$length0;
            var$7 = var$5.length;
            if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                $var3.$field_96304_B = var$6;
                nms_EnumChatFormatting_DARK_GREEN = $var3;
                $var3 = new nms_EnumChatFormatting;
                $var3.$name0 = $rt_s(2594);
                $var3.$ordinal = 3;
                $var3.$field_96329_z = 51;
                $var3.$field_96303_A = 0;
                var$2 = new jl_StringBuilder;
                var$2.$buffer = $rt_createCharArray(16);
                $var2 = var$2.$length0;
                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                var$2.$buffer.data[$var2] = 167;
                $var2 = var$2.$length0;
                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                var$4 = var$2.$buffer;
                var$5 = var$4.data;
                var$5[$var2] = 51;
                var$6 = new jl_String;
                var$3 = var$2.$length0;
                var$7 = var$5.length;
                if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                    var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                    $var3.$field_96304_B = var$6;
                    nms_EnumChatFormatting_DARK_AQUA = $var3;
                    $var3 = new nms_EnumChatFormatting;
                    $var3.$name0 = $rt_s(2595);
                    $var3.$ordinal = 4;
                    $var3.$field_96329_z = 52;
                    $var3.$field_96303_A = 0;
                    var$2 = new jl_StringBuilder;
                    var$2.$buffer = $rt_createCharArray(16);
                    $var2 = var$2.$length0;
                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                    var$2.$buffer.data[$var2] = 167;
                    $var2 = var$2.$length0;
                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                    var$4 = var$2.$buffer;
                    var$5 = var$4.data;
                    var$5[$var2] = 52;
                    var$6 = new jl_String;
                    var$3 = var$2.$length0;
                    var$7 = var$5.length;
                    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                        $var3.$field_96304_B = var$6;
                        nms_EnumChatFormatting_DARK_RED = $var3;
                        $var3 = new nms_EnumChatFormatting;
                        $var3.$name0 = $rt_s(2596);
                        $var3.$ordinal = 5;
                        $var3.$field_96329_z = 53;
                        $var3.$field_96303_A = 0;
                        var$2 = new jl_StringBuilder;
                        var$2.$buffer = $rt_createCharArray(16);
                        $var2 = var$2.$length0;
                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                        var$2.$buffer.data[$var2] = 167;
                        $var2 = var$2.$length0;
                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                        var$4 = var$2.$buffer;
                        var$5 = var$4.data;
                        var$5[$var2] = 53;
                        var$6 = new jl_String;
                        var$3 = var$2.$length0;
                        var$7 = var$5.length;
                        if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                            var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                            $var3.$field_96304_B = var$6;
                            nms_EnumChatFormatting_DARK_PURPLE = $var3;
                            $var3 = new nms_EnumChatFormatting;
                            $var3.$name0 = $rt_s(1164);
                            $var3.$ordinal = 6;
                            $var3.$field_96329_z = 54;
                            $var3.$field_96303_A = 0;
                            var$2 = new jl_StringBuilder;
                            var$2.$buffer = $rt_createCharArray(16);
                            $var2 = var$2.$length0;
                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                            var$2.$buffer.data[$var2] = 167;
                            $var2 = var$2.$length0;
                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                            var$4 = var$2.$buffer;
                            var$5 = var$4.data;
                            var$5[$var2] = 54;
                            var$6 = new jl_String;
                            var$3 = var$2.$length0;
                            var$7 = var$5.length;
                            if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                $var3.$field_96304_B = var$6;
                                nms_EnumChatFormatting_GOLD = $var3;
                                $var3 = new nms_EnumChatFormatting;
                                $var3.$name0 = $rt_s(2597);
                                $var3.$ordinal = 7;
                                $var3.$field_96329_z = 55;
                                $var3.$field_96303_A = 0;
                                var$2 = new jl_StringBuilder;
                                var$2.$buffer = $rt_createCharArray(16);
                                $var2 = var$2.$length0;
                                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                var$2.$buffer.data[$var2] = 167;
                                $var2 = var$2.$length0;
                                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                var$4 = var$2.$buffer;
                                var$5 = var$4.data;
                                var$5[$var2] = 55;
                                var$6 = new jl_String;
                                var$3 = var$2.$length0;
                                var$7 = var$5.length;
                                if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                    var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                    $var3.$field_96304_B = var$6;
                                    nms_EnumChatFormatting_GRAY = $var3;
                                    $var3 = new nms_EnumChatFormatting;
                                    $var3.$name0 = $rt_s(2598);
                                    $var3.$ordinal = 8;
                                    $var3.$field_96329_z = 56;
                                    $var3.$field_96303_A = 0;
                                    var$2 = new jl_StringBuilder;
                                    var$2.$buffer = $rt_createCharArray(16);
                                    $var2 = var$2.$length0;
                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                    var$2.$buffer.data[$var2] = 167;
                                    $var2 = var$2.$length0;
                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                    var$4 = var$2.$buffer;
                                    var$5 = var$4.data;
                                    var$5[$var2] = 56;
                                    var$6 = new jl_String;
                                    var$3 = var$2.$length0;
                                    var$7 = var$5.length;
                                    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                        $var3.$field_96304_B = var$6;
                                        nms_EnumChatFormatting_DARK_GRAY = $var3;
                                        $var3 = new nms_EnumChatFormatting;
                                        $var3.$name0 = $rt_s(2599);
                                        $var3.$ordinal = 9;
                                        $var3.$field_96329_z = 57;
                                        $var3.$field_96303_A = 0;
                                        var$2 = new jl_StringBuilder;
                                        var$2.$buffer = $rt_createCharArray(16);
                                        $var2 = var$2.$length0;
                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                        var$2.$buffer.data[$var2] = 167;
                                        $var2 = var$2.$length0;
                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                        var$4 = var$2.$buffer;
                                        var$5 = var$4.data;
                                        var$5[$var2] = 57;
                                        var$6 = new jl_String;
                                        var$3 = var$2.$length0;
                                        var$7 = var$5.length;
                                        if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                            var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                            $var3.$field_96304_B = var$6;
                                            nms_EnumChatFormatting_BLUE = $var3;
                                            $var3 = new nms_EnumChatFormatting;
                                            $var3.$name0 = $rt_s(2600);
                                            $var3.$ordinal = 10;
                                            $var3.$field_96329_z = 97;
                                            $var3.$field_96303_A = 0;
                                            var$2 = new jl_StringBuilder;
                                            var$2.$buffer = $rt_createCharArray(16);
                                            $var2 = var$2.$length0;
                                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                            var$2.$buffer.data[$var2] = 167;
                                            $var2 = var$2.$length0;
                                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                            var$4 = var$2.$buffer;
                                            var$5 = var$4.data;
                                            var$5[$var2] = 97;
                                            var$6 = new jl_String;
                                            var$3 = var$2.$length0;
                                            var$7 = var$5.length;
                                            if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                $var3.$field_96304_B = var$6;
                                                nms_EnumChatFormatting_GREEN = $var3;
                                                $var3 = new nms_EnumChatFormatting;
                                                $var3.$name0 = $rt_s(2601);
                                                $var3.$ordinal = 11;
                                                $var3.$field_96329_z = 98;
                                                $var3.$field_96303_A = 0;
                                                var$2 = new jl_StringBuilder;
                                                var$2.$buffer = $rt_createCharArray(16);
                                                $var2 = var$2.$length0;
                                                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                var$2.$buffer.data[$var2] = 167;
                                                $var2 = var$2.$length0;
                                                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                var$4 = var$2.$buffer;
                                                var$5 = var$4.data;
                                                var$5[$var2] = 98;
                                                var$6 = new jl_String;
                                                var$3 = var$2.$length0;
                                                var$7 = var$5.length;
                                                if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                    var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                    $var3.$field_96304_B = var$6;
                                                    nms_EnumChatFormatting_AQUA = $var3;
                                                    $var3 = new nms_EnumChatFormatting;
                                                    $var3.$name0 = $rt_s(2602);
                                                    $var3.$ordinal = 12;
                                                    $var3.$field_96329_z = 99;
                                                    $var3.$field_96303_A = 0;
                                                    var$2 = new jl_StringBuilder;
                                                    var$2.$buffer = $rt_createCharArray(16);
                                                    $var2 = var$2.$length0;
                                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                    var$2.$buffer.data[$var2] = 167;
                                                    $var2 = var$2.$length0;
                                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                    var$4 = var$2.$buffer;
                                                    var$5 = var$4.data;
                                                    var$5[$var2] = 99;
                                                    var$6 = new jl_String;
                                                    var$3 = var$2.$length0;
                                                    var$7 = var$5.length;
                                                    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                        $var3.$field_96304_B = var$6;
                                                        nms_EnumChatFormatting_RED = $var3;
                                                        $var3 = new nms_EnumChatFormatting;
                                                        $var3.$name0 = $rt_s(2603);
                                                        $var3.$ordinal = 13;
                                                        $var3.$field_96329_z = 100;
                                                        $var3.$field_96303_A = 0;
                                                        var$2 = new jl_StringBuilder;
                                                        var$2.$buffer = $rt_createCharArray(16);
                                                        $var2 = var$2.$length0;
                                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                        var$2.$buffer.data[$var2] = 167;
                                                        $var2 = var$2.$length0;
                                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                        var$4 = var$2.$buffer;
                                                        var$5 = var$4.data;
                                                        var$5[$var2] = 100;
                                                        var$6 = new jl_String;
                                                        var$3 = var$2.$length0;
                                                        var$7 = var$5.length;
                                                        if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                            var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                            $var3.$field_96304_B = var$6;
                                                            nms_EnumChatFormatting_LIGHT_PURPLE = $var3;
                                                            $var3 = new nms_EnumChatFormatting;
                                                            $var3.$name0 = $rt_s(2604);
                                                            $var3.$ordinal = 14;
                                                            $var3.$field_96329_z = 101;
                                                            $var3.$field_96303_A = 0;
                                                            var$2 = new jl_StringBuilder;
                                                            var$2.$buffer = $rt_createCharArray(16);
                                                            $var2 = var$2.$length0;
                                                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                            var$2.$buffer.data[$var2] = 167;
                                                            $var2 = var$2.$length0;
                                                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                            var$4 = var$2.$buffer;
                                                            var$5 = var$4.data;
                                                            var$5[$var2] = 101;
                                                            var$6 = new jl_String;
                                                            var$3 = var$2.$length0;
                                                            var$7 = var$5.length;
                                                            if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                $var3.$field_96304_B = var$6;
                                                                nms_EnumChatFormatting_YELLOW = $var3;
                                                                $var3 = new nms_EnumChatFormatting;
                                                                $var3.$name0 = $rt_s(2605);
                                                                $var3.$ordinal = 15;
                                                                $var3.$field_96329_z = 102;
                                                                $var3.$field_96303_A = 0;
                                                                var$2 = new jl_StringBuilder;
                                                                var$2.$buffer = $rt_createCharArray(16);
                                                                $var2 = var$2.$length0;
                                                                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                var$2.$buffer.data[$var2] = 167;
                                                                $var2 = var$2.$length0;
                                                                jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                var$4 = var$2.$buffer;
                                                                var$5 = var$4.data;
                                                                var$5[$var2] = 102;
                                                                var$6 = new jl_String;
                                                                var$3 = var$2.$length0;
                                                                var$7 = var$5.length;
                                                                if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                    var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                    $var3.$field_96304_B = var$6;
                                                                    nms_EnumChatFormatting_WHITE = $var3;
                                                                    $var3 = new nms_EnumChatFormatting;
                                                                    $var3.$name0 = $rt_s(2606);
                                                                    $var3.$ordinal = 16;
                                                                    $var3.$field_96329_z = 107;
                                                                    $var3.$field_96303_A = 1;
                                                                    var$2 = new jl_StringBuilder;
                                                                    var$2.$buffer = $rt_createCharArray(16);
                                                                    var$3 = var$2.$length0;
                                                                    jl_AbstractStringBuilder_insertSpace(var$2, var$3, var$3 + 1 | 0);
                                                                    var$2.$buffer.data[var$3] = 167;
                                                                    $var2 = var$2.$length0;
                                                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                    var$4 = var$2.$buffer;
                                                                    var$5 = var$4.data;
                                                                    var$5[$var2] = 107;
                                                                    var$6 = new jl_String;
                                                                    var$3 = var$2.$length0;
                                                                    var$7 = var$5.length;
                                                                    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                        $var3.$field_96304_B = var$6;
                                                                        nms_EnumChatFormatting_OBFUSCATED = $var3;
                                                                        $var3 = new nms_EnumChatFormatting;
                                                                        $var3.$name0 = $rt_s(2607);
                                                                        $var3.$ordinal = 17;
                                                                        $var3.$field_96329_z = 108;
                                                                        $var3.$field_96303_A = 1;
                                                                        var$2 = new jl_StringBuilder;
                                                                        var$2.$buffer = $rt_createCharArray(16);
                                                                        $var2 = var$2.$length0;
                                                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                        var$2.$buffer.data[$var2] = 167;
                                                                        $var2 = var$2.$length0;
                                                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                        var$4 = var$2.$buffer;
                                                                        var$5 = var$4.data;
                                                                        var$5[$var2] = 108;
                                                                        var$6 = new jl_String;
                                                                        var$3 = var$2.$length0;
                                                                        var$7 = var$5.length;
                                                                        if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                            var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                            $var3.$field_96304_B = var$6;
                                                                            nms_EnumChatFormatting_BOLD = $var3;
                                                                            $var3 = new nms_EnumChatFormatting;
                                                                            $var3.$name0 = $rt_s(2608);
                                                                            $var3.$ordinal = 18;
                                                                            $var3.$field_96329_z = 109;
                                                                            $var3.$field_96303_A = 1;
                                                                            var$2 = new jl_StringBuilder;
                                                                            var$2.$buffer = $rt_createCharArray(16);
                                                                            $var2 = var$2.$length0;
                                                                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                            var$2.$buffer.data[$var2] = 167;
                                                                            $var2 = var$2.$length0;
                                                                            jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                            var$4 = var$2.$buffer;
                                                                            var$5 = var$4.data;
                                                                            var$5[$var2] = 109;
                                                                            var$6 = new jl_String;
                                                                            var$3 = var$2.$length0;
                                                                            var$7 = var$5.length;
                                                                            if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                                var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                                $var3.$field_96304_B = var$6;
                                                                                nms_EnumChatFormatting_STRIKETHROUGH = $var3;
                                                                                $var3 = new nms_EnumChatFormatting;
                                                                                $var3.$name0 = $rt_s(2609);
                                                                                $var3.$ordinal = 19;
                                                                                $var3.$field_96329_z = 110;
                                                                                $var3.$field_96303_A = 1;
                                                                                var$2 = new jl_StringBuilder;
                                                                                var$2.$buffer = $rt_createCharArray(16);
                                                                                var$7 = var$2.$length0;
                                                                                jl_AbstractStringBuilder_insertSpace(var$2, var$7, var$7 + 1 | 0);
                                                                                var$2.$buffer.data[var$7] = 167;
                                                                                var$7 = var$2.$length0;
                                                                                jl_AbstractStringBuilder_insertSpace(var$2, var$7, var$7 + 1 | 0);
                                                                                var$4 = var$2.$buffer;
                                                                                var$5 = var$4.data;
                                                                                var$5[var$7] = 110;
                                                                                var$6 = new jl_String;
                                                                                var$3 = var$2.$length0;
                                                                                var$7 = var$5.length;
                                                                                if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                                    var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                                    $var3.$field_96304_B = var$6;
                                                                                    nms_EnumChatFormatting_UNDERLINE = $var3;
                                                                                    $var3 = new nms_EnumChatFormatting;
                                                                                    $var3.$name0 = $rt_s(2610);
                                                                                    $var3.$ordinal = 20;
                                                                                    $var3.$field_96329_z = 111;
                                                                                    $var3.$field_96303_A = 1;
                                                                                    var$2 = new jl_StringBuilder;
                                                                                    var$2.$buffer = $rt_createCharArray(16);
                                                                                    $var2 = var$2.$length0;
                                                                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                                    var$2.$buffer.data[$var2] = 167;
                                                                                    $var2 = var$2.$length0;
                                                                                    jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                                    var$4 = var$2.$buffer;
                                                                                    var$5 = var$4.data;
                                                                                    var$5[$var2] = 111;
                                                                                    var$6 = new jl_String;
                                                                                    var$3 = var$2.$length0;
                                                                                    var$7 = var$5.length;
                                                                                    if (var$3 >= 0 && var$3 <= (var$7 - 0 | 0)) {
                                                                                        var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, var$3);
                                                                                        $var3.$field_96304_B = var$6;
                                                                                        nms_EnumChatFormatting_ITALIC = $var3;
                                                                                        $var3 = new nms_EnumChatFormatting;
                                                                                        $var3.$name0 = $rt_s(2611);
                                                                                        $var3.$ordinal = 21;
                                                                                        $var3.$field_96329_z = 114;
                                                                                        $var3.$field_96303_A = 0;
                                                                                        var$2 = new jl_StringBuilder;
                                                                                        var$2.$buffer = $rt_createCharArray(16);
                                                                                        $var2 = var$2.$length0;
                                                                                        jl_AbstractStringBuilder_insertSpace(var$2, $var2, $var2 + 1 | 0);
                                                                                        var$2.$buffer.data[$var2] = 167;
                                                                                        $var1 = var$2.$length0;
                                                                                        jl_AbstractStringBuilder_insertSpace(var$2, $var1, $var1 + 1 | 0);
                                                                                        var$4 = var$2.$buffer;
                                                                                        var$5 = var$4.data;
                                                                                        var$5[$var1] = 114;
                                                                                        var$6 = new jl_String;
                                                                                        $var2 = var$2.$length0;
                                                                                        var$3 = var$5.length;
                                                                                        if ($var2 >= 0 && $var2 <= (var$3 - 0 | 0)) {
                                                                                            var$6.$nativeString = $rt_charArrayToString(var$4.data, 0, $var2);
                                                                                            $var3.$field_96304_B = var$6;
                                                                                            nms_EnumChatFormatting_RESET = $var3;
                                                                                            nms_EnumChatFormatting_$VALUES = nms_EnumChatFormatting_$values();
                                                                                            $var3 = new ju_HashMap;
                                                                                            $var1 = ju_HashMap_calculateCapacity(16);
                                                                                            $var3.$elementCount = 0;
                                                                                            var$5 = $rt_createArray(ju_HashMap$HashEntry, $var1);
                                                                                            var$4 = var$5.data;
                                                                                            $var3.$elementData = var$5;
                                                                                            $var3.$loadFactor = 0.75;
                                                                                            $var3.$threshold = var$4.length * 0.75 | 0;
                                                                                            nms_EnumChatFormatting_field_96321_w = $var3;
                                                                                            $var3 = new ju_HashMap;
                                                                                            $var1 = ju_HashMap_calculateCapacity(16);
                                                                                            $var3.$elementCount = 0;
                                                                                            var$5 = $rt_createArray(ju_HashMap$HashEntry, $var1);
                                                                                            var$4 = var$5.data;
                                                                                            $var3.$elementData = var$5;
                                                                                            $var3.$loadFactor = 0.75;
                                                                                            $var3.$threshold = var$4.length * 0.75 | 0;
                                                                                            nms_EnumChatFormatting_field_96331_x = $var3;
                                                                                            $var3 = new jl_String;
                                                                                            var$4 = $rt_createCharArray(1);
                                                                                            var$5 = var$4.data;
                                                                                            var$5[0] = 167;
                                                                                            $var3.$nativeString = $rt_charArrayToString(var$4.data, 0, var$5.length);
                                                                                            var$2 = new jl_StringBuilder;
                                                                                            var$2.$buffer = $rt_createCharArray(16);
                                                                                            jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2612));
                                                                                            jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $var3);
                                                                                            jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2613));
                                                                                            $var3 = new jl_String;
                                                                                            var$4 = var$2.$buffer;
                                                                                            var$5 = var$4.data;
                                                                                            $var2 = var$2.$length0;
                                                                                            var$3 = var$5.length;
                                                                                            if ($var2 >= 0 && $var2 <= (var$3 - 0 | 0)) {
                                                                                                $var3.$nativeString = $rt_charArrayToString(var$4.data, 0, $var2);
                                                                                                nms_EnumChatFormatting_field_96330_y = jur_Pattern_compile($var3, 0);
                                                                                                var$4 = (nms_EnumChatFormatting_$VALUES.$clone0()).data;
                                                                                                $var1 = var$4.length;
                                                                                                $var2 = 0;
                                                                                                while ($var2 < $var1) {
                                                                                                    $var3 = var$4[$var2];
                                                                                                    var$2 = nms_EnumChatFormatting_field_96321_w;
                                                                                                    var$7 = $var3.$field_96329_z;
                                                                                                    var$5 = jl_Character_characterCache.data;
                                                                                                    if (var$7 >= var$5.length) {
                                                                                                        var$6 = new jl_Character;
                                                                                                        var$6.$value5 = var$7;
                                                                                                    } else {
                                                                                                        var$6 = var$5[var$7];
                                                                                                        if (var$6 === null) {
                                                                                                            var$6 = new jl_Character;
                                                                                                            var$6.$value5 = var$7;
                                                                                                            var$5[var$7] = var$6;
                                                                                                        }
                                                                                                    }
                                                                                                    ju_HashMap_putImpl(var$2, var$6, $var3);
                                                                                                    var$2 = nms_EnumChatFormatting_field_96331_x;
                                                                                                    var$10 = $var3.$name0;
                                                                                                    var$6 = var$10.$nativeString.toLowerCase();
                                                                                                    if (var$6 !== var$10.$nativeString)
                                                                                                        var$10 = jl_String__init_0(var$6);
                                                                                                    ju_HashMap_putImpl(var$2, var$10, $var3);
                                                                                                    $var2 = $var2 + 1 | 0;
                                                                                                }
                                                                                                return;
                                                                                            }
                                                                                            $var3 = new jl_IndexOutOfBoundsException;
                                                                                            $var3.$suppressionEnabled = 1;
                                                                                            $var3.$writableStackTrace = 1;
                                                                                            jl_Throwable_fillInStackTrace($var3);
                                                                                            $rt_throw($var3);
                                                                                        }
                                                                                        $var3 = new jl_IndexOutOfBoundsException;
                                                                                        jl_Exception__init_($var3);
                                                                                        $rt_throw($var3);
                                                                                    }
                                                                                    $var3 = new jl_IndexOutOfBoundsException;
                                                                                    jl_Throwable__init_($var3);
                                                                                    $rt_throw($var3);
                                                                                }
                                                                                $var3 = new jl_IndexOutOfBoundsException;
                                                                                jl_Throwable__init_($var3);
                                                                                $rt_throw($var3);
                                                                            }
                                                                            $var3 = new jl_IndexOutOfBoundsException;
                                                                            jl_Throwable__init_($var3);
                                                                            $rt_throw($var3);
                                                                        }
                                                                        $var3 = new jl_IndexOutOfBoundsException;
                                                                        jl_Throwable__init_($var3);
                                                                        $rt_throw($var3);
                                                                    }
                                                                    $var3 = new jl_IndexOutOfBoundsException;
                                                                    jl_Throwable__init_($var3);
                                                                    $rt_throw($var3);
                                                                }
                                                                $var3 = new jl_IndexOutOfBoundsException;
                                                                jl_Exception__init_($var3);
                                                                $rt_throw($var3);
                                                            }
                                                            $var3 = new jl_IndexOutOfBoundsException;
                                                            jl_Exception__init_($var3);
                                                            $rt_throw($var3);
                                                        }
                                                        $var3 = new jl_IndexOutOfBoundsException;
                                                        jl_Exception__init_($var3);
                                                        $rt_throw($var3);
                                                    }
                                                    $var3 = new jl_IndexOutOfBoundsException;
                                                    jl_Exception__init_($var3);
                                                    $rt_throw($var3);
                                                }
                                                $var3 = new jl_IndexOutOfBoundsException;
                                                jl_Exception__init_($var3);
                                                $rt_throw($var3);
                                            }
                                            $var3 = new jl_IndexOutOfBoundsException;
                                            jl_Exception__init_($var3);
                                            $rt_throw($var3);
                                        }
                                        $var3 = new jl_IndexOutOfBoundsException;
                                        jl_Exception__init_($var3);
                                        $rt_throw($var3);
                                    }
                                    $var3 = new jl_IndexOutOfBoundsException;
                                    jl_Exception__init_($var3);
                                    $rt_throw($var3);
                                }
                                $var3 = new jl_IndexOutOfBoundsException;
                                jl_Exception__init_($var3);
                                $rt_throw($var3);
                            }
                            $var3 = new jl_IndexOutOfBoundsException;
                            jl_Exception__init_($var3);
                            $rt_throw($var3);
                        }
                        $var3 = new jl_IndexOutOfBoundsException;
                        jl_Exception__init_($var3);
                        $rt_throw($var3);
                    }
                    $var3 = new jl_IndexOutOfBoundsException;
                    jl_Exception__init_($var3);
                    $rt_throw($var3);
                }
                $var3 = new jl_IndexOutOfBoundsException;
                jl_Exception__init_($var3);
                $rt_throw($var3);
            }
            $var3 = new jl_IndexOutOfBoundsException;
            jl_Exception__init_($var3);
            $rt_throw($var3);
        }
        $var3 = new jl_IndexOutOfBoundsException;
        jl_Exception__init_($var3);
        $rt_throw($var3);
    }
    $var3 = new jl_IndexOutOfBoundsException;
    jl_Exception__init_($var3);
    $rt_throw($var3);
};
function nms_PotionEffect() {
    let a = this; jl_Object.call(a);
    a.$potionID = 0;
    a.$duration = 0;
    a.$amplifier = 0;
    a.$isSplashPotion = 0;
    a.$isAmbient = 0;
}
let nms_PotionEffect_combine = ($this, $par1PotionEffect) => {
    let var$2, var$3, var$4, var$5;
    if ($this.$potionID != $par1PotionEffect.$potionID) {
        if (jl_System_errCache === null) {
            var$2 = new otcic_JSStderrPrintStream;
            var$3 = new ji_ByteArrayOutputStream;
            var$3.$buf = $rt_createByteArray(32);
            var$2.$out0 = var$3;
            var$3 = new jl_StringBuilder;
            jl_Object__init_(var$3);
            var$3.$buffer = $rt_createCharArray(16);
            var$2.$sb = var$3;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$2;
        }
        $rt_putStderr("This method should only be called for matching effects!");
        $rt_putStderr("\n");
    }
    a: {
        var$4 = $par1PotionEffect.$amplifier;
        var$5 = $rt_compare(var$4, $this.$amplifier);
        if (var$5 > 0) {
            $this.$amplifier = var$4;
            $this.$duration = $par1PotionEffect.$duration;
        } else {
            if (!var$5) {
                var$4 = $this.$duration;
                var$5 = $par1PotionEffect.$duration;
                if (var$4 < var$5) {
                    $this.$duration = var$5;
                    break a;
                }
            }
            var$4 = $par1PotionEffect.$isAmbient;
            if (!var$4 && $this.$isAmbient)
                $this.$isAmbient = var$4;
        }
    }
},
nms_PotionEffect_hashCode = $this => {
    return $this.$potionID;
},
nms_PotionEffect_toString = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$1 = $this.$amplifier;
        if (var$1 <= 0) {
            nms_Potion_$callClinit();
            var$2 = nms_Potion_potionTypes.data[$this.$potionID].$name2;
            var$3 = $this.$duration;
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            var$5 = var$4.$length0;
            if (var$2 === null)
                var$2 = $rt_s(1);
            jl_AbstractStringBuilder_insert(var$4, var$5, var$2);
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2614));
            jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$3, 10);
            var$2 = new jl_String;
            var$6 = var$4.$buffer;
            var$7 = var$6.data;
            var$1 = var$4.$length0;
            var$3 = var$7.length;
            if (var$1 >= 0 && var$1 <= (var$3 - 0 | 0)) {
                var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$1);
                break a;
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
        nms_Potion_$callClinit();
        var$2 = nms_Potion_potionTypes.data[$this.$potionID].$name2;
        var$5 = var$1 + 1 | 0;
        var$8 = $this.$duration;
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        var$1 = var$4.$length0;
        if (var$2 === null)
            var$2 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$4, var$1, var$2);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2615));
        jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$5, 10);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2614));
        jl_AbstractStringBuilder_insert0(var$4, var$4.$length0, var$8, 10);
        var$2 = new jl_String;
        var$6 = var$4.$buffer;
        var$7 = var$6.data;
        var$1 = var$4.$length0;
        var$3 = var$7.length;
        if (var$1 >= 0 && var$1 <= (var$3 - 0 | 0))
            var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$1);
        else {
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
    }
    if ($this.$isSplashPotion) {
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$2);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2616));
        var$2 = new jl_String;
        var$6 = var$4.$buffer;
        var$7 = var$6.data;
        var$1 = var$4.$length0;
        var$3 = var$7.length;
        if (var$1 >= 0 && var$1 <= (var$3 - 0 | 0))
            var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$1);
        else {
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
    }
    b: {
        nms_Potion_$callClinit();
        if (nms_Potion_potionTypes.data[$this.$potionID].$usable) {
            var$4 = new jl_StringBuilder;
            var$4.$buffer = $rt_createCharArray(16);
            var$1 = var$4.$length0;
            jl_AbstractStringBuilder_insertSpace(var$4, var$1, var$1 + 1 | 0);
            var$4.$buffer.data[var$1] = 40;
            jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$2);
            var$1 = var$4.$length0;
            jl_AbstractStringBuilder_insertSpace(var$4, var$1, var$1 + 1 | 0);
            var$6 = var$4.$buffer;
            var$7 = var$6.data;
            var$7[var$1] = 41;
            var$2 = new jl_String;
            var$1 = var$4.$length0;
            var$3 = var$7.length;
            if (var$1 < 0)
                break b;
            if (var$1 > (var$3 - 0 | 0))
                break b;
            var$2.$nativeString = $rt_charArrayToString(var$6.data, 0, var$1);
        }
        return var$2;
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_PotionEffect_equals = ($this, $par1Obj) => {
    let $var2;
    if (!($par1Obj instanceof nms_PotionEffect))
        return 0;
    $var2 = $par1Obj;
    return $this.$potionID == $var2.$potionID && $this.$amplifier == $var2.$amplifier && $this.$duration == $var2.$duration && $this.$isSplashPotion == $var2.$isSplashPotion && $this.$isAmbient == $var2.$isAmbient ? 1 : 0;
},
nms_IPosition = $rt_classWithoutFields(0),
nms_ILocation = $rt_classWithoutFields(0),
nms_ILocatableSource = $rt_classWithoutFields(0),
nms_IBlockSource = $rt_classWithoutFields(0);
function nms_BlockSourceImpl() {
    let a = this; jl_Object.call(a);
    a.$worldObj4 = null;
    a.$xPos = 0;
    a.$yPos = 0;
    a.$zPos = 0;
}
function nles_VirtualFilesystem$VirtualOutputStream() {
    ji_ByteArrayOutputStream.call(this);
    this.$file = null;
}
let nles_VirtualFilesystem$VirtualOutputStream_close = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$file;
        var$2 = $this.$buf.data;
        var$3 = $this.$count0;
        var$4 = $rt_createByteArray(var$3);
        var$5 = var$2.length;
        if (var$3 < var$5)
            var$5 = var$3;
        var$6 = var$4.data;
        var$3 = 0;
        while (var$3 < var$5) {
            var$6[var$3] = var$2[var$3];
            var$3 = var$3 + 1 | 0;
        }
        var$3 = 0;
        $ptr = 1;
    case 1:
        $tmp = nles_VirtualFilesystem$VFSFile_setAllBytes(var$1, var$4, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (var$3)
            return;
        var$1 = new ji_IOException;
        var$7 = $this.$file;
        var$8 = var$7.$filePath;
        var$7 = var$7.$virtualFilesystem.$database0;
        var$9 = new jl_StringBuilder;
        var$9.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(2617));
        var$3 = var$9.$length0;
        if (var$8 === null)
            var$8 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, var$3, var$8);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(2618));
        var$3 = var$9.$length0;
        if (var$7 === null)
            var$7 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$9, var$3, var$7);
        jl_AbstractStringBuilder_insert(var$9, var$9.$length0, $rt_s(2619));
        var$7 = new jl_String;
        var$2 = var$9.$buffer;
        var$4 = var$2.data;
        var$3 = var$9.$length0;
        var$5 = var$4.length;
        if (var$3 >= 0 && var$3 <= (var$5 - 0 | 0)) {
            var$7.$nativeString = $rt_charArrayToString(var$2.data, 0, var$3);
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            var$1.$message = var$7;
            $rt_throw(var$1);
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EnchantmentHelper = $rt_classWithoutFields(),
nms_EnchantmentHelper_enchantmentRand = null,
nms_EnchantmentHelper_enchantmentModifierDamage = null,
nms_EnchantmentHelper_enchantmentModifierLiving = null,
nms_EnchantmentHelper_$callClinit = () => {
    nms_EnchantmentHelper_$callClinit = $rt_eraseClinit(nms_EnchantmentHelper);
    nms_EnchantmentHelper__clinit_();
},
nms_EnchantmentHelper__init_ = $this => {
    nms_EnchantmentHelper_$callClinit();
},
nms_EnchantmentHelper__init_0 = () => {
    let var_0 = new nms_EnchantmentHelper();
    nms_EnchantmentHelper__init_(var_0);
    return var_0;
},
nms_EnchantmentHelper_getEnchantmentLevel = ($par0, $par1ItemStack) => {
    let var$3, $var3, $var5, var$6, var$7, $var2, var$9, var$10, $var4, var$12, var$13;
    nms_EnchantmentHelper_$callClinit();
    if ($par1ItemStack !== null) {
        var$3 = $par1ItemStack.$stackTagCompound;
        if (var$3 !== null) {
            a: {
                var$3 = var$3.$tagMap;
                if (!$rt_s(920).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(920).$nativeString.length)
                            break a;
                        $rt_s(920).$hashCode1 = (31 * $rt_s(920).$hashCode1 | 0) + $rt_s(920).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(920).$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[$var5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == $var5) {
                    b: {
                        var$7 = var$3.$key;
                        if ($rt_s(920) !== var$7) {
                            if ($rt_s(920) === var$7)
                                $var3 = 1;
                            else if (!(var$7 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$7 = var$7;
                                $var3 = $rt_s(920).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break b;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                var$3 = var$3.$next3;
            }
            $var2 = var$3 === null ? null : var$3.$value0;
        } else
            $var2 = null;
        if ($var2 === null)
            return 0;
        $var3 = 0;
        c: {
            d: {
                while (true) {
                    $par1ItemStack = $var2.$tagList;
                    var$9 = $rt_compare($var3, $par1ItemStack.$size0);
                    if (var$9 >= 0)
                        return 0;
                    if ($var3 < 0)
                        break c;
                    if (var$9 >= 0)
                        break c;
                    e: {
                        $par1ItemStack = $par1ItemStack.$array.data[$var3];
                        var$7 = $par1ItemStack.$tagMap;
                        if (!$rt_s(914).$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $rt_s(914).$nativeString.length)
                                    break e;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    $var5 = $rt_s(914).$hashCode1;
                    var$6 = var$7.$elementData.data;
                    var$10 = var$6[$var5 & (var$6.length - 1 | 0)];
                    while (var$10 !== null) {
                        if (var$10.$origKeyHash == $var5) {
                            f: {
                                var$7 = var$10.$key;
                                if ($rt_s(914) !== var$7) {
                                    if ($rt_s(914) === var$7)
                                        var$9 = 1;
                                    else if (!(var$7 instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        var$7 = var$7;
                                        var$9 = $rt_s(914).$nativeString !== var$7.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break f;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        var$10 = var$10.$next3;
                    }
                    if (!(var$10 === null ? 0 : 1))
                        $var4 = 0;
                    else {
                        $par1ItemStack = $par1ItemStack.$tagMap;
                        if ($rt_s(914) === null) {
                            var$12 = $par1ItemStack.$elementData.data[0];
                            while (var$12 !== null && var$12.$key !== null) {
                                var$12 = var$12.$next3;
                            }
                        } else {
                            g: {
                                if (!$rt_s(914).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(914).$nativeString.length)
                                            break g;
                                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            $var5 = $rt_s(914).$hashCode1;
                            var$6 = $par1ItemStack.$elementData.data;
                            var$12 = var$6[$var5 & (var$6.length - 1 | 0)];
                            while (var$12 !== null) {
                                if (var$12.$origKeyHash == $var5) {
                                    h: {
                                        $par1ItemStack = var$12.$key;
                                        if ($rt_s(914) !== $par1ItemStack) {
                                            if ($rt_s(914) === $par1ItemStack)
                                                var$9 = 1;
                                            else if (!($par1ItemStack instanceof jl_String))
                                                var$9 = 0;
                                            else {
                                                $par1ItemStack = $par1ItemStack;
                                                var$9 = $rt_s(914).$nativeString !== $par1ItemStack.$nativeString ? 0 : 1;
                                            }
                                            if (!var$9) {
                                                var$9 = 0;
                                                break h;
                                            }
                                        }
                                        var$9 = 1;
                                    }
                                    if (var$9)
                                        break;
                                }
                                var$12 = var$12.$next3;
                            }
                        }
                        $var4 = (var$12 === null ? null : var$12.$value0).$data2;
                    }
                    $par1ItemStack = $var2.$tagList;
                    if ($var3 < 0)
                        break d;
                    if ($var3 >= $par1ItemStack.$size0)
                        break d;
                    i: {
                        $par1ItemStack = $par1ItemStack.$array.data[$var3];
                        var$7 = $par1ItemStack.$tagMap;
                        if (!$rt_s(921).$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= $rt_s(921).$nativeString.length)
                                    break i;
                                $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$13 = $rt_s(921).$hashCode1;
                    var$6 = var$7.$elementData.data;
                    var$7 = var$6[var$13 & (var$6.length - 1 | 0)];
                    while (var$7 !== null) {
                        if (var$7.$origKeyHash == var$13) {
                            j: {
                                var$12 = var$7.$key;
                                if ($rt_s(921) !== var$12) {
                                    if ($rt_s(921) === var$12)
                                        var$9 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        var$9 = 0;
                                    else {
                                        var$12 = var$12;
                                        var$9 = $rt_s(921).$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$9) {
                                        var$9 = 0;
                                        break j;
                                    }
                                }
                                var$9 = 1;
                            }
                            if (var$9)
                                break;
                        }
                        var$7 = var$7.$next3;
                    }
                    if (!(var$7 === null ? 0 : 1))
                        $var5 = 0;
                    else {
                        $par1ItemStack = $par1ItemStack.$tagMap;
                        if ($rt_s(921) === null) {
                            $par1ItemStack = $par1ItemStack.$elementData.data[0];
                            while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                                $par1ItemStack = $par1ItemStack.$next3;
                            }
                        } else {
                            k: {
                                if (!$rt_s(921).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(921).$nativeString.length)
                                            break k;
                                        $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$13 = $rt_s(921).$hashCode1;
                            var$6 = $par1ItemStack.$elementData.data;
                            $par1ItemStack = var$6[var$13 & (var$6.length - 1 | 0)];
                            while ($par1ItemStack !== null) {
                                if ($par1ItemStack.$origKeyHash == var$13) {
                                    l: {
                                        var$7 = $par1ItemStack.$key;
                                        if ($rt_s(921) !== var$7) {
                                            if ($rt_s(921) === var$7)
                                                var$9 = 1;
                                            else if (!(var$7 instanceof jl_String))
                                                var$9 = 0;
                                            else {
                                                var$7 = var$7;
                                                var$9 = $rt_s(921).$nativeString !== var$7.$nativeString ? 0 : 1;
                                            }
                                            if (!var$9) {
                                                var$9 = 0;
                                                break l;
                                            }
                                        }
                                        var$9 = 1;
                                    }
                                    if (var$9)
                                        break;
                                }
                                $par1ItemStack = $par1ItemStack.$next3;
                            }
                        }
                        $var5 = ($par1ItemStack === null ? null : $par1ItemStack.$value0).$data2;
                    }
                    if ($var4 == $par0)
                        break;
                    $var3 = $var3 + 1 | 0;
                }
                return $var5;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            $rt_throw($par1ItemStack);
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    }
    return 0;
},
nms_EnchantmentHelper_getEnchantments = $par0ItemStack => {
    let $var1, $var3, var$4, var$5, $var2, $var5, var$8, var$9, var$10, var$11, $var4, var$13, var$14;
    nms_EnchantmentHelper_$callClinit();
    $var1 = new ju_LinkedHashMap;
    $var3 = ju_HashMap_calculateCapacity(16);
    $var1.$elementCount = 0;
    var$4 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, $var3);
    var$5 = var$4.data;
    $var1.$elementData = var$4;
    $var1.$loadFactor = 0.75;
    $var1.$threshold = var$5.length * 0.75 | 0;
    $var1.$accessOrder = 0;
    $var1.$head = null;
    $var3 = $par0ItemStack.$itemID;
    nms_Item_$callClinit();
    if ($var3 == nms_Item_enchantedBook.$itemID0)
        a: {
            $var2 = $par0ItemStack.$stackTagCompound;
            if ($var2 !== null) {
                b: {
                    $var2 = $var2.$tagMap;
                    if (!$rt_s(1354).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1354).$nativeString.length)
                                break b;
                            $rt_s(1354).$hashCode1 = (31 * $rt_s(1354).$hashCode1 | 0) + $rt_s(1354).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                $var5 = $rt_s(1354).$hashCode1;
                var$5 = $var2.$elementData.data;
                $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == $var5) {
                        c: {
                            var$8 = $var2.$key;
                            if ($rt_s(1354) !== var$8) {
                                if ($rt_s(1354) === var$8)
                                    $var3 = 1;
                                else if (!(var$8 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$8 = var$8;
                                    $var3 = $rt_s(1354).$nativeString !== var$8.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break c;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if ($var2 === null ? 0 : 1) {
                    d: {
                        $par0ItemStack = $par0ItemStack.$stackTagCompound.$tagMap;
                        if (!$rt_s(1354).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(1354).$nativeString.length)
                                    break d;
                                $rt_s(1354).$hashCode1 = (31 * $rt_s(1354).$hashCode1 | 0) + $rt_s(1354).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    $var5 = $rt_s(1354).$hashCode1;
                    var$5 = $par0ItemStack.$elementData.data;
                    $par0ItemStack = var$5[$var5 & (var$5.length - 1 | 0)];
                    while ($par0ItemStack !== null) {
                        if ($par0ItemStack.$origKeyHash == $var5) {
                            e: {
                                var$9 = $par0ItemStack.$key;
                                if ($rt_s(1354) !== var$9) {
                                    if ($rt_s(1354) !== var$9) {
                                        if (var$9 instanceof jl_String) {
                                            var$9 = var$9;
                                            $var3 = $rt_s(1354).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        } else
                                            $var3 = 0;
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break e;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $par0ItemStack = $par0ItemStack.$next3;
                    }
                    $var2 = $par0ItemStack === null ? null : $par0ItemStack.$value0;
                    break a;
                }
            }
            $var2 = new nms_NBTTagList;
            $var2.$name = $rt_s(3);
            $par0ItemStack = new ju_ArrayList;
            $par0ItemStack.$array = $rt_createArray(jl_Object, 10);
            $var2.$tagList = $par0ItemStack;
        }
    else {
        $var2 = $par0ItemStack.$stackTagCompound;
        if ($var2 !== null) {
            f: {
                $var2 = $var2.$tagMap;
                if (!$rt_s(920).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(920).$nativeString.length)
                            break f;
                        $rt_s(920).$hashCode1 = (31 * $rt_s(920).$hashCode1 | 0) + $rt_s(920).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(920).$hashCode1;
            var$5 = $var2.$elementData.data;
            $var2 = var$5[$var5 & (var$5.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == $var5) {
                    g: {
                        var$9 = $var2.$key;
                        if ($rt_s(920) !== var$9) {
                            if ($rt_s(920) !== var$9) {
                                if (var$9 instanceof jl_String) {
                                    var$9 = var$9;
                                    $var3 = $rt_s(920).$nativeString !== var$9.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break g;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            $var2 = $var2 === null ? null : $var2.$value0;
        } else
            $var2 = null;
    }
    h: {
        i: {
            j: {
                if ($var2 !== null) {
                    $var3 = 0;
                    while (true) {
                        $par0ItemStack = $var2.$tagList;
                        var$10 = $rt_compare($var3, $par0ItemStack.$size0);
                        if (var$10 >= 0)
                            break j;
                        if ($var3 < 0)
                            break h;
                        if (var$10 >= 0)
                            break h;
                        k: {
                            var$11 = $par0ItemStack.$array.data[$var3];
                            $par0ItemStack = var$11.$tagMap;
                            if (!$rt_s(914).$hashCode1) {
                                var$10 = 0;
                                while (true) {
                                    if (var$10 >= $rt_s(914).$nativeString.length)
                                        break k;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$10) | 0;
                                    var$10 = var$10 + 1 | 0;
                                }
                            }
                        }
                        $var4 = $rt_s(914).$hashCode1;
                        var$5 = $par0ItemStack.$elementData.data;
                        $par0ItemStack = var$5[$var4 & (var$5.length - 1 | 0)];
                        while ($par0ItemStack !== null) {
                            if ($par0ItemStack.$origKeyHash == $var4) {
                                l: {
                                    var$9 = $par0ItemStack.$key;
                                    if ($rt_s(914) !== var$9) {
                                        if ($rt_s(914) === var$9)
                                            var$10 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$10 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$10 = $rt_s(914).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$10) {
                                            var$10 = 0;
                                            break l;
                                        }
                                    }
                                    var$10 = 1;
                                }
                                if (var$10)
                                    break;
                            }
                            $par0ItemStack = $par0ItemStack.$next3;
                        }
                        if (!($par0ItemStack === null ? 0 : 1))
                            $var4 = 0;
                        else {
                            $par0ItemStack = var$11.$tagMap;
                            if ($rt_s(914) === null) {
                                $par0ItemStack = $par0ItemStack.$elementData.data[0];
                                while ($par0ItemStack !== null && $par0ItemStack.$key !== null) {
                                    $par0ItemStack = $par0ItemStack.$next3;
                                }
                            } else {
                                m: {
                                    if (!$rt_s(914).$hashCode1) {
                                        var$10 = 0;
                                        while (true) {
                                            if (var$10 >= $rt_s(914).$nativeString.length)
                                                break m;
                                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$10) | 0;
                                            var$10 = var$10 + 1 | 0;
                                        }
                                    }
                                }
                                $var4 = $rt_s(914).$hashCode1;
                                var$5 = $par0ItemStack.$elementData.data;
                                $par0ItemStack = var$5[$var4 & (var$5.length - 1 | 0)];
                                while ($par0ItemStack !== null) {
                                    if ($par0ItemStack.$origKeyHash == $var4) {
                                        n: {
                                            var$9 = $par0ItemStack.$key;
                                            if ($rt_s(914) !== var$9) {
                                                if ($rt_s(914) === var$9)
                                                    var$10 = 1;
                                                else if (!(var$9 instanceof jl_String))
                                                    var$10 = 0;
                                                else {
                                                    var$9 = var$9;
                                                    var$10 = $rt_s(914).$nativeString !== var$9.$nativeString ? 0 : 1;
                                                }
                                                if (!var$10) {
                                                    var$10 = 0;
                                                    break n;
                                                }
                                            }
                                            var$10 = 1;
                                        }
                                        if (var$10)
                                            break;
                                    }
                                    $par0ItemStack = $par0ItemStack.$next3;
                                }
                            }
                            $var4 = ($par0ItemStack === null ? null : $par0ItemStack.$value0).$data2;
                        }
                        $par0ItemStack = $var2.$tagList;
                        if ($var3 < 0)
                            break i;
                        if ($var3 >= $par0ItemStack.$size0)
                            break i;
                        o: {
                            var$13 = $par0ItemStack.$array.data[$var3];
                            $par0ItemStack = var$13.$tagMap;
                            if (!$rt_s(921).$hashCode1) {
                                var$10 = 0;
                                while (true) {
                                    if (var$10 >= $rt_s(921).$nativeString.length)
                                        break o;
                                    $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt(var$10) | 0;
                                    var$10 = var$10 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(921).$hashCode1;
                        var$5 = $par0ItemStack.$elementData.data;
                        $par0ItemStack = var$5[var$14 & (var$5.length - 1 | 0)];
                        while ($par0ItemStack !== null) {
                            if ($par0ItemStack.$origKeyHash == var$14) {
                                p: {
                                    var$9 = $par0ItemStack.$key;
                                    if ($rt_s(921) !== var$9) {
                                        if ($rt_s(921) === var$9)
                                            var$10 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$10 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$10 = $rt_s(921).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$10) {
                                            var$10 = 0;
                                            break p;
                                        }
                                    }
                                    var$10 = 1;
                                }
                                if (var$10)
                                    break;
                            }
                            $par0ItemStack = $par0ItemStack.$next3;
                        }
                        if (!($par0ItemStack === null ? 0 : 1))
                            $var5 = 0;
                        else {
                            $par0ItemStack = var$13.$tagMap;
                            if ($rt_s(921) === null) {
                                $par0ItemStack = $par0ItemStack.$elementData.data[0];
                                while ($par0ItemStack !== null && $par0ItemStack.$key !== null) {
                                    $par0ItemStack = $par0ItemStack.$next3;
                                }
                            } else {
                                q: {
                                    if (!$rt_s(921).$hashCode1) {
                                        var$10 = 0;
                                        while (true) {
                                            if (var$10 >= $rt_s(921).$nativeString.length)
                                                break q;
                                            $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt(var$10) | 0;
                                            var$10 = var$10 + 1 | 0;
                                        }
                                    }
                                }
                                $var5 = $rt_s(921).$hashCode1;
                                var$5 = $par0ItemStack.$elementData.data;
                                $par0ItemStack = var$5[$var5 & (var$5.length - 1 | 0)];
                                while ($par0ItemStack !== null) {
                                    if ($par0ItemStack.$origKeyHash == $var5) {
                                        r: {
                                            var$9 = $par0ItemStack.$key;
                                            if ($rt_s(921) !== var$9) {
                                                if ($rt_s(921) === var$9)
                                                    var$10 = 1;
                                                else if (!(var$9 instanceof jl_String))
                                                    var$10 = 0;
                                                else {
                                                    var$9 = var$9;
                                                    var$10 = $rt_s(921).$nativeString !== var$9.$nativeString ? 0 : 1;
                                                }
                                                if (!var$10) {
                                                    var$10 = 0;
                                                    break r;
                                                }
                                            }
                                            var$10 = 1;
                                        }
                                        if (var$10)
                                            break;
                                    }
                                    $par0ItemStack = $par0ItemStack.$next3;
                                }
                            }
                            $var5 = ($par0ItemStack === null ? null : $par0ItemStack.$value0).$data2;
                        }
                        if ($var4 >= (-128) && $var4 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            $par0ItemStack = jl_Integer_integerCache.data[$var4 + 128 | 0];
                        } else {
                            $par0ItemStack = new jl_Integer;
                            $par0ItemStack.$value = $var4;
                        }
                        if ($var5 >= (-128) && $var5 <= 127) {
                            jl_Integer_ensureIntegerCache();
                            var$9 = jl_Integer_integerCache.data[$var5 + 128 | 0];
                        } else {
                            var$9 = new jl_Integer;
                            var$9.$value = $var5;
                        }
                        $var4 = $var1.$elementCount;
                        ju_LinkedHashMap_putImpl($var1, $par0ItemStack, var$9, 0, $var1.$accessOrder);
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            return $var1;
        }
        $par0ItemStack = new jl_IndexOutOfBoundsException;
        $par0ItemStack.$suppressionEnabled = 1;
        $par0ItemStack.$writableStackTrace = 1;
        $rt_throw($par0ItemStack);
    }
    $par0ItemStack = new jl_IndexOutOfBoundsException;
    $par0ItemStack.$suppressionEnabled = 1;
    $par0ItemStack.$writableStackTrace = 1;
    $rt_throw($par0ItemStack);
},
nms_EnchantmentHelper_setEnchantments = ($par0Map, $par1ItemStack) => {
    let $var2, var$4, var$5, $var3, var$7, $var4, $var5, var$10, var$11, var$12, var$13, var$14;
    nms_EnchantmentHelper_$callClinit();
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(3);
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$4;
    if ($par0Map.$cachedKeySet === null) {
        var$4 = new ju_LinkedHashMapKeySet;
        var$4.$base1 = $par0Map;
        var$4.$reversed1 = 0;
        $par0Map.$cachedKeySet = var$4;
    }
    var$5 = $par0Map.$cachedKeySet;
    $var3 = new ju_LinkedHashMapIterator$KeyIterator;
    var$4 = var$5.$base1;
    var$7 = var$5.$reversed1;
    $var3.$base0 = var$4;
    $var3.$reversed0 = var$7;
    $var3.$expectedModCount0 = var$4.$modCount1;
    $var3.$futureEntry = !var$7 ? var$4.$head : var$4.$tail;
    while ($var3.$futureEntry === null ? 0 : 1) {
        $var4 = (ju_LinkedHashMapIterator$KeyIterator_next($var3)).$value;
        $var5 = new nms_NBTTagCompound;
        $var5.$name = $rt_s(3);
        var$10 = new ju_HashMap;
        var$7 = ju_HashMap_calculateCapacity(16);
        var$10.$elementCount = 0;
        var$11 = $rt_createArray(ju_HashMap$HashEntry, var$7);
        var$12 = var$11.data;
        var$10.$elementData = var$11;
        var$10.$loadFactor = 0.75;
        var$10.$threshold = var$12.length * 0.75 | 0;
        $var5.$tagMap = var$10;
        var$7 = $var4 << 16 >> 16;
        var$5 = new nms_NBTTagShort;
        var$5.$name = $rt_s(914);
        var$5.$data2 = var$7;
        ju_HashMap_putImpl(var$10, $rt_s(914), var$5);
        var$13 = $rt_compare($var4, (-128));
        if (var$13 >= 0 && $var4 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[$var4 + 128 | 0];
        } else {
            var$5 = new jl_Integer;
            var$5.$value = $var4;
        }
        var$7 = (ju_LinkedHashMap_getOrDefault($par0Map, var$5, null)).$value << 16 >> 16;
        var$5 = $var5.$tagMap;
        var$4 = new nms_NBTTagShort;
        var$4.$name = $rt_s(921);
        var$4.$data2 = var$7;
        ju_HashMap_putImpl(var$5, $rt_s(921), var$4);
        $var2.$tagType = 10;
        var$4 = $var2.$tagList;
        ju_ArrayList_ensureCapacity(var$4, var$4.$size0 + 1 | 0);
        var$12 = var$4.$array.data;
        var$14 = var$4.$size0;
        var$4.$size0 = var$14 + 1 | 0;
        var$12[var$14] = $var5;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$7 = $par1ItemStack.$itemID;
        nms_Item_$callClinit();
        var$5 = nms_Item_enchantedBook;
        if (var$7 == var$5.$itemID0) {
            $var5 = new nms_EnchantmentData;
            if (var$13 >= 0 && $var4 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$10 = jl_Integer_integerCache.data[$var4 + 128 | 0];
            } else {
                var$10 = new jl_Integer;
                var$10.$value = $var4;
            }
            var$7 = (ju_LinkedHashMap_getOrDefault($par0Map, var$10, null)).$value;
            nms_Enchantment_$callClinit();
            var$4 = nms_Enchantment_enchantmentsList.data[$var4];
            $var5.$itemWeight = var$4.$weight;
            $var5.$enchantmentobj = var$4;
            $var5.$enchantmentLevel = var$7;
            nms_ItemEnchantedBook_addEnchantment(var$5, $par1ItemStack, $var5);
        }
    }
    if ($var2.$tagList.$size0 <= 0) {
        $par1ItemStack = $par1ItemStack.$stackTagCompound;
        if ($par1ItemStack === null ? 0 : 1)
            ju_HashMap_removeByKey($par1ItemStack.$tagMap, $rt_s(920));
    } else {
        var$7 = $par1ItemStack.$itemID;
        nms_Item_$callClinit();
        if (var$7 != nms_Item_enchantedBook.$itemID0) {
            if ($par1ItemStack.$stackTagCompound === null) {
                var$4 = new nms_NBTTagCompound;
                var$4.$name = $rt_s(3);
                var$5 = new ju_HashMap;
                var$7 = ju_HashMap_calculateCapacity(16);
                var$5.$elementCount = 0;
                var$11 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                var$12 = var$11.data;
                var$5.$elementData = var$11;
                var$5.$loadFactor = 0.75;
                var$5.$threshold = var$12.length * 0.75 | 0;
                var$4.$tagMap = var$5;
                $par1ItemStack.$stackTagCompound = var$4;
            }
            $par1ItemStack = $par1ItemStack.$stackTagCompound.$tagMap;
            $var2.$name = $rt_s(920);
            ju_HashMap_putImpl($par1ItemStack, $rt_s(920), $var2);
        }
    }
},
nms_EnchantmentHelper_applyEnchantmentModifier = ($par0IEnchantmentModifier, $par1ItemStack) => {
    let var$3, $var3, var$5, var$6, var$7, $var2, $var5, var$10, $var4, var$12, var$13;
    nms_EnchantmentHelper_$callClinit();
    a: {
        if ($par1ItemStack !== null) {
            var$3 = $par1ItemStack.$stackTagCompound;
            if (var$3 !== null) {
                b: {
                    var$3 = var$3.$tagMap;
                    if (!$rt_s(920).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(920).$nativeString.length)
                                break b;
                            $rt_s(920).$hashCode1 = (31 * $rt_s(920).$hashCode1 | 0) + $rt_s(920).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(920).$hashCode1;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        c: {
                            var$7 = var$3.$key;
                            if ($rt_s(920) !== var$7) {
                                if ($rt_s(920) === var$7)
                                    $var3 = 1;
                                else if (!(var$7 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$7 = var$7;
                                    $var3 = $rt_s(920).$nativeString !== var$7.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break c;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
                $var2 = var$3 === null ? null : var$3.$value0;
            } else
                $var2 = null;
            if ($var2 !== null) {
                $var3 = 0;
                d: {
                    while (true) {
                        $par1ItemStack = $var2.$tagList;
                        $var5 = $rt_compare($var3, $par1ItemStack.$size0);
                        if ($var5 >= 0)
                            break a;
                        if ($var3 < 0)
                            break d;
                        if ($var5 >= 0)
                            break d;
                        e: {
                            $par1ItemStack = $par1ItemStack.$array.data[$var3];
                            var$7 = $par1ItemStack.$tagMap;
                            if (!$rt_s(914).$hashCode1) {
                                $var5 = 0;
                                while (true) {
                                    if ($var5 >= $rt_s(914).$nativeString.length)
                                        break e;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt($var5) | 0;
                                    $var5 = $var5 + 1 | 0;
                                }
                            }
                        }
                        var$5 = $rt_s(914).$hashCode1;
                        var$6 = var$7.$elementData.data;
                        var$10 = var$6[var$5 & (var$6.length - 1 | 0)];
                        while (var$10 !== null) {
                            if (var$10.$origKeyHash == var$5) {
                                f: {
                                    var$7 = var$10.$key;
                                    if ($rt_s(914) !== var$7) {
                                        if ($rt_s(914) === var$7)
                                            $var5 = 1;
                                        else if (!(var$7 instanceof jl_String))
                                            $var5 = 0;
                                        else {
                                            var$7 = var$7;
                                            $var5 = $rt_s(914).$nativeString !== var$7.$nativeString ? 0 : 1;
                                        }
                                        if (!$var5) {
                                            $var5 = 0;
                                            break f;
                                        }
                                    }
                                    $var5 = 1;
                                }
                                if ($var5)
                                    break;
                            }
                            var$10 = var$10.$next3;
                        }
                        if (!(var$10 === null ? 0 : 1))
                            $var4 = 0;
                        else {
                            $par1ItemStack = $par1ItemStack.$tagMap;
                            if ($rt_s(914) === null) {
                                var$12 = $par1ItemStack.$elementData.data[0];
                                while (var$12 !== null && var$12.$key !== null) {
                                    var$12 = var$12.$next3;
                                }
                            } else {
                                g: {
                                    if (!$rt_s(914).$hashCode1) {
                                        $var5 = 0;
                                        while (true) {
                                            if ($var5 >= $rt_s(914).$nativeString.length)
                                                break g;
                                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt($var5) | 0;
                                            $var5 = $var5 + 1 | 0;
                                        }
                                    }
                                }
                                var$5 = $rt_s(914).$hashCode1;
                                var$6 = $par1ItemStack.$elementData.data;
                                var$12 = var$6[var$5 & (var$6.length - 1 | 0)];
                                while (var$12 !== null) {
                                    if (var$12.$origKeyHash == var$5) {
                                        h: {
                                            $par1ItemStack = var$12.$key;
                                            if ($rt_s(914) !== $par1ItemStack) {
                                                if ($rt_s(914) === $par1ItemStack)
                                                    $var5 = 1;
                                                else if (!($par1ItemStack instanceof jl_String))
                                                    $var5 = 0;
                                                else {
                                                    $par1ItemStack = $par1ItemStack;
                                                    $var5 = $rt_s(914).$nativeString !== $par1ItemStack.$nativeString ? 0 : 1;
                                                }
                                                if (!$var5) {
                                                    $var5 = 0;
                                                    break h;
                                                }
                                            }
                                            $var5 = 1;
                                        }
                                        if ($var5)
                                            break;
                                    }
                                    var$12 = var$12.$next3;
                                }
                            }
                            $var4 = (var$12 === null ? null : var$12.$value0).$data2;
                        }
                        $par1ItemStack = $var2.$tagList;
                        if ($var3 < 0)
                            break;
                        if ($var3 >= $par1ItemStack.$size0)
                            break;
                        i: {
                            $par1ItemStack = $par1ItemStack.$array.data[$var3];
                            var$7 = $par1ItemStack.$tagMap;
                            if (!$rt_s(921).$hashCode1) {
                                $var5 = 0;
                                while (true) {
                                    if ($var5 >= $rt_s(921).$nativeString.length)
                                        break i;
                                    $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt($var5) | 0;
                                    $var5 = $var5 + 1 | 0;
                                }
                            }
                        }
                        var$13 = $rt_s(921).$hashCode1;
                        var$6 = var$7.$elementData.data;
                        var$7 = var$6[var$13 & (var$6.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$13) {
                                j: {
                                    var$12 = var$7.$key;
                                    if ($rt_s(921) !== var$12) {
                                        if ($rt_s(921) === var$12)
                                            $var5 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var5 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var5 = $rt_s(921).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var5) {
                                            $var5 = 0;
                                            break j;
                                        }
                                    }
                                    $var5 = 1;
                                }
                                if ($var5)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                        if (!(var$7 === null ? 0 : 1))
                            $var5 = 0;
                        else {
                            $par1ItemStack = $par1ItemStack.$tagMap;
                            if ($rt_s(921) === null) {
                                $par1ItemStack = $par1ItemStack.$elementData.data[0];
                                while ($par1ItemStack !== null && $par1ItemStack.$key !== null) {
                                    $par1ItemStack = $par1ItemStack.$next3;
                                }
                            } else {
                                k: {
                                    if (!$rt_s(921).$hashCode1) {
                                        $var5 = 0;
                                        while (true) {
                                            if ($var5 >= $rt_s(921).$nativeString.length)
                                                break k;
                                            $rt_s(921).$hashCode1 = (31 * $rt_s(921).$hashCode1 | 0) + $rt_s(921).$nativeString.charCodeAt($var5) | 0;
                                            $var5 = $var5 + 1 | 0;
                                        }
                                    }
                                }
                                var$13 = $rt_s(921).$hashCode1;
                                var$6 = $par1ItemStack.$elementData.data;
                                $par1ItemStack = var$6[var$13 & (var$6.length - 1 | 0)];
                                while ($par1ItemStack !== null) {
                                    if ($par1ItemStack.$origKeyHash == var$13) {
                                        l: {
                                            var$7 = $par1ItemStack.$key;
                                            if ($rt_s(921) !== var$7) {
                                                if ($rt_s(921) === var$7)
                                                    $var5 = 1;
                                                else if (!(var$7 instanceof jl_String))
                                                    $var5 = 0;
                                                else {
                                                    var$7 = var$7;
                                                    $var5 = $rt_s(921).$nativeString !== var$7.$nativeString ? 0 : 1;
                                                }
                                                if (!$var5) {
                                                    $var5 = 0;
                                                    break l;
                                                }
                                            }
                                            $var5 = 1;
                                        }
                                        if ($var5)
                                            break;
                                    }
                                    $par1ItemStack = $par1ItemStack.$next3;
                                }
                            }
                            $var5 = ($par1ItemStack === null ? null : $par1ItemStack.$value0).$data2;
                        }
                        nms_Enchantment_$callClinit();
                        var$6 = nms_Enchantment_enchantmentsList.data;
                        if (var$6[$var4] !== null)
                            $par0IEnchantmentModifier.$calculateModifier(var$6[$var4], $var5);
                        $var3 = $var3 + 1 | 0;
                    }
                    $par0IEnchantmentModifier = new jl_IndexOutOfBoundsException;
                    $par0IEnchantmentModifier.$suppressionEnabled = 1;
                    $par0IEnchantmentModifier.$writableStackTrace = 1;
                    $rt_throw($par0IEnchantmentModifier);
                }
                $par0IEnchantmentModifier = new jl_IndexOutOfBoundsException;
                $par0IEnchantmentModifier.$suppressionEnabled = 1;
                $par0IEnchantmentModifier.$writableStackTrace = 1;
                $rt_throw($par0IEnchantmentModifier);
            }
        }
    }
},
nms_EnchantmentHelper_getEnchantmentModifierDamage = ($par0ArrayOfItemStack, $par1DamageSource) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    nms_EnchantmentHelper_$callClinit();
    $par0ArrayOfItemStack = $par0ArrayOfItemStack.data;
    var$3 = nms_EnchantmentHelper_enchantmentModifierDamage;
    var$3.$damageModifier = 0;
    var$3.$source = $par1DamageSource;
    var$4 = $par0ArrayOfItemStack.length;
    var$5 = 0;
    while (var$5 < var$4) {
        nms_EnchantmentHelper_applyEnchantmentModifier(var$3, $par0ArrayOfItemStack[var$5]);
        var$5 = var$5 + 1 | 0;
    }
    $par1DamageSource = nms_EnchantmentHelper_enchantmentModifierDamage;
    if ($par1DamageSource.$damageModifier > 25)
        $par1DamageSource.$damageModifier = 25;
    var$5 = $par1DamageSource.$damageModifier;
    var$6 = (var$5 + 1 | 0) >> 1;
    $par1DamageSource = nms_EnchantmentHelper_enchantmentRand;
    var$4 = (var$5 >> 1) + 1 | 0;
    var$7 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1DamageSource.$seed = var$7;
    var$8 = Long_lo(Long_shru(var$7, 17));
    var$5 = var$4 - 1 | 0;
    if (!(var$4 & var$5))
        var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$4), Long_fromInt(var$8)), 31));
    else
        while (true) {
            var$9 = var$8 % var$4 | 0;
            if (((var$8 - var$9 | 0) + var$5 | 0) >= 0)
                break;
            var$7 = Long_and(Long_add(Long_mul($par1DamageSource.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1DamageSource.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 17));
        }
    return var$6 + var$9 | 0;
},
nms_EnchantmentHelper_calcItemStackEnchantability = ($par0Random, $par1, $par2, $par3ItemStack) => {
    let var$5, $var5, var$7, var$8, var$9, var$10, var$11, $var6;
    nms_EnchantmentHelper_$callClinit();
    nms_Item_$callClinit();
    if (nms_Item_itemsList.data[$par3ItemStack.$itemID].$getItemEnchantability() <= 0)
        return 0;
    if ($par2 > 15)
        $par2 = 15;
    var$5 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$5;
    $var5 = (Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$5, 17)))), 31)) + 1 | 0) + ($par2 >> 1) | 0;
    var$7 = $par2 + 1 | 0;
    var$8 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$8;
    var$9 = Long_lo(Long_shru(var$8, 17));
    var$10 = var$7 - 1 | 0;
    if (!(var$7 & var$10))
        var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$7), Long_fromInt(var$9)), 31));
    else
        while (true) {
            var$11 = var$9 % var$7 | 0;
            if (((var$9 - var$11 | 0) + var$10 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$8;
            var$9 = Long_lo(Long_shru(var$8, 17));
        }
    $var6 = $var5 + var$11 | 0;
    if (!$par1) {
        $par2 = $var6 / 3 | 0;
        $par1 = 1;
        if ($par2 > $par1)
            $par1 = $par2;
    } else if ($par1 == 1)
        $par1 = (($var6 * 2 | 0) / 3 | 0) + 1 | 0;
    else {
        $par1 = $par2 * 2 | 0;
        if ($var6 > $par1)
            $par1 = $var6;
    }
    return $par1;
},
nms_EnchantmentHelper_addRandomEnchantment = ($par0Random, $par1ItemStack, $par2) => {
    let $var3, $var4, $var5$index, var$7, var$8, $var5$index_0, $var6;
    nms_EnchantmentHelper_$callClinit();
    $var3 = nms_EnchantmentHelper_buildEnchantmentList($par0Random, $par1ItemStack, $par2);
    $par2 = $par1ItemStack.$itemID;
    nms_Item_$callClinit();
    $var4 = $par2 != nms_Item_book.$itemID0 ? 0 : 1;
    if ($var4)
        $par1ItemStack.$itemID = nms_Item_enchantedBook.$itemID0;
    a: {
        if ($var3 !== null) {
            $var5$index = 0;
            var$7 = $var3.$modCount;
            var$8 = $var3.$size();
            while (true) {
                if (!($var5$index >= var$8 ? 0 : 1))
                    break a;
                if (var$7 < $var3.$modCount) {
                    $par0Random = new ju_ConcurrentModificationException;
                    $par0Random.$suppressionEnabled = 1;
                    $par0Random.$writableStackTrace = 1;
                    $rt_throw($par0Random);
                }
                $var5$index_0 = $var5$index + 1 | 0;
                $var6 = $var3.$get($var5$index);
                if ($var4)
                    nms_ItemEnchantedBook_addEnchantment(nms_Item_enchantedBook, $par1ItemStack, $var6);
                else
                    nms_ItemStack_addEnchantment($par1ItemStack, $var6.$enchantmentobj, $var6.$enchantmentLevel);
                $var5$index = $var5$index_0;
            }
        }
    }
    return $par1ItemStack;
},
nms_EnchantmentHelper_buildEnchantmentList = ($par0Random, $par1ItemStack, $par2) => {
    let $var4, $var5, var$6, $var15$index, $var14, var$9, $var11, $var6, $var8, $var9, $var16, $var13, $var10, var$17, $var12, $var15$index_0, $var17;
    nms_EnchantmentHelper_$callClinit();
    nms_Item_$callClinit();
    $var4 = nms_Item_itemsList.data[$par1ItemStack.$itemID].$getItemEnchantability();
    if ($var4 <= 0)
        return null;
    $var5 = (($var4 / 2 | 0) >> 1) + 1 | 0;
    var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$6;
    $var4 = Long_lo(Long_shru(var$6, 17));
    $var15$index = $var5 - 1 | 0;
    $var14 = $var5 & $var15$index;
    if (!$var14)
        var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt($var5), Long_fromInt($var4)), 31));
    else
        while (true) {
            var$9 = $var4 % $var5 | 0;
            if ((($var4 - var$9 | 0) + $var15$index | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$6;
            $var4 = Long_lo(Long_shru(var$6, 17));
        }
    $var4 = 1 + var$9 | 0;
    var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$6;
    $var11 = Long_lo(Long_shru(var$6, 17));
    if (!$var14)
        $var14 = Long_lo(Long_shr(Long_mul(Long_fromInt($var5), Long_fromInt($var11)), 31));
    else
        while (true) {
            $var14 = $var11 % $var5 | 0;
            if ((($var11 - $var14 | 0) + $var15$index | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par0Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, 17));
        }
    $var5 = ($var4 + $var14 | 0) + $par2 | 0;
    var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$6;
    $var6 = Long_lo(Long_shru(var$6, 24)) / 1.6777216E7;
    var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par0Random.$seed = var$6;
    $var11 = $var5 * (1.0 + ($var6 + Long_lo(Long_shru(var$6, 24)) / 1.6777216E7 - 1.0) * 0.15000000596046448) + 0.5 | 0;
    if ($var11 < 1)
        $var11 = 1;
    $var8 = null;
    $var9 = nms_EnchantmentHelper_mapEnchantmentData($var11, $par1ItemStack);
    if ($var9 !== null && !($var9.$elementCount ? 0 : 1)) {
        if ($var9.$cachedValues === null) {
            $par1ItemStack = new ju_HashMap$2;
            $par1ItemStack.$this$01 = $var9;
            $var9.$cachedValues = $par1ItemStack;
        }
        $var16 = $var9.$cachedValues;
        $var14 = 0;
        $par1ItemStack = $var16.$iterator();
        while ($par1ItemStack.$hasNext()) {
            $var14 = $var14 + ($par1ItemStack.$next()).$itemWeight | 0;
        }
        if ($var14 <= 0) {
            $par0Random = new jl_IllegalArgumentException;
            $par0Random.$suppressionEnabled = 1;
            $par0Random.$writableStackTrace = 1;
            $rt_throw($par0Random);
        }
        var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$6;
        $var4 = Long_lo(Long_shru(var$6, 17));
        $var5 = $var14 - 1 | 0;
        if (!($var14 & $var5))
            $par2 = Long_lo(Long_shr(Long_mul(Long_fromInt($var14), Long_fromInt($var4)), 31));
        else
            while (true) {
                $par2 = $var4 % $var14 | 0;
                if ((($var4 - $par2 | 0) + $var5 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$6;
                $var4 = Long_lo(Long_shru(var$6, 17));
            }
        $var13 = $var16.$iterator();
        a: {
            while (true) {
                if (!$var13.$hasNext()) {
                    $par1ItemStack = null;
                    break a;
                }
                $par1ItemStack = $var13.$next();
                $par2 = $par2 - $par1ItemStack.$itemWeight | 0;
                if ($par2 < 0)
                    break;
            }
        }
        $var10 = $par1ItemStack;
        if ($var10 !== null) {
            $var8 = new ju_ArrayList;
            $var8.$array = $rt_createArray(jl_Object, 10);
            ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
            var$17 = $var8.$array.data;
            $var5 = $var8.$size0;
            $var8.$size0 = $var5 + 1 | 0;
            var$17[$var5] = $var10;
            $var8.$modCount = $var8.$modCount + 1 | 0;
            while (true) {
                var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$6;
                $par2 = Long_lo(Long_shru(var$6, 17));
                while (true) {
                    $var4 = $par2 % 50 | 0;
                    if ((($par2 - $var4 | 0) + 49 | 0) >= 0)
                        break;
                    var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$6;
                    $par2 = Long_lo(Long_shru(var$6, 17));
                }
                if ($var4 > $var11)
                    break;
                if ($var9.$cachedKeySet === null) {
                    $par1ItemStack = new ju_HashMap$1;
                    $par1ItemStack.$this$0 = $var9;
                    $var9.$cachedKeySet = $par1ItemStack;
                }
                $var12 = $var9.$cachedKeySet.$iterator();
                while ($var12.$hasNext()) {
                    $var13 = $var12.$next();
                    $var14 = 1;
                    $var15$index_0 = 0;
                    $var4 = $var8.$modCount;
                    var$9 = $var8.$size();
                    b: {
                        while ($var15$index_0 >= var$9 ? 0 : 1) {
                            if ($var4 < $var8.$modCount) {
                                $par0Random = new ju_ConcurrentModificationException;
                                $par0Random.$suppressionEnabled = 1;
                                $par0Random.$writableStackTrace = 1;
                                $rt_throw($par0Random);
                            }
                            $var15$index = $var15$index_0 + 1 | 0;
                            $par1ItemStack = ($var8.$get($var15$index_0)).$enchantmentobj;
                            nms_Enchantment_$callClinit();
                            if (!$par1ItemStack.$canApplyTogether(nms_Enchantment_enchantmentsList.data[$var13.$value])) {
                                $var14 = 0;
                                break b;
                            }
                            $var15$index_0 = $var15$index;
                        }
                    }
                    if (!$var14)
                        $var12.$remove();
                }
                if (!($var9.$elementCount ? 0 : 1)) {
                    if ($var9.$cachedValues === null) {
                        $par1ItemStack = new ju_HashMap$2;
                        $par1ItemStack.$this$01 = $var9;
                        $var9.$cachedValues = $par1ItemStack;
                    }
                    $var16 = $var9.$cachedValues;
                    $var15$index = 0;
                    $par1ItemStack = $var16.$iterator();
                    while ($par1ItemStack.$hasNext()) {
                        $var15$index = $var15$index + ($par1ItemStack.$next()).$itemWeight | 0;
                    }
                    if ($var15$index <= 0) {
                        $par0Random = new jl_IllegalArgumentException;
                        $par0Random.$suppressionEnabled = 1;
                        $par0Random.$writableStackTrace = 1;
                        $rt_throw($par0Random);
                    }
                    var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par0Random.$seed = var$6;
                    $var14 = Long_lo(Long_shru(var$6, 17));
                    $var4 = $var15$index - 1 | 0;
                    if (!($var15$index & $var4))
                        $par2 = Long_lo(Long_shr(Long_mul(Long_fromInt($var15$index), Long_fromInt($var14)), 31));
                    else
                        while (true) {
                            $par2 = $var14 % $var15$index | 0;
                            if ((($var14 - $par2 | 0) + $var4 | 0) >= 0)
                                break;
                            var$6 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par0Random.$seed = var$6;
                            $var14 = Long_lo(Long_shru(var$6, 17));
                        }
                    $var13 = $var16.$iterator();
                    c: {
                        while (true) {
                            if (!$var13.$hasNext()) {
                                $par1ItemStack = null;
                                break c;
                            }
                            $par1ItemStack = $var13.$next();
                            $par2 = $par2 - $par1ItemStack.$itemWeight | 0;
                            if ($par2 < 0)
                                break;
                        }
                    }
                    $var17 = $par1ItemStack;
                    ju_ArrayList_ensureCapacity($var8, $var8.$size0 + 1 | 0);
                    var$17 = $var8.$array.data;
                    $var4 = $var8.$size0;
                    $var8.$size0 = $var4 + 1 | 0;
                    var$17[$var4] = $var17;
                    $var8.$modCount = $var8.$modCount + 1 | 0;
                }
                $var11 = $var11 >> 1;
            }
        }
    }
    return $var8;
},
nms_EnchantmentHelper_mapEnchantmentData = ($par0, $par1ItemStack) => {
    let $var5, $var9, $var2, $var3, $var4, var$8, $var6, $var7, $var8, var$12, var$13, var$14, var$15;
    nms_EnchantmentHelper_$callClinit();
    nms_Item_$callClinit();
    $var5 = nms_Item_itemsList.data;
    $var9 = $par1ItemStack.$itemID;
    $var2 = $var5[$var9];
    $var3 = null;
    $var4 = $var9 != nms_Item_book.$itemID0 ? 0 : 1;
    nms_Enchantment_$callClinit();
    var$8 = nms_Enchantment_enchantmentsList.data;
    $var6 = var$8.length;
    $var7 = 0;
    while ($var7 < $var6) {
        $var8 = var$8[$var7];
        if ($var8 !== null && !(!nms_EnumEnchantmentType_canEnchantItem($var8.$type0, $var2) && !$var4)) {
            $var9 = 1;
            while ($var9 <= $var8.$getMaxLevel()) {
                if ($par0 >= $var8.$getMinEnchantability($var9) && $par0 <= $var8.$getMaxEnchantability($var9)) {
                    if ($var3 === null) {
                        $var3 = new ju_HashMap;
                        var$12 = ju_HashMap_calculateCapacity(16);
                        $var3.$elementCount = 0;
                        $var5 = $rt_createArray(ju_HashMap$HashEntry, var$12);
                        var$13 = $var5.data;
                        $var3.$elementData = $var5;
                        $var3.$loadFactor = 0.75;
                        $var3.$threshold = var$13.length * 0.75 | 0;
                    }
                    var$14 = $var8.$effectId;
                    if (var$14 >= (-128) && var$14 <= 127) {
                        jl_Integer_ensureIntegerCache();
                        $par1ItemStack = jl_Integer_integerCache.data[var$14 + 128 | 0];
                    } else {
                        $par1ItemStack = new jl_Integer;
                        $par1ItemStack.$value = var$14;
                    }
                    var$15 = new nms_EnchantmentData;
                    var$15.$itemWeight = $var8.$weight;
                    var$15.$enchantmentobj = $var8;
                    var$15.$enchantmentLevel = $var9;
                    ju_HashMap_putImpl($var3, $par1ItemStack, var$15);
                }
                $var9 = $var9 + 1 | 0;
            }
        }
        $var7 = $var7 + 1 | 0;
    }
    return $var3;
},
nms_EnchantmentHelper__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nle_EaglercraftRandom;
    var$2 = Long_fromNumber(performance.now() * 1000000.0);
    var$1.$seed = Long_fromInt(69);
    var$1.$haveNextNextGaussian = 0;
    var$1.$seed = var$2;
    nms_EnchantmentHelper_enchantmentRand = var$1;
    nms_EnchantmentHelper_enchantmentModifierDamage = new nms_EnchantmentModifierDamage;
    nms_EnchantmentHelper_enchantmentModifierLiving = new nms_EnchantmentModifierLiving;
},
jl_StrictMath = $rt_classWithoutFields(),
jl_StrictMath__init_ = $this => {
    return;
},
jl_StrictMath__init_0 = () => {
    let var_0 = new jl_StrictMath();
    jl_StrictMath__init_(var_0);
    return var_0;
};
function nms_PlayerCapabilities() {
    let a = this; jl_Object.call(a);
    a.$disableDamage = 0;
    a.$isFlying = 0;
    a.$allowFlying = 0;
    a.$isCreativeMode = 0;
    a.$allowEdit = 0;
    a.$flySpeed = 0.0;
    a.$walkSpeed = 0.0;
}
let nms_PlayerCapabilities__init_ = $this => {
    $this.$allowEdit = 1;
    $this.$flySpeed = 0.05000000074505806;
    $this.$walkSpeed = 0.10000000149011612;
},
nms_PlayerCapabilities__init_0 = () => {
    let var_0 = new nms_PlayerCapabilities();
    nms_PlayerCapabilities__init_(var_0);
    return var_0;
},
nms_PlayerCapabilities_writeCapabilitiesToNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    $var2 = new nms_NBTTagCompound;
    $var2.$name = $rt_s(3);
    var$3 = new ju_HashMap;
    var$4 = ju_HashMap_calculateCapacity(16);
    var$3.$elementCount = 0;
    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
    var$6 = var$5.data;
    var$3.$elementData = var$5;
    var$3.$loadFactor = 0.75;
    var$3.$threshold = var$6.length * 0.75 | 0;
    $var2.$tagMap = var$3;
    var$4 = (!$this.$disableDamage ? 0 : 1) << 24 >> 24;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2620);
    var$7.$data0 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2620), var$7);
    var$4 = (!$this.$isFlying ? 0 : 1) << 24 >> 24;
    var$3 = $var2.$tagMap;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2621);
    var$7.$data0 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2621), var$7);
    var$4 = (!$this.$allowFlying ? 0 : 1) << 24 >> 24;
    var$3 = $var2.$tagMap;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2622);
    var$7.$data0 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2622), var$7);
    var$4 = (!$this.$isCreativeMode ? 0 : 1) << 24 >> 24;
    var$3 = $var2.$tagMap;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2623);
    var$7.$data0 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2623), var$7);
    var$4 = (!$this.$allowEdit ? 0 : 1) << 24 >> 24;
    var$3 = $var2.$tagMap;
    var$7 = new nms_NBTTagByte;
    var$7.$name = $rt_s(2624);
    var$7.$data0 = var$4;
    ju_HashMap_putImpl(var$3, $rt_s(2624), var$7);
    var$8 = $this.$flySpeed;
    var$3 = $var2.$tagMap;
    var$7 = new nms_NBTTagFloat;
    var$7.$name = $rt_s(2625);
    var$7.$data5 = var$8;
    ju_HashMap_putImpl(var$3, $rt_s(2625), var$7);
    var$8 = $this.$walkSpeed;
    var$9 = $var2.$tagMap;
    var$3 = new nms_NBTTagFloat;
    var$3.$name = $rt_s(2626);
    var$3.$data5 = var$8;
    ju_HashMap_putImpl(var$9, $rt_s(2626), var$3);
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2627);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2627), $var2);
},
nms_PlayerCapabilities_readCapabilitiesFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2627).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2627).$nativeString.length)
                    break a;
                $rt_s(2627).$hashCode1 = (31 * $rt_s(2627).$hashCode1 | 0) + $rt_s(2627).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2627).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == var$3) {
            b: {
                var$5 = $var2.$key;
                if ($rt_s(2627) !== var$5) {
                    if ($rt_s(2627) === var$5)
                        var$6 = 1;
                    else if (var$5 instanceof jl_String) {
                        var$5 = var$5;
                        var$6 = $rt_s(2627).$nativeString !== var$5.$nativeString ? 0 : 1;
                    } else
                        var$6 = 0;
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if ($var2 === null ? 0 : 1) {
        c: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2627).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2627).$nativeString.length)
                        break c;
                    $rt_s(2627).$hashCode1 = (31 * $rt_s(2627).$hashCode1 | 0) + $rt_s(2627).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$3 = $rt_s(2627).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$3) {
                d: {
                    var$5 = $var2.$key;
                    if ($rt_s(2627) !== var$5) {
                        if ($rt_s(2627) !== var$5) {
                            if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                var$6 = $rt_s(2627).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                var$6 = 0;
                        } else
                            var$6 = 1;
                        if (!var$6) {
                            var$6 = 0;
                            break d;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            $var2 = new nms_NBTTagCompound;
            if ($rt_s(2627) !== null)
                $var2.$name = $rt_s(2627);
            else
                $var2.$name = $rt_s(3);
            $par1NBTTagCompound = new ju_HashMap;
            var$3 = ju_HashMap_calculateCapacity(16);
            $par1NBTTagCompound.$elementCount = 0;
            var$7 = $rt_createArray(ju_HashMap$HashEntry, var$3);
            var$4 = var$7.data;
            $par1NBTTagCompound.$elementData = var$7;
            $par1NBTTagCompound.$loadFactor = 0.75;
            $par1NBTTagCompound.$threshold = var$4.length * 0.75 | 0;
            $var2.$tagMap = $par1NBTTagCompound;
        } else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2627) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2627).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2627).$nativeString.length)
                                break e;
                            $rt_s(2627).$hashCode1 = (31 * $rt_s(2627).$hashCode1 | 0) + $rt_s(2627).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$3 = $rt_s(2627).$hashCode1;
                var$4 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$3) {
                        f: {
                            $var2 = $par1NBTTagCompound.$key;
                            if ($rt_s(2627) !== $var2) {
                                if ($rt_s(2627) === $var2)
                                    var$6 = 1;
                                else if (!($var2 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    $var2 = $var2;
                                    var$6 = $rt_s(2627).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break f;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            $var2 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
        }
        g: {
            var$8 = $var2.$tagMap;
            if (!$rt_s(2620).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2620).$nativeString.length)
                        break g;
                    $rt_s(2620).$hashCode1 = (31 * $rt_s(2620).$hashCode1 | 0) + $rt_s(2620).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2620).$hashCode1;
        var$4 = var$8.$elementData.data;
        var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$9) {
                h: {
                    var$5 = var$8.$key;
                    if ($rt_s(2620) !== var$5) {
                        if ($rt_s(2620) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2620).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break h;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (var$8 === null ? 0 : 1) {
            var$8 = $var2.$tagMap;
            if ($rt_s(2620) === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                i: {
                    if (!$rt_s(2620).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2620).$nativeString.length)
                                break i;
                            $rt_s(2620).$hashCode1 = (31 * $rt_s(2620).$hashCode1 | 0) + $rt_s(2620).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2620).$hashCode1;
                var$4 = var$8.$elementData.data;
                var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$9) {
                        j: {
                            var$5 = var$8.$key;
                            if ($rt_s(2620) !== var$5) {
                                if ($rt_s(2620) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2620).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break j;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$3 = (var$8 === null ? null : var$8.$value0).$data0;
        } else
            var$3 = 0;
        var$3 = !var$3 ? 0 : 1;
        k: {
            $this.$disableDamage = var$3;
            var$8 = $var2.$tagMap;
            if (!$rt_s(2621).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2621).$nativeString.length)
                        break k;
                    $rt_s(2621).$hashCode1 = (31 * $rt_s(2621).$hashCode1 | 0) + $rt_s(2621).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2621).$hashCode1;
        var$4 = var$8.$elementData.data;
        var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$9) {
                l: {
                    var$5 = var$8.$key;
                    if ($rt_s(2621) !== var$5) {
                        if ($rt_s(2621) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2621).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break l;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (!(var$8 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$8 = $var2.$tagMap;
            if ($rt_s(2621) === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                m: {
                    if (!$rt_s(2621).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2621).$nativeString.length)
                                break m;
                            $rt_s(2621).$hashCode1 = (31 * $rt_s(2621).$hashCode1 | 0) + $rt_s(2621).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2621).$hashCode1;
                var$4 = var$8.$elementData.data;
                var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$9) {
                        n: {
                            var$5 = var$8.$key;
                            if ($rt_s(2621) !== var$5) {
                                if ($rt_s(2621) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2621).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break n;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$3 = (var$8 === null ? null : var$8.$value0).$data0;
        }
        var$3 = !var$3 ? 0 : 1;
        o: {
            $this.$isFlying = var$3;
            var$8 = $var2.$tagMap;
            if (!$rt_s(2622).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2622).$nativeString.length)
                        break o;
                    $rt_s(2622).$hashCode1 = (31 * $rt_s(2622).$hashCode1 | 0) + $rt_s(2622).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2622).$hashCode1;
        var$4 = var$8.$elementData.data;
        var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$9) {
                p: {
                    var$5 = var$8.$key;
                    if ($rt_s(2622) !== var$5) {
                        if ($rt_s(2622) !== var$5) {
                            if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                var$3 = $rt_s(2622).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break p;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (var$8 === null ? 0 : 1) {
            var$8 = $var2.$tagMap;
            if ($rt_s(2622) !== null) {
                q: {
                    if (!$rt_s(2622).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2622).$nativeString.length)
                                break q;
                            $rt_s(2622).$hashCode1 = (31 * $rt_s(2622).$hashCode1 | 0) + $rt_s(2622).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2622).$hashCode1;
                var$4 = var$8.$elementData.data;
                var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$9) {
                        r: {
                            var$5 = var$8.$key;
                            if ($rt_s(2622) !== var$5) {
                                if ($rt_s(2622) !== var$5) {
                                    if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2622).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                } else
                                    var$3 = 1;
                                if (!var$3) {
                                    var$3 = 0;
                                    break r;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            } else {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            }
            var$3 = (var$8 === null ? null : var$8.$value0).$data0;
        } else
            var$3 = 0;
        var$3 = !var$3 ? 0 : 1;
        s: {
            $this.$allowFlying = var$3;
            var$8 = $var2.$tagMap;
            if (!$rt_s(2623).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2623).$nativeString.length)
                        break s;
                    $rt_s(2623).$hashCode1 = (31 * $rt_s(2623).$hashCode1 | 0) + $rt_s(2623).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2623).$hashCode1;
        var$4 = var$8.$elementData.data;
        var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$9) {
                t: {
                    var$5 = var$8.$key;
                    if ($rt_s(2623) !== var$5) {
                        if ($rt_s(2623) !== var$5) {
                            if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                var$3 = $rt_s(2623).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                var$3 = 0;
                        } else
                            var$3 = 1;
                        if (!var$3) {
                            var$3 = 0;
                            break t;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (!(var$8 === null ? 0 : 1))
            var$3 = 0;
        else {
            var$8 = $var2.$tagMap;
            if ($rt_s(2623) === null) {
                var$8 = var$8.$elementData.data[0];
                while (var$8 !== null && var$8.$key !== null) {
                    var$8 = var$8.$next3;
                }
            } else {
                u: {
                    if (!$rt_s(2623).$hashCode1) {
                        var$3 = 0;
                        while (true) {
                            if (var$3 >= $rt_s(2623).$nativeString.length)
                                break u;
                            $rt_s(2623).$hashCode1 = (31 * $rt_s(2623).$hashCode1 | 0) + $rt_s(2623).$nativeString.charCodeAt(var$3) | 0;
                            var$3 = var$3 + 1 | 0;
                        }
                    }
                }
                var$9 = $rt_s(2623).$hashCode1;
                var$4 = var$8.$elementData.data;
                var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                while (var$8 !== null) {
                    if (var$8.$origKeyHash == var$9) {
                        v: {
                            var$5 = var$8.$key;
                            if ($rt_s(2623) !== var$5) {
                                if ($rt_s(2623) === var$5)
                                    var$3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    var$3 = 0;
                                else {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2623).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!var$3) {
                                    var$3 = 0;
                                    break v;
                                }
                            }
                            var$3 = 1;
                        }
                        if (var$3)
                            break;
                    }
                    var$8 = var$8.$next3;
                }
            }
            var$3 = (var$8 === null ? null : var$8.$value0).$data0;
        }
        var$3 = !var$3 ? 0 : 1;
        w: {
            $this.$isCreativeMode = var$3;
            var$8 = $var2.$tagMap;
            if (!$rt_s(2625).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2625).$nativeString.length)
                        break w;
                    $rt_s(2625).$hashCode1 = (31 * $rt_s(2625).$hashCode1 | 0) + $rt_s(2625).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2625).$hashCode1;
        var$4 = var$8.$elementData.data;
        var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$9) {
                x: {
                    var$5 = var$8.$key;
                    if ($rt_s(2625) !== var$5) {
                        if ($rt_s(2625) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2625).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break x;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (var$8 === null ? 0 : 1) {
            y: {
                var$8 = $var2.$tagMap;
                if (!$rt_s(2625).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2625).$nativeString.length)
                            break y;
                        $rt_s(2625).$hashCode1 = (31 * $rt_s(2625).$hashCode1 | 0) + $rt_s(2625).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2625).$hashCode1;
            var$4 = var$8.$elementData.data;
            var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$9) {
                    z: {
                        var$5 = var$8.$key;
                        if ($rt_s(2625) !== var$5) {
                            if ($rt_s(2625) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    var$3 = $rt_s(2625).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break z;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                var$10 = 0.0;
            else {
                var$8 = $var2.$tagMap;
                if ($rt_s(2625) !== null) {
                    ba: {
                        if (!$rt_s(2625).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(2625).$nativeString.length)
                                    break ba;
                                $rt_s(2625).$hashCode1 = (31 * $rt_s(2625).$hashCode1 | 0) + $rt_s(2625).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(2625).$hashCode1;
                    var$4 = var$8.$elementData.data;
                    var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == var$9) {
                            bb: {
                                var$5 = var$8.$key;
                                if ($rt_s(2625) !== var$5) {
                                    if ($rt_s(2625) === var$5)
                                        var$3 = 1;
                                    else if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2625).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        var$3 = 0;
                                    if (!var$3) {
                                        var$3 = 0;
                                        break bb;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                } else {
                    var$8 = var$8.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                }
                var$10 = (var$8 === null ? null : var$8.$value0).$data5;
            }
            bc: {
                $this.$flySpeed = var$10;
                var$8 = $var2.$tagMap;
                if (!$rt_s(2626).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2626).$nativeString.length)
                            break bc;
                        $rt_s(2626).$hashCode1 = (31 * $rt_s(2626).$hashCode1 | 0) + $rt_s(2626).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2626).$hashCode1;
            var$4 = var$8.$elementData.data;
            var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$9) {
                    bd: {
                        var$5 = var$8.$key;
                        if ($rt_s(2626) !== var$5) {
                            if ($rt_s(2626) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2626).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break bd;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                var$10 = 0.0;
            else {
                var$8 = $var2.$tagMap;
                if ($rt_s(2626) === null) {
                    var$8 = var$8.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                } else {
                    be: {
                        if (!$rt_s(2626).$hashCode1) {
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= $rt_s(2626).$nativeString.length)
                                    break be;
                                $rt_s(2626).$hashCode1 = (31 * $rt_s(2626).$hashCode1 | 0) + $rt_s(2626).$nativeString.charCodeAt(var$3) | 0;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(2626).$hashCode1;
                    var$4 = var$8.$elementData.data;
                    var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == var$9) {
                            bf: {
                                var$5 = var$8.$key;
                                if ($rt_s(2626) !== var$5) {
                                    if ($rt_s(2626) === var$5)
                                        var$3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        var$5 = var$5;
                                        var$3 = $rt_s(2626).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break bf;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                }
                var$10 = (var$8 === null ? null : var$8.$value0).$data5;
            }
            $this.$walkSpeed = var$10;
        }
        bg: {
            var$8 = $var2.$tagMap;
            if (!$rt_s(2624).$hashCode1) {
                var$3 = 0;
                while (true) {
                    if (var$3 >= $rt_s(2624).$nativeString.length)
                        break bg;
                    $rt_s(2624).$hashCode1 = (31 * $rt_s(2624).$hashCode1 | 0) + $rt_s(2624).$nativeString.charCodeAt(var$3) | 0;
                    var$3 = var$3 + 1 | 0;
                }
            }
        }
        var$9 = $rt_s(2624).$hashCode1;
        var$4 = var$8.$elementData.data;
        var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
        while (var$8 !== null) {
            if (var$8.$origKeyHash == var$9) {
                bh: {
                    var$5 = var$8.$key;
                    if ($rt_s(2624) !== var$5) {
                        if ($rt_s(2624) === var$5)
                            var$3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$5 = var$5;
                            var$3 = $rt_s(2624).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!var$3) {
                            var$3 = 0;
                            break bh;
                        }
                    }
                    var$3 = 1;
                }
                if (var$3)
                    break;
            }
            var$8 = var$8.$next3;
        }
        if (var$8 === null ? 0 : 1) {
            bi: {
                var$8 = $var2.$tagMap;
                if (!$rt_s(2624).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2624).$nativeString.length)
                            break bi;
                        $rt_s(2624).$hashCode1 = (31 * $rt_s(2624).$hashCode1 | 0) + $rt_s(2624).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2624).$hashCode1;
            var$4 = var$8.$elementData.data;
            var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$9) {
                    bj: {
                        var$5 = var$8.$key;
                        if ($rt_s(2624) !== var$5) {
                            if ($rt_s(2624) === var$5)
                                var$3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$5 = var$5;
                                var$3 = $rt_s(2624).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break bj;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
            if (!(var$8 === null ? 0 : 1))
                var$3 = 0;
            else {
                var$8 = $var2.$tagMap;
                if ($rt_s(2624) === null) {
                    var$8 = var$8.$elementData.data[0];
                    while (var$8 !== null && var$8.$key !== null) {
                        var$8 = var$8.$next3;
                    }
                } else {
                    bk: {
                        if (!$rt_s(2624).$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= $rt_s(2624).$nativeString.length)
                                    break bk;
                                $rt_s(2624).$hashCode1 = (31 * $rt_s(2624).$hashCode1 | 0) + $rt_s(2624).$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(2624).$hashCode1;
                    var$4 = var$8.$elementData.data;
                    var$8 = var$4[var$9 & (var$4.length - 1 | 0)];
                    while (var$8 !== null) {
                        if (var$8.$origKeyHash == var$9) {
                            bl: {
                                $var2 = var$8.$key;
                                if ($rt_s(2624) !== $var2) {
                                    if ($rt_s(2624) === $var2)
                                        var$3 = 1;
                                    else if (!($var2 instanceof jl_String))
                                        var$3 = 0;
                                    else {
                                        $var2 = $var2;
                                        var$3 = $rt_s(2624).$nativeString !== $var2.$nativeString ? 0 : 1;
                                    }
                                    if (!var$3) {
                                        var$3 = 0;
                                        break bl;
                                    }
                                }
                                var$3 = 1;
                            }
                            if (var$3)
                                break;
                        }
                        var$8 = var$8.$next3;
                    }
                }
                var$3 = (var$8 === null ? null : var$8.$value0).$data0;
            }
            $this.$allowEdit = !var$3 ? 0 : 1;
        }
    }
};
function nms_EnchantmentData() {
    let a = this; nms_WeightedRandomItem.call(a);
    a.$enchantmentobj = null;
    a.$enchantmentLevel = 0;
}
function nms_InventoryBasic() {
    let a = this; jl_Object.call(a);
    a.$inventoryTitle = null;
    a.$slotsCount = 0;
    a.$inventoryContents = null;
    a.$field_70480_d = null;
    a.$field_94051_e = 0;
}
let nms_InventoryBasic_getStackInSlot = ($this, $par1) => {
    return $this.$inventoryContents.data[$par1];
},
nms_InventoryBasic_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$inventoryContents.data;
        if (var$3[$par1] === null)
            return null;
        if (var$3[$par1].$stackSize <= $par2) {
            $var3 = var$3[$par1];
            var$3[$par1] = null;
            $ptr = 1;
            continue main;
        }
        var$5 = var$3[$par1];
        $var3 = new nms_ItemStack;
        var$6 = var$5.$itemID;
        var$7 = var$5.$itemDamage;
        nms_ItemStack_$callClinit();
        $var3.$itemID = var$6;
        $var3.$stackSize = $par2;
        $var3.$itemDamage = var$7;
        if (var$7 < 0)
            $var3.$itemDamage = 0;
        var$8 = var$5.$stackTagCompound;
        if (var$8 !== null) {
            var$9 = new nms_NBTTagCompound;
            var$10 = var$8.$name;
            if (var$10 === null)
                var$10 = $rt_s(3);
            var$9.$name = var$10;
            var$10 = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            var$10.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$3 = var$11.data;
            var$10.$elementData = var$11;
            var$10.$loadFactor = 0.75;
            var$10.$threshold = var$3.length * 0.75 | 0;
            var$9.$tagMap = var$10;
            var$12 = var$8.$tagMap;
            if (var$12.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = var$12;
                var$12.$cachedKeySet = var$10;
            }
            var$13 = var$12.$cachedKeySet.$iterator();
            while (var$13.$hasNext()) {
                var$14 = var$13.$next();
                var$10 = var$8.$tagMap;
                if (var$14 === null) {
                    var$15 = var$10.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                } else {
                    a: {
                        if (!var$14.$hashCode1) {
                            var$6 = 0;
                            while (true) {
                                if (var$6 >= var$14.$nativeString.length)
                                    break a;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$6) | 0;
                                var$6 = var$6 + 1 | 0;
                            }
                        }
                    }
                    var$7 = var$14.$hashCode1;
                    var$3 = var$10.$elementData.data;
                    var$15 = var$3[var$7 & (var$3.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$7) {
                            b: {
                                var$10 = var$15.$key;
                                if (var$14 !== var$10) {
                                    if (var$14 === var$10)
                                        var$6 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        var$6 = 0;
                                    else {
                                        var$10 = var$10;
                                        var$6 = var$14.$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!var$6) {
                                        var$6 = 0;
                                        break b;
                                    }
                                }
                                var$6 = 1;
                            }
                            if (var$6)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                }
                var$10 = var$15 === null ? null : var$15.$value0;
                var$10 = var$10.$copy();
                var$12 = var$9.$tagMap;
                if (var$14 !== null)
                    var$10.$name = var$14;
                else
                    var$10.$name = $rt_s(3);
                ju_HashMap_putImpl(var$12, var$14, var$10);
            }
            $var3.$stackTagCompound = var$9;
        }
        var$5.$stackSize = var$5.$stackSize - $par2 | 0;
        var$3 = $this.$inventoryContents.data;
        if (!var$3[$par1].$stackSize)
            var$3[$par1] = null;
        $ptr = 2;
        continue main;
    case 1:
        $this.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 2:
        $this.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_InventoryBasic_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2ItemStack = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$inventoryContents.data[$par1] = $par2ItemStack;
        if ($par2ItemStack !== null && $par2ItemStack.$stackSize > $this.$getInventoryStackLimit())
            $par2ItemStack.$stackSize = $this.$getInventoryStackLimit();
        $ptr = 1;
    case 1:
        $this.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ItemStack, $ptr);
},
nms_InventoryBasic_getSizeInventory = $this => {
    return $this.$slotsCount;
},
nms_InventoryBasic_getInvName = $this => {
    return $this.$inventoryTitle;
},
nms_InventoryBasic_isInvNameLocalized = $this => {
    return $this.$field_94051_e;
},
nms_InventoryBasic_getInventoryStackLimit = $this => {
    return 64;
},
nms_InventoryBasic_onInventoryChanged = $this => {
    let $var1, var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_70480_d !== null) {
            $var1 = 0;
            var$2 = $this.$field_70480_d;
            var$3 = $rt_compare($var1, var$2.$size0);
            if (var$3 < 0) {
                if ($var1 >= 0 && var$3 < 0) {
                    var$2 = var$2.$array.data[$var1];
                    $ptr = 1;
                    continue main;
                }
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
        }
        return;
    case 1:
        nms_EntityHorse_onInventoryChanged(var$2, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $var1 + 1 | 0;
        var$2 = $this.$field_70480_d;
        var$3 = $rt_compare($var1, var$2.$size0);
        if (var$3 >= 0)
            return;
        if ($var1 >= 0 && var$3 < 0) {
            var$2 = var$2.$array.data[$var1];
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, $ptr);
};
function nms_InventoryEnderChest() {
    nms_InventoryBasic.call(this);
    this.$associatedChest = null;
}
let nms_InventoryEnderChest__init_ = $this => {
    $this.$inventoryTitle = $rt_s(2004);
    $this.$field_94051_e = 0;
    $this.$slotsCount = 27;
    $this.$inventoryContents = $rt_createArray(nms_ItemStack, 27);
},
nms_InventoryEnderChest__init_0 = () => {
    let var_0 = new nms_InventoryEnderChest();
    nms_InventoryEnderChest__init_(var_0);
    return var_0;
},
nms_InventoryEnderChest_loadInventoryFromNBT = ($this, $par1NBTTagList) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, $var4, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1NBTTagList = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = 0;
        $var3 = null;
        var$4 = 64;
        var$5 = 64;
        if ($var2 < $this.$slotsCount) {
            $this.$inventoryContents.data[$var2] = $var3;
            if ($var3 !== null && $var3.$stackSize > var$4)
                $var3.$stackSize = var$5;
            $ptr = 1;
            continue main;
        }
        $var2 = 0;
        var$6 = 64;
        var$7 = 64;
        a: {
            while (true) {
                $var3 = $par1NBTTagList.$tagList;
                $var4 = $rt_compare($var2, $var3.$size0);
                if ($var4 >= 0)
                    break;
                if ($var2 < 0)
                    break a;
                if ($var4 >= 0)
                    break a;
                b: {
                    $var3 = $var3.$array.data[$var2];
                    var$9 = $var3.$tagMap;
                    if (!$rt_s(2022).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2022).$nativeString.length)
                                break b;
                            $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                $var4 = $rt_s(2022).$hashCode1;
                var$10 = var$9.$elementData.data;
                var$9 = var$10[$var4 & (var$10.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var4) {
                        c: {
                            var$11 = var$9.$key;
                            if ($rt_s(2022) !== var$11) {
                                if ($rt_s(2022) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break c;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
                if (!(var$9 === null ? 0 : 1))
                    var$4 = 0;
                else {
                    var$9 = $var3.$tagMap;
                    if ($rt_s(2022) === null) {
                        var$12 = var$9.$elementData.data[0];
                        while (var$12 !== null && var$12.$key !== null) {
                            var$12 = var$12.$next3;
                        }
                    } else {
                        d: {
                            if (!$rt_s(2022).$hashCode1) {
                                $var4 = 0;
                                while (true) {
                                    if ($var4 >= $rt_s(2022).$nativeString.length)
                                        break d;
                                    $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var4) | 0;
                                    $var4 = $var4 + 1 | 0;
                                }
                            }
                        }
                        $var4 = $rt_s(2022).$hashCode1;
                        var$10 = var$9.$elementData.data;
                        var$12 = var$10[$var4 & (var$10.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == $var4) {
                                e: {
                                    var$9 = var$12.$key;
                                    if ($rt_s(2022) !== var$9) {
                                        if ($rt_s(2022) === var$9)
                                            var$4 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$4 = $rt_s(2022).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break e;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                    }
                    var$4 = (var$12 === null ? null : var$12.$value0).$data0;
                }
                $var4 = var$4 & 255;
                if ($var4 >= 0 && $var4 < $this.$slotsCount) {
                    nms_ItemStack_$callClinit();
                    var$13 = new nms_ItemStack;
                    nms_ItemStack_readFromNBT(var$13, $var3);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[var$13.$itemID] === null)
                        var$13 = null;
                    $this.$inventoryContents.data[$var4] = var$13;
                    if (var$13 !== null && var$13.$stackSize > var$6)
                        var$13.$stackSize = var$7;
                    $ptr = 2;
                    continue main;
                }
                $var2 = $var2 + 1 | 0;
            }
            return;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    case 1:
        nms_InventoryBasic_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $var2 + 1 | 0;
        if ($var2 < $this.$slotsCount) {
            $this.$inventoryContents.data[$var2] = $var3;
            if ($var3 !== null && $var3.$stackSize > var$4)
                $var3.$stackSize = var$5;
            continue main;
        }
        $var2 = 0;
        var$6 = 64;
        var$7 = 64;
        a: {
            while (true) {
                $var3 = $par1NBTTagList.$tagList;
                $var4 = $rt_compare($var2, $var3.$size0);
                if ($var4 >= 0)
                    break;
                if ($var2 < 0)
                    break a;
                if ($var4 >= 0)
                    break a;
                b: {
                    $var3 = $var3.$array.data[$var2];
                    var$9 = $var3.$tagMap;
                    if (!$rt_s(2022).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2022).$nativeString.length)
                                break b;
                            $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                $var4 = $rt_s(2022).$hashCode1;
                var$10 = var$9.$elementData.data;
                var$9 = var$10[$var4 & (var$10.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var4) {
                        c: {
                            var$11 = var$9.$key;
                            if ($rt_s(2022) !== var$11) {
                                if ($rt_s(2022) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break c;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
                if (!(var$9 === null ? 0 : 1))
                    var$4 = 0;
                else {
                    var$9 = $var3.$tagMap;
                    if ($rt_s(2022) === null) {
                        var$12 = var$9.$elementData.data[0];
                        while (var$12 !== null && var$12.$key !== null) {
                            var$12 = var$12.$next3;
                        }
                    } else {
                        d: {
                            if (!$rt_s(2022).$hashCode1) {
                                $var4 = 0;
                                while (true) {
                                    if ($var4 >= $rt_s(2022).$nativeString.length)
                                        break d;
                                    $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var4) | 0;
                                    $var4 = $var4 + 1 | 0;
                                }
                            }
                        }
                        $var4 = $rt_s(2022).$hashCode1;
                        var$10 = var$9.$elementData.data;
                        var$12 = var$10[$var4 & (var$10.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == $var4) {
                                e: {
                                    var$9 = var$12.$key;
                                    if ($rt_s(2022) !== var$9) {
                                        if ($rt_s(2022) === var$9)
                                            var$4 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$4 = $rt_s(2022).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break e;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                    }
                    var$4 = (var$12 === null ? null : var$12.$value0).$data0;
                }
                $var4 = var$4 & 255;
                if ($var4 >= 0 && $var4 < $this.$slotsCount) {
                    nms_ItemStack_$callClinit();
                    var$13 = new nms_ItemStack;
                    nms_ItemStack_readFromNBT(var$13, $var3);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[var$13.$itemID] === null)
                        var$13 = null;
                    $this.$inventoryContents.data[$var4] = var$13;
                    if (var$13 !== null && var$13.$stackSize > var$6)
                        var$13.$stackSize = var$7;
                    $ptr = 2;
                    continue main;
                }
                $var2 = $var2 + 1 | 0;
            }
            return;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    case 2:
        nms_InventoryBasic_onInventoryChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        f: {
            while (true) {
                $var2 = $var2 + 1 | 0;
                $var3 = $par1NBTTagList.$tagList;
                $var4 = $rt_compare($var2, $var3.$size0);
                if ($var4 >= 0)
                    break;
                if ($var2 < 0)
                    break f;
                if ($var4 >= 0)
                    break f;
                g: {
                    $var3 = $var3.$array.data[$var2];
                    var$9 = $var3.$tagMap;
                    if (!$rt_s(2022).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2022).$nativeString.length)
                                break g;
                            $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                $var4 = $rt_s(2022).$hashCode1;
                var$10 = var$9.$elementData.data;
                var$9 = var$10[$var4 & (var$10.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == $var4) {
                        h: {
                            var$11 = var$9.$key;
                            if ($rt_s(2022) !== var$11) {
                                if ($rt_s(2022) === var$11)
                                    var$4 = 1;
                                else if (!(var$11 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$11 = var$11;
                                    var$4 = $rt_s(2022).$nativeString !== var$11.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break h;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
                if (!(var$9 === null ? 0 : 1))
                    var$4 = 0;
                else {
                    var$9 = $var3.$tagMap;
                    if ($rt_s(2022) === null) {
                        var$12 = var$9.$elementData.data[0];
                        while (var$12 !== null && var$12.$key !== null) {
                            var$12 = var$12.$next3;
                        }
                    } else {
                        i: {
                            if (!$rt_s(2022).$hashCode1) {
                                $var4 = 0;
                                while (true) {
                                    if ($var4 >= $rt_s(2022).$nativeString.length)
                                        break i;
                                    $rt_s(2022).$hashCode1 = (31 * $rt_s(2022).$hashCode1 | 0) + $rt_s(2022).$nativeString.charCodeAt($var4) | 0;
                                    $var4 = $var4 + 1 | 0;
                                }
                            }
                        }
                        $var4 = $rt_s(2022).$hashCode1;
                        var$10 = var$9.$elementData.data;
                        var$12 = var$10[$var4 & (var$10.length - 1 | 0)];
                        while (var$12 !== null) {
                            if (var$12.$origKeyHash == $var4) {
                                j: {
                                    var$9 = var$12.$key;
                                    if ($rt_s(2022) !== var$9) {
                                        if ($rt_s(2022) === var$9)
                                            var$4 = 1;
                                        else if (!(var$9 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            var$9 = var$9;
                                            var$4 = $rt_s(2022).$nativeString !== var$9.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break j;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            var$12 = var$12.$next3;
                        }
                    }
                    var$4 = (var$12 === null ? null : var$12.$value0).$data0;
                }
                $var4 = var$4 & 255;
                if ($var4 < 0)
                    continue;
                if ($var4 >= $this.$slotsCount)
                    continue;
                else {
                    nms_ItemStack_$callClinit();
                    var$13 = new nms_ItemStack;
                    nms_ItemStack_readFromNBT(var$13, $var3);
                    nms_Item_$callClinit();
                    if (nms_Item_itemsList.data[var$13.$itemID] === null)
                        var$13 = null;
                    $this.$inventoryContents.data[$var4] = var$13;
                    if (var$13 !== null && var$13.$stackSize > var$6)
                        var$13.$stackSize = var$7;
                    continue main;
                }
            }
            return;
        }
        $par1NBTTagList = new jl_IndexOutOfBoundsException;
        $par1NBTTagList.$suppressionEnabled = 1;
        $par1NBTTagList.$writableStackTrace = 1;
        $rt_throw($par1NBTTagList);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagList, $var2, $var3, var$4, var$5, var$6, var$7, $var4, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_InventoryEnderChest_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$associatedChest;
        if (var$2 === null)
            return 1;
        $ptr = 1;
    case 1:
        $tmp = nms_TileEntityEnderChest_isUseableByPlayer(var$2, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return !var$3 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $ptr);
},
nms_InventoryEnderChest_openChest = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$associatedChest;
    if (var$1 !== null) {
        var$2 = var$1.$numUsingPlayers0 + 1 | 0;
        var$1.$numUsingPlayers0 = var$2;
        var$3 = var$1.$worldObj2;
        var$4 = var$1.$xCoord0;
        var$5 = var$1.$yCoord0;
        var$6 = var$1.$zCoord0;
        nms_Block_$callClinit();
        var$7 = nms_Block_enderChest.$blockID;
        var$1 = new nms_BlockEventData;
        var$1.$coordX = var$4;
        var$1.$coordY = var$5;
        var$1.$coordZ = var$6;
        var$1.$eventID = 1;
        var$1.$eventParameter = var$2;
        var$1.$blockID2 = var$7;
        var$8 = var$3.$blockEventCache.data[var$3.$blockEventCacheIndex];
        var$6 = 0;
        var$5 = var$8.$modCount;
        var$9 = var$8.$size();
        a: {
            while (true) {
                if (!(var$6 >= var$9 ? 0 : 1)) {
                    var$3 = var$3.$blockEventCache.data[var$3.$blockEventCacheIndex];
                    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
                    var$10 = var$3.$array.data;
                    var$4 = var$3.$size0;
                    var$3.$size0 = var$4 + 1 | 0;
                    var$10[var$4] = var$1;
                    var$3.$modCount = var$3.$modCount + 1 | 0;
                    break a;
                }
                if (var$5 < var$8.$modCount) {
                    var$1 = new ju_ConcurrentModificationException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$1);
                    $rt_throw(var$1);
                }
                var$4 = var$6 + 1 | 0;
                if (nms_BlockEventData_equals(var$8.$get(var$6), var$1))
                    break;
                var$6 = var$4;
            }
        }
    }
},
nms_InventoryEnderChest_closeChest = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$associatedChest;
    if (var$1 !== null) {
        var$2 = var$1.$numUsingPlayers0 - 1 | 0;
        var$1.$numUsingPlayers0 = var$2;
        var$3 = var$1.$worldObj2;
        var$4 = var$1.$xCoord0;
        var$5 = var$1.$yCoord0;
        var$6 = var$1.$zCoord0;
        nms_Block_$callClinit();
        var$7 = nms_Block_enderChest.$blockID;
        var$1 = new nms_BlockEventData;
        var$1.$coordX = var$4;
        var$1.$coordY = var$5;
        var$1.$coordZ = var$6;
        var$1.$eventID = 1;
        var$1.$eventParameter = var$2;
        var$1.$blockID2 = var$7;
        var$8 = var$3.$blockEventCache.data[var$3.$blockEventCacheIndex];
        var$5 = 0;
        var$2 = var$8.$modCount;
        var$4 = var$8.$size();
        a: {
            while (true) {
                if (!(var$5 >= var$4 ? 0 : 1)) {
                    var$3 = var$3.$blockEventCache.data[var$3.$blockEventCacheIndex];
                    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
                    var$9 = var$3.$array.data;
                    var$2 = var$3.$size0;
                    var$3.$size0 = var$2 + 1 | 0;
                    var$9[var$2] = var$1;
                    var$3.$modCount = var$3.$modCount + 1 | 0;
                    break a;
                }
                if (var$2 < var$8.$modCount) {
                    var$1 = new ju_ConcurrentModificationException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$1);
                    $rt_throw(var$1);
                }
                var$10 = var$5 + 1 | 0;
                if (nms_BlockEventData_equals(var$8.$get(var$5), var$1))
                    break;
                var$5 = var$10;
            }
        }
    }
    $this.$associatedChest = null;
};
function nms_FoodStats() {
    let a = this; jl_Object.call(a);
    a.$foodLevel = 0;
    a.$foodSaturationLevel = 0.0;
    a.$foodExhaustionLevel = 0.0;
    a.$foodTimer = 0;
    a.$prevFoodLevel = 0;
}
let nms_FoodStats__init_ = $this => {
    $this.$foodLevel = 20;
    $this.$foodSaturationLevel = 5.0;
    $this.$prevFoodLevel = 20;
},
nms_FoodStats__init_0 = () => {
    let var_0 = new nms_FoodStats();
    nms_FoodStats__init_(var_0);
    return var_0;
},
nms_FoodStats_onUpdate = ($this, $par1EntityPlayer) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1EntityPlayer.$worldObj.$difficultySetting;
        var$3 = $this.$foodLevel;
        $this.$prevFoodLevel = var$3;
        var$4 = $this.$foodExhaustionLevel;
        if (var$4 > 4.0) {
            $this.$foodExhaustionLevel = var$4 - 4.0;
            var$5 = $this.$foodSaturationLevel;
            if (var$5 > 0.0)
                $this.$foodSaturationLevel = jl_Math_maxImpl(var$5 - 1.0, 0.0);
            else if ($var2 > 0) {
                var$6 = var$3 - 1 | 0;
                var$3 = 0;
                if (var$6 > var$3)
                    var$3 = var$6;
                $this.$foodLevel = var$3;
            }
        }
        a: {
            var$7 = ($par1EntityPlayer.$worldObj.$worldInfo.$getGameRulesInstance()).$theGameRules.$root;
            var$8 = $rt_s(2007);
            var$9 = $rt_s(2007);
            if (var$8 !== var$9) {
                var$3 = var$8.$nativeString.length;
                var$10 = var$9.$nativeString.length;
                if (var$3 < var$10)
                    var$10 = var$3;
                var$6 = 0;
                b: {
                    while (true) {
                        if (var$6 >= var$10) {
                            var$8.$nativeString.length;
                            var$9.$nativeString.length;
                            break a;
                        }
                        if (var$6 < 0)
                            break b;
                        if (var$6 >= var$8.$nativeString.length)
                            break b;
                        var$11 = var$8.$nativeString.charCodeAt(var$6);
                        if (var$6 < 0)
                            break;
                        if (var$6 >= var$9.$nativeString.length)
                            break;
                        if (var$11 - var$9.$nativeString.charCodeAt(var$6) | 0)
                            break a;
                        var$6 = var$6 + 1 | 0;
                    }
                    $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                    jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
                    $rt_throw($par1EntityPlayer);
                }
                $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
                $rt_throw($par1EntityPlayer);
            }
        }
        var$8 = $rt_s(2007);
        c: {
            d: {
                e: while (true) {
                    if (var$7 === null) {
                        var$7 = null;
                        break c;
                    }
                    f: {
                        var$9 = var$7.$key0;
                        if (var$8 === var$9)
                            var$6 = 0;
                        else {
                            var$3 = var$8.$nativeString.length;
                            var$10 = var$9.$nativeString.length;
                            if (var$3 < var$10)
                                var$10 = var$3;
                            var$3 = 0;
                            while (true) {
                                if (var$3 >= var$10) {
                                    var$6 = var$8.$nativeString.length - var$9.$nativeString.length | 0;
                                    break f;
                                }
                                if (var$3 < 0)
                                    break d;
                                if (var$3 >= var$8.$nativeString.length)
                                    break d;
                                var$11 = var$8.$nativeString.charCodeAt(var$3);
                                if (var$3 < 0)
                                    break e;
                                if (var$3 >= var$9.$nativeString.length)
                                    break e;
                                var$6 = var$11 - var$9.$nativeString.charCodeAt(var$3) | 0;
                                if (var$6)
                                    break;
                                var$3 = var$3 + 1 | 0;
                            }
                        }
                    }
                    if (!var$6)
                        break c;
                    var$7 = var$6 >= 0 ? var$7.$right : var$7.$left;
                }
                $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
                jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
                $rt_throw($par1EntityPlayer);
            }
            $par1EntityPlayer = new jl_StringIndexOutOfBoundsException;
            jl_IndexOutOfBoundsException__init_($par1EntityPlayer);
            $rt_throw($par1EntityPlayer);
        }
        var$7 = var$7 === null ? null : var$7.$value2;
        var$6 = var$7 === null ? 0 : var$7.$valueBoolean;
        g: {
            h: {
                if (var$6 && $this.$foodLevel >= 18) {
                    var$7 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$9 = jl_Integer_integerCache.data[134];
                    if (var$9 === null) {
                        var$7 = var$7.$elementData.data[0];
                        while (var$7 !== null && var$7.$key !== null) {
                            var$7 = var$7.$next3;
                        }
                    } else {
                        var$11 = var$9.$value;
                        var$12 = var$7.$elementData.data;
                        var$7 = var$12[var$11 & (var$12.length - 1 | 0)];
                        while (var$7 !== null) {
                            if (var$7.$origKeyHash == var$11) {
                                var$8 = var$7.$key;
                                if (var$9 !== var$8 && !jl_Integer_equals(var$9, var$8) ? 0 : 1)
                                    break;
                            }
                            var$7 = var$7.$next3;
                        }
                    }
                    var$7 = var$7 === null ? null : var$7.$value0;
                    i: {
                        if (var$7.$watchedObject.$value3 > 0.0) {
                            var$7 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$9 = jl_Integer_integerCache.data[134];
                            if (var$9 === null) {
                                var$7 = var$7.$elementData.data[0];
                                while (var$7 !== null && var$7.$key !== null) {
                                    var$7 = var$7.$next3;
                                }
                            } else {
                                var$11 = var$9.$value;
                                var$12 = var$7.$elementData.data;
                                var$7 = var$12[var$11 & (var$12.length - 1 | 0)];
                                while (var$7 !== null) {
                                    if (var$7.$origKeyHash == var$11) {
                                        var$8 = var$7.$key;
                                        if (var$9 !== var$8 && !jl_Integer_equals(var$9, var$8) ? 0 : 1)
                                            break;
                                    }
                                    var$7 = var$7.$next3;
                                }
                            }
                            var$4 = (var$7 === null ? null : var$7.$value0).$watchedObject.$value3;
                            var$7 = nms_EntityLivingBase_getEntityAttribute($par1EntityPlayer, nms_SharedMonsterAttributes_maxHealth);
                            if (var$7.$field_111133_g) {
                                var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                                var$7.$field_111133_g = 0;
                            }
                            if (var$4 < var$7.$field_111139_h) {
                                var$6 = 1;
                                break i;
                            }
                        }
                        var$6 = 0;
                    }
                    if (var$6) {
                        var$6 = $this.$foodTimer + 1 | 0;
                        $this.$foodTimer = var$6;
                        if (var$6 < 80)
                            break h;
                        nms_EntityLivingBase_heal($par1EntityPlayer, 1.0);
                        $this.$foodExhaustionLevel = jl_Math_minImpl($this.$foodExhaustionLevel + 3.0, 40.0);
                        $this.$foodTimer = 0;
                        break h;
                    }
                }
                if ($this.$foodLevel > 0)
                    $this.$foodTimer = 0;
                else {
                    var$6 = $this.$foodTimer + 1 | 0;
                    $this.$foodTimer = var$6;
                    if (var$6 >= 80) {
                        var$7 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[134];
                        if (var$9 === null) {
                            var$7 = var$7.$elementData.data[0];
                            while (var$7 !== null && var$7.$key !== null) {
                                var$7 = var$7.$next3;
                            }
                        } else {
                            var$11 = var$9.$value;
                            var$12 = var$7.$elementData.data;
                            var$7 = var$12[var$11 & (var$12.length - 1 | 0)];
                            while (var$7 !== null) {
                                if (var$7.$origKeyHash == var$11) {
                                    var$8 = var$7.$key;
                                    if (var$9 !== var$8 && !(var$9 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$11 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$7 = var$7.$next3;
                            }
                        }
                        if ((var$7 === null ? null : var$7.$value0).$watchedObject.$value3 > 10.0)
                            break g;
                        if ($var2 >= 3)
                            break g;
                        var$7 = $par1EntityPlayer.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$9 = jl_Integer_integerCache.data[134];
                        if (var$9 === null) {
                            var$7 = var$7.$elementData.data[0];
                            while (var$7 !== null && var$7.$key !== null) {
                                var$7 = var$7.$next3;
                            }
                        } else {
                            var$11 = var$9.$value;
                            var$12 = var$7.$elementData.data;
                            var$7 = var$12[var$11 & (var$12.length - 1 | 0)];
                            while (var$7 !== null) {
                                if (var$7.$origKeyHash == var$11) {
                                    var$8 = var$7.$key;
                                    if (var$9 !== var$8 && !(var$9 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$11 ? 1 : 0) ? 0 : 1)
                                        break;
                                }
                                var$7 = var$7.$next3;
                            }
                        }
                        var$7 = var$7 === null ? null : var$7.$value0;
                        if (var$7.$watchedObject.$value3 > 1.0 && $var2 >= 2)
                            break g;
                        $this.$foodTimer = 0;
                    }
                }
            }
            return;
        }
        var$7 = nms_DamageSource_starve;
        var$5 = 1.0;
        $ptr = 1;
    case 1:
        nms_EntityPlayerMP_attackEntityFrom($par1EntityPlayer, var$7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$foodTimer = 0;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
};
function nms_Container() {
    let a = this; jl_Object.call(a);
    a.$inventoryItemStacks = null;
    a.$inventorySlots = null;
    a.$windowId = 0;
    a.$field_94535_f = 0;
    a.$field_94536_g = 0;
    a.$field_94537_h = null;
    a.$crafters = null;
    a.$playerList = null;
}
let nms_Container_addCraftingToCrafters = ($this, $par1ICrafting) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ICrafting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$crafters;
        var$3 = 0;
        var$4 = var$2.$modCount;
        var$5 = var$2.$size();
        a: {
            while (true) {
                if (!(var$3 >= var$5 ? 0 : 1)) {
                    var$3 = 0;
                    break a;
                }
                if (var$4 < var$2.$modCount)
                    break;
                var$6 = var$3 + 1 | 0;
                var$7 = var$2.$get(var$3);
                if (var$7 === $par1ICrafting ? 1 : var$7 !== null ? var$7.$equals($par1ICrafting) : $par1ICrafting !== null ? 0 : 1) {
                    var$3 = 1;
                    break a;
                }
                var$3 = var$6;
            }
            $par1ICrafting = new ju_ConcurrentModificationException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            $rt_throw($par1ICrafting);
        }
        if (var$3) {
            $par1ICrafting = new jl_IllegalArgumentException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            $par1ICrafting.$message = $rt_s(2628);
            $rt_throw($par1ICrafting);
        }
        b: {
            var$2 = $this.$crafters;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$8 = var$2.$array.data;
            var$6 = var$2.$size0;
            var$2.$size0 = var$6 + 1 | 0;
            var$8[var$6] = $par1ICrafting;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = nms_Container_getInventory($this);
            var$9 = $par1ICrafting.$playerNetServerHandler;
            var$7 = nms_Packet104WindowItems__init_($this.$windowId, var$2);
            if (var$7 instanceof nms_Packet3Chat) {
                var$2 = var$7;
                var$6 = var$9.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break b;
                if (var$6 == 1 && !var$2.$isServer)
                    break b;
            }
            try {
                var$2 = var$9.$netManager;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$9);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $par1ICrafting.$playerNetServerHandler;
        var$7 = new nms_Packet103SetSlot;
        var$9 = $par1ICrafting.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$7.$windowId1 = (-1);
        var$7.$itemSlot = (-1);
        if (var$9 !== null) {
            $par1ICrafting = new nms_ItemStack;
            var$3 = var$9.$itemID;
            var$6 = var$9.$stackSize;
            var$4 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            $par1ICrafting.$itemID = var$3;
            $par1ICrafting.$stackSize = var$6;
            $par1ICrafting.$itemDamage = var$4;
            if (var$4 < 0)
                $par1ICrafting.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$10 = new nms_NBTTagCompound;
                var$11 = var$9.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                var$10.$name = var$11;
                var$11 = new ju_HashMap;
                ju_AbstractMap__init_(var$11);
                var$3 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$11.$elementData = ju_HashMap_newElementArray(var$11, var$3);
                var$11.$loadFactor = 0.75;
                ju_HashMap_computeThreshold(var$11);
                var$10.$tagMap = var$11;
                var$11 = var$9.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    jl_Object__init_(var$12);
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$13 = var$11.$next();
                    var$12 = var$9.$tagMap;
                    if (var$13 === null) {
                        var$14 = var$12.$elementData.data[0];
                        while (var$14 !== null && var$14.$key !== null) {
                            var$14 = var$14.$next3;
                        }
                    } else {
                        c: {
                            if (!var$13.$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= var$13.$nativeString.length)
                                        break c;
                                    var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$3 = var$13.$hashCode1;
                        var$8 = var$12.$elementData.data;
                        var$14 = var$8[var$3 & (var$8.length - 1 | 0)];
                        while (var$14 !== null) {
                            if (var$14.$origKeyHash == var$3) {
                                var$12 = var$14.$key;
                                if (var$13 !== var$12 && !jl_String_equals(var$13, var$12) ? 0 : 1)
                                    break;
                            }
                            var$14 = var$14.$next3;
                        }
                    }
                    var$12 = var$14 === null ? null : var$14.$value0;
                    var$12 = var$12.$copy();
                    var$14 = var$10.$tagMap;
                    if (var$13 !== null)
                        var$12.$name = var$13;
                    else
                        var$12.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$14, var$13, var$12);
                }
                $par1ICrafting.$stackTagCompound = var$10;
            }
            var$9 = $par1ICrafting;
        }
        d: {
            var$7.$myItemStack = var$9;
            if (var$7 instanceof nms_Packet3Chat) {
                $par1ICrafting = var$7;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break d;
                if (var$6 == 1 && !$par1ICrafting.$isServer)
                    break d;
            }
            try {
                $par1ICrafting = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$7);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        $ptr = 3;
        continue main;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$9 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$9);
                var$9.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$7, var$9);
                var$7.$sb = jl_StringBuilder__init_();
                var$7.$buffer0 = $rt_createCharArray(32);
                var$7.$autoFlush = 0;
                var$7.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $par1ICrafting.$playerNetServerHandler;
        var$7 = new nms_Packet103SetSlot;
        var$9 = $par1ICrafting.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$7.$windowId1 = (-1);
        var$7.$itemSlot = (-1);
        if (var$9 !== null) {
            $par1ICrafting = new nms_ItemStack;
            var$3 = var$9.$itemID;
            var$6 = var$9.$stackSize;
            var$4 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            $par1ICrafting.$itemID = var$3;
            $par1ICrafting.$stackSize = var$6;
            $par1ICrafting.$itemDamage = var$4;
            if (var$4 < 0)
                $par1ICrafting.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$10 = new nms_NBTTagCompound;
                var$11 = var$9.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                var$10.$name = var$11;
                var$11 = new ju_HashMap;
                ju_AbstractMap__init_(var$11);
                var$3 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$11.$elementData = ju_HashMap_newElementArray(var$11, var$3);
                var$11.$loadFactor = 0.75;
                ju_HashMap_computeThreshold(var$11);
                var$10.$tagMap = var$11;
                var$11 = var$9.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    jl_Object__init_(var$12);
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$13 = var$11.$next();
                    var$12 = var$9.$tagMap;
                    if (var$13 === null) {
                        var$14 = var$12.$elementData.data[0];
                        while (var$14 !== null && var$14.$key !== null) {
                            var$14 = var$14.$next3;
                        }
                    } else {
                        e: {
                            if (!var$13.$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= var$13.$nativeString.length)
                                        break e;
                                    var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$3 = var$13.$hashCode1;
                        var$8 = var$12.$elementData.data;
                        var$14 = var$8[var$3 & (var$8.length - 1 | 0)];
                        while (var$14 !== null) {
                            if (var$14.$origKeyHash == var$3) {
                                var$12 = var$14.$key;
                                if (var$13 !== var$12 && !jl_String_equals(var$13, var$12) ? 0 : 1)
                                    break;
                            }
                            var$14 = var$14.$next3;
                        }
                    }
                    var$12 = var$14 === null ? null : var$14.$value0;
                    var$12 = var$12.$copy();
                    var$14 = var$10.$tagMap;
                    if (var$13 !== null)
                        var$12.$name = var$13;
                    else
                        var$12.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$14, var$13, var$12);
                }
                $par1ICrafting.$stackTagCompound = var$10;
            }
            var$9 = $par1ICrafting;
        }
        f: {
            var$7.$myItemStack = var$9;
            if (var$7 instanceof nms_Packet3Chat) {
                $par1ICrafting = var$7;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break f;
                if (var$6 == 1 && !$par1ICrafting.$isServer)
                    break f;
            }
            try {
                $par1ICrafting = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$7);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        $ptr = 3;
        continue main;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ICrafting, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$7);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        $ptr = 3;
    case 3:
        $this.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICrafting, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_Container_getInventory = $this => {
    let $var1, $var2, var$3, var$4, var$5, var$6, var$7;
    $var1 = new ju_ArrayList;
    $var1.$array = $rt_createArray(jl_Object, 10);
    $var2 = 0;
    a: {
        while (true) {
            var$3 = $this.$inventorySlots;
            var$4 = $rt_compare($var2, var$3.$size0);
            if (var$4 >= 0)
                break;
            if ($var2 < 0)
                break a;
            if (var$4 >= 0)
                break a;
            var$5 = var$3.$array.data[$var2];
            var$3 = var$5.$inventory.$getStackInSlot(var$5.$slotIndex);
            ju_ArrayList_ensureCapacity($var1, $var1.$size0 + 1 | 0);
            var$6 = $var1.$array.data;
            var$7 = $var1.$size0;
            $var1.$size0 = var$7 + 1 | 0;
            var$6[var$7] = var$3;
            $var1.$modCount = $var1.$modCount + 1 | 0;
            $var2 = $var2 + 1 | 0;
        }
        return $var1;
    }
    $var1 = new jl_IndexOutOfBoundsException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $rt_throw($var1);
},
nms_Container_detectAndSendChanges = $this => {
    let $var1, $var3, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var4, var$15, var$16, var$17, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var4 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        a: {
            b: {
                c: {
                    d: {
                        e: {
                            while (true) {
                                $var3 = $this.$inventorySlots;
                                var$3 = $rt_compare($var1, $var3.$size0);
                                if (var$3 >= 0)
                                    break;
                                if ($var1 < 0)
                                    break d;
                                if (var$3 >= 0)
                                    break d;
                                $var3 = $var3.$array.data[$var1];
                                $var2 = $var3.$inventory.$getStackInSlot($var3.$slotIndex);
                                $var3 = $this.$inventoryItemStacks;
                                if ($var1 < 0)
                                    break e;
                                if ($var1 >= $var3.$size0)
                                    break e;
                                $var3 = $var3.$array.data[$var1];
                                nms_ItemStack_$callClinit();
                                var$3 = $var3 === null && $var2 === null ? 1 : $var3 !== null && $var2 !== null ? nms_ItemStack_isItemStackEqual($var3, $var2) : 0;
                                f: {
                                    if (!var$3) {
                                        if ($var2 === null)
                                            $var3 = null;
                                        else {
                                            $var3 = new nms_ItemStack;
                                            var$3 = $var2.$itemID;
                                            var$5 = $var2.$stackSize;
                                            var$6 = $var2.$itemDamage;
                                            $var3.$itemID = var$3;
                                            $var3.$stackSize = var$5;
                                            $var3.$itemDamage = var$6;
                                            if (var$6 < 0)
                                                $var3.$itemDamage = 0;
                                            $var2 = $var2.$stackTagCompound;
                                            if ($var2 !== null) {
                                                var$7 = new nms_NBTTagCompound;
                                                var$8 = $var2.$name;
                                                if (var$8 === null)
                                                    var$8 = $rt_s(3);
                                                var$7.$name = var$8;
                                                var$8 = new ju_HashMap;
                                                var$3 = ju_HashMap_calculateCapacity(16);
                                                var$8.$elementCount = 0;
                                                var$9 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                                                var$10 = var$9.data;
                                                var$8.$elementData = var$9;
                                                var$8.$loadFactor = 0.75;
                                                var$8.$threshold = var$10.length * 0.75 | 0;
                                                var$7.$tagMap = var$8;
                                                var$8 = $var2.$tagMap;
                                                if (var$8.$cachedKeySet === null) {
                                                    var$11 = new ju_HashMap$1;
                                                    var$11.$this$0 = var$8;
                                                    var$8.$cachedKeySet = var$11;
                                                }
                                                var$8 = var$8.$cachedKeySet.$iterator();
                                                while (var$8.$hasNext()) {
                                                    var$11 = var$8.$next();
                                                    var$12 = $var2.$tagMap;
                                                    if (var$11 === null) {
                                                        var$12 = var$12.$elementData.data[0];
                                                        while (var$12 !== null && var$12.$key !== null) {
                                                            var$12 = var$12.$next3;
                                                        }
                                                    } else {
                                                        g: {
                                                            if (!var$11.$hashCode1) {
                                                                var$3 = 0;
                                                                while (true) {
                                                                    if (var$3 >= var$11.$nativeString.length)
                                                                        break g;
                                                                    var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$3) | 0;
                                                                    var$3 = var$3 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        var$6 = var$11.$hashCode1;
                                                        var$10 = var$12.$elementData.data;
                                                        var$12 = var$10[var$6 & (var$10.length - 1 | 0)];
                                                        while (var$12 !== null) {
                                                            if (var$12.$origKeyHash == var$6) {
                                                                h: {
                                                                    var$13 = var$12.$key;
                                                                    if (var$11 !== var$13) {
                                                                        if (var$11 === var$13)
                                                                            var$3 = 1;
                                                                        else if (!(var$13 instanceof jl_String))
                                                                            var$3 = 0;
                                                                        else {
                                                                            var$13 = var$13;
                                                                            var$3 = var$11.$nativeString !== var$13.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!var$3) {
                                                                            var$3 = 0;
                                                                            break h;
                                                                        }
                                                                    }
                                                                    var$3 = 1;
                                                                }
                                                                if (var$3)
                                                                    break;
                                                            }
                                                            var$12 = var$12.$next3;
                                                        }
                                                    }
                                                    var$12 = var$12 === null ? null : var$12.$value0;
                                                    var$12 = var$12.$copy();
                                                    var$13 = var$7.$tagMap;
                                                    if (var$11 !== null)
                                                        var$12.$name = var$11;
                                                    else
                                                        var$12.$name = $rt_s(3);
                                                    ju_HashMap_putImpl(var$13, var$11, var$12);
                                                }
                                                $var3.$stackTagCompound = var$7;
                                            }
                                        }
                                        $var2 = $this.$inventoryItemStacks;
                                        if ($var1 < 0)
                                            break c;
                                        if ($var1 >= $var2.$size0)
                                            break c;
                                        $var2.$array.data[$var1] = $var3;
                                        $var4 = 0;
                                        while (true) {
                                            $var2 = $this.$crafters;
                                            var$3 = $rt_compare($var4, $var2.$size0);
                                            if (var$3 >= 0)
                                                break f;
                                            if ($var4 < 0)
                                                break a;
                                            if (var$3 >= 0)
                                                break a;
                                            $var2 = $var2.$array.data[$var4];
                                            var$7 = $this.$inventorySlots;
                                            if ($var1 < 0)
                                                break b;
                                            if ($var1 >= var$7.$size0)
                                                break b;
                                            if (!(var$7.$array.data[$var1] instanceof nms_SlotCrafting) && !$var2.$playerInventoryBeingManipulated) {
                                                var$15 = $var2.$playerNetServerHandler;
                                                var$16 = new nms_Packet103SetSlot;
                                                var$3 = $this.$windowId;
                                                nms_Packet_$callClinit();
                                                nles_SysUtil_$callClinit();
                                                var$16.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                                var$16.$windowId1 = var$3;
                                                var$16.$itemSlot = $var1;
                                                if ($var3 === null)
                                                    $var2 = $var3;
                                                else {
                                                    $var2 = new nms_ItemStack;
                                                    var$3 = $var3.$itemID;
                                                    var$5 = $var3.$stackSize;
                                                    var$6 = $var3.$itemDamage;
                                                    $var2.$itemID = var$3;
                                                    $var2.$stackSize = var$5;
                                                    $var2.$itemDamage = var$6;
                                                    if (var$6 < 0)
                                                        $var2.$itemDamage = 0;
                                                    var$7 = $var3.$stackTagCompound;
                                                    if (var$7 !== null) {
                                                        var$8 = new nms_NBTTagCompound;
                                                        var$11 = var$7.$name;
                                                        if (var$11 === null)
                                                            var$11 = $rt_s(3);
                                                        var$8.$name = var$11;
                                                        var$11 = new ju_HashMap;
                                                        ju_AbstractMap__init_(var$11);
                                                        var$3 = ju_HashMap_calculateCapacity(16);
                                                        var$11.$elementCount = 0;
                                                        var$11.$elementData = ju_HashMap_newElementArray(var$11, var$3);
                                                        var$11.$loadFactor = 0.75;
                                                        ju_HashMap_computeThreshold(var$11);
                                                        var$8.$tagMap = var$11;
                                                        var$11 = var$7.$tagMap;
                                                        if (var$11.$cachedKeySet === null) {
                                                            var$12 = new ju_HashMap$1;
                                                            var$12.$this$0 = var$11;
                                                            jl_Object__init_(var$12);
                                                            var$11.$cachedKeySet = var$12;
                                                        }
                                                        var$11 = var$11.$cachedKeySet.$iterator();
                                                        while (var$11.$hasNext()) {
                                                            var$12 = var$11.$next();
                                                            var$13 = var$7.$tagMap;
                                                            if (var$12 === null) {
                                                                var$13 = var$13.$elementData.data[0];
                                                                while (var$13 !== null && var$13.$key !== null) {
                                                                    var$13 = var$13.$next3;
                                                                }
                                                            } else {
                                                                i: {
                                                                    if (!var$12.$hashCode1) {
                                                                        var$5 = 0;
                                                                        while (true) {
                                                                            if (var$5 >= var$12.$nativeString.length)
                                                                                break i;
                                                                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$5) | 0;
                                                                            var$5 = var$5 + 1 | 0;
                                                                        }
                                                                    }
                                                                }
                                                                var$6 = var$12.$hashCode1;
                                                                var$10 = var$13.$elementData.data;
                                                                var$13 = var$10[var$6 & (var$10.length - 1 | 0)];
                                                                while (var$13 !== null) {
                                                                    if (var$13.$origKeyHash == var$6) {
                                                                        var$17 = var$13.$key;
                                                                        if (var$12 !== var$17 && !jl_String_equals(var$12, var$17) ? 0 : 1)
                                                                            break;
                                                                    }
                                                                    var$13 = var$13.$next3;
                                                                }
                                                            }
                                                            var$13 = var$13 === null ? null : var$13.$value0;
                                                            var$13 = var$13.$copy();
                                                            var$17 = var$8.$tagMap;
                                                            if (var$12 !== null)
                                                                var$13.$name = var$12;
                                                            else
                                                                var$13.$name = $rt_s(3);
                                                            ju_HashMap_putImpl(var$17, var$12, var$13);
                                                        }
                                                        $var2.$stackTagCompound = var$8;
                                                    }
                                                }
                                                j: {
                                                    var$16.$myItemStack = $var2;
                                                    if (var$16 instanceof nms_Packet3Chat) {
                                                        $var2 = var$16;
                                                        var$5 = var$15.$playerEntity.$chatVisibility;
                                                        if (var$5 == 2)
                                                            break j;
                                                        if (var$5 == 1 && !$var2.$isServer)
                                                            break j;
                                                    }
                                                    try {
                                                        $var2 = var$15.$netManager;
                                                        $ptr = 1;
                                                        continue main;
                                                    } catch ($$e) {
                                                        $$je = $rt_wrapException($$e);
                                                        if ($$je instanceof jl_Exception) {
                                                            $var2 = $$je;
                                                        } else {
                                                            throw $$e;
                                                        }
                                                    }
                                                    if (jl_System_errCache === null) {
                                                        var$7 = new otcic_JSStderrPrintStream;
                                                        var$8 = new ji_ByteArrayOutputStream;
                                                        ji_OutputStream__init_(var$8);
                                                        var$8.$buf = $rt_createByteArray(32);
                                                        ji_FilterOutputStream__init_(var$7, var$8);
                                                        var$7.$sb = jl_StringBuilder__init_();
                                                        var$7.$buffer0 = $rt_createCharArray(32);
                                                        var$7.$autoFlush = 0;
                                                        var$7.$charset = jnci_UTF8Charset_INSTANCE;
                                                        jl_System_errCache = var$7;
                                                    }
                                                    jl_Throwable_printStackTrace($var2, jl_System_errCache);
                                                }
                                            }
                                            $var4 = $var4 + 1 | 0;
                                        }
                                    }
                                }
                                $var1 = $var1 + 1 | 0;
                            }
                            return;
                        }
                        $var3 = new jl_IndexOutOfBoundsException;
                        $var3.$suppressionEnabled = 1;
                        $var3.$writableStackTrace = 1;
                        $rt_throw($var3);
                    }
                    $var3 = new jl_IndexOutOfBoundsException;
                    $var3.$suppressionEnabled = 1;
                    $var3.$writableStackTrace = 1;
                    $rt_throw($var3);
                }
                $var3 = new jl_IndexOutOfBoundsException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $rt_throw($var3);
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var2, var$16);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$7 = jl_System_errCache;
            if (var$7 === null) {
                var$7 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                var$3 = 32;
                ji_OutputStream__init_(var$8);
                var$10 = $rt_createByteArray(var$3);
                var$8.$buf = var$10;
                var$3 = 0;
                ji_FilterOutputStream__init_(var$7, var$8);
                var$8 = jl_StringBuilder__init_();
                var$7.$sb = var$8;
                var$5 = 32;
                var$10 = $rt_createCharArray(var$5);
                var$7.$buffer0 = var$10;
                var$7.$autoFlush = var$3;
                var$8 = jnci_UTF8Charset_INSTANCE;
                var$7.$charset = var$8;
                jl_System_errCache = var$7;
            }
            var$7 = jl_System_errCache;
            jl_Throwable_printStackTrace($var2, var$7);
        }
        d: {
            e: {
                k: {
                    l: {
                        m: {
                            n: while (true) {
                                while (true) {
                                    while (true) {
                                        $var4 = $var4 + 1 | 0;
                                        while (true) {
                                            $var2 = $this.$crafters;
                                            var$3 = $rt_compare($var4, $var2.$size0);
                                            if (var$3 < 0)
                                                break;
                                            while (true) {
                                                $var1 = $var1 + 1 | 0;
                                                $var3 = $this.$inventorySlots;
                                                var$3 = $rt_compare($var1, $var3.$size0);
                                                if (var$3 >= 0)
                                                    break n;
                                                if ($var1 < 0)
                                                    break d;
                                                if (var$3 >= 0)
                                                    break d;
                                                $var3 = $var3.$array.data[$var1];
                                                $var2 = $var3.$inventory.$getStackInSlot($var3.$slotIndex);
                                                $var3 = $this.$inventoryItemStacks;
                                                if ($var1 < 0)
                                                    break e;
                                                if ($var1 >= $var3.$size0)
                                                    break e;
                                                $var3 = $var3.$array.data[$var1];
                                                nms_ItemStack_$callClinit();
                                                if ($var3 === null && $var2 === null ? 1 : $var3 !== null && $var2 !== null ? nms_ItemStack_isItemStackEqual($var3, $var2) : 0)
                                                    continue;
                                                else
                                                    break;
                                            }
                                            if ($var2 === null)
                                                $var3 = null;
                                            else {
                                                $var3 = new nms_ItemStack;
                                                var$3 = $var2.$itemID;
                                                var$5 = $var2.$stackSize;
                                                var$6 = $var2.$itemDamage;
                                                $var3.$itemID = var$3;
                                                $var3.$stackSize = var$5;
                                                $var3.$itemDamage = var$6;
                                                if (var$6 < 0)
                                                    $var3.$itemDamage = 0;
                                                $var2 = $var2.$stackTagCompound;
                                                if ($var2 !== null) {
                                                    var$7 = new nms_NBTTagCompound;
                                                    var$8 = $var2.$name;
                                                    if (var$8 === null)
                                                        var$8 = $rt_s(3);
                                                    var$7.$name = var$8;
                                                    var$8 = new ju_HashMap;
                                                    var$3 = ju_HashMap_calculateCapacity(16);
                                                    var$8.$elementCount = 0;
                                                    var$9 = $rt_createArray(ju_HashMap$HashEntry, var$3);
                                                    var$10 = var$9.data;
                                                    var$8.$elementData = var$9;
                                                    var$8.$loadFactor = 0.75;
                                                    var$8.$threshold = var$10.length * 0.75 | 0;
                                                    var$7.$tagMap = var$8;
                                                    var$8 = $var2.$tagMap;
                                                    if (var$8.$cachedKeySet === null) {
                                                        var$11 = new ju_HashMap$1;
                                                        var$11.$this$0 = var$8;
                                                        var$8.$cachedKeySet = var$11;
                                                    }
                                                    var$8 = var$8.$cachedKeySet.$iterator();
                                                    while (var$8.$hasNext()) {
                                                        var$11 = var$8.$next();
                                                        var$12 = $var2.$tagMap;
                                                        if (var$11 === null) {
                                                            var$12 = var$12.$elementData.data[0];
                                                            while (var$12 !== null && var$12.$key !== null) {
                                                                var$12 = var$12.$next3;
                                                            }
                                                        } else {
                                                            o: {
                                                                if (!var$11.$hashCode1) {
                                                                    var$3 = 0;
                                                                    while (true) {
                                                                        if (var$3 >= var$11.$nativeString.length)
                                                                            break o;
                                                                        var$11.$hashCode1 = (31 * var$11.$hashCode1 | 0) + var$11.$nativeString.charCodeAt(var$3) | 0;
                                                                        var$3 = var$3 + 1 | 0;
                                                                    }
                                                                }
                                                            }
                                                            var$6 = var$11.$hashCode1;
                                                            var$10 = var$12.$elementData.data;
                                                            var$12 = var$10[var$6 & (var$10.length - 1 | 0)];
                                                            while (var$12 !== null) {
                                                                if (var$12.$origKeyHash == var$6) {
                                                                    p: {
                                                                        var$13 = var$12.$key;
                                                                        if (var$11 !== var$13) {
                                                                            if (var$11 === var$13)
                                                                                var$3 = 1;
                                                                            else if (!(var$13 instanceof jl_String))
                                                                                var$3 = 0;
                                                                            else {
                                                                                var$13 = var$13;
                                                                                var$3 = var$11.$nativeString !== var$13.$nativeString ? 0 : 1;
                                                                            }
                                                                            if (!var$3) {
                                                                                var$3 = 0;
                                                                                break p;
                                                                            }
                                                                        }
                                                                        var$3 = 1;
                                                                    }
                                                                    if (var$3)
                                                                        break;
                                                                }
                                                                var$12 = var$12.$next3;
                                                            }
                                                        }
                                                        var$12 = var$12 === null ? null : var$12.$value0;
                                                        var$12 = var$12.$copy();
                                                        var$13 = var$7.$tagMap;
                                                        if (var$11 !== null)
                                                            var$12.$name = var$11;
                                                        else
                                                            var$12.$name = $rt_s(3);
                                                        ju_HashMap_putImpl(var$13, var$11, var$12);
                                                    }
                                                    $var3.$stackTagCompound = var$7;
                                                }
                                            }
                                            $var2 = $this.$inventoryItemStacks;
                                            if ($var1 < 0)
                                                break k;
                                            if ($var1 >= $var2.$size0)
                                                break k;
                                            $var2.$array.data[$var1] = $var3;
                                            $var4 = 0;
                                        }
                                        if ($var4 < 0)
                                            break l;
                                        if (var$3 >= 0)
                                            break l;
                                        $var2 = $var2.$array.data[$var4];
                                        var$7 = $this.$inventorySlots;
                                        if ($var1 < 0)
                                            break m;
                                        if ($var1 >= var$7.$size0)
                                            break m;
                                        if (var$7.$array.data[$var1] instanceof nms_SlotCrafting)
                                            continue;
                                        if ($var2.$playerInventoryBeingManipulated)
                                            continue;
                                        else
                                            break;
                                    }
                                    var$15 = $var2.$playerNetServerHandler;
                                    var$16 = new nms_Packet103SetSlot;
                                    var$3 = $this.$windowId;
                                    nms_Packet_$callClinit();
                                    nles_SysUtil_$callClinit();
                                    var$16.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                                    var$16.$windowId1 = var$3;
                                    var$16.$itemSlot = $var1;
                                    if ($var3 === null)
                                        $var2 = $var3;
                                    else {
                                        $var2 = new nms_ItemStack;
                                        var$3 = $var3.$itemID;
                                        var$5 = $var3.$stackSize;
                                        var$6 = $var3.$itemDamage;
                                        $var2.$itemID = var$3;
                                        $var2.$stackSize = var$5;
                                        $var2.$itemDamage = var$6;
                                        if (var$6 < 0)
                                            $var2.$itemDamage = 0;
                                        var$7 = $var3.$stackTagCompound;
                                        if (var$7 !== null) {
                                            var$8 = new nms_NBTTagCompound;
                                            var$11 = var$7.$name;
                                            if (var$11 === null)
                                                var$11 = $rt_s(3);
                                            var$8.$name = var$11;
                                            var$11 = new ju_HashMap;
                                            ju_AbstractMap__init_(var$11);
                                            var$3 = ju_HashMap_calculateCapacity(16);
                                            var$11.$elementCount = 0;
                                            var$11.$elementData = ju_HashMap_newElementArray(var$11, var$3);
                                            var$11.$loadFactor = 0.75;
                                            ju_HashMap_computeThreshold(var$11);
                                            var$8.$tagMap = var$11;
                                            var$11 = var$7.$tagMap;
                                            if (var$11.$cachedKeySet === null) {
                                                var$12 = new ju_HashMap$1;
                                                var$12.$this$0 = var$11;
                                                jl_Object__init_(var$12);
                                                var$11.$cachedKeySet = var$12;
                                            }
                                            var$11 = var$11.$cachedKeySet.$iterator();
                                            while (var$11.$hasNext()) {
                                                var$12 = var$11.$next();
                                                var$13 = var$7.$tagMap;
                                                if (var$12 === null) {
                                                    var$13 = var$13.$elementData.data[0];
                                                    while (var$13 !== null && var$13.$key !== null) {
                                                        var$13 = var$13.$next3;
                                                    }
                                                } else {
                                                    q: {
                                                        if (!var$12.$hashCode1) {
                                                            var$5 = 0;
                                                            while (true) {
                                                                if (var$5 >= var$12.$nativeString.length)
                                                                    break q;
                                                                var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$5) | 0;
                                                                var$5 = var$5 + 1 | 0;
                                                            }
                                                        }
                                                    }
                                                    var$6 = var$12.$hashCode1;
                                                    var$10 = var$13.$elementData.data;
                                                    var$13 = var$10[var$6 & (var$10.length - 1 | 0)];
                                                    while (var$13 !== null) {
                                                        if (var$13.$origKeyHash == var$6) {
                                                            var$17 = var$13.$key;
                                                            if (var$12 !== var$17 && !jl_String_equals(var$12, var$17) ? 0 : 1)
                                                                break;
                                                        }
                                                        var$13 = var$13.$next3;
                                                    }
                                                }
                                                var$13 = var$13 === null ? null : var$13.$value0;
                                                var$13 = var$13.$copy();
                                                var$17 = var$8.$tagMap;
                                                if (var$12 !== null)
                                                    var$13.$name = var$12;
                                                else
                                                    var$13.$name = $rt_s(3);
                                                ju_HashMap_putImpl(var$17, var$12, var$13);
                                            }
                                            $var2.$stackTagCompound = var$8;
                                        }
                                    }
                                    var$16.$myItemStack = $var2;
                                    if (!(var$16 instanceof nms_Packet3Chat))
                                        break;
                                    $var2 = var$16;
                                    var$5 = var$15.$playerEntity.$chatVisibility;
                                    if (var$5 == 2)
                                        continue;
                                    if (var$5 != 1)
                                        break;
                                    if ($var2.$isServer)
                                        break;
                                }
                                try {
                                    $var2 = var$15.$netManager;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        $var2 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                var$7 = jl_System_errCache;
                                if (var$7 === null) {
                                    var$7 = new otcic_JSStderrPrintStream;
                                    var$8 = new ji_ByteArrayOutputStream;
                                    var$3 = 32;
                                    ji_OutputStream__init_(var$8);
                                    var$10 = $rt_createByteArray(var$3);
                                    var$8.$buf = var$10;
                                    var$3 = 0;
                                    ji_FilterOutputStream__init_(var$7, var$8);
                                    var$8 = jl_StringBuilder__init_();
                                    var$7.$sb = var$8;
                                    var$5 = 32;
                                    var$10 = $rt_createCharArray(var$5);
                                    var$7.$buffer0 = var$10;
                                    var$7.$autoFlush = var$3;
                                    var$8 = jnci_UTF8Charset_INSTANCE;
                                    var$7.$charset = var$8;
                                    jl_System_errCache = var$7;
                                }
                                var$7 = jl_System_errCache;
                                jl_Throwable_printStackTrace($var2, var$7);
                            }
                            return;
                        }
                        $var3 = new jl_IndexOutOfBoundsException;
                        $var3.$suppressionEnabled = 1;
                        $var3.$writableStackTrace = 1;
                        $rt_throw($var3);
                    }
                    $var3 = new jl_IndexOutOfBoundsException;
                    $var3.$suppressionEnabled = 1;
                    $var3.$writableStackTrace = 1;
                    $rt_throw($var3);
                }
                $var3 = new jl_IndexOutOfBoundsException;
                $var3.$suppressionEnabled = 1;
                $var3.$writableStackTrace = 1;
                $rt_throw($var3);
            }
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            $rt_throw($var3);
        }
        $var3 = new jl_IndexOutOfBoundsException;
        $var3.$suppressionEnabled = 1;
        $var3.$writableStackTrace = 1;
        $rt_throw($var3);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var3, var$3, $var2, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var4, var$15, var$16, var$17, $ptr);
},
nms_Container_enchantItem = ($this, $par1EntityPlayer, $par2) => {
    return 0;
},
nms_Container_getSlotFromInventory = ($this, $par1IInventory, $par2) => {
    let $var3, $var4, var$5;
    $var3 = 0;
    a: {
        while (true) {
            $var4 = $this.$inventorySlots;
            var$5 = $rt_compare($var3, $var4.$size0);
            if (var$5 >= 0)
                return null;
            if ($var3 < 0)
                break a;
            if (var$5 >= 0)
                break a;
            $var4 = $var4.$array.data[$var3];
            if ($par1IInventory === $var4.$inventory && $par2 == $var4.$slotIndex ? 1 : 0)
                break;
            $var3 = $var3 + 1 | 0;
        }
        return $var4;
    }
    $par1IInventory = new jl_IndexOutOfBoundsException;
    $par1IInventory.$suppressionEnabled = 1;
    $par1IInventory.$writableStackTrace = 1;
    $rt_throw($par1IInventory);
},
nms_Container_getSlot = ($this, $par1) => {
    let var$2;
    var$2 = $this.$inventorySlots;
    if ($par1 >= 0 && $par1 < var$2.$size0)
        return var$2.$array.data[$par1];
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    $rt_throw(var$2);
},
nms_Container_slotClick = ($this, $par1, $par2, $par3, $par4EntityPlayer) => {
    let $var5, $var6, $var7, $var12, var$9, $var8, $var17, $var17_0, var$13, $var16, $var22, $var16_0, $var9, $var10, $var11, $var13, var$21, $var18, $var19, $var22_0, $var20, $var21, $var23, $var24, $var14, $var14_0, $var9_0, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();$var9_0 = $thread.pop();$var14_0 = $thread.pop();$var14 = $thread.pop();$var24 = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();$var20 = $thread.pop();$var22_0 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();var$21 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var16_0 = $thread.pop();$var22 = $thread.pop();$var16 = $thread.pop();var$13 = $thread.pop();$var17_0 = $thread.pop();$var17
        = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var12 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4EntityPlayer = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var5 = null;
            $var6 = $par4EntityPlayer.$inventory0;
            if ($par3 == 5)
                b: {
                    $var7 = $this.$field_94536_g;
                    $par3 = $par2 & 3;
                    $this.$field_94536_g = $par3;
                    if (!($var7 == 1 && $par3 == 2) && $var7 != $par3)
                        nms_Container_func_94533_d($this);
                    else {
                        $var12 = $var6.$itemStack;
                        if ($var12 === null)
                            nms_Container_func_94533_d($this);
                        else if (!$par3) {
                            $par2 = $par2 >> 2 & 3;
                            $this.$field_94535_f = $par2;
                            if (!($par2 && $par2 != 1 ? 0 : 1))
                                nms_Container_func_94533_d($this);
                            else {
                                $this.$field_94536_g = 1;
                                $par4EntityPlayer = $this.$field_94537_h.$backingMap;
                                if ($par4EntityPlayer.$elementCount > 0) {
                                    $par4EntityPlayer.$elementCount = 0;
                                    var$9 = $par4EntityPlayer.$elementData.data;
                                    $var12 = null;
                                    $par1 = 0;
                                    $par2 = var$9.length;
                                    if ($par1 > $par2) {
                                        $par4EntityPlayer = new jl_IllegalArgumentException;
                                        $par4EntityPlayer.$suppressionEnabled = 1;
                                        $par4EntityPlayer.$writableStackTrace = 1;
                                        jl_Throwable_fillInStackTrace($par4EntityPlayer);
                                        $rt_throw($par4EntityPlayer);
                                    }
                                    while ($par1 < $par2) {
                                        $par3 = $par1 + 1 | 0;
                                        var$9[$par1] = $var12;
                                        $par1 = $par3;
                                    }
                                    $par4EntityPlayer.$modCount1 = $par4EntityPlayer.$modCount1 + 1 | 0;
                                }
                            }
                        } else {
                            if ($par3 == 1) {
                                $par4EntityPlayer = $this.$inventorySlots;
                                if ($par1 >= 0 && $par1 < $par4EntityPlayer.$size0) {
                                    $var8 = $par4EntityPlayer.$array.data[$par1];
                                    if ($var8 !== null && nms_Container_func_94527_a($var8, $var12, 1) && $var8.$isItemValid($var6.$itemStack)) {
                                        $par2 = $var6.$itemStack.$stackSize;
                                        $var12 = $this.$field_94537_h;
                                        $par4EntityPlayer = $var12.$backingMap;
                                        if ($par2 > $par4EntityPlayer.$elementCount)
                                            ju_HashMap_putImpl($par4EntityPlayer, $var8, $var12);
                                    }
                                    break b;
                                }
                                $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                                $par4EntityPlayer.$suppressionEnabled = 1;
                                $par4EntityPlayer.$writableStackTrace = 1;
                                $rt_throw($par4EntityPlayer);
                            }
                            if ($par3 != 2)
                                nms_Container_func_94533_d($this);
                            else {
                                if (!($this.$field_94537_h.$backingMap.$elementCount ? 0 : 1)) {
                                    $var17 = new nms_ItemStack;
                                    $par1 = $var12.$itemID;
                                    $par2 = $var12.$stackSize;
                                    $par3 = $var12.$itemDamage;
                                    nms_ItemStack_$callClinit();
                                    $var17.$itemID = $par1;
                                    $var17.$stackSize = $par2;
                                    $var17.$itemDamage = $par3;
                                    if ($par3 < 0)
                                        $var17.$itemDamage = 0;
                                    $par4EntityPlayer = $var12.$stackTagCompound;
                                    if ($par4EntityPlayer !== null) {
                                        $var12 = new nms_NBTTagCompound;
                                        $var17_0 = $par4EntityPlayer.$name;
                                        if ($var17_0 === null)
                                            $var17_0 = $rt_s(3);
                                        $var12.$name = $var17_0;
                                        $var17_0 = new ju_HashMap;
                                        $par1 = ju_HashMap_calculateCapacity(16);
                                        $var17_0.$elementCount = 0;
                                        var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                        var$9 = var$13.data;
                                        $var17_0.$elementData = var$13;
                                        $var17_0.$loadFactor = 0.75;
                                        $var17_0.$threshold = var$9.length * 0.75 | 0;
                                        $var12.$tagMap = $var17_0;
                                        $var17_0 = $par4EntityPlayer.$tagMap;
                                        if ($var17_0.$cachedKeySet === null) {
                                            $var16 = new ju_HashMap$1;
                                            $var16.$this$0 = $var17_0;
                                            $var17_0.$cachedKeySet = $var16;
                                        }
                                        $var17_0 = $var17_0.$cachedKeySet.$iterator();
                                        while ($var17_0.$hasNext()) {
                                            $var16 = $var17_0.$next();
                                            $var22 = $par4EntityPlayer.$tagMap;
                                            if ($var16 === null) {
                                                $var22 = $var22.$elementData.data[0];
                                                while ($var22 !== null && $var22.$key !== null) {
                                                    $var22 = $var22.$next3;
                                                }
                                            } else {
                                                c: {
                                                    if (!$var16.$hashCode1) {
                                                        $par1 = 0;
                                                        while (true) {
                                                            if ($par1 >= $var16.$nativeString.length)
                                                                break c;
                                                            $var16.$hashCode1 = (31 * $var16.$hashCode1 | 0) + $var16.$nativeString.charCodeAt($par1) | 0;
                                                            $par1 = $par1 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                $par3 = $var16.$hashCode1;
                                                var$9 = $var22.$elementData.data;
                                                $var22 = var$9[$par3 & (var$9.length - 1 | 0)];
                                                while ($var22 !== null) {
                                                    if ($var22.$origKeyHash == $par3) {
                                                        d: {
                                                            $var16_0 = $var22.$key;
                                                            if ($var16 !== $var16_0) {
                                                                if ($var16 === $var16_0)
                                                                    $par1 = 1;
                                                                else if (!($var16_0 instanceof jl_String))
                                                                    $par1 = 0;
                                                                else {
                                                                    $var16_0 = $var16_0;
                                                                    $par1 = $var16.$nativeString !== $var16_0.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$par1) {
                                                                    $par1 = 0;
                                                                    break d;
                                                                }
                                                            }
                                                            $par1 = 1;
                                                        }
                                                        if ($par1)
                                                            break;
                                                    }
                                                    $var22 = $var22.$next3;
                                                }
                                            }
                                            $var22 = $var22 === null ? null : $var22.$value0;
                                            $var22 = $var22.$copy();
                                            $var16_0 = $var12.$tagMap;
                                            if ($var16 !== null)
                                                $var22.$name = $var16;
                                            else
                                                $var22.$name = $rt_s(3);
                                            ju_HashMap_putImpl($var16_0, $var16, $var22);
                                        }
                                        $var17.$stackTagCompound = $var12;
                                    }
                                    $var9 = $var6.$itemStack.$stackSize;
                                    $par4EntityPlayer = $this.$field_94537_h.$backingMap;
                                    if ($par4EntityPlayer.$cachedKeySet === null) {
                                        $var12 = new ju_HashMap$1;
                                        $var12.$this$0 = $par4EntityPlayer;
                                        $par4EntityPlayer.$cachedKeySet = $var12;
                                    }
                                    $var10 = $par4EntityPlayer.$cachedKeySet.$iterator();
                                    while ($var10.$hasNext()) {
                                        $var11 = $var10.$next();
                                        if ($var11 !== null && nms_Container_func_94527_a($var11, $var6.$itemStack, 1) && $var11.$isItemValid($var6.$itemStack) && $var6.$itemStack.$stackSize >= $this.$field_94537_h.$backingMap.$elementCount) {
                                            $var12 = new nms_ItemStack;
                                            $par1 = $var17.$itemID;
                                            $par2 = $var17.$stackSize;
                                            $par3 = $var17.$itemDamage;
                                            $var12.$itemID = $par1;
                                            $var12.$stackSize = $par2;
                                            $var12.$itemDamage = $par3;
                                            if ($par3 < 0)
                                                $var12.$itemDamage = 0;
                                            $par4EntityPlayer = $var17.$stackTagCompound;
                                            if ($par4EntityPlayer !== null) {
                                                $var17_0 = new nms_NBTTagCompound;
                                                $var16 = $par4EntityPlayer.$name;
                                                if ($var16 === null)
                                                    $var16 = $rt_s(3);
                                                $var17_0.$name = $var16;
                                                $var16 = new ju_HashMap;
                                                $par1 = ju_HashMap_calculateCapacity(16);
                                                $var16.$elementCount = 0;
                                                var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                                var$9 = var$13.data;
                                                $var16.$elementData = var$13;
                                                $var16.$loadFactor = 0.75;
                                                $var16.$threshold = var$9.length * 0.75 | 0;
                                                $var17_0.$tagMap = $var16;
                                                $var16 = $par4EntityPlayer.$tagMap;
                                                if ($var16.$cachedKeySet === null) {
                                                    $var22 = new ju_HashMap$1;
                                                    $var22.$this$0 = $var16;
                                                    $var16.$cachedKeySet = $var22;
                                                }
                                                $var16 = $var16.$cachedKeySet.$iterator();
                                                while ($var16.$hasNext()) {
                                                    $var22 = $var16.$next();
                                                    $var16_0 = $par4EntityPlayer.$tagMap;
                                                    if ($var22 === null) {
                                                        $var16_0 = $var16_0.$elementData.data[0];
                                                        while ($var16_0 !== null && $var16_0.$key !== null) {
                                                            $var16_0 = $var16_0.$next3;
                                                        }
                                                    } else {
                                                        e: {
                                                            if (!$var22.$hashCode1) {
                                                                $par1 = 0;
                                                                while (true) {
                                                                    if ($par1 >= $var22.$nativeString.length)
                                                                        break e;
                                                                    $var22.$hashCode1 = (31 * $var22.$hashCode1 | 0) + $var22.$nativeString.charCodeAt($par1) | 0;
                                                                    $par1 = $par1 + 1 | 0;
                                                                }
                                                            }
                                                        }
                                                        $par3 = $var22.$hashCode1;
                                                        var$9 = $var16_0.$elementData.data;
                                                        $var16_0 = var$9[$par3 & (var$9.length - 1 | 0)];
                                                        while ($var16_0 !== null) {
                                                            if ($var16_0.$origKeyHash == $par3) {
                                                                f: {
                                                                    $var8 = $var16_0.$key;
                                                                    if ($var22 !== $var8) {
                                                                        if ($var22 === $var8)
                                                                            $par1 = 1;
                                                                        else if (!($var8 instanceof jl_String))
                                                                            $par1 = 0;
                                                                        else {
                                                                            $var8 = $var8;
                                                                            $par1 = $var22.$nativeString !== $var8.$nativeString ? 0 : 1;
                                                                        }
                                                                        if (!$par1) {
                                                                            $par1 = 0;
                                                                            break f;
                                                                        }
                                                                    }
                                                                    $par1 = 1;
                                                                }
                                                                if ($par1)
                                                                    break;
                                                            }
                                                            $var16_0 = $var16_0.$next3;
                                                        }
                                                    }
                                                    $var16_0 = $var16_0 === null ? null : $var16_0.$value0;
                                                    $var16_0 = $var16_0.$copy();
                                                    $var8 = $var17_0.$tagMap;
                                                    if ($var22 !== null)
                                                        $var16_0.$name = $var22;
                                                    else
                                                        $var16_0.$name = $rt_s(3);
                                                    ju_HashMap_putImpl($var8, $var22, $var16_0);
                                                }
                                                $var12.$stackTagCompound = $var17_0;
                                            }
                                            $var13 = !($var11.$inventory.$getStackInSlot($var11.$slotIndex) === null ? 0 : 1) ? 0 : ($var11.$inventory.$getStackInSlot($var11.$slotIndex)).$stackSize;
                                            g: {
                                                $par4EntityPlayer = $this.$field_94537_h;
                                                switch ($this.$field_94535_f) {
                                                    case 0:
                                                        var$21 = $var12.$stackSize / $par4EntityPlayer.$backingMap.$elementCount;
                                                        $par1 = var$21 | 0;
                                                        if (var$21 < $par1)
                                                            $par1 = $par1 - 1 | 0;
                                                        $var12.$stackSize = $par1;
                                                        break g;
                                                    case 1:
                                                        break;
                                                    default:
                                                        break g;
                                                }
                                                $var12.$stackSize = 1;
                                            }
                                            $par3 = $var12.$stackSize + $var13 | 0;
                                            $var12.$stackSize = $par3;
                                            nms_Item_$callClinit();
                                            var$9 = nms_Item_itemsList.data;
                                            $par2 = $var12.$itemID;
                                            if ($par3 > var$9[$par2].$maxStackSize)
                                                $var12.$stackSize = var$9[$par2].$maxStackSize;
                                            if ($var12.$stackSize > $var11.$getSlotStackLimit())
                                                $var12.$stackSize = $var11.$getSlotStackLimit();
                                            $var9 = $var9 - ($var12.$stackSize - $var13 | 0) | 0;
                                            $par4EntityPlayer = $var11.$inventory;
                                            $par1 = $var11.$slotIndex;
                                            $ptr = 32;
                                            continue main;
                                        }
                                    }
                                    $var17.$stackSize = $var9;
                                    if ($var9 <= 0)
                                        $var17 = null;
                                    $var6.$itemStack = $var17;
                                }
                                nms_Container_func_94533_d($this);
                            }
                        }
                    }
                }
            else if ($this.$field_94536_g)
                nms_Container_func_94533_d($this);
            else {
                h: {
                    if (!($par3 && $par3 != 1)) {
                        if (!$par2)
                            break h;
                        if ($par2 == 1)
                            break h;
                    }
                    if ($par3 == 2 && $par2 >= 0 && $par2 < 9) {
                        $var12 = $this.$inventorySlots;
                        if ($par1 >= 0 && $par1 < $var12.$size0) {
                            $var16 = $var12.$array.data[$par1];
                            if (!$var16.$canTakeStack($par4EntityPlayer))
                                break a;
                            var$9 = $var6.$mainInventory;
                            $par1 = var$9.data.length;
                            if ($par2 < $par1)
                                $par1 = $par2;
                            else {
                                $par1 = $par2 - $par1 | 0;
                                var$9 = $var6.$armorInventory;
                            }
                            i: {
                                j: {
                                    $var17 = var$9.data[$par1];
                                    if ($var17 !== null) {
                                        if ($var16.$inventory !== $var6)
                                            break j;
                                        if (!$var16.$isItemValid($var17))
                                            break j;
                                    }
                                    $var18 = 1;
                                    break i;
                                }
                                $var18 = 0;
                            }
                            $var19 = (-1);
                            if (!$var18) {
                                $var19 = 0;
                                k: {
                                    while (true) {
                                        var$9 = $var6.$mainInventory.data;
                                        if ($var19 >= var$9.length) {
                                            $var19 = (-1);
                                            break k;
                                        }
                                        if (var$9[$var19] === null)
                                            break;
                                        $var19 = $var19 + 1 | 0;
                                    }
                                }
                                $var18 = $var18 | ($var19 <= (-1) ? 0 : 1);
                            }
                            $par1 = $var16.$inventory.$getStackInSlot($var16.$slotIndex) === null ? 0 : 1;
                            l: {
                                if (!($par1 && $var18)) {
                                    if ($var16.$inventory.$getStackInSlot($var16.$slotIndex) === null ? 0 : 1)
                                        break l;
                                    if ($var17 === null)
                                        break l;
                                    if (!$var16.$isItemValid($var17))
                                        break l;
                                    $par4EntityPlayer = null;
                                    var$9 = $var6.$mainInventory;
                                    $par1 = var$9.data.length;
                                    if ($par2 >= $par1) {
                                        $par2 = $par2 - $par1 | 0;
                                        var$9 = $var6.$armorInventory;
                                    }
                                    var$9.data[$par2] = $par4EntityPlayer;
                                    $par4EntityPlayer = $var16.$inventory;
                                    $par1 = $var16.$slotIndex;
                                    $ptr = 22;
                                    continue main;
                                }
                                $var22_0 = $var16.$inventory.$getStackInSlot($var16.$slotIndex);
                                $var12 = new nms_ItemStack;
                                $par1 = $var22_0.$itemID;
                                $par3 = $var22_0.$stackSize;
                                $var9 = $var22_0.$itemDamage;
                                nms_ItemStack_$callClinit();
                                $var12.$itemID = $par1;
                                $var12.$stackSize = $par3;
                                $var12.$itemDamage = $var9;
                                if ($var9 < 0)
                                    $var12.$itemDamage = 0;
                                $var17_0 = $var22_0.$stackTagCompound;
                                if ($var17_0 !== null) {
                                    $var22 = new nms_NBTTagCompound;
                                    $var16_0 = $var17_0.$name;
                                    if ($var16_0 === null)
                                        $var16_0 = $rt_s(3);
                                    $var22.$name = $var16_0;
                                    $var16_0 = new ju_HashMap;
                                    $par1 = ju_HashMap_calculateCapacity(16);
                                    $var16_0.$elementCount = 0;
                                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                    var$9 = var$13.data;
                                    $var16_0.$elementData = var$13;
                                    $var16_0.$loadFactor = 0.75;
                                    $var16_0.$threshold = var$9.length * 0.75 | 0;
                                    $var22.$tagMap = $var16_0;
                                    $var16_0 = $var17_0.$tagMap;
                                    if ($var16_0.$cachedKeySet === null) {
                                        $var8 = new ju_HashMap$1;
                                        $var8.$this$0 = $var16_0;
                                        $var16_0.$cachedKeySet = $var8;
                                    }
                                    $var16_0 = $var16_0.$cachedKeySet.$iterator();
                                    while ($var16_0.$hasNext()) {
                                        $var8 = $var16_0.$next();
                                        $var20 = $var17_0.$tagMap;
                                        if ($var8 === null) {
                                            $var20 = $var20.$elementData.data[0];
                                            while ($var20 !== null && $var20.$key !== null) {
                                                $var20 = $var20.$next3;
                                            }
                                        } else {
                                            m: {
                                                if (!$var8.$hashCode1) {
                                                    $par3 = 0;
                                                    while (true) {
                                                        if ($par3 >= $var8.$nativeString.length)
                                                            break m;
                                                        $var8.$hashCode1 = (31 * $var8.$hashCode1 | 0) + $var8.$nativeString.charCodeAt($par3) | 0;
                                                        $par3 = $par3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $var9 = $var8.$hashCode1;
                                            var$9 = $var20.$elementData.data;
                                            $var20 = var$9[$var9 & (var$9.length - 1 | 0)];
                                            while ($var20 !== null) {
                                                if ($var20.$origKeyHash == $var9) {
                                                    n: {
                                                        $var10 = $var20.$key;
                                                        if ($var8 !== $var10) {
                                                            if ($var8 === $var10)
                                                                $par1 = 1;
                                                            else if (!($var10 instanceof jl_String))
                                                                $par1 = 0;
                                                            else {
                                                                $var10 = $var10;
                                                                $par1 = $var8.$nativeString !== $var10.$nativeString ? 0 : 1;
                                                            }
                                                            if (!$par1) {
                                                                $par1 = 0;
                                                                break n;
                                                            }
                                                        }
                                                        $par1 = 1;
                                                    }
                                                    if ($par1)
                                                        break;
                                                }
                                                $var20 = $var20.$next3;
                                            }
                                        }
                                        $var20 = $var20 === null ? null : $var20.$value0;
                                        $var20 = $var20.$copy();
                                        $var10 = $var22.$tagMap;
                                        if ($var8 !== null)
                                            $var20.$name = $var8;
                                        else
                                            $var20.$name = $rt_s(3);
                                        ju_HashMap_putImpl($var10, $var8, $var20);
                                    }
                                    $var12.$stackTagCompound = $var22;
                                }
                                var$9 = $var6.$mainInventory;
                                $par1 = var$9.data.length;
                                if ($par2 >= $par1) {
                                    $par2 = $par2 - $par1 | 0;
                                    var$9 = $var6.$armorInventory;
                                }
                                var$9.data[$par2] = $var12;
                                if (!($var16.$inventory === $var6 && $var16.$isItemValid($var17)) && $var17 !== null) {
                                    if ($var19 <= (-1))
                                        break l;
                                    else {
                                        nms_InventoryPlayer_addItemStackToInventory($var6, $var17);
                                        $par1 = $var22_0.$stackSize;
                                        $ptr = 28;
                                        continue main;
                                    }
                                }
                                $par1 = $var22_0.$stackSize;
                                $ptr = 24;
                                continue main;
                            }
                            break a;
                        }
                        $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                        $par4EntityPlayer.$suppressionEnabled = 1;
                        $par4EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par4EntityPlayer);
                    }
                    if ($par3 == 3 && $par4EntityPlayer.$capabilities.$isCreativeMode && $var6.$itemStack === null && $par1 >= 0) {
                        $par4EntityPlayer = $this.$inventorySlots;
                        if ($par1 >= 0 && $par1 < $par4EntityPlayer.$size0) {
                            $var16 = $par4EntityPlayer.$array.data[$par1];
                            if ($var16 === null)
                                break a;
                            if (!($var16.$inventory.$getStackInSlot($var16.$slotIndex) === null ? 0 : 1))
                                break a;
                            $par4EntityPlayer = $var16.$inventory.$getStackInSlot($var16.$slotIndex);
                            $var17_0 = new nms_ItemStack;
                            $par1 = $par4EntityPlayer.$itemID;
                            $par2 = $par4EntityPlayer.$stackSize;
                            $par3 = $par4EntityPlayer.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var17_0.$itemID = $par1;
                            $var17_0.$stackSize = $par2;
                            $var17_0.$itemDamage = $par3;
                            if ($par3 < 0)
                                $var17_0.$itemDamage = 0;
                            $par4EntityPlayer = $par4EntityPlayer.$stackTagCompound;
                            if ($par4EntityPlayer !== null) {
                                $var12 = new nms_NBTTagCompound;
                                $var16 = $par4EntityPlayer.$name;
                                if ($var16 === null)
                                    $var16 = $rt_s(3);
                                $var12.$name = $var16;
                                $var16 = new ju_HashMap;
                                $par1 = ju_HashMap_calculateCapacity(16);
                                $var16.$elementCount = 0;
                                var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                var$9 = var$13.data;
                                $var16.$elementData = var$13;
                                $var16.$loadFactor = 0.75;
                                $var16.$threshold = var$9.length * 0.75 | 0;
                                $var12.$tagMap = $var16;
                                $var16 = $par4EntityPlayer.$tagMap;
                                if ($var16.$cachedKeySet === null) {
                                    $var22 = new ju_HashMap$1;
                                    $var22.$this$0 = $var16;
                                    $var16.$cachedKeySet = $var22;
                                }
                                $var16 = $var16.$cachedKeySet.$iterator();
                                while ($var16.$hasNext()) {
                                    $var22 = $var16.$next();
                                    $var16_0 = $par4EntityPlayer.$tagMap;
                                    if ($var22 === null) {
                                        $var16_0 = $var16_0.$elementData.data[0];
                                        while ($var16_0 !== null && $var16_0.$key !== null) {
                                            $var16_0 = $var16_0.$next3;
                                        }
                                    } else {
                                        o: {
                                            if (!$var22.$hashCode1) {
                                                $par1 = 0;
                                                while (true) {
                                                    if ($par1 >= $var22.$nativeString.length)
                                                        break o;
                                                    $var22.$hashCode1 = (31 * $var22.$hashCode1 | 0) + $var22.$nativeString.charCodeAt($par1) | 0;
                                                    $par1 = $par1 + 1 | 0;
                                                }
                                            }
                                        }
                                        $par3 = $var22.$hashCode1;
                                        var$9 = $var16_0.$elementData.data;
                                        $var16_0 = var$9[$par3 & (var$9.length - 1 | 0)];
                                        while ($var16_0 !== null) {
                                            if ($var16_0.$origKeyHash == $par3) {
                                                p: {
                                                    $var8 = $var16_0.$key;
                                                    if ($var22 !== $var8) {
                                                        if ($var22 === $var8)
                                                            $par1 = 1;
                                                        else if (!($var8 instanceof jl_String))
                                                            $par1 = 0;
                                                        else {
                                                            $var8 = $var8;
                                                            $par1 = $var22.$nativeString !== $var8.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par1) {
                                                            $par1 = 0;
                                                            break p;
                                                        }
                                                    }
                                                    $par1 = 1;
                                                }
                                                if ($par1)
                                                    break;
                                            }
                                            $var16_0 = $var16_0.$next3;
                                        }
                                    }
                                    $var16_0 = $var16_0 === null ? null : $var16_0.$value0;
                                    $var16_0 = $var16_0.$copy();
                                    $var8 = $var12.$tagMap;
                                    if ($var22 !== null)
                                        $var16_0.$name = $var22;
                                    else
                                        $var16_0.$name = $rt_s(3);
                                    ju_HashMap_putImpl($var8, $var22, $var16_0);
                                }
                                $var17_0.$stackTagCompound = $var12;
                            }
                            nms_Item_$callClinit();
                            $var17_0.$stackSize = nms_Item_itemsList.data[$var17_0.$itemID].$maxStackSize;
                            $var6.$itemStack = $var17_0;
                            break a;
                        }
                        $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                        $par4EntityPlayer.$suppressionEnabled = 1;
                        $par4EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par4EntityPlayer);
                    }
                    if ($par3 == 4 && $var6.$itemStack === null && $par1 >= 0) {
                        $var12 = $this.$inventorySlots;
                        if ($par1 >= 0 && $par1 < $var12.$size0) {
                            $var16 = $var12.$array.data[$par1];
                            if ($var16 === null)
                                break a;
                            if (!($var16.$inventory.$getStackInSlot($var16.$slotIndex) === null ? 0 : 1))
                                break a;
                            if (!$var16.$canTakeStack($par4EntityPlayer))
                                break a;
                            $par1 = !$par2 ? 1 : ($var16.$inventory.$getStackInSlot($var16.$slotIndex)).$stackSize;
                            $ptr = 13;
                            continue main;
                        }
                        $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                        $par4EntityPlayer.$suppressionEnabled = 1;
                        $par4EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par4EntityPlayer);
                    }
                    if ($par3 != 6)
                        break a;
                    if ($par1 < 0)
                        break a;
                    $var12 = $this.$inventorySlots;
                    if ($par1 >= 0 && $par1 < $var12.$size0) {
                        q: {
                            r: {
                                $var16 = $var12.$array.data[$par1];
                                $var17_0 = $var6.$itemStack;
                                if ($var17_0 !== null && !($var16 !== null && ($var16.$inventory.$getStackInSlot($var16.$slotIndex) === null ? 0 : 1) && $var16.$canTakeStack($par4EntityPlayer))) {
                                    $var9 = !$par2 ? 0 : $this.$inventorySlots.$size0 - 1 | 0;
                                    $var19 = $par2 ? (-1) : 1;
                                    $var21 = 0;
                                    $var22 = null;
                                    s: while (true) {
                                        if ($var21 >= 2)
                                            break r;
                                        $var23 = $var9;
                                        while ($var23 >= 0) {
                                            $var12 = $this.$inventorySlots;
                                            $par1 = $rt_compare($var23, $var12.$size0);
                                            if ($par1 >= 0)
                                                break;
                                            $par2 = $var17_0.$stackSize;
                                            nms_Item_$callClinit();
                                            if ($par2 >= nms_Item_itemsList.data[$var17_0.$itemID].$maxStackSize)
                                                break;
                                            if ($var23 < 0)
                                                break s;
                                            if ($par1 >= 0)
                                                break s;
                                            $var24 = $var12.$array.data[$var23];
                                            $par1 = $var24.$inventory.$getStackInSlot($var24.$slotIndex) === null ? 0 : 1;
                                            if ($par1 && nms_Container_func_94527_a($var24, $var17_0, 1) && $var24.$canTakeStack($par4EntityPlayer) && $this.$func_94530_a($var17_0, $var24)) {
                                                if ($var21)
                                                    break q;
                                                $par1 = ($var24.$inventory.$getStackInSlot($var24.$slotIndex)).$stackSize;
                                                $var12 = $var24.$inventory.$getStackInSlot($var24.$slotIndex);
                                                if ($par1 != nms_Item_itemsList.data[$var12.$itemID].$maxStackSize)
                                                    break q;
                                            }
                                            $var23 = $var23 + $var19 | 0;
                                        }
                                        $var21 = $var21 + 1 | 0;
                                    }
                                    $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                                    $par4EntityPlayer.$suppressionEnabled = 1;
                                    $par4EntityPlayer.$writableStackTrace = 1;
                                    $rt_throw($par4EntityPlayer);
                                }
                            }
                            $ptr = 4;
                            continue main;
                        }
                        $var14 = nms_Item_itemsList.data[$var17_0.$itemID].$maxStackSize - $var17_0.$stackSize | 0;
                        $var14_0 = ($var24.$inventory.$getStackInSlot($var24.$slotIndex)).$stackSize;
                        if ($var14 < $var14_0)
                            $var14_0 = $var14;
                        $ptr = 34;
                        continue main;
                    }
                    $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                    $par4EntityPlayer.$suppressionEnabled = 1;
                    $par4EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par4EntityPlayer);
                }
                $var9 = $rt_compare($par1, (-999));
                if (!$var9) {
                    $var12 = $var6.$itemStack;
                    if ($var12 === null)
                        break a;
                    if ($var9)
                        break a;
                    if (!$par2) {
                        $par1 = 0;
                        $ptr = 1;
                        continue main;
                    }
                    if ($par2 != 1)
                        break a;
                    $var16 = $var6.$itemStack;
                    $var16_0 = new nms_ItemStack;
                    $par1 = $var16.$itemID;
                    $par2 = $var16.$itemDamage;
                    nms_ItemStack_$callClinit();
                    $var16_0.$itemID = $par1;
                    $var16_0.$stackSize = 1;
                    $var16_0.$itemDamage = $par2;
                    if ($par2 < 0)
                        $var16_0.$itemDamage = 0;
                    $var8 = $var16.$stackTagCompound;
                    if ($var8 !== null) {
                        $var20 = new nms_NBTTagCompound;
                        $var12 = $var8.$name;
                        if ($var12 === null)
                            $var12 = $rt_s(3);
                        $var20.$name = $var12;
                        $var12 = new ju_HashMap;
                        $par1 = ju_HashMap_calculateCapacity(16);
                        $var12.$elementCount = 0;
                        var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                        var$9 = var$13.data;
                        $var12.$elementData = var$13;
                        $var12.$loadFactor = 0.75;
                        $var12.$threshold = var$9.length * 0.75 | 0;
                        $var20.$tagMap = $var12;
                        $var17_0 = $var8.$tagMap;
                        if ($var17_0.$cachedKeySet === null) {
                            $var12 = new ju_HashMap$1;
                            $var12.$this$0 = $var17_0;
                            $var17_0.$cachedKeySet = $var12;
                        }
                        $var10 = $var17_0.$cachedKeySet.$iterator();
                        while ($var10.$hasNext()) {
                            $var11 = $var10.$next();
                            $var12 = $var8.$tagMap;
                            if ($var11 === null) {
                                $var12 = $var12.$elementData.data[0];
                                while ($var12 !== null && $var12.$key !== null) {
                                    $var12 = $var12.$next3;
                                }
                            } else {
                                t: {
                                    if (!$var11.$hashCode1) {
                                        $par1 = 0;
                                        while (true) {
                                            if ($par1 >= $var11.$nativeString.length)
                                                break t;
                                            $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt($par1) | 0;
                                            $par1 = $par1 + 1 | 0;
                                        }
                                    }
                                }
                                $par3 = $var11.$hashCode1;
                                var$9 = $var12.$elementData.data;
                                $var12 = var$9[$par3 & (var$9.length - 1 | 0)];
                                while ($var12 !== null) {
                                    if ($var12.$origKeyHash == $par3) {
                                        u: {
                                            $var17_0 = $var12.$key;
                                            if ($var11 !== $var17_0) {
                                                if ($var11 === $var17_0)
                                                    $par1 = 1;
                                                else if (!($var17_0 instanceof jl_String))
                                                    $par1 = 0;
                                                else {
                                                    $var17_0 = $var17_0;
                                                    $par1 = $var11.$nativeString !== $var17_0.$nativeString ? 0 : 1;
                                                }
                                                if (!$par1) {
                                                    $par1 = 0;
                                                    break u;
                                                }
                                            }
                                            $par1 = 1;
                                        }
                                        if ($par1)
                                            break;
                                    }
                                    $var12 = $var12.$next3;
                                }
                            }
                            $var12 = $var12 === null ? null : $var12.$value0;
                            $var22 = $var12.$copy();
                            $var12 = $var20.$tagMap;
                            if ($var11 !== null)
                                $var22.$name = $var11;
                            else
                                $var22.$name = $rt_s(3);
                            ju_HashMap_putImpl($var12, $var11, $var22);
                        }
                        $var16_0.$stackTagCompound = $var20;
                    }
                    $var16.$stackSize = $var16.$stackSize - 1 | 0;
                    $par1 = 0;
                    $ptr = 3;
                    continue main;
                }
                if ($par3 == 1) {
                    if ($par1 < 0)
                        return null;
                    $var12 = $this.$inventorySlots;
                    if ($par1 >= 0 && $par1 < $var12.$size0) {
                        $var16_0 = $var12.$array.data[$par1];
                        if ($var16_0 === null)
                            break a;
                        if (!$var16_0.$canTakeStack($par4EntityPlayer))
                            break a;
                        $ptr = 2;
                        continue main;
                    }
                    $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                    $par4EntityPlayer.$suppressionEnabled = 1;
                    $par4EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par4EntityPlayer);
                }
                if ($par1 < 0)
                    return null;
                $var12 = $this.$inventorySlots;
                if ($par1 >= 0 && $par1 < $var12.$size0) {
                    $var16 = $var12.$array.data[$par1];
                    if ($var16 !== null) {
                        $var17 = $var16.$inventory.$getStackInSlot($var16.$slotIndex);
                        $var20 = $var6.$itemStack;
                        if ($var17 !== null) {
                            $var5 = new nms_ItemStack;
                            $par1 = $var17.$itemID;
                            $par3 = $var17.$stackSize;
                            $var9 = $var17.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var5.$itemID = $par1;
                            $var5.$stackSize = $par3;
                            $var5.$itemDamage = $var9;
                            if ($var9 < 0)
                                $var5.$itemDamage = 0;
                            $var12 = $var17.$stackTagCompound;
                            if ($var12 !== null) {
                                $var17_0 = new nms_NBTTagCompound;
                                $var22 = $var12.$name;
                                if ($var22 === null)
                                    $var22 = $rt_s(3);
                                $var17_0.$name = $var22;
                                $var22 = new ju_HashMap;
                                $par1 = ju_HashMap_calculateCapacity(16);
                                $var22.$elementCount = 0;
                                var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                var$9 = var$13.data;
                                $var22.$elementData = var$13;
                                $var22.$loadFactor = 0.75;
                                $var22.$threshold = var$9.length * 0.75 | 0;
                                $var17_0.$tagMap = $var22;
                                $var22 = $var12.$tagMap;
                                if ($var22.$cachedKeySet === null) {
                                    $var16_0 = new ju_HashMap$1;
                                    $var16_0.$this$0 = $var22;
                                    $var22.$cachedKeySet = $var16_0;
                                }
                                $var22 = $var22.$cachedKeySet.$iterator();
                                while ($var22.$hasNext()) {
                                    $var16_0 = $var22.$next();
                                    $var8 = $var12.$tagMap;
                                    if ($var16_0 === null) {
                                        $var8 = $var8.$elementData.data[0];
                                        while ($var8 !== null && $var8.$key !== null) {
                                            $var8 = $var8.$next3;
                                        }
                                    } else {
                                        v: {
                                            if (!$var16_0.$hashCode1) {
                                                $par1 = 0;
                                                while (true) {
                                                    if ($par1 >= $var16_0.$nativeString.length)
                                                        break v;
                                                    $var16_0.$hashCode1 = (31 * $var16_0.$hashCode1 | 0) + $var16_0.$nativeString.charCodeAt($par1) | 0;
                                                    $par1 = $par1 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var9 = $var16_0.$hashCode1;
                                        var$9 = $var8.$elementData.data;
                                        $var8 = var$9[$var9 & (var$9.length - 1 | 0)];
                                        while ($var8 !== null) {
                                            if ($var8.$origKeyHash == $var9) {
                                                w: {
                                                    $var10 = $var8.$key;
                                                    if ($var16_0 !== $var10) {
                                                        if ($var16_0 === $var10)
                                                            $par1 = 1;
                                                        else if (!($var10 instanceof jl_String))
                                                            $par1 = 0;
                                                        else {
                                                            $var10 = $var10;
                                                            $par1 = $var16_0.$nativeString !== $var10.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par1) {
                                                            $par1 = 0;
                                                            break w;
                                                        }
                                                    }
                                                    $par1 = 1;
                                                }
                                                if ($par1)
                                                    break;
                                            }
                                            $var8 = $var8.$next3;
                                        }
                                    }
                                    $var8 = $var8 === null ? null : $var8.$value0;
                                    $var8 = $var8.$copy();
                                    $var10 = $var17_0.$tagMap;
                                    if ($var16_0 !== null)
                                        $var8.$name = $var16_0;
                                    else
                                        $var8.$name = $rt_s(3);
                                    ju_HashMap_putImpl($var10, $var16_0, $var8);
                                }
                                $var5.$stackTagCompound = $var17_0;
                            }
                        }
                        x: {
                            if ($var17 === null) {
                                if ($var20 === null)
                                    break x;
                                if (!$var16.$isItemValid($var20))
                                    break x;
                                $var19 = $par2 ? 1 : $var20.$stackSize;
                                if ($var19 > $var16.$getSlotStackLimit())
                                    $var19 = $var16.$getSlotStackLimit();
                                if ($var20.$stackSize < $var19) {
                                    if ($var20.$stackSize)
                                        break x;
                                    $var6.$itemStack = null;
                                    break x;
                                }
                                $var12 = new nms_ItemStack;
                                $par1 = $var20.$itemID;
                                $par2 = $var20.$itemDamage;
                                nms_ItemStack_$callClinit();
                                $var12.$itemID = $par1;
                                $var12.$stackSize = $var19;
                                $var12.$itemDamage = $par2;
                                if ($par2 < 0)
                                    $var12.$itemDamage = 0;
                                $par4EntityPlayer = $var20.$stackTagCompound;
                                if ($par4EntityPlayer !== null) {
                                    $var17_0 = new nms_NBTTagCompound;
                                    $var22 = $par4EntityPlayer.$name;
                                    if ($var22 === null)
                                        $var22 = $rt_s(3);
                                    $var17_0.$name = $var22;
                                    $var22 = new ju_HashMap;
                                    $par1 = ju_HashMap_calculateCapacity(16);
                                    $var22.$elementCount = 0;
                                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                    var$9 = var$13.data;
                                    $var22.$elementData = var$13;
                                    $var22.$loadFactor = 0.75;
                                    $var22.$threshold = var$9.length * 0.75 | 0;
                                    $var17_0.$tagMap = $var22;
                                    $var22 = $par4EntityPlayer.$tagMap;
                                    if ($var22.$cachedKeySet === null) {
                                        $var16_0 = new ju_HashMap$1;
                                        $var16_0.$this$0 = $var22;
                                        $var22.$cachedKeySet = $var16_0;
                                    }
                                    $var22 = $var22.$cachedKeySet.$iterator();
                                    while ($var22.$hasNext()) {
                                        $var16_0 = $var22.$next();
                                        $var8 = $par4EntityPlayer.$tagMap;
                                        if ($var16_0 === null) {
                                            $var8 = $var8.$elementData.data[0];
                                            while ($var8 !== null && $var8.$key !== null) {
                                                $var8 = $var8.$next3;
                                            }
                                        } else {
                                            y: {
                                                if (!$var16_0.$hashCode1) {
                                                    $par1 = 0;
                                                    while (true) {
                                                        if ($par1 >= $var16_0.$nativeString.length)
                                                            break y;
                                                        $var16_0.$hashCode1 = (31 * $var16_0.$hashCode1 | 0) + $var16_0.$nativeString.charCodeAt($par1) | 0;
                                                        $par1 = $par1 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $par3 = $var16_0.$hashCode1;
                                            var$9 = $var8.$elementData.data;
                                            $var8 = var$9[$par3 & (var$9.length - 1 | 0)];
                                            while ($var8 !== null) {
                                                if ($var8.$origKeyHash == $par3) {
                                                    z: {
                                                        $var10 = $var8.$key;
                                                        if ($var16_0 !== $var10) {
                                                            if ($var16_0 === $var10)
                                                                $par1 = 1;
                                                            else if (!($var10 instanceof jl_String))
                                                                $par1 = 0;
                                                            else {
                                                                $var10 = $var10;
                                                                $par1 = $var16_0.$nativeString !== $var10.$nativeString ? 0 : 1;
                                                            }
                                                            if (!$par1) {
                                                                $par1 = 0;
                                                                break z;
                                                            }
                                                        }
                                                        $par1 = 1;
                                                    }
                                                    if ($par1)
                                                        break;
                                                }
                                                $var8 = $var8.$next3;
                                            }
                                        }
                                        $var8 = $var8 === null ? null : $var8.$value0;
                                        $var8 = $var8.$copy();
                                        $var10 = $var17_0.$tagMap;
                                        if ($var16_0 !== null)
                                            $var8.$name = $var16_0;
                                        else
                                            $var8.$name = $rt_s(3);
                                        ju_HashMap_putImpl($var10, $var16_0, $var8);
                                    }
                                    $var12.$stackTagCompound = $var17_0;
                                }
                                $var20.$stackSize = $var20.$stackSize - $var19 | 0;
                                $par4EntityPlayer = $var16.$inventory;
                                $par1 = $var16.$slotIndex;
                                $ptr = 17;
                                continue main;
                            }
                            if ($var16.$canTakeStack($par4EntityPlayer)) {
                                if ($var20 === null) {
                                    $var19 = !$par2 ? $var17.$stackSize : ($var17.$stackSize + 1 | 0) / 2 | 0;
                                    $ptr = 7;
                                    continue main;
                                }
                                if (!$var16.$isItemValid($var20)) {
                                    $par1 = $var17.$itemID;
                                    $par2 = $var20.$itemID;
                                    if ($par1 != $par2)
                                        break x;
                                    nms_Item_$callClinit();
                                    var$9 = nms_Item_itemsList.data;
                                    if (var$9[$par2].$maxStackSize <= 1)
                                        break x;
                                    if (var$9[$par1].$hasSubtypes && $var17.$itemDamage != $var20.$itemDamage)
                                        break x;
                                    if (!nms_ItemStack_areItemStackTagsEqual($var17, $var20))
                                        break x;
                                    $var19 = $var17.$stackSize;
                                    if ($var19 <= 0)
                                        break x;
                                    $par1 = $var19 + $var20.$stackSize | 0;
                                    if ($par1 > nms_Item_itemsList.data[$var20.$itemID].$maxStackSize)
                                        break x;
                                    $var20.$stackSize = $par1;
                                    $ptr = 16;
                                    continue main;
                                }
                                if ($var17.$itemID == $var20.$itemID && $var17.$itemDamage == $var20.$itemDamage && nms_ItemStack_areItemStackTagsEqual($var17, $var20)) {
                                    $var19 = $par2 ? 1 : $var20.$stackSize;
                                    if ($var19 > ($var16.$getSlotStackLimit() - $var17.$stackSize | 0))
                                        $var19 = $var16.$getSlotStackLimit() - $var17.$stackSize | 0;
                                    nms_Item_$callClinit();
                                    var$9 = nms_Item_itemsList.data;
                                    $par3 = $var20.$itemID;
                                    $par2 = var$9[$par3].$maxStackSize;
                                    $par1 = $var17.$stackSize;
                                    if ($var19 > ($par2 - $par1 | 0))
                                        $var19 = var$9[$par3].$maxStackSize - $par1 | 0;
                                    $par4EntityPlayer = $var20.$stackTagCompound;
                                    if ($par4EntityPlayer !== null) {
                                        $var16_0 = new ju_HashMap;
                                        $par1 = ju_HashMap_calculateCapacity(16);
                                        $var16_0.$elementCount = 0;
                                        var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                                        var$9 = var$13.data;
                                        $var16_0.$elementData = var$13;
                                        $var16_0.$loadFactor = 0.75;
                                        $var16_0.$threshold = var$9.length * 0.75 | 0;
                                        $var12 = $par4EntityPlayer.$tagMap;
                                        if ($var12.$cachedKeySet === null) {
                                            $var17_0 = new ju_HashMap$1;
                                            $var17_0.$this$0 = $var12;
                                            $var12.$cachedKeySet = $var17_0;
                                        }
                                        $var12 = $var12.$cachedKeySet.$iterator();
                                        while ($var12.$hasNext()) {
                                            $var17_0 = $var12.$next();
                                            $var22 = $par4EntityPlayer.$tagMap;
                                            if ($var17_0 === null) {
                                                $var22 = $var22.$elementData.data[0];
                                                while ($var22 !== null && $var22.$key !== null) {
                                                    $var22 = $var22.$next3;
                                                }
                                            } else {
                                                ba: {
                                                    if (!$var17_0.$hashCode1) {
                                                        $par3 = 0;
                                                        while (true) {
                                                            if ($par3 >= $var17_0.$nativeString.length)
                                                                break ba;
                                                            $var17_0.$hashCode1 = (31 * $var17_0.$hashCode1 | 0) + $var17_0.$nativeString.charCodeAt($par3) | 0;
                                                            $par3 = $par3 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                $par3 = $var17_0.$hashCode1;
                                                var$9 = $var22.$elementData.data;
                                                $var22 = var$9[$par3 & (var$9.length - 1 | 0)];
                                                while ($var22 !== null) {
                                                    if ($var22.$origKeyHash == $par3) {
                                                        bb: {
                                                            $var8 = $var22.$key;
                                                            if ($var17_0 !== $var8) {
                                                                if ($var17_0 === $var8)
                                                                    $par1 = 1;
                                                                else if (!($var8 instanceof jl_String))
                                                                    $par1 = 0;
                                                                else {
                                                                    $var8 = $var8;
                                                                    $par1 = $var17_0.$nativeString !== $var8.$nativeString ? 0 : 1;
                                                                }
                                                                if (!$par1) {
                                                                    $par1 = 0;
                                                                    break bb;
                                                                }
                                                            }
                                                            $par1 = 1;
                                                        }
                                                        if ($par1)
                                                            break;
                                                    }
                                                    $var22 = $var22.$next3;
                                                }
                                            }
                                            $var22 = $var22 === null ? null : $var22.$value0;
                                            $var22 = $var22.$copy();
                                            if ($var17_0 !== null)
                                                $var22.$name = $var17_0;
                                            else
                                                $var22.$name = $rt_s(3);
                                            ju_HashMap_putImpl($var16_0, $var17_0, $var22);
                                        }
                                    }
                                    $par1 = $var20.$stackSize - $var19 | 0;
                                    $var20.$stackSize = $par1;
                                    if (!$par1)
                                        $var6.$itemStack = null;
                                    $var17.$stackSize = $var17.$stackSize + $var19 | 0;
                                } else if ($var20.$stackSize <= $var16.$getSlotStackLimit()) {
                                    $par4EntityPlayer = $var16.$inventory;
                                    $par1 = $var16.$slotIndex;
                                    $ptr = 8;
                                    continue main;
                                }
                            }
                        }
                        $par4EntityPlayer = $var16.$inventory;
                        $ptr = 5;
                        continue main;
                    }
                } else {
                    $par4EntityPlayer = new jl_IndexOutOfBoundsException;
                    $par4EntityPlayer.$suppressionEnabled = 1;
                    $par4EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par4EntityPlayer);
                }
            }
        }
        return $var5;
    case 1:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par4EntityPlayer, $var12, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $var6.$itemStack = null;
        if ($par2 != 1)
            return $var5;
        $var16 = $var6.$itemStack;
        $var16_0 = new nms_ItemStack;
        $par1 = $var16.$itemID;
        $par2 = $var16.$itemDamage;
        nms_ItemStack_$callClinit();
        $var16_0.$itemID = $par1;
        $var16_0.$stackSize = 1;
        $var16_0.$itemDamage = $par2;
        if ($par2 < 0)
            $var16_0.$itemDamage = 0;
        $var8 = $var16.$stackTagCompound;
        if ($var8 !== null) {
            $var20 = new nms_NBTTagCompound;
            $var12 = $var8.$name;
            if ($var12 === null)
                $var12 = $rt_s(3);
            $var20.$name = $var12;
            $var12 = new ju_HashMap;
            $par1 = ju_HashMap_calculateCapacity(16);
            $var12.$elementCount = 0;
            var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
            var$9 = var$13.data;
            $var12.$elementData = var$13;
            $var12.$loadFactor = 0.75;
            $var12.$threshold = var$9.length * 0.75 | 0;
            $var20.$tagMap = $var12;
            $var17_0 = $var8.$tagMap;
            if ($var17_0.$cachedKeySet === null) {
                $var12 = new ju_HashMap$1;
                $var12.$this$0 = $var17_0;
                $var17_0.$cachedKeySet = $var12;
            }
            $var10 = $var17_0.$cachedKeySet.$iterator();
            while ($var10.$hasNext()) {
                $var11 = $var10.$next();
                $var12 = $var8.$tagMap;
                if ($var11 === null) {
                    $var12 = $var12.$elementData.data[0];
                    while ($var12 !== null && $var12.$key !== null) {
                        $var12 = $var12.$next3;
                    }
                } else {
                    bc: {
                        if (!$var11.$hashCode1) {
                            $par1 = 0;
                            while (true) {
                                if ($par1 >= $var11.$nativeString.length)
                                    break bc;
                                $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt($par1) | 0;
                                $par1 = $par1 + 1 | 0;
                            }
                        }
                    }
                    $par3 = $var11.$hashCode1;
                    var$9 = $var12.$elementData.data;
                    $var12 = var$9[$par3 & (var$9.length - 1 | 0)];
                    while ($var12 !== null) {
                        if ($var12.$origKeyHash == $par3) {
                            bd: {
                                $var17_0 = $var12.$key;
                                if ($var11 !== $var17_0) {
                                    if ($var11 === $var17_0)
                                        $par1 = 1;
                                    else if (!($var17_0 instanceof jl_String))
                                        $par1 = 0;
                                    else {
                                        $var17_0 = $var17_0;
                                        $par1 = $var11.$nativeString !== $var17_0.$nativeString ? 0 : 1;
                                    }
                                    if (!$par1) {
                                        $par1 = 0;
                                        break bd;
                                    }
                                }
                                $par1 = 1;
                            }
                            if ($par1)
                                break;
                        }
                        $var12 = $var12.$next3;
                    }
                }
                $var12 = $var12 === null ? null : $var12.$value0;
                $var22 = $var12.$copy();
                $var12 = $var20.$tagMap;
                if ($var11 !== null)
                    $var22.$name = $var11;
                else
                    $var22.$name = $rt_s(3);
                ju_HashMap_putImpl($var12, $var11, $var22);
            }
            $var16_0.$stackTagCompound = $var20;
        }
        $var16.$stackSize = $var16.$stackSize - 1 | 0;
        $par1 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = $this.$transferStackInSlot($par4EntityPlayer, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $var17_0 = $tmp;
        if ($var17_0 !== null) {
            $var9_0 = $var17_0.$itemID;
            $var5 = new nms_ItemStack;
            $par3 = $var17_0.$stackSize;
            $var9 = $var17_0.$itemDamage;
            nms_ItemStack_$callClinit();
            $var5.$itemID = $var9_0;
            $var5.$stackSize = $par3;
            $var5.$itemDamage = $var9;
            if ($var9 < 0)
                $var5.$itemDamage = 0;
            $var8 = $var17_0.$stackTagCompound;
            if ($var8 !== null) {
                $var20 = new nms_NBTTagCompound;
                $var12 = $var8.$name;
                if ($var12 === null)
                    $var12 = $rt_s(3);
                $var20.$name = $var12;
                $var12 = new ju_HashMap;
                $par3 = ju_HashMap_calculateCapacity(16);
                $var12.$elementCount = 0;
                var$9 = $rt_createArray(ju_HashMap$HashEntry, $par3);
                var$13 = var$9.data;
                $var12.$elementData = var$9;
                $var12.$loadFactor = 0.75;
                $var12.$threshold = var$13.length * 0.75 | 0;
                $var20.$tagMap = $var12;
                $var12 = $var8.$tagMap;
                if ($var12.$cachedKeySet === null) {
                    $var17_0 = new ju_HashMap$1;
                    $var17_0.$this$0 = $var12;
                    $var12.$cachedKeySet = $var17_0;
                }
                $var16 = $var12.$cachedKeySet.$iterator();
                while ($var16.$hasNext()) {
                    $var22 = $var16.$next();
                    $var12 = $var8.$tagMap;
                    if ($var22 === null) {
                        $var10 = $var12.$elementData.data[0];
                        while ($var10 !== null && $var10.$key !== null) {
                            $var10 = $var10.$next3;
                        }
                    } else {
                        be: {
                            if (!$var22.$hashCode1) {
                                $par3 = 0;
                                while (true) {
                                    if ($par3 >= $var22.$nativeString.length)
                                        break be;
                                    $var22.$hashCode1 = (31 * $var22.$hashCode1 | 0) + $var22.$nativeString.charCodeAt($par3) | 0;
                                    $par3 = $par3 + 1 | 0;
                                }
                            }
                        }
                        $var9 = $var22.$hashCode1;
                        var$9 = $var12.$elementData.data;
                        $var10 = var$9[$var9 & (var$9.length - 1 | 0)];
                        while ($var10 !== null) {
                            if ($var10.$origKeyHash == $var9) {
                                bf: {
                                    $var12 = $var10.$key;
                                    if ($var22 !== $var12) {
                                        if ($var22 === $var12)
                                            $par3 = 1;
                                        else if (!($var12 instanceof jl_String))
                                            $par3 = 0;
                                        else {
                                            $var12 = $var12;
                                            $par3 = $var22.$nativeString !== $var12.$nativeString ? 0 : 1;
                                        }
                                        if (!$par3) {
                                            $par3 = 0;
                                            break bf;
                                        }
                                    }
                                    $par3 = 1;
                                }
                                if ($par3)
                                    break;
                            }
                            $var10 = $var10.$next3;
                        }
                    }
                    $var12 = $var10 === null ? null : $var10.$value0;
                    $var12 = $var12.$copy();
                    $var17_0 = $var20.$tagMap;
                    if ($var22 !== null)
                        $var12.$name = $var22;
                    else
                        $var12.$name = $rt_s(3);
                    ju_HashMap_putImpl($var17_0, $var22, $var12);
                }
                $var5.$stackTagCompound = $var20;
            }
            if ($var16_0.$inventory.$getStackInSlot($var16_0.$slotIndex) !== null && ($var16_0.$inventory.$getStackInSlot($var16_0.$slotIndex)).$itemID == $var9_0) {
                $par3 = 1;
                $ptr = 6;
                continue main;
            }
        }
        return $var5;
    case 3:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par4EntityPlayer, $var16_0, $par1);
        if ($rt_suspending()) {
            break main;
        }
        if (!$var6.$itemStack.$stackSize)
            $var6.$itemStack = null;
        return $var5;
    case 4:
        $this.$detectAndSendChanges();
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 5:
        $par4EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 6:
        nms_Container_slotClick($this, $par1, $par2, $par3, $par4EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 7:
        $tmp = $var16.$decrStackSize0($var19);
        if ($rt_suspending()) {
            break main;
        }
        $var22 = $tmp;
        $var6.$itemStack = $var22;
        if ($var17.$stackSize) {
            $var12 = $var6.$itemStack;
            $ptr = 10;
            continue main;
        }
        $var12 = null;
        $var17_0 = $var16.$inventory;
        $par1 = $var16.$slotIndex;
        $ptr = 11;
        continue main;
    case 8:
        $par4EntityPlayer.$setInventorySlotContents($par1, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 9;
    case 9:
        $par4EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $var6.$itemStack = $var17;
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 5;
        continue main;
    case 10:
        $var16.$onPickupFromSlot($par4EntityPlayer, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 5;
        continue main;
    case 11:
        $var17_0.$setInventorySlotContents($par1, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var16.$inventory;
        $ptr = 12;
    case 12:
        $var12.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var6.$itemStack;
        $ptr = 10;
        continue main;
    case 13:
        $tmp = $var16.$decrStackSize0($par1);
        if ($rt_suspending()) {
            break main;
        }
        $var17_0 = $tmp;
        $ptr = 14;
    case 14:
        $var16.$onPickupFromSlot($par4EntityPlayer, $var17_0);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = 0;
        $ptr = 15;
    case 15:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par4EntityPlayer, $var17_0, $par1);
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 16:
        $tmp = $var16.$decrStackSize0($var19);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12.$stackSize) {
            $var12 = $var6.$itemStack;
            $ptr = 19;
            continue main;
        }
        $var12 = null;
        $var17_0 = $var16.$inventory;
        $par1 = $var16.$slotIndex;
        $ptr = 20;
        continue main;
    case 17:
        $par4EntityPlayer.$setInventorySlotContents($par1, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 18;
    case 18:
        $par4EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if (!$var20.$stackSize)
            $var6.$itemStack = null;
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 5;
        continue main;
    case 19:
        $var16.$onPickupFromSlot($par4EntityPlayer, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 5;
        continue main;
    case 20:
        $var17_0.$setInventorySlotContents($par1, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var16.$inventory;
        $ptr = 21;
    case 21:
        $var12.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var6.$itemStack;
        $ptr = 19;
        continue main;
    case 22:
        $par4EntityPlayer.$setInventorySlotContents($par1, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $par4EntityPlayer = $var16.$inventory;
        $ptr = 23;
    case 23:
        $par4EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 24:
        $var16.$decrStackSize0($par1);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var16.$inventory;
        $par1 = $var16.$slotIndex;
        $ptr = 25;
    case 25:
        $var12.$setInventorySlotContents($par1, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var16.$inventory;
        $ptr = 26;
    case 26:
        $var12.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 27;
    case 27:
        $var16.$onPickupFromSlot($par4EntityPlayer, $var22_0);
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 28:
        $var16.$decrStackSize0($par1);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = null;
        $var17_0 = $var16.$inventory;
        $par1 = $var16.$slotIndex;
        $ptr = 29;
    case 29:
        $var17_0.$setInventorySlotContents($par1, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var16.$inventory;
        $ptr = 30;
    case 30:
        $var12.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 31;
    case 31:
        $var16.$onPickupFromSlot($par4EntityPlayer, $var22_0);
        if ($rt_suspending()) {
            break main;
        }
        return $var5;
    case 32:
        $par4EntityPlayer.$setInventorySlotContents($par1, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4EntityPlayer = $var11.$inventory;
        $ptr = 33;
    case 33:
        $par4EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        while ($var10.$hasNext()) {
            $var11 = $var10.$next();
            if ($var11 === null)
                continue;
            if (!nms_Container_func_94527_a($var11, $var6.$itemStack, 1))
                continue;
            if (!$var11.$isItemValid($var6.$itemStack))
                continue;
            if ($var6.$itemStack.$stackSize >= $this.$field_94537_h.$backingMap.$elementCount) {
                $var12 = new nms_ItemStack;
                $par1 = $var17.$itemID;
                $par2 = $var17.$stackSize;
                $par3 = $var17.$itemDamage;
                $var12.$itemID = $par1;
                $var12.$stackSize = $par2;
                $var12.$itemDamage = $par3;
                if ($par3 < 0)
                    $var12.$itemDamage = 0;
                $par4EntityPlayer = $var17.$stackTagCompound;
                if ($par4EntityPlayer !== null) {
                    $var17_0 = new nms_NBTTagCompound;
                    $var16 = $par4EntityPlayer.$name;
                    if ($var16 === null)
                        $var16 = $rt_s(3);
                    $var17_0.$name = $var16;
                    $var16 = new ju_HashMap;
                    $par1 = ju_HashMap_calculateCapacity(16);
                    $var16.$elementCount = 0;
                    var$13 = $rt_createArray(ju_HashMap$HashEntry, $par1);
                    var$9 = var$13.data;
                    $var16.$elementData = var$13;
                    $var16.$loadFactor = 0.75;
                    $var16.$threshold = var$9.length * 0.75 | 0;
                    $var17_0.$tagMap = $var16;
                    $var16 = $par4EntityPlayer.$tagMap;
                    if ($var16.$cachedKeySet === null) {
                        $var22 = new ju_HashMap$1;
                        $var22.$this$0 = $var16;
                        $var16.$cachedKeySet = $var22;
                    }
                    $var16 = $var16.$cachedKeySet.$iterator();
                    while ($var16.$hasNext()) {
                        $var22 = $var16.$next();
                        $var16_0 = $par4EntityPlayer.$tagMap;
                        if ($var22 === null) {
                            $var16_0 = $var16_0.$elementData.data[0];
                            while ($var16_0 !== null && $var16_0.$key !== null) {
                                $var16_0 = $var16_0.$next3;
                            }
                        } else {
                            bg: {
                                if (!$var22.$hashCode1) {
                                    $par1 = 0;
                                    while (true) {
                                        if ($par1 >= $var22.$nativeString.length)
                                            break bg;
                                        $var22.$hashCode1 = (31 * $var22.$hashCode1 | 0) + $var22.$nativeString.charCodeAt($par1) | 0;
                                        $par1 = $par1 + 1 | 0;
                                    }
                                }
                            }
                            $par3 = $var22.$hashCode1;
                            var$9 = $var16_0.$elementData.data;
                            $var16_0 = var$9[$par3 & (var$9.length - 1 | 0)];
                            while ($var16_0 !== null) {
                                if ($var16_0.$origKeyHash == $par3) {
                                    bh: {
                                        $var8 = $var16_0.$key;
                                        if ($var22 !== $var8) {
                                            if ($var22 === $var8)
                                                $par1 = 1;
                                            else if (!($var8 instanceof jl_String))
                                                $par1 = 0;
                                            else {
                                                $var8 = $var8;
                                                $par1 = $var22.$nativeString !== $var8.$nativeString ? 0 : 1;
                                            }
                                            if (!$par1) {
                                                $par1 = 0;
                                                break bh;
                                            }
                                        }
                                        $par1 = 1;
                                    }
                                    if ($par1)
                                        break;
                                }
                                $var16_0 = $var16_0.$next3;
                            }
                        }
                        $var16_0 = $var16_0 === null ? null : $var16_0.$value0;
                        $var16_0 = $var16_0.$copy();
                        $var8 = $var17_0.$tagMap;
                        if ($var22 !== null)
                            $var16_0.$name = $var22;
                        else
                            $var16_0.$name = $rt_s(3);
                        ju_HashMap_putImpl($var8, $var22, $var16_0);
                    }
                    $var12.$stackTagCompound = $var17_0;
                }
                $var13 = !($var11.$inventory.$getStackInSlot($var11.$slotIndex) === null ? 0 : 1) ? 0 : ($var11.$inventory.$getStackInSlot($var11.$slotIndex)).$stackSize;
                bi: {
                    $par4EntityPlayer = $this.$field_94537_h;
                    switch ($this.$field_94535_f) {
                        case 0:
                            var$21 = $var12.$stackSize / $par4EntityPlayer.$backingMap.$elementCount;
                            $par1 = var$21 | 0;
                            if (var$21 < $par1)
                                $par1 = $par1 - 1 | 0;
                            $var12.$stackSize = $par1;
                            break bi;
                        case 1:
                            break;
                        default:
                            break bi;
                    }
                    $var12.$stackSize = 1;
                }
                $par3 = $var12.$stackSize + $var13 | 0;
                $var12.$stackSize = $par3;
                nms_Item_$callClinit();
                var$9 = nms_Item_itemsList.data;
                $par2 = $var12.$itemID;
                if ($par3 > var$9[$par2].$maxStackSize)
                    $var12.$stackSize = var$9[$par2].$maxStackSize;
                if ($var12.$stackSize > $var11.$getSlotStackLimit())
                    $var12.$stackSize = $var11.$getSlotStackLimit();
                $var9 = $var9 - ($var12.$stackSize - $var13 | 0) | 0;
                $par4EntityPlayer = $var11.$inventory;
                $par1 = $var11.$slotIndex;
                $ptr = 32;
                continue main;
            }
        }
        $var17.$stackSize = $var9;
        if ($var9 <= 0)
            $var17 = null;
        $var6.$itemStack = $var17;
        nms_Container_func_94533_d($this);
        return $var5;
    case 34:
        $tmp = $var24.$decrStackSize0($var14_0);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        $var17_0.$stackSize = $var17_0.$stackSize + $var14_0 | 0;
        if ($var15.$stackSize > 0) {
            $ptr = 35;
            continue main;
        }
        $var12 = $var24.$inventory;
        $par1 = $var24.$slotIndex;
        $ptr = 36;
        continue main;
    case 35:
        $var24.$onPickupFromSlot($par4EntityPlayer, $var15);
        if ($rt_suspending()) {
            break main;
        }
        bj: {
            while (true) {
                $var23 = $var23 + $var19 | 0;
                while (true) {
                    if ($var23 >= 0) {
                        $var12 = $this.$inventorySlots;
                        $par1 = $rt_compare($var23, $var12.$size0);
                        if ($par1 < 0) {
                            $par2 = $var17_0.$stackSize;
                            nms_Item_$callClinit();
                            if ($par2 < nms_Item_itemsList.data[$var17_0.$itemID].$maxStackSize)
                                break;
                        }
                    }
                    $var21 = $var21 + 1 | 0;
                    if ($var21 >= 2) {
                        $ptr = 4;
                        continue main;
                    }
                    $var23 = $var9;
                }
                if ($var23 < 0)
                    break;
                if ($par1 >= 0)
                    break;
                $var24 = $var12.$array.data[$var23];
                if (!($var24.$inventory.$getStackInSlot($var24.$slotIndex) === null ? 0 : 1))
                    continue;
                if (!nms_Container_func_94527_a($var24, $var17_0, 1))
                    continue;
                if (!$var24.$canTakeStack($par4EntityPlayer))
                    continue;
                if (!$this.$func_94530_a($var17_0, $var24))
                    continue;
                if ($var21)
                    break bj;
                $par1 = ($var24.$inventory.$getStackInSlot($var24.$slotIndex)).$stackSize;
                $var12 = $var24.$inventory.$getStackInSlot($var24.$slotIndex);
                if ($par1 == nms_Item_itemsList.data[$var12.$itemID].$maxStackSize)
                    continue;
                else
                    break bj;
            }
            $par4EntityPlayer = new jl_IndexOutOfBoundsException;
            $par4EntityPlayer.$suppressionEnabled = 1;
            $par4EntityPlayer.$writableStackTrace = 1;
            $rt_throw($par4EntityPlayer);
        }
        $var14 = nms_Item_itemsList.data[$var17_0.$itemID].$maxStackSize - $var17_0.$stackSize | 0;
        $var14_0 = ($var24.$inventory.$getStackInSlot($var24.$slotIndex)).$stackSize;
        if ($var14 < $var14_0)
            $var14_0 = $var14;
        $ptr = 34;
        continue main;
    case 36:
        $var12.$setInventorySlotContents($par1, $var22);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $var24.$inventory;
        $ptr = 37;
    case 37:
        $var12.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 35;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4EntityPlayer, $var5, $var6, $var7, $var12, var$9, $var8, $var17, $var17_0, var$13, $var16, $var22, $var16_0, $var9, $var10, $var11, $var13, var$21, $var18, $var19, $var22_0, $var20, $var21, $var23, $var24, $var14, $var14_0, $var9_0, $var15, $ptr);
},
nms_Container_func_94530_a = ($this, $par1ItemStack, $par2Slot) => {
    return 1;
},
nms_Container_retrySlotClick = ($this, $par1, $par2, $par3, $par4EntityPlayer) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par4EntityPlayer = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par3 = 1;
        $ptr = 1;
    case 1:
        nms_Container_slotClick($this, $par1, $par2, $par3, $par4EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $par3, $par4EntityPlayer, $ptr);
},
nms_Container_onContainerClosed = ($this, $par1EntityPlayer) => {
    let $var2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1EntityPlayer.$inventory0;
        var$3 = $var2.$itemStack;
        if (var$3 === null)
            return;
        var$4 = 0;
        $ptr = 1;
    case 1:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2.$itemStack = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, var$3, var$4, $ptr);
},
nms_Container_onCraftMatrixChanged = ($this, $par1IInventory) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par1IInventory = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Container_detectAndSendChanges($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IInventory, $ptr);
},
nms_Container_isPlayerNotUsingContainer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$playerList.$backingMap;
    if ($par1EntityPlayer === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$3 = $par1EntityPlayer.$entityId;
        var$4 = var$2.$elementData.data;
        var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$3) {
                var$5 = var$2.$key;
                if ($par1EntityPlayer !== var$5 && !(!(var$5 instanceof nms_Entity) ? 0 : var$5.$entityId != var$3 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    return (var$2 === null ? 0 : 1) ? 0 : 1;
},
nms_Container_setPlayerIsPresent = ($this, $par1EntityPlayer, $par2) => {
    let var$3;
    if (!$par2) {
        var$3 = $this.$playerList;
        ju_HashMap_putImpl(var$3.$backingMap, $par1EntityPlayer, var$3);
    } else
        $par1EntityPlayer = ju_HashMap_removeByKey($this.$playerList.$backingMap, $par1EntityPlayer);
},
nms_Container_mergeItemStack = ($this, $par1ItemStack, $par2, $par3, $par4) => {
    let var$5, var$6, $var9, var$8, $var7, $var8, var$11, var$12, $var8_0, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var8_0 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$8 = $thread.pop();$var9 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = !$par4 ? $par2 : $par3 - 1 | 0;
        a: {
            b: {
                nms_Item_$callClinit();
                var$6 = nms_Item_itemsList.data;
                $var9 = $par1ItemStack.$itemID;
                if (var$6[$var9].$maxStackSize > 1) {
                    if (!(var$6[$var9].$maxDamage <= 0 ? 0 : 1))
                        break b;
                    var$8 = var$6[$var9].$maxDamage <= 0 ? 0 : 1;
                    if (!(var$8 && $par1ItemStack.$itemDamage > 0 ? 1 : 0))
                        break b;
                }
                var$8 = 0;
                break a;
            }
            var$8 = 1;
        }
        c: {
            if (var$8) {
                while (true) {
                    if ($par1ItemStack.$stackSize <= 0)
                        break c;
                    if (!(!$par4 && var$5 < $par3)) {
                        if (!$par4)
                            break c;
                        if (var$5 < $par2)
                            break c;
                    }
                    $var7 = $this.$inventorySlots;
                    if (var$5 < 0)
                        break;
                    if (var$5 >= $var7.$size0)
                        break;
                    $var7 = $var7.$array.data[var$5];
                    $var8 = $var7.$inventory.$getStackInSlot($var7.$slotIndex);
                    if ($var8 !== null) {
                        var$8 = $var8.$itemID;
                        var$11 = $par1ItemStack.$itemID;
                        if (var$8 == var$11 && !(nms_Item_itemsList.data[var$11].$hasSubtypes && $par1ItemStack.$itemDamage != $var8.$itemDamage) && nms_ItemStack_areItemStackTagsEqual($par1ItemStack, $var8)) {
                            var$8 = $var8.$stackSize;
                            var$11 = $par1ItemStack.$stackSize;
                            $var9 = var$8 + var$11 | 0;
                            var$6 = nms_Item_itemsList.data;
                            var$12 = $par1ItemStack.$itemID;
                            if ($var9 <= var$6[var$12].$maxStackSize) {
                                $par1ItemStack.$stackSize = 0;
                                $var8.$stackSize = $var9;
                                $var7 = $var7.$inventory;
                                $ptr = 4;
                                continue main;
                            }
                            if (var$8 < var$6[var$12].$maxStackSize) {
                                $par1ItemStack.$stackSize = var$11 - (var$6[var$12].$maxStackSize - var$8 | 0) | 0;
                                $var8.$stackSize = var$6[var$12].$maxStackSize;
                                $var7 = $var7.$inventory;
                                $ptr = 5;
                                continue main;
                            }
                        }
                    }
                    if (!$par4) {
                        var$5 = var$5 + 1 | 0;
                        continue;
                    }
                    var$5 = var$5 + (-1) | 0;
                }
                $par1ItemStack = new jl_IndexOutOfBoundsException;
                $par1ItemStack.$suppressionEnabled = 1;
                $par1ItemStack.$writableStackTrace = 1;
                $rt_throw($par1ItemStack);
            }
        }
        d: {
            e: {
                if ($par1ItemStack.$stackSize > 0) {
                    var$5 = !$par4 ? $par2 : $par3 - 1 | 0;
                    while (true) {
                        if (!(!$par4 && var$5 < $par3)) {
                            if (!$par4)
                                break e;
                            if (var$5 < $par2)
                                break;
                        }
                        $var7 = $this.$inventorySlots;
                        if (var$5 < 0)
                            break d;
                        if (var$5 >= $var7.$size0)
                            break d;
                        $var7 = $var7.$array.data[var$5];
                        if ($var7.$inventory.$getStackInSlot($var7.$slotIndex) === null) {
                            $var8 = new nms_ItemStack;
                            $par2 = $par1ItemStack.$itemID;
                            $par3 = $par1ItemStack.$stackSize;
                            $par4 = $par1ItemStack.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var8.$itemID = $par2;
                            $var8.$stackSize = $par3;
                            $var8.$itemDamage = $par4;
                            if ($par4 < 0)
                                $var8.$itemDamage = 0;
                            $var8_0 = $par1ItemStack.$stackTagCompound;
                            if ($var8_0 !== null) {
                                var$14 = new nms_NBTTagCompound;
                                var$15 = $var8_0.$name;
                                if (var$15 === null)
                                    var$15 = $rt_s(3);
                                var$14.$name = var$15;
                                var$15 = new ju_HashMap;
                                $par2 = ju_HashMap_calculateCapacity(16);
                                var$15.$elementCount = 0;
                                var$16 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                                var$6 = var$16.data;
                                var$15.$elementData = var$16;
                                var$15.$loadFactor = 0.75;
                                var$15.$threshold = var$6.length * 0.75 | 0;
                                var$14.$tagMap = var$15;
                                var$15 = $var8_0.$tagMap;
                                if (var$15.$cachedKeySet === null) {
                                    var$17 = new ju_HashMap$1;
                                    var$17.$this$0 = var$15;
                                    var$15.$cachedKeySet = var$17;
                                }
                                var$15 = var$15.$cachedKeySet.$iterator();
                                while (var$15.$hasNext()) {
                                    var$17 = var$15.$next();
                                    var$18 = $var8_0.$tagMap;
                                    if (var$17 === null) {
                                        var$18 = var$18.$elementData.data[0];
                                        while (var$18 !== null && var$18.$key !== null) {
                                            var$18 = var$18.$next3;
                                        }
                                    } else {
                                        f: {
                                            if (!var$17.$hashCode1) {
                                                $par2 = 0;
                                                while (true) {
                                                    if ($par2 >= var$17.$nativeString.length)
                                                        break f;
                                                    var$17.$hashCode1 = (31 * var$17.$hashCode1 | 0) + var$17.$nativeString.charCodeAt($par2) | 0;
                                                    $par2 = $par2 + 1 | 0;
                                                }
                                            }
                                        }
                                        $par4 = var$17.$hashCode1;
                                        var$6 = var$18.$elementData.data;
                                        var$18 = var$6[$par4 & (var$6.length - 1 | 0)];
                                        while (var$18 !== null) {
                                            if (var$18.$origKeyHash == $par4) {
                                                g: {
                                                    var$19 = var$18.$key;
                                                    if (var$17 !== var$19) {
                                                        if (var$17 === var$19)
                                                            $par2 = 1;
                                                        else if (!(var$19 instanceof jl_String))
                                                            $par2 = 0;
                                                        else {
                                                            var$19 = var$19;
                                                            $par2 = var$17.$nativeString !== var$19.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par2) {
                                                            $par2 = 0;
                                                            break g;
                                                        }
                                                    }
                                                    $par2 = 1;
                                                }
                                                if ($par2)
                                                    break;
                                            }
                                            var$18 = var$18.$next3;
                                        }
                                    }
                                    var$18 = var$18 === null ? null : var$18.$value0;
                                    var$18 = var$18.$copy();
                                    var$19 = var$14.$tagMap;
                                    if (var$17 !== null)
                                        var$18.$name = var$17;
                                    else
                                        var$18.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$19, var$17, var$18);
                                }
                                $var8.$stackTagCompound = var$14;
                            }
                            $var8_0 = $var7.$inventory;
                            $par2 = $var7.$slotIndex;
                            $ptr = 1;
                            continue main;
                        }
                        if (!$par4) {
                            var$5 = var$5 + 1 | 0;
                            continue;
                        }
                        var$5 = var$5 + (-1) | 0;
                    }
                }
            }
            return 0;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 1:
        $var8_0.$setInventorySlotContents($par2, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var8_0 = $var7.$inventory;
        $ptr = 2;
    case 2:
        $var8_0.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7.$inventory;
        $ptr = 3;
    case 3:
        $var7.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack.$stackSize = 0;
        return 1;
    case 4:
        $var7.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        a: {
            while (true) {
                var$5 = !$par4 ? var$5 + 1 | 0 : var$5 + (-1) | 0;
                if ($par1ItemStack.$stackSize <= 0)
                    break a;
                if (!(!$par4 && var$5 < $par3)) {
                    if (!$par4)
                        break a;
                    if (var$5 < $par2)
                        break a;
                }
                $var7 = $this.$inventorySlots;
                if (var$5 < 0)
                    break;
                if (var$5 >= $var7.$size0)
                    break;
                $var7 = $var7.$array.data[var$5];
                $var8 = $var7.$inventory.$getStackInSlot($var7.$slotIndex);
                if ($var8 === null)
                    continue;
                var$8 = $var8.$itemID;
                var$11 = $par1ItemStack.$itemID;
                if (var$8 != var$11)
                    continue;
                if (nms_Item_itemsList.data[var$11].$hasSubtypes && $par1ItemStack.$itemDamage != $var8.$itemDamage)
                    continue;
                if (!nms_ItemStack_areItemStackTagsEqual($par1ItemStack, $var8))
                    continue;
                var$8 = $var8.$stackSize;
                var$11 = $par1ItemStack.$stackSize;
                $var9 = var$8 + var$11 | 0;
                var$6 = nms_Item_itemsList.data;
                var$12 = $par1ItemStack.$itemID;
                if ($var9 <= var$6[var$12].$maxStackSize) {
                    $par1ItemStack.$stackSize = 0;
                    $var8.$stackSize = $var9;
                    $var7 = $var7.$inventory;
                    continue main;
                }
                if (var$8 < var$6[var$12].$maxStackSize) {
                    $par1ItemStack.$stackSize = var$11 - (var$6[var$12].$maxStackSize - var$8 | 0) | 0;
                    $var8.$stackSize = var$6[var$12].$maxStackSize;
                    $var7 = $var7.$inventory;
                    $ptr = 5;
                    continue main;
                }
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            $rt_throw($par1ItemStack);
        }
        h: {
            i: {
                if ($par1ItemStack.$stackSize > 0) {
                    var$5 = !$par4 ? $par2 : $par3 - 1 | 0;
                    while (true) {
                        if (!(!$par4 && var$5 < $par3)) {
                            if (!$par4)
                                break i;
                            if (var$5 < $par2)
                                break;
                        }
                        $var7 = $this.$inventorySlots;
                        if (var$5 < 0)
                            break h;
                        if (var$5 >= $var7.$size0)
                            break h;
                        $var7 = $var7.$array.data[var$5];
                        if ($var7.$inventory.$getStackInSlot($var7.$slotIndex) === null) {
                            $var8 = new nms_ItemStack;
                            $par2 = $par1ItemStack.$itemID;
                            $par3 = $par1ItemStack.$stackSize;
                            $par4 = $par1ItemStack.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var8.$itemID = $par2;
                            $var8.$stackSize = $par3;
                            $var8.$itemDamage = $par4;
                            if ($par4 < 0)
                                $var8.$itemDamage = 0;
                            $var8_0 = $par1ItemStack.$stackTagCompound;
                            if ($var8_0 !== null) {
                                var$14 = new nms_NBTTagCompound;
                                var$15 = $var8_0.$name;
                                if (var$15 === null)
                                    var$15 = $rt_s(3);
                                var$14.$name = var$15;
                                var$15 = new ju_HashMap;
                                $par2 = ju_HashMap_calculateCapacity(16);
                                var$15.$elementCount = 0;
                                var$16 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                                var$6 = var$16.data;
                                var$15.$elementData = var$16;
                                var$15.$loadFactor = 0.75;
                                var$15.$threshold = var$6.length * 0.75 | 0;
                                var$14.$tagMap = var$15;
                                var$15 = $var8_0.$tagMap;
                                if (var$15.$cachedKeySet === null) {
                                    var$17 = new ju_HashMap$1;
                                    var$17.$this$0 = var$15;
                                    var$15.$cachedKeySet = var$17;
                                }
                                var$15 = var$15.$cachedKeySet.$iterator();
                                while (var$15.$hasNext()) {
                                    var$17 = var$15.$next();
                                    var$18 = $var8_0.$tagMap;
                                    if (var$17 === null) {
                                        var$18 = var$18.$elementData.data[0];
                                        while (var$18 !== null && var$18.$key !== null) {
                                            var$18 = var$18.$next3;
                                        }
                                    } else {
                                        j: {
                                            if (!var$17.$hashCode1) {
                                                $par2 = 0;
                                                while (true) {
                                                    if ($par2 >= var$17.$nativeString.length)
                                                        break j;
                                                    var$17.$hashCode1 = (31 * var$17.$hashCode1 | 0) + var$17.$nativeString.charCodeAt($par2) | 0;
                                                    $par2 = $par2 + 1 | 0;
                                                }
                                            }
                                        }
                                        $par4 = var$17.$hashCode1;
                                        var$6 = var$18.$elementData.data;
                                        var$18 = var$6[$par4 & (var$6.length - 1 | 0)];
                                        while (var$18 !== null) {
                                            if (var$18.$origKeyHash == $par4) {
                                                k: {
                                                    var$19 = var$18.$key;
                                                    if (var$17 !== var$19) {
                                                        if (var$17 === var$19)
                                                            $par2 = 1;
                                                        else if (!(var$19 instanceof jl_String))
                                                            $par2 = 0;
                                                        else {
                                                            var$19 = var$19;
                                                            $par2 = var$17.$nativeString !== var$19.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par2) {
                                                            $par2 = 0;
                                                            break k;
                                                        }
                                                    }
                                                    $par2 = 1;
                                                }
                                                if ($par2)
                                                    break;
                                            }
                                            var$18 = var$18.$next3;
                                        }
                                    }
                                    var$18 = var$18 === null ? null : var$18.$value0;
                                    var$18 = var$18.$copy();
                                    var$19 = var$14.$tagMap;
                                    if (var$17 !== null)
                                        var$18.$name = var$17;
                                    else
                                        var$18.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$19, var$17, var$18);
                                }
                                $var8.$stackTagCompound = var$14;
                            }
                            $var8_0 = $var7.$inventory;
                            $par2 = $var7.$slotIndex;
                            $ptr = 1;
                            continue main;
                        }
                        if (!$par4) {
                            var$5 = var$5 + 1 | 0;
                            continue;
                        }
                        var$5 = var$5 + (-1) | 0;
                    }
                }
            }
            return 1;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    case 5:
        $var7.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        a: {
            while (true) {
                var$5 = !$par4 ? var$5 + 1 | 0 : var$5 + (-1) | 0;
                if ($par1ItemStack.$stackSize <= 0)
                    break a;
                if (!(!$par4 && var$5 < $par3)) {
                    if (!$par4)
                        break a;
                    if (var$5 < $par2)
                        break a;
                }
                $var7 = $this.$inventorySlots;
                if (var$5 < 0)
                    break;
                if (var$5 >= $var7.$size0)
                    break;
                $var7 = $var7.$array.data[var$5];
                $var8 = $var7.$inventory.$getStackInSlot($var7.$slotIndex);
                if ($var8 === null)
                    continue;
                var$8 = $var8.$itemID;
                var$11 = $par1ItemStack.$itemID;
                if (var$8 != var$11)
                    continue;
                if (nms_Item_itemsList.data[var$11].$hasSubtypes && $par1ItemStack.$itemDamage != $var8.$itemDamage)
                    continue;
                if (!nms_ItemStack_areItemStackTagsEqual($par1ItemStack, $var8))
                    continue;
                var$8 = $var8.$stackSize;
                var$11 = $par1ItemStack.$stackSize;
                $var9 = var$8 + var$11 | 0;
                var$6 = nms_Item_itemsList.data;
                var$12 = $par1ItemStack.$itemID;
                if ($var9 <= var$6[var$12].$maxStackSize) {
                    $par1ItemStack.$stackSize = 0;
                    $var8.$stackSize = $var9;
                    $var7 = $var7.$inventory;
                    $ptr = 4;
                    continue main;
                }
                if (var$8 < var$6[var$12].$maxStackSize) {
                    $par1ItemStack.$stackSize = var$11 - (var$6[var$12].$maxStackSize - var$8 | 0) | 0;
                    $var8.$stackSize = var$6[var$12].$maxStackSize;
                    $var7 = $var7.$inventory;
                    continue main;
                }
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            $rt_throw($par1ItemStack);
        }
        h: {
            i: {
                if ($par1ItemStack.$stackSize > 0) {
                    var$5 = !$par4 ? $par2 : $par3 - 1 | 0;
                    while (true) {
                        if (!(!$par4 && var$5 < $par3)) {
                            if (!$par4)
                                break i;
                            if (var$5 < $par2)
                                break;
                        }
                        $var7 = $this.$inventorySlots;
                        if (var$5 < 0)
                            break h;
                        if (var$5 >= $var7.$size0)
                            break h;
                        $var7 = $var7.$array.data[var$5];
                        if ($var7.$inventory.$getStackInSlot($var7.$slotIndex) === null) {
                            $var8 = new nms_ItemStack;
                            $par2 = $par1ItemStack.$itemID;
                            $par3 = $par1ItemStack.$stackSize;
                            $par4 = $par1ItemStack.$itemDamage;
                            nms_ItemStack_$callClinit();
                            $var8.$itemID = $par2;
                            $var8.$stackSize = $par3;
                            $var8.$itemDamage = $par4;
                            if ($par4 < 0)
                                $var8.$itemDamage = 0;
                            $var8_0 = $par1ItemStack.$stackTagCompound;
                            if ($var8_0 !== null) {
                                var$14 = new nms_NBTTagCompound;
                                var$15 = $var8_0.$name;
                                if (var$15 === null)
                                    var$15 = $rt_s(3);
                                var$14.$name = var$15;
                                var$15 = new ju_HashMap;
                                $par2 = ju_HashMap_calculateCapacity(16);
                                var$15.$elementCount = 0;
                                var$16 = $rt_createArray(ju_HashMap$HashEntry, $par2);
                                var$6 = var$16.data;
                                var$15.$elementData = var$16;
                                var$15.$loadFactor = 0.75;
                                var$15.$threshold = var$6.length * 0.75 | 0;
                                var$14.$tagMap = var$15;
                                var$15 = $var8_0.$tagMap;
                                if (var$15.$cachedKeySet === null) {
                                    var$17 = new ju_HashMap$1;
                                    var$17.$this$0 = var$15;
                                    var$15.$cachedKeySet = var$17;
                                }
                                var$15 = var$15.$cachedKeySet.$iterator();
                                while (var$15.$hasNext()) {
                                    var$17 = var$15.$next();
                                    var$18 = $var8_0.$tagMap;
                                    if (var$17 === null) {
                                        var$18 = var$18.$elementData.data[0];
                                        while (var$18 !== null && var$18.$key !== null) {
                                            var$18 = var$18.$next3;
                                        }
                                    } else {
                                        j: {
                                            if (!var$17.$hashCode1) {
                                                $par2 = 0;
                                                while (true) {
                                                    if ($par2 >= var$17.$nativeString.length)
                                                        break j;
                                                    var$17.$hashCode1 = (31 * var$17.$hashCode1 | 0) + var$17.$nativeString.charCodeAt($par2) | 0;
                                                    $par2 = $par2 + 1 | 0;
                                                }
                                            }
                                        }
                                        $par4 = var$17.$hashCode1;
                                        var$6 = var$18.$elementData.data;
                                        var$18 = var$6[$par4 & (var$6.length - 1 | 0)];
                                        while (var$18 !== null) {
                                            if (var$18.$origKeyHash == $par4) {
                                                k: {
                                                    var$19 = var$18.$key;
                                                    if (var$17 !== var$19) {
                                                        if (var$17 === var$19)
                                                            $par2 = 1;
                                                        else if (!(var$19 instanceof jl_String))
                                                            $par2 = 0;
                                                        else {
                                                            var$19 = var$19;
                                                            $par2 = var$17.$nativeString !== var$19.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$par2) {
                                                            $par2 = 0;
                                                            break k;
                                                        }
                                                    }
                                                    $par2 = 1;
                                                }
                                                if ($par2)
                                                    break;
                                            }
                                            var$18 = var$18.$next3;
                                        }
                                    }
                                    var$18 = var$18 === null ? null : var$18.$value0;
                                    var$18 = var$18.$copy();
                                    var$19 = var$14.$tagMap;
                                    if (var$17 !== null)
                                        var$18.$name = var$17;
                                    else
                                        var$18.$name = $rt_s(3);
                                    ju_HashMap_putImpl(var$19, var$17, var$18);
                                }
                                $var8.$stackTagCompound = var$14;
                            }
                            $var8_0 = $var7.$inventory;
                            $par2 = $var7.$slotIndex;
                            $ptr = 1;
                            continue main;
                        }
                        if (!$par4) {
                            var$5 = var$5 + 1 | 0;
                            continue;
                        }
                        var$5 = var$5 + (-1) | 0;
                    }
                }
            }
            return 1;
        }
        $par1ItemStack = new jl_IndexOutOfBoundsException;
        $par1ItemStack.$suppressionEnabled = 1;
        $par1ItemStack.$writableStackTrace = 1;
        $rt_throw($par1ItemStack);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2, $par3, $par4, var$5, var$6, $var9, var$8, $var7, $var8, var$11, var$12, $var8_0, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_Container_func_94533_d = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    $this.$field_94536_g = 0;
    var$1 = $this.$field_94537_h.$backingMap;
    if (var$1.$elementCount > 0) {
        var$1.$elementCount = 0;
        var$2 = var$1.$elementData.data;
        var$3 = null;
        var$4 = 0;
        var$5 = var$2.length;
        if (var$4 > var$5) {
            var$1 = new jl_IllegalArgumentException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        while (var$4 < var$5) {
            var$6 = var$4 + 1 | 0;
            var$2[var$4] = var$3;
            var$4 = var$6;
        }
        var$1.$modCount1 = var$1.$modCount1 + 1 | 0;
    }
},
nms_Container_func_94527_a = ($par0Slot, $par1ItemStack, $par2) => {
    let $var3, var$5, $var10002;
    $var3 = $par0Slot !== null && ($par0Slot.$inventory.$getStackInSlot($par0Slot.$slotIndex) === null ? 0 : 1) ? 0 : 1;
    if ($par0Slot !== null && ($par0Slot.$inventory.$getStackInSlot($par0Slot.$slotIndex) === null ? 0 : 1) && $par1ItemStack !== null) {
        var$5 = $par0Slot.$inventory.$getStackInSlot($par0Slot.$slotIndex);
        if (($par1ItemStack.$itemID == var$5.$itemID && $par1ItemStack.$itemDamage == var$5.$itemDamage ? 1 : 0) && nms_ItemStack_areItemStackTagsEqual($par0Slot.$inventory.$getStackInSlot($par0Slot.$slotIndex), $par1ItemStack)) {
            $var10002 = !$par2 ? $par1ItemStack.$stackSize : 0;
            $par2 = ($par0Slot.$inventory.$getStackInSlot($par0Slot.$slotIndex)).$stackSize + $var10002 | 0;
            nms_Item_$callClinit();
            $var3 = $var3 | ($par2 > nms_Item_itemsList.data[$par1ItemStack.$itemID].$maxStackSize ? 0 : 1);
        }
    }
    return $var3;
},
nms_Container_canDragIntoSlot = ($this, $par1Slot) => {
    return 1;
},
nms_Container_calcRedstoneFromInventory = $par0IInventory => {
    let $var1, $var2, $var3, $var4, var$6, var$7, var$8;
    if ($par0IInventory === null)
        return 0;
    $var1 = 0;
    $var2 = 0.0;
    $var3 = 0;
    while ($var3 < $par0IInventory.$getSizeInventory()) {
        $var4 = $par0IInventory.$getStackInSlot($var3);
        if ($var4 !== null) {
            var$6 = $var4.$stackSize;
            var$7 = $par0IInventory.$getInventoryStackLimit();
            nms_Item_$callClinit();
            var$8 = nms_Item_itemsList.data[$var4.$itemID].$maxStackSize;
            if (var$7 < var$8)
                var$8 = var$7;
            $var2 = $var2 + var$6 / var$8;
            $var1 = $var1 + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    $var2 = $var2 / $par0IInventory.$getSizeInventory() * 14.0;
    $var3 = $var2 | 0;
    if ($var2 < $var3)
        $var3 = $var3 - 1 | 0;
    return $var3 + ($var1 <= 0 ? 0 : 1) | 0;
};
function nms_ContainerPlayer() {
    let a = this; nms_Container.call(a);
    a.$craftMatrix1 = null;
    a.$craftResult = null;
    a.$isLocalWorld = 0;
    a.$thePlayer4 = null;
}
let nms_ContainerPlayer__init_ = ($this, $par1InventoryPlayer, $par2, $par3EntityPlayer) => {
    let var$4, var$5, var$6, $var4, var$8, $var5, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3EntityPlayer = $thread.pop();$par2 = $thread.pop();$par1InventoryPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = new ju_ArrayList;
        var$4.$array = $rt_createArray(jl_Object, 10);
        $this.$inventoryItemStacks = var$4;
        var$4 = new ju_ArrayList;
        var$4.$array = $rt_createArray(jl_Object, 10);
        $this.$inventorySlots = var$4;
        $this.$field_94535_f = (-1);
        $this.$field_94537_h = ju_HashSet__init_();
        var$4 = new ju_ArrayList;
        var$4.$array = $rt_createArray(jl_Object, 10);
        $this.$crafters = var$4;
        $this.$playerList = ju_HashSet__init_();
        var$5 = new nms_InventoryCrafting;
        var$5.$stackList = $rt_createArray(nms_ItemStack, 4);
        var$5.$eventHandler = $this;
        var$5.$inventoryWidth = 2;
        $this.$craftMatrix1 = var$5;
        var$4 = new nms_InventoryCraftResult;
        var$4.$stackResult = $rt_createArray(nms_ItemStack, 1);
        $this.$craftResult = var$4;
        $this.$isLocalWorld = $par2;
        $this.$thePlayer4 = $par3EntityPlayer;
        $par3EntityPlayer = new nms_SlotCrafting;
        var$6 = $par1InventoryPlayer.$player;
        $par3EntityPlayer.$inventory = var$4;
        $par3EntityPlayer.$slotIndex = 0;
        $par3EntityPlayer.$xDisplayPosition = 144;
        $par3EntityPlayer.$yDisplayPosition = 36;
        $par3EntityPlayer.$thePlayer = var$6;
        $par3EntityPlayer.$craftMatrix = var$5;
        var$4 = $this.$inventorySlots;
        $var4 = var$4.$size0;
        $par3EntityPlayer.$slotNumber = $var4;
        ju_ArrayList_ensureCapacity(var$4, $var4 + 1 | 0);
        var$8 = var$4.$array.data;
        $var4 = var$4.$size0;
        var$4.$size0 = $var4 + 1 | 0;
        var$8[$var4] = $par3EntityPlayer;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        $par3EntityPlayer = $this.$inventoryItemStacks;
        var$4 = null;
        ju_ArrayList_ensureCapacity($par3EntityPlayer, $par3EntityPlayer.$size0 + 1 | 0);
        var$8 = $par3EntityPlayer.$array.data;
        $var4 = $par3EntityPlayer.$size0;
        $par3EntityPlayer.$size0 = $var4 + 1 | 0;
        var$8[$var4] = var$4;
        $par3EntityPlayer.$modCount = $par3EntityPlayer.$modCount + 1 | 0;
        $var4 = 0;
        while ($var4 < 2) {
            $var5 = 0;
            while ($var5 < 2) {
                $par3EntityPlayer = new nms_Slot;
                var$4 = $this.$craftMatrix1;
                $par2 = $var5 + ($var4 * 2 | 0) | 0;
                var$10 = 88 + ($var5 * 18 | 0) | 0;
                var$11 = 26 + ($var4 * 18 | 0) | 0;
                $par3EntityPlayer.$inventory = var$4;
                $par3EntityPlayer.$slotIndex = $par2;
                $par3EntityPlayer.$xDisplayPosition = var$10;
                $par3EntityPlayer.$yDisplayPosition = var$11;
                var$4 = $this.$inventorySlots;
                var$10 = var$4.$size0;
                $par3EntityPlayer.$slotNumber = var$10;
                ju_ArrayList_ensureCapacity(var$4, var$10 + 1 | 0);
                var$8 = var$4.$array.data;
                var$10 = var$4.$size0;
                var$4.$size0 = var$10 + 1 | 0;
                var$8[var$10] = $par3EntityPlayer;
                var$4.$modCount = var$4.$modCount + 1 | 0;
                $par3EntityPlayer = $this.$inventoryItemStacks;
                var$4 = null;
                ju_ArrayList_ensureCapacity($par3EntityPlayer, $par3EntityPlayer.$size0 + 1 | 0);
                var$8 = $par3EntityPlayer.$array.data;
                var$10 = $par3EntityPlayer.$size0;
                $par3EntityPlayer.$size0 = var$10 + 1 | 0;
                var$8[var$10] = var$4;
                $par3EntityPlayer.$modCount = $par3EntityPlayer.$modCount + 1 | 0;
                $var5 = $var5 + 1 | 0;
            }
            $var4 = $var4 + 1 | 0;
        }
        $var4 = 0;
        while ($var4 < 4) {
            $par3EntityPlayer = new nms_SlotArmor;
            $var5 = (($par1InventoryPlayer.$mainInventory.data.length + 4 | 0) - 1 | 0) - $var4 | 0;
            $par2 = 8 + ($var4 * 18 | 0) | 0;
            $par3EntityPlayer.$inventory = $par1InventoryPlayer;
            $par3EntityPlayer.$slotIndex = $var5;
            $par3EntityPlayer.$xDisplayPosition = 8;
            $par3EntityPlayer.$yDisplayPosition = $par2;
            $par3EntityPlayer.$parent2 = $this;
            $par3EntityPlayer.$armorType0 = $var4;
            var$4 = $this.$inventorySlots;
            $var5 = var$4.$size0;
            $par3EntityPlayer.$slotNumber = $var5;
            ju_ArrayList_ensureCapacity(var$4, $var5 + 1 | 0);
            var$8 = var$4.$array.data;
            $var5 = var$4.$size0;
            var$4.$size0 = $var5 + 1 | 0;
            var$8[$var5] = $par3EntityPlayer;
            var$4.$modCount = var$4.$modCount + 1 | 0;
            $par3EntityPlayer = $this.$inventoryItemStacks;
            var$4 = null;
            ju_ArrayList_ensureCapacity($par3EntityPlayer, $par3EntityPlayer.$size0 + 1 | 0);
            var$8 = $par3EntityPlayer.$array.data;
            $var5 = $par3EntityPlayer.$size0;
            $par3EntityPlayer.$size0 = $var5 + 1 | 0;
            var$8[$var5] = var$4;
            $par3EntityPlayer.$modCount = $par3EntityPlayer.$modCount + 1 | 0;
            $var4 = $var4 + 1 | 0;
        }
        $par2 = 0;
        while ($par2 < 3) {
            $var5 = 0;
            while ($var5 < 9) {
                $par3EntityPlayer = new nms_Slot;
                $var4 = $var5 + (($par2 + 1 | 0) * 9 | 0) | 0;
                var$10 = 8 + ($var5 * 18 | 0) | 0;
                var$11 = 84 + ($par2 * 18 | 0) | 0;
                $par3EntityPlayer.$inventory = $par1InventoryPlayer;
                $par3EntityPlayer.$slotIndex = $var4;
                $par3EntityPlayer.$xDisplayPosition = var$10;
                $par3EntityPlayer.$yDisplayPosition = var$11;
                var$4 = $this.$inventorySlots;
                var$10 = var$4.$size0;
                $par3EntityPlayer.$slotNumber = var$10;
                ju_ArrayList_ensureCapacity(var$4, var$10 + 1 | 0);
                var$8 = var$4.$array.data;
                var$10 = var$4.$size0;
                var$4.$size0 = var$10 + 1 | 0;
                var$8[var$10] = $par3EntityPlayer;
                var$4.$modCount = var$4.$modCount + 1 | 0;
                $par3EntityPlayer = $this.$inventoryItemStacks;
                var$4 = null;
                ju_ArrayList_ensureCapacity($par3EntityPlayer, $par3EntityPlayer.$size0 + 1 | 0);
                var$8 = $par3EntityPlayer.$array.data;
                var$10 = $par3EntityPlayer.$size0;
                $par3EntityPlayer.$size0 = var$10 + 1 | 0;
                var$8[var$10] = var$4;
                $par3EntityPlayer.$modCount = $par3EntityPlayer.$modCount + 1 | 0;
                $var5 = $var5 + 1 | 0;
            }
            $par2 = $par2 + 1 | 0;
        }
        $par2 = 0;
        while ($par2 < 9) {
            $par3EntityPlayer = new nms_Slot;
            $var4 = 8 + ($par2 * 18 | 0) | 0;
            $par3EntityPlayer.$inventory = $par1InventoryPlayer;
            $par3EntityPlayer.$slotIndex = $par2;
            $par3EntityPlayer.$xDisplayPosition = $var4;
            $par3EntityPlayer.$yDisplayPosition = 142;
            var$4 = $this.$inventorySlots;
            $var5 = var$4.$size0;
            $par3EntityPlayer.$slotNumber = $var5;
            ju_ArrayList_ensureCapacity(var$4, $var5 + 1 | 0);
            var$8 = var$4.$array.data;
            $var5 = var$4.$size0;
            var$4.$size0 = $var5 + 1 | 0;
            var$8[$var5] = $par3EntityPlayer;
            var$4.$modCount = var$4.$modCount + 1 | 0;
            $par3EntityPlayer = $this.$inventoryItemStacks;
            var$4 = null;
            ju_ArrayList_ensureCapacity($par3EntityPlayer, $par3EntityPlayer.$size0 + 1 | 0);
            var$8 = $par3EntityPlayer.$array.data;
            $var5 = $par3EntityPlayer.$size0;
            $par3EntityPlayer.$size0 = $var5 + 1 | 0;
            var$8[$var5] = var$4;
            $par3EntityPlayer.$modCount = $par3EntityPlayer.$modCount + 1 | 0;
            $par2 = $par2 + 1 | 0;
        }
        $par1InventoryPlayer = $this.$craftResult;
        nms_CraftingManager_$callClinit();
        var$5 = nms_CraftingManager_instance;
        $par3EntityPlayer = $this.$craftMatrix1;
        var$4 = $this.$thePlayer4.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_CraftingManager_findMatchingRecipe(var$5, $par3EntityPlayer, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $par3EntityPlayer = $tmp;
        $par1InventoryPlayer.$stackResult.data[0] = $par3EntityPlayer;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1InventoryPlayer, $par2, $par3EntityPlayer, var$4, var$5, var$6, $var4, var$8, $var5, var$10, var$11, $ptr);
},
nms_ContainerPlayer__init_0 = (var_0, var_1, var_2) => {
    let var_3 = new nms_ContainerPlayer();
    nms_ContainerPlayer__init_(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ContainerPlayer_onCraftMatrixChanged = ($this, $par1IInventory) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1IInventory = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1IInventory = $this.$craftResult;
        nms_CraftingManager_$callClinit();
        var$2 = nms_CraftingManager_instance;
        var$3 = $this.$craftMatrix1;
        var$4 = $this.$thePlayer4.$worldObj;
        $ptr = 1;
    case 1:
        $tmp = nms_CraftingManager_findMatchingRecipe(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        $par1IInventory.$stackResult.data[0] = var$3;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IInventory, var$2, var$3, var$4, $ptr);
},
nms_ContainerPlayer_onContainerClosed = ($this, $par1EntityPlayer) => {
    let $var3, var$3, $var2, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1EntityPlayer.$inventory0;
        var$3 = $var3.$itemStack;
        if (var$3 !== null) {
            $var2 = 0;
            $ptr = 1;
            continue main;
        }
        $var2 = 0;
        while ($var2 < 4) {
            var$5 = $this.$craftMatrix1.$stackList.data;
            if (var$5[$var2] === null)
                $var3 = null;
            else {
                $var3 = var$5[$var2];
                var$5[$var2] = null;
            }
            if ($var3 !== null) {
                var$6 = 0;
                $ptr = 2;
                continue main;
            }
            $var2 = $var2 + 1 | 0;
        }
        $var3 = $this.$craftResult;
        $var3.$stackResult.data[0] = null;
        return;
    case 1:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$3, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3.$itemStack = null;
        $var2 = 0;
        while ($var2 < 4) {
            var$5 = $this.$craftMatrix1.$stackList.data;
            if (var$5[$var2] === null)
                $var3 = null;
            else {
                $var3 = var$5[$var2];
                var$5[$var2] = null;
            }
            if ($var3 !== null) {
                var$6 = 0;
                $ptr = 2;
                continue main;
            }
            $var2 = $var2 + 1 | 0;
        }
        $var3 = $this.$craftResult;
        $var3.$stackResult.data[0] = null;
        return;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, $var3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var2 = $var2 + 1 | 0;
            if ($var2 >= 4)
                break;
            var$5 = $this.$craftMatrix1.$stackList.data;
            if (var$5[$var2] === null)
                $var3 = null;
            else {
                $var3 = var$5[$var2];
                var$5[$var2] = null;
            }
            if ($var3 === null)
                continue;
            else {
                var$6 = 0;
                continue main;
            }
        }
        $var3 = $this.$craftResult;
        $var3.$stackResult.data[0] = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var3, var$3, $var2, var$5, var$6, $ptr);
},
nms_ContainerPlayer_canInteractWith = ($this, $par1EntityPlayer) => {
    return 1;
},
nms_ContainerPlayer_transferStackInSlot = ($this, $par1EntityPlayer, $par2) => {
    let $var3, var$4, $var4, $var5, $var6, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = null;
        var$4 = $this.$inventorySlots;
        if ($par2 >= 0 && $par2 < var$4.$size0) {
            $var4 = var$4.$array.data[$par2];
            if ($var4 !== null && ($var4.$inventory.$getStackInSlot($var4.$slotIndex) === null ? 0 : 1)) {
                $var5 = $var4.$inventory.$getStackInSlot($var4.$slotIndex);
                $var3 = new nms_ItemStack;
                $var6 = $var5.$itemID;
                var$8 = $var5.$stackSize;
                var$9 = $var5.$itemDamage;
                nms_ItemStack_$callClinit();
                $var3.$itemID = $var6;
                $var3.$stackSize = var$8;
                $var3.$itemDamage = var$9;
                if (var$9 < 0)
                    $var3.$itemDamage = 0;
                var$10 = $var5.$stackTagCompound;
                if (var$10 !== null) {
                    var$11 = new nms_NBTTagCompound;
                    var$4 = var$10.$name;
                    if (var$4 === null)
                        var$4 = $rt_s(3);
                    var$11.$name = var$4;
                    var$4 = new ju_HashMap;
                    $var6 = ju_HashMap_calculateCapacity(16);
                    var$4.$elementCount = 0;
                    var$12 = $rt_createArray(ju_HashMap$HashEntry, $var6);
                    var$13 = var$12.data;
                    var$4.$elementData = var$12;
                    var$4.$loadFactor = 0.75;
                    var$4.$threshold = var$13.length * 0.75 | 0;
                    var$11.$tagMap = var$4;
                    var$14 = var$10.$tagMap;
                    if (var$14.$cachedKeySet === null) {
                        var$4 = new ju_HashMap$1;
                        var$4.$this$0 = var$14;
                        var$14.$cachedKeySet = var$4;
                    }
                    var$15 = var$14.$cachedKeySet.$iterator();
                    while (var$15.$hasNext()) {
                        var$16 = var$15.$next();
                        var$4 = var$10.$tagMap;
                        if (var$16 === null) {
                            var$4 = var$4.$elementData.data[0];
                            while (var$4 !== null && var$4.$key !== null) {
                                var$4 = var$4.$next3;
                            }
                        } else {
                            a: {
                                if (!var$16.$hashCode1) {
                                    $var6 = 0;
                                    while (true) {
                                        if ($var6 >= var$16.$nativeString.length)
                                            break a;
                                        var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt($var6) | 0;
                                        $var6 = $var6 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = var$16.$hashCode1;
                            var$13 = var$4.$elementData.data;
                            var$4 = var$13[var$9 & (var$13.length - 1 | 0)];
                            while (var$4 !== null) {
                                if (var$4.$origKeyHash == var$9) {
                                    b: {
                                        var$14 = var$4.$key;
                                        if (var$16 !== var$14) {
                                            if (var$16 === var$14)
                                                $var6 = 1;
                                            else if (!(var$14 instanceof jl_String))
                                                $var6 = 0;
                                            else {
                                                var$14 = var$14;
                                                $var6 = var$16.$nativeString !== var$14.$nativeString ? 0 : 1;
                                            }
                                            if (!$var6) {
                                                $var6 = 0;
                                                break b;
                                            }
                                        }
                                        $var6 = 1;
                                    }
                                    if ($var6)
                                        break;
                                }
                                var$4 = var$4.$next3;
                            }
                        }
                        var$4 = var$4 === null ? null : var$4.$value0;
                        var$4 = var$4.$copy();
                        var$14 = var$11.$tagMap;
                        if (var$16 !== null)
                            var$4.$name = var$16;
                        else
                            var$4.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$14, var$16, var$4);
                    }
                    $var3.$stackTagCompound = var$11;
                }
                if (!$par2) {
                    $par2 = 9;
                    $var6 = 45;
                    var$8 = 1;
                    $ptr = 1;
                    continue main;
                }
                if ($par2 >= 1 && $par2 < 5) {
                    $par2 = 9;
                    $var6 = 45;
                    var$8 = 0;
                    $ptr = 2;
                    continue main;
                }
                if ($par2 >= 5 && $par2 < 9) {
                    $par2 = 9;
                    $var6 = 45;
                    var$8 = 0;
                    $ptr = 3;
                    continue main;
                }
                c: {
                    nms_Item_$callClinit();
                    var$13 = nms_Item_itemsList.data;
                    var$8 = $var3.$itemID;
                    if (var$13[var$8] instanceof nms_ItemArmor) {
                        var$4 = $this.$inventorySlots;
                        $var6 = 5 + var$13[var$8].$armorType | 0;
                        if ($var6 >= 0 && $var6 < var$4.$size0) {
                            var$4 = var$4.$array.data[$var6];
                            if (var$4.$inventory.$getStackInSlot(var$4.$slotIndex) === null ? 0 : 1)
                                break c;
                            $var6 = 5 + nms_Item_itemsList.data[$var3.$itemID].$armorType | 0;
                            $par2 = $var6 + 1 | 0;
                            var$8 = 0;
                            $ptr = 12;
                            continue main;
                        }
                        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                        $par1EntityPlayer.$suppressionEnabled = 1;
                        $par1EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par1EntityPlayer);
                    }
                }
                if ($par2 >= 9 && $par2 < 36) {
                    $par2 = 36;
                    $var6 = 45;
                    var$8 = 0;
                    $ptr = 9;
                    continue main;
                }
                if ($par2 >= 36 && $par2 < 45) {
                    $par2 = 9;
                    $var6 = 36;
                    var$8 = 0;
                    $ptr = 10;
                    continue main;
                }
                $par2 = 9;
                $var6 = 45;
                var$8 = 0;
                $ptr = 8;
                continue main;
            }
            return $var3;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$itemID == $var3.$itemID) {
            $par2 = $var3.$stackSize - $var5.$stackSize | 0;
            if ($par2 > 0) {
                $ptr = 4;
                continue main;
            }
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 2:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 3:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 4:
        $var4.$onCrafting($var5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 5:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 11;
        continue main;
    case 6:
        var$14.$setInventorySlotContents($par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $var4.$inventory;
        $ptr = 7;
    case 7:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 11;
        continue main;
    case 8:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 9:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 10:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, $var6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    case 11:
        $var4.$onPickupFromSlot($par1EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 12:
        $tmp = nms_Container_mergeItemStack($this, $var5, $var6, $par2, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 5;
            continue main;
        }
        var$4 = null;
        var$14 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 6;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $var3, var$4, $var4, $var5, $var6, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_ContainerPlayer_func_94530_a = ($this, $par1ItemStack, $par2Slot) => {
    return $par2Slot.$inventory === $this.$craftResult ? 0 : 1;
},
nms_BehaviorDispenseItemProvider = $rt_classWithoutFields(),
nms_BehaviorDispenseItemProvider__init_ = $this => {
    return;
},
nms_BehaviorDispenseItemProvider__init_0 = () => {
    let var_0 = new nms_BehaviorDispenseItemProvider();
    nms_BehaviorDispenseItemProvider__init_(var_0);
    return var_0;
},
nms_IEnchantmentModifier = $rt_classWithoutFields(0);
function nms_EnchantmentModifierDamage() {
    let a = this; jl_Object.call(a);
    a.$damageModifier = 0;
    a.$source = null;
}
let nms_EnchantmentModifierDamage__init_ = $this => {
    return;
},
nms_EnchantmentModifierDamage__init_0 = () => {
    let var_0 = new nms_EnchantmentModifierDamage();
    nms_EnchantmentModifierDamage__init_(var_0);
    return var_0;
},
nms_EnchantmentModifierDamage_calculateModifier = ($this, $par1Enchantment, $par2) => {
    $this.$damageModifier = $this.$damageModifier + $par1Enchantment.$calcModifierDamage($par2, $this.$source) | 0;
};
function nms_EnchantmentModifierLiving() {
    let a = this; jl_Object.call(a);
    a.$livingModifier = 0.0;
    a.$entityLiving = null;
}
let nms_EnchantmentModifierLiving__init_ = $this => {
    return;
},
nms_EnchantmentModifierLiving__init_0 = () => {
    let var_0 = new nms_EnchantmentModifierLiving();
    nms_EnchantmentModifierLiving__init_(var_0);
    return var_0;
},
nms_EnchantmentModifierLiving_calculateModifier = ($this, $par1Enchantment, $par2) => {
    $this.$livingModifier = $this.$livingModifier + $par1Enchantment.$calcModifierLiving($par2, $this.$entityLiving);
};
function nms_Enchantment() {
    let a = this; jl_Object.call(a);
    a.$effectId = 0;
    a.$weight = 0;
    a.$type0 = null;
    a.$name5 = null;
}
let nms_Enchantment_enchantmentsList = null,
nms_Enchantment_enchantmentsBookList = null,
nms_Enchantment_protection = null,
nms_Enchantment_fireProtection = null,
nms_Enchantment_featherFalling = null,
nms_Enchantment_blastProtection = null,
nms_Enchantment_projectileProtection = null,
nms_Enchantment_respiration = null,
nms_Enchantment_aquaAffinity = null,
nms_Enchantment_thorns = null,
nms_Enchantment_sharpness = null,
nms_Enchantment_smite = null,
nms_Enchantment_baneOfArthropods = null,
nms_Enchantment_knockback = null,
nms_Enchantment_fireAspect = null,
nms_Enchantment_looting = null,
nms_Enchantment_efficiency = null,
nms_Enchantment_silkTouch = null,
nms_Enchantment_unbreaking = null,
nms_Enchantment_fortune = null,
nms_Enchantment_power = null,
nms_Enchantment_punch = null,
nms_Enchantment_flame = null,
nms_Enchantment_infinity = null,
nms_Enchantment_$callClinit = () => {
    nms_Enchantment_$callClinit = $rt_eraseClinit(nms_Enchantment);
    nms_Enchantment__clinit_();
},
nms_Enchantment_getWeight = $this => {
    return $this.$weight;
},
nms_Enchantment_getMinLevel = $this => {
    return 1;
},
nms_Enchantment_calcModifierDamage = ($this, $par1, $par2DamageSource) => {
    return 0;
},
nms_Enchantment_calcModifierLiving = ($this, $par1, $par2EntityLivingBase) => {
    return 0.0;
},
nms_Enchantment_canApplyTogether = ($this, $par1Enchantment) => {
    return $this === $par1Enchantment ? 0 : 1;
},
nms_Enchantment_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$name5;
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2629));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_Enchantment_getTranslatedName = ($this, $par1) => {
    let var$2, $var2, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$getName();
    nms_StatCollector_$callClinit();
    $var2 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$2);
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2630));
    jl_AbstractStringBuilder_insert0(var$2, var$2.$length0, $par1, 10);
    var$4 = new jl_String;
    var$5 = var$2.$buffer;
    var$6 = var$5.data;
    var$7 = var$2.$length0;
    var$8 = var$6.length;
    if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
        var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
        var$4 = nms_StringTranslate_translateKey(nms_StatCollector_localizedName, var$4);
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        $par1 = var$2.$length0;
        if ($var2 === null)
            $var2 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, $par1, $var2);
        var$7 = var$2.$length0;
        jl_AbstractStringBuilder_insertSpace(var$2, var$7, var$7 + 1 | 0);
        var$2.$buffer.data[var$7] = 32;
        $par1 = var$2.$length0;
        if (var$4 === null)
            var$4 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, $par1, var$4);
        var$4 = new jl_String;
        var$5 = var$2.$buffer;
        var$6 = var$5.data;
        var$7 = var$2.$length0;
        var$8 = var$6.length;
        if (var$7 >= 0 && var$7 <= (var$8 - 0 | 0)) {
            var$4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$7);
            return var$4;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        $rt_throw(var$2);
    }
    var$2 = new jl_IndexOutOfBoundsException;
    var$2.$suppressionEnabled = 1;
    var$2.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$2);
    $rt_throw(var$2);
},
nms_Enchantment_canApply = ($this, $par1ItemStack) => {
    let var$2;
    var$2 = $this.$type0;
    nms_Item_$callClinit();
    return nms_EnumEnchantmentType_canEnchantItem(var$2, nms_Item_itemsList.data[$par1ItemStack.$itemID]);
},
nms_Enchantment__clinit_ = () => {
    let $var1, var$2, $var0, $var4, var$5, var$6, $var2, $var3, var$9;
    $var1 = $rt_createArray(nms_Enchantment, 256);
    var$2 = $var1.data;
    nms_Enchantment_enchantmentsList = $var1;
    $var0 = new nms_EnchantmentProtection;
    $var4 = nms_EnumEnchantmentType_armor;
    nms_Enchantment_$callClinit();
    $var0.$effectId = 0;
    $var0.$weight = 10;
    $var0.$type0 = $var4;
    if (var$2[0] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[0] = $var0;
    $var0.$protectionType = 0;
    nms_Enchantment_protection = $var0;
    $var0 = new nms_EnchantmentProtection;
    $var0.$effectId = 1;
    $var0.$weight = 5;
    $var0.$type0 = $var4;
    if (var$2[1] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[1] = $var0;
    $var0.$protectionType = 1;
    nms_Enchantment_fireProtection = $var0;
    $var0 = new nms_EnchantmentProtection;
    $var0.$effectId = 2;
    $var0.$weight = 5;
    $var0.$type0 = $var4;
    if (var$2[2] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[2] = $var0;
    $var0.$protectionType = 2;
    $var0.$type0 = nms_EnumEnchantmentType_armor_feet;
    nms_Enchantment_featherFalling = $var0;
    $var0 = new nms_EnchantmentProtection;
    $var0.$effectId = 3;
    $var0.$weight = 2;
    $var0.$type0 = $var4;
    if (var$2[3] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[3] = $var0;
    $var0.$protectionType = 3;
    nms_Enchantment_blastProtection = $var0;
    $var0 = new nms_EnchantmentProtection;
    $var0.$effectId = 4;
    $var0.$weight = 5;
    $var0.$type0 = $var4;
    if (var$2[4] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[4] = $var0;
    $var0.$protectionType = 4;
    nms_Enchantment_projectileProtection = $var0;
    $var0 = new nms_EnchantmentOxygen;
    $var4 = nms_EnumEnchantmentType_armor_head;
    $var0.$effectId = 5;
    $var0.$weight = 2;
    $var0.$type0 = $var4;
    if (var$2[5] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[5] = $var0;
    $var0.$name5 = $rt_s(2632);
    nms_Enchantment_respiration = $var0;
    $var0 = new nms_EnchantmentWaterWorker;
    $var0.$effectId = 6;
    $var0.$weight = 2;
    $var0.$type0 = $var4;
    if (var$2[6] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[6] = $var0;
    $var0.$name5 = $rt_s(2633);
    nms_Enchantment_aquaAffinity = $var0;
    $var0 = new nms_EnchantmentThorns;
    $var4 = nms_EnumEnchantmentType_armor_torso;
    $var0.$effectId = 7;
    $var0.$weight = 1;
    $var0.$type0 = $var4;
    if (var$2[7] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[7] = $var0;
    $var0.$name5 = $rt_s(2634);
    nms_Enchantment_thorns = $var0;
    $var0 = new nms_EnchantmentDamage;
    var$5 = nms_EnumEnchantmentType_weapon;
    $var0.$effectId = 16;
    $var0.$weight = 10;
    $var0.$type0 = var$5;
    if (var$2[16] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[16] = $var0;
    $var0.$damageType0 = 0;
    nms_Enchantment_sharpness = $var0;
    $var0 = new nms_EnchantmentDamage;
    $var0.$effectId = 17;
    $var0.$weight = 5;
    $var0.$type0 = var$5;
    if (var$2[17] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[17] = $var0;
    $var0.$damageType0 = 1;
    nms_Enchantment_smite = $var0;
    $var0 = new nms_EnchantmentDamage;
    $var0.$effectId = 18;
    $var0.$weight = 5;
    $var0.$type0 = var$5;
    if (var$2[18] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[18] = $var0;
    $var0.$damageType0 = 2;
    nms_Enchantment_baneOfArthropods = $var0;
    $var0 = new nms_EnchantmentKnockback;
    $var0.$effectId = 19;
    $var0.$weight = 5;
    $var0.$type0 = var$5;
    if (var$2[19] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[19] = $var0;
    $var0.$name5 = $rt_s(2635);
    nms_Enchantment_knockback = $var0;
    $var0 = new nms_EnchantmentFireAspect;
    $var0.$effectId = 20;
    $var0.$weight = 2;
    $var0.$type0 = var$5;
    if (var$2[20] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[20] = $var0;
    $var0.$name5 = $rt_s(770);
    nms_Enchantment_fireAspect = $var0;
    $var0 = new nms_EnchantmentLootBonus;
    $var0.$effectId = 21;
    $var0.$weight = 2;
    $var0.$type0 = var$5;
    if (var$2[21] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[21] = $var0;
    $var0.$name5 = $rt_s(2636);
    var$6 = nms_EnumEnchantmentType_digger;
    if (var$5 === var$6)
        $var0.$name5 = $rt_s(2637);
    nms_Enchantment_looting = $var0;
    $var0 = new nms_EnchantmentDigging;
    $var0.$effectId = 32;
    $var0.$weight = 10;
    $var0.$type0 = var$6;
    if (var$2[32] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[32] = $var0;
    $var0.$name5 = $rt_s(2638);
    nms_Enchantment_efficiency = $var0;
    $var0 = new nms_EnchantmentUntouching;
    $var0.$effectId = 33;
    $var0.$weight = 1;
    $var0.$type0 = var$6;
    if (var$2[33] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[33] = $var0;
    $var0.$name5 = $rt_s(2639);
    nms_Enchantment_silkTouch = $var0;
    $var0 = new nms_EnchantmentDurability;
    $var0.$effectId = 34;
    $var0.$weight = 5;
    $var0.$type0 = var$6;
    if (var$2[34] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[34] = $var0;
    $var0.$name5 = $rt_s(2640);
    nms_Enchantment_unbreaking = $var0;
    $var0 = new nms_EnchantmentLootBonus;
    $var0.$effectId = 35;
    $var0.$weight = 2;
    $var0.$type0 = var$6;
    if (var$2[35] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[35] = $var0;
    $var0.$name5 = $rt_s(2636);
    if (var$6 === var$6)
        $var0.$name5 = $rt_s(2637);
    nms_Enchantment_fortune = $var0;
    $var0 = new nms_EnchantmentArrowDamage;
    var$6 = nms_EnumEnchantmentType_bow;
    $var0.$effectId = 48;
    $var0.$weight = 10;
    $var0.$type0 = var$6;
    if (var$2[48] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[48] = $var0;
    $var0.$name5 = $rt_s(2641);
    nms_Enchantment_power = $var0;
    $var0 = new nms_EnchantmentArrowKnockback;
    $var0.$effectId = 49;
    $var0.$weight = 2;
    $var0.$type0 = var$6;
    if (var$2[49] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[49] = $var0;
    $var0.$name5 = $rt_s(2642);
    nms_Enchantment_punch = $var0;
    $var0 = new nms_EnchantmentArrowFire;
    $var0.$effectId = 50;
    $var0.$weight = 2;
    $var0.$type0 = var$6;
    if (var$2[50] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[50] = $var0;
    $var0.$name5 = $rt_s(2643);
    nms_Enchantment_flame = $var0;
    $var0 = new nms_EnchantmentArrowInfinite;
    $var0.$effectId = 51;
    $var0.$weight = 1;
    $var0.$type0 = var$6;
    if (var$2[51] !== null) {
        $var0 = new jl_IllegalArgumentException;
        $var0.$suppressionEnabled = 1;
        $var0.$writableStackTrace = 1;
        $var0.$message = $rt_s(2631);
        $rt_throw($var0);
    }
    var$2[51] = $var0;
    $var0.$name5 = $rt_s(2644);
    nms_Enchantment_infinity = $var0;
    $var0 = new ju_ArrayList;
    $var0.$array = $rt_createArray(jl_Object, 10);
    $var2 = var$2.length;
    $var3 = 0;
    while ($var3 < $var2) {
        $var4 = var$2[$var3];
        if ($var4 !== null) {
            ju_ArrayList_ensureCapacity($var0, $var0.$size0 + 1 | 0);
            $var1 = $var0.$array.data;
            var$9 = $var0.$size0;
            $var0.$size0 = var$9 + 1 | 0;
            $var1[var$9] = $var4;
            $var0.$modCount = $var0.$modCount + 1 | 0;
        }
        $var3 = $var3 + 1 | 0;
    }
    nms_Enchantment_enchantmentsBookList = ju_AbstractCollection_toArray($var0, $rt_createArray(nms_Enchantment, 0));
};
function nms_InventoryCrafting() {
    let a = this; jl_Object.call(a);
    a.$stackList = null;
    a.$inventoryWidth = 0;
    a.$eventHandler = null;
}
let nms_InventoryCrafting_getStackInSlot = ($this, $par1) => {
    let var$2;
    var$2 = $this.$stackList.data;
    return $par1 < var$2.length ? var$2[$par1] : null;
},
nms_InventoryCrafting_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3, var$5, var$6, $var3_0, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3_0 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$stackList.data;
        if (var$3[$par1] === null)
            return null;
        if (var$3[$par1].$stackSize <= $par2) {
            $var3 = var$3[$par1];
            var$3[$par1] = null;
            var$5 = $this.$eventHandler;
            $ptr = 1;
            continue main;
        }
        var$6 = var$3[$par1];
        $var3_0 = new nms_ItemStack;
        var$8 = var$6.$itemID;
        var$9 = var$6.$itemDamage;
        nms_ItemStack_$callClinit();
        $var3_0.$itemID = var$8;
        $var3_0.$stackSize = $par2;
        $var3_0.$itemDamage = var$9;
        if (var$9 < 0)
            $var3_0.$itemDamage = 0;
        $var3 = var$6.$stackTagCompound;
        if ($var3 !== null) {
            var$5 = new nms_NBTTagCompound;
            var$10 = $var3.$name;
            if (var$10 === null)
                var$10 = $rt_s(3);
            var$5.$name = var$10;
            var$10 = new ju_HashMap;
            var$9 = ju_HashMap_calculateCapacity(16);
            var$10.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, var$9);
            var$3 = var$11.data;
            var$10.$elementData = var$11;
            var$10.$loadFactor = 0.75;
            var$10.$threshold = var$3.length * 0.75 | 0;
            var$5.$tagMap = var$10;
            var$12 = $var3.$tagMap;
            if (var$12.$cachedKeySet === null) {
                var$10 = new ju_HashMap$1;
                var$10.$this$0 = var$12;
                var$12.$cachedKeySet = var$10;
            }
            var$13 = var$12.$cachedKeySet.$iterator();
            while (var$13.$hasNext()) {
                var$14 = var$13.$next();
                var$10 = $var3.$tagMap;
                if (var$14 === null) {
                    var$15 = var$10.$elementData.data[0];
                    while (var$15 !== null && var$15.$key !== null) {
                        var$15 = var$15.$next3;
                    }
                } else {
                    a: {
                        if (!var$14.$hashCode1) {
                            var$9 = 0;
                            while (true) {
                                if (var$9 >= var$14.$nativeString.length)
                                    break a;
                                var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$9) | 0;
                                var$9 = var$9 + 1 | 0;
                            }
                        }
                    }
                    var$9 = var$14.$hashCode1;
                    var$3 = var$10.$elementData.data;
                    var$15 = var$3[var$9 & (var$3.length - 1 | 0)];
                    while (var$15 !== null) {
                        if (var$15.$origKeyHash == var$9) {
                            b: {
                                var$10 = var$15.$key;
                                if (var$14 !== var$10) {
                                    if (var$14 === var$10)
                                        var$8 = 1;
                                    else if (!(var$10 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$10 = var$10;
                                        var$8 = var$14.$nativeString !== var$10.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break b;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        var$15 = var$15.$next3;
                    }
                }
                var$10 = var$15 === null ? null : var$15.$value0;
                var$10 = var$10.$copy();
                var$12 = var$5.$tagMap;
                if (var$14 !== null)
                    var$10.$name = var$14;
                else
                    var$10.$name = $rt_s(3);
                ju_HashMap_putImpl(var$12, var$14, var$10);
            }
            $var3_0.$stackTagCompound = var$5;
        }
        var$6.$stackSize = var$6.$stackSize - $par2 | 0;
        var$3 = $this.$stackList.data;
        if (!var$3[$par1].$stackSize)
            var$3[$par1] = null;
        $var3 = $this.$eventHandler;
        $ptr = 2;
        continue main;
    case 1:
        var$5.$onCraftMatrixChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 2:
        $var3.$onCraftMatrixChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return $var3_0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $var3, var$5, var$6, $var3_0, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_InventoryCrafting_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2ItemStack = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$stackList.data[$par1] = $par2ItemStack;
        $par2ItemStack = $this.$eventHandler;
        $ptr = 1;
    case 1:
        $par2ItemStack.$onCraftMatrixChanged($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ItemStack, $ptr);
},
nms_InventoryCrafting_getInventoryStackLimit = $this => {
    return 64;
},
nms_InventoryCrafting_onInventoryChanged = $this => {
    return;
};
function nms_InventoryCraftResult() {
    jl_Object.call(this);
    this.$stackResult = null;
}
let nms_InventoryCraftResult__init_ = $this => {
    $this.$stackResult = $rt_createArray(nms_ItemStack, 1);
},
nms_InventoryCraftResult__init_0 = () => {
    let var_0 = new nms_InventoryCraftResult();
    nms_InventoryCraftResult__init_(var_0);
    return var_0;
},
nms_InventoryCraftResult_getStackInSlot = ($this, $par1) => {
    return $this.$stackResult.data[0];
},
nms_InventoryCraftResult_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $var3;
    var$3 = $this.$stackResult.data;
    if (var$3[0] === null)
        return null;
    $var3 = var$3[0];
    var$3[0] = null;
    return $var3;
},
nms_InventoryCraftResult_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    $this.$stackResult.data[0] = $par2ItemStack;
},
nms_InventoryCraftResult_getInventoryStackLimit = $this => {
    return 64;
},
nms_InventoryCraftResult_onInventoryChanged = $this => {
    return;
};
function nms_Slot() {
    let a = this; jl_Object.call(a);
    a.$slotIndex = 0;
    a.$inventory = null;
    a.$slotNumber = 0;
    a.$xDisplayPosition = 0;
    a.$yDisplayPosition = 0;
}
let nms_Slot_onSlotChange = ($this, $par1ItemStack, $par2ItemStack) => {
    let $var3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var3 = $thread.pop();$par2ItemStack = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1ItemStack !== null && $par2ItemStack !== null && $par1ItemStack.$itemID == $par2ItemStack.$itemID) {
            $var3 = $par2ItemStack.$stackSize - $par1ItemStack.$stackSize | 0;
            if ($var3 > 0) {
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $this.$onCrafting($par1ItemStack, $var3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2ItemStack, $var3, $ptr);
},
nms_Slot_onCrafting = ($this, $par1ItemStack, $par2) => {
    return;
},
nms_Slot_onPickupFromSlot = ($this, $par1EntityPlayer, $par2ItemStack) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2ItemStack = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1EntityPlayer = $this.$inventory;
        $ptr = 1;
    case 1:
        $par1EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2ItemStack, $ptr);
},
nms_Slot_isItemValid = ($this, $par1ItemStack) => {
    return 1;
},
nms_Slot_getStack = $this => {
    return $this.$inventory.$getStackInSlot($this.$slotIndex);
},
nms_Slot_getHasStack = $this => {
    return $this.$inventory.$getStackInSlot($this.$slotIndex) === null ? 0 : 1;
},
nms_Slot_putStack = ($this, $par1ItemStack) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$inventory;
        var$3 = $this.$slotIndex;
        $ptr = 1;
    case 1:
        var$2.$setInventorySlotContents(var$3, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $par1ItemStack = $this.$inventory;
        $ptr = 2;
    case 2:
        $par1ItemStack.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, var$2, var$3, $ptr);
},
nms_Slot_onSlotChanged = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$inventory;
        $ptr = 1;
    case 1:
        var$1.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_Slot_getSlotStackLimit = $this => {
    return $this.$inventory.$getInventoryStackLimit();
},
nms_Slot_decrStackSize = ($this, $par1) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$inventory;
        var$3 = $this.$slotIndex;
        $ptr = 1;
    case 1:
        $tmp = var$2.$decrStackSize(var$3, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, $ptr);
},
nms_Slot_isSlotInInventory = ($this, $par1IInventory, $par2) => {
    return $par1IInventory === $this.$inventory && $par2 == $this.$slotIndex ? 1 : 0;
},
nms_Slot_canTakeStack = ($this, $par1EntityPlayer) => {
    return 1;
};
function nms_SlotCrafting() {
    let a = this; nms_Slot.call(a);
    a.$craftMatrix = null;
    a.$thePlayer = null;
    a.$amountCrafted = 0;
}
let nms_SlotCrafting_isItemValid = ($this, $par1ItemStack) => {
    return 0;
},
nms_SlotCrafting_decrStackSize = ($this, $par1) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$inventory.$getStackInSlot($this.$slotIndex) === null ? 0 : 1) {
            var$2 = $this.$amountCrafted;
            var$3 = ($this.$inventory.$getStackInSlot($this.$slotIndex)).$stackSize;
            if ($par1 < var$3)
                var$3 = $par1;
            $this.$amountCrafted = var$2 + var$3 | 0;
        }
        var$4 = $this.$inventory;
        var$2 = $this.$slotIndex;
        $ptr = 1;
    case 1:
        $tmp = var$4.$decrStackSize(var$2, $par1);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, $ptr);
},
nms_SlotCrafting_onCrafting0 = ($this, $par1ItemStack, $par2) => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$par2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$amountCrafted = $this.$amountCrafted + $par2 | 0;
        $ptr = 1;
    case 1:
        nms_SlotCrafting_onCrafting($this, $par1ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, $par2, $ptr);
},
nms_SlotCrafting_onCrafting = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ItemStack = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$thePlayer;
        var$3 = var$2.$worldObj;
        var$4 = $this.$amountCrafted;
        nms_StatList_$callClinit();
        var$5 = nms_StatList_objectCraftStats.data[$par1ItemStack.$itemID];
        if (var$5 !== null && !var$5.$isIndependent)
            a: {
                var$6 = var$2.$playerNetServerHandler;
                var$7 = new nms_Packet200Statistic;
                var$8 = var$5.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$7.$statisticId = var$8;
                var$7.$amount = var$4;
                if (var$7 instanceof nms_Packet3Chat) {
                    var$5 = var$7;
                    var$8 = var$6.$playerEntity.$chatVisibility;
                    if (var$8 == 2)
                        break a;
                    if (var$8 == 1 && !var$5.$isServer)
                        break a;
                }
                try {
                    var$5 = var$6.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$5 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$7 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                    jl_System_errCache = var$7;
                }
                jl_Throwable_printStackTrace(var$5, jl_System_errCache);
            }
        nms_Item_$callClinit();
        var$5 = nms_Item_itemsList.data[$par1ItemStack.$itemID];
        $ptr = 1;
    case 1:
        b: {
            var$5.$onCreated($par1ItemStack, var$3, var$2);
            if ($rt_suspending()) {
                break main;
            }
            $this.$amountCrafted = 0;
            var$4 = $par1ItemStack.$itemID;
            nms_Block_$callClinit();
            if (var$4 == nms_Block_workbench.$blockID) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_buildWorkBench;
                if (var$2 !== null && !var$2.$isIndependent)
                    c: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break c;
                            if (var$8 == 1 && !var$2.$isServer)
                                break c;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Item_pickaxeWood.$itemID0) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_buildPickaxe;
                if (var$2 !== null && !var$2.$isIndependent)
                    d: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break d;
                            if (var$8 == 1 && !var$2.$isServer)
                                break d;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Block_furnaceIdle.$blockID) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_buildFurnace;
                if (var$2 !== null && !var$2.$isIndependent)
                    e: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break e;
                            if (var$8 == 1 && !var$2.$isServer)
                                break e;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 5;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Item_hoeWood.$itemID0) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_buildHoe;
                if (var$2 !== null && !var$2.$isIndependent)
                    f: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break f;
                            if (var$8 == 1 && !var$2.$isServer)
                                break f;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Item_bread.$itemID0) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_makeBread;
                if (var$2 !== null && !var$2.$isIndependent)
                    g: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break g;
                            if (var$8 == 1 && !var$2.$isServer)
                                break g;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Item_cake.$itemID0) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_bakeCake;
                if (var$2 !== null && !var$2.$isIndependent)
                    h: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break h;
                            if (var$8 == 1 && !var$2.$isServer)
                                break h;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 8;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Item_pickaxeStone.$itemID0) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_buildBetterPickaxe;
                if (var$2 !== null && !var$2.$isIndependent)
                    i: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break i;
                            if (var$8 == 1 && !var$2.$isServer)
                                break i;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 9;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Item_swordWood.$itemID0) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_buildSword;
                if (var$2 !== null && !var$2.$isIndependent)
                    j: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break j;
                            if (var$8 == 1 && !var$2.$isServer)
                                break j;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 10;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 == nms_Block_enchantmentTable.$blockID) {
                $par1ItemStack = $this.$thePlayer;
                nms_AchievementList_$callClinit();
                var$2 = nms_AchievementList_enchantments;
                if (var$2 !== null && !var$2.$isIndependent)
                    k: {
                        var$3 = $par1ItemStack.$playerNetServerHandler;
                        $par1ItemStack = new nms_Packet200Statistic;
                        var$8 = var$2.$statId;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        $par1ItemStack.$statisticId = var$8;
                        $par1ItemStack.$amount = 1;
                        if ($par1ItemStack instanceof nms_Packet3Chat) {
                            var$2 = $par1ItemStack;
                            var$8 = var$3.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break k;
                            if (var$8 == 1 && !var$2.$isServer)
                                break k;
                        }
                        try {
                            var$2 = var$3.$netManager;
                            $ptr = 11;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                $par1ItemStack = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            var$3 = new ji_ByteArrayOutputStream;
                            ji_OutputStream__init_(var$3);
                            var$3.$buf = $rt_createByteArray(32);
                            ji_FilterOutputStream__init_(var$2, var$3);
                            var$2.$sb = jl_StringBuilder__init_();
                            var$2.$buffer0 = $rt_createCharArray(32);
                            var$2.$autoFlush = 0;
                            var$2.$charset = jnci_UTF8Charset_INSTANCE;
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                    }
                break b;
            }
            if (var$4 != nms_Block_bookShelf.$blockID)
                break b;
            $par1ItemStack = $this.$thePlayer;
            nms_AchievementList_$callClinit();
            var$2 = nms_AchievementList_bookcase;
            if (var$2 !== null && !var$2.$isIndependent)
                l: {
                    var$3 = $par1ItemStack.$playerNetServerHandler;
                    $par1ItemStack = new nms_Packet200Statistic;
                    var$8 = var$2.$statId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    $par1ItemStack.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    $par1ItemStack.$statisticId = var$8;
                    $par1ItemStack.$amount = 1;
                    if ($par1ItemStack instanceof nms_Packet3Chat) {
                        var$2 = $par1ItemStack;
                        var$8 = var$3.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break l;
                        if (var$8 == 1 && !var$2.$isServer)
                            break l;
                    }
                    try {
                        var$2 = var$3.$netManager;
                        $ptr = 12;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1ItemStack = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        var$3 = new ji_ByteArrayOutputStream;
                        ji_OutputStream__init_(var$3);
                        var$3.$buf = $rt_createByteArray(32);
                        ji_FilterOutputStream__init_(var$2, var$3);
                        var$2.$sb = jl_StringBuilder__init_();
                        var$2.$buffer0 = $rt_createCharArray(32);
                        var$2.$autoFlush = 0;
                        var$2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
                }
        }
        return;
    case 2:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$5, jl_System_errCache);
        }
        nms_Item_$callClinit();
        var$5 = nms_Item_itemsList.data[$par1ItemStack.$itemID];
        $ptr = 1;
        continue main;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 4:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 5:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 6:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 7:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 8:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 9:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 10:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 11:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    case 12:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ItemStack);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ItemStack = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$3 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$3);
                var$3.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$3);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ItemStack, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ItemStack, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_SlotCrafting_onPickupFromSlot = ($this, $par1EntityPlayer, $par2ItemStack) => {
    let $var3, var$4, var$5, $var4, $var5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2ItemStack = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_SlotCrafting_onCrafting($this, $par2ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = 0;
        while (true) {
            $par1EntityPlayer = $this.$craftMatrix;
            var$4 = $par1EntityPlayer.$stackList.data;
            var$5 = $rt_compare($var3, var$4.length);
            if (var$5 >= 0)
                break;
            $var4 = var$5 < 0 ? var$4[$var3] : null;
            if ($var4 !== null) {
                var$5 = 1;
                $ptr = 2;
                continue main;
            }
            $var3 = $var3 + 1 | 0;
        }
        return;
    case 2:
        nms_InventoryCrafting_decrStackSize($par1EntityPlayer, $var3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        nms_Item_$callClinit();
        var$4 = nms_Item_itemsList.data;
        var$5 = $var4.$itemID;
        if (var$4[var$5].$containerItem === null ? 0 : 1) {
            $var5 = new nms_ItemStack;
            $par1EntityPlayer = var$4[var$5].$containerItem;
            nms_ItemStack_$callClinit();
            $var5.$itemID = $par1EntityPlayer.$itemID0;
            $var5.$stackSize = 1;
            $var5.$itemDamage = 0;
            if (!nms_InventoryPlayer_addItemStackToInventory($this.$thePlayer.$inventory0, $var5)) {
                $par2ItemStack = $this.$craftMatrix;
                var$4 = $par2ItemStack.$stackList.data;
                if (($var3 < var$4.length ? var$4[$var3] : null) !== null) {
                    $par1EntityPlayer = $this.$thePlayer;
                    var$5 = 0;
                    $ptr = 3;
                    continue main;
                }
                var$4[$var3] = $var5;
                $par1EntityPlayer = $par2ItemStack.$eventHandler;
                $ptr = 4;
                continue main;
            }
        }
        while (true) {
            $var3 = $var3 + 1 | 0;
            $par1EntityPlayer = $this.$craftMatrix;
            var$4 = $par1EntityPlayer.$stackList.data;
            var$5 = $rt_compare($var3, var$4.length);
            if (var$5 >= 0)
                break;
            $var4 = var$5 < 0 ? var$4[$var3] : null;
            if ($var4 === null)
                continue;
            else {
                var$5 = 1;
                continue main;
            }
        }
        return;
    case 3:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var3 = $var3 + 1 | 0;
            $par1EntityPlayer = $this.$craftMatrix;
            var$4 = $par1EntityPlayer.$stackList.data;
            var$5 = $rt_compare($var3, var$4.length);
            if (var$5 >= 0)
                break;
            $var4 = var$5 < 0 ? var$4[$var3] : null;
            if ($var4 === null)
                continue;
            else {
                var$5 = 1;
                $ptr = 2;
                continue main;
            }
        }
        return;
    case 4:
        $par1EntityPlayer.$onCraftMatrixChanged($par2ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var3 = $var3 + 1 | 0;
            $par1EntityPlayer = $this.$craftMatrix;
            var$4 = $par1EntityPlayer.$stackList.data;
            var$5 = $rt_compare($var3, var$4.length);
            if (var$5 >= 0)
                break;
            $var4 = var$5 < 0 ? var$4[$var3] : null;
            if ($var4 === null)
                continue;
            else {
                var$5 = 1;
                $ptr = 2;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2ItemStack, $var3, var$4, var$5, $var4, $var5, $ptr);
};
function nms_SlotArmor() {
    let a = this; nms_Slot.call(a);
    a.$armorType0 = 0;
    a.$parent2 = null;
}
let nms_SlotArmor_getSlotStackLimit = $this => {
    return 1;
},
nms_SlotArmor_isItemValid = ($this, $par1ItemStack) => {
    let var$2, var$3, var$4;
    if ($par1ItemStack === null)
        var$2 = 0;
    else {
        nms_Item_$callClinit();
        var$3 = nms_Item_itemsList.data;
        var$4 = $par1ItemStack.$itemID;
        if (var$3[var$4] instanceof nms_ItemArmor)
            var$2 = var$3[var$4].$armorType != $this.$armorType0 ? 0 : 1;
        else {
            var$2 = var$3[var$4].$itemID0;
            nms_Block_$callClinit();
            var$2 = var$2 != nms_Block_pumpkin.$blockID && var$3[var$4].$itemID0 != nms_Item_skull.$itemID0 ? 0 : $this.$armorType0 ? 0 : 1;
        }
    }
    return var$2;
},
nms_EntitySelectorAlive = $rt_classWithoutFields(),
nms_EntitySelectorAlive__init_ = $this => {
    return;
},
nms_EntitySelectorAlive__init_0 = () => {
    let var_0 = new nms_EntitySelectorAlive();
    nms_EntitySelectorAlive__init_(var_0);
    return var_0;
},
nms_EntitySelectorAlive_isEntityApplicable = ($this, $par1Entity) => {
    return $par1Entity.$isEntityAlive();
},
nms_EntitySelectorInventory = $rt_classWithoutFields(),
nms_EntitySelectorInventory__init_ = $this => {
    return;
},
nms_EntitySelectorInventory__init_0 = () => {
    let var_0 = new nms_EntitySelectorInventory();
    nms_EntitySelectorInventory__init_(var_0);
    return var_0;
},
nms_EntitySelectorInventory_isEntityApplicable = ($this, $par1Entity) => {
    return $rt_isInstance($par1Entity, nms_IInventory) && $par1Entity.$isEntityAlive() ? 1 : 0;
};
function nms_EntityAIPanic() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntityCreature = null;
    a.$speed1 = 0.0;
    a.$randPosX = 0.0;
    a.$randPosY = 0.0;
    a.$randPosZ = 0.0;
}
let nms_EntityAIPanic_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$theEntityCreature;
        if ($var1.$entityLivingToAttack === null) {
            a: {
                b: {
                    if (!$var1.$isImmuneToFire) {
                        if ($var1.$fire > 0)
                            break b;
                        $var1 = $var1.$dataWatcher.$watchedObjects;
                        jl_Integer_ensureIntegerCache();
                        var$2 = jl_Integer_integerCache.data[128];
                        if (var$2 === null) {
                            $var1 = $var1.$elementData.data[0];
                            while ($var1 !== null && $var1.$key !== null) {
                                $var1 = $var1.$next3;
                            }
                        } else {
                            var$3 = var$2.$value;
                            var$4 = $var1.$elementData.data;
                            $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
                            while ($var1 !== null) {
                                if ($var1.$origKeyHash == var$3) {
                                    var$5 = $var1.$key;
                                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                                        break;
                                }
                                $var1 = $var1.$next3;
                            }
                        }
                        $var1 = $var1 === null ? null : $var1.$value0;
                        if (!($var1.$watchedObject.$value1 & 1) ? 0 : 1)
                            break b;
                    }
                    var$6 = 0;
                    break a;
                }
                var$6 = 1;
            }
            if (!var$6)
                return 0;
        }
        $var1 = $this.$theEntityCreature;
        var$6 = 5;
        var$7 = 4;
        nms_RandomPositionGenerator_$callClinit();
        var$5 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$6, var$7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        $this.$randPosX = $var1.$xCoord;
        $this.$randPosY = $var1.$yCoord;
        $this.$randPosZ = $var1.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityAIPanic_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntityCreature.$navigator;
        var$2 = $this.$randPosX;
        var$3 = $this.$randPosY;
        var$4 = $this.$randPosZ;
        var$5 = $this.$speed1;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$8 = var$1.$theEntity;
        if (var$8.$onGround)
            var$9 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$8 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$8, var$10, var$9, var$6, var$11, var$13, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityAIPanic_continueExecuting = $this => {
    let var$1;
    var$1 = $this.$theEntityCreature.$navigator.$currentPath;
    return (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
};
function nms_EntityAIMate() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theAnimal = null;
    a.$theWorld2 = null;
    a.$targetMate = null;
    a.$spawnBabyDelay = 0;
    a.$moveSpeed = 0.0;
}
let nms_EntityAIMate_shouldExecute = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$theAnimal.$inLove <= 0 ? 0 : 1))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAIMate_getNearbyMate($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        $this.$targetMate = var$1;
        return var$1 === null ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_EntityAIMate_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    a: {
        var$1 = $this.$targetMate;
        if (!var$1.$isDead) {
            var$1 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    return var$6 && ($this.$targetMate.$inLove <= 0 ? 0 : 1) && $this.$spawnBabyDelay < 60 ? 1 : 0;
},
nms_EntityAIMate_resetTask = $this => {
    $this.$targetMate = null;
    $this.$spawnBabyDelay = 0;
},
nms_EntityAIMate_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theAnimal;
        nms_EntityLookHelper_setLookPositionWithEntity(var$1.$lookHelper, $this.$targetMate, 10.0, var$1.$getVerticalFaceSpeed());
        var$2 = $this.$theAnimal.$navigator;
        var$1 = $this.$targetMate;
        var$3 = $this.$moveSpeed;
        var$4 = var$2.$theEntity;
        if (var$4.$onGround)
            var$5 = 1;
        else {
            if (var$2.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$5 = 0;
        }
        if (var$5) {
            var$4 = var$2.$worldObj3;
            var$6 = var$2.$theEntity;
            var$7 = var$2.$pathSearchRange;
            if (var$7.$field_111133_g) {
                var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                var$7.$field_111133_g = 0;
            }
            var$8 = var$7.$field_111139_h;
            var$5 = var$2.$canPassOpenWoodenDoors;
            var$9 = var$2.$canPassClosedWoodenDoors;
            var$10 = var$2.$avoidsWater;
            var$11 = var$2.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$5 = $this.$spawnBabyDelay + 1 | 0;
        $this.$spawnBabyDelay = var$5;
        if (var$5 >= 60) {
            var$1 = $this.$theAnimal;
            var$2 = $this.$targetMate;
            var$3 = var$1.$posX - var$2.$posX;
            var$12 = var$1.$posY - var$2.$posY;
            var$13 = var$1.$posZ - var$2.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 9.0) {
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = var$4.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            var$4 = var$2.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$4 = var$2.$worldObj3;
            var$6 = var$2.$theEntity;
            var$7 = var$2.$pathSearchRange;
            if (var$7.$field_111133_g) {
                var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                var$7.$field_111133_g = 0;
            }
            var$8 = var$7.$field_111139_h;
            var$5 = var$2.$canPassOpenWoodenDoors;
            var$9 = var$2.$canPassClosedWoodenDoors;
            var$10 = var$2.$avoidsWater;
            var$11 = var$2.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$5 = $this.$spawnBabyDelay + 1 | 0;
        $this.$spawnBabyDelay = var$5;
        if (var$5 >= 60) {
            var$1 = $this.$theAnimal;
            var$2 = $this.$targetMate;
            var$3 = var$1.$posX - var$2.$posX;
            var$12 = var$1.$posY - var$2.$posY;
            var$13 = var$1.$posZ - var$2.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 9.0) {
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 2:
        $tmp = var$4.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if ((var$5 ? 1 : 0) ? 1 : 0) {
            var$4 = var$2.$worldObj3;
            var$6 = var$2.$theEntity;
            var$7 = var$2.$pathSearchRange;
            if (var$7.$field_111133_g) {
                var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                var$7.$field_111133_g = 0;
            }
            var$8 = var$7.$field_111139_h;
            var$5 = var$2.$canPassOpenWoodenDoors;
            var$9 = var$2.$canPassClosedWoodenDoors;
            var$10 = var$2.$avoidsWater;
            var$11 = var$2.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$5 = $this.$spawnBabyDelay + 1 | 0;
        $this.$spawnBabyDelay = var$5;
        if (var$5 >= 60) {
            var$1 = $this.$theAnimal;
            var$2 = $this.$targetMate;
            var$3 = var$1.$posX - var$2.$posX;
            var$12 = var$1.$posY - var$2.$posY;
            var$13 = var$1.$posZ - var$2.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 9.0) {
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$4, var$6, var$1, var$8, var$5, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$5 = $this.$spawnBabyDelay + 1 | 0;
        $this.$spawnBabyDelay = var$5;
        if (var$5 >= 60) {
            var$1 = $this.$theAnimal;
            var$2 = $this.$targetMate;
            var$3 = var$1.$posX - var$2.$posX;
            var$12 = var$1.$posY - var$2.$posY;
            var$13 = var$1.$posZ - var$2.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 9.0) {
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 4:
        nms_PathNavigate_setPath(var$2, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$spawnBabyDelay + 1 | 0;
        $this.$spawnBabyDelay = var$5;
        if (var$5 >= 60) {
            var$1 = $this.$theAnimal;
            var$2 = $this.$targetMate;
            var$3 = var$1.$posX - var$2.$posX;
            var$12 = var$1.$posY - var$2.$posY;
            var$13 = var$1.$posZ - var$2.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 9.0) {
                $ptr = 5;
                continue main;
            }
        }
        return;
    case 5:
        nms_EntityAIMate_spawnBaby($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityAIMate_getNearbyMate = $this => {
    let $var2, $var5, var$3, var$4, var$5, var$6, var$7, var$8, $var3, var$10, var$11, $var6$index, $var6$index_0, $var7, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var7 = $thread.pop();$var6$index_0 = $thread.pop();$var6$index = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var3 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var5 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$theWorld2;
        $var5 = $this.$theAnimal.constructor;
        if ($var5 === null)
            var$3 = null;
        else {
            var$3 = $var5.classObject;
            if (var$3 === null) {
                var$3 = new jl_Class;
                var$3.$platformClass = $var5;
                $var5.classObject = var$3;
            }
        }
        $var5 = $this.$theAnimal.$boundingBox0;
        var$4 = $var5.$minX0 - 8.0;
        var$5 = $var5.$minY0 - 8.0;
        var$6 = $var5.$minZ0 - 8.0;
        var$7 = $var5.$maxX0 + 8.0;
        var$8 = $var5.$maxY + 8.0;
        $var3 = $var5.$maxZ0 + 8.0;
        var$10 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$11 = var$10.$nextPoolIndex;
        $var5 = var$10.$listAABB;
        $var6$index = $var5.$size0;
        $var6$index_0 = $rt_compare(var$11, $var6$index);
        if ($var6$index_0 >= 0) {
            $var7 = new nms_AxisAlignedBB;
            $var7.$minX0 = var$4;
            $var7.$minY0 = var$5;
            $var7.$minZ0 = var$6;
            $var7.$maxX0 = var$7;
            $var7.$maxY = var$8;
            $var7.$maxZ0 = $var3;
            ju_ArrayList_ensureCapacity($var5, $var6$index + 1 | 0);
            var$15 = $var5.$array.data;
            $var6$index = $var5.$size0;
            $var5.$size0 = $var6$index + 1 | 0;
            var$15[$var6$index] = $var7;
            $var5.$modCount = $var5.$modCount + 1 | 0;
        } else if (var$11 >= 0 && $var6$index_0 < 0) {
            $var7 = $var5.$array.data[var$11];
            $var7.$minX0 = var$4;
            $var7.$minY0 = var$5;
            $var7.$minZ0 = var$6;
            $var7.$maxX0 = var$7;
            $var7.$maxY = var$8;
            $var7.$maxZ0 = $var3;
        } else {
            $var2 = new jl_IndexOutOfBoundsException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var2);
            $rt_throw($var2);
        }
        var$10.$nextPoolIndex = var$10.$nextPoolIndex + 1 | 0;
        $var5 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($var2, var$3, $var7, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var3 = 1.7976931348623157E308;
        $var5 = null;
        $var6$index = 0;
        var$16 = $var2.$modCount;
        var$11 = $var2.$size();
        while ($var6$index >= var$11 ? 0 : 1) {
            if (var$16 < $var2.$modCount) {
                $var2 = new ju_ConcurrentModificationException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $rt_throw($var2);
            }
            $var6$index_0 = $var6$index + 1 | 0;
            $var7 = $var2.$get($var6$index);
            if ($this.$theAnimal.$canMateWith($var7)) {
                var$3 = $this.$theAnimal;
                var$4 = var$3.$posX - $var7.$posX;
                var$5 = var$3.$posY - $var7.$posY;
                var$6 = var$3.$posZ - $var7.$posZ;
                var$4 = var$4 * var$4 + var$5 * var$5 + var$6 * var$6;
                if (var$4 < $var3) {
                    $var5 = $var7;
                    $var3 = var$4;
                }
            }
            $var6$index = $var6$index_0;
        }
        return $var5;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, $var5, var$3, var$4, var$5, var$6, var$7, var$8, $var3, var$10, var$11, $var6$index, $var6$index_0, $var7, var$15, var$16, $ptr);
},
nms_EntityAIMate_spawnBaby = $this => {
    let $var1, var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, $var3, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$theAnimal;
        var$2 = $this.$targetMate;
        $ptr = 1;
    case 1:
        $tmp = $var1.$createChild(var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return;
        var$2 = $this.$theAnimal;
        $var2 = var$2.$dataWatcher;
        var$4 = new jl_Integer;
        var$4.$value = 6000;
        var$5 = $var2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[140];
        if (var$6 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$5.$elementData.data;
            var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$7) {
                    var$9 = var$5.$key;
                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!(var$4 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$4.$value ? 1 : 0)) {
            var$9.$watchedObject = var$4;
            var$9.$watched = 1;
            $var2.$objectChanged = 1;
        }
        $var2 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[140];
        if (var$5 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            $var3 = jl_Integer_hashCode(var$5.$value);
            var$8 = $var2.$elementData.data;
            $var2 = var$8[$var3 & (var$8.length - 1 | 0)];
            while ($var2 !== null && !($var2.$origKeyHash == $var3 && ju_HashMap_areEqualKeys(var$5, $var2.$key))) {
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        $var3 = $var2.$watchedObject.$value >= 0 ? 0 : 1;
        $ptr = 2;
    case 2:
        var$2.$setScaleForAge($var3);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$targetMate;
        var$4 = var$2.$dataWatcher;
        var$6 = new jl_Integer;
        var$6.$value = 6000;
        $var2 = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[140];
        if (var$9 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            var$7 = var$9.$value;
            var$8 = $var2.$elementData.data;
            $var2 = var$8[var$7 & (var$8.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    var$5 = $var2.$key;
                    if (var$9 !== var$5 && !(var$9 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        var$5 = $var2 === null ? null : $var2.$value0;
        $var2 = var$5.$watchedObject;
        if (!(var$6 === $var2 ? 1 : $var2 instanceof jl_Integer && $var2.$value == var$6.$value ? 1 : 0)) {
            var$5.$watchedObject = var$6;
            var$5.$watched = 1;
            var$4.$objectChanged = 1;
        }
        var$5 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[140];
        if ($var2 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            $var3 = jl_Integer_hashCode($var2.$value);
            var$8 = var$5.$elementData.data;
            var$5 = var$8[$var3 & (var$8.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == $var3 && ju_HashMap_areEqualKeys($var2, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        $var2 = var$5 === null ? null : var$5.$value0;
        $var3 = $var2.$watchedObject.$value >= 0 ? 0 : 1;
        $ptr = 3;
    case 3:
        var$2.$setScaleForAge($var3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$theAnimal.$inLove = 0;
        $this.$targetMate.$inLove = 0;
        var$2 = $var1.$dataWatcher;
        $var2 = new jl_Integer;
        $var2.$value = (-24000);
        var$5 = var$2.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[140];
        if (var$6 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$7 = var$6.$value;
            var$8 = var$5.$elementData.data;
            var$5 = var$8[var$7 & (var$8.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$7) {
                    var$9 = var$5.$key;
                    if (var$6 !== var$9 && !(var$6 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$7 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$9 = var$5 === null ? null : var$5.$value0;
        var$5 = var$9.$watchedObject;
        if (!($var2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var2.$value ? 1 : 0)) {
            var$9.$watchedObject = $var2;
            var$9.$watched = 1;
            var$2.$objectChanged = 1;
        }
        var$2 = $var1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var2 = jl_Integer_integerCache.data[140];
        if ($var2 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            $var3 = jl_Integer_hashCode($var2.$value);
            var$8 = var$2.$elementData.data;
            var$2 = var$8[$var3 & (var$8.length - 1 | 0)];
            while (var$2 !== null && !(var$2.$origKeyHash == $var3 && ju_HashMap_areEqualKeys($var2, var$2.$key))) {
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        $var3 = var$2.$watchedObject.$value >= 0 ? 0 : 1;
        $ptr = 4;
    case 4:
        $var1.$setScaleForAge($var3);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$theAnimal;
        var$11 = var$2.$posX;
        var$12 = var$2.$posY;
        var$13 = var$2.$posZ;
        $var1.$posX = var$11;
        $var1.$prevPosX = var$11;
        $var1.$lastTickPosX = var$11;
        var$12 = var$12 + $var1.$yOffset;
        $var1.$posY = var$12;
        $var1.$prevPosY = var$12;
        $var1.$lastTickPosY = var$12;
        $var1.$posZ = var$13;
        $var1.$prevPosZ = var$13;
        $var1.$lastTickPosZ = var$13;
        $var1.$rotationYaw = 0.0;
        $var1.$rotationPitch = 0.0;
        nms_Entity_setPosition($var1, var$11, var$12, var$13);
        var$2 = $this.$theWorld2;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$2, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $this.$theAnimal.$rand;
        $var3 = 0;
        a: while (true) {
            if ($var3 >= 7) {
                $var1 = $this.$theWorld2;
                var$2 = new nms_EntityXPOrb;
                var$5 = $this.$theAnimal;
                var$11 = var$5.$posX;
                var$12 = var$5.$posY;
                var$13 = var$5.$posZ;
                var$14 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var2.$seed = var$14;
                var$7 = Long_lo(Long_shru(var$14, 17));
                while (true) {
                    var$15 = var$7 % 7 | 0;
                    if (((var$7 - var$15 | 0) + 6 | 0) >= 0)
                        break;
                    var$14 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var2.$seed = var$14;
                    var$7 = Long_lo(Long_shru(var$14, 17));
                }
                $var3 = var$15 + 1 | 0;
                $ptr = 6;
                continue main;
            }
            nle_EaglercraftRandom_nextGaussian($var2);
            nle_EaglercraftRandom_nextGaussian($var2);
            nle_EaglercraftRandom_nextGaussian($var2);
            $var1 = $this.$theWorld2;
            var$16 = Long_and(Long_add(Long_mul($var2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$16;
            var$16 = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var2.$seed = var$16;
            $var2.$seed = Long_and(Long_add(Long_mul(var$16, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$17 = 0;
            while (true) {
                var$7 = $rt_compare(var$17, $var1.$worldAccesses.$size0);
                if (var$7 >= 0)
                    break;
                if (var$17 < 0)
                    break a;
                if (var$7 >= 0)
                    break a;
                var$17 = var$17 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    case 6:
        nms_EntityXPOrb__init_(var$2, $var1, var$11, var$12, var$13, $var3);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
    case 7:
        nms_World_spawnEntityInWorld($var1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, $var3, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
};
function nms_EntityAITempt() {
    let a = this; nms_EntityAIBase.call(a);
    a.$temptedEntity = null;
    a.$field_75282_b = 0.0;
    a.$targetX1 = 0.0;
    a.$targetY1 = 0.0;
    a.$targetZ1 = 0.0;
    a.$field_75278_f = 0.0;
    a.$field_75279_g = 0.0;
    a.$temptingPlayer = null;
    a.$delayTemptCounter = 0;
    a.$isRunning = 0;
    a.$breedingFood = 0;
    a.$scaredByPlayerMovement = 0;
    a.$field_75286_m = 0;
}
let nms_EntityAITempt_shouldExecute = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$delayTemptCounter;
    if (var$1 > 0) {
        $this.$delayTemptCounter = var$1 - 1 | 0;
        return 0;
    }
    var$2 = $this.$temptedEntity;
    var$2 = nms_World_getClosestPlayer(var$2.$worldObj, var$2.$posX, var$2.$posY, var$2.$posZ, 10.0);
    $this.$temptingPlayer = var$2;
    if (var$2 === null)
        return 0;
    var$2 = var$2.$inventory0;
    var$3 = var$2.$currentItem;
    var$2 = var$3 < 9 && var$3 >= 0 ? var$2.$mainInventory.data[var$3] : null;
    return var$2 === null ? 0 : var$2.$itemID != $this.$breedingFood ? 0 : 1;
},
nms_EntityAITempt_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    if ($this.$scaredByPlayerMovement) {
        var$1 = $this.$temptedEntity;
        var$2 = $this.$temptingPlayer;
        var$3 = var$1.$posX;
        var$4 = var$2.$posX;
        var$3 = var$3 - var$4;
        var$5 = var$1.$posY;
        var$6 = var$2.$posY;
        var$7 = var$5 - var$6;
        var$5 = var$1.$posZ;
        var$8 = var$2.$posZ;
        var$5 = var$5 - var$8;
        if (var$3 * var$3 + var$7 * var$7 + var$5 * var$5 >= 36.0) {
            $this.$targetX1 = var$4;
            $this.$targetY1 = var$6;
            $this.$targetZ1 = var$8;
        } else {
            var$3 = $this.$targetX1;
            var$5 = $this.$targetY1;
            var$7 = $this.$targetZ1;
            var$3 = var$4 - var$3;
            var$5 = var$6 - var$5;
            var$7 = var$8 - var$7;
            if (var$3 * var$3 + var$5 * var$5 + var$7 * var$7 > 0.010000000000000002)
                return 0;
            if (!(jl_Math_absImpl(var$2.$rotationPitch - $this.$field_75278_f) <= 5.0 && jl_Math_absImpl($this.$temptingPlayer.$rotationYaw - $this.$field_75279_g) <= 5.0))
                return 0;
        }
        var$1 = $this.$temptingPlayer;
        $this.$field_75278_f = var$1.$rotationPitch;
        $this.$field_75279_g = var$1.$rotationYaw;
    }
    return nms_EntityAITempt_shouldExecute($this);
},
nms_EntityAITempt_startExecuting = $this => {
    let var$1;
    var$1 = $this.$temptingPlayer;
    $this.$targetX1 = var$1.$posX;
    $this.$targetY1 = var$1.$posY;
    $this.$targetZ1 = var$1.$posZ;
    $this.$isRunning = 1;
    var$1 = $this.$temptedEntity.$navigator;
    $this.$field_75286_m = var$1.$avoidsWater;
    var$1.$avoidsWater = 0;
},
nms_EntityAITempt_resetTask = $this => {
    let var$1;
    $this.$temptingPlayer = null;
    var$1 = $this.$temptedEntity.$navigator;
    var$1.$currentPath = null;
    $this.$delayTemptCounter = 100;
    $this.$isRunning = 0;
    var$1.$avoidsWater = $this.$field_75286_m;
},
nms_EntityAITempt_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityLookHelper_setLookPositionWithEntity($this.$temptedEntity.$lookHelper, $this.$temptingPlayer, 30.0, 40.0);
        var$1 = $this.$temptedEntity;
        var$2 = $this.$temptingPlayer;
        var$3 = var$1.$posX - var$2.$posX;
        var$4 = var$1.$posY - var$2.$posY;
        var$5 = var$1.$posZ - var$2.$posZ;
        if (var$3 * var$3 + var$4 * var$4 + var$5 * var$5 < 6.25)
            var$1.$navigator.$currentPath = null;
        else {
            var$1 = var$1.$navigator;
            var$3 = $this.$field_75282_b;
            var$6 = var$1.$theEntity;
            if (var$6.$onGround)
                var$7 = 1;
            else {
                if (var$1.$canSwim) {
                    $ptr = 1;
                    continue main;
                }
                var$7 = 0;
            }
            if (var$7) {
                var$6 = var$1.$worldObj3;
                var$8 = var$1.$theEntity;
                var$9 = var$1.$pathSearchRange;
                if (var$9.$field_111133_g) {
                    var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                    var$9.$field_111133_g = 0;
                }
                var$10 = var$9.$field_111139_h;
                var$7 = var$1.$canPassOpenWoodenDoors;
                var$11 = var$1.$canPassClosedWoodenDoors;
                var$12 = var$1.$avoidsWater;
                var$13 = var$1.$canSwim;
                $ptr = 3;
                continue main;
            }
            var$2 = null;
            if (var$2 !== null) {
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = var$6.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7) {
            var$6 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$2 = null;
            if (var$2 === null)
                return;
            $ptr = 4;
            continue main;
        }
        var$6 = var$1.$worldObj3;
        var$8 = var$1.$theEntity;
        var$9 = var$1.$pathSearchRange;
        if (var$9.$field_111133_g) {
            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
            var$9.$field_111133_g = 0;
        }
        var$10 = var$9.$field_111139_h;
        var$7 = var$1.$canPassOpenWoodenDoors;
        var$11 = var$1.$canPassClosedWoodenDoors;
        var$12 = var$1.$avoidsWater;
        var$13 = var$1.$canSwim;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = var$6.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!((var$7 ? 1 : 0) ? 1 : 0)) {
            var$2 = null;
            if (var$2 === null)
                return;
            $ptr = 4;
            continue main;
        }
        var$6 = var$1.$worldObj3;
        var$8 = var$1.$theEntity;
        var$9 = var$1.$pathSearchRange;
        if (var$9.$field_111133_g) {
            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
            var$9.$field_111133_g = 0;
        }
        var$10 = var$9.$field_111139_h;
        var$7 = var$1.$canPassOpenWoodenDoors;
        var$11 = var$1.$canPassClosedWoodenDoors;
        var$12 = var$1.$avoidsWater;
        var$13 = var$1.$canSwim;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$6, var$8, var$2, var$10, var$7, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 === null)
            return;
        $ptr = 4;
    case 4:
        nms_PathNavigate_setPath(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
};
function nms_EntityAIFollowParent() {
    let a = this; nms_EntityAIBase.call(a);
    a.$childAnimal = null;
    a.$parentAnimal = null;
    a.$field_75347_c = 0.0;
    a.$field_75345_d = 0;
}
let nms_EntityAIFollowParent_shouldExecute = $this => {
    let $var2, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, $var7, var$12, $var1, $var5$index, var$15, var$16, var$17, $var5$index_0, $var6, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();$var6 = $thread.pop();$var5$index_0 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var5$index = $thread.pop();$var1 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var2 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $this.$childAnimal.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[140];
        if (var$2 === null) {
            $var2 = $var2.$elementData.data[0];
            while ($var2 !== null && $var2.$key !== null) {
                $var2 = $var2.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$3) {
                    var$5 = $var2.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var2 = $var2.$next3;
            }
        }
        $var2 = $var2 === null ? null : $var2.$value0;
        if ($var2.$watchedObject.$value >= 0)
            return 0;
        $var2 = $this.$childAnimal;
        var$2 = $var2.$worldObj;
        $var2 = $var2.constructor;
        if ($var2 === null)
            var$6 = null;
        else {
            var$6 = $var2.classObject;
            if (var$6 === null) {
                var$6 = new jl_Class;
                var$6.$platformClass = $var2;
                $var2.classObject = var$6;
            }
        }
        $var2 = $this.$childAnimal.$boundingBox0;
        var$7 = $var2.$minX0 - 8.0;
        var$8 = $var2.$minY0 - 4.0;
        var$9 = $var2.$minZ0 - 8.0;
        $var3 = $var2.$maxX0 + 8.0;
        $var7 = $var2.$maxY + 4.0;
        var$12 = $var2.$maxZ0 + 8.0;
        $var1 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$3 = $var1.$nextPoolIndex;
        $var2 = $var1.$listAABB;
        $var5$index = $var2.$size0;
        var$15 = $rt_compare(var$3, $var5$index);
        if (var$15 >= 0) {
            var$5 = new nms_AxisAlignedBB;
            var$5.$minX0 = var$7;
            var$5.$minY0 = var$8;
            var$5.$minZ0 = var$9;
            var$5.$maxX0 = $var3;
            var$5.$maxY = $var7;
            var$5.$maxZ0 = var$12;
            ju_ArrayList_ensureCapacity($var2, $var5$index + 1 | 0);
            var$4 = $var2.$array.data;
            $var5$index = $var2.$size0;
            $var2.$size0 = $var5$index + 1 | 0;
            var$4[$var5$index] = var$5;
            $var2.$modCount = $var2.$modCount + 1 | 0;
        } else if (var$3 >= 0 && var$15 < 0) {
            var$5 = $var2.$array.data[var$3];
            var$5.$minX0 = var$7;
            var$5.$minY0 = var$8;
            var$5.$minZ0 = var$9;
            var$5.$maxX0 = $var3;
            var$5.$maxY = $var7;
            var$5.$maxZ0 = var$12;
        } else {
            $var2 = new jl_IndexOutOfBoundsException;
            $var2.$suppressionEnabled = 1;
            $var2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var2);
            $rt_throw($var2);
        }
        $var1.$nextPoolIndex = $var1.$nextPoolIndex + 1 | 0;
        $var2 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$2, var$6, var$5, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $var2 = null;
        $var3 = 1.7976931348623157E308;
        $var5$index = 0;
        var$16 = $var1.$modCount;
        var$17 = $var1.$size();
        while (true) {
            if (!($var5$index >= var$17 ? 0 : 1)) {
                if ($var2 === null)
                    return 0;
                if ($var3 < 9.0)
                    return 0;
                $this.$parentAnimal = $var2;
                return 1;
            }
            if (var$16 < $var1.$modCount)
                break;
            $var5$index_0 = $var5$index + 1 | 0;
            $var6 = $var1.$get($var5$index);
            var$2 = $var6.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$6 = jl_Integer_integerCache.data[140];
            if (var$6 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                var$20 = var$6.$value;
                var$4 = var$2.$elementData.data;
                var$2 = var$4[var$20 & (var$4.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == var$20) {
                        var$5 = var$2.$key;
                        if (var$6 !== var$5 && !(var$6 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$20 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$2 = var$2 === null ? null : var$2.$value0;
            if (var$2.$watchedObject.$value >= 0) {
                var$2 = $this.$childAnimal;
                $var7 = var$2.$posX - $var6.$posX;
                var$12 = var$2.$posY - $var6.$posY;
                var$7 = var$2.$posZ - $var6.$posZ;
                $var7 = $var7 * $var7 + var$12 * var$12 + var$7 * var$7;
                if ($var7 <= $var3) {
                    $var3 = $var7;
                    $var2 = $var6;
                }
            }
            $var5$index = $var5$index_0;
        }
        $var2 = new ju_ConcurrentModificationException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var2, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $var3, $var7, var$12, $var1, $var5$index, var$15, var$16, var$17, $var5$index_0, $var6, var$20, $ptr);
},
nms_EntityAIFollowParent_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, $var1, var$9;
    a: {
        var$1 = $this.$parentAnimal;
        if (!var$1.$isDead) {
            var$1 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    if (!var$6)
        return 0;
    var$1 = $this.$childAnimal;
    var$5 = $this.$parentAnimal;
    var$7 = var$1.$posX - var$5.$posX;
    $var1 = var$1.$posY - var$5.$posY;
    var$9 = var$1.$posZ - var$5.$posZ;
    $var1 = var$7 * var$7 + $var1 * $var1 + var$9 * var$9;
    return $var1 >= 9.0 && $var1 <= 256.0 ? 1 : 0;
},
nms_EntityAIFollowParent_startExecuting = $this => {
    $this.$field_75345_d = 0;
},
nms_EntityAIFollowParent_resetTask = $this => {
    $this.$parentAnimal = null;
},
nms_EntityAIFollowParent_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$field_75345_d - 1 | 0;
        $this.$field_75345_d = var$1;
        if (var$1 <= 0) {
            $this.$field_75345_d = 10;
            var$2 = $this.$childAnimal.$navigator;
            var$3 = $this.$parentAnimal;
            var$4 = $this.$field_75347_c;
            var$5 = var$2.$theEntity;
            if (var$5.$onGround)
                var$1 = 1;
            else {
                if (var$2.$canSwim) {
                    $ptr = 1;
                    continue main;
                }
                var$1 = 0;
            }
            if (var$1) {
                var$5 = var$2.$worldObj3;
                var$6 = var$2.$theEntity;
                var$7 = var$2.$pathSearchRange;
                if (var$7.$field_111133_g) {
                    var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                    var$7.$field_111133_g = 0;
                }
                var$8 = var$7.$field_111139_h;
                var$1 = var$2.$canPassOpenWoodenDoors;
                var$9 = var$2.$canPassClosedWoodenDoors;
                var$10 = var$2.$avoidsWater;
                var$11 = var$2.$canSwim;
                $ptr = 3;
                continue main;
            }
            var$3 = null;
            if (var$3 !== null) {
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = var$5.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!var$1) {
            var$5 = var$2.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$3 = null;
            if (var$3 === null)
                return;
            $ptr = 4;
            continue main;
        }
        var$5 = var$2.$worldObj3;
        var$6 = var$2.$theEntity;
        var$7 = var$2.$pathSearchRange;
        if (var$7.$field_111133_g) {
            var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
            var$7.$field_111133_g = 0;
        }
        var$8 = var$7.$field_111139_h;
        var$1 = var$2.$canPassOpenWoodenDoors;
        var$9 = var$2.$canPassClosedWoodenDoors;
        var$10 = var$2.$avoidsWater;
        var$11 = var$2.$canSwim;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = var$5.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (!((var$1 ? 1 : 0) ? 1 : 0)) {
            var$3 = null;
            if (var$3 === null)
                return;
            $ptr = 4;
            continue main;
        }
        var$5 = var$2.$worldObj3;
        var$6 = var$2.$theEntity;
        var$7 = var$2.$pathSearchRange;
        if (var$7.$field_111133_g) {
            var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
            var$7.$field_111133_g = 0;
        }
        var$8 = var$7.$field_111139_h;
        var$1 = var$2.$canPassOpenWoodenDoors;
        var$9 = var$2.$canPassClosedWoodenDoors;
        var$10 = var$2.$avoidsWater;
        var$11 = var$2.$canSwim;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$5, var$6, var$3, var$8, var$1, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (var$3 === null)
            return;
        $ptr = 4;
    case 4:
        nms_PathNavigate_setPath(var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
};
function nms_EntityAIArrowAttack() {
    let a = this; nms_EntityAIBase.call(a);
    a.$entityHost = null;
    a.$rangedAttackEntityHost = null;
    a.$attackTarget0 = null;
    a.$rangedAttackTime = 0;
    a.$entityMoveSpeed = 0.0;
    a.$field_75318_f = 0;
    a.$field_96561_g = 0;
    a.$maxRangedAttackTime = 0;
    a.$field_96562_i = 0.0;
    a.$field_82642_h = 0.0;
}
let nms_EntityAIArrowAttack_shouldExecute = $this => {
    let $var1;
    $var1 = $this.$entityHost.$attackTarget;
    if ($var1 === null)
        return 0;
    $this.$attackTarget0 = $var1;
    return 1;
},
nms_EntityAIArrowAttack_continueExecuting = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$entityHost;
    var$2 = var$1.$attackTarget;
    if (var$2 === null)
        var$3 = 0;
    else {
        $this.$attackTarget0 = var$2;
        var$3 = 1;
    }
    a: {
        if (!var$3) {
            var$1 = var$1.$navigator.$currentPath;
            if (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) {
                var$3 = 0;
                break a;
            }
        }
        var$3 = 1;
    }
    return var$3;
},
nms_EntityAIArrowAttack_resetTask = $this => {
    $this.$attackTarget0 = null;
    $this.$field_75318_f = 0;
    $this.$rangedAttackTime = (-1);
},
nms_EntityAIArrowAttack_updateTask = $this => {
    let var$1, var$2, var$3, $var1, var$5, var$6, var$7, var$8, var$9, var$10, $var3, var$12, var$13, $var4, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var4 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var3 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$entityHost;
        var$2 = $this.$attackTarget0;
        var$3 = var$2.$posX;
        $var1 = var$2.$boundingBox0.$minY0;
        var$5 = var$2.$posZ;
        var$3 = var$1.$posX - var$3;
        $var1 = var$1.$posY - $var1;
        var$5 = var$1.$posZ - var$5;
        $var1 = var$3 * var$3 + $var1 * $var1 + var$5 * var$5;
        var$6 = var$1.$senses;
        var$1 = var$6.$seenEntities;
        var$7 = 0;
        var$8 = var$1.$modCount;
        var$9 = var$1.$size();
        a: {
            while (true) {
                if (!(var$7 >= var$9 ? 0 : 1)) {
                    var$10 = 0;
                    break a;
                }
                if (var$8 < var$1.$modCount)
                    break;
                $var3 = var$7 + 1 | 0;
                var$12 = var$1.$get(var$7);
                if (var$12 === var$2 ? 1 : var$12 !== null ? var$12.$equals(var$2) : var$2 !== null ? 0 : 1) {
                    var$10 = 1;
                    break a;
                }
                var$7 = $var3;
            }
            var$1 = new ju_ConcurrentModificationException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        if (var$10)
            $var3 = 1;
        else {
            var$1 = var$6.$unseenEntities;
            var$7 = 0;
            var$8 = var$1.$modCount;
            var$9 = var$1.$size();
            b: {
                while (true) {
                    if (!(var$7 >= var$9 ? 0 : 1)) {
                        var$10 = 0;
                        break b;
                    }
                    if (var$8 < var$1.$modCount)
                        break;
                    $var3 = var$7 + 1 | 0;
                    var$12 = var$1.$get(var$7);
                    if (var$12 === var$2 ? 1 : var$12 !== null ? var$12.$equals(var$2) : var$2 !== null ? 0 : 1) {
                        var$10 = 1;
                        break b;
                    }
                    var$7 = $var3;
                }
                var$1 = new ju_ConcurrentModificationException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$1);
                $rt_throw(var$1);
            }
            if (!var$10) {
                var$1 = var$6.$entityObj1;
                $ptr = 1;
                continue main;
            }
            $var3 = 0;
        }
        if (!$var3)
            $this.$field_75318_f = 0;
        else
            $this.$field_75318_f = $this.$field_75318_f + 1 | 0;
        if ($var1 <= $this.$field_82642_h && $this.$field_75318_f >= 20)
            $this.$entityHost.$navigator.$currentPath = null;
        else {
            var$6 = $this.$entityHost.$navigator;
            var$1 = $this.$attackTarget0;
            var$5 = $this.$entityMoveSpeed;
            var$2 = var$6.$theEntity;
            if (var$2.$onGround)
                var$10 = 1;
            else {
                if (var$6.$canSwim) {
                    $ptr = 2;
                    continue main;
                }
                var$10 = 0;
            }
            if (var$10) {
                var$2 = var$6.$worldObj3;
                var$12 = var$6.$theEntity;
                var$13 = var$6.$pathSearchRange;
                if (var$13.$field_111133_g) {
                    var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                    var$13.$field_111133_g = 0;
                }
                $var4 = var$13.$field_111139_h;
                var$10 = var$6.$canPassOpenWoodenDoors;
                var$8 = var$6.$canPassClosedWoodenDoors;
                var$9 = var$6.$avoidsWater;
                var$7 = var$6.$canSwim;
                $ptr = 4;
                continue main;
            }
            var$1 = null;
            if (var$1 !== null) {
                $ptr = 5;
                continue main;
            }
        }
        nms_EntityLookHelper_setLookPositionWithEntity($this.$entityHost.$lookHelper, $this.$attackTarget0, 30.0, 30.0);
        var$10 = $this.$rangedAttackTime - 1 | 0;
        $this.$rangedAttackTime = var$10;
        if (var$10) {
            if (var$10 < 0) {
                $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
                var$10 = $this.$maxRangedAttackTime;
                $var3 = $this.$field_96561_g;
                $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
                var$10 = $var4 | 0;
                if ($var4 < var$10)
                    var$10 = var$10 - 1 | 0;
                $this.$rangedAttackTime = var$10;
            }
            return;
        }
        if ($var1 <= $this.$field_82642_h && $var3) {
            $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
            var$15 = $var4 < 0.10000000149011612 ? 0.10000000149011612 : $var4;
            if (var$15 > 1.0)
                var$15 = 1.0;
            var$1 = $this.$rangedAttackEntityHost;
            var$2 = $this.$attackTarget0;
            $ptr = 6;
            continue main;
        }
        return;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$1, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if (!$var3) {
            var$1 = var$6.$unseenEntities;
            ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
            var$16 = var$1.$array.data;
            var$8 = var$1.$size0;
            var$1.$size0 = var$8 + 1 | 0;
            var$16[var$8] = var$2;
            var$1.$modCount = var$1.$modCount + 1 | 0;
        } else {
            var$1 = var$6.$seenEntities;
            ju_ArrayList_ensureCapacity(var$1, var$1.$size0 + 1 | 0);
            var$16 = var$1.$array.data;
            var$8 = var$1.$size0;
            var$1.$size0 = var$8 + 1 | 0;
            var$16[var$8] = var$2;
            var$1.$modCount = var$1.$modCount + 1 | 0;
        }
        if (!$var3)
            $this.$field_75318_f = 0;
        else
            $this.$field_75318_f = $this.$field_75318_f + 1 | 0;
        if ($var1 <= $this.$field_82642_h && $this.$field_75318_f >= 20)
            $this.$entityHost.$navigator.$currentPath = null;
        else {
            var$6 = $this.$entityHost.$navigator;
            var$1 = $this.$attackTarget0;
            var$5 = $this.$entityMoveSpeed;
            var$2 = var$6.$theEntity;
            if (var$2.$onGround)
                var$10 = 1;
            else {
                if (var$6.$canSwim) {
                    $ptr = 2;
                    continue main;
                }
                var$10 = 0;
            }
            if (var$10) {
                var$2 = var$6.$worldObj3;
                var$12 = var$6.$theEntity;
                var$13 = var$6.$pathSearchRange;
                if (var$13.$field_111133_g) {
                    var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                    var$13.$field_111133_g = 0;
                }
                $var4 = var$13.$field_111139_h;
                var$10 = var$6.$canPassOpenWoodenDoors;
                var$8 = var$6.$canPassClosedWoodenDoors;
                var$9 = var$6.$avoidsWater;
                var$7 = var$6.$canSwim;
                $ptr = 4;
                continue main;
            }
            var$1 = null;
            if (var$1 !== null) {
                $ptr = 5;
                continue main;
            }
        }
        nms_EntityLookHelper_setLookPositionWithEntity($this.$entityHost.$lookHelper, $this.$attackTarget0, 30.0, 30.0);
        var$10 = $this.$rangedAttackTime - 1 | 0;
        $this.$rangedAttackTime = var$10;
        if (var$10) {
            if (var$10 < 0) {
                $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
                var$10 = $this.$maxRangedAttackTime;
                $var3 = $this.$field_96561_g;
                $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
                var$10 = $var4 | 0;
                if ($var4 < var$10)
                    var$10 = var$10 - 1 | 0;
                $this.$rangedAttackTime = var$10;
            }
            return;
        }
        if ($var1 <= $this.$field_82642_h && $var3) {
            $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
            var$15 = $var4 < 0.10000000149011612 ? 0.10000000149011612 : $var4;
            if (var$15 > 1.0)
                var$15 = 1.0;
            var$1 = $this.$rangedAttackEntityHost;
            var$2 = $this.$attackTarget0;
            $ptr = 6;
            continue main;
        }
        return;
    case 2:
        $tmp = var$2.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (!var$10) {
            var$2 = var$6.$theEntity;
            $ptr = 3;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$2 = var$6.$worldObj3;
            var$12 = var$6.$theEntity;
            var$13 = var$6.$pathSearchRange;
            if (var$13.$field_111133_g) {
                var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                var$13.$field_111133_g = 0;
            }
            $var4 = var$13.$field_111139_h;
            var$10 = var$6.$canPassOpenWoodenDoors;
            var$8 = var$6.$canPassClosedWoodenDoors;
            var$9 = var$6.$avoidsWater;
            var$7 = var$6.$canSwim;
            $ptr = 4;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 5;
            continue main;
        }
        nms_EntityLookHelper_setLookPositionWithEntity($this.$entityHost.$lookHelper, $this.$attackTarget0, 30.0, 30.0);
        var$10 = $this.$rangedAttackTime - 1 | 0;
        $this.$rangedAttackTime = var$10;
        if (var$10) {
            if (var$10 < 0) {
                $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
                var$10 = $this.$maxRangedAttackTime;
                $var3 = $this.$field_96561_g;
                $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
                var$10 = $var4 | 0;
                if ($var4 < var$10)
                    var$10 = var$10 - 1 | 0;
                $this.$rangedAttackTime = var$10;
            }
            return;
        }
        if ($var1 <= $this.$field_82642_h && $var3) {
            $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
            var$15 = $var4 < 0.10000000149011612 ? 0.10000000149011612 : $var4;
            if (var$15 > 1.0)
                var$15 = 1.0;
            var$1 = $this.$rangedAttackEntityHost;
            var$2 = $this.$attackTarget0;
            $ptr = 6;
            continue main;
        }
        return;
    case 3:
        $tmp = var$2.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if ((var$10 ? 1 : 0) ? 1 : 0) {
            var$2 = var$6.$worldObj3;
            var$12 = var$6.$theEntity;
            var$13 = var$6.$pathSearchRange;
            if (var$13.$field_111133_g) {
                var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                var$13.$field_111133_g = 0;
            }
            $var4 = var$13.$field_111139_h;
            var$10 = var$6.$canPassOpenWoodenDoors;
            var$8 = var$6.$canPassClosedWoodenDoors;
            var$9 = var$6.$avoidsWater;
            var$7 = var$6.$canSwim;
            $ptr = 4;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 5;
            continue main;
        }
        nms_EntityLookHelper_setLookPositionWithEntity($this.$entityHost.$lookHelper, $this.$attackTarget0, 30.0, 30.0);
        var$10 = $this.$rangedAttackTime - 1 | 0;
        $this.$rangedAttackTime = var$10;
        if (var$10) {
            if (var$10 < 0) {
                $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
                var$10 = $this.$maxRangedAttackTime;
                $var3 = $this.$field_96561_g;
                $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
                var$10 = $var4 | 0;
                if ($var4 < var$10)
                    var$10 = var$10 - 1 | 0;
                $this.$rangedAttackTime = var$10;
            }
            return;
        }
        if ($var1 <= $this.$field_82642_h && $var3) {
            $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
            var$15 = $var4 < 0.10000000149011612 ? 0.10000000149011612 : $var4;
            if (var$15 > 1.0)
                var$15 = 1.0;
            var$1 = $this.$rangedAttackEntityHost;
            var$2 = $this.$attackTarget0;
            $ptr = 6;
            continue main;
        }
        return;
    case 4:
        $tmp = nms_World_getPathEntityToEntity(var$2, var$12, var$1, $var4, var$10, var$8, var$9, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 !== null) {
            $ptr = 5;
            continue main;
        }
        nms_EntityLookHelper_setLookPositionWithEntity($this.$entityHost.$lookHelper, $this.$attackTarget0, 30.0, 30.0);
        var$10 = $this.$rangedAttackTime - 1 | 0;
        $this.$rangedAttackTime = var$10;
        if (var$10) {
            if (var$10 < 0) {
                $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
                var$10 = $this.$maxRangedAttackTime;
                $var3 = $this.$field_96561_g;
                $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
                var$10 = $var4 | 0;
                if ($var4 < var$10)
                    var$10 = var$10 - 1 | 0;
                $this.$rangedAttackTime = var$10;
            }
            return;
        }
        if ($var1 <= $this.$field_82642_h && $var3) {
            $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
            var$15 = $var4 < 0.10000000149011612 ? 0.10000000149011612 : $var4;
            if (var$15 > 1.0)
                var$15 = 1.0;
            var$1 = $this.$rangedAttackEntityHost;
            var$2 = $this.$attackTarget0;
            $ptr = 6;
            continue main;
        }
        return;
    case 5:
        nms_PathNavigate_setPath(var$6, var$1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        nms_EntityLookHelper_setLookPositionWithEntity($this.$entityHost.$lookHelper, $this.$attackTarget0, 30.0, 30.0);
        var$10 = $this.$rangedAttackTime - 1 | 0;
        $this.$rangedAttackTime = var$10;
        if (var$10) {
            if (var$10 < 0) {
                $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
                var$10 = $this.$maxRangedAttackTime;
                $var3 = $this.$field_96561_g;
                $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
                var$10 = $var4 | 0;
                if ($var4 < var$10)
                    var$10 = var$10 - 1 | 0;
                $this.$rangedAttackTime = var$10;
            }
            return;
        }
        if ($var1 <= $this.$field_82642_h && $var3) {
            $var4 = jl_Math_sqrt($var1) / $this.$field_96562_i;
            var$15 = $var4 < 0.10000000149011612 ? 0.10000000149011612 : $var4;
            if (var$15 > 1.0)
                var$15 = 1.0;
            var$1 = $this.$rangedAttackEntityHost;
            var$2 = $this.$attackTarget0;
            $ptr = 6;
            continue main;
        }
        return;
    case 6:
        var$1.$attackEntityWithRangedAttack(var$2, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $this.$maxRangedAttackTime;
        $var3 = $this.$field_96561_g;
        $var4 = $var4 * (var$10 - $var3 | 0) + $var3;
        var$10 = $var4 | 0;
        if ($var4 < var$10)
            var$10 = var$10 - 1 | 0;
        $this.$rangedAttackTime = var$10;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, var$5, var$6, var$7, var$8, var$9, var$10, $var3, var$12, var$13, $var4, var$15, var$16, $ptr);
};
function nms_MobSpawnerBaseLogic() {
    let a = this; jl_Object.call(a);
    a.$spawnDelay = 0;
    a.$mobID = null;
    a.$minecartToSpawn = null;
    a.$randomMinecart = null;
    a.$field_98287_c = 0.0;
    a.$field_98284_d = 0.0;
    a.$minSpawnDelay = 0;
    a.$maxSpawnDelay = 0;
    a.$spawnCount = 0;
    a.$field_98291_j = null;
    a.$maxNearbyEntities = 0;
    a.$activatingRangeFromPlayer = 0;
    a.$spawnRange = 0;
}
let nms_MobSpawnerBaseLogic_getEntityNameToSpawn = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$randomMinecart;
    if (var$1 !== null)
        return var$1.$minecartName;
    var$2 = $this.$mobID;
    if (var$2 === $rt_s(2504))
        var$3 = 1;
    else if (!($rt_s(2504) instanceof jl_String))
        var$3 = 0;
    else {
        var$1 = $rt_s(2504);
        var$3 = var$2.$nativeString !== var$1.$nativeString ? 0 : 1;
    }
    if (var$3)
        $this.$mobID = $rt_s(2507);
    return $this.$mobID;
},
nms_MobSpawnerBaseLogic_canRun = $this => {
    return nms_World_getClosestPlayer($this.$getSpawnerWorld(), $this.$getSpawnerX() + 0.5, $this.$getSpawnerY() + 0.5, $this.$getSpawnerZ() + 0.5, $this.$activatingRangeFromPlayer) === null ? 0 : 1;
},
nms_MobSpawnerBaseLogic_updateSpawner = $this => {
    let var$1, var$2, $var12, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var11, $var13, var$18, var$19, var$20, var$21, $var4, var$23, $var5, $var7, $var9, var$27, var$28, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();var$35 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();var$23 = $thread.pop();$var4 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var13 = $thread.pop();$var11
        = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();$var12 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = nms_World_getClosestPlayer($this.$getSpawnerWorld(), $this.$getSpawnerX() + 0.5, $this.$getSpawnerY() + 0.5, $this.$getSpawnerZ() + 0.5, $this.$activatingRangeFromPlayer) === null ? 0 : 1;
        a: {
            if (var$1) {
                if (($this.$getSpawnerWorld()).$isRemote) {
                    $this.$getSpawnerX();
                    var$2 = ($this.$getSpawnerWorld()).$rand0;
                    var$2.$seed = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $this.$getSpawnerY();
                    var$2 = ($this.$getSpawnerWorld()).$rand0;
                    var$2.$seed = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $this.$getSpawnerZ();
                    var$2 = ($this.$getSpawnerWorld()).$rand0;
                    var$2.$seed = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$2 = $this.$getSpawnerWorld();
                    var$1 = 0;
                    while (true) {
                        $var12 = $rt_compare(var$1, var$2.$worldAccesses.$size0);
                        if ($var12 >= 0) {
                            var$2 = $this.$getSpawnerWorld();
                            var$1 = 0;
                            while (true) {
                                $var12 = $rt_compare(var$1, var$2.$worldAccesses.$size0);
                                if ($var12 >= 0) {
                                    var$1 = $this.$spawnDelay;
                                    if (var$1 > 0)
                                        $this.$spawnDelay = var$1 - 1 | 0;
                                    var$4 = $this.$field_98287_c;
                                    $this.$field_98284_d = var$4;
                                    $this.$field_98287_c = (var$4 + 1000.0 / ($this.$spawnDelay + 200.0)) % 360.0;
                                    break a;
                                }
                                if (var$1 < 0)
                                    break;
                                if ($var12 >= 0)
                                    break;
                                var$1 = var$1 + 1 | 0;
                            }
                            var$2 = new jl_IndexOutOfBoundsException;
                            var$2.$suppressionEnabled = 1;
                            var$2.$writableStackTrace = 1;
                            $rt_throw(var$2);
                        }
                        if (var$1 < 0)
                            break;
                        if ($var12 >= 0)
                            break;
                        var$1 = var$1 + 1 | 0;
                    }
                    var$2 = new jl_IndexOutOfBoundsException;
                    var$2.$suppressionEnabled = 1;
                    var$2.$writableStackTrace = 1;
                    $rt_throw(var$2);
                }
                if ($this.$spawnDelay == (-1)) {
                    $ptr = 1;
                    continue main;
                }
                var$1 = $this.$spawnDelay;
                if (var$1 > 0) {
                    $this.$spawnDelay = var$1 - 1 | 0;
                    return;
                }
                $var12 = 0;
                $var2 = 0;
                var$6 = null;
                var$7 = 22;
                var$8 = 21;
                var$9 = 17;
                var$10 = 2;
                var$11 = 24;
                var$12 = null;
                var$13 = $rt_s(1270);
                var$14 = $rt_s(1271);
                var$15 = $rt_s(9);
                if ($var2 < $this.$spawnCount) {
                    $var11 = nms_MobSpawnerBaseLogic_getEntityNameToSpawn($this);
                    $var13 = $this.$getSpawnerWorld();
                    nms_EntityList_$callClinit();
                    var$2 = nms_EntityList_stringToConstructorMapping;
                    if ($var11 === null) {
                        var$2 = var$2.$elementData.data[0];
                        while (var$2 !== null && var$2.$key !== null) {
                            var$2 = var$2.$next3;
                        }
                    } else {
                        b: {
                            if (!$var11.$hashCode1) {
                                var$1 = 0;
                                while (true) {
                                    if (var$1 >= $var11.$nativeString.length)
                                        break b;
                                    $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt(var$1) | 0;
                                    var$1 = var$1 + 1 | 0;
                                }
                            }
                        }
                        var$18 = $var11.$hashCode1;
                        var$19 = var$2.$elementData.data;
                        var$2 = var$19[var$18 & (var$19.length - 1 | 0)];
                        while (var$2 !== null) {
                            if (var$2.$origKeyHash == var$18) {
                                c: {
                                    var$20 = var$2.$key;
                                    if ($var11 !== var$20) {
                                        if ($var11 === var$20)
                                            var$1 = 1;
                                        else if (!(var$20 instanceof jl_String))
                                            var$1 = 0;
                                        else {
                                            var$20 = var$20;
                                            var$1 = $var11.$nativeString !== var$20.$nativeString ? 0 : 1;
                                        }
                                        if (!var$1) {
                                            var$1 = 0;
                                            break c;
                                        }
                                    }
                                    var$1 = 1;
                                }
                                if (var$1)
                                    break;
                            }
                            var$2 = var$2.$next3;
                        }
                    }
                    var$2 = var$2 === null ? null : var$2.$value0;
                    if (var$2 !== null) {
                        $ptr = 3;
                        continue main;
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        var$20 = new ji_ByteArrayOutputStream;
                        var$20.$buf = $rt_createByteArray(32);
                        jl_Object__init_(var$2);
                        var$2.$out0 = var$20;
                        var$20 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0(var$20, 16);
                        var$2.$sb = var$20;
                        var$2.$buffer0 = $rt_createCharArray(32);
                        var$2.$autoFlush = 0;
                        var$2.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = var$2;
                    }
                    var$2 = new jl_StringBuilder;
                    var$2.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$13);
                    var$1 = var$2.$length0;
                    if ($var11 === null)
                        $var11 = $rt_s(1);
                    jl_AbstractStringBuilder_insert(var$2, var$1, $var11);
                    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$14);
                    var$20 = new jl_String;
                    var$19 = var$2.$buffer;
                    var$21 = var$19.data;
                    $var4 = var$2.$length0;
                    var$18 = var$21.length;
                    if ($var4 >= 0 && $var4 <= (var$18 - 0 | 0)) {
                        var$20.$nativeString = $rt_charArrayToString(var$19.data, 0, $var4);
                        $rt_putStderr($rt_ustr(var$20));
                        $rt_putStderr($rt_ustr(var$15));
                        $var13 = null;
                        if ($var13 === null)
                            return;
                        var$23 = $this.$getSpawnerWorld();
                        var$20 = $var13.constructor;
                        if (var$20 === null)
                            var$2 = null;
                        else {
                            var$2 = var$20.classObject;
                            if (var$2 === null) {
                                var$2 = new jl_Class;
                                var$2.$platformClass = var$20;
                                var$20.classObject = var$2;
                            }
                        }
                        $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                        $var5 = $this.$getSpawnerX();
                        $var7 = $this.$getSpawnerY();
                        $var9 = $this.$getSpawnerZ();
                        var$27 = $this.$getSpawnerX() + 1 | 0;
                        var$28 = $this.$getSpawnerY() + 1 | 0;
                        var$4 = $this.$getSpawnerZ() + 1 | 0;
                        var$1 = $var11.$nextPoolIndex;
                        var$20 = $var11.$listAABB;
                        var$18 = var$20.$size0;
                        $var4 = $rt_compare(var$1, var$18);
                        if ($var4 >= 0) {
                            var$29 = new nms_AxisAlignedBB;
                            var$29.$minX0 = $var5;
                            var$29.$minY0 = $var7;
                            var$29.$minZ0 = $var9;
                            var$29.$maxX0 = var$27;
                            var$29.$maxY = var$28;
                            var$29.$maxZ0 = var$4;
                            ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                            var$19 = var$20.$array.data;
                            $var4 = var$20.$size0;
                            var$20.$size0 = $var4 + 1 | 0;
                            var$19[$var4] = var$29;
                            var$20.$modCount = var$20.$modCount + 1 | 0;
                        } else if (var$1 >= 0 && $var4 < 0) {
                            var$29 = var$20.$array.data[var$1];
                            var$29.$minX0 = $var5;
                            var$29.$minY0 = $var7;
                            var$29.$minZ0 = $var9;
                            var$29.$maxX0 = var$27;
                            var$29.$maxY = var$28;
                            var$29.$maxZ0 = var$4;
                        } else {
                            var$2 = new jl_IndexOutOfBoundsException;
                            var$2.$suppressionEnabled = 1;
                            var$2.$writableStackTrace = 1;
                            $rt_throw(var$2);
                        }
                        $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
                        var$4 = $this.$spawnRange * 2 | 0;
                        $var7 = var$29.$minX0 - var$4;
                        $var9 = var$29.$minY0 - 4.0;
                        var$27 = var$29.$minZ0 - var$4;
                        var$28 = var$29.$maxX0 + var$4;
                        $var5 = var$29.$maxY + 4.0;
                        var$4 = var$29.$maxZ0 + var$4;
                        $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                        var$1 = $var11.$nextPoolIndex;
                        var$20 = $var11.$listAABB;
                        var$18 = var$20.$size0;
                        $var4 = $rt_compare(var$1, var$18);
                        if ($var4 >= 0) {
                            var$29 = new nms_AxisAlignedBB;
                            var$29.$minX0 = $var7;
                            var$29.$minY0 = $var9;
                            var$29.$minZ0 = var$27;
                            var$29.$maxX0 = var$28;
                            var$29.$maxY = $var5;
                            var$29.$maxZ0 = var$4;
                            ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                            var$19 = var$20.$array.data;
                            $var4 = var$20.$size0;
                            var$20.$size0 = $var4 + 1 | 0;
                            var$19[$var4] = var$29;
                            var$20.$modCount = var$20.$modCount + 1 | 0;
                        } else if (var$1 >= 0 && $var4 < 0) {
                            var$29 = var$20.$array.data[var$1];
                            var$29.$minX0 = $var7;
                            var$29.$minY0 = $var9;
                            var$29.$minZ0 = var$27;
                            var$29.$maxX0 = var$28;
                            var$29.$maxY = $var5;
                            var$29.$maxZ0 = var$4;
                        } else {
                            var$2 = new jl_IndexOutOfBoundsException;
                            var$2.$suppressionEnabled = 1;
                            var$2.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace(var$2);
                            $rt_throw(var$2);
                        }
                        $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
                        $ptr = 4;
                        continue main;
                    }
                    var$2 = new jl_IndexOutOfBoundsException;
                    jl_Throwable__init_(var$2);
                    $rt_throw(var$2);
                }
                if ($var12) {
                    $ptr = 2;
                    continue main;
                }
            }
        }
        return;
    case 1:
        nms_MobSpawnerBaseLogic_func_98273_j($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$spawnDelay;
        if (var$1 > 0) {
            $this.$spawnDelay = var$1 - 1 | 0;
            return;
        }
        $var12 = 0;
        $var2 = 0;
        var$6 = null;
        var$7 = 22;
        var$8 = 21;
        var$9 = 17;
        var$10 = 2;
        var$11 = 24;
        var$12 = null;
        var$13 = $rt_s(1270);
        var$14 = $rt_s(1271);
        var$15 = $rt_s(9);
        if ($var2 >= $this.$spawnCount) {
            if (!$var12)
                return;
            $ptr = 2;
            continue main;
        }
        $var11 = nms_MobSpawnerBaseLogic_getEntityNameToSpawn($this);
        $var13 = $this.$getSpawnerWorld();
        nms_EntityList_$callClinit();
        var$2 = nms_EntityList_stringToConstructorMapping;
        if ($var11 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            d: {
                if (!$var11.$hashCode1) {
                    var$1 = 0;
                    while (true) {
                        if (var$1 >= $var11.$nativeString.length)
                            break d;
                        $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt(var$1) | 0;
                        var$1 = var$1 + 1 | 0;
                    }
                }
            }
            var$18 = $var11.$hashCode1;
            var$19 = var$2.$elementData.data;
            var$2 = var$19[var$18 & (var$19.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$18) {
                    e: {
                        var$20 = var$2.$key;
                        if ($var11 !== var$20) {
                            if ($var11 === var$20)
                                var$1 = 1;
                            else if (!(var$20 instanceof jl_String))
                                var$1 = 0;
                            else {
                                var$20 = var$20;
                                var$1 = $var11.$nativeString !== var$20.$nativeString ? 0 : 1;
                            }
                            if (!var$1) {
                                var$1 = 0;
                                break e;
                            }
                        }
                        var$1 = 1;
                    }
                    if (var$1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2 !== null) {
            $ptr = 3;
            continue main;
        }
        if (jl_System_errCache === null) {
            var$2 = new otcic_JSStderrPrintStream;
            var$20 = new ji_ByteArrayOutputStream;
            var$20.$buf = $rt_createByteArray(32);
            jl_Object__init_(var$2);
            var$2.$out0 = var$20;
            var$20 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$20, 16);
            var$2.$sb = var$20;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$2;
        }
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$13);
        var$1 = var$2.$length0;
        if ($var11 === null)
            $var11 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, var$1, $var11);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$14);
        var$20 = new jl_String;
        var$19 = var$2.$buffer;
        var$21 = var$19.data;
        $var4 = var$2.$length0;
        var$18 = var$21.length;
        if ($var4 >= 0 && $var4 <= (var$18 - 0 | 0)) {
            var$20.$nativeString = $rt_charArrayToString(var$19.data, 0, $var4);
            $rt_putStderr($rt_ustr(var$20));
            $rt_putStderr($rt_ustr(var$15));
            $var13 = null;
            if ($var13 === null)
                return;
            var$23 = $this.$getSpawnerWorld();
            var$20 = $var13.constructor;
            if (var$20 === null)
                var$2 = null;
            else {
                var$2 = var$20.classObject;
                if (var$2 === null) {
                    var$2 = new jl_Class;
                    var$2.$platformClass = var$20;
                    var$20.classObject = var$2;
                }
            }
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var5 = $this.$getSpawnerX();
            $var7 = $this.$getSpawnerY();
            $var9 = $this.$getSpawnerZ();
            var$27 = $this.$getSpawnerX() + 1 | 0;
            var$28 = $this.$getSpawnerY() + 1 | 0;
            var$4 = $this.$getSpawnerZ() + 1 | 0;
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            var$4 = $this.$spawnRange * 2 | 0;
            $var7 = var$29.$minX0 - var$4;
            $var9 = var$29.$minY0 - 4.0;
            var$27 = var$29.$minZ0 - var$4;
            var$28 = var$29.$maxX0 + var$4;
            $var5 = var$29.$maxY + 4.0;
            var$4 = var$29.$maxZ0 + var$4;
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$2);
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            $ptr = 4;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$2);
        $rt_throw(var$2);
    case 2:
        nms_MobSpawnerBaseLogic_func_98273_j($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 3:
        $tmp = var$2.$apply($var13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        if ($var13 === null)
            return;
        var$23 = $this.$getSpawnerWorld();
        var$20 = $var13.constructor;
        if (var$20 === null)
            var$2 = null;
        else {
            var$2 = var$20.classObject;
            if (var$2 === null) {
                var$2 = new jl_Class;
                var$2.$platformClass = var$20;
                var$20.classObject = var$2;
            }
        }
        $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var5 = $this.$getSpawnerX();
        $var7 = $this.$getSpawnerY();
        $var9 = $this.$getSpawnerZ();
        var$27 = $this.$getSpawnerX() + 1 | 0;
        var$28 = $this.$getSpawnerY() + 1 | 0;
        var$4 = $this.$getSpawnerZ() + 1 | 0;
        var$1 = $var11.$nextPoolIndex;
        var$20 = $var11.$listAABB;
        var$18 = var$20.$size0;
        $var4 = $rt_compare(var$1, var$18);
        if ($var4 >= 0) {
            var$29 = new nms_AxisAlignedBB;
            var$29.$minX0 = $var5;
            var$29.$minY0 = $var7;
            var$29.$minZ0 = $var9;
            var$29.$maxX0 = var$27;
            var$29.$maxY = var$28;
            var$29.$maxZ0 = var$4;
            ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
            var$19 = var$20.$array.data;
            $var4 = var$20.$size0;
            var$20.$size0 = $var4 + 1 | 0;
            var$19[$var4] = var$29;
            var$20.$modCount = var$20.$modCount + 1 | 0;
        } else if (var$1 >= 0 && $var4 < 0) {
            var$29 = var$20.$array.data[var$1];
            var$29.$minX0 = $var5;
            var$29.$minY0 = $var7;
            var$29.$minZ0 = $var9;
            var$29.$maxX0 = var$27;
            var$29.$maxY = var$28;
            var$29.$maxZ0 = var$4;
        } else {
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
        var$4 = $this.$spawnRange * 2 | 0;
        $var7 = var$29.$minX0 - var$4;
        $var9 = var$29.$minY0 - 4.0;
        var$27 = var$29.$minZ0 - var$4;
        var$28 = var$29.$maxX0 + var$4;
        $var5 = var$29.$maxY + 4.0;
        var$4 = var$29.$maxZ0 + var$4;
        $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$1 = $var11.$nextPoolIndex;
        var$20 = $var11.$listAABB;
        var$18 = var$20.$size0;
        $var4 = $rt_compare(var$1, var$18);
        if ($var4 >= 0) {
            var$29 = new nms_AxisAlignedBB;
            var$29.$minX0 = $var7;
            var$29.$minY0 = $var9;
            var$29.$minZ0 = var$27;
            var$29.$maxX0 = var$28;
            var$29.$maxY = $var5;
            var$29.$maxZ0 = var$4;
            ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
            var$19 = var$20.$array.data;
            $var4 = var$20.$size0;
            var$20.$size0 = $var4 + 1 | 0;
            var$19[$var4] = var$29;
            var$20.$modCount = var$20.$modCount + 1 | 0;
        } else if (var$1 >= 0 && $var4 < 0) {
            var$29 = var$20.$array.data[var$1];
            var$29.$minX0 = $var7;
            var$29.$minY0 = $var9;
            var$29.$minZ0 = var$27;
            var$29.$maxX0 = var$28;
            var$29.$maxY = $var5;
            var$29.$maxZ0 = var$4;
        } else {
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
        $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_selectEntitiesWithinAABB(var$23, var$2, var$29, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2.$size0 >= $this.$maxNearbyEntities) {
            $ptr = 5;
            continue main;
        }
        $var7 = $this.$getSpawnerX();
        var$2 = ($this.$getSpawnerWorld()).$rand0;
        var$30 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$30;
        var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$30, var$7))), 27);
        var$32 = Long_and(Long_add(Long_mul(var$30, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$32;
        $var9 = Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$32, var$8))))) * 1.1102230246251565E-16;
        var$2 = ($this.$getSpawnerWorld()).$rand0;
        var$30 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$30;
        var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$30, var$7))), 27);
        var$32 = Long_and(Long_add(Long_mul(var$30, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$32;
        $var5 = $var7 + ($var9 - Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$32, var$8))))) * 1.1102230246251565E-16) * $this.$spawnRange;
        var$1 = $this.$getSpawnerY();
        var$2 = ($this.$getSpawnerWorld()).$rand0;
        var$31 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$31;
        var$33 = Long_lo(Long_shru(var$31, var$9));
        while (true) {
            var$18 = var$33 % 3 | 0;
            if (((var$33 - var$18 | 0) + var$10 | 0) >= 0)
                break;
            var$31 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$31;
            var$33 = Long_lo(Long_shru(var$31, var$9));
        }
        $var7 = (var$1 + var$18 | 0) - 1 | 0;
        var$4 = $this.$getSpawnerZ();
        var$2 = ($this.$getSpawnerWorld()).$rand0;
        var$30 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$30;
        var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$30, var$7))), 27);
        var$32 = Long_and(Long_add(Long_mul(var$30, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$32;
        var$28 = Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$32, var$8))))) * 1.1102230246251565E-16;
        var$2 = ($this.$getSpawnerWorld()).$rand0;
        var$30 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$30;
        var$31 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$30, var$7))), 27);
        var$32 = Long_and(Long_add(Long_mul(var$30, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$32;
        $var9 = var$4 + (var$28 - Long_toNumber(Long_add(var$31, Long_fromInt(Long_lo(Long_shru(var$32, var$8))))) * 1.1102230246251565E-16) * $this.$spawnRange;
        $var11 = !($var13 instanceof nms_EntityLiving) ? null : $var13;
        var$2 = ($this.$getSpawnerWorld()).$rand0;
        var$31 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$31;
        var$34 = Long_lo(Long_shru(var$31, var$11)) / 1.6777216E7 * 360.0;
        $var13.$posX = $var5;
        $var13.$prevPosX = $var5;
        $var13.$lastTickPosX = $var5;
        var$4 = $var7 + $var13.$yOffset;
        $var13.$posY = var$4;
        $var13.$prevPosY = var$4;
        $var13.$lastTickPosY = var$4;
        $var13.$posZ = $var9;
        $var13.$prevPosZ = $var9;
        $var13.$lastTickPosZ = $var9;
        $var13.$rotationYaw = var$34;
        $var13.$rotationPitch = 0.0;
        nms_Entity_setPosition($var13, $var5, var$4, $var9);
        if ($var11 === null) {
            $ptr = 6;
            continue main;
        }
        $ptr = 7;
        continue main;
    case 5:
        nms_MobSpawnerBaseLogic_func_98273_j($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        nms_MobSpawnerBaseLogic_func_98265_a($this, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $this.$getSpawnerWorld();
        $var4 = 2004;
        var$18 = $this.$getSpawnerX();
        var$33 = $this.$getSpawnerY();
        var$35 = $this.$getSpawnerZ();
        var$36 = 0;
        var$37 = 0;
        $var5 = var$18;
        $var7 = var$33;
        $var9 = var$35;
        var$2 = $var13.$worldAccesses;
        var$1 = $rt_compare(var$37, var$2.$size0);
        if (var$1 < 0) {
            if (var$37 >= 0 && var$1 < 0) {
                var$20 = var$2.$array.data[var$37];
                var$29 = var$20.$mcServer.$serverConfigManager;
                var$4 = 64.0;
                $var12 = var$20.$theWorldServer.$provider.$dimensionId;
                var$2 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$sfxID = $var4;
                var$2.$posX1 = var$18;
                var$2.$posY1 = var$33;
                var$2.$posZ1 = var$35;
                var$2.$auxData = var$36;
                var$2.$disableRelativeVolume = 0;
                $ptr = 8;
                continue main;
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
        if ($var11 !== null)
            nms_EntityLiving_spawnExplosionParticle($var11);
        $var12 = 1;
        $var2 = $var2 + 1 | 0;
        if ($var2 >= $this.$spawnCount) {
            if (!$var12)
                return;
            $ptr = 2;
            continue main;
        }
        $var11 = nms_MobSpawnerBaseLogic_getEntityNameToSpawn($this);
        $var13 = $this.$getSpawnerWorld();
        nms_EntityList_$callClinit();
        var$2 = nms_EntityList_stringToConstructorMapping;
        if ($var11 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            f: {
                if (!$var11.$hashCode1) {
                    var$1 = 0;
                    while (true) {
                        if (var$1 >= $var11.$nativeString.length)
                            break f;
                        $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt(var$1) | 0;
                        var$1 = var$1 + 1 | 0;
                    }
                }
            }
            var$18 = $var11.$hashCode1;
            var$19 = var$2.$elementData.data;
            var$2 = var$19[var$18 & (var$19.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$18) {
                    g: {
                        var$20 = var$2.$key;
                        if ($var11 !== var$20) {
                            if ($var11 === var$20)
                                var$1 = 1;
                            else if (!(var$20 instanceof jl_String))
                                var$1 = 0;
                            else {
                                var$20 = var$20;
                                var$1 = $var11.$nativeString !== var$20.$nativeString ? 0 : 1;
                            }
                            if (!var$1) {
                                var$1 = 0;
                                break g;
                            }
                        }
                        var$1 = 1;
                    }
                    if (var$1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2 !== null) {
            $ptr = 3;
            continue main;
        }
        if (jl_System_errCache === null) {
            var$2 = new otcic_JSStderrPrintStream;
            var$20 = new ji_ByteArrayOutputStream;
            var$20.$buf = $rt_createByteArray(32);
            jl_Object__init_(var$2);
            var$2.$out0 = var$20;
            var$20 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$20, 16);
            var$2.$sb = var$20;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$2;
        }
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$13);
        var$1 = var$2.$length0;
        if ($var11 === null)
            $var11 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, var$1, $var11);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$14);
        var$20 = new jl_String;
        var$19 = var$2.$buffer;
        var$21 = var$19.data;
        $var4 = var$2.$length0;
        var$18 = var$21.length;
        if ($var4 >= 0 && $var4 <= (var$18 - 0 | 0)) {
            var$20.$nativeString = $rt_charArrayToString(var$19.data, 0, $var4);
            $rt_putStderr($rt_ustr(var$20));
            $rt_putStderr($rt_ustr(var$15));
            $var13 = null;
            if ($var13 === null)
                return;
            var$23 = $this.$getSpawnerWorld();
            var$20 = $var13.constructor;
            if (var$20 === null)
                var$2 = null;
            else {
                var$2 = var$20.classObject;
                if (var$2 === null) {
                    var$2 = new jl_Class;
                    var$2.$platformClass = var$20;
                    var$20.classObject = var$2;
                }
            }
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var5 = $this.$getSpawnerX();
            $var7 = $this.$getSpawnerY();
            $var9 = $this.$getSpawnerZ();
            var$27 = $this.$getSpawnerX() + 1 | 0;
            var$28 = $this.$getSpawnerY() + 1 | 0;
            var$4 = $this.$getSpawnerZ() + 1 | 0;
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            var$4 = $this.$spawnRange * 2 | 0;
            $var7 = var$29.$minX0 - var$4;
            $var9 = var$29.$minY0 - 4.0;
            var$27 = var$29.$minZ0 - var$4;
            var$28 = var$29.$maxX0 + var$4;
            $var5 = var$29.$maxY + 4.0;
            var$4 = var$29.$maxZ0 + var$4;
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$2);
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            $ptr = 4;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$2);
        $rt_throw(var$2);
    case 7:
        $tmp = $var11.$getCanSpawnHere();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1) {
            $ptr = 6;
            continue main;
        }
        $var2 = $var2 + 1 | 0;
        if ($var2 >= $this.$spawnCount) {
            if (!$var12)
                return;
            $ptr = 2;
            continue main;
        }
        $var11 = nms_MobSpawnerBaseLogic_getEntityNameToSpawn($this);
        $var13 = $this.$getSpawnerWorld();
        nms_EntityList_$callClinit();
        var$2 = nms_EntityList_stringToConstructorMapping;
        if ($var11 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            d: {
                if (!$var11.$hashCode1) {
                    var$1 = 0;
                    while (true) {
                        if (var$1 >= $var11.$nativeString.length)
                            break d;
                        $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt(var$1) | 0;
                        var$1 = var$1 + 1 | 0;
                    }
                }
            }
            var$18 = $var11.$hashCode1;
            var$19 = var$2.$elementData.data;
            var$2 = var$19[var$18 & (var$19.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$18) {
                    e: {
                        var$20 = var$2.$key;
                        if ($var11 !== var$20) {
                            if ($var11 === var$20)
                                var$1 = 1;
                            else if (!(var$20 instanceof jl_String))
                                var$1 = 0;
                            else {
                                var$20 = var$20;
                                var$1 = $var11.$nativeString !== var$20.$nativeString ? 0 : 1;
                            }
                            if (!var$1) {
                                var$1 = 0;
                                break e;
                            }
                        }
                        var$1 = 1;
                    }
                    if (var$1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2 !== null) {
            $ptr = 3;
            continue main;
        }
        if (jl_System_errCache === null) {
            var$2 = new otcic_JSStderrPrintStream;
            var$20 = new ji_ByteArrayOutputStream;
            var$20.$buf = $rt_createByteArray(32);
            jl_Object__init_(var$2);
            var$2.$out0 = var$20;
            var$20 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$20, 16);
            var$2.$sb = var$20;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$2;
        }
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$13);
        var$1 = var$2.$length0;
        if ($var11 === null)
            $var11 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, var$1, $var11);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$14);
        var$20 = new jl_String;
        var$19 = var$2.$buffer;
        var$21 = var$19.data;
        $var4 = var$2.$length0;
        var$18 = var$21.length;
        if ($var4 >= 0 && $var4 <= (var$18 - 0 | 0)) {
            var$20.$nativeString = $rt_charArrayToString(var$19.data, 0, $var4);
            $rt_putStderr($rt_ustr(var$20));
            $rt_putStderr($rt_ustr(var$15));
            $var13 = null;
            if ($var13 === null)
                return;
            var$23 = $this.$getSpawnerWorld();
            var$20 = $var13.constructor;
            if (var$20 === null)
                var$2 = null;
            else {
                var$2 = var$20.classObject;
                if (var$2 === null) {
                    var$2 = new jl_Class;
                    var$2.$platformClass = var$20;
                    var$20.classObject = var$2;
                }
            }
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var5 = $this.$getSpawnerX();
            $var7 = $this.$getSpawnerY();
            $var9 = $this.$getSpawnerZ();
            var$27 = $this.$getSpawnerX() + 1 | 0;
            var$28 = $this.$getSpawnerY() + 1 | 0;
            var$4 = $this.$getSpawnerZ() + 1 | 0;
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            var$4 = $this.$spawnRange * 2 | 0;
            $var7 = var$29.$minX0 - var$4;
            $var9 = var$29.$minY0 - 4.0;
            var$27 = var$29.$minZ0 - var$4;
            var$28 = var$29.$maxX0 + var$4;
            $var5 = var$29.$maxY + 4.0;
            var$4 = var$29.$maxZ0 + var$4;
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$2);
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            $ptr = 4;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$2);
        $rt_throw(var$2);
    case 8:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$29, var$12, $var5, $var7, $var9, var$4, $var12, var$2);
        if ($rt_suspending()) {
            break main;
        }
        var$37 = var$37 + 1 | 0;
        var$2 = $var13.$worldAccesses;
        var$1 = $rt_compare(var$37, var$2.$size0);
        if (var$1 < 0) {
            if (var$37 >= 0 && var$1 < 0) {
                var$20 = var$2.$array.data[var$37];
                var$29 = var$20.$mcServer.$serverConfigManager;
                var$4 = 64.0;
                $var12 = var$20.$theWorldServer.$provider.$dimensionId;
                var$2 = new nms_Packet61DoorChange;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$sfxID = $var4;
                var$2.$posX1 = var$18;
                var$2.$posY1 = var$33;
                var$2.$posZ1 = var$35;
                var$2.$auxData = var$36;
                var$2.$disableRelativeVolume = 0;
                continue main;
            }
            var$2 = new jl_IndexOutOfBoundsException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$2);
            $rt_throw(var$2);
        }
        if ($var11 !== null)
            nms_EntityLiving_spawnExplosionParticle($var11);
        $var12 = 1;
        $var2 = $var2 + 1 | 0;
        if ($var2 >= $this.$spawnCount) {
            if (!$var12)
                return;
            $ptr = 2;
            continue main;
        }
        $var11 = nms_MobSpawnerBaseLogic_getEntityNameToSpawn($this);
        $var13 = $this.$getSpawnerWorld();
        nms_EntityList_$callClinit();
        var$2 = nms_EntityList_stringToConstructorMapping;
        if ($var11 === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            f: {
                if (!$var11.$hashCode1) {
                    var$1 = 0;
                    while (true) {
                        if (var$1 >= $var11.$nativeString.length)
                            break f;
                        $var11.$hashCode1 = (31 * $var11.$hashCode1 | 0) + $var11.$nativeString.charCodeAt(var$1) | 0;
                        var$1 = var$1 + 1 | 0;
                    }
                }
            }
            var$18 = $var11.$hashCode1;
            var$19 = var$2.$elementData.data;
            var$2 = var$19[var$18 & (var$19.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$18) {
                    g: {
                        var$20 = var$2.$key;
                        if ($var11 !== var$20) {
                            if ($var11 === var$20)
                                var$1 = 1;
                            else if (!(var$20 instanceof jl_String))
                                var$1 = 0;
                            else {
                                var$20 = var$20;
                                var$1 = $var11.$nativeString !== var$20.$nativeString ? 0 : 1;
                            }
                            if (!var$1) {
                                var$1 = 0;
                                break g;
                            }
                        }
                        var$1 = 1;
                    }
                    if (var$1)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$2 = var$2 === null ? null : var$2.$value0;
        if (var$2 !== null) {
            $ptr = 3;
            continue main;
        }
        if (jl_System_errCache === null) {
            var$2 = new otcic_JSStderrPrintStream;
            var$20 = new ji_ByteArrayOutputStream;
            var$20.$buf = $rt_createByteArray(32);
            jl_Object__init_(var$2);
            var$2.$out0 = var$20;
            var$20 = new jl_StringBuilder;
            jl_AbstractStringBuilder__init_0(var$20, 16);
            var$2.$sb = var$20;
            var$2.$buffer0 = $rt_createCharArray(32);
            var$2.$autoFlush = 0;
            var$2.$charset = jnci_UTF8Charset_INSTANCE;
            jl_System_errCache = var$2;
        }
        var$2 = new jl_StringBuilder;
        var$2.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$13);
        var$1 = var$2.$length0;
        if ($var11 === null)
            $var11 = $rt_s(1);
        jl_AbstractStringBuilder_insert(var$2, var$1, $var11);
        jl_AbstractStringBuilder_insert(var$2, var$2.$length0, var$14);
        var$20 = new jl_String;
        var$19 = var$2.$buffer;
        var$21 = var$19.data;
        $var4 = var$2.$length0;
        var$18 = var$21.length;
        if ($var4 >= 0 && $var4 <= (var$18 - 0 | 0)) {
            var$20.$nativeString = $rt_charArrayToString(var$19.data, 0, $var4);
            $rt_putStderr($rt_ustr(var$20));
            $rt_putStderr($rt_ustr(var$15));
            $var13 = null;
            if ($var13 === null)
                return;
            var$23 = $this.$getSpawnerWorld();
            var$20 = $var13.constructor;
            if (var$20 === null)
                var$2 = null;
            else {
                var$2 = var$20.classObject;
                if (var$2 === null) {
                    var$2 = new jl_Class;
                    var$2.$platformClass = var$20;
                    var$20.classObject = var$2;
                }
            }
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var5 = $this.$getSpawnerX();
            $var7 = $this.$getSpawnerY();
            $var9 = $this.$getSpawnerZ();
            var$27 = $this.$getSpawnerX() + 1 | 0;
            var$28 = $this.$getSpawnerY() + 1 | 0;
            var$4 = $this.$getSpawnerZ() + 1 | 0;
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var5;
                var$29.$minY0 = $var7;
                var$29.$minZ0 = $var9;
                var$29.$maxX0 = var$27;
                var$29.$maxY = var$28;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            var$4 = $this.$spawnRange * 2 | 0;
            $var7 = var$29.$minX0 - var$4;
            $var9 = var$29.$minY0 - 4.0;
            var$27 = var$29.$minZ0 - var$4;
            var$28 = var$29.$maxX0 + var$4;
            $var5 = var$29.$maxY + 4.0;
            var$4 = var$29.$maxZ0 + var$4;
            $var11 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$1 = $var11.$nextPoolIndex;
            var$20 = $var11.$listAABB;
            var$18 = var$20.$size0;
            $var4 = $rt_compare(var$1, var$18);
            if ($var4 >= 0) {
                var$29 = new nms_AxisAlignedBB;
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity(var$20, var$18 + 1 | 0);
                var$19 = var$20.$array.data;
                $var4 = var$20.$size0;
                var$20.$size0 = $var4 + 1 | 0;
                var$19[$var4] = var$29;
                var$20.$modCount = var$20.$modCount + 1 | 0;
            } else if (var$1 >= 0 && $var4 < 0) {
                var$29 = var$20.$array.data[var$1];
                var$29.$minX0 = $var7;
                var$29.$minY0 = $var9;
                var$29.$minZ0 = var$27;
                var$29.$maxX0 = var$28;
                var$29.$maxY = $var5;
                var$29.$maxZ0 = var$4;
            } else {
                var$2 = new jl_IndexOutOfBoundsException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$2);
                $rt_throw(var$2);
            }
            $var11.$nextPoolIndex = $var11.$nextPoolIndex + 1 | 0;
            $ptr = 4;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_(var$2);
        $rt_throw(var$2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var12, var$4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $var11, $var13, var$18, var$19, var$20, var$21, $var4, var$23, $var5, $var7, $var9, var$27, var$28, var$29, var$30, var$31, var$32, var$33, var$34, var$35, var$36, var$37, $ptr);
},
nms_MobSpawnerBaseLogic_func_98265_a = ($this, $par1Entity) => {
    let $var7, $var10, var$4, var$5, var$6, $var3, $var8, $var4, var$10, $var9, var$12, var$13, var$14, var$15, $var6, $var5, var$18, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var5 = $thread.pop();$var6 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var9 = $thread.pop();var$10 = $thread.pop();$var4 = $thread.pop();$var8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$par1Entity
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$randomMinecart === null) {
            if ($par1Entity instanceof nms_EntityLivingBase && $par1Entity.$worldObj !== null) {
                $var7 = $par1Entity;
                $var10 = null;
                $ptr = 1;
                continue main;
            }
            return $par1Entity;
        }
        $var10 = new nms_NBTTagCompound;
        $var10.$name = $rt_s(3);
        $var7 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        $var7.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$6 = var$5.data;
        $var7.$elementData = var$5;
        $var7.$loadFactor = 0.75;
        $var7.$threshold = var$6.length * 0.75 | 0;
        $var10.$tagMap = $var7;
        nms_EntityList_$callClinit();
        $var7 = nms_EntityList_classToStringMapping;
        $var3 = $par1Entity.constructor;
        if ($var3 === null)
            $var8 = null;
        else {
            $var8 = $var3.classObject;
            if ($var8 === null) {
                $var8 = new jl_Class;
                $var8.$platformClass = $var3;
                $var3.classObject = $var8;
            }
        }
        if ($var8 === null) {
            $var7 = $var7.$elementData.data[0];
            while ($var7 !== null && $var7.$key !== null) {
                $var7 = $var7.$next3;
            }
        } else {
            $var3 = $var8;
            if (!$var3.$id$)
                $var3.$id$ = $rt_nextId();
            var$4 = $var8.$id$;
            var$6 = $var7.$elementData.data;
            $var7 = var$6[var$4 & (var$6.length - 1 | 0)];
            while ($var7 !== null) {
                if ($var7.$origKeyHash == var$4) {
                    $var3 = $var7.$key;
                    if ($var8 !== $var3 && !($var8 !== $var3 ? 0 : 1) ? 0 : 1)
                        break;
                }
                $var7 = $var7.$next3;
            }
        }
        $var4 = $var7 === null ? null : $var7.$value0;
        if (!$par1Entity.$isDead && $var4 !== null && $par1Entity.$riddenByEntity === null) {
            $var3 = $var10.$tagMap;
            $var8 = new nms_NBTTagString;
            $var8.$name = $rt_s(914);
            $var8.$data1 = $var4;
            ju_HashMap_putImpl($var3, $rt_s(914), $var8);
            nms_Entity_writeToNBT($par1Entity, $var10);
        }
        $var7 = $this.$randomMinecart.$field_98222_b.$tagMap;
        if ($var7.$cachedValues === null) {
            $var8 = new ju_HashMap$2;
            $var8.$this$01 = $var7;
            $var7.$cachedValues = $var8;
        }
        $var3 = $var7.$cachedValues.$iterator();
        while ($var3.$hasNext()) {
            $var4 = $var3.$next();
            var$10 = $var4.$name;
            if (var$10 === null)
                var$10 = $rt_s(3);
            $var7 = $var4.$copy();
            $var8 = $var10.$tagMap;
            $var7.$name = var$10;
            ju_HashMap_putImpl($var8, var$10, $var7);
        }
        $ptr = 3;
        continue main;
    case 1:
        $var7.$onSpawnWithEgg($var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $this.$getSpawnerWorld();
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($var10, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        return $par1Entity;
    case 3:
        nms_Entity_readFromNBT($par1Entity, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $par1Entity.$worldObj;
        if ($var7 === null) {
            $var3 = $rt_s(1270);
            $var4 = $rt_s(1271);
            var$10 = $rt_s(9);
            $var9 = $par1Entity;
            a: {
                while (true) {
                    b: {
                        $var7 = $var10.$tagMap;
                        if (!$rt_s(360).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(360).$nativeString.length)
                                    break b;
                                $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$12 = $rt_s(360).$hashCode1;
                    var$6 = $var7.$elementData.data;
                    var$13 = var$6[var$12 & (var$6.length - 1 | 0)];
                    while (var$13 !== null) {
                        if (var$13.$origKeyHash == var$12) {
                            c: {
                                $var7 = var$13.$key;
                                if ($rt_s(360) !== $var7) {
                                    if ($rt_s(360) !== $var7) {
                                        if ($var7 instanceof jl_String) {
                                            $var7 = $var7;
                                            var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                        } else
                                            var$4 = 0;
                                    } else
                                        var$4 = 1;
                                    if (!var$4) {
                                        var$4 = 0;
                                        break c;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        var$13 = var$13.$next3;
                    }
                    if (!(var$13 === null ? 0 : 1))
                        break;
                    d: {
                        $var7 = $var10.$tagMap;
                        if (!$rt_s(360).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(360).$nativeString.length)
                                    break d;
                                $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $rt_s(360).$hashCode1;
                    var$6 = $var7.$elementData.data;
                    $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                    while ($var7 !== null) {
                        if ($var7.$origKeyHash == var$14) {
                            e: {
                                $var8 = $var7.$key;
                                if ($rt_s(360) !== $var8) {
                                    if ($rt_s(360) !== $var8) {
                                        if ($var8 instanceof jl_String) {
                                            $var8 = $var8;
                                            var$4 = $rt_s(360).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        } else
                                            var$4 = 0;
                                    } else
                                        var$4 = 1;
                                    if (!var$4) {
                                        var$4 = 0;
                                        break e;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var7 = $var7.$next3;
                    }
                    if ($var7 === null ? 0 : 1) {
                        $var10 = $var10.$tagMap;
                        if ($rt_s(360) !== null) {
                            f: {
                                if (!$rt_s(360).$hashCode1) {
                                    var$4 = 0;
                                    while (true) {
                                        if (var$4 >= $rt_s(360).$nativeString.length)
                                            break f;
                                        $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                                        var$4 = var$4 + 1 | 0;
                                    }
                                }
                            }
                            var$14 = $rt_s(360).$hashCode1;
                            var$6 = $var10.$elementData.data;
                            $var10 = var$6[var$14 & (var$6.length - 1 | 0)];
                            while ($var10 !== null) {
                                if ($var10.$origKeyHash == var$14) {
                                    g: {
                                        $var7 = $var10.$key;
                                        if ($rt_s(360) !== $var7) {
                                            if ($rt_s(360) !== $var7) {
                                                if (!($var7 instanceof jl_String))
                                                    var$4 = 0;
                                                else {
                                                    $var7 = $var7;
                                                    var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                var$4 = 1;
                                            if (!var$4) {
                                                var$4 = 0;
                                                break g;
                                            }
                                        }
                                        var$4 = 1;
                                    }
                                    if (var$4)
                                        break;
                                }
                                $var10 = $var10.$next3;
                            }
                        } else {
                            $var10 = $var10.$elementData.data[0];
                            while ($var10 !== null && $var10.$key !== null) {
                                $var10 = $var10.$next3;
                            }
                        }
                        $var10 = $var10 === null ? null : $var10.$value0;
                    } else {
                        $var10 = new nms_NBTTagCompound;
                        if ($rt_s(360) !== null)
                            $var10.$name = $rt_s(360);
                        else
                            $var10.$name = $rt_s(3);
                        $var7 = new ju_HashMap;
                        var$4 = ju_HashMap_calculateCapacity(16);
                        $var7.$elementCount = 0;
                        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                        var$6 = var$5.data;
                        $var7.$elementData = var$5;
                        $var7.$loadFactor = 0.75;
                        $var7.$threshold = var$6.length * 0.75 | 0;
                        $var10.$tagMap = $var7;
                    }
                    h: {
                        $var7 = $var10.$tagMap;
                        if (!$rt_s(914).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(914).$nativeString.length)
                                    break h;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $rt_s(914).$hashCode1;
                    var$6 = $var7.$elementData.data;
                    $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                    while ($var7 !== null) {
                        if ($var7.$origKeyHash == var$14) {
                            i: {
                                $var8 = $var7.$key;
                                if ($rt_s(914) !== $var8) {
                                    if ($rt_s(914) !== $var8) {
                                        if (!($var8 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var8 = $var8;
                                            var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                    } else
                                        var$4 = 1;
                                    if (!var$4) {
                                        var$4 = 0;
                                        break i;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var7 = $var7.$next3;
                    }
                    if (!($var7 === null ? 0 : 1))
                        $var8 = $rt_s(3);
                    else {
                        $var7 = $var10.$tagMap;
                        if ($rt_s(914) === null) {
                            $var7 = $var7.$elementData.data[0];
                            while ($var7 !== null && $var7.$key !== null) {
                                $var7 = $var7.$next3;
                            }
                        } else {
                            j: {
                                if (!$rt_s(914).$hashCode1) {
                                    var$4 = 0;
                                    while (true) {
                                        if (var$4 >= $rt_s(914).$nativeString.length)
                                            break j;
                                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                                        var$4 = var$4 + 1 | 0;
                                    }
                                }
                            }
                            var$14 = $rt_s(914).$hashCode1;
                            var$6 = $var7.$elementData.data;
                            $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                            while ($var7 !== null) {
                                if ($var7.$origKeyHash == var$14) {
                                    k: {
                                        $var8 = $var7.$key;
                                        if ($rt_s(914) !== $var8) {
                                            if ($rt_s(914) === $var8)
                                                var$4 = 1;
                                            else if (!($var8 instanceof jl_String))
                                                var$4 = 0;
                                            else {
                                                $var8 = $var8;
                                                var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                            }
                                            if (!var$4) {
                                                var$4 = 0;
                                                break k;
                                            }
                                        }
                                        var$4 = 1;
                                    }
                                    if (var$4)
                                        break;
                                }
                                $var7 = $var7.$next3;
                            }
                        }
                        $var8 = ($var7 === null ? null : $var7.$value0).$data1;
                    }
                    var$15 = $par1Entity.$worldObj;
                    $var7 = nms_EntityList_stringToConstructorMapping;
                    if ($var8 === null) {
                        $var7 = $var7.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        l: {
                            if (!$var8.$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $var8.$nativeString.length)
                                        break l;
                                    $var8.$hashCode1 = (31 * $var8.$hashCode1 | 0) + $var8.$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $var8.$hashCode1;
                        var$6 = $var7.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                m: {
                                    $var6 = $var7.$key;
                                    if ($var8 !== $var6) {
                                        if ($var8 === $var6)
                                            var$4 = 1;
                                        else if (!($var6 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var6 = $var6;
                                            var$4 = $var8.$nativeString !== $var6.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break m;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    $var7 = $var7 === null ? null : $var7.$value0;
                    if ($var7 !== null) {
                        $ptr = 5;
                        continue main;
                    }
                    if (jl_System_errCache === null) {
                        $var7 = new otcic_JSStderrPrintStream;
                        $var6 = new ji_ByteArrayOutputStream;
                        $var6.$buf = $rt_createByteArray(32);
                        jl_Object__init_($var7);
                        $var7.$out0 = $var6;
                        $var6 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0($var6, 16);
                        $var7.$sb = $var6;
                        $var7.$buffer0 = $rt_createCharArray(32);
                        $var7.$autoFlush = 0;
                        $var7.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var7;
                    }
                    $var7 = new jl_StringBuilder;
                    $var7.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var3);
                    var$4 = $var7.$length0;
                    if ($var8 === null)
                        $var8 = $rt_s(1);
                    jl_AbstractStringBuilder_insert($var7, var$4, $var8);
                    jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var4);
                    $var8 = new jl_String;
                    var$6 = $var7.$buffer;
                    var$5 = var$6.data;
                    var$12 = $var7.$length0;
                    var$14 = var$5.length;
                    if (var$12 < 0)
                        break a;
                    if (var$12 > (var$14 - 0 | 0))
                        break a;
                    $var8.$nativeString = $rt_charArrayToString(var$6.data, 0, var$12);
                    $rt_putStderr($rt_ustr($var8));
                    $rt_putStderr($rt_ustr(var$10));
                    $var5 = null;
                    if ($var5 !== null) {
                        $var6 = new nms_NBTTagCompound;
                        $var6.$name = $rt_s(3);
                        $var7 = new ju_HashMap;
                        var$4 = ju_HashMap_calculateCapacity(16);
                        $var7.$elementCount = 0;
                        var$6 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                        var$5 = var$6.data;
                        $var7.$elementData = var$6;
                        $var7.$loadFactor = 0.75;
                        $var7.$threshold = var$5.length * 0.75 | 0;
                        $var6.$tagMap = $var7;
                        var$13 = nms_EntityList_classToStringMapping;
                        $var7 = $var5.constructor;
                        if ($var7 === null)
                            var$15 = null;
                        else {
                            var$15 = $var7.classObject;
                            if (var$15 === null) {
                                var$15 = new jl_Class;
                                var$15.$platformClass = $var7;
                                $var7.classObject = var$15;
                            }
                        }
                        if (var$15 === null) {
                            $var7 = var$13.$elementData.data[0];
                            while ($var7 !== null && $var7.$key !== null) {
                                $var7 = $var7.$next3;
                            }
                        } else {
                            $var7 = var$15;
                            if (!$var7.$id$)
                                $var7.$id$ = $rt_nextId();
                            var$14 = var$15.$id$;
                            var$6 = var$13.$elementData.data;
                            $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                            while ($var7 !== null) {
                                if ($var7.$origKeyHash == var$14) {
                                    $var8 = $var7.$key;
                                    if (var$15 !== $var8 && !(var$15 !== $var8 ? 0 : 1) ? 0 : 1)
                                        break;
                                }
                                $var7 = $var7.$next3;
                            }
                        }
                        var$15 = $var7 === null ? null : $var7.$value0;
                        if (!$var5.$isDead && var$15 !== null && $var5.$riddenByEntity === null) {
                            var$13 = $var6.$tagMap;
                            $var8 = new nms_NBTTagString;
                            $var8.$name = $rt_s(914);
                            $var8.$data1 = var$15;
                            ju_HashMap_putImpl(var$13, $rt_s(914), $var8);
                            nms_Entity_writeToNBT($var5, $var6);
                        }
                        $var7 = $var10.$tagMap;
                        if ($var7.$cachedValues === null) {
                            $var8 = new ju_HashMap$2;
                            $var8.$this$01 = $var7;
                            $var7.$cachedValues = $var8;
                        }
                        $var7 = $var7.$cachedValues.$iterator();
                        while ($var7.$hasNext()) {
                            $var8 = $var7.$next();
                            var$15 = $var8.$name;
                            if (var$15 === null)
                                var$15 = $rt_s(3);
                            $var8 = $var8.$copy();
                            var$13 = $var6.$tagMap;
                            $var8.$name = var$15;
                            ju_HashMap_putImpl(var$13, var$15, $var8);
                        }
                        $ptr = 6;
                        continue main;
                    }
                    $var9 = $var5;
                }
                return $par1Entity;
            }
            $par1Entity = new jl_IndexOutOfBoundsException;
            jl_Throwable__init_($par1Entity);
            $rt_throw($par1Entity);
        }
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($var7, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $rt_s(1270);
        $var4 = $rt_s(1271);
        var$10 = $rt_s(9);
        $var9 = $par1Entity;
        n: {
            while (true) {
                o: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(360).$nativeString.length)
                                break o;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$12 = $rt_s(360).$hashCode1;
                var$6 = $var7.$elementData.data;
                var$13 = var$6[var$12 & (var$6.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$12) {
                        p: {
                            $var7 = var$13.$key;
                            if ($rt_s(360) !== $var7) {
                                if ($rt_s(360) !== $var7) {
                                    if ($var7 instanceof jl_String) {
                                        $var7 = $var7;
                                        var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break p;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
                if (!(var$13 === null ? 0 : 1))
                    break;
                q: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(360).$nativeString.length)
                                break q;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(360).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$14) {
                        r: {
                            $var8 = $var7.$key;
                            if ($rt_s(360) !== $var8) {
                                if ($rt_s(360) !== $var8) {
                                    if ($var8 instanceof jl_String) {
                                        $var8 = $var8;
                                        var$4 = $rt_s(360).$nativeString !== $var8.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break r;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                if ($var7 === null ? 0 : 1) {
                    $var10 = $var10.$tagMap;
                    if ($rt_s(360) !== null) {
                        s: {
                            if (!$rt_s(360).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(360).$nativeString.length)
                                        break s;
                                    $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(360).$hashCode1;
                        var$6 = $var10.$elementData.data;
                        $var10 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var10 !== null) {
                            if ($var10.$origKeyHash == var$14) {
                                t: {
                                    $var7 = $var10.$key;
                                    if ($rt_s(360) !== $var7) {
                                        if ($rt_s(360) !== $var7) {
                                            if (!($var7 instanceof jl_String))
                                                var$4 = 0;
                                            else {
                                                $var7 = $var7;
                                                var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            var$4 = 1;
                                        if (!var$4) {
                                            var$4 = 0;
                                            break t;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var10 = $var10.$next3;
                        }
                    } else {
                        $var10 = $var10.$elementData.data[0];
                        while ($var10 !== null && $var10.$key !== null) {
                            $var10 = $var10.$next3;
                        }
                    }
                    $var10 = $var10 === null ? null : $var10.$value0;
                } else {
                    $var10 = new nms_NBTTagCompound;
                    if ($rt_s(360) !== null)
                        $var10.$name = $rt_s(360);
                    else
                        $var10.$name = $rt_s(3);
                    $var7 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var7.$elementCount = 0;
                    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$6 = var$5.data;
                    $var7.$elementData = var$5;
                    $var7.$loadFactor = 0.75;
                    $var7.$threshold = var$6.length * 0.75 | 0;
                    $var10.$tagMap = $var7;
                }
                u: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(914).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(914).$nativeString.length)
                                break u;
                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(914).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$14) {
                        v: {
                            $var8 = $var7.$key;
                            if ($rt_s(914) !== $var8) {
                                if ($rt_s(914) !== $var8) {
                                    if (!($var8 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        $var8 = $var8;
                                        var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break v;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                if (!($var7 === null ? 0 : 1))
                    $var8 = $rt_s(3);
                else {
                    $var7 = $var10.$tagMap;
                    if ($rt_s(914) === null) {
                        $var7 = $var7.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        w: {
                            if (!$rt_s(914).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(914).$nativeString.length)
                                        break w;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(914).$hashCode1;
                        var$6 = $var7.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                x: {
                                    $var8 = $var7.$key;
                                    if ($rt_s(914) !== $var8) {
                                        if ($rt_s(914) === $var8)
                                            var$4 = 1;
                                        else if (!($var8 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var8 = $var8;
                                            var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break x;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    $var8 = ($var7 === null ? null : $var7.$value0).$data1;
                }
                var$15 = $par1Entity.$worldObj;
                $var7 = nms_EntityList_stringToConstructorMapping;
                if ($var8 === null) {
                    $var7 = $var7.$elementData.data[0];
                    while ($var7 !== null && $var7.$key !== null) {
                        $var7 = $var7.$next3;
                    }
                } else {
                    y: {
                        if (!$var8.$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $var8.$nativeString.length)
                                    break y;
                                $var8.$hashCode1 = (31 * $var8.$hashCode1 | 0) + $var8.$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $var8.$hashCode1;
                    var$6 = $var7.$elementData.data;
                    $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                    while ($var7 !== null) {
                        if ($var7.$origKeyHash == var$14) {
                            z: {
                                $var6 = $var7.$key;
                                if ($var8 !== $var6) {
                                    if ($var8 === $var6)
                                        var$4 = 1;
                                    else if (!($var6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        $var6 = $var6;
                                        var$4 = $var8.$nativeString !== $var6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break z;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var7 = $var7.$next3;
                    }
                }
                $var7 = $var7 === null ? null : $var7.$value0;
                if ($var7 !== null) {
                    $ptr = 5;
                    continue main;
                }
                if (jl_System_errCache === null) {
                    $var7 = new otcic_JSStderrPrintStream;
                    $var6 = new ji_ByteArrayOutputStream;
                    $var6.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var7);
                    $var7.$out0 = $var6;
                    $var6 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var6, 16);
                    $var7.$sb = $var6;
                    $var7.$buffer0 = $rt_createCharArray(32);
                    $var7.$autoFlush = 0;
                    $var7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var7;
                }
                $var7 = new jl_StringBuilder;
                $var7.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var3);
                var$4 = $var7.$length0;
                if ($var8 === null)
                    $var8 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var7, var$4, $var8);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var4);
                $var8 = new jl_String;
                var$6 = $var7.$buffer;
                var$5 = var$6.data;
                var$12 = $var7.$length0;
                var$14 = var$5.length;
                if (var$12 < 0)
                    break n;
                if (var$12 > (var$14 - 0 | 0))
                    break n;
                $var8.$nativeString = $rt_charArrayToString(var$6.data, 0, var$12);
                $rt_putStderr($rt_ustr($var8));
                $rt_putStderr($rt_ustr(var$10));
                $var5 = null;
                if ($var5 !== null) {
                    $var6 = new nms_NBTTagCompound;
                    $var6.$name = $rt_s(3);
                    $var7 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var7.$elementCount = 0;
                    var$6 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$5 = var$6.data;
                    $var7.$elementData = var$6;
                    $var7.$loadFactor = 0.75;
                    $var7.$threshold = var$5.length * 0.75 | 0;
                    $var6.$tagMap = $var7;
                    var$13 = nms_EntityList_classToStringMapping;
                    $var7 = $var5.constructor;
                    if ($var7 === null)
                        var$15 = null;
                    else {
                        var$15 = $var7.classObject;
                        if (var$15 === null) {
                            var$15 = new jl_Class;
                            var$15.$platformClass = $var7;
                            $var7.classObject = var$15;
                        }
                    }
                    if (var$15 === null) {
                        $var7 = var$13.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        $var7 = var$15;
                        if (!$var7.$id$)
                            $var7.$id$ = $rt_nextId();
                        var$14 = var$15.$id$;
                        var$6 = var$13.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                $var8 = $var7.$key;
                                if (var$15 !== $var8 && !(var$15 !== $var8 ? 0 : 1) ? 0 : 1)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    var$15 = $var7 === null ? null : $var7.$value0;
                    if (!$var5.$isDead && var$15 !== null && $var5.$riddenByEntity === null) {
                        var$13 = $var6.$tagMap;
                        $var8 = new nms_NBTTagString;
                        $var8.$name = $rt_s(914);
                        $var8.$data1 = var$15;
                        ju_HashMap_putImpl(var$13, $rt_s(914), $var8);
                        nms_Entity_writeToNBT($var5, $var6);
                    }
                    $var7 = $var10.$tagMap;
                    if ($var7.$cachedValues === null) {
                        $var8 = new ju_HashMap$2;
                        $var8.$this$01 = $var7;
                        $var7.$cachedValues = $var8;
                    }
                    $var7 = $var7.$cachedValues.$iterator();
                    while ($var7.$hasNext()) {
                        $var8 = $var7.$next();
                        var$15 = $var8.$name;
                        if (var$15 === null)
                            var$15 = $rt_s(3);
                        $var8 = $var8.$copy();
                        var$13 = $var6.$tagMap;
                        $var8.$name = var$15;
                        ju_HashMap_putImpl(var$13, var$15, $var8);
                    }
                    $ptr = 6;
                    continue main;
                }
                $var9 = $var5;
            }
            return $par1Entity;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1Entity);
        $rt_throw($par1Entity);
    case 5:
        $tmp = $var7.$apply(var$15);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        n: {
            while (true) {
                if ($var5 !== null) {
                    $var6 = new nms_NBTTagCompound;
                    $var6.$name = $rt_s(3);
                    $var7 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var7.$elementCount = 0;
                    var$6 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$5 = var$6.data;
                    $var7.$elementData = var$6;
                    $var7.$loadFactor = 0.75;
                    $var7.$threshold = var$5.length * 0.75 | 0;
                    $var6.$tagMap = $var7;
                    var$13 = nms_EntityList_classToStringMapping;
                    $var7 = $var5.constructor;
                    if ($var7 === null)
                        var$15 = null;
                    else {
                        var$15 = $var7.classObject;
                        if (var$15 === null) {
                            var$15 = new jl_Class;
                            var$15.$platformClass = $var7;
                            $var7.classObject = var$15;
                        }
                    }
                    if (var$15 === null) {
                        $var7 = var$13.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        $var7 = var$15;
                        if (!$var7.$id$)
                            $var7.$id$ = $rt_nextId();
                        var$14 = var$15.$id$;
                        var$6 = var$13.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                $var8 = $var7.$key;
                                if (var$15 !== $var8 && !(var$15 !== $var8 ? 0 : 1) ? 0 : 1)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    var$15 = $var7 === null ? null : $var7.$value0;
                    if (!$var5.$isDead && var$15 !== null && $var5.$riddenByEntity === null) {
                        var$13 = $var6.$tagMap;
                        $var8 = new nms_NBTTagString;
                        $var8.$name = $rt_s(914);
                        $var8.$data1 = var$15;
                        ju_HashMap_putImpl(var$13, $rt_s(914), $var8);
                        nms_Entity_writeToNBT($var5, $var6);
                    }
                    $var7 = $var10.$tagMap;
                    if ($var7.$cachedValues === null) {
                        $var8 = new ju_HashMap$2;
                        $var8.$this$01 = $var7;
                        $var7.$cachedValues = $var8;
                    }
                    $var7 = $var7.$cachedValues.$iterator();
                    while ($var7.$hasNext()) {
                        $var8 = $var7.$next();
                        var$15 = $var8.$name;
                        if (var$15 === null)
                            var$15 = $rt_s(3);
                        $var8 = $var8.$copy();
                        var$13 = $var6.$tagMap;
                        $var8.$name = var$15;
                        ju_HashMap_putImpl(var$13, var$15, $var8);
                    }
                    $ptr = 6;
                    continue main;
                }
                $var9 = $var5;
                o: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(360).$nativeString.length)
                                break o;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$12 = $rt_s(360).$hashCode1;
                var$6 = $var7.$elementData.data;
                var$13 = var$6[var$12 & (var$6.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$12) {
                        p: {
                            $var7 = var$13.$key;
                            if ($rt_s(360) !== $var7) {
                                if ($rt_s(360) !== $var7) {
                                    if ($var7 instanceof jl_String) {
                                        $var7 = $var7;
                                        var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break p;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
                if (!(var$13 === null ? 0 : 1))
                    break;
                d: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(360).$nativeString.length)
                                break d;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(360).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$14) {
                        e: {
                            $var8 = $var7.$key;
                            if ($rt_s(360) !== $var8) {
                                if ($rt_s(360) === $var8)
                                    var$4 = 1;
                                else if (!($var8 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var8 = $var8;
                                    var$4 = $rt_s(360).$nativeString !== $var8.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break e;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                if (!($var7 === null ? 0 : 1)) {
                    $var10 = new nms_NBTTagCompound;
                    if ($rt_s(360) !== null)
                        $var10.$name = $rt_s(360);
                    else
                        $var10.$name = $rt_s(3);
                    $var7 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var7.$elementCount = 0;
                    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$6 = var$5.data;
                    $var7.$elementData = var$5;
                    $var7.$loadFactor = 0.75;
                    $var7.$threshold = var$6.length * 0.75 | 0;
                    $var10.$tagMap = $var7;
                } else {
                    $var10 = $var10.$tagMap;
                    if ($rt_s(360) === null) {
                        $var10 = $var10.$elementData.data[0];
                        while ($var10 !== null && $var10.$key !== null) {
                            $var10 = $var10.$next3;
                        }
                    } else {
                        t: {
                            if (!$rt_s(360).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(360).$nativeString.length)
                                        break t;
                                    $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(360).$hashCode1;
                        var$6 = $var10.$elementData.data;
                        $var10 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var10 !== null) {
                            if ($var10.$origKeyHash == var$14) {
                                ba: {
                                    $var7 = $var10.$key;
                                    if ($rt_s(360) !== $var7) {
                                        if ($rt_s(360) === $var7)
                                            var$4 = 1;
                                        else if (!($var7 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var7 = $var7;
                                            var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break ba;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var10 = $var10.$next3;
                        }
                    }
                    $var10 = $var10 === null ? null : $var10.$value0;
                }
                bb: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(914).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(914).$nativeString.length)
                                break bb;
                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(914).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$14) {
                        bc: {
                            $var8 = $var7.$key;
                            if ($rt_s(914) !== $var8) {
                                if ($rt_s(914) === $var8)
                                    var$4 = 1;
                                else if (!($var8 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var8 = $var8;
                                    var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break bc;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                if (!($var7 === null ? 0 : 1))
                    $var8 = $rt_s(3);
                else {
                    $var7 = $var10.$tagMap;
                    if ($rt_s(914) === null) {
                        $var7 = $var7.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        bd: {
                            if (!$rt_s(914).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(914).$nativeString.length)
                                        break bd;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(914).$hashCode1;
                        var$6 = $var7.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                be: {
                                    $var8 = $var7.$key;
                                    if ($rt_s(914) !== $var8) {
                                        if ($rt_s(914) === $var8)
                                            var$4 = 1;
                                        else if (!($var8 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var8 = $var8;
                                            var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break be;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    $var8 = ($var7 === null ? null : $var7.$value0).$data1;
                }
                var$15 = $par1Entity.$worldObj;
                $var7 = nms_EntityList_stringToConstructorMapping;
                if ($var8 === null) {
                    $var7 = $var7.$elementData.data[0];
                    while ($var7 !== null && $var7.$key !== null) {
                        $var7 = $var7.$next3;
                    }
                } else {
                    bf: {
                        if (!$var8.$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $var8.$nativeString.length)
                                    break bf;
                                $var8.$hashCode1 = (31 * $var8.$hashCode1 | 0) + $var8.$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $var8.$hashCode1;
                    var$6 = $var7.$elementData.data;
                    $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                    while ($var7 !== null) {
                        if ($var7.$origKeyHash == var$14) {
                            bg: {
                                $var6 = $var7.$key;
                                if ($var8 !== $var6) {
                                    if ($var8 === $var6)
                                        var$4 = 1;
                                    else if (!($var6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        $var6 = $var6;
                                        var$4 = $var8.$nativeString !== $var6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break bg;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var7 = $var7.$next3;
                    }
                }
                $var7 = $var7 === null ? null : $var7.$value0;
                if ($var7 !== null) {
                    continue main;
                }
                if (jl_System_errCache === null) {
                    $var7 = new otcic_JSStderrPrintStream;
                    $var6 = new ji_ByteArrayOutputStream;
                    $var6.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var7);
                    $var7.$out0 = $var6;
                    $var6 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var6, 16);
                    $var7.$sb = $var6;
                    $var7.$buffer0 = $rt_createCharArray(32);
                    $var7.$autoFlush = 0;
                    $var7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var7;
                }
                $var7 = new jl_StringBuilder;
                $var7.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var3);
                var$4 = $var7.$length0;
                if ($var8 === null)
                    $var8 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var7, var$4, $var8);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var4);
                $var8 = new jl_String;
                var$6 = $var7.$buffer;
                var$5 = var$6.data;
                var$12 = $var7.$length0;
                var$14 = var$5.length;
                if (var$12 < 0)
                    break n;
                if (var$12 > (var$14 - 0 | 0))
                    break n;
                $var8.$nativeString = $rt_charArrayToString(var$6.data, 0, var$12);
                $rt_putStderr($rt_ustr($var8));
                $rt_putStderr($rt_ustr(var$10));
                $var5 = null;
            }
            return $par1Entity;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1Entity);
        $rt_throw($par1Entity);
    case 6:
        nms_Entity_readFromNBT($var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $var9.$posX;
        var$19 = $var9.$posY;
        var$20 = $var9.$posZ;
        var$21 = $var9.$rotationYaw;
        var$22 = $var9.$rotationPitch;
        $var5.$posX = var$18;
        $var5.$prevPosX = var$18;
        $var5.$lastTickPosX = var$18;
        var$19 = var$19 + $var5.$yOffset;
        $var5.$posY = var$19;
        $var5.$prevPosY = var$19;
        $var5.$lastTickPosY = var$19;
        $var5.$posZ = var$20;
        $var5.$prevPosZ = var$20;
        $var5.$lastTickPosZ = var$20;
        $var5.$rotationYaw = var$21;
        $var5.$rotationPitch = var$22;
        nms_Entity_setPosition($var5, var$18, var$19, var$20);
        $var7 = $par1Entity.$worldObj;
        if ($var7 === null) {
            $ptr = 7;
            continue main;
        }
        $ptr = 8;
        continue main;
    case 7:
        $var9.$mountEntity($var5);
        if ($rt_suspending()) {
            break main;
        }
        n: {
            while (true) {
                $var9 = $var5;
                o: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(360).$nativeString.length)
                                break o;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$12 = $rt_s(360).$hashCode1;
                var$6 = $var7.$elementData.data;
                var$13 = var$6[var$12 & (var$6.length - 1 | 0)];
                while (var$13 !== null) {
                    if (var$13.$origKeyHash == var$12) {
                        p: {
                            $var7 = var$13.$key;
                            if ($rt_s(360) !== $var7) {
                                if ($rt_s(360) === $var7)
                                    var$4 = 1;
                                else if ($var7 instanceof jl_String) {
                                    $var7 = $var7;
                                    var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                                if (!var$4) {
                                    var$4 = 0;
                                    break p;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$13 = var$13.$next3;
                }
                if (!(var$13 === null ? 0 : 1))
                    break;
                q: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(360).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(360).$nativeString.length)
                                break q;
                            $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(360).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$14) {
                        r: {
                            $var8 = $var7.$key;
                            if ($rt_s(360) !== $var8) {
                                if ($rt_s(360) !== $var8) {
                                    if ($var8 instanceof jl_String) {
                                        $var8 = $var8;
                                        var$4 = $rt_s(360).$nativeString !== $var8.$nativeString ? 0 : 1;
                                    } else
                                        var$4 = 0;
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break r;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                if ($var7 === null ? 0 : 1) {
                    $var10 = $var10.$tagMap;
                    if ($rt_s(360) !== null) {
                        bh: {
                            if (!$rt_s(360).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(360).$nativeString.length)
                                        break bh;
                                    $rt_s(360).$hashCode1 = (31 * $rt_s(360).$hashCode1 | 0) + $rt_s(360).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(360).$hashCode1;
                        var$6 = $var10.$elementData.data;
                        $var10 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var10 !== null) {
                            if ($var10.$origKeyHash == var$14) {
                                bi: {
                                    $var7 = $var10.$key;
                                    if ($rt_s(360) !== $var7) {
                                        if ($rt_s(360) !== $var7) {
                                            if (!($var7 instanceof jl_String))
                                                var$4 = 0;
                                            else {
                                                $var7 = $var7;
                                                var$4 = $rt_s(360).$nativeString !== $var7.$nativeString ? 0 : 1;
                                            }
                                        } else
                                            var$4 = 1;
                                        if (!var$4) {
                                            var$4 = 0;
                                            break bi;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var10 = $var10.$next3;
                        }
                    } else {
                        $var10 = $var10.$elementData.data[0];
                        while ($var10 !== null && $var10.$key !== null) {
                            $var10 = $var10.$next3;
                        }
                    }
                    $var10 = $var10 === null ? null : $var10.$value0;
                } else {
                    $var10 = new nms_NBTTagCompound;
                    if ($rt_s(360) !== null)
                        $var10.$name = $rt_s(360);
                    else
                        $var10.$name = $rt_s(3);
                    $var7 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var7.$elementCount = 0;
                    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$6 = var$5.data;
                    $var7.$elementData = var$5;
                    $var7.$loadFactor = 0.75;
                    $var7.$threshold = var$6.length * 0.75 | 0;
                    $var10.$tagMap = $var7;
                }
                bj: {
                    $var7 = $var10.$tagMap;
                    if (!$rt_s(914).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(914).$nativeString.length)
                                break bj;
                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$14 = $rt_s(914).$hashCode1;
                var$6 = $var7.$elementData.data;
                $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                while ($var7 !== null) {
                    if ($var7.$origKeyHash == var$14) {
                        bk: {
                            $var8 = $var7.$key;
                            if ($rt_s(914) !== $var8) {
                                if ($rt_s(914) !== $var8) {
                                    if (!($var8 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        $var8 = $var8;
                                        var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                    }
                                } else
                                    var$4 = 1;
                                if (!var$4) {
                                    var$4 = 0;
                                    break bk;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var7 = $var7.$next3;
                }
                if (!($var7 === null ? 0 : 1))
                    $var8 = $rt_s(3);
                else {
                    $var7 = $var10.$tagMap;
                    if ($rt_s(914) === null) {
                        $var7 = $var7.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        bl: {
                            if (!$rt_s(914).$hashCode1) {
                                var$4 = 0;
                                while (true) {
                                    if (var$4 >= $rt_s(914).$nativeString.length)
                                        break bl;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$4) | 0;
                                    var$4 = var$4 + 1 | 0;
                                }
                            }
                        }
                        var$14 = $rt_s(914).$hashCode1;
                        var$6 = $var7.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                bd: {
                                    $var8 = $var7.$key;
                                    if ($rt_s(914) !== $var8) {
                                        if ($rt_s(914) === $var8)
                                            var$4 = 1;
                                        else if (!($var8 instanceof jl_String))
                                            var$4 = 0;
                                        else {
                                            $var8 = $var8;
                                            var$4 = $rt_s(914).$nativeString !== $var8.$nativeString ? 0 : 1;
                                        }
                                        if (!var$4) {
                                            var$4 = 0;
                                            break bd;
                                        }
                                    }
                                    var$4 = 1;
                                }
                                if (var$4)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    $var8 = ($var7 === null ? null : $var7.$value0).$data1;
                }
                var$15 = $par1Entity.$worldObj;
                $var7 = nms_EntityList_stringToConstructorMapping;
                if ($var8 === null) {
                    $var7 = $var7.$elementData.data[0];
                    while ($var7 !== null && $var7.$key !== null) {
                        $var7 = $var7.$next3;
                    }
                } else {
                    bm: {
                        if (!$var8.$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $var8.$nativeString.length)
                                    break bm;
                                $var8.$hashCode1 = (31 * $var8.$hashCode1 | 0) + $var8.$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$14 = $var8.$hashCode1;
                    var$6 = $var7.$elementData.data;
                    $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                    while ($var7 !== null) {
                        if ($var7.$origKeyHash == var$14) {
                            bf: {
                                $var6 = $var7.$key;
                                if ($var8 !== $var6) {
                                    if ($var8 === $var6)
                                        var$4 = 1;
                                    else if (!($var6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        $var6 = $var6;
                                        var$4 = $var8.$nativeString !== $var6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break bf;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $var7 = $var7.$next3;
                    }
                }
                $var7 = $var7 === null ? null : $var7.$value0;
                if ($var7 !== null) {
                    $ptr = 5;
                    continue main;
                }
                if (jl_System_errCache === null) {
                    $var7 = new otcic_JSStderrPrintStream;
                    $var6 = new ji_ByteArrayOutputStream;
                    $var6.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var7);
                    $var7.$out0 = $var6;
                    $var6 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var6, 16);
                    $var7.$sb = $var6;
                    $var7.$buffer0 = $rt_createCharArray(32);
                    $var7.$autoFlush = 0;
                    $var7.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var7;
                }
                $var7 = new jl_StringBuilder;
                $var7.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var3);
                var$4 = $var7.$length0;
                if ($var8 === null)
                    $var8 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var7, var$4, $var8);
                jl_AbstractStringBuilder_insert($var7, $var7.$length0, $var4);
                $var8 = new jl_String;
                var$6 = $var7.$buffer;
                var$5 = var$6.data;
                var$12 = $var7.$length0;
                var$14 = var$5.length;
                if (var$12 < 0)
                    break n;
                if (var$12 > (var$14 - 0 | 0))
                    break n;
                $var8.$nativeString = $rt_charArrayToString(var$6.data, 0, var$12);
                $rt_putStderr($rt_ustr($var8));
                $rt_putStderr($rt_ustr(var$10));
                $var5 = null;
                if ($var5 === null)
                    continue;
                else {
                    $var6 = new nms_NBTTagCompound;
                    $var6.$name = $rt_s(3);
                    $var7 = new ju_HashMap;
                    var$4 = ju_HashMap_calculateCapacity(16);
                    $var7.$elementCount = 0;
                    var$6 = $rt_createArray(ju_HashMap$HashEntry, var$4);
                    var$5 = var$6.data;
                    $var7.$elementData = var$6;
                    $var7.$loadFactor = 0.75;
                    $var7.$threshold = var$5.length * 0.75 | 0;
                    $var6.$tagMap = $var7;
                    var$13 = nms_EntityList_classToStringMapping;
                    $var7 = $var5.constructor;
                    if ($var7 === null)
                        var$15 = null;
                    else {
                        var$15 = $var7.classObject;
                        if (var$15 === null) {
                            var$15 = new jl_Class;
                            var$15.$platformClass = $var7;
                            $var7.classObject = var$15;
                        }
                    }
                    if (var$15 === null) {
                        $var7 = var$13.$elementData.data[0];
                        while ($var7 !== null && $var7.$key !== null) {
                            $var7 = $var7.$next3;
                        }
                    } else {
                        $var7 = var$15;
                        if (!$var7.$id$)
                            $var7.$id$ = $rt_nextId();
                        var$14 = var$15.$id$;
                        var$6 = var$13.$elementData.data;
                        $var7 = var$6[var$14 & (var$6.length - 1 | 0)];
                        while ($var7 !== null) {
                            if ($var7.$origKeyHash == var$14) {
                                $var8 = $var7.$key;
                                if (var$15 !== $var8 && !(var$15 !== $var8 ? 0 : 1) ? 0 : 1)
                                    break;
                            }
                            $var7 = $var7.$next3;
                        }
                    }
                    var$15 = $var7 === null ? null : $var7.$value0;
                    if (!$var5.$isDead && var$15 !== null && $var5.$riddenByEntity === null) {
                        var$13 = $var6.$tagMap;
                        $var8 = new nms_NBTTagString;
                        $var8.$name = $rt_s(914);
                        $var8.$data1 = var$15;
                        ju_HashMap_putImpl(var$13, $rt_s(914), $var8);
                        nms_Entity_writeToNBT($var5, $var6);
                    }
                    $var7 = $var10.$tagMap;
                    if ($var7.$cachedValues === null) {
                        $var8 = new ju_HashMap$2;
                        $var8.$this$01 = $var7;
                        $var7.$cachedValues = $var8;
                    }
                    $var7 = $var7.$cachedValues.$iterator();
                    while ($var7.$hasNext()) {
                        $var8 = $var7.$next();
                        var$15 = $var8.$name;
                        if (var$15 === null)
                            var$15 = $rt_s(3);
                        $var8 = $var8.$copy();
                        var$13 = $var6.$tagMap;
                        $var8.$name = var$15;
                        ju_HashMap_putImpl(var$13, var$15, $var8);
                    }
                    $ptr = 6;
                    continue main;
                }
            }
            return $par1Entity;
        }
        $par1Entity = new jl_IndexOutOfBoundsException;
        jl_Throwable__init_($par1Entity);
        $rt_throw($par1Entity);
    case 8:
        nms_World_spawnEntityInWorld($var7, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $var7, $var10, var$4, var$5, var$6, $var3, $var8, $var4, var$10, $var9, var$12, var$13, var$14, var$15, $var6, $var5, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_MobSpawnerBaseLogic_func_98273_j = $this => {
    let $var10003, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var10003 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var10003 = $this.$maxSpawnDelay;
        var$2 = $this.$minSpawnDelay;
        if ($var10003 <= var$2)
            $this.$spawnDelay = var$2;
        else {
            $var10003 = $var10003 - var$2 | 0;
            var$3 = ($this.$getSpawnerWorld()).$rand0;
            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$4;
            var$5 = Long_lo(Long_shru(var$4, 17));
            var$6 = $var10003 - 1 | 0;
            if (!($var10003 & var$6))
                var$7 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10003), Long_fromInt(var$5)), 31));
            else
                while (true) {
                    var$7 = var$5 % $var10003 | 0;
                    if (((var$5 - var$7 | 0) + var$6 | 0) >= 0)
                        break;
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    var$5 = Long_lo(Long_shru(var$4, 17));
                }
            $this.$spawnDelay = var$2 + var$7 | 0;
        }
        var$3 = $this.$minecartToSpawn;
        if (var$3 !== null && var$3.$size0 > 0) {
            var$3 = ($this.$getSpawnerWorld()).$rand0;
            var$8 = $this.$minecartToSpawn;
            var$6 = 0;
            var$7 = 0;
            var$5 = var$8.$modCount;
            var$9 = var$8.$size();
            while (true) {
                if (!(var$7 >= var$9 ? 0 : 1)) {
                    if (var$6 <= 0) {
                        var$3 = new jl_IllegalArgumentException;
                        var$3.$suppressionEnabled = 1;
                        var$3.$writableStackTrace = 1;
                        $rt_throw(var$3);
                    }
                    var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    var$3.$seed = var$4;
                    $var10003 = Long_lo(Long_shru(var$4, 17));
                    var$5 = var$6 - 1 | 0;
                    if (!(var$6 & var$5))
                        var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$6), Long_fromInt($var10003)), 31));
                    else
                        while (true) {
                            var$9 = $var10003 % var$6 | 0;
                            if ((($var10003 - var$9 | 0) + var$5 | 0) >= 0)
                                break;
                            var$4 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            var$3.$seed = var$4;
                            $var10003 = Long_lo(Long_shru(var$4, 17));
                        }
                    var$5 = 0;
                    $var10003 = var$8.$modCount;
                    var$2 = var$8.$size();
                    a: {
                        while (true) {
                            if (!(var$5 >= var$2 ? 0 : 1)) {
                                var$3 = null;
                                break a;
                            }
                            if ($var10003 < var$8.$modCount) {
                                var$3 = new ju_ConcurrentModificationException;
                                var$3.$suppressionEnabled = 1;
                                var$3.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace(var$3);
                                $rt_throw(var$3);
                            }
                            var$6 = var$5 + 1 | 0;
                            var$3 = var$8.$get(var$5);
                            var$9 = var$9 - var$3.$itemWeight | 0;
                            if (var$9 < 0)
                                break;
                            var$5 = var$6;
                        }
                    }
                    var$3 = var$3;
                    $ptr = 2;
                    continue main;
                }
                if (var$5 < var$8.$modCount)
                    break;
                var$2 = var$7 + 1 | 0;
                var$6 = var$6 + (var$8.$get(var$7)).$itemWeight | 0;
                var$7 = var$2;
            }
            var$3 = new ju_ConcurrentModificationException;
            var$3.$suppressionEnabled = 1;
            var$3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$3);
            $rt_throw(var$3);
        }
        $var10003 = 1;
        $ptr = 1;
    case 1:
        $this.$func_98267_a($var10003);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $this.$setRandomMinecart(var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var10003 = 1;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var10003, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_MobSpawnerBaseLogic_readFromNBT = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$par1NBTTagCompound = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2645).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2645).$nativeString.length)
                        break a;
                    $rt_s(2645).$hashCode1 = (31 * $rt_s(2645).$hashCode1 | 0) + $rt_s(2645).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        $var3 = $rt_s(2645).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == $var3) {
                b: {
                    var$5 = $var2.$key;
                    if ($rt_s(2645) !== var$5) {
                        if ($rt_s(2645) !== var$5) {
                            if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                var$6 = $rt_s(2645).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                var$6 = 0;
                        } else
                            var$6 = 1;
                        if (!var$6) {
                            var$6 = 0;
                            break b;
                        }
                    }
                    var$6 = 1;
                }
                if (var$6)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2645) !== null) {
                c: {
                    if (!$rt_s(2645).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(2645).$nativeString.length)
                                break c;
                            $rt_s(2645).$hashCode1 = (31 * $rt_s(2645).$hashCode1 | 0) + $rt_s(2645).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                $var3 = $rt_s(2645).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == $var3) {
                        d: {
                            var$5 = $var2.$key;
                            if ($rt_s(2645) !== var$5) {
                                if ($rt_s(2645) !== var$5) {
                                    if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        var$6 = $rt_s(2645).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        var$6 = 0;
                                } else
                                    var$6 = 1;
                                if (!var$6) {
                                    var$6 = 0;
                                    break d;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            } else {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            }
            var$8 = ($var2 === null ? null : $var2.$value0).$data1;
        } else
            var$8 = $rt_s(3);
        e: {
            $this.$mobID = var$8;
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2646).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2646).$nativeString.length)
                        break e;
                    $rt_s(2646).$hashCode1 = (31 * $rt_s(2646).$hashCode1 | 0) + $rt_s(2646).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2646).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                f: {
                    var$5 = $var2.$key;
                    if ($rt_s(2646) !== var$5) {
                        if ($rt_s(2646) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2646).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break f;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            $var2 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2646) === null) {
                $var2 = $var2.$elementData.data[0];
                while ($var2 !== null && $var2.$key !== null) {
                    $var2 = $var2.$next3;
                }
            } else {
                g: {
                    if (!$rt_s(2646).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2646).$nativeString.length)
                                break g;
                            $rt_s(2646).$hashCode1 = (31 * $rt_s(2646).$hashCode1 | 0) + $rt_s(2646).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2646).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$7) {
                        h: {
                            var$5 = $var2.$key;
                            if ($rt_s(2646) !== var$5) {
                                if ($rt_s(2646) === var$5)
                                    $var3 = 1;
                                else if (!(var$5 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2646).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break h;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
            }
            $var3 = ($var2 === null ? null : $var2.$value0).$data2;
        } else
            $var3 = 0;
        i: {
            $this.$spawnDelay = $var3;
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2410).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2410).$nativeString.length)
                        break i;
                    $rt_s(2410).$hashCode1 = (31 * $rt_s(2410).$hashCode1 | 0) + $rt_s(2410).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2410).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                j: {
                    var$5 = $var2.$key;
                    if ($rt_s(2410) !== var$5) {
                        if ($rt_s(2410) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2410).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break j;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        $var3 = $var2 === null ? 0 : 1;
        k: {
            if ($var3) {
                l: {
                    var$8 = new ju_ArrayList;
                    var$8.$array = $rt_createArray(jl_Object, 10);
                    $this.$minecartToSpawn = var$8;
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if (!$rt_s(2410).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2410).$nativeString.length)
                                break l;
                            $rt_s(2410).$hashCode1 = (31 * $rt_s(2410).$hashCode1 | 0) + $rt_s(2410).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2410).$hashCode1;
                var$4 = $var2.$elementData.data;
                $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$7) {
                        m: {
                            var$5 = $var2.$key;
                            if ($rt_s(2410) !== var$5) {
                                if ($rt_s(2410) !== var$5) {
                                    if (var$5 instanceof jl_String) {
                                        var$5 = var$5;
                                        $var3 = $rt_s(2410).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    } else
                                        $var3 = 0;
                                } else
                                    $var3 = 1;
                                if (!$var3) {
                                    $var3 = 0;
                                    break m;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1)) {
                    $var2 = new nms_NBTTagList;
                    if ($rt_s(2410) !== null)
                        $var2.$name = $rt_s(2410);
                    else
                        $var2.$name = $rt_s(3);
                    var$8 = new ju_ArrayList;
                    var$8.$array = $rt_createArray(jl_Object, 10);
                    $var2.$tagList = var$8;
                } else {
                    $var2 = $par1NBTTagCompound.$tagMap;
                    if ($rt_s(2410) === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        n: {
                            if (!$rt_s(2410).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(2410).$nativeString.length)
                                        break n;
                                    $rt_s(2410).$hashCode1 = (31 * $rt_s(2410).$hashCode1 | 0) + $rt_s(2410).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$7 = $rt_s(2410).$hashCode1;
                        var$4 = $var2.$elementData.data;
                        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$7) {
                                o: {
                                    var$5 = $var2.$key;
                                    if ($rt_s(2410) !== var$5) {
                                        if ($rt_s(2410) === var$5)
                                            $var3 = 1;
                                        else if (!(var$5 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2410).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        }
                                        if (!$var3) {
                                            $var3 = 0;
                                            break o;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = $var2 === null ? null : $var2.$value0;
                }
                $var3 = 0;
                p: {
                    while (true) {
                        var$9 = $var2.$tagList;
                        var$6 = $rt_compare($var3, var$9.$size0);
                        if (var$6 >= 0)
                            break;
                        var$8 = $this.$minecartToSpawn;
                        var$5 = new nms_WeightedRandomMinecart;
                        if ($var3 < 0)
                            break p;
                        if (var$6 >= 0)
                            break p;
                        nms_WeightedRandomMinecart__init_(var$5, $this, var$9.$array.data[$var3]);
                        ju_ArrayList_ensureCapacity(var$8, var$8.$size0 + 1 | 0);
                        var$4 = var$8.$array.data;
                        var$7 = var$8.$size0;
                        var$8.$size0 = var$7 + 1 | 0;
                        var$4[var$7] = var$5;
                        var$8.$modCount = var$8.$modCount + 1 | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                    break k;
                }
                $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par1NBTTagCompound.$suppressionEnabled = 1;
                $par1NBTTagCompound.$writableStackTrace = 1;
                $rt_throw($par1NBTTagCompound);
            }
            $this.$minecartToSpawn = null;
        }
        q: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2647).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2647).$nativeString.length)
                        break q;
                    $rt_s(2647).$hashCode1 = (31 * $rt_s(2647).$hashCode1 | 0) + $rt_s(2647).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2647).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                r: {
                    var$5 = $var2.$key;
                    if ($rt_s(2647) !== var$5) {
                        if ($rt_s(2647) !== var$5) {
                            if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                $var3 = $rt_s(2647).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                $var3 = 0;
                        } else
                            $var3 = 1;
                        if (!$var3) {
                            $var3 = 0;
                            break r;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if (!($var2 === null ? 0 : 1)) {
            var$8 = null;
            $ptr = 1;
            continue main;
        }
        s: {
            var$8 = new nms_WeightedRandomMinecart;
            var$5 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2647).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2647).$nativeString.length)
                        break s;
                    $rt_s(2647).$hashCode1 = (31 * $rt_s(2647).$hashCode1 | 0) + $rt_s(2647).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2647).$hashCode1;
        var$4 = var$5.$elementData.data;
        var$5 = var$4[var$7 & (var$4.length - 1 | 0)];
        while (var$5 !== null) {
            if (var$5.$origKeyHash == var$7) {
                t: {
                    var$9 = var$5.$key;
                    if ($rt_s(2647) !== var$9) {
                        if ($rt_s(2647) === var$9)
                            $var3 = 1;
                        else if (!(var$9 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$9 = var$9;
                            $var3 = $rt_s(2647).$nativeString !== var$9.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break t;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            var$5 = var$5.$next3;
        }
        if (!(var$5 === null ? 0 : 1)) {
            var$10 = new nms_NBTTagCompound;
            if ($rt_s(2647) !== null)
                var$10.$name = $rt_s(2647);
            else
                var$10.$name = $rt_s(3);
            $var2 = new ju_HashMap;
            $var3 = ju_HashMap_calculateCapacity(16);
            $var2.$elementCount = 0;
            var$11 = $rt_createArray(ju_HashMap$HashEntry, $var3);
            var$4 = var$11.data;
            $var2.$elementData = var$11;
            $var2.$loadFactor = 0.75;
            $var2.$threshold = var$4.length * 0.75 | 0;
            var$10.$tagMap = $var2;
        } else {
            var$5 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2647) === null) {
                var$5 = var$5.$elementData.data[0];
                while (var$5 !== null && var$5.$key !== null) {
                    var$5 = var$5.$next3;
                }
            } else {
                u: {
                    if (!$rt_s(2647).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(2647).$nativeString.length)
                                break u;
                            $rt_s(2647).$hashCode1 = (31 * $rt_s(2647).$hashCode1 | 0) + $rt_s(2647).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(2647).$hashCode1;
                var$4 = var$5.$elementData.data;
                var$5 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$5 !== null) {
                    if (var$5.$origKeyHash == var$7) {
                        v: {
                            var$9 = var$5.$key;
                            if ($rt_s(2647) !== var$9) {
                                if ($rt_s(2647) === var$9)
                                    $var3 = 1;
                                else if (!(var$9 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$9 = var$9;
                                    $var3 = $rt_s(2647).$nativeString !== var$9.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break v;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$5 = var$5.$next3;
                }
            }
            var$10 = var$5 === null ? null : var$5.$value0;
        }
        $var2 = $this.$mobID;
        var$8.$itemWeight = 1;
        var$8.$field_98221_d = $this;
        if ($var2 === $rt_s(2504))
            $var3 = 1;
        else if (!($rt_s(2504) instanceof jl_String))
            $var3 = 0;
        else {
            var$5 = $rt_s(2504);
            $var3 = $var2.$nativeString !== var$5.$nativeString ? 0 : 1;
        }
        if ($var3) {
            if (var$10 === null)
                $var2 = $rt_s(2507);
            else {
                w: {
                    var$9 = var$10.$tagMap;
                    if (!$rt_s(1636).$hashCode1) {
                        $var3 = 0;
                        while (true) {
                            if ($var3 >= $rt_s(1636).$nativeString.length)
                                break w;
                            $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt($var3) | 0;
                            $var3 = $var3 + 1 | 0;
                        }
                    }
                }
                var$7 = $rt_s(1636).$hashCode1;
                var$4 = var$9.$elementData.data;
                var$9 = var$4[var$7 & (var$4.length - 1 | 0)];
                while (var$9 !== null) {
                    if (var$9.$origKeyHash == var$7) {
                        x: {
                            var$12 = var$9.$key;
                            if ($rt_s(1636) !== var$12) {
                                if ($rt_s(1636) === var$12)
                                    $var3 = 1;
                                else if (!(var$12 instanceof jl_String))
                                    $var3 = 0;
                                else {
                                    var$12 = var$12;
                                    $var3 = $rt_s(1636).$nativeString !== var$12.$nativeString ? 0 : 1;
                                }
                                if (!$var3) {
                                    $var3 = 0;
                                    break x;
                                }
                            }
                            $var3 = 1;
                        }
                        if ($var3)
                            break;
                    }
                    var$9 = var$9.$next3;
                }
                if (!(var$9 === null ? 0 : 1))
                    $var3 = 0;
                else {
                    var$9 = var$10.$tagMap;
                    if ($rt_s(1636) === null) {
                        var$9 = var$9.$elementData.data[0];
                        while (var$9 !== null && var$9.$key !== null) {
                            var$9 = var$9.$next3;
                        }
                    } else {
                        y: {
                            if (!$rt_s(1636).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(1636).$nativeString.length)
                                        break y;
                                    $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        var$7 = $rt_s(1636).$hashCode1;
                        var$4 = var$9.$elementData.data;
                        var$9 = var$4[var$7 & (var$4.length - 1 | 0)];
                        while (var$9 !== null) {
                            if (var$9.$origKeyHash == var$7) {
                                z: {
                                    var$12 = var$9.$key;
                                    if ($rt_s(1636) !== var$12) {
                                        if ($rt_s(1636) === var$12)
                                            $var3 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            var$12 = var$12;
                                            $var3 = $rt_s(1636).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!$var3) {
                                            $var3 = 0;
                                            break z;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            var$9 = var$9.$next3;
                        }
                    }
                    $var3 = (var$9 === null ? null : var$9.$value0).$data;
                }
                ba: {
                    switch ($var3) {
                        case 0:
                            $var2 = $rt_s(2507);
                            break ba;
                        case 1:
                            $var2 = $rt_s(2505);
                            break ba;
                        case 2:
                            $var2 = $rt_s(2506);
                            break ba;
                        default:
                    }
                }
            }
        }
        var$8.$field_98222_b = var$10;
        var$8.$minecartName = $var2;
        $ptr = 2;
        continue main;
    case 1:
        $this.$setRandomMinecart(var$8);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2648).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2648).$nativeString.length)
                        break a;
                    $rt_s(2648).$hashCode1 = (31 * $rt_s(2648).$hashCode1 | 0) + $rt_s(2648).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2648).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                b: {
                    var$5 = $var2.$key;
                    if ($rt_s(2648) !== var$5) {
                        if ($rt_s(2648) === var$5)
                            $var3 = 1;
                        else if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(2648).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                        if (!$var3) {
                            $var3 = 0;
                            break b;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bb: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2648).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2648).$nativeString.length)
                            break bb;
                        $rt_s(2648).$hashCode1 = (31 * $rt_s(2648).$hashCode1 | 0) + $rt_s(2648).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2648).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bc: {
                        var$5 = $var2.$key;
                        if ($rt_s(2648) !== var$5) {
                            if ($rt_s(2648) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2648).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bc;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2648) !== null) {
                    bd: {
                        if (!$rt_s(2648).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2648).$nativeString.length)
                                    break bd;
                                $rt_s(2648).$hashCode1 = (31 * $rt_s(2648).$hashCode1 | 0) + $rt_s(2648).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2648).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            be: {
                                var$5 = $var2.$key;
                                if ($rt_s(2648) !== var$5) {
                                    if ($rt_s(2648) !== var$5) {
                                        if (!(var$5 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2648).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        }
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break be;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            bf: {
                $this.$minSpawnDelay = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2649).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2649).$nativeString.length)
                            break bf;
                        $rt_s(2649).$hashCode1 = (31 * $rt_s(2649).$hashCode1 | 0) + $rt_s(2649).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2649).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bg: {
                        var$5 = $var2.$key;
                        if ($rt_s(2649) !== var$5) {
                            if ($rt_s(2649) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2649).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break bg;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2649) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    bh: {
                        if (!$rt_s(2649).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2649).$nativeString.length)
                                    break bh;
                                $rt_s(2649).$hashCode1 = (31 * $rt_s(2649).$hashCode1 | 0) + $rt_s(2649).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2649).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bi: {
                                var$5 = $var2.$key;
                                if ($rt_s(2649) !== var$5) {
                                    if ($rt_s(2649) !== var$5) {
                                        if (var$5 instanceof jl_String) {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2649).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        } else
                                            $var3 = 0;
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bi;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            } else
                $var3 = 0;
            bj: {
                $this.$maxSpawnDelay = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2650).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2650).$nativeString.length)
                            break bj;
                        $rt_s(2650).$hashCode1 = (31 * $rt_s(2650).$hashCode1 | 0) + $rt_s(2650).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2650).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bk: {
                        var$5 = $var2.$key;
                        if ($rt_s(2650) !== var$5) {
                            if ($rt_s(2650) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2650).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bk;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2650) !== null) {
                    bl: {
                        if (!$rt_s(2650).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2650).$nativeString.length)
                                    break bl;
                                $rt_s(2650).$hashCode1 = (31 * $rt_s(2650).$hashCode1 | 0) + $rt_s(2650).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2650).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bm: {
                                var$5 = $var2.$key;
                                if ($rt_s(2650) !== var$5) {
                                    if ($rt_s(2650) !== var$5) {
                                        if (var$5 instanceof jl_String) {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2650).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        } else
                                            $var3 = 0;
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bm;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            } else
                $var3 = 0;
            $this.$spawnCount = $var3;
        }
        bn: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2651).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2651).$nativeString.length)
                        break bn;
                    $rt_s(2651).$hashCode1 = (31 * $rt_s(2651).$hashCode1 | 0) + $rt_s(2651).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2651).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                bo: {
                    var$5 = $var2.$key;
                    if ($rt_s(2651) !== var$5) {
                        if ($rt_s(2651) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2651).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break bo;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bp: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2651).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2651).$nativeString.length)
                            break bp;
                        $rt_s(2651).$hashCode1 = (31 * $rt_s(2651).$hashCode1 | 0) + $rt_s(2651).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2651).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bq: {
                        var$5 = $var2.$key;
                        if ($rt_s(2651) !== var$5) {
                            if ($rt_s(2651) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2651).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break bq;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2651) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    br: {
                        if (!$rt_s(2651).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2651).$nativeString.length)
                                    break br;
                                $rt_s(2651).$hashCode1 = (31 * $rt_s(2651).$hashCode1 | 0) + $rt_s(2651).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2651).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bs: {
                                var$5 = $var2.$key;
                                if ($rt_s(2651) !== var$5) {
                                    if ($rt_s(2651) === var$5)
                                        $var3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        var$5 = var$5;
                                        $var3 = $rt_s(2651).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bs;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            bt: {
                $this.$maxNearbyEntities = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2652).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2652).$nativeString.length)
                            break bt;
                        $rt_s(2652).$hashCode1 = (31 * $rt_s(2652).$hashCode1 | 0) + $rt_s(2652).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2652).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bu: {
                        var$5 = $var2.$key;
                        if ($rt_s(2652) !== var$5) {
                            if ($rt_s(2652) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2652).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bu;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2652) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    bv: {
                        if (!$rt_s(2652).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2652).$nativeString.length)
                                    break bv;
                                $rt_s(2652).$hashCode1 = (31 * $rt_s(2652).$hashCode1 | 0) + $rt_s(2652).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2652).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bw: {
                                var$5 = $var2.$key;
                                if ($rt_s(2652) !== var$5) {
                                    if ($rt_s(2652) === var$5)
                                        $var3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        var$5 = var$5;
                                        $var3 = $rt_s(2652).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bw;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            $this.$activatingRangeFromPlayer = $var3;
        }
        bx: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2653).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2653).$nativeString.length)
                        break bx;
                    $rt_s(2653).$hashCode1 = (31 * $rt_s(2653).$hashCode1 | 0) + $rt_s(2653).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2653).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                by: {
                    var$5 = $var2.$key;
                    if ($rt_s(2653) !== var$5) {
                        if ($rt_s(2653) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2653).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break by;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bz: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2653).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2653).$nativeString.length)
                            break bz;
                        $rt_s(2653).$hashCode1 = (31 * $rt_s(2653).$hashCode1 | 0) + $rt_s(2653).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2653).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bA: {
                        var$5 = $var2.$key;
                        if ($rt_s(2653) !== var$5) {
                            if ($rt_s(2653) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2653).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bA;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2653) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bB: {
                        if (!$rt_s(2653).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2653).$nativeString.length)
                                    break bB;
                                $rt_s(2653).$hashCode1 = (31 * $rt_s(2653).$hashCode1 | 0) + $rt_s(2653).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2653).$hashCode1;
                    var$4 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$7) {
                            bC: {
                                $var2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2653) !== $var2) {
                                    if ($rt_s(2653) === $var2)
                                        $var3 = 1;
                                    else if (!($var2 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        $var2 = $var2;
                                        $var3 = $rt_s(2653).$nativeString !== $var2.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bC;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data2;
            }
            $this.$spawnRange = $var3;
        }
        if ($this.$getSpawnerWorld() !== null && ($this.$getSpawnerWorld()).$isRemote)
            $this.$field_98291_j = null;
        return;
    case 2:
        $this.$setRandomMinecart(var$8);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2648).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2648).$nativeString.length)
                        break a;
                    $rt_s(2648).$hashCode1 = (31 * $rt_s(2648).$hashCode1 | 0) + $rt_s(2648).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2648).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                b: {
                    var$5 = $var2.$key;
                    if ($rt_s(2648) !== var$5) {
                        if ($rt_s(2648) === var$5)
                            $var3 = 1;
                        else if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var3 = $rt_s(2648).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                        if (!$var3) {
                            $var3 = 0;
                            break b;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bb: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2648).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2648).$nativeString.length)
                            break bb;
                        $rt_s(2648).$hashCode1 = (31 * $rt_s(2648).$hashCode1 | 0) + $rt_s(2648).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2648).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bc: {
                        var$5 = $var2.$key;
                        if ($rt_s(2648) !== var$5) {
                            if ($rt_s(2648) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2648).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bc;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2648) !== null) {
                    bd: {
                        if (!$rt_s(2648).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2648).$nativeString.length)
                                    break bd;
                                $rt_s(2648).$hashCode1 = (31 * $rt_s(2648).$hashCode1 | 0) + $rt_s(2648).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2648).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            be: {
                                var$5 = $var2.$key;
                                if ($rt_s(2648) !== var$5) {
                                    if ($rt_s(2648) !== var$5) {
                                        if (!(var$5 instanceof jl_String))
                                            $var3 = 0;
                                        else {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2648).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        }
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break be;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            bf: {
                $this.$minSpawnDelay = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2649).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2649).$nativeString.length)
                            break bf;
                        $rt_s(2649).$hashCode1 = (31 * $rt_s(2649).$hashCode1 | 0) + $rt_s(2649).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2649).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bg: {
                        var$5 = $var2.$key;
                        if ($rt_s(2649) !== var$5) {
                            if ($rt_s(2649) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2649).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break bg;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2649) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    bh: {
                        if (!$rt_s(2649).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2649).$nativeString.length)
                                    break bh;
                                $rt_s(2649).$hashCode1 = (31 * $rt_s(2649).$hashCode1 | 0) + $rt_s(2649).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2649).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bi: {
                                var$5 = $var2.$key;
                                if ($rt_s(2649) !== var$5) {
                                    if ($rt_s(2649) !== var$5) {
                                        if (var$5 instanceof jl_String) {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2649).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        } else
                                            $var3 = 0;
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bi;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            } else
                $var3 = 0;
            bj: {
                $this.$maxSpawnDelay = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2650).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2650).$nativeString.length)
                            break bj;
                        $rt_s(2650).$hashCode1 = (31 * $rt_s(2650).$hashCode1 | 0) + $rt_s(2650).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2650).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bk: {
                        var$5 = $var2.$key;
                        if ($rt_s(2650) !== var$5) {
                            if ($rt_s(2650) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2650).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bk;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if ($var2 === null ? 0 : 1) {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2650) !== null) {
                    bl: {
                        if (!$rt_s(2650).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2650).$nativeString.length)
                                    break bl;
                                $rt_s(2650).$hashCode1 = (31 * $rt_s(2650).$hashCode1 | 0) + $rt_s(2650).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2650).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bm: {
                                var$5 = $var2.$key;
                                if ($rt_s(2650) !== var$5) {
                                    if ($rt_s(2650) !== var$5) {
                                        if (var$5 instanceof jl_String) {
                                            var$5 = var$5;
                                            $var3 = $rt_s(2650).$nativeString !== var$5.$nativeString ? 0 : 1;
                                        } else
                                            $var3 = 0;
                                    } else
                                        $var3 = 1;
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bm;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                } else {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            } else
                $var3 = 0;
            $this.$spawnCount = $var3;
        }
        bn: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2651).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2651).$nativeString.length)
                        break bn;
                    $rt_s(2651).$hashCode1 = (31 * $rt_s(2651).$hashCode1 | 0) + $rt_s(2651).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2651).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                bo: {
                    var$5 = $var2.$key;
                    if ($rt_s(2651) !== var$5) {
                        if ($rt_s(2651) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2651).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break bo;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bp: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2651).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2651).$nativeString.length)
                            break bp;
                        $rt_s(2651).$hashCode1 = (31 * $rt_s(2651).$hashCode1 | 0) + $rt_s(2651).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2651).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bq: {
                        var$5 = $var2.$key;
                        if ($rt_s(2651) !== var$5) {
                            if ($rt_s(2651) !== var$5) {
                                if (var$5 instanceof jl_String) {
                                    var$5 = var$5;
                                    $var3 = $rt_s(2651).$nativeString !== var$5.$nativeString ? 0 : 1;
                                } else
                                    $var3 = 0;
                            } else
                                $var3 = 1;
                            if (!$var3) {
                                $var3 = 0;
                                break bq;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2651) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    br: {
                        if (!$rt_s(2651).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2651).$nativeString.length)
                                    break br;
                                $rt_s(2651).$hashCode1 = (31 * $rt_s(2651).$hashCode1 | 0) + $rt_s(2651).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2651).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bs: {
                                var$5 = $var2.$key;
                                if ($rt_s(2651) !== var$5) {
                                    if ($rt_s(2651) === var$5)
                                        $var3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        var$5 = var$5;
                                        $var3 = $rt_s(2651).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bs;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            bt: {
                $this.$maxNearbyEntities = $var3;
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2652).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2652).$nativeString.length)
                            break bt;
                        $rt_s(2652).$hashCode1 = (31 * $rt_s(2652).$hashCode1 | 0) + $rt_s(2652).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2652).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bu: {
                        var$5 = $var2.$key;
                        if ($rt_s(2652) !== var$5) {
                            if ($rt_s(2652) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2652).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bu;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $var2 = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2652) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    bv: {
                        if (!$rt_s(2652).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2652).$nativeString.length)
                                    break bv;
                                $rt_s(2652).$hashCode1 = (31 * $rt_s(2652).$hashCode1 | 0) + $rt_s(2652).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2652).$hashCode1;
                    var$4 = $var2.$elementData.data;
                    $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$7) {
                            bw: {
                                var$5 = $var2.$key;
                                if ($rt_s(2652) !== var$5) {
                                    if ($rt_s(2652) === var$5)
                                        $var3 = 1;
                                    else if (!(var$5 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        var$5 = var$5;
                                        $var3 = $rt_s(2652).$nativeString !== var$5.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bw;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var3 = ($var2 === null ? null : $var2.$value0).$data2;
            }
            $this.$activatingRangeFromPlayer = $var3;
        }
        bx: {
            $var2 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2653).$hashCode1) {
                $var3 = 0;
                while (true) {
                    if ($var3 >= $rt_s(2653).$nativeString.length)
                        break bx;
                    $rt_s(2653).$hashCode1 = (31 * $rt_s(2653).$hashCode1 | 0) + $rt_s(2653).$nativeString.charCodeAt($var3) | 0;
                    $var3 = $var3 + 1 | 0;
                }
            }
        }
        var$7 = $rt_s(2653).$hashCode1;
        var$4 = $var2.$elementData.data;
        $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                by: {
                    var$5 = $var2.$key;
                    if ($rt_s(2653) !== var$5) {
                        if ($rt_s(2653) === var$5)
                            $var3 = 1;
                        else if (!(var$5 instanceof jl_String))
                            $var3 = 0;
                        else {
                            var$5 = var$5;
                            $var3 = $rt_s(2653).$nativeString !== var$5.$nativeString ? 0 : 1;
                        }
                        if (!$var3) {
                            $var3 = 0;
                            break by;
                        }
                    }
                    $var3 = 1;
                }
                if ($var3)
                    break;
            }
            $var2 = $var2.$next3;
        }
        if ($var2 === null ? 0 : 1) {
            bz: {
                $var2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2653).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2653).$nativeString.length)
                            break bz;
                        $rt_s(2653).$hashCode1 = (31 * $rt_s(2653).$hashCode1 | 0) + $rt_s(2653).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(2653).$hashCode1;
            var$4 = $var2.$elementData.data;
            $var2 = var$4[var$7 & (var$4.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$7) {
                    bA: {
                        var$5 = $var2.$key;
                        if ($rt_s(2653) !== var$5) {
                            if ($rt_s(2653) === var$5)
                                $var3 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var3 = 0;
                            else {
                                var$5 = var$5;
                                $var3 = $rt_s(2653).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var3) {
                                $var3 = 0;
                                break bA;
                            }
                        }
                        $var3 = 1;
                    }
                    if ($var3)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var3 = 0;
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2653) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bB: {
                        if (!$rt_s(2653).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(2653).$nativeString.length)
                                    break bB;
                                $rt_s(2653).$hashCode1 = (31 * $rt_s(2653).$hashCode1 | 0) + $rt_s(2653).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(2653).$hashCode1;
                    var$4 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$4[var$7 & (var$4.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == var$7) {
                            bC: {
                                $var2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2653) !== $var2) {
                                    if ($rt_s(2653) === $var2)
                                        $var3 = 1;
                                    else if (!($var2 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        $var2 = $var2;
                                        $var3 = $rt_s(2653).$nativeString !== $var2.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bC;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data2;
            }
            $this.$spawnRange = $var3;
        }
        if ($this.$getSpawnerWorld() !== null && ($this.$getSpawnerWorld()).$isRemote)
            $this.$field_98291_j = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1NBTTagCompound, $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_MobSpawnerBaseLogic_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, $var4, $var2, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var3$index, $var3$index_0, var$15, var$16;
    var$2 = nms_MobSpawnerBaseLogic_getEntityNameToSpawn($this);
    var$3 = $par1NBTTagCompound.$tagMap;
    $var4 = new nms_NBTTagString;
    $var4.$name = $rt_s(2645);
    $var4.$data1 = var$2;
    if (var$2 === null) {
        $var2 = new jl_IllegalArgumentException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $var2.$message = $rt_s(177);
        $rt_throw($var2);
    }
    ju_HashMap_putImpl(var$3, $rt_s(2645), $var4);
    var$6 = $this.$spawnDelay << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2646);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2646), var$2);
    var$6 = $this.$minSpawnDelay << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2648);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2648), var$2);
    var$6 = $this.$maxSpawnDelay << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2649);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2649), var$2);
    var$6 = $this.$spawnCount << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2650);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2650), var$2);
    var$6 = $this.$maxNearbyEntities << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2651);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2651), var$2);
    var$6 = $this.$activatingRangeFromPlayer << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2652);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2652), var$2);
    var$6 = $this.$spawnRange << 16 >> 16;
    $var4 = $par1NBTTagCompound.$tagMap;
    var$2 = new nms_NBTTagShort;
    var$2.$name = $rt_s(2653);
    var$2.$data2 = var$6;
    ju_HashMap_putImpl($var4, $rt_s(2653), var$2);
    var$2 = $this.$randomMinecart;
    if (var$2 !== null) {
        var$7 = var$2.$field_98222_b;
        var$8 = new nms_NBTTagCompound;
        var$2 = var$7.$name;
        if (var$2 === null)
            var$2 = $rt_s(3);
        var$8.$name = var$2;
        var$2 = new ju_HashMap;
        var$6 = ju_HashMap_calculateCapacity(16);
        var$2.$elementCount = 0;
        var$9 = $rt_createArray(ju_HashMap$HashEntry, var$6);
        var$10 = var$9.data;
        var$2.$elementData = var$9;
        var$2.$loadFactor = 0.75;
        var$2.$threshold = var$10.length * 0.75 | 0;
        var$8.$tagMap = var$2;
        $var4 = var$7.$tagMap;
        if ($var4.$cachedKeySet === null) {
            var$2 = new ju_HashMap$1;
            var$2.$this$0 = $var4;
            $var4.$cachedKeySet = var$2;
        }
        var$11 = $var4.$cachedKeySet.$iterator();
        while (var$11.$hasNext()) {
            var$12 = var$11.$next();
            var$2 = var$7.$tagMap;
            if (var$12 === null) {
                var$2 = var$2.$elementData.data[0];
                while (var$2 !== null && var$2.$key !== null) {
                    var$2 = var$2.$next3;
                }
            } else {
                a: {
                    if (!var$12.$hashCode1) {
                        var$6 = 0;
                        while (true) {
                            if (var$6 >= var$12.$nativeString.length)
                                break a;
                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$6) | 0;
                            var$6 = var$6 + 1 | 0;
                        }
                    }
                }
                $var3$index = var$12.$hashCode1;
                var$10 = var$2.$elementData.data;
                var$2 = var$10[$var3$index & (var$10.length - 1 | 0)];
                while (var$2 !== null) {
                    if (var$2.$origKeyHash == $var3$index) {
                        b: {
                            $var4 = var$2.$key;
                            if (var$12 !== $var4) {
                                if (var$12 === $var4)
                                    var$6 = 1;
                                else if (!($var4 instanceof jl_String))
                                    var$6 = 0;
                                else {
                                    $var4 = $var4;
                                    var$6 = var$12.$nativeString !== $var4.$nativeString ? 0 : 1;
                                }
                                if (!var$6) {
                                    var$6 = 0;
                                    break b;
                                }
                            }
                            var$6 = 1;
                        }
                        if (var$6)
                            break;
                    }
                    var$2 = var$2.$next3;
                }
            }
            var$2 = var$2 === null ? null : var$2.$value0;
            var$2 = var$2.$copy();
            $var4 = var$8.$tagMap;
            if (var$12 !== null)
                var$2.$name = var$12;
            else
                var$2.$name = $rt_s(3);
            ju_HashMap_putImpl($var4, var$12, var$2);
        }
        var$2 = $par1NBTTagCompound.$tagMap;
        var$8.$name = $rt_s(2647);
        ju_HashMap_putImpl(var$2, $rt_s(2647), var$8);
    }
    c: {
        $var4 = $this.$randomMinecart;
        if ($var4 === null) {
            $var2 = $this.$minecartToSpawn;
            if ($var2 === null)
                break c;
            if ($var2.$size0 <= 0)
                break c;
        }
        $var2 = new nms_NBTTagList;
        $var2.$name = $rt_s(3);
        var$2 = new ju_ArrayList;
        var$2.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = var$2;
        var$2 = $this.$minecartToSpawn;
        if (var$2 !== null && var$2.$size0 > 0) {
            $var3$index_0 = 0;
            var$15 = var$2.$modCount;
            var$16 = var$2.$size();
            while ($var3$index_0 >= var$16 ? 0 : 1) {
                if (var$15 < var$2.$modCount) {
                    $par1NBTTagCompound = new ju_ConcurrentModificationException;
                    $par1NBTTagCompound.$suppressionEnabled = 1;
                    $par1NBTTagCompound.$writableStackTrace = 1;
                    $rt_throw($par1NBTTagCompound);
                }
                $var3$index = $var3$index_0 + 1 | 0;
                $var4 = var$2.$get($var3$index_0);
                var$3 = new nms_NBTTagCompound;
                var$3.$name = $rt_s(3);
                var$11 = new ju_HashMap;
                var$6 = ju_HashMap_calculateCapacity(16);
                var$11.$elementCount = 0;
                var$9 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                var$10 = var$9.data;
                var$11.$elementData = var$9;
                var$11.$loadFactor = 0.75;
                var$11.$threshold = var$10.length * 0.75 | 0;
                var$3.$tagMap = var$11;
                var$8 = $var4.$field_98222_b;
                var$8.$name = $rt_s(2654);
                ju_HashMap_putImpl(var$11, $rt_s(2654), var$8);
                var$8 = $var4.$minecartName;
                var$12 = var$3.$tagMap;
                var$11 = new nms_NBTTagString;
                var$11.$name = $rt_s(1636);
                var$11.$data1 = var$8;
                if (var$8 === null) {
                    $var2 = new jl_IllegalArgumentException;
                    $var2.$suppressionEnabled = 1;
                    $var2.$writableStackTrace = 1;
                    $var2.$message = $rt_s(177);
                    $rt_throw($var2);
                }
                ju_HashMap_putImpl(var$12, $rt_s(1636), var$11);
                var$6 = $var4.$itemWeight;
                var$8 = var$3.$tagMap;
                $var4 = new nms_NBTTagInt;
                $var4.$name = $rt_s(2655);
                $var4.$data = var$6;
                ju_HashMap_putImpl(var$8, $rt_s(2655), $var4);
                $var2.$tagType = 10;
                $var4 = $var2.$tagList;
                ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
                var$10 = $var4.$array.data;
                $var3$index_0 = $var4.$size0;
                $var4.$size0 = $var3$index_0 + 1 | 0;
                var$10[$var3$index_0] = var$3;
                $var4.$modCount = $var4.$modCount + 1 | 0;
                $var3$index_0 = $var3$index;
            }
        } else {
            var$2 = new nms_NBTTagCompound;
            var$2.$name = $rt_s(3);
            var$3 = new ju_HashMap;
            var$6 = ju_HashMap_calculateCapacity(16);
            var$3.$elementCount = 0;
            var$9 = $rt_createArray(ju_HashMap$HashEntry, var$6);
            var$10 = var$9.data;
            var$3.$elementData = var$9;
            var$3.$loadFactor = 0.75;
            var$3.$threshold = var$10.length * 0.75 | 0;
            var$2.$tagMap = var$3;
            var$8 = $var4.$field_98222_b;
            var$8.$name = $rt_s(2654);
            ju_HashMap_putImpl(var$3, $rt_s(2654), var$8);
            var$7 = $var4.$minecartName;
            var$11 = var$2.$tagMap;
            var$8 = new nms_NBTTagString;
            var$8.$name = $rt_s(1636);
            var$8.$data1 = var$7;
            if (var$7 === null) {
                $var2 = new jl_IllegalArgumentException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $var2.$message = $rt_s(177);
                $rt_throw($var2);
            }
            ju_HashMap_putImpl(var$11, $rt_s(1636), var$8);
            var$6 = $var4.$itemWeight;
            var$7 = var$2.$tagMap;
            $var4 = new nms_NBTTagInt;
            $var4.$name = $rt_s(2655);
            $var4.$data = var$6;
            ju_HashMap_putImpl(var$7, $rt_s(2655), $var4);
            $var2.$tagType = 10;
            $var4 = $var2.$tagList;
            ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
            var$10 = $var4.$array.data;
            $var3$index_0 = $var4.$size0;
            $var4.$size0 = $var3$index_0 + 1 | 0;
            var$10[$var3$index_0] = var$2;
            $var4.$modCount = $var4.$modCount + 1 | 0;
        }
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        $var2.$name = $rt_s(2410);
        ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2410), $var2);
    }
},
nms_MobSpawnerBaseLogic_getRandomMinecart = $this => {
    return $this.$randomMinecart;
},
nms_MobSpawnerBaseLogic_setRandomMinecart = ($this, $par1WeightedRandomMinecart) => {
    $this.$randomMinecart = $par1WeightedRandomMinecart;
};
function nms_EntityMinecartMobSpawnerLogic() {
    nms_MobSpawnerBaseLogic.call(this);
    this.$spawnerMinecart = null;
}
let nms_EntityMinecartMobSpawnerLogic_func_98267_a = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$spawnerMinecart;
        var$3 = var$2.$worldObj;
        $par1 = $par1 << 24 >> 24;
        var$4 = new nms_Packet38EntityStatus;
        var$5 = var$2.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$4.$entityId0 = var$5;
        var$4.$entityStatus = $par1;
        var$3 = var$3.$theEntityTracker.$trackedEntityIDs;
        $par1 = var$2.$entityId;
        var$5 = $par1 ^ ($par1 >>> 20 | 0) ^ ($par1 >>> 12 | 0);
        var$6 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$7 = var$3.$slots.data;
        var$2 = var$7[var$6 & (var$7.length - 1 | 0)];
        a: {
            while (var$2 !== null) {
                if (var$2.$hashEntry == $par1) {
                    var$2 = var$2.$valueEntry;
                    break a;
                }
                var$2 = var$2.$nextEntry0;
            }
            var$2 = null;
        }
        var$2 = var$2;
        if (var$2 !== null) {
            var$3 = var$2.$trackingPlayers.$backingMap;
            if (var$3.$cachedKeySet === null) {
                var$8 = new ju_HashMap$1;
                var$8.$this$0 = var$3;
                ju_AbstractCollection__init_(var$8);
                var$3.$cachedKeySet = var$8;
            }
            var$8 = var$3.$cachedKeySet.$iterator();
            var$5 = var$4 instanceof nms_Packet3Chat;
            var$9 = var$4;
            while (var$8.$hasNext()) {
                b: {
                    var$3 = (var$8.$next()).$playerNetServerHandler;
                    if (var$5) {
                        var$10 = var$3.$playerEntity.$chatVisibility;
                        if (var$10 == 2)
                            break b;
                        if (var$10 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        var$3 = var$3.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$11 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$3 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$3);
                        jl_System_errCache = var$3;
                    }
                    jl_Throwable_printStackTrace(var$11, jl_System_errCache);
                }
            }
            var$2 = var$2.$myEntity;
            if (var$2 instanceof nms_EntityPlayerMP)
                c: {
                    var$2 = var$2.$playerNetServerHandler;
                    if (var$5) {
                        var$5 = var$2.$playerEntity.$chatVisibility;
                        if (var$5 == 2)
                            break c;
                        if (var$5 == 1 && !var$9.$isServer)
                            break c;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$3 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$3, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$3;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
        }
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$3, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$3 = jl_System_errCache;
            if (var$3 === null) {
                var$3 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$3);
                jl_System_errCache = var$3;
            }
            var$3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$3);
        }
        d: while (true) {
            while (true) {
                if (!var$8.$hasNext())
                    break d;
                var$3 = (var$8.$next()).$playerNetServerHandler;
                if (!var$5)
                    break;
                var$10 = var$3.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$3 = var$3.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$11 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$3 = jl_System_errCache;
            if (var$3 === null) {
                var$3 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$3);
                jl_System_errCache = var$3;
            }
            var$3 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$11, var$3);
        }
        var$2 = var$2.$myEntity;
        if (var$2 instanceof nms_EntityPlayerMP)
            e: {
                var$2 = var$2.$playerNetServerHandler;
                if (var$5) {
                    var$5 = var$2.$playerEntity.$chatVisibility;
                    if (var$5 == 2)
                        break e;
                    if (var$5 == 1 && !var$9.$isServer)
                        break e;
                }
                try {
                    var$2 = var$2.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$2 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$3 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$3, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$3;
                }
                jl_Throwable_printStackTrace(var$2, jl_System_errCache);
            }
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$3 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$3, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$3;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_EntityMinecartMobSpawnerLogic_getSpawnerWorld = $this => {
    return $this.$spawnerMinecart.$worldObj;
},
nms_EntityMinecartMobSpawnerLogic_getSpawnerX = $this => {
    let var$1, var$2;
    var$1 = $this.$spawnerMinecart.$posX;
    var$2 = var$1 | 0;
    if (var$1 < var$2)
        var$2 = var$2 - 1 | 0;
    return var$2;
},
nms_EntityMinecartMobSpawnerLogic_getSpawnerY = $this => {
    let var$1, var$2;
    var$1 = $this.$spawnerMinecart.$posY;
    var$2 = var$1 | 0;
    if (var$1 < var$2)
        var$2 = var$2 - 1 | 0;
    return var$2;
},
nms_EntityMinecartMobSpawnerLogic_getSpawnerZ = $this => {
    let var$1, var$2;
    var$1 = $this.$spawnerMinecart.$posZ;
    var$2 = var$1 | 0;
    if (var$1 < var$2)
        var$2 = var$2 - 1 | 0;
    return var$2;
};
function nms_EntityAIRestrictSun() {
    nms_EntityAIBase.call(this);
    this.$theEntity10 = null;
}
let nms_EntityAIRestrictSun_shouldExecute = $this => {
    return $this.$theEntity10.$worldObj.$skylightSubtracted >= 4 ? 0 : 1;
},
nms_EntityAIRestrictSun_startExecuting = $this => {
    $this.$theEntity10.$navigator.$noSunPathfind = 1;
},
nms_EntityAIRestrictSun_resetTask = $this => {
    $this.$theEntity10.$navigator.$noSunPathfind = 0;
};
function nms_EntityAIFleeSun() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theCreature = null;
    a.$shelterX = 0.0;
    a.$shelterY = 0.0;
    a.$shelterZ = 0.0;
    a.$movementSpeed1 = 0.0;
    a.$theWorld3 = null;
}
let nms_EntityAIFleeSun_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!($this.$theWorld3.$skylightSubtracted >= 4 ? 0 : 1))
            return 0;
        a: {
            b: {
                $var1 = $this.$theCreature;
                if (!$var1.$isImmuneToFire) {
                    if ($var1.$fire > 0)
                        break b;
                    $var1 = $var1.$dataWatcher.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$2 = jl_Integer_integerCache.data[128];
                    if (var$2 === null) {
                        $var1 = $var1.$elementData.data[0];
                        while ($var1 !== null && $var1.$key !== null) {
                            $var1 = $var1.$next3;
                        }
                    } else {
                        var$3 = var$2.$value;
                        var$4 = $var1.$elementData.data;
                        $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
                        while ($var1 !== null) {
                            if ($var1.$origKeyHash == var$3) {
                                var$5 = $var1.$key;
                                if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                                    break;
                            }
                            $var1 = $var1.$next3;
                        }
                    }
                    $var1 = $var1 === null ? null : $var1.$value0;
                    if (!($var1.$watchedObject.$value1 & 1) ? 0 : 1)
                        break b;
                }
                var$3 = 0;
                break a;
            }
            var$3 = 1;
        }
        if (!var$3)
            return 0;
        $var1 = $this.$theWorld3;
        var$2 = $this.$theCreature;
        var$6 = var$2.$posX;
        var$7 = var$6 | 0;
        if (var$6 < var$7)
            var$7 = var$7 - 1 | 0;
        var$3 = var$2.$boundingBox0.$minY0 | 0;
        var$6 = var$2.$posZ;
        var$8 = var$6 | 0;
        if (var$6 < var$8)
            var$8 = var$8 - 1 | 0;
        var$9 = var$7 >> 4;
        var$10 = var$8 >> 4;
        $var1 = $var1.$chunkProvider;
        var$2 = $var1.$loadedChunkHashMap;
        var$11 = Long_or(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$10), Long_create(4294967295, 0)), 32));
        var$12 = Long_lo(Long_xor(var$11, Long_shru(var$11, 32)));
        var$12 = var$12 ^ (var$12 >>> 20 | 0) ^ (var$12 >>> 12 | 0);
        var$13 = var$12 ^ (var$12 >>> 7 | 0) ^ (var$12 >>> 4 | 0);
        var$4 = var$2.$hashArray.data;
        var$2 = var$4[var$13 & (var$4.length - 1 | 0)];
        c: {
            while (var$2 !== null) {
                if (Long_eq(var$2.$key1, var$11)) {
                    var$2 = var$2.$value4;
                    break c;
                }
                var$2 = var$2.$nextEntry;
            }
            var$2 = null;
        }
        d: {
            var$2 = var$2;
            if (var$2 === null) {
                if ($var1.$worldObj0.$findingSpawnPoint)
                    break d;
                if ($var1.$loadChunkOnProvideRequest)
                    break d;
                var$2 = $var1.$defaultEmptyChunk;
            }
            if (!var$2.$canBlockSeeTheSky(var$7 & 15, var$3, var$8 & 15))
                return 0;
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var1, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (!var$2.$canBlockSeeTheSky(var$7 & 15, var$3, var$8 & 15))
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_EntityAIFleeSun_findPossibleShelter($this);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        $this.$shelterX = $var1.$xCoord;
        $this.$shelterY = $var1.$yCoord;
        $this.$shelterZ = $var1.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $ptr);
},
nms_EntityAIFleeSun_continueExecuting = $this => {
    let var$1;
    var$1 = $this.$theCreature.$navigator.$currentPath;
    return (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
},
nms_EntityAIFleeSun_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theCreature.$navigator;
        var$2 = $this.$shelterX;
        var$3 = $this.$shelterY;
        var$4 = $this.$shelterZ;
        var$5 = $this.$movementSpeed1;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$8 = var$1.$theEntity;
        if (var$8.$onGround)
            var$9 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$8 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$8, var$10, var$9, var$6, var$11, var$13, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityAIFleeSun_findPossibleShelter = $this => {
    let $var1, $var2, var$3, var$4, var$5, var$6, var$7, var$8, $var4, $var3, var$11, var$12, $var5, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var5 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var3 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$theCreature.$rand;
        $var2 = 0;
        var$3 = 17;
        var$4 = 19;
        var$5 = 5;
        a: {
            while ($var2 < 10) {
                var$6 = $this.$theCreature;
                var$7 = var$6.$posX;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    $var3 = $var4 % 20 | 0;
                    if ((($var4 - $var3 | 0) + var$4 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + $var3 - 10.0;
                $var3 = var$7 | 0;
                if (var$7 < $var3)
                    $var3 = $var3 - 1 | 0;
                var$7 = var$6.$boundingBox0.$minY0;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    var$11 = $var4 % 6 | 0;
                    if ((($var4 - var$11 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + var$11 - 3.0;
                $var4 = var$7 | 0;
                if (var$7 < $var4)
                    $var4 = $var4 - 1 | 0;
                var$7 = var$6.$posZ;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                var$11 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    var$12 = var$11 % 20 | 0;
                    if (((var$11 - var$12 | 0) + var$4 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    var$11 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + var$12 - 10.0;
                $var5 = var$7 | 0;
                if (var$7 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$6 = $this.$theWorld3;
                var$11 = $var3 >> 4;
                var$14 = $var5 >> 4;
                var$6 = var$6.$chunkProvider;
                var$15 = var$6.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt(var$11), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)), 32));
                var$17 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                var$17 = var$17 ^ (var$17 >>> 20 | 0) ^ (var$17 >>> 12 | 0);
                var$17 = var$17 ^ (var$17 >>> 7 | 0) ^ (var$17 >>> 4 | 0);
                var$18 = var$15.$hashArray.data;
                var$15 = var$18[var$17 & (var$18.length - 1 | 0)];
                b: {
                    while (var$15 !== null) {
                        if (Long_eq(var$15.$key1, var$16)) {
                            var$15 = var$15.$value4;
                            break b;
                        }
                        var$15 = var$15.$nextEntry;
                    }
                    var$15 = null;
                }
                var$15 = var$15;
                if (var$15 === null) {
                    if (var$6.$worldObj0.$findingSpawnPoint)
                        break a;
                    if (var$6.$loadChunkOnProvideRequest)
                        break a;
                    var$15 = var$6.$defaultEmptyChunk;
                }
                if (!var$15.$canBlockSeeTheSky($var3 & 15, $var4, $var5 & 15)) {
                    var$6 = $this.$theCreature;
                    var$19 = 0.5;
                    var$6 = var$6.$worldObj;
                    var$18 = var$6.$provider.$lightBrightnessTable.data;
                    var$17 = 1;
                    $ptr = 2;
                    continue main;
                }
                $var2 = $var2 + 1 | 0;
            }
            return null;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk(var$6, var$11, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        a: {
            while (true) {
                if (!var$15.$canBlockSeeTheSky($var3 & 15, $var4, $var5 & 15)) {
                    var$6 = $this.$theCreature;
                    var$19 = 0.5;
                    var$6 = var$6.$worldObj;
                    var$18 = var$6.$provider.$lightBrightnessTable.data;
                    var$17 = 1;
                    $ptr = 2;
                    continue main;
                }
                $var2 = $var2 + 1 | 0;
                if ($var2 >= 10)
                    break;
                var$6 = $this.$theCreature;
                var$7 = var$6.$posX;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    $var3 = $var4 % 20 | 0;
                    if ((($var4 - $var3 | 0) + var$4 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + $var3 - 10.0;
                $var3 = var$7 | 0;
                if (var$7 < $var3)
                    $var3 = $var3 - 1 | 0;
                var$7 = var$6.$boundingBox0.$minY0;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    var$11 = $var4 % 6 | 0;
                    if ((($var4 - var$11 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + var$11 - 3.0;
                $var4 = var$7 | 0;
                if (var$7 < $var4)
                    $var4 = $var4 - 1 | 0;
                var$7 = var$6.$posZ;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                var$11 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    var$12 = var$11 % 20 | 0;
                    if (((var$11 - var$12 | 0) + var$4 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    var$11 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + var$12 - 10.0;
                $var5 = var$7 | 0;
                if (var$7 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$6 = $this.$theWorld3;
                var$11 = $var3 >> 4;
                var$14 = $var5 >> 4;
                var$6 = var$6.$chunkProvider;
                var$15 = var$6.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt(var$11), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)), 32));
                var$17 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                var$17 = var$17 ^ (var$17 >>> 20 | 0) ^ (var$17 >>> 12 | 0);
                var$17 = var$17 ^ (var$17 >>> 7 | 0) ^ (var$17 >>> 4 | 0);
                var$18 = var$15.$hashArray.data;
                var$15 = var$18[var$17 & (var$18.length - 1 | 0)];
                c: {
                    while (var$15 !== null) {
                        if (Long_eq(var$15.$key1, var$16)) {
                            var$15 = var$15.$value4;
                            break c;
                        }
                        var$15 = var$15.$nextEntry;
                    }
                    var$15 = null;
                }
                var$15 = var$15;
                if (var$15 !== null)
                    continue;
                if (var$6.$worldObj0.$findingSpawnPoint)
                    break a;
                if (var$6.$loadChunkOnProvideRequest)
                    break a;
                var$15 = var$6.$defaultEmptyChunk;
            }
            return null;
        }
        continue main;
    case 2:
        $tmp = nms_World_getBlockLightValue_do(var$6, $var3, $var4, $var5, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$17 = $tmp;
        if (var$19 - var$18[var$17] < 0.0)
            return nms_Vec3Pool_getVecFromPool($this.$theWorld3.$vecPool, $var3, $var4, $var5);
        d: {
            while (true) {
                $var2 = $var2 + 1 | 0;
                if ($var2 >= 10)
                    break;
                var$6 = $this.$theCreature;
                var$7 = var$6.$posX;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    $var3 = $var4 % 20 | 0;
                    if ((($var4 - $var3 | 0) + var$4 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + $var3 - 10.0;
                $var3 = var$7 | 0;
                if (var$7 < $var3)
                    $var3 = $var3 - 1 | 0;
                var$7 = var$6.$boundingBox0.$minY0;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                $var4 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    var$11 = $var4 % 6 | 0;
                    if ((($var4 - var$11 | 0) + var$5 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    $var4 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + var$11 - 3.0;
                $var4 = var$7 | 0;
                if (var$7 < $var4)
                    $var4 = $var4 - 1 | 0;
                var$7 = var$6.$posZ;
                var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var1.$seed = var$8;
                var$11 = Long_lo(Long_shru(var$8, var$3));
                while (true) {
                    var$12 = var$11 % 20 | 0;
                    if (((var$11 - var$12 | 0) + var$4 | 0) >= 0)
                        break;
                    var$8 = Long_and(Long_add(Long_mul($var1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var1.$seed = var$8;
                    var$11 = Long_lo(Long_shru(var$8, var$3));
                }
                var$7 = var$7 + var$12 - 10.0;
                $var5 = var$7 | 0;
                if (var$7 < $var5)
                    $var5 = $var5 - 1 | 0;
                var$6 = $this.$theWorld3;
                var$11 = $var3 >> 4;
                var$14 = $var5 >> 4;
                var$6 = var$6.$chunkProvider;
                var$15 = var$6.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt(var$11), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$14), Long_create(4294967295, 0)), 32));
                var$17 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                var$17 = var$17 ^ (var$17 >>> 20 | 0) ^ (var$17 >>> 12 | 0);
                var$17 = var$17 ^ (var$17 >>> 7 | 0) ^ (var$17 >>> 4 | 0);
                var$18 = var$15.$hashArray.data;
                var$15 = var$18[var$17 & (var$18.length - 1 | 0)];
                e: {
                    while (var$15 !== null) {
                        if (Long_eq(var$15.$key1, var$16)) {
                            var$15 = var$15.$value4;
                            break e;
                        }
                        var$15 = var$15.$nextEntry;
                    }
                    var$15 = null;
                }
                var$15 = var$15;
                if (var$15 === null) {
                    if (var$6.$worldObj0.$findingSpawnPoint)
                        break d;
                    if (var$6.$loadChunkOnProvideRequest)
                        break d;
                    var$15 = var$6.$defaultEmptyChunk;
                }
                if (var$15.$canBlockSeeTheSky($var3 & 15, $var4, $var5 & 15))
                    continue;
                else {
                    var$6 = $this.$theCreature;
                    var$19 = 0.5;
                    var$6 = var$6.$worldObj;
                    var$18 = var$6.$provider.$lightBrightnessTable.data;
                    var$17 = 1;
                    continue main;
                }
            }
            return null;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, var$3, var$4, var$5, var$6, var$7, var$8, $var4, $var3, var$11, var$12, $var5, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
};
function nms_EntityAIControlledByPlayer() {
    let a = this; nms_EntityAIBase.call(a);
    a.$thisEntity = null;
    a.$maxSpeed = 0.0;
    a.$currentSpeed = 0.0;
    a.$speedBoosted = 0;
    a.$speedBoostTime = 0;
    a.$maxSpeedBoostTime = 0;
}
let nms_EntityAIControlledByPlayer_startExecuting = $this => {
    $this.$currentSpeed = 0.0;
},
nms_EntityAIControlledByPlayer_resetTask = $this => {
    $this.$speedBoosted = 0;
    $this.$currentSpeed = 0.0;
},
nms_EntityAIControlledByPlayer_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    a: {
        var$1 = $this.$thisEntity;
        if (!var$1.$isDead) {
            var$1 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    b: {
        c: {
            if (var$6) {
                var$1 = $this.$thisEntity.$riddenByEntity;
                if (var$1 !== null && var$1 instanceof nms_EntityPlayer) {
                    if ($this.$speedBoosted)
                        break c;
                    var$1 = var$1.$inventory0;
                    var$7 = var$1.$currentItem;
                    var$1 = var$7 < 9 && var$7 >= 0 ? var$1.$mainInventory.data[var$7] : null;
                    d: {
                        if (var$1 !== null) {
                            var$6 = var$1.$itemID;
                            nms_Item_$callClinit();
                            if (var$6 == nms_Item_carrotOnAStick.$itemID0) {
                                var$6 = 1;
                                break d;
                            }
                        }
                        var$6 = 0;
                    }
                    if (var$6)
                        break c;
                }
            }
            var$6 = 0;
            break b;
        }
        var$6 = 1;
    }
    return var$6;
},
nms_EntityAIControlledByPlayer_updateTask = $this => {
    let var$1, $var1, $var14, $var15, $var16, $var3, var$7, $var4, $var5, $var6, $var7, $var20, $var21, $var9, $var8, $var25, $var18, $var23, var$19, $var10, $var11, $var13, $var17, $var19, $var22, var$26, var$27, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var22 = $thread.pop();$var19 = $thread.pop();$var17 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$19 = $thread.pop();$var23 = $thread.pop();$var18 = $thread.pop();$var25 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();$var21 = $thread.pop();$var20 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();$var3 =
        $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$thisEntity;
        $var1 = var$1.$riddenByEntity;
        $var14 = $var1.$rotationYaw;
        $var15 = var$1.$rotationYaw;
        $var16 = ($var14 - $var15) % 360.0;
        if ($var16 >= 180.0)
            $var16 = $var16 - 360.0;
        if ($var16 < (-180.0))
            $var16 = $var16 + 360.0;
        $var3 = $var16 * 0.5;
        if ($var3 > 5.0)
            $var3 = 5.0;
        if ($var3 < (-5.0))
            $var3 = (-5.0);
        $var14 = ($var15 + $var3) % 360.0;
        if ($var14 >= 180.0)
            $var14 = $var14 - 360.0;
        if ($var14 < (-180.0))
            $var14 = $var14 + 360.0;
        var$1.$rotationYaw = $var14;
        $var14 = $this.$currentSpeed;
        $var15 = $this.$maxSpeed;
        if ($var14 < $var15)
            $this.$currentSpeed = $var14 + ($var15 - $var14) * 0.009999999776482582;
        if ($this.$currentSpeed > $var15)
            $this.$currentSpeed = $var15;
        var$7 = var$1.$posX;
        $var4 = var$7 | 0;
        if (var$7 < $var4)
            $var4 = $var4 - 1 | 0;
        var$7 = var$1.$posY;
        $var5 = var$7 | 0;
        if (var$7 < $var5)
            $var5 = $var5 - 1 | 0;
        var$7 = var$1.$posZ;
        $var6 = var$7 | 0;
        if (var$7 < $var6)
            $var6 = $var6 - 1 | 0;
        $var7 = $this.$currentSpeed;
        if ($this.$speedBoosted) {
            $var20 = $this.$speedBoostTime;
            $var21 = $var20 + 1 | 0;
            $this.$speedBoostTime = $var21;
            $var9 = $this.$maxSpeedBoostTime;
            if ($var20 > $var9)
                $this.$speedBoosted = 0;
            $var14 = $var7 * 1.149999976158142;
            $var15 = $var21 / $var9 * 3.1415927410125732;
            $var7 = $var7 + $var14 * nms_MathHelper_SIN_TABLE.data[($var15 * 10430.3779296875 | 0) & 65535];
        }
        $var8 = 0.9100000262260437;
        if (var$1.$onGround) {
            $var8 = 0.546000063419342;
            $var25 = var$1.$worldObj;
            $var15 = $var4;
            $var9 = $var15 | 0;
            if ($var15 < $var9)
                $var9 = $var9 - 1 | 0;
            $var15 = $var5;
            $var20 = $var15 | 0;
            if ($var15 < $var20)
                $var20 = $var20 - 1 | 0;
            $var18 = $var20 - 1 | 0;
            $var15 = $var6;
            $var20 = $var15 | 0;
            if ($var15 < $var20)
                $var20 = $var20 - 1 | 0;
            $ptr = 1;
            continue main;
        }
        $var23 = 0.16277135908603668 / ($var8 * $var8 * $var8);
        $var15 = var$1.$rotationYaw * 3.1415927410125732 / 180.0;
        var$19 = nms_MathHelper_SIN_TABLE.data;
        $var15 = $var15 * 10430.3779296875;
        $var10 = var$19[($var15 | 0) & 65535];
        $var11 = var$19[($var15 + 16384.0 | 0) & 65535];
        $var14 = $var7 * var$1.$landMovementFactor * $var23 / jl_Math_maxImpl($var7, 1.0);
        $var15 =  -($var14 * $var10);
        $var16 = $var14 * $var11;
        $var9 = $rt_compare($var15, 0.0);
        $var13 = $var9 < 0 ?  -$var15 : $var15;
        $var21 = $rt_compare($var16, 0.0);
        if ($var13 <= ($var21 < 0 ?  -$var16 : $var16)) {
            $var15 = 0.0;
            if ($var21 < 0)
                $var16 = $var16 - $this.$thisEntity.$width / 2.0;
            if ($var16 > 0.0)
                $var16 = $var16 + $this.$thisEntity.$width / 2.0;
        } else {
            if ($var9 < 0)
                $var15 = $var15 - $this.$thisEntity.$width / 2.0;
            if ($var15 > 0.0)
                $var15 = $var15 + $this.$thisEntity.$width / 2.0;
            $var16 = 0.0;
        }
        $var25 = $this.$thisEntity;
        var$7 = $var25.$posX + $var15;
        $var17 = var$7 | 0;
        if (var$7 < $var17)
            $var17 = $var17 - 1 | 0;
        var$7 = $var25.$posZ + $var16;
        $var18 = var$7 | 0;
        if (var$7 < $var18)
            $var18 = $var18 - 1 | 0;
        $var19 = new nms_PathPoint;
        $var14 = $var25.$width + 1.0;
        $var21 = $var14 | 0;
        $var22 = $rt_compare($var14, $var21);
        var$26 = $var22 >= 0 ? $var21 : $var21 - 1 | 0;
        $var14 = $var25.$height0 + $var1.$height0 + 1.0;
        $var9 = $var14 | 0;
        if ($var14 < $var9)
            $var9 = $var9 - 1 | 0;
        if ($var22 < 0)
            $var21 = $var21 - 1 | 0;
        $var19.$index6 = (-1);
        $var19.$xCoord1 = var$26;
        $var19.$yCoord1 = $var9;
        $var19.$zCoord1 = $var21;
        $var19.$hash0 = nms_PathPoint_makeHash(var$26, $var9, $var21);
        if ($var4 == $var17 && $var6 == $var18) {
            if (!$var1.$capabilities.$isCreativeMode && $this.$currentSpeed >= $this.$maxSpeed * 0.5) {
                var$1 = $this.$thisEntity.$rand;
                var$27 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$27;
                if (Long_lo(Long_shru(var$27, 24)) / 1.6777216E7 < 0.006000000052154064 && !$this.$speedBoosted) {
                    var$1 = $var1.$inventory0;
                    $var21 = var$1.$currentItem;
                    var$1 = $var21 < 9 && $var21 >= 0 ? var$1.$mainInventory.data[$var21] : null;
                    if (var$1 !== null) {
                        $var20 = var$1.$itemID;
                        nms_Item_$callClinit();
                        if ($var20 == nms_Item_carrotOnAStick.$itemID0) {
                            $var20 = 1;
                            $ptr = 8;
                            continue main;
                        }
                    }
                }
            }
            var$1 = $this.$thisEntity;
            $var14 = 0.0;
            $ptr = 4;
            continue main;
        }
        $var25 = $this.$thisEntity.$worldObj;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId($var25, $var9, $var18, $var20);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9 > 0) {
            nms_Block_$callClinit();
            $var8 = nms_Block_blocksList.data[$var9].$slipperiness * 0.9100000262260437;
        }
        $var23 = 0.16277135908603668 / ($var8 * $var8 * $var8);
        $var15 = var$1.$rotationYaw * 3.1415927410125732 / 180.0;
        var$19 = nms_MathHelper_SIN_TABLE.data;
        $var15 = $var15 * 10430.3779296875;
        $var10 = var$19[($var15 | 0) & 65535];
        $var11 = var$19[($var15 + 16384.0 | 0) & 65535];
        $var14 = $var7 * var$1.$landMovementFactor * $var23 / jl_Math_maxImpl($var7, 1.0);
        $var15 =  -($var14 * $var10);
        $var16 = $var14 * $var11;
        $var9 = $rt_compare($var15, 0.0);
        $var13 = $var9 < 0 ?  -$var15 : $var15;
        $var21 = $rt_compare($var16, 0.0);
        if ($var13 <= ($var21 < 0 ?  -$var16 : $var16)) {
            $var15 = 0.0;
            if ($var21 < 0)
                $var16 = $var16 - $this.$thisEntity.$width / 2.0;
            if ($var16 > 0.0)
                $var16 = $var16 + $this.$thisEntity.$width / 2.0;
        } else {
            if ($var9 < 0)
                $var15 = $var15 - $this.$thisEntity.$width / 2.0;
            if ($var15 > 0.0)
                $var15 = $var15 + $this.$thisEntity.$width / 2.0;
            $var16 = 0.0;
        }
        $var25 = $this.$thisEntity;
        var$7 = $var25.$posX + $var15;
        $var17 = var$7 | 0;
        if (var$7 < $var17)
            $var17 = $var17 - 1 | 0;
        var$7 = $var25.$posZ + $var16;
        $var18 = var$7 | 0;
        if (var$7 < $var18)
            $var18 = $var18 - 1 | 0;
        $var19 = new nms_PathPoint;
        $var14 = $var25.$width + 1.0;
        $var21 = $var14 | 0;
        $var22 = $rt_compare($var14, $var21);
        var$26 = $var22 >= 0 ? $var21 : $var21 - 1 | 0;
        $var14 = $var25.$height0 + $var1.$height0 + 1.0;
        $var9 = $var14 | 0;
        if ($var14 < $var9)
            $var9 = $var9 - 1 | 0;
        if ($var22 < 0)
            $var21 = $var21 - 1 | 0;
        $var19.$index6 = (-1);
        $var19.$xCoord1 = var$26;
        $var19.$yCoord1 = $var9;
        $var19.$zCoord1 = $var21;
        $var19.$hash0 = nms_PathPoint_makeHash(var$26, $var9, $var21);
        if ($var4 == $var17 && $var6 == $var18) {
            if (!$var1.$capabilities.$isCreativeMode && $this.$currentSpeed >= $this.$maxSpeed * 0.5) {
                var$1 = $this.$thisEntity.$rand;
                var$27 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$27;
                if (Long_lo(Long_shru(var$27, 24)) / 1.6777216E7 < 0.006000000052154064 && !$this.$speedBoosted) {
                    var$1 = $var1.$inventory0;
                    $var21 = var$1.$currentItem;
                    var$1 = $var21 < 9 && $var21 >= 0 ? var$1.$mainInventory.data[$var21] : null;
                    if (var$1 !== null) {
                        $var20 = var$1.$itemID;
                        nms_Item_$callClinit();
                        if ($var20 == nms_Item_carrotOnAStick.$itemID0) {
                            $var20 = 1;
                            $ptr = 8;
                            continue main;
                        }
                    }
                }
            }
            var$1 = $this.$thisEntity;
            $var14 = 0.0;
            $ptr = 4;
            continue main;
        }
        $var25 = $this.$thisEntity.$worldObj;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var25, $var4, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        $var25 = $this.$thisEntity.$worldObj;
        $var21 = $var5 - 1 | 0;
        $ptr = 3;
    case 3:
        a: {
            b: {
                $tmp = nms_World_getBlockId($var25, $var4, $var21, $var6);
                if ($rt_suspending()) {
                    break main;
                }
                $var21 = $tmp;
                if (!nms_EntityAIControlledByPlayer_func_98216_b($this, $var20)) {
                    nms_Block_$callClinit();
                    if (nms_Block_blocksList.data[$var20] !== null)
                        break b;
                    if (!nms_EntityAIControlledByPlayer_func_98216_b($this, $var21))
                        break b;
                }
                $var22 = 1;
                break a;
            }
            $var22 = 0;
        }
        if (!$var22) {
            $var25 = $this.$thisEntity;
            $var9 = 0;
            $var20 = 0;
            $var21 = 1;
            $ptr = 5;
            continue main;
        }
        if (!$var1.$capabilities.$isCreativeMode && $this.$currentSpeed >= $this.$maxSpeed * 0.5) {
            var$1 = $this.$thisEntity.$rand;
            var$27 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$27;
            if (Long_lo(Long_shru(var$27, 24)) / 1.6777216E7 < 0.006000000052154064 && !$this.$speedBoosted) {
                var$1 = $var1.$inventory0;
                $var21 = var$1.$currentItem;
                var$1 = $var21 < 9 && $var21 >= 0 ? var$1.$mainInventory.data[$var21] : null;
                if (var$1 !== null) {
                    $var20 = var$1.$itemID;
                    nms_Item_$callClinit();
                    if ($var20 == nms_Item_carrotOnAStick.$itemID0) {
                        $var20 = 1;
                        $ptr = 8;
                        continue main;
                    }
                }
            }
        }
        var$1 = $this.$thisEntity;
        $var14 = 0.0;
        $ptr = 4;
    case 4:
        nms_EntityLivingBase_moveEntityWithHeading(var$1, $var14, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 5:
        $tmp = nms_PathFinder_func_82565_a($var25, $var17, $var5, $var18, $var19, $var9, $var20, $var21);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        if (!$var20) {
            $var25 = $this.$thisEntity;
            $var20 = $var5 + 1 | 0;
            $var21 = 0;
            $var9 = 0;
            $var5 = 1;
            $ptr = 6;
            continue main;
        }
        if (!$var1.$capabilities.$isCreativeMode && $this.$currentSpeed >= $this.$maxSpeed * 0.5) {
            var$1 = $this.$thisEntity.$rand;
            var$27 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$27;
            if (Long_lo(Long_shru(var$27, 24)) / 1.6777216E7 < 0.006000000052154064 && !$this.$speedBoosted) {
                var$1 = $var1.$inventory0;
                $var21 = var$1.$currentItem;
                var$1 = $var21 < 9 && $var21 >= 0 ? var$1.$mainInventory.data[$var21] : null;
                if (var$1 !== null) {
                    $var20 = var$1.$itemID;
                    nms_Item_$callClinit();
                    if ($var20 == nms_Item_carrotOnAStick.$itemID0) {
                        $var20 = 1;
                        $ptr = 8;
                        continue main;
                    }
                }
            }
        }
        var$1 = $this.$thisEntity;
        $var14 = 0.0;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = nms_PathFinder_func_82565_a($var25, $var4, $var20, $var6, $var19, $var21, $var9, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        if ($var21 == 1) {
            $var25 = $this.$thisEntity;
            $var21 = 0;
            $var9 = 0;
            $var6 = 1;
            $ptr = 7;
            continue main;
        }
        if (!$var1.$capabilities.$isCreativeMode && $this.$currentSpeed >= $this.$maxSpeed * 0.5) {
            var$1 = $this.$thisEntity.$rand;
            var$27 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$27;
            if (Long_lo(Long_shru(var$27, 24)) / 1.6777216E7 < 0.006000000052154064 && !$this.$speedBoosted) {
                var$1 = $var1.$inventory0;
                $var21 = var$1.$currentItem;
                var$1 = $var21 < 9 && $var21 >= 0 ? var$1.$mainInventory.data[$var21] : null;
                if (var$1 !== null) {
                    $var20 = var$1.$itemID;
                    nms_Item_$callClinit();
                    if ($var20 == nms_Item_carrotOnAStick.$itemID0) {
                        $var20 = 1;
                        $ptr = 8;
                        continue main;
                    }
                }
            }
        }
        var$1 = $this.$thisEntity;
        $var14 = 0.0;
        $ptr = 4;
        continue main;
    case 7:
        $tmp = nms_PathFinder_func_82565_a($var25, $var17, $var20, $var18, $var19, $var21, $var9, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var20 = $tmp;
        if ($var20 == 1)
            var$1.$jumpHelper.$isJumping0 = 1;
        if (!$var1.$capabilities.$isCreativeMode && $this.$currentSpeed >= $this.$maxSpeed * 0.5) {
            var$1 = $this.$thisEntity.$rand;
            var$27 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$27;
            if (Long_lo(Long_shru(var$27, 24)) / 1.6777216E7 < 0.006000000052154064 && !$this.$speedBoosted) {
                var$1 = $var1.$inventory0;
                $var21 = var$1.$currentItem;
                var$1 = $var21 < 9 && $var21 >= 0 ? var$1.$mainInventory.data[$var21] : null;
                if (var$1 !== null) {
                    $var20 = var$1.$itemID;
                    nms_Item_$callClinit();
                    if ($var20 == nms_Item_carrotOnAStick.$itemID0) {
                        $var20 = 1;
                        $ptr = 8;
                        continue main;
                    }
                }
            }
        }
        var$1 = $this.$thisEntity;
        $var14 = 0.0;
        $ptr = 4;
        continue main;
    case 8:
        nms_ItemStack_damageItem(var$1, $var20, $var1);
        if ($rt_suspending()) {
            break main;
        }
        if (!var$1.$stackSize) {
            $var25 = new nms_ItemStack;
            $var25.$itemID = nms_Item_fishingRod.$itemID0;
            $var25.$stackSize = 1;
            $var25.$itemDamage = 0;
            $var25.$stackTagCompound = var$1.$stackTagCompound;
            var$1 = $var1.$inventory0;
            var$1.$mainInventory.data[var$1.$currentItem] = $var25;
        }
        var$1 = $this.$thisEntity;
        $var14 = 0.0;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var14, $var15, $var16, $var3, var$7, $var4, $var5, $var6, $var7, $var20, $var21, $var9, $var8, $var25, $var18, $var23, var$19, $var10, $var11, $var13, $var17, $var19, $var22, var$26, var$27, $ptr);
},
nms_EntityAIControlledByPlayer_func_98216_b = ($this, $par1) => {
    let var$2;
    a: {
        b: {
            nms_Block_$callClinit();
            var$2 = nms_Block_blocksList.data;
            if (var$2[$par1] !== null) {
                if (var$2[$par1].$getRenderType() == 10)
                    break b;
                if (nms_Block_blocksList.data[$par1] instanceof nms_BlockHalfSlab)
                    break b;
            }
            $par1 = 0;
            break a;
        }
        $par1 = 1;
    }
    return $par1;
};
function nms_ContainerSheep() {
    nms_Container.call(this);
    this.$field_90034_a = null;
}
function nms_EntityAIEatGrass() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntity7 = null;
    a.$theWorld0 = null;
    a.$eatGrassTick = 0;
}
let nms_EntityAIEatGrass_shouldExecute = $this => {
    let var$1, var$2, var$3, $var3, var$5, var$6, var$7, var$8, $var2, var$10, var$11, $var1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var1 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var2 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntity7;
        var$2 = var$1.$rand;
        var$1 = var$1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$3 = jl_Integer_integerCache.data[140];
        if (var$3 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            $var3 = var$3.$value;
            var$5 = var$1.$elementData.data;
            var$1 = var$5[$var3 & (var$5.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == $var3) {
                    var$6 = var$1.$key;
                    if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        var$7 = !(var$1.$watchedObject.$value >= 0 ? 0 : 1) ? 1000 : 50;
        var$8 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$8;
        $var2 = Long_lo(Long_shru(var$8, 17));
        var$10 = var$7 - 1 | 0;
        if (!(var$7 & var$10))
            $var3 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$7), Long_fromInt($var2)), 31));
        else
            while (true) {
                $var3 = $var2 % var$7 | 0;
                if ((($var2 - $var3 | 0) + var$10 | 0) >= 0)
                    break;
                var$8 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$8;
                $var2 = Long_lo(Long_shru(var$8, 17));
            }
        if ($var3)
            return 0;
        var$1 = $this.$theEntity7;
        var$11 = var$1.$posX;
        $var1 = var$11 | 0;
        if (var$11 < $var1)
            $var1 = $var1 - 1 | 0;
        var$11 = var$1.$posY;
        $var2 = var$11 | 0;
        if (var$11 < $var2)
            $var2 = $var2 - 1 | 0;
        var$11 = var$1.$posZ;
        $var3 = var$11 | 0;
        if (var$11 < $var3)
            $var3 = $var3 - 1 | 0;
        var$1 = $this.$theWorld0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$1, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        if (var$7 == nms_Block_tallGrass.$blockID) {
            var$1 = $this.$theWorld0;
            $ptr = 3;
            continue main;
        }
        var$1 = $this.$theWorld0;
        var$7 = $var2 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$1, $var1, var$7, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7 != nms_Block_grass.$blockID ? 0 : 1;
    case 3:
        $tmp = nms_World_getBlockMetadata(var$1, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (var$7 == 1)
            return 1;
        var$1 = $this.$theWorld0;
        var$7 = $var2 - 1 | 0;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var3, var$5, var$6, var$7, var$8, $var2, var$10, var$11, $var1, $ptr);
},
nms_EntityAIEatGrass_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$eatGrassTick = 40;
        var$1 = $this.$theWorld0;
        var$2 = $this.$theEntity7;
        var$3 = new nms_Packet38EntityStatus;
        var$4 = var$2.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$3.$entityId0 = var$4;
        var$3.$entityStatus = 10;
        var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
        var$4 = var$2.$entityId;
        var$5 = var$4 ^ (var$4 >>> 20 | 0) ^ (var$4 >>> 12 | 0);
        var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
        var$6 = var$1.$slots.data;
        var$1 = var$6[var$5 & (var$6.length - 1 | 0)];
        a: {
            while (var$1 !== null) {
                if (var$1.$hashEntry == var$4) {
                    var$1 = var$1.$valueEntry;
                    break a;
                }
                var$1 = var$1.$nextEntry0;
            }
            var$1 = null;
        }
        var$1 = var$1;
        if (var$1 !== null) {
            var$2 = var$1.$trackingPlayers.$backingMap;
            if (var$2.$cachedKeySet === null) {
                var$7 = new ju_HashMap$1;
                var$7.$this$0 = var$2;
                ju_AbstractCollection__init_(var$7);
                var$2.$cachedKeySet = var$7;
            }
            var$8 = var$2.$cachedKeySet.$iterator();
            var$4 = var$3 instanceof nms_Packet3Chat;
            var$7 = var$3;
            while (var$8.$hasNext()) {
                b: {
                    var$2 = (var$8.$next()).$playerNetServerHandler;
                    if (var$4) {
                        var$9 = var$2.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break b;
                        if (var$9 == 1 && !var$7.$isServer)
                            break b;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$10 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$10);
                        jl_System_errCache = var$10;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
            }
            var$1 = var$1.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                c: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$4) {
                        var$4 = var$1.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break c;
                        if (var$4 == 1 && !var$7.$isServer)
                            break c;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                }
        }
        $this.$theEntity7.$navigator.$currentPath = null;
        return;
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$10);
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$2, var$10);
        }
        d: while (true) {
            while (true) {
                if (!var$8.$hasNext())
                    break d;
                var$2 = (var$8.$next()).$playerNetServerHandler;
                if (!var$4)
                    break;
                var$9 = var$2.$playerEntity.$chatVisibility;
                if (var$9 == 2)
                    continue;
                if (var$9 != 1)
                    break;
                if (var$7.$isServer)
                    break;
            }
            try {
                var$2 = var$2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$10 = jl_System_errCache;
            if (var$10 === null) {
                var$10 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$10);
                jl_System_errCache = var$10;
            }
            var$10 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$2, var$10);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            e: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$4) {
                    var$4 = var$1.$playerEntity.$chatVisibility;
                    if (var$4 == 2)
                        break e;
                    if (var$4 == 1 && !var$7.$isServer)
                        break e;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 2;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $this.$theEntity7.$navigator.$currentPath = null;
        return;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $this.$theEntity7.$navigator.$currentPath = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
},
nms_EntityAIEatGrass_resetTask = $this => {
    $this.$eatGrassTick = 0;
},
nms_EntityAIEatGrass_continueExecuting = $this => {
    return $this.$eatGrassTick <= 0 ? 0 : 1;
},
nms_EntityAIEatGrass_updateTask = $this => {
    let var$1, var$2, var$3, $var1, $var2, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$eatGrassTick - 1 | 0;
        if (0 > var$1)
            var$1 = 0;
        $this.$eatGrassTick = var$1;
        if (var$1 != 4)
            return;
        var$2 = $this.$theEntity7;
        var$3 = var$2.$posX;
        $var1 = var$3 | 0;
        if (var$3 < $var1)
            $var1 = $var1 - 1 | 0;
        var$3 = var$2.$posY;
        $var2 = var$3 | 0;
        if (var$3 < $var2)
            $var2 = $var2 - 1 | 0;
        var$3 = var$2.$posZ;
        $var3 = var$3 | 0;
        if (var$3 < $var3)
            $var3 = $var3 - 1 | 0;
        var$2 = $this.$theWorld0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$2, $var1, $var2, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        nms_Block_$callClinit();
        if (var$7 == nms_Block_tallGrass.$blockID) {
            var$2 = $this.$theWorld0;
            var$7 = 0;
            $ptr = 3;
            continue main;
        }
        var$2 = $this.$theWorld0;
        var$1 = $var2 - 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$2, $var1, var$1, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $var2 = nms_Block_grass.$blockID;
        if (var$7 != $var2)
            return;
        var$2 = $this.$theWorld0;
        var$7 = 2001;
        var$8 = null;
        var$9 = 0;
        var$10 = $var1;
        var$11 = var$1;
        var$12 = $var3;
        var$13 = var$2.$worldAccesses;
        var$14 = $rt_compare(var$9, var$13.$size0);
        if (var$14 >= 0) {
            var$2 = $this.$theWorld0;
            $var2 = nms_Block_dirt.$blockID;
            var$9 = 0;
            var$7 = 2;
            $ptr = 4;
            continue main;
        }
        if (var$9 >= 0 && var$14 < 0) {
            var$13 = var$13.$array.data[var$9];
            var$15 = var$13.$mcServer.$serverConfigManager;
            var$3 = 64.0;
            var$16 = var$13.$theWorldServer.$provider.$dimensionId;
            var$13 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$13.$sfxID = var$7;
            var$13.$posX1 = $var1;
            var$13.$posY1 = var$1;
            var$13.$posZ1 = $var3;
            var$13.$auxData = $var2;
            var$13.$disableRelativeVolume = 0;
            $ptr = 5;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        $rt_throw(var$2);
    case 3:
        nms_World_destroyBlock(var$2, $var1, $var2, $var3, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$theEntity7;
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[144];
        if (var$17 !== null) {
            $var2 = var$17.$value;
            var$18 = var$8.$elementData.data;
            var$8 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var2) {
                    var$13 = var$8.$key;
                    if (var$17 !== var$13 && !jl_Integer_equals(var$17, var$13) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        } else {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        }
        var$1 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
        var$8 = var$2.$dataWatcher;
        var$7 = (var$1 & (-17)) << 24 >> 24;
        var$19 = jl_Byte_byteCache.data[var$7 + 128 | 0];
        var$13 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$15 = jl_Integer_integerCache.data[144];
        if (var$15 === null) {
            var$13 = var$13.$elementData.data[0];
            while (var$13 !== null && var$13.$key !== null) {
                var$13 = var$13.$next3;
            }
        } else {
            $var2 = var$15.$value;
            var$18 = var$13.$elementData.data;
            var$13 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$13 !== null) {
                if (var$13.$origKeyHash == $var2) {
                    var$17 = var$13.$key;
                    if (var$15 !== var$17 && !jl_Integer_equals(var$15, var$17) ? 0 : 1)
                        break;
                }
                var$13 = var$13.$next3;
            }
        }
        var$17 = var$13 === null ? null : var$13.$value0;
        var$13 = var$17.$watchedObject;
        if (!(var$13 instanceof jl_Byte && var$13.$value1 == var$19.$value1 ? 1 : 0)) {
            var$17.$watchedObject = var$19;
            var$17.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[140];
        if (var$17 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            $var2 = jl_Integer_hashCode(var$17.$value);
            var$18 = var$8.$elementData.data;
            var$8 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$8 !== null && !(var$8.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$17, var$8.$key))) {
                var$8 = var$8.$next3;
            }
        }
        var$8 = var$8 === null ? null : var$8.$value0;
        if (!(var$8.$watchedObject.$value >= 0 ? 0 : 1))
            return;
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[140];
        if (var$17 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            $var2 = jl_Integer_hashCode(var$17.$value);
            var$18 = var$8.$elementData.data;
            var$8 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$8 !== null && !(var$8.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$17, var$8.$key))) {
                var$8 = var$8.$next3;
            }
        }
        var$8 = var$8 === null ? null : var$8.$value0;
        var$7 = var$8.$watchedObject.$value + 1200 | 0;
        if (var$7 > 0)
            var$7 = 0;
        var$8 = var$2.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$13 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$13 = new jl_Integer;
            var$13.$value = var$7;
        }
        var$17 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$19 = jl_Integer_integerCache.data[140];
        if (var$19 === null) {
            var$17 = var$17.$elementData.data[0];
            while (var$17 !== null && var$17.$key !== null) {
                var$17 = var$17.$next3;
            }
        } else {
            $var2 = jl_Integer_hashCode(var$19.$value);
            var$18 = var$17.$elementData.data;
            var$17 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$17 !== null && !(var$17.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$19, var$17.$key))) {
                var$17 = var$17.$next3;
            }
        }
        var$15 = var$17 === null ? null : var$17.$value0;
        var$17 = var$15.$watchedObject;
        if (!(var$13 === var$17 ? 1 : var$17 instanceof jl_Integer && var$17.$value == var$13.$value ? 1 : 0)) {
            var$15.$watchedObject = var$13;
            var$15.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = ju_HashMap_entryByKey(var$8, jl_Integer_integerCache.data[140]);
        var$8 = var$8 === null ? null : var$8.$value0;
        var$20 = !(var$8.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$21 = var$2.$field_98056_d * var$20;
        var$20 = var$2.$field_98057_e * var$20;
        $ptr = 6;
        continue main;
    case 4:
        nms_World_setBlock(var$2, $var1, var$1, $var3, $var2, var$9, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $this.$theEntity7;
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[144];
        if (var$17 !== null) {
            $var2 = var$17.$value;
            var$18 = var$8.$elementData.data;
            var$8 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == $var2) {
                    var$13 = var$8.$key;
                    if (var$17 !== var$13 && !jl_Integer_equals(var$17, var$13) ? 0 : 1)
                        break;
                }
                var$8 = var$8.$next3;
            }
        } else {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        }
        var$1 = (var$8 === null ? null : var$8.$value0).$watchedObject.$value1;
        var$8 = var$2.$dataWatcher;
        var$7 = (var$1 & (-17)) << 24 >> 24;
        var$19 = jl_Byte_byteCache.data[var$7 + 128 | 0];
        var$13 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$15 = jl_Integer_integerCache.data[144];
        if (var$15 === null) {
            var$13 = var$13.$elementData.data[0];
            while (var$13 !== null && var$13.$key !== null) {
                var$13 = var$13.$next3;
            }
        } else {
            $var2 = var$15.$value;
            var$18 = var$13.$elementData.data;
            var$13 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$13 !== null) {
                if (var$13.$origKeyHash == $var2) {
                    var$17 = var$13.$key;
                    if (var$15 !== var$17 && !jl_Integer_equals(var$15, var$17) ? 0 : 1)
                        break;
                }
                var$13 = var$13.$next3;
            }
        }
        var$17 = var$13 === null ? null : var$13.$value0;
        var$13 = var$17.$watchedObject;
        if (!(var$13 instanceof jl_Byte && var$13.$value1 == var$19.$value1 ? 1 : 0)) {
            var$17.$watchedObject = var$19;
            var$17.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[140];
        if (var$17 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            $var2 = jl_Integer_hashCode(var$17.$value);
            var$18 = var$8.$elementData.data;
            var$8 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$8 !== null && !(var$8.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$17, var$8.$key))) {
                var$8 = var$8.$next3;
            }
        }
        var$8 = var$8 === null ? null : var$8.$value0;
        if (!(var$8.$watchedObject.$value >= 0 ? 0 : 1))
            return;
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$17 = jl_Integer_integerCache.data[140];
        if (var$17 === null) {
            var$8 = var$8.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            $var2 = jl_Integer_hashCode(var$17.$value);
            var$18 = var$8.$elementData.data;
            var$8 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$8 !== null && !(var$8.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$17, var$8.$key))) {
                var$8 = var$8.$next3;
            }
        }
        var$8 = var$8 === null ? null : var$8.$value0;
        var$7 = var$8.$watchedObject.$value + 1200 | 0;
        if (var$7 > 0)
            var$7 = 0;
        var$8 = var$2.$dataWatcher;
        if (var$7 >= (-128) && var$7 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$13 = jl_Integer_integerCache.data[var$7 + 128 | 0];
        } else {
            var$13 = new jl_Integer;
            var$13.$value = var$7;
        }
        var$17 = var$8.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$19 = jl_Integer_integerCache.data[140];
        if (var$19 === null) {
            var$17 = var$17.$elementData.data[0];
            while (var$17 !== null && var$17.$key !== null) {
                var$17 = var$17.$next3;
            }
        } else {
            $var2 = jl_Integer_hashCode(var$19.$value);
            var$18 = var$17.$elementData.data;
            var$17 = var$18[$var2 & (var$18.length - 1 | 0)];
            while (var$17 !== null && !(var$17.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$19, var$17.$key))) {
                var$17 = var$17.$next3;
            }
        }
        var$15 = var$17 === null ? null : var$17.$value0;
        var$17 = var$15.$watchedObject;
        if (!(var$13 === var$17 ? 1 : var$17 instanceof jl_Integer && var$17.$value == var$13.$value ? 1 : 0)) {
            var$15.$watchedObject = var$13;
            var$15.$watched = 1;
            var$8.$objectChanged = 1;
        }
        var$8 = var$2.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = ju_HashMap_entryByKey(var$8, jl_Integer_integerCache.data[140]);
        var$8 = var$8 === null ? null : var$8.$value0;
        var$20 = !(var$8.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$21 = var$2.$field_98056_d * var$20;
        var$20 = var$2.$field_98057_e * var$20;
        $ptr = 7;
        continue main;
    case 5:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$15, var$8, var$10, var$11, var$12, var$3, var$16, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = var$9 + 1 | 0;
        var$13 = var$2.$worldAccesses;
        var$14 = $rt_compare(var$9, var$13.$size0);
        if (var$14 >= 0) {
            var$2 = $this.$theWorld0;
            $var2 = nms_Block_dirt.$blockID;
            var$9 = 0;
            var$7 = 2;
            $ptr = 4;
            continue main;
        }
        if (var$9 >= 0 && var$14 < 0) {
            var$13 = var$13.$array.data[var$9];
            var$15 = var$13.$mcServer.$serverConfigManager;
            var$3 = 64.0;
            var$16 = var$13.$theWorldServer.$provider.$dimensionId;
            var$13 = new nms_Packet61DoorChange;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$13.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$13.$sfxID = var$7;
            var$13.$posX1 = $var1;
            var$13.$posY1 = var$1;
            var$13.$posZ1 = $var3;
            var$13.$auxData = $var2;
            var$13.$disableRelativeVolume = 0;
            continue main;
        }
        var$2 = new jl_IndexOutOfBoundsException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$2);
        $rt_throw(var$2);
    case 6:
        nms_Entity_setSize(var$2, var$21, var$20);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 7:
        nms_Entity_setSize(var$2, var$21, var$20);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $var1, $var2, $var3, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, $ptr);
};
function nms_EntityDragonPart() {
    let a = this; nms_Entity.call(a);
    a.$entityDragonObj = null;
    a.$name10 = null;
}
let nms_EntityDragonPart_entityInit = $this => {
    return;
},
nms_EntityDragonPart_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityDragonPart_canBeCollidedWith = $this => {
    return 1;
},
nms_EntityDragonPart_attackEntityFrom = ($this, $par1DamageSource, $par2) => {
    let var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1DamageSource = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$invulnerable)
            return 0;
        var$3 = $this.$entityDragonObj;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityDragon_attackEntityFromPart(var$3, $this, $par1DamageSource, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        return var$4;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DamageSource, $par2, var$3, var$4, $ptr);
},
nms_EntityDragonPart_isEntityEqual = ($this, $par1Entity) => {
    return $this !== $par1Entity && $this.$entityDragonObj !== $par1Entity ? 0 : 1;
};
function nms_EntityAICreeperSwell() {
    let a = this; nms_EntityAIBase.call(a);
    a.$swellingCreeper = null;
    a.$creeperAttackTarget = null;
}
let nms_EntityAICreeperSwell_shouldExecute = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$swellingCreeper;
    $var1 = var$1.$attackTarget;
    var$1 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$1.$elementData.data;
        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$4) {
                var$6 = var$1.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    a: {
        b: {
            if (var$1.$watchedObject.$value1 <= 0) {
                if ($var1 === null)
                    break b;
                var$1 = $this.$swellingCreeper;
                var$7 = var$1.$posX - $var1.$posX;
                var$8 = var$1.$posY - $var1.$posY;
                var$9 = var$1.$posZ - $var1.$posZ;
                if (var$7 * var$7 + var$8 * var$8 + var$9 * var$9 >= 9.0)
                    break b;
            }
            var$10 = 1;
            break a;
        }
        var$10 = 0;
    }
    return var$10;
},
nms_EntityAICreeperSwell_startExecuting = $this => {
    let var$1;
    var$1 = $this.$swellingCreeper;
    var$1.$navigator.$currentPath = null;
    $this.$creeperAttackTarget = var$1.$attackTarget;
},
nms_EntityAICreeperSwell_resetTask = $this => {
    $this.$creeperAttackTarget = null;
},
nms_EntityAICreeperSwell_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$creeperAttackTarget;
        if (var$1 === null) {
            var$1 = $this.$swellingCreeper.$dataWatcher;
            var$2 = jl_Byte_byteCache.data[127];
            var$3 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[144];
            if (var$4 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        var$7 = var$3.$key;
                        if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$7 = var$3 === null ? null : var$3.$value0;
            var$3 = var$7.$watchedObject;
            if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
                var$7.$watchedObject = var$2;
                var$7.$watched = 1;
                var$1.$objectChanged = 1;
            }
        } else {
            var$3 = $this.$swellingCreeper;
            var$8 = var$3.$posX - var$1.$posX;
            var$9 = var$3.$posY - var$1.$posY;
            var$10 = var$3.$posZ - var$1.$posZ;
            if (var$8 * var$8 + var$9 * var$9 + var$10 * var$10 > 49.0) {
                var$1 = var$3.$dataWatcher;
                var$2 = jl_Byte_byteCache.data[127];
                var$3 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$4 = jl_Integer_integerCache.data[144];
                if (var$4 === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    var$5 = var$4.$value;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            var$7 = var$3.$key;
                            if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$7 = var$3 === null ? null : var$3.$value0;
                var$3 = var$7.$watchedObject;
                if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
                    var$7.$watchedObject = var$2;
                    var$7.$watched = 1;
                    var$1.$objectChanged = 1;
                }
            } else {
                var$7 = var$3.$senses;
                var$3 = var$7.$seenEntities;
                var$11 = 0;
                var$5 = var$3.$modCount;
                var$12 = var$3.$size();
                a: {
                    while (true) {
                        if (!(var$11 >= var$12 ? 0 : 1)) {
                            var$13 = 0;
                            break a;
                        }
                        if (var$5 < var$3.$modCount)
                            break;
                        var$14 = var$11 + 1 | 0;
                        var$4 = var$3.$get(var$11);
                        if (var$4 === var$1 ? 1 : var$4 !== null ? var$4.$equals(var$1) : var$1 !== null ? 0 : 1) {
                            var$13 = 1;
                            break a;
                        }
                        var$11 = var$14;
                    }
                    var$1 = new ju_ConcurrentModificationException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$1);
                    $rt_throw(var$1);
                }
                if (var$13)
                    var$13 = 1;
                else {
                    var$3 = var$7.$unseenEntities;
                    var$11 = 0;
                    var$5 = var$3.$modCount;
                    var$12 = var$3.$size();
                    b: {
                        while (true) {
                            if (!(var$11 >= var$12 ? 0 : 1)) {
                                var$13 = 0;
                                break b;
                            }
                            if (var$5 < var$3.$modCount)
                                break;
                            var$14 = var$11 + 1 | 0;
                            var$4 = var$3.$get(var$11);
                            if (var$4 === var$1 ? 1 : var$4 !== null ? var$4.$equals(var$1) : var$1 !== null ? 0 : 1) {
                                var$13 = 1;
                                break b;
                            }
                            var$11 = var$14;
                        }
                        var$1 = new ju_ConcurrentModificationException;
                        var$1.$suppressionEnabled = 1;
                        var$1.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace(var$1);
                        $rt_throw(var$1);
                    }
                    if (!var$13) {
                        var$3 = var$7.$entityObj1;
                        $ptr = 1;
                        continue main;
                    }
                    var$13 = 0;
                }
                if (var$13) {
                    var$1 = $this.$swellingCreeper.$dataWatcher;
                    var$2 = jl_Byte_byteCache.data[129];
                    var$3 = var$1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$5 = var$4.$value;
                        var$6 = var$3.$elementData.data;
                        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$5) {
                                var$7 = var$3.$key;
                                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$7 = var$3 === null ? null : var$3.$value0;
                    var$3 = var$7.$watchedObject;
                    if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
                        var$7.$watchedObject = var$2;
                        var$7.$watched = 1;
                        var$1.$objectChanged = 1;
                    }
                } else {
                    var$1 = $this.$swellingCreeper.$dataWatcher;
                    var$2 = jl_Byte_byteCache.data[127];
                    var$3 = var$1.$watchedObjects;
                    jl_Integer_ensureIntegerCache();
                    var$4 = jl_Integer_integerCache.data[144];
                    if (var$4 === null) {
                        var$3 = var$3.$elementData.data[0];
                        while (var$3 !== null && var$3.$key !== null) {
                            var$3 = var$3.$next3;
                        }
                    } else {
                        var$5 = var$4.$value;
                        var$6 = var$3.$elementData.data;
                        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                        while (var$3 !== null) {
                            if (var$3.$origKeyHash == var$5) {
                                var$7 = var$3.$key;
                                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                                    break;
                            }
                            var$3 = var$3.$next3;
                        }
                    }
                    var$7 = var$3 === null ? null : var$3.$value0;
                    var$3 = var$7.$watchedObject;
                    if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
                        var$7.$watchedObject = var$2;
                        var$7.$watched = 1;
                        var$1.$objectChanged = 1;
                    }
                }
            }
        }
        return;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$3, var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        if (!var$13) {
            var$3 = var$7.$unseenEntities;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$6 = var$3.$array.data;
            var$5 = var$3.$size0;
            var$3.$size0 = var$5 + 1 | 0;
            var$6[var$5] = var$1;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        } else {
            var$3 = var$7.$seenEntities;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$6 = var$3.$array.data;
            var$5 = var$3.$size0;
            var$3.$size0 = var$5 + 1 | 0;
            var$6[var$5] = var$1;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
        if (var$13) {
            var$1 = $this.$swellingCreeper.$dataWatcher;
            var$2 = jl_Byte_byteCache.data[129];
            var$3 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[144];
            if (var$4 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        var$7 = var$3.$key;
                        if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$7 = var$3 === null ? null : var$3.$value0;
            var$3 = var$7.$watchedObject;
            if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
                var$7.$watchedObject = var$2;
                var$7.$watched = 1;
                var$1.$objectChanged = 1;
            }
        } else {
            var$1 = $this.$swellingCreeper.$dataWatcher;
            var$2 = jl_Byte_byteCache.data[127];
            var$3 = var$1.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[144];
            if (var$4 === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                var$5 = var$4.$value;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        var$7 = var$3.$key;
                        if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            var$7 = var$3 === null ? null : var$3.$value0;
            var$3 = var$7.$watchedObject;
            if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
                var$7.$watchedObject = var$2;
                var$7.$watched = 1;
                var$1.$objectChanged = 1;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
};
function nms_EntityAIAvoidEntity() {
    let a = this; nms_EntityAIBase.call(a);
    a.$field_98218_a = null;
    a.$theEntity4 = null;
    a.$farSpeed = 0.0;
    a.$nearSpeed = 0.0;
    a.$closestLivingEntity = null;
    a.$distanceFromEntity = 0.0;
    a.$entityPathEntity0 = null;
    a.$entityPathNavigate0 = null;
    a.$targetEntityClass = null;
}
let nms_EntityAIAvoidEntity_shouldExecute = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var2 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$targetEntityClass;
        if (var$1 !== $rt_cls(nms_EntityPlayer)) {
            $var1 = $this.$theEntity4;
            var$3 = $var1.$worldObj;
            $var1 = $var1.$boundingBox0;
            var$4 = $this.$distanceFromEntity;
            var$5 = $var1.$minX0 - var$4;
            var$6 = $var1.$minY0 - 3.0;
            var$7 = $var1.$minZ0 - var$4;
            var$8 = $var1.$maxX0 + var$4;
            var$9 = $var1.$maxY + 3.0;
            var$4 = $var1.$maxZ0 + var$4;
            var$10 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            var$11 = var$10.$nextPoolIndex;
            $var1 = var$10.$listAABB;
            var$12 = $var1.$size0;
            var$13 = $rt_compare(var$11, var$12);
            if (var$13 >= 0) {
                $var2 = new nms_AxisAlignedBB;
                $var2.$minX0 = var$5;
                $var2.$minY0 = var$6;
                $var2.$minZ0 = var$7;
                $var2.$maxX0 = var$8;
                $var2.$maxY = var$9;
                $var2.$maxZ0 = var$4;
                ju_ArrayList_ensureCapacity($var1, var$12 + 1 | 0);
                var$15 = $var1.$array.data;
                var$13 = $var1.$size0;
                $var1.$size0 = var$13 + 1 | 0;
                var$15[var$13] = $var2;
                $var1.$modCount = $var1.$modCount + 1 | 0;
            } else if (var$11 >= 0 && var$13 < 0) {
                $var2 = $var1.$array.data[var$11];
                $var2.$minX0 = var$5;
                $var2.$minY0 = var$6;
                $var2.$minZ0 = var$7;
                $var2.$maxX0 = var$8;
                $var2.$maxY = var$9;
                $var2.$maxZ0 = var$4;
            } else {
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            var$10.$nextPoolIndex = var$10.$nextPoolIndex + 1 | 0;
            $var1 = $this.$field_98218_a;
            $ptr = 1;
            continue main;
        }
        $var1 = $this.$theEntity4;
        if ($var1 instanceof nms_EntityTameable) {
            $var1 = $var1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$1 = jl_Integer_integerCache.data[144];
            if (var$1 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$11 = var$1.$value;
                var$15 = $var1.$elementData.data;
                $var1 = var$15[var$11 & (var$15.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$11) {
                        var$3 = $var1.$key;
                        if (var$1 !== var$3 && !(var$1 === var$3 ? 1 : var$3 instanceof jl_Integer && var$3.$value == var$11 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            $var1 = $var1 === null ? null : $var1.$value0;
            if (!($var1.$watchedObject.$value1 & 4) ? 0 : 1)
                return 0;
        }
        $var1 = $this.$theEntity4;
        var$1 = $var1.$worldObj;
        var$9 = $this.$distanceFromEntity;
        $var1 = nms_World_getClosestPlayer(var$1, $var1.$posX, $var1.$posY, $var1.$posZ, var$9);
        $this.$closestLivingEntity = $var1;
        if ($var1 === null)
            return 0;
        $var1 = $this.$theEntity4;
        var$11 = 16;
        var$13 = 7;
        var$3 = $var1.$worldObj.$vecPool;
        var$1 = $this.$closestLivingEntity;
        var$1 = nms_Vec3Pool_getVecFromPool(var$3, var$1.$posX, var$1.$posY, var$1.$posZ);
        nms_RandomPositionGenerator_$callClinit();
        var$3 = nms_RandomPositionGenerator_staticVector;
        var$3.$xCoord = $var1.$posX - var$1.$xCoord;
        var$3.$yCoord = $var1.$posY - var$1.$yCoord;
        var$3.$zCoord = $var1.$posZ - var$1.$zCoord;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$3, var$1, $var2, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        var$13 = $var1.$size0;
        if (var$13 ? 0 : 1)
            return 0;
        if (0 >= var$13) {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            $rt_throw($var1);
        }
        $this.$closestLivingEntity = $var1.$array.data[0];
        $var1 = $this.$theEntity4;
        var$11 = 16;
        var$13 = 7;
        var$3 = $var1.$worldObj.$vecPool;
        var$1 = $this.$closestLivingEntity;
        var$1 = nms_Vec3Pool_getVecFromPool(var$3, var$1.$posX, var$1.$posY, var$1.$posZ);
        nms_RandomPositionGenerator_$callClinit();
        var$3 = nms_RandomPositionGenerator_staticVector;
        var$3.$xCoord = $var1.$posX - var$1.$xCoord;
        var$3.$yCoord = $var1.$posY - var$1.$yCoord;
        var$3.$zCoord = $var1.$posZ - var$1.$zCoord;
        $ptr = 2;
    case 2:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$11, var$13, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if ($var2 === null)
            return 0;
        $var1 = $this.$closestLivingEntity;
        var$9 = $var2.$xCoord;
        var$4 = $var2.$yCoord;
        var$16 = $var2.$zCoord;
        var$6 = $var1.$posX;
        var$5 = var$6 - var$9;
        var$7 = $var1.$posY;
        var$8 = var$7 - var$4;
        var$17 = $var1.$posZ;
        var$18 = var$17 - var$16;
        var$8 = var$5 * var$5 + var$8 * var$8 + var$18 * var$18;
        $var1 = $this.$theEntity4;
        var$5 = var$6 - $var1.$posX;
        var$6 = var$7 - $var1.$posY;
        var$7 = var$17 - $var1.$posZ;
        if (var$8 < var$5 * var$5 + var$6 * var$6 + var$7 * var$7)
            return 0;
        $var1 = $this.$entityPathNavigate0;
        var$1 = $var1.$theEntity;
        if (var$1.$onGround)
            var$11 = 1;
        else {
            if ($var1.$canSwim) {
                $ptr = 3;
                continue main;
            }
            var$11 = 0;
        }
        if (!var$11) {
            $var1 = null;
            $this.$entityPathEntity0 = $var1;
            if ($var1 === null)
                var$11 = 0;
            else {
                var$13 = $var1.$pathLength;
                $var1 = var$13 <= 0 ? null : $var1.$points.data[var$13 - 1 | 0];
                var$11 = $var1 === null ? 0 : $var1.$xCoord1 == ($var2.$xCoord | 0) && $var1.$zCoord1 == ($var2.$zCoord | 0) ? 1 : 0;
            }
            return var$11;
        }
        var$1 = $var1.$worldObj3;
        var$3 = $var1.$theEntity;
        var$13 = var$9 | 0;
        if (var$9 < var$13)
            var$13 = var$13 - 1 | 0;
        var$11 = var$4 | 0;
        var$19 = var$16 | 0;
        if (var$16 < var$19)
            var$19 = var$19 - 1 | 0;
        var$10 = $var1.$pathSearchRange;
        if (var$10.$field_111133_g) {
            var$10.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$10);
            var$10.$field_111133_g = 0;
        }
        var$20 = var$10.$field_111139_h;
        var$12 = $var1.$canPassOpenWoodenDoors;
        var$21 = $var1.$canPassClosedWoodenDoors;
        var$22 = $var1.$avoidsWater;
        var$23 = $var1.$canSwim;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11) {
            var$1 = $var1.$theEntity;
            $ptr = 4;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            $var1 = null;
            $this.$entityPathEntity0 = $var1;
            if ($var1 === null)
                var$11 = 0;
            else {
                var$13 = $var1.$pathLength;
                $var1 = var$13 <= 0 ? null : $var1.$points.data[var$13 - 1 | 0];
                var$11 = $var1 === null ? 0 : $var1.$xCoord1 == ($var2.$xCoord | 0) && $var1.$zCoord1 == ($var2.$zCoord | 0) ? 1 : 0;
            }
            return var$11;
        }
        var$1 = $var1.$worldObj3;
        var$3 = $var1.$theEntity;
        var$13 = var$9 | 0;
        if (var$9 < var$13)
            var$13 = var$13 - 1 | 0;
        var$11 = var$4 | 0;
        var$19 = var$16 | 0;
        if (var$16 < var$19)
            var$19 = var$19 - 1 | 0;
        var$10 = $var1.$pathSearchRange;
        if (var$10.$field_111133_g) {
            var$10.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$10);
            var$10.$field_111133_g = 0;
        }
        var$20 = var$10.$field_111139_h;
        var$12 = $var1.$canPassOpenWoodenDoors;
        var$21 = $var1.$canPassClosedWoodenDoors;
        var$22 = $var1.$avoidsWater;
        var$23 = $var1.$canSwim;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!((var$11 ? 1 : 0) ? 1 : 0)) {
            $var1 = null;
            $this.$entityPathEntity0 = $var1;
            if ($var1 === null)
                var$11 = 0;
            else {
                var$13 = $var1.$pathLength;
                $var1 = var$13 <= 0 ? null : $var1.$points.data[var$13 - 1 | 0];
                var$11 = $var1 === null ? 0 : $var1.$xCoord1 == ($var2.$xCoord | 0) && $var1.$zCoord1 == ($var2.$zCoord | 0) ? 1 : 0;
            }
            return var$11;
        }
        var$1 = $var1.$worldObj3;
        var$3 = $var1.$theEntity;
        var$13 = var$9 | 0;
        if (var$9 < var$13)
            var$13 = var$13 - 1 | 0;
        var$11 = var$4 | 0;
        var$19 = var$16 | 0;
        if (var$16 < var$19)
            var$19 = var$19 - 1 | 0;
        var$10 = $var1.$pathSearchRange;
        if (var$10.$field_111133_g) {
            var$10.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$10);
            var$10.$field_111133_g = 0;
        }
        var$20 = var$10.$field_111139_h;
        var$12 = $var1.$canPassOpenWoodenDoors;
        var$21 = $var1.$canPassClosedWoodenDoors;
        var$22 = $var1.$avoidsWater;
        var$23 = $var1.$canSwim;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getEntityPathToXYZ(var$1, var$3, var$13, var$11, var$19, var$20, var$12, var$21, var$22, var$23);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $this.$entityPathEntity0 = $var1;
        if ($var1 === null)
            var$11 = 0;
        else {
            var$13 = $var1.$pathLength;
            $var1 = var$13 <= 0 ? null : $var1.$points.data[var$13 - 1 | 0];
            var$11 = $var1 === null ? 0 : $var1.$xCoord1 == ($var2.$xCoord | 0) && $var1.$zCoord1 == ($var2.$zCoord | 0) ? 1 : 0;
        }
        return var$11;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_EntityAIAvoidEntity_continueExecuting = $this => {
    let var$1;
    var$1 = $this.$entityPathNavigate0.$currentPath;
    return (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
},
nms_EntityAIAvoidEntity_startExecuting = $this => {
    let var$1, var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$entityPathNavigate0;
        var$2 = $this.$entityPathEntity0;
        var$3 = $this.$farSpeed;
        $ptr = 1;
    case 1:
        nms_PathNavigate_setPath(var$1, var$2, var$3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, $ptr);
},
nms_EntityAIAvoidEntity_resetTask = $this => {
    $this.$closestLivingEntity = null;
},
nms_EntityAIAvoidEntity_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = $this.$theEntity4;
    var$2 = $this.$closestLivingEntity;
    var$3 = var$1.$posX - var$2.$posX;
    var$4 = var$1.$posY - var$2.$posY;
    var$5 = var$1.$posZ - var$2.$posZ;
    if (var$3 * var$3 + var$4 * var$4 + var$5 * var$5 >= 49.0)
        var$1.$navigator.$speed0 = $this.$farSpeed;
    else
        var$1.$navigator.$speed0 = $this.$nearSpeed;
};
function nms_EntityAILeapAtTarget() {
    let a = this; nms_EntityAIBase.call(a);
    a.$leaper = null;
    a.$leapTarget = null;
    a.$leapMotionY = 0.0;
}
let nms_EntityAILeapAtTarget_shouldExecute = $this => {
    let var$1, var$2, var$3, $var1, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$leaper;
    var$2 = var$1.$attackTarget;
    $this.$leapTarget = var$2;
    if (var$2 === null)
        return 0;
    var$3 = var$1.$posX - var$2.$posX;
    $var1 = var$1.$posY - var$2.$posY;
    var$5 = var$1.$posZ - var$2.$posZ;
    $var1 = var$3 * var$3 + $var1 * $var1 + var$5 * var$5;
    if ($var1 >= 4.0 && $var1 <= 16.0) {
        if (!var$1.$onGround)
            var$6 = 0;
        else {
            var$1 = var$1.$rand;
            var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$7;
            var$8 = Long_lo(Long_shru(var$7, 17));
            while (true) {
                var$9 = var$8 % 5 | 0;
                if (((var$8 - var$9 | 0) + 4 | 0) >= 0)
                    break;
                var$7 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$7;
                var$8 = Long_lo(Long_shru(var$7, 17));
            }
            var$6 = var$9 ? 0 : 1;
        }
    } else
        var$6 = 0;
    return var$6;
},
nms_EntityAILeapAtTarget_continueExecuting = $this => {
    return $this.$leaper.$onGround ? 0 : 1;
},
nms_EntityAILeapAtTarget_startExecuting = $this => {
    let var$1, $var1, var$3, $var3, $var5, var$6, var$7;
    var$1 = $this.$leapTarget;
    $var1 = var$1.$posX;
    var$3 = $this.$leaper;
    $var1 = $var1 - var$3.$posX;
    $var3 = var$1.$posZ - var$3.$posZ;
    $var5 = jl_Math_sqrt($var1 * $var1 + $var3 * $var3);
    var$1 = $this.$leaper;
    var$6 = var$1.$motionX;
    var$7 = $var5;
    var$1.$motionX = var$6 + $var1 / var$7 * 0.5 * 0.800000011920929 + var$6 * 0.20000000298023224;
    $var1 = var$1.$motionZ;
    var$1.$motionZ = $var1 + $var3 / var$7 * 0.5 * 0.800000011920929 + $var1 * 0.20000000298023224;
    var$1.$motionY = $this.$leapMotionY;
};
function nms_EntityAIFollowOwner() {
    let a = this; nms_EntityAIBase.call(a);
    a.$thePet = null;
    a.$theOwner = null;
    a.$theWorld1 = null;
    a.$field_75336_f = 0.0;
    a.$petPathfinder = null;
    a.$field_75343_h = 0;
    a.$maxDist = 0.0;
    a.$minDist = 0.0;
    a.$field_75344_i = 0;
}
let nms_EntityAIFollowOwner_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, $var1, var$7, var$8, var$9, var$10, var$11, var$12;
    var$1 = $this.$thePet;
    var$2 = var$1.$worldObj;
    var$1 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[145];
    if (var$3 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$1.$elementData.data;
        var$1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$4) {
                $var1 = var$1.$key;
                if (var$3 !== $var1 && !jl_Integer_equals(var$3, $var1) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    $var1 = (var$1 === null ? null : var$1.$value0).$watchedObject;
    var$4 = 0;
    a: {
        while (true) {
            var$1 = var$2.$playerEntities;
            var$7 = $rt_compare(var$4, var$1.$size0);
            if (var$7 >= 0) {
                $var1 = null;
                break a;
            }
            if (var$4 < 0)
                break;
            if (var$7 >= 0)
                break;
            var$1 = var$1.$array.data[var$4].$username;
            if ($var1 === var$1)
                var$7 = 1;
            else if (!(var$1 instanceof jl_String))
                var$7 = 0;
            else {
                var$1 = var$1;
                var$7 = $var1.$nativeString !== var$1.$nativeString ? 0 : 1;
            }
            if (var$7) {
                var$1 = var$2.$playerEntities;
                if (var$4 >= 0 && var$4 < var$1.$size0) {
                    $var1 = var$1.$array.data[var$4];
                    break a;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$1);
                $rt_throw(var$1);
            }
            var$4 = var$4 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    }
    if ($var1 === null)
        return 0;
    var$1 = $this.$thePet.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$8 = var$3.$value;
        var$5 = var$1.$elementData.data;
        var$1 = var$5[var$8 & (var$5.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$8) {
                var$2 = var$1.$key;
                if (var$3 !== var$2 && !(var$3 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$8 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)
        return 0;
    var$1 = $this.$thePet;
    var$9 = var$1.$posX - $var1.$posX;
    var$10 = var$1.$posY - $var1.$posY;
    var$11 = var$1.$posZ - $var1.$posZ;
    var$10 = var$9 * var$9 + var$10 * var$10 + var$11 * var$11;
    var$12 = $this.$minDist;
    if (var$10 < var$12 * var$12)
        return 0;
    $this.$theOwner = $var1;
    return 1;
},
nms_EntityAIFollowOwner_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$petPathfinder.$currentPath;
    var$2 = var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1;
    a: {
        if (!var$2) {
            var$1 = $this.$thePet;
            var$3 = $this.$theOwner;
            var$4 = var$1.$posX - var$3.$posX;
            var$5 = var$1.$posY - var$3.$posY;
            var$6 = var$1.$posZ - var$3.$posZ;
            var$4 = var$4 * var$4 + var$5 * var$5 + var$6 * var$6;
            var$7 = $this.$maxDist;
            if (var$4 > var$7 * var$7) {
                var$1 = var$1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[144];
                if (var$3 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$2 = var$3.$value;
                    var$8 = var$1.$elementData.data;
                    var$1 = var$8[var$2 & (var$8.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$2) {
                            var$9 = var$1.$key;
                            if (var$3 !== var$9 && !(var$3 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$2 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                var$1 = var$1 === null ? null : var$1.$value0;
                if (!(!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)) {
                    var$2 = 1;
                    break a;
                }
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EntityAIFollowOwner_startExecuting = $this => {
    let var$1;
    $this.$field_75343_h = 0;
    var$1 = $this.$thePet.$navigator;
    $this.$field_75344_i = var$1.$avoidsWater;
    var$1.$avoidsWater = 0;
},
nms_EntityAIFollowOwner_resetTask = $this => {
    $this.$theOwner = null;
    $this.$petPathfinder.$currentPath = null;
    $this.$thePet.$navigator.$avoidsWater = $this.$field_75344_i;
},
nms_EntityAIFollowOwner_updateTask = $this => {
    let var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8, var$9, $var2, var$11, var$12, var$13, var$14, var$15, var$16, $var3, $var4, var$19, $var5, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();$var5 = $thread.pop();var$19 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var2 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$thePet;
        nms_EntityLookHelper_setLookPositionWithEntity(var$1.$lookHelper, $this.$theOwner, 10.0, var$1.$getVerticalFaceSpeed());
        var$1 = $this.$thePet.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            $var1 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[$var1 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == $var1) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var1 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        $var1 = !(var$1.$watchedObject.$value1 & 1) ? 0 : 1;
        a: {
            b: {
                if (!$var1) {
                    $var1 = $this.$field_75343_h - 1 | 0;
                    $this.$field_75343_h = $var1;
                    if ($var1 <= 0) {
                        $this.$field_75343_h = 10;
                        var$1 = $this.$petPathfinder;
                        var$2 = $this.$theOwner;
                        var$6 = $this.$field_75336_f;
                        var$5 = var$1.$theEntity;
                        if (var$5.$onGround)
                            $var1 = 1;
                        else {
                            if (var$1.$canSwim) {
                                $ptr = 1;
                                continue main;
                            }
                            $var1 = 0;
                        }
                        if ($var1) {
                            var$5 = var$1.$worldObj3;
                            var$7 = var$1.$theEntity;
                            var$8 = var$1.$pathSearchRange;
                            if (var$8.$field_111133_g) {
                                var$8.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$8);
                                var$8.$field_111133_g = 0;
                            }
                            var$9 = var$8.$field_111139_h;
                            $var1 = var$1.$canPassOpenWoodenDoors;
                            $var2 = var$1.$canPassClosedWoodenDoors;
                            var$11 = var$1.$avoidsWater;
                            var$12 = var$1.$canSwim;
                            $ptr = 3;
                            continue main;
                        }
                        var$2 = null;
                        if (var$2 !== null) {
                            $ptr = 4;
                            continue main;
                        }
                        if (!0) {
                            var$1 = $this.$thePet;
                            if (!var$1.$isLeashed) {
                                var$2 = $this.$theOwner;
                                var$6 = var$1.$posX;
                                var$13 = var$2.$posX;
                                var$6 = var$6 - var$13;
                                var$14 = var$1.$posY - var$2.$posY;
                                var$15 = var$1.$posZ;
                                var$16 = var$2.$posZ;
                                var$15 = var$15 - var$16;
                                if (var$6 * var$6 + var$14 * var$14 + var$15 * var$15 >= 144.0) {
                                    $var2 = var$13 | 0;
                                    if (var$13 < $var2)
                                        $var2 = $var2 - 1 | 0;
                                    $var1 = $var2 - 2 | 0;
                                    var$11 = var$16 | 0;
                                    if (var$16 < var$11)
                                        var$11 = var$11 - 1 | 0;
                                    $var2 = var$11 - 2 | 0;
                                    var$16 = var$2.$boundingBox0.$minY0;
                                    $var3 = var$16 | 0;
                                    if (var$16 < $var3)
                                        $var3 = $var3 - 1 | 0;
                                    $var4 = 0;
                                    var$19 = $var3 - 1 | 0;
                                    var$11 = $var3 + 1 | 0;
                                    while (true) {
                                        if ($var4 > 4)
                                            break b;
                                        $var5 = 0;
                                        while ($var5 <= 4) {
                                            if ($var4 < 1)
                                                break a;
                                            if ($var5 < 1)
                                                break a;
                                            if ($var4 > 3)
                                                break a;
                                            if ($var5 > 3)
                                                break a;
                                            $var5 = $var5 + 1 | 0;
                                        }
                                        $var4 = $var4 + 1 | 0;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    case 1:
        $tmp = var$5.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if (!$var1) {
            var$5 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$5 = var$1.$worldObj3;
            var$7 = var$1.$theEntity;
            var$8 = var$1.$pathSearchRange;
            if (var$8.$field_111133_g) {
                var$8.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$8);
                var$8.$field_111133_g = 0;
            }
            var$9 = var$8.$field_111139_h;
            $var1 = var$1.$canPassOpenWoodenDoors;
            $var2 = var$1.$canPassClosedWoodenDoors;
            var$11 = var$1.$avoidsWater;
            var$12 = var$1.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$2 = null;
        if (var$2 !== null) {
            $ptr = 4;
            continue main;
        }
        c: {
            d: {
                if (!0) {
                    var$1 = $this.$thePet;
                    if (!var$1.$isLeashed) {
                        var$2 = $this.$theOwner;
                        var$6 = var$1.$posX;
                        var$13 = var$2.$posX;
                        var$6 = var$6 - var$13;
                        var$14 = var$1.$posY - var$2.$posY;
                        var$15 = var$1.$posZ;
                        var$16 = var$2.$posZ;
                        var$15 = var$15 - var$16;
                        if (var$6 * var$6 + var$14 * var$14 + var$15 * var$15 >= 144.0) {
                            $var2 = var$13 | 0;
                            if (var$13 < $var2)
                                $var2 = $var2 - 1 | 0;
                            $var1 = $var2 - 2 | 0;
                            var$11 = var$16 | 0;
                            if (var$16 < var$11)
                                var$11 = var$11 - 1 | 0;
                            $var2 = var$11 - 2 | 0;
                            var$16 = var$2.$boundingBox0.$minY0;
                            $var3 = var$16 | 0;
                            if (var$16 < $var3)
                                $var3 = $var3 - 1 | 0;
                            $var4 = 0;
                            var$19 = $var3 - 1 | 0;
                            var$11 = $var3 + 1 | 0;
                            while (true) {
                                if ($var4 > 4)
                                    break d;
                                $var5 = 0;
                                while ($var5 <= 4) {
                                    if ($var4 < 1)
                                        break c;
                                    if ($var5 < 1)
                                        break c;
                                    if ($var4 > 3)
                                        break c;
                                    if ($var5 > 3)
                                        break c;
                                    $var5 = $var5 + 1 | 0;
                                }
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                }
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    case 2:
        $tmp = var$5.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if (($var1 ? 1 : 0) ? 1 : 0) {
            var$5 = var$1.$worldObj3;
            var$7 = var$1.$theEntity;
            var$8 = var$1.$pathSearchRange;
            if (var$8.$field_111133_g) {
                var$8.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$8);
                var$8.$field_111133_g = 0;
            }
            var$9 = var$8.$field_111139_h;
            $var1 = var$1.$canPassOpenWoodenDoors;
            $var2 = var$1.$canPassClosedWoodenDoors;
            var$11 = var$1.$avoidsWater;
            var$12 = var$1.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$2 = null;
        if (var$2 !== null) {
            $ptr = 4;
            continue main;
        }
        d: {
            e: {
                if (!0) {
                    var$1 = $this.$thePet;
                    if (!var$1.$isLeashed) {
                        var$2 = $this.$theOwner;
                        var$6 = var$1.$posX;
                        var$13 = var$2.$posX;
                        var$6 = var$6 - var$13;
                        var$14 = var$1.$posY - var$2.$posY;
                        var$15 = var$1.$posZ;
                        var$16 = var$2.$posZ;
                        var$15 = var$15 - var$16;
                        if (var$6 * var$6 + var$14 * var$14 + var$15 * var$15 >= 144.0) {
                            $var2 = var$13 | 0;
                            if (var$13 < $var2)
                                $var2 = $var2 - 1 | 0;
                            $var1 = $var2 - 2 | 0;
                            var$11 = var$16 | 0;
                            if (var$16 < var$11)
                                var$11 = var$11 - 1 | 0;
                            $var2 = var$11 - 2 | 0;
                            var$16 = var$2.$boundingBox0.$minY0;
                            $var3 = var$16 | 0;
                            if (var$16 < $var3)
                                $var3 = $var3 - 1 | 0;
                            $var4 = 0;
                            var$19 = $var3 - 1 | 0;
                            var$11 = $var3 + 1 | 0;
                            while (true) {
                                if ($var4 > 4)
                                    break e;
                                $var5 = 0;
                                while ($var5 <= 4) {
                                    if ($var4 < 1)
                                        break d;
                                    if ($var5 < 1)
                                        break d;
                                    if ($var4 > 3)
                                        break d;
                                    if ($var5 > 3)
                                        break d;
                                    $var5 = $var5 + 1 | 0;
                                }
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                }
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$5, var$7, var$2, var$9, $var1, $var2, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        if (var$2 !== null) {
            $ptr = 4;
            continue main;
        }
        f: {
            g: {
                if (!0) {
                    var$1 = $this.$thePet;
                    if (!var$1.$isLeashed) {
                        var$2 = $this.$theOwner;
                        var$6 = var$1.$posX;
                        var$13 = var$2.$posX;
                        var$6 = var$6 - var$13;
                        var$14 = var$1.$posY - var$2.$posY;
                        var$15 = var$1.$posZ;
                        var$16 = var$2.$posZ;
                        var$15 = var$15 - var$16;
                        if (var$6 * var$6 + var$14 * var$14 + var$15 * var$15 >= 144.0) {
                            $var2 = var$13 | 0;
                            if (var$13 < $var2)
                                $var2 = $var2 - 1 | 0;
                            $var1 = $var2 - 2 | 0;
                            var$11 = var$16 | 0;
                            if (var$16 < var$11)
                                var$11 = var$11 - 1 | 0;
                            $var2 = var$11 - 2 | 0;
                            var$16 = var$2.$boundingBox0.$minY0;
                            $var3 = var$16 | 0;
                            if (var$16 < $var3)
                                $var3 = $var3 - 1 | 0;
                            $var4 = 0;
                            var$19 = $var3 - 1 | 0;
                            var$11 = $var3 + 1 | 0;
                            while (true) {
                                if ($var4 > 4)
                                    break g;
                                $var5 = 0;
                                while ($var5 <= 4) {
                                    if ($var4 < 1)
                                        break f;
                                    if ($var5 < 1)
                                        break f;
                                    if ($var4 > 3)
                                        break f;
                                    if ($var5 > 3)
                                        break f;
                                    $var5 = $var5 + 1 | 0;
                                }
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                }
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_PathNavigate_setPath(var$1, var$2, var$6);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        h: {
            f: {
                if (!$var1) {
                    var$1 = $this.$thePet;
                    if (!var$1.$isLeashed) {
                        var$2 = $this.$theOwner;
                        var$6 = var$1.$posX;
                        var$13 = var$2.$posX;
                        var$6 = var$6 - var$13;
                        var$14 = var$1.$posY - var$2.$posY;
                        var$15 = var$1.$posZ;
                        var$16 = var$2.$posZ;
                        var$15 = var$15 - var$16;
                        if (var$6 * var$6 + var$14 * var$14 + var$15 * var$15 >= 144.0) {
                            $var2 = var$13 | 0;
                            if (var$13 < $var2)
                                $var2 = $var2 - 1 | 0;
                            $var1 = $var2 - 2 | 0;
                            var$11 = var$16 | 0;
                            if (var$16 < var$11)
                                var$11 = var$11 - 1 | 0;
                            $var2 = var$11 - 2 | 0;
                            var$16 = var$2.$boundingBox0.$minY0;
                            $var3 = var$16 | 0;
                            if (var$16 < $var3)
                                $var3 = $var3 - 1 | 0;
                            $var4 = 0;
                            var$19 = $var3 - 1 | 0;
                            var$11 = $var3 + 1 | 0;
                            while (true) {
                                if ($var4 > 4)
                                    break f;
                                $var5 = 0;
                                while ($var5 <= 4) {
                                    if ($var4 < 1)
                                        break h;
                                    if ($var5 < 1)
                                        break h;
                                    if ($var4 > 3)
                                        break h;
                                    if ($var5 > 3)
                                        break h;
                                    $var5 = $var5 + 1 | 0;
                                }
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                }
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId(var$2, var$21, var$19, var$22);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        var$1 = var$4[var$12];
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockMetadata(var$2, var$21, var$19, var$22);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        if (nms_World_isBlockTopFacingSurfaceSolid(var$2, var$1, var$12)) {
            var$1 = $this.$theWorld1;
            $ptr = 7;
            continue main;
        }
        f: {
            g: while (true) {
                $var5 = $var5 + 1 | 0;
                while ($var5 > 4) {
                    $var4 = $var4 + 1 | 0;
                    if ($var4 > 4)
                        break g;
                    $var5 = 0;
                }
                if ($var4 < 1)
                    break f;
                if ($var5 < 1)
                    break f;
                if ($var4 > 3)
                    break f;
                if ($var5 <= 3)
                    continue;
                else
                    break f;
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId(var$1, var$21, $var3, var$22);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        var$1 = nms_Block_blocksList.data[var$12];
        if (var$1 === null)
            var$12 = 0;
        else {
            var$2 = var$1.$blockMaterial;
            var$12 = !var$2.$isTranslucent ? var$2.$blocksMovement() : 0;
            var$12 = var$12 && var$1.$renderAsNormalBlock() && !var$1.$canProvidePower() ? 1 : 0;
        }
        if (!var$12) {
            var$1 = $this.$theWorld1;
            $ptr = 8;
            continue main;
        }
        d: {
            e: while (true) {
                $var5 = $var5 + 1 | 0;
                while ($var5 > 4) {
                    $var4 = $var4 + 1 | 0;
                    if ($var4 > 4)
                        break e;
                    $var5 = 0;
                }
                if ($var4 < 1)
                    break d;
                if ($var5 < 1)
                    break d;
                if ($var4 > 3)
                    break d;
                if ($var5 <= 3)
                    continue;
                else
                    break d;
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$1, var$21, var$11, var$22);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = $tmp;
        var$1 = nms_Block_blocksList.data[var$12];
        if (var$1 === null)
            var$12 = 0;
        else {
            var$2 = var$1.$blockMaterial;
            var$12 = !var$2.$isTranslucent ? var$2.$blocksMovement() : 0;
            var$12 = var$12 && var$1.$renderAsNormalBlock() && !var$1.$canProvidePower() ? 1 : 0;
        }
        if (!var$12) {
            var$1 = $this.$thePet;
            var$6 = var$21 + 0.5;
            var$16 = $var3;
            var$13 = var$22 + 0.5;
            var$9 = var$1.$rotationYaw;
            var$23 = var$1.$rotationPitch;
            var$1.$posX = var$6;
            var$1.$prevPosX = var$6;
            var$1.$lastTickPosX = var$6;
            var$16 = var$16 + var$1.$yOffset;
            var$1.$posY = var$16;
            var$1.$prevPosY = var$16;
            var$1.$lastTickPosY = var$16;
            var$1.$posZ = var$13;
            var$1.$prevPosZ = var$13;
            var$1.$lastTickPosZ = var$13;
            var$1.$rotationYaw = var$9;
            var$1.$rotationPitch = var$23;
            nms_Entity_setPosition(var$1, var$6, var$16, var$13);
            $this.$petPathfinder.$currentPath = null;
            return;
        }
        d: {
            e: while (true) {
                $var5 = $var5 + 1 | 0;
                while ($var5 > 4) {
                    $var4 = $var4 + 1 | 0;
                    if ($var4 > 4)
                        break e;
                    $var5 = 0;
                }
                if ($var4 < 1)
                    break d;
                if ($var5 < 1)
                    break d;
                if ($var4 > 3)
                    break d;
                if ($var5 <= 3)
                    continue;
                else
                    break d;
            }
            return;
        }
        var$2 = $this.$theWorld1;
        var$21 = $var1 + $var4 | 0;
        var$22 = $var2 + $var5 | 0;
        nms_Block_$callClinit();
        var$4 = nms_Block_blocksList.data;
        $ptr = 5;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, var$4, var$5, var$6, var$7, var$8, var$9, $var2, var$11, var$12, var$13, var$14, var$15, var$16, $var3, $var4, var$19, $var5, var$21, var$22, var$23, $ptr);
};
function nms_EntityAIBeg() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theWolf = null;
    a.$thePlayer1 = null;
    a.$worldObject = null;
    a.$minPlayerDistance = 0.0;
    a.$field_75384_e = 0;
}
let nms_EntityAIBeg_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    var$1 = $this.$worldObject;
    var$2 = $this.$theWolf;
    var$3 = $this.$minPlayerDistance;
    var$1 = nms_World_getClosestPlayer(var$1, var$2.$posX, var$2.$posY, var$2.$posZ, var$3);
    $this.$thePlayer1 = var$1;
    if (var$1 === null)
        var$4 = 0;
    else {
        var$1 = var$1.$inventory0;
        var$5 = var$1.$currentItem;
        var$1 = var$5 < 9 && var$5 >= 0 ? var$1.$mainInventory.data[var$5] : null;
        a: {
            if (var$1 === null)
                var$4 = 0;
            else {
                var$2 = $this.$theWolf.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$6 = jl_Integer_integerCache.data[144];
                if (var$6 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$7 = var$6.$value;
                    var$8 = var$2.$elementData.data;
                    var$2 = var$8[var$7 & (var$8.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$7) {
                            var$9 = var$2.$key;
                            if (var$6 !== var$9 && !jl_Integer_equals(var$6, var$9) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$2 = var$2 === null ? null : var$2.$value0;
                if (!(!(var$2.$watchedObject.$value1 & 4) ? 0 : 1)) {
                    var$4 = var$1.$itemID;
                    nms_Item_$callClinit();
                    if (var$4 == nms_Item_bone.$itemID0) {
                        var$4 = 1;
                        break a;
                    }
                }
                nms_Item_$callClinit();
                var$8 = nms_Item_itemsList.data;
                var$4 = var$1.$itemID;
                var$4 = !(var$8[var$4] instanceof nms_ItemFood) ? 0 : var$8[var$4].$isWolfsFavoriteMeat;
            }
        }
    }
    return var$4;
},
nms_EntityAIBeg_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12;
    a: {
        var$1 = $this.$thePlayer1;
        if (!var$1.$isDead) {
            var$1 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    b: {
        if (!var$6)
            var$6 = 0;
        else {
            var$1 = $this.$theWolf;
            var$5 = $this.$thePlayer1;
            var$7 = var$1.$posX - var$5.$posX;
            var$8 = var$1.$posY - var$5.$posY;
            var$9 = var$1.$posZ - var$5.$posZ;
            var$8 = var$7 * var$7 + var$8 * var$8 + var$9 * var$9;
            var$10 = $this.$minPlayerDistance;
            if (var$8 > var$10 * var$10)
                var$6 = 0;
            else {
                if ($this.$field_75384_e > 0) {
                    var$5 = var$5.$inventory0;
                    var$11 = var$5.$currentItem;
                    var$5 = var$11 < 9 && var$11 >= 0 ? var$5.$mainInventory.data[var$11] : null;
                    c: {
                        if (var$5 === null)
                            var$6 = 0;
                        else {
                            var$1 = var$1.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            var$12 = jl_Integer_integerCache.data[144];
                            if (var$12 === null) {
                                var$1 = var$1.$elementData.data[0];
                                while (var$1 !== null && var$1.$key !== null) {
                                    var$1 = var$1.$next3;
                                }
                            } else {
                                var$3 = var$12.$value;
                                var$4 = var$1.$elementData.data;
                                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                                while (var$1 !== null) {
                                    if (var$1.$origKeyHash == var$3) {
                                        var$2 = var$1.$key;
                                        if (var$12 !== var$2 && !jl_Integer_equals(var$12, var$2) ? 0 : 1)
                                            break;
                                    }
                                    var$1 = var$1.$next3;
                                }
                            }
                            var$1 = var$1 === null ? null : var$1.$value0;
                            if (!(!(var$1.$watchedObject.$value1 & 4) ? 0 : 1)) {
                                var$6 = var$5.$itemID;
                                nms_Item_$callClinit();
                                if (var$6 == nms_Item_bone.$itemID0) {
                                    var$6 = 1;
                                    break c;
                                }
                            }
                            nms_Item_$callClinit();
                            var$4 = nms_Item_itemsList.data;
                            var$6 = var$5.$itemID;
                            var$6 = !(var$4[var$6] instanceof nms_ItemFood) ? 0 : var$4[var$6].$isWolfsFavoriteMeat;
                        }
                    }
                    if (var$6) {
                        var$6 = 1;
                        break b;
                    }
                }
                var$6 = 0;
            }
        }
    }
    return var$6;
},
nms_EntityAIBeg_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$theWolf.$dataWatcher;
    var$2 = jl_Byte_byteCache.data[129];
    var$3 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[147];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$7 = var$3 === null ? null : var$3.$value0;
    var$3 = var$7.$watchedObject;
    if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
        var$7.$watchedObject = var$2;
        var$7.$watched = 1;
        var$1.$objectChanged = 1;
    }
    var$1 = $this.$theWolf.$rand;
    var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$8;
    var$9 = Long_lo(Long_shru(var$8, 17));
    while (true) {
        var$10 = var$9 % 40 | 0;
        if (((var$9 - var$10 | 0) + 39 | 0) >= 0)
            break;
        var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$8;
        var$9 = Long_lo(Long_shru(var$8, 17));
    }
    $this.$field_75384_e = 40 + var$10 | 0;
},
nms_EntityAIBeg_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $this.$theWolf.$dataWatcher;
    var$2 = jl_Byte_byteCache.data[128];
    var$3 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$4 = jl_Integer_integerCache.data[147];
    if (var$4 === null) {
        var$3 = var$3.$elementData.data[0];
        while (var$3 !== null && var$3.$key !== null) {
            var$3 = var$3.$next3;
        }
    } else {
        var$5 = var$4.$value;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                var$7 = var$3.$key;
                if (var$4 !== var$7 && !(var$4 === var$7 ? 1 : var$7 instanceof jl_Integer && var$7.$value == var$5 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$3 = var$3.$next3;
        }
    }
    var$7 = var$3 === null ? null : var$3.$value0;
    var$3 = var$7.$watchedObject;
    if (!(var$3 instanceof jl_Byte && var$3.$value1 == var$2.$value1 ? 1 : 0)) {
        var$7.$watchedObject = var$2;
        var$7.$watched = 1;
        var$1.$objectChanged = 1;
    }
    $this.$thePlayer1 = null;
},
nms_EntityAIBeg_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$1 = $this.$theWolf;
    var$2 = var$1.$lookHelper;
    var$3 = $this.$thePlayer1;
    var$4 = var$3.$posX;
    var$5 = var$3.$posY + 1.6200000047683716;
    var$6 = var$3.$posZ;
    var$1 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$7 = var$1.$elementData.data[0];
        while (var$7 !== null && var$7.$key !== null) {
            var$7 = var$7.$next3;
        }
    } else {
        var$8 = var$3.$value;
        var$9 = var$1.$elementData.data;
        var$7 = var$9[var$8 & (var$9.length - 1 | 0)];
        while (var$7 !== null) {
            if (var$7.$origKeyHash == var$8) {
                var$1 = var$7.$key;
                if (var$3 !== var$1 && !jl_Integer_equals(var$3, var$1) ? 0 : 1)
                    break;
            }
            var$7 = var$7.$next3;
        }
    }
    var$1 = var$7 === null ? null : var$7.$value0;
    var$10 = (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1) ? 20 : 40;
    var$2.$posX6 = var$4;
    var$2.$posY5 = var$5;
    var$2.$posZ6 = var$6;
    var$2.$deltaLookYaw = 10.0;
    var$2.$deltaLookPitch = var$10;
    var$2.$isLooking = 1;
    $this.$field_75384_e = $this.$field_75384_e - 1 | 0;
};
function nms_EntityAIOwnerHurtByTarget() {
    let a = this; nms_EntityAITarget.call(a);
    a.$theDefendingTameable = null;
    a.$theOwnerAttacker = null;
    a.$field_142051_e = 0;
}
let nms_EntityAIOwnerHurtByTarget_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, $var1, var$6, var$7, $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var1 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theDefendingTameable.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    $var1 = var$1.$key;
                    if (var$2 !== $var1 && !(var$2 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value1 & 4) ? 0 : 1))
            return 0;
        var$1 = $this.$theDefendingTameable;
        $var1 = var$1.$worldObj;
        var$1 = var$1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[145];
        if (var$6 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$6.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$2 = var$1.$key;
                    if (var$6 !== var$2 && !jl_Integer_equals(var$6, var$2) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject;
        var$7 = 0;
        a: {
            while (true) {
                var$1 = $var1.$playerEntities;
                $var2 = $rt_compare(var$7, var$1.$size0);
                if ($var2 >= 0) {
                    $var1 = null;
                    break a;
                }
                if (var$7 < 0)
                    break;
                if ($var2 >= 0)
                    break;
                var$1 = var$1.$array.data[var$7].$username;
                if (var$6 === var$1)
                    $var2 = 1;
                else if (!(var$1 instanceof jl_String))
                    $var2 = 0;
                else {
                    var$1 = var$1;
                    $var2 = var$6.$nativeString !== var$1.$nativeString ? 0 : 1;
                }
                if ($var2) {
                    var$1 = $var1.$playerEntities;
                    if (var$7 >= 0 && var$7 < var$1.$size0) {
                        $var1 = var$1.$array.data[var$7];
                        break a;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$1);
                    $rt_throw(var$1);
                }
                var$7 = var$7 + 1 | 0;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        if ($var1 === null)
            return 0;
        var$1 = $var1.$entityLivingToAttack;
        $this.$theOwnerAttacker = var$1;
        if ($var1.$revengeTimer == $this.$field_142051_e)
            return 0;
        var$7 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAITarget_isSuitableTarget($this, var$1, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7 && nms_EntityWolf_func_142018_a($this.$theDefendingTameable, $this.$theOwnerAttacker, $var1) ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $var1, var$6, var$7, $var2, $ptr);
},
nms_EntityAIOwnerHurtByTarget_startExecuting = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $this.$taskOwner.$setAttackTarget($this.$theOwnerAttacker);
    $var1 = $this.$theDefendingTameable;
    var$2 = $var1.$worldObj;
    $var1 = $var1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[145];
    if (var$3 === null) {
        $var1 = $var1.$elementData.data[0];
        while ($var1 !== null && $var1.$key !== null) {
            $var1 = $var1.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = $var1.$elementData.data;
        $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var1 !== null) {
            if ($var1.$origKeyHash == var$4) {
                var$6 = $var1.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            $var1 = $var1.$next3;
        }
    }
    var$6 = ($var1 === null ? null : $var1.$value0).$watchedObject;
    var$7 = 0;
    a: {
        while (true) {
            $var1 = var$2.$playerEntities;
            var$8 = $rt_compare(var$7, $var1.$size0);
            if (var$8 >= 0) {
                $var1 = null;
                break a;
            }
            if (var$7 < 0)
                break;
            if (var$8 >= 0)
                break;
            $var1 = $var1.$array.data[var$7].$username;
            if (var$6 === $var1)
                var$8 = 1;
            else if (!($var1 instanceof jl_String))
                var$8 = 0;
            else {
                $var1 = $var1;
                var$8 = var$6.$nativeString !== $var1.$nativeString ? 0 : 1;
            }
            if (var$8) {
                $var1 = var$2.$playerEntities;
                if (var$7 >= 0 && var$7 < $var1.$size0) {
                    $var1 = $var1.$array.data[var$7];
                    break a;
                }
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            var$7 = var$7 + 1 | 0;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $rt_throw($var1);
    }
    if ($var1 !== null)
        $this.$field_142051_e = $var1.$revengeTimer;
    $this.$targetSearchStatus = 0;
    $this.$targetSearchDelay = 0;
    $this.$field_75298_g = 0;
};
function nms_EntityAIOwnerHurtTarget() {
    let a = this; nms_EntityAITarget.call(a);
    a.$theEntityTameable = null;
    a.$theTarget = null;
    a.$field_142050_e = 0;
}
let nms_EntityAIOwnerHurtTarget_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, $var1, var$6, var$7, $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var1 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theEntityTameable.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    $var1 = var$1.$key;
                    if (var$2 !== $var1 && !(var$2 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(!(var$1.$watchedObject.$value1 & 4) ? 0 : 1))
            return 0;
        var$1 = $this.$theEntityTameable;
        $var1 = var$1.$worldObj;
        var$1 = var$1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[145];
        if (var$6 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$6.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$2 = var$1.$key;
                    if (var$6 !== var$2 && !jl_Integer_equals(var$6, var$2) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject;
        var$7 = 0;
        a: {
            while (true) {
                var$1 = $var1.$playerEntities;
                $var2 = $rt_compare(var$7, var$1.$size0);
                if ($var2 >= 0) {
                    $var1 = null;
                    break a;
                }
                if (var$7 < 0)
                    break;
                if ($var2 >= 0)
                    break;
                var$1 = var$1.$array.data[var$7].$username;
                if (var$6 === var$1)
                    $var2 = 1;
                else if (!(var$1 instanceof jl_String))
                    $var2 = 0;
                else {
                    var$1 = var$1;
                    $var2 = var$6.$nativeString !== var$1.$nativeString ? 0 : 1;
                }
                if ($var2) {
                    var$1 = $var1.$playerEntities;
                    if (var$7 >= 0 && var$7 < var$1.$size0) {
                        $var1 = var$1.$array.data[var$7];
                        break a;
                    }
                    var$1 = new jl_IndexOutOfBoundsException;
                    var$1.$suppressionEnabled = 1;
                    var$1.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace(var$1);
                    $rt_throw(var$1);
                }
                var$7 = var$7 + 1 | 0;
            }
            var$1 = new jl_IndexOutOfBoundsException;
            var$1.$suppressionEnabled = 1;
            var$1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace(var$1);
            $rt_throw(var$1);
        }
        if ($var1 === null)
            return 0;
        var$1 = $var1.$lastAttacker;
        $this.$theTarget = var$1;
        if ($var1.$lastAttackerTime == $this.$field_142050_e)
            return 0;
        var$7 = 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAITarget_isSuitableTarget($this, var$1, var$7);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        return var$7 && nms_EntityWolf_func_142018_a($this.$theEntityTameable, $this.$theTarget, $var1) ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $var1, var$6, var$7, $var2, $ptr);
},
nms_EntityAIOwnerHurtTarget_startExecuting = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    $this.$taskOwner.$setAttackTarget($this.$theTarget);
    $var1 = $this.$theEntityTameable;
    var$2 = $var1.$worldObj;
    $var1 = $var1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[145];
    if (var$3 === null) {
        $var1 = $var1.$elementData.data[0];
        while ($var1 !== null && $var1.$key !== null) {
            $var1 = $var1.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = $var1.$elementData.data;
        $var1 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var1 !== null) {
            if ($var1.$origKeyHash == var$4) {
                var$6 = $var1.$key;
                if (var$3 !== var$6 && !jl_Integer_equals(var$3, var$6) ? 0 : 1)
                    break;
            }
            $var1 = $var1.$next3;
        }
    }
    var$6 = ($var1 === null ? null : $var1.$value0).$watchedObject;
    var$7 = 0;
    a: {
        while (true) {
            $var1 = var$2.$playerEntities;
            var$8 = $rt_compare(var$7, $var1.$size0);
            if (var$8 >= 0) {
                $var1 = null;
                break a;
            }
            if (var$7 < 0)
                break;
            if (var$8 >= 0)
                break;
            $var1 = $var1.$array.data[var$7].$username;
            if (var$6 === $var1)
                var$8 = 1;
            else if (!($var1 instanceof jl_String))
                var$8 = 0;
            else {
                $var1 = $var1;
                var$8 = var$6.$nativeString !== $var1.$nativeString ? 0 : 1;
            }
            if (var$8) {
                $var1 = var$2.$playerEntities;
                if (var$7 >= 0 && var$7 < $var1.$size0) {
                    $var1 = $var1.$array.data[var$7];
                    break a;
                }
                $var1 = new jl_IndexOutOfBoundsException;
                $var1.$suppressionEnabled = 1;
                $var1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($var1);
                $rt_throw($var1);
            }
            var$7 = var$7 + 1 | 0;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $rt_throw($var1);
    }
    if ($var1 !== null)
        $this.$field_142050_e = $var1.$lastAttackerTime;
    $this.$targetSearchStatus = 0;
    $this.$targetSearchDelay = 0;
    $this.$field_75298_g = 0;
};
function nms_EntityAITargetNonTamed() {
    nms_EntityAINearestAttackableTarget.call(this);
    this.$theTameable = null;
}
let nms_EntityAITargetNonTamed_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theTameable.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value1 & 4) ? 0 : 1)
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_EntityAINearestAttackableTarget_shouldExecute($this);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        return !var$6 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
};
function nms_EntityAIOcelotSit() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theOcelot = null;
    a.$field_75404_b = 0.0;
    a.$currentTick = 0;
    a.$field_75402_d = 0;
    a.$maxSittingTicks = 0;
    a.$sitableBlockX = 0;
    a.$sitableBlockY = 0;
    a.$sitableBlockZ = 0;
}
let nms_EntityAIOcelotSit_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theOcelot.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = var$1.$elementData.data;
            var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while (var$1 !== null) {
                if (var$1.$origKeyHash == var$3) {
                    var$5 = var$1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        if (!(var$1.$watchedObject.$value1 & 4) ? 0 : 1) {
            var$1 = $this.$theOcelot.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)) {
                var$1 = $this.$theOcelot.$rand;
                var$6 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$6;
                var$7 = Long_shl(Long_fromInt(Long_lo(Long_shru(var$6, 22))), 27);
                var$8 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$1.$seed = var$8;
                if (Long_toNumber(Long_add(var$7, Long_fromInt(Long_lo(Long_shru(var$8, 21))))) * 1.1102230246251565E-16 <= 0.006500000134110451) {
                    $ptr = 1;
                    continue main;
                }
            }
        }
        return 0;
    case 1:
        $tmp = nms_EntityAIOcelotSit_getNearbySitableBlockDistance($this);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        return !var$9 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
},
nms_EntityAIOcelotSit_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$currentTick <= $this.$maxSittingTicks && $this.$field_75402_d <= 60) {
            var$1 = $this.$theOcelot.$worldObj;
            var$2 = $this.$sitableBlockX;
            var$3 = $this.$sitableBlockY;
            var$4 = $this.$sitableBlockZ;
            $ptr = 1;
            continue main;
        }
        return 0;
    case 1:
        $tmp = nms_EntityAIOcelotSit_isSittableBlock($this, var$1, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        return !var$2 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $ptr);
},
nms_EntityAIOcelotSit_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theOcelot.$navigator;
        var$2 = $this.$sitableBlockX + 0.5;
        var$3 = $this.$sitableBlockY + 1 | 0;
        var$4 = $this.$sitableBlockZ + 0.5;
        var$5 = $this.$field_75404_b;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$4 = var$6;
        var$7 = var$1.$theEntity;
        if (var$7.$onGround)
            var$8 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$8 = 0;
        }
        if (!var$8) {
            var$7 = null;
            $ptr = 3;
            continue main;
        }
        var$7 = var$1.$worldObj3;
        var$9 = var$1.$theEntity;
        var$8 = var$2 | 0;
        if (var$2 < var$8)
            var$8 = var$8 - 1 | 0;
        var$6 = var$3 | 0;
        var$10 = var$4 | 0;
        if (var$4 < var$10)
            var$10 = var$10 - 1 | 0;
        var$11 = var$1.$pathSearchRange;
        if (var$11.$field_111133_g) {
            var$11.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$11);
            var$11.$field_111133_g = 0;
        }
        var$12 = var$11.$field_111139_h;
        var$13 = var$1.$canPassOpenWoodenDoors;
        var$14 = var$1.$canPassClosedWoodenDoors;
        var$15 = var$1.$avoidsWater;
        var$16 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$7.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8) {
            var$7 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$7 = null;
            $ptr = 3;
            continue main;
        }
        var$7 = var$1.$worldObj3;
        var$9 = var$1.$theEntity;
        var$8 = var$2 | 0;
        if (var$2 < var$8)
            var$8 = var$8 - 1 | 0;
        var$6 = var$3 | 0;
        var$10 = var$4 | 0;
        if (var$4 < var$10)
            var$10 = var$10 - 1 | 0;
        var$11 = var$1.$pathSearchRange;
        if (var$11.$field_111133_g) {
            var$11.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$11);
            var$11.$field_111133_g = 0;
        }
        var$12 = var$11.$field_111139_h;
        var$13 = var$1.$canPassOpenWoodenDoors;
        var$14 = var$1.$canPassClosedWoodenDoors;
        var$15 = var$1.$avoidsWater;
        var$16 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$7.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!((var$8 ? 1 : 0) ? 1 : 0)) {
            var$7 = null;
            $ptr = 3;
            continue main;
        }
        var$7 = var$1.$worldObj3;
        var$9 = var$1.$theEntity;
        var$8 = var$2 | 0;
        if (var$2 < var$8)
            var$8 = var$8 - 1 | 0;
        var$6 = var$3 | 0;
        var$10 = var$4 | 0;
        if (var$4 < var$10)
            var$10 = var$10 - 1 | 0;
        var$11 = var$1.$pathSearchRange;
        if (var$11.$field_111133_g) {
            var$11.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$11);
            var$11.$field_111133_g = 0;
        }
        var$12 = var$11.$field_111139_h;
        var$13 = var$1.$canPassOpenWoodenDoors;
        var$14 = var$1.$canPassClosedWoodenDoors;
        var$15 = var$1.$avoidsWater;
        var$16 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $this.$currentTick = 0;
        $this.$field_75402_d = 0;
        var$7 = $this.$theOcelot;
        var$9 = var$7.$rand;
        var$17 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$17;
        var$13 = Long_lo(Long_shru(var$17, 17));
        while (true) {
            var$14 = var$13 % 1200 | 0;
            if (((var$13 - var$14 | 0) + 1199 | 0) >= 0)
                break;
            var$17 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$9.$seed = var$17;
            var$13 = Long_lo(Long_shru(var$17, 17));
        }
        var$6 = var$14 + 1200 | 0;
        var$17 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$9.$seed = var$17;
        var$14 = Long_lo(Long_shru(var$17, 17));
        var$10 = var$6 - 1 | 0;
        if (!(var$6 & var$10))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$6), Long_fromInt(var$14)), 31));
        else
            while (true) {
                var$13 = var$14 % var$6 | 0;
                if (((var$14 - var$13 | 0) + var$10 | 0) >= 0)
                    break;
                var$17 = Long_and(Long_add(Long_mul(var$9.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$9.$seed = var$17;
                var$14 = Long_lo(Long_shru(var$17, 17));
            }
        $this.$maxSittingTicks = var$13 + 1200 | 0;
        var$7.$aiSit.$isSitting0 = 0;
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$7, var$9, var$8, var$6, var$10, var$12, var$13, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityAIOcelotSit_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$theOcelot;
    var$2 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    var$1 = var$1.$dataWatcher;
    var$7 = (var$7 & (-2)) << 24 >> 24;
    var$8 = jl_Byte_byteCache.data[var$7 + 128 | 0];
    var$2 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$6 = var$2 === null ? null : var$2.$value0;
    var$2 = var$6.$watchedObject;
    if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$8.$value1 ? 1 : 0)) {
        var$6.$watchedObject = var$8;
        var$6.$watched = 1;
        var$1.$objectChanged = 1;
    }
},
nms_EntityAIOcelotSit_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$currentTick = $this.$currentTick + 1 | 0;
        var$1 = $this.$theOcelot;
        var$1.$aiSit.$isSitting0 = 0;
        var$2 = $this.$sitableBlockX;
        var$3 = $this.$sitableBlockY + 1 | 0;
        var$4 = $this.$sitableBlockZ;
        var$2 = var$1.$posX - var$2;
        var$3 = var$1.$posY - var$3;
        var$4 = var$1.$posZ - var$4;
        if (var$2 * var$2 + var$3 * var$3 + var$4 * var$4 <= 1.0) {
            var$1 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$5 = jl_Integer_integerCache.data[144];
            if (var$5 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$6 = var$5.$value;
                var$7 = var$1.$elementData.data;
                var$1 = var$7[var$6 & (var$7.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$6) {
                        var$8 = var$1.$key;
                        if (var$5 !== var$8 && !(var$5 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$6 ? 1 : 0) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            var$1 = var$1 === null ? null : var$1.$value0;
            if (!(var$1.$watchedObject.$value1 & 1) ? 0 : 1)
                $this.$field_75402_d = $this.$field_75402_d - 1 | 0;
            else {
                var$1 = $this.$theOcelot;
                var$5 = var$1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$9 = jl_Integer_integerCache.data[144];
                if (var$9 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$10 = var$9.$value;
                    var$7 = var$5.$elementData.data;
                    var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$10) {
                            var$8 = var$5.$key;
                            if (var$9 !== var$8 && !(var$9 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$10 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$6 = (var$5 === null ? null : var$5.$value0).$watchedObject.$value1;
                var$1 = var$1.$dataWatcher;
                var$6 = (var$6 | 1) << 24 >> 24;
                var$11 = jl_Byte_byteCache.data[var$6 + 128 | 0];
                var$5 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$9 = jl_Integer_integerCache.data[144];
                if (var$9 === null) {
                    var$5 = var$5.$elementData.data[0];
                    while (var$5 !== null && var$5.$key !== null) {
                        var$5 = var$5.$next3;
                    }
                } else {
                    var$10 = var$9.$value;
                    var$7 = var$5.$elementData.data;
                    var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
                    while (var$5 !== null) {
                        if (var$5.$origKeyHash == var$10) {
                            var$8 = var$5.$key;
                            if (var$9 !== var$8 && !(var$9 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$10 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$5 = var$5.$next3;
                    }
                }
                var$8 = var$5 === null ? null : var$5.$value0;
                var$5 = var$8.$watchedObject;
                if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$11.$value1 ? 1 : 0)) {
                    var$8.$watchedObject = var$11;
                    var$8.$watched = 1;
                    var$1.$objectChanged = 1;
                }
            }
            return;
        }
        var$5 = var$1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$8 = jl_Integer_integerCache.data[144];
        if (var$8 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$6 = var$8.$value;
            var$7 = var$5.$elementData.data;
            var$5 = var$7[var$6 & (var$7.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$6) {
                    var$9 = var$5.$key;
                    if (var$8 !== var$9 && !(var$8 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$6 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$12 = (var$5 === null ? null : var$5.$value0).$watchedObject.$value1;
        var$1 = var$1.$dataWatcher;
        var$6 = (var$12 & (-2)) << 24 >> 24;
        var$9 = jl_Byte_byteCache.data[var$6 + 128 | 0];
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[144];
        if (var$11 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$10 = var$11.$value;
            var$7 = var$5.$elementData.data;
            var$5 = var$7[var$10 & (var$7.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$10) {
                    var$8 = var$5.$key;
                    if (var$11 !== var$8 && !(var$11 === var$8 ? 1 : var$8 instanceof jl_Integer && var$8.$value == var$10 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$8 = var$5 === null ? null : var$5.$value0;
        var$5 = var$8.$watchedObject;
        if (!(var$5 instanceof jl_Byte && var$5.$value1 == var$9.$value1 ? 1 : 0)) {
            var$8.$watchedObject = var$9;
            var$8.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$9 = $this.$theOcelot.$navigator;
        var$3 = $this.$sitableBlockX + 0.5;
        var$4 = $this.$sitableBlockY + 1 | 0;
        var$2 = $this.$sitableBlockZ + 0.5;
        var$13 = $this.$field_75404_b;
        var$12 = var$3 | 0;
        if (var$3 < var$12)
            var$12 = var$12 - 1 | 0;
        var$3 = var$12;
        var$4 = var$4 | 0;
        var$12 = var$2 | 0;
        if (var$2 < var$12)
            var$12 = var$12 - 1 | 0;
        var$2 = var$12;
        var$1 = var$9.$theEntity;
        if (var$1.$onGround)
            var$6 = 1;
        else {
            if (var$9.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$6 = 0;
        }
        if (!var$6) {
            var$1 = null;
            $ptr = 3;
            continue main;
        }
        var$1 = var$9.$worldObj3;
        var$5 = var$9.$theEntity;
        var$14 = var$3 | 0;
        if (var$3 < var$14)
            var$14 = var$14 - 1 | 0;
        var$6 = var$4 | 0;
        var$15 = var$2 | 0;
        if (var$2 < var$15)
            var$15 = var$15 - 1 | 0;
        var$8 = var$9.$pathSearchRange;
        if (var$8.$field_111133_g) {
            var$8.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$8);
            var$8.$field_111133_g = 0;
        }
        var$16 = var$8.$field_111139_h;
        var$12 = var$9.$canPassOpenWoodenDoors;
        var$10 = var$9.$canPassClosedWoodenDoors;
        var$17 = var$9.$avoidsWater;
        var$18 = var$9.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!var$6) {
            var$1 = var$9.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$1 = null;
            $ptr = 3;
            continue main;
        }
        var$1 = var$9.$worldObj3;
        var$5 = var$9.$theEntity;
        var$14 = var$3 | 0;
        if (var$3 < var$14)
            var$14 = var$14 - 1 | 0;
        var$6 = var$4 | 0;
        var$15 = var$2 | 0;
        if (var$2 < var$15)
            var$15 = var$15 - 1 | 0;
        var$8 = var$9.$pathSearchRange;
        if (var$8.$field_111133_g) {
            var$8.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$8);
            var$8.$field_111133_g = 0;
        }
        var$16 = var$8.$field_111139_h;
        var$12 = var$9.$canPassOpenWoodenDoors;
        var$10 = var$9.$canPassClosedWoodenDoors;
        var$17 = var$9.$avoidsWater;
        var$18 = var$9.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!((var$6 ? 1 : 0) ? 1 : 0)) {
            var$1 = null;
            $ptr = 3;
            continue main;
        }
        var$1 = var$9.$worldObj3;
        var$5 = var$9.$theEntity;
        var$14 = var$3 | 0;
        if (var$3 < var$14)
            var$14 = var$14 - 1 | 0;
        var$6 = var$4 | 0;
        var$15 = var$2 | 0;
        if (var$2 < var$15)
            var$15 = var$15 - 1 | 0;
        var$8 = var$9.$pathSearchRange;
        if (var$8.$field_111133_g) {
            var$8.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$8);
            var$8.$field_111133_g = 0;
        }
        var$16 = var$8.$field_111139_h;
        var$12 = var$9.$canPassOpenWoodenDoors;
        var$10 = var$9.$canPassClosedWoodenDoors;
        var$17 = var$9.$avoidsWater;
        var$18 = var$9.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$9, var$1, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $this.$field_75402_d = $this.$field_75402_d + 1 | 0;
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$1, var$5, var$14, var$6, var$15, var$16, var$12, var$10, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityAIOcelotSit_getNearbySitableBlockDistance = $this => {
    let var$1, $var1, $var2, $var4, var$5, var$6, var$7, $var5, $var6, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$theOcelot;
        $var1 = var$1.$posY | 0;
        $var2 = 2.147483647E9;
        $var4 = (var$1.$posX | 0) - 8 | 0;
        var$5 = $var1 + 1 | 0;
        var$6 = $var1;
        while (true) {
            var$7 = $var4;
            var$1 = $this.$theOcelot;
            if (var$7 >= var$1.$posX + 8.0)
                break;
            $var5 = (var$1.$posZ | 0) - 8 | 0;
            $var6 = $var5;
            var$1 = $this.$theOcelot;
            if ($var6 < var$1.$posZ + 8.0) {
                var$1 = var$1.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        return $var2 >= 2.147483647E9 ? 0 : 1;
    case 1:
        $tmp = nms_EntityAIOcelotSit_isSittableBlock($this, var$1, $var4, $var1, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10) {
            var$1 = $this.$theOcelot.$worldObj;
            $ptr = 2;
            continue main;
        }
        $var5 = $var5 + 1 | 0;
        while (true) {
            $var6 = $var5;
            var$1 = $this.$theOcelot;
            if ($var6 < var$1.$posZ + 8.0) {
                var$1 = var$1.$worldObj;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            var$7 = $var4;
            var$1 = $this.$theOcelot;
            if (var$7 >= var$1.$posX + 8.0)
                break;
            $var5 = (var$1.$posZ | 0) - 8 | 0;
        }
        return $var2 >= 2.147483647E9 ? 0 : 1;
    case 2:
        $tmp = nms_World_getBlockId(var$1, $var4, var$5, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 ? 0 : 1) {
            var$1 = $this.$theOcelot;
            var$11 = var$1.$posX - var$7;
            var$12 = var$1.$posY - var$6;
            $var6 = var$1.$posZ - $var6;
            $var6 = var$11 * var$11 + var$12 * var$12 + $var6 * $var6;
            if ($var6 < $var2) {
                $this.$sitableBlockX = $var4;
                $this.$sitableBlockY = $var1;
                $this.$sitableBlockZ = $var5;
                $var2 = $var6;
            }
        }
        $var5 = $var5 + 1 | 0;
        while (true) {
            $var6 = $var5;
            var$1 = $this.$theOcelot;
            if ($var6 < var$1.$posZ + 8.0) {
                var$1 = var$1.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            var$7 = $var4;
            var$1 = $this.$theOcelot;
            if (var$7 >= var$1.$posX + 8.0)
                break;
            $var5 = (var$1.$posZ | 0) - 8 | 0;
        }
        return $var2 >= 2.147483647E9 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, $var2, $var4, var$5, var$6, var$7, $var5, $var6, var$10, var$11, var$12, $ptr);
},
nms_EntityAIOcelotSit_isSittableBlock = ($this, $par1World, $par2, $par3, $par4) => {
    let $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        nms_Block_$callClinit();
        if ($var5 != nms_Block_chest.$blockID) {
            if ($var5 == nms_Block_furnaceBurning.$blockID)
                return 1;
            if ($var5 == nms_Block_bed.$blockID && !(!($var6 & 8) ? 0 : 1))
                return 1;
            return 0;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockTileEntity($par1World, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        if ($par1World.$numUsingPlayers < 1)
            return 1;
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var5, $var6, $ptr);
};
function nms_EntityAIOcelotAttack() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theWorld7 = null;
    a.$theEntity6 = null;
    a.$theVictim = null;
    a.$attackCountdown = 0;
}
let nms_EntityAIOcelotAttack_shouldExecute = $this => {
    let $var1;
    $var1 = $this.$theEntity6.$attackTarget;
    if ($var1 === null)
        return 0;
    $this.$theVictim = $var1;
    return 1;
},
nms_EntityAIOcelotAttack_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$1 = $this.$theVictim;
        if (!var$1.$isDead) {
            var$1 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                var$1 = var$1.$elementData.data[0];
                while (var$1 !== null && var$1.$key !== null) {
                    var$1 = var$1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = var$1.$elementData.data;
                var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while (var$1 !== null) {
                    if (var$1.$origKeyHash == var$3) {
                        var$5 = var$1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    var$1 = var$1.$next3;
                }
            }
            if ((var$1 === null ? null : var$1.$value0).$watchedObject.$value3 > 0.0) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    b: {
        if (!var$6)
            var$6 = 0;
        else {
            var$1 = $this.$theEntity6;
            var$5 = $this.$theVictim;
            var$7 = var$1.$posX - var$5.$posX;
            var$8 = var$1.$posY - var$5.$posY;
            var$9 = var$1.$posZ - var$5.$posZ;
            if (var$7 * var$7 + var$8 * var$8 + var$9 * var$9 > 225.0)
                var$6 = 0;
            else {
                var$5 = var$1.$navigator.$currentPath;
                if (var$5 !== null && !(var$5.$currentPathIndex < var$5.$pathLength ? 0 : 1) ? 0 : 1) {
                    var$1 = var$1.$attackTarget;
                    if (var$1 === null)
                        var$6 = 0;
                    else {
                        $this.$theVictim = var$1;
                        var$6 = 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
        }
    }
    return var$6;
},
nms_EntityAIOcelotAttack_resetTask = $this => {
    $this.$theVictim = null;
    $this.$theEntity6.$navigator.$currentPath = null;
},
nms_EntityAIOcelotAttack_updateTask = $this => {
    let var$1, var$2, $var1, var$4, $var3, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var1 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityLookHelper_setLookPositionWithEntity($this.$theEntity6.$lookHelper, $this.$theVictim, 30.0, 30.0);
        var$1 = $this.$theEntity6;
        var$2 = var$1.$width;
        $var1 = var$2 * 2.0 * var$2 * 2.0;
        var$4 = $this.$theVictim;
        $var3 = var$4.$posX;
        $var5 = var$4.$boundingBox0.$minY0;
        var$7 = var$4.$posZ;
        var$8 = var$1.$posX - $var3;
        $var3 = var$1.$posY - $var5;
        $var5 = var$1.$posZ - var$7;
        $var3 = var$8 * var$8 + $var3 * $var3 + $var5 * $var5;
        $var5 = 0.8;
        var$9 = $rt_compare($var3, $var1);
        if (var$9 > 0 && $var3 < 16.0)
            $var5 = 1.33;
        else if ($var3 < 225.0)
            $var5 = 0.6;
        var$10 = var$1.$navigator;
        var$1 = var$10.$theEntity;
        if (var$1.$onGround)
            var$11 = 1;
        else {
            if (var$10.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$11 = 0;
        }
        if (var$11) {
            var$1 = var$10.$worldObj3;
            var$12 = var$10.$theEntity;
            var$13 = var$10.$pathSearchRange;
            if (var$13.$field_111133_g) {
                var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                var$13.$field_111133_g = 0;
            }
            var$2 = var$13.$field_111139_h;
            var$11 = var$10.$canPassOpenWoodenDoors;
            var$14 = var$10.$canPassClosedWoodenDoors;
            var$15 = var$10.$avoidsWater;
            var$16 = var$10.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$11 = $this.$attackCountdown - 1 | 0;
        var$14 = 0;
        if (var$11 > var$14)
            var$14 = var$11;
        $this.$attackCountdown = var$14;
        if (var$9 <= 0 && var$14 <= 0) {
            $this.$attackCountdown = 20;
            var$1 = $this.$theEntity6;
            var$4 = $this.$theVictim;
            var$12 = new nms_EntityDamageSource;
            var$12.$hungerDamage = 0.30000001192092896;
            var$12.$damageType = $rt_s(2288);
            var$12.$damageSourceEntity = var$1;
            var$2 = 3.0;
            $ptr = 5;
            continue main;
        }
        return;
    case 1:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (!var$11) {
            var$1 = var$10.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$1 = var$10.$worldObj3;
            var$12 = var$10.$theEntity;
            var$13 = var$10.$pathSearchRange;
            if (var$13.$field_111133_g) {
                var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                var$13.$field_111133_g = 0;
            }
            var$2 = var$13.$field_111139_h;
            var$11 = var$10.$canPassOpenWoodenDoors;
            var$14 = var$10.$canPassClosedWoodenDoors;
            var$15 = var$10.$avoidsWater;
            var$16 = var$10.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$11 = $this.$attackCountdown - 1 | 0;
        var$14 = 0;
        if (var$11 > var$14)
            var$14 = var$11;
        $this.$attackCountdown = var$14;
        if (var$9 <= 0 && var$14 <= 0) {
            $this.$attackCountdown = 20;
            var$1 = $this.$theEntity6;
            var$4 = $this.$theVictim;
            var$12 = new nms_EntityDamageSource;
            var$12.$hungerDamage = 0.30000001192092896;
            var$12.$damageType = $rt_s(2288);
            var$12.$damageSourceEntity = var$1;
            var$2 = 3.0;
            $ptr = 5;
            continue main;
        }
        return;
    case 2:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if ((var$11 ? 1 : 0) ? 1 : 0) {
            var$1 = var$10.$worldObj3;
            var$12 = var$10.$theEntity;
            var$13 = var$10.$pathSearchRange;
            if (var$13.$field_111133_g) {
                var$13.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$13);
                var$13.$field_111133_g = 0;
            }
            var$2 = var$13.$field_111139_h;
            var$11 = var$10.$canPassOpenWoodenDoors;
            var$14 = var$10.$canPassClosedWoodenDoors;
            var$15 = var$10.$avoidsWater;
            var$16 = var$10.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$11 = $this.$attackCountdown - 1 | 0;
        var$14 = 0;
        if (var$11 > var$14)
            var$14 = var$11;
        $this.$attackCountdown = var$14;
        if (var$9 <= 0 && var$14 <= 0) {
            $this.$attackCountdown = 20;
            var$1 = $this.$theEntity6;
            var$4 = $this.$theVictim;
            var$12 = new nms_EntityDamageSource;
            var$12.$hungerDamage = 0.30000001192092896;
            var$12.$damageType = $rt_s(2288);
            var$12.$damageSourceEntity = var$1;
            var$2 = 3.0;
            $ptr = 5;
            continue main;
        }
        return;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$1, var$12, var$4, var$2, var$11, var$14, var$15, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 !== null) {
            $ptr = 4;
            continue main;
        }
        var$11 = $this.$attackCountdown - 1 | 0;
        var$14 = 0;
        if (var$11 > var$14)
            var$14 = var$11;
        $this.$attackCountdown = var$14;
        if (var$9 <= 0 && var$14 <= 0) {
            $this.$attackCountdown = 20;
            var$1 = $this.$theEntity6;
            var$4 = $this.$theVictim;
            var$12 = new nms_EntityDamageSource;
            var$12.$hungerDamage = 0.30000001192092896;
            var$12.$damageType = $rt_s(2288);
            var$12.$damageSourceEntity = var$1;
            var$2 = 3.0;
            $ptr = 5;
            continue main;
        }
        return;
    case 4:
        nms_PathNavigate_setPath(var$10, var$1, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $this.$attackCountdown - 1 | 0;
        var$14 = 0;
        if (var$11 > var$14)
            var$14 = var$11;
        $this.$attackCountdown = var$14;
        if (var$9 <= 0 && var$14 <= 0) {
            $this.$attackCountdown = 20;
            var$1 = $this.$theEntity6;
            var$4 = $this.$theVictim;
            var$12 = new nms_EntityDamageSource;
            var$12.$hungerDamage = 0.30000001192092896;
            var$12.$damageType = $rt_s(2288);
            var$12.$damageSourceEntity = var$1;
            var$2 = 3.0;
            $ptr = 5;
            continue main;
        }
        return;
    case 5:
        var$4.$attackEntityFrom(var$12, var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, $var1, var$4, $var3, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
};
function nms_EntityAIRunAroundLikeCrazy() {
    let a = this; nms_EntityAIBase.call(a);
    a.$horseHost = null;
    a.$field_111178_b = 0.0;
    a.$field_111179_c = 0.0;
    a.$field_111176_d = 0.0;
    a.$field_111177_e = 0.0;
}
let nms_EntityAIRunAroundLikeCrazy_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$horseHost.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[144];
        if (var$2 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $var1.$elementData.data;
            $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$3) {
                    var$5 = $var1.$key;
                    if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        $var1 = $var1 === null ? null : $var1.$value0;
        if (!(!($var1.$watchedObject.$value & 2) ? 0 : 1)) {
            $var1 = $this.$horseHost;
            if ($var1.$riddenByEntity !== null) {
                var$6 = 5;
                var$7 = 4;
                nms_RandomPositionGenerator_$callClinit();
                var$5 = null;
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$6, var$7, var$5);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return 0;
        $this.$field_111179_c = $var1.$xCoord;
        $this.$field_111176_d = $var1.$yCoord;
        $this.$field_111177_e = $var1.$zCoord;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_EntityAIRunAroundLikeCrazy_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$horseHost.$navigator;
        var$2 = $this.$field_111179_c;
        var$3 = $this.$field_111176_d;
        var$4 = $this.$field_111177_e;
        var$5 = $this.$field_111178_b;
        var$6 = var$2 | 0;
        if (var$2 < var$6)
            var$6 = var$6 - 1 | 0;
        var$7 = var$6;
        var$3 = var$3 | 0;
        var$6 = var$4 | 0;
        if (var$4 < var$6)
            var$6 = var$6 - 1 | 0;
        var$2 = var$6;
        var$8 = var$1.$theEntity;
        if (var$8.$onGround)
            var$9 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 1;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 1:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$8 = var$1.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$8 = null;
            $ptr = 3;
            continue main;
        }
        var$8 = var$1.$worldObj3;
        var$10 = var$1.$theEntity;
        var$9 = var$7 | 0;
        if (var$7 < var$9)
            var$9 = var$9 - 1 | 0;
        var$6 = var$3 | 0;
        var$11 = var$2 | 0;
        if (var$2 < var$11)
            var$11 = var$11 - 1 | 0;
        var$12 = var$1.$pathSearchRange;
        if (var$12.$field_111133_g) {
            var$12.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$12);
            var$12.$field_111133_g = 0;
        }
        var$13 = var$12.$field_111139_h;
        var$14 = var$1.$canPassOpenWoodenDoors;
        var$15 = var$1.$canPassClosedWoodenDoors;
        var$16 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        nms_PathNavigate_setPath(var$1, var$8, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 4:
        $tmp = nms_World_getEntityPathToXYZ(var$8, var$10, var$9, var$6, var$11, var$13, var$14, var$15, var$16, var$17);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityAIRunAroundLikeCrazy_continueExecuting = $this => {
    let var$1, var$2, var$3;
    var$1 = $this.$horseHost;
    var$2 = var$1.$navigator.$currentPath;
    var$3 = var$2 !== null && !(var$2.$currentPathIndex < var$2.$pathLength ? 0 : 1) ? 0 : 1;
    return !var$3 && var$1.$riddenByEntity !== null ? 1 : 0;
},
nms_EntityAIRunAroundLikeCrazy_updateTask = $this => {
    let var$1, var$2, var$3, var$4, $var2, var$6, $var1, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var1 = $thread.pop();var$6 = $thread.pop();$var2 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$horseHost;
        var$2 = var$1.$rand;
        var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$3;
        var$4 = Long_lo(Long_shru(var$3, 17));
        while (true) {
            $var2 = var$4 % 50 | 0;
            if (((var$4 - $var2 | 0) + 49 | 0) >= 0)
                break;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$4 = Long_lo(Long_shru(var$3, 17));
        }
        if ($var2)
            return;
        var$6 = var$1.$riddenByEntity;
        if (var$6 instanceof nms_EntityPlayer) {
            $var1 = var$1.$temper;
            var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$3;
            var$8 = Long_lo(Long_shru(var$3, 17));
            while (true) {
                var$4 = var$8 % 100 | 0;
                if (((var$8 - var$4 | 0) + 99 | 0) >= 0)
                    break;
                var$3 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$3;
                var$8 = Long_lo(Long_shru(var$3, 17));
            }
            if (var$4 >= $var1) {
                var$9 = $var1 + 5 | 0;
                var$8 = 0;
                if (var$9 >= var$8)
                    var$8 = var$9 <= 100 ? var$9 : 100;
                var$1.$temper = var$8;
            } else {
                var$10 = var$6.$username;
                var$6 = var$1.$dataWatcher;
                var$2 = var$6.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$11 = jl_Integer_integerCache.data[149];
                if (var$11 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$4 = var$11.$value;
                    var$12 = var$2.$elementData.data;
                    var$2 = var$12[var$4 & (var$12.length - 1 | 0)];
                    while (var$2 !== null) {
                        if (var$2.$origKeyHash == var$4) {
                            var$13 = var$2.$key;
                            if (var$11 !== var$13 && !jl_Integer_equals(var$11, var$13) ? 0 : 1)
                                break;
                        }
                        var$2 = var$2.$next3;
                    }
                }
                var$13 = var$2 === null ? null : var$2.$value0;
                var$2 = var$13.$watchedObject;
                if (var$10 === var$2)
                    var$9 = 1;
                else if (!(var$2 instanceof jl_String))
                    var$9 = 0;
                else {
                    var$2 = var$2;
                    var$9 = var$10.$nativeString !== var$2.$nativeString ? 0 : 1;
                }
                if (!var$9) {
                    var$13.$watchedObject = var$10;
                    var$13.$watched = 1;
                    var$6.$objectChanged = 1;
                }
                var$6 = var$1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$13 = jl_Integer_integerCache.data[144];
                if (var$13 === null) {
                    var$6 = var$6.$elementData.data[0];
                    while (var$6 !== null && var$6.$key !== null) {
                        var$6 = var$6.$next3;
                    }
                } else {
                    $var2 = jl_Integer_hashCode(var$13.$value);
                    var$12 = var$6.$elementData.data;
                    var$6 = var$12[$var2 & (var$12.length - 1 | 0)];
                    while (var$6 !== null && !(var$6.$origKeyHash == $var2 && ju_HashMap_areEqualKeys(var$13, var$6.$key))) {
                        var$6 = var$6.$next3;
                    }
                }
                var$8 = (var$6 === null ? null : var$6.$value0).$watchedObject.$value;
                var$1 = var$1.$dataWatcher;
                var$9 = var$8 | 2;
                if (var$9 >= (-128) && var$9 <= 127) {
                    jl_Integer_ensureIntegerCache();
                    var$6 = jl_Integer_integerCache.data[var$9 + 128 | 0];
                } else {
                    var$6 = new jl_Integer;
                    var$6.$value = var$9;
                }
                var$2 = var$1.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$11 = jl_Integer_integerCache.data[144];
                if (var$11 === null) {
                    var$2 = var$2.$elementData.data[0];
                    while (var$2 !== null && var$2.$key !== null) {
                        var$2 = var$2.$next3;
                    }
                } else {
                    var$4 = jl_Integer_hashCode(var$11.$value);
                    var$12 = var$2.$elementData.data;
                    var$2 = var$12[var$4 & (var$12.length - 1 | 0)];
                    while (var$2 !== null && !(var$2.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$11, var$2.$key))) {
                        var$2 = var$2.$next3;
                    }
                }
                var$13 = var$2 === null ? null : var$2.$value0;
                var$2 = var$13.$watchedObject;
                if (!(var$6 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == var$6.$value ? 1 : 0)) {
                    var$13.$watchedObject = var$6;
                    var$13.$watched = 1;
                    var$1.$objectChanged = 1;
                }
                var$1 = $this.$horseHost;
                var$6 = var$1.$worldObj;
                var$2 = new nms_Packet38EntityStatus;
                var$8 = var$1.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$2.$entityId0 = var$8;
                var$2.$entityStatus = 7;
                var$6 = var$6.$theEntityTracker.$trackedEntityIDs;
                var$9 = var$1.$entityId;
                var$8 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
                $var2 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
                var$12 = var$6.$slots.data;
                var$1 = var$12[$var2 & (var$12.length - 1 | 0)];
                a: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$9) {
                            var$1 = var$1.$valueEntry;
                            break a;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$1 = var$1;
                if (var$1 !== null) {
                    var$6 = var$1.$trackingPlayers.$backingMap;
                    if (var$6.$cachedKeySet === null) {
                        var$13 = new ju_HashMap$1;
                        var$13.$this$0 = var$6;
                        ju_AbstractCollection__init_(var$13);
                        var$6.$cachedKeySet = var$13;
                    }
                    var$10 = var$6.$cachedKeySet.$iterator();
                    var$8 = var$2 instanceof nms_Packet3Chat;
                    var$13 = var$2;
                    while (var$10.$hasNext()) {
                        b: {
                            var$6 = (var$10.$next()).$playerNetServerHandler;
                            if (var$8) {
                                var$4 = var$6.$playerEntity.$chatVisibility;
                                if (var$4 == 2)
                                    break b;
                                if (var$4 == 1 && !var$13.$isServer)
                                    break b;
                            }
                            try {
                                var$6 = var$6.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$6 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$11 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$11);
                                jl_System_errCache = var$11;
                            }
                            jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                        }
                    }
                    var$1 = var$1.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        c: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$8) {
                                var$8 = var$1.$playerEntity.$chatVisibility;
                                if (var$8 == 2)
                                    break c;
                                if (var$8 == 1 && !var$13.$isServer)
                                    break c;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
                return;
            }
        }
        var$1 = null;
        $ptr = 1;
    case 1:
        var$6.$mountEntity(var$1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$horseHost;
        var$1.$riddenByEntity = null;
        if (!var$1.$worldObj.$isRemote) {
            var$1.$jumpRearingCounter = 1;
            var$4 = (ju_HashMap_get(var$1.$dataWatcher.$watchedObjects, jl_Integer_valueOf(16))).$watchedObject.$value;
            var$6 = var$1.$dataWatcher;
            var$8 = var$4 & (-33);
            if (var$8 >= (-128) && var$8 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[var$8 + 128 | 0];
            } else {
                var$2 = new jl_Integer;
                jl_Number__init_(var$2);
                var$2.$value = var$8;
            }
            var$11 = ju_HashMap_get(var$6.$watchedObjects, jl_Integer_valueOf(16));
            if (!jl_Integer_equals(var$2, var$11.$watchedObject)) {
                var$11.$watchedObject = var$2;
                var$11.$watched = 1;
                var$6.$objectChanged = 1;
            }
            var$6 = var$1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null)
                var$6 = ju_HashMap_findNullKeyEntry(var$6);
            else {
                var$4 = jl_Integer_hashCode0(var$2);
                var$6 = ju_HashMap_findNonNullKeyEntry(var$6, var$2, var$4 & (var$6.$elementData.data.length - 1 | 0), var$4);
            }
            var$8 = (var$6 === null ? null : var$6.$value0).$watchedObject.$value;
            var$6 = var$1.$dataWatcher;
            var$9 = var$8 | 64;
            if (var$9 >= (-128) && var$9 <= 127) {
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[var$9 + 128 | 0];
            } else {
                var$2 = new jl_Integer;
                var$2.$value = var$9;
            }
            var$13 = var$6.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$11 = jl_Integer_integerCache.data[144];
            if (var$11 === null)
                var$13 = ju_HashMap_findNullKeyEntry(var$13);
            else {
                var$8 = jl_Integer_hashCode0(var$11);
                var$13 = ju_HashMap_findNonNullKeyEntry(var$13, var$11, var$8 & (var$13.$elementData.data.length - 1 | 0), var$8);
            }
            var$11 = var$13 === null ? null : var$13.$value0;
            var$13 = var$11.$watchedObject;
            if (!(var$2 === var$13 ? 1 : var$13 instanceof jl_Integer && var$13.$value == var$2.$value ? 1 : 0)) {
                var$11.$watchedObject = var$2;
                var$11.$watched = 1;
                var$6.$objectChanged = 1;
            }
        }
        var$6 = nms_EntityHorse_getAngrySoundName(var$1);
        if (var$6 === null) {
            var$1 = $this.$horseHost;
            var$6 = var$1.$worldObj;
            var$2 = new nms_Packet38EntityStatus;
            var$8 = var$1.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$entityId0 = var$8;
            var$2.$entityStatus = 6;
            var$6 = var$6.$theEntityTracker.$trackedEntityIDs;
            var$9 = var$1.$entityId;
            var$8 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
            $var2 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
            var$12 = var$6.$slots.data;
            var$1 = var$12[$var2 & (var$12.length - 1 | 0)];
            d: {
                while (var$1 !== null) {
                    if (var$1.$hashEntry == var$9) {
                        var$1 = var$1.$valueEntry;
                        break d;
                    }
                    var$1 = var$1.$nextEntry0;
                }
                var$1 = null;
            }
            var$1 = var$1;
            if (var$1 !== null) {
                var$6 = var$1.$trackingPlayers.$backingMap;
                if (var$6.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$6;
                    ju_AbstractCollection__init_(var$13);
                    var$6.$cachedKeySet = var$13;
                }
                var$10 = var$6.$cachedKeySet.$iterator();
                var$8 = var$2 instanceof nms_Packet3Chat;
                var$13 = var$2;
                while (var$10.$hasNext()) {
                    e: {
                        var$6 = (var$10.$next()).$playerNetServerHandler;
                        if (var$8) {
                            var$4 = var$6.$playerEntity.$chatVisibility;
                            if (var$4 == 2)
                                break e;
                            if (var$4 == 1 && !var$13.$isServer)
                                break e;
                        }
                        try {
                            var$6 = var$6.$netManager;
                            $ptr = 3;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$6 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$11 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$11);
                            jl_System_errCache = var$11;
                        }
                        jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                    }
                }
                var$1 = var$1.$myEntity;
                if (var$1 instanceof nms_EntityPlayerMP)
                    f: {
                        var$1 = var$1.$playerNetServerHandler;
                        if (var$8) {
                            var$8 = var$1.$playerEntity.$chatVisibility;
                            if (var$8 == 2)
                                break f;
                            if (var$8 == 1 && !var$13.$isServer)
                                break f;
                        }
                        try {
                            var$1 = var$1.$netManager;
                            $ptr = 4;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$6 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$6;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
            }
            return;
        }
        var$14 = 0.800000011920929;
        var$15 = nms_EntityLivingBase_getSoundPitch(var$1);
        var$2 = var$1.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_playSoundAtEntity(var$2, var$1, var$6, var$14, var$15);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$horseHost;
        var$6 = var$1.$worldObj;
        var$2 = new nms_Packet38EntityStatus;
        var$8 = var$1.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$2.$entityId0 = var$8;
        var$2.$entityStatus = 6;
        var$6 = var$6.$theEntityTracker.$trackedEntityIDs;
        var$9 = var$1.$entityId;
        var$8 = var$9 ^ (var$9 >>> 20 | 0) ^ (var$9 >>> 12 | 0);
        $var2 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
        var$12 = var$6.$slots.data;
        var$1 = var$12[$var2 & (var$12.length - 1 | 0)];
        g: {
            while (var$1 !== null) {
                if (var$1.$hashEntry == var$9) {
                    var$1 = var$1.$valueEntry;
                    break g;
                }
                var$1 = var$1.$nextEntry0;
            }
            var$1 = null;
        }
        var$1 = var$1;
        if (var$1 !== null) {
            var$6 = var$1.$trackingPlayers.$backingMap;
            if (var$6.$cachedKeySet === null) {
                var$13 = new ju_HashMap$1;
                var$13.$this$0 = var$6;
                ju_AbstractCollection__init_(var$13);
                var$6.$cachedKeySet = var$13;
            }
            var$10 = var$6.$cachedKeySet.$iterator();
            var$8 = var$2 instanceof nms_Packet3Chat;
            var$13 = var$2;
            while (var$10.$hasNext()) {
                h: {
                    var$6 = (var$10.$next()).$playerNetServerHandler;
                    if (var$8) {
                        var$4 = var$6.$playerEntity.$chatVisibility;
                        if (var$4 == 2)
                            break h;
                        if (var$4 == 1 && !var$13.$isServer)
                            break h;
                    }
                    try {
                        var$6 = var$6.$netManager;
                        $ptr = 3;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$6 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$11 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$11);
                        jl_System_errCache = var$11;
                    }
                    jl_Throwable_printStackTrace(var$6, jl_System_errCache);
                }
            }
            var$1 = var$1.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                i: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$8) {
                        var$8 = var$1.$playerEntity.$chatVisibility;
                        if (var$8 == 2)
                            break i;
                        if (var$8 == 1 && !var$13.$isServer)
                            break i;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 4;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$6 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$6;
                    }
                    jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                }
        }
        return;
    case 3:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$11);
        }
        j: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break j;
                var$6 = (var$10.$next()).$playerNetServerHandler;
                if (!var$8)
                    break;
                var$4 = var$6.$playerEntity.$chatVisibility;
                if (var$4 == 2)
                    continue;
                if (var$4 != 1)
                    break;
                if (var$13.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$11);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            k: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$8) {
                    var$8 = var$1.$playerEntity.$chatVisibility;
                    if (var$8 == 2)
                        break k;
                    if (var$8 == 1 && !var$13.$isServer)
                        break k;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 4;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$6 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$6;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 4:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    case 5:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$6, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$11);
        }
        j: while (true) {
            while (true) {
                if (!var$10.$hasNext())
                    break j;
                var$6 = (var$10.$next()).$playerNetServerHandler;
                if (!var$8)
                    break;
                var$4 = var$6.$playerEntity.$chatVisibility;
                if (var$4 == 2)
                    continue;
                if (var$4 != 1)
                    break;
                if (var$13.$isServer)
                    break;
            }
            try {
                var$6 = var$6.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$6 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$6, var$11);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            k: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$8) {
                    var$8 = var$1.$playerEntity.$chatVisibility;
                    if (var$8 == 2)
                        break k;
                    if (var$8 == 1 && !var$13.$isServer)
                        break k;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$6 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$6;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 6:
        g: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break g;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$6 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$6, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$6;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, $var2, var$6, $var1, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
};
function nms_EnchantmentProtection() {
    nms_Enchantment.call(this);
    this.$protectionType = 0;
}
let nms_EnchantmentProtection_protectionName = null,
nms_EnchantmentProtection_baseEnchantability = null,
nms_EnchantmentProtection_levelEnchantability = null,
nms_EnchantmentProtection_thresholdEnchantability = null,
nms_EnchantmentProtection_getMinEnchantability = ($this, $par1) => {
    let var$2, var$3;
    var$2 = nms_EnchantmentProtection_baseEnchantability.data;
    var$3 = $this.$protectionType;
    return var$2[var$3] + $rt_imul($par1 - 1 | 0, nms_EnchantmentProtection_levelEnchantability.data[var$3]) | 0;
},
nms_EnchantmentProtection_getMaxEnchantability = ($this, $par1) => {
    let var$2, var$3;
    var$2 = nms_EnchantmentProtection_baseEnchantability.data;
    var$3 = $this.$protectionType;
    return (var$2[var$3] + $rt_imul($par1 - 1 | 0, nms_EnchantmentProtection_levelEnchantability.data[var$3]) | 0) + nms_EnchantmentProtection_thresholdEnchantability.data[var$3] | 0;
},
nms_EnchantmentProtection_getMaxLevel = $this => {
    return 4;
},
nms_EnchantmentProtection_calcModifierDamage = ($this, $par1, $par2DamageSource) => {
    let $var3;
    if ($par2DamageSource.$isDamageAllowedInCreativeMode)
        return 0;
    $var3 = (6 + $rt_imul($par1, $par1) | 0) / 3.0;
    $par1 = $this.$protectionType;
    if (!$par1) {
        $var3 = $var3 * 0.75;
        $par1 = $var3 | 0;
        if ($var3 < $par1)
            $par1 = $par1 - 1 | 0;
    } else if ($par1 == 1 && $par2DamageSource.$fireDamage) {
        $var3 = $var3 * 1.25;
        $par1 = $var3 | 0;
        if ($var3 < $par1)
            $par1 = $par1 - 1 | 0;
    } else if ($par1 == 2 && $par2DamageSource === nms_DamageSource_fall) {
        $var3 = $var3 * 2.5;
        $par1 = $var3 | 0;
        if ($var3 < $par1)
            $par1 = $par1 - 1 | 0;
    } else if ($par1 == 3 && $par2DamageSource.$explosion) {
        $var3 = $var3 * 1.5;
        $par1 = $var3 | 0;
        if ($var3 < $par1)
            $par1 = $par1 - 1 | 0;
    } else if ($par1 == 4 && $par2DamageSource.$projectile) {
        $var3 = $var3 * 1.5;
        $par1 = $var3 | 0;
        if ($var3 < $par1)
            $par1 = $par1 - 1 | 0;
    } else
        $par1 = 0;
    return $par1;
},
nms_EnchantmentProtection_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = nms_EnchantmentProtection_protectionName.data[$this.$protectionType];
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2656));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EnchantmentProtection_canApplyTogether = ($this, $par1Enchantment) => {
    let var$2, var$3;
    if (!($par1Enchantment instanceof nms_EnchantmentProtection))
        return $this === $par1Enchantment ? 0 : 1;
    var$2 = $par1Enchantment.$protectionType;
    var$3 = $this.$protectionType;
    return var$2 == var$3 ? 0 : var$3 != 2 && var$2 != 2 ? 0 : 1;
},
nms_EnchantmentProtection__clinit_ = () => {
    nms_EnchantmentProtection_protectionName = $rt_wrapArray(jl_String, [$rt_s(1489), $rt_s(770), $rt_s(2657), $rt_s(2583), $rt_s(2658)]);
    nms_EnchantmentProtection_baseEnchantability = $rt_createIntArrayFromData([1, 10, 5, 5, 3]);
    nms_EnchantmentProtection_levelEnchantability = $rt_createIntArrayFromData([11, 8, 6, 8, 6]);
    nms_EnchantmentProtection_thresholdEnchantability = $rt_createIntArrayFromData([20, 12, 10, 12, 15]);
},
nms_EnchantmentOxygen = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentOxygen_getMinEnchantability = ($this, $par1) => {
    return 10 * $par1 | 0;
},
nms_EnchantmentOxygen_getMaxEnchantability = ($this, $par1) => {
    return (10 * $par1 | 0) + 30 | 0;
},
nms_EnchantmentOxygen_getMaxLevel = $this => {
    return 3;
},
nms_EnchantmentWaterWorker = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentWaterWorker_getMinEnchantability = ($this, $par1) => {
    return 1;
},
nms_EnchantmentWaterWorker_getMaxEnchantability = ($this, $par1) => {
    return 41;
},
nms_EnchantmentWaterWorker_getMaxLevel = $this => {
    return 1;
},
nms_EnchantmentThorns = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentThorns_getMinEnchantability = ($this, $par1) => {
    return 10 + (20 * ($par1 - 1 | 0) | 0) | 0;
},
nms_EnchantmentThorns_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentThorns_getMaxLevel = $this => {
    return 3;
},
nms_EnchantmentThorns_canApply = ($this, $par1ItemStack) => {
    let var$2, var$3;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data;
    var$3 = $par1ItemStack.$itemID;
    return var$2[var$3] instanceof nms_ItemArmor ? 1 : nms_EnumEnchantmentType_canEnchantItem($this.$type0, var$2[var$3]);
},
nms_EnchantmentThorns_func_92096_a = ($par0Entity, $par1EntityLivingBase, $par2Random) => {
    let var$4, var$5, $var3, var$7, var$8, var$9, var$10, $var4, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var4 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var3 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par2Random = $thread.pop();$par1EntityLivingBase = $thread.pop();$par0Entity = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EnchantmentHelper_$callClinit();
        nms_Enchantment_$callClinit();
        var$4 = nms_Enchantment_thorns.$effectId;
        var$5 = $par1EntityLivingBase.$getLastActiveItems();
        if (var$5 === null)
            $var3 = 0;
        else {
            var$5 = var$5.data;
            $var3 = 0;
            var$7 = var$5.length;
            var$8 = 0;
            while (var$8 < var$7) {
                var$9 = nms_EnchantmentHelper_getEnchantmentLevel(var$4, var$5[var$8]);
                if (var$9 > $var3)
                    $var3 = var$9;
                var$8 = var$8 + 1 | 0;
            }
        }
        var$10 = nms_Enchantment_thorns;
        var$5 = ($par1EntityLivingBase.$getLastActiveItems()).data;
        var$4 = var$5.length;
        var$7 = 0;
        a: {
            while (true) {
                if (var$7 >= var$4) {
                    $var4 = null;
                    break a;
                }
                $var4 = var$5[var$7];
                if ($var4 !== null && nms_EnchantmentHelper_getEnchantmentLevel(var$10.$effectId, $var4) > 0)
                    break;
                var$7 = var$7 + 1 | 0;
            }
        }
        if ($var3 <= 0)
            var$4 = 0;
        else {
            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$12;
            var$4 = Long_lo(Long_shru(var$12, 24)) / 1.6777216E7 >= 0.15000000596046448 * $var3 ? 0 : 1;
        }
        if (!var$4) {
            if ($var4 === null)
                return;
            var$4 = 1;
            $ptr = 1;
            continue main;
        }
        var$10 = new nms_EntityDamageSource;
        var$10.$hungerDamage = 0.30000001192092896;
        var$10.$damageType = $rt_s(2634);
        var$10.$damageSourceEntity = $par1EntityLivingBase;
        var$10.$magicDamage = 1;
        if ($var3 > 10)
            var$4 = $var3 - 10 | 0;
        else {
            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$12;
            var$4 = 1 + Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$12, 17)))), 31)) | 0;
        }
        var$13 = var$4;
        $ptr = 2;
        continue main;
    case 1:
        nms_ItemStack_damageItem($var4, var$4, $par1EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        $par0Entity.$attackEntityFrom(var$10, var$13);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $rt_s(2659);
        var$13 = 0.5;
        var$14 = 1.0;
        $ptr = 3;
    case 3:
        $par0Entity.$playSound($par2Random, var$13, var$14);
        if ($rt_suspending()) {
            break main;
        }
        if ($var4 === null)
            return;
        var$4 = 3;
        $ptr = 4;
    case 4:
        nms_ItemStack_damageItem($var4, var$4, $par1EntityLivingBase);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0Entity, $par1EntityLivingBase, $par2Random, var$4, var$5, $var3, var$7, var$8, var$9, var$10, $var4, var$12, var$13, var$14, $ptr);
};
function nms_EnchantmentDamage() {
    nms_Enchantment.call(this);
    this.$damageType0 = 0;
}
let nms_EnchantmentDamage_protectionName = null,
nms_EnchantmentDamage_baseEnchantability = null,
nms_EnchantmentDamage_levelEnchantability = null,
nms_EnchantmentDamage_thresholdEnchantability = null,
nms_EnchantmentDamage_getMinEnchantability = ($this, $par1) => {
    let var$2, var$3;
    var$2 = nms_EnchantmentDamage_baseEnchantability.data;
    var$3 = $this.$damageType0;
    return var$2[var$3] + $rt_imul($par1 - 1 | 0, nms_EnchantmentDamage_levelEnchantability.data[var$3]) | 0;
},
nms_EnchantmentDamage_getMaxEnchantability = ($this, $par1) => {
    let var$2, var$3;
    var$2 = nms_EnchantmentDamage_baseEnchantability.data;
    var$3 = $this.$damageType0;
    return (var$2[var$3] + $rt_imul($par1 - 1 | 0, nms_EnchantmentDamage_levelEnchantability.data[var$3]) | 0) + nms_EnchantmentDamage_thresholdEnchantability.data[var$3] | 0;
},
nms_EnchantmentDamage_getMaxLevel = $this => {
    return 5;
},
nms_EnchantmentDamage_calcModifierLiving = ($this, $par1, $par2EntityLivingBase) => {
    let var$3;
    var$3 = $this.$damageType0;
    return !var$3 ? $par1 * 1.25 : var$3 == 1 && $par2EntityLivingBase.$getCreatureAttribute() === nms_EnumCreatureAttribute_UNDEAD ? $par1 * 2.5 : $this.$damageType0 == 2 && $par2EntityLivingBase.$getCreatureAttribute() === nms_EnumCreatureAttribute_ARTHROPOD ? $par1 * 2.5 : 0.0;
},
nms_EnchantmentDamage_getName = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = nms_EnchantmentDamage_protectionName.data[$this.$damageType0];
    var$2 = new jl_StringBuilder;
    var$2.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$2, var$2.$length0, $rt_s(2660));
    var$3 = var$2.$length0;
    if (var$1 === null)
        var$1 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$2, var$3, var$1);
    var$1 = new jl_String;
    var$4 = var$2.$buffer;
    var$5 = var$4.data;
    var$6 = var$2.$length0;
    var$7 = var$5.length;
    if (var$6 >= 0 && var$6 <= (var$7 - 0 | 0)) {
        var$1.$nativeString = $rt_charArrayToString(var$4.data, 0, var$6);
        return var$1;
    }
    var$1 = new jl_IndexOutOfBoundsException;
    var$1.$suppressionEnabled = 1;
    var$1.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace(var$1);
    $rt_throw(var$1);
},
nms_EnchantmentDamage_canApplyTogether = ($this, $par1Enchantment) => {
    return $par1Enchantment instanceof nms_EnchantmentDamage ? 0 : 1;
},
nms_EnchantmentDamage_canApply = ($this, $par1ItemStack) => {
    let var$2, var$3;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data;
    var$3 = $par1ItemStack.$itemID;
    return var$2[var$3] instanceof nms_ItemAxe ? 1 : nms_EnumEnchantmentType_canEnchantItem($this.$type0, var$2[var$3]);
},
nms_EnchantmentDamage__clinit_ = () => {
    nms_EnchantmentDamage_protectionName = $rt_wrapArray(jl_String, [$rt_s(1489), $rt_s(2661), $rt_s(2662)]);
    nms_EnchantmentDamage_baseEnchantability = $rt_createIntArrayFromData([1, 5, 5]);
    nms_EnchantmentDamage_levelEnchantability = $rt_createIntArrayFromData([11, 8, 8]);
    nms_EnchantmentDamage_thresholdEnchantability = $rt_createIntArrayFromData([20, 20, 20]);
},
nms_EnchantmentKnockback = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentKnockback_getMinEnchantability = ($this, $par1) => {
    return 5 + (20 * ($par1 - 1 | 0) | 0) | 0;
},
nms_EnchantmentKnockback_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentKnockback_getMaxLevel = $this => {
    return 2;
},
nms_EnchantmentFireAspect = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentFireAspect_getMinEnchantability = ($this, $par1) => {
    return 10 + (20 * ($par1 - 1 | 0) | 0) | 0;
},
nms_EnchantmentFireAspect_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentFireAspect_getMaxLevel = $this => {
    return 2;
},
nms_EnchantmentLootBonus = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentLootBonus_getMinEnchantability = ($this, $par1) => {
    return 15 + (($par1 - 1 | 0) * 9 | 0) | 0;
},
nms_EnchantmentLootBonus_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentLootBonus_getMaxLevel = $this => {
    return 3;
},
nms_EnchantmentLootBonus_canApplyTogether = ($this, $par1Enchantment) => {
    let var$2;
    var$2 = $this === $par1Enchantment ? 0 : 1;
    a: {
        if (var$2) {
            var$2 = $par1Enchantment.$effectId;
            nms_Enchantment_$callClinit();
            if (var$2 != nms_Enchantment_silkTouch.$effectId) {
                var$2 = 1;
                break a;
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EnchantmentDigging = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentDigging_getMinEnchantability = ($this, $par1) => {
    return 1 + (10 * ($par1 - 1 | 0) | 0) | 0;
},
nms_EnchantmentDigging_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentDigging_getMaxLevel = $this => {
    return 5;
},
nms_EnchantmentDigging_canApply = ($this, $par1ItemStack) => {
    let var$2, var$3;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data;
    var$3 = $par1ItemStack.$itemID;
    return var$2[var$3].$itemID0 == nms_Item_shears.$itemID0 ? 1 : nms_EnumEnchantmentType_canEnchantItem($this.$type0, var$2[var$3]);
},
nms_EnchantmentUntouching = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentUntouching_getMinEnchantability = ($this, $par1) => {
    return 15;
},
nms_EnchantmentUntouching_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentUntouching_getMaxLevel = $this => {
    return 1;
},
nms_EnchantmentUntouching_canApplyTogether = ($this, $par1Enchantment) => {
    let var$2;
    var$2 = $this === $par1Enchantment ? 0 : 1;
    a: {
        if (var$2) {
            var$2 = $par1Enchantment.$effectId;
            nms_Enchantment_$callClinit();
            if (var$2 != nms_Enchantment_fortune.$effectId) {
                var$2 = 1;
                break a;
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EnchantmentUntouching_canApply = ($this, $par1ItemStack) => {
    let var$2, var$3;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data;
    var$3 = $par1ItemStack.$itemID;
    return var$2[var$3].$itemID0 == nms_Item_shears.$itemID0 ? 1 : nms_EnumEnchantmentType_canEnchantItem($this.$type0, var$2[var$3]);
},
nms_EnchantmentDurability = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentDurability_getMinEnchantability = ($this, $par1) => {
    return 5 + (($par1 - 1 | 0) * 8 | 0) | 0;
},
nms_EnchantmentDurability_getMaxEnchantability = ($this, $par1) => {
    return (1 + ($par1 * 10 | 0) | 0) + 50 | 0;
},
nms_EnchantmentDurability_getMaxLevel = $this => {
    return 3;
},
nms_EnchantmentDurability_canApply = ($this, $par1ItemStack) => {
    let var$2, var$3;
    nms_Item_$callClinit();
    var$2 = nms_Item_itemsList.data;
    var$3 = $par1ItemStack.$itemID;
    return (var$2[var$3].$maxDamage <= 0 ? 0 : 1) ? 1 : nms_EnumEnchantmentType_canEnchantItem($this.$type0, var$2[var$3]);
},
nms_EnchantmentArrowDamage = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentArrowDamage_getMinEnchantability = ($this, $par1) => {
    return 1 + (($par1 - 1 | 0) * 10 | 0) | 0;
},
nms_EnchantmentArrowDamage_getMaxEnchantability = ($this, $par1) => {
    return (1 + (($par1 - 1 | 0) * 10 | 0) | 0) + 15 | 0;
},
nms_EnchantmentArrowDamage_getMaxLevel = $this => {
    return 5;
},
nms_EnchantmentArrowKnockback = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentArrowKnockback_getMinEnchantability = ($this, $par1) => {
    return 12 + (($par1 - 1 | 0) * 20 | 0) | 0;
},
nms_EnchantmentArrowKnockback_getMaxEnchantability = ($this, $par1) => {
    return (12 + (($par1 - 1 | 0) * 20 | 0) | 0) + 25 | 0;
},
nms_EnchantmentArrowKnockback_getMaxLevel = $this => {
    return 2;
},
nms_EnchantmentArrowFire = $rt_classWithoutFields(nms_Enchantment);
let nms_EnchantmentArrowFire_getMinEnchantability = ($this, $par1) => {
    return 20;
},
nms_EnchantmentArrowFire_getMaxEnchantability = ($this, $par1) => {
    return 50;
},
nms_EnchantmentArrowFire_getMaxLevel = $this => {
    return 1;
},
nms_EnchantmentArrowInfinite = $rt_classWithoutFields(nms_Enchantment),
nms_EnchantmentArrowInfinite_getMinEnchantability = ($this, $par1) => {
    return 20;
},
nms_EnchantmentArrowInfinite_getMaxEnchantability = ($this, $par1) => {
    return 50;
},
nms_EnchantmentArrowInfinite_getMaxLevel = $this => {
    return 1;
},
nms_EntityWitherAttackFilter = $rt_classWithoutFields(),
nms_EntityWitherAttackFilter__init_ = $this => {
    return;
},
nms_EntityWitherAttackFilter__init_0 = () => {
    let var_0 = new nms_EntityWitherAttackFilter();
    nms_EntityWitherAttackFilter__init_(var_0);
    return var_0;
},
nms_EntityWitherAttackFilter_isEntityApplicable = ($this, $par1Entity) => {
    return $par1Entity instanceof nms_EntityLivingBase && $par1Entity.$getCreatureAttribute() !== nms_EnumCreatureAttribute_UNDEAD ? 1 : 0;
};
function nms_EntityAIAvoidEntitySelector() {
    jl_Object.call(this);
    this.$entityAvoiderAI = null;
}
let nms_EntityAIAvoidEntitySelector_isEntityApplicable = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            if ($par1Entity.$isEntityAlive()) {
                var$2 = $this.$entityAvoiderAI.$theEntity4.$senses;
                var$3 = var$2.$seenEntities;
                var$4 = 0;
                var$5 = var$3.$modCount;
                var$6 = var$3.$size();
                b: {
                    while (true) {
                        if (!(var$4 >= var$6 ? 0 : 1)) {
                            var$4 = 0;
                            break b;
                        }
                        if (var$5 < var$3.$modCount)
                            break;
                        var$7 = var$4 + 1 | 0;
                        var$8 = var$3.$get(var$4);
                        if (var$8 === $par1Entity ? 1 : var$8 !== null ? var$8.$equals($par1Entity) : $par1Entity !== null ? 0 : 1) {
                            var$4 = 1;
                            break b;
                        }
                        var$4 = var$7;
                    }
                    $par1Entity = new ju_ConcurrentModificationException;
                    $par1Entity.$suppressionEnabled = 1;
                    $par1Entity.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1Entity);
                    $rt_throw($par1Entity);
                }
                if (var$4)
                    var$4 = 1;
                else {
                    var$3 = var$2.$unseenEntities;
                    var$6 = 0;
                    var$7 = var$3.$modCount;
                    var$5 = var$3.$size();
                    c: {
                        while (true) {
                            if (!(var$6 >= var$5 ? 0 : 1)) {
                                var$4 = 0;
                                break c;
                            }
                            if (var$7 < var$3.$modCount)
                                break;
                            var$9 = var$6 + 1 | 0;
                            var$8 = var$3.$get(var$6);
                            if (var$8 === $par1Entity ? 1 : var$8 !== null ? var$8.$equals($par1Entity) : $par1Entity !== null ? 0 : 1) {
                                var$4 = 1;
                                break c;
                            }
                            var$6 = var$9;
                        }
                        $par1Entity = new ju_ConcurrentModificationException;
                        $par1Entity.$suppressionEnabled = 1;
                        $par1Entity.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par1Entity);
                        $rt_throw($par1Entity);
                    }
                    if (!var$4) {
                        var$3 = var$2.$entityObj1;
                        $ptr = 1;
                        continue main;
                    }
                    var$4 = 0;
                }
                if (var$4) {
                    var$4 = 1;
                    break a;
                }
            }
            var$4 = 0;
        }
        return var$4;
    case 1:
        $tmp = nms_EntityLivingBase_canEntityBeSeen(var$3, $par1Entity);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (!var$4) {
            var$3 = var$2.$unseenEntities;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$10 = var$3.$array.data;
            var$5 = var$3.$size0;
            var$3.$size0 = var$5 + 1 | 0;
            var$10[var$5] = $par1Entity;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        } else {
            var$3 = var$2.$seenEntities;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$10 = var$3.$array.data;
            var$5 = var$3.$size0;
            var$3.$size0 = var$5 + 1 | 0;
            var$10[var$5] = $par1Entity;
            var$3.$modCount = var$3.$modCount + 1 | 0;
        }
        return !var$4 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, $ptr);
};
function nms_EntityAITradePlayer() {
    nms_EntityAIBase.call(this);
    this.$villager = null;
}
let nms_EntityAITradePlayer_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $var1 = $this.$villager;
        if (!$var1.$isDead) {
            $var1 = $var1.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[134];
            if (var$2 === null) {
                $var1 = $var1.$elementData.data[0];
                while ($var1 !== null && $var1.$key !== null) {
                    $var1 = $var1.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = $var1.$elementData.data;
                $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($var1 !== null) {
                    if ($var1.$origKeyHash == var$3) {
                        var$5 = $var1.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    $var1 = $var1.$next3;
                }
            }
            if (($var1 === null ? null : $var1.$value0).$watchedObject.$value3 > 0.0) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    if (!var$6)
        return 0;
    var$5 = $this.$villager;
    if (var$5.$inWater)
        return 0;
    if (!var$5.$onGround)
        return 0;
    if (var$5.$velocityChanged)
        return 0;
    $var1 = var$5.$buyingPlayer;
    if ($var1 === null)
        var$6 = 0;
    else {
        var$7 = var$5.$posX - $var1.$posX;
        var$8 = var$5.$posY - $var1.$posY;
        var$9 = var$5.$posZ - $var1.$posZ;
        var$6 = var$7 * var$7 + var$8 * var$8 + var$9 * var$9 > 16.0 ? 0 : $var1.$openContainer instanceof nms_Container;
    }
    return var$6;
},
nms_EntityAITradePlayer_startExecuting = $this => {
    $this.$villager.$navigator.$currentPath = null;
},
nms_EntityAITradePlayer_resetTask = $this => {
    $this.$villager.$buyingPlayer = null;
};
function nms_EntityAILookAtTradePlayer() {
    nms_EntityAIWatchClosest.call(this);
    this.$theMerchant1 = null;
}
let nms_EntityAILookAtTradePlayer_shouldExecute = $this => {
    let var$1;
    var$1 = $this.$theMerchant1.$buyingPlayer;
    if (!(var$1 === null ? 0 : 1))
        return 0;
    $this.$closestEntity = var$1;
    return 1;
};
function nms_EntityAIMoveIndoors() {
    let a = this; nms_EntityAIBase.call(a);
    a.$entityObj0 = null;
    a.$doorInfo0 = null;
    a.$insidePosX = 0;
    a.$insidePosZ = 0;
}
let nms_EntityAIMoveIndoors_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18;
    $var1 = $this.$entityObj0;
    var$2 = $var1.$worldObj;
    var$3 = var$2.$skylightSubtracted >= 4 ? 0 : 1;
    a: {
        if (var$3) {
            var$4 = var$2.$prevRainingStrength;
            if (!(var$4 + (var$2.$rainingStrength - var$4) * 1.0 <= 0.2 ? 0 : 1))
                break a;
        }
        if (!var$2.$provider.$hasNoSky) {
            var$5 = $var1.$rand;
            var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$5.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
            while (true) {
                var$8 = var$7 % 50 | 0;
                if (((var$7 - var$8 | 0) + 49 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul(var$5.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$5.$seed = var$6;
                var$7 = Long_lo(Long_shru(var$6, 17));
            }
            if (var$8)
                return 0;
            var$3 = $this.$insidePosX;
            if (var$3 != (-1)) {
                var$9 = var$3;
                var$10 = $var1.$posY;
                var$11 = $this.$insidePosZ;
                var$9 = $var1.$posX - var$9;
                var$10 = var$10 - var$10;
                var$11 = $var1.$posZ - var$11;
                if (var$9 * var$9 + var$10 * var$10 + var$11 * var$11 < 4.0)
                    return 0;
            }
            var$2 = var$2.$villageCollectionObj;
            var$9 = $var1.$posX;
            var$8 = var$9 | 0;
            if (var$9 < var$8)
                var$8 = var$8 - 1 | 0;
            var$9 = $var1.$posY;
            var$7 = var$9 | 0;
            if (var$9 < var$7)
                var$7 = var$7 - 1 | 0;
            var$9 = $var1.$posZ;
            var$12 = var$9 | 0;
            if (var$9 < var$12)
                var$12 = var$12 - 1 | 0;
            $var1 = nms_VillageCollection_findNearestVillage(var$2, var$8, var$7, var$12, 14);
            if ($var1 === null)
                return 0;
            var$2 = $this.$entityObj0;
            var$9 = var$2.$posX;
            var$8 = var$9 | 0;
            if (var$9 < var$8)
                var$8 = var$8 - 1 | 0;
            var$9 = var$2.$posY;
            var$7 = var$9 | 0;
            if (var$9 < var$7)
                var$7 = var$7 - 1 | 0;
            var$9 = var$2.$posZ;
            var$12 = var$9 | 0;
            if (var$9 < var$12)
                var$12 = var$12 - 1 | 0;
            var$2 = null;
            var$3 = 2147483647;
            $var1 = $var1.$villageDoorInfoList;
            var$13 = 0;
            var$14 = $var1.$modCount;
            var$15 = $var1.$size();
            while (var$13 >= var$15 ? 0 : 1) {
                if (var$14 < $var1.$modCount) {
                    $var1 = new ju_ConcurrentModificationException;
                    $var1.$suppressionEnabled = 1;
                    $var1.$writableStackTrace = 1;
                    $rt_throw($var1);
                }
                var$16 = var$13 + 1 | 0;
                var$5 = $var1.$get(var$13);
                var$17 = var$8 - var$5.$posX2 | 0;
                var$13 = var$7 - var$5.$posY2 | 0;
                var$18 = var$12 - var$5.$posZ2 | 0;
                var$13 = ($rt_imul(var$17, var$17) + $rt_imul(var$13, var$13) | 0) + $rt_imul(var$18, var$18) | 0;
                var$17 = var$13 <= 256 ? var$5.$doorOpeningRestrictionCounter : var$13 * 1000 | 0;
                if (var$17 < var$3) {
                    var$2 = var$5;
                    var$3 = var$17;
                }
                var$13 = var$16;
            }
            $this.$doorInfo0 = var$2;
            return var$2 === null ? 0 : 1;
        }
    }
    return 0;
},
nms_EntityAIMoveIndoors_continueExecuting = $this => {
    let var$1;
    var$1 = $this.$entityObj0.$navigator.$currentPath;
    return (var$1 !== null && !(var$1.$currentPathIndex < var$1.$pathLength ? 0 : 1) ? 0 : 1) ? 0 : 1;
},
nms_EntityAIMoveIndoors_startExecuting = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$insidePosX = (-1);
        $var1 = $this.$entityObj0;
        var$2 = $this.$doorInfo0;
        var$3 = var$2.$posX2 + var$2.$insideDirectionX | 0;
        var$4 = var$2.$posY2;
        var$5 = var$2.$posZ2 + var$2.$insideDirectionZ | 0;
        var$6 = $var1.$posX - var$3;
        var$7 = $var1.$posY - var$4;
        var$8 = $var1.$posZ - var$5;
        if (var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 256.0) {
            var$9 = 14;
            var$10 = 3;
            var$2 = nms_Vec3Pool_getVecFromPool($var1.$worldObj.$vecPool, var$3 + 0.5, var$4, var$5 + 0.5);
            nms_RandomPositionGenerator_$callClinit();
            var$11 = nms_RandomPositionGenerator_staticVector;
            var$11.$xCoord = var$2.$xCoord - $var1.$posX;
            var$11.$yCoord = var$2.$yCoord - $var1.$posY;
            var$11.$zCoord = var$2.$zCoord - $var1.$posZ;
            $ptr = 1;
            continue main;
        }
        $var1 = $var1.$navigator;
        var$3 = var$3 + 0.5;
        var$6 = var$5 + 0.5;
        var$5 = 1.0;
        var$10 = var$3 | 0;
        if (var$3 < var$10)
            var$10 = var$10 - 1 | 0;
        var$3 = var$10;
        var$4 = var$4 | 0;
        var$10 = var$6 | 0;
        if (var$6 < var$10)
            var$10 = var$10 - 1 | 0;
        var$6 = var$10;
        var$2 = $var1.$theEntity;
        if (var$2.$onGround)
            var$9 = 1;
        else {
            if ($var1.$canSwim) {
                $ptr = 2;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            var$2 = null;
            $ptr = 5;
            continue main;
        }
        var$2 = $var1.$worldObj3;
        var$11 = $var1.$theEntity;
        var$12 = var$3 | 0;
        if (var$3 < var$12)
            var$12 = var$12 - 1 | 0;
        var$9 = var$4 | 0;
        var$13 = var$6 | 0;
        if (var$6 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = $var1.$pathSearchRange;
        if (var$14.$field_111133_g) {
            var$14.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$14);
            var$14.$field_111133_g = 0;
        }
        var$15 = var$14.$field_111139_h;
        var$10 = $var1.$canPassOpenWoodenDoors;
        var$16 = $var1.$canPassClosedWoodenDoors;
        var$17 = $var1.$avoidsWater;
        var$18 = $var1.$canSwim;
        $ptr = 8;
        continue main;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var1, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return;
        var$2 = $this.$entityObj0.$navigator;
        var$6 = $var1.$xCoord;
        var$3 = $var1.$yCoord;
        var$4 = $var1.$zCoord;
        var$5 = 1.0;
        var$10 = var$6 | 0;
        if (var$6 < var$10)
            var$10 = var$10 - 1 | 0;
        var$6 = var$10;
        var$3 = var$3 | 0;
        var$9 = var$4 | 0;
        if (var$4 < var$9)
            var$9 = var$9 - 1 | 0;
        var$4 = var$9;
        $var1 = var$2.$theEntity;
        if ($var1.$onGround)
            var$9 = 1;
        else {
            if (var$2.$canSwim) {
                $ptr = 4;
                continue main;
            }
            var$9 = 0;
        }
        if (!var$9) {
            $var1 = null;
            $ptr = 7;
            continue main;
        }
        $var1 = var$2.$worldObj3;
        var$11 = var$2.$theEntity;
        var$12 = var$6 | 0;
        if (var$6 < var$12)
            var$12 = var$12 - 1 | 0;
        var$9 = var$3 | 0;
        var$13 = var$4 | 0;
        if (var$4 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = var$2.$pathSearchRange;
        if (var$14.$field_111133_g) {
            var$14.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$14);
            var$14.$field_111133_g = 0;
        }
        var$15 = var$14.$field_111139_h;
        var$10 = var$2.$canPassOpenWoodenDoors;
        var$16 = var$2.$canPassClosedWoodenDoors;
        var$17 = var$2.$avoidsWater;
        var$18 = var$2.$canSwim;
        $ptr = 9;
        continue main;
    case 2:
        $tmp = var$2.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            var$2 = $var1.$theEntity;
            $ptr = 3;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$2 = null;
            $ptr = 5;
            continue main;
        }
        var$2 = $var1.$worldObj3;
        var$11 = $var1.$theEntity;
        var$12 = var$3 | 0;
        if (var$3 < var$12)
            var$12 = var$12 - 1 | 0;
        var$9 = var$4 | 0;
        var$13 = var$6 | 0;
        if (var$6 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = $var1.$pathSearchRange;
        if (var$14.$field_111133_g) {
            var$14.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$14);
            var$14.$field_111133_g = 0;
        }
        var$15 = var$14.$field_111139_h;
        var$10 = $var1.$canPassOpenWoodenDoors;
        var$16 = $var1.$canPassClosedWoodenDoors;
        var$17 = $var1.$avoidsWater;
        var$18 = $var1.$canSwim;
        $ptr = 8;
        continue main;
    case 3:
        $tmp = var$2.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            var$2 = null;
            $ptr = 5;
            continue main;
        }
        var$2 = $var1.$worldObj3;
        var$11 = $var1.$theEntity;
        var$12 = var$3 | 0;
        if (var$3 < var$12)
            var$12 = var$12 - 1 | 0;
        var$9 = var$4 | 0;
        var$13 = var$6 | 0;
        if (var$6 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = $var1.$pathSearchRange;
        if (var$14.$field_111133_g) {
            var$14.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$14);
            var$14.$field_111133_g = 0;
        }
        var$15 = var$14.$field_111139_h;
        var$10 = $var1.$canPassOpenWoodenDoors;
        var$16 = $var1.$canPassClosedWoodenDoors;
        var$17 = $var1.$avoidsWater;
        var$18 = $var1.$canSwim;
        $ptr = 8;
        continue main;
    case 4:
        $tmp = $var1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!var$9) {
            $var1 = var$2.$theEntity;
            $ptr = 6;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            $var1 = null;
            $ptr = 7;
            continue main;
        }
        $var1 = var$2.$worldObj3;
        var$11 = var$2.$theEntity;
        var$12 = var$6 | 0;
        if (var$6 < var$12)
            var$12 = var$12 - 1 | 0;
        var$9 = var$3 | 0;
        var$13 = var$4 | 0;
        if (var$4 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = var$2.$pathSearchRange;
        if (var$14.$field_111133_g) {
            var$14.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$14);
            var$14.$field_111133_g = 0;
        }
        var$15 = var$14.$field_111139_h;
        var$10 = var$2.$canPassOpenWoodenDoors;
        var$16 = var$2.$canPassClosedWoodenDoors;
        var$17 = var$2.$avoidsWater;
        var$18 = var$2.$canSwim;
        $ptr = 9;
        continue main;
    case 5:
        nms_PathNavigate_setPath($var1, var$2, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        $tmp = $var1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (!((var$9 ? 1 : 0) ? 1 : 0)) {
            $var1 = null;
            $ptr = 7;
            continue main;
        }
        $var1 = var$2.$worldObj3;
        var$11 = var$2.$theEntity;
        var$12 = var$6 | 0;
        if (var$6 < var$12)
            var$12 = var$12 - 1 | 0;
        var$9 = var$3 | 0;
        var$13 = var$4 | 0;
        if (var$4 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = var$2.$pathSearchRange;
        if (var$14.$field_111133_g) {
            var$14.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$14);
            var$14.$field_111133_g = 0;
        }
        var$15 = var$14.$field_111139_h;
        var$10 = var$2.$canPassOpenWoodenDoors;
        var$16 = var$2.$canPassClosedWoodenDoors;
        var$17 = var$2.$avoidsWater;
        var$18 = var$2.$canSwim;
        $ptr = 9;
        continue main;
    case 7:
        nms_PathNavigate_setPath(var$2, $var1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 8:
        $tmp = nms_World_getEntityPathToXYZ(var$2, var$11, var$12, var$9, var$13, var$15, var$10, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$2 = $tmp;
        $ptr = 5;
        continue main;
    case 9:
        $tmp = nms_World_getEntityPathToXYZ($var1, var$11, var$12, var$9, var$13, var$15, var$10, var$16, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $ptr = 7;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_EntityAIMoveIndoors_resetTask = $this => {
    let var$1;
    var$1 = $this.$doorInfo0;
    $this.$insidePosX = var$1.$posX2 + var$1.$insideDirectionX | 0;
    $this.$insidePosZ = var$1.$posZ2 + var$1.$insideDirectionZ | 0;
    $this.$doorInfo0 = null;
};
function nms_EntityAIRestrictOpenDoor() {
    let a = this; nms_EntityAIBase.call(a);
    a.$entityObj = null;
    a.$frontDoor = null;
}
let nms_EntityAIRestrictOpenDoor_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14;
    $var1 = $this.$entityObj;
    var$2 = $var1.$worldObj;
    if (var$2.$skylightSubtracted >= 4 ? 0 : 1)
        return 0;
    var$2 = var$2.$villageCollectionObj;
    var$3 = $var1.$posX;
    var$4 = var$3 | 0;
    if (var$3 < var$4)
        var$4 = var$4 - 1 | 0;
    var$3 = $var1.$posY;
    var$5 = var$3 | 0;
    if (var$3 < var$5)
        var$5 = var$5 - 1 | 0;
    var$3 = $var1.$posZ;
    var$6 = var$3 | 0;
    if (var$3 < var$6)
        var$6 = var$6 - 1 | 0;
    $var1 = nms_VillageCollection_findNearestVillage(var$2, var$4, var$5, var$6, 16);
    if ($var1 === null)
        return 0;
    var$2 = $this.$entityObj;
    var$3 = var$2.$posX;
    var$6 = var$3 | 0;
    if (var$3 < var$6)
        var$6 = var$6 - 1 | 0;
    var$3 = var$2.$posY;
    var$7 = var$3 | 0;
    if (var$3 < var$7)
        var$7 = var$7 - 1 | 0;
    var$3 = var$2.$posZ;
    var$8 = var$3 | 0;
    if (var$3 < var$8)
        var$8 = var$8 - 1 | 0;
    var$2 = null;
    var$9 = 2147483647;
    $var1 = $var1.$villageDoorInfoList;
    var$5 = 0;
    var$10 = $var1.$modCount;
    var$11 = $var1.$size();
    while (true) {
        if (!(var$5 >= var$11 ? 0 : 1)) {
            $this.$frontDoor = var$2;
            if (var$2 === null)
                var$9 = 0;
            else {
                $var1 = $this.$entityObj;
                var$3 = $var1.$posX;
                var$5 = var$3 | 0;
                if (var$3 < var$5)
                    var$5 = var$5 - 1 | 0;
                var$3 = $var1.$posY;
                var$6 = var$3 | 0;
                if (var$3 < var$6)
                    var$6 = var$6 - 1 | 0;
                var$3 = $var1.$posZ;
                var$4 = var$3 | 0;
                if (var$3 < var$4)
                    var$4 = var$4 - 1 | 0;
                var$9 = (var$5 - var$2.$posX2 | 0) - var$2.$insideDirectionX | 0;
                var$6 = var$6 - var$2.$posY2 | 0;
                var$5 = (var$4 - var$2.$posZ2 | 0) - var$2.$insideDirectionZ | 0;
                var$9 = (($rt_imul(var$9, var$9) + $rt_imul(var$6, var$6) | 0) + $rt_imul(var$5, var$5) | 0) >= 2.25 ? 0 : 1;
            }
            return var$9;
        }
        if (var$10 < $var1.$modCount)
            break;
        var$12 = var$5 + 1 | 0;
        var$13 = $var1.$get(var$5);
        var$5 = var$6 - var$13.$posX2 | 0;
        var$4 = var$7 - var$13.$posY2 | 0;
        var$14 = var$8 - var$13.$posZ2 | 0;
        var$4 = ($rt_imul(var$5, var$5) + $rt_imul(var$4, var$4) | 0) + $rt_imul(var$14, var$14) | 0;
        if (var$4 < var$9) {
            var$2 = var$13;
            var$9 = var$4;
        }
        var$5 = var$12;
    }
    $var1 = new ju_ConcurrentModificationException;
    $var1.$suppressionEnabled = 1;
    $var1.$writableStackTrace = 1;
    $rt_throw($var1);
},
nms_EntityAIRestrictOpenDoor_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = $this.$entityObj;
    var$2 = var$1.$worldObj.$skylightSubtracted >= 4 ? 0 : 1;
    a: {
        if (var$2)
            var$2 = 0;
        else {
            var$3 = $this.$frontDoor;
            if (!var$3.$isDetachedFromVillageFlag) {
                var$4 = var$1.$posX;
                var$5 = var$4 | 0;
                if (var$4 < var$5)
                    var$5 = var$5 - 1 | 0;
                var$4 = var$1.$posZ;
                var$6 = var$4 | 0;
                if (var$4 < var$6)
                    var$6 = var$6 - 1 | 0;
                var$2 = var$5 - var$3.$posX2 | 0;
                var$5 = var$6 - var$3.$posZ2 | 0;
                if (($rt_imul(var$2, var$3.$insideDirectionX) + $rt_imul(var$5, var$3.$insideDirectionZ) | 0) < 0 ? 0 : 1) {
                    var$2 = 1;
                    break a;
                }
            }
            var$2 = 0;
        }
    }
    return var$2;
},
nms_EntityAIRestrictOpenDoor_startExecuting = $this => {
    let var$1;
    var$1 = $this.$entityObj.$navigator;
    var$1.$canPassClosedWoodenDoors = 0;
    var$1.$canPassOpenWoodenDoors = 0;
},
nms_EntityAIRestrictOpenDoor_resetTask = $this => {
    let var$1;
    var$1 = $this.$entityObj.$navigator;
    var$1.$canPassClosedWoodenDoors = 1;
    var$1.$canPassOpenWoodenDoors = 1;
    $this.$frontDoor = null;
},
nms_EntityAIRestrictOpenDoor_updateTask = $this => {
    let var$1;
    var$1 = $this.$frontDoor;
    var$1.$doorOpeningRestrictionCounter = var$1.$doorOpeningRestrictionCounter + 1 | 0;
};
function nms_EntityAIOpenDoor() {
    let a = this; nms_EntityAIDoorInteract.call(a);
    a.$field_75361_i = 0;
    a.$field_75360_j = 0;
}
let nms_EntityAIOpenDoor_continueExecuting = $this => {
    return $this.$field_75361_i && $this.$field_75360_j > 0 && ($this.$hasStoppedDoorInteraction ? 0 : 1) ? 1 : 0;
},
nms_EntityAIOpenDoor_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$field_75360_j = 20;
        var$1 = $this.$targetDoor;
        var$2 = $this.$theEntity1.$worldObj;
        var$3 = $this.$entityPosX;
        var$4 = $this.$entityPosY;
        var$5 = $this.$entityPosZ;
        var$6 = 1;
        $ptr = 1;
    case 1:
        nms_BlockDoor_onPoweredBlockChange(var$1, var$2, var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityAIOpenDoor_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if (!$this.$field_75361_i)
            return;
        var$1 = $this.$targetDoor;
        var$2 = $this.$theEntity1.$worldObj;
        var$3 = $this.$entityPosX;
        var$4 = $this.$entityPosY;
        var$5 = $this.$entityPosZ;
        var$6 = 0;
        $ptr = 1;
    case 1:
        nms_BlockDoor_onPoweredBlockChange(var$1, var$2, var$3, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_EntityAIOpenDoor_updateTask = $this => {
    $this.$field_75360_j = $this.$field_75360_j - 1 | 0;
    nms_EntityAIDoorInteract_updateTask($this);
};
function nms_EntityAIVillagerMate() {
    let a = this; nms_EntityAIBase.call(a);
    a.$villagerObj = null;
    a.$mate = null;
    a.$worldObj14 = null;
    a.$matingTimeout = 0;
    a.$villageObj0 = null;
}
let nms_EntityAIVillagerMate_shouldExecute = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$villagerObj.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[140];
        if (var$2 === null) {
            $var1 = $var1.$elementData.data[0];
            while ($var1 !== null && $var1.$key !== null) {
                $var1 = $var1.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $var1.$elementData.data;
            $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var1 !== null) {
                if ($var1.$origKeyHash == var$3) {
                    var$5 = $var1.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var1 = $var1.$next3;
            }
        }
        if (($var1 === null ? null : $var1.$value0).$watchedObject.$value)
            return 0;
        $var1 = $this.$villagerObj;
        var$2 = $var1.$rand;
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        var$7 = Long_lo(Long_shru(var$6, 17));
        while (true) {
            var$8 = var$7 % 500 | 0;
            if (((var$7 - var$8 | 0) + 499 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            var$7 = Long_lo(Long_shru(var$6, 17));
        }
        if (var$8)
            return 0;
        var$2 = $this.$worldObj14.$villageCollectionObj;
        var$9 = $var1.$posX;
        var$8 = var$9 | 0;
        if (var$9 < var$8)
            var$8 = var$8 - 1 | 0;
        var$9 = $var1.$posY;
        var$7 = var$9 | 0;
        if (var$9 < var$7)
            var$7 = var$7 - 1 | 0;
        var$9 = $var1.$posZ;
        var$10 = var$9 | 0;
        if (var$9 < var$10)
            var$10 = var$10 - 1 | 0;
        $var1 = nms_VillageCollection_findNearestVillage(var$2, var$8, var$7, var$10, 0);
        $this.$villageObj0 = $var1;
        if ($var1 === null)
            return 0;
        var$3 = $var1.$noBreedTicks;
        if (!(var$3 && ($var1.$tickCounter1 - var$3 | 0) < 3600 ? 0 : 1))
            var$3 = 0;
        else {
            var$3 = $var1.$villageDoorInfoList.$size0 * 0.35 | 0;
            var$3 = $var1.$numVillagers >= var$3 ? 0 : 1;
        }
        if (!var$3)
            return 0;
        $var1 = $this.$worldObj14;
        var$2 = $rt_cls(nms_EntityVillager);
        var$5 = $this.$villagerObj.$boundingBox0;
        var$11 = var$5.$minX0 - 8.0;
        var$12 = var$5.$minY0 - 3.0;
        var$13 = var$5.$minZ0 - 8.0;
        var$14 = var$5.$maxX0 + 8.0;
        var$15 = var$5.$maxY + 3.0;
        var$9 = var$5.$maxZ0 + 8.0;
        var$16 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$3 = var$16.$nextPoolIndex;
        var$5 = var$16.$listAABB;
        var$7 = var$5.$size0;
        var$10 = $rt_compare(var$3, var$7);
        if (var$10 >= 0) {
            var$17 = new nms_AxisAlignedBB;
            var$17.$minX0 = var$11;
            var$17.$minY0 = var$12;
            var$17.$minZ0 = var$13;
            var$17.$maxX0 = var$14;
            var$17.$maxY = var$15;
            var$17.$maxZ0 = var$9;
            ju_ArrayList_ensureCapacity(var$5, var$7 + 1 | 0);
            var$4 = var$5.$array.data;
            var$10 = var$5.$size0;
            var$5.$size0 = var$10 + 1 | 0;
            var$4[var$10] = var$17;
            var$5.$modCount = var$5.$modCount + 1 | 0;
        } else if (var$3 >= 0 && var$10 < 0) {
            var$17 = var$5.$array.data[var$3];
            var$17.$minX0 = var$11;
            var$17.$minY0 = var$12;
            var$17.$minZ0 = var$13;
            var$17.$maxX0 = var$14;
            var$17.$maxY = var$15;
            var$17.$maxZ0 = var$9;
        } else {
            $var1 = new jl_IndexOutOfBoundsException;
            $var1.$suppressionEnabled = 1;
            $var1.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var1);
            $rt_throw($var1);
        }
        var$16.$nextPoolIndex = var$16.$nextPoolIndex + 1 | 0;
        var$5 = $this.$villagerObj;
        var$16 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB($var1, var$2, var$17, var$16);
        if ($rt_suspending()) {
            break main;
        }
        var$16 = $tmp;
        $var1 = null;
        var$15 = 1.7976931348623157E308;
        var$3 = 0;
        while (true) {
            var$10 = $rt_compare(var$3, var$16.$size0);
            if (var$10 >= 0) {
                if ($var1 === null)
                    return 0;
                $var1 = $var1;
                $this.$mate = $var1;
                $var1 = $var1.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$2 = jl_Integer_integerCache.data[140];
                if (var$2 === null) {
                    $var1 = $var1.$elementData.data[0];
                    while ($var1 !== null && $var1.$key !== null) {
                        $var1 = $var1.$next3;
                    }
                } else {
                    var$3 = var$2.$value;
                    var$4 = $var1.$elementData.data;
                    $var1 = var$4[var$3 & (var$4.length - 1 | 0)];
                    while ($var1 !== null) {
                        if ($var1.$origKeyHash == var$3) {
                            var$5 = $var1.$key;
                            if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var1 = $var1.$next3;
                    }
                }
                return ($var1 === null ? null : $var1.$value0).$watchedObject.$value ? 0 : 1;
            }
            if (var$3 < 0)
                break;
            if (var$10 >= 0)
                break;
            var$2 = var$16.$array.data[var$3];
            if (var$2 !== var$5) {
                var$9 = var$5.$posX - var$2.$posX;
                var$11 = var$5.$posY - var$2.$posY;
                var$14 = var$5.$posZ - var$2.$posZ;
                var$9 = var$9 * var$9 + var$11 * var$11 + var$14 * var$14;
                if (var$9 <= var$15) {
                    $var1 = var$2;
                    var$15 = var$9;
                }
            }
            var$3 = var$3 + 1 | 0;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        $rt_throw($var1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityAIVillagerMate_startExecuting = $this => {
    $this.$matingTimeout = 300;
    $this.$villagerObj.$isMating = 1;
},
nms_EntityAIVillagerMate_resetTask = $this => {
    $this.$villageObj0 = null;
    $this.$mate = null;
    $this.$villagerObj.$isMating = 0;
},
nms_EntityAIVillagerMate_continueExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    a: {
        if ($this.$matingTimeout >= 0) {
            var$1 = $this.$villageObj0;
            var$2 = var$1.$noBreedTicks;
            if (!(var$2 && (var$1.$tickCounter1 - var$2 | 0) < 3600 ? 0 : 1))
                var$2 = 0;
            else {
                var$2 = var$1.$villageDoorInfoList.$size0 * 0.35 | 0;
                var$2 = var$1.$numVillagers >= var$2 ? 0 : 1;
            }
            if (var$2) {
                var$1 = $this.$villagerObj.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$3 = jl_Integer_integerCache.data[140];
                if (var$3 === null) {
                    var$1 = var$1.$elementData.data[0];
                    while (var$1 !== null && var$1.$key !== null) {
                        var$1 = var$1.$next3;
                    }
                } else {
                    var$2 = var$3.$value;
                    var$4 = var$1.$elementData.data;
                    var$1 = var$4[var$2 & (var$4.length - 1 | 0)];
                    while (var$1 !== null) {
                        if (var$1.$origKeyHash == var$2) {
                            var$5 = var$1.$key;
                            if (var$3 !== var$5 && !(var$3 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$2 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        var$1 = var$1.$next3;
                    }
                }
                if (!(var$1 === null ? null : var$1.$value0).$watchedObject.$value) {
                    var$2 = 1;
                    break a;
                }
            }
        }
        var$2 = 0;
    }
    return var$2;
},
nms_EntityAIVillagerMate_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $this.$matingTimeout = $this.$matingTimeout - 1 | 0;
            nms_EntityLookHelper_setLookPositionWithEntity($this.$villagerObj.$lookHelper, $this.$mate, 10.0, 30.0);
            var$1 = $this.$villagerObj;
            var$2 = $this.$mate;
            var$3 = var$1.$posX - var$2.$posX;
            var$4 = var$1.$posY - var$2.$posY;
            var$5 = var$1.$posZ - var$2.$posZ;
            if (var$3 * var$3 + var$4 * var$4 + var$5 * var$5 <= 2.25) {
                if ($this.$matingTimeout)
                    break a;
                if (!var$2.$isMating)
                    break a;
                $ptr = 1;
                continue main;
            }
            var$6 = var$1.$navigator;
            var$3 = 0.25;
            var$1 = var$6.$theEntity;
            if (var$1.$onGround)
                var$7 = 1;
            else {
                if (var$6.$canSwim) {
                    $ptr = 2;
                    continue main;
                }
                var$7 = 0;
            }
            if (var$7) {
                var$1 = var$6.$worldObj3;
                var$8 = var$6.$theEntity;
                var$9 = var$6.$pathSearchRange;
                if (var$9.$field_111133_g) {
                    var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                    var$9.$field_111133_g = 0;
                }
                var$10 = var$9.$field_111139_h;
                var$7 = var$6.$canPassOpenWoodenDoors;
                var$11 = var$6.$canPassClosedWoodenDoors;
                var$12 = var$6.$avoidsWater;
                var$13 = var$6.$canSwim;
                $ptr = 4;
                continue main;
            }
            var$1 = null;
            if (var$1 !== null) {
                $ptr = 5;
                continue main;
            }
        }
        var$1 = $this.$villagerObj;
        var$2 = var$1.$rand;
        var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$14;
        var$12 = Long_lo(Long_shru(var$14, 17));
        while (true) {
            var$13 = var$12 % 35 | 0;
            if (((var$12 - var$13 | 0) + 34 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, 17));
        }
        if (!var$13) {
            var$2 = $this.$worldObj14;
            var$8 = new nms_Packet38EntityStatus;
            var$11 = var$1.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$8.$entityId0 = var$11;
            var$8.$entityStatus = 12;
            var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
            var$7 = var$1.$entityId;
            var$11 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
            var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
            var$15 = var$2.$slots.data;
            var$1 = var$15[var$13 & (var$15.length - 1 | 0)];
            b: {
                while (var$1 !== null) {
                    if (var$1.$hashEntry == var$7) {
                        var$1 = var$1.$valueEntry;
                        break b;
                    }
                    var$1 = var$1.$nextEntry0;
                }
                var$1 = null;
            }
            var$1 = var$1;
            if (var$1 !== null) {
                var$2 = var$1.$trackingPlayers.$backingMap;
                if (var$2.$cachedKeySet === null) {
                    var$9 = new ju_HashMap$1;
                    var$9.$this$0 = var$2;
                    ju_AbstractCollection__init_(var$9);
                    var$2.$cachedKeySet = var$9;
                }
                var$16 = var$2.$cachedKeySet.$iterator();
                var$11 = var$8 instanceof nms_Packet3Chat;
                var$9 = var$8;
                while (var$16.$hasNext()) {
                    c: {
                        var$2 = (var$16.$next()).$playerNetServerHandler;
                        if (var$11) {
                            var$12 = var$2.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break c;
                            if (var$12 == 1 && !var$9.$isServer)
                                break c;
                        }
                        try {
                            var$2 = var$2.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$2 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$6 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$6);
                            jl_System_errCache = var$6;
                        }
                        jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                    }
                }
                var$1 = var$1.$myEntity;
                if (var$1 instanceof nms_EntityPlayerMP)
                    d: {
                        var$1 = var$1.$playerNetServerHandler;
                        if (var$11) {
                            var$11 = var$1.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break d;
                            if (var$11 == 1 && !var$9.$isServer)
                                break d;
                        }
                        try {
                            var$1 = var$1.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
            }
        }
        return;
    case 1:
        nms_EntityAIVillagerMate_giveBirth($this);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$villagerObj;
        var$2 = var$1.$rand;
        var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$14;
        var$12 = Long_lo(Long_shru(var$14, 17));
        while (true) {
            var$13 = var$12 % 35 | 0;
            if (((var$12 - var$13 | 0) + 34 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, 17));
        }
        if (!var$13) {
            var$2 = $this.$worldObj14;
            var$8 = new nms_Packet38EntityStatus;
            var$11 = var$1.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$8.$entityId0 = var$11;
            var$8.$entityStatus = 12;
            var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
            var$7 = var$1.$entityId;
            var$11 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
            var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
            var$15 = var$2.$slots.data;
            var$1 = var$15[var$13 & (var$15.length - 1 | 0)];
            a: {
                while (var$1 !== null) {
                    if (var$1.$hashEntry == var$7) {
                        var$1 = var$1.$valueEntry;
                        break a;
                    }
                    var$1 = var$1.$nextEntry0;
                }
                var$1 = null;
            }
            var$1 = var$1;
            if (var$1 !== null) {
                var$2 = var$1.$trackingPlayers.$backingMap;
                if (var$2.$cachedKeySet === null) {
                    var$9 = new ju_HashMap$1;
                    var$9.$this$0 = var$2;
                    ju_AbstractCollection__init_(var$9);
                    var$2.$cachedKeySet = var$9;
                }
                var$16 = var$2.$cachedKeySet.$iterator();
                var$11 = var$8 instanceof nms_Packet3Chat;
                var$9 = var$8;
                while (var$16.$hasNext()) {
                    e: {
                        var$2 = (var$16.$next()).$playerNetServerHandler;
                        if (var$11) {
                            var$12 = var$2.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break e;
                            if (var$12 == 1 && !var$9.$isServer)
                                break e;
                        }
                        try {
                            var$2 = var$2.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$2 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$6 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$6);
                            jl_System_errCache = var$6;
                        }
                        jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                    }
                }
                var$1 = var$1.$myEntity;
                if (var$1 instanceof nms_EntityPlayerMP)
                    f: {
                        var$1 = var$1.$playerNetServerHandler;
                        if (var$11) {
                            var$11 = var$1.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break f;
                            if (var$11 == 1 && !var$9.$isServer)
                                break f;
                        }
                        try {
                            var$1 = var$1.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
            }
        }
        return;
    case 2:
        $tmp = var$1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if (!var$7) {
            var$1 = var$6.$theEntity;
            $ptr = 3;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$1 = var$6.$worldObj3;
            var$8 = var$6.$theEntity;
            var$9 = var$6.$pathSearchRange;
            if (var$9.$field_111133_g) {
                var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                var$9.$field_111133_g = 0;
            }
            var$10 = var$9.$field_111139_h;
            var$7 = var$6.$canPassOpenWoodenDoors;
            var$11 = var$6.$canPassClosedWoodenDoors;
            var$12 = var$6.$avoidsWater;
            var$13 = var$6.$canSwim;
            $ptr = 4;
            continue main;
        }
        var$1 = null;
        if (var$1 === null) {
            var$1 = $this.$villagerObj;
            var$2 = var$1.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, 17));
            while (true) {
                var$13 = var$12 % 35 | 0;
                if (((var$12 - var$13 | 0) + 34 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$14;
                var$12 = Long_lo(Long_shru(var$14, 17));
            }
            if (!var$13) {
                var$2 = $this.$worldObj14;
                var$8 = new nms_Packet38EntityStatus;
                var$11 = var$1.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8.$entityId0 = var$11;
                var$8.$entityStatus = 12;
                var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
                var$7 = var$1.$entityId;
                var$11 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                var$15 = var$2.$slots.data;
                var$1 = var$15[var$13 & (var$15.length - 1 | 0)];
                e: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$7) {
                            var$1 = var$1.$valueEntry;
                            break e;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$1 = var$1;
                if (var$1 !== null) {
                    var$2 = var$1.$trackingPlayers.$backingMap;
                    if (var$2.$cachedKeySet === null) {
                        var$9 = new ju_HashMap$1;
                        var$9.$this$0 = var$2;
                        ju_AbstractCollection__init_(var$9);
                        var$2.$cachedKeySet = var$9;
                    }
                    var$16 = var$2.$cachedKeySet.$iterator();
                    var$11 = var$8 instanceof nms_Packet3Chat;
                    var$9 = var$8;
                    while (var$16.$hasNext()) {
                        g: {
                            var$2 = (var$16.$next()).$playerNetServerHandler;
                            if (var$11) {
                                var$12 = var$2.$playerEntity.$chatVisibility;
                                if (var$12 == 2)
                                    break g;
                                if (var$12 == 1 && !var$9.$isServer)
                                    break g;
                            }
                            try {
                                var$2 = var$2.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$2 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$6);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                        }
                    }
                    var$1 = var$1.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        h: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$11) {
                                var$11 = var$1.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break h;
                                if (var$11 == 1 && !var$9.$isServer)
                                    break h;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$2 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = var$2;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
            }
            return;
        }
        $ptr = 5;
        continue main;
    case 3:
        $tmp = var$1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$7 = $tmp;
        if ((var$7 ? 1 : 0) ? 1 : 0) {
            var$1 = var$6.$worldObj3;
            var$8 = var$6.$theEntity;
            var$9 = var$6.$pathSearchRange;
            if (var$9.$field_111133_g) {
                var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
                var$9.$field_111133_g = 0;
            }
            var$10 = var$9.$field_111139_h;
            var$7 = var$6.$canPassOpenWoodenDoors;
            var$11 = var$6.$canPassClosedWoodenDoors;
            var$12 = var$6.$avoidsWater;
            var$13 = var$6.$canSwim;
            $ptr = 4;
            continue main;
        }
        var$1 = null;
        if (var$1 === null) {
            var$1 = $this.$villagerObj;
            var$2 = var$1.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, 17));
            while (true) {
                var$13 = var$12 % 35 | 0;
                if (((var$12 - var$13 | 0) + 34 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$14;
                var$12 = Long_lo(Long_shru(var$14, 17));
            }
            if (!var$13) {
                var$2 = $this.$worldObj14;
                var$8 = new nms_Packet38EntityStatus;
                var$11 = var$1.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8.$entityId0 = var$11;
                var$8.$entityStatus = 12;
                var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
                var$7 = var$1.$entityId;
                var$11 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                var$15 = var$2.$slots.data;
                var$1 = var$15[var$13 & (var$15.length - 1 | 0)];
                i: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$7) {
                            var$1 = var$1.$valueEntry;
                            break i;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$1 = var$1;
                if (var$1 !== null) {
                    var$2 = var$1.$trackingPlayers.$backingMap;
                    if (var$2.$cachedKeySet === null) {
                        var$9 = new ju_HashMap$1;
                        var$9.$this$0 = var$2;
                        ju_AbstractCollection__init_(var$9);
                        var$2.$cachedKeySet = var$9;
                    }
                    var$16 = var$2.$cachedKeySet.$iterator();
                    var$11 = var$8 instanceof nms_Packet3Chat;
                    var$9 = var$8;
                    while (var$16.$hasNext()) {
                        j: {
                            var$2 = (var$16.$next()).$playerNetServerHandler;
                            if (var$11) {
                                var$12 = var$2.$playerEntity.$chatVisibility;
                                if (var$12 == 2)
                                    break j;
                                if (var$12 == 1 && !var$9.$isServer)
                                    break j;
                            }
                            try {
                                var$2 = var$2.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$2 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$6);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                        }
                    }
                    var$1 = var$1.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        k: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$11) {
                                var$11 = var$1.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break k;
                                if (var$11 == 1 && !var$9.$isServer)
                                    break k;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$2 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = var$2;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
            }
            return;
        }
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getPathEntityToEntity(var$1, var$8, var$2, var$10, var$7, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 === null) {
            var$1 = $this.$villagerObj;
            var$2 = var$1.$rand;
            var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, 17));
            while (true) {
                var$13 = var$12 % 35 | 0;
                if (((var$12 - var$13 | 0) + 34 | 0) >= 0)
                    break;
                var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                var$2.$seed = var$14;
                var$12 = Long_lo(Long_shru(var$14, 17));
            }
            if (!var$13) {
                var$2 = $this.$worldObj14;
                var$8 = new nms_Packet38EntityStatus;
                var$11 = var$1.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8.$entityId0 = var$11;
                var$8.$entityStatus = 12;
                var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
                var$7 = var$1.$entityId;
                var$11 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
                var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
                var$15 = var$2.$slots.data;
                var$1 = var$15[var$13 & (var$15.length - 1 | 0)];
                l: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$7) {
                            var$1 = var$1.$valueEntry;
                            break l;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$1 = var$1;
                if (var$1 !== null) {
                    var$2 = var$1.$trackingPlayers.$backingMap;
                    if (var$2.$cachedKeySet === null) {
                        var$9 = new ju_HashMap$1;
                        var$9.$this$0 = var$2;
                        ju_AbstractCollection__init_(var$9);
                        var$2.$cachedKeySet = var$9;
                    }
                    var$16 = var$2.$cachedKeySet.$iterator();
                    var$11 = var$8 instanceof nms_Packet3Chat;
                    var$9 = var$8;
                    while (var$16.$hasNext()) {
                        i: {
                            var$2 = (var$16.$next()).$playerNetServerHandler;
                            if (var$11) {
                                var$12 = var$2.$playerEntity.$chatVisibility;
                                if (var$12 == 2)
                                    break i;
                                if (var$12 == 1 && !var$9.$isServer)
                                    break i;
                            }
                            try {
                                var$2 = var$2.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$2 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$6 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$6);
                                jl_System_errCache = var$6;
                            }
                            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                        }
                    }
                    var$1 = var$1.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        g: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$11) {
                                var$11 = var$1.$playerEntity.$chatVisibility;
                                if (var$11 == 2)
                                    break g;
                                if (var$11 == 1 && !var$9.$isServer)
                                    break g;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 7;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$2 = new otcic_JSStderrPrintStream;
                                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                                jl_System_errCache = var$2;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
            }
            return;
        }
        $ptr = 5;
    case 5:
        nms_PathNavigate_setPath(var$6, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$villagerObj;
        var$2 = var$1.$rand;
        var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$14;
        var$12 = Long_lo(Long_shru(var$14, 17));
        while (true) {
            var$13 = var$12 % 35 | 0;
            if (((var$12 - var$13 | 0) + 34 | 0) >= 0)
                break;
            var$14 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$14;
            var$12 = Long_lo(Long_shru(var$14, 17));
        }
        if (!var$13) {
            var$2 = $this.$worldObj14;
            var$8 = new nms_Packet38EntityStatus;
            var$11 = var$1.$entityId;
            nms_Packet_$callClinit();
            nles_SysUtil_$callClinit();
            var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$8.$entityId0 = var$11;
            var$8.$entityStatus = 12;
            var$2 = var$2.$theEntityTracker.$trackedEntityIDs;
            var$7 = var$1.$entityId;
            var$11 = var$7 ^ (var$7 >>> 20 | 0) ^ (var$7 >>> 12 | 0);
            var$13 = var$11 ^ (var$11 >>> 7 | 0) ^ (var$11 >>> 4 | 0);
            var$15 = var$2.$slots.data;
            var$1 = var$15[var$13 & (var$15.length - 1 | 0)];
            a: {
                while (var$1 !== null) {
                    if (var$1.$hashEntry == var$7) {
                        var$1 = var$1.$valueEntry;
                        break a;
                    }
                    var$1 = var$1.$nextEntry0;
                }
                var$1 = null;
            }
            var$1 = var$1;
            if (var$1 !== null) {
                var$2 = var$1.$trackingPlayers.$backingMap;
                if (var$2.$cachedKeySet === null) {
                    var$9 = new ju_HashMap$1;
                    var$9.$this$0 = var$2;
                    ju_AbstractCollection__init_(var$9);
                    var$2.$cachedKeySet = var$9;
                }
                var$16 = var$2.$cachedKeySet.$iterator();
                var$11 = var$8 instanceof nms_Packet3Chat;
                var$9 = var$8;
                while (var$16.$hasNext()) {
                    e: {
                        var$2 = (var$16.$next()).$playerNetServerHandler;
                        if (var$11) {
                            var$12 = var$2.$playerEntity.$chatVisibility;
                            if (var$12 == 2)
                                break e;
                            if (var$12 == 1 && !var$9.$isServer)
                                break e;
                        }
                        try {
                            var$2 = var$2.$netManager;
                            $ptr = 6;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$2 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$6 = new otcic_JSStderrPrintStream;
                            otcic_JsConsolePrintStream__init_(var$6);
                            jl_System_errCache = var$6;
                        }
                        jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                    }
                }
                var$1 = var$1.$myEntity;
                if (var$1 instanceof nms_EntityPlayerMP)
                    f: {
                        var$1 = var$1.$playerNetServerHandler;
                        if (var$11) {
                            var$11 = var$1.$playerEntity.$chatVisibility;
                            if (var$11 == 2)
                                break f;
                            if (var$11 == 1 && !var$9.$isServer)
                                break f;
                        }
                        try {
                            var$1 = var$1.$netManager;
                            $ptr = 7;
                            continue main;
                        } catch ($$e) {
                            $$je = $rt_wrapException($$e);
                            if ($$je instanceof jl_Exception) {
                                var$1 = $$je;
                            } else {
                                throw $$e;
                            }
                        }
                        if (jl_System_errCache === null) {
                            var$2 = new otcic_JSStderrPrintStream;
                            ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                            jl_System_errCache = var$2;
                        }
                        jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                    }
            }
        }
        return;
    case 6:
        m: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break m;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$2, var$6);
        }
        l: while (true) {
            while (true) {
                if (!var$16.$hasNext())
                    break l;
                var$2 = (var$16.$next()).$playerNetServerHandler;
                if (!var$11)
                    break;
                var$12 = var$2.$playerEntity.$chatVisibility;
                if (var$12 == 2)
                    continue;
                if (var$12 != 1)
                    break;
                if (var$9.$isServer)
                    break;
            }
            try {
                var$2 = var$2.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$6 = jl_System_errCache;
            if (var$6 === null) {
                var$6 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$6);
                jl_System_errCache = var$6;
            }
            var$6 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$2, var$6);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            b: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$11) {
                    var$11 = var$1.$playerEntity.$chatVisibility;
                    if (var$11 == 2)
                        break b;
                    if (var$11 == 1 && !var$9.$isServer)
                        break b;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$2 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$2;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 7:
        m: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break m;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$2, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_EntityAIVillagerMate_giveBirth = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$villagerObj;
        $var1 = new nms_EntityVillager;
        var$1 = var$1.$worldObj;
        nms_EntityVillager_$callClinit();
        var$3 = 0;
        $ptr = 1;
    case 1:
        nms_EntityVillager__init_($var1, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = nms_SharedMonsterAttributes_followRange;
        if ($var1.$attributeMap === null) {
            var$4 = new nms_ServersideAttributeMap;
            var$4.$attributes = ju_HashMap__init_1(16);
            var$5 = new nms_LowerStringMap;
            jl_Object__init_(var$5);
            var$5.$internalMap = ju_LinkedHashMap__init_();
            var$4.$attributesByName = var$5;
            var$5 = new ju_HashSet;
            var$6 = ju_HashMap__init_1(16);
            ju_AbstractSet__init_(var$5);
            var$5.$backingMap = var$6;
            var$4.$field_111162_d = var$5;
            var$5 = new nms_LowerStringMap;
            var$6 = new ju_LinkedHashMap;
            ju_HashMap__init_4(var$6);
            var$6.$accessOrder = 0;
            var$6.$head = null;
            var$5.$internalMap = var$6;
            var$4.$field_111163_c = var$5;
            $var1.$attributeMap = var$4;
        }
        var$1 = ju_HashMap_entryByKey($var1.$attributeMap.$attributes, var$1);
        var$6 = var$1 === null ? null : var$1.$value0;
        var$4 = new nms_AttributeModifier;
        var$7 = nle_EaglercraftRandom_nextGaussian($var1.$rand) * 0.05;
        var$5 = nle_ProfileUUID_randomUUID();
        var$4.$isSaved = 1;
        var$4.$id1 = var$5;
        var$4.$name3 = $rt_s(2198);
        var$4.$amount0 = var$7;
        var$4.$operation = 1;
        if ($rt_s(2198) === $rt_s(3))
            var$3 = 1;
        else if (!($rt_s(3) instanceof jl_String))
            var$3 = 0;
        else {
            var$5 = $rt_s(3);
            var$3 = $rt_s(2198).$nativeString !== var$5.$nativeString ? 0 : 1;
        }
        if (var$3) {
            var$4 = new jl_IllegalArgumentException;
            jl_Exception__init_0(var$4, $rt_s(1279));
            $rt_throw(var$4);
        }
        nms_ModifiableAttributeInstance_applyModifier(var$6, var$4);
        var$1 = $var1.$worldObj.$rand0;
        var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$8;
        var$9 = Long_lo(Long_shru(var$8, 17));
        while (true) {
            var$10 = var$9 % 5 | 0;
            if (((var$9 - var$10 | 0) + 4 | 0) >= 0)
                break;
            var$8 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$1.$seed = var$8;
            var$9 = Long_lo(Long_shru(var$8, 17));
        }
        var$1 = $var1.$dataWatcher;
        if (var$10 >= (-128) && var$10 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[var$10 + 128 | 0];
        } else {
            var$4 = new jl_Integer;
            var$4.$value = var$10;
        }
        var$5 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[144];
        if (var$11 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$11.$value);
            var$12 = var$5.$elementData.data;
            var$5 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$5 !== null && !(var$5.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$11, var$5.$key))) {
                var$5 = var$5.$next3;
            }
        }
        var$6 = var$5 === null ? null : var$5.$value0;
        var$5 = var$6.$watchedObject;
        if (!(var$4 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$4.$value ? 1 : 0)) {
            var$6.$watchedObject = var$4;
            var$6.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$1 = $this.$mate;
        var$4 = var$1.$dataWatcher;
        var$13 = new jl_Integer;
        var$13.$value = 6000;
        var$5 = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$11 = jl_Integer_integerCache.data[140];
        if (var$11 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$9 = var$11.$value;
            var$12 = var$5.$elementData.data;
            var$5 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$9) {
                    var$6 = var$5.$key;
                    if (var$11 !== var$6 && !(var$11 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$6 = var$5 === null ? null : var$5.$value0;
        var$5 = var$6.$watchedObject;
        if (!(var$13 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$13.$value ? 1 : 0)) {
            var$6.$watchedObject = var$13;
            var$6.$watched = 1;
            var$4.$objectChanged = 1;
        }
        var$4 = var$1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[140];
        if (var$6 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$6.$value);
            var$12 = var$4.$elementData.data;
            var$4 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$4 !== null && !(var$4.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$6, var$4.$key))) {
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        var$14 = !(var$4.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$15 = var$1.$field_98056_d * var$14;
        var$14 = var$1.$field_98057_e * var$14;
        $ptr = 2;
    case 2:
        nms_Entity_setSize(var$1, var$15, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$villagerObj;
        var$4 = var$1.$dataWatcher;
        var$11 = new jl_Integer;
        var$11.$value = 6000;
        var$5 = var$4.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[140];
        if (var$13 === null) {
            var$5 = var$5.$elementData.data[0];
            while (var$5 !== null && var$5.$key !== null) {
                var$5 = var$5.$next3;
            }
        } else {
            var$9 = var$13.$value;
            var$12 = var$5.$elementData.data;
            var$5 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$5 !== null) {
                if (var$5.$origKeyHash == var$9) {
                    var$6 = var$5.$key;
                    if (var$13 !== var$6 && !(var$13 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$5 = var$5.$next3;
            }
        }
        var$6 = var$5 === null ? null : var$5.$value0;
        var$5 = var$6.$watchedObject;
        if (!(var$11 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$11.$value ? 1 : 0)) {
            var$6.$watchedObject = var$11;
            var$6.$watched = 1;
            var$4.$objectChanged = 1;
        }
        var$4 = var$1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[140];
        if (var$6 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$6.$value);
            var$12 = var$4.$elementData.data;
            var$4 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$4 !== null && !(var$4.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$6, var$4.$key))) {
                var$4 = var$4.$next3;
            }
        }
        var$4 = var$4 === null ? null : var$4.$value0;
        var$14 = !(var$4.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$15 = var$1.$field_98056_d * var$14;
        var$14 = var$1.$field_98057_e * var$14;
        $ptr = 3;
    case 3:
        nms_Entity_setSize(var$1, var$15, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $var1.$dataWatcher;
        var$11 = new jl_Integer;
        var$11.$value = (-24000);
        var$4 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$6 = jl_Integer_integerCache.data[140];
        if (var$6 === null) {
            var$4 = var$4.$elementData.data[0];
            while (var$4 !== null && var$4.$key !== null) {
                var$4 = var$4.$next3;
            }
        } else {
            var$9 = var$6.$value;
            var$12 = var$4.$elementData.data;
            var$4 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$4 !== null) {
                if (var$4.$origKeyHash == var$9) {
                    var$5 = var$4.$key;
                    if (var$6 !== var$5 && !(var$6 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$9 ? 1 : 0) ? 0 : 1)
                        break;
                }
                var$4 = var$4.$next3;
            }
        }
        var$5 = var$4 === null ? null : var$4.$value0;
        var$4 = var$5.$watchedObject;
        if (!(var$11 === var$4 ? 1 : var$4 instanceof jl_Integer && var$4.$value == var$11.$value ? 1 : 0)) {
            var$5.$watchedObject = var$11;
            var$5.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$1 = $var1.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$5 = jl_Integer_integerCache.data[140];
        if (var$5 === null) {
            var$1 = var$1.$elementData.data[0];
            while (var$1 !== null && var$1.$key !== null) {
                var$1 = var$1.$next3;
            }
        } else {
            var$9 = jl_Integer_hashCode(var$5.$value);
            var$12 = var$1.$elementData.data;
            var$1 = var$12[var$9 & (var$12.length - 1 | 0)];
            while (var$1 !== null && !(var$1.$origKeyHash == var$9 && ju_HashMap_areEqualKeys(var$5, var$1.$key))) {
                var$1 = var$1.$next3;
            }
        }
        var$1 = var$1 === null ? null : var$1.$value0;
        var$14 = !(var$1.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$15 = $var1.$field_98056_d * var$14;
        var$14 = $var1.$field_98057_e * var$14;
        $ptr = 4;
    case 4:
        nms_Entity_setSize($var1, var$15, var$14);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$villagerObj;
        var$7 = var$1.$posX;
        var$16 = var$1.$posY;
        var$17 = var$1.$posZ;
        $var1.$posX = var$7;
        $var1.$prevPosX = var$7;
        $var1.$lastTickPosX = var$7;
        var$16 = var$16 + $var1.$yOffset;
        $var1.$posY = var$16;
        $var1.$prevPosY = var$16;
        $var1.$lastTickPosY = var$16;
        $var1.$posZ = var$17;
        $var1.$prevPosZ = var$17;
        $var1.$lastTickPosZ = var$17;
        $var1.$rotationYaw = 0.0;
        $var1.$rotationPitch = 0.0;
        nms_Entity_setPosition($var1, var$7, var$16, var$17);
        var$1 = $this.$worldObj14;
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$1, $var1);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$worldObj14;
        var$4 = new nms_Packet38EntityStatus;
        var$18 = $var1.$entityId;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$4.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$4.$entityId0 = var$18;
        var$4.$entityStatus = 12;
        var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
        var$3 = $var1.$entityId;
        var$18 = var$3 ^ (var$3 >>> 20 | 0) ^ (var$3 >>> 12 | 0);
        var$10 = var$18 ^ (var$18 >>> 7 | 0) ^ (var$18 >>> 4 | 0);
        var$12 = var$1.$slots.data;
        var$1 = var$12[var$10 & (var$12.length - 1 | 0)];
        a: {
            while (var$1 !== null) {
                if (var$1.$hashEntry == var$3) {
                    var$1 = var$1.$valueEntry;
                    break a;
                }
                var$1 = var$1.$nextEntry0;
            }
            var$1 = null;
        }
        var$1 = var$1;
        if (var$1 !== null) {
            var$5 = var$1.$trackingPlayers.$backingMap;
            if (var$5.$cachedKeySet === null) {
                var$6 = new ju_HashMap$1;
                var$6.$this$0 = var$5;
                ju_AbstractCollection__init_(var$6);
                var$5.$cachedKeySet = var$6;
            }
            $var1 = var$5.$cachedKeySet.$iterator();
            var$18 = var$4 instanceof nms_Packet3Chat;
            var$6 = var$4;
            while ($var1.$hasNext()) {
                b: {
                    var$5 = ($var1.$next()).$playerNetServerHandler;
                    if (var$18) {
                        var$9 = var$5.$playerEntity.$chatVisibility;
                        if (var$9 == 2)
                            break b;
                        if (var$9 == 1 && !var$6.$isServer)
                            break b;
                    }
                    try {
                        var$5 = var$5.$netManager;
                        $ptr = 6;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$5 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$11 = new otcic_JSStderrPrintStream;
                        otcic_JsConsolePrintStream__init_(var$11);
                        jl_System_errCache = var$11;
                    }
                    jl_Throwable_printStackTrace(var$5, jl_System_errCache);
                }
            }
            var$1 = var$1.$myEntity;
            if (var$1 instanceof nms_EntityPlayerMP)
                c: {
                    var$1 = var$1.$playerNetServerHandler;
                    if (var$18) {
                        var$18 = var$1.$playerEntity.$chatVisibility;
                        if (var$18 == 2)
                            break c;
                        if (var$18 == 1 && !var$6.$isServer)
                            break c;
                    }
                    try {
                        var$1 = var$1.$netManager;
                        $ptr = 7;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$1 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$4 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_0(var$4, ji_ByteArrayOutputStream__init_());
                        jl_System_errCache = var$4;
                    }
                    jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                }
        }
        return;
    case 6:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$5, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$5, var$11);
        }
        d: while (true) {
            while (true) {
                if (!$var1.$hasNext())
                    break d;
                var$5 = ($var1.$next()).$playerNetServerHandler;
                if (!var$18)
                    break;
                var$9 = var$5.$playerEntity.$chatVisibility;
                if (var$9 == 2)
                    continue;
                if (var$9 != 1)
                    break;
                if (var$6.$isServer)
                    break;
            }
            try {
                var$5 = var$5.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$5 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$11 = jl_System_errCache;
            if (var$11 === null) {
                var$11 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$11);
                jl_System_errCache = var$11;
            }
            var$11 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$5, var$11);
        }
        var$1 = var$1.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            e: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$18) {
                    var$18 = var$1.$playerEntity.$chatVisibility;
                    if (var$18 == 2)
                        break e;
                    if (var$18 == 1 && !var$6.$isServer)
                        break e;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 7;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    ji_PrintStream__init_0(var$4, ji_ByteArrayOutputStream__init_());
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        return;
    case 7:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$4);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_0(var$4, ji_ByteArrayOutputStream__init_());
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, $ptr);
};
function nms_EntityAIFollowGolem() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theVillager = null;
    a.$theGolem = null;
    a.$takeGolemRoseTick = 0;
    a.$tookGolemRose = 0;
}
let nms_EntityAIFollowGolem_shouldExecute = $this => {
    let $var3, $var1, $var2$index, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2$index_0, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var2$index_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$var2$index = $thread.pop();$var1 = $thread.pop();$var3 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $this.$theVillager.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        $var1 = jl_Integer_integerCache.data[140];
        if ($var1 === null) {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        } else {
            $var2$index = $var1.$value;
            var$4 = $var3.$elementData.data;
            $var3 = var$4[$var2$index & (var$4.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == $var2$index) {
                    var$5 = $var3.$key;
                    if ($var1 !== var$5 && !($var1 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == $var2$index ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
        if ($var3.$watchedObject.$value >= 0)
            return 0;
        $var1 = $this.$theVillager;
        var$5 = $var1.$worldObj;
        if (!(var$5.$skylightSubtracted >= 4 ? 0 : 1))
            return 0;
        $var3 = $rt_cls(nms_EntityIronGolem);
        $var1 = $var1.$boundingBox0;
        var$6 = $var1.$minX0 - 6.0;
        var$7 = $var1.$minY0 - 2.0;
        var$8 = $var1.$minZ0 - 6.0;
        var$9 = $var1.$maxX0 + 6.0;
        var$10 = $var1.$maxY + 2.0;
        var$11 = $var1.$maxZ0 + 6.0;
        var$12 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var2$index = var$12.$nextPoolIndex;
        $var1 = var$12.$listAABB;
        var$13 = $var1.$size0;
        $var2$index_0 = $rt_compare($var2$index, var$13);
        if ($var2$index_0 >= 0) {
            var$15 = new nms_AxisAlignedBB;
            var$15.$minX0 = var$6;
            var$15.$minY0 = var$7;
            var$15.$minZ0 = var$8;
            var$15.$maxX0 = var$9;
            var$15.$maxY = var$10;
            var$15.$maxZ0 = var$11;
            ju_ArrayList_ensureCapacity($var1, var$13 + 1 | 0);
            var$4 = $var1.$array.data;
            $var2$index_0 = $var1.$size0;
            $var1.$size0 = $var2$index_0 + 1 | 0;
            var$4[$var2$index_0] = var$15;
            $var1.$modCount = $var1.$modCount + 1 | 0;
        } else if ($var2$index >= 0 && $var2$index_0 < 0) {
            var$15 = $var1.$array.data[$var2$index];
            var$15.$minX0 = var$6;
            var$15.$minY0 = var$7;
            var$15.$minZ0 = var$8;
            var$15.$maxX0 = var$9;
            var$15.$maxY = var$10;
            var$15.$maxZ0 = var$11;
        } else {
            $var3 = new jl_IndexOutOfBoundsException;
            $var3.$suppressionEnabled = 1;
            $var3.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var3);
            $rt_throw($var3);
        }
        var$12.$nextPoolIndex = var$12.$nextPoolIndex + 1 | 0;
        $var1 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$5, $var3, var$15, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1.$size0 ? 0 : 1)
            return 0;
        $var2$index = 0;
        var$13 = $var1.$modCount;
        var$16 = $var1.$size();
        a: {
            while (true) {
                if (!($var2$index >= var$16 ? 0 : 1))
                    break a;
                if (var$13 < $var1.$modCount) {
                    $var3 = new ju_ConcurrentModificationException;
                    $var3.$suppressionEnabled = 1;
                    $var3.$writableStackTrace = 1;
                    $rt_throw($var3);
                }
                $var2$index_0 = $var2$index + 1 | 0;
                $var3 = $var1.$get($var2$index);
                if ($var3.$holdRoseTick > 0)
                    break;
                $var2$index = $var2$index_0;
            }
            $this.$theGolem = $var3;
        }
        return $this.$theGolem === null ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var3, $var1, $var2$index, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, $var2$index_0, var$15, var$16, $ptr);
},
nms_EntityAIFollowGolem_continueExecuting = $this => {
    return $this.$theGolem.$holdRoseTick <= 0 ? 0 : 1;
},
nms_EntityAIFollowGolem_startExecuting = $this => {
    let var$1, var$2, var$3, var$4;
    var$1 = $this.$theVillager.$rand;
    var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    var$1.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        var$4 = var$3 % 320 | 0;
        if (((var$3 - var$4 | 0) + 319 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul(var$1.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$1.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    $this.$takeGolemRoseTick = var$4;
    $this.$tookGolemRose = 0;
    $this.$theGolem.$navigator.$currentPath = null;
},
nms_EntityAIFollowGolem_resetTask = $this => {
    $this.$theGolem = null;
    $this.$theVillager.$navigator.$currentPath = null;
},
nms_EntityAIFollowGolem_updateTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_EntityLookHelper_setLookPositionWithEntity($this.$theVillager.$lookHelper, $this.$theGolem, 30.0, 30.0);
        var$1 = $this.$theGolem;
        if (var$1.$holdRoseTick == $this.$takeGolemRoseTick) {
            var$2 = $this.$theVillager.$navigator;
            var$3 = 0.5;
            var$4 = var$2.$theEntity;
            if (var$4.$onGround)
                var$5 = 1;
            else {
                if (var$2.$canSwim) {
                    $ptr = 1;
                    continue main;
                }
                var$5 = 0;
            }
            if (var$5) {
                var$4 = var$2.$worldObj3;
                var$6 = var$2.$theEntity;
                var$7 = var$2.$pathSearchRange;
                if (var$7.$field_111133_g) {
                    var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                    var$7.$field_111133_g = 0;
                }
                var$8 = var$7.$field_111139_h;
                var$5 = var$2.$canPassOpenWoodenDoors;
                var$9 = var$2.$canPassClosedWoodenDoors;
                var$10 = var$2.$avoidsWater;
                var$11 = var$2.$canSwim;
                $ptr = 3;
                continue main;
            }
            var$1 = null;
            if (var$1 !== null) {
                $ptr = 4;
                continue main;
            }
            $this.$tookGolemRose = 1;
        }
        if ($this.$tookGolemRose) {
            var$1 = $this.$theVillager;
            var$4 = $this.$theGolem;
            var$3 = var$1.$posX - var$4.$posX;
            var$12 = var$1.$posY - var$4.$posY;
            var$13 = var$1.$posZ - var$4.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 4.0) {
                var$4.$holdRoseTick = 0;
                var$1 = var$4.$worldObj;
                var$6 = new nms_Packet38EntityStatus;
                var$9 = var$4.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$6.$entityId0 = var$9;
                var$6.$entityStatus = 11;
                var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
                var$11 = var$4.$entityId;
                var$5 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$14 = var$1.$slots.data;
                var$1 = var$14[var$5 & (var$14.length - 1 | 0)];
                a: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$11) {
                            var$1 = var$1.$valueEntry;
                            break a;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$4 = var$1;
                if (var$4 !== null) {
                    var$1 = var$4.$trackingPlayers.$backingMap;
                    if (var$1.$cachedKeySet === null) {
                        var$7 = new ju_HashMap$1;
                        var$7.$this$0 = var$1;
                        ju_AbstractSet__init_(var$7);
                        var$1.$cachedKeySet = var$7;
                    }
                    var$15 = var$1.$cachedKeySet.$iterator();
                    var$5 = var$6 instanceof nms_Packet3Chat;
                    var$2 = var$6;
                    while (var$15.$hasNext()) {
                        b: {
                            var$1 = (var$15.$next()).$playerNetServerHandler;
                            if (var$5) {
                                var$10 = var$1.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break b;
                                if (var$10 == 1 && !var$2.$isServer)
                                    break b;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null)
                                jl_System_errCache = otcic_JSStderrPrintStream__init_();
                            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                        }
                    }
                    var$1 = var$4.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        c: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$5) {
                                var$9 = var$1.$playerEntity.$chatVisibility;
                                if (var$9 == 2)
                                    break c;
                                if (var$9 == 1 && !var$2.$isServer)
                                    break c;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$4 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$4);
                                jl_System_errCache = var$4;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
                $this.$theVillager.$navigator.$currentPath = null;
            }
        }
        return;
    case 1:
        $tmp = var$4.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if (!var$5) {
            var$4 = var$2.$theEntity;
            $ptr = 2;
            continue main;
        }
        if (1 ? 1 : 0) {
            var$4 = var$2.$worldObj3;
            var$6 = var$2.$theEntity;
            var$7 = var$2.$pathSearchRange;
            if (var$7.$field_111133_g) {
                var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                var$7.$field_111133_g = 0;
            }
            var$8 = var$7.$field_111139_h;
            var$5 = var$2.$canPassOpenWoodenDoors;
            var$9 = var$2.$canPassClosedWoodenDoors;
            var$10 = var$2.$avoidsWater;
            var$11 = var$2.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 === null) {
            $this.$tookGolemRose = 1;
            if ($this.$tookGolemRose) {
                var$1 = $this.$theVillager;
                var$4 = $this.$theGolem;
                var$3 = var$1.$posX - var$4.$posX;
                var$12 = var$1.$posY - var$4.$posY;
                var$13 = var$1.$posZ - var$4.$posZ;
                if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 4.0) {
                    var$4.$holdRoseTick = 0;
                    var$1 = var$4.$worldObj;
                    var$6 = new nms_Packet38EntityStatus;
                    var$9 = var$4.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$entityId0 = var$9;
                    var$6.$entityStatus = 11;
                    var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
                    var$11 = var$4.$entityId;
                    var$5 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                    var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$14 = var$1.$slots.data;
                    var$1 = var$14[var$5 & (var$14.length - 1 | 0)];
                    d: {
                        while (var$1 !== null) {
                            if (var$1.$hashEntry == var$11) {
                                var$1 = var$1.$valueEntry;
                                break d;
                            }
                            var$1 = var$1.$nextEntry0;
                        }
                        var$1 = null;
                    }
                    var$4 = var$1;
                    if (var$4 !== null) {
                        var$1 = var$4.$trackingPlayers.$backingMap;
                        if (var$1.$cachedKeySet === null) {
                            var$7 = new ju_HashMap$1;
                            var$7.$this$0 = var$1;
                            ju_AbstractSet__init_(var$7);
                            var$1.$cachedKeySet = var$7;
                        }
                        var$15 = var$1.$cachedKeySet.$iterator();
                        var$5 = var$6 instanceof nms_Packet3Chat;
                        var$2 = var$6;
                        while (var$15.$hasNext()) {
                            e: {
                                var$1 = (var$15.$next()).$playerNetServerHandler;
                                if (var$5) {
                                    var$10 = var$1.$playerEntity.$chatVisibility;
                                    if (var$10 == 2)
                                        break e;
                                    if (var$10 == 1 && !var$2.$isServer)
                                        break e;
                                }
                                try {
                                    var$1 = var$1.$netManager;
                                    $ptr = 5;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$7 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null)
                                    jl_System_errCache = otcic_JSStderrPrintStream__init_();
                                jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                            }
                        }
                        var$1 = var$4.$myEntity;
                        if (var$1 instanceof nms_EntityPlayerMP)
                            f: {
                                var$1 = var$1.$playerNetServerHandler;
                                if (var$5) {
                                    var$9 = var$1.$playerEntity.$chatVisibility;
                                    if (var$9 == 2)
                                        break f;
                                    if (var$9 == 1 && !var$2.$isServer)
                                        break f;
                                }
                                try {
                                    var$1 = var$1.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$1 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$4 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$4);
                                    jl_System_errCache = var$4;
                                }
                                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                            }
                    }
                    $this.$theVillager.$navigator.$currentPath = null;
                }
            }
            return;
        }
        $ptr = 4;
        continue main;
    case 2:
        $tmp = var$4.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $tmp;
        if ((var$5 ? 1 : 0) ? 1 : 0) {
            var$4 = var$2.$worldObj3;
            var$6 = var$2.$theEntity;
            var$7 = var$2.$pathSearchRange;
            if (var$7.$field_111133_g) {
                var$7.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$7);
                var$7.$field_111133_g = 0;
            }
            var$8 = var$7.$field_111139_h;
            var$5 = var$2.$canPassOpenWoodenDoors;
            var$9 = var$2.$canPassClosedWoodenDoors;
            var$10 = var$2.$avoidsWater;
            var$11 = var$2.$canSwim;
            $ptr = 3;
            continue main;
        }
        var$1 = null;
        if (var$1 === null) {
            $this.$tookGolemRose = 1;
            if ($this.$tookGolemRose) {
                var$1 = $this.$theVillager;
                var$4 = $this.$theGolem;
                var$3 = var$1.$posX - var$4.$posX;
                var$12 = var$1.$posY - var$4.$posY;
                var$13 = var$1.$posZ - var$4.$posZ;
                if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 4.0) {
                    var$4.$holdRoseTick = 0;
                    var$1 = var$4.$worldObj;
                    var$6 = new nms_Packet38EntityStatus;
                    var$9 = var$4.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$entityId0 = var$9;
                    var$6.$entityStatus = 11;
                    var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
                    var$11 = var$4.$entityId;
                    var$5 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                    var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$14 = var$1.$slots.data;
                    var$1 = var$14[var$5 & (var$14.length - 1 | 0)];
                    a: {
                        while (var$1 !== null) {
                            if (var$1.$hashEntry == var$11) {
                                var$1 = var$1.$valueEntry;
                                break a;
                            }
                            var$1 = var$1.$nextEntry0;
                        }
                        var$1 = null;
                    }
                    var$4 = var$1;
                    if (var$4 !== null) {
                        var$1 = var$4.$trackingPlayers.$backingMap;
                        if (var$1.$cachedKeySet === null) {
                            var$7 = new ju_HashMap$1;
                            var$7.$this$0 = var$1;
                            ju_AbstractSet__init_(var$7);
                            var$1.$cachedKeySet = var$7;
                        }
                        var$15 = var$1.$cachedKeySet.$iterator();
                        var$5 = var$6 instanceof nms_Packet3Chat;
                        var$2 = var$6;
                        while (var$15.$hasNext()) {
                            b: {
                                var$1 = (var$15.$next()).$playerNetServerHandler;
                                if (var$5) {
                                    var$10 = var$1.$playerEntity.$chatVisibility;
                                    if (var$10 == 2)
                                        break b;
                                    if (var$10 == 1 && !var$2.$isServer)
                                        break b;
                                }
                                try {
                                    var$1 = var$1.$netManager;
                                    $ptr = 5;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$7 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null)
                                    jl_System_errCache = otcic_JSStderrPrintStream__init_();
                                jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                            }
                        }
                        var$1 = var$4.$myEntity;
                        if (var$1 instanceof nms_EntityPlayerMP)
                            c: {
                                var$1 = var$1.$playerNetServerHandler;
                                if (var$5) {
                                    var$9 = var$1.$playerEntity.$chatVisibility;
                                    if (var$9 == 2)
                                        break c;
                                    if (var$9 == 1 && !var$2.$isServer)
                                        break c;
                                }
                                try {
                                    var$1 = var$1.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$1 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$4 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$4);
                                    jl_System_errCache = var$4;
                                }
                                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                            }
                    }
                    $this.$theVillager.$navigator.$currentPath = null;
                }
            }
            return;
        }
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getPathEntityToEntity(var$4, var$6, var$1, var$8, var$5, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 === null) {
            $this.$tookGolemRose = 1;
            if ($this.$tookGolemRose) {
                var$1 = $this.$theVillager;
                var$4 = $this.$theGolem;
                var$3 = var$1.$posX - var$4.$posX;
                var$12 = var$1.$posY - var$4.$posY;
                var$13 = var$1.$posZ - var$4.$posZ;
                if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 4.0) {
                    var$4.$holdRoseTick = 0;
                    var$1 = var$4.$worldObj;
                    var$6 = new nms_Packet38EntityStatus;
                    var$9 = var$4.$entityId;
                    nms_Packet_$callClinit();
                    nles_SysUtil_$callClinit();
                    var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                    var$6.$entityId0 = var$9;
                    var$6.$entityStatus = 11;
                    var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
                    var$11 = var$4.$entityId;
                    var$5 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                    var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                    var$14 = var$1.$slots.data;
                    var$1 = var$14[var$5 & (var$14.length - 1 | 0)];
                    g: {
                        while (var$1 !== null) {
                            if (var$1.$hashEntry == var$11) {
                                var$1 = var$1.$valueEntry;
                                break g;
                            }
                            var$1 = var$1.$nextEntry0;
                        }
                        var$1 = null;
                    }
                    var$4 = var$1;
                    if (var$4 !== null) {
                        var$1 = var$4.$trackingPlayers.$backingMap;
                        if (var$1.$cachedKeySet === null) {
                            var$7 = new ju_HashMap$1;
                            var$7.$this$0 = var$1;
                            ju_AbstractSet__init_(var$7);
                            var$1.$cachedKeySet = var$7;
                        }
                        var$15 = var$1.$cachedKeySet.$iterator();
                        var$5 = var$6 instanceof nms_Packet3Chat;
                        var$2 = var$6;
                        while (var$15.$hasNext()) {
                            a: {
                                var$1 = (var$15.$next()).$playerNetServerHandler;
                                if (var$5) {
                                    var$10 = var$1.$playerEntity.$chatVisibility;
                                    if (var$10 == 2)
                                        break a;
                                    if (var$10 == 1 && !var$2.$isServer)
                                        break a;
                                }
                                try {
                                    var$1 = var$1.$netManager;
                                    $ptr = 5;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$7 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null)
                                    jl_System_errCache = otcic_JSStderrPrintStream__init_();
                                jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                            }
                        }
                        var$1 = var$4.$myEntity;
                        if (var$1 instanceof nms_EntityPlayerMP)
                            e: {
                                var$1 = var$1.$playerNetServerHandler;
                                if (var$5) {
                                    var$9 = var$1.$playerEntity.$chatVisibility;
                                    if (var$9 == 2)
                                        break e;
                                    if (var$9 == 1 && !var$2.$isServer)
                                        break e;
                                }
                                try {
                                    var$1 = var$1.$netManager;
                                    $ptr = 6;
                                    continue main;
                                } catch ($$e) {
                                    $$je = $rt_wrapException($$e);
                                    if ($$je instanceof jl_Exception) {
                                        var$1 = $$je;
                                    } else {
                                        throw $$e;
                                    }
                                }
                                if (jl_System_errCache === null) {
                                    var$4 = new otcic_JSStderrPrintStream;
                                    otcic_JsConsolePrintStream__init_(var$4);
                                    jl_System_errCache = var$4;
                                }
                                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                            }
                    }
                    $this.$theVillager.$navigator.$currentPath = null;
                }
            }
            return;
        }
        $ptr = 4;
    case 4:
        nms_PathNavigate_setPath(var$2, var$1, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $this.$tookGolemRose = 1;
        if ($this.$tookGolemRose) {
            var$1 = $this.$theVillager;
            var$4 = $this.$theGolem;
            var$3 = var$1.$posX - var$4.$posX;
            var$12 = var$1.$posY - var$4.$posY;
            var$13 = var$1.$posZ - var$4.$posZ;
            if (var$3 * var$3 + var$12 * var$12 + var$13 * var$13 < 4.0) {
                var$4.$holdRoseTick = 0;
                var$1 = var$4.$worldObj;
                var$6 = new nms_Packet38EntityStatus;
                var$9 = var$4.$entityId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$6.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$6.$entityId0 = var$9;
                var$6.$entityStatus = 11;
                var$1 = var$1.$theEntityTracker.$trackedEntityIDs;
                var$11 = var$4.$entityId;
                var$5 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
                var$5 = var$5 ^ (var$5 >>> 7 | 0) ^ (var$5 >>> 4 | 0);
                var$14 = var$1.$slots.data;
                var$1 = var$14[var$5 & (var$14.length - 1 | 0)];
                h: {
                    while (var$1 !== null) {
                        if (var$1.$hashEntry == var$11) {
                            var$1 = var$1.$valueEntry;
                            break h;
                        }
                        var$1 = var$1.$nextEntry0;
                    }
                    var$1 = null;
                }
                var$4 = var$1;
                if (var$4 !== null) {
                    var$1 = var$4.$trackingPlayers.$backingMap;
                    if (var$1.$cachedKeySet === null) {
                        var$7 = new ju_HashMap$1;
                        var$7.$this$0 = var$1;
                        ju_AbstractSet__init_(var$7);
                        var$1.$cachedKeySet = var$7;
                    }
                    var$15 = var$1.$cachedKeySet.$iterator();
                    var$5 = var$6 instanceof nms_Packet3Chat;
                    var$2 = var$6;
                    while (var$15.$hasNext()) {
                        d: {
                            var$1 = (var$15.$next()).$playerNetServerHandler;
                            if (var$5) {
                                var$10 = var$1.$playerEntity.$chatVisibility;
                                if (var$10 == 2)
                                    break d;
                                if (var$10 == 1 && !var$2.$isServer)
                                    break d;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 5;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$7 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null)
                                jl_System_errCache = otcic_JSStderrPrintStream__init_();
                            jl_Throwable_printStackTrace(var$7, jl_System_errCache);
                        }
                    }
                    var$1 = var$4.$myEntity;
                    if (var$1 instanceof nms_EntityPlayerMP)
                        i: {
                            var$1 = var$1.$playerNetServerHandler;
                            if (var$5) {
                                var$9 = var$1.$playerEntity.$chatVisibility;
                                if (var$9 == 2)
                                    break i;
                                if (var$9 == 1 && !var$2.$isServer)
                                    break i;
                            }
                            try {
                                var$1 = var$1.$netManager;
                                $ptr = 6;
                                continue main;
                            } catch ($$e) {
                                $$je = $rt_wrapException($$e);
                                if ($$je instanceof jl_Exception) {
                                    var$1 = $$je;
                                } else {
                                    throw $$e;
                                }
                            }
                            if (jl_System_errCache === null) {
                                var$4 = new otcic_JSStderrPrintStream;
                                otcic_JsConsolePrintStream__init_(var$4);
                                jl_System_errCache = var$4;
                            }
                            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
                        }
                }
                $this.$theVillager.$navigator.$currentPath = null;
            }
        }
        return;
    case 5:
        j: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break j;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$1 = jl_System_errCache;
            if (var$1 === null) {
                var$1 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$1;
            }
            var$1 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$1);
        }
        k: while (true) {
            while (true) {
                if (!var$15.$hasNext())
                    break k;
                var$1 = (var$15.$next()).$playerNetServerHandler;
                if (!var$5)
                    break;
                var$10 = var$1.$playerEntity.$chatVisibility;
                if (var$10 == 2)
                    continue;
                if (var$10 != 1)
                    break;
                if (var$2.$isServer)
                    break;
            }
            try {
                var$1 = var$1.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$7 = $$je;
                } else {
                    throw $$e;
                }
            }
            var$1 = jl_System_errCache;
            if (var$1 === null) {
                var$1 = otcic_JSStderrPrintStream__init_();
                jl_System_errCache = var$1;
            }
            var$1 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$7, var$1);
        }
        var$1 = var$4.$myEntity;
        if (var$1 instanceof nms_EntityPlayerMP)
            l: {
                var$1 = var$1.$playerNetServerHandler;
                if (var$5) {
                    var$9 = var$1.$playerEntity.$chatVisibility;
                    if (var$9 == 2)
                        break l;
                    if (var$9 == 1 && !var$2.$isServer)
                        break l;
                }
                try {
                    var$1 = var$1.$netManager;
                    $ptr = 6;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$1 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$4 = new otcic_JSStderrPrintStream;
                    otcic_JsConsolePrintStream__init_(var$4);
                    jl_System_errCache = var$4;
                }
                jl_Throwable_printStackTrace(var$1, jl_System_errCache);
            }
        $this.$theVillager.$navigator.$currentPath = null;
        return;
    case 6:
        j: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$1, var$6);
                if ($rt_suspending()) {
                    break main;
                }
                break j;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$1 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$4 = new otcic_JSStderrPrintStream;
                otcic_JsConsolePrintStream__init_(var$4);
                jl_System_errCache = var$4;
            }
            jl_Throwable_printStackTrace(var$1, jl_System_errCache);
        }
        $this.$theVillager.$navigator.$currentPath = null;
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
};
function nms_EntityAIPlay() {
    let a = this; nms_EntityAIBase.call(a);
    a.$villagerObj0 = null;
    a.$targetVillager = null;
    a.$field_75261_c = 0.0;
    a.$playTime = 0;
}
let nms_EntityAIPlay_shouldExecute = $this => {
    let $var8, var$2, var$3, var$4, var$5, var$6, $var4$index, var$8, var$9, var$10, var$11, $var2, $var6, var$14, $var5, var$16, $var1, $var4$index_0, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();$var4$index_0 = $thread.pop();$var1 = $thread.pop();var$16 = $thread.pop();$var5 = $thread.pop();var$14 = $thread.pop();$var6 = $thread.pop();$var2 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var4$index = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var8 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $this.$villagerObj0.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$2 = jl_Integer_integerCache.data[140];
        if (var$2 === null) {
            $var8 = $var8.$elementData.data[0];
            while ($var8 !== null && $var8.$key !== null) {
                $var8 = $var8.$next3;
            }
        } else {
            var$3 = var$2.$value;
            var$4 = $var8.$elementData.data;
            $var8 = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($var8 !== null) {
                if ($var8.$origKeyHash == var$3) {
                    var$5 = $var8.$key;
                    if (var$2 !== var$5 && !(var$2 === var$5 ? 1 : var$5 instanceof jl_Integer && var$5.$value == var$3 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var8 = $var8.$next3;
            }
        }
        $var8 = $var8 === null ? null : $var8.$value0;
        if ($var8.$watchedObject.$value >= 0)
            return 0;
        $var8 = $this.$villagerObj0;
        var$2 = $var8.$rand;
        var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$2.$seed = var$6;
        $var4$index = Long_lo(Long_shru(var$6, 17));
        while (true) {
            var$8 = $var4$index % 400 | 0;
            if ((($var4$index - var$8 | 0) + 399 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul(var$2.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$2.$seed = var$6;
            $var4$index = Long_lo(Long_shru(var$6, 17));
        }
        if (var$8)
            return 0;
        var$2 = $var8.$worldObj;
        var$5 = $rt_cls(nms_EntityVillager);
        $var8 = $var8.$boundingBox0;
        var$9 = $var8.$minX0 - 6.0;
        var$10 = $var8.$minY0 - 3.0;
        var$11 = $var8.$minZ0 - 6.0;
        $var2 = $var8.$maxX0 + 6.0;
        $var6 = $var8.$maxY + 3.0;
        var$14 = $var8.$maxZ0 + 6.0;
        $var5 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$3 = $var5.$nextPoolIndex;
        $var8 = $var5.$listAABB;
        $var4$index = $var8.$size0;
        var$16 = $rt_compare(var$3, $var4$index);
        if (var$16 >= 0) {
            $var1 = new nms_AxisAlignedBB;
            $var1.$minX0 = var$9;
            $var1.$minY0 = var$10;
            $var1.$minZ0 = var$11;
            $var1.$maxX0 = $var2;
            $var1.$maxY = $var6;
            $var1.$maxZ0 = var$14;
            ju_ArrayList_ensureCapacity($var8, $var4$index + 1 | 0);
            var$4 = $var8.$array.data;
            var$16 = $var8.$size0;
            $var8.$size0 = var$16 + 1 | 0;
            var$4[var$16] = $var1;
            $var8.$modCount = $var8.$modCount + 1 | 0;
        } else if (var$3 >= 0 && var$16 < 0) {
            $var1 = $var8.$array.data[var$3];
            $var1.$minX0 = var$9;
            $var1.$minY0 = var$10;
            $var1.$minZ0 = var$11;
            $var1.$maxX0 = $var2;
            $var1.$maxY = $var6;
            $var1.$maxZ0 = var$14;
        } else {
            $var8 = new jl_IndexOutOfBoundsException;
            $var8.$suppressionEnabled = 1;
            $var8.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var8);
            $rt_throw($var8);
        }
        $var5.$nextPoolIndex = $var5.$nextPoolIndex + 1 | 0;
        $var8 = null;
        $ptr = 1;
    case 1:
        $tmp = nms_World_selectEntitiesWithinAABB(var$2, var$5, $var1, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $var2 = 1.7976931348623157E308;
        $var4$index_0 = 0;
        var$8 = $var1.$modCount;
        var$19 = $var1.$size();
        while (true) {
            if (!($var4$index_0 >= var$19 ? 0 : 1)) {
                if ($this.$targetVillager !== null)
                    return 1;
                $var8 = $this.$villagerObj0;
                var$3 = 16;
                var$16 = 3;
                nms_RandomPositionGenerator_$callClinit();
                var$2 = null;
                $ptr = 2;
                continue main;
            }
            if (var$8 < $var1.$modCount)
                break;
            $var4$index = $var4$index_0 + 1 | 0;
            $var5 = $var1.$get($var4$index_0);
            if ($var5 !== $this.$villagerObj0 && !$var5.$isPlaying) {
                $var8 = $var5.$dataWatcher.$watchedObjects;
                jl_Integer_ensureIntegerCache();
                var$5 = jl_Integer_integerCache.data[140];
                if (var$5 === null) {
                    $var8 = $var8.$elementData.data[0];
                    while ($var8 !== null && $var8.$key !== null) {
                        $var8 = $var8.$next3;
                    }
                } else {
                    $var4$index_0 = var$5.$value;
                    var$4 = $var8.$elementData.data;
                    $var8 = var$4[$var4$index_0 & (var$4.length - 1 | 0)];
                    while ($var8 !== null) {
                        if ($var8.$origKeyHash == $var4$index_0) {
                            var$2 = $var8.$key;
                            if (var$5 !== var$2 && !(var$5 === var$2 ? 1 : var$2 instanceof jl_Integer && var$2.$value == $var4$index_0 ? 1 : 0) ? 0 : 1)
                                break;
                        }
                        $var8 = $var8.$next3;
                    }
                }
                $var8 = $var8 === null ? null : $var8.$value0;
                if ($var8.$watchedObject.$value < 0) {
                    $var8 = $this.$villagerObj0;
                    $var6 = $var5.$posX - $var8.$posX;
                    var$14 = $var5.$posY - $var8.$posY;
                    var$9 = $var5.$posZ - $var8.$posZ;
                    $var6 = $var6 * $var6 + var$14 * var$14 + var$9 * var$9;
                    if ($var6 <= $var2) {
                        $this.$targetVillager = $var5;
                        $var2 = $var6;
                    }
                }
            }
            $var4$index_0 = $var4$index;
        }
        $var8 = new ju_ConcurrentModificationException;
        $var8.$suppressionEnabled = 1;
        $var8.$writableStackTrace = 1;
        $rt_throw($var8);
    case 2:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock($var8, var$3, var$16, var$2);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 !== null)
            return 1;
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var8, var$2, var$3, var$4, var$5, var$6, $var4$index, var$8, var$9, var$10, var$11, $var2, $var6, var$14, $var5, var$16, $var1, $var4$index_0, var$19, $ptr);
},
nms_EntityAIPlay_continueExecuting = $this => {
    return $this.$playTime <= 0 ? 0 : 1;
},
nms_EntityAIPlay_startExecuting = $this => {
    if ($this.$targetVillager !== null)
        $this.$villagerObj0.$isPlaying = 1;
    $this.$playTime = 1000;
},
nms_EntityAIPlay_resetTask = $this => {
    $this.$villagerObj0.$isPlaying = 0;
    $this.$targetVillager = null;
},
nms_EntityAIPlay_updateTask = $this => {
    let var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $this.$playTime = $this.$playTime - 1 | 0;
            var$1 = $this.$targetVillager;
            if (var$1 === null) {
                var$1 = $this.$villagerObj0;
                $var1 = var$1.$navigator.$currentPath;
                if (!($var1 !== null && !($var1.$currentPathIndex < $var1.$pathLength ? 0 : 1) ? 0 : 1))
                    break a;
                var$3 = 16;
                var$4 = 3;
                nms_RandomPositionGenerator_$callClinit();
                $var1 = null;
                $ptr = 1;
                continue main;
            }
            $var1 = $this.$villagerObj0;
            var$5 = $var1.$posX - var$1.$posX;
            var$6 = $var1.$posY - var$1.$posY;
            var$7 = $var1.$posZ - var$1.$posZ;
            if (var$5 * var$5 + var$6 * var$6 + var$7 * var$7 > 4.0) {
                $var1 = $var1.$navigator;
                var$5 = $this.$field_75261_c;
                var$8 = $var1.$theEntity;
                if (var$8.$onGround)
                    var$3 = 1;
                else {
                    if ($var1.$canSwim) {
                        $ptr = 2;
                        continue main;
                    }
                    var$3 = 0;
                }
                if (var$3) {
                    var$8 = $var1.$worldObj3;
                    var$9 = $var1.$theEntity;
                    var$10 = $var1.$pathSearchRange;
                    if (var$10.$field_111133_g) {
                        var$10.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$10);
                        var$10.$field_111133_g = 0;
                    }
                    var$11 = var$10.$field_111139_h;
                    var$12 = $var1.$canPassOpenWoodenDoors;
                    var$3 = $var1.$canPassClosedWoodenDoors;
                    var$4 = $var1.$avoidsWater;
                    var$13 = $var1.$canSwim;
                    $ptr = 4;
                    continue main;
                }
                var$1 = null;
                if (var$1 !== null) {
                    $ptr = 5;
                    continue main;
                }
            }
        }
        return;
    case 1:
        $tmp = nms_RandomPositionGenerator_findRandomTargetBlock(var$1, var$3, var$4, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        if ($var1 === null)
            return;
        var$1 = $this.$villagerObj0.$navigator;
        var$5 = $var1.$xCoord;
        var$6 = $var1.$yCoord;
        var$7 = $var1.$zCoord;
        var$14 = $this.$field_75261_c;
        var$4 = var$5 | 0;
        if (var$5 < var$4)
            var$4 = var$4 - 1 | 0;
        var$5 = var$4;
        var$6 = var$6 | 0;
        var$4 = var$7 | 0;
        if (var$7 < var$4)
            var$4 = var$4 - 1 | 0;
        var$7 = var$4;
        $var1 = var$1.$theEntity;
        if ($var1.$onGround)
            var$3 = 1;
        else {
            if (var$1.$canSwim) {
                $ptr = 6;
                continue main;
            }
            var$3 = 0;
        }
        if (!var$3) {
            $var1 = null;
            $ptr = 8;
            continue main;
        }
        $var1 = var$1.$worldObj3;
        var$8 = var$1.$theEntity;
        var$15 = var$5 | 0;
        if (var$5 < var$15)
            var$15 = var$15 - 1 | 0;
        var$3 = var$6 | 0;
        var$16 = var$7 | 0;
        if (var$7 < var$16)
            var$16 = var$16 - 1 | 0;
        var$9 = var$1.$pathSearchRange;
        if (var$9.$field_111133_g) {
            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
            var$9.$field_111133_g = 0;
        }
        var$11 = var$9.$field_111139_h;
        var$4 = var$1.$canPassOpenWoodenDoors;
        var$13 = var$1.$canPassClosedWoodenDoors;
        var$12 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 9;
        continue main;
    case 2:
        $tmp = var$8.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3) {
            var$8 = $var1.$theEntity;
            $ptr = 3;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            var$1 = null;
            if (var$1 === null)
                return;
            $ptr = 5;
            continue main;
        }
        var$8 = $var1.$worldObj3;
        var$9 = $var1.$theEntity;
        var$10 = $var1.$pathSearchRange;
        if (var$10.$field_111133_g) {
            var$10.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$10);
            var$10.$field_111133_g = 0;
        }
        var$11 = var$10.$field_111139_h;
        var$12 = $var1.$canPassOpenWoodenDoors;
        var$3 = $var1.$canPassClosedWoodenDoors;
        var$4 = $var1.$avoidsWater;
        var$13 = $var1.$canSwim;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = var$8.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!((var$3 ? 1 : 0) ? 1 : 0)) {
            var$1 = null;
            if (var$1 === null)
                return;
            $ptr = 5;
            continue main;
        }
        var$8 = $var1.$worldObj3;
        var$9 = $var1.$theEntity;
        var$10 = $var1.$pathSearchRange;
        if (var$10.$field_111133_g) {
            var$10.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$10);
            var$10.$field_111133_g = 0;
        }
        var$11 = var$10.$field_111139_h;
        var$12 = $var1.$canPassOpenWoodenDoors;
        var$3 = $var1.$canPassClosedWoodenDoors;
        var$4 = $var1.$avoidsWater;
        var$13 = $var1.$canSwim;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getPathEntityToEntity(var$8, var$9, var$1, var$11, var$12, var$3, var$4, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $tmp;
        if (var$1 === null)
            return;
        $ptr = 5;
    case 5:
        nms_PathNavigate_setPath($var1, var$1, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 6:
        $tmp = $var1.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3) {
            $var1 = var$1.$theEntity;
            $ptr = 7;
            continue main;
        }
        if (!(1 ? 1 : 0)) {
            $var1 = null;
            $ptr = 8;
            continue main;
        }
        $var1 = var$1.$worldObj3;
        var$8 = var$1.$theEntity;
        var$15 = var$5 | 0;
        if (var$5 < var$15)
            var$15 = var$15 - 1 | 0;
        var$3 = var$6 | 0;
        var$16 = var$7 | 0;
        if (var$7 < var$16)
            var$16 = var$16 - 1 | 0;
        var$9 = var$1.$pathSearchRange;
        if (var$9.$field_111133_g) {
            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
            var$9.$field_111133_g = 0;
        }
        var$11 = var$9.$field_111139_h;
        var$4 = var$1.$canPassOpenWoodenDoors;
        var$13 = var$1.$canPassClosedWoodenDoors;
        var$12 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 9;
        continue main;
    case 7:
        $tmp = $var1.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!((var$3 ? 1 : 0) ? 1 : 0)) {
            $var1 = null;
            $ptr = 8;
            continue main;
        }
        $var1 = var$1.$worldObj3;
        var$8 = var$1.$theEntity;
        var$15 = var$5 | 0;
        if (var$5 < var$15)
            var$15 = var$15 - 1 | 0;
        var$3 = var$6 | 0;
        var$16 = var$7 | 0;
        if (var$7 < var$16)
            var$16 = var$16 - 1 | 0;
        var$9 = var$1.$pathSearchRange;
        if (var$9.$field_111133_g) {
            var$9.$field_111139_h = nms_ModifiableAttributeInstance_func_111129_g(var$9);
            var$9.$field_111133_g = 0;
        }
        var$11 = var$9.$field_111139_h;
        var$4 = var$1.$canPassOpenWoodenDoors;
        var$13 = var$1.$canPassClosedWoodenDoors;
        var$12 = var$1.$avoidsWater;
        var$17 = var$1.$canSwim;
        $ptr = 9;
        continue main;
    case 8:
        nms_PathNavigate_setPath(var$1, $var1, var$14);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 9:
        $tmp = nms_World_getEntityPathToXYZ($var1, var$8, var$15, var$3, var$16, var$11, var$4, var$13, var$12, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        $ptr = 8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_EntityAIWatchClosest2 = $rt_classWithoutFields(nms_EntityAIWatchClosest);
function nms_Tuple() {
    let a = this; jl_Object.call(a);
    a.$first0 = null;
    a.$second = null;
}
let nms_Tuple__init_0 = ($this, $par1Obj, $par2Obj) => {
    $this.$first0 = $par1Obj;
    $this.$second = $par2Obj;
},
nms_Tuple__init_ = (var_0, var_1) => {
    let var_2 = new nms_Tuple();
    nms_Tuple__init_0(var_2, var_0, var_1);
    return var_2;
};
function nms_EntityAISit() {
    let a = this; nms_EntityAIBase.call(a);
    a.$theEntity8 = null;
    a.$isSitting0 = 0;
}
let nms_EntityAISit_shouldExecute = $this => {
    let var$1, var$2, var$3, var$4, $var1, var$6, var$7, var$8, var$9, var$10, var$11;
    var$1 = $this.$theEntity8.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$2 = jl_Integer_integerCache.data[144];
    if (var$2 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$2.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                $var1 = var$1.$key;
                if (var$2 !== $var1 && !(var$2 === $var1 ? 1 : $var1 instanceof jl_Integer && $var1.$value == var$3 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$1 = var$1 === null ? null : var$1.$value0;
    if (!(!(var$1.$watchedObject.$value1 & 4) ? 0 : 1))
        return 0;
    var$1 = $this.$theEntity8;
    if (var$1.$inWater)
        return 0;
    if (!var$1.$onGround)
        return 0;
    $var1 = var$1.$worldObj;
    var$1 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$6 = jl_Integer_integerCache.data[145];
    if (var$6 === null) {
        var$1 = var$1.$elementData.data[0];
        while (var$1 !== null && var$1.$key !== null) {
            var$1 = var$1.$next3;
        }
    } else {
        var$3 = var$6.$value;
        var$4 = var$1.$elementData.data;
        var$1 = var$4[var$3 & (var$4.length - 1 | 0)];
        while (var$1 !== null) {
            if (var$1.$origKeyHash == var$3) {
                var$2 = var$1.$key;
                if (var$6 !== var$2 && !jl_Integer_equals(var$6, var$2) ? 0 : 1)
                    break;
            }
            var$1 = var$1.$next3;
        }
    }
    var$6 = (var$1 === null ? null : var$1.$value0).$watchedObject;
    var$7 = 0;
    a: {
        while (true) {
            var$1 = $var1.$playerEntities;
            var$8 = $rt_compare(var$7, var$1.$size0);
            if (var$8 >= 0) {
                $var1 = null;
                break a;
            }
            if (var$7 < 0)
                break;
            if (var$8 >= 0)
                break;
            var$1 = var$1.$array.data[var$7].$username;
            if (var$6 === var$1)
                var$8 = 1;
            else if (!(var$1 instanceof jl_String))
                var$8 = 0;
            else {
                var$1 = var$1;
                var$8 = var$6.$nativeString !== var$1.$nativeString ? 0 : 1;
            }
            if (var$8) {
                var$1 = $var1.$playerEntities;
                if (var$7 >= 0 && var$7 < var$1.$size0) {
                    $var1 = var$1.$array.data[var$7];
                    break a;
                }
                var$1 = new jl_IndexOutOfBoundsException;
                var$1.$suppressionEnabled = 1;
                var$1.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace(var$1);
                $rt_throw(var$1);
            }
            var$7 = var$7 + 1 | 0;
        }
        var$1 = new jl_IndexOutOfBoundsException;
        var$1.$suppressionEnabled = 1;
        var$1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace(var$1);
        $rt_throw(var$1);
    }
    if ($var1 === null)
        var$7 = 1;
    else {
        var$1 = $this.$theEntity8;
        var$9 = var$1.$posX - $var1.$posX;
        var$10 = var$1.$posY - $var1.$posY;
        var$11 = var$1.$posZ - $var1.$posZ;
        var$7 = var$9 * var$9 + var$10 * var$10 + var$11 * var$11 < 144.0 && $var1.$entityLivingToAttack !== null ? 0 : $this.$isSitting0;
    }
    return var$7;
},
nms_EntityAISit_startExecuting = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$theEntity8;
    var$1.$navigator.$currentPath = null;
    var$2 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    var$1 = var$1.$dataWatcher;
    var$7 = (var$7 | 1) << 24 >> 24;
    var$8 = jl_Byte_byteCache.data[var$7 + 128 | 0];
    var$2 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$6 = var$2 === null ? null : var$2.$value0;
    var$2 = var$6.$watchedObject;
    if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$8.$value1 ? 1 : 0)) {
        var$6.$watchedObject = var$8;
        var$6.$watched = 1;
        var$1.$objectChanged = 1;
    }
},
nms_EntityAISit_resetTask = $this => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$1 = $this.$theEntity8;
    var$2 = var$1.$dataWatcher.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$7 = (var$2 === null ? null : var$2.$value0).$watchedObject.$value1;
    var$1 = var$1.$dataWatcher;
    var$7 = (var$7 & (-2)) << 24 >> 24;
    var$8 = jl_Byte_byteCache.data[var$7 + 128 | 0];
    var$2 = var$1.$watchedObjects;
    jl_Integer_ensureIntegerCache();
    var$3 = jl_Integer_integerCache.data[144];
    if (var$3 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$4 = var$3.$value;
        var$5 = var$2.$elementData.data;
        var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$4) {
                var$6 = var$2.$key;
                if (var$3 !== var$6 && !(var$3 === var$6 ? 1 : var$6 instanceof jl_Integer && var$6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$6 = var$2 === null ? null : var$2.$value0;
    var$2 = var$6.$watchedObject;
    if (!(var$2 instanceof jl_Byte && var$2.$value1 == var$8.$value1 ? 1 : 0)) {
        var$6.$watchedObject = var$8;
        var$6.$watched = 1;
        var$1.$objectChanged = 1;
    }
},
nms_AnimalChest = $rt_classWithoutFields(nms_InventoryBasic),
nms_EntityHorseBredSelector = $rt_classWithoutFields(),
nms_EntityHorseBredSelector__init_ = $this => {
    return;
},
nms_EntityHorseBredSelector__init_0 = () => {
    let var_0 = new nms_EntityHorseBredSelector();
    nms_EntityHorseBredSelector__init_(var_0);
    return var_0;
},
nms_EntityHorseBredSelector_isEntityApplicable = ($this, $par1Entity) => {
    let var$2, var$3, var$4, var$5, var$6;
    a: {
        if ($par1Entity instanceof nms_EntityHorse) {
            $par1Entity = $par1Entity.$dataWatcher.$watchedObjects;
            jl_Integer_ensureIntegerCache();
            var$2 = jl_Integer_integerCache.data[144];
            if (var$2 === null) {
                $par1Entity = $par1Entity.$elementData.data[0];
                while ($par1Entity !== null && $par1Entity.$key !== null) {
                    $par1Entity = $par1Entity.$next3;
                }
            } else {
                var$3 = var$2.$value;
                var$4 = $par1Entity.$elementData.data;
                $par1Entity = var$4[var$3 & (var$4.length - 1 | 0)];
                while ($par1Entity !== null) {
                    if ($par1Entity.$origKeyHash == var$3) {
                        var$5 = $par1Entity.$key;
                        if (var$2 !== var$5 && !jl_Integer_equals(var$2, var$5) ? 0 : 1)
                            break;
                    }
                    $par1Entity = $par1Entity.$next3;
                }
            }
            $par1Entity = $par1Entity === null ? null : $par1Entity.$value0;
            if (!($par1Entity.$watchedObject.$value & 16) ? 0 : 1) {
                var$6 = 1;
                break a;
            }
        }
        var$6 = 0;
    }
    return var$6;
},
nms_AttributeInstance = $rt_classWithoutFields(0);
function nms_ModifiableAttributeInstance() {
    let a = this; jl_Object.call(a);
    a.$field_111138_a = null;
    a.$field_111136_b = null;
    a.$field_111137_c = null;
    a.$field_111134_d = null;
    a.$field_111135_e = null;
    a.$baseValue = 0.0;
    a.$field_111133_g = 0;
    a.$field_111139_h = 0.0;
}
let nms_ModifiableAttributeInstance__init_0 = ($this, $par1BaseAttributeMap, $par2Attribute) => {
    let var$3, $var3, var$5, var$6, var$7, var$8;
    var$3 = new ju_HashMap;
    $var3 = ju_HashMap_calculateCapacity(16);
    var$3.$elementCount = 0;
    var$5 = $rt_createArray(ju_HashMap$HashEntry, $var3);
    var$6 = var$5.data;
    var$3.$elementData = var$5;
    var$3.$loadFactor = 0.75;
    var$3.$threshold = var$6.length * 0.75 | 0;
    $this.$field_111137_c = var$3;
    var$3 = new ju_HashMap;
    $var3 = ju_HashMap_calculateCapacity(16);
    var$3.$elementCount = 0;
    var$6 = $rt_createArray(ju_HashMap$HashEntry, $var3);
    var$5 = var$6.data;
    var$3.$elementData = var$6;
    var$3.$loadFactor = 0.75;
    var$3.$threshold = var$5.length * 0.75 | 0;
    $this.$field_111134_d = var$3;
    var$3 = new ju_HashMap;
    $var3 = ju_HashMap_calculateCapacity(16);
    var$3.$elementCount = 0;
    var$6 = $rt_createArray(ju_HashMap$HashEntry, $var3);
    var$5 = var$6.data;
    var$3.$elementData = var$6;
    var$3.$loadFactor = 0.75;
    var$3.$threshold = var$5.length * 0.75 | 0;
    $this.$field_111135_e = var$3;
    $this.$field_111133_g = 1;
    $this.$field_111138_a = $par1BaseAttributeMap;
    $this.$field_111136_b = $par2Attribute;
    $this.$baseValue = $par2Attribute.$defaultValue;
    $var3 = 0;
    while ($var3 < 3) {
        $par1BaseAttributeMap = $this.$field_111137_c;
        if ($var3 >= (-128) && $var3 <= 127) {
            jl_Integer_ensureIntegerCache();
            $par2Attribute = jl_Integer_integerCache.data[$var3 + 128 | 0];
        } else {
            $par2Attribute = new jl_Integer;
            $par2Attribute.$value = $var3;
        }
        var$3 = new ju_HashSet;
        var$7 = new ju_HashMap;
        var$8 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, var$8);
        var$6 = var$5.data;
        var$7.$elementData = var$5;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$6.length * 0.75 | 0;
        var$3.$backingMap = var$7;
        ju_HashMap_putImpl($par1BaseAttributeMap, $par2Attribute, var$3);
        $var3 = $var3 + 1 | 0;
    }
},
nms_ModifiableAttributeInstance__init_ = (var_0, var_1) => {
    let var_2 = new nms_ModifiableAttributeInstance();
    nms_ModifiableAttributeInstance__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ModifiableAttributeInstance_applyModifier = ($this, $par1AttributeModifier) => {
    let var$2, $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13;
    var$2 = $par1AttributeModifier.$id1;
    $var2 = $this.$field_111135_e;
    if (var$2 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        var$4 = var$2.$mostSigBits;
        var$5 = var$2.$leastSigBits;
        var$6 = Long_xor(var$4, var$5);
        var$7 = Long_hi(var$6) ^ Long_lo(var$6);
        var$8 = $var2.$elementData.data;
        $var2 = var$8[var$7 & (var$8.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$7) {
                a: {
                    var$9 = $var2.$key;
                    if (var$2 !== var$9) {
                        if (null !== var$9 && var$9 instanceof nle_ProfileUUID) {
                            var$9 = var$9;
                            var$10 = Long_eq(var$4, var$9.$mostSigBits) && Long_eq(var$5, var$9.$leastSigBits) ? 1 : 0;
                        } else
                            var$10 = 0;
                        if (!var$10) {
                            var$10 = 0;
                            break a;
                        }
                    }
                    var$10 = 1;
                }
                if (var$10)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 !== null) {
        $par1AttributeModifier = new jl_IllegalArgumentException;
        $par1AttributeModifier.$suppressionEnabled = 1;
        $par1AttributeModifier.$writableStackTrace = 1;
        $par1AttributeModifier.$message = $rt_s(2663);
        $rt_throw($par1AttributeModifier);
    }
    $var2 = $this.$field_111134_d;
    var$2 = $par1AttributeModifier.$name3;
    if (var$2 === null) {
        $var2 = $var2.$elementData.data[0];
        while ($var2 !== null && $var2.$key !== null) {
            $var2 = $var2.$next3;
        }
    } else {
        b: {
            if (!var$2.$hashCode1) {
                var$7 = 0;
                while (true) {
                    if (var$7 >= var$2.$nativeString.length)
                        break b;
                    var$2.$hashCode1 = (31 * var$2.$hashCode1 | 0) + var$2.$nativeString.charCodeAt(var$7) | 0;
                    var$7 = var$7 + 1 | 0;
                }
            }
        }
        var$11 = var$2.$hashCode1;
        var$8 = $var2.$elementData.data;
        $var2 = var$8[var$11 & (var$8.length - 1 | 0)];
        while ($var2 !== null) {
            if ($var2.$origKeyHash == var$11) {
                c: {
                    var$9 = $var2.$key;
                    if (var$2 !== var$9) {
                        if (var$2 === var$9)
                            var$7 = 1;
                        else if (!(var$9 instanceof jl_String))
                            var$7 = 0;
                        else {
                            var$9 = var$9;
                            var$7 = var$2.$nativeString !== var$9.$nativeString ? 0 : 1;
                        }
                        if (!var$7) {
                            var$7 = 0;
                            break c;
                        }
                    }
                    var$7 = 1;
                }
                if (var$7)
                    break;
            }
            $var2 = $var2.$next3;
        }
    }
    $var2 = $var2 === null ? null : $var2.$value0;
    if ($var2 === null) {
        $var2 = new ju_HashSet;
        var$2 = new ju_HashMap;
        var$7 = ju_HashMap_calculateCapacity(16);
        var$2.$elementCount = 0;
        var$12 = $rt_createArray(ju_HashMap$HashEntry, var$7);
        var$8 = var$12.data;
        var$2.$elementData = var$12;
        var$2.$loadFactor = 0.75;
        var$2.$threshold = var$8.length * 0.75 | 0;
        $var2.$backingMap = var$2;
        ju_HashMap_putImpl($this.$field_111134_d, $par1AttributeModifier.$name3, $var2);
    }
    var$2 = $this.$field_111137_c;
    var$10 = $par1AttributeModifier.$operation;
    if (var$10 >= (-128) && var$10 <= 127) {
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[var$10 + 128 | 0];
    } else {
        var$13 = new jl_Integer;
        var$13.$value = var$10;
    }
    if (var$13 === null) {
        var$2 = var$2.$elementData.data[0];
        while (var$2 !== null && var$2.$key !== null) {
            var$2 = var$2.$next3;
        }
    } else {
        var$11 = var$13.$value;
        var$8 = var$2.$elementData.data;
        var$2 = var$8[var$11 & (var$8.length - 1 | 0)];
        while (var$2 !== null) {
            if (var$2.$origKeyHash == var$11) {
                var$9 = var$2.$key;
                if (var$13 !== var$9 && !(var$13 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$11 ? 1 : 0) ? 0 : 1)
                    break;
            }
            var$2 = var$2.$next3;
        }
    }
    var$9 = var$2 === null ? null : var$2.$value0;
    ju_HashMap_putImpl(var$9.$backingMap, $par1AttributeModifier, var$9);
    ju_HashMap_putImpl($var2.$backingMap, $par1AttributeModifier, $var2);
    ju_HashMap_putImpl($this.$field_111135_e, $par1AttributeModifier.$id1, $par1AttributeModifier);
    $this.$field_111133_g = 1;
    $par1AttributeModifier = $this.$field_111138_a;
    if ($this.$field_111136_b.$shouldWatch) {
        $par1AttributeModifier = $par1AttributeModifier.$field_111162_d;
        ju_HashMap_putImpl($par1AttributeModifier.$backingMap, $this, $par1AttributeModifier);
    }
},
nms_ModifiableAttributeInstance_removeModifier = ($this, $par1AttributeModifier) => {
    let $var2, $var4, var$4, var$5, var$6, $var3, var$8;
    $var2 = 0;
    while ($var2 < 3) {
        $var4 = $this.$field_111137_c;
        if ($var2 >= (-128) && $var2 <= 127) {
            jl_Integer_ensureIntegerCache();
            var$4 = jl_Integer_integerCache.data[$var2 + 128 | 0];
        } else {
            var$4 = new jl_Integer;
            var$4.$value = $var2;
        }
        if (var$4 === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            var$5 = var$4.$value;
            var$6 = $var4.$elementData.data;
            $var4 = var$6[var$5 & (var$6.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$5) {
                    $var3 = $var4.$key;
                    if (var$4 !== $var3 && !(var$4 === $var3 ? 1 : $var3 instanceof jl_Integer && $var3.$value == var$5 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        $var4 = $var4 === null ? null : $var4.$value0;
        $var4 = ju_HashMap_removeByKey($var4.$backingMap, $par1AttributeModifier);
        $var2 = $var2 + 1 | 0;
    }
    $var4 = $this.$field_111134_d;
    $var3 = $par1AttributeModifier.$name3;
    if ($var3 === null) {
        $var4 = $var4.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        a: {
            if (!$var3.$hashCode1) {
                $var2 = 0;
                while (true) {
                    if ($var2 >= $var3.$nativeString.length)
                        break a;
                    $var3.$hashCode1 = (31 * $var3.$hashCode1 | 0) + $var3.$nativeString.charCodeAt($var2) | 0;
                    $var2 = $var2 + 1 | 0;
                }
            }
        }
        $var2 = $var3.$hashCode1;
        var$6 = $var4.$elementData.data;
        $var4 = var$6[$var2 & (var$6.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == $var2) {
                b: {
                    var$4 = $var4.$key;
                    if ($var3 !== var$4) {
                        if ($var3 === var$4)
                            var$8 = 1;
                        else if (!(var$4 instanceof jl_String))
                            var$8 = 0;
                        else {
                            var$4 = var$4;
                            var$8 = $var3.$nativeString !== var$4.$nativeString ? 0 : 1;
                        }
                        if (!var$8) {
                            var$8 = 0;
                            break b;
                        }
                    }
                    var$8 = 1;
                }
                if (var$8)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    $var4 = $var4 === null ? null : $var4.$value0;
    if ($var4 !== null) {
        $var3 = ju_HashMap_removeByKey($var4.$backingMap, $par1AttributeModifier);
        if ($var4.$backingMap.$elementCount ? 0 : 1)
            ju_HashMap_removeByKey($this.$field_111134_d, $par1AttributeModifier.$name3);
    }
    ju_HashMap_removeByKey($this.$field_111135_e, $par1AttributeModifier.$id1);
    $this.$field_111133_g = 1;
    $par1AttributeModifier = $this.$field_111138_a;
    if ($this.$field_111136_b.$shouldWatch) {
        $par1AttributeModifier = $par1AttributeModifier.$field_111162_d;
        ju_HashMap_putImpl($par1AttributeModifier.$backingMap, $this, $par1AttributeModifier);
    }
},
nms_ModifiableAttributeInstance_func_111129_g = $this => {
    let $var1, $var3, $var5, var$4, var$5, $var6, var$7, var$8;
    $var1 = $this.$baseValue;
    $var3 = $this.$field_111137_c;
    jl_Integer_ensureIntegerCache();
    $var5 = jl_Integer_integerCache.data[128];
    if ($var5 === null) {
        $var3 = $var3.$elementData.data[0];
        while ($var3 !== null && $var3.$key !== null) {
            $var3 = $var3.$next3;
        }
    } else {
        var$4 = $var5.$value;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$4) {
                $var6 = $var3.$key;
                if ($var5 !== $var6 && !($var5 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
    }
    $var3 = ($var3 === null ? null : $var3.$value0).$iterator();
    while ($var3.$hasNext()) {
        $var1 = $var1 + ($var3.$next()).$amount0;
    }
    $var3 = $this.$field_111137_c;
    jl_Integer_ensureIntegerCache();
    $var5 = jl_Integer_integerCache.data[129];
    if ($var5 === null) {
        $var3 = $var3.$elementData.data[0];
        while ($var3 !== null && $var3.$key !== null) {
            $var3 = $var3.$next3;
        }
    } else {
        var$4 = $var5.$value;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$4) {
                $var6 = $var3.$key;
                if ($var5 !== $var6 && !($var5 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == var$4 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
    }
    $var5 = ($var3 === null ? null : $var3.$value0).$iterator();
    var$7 = $var1;
    while ($var5.$hasNext()) {
        var$7 = var$7 + $var1 * ($var5.$next()).$amount0;
    }
    $var3 = $this.$field_111137_c;
    jl_Integer_ensureIntegerCache();
    $var5 = jl_Integer_integerCache.data[130];
    if ($var5 === null) {
        $var3 = $var3.$elementData.data[0];
        while ($var3 !== null && $var3.$key !== null) {
            $var3 = $var3.$next3;
        }
    } else {
        var$8 = $var5.$value;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$8 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$8) {
                $var6 = $var3.$key;
                if ($var5 !== $var6 && !($var5 === $var6 ? 1 : $var6 instanceof jl_Integer && $var6.$value == var$8 ? 1 : 0) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
    }
    $var3 = ($var3 === null ? null : $var3.$value0).$iterator();
    while ($var3.$hasNext()) {
        var$7 = var$7 * (1.0 + ($var3.$next()).$amount0);
    }
    $var3 = $this.$field_111136_b;
    $var1 = $var3.$minimumValue;
    if (var$7 >= $var1)
        $var1 = var$7;
    var$7 = $var3.$maximumValue;
    if ($var1 <= var$7)
        var$7 = $var1;
    return var$7;
},
jl_ReflectiveOperationException = $rt_classWithoutFields(jl_Exception),
jl_ReflectiveOperationException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_ReflectiveOperationException__init_0 = () => {
    let var_0 = new jl_ReflectiveOperationException();
    jl_ReflectiveOperationException__init_(var_0);
    return var_0;
},
jl_InstantiationException = $rt_classWithoutFields(jl_ReflectiveOperationException),
jl_InstantiationException__init_ = $this => {
    $this.$suppressionEnabled = 1;
    $this.$writableStackTrace = 1;
},
jl_InstantiationException__init_0 = () => {
    let var_0 = new jl_InstantiationException();
    jl_InstantiationException__init_(var_0);
    return var_0;
};
function nms_MovingObjectPosition() {
    let a = this; jl_Object.call(a);
    a.$typeOfHit = null;
    a.$blockX = 0;
    a.$blockY = 0;
    a.$blockZ = 0;
    a.$sideHit = 0;
    a.$hitVec = null;
    a.$entityHit = null;
}
let nms_EnumMovingObjectType = $rt_classWithoutFields(jl_Enum),
nms_EnumMovingObjectType_TILE = null,
nms_EnumMovingObjectType_ENTITY = null,
nms_EnumMovingObjectType_$VALUES = null,
nms_EnumMovingObjectType_values = () => {
    return nms_EnumMovingObjectType_$VALUES.$clone0();
},
nms_EnumMovingObjectType__clinit_ = () => {
    let var$1, var$2;
    var$1 = new nms_EnumMovingObjectType;
    var$1.$name0 = $rt_s(2664);
    var$1.$ordinal = 0;
    nms_EnumMovingObjectType_TILE = var$1;
    var$2 = new nms_EnumMovingObjectType;
    var$2.$name0 = $rt_s(2665);
    var$2.$ordinal = 1;
    nms_EnumMovingObjectType_ENTITY = var$2;
    nms_EnumMovingObjectType_$VALUES = $rt_wrapArray(nms_EnumMovingObjectType, [var$1, var$2]);
};
function nms_EntityHorseGroupData() {
    let a = this; jl_Object.call(a);
    a.$field_111107_a = 0;
    a.$field_111106_b = 0;
}
function nms_SpiderEffectsGroupData() {
    jl_Object.call(this);
    this.$field_111105_a = 0;
}
let nms_SpiderEffectsGroupData__init_ = $this => {
    return;
},
nms_SpiderEffectsGroupData__init_0 = () => {
    let var_0 = new nms_SpiderEffectsGroupData();
    nms_SpiderEffectsGroupData__init_(var_0);
    return var_0;
},
nms_SpiderEffectsGroupData_func_111104_a = ($this, $par1Random) => {
    let var$2, var$3, $var2;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    var$3 = Long_lo(Long_shru(var$2, 17));
    while (true) {
        $var2 = var$3 % 5 | 0;
        if (((var$3 - $var2 | 0) + 4 | 0) >= 0)
            break;
        var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$2;
        var$3 = Long_lo(Long_shru(var$2, 17));
    }
    if ($var2 <= 1) {
        nms_Potion_$callClinit();
        $this.$field_111105_a = nms_Potion_moveSpeed.$id0;
    } else if ($var2 <= 2) {
        nms_Potion_$callClinit();
        $this.$field_111105_a = nms_Potion_damageBoost.$id0;
    } else if ($var2 <= 3) {
        nms_Potion_$callClinit();
        $this.$field_111105_a = nms_Potion_regeneration.$id0;
    } else if ($var2 <= 4) {
        nms_Potion_$callClinit();
        $this.$field_111105_a = nms_Potion_invisibility.$id0;
    }
};
function nms_DamageSource() {
    let a = this; jl_Object.call(a);
    a.$isUnblockable = 0;
    a.$isDamageAllowedInCreativeMode = 0;
    a.$hungerDamage = 0.0;
    a.$fireDamage = 0;
    a.$projectile = 0;
    a.$difficultyScaled = 0;
    a.$magicDamage = 0;
    a.$explosion = 0;
    a.$damageType = null;
}
let nms_DamageSource_inFire = null,
nms_DamageSource_onFire = null,
nms_DamageSource_lava = null,
nms_DamageSource_inWall = null,
nms_DamageSource_drown = null,
nms_DamageSource_starve = null,
nms_DamageSource_cactus = null,
nms_DamageSource_fall = null,
nms_DamageSource_outOfWorld = null,
nms_DamageSource_generic = null,
nms_DamageSource_magic = null,
nms_DamageSource_wither = null,
nms_DamageSource_anvil = null,
nms_DamageSource_fallingBlock = null,
nms_DamageSource_isProjectile = $this => {
    return $this.$projectile;
},
nms_DamageSource_setProjectile = $this => {
    $this.$projectile = 1;
    return $this;
},
nms_DamageSource_isExplosion = $this => {
    return $this.$explosion;
},
nms_DamageSource_setExplosion = $this => {
    $this.$explosion = 1;
    return $this;
},
nms_DamageSource_isUnblockable = $this => {
    return $this.$isUnblockable;
},
nms_DamageSource_getHungerDamage = $this => {
    return $this.$hungerDamage;
},
nms_DamageSource_canHarmInCreative = $this => {
    return $this.$isDamageAllowedInCreativeMode;
},
nms_DamageSource_getSourceOfDamage = $this => {
    return $this.$getEntity();
},
nms_DamageSource_getEntity = $this => {
    return null;
},
nms_DamageSource_setDamageAllowedInCreativeMode = $this => {
    $this.$isDamageAllowedInCreativeMode = 1;
    return $this;
},
nms_DamageSource_setFireDamage = $this => {
    $this.$fireDamage = 1;
    return $this;
},
nms_DamageSource_getDeathMessage = ($this, $par1EntityLivingBase) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    if (nms_CombatTracker_func_94550_c($par1EntityLivingBase.$_combatTracker) !== null)
        $var2 = nms_CombatTracker_func_94550_c($par1EntityLivingBase.$_combatTracker);
    else {
        $var2 = $par1EntityLivingBase.$attackingPlayer;
        if ($var2 === null) {
            $var2 = $par1EntityLivingBase.$entityLivingToAttack;
            if ($var2 === null)
                $var2 = null;
        }
    }
    var$3 = $this.$damageType;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2666));
    var$5 = var$4.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$4, var$5, var$3);
    var$6 = new jl_String;
    var$7 = var$4.$buffer;
    var$8 = var$7.data;
    var$9 = var$4.$length0;
    var$10 = var$8.length;
    if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
        var$6.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
        var$3 = new jl_StringBuilder;
        var$3.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, var$6);
        jl_AbstractStringBuilder_insert(var$3, var$3.$length0, $rt_s(2667));
        var$4 = new jl_String;
        var$7 = var$3.$buffer;
        var$8 = var$7.data;
        var$9 = var$3.$length0;
        var$10 = var$8.length;
        if (var$9 >= 0 && var$9 <= (var$10 - 0 | 0)) {
            a: {
                var$4.$nativeString = $rt_charArrayToString(var$7.data, 0, var$9);
                if ($var2 !== null) {
                    nms_StatCollector_$callClinit();
                    if (nms_StringTranslate_isKeyTranslated(nms_StatCollector_localizedName, var$4)) {
                        var$7 = $rt_wrapArray(jl_Object, [$par1EntityLivingBase.$getTranslatedEntityName(), $var2.$getTranslatedEntityName()]);
                        $par1EntityLivingBase = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$4, var$7);
                        break a;
                    }
                }
                var$7 = $rt_createArray(jl_Object, 1);
                var$7.data[0] = $par1EntityLivingBase.$getTranslatedEntityName();
                nms_StatCollector_$callClinit();
                $par1EntityLivingBase = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$6, var$7);
            }
            return $par1EntityLivingBase;
        }
        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
        $par1EntityLivingBase.$suppressionEnabled = 1;
        $par1EntityLivingBase.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1EntityLivingBase);
        $rt_throw($par1EntityLivingBase);
    }
    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
    $par1EntityLivingBase.$suppressionEnabled = 1;
    $par1EntityLivingBase.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1EntityLivingBase);
    $rt_throw($par1EntityLivingBase);
},
nms_DamageSource_isFireDamage = $this => {
    return $this.$fireDamage;
},
nms_DamageSource_getDamageType = $this => {
    return $this.$damageType;
},
nms_DamageSource_isDifficultyScaled = $this => {
    return $this.$difficultyScaled;
},
nms_DamageSource_isMagicDamage = $this => {
    return $this.$magicDamage;
},
nms_DamageSource_setMagicDamage = $this => {
    $this.$magicDamage = 1;
    return $this;
},
nms_DamageSource__clinit_ = () => {
    let var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2668);
    var$1.$fireDamage = 1;
    nms_DamageSource_inFire = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2563);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    var$1.$fireDamage = 1;
    nms_DamageSource_onFire = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(721);
    var$1.$fireDamage = 1;
    nms_DamageSource_lava = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2669);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    nms_DamageSource_inWall = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2670);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    nms_DamageSource_drown = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2671);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    nms_DamageSource_starve = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(798);
    nms_DamageSource_cactus = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2657);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    nms_DamageSource_fall = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2672);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    var$1.$isDamageAllowedInCreativeMode = 1;
    nms_DamageSource_outOfWorld = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(1266);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    nms_DamageSource_generic = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2673);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    var$1.$magicDamage = 1;
    nms_DamageSource_magic = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(1349);
    var$1.$isUnblockable = 1;
    var$1.$hungerDamage = 0.0;
    nms_DamageSource_wither = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(711);
    nms_DamageSource_anvil = var$1;
    var$1 = new nms_DamageSource;
    var$1.$hungerDamage = 0.30000001192092896;
    var$1.$damageType = $rt_s(2674);
    nms_DamageSource_fallingBlock = var$1;
};
function ju_AbstractMap$KeySet() {
    ju_AbstractSet.call(this);
    this.$this$03 = null;
}
let ju_AbstractMap$KeySet_iterator = $this => {
    let var$1, $it, var$3, var$4;
    var$1 = $this.$this$03;
    if (var$1.$cachedEntrySet === null) {
        $it = new ju_TreeMap$EntrySet;
        var$3 = null;
        var$4 = null;
        $it.$modCount7 = (-1);
        $it.$owner0 = var$1;
        $it.$from = var$3;
        $it.$fromIncluded = 1;
        $it.$fromChecked = 0;
        $it.$to = var$4;
        $it.$toIncluded = 1;
        $it.$toChecked = 0;
        $it.$reverse0 = 0;
        var$1.$cachedEntrySet = $it;
    }
    var$1 = var$1.$cachedEntrySet;
    $it = var$1.$reverse0 ? ju_TreeMap$EntrySet_descendingIterator(var$1) : ju_TreeMap$EntrySet_ascendingIterator(var$1);
    var$1 = new ju_AbstractMap$KeySet$1;
    var$1.$this$1 = $this;
    var$1.$val$it = $it;
    return var$1;
},
ju_AbstractMap$KeySet_size = $this => {
    let var$1;
    var$1 = $this.$this$03.$root;
    return var$1 === null ? 0 : var$1.$size1;
},
nms_WorldGenTaiga2 = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenTaiga2_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, $var16, $var6, $var7, $var8, var$11, $var9, $var10, $var17, var$15, $var11, $var21, $var13, $var14, $var21_0, $var13_0, $var22, $var15, $var16_0, $var17_0, $var18, $var19, $var20, var$29, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$29 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var17_0 = $thread.pop();$var16_0 = $thread.pop();$var15 = $thread.pop();$var22 = $thread.pop();$var13_0 = $thread.pop();$var21_0 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var21 = $thread.pop();$var11 = $thread.pop();var$15 = $thread.pop();$var17 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();var$11 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6
        = $thread.pop();$var16 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var16 = 17;
        $var6 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$6, $var16)))), 31)) + 6 | 0;
        var$6 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var7 = 1 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$6, $var16)))), 31)) | 0;
        $var8 = $var6 - $var7 | 0;
        var$11 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var9 = 2 + Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$11, $var16)))), 31)) | 0;
        $var10 = 1;
        if ($par4 >= 1) {
            $var17 = $par4 + $var6 | 0;
            if (($var17 + 1 | 0) <= 256) {
                var$15 = ($par4 + 1 | 0) + $var6 | 0;
                $var11 = $par4;
                a: {
                    b: while (true) {
                        if ($var11 > var$15)
                            break a;
                        if (!$var10)
                            break a;
                        $var21 = ($var11 - $par4 | 0) >= $var7 ? $var9 : 0;
                        $var13 = $par3 - $var21 | 0;
                        while ($var13 <= ($par3 + $var21 | 0) && $var10) {
                            $var14 = $par5 - $var21 | 0;
                            while ($var14 <= ($par5 + $var21 | 0) && $var10) {
                                if ($var11 >= 0 && $var11 < 256)
                                    break b;
                                $var10 = 0;
                                $var14 = $var14 + 1 | 0;
                            }
                            $var13 = $var13 + 1 | 0;
                        }
                        $var11 = $var11 + 1 | 0;
                    }
                    $ptr = 4;
                    continue main;
                }
                if (!$var10)
                    return 0;
                $var11 = $par4 - 1 | 0;
                $ptr = 1;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $var11, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var21 = $tmp;
        nms_Block_$callClinit();
        if (!($var21 != nms_Block_grass.$blockID && $var21 != nms_Block_dirt.$blockID) && $par4 < ((256 - $var6 | 0) - 1 | 0)) {
            var$15 = nms_Block_dirt.$blockID;
            $var21 = 0;
            if (!$this.$doBlockNotify) {
                $var13 = 2;
                $ptr = 2;
                continue main;
            }
            $var13 = 3;
            $ptr = 3;
            continue main;
        }
        return 0;
    case 2:
        nms_World_setBlock($par1World, $par3, $var11, $par5, var$15, $var21, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var21_0 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$11, $var16)))), 31));
        $var13_0 = 1;
        $var22 = 0;
        $var15 = 0;
        c: while (true) {
            if ($var15 > $var8) {
                var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$11;
                $var11 = Long_lo(Long_shru(var$11, $var16));
                while (true) {
                    var$15 = $var11 % 3 | 0;
                    if ((($var11 - var$15 | 0) + 2 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$11;
                    $var11 = Long_lo(Long_shru(var$11, $var16));
                }
                $var16 = 0;
                $var11 = $var6 - var$15 | 0;
                if ($var16 >= $var11)
                    return 1;
                var$15 = $par4 + $var16 | 0;
                $ptr = 5;
                continue main;
            }
            $var16_0 = $var17 - $var15 | 0;
            $var17_0 = $par3 - $var21_0 | 0;
            while ($var17_0 <= ($par3 + $var21_0 | 0)) {
                $var18 = $var17_0 - $par3 | 0;
                $var19 = $par5 - $var21_0 | 0;
                var$15 =  -$var18 | 0;
                while ($var19 <= ($par5 + $var21_0 | 0)) {
                    $var20 = $var19 - $par5 | 0;
                    if (($var18 < 0 ? var$15 : $var18) != $var21_0)
                        break c;
                    if ($var20 < 0)
                        $var20 =  -$var20 | 0;
                    if ($var20 != $var21_0)
                        break c;
                    if ($var21_0 <= 0)
                        break c;
                    $var19 = $var19 + 1 | 0;
                }
                $var17_0 = $var17_0 + 1 | 0;
            }
            if ($var21_0 < $var13_0)
                $var21_0 = $var21_0 + 1 | 0;
            else {
                $var13_0 = $var13_0 + 1 | 0;
                if ($var13_0 <= $var9) {
                    $var21_0 = $var22;
                    $var22 = 1;
                } else {
                    $var13_0 = $var9;
                    $var21_0 = $var22;
                    $var22 = 1;
                }
            }
            $var15 = $var15 + 1 | 0;
        }
        var$29 = nms_Block_opaqueCubeLookup.data;
        $ptr = 8;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $par3, $var11, $par5, var$15, $var21, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$11;
        $var21_0 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$11, $var16)))), 31));
        $var13_0 = 1;
        $var22 = 0;
        $var15 = 0;
        c: while (true) {
            if ($var15 > $var8) {
                var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$11;
                $var11 = Long_lo(Long_shru(var$11, $var16));
                while (true) {
                    var$15 = $var11 % 3 | 0;
                    if ((($var11 - var$15 | 0) + 2 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$11;
                    $var11 = Long_lo(Long_shru(var$11, $var16));
                }
                $var16 = 0;
                $var11 = $var6 - var$15 | 0;
                if ($var16 >= $var11)
                    return 1;
                var$15 = $par4 + $var16 | 0;
                $ptr = 5;
                continue main;
            }
            $var16_0 = $var17 - $var15 | 0;
            $var17_0 = $par3 - $var21_0 | 0;
            while ($var17_0 <= ($par3 + $var21_0 | 0)) {
                $var18 = $var17_0 - $par3 | 0;
                $var19 = $par5 - $var21_0 | 0;
                var$15 =  -$var18 | 0;
                while ($var19 <= ($par5 + $var21_0 | 0)) {
                    $var20 = $var19 - $par5 | 0;
                    if (($var18 < 0 ? var$15 : $var18) != $var21_0)
                        break c;
                    if ($var20 < 0)
                        $var20 =  -$var20 | 0;
                    if ($var20 != $var21_0)
                        break c;
                    if ($var21_0 <= 0)
                        break c;
                    $var19 = $var19 + 1 | 0;
                }
                $var17_0 = $var17_0 + 1 | 0;
            }
            if ($var21_0 < $var13_0)
                $var21_0 = $var21_0 + 1 | 0;
            else {
                $var13_0 = $var13_0 + 1 | 0;
                if ($var13_0 <= $var9) {
                    $var21_0 = $var22;
                    $var22 = 1;
                } else {
                    $var13_0 = $var9;
                    $var21_0 = $var22;
                    $var22 = 1;
                }
            }
            $var15 = $var15 + 1 | 0;
        }
        var$29 = nms_Block_opaqueCubeLookup.data;
        $ptr = 8;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $var13, $var11, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if ($var15) {
            nms_Block_$callClinit();
            if ($var15 != nms_Block_leaves.$blockID)
                $var10 = 0;
        }
        b: {
            while (true) {
                $var14 = $var14 + 1 | 0;
                while (!($var14 <= ($par5 + $var21 | 0) && $var10)) {
                    $var13 = $var13 + 1 | 0;
                    while (!($var13 <= ($par3 + $var21 | 0) && $var10)) {
                        $var11 = $var11 + 1 | 0;
                        if ($var11 > var$15)
                            break b;
                        if (!$var10)
                            break b;
                        $var21 = ($var11 - $par4 | 0) >= $var7 ? $var9 : 0;
                        $var13 = $par3 - $var21 | 0;
                    }
                    $var14 = $par5 - $var21 | 0;
                }
                if ($var11 >= 0 && $var11 < 256)
                    break;
                $var10 = 0;
            }
            continue main;
        }
        if (!$var10)
            return 0;
        $var11 = $par4 - 1 | 0;
        $ptr = 1;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $par3, var$15, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        if ($var17 && $var17 != nms_Block_leaves.$blockID) {
            $var16 = $var16 + 1 | 0;
            if ($var16 >= $var11)
                return 1;
            var$15 = $par4 + $var16 | 0;
            continue main;
        }
        $var21 = nms_Block_wood.$blockID;
        $var17 = 1;
        if (!$this.$doBlockNotify) {
            $var13 = 2;
            $ptr = 6;
            continue main;
        }
        $var13 = 3;
        $ptr = 7;
        continue main;
    case 6:
        nms_World_setBlock($par1World, $par3, var$15, $par5, $var21, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $var16 + 1 | 0;
        if ($var16 >= $var11)
            return 1;
        var$15 = $par4 + $var16 | 0;
        $ptr = 5;
        continue main;
    case 7:
        nms_World_setBlock($par1World, $par3, var$15, $par5, $var21, $var17, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var16 = $var16 + 1 | 0;
        if ($var16 >= $var11)
            return 1;
        var$15 = $par4 + $var16 | 0;
        $ptr = 5;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var17_0, $var16_0, $var19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!var$29[$var11]) {
            $var21 = nms_Block_leaves.$blockID;
            $var13 = 1;
            if (!$this.$doBlockNotify) {
                $var11 = 2;
                $ptr = 9;
                continue main;
            }
            $var11 = 3;
            $ptr = 10;
            continue main;
        }
        while (true) {
            $var19 = $var19 + 1 | 0;
            while ($var19 > ($par5 + $var21_0 | 0)) {
                $var17_0 = $var17_0 + 1 | 0;
                while ($var17_0 > ($par3 + $var21_0 | 0)) {
                    if ($var21_0 < $var13_0)
                        $var21_0 = $var21_0 + 1 | 0;
                    else {
                        $var13_0 = $var13_0 + 1 | 0;
                        if ($var13_0 <= $var9) {
                            $var21_0 = $var22;
                            $var22 = 1;
                        } else {
                            $var13_0 = $var9;
                            $var21_0 = $var22;
                            $var22 = 1;
                        }
                    }
                    $var15 = $var15 + 1 | 0;
                    if ($var15 > $var8) {
                        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$11;
                        $var11 = Long_lo(Long_shru(var$11, $var16));
                        while (true) {
                            var$15 = $var11 % 3 | 0;
                            if ((($var11 - var$15 | 0) + 2 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$11;
                            $var11 = Long_lo(Long_shru(var$11, $var16));
                        }
                        $var16 = 0;
                        $var11 = $var6 - var$15 | 0;
                        if ($var16 >= $var11)
                            return 1;
                        var$15 = $par4 + $var16 | 0;
                        $ptr = 5;
                        continue main;
                    }
                    $var16_0 = $var17 - $var15 | 0;
                    $var17_0 = $par3 - $var21_0 | 0;
                }
                $var18 = $var17_0 - $par3 | 0;
                $var19 = $par5 - $var21_0 | 0;
                var$15 =  -$var18 | 0;
            }
            $var20 = $var19 - $par5 | 0;
            if (($var18 < 0 ? var$15 : $var18) != $var21_0)
                break;
            if ($var20 < 0)
                $var20 =  -$var20 | 0;
            if ($var20 != $var21_0)
                break;
            if ($var21_0 > 0)
                continue;
            else
                break;
        }
        var$29 = nms_Block_opaqueCubeLookup.data;
        continue main;
    case 9:
        nms_World_setBlock($par1World, $var17_0, $var16_0, $var19, $var21, $var13, $var11);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var19 = $var19 + 1 | 0;
            while ($var19 > ($par5 + $var21_0 | 0)) {
                $var17_0 = $var17_0 + 1 | 0;
                while ($var17_0 > ($par3 + $var21_0 | 0)) {
                    if ($var21_0 < $var13_0)
                        $var21_0 = $var21_0 + 1 | 0;
                    else {
                        $var13_0 = $var13_0 + 1 | 0;
                        if ($var13_0 <= $var9) {
                            $var21_0 = $var22;
                            $var22 = 1;
                        } else {
                            $var13_0 = $var9;
                            $var21_0 = $var22;
                            $var22 = 1;
                        }
                    }
                    $var15 = $var15 + 1 | 0;
                    if ($var15 > $var8) {
                        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$11;
                        $var11 = Long_lo(Long_shru(var$11, $var16));
                        while (true) {
                            var$15 = $var11 % 3 | 0;
                            if ((($var11 - var$15 | 0) + 2 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$11;
                            $var11 = Long_lo(Long_shru(var$11, $var16));
                        }
                        $var16 = 0;
                        $var11 = $var6 - var$15 | 0;
                        if ($var16 >= $var11)
                            return 1;
                        var$15 = $par4 + $var16 | 0;
                        $ptr = 5;
                        continue main;
                    }
                    $var16_0 = $var17 - $var15 | 0;
                    $var17_0 = $par3 - $var21_0 | 0;
                }
                $var18 = $var17_0 - $par3 | 0;
                $var19 = $par5 - $var21_0 | 0;
                var$15 =  -$var18 | 0;
            }
            $var20 = $var19 - $par5 | 0;
            if (($var18 < 0 ? var$15 : $var18) != $var21_0)
                break;
            if ($var20 < 0)
                $var20 =  -$var20 | 0;
            if ($var20 != $var21_0)
                break;
            if ($var21_0 > 0)
                continue;
            else
                break;
        }
        var$29 = nms_Block_opaqueCubeLookup.data;
        $ptr = 8;
        continue main;
    case 10:
        nms_World_setBlock($par1World, $var17_0, $var16_0, $var19, $var21, $var13, $var11);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var19 = $var19 + 1 | 0;
            while ($var19 > ($par5 + $var21_0 | 0)) {
                $var17_0 = $var17_0 + 1 | 0;
                while ($var17_0 > ($par3 + $var21_0 | 0)) {
                    if ($var21_0 < $var13_0)
                        $var21_0 = $var21_0 + 1 | 0;
                    else {
                        $var13_0 = $var13_0 + 1 | 0;
                        if ($var13_0 <= $var9) {
                            $var21_0 = $var22;
                            $var22 = 1;
                        } else {
                            $var13_0 = $var9;
                            $var21_0 = $var22;
                            $var22 = 1;
                        }
                    }
                    $var15 = $var15 + 1 | 0;
                    if ($var15 > $var8) {
                        var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$11;
                        $var11 = Long_lo(Long_shru(var$11, $var16));
                        while (true) {
                            var$15 = $var11 % 3 | 0;
                            if ((($var11 - var$15 | 0) + 2 | 0) >= 0)
                                break;
                            var$11 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$11;
                            $var11 = Long_lo(Long_shru(var$11, $var16));
                        }
                        $var16 = 0;
                        $var11 = $var6 - var$15 | 0;
                        if ($var16 >= $var11)
                            return 1;
                        var$15 = $par4 + $var16 | 0;
                        $ptr = 5;
                        continue main;
                    }
                    $var16_0 = $var17 - $var15 | 0;
                    $var17_0 = $par3 - $var21_0 | 0;
                }
                $var18 = $var17_0 - $par3 | 0;
                $var19 = $par5 - $var21_0 | 0;
                var$15 =  -$var18 | 0;
            }
            $var20 = $var19 - $par5 | 0;
            if (($var18 < 0 ? var$15 : $var18) != $var21_0)
                break;
            if ($var20 < 0)
                $var20 =  -$var20 | 0;
            if ($var20 != $var21_0)
                break;
            if ($var21_0 > 0)
                continue;
            else
                break;
        }
        var$29 = nms_Block_opaqueCubeLookup.data;
        $ptr = 8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, $var16, $var6, $var7, $var8, var$11, $var9, $var10, $var17, var$15, $var11, $var21, $var13, $var14, $var21_0, $var13_0, $var22, $var15, $var16_0, $var17_0, $var18, $var19, $var20, var$29, $ptr);
};
function nms_WorldGenHugeTrees() {
    let a = this; nms_WorldGenerator.call(a);
    a.$baseHeight = 0;
    a.$woodMetadata = 0;
    a.$leavesMetadata = 0;
}
let nms_WorldGenHugeTrees_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, var$7, $var11, var$9, $var8, $var6, $var7, var$13, $var13, $var9, $var10, $var11_0, $var12, var$19, $var14, var$21, $var12_0, $var10_0, var$24, $var15, var$26, var$27, var$28, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$28 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();$var15 = $thread.pop();var$24 = $thread.pop();$var10_0 = $thread.pop();$var12_0 = $thread.pop();var$21 = $thread.pop();$var14 = $thread.pop();var$19 = $thread.pop();$var12 = $thread.pop();$var11_0 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var13 = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var11 = $thread.pop();var$7
        = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        var$7 = 17;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        var$9 = 2;
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        $var6 = $var8 + $this.$baseHeight | 0;
        $var7 = 1;
        if ($par4 >= 1) {
            $var11 = $par4 + $var6 | 0;
            if (($var11 + 1 | 0) <= 256) {
                var$13 = ($par4 + 1 | 0) + $var6 | 0;
                $var13 = var$13 - 2 | 0;
                $var8 = $par4;
                a: while (true) {
                    if ($var8 > var$13) {
                        if (!$var7)
                            return 0;
                        $var8 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var9 = 2;
                    if ($var8 == $par4)
                        $var9 = 1;
                    if ($var8 >= $var13)
                        $var9 = 2;
                    $var10 = $par3 - $var9 | 0;
                    while ($var10 <= ($par3 + $var9 | 0) && $var7) {
                        $var11_0 = $par5 - $var9 | 0;
                        while ($var11_0 <= ($par5 + $var9 | 0) && $var7) {
                            if ($var8 >= 0 && $var8 < 256)
                                break a;
                            $var7 = 0;
                            $var11_0 = $var11_0 + 1 | 0;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                $ptr = 17;
                continue main;
            }
        }
        return 0;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $var8, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $tmp;
        nms_Block_$callClinit();
        if (!(var$13 != nms_Block_grass.$blockID && var$13 != nms_Block_dirt.$blockID) && $par4 < ((256 - $var6 | 0) - 1 | 0)) {
            var$13 = nms_Block_dirt.$blockID;
            $var12 = 0;
            $var13 = 2;
            $ptr = 2;
            continue main;
        }
        return 0;
    case 2:
        nms_World_setBlock($par1World, $par3, $var8, $par5, var$13, $var12, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $par3 + 1 | 0;
        $var12 = nms_Block_dirt.$blockID;
        $var13 = 0;
        $var9 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, var$13, $var8, $par5, $var12, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $par5 + 1 | 0;
        $var12 = nms_Block_dirt.$blockID;
        $var13 = 0;
        $var9 = 2;
        $ptr = 4;
    case 4:
        nms_World_setBlock($par1World, $par3, $var8, var$19, $var12, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = nms_Block_dirt.$blockID;
        $var13 = 0;
        $var9 = 2;
        $ptr = 5;
    case 5:
        nms_World_setBlock($par1World, var$13, $var8, var$19, $var12, $var13, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = 2;
        $ptr = 6;
    case 6:
        nms_WorldGenHugeTrees_growLeaves($this, $par1World, $par3, $par5, $var11, $var8, $par2Random);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $var11 - 2 | 0;
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var14 = $var8 - Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) | 0;
        var$21 = $par4 + ($var6 / 2 | 0) | 0;
        $var12_0 = 24;
        var$6 = Long_fromInt(4);
        if ($var14 <= var$21) {
            $var10_0 = 0;
            $var7 = $var6 - 1 | 0;
            $var10 = $par3 - 1 | 0;
            $var9 = $par5 + 2 | 0;
            $var13 = $par3 + 2 | 0;
            $var12 = $par5 - 1 | 0;
            if ($var10_0 >= $var6)
                return 1;
            $var11_0 = $par4 + $var10_0 | 0;
            $ptr = 8;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var15 = Long_lo(Long_shru(var$24, $var12_0)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
        var$26 = nms_MathHelper_SIN_TABLE.data;
        var$27 = $var15 * 10430.3779296875;
        $var7 = (var$27 + 16384.0 | 0) & 65535;
        $var11 = $par3 + (0.5 + var$26[$var7] * 4.0 | 0) | 0;
        $var10_0 = (var$27 | 0) & 65535;
        $var12 = $par5 + (0.5 + var$26[$var10_0] * 4.0 | 0) | 0;
        $var8 = 0;
        $ptr = 7;
    case 7:
        nms_WorldGenHugeTrees_growLeaves($this, $par1World, $var11, $var12, $var14, $var8, $par2Random);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = 0;
        if ($var13 < 5) {
            var$26 = nms_MathHelper_SIN_TABLE.data;
            var$27 = var$26[$var7];
            var$28 = $var13;
            $var11 = $par3 + (1.5 + var$27 * var$28 | 0) | 0;
            $var8 = $par5 + (1.5 + var$26[$var10_0] * var$28 | 0) | 0;
            $var12 = ($var14 - 3 | 0) + ($var13 / 2 | 0) | 0;
            $var9 = nms_Block_wood.$blockID;
            $var10 = $this.$woodMetadata;
            if (!$this.$doBlockNotify) {
                $var11_0 = 2;
                $ptr = 9;
                continue main;
            }
            $var11_0 = 3;
            $ptr = 10;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var14 = $var14 - (2 + Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$24, var$7)))), 31)) | 0) | 0;
        if ($var14 <= var$21) {
            $var10_0 = 0;
            $var7 = $var6 - 1 | 0;
            $var10 = $par3 - 1 | 0;
            $var9 = $par5 + 2 | 0;
            $var13 = $par3 + 2 | 0;
            $var12 = $par5 - 1 | 0;
            if ($var10_0 >= $var6)
                return 1;
            $var11_0 = $par4 + $var10_0 | 0;
            $ptr = 8;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var15 = Long_lo(Long_shru(var$24, $var12_0)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
        var$26 = nms_MathHelper_SIN_TABLE.data;
        var$27 = $var15 * 10430.3779296875;
        $var7 = (var$27 + 16384.0 | 0) & 65535;
        $var11 = $par3 + (0.5 + var$26[$var7] * 4.0 | 0) | 0;
        $var10_0 = (var$27 | 0) & 65535;
        $var12 = $par5 + (0.5 + var$26[$var10_0] * 4.0 | 0) | 0;
        $var8 = 0;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par3, $var11_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 && $var11 != nms_Block_leaves.$blockID) {
            if ($var10_0 < $var7) {
                $ptr = 13;
                continue main;
            }
            $var10_0 = $var10_0 + 1 | 0;
            if ($var10_0 >= $var6)
                return 1;
            $var11_0 = $par4 + $var10_0 | 0;
            continue main;
        }
        $var8 = nms_Block_wood.$blockID;
        $var12_0 = $this.$woodMetadata;
        if (!$this.$doBlockNotify) {
            $var11 = 2;
            $ptr = 11;
            continue main;
        }
        $var11 = 3;
        $ptr = 12;
        continue main;
    case 9:
        nms_World_setBlock($par1World, $var11, $var12, $var8, $var9, $var10, $var11_0);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $var13 + 1 | 0;
        if ($var13 < 5) {
            var$26 = nms_MathHelper_SIN_TABLE.data;
            var$27 = var$26[$var7];
            var$28 = $var13;
            $var11 = $par3 + (1.5 + var$27 * var$28 | 0) | 0;
            $var8 = $par5 + (1.5 + var$26[$var10_0] * var$28 | 0) | 0;
            $var12 = ($var14 - 3 | 0) + ($var13 / 2 | 0) | 0;
            $var9 = nms_Block_wood.$blockID;
            $var10 = $this.$woodMetadata;
            if (!$this.$doBlockNotify) {
                $var11_0 = 2;
                continue main;
            }
            $var11_0 = 3;
            $ptr = 10;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var14 = $var14 - (2 + Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$24, var$7)))), 31)) | 0) | 0;
        if ($var14 <= var$21) {
            $var10_0 = 0;
            $var7 = $var6 - 1 | 0;
            $var10 = $par3 - 1 | 0;
            $var9 = $par5 + 2 | 0;
            $var13 = $par3 + 2 | 0;
            $var12 = $par5 - 1 | 0;
            if ($var10_0 >= $var6)
                return 1;
            $var11_0 = $par4 + $var10_0 | 0;
            $ptr = 8;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var15 = Long_lo(Long_shru(var$24, $var12_0)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
        var$26 = nms_MathHelper_SIN_TABLE.data;
        var$27 = $var15 * 10430.3779296875;
        $var7 = (var$27 + 16384.0 | 0) & 65535;
        $var11 = $par3 + (0.5 + var$26[$var7] * 4.0 | 0) | 0;
        $var10_0 = (var$27 | 0) & 65535;
        $var12 = $par5 + (0.5 + var$26[$var10_0] * 4.0 | 0) | 0;
        $var8 = 0;
        $ptr = 7;
        continue main;
    case 10:
        nms_World_setBlock($par1World, $var11, $var12, $var8, $var9, $var10, $var11_0);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $var13 + 1 | 0;
        if ($var13 < 5) {
            var$26 = nms_MathHelper_SIN_TABLE.data;
            var$27 = var$26[$var7];
            var$28 = $var13;
            $var11 = $par3 + (1.5 + var$27 * var$28 | 0) | 0;
            $var8 = $par5 + (1.5 + var$26[$var10_0] * var$28 | 0) | 0;
            $var12 = ($var14 - 3 | 0) + ($var13 / 2 | 0) | 0;
            $var9 = nms_Block_wood.$blockID;
            $var10 = $this.$woodMetadata;
            if (!$this.$doBlockNotify) {
                $var11_0 = 2;
                $ptr = 9;
                continue main;
            }
            $var11_0 = 3;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var14 = $var14 - (2 + Long_lo(Long_shr(Long_mul(var$6, Long_fromInt(Long_lo(Long_shru(var$24, var$7)))), 31)) | 0) | 0;
        if ($var14 <= var$21) {
            $var10_0 = 0;
            $var7 = $var6 - 1 | 0;
            $var10 = $par3 - 1 | 0;
            $var9 = $par5 + 2 | 0;
            $var13 = $par3 + 2 | 0;
            $var12 = $par5 - 1 | 0;
            if ($var10_0 >= $var6)
                return 1;
            $var11_0 = $par4 + $var10_0 | 0;
            $ptr = 8;
            continue main;
        }
        var$24 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$24;
        $var15 = Long_lo(Long_shru(var$24, $var12_0)) / 1.6777216E7 * 3.1415927410125732 * 2.0;
        var$26 = nms_MathHelper_SIN_TABLE.data;
        var$27 = $var15 * 10430.3779296875;
        $var7 = (var$27 + 16384.0 | 0) & 65535;
        $var11 = $par3 + (0.5 + var$26[$var7] * 4.0 | 0) | 0;
        $var10_0 = (var$27 | 0) & 65535;
        $var12 = $par5 + (0.5 + var$26[$var10_0] * 4.0 | 0) | 0;
        $var8 = 0;
        $ptr = 7;
        continue main;
    case 11:
        nms_World_setBlock($par1World, $par3, $var11_0, $par5, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 21;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 25;
                continue main;
            }
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 12:
        nms_World_setBlock($par1World, $par3, $var11_0, $par5, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 21;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 25;
                continue main;
            }
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 13:
        $tmp = nms_World_getBlockId($par1World, var$13, $var11_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 && $var11 != nms_Block_leaves.$blockID) {
            $ptr = 16;
            continue main;
        }
        $var12_0 = nms_Block_wood.$blockID;
        $var8 = $this.$woodMetadata;
        if (!$this.$doBlockNotify) {
            $var11 = 2;
            $ptr = 14;
            continue main;
        }
        $var11 = 3;
        $ptr = 15;
        continue main;
    case 14:
        nms_World_setBlock($par1World, var$13, $var11_0, $par5, $var12_0, $var8, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 24;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 29;
                continue main;
            }
        }
        $ptr = 16;
        continue main;
    case 15:
        nms_World_setBlock($par1World, var$13, $var11_0, $par5, $var12_0, $var8, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 24;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 29;
                continue main;
            }
        }
        $ptr = 16;
    case 16:
        $tmp = nms_World_getBlockId($par1World, var$13, $var11_0, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 && $var11 != nms_Block_leaves.$blockID) {
            $ptr = 20;
            continue main;
        }
        $var8 = nms_Block_wood.$blockID;
        $var12_0 = $this.$woodMetadata;
        if (!$this.$doBlockNotify) {
            $var11 = 2;
            $ptr = 18;
            continue main;
        }
        $var11 = 3;
        $ptr = 19;
        continue main;
    case 17:
        $tmp = nms_World_getBlockId($par1World, $var10, $var8, $var11_0);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $tmp;
        if ($var12_0) {
            nms_Block_$callClinit();
            if ($var12_0 != nms_Block_leaves.$blockID && $var12_0 != nms_Block_grass.$blockID && $var12_0 != nms_Block_dirt.$blockID && $var12_0 != nms_Block_wood.$blockID && $var12_0 != nms_Block_sapling.$blockID)
                $var7 = 0;
        }
        while (true) {
            $var11_0 = $var11_0 + 1 | 0;
            while (!($var11_0 <= ($par5 + $var9 | 0) && $var7)) {
                $var10 = $var10 + 1 | 0;
                while (!($var10 <= ($par3 + $var9 | 0) && $var7)) {
                    $var8 = $var8 + 1 | 0;
                    if ($var8 > var$13) {
                        if (!$var7)
                            return 0;
                        $var8 = $par4 - 1 | 0;
                        $ptr = 1;
                        continue main;
                    }
                    $var9 = 2;
                    if ($var8 == $par4)
                        $var9 = 1;
                    if ($var8 >= $var13)
                        $var9 = 2;
                    $var10 = $par3 - $var9 | 0;
                }
                $var11_0 = $par5 - $var9 | 0;
            }
            if ($var8 >= 0 && $var8 < 256)
                break;
            $var7 = 0;
        }
        continue main;
    case 18:
        nms_World_setBlock($par1World, var$13, $var11_0, var$19, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 28;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 35;
                continue main;
            }
        }
        $ptr = 20;
        continue main;
    case 19:
        nms_World_setBlock($par1World, var$13, $var11_0, var$19, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 28;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var8 = $var11 % 3 | 0;
                if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var11 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var8 > 0) {
                $ptr = 35;
                continue main;
            }
        }
        $ptr = 20;
    case 20:
        $tmp = nms_World_getBlockId($par1World, $par3, $var11_0, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 && $var11 != nms_Block_leaves.$blockID) {
            $var10_0 = $var10_0 + 1 | 0;
            if ($var10_0 >= $var6)
                return 1;
            $var11_0 = $par4 + $var10_0 | 0;
            $ptr = 8;
            continue main;
        }
        $var8 = nms_Block_wood.$blockID;
        $var12_0 = $this.$woodMetadata;
        if (!$this.$doBlockNotify) {
            $var11 = 2;
            $ptr = 22;
            continue main;
        }
        $var11 = 3;
        $ptr = 23;
        continue main;
    case 21:
        $tmp = nms_World_getBlockId($par1World, $var10, $var11_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 ? 0 : 1) {
            $var8 = nms_Block_vine.$blockID;
            $var12_0 = 8;
            if (!$this.$doBlockNotify) {
                $var11 = 2;
                $ptr = 26;
                continue main;
            }
            $var11 = 3;
            $ptr = 27;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 > 0) {
            $ptr = 25;
            continue main;
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 22:
        nms_World_setBlock($par1World, $par3, $var11_0, var$19, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var12_0 = $var8 % 3 | 0;
                if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var8 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var12_0 > 0) {
                $ptr = 32;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var12_0 = $var8 % 3 | 0;
                if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var8 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var12_0 > 0) {
                $ptr = 40;
                continue main;
            }
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 23:
        nms_World_setBlock($par1World, $par3, $var11_0, var$19, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 > 0) {
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var12_0 = $var8 % 3 | 0;
                if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var8 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var12_0 > 0) {
                $ptr = 32;
                continue main;
            }
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
            while (true) {
                $var12_0 = $var8 % 3 | 0;
                if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                    break;
                var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$6;
                $var8 = Long_lo(Long_shru(var$6, var$7));
            }
            if ($var12_0 > 0) {
                $ptr = 40;
                continue main;
            }
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 24:
        $tmp = nms_World_getBlockId($par1World, $var13, $var11_0, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 ? 0 : 1) {
            $var8 = nms_Block_vine.$blockID;
            $var12_0 = 2;
            if (!$this.$doBlockNotify) {
                $var11 = 2;
                $ptr = 30;
                continue main;
            }
            $var11 = 3;
            $ptr = 31;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 <= 0) {
            $ptr = 16;
            continue main;
        }
        $ptr = 29;
        continue main;
    case 25:
        $tmp = nms_World_getBlockId($par1World, $par3, $var11_0, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 ? 0 : 1) {
            $var8 = nms_Block_vine.$blockID;
            $var12_0 = 1;
            if (!$this.$doBlockNotify) {
                $var11 = 2;
                $ptr = 33;
                continue main;
            }
            $var11 = 3;
            $ptr = 34;
            continue main;
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 26:
        nms_World_setBlock($par1World, $var10, $var11_0, $par5, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 > 0) {
            $ptr = 25;
            continue main;
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 27:
        nms_World_setBlock($par1World, $var10, $var11_0, $par5, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 > 0) {
            $ptr = 25;
            continue main;
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 28:
        $tmp = nms_World_getBlockId($par1World, $var13, $var11_0, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 ? 0 : 1) {
            $var8 = nms_Block_vine.$blockID;
            $var12_0 = 2;
            if (!$this.$doBlockNotify) {
                $var11 = 2;
                $ptr = 36;
                continue main;
            }
            $var11 = 3;
            $ptr = 37;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 <= 0) {
            $ptr = 20;
            continue main;
        }
        $ptr = 35;
        continue main;
    case 29:
        $tmp = nms_World_getBlockId($par1World, var$13, $var11_0, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!($var11 ? 0 : 1)) {
            $ptr = 16;
            continue main;
        }
        $var8 = nms_Block_vine.$blockID;
        $var12_0 = 1;
        if (!$this.$doBlockNotify) {
            $var11 = 2;
            $ptr = 38;
            continue main;
        }
        $var11 = 3;
        $ptr = 39;
        continue main;
    case 30:
        nms_World_setBlock($par1World, $var13, $var11_0, $par5, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 <= 0) {
            $ptr = 16;
            continue main;
        }
        $ptr = 29;
        continue main;
    case 31:
        nms_World_setBlock($par1World, $var13, $var11_0, $par5, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 <= 0) {
            $ptr = 16;
            continue main;
        }
        $ptr = 29;
        continue main;
    case 32:
        $tmp = nms_World_getBlockId($par1World, $var10, $var11_0, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 ? 0 : 1) {
            $var11 = nms_Block_vine.$blockID;
            $var8 = 8;
            if (!$this.$doBlockNotify) {
                $var12_0 = 2;
                $ptr = 41;
                continue main;
            }
            $var12_0 = 3;
            $ptr = 42;
            continue main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var8 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var12_0 = $var8 % 3 | 0;
            if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var12_0 > 0) {
            $ptr = 40;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 33:
        nms_World_setBlock($par1World, $par3, $var11_0, $var12, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 34:
        nms_World_setBlock($par1World, $par3, $var11_0, $var12, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        if ($var10_0 < $var7) {
            $ptr = 13;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 35:
        $tmp = nms_World_getBlockId($par1World, var$13, $var11_0, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!($var11 ? 0 : 1)) {
            $ptr = 20;
            continue main;
        }
        $var8 = nms_Block_vine.$blockID;
        $var12_0 = 4;
        if (!$this.$doBlockNotify) {
            $var11 = 2;
            $ptr = 43;
            continue main;
        }
        $var11 = 3;
        $ptr = 44;
        continue main;
    case 36:
        nms_World_setBlock($par1World, $var13, $var11_0, var$19, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 <= 0) {
            $ptr = 20;
            continue main;
        }
        $ptr = 35;
        continue main;
    case 37:
        nms_World_setBlock($par1World, $var13, $var11_0, var$19, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var11 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var8 = $var11 % 3 | 0;
            if ((($var11 - $var8 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var11 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var8 <= 0) {
            $ptr = 20;
            continue main;
        }
        $ptr = 35;
        continue main;
    case 38:
        nms_World_setBlock($par1World, var$13, $var11_0, $var12, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 16;
        continue main;
    case 39:
        nms_World_setBlock($par1World, var$13, $var11_0, $var12, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 16;
        continue main;
    case 40:
        $tmp = nms_World_getBlockId($par1World, $par3, $var11_0, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 ? 0 : 1) {
            $var11 = nms_Block_vine.$blockID;
            $var8 = 4;
            if (!$this.$doBlockNotify) {
                $var12_0 = 2;
                $ptr = 45;
                continue main;
            }
            $var12_0 = 3;
            $ptr = 46;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 41:
        nms_World_setBlock($par1World, $var10, $var11_0, var$19, $var11, $var8, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var8 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var12_0 = $var8 % 3 | 0;
            if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var12_0 > 0) {
            $ptr = 40;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 42:
        nms_World_setBlock($par1World, $var10, $var11_0, var$19, $var11, $var8, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        $var8 = Long_lo(Long_shru(var$6, var$7));
        while (true) {
            $var12_0 = $var8 % 3 | 0;
            if ((($var8 - $var12_0 | 0) + var$9 | 0) >= 0)
                break;
            var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$6;
            $var8 = Long_lo(Long_shru(var$6, var$7));
        }
        if ($var12_0 > 0) {
            $ptr = 40;
            continue main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 43:
        nms_World_setBlock($par1World, var$13, $var11_0, $var9, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 20;
        continue main;
    case 44:
        nms_World_setBlock($par1World, var$13, $var11_0, $var9, $var8, $var12_0, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 20;
        continue main;
    case 45:
        nms_World_setBlock($par1World, $par3, $var11_0, $var9, $var11, $var8, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    case 46:
        nms_World_setBlock($par1World, $par3, $var11_0, $var9, $var11, $var8, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var10_0 = $var10_0 + 1 | 0;
        if ($var10_0 >= $var6)
            return 1;
        $var11_0 = $par4 + $var10_0 | 0;
        $ptr = 8;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, var$7, $var11, var$9, $var8, $var6, $var7, var$13, $var13, $var9, $var10, $var11_0, $var12, var$19, $var14, var$21, $var12_0, $var10_0, var$24, $var15, var$26, var$27, var$28, $ptr);
},
nms_WorldGenHugeTrees_growLeaves = ($this, $par1World, $par2, $par3, $par4, $par5, $par6Random) => {
    let $var8, $var7, var$9, var$10, $var10, $var11, var$13, var$14, $var9, var$16, var$17, $var12, var$19, $var13, $var14, var$22, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();var$22 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();var$19 = $thread.pop();$var12 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();$var8 = $thread.pop();$par6Random = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2
        = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = $par4 - 2 | 0;
        $var7 = $par5 + 1 | 0;
        var$9 = 17;
        var$10 = Long_fromInt(4);
        a: {
            while ($var8 <= $par4) {
                $var10 = $var7 - ($var8 - $par4 | 0) | 0;
                $var11 = $par2 - $var10 | 0;
                var$13 = ($par2 + $var10 | 0) + 1 | 0;
                var$14 = $par3 - $var10 | 0;
                $var9 = ($par3 + $var10 | 0) + 1 | 0;
                var$16 = $rt_imul($var10, $var10);
                $par5 = $var10 - 1 | 0;
                var$17 = $rt_imul($par5, $par5);
                $par5 = $var10 + 1 | 0;
                $var10 = $rt_imul($par5, $par5);
                while ($var11 <= var$13) {
                    $var12 = $var11 - $par2 | 0;
                    var$19 = $rt_imul($var12, $var12);
                    $var13 = var$14;
                    while ($var13 <= $var9) {
                        $var14 = $var13 - $par3 | 0;
                        if (!($var12 < 0 && $var14 < 0 && (var$19 + $rt_imul($var14, $var14) | 0) > var$16) && !(!($var12 <= 0 && $var14 <= 0) && (var$19 + $rt_imul($var14, $var14) | 0) > $var10)) {
                            var$22 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par6Random.$seed = var$22;
                            if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$22, var$9)))), 31)))
                                break a;
                            if ((var$19 + $rt_imul($var14, $var14) | 0) <= var$17)
                                break a;
                        }
                        $var13 = $var13 + 1 | 0;
                    }
                    $var11 = $var11 + 1 | 0;
                }
                $var8 = $var8 + 1 | 0;
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var11, $var8, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var15 = $tmp;
        if ($var15) {
            nms_Block_$callClinit();
            if ($var15 != nms_Block_leaves.$blockID) {
                b: {
                    c: while (true) {
                        $var13 = $var13 + 1 | 0;
                        while ($var13 > $var9) {
                            $var11 = $var11 + 1 | 0;
                            while ($var11 > var$13) {
                                $var8 = $var8 + 1 | 0;
                                if ($var8 > $par4)
                                    break c;
                                $var10 = $var7 - ($var8 - $par4 | 0) | 0;
                                $var11 = $par2 - $var10 | 0;
                                var$13 = ($par2 + $var10 | 0) + 1 | 0;
                                var$14 = $par3 - $var10 | 0;
                                $var9 = ($par3 + $var10 | 0) + 1 | 0;
                                var$16 = $rt_imul($var10, $var10);
                                $par5 = $var10 - 1 | 0;
                                var$17 = $rt_imul($par5, $par5);
                                $par5 = $var10 + 1 | 0;
                                $var10 = $rt_imul($par5, $par5);
                            }
                            $var12 = $var11 - $par2 | 0;
                            var$19 = $rt_imul($var12, $var12);
                            $var13 = var$14;
                        }
                        $var14 = $var13 - $par3 | 0;
                        if ($var12 < 0 && $var14 < 0 && (var$19 + $rt_imul($var14, $var14) | 0) > var$16)
                            continue;
                        if (!($var12 <= 0 && $var14 <= 0) && (var$19 + $rt_imul($var14, $var14) | 0) > $var10)
                            continue;
                        var$22 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par6Random.$seed = var$22;
                        if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$22, var$9)))), 31)))
                            break b;
                        if ((var$19 + $rt_imul($var14, $var14) | 0) > var$17)
                            continue;
                        else
                            break b;
                    }
                    return;
                }
                continue main;
            }
        }
        nms_Block_$callClinit();
        $var14 = nms_Block_leaves.$blockID;
        $var15 = $this.$leavesMetadata;
        if (!$this.$doBlockNotify) {
            $par5 = 2;
            $ptr = 2;
            continue main;
        }
        $par5 = 3;
        $ptr = 3;
        continue main;
    case 2:
        nms_World_setBlock($par1World, $var11, $var8, $var13, $var14, $var15, $par5);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            d: while (true) {
                $var13 = $var13 + 1 | 0;
                while ($var13 > $var9) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$13) {
                        $var8 = $var8 + 1 | 0;
                        if ($var8 > $par4)
                            break d;
                        $var10 = $var7 - ($var8 - $par4 | 0) | 0;
                        $var11 = $par2 - $var10 | 0;
                        var$13 = ($par2 + $var10 | 0) + 1 | 0;
                        var$14 = $par3 - $var10 | 0;
                        $var9 = ($par3 + $var10 | 0) + 1 | 0;
                        var$16 = $rt_imul($var10, $var10);
                        $par5 = $var10 - 1 | 0;
                        var$17 = $rt_imul($par5, $par5);
                        $par5 = $var10 + 1 | 0;
                        $var10 = $rt_imul($par5, $par5);
                    }
                    $var12 = $var11 - $par2 | 0;
                    var$19 = $rt_imul($var12, $var12);
                    $var13 = var$14;
                }
                $var14 = $var13 - $par3 | 0;
                if ($var12 < 0 && $var14 < 0 && (var$19 + $rt_imul($var14, $var14) | 0) > var$16)
                    continue;
                if (!($var12 <= 0 && $var14 <= 0) && (var$19 + $rt_imul($var14, $var14) | 0) > $var10)
                    continue;
                var$22 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par6Random.$seed = var$22;
                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$22, var$9)))), 31)))
                    break a;
                if ((var$19 + $rt_imul($var14, $var14) | 0) > var$17)
                    continue;
                else
                    break a;
            }
            return;
        }
        $ptr = 1;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $var11, $var8, $var13, $var14, $var15, $par5);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            d: while (true) {
                $var13 = $var13 + 1 | 0;
                while ($var13 > $var9) {
                    $var11 = $var11 + 1 | 0;
                    while ($var11 > var$13) {
                        $var8 = $var8 + 1 | 0;
                        if ($var8 > $par4)
                            break d;
                        $var10 = $var7 - ($var8 - $par4 | 0) | 0;
                        $var11 = $par2 - $var10 | 0;
                        var$13 = ($par2 + $var10 | 0) + 1 | 0;
                        var$14 = $par3 - $var10 | 0;
                        $var9 = ($par3 + $var10 | 0) + 1 | 0;
                        var$16 = $rt_imul($var10, $var10);
                        $par5 = $var10 - 1 | 0;
                        var$17 = $rt_imul($par5, $par5);
                        $par5 = $var10 + 1 | 0;
                        $var10 = $rt_imul($par5, $par5);
                    }
                    $var12 = $var11 - $par2 | 0;
                    var$19 = $rt_imul($var12, $var12);
                    $var13 = var$14;
                }
                $var14 = $var13 - $par3 | 0;
                if ($var12 < 0 && $var14 < 0 && (var$19 + $rt_imul($var14, $var14) | 0) > var$16)
                    continue;
                if (!($var12 <= 0 && $var14 <= 0) && (var$19 + $rt_imul($var14, $var14) | 0) > $var10)
                    continue;
                var$22 = Long_and(Long_add(Long_mul($par6Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par6Random.$seed = var$22;
                if (Long_lo(Long_shr(Long_mul(var$10, Long_fromInt(Long_lo(Long_shru(var$22, var$9)))), 31)))
                    break a;
                if ((var$19 + $rt_imul($var14, $var14) | 0) > var$17)
                    continue;
                else
                    break a;
            }
            return;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6Random, $var8, $var7, var$9, var$10, $var10, $var11, var$13, var$14, $var9, var$16, var$17, $var12, var$19, $var13, $var14, var$22, $var15, $ptr);
};
function nms_InventoryLargeChest() {
    let a = this; jl_Object.call(a);
    a.$name13 = null;
    a.$upperChest = null;
    a.$lowerChest = null;
}
let nms_InventoryLargeChest_getSizeInventory = $this => {
    return $this.$upperChest.$getSizeInventory() + $this.$lowerChest.$getSizeInventory() | 0;
},
nms_InventoryLargeChest_getInvName = $this => {
    return $this.$upperChest.$isInvNameLocalized() ? $this.$upperChest.$getInvName() : !$this.$lowerChest.$isInvNameLocalized() ? $this.$name13 : $this.$lowerChest.$getInvName();
},
nms_InventoryLargeChest_isInvNameLocalized = $this => {
    return !$this.$upperChest.$isInvNameLocalized() && !$this.$lowerChest.$isInvNameLocalized() ? 0 : 1;
},
nms_InventoryLargeChest_getStackInSlot = ($this, $par1) => {
    return $par1 < $this.$upperChest.$getSizeInventory() ? $this.$upperChest.$getStackInSlot($par1) : $this.$lowerChest.$getStackInSlot($par1 - $this.$upperChest.$getSizeInventory() | 0);
},
nms_InventoryLargeChest_decrStackSize = ($this, $par1, $par2) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 < $this.$upperChest.$getSizeInventory()) {
            var$3 = $this.$upperChest;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$lowerChest;
        $par1 = $par1 - $this.$upperChest.$getSizeInventory() | 0;
        $ptr = 2;
        continue main;
    case 1:
        $tmp = var$3.$decrStackSize($par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    case 2:
        $tmp = var$3.$decrStackSize($par1, $par2);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, var$3, $ptr);
},
nms_InventoryLargeChest_setInventorySlotContents = ($this, $par1, $par2ItemStack) => {
    let var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();$par2ItemStack = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($par1 < $this.$upperChest.$getSizeInventory()) {
            var$3 = $this.$upperChest;
            $ptr = 1;
            continue main;
        }
        var$3 = $this.$lowerChest;
        $par1 = $par1 - $this.$upperChest.$getSizeInventory() | 0;
        $ptr = 2;
        continue main;
    case 1:
        var$3.$setInventorySlotContents($par1, $par2ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        var$3.$setInventorySlotContents($par1, $par2ItemStack);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2ItemStack, var$3, $ptr);
},
nms_InventoryLargeChest_getInventoryStackLimit = $this => {
    return $this.$upperChest.$getInventoryStackLimit();
},
nms_InventoryLargeChest_onInventoryChanged = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$upperChest;
        $ptr = 1;
    case 1:
        var$1.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$lowerChest;
        $ptr = 2;
    case 2:
        var$1.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_InventoryLargeChest_isUseableByPlayer = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$upperChest;
        $ptr = 1;
    case 1:
        $tmp = var$2.$isUseableByPlayer($par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!var$3)
            return 0;
        var$2 = $this.$lowerChest;
        $ptr = 2;
    case 2:
        $tmp = var$2.$isUseableByPlayer($par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return !var$3 ? 0 : 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $ptr);
},
nms_InventoryLargeChest_openChest = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$upperChest;
        $ptr = 1;
    case 1:
        var$1.$openChest();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$lowerChest;
        $ptr = 2;
    case 2:
        var$1.$openChest();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_InventoryLargeChest_closeChest = $this => {
    let var$1, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$upperChest;
        $ptr = 1;
    case 1:
        var$1.$closeChest();
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $this.$lowerChest;
        $ptr = 2;
    case 2:
        var$1.$closeChest();
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $ptr);
},
nms_InventoryLargeChest_isItemValidForSlot = ($this, $par1, $par2ItemStack) => {
    return 1;
};
function nms_Explosion() {
    let a = this; jl_Object.call(a);
    a.$isFlaming = 0;
    a.$isSmoking = 0;
    a.$field_77289_h = 0;
    a.$explosionRNG = null;
    a.$worldObj7 = null;
    a.$explosionX = 0.0;
    a.$explosionY = 0.0;
    a.$explosionZ = 0.0;
    a.$exploder = null;
    a.$explosionSize = 0.0;
    a.$affectedBlockPositions = null;
    a.$field_77288_k = null;
}
let nms_Explosion_doExplosionA = $this => {
    let $var1, $var2, $var26, $var25, var$5, var$6, $var3, $var7, $var9, $var11, $var14, $var6, $var8, $var10, $var4, $var5, $var29, $var30, $var12, $var15, $var17, $var31, $var22, $var32, $var27, var$26, $var19, $var21, $var23, $var24, $var13, $var33, $var35, var$34, $var36, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var36 = $thread.pop();var$34 = $thread.pop();$var35 = $thread.pop();$var33 = $thread.pop();$var13 = $thread.pop();$var24 = $thread.pop();$var23 = $thread.pop();$var21 = $thread.pop();$var19 = $thread.pop();var$26 = $thread.pop();$var27 = $thread.pop();$var32 = $thread.pop();$var22 = $thread.pop();$var31 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var12 = $thread.pop();$var30 = $thread.pop();$var29 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var10
        = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var14 = $thread.pop();$var11 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var25 = $thread.pop();$var26 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$explosionSize;
        $var2 = new ju_HashSet;
        $var26 = new ju_HashMap;
        $var25 = ju_HashMap_calculateCapacity(16);
        $var26.$elementCount = 0;
        var$5 = $rt_createArray(ju_HashMap$HashEntry, $var25);
        var$6 = var$5.data;
        $var26.$elementData = var$5;
        $var26.$loadFactor = 0.75;
        $var26.$threshold = var$6.length * 0.75 | 0;
        $var2.$backingMap = $var26;
        $var3 = 0;
        $var7 = 24;
        a: while (true) {
            if ($var3 >= $this.$field_77289_h) {
                $var26 = $this.$affectedBlockPositions;
                $var2 = $var2.$backingMap;
                if ($var2.$cachedKeySet === null) {
                    $var9 = new ju_HashMap$1;
                    $var9.$this$0 = $var2;
                    $var2.$cachedKeySet = $var9;
                }
                $var9 = $var2.$cachedKeySet.$iterator();
                while ($var9.$hasNext()) {
                    $var2 = $var9.$next();
                    ju_ArrayList_ensureCapacity($var26, $var26.$size0 + 1 | 0);
                    var$6 = $var26.$array.data;
                    $var11 = $var26.$size0;
                    $var26.$size0 = $var11 + 1 | 0;
                    var$6[$var11] = $var2;
                    $var26.$modCount = $var26.$modCount + 1 | 0;
                }
                $var14 = $this.$explosionSize * 2.0;
                $this.$explosionSize = $var14;
                $var6 = $this.$explosionX;
                $var8 = $var14;
                $var10 = $var6 - $var8 - 1.0;
                $var11 = $var10 | 0;
                if ($var10 < $var11)
                    $var11 = $var11 - 1 | 0;
                $var6 = $var6 + $var8 + 1.0;
                $var4 = $var6 | 0;
                if ($var6 < $var4)
                    $var4 = $var4 - 1 | 0;
                $var6 = $this.$explosionY;
                $var10 = $var6 - $var8 - 1.0;
                $var5 = $var10 | 0;
                if ($var10 < $var5)
                    $var5 = $var5 - 1 | 0;
                $var6 = $var6 + $var8 + 1.0;
                $var29 = $var6 | 0;
                if ($var6 < $var29)
                    $var29 = $var29 - 1 | 0;
                $var6 = $this.$explosionZ;
                $var10 = $var6 - $var8 - 1.0;
                $var7 = $var10 | 0;
                if ($var10 < $var7)
                    $var7 = $var7 - 1 | 0;
                $var6 = $var6 + $var8 + 1.0;
                $var30 = $var6 | 0;
                if ($var6 < $var30)
                    $var30 = $var30 - 1 | 0;
                $var2 = $this.$worldObj7;
                $var26 = $this.$exploder;
                $var9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                $var6 = $var11;
                $var8 = $var5;
                $var10 = $var7;
                $var12 = $var4;
                $var15 = $var29;
                $var17 = $var30;
                $var25 = $var9.$nextPoolIndex;
                $var31 = $var9.$listAABB;
                $var22 = $var31.$size0;
                $var11 = $rt_compare($var25, $var22);
                if ($var11 >= 0) {
                    $var32 = new nms_AxisAlignedBB;
                    $var32.$minX0 = $var6;
                    $var32.$minY0 = $var8;
                    $var32.$minZ0 = $var10;
                    $var32.$maxX0 = $var12;
                    $var32.$maxY = $var15;
                    $var32.$maxZ0 = $var17;
                    ju_ArrayList_ensureCapacity($var31, $var22 + 1 | 0);
                    var$6 = $var31.$array.data;
                    $var11 = $var31.$size0;
                    $var31.$size0 = $var11 + 1 | 0;
                    var$6[$var11] = $var32;
                    $var31.$modCount = $var31.$modCount + 1 | 0;
                } else if ($var25 >= 0 && $var11 < 0) {
                    $var32 = $var31.$array.data[$var25];
                    $var32.$minX0 = $var6;
                    $var32.$minY0 = $var8;
                    $var32.$minZ0 = $var10;
                    $var32.$maxX0 = $var12;
                    $var32.$maxY = $var15;
                    $var32.$maxZ0 = $var17;
                } else {
                    $var2 = new jl_IndexOutOfBoundsException;
                    $var2.$suppressionEnabled = 1;
                    $var2.$writableStackTrace = 1;
                    $rt_throw($var2);
                }
                $var9.$nextPoolIndex = $var9.$nextPoolIndex + 1 | 0;
                $var9 = null;
                $ptr = 3;
                continue main;
            }
            $var4 = 0;
            while ($var4 < $this.$field_77289_h) {
                $var5 = 0;
                while (true) {
                    $var25 = $this.$field_77289_h;
                    if ($var5 >= $var25)
                        break;
                    b: {
                        if ($var3) {
                            $var11 = $var25 - 1 | 0;
                            if ($var3 != $var11 && $var4 && $var4 != $var11 && $var5 && $var5 != $var11)
                                break b;
                        }
                        $var14 = $var3;
                        $var27 = $var25 - 1.0;
                        $var6 = $var14 / $var27 * 2.0 - 1.0;
                        $var8 = $var4 / $var27 * 2.0 - 1.0;
                        $var10 = $var5 / $var27 * 2.0 - 1.0;
                        $var12 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8 + $var10 * $var10);
                        $var6 = $var6 / $var12;
                        $var8 = $var8 / $var12;
                        $var10 = $var10 / $var12;
                        $var14 = $this.$explosionSize;
                        $var26 = $this.$worldObj7.$rand0;
                        var$26 = Long_and(Long_add(Long_mul($var26.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var26.$seed = var$26;
                        $var14 = $var14 * (0.699999988079071 + Long_lo(Long_shru(var$26, $var7)) / 1.6777216E7 * 0.6000000238418579);
                        $var15 = $this.$explosionX;
                        $var17 = $this.$explosionY;
                        $var19 = $this.$explosionZ;
                        $var21 = 0.30000001192092896;
                        $var6 = $var6 * 0.30000001192092896;
                        $var8 = $var8 * 0.30000001192092896;
                        $var12 = $var10 * 0.30000001192092896;
                        if ($var14 > 0.0)
                            break a;
                    }
                    $var5 = $var5 + 1 | 0;
                }
                $var4 = $var4 + 1 | 0;
            }
            $var3 = $var3 + 1 | 0;
        }
        $var22 = $var15 | 0;
        if ($var15 < $var22)
            $var22 = $var22 - 1 | 0;
        $var23 = $var17 | 0;
        if ($var17 < $var23)
            $var23 = $var23 - 1 | 0;
        $var24 = $var19 | 0;
        if ($var19 < $var24)
            $var24 = $var24 - 1 | 0;
        $var26 = $this.$worldObj7;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($var26, $var22, $var23, $var24);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $tmp;
        if ($var25 > 0) {
            nms_Block_$callClinit();
            $var26 = nms_Block_blocksList.data[$var25];
            $var9 = $this.$exploder;
            if ($var9 !== null) {
                $var31 = $this.$worldObj7;
                $ptr = 2;
                continue main;
            }
            $var14 = $var14 - ($var26.$getExplosionResistance($var9) + 0.30000001192092896) * $var21;
        }
        if ($var14 > 0.0) {
            $var26 = $this.$exploder;
            if ($var26 !== null) {
                $var9 = $this.$worldObj7;
                $ptr = 4;
                continue main;
            }
            $var26 = new nms_ChunkPosition;
            $var26.$x = $var22;
            $var26.$y = $var23;
            $var26.$z = $var24;
            ju_HashMap_putImpl($var2.$backingMap, $var26, $var2);
        }
        $var15 = $var15 + $var6;
        $var17 = $var17 + $var8;
        $var19 = $var19 + $var12;
        $var14 = $var14 - 0.22500000894069672;
        while ($var14 <= 0.0) {
            while (true) {
                $var5 = $var5 + 1 | 0;
                while (true) {
                    $var25 = $this.$field_77289_h;
                    if ($var5 < $var25)
                        break;
                    $var4 = $var4 + 1 | 0;
                    while ($var4 >= $this.$field_77289_h) {
                        $var3 = $var3 + 1 | 0;
                        if ($var3 >= $this.$field_77289_h) {
                            $var26 = $this.$affectedBlockPositions;
                            $var2 = $var2.$backingMap;
                            if ($var2.$cachedKeySet === null) {
                                $var9 = new ju_HashMap$1;
                                $var9.$this$0 = $var2;
                                $var2.$cachedKeySet = $var9;
                            }
                            $var9 = $var2.$cachedKeySet.$iterator();
                            while ($var9.$hasNext()) {
                                $var2 = $var9.$next();
                                ju_ArrayList_ensureCapacity($var26, $var26.$size0 + 1 | 0);
                                var$6 = $var26.$array.data;
                                $var11 = $var26.$size0;
                                $var26.$size0 = $var11 + 1 | 0;
                                var$6[$var11] = $var2;
                                $var26.$modCount = $var26.$modCount + 1 | 0;
                            }
                            $var14 = $this.$explosionSize * 2.0;
                            $this.$explosionSize = $var14;
                            $var6 = $this.$explosionX;
                            $var8 = $var14;
                            $var10 = $var6 - $var8 - 1.0;
                            $var11 = $var10 | 0;
                            if ($var10 < $var11)
                                $var11 = $var11 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var4 = $var6 | 0;
                            if ($var6 < $var4)
                                $var4 = $var4 - 1 | 0;
                            $var6 = $this.$explosionY;
                            $var10 = $var6 - $var8 - 1.0;
                            $var5 = $var10 | 0;
                            if ($var10 < $var5)
                                $var5 = $var5 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var29 = $var6 | 0;
                            if ($var6 < $var29)
                                $var29 = $var29 - 1 | 0;
                            $var6 = $this.$explosionZ;
                            $var10 = $var6 - $var8 - 1.0;
                            $var7 = $var10 | 0;
                            if ($var10 < $var7)
                                $var7 = $var7 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var30 = $var6 | 0;
                            if ($var6 < $var30)
                                $var30 = $var30 - 1 | 0;
                            $var2 = $this.$worldObj7;
                            $var26 = $this.$exploder;
                            $var9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                            $var6 = $var11;
                            $var8 = $var5;
                            $var10 = $var7;
                            $var12 = $var4;
                            $var15 = $var29;
                            $var17 = $var30;
                            $var25 = $var9.$nextPoolIndex;
                            $var31 = $var9.$listAABB;
                            $var22 = $var31.$size0;
                            $var11 = $rt_compare($var25, $var22);
                            if ($var11 >= 0) {
                                $var32 = new nms_AxisAlignedBB;
                                $var32.$minX0 = $var6;
                                $var32.$minY0 = $var8;
                                $var32.$minZ0 = $var10;
                                $var32.$maxX0 = $var12;
                                $var32.$maxY = $var15;
                                $var32.$maxZ0 = $var17;
                                ju_ArrayList_ensureCapacity($var31, $var22 + 1 | 0);
                                var$6 = $var31.$array.data;
                                $var11 = $var31.$size0;
                                $var31.$size0 = $var11 + 1 | 0;
                                var$6[$var11] = $var32;
                                $var31.$modCount = $var31.$modCount + 1 | 0;
                            } else if ($var25 >= 0 && $var11 < 0) {
                                $var32 = $var31.$array.data[$var25];
                                $var32.$minX0 = $var6;
                                $var32.$minY0 = $var8;
                                $var32.$minZ0 = $var10;
                                $var32.$maxX0 = $var12;
                                $var32.$maxY = $var15;
                                $var32.$maxZ0 = $var17;
                            } else {
                                $var2 = new jl_IndexOutOfBoundsException;
                                $var2.$suppressionEnabled = 1;
                                $var2.$writableStackTrace = 1;
                                $rt_throw($var2);
                            }
                            $var9.$nextPoolIndex = $var9.$nextPoolIndex + 1 | 0;
                            $var9 = null;
                            $ptr = 3;
                            continue main;
                        }
                        $var4 = 0;
                    }
                    $var5 = 0;
                }
                if (!$var3)
                    break;
                $var11 = $var25 - 1 | 0;
                if ($var3 == $var11)
                    break;
                if (!$var4)
                    break;
                if ($var4 == $var11)
                    break;
                if (!$var5)
                    break;
                if ($var5 != $var11)
                    continue;
                else
                    break;
            }
            $var14 = $var3;
            $var27 = $var25 - 1.0;
            $var6 = $var14 / $var27 * 2.0 - 1.0;
            $var8 = $var4 / $var27 * 2.0 - 1.0;
            $var10 = $var5 / $var27 * 2.0 - 1.0;
            $var12 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8 + $var10 * $var10);
            $var6 = $var6 / $var12;
            $var8 = $var8 / $var12;
            $var10 = $var10 / $var12;
            $var14 = $this.$explosionSize;
            $var26 = $this.$worldObj7.$rand0;
            var$26 = Long_and(Long_add(Long_mul($var26.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var26.$seed = var$26;
            $var14 = $var14 * (0.699999988079071 + Long_lo(Long_shru(var$26, $var7)) / 1.6777216E7 * 0.6000000238418579);
            $var15 = $this.$explosionX;
            $var17 = $this.$explosionY;
            $var19 = $this.$explosionZ;
            $var21 = 0.30000001192092896;
            $var6 = $var6 * 0.30000001192092896;
            $var8 = $var8 * 0.30000001192092896;
            $var12 = $var10 * 0.30000001192092896;
        }
        $var22 = $var15 | 0;
        if ($var15 < $var22)
            $var22 = $var22 - 1 | 0;
        $var23 = $var17 | 0;
        if ($var17 < $var23)
            $var23 = $var23 - 1 | 0;
        $var24 = $var19 | 0;
        if ($var19 < $var24)
            $var24 = $var24 - 1 | 0;
        $var26 = $this.$worldObj7;
        continue main;
    case 2:
        $tmp = $var9.$getBlockExplosionResistance($this, $var31, $var22, $var23, $var24, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var27 = $tmp;
        $var14 = $var14 - ($var27 + 0.30000001192092896) * $var21;
        if ($var14 > 0.0) {
            $var26 = $this.$exploder;
            if ($var26 !== null) {
                $var9 = $this.$worldObj7;
                $ptr = 4;
                continue main;
            }
            $var26 = new nms_ChunkPosition;
            $var26.$x = $var22;
            $var26.$y = $var23;
            $var26.$z = $var24;
            ju_HashMap_putImpl($var2.$backingMap, $var26, $var2);
        }
        $var15 = $var15 + $var6;
        $var17 = $var17 + $var8;
        $var19 = $var19 + $var12;
        $var14 = $var14 - 0.22500000894069672;
        while ($var14 <= 0.0) {
            while (true) {
                $var5 = $var5 + 1 | 0;
                while (true) {
                    $var25 = $this.$field_77289_h;
                    if ($var5 < $var25)
                        break;
                    $var4 = $var4 + 1 | 0;
                    while ($var4 >= $this.$field_77289_h) {
                        $var3 = $var3 + 1 | 0;
                        if ($var3 >= $this.$field_77289_h) {
                            $var26 = $this.$affectedBlockPositions;
                            $var2 = $var2.$backingMap;
                            if ($var2.$cachedKeySet === null) {
                                $var9 = new ju_HashMap$1;
                                $var9.$this$0 = $var2;
                                $var2.$cachedKeySet = $var9;
                            }
                            $var9 = $var2.$cachedKeySet.$iterator();
                            while ($var9.$hasNext()) {
                                $var2 = $var9.$next();
                                ju_ArrayList_ensureCapacity($var26, $var26.$size0 + 1 | 0);
                                var$6 = $var26.$array.data;
                                $var11 = $var26.$size0;
                                $var26.$size0 = $var11 + 1 | 0;
                                var$6[$var11] = $var2;
                                $var26.$modCount = $var26.$modCount + 1 | 0;
                            }
                            $var14 = $this.$explosionSize * 2.0;
                            $this.$explosionSize = $var14;
                            $var6 = $this.$explosionX;
                            $var8 = $var14;
                            $var10 = $var6 - $var8 - 1.0;
                            $var11 = $var10 | 0;
                            if ($var10 < $var11)
                                $var11 = $var11 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var4 = $var6 | 0;
                            if ($var6 < $var4)
                                $var4 = $var4 - 1 | 0;
                            $var6 = $this.$explosionY;
                            $var10 = $var6 - $var8 - 1.0;
                            $var5 = $var10 | 0;
                            if ($var10 < $var5)
                                $var5 = $var5 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var29 = $var6 | 0;
                            if ($var6 < $var29)
                                $var29 = $var29 - 1 | 0;
                            $var6 = $this.$explosionZ;
                            $var10 = $var6 - $var8 - 1.0;
                            $var7 = $var10 | 0;
                            if ($var10 < $var7)
                                $var7 = $var7 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var30 = $var6 | 0;
                            if ($var6 < $var30)
                                $var30 = $var30 - 1 | 0;
                            $var2 = $this.$worldObj7;
                            $var26 = $this.$exploder;
                            $var9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                            $var6 = $var11;
                            $var8 = $var5;
                            $var10 = $var7;
                            $var12 = $var4;
                            $var15 = $var29;
                            $var17 = $var30;
                            $var25 = $var9.$nextPoolIndex;
                            $var31 = $var9.$listAABB;
                            $var22 = $var31.$size0;
                            $var11 = $rt_compare($var25, $var22);
                            if ($var11 >= 0) {
                                $var32 = new nms_AxisAlignedBB;
                                $var32.$minX0 = $var6;
                                $var32.$minY0 = $var8;
                                $var32.$minZ0 = $var10;
                                $var32.$maxX0 = $var12;
                                $var32.$maxY = $var15;
                                $var32.$maxZ0 = $var17;
                                ju_ArrayList_ensureCapacity($var31, $var22 + 1 | 0);
                                var$6 = $var31.$array.data;
                                $var11 = $var31.$size0;
                                $var31.$size0 = $var11 + 1 | 0;
                                var$6[$var11] = $var32;
                                $var31.$modCount = $var31.$modCount + 1 | 0;
                            } else if ($var25 >= 0 && $var11 < 0) {
                                $var32 = $var31.$array.data[$var25];
                                $var32.$minX0 = $var6;
                                $var32.$minY0 = $var8;
                                $var32.$minZ0 = $var10;
                                $var32.$maxX0 = $var12;
                                $var32.$maxY = $var15;
                                $var32.$maxZ0 = $var17;
                            } else {
                                $var2 = new jl_IndexOutOfBoundsException;
                                $var2.$suppressionEnabled = 1;
                                $var2.$writableStackTrace = 1;
                                $rt_throw($var2);
                            }
                            $var9.$nextPoolIndex = $var9.$nextPoolIndex + 1 | 0;
                            $var9 = null;
                            $ptr = 3;
                            continue main;
                        }
                        $var4 = 0;
                    }
                    $var5 = 0;
                }
                if (!$var3)
                    break;
                $var11 = $var25 - 1 | 0;
                if ($var3 == $var11)
                    break;
                if (!$var4)
                    break;
                if ($var4 == $var11)
                    break;
                if (!$var5)
                    break;
                if ($var5 != $var11)
                    continue;
                else
                    break;
            }
            $var14 = $var3;
            $var27 = $var25 - 1.0;
            $var6 = $var14 / $var27 * 2.0 - 1.0;
            $var8 = $var4 / $var27 * 2.0 - 1.0;
            $var10 = $var5 / $var27 * 2.0 - 1.0;
            $var12 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8 + $var10 * $var10);
            $var6 = $var6 / $var12;
            $var8 = $var8 / $var12;
            $var10 = $var10 / $var12;
            $var14 = $this.$explosionSize;
            $var26 = $this.$worldObj7.$rand0;
            var$26 = Long_and(Long_add(Long_mul($var26.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var26.$seed = var$26;
            $var14 = $var14 * (0.699999988079071 + Long_lo(Long_shru(var$26, $var7)) / 1.6777216E7 * 0.6000000238418579);
            $var15 = $this.$explosionX;
            $var17 = $this.$explosionY;
            $var19 = $this.$explosionZ;
            $var21 = 0.30000001192092896;
            $var6 = $var6 * 0.30000001192092896;
            $var8 = $var8 * 0.30000001192092896;
            $var12 = $var10 * 0.30000001192092896;
        }
        $var22 = $var15 | 0;
        if ($var15 < $var22)
            $var22 = $var22 - 1 | 0;
        $var23 = $var17 | 0;
        if ($var17 < $var23)
            $var23 = $var23 - 1 | 0;
        $var24 = $var19 | 0;
        if ($var19 < $var24)
            $var24 = $var24 - 1 | 0;
        $var26 = $this.$worldObj7;
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var2, $var26, $var32, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        $var31 = nms_Vec3Pool_getVecFromPool($this.$worldObj7.$vecPool, $this.$explosionX, $this.$explosionY, $this.$explosionZ);
        $var11 = 0;
        a: {
            while (true) {
                $var25 = $rt_compare($var11, $var9.$size0);
                if ($var25 >= 0)
                    break;
                if ($var11 < 0)
                    break a;
                if ($var25 >= 0)
                    break a;
                $var32 = $var9.$array.data[$var11];
                $var6 = $this.$explosionX;
                $var8 = $this.$explosionY;
                $var10 = $this.$explosionZ;
                $var6 = $var32.$posX - $var6;
                $var8 = $var32.$posY - $var8;
                $var10 = $var32.$posZ - $var10;
                $var13 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8 + $var10 * $var10) / $this.$explosionSize;
                if ($var13 <= 1.0) {
                    $var15 = $var32.$posX - $this.$explosionX;
                    $var17 = $var32.$posY + $var32.$getEyeHeight() - $this.$explosionY;
                    $var19 = $var32.$posZ - $this.$explosionZ;
                    $var33 = jl_Math_sqrt($var15 * $var15 + $var17 * $var17 + $var19 * $var19);
                    if ($var33 !== 0.0) {
                        $var6 = $var15 / $var33;
                        $var8 = $var17 / $var33;
                        $var10 = $var19 / $var33;
                        $var2 = $this.$worldObj7;
                        $var26 = $var32.$boundingBox0;
                        $ptr = 5;
                        continue main;
                    }
                }
                $var11 = $var11 + 1 | 0;
            }
            $this.$explosionSize = $var1;
            return;
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    case 4:
        $tmp = $var26.$shouldExplodeBlock($this, $var9, $var22, $var23, $var24, $var25, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $tmp;
        if ($var25) {
            $var26 = new nms_ChunkPosition;
            $var26.$x = $var22;
            $var26.$y = $var23;
            $var26.$z = $var24;
            ju_HashMap_putImpl($var2.$backingMap, $var26, $var2);
        }
        $var15 = $var15 + $var6;
        $var17 = $var17 + $var8;
        $var19 = $var19 + $var12;
        $var14 = $var14 - 0.22500000894069672;
        while ($var14 <= 0.0) {
            while (true) {
                $var5 = $var5 + 1 | 0;
                while (true) {
                    $var25 = $this.$field_77289_h;
                    if ($var5 < $var25)
                        break;
                    $var4 = $var4 + 1 | 0;
                    while ($var4 >= $this.$field_77289_h) {
                        $var3 = $var3 + 1 | 0;
                        if ($var3 >= $this.$field_77289_h) {
                            $var26 = $this.$affectedBlockPositions;
                            $var2 = $var2.$backingMap;
                            if ($var2.$cachedKeySet === null) {
                                $var9 = new ju_HashMap$1;
                                $var9.$this$0 = $var2;
                                $var2.$cachedKeySet = $var9;
                            }
                            $var9 = $var2.$cachedKeySet.$iterator();
                            while ($var9.$hasNext()) {
                                $var2 = $var9.$next();
                                ju_ArrayList_ensureCapacity($var26, $var26.$size0 + 1 | 0);
                                var$6 = $var26.$array.data;
                                $var11 = $var26.$size0;
                                $var26.$size0 = $var11 + 1 | 0;
                                var$6[$var11] = $var2;
                                $var26.$modCount = $var26.$modCount + 1 | 0;
                            }
                            $var14 = $this.$explosionSize * 2.0;
                            $this.$explosionSize = $var14;
                            $var6 = $this.$explosionX;
                            $var8 = $var14;
                            $var10 = $var6 - $var8 - 1.0;
                            $var11 = $var10 | 0;
                            if ($var10 < $var11)
                                $var11 = $var11 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var4 = $var6 | 0;
                            if ($var6 < $var4)
                                $var4 = $var4 - 1 | 0;
                            $var6 = $this.$explosionY;
                            $var10 = $var6 - $var8 - 1.0;
                            $var5 = $var10 | 0;
                            if ($var10 < $var5)
                                $var5 = $var5 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var29 = $var6 | 0;
                            if ($var6 < $var29)
                                $var29 = $var29 - 1 | 0;
                            $var6 = $this.$explosionZ;
                            $var10 = $var6 - $var8 - 1.0;
                            $var7 = $var10 | 0;
                            if ($var10 < $var7)
                                $var7 = $var7 - 1 | 0;
                            $var6 = $var6 + $var8 + 1.0;
                            $var30 = $var6 | 0;
                            if ($var6 < $var30)
                                $var30 = $var30 - 1 | 0;
                            $var2 = $this.$worldObj7;
                            $var26 = $this.$exploder;
                            $var9 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                            $var6 = $var11;
                            $var8 = $var5;
                            $var10 = $var7;
                            $var12 = $var4;
                            $var15 = $var29;
                            $var17 = $var30;
                            $var25 = $var9.$nextPoolIndex;
                            $var31 = $var9.$listAABB;
                            $var22 = $var31.$size0;
                            $var11 = $rt_compare($var25, $var22);
                            if ($var11 >= 0) {
                                $var32 = new nms_AxisAlignedBB;
                                $var32.$minX0 = $var6;
                                $var32.$minY0 = $var8;
                                $var32.$minZ0 = $var10;
                                $var32.$maxX0 = $var12;
                                $var32.$maxY = $var15;
                                $var32.$maxZ0 = $var17;
                                ju_ArrayList_ensureCapacity($var31, $var22 + 1 | 0);
                                var$6 = $var31.$array.data;
                                $var11 = $var31.$size0;
                                $var31.$size0 = $var11 + 1 | 0;
                                var$6[$var11] = $var32;
                                $var31.$modCount = $var31.$modCount + 1 | 0;
                            } else if ($var25 >= 0 && $var11 < 0) {
                                $var32 = $var31.$array.data[$var25];
                                $var32.$minX0 = $var6;
                                $var32.$minY0 = $var8;
                                $var32.$minZ0 = $var10;
                                $var32.$maxX0 = $var12;
                                $var32.$maxY = $var15;
                                $var32.$maxZ0 = $var17;
                            } else {
                                $var2 = new jl_IndexOutOfBoundsException;
                                $var2.$suppressionEnabled = 1;
                                $var2.$writableStackTrace = 1;
                                $rt_throw($var2);
                            }
                            $var9.$nextPoolIndex = $var9.$nextPoolIndex + 1 | 0;
                            $var9 = null;
                            $ptr = 3;
                            continue main;
                        }
                        $var4 = 0;
                    }
                    $var5 = 0;
                }
                if (!$var3)
                    break;
                $var11 = $var25 - 1 | 0;
                if ($var3 == $var11)
                    break;
                if (!$var4)
                    break;
                if ($var4 == $var11)
                    break;
                if (!$var5)
                    break;
                if ($var5 != $var11)
                    continue;
                else
                    break;
            }
            $var14 = $var3;
            $var27 = $var25 - 1.0;
            $var6 = $var14 / $var27 * 2.0 - 1.0;
            $var8 = $var4 / $var27 * 2.0 - 1.0;
            $var10 = $var5 / $var27 * 2.0 - 1.0;
            $var12 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8 + $var10 * $var10);
            $var6 = $var6 / $var12;
            $var8 = $var8 / $var12;
            $var10 = $var10 / $var12;
            $var14 = $this.$explosionSize;
            $var26 = $this.$worldObj7.$rand0;
            var$26 = Long_and(Long_add(Long_mul($var26.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var26.$seed = var$26;
            $var14 = $var14 * (0.699999988079071 + Long_lo(Long_shru(var$26, $var7)) / 1.6777216E7 * 0.6000000238418579);
            $var15 = $this.$explosionX;
            $var17 = $this.$explosionY;
            $var19 = $this.$explosionZ;
            $var21 = 0.30000001192092896;
            $var6 = $var6 * 0.30000001192092896;
            $var8 = $var8 * 0.30000001192092896;
            $var12 = $var10 * 0.30000001192092896;
        }
        $var22 = $var15 | 0;
        if ($var15 < $var22)
            $var22 = $var22 - 1 | 0;
        $var23 = $var17 | 0;
        if ($var17 < $var23)
            $var23 = $var23 - 1 | 0;
        $var24 = $var19 | 0;
        if ($var19 < $var24)
            $var24 = $var24 - 1 | 0;
        $var26 = $this.$worldObj7;
        $ptr = 1;
        continue main;
    case 5:
        c: {
            $tmp = nms_World_getBlockDensity($var2, $var31, $var26);
            if ($rt_suspending()) {
                break main;
            }
            $var14 = $tmp;
            $var35 = (1.0 - $var13) * $var14;
            if ($this !== null) {
                var$34 = $this.$exploder;
                if ((var$34 === null ? null : var$34 instanceof nms_EntityTNTPrimed ? var$34.$tntPlacedBy : !(var$34 instanceof nms_EntityLivingBase) ? null : var$34) !== null) {
                    $var26 = new nms_EntityDamageSource;
                    var$34 = var$34 === null ? null : var$34 instanceof nms_EntityTNTPrimed ? var$34.$tntPlacedBy : !(var$34 instanceof nms_EntityLivingBase) ? null : var$34;
                    $var26.$hungerDamage = 0.30000001192092896;
                    $var26.$damageType = $rt_s(2675);
                    $var26.$damageSourceEntity = var$34;
                    $var26.$difficultyScaled = 1;
                    $var26.$explosion = 1;
                    break c;
                }
            }
            $var26 = new nms_DamageSource;
            $var26.$hungerDamage = 0.30000001192092896;
            $var26.$damageType = $rt_s(2583);
            $var26.$difficultyScaled = 1;
            $var26.$explosion = 1;
        }
        $var14 = ($var35 * $var35 + $var35) / 2.0 * 8.0 * $this.$explosionSize + 1.0 | 0;
        $ptr = 6;
    case 6:
        $var32.$attackEntityFrom($var26, $var14);
        if ($rt_suspending()) {
            break main;
        }
        nms_Enchantment_$callClinit();
        $var25 = nms_Enchantment_blastProtection.$effectId;
        var$6 = $var32.$getLastActiveItems();
        nms_EnchantmentHelper_$callClinit();
        if (var$6 === null)
            $var22 = 0;
        else {
            var$6 = var$6.data;
            $var22 = 0;
            $var7 = var$6.length;
            $var3 = 0;
            while ($var3 < $var7) {
                $var4 = nms_EnchantmentHelper_getEnchantmentLevel($var25, var$6[$var3]);
                if ($var4 > $var22)
                    $var22 = $var4;
                $var3 = $var3 + 1 | 0;
            }
        }
        if ($var22 <= 0)
            $var36 = $var35;
        else {
            $var12 = $var35 * $var22 * 0.15000000596046448;
            $var22 = $var12 | 0;
            if ($var12 < $var22)
                $var22 = $var22 - 1 | 0;
            $var36 = $var35 - $var22;
        }
        $var32.$motionX = $var32.$motionX + $var6 * $var36;
        $var32.$motionY = $var32.$motionY + $var8 * $var36;
        $var32.$motionZ = $var32.$motionZ + $var10 * $var36;
        if ($var32 instanceof nms_EntityPlayer)
            ju_HashMap_putImpl($this.$field_77288_k, $var32, nms_Vec3Pool_getVecFromPool($this.$worldObj7.$vecPool, $var6 * $var35, $var8 * $var35, $var10 * $var35));
        d: {
            while (true) {
                $var11 = $var11 + 1 | 0;
                $var25 = $rt_compare($var11, $var9.$size0);
                if ($var25 >= 0)
                    break;
                if ($var11 < 0)
                    break d;
                if ($var25 >= 0)
                    break d;
                $var32 = $var9.$array.data[$var11];
                $var6 = $this.$explosionX;
                $var8 = $this.$explosionY;
                $var10 = $this.$explosionZ;
                $var6 = $var32.$posX - $var6;
                $var8 = $var32.$posY - $var8;
                $var10 = $var32.$posZ - $var10;
                $var13 = jl_Math_sqrt($var6 * $var6 + $var8 * $var8 + $var10 * $var10) / $this.$explosionSize;
                if ($var13 > 1.0)
                    continue;
                $var15 = $var32.$posX - $this.$explosionX;
                $var17 = $var32.$posY + $var32.$getEyeHeight() - $this.$explosionY;
                $var19 = $var32.$posZ - $this.$explosionZ;
                $var33 = jl_Math_sqrt($var15 * $var15 + $var17 * $var17 + $var19 * $var19);
                if ($var33 === 0.0)
                    continue;
                else {
                    $var6 = $var15 / $var33;
                    $var8 = $var17 / $var33;
                    $var10 = $var19 / $var33;
                    $var2 = $this.$worldObj7;
                    $var26 = $var32.$boundingBox0;
                    $ptr = 5;
                    continue main;
                }
            }
            $this.$explosionSize = $var1;
            return;
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var26, $var25, var$5, var$6, $var3, $var7, $var9, $var11, $var14, $var6, $var8, $var10, $var4, $var5, $var29, $var30, $var12, $var15, $var17, $var31, $var22, $var32, $var27, var$26, $var19, $var21, $var23, $var24, $var13, $var33, $var35, var$34, $var36, $ptr);
},
nms_Explosion_doExplosionB = ($this, $par1) => {
    let $var24, $var10, $var12, $var14, var$6, var$7, $var3, var$9, $var5, var$11, var$12, var$13, $var4, $var8, var$16, $var5_0, var$18, $var7, $var25, $var2$index, $var6, var$23, var$24, $var7_0, $var2$index_0, $var6_0, var$28, $var16, $var18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();var$28 = $thread.pop();$var6_0 = $thread.pop();$var2$index_0 = $thread.pop();$var7_0 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var6 = $thread.pop();$var2$index = $thread.pop();$var25 = $thread.pop();$var7 = $thread.pop();var$18 = $thread.pop();$var5_0 = $thread.pop();var$16 = $thread.pop();$var8 = $thread.pop();$var4 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var5 = $thread.pop();var$9
        = $thread.pop();$var3 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();$var10 = $thread.pop();$var24 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var24 = $this.$worldObj7;
        $var10 = $this.$explosionX;
        $var12 = $this.$explosionY;
        $var14 = $this.$explosionZ;
        var$6 = $rt_s(2432);
        var$7 = 4.0;
        $var3 = $var24.$rand0;
        var$9 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$9;
        $var5 = 24;
        var$11 = Long_lo(Long_shru(var$9, $var5)) / 1.6777216E7;
        var$12 = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var3.$seed = var$12;
        var$13 = (1.0 + (var$11 - Long_lo(Long_shru(var$12, $var5)) / 1.6777216E7) * 0.20000000298023224) * 0.699999988079071;
        $var4 = 0;
        $var3 = null;
        $var8 = 64.0;
        var$16 = $var24.$worldAccesses;
        $var5_0 = $rt_compare($var4, var$16.$size0);
        if ($var5_0 < 0) {
            if ($var4 >= 0 && $var5_0 < 0) {
                var$16 = var$16.$array.data[$var4];
                var$18 = var$16.$mcServer.$serverConfigManager;
                $var5_0 = var$16.$theWorldServer.$provider.$dimensionId;
                var$16 = nms_Packet62LevelSound__init_(var$6, $var10, $var12, $var14, var$7, var$13);
                $ptr = 1;
                continue main;
            }
            var$6 = new jl_IndexOutOfBoundsException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        a: {
            if ($this.$explosionSize >= 2.0 && $this.$isSmoking) {
                var$6 = $this.$worldObj7;
                $var4 = 0;
                while (true) {
                    $var5_0 = $rt_compare($var4, var$6.$worldAccesses.$size0);
                    if ($var5_0 >= 0)
                        break a;
                    if ($var4 < 0)
                        break;
                    if ($var5_0 >= 0)
                        break;
                    $var4 = $var4 + 1 | 0;
                }
                var$6 = new jl_IndexOutOfBoundsException;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                $rt_throw(var$6);
            }
            var$6 = $this.$worldObj7;
            $var4 = 0;
            while (true) {
                $var5_0 = $rt_compare($var4, var$6.$worldAccesses.$size0);
                if ($var5_0 >= 0)
                    break a;
                if ($var4 < 0)
                    break;
                if ($var5_0 >= 0)
                    break;
                $var4 = $var4 + 1 | 0;
            }
            var$6 = new jl_IndexOutOfBoundsException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        if ($this.$isSmoking) {
            var$6 = $this.$affectedBlockPositions;
            $var7 = var$6.$modCount;
            $var25 = var$6.$size();
            if (0 >= $var25 ? 0 : 1) {
                if ($var7 < var$6.$modCount) {
                    var$6 = new ju_ConcurrentModificationException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $var2$index = 0 + 1 | 0;
                $var3 = var$6.$get(0);
                $var4 = $var3.$x;
                $var5_0 = $var3.$y;
                $var6 = $var3.$z;
                $var3 = $this.$worldObj7;
                $ptr = 2;
                continue main;
            }
        }
        if ($this.$isFlaming) {
            var$6 = $this.$affectedBlockPositions;
            var$23 = var$6.$modCount;
            var$24 = var$6.$size();
            $var7_0 = 17;
            $var6 = 2;
            if (0 >= var$24 ? 0 : 1) {
                if (var$23 < var$6.$modCount) {
                    var$6 = new ju_ConcurrentModificationException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $var2$index_0 = 0 + 1 | 0;
                $var3 = var$6.$get(0);
                $var4 = $var3.$x;
                $var5 = $var3.$y;
                $var6_0 = $var3.$z;
                $var3 = $this.$worldObj7;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 1:
        nms_ServerConfigurationManager_sendToAllNearExcept(var$18, $var3, $var10, $var12, $var14, $var8, $var5_0, var$16);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        var$16 = $var24.$worldAccesses;
        $var5_0 = $rt_compare($var4, var$16.$size0);
        if ($var5_0 < 0) {
            if ($var4 >= 0 && $var5_0 < 0) {
                var$16 = var$16.$array.data[$var4];
                var$18 = var$16.$mcServer.$serverConfigManager;
                $var5_0 = var$16.$theWorldServer.$provider.$dimensionId;
                var$16 = nms_Packet62LevelSound__init_(var$6, $var10, $var12, $var14, var$7, var$13);
                continue main;
            }
            var$6 = new jl_IndexOutOfBoundsException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        a: {
            if ($this.$explosionSize >= 2.0 && $this.$isSmoking) {
                var$6 = $this.$worldObj7;
                $var4 = 0;
                while (true) {
                    $var5_0 = $rt_compare($var4, var$6.$worldAccesses.$size0);
                    if ($var5_0 >= 0)
                        break a;
                    if ($var4 < 0)
                        break;
                    if ($var5_0 >= 0)
                        break;
                    $var4 = $var4 + 1 | 0;
                }
                var$6 = new jl_IndexOutOfBoundsException;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                $rt_throw(var$6);
            }
            var$6 = $this.$worldObj7;
            $var4 = 0;
            while (true) {
                $var5_0 = $rt_compare($var4, var$6.$worldAccesses.$size0);
                if ($var5_0 >= 0)
                    break a;
                if ($var4 < 0)
                    break;
                if ($var5_0 >= 0)
                    break;
                $var4 = $var4 + 1 | 0;
            }
            var$6 = new jl_IndexOutOfBoundsException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        if ($this.$isSmoking) {
            var$6 = $this.$affectedBlockPositions;
            $var7 = var$6.$modCount;
            $var25 = var$6.$size();
            if (0 >= $var25 ? 0 : 1) {
                if ($var7 < var$6.$modCount) {
                    var$6 = new ju_ConcurrentModificationException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $var2$index = 0 + 1 | 0;
                $var3 = var$6.$get(0);
                $var4 = $var3.$x;
                $var5_0 = $var3.$y;
                $var6 = $var3.$z;
                $var3 = $this.$worldObj7;
                $ptr = 2;
                continue main;
            }
        }
        if ($this.$isFlaming) {
            var$6 = $this.$affectedBlockPositions;
            var$23 = var$6.$modCount;
            var$24 = var$6.$size();
            $var7_0 = 17;
            $var6 = 2;
            if (0 >= var$24 ? 0 : 1) {
                if (var$23 < var$6.$modCount) {
                    var$6 = new ju_ConcurrentModificationException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $var2$index_0 = 0 + 1 | 0;
                $var3 = var$6.$get(0);
                $var4 = $var3.$x;
                $var5 = $var3.$y;
                $var6_0 = $var3.$z;
                $var3 = $this.$worldObj7;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 2:
        b: {
            $tmp = nms_World_getBlockId($var3, $var4, $var5_0, $var6);
            if ($rt_suspending()) {
                break main;
            }
            $var7_0 = $tmp;
            if ($par1) {
                var$7 = $var4;
                $var3 = $this.$worldObj7.$rand0;
                var$12 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$12;
                $var8 = var$7 + Long_lo(Long_shru(var$12, $var5)) / 1.6777216E7;
                var$28 = $var5_0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$12;
                $var10 = var$28 + Long_lo(Long_shru(var$12, $var5)) / 1.6777216E7;
                var$7 = $var6;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$12;
                $var12 = var$7 + Long_lo(Long_shru(var$12, $var5)) / 1.6777216E7;
                $var14 = $var8 - $this.$explosionX;
                $var16 = $var10 - $this.$explosionY;
                $var18 = $var12 - $this.$explosionZ;
                jl_Math_sqrt($var14 * $var14 + $var16 * $var16 + $var18 * $var18);
                $var3 = $this.$worldObj7;
                $var24 = $var3.$rand0;
                var$9 = Long_and(Long_add(Long_mul($var24.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var24.$seed = var$9;
                $var24.$seed = Long_and(Long_add(Long_mul(var$9, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var6_0 = 0;
                while (true) {
                    var$23 = $var3.$worldAccesses.$size0;
                    $var2$index_0 = $rt_compare($var6_0, var$23);
                    if ($var2$index_0 >= 0) {
                        $var6_0 = 0;
                        while (true) {
                            $var2$index_0 = $rt_compare($var6_0, var$23);
                            if ($var2$index_0 >= 0)
                                break b;
                            if ($var6_0 < 0)
                                break;
                            if ($var2$index_0 >= 0)
                                break;
                            $var6_0 = $var6_0 + 1 | 0;
                        }
                        var$6 = new jl_IndexOutOfBoundsException;
                        var$6.$suppressionEnabled = 1;
                        var$6.$writableStackTrace = 1;
                        $rt_throw(var$6);
                    }
                    if ($var6_0 < 0)
                        break;
                    if ($var2$index_0 >= 0)
                        break;
                    $var6_0 = $var6_0 + 1 | 0;
                }
                var$6 = new jl_IndexOutOfBoundsException;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                $rt_throw(var$6);
            }
        }
        if ($var7_0 > 0) {
            nms_Block_$callClinit();
            $var24 = nms_Block_blocksList.data[$var7_0];
            if ($var24.$canDropFromExplosion($this)) {
                $var3 = $this.$worldObj7;
                $ptr = 7;
                continue main;
            }
            $var3 = $this.$worldObj7;
            $var6_0 = 0;
            $var7_0 = 0;
            $var2$index_0 = 3;
            $ptr = 5;
            continue main;
        }
        $var2$index_0 = $var2$index;
        if ($var2$index_0 >= $var25 ? 0 : 1) {
            if ($var7 < var$6.$modCount) {
                var$6 = new ju_ConcurrentModificationException;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                $rt_throw(var$6);
            }
            $var2$index = $var2$index_0 + 1 | 0;
            $var3 = var$6.$get($var2$index_0);
            $var4 = $var3.$x;
            $var5_0 = $var3.$y;
            $var6 = $var3.$z;
            $var3 = $this.$worldObj7;
            continue main;
        }
        if ($this.$isFlaming) {
            var$6 = $this.$affectedBlockPositions;
            var$23 = var$6.$modCount;
            var$24 = var$6.$size();
            $var7_0 = 17;
            $var6 = 2;
            if (0 >= var$24 ? 0 : 1) {
                if (var$23 < var$6.$modCount) {
                    var$6 = new ju_ConcurrentModificationException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $var2$index_0 = 0 + 1 | 0;
                $var3 = var$6.$get(0);
                $var4 = $var3.$x;
                $var5 = $var3.$y;
                $var6_0 = $var3.$z;
                $var3 = $this.$worldObj7;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 3:
        $tmp = nms_World_getBlockId($var3, $var4, $var5, $var6_0);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        $var3 = $this.$worldObj7;
        $par1 = $var5 - 1 | 0;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($var3, $var4, $par1, $var6_0);
        if ($rt_suspending()) {
            break main;
        }
        $var25 = $tmp;
        if (!$var7) {
            nms_Block_$callClinit();
            if (nms_Block_opaqueCubeLookup.data[$var25]) {
                $var3 = $this.$explosionRNG;
                var$12 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var3.$seed = var$12;
                $var5_0 = Long_lo(Long_shru(var$12, $var7_0));
                while (true) {
                    $var2$index = $var5_0 % 3 | 0;
                    if ((($var5_0 - $var2$index | 0) + $var6 | 0) >= 0)
                        break;
                    var$12 = Long_and(Long_add(Long_mul($var3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var3.$seed = var$12;
                    $var5_0 = Long_lo(Long_shru(var$12, $var7_0));
                }
                if (!$var2$index) {
                    $var3 = $this.$worldObj7;
                    $par1 = nms_Block_fire.$blockID;
                    $var5_0 = 0;
                    $var2$index = 3;
                    $ptr = 9;
                    continue main;
                }
            }
        }
        $var2$index = $var2$index_0;
        if (!($var2$index >= var$24 ? 0 : 1))
            return;
        if (var$23 < var$6.$modCount) {
            var$6 = new ju_ConcurrentModificationException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        $var2$index_0 = $var2$index + 1 | 0;
        $var3 = var$6.$get($var2$index);
        $var4 = $var3.$x;
        $var5 = $var3.$y;
        $var6_0 = $var3.$z;
        $var3 = $this.$worldObj7;
        $ptr = 3;
        continue main;
    case 5:
        nms_World_setBlock($var3, $var4, $var5_0, $var6, $var6_0, $var7_0, $var2$index_0);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$worldObj7;
        $ptr = 6;
    case 6:
        $var24.$onBlockDestroyedByExplosion($var3, $var4, $var5_0, $var6, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var2$index_0 = $var2$index;
        if ($var2$index_0 >= $var25 ? 0 : 1) {
            if ($var7 < var$6.$modCount) {
                var$6 = new ju_ConcurrentModificationException;
                var$6.$suppressionEnabled = 1;
                var$6.$writableStackTrace = 1;
                $rt_throw(var$6);
            }
            $var2$index = $var2$index_0 + 1 | 0;
            $var3 = var$6.$get($var2$index_0);
            $var4 = $var3.$x;
            $var5_0 = $var3.$y;
            $var6 = $var3.$z;
            $var3 = $this.$worldObj7;
            $ptr = 2;
            continue main;
        }
        if ($this.$isFlaming) {
            var$6 = $this.$affectedBlockPositions;
            var$23 = var$6.$modCount;
            var$24 = var$6.$size();
            $var7_0 = 17;
            $var6 = 2;
            if (0 >= var$24 ? 0 : 1) {
                if (var$23 < var$6.$modCount) {
                    var$6 = new ju_ConcurrentModificationException;
                    var$6.$suppressionEnabled = 1;
                    var$6.$writableStackTrace = 1;
                    $rt_throw(var$6);
                }
                $var2$index_0 = 0 + 1 | 0;
                $var3 = var$6.$get(0);
                $var4 = $var3.$x;
                $var5 = $var3.$y;
                $var6_0 = $var3.$z;
                $var3 = $this.$worldObj7;
                $ptr = 3;
                continue main;
            }
        }
        return;
    case 7:
        $tmp = nms_World_getBlockMetadata($var3, $var4, $var5_0, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6_0 = $tmp;
        var$7 = 1.0 / $this.$explosionSize;
        $var7_0 = 0;
        $ptr = 8;
    case 8:
        $var24.$dropBlockAsItemWithChance($var3, $var4, $var5_0, $var6, $var6_0, var$7, $var7_0);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $this.$worldObj7;
        $var6_0 = 0;
        $var7_0 = 0;
        $var2$index_0 = 3;
        $ptr = 5;
        continue main;
    case 9:
        nms_World_setBlock($var3, $var4, $var5, $var6_0, $par1, $var5_0, $var2$index);
        if ($rt_suspending()) {
            break main;
        }
        $var2$index = $var2$index_0;
        if (!($var2$index >= var$24 ? 0 : 1))
            return;
        if (var$23 < var$6.$modCount) {
            var$6 = new ju_ConcurrentModificationException;
            var$6.$suppressionEnabled = 1;
            var$6.$writableStackTrace = 1;
            $rt_throw(var$6);
        }
        $var2$index_0 = $var2$index + 1 | 0;
        $var3 = var$6.$get($var2$index);
        $var4 = $var3.$x;
        $var5 = $var3.$y;
        $var6_0 = $var3.$z;
        $var3 = $this.$worldObj7;
        $ptr = 3;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $var24, $var10, $var12, $var14, var$6, var$7, $var3, var$9, $var5, var$11, var$12, var$13, $var4, $var8, var$16, $var5_0, var$18, $var7, $var25, $var2$index, $var6, var$23, var$24, $var7_0, $var2$index_0, $var6_0, var$28, $var16, $var18, $ptr);
},
nms_EntityLeashKnot = $rt_classWithoutFields(nms_EntityHanging),
nms_EntityLeashKnot_entityInit = $this => {
    return;
},
nms_EntityLeashKnot_getWidthPixels = $this => {
    return 9;
},
nms_EntityLeashKnot_getHeightPixels = $this => {
    return 9;
},
nms_EntityLeashKnot_onBroken = ($this, $par1Entity) => {
    return;
},
nms_EntityLeashKnot_writeToNBTOptional = ($this, $par1NBTTagCompound) => {
    return 0;
},
nms_EntityLeashKnot_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    return;
},
nms_EntityLeashKnot_interactFirst = ($this, $par1EntityPlayer) => {
    let $var6, $var7$index, $var3, var$5, $var8, $var8_0, var$8, $var4, var$10, var$11, var$12, var$13, $var4_0, $var7$index_0, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var7$index_0 = $thread.pop();$var4_0 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var4 = $thread.pop();var$8 = $thread.pop();$var8_0 = $thread.pop();$var8 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();$var7$index = $thread.pop();$var6
        = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = $par1EntityPlayer.$inventory0;
        $var7$index = $var6.$currentItem;
        $var6 = $var7$index < 9 && $var7$index >= 0 ? $var6.$mainInventory.data[$var7$index] : null;
        $var3 = 0;
        if ($var6 !== null) {
            $var7$index = $var6.$itemID;
            nms_Item_$callClinit();
            if ($var7$index == nms_Item_leash.$itemID0) {
                var$5 = $this.$worldObj;
                if (!var$5.$isRemote) {
                    $var8 = $rt_cls(nms_EntityLiving);
                    $var8_0 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    var$8 = $this.$posX;
                    $var4 = var$8 - 7.0;
                    var$10 = $this.$posY;
                    var$11 = var$10 - 7.0;
                    var$12 = $this.$posZ;
                    var$13 = var$12 - 7.0;
                    var$8 = var$8 + 7.0;
                    var$10 = var$10 + 7.0;
                    $var4_0 = var$12 + 7.0;
                    $var7$index_0 = $var8_0.$nextPoolIndex;
                    $var6 = $var8_0.$listAABB;
                    $var7$index = $var6.$size0;
                    var$16 = $rt_compare($var7$index_0, $var7$index);
                    if (var$16 >= 0) {
                        var$17 = new nms_AxisAlignedBB;
                        var$17.$minX0 = $var4;
                        var$17.$minY0 = var$11;
                        var$17.$minZ0 = var$13;
                        var$17.$maxX0 = var$8;
                        var$17.$maxY = var$10;
                        var$17.$maxZ0 = $var4_0;
                        ju_ArrayList_ensureCapacity($var6, $var7$index + 1 | 0);
                        var$18 = $var6.$array.data;
                        $var7$index_0 = $var6.$size0;
                        $var6.$size0 = $var7$index_0 + 1 | 0;
                        var$18[$var7$index_0] = var$17;
                        $var6.$modCount = $var6.$modCount + 1 | 0;
                    } else if ($var7$index_0 >= 0 && var$16 < 0) {
                        var$17 = $var6.$array.data[$var7$index_0];
                        var$17.$minX0 = $var4;
                        var$17.$minY0 = var$11;
                        var$17.$minZ0 = var$13;
                        var$17.$maxX0 = var$8;
                        var$17.$maxY = var$10;
                        var$17.$maxZ0 = $var4_0;
                    } else {
                        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                        $par1EntityPlayer.$suppressionEnabled = 1;
                        $par1EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par1EntityPlayer);
                    }
                    $var8_0.$nextPoolIndex = $var8_0.$nextPoolIndex + 1 | 0;
                    $var6 = null;
                    $ptr = 1;
                    continue main;
                }
            }
        }
        $var6 = $this.$worldObj;
        if (!$var6.$isRemote && !$var3) {
            $this.$isDead = 1;
            if ($par1EntityPlayer.$capabilities.$isCreativeMode) {
                $par1EntityPlayer = $rt_cls(nms_EntityLiving);
                $var8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$11 = $this.$posX;
                var$13 = var$11 - 7.0;
                var$8 = $this.$posY;
                var$10 = var$8 - 7.0;
                $var4_0 = $this.$posZ;
                var$12 = $var4_0 - 7.0;
                var$11 = var$11 + 7.0;
                var$8 = var$8 + 7.0;
                $var4 = $var4_0 + 7.0;
                $var3 = $var8.$nextPoolIndex;
                $var8_0 = $var8.$listAABB;
                $var7$index_0 = $var8_0.$size0;
                $var7$index = $rt_compare($var3, $var7$index_0);
                if ($var7$index >= 0) {
                    var$5 = new nms_AxisAlignedBB;
                    var$5.$minX0 = var$13;
                    var$5.$minY0 = var$10;
                    var$5.$minZ0 = var$12;
                    var$5.$maxX0 = var$11;
                    var$5.$maxY = var$8;
                    var$5.$maxZ0 = $var4;
                    ju_ArrayList_ensureCapacity($var8_0, $var7$index_0 + 1 | 0);
                    var$18 = $var8_0.$array.data;
                    $var7$index = $var8_0.$size0;
                    $var8_0.$size0 = $var7$index + 1 | 0;
                    var$18[$var7$index] = var$5;
                    $var8_0.$modCount = $var8_0.$modCount + 1 | 0;
                } else if ($var3 >= 0 && $var7$index < 0) {
                    var$5 = $var8_0.$array.data[$var3];
                    var$5.$minX0 = var$13;
                    var$5.$minY0 = var$10;
                    var$5.$minZ0 = var$12;
                    var$5.$maxX0 = var$11;
                    var$5.$maxY = var$8;
                    var$5.$maxZ0 = $var4;
                } else {
                    $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                    $par1EntityPlayer.$suppressionEnabled = 1;
                    $par1EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayer);
                }
                $var8.$nextPoolIndex = $var8.$nextPoolIndex + 1 | 0;
                $var8_0 = null;
                $ptr = 2;
                continue main;
            }
        }
        return 1;
    case 1:
        a: {
            $tmp = nms_World_selectEntitiesWithinAABB(var$5, $var8, var$17, $var6);
            if ($rt_suspending()) {
                break main;
            }
            $var6 = $tmp;
            if ($var6 !== null) {
                $var7$index = 0;
                var$16 = $var6.$modCount;
                var$19 = $var6.$size();
                while (true) {
                    if (!($var7$index >= var$19 ? 0 : 1))
                        break a;
                    if (var$16 < $var6.$modCount)
                        break;
                    $var7$index_0 = $var7$index + 1 | 0;
                    $var8 = $var6.$get($var7$index);
                    if (!$var8.$isLeashed) {
                        $var7$index = $var7$index_0;
                        continue;
                    }
                    if ($var8.$leashedToEntity !== $par1EntityPlayer) {
                        $var7$index = $var7$index_0;
                        continue;
                    }
                    $var8.$isLeashed = 1;
                    $var8.$leashedToEntity = $this;
                    $var8_0 = $var8.$worldObj;
                    if (!$var8_0.$isRemote && $var8_0 instanceof nms_WorldServer) {
                        var$5 = $var8_0.$theEntityTracker;
                        var$17 = new nms_Packet39AttachEntity;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$17.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$17.$attachState = 1;
                        var$20 = $var8.$entityId;
                        var$17.$ridingEntityId = var$20;
                        var$17.$vehicleEntityId = $this === null ? (-1) : $this.$entityId;
                        $var8_0 = var$5.$trackedEntityIDs;
                        $var3 = var$20 ^ (var$20 >>> 20 | 0) ^ (var$20 >>> 12 | 0);
                        var$21 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                        var$18 = $var8_0.$slots.data;
                        $var8_0 = var$18[var$21 & (var$18.length - 1 | 0)];
                        b: {
                            while ($var8_0 !== null) {
                                if ($var8_0.$hashEntry == var$20) {
                                    $var8_0 = $var8_0.$valueEntry;
                                    break b;
                                }
                                $var8_0 = $var8_0.$nextEntry0;
                            }
                            $var8_0 = null;
                        }
                        $var8_0 = $var8_0;
                        if ($var8_0 !== null) {
                            $var8_0 = $var8_0.$trackingPlayers.$backingMap;
                            if ($var8_0.$cachedKeySet === null) {
                                var$5 = new ju_HashMap$1;
                                var$5.$this$0 = $var8_0;
                                jl_Object__init_(var$5);
                                $var8_0.$cachedKeySet = var$5;
                            }
                            $var8 = $var8_0.$cachedKeySet.$iterator();
                            var$21 = var$17 instanceof nms_Packet3Chat;
                            var$22 = var$17;
                            while ($var8.$hasNext()) {
                                c: {
                                    $var8_0 = ($var8.$next()).$playerNetServerHandler;
                                    if (var$21) {
                                        $var7$index = $var8_0.$playerEntity.$chatVisibility;
                                        if ($var7$index == 2)
                                            break c;
                                        if ($var7$index == 1 && !var$22.$isServer)
                                            break c;
                                    }
                                    try {
                                        $var8_0 = $var8_0.$netManager;
                                        $ptr = 4;
                                        continue main;
                                    } catch ($$e) {
                                        $$je = $rt_wrapException($$e);
                                        if ($$je instanceof jl_Exception) {
                                            var$23 = $$je;
                                        } else {
                                            throw $$e;
                                        }
                                    }
                                    if (jl_System_errCache === null) {
                                        $var8_0 = new otcic_JSStderrPrintStream;
                                        ji_PrintStream__init_0($var8_0, ji_ByteArrayOutputStream__init_());
                                        jl_System_errCache = $var8_0;
                                    }
                                    jl_Throwable_printStackTrace(var$23, jl_System_errCache);
                                }
                            }
                        }
                    }
                    $var3 = 1;
                    $var7$index = $var7$index_0;
                }
                $par1EntityPlayer = new ju_ConcurrentModificationException;
                $par1EntityPlayer.$suppressionEnabled = 1;
                $par1EntityPlayer.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayer);
            }
        }
        $var6 = $this.$worldObj;
        if (!$var6.$isRemote && !$var3) {
            $this.$isDead = 1;
            if ($par1EntityPlayer.$capabilities.$isCreativeMode) {
                $par1EntityPlayer = $rt_cls(nms_EntityLiving);
                $var8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                var$11 = $this.$posX;
                var$13 = var$11 - 7.0;
                var$8 = $this.$posY;
                var$10 = var$8 - 7.0;
                $var4_0 = $this.$posZ;
                var$12 = $var4_0 - 7.0;
                var$11 = var$11 + 7.0;
                var$8 = var$8 + 7.0;
                $var4 = $var4_0 + 7.0;
                $var3 = $var8.$nextPoolIndex;
                $var8_0 = $var8.$listAABB;
                $var7$index_0 = $var8_0.$size0;
                $var7$index = $rt_compare($var3, $var7$index_0);
                if ($var7$index >= 0) {
                    var$5 = new nms_AxisAlignedBB;
                    var$5.$minX0 = var$13;
                    var$5.$minY0 = var$10;
                    var$5.$minZ0 = var$12;
                    var$5.$maxX0 = var$11;
                    var$5.$maxY = var$8;
                    var$5.$maxZ0 = $var4;
                    ju_ArrayList_ensureCapacity($var8_0, $var7$index_0 + 1 | 0);
                    var$18 = $var8_0.$array.data;
                    $var7$index = $var8_0.$size0;
                    $var8_0.$size0 = $var7$index + 1 | 0;
                    var$18[$var7$index] = var$5;
                    $var8_0.$modCount = $var8_0.$modCount + 1 | 0;
                } else if ($var3 >= 0 && $var7$index < 0) {
                    var$5 = $var8_0.$array.data[$var3];
                    var$5.$minX0 = var$13;
                    var$5.$minY0 = var$10;
                    var$5.$minZ0 = var$12;
                    var$5.$maxX0 = var$11;
                    var$5.$maxY = var$8;
                    var$5.$maxZ0 = $var4;
                } else {
                    $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                    $par1EntityPlayer.$suppressionEnabled = 1;
                    $par1EntityPlayer.$writableStackTrace = 1;
                    $rt_throw($par1EntityPlayer);
                }
                $var8.$nextPoolIndex = $var8.$nextPoolIndex + 1 | 0;
                $var8_0 = null;
                $ptr = 2;
                continue main;
            }
        }
        return 1;
    case 2:
        d: {
            $tmp = nms_World_selectEntitiesWithinAABB($var6, $par1EntityPlayer, var$5, $var8_0);
            if ($rt_suspending()) {
                break main;
            }
            $var6 = $tmp;
            if ($var6 !== null) {
                $var7$index = 0;
                var$16 = $var6.$modCount;
                var$19 = $var6.$size();
                while (true) {
                    if (!($var7$index >= var$19 ? 0 : 1))
                        break d;
                    if (var$16 < $var6.$modCount) {
                        $par1EntityPlayer = new ju_ConcurrentModificationException;
                        $par1EntityPlayer.$suppressionEnabled = 1;
                        $par1EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par1EntityPlayer);
                    }
                    $var7$index_0 = $var7$index + 1 | 0;
                    $var8_0 = $var6.$get($var7$index);
                    if (!$var8_0.$isLeashed) {
                        $var7$index = $var7$index_0;
                        continue;
                    }
                    if ($var8_0.$leashedToEntity === $this) {
                        $var3 = 1;
                        $var7$index = 0;
                        $ptr = 3;
                        continue main;
                    }
                    $var7$index = $var7$index_0;
                }
            }
        }
        return 1;
    case 3:
        nms_EntityLiving_clearLeashed($var8_0, $var3, $var7$index);
        if ($rt_suspending()) {
            break main;
        }
        $var7$index = $var7$index_0;
        while ($var7$index >= var$19 ? 0 : 1) {
            if (var$16 < $var6.$modCount) {
                $par1EntityPlayer = new ju_ConcurrentModificationException;
                $par1EntityPlayer.$suppressionEnabled = 1;
                $par1EntityPlayer.$writableStackTrace = 1;
                $rt_throw($par1EntityPlayer);
            }
            $var7$index_0 = $var7$index + 1 | 0;
            $var8_0 = $var6.$get($var7$index);
            if (!$var8_0.$isLeashed) {
                $var7$index = $var7$index_0;
                continue;
            }
            if ($var8_0.$leashedToEntity === $this) {
                $var3 = 1;
                $var7$index = 0;
                continue main;
            }
            $var7$index = $var7$index_0;
        }
        return 1;
    case 4:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($var8_0, var$17);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$23 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var8_0 = jl_System_errCache;
            if ($var8_0 === null) {
                $var8_0 = new otcic_JSStderrPrintStream;
                var$5 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0($var8_0, var$5);
                jl_System_errCache = $var8_0;
            }
            $var8_0 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$23, $var8_0);
        }
        e: while (true) {
            while (true) {
                while (!$var8.$hasNext()) {
                    while (true) {
                        while (true) {
                            $var3 = 1;
                            $var7$index = $var7$index_0;
                            while (true) {
                                if (!($var7$index >= var$19 ? 0 : 1)) {
                                    $var6 = $this.$worldObj;
                                    if (!$var6.$isRemote && !$var3) {
                                        $this.$isDead = 1;
                                        if ($par1EntityPlayer.$capabilities.$isCreativeMode) {
                                            $par1EntityPlayer = $rt_cls(nms_EntityLiving);
                                            $var8 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                                            var$11 = $this.$posX;
                                            var$13 = var$11 - 7.0;
                                            var$8 = $this.$posY;
                                            var$10 = var$8 - 7.0;
                                            $var4_0 = $this.$posZ;
                                            var$12 = $var4_0 - 7.0;
                                            var$11 = var$11 + 7.0;
                                            var$8 = var$8 + 7.0;
                                            $var4 = $var4_0 + 7.0;
                                            $var3 = $var8.$nextPoolIndex;
                                            $var8_0 = $var8.$listAABB;
                                            $var7$index_0 = $var8_0.$size0;
                                            $var7$index = $rt_compare($var3, $var7$index_0);
                                            if ($var7$index >= 0) {
                                                var$5 = new nms_AxisAlignedBB;
                                                var$5.$minX0 = var$13;
                                                var$5.$minY0 = var$10;
                                                var$5.$minZ0 = var$12;
                                                var$5.$maxX0 = var$11;
                                                var$5.$maxY = var$8;
                                                var$5.$maxZ0 = $var4;
                                                ju_ArrayList_ensureCapacity($var8_0, $var7$index_0 + 1 | 0);
                                                var$18 = $var8_0.$array.data;
                                                $var7$index = $var8_0.$size0;
                                                $var8_0.$size0 = $var7$index + 1 | 0;
                                                var$18[$var7$index] = var$5;
                                                $var8_0.$modCount = $var8_0.$modCount + 1 | 0;
                                            } else if ($var3 >= 0 && $var7$index < 0) {
                                                var$5 = $var8_0.$array.data[$var3];
                                                var$5.$minX0 = var$13;
                                                var$5.$minY0 = var$10;
                                                var$5.$minZ0 = var$12;
                                                var$5.$maxX0 = var$11;
                                                var$5.$maxY = var$8;
                                                var$5.$maxZ0 = $var4;
                                            } else {
                                                $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                                                $par1EntityPlayer.$suppressionEnabled = 1;
                                                $par1EntityPlayer.$writableStackTrace = 1;
                                                $rt_throw($par1EntityPlayer);
                                            }
                                            $var8.$nextPoolIndex = $var8.$nextPoolIndex + 1 | 0;
                                            $var8_0 = null;
                                            $ptr = 2;
                                            continue main;
                                        }
                                    }
                                    return 1;
                                }
                                if (var$16 < $var6.$modCount)
                                    break e;
                                $var7$index_0 = $var7$index + 1 | 0;
                                $var8 = $var6.$get($var7$index);
                                if (!$var8.$isLeashed) {
                                    $var7$index = $var7$index_0;
                                    continue;
                                }
                                if ($var8.$leashedToEntity === $par1EntityPlayer)
                                    break;
                                $var7$index = $var7$index_0;
                            }
                            $var8.$isLeashed = 1;
                            $var8.$leashedToEntity = $this;
                            $var8_0 = $var8.$worldObj;
                            if ($var8_0.$isRemote)
                                continue;
                            if (!($var8_0 instanceof nms_WorldServer))
                                continue;
                            else
                                break;
                        }
                        var$5 = $var8_0.$theEntityTracker;
                        var$17 = new nms_Packet39AttachEntity;
                        nms_Packet_$callClinit();
                        nles_SysUtil_$callClinit();
                        var$17.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                        var$17.$attachState = 1;
                        var$20 = $var8.$entityId;
                        var$17.$ridingEntityId = var$20;
                        var$17.$vehicleEntityId = $this === null ? (-1) : $this.$entityId;
                        $var8_0 = var$5.$trackedEntityIDs;
                        $var3 = var$20 ^ (var$20 >>> 20 | 0) ^ (var$20 >>> 12 | 0);
                        var$21 = $var3 ^ ($var3 >>> 7 | 0) ^ ($var3 >>> 4 | 0);
                        var$18 = $var8_0.$slots.data;
                        $var8_0 = var$18[var$21 & (var$18.length - 1 | 0)];
                        f: {
                            while ($var8_0 !== null) {
                                if ($var8_0.$hashEntry == var$20) {
                                    $var8_0 = $var8_0.$valueEntry;
                                    break f;
                                }
                                $var8_0 = $var8_0.$nextEntry0;
                            }
                            $var8_0 = null;
                        }
                        $var8_0 = $var8_0;
                        if ($var8_0 === null)
                            continue;
                        else
                            break;
                    }
                    $var8_0 = $var8_0.$trackingPlayers.$backingMap;
                    if ($var8_0.$cachedKeySet === null) {
                        var$5 = new ju_HashMap$1;
                        var$5.$this$0 = $var8_0;
                        jl_Object__init_(var$5);
                        $var8_0.$cachedKeySet = var$5;
                    }
                    $var8 = $var8_0.$cachedKeySet.$iterator();
                    var$21 = var$17 instanceof nms_Packet3Chat;
                    var$22 = var$17;
                }
                $var8_0 = ($var8.$next()).$playerNetServerHandler;
                if (!var$21)
                    break;
                $var7$index = $var8_0.$playerEntity.$chatVisibility;
                if ($var7$index == 2)
                    continue;
                if ($var7$index != 1)
                    break;
                if (var$22.$isServer)
                    break;
            }
            try {
                $var8_0 = $var8_0.$netManager;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$23 = $$je;
                } else {
                    throw $$e;
                }
            }
            $var8_0 = jl_System_errCache;
            if ($var8_0 === null) {
                $var8_0 = new otcic_JSStderrPrintStream;
                var$5 = ji_ByteArrayOutputStream__init_();
                ji_PrintStream__init_0($var8_0, var$5);
                jl_System_errCache = $var8_0;
            }
            $var8_0 = jl_System_errCache;
            jl_Throwable_printStackTrace(var$23, $var8_0);
        }
        $par1EntityPlayer = new ju_ConcurrentModificationException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var6, $var7$index, $var3, var$5, $var8, $var8_0, var$8, $var4, var$10, var$11, var$12, var$13, $var4_0, $var7$index_0, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_EntityLeashKnot_onValidSurface = $this => {
    let var$1, $var1, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        $var1 = $this.$xPosition1;
        var$3 = $this.$yPosition0;
        var$4 = $this.$zPosition1;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$1, $var1, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = $tmp;
        nms_Block_$callClinit();
        var$5 = nms_Block_blocksList.data;
        return var$5[$var1] !== null && var$5[$var1].$getRenderType() == 11 ? 1 : 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, var$4, var$5, $ptr);
},
nms_EntityLeashKnot_getKnotForBlock = ($par0World, $par1, $par2, $par3) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var7, $var6$index, var$17, $var4, var$19, $var6$index_0, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();$var6$index_0 = $thread.pop();var$19 = $thread.pop();$var4 = $thread.pop();var$17 = $thread.pop();$var6$index = $thread.pop();$var7 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0World = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$5 = $rt_cls(nms_EntityLeashKnot);
        var$6 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        var$7 = $par1;
        var$8 = var$7 - 1.0;
        var$9 = $par2;
        var$10 = var$9 - 1.0;
        var$11 = $par3;
        var$12 = var$11 - 1.0;
        var$13 = var$7 + 1.0;
        var$7 = var$9 + 1.0;
        var$9 = var$11 + 1.0;
        var$14 = var$6.$nextPoolIndex;
        $var7 = var$6.$listAABB;
        $var6$index = $var7.$size0;
        var$17 = $rt_compare(var$14, $var6$index);
        if (var$17 >= 0) {
            $var4 = new nms_AxisAlignedBB;
            $var4.$minX0 = var$8;
            $var4.$minY0 = var$10;
            $var4.$minZ0 = var$12;
            $var4.$maxX0 = var$13;
            $var4.$maxY = var$7;
            $var4.$maxZ0 = var$9;
            ju_ArrayList_ensureCapacity($var7, $var6$index + 1 | 0);
            var$19 = $var7.$array.data;
            $var6$index = $var7.$size0;
            $var7.$size0 = $var6$index + 1 | 0;
            var$19[$var6$index] = $var4;
            $var7.$modCount = $var7.$modCount + 1 | 0;
        } else if (var$14 >= 0 && var$17 < 0) {
            $var4 = $var7.$array.data[var$14];
            $var4.$minX0 = var$8;
            $var4.$minY0 = var$10;
            $var4.$minZ0 = var$12;
            $var4.$maxX0 = var$13;
            $var4.$maxY = var$7;
            $var4.$maxZ0 = var$9;
        } else {
            $par0World = new jl_IndexOutOfBoundsException;
            $par0World.$suppressionEnabled = 1;
            $par0World.$writableStackTrace = 1;
            $rt_throw($par0World);
        }
        var$6.$nextPoolIndex = var$6.$nextPoolIndex + 1 | 0;
        $var7 = null;
        $ptr = 1;
    case 1:
        a: {
            $tmp = nms_World_selectEntitiesWithinAABB($par0World, var$5, $var4, $var7);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = $tmp;
            if ($var4 !== null) {
                $var6$index_0 = 0;
                var$14 = $var4.$modCount;
                var$21 = $var4.$size();
                while (true) {
                    if (!($var6$index_0 >= var$21 ? 0 : 1))
                        break a;
                    if (var$14 < $var4.$modCount) {
                        $par0World = new ju_ConcurrentModificationException;
                        $par0World.$suppressionEnabled = 1;
                        $par0World.$writableStackTrace = 1;
                        $rt_throw($par0World);
                    }
                    $var6$index = $var6$index_0 + 1 | 0;
                    $var7 = $var4.$get($var6$index_0);
                    if ($var7.$xPosition1 == $par1 && $var7.$yPosition0 == $par2 && $var7.$zPosition1 == $par3)
                        break;
                    $var6$index_0 = $var6$index;
                }
                return $var7;
            }
        }
        return null;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0World, $par1, $par2, $par3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var7, $var6$index, var$17, $var4, var$19, $var6$index_0, var$21, $ptr);
};
function nms_EntityDamageSource() {
    nms_DamageSource.call(this);
    this.$damageSourceEntity = null;
}
let nms_EntityDamageSource_getEntity = $this => {
    return $this.$damageSourceEntity;
},
nms_EntityDamageSource_getDeathMessage = ($this, $par1EntityLivingBase) => {
    let $var2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16;
    $var2 = $this.$damageSourceEntity;
    $var2 = !($var2 instanceof nms_EntityLivingBase) ? null : $var2.$getHeldItem();
    var$3 = $this.$damageType;
    var$4 = new jl_StringBuilder;
    var$4.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2666));
    var$5 = var$4.$length0;
    if (var$3 === null)
        var$3 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$4, var$5, var$3);
    var$3 = new jl_String;
    var$6 = var$4.$buffer;
    var$7 = var$6.data;
    var$8 = var$4.$length0;
    var$9 = var$7.length;
    if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
        var$3.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
        var$4 = new jl_StringBuilder;
        var$4.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, var$3);
        jl_AbstractStringBuilder_insert(var$4, var$4.$length0, $rt_s(2676));
        var$10 = new jl_String;
        var$6 = var$4.$buffer;
        var$7 = var$6.data;
        var$8 = var$4.$length0;
        var$9 = var$7.length;
        if (var$8 >= 0 && var$8 <= (var$9 - 0 | 0)) {
            a: {
                var$10.$nativeString = $rt_charArrayToString(var$6.data, 0, var$8);
                if ($var2 !== null) {
                    var$11 = $var2.$stackTagCompound;
                    if (var$11 !== null) {
                        b: {
                            var$11 = var$11.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                var$5 = 0;
                                while (true) {
                                    if (var$5 >= $rt_s(918).$nativeString.length)
                                        break b;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                    var$5 = var$5 + 1 | 0;
                                }
                            }
                        }
                        var$5 = $rt_s(918).$hashCode1;
                        var$6 = var$11.$elementData.data;
                        var$11 = var$6[var$5 & (var$6.length - 1 | 0)];
                        while (var$11 !== null) {
                            if (var$11.$origKeyHash == var$5) {
                                c: {
                                    var$12 = var$11.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            var$8 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            var$8 = 0;
                                        else {
                                            var$12 = var$12;
                                            var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!var$8) {
                                            var$8 = 0;
                                            break c;
                                        }
                                    }
                                    var$8 = 1;
                                }
                                if (var$8)
                                    break;
                            }
                            var$11 = var$11.$next3;
                        }
                        if (!(var$11 === null ? 0 : 1))
                            var$5 = 0;
                        else {
                            d: {
                                var$4 = $var2.$stackTagCompound;
                                var$12 = var$4.$tagMap;
                                if (!$rt_s(918).$hashCode1) {
                                    var$5 = 0;
                                    while (true) {
                                        if (var$5 >= $rt_s(918).$nativeString.length)
                                            break d;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                        var$5 = var$5 + 1 | 0;
                                    }
                                }
                            }
                            var$5 = $rt_s(918).$hashCode1;
                            var$6 = var$12.$elementData.data;
                            var$13 = var$6[var$5 & (var$6.length - 1 | 0)];
                            while (var$13 !== null) {
                                if (var$13.$origKeyHash == var$5) {
                                    e: {
                                        var$12 = var$13.$key;
                                        if ($rt_s(918) !== var$12) {
                                            if ($rt_s(918) === var$12)
                                                var$8 = 1;
                                            else if (!(var$12 instanceof jl_String))
                                                var$8 = 0;
                                            else {
                                                var$12 = var$12;
                                                var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                            }
                                            if (!var$8) {
                                                var$8 = 0;
                                                break e;
                                            }
                                        }
                                        var$8 = 1;
                                    }
                                    if (var$8)
                                        break;
                                }
                                var$13 = var$13.$next3;
                            }
                            if (!(var$13 === null ? 0 : 1)) {
                                var$12 = new nms_NBTTagCompound;
                                if ($rt_s(918) !== null)
                                    var$12.$name = $rt_s(918);
                                else
                                    var$12.$name = $rt_s(3);
                                var$4 = new ju_HashMap;
                                var$5 = ju_HashMap_calculateCapacity(16);
                                var$4.$elementCount = 0;
                                var$7 = $rt_createArray(ju_HashMap$HashEntry, var$5);
                                var$6 = var$7.data;
                                var$4.$elementData = var$7;
                                var$4.$loadFactor = 0.75;
                                var$4.$threshold = var$6.length * 0.75 | 0;
                                var$12.$tagMap = var$4;
                            } else {
                                var$4 = var$4.$tagMap;
                                if ($rt_s(918) === null) {
                                    var$4 = var$4.$elementData.data[0];
                                    while (var$4 !== null && var$4.$key !== null) {
                                        var$4 = var$4.$next3;
                                    }
                                } else {
                                    f: {
                                        if (!$rt_s(918).$hashCode1) {
                                            var$5 = 0;
                                            while (true) {
                                                if (var$5 >= $rt_s(918).$nativeString.length)
                                                    break f;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$5) | 0;
                                                var$5 = var$5 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$5 = $rt_s(918).$hashCode1;
                                    var$6 = var$4.$elementData.data;
                                    var$4 = var$6[var$5 & (var$6.length - 1 | 0)];
                                    while (var$4 !== null) {
                                        if (var$4.$origKeyHash == var$5) {
                                            g: {
                                                var$12 = var$4.$key;
                                                if ($rt_s(918) !== var$12) {
                                                    if ($rt_s(918) !== var$12) {
                                                        if (!(var$12 instanceof jl_String))
                                                            var$8 = 0;
                                                        else {
                                                            var$12 = var$12;
                                                            var$8 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                                        }
                                                    } else
                                                        var$8 = 1;
                                                    if (!var$8) {
                                                        var$8 = 0;
                                                        break g;
                                                    }
                                                }
                                                var$8 = 1;
                                            }
                                            if (var$8)
                                                break;
                                        }
                                        var$4 = var$4.$next3;
                                    }
                                }
                                var$12 = var$4 === null ? null : var$4.$value0;
                            }
                            h: {
                                var$11 = var$12.$tagMap;
                                if (!$rt_s(919).$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= $rt_s(919).$nativeString.length)
                                            break h;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = $rt_s(919).$hashCode1;
                            var$6 = var$11.$elementData.data;
                            var$11 = var$6[var$9 & (var$6.length - 1 | 0)];
                            while (var$11 !== null) {
                                if (var$11.$origKeyHash == var$9) {
                                    i: {
                                        var$12 = var$11.$key;
                                        if ($rt_s(919) !== var$12) {
                                            if ($rt_s(919) !== var$12) {
                                                if (var$12 instanceof jl_String) {
                                                    var$12 = var$12;
                                                    var$5 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                                                } else
                                                    var$5 = 0;
                                            } else
                                                var$5 = 1;
                                            if (!var$5) {
                                                var$5 = 0;
                                                break i;
                                            }
                                        }
                                        var$5 = 1;
                                    }
                                    if (var$5)
                                        break;
                                }
                                var$11 = var$11.$next3;
                            }
                            var$5 = var$11 === null ? 0 : 1;
                        }
                    } else
                        var$5 = 0;
                    if (var$5) {
                        nms_StatCollector_$callClinit();
                        if (nms_StringTranslate_isKeyTranslated(nms_StatCollector_localizedName, var$10)) {
                            var$6 = $rt_createArray(jl_Object, 3);
                            var$7 = var$6.data;
                            var$7[0] = $par1EntityLivingBase.$getTranslatedEntityName();
                            var$7[1] = $this.$damageSourceEntity.$getTranslatedEntityName();
                            nms_Item_$callClinit();
                            $par1EntityLivingBase = nms_Item_itemsList.data[$var2.$itemID].$getItemDisplayName($var2);
                            var$3 = $var2.$stackTagCompound;
                            if (var$3 !== null) {
                                j: {
                                    var$3 = var$3.$tagMap;
                                    if (!$rt_s(918).$hashCode1) {
                                        var$8 = 0;
                                        while (true) {
                                            if (var$8 >= $rt_s(918).$nativeString.length)
                                                break j;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                                            var$8 = var$8 + 1 | 0;
                                        }
                                    }
                                }
                                var$14 = $rt_s(918).$hashCode1;
                                var$15 = var$3.$elementData.data;
                                var$3 = var$15[var$14 & (var$15.length - 1 | 0)];
                                while (var$3 !== null) {
                                    if (var$3.$origKeyHash == var$14) {
                                        k: {
                                            var$11 = var$3.$key;
                                            if ($rt_s(918) !== var$11) {
                                                if ($rt_s(918) !== var$11) {
                                                    if (var$11 instanceof jl_String) {
                                                        var$11 = var$11;
                                                        var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                                    } else
                                                        var$8 = 0;
                                                } else
                                                    var$8 = 1;
                                                if (!var$8) {
                                                    var$8 = 0;
                                                    break k;
                                                }
                                            }
                                            var$8 = 1;
                                        }
                                        if (var$8)
                                            break;
                                    }
                                    var$3 = var$3.$next3;
                                }
                                if (var$3 === null ? 0 : 1) {
                                    l: {
                                        $var2 = $var2.$stackTagCompound;
                                        var$4 = $var2.$tagMap;
                                        if (!$rt_s(918).$hashCode1) {
                                            var$8 = 0;
                                            while (true) {
                                                if (var$8 >= $rt_s(918).$nativeString.length)
                                                    break l;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                                                var$8 = var$8 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$14 = $rt_s(918).$hashCode1;
                                    var$15 = var$4.$elementData.data;
                                    var$4 = var$15[var$14 & (var$15.length - 1 | 0)];
                                    while (var$4 !== null) {
                                        if (var$4.$origKeyHash == var$14) {
                                            m: {
                                                var$11 = var$4.$key;
                                                if ($rt_s(918) !== var$11) {
                                                    if ($rt_s(918) === var$11)
                                                        var$8 = 1;
                                                    else if (!(var$11 instanceof jl_String))
                                                        var$8 = 0;
                                                    else {
                                                        var$11 = var$11;
                                                        var$8 = $rt_s(918).$nativeString !== var$11.$nativeString ? 0 : 1;
                                                    }
                                                    if (!var$8) {
                                                        var$8 = 0;
                                                        break m;
                                                    }
                                                }
                                                var$8 = 1;
                                            }
                                            if (var$8)
                                                break;
                                        }
                                        var$4 = var$4.$next3;
                                    }
                                    if (!(var$4 === null ? 0 : 1)) {
                                        var$11 = new nms_NBTTagCompound;
                                        if ($rt_s(918) !== null)
                                            var$11.$name = $rt_s(918);
                                        else
                                            var$11.$name = $rt_s(3);
                                        $var2 = new ju_HashMap;
                                        var$8 = ju_HashMap_calculateCapacity(16);
                                        $var2.$elementCount = 0;
                                        var$16 = $rt_createArray(ju_HashMap$HashEntry, var$8);
                                        var$15 = var$16.data;
                                        $var2.$elementData = var$16;
                                        $var2.$loadFactor = 0.75;
                                        $var2.$threshold = var$15.length * 0.75 | 0;
                                        var$11.$tagMap = $var2;
                                    } else {
                                        $var2 = $var2.$tagMap;
                                        if ($rt_s(918) === null) {
                                            $var2 = $var2.$elementData.data[0];
                                            while ($var2 !== null && $var2.$key !== null) {
                                                $var2 = $var2.$next3;
                                            }
                                        } else {
                                            n: {
                                                if (!$rt_s(918).$hashCode1) {
                                                    var$8 = 0;
                                                    while (true) {
                                                        if (var$8 >= $rt_s(918).$nativeString.length)
                                                            break n;
                                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$8) | 0;
                                                        var$8 = var$8 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$14 = $rt_s(918).$hashCode1;
                                            var$15 = $var2.$elementData.data;
                                            $var2 = var$15[var$14 & (var$15.length - 1 | 0)];
                                            while ($var2 !== null) {
                                                if ($var2.$origKeyHash == var$14) {
                                                    o: {
                                                        var$4 = $var2.$key;
                                                        if ($rt_s(918) !== var$4) {
                                                            if ($rt_s(918) === var$4)
                                                                var$8 = 1;
                                                            else if (!(var$4 instanceof jl_String))
                                                                var$8 = 0;
                                                            else {
                                                                var$4 = var$4;
                                                                var$8 = $rt_s(918).$nativeString !== var$4.$nativeString ? 0 : 1;
                                                            }
                                                            if (!var$8) {
                                                                var$8 = 0;
                                                                break o;
                                                            }
                                                        }
                                                        var$8 = 1;
                                                    }
                                                    if (var$8)
                                                        break;
                                                }
                                                $var2 = $var2.$next3;
                                            }
                                        }
                                        var$11 = $var2 === null ? null : $var2.$value0;
                                    }
                                    p: {
                                        var$3 = var$11.$tagMap;
                                        if (!$rt_s(919).$hashCode1) {
                                            var$8 = 0;
                                            while (true) {
                                                if (var$8 >= $rt_s(919).$nativeString.length)
                                                    break p;
                                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                                                var$8 = var$8 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$14 = $rt_s(919).$hashCode1;
                                    var$15 = var$3.$elementData.data;
                                    var$3 = var$15[var$14 & (var$15.length - 1 | 0)];
                                    while (var$3 !== null) {
                                        if (var$3.$origKeyHash == var$14) {
                                            q: {
                                                var$4 = var$3.$key;
                                                if ($rt_s(919) !== var$4) {
                                                    if ($rt_s(919) === var$4)
                                                        var$8 = 1;
                                                    else if (!(var$4 instanceof jl_String))
                                                        var$8 = 0;
                                                    else {
                                                        var$4 = var$4;
                                                        var$8 = $rt_s(919).$nativeString !== var$4.$nativeString ? 0 : 1;
                                                    }
                                                    if (!var$8) {
                                                        var$8 = 0;
                                                        break q;
                                                    }
                                                }
                                                var$8 = 1;
                                            }
                                            if (var$8)
                                                break;
                                        }
                                        var$3 = var$3.$next3;
                                    }
                                    if (var$3 === null ? 0 : 1) {
                                        r: {
                                            $var2 = var$11.$tagMap;
                                            if (!$rt_s(919).$hashCode1) {
                                                var$8 = 0;
                                                while (true) {
                                                    if (var$8 >= $rt_s(919).$nativeString.length)
                                                        break r;
                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                                                    var$8 = var$8 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$14 = $rt_s(919).$hashCode1;
                                        var$15 = $var2.$elementData.data;
                                        $var2 = var$15[var$14 & (var$15.length - 1 | 0)];
                                        while ($var2 !== null) {
                                            if ($var2.$origKeyHash == var$14) {
                                                s: {
                                                    var$3 = $var2.$key;
                                                    if ($rt_s(919) !== var$3) {
                                                        if ($rt_s(919) === var$3)
                                                            var$8 = 1;
                                                        else if (!(var$3 instanceof jl_String))
                                                            var$8 = 0;
                                                        else {
                                                            var$3 = var$3;
                                                            var$8 = $rt_s(919).$nativeString !== var$3.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$8) {
                                                            var$8 = 0;
                                                            break s;
                                                        }
                                                    }
                                                    var$8 = 1;
                                                }
                                                if (var$8)
                                                    break;
                                            }
                                            $var2 = $var2.$next3;
                                        }
                                        if (!($var2 === null ? 0 : 1))
                                            $par1EntityLivingBase = $rt_s(3);
                                        else {
                                            $var2 = var$11.$tagMap;
                                            if ($rt_s(919) === null) {
                                                $var2 = $var2.$elementData.data[0];
                                                while ($var2 !== null && $var2.$key !== null) {
                                                    $var2 = $var2.$next3;
                                                }
                                            } else {
                                                t: {
                                                    if (!$rt_s(919).$hashCode1) {
                                                        var$8 = 0;
                                                        while (true) {
                                                            if (var$8 >= $rt_s(919).$nativeString.length)
                                                                break t;
                                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$8) | 0;
                                                            var$8 = var$8 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$14 = $rt_s(919).$hashCode1;
                                                var$15 = $var2.$elementData.data;
                                                $var2 = var$15[var$14 & (var$15.length - 1 | 0)];
                                                while ($var2 !== null) {
                                                    if ($var2.$origKeyHash == var$14) {
                                                        u: {
                                                            var$3 = $var2.$key;
                                                            if ($rt_s(919) !== var$3) {
                                                                if ($rt_s(919) === var$3)
                                                                    var$8 = 1;
                                                                else if (!(var$3 instanceof jl_String))
                                                                    var$8 = 0;
                                                                else {
                                                                    var$3 = var$3;
                                                                    var$8 = $rt_s(919).$nativeString !== var$3.$nativeString ? 0 : 1;
                                                                }
                                                                if (!var$8) {
                                                                    var$8 = 0;
                                                                    break u;
                                                                }
                                                            }
                                                            var$8 = 1;
                                                        }
                                                        if (var$8)
                                                            break;
                                                    }
                                                    $var2 = $var2.$next3;
                                                }
                                            }
                                            $par1EntityLivingBase = ($var2 === null ? null : $var2.$value0).$data1;
                                        }
                                    }
                                }
                            }
                            var$7[2] = $par1EntityLivingBase;
                            $par1EntityLivingBase = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$10, var$6);
                            break a;
                        }
                    }
                }
                var$6 = $rt_wrapArray(jl_Object, [$par1EntityLivingBase.$getTranslatedEntityName(), $this.$damageSourceEntity.$getTranslatedEntityName()]);
                nms_StatCollector_$callClinit();
                $par1EntityLivingBase = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$3, var$6);
            }
            return $par1EntityLivingBase;
        }
        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
        $par1EntityLivingBase.$suppressionEnabled = 1;
        $par1EntityLivingBase.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1EntityLivingBase);
        $rt_throw($par1EntityLivingBase);
    }
    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
    $par1EntityLivingBase.$suppressionEnabled = 1;
    $par1EntityLivingBase.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1EntityLivingBase);
    $rt_throw($par1EntityLivingBase);
},
nms_EntityDamageSource_isDifficultyScaled = $this => {
    let var$1;
    var$1 = $this.$damageSourceEntity;
    return var$1 !== null && var$1 instanceof nms_EntityLivingBase && !(var$1 instanceof nms_EntityPlayer) ? 1 : 0;
};
function nms_EntityDamageSourceIndirect() {
    nms_EntityDamageSource.call(this);
    this.$indirectEntity = null;
}
let nms_EntityDamageSourceIndirect_getSourceOfDamage = $this => {
    return $this.$damageSourceEntity;
},
nms_EntityDamageSourceIndirect_getEntity = $this => {
    return $this.$indirectEntity;
},
nms_EntityDamageSourceIndirect_getDeathMessage = ($this, $par1EntityLivingBase) => {
    let $var2, $var3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15;
    $var2 = $this.$indirectEntity;
    $var2 = $var2 !== null ? $var2.$getTranslatedEntityName() : $this.$damageSourceEntity.$getTranslatedEntityName();
    $var3 = $this.$indirectEntity;
    $var3 = !($var3 instanceof nms_EntityLivingBase) ? null : $var3.$getHeldItem();
    var$4 = $this.$damageType;
    var$5 = new jl_StringBuilder;
    var$5.$buffer = $rt_createCharArray(16);
    jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(2666));
    var$6 = var$5.$length0;
    if (var$4 === null)
        var$4 = $rt_s(1);
    jl_AbstractStringBuilder_insert(var$5, var$6, var$4);
    var$7 = new jl_String;
    var$8 = var$5.$buffer;
    var$9 = var$8.data;
    var$10 = var$5.$length0;
    var$11 = var$9.length;
    if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
        var$7.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
        var$5 = new jl_StringBuilder;
        var$5.$buffer = $rt_createCharArray(16);
        jl_AbstractStringBuilder_insert(var$5, var$5.$length0, var$7);
        jl_AbstractStringBuilder_insert(var$5, var$5.$length0, $rt_s(2676));
        var$4 = new jl_String;
        var$8 = var$5.$buffer;
        var$9 = var$8.data;
        var$10 = var$5.$length0;
        var$11 = var$9.length;
        if (var$10 >= 0 && var$10 <= (var$11 - 0 | 0)) {
            a: {
                var$4.$nativeString = $rt_charArrayToString(var$8.data, 0, var$10);
                if ($var3 !== null) {
                    var$5 = $var3.$stackTagCompound;
                    if (var$5 !== null) {
                        b: {
                            var$5 = var$5.$tagMap;
                            if (!$rt_s(918).$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= $rt_s(918).$nativeString.length)
                                        break b;
                                    $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        var$11 = $rt_s(918).$hashCode1;
                        var$8 = var$5.$elementData.data;
                        var$5 = var$8[var$11 & (var$8.length - 1 | 0)];
                        while (var$5 !== null) {
                            if (var$5.$origKeyHash == var$11) {
                                c: {
                                    var$12 = var$5.$key;
                                    if ($rt_s(918) !== var$12) {
                                        if ($rt_s(918) === var$12)
                                            var$6 = 1;
                                        else if (!(var$12 instanceof jl_String))
                                            var$6 = 0;
                                        else {
                                            var$12 = var$12;
                                            var$6 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                        }
                                        if (!var$6) {
                                            var$6 = 0;
                                            break c;
                                        }
                                    }
                                    var$6 = 1;
                                }
                                if (var$6)
                                    break;
                            }
                            var$5 = var$5.$next3;
                        }
                        if (!(var$5 === null ? 0 : 1))
                            var$6 = 0;
                        else {
                            d: {
                                var$13 = $var3.$stackTagCompound;
                                var$5 = var$13.$tagMap;
                                if (!$rt_s(918).$hashCode1) {
                                    var$6 = 0;
                                    while (true) {
                                        if (var$6 >= $rt_s(918).$nativeString.length)
                                            break d;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                        var$6 = var$6 + 1 | 0;
                                    }
                                }
                            }
                            var$11 = $rt_s(918).$hashCode1;
                            var$8 = var$5.$elementData.data;
                            var$5 = var$8[var$11 & (var$8.length - 1 | 0)];
                            while (var$5 !== null) {
                                if (var$5.$origKeyHash == var$11) {
                                    e: {
                                        var$12 = var$5.$key;
                                        if ($rt_s(918) !== var$12) {
                                            if ($rt_s(918) === var$12)
                                                var$6 = 1;
                                            else if (!(var$12 instanceof jl_String))
                                                var$6 = 0;
                                            else {
                                                var$12 = var$12;
                                                var$6 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                            }
                                            if (!var$6) {
                                                var$6 = 0;
                                                break e;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                var$5 = var$5.$next3;
                            }
                            if (!(var$5 === null ? 0 : 1)) {
                                var$5 = new nms_NBTTagCompound;
                                if ($rt_s(918) !== null)
                                    var$5.$name = $rt_s(918);
                                else
                                    var$5.$name = $rt_s(3);
                                var$12 = new ju_HashMap;
                                var$6 = ju_HashMap_calculateCapacity(16);
                                var$12.$elementCount = 0;
                                var$9 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                                var$8 = var$9.data;
                                var$12.$elementData = var$9;
                                var$12.$loadFactor = 0.75;
                                var$12.$threshold = var$8.length * 0.75 | 0;
                                var$5.$tagMap = var$12;
                            } else {
                                var$5 = var$13.$tagMap;
                                if ($rt_s(918) === null) {
                                    var$5 = var$5.$elementData.data[0];
                                    while (var$5 !== null && var$5.$key !== null) {
                                        var$5 = var$5.$next3;
                                    }
                                } else {
                                    f: {
                                        if (!$rt_s(918).$hashCode1) {
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $rt_s(918).$nativeString.length)
                                                    break f;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$11 = $rt_s(918).$hashCode1;
                                    var$8 = var$5.$elementData.data;
                                    var$5 = var$8[var$11 & (var$8.length - 1 | 0)];
                                    while (var$5 !== null) {
                                        if (var$5.$origKeyHash == var$11) {
                                            g: {
                                                var$12 = var$5.$key;
                                                if ($rt_s(918) !== var$12) {
                                                    if ($rt_s(918) !== var$12) {
                                                        if (!(var$12 instanceof jl_String))
                                                            var$6 = 0;
                                                        else {
                                                            var$12 = var$12;
                                                            var$6 = $rt_s(918).$nativeString !== var$12.$nativeString ? 0 : 1;
                                                        }
                                                    } else
                                                        var$6 = 1;
                                                    if (!var$6) {
                                                        var$6 = 0;
                                                        break g;
                                                    }
                                                }
                                                var$6 = 1;
                                            }
                                            if (var$6)
                                                break;
                                        }
                                        var$5 = var$5.$next3;
                                    }
                                }
                                var$5 = var$5 === null ? null : var$5.$value0;
                            }
                            h: {
                                var$5 = var$5.$tagMap;
                                if (!$rt_s(919).$hashCode1) {
                                    var$6 = 0;
                                    while (true) {
                                        if (var$6 >= $rt_s(919).$nativeString.length)
                                            break h;
                                        $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                        var$6 = var$6 + 1 | 0;
                                    }
                                }
                            }
                            var$10 = $rt_s(919).$hashCode1;
                            var$8 = var$5.$elementData.data;
                            var$5 = var$8[var$10 & (var$8.length - 1 | 0)];
                            while (var$5 !== null) {
                                if (var$5.$origKeyHash == var$10) {
                                    i: {
                                        var$12 = var$5.$key;
                                        if ($rt_s(919) !== var$12) {
                                            if ($rt_s(919) !== var$12) {
                                                if (var$12 instanceof jl_String) {
                                                    var$12 = var$12;
                                                    var$6 = $rt_s(919).$nativeString !== var$12.$nativeString ? 0 : 1;
                                                } else
                                                    var$6 = 0;
                                            } else
                                                var$6 = 1;
                                            if (!var$6) {
                                                var$6 = 0;
                                                break i;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                var$5 = var$5.$next3;
                            }
                            var$6 = var$5 === null ? 0 : 1;
                        }
                    } else
                        var$6 = 0;
                    if (var$6) {
                        nms_StatCollector_$callClinit();
                        if (nms_StringTranslate_isKeyTranslated(nms_StatCollector_localizedName, var$4)) {
                            var$8 = $rt_createArray(jl_Object, 3);
                            var$9 = var$8.data;
                            var$9[0] = $par1EntityLivingBase.$getTranslatedEntityName();
                            var$9[1] = $var2;
                            nms_Item_$callClinit();
                            var$12 = nms_Item_itemsList.data[$var3.$itemID].$getItemDisplayName($var3);
                            $par1EntityLivingBase = $var3.$stackTagCompound;
                            if ($par1EntityLivingBase !== null) {
                                j: {
                                    $par1EntityLivingBase = $par1EntityLivingBase.$tagMap;
                                    if (!$rt_s(918).$hashCode1) {
                                        var$6 = 0;
                                        while (true) {
                                            if (var$6 >= $rt_s(918).$nativeString.length)
                                                break j;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                            var$6 = var$6 + 1 | 0;
                                        }
                                    }
                                }
                                var$11 = $rt_s(918).$hashCode1;
                                var$14 = $par1EntityLivingBase.$elementData.data;
                                $par1EntityLivingBase = var$14[var$11 & (var$14.length - 1 | 0)];
                                while ($par1EntityLivingBase !== null) {
                                    if ($par1EntityLivingBase.$origKeyHash == var$11) {
                                        k: {
                                            $var2 = $par1EntityLivingBase.$key;
                                            if ($rt_s(918) !== $var2) {
                                                if ($rt_s(918) !== $var2) {
                                                    if ($var2 instanceof jl_String) {
                                                        $var2 = $var2;
                                                        var$6 = $rt_s(918).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                    } else
                                                        var$6 = 0;
                                                } else
                                                    var$6 = 1;
                                                if (!var$6) {
                                                    var$6 = 0;
                                                    break k;
                                                }
                                            }
                                            var$6 = 1;
                                        }
                                        if (var$6)
                                            break;
                                    }
                                    $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                }
                                if ($par1EntityLivingBase === null ? 0 : 1) {
                                    l: {
                                        var$5 = $var3.$stackTagCompound;
                                        $par1EntityLivingBase = var$5.$tagMap;
                                        if (!$rt_s(918).$hashCode1) {
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $rt_s(918).$nativeString.length)
                                                    break l;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$11 = $rt_s(918).$hashCode1;
                                    var$14 = $par1EntityLivingBase.$elementData.data;
                                    $par1EntityLivingBase = var$14[var$11 & (var$14.length - 1 | 0)];
                                    while ($par1EntityLivingBase !== null) {
                                        if ($par1EntityLivingBase.$origKeyHash == var$11) {
                                            m: {
                                                $var2 = $par1EntityLivingBase.$key;
                                                if ($rt_s(918) !== $var2) {
                                                    if ($rt_s(918) === $var2)
                                                        var$6 = 1;
                                                    else if (!($var2 instanceof jl_String))
                                                        var$6 = 0;
                                                    else {
                                                        $var2 = $var2;
                                                        var$6 = $rt_s(918).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                    }
                                                    if (!var$6) {
                                                        var$6 = 0;
                                                        break m;
                                                    }
                                                }
                                                var$6 = 1;
                                            }
                                            if (var$6)
                                                break;
                                        }
                                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                    }
                                    if (!($par1EntityLivingBase === null ? 0 : 1)) {
                                        $var3 = new nms_NBTTagCompound;
                                        if ($rt_s(918) !== null)
                                            $var3.$name = $rt_s(918);
                                        else
                                            $var3.$name = $rt_s(3);
                                        $par1EntityLivingBase = new ju_HashMap;
                                        var$6 = ju_HashMap_calculateCapacity(16);
                                        $par1EntityLivingBase.$elementCount = 0;
                                        var$15 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                                        var$14 = var$15.data;
                                        $par1EntityLivingBase.$elementData = var$15;
                                        $par1EntityLivingBase.$loadFactor = 0.75;
                                        $par1EntityLivingBase.$threshold = var$14.length * 0.75 | 0;
                                        $var3.$tagMap = $par1EntityLivingBase;
                                    } else {
                                        $par1EntityLivingBase = var$5.$tagMap;
                                        if ($rt_s(918) === null) {
                                            $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
                                            while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                                                $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                            }
                                        } else {
                                            n: {
                                                if (!$rt_s(918).$hashCode1) {
                                                    var$6 = 0;
                                                    while (true) {
                                                        if (var$6 >= $rt_s(918).$nativeString.length)
                                                            break n;
                                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt(var$6) | 0;
                                                        var$6 = var$6 + 1 | 0;
                                                    }
                                                }
                                            }
                                            var$11 = $rt_s(918).$hashCode1;
                                            var$14 = $par1EntityLivingBase.$elementData.data;
                                            $par1EntityLivingBase = var$14[var$11 & (var$14.length - 1 | 0)];
                                            while ($par1EntityLivingBase !== null) {
                                                if ($par1EntityLivingBase.$origKeyHash == var$11) {
                                                    o: {
                                                        $var2 = $par1EntityLivingBase.$key;
                                                        if ($rt_s(918) !== $var2) {
                                                            if ($rt_s(918) === $var2)
                                                                var$6 = 1;
                                                            else if (!($var2 instanceof jl_String))
                                                                var$6 = 0;
                                                            else {
                                                                $var2 = $var2;
                                                                var$6 = $rt_s(918).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                            }
                                                            if (!var$6) {
                                                                var$6 = 0;
                                                                break o;
                                                            }
                                                        }
                                                        var$6 = 1;
                                                    }
                                                    if (var$6)
                                                        break;
                                                }
                                                $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                            }
                                        }
                                        $var3 = $par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0;
                                    }
                                    p: {
                                        $par1EntityLivingBase = $var3.$tagMap;
                                        if (!$rt_s(919).$hashCode1) {
                                            var$6 = 0;
                                            while (true) {
                                                if (var$6 >= $rt_s(919).$nativeString.length)
                                                    break p;
                                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                var$6 = var$6 + 1 | 0;
                                            }
                                        }
                                    }
                                    var$11 = $rt_s(919).$hashCode1;
                                    var$14 = $par1EntityLivingBase.$elementData.data;
                                    $par1EntityLivingBase = var$14[var$11 & (var$14.length - 1 | 0)];
                                    while ($par1EntityLivingBase !== null) {
                                        if ($par1EntityLivingBase.$origKeyHash == var$11) {
                                            q: {
                                                $var2 = $par1EntityLivingBase.$key;
                                                if ($rt_s(919) !== $var2) {
                                                    if ($rt_s(919) === $var2)
                                                        var$6 = 1;
                                                    else if (!($var2 instanceof jl_String))
                                                        var$6 = 0;
                                                    else {
                                                        $var2 = $var2;
                                                        var$6 = $rt_s(919).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                    }
                                                    if (!var$6) {
                                                        var$6 = 0;
                                                        break q;
                                                    }
                                                }
                                                var$6 = 1;
                                            }
                                            if (var$6)
                                                break;
                                        }
                                        $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                    }
                                    if ($par1EntityLivingBase === null ? 0 : 1) {
                                        r: {
                                            $par1EntityLivingBase = $var3.$tagMap;
                                            if (!$rt_s(919).$hashCode1) {
                                                var$6 = 0;
                                                while (true) {
                                                    if (var$6 >= $rt_s(919).$nativeString.length)
                                                        break r;
                                                    $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                    var$6 = var$6 + 1 | 0;
                                                }
                                            }
                                        }
                                        var$11 = $rt_s(919).$hashCode1;
                                        var$14 = $par1EntityLivingBase.$elementData.data;
                                        $par1EntityLivingBase = var$14[var$11 & (var$14.length - 1 | 0)];
                                        while ($par1EntityLivingBase !== null) {
                                            if ($par1EntityLivingBase.$origKeyHash == var$11) {
                                                s: {
                                                    $var2 = $par1EntityLivingBase.$key;
                                                    if ($rt_s(919) !== $var2) {
                                                        if ($rt_s(919) === $var2)
                                                            var$6 = 1;
                                                        else if (!($var2 instanceof jl_String))
                                                            var$6 = 0;
                                                        else {
                                                            $var2 = $var2;
                                                            var$6 = $rt_s(919).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                        }
                                                        if (!var$6) {
                                                            var$6 = 0;
                                                            break s;
                                                        }
                                                    }
                                                    var$6 = 1;
                                                }
                                                if (var$6)
                                                    break;
                                            }
                                            $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                        }
                                        if (!($par1EntityLivingBase === null ? 0 : 1))
                                            var$12 = $rt_s(3);
                                        else {
                                            $par1EntityLivingBase = $var3.$tagMap;
                                            if ($rt_s(919) === null) {
                                                $par1EntityLivingBase = $par1EntityLivingBase.$elementData.data[0];
                                                while ($par1EntityLivingBase !== null && $par1EntityLivingBase.$key !== null) {
                                                    $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                                }
                                            } else {
                                                t: {
                                                    if (!$rt_s(919).$hashCode1) {
                                                        var$6 = 0;
                                                        while (true) {
                                                            if (var$6 >= $rt_s(919).$nativeString.length)
                                                                break t;
                                                            $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt(var$6) | 0;
                                                            var$6 = var$6 + 1 | 0;
                                                        }
                                                    }
                                                }
                                                var$11 = $rt_s(919).$hashCode1;
                                                var$14 = $par1EntityLivingBase.$elementData.data;
                                                $par1EntityLivingBase = var$14[var$11 & (var$14.length - 1 | 0)];
                                                while ($par1EntityLivingBase !== null) {
                                                    if ($par1EntityLivingBase.$origKeyHash == var$11) {
                                                        u: {
                                                            $var2 = $par1EntityLivingBase.$key;
                                                            if ($rt_s(919) !== $var2) {
                                                                if ($rt_s(919) === $var2)
                                                                    var$6 = 1;
                                                                else if (!($var2 instanceof jl_String))
                                                                    var$6 = 0;
                                                                else {
                                                                    $var2 = $var2;
                                                                    var$6 = $rt_s(919).$nativeString !== $var2.$nativeString ? 0 : 1;
                                                                }
                                                                if (!var$6) {
                                                                    var$6 = 0;
                                                                    break u;
                                                                }
                                                            }
                                                            var$6 = 1;
                                                        }
                                                        if (var$6)
                                                            break;
                                                    }
                                                    $par1EntityLivingBase = $par1EntityLivingBase.$next3;
                                                }
                                            }
                                            var$12 = ($par1EntityLivingBase === null ? null : $par1EntityLivingBase.$value0).$data1;
                                        }
                                    }
                                }
                            }
                            var$9[2] = var$12;
                            $par1EntityLivingBase = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$4, var$8);
                            break a;
                        }
                    }
                }
                var$8 = $rt_wrapArray(jl_Object, [$par1EntityLivingBase.$getTranslatedEntityName(), $var2]);
                nms_StatCollector_$callClinit();
                $par1EntityLivingBase = nms_StringTranslate_translateKeyFormat(nms_StatCollector_localizedName, var$7, var$8);
            }
            return $par1EntityLivingBase;
        }
        $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
        $par1EntityLivingBase.$suppressionEnabled = 1;
        $par1EntityLivingBase.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1EntityLivingBase);
        $rt_throw($par1EntityLivingBase);
    }
    $par1EntityLivingBase = new jl_IndexOutOfBoundsException;
    $par1EntityLivingBase.$suppressionEnabled = 1;
    $par1EntityLivingBase.$writableStackTrace = 1;
    jl_Throwable_fillInStackTrace($par1EntityLivingBase);
    $rt_throw($par1EntityLivingBase);
};
function nms_EnumFacing() {
    let a = this; jl_Enum.call(a);
    a.$order_a = 0;
    a.$order_b = 0;
    a.$frontOffsetX = 0;
    a.$frontOffsetY = 0;
    a.$frontOffsetZ = 0;
}
let nms_EnumFacing_DOWN = null,
nms_EnumFacing_UP = null,
nms_EnumFacing_NORTH = null,
nms_EnumFacing_SOUTH = null,
nms_EnumFacing_EAST = null,
nms_EnumFacing_WEST = null,
nms_EnumFacing_faceList = null,
nms_EnumFacing_$VALUES = null,
nms_EnumFacing_values = () => {
    return nms_EnumFacing_$VALUES.$clone0();
},
nms_EnumFacing_$values = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_EnumFacing, 6);
    var$2 = var$1.data;
    var$2[0] = nms_EnumFacing_DOWN;
    var$2[1] = nms_EnumFacing_UP;
    var$2[2] = nms_EnumFacing_NORTH;
    var$2[3] = nms_EnumFacing_SOUTH;
    var$2[4] = nms_EnumFacing_EAST;
    var$2[5] = nms_EnumFacing_WEST;
    return var$1;
},
nms_EnumFacing__clinit_ = () => {
    let $var3, var$2, var$3, var$4, $var1, $var2;
    $var3 = new nms_EnumFacing;
    $var3.$name0 = $rt_s(1601);
    $var3.$ordinal = 0;
    $var3.$order_a = 0;
    $var3.$order_b = 1;
    $var3.$frontOffsetX = 0;
    $var3.$frontOffsetY = (-1);
    $var3.$frontOffsetZ = 0;
    nms_EnumFacing_DOWN = $var3;
    $var3 = new nms_EnumFacing;
    $var3.$name0 = $rt_s(1600);
    $var3.$ordinal = 1;
    $var3.$order_a = 1;
    $var3.$order_b = 0;
    $var3.$frontOffsetX = 0;
    $var3.$frontOffsetY = 1;
    $var3.$frontOffsetZ = 0;
    nms_EnumFacing_UP = $var3;
    $var3 = new nms_EnumFacing;
    $var3.$name0 = $rt_s(2440);
    $var3.$ordinal = 2;
    $var3.$order_a = 2;
    $var3.$order_b = 3;
    $var3.$frontOffsetX = 0;
    $var3.$frontOffsetY = 0;
    $var3.$frontOffsetZ = (-1);
    nms_EnumFacing_NORTH = $var3;
    $var3 = new nms_EnumFacing;
    $var3.$name0 = $rt_s(2441);
    $var3.$ordinal = 3;
    $var3.$order_a = 3;
    $var3.$order_b = 2;
    $var3.$frontOffsetX = 0;
    $var3.$frontOffsetY = 0;
    $var3.$frontOffsetZ = 1;
    nms_EnumFacing_SOUTH = $var3;
    $var3 = new nms_EnumFacing;
    $var3.$name0 = $rt_s(2443);
    $var3.$ordinal = 4;
    $var3.$order_a = 4;
    $var3.$order_b = 5;
    $var3.$frontOffsetX = (-1);
    $var3.$frontOffsetY = 0;
    $var3.$frontOffsetZ = 0;
    nms_EnumFacing_EAST = $var3;
    $var3 = new nms_EnumFacing;
    $var3.$name0 = $rt_s(2442);
    $var3.$ordinal = 5;
    $var3.$order_a = 5;
    $var3.$order_b = 4;
    $var3.$frontOffsetX = 1;
    $var3.$frontOffsetY = 0;
    $var3.$frontOffsetZ = 0;
    nms_EnumFacing_WEST = $var3;
    var$2 = nms_EnumFacing_$values();
    nms_EnumFacing_$VALUES = var$2;
    var$3 = $rt_createArray(nms_EnumFacing, 6);
    var$4 = var$3.data;
    nms_EnumFacing_faceList = var$3;
    var$2 = (var$2.$clone0()).data;
    $var1 = var$2.length;
    $var2 = 0;
    while ($var2 < $var1) {
        $var3 = var$2[$var2];
        var$4[$var3.$order_a] = $var3;
        $var2 = $var2 + 1 | 0;
    }
};
function ju_AbstractMap$KeySet$1() {
    let a = this; jl_Object.call(a);
    a.$val$it = null;
    a.$this$1 = null;
}
let ju_AbstractMap$KeySet$1_hasNext = $this => {
    return $this.$val$it.$depth <= 0 ? 0 : 1;
},
ju_AbstractMap$KeySet$1_next = $this => {
    return (ju_TreeMap$EntryIterator_next($this.$val$it)).$key0;
},
ju_AbstractMap$KeySet$1_remove = $this => {
    ju_TreeMap$EntryIterator_remove($this.$val$it);
};
function nms_Packet44UpdateAttributesSnapshot() {
    let a = this; jl_Object.call(a);
    a.$field_142043_b = null;
    a.$field_142044_c = 0.0;
    a.$field_142042_d = null;
    a.$field_142045_a = null;
}
function nms_EnumArt() {
    let a = this; jl_Enum.call(a);
    a.$title = null;
    a.$sizeX = 0;
    a.$sizeY = 0;
    a.$offsetX = 0;
    a.$offsetY = 0;
}
let nms_EnumArt_Kebab = null,
nms_EnumArt_Aztec = null,
nms_EnumArt_Alban = null,
nms_EnumArt_Aztec2 = null,
nms_EnumArt_Bomb = null,
nms_EnumArt_Plant = null,
nms_EnumArt_Wasteland = null,
nms_EnumArt_Pool = null,
nms_EnumArt_Courbet = null,
nms_EnumArt_Sea = null,
nms_EnumArt_Sunset = null,
nms_EnumArt_Creebet = null,
nms_EnumArt_Wanderer = null,
nms_EnumArt_Graham = null,
nms_EnumArt_Match = null,
nms_EnumArt_Bust = null,
nms_EnumArt_Stage = null,
nms_EnumArt_Void = null,
nms_EnumArt_SkullAndRoses = null,
nms_EnumArt_Wither = null,
nms_EnumArt_Fighters = null,
nms_EnumArt_Pointer = null,
nms_EnumArt_Pigscene = null,
nms_EnumArt_BurningSkull = null,
nms_EnumArt_Skeleton = null,
nms_EnumArt_DonkeyKong = null,
nms_EnumArt_maxArtTitleLength = 0,
nms_EnumArt_$VALUES = null,
nms_EnumArt_values = () => {
    return nms_EnumArt_$VALUES.$clone0();
},
nms_EnumArt_$values = () => {
    let var$1, var$2;
    var$1 = $rt_createArray(nms_EnumArt, 26);
    var$2 = var$1.data;
    var$2[0] = nms_EnumArt_Kebab;
    var$2[1] = nms_EnumArt_Aztec;
    var$2[2] = nms_EnumArt_Alban;
    var$2[3] = nms_EnumArt_Aztec2;
    var$2[4] = nms_EnumArt_Bomb;
    var$2[5] = nms_EnumArt_Plant;
    var$2[6] = nms_EnumArt_Wasteland;
    var$2[7] = nms_EnumArt_Pool;
    var$2[8] = nms_EnumArt_Courbet;
    var$2[9] = nms_EnumArt_Sea;
    var$2[10] = nms_EnumArt_Sunset;
    var$2[11] = nms_EnumArt_Creebet;
    var$2[12] = nms_EnumArt_Wanderer;
    var$2[13] = nms_EnumArt_Graham;
    var$2[14] = nms_EnumArt_Match;
    var$2[15] = nms_EnumArt_Bust;
    var$2[16] = nms_EnumArt_Stage;
    var$2[17] = nms_EnumArt_Void;
    var$2[18] = nms_EnumArt_SkullAndRoses;
    var$2[19] = nms_EnumArt_Wither;
    var$2[20] = nms_EnumArt_Fighters;
    var$2[21] = nms_EnumArt_Pointer;
    var$2[22] = nms_EnumArt_Pigscene;
    var$2[23] = nms_EnumArt_BurningSkull;
    var$2[24] = nms_EnumArt_Skeleton;
    var$2[25] = nms_EnumArt_DonkeyKong;
    return var$1;
},
nms_EnumArt__clinit_ = () => {
    let var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2677);
    var$1.$ordinal = 0;
    var$1.$title = $rt_s(2677);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 0;
    var$1.$offsetY = 0;
    nms_EnumArt_Kebab = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2678);
    var$1.$ordinal = 1;
    var$1.$title = $rt_s(2678);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 16;
    var$1.$offsetY = 0;
    nms_EnumArt_Aztec = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2679);
    var$1.$ordinal = 2;
    var$1.$title = $rt_s(2679);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 32;
    var$1.$offsetY = 0;
    nms_EnumArt_Alban = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2680);
    var$1.$ordinal = 3;
    var$1.$title = $rt_s(2680);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 48;
    var$1.$offsetY = 0;
    nms_EnumArt_Aztec2 = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2681);
    var$1.$ordinal = 4;
    var$1.$title = $rt_s(2681);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 64;
    var$1.$offsetY = 0;
    nms_EnumArt_Bomb = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2682);
    var$1.$ordinal = 5;
    var$1.$title = $rt_s(2682);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 80;
    var$1.$offsetY = 0;
    nms_EnumArt_Plant = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2683);
    var$1.$ordinal = 6;
    var$1.$title = $rt_s(2683);
    var$1.$sizeX = 16;
    var$1.$sizeY = 16;
    var$1.$offsetX = 96;
    var$1.$offsetY = 0;
    nms_EnumArt_Wasteland = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2684);
    var$1.$ordinal = 7;
    var$1.$title = $rt_s(2684);
    var$1.$sizeX = 32;
    var$1.$sizeY = 16;
    var$1.$offsetX = 0;
    var$1.$offsetY = 32;
    nms_EnumArt_Pool = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2685);
    var$1.$ordinal = 8;
    var$1.$title = $rt_s(2685);
    var$1.$sizeX = 32;
    var$1.$sizeY = 16;
    var$1.$offsetX = 32;
    var$1.$offsetY = 32;
    nms_EnumArt_Courbet = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2686);
    var$1.$ordinal = 9;
    var$1.$title = $rt_s(2686);
    var$1.$sizeX = 32;
    var$1.$sizeY = 16;
    var$1.$offsetX = 64;
    var$1.$offsetY = 32;
    nms_EnumArt_Sea = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2687);
    var$1.$ordinal = 10;
    var$1.$title = $rt_s(2687);
    var$1.$sizeX = 32;
    var$1.$sizeY = 16;
    var$1.$offsetX = 96;
    var$1.$offsetY = 32;
    nms_EnumArt_Sunset = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2688);
    var$1.$ordinal = 11;
    var$1.$title = $rt_s(2688);
    var$1.$sizeX = 32;
    var$1.$sizeY = 16;
    var$1.$offsetX = 128;
    var$1.$offsetY = 32;
    nms_EnumArt_Creebet = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2689);
    var$1.$ordinal = 12;
    var$1.$title = $rt_s(2689);
    var$1.$sizeX = 16;
    var$1.$sizeY = 32;
    var$1.$offsetX = 0;
    var$1.$offsetY = 64;
    nms_EnumArt_Wanderer = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2690);
    var$1.$ordinal = 13;
    var$1.$title = $rt_s(2690);
    var$1.$sizeX = 16;
    var$1.$sizeY = 32;
    var$1.$offsetX = 16;
    var$1.$offsetY = 64;
    nms_EnumArt_Graham = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2691);
    var$1.$ordinal = 14;
    var$1.$title = $rt_s(2691);
    var$1.$sizeX = 32;
    var$1.$sizeY = 32;
    var$1.$offsetX = 0;
    var$1.$offsetY = 128;
    nms_EnumArt_Match = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2692);
    var$1.$ordinal = 15;
    var$1.$title = $rt_s(2692);
    var$1.$sizeX = 32;
    var$1.$sizeY = 32;
    var$1.$offsetX = 32;
    var$1.$offsetY = 128;
    nms_EnumArt_Bust = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2693);
    var$1.$ordinal = 16;
    var$1.$title = $rt_s(2693);
    var$1.$sizeX = 32;
    var$1.$sizeY = 32;
    var$1.$offsetX = 64;
    var$1.$offsetY = 128;
    nms_EnumArt_Stage = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2694);
    var$1.$ordinal = 17;
    var$1.$title = $rt_s(2694);
    var$1.$sizeX = 32;
    var$1.$sizeY = 32;
    var$1.$offsetX = 96;
    var$1.$offsetY = 128;
    nms_EnumArt_Void = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2695);
    var$1.$ordinal = 18;
    var$1.$title = $rt_s(2695);
    var$1.$sizeX = 32;
    var$1.$sizeY = 32;
    var$1.$offsetX = 128;
    var$1.$offsetY = 128;
    nms_EnumArt_SkullAndRoses = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2696);
    var$1.$ordinal = 19;
    var$1.$title = $rt_s(2696);
    var$1.$sizeX = 32;
    var$1.$sizeY = 32;
    var$1.$offsetX = 160;
    var$1.$offsetY = 128;
    nms_EnumArt_Wither = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2697);
    var$1.$ordinal = 20;
    var$1.$title = $rt_s(2697);
    var$1.$sizeX = 64;
    var$1.$sizeY = 32;
    var$1.$offsetX = 0;
    var$1.$offsetY = 96;
    nms_EnumArt_Fighters = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2698);
    var$1.$ordinal = 21;
    var$1.$title = $rt_s(2698);
    var$1.$sizeX = 64;
    var$1.$sizeY = 64;
    var$1.$offsetX = 0;
    var$1.$offsetY = 192;
    nms_EnumArt_Pointer = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2699);
    var$1.$ordinal = 22;
    var$1.$title = $rt_s(2699);
    var$1.$sizeX = 64;
    var$1.$sizeY = 64;
    var$1.$offsetX = 64;
    var$1.$offsetY = 192;
    nms_EnumArt_Pigscene = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2700);
    var$1.$ordinal = 23;
    var$1.$title = $rt_s(2700);
    var$1.$sizeX = 64;
    var$1.$sizeY = 64;
    var$1.$offsetX = 128;
    var$1.$offsetY = 192;
    nms_EnumArt_BurningSkull = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2528);
    var$1.$ordinal = 24;
    var$1.$title = $rt_s(2528);
    var$1.$sizeX = 64;
    var$1.$sizeY = 48;
    var$1.$offsetX = 192;
    var$1.$offsetY = 64;
    nms_EnumArt_Skeleton = var$1;
    var$1 = new nms_EnumArt;
    var$1.$name0 = $rt_s(2701);
    var$1.$ordinal = 25;
    var$1.$title = $rt_s(2701);
    var$1.$sizeX = 64;
    var$1.$sizeY = 48;
    var$1.$offsetX = 192;
    var$1.$offsetY = 112;
    nms_EnumArt_DonkeyKong = var$1;
    nms_EnumArt_$VALUES = nms_EnumArt_$values();
    nms_EnumArt_maxArtTitleLength = $rt_s(2695).$nativeString.length;
};
function nms_ChunkCache() {
    let a = this; jl_Object.call(a);
    a.$chunkX = 0;
    a.$chunkZ = 0;
    a.$chunkArray = null;
    a.$isEmpty0 = 0;
    a.$worldObj18 = null;
}
let nms_ChunkCache__init_ = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8) => {
    let $var11, $var12, $var9, $var10, $var12_0, $var13, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();$var13 = $thread.pop();$var12_0 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$worldObj18 = $par1World;
        $var11 = ($par2 - $par8 | 0) >> 4;
        $this.$chunkX = $var11;
        $var12 = ($par4 - $par8 | 0) >> 4;
        $this.$chunkZ = $var12;
        $var9 = ($par5 + $par8 | 0) >> 4;
        $var10 = ($par7 + $par8 | 0) >> 4;
        $this.$chunkArray = $rt_createMultiArray(nms_Chunk, [($var10 - $var12 | 0) + 1 | 0, ($var9 - $var11 | 0) + 1 | 0]);
        $this.$isEmpty0 = 1;
        a: {
            while ($var11 <= $var9) {
                $var12_0 = $this.$chunkZ;
                while ($var12_0 <= $var10) {
                    $var13 = $par1World.$chunkProvider;
                    var$15 = $var13.$loadedChunkHashMap;
                    var$16 = Long_or(Long_and(Long_fromInt($var11), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var12_0), Long_create(4294967295, 0)), 32));
                    $var12 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                    $par8 = $var12 ^ ($var12 >>> 20 | 0) ^ ($var12 >>> 12 | 0);
                    $par8 = $par8 ^ ($par8 >>> 7 | 0) ^ ($par8 >>> 4 | 0);
                    var$17 = var$15.$hashArray.data;
                    var$15 = var$17[$par8 & (var$17.length - 1 | 0)];
                    b: {
                        while (var$15 !== null) {
                            if (Long_eq(var$15.$key1, var$16)) {
                                var$15 = var$15.$value4;
                                break b;
                            }
                            var$15 = var$15.$nextEntry;
                        }
                        var$15 = null;
                    }
                    var$15 = var$15;
                    if (var$15 === null) {
                        if ($var13.$worldObj0.$findingSpawnPoint)
                            break a;
                        if ($var13.$loadChunkOnProvideRequest)
                            break a;
                        var$15 = $var13.$defaultEmptyChunk;
                    }
                    if (var$15 !== null)
                        $this.$chunkArray.data[$var11 - $this.$chunkX | 0].data[$var12_0 - $this.$chunkZ | 0] = var$15;
                    $var12_0 = $var12_0 + 1 | 0;
                }
                $var11 = $var11 + 1 | 0;
            }
            $par2 = $par2 >> 4;
            $par5 = $par5 >> 4;
            $par8 = $par4 >> 4;
            $par7 = $par7 >> 4;
            while ($par2 <= $par5) {
                $var12 = $par8;
                while ($var12 <= $par7) {
                    $var13 = $this.$chunkArray.data[$par2 - $this.$chunkX | 0].data[$var12 - $this.$chunkZ | 0];
                    if ($var13 !== null && !$var13.$getAreLevelsEmpty($par3, $par6))
                        $this.$isEmpty0 = 0;
                    $var12 = $var12 + 1 | 0;
                }
                $par2 = $par2 + 1 | 0;
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var13, $var11, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        var$15 = $tmp;
        a: {
            c: while (true) {
                if (var$15 !== null)
                    $this.$chunkArray.data[$var11 - $this.$chunkX | 0].data[$var12_0 - $this.$chunkZ | 0] = var$15;
                $var12_0 = $var12_0 + 1 | 0;
                while ($var12_0 > $var10) {
                    $var11 = $var11 + 1 | 0;
                    if ($var11 > $var9)
                        break c;
                    $var12_0 = $this.$chunkZ;
                }
                $var13 = $par1World.$chunkProvider;
                var$15 = $var13.$loadedChunkHashMap;
                var$16 = Long_or(Long_and(Long_fromInt($var11), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var12_0), Long_create(4294967295, 0)), 32));
                $var12 = Long_lo(Long_xor(var$16, Long_shru(var$16, 32)));
                $par8 = $var12 ^ ($var12 >>> 20 | 0) ^ ($var12 >>> 12 | 0);
                $par8 = $par8 ^ ($par8 >>> 7 | 0) ^ ($par8 >>> 4 | 0);
                var$17 = var$15.$hashArray.data;
                var$15 = var$17[$par8 & (var$17.length - 1 | 0)];
                d: {
                    while (var$15 !== null) {
                        if (Long_eq(var$15.$key1, var$16)) {
                            var$15 = var$15.$value4;
                            break d;
                        }
                        var$15 = var$15.$nextEntry;
                    }
                    var$15 = null;
                }
                var$15 = var$15;
                if (var$15 !== null)
                    continue;
                if ($var13.$worldObj0.$findingSpawnPoint)
                    break a;
                if ($var13.$loadChunkOnProvideRequest)
                    break a;
                var$15 = $var13.$defaultEmptyChunk;
            }
            $par2 = $par2 >> 4;
            $par5 = $par5 >> 4;
            $par8 = $par4 >> 4;
            $par7 = $par7 >> 4;
            while ($par2 <= $par5) {
                $var12 = $par8;
                while ($var12 <= $par7) {
                    $var13 = $this.$chunkArray.data[$par2 - $this.$chunkX | 0].data[$var12 - $this.$chunkZ | 0];
                    if ($var13 !== null && !$var13.$getAreLevelsEmpty($par3, $par6))
                        $this.$isEmpty0 = 0;
                    $var12 = $var12 + 1 | 0;
                }
                $par2 = $par2 + 1 | 0;
            }
            return;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7, $par8, $var11, $var12, $var9, $var10, $var12_0, $var13, var$15, var$16, var$17, $ptr);
},
nms_ChunkCache__init_0 = (var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7) => {
    let var_8 = new nms_ChunkCache();
    nms_ChunkCache__init_(var_8, var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7);
    return var_8;
},
nms_ChunkCache_getBlockId = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, var$6, $var6;
    if ($par2 < 0)
        return 0;
    if ($par2 >= 256)
        return 0;
    $var4 = ($par1 >> 4) - $this.$chunkX | 0;
    $var5 = ($par3 >> 4) - $this.$chunkZ | 0;
    if ($var4 >= 0) {
        var$6 = $this.$chunkArray.data;
        if ($var4 < var$6.length && $var5 >= 0 && $var5 < var$6[$var4].data.length) {
            $var6 = var$6[$var4].data[$var5];
            return $var6 === null ? 0 : $var6.$getBlockID($par1 & 15, $par2, $par3 & 15);
        }
    }
    return 0;
};
function nms_PathFinder() {
    let a = this; jl_Object.call(a);
    a.$worldMap = null;
    a.$path1 = null;
    a.$pointMap = null;
    a.$pathOptions = null;
    a.$isWoddenDoorAllowed = 0;
    a.$isMovementBlockAllowed = 0;
    a.$isPathingInWater = 0;
    a.$canEntityDrown = 0;
}
let nms_PathFinder_createEntityPathTo = ($this, $par1Entity, $par2, $par4, $par6, $par8) => {
    let $var15, var$7, $var9, var$9, var$10, var$11, var$12, var$13, var$14, $var11, var$16, $var13, var$18, $var12, var$20, var$21, $var14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var12 = $thread.pop();var$18 = $thread.pop();$var13 = $thread.pop();var$16 = $thread.pop();$var11 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var9 = $thread.pop();var$7 = $thread.pop();$var15 = $thread.pop();$par8 = $thread.pop();$par6 = $thread.pop();$par4 = $thread.pop();$par2 = $thread.pop();$par1Entity
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$path1.$count2 = 0;
        $var15 = $this.$pointMap;
        $var15.$versionStamp = $var15.$versionStamp + 1 | 0;
        var$7 = $var15.$slots;
        $var9 = 0;
        while (true) {
            var$9 = var$7.data;
            if ($var9 >= var$9.length)
                break;
            var$9[$var9] = null;
            $var9 = $var9 + 1 | 0;
        }
        $var15.$count4 = 0;
        $var9 = $this.$isPathingInWater;
        var$10 = $par1Entity.$boundingBox0.$minY0 + 0.5;
        if ($this.$canEntityDrown) {
            $ptr = 1;
            continue main;
        }
        var$10 = $par1Entity.$boundingBox0.$minY0 + 0.5;
        var$11 = var$10 | 0;
        if (var$10 < var$11)
            var$11 = var$11 - 1 | 0;
        $var15 = $par1Entity.$boundingBox0;
        var$10 = $var15.$minX0;
        var$12 = var$10 | 0;
        if (var$10 < var$12)
            var$12 = var$12 - 1 | 0;
        var$10 = $var15.$minZ0;
        var$13 = var$10 | 0;
        if (var$10 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = nms_PathPoint_makeHash(var$12, var$11, var$13);
        $var15 = $this.$pointMap;
        $var11 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
        $var11 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
        var$7 = $var15.$slots.data;
        $var15 = var$7[$var11 & (var$7.length - 1 | 0)];
        a: {
            while ($var15 !== null) {
                if ($var15.$hashEntry == var$14) {
                    $var15 = $var15.$valueEntry;
                    break a;
                }
                $var15 = $var15.$nextEntry0;
            }
            $var15 = null;
        }
        $var15 = $var15;
        if ($var15 === null) {
            $var15 = new nms_PathPoint;
            $var15.$index6 = (-1);
            $var15.$xCoord1 = var$12;
            $var15.$yCoord1 = var$11;
            $var15.$zCoord1 = var$13;
            $var15.$hash0 = nms_PathPoint_makeHash(var$12, var$11, var$13);
            nms_IntHashMap_addKey($this.$pointMap, var$14, $var15);
        }
        var$10 = $par1Entity.$width / 2.0;
        $par2 = $par2 - var$10;
        var$16 = $par2 | 0;
        if ($par2 < var$16)
            var$16 = var$16 - 1 | 0;
        var$12 = $par4 | 0;
        if ($par4 < var$12)
            var$12 = var$12 - 1 | 0;
        $par2 = $par6 - var$10;
        var$13 = $par2 | 0;
        if ($par2 < var$13)
            var$13 = var$13 - 1 | 0;
        var$11 = nms_PathPoint_makeHash(var$16, var$12, var$13);
        $var13 = $this.$pointMap;
        $var11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
        var$18 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
        var$7 = $var13.$slots.data;
        $var13 = var$7[var$18 & (var$7.length - 1 | 0)];
        b: {
            while ($var13 !== null) {
                if ($var13.$hashEntry == var$11) {
                    $var13 = $var13.$valueEntry;
                    break b;
                }
                $var13 = $var13.$nextEntry0;
            }
            $var13 = null;
        }
        $var12 = $var13;
        if ($var12 === null) {
            $var12 = new nms_PathPoint;
            $var12.$index6 = (-1);
            $var12.$xCoord1 = var$16;
            $var12.$yCoord1 = var$12;
            $var12.$zCoord1 = var$13;
            $var12.$hash0 = nms_PathPoint_makeHash(var$16, var$12, var$13);
            nms_IntHashMap_addKey($this.$pointMap, var$11, $var12);
        }
        $var13 = new nms_PathPoint;
        var$20 = $par1Entity.$width + 1.0;
        $var11 = var$20 | 0;
        var$18 = $rt_compare(var$20, $var11);
        var$16 = var$18 >= 0 ? $var11 : $var11 - 1 | 0;
        var$20 = $par1Entity.$height0 + 1.0;
        var$14 = var$20 | 0;
        if (var$20 < var$14)
            var$14 = var$14 - 1 | 0;
        if (var$18 < 0)
            $var11 = $var11 - 1 | 0;
        $var13.$index6 = (-1);
        $var13.$xCoord1 = var$16;
        $var13.$yCoord1 = var$14;
        $var13.$zCoord1 = $var11;
        $var13.$hash0 = nms_PathPoint_makeHash(var$16, var$14, $var11);
        $ptr = 4;
        continue main;
    case 1:
        $tmp = $par1Entity.$isInWater();
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11) {
            var$11 = $par1Entity.$boundingBox0.$minY0 | 0;
            $var15 = $this.$worldMap;
            var$21 = $par1Entity.$posX;
            $var11 = var$21 | 0;
            if (var$21 < $var11)
                $var11 = $var11 - 1 | 0;
            var$10 = $par1Entity.$posZ;
            $var9 = var$10 | 0;
            if (var$10 < $var9)
                $var9 = $var9 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        var$10 = $par1Entity.$boundingBox0.$minY0 + 0.5;
        var$11 = var$10 | 0;
        if (var$10 < var$11)
            var$11 = var$11 - 1 | 0;
        $var15 = $par1Entity.$boundingBox0;
        var$10 = $var15.$minX0;
        var$12 = var$10 | 0;
        if (var$10 < var$12)
            var$12 = var$12 - 1 | 0;
        var$10 = $var15.$minZ0;
        var$13 = var$10 | 0;
        if (var$10 < var$13)
            var$13 = var$13 - 1 | 0;
        var$14 = nms_PathPoint_makeHash(var$12, var$11, var$13);
        $var15 = $this.$pointMap;
        $var11 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
        $var11 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
        var$7 = $var15.$slots.data;
        $var15 = var$7[$var11 & (var$7.length - 1 | 0)];
        c: {
            while ($var15 !== null) {
                if ($var15.$hashEntry == var$14) {
                    $var15 = $var15.$valueEntry;
                    break c;
                }
                $var15 = $var15.$nextEntry0;
            }
            $var15 = null;
        }
        $var15 = $var15;
        if ($var15 === null) {
            $var15 = new nms_PathPoint;
            $var15.$index6 = (-1);
            $var15.$xCoord1 = var$12;
            $var15.$yCoord1 = var$11;
            $var15.$zCoord1 = var$13;
            $var15.$hash0 = nms_PathPoint_makeHash(var$12, var$11, var$13);
            nms_IntHashMap_addKey($this.$pointMap, var$14, $var15);
        }
        var$10 = $par1Entity.$width / 2.0;
        $par2 = $par2 - var$10;
        var$16 = $par2 | 0;
        if ($par2 < var$16)
            var$16 = var$16 - 1 | 0;
        var$12 = $par4 | 0;
        if ($par4 < var$12)
            var$12 = var$12 - 1 | 0;
        $par2 = $par6 - var$10;
        var$13 = $par2 | 0;
        if ($par2 < var$13)
            var$13 = var$13 - 1 | 0;
        var$11 = nms_PathPoint_makeHash(var$16, var$12, var$13);
        $var13 = $this.$pointMap;
        $var11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
        var$18 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
        var$7 = $var13.$slots.data;
        $var13 = var$7[var$18 & (var$7.length - 1 | 0)];
        d: {
            while ($var13 !== null) {
                if ($var13.$hashEntry == var$11) {
                    $var13 = $var13.$valueEntry;
                    break d;
                }
                $var13 = $var13.$nextEntry0;
            }
            $var13 = null;
        }
        $var12 = $var13;
        if ($var12 === null) {
            $var12 = new nms_PathPoint;
            $var12.$index6 = (-1);
            $var12.$xCoord1 = var$16;
            $var12.$yCoord1 = var$12;
            $var12.$zCoord1 = var$13;
            $var12.$hash0 = nms_PathPoint_makeHash(var$16, var$12, var$13);
            nms_IntHashMap_addKey($this.$pointMap, var$11, $var12);
        }
        $var13 = new nms_PathPoint;
        var$20 = $par1Entity.$width + 1.0;
        $var11 = var$20 | 0;
        var$18 = $rt_compare(var$20, $var11);
        var$16 = var$18 >= 0 ? $var11 : $var11 - 1 | 0;
        var$20 = $par1Entity.$height0 + 1.0;
        var$14 = var$20 | 0;
        if (var$20 < var$14)
            var$14 = var$14 - 1 | 0;
        if (var$18 < 0)
            $var11 = $var11 - 1 | 0;
        $var13.$index6 = (-1);
        $var13.$xCoord1 = var$16;
        $var13.$yCoord1 = var$14;
        $var13.$zCoord1 = $var11;
        $var13.$hash0 = nms_PathPoint_makeHash(var$16, var$14, $var11);
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_ChunkCache_getBlockId($var15, $var11, var$11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        if ($var11 != nms_Block_waterMoving.$blockID && $var11 != nms_Block_waterStill.$blockID) {
            $var9 = $this.$isPathingInWater;
            $this.$isPathingInWater = 0;
            $var15 = $par1Entity.$boundingBox0;
            var$10 = $var15.$minX0;
            var$12 = var$10 | 0;
            if (var$10 < var$12)
                var$12 = var$12 - 1 | 0;
            var$10 = $var15.$minZ0;
            var$13 = var$10 | 0;
            if (var$10 < var$13)
                var$13 = var$13 - 1 | 0;
            var$14 = nms_PathPoint_makeHash(var$12, var$11, var$13);
            $var15 = $this.$pointMap;
            $var11 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
            $var11 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
            var$7 = $var15.$slots.data;
            $var15 = var$7[$var11 & (var$7.length - 1 | 0)];
            a: {
                while ($var15 !== null) {
                    if ($var15.$hashEntry == var$14) {
                        $var15 = $var15.$valueEntry;
                        break a;
                    }
                    $var15 = $var15.$nextEntry0;
                }
                $var15 = null;
            }
            $var15 = $var15;
            if ($var15 === null) {
                $var15 = new nms_PathPoint;
                $var15.$index6 = (-1);
                $var15.$xCoord1 = var$12;
                $var15.$yCoord1 = var$11;
                $var15.$zCoord1 = var$13;
                $var15.$hash0 = nms_PathPoint_makeHash(var$12, var$11, var$13);
                nms_IntHashMap_addKey($this.$pointMap, var$14, $var15);
            }
            var$10 = $par1Entity.$width / 2.0;
            $par2 = $par2 - var$10;
            var$16 = $par2 | 0;
            if ($par2 < var$16)
                var$16 = var$16 - 1 | 0;
            var$12 = $par4 | 0;
            if ($par4 < var$12)
                var$12 = var$12 - 1 | 0;
            $par2 = $par6 - var$10;
            var$13 = $par2 | 0;
            if ($par2 < var$13)
                var$13 = var$13 - 1 | 0;
            var$11 = nms_PathPoint_makeHash(var$16, var$12, var$13);
            $var13 = $this.$pointMap;
            $var11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
            var$18 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
            var$7 = $var13.$slots.data;
            $var13 = var$7[var$18 & (var$7.length - 1 | 0)];
            b: {
                while ($var13 !== null) {
                    if ($var13.$hashEntry == var$11) {
                        $var13 = $var13.$valueEntry;
                        break b;
                    }
                    $var13 = $var13.$nextEntry0;
                }
                $var13 = null;
            }
            $var12 = $var13;
            if ($var12 === null) {
                $var12 = new nms_PathPoint;
                $var12.$index6 = (-1);
                $var12.$xCoord1 = var$16;
                $var12.$yCoord1 = var$12;
                $var12.$zCoord1 = var$13;
                $var12.$hash0 = nms_PathPoint_makeHash(var$16, var$12, var$13);
                nms_IntHashMap_addKey($this.$pointMap, var$11, $var12);
            }
            $var13 = new nms_PathPoint;
            var$20 = $par1Entity.$width + 1.0;
            $var11 = var$20 | 0;
            var$18 = $rt_compare(var$20, $var11);
            var$16 = var$18 >= 0 ? $var11 : $var11 - 1 | 0;
            var$20 = $par1Entity.$height0 + 1.0;
            var$14 = var$20 | 0;
            if (var$20 < var$14)
                var$14 = var$14 - 1 | 0;
            if (var$18 < 0)
                $var11 = $var11 - 1 | 0;
            $var13.$index6 = (-1);
            $var13.$xCoord1 = var$16;
            $var13.$yCoord1 = var$14;
            $var13.$zCoord1 = $var11;
            $var13.$hash0 = nms_PathPoint_makeHash(var$16, var$14, $var11);
            $ptr = 4;
            continue main;
        }
        var$11 = var$11 + 1 | 0;
        $var15 = $this.$worldMap;
        var$10 = $par1Entity.$posX;
        var$14 = var$10 | 0;
        if (var$10 < var$14)
            var$14 = var$14 - 1 | 0;
        var$10 = $par1Entity.$posZ;
        $var11 = var$10 | 0;
        if (var$10 < $var11)
            $var11 = $var11 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_ChunkCache_getBlockId($var15, var$14, var$11, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        nms_Block_$callClinit();
        if ($var11 != nms_Block_waterMoving.$blockID && $var11 != nms_Block_waterStill.$blockID) {
            $var9 = $this.$isPathingInWater;
            $this.$isPathingInWater = 0;
            $var15 = $par1Entity.$boundingBox0;
            var$10 = $var15.$minX0;
            var$12 = var$10 | 0;
            if (var$10 < var$12)
                var$12 = var$12 - 1 | 0;
            var$10 = $var15.$minZ0;
            var$13 = var$10 | 0;
            if (var$10 < var$13)
                var$13 = var$13 - 1 | 0;
            var$14 = nms_PathPoint_makeHash(var$12, var$11, var$13);
            $var15 = $this.$pointMap;
            $var11 = var$14 ^ (var$14 >>> 20 | 0) ^ (var$14 >>> 12 | 0);
            $var11 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
            var$7 = $var15.$slots.data;
            $var15 = var$7[$var11 & (var$7.length - 1 | 0)];
            a: {
                while ($var15 !== null) {
                    if ($var15.$hashEntry == var$14) {
                        $var15 = $var15.$valueEntry;
                        break a;
                    }
                    $var15 = $var15.$nextEntry0;
                }
                $var15 = null;
            }
            $var15 = $var15;
            if ($var15 === null) {
                $var15 = new nms_PathPoint;
                $var15.$index6 = (-1);
                $var15.$xCoord1 = var$12;
                $var15.$yCoord1 = var$11;
                $var15.$zCoord1 = var$13;
                $var15.$hash0 = nms_PathPoint_makeHash(var$12, var$11, var$13);
                nms_IntHashMap_addKey($this.$pointMap, var$14, $var15);
            }
            var$10 = $par1Entity.$width / 2.0;
            $par2 = $par2 - var$10;
            var$16 = $par2 | 0;
            if ($par2 < var$16)
                var$16 = var$16 - 1 | 0;
            var$12 = $par4 | 0;
            if ($par4 < var$12)
                var$12 = var$12 - 1 | 0;
            $par2 = $par6 - var$10;
            var$13 = $par2 | 0;
            if ($par2 < var$13)
                var$13 = var$13 - 1 | 0;
            var$11 = nms_PathPoint_makeHash(var$16, var$12, var$13);
            $var13 = $this.$pointMap;
            $var11 = var$11 ^ (var$11 >>> 20 | 0) ^ (var$11 >>> 12 | 0);
            var$18 = $var11 ^ ($var11 >>> 7 | 0) ^ ($var11 >>> 4 | 0);
            var$7 = $var13.$slots.data;
            $var13 = var$7[var$18 & (var$7.length - 1 | 0)];
            b: {
                while ($var13 !== null) {
                    if ($var13.$hashEntry == var$11) {
                        $var13 = $var13.$valueEntry;
                        break b;
                    }
                    $var13 = $var13.$nextEntry0;
                }
                $var13 = null;
            }
            $var12 = $var13;
            if ($var12 === null) {
                $var12 = new nms_PathPoint;
                $var12.$index6 = (-1);
                $var12.$xCoord1 = var$16;
                $var12.$yCoord1 = var$12;
                $var12.$zCoord1 = var$13;
                $var12.$hash0 = nms_PathPoint_makeHash(var$16, var$12, var$13);
                nms_IntHashMap_addKey($this.$pointMap, var$11, $var12);
            }
            $var13 = new nms_PathPoint;
            var$20 = $par1Entity.$width + 1.0;
            $var11 = var$20 | 0;
            var$18 = $rt_compare(var$20, $var11);
            var$16 = var$18 >= 0 ? $var11 : $var11 - 1 | 0;
            var$20 = $par1Entity.$height0 + 1.0;
            var$14 = var$20 | 0;
            if (var$20 < var$14)
                var$14 = var$14 - 1 | 0;
            if (var$18 < 0)
                $var11 = $var11 - 1 | 0;
            $var13.$index6 = (-1);
            $var13.$xCoord1 = var$16;
            $var13.$yCoord1 = var$14;
            $var13.$zCoord1 = $var11;
            $var13.$hash0 = nms_PathPoint_makeHash(var$16, var$14, $var11);
            $ptr = 4;
            continue main;
        }
        var$11 = var$11 + 1 | 0;
        $var15 = $this.$worldMap;
        var$10 = $par1Entity.$posX;
        var$14 = var$10 | 0;
        if (var$10 < var$14)
            var$14 = var$14 - 1 | 0;
        var$10 = $par1Entity.$posZ;
        $var11 = var$10 | 0;
        if (var$10 < $var11)
            $var11 = $var11 - 1 | 0;
        continue main;
    case 4:
        $tmp = nms_PathFinder_addToPath($this, $par1Entity, $var15, $var12, $var13, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $this.$isPathingInWater = $var9;
        return $var14;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par4, $par6, $par8, $var15, var$7, $var9, var$9, var$10, var$11, var$12, var$13, var$14, $var11, var$16, $var13, var$18, $var12, var$20, var$21, $var14, $ptr);
},
nms_PathFinder_addToPath = ($this, $par1Entity, $par2PathPoint, $par3PathPoint, $par4PathPoint, $par5) => {
    let var$6, var$7, var$8, $var10, $var6, $var7, $var9, var$13, var$14, $var11, $var8, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var8 = $thread.pop();$var11 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var10 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4PathPoint = $thread.pop();$par3PathPoint = $thread.pop();$par2PathPoint = $thread.pop();$par1Entity = $thread.pop();$this
        = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par2PathPoint.$totalPathDistance = 0.0;
        var$6 = $par3PathPoint.$xCoord1 - $par2PathPoint.$xCoord1 | 0;
        var$7 = $par3PathPoint.$yCoord1 - $par2PathPoint.$yCoord1 | 0;
        var$8 = $par3PathPoint.$zCoord1 - $par2PathPoint.$zCoord1 | 0;
        var$6 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8;
        $par2PathPoint.$distanceToNext = var$6;
        $par2PathPoint.$distanceToTarget = var$6;
        $var10 = $this.$path1;
        $var10.$count2 = 0;
        nms_Path_addPoint($var10, $par2PathPoint);
        $var6 = $par2PathPoint;
        $var10 = $this.$path1;
        if ($var10.$count2 ? 0 : 1) {
            if ($var6 !== $par2PathPoint)
                return nms_PathFinder_createEntityPath($this, $par2PathPoint, $var6);
            return null;
        }
        $var7 = nms_Path_dequeue($var10);
        if (nms_PathPoint_equals($var7, $par3PathPoint))
            return nms_PathFinder_createEntityPath($this, $par2PathPoint, $par3PathPoint);
        $var9 = $par3PathPoint.$xCoord1;
        var$6 = $var9 - $var7.$xCoord1 | 0;
        var$13 = $par3PathPoint.$yCoord1;
        var$7 = var$13 - $var7.$yCoord1 | 0;
        var$14 = $par3PathPoint.$zCoord1;
        var$8 = var$14 - $var7.$zCoord1 | 0;
        $var11 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8;
        var$6 = $var9 - $var6.$xCoord1 | 0;
        var$7 = var$13 - $var6.$yCoord1 | 0;
        var$8 = var$14 - $var6.$zCoord1 | 0;
        if ($var11 < var$6 * var$6 + var$7 * var$7 + var$8 * var$8)
            $var6 = $var7;
        $var7.$isFirst = 1;
        $ptr = 1;
    case 1:
        $tmp = nms_PathFinder_findPathOptions($this, $par1Entity, $var7, $par4PathPoint, $par3PathPoint, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        $var9 = 0;
        while ($var9 < $var8) {
            $var10 = $this.$pathOptions.data[$var9];
            var$8 = $var7.$totalPathDistance;
            var$17 = $var10.$xCoord1;
            var$6 = var$17 - $var7.$xCoord1 | 0;
            var$18 = $var10.$yCoord1;
            var$7 = var$18 - $var7.$yCoord1 | 0;
            var$19 = $var10.$zCoord1;
            $var11 = var$19 - $var7.$zCoord1 | 0;
            $var11 = var$8 + var$6 * var$6 + var$7 * var$7 + $var11 * $var11;
            var$14 = $var10.$index6;
            var$13 = var$14 < 0 ? 0 : 1;
            if (!(var$13 && $var11 >= $var10.$totalPathDistance)) {
                $var10.$previous1 = $var7;
                $var10.$totalPathDistance = $var11;
                var$8 = $par3PathPoint.$xCoord1 - var$17 | 0;
                var$6 = $par3PathPoint.$yCoord1 - var$18 | 0;
                var$7 = $par3PathPoint.$zCoord1 - var$19 | 0;
                var$6 = var$8 * var$8 + var$6 * var$6 + var$7 * var$7;
                $var10.$distanceToNext = var$6;
                if (!(var$14 < 0 ? 0 : 1)) {
                    $var10.$distanceToTarget = $var11 + var$6;
                    nms_Path_addPoint($this.$path1, $var10);
                } else {
                    var$20 = $this.$path1;
                    var$6 = $var11 + var$6;
                    var$7 = $var10.$distanceToTarget;
                    $var10.$distanceToTarget = var$6;
                    if (var$6 >= var$7)
                        nms_Path_sortForward(var$20, var$14);
                    else
                        nms_Path_sortBack(var$20, var$14);
                }
            }
            $var9 = $var9 + 1 | 0;
        }
        $var10 = $this.$path1;
        if ($var10.$count2 ? 0 : 1) {
            if ($var6 !== $par2PathPoint)
                return nms_PathFinder_createEntityPath($this, $par2PathPoint, $var6);
            return null;
        }
        $var7 = nms_Path_dequeue($var10);
        if (nms_PathPoint_equals($var7, $par3PathPoint))
            return nms_PathFinder_createEntityPath($this, $par2PathPoint, $par3PathPoint);
        $var9 = $par3PathPoint.$xCoord1;
        var$6 = $var9 - $var7.$xCoord1 | 0;
        var$13 = $par3PathPoint.$yCoord1;
        var$7 = var$13 - $var7.$yCoord1 | 0;
        var$14 = $par3PathPoint.$zCoord1;
        var$8 = var$14 - $var7.$zCoord1 | 0;
        $var11 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8;
        var$6 = $var9 - $var6.$xCoord1 | 0;
        var$7 = var$13 - $var6.$yCoord1 | 0;
        var$8 = var$14 - $var6.$zCoord1 | 0;
        if ($var11 < var$6 * var$6 + var$7 * var$7 + var$8 * var$8)
            $var6 = $var7;
        $var7.$isFirst = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2PathPoint, $par3PathPoint, $par4PathPoint, $par5, var$6, var$7, var$8, $var10, $var6, $var7, $var9, var$13, var$14, $var11, $var8, var$17, var$18, var$19, var$20, $ptr);
},
nms_PathFinder_findPathOptions = ($this, $par1Entity, $par2PathPoint, $par3PathPoint, $par4PathPoint, $par5) => {
    let $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, $var8, $var9, $var10, $var11, var$18, var$19, var$20, var$21, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4PathPoint = $thread.pop();$par3PathPoint = $thread.pop();$par2PathPoint = $thread.pop();$par1Entity
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        $var7 = 0;
        var$8 = $par2PathPoint.$xCoord1;
        var$9 = $par2PathPoint.$yCoord1 + 1 | 0;
        var$10 = $par2PathPoint.$zCoord1;
        var$11 = $this.$isPathingInWater;
        var$12 = $this.$isMovementBlockAllowed;
        var$13 = $this.$isWoddenDoorAllowed;
        $ptr = 1;
    case 1:
        $tmp = nms_PathFinder_func_82565_a($par1Entity, var$8, var$9, var$10, $par3PathPoint, var$11, var$12, var$13);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == 1)
            $var7 = 1;
        var$9 = $par2PathPoint.$xCoord1;
        var$8 = $par2PathPoint.$yCoord1;
        var$10 = $par2PathPoint.$zCoord1 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_PathFinder_getSafePoint($this, $par1Entity, var$9, var$8, var$10, $par3PathPoint, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        var$9 = $par2PathPoint.$xCoord1 - 1 | 0;
        var$8 = $par2PathPoint.$yCoord1;
        var$10 = $par2PathPoint.$zCoord1;
        $ptr = 3;
    case 3:
        $tmp = nms_PathFinder_getSafePoint($this, $par1Entity, var$9, var$8, var$10, $par3PathPoint, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        var$9 = $par2PathPoint.$xCoord1 + 1 | 0;
        var$8 = $par2PathPoint.$yCoord1;
        var$10 = $par2PathPoint.$zCoord1;
        $ptr = 4;
    case 4:
        $tmp = nms_PathFinder_getSafePoint($this, $par1Entity, var$9, var$8, var$10, $par3PathPoint, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        var$9 = $par2PathPoint.$xCoord1;
        var$8 = $par2PathPoint.$yCoord1;
        var$10 = $par2PathPoint.$zCoord1 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_PathFinder_getSafePoint($this, $par1Entity, var$9, var$8, var$10, $par3PathPoint, $var7);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var8 === null)
            $var7 = $var6;
        else if ($var8.$isFirst)
            $var7 = $var6;
        else {
            var$18 = $par4PathPoint.$xCoord1 - $var8.$xCoord1 | 0;
            var$19 = $par4PathPoint.$yCoord1 - $var8.$yCoord1 | 0;
            var$20 = $par4PathPoint.$zCoord1 - $var8.$zCoord1 | 0;
            if (jl_Math_sqrt(var$18 * var$18 + var$19 * var$19 + var$20 * var$20) >= $par5)
                $var7 = $var6;
            else {
                var$21 = $this.$pathOptions.data;
                $var7 = 1;
                var$21[$var6] = $var8;
            }
        }
        if ($var9 === null)
            var$8 = $var7;
        else if ($var9.$isFirst)
            var$8 = $var7;
        else {
            var$18 = $par4PathPoint.$xCoord1 - $var9.$xCoord1 | 0;
            var$19 = $par4PathPoint.$yCoord1 - $var9.$yCoord1 | 0;
            var$20 = $par4PathPoint.$zCoord1 - $var9.$zCoord1 | 0;
            if (jl_Math_sqrt(var$18 * var$18 + var$19 * var$19 + var$20 * var$20) >= $par5)
                var$8 = $var7;
            else {
                var$21 = $this.$pathOptions.data;
                var$8 = $var7 + 1 | 0;
                var$21[$var7] = $var9;
            }
        }
        if ($var10 === null)
            $var7 = var$8;
        else if ($var10.$isFirst)
            $var7 = var$8;
        else {
            var$18 = $par4PathPoint.$xCoord1 - $var10.$xCoord1 | 0;
            var$19 = $par4PathPoint.$yCoord1 - $var10.$yCoord1 | 0;
            var$20 = $par4PathPoint.$zCoord1 - $var10.$zCoord1 | 0;
            if (jl_Math_sqrt(var$18 * var$18 + var$19 * var$19 + var$20 * var$20) >= $par5)
                $var7 = var$8;
            else {
                var$21 = $this.$pathOptions.data;
                $var7 = var$8 + 1 | 0;
                var$21[var$8] = $var10;
            }
        }
        if ($var11 === null)
            var$9 = $var7;
        else if ($var11.$isFirst)
            var$9 = $var7;
        else {
            var$18 = $par4PathPoint.$xCoord1 - $var11.$xCoord1 | 0;
            var$19 = $par4PathPoint.$yCoord1 - $var11.$yCoord1 | 0;
            var$20 = $par4PathPoint.$zCoord1 - $var11.$zCoord1 | 0;
            if (jl_Math_sqrt(var$18 * var$18 + var$19 * var$19 + var$20 * var$20) >= $par5)
                var$9 = $var7;
            else {
                var$21 = $this.$pathOptions.data;
                var$9 = $var7 + 1 | 0;
                var$21[$var7] = $var11;
            }
        }
        return var$9;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2PathPoint, $par3PathPoint, $par4PathPoint, $par5, $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, $var8, $var9, $var10, $var11, var$18, var$19, var$20, var$21, $ptr);
},
nms_PathFinder_getSafePoint = ($this, $par1Entity, $par2, $par3, $par4, $par5PathPoint, $par6) => {
    let $var7, var$8, var$9, $var9, $var8, var$12, $var10, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();$var10 = $thread.pop();var$12 = $thread.pop();$var8 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5PathPoint = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1Entity = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = null;
        var$8 = $this.$isPathingInWater;
        var$9 = $this.$isMovementBlockAllowed;
        $var9 = $this.$isWoddenDoorAllowed;
        $ptr = 1;
    case 1:
        $tmp = nms_PathFinder_func_82565_a($par1Entity, $par2, $par3, $par4, $par5PathPoint, var$8, var$9, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $tmp;
        if ($var8 == 2) {
            $par6 = nms_PathPoint_makeHash($par2, $par3, $par4);
            $par1Entity = $this.$pointMap;
            var$8 = $par6 ^ ($par6 >>> 20 | 0) ^ ($par6 >>> 12 | 0);
            $var9 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
            var$12 = $par1Entity.$slots.data;
            $par1Entity = var$12[$var9 & (var$12.length - 1 | 0)];
            a: {
                while ($par1Entity !== null) {
                    if ($par1Entity.$hashEntry == $par6) {
                        $par1Entity = $par1Entity.$valueEntry;
                        break a;
                    }
                    $par1Entity = $par1Entity.$nextEntry0;
                }
                $par1Entity = null;
            }
            $par1Entity = $par1Entity;
            if ($par1Entity === null) {
                $par1Entity = new nms_PathPoint;
                $par1Entity.$index6 = (-1);
                $par1Entity.$xCoord1 = $par2;
                $par1Entity.$yCoord1 = $par3;
                $par1Entity.$zCoord1 = $par4;
                $par1Entity.$hash0 = nms_PathPoint_makeHash($par2, $par3, $par4);
                nms_IntHashMap_addKey($this.$pointMap, $par6, $par1Entity);
            }
            return $par1Entity;
        }
        if ($var8 == 1) {
            $var10 = nms_PathPoint_makeHash($par2, $par3, $par4);
            var$14 = $this.$pointMap;
            var$8 = $var10 ^ ($var10 >>> 20 | 0) ^ ($var10 >>> 12 | 0);
            $var9 = var$8 ^ (var$8 >>> 7 | 0) ^ (var$8 >>> 4 | 0);
            var$12 = var$14.$slots.data;
            var$14 = var$12[$var9 & (var$12.length - 1 | 0)];
            b: {
                while (var$14 !== null) {
                    if (var$14.$hashEntry == $var10) {
                        var$14 = var$14.$valueEntry;
                        break b;
                    }
                    var$14 = var$14.$nextEntry0;
                }
                var$14 = null;
            }
            $var7 = var$14;
            if ($var7 === null) {
                $var7 = new nms_PathPoint;
                $var7.$index6 = (-1);
                $var7.$xCoord1 = $par2;
                $var7.$yCoord1 = $par3;
                $var7.$zCoord1 = $par4;
                $var7.$hash0 = nms_PathPoint_makeHash($par2, $par3, $par4);
                nms_IntHashMap_addKey($this.$pointMap, $var10, $var7);
            }
        }
        if ($var7 !== null)
            var$9 = $par3;
        else if ($par6 <= 0)
            var$9 = $par3;
        else if ($var8 == (-3))
            var$9 = $par3;
        else {
            if ($var8 != (-4)) {
                var$9 = $par3 + $par6 | 0;
                $par6 = $this.$isPathingInWater;
                var$8 = $this.$isMovementBlockAllowed;
                $var9 = $this.$isWoddenDoorAllowed;
                $ptr = 2;
                continue main;
            }
            var$9 = $par3;
        }
        if ($var7 !== null) {
            $var9 = 0;
            if (var$9 > 0) {
                $var8 = var$9 - 1 | 0;
                $par3 = $this.$isPathingInWater;
                $par6 = $this.$isMovementBlockAllowed;
                var$8 = $this.$isWoddenDoorAllowed;
                $ptr = 3;
                continue main;
            }
            if (0 == (-2))
                return null;
        }
        return $var7;
    case 2:
        $tmp = nms_PathFinder_func_82565_a($par1Entity, $par2, var$9, $par4, $par5PathPoint, $par6, var$8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 != 1)
            var$9 = $par3;
        else {
            $par3 = nms_PathPoint_makeHash($par2, var$9, $par4);
            var$14 = $this.$pointMap;
            $par6 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
            $var9 = $par6 ^ ($par6 >>> 7 | 0) ^ ($par6 >>> 4 | 0);
            var$12 = var$14.$slots.data;
            var$14 = var$12[$var9 & (var$12.length - 1 | 0)];
            c: {
                while (var$14 !== null) {
                    if (var$14.$hashEntry == $par3) {
                        var$14 = var$14.$valueEntry;
                        break c;
                    }
                    var$14 = var$14.$nextEntry0;
                }
                var$14 = null;
            }
            $var7 = var$14;
            if ($var7 === null) {
                $var7 = new nms_PathPoint;
                $var7.$index6 = (-1);
                $var7.$xCoord1 = $par2;
                $var7.$yCoord1 = var$9;
                $var7.$zCoord1 = $par4;
                $var7.$hash0 = nms_PathPoint_makeHash($par2, var$9, $par4);
                nms_IntHashMap_addKey($this.$pointMap, $par3, $var7);
            }
        }
        if ($var7 !== null) {
            $var9 = 0;
            if (var$9 > 0) {
                $var8 = var$9 - 1 | 0;
                $par3 = $this.$isPathingInWater;
                $par6 = $this.$isMovementBlockAllowed;
                var$8 = $this.$isWoddenDoorAllowed;
                $ptr = 3;
                continue main;
            }
            if (0 == (-2))
                return null;
        }
        return $var7;
    case 3:
        $tmp = nms_PathFinder_func_82565_a($par1Entity, $par2, $var8, $par4, $par5PathPoint, $par3, $par6, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($this.$isPathingInWater && $var10 == (-1))
            return null;
        if ($var10 == 1) {
            $var8 = $var9 + 1 | 0;
            if ($var9 >= $par1Entity.$getMaxSafePointTries())
                return null;
            var$9 = var$9 + (-1) | 0;
            if (var$9 <= 0)
                $var9 = $var8;
            else {
                $var9 = nms_PathPoint_makeHash($par2, var$9, $par4);
                var$14 = $this.$pointMap;
                $par3 = $var9 ^ ($var9 >>> 20 | 0) ^ ($var9 >>> 12 | 0);
                $par3 = $par3 ^ ($par3 >>> 7 | 0) ^ ($par3 >>> 4 | 0);
                var$12 = var$14.$slots.data;
                var$14 = var$12[$par3 & (var$12.length - 1 | 0)];
                d: {
                    while (var$14 !== null) {
                        if (var$14.$hashEntry == $var9) {
                            var$14 = var$14.$valueEntry;
                            break d;
                        }
                        var$14 = var$14.$nextEntry0;
                    }
                    var$14 = null;
                }
                $var7 = var$14;
                if ($var7 === null) {
                    $var7 = new nms_PathPoint;
                    $var7.$index6 = (-1);
                    $var7.$xCoord1 = $par2;
                    $var7.$yCoord1 = var$9;
                    $var7.$zCoord1 = $par4;
                    $var7.$hash0 = nms_PathPoint_makeHash($par2, var$9, $par4);
                    nms_IntHashMap_addKey($this.$pointMap, $var9, $var7);
                }
                $var9 = $var8;
            }
            if (var$9 > 0) {
                $var8 = var$9 - 1 | 0;
                $par3 = $this.$isPathingInWater;
                $par6 = $this.$isMovementBlockAllowed;
                var$8 = $this.$isWoddenDoorAllowed;
                continue main;
            }
        }
        if ($var10 == (-2))
            return null;
        return $var7;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Entity, $par2, $par3, $par4, $par5PathPoint, $par6, $var7, var$8, var$9, $var9, $var8, var$12, $var10, var$14, $ptr);
},
nms_PathFinder_func_82565_a = ($par0Entity, $par1, $par2, $par3, $par4PathPoint, $par5, $par6, $par7) => {
    let $var8, $var9, $var10, $var11, $var13, $var12, $var14, $var15, $var17, var$18, var$19, $var18, $var16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var16 = $thread.pop();$var18 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var17 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var12 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4PathPoint = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$par0Entity = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var8 = 0;
        $var9 = $par1;
        while ($var9 < ($par1 + $par4PathPoint.$xCoord1 | 0)) {
            $var10 = $par2;
            while ($var10 < ($par2 + $par4PathPoint.$yCoord1 | 0)) {
                $var11 = $par3;
                if ($var11 < ($par3 + $par4PathPoint.$zCoord1 | 0)) {
                    $var13 = $par0Entity.$worldObj;
                    $ptr = 1;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9 = $var9 + 1 | 0;
        }
        return !$var8 ? 1 : 2;
    case 1:
        $tmp = nms_World_getBlockId($var13, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if ($var12 <= 0) {
            $var11 = $var11 + 1 | 0;
            a: while (true) {
                if ($var11 < ($par3 + $par4PathPoint.$zCoord1 | 0)) {
                    $var13 = $par0Entity.$worldObj;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
                while ($var10 >= ($par2 + $par4PathPoint.$yCoord1 | 0)) {
                    $var9 = $var9 + 1 | 0;
                    if ($var9 >= ($par1 + $par4PathPoint.$xCoord1 | 0))
                        break a;
                    $var10 = $par2;
                }
                $var11 = $par3;
            }
            return !$var8 ? 1 : 2;
        }
        nms_Block_$callClinit();
        if ($var12 == nms_Block_trapdoor.$blockID)
            $var8 = 1;
        else if (!($var12 != nms_Block_waterMoving.$blockID && $var12 != nms_Block_waterStill.$blockID)) {
            if ($par5)
                return (-1);
            $var8 = 1;
        } else if (!$par7 && $var12 == nms_Block_doorWood.$blockID)
            return 0;
        $var13 = nms_Block_blocksList.data[$var12];
        $var14 = $var13.$getRenderType();
        $var15 = $par0Entity.$worldObj;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($var15, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var17 = $tmp;
        var$18 = nms_Block_blocksList.data;
        if ((var$18[$var17] === null ? (-1) : var$18[$var17].$getRenderType()) != 9) {
            $var15 = $par0Entity.$worldObj;
            $ptr = 3;
            continue main;
        }
        var$19 = $par0Entity.$posX;
        $var18 = var$19 | 0;
        if (var$19 < $var18)
            $var18 = $var18 - 1 | 0;
        var$19 = $par0Entity.$posY;
        $var16 = var$19 | 0;
        if (var$19 < $var16)
            $var16 = $var16 - 1 | 0;
        var$19 = $par0Entity.$posZ;
        $var17 = var$19 | 0;
        if (var$19 < $var17)
            $var17 = $var17 - 1 | 0;
        $var13 = $par0Entity.$worldObj;
        $ptr = 4;
        continue main;
    case 3:
        b: {
            $tmp = $var13.$getBlocksMovement($var15, $var9, $var10, $var11);
            if ($rt_suspending()) {
                break main;
            }
            $var17 = $tmp;
            if (!$var17) {
                if (!$par6)
                    break b;
                if ($var12 != nms_Block_doorWood.$blockID)
                    break b;
            }
            $var11 = $var11 + 1 | 0;
            c: while (true) {
                if ($var11 < ($par3 + $par4PathPoint.$zCoord1 | 0)) {
                    $var13 = $par0Entity.$worldObj;
                    $ptr = 1;
                    continue main;
                }
                $var10 = $var10 + 1 | 0;
                while ($var10 >= ($par2 + $par4PathPoint.$yCoord1 | 0)) {
                    $var9 = $var9 + 1 | 0;
                    if ($var9 >= ($par1 + $par4PathPoint.$xCoord1 | 0))
                        break c;
                    $var10 = $par2;
                }
                $var11 = $par3;
            }
            return !$var8 ? 1 : 2;
        }
        if ($var14 != 11 && $var12 != nms_Block_fenceGate.$blockID && $var14 != 32) {
            if ($var12 == nms_Block_trapdoor.$blockID)
                return (-4);
            $var15 = $var13.$blockMaterial;
            nms_Material_$callClinit();
            if ($var15 !== nms_Material_lava)
                return 0;
            $ptr = 5;
            continue main;
        }
        return (-3);
    case 4:
        $tmp = nms_World_getBlockId($var13, $var18, $var16, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        var$18 = nms_Block_blocksList.data;
        if ((var$18[$var12] === null ? (-1) : var$18[$var12].$getRenderType()) != 9) {
            $var13 = $par0Entity.$worldObj;
            $var12 = $var16 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        c: while (true) {
            if ($var11 < ($par3 + $par4PathPoint.$zCoord1 | 0)) {
                $var13 = $par0Entity.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= ($par2 + $par4PathPoint.$yCoord1 | 0)) {
                $var9 = $var9 + 1 | 0;
                if ($var9 >= ($par1 + $par4PathPoint.$xCoord1 | 0))
                    break c;
                $var10 = $par2;
            }
            $var11 = $par3;
        }
        return !$var8 ? 1 : 2;
    case 5:
        $tmp = $par0Entity.$handleLavaMovement();
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        if (!$var12)
            return (-2);
        $var11 = $var11 + 1 | 0;
        a: while (true) {
            if ($var11 < ($par3 + $par4PathPoint.$zCoord1 | 0)) {
                $var13 = $par0Entity.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= ($par2 + $par4PathPoint.$yCoord1 | 0)) {
                $var9 = $var9 + 1 | 0;
                if ($var9 >= ($par1 + $par4PathPoint.$xCoord1 | 0))
                    break a;
                $var10 = $par2;
            }
            $var11 = $par3;
        }
        return !$var8 ? 1 : 2;
    case 6:
        $tmp = nms_World_getBlockId($var13, $var18, $var12, $var17);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        var$18 = nms_Block_blocksList.data;
        if ((var$18[$var12] === null ? (-1) : var$18[$var12].$getRenderType()) != 9)
            return (-3);
        $var11 = $var11 + 1 | 0;
        c: while (true) {
            if ($var11 < ($par3 + $par4PathPoint.$zCoord1 | 0)) {
                $var13 = $par0Entity.$worldObj;
                $ptr = 1;
                continue main;
            }
            $var10 = $var10 + 1 | 0;
            while ($var10 >= ($par2 + $par4PathPoint.$yCoord1 | 0)) {
                $var9 = $var9 + 1 | 0;
                if ($var9 >= ($par1 + $par4PathPoint.$xCoord1 | 0))
                    break c;
                $var10 = $par2;
            }
            $var11 = $par3;
        }
        return !$var8 ? 1 : 2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0Entity, $par1, $par2, $par3, $par4PathPoint, $par5, $par6, $par7, $var8, $var9, $var10, $var11, $var13, $var12, $var14, $var15, $var17, var$18, var$19, $var18, $var16, $ptr);
},
nms_PathFinder_createEntityPath = ($this, $par1PathPoint, $par2PathPoint) => {
    let $var3, $var4, $var5, var$6;
    $var3 = 1;
    $var4 = $par2PathPoint;
    while (true) {
        $var4 = $var4.$previous1;
        if ($var4 === null)
            break;
        $var3 = $var3 + 1 | 0;
    }
    $var5 = $rt_createArray(nms_PathPoint, $var3);
    var$6 = $var5.data;
    $var3 = $var3 + (-1) | 0;
    var$6[$var3] = $par2PathPoint;
    while (true) {
        $par2PathPoint = $par2PathPoint.$previous1;
        if ($par2PathPoint === null)
            break;
        $var3 = $var3 + (-1) | 0;
        var$6[$var3] = $par2PathPoint;
    }
    $par1PathPoint = new nms_PathEntity;
    $par1PathPoint.$points = $var5;
    $par1PathPoint.$pathLength = var$6.length;
    return $par1PathPoint;
};
function nms_BlockBaseRailLogic() {
    let a = this; jl_Object.call(a);
    a.$logicWorld = null;
    a.$railX = 0;
    a.$railY = 0;
    a.$railZ = 0;
    a.$isStraightRail = 0;
    a.$railChunkPosition = null;
    a.$theRail = null;
}
let nms_BlockBaseRailLogic__init_ = ($this, $par1BlockRailBase, $par2World, $par3, $par4, $par5) => {
    let $var6, $var7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2World = $thread.pop();$par1BlockRailBase = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$theRail = $par1BlockRailBase;
        $par1BlockRailBase = new ju_ArrayList;
        $par1BlockRailBase.$array = $rt_createArray(jl_Object, 10);
        $this.$railChunkPosition = $par1BlockRailBase;
        $this.$logicWorld = $par2World;
        $this.$railX = $par3;
        $this.$railY = $par4;
        $this.$railZ = $par5;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par2World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockMetadata($par2World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if (!nms_Block_blocksList.data[$var6].$isPowered)
            $this.$isStraightRail = 0;
        else {
            $this.$isStraightRail = 1;
            $var7 = $var7 & (-9);
        }
        nms_BlockBaseRailLogic_setBasicRail($this, $var7);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1BlockRailBase, $par2World, $par3, $par4, $par5, $var6, $var7, $ptr);
},
nms_BlockBaseRailLogic__init_0 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_BlockBaseRailLogic();
    nms_BlockBaseRailLogic__init_(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_BlockBaseRailLogic_setBasicRail = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    var$2 = $this.$railChunkPosition;
    var$3 = var$2.$array;
    var$4 = 0;
    var$5 = var$2.$size0;
    var$6 = null;
    if (var$4 > var$5) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        $rt_throw(var$2);
    }
    while (var$4 < var$5) {
        var$7 = var$3.data;
        var$8 = var$4 + 1 | 0;
        var$7[var$4] = var$6;
        var$4 = var$8;
    }
    a: {
        var$2.$size0 = 0;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        if (!$par1) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ - 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ + 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 1) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX - 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX + 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 2) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX - 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX + 1 | 0;
            var$4 = $this.$railY + 1 | 0;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 3) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX - 1 | 0;
            var$4 = $this.$railY + 1 | 0;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX + 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 4) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY + 1 | 0;
            var$5 = $this.$railZ - 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ + 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 5) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ - 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY + 1 | 0;
            var$5 = $this.$railZ + 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 6) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX + 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ + 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 7) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX - 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ + 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 == 8) {
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX - 1 | 0;
            var$4 = $this.$railY;
            var$5 = $this.$railZ;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, 1);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            var$2 = $this.$railChunkPosition;
            var$6 = new nms_ChunkPosition;
            $par1 = $this.$railX;
            var$4 = $this.$railY;
            var$5 = $this.$railZ - 1 | 0;
            var$6.$x = $par1;
            var$6.$y = var$4;
            var$6.$z = var$5;
            ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
            var$3 = var$2.$array.data;
            var$4 = var$2.$size0;
            var$2.$size0 = var$4 + 1 | 0;
            var$3[var$4] = var$6;
            var$2.$modCount = var$2.$modCount + 1 | 0;
            break a;
        }
        if ($par1 != 9)
            break a;
        var$6 = new nms_ChunkPosition;
        $par1 = $this.$railX + 1 | 0;
        var$4 = $this.$railY;
        var$5 = $this.$railZ;
        var$6.$x = $par1;
        var$6.$y = var$4;
        var$6.$z = var$5;
        ju_ArrayList_ensureCapacity(var$2, 1);
        var$3 = var$2.$array.data;
        var$4 = var$2.$size0;
        var$2.$size0 = var$4 + 1 | 0;
        var$3[var$4] = var$6;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$2 = $this.$railChunkPosition;
        var$6 = new nms_ChunkPosition;
        $par1 = $this.$railX;
        var$4 = $this.$railY;
        var$5 = $this.$railZ - 1 | 0;
        var$6.$x = $par1;
        var$6.$y = var$4;
        var$6.$z = var$5;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$3 = var$2.$array.data;
        var$4 = var$2.$size0;
        var$2.$size0 = var$4 + 1 | 0;
        var$3[var$4] = var$6;
        var$2.$modCount = var$2.$modCount + 1 | 0;
    }
},
nms_BlockBaseRailLogic_refreshConnectedTracks = $this => {
    let $var1, $var2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        $var2 = $this.$railChunkPosition;
        var$3 = $rt_compare($var1, $var2.$size0);
        if (var$3 >= 0)
            return;
        if ($var1 >= 0 && var$3 < 0) {
            $var2 = $var2.$array.data[$var1];
            $ptr = 1;
            continue main;
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    case 1:
        a: {
            $tmp = nms_BlockBaseRailLogic_getRailLogic($this, $var2);
            if ($rt_suspending()) {
                break main;
            }
            $var2 = $tmp;
            if ($var2 !== null && nms_BlockBaseRailLogic_isRailChunkPositionCorrect($var2, $this)) {
                var$4 = $this.$railChunkPosition;
                var$5 = new nms_ChunkPosition;
                var$3 = $var2.$railX;
                var$6 = $var2.$railY;
                var$7 = $var2.$railZ;
                var$5.$x = var$3;
                var$5.$y = var$6;
                var$5.$z = var$7;
                if ($var1 >= 0 && $var1 < var$4.$size0) {
                    var$4.$array.data[$var1] = var$5;
                    var$3 = $var1;
                    break a;
                }
                $var2 = new jl_IndexOutOfBoundsException;
                $var2.$suppressionEnabled = 1;
                $var2.$writableStackTrace = 1;
                $rt_throw($var2);
            }
            $var2 = $this.$railChunkPosition;
            var$3 = $var1 + (-1) | 0;
            ju_ArrayList_remove($var2, $var1);
        }
        $var1 = var$3 + 1 | 0;
        $var2 = $this.$railChunkPosition;
        var$3 = $rt_compare($var1, $var2.$size0);
        if (var$3 >= 0)
            return;
        if ($var1 >= 0 && var$3 < 0) {
            $var2 = $var2.$array.data[$var1];
            continue main;
        }
        $var2 = new jl_IndexOutOfBoundsException;
        $var2.$suppressionEnabled = 1;
        $var2.$writableStackTrace = 1;
        $rt_throw($var2);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_BlockBaseRailLogic_getRailLogic = ($this, $par1ChunkPosition) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ChunkPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$logicWorld;
        var$3 = $par1ChunkPosition.$x;
        var$4 = $par1ChunkPosition.$y;
        var$5 = $par1ChunkPosition.$z;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$3)) {
            var$2 = new nms_BlockBaseRailLogic;
            var$6 = $this.$theRail;
            var$7 = $this.$logicWorld;
            var$3 = $par1ChunkPosition.$x;
            var$4 = $par1ChunkPosition.$y;
            var$5 = $par1ChunkPosition.$z;
            $ptr = 3;
            continue main;
        }
        var$2 = $this.$logicWorld;
        var$3 = $par1ChunkPosition.$x;
        var$4 = $par1ChunkPosition.$y + 1 | 0;
        var$5 = $par1ChunkPosition.$z;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$3)) {
            var$2 = $this.$logicWorld;
            var$3 = $par1ChunkPosition.$x;
            var$4 = $par1ChunkPosition.$y - 1 | 0;
            var$5 = $par1ChunkPosition.$z;
            $ptr = 4;
            continue main;
        }
        var$2 = new nms_BlockBaseRailLogic;
        var$6 = $this.$theRail;
        var$7 = $this.$logicWorld;
        var$5 = $par1ChunkPosition.$x;
        var$3 = $par1ChunkPosition.$y + 1 | 0;
        var$4 = $par1ChunkPosition.$z;
        $ptr = 5;
        continue main;
    case 3:
        nms_BlockBaseRailLogic__init_(var$2, var$6, var$7, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    case 4:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$3)) {
            var$2 = null;
            return var$2;
        }
        var$2 = new nms_BlockBaseRailLogic;
        var$6 = $this.$theRail;
        var$7 = $this.$logicWorld;
        var$4 = $par1ChunkPosition.$x;
        var$3 = $par1ChunkPosition.$y - 1 | 0;
        var$5 = $par1ChunkPosition.$z;
        $ptr = 6;
        continue main;
    case 5:
        nms_BlockBaseRailLogic__init_(var$2, var$6, var$7, var$5, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    case 6:
        nms_BlockBaseRailLogic__init_(var$2, var$6, var$7, var$4, var$3, var$5);
        if ($rt_suspending()) {
            break main;
        }
        return var$2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ChunkPosition, var$2, var$3, var$4, var$5, var$6, var$7, $ptr);
},
nms_BlockBaseRailLogic_isRailChunkPositionCorrect = ($this, $par1BlockBaseRailLogic) => {
    let $var2, $var3, var$4;
    $var2 = 0;
    a: {
        while (true) {
            $var3 = $this.$railChunkPosition;
            var$4 = $rt_compare($var2, $var3.$size0);
            if (var$4 >= 0)
                break;
            if ($var2 < 0)
                break a;
            if (var$4 >= 0)
                break a;
            $var3 = $var3.$array.data[$var2];
            if ($var3.$x == $par1BlockBaseRailLogic.$railX && $var3.$z == $par1BlockBaseRailLogic.$railZ)
                return 1;
            $var2 = $var2 + 1 | 0;
        }
        return 0;
    }
    $par1BlockBaseRailLogic = new jl_IndexOutOfBoundsException;
    $par1BlockBaseRailLogic.$suppressionEnabled = 1;
    $par1BlockBaseRailLogic.$writableStackTrace = 1;
    $rt_throw($par1BlockBaseRailLogic);
},
nms_BlockBaseRailLogic_isPartOfTrack = ($this, $par1, $par2, $par3) => {
    let $var4, $var5;
    $var4 = 0;
    a: {
        while (true) {
            $var5 = $this.$railChunkPosition;
            $par2 = $rt_compare($var4, $var5.$size0);
            if ($par2 >= 0)
                break;
            if ($var4 < 0)
                break a;
            if ($par2 >= 0)
                break a;
            $var5 = $var5.$array.data[$var4];
            if ($var5.$x == $par1 && $var5.$z == $par3)
                return 1;
            $var4 = $var4 + 1 | 0;
        }
        return 0;
    }
    $var5 = new jl_IndexOutOfBoundsException;
    $var5.$suppressionEnabled = 1;
    $var5.$writableStackTrace = 1;
    $rt_throw($var5);
},
nms_BlockBaseRailLogic_getNumberOfAdjacentTracks = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = 0;
        var$2 = $this.$railX;
        var$3 = $this.$railY;
        var$4 = $this.$railZ - 1 | 0;
        var$5 = $this.$logicWorld;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$5, var$2, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$6)) {
            var$5 = $this.$logicWorld;
            var$6 = var$3 + 1 | 0;
            $ptr = 2;
            continue main;
        }
        if (1)
            $var1 = 1;
        var$6 = $this.$railX;
        var$2 = $this.$railY;
        var$4 = $this.$railZ + 1 | 0;
        var$5 = $this.$logicWorld;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId(var$5, var$2, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$6)) {
            var$5 = $this.$logicWorld;
            var$6 = var$3 - 1 | 0;
            $ptr = 3;
            continue main;
        }
        if (1)
            $var1 = 1;
        var$6 = $this.$railX;
        var$2 = $this.$railY;
        var$4 = $this.$railZ + 1 | 0;
        var$5 = $this.$logicWorld;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId(var$5, var$2, var$6, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$6))
            $var1 = 1;
        var$6 = $this.$railX;
        var$2 = $this.$railY;
        var$4 = $this.$railZ + 1 | 0;
        var$5 = $this.$logicWorld;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId(var$5, var$6, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$3)) {
            var$5 = $this.$logicWorld;
            var$3 = var$2 + 1 | 0;
            $ptr = 5;
            continue main;
        }
        if (1)
            $var1 = $var1 + 1 | 0;
        var$6 = $this.$railX - 1 | 0;
        var$2 = $this.$railY;
        var$4 = $this.$railZ;
        var$5 = $this.$logicWorld;
        $ptr = 7;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId(var$5, var$6, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$3)) {
            var$5 = $this.$logicWorld;
            var$2 = var$2 - 1 | 0;
            $ptr = 6;
            continue main;
        }
        if (1)
            $var1 = $var1 + 1 | 0;
        var$6 = $this.$railX - 1 | 0;
        var$2 = $this.$railY;
        var$4 = $this.$railZ;
        var$5 = $this.$logicWorld;
        $ptr = 7;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId(var$5, var$6, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$6))
            $var1 = $var1 + 1 | 0;
        var$6 = $this.$railX - 1 | 0;
        var$2 = $this.$railY;
        var$4 = $this.$railZ;
        var$5 = $this.$logicWorld;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId(var$5, var$6, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$3)) {
            var$5 = $this.$logicWorld;
            var$3 = var$2 + 1 | 0;
            $ptr = 8;
            continue main;
        }
        if (1)
            $var1 = $var1 + 1 | 0;
        var$6 = $this.$railX + 1 | 0;
        var$2 = $this.$railY;
        var$4 = $this.$railZ;
        var$5 = $this.$logicWorld;
        $ptr = 10;
        continue main;
    case 8:
        $tmp = nms_World_getBlockId(var$5, var$6, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (!nms_BlockRailBase_isRailBlock(var$3)) {
            var$5 = $this.$logicWorld;
            var$2 = var$2 - 1 | 0;
            $ptr = 9;
            continue main;
        }
        if (1)
            $var1 = $var1 + 1 | 0;
        var$6 = $this.$railX + 1 | 0;
        var$2 = $this.$railY;
        var$4 = $this.$railZ;
        var$5 = $this.$logicWorld;
        $ptr = 10;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId(var$5, var$6, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$6))
            $var1 = $var1 + 1 | 0;
        var$6 = $this.$railX + 1 | 0;
        var$2 = $this.$railY;
        var$4 = $this.$railZ;
        var$5 = $this.$logicWorld;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId(var$5, var$6, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$3)) {
            if (1)
                $var1 = $var1 + 1 | 0;
            return $var1;
        }
        var$5 = $this.$logicWorld;
        var$3 = var$2 + 1 | 0;
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockId(var$5, var$6, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$3)) {
            if (1)
                $var1 = $var1 + 1 | 0;
            return $var1;
        }
        var$5 = $this.$logicWorld;
        var$2 = var$2 - 1 | 0;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockId(var$5, var$6, var$2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (nms_BlockRailBase_isRailBlock(var$6))
            $var1 = $var1 + 1 | 0;
        return $var1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, var$2, var$3, var$4, var$5, var$6, $ptr);
},
nms_BlockBaseRailLogic_connectToNeighbor = ($this, $par1BlockBaseRailLogic) => {
    let var$2, var$3, $var2, $var3, $var4, var$7, $var5, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1BlockBaseRailLogic = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$railChunkPosition;
        var$3 = new nms_ChunkPosition;
        $var2 = $par1BlockBaseRailLogic.$railX;
        $var3 = $par1BlockBaseRailLogic.$railY;
        $var4 = $par1BlockBaseRailLogic.$railZ;
        var$3.$x = $var2;
        var$3.$y = $var3;
        var$3.$z = $var4;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$7 = var$2.$array.data;
        $var3 = var$2.$size0;
        var$2.$size0 = $var3 + 1 | 0;
        var$7[$var3] = var$3;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        $var2 = nms_BlockBaseRailLogic_isPartOfTrack($this, $this.$railX, $this.$railY, $this.$railZ - 1 | 0);
        $var3 = nms_BlockBaseRailLogic_isPartOfTrack($this, $this.$railX, $this.$railY, $this.$railZ + 1 | 0);
        $var4 = nms_BlockBaseRailLogic_isPartOfTrack($this, $this.$railX - 1 | 0, $this.$railY, $this.$railZ);
        $var5 = nms_BlockBaseRailLogic_isPartOfTrack($this, $this.$railX + 1 | 0, $this.$railY, $this.$railZ);
        $var6 = (-1);
        if (!(!$var2 && !$var3))
            $var6 = 0;
        if (!(!$var4 && !$var5))
            $var6 = 1;
        if (!$this.$isStraightRail) {
            if ($var3 && $var5 && !$var2 && !$var4)
                $var6 = 6;
            if ($var3 && $var4 && !$var2 && !$var5)
                $var6 = 7;
            if ($var2 && $var4 && !$var3 && !$var5)
                $var6 = 8;
            if ($var2 && $var5 && !$var3 && !$var4)
                $var6 = 9;
        }
        if (!$var6) {
            $par1BlockBaseRailLogic = $this.$logicWorld;
            $var2 = $this.$railX;
            $var3 = $this.$railY + 1 | 0;
            $var4 = $this.$railZ - 1 | 0;
            $ptr = 1;
            continue main;
        }
        if ($var6 == 1) {
            $par1BlockBaseRailLogic = $this.$logicWorld;
            $var2 = $this.$railX + 1 | 0;
            $var3 = $this.$railY + 1 | 0;
            $var4 = $this.$railZ;
            $ptr = 2;
            continue main;
        }
        if ($var6 < 0)
            $var6 = 0;
        if ($this.$isStraightRail) {
            $par1BlockBaseRailLogic = $this.$logicWorld;
            $var2 = $this.$railX;
            $var3 = $this.$railY;
            $var4 = $this.$railZ;
            $ptr = 5;
            continue main;
        }
        $par1BlockBaseRailLogic = $this.$logicWorld;
        $var2 = $this.$railX;
        $var3 = $this.$railY;
        $var4 = $this.$railZ;
        $var5 = 3;
        $ptr = 6;
        continue main;
    case 1:
        $tmp = nms_World_getBlockId($par1BlockBaseRailLogic, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (nms_BlockRailBase_isRailBlock($var2))
            $var6 = 4;
        $par1BlockBaseRailLogic = $this.$logicWorld;
        $var2 = $this.$railX;
        $var3 = $this.$railY + 1 | 0;
        $var4 = $this.$railZ + 1 | 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1BlockBaseRailLogic, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (nms_BlockRailBase_isRailBlock($var2))
            $var6 = 2;
        $par1BlockBaseRailLogic = $this.$logicWorld;
        $var2 = $this.$railX - 1 | 0;
        $var3 = $this.$railY + 1 | 0;
        $var4 = $this.$railZ;
        $ptr = 4;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1BlockBaseRailLogic, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (nms_BlockRailBase_isRailBlock($var2))
            $var6 = 5;
        if ($var6 == 1) {
            $par1BlockBaseRailLogic = $this.$logicWorld;
            $var2 = $this.$railX + 1 | 0;
            $var3 = $this.$railY + 1 | 0;
            $var4 = $this.$railZ;
            $ptr = 2;
            continue main;
        }
        if ($var6 < 0)
            $var6 = 0;
        if ($this.$isStraightRail) {
            $par1BlockBaseRailLogic = $this.$logicWorld;
            $var2 = $this.$railX;
            $var3 = $this.$railY;
            $var4 = $this.$railZ;
            $ptr = 5;
            continue main;
        }
        $par1BlockBaseRailLogic = $this.$logicWorld;
        $var2 = $this.$railX;
        $var3 = $this.$railY;
        $var4 = $this.$railZ;
        $var5 = 3;
        $ptr = 6;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1BlockBaseRailLogic, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        if (nms_BlockRailBase_isRailBlock($var2))
            $var6 = 3;
        if ($var6 < 0)
            $var6 = 0;
        if ($this.$isStraightRail) {
            $par1BlockBaseRailLogic = $this.$logicWorld;
            $var2 = $this.$railX;
            $var3 = $this.$railY;
            $var4 = $this.$railZ;
            $ptr = 5;
            continue main;
        }
        $par1BlockBaseRailLogic = $this.$logicWorld;
        $var2 = $this.$railX;
        $var3 = $this.$railY;
        $var4 = $this.$railZ;
        $var5 = 3;
        $ptr = 6;
        continue main;
    case 5:
        $tmp = nms_World_getBlockMetadata($par1BlockBaseRailLogic, $var2, $var3, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var2 = $tmp;
        $var6 = $var2 & 8 | $var6;
        $par1BlockBaseRailLogic = $this.$logicWorld;
        $var2 = $this.$railX;
        $var3 = $this.$railY;
        $var4 = $this.$railZ;
        $var5 = 3;
        $ptr = 6;
    case 6:
        nms_World_setBlockMetadataWithNotify($par1BlockBaseRailLogic, $var2, $var3, $var4, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1BlockBaseRailLogic, var$2, var$3, $var2, $var3, $var4, var$7, $var5, $var6, $ptr);
},
nms_BlockBaseRailLogic_func_94511_a = ($this, $par1, $par2) => {
    let $var5, $var6, $var3, $var10, $var4, $var7, $var9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var9 = $thread.pop();$var7 = $thread.pop();$var4 = $thread.pop();$var10 = $thread.pop();$var3 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$par2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var5 = $this.$railX;
        $var6 = $this.$railY;
        $var3 = $this.$railZ - 1 | 0;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var5;
        $var10.$y = $var6;
        $var10.$z = $var3;
        $ptr = 1;
    case 1:
        $tmp = nms_BlockBaseRailLogic_getRailLogic($this, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 !== null) {
            $ptr = 2;
            continue main;
        }
        $var3 = 0;
        $var5 = $this.$railX;
        $var6 = $this.$railY;
        $var4 = $this.$railZ + 1 | 0;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var5;
        $var10.$y = $var6;
        $var10.$z = $var4;
        $ptr = 3;
        continue main;
    case 2:
        nms_BlockBaseRailLogic_refreshConnectedTracks($var10);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_BlockBaseRailLogic_isRailChunkPositionCorrect($var10, $this))
            $var3 = 1;
        else {
            $var6 = $var10.$railChunkPosition.$size0;
            $var3 = $var6 == 2 ? 0 : !($var6 ? 0 : 1) ? 1 : 1;
        }
        $var5 = $this.$railX;
        $var6 = $this.$railY;
        $var4 = $this.$railZ + 1 | 0;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var5;
        $var10.$y = $var6;
        $var10.$z = $var4;
        $ptr = 3;
    case 3:
        $tmp = nms_BlockBaseRailLogic_getRailLogic($this, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 !== null) {
            $ptr = 4;
            continue main;
        }
        $var4 = 0;
        $var5 = $this.$railX - 1 | 0;
        $var6 = $this.$railY;
        $var7 = $this.$railZ;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var5;
        $var10.$y = $var6;
        $var10.$z = $var7;
        $ptr = 5;
        continue main;
    case 4:
        nms_BlockBaseRailLogic_refreshConnectedTracks($var10);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_BlockBaseRailLogic_isRailChunkPositionCorrect($var10, $this))
            $var4 = 1;
        else {
            $var6 = $var10.$railChunkPosition.$size0;
            $var4 = $var6 == 2 ? 0 : !($var6 ? 0 : 1) ? 1 : 1;
        }
        $var5 = $this.$railX - 1 | 0;
        $var6 = $this.$railY;
        $var7 = $this.$railZ;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var5;
        $var10.$y = $var6;
        $var10.$z = $var7;
        $ptr = 5;
    case 5:
        $tmp = nms_BlockBaseRailLogic_getRailLogic($this, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 !== null) {
            $ptr = 6;
            continue main;
        }
        $var5 = 0;
        $var6 = $this.$railX + 1 | 0;
        $var7 = $this.$railY;
        $var9 = $this.$railZ;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var6;
        $var10.$y = $var7;
        $var10.$z = $var9;
        $ptr = 7;
        continue main;
    case 6:
        nms_BlockBaseRailLogic_refreshConnectedTracks($var10);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_BlockBaseRailLogic_isRailChunkPositionCorrect($var10, $this))
            $var5 = 1;
        else {
            $var6 = $var10.$railChunkPosition.$size0;
            $var5 = $var6 == 2 ? 0 : !($var6 ? 0 : 1) ? 1 : 1;
        }
        $var6 = $this.$railX + 1 | 0;
        $var7 = $this.$railY;
        $var9 = $this.$railZ;
        $var10 = new nms_ChunkPosition;
        $var10.$x = $var6;
        $var10.$y = $var7;
        $var10.$z = $var9;
        $ptr = 7;
    case 7:
        $tmp = nms_BlockBaseRailLogic_getRailLogic($this, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 === null) {
            $var7 = (-1);
            if (!(!$var3 && !$var4) && !$var5 && !0)
                $var7 = 0;
            if (!(!$var5 && !0) && !$var3 && !$var4)
                $var7 = 1;
            $var9 = $this.$isStraightRail;
            if (!$var9) {
                if ($var4 && 0 && !$var3 && !$var5)
                    $var7 = 6;
                if ($var4 && $var5 && !$var3 && !0)
                    $var7 = 7;
                if ($var3 && $var5 && !$var4 && !0)
                    $var7 = 8;
                if ($var3 && 0 && !$var4 && !$var5)
                    $var7 = 9;
            }
            if ($var7 == (-1)) {
                if (!(!$var3 && !$var4))
                    $var7 = 0;
                if (!(!$var5 && !0))
                    $var7 = 1;
                if (!$var9) {
                    if (!$par1) {
                        if ($var3 && $var5)
                            $var7 = 8;
                        if (0 && $var3)
                            $var7 = 9;
                        if ($var5 && $var4)
                            $var7 = 7;
                        if ($var4 && 0)
                            $var7 = 6;
                    } else {
                        if ($var4 && 0)
                            $var7 = 6;
                        if ($var5 && $var4)
                            $var7 = 7;
                        if (0 && $var3)
                            $var7 = 9;
                        if ($var3 && $var5)
                            $var7 = 8;
                    }
                }
            }
            if (!$var7) {
                $var10 = $this.$logicWorld;
                $par1 = $this.$railX;
                $var5 = $this.$railY + 1 | 0;
                $var6 = $this.$railZ - 1 | 0;
                $ptr = 9;
                continue main;
            }
            if ($var7 == 1) {
                $var10 = $this.$logicWorld;
                $par1 = $this.$railX + 1 | 0;
                $var5 = $this.$railY + 1 | 0;
                $var6 = $this.$railZ;
                $ptr = 10;
                continue main;
            }
            if ($var7 < 0)
                $var7 = 0;
            nms_BlockBaseRailLogic_setBasicRail($this, $var7);
            if ($this.$isStraightRail) {
                $var10 = $this.$logicWorld;
                $par1 = $this.$railX;
                $var5 = $this.$railY;
                $var6 = $this.$railZ;
                $ptr = 13;
                continue main;
            }
            if (!$par2) {
                $var10 = $this.$logicWorld;
                $par1 = $this.$railX;
                $par2 = $this.$railY;
                $var5 = $this.$railZ;
                $ptr = 15;
                continue main;
            }
            $var10 = $this.$logicWorld;
            $par2 = $this.$railX;
            $var5 = $this.$railY;
            $var6 = $this.$railZ;
            $par1 = 3;
            $ptr = 14;
            continue main;
        }
        $ptr = 8;
    case 8:
        nms_BlockBaseRailLogic_refreshConnectedTracks($var10);
        if ($rt_suspending()) {
            break main;
        }
        if (!nms_BlockBaseRailLogic_isRailChunkPositionCorrect($var10, $this)) {
            $var7 = $var10.$railChunkPosition.$size0;
            $var6 = $var7 == 2 ? 0 : !($var7 ? 0 : 1) ? 1 : 1;
        } else
            $var6 = 1;
        $var7 = (-1);
        if (!(!$var3 && !$var4) && !$var5 && !$var6)
            $var7 = 0;
        if (!(!$var5 && !$var6) && !$var3 && !$var4)
            $var7 = 1;
        $var9 = $this.$isStraightRail;
        if (!$var9) {
            if ($var4 && $var6 && !$var3 && !$var5)
                $var7 = 6;
            if ($var4 && $var5 && !$var3 && !$var6)
                $var7 = 7;
            if ($var3 && $var5 && !$var4 && !$var6)
                $var7 = 8;
            if ($var3 && $var6 && !$var4 && !$var5)
                $var7 = 9;
        }
        if ($var7 == (-1)) {
            if (!(!$var3 && !$var4))
                $var7 = 0;
            if (!(!$var5 && !$var6))
                $var7 = 1;
            if (!$var9) {
                if (!$par1) {
                    if ($var3 && $var5)
                        $var7 = 8;
                    if ($var6 && $var3)
                        $var7 = 9;
                    if ($var5 && $var4)
                        $var7 = 7;
                    if ($var4 && $var6)
                        $var7 = 6;
                } else {
                    if ($var4 && $var6)
                        $var7 = 6;
                    if ($var5 && $var4)
                        $var7 = 7;
                    if ($var6 && $var3)
                        $var7 = 9;
                    if ($var3 && $var5)
                        $var7 = 8;
                }
            }
        }
        if (!$var7) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $var5 = $this.$railY + 1 | 0;
            $var6 = $this.$railZ - 1 | 0;
            $ptr = 9;
            continue main;
        }
        if ($var7 == 1) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX + 1 | 0;
            $var5 = $this.$railY + 1 | 0;
            $var6 = $this.$railZ;
            $ptr = 10;
            continue main;
        }
        if ($var7 < 0)
            $var7 = 0;
        nms_BlockBaseRailLogic_setBasicRail($this, $var7);
        if ($this.$isStraightRail) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $var5 = $this.$railY;
            $var6 = $this.$railZ;
            $ptr = 13;
            continue main;
        }
        if (!$par2) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $par2 = $this.$railY;
            $var5 = $this.$railZ;
            $ptr = 15;
            continue main;
        }
        $var10 = $this.$logicWorld;
        $par2 = $this.$railX;
        $var5 = $this.$railY;
        $var6 = $this.$railZ;
        $par1 = 3;
        $ptr = 14;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($var10, $par1, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (nms_BlockRailBase_isRailBlock($par1))
            $var7 = 4;
        $var10 = $this.$logicWorld;
        $par1 = $this.$railX;
        $var5 = $this.$railY + 1 | 0;
        $var6 = $this.$railZ + 1 | 0;
        $ptr = 11;
        continue main;
    case 10:
        $tmp = nms_World_getBlockId($var10, $par1, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (nms_BlockRailBase_isRailBlock($par1))
            $var7 = 2;
        $var10 = $this.$logicWorld;
        $par1 = $this.$railX - 1 | 0;
        $var5 = $this.$railY + 1 | 0;
        $var6 = $this.$railZ;
        $ptr = 12;
        continue main;
    case 11:
        $tmp = nms_World_getBlockId($var10, $par1, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (nms_BlockRailBase_isRailBlock($par1))
            $var7 = 5;
        if ($var7 == 1) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX + 1 | 0;
            $var5 = $this.$railY + 1 | 0;
            $var6 = $this.$railZ;
            $ptr = 10;
            continue main;
        }
        if ($var7 < 0)
            $var7 = 0;
        nms_BlockBaseRailLogic_setBasicRail($this, $var7);
        if ($this.$isStraightRail) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $var5 = $this.$railY;
            $var6 = $this.$railZ;
            $ptr = 13;
            continue main;
        }
        if (!$par2) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $par2 = $this.$railY;
            $var5 = $this.$railZ;
            $ptr = 15;
            continue main;
        }
        $var10 = $this.$logicWorld;
        $par2 = $this.$railX;
        $var5 = $this.$railY;
        $var6 = $this.$railZ;
        $par1 = 3;
        $ptr = 14;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId($var10, $par1, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if (nms_BlockRailBase_isRailBlock($par1))
            $var7 = 3;
        if ($var7 < 0)
            $var7 = 0;
        nms_BlockBaseRailLogic_setBasicRail($this, $var7);
        if ($this.$isStraightRail) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $var5 = $this.$railY;
            $var6 = $this.$railZ;
            $ptr = 13;
            continue main;
        }
        if (!$par2) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $par2 = $this.$railY;
            $var5 = $this.$railZ;
            $ptr = 15;
            continue main;
        }
        $var10 = $this.$logicWorld;
        $par2 = $this.$railX;
        $var5 = $this.$railY;
        $var6 = $this.$railZ;
        $par1 = 3;
        $ptr = 14;
        continue main;
    case 13:
        $tmp = nms_World_getBlockMetadata($var10, $par1, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        $var7 = $par1 & 8 | $var7;
        if (!$par2) {
            $var10 = $this.$logicWorld;
            $par1 = $this.$railX;
            $par2 = $this.$railY;
            $var5 = $this.$railZ;
            $ptr = 15;
            continue main;
        }
        $var10 = $this.$logicWorld;
        $par2 = $this.$railX;
        $var5 = $this.$railY;
        $var6 = $this.$railZ;
        $par1 = 3;
        $ptr = 14;
    case 14:
        nms_World_setBlockMetadataWithNotify($var10, $par2, $var5, $var6, $var7, $par1);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 0;
        $var10 = $this.$railChunkPosition;
        $par1 = $rt_compare($var9, $var10.$size0);
        if ($par1 >= 0)
            return;
        if ($var9 >= 0 && $par1 < 0) {
            $var10 = $var10.$array.data[$var9];
            $ptr = 16;
            continue main;
        }
        $var10 = new jl_IndexOutOfBoundsException;
        $var10.$suppressionEnabled = 1;
        $var10.$writableStackTrace = 1;
        $rt_throw($var10);
    case 15:
        $tmp = nms_World_getBlockMetadata($var10, $par1, $par2, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $par1 = $tmp;
        if ($par1 == $var7)
            return;
        $var10 = $this.$logicWorld;
        $par2 = $this.$railX;
        $var5 = $this.$railY;
        $var6 = $this.$railZ;
        $par1 = 3;
        $ptr = 14;
        continue main;
    case 16:
        $tmp = nms_BlockBaseRailLogic_getRailLogic($this, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 !== null) {
            $ptr = 17;
            continue main;
        }
        $var9 = $var9 + 1 | 0;
        $var10 = $this.$railChunkPosition;
        $par1 = $rt_compare($var9, $var10.$size0);
        if ($par1 >= 0)
            return;
        if ($var9 >= 0 && $par1 < 0) {
            $var10 = $var10.$array.data[$var9];
            continue main;
        }
        $var10 = new jl_IndexOutOfBoundsException;
        $var10.$suppressionEnabled = 1;
        $var10.$writableStackTrace = 1;
        $rt_throw($var10);
    case 17:
        nms_BlockBaseRailLogic_refreshConnectedTracks($var10);
        if ($rt_suspending()) {
            break main;
        }
        if (nms_BlockBaseRailLogic_isRailChunkPositionCorrect($var10, $this))
            $par1 = 1;
        else {
            $par2 = $var10.$railChunkPosition.$size0;
            $par1 = $par2 == 2 ? 0 : !($par2 ? 0 : 1) ? 1 : 1;
        }
        if ($par1) {
            $ptr = 18;
            continue main;
        }
        $var9 = $var9 + 1 | 0;
        $var10 = $this.$railChunkPosition;
        $par1 = $rt_compare($var9, $var10.$size0);
        if ($par1 >= 0)
            return;
        if ($var9 >= 0 && $par1 < 0) {
            $var10 = $var10.$array.data[$var9];
            $ptr = 16;
            continue main;
        }
        $var10 = new jl_IndexOutOfBoundsException;
        $var10.$suppressionEnabled = 1;
        $var10.$writableStackTrace = 1;
        $rt_throw($var10);
    case 18:
        nms_BlockBaseRailLogic_connectToNeighbor($var10, $this);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        $var10 = $this.$railChunkPosition;
        $par1 = $rt_compare($var9, $var10.$size0);
        if ($par1 >= 0)
            return;
        if ($var9 >= 0 && $par1 < 0) {
            $var10 = $var10.$array.data[$var9];
            $ptr = 16;
            continue main;
        }
        $var10 = new jl_IndexOutOfBoundsException;
        $var10.$suppressionEnabled = 1;
        $var10.$writableStackTrace = 1;
        $rt_throw($var10);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, $par2, $var5, $var6, $var3, $var10, $var4, $var7, $var9, $ptr);
},
nms_MerchantRecipeList = $rt_classWithoutFields(ju_ArrayList),
nms_MerchantRecipeList__init_ = $this => {
    $this.$array = $rt_createArray(jl_Object, 10);
},
nms_MerchantRecipeList__init_0 = () => {
    let var_0 = new nms_MerchantRecipeList();
    nms_MerchantRecipeList__init_(var_0);
    return var_0;
},
nms_MerchantRecipeList_canRecipeBeUsed = ($this, $par1ItemStack, $par2ItemStack, $par3) => {
    let $var4, $var6, var$6, $var5;
    if ($par3 > 0) {
        $var4 = $rt_compare($par3, $this.$size0);
        if ($var4 < 0) {
            if ($par3 >= 0 && $var4 < 0) {
                a: {
                    b: {
                        $var6 = $this.$array.data[$par3];
                        $par3 = $par1ItemStack.$itemID;
                        var$6 = $var6.$itemToBuy;
                        if ($par3 == var$6.$itemID) {
                            if (!($par2ItemStack === null && !($var6.$secondItemToBuy === null ? 0 : 1))) {
                                $var5 = $var6.$secondItemToBuy;
                                if (!($var5 === null ? 0 : 1))
                                    break b;
                                if ($par2ItemStack === null)
                                    break b;
                                if ($var5.$itemID != $par2ItemStack.$itemID)
                                    break b;
                            }
                            if ($par1ItemStack.$stackSize >= var$6.$stackSize) {
                                $par1ItemStack = $var6.$secondItemToBuy;
                                $par3 = $par1ItemStack === null ? 0 : 1;
                                if (!($par3 && $par2ItemStack.$stackSize < $par1ItemStack.$stackSize))
                                    break a;
                            }
                        }
                    }
                    $var6 = null;
                }
                return $var6;
            }
            $par1ItemStack = new jl_IndexOutOfBoundsException;
            $par1ItemStack.$suppressionEnabled = 1;
            $par1ItemStack.$writableStackTrace = 1;
            $rt_throw($par1ItemStack);
        }
    }
    $var4 = 0;
    c: {
        while (true) {
            $par3 = $rt_compare($var4, $this.$size0);
            if ($par3 >= 0)
                return null;
            if ($var4 < 0)
                break c;
            if ($par3 >= 0)
                break c;
            $var5 = $this.$array.data[$var4];
            $par3 = $par1ItemStack.$itemID;
            $var6 = $var5.$itemToBuy;
            if ($par3 == $var6.$itemID && $par1ItemStack.$stackSize >= $var6.$stackSize) {
                $var6 = $var5.$secondItemToBuy;
                $par3 = $var6 === null ? 0 : 1;
                if (!$par3 && $par2ItemStack === null)
                    break;
                if (($var6 === null ? 0 : 1) && $par2ItemStack !== null && $var6.$itemID == $par2ItemStack.$itemID && $par2ItemStack.$stackSize >= $var6.$stackSize)
                    break;
            }
            $var4 = $var4 + 1 | 0;
        }
        return $var5;
    }
    $par1ItemStack = new jl_IndexOutOfBoundsException;
    $par1ItemStack.$suppressionEnabled = 1;
    $par1ItemStack.$writableStackTrace = 1;
    $rt_throw($par1ItemStack);
},
nms_MerchantRecipeList_writeRecipiesToStream = ($this, $par1DataOutputStream) => {
    let $var2, var$3, $var3, var$5, $var4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var4 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1DataOutputStream = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = ($this.$size0 & 255) << 24 >> 24;
        $par1DataOutputStream.$out0.$write0($var2);
        $par1DataOutputStream.$written = $par1DataOutputStream.$written + 1 | 0;
        $var2 = 0;
        var$3 = $rt_compare($var2, $this.$size0);
        if (var$3 >= 0)
            return;
        if ($var2 >= 0 && var$3 < 0) {
            $var3 = $this.$array.data[$var2];
            var$5 = $var3.$itemToBuy;
            $ptr = 1;
            continue main;
        }
        $par1DataOutputStream = new jl_IndexOutOfBoundsException;
        $par1DataOutputStream.$suppressionEnabled = 1;
        $par1DataOutputStream.$writableStackTrace = 1;
        $rt_throw($par1DataOutputStream);
    case 1:
        nms_Packet_writeItemStack(var$5, $par1DataOutputStream);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $var3.$itemToSell;
        $ptr = 2;
    case 2:
        nms_Packet_writeItemStack(var$5, $par1DataOutputStream);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var3.$secondItemToBuy;
        var$3 = $var4 === null ? 0 : 1;
        $par1DataOutputStream.$out0.$write0(!var$3 ? 0 : 1);
        $par1DataOutputStream.$written = $par1DataOutputStream.$written + 1 | 0;
        if ($var4 !== null) {
            $ptr = 3;
            continue main;
        }
        var$3 = $var3.$toolUses < $var3.$maxTradeUses ? 0 : 1;
        $par1DataOutputStream.$out0.$write0(!var$3 ? 0 : 1);
        $par1DataOutputStream.$written = $par1DataOutputStream.$written + 1 | 0;
        $var2 = $var2 + 1 | 0;
        var$3 = $rt_compare($var2, $this.$size0);
        if (var$3 >= 0)
            return;
        if ($var2 >= 0 && var$3 < 0) {
            $var3 = $this.$array.data[$var2];
            var$5 = $var3.$itemToBuy;
            $ptr = 1;
            continue main;
        }
        $par1DataOutputStream = new jl_IndexOutOfBoundsException;
        $par1DataOutputStream.$suppressionEnabled = 1;
        $par1DataOutputStream.$writableStackTrace = 1;
        $rt_throw($par1DataOutputStream);
    case 3:
        nms_Packet_writeItemStack($var4, $par1DataOutputStream);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $var3.$toolUses < $var3.$maxTradeUses ? 0 : 1;
        $par1DataOutputStream.$out0.$write0(!var$3 ? 0 : 1);
        $par1DataOutputStream.$written = $par1DataOutputStream.$written + 1 | 0;
        $var2 = $var2 + 1 | 0;
        var$3 = $rt_compare($var2, $this.$size0);
        if (var$3 >= 0)
            return;
        if ($var2 >= 0 && var$3 < 0) {
            $var3 = $this.$array.data[$var2];
            var$5 = $var3.$itemToBuy;
            $ptr = 1;
            continue main;
        }
        $par1DataOutputStream = new jl_IndexOutOfBoundsException;
        $par1DataOutputStream.$suppressionEnabled = 1;
        $par1DataOutputStream.$writableStackTrace = 1;
        $rt_throw($par1DataOutputStream);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1DataOutputStream, $var2, var$3, $var3, var$5, $var4, $ptr);
};
function nms_EntityFishHook() {
    let a = this; nms_Entity.call(a);
    a.$xTile2 = 0;
    a.$yTile2 = 0;
    a.$zTile2 = 0;
    a.$inTile2 = 0;
    a.$inGround = 0;
    a.$shake = 0;
    a.$angler = null;
    a.$ticksInGround0 = 0;
    a.$ticksInAir2 = 0;
    a.$ticksCatchable = 0;
    a.$bobber = null;
    a.$fishPosRotationIncrements = 0;
    a.$fishX = 0.0;
    a.$fishY = 0.0;
    a.$fishZ = 0.0;
    a.$fishYaw = 0.0;
    a.$fishPitch = 0.0;
}
let nms_EntityFishHook__init_ = ($this, $par1World, $par2EntityPlayer) => {
    let var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2EntityPlayer = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_Entity__init_($this, $par1World);
        $this.$xTile2 = (-1);
        $this.$yTile2 = (-1);
        $this.$zTile2 = (-1);
        $this.$ignoreFrustumCheck = 1;
        $this.$angler = $par2EntityPlayer;
        $par2EntityPlayer.$fishEntity = $this;
        var$3 = 0.25;
        $var3 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize($this, var$3, $var3);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $par2EntityPlayer.$posX;
        var$6 = $par2EntityPlayer.$posY + 1.62 - $par2EntityPlayer.$yOffset;
        var$7 = $par2EntityPlayer.$posZ;
        $var3 = $par2EntityPlayer.$rotationYaw;
        var$3 = $par2EntityPlayer.$rotationPitch;
        $this.$posX = var$5;
        $this.$prevPosX = var$5;
        $this.$lastTickPosX = var$5;
        var$6 = var$6 + $this.$yOffset;
        $this.$posY = var$6;
        $this.$prevPosY = var$6;
        $this.$lastTickPosY = var$6;
        $this.$posZ = var$7;
        $this.$prevPosZ = var$7;
        $this.$lastTickPosZ = var$7;
        $this.$rotationYaw = $var3;
        $this.$rotationPitch = var$3;
        nms_Entity_setPosition($this, var$5, var$6, var$7);
        var$6 = $this.$posX;
        $var3 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
        var$8 = nms_MathHelper_SIN_TABLE.data;
        var$3 = $var3 * 10430.3779296875;
        var$6 = var$6 - var$8[(var$3 + 16384.0 | 0) & 65535] * 0.1599999964237213;
        $this.$posX = var$6;
        var$5 = $this.$posY - 0.10000000149011612;
        $this.$posY = var$5;
        var$7 = $this.$posZ - var$8[(var$3 | 0) & 65535] * 0.1599999964237213;
        $this.$posZ = var$7;
        nms_Entity_setPosition($this, var$6, var$5, var$7);
        $this.$yOffset = 0.0;
        var$9 = $this.$rotationYaw / 180.0 * 3.1415927410125732;
        var$8 = nms_MathHelper_SIN_TABLE.data;
        var$10 = var$9 * 10430.3779296875;
        var$11 =  -var$8[(var$10 | 0) & 65535];
        var$9 = $this.$rotationPitch / 180.0 * 3.1415927410125732 * 10430.3779296875;
        var$12 = (var$9 + 16384.0 | 0) & 65535;
        var$6 = var$11 * var$8[var$12] * 0.4000000059604645;
        $this.$motionX = var$6;
        var$5 = var$8[(var$10 + 16384.0 | 0) & 65535] * var$8[var$12] * 0.4000000059604645;
        $this.$motionZ = var$5;
        var$7 =  -var$8[(var$9 | 0) & 65535] * 0.4000000059604645;
        $this.$motionY = var$7;
        nms_EntityFishHook_calculateVelocity($this, var$6, var$7, var$5, 1.5, 1.0);
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2EntityPlayer, var$3, $var3, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
},
nms_EntityFishHook__init_0 = (var_0, var_1) => {
    let var_2 = new nms_EntityFishHook();
    nms_EntityFishHook__init_(var_2, var_0, var_1);
    return var_2;
},
nms_EntityFishHook_entityInit = $this => {
    return;
},
nms_EntityFishHook_calculateVelocity = ($this, $par1, $par3, $par5, $par7, $par8) => {
    let var$6, var$7, var$8, $var10;
    var$6 = jl_Math_sqrt($par1 * $par1 + $par3 * $par3 + $par5 * $par5);
    var$7 = $par1 / var$6;
    $par1 = $par3 / var$6;
    var$6 = $par5 / var$6;
    $par3 = nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.007499999832361937;
    var$8 = $par8;
    $par3 = var$7 + $par3 * var$8;
    $par5 = $par1 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.007499999832361937 * var$8;
    $par1 = var$6 + nle_EaglercraftRandom_nextGaussian($this.$rand) * 0.007499999832361937 * var$8;
    var$6 = $par7;
    $par3 = $par3 * var$6;
    $par5 = $par5 * var$6;
    $par1 = $par1 * var$6;
    $this.$motionX = $par3;
    $this.$motionY = $par5;
    $this.$motionZ = $par1;
    $var10 = jl_Math_sqrt($par3 * $par3 + $par1 * $par1);
    $par7 = jl_Math_atan2($par3, $par1) * 180.0 / 3.141592653589793;
    $this.$rotationYaw = $par7;
    $this.$prevRotationYaw = $par7;
    $par7 = jl_Math_atan2($par5, $var10) * 180.0 / 3.141592653589793;
    $this.$rotationPitch = $par7;
    $this.$prevRotationPitch = $par7;
    $this.$ticksInGround0 = 0;
},
nms_EntityFishHook_onUpdate = $this => {
    let $var19, $var6, $var27, $var13, $var21, $var22, $var23, $var7, $var24, $var25, $var20, $var2, $var8, $var18, $var26, var$16, $var4, var$18, var$19, $var3, $var9, $var16, $var14, var$24, $var12, $var5, $var28, var$28, var$29, var$30, $var29, var$32, var$33, var$34, $var15, var$36, var$37, var$38, var$39, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$39 = $thread.pop();var$38 = $thread.pop();var$37 = $thread.pop();var$36 = $thread.pop();$var15 = $thread.pop();var$34 = $thread.pop();var$33 = $thread.pop();var$32 = $thread.pop();$var29 = $thread.pop();var$30 = $thread.pop();var$29 = $thread.pop();var$28 = $thread.pop();$var28 = $thread.pop();$var5 = $thread.pop();$var12 = $thread.pop();var$24 = $thread.pop();$var14 = $thread.pop();$var16 = $thread.pop();$var9 = $thread.pop();$var3 = $thread.pop();var$19 = $thread.pop();var$18
        = $thread.pop();$var4 = $thread.pop();var$16 = $thread.pop();$var26 = $thread.pop();$var18 = $thread.pop();$var8 = $thread.pop();$var2 = $thread.pop();$var20 = $thread.pop();$var25 = $thread.pop();$var24 = $thread.pop();$var7 = $thread.pop();$var23 = $thread.pop();$var22 = $thread.pop();$var21 = $thread.pop();$var13 = $thread.pop();$var27 = $thread.pop();$var6 = $thread.pop();$var19 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Entity_onEntityUpdate($this);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $this.$fishPosRotationIncrements;
        if ($var19 > 0) {
            $var6 = $this.$posX;
            $var27 = $this.$fishX - $var6;
            $var13 = $var19;
            $var21 = $var6 + $var27 / $var13;
            $var6 = $this.$posY;
            $var22 = $var6 + ($this.$fishY - $var6) / $var13;
            $var6 = $this.$posZ;
            $var23 = $var6 + ($this.$fishZ - $var6) / $var13;
            $var6 = $this.$fishYaw;
            $var27 = $this.$rotationYaw;
            $var7 = ($var6 - $var27) % 360.0;
            if ($var7 >= 180.0)
                $var7 = $var7 - 360.0;
            if ($var7 < (-180.0))
                $var7 = $var7 + 360.0;
            $this.$rotationYaw = $var27 + $var7 / $var13;
            $var6 = $this.$rotationPitch;
            $this.$rotationPitch = $var6 + ($this.$fishPitch - $var6) / $var13;
            $this.$fishPosRotationIncrements = $var19 - 1 | 0;
            nms_Entity_setPosition($this, $var21, $var22, $var23);
            $var24 = $this.$rotationYaw;
            $var25 = $this.$rotationPitch;
            $this.$rotationYaw = $var24 % 360.0;
            $this.$rotationPitch = $var25 % 360.0;
            return;
        }
        a: {
            if (!$this.$worldObj.$isRemote) {
                $var20 = $this.$angler;
                $var2 = $var20.$inventory0;
                $var8 = $var2.$currentItem;
                $var2 = $var8 < 9 && $var8 >= 0 ? $var2.$mainInventory.data[$var8] : null;
                $var19 = $var20.$isDead;
                if (!$var19) {
                    b: {
                        if (!$var19) {
                            $var20 = $var20.$dataWatcher.$watchedObjects;
                            jl_Integer_ensureIntegerCache();
                            $var18 = jl_Integer_integerCache.data[134];
                            if ($var18 === null) {
                                $var20 = $var20.$elementData.data[0];
                                while ($var20 !== null && $var20.$key !== null) {
                                    $var20 = $var20.$next3;
                                }
                            } else {
                                $var26 = $var18.$value;
                                var$16 = $var20.$elementData.data;
                                $var20 = var$16[$var26 & (var$16.length - 1 | 0)];
                                while ($var20 !== null) {
                                    if ($var20.$origKeyHash == $var26) {
                                        $var4 = $var20.$key;
                                        if ($var18 !== $var4 && !jl_Integer_equals($var18, $var4) ? 0 : 1)
                                            break;
                                    }
                                    $var20 = $var20.$next3;
                                }
                            }
                            if (($var20 === null ? null : $var20.$value0).$watchedObject.$value3 > 0.0) {
                                $var19 = 1;
                                break b;
                            }
                        }
                        $var19 = 0;
                    }
                    if ($var19 && $var2 !== null) {
                        nms_Item_$callClinit();
                        if (nms_Item_itemsList.data[$var2.$itemID] === nms_Item_fishingRod) {
                            $var20 = $this.$angler;
                            $var6 = $this.$posX - $var20.$posX;
                            $var27 = $this.$posY - $var20.$posY;
                            $var13 = $this.$posZ - $var20.$posZ;
                            if ($var6 * $var6 + $var27 * $var27 + $var13 * $var13 <= 1024.0) {
                                $var20 = $this.$bobber;
                                if ($var20 === null)
                                    break a;
                                if (!$var20.$isDead) {
                                    $this.$posX = $var20.$posX;
                                    $this.$posY = $var20.$boundingBox0.$minY0 + $var20.$height0 * 0.8;
                                    $this.$posZ = $var20.$posZ;
                                    return;
                                }
                                $this.$bobber = null;
                                break a;
                            }
                        }
                    }
                }
                $this.$isDead = 1;
                $var2 = $this.$angler;
                if ($var2 !== null)
                    $var2.$fishEntity = null;
                $var2.$fishEntity = null;
                return;
            }
        }
        $var19 = $this.$shake;
        if ($var19 > 0)
            $this.$shake = $var19 - 1 | 0;
        if ($this.$inGround) {
            $var20 = $this.$worldObj;
            $var19 = $this.$xTile2;
            $var8 = $this.$yTile2;
            $var26 = $this.$zTile2;
            $ptr = 2;
            continue main;
        }
        $this.$ticksInAir2 = $this.$ticksInAir2 + 1 | 0;
        $var20 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var4 = $this.$worldObj;
        $var19 = 0;
        $var8 = 0;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($var20, $var19, $var8, $var26);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var19 == $this.$inTile2) {
            $var19 = $this.$ticksInGround0 + 1 | 0;
            $this.$ticksInGround0 = $var19;
            if ($var19 == 1200) {
                $this.$isDead = 1;
                $var2 = $this.$angler;
                if ($var2 !== null)
                    $var2.$fishEntity = null;
            }
            return;
        }
        $this.$inGround = 0;
        $var6 = $this.$motionX;
        $var20 = $this.$rand;
        var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$18;
        $this.$motionX = $var6 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.20000000298023224;
        $var6 = $this.$motionY;
        var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$18;
        $this.$motionY = $var6 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7 * 0.20000000298023224;
        $var6 = $this.$motionZ;
        var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$19;
        $this.$motionZ = $var6 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.20000000298023224;
        $this.$ticksInGround0 = 0;
        $this.$ticksInAir2 = 0;
        $var20 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        $var4 = $this.$worldObj;
        $var19 = 0;
        $var8 = 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_rayTraceBlocks_do_do($var4, $var20, $var2, $var19, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        $var20 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX, $this.$posY, $this.$posZ);
        $var2 = nms_Vec3Pool_getVecFromPool($this.$worldObj.$vecPool, $this.$posX + $this.$motionX, $this.$posY + $this.$motionY, $this.$posZ + $this.$motionZ);
        if ($var3 !== null) {
            $var4 = $this.$worldObj.$vecPool;
            $var2 = $var3.$hitVec;
            $var2 = nms_Vec3Pool_getVecFromPool($var4, $var2.$xCoord, $var2.$yCoord, $var2.$zCoord);
        }
        $var4 = null;
        $var18 = $this.$worldObj;
        $var9 = nms_AxisAlignedBB_addCoord($this.$boundingBox0, $this.$motionX, $this.$motionY, $this.$motionZ);
        $var16 = $var9.$minX0 - 1.0;
        $var14 = $var9.$minY0 - 1.0;
        $var21 = $var9.$minZ0 - 1.0;
        $var6 = $var9.$maxX0 + 1.0;
        $var27 = $var9.$maxY + 1.0;
        $var13 = $var9.$maxZ0 + 1.0;
        var$24 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
        $var19 = var$24.$nextPoolIndex;
        $var9 = var$24.$listAABB;
        $var26 = $var9.$size0;
        $var8 = $rt_compare($var19, $var26);
        if ($var8 >= 0) {
            $var12 = new nms_AxisAlignedBB;
            $var12.$minX0 = $var16;
            $var12.$minY0 = $var14;
            $var12.$minZ0 = $var21;
            $var12.$maxX0 = $var6;
            $var12.$maxY = $var27;
            $var12.$maxZ0 = $var13;
            ju_ArrayList_ensureCapacity($var9, $var26 + 1 | 0);
            var$16 = $var9.$array.data;
            $var8 = $var9.$size0;
            $var9.$size0 = $var8 + 1 | 0;
            var$16[$var8] = $var12;
            $var9.$modCount = $var9.$modCount + 1 | 0;
        } else if ($var19 >= 0 && $var8 < 0) {
            $var12 = $var9.$array.data[$var19];
            $var12.$minX0 = $var16;
            $var12.$minY0 = $var14;
            $var12.$minZ0 = $var21;
            $var12.$maxX0 = $var6;
            $var12.$maxY = $var27;
            $var12.$maxZ0 = $var13;
        } else {
            $var20 = new jl_IndexOutOfBoundsException;
            $var20.$suppressionEnabled = 1;
            $var20.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($var20);
            $rt_throw($var20);
        }
        var$24.$nextPoolIndex = var$24.$nextPoolIndex + 1 | 0;
        $var9 = null;
        $ptr = 4;
    case 4:
        $tmp = nms_World_getEntitiesWithinAABBExcludingEntity($var18, $this, $var12, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var6 = 0.0;
        $var8 = 0;
        c: {
            while (true) {
                $var19 = $rt_compare($var8, $var5.$size0);
                if ($var19 >= 0) {
                    if ($var4 !== null) {
                        $var3 = new nms_MovingObjectPosition;
                        $var3.$typeOfHit = nms_EnumMovingObjectType_ENTITY;
                        $var3.$entityHit = $var4;
                        $var3.$hitVec = nms_Vec3Pool_getVecFromPool($var4.$worldObj.$vecPool, $var4.$posX, $var4.$posY, $var4.$posZ);
                    }
                    if ($var3 !== null) {
                        $var20 = $var3.$entityHit;
                        if ($var20 !== null) {
                            $var2 = $this.$angler;
                            $var4 = new nms_EntityDamageSourceIndirect;
                            $var4.$hungerDamage = 0.30000001192092896;
                            $var4.$damageType = $rt_s(2561);
                            $var4.$damageSourceEntity = $this;
                            $var4.$indirectEntity = $var2;
                            $var4.$projectile = 1;
                            $var24 = 0.0;
                            $ptr = 6;
                            continue main;
                        }
                        $this.$inGround = 1;
                    }
                    if ($this.$inGround)
                        return;
                    $var6 = $this.$motionX;
                    $var27 = $this.$motionY;
                    $var13 = $this.$motionZ;
                    $ptr = 5;
                    continue main;
                }
                if ($var8 < 0)
                    break;
                if ($var19 >= 0)
                    break;
                $var9 = $var5.$array.data[$var8];
                if ($var9.$canBeCollidedWith() && !($var9 === $this.$angler && $this.$ticksInAir2 < 5)) {
                    $var18 = $var9.$boundingBox0;
                    $var13 = $var18.$minX0 - 0.30000001192092896;
                    $var16 = $var18.$minY0 - 0.30000001192092896;
                    $var14 = $var18.$minZ0 - 0.30000001192092896;
                    $var21 = $var18.$maxX0 + 0.30000001192092896;
                    $var22 = $var18.$maxY + 0.30000001192092896;
                    $var27 = $var18.$maxZ0 + 0.30000001192092896;
                    var$24 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
                    $var19 = var$24.$nextPoolIndex;
                    $var18 = var$24.$listAABB;
                    $var28 = $var18.$size0;
                    $var26 = $rt_compare($var19, $var28);
                    if ($var26 >= 0) {
                        $var12 = new nms_AxisAlignedBB;
                        $var12.$minX0 = $var13;
                        $var12.$minY0 = $var16;
                        $var12.$minZ0 = $var14;
                        $var12.$maxX0 = $var21;
                        $var12.$maxY = $var22;
                        $var12.$maxZ0 = $var27;
                        ju_ArrayList_ensureCapacity($var18, $var28 + 1 | 0);
                        var$16 = $var18.$array.data;
                        $var26 = $var18.$size0;
                        $var18.$size0 = $var26 + 1 | 0;
                        var$16[$var26] = $var12;
                        $var18.$modCount = $var18.$modCount + 1 | 0;
                    } else {
                        if ($var19 < 0)
                            break c;
                        if ($var26 >= 0)
                            break c;
                        $var12 = $var18.$array.data[$var19];
                        $var12.$minX0 = $var13;
                        $var12.$minY0 = $var16;
                        $var12.$minZ0 = $var14;
                        $var12.$maxX0 = $var21;
                        $var12.$maxY = $var22;
                        $var12.$maxZ0 = $var27;
                    }
                    var$24.$nextPoolIndex = var$24.$nextPoolIndex + 1 | 0;
                    $var12 = nms_AxisAlignedBB_calculateIntercept($var12, $var20, $var2);
                    if ($var12 !== null) {
                        $var18 = $var12.$hitVec;
                        $var27 = $var18.$xCoord - $var20.$xCoord;
                        $var13 = $var18.$yCoord - $var20.$yCoord;
                        $var16 = $var18.$zCoord - $var20.$zCoord;
                        $var13 = jl_Math_sqrt($var27 * $var27 + $var13 * $var13 + $var16 * $var16);
                        if (!($var13 >= $var6 && $var6 !== 0.0)) {
                            $var4 = $var9;
                            $var6 = $var13;
                        }
                    }
                }
                $var8 = $var8 + 1 | 0;
            }
            $var20 = new jl_IndexOutOfBoundsException;
            $var20.$suppressionEnabled = 1;
            $var20.$writableStackTrace = 1;
            $rt_throw($var20);
        }
        $var20 = new jl_IndexOutOfBoundsException;
        $var20.$suppressionEnabled = 1;
        $var20.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var20);
        $rt_throw($var20);
    case 5:
        nms_Entity_moveEntity($this, $var6, $var27, $var13);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$motionX;
        $var6 = $var6 * $var6;
        $var27 = $this.$motionZ;
        $var24 = jl_Math_sqrt($var6 + $var27 * $var27);
        $this.$rotationYaw = jl_Math_atan2($this.$motionX, $this.$motionZ) * 180.0 / 3.141592653589793;
        $var24 = jl_Math_atan2($this.$motionY, $var24) * 180.0 / 3.141592653589793;
        $this.$rotationPitch = $var24;
        while (true) {
            $var25 = $this.$prevRotationPitch;
            if ($var24 - $var25 >= (-180.0))
                break;
            $this.$prevRotationPitch = $var25 - 360.0;
        }
        while (true) {
            $var25 = $this.$prevRotationPitch;
            var$28 = $var24 - $var25;
            if (var$28 < 180.0)
                break;
            $this.$prevRotationPitch = $var25 + 360.0;
        }
        while (true) {
            $var24 = $this.$rotationYaw;
            var$29 = $this.$prevRotationYaw;
            if ($var24 - var$29 >= (-180.0))
                break;
            $this.$prevRotationYaw = var$29 - 360.0;
        }
        while (true) {
            var$29 = $this.$prevRotationYaw;
            var$30 = $var24 - var$29;
            if (var$30 < 180.0)
                break;
            $this.$prevRotationYaw = var$29 + 360.0;
        }
        $this.$rotationPitch = $var25 + var$28 * 0.20000000298023224;
        $this.$rotationYaw = var$29 + var$30 * 0.20000000298023224;
        $var25 = 0.9200000166893005;
        if (!(!$this.$onGround && !$this.$isCollidedHorizontally))
            $var25 = 0.5;
        $var26 = 5;
        $var27 = 0.0;
        $var28 = 0;
        $var13 = 0.2;
        if ($var28 < $var26) {
            $var20 = $this.$boundingBox0;
            $var6 = $var20.$minY0;
            $var16 = $var20.$maxY - $var6;
            $var14 = $var6 + $var16 * ($var28 + 0 | 0) / 5.0 - 0.125 + 0.125;
            $var28 = $var28 + 1 | 0;
            $var16 = $var6 + $var16 * $var28 / 5.0 - 0.125 + 0.125;
            $var2 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var20 = $this.$boundingBox0;
            $var6 = $var20.$minX0;
            $var21 = $var20.$minZ0;
            $var22 = $var20.$maxX0;
            $var23 = $var20.$maxZ0;
            $var19 = $var2.$nextPoolIndex;
            $var20 = $var2.$listAABB;
            $var29 = $var20.$size0;
            $var8 = $rt_compare($var19, $var29);
            if ($var8 >= 0) {
                $var18 = new nms_AxisAlignedBB;
                $var18.$minX0 = $var6;
                $var18.$minY0 = $var14;
                $var18.$minZ0 = $var21;
                $var18.$maxX0 = $var22;
                $var18.$maxY = $var16;
                $var18.$maxZ0 = $var23;
                ju_ArrayList_ensureCapacity($var20, $var29 + 1 | 0);
                var$16 = $var20.$array.data;
                $var8 = $var20.$size0;
                $var20.$size0 = $var8 + 1 | 0;
                var$16[$var8] = $var18;
                $var20.$modCount = $var20.$modCount + 1 | 0;
            } else if ($var19 >= 0 && $var8 < 0) {
                $var18 = $var20.$array.data[$var19];
                $var18.$minX0 = $var6;
                $var18.$minY0 = $var14;
                $var18.$minZ0 = $var21;
                $var18.$maxX0 = $var22;
                $var18.$maxY = $var16;
                $var18.$maxZ0 = $var23;
            } else {
                $var20 = new jl_IndexOutOfBoundsException;
                $var20.$suppressionEnabled = 1;
                $var20.$writableStackTrace = 1;
                $rt_throw($var20);
            }
            $var2.$nextPoolIndex = $var2.$nextPoolIndex + 1 | 0;
            $var20 = $this.$worldObj;
            nms_Material_$callClinit();
            $var2 = nms_Material_water;
            $ptr = 7;
            continue main;
        }
        b: {
            d: {
                e: {
                    $var19 = $rt_compare($var27, 0.0);
                    if ($var19 > 0) {
                        $var8 = $this.$ticksCatchable;
                        if ($var8 > 0)
                            $this.$ticksCatchable = $var8 - 1 | 0;
                        else {
                            $var29 = 500;
                            $var20 = $this.$worldObj;
                            $var6 = $this.$posX;
                            var$32 = $var6 | 0;
                            if ($var6 < var$32)
                                var$32 = var$32 - 1 | 0;
                            $var6 = $this.$posY;
                            $var26 = $var6 | 0;
                            if ($var6 < $var26)
                                $var26 = $var26 - 1 | 0;
                            $var8 = $var26 + 1 | 0;
                            $var6 = $this.$posZ;
                            var$33 = $var6 | 0;
                            if ($var6 < var$33)
                                var$33 = var$33 - 1 | 0;
                            var$28 = $var20.$prevRainingStrength;
                            if (!(var$28 + ($var20.$rainingStrength - var$28) * 1.0 <= 0.2 ? 0 : 1))
                                $var8 = 0;
                            else {
                                $var26 = var$32 >> 4;
                                $var28 = var$33 >> 4;
                                $var2 = $var20.$chunkProvider;
                                $var4 = $var2.$loadedChunkHashMap;
                                var$19 = Long_or(Long_and(Long_fromInt($var26), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var28), Long_create(4294967295, 0)), 32));
                                var$34 = Long_lo(Long_xor(var$19, Long_shru(var$19, 32)));
                                $var15 = var$34 ^ (var$34 >>> 20 | 0) ^ (var$34 >>> 12 | 0);
                                var$36 = $var15 ^ ($var15 >>> 7 | 0) ^ ($var15 >>> 4 | 0);
                                var$16 = $var4.$hashArray.data;
                                $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                f: {
                                    while ($var4 !== null) {
                                        if (Long_eq($var4.$key1, var$19)) {
                                            $var4 = $var4.$value4;
                                            break f;
                                        }
                                        $var4 = $var4.$nextEntry;
                                    }
                                    $var4 = null;
                                }
                                $var4 = $var4;
                                if ($var4 === null) {
                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                        break b;
                                    if ($var2.$loadChunkOnProvideRequest)
                                        break b;
                                    $var4 = $var2.$defaultEmptyChunk;
                                }
                                $var15 = var$32 & 15;
                                var$37 = var$33 & 15;
                                if (!$var4.$canBlockSeeTheSky($var15, $var8, var$37))
                                    $var8 = 0;
                                else {
                                    $var2 = $var20.$chunkProvider;
                                    var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                                    $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                    g: {
                                        while ($var4 !== null) {
                                            if (Long_eq($var4.$key1, var$19)) {
                                                $var4 = $var4.$value4;
                                                break g;
                                            }
                                            $var4 = $var4.$nextEntry;
                                        }
                                        $var4 = null;
                                    }
                                    $var4 = $var4;
                                    if ($var4 === null) {
                                        if ($var2.$worldObj0.$findingSpawnPoint)
                                            break d;
                                        if ($var2.$loadChunkOnProvideRequest)
                                            break d;
                                        $var4 = $var2.$defaultEmptyChunk;
                                    }
                                    if (nms_Chunk_getPrecipitationHeight($var4, $var15, var$37) > $var8)
                                        $var8 = 0;
                                    else {
                                        $var2 = $var20.$chunkProvider.$loadedChunkHashMap;
                                        var$38 = nms_LongHashMap_hash(var$34);
                                        var$16 = $var2.$hashArray.data;
                                        $var2 = var$16[var$38 & (var$16.length - 1 | 0)];
                                        h: {
                                            while (true) {
                                                if ($var2 === null) {
                                                    $var2 = null;
                                                    break h;
                                                }
                                                if (Long_eq($var2.$key1, var$19))
                                                    break;
                                                $var2 = $var2.$nextEntry;
                                            }
                                        }
                                        $var8 = $var2 === null ? 0 : 1;
                                        i: {
                                            if ($var8) {
                                                $var2 = $var20.$chunkProvider;
                                                var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                                                $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                                j: {
                                                    while ($var4 !== null) {
                                                        if (Long_eq($var4.$key1, var$19)) {
                                                            $var4 = $var4.$value4;
                                                            break j;
                                                        }
                                                        $var4 = $var4.$nextEntry;
                                                    }
                                                    $var4 = null;
                                                }
                                                $var4 = $var4;
                                                if ($var4 === null) {
                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                        break e;
                                                    if ($var2.$loadChunkOnProvideRequest)
                                                        break e;
                                                    $var4 = $var2.$defaultEmptyChunk;
                                                }
                                                if ($var4 !== null) {
                                                    $var20 = nms_Chunk_getBiomeGenForWorldCoords($var4, $var15, var$37, $var20.$provider.$worldChunkMgr);
                                                    break i;
                                                }
                                            }
                                            $var20 = $var20.$provider.$worldChunkMgr.$getBiomeGenAt(var$32, var$33);
                                        }
                                        $var8 = $var20.$enableSnow;
                                        $var8 = $var8 ? 0 : !$var8 ? $var20.$enableRain : 0;
                                    }
                                }
                            }
                            if ($var8)
                                $var29 = 300;
                            $var20 = $this.$rand;
                            var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var20.$seed = var$19;
                            $var15 = Long_lo(Long_shru(var$19, 17));
                            $var8 = $var29 - 1 | 0;
                            if (!($var29 & $var8))
                                $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var29), Long_fromInt($var15)), 31));
                            else
                                while (true) {
                                    $var26 = $var15 % $var29 | 0;
                                    if ((($var15 - $var26 | 0) + $var8 | 0) >= 0)
                                        break;
                                    var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $var20.$seed = var$19;
                                    $var15 = Long_lo(Long_shru(var$19, 17));
                                }
                            if (!$var26) {
                                var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var20.$seed = var$19;
                                $var29 = Long_lo(Long_shru(var$19, 17));
                                while (true) {
                                    $var15 = $var29 % 30 | 0;
                                    if ((($var29 - $var15 | 0) + 29 | 0) >= 0)
                                        break;
                                    var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $var20.$seed = var$19;
                                    $var29 = Long_lo(Long_shru(var$19, 17));
                                }
                                $this.$ticksCatchable = $var15 + 10 | 0;
                                $this.$motionY = $this.$motionY - 0.20000000298023224;
                                $var2 = $rt_s(2702);
                                $var24 = 0.25;
                                var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var20.$seed = var$18;
                                var$39 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                                var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var20.$seed = var$19;
                                var$28 = 1.0 + (var$39 - Long_lo(Long_shru(var$19, 24)) / 1.6777216E7) * 0.4000000059604645;
                                $var20 = $this.$worldObj;
                                $ptr = 9;
                                continue main;
                            }
                        }
                    }
                    if ($this.$ticksCatchable > 0) {
                        $var6 = $this.$motionY;
                        $var20 = $this.$rand;
                        var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$18;
                        var$29 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                        var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$18;
                        $var24 = var$29 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                        var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$19;
                        $this.$motionY = $var6 - $var24 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.2;
                    }
                    $var13 = $var27 * 2.0 - 1.0;
                    $var6 = $this.$motionY + 0.03999999910593033 * $var13;
                    $this.$motionY = $var6;
                    if ($var19 > 0) {
                        $var25 = $var25 * 0.9;
                        $this.$motionY = $var6 * 0.8;
                    }
                    $var6 = $this.$motionX;
                    $var27 = $var25;
                    $this.$motionX = $var6 * $var27;
                    $this.$motionY = $this.$motionY * $var27;
                    $this.$motionZ = $this.$motionZ * $var27;
                    nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                    return;
                }
                $ptr = 11;
                continue main;
            }
            $ptr = 10;
            continue main;
        }
        $ptr = 8;
        continue main;
    case 6:
        $tmp = $var20.$attackEntityFrom($var4, $var24);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var19)
            $this.$bobber = $var3.$entityHit;
        if ($this.$inGround)
            return;
        $var6 = $this.$motionX;
        $var27 = $this.$motionY;
        $var13 = $this.$motionZ;
        $ptr = 5;
        continue main;
    case 7:
        $tmp = nms_World_isAABBInMaterial($var20, $var18, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var19 = $tmp;
        if ($var19)
            $var27 = $var27 + $var13;
        if ($var28 < $var26) {
            $var20 = $this.$boundingBox0;
            $var6 = $var20.$minY0;
            $var16 = $var20.$maxY - $var6;
            $var14 = $var6 + $var16 * ($var28 + 0 | 0) / 5.0 - 0.125 + 0.125;
            $var28 = $var28 + 1 | 0;
            $var16 = $var6 + $var16 * $var28 / 5.0 - 0.125 + 0.125;
            $var2 = jl_ThreadLocal_get(nms_AxisAlignedBB_theAABBLocalPool);
            $var20 = $this.$boundingBox0;
            $var6 = $var20.$minX0;
            $var21 = $var20.$minZ0;
            $var22 = $var20.$maxX0;
            $var23 = $var20.$maxZ0;
            $var19 = $var2.$nextPoolIndex;
            $var20 = $var2.$listAABB;
            $var29 = $var20.$size0;
            $var8 = $rt_compare($var19, $var29);
            if ($var8 >= 0) {
                $var18 = new nms_AxisAlignedBB;
                $var18.$minX0 = $var6;
                $var18.$minY0 = $var14;
                $var18.$minZ0 = $var21;
                $var18.$maxX0 = $var22;
                $var18.$maxY = $var16;
                $var18.$maxZ0 = $var23;
                ju_ArrayList_ensureCapacity($var20, $var29 + 1 | 0);
                var$16 = $var20.$array.data;
                $var8 = $var20.$size0;
                $var20.$size0 = $var8 + 1 | 0;
                var$16[$var8] = $var18;
                $var20.$modCount = $var20.$modCount + 1 | 0;
            } else if ($var19 >= 0 && $var8 < 0) {
                $var18 = $var20.$array.data[$var19];
                $var18.$minX0 = $var6;
                $var18.$minY0 = $var14;
                $var18.$minZ0 = $var21;
                $var18.$maxX0 = $var22;
                $var18.$maxY = $var16;
                $var18.$maxZ0 = $var23;
            } else {
                $var20 = new jl_IndexOutOfBoundsException;
                $var20.$suppressionEnabled = 1;
                $var20.$writableStackTrace = 1;
                $rt_throw($var20);
            }
            $var2.$nextPoolIndex = $var2.$nextPoolIndex + 1 | 0;
            $var20 = $this.$worldObj;
            nms_Material_$callClinit();
            $var2 = nms_Material_water;
            continue main;
        }
        k: {
            l: {
                m: {
                    $var19 = $rt_compare($var27, 0.0);
                    if ($var19 > 0) {
                        $var8 = $this.$ticksCatchable;
                        if ($var8 > 0)
                            $this.$ticksCatchable = $var8 - 1 | 0;
                        else {
                            $var29 = 500;
                            $var20 = $this.$worldObj;
                            $var6 = $this.$posX;
                            var$32 = $var6 | 0;
                            if ($var6 < var$32)
                                var$32 = var$32 - 1 | 0;
                            $var6 = $this.$posY;
                            $var26 = $var6 | 0;
                            if ($var6 < $var26)
                                $var26 = $var26 - 1 | 0;
                            $var8 = $var26 + 1 | 0;
                            $var6 = $this.$posZ;
                            var$33 = $var6 | 0;
                            if ($var6 < var$33)
                                var$33 = var$33 - 1 | 0;
                            var$28 = $var20.$prevRainingStrength;
                            if (!(var$28 + ($var20.$rainingStrength - var$28) * 1.0 <= 0.2 ? 0 : 1))
                                $var8 = 0;
                            else {
                                $var26 = var$32 >> 4;
                                $var28 = var$33 >> 4;
                                $var2 = $var20.$chunkProvider;
                                $var4 = $var2.$loadedChunkHashMap;
                                var$19 = Long_or(Long_and(Long_fromInt($var26), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt($var28), Long_create(4294967295, 0)), 32));
                                var$34 = Long_lo(Long_xor(var$19, Long_shru(var$19, 32)));
                                $var15 = var$34 ^ (var$34 >>> 20 | 0) ^ (var$34 >>> 12 | 0);
                                var$36 = $var15 ^ ($var15 >>> 7 | 0) ^ ($var15 >>> 4 | 0);
                                var$16 = $var4.$hashArray.data;
                                $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                n: {
                                    while ($var4 !== null) {
                                        if (Long_eq($var4.$key1, var$19)) {
                                            $var4 = $var4.$value4;
                                            break n;
                                        }
                                        $var4 = $var4.$nextEntry;
                                    }
                                    $var4 = null;
                                }
                                $var4 = $var4;
                                if ($var4 === null) {
                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                        break k;
                                    if ($var2.$loadChunkOnProvideRequest)
                                        break k;
                                    $var4 = $var2.$defaultEmptyChunk;
                                }
                                $var15 = var$32 & 15;
                                var$37 = var$33 & 15;
                                if (!$var4.$canBlockSeeTheSky($var15, $var8, var$37))
                                    $var8 = 0;
                                else {
                                    $var2 = $var20.$chunkProvider;
                                    var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                                    $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                    o: {
                                        while ($var4 !== null) {
                                            if (Long_eq($var4.$key1, var$19)) {
                                                $var4 = $var4.$value4;
                                                break o;
                                            }
                                            $var4 = $var4.$nextEntry;
                                        }
                                        $var4 = null;
                                    }
                                    $var4 = $var4;
                                    if ($var4 === null) {
                                        if ($var2.$worldObj0.$findingSpawnPoint)
                                            break l;
                                        if ($var2.$loadChunkOnProvideRequest)
                                            break l;
                                        $var4 = $var2.$defaultEmptyChunk;
                                    }
                                    if (nms_Chunk_getPrecipitationHeight($var4, $var15, var$37) > $var8)
                                        $var8 = 0;
                                    else {
                                        $var2 = $var20.$chunkProvider.$loadedChunkHashMap;
                                        var$38 = nms_LongHashMap_hash(var$34);
                                        var$16 = $var2.$hashArray.data;
                                        $var2 = var$16[var$38 & (var$16.length - 1 | 0)];
                                        p: {
                                            while (true) {
                                                if ($var2 === null) {
                                                    $var2 = null;
                                                    break p;
                                                }
                                                if (Long_eq($var2.$key1, var$19))
                                                    break;
                                                $var2 = $var2.$nextEntry;
                                            }
                                        }
                                        $var8 = $var2 === null ? 0 : 1;
                                        q: {
                                            if ($var8) {
                                                $var2 = $var20.$chunkProvider;
                                                var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                                                $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                                r: {
                                                    while ($var4 !== null) {
                                                        if (Long_eq($var4.$key1, var$19)) {
                                                            $var4 = $var4.$value4;
                                                            break r;
                                                        }
                                                        $var4 = $var4.$nextEntry;
                                                    }
                                                    $var4 = null;
                                                }
                                                $var4 = $var4;
                                                if ($var4 === null) {
                                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                                        break m;
                                                    if ($var2.$loadChunkOnProvideRequest)
                                                        break m;
                                                    $var4 = $var2.$defaultEmptyChunk;
                                                }
                                                if ($var4 !== null) {
                                                    $var20 = nms_Chunk_getBiomeGenForWorldCoords($var4, $var15, var$37, $var20.$provider.$worldChunkMgr);
                                                    break q;
                                                }
                                            }
                                            $var20 = $var20.$provider.$worldChunkMgr.$getBiomeGenAt(var$32, var$33);
                                        }
                                        $var8 = $var20.$enableSnow;
                                        $var8 = $var8 ? 0 : !$var8 ? $var20.$enableRain : 0;
                                    }
                                }
                            }
                            if ($var8)
                                $var29 = 300;
                            $var20 = $this.$rand;
                            var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var20.$seed = var$19;
                            $var15 = Long_lo(Long_shru(var$19, 17));
                            $var8 = $var29 - 1 | 0;
                            if (!($var29 & $var8))
                                $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var29), Long_fromInt($var15)), 31));
                            else
                                while (true) {
                                    $var26 = $var15 % $var29 | 0;
                                    if ((($var15 - $var26 | 0) + $var8 | 0) >= 0)
                                        break;
                                    var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $var20.$seed = var$19;
                                    $var15 = Long_lo(Long_shru(var$19, 17));
                                }
                            if (!$var26) {
                                var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var20.$seed = var$19;
                                $var29 = Long_lo(Long_shru(var$19, 17));
                                while (true) {
                                    $var15 = $var29 % 30 | 0;
                                    if ((($var29 - $var15 | 0) + 29 | 0) >= 0)
                                        break;
                                    var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $var20.$seed = var$19;
                                    $var29 = Long_lo(Long_shru(var$19, 17));
                                }
                                $this.$ticksCatchable = $var15 + 10 | 0;
                                $this.$motionY = $this.$motionY - 0.20000000298023224;
                                $var2 = $rt_s(2702);
                                $var24 = 0.25;
                                var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var20.$seed = var$18;
                                var$39 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                                var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                $var20.$seed = var$19;
                                var$28 = 1.0 + (var$39 - Long_lo(Long_shru(var$19, 24)) / 1.6777216E7) * 0.4000000059604645;
                                $var20 = $this.$worldObj;
                                $ptr = 9;
                                continue main;
                            }
                        }
                    }
                    if ($this.$ticksCatchable > 0) {
                        $var6 = $this.$motionY;
                        $var20 = $this.$rand;
                        var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$18;
                        var$29 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                        var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$18;
                        $var24 = var$29 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                        var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$19;
                        $this.$motionY = $var6 - $var24 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.2;
                    }
                    $var13 = $var27 * 2.0 - 1.0;
                    $var6 = $this.$motionY + 0.03999999910593033 * $var13;
                    $this.$motionY = $var6;
                    if ($var19 > 0) {
                        $var25 = $var25 * 0.9;
                        $this.$motionY = $var6 * 0.8;
                    }
                    $var6 = $this.$motionX;
                    $var27 = $var25;
                    $this.$motionX = $var6 * $var27;
                    $this.$motionY = $this.$motionY * $var27;
                    $this.$motionZ = $this.$motionZ * $var27;
                    nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                    return;
                }
                $ptr = 11;
                continue main;
            }
            $ptr = 10;
            continue main;
        }
        $ptr = 8;
    case 8:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, $var26, $var28);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        s: {
            c: {
                $var15 = var$32 & 15;
                var$37 = var$33 & 15;
                if (!$var4.$canBlockSeeTheSky($var15, $var8, var$37))
                    $var8 = 0;
                else {
                    $var2 = $var20.$chunkProvider;
                    var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                    $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                    t: {
                        while ($var4 !== null) {
                            if (Long_eq($var4.$key1, var$19)) {
                                $var4 = $var4.$value4;
                                break t;
                            }
                            $var4 = $var4.$nextEntry;
                        }
                        $var4 = null;
                    }
                    $var4 = $var4;
                    if ($var4 === null) {
                        if ($var2.$worldObj0.$findingSpawnPoint)
                            break s;
                        if ($var2.$loadChunkOnProvideRequest)
                            break s;
                        $var4 = $var2.$defaultEmptyChunk;
                    }
                    if (nms_Chunk_getPrecipitationHeight($var4, $var15, var$37) > $var8)
                        $var8 = 0;
                    else {
                        $var2 = $var20.$chunkProvider.$loadedChunkHashMap;
                        var$38 = nms_LongHashMap_hash(var$34);
                        var$16 = $var2.$hashArray.data;
                        $var2 = var$16[var$38 & (var$16.length - 1 | 0)];
                        u: {
                            while (true) {
                                if ($var2 === null) {
                                    $var2 = null;
                                    break u;
                                }
                                if (Long_eq($var2.$key1, var$19))
                                    break;
                                $var2 = $var2.$nextEntry;
                            }
                        }
                        $var8 = $var2 === null ? 0 : 1;
                        v: {
                            if ($var8) {
                                $var2 = $var20.$chunkProvider;
                                var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                                $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                                w: {
                                    while ($var4 !== null) {
                                        if (Long_eq($var4.$key1, var$19)) {
                                            $var4 = $var4.$value4;
                                            break w;
                                        }
                                        $var4 = $var4.$nextEntry;
                                    }
                                    $var4 = null;
                                }
                                $var4 = $var4;
                                if ($var4 === null) {
                                    if ($var2.$worldObj0.$findingSpawnPoint)
                                        break c;
                                    if ($var2.$loadChunkOnProvideRequest)
                                        break c;
                                    $var4 = $var2.$defaultEmptyChunk;
                                }
                                if ($var4 !== null) {
                                    $var20 = nms_Chunk_getBiomeGenForWorldCoords($var4, $var15, var$37, $var20.$provider.$worldChunkMgr);
                                    break v;
                                }
                            }
                            $var20 = $var20.$provider.$worldChunkMgr.$getBiomeGenAt(var$32, var$33);
                        }
                        $var8 = $var20.$enableSnow;
                        $var8 = $var8 ? 0 : !$var8 ? $var20.$enableRain : 0;
                    }
                }
                if ($var8)
                    $var29 = 300;
                $var20 = $this.$rand;
                var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$19;
                $var15 = Long_lo(Long_shru(var$19, 17));
                $var8 = $var29 - 1 | 0;
                if (!($var29 & $var8))
                    $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var29), Long_fromInt($var15)), 31));
                else
                    while (true) {
                        $var26 = $var15 % $var29 | 0;
                        if ((($var15 - $var26 | 0) + $var8 | 0) >= 0)
                            break;
                        var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$19;
                        $var15 = Long_lo(Long_shru(var$19, 17));
                    }
                if ($var26) {
                    if ($this.$ticksCatchable > 0) {
                        $var6 = $this.$motionY;
                        $var20 = $this.$rand;
                        var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$18;
                        var$29 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                        var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$18;
                        $var24 = var$29 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                        var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $var20.$seed = var$19;
                        $this.$motionY = $var6 - $var24 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.2;
                    }
                    $var13 = $var27 * 2.0 - 1.0;
                    $var6 = $this.$motionY + 0.03999999910593033 * $var13;
                    $this.$motionY = $var6;
                    if ($var19 > 0) {
                        $var25 = $var25 * 0.9;
                        $this.$motionY = $var6 * 0.8;
                    }
                    $var6 = $this.$motionX;
                    $var27 = $var25;
                    $this.$motionX = $var6 * $var27;
                    $this.$motionY = $this.$motionY * $var27;
                    $this.$motionZ = $this.$motionZ * $var27;
                    nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                    return;
                }
                var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$19;
                $var29 = Long_lo(Long_shru(var$19, 17));
                while (true) {
                    $var15 = $var29 % 30 | 0;
                    if ((($var29 - $var15 | 0) + 29 | 0) >= 0)
                        break;
                    var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20.$seed = var$19;
                    $var29 = Long_lo(Long_shru(var$19, 17));
                }
                $this.$ticksCatchable = $var15 + 10 | 0;
                $this.$motionY = $this.$motionY - 0.20000000298023224;
                $var2 = $rt_s(2702);
                $var24 = 0.25;
                var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$18;
                var$39 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$19;
                var$28 = 1.0 + (var$39 - Long_lo(Long_shru(var$19, 24)) / 1.6777216E7) * 0.4000000059604645;
                $var20 = $this.$worldObj;
                $ptr = 9;
                continue main;
            }
            $ptr = 11;
            continue main;
        }
        $ptr = 10;
        continue main;
    case 9:
        nms_World_playSoundAtEntity($var20, $this, $var2, $var24, var$28);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $this.$boundingBox0.$minY0;
        $var15 = 0;
        x: while (true) {
            $var24 = $var15;
            var$28 = 1.0 + $this.$width * 20.0;
            if ($var24 >= var$28) {
                $var8 = 0;
                k: while (true) {
                    if ($var8 >= var$28) {
                        if ($this.$ticksCatchable > 0) {
                            $var6 = $this.$motionY;
                            $var20 = $this.$rand;
                            var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var20.$seed = var$18;
                            var$29 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var20.$seed = var$18;
                            $var24 = var$29 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                            var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $var20.$seed = var$19;
                            $this.$motionY = $var6 - $var24 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.2;
                        }
                        $var13 = $var27 * 2.0 - 1.0;
                        $var6 = $this.$motionY + 0.03999999910593033 * $var13;
                        $this.$motionY = $var6;
                        if ($var19 > 0) {
                            $var25 = $var25 * 0.9;
                            $this.$motionY = $var6 * 0.8;
                        }
                        $var6 = $this.$motionX;
                        $var27 = $var25;
                        $this.$motionX = $var6 * $var27;
                        $this.$motionY = $this.$motionY * $var27;
                        $this.$motionZ = $this.$motionZ * $var27;
                        nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                        return;
                    }
                    $var20 = $this.$rand;
                    var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20.$seed = var$18;
                    $var20.$seed = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20 = $this.$worldObj;
                    $var26 = 0;
                    while (true) {
                        $var28 = $rt_compare($var26, $var20.$worldAccesses.$size0);
                        if ($var28 >= 0)
                            break;
                        if ($var26 < 0)
                            break k;
                        if ($var28 >= 0)
                            break k;
                        $var26 = $var26 + 1 | 0;
                    }
                    $var8 = $var8 + 1 | 0;
                }
                $var20 = new jl_IndexOutOfBoundsException;
                $var20.$suppressionEnabled = 1;
                $var20.$writableStackTrace = 1;
                $rt_throw($var20);
            }
            $var20 = $this.$rand;
            var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$18;
            var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$18;
            $var2 = $this.$worldObj;
            $var20.$seed = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var8 = 0;
            while (true) {
                $var26 = $rt_compare($var8, $var2.$worldAccesses.$size0);
                if ($var26 >= 0)
                    break;
                if ($var8 < 0)
                    break x;
                if ($var26 >= 0)
                    break x;
                $var8 = $var8 + 1 | 0;
            }
            $var15 = $var15 + 1 | 0;
        }
        $var20 = new jl_IndexOutOfBoundsException;
        $var20.$suppressionEnabled = 1;
        $var20.$writableStackTrace = 1;
        $rt_throw($var20);
    case 10:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, $var26, $var28);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        s: {
            if (nms_Chunk_getPrecipitationHeight($var4, $var15, var$37) > $var8)
                $var8 = 0;
            else {
                $var2 = $var20.$chunkProvider.$loadedChunkHashMap;
                var$38 = nms_LongHashMap_hash(var$34);
                var$16 = $var2.$hashArray.data;
                $var2 = var$16[var$38 & (var$16.length - 1 | 0)];
                x: {
                    while (true) {
                        if ($var2 === null) {
                            $var2 = null;
                            break x;
                        }
                        if (Long_eq($var2.$key1, var$19))
                            break;
                        $var2 = $var2.$nextEntry;
                    }
                }
                $var8 = $var2 === null ? 0 : 1;
                m: {
                    if ($var8) {
                        $var2 = $var20.$chunkProvider;
                        var$16 = $var2.$loadedChunkHashMap.$hashArray.data;
                        $var4 = var$16[var$36 & (var$16.length - 1 | 0)];
                        d: {
                            while ($var4 !== null) {
                                if (Long_eq($var4.$key1, var$19)) {
                                    $var4 = $var4.$value4;
                                    break d;
                                }
                                $var4 = $var4.$nextEntry;
                            }
                            $var4 = null;
                        }
                        $var4 = $var4;
                        if ($var4 === null) {
                            if ($var2.$worldObj0.$findingSpawnPoint)
                                break s;
                            if ($var2.$loadChunkOnProvideRequest)
                                break s;
                            $var4 = $var2.$defaultEmptyChunk;
                        }
                        if ($var4 !== null) {
                            $var20 = nms_Chunk_getBiomeGenForWorldCoords($var4, $var15, var$37, $var20.$provider.$worldChunkMgr);
                            break m;
                        }
                    }
                    $var20 = $var20.$provider.$worldChunkMgr.$getBiomeGenAt(var$32, var$33);
                }
                $var8 = $var20.$enableSnow;
                $var8 = $var8 ? 0 : !$var8 ? $var20.$enableRain : 0;
            }
            if ($var8)
                $var29 = 300;
            $var20 = $this.$rand;
            var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$19;
            $var15 = Long_lo(Long_shru(var$19, 17));
            $var8 = $var29 - 1 | 0;
            if (!($var29 & $var8))
                $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var29), Long_fromInt($var15)), 31));
            else
                while (true) {
                    $var26 = $var15 % $var29 | 0;
                    if ((($var15 - $var26 | 0) + $var8 | 0) >= 0)
                        break;
                    var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20.$seed = var$19;
                    $var15 = Long_lo(Long_shru(var$19, 17));
                }
            if ($var26) {
                if ($this.$ticksCatchable > 0) {
                    $var6 = $this.$motionY;
                    $var20 = $this.$rand;
                    var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20.$seed = var$18;
                    var$29 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                    var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20.$seed = var$18;
                    $var24 = var$29 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                    var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $var20.$seed = var$19;
                    $this.$motionY = $var6 - $var24 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.2;
                }
                $var13 = $var27 * 2.0 - 1.0;
                $var6 = $this.$motionY + 0.03999999910593033 * $var13;
                $this.$motionY = $var6;
                if ($var19 > 0) {
                    $var25 = $var25 * 0.9;
                    $this.$motionY = $var6 * 0.8;
                }
                $var6 = $this.$motionX;
                $var27 = $var25;
                $this.$motionX = $var6 * $var27;
                $this.$motionY = $this.$motionY * $var27;
                $this.$motionZ = $this.$motionZ * $var27;
                nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
                return;
            }
            var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$19;
            $var29 = Long_lo(Long_shru(var$19, 17));
            while (true) {
                $var15 = $var29 % 30 | 0;
                if ((($var29 - $var15 | 0) + 29 | 0) >= 0)
                    break;
                var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$19;
                $var29 = Long_lo(Long_shru(var$19, 17));
            }
            $this.$ticksCatchable = $var15 + 10 | 0;
            $this.$motionY = $this.$motionY - 0.20000000298023224;
            $var2 = $rt_s(2702);
            $var24 = 0.25;
            var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$18;
            var$39 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
            var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$19;
            var$28 = 1.0 + (var$39 - Long_lo(Long_shru(var$19, 24)) / 1.6777216E7) * 0.4000000059604645;
            $var20 = $this.$worldObj;
            $ptr = 9;
            continue main;
        }
        $ptr = 11;
    case 11:
        $tmp = nms_ChunkProviderServer_loadChunk($var2, $var26, $var28);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $var20 = $var4 === null ? $var20.$provider.$worldChunkMgr.$getBiomeGenAt(var$32, var$33) : nms_Chunk_getBiomeGenForWorldCoords($var4, $var15, var$37, $var20.$provider.$worldChunkMgr);
        $var8 = $var20.$enableSnow;
        if ($var8 ? 0 : !$var8 ? $var20.$enableRain : 0)
            $var29 = 300;
        $var20 = $this.$rand;
        var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$19;
        $var15 = Long_lo(Long_shru(var$19, 17));
        $var8 = $var29 - 1 | 0;
        if (!($var29 & $var8))
            $var26 = Long_lo(Long_shr(Long_mul(Long_fromInt($var29), Long_fromInt($var15)), 31));
        else
            while (true) {
                $var26 = $var15 % $var29 | 0;
                if ((($var15 - $var26 | 0) + $var8 | 0) >= 0)
                    break;
                var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$19;
                $var15 = Long_lo(Long_shru(var$19, 17));
            }
        if ($var26) {
            if ($this.$ticksCatchable > 0) {
                $var6 = $this.$motionY;
                $var20 = $this.$rand;
                var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$18;
                var$29 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                var$18 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$18;
                $var24 = var$29 * Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
                var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $var20.$seed = var$19;
                $this.$motionY = $var6 - $var24 * Long_lo(Long_shru(var$19, 24)) / 1.6777216E7 * 0.2;
            }
            $var13 = $var27 * 2.0 - 1.0;
            $var6 = $this.$motionY + 0.03999999910593033 * $var13;
            $this.$motionY = $var6;
            if ($var19 > 0) {
                $var25 = $var25 * 0.9;
                $this.$motionY = $var6 * 0.8;
            }
            $var6 = $this.$motionX;
            $var27 = $var25;
            $this.$motionX = $var6 * $var27;
            $this.$motionY = $this.$motionY * $var27;
            $this.$motionZ = $this.$motionZ * $var27;
            nms_Entity_setPosition($this, $this.$posX, $this.$posY, $this.$posZ);
            return;
        }
        var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$19;
        $var29 = Long_lo(Long_shru(var$19, 17));
        while (true) {
            $var15 = $var29 % 30 | 0;
            if ((($var29 - $var15 | 0) + 29 | 0) >= 0)
                break;
            var$19 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $var20.$seed = var$19;
            $var29 = Long_lo(Long_shru(var$19, 17));
        }
        $this.$ticksCatchable = $var15 + 10 | 0;
        $this.$motionY = $this.$motionY - 0.20000000298023224;
        $var2 = $rt_s(2702);
        $var24 = 0.25;
        var$18 = Long_and(Long_add(Long_mul($var20.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$18;
        var$39 = Long_lo(Long_shru(var$18, 24)) / 1.6777216E7;
        var$19 = Long_and(Long_add(Long_mul(var$18, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $var20.$seed = var$19;
        var$28 = 1.0 + (var$39 - Long_lo(Long_shru(var$19, 24)) / 1.6777216E7) * 0.4000000059604645;
        $var20 = $this.$worldObj;
        $ptr = 9;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var19, $var6, $var27, $var13, $var21, $var22, $var23, $var7, $var24, $var25, $var20, $var2, $var8, $var18, $var26, var$16, $var4, var$18, var$19, $var3, $var9, $var16, $var14, var$24, $var12, $var5, $var28, var$28, var$29, var$30, $var29, var$32, var$33, var$34, $var15, var$36, var$37, var$38, var$39, $ptr);
},
nms_EntityFishHook_writeEntityToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = $this.$xTile2 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2494);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2494), var$4);
    var$2 = $this.$yTile2 << 16 >> 16;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagShort;
    var$3.$name = $rt_s(2495);
    var$3.$data2 = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2495), var$3);
    var$2 = $this.$zTile2 << 16 >> 16;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2496);
    var$4.$data2 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2496), var$4);
    var$2 = $this.$inTile2 << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2497);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2497), var$4);
    var$2 = $this.$shake << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2499);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2499), var$4);
    var$2 = (!$this.$inGround ? 0 : 1) << 24 >> 24;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2500);
    $par1NBTTagCompound.$data0 = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2500), $par1NBTTagCompound);
},
nms_EntityFishHook_catchFish = $this => {
    let var$1, $var1, var$3, $var2, $var4, $var6, $var8, $var13, $var3, $var5, $var7, var$12, var$13, var$14, var$15, var$16, $var9, var$18, var$19, var$20, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var9 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var7 = $thread.pop();$var5 = $thread.pop();$var3 = $thread.pop();$var13 = $thread.pop();$var8 = $thread.pop();$var6 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var1 = $thread.pop();var$1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$1 = $this.$worldObj;
        if (var$1.$isRemote)
            return 0;
        $var1 = 0;
        if ($this.$bobber !== null) {
            var$3 = $this.$angler;
            $var2 = var$3.$posX - $this.$posX;
            $var4 = var$3.$posY - $this.$posY;
            $var6 = var$3.$posZ - $this.$posZ;
            $var8 = jl_Math_sqrt($var2 * $var2 + $var4 * $var4 + $var6 * $var6);
            var$3 = $this.$bobber;
            var$3.$motionX = var$3.$motionX + $var2 * 0.1;
            var$3.$motionY = var$3.$motionY + $var4 * 0.1 + jl_Math_sqrt($var8) * 0.08;
            var$3 = $this.$bobber;
            var$3.$motionZ = var$3.$motionZ + $var6 * 0.1;
            $var1 = 3;
        } else if ($this.$ticksCatchable > 0) {
            $var13 = new nms_EntityItem;
            $var3 = $this.$posX;
            $var5 = $this.$posY;
            $var7 = $this.$posZ;
            var$3 = new nms_ItemStack;
            nms_Item_$callClinit();
            var$12 = nms_Item_fishRaw;
            nms_ItemStack_$callClinit();
            var$3.$itemID = var$12.$itemID0;
            var$3.$stackSize = 1;
            var$3.$itemDamage = 0;
            $ptr = 1;
            continue main;
        }
        if ($this.$inGround)
            $var1 = 2;
        $this.$isDead = 1;
        var$12 = $this.$angler;
        if (var$12 !== null)
            var$12.$fishEntity = null;
        var$12.$fishEntity = null;
        return $var1;
    case 1:
        nms_EntityItem__init_($var13, var$1, $var3, $var5, $var7);
        if ($rt_suspending()) {
            break main;
        }
        var$1 = $var13.$dataWatcher;
        var$12 = var$1.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$13 = jl_Integer_integerCache.data[138];
        if (var$13 === null) {
            var$12 = var$12.$elementData.data[0];
            while (var$12 !== null && var$12.$key !== null) {
                var$12 = var$12.$next3;
            }
        } else {
            var$14 = var$13.$value;
            var$15 = var$12.$elementData.data;
            var$12 = var$15[var$14 & (var$15.length - 1 | 0)];
            while (var$12 !== null) {
                if (var$12.$origKeyHash == var$14) {
                    var$16 = var$12.$key;
                    if (var$13 !== var$16 && !jl_Integer_equals(var$13, var$16) ? 0 : 1)
                        break;
                }
                var$12 = var$12.$next3;
            }
        }
        var$12 = var$12 === null ? null : var$12.$value0;
        if (!(var$3 !== var$12.$watchedObject ? 0 : 1)) {
            var$12.$watchedObject = var$3;
            var$12.$watched = 1;
            var$1.$objectChanged = 1;
        }
        var$12 = $var13.$dataWatcher;
        var$3 = var$12.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$16 = jl_Integer_integerCache.data[138];
        if (var$16 === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            var$14 = var$16.$value;
            var$15 = var$3.$elementData.data;
            var$3 = var$15[var$14 & (var$15.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$14) {
                    var$1 = var$3.$key;
                    if (var$16 !== var$1 && !jl_Integer_equals(var$16, var$1) ? 0 : 1)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        (var$3 === null ? null : var$3.$value0).$watched = 1;
        var$12.$objectChanged = 1;
        var$3 = $this.$angler;
        $var3 = var$3.$posX - $this.$posX;
        $var5 = var$3.$posY - $this.$posY;
        $var7 = var$3.$posZ - $this.$posZ;
        $var9 = jl_Math_sqrt($var3 * $var3 + $var5 * $var5 + $var7 * $var7);
        $var13.$motionX = $var3 * 0.1;
        $var13.$motionY = $var5 * 0.1 + jl_Math_sqrt($var9) * 0.08;
        $var13.$motionZ = $var7 * 0.1;
        var$3 = $this.$worldObj;
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld(var$3, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $this.$angler;
        nms_StatList_$callClinit();
        var$12 = nms_StatList_fishCaughtStat;
        if (var$12 !== null && !var$12.$isIndependent)
            a: {
                var$1 = var$3.$playerNetServerHandler;
                var$3 = new nms_Packet200Statistic;
                var$18 = var$12.$statId;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$3.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$3.$statisticId = var$18;
                var$3.$amount = 1;
                if (var$3 instanceof nms_Packet3Chat) {
                    var$12 = var$3;
                    var$18 = var$1.$playerEntity.$chatVisibility;
                    if (var$18 == 2)
                        break a;
                    if (var$18 == 1 && !var$12.$isServer)
                        break a;
                }
                try {
                    var$12 = var$1.$netManager;
                    $ptr = 3;
                    continue main;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        var$3 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_errCache === null) {
                    var$12 = new otcic_JSStderrPrintStream;
                    var$1 = new ji_ByteArrayOutputStream;
                    ji_OutputStream__init_(var$1);
                    var$1.$buf = $rt_createByteArray(32);
                    ji_FilterOutputStream__init_(var$12, var$1);
                    var$12.$sb = jl_StringBuilder__init_();
                    var$12.$buffer0 = $rt_createCharArray(32);
                    var$12.$autoFlush = 0;
                    var$12.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = var$12;
                }
                jl_Throwable_printStackTrace(var$3, jl_System_errCache);
            }
        var$3 = $this.$angler;
        var$12 = var$3.$worldObj;
        var$1 = new nms_EntityXPOrb;
        $var5 = var$3.$posX;
        $var3 = var$3.$posY + 0.5;
        $var7 = var$3.$posZ + 0.5;
        var$3 = $this.$rand;
        var$19 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$19;
        var$14 = Long_lo(Long_shru(var$19, 17));
        while (true) {
            var$20 = var$14 % 6 | 0;
            if (((var$14 - var$20 | 0) + 5 | 0) >= 0)
                break;
            var$19 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$19;
            var$14 = Long_lo(Long_shru(var$19, 17));
        }
        $var1 = var$20 + 1 | 0;
        $ptr = 4;
        continue main;
    case 3:
        b: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$12, var$3);
                if ($rt_suspending()) {
                    break main;
                }
                break b;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$3 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$12 = new otcic_JSStderrPrintStream;
                var$1 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$1);
                var$1.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$12, var$1);
                var$12.$sb = jl_StringBuilder__init_();
                var$12.$buffer0 = $rt_createCharArray(32);
                var$12.$autoFlush = 0;
                var$12.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$12;
            }
            jl_Throwable_printStackTrace(var$3, jl_System_errCache);
        }
        var$3 = $this.$angler;
        var$12 = var$3.$worldObj;
        var$1 = new nms_EntityXPOrb;
        $var5 = var$3.$posX;
        $var3 = var$3.$posY + 0.5;
        $var7 = var$3.$posZ + 0.5;
        var$3 = $this.$rand;
        var$19 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        var$3.$seed = var$19;
        var$14 = Long_lo(Long_shru(var$19, 17));
        while (true) {
            var$20 = var$14 % 6 | 0;
            if (((var$14 - var$20 | 0) + 5 | 0) >= 0)
                break;
            var$19 = Long_and(Long_add(Long_mul(var$3.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            var$3.$seed = var$19;
            var$14 = Long_lo(Long_shru(var$19, 17));
        }
        $var1 = var$20 + 1 | 0;
        $ptr = 4;
    case 4:
        nms_EntityXPOrb__init_(var$1, var$12, $var5, $var3, $var7, $var1);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld(var$12, var$1);
        if ($rt_suspending()) {
            break main;
        }
        $var1 = 1;
        if ($this.$inGround)
            $var1 = 2;
        $this.$isDead = 1;
        var$12 = $this.$angler;
        if (var$12 !== null)
            var$12.$fishEntity = null;
        var$12.$fishEntity = null;
        return $var1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, var$1, $var1, var$3, $var2, $var4, $var6, $var8, $var13, $var3, $var5, $var7, var$12, var$13, var$14, var$15, var$16, $var9, var$18, var$19, var$20, $ptr);
},
nms_EntityFishHook_setDead = $this => {
    let var$1;
    $this.$isDead = 1;
    var$1 = $this.$angler;
    if (var$1 !== null)
        var$1.$fishEntity = null;
},
nms_EntityEgg = $rt_classWithoutFields(nms_EntityThrowable),
nms_EntityEgg_onImpact = ($this, $par1MovingObjectPosition) => {
    let var$2, $var2, var$4, $var3, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1MovingObjectPosition = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $par1MovingObjectPosition = $par1MovingObjectPosition.$entityHit;
        if ($par1MovingObjectPosition === null) {
            if (!$this.$worldObj.$isRemote) {
                $par1MovingObjectPosition = $this.$rand;
                var$2 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1MovingObjectPosition.$seed = var$2;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31))) {
                    $var2 = 1;
                    var$4 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par1MovingObjectPosition.$seed = var$4;
                    if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$4, 17)))), 31)))
                        $var2 = 4;
                    $var3 = 0;
                    var$6 = 140;
                    if ($var3 < $var2) {
                        $var4 = new nms_EntityChicken;
                        $par1MovingObjectPosition = $this.$worldObj;
                        $ptr = 2;
                        continue main;
                    }
                }
            }
            $var5 = 0;
            a: {
                while ($var5 < 8) {
                    $par1MovingObjectPosition = $this.$worldObj;
                    $var2 = 0;
                    while (true) {
                        $var3 = $rt_compare($var2, $par1MovingObjectPosition.$worldAccesses.$size0);
                        if ($var3 >= 0)
                            break;
                        if ($var2 < 0)
                            break a;
                        if ($var3 >= 0)
                            break a;
                        $var2 = $var2 + 1 | 0;
                    }
                    $var5 = $var5 + 1 | 0;
                }
                if (!$this.$worldObj.$isRemote)
                    $this.$isDead = 1;
                return;
            }
            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
            $par1MovingObjectPosition.$suppressionEnabled = 1;
            $par1MovingObjectPosition.$writableStackTrace = 1;
            $rt_throw($par1MovingObjectPosition);
        }
        if ($this.$thrower === null) {
            var$9 = $this.$throwerName;
            if (var$9 !== null && var$9.$nativeString.length > 0) {
                var$9 = $this.$worldObj;
                var$10 = $this.$throwerName;
                $var2 = 0;
                b: {
                    while (true) {
                        var$11 = var$9.$playerEntities;
                        $var5 = $rt_compare($var2, var$11.$size0);
                        if ($var5 >= 0) {
                            var$9 = null;
                            break b;
                        }
                        if ($var2 < 0)
                            break;
                        if ($var5 >= 0)
                            break;
                        var$11 = var$11.$array.data[$var2].$username;
                        if (var$10 === var$11)
                            $var5 = 1;
                        else if (!(var$11 instanceof jl_String))
                            $var5 = 0;
                        else {
                            var$11 = var$11;
                            $var5 = var$10.$nativeString !== var$11.$nativeString ? 0 : 1;
                        }
                        if ($var5) {
                            var$9 = var$9.$playerEntities;
                            if ($var2 >= 0 && $var2 < var$9.$size0) {
                                var$9 = var$9.$array.data[$var2];
                                break b;
                            }
                            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                            $par1MovingObjectPosition.$suppressionEnabled = 1;
                            $par1MovingObjectPosition.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                            $rt_throw($par1MovingObjectPosition);
                        }
                        $var2 = $var2 + 1 | 0;
                    }
                    $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
                    $par1MovingObjectPosition.$suppressionEnabled = 1;
                    $par1MovingObjectPosition.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par1MovingObjectPosition);
                    $rt_throw($par1MovingObjectPosition);
                }
                $this.$thrower = var$9;
            }
        }
        var$11 = $this.$thrower;
        var$9 = new nms_EntityDamageSourceIndirect;
        var$9.$hungerDamage = 0.30000001192092896;
        var$9.$damageType = $rt_s(2561);
        var$9.$damageSourceEntity = $this;
        var$9.$indirectEntity = var$11;
        var$9.$projectile = 1;
        var$12 = 0.0;
        $ptr = 1;
    case 1:
        $par1MovingObjectPosition.$attackEntityFrom(var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        if (!$this.$worldObj.$isRemote) {
            $par1MovingObjectPosition = $this.$rand;
            var$2 = Long_and(Long_add(Long_mul($par1MovingObjectPosition.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par1MovingObjectPosition.$seed = var$2;
            if (!Long_lo(Long_shr(Long_mul(Long_fromInt(8), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31))) {
                $var2 = 1;
                var$4 = Long_and(Long_add(Long_mul(var$2, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par1MovingObjectPosition.$seed = var$4;
                if (!Long_lo(Long_shr(Long_mul(Long_fromInt(32), Long_fromInt(Long_lo(Long_shru(var$4, 17)))), 31)))
                    $var2 = 4;
                $var3 = 0;
                var$6 = 140;
                if ($var3 < $var2) {
                    $var4 = new nms_EntityChicken;
                    $par1MovingObjectPosition = $this.$worldObj;
                    $ptr = 2;
                    continue main;
                }
            }
        }
        $var5 = 0;
        c: {
            while ($var5 < 8) {
                $par1MovingObjectPosition = $this.$worldObj;
                $var2 = 0;
                while (true) {
                    $var3 = $rt_compare($var2, $par1MovingObjectPosition.$worldAccesses.$size0);
                    if ($var3 >= 0)
                        break;
                    if ($var2 < 0)
                        break c;
                    if ($var3 >= 0)
                        break c;
                    $var2 = $var2 + 1 | 0;
                }
                $var5 = $var5 + 1 | 0;
            }
            if (!$this.$worldObj.$isRemote)
                $this.$isDead = 1;
            return;
        }
        $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
        $par1MovingObjectPosition.$suppressionEnabled = 1;
        $par1MovingObjectPosition.$writableStackTrace = 1;
        $rt_throw($par1MovingObjectPosition);
    case 2:
        nms_EntityChicken__init_($var4, $par1MovingObjectPosition);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = $var4.$dataWatcher;
        var$11 = new jl_Integer;
        var$11.$value = (-24000);
        $par1MovingObjectPosition = var$13.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$10 = jl_Integer_integerCache.data[var$6];
        if (var$10 === null) {
            $par1MovingObjectPosition = $par1MovingObjectPosition.$elementData.data[0];
            while ($par1MovingObjectPosition !== null && $par1MovingObjectPosition.$key !== null) {
                $par1MovingObjectPosition = $par1MovingObjectPosition.$next3;
            }
        } else {
            var$14 = var$10.$value;
            var$15 = $par1MovingObjectPosition.$elementData.data;
            $par1MovingObjectPosition = var$15[var$14 & (var$15.length - 1 | 0)];
            while ($par1MovingObjectPosition !== null) {
                if ($par1MovingObjectPosition.$origKeyHash == var$14) {
                    var$9 = $par1MovingObjectPosition.$key;
                    if (var$10 !== var$9 && !(var$10 === var$9 ? 1 : var$9 instanceof jl_Integer && var$9.$value == var$14 ? 1 : 0) ? 0 : 1)
                        break;
                }
                $par1MovingObjectPosition = $par1MovingObjectPosition.$next3;
            }
        }
        var$9 = $par1MovingObjectPosition === null ? null : $par1MovingObjectPosition.$value0;
        $par1MovingObjectPosition = var$9.$watchedObject;
        if (!(var$11 === $par1MovingObjectPosition ? 1 : $par1MovingObjectPosition instanceof jl_Integer && $par1MovingObjectPosition.$value == var$11.$value ? 1 : 0)) {
            var$9.$watchedObject = var$11;
            var$9.$watched = 1;
            var$13.$objectChanged = 1;
        }
        $par1MovingObjectPosition = $var4.$dataWatcher.$watchedObjects;
        jl_Integer_ensureIntegerCache();
        var$9 = jl_Integer_integerCache.data[var$6];
        if (var$9 === null) {
            var$10 = $par1MovingObjectPosition.$elementData.data[0];
            while (var$10 !== null && var$10.$key !== null) {
                var$10 = var$10.$next3;
            }
        } else {
            var$16 = jl_Integer_hashCode(var$9.$value);
            var$15 = $par1MovingObjectPosition.$elementData.data;
            var$10 = var$15[var$16 & (var$15.length - 1 | 0)];
            while (var$10 !== null && !(var$10.$origKeyHash == var$16 && ju_HashMap_areEqualKeys(var$9, var$10.$key))) {
                var$10 = var$10.$next3;
            }
        }
        $par1MovingObjectPosition = var$10 === null ? null : var$10.$value0;
        var$12 = !($par1MovingObjectPosition.$watchedObject.$value >= 0 ? 0 : 1) ? 1.0 : 0.5;
        var$17 = $var4.$field_98056_d * var$12;
        var$12 = $var4.$field_98057_e * var$12;
        $ptr = 3;
    case 3:
        nms_Entity_setSize($var4, var$17, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = $this.$posX;
        var$19 = $this.$posY;
        var$20 = $this.$posZ;
        var$12 = $this.$rotationYaw;
        $var4.$posX = var$18;
        $var4.$prevPosX = var$18;
        $var4.$lastTickPosX = var$18;
        var$19 = var$19 + $var4.$yOffset;
        $var4.$posY = var$19;
        $var4.$prevPosY = var$19;
        $var4.$lastTickPosY = var$19;
        $var4.$posZ = var$20;
        $var4.$prevPosZ = var$20;
        $var4.$lastTickPosZ = var$20;
        $var4.$rotationYaw = var$12;
        $var4.$rotationPitch = 0.0;
        nms_Entity_setPosition($var4, var$18, var$19, var$20);
        $par1MovingObjectPosition = $this.$worldObj;
        $ptr = 4;
    case 4:
        nms_World_spawnEntityInWorld($par1MovingObjectPosition, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $var3 + 1 | 0;
        if ($var3 >= $var2) {
            $var5 = 0;
            d: {
                while ($var5 < 8) {
                    $par1MovingObjectPosition = $this.$worldObj;
                    $var2 = 0;
                    while (true) {
                        $var3 = $rt_compare($var2, $par1MovingObjectPosition.$worldAccesses.$size0);
                        if ($var3 >= 0)
                            break;
                        if ($var2 < 0)
                            break d;
                        if ($var3 >= 0)
                            break d;
                        $var2 = $var2 + 1 | 0;
                    }
                    $var5 = $var5 + 1 | 0;
                }
                if (!$this.$worldObj.$isRemote)
                    $this.$isDead = 1;
                return;
            }
            $par1MovingObjectPosition = new jl_IndexOutOfBoundsException;
            $par1MovingObjectPosition.$suppressionEnabled = 1;
            $par1MovingObjectPosition.$writableStackTrace = 1;
            $rt_throw($par1MovingObjectPosition);
        }
        $var4 = new nms_EntityChicken;
        $par1MovingObjectPosition = $this.$worldObj;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1MovingObjectPosition, var$2, $var2, var$4, $var3, var$6, $var4, $var5, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, $ptr);
};
function nms_TileEntityMobSpawnerLogic() {
    nms_MobSpawnerBaseLogic.call(this);
    this.$mobSpawnerEntity = null;
}
let nms_TileEntityMobSpawnerLogic_func_98267_a = ($this, $par1) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    var$2 = $this.$mobSpawnerEntity;
    var$3 = var$2.$worldObj2;
    var$4 = var$2.$xCoord0;
    var$5 = var$2.$yCoord0;
    var$6 = var$2.$zCoord0;
    nms_Block_$callClinit();
    var$7 = nms_Block_mobSpawner.$blockID;
    var$2 = new nms_BlockEventData;
    var$2.$coordX = var$4;
    var$2.$coordY = var$5;
    var$2.$coordZ = var$6;
    var$2.$eventID = $par1;
    var$2.$eventParameter = 0;
    var$2.$blockID2 = var$7;
    var$8 = var$3.$blockEventCache.data[var$3.$blockEventCacheIndex];
    var$6 = 0;
    var$4 = var$8.$modCount;
    var$5 = var$8.$size();
    a: {
        while (true) {
            if (!(var$6 >= var$5 ? 0 : 1)) {
                var$3 = var$3.$blockEventCache.data[var$3.$blockEventCacheIndex];
                ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
                var$9 = var$3.$array.data;
                var$10 = var$3.$size0;
                var$3.$size0 = var$10 + 1 | 0;
                var$9[var$10] = var$2;
                var$3.$modCount = var$3.$modCount + 1 | 0;
                break a;
            }
            if (var$4 < var$8.$modCount) {
                var$2 = new ju_ConcurrentModificationException;
                var$2.$suppressionEnabled = 1;
                var$2.$writableStackTrace = 1;
                $rt_throw(var$2);
            }
            var$10 = var$6 + 1 | 0;
            if (nms_BlockEventData_equals(var$8.$get(var$6), var$2))
                break;
            var$6 = var$10;
        }
    }
},
nms_TileEntityMobSpawnerLogic_getSpawnerWorld = $this => {
    return $this.$mobSpawnerEntity.$worldObj2;
},
nms_TileEntityMobSpawnerLogic_getSpawnerX = $this => {
    return $this.$mobSpawnerEntity.$xCoord0;
},
nms_TileEntityMobSpawnerLogic_getSpawnerY = $this => {
    return $this.$mobSpawnerEntity.$yCoord0;
},
nms_TileEntityMobSpawnerLogic_getSpawnerZ = $this => {
    return $this.$mobSpawnerEntity.$zCoord0;
},
nms_TileEntityMobSpawnerLogic_setRandomMinecart = ($this, $par1WeightedRandomMinecart) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1WeightedRandomMinecart = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$randomMinecart = $par1WeightedRandomMinecart;
        $par1WeightedRandomMinecart = $this.$mobSpawnerEntity;
        var$2 = $par1WeightedRandomMinecart.$worldObj2;
        if (var$2 !== null) {
            var$3 = $par1WeightedRandomMinecart.$xCoord0;
            var$4 = $par1WeightedRandomMinecart.$yCoord0;
            var$5 = $par1WeightedRandomMinecart.$zCoord0;
            var$6 = 0;
            var$7 = var$3 >> 4;
            var$8 = var$5 >> 4;
            var$9 = var$3 & 15;
            var$5 = var$5 & 15;
            $par1WeightedRandomMinecart = var$2.$worldAccesses;
            var$3 = $rt_compare(var$6, $par1WeightedRandomMinecart.$size0);
            if (var$3 < 0) {
                if (var$6 >= 0 && var$3 < 0) {
                    $par1WeightedRandomMinecart = $par1WeightedRandomMinecart.$array.data[var$6].$theWorldServer.$thePlayerManager0;
                    var$3 = 0;
                    $ptr = 1;
                    continue main;
                }
                $par1WeightedRandomMinecart = new jl_IndexOutOfBoundsException;
                $par1WeightedRandomMinecart.$suppressionEnabled = 1;
                $par1WeightedRandomMinecart.$writableStackTrace = 1;
                $rt_throw($par1WeightedRandomMinecart);
            }
        }
        return;
    case 1:
        $tmp = nms_PlayerManager_getOrCreateChunkWatcher($par1WeightedRandomMinecart, var$7, var$8, var$3);
        if ($rt_suspending()) {
            break main;
        }
        $par1WeightedRandomMinecart = $tmp;
        if ($par1WeightedRandomMinecart !== null)
            nms_PlayerInstance_flagChunkForUpdate($par1WeightedRandomMinecart, var$9, var$4, var$5);
        var$6 = var$6 + 1 | 0;
        $par1WeightedRandomMinecart = var$2.$worldAccesses;
        var$3 = $rt_compare(var$6, $par1WeightedRandomMinecart.$size0);
        if (var$3 >= 0)
            return;
        if (var$6 >= 0 && var$3 < 0) {
            $par1WeightedRandomMinecart = $par1WeightedRandomMinecart.$array.data[var$6].$theWorldServer.$thePlayerManager0;
            var$3 = 0;
            continue main;
        }
        $par1WeightedRandomMinecart = new jl_IndexOutOfBoundsException;
        $par1WeightedRandomMinecart.$suppressionEnabled = 1;
        $par1WeightedRandomMinecart.$writableStackTrace = 1;
        $rt_throw($par1WeightedRandomMinecart);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1WeightedRandomMinecart, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, $ptr);
};
function nms_Packet51MapChunkData() {
    let a = this; jl_Object.call(a);
    a.$compressedData = null;
    a.$chunkExistFlag = 0;
    a.$chunkHasAddSectionFlag = 0;
}
let nms_Packet51MapChunkData__init_ = $this => {
    return;
},
nms_Packet51MapChunkData__init_0 = () => {
    let var_0 = new nms_Packet51MapChunkData();
    nms_Packet51MapChunkData__init_(var_0);
    return var_0;
};
function nms_MapData() {
    let a = this; nms_WorldSavedData.call(a);
    a.$xCenter = 0;
    a.$zCenter = 0;
    a.$dimension0 = 0;
    a.$scale0 = 0;
    a.$colors = null;
    a.$playersArrayList = null;
    a.$playersHashMap = null;
    a.$playersVisibleOnMap = null;
}
let nms_MapData_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, $var5, var$4, var$5, $var6, var$7, $var2, $var7, $var3, $var4, var$12, $var8, $var9, var$15, $var10;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2703).$hashCode1) {
            $var5 = 0;
            while (true) {
                if ($var5 >= $rt_s(2703).$nativeString.length)
                    break a;
                $rt_s(2703).$hashCode1 = (31 * $rt_s(2703).$hashCode1 | 0) + $rt_s(2703).$nativeString.charCodeAt($var5) | 0;
                $var5 = $var5 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(2703).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[$var5 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var5) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(2703) !== var$5) {
                    if ($rt_s(2703) === var$5)
                        $var6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var6 = 0;
                    else {
                        var$5 = var$5;
                        $var6 = $rt_s(2703).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var6) {
                        $var6 = 0;
                        break b;
                    }
                }
                $var6 = 1;
            }
            if ($var6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2703) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2703).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2703).$nativeString.length)
                            break c;
                        $rt_s(2703).$hashCode1 = (31 * $rt_s(2703).$hashCode1 | 0) + $rt_s(2703).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(2703).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var5 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var5) {
                    d: {
                        var$5 = var$2.$key;
                        if ($rt_s(2703) !== var$5) {
                            if ($rt_s(2703) === var$5)
                                $var6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var6 = 0;
                            else {
                                var$5 = var$5;
                                $var6 = $rt_s(2703).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var6) {
                                $var6 = 0;
                                break d;
                            }
                        }
                        $var6 = 1;
                    }
                    if ($var6)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var5 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        $var5 = 0;
    e: {
        $this.$dimension0 = $var5;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2704).$hashCode1) {
            $var5 = 0;
            while (true) {
                if ($var5 >= $rt_s(2704).$nativeString.length)
                    break e;
                $rt_s(2704).$hashCode1 = (31 * $rt_s(2704).$hashCode1 | 0) + $rt_s(2704).$nativeString.charCodeAt($var5) | 0;
                $var5 = $var5 + 1 | 0;
            }
        }
    }
    $var5 = $rt_s(2704).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[$var5 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var5) {
            f: {
                var$5 = var$2.$key;
                if ($rt_s(2704) !== var$5) {
                    if ($rt_s(2704) === var$5)
                        $var6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var6 = 0;
                    else {
                        var$5 = var$5;
                        $var6 = $rt_s(2704).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var6) {
                        $var6 = 0;
                        break f;
                    }
                }
                $var6 = 1;
            }
            if ($var6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2704) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2704).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2704).$nativeString.length)
                            break g;
                        $rt_s(2704).$hashCode1 = (31 * $rt_s(2704).$hashCode1 | 0) + $rt_s(2704).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var5 = $rt_s(2704).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var5 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var5) {
                    h: {
                        var$5 = var$2.$key;
                        if ($rt_s(2704) !== var$5) {
                            if ($rt_s(2704) === var$5)
                                $var6 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var6 = 0;
                            else {
                                var$5 = var$5;
                                $var6 = $rt_s(2704).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var6) {
                                $var6 = 0;
                                break h;
                            }
                        }
                        $var6 = 1;
                    }
                    if ($var6)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var5 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        $var5 = 0;
    i: {
        $this.$xCenter = $var5;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2705).$hashCode1) {
            $var5 = 0;
            while (true) {
                if ($var5 >= $rt_s(2705).$nativeString.length)
                    break i;
                $rt_s(2705).$hashCode1 = (31 * $rt_s(2705).$hashCode1 | 0) + $rt_s(2705).$nativeString.charCodeAt($var5) | 0;
                $var5 = $var5 + 1 | 0;
            }
        }
    }
    $var6 = $rt_s(2705).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$7 = var$4[$var6 & (var$4.length - 1 | 0)];
    while (var$7 !== null) {
        if (var$7.$origKeyHash == $var6) {
            j: {
                var$2 = var$7.$key;
                if ($rt_s(2705) !== var$2) {
                    if ($rt_s(2705) === var$2)
                        $var5 = 1;
                    else if (!(var$2 instanceof jl_String))
                        $var5 = 0;
                    else {
                        var$2 = var$2;
                        $var5 = $rt_s(2705).$nativeString !== var$2.$nativeString ? 0 : 1;
                    }
                    if (!$var5) {
                        $var5 = 0;
                        break j;
                    }
                }
                $var5 = 1;
            }
            if ($var5)
                break;
        }
        var$7 = var$7.$next3;
    }
    if (!(var$7 === null ? 0 : 1))
        $var5 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2705) === null) {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2705).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2705).$nativeString.length)
                            break k;
                        $rt_s(2705).$hashCode1 = (31 * $rt_s(2705).$hashCode1 | 0) + $rt_s(2705).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var6 = $rt_s(2705).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$7 = var$4[$var6 & (var$4.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == $var6) {
                    l: {
                        var$2 = var$7.$key;
                        if ($rt_s(2705) !== var$2) {
                            if ($rt_s(2705) !== var$2) {
                                if (!(var$2 instanceof jl_String))
                                    $var5 = 0;
                                else {
                                    var$2 = var$2;
                                    $var5 = $rt_s(2705).$nativeString !== var$2.$nativeString ? 0 : 1;
                                }
                            } else
                                $var5 = 1;
                            if (!$var5) {
                                $var5 = 0;
                                break l;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        $var5 = (var$7 === null ? null : var$7.$value0).$data;
    }
    m: {
        $this.$zCenter = $var5;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2706).$hashCode1) {
            $var5 = 0;
            while (true) {
                if ($var5 >= $rt_s(2706).$nativeString.length)
                    break m;
                $rt_s(2706).$hashCode1 = (31 * $rt_s(2706).$hashCode1 | 0) + $rt_s(2706).$nativeString.charCodeAt($var5) | 0;
                $var5 = $var5 + 1 | 0;
            }
        }
    }
    $var2 = $rt_s(2706).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[$var2 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var2) {
            n: {
                var$5 = var$2.$key;
                if ($rt_s(2706) !== var$5) {
                    if ($rt_s(2706) !== var$5) {
                        if (var$5 instanceof jl_String) {
                            var$5 = var$5;
                            $var5 = $rt_s(2706).$nativeString !== var$5.$nativeString ? 0 : 1;
                        } else
                            $var5 = 0;
                    } else
                        $var5 = 1;
                    if (!$var5) {
                        $var5 = 0;
                        break n;
                    }
                }
                $var5 = 1;
            }
            if ($var5)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2706) !== null) {
            o: {
                if (!$rt_s(2706).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2706).$nativeString.length)
                            break o;
                        $rt_s(2706).$hashCode1 = (31 * $rt_s(2706).$hashCode1 | 0) + $rt_s(2706).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var2 = $rt_s(2706).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var2 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var2) {
                    p: {
                        var$5 = var$2.$key;
                        if ($rt_s(2706) !== var$5) {
                            if ($rt_s(2706) !== var$5) {
                                if (!(var$5 instanceof jl_String))
                                    $var5 = 0;
                                else {
                                    var$5 = var$5;
                                    $var5 = $rt_s(2706).$nativeString !== var$5.$nativeString ? 0 : 1;
                                }
                            } else
                                $var5 = 1;
                            if (!$var5) {
                                $var5 = 0;
                                break p;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        $var5 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        $var5 = 0;
    $this.$scale0 = $var5;
    if ($var5 < 0)
        $this.$scale0 = 0;
    if ($this.$scale0 > 4)
        $this.$scale0 = 4;
    q: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2707).$hashCode1) {
            $var5 = 0;
            while (true) {
                if ($var5 >= $rt_s(2707).$nativeString.length)
                    break q;
                $rt_s(2707).$hashCode1 = (31 * $rt_s(2707).$hashCode1 | 0) + $rt_s(2707).$nativeString.charCodeAt($var5) | 0;
                $var5 = $var5 + 1 | 0;
            }
        }
    }
    $var2 = $rt_s(2707).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[$var2 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var2) {
            r: {
                var$5 = var$2.$key;
                if ($rt_s(2707) !== var$5) {
                    if ($rt_s(2707) === var$5)
                        $var5 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var5 = 0;
                    else {
                        var$5 = var$5;
                        $var5 = $rt_s(2707).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var5) {
                        $var5 = 0;
                        break r;
                    }
                }
                $var5 = 1;
            }
            if ($var5)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2707) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2707).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2707).$nativeString.length)
                            break s;
                        $rt_s(2707).$hashCode1 = (31 * $rt_s(2707).$hashCode1 | 0) + $rt_s(2707).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var2 = $rt_s(2707).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var2 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var2) {
                    t: {
                        var$5 = var$2.$key;
                        if ($rt_s(2707) !== var$5) {
                            if ($rt_s(2707) === var$5)
                                $var5 = 1;
                            else if (var$5 instanceof jl_String) {
                                var$5 = var$5;
                                $var5 = $rt_s(2707).$nativeString !== var$5.$nativeString ? 0 : 1;
                            } else
                                $var5 = 0;
                            if (!$var5) {
                                $var5 = 0;
                                break t;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var2 = (var$2 === null ? null : var$2.$value0).$data2;
    } else
        $var2 = 0;
    u: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2708).$hashCode1) {
            $var5 = 0;
            while (true) {
                if ($var5 >= $rt_s(2708).$nativeString.length)
                    break u;
                $rt_s(2708).$hashCode1 = (31 * $rt_s(2708).$hashCode1 | 0) + $rt_s(2708).$nativeString.charCodeAt($var5) | 0;
                $var5 = $var5 + 1 | 0;
            }
        }
    }
    $var7 = $rt_s(2708).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[$var7 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == $var7) {
            v: {
                var$5 = var$2.$key;
                if ($rt_s(2708) !== var$5) {
                    if ($rt_s(2708) === var$5)
                        $var5 = 1;
                    else if (!(var$5 instanceof jl_String))
                        $var5 = 0;
                    else {
                        var$5 = var$5;
                        $var5 = $rt_s(2708).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!$var5) {
                        $var5 = 0;
                        break v;
                    }
                }
                $var5 = 1;
            }
            if ($var5)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        $var3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2708) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            w: {
                if (!$rt_s(2708).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2708).$nativeString.length)
                            break w;
                        $rt_s(2708).$hashCode1 = (31 * $rt_s(2708).$hashCode1 | 0) + $rt_s(2708).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(2708).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var7) {
                    x: {
                        var$5 = var$2.$key;
                        if ($rt_s(2708) !== var$5) {
                            if ($rt_s(2708) === var$5)
                                $var5 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var5 = 0;
                            else {
                                var$5 = var$5;
                                $var5 = $rt_s(2708).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break x;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        $var3 = (var$2 === null ? null : var$2.$value0).$data2;
    }
    y: {
        if ($var2 == 128 && $var3 == 128) {
            z: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2709).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2709).$nativeString.length)
                            break z;
                        $rt_s(2709).$hashCode1 = (31 * $rt_s(2709).$hashCode1 | 0) + $rt_s(2709).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var2 = $rt_s(2709).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var2 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var2) {
                    ba: {
                        var$5 = var$2.$key;
                        if ($rt_s(2709) !== var$5) {
                            if ($rt_s(2709) === var$5)
                                $var5 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var5 = 0;
                            else {
                                var$5 = var$5;
                                $var5 = $rt_s(2709).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break ba;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                var$4 = $rt_createByteArray(0);
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2709) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bb: {
                        if (!$rt_s(2709).$hashCode1) {
                            $var5 = 0;
                            while (true) {
                                if ($var5 >= $rt_s(2709).$nativeString.length)
                                    break bb;
                                $rt_s(2709).$hashCode1 = (31 * $rt_s(2709).$hashCode1 | 0) + $rt_s(2709).$nativeString.charCodeAt($var5) | 0;
                                $var5 = $var5 + 1 | 0;
                            }
                        }
                    }
                    $var2 = $rt_s(2709).$hashCode1;
                    var$4 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$4[$var2 & (var$4.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == $var2) {
                            bc: {
                                var$2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2709) !== var$2) {
                                    if ($rt_s(2709) === var$2)
                                        $var5 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        $var5 = 0;
                                    else {
                                        var$2 = var$2;
                                        $var5 = $rt_s(2709).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!$var5) {
                                        $var5 = 0;
                                        break bc;
                                    }
                                }
                                $var5 = 1;
                            }
                            if ($var5)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$byteArray;
            }
            $this.$colors = var$4;
        } else {
            bd: {
                var$2 = $par1NBTTagCompound.$tagMap;
                if (!$rt_s(2709).$hashCode1) {
                    $var5 = 0;
                    while (true) {
                        if ($var5 >= $rt_s(2709).$nativeString.length)
                            break bd;
                        $rt_s(2709).$hashCode1 = (31 * $rt_s(2709).$hashCode1 | 0) + $rt_s(2709).$nativeString.charCodeAt($var5) | 0;
                        $var5 = $var5 + 1 | 0;
                    }
                }
            }
            $var7 = $rt_s(2709).$hashCode1;
            var$4 = var$2.$elementData.data;
            var$2 = var$4[$var7 & (var$4.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == $var7) {
                    be: {
                        var$5 = var$2.$key;
                        if ($rt_s(2709) !== var$5) {
                            if ($rt_s(2709) === var$5)
                                $var5 = 1;
                            else if (!(var$5 instanceof jl_String))
                                $var5 = 0;
                            else {
                                var$5 = var$5;
                                $var5 = $rt_s(2709).$nativeString !== var$5.$nativeString ? 0 : 1;
                            }
                            if (!$var5) {
                                $var5 = 0;
                                break be;
                            }
                        }
                        $var5 = 1;
                    }
                    if ($var5)
                        break;
                }
                var$2 = var$2.$next3;
            }
            if (!(var$2 === null ? 0 : 1))
                $var4 = $rt_createByteArray(0);
            else {
                $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
                if ($rt_s(2709) === null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                    while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                } else {
                    bf: {
                        if (!$rt_s(2709).$hashCode1) {
                            $var5 = 0;
                            while (true) {
                                if ($var5 >= $rt_s(2709).$nativeString.length)
                                    break bf;
                                $rt_s(2709).$hashCode1 = (31 * $rt_s(2709).$hashCode1 | 0) + $rt_s(2709).$nativeString.charCodeAt($var5) | 0;
                                $var5 = $var5 + 1 | 0;
                            }
                        }
                    }
                    $var7 = $rt_s(2709).$hashCode1;
                    var$4 = $par1NBTTagCompound.$elementData.data;
                    $par1NBTTagCompound = var$4[$var7 & (var$4.length - 1 | 0)];
                    while ($par1NBTTagCompound !== null) {
                        if ($par1NBTTagCompound.$origKeyHash == $var7) {
                            bg: {
                                var$2 = $par1NBTTagCompound.$key;
                                if ($rt_s(2709) !== var$2) {
                                    if ($rt_s(2709) === var$2)
                                        $var5 = 1;
                                    else if (!(var$2 instanceof jl_String))
                                        $var5 = 0;
                                    else {
                                        var$2 = var$2;
                                        $var5 = $rt_s(2709).$nativeString !== var$2.$nativeString ? 0 : 1;
                                    }
                                    if (!$var5) {
                                        $var5 = 0;
                                        break bg;
                                    }
                                }
                                $var5 = 1;
                            }
                            if ($var5)
                                break;
                        }
                        $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                    }
                }
                $var4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$byteArray;
            }
            var$4 = $rt_createByteArray(16384);
            var$12 = var$4.data;
            $this.$colors = var$4;
            $var5 = (128 - $var2 | 0) / 2 | 0;
            $var6 = (128 - $var3 | 0) / 2 | 0;
            $var7 = 0;
            while (true) {
                if ($var7 >= $var3)
                    break y;
                bh: {
                    $var8 = $var7 + $var6 | 0;
                    if (!($var8 < 0 && $var8 >= 128)) {
                        $var9 = 0;
                        var$15 = $var8 * 128 | 0;
                        while (true) {
                            if ($var9 >= $var2)
                                break bh;
                            $var10 = $var9 + $var5 | 0;
                            if (!($var10 < 0 && $var10 >= 128))
                                var$12[$var10 + var$15 | 0] = $var4.data[$var9 + $rt_imul($var7, $var2) | 0];
                            $var9 = $var9 + 1 | 0;
                        }
                    }
                }
                $var7 = $var7 + 1 | 0;
            }
        }
    }
},
nms_MapData_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5;
    var$2 = $this.$dimension0;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2703);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2703), var$4);
    var$2 = $this.$xCenter;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagInt;
    var$3.$name = $rt_s(2704);
    var$3.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2704), var$3);
    var$2 = $this.$zCenter;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2705);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2705), var$4);
    var$2 = $this.$scale0;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2706);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2706), var$4);
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2707);
    var$4.$data2 = 128;
    ju_HashMap_putImpl(var$3, $rt_s(2707), var$4);
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagShort;
    var$4.$name = $rt_s(2708);
    var$4.$data2 = 128;
    ju_HashMap_putImpl(var$3, $rt_s(2708), var$4);
    var$5 = $this.$colors;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByteArray;
    $par1NBTTagCompound.$name = $rt_s(2709);
    $par1NBTTagCompound.$byteArray = var$5;
    ju_HashMap_putImpl(var$4, $rt_s(2709), $par1NBTTagCompound);
},
nms_MapData_updateVisiblePlayers = ($this, $par1EntityPlayer, $par2ItemStack) => {
    let $var3, var$4, var$5, $var4, var$7, var$8, $var5, var$10, var$11;
    $var3 = $this.$playersHashMap;
    if ($par1EntityPlayer === null) {
        $var3 = $var3.$elementData.data[0];
        while ($var3 !== null && $var3.$key !== null) {
            $var3 = $var3.$next3;
        }
    } else {
        var$4 = $par1EntityPlayer.$entityId;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$4) {
                $var4 = $var3.$key;
                if ($par1EntityPlayer !== $var4 && !(!($var4 instanceof nms_Entity) ? 0 : $var4.$entityId != var$4 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var3 = $var3.$next3;
        }
    }
    if (!($var3 === null ? 0 : 1)) {
        $var3 = nms_MapInfo__init_($this, $par1EntityPlayer);
        ju_HashMap_putImpl($this.$playersHashMap, $par1EntityPlayer, $var3);
        $var4 = $this.$playersArrayList;
        ju_ArrayList_ensureCapacity($var4, $var4.$size0 + 1 | 0);
        var$5 = $var4.$array.data;
        var$7 = $var4.$size0;
        $var4.$size0 = var$7 + 1 | 0;
        var$5[var$7] = $var3;
        $var4.$modCount = $var4.$modCount + 1 | 0;
    }
    if (!nms_InventoryPlayer_hasItemStack($par1EntityPlayer.$inventory0, $par2ItemStack)) {
        var$8 = $this.$playersVisibleOnMap;
        $var3 = ju_HashMap_removeByKey(var$8, $par1EntityPlayer.$username);
        if ($var3 !== null) {
            $var4 = $var3.$chainBackward;
            $var3 = $var3.$chainForward;
            if ($var4 !== null) {
                $var4.$chainForward = $var3;
                if ($var3 === null)
                    var$8.$tail = $var4;
                else
                    $var3.$chainBackward = $var4;
            } else {
                var$8.$head = $var3;
                if ($var3 === null)
                    var$8.$tail = null;
                else
                    $var3.$chainBackward = null;
            }
        }
    }
    $var5 = 0;
    a: {
        b: while (true) {
            $var3 = $this.$playersArrayList;
            var$10 = $rt_compare($var5, $var3.$size0);
            if (var$10 >= 0) {
                $var3 = $par2ItemStack.$itemFrame;
                if ($var3 === null ? 0 : 1) {
                    $par1EntityPlayer = $par1EntityPlayer.$worldObj;
                    var$7 = $var3.$entityId;
                    $var3 = new jl_StringBuilder;
                    $var3.$buffer = $rt_createCharArray(16);
                    jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(1342));
                    jl_AbstractStringBuilder_insert0($var3, $var3.$length0, var$7, 10);
                    $var4 = new jl_String;
                    var$5 = $var3.$buffer;
                    var$11 = var$5.data;
                    var$4 = $var3.$length0;
                    $var5 = var$11.length;
                    if (var$4 >= 0 && var$4 <= ($var5 - 0 | 0)) {
                        $var4.$nativeString = $rt_charArrayToString(var$5.data, 0, var$4);
                        $par2ItemStack = $par2ItemStack.$itemFrame;
                        nms_MapData_func_82567_a($this, 1, $par1EntityPlayer, $var4, $par2ItemStack.$xPosition1, $par2ItemStack.$zPosition1, $par2ItemStack.$hangingDirection * 90 | 0);
                    } else {
                        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
                        $par1EntityPlayer.$suppressionEnabled = 1;
                        $par1EntityPlayer.$writableStackTrace = 1;
                        $rt_throw($par1EntityPlayer);
                    }
                }
                return;
            }
            if ($var5 < 0)
                break a;
            if (var$10 >= 0)
                break a;
            $var4 = $var3.$array.data[$var5];
            $var3 = $var4.$entityplayerObj;
            if (!(!$var3.$isDead && !(!nms_InventoryPlayer_hasItemStack($var3.$inventory0, $par2ItemStack) && !($par2ItemStack.$itemFrame === null ? 0 : 1)))) {
                ju_HashMap_removeByKey($this.$playersHashMap, $var4.$entityplayerObj);
                var$8 = $this.$playersArrayList;
                var$4 = var$8.$size0;
                var$10 = 0;
                c: {
                    while (true) {
                        var$7 = $rt_compare(var$10, var$4);
                        if (var$7 >= 0) {
                            var$10 = (-1);
                            break c;
                        }
                        if (var$10 < 0)
                            break b;
                        if (var$7 >= 0)
                            break b;
                        $var3 = var$8.$array.data[var$10];
                        if ($var4 === $var3 ? 1 : $var4 === null ? ($var3 !== null ? 0 : 1) : $var4 !== $var3 ? 0 : 1)
                            break;
                        var$10 = var$10 + 1 | 0;
                    }
                }
                if (var$10 >= 0)
                    ju_ArrayList_remove(var$8, var$10);
            } else if (!($par2ItemStack.$itemFrame === null ? 0 : 1)) {
                $var3 = $var4.$entityplayerObj;
                if ($var3.$dimension == $this.$dimension0)
                    nms_MapData_func_82567_a($this, 0, $var3.$worldObj, $var3.$username, $var3.$posX, $var3.$posZ, $var3.$rotationYaw);
            }
            $var5 = $var5 + 1 | 0;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    }
    $par1EntityPlayer = new jl_IndexOutOfBoundsException;
    $par1EntityPlayer.$suppressionEnabled = 1;
    $par1EntityPlayer.$writableStackTrace = 1;
    $rt_throw($par1EntityPlayer);
},
nms_MapData_func_82567_a = ($this, $par1, $par2World, $par3Str, $par4, $par6, $par8) => {
    let $var10, $var11, var$9, $var12, $var13, $var14, $var15, $var17, var$15;
    $var10 = 1 << $this.$scale0;
    $var11 = $par4 - $this.$xCenter;
    var$9 = $var10;
    $var11 = $var11 / var$9;
    $var12 = ($par6 - $this.$zCenter) / var$9;
    $var13 = ($var11 * 2.0 + 0.5 | 0) << 24 >> 24;
    $var14 = ($var12 * 2.0 + 0.5 | 0) << 24 >> 24;
    $var10 = $rt_compare($var11, (-63.0));
    if ($var10 >= 0 && $var12 >= (-63.0) && $var11 <= 63.0 && $var12 <= 63.0) {
        $var15 = (($par8 + ($par8 >= 0.0 ? 8.0 : (-8.0))) * 16.0 / 360.0 | 0) << 24 >> 24;
        if ($this.$dimension0 < 0) {
            $var17 = Long_lo(Long_div($par2World.$worldInfo.$getWorldTime(), Long_fromInt(10)));
            $var15 = (($rt_imul($rt_imul($var17, $var17), 34187121) + ($var17 * 121 | 0) | 0) >> 15 & 15) << 24 >> 24;
        }
    } else if (jl_Math_absImpl0($var11) < 320.0 && jl_Math_absImpl0($var12) < 320.0) {
        $par1 = 6;
        $var15 = 0;
        if ($var10 <= 0)
            $var13 = (-128);
        if ($var12 <= (-63.0))
            $var14 = (-128);
        if ($var11 >= 63.0)
            $var13 = 127;
        if ($var12 >= 63.0)
            $var14 = 127;
    } else {
        $par2World = $this.$playersVisibleOnMap;
        $par3Str = ju_HashMap_removeByKey($par2World, $par3Str);
        if ($par3Str !== null) {
            var$15 = $par3Str.$chainBackward;
            $par3Str = $par3Str.$chainForward;
            if (var$15 !== null) {
                var$15.$chainForward = $par3Str;
                if ($par3Str === null)
                    $par2World.$tail = var$15;
                else
                    $par3Str.$chainBackward = var$15;
            } else {
                $par2World.$head = $par3Str;
                if ($par3Str === null)
                    $par2World.$tail = null;
                else
                    $par3Str.$chainBackward = null;
            }
        }
        return;
    }
    $par2World = $this.$playersVisibleOnMap;
    var$15 = new nms_MapCoord;
    $par1 = $par1 << 24 >> 24;
    var$15.$data15 = $this;
    var$15.$iconSize = $par1;
    var$15.$centerX = $var13;
    var$15.$centerZ = $var14;
    var$15.$iconRotation = $var15;
    $var10 = $par2World.$elementCount;
    ju_LinkedHashMap_putImpl($par2World, $par3Str, var$15, 0, $par2World.$accessOrder);
},
nms_MapData_setColumnDirty = ($this, $par1, $par2, $par3) => {
    let $var4, $var5, var$6, var$7;
    $this.$dirty = 1;
    $var4 = 0;
    a: {
        while (true) {
            $var5 = $this.$playersArrayList;
            var$6 = $rt_compare($var4, $var5.$size0);
            if (var$6 >= 0)
                break;
            if ($var4 < 0)
                break a;
            if (var$6 >= 0)
                break a;
            $var5 = $var5.$array.data[$var4];
            var$7 = $var5.$field_76209_b.data;
            if (!(var$7[$par1] >= 0 && var$7[$par1] <= $par2))
                var$7[$par1] = $par2;
            var$7 = $var5.$field_76210_c.data;
            if (!(var$7[$par1] >= 0 && var$7[$par1] >= $par3))
                var$7[$par1] = $par3;
            $var4 = $var4 + 1 | 0;
        }
        return;
    }
    $var5 = new jl_IndexOutOfBoundsException;
    $var5.$suppressionEnabled = 1;
    $var5.$writableStackTrace = 1;
    $rt_throw($var5);
};
function nms_WeightedRandomMinecart() {
    let a = this; nms_WeightedRandomItem.call(a);
    a.$field_98222_b = null;
    a.$minecartName = null;
    a.$field_98221_d = null;
}
let nms_WeightedRandomMinecart__init_ = ($this, $par1MobSpawnerBaseLogic, $par2NBTTagCompound) => {
    let $var4, var$4, var$5, var$6, var$7, $var3, var$9, var$10;
    a: {
        $var4 = $par2NBTTagCompound.$tagMap;
        if (!$rt_s(2655).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2655).$nativeString.length)
                    break a;
                $rt_s(2655).$hashCode1 = (31 * $rt_s(2655).$hashCode1 | 0) + $rt_s(2655).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2655).$hashCode1;
    var$5 = $var4.$elementData.data;
    $var4 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == var$4) {
            b: {
                var$6 = $var4.$key;
                if ($rt_s(2655) !== var$6) {
                    if ($rt_s(2655) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$7 = $rt_s(2655).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$7 = 0;
                    } else
                        var$7 = 1;
                    if (!var$7) {
                        var$7 = 0;
                        break b;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        $var4 = $var4.$next3;
    }
    if ($var4 === null ? 0 : 1) {
        $var4 = $par2NBTTagCompound.$tagMap;
        if ($rt_s(2655) === null) {
            $var4 = $var4.$elementData.data[0];
            while ($var4 !== null && $var4.$key !== null) {
                $var4 = $var4.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2655).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2655).$nativeString.length)
                            break c;
                        $rt_s(2655).$hashCode1 = (31 * $rt_s(2655).$hashCode1 | 0) + $rt_s(2655).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2655).$hashCode1;
            var$5 = $var4.$elementData.data;
            $var4 = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($var4 !== null) {
                if ($var4.$origKeyHash == var$4) {
                    d: {
                        var$6 = $var4.$key;
                        if ($rt_s(2655) !== var$6) {
                            if ($rt_s(2655) === var$6)
                                var$7 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$7 = 0;
                            else {
                                var$6 = var$6;
                                var$7 = $rt_s(2655).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break d;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                $var4 = $var4.$next3;
            }
        }
        var$4 = ($var4 === null ? null : $var4.$value0).$data;
    } else
        var$4 = 0;
    e: {
        $this.$itemWeight = var$4;
        $this.$field_98221_d = $par1MobSpawnerBaseLogic;
        $var3 = $par2NBTTagCompound.$tagMap;
        if (!$rt_s(2654).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2654).$nativeString.length)
                    break e;
                $rt_s(2654).$hashCode1 = (31 * $rt_s(2654).$hashCode1 | 0) + $rt_s(2654).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$9 = $rt_s(2654).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$9 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$9) {
            f: {
                $var4 = $var3.$key;
                if ($rt_s(2654) !== $var4) {
                    if ($rt_s(2654) !== $var4) {
                        if ($var4 instanceof jl_String) {
                            $var4 = $var4;
                            var$4 = $rt_s(2654).$nativeString !== $var4.$nativeString ? 0 : 1;
                        } else
                            var$4 = 0;
                    } else
                        var$4 = 1;
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var3 = $var3.$next3;
    }
    if ($var3 === null ? 0 : 1) {
        $var3 = $par2NBTTagCompound.$tagMap;
        if ($rt_s(2654) !== null) {
            g: {
                if (!$rt_s(2654).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2654).$nativeString.length)
                            break g;
                        $rt_s(2654).$hashCode1 = (31 * $rt_s(2654).$hashCode1 | 0) + $rt_s(2654).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(2654).$hashCode1;
            var$5 = $var3.$elementData.data;
            $var3 = var$5[var$9 & (var$5.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$9) {
                    h: {
                        $var4 = $var3.$key;
                        if ($rt_s(2654) !== $var4) {
                            if ($rt_s(2654) !== $var4) {
                                if ($var4 instanceof jl_String) {
                                    $var4 = $var4;
                                    var$4 = $rt_s(2654).$nativeString !== $var4.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var3 = $var3.$next3;
            }
        } else {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
    } else {
        $var3 = new nms_NBTTagCompound;
        if ($rt_s(2654) !== null)
            $var3.$name = $rt_s(2654);
        else
            $var3.$name = $rt_s(3);
        $par1MobSpawnerBaseLogic = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        $par1MobSpawnerBaseLogic.$elementCount = 0;
        var$10 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$5 = var$10.data;
        $par1MobSpawnerBaseLogic.$elementData = var$10;
        $par1MobSpawnerBaseLogic.$loadFactor = 0.75;
        $par1MobSpawnerBaseLogic.$threshold = var$5.length * 0.75 | 0;
        $var3.$tagMap = $par1MobSpawnerBaseLogic;
    }
    i: {
        $var4 = $par2NBTTagCompound.$tagMap;
        if (!$rt_s(1636).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(1636).$nativeString.length)
                    break i;
                $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$9 = $rt_s(1636).$hashCode1;
    var$5 = $var4.$elementData.data;
    $var4 = var$5[var$9 & (var$5.length - 1 | 0)];
    while ($var4 !== null) {
        if ($var4.$origKeyHash == var$9) {
            j: {
                var$6 = $var4.$key;
                if ($rt_s(1636) !== var$6) {
                    if ($rt_s(1636) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(1636).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var4 = $var4.$next3;
    }
    if (!($var4 === null ? 0 : 1))
        $var4 = $rt_s(3);
    else {
        $par2NBTTagCompound = $par2NBTTagCompound.$tagMap;
        if ($rt_s(1636) === null) {
            $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
            while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
            }
        } else {
            k: {
                if (!$rt_s(1636).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(1636).$nativeString.length)
                            break k;
                        $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(1636).$hashCode1;
            var$5 = $par2NBTTagCompound.$elementData.data;
            $par2NBTTagCompound = var$5[var$9 & (var$5.length - 1 | 0)];
            while ($par2NBTTagCompound !== null) {
                if ($par2NBTTagCompound.$origKeyHash == var$9) {
                    l: {
                        $var4 = $par2NBTTagCompound.$key;
                        if ($rt_s(1636) !== $var4) {
                            if ($rt_s(1636) === $var4)
                                var$4 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$4 = 0;
                            else {
                                $var4 = $var4;
                                var$4 = $rt_s(1636).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
            }
        }
        $var4 = ($par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0).$data1;
    }
    if ($var4 === $rt_s(2504))
        var$4 = 1;
    else if (!($rt_s(2504) instanceof jl_String))
        var$4 = 0;
    else {
        $par1MobSpawnerBaseLogic = $rt_s(2504);
        var$4 = $var4.$nativeString !== $par1MobSpawnerBaseLogic.$nativeString ? 0 : 1;
    }
    if (var$4) {
        if ($var3 === null)
            $var4 = $rt_s(2507);
        else {
            m: {
                $par2NBTTagCompound = $var3.$tagMap;
                if (!$rt_s(1636).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(1636).$nativeString.length)
                            break m;
                        $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$9 = $rt_s(1636).$hashCode1;
            var$5 = $par2NBTTagCompound.$elementData.data;
            $par2NBTTagCompound = var$5[var$9 & (var$5.length - 1 | 0)];
            while ($par2NBTTagCompound !== null) {
                if ($par2NBTTagCompound.$origKeyHash == var$9) {
                    n: {
                        var$6 = $par2NBTTagCompound.$key;
                        if ($rt_s(1636) !== var$6) {
                            if ($rt_s(1636) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(1636).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break n;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par2NBTTagCompound = $par2NBTTagCompound.$next3;
            }
            if (!($par2NBTTagCompound === null ? 0 : 1))
                var$4 = 0;
            else {
                $par2NBTTagCompound = $var3.$tagMap;
                if ($rt_s(1636) === null) {
                    $par2NBTTagCompound = $par2NBTTagCompound.$elementData.data[0];
                    while ($par2NBTTagCompound !== null && $par2NBTTagCompound.$key !== null) {
                        $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                    }
                } else {
                    o: {
                        if (!$rt_s(1636).$hashCode1) {
                            var$4 = 0;
                            while (true) {
                                if (var$4 >= $rt_s(1636).$nativeString.length)
                                    break o;
                                $rt_s(1636).$hashCode1 = (31 * $rt_s(1636).$hashCode1 | 0) + $rt_s(1636).$nativeString.charCodeAt(var$4) | 0;
                                var$4 = var$4 + 1 | 0;
                            }
                        }
                    }
                    var$9 = $rt_s(1636).$hashCode1;
                    var$5 = $par2NBTTagCompound.$elementData.data;
                    $par2NBTTagCompound = var$5[var$9 & (var$5.length - 1 | 0)];
                    while ($par2NBTTagCompound !== null) {
                        if ($par2NBTTagCompound.$origKeyHash == var$9) {
                            p: {
                                var$6 = $par2NBTTagCompound.$key;
                                if ($rt_s(1636) !== var$6) {
                                    if ($rt_s(1636) === var$6)
                                        var$4 = 1;
                                    else if (!(var$6 instanceof jl_String))
                                        var$4 = 0;
                                    else {
                                        var$6 = var$6;
                                        var$4 = $rt_s(1636).$nativeString !== var$6.$nativeString ? 0 : 1;
                                    }
                                    if (!var$4) {
                                        var$4 = 0;
                                        break p;
                                    }
                                }
                                var$4 = 1;
                            }
                            if (var$4)
                                break;
                        }
                        $par2NBTTagCompound = $par2NBTTagCompound.$next3;
                    }
                }
                var$4 = ($par2NBTTagCompound === null ? null : $par2NBTTagCompound.$value0).$data;
            }
            q: {
                switch (var$4) {
                    case 0:
                        $var4 = $rt_s(2507);
                        break q;
                    case 1:
                        $var4 = $rt_s(2505);
                        break q;
                    case 2:
                        $var4 = $rt_s(2506);
                        break q;
                    default:
                }
            }
        }
    }
    $this.$field_98222_b = $var3;
    $this.$minecartName = $var4;
},
nms_WeightedRandomMinecart__init_0 = (var_0, var_1) => {
    let var_2 = new nms_WeightedRandomMinecart();
    nms_WeightedRandomMinecart__init_(var_2, var_0, var_1);
    return var_2;
};
function nms_Path() {
    let a = this; jl_Object.call(a);
    a.$pathPoints = null;
    a.$count2 = 0;
}
let nms_Path__init_ = $this => {
    $this.$pathPoints = $rt_createArray(nms_PathPoint, 1024);
},
nms_Path__init_0 = () => {
    let var_0 = new nms_Path();
    nms_Path__init_(var_0);
    return var_0;
},
nms_Path_addPoint = ($this, $par1PathPoint) => {
    let var$2, var$3, $var2, var$5;
    if ($par1PathPoint.$index6 >= 0) {
        $par1PathPoint = new jl_IllegalStateException;
        $par1PathPoint.$suppressionEnabled = 1;
        $par1PathPoint.$writableStackTrace = 1;
        $par1PathPoint.$message = $rt_s(2710);
        $rt_throw($par1PathPoint);
    }
    var$2 = $this.$count2;
    var$3 = $this.$pathPoints;
    if (var$2 == var$3.data.length) {
        $var2 = $rt_createArray(nms_PathPoint, var$2 << 1);
        jl_System_fastArraycopy(var$3, 0, $var2, 0, var$2);
        $this.$pathPoints = $var2;
    }
    var$3 = $this.$pathPoints.data;
    var$5 = $this.$count2;
    var$3[var$5] = $par1PathPoint;
    $par1PathPoint.$index6 = var$5;
    $this.$count2 = var$5 + 1 | 0;
    nms_Path_sortBack($this, var$5);
    return $par1PathPoint;
},
nms_Path_dequeue = $this => {
    let var$1, $var1, var$3;
    var$1 = $this.$pathPoints.data;
    $var1 = var$1[0];
    var$3 = $this.$count2 - 1 | 0;
    $this.$count2 = var$3;
    var$1[0] = var$1[var$3];
    var$1[var$3] = null;
    if (var$3 > 0)
        nms_Path_sortForward($this, 0);
    $var1.$index6 = (-1);
    return $var1;
},
nms_Path_sortBack = ($this, $par1) => {
    let var$2, $var2, $var3, $var4, $var5;
    var$2 = $this.$pathPoints.data;
    $var2 = var$2[$par1];
    $var3 = $var2.$distanceToTarget;
    a: {
        while (true) {
            if ($par1 <= 0)
                break a;
            $var4 = ($par1 - 1 | 0) >> 1;
            $var5 = var$2[$var4];
            if ($var3 >= $var5.$distanceToTarget)
                break;
            var$2[$par1] = $var5;
            $var5.$index6 = $par1;
            $par1 = $var4;
        }
    }
    var$2[$par1] = $var2;
    $var2.$index6 = $par1;
},
nms_Path_sortForward = ($this, $par1) => {
    let var$2, $var2, $var3, $var4, $var5, var$7, $var6, $var7, $var8, $var9;
    var$2 = $this.$pathPoints.data;
    $var2 = var$2[$par1];
    $var3 = $var2.$distanceToTarget;
    a: {
        while (true) {
            $var4 = 1 + ($par1 << 1) | 0;
            $var5 = $var4 + 1 | 0;
            var$7 = $this.$count2;
            if ($var4 >= var$7)
                break;
            $var6 = var$2[$var4];
            $var7 = $var6.$distanceToTarget;
            if ($var5 < var$7) {
                $var8 = var$2[$var5];
                $var9 = $var8.$distanceToTarget;
            } else {
                $var8 = null;
                $var9 = Infinity;
            }
            if ($var7 < $var9) {
                if ($var7 >= $var3)
                    break a;
                var$2[$par1] = $var6;
                $var6.$index6 = $par1;
            } else {
                if ($var9 >= $var3)
                    break a;
                var$2[$par1] = $var8;
                $var8.$index6 = $par1;
                $var4 = $var5;
            }
            $par1 = $var4;
        }
    }
    var$2[$par1] = $var2;
    $var2.$index6 = $par1;
};
function nms_PathPoint() {
    let a = this; jl_Object.call(a);
    a.$xCoord1 = 0;
    a.$yCoord1 = 0;
    a.$zCoord1 = 0;
    a.$hash0 = 0;
    a.$index6 = 0;
    a.$totalPathDistance = 0.0;
    a.$distanceToNext = 0.0;
    a.$distanceToTarget = 0.0;
    a.$previous1 = null;
    a.$isFirst = 0;
}
let nms_PathPoint_makeHash = ($par0, $par1, $par2) => {
    return $par1 & 255 | ($par0 & 32767) << 8 | ($par2 & 32767) << 24 | ($par0 >= 0 ? 0 : (-2147483648)) | ($par2 >= 0 ? 0 : 32768);
},
nms_PathPoint_equals = ($this, $var2) => {
    if (!($var2 instanceof nms_PathPoint))
        return 0;
    return $this.$hash0 == $var2.$hash0 && $this.$xCoord1 == $var2.$xCoord1 && $this.$yCoord1 == $var2.$yCoord1 && $this.$zCoord1 == $var2.$zCoord1 ? 1 : 0;
};
function nms_PositionImpl() {
    let a = this; jl_Object.call(a);
    a.$x0 = 0.0;
    a.$y0 = 0.0;
    a.$z3 = 0.0;
}
function nms_PathEntity() {
    let a = this; jl_Object.call(a);
    a.$points = null;
    a.$currentPathIndex = 0;
    a.$pathLength = 0;
}
let nms_PathEntity_getVectorFromIndex = ($this, $par1Entity, $par2) => {
    let var$3, var$4, $var7, $var3, $var5;
    var$3 = $this.$points.data;
    var$4 = var$3[$par2].$xCoord1;
    $var7 = ($par1Entity.$width + 1.0 | 0) * 0.5;
    $var3 = var$4 + $var7;
    $var5 = var$3[$par2].$yCoord1;
    $var7 = var$3[$par2].$zCoord1 + $var7;
    return nms_Vec3Pool_getVecFromPool($par1Entity.$worldObj.$vecPool, $var3, $var5, $var7);
},
nms_PathEntity_isSamePath = ($this, $par1PathEntity) => {
    let var$2, $var2, var$4, var$5;
    if ($par1PathEntity === null)
        return 0;
    var$2 = $par1PathEntity.$points.data;
    $var2 = var$2.length;
    var$4 = $this.$points.data;
    var$5 = var$4.length;
    if ($var2 != var$5)
        return 0;
    $var2 = 0;
    a: {
        while ($var2 < var$5) {
            if (var$4[$var2].$xCoord1 != var$2[$var2].$xCoord1)
                break a;
            if (var$4[$var2].$yCoord1 != var$2[$var2].$yCoord1)
                break a;
            if (var$4[$var2].$zCoord1 != var$2[$var2].$zCoord1)
                break a;
            $var2 = $var2 + 1 | 0;
        }
        return 1;
    }
    return 0;
};
function nms_MerchantRecipe() {
    let a = this; jl_Object.call(a);
    a.$itemToBuy = null;
    a.$secondItemToBuy = null;
    a.$itemToSell = null;
    a.$toolUses = 0;
    a.$maxTradeUses = 0;
}
let nms_MerchantRecipe__init_0 = ($this, $par1ItemStack, $par2ItemStack, $par3ItemStack) => {
    $this.$itemToBuy = $par1ItemStack;
    $this.$secondItemToBuy = $par2ItemStack;
    $this.$itemToSell = $par3ItemStack;
    $this.$maxTradeUses = 7;
},
nms_MerchantRecipe__init_ = (var_0, var_1, var_2) => {
    let var_3 = new nms_MerchantRecipe();
    nms_MerchantRecipe__init_0(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_MerchantRecipe_hasSameIDsAs = ($this, $par1MerchantRecipe) => {
    let var$2, var$3;
    a: {
        if ($this.$itemToBuy.$itemID == $par1MerchantRecipe.$itemToBuy.$itemID && $this.$itemToSell.$itemID == $par1MerchantRecipe.$itemToSell.$itemID) {
            b: {
                var$2 = $this.$secondItemToBuy;
                if (!(var$2 === null && $par1MerchantRecipe.$secondItemToBuy === null)) {
                    if (var$2 === null)
                        break b;
                    $par1MerchantRecipe = $par1MerchantRecipe.$secondItemToBuy;
                    if ($par1MerchantRecipe === null)
                        break b;
                    if (var$2.$itemID != $par1MerchantRecipe.$itemID)
                        break b;
                }
                var$3 = 1;
                break a;
            }
            var$3 = 0;
        } else
            var$3 = 0;
    }
    return var$3;
},
nms_MerchantRecipe_hasSameItemsAs = ($this, $par1MerchantRecipe) => {
    let var$2, var$3;
    a: {
        b: {
            if (nms_MerchantRecipe_hasSameIDsAs($this, $par1MerchantRecipe)) {
                if ($this.$itemToBuy.$stackSize < $par1MerchantRecipe.$itemToBuy.$stackSize)
                    break b;
                var$2 = $this.$secondItemToBuy;
                if (var$2 !== null && var$2.$stackSize < $par1MerchantRecipe.$secondItemToBuy.$stackSize)
                    break b;
            }
            var$3 = 0;
            break a;
        }
        var$3 = 1;
    }
    return var$3;
},
nms_MerchantRecipe_readFromTags = ($this, $par1NBTTagCompound) => {
    let $var3, var$3, var$4, var$5, $var2, var$7, var$8, var$9, var$10;
    a: {
        $var3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2711).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2711).$nativeString.length)
                    break a;
                $rt_s(2711).$hashCode1 = (31 * $rt_s(2711).$hashCode1 | 0) + $rt_s(2711).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2711).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$4 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$4) {
            b: {
                $var2 = $var3.$key;
                if ($rt_s(2711) !== $var2) {
                    if ($rt_s(2711) !== $var2) {
                        if ($var2 instanceof jl_String) {
                            $var2 = $var2;
                            var$3 = $rt_s(2711).$nativeString !== $var2.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        $var3 = $var3.$next3;
    }
    if (!($var3 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagCompound;
        if ($rt_s(2711) !== null)
            $var2.$name = $rt_s(2711);
        else
            $var2.$name = $rt_s(3);
        var$7 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$5 = var$8.data;
        var$7.$elementData = var$8;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$5.length * 0.75 | 0;
        $var2.$tagMap = var$7;
    } else {
        $var3 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2711) !== null) {
            c: {
                if (!$rt_s(2711).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2711).$nativeString.length)
                            break c;
                        $rt_s(2711).$hashCode1 = (31 * $rt_s(2711).$hashCode1 | 0) + $rt_s(2711).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2711).$hashCode1;
            var$5 = $var3.$elementData.data;
            var$9 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$9 !== null) {
                if (var$9.$origKeyHash == var$3) {
                    d: {
                        $var3 = var$9.$key;
                        if ($rt_s(2711) !== $var3) {
                            if ($rt_s(2711) !== $var3) {
                                if (!($var3 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var3 = $var3;
                                    var$4 = $rt_s(2711).$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$9 = var$9.$next3;
            }
        } else {
            var$9 = $var3.$elementData.data[0];
            while (var$9 !== null && var$9.$key !== null) {
                var$9 = var$9.$next3;
            }
        }
        $var2 = var$9 === null ? null : var$9.$value0;
    }
    nms_ItemStack_$callClinit();
    var$7 = new nms_ItemStack;
    nms_ItemStack_readFromNBT(var$7, $var2);
    nms_Item_$callClinit();
    if (nms_Item_itemsList.data[var$7.$itemID] === null)
        var$7 = null;
    e: {
        $this.$itemToBuy = var$7;
        $var3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2712).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2712).$nativeString.length)
                    break e;
                $rt_s(2712).$hashCode1 = (31 * $rt_s(2712).$hashCode1 | 0) + $rt_s(2712).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(2712).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$10) {
            f: {
                $var2 = $var3.$key;
                if ($rt_s(2712) !== $var2) {
                    if ($rt_s(2712) !== $var2) {
                        if (!($var2 instanceof jl_String))
                            var$4 = 0;
                        else {
                            $var2 = $var2;
                            var$4 = $rt_s(2712).$nativeString !== $var2.$nativeString ? 0 : 1;
                        }
                    } else
                        var$4 = 1;
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var3 = $var3.$next3;
    }
    if ($var3 === null ? 0 : 1) {
        $var3 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2712) !== null) {
            g: {
                if (!$rt_s(2712).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2712).$nativeString.length)
                            break g;
                        $rt_s(2712).$hashCode1 = (31 * $rt_s(2712).$hashCode1 | 0) + $rt_s(2712).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$10 = $rt_s(2712).$hashCode1;
            var$5 = $var3.$elementData.data;
            $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$10) {
                    h: {
                        $var2 = $var3.$key;
                        if ($rt_s(2712) !== $var2) {
                            if ($rt_s(2712) !== $var2) {
                                if ($var2 instanceof jl_String) {
                                    $var2 = $var2;
                                    var$4 = $rt_s(2712).$nativeString !== $var2.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $var3 = $var3.$next3;
            }
        } else {
            $var3 = $var3.$elementData.data[0];
            while ($var3 !== null && $var3.$key !== null) {
                $var3 = $var3.$next3;
            }
        }
        $var3 = $var3 === null ? null : $var3.$value0;
    } else {
        $var3 = new nms_NBTTagCompound;
        if ($rt_s(2712) !== null)
            $var3.$name = $rt_s(2712);
        else
            $var3.$name = $rt_s(3);
        var$7 = new ju_HashMap;
        var$4 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$4);
        var$5 = var$8.data;
        var$7.$elementData = var$8;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$5.length * 0.75 | 0;
        $var3.$tagMap = var$7;
    }
    var$7 = new nms_ItemStack;
    nms_ItemStack_readFromNBT(var$7, $var3);
    if (nms_Item_itemsList.data[var$7.$itemID] === null)
        var$7 = null;
    i: {
        $this.$itemToSell = var$7;
        $var3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2713).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2713).$nativeString.length)
                    break i;
                $rt_s(2713).$hashCode1 = (31 * $rt_s(2713).$hashCode1 | 0) + $rt_s(2713).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(2713).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$10) {
            j: {
                $var2 = $var3.$key;
                if ($rt_s(2713) !== $var2) {
                    if ($rt_s(2713) === $var2)
                        var$4 = 1;
                    else if ($var2 instanceof jl_String) {
                        $var2 = $var2;
                        var$4 = $rt_s(2713).$nativeString !== $var2.$nativeString ? 0 : 1;
                    } else
                        var$4 = 0;
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var3 = $var3.$next3;
    }
    if ($var3 === null ? 0 : 1) {
        k: {
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2713).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2713).$nativeString.length)
                        break k;
                    $rt_s(2713).$hashCode1 = (31 * $rt_s(2713).$hashCode1 | 0) + $rt_s(2713).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2713).$hashCode1;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$10) {
                l: {
                    $var2 = $var3.$key;
                    if ($rt_s(2713) !== $var2) {
                        if ($rt_s(2713) === $var2)
                            var$4 = 1;
                        else if (!($var2 instanceof jl_String))
                            var$4 = 0;
                        else {
                            $var2 = $var2;
                            var$4 = $rt_s(2713).$nativeString !== $var2.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break l;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1)) {
            $var3 = new nms_NBTTagCompound;
            if ($rt_s(2713) !== null)
                $var3.$name = $rt_s(2713);
            else
                $var3.$name = $rt_s(3);
            var$7 = new ju_HashMap;
            var$4 = ju_HashMap_calculateCapacity(16);
            var$7.$elementCount = 0;
            var$8 = $rt_createArray(ju_HashMap$HashEntry, var$4);
            var$5 = var$8.data;
            var$7.$elementData = var$8;
            var$7.$loadFactor = 0.75;
            var$7.$threshold = var$5.length * 0.75 | 0;
            $var3.$tagMap = var$7;
        } else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2713) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                m: {
                    if (!$rt_s(2713).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2713).$nativeString.length)
                                break m;
                            $rt_s(2713).$hashCode1 = (31 * $rt_s(2713).$hashCode1 | 0) + $rt_s(2713).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2713).$hashCode1;
                var$5 = $var3.$elementData.data;
                $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$10) {
                        n: {
                            $var2 = $var3.$key;
                            if ($rt_s(2713) !== $var2) {
                                if ($rt_s(2713) === $var2)
                                    var$4 = 1;
                                else if (!($var2 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var2 = $var2;
                                    var$4 = $rt_s(2713).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break n;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            $var3 = $var3 === null ? null : $var3.$value0;
        }
        var$7 = new nms_ItemStack;
        nms_ItemStack_readFromNBT(var$7, $var3);
        if (nms_Item_itemsList.data[var$7.$itemID] === null)
            var$7 = null;
        $this.$secondItemToBuy = var$7;
    }
    o: {
        $var3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2714).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2714).$nativeString.length)
                    break o;
                $rt_s(2714).$hashCode1 = (31 * $rt_s(2714).$hashCode1 | 0) + $rt_s(2714).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(2714).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$10) {
            p: {
                $var2 = $var3.$key;
                if ($rt_s(2714) !== $var2) {
                    if ($rt_s(2714) === $var2)
                        var$4 = 1;
                    else if ($var2 instanceof jl_String) {
                        $var2 = $var2;
                        var$4 = $rt_s(2714).$nativeString !== $var2.$nativeString ? 0 : 1;
                    } else
                        var$4 = 0;
                    if (!var$4) {
                        var$4 = 0;
                        break p;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var3 = $var3.$next3;
    }
    if ($var3 === null ? 0 : 1) {
        q: {
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2714).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2714).$nativeString.length)
                        break q;
                    $rt_s(2714).$hashCode1 = (31 * $rt_s(2714).$hashCode1 | 0) + $rt_s(2714).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2714).$hashCode1;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$10) {
                r: {
                    $var2 = $var3.$key;
                    if ($rt_s(2714) !== $var2) {
                        if ($rt_s(2714) === $var2)
                            var$4 = 1;
                        else if (!($var2 instanceof jl_String))
                            var$4 = 0;
                        else {
                            $var2 = $var2;
                            var$4 = $rt_s(2714).$nativeString !== $var2.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break r;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            var$4 = 0;
        else {
            $var3 = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2714) === null) {
                $var3 = $var3.$elementData.data[0];
                while ($var3 !== null && $var3.$key !== null) {
                    $var3 = $var3.$next3;
                }
            } else {
                s: {
                    if (!$rt_s(2714).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2714).$nativeString.length)
                                break s;
                            $rt_s(2714).$hashCode1 = (31 * $rt_s(2714).$hashCode1 | 0) + $rt_s(2714).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2714).$hashCode1;
                var$5 = $var3.$elementData.data;
                $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
                while ($var3 !== null) {
                    if ($var3.$origKeyHash == var$10) {
                        t: {
                            $var2 = $var3.$key;
                            if ($rt_s(2714) !== $var2) {
                                if ($rt_s(2714) === $var2)
                                    var$4 = 1;
                                else if (!($var2 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var2 = $var2;
                                    var$4 = $rt_s(2714).$nativeString !== $var2.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break t;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $var3 = $var3.$next3;
                }
            }
            var$4 = ($var3 === null ? null : $var3.$value0).$data;
        }
        $this.$toolUses = var$4;
    }
    u: {
        $var3 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2715).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2715).$nativeString.length)
                    break u;
                $rt_s(2715).$hashCode1 = (31 * $rt_s(2715).$hashCode1 | 0) + $rt_s(2715).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$10 = $rt_s(2715).$hashCode1;
    var$5 = $var3.$elementData.data;
    $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
    while ($var3 !== null) {
        if ($var3.$origKeyHash == var$10) {
            v: {
                $var2 = $var3.$key;
                if ($rt_s(2715) !== $var2) {
                    if ($rt_s(2715) === $var2)
                        var$4 = 1;
                    else if (!($var2 instanceof jl_String))
                        var$4 = 0;
                    else {
                        $var2 = $var2;
                        var$4 = $rt_s(2715).$nativeString !== $var2.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break v;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        $var3 = $var3.$next3;
    }
    if (!($var3 === null ? 0 : 1))
        $this.$maxTradeUses = 7;
    else {
        w: {
            $var3 = $par1NBTTagCompound.$tagMap;
            if (!$rt_s(2715).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2715).$nativeString.length)
                        break w;
                    $rt_s(2715).$hashCode1 = (31 * $rt_s(2715).$hashCode1 | 0) + $rt_s(2715).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$10 = $rt_s(2715).$hashCode1;
        var$5 = $var3.$elementData.data;
        $var3 = var$5[var$10 & (var$5.length - 1 | 0)];
        while ($var3 !== null) {
            if ($var3.$origKeyHash == var$10) {
                x: {
                    $var2 = $var3.$key;
                    if ($rt_s(2715) !== $var2) {
                        if ($rt_s(2715) === $var2)
                            var$4 = 1;
                        else if (!($var2 instanceof jl_String))
                            var$4 = 0;
                        else {
                            $var2 = $var2;
                            var$4 = $rt_s(2715).$nativeString !== $var2.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break x;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            $var3 = $var3.$next3;
        }
        if (!($var3 === null ? 0 : 1))
            var$4 = 0;
        else {
            $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
            if ($rt_s(2715) === null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
                while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            } else {
                y: {
                    if (!$rt_s(2715).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2715).$nativeString.length)
                                break y;
                            $rt_s(2715).$hashCode1 = (31 * $rt_s(2715).$hashCode1 | 0) + $rt_s(2715).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$10 = $rt_s(2715).$hashCode1;
                var$5 = $par1NBTTagCompound.$elementData.data;
                $par1NBTTagCompound = var$5[var$10 & (var$5.length - 1 | 0)];
                while ($par1NBTTagCompound !== null) {
                    if ($par1NBTTagCompound.$origKeyHash == var$10) {
                        z: {
                            $var3 = $par1NBTTagCompound.$key;
                            if ($rt_s(2715) !== $var3) {
                                if ($rt_s(2715) === $var3)
                                    var$4 = 1;
                                else if (!($var3 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    $var3 = $var3;
                                    var$4 = $rt_s(2715).$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break z;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    $par1NBTTagCompound = $par1NBTTagCompound.$next3;
                }
            }
            var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
        }
        $this.$maxTradeUses = var$4;
    }
},
nms_MerchantRecipe_writeToTags = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    var$6 = $this.$itemToBuy;
    var$2 = new nms_NBTTagCompound;
    var$2.$name = $rt_s(2711);
    var$7 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$7.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$7.$elementData = var$4;
    var$7.$loadFactor = 0.75;
    var$7.$threshold = var$5.length * 0.75 | 0;
    var$2.$tagMap = var$7;
    var$3 = var$6.$itemID << 16 >> 16;
    var$8 = new nms_NBTTagShort;
    var$8.$name = $rt_s(914);
    var$8.$data2 = var$3;
    ju_HashMap_putImpl(var$7, $rt_s(914), var$8);
    var$3 = var$6.$stackSize << 24 >> 24;
    var$7 = var$2.$tagMap;
    var$8 = new nms_NBTTagByte;
    var$8.$name = $rt_s(915);
    var$8.$data0 = var$3;
    ju_HashMap_putImpl(var$7, $rt_s(915), var$8);
    var$3 = var$6.$itemDamage << 16 >> 16;
    var$9 = var$2.$tagMap;
    var$7 = new nms_NBTTagShort;
    var$7.$name = $rt_s(916);
    var$7.$data2 = var$3;
    ju_HashMap_putImpl(var$9, $rt_s(916), var$7);
    var$8 = var$6.$stackTagCompound;
    if (var$8 !== null) {
        var$9 = var$2.$tagMap;
        var$8.$name = $rt_s(917);
        ju_HashMap_putImpl(var$9, $rt_s(917), var$8);
    }
    var$8 = $var1.$tagMap;
    var$2.$name = $rt_s(2711);
    ju_HashMap_putImpl(var$8, $rt_s(2711), var$2);
    var$8 = $this.$itemToSell;
    var$7 = new nms_NBTTagCompound;
    var$7.$name = $rt_s(2712);
    var$6 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$6.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$6.$elementData = var$4;
    var$6.$loadFactor = 0.75;
    var$6.$threshold = var$5.length * 0.75 | 0;
    var$7.$tagMap = var$6;
    var$3 = var$8.$itemID << 16 >> 16;
    var$10 = new nms_NBTTagShort;
    var$10.$name = $rt_s(914);
    var$10.$data2 = var$3;
    ju_HashMap_putImpl(var$6, $rt_s(914), var$10);
    var$3 = var$8.$stackSize << 24 >> 24;
    var$6 = var$7.$tagMap;
    var$10 = new nms_NBTTagByte;
    var$10.$name = $rt_s(915);
    var$10.$data0 = var$3;
    ju_HashMap_putImpl(var$6, $rt_s(915), var$10);
    var$3 = var$8.$itemDamage << 16 >> 16;
    var$6 = var$7.$tagMap;
    var$10 = new nms_NBTTagShort;
    var$10.$name = $rt_s(916);
    var$10.$data2 = var$3;
    ju_HashMap_putImpl(var$6, $rt_s(916), var$10);
    var$8 = var$8.$stackTagCompound;
    if (var$8 !== null) {
        var$10 = var$7.$tagMap;
        var$8.$name = $rt_s(917);
        ju_HashMap_putImpl(var$10, $rt_s(917), var$8);
    }
    var$8 = $var1.$tagMap;
    var$7.$name = $rt_s(2712);
    ju_HashMap_putImpl(var$8, $rt_s(2712), var$7);
    var$2 = $this.$secondItemToBuy;
    if (var$2 !== null) {
        var$7 = new nms_NBTTagCompound;
        var$7.$name = $rt_s(2713);
        var$6 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        var$6.$elementCount = 0;
        var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$5 = var$4.data;
        var$6.$elementData = var$4;
        var$6.$loadFactor = 0.75;
        var$6.$threshold = var$5.length * 0.75 | 0;
        var$7.$tagMap = var$6;
        var$3 = var$2.$itemID << 16 >> 16;
        var$10 = new nms_NBTTagShort;
        var$10.$name = $rt_s(914);
        var$10.$data2 = var$3;
        ju_HashMap_putImpl(var$6, $rt_s(914), var$10);
        var$3 = var$2.$stackSize << 24 >> 24;
        var$6 = var$7.$tagMap;
        var$10 = new nms_NBTTagByte;
        var$10.$name = $rt_s(915);
        var$10.$data0 = var$3;
        ju_HashMap_putImpl(var$6, $rt_s(915), var$10);
        var$3 = var$2.$itemDamage << 16 >> 16;
        var$6 = var$7.$tagMap;
        var$10 = new nms_NBTTagShort;
        var$10.$name = $rt_s(916);
        var$10.$data2 = var$3;
        ju_HashMap_putImpl(var$6, $rt_s(916), var$10);
        var$2 = var$2.$stackTagCompound;
        if (var$2 !== null) {
            var$10 = var$7.$tagMap;
            var$2.$name = $rt_s(917);
            ju_HashMap_putImpl(var$10, $rt_s(917), var$2);
        }
        var$2 = $var1.$tagMap;
        var$7.$name = $rt_s(2713);
        ju_HashMap_putImpl(var$2, $rt_s(2713), var$7);
    }
    var$3 = $this.$toolUses;
    var$7 = $var1.$tagMap;
    var$8 = new nms_NBTTagInt;
    var$8.$name = $rt_s(2714);
    var$8.$data = var$3;
    ju_HashMap_putImpl(var$7, $rt_s(2714), var$8);
    var$3 = $this.$maxTradeUses;
    var$7 = $var1.$tagMap;
    var$8 = new nms_NBTTagInt;
    var$8.$name = $rt_s(2715);
    var$8.$data = var$3;
    ju_HashMap_putImpl(var$7, $rt_s(2715), var$8);
    return $var1;
};
function nms_BanEntry() {
    let a = this; jl_Object.call(a);
    a.$username0 = null;
    a.$banStartDate = null;
    a.$bannedBy = null;
    a.$banEndDate = null;
    a.$reason0 = null;
}
let nms_BanEntry_dateFormat = null,
nms_BanEntry_$callClinit = () => {
    nms_BanEntry_$callClinit = $rt_eraseClinit(nms_BanEntry);
    nms_BanEntry__clinit_();
},
nms_BanEntry_buildBanString = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je;
    $var1 = new jl_StringBuilder;
    $var1.$buffer = $rt_createCharArray(16);
    var$2 = $this.$username0;
    jl_AbstractStringBuilder_insert($var1, $var1.$length0, var$2);
    jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2716));
    nms_BanEntry_$callClinit();
    var$2 = nms_BanEntry_dateFormat;
    var$3 = $this.$banStartDate;
    var$4 = new jl_StringBuffer;
    var$4.$buffer = $rt_createCharArray(16);
    var$5 = new ju_GregorianCalendar;
    var$6 = var$2.$locale0;
    ju_TimeZone_$callClinit();
    if (ju_TimeZone_defaultTz === null) {
        var$7 = otcit_DateTimeZoneProvider_detectTimezone();
        if (var$7 === null)
            var$8 = null;
        else {
            var$8 = new ju_IANATimeZone;
            var$8.$id5 = var$7.$iID;
            var$8.$underlyingZone = var$7;
            var$9 = var$7.$getStandardOffset(jl_System_currentTimeMillis());
            var$8.$rawOffset = var$9;
            var$8.$diff =  -var$9 | 0;
        }
        ju_TimeZone_defaultTz = var$8;
        if (var$8 === null)
            ju_TimeZone_defaultTz = ju_TimeZone_GMT;
    }
    var$7 = ju_TimeZone_defaultTz;
    a: {
        try {
            var$8 = jl_Object_clone(var$7);
            break a;
        } catch ($$e) {
            $$je = $rt_wrapException($$e);
            if ($$je instanceof jl_CloneNotSupportedException) {
            } else {
                throw $$e;
            }
        }
        var$8 = null;
    }
    var$8.$rawOffset = var$7.$rawOffset;
    var$8.$underlyingZone = var$7.$underlyingZone;
    ju_GregorianCalendar__init_(var$5, var$8, var$6);
    var$10 = var$3.$value11;
    if (!(var$5.$isTimeSet && var$5.$areFieldsSet && Long_eq(var$5.$time, var$10))) {
        var$5.$time = var$10;
        var$5.$isTimeSet = 1;
        var$5.$areFieldsSet = 0;
        ju_GregorianCalendar_computeFields(var$5);
        var$5.$areFieldsSet = 1;
    }
    var$5.$zone = var$2.$calendar0.$zone;
    var$5.$areFieldsSet = 0;
    var$11 = var$2.$elements0.data;
    var$9 = var$11.length;
    var$12 = 0;
    while (var$12 < var$9) {
        var$11[var$12].$format1(var$5, var$4);
        var$12 = var$12 + 1 | 0;
    }
    var$2 = new jl_String;
    var$11 = var$4.$buffer;
    var$13 = var$11.data;
    var$12 = var$4.$length0;
    var$14 = var$13.length;
    if (var$12 >= 0 && var$12 <= (var$14 - 0 | 0)) {
        var$2.$nativeString = $rt_charArrayToString(var$11.data, 0, var$12);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, var$2);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2716));
        var$2 = $this.$bannedBy;
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, var$2);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2716));
        var$15 = $this.$banEndDate;
        if (var$15 === null)
            var$2 = $rt_s(2717);
        else {
            var$2 = nms_BanEntry_dateFormat;
            var$7 = new jl_StringBuffer;
            var$7.$buffer = $rt_createCharArray(16);
            var$4 = new ju_GregorianCalendar;
            var$5 = var$2.$locale0;
            if (ju_TimeZone_defaultTz === null) {
                var$6 = otcit_DateTimeZoneProvider_detectTimezone();
                if (var$6 === null)
                    var$8 = null;
                else {
                    var$8 = new ju_IANATimeZone;
                    var$8.$id5 = var$6.$iID;
                    var$8.$underlyingZone = var$6;
                    var$9 = var$6.$getStandardOffset(jl_System_currentTimeMillis());
                    var$8.$rawOffset = var$9;
                    var$8.$diff =  -var$9 | 0;
                }
                ju_TimeZone_defaultTz = var$8;
                if (var$8 === null)
                    ju_TimeZone_defaultTz = ju_TimeZone_GMT;
            }
            var$6 = ju_TimeZone_defaultTz;
            b: {
                try {
                    var$8 = jl_Object_clone(var$6);
                    break b;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_CloneNotSupportedException) {
                    } else {
                        throw $$e;
                    }
                }
                var$8 = null;
            }
            var$8.$rawOffset = var$6.$rawOffset;
            var$8.$underlyingZone = var$6.$underlyingZone;
            ju_GregorianCalendar__init_(var$4, var$8, var$5);
            var$10 = var$15.$value11;
            if (!(var$4.$isTimeSet && var$4.$areFieldsSet && Long_eq(var$4.$time, var$10))) {
                var$4.$time = var$10;
                var$4.$isTimeSet = 1;
                var$4.$areFieldsSet = 0;
                ju_GregorianCalendar_computeFields(var$4);
                var$4.$areFieldsSet = 1;
            }
            var$4.$zone = var$2.$calendar0.$zone;
            var$4.$areFieldsSet = 0;
            var$11 = var$2.$elements0.data;
            var$9 = var$11.length;
            var$12 = 0;
            while (var$12 < var$9) {
                var$11[var$12].$format1(var$4, var$7);
                var$12 = var$12 + 1 | 0;
            }
            var$2 = new jl_String;
            var$11 = var$7.$buffer;
            var$13 = var$11.data;
            var$12 = var$7.$length0;
            var$14 = var$13.length;
            if (var$12 >= 0 && var$12 <= (var$14 - 0 | 0))
                var$2.$nativeString = $rt_charArrayToString(var$11.data, 0, var$12);
            else {
                $var1 = new jl_IndexOutOfBoundsException;
                jl_Throwable__init_($var1);
                $rt_throw($var1);
            }
        }
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, var$2);
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, $rt_s(2716));
        var$2 = $this.$reason0;
        jl_AbstractStringBuilder_insert($var1, $var1.$length0, var$2);
        var$2 = new jl_String;
        var$11 = $var1.$buffer;
        var$13 = var$11.data;
        var$12 = $var1.$length0;
        var$14 = var$13.length;
        if (var$12 >= 0 && var$12 <= (var$14 - 0 | 0)) {
            var$2.$nativeString = $rt_charArrayToString(var$11.data, 0, var$12);
            return var$2;
        }
        $var1 = new jl_IndexOutOfBoundsException;
        $var1.$suppressionEnabled = 1;
        $var1.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($var1);
        $rt_throw($var1);
    }
    $var1 = new jl_IndexOutOfBoundsException;
    jl_Throwable__init_($var1);
    $rt_throw($var1);
},
nms_BanEntry__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6;
    var$1 = new jt_SimpleDateFormat;
    ju_Locale_$callClinit();
    var$2 = ju_Locale_defaultLocale;
    var$3 = new jt_DateFormatSymbols;
    var$3.$locale = var$2;
    var$4 = new ju_GregorianCalendar;
    ju_TimeZone_$callClinit();
    if (ju_TimeZone_defaultTz === null) {
        var$5 = ju_TimeZone_detectTimezone();
        ju_TimeZone_defaultTz = var$5;
        if (var$5 === null)
            ju_TimeZone_defaultTz = ju_TimeZone_GMT;
    }
    ju_GregorianCalendar__init_(var$4, ju_IANATimeZone_clone(ju_TimeZone_defaultTz), var$2);
    var$1.$calendar0 = var$4;
    var$3 = jt_DateFormatSymbols_clone(var$3);
    var$1.$dateFormatSymbols = var$3;
    var$5 = ju_Locale_defaultLocale;
    var$1.$locale0 = var$5;
    var$1.$pattern2 = $rt_s(2718);
    var$6 = new jt_SimpleDatePatternParser;
    var$4 = new ju_ArrayList;
    ju_AbstractList__init_(var$4);
    var$4.$array = $rt_createArray(jl_Object, 10);
    var$6.$elements = var$4;
    var$6.$symbols0 = var$3;
    var$6.$locale4 = var$5;
    jt_SimpleDatePatternParser_parsePattern(var$6, var$1.$pattern2);
    var$1.$elements0 = ju_AbstractCollection_toArray(var$6.$elements, $rt_createArray(jt_DateFormatElement, 0));
    var$1.$locale0 = var$2;
    nms_BanEntry_dateFormat = var$1;
},
nms_ChatAllowedCharacters = $rt_classWithoutFields(),
nms_ChatAllowedCharacters_allowedCharacters = null,
nms_ChatAllowedCharacters_allowedCharactersArray = null,
nms_ChatAllowedCharacters__init_ = $this => {
    return;
},
nms_ChatAllowedCharacters__init_0 = () => {
    let var_0 = new nms_ChatAllowedCharacters();
    nms_ChatAllowedCharacters__init_(var_0);
    return var_0;
},
nms_ChatAllowedCharacters__clinit_ = () => {
    nms_ChatAllowedCharacters_allowedCharacters = null;
    nms_ChatAllowedCharacters_allowedCharactersArray = $rt_createCharArrayFromData([47, 10, 13, 9, 0, 12, 96, 63, 42, 92, 60, 62, 124, 34, 58]);
},
nms_StringUtils = $rt_classWithoutFields(),
nms_StringUtils_patternControlCode = null,
nms_StringUtils_$callClinit = () => {
    nms_StringUtils_$callClinit = $rt_eraseClinit(nms_StringUtils);
    nms_StringUtils__clinit_();
},
nms_StringUtils__init_ = $this => {
    nms_StringUtils_$callClinit();
},
nms_StringUtils__init_0 = () => {
    let var_0 = new nms_StringUtils();
    nms_StringUtils__init_(var_0);
    return var_0;
},
nms_StringUtils__clinit_ = () => {
    nms_StringUtils_patternControlCode = jur_Pattern_compile($rt_s(2719), 0);
};
function nms_ContainerMerchant() {
    let a = this; nms_Container.call(a);
    a.$theMerchant0 = null;
    a.$merchantInventory = null;
    a.$theWorld5 = null;
}
let nms_ContainerMerchant__init_ = ($this, $par1InventoryPlayer, $par2IMerchant, $par3World) => {
    let var$4, var$5, $var4, var$7, var$8, $var5, var$10, var$11, var$12;
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $this.$inventoryItemStacks = var$4;
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $this.$inventorySlots = var$4;
    $this.$field_94535_f = (-1);
    var$4 = new ju_HashSet;
    var$5 = new ju_HashMap;
    $var4 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$7 = $rt_createArray(ju_HashMap$HashEntry, $var4);
    var$8 = var$7.data;
    var$5.$elementData = var$7;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$8.length * 0.75 | 0;
    var$4.$backingMap = var$5;
    $this.$field_94537_h = var$4;
    var$4 = new ju_ArrayList;
    var$4.$array = $rt_createArray(jl_Object, 10);
    $this.$crafters = var$4;
    var$4 = new ju_HashSet;
    var$5 = new ju_HashMap;
    $var4 = ju_HashMap_calculateCapacity(16);
    var$5.$elementCount = 0;
    var$7 = $rt_createArray(ju_HashMap$HashEntry, $var4);
    var$8 = var$7.data;
    var$5.$elementData = var$7;
    var$5.$loadFactor = 0.75;
    var$5.$threshold = var$8.length * 0.75 | 0;
    var$4.$backingMap = var$5;
    $this.$playerList = var$4;
    $this.$theMerchant0 = $par2IMerchant;
    $this.$theWorld5 = $par3World;
    $par3World = new nms_InventoryMerchant;
    var$4 = $par1InventoryPlayer.$player;
    $par3World.$theInventory = $rt_createArray(nms_ItemStack, 3);
    $par3World.$thePlayer5 = var$4;
    $par3World.$theMerchant = $par2IMerchant;
    $this.$merchantInventory = $par3World;
    var$4 = new nms_Slot;
    var$4.$inventory = $par3World;
    var$4.$slotIndex = 0;
    var$4.$xDisplayPosition = 36;
    var$4.$yDisplayPosition = 53;
    $par3World = $this.$inventorySlots;
    $var5 = $par3World.$size0;
    var$4.$slotNumber = $var5;
    ju_ArrayList_ensureCapacity($par3World, $var5 + 1 | 0);
    var$8 = $par3World.$array.data;
    $var5 = $par3World.$size0;
    $par3World.$size0 = $var5 + 1 | 0;
    var$8[$var5] = var$4;
    $par3World.$modCount = $par3World.$modCount + 1 | 0;
    $par3World = $this.$inventoryItemStacks;
    var$4 = null;
    ju_ArrayList_ensureCapacity($par3World, $par3World.$size0 + 1 | 0);
    var$8 = $par3World.$array.data;
    $var5 = $par3World.$size0;
    $par3World.$size0 = $var5 + 1 | 0;
    var$8[$var5] = var$4;
    $par3World.$modCount = $par3World.$modCount + 1 | 0;
    $par3World = new nms_Slot;
    $par3World.$inventory = $this.$merchantInventory;
    $par3World.$slotIndex = 1;
    $par3World.$xDisplayPosition = 62;
    $par3World.$yDisplayPosition = 53;
    var$4 = $this.$inventorySlots;
    $var5 = var$4.$size0;
    $par3World.$slotNumber = $var5;
    ju_ArrayList_ensureCapacity(var$4, $var5 + 1 | 0);
    var$8 = var$4.$array.data;
    $var5 = var$4.$size0;
    var$4.$size0 = $var5 + 1 | 0;
    var$8[$var5] = $par3World;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    $par3World = $this.$inventoryItemStacks;
    var$4 = null;
    ju_ArrayList_ensureCapacity($par3World, $par3World.$size0 + 1 | 0);
    var$8 = $par3World.$array.data;
    $var5 = $par3World.$size0;
    $par3World.$size0 = $var5 + 1 | 0;
    var$8[$var5] = var$4;
    $par3World.$modCount = $par3World.$modCount + 1 | 0;
    $par3World = new nms_SlotMerchantResult;
    var$4 = $par1InventoryPlayer.$player;
    var$5 = $this.$merchantInventory;
    $par3World.$inventory = var$5;
    $par3World.$slotIndex = 2;
    $par3World.$xDisplayPosition = 120;
    $par3World.$yDisplayPosition = 53;
    $par3World.$thePlayer2 = var$4;
    $par3World.$theMerchant2 = $par2IMerchant;
    $par3World.$theMerchantInventory = var$5;
    $par2IMerchant = $this.$inventorySlots;
    $var5 = $par2IMerchant.$size0;
    $par3World.$slotNumber = $var5;
    ju_ArrayList_ensureCapacity($par2IMerchant, $var5 + 1 | 0);
    var$8 = $par2IMerchant.$array.data;
    $var5 = $par2IMerchant.$size0;
    $par2IMerchant.$size0 = $var5 + 1 | 0;
    var$8[$var5] = $par3World;
    $par2IMerchant.$modCount = $par2IMerchant.$modCount + 1 | 0;
    $par2IMerchant = $this.$inventoryItemStacks;
    $par3World = null;
    ju_ArrayList_ensureCapacity($par2IMerchant, $par2IMerchant.$size0 + 1 | 0);
    var$8 = $par2IMerchant.$array.data;
    $var5 = $par2IMerchant.$size0;
    $par2IMerchant.$size0 = $var5 + 1 | 0;
    var$8[$var5] = $par3World;
    $par2IMerchant.$modCount = $par2IMerchant.$modCount + 1 | 0;
    $var4 = 0;
    while ($var4 < 3) {
        $var5 = 0;
        while ($var5 < 9) {
            $par2IMerchant = new nms_Slot;
            var$10 = ($var5 + ($var4 * 9 | 0) | 0) + 9 | 0;
            var$11 = 8 + ($var5 * 18 | 0) | 0;
            var$12 = 84 + ($var4 * 18 | 0) | 0;
            $par2IMerchant.$inventory = $par1InventoryPlayer;
            $par2IMerchant.$slotIndex = var$10;
            $par2IMerchant.$xDisplayPosition = var$11;
            $par2IMerchant.$yDisplayPosition = var$12;
            $par3World = $this.$inventorySlots;
            var$11 = $par3World.$size0;
            $par2IMerchant.$slotNumber = var$11;
            ju_ArrayList_ensureCapacity($par3World, var$11 + 1 | 0);
            var$8 = $par3World.$array.data;
            var$11 = $par3World.$size0;
            $par3World.$size0 = var$11 + 1 | 0;
            var$8[var$11] = $par2IMerchant;
            $par3World.$modCount = $par3World.$modCount + 1 | 0;
            $par2IMerchant = $this.$inventoryItemStacks;
            $par3World = null;
            ju_ArrayList_ensureCapacity($par2IMerchant, $par2IMerchant.$size0 + 1 | 0);
            var$8 = $par2IMerchant.$array.data;
            var$11 = $par2IMerchant.$size0;
            $par2IMerchant.$size0 = var$11 + 1 | 0;
            var$8[var$11] = $par3World;
            $par2IMerchant.$modCount = $par2IMerchant.$modCount + 1 | 0;
            $var5 = $var5 + 1 | 0;
        }
        $var4 = $var4 + 1 | 0;
    }
    $var4 = 0;
    while ($var4 < 9) {
        $par2IMerchant = new nms_Slot;
        $var5 = 8 + ($var4 * 18 | 0) | 0;
        $par2IMerchant.$inventory = $par1InventoryPlayer;
        $par2IMerchant.$slotIndex = $var4;
        $par2IMerchant.$xDisplayPosition = $var5;
        $par2IMerchant.$yDisplayPosition = 142;
        $par3World = $this.$inventorySlots;
        var$10 = $par3World.$size0;
        $par2IMerchant.$slotNumber = var$10;
        ju_ArrayList_ensureCapacity($par3World, var$10 + 1 | 0);
        var$8 = $par3World.$array.data;
        var$10 = $par3World.$size0;
        $par3World.$size0 = var$10 + 1 | 0;
        var$8[var$10] = $par2IMerchant;
        $par3World.$modCount = $par3World.$modCount + 1 | 0;
        $par2IMerchant = $this.$inventoryItemStacks;
        $par3World = null;
        ju_ArrayList_ensureCapacity($par2IMerchant, $par2IMerchant.$size0 + 1 | 0);
        var$8 = $par2IMerchant.$array.data;
        var$10 = $par2IMerchant.$size0;
        $par2IMerchant.$size0 = var$10 + 1 | 0;
        var$8[var$10] = $par3World;
        $par2IMerchant.$modCount = $par2IMerchant.$modCount + 1 | 0;
        $var4 = $var4 + 1 | 0;
    }
},
nms_ContainerMerchant__init_0 = (var_0, var_1, var_2) => {
    let var_3 = new nms_ContainerMerchant();
    nms_ContainerMerchant__init_(var_3, var_0, var_1, var_2);
    return var_3;
},
nms_ContainerMerchant_addCraftingToCrafters = ($this, $par1ICrafting) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ICrafting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$crafters;
        var$3 = 0;
        var$4 = var$2.$modCount;
        var$5 = var$2.$size();
        a: {
            while (true) {
                if (!(var$3 >= var$5 ? 0 : 1)) {
                    var$3 = 0;
                    break a;
                }
                if (var$4 < var$2.$modCount)
                    break;
                var$6 = var$3 + 1 | 0;
                var$7 = var$2.$get(var$3);
                if (var$7 === $par1ICrafting ? 1 : var$7 !== null ? var$7.$equals($par1ICrafting) : $par1ICrafting !== null ? 0 : 1) {
                    var$3 = 1;
                    break a;
                }
                var$3 = var$6;
            }
            $par1ICrafting = new ju_ConcurrentModificationException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICrafting);
            $rt_throw($par1ICrafting);
        }
        if (var$3) {
            $par1ICrafting = new jl_IllegalArgumentException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            $par1ICrafting.$message = $rt_s(2628);
            $rt_throw($par1ICrafting);
        }
        var$2 = $this.$crafters;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$8 = var$2.$array.data;
        var$6 = var$2.$size0;
        var$2.$size0 = var$6 + 1 | 0;
        var$8[var$6] = $par1ICrafting;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$9 = new ju_ArrayList;
        var$9.$array = $rt_createArray(jl_Object, 10);
        var$3 = 0;
        while (true) {
            var$2 = $this.$inventorySlots;
            var$6 = $rt_compare(var$3, var$2.$size0);
            if (var$6 >= 0) {
                b: {
                    var$7 = $par1ICrafting.$playerNetServerHandler;
                    var$2 = nms_Packet104WindowItems__init_($this.$windowId, var$9);
                    if (var$2 instanceof nms_Packet3Chat) {
                        var$9 = var$2;
                        var$6 = var$7.$playerEntity.$chatVisibility;
                        if (var$6 == 2)
                            break b;
                        if (var$6 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        var$7 = var$7.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
                var$2 = $par1ICrafting.$playerNetServerHandler;
                var$7 = new nms_Packet103SetSlot;
                var$9 = $par1ICrafting.$inventory0.$itemStack;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$7.$windowId1 = (-1);
                var$7.$itemSlot = (-1);
                if (var$9 !== null) {
                    $par1ICrafting = new nms_ItemStack;
                    var$3 = var$9.$itemID;
                    var$6 = var$9.$stackSize;
                    var$4 = var$9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    $par1ICrafting.$itemID = var$3;
                    $par1ICrafting.$stackSize = var$6;
                    $par1ICrafting.$itemDamage = var$4;
                    if (var$4 < 0)
                        $par1ICrafting.$itemDamage = 0;
                    var$9 = var$9.$stackTagCompound;
                    if (var$9 !== null) {
                        var$10 = new nms_NBTTagCompound;
                        var$11 = var$9.$name;
                        if (var$11 === null)
                            var$11 = $rt_s(3);
                        var$10.$name = var$11;
                        var$10.$tagMap = ju_HashMap__init_0(16, 0.75);
                        var$11 = var$9.$tagMap;
                        if (var$11.$cachedKeySet === null) {
                            var$12 = new ju_HashMap$1;
                            var$12.$this$0 = var$11;
                            ju_AbstractCollection__init_(var$12);
                            var$11.$cachedKeySet = var$12;
                        }
                        var$11 = var$11.$cachedKeySet.$iterator();
                        while (var$11.$hasNext()) {
                            var$12 = var$11.$next();
                            var$13 = var$9.$tagMap;
                            if (var$12 === null) {
                                var$13 = var$13.$elementData.data[0];
                                while (var$13 !== null && var$13.$key !== null) {
                                    var$13 = var$13.$next3;
                                }
                            } else {
                                c: {
                                    if (!var$12.$hashCode1) {
                                        var$3 = 0;
                                        while (true) {
                                            if (var$3 >= var$12.$nativeString.length)
                                                break c;
                                            var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$3) | 0;
                                            var$3 = var$3 + 1 | 0;
                                        }
                                    }
                                }
                                var$3 = var$12.$hashCode1;
                                var$8 = var$13.$elementData.data;
                                var$13 = var$8[var$3 & (var$8.length - 1 | 0)];
                                while (var$13 !== null && !(var$13.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$12, var$13.$key))) {
                                    var$13 = var$13.$next3;
                                }
                            }
                            var$13 = var$13 === null ? null : var$13.$value0;
                            var$13 = var$13.$copy();
                            var$14 = var$10.$tagMap;
                            if (var$12 !== null)
                                var$13.$name = var$12;
                            else
                                var$13.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$14, var$12, var$13);
                        }
                        $par1ICrafting.$stackTagCompound = var$10;
                    }
                    var$9 = $par1ICrafting;
                }
                d: {
                    var$7.$myItemStack = var$9;
                    if (var$7 instanceof nms_Packet3Chat) {
                        $par1ICrafting = var$7;
                        var$6 = var$2.$playerEntity.$chatVisibility;
                        if (var$6 == 2)
                            break d;
                        if (var$6 == 1 && !$par1ICrafting.$isServer)
                            break d;
                    }
                    try {
                        $par1ICrafting = var$2.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            $par1ICrafting = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$2 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$2;
                    }
                    jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
                }
                $ptr = 3;
                continue main;
            }
            if (var$3 < 0)
                break;
            if (var$6 >= 0)
                break;
            var$2 = var$2.$array.data[var$3];
            var$2 = var$2.$inventory.$getStackInSlot(var$2.$slotIndex);
            ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
            var$8 = var$9.$array.data;
            var$4 = var$9.$size0;
            var$9.$size0 = var$4 + 1 | 0;
            var$8[var$4] = var$2;
            var$9.$modCount = var$9.$modCount + 1 | 0;
            var$3 = var$3 + 1 | 0;
        }
        $par1ICrafting = new jl_IndexOutOfBoundsException;
        $par1ICrafting.$suppressionEnabled = 1;
        $par1ICrafting.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICrafting);
        $rt_throw($par1ICrafting);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $par1ICrafting.$playerNetServerHandler;
        var$7 = new nms_Packet103SetSlot;
        var$9 = $par1ICrafting.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$7.$windowId1 = (-1);
        var$7.$itemSlot = (-1);
        if (var$9 !== null) {
            $par1ICrafting = new nms_ItemStack;
            var$3 = var$9.$itemID;
            var$6 = var$9.$stackSize;
            var$4 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            $par1ICrafting.$itemID = var$3;
            $par1ICrafting.$stackSize = var$6;
            $par1ICrafting.$itemDamage = var$4;
            if (var$4 < 0)
                $par1ICrafting.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$10 = new nms_NBTTagCompound;
                var$11 = var$9.$name;
                if (var$11 === null)
                    var$11 = $rt_s(3);
                var$10.$name = var$11;
                var$10.$tagMap = ju_HashMap__init_0(16, 0.75);
                var$11 = var$9.$tagMap;
                if (var$11.$cachedKeySet === null) {
                    var$12 = new ju_HashMap$1;
                    var$12.$this$0 = var$11;
                    ju_AbstractCollection__init_(var$12);
                    var$11.$cachedKeySet = var$12;
                }
                var$11 = var$11.$cachedKeySet.$iterator();
                while (var$11.$hasNext()) {
                    var$12 = var$11.$next();
                    var$13 = var$9.$tagMap;
                    if (var$12 === null) {
                        var$13 = var$13.$elementData.data[0];
                        while (var$13 !== null && var$13.$key !== null) {
                            var$13 = var$13.$next3;
                        }
                    } else {
                        e: {
                            if (!var$12.$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= var$12.$nativeString.length)
                                        break e;
                                    var$12.$hashCode1 = (31 * var$12.$hashCode1 | 0) + var$12.$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$3 = var$12.$hashCode1;
                        var$8 = var$13.$elementData.data;
                        var$13 = var$8[var$3 & (var$8.length - 1 | 0)];
                        while (var$13 !== null && !(var$13.$origKeyHash == var$3 && ju_HashMap_areEqualKeys(var$12, var$13.$key))) {
                            var$13 = var$13.$next3;
                        }
                    }
                    var$13 = var$13 === null ? null : var$13.$value0;
                    var$13 = var$13.$copy();
                    var$14 = var$10.$tagMap;
                    if (var$12 !== null)
                        var$13.$name = var$12;
                    else
                        var$13.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$14, var$12, var$13);
                }
                $par1ICrafting.$stackTagCompound = var$10;
            }
            var$9 = $par1ICrafting;
        }
        f: {
            var$7.$myItemStack = var$9;
            if (var$7 instanceof nms_Packet3Chat) {
                $par1ICrafting = var$7;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break f;
                if (var$6 == 1 && !$par1ICrafting.$isServer)
                    break f;
            }
            try {
                $par1ICrafting = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        $ptr = 3;
        continue main;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue($par1ICrafting, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$2, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        $ptr = 3;
    case 3:
        nms_Container_detectAndSendChanges($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICrafting, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_ContainerMerchant_detectAndSendChanges = $this => {
    let $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        nms_Container_detectAndSendChanges($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $ptr);
},
nms_ContainerMerchant_setCurrentRecipeIndex = ($this, $par1) => {
    let var$2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$2 = $thread.pop();$par1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$merchantInventory;
        var$2.$currentRecipeIndex = $par1;
        $ptr = 1;
    case 1:
        nms_InventoryMerchant_resetRecipeAndSlots(var$2);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1, var$2, $ptr);
},
nms_ContainerMerchant_canInteractWith = ($this, $par1EntityPlayer) => {
    return $this.$theMerchant0.$buyingPlayer !== $par1EntityPlayer ? 0 : 1;
},
nms_ContainerMerchant_transferStackInSlot = ($this, $par1EntityPlayer, $par2) => {
    let $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = null;
        var$4 = $this.$inventorySlots;
        if ($par2 >= 0 && $par2 < var$4.$size0) {
            $var4 = var$4.$array.data[$par2];
            if ($var4 !== null && ($var4.$inventory.$getStackInSlot($var4.$slotIndex) === null ? 0 : 1)) {
                $var5 = $var4.$inventory.$getStackInSlot($var4.$slotIndex);
                $var3 = new nms_ItemStack;
                var$7 = $var5.$itemID;
                var$8 = $var5.$stackSize;
                var$9 = $var5.$itemDamage;
                nms_ItemStack_$callClinit();
                $var3.$itemID = var$7;
                $var3.$stackSize = var$8;
                $var3.$itemDamage = var$9;
                if (var$9 < 0)
                    $var3.$itemDamage = 0;
                var$10 = $var5.$stackTagCompound;
                if (var$10 !== null) {
                    var$11 = new nms_NBTTagCompound;
                    var$4 = var$10.$name;
                    if (var$4 === null)
                        var$4 = $rt_s(3);
                    var$11.$name = var$4;
                    var$4 = new ju_HashMap;
                    var$7 = ju_HashMap_calculateCapacity(16);
                    var$4.$elementCount = 0;
                    var$12 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                    var$13 = var$12.data;
                    var$4.$elementData = var$12;
                    var$4.$loadFactor = 0.75;
                    var$4.$threshold = var$13.length * 0.75 | 0;
                    var$11.$tagMap = var$4;
                    var$14 = var$10.$tagMap;
                    if (var$14.$cachedKeySet === null) {
                        var$4 = new ju_HashMap$1;
                        var$4.$this$0 = var$14;
                        var$14.$cachedKeySet = var$4;
                    }
                    var$14 = var$14.$cachedKeySet.$iterator();
                    while (var$14.$hasNext()) {
                        var$15 = var$14.$next();
                        var$4 = var$10.$tagMap;
                        if (var$15 === null) {
                            var$16 = var$4.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            a: {
                                if (!var$15.$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= var$15.$nativeString.length)
                                            break a;
                                        var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = var$15.$hashCode1;
                            var$13 = var$4.$elementData.data;
                            var$16 = var$13[var$8 & (var$13.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == var$8) {
                                    b: {
                                        var$4 = var$16.$key;
                                        if (var$15 !== var$4) {
                                            if (var$15 === var$4)
                                                var$7 = 1;
                                            else if (!(var$4 instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                var$4 = var$4;
                                                var$7 = var$15.$nativeString !== var$4.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break b;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$4 = var$16 === null ? null : var$16.$value0;
                        var$4 = var$4.$copy();
                        var$16 = var$11.$tagMap;
                        if (var$15 !== null)
                            var$4.$name = var$15;
                        else
                            var$4.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$16, var$15, var$4);
                    }
                    $var3.$stackTagCompound = var$11;
                }
                if ($par2 == 2) {
                    $par2 = 3;
                    var$7 = 39;
                    var$8 = 1;
                    $ptr = 1;
                    continue main;
                }
                if ($par2 && $par2 != 1) {
                    if ($par2 >= 3 && $par2 < 30) {
                        $par2 = 30;
                        var$7 = 39;
                        var$8 = 0;
                        $ptr = 7;
                        continue main;
                    }
                    if ($par2 >= 30 && $par2 < 39) {
                        $par2 = 3;
                        var$7 = 30;
                        var$8 = 0;
                        $ptr = 9;
                        continue main;
                    }
                    if ($var5.$stackSize) {
                        var$4 = $var4.$inventory;
                        $ptr = 3;
                        continue main;
                    }
                    var$4 = null;
                    var$10 = $var4.$inventory;
                    $par2 = $var4.$slotIndex;
                    $ptr = 4;
                    continue main;
                }
                $par2 = 3;
                var$7 = 39;
                var$8 = 0;
                $ptr = 2;
                continue main;
            }
            return $var3;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$itemID == $var3.$itemID) {
            $par2 = $var3.$stackSize - $var5.$stackSize | 0;
            if ($par2 > 0) {
                $ptr = 6;
                continue main;
            }
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 3:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 8;
        continue main;
    case 4:
        var$10.$setInventorySlotContents($par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $var4.$inventory;
        $ptr = 5;
    case 5:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 8;
        continue main;
    case 6:
        $var4.$onCrafting($var5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 7:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 8:
        $var4.$onPickupFromSlot($par1EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 9:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_ContainerMerchant_onContainerClosed = ($this, $par1EntityPlayer) => {
    let $var2, var$3, var$4, var$5, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$var2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var2 = $par1EntityPlayer.$inventory0;
        var$3 = $var2.$itemStack;
        if (var$3 !== null) {
            var$4 = 0;
            $ptr = 1;
            continue main;
        }
        $this.$theMerchant0.$buyingPlayer = null;
        $var2 = $par1EntityPlayer.$inventory0;
        var$3 = $var2.$itemStack;
        if (var$3 !== null) {
            var$4 = 0;
            $ptr = 2;
            continue main;
        }
        if (!$this.$theWorld5.$isRemote) {
            var$5 = $this.$merchantInventory.$theInventory.data;
            if (var$5[0] === null)
                $var2 = null;
            else {
                $var2 = var$5[0];
                var$5[0] = null;
            }
            if ($var2 !== null) {
                var$4 = 0;
                $ptr = 3;
                continue main;
            }
            var$5 = $this.$merchantInventory.$theInventory.data;
            if (var$5[1] === null)
                $var2 = null;
            else {
                $var2 = var$5[1];
                var$5[1] = null;
            }
            if ($var2 !== null) {
                var$4 = 0;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2.$itemStack = null;
        $this.$theMerchant0.$buyingPlayer = null;
        $var2 = $par1EntityPlayer.$inventory0;
        var$3 = $var2.$itemStack;
        if (var$3 !== null) {
            var$4 = 0;
            $ptr = 2;
            continue main;
        }
        if (!$this.$theWorld5.$isRemote) {
            var$5 = $this.$merchantInventory.$theInventory.data;
            if (var$5[0] === null)
                $var2 = null;
            else {
                $var2 = var$5[0];
                var$5[0] = null;
            }
            if ($var2 !== null) {
                var$4 = 0;
                $ptr = 3;
                continue main;
            }
            var$5 = $this.$merchantInventory.$theInventory.data;
            if (var$5[1] === null)
                $var2 = null;
            else {
                $var2 = var$5[1];
                var$5[1] = null;
            }
            if ($var2 !== null) {
                var$4 = 0;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        $var2.$itemStack = null;
        if (!$this.$theWorld5.$isRemote) {
            var$5 = $this.$merchantInventory.$theInventory.data;
            if (var$5[0] === null)
                $var2 = null;
            else {
                $var2 = var$5[0];
                var$5[0] = null;
            }
            if ($var2 !== null) {
                var$4 = 0;
                $ptr = 3;
                continue main;
            }
            var$5 = $this.$merchantInventory.$theInventory.data;
            if (var$5[1] === null)
                $var2 = null;
            else {
                $var2 = var$5[1];
                var$5[1] = null;
            }
            if ($var2 !== null) {
                var$4 = 0;
                $ptr = 4;
                continue main;
            }
        }
        return;
    case 3:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, $var2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = $this.$merchantInventory.$theInventory.data;
        if (var$5[1] === null)
            $var2 = null;
        else {
            $var2 = var$5[1];
            var$5[1] = null;
        }
        if ($var2 === null)
            return;
        var$4 = 0;
        $ptr = 4;
    case 4:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, $var2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var2, var$3, var$4, var$5, $ptr);
};
function nms_ContainerBeacon() {
    let a = this; nms_Container.call(a);
    a.$theBeacon = null;
    a.$beaconSlot = null;
    a.$field_82865_g = 0;
    a.$field_82867_h = 0;
    a.$field_82868_i = 0;
}
let nms_ContainerBeacon__init_0 = ($this, $par1InventoryPlayer, $par2TileEntityBeacon) => {
    let var$3, var$4, $var6, var$6, var$7, var$8, $var5, var$10, var$11;
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$inventoryItemStacks = var$3;
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$inventorySlots = var$3;
    $this.$field_94535_f = (-1);
    var$3 = new ju_HashSet;
    var$4 = new ju_HashMap;
    $var6 = ju_HashMap_calculateCapacity(16);
    var$4.$elementCount = 0;
    var$6 = $rt_createArray(ju_HashMap$HashEntry, $var6);
    var$7 = var$6.data;
    var$4.$elementData = var$6;
    var$4.$loadFactor = 0.75;
    var$4.$threshold = var$7.length * 0.75 | 0;
    var$3.$backingMap = var$4;
    $this.$field_94537_h = var$3;
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $this.$crafters = var$3;
    var$3 = new ju_HashSet;
    var$4 = new ju_HashMap;
    $var6 = ju_HashMap_calculateCapacity(16);
    var$4.$elementCount = 0;
    var$6 = $rt_createArray(ju_HashMap$HashEntry, $var6);
    var$7 = var$6.data;
    var$4.$elementData = var$6;
    var$4.$loadFactor = 0.75;
    var$4.$threshold = var$7.length * 0.75 | 0;
    var$3.$backingMap = var$4;
    $this.$playerList = var$3;
    $this.$theBeacon = $par2TileEntityBeacon;
    var$3 = new nms_SlotBeacon;
    var$3.$inventory = $par2TileEntityBeacon;
    var$3.$slotIndex = 0;
    var$3.$xDisplayPosition = 136;
    var$3.$yDisplayPosition = 110;
    var$3.$beacon = $this;
    $this.$beaconSlot = var$3;
    var$4 = $this.$inventorySlots;
    var$8 = var$4.$size0;
    var$3.$slotNumber = var$8;
    ju_ArrayList_ensureCapacity(var$4, var$8 + 1 | 0);
    var$7 = var$4.$array.data;
    var$8 = var$4.$size0;
    var$4.$size0 = var$8 + 1 | 0;
    var$7[var$8] = var$3;
    var$4.$modCount = var$4.$modCount + 1 | 0;
    var$3 = $this.$inventoryItemStacks;
    var$4 = null;
    ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
    var$7 = var$3.$array.data;
    var$8 = var$3.$size0;
    var$3.$size0 = var$8 + 1 | 0;
    var$7[var$8] = var$4;
    var$3.$modCount = var$3.$modCount + 1 | 0;
    $var5 = 0;
    while ($var5 < 3) {
        $var6 = 0;
        while ($var6 < 9) {
            var$3 = new nms_Slot;
            var$8 = ($var6 + ($var5 * 9 | 0) | 0) + 9 | 0;
            var$10 = 36 + ($var6 * 18 | 0) | 0;
            var$11 = 137 + ($var5 * 18 | 0) | 0;
            var$3.$inventory = $par1InventoryPlayer;
            var$3.$slotIndex = var$8;
            var$3.$xDisplayPosition = var$10;
            var$3.$yDisplayPosition = var$11;
            var$4 = $this.$inventorySlots;
            var$10 = var$4.$size0;
            var$3.$slotNumber = var$10;
            ju_ArrayList_ensureCapacity(var$4, var$10 + 1 | 0);
            var$7 = var$4.$array.data;
            var$10 = var$4.$size0;
            var$4.$size0 = var$10 + 1 | 0;
            var$7[var$10] = var$3;
            var$4.$modCount = var$4.$modCount + 1 | 0;
            var$3 = $this.$inventoryItemStacks;
            var$4 = null;
            ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
            var$7 = var$3.$array.data;
            var$10 = var$3.$size0;
            var$3.$size0 = var$10 + 1 | 0;
            var$7[var$10] = var$4;
            var$3.$modCount = var$3.$modCount + 1 | 0;
            $var6 = $var6 + 1 | 0;
        }
        $var5 = $var5 + 1 | 0;
    }
    $var6 = 0;
    while ($var6 < 9) {
        var$3 = new nms_Slot;
        var$8 = 36 + ($var6 * 18 | 0) | 0;
        var$3.$inventory = $par1InventoryPlayer;
        var$3.$slotIndex = $var6;
        var$3.$xDisplayPosition = var$8;
        var$3.$yDisplayPosition = 195;
        var$4 = $this.$inventorySlots;
        var$8 = var$4.$size0;
        var$3.$slotNumber = var$8;
        ju_ArrayList_ensureCapacity(var$4, var$8 + 1 | 0);
        var$7 = var$4.$array.data;
        var$10 = var$4.$size0;
        var$4.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$3;
        var$4.$modCount = var$4.$modCount + 1 | 0;
        var$3 = $this.$inventoryItemStacks;
        var$4 = null;
        ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
        var$7 = var$3.$array.data;
        var$10 = var$3.$size0;
        var$3.$size0 = var$10 + 1 | 0;
        var$7[var$10] = var$4;
        var$3.$modCount = var$3.$modCount + 1 | 0;
        $var6 = $var6 + 1 | 0;
    }
    $this.$field_82865_g = $par2TileEntityBeacon.$levels;
    $this.$field_82867_h = $par2TileEntityBeacon.$primaryEffect;
    $this.$field_82868_i = $par2TileEntityBeacon.$secondaryEffect;
},
nms_ContainerBeacon__init_ = (var_0, var_1) => {
    let var_2 = new nms_ContainerBeacon();
    nms_ContainerBeacon__init_0(var_2, var_0, var_1);
    return var_2;
},
nms_ContainerBeacon_addCraftingToCrafters = ($this, $par1ICrafting) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ICrafting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$crafters;
        var$3 = 0;
        var$4 = var$2.$modCount;
        var$5 = var$2.$size();
        a: {
            while (true) {
                if (!(var$3 >= var$5 ? 0 : 1)) {
                    var$6 = 0;
                    break a;
                }
                if (var$4 < var$2.$modCount)
                    break;
                var$7 = var$3 + 1 | 0;
                var$8 = var$2.$get(var$3);
                if (var$8 === $par1ICrafting ? 1 : var$8 !== null ? var$8.$equals($par1ICrafting) : $par1ICrafting !== null ? 0 : 1) {
                    var$6 = 1;
                    break a;
                }
                var$3 = var$7;
            }
            $par1ICrafting = new ju_ConcurrentModificationException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICrafting);
            $rt_throw($par1ICrafting);
        }
        if (var$6) {
            $par1ICrafting = new jl_IllegalArgumentException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            $par1ICrafting.$message = $rt_s(2628);
            $rt_throw($par1ICrafting);
        }
        var$2 = $this.$crafters;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$9 = var$2.$array.data;
        var$7 = var$2.$size0;
        var$2.$size0 = var$7 + 1 | 0;
        var$9[var$7] = $par1ICrafting;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$10 = new ju_ArrayList;
        var$10.$array = $rt_createArray(jl_Object, 10);
        var$6 = 0;
        while (true) {
            var$2 = $this.$inventorySlots;
            var$7 = $rt_compare(var$6, var$2.$size0);
            if (var$7 >= 0) {
                b: {
                    var$8 = $par1ICrafting.$playerNetServerHandler;
                    var$2 = nms_Packet104WindowItems__init_($this.$windowId, var$10);
                    if (var$2 instanceof nms_Packet3Chat) {
                        var$10 = var$2;
                        var$7 = var$8.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break b;
                        if (var$7 == 1 && !var$10.$isServer)
                            break b;
                    }
                    try {
                        var$8 = var$8.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$8 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$8;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
                var$2 = $par1ICrafting.$playerNetServerHandler;
                var$8 = new nms_Packet103SetSlot;
                var$10 = $par1ICrafting.$inventory0.$itemStack;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$8.$windowId1 = (-1);
                var$8.$itemSlot = (-1);
                if (var$10 !== null) {
                    var$11 = new nms_ItemStack;
                    var$6 = var$10.$itemID;
                    var$7 = var$10.$stackSize;
                    var$4 = var$10.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$11.$itemID = var$6;
                    var$11.$stackSize = var$7;
                    var$11.$itemDamage = var$4;
                    if (var$4 < 0)
                        var$11.$itemDamage = 0;
                    var$10 = var$10.$stackTagCompound;
                    if (var$10 !== null) {
                        var$12 = new nms_NBTTagCompound;
                        var$13 = var$10.$name;
                        if (var$13 === null)
                            var$13 = $rt_s(3);
                        var$12.$name = var$13;
                        var$12.$tagMap = ju_HashMap__init_0(16, 0.75);
                        var$13 = var$10.$tagMap;
                        if (var$13.$cachedKeySet === null) {
                            var$14 = new ju_HashMap$1;
                            var$14.$this$0 = var$13;
                            ju_AbstractCollection__init_(var$14);
                            var$13.$cachedKeySet = var$14;
                        }
                        var$13 = var$13.$cachedKeySet.$iterator();
                        while (var$13.$hasNext()) {
                            var$14 = var$13.$next();
                            var$15 = var$10.$tagMap;
                            if (var$14 === null) {
                                var$15 = var$15.$elementData.data[0];
                                while (var$15 !== null && var$15.$key !== null) {
                                    var$15 = var$15.$next3;
                                }
                            } else {
                                c: {
                                    if (!var$14.$hashCode1) {
                                        var$6 = 0;
                                        while (true) {
                                            if (var$6 >= var$14.$nativeString.length)
                                                break c;
                                            var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$6) | 0;
                                            var$6 = var$6 + 1 | 0;
                                        }
                                    }
                                }
                                var$4 = var$14.$hashCode1;
                                var$9 = var$15.$elementData.data;
                                var$15 = var$9[var$4 & (var$9.length - 1 | 0)];
                                while (var$15 !== null && !(var$15.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$14, var$15.$key))) {
                                    var$15 = var$15.$next3;
                                }
                            }
                            var$15 = var$15 === null ? null : var$15.$value0;
                            var$15 = var$15.$copy();
                            var$16 = var$12.$tagMap;
                            if (var$14 !== null)
                                var$15.$name = var$14;
                            else
                                var$15.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$16, var$14, var$15);
                        }
                        var$11.$stackTagCompound = var$12;
                    }
                    var$10 = var$11;
                }
                d: {
                    var$8.$myItemStack = var$10;
                    if (var$8 instanceof nms_Packet3Chat) {
                        var$10 = var$8;
                        var$7 = var$2.$playerEntity.$chatVisibility;
                        if (var$7 == 2)
                            break d;
                        if (var$7 == 1 && !var$10.$isServer)
                            break d;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$8 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$8;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
                $ptr = 3;
                continue main;
            }
            if (var$6 < 0)
                break;
            if (var$7 >= 0)
                break;
            var$2 = var$2.$array.data[var$6];
            var$2 = var$2.$inventory.$getStackInSlot(var$2.$slotIndex);
            ju_ArrayList_ensureCapacity(var$10, var$10.$size0 + 1 | 0);
            var$9 = var$10.$array.data;
            var$4 = var$10.$size0;
            var$10.$size0 = var$4 + 1 | 0;
            var$9[var$4] = var$2;
            var$10.$modCount = var$10.$modCount + 1 | 0;
            var$6 = var$6 + 1 | 0;
        }
        $par1ICrafting = new jl_IndexOutOfBoundsException;
        $par1ICrafting.$suppressionEnabled = 1;
        $par1ICrafting.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICrafting);
        $rt_throw($par1ICrafting);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $par1ICrafting.$playerNetServerHandler;
        var$8 = new nms_Packet103SetSlot;
        var$10 = $par1ICrafting.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$8.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$8.$windowId1 = (-1);
        var$8.$itemSlot = (-1);
        if (var$10 !== null) {
            var$11 = new nms_ItemStack;
            var$6 = var$10.$itemID;
            var$7 = var$10.$stackSize;
            var$4 = var$10.$itemDamage;
            nms_ItemStack_$callClinit();
            var$11.$itemID = var$6;
            var$11.$stackSize = var$7;
            var$11.$itemDamage = var$4;
            if (var$4 < 0)
                var$11.$itemDamage = 0;
            var$10 = var$10.$stackTagCompound;
            if (var$10 !== null) {
                var$12 = new nms_NBTTagCompound;
                var$13 = var$10.$name;
                if (var$13 === null)
                    var$13 = $rt_s(3);
                var$12.$name = var$13;
                var$12.$tagMap = ju_HashMap__init_0(16, 0.75);
                var$13 = var$10.$tagMap;
                if (var$13.$cachedKeySet === null) {
                    var$14 = new ju_HashMap$1;
                    var$14.$this$0 = var$13;
                    ju_AbstractCollection__init_(var$14);
                    var$13.$cachedKeySet = var$14;
                }
                var$13 = var$13.$cachedKeySet.$iterator();
                while (var$13.$hasNext()) {
                    var$14 = var$13.$next();
                    var$15 = var$10.$tagMap;
                    if (var$14 === null) {
                        var$15 = var$15.$elementData.data[0];
                        while (var$15 !== null && var$15.$key !== null) {
                            var$15 = var$15.$next3;
                        }
                    } else {
                        e: {
                            if (!var$14.$hashCode1) {
                                var$6 = 0;
                                while (true) {
                                    if (var$6 >= var$14.$nativeString.length)
                                        break e;
                                    var$14.$hashCode1 = (31 * var$14.$hashCode1 | 0) + var$14.$nativeString.charCodeAt(var$6) | 0;
                                    var$6 = var$6 + 1 | 0;
                                }
                            }
                        }
                        var$4 = var$14.$hashCode1;
                        var$9 = var$15.$elementData.data;
                        var$15 = var$9[var$4 & (var$9.length - 1 | 0)];
                        while (var$15 !== null && !(var$15.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$14, var$15.$key))) {
                            var$15 = var$15.$next3;
                        }
                    }
                    var$15 = var$15 === null ? null : var$15.$value0;
                    var$15 = var$15.$copy();
                    var$16 = var$12.$tagMap;
                    if (var$14 !== null)
                        var$15.$name = var$14;
                    else
                        var$15.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$16, var$14, var$15);
                }
                var$11.$stackTagCompound = var$12;
            }
            var$10 = var$11;
        }
        f: {
            var$8.$myItemStack = var$10;
            if (var$8 instanceof nms_Packet3Chat) {
                var$10 = var$8;
                var$7 = var$2.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break f;
                if (var$7 == 1 && !var$10.$isServer)
                    break f;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        $ptr = 3;
        continue main;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$8);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$8, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        $ptr = 3;
    case 3:
        a: {
            nms_Container_detectAndSendChanges($this);
            if ($rt_suspending()) {
                break main;
            }
            var$7 = $this.$field_82865_g;
            var$8 = $par1ICrafting.$playerNetServerHandler;
            var$2 = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$windowId0 = var$4;
            var$2.$progressBar = 0;
            var$2.$progressBarValue = var$7;
            if (var$2 instanceof nms_Packet3Chat) {
                var$10 = var$2;
                var$7 = var$8.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break a;
                if (var$7 == 1 && !var$10.$isServer)
                    break a;
            }
            try {
                var$8 = var$8.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$10);
                var$10.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$10);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        g: {
            var$7 = $this.$field_82867_h;
            var$10 = $par1ICrafting.$playerNetServerHandler;
            var$2 = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$windowId0 = var$4;
            var$2.$progressBar = 1;
            var$2.$progressBarValue = var$7;
            if (var$2 instanceof nms_Packet3Chat) {
                var$8 = var$2;
                var$7 = var$10.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break g;
                if (var$7 == 1 && !var$8.$isServer)
                    break g;
            }
            try {
                var$8 = var$10.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$10);
                var$10.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$10);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        h: {
            var$7 = $this.$field_82868_i;
            var$2 = $par1ICrafting.$playerNetServerHandler;
            $par1ICrafting = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            $par1ICrafting.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1ICrafting.$windowId0 = var$4;
            $par1ICrafting.$progressBar = 2;
            $par1ICrafting.$progressBarValue = var$7;
            if ($par1ICrafting instanceof nms_Packet3Chat) {
                var$8 = $par1ICrafting;
                var$7 = var$2.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break h;
                if (var$7 == 1 && !var$8.$isServer)
                    break h;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$8);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        return;
    case 4:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$10);
                var$10.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$10);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        i: {
            var$7 = $this.$field_82867_h;
            var$10 = $par1ICrafting.$playerNetServerHandler;
            var$2 = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            var$2.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            var$2.$windowId0 = var$4;
            var$2.$progressBar = 1;
            var$2.$progressBarValue = var$7;
            if (var$2 instanceof nms_Packet3Chat) {
                var$8 = var$2;
                var$7 = var$10.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break i;
                if (var$7 == 1 && !var$8.$isServer)
                    break i;
            }
            try {
                var$8 = var$10.$netManager;
                $ptr = 5;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$10);
                var$10.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$10);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        j: {
            var$7 = $this.$field_82868_i;
            var$2 = $par1ICrafting.$playerNetServerHandler;
            $par1ICrafting = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            $par1ICrafting.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1ICrafting.$windowId0 = var$4;
            $par1ICrafting.$progressBar = 2;
            $par1ICrafting.$progressBarValue = var$7;
            if ($par1ICrafting instanceof nms_Packet3Chat) {
                var$8 = $par1ICrafting;
                var$7 = var$2.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break j;
                if (var$7 == 1 && !var$8.$isServer)
                    break j;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$8);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        return;
    case 5:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$8, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$8 = new otcic_JSStderrPrintStream;
                var$10 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$10);
                var$10.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$8, var$10);
                var$8.$sb = jl_StringBuilder__init_();
                var$8.$buffer0 = $rt_createCharArray(32);
                var$8.$autoFlush = 0;
                var$8.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$8;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        i: {
            var$7 = $this.$field_82868_i;
            var$2 = $par1ICrafting.$playerNetServerHandler;
            $par1ICrafting = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            $par1ICrafting.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1ICrafting.$windowId0 = var$4;
            $par1ICrafting.$progressBar = 2;
            $par1ICrafting.$progressBarValue = var$7;
            if ($par1ICrafting instanceof nms_Packet3Chat) {
                var$8 = $par1ICrafting;
                var$7 = var$2.$playerEntity.$chatVisibility;
                if (var$7 == 2)
                    break i;
                if (var$7 == 1 && !var$8.$isServer)
                    break i;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 6;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$8);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        return;
    case 6:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ICrafting);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$8 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$8);
                var$8.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$8);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICrafting, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_ContainerBeacon_getBeacon = $this => {
    return $this.$theBeacon;
},
nms_ContainerBeacon_canInteractWith = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$theBeacon;
        $ptr = 1;
    case 1:
        $tmp = nms_TileEntityBeacon_isUseableByPlayer(var$2, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $ptr);
},
nms_ContainerBeacon_transferStackInSlot = ($this, $par1EntityPlayer, $par2) => {
    let $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = null;
        var$4 = $this.$inventorySlots;
        if ($par2 >= 0 && $par2 < var$4.$size0) {
            $var4 = var$4.$array.data[$par2];
            if ($var4 !== null && ($var4.$inventory.$getStackInSlot($var4.$slotIndex) === null ? 0 : 1)) {
                $var5 = $var4.$inventory.$getStackInSlot($var4.$slotIndex);
                $var3 = new nms_ItemStack;
                var$7 = $var5.$itemID;
                var$8 = $var5.$stackSize;
                var$9 = $var5.$itemDamage;
                nms_ItemStack_$callClinit();
                $var3.$itemID = var$7;
                $var3.$stackSize = var$8;
                $var3.$itemDamage = var$9;
                if (var$9 < 0)
                    $var3.$itemDamage = 0;
                var$10 = $var5.$stackTagCompound;
                if (var$10 !== null) {
                    var$11 = new nms_NBTTagCompound;
                    var$4 = var$10.$name;
                    if (var$4 === null)
                        var$4 = $rt_s(3);
                    var$11.$name = var$4;
                    var$4 = new ju_HashMap;
                    var$7 = ju_HashMap_calculateCapacity(16);
                    var$4.$elementCount = 0;
                    var$12 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                    var$13 = var$12.data;
                    var$4.$elementData = var$12;
                    var$4.$loadFactor = 0.75;
                    var$4.$threshold = var$13.length * 0.75 | 0;
                    var$11.$tagMap = var$4;
                    var$14 = var$10.$tagMap;
                    if (var$14.$cachedKeySet === null) {
                        var$4 = new ju_HashMap$1;
                        var$4.$this$0 = var$14;
                        var$14.$cachedKeySet = var$4;
                    }
                    var$14 = var$14.$cachedKeySet.$iterator();
                    while (var$14.$hasNext()) {
                        var$15 = var$14.$next();
                        var$4 = var$10.$tagMap;
                        if (var$15 === null) {
                            var$16 = var$4.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            a: {
                                if (!var$15.$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= var$15.$nativeString.length)
                                            break a;
                                        var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$8 = var$15.$hashCode1;
                            var$13 = var$4.$elementData.data;
                            var$16 = var$13[var$8 & (var$13.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == var$8) {
                                    b: {
                                        var$4 = var$16.$key;
                                        if (var$15 !== var$4) {
                                            if (var$15 === var$4)
                                                var$7 = 1;
                                            else if (!(var$4 instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                var$4 = var$4;
                                                var$7 = var$15.$nativeString !== var$4.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break b;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$4 = var$16 === null ? null : var$16.$value0;
                        var$4 = var$4.$copy();
                        var$16 = var$11.$tagMap;
                        if (var$15 !== null)
                            var$4.$name = var$15;
                        else
                            var$4.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$16, var$15, var$4);
                    }
                    $var3.$stackTagCompound = var$11;
                }
                if (!$par2) {
                    $par2 = 1;
                    var$7 = 37;
                    var$8 = 1;
                    $ptr = 1;
                    continue main;
                }
                var$4 = $this.$beaconSlot;
                var$7 = var$4.$inventory.$getStackInSlot(var$4.$slotIndex) === null ? 0 : 1;
                if (!var$7 && nms_SlotBeacon_isItemValid($this.$beaconSlot, $var5) && $var5.$stackSize == 1) {
                    $par2 = 0;
                    var$7 = 1;
                    var$8 = 0;
                    $ptr = 8;
                    continue main;
                }
                if ($par2 >= 1 && $par2 < 28) {
                    $par2 = 28;
                    var$7 = 37;
                    var$8 = 0;
                    $ptr = 7;
                    continue main;
                }
                if ($par2 >= 28 && $par2 < 37) {
                    $par2 = 1;
                    var$7 = 28;
                    var$8 = 0;
                    $ptr = 9;
                    continue main;
                }
                $par2 = 1;
                var$7 = 37;
                var$8 = 0;
                $ptr = 6;
                continue main;
            }
            return $var3;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$itemID == $var3.$itemID) {
            $par2 = $var3.$stackSize - $var5.$stackSize | 0;
            if ($par2 > 0) {
                $ptr = 2;
                continue main;
            }
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 2:
        $var4.$onCrafting($var5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 3:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 10;
        continue main;
    case 4:
        var$10.$setInventorySlotContents($par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $var4.$inventory;
        $ptr = 5;
    case 5:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 10;
        continue main;
    case 6:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 7:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 8:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 9:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 10:
        $var4.$onPickupFromSlot($par1EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
};
function nms_ContainerRepair() {
    let a = this; nms_Container.call(a);
    a.$outputSlot = null;
    a.$inputSlots = null;
    a.$theWorld4 = null;
    a.$field_82861_i = 0;
    a.$field_82858_j = 0;
    a.$field_82859_k = 0;
    a.$maximumCost = 0;
    a.$stackSizeToBeUsedInRepair = 0;
    a.$repairedItemName = null;
    a.$thePlayer3 = null;
}
let nms_ContainerRepair__init_0 = ($this, $par1InventoryPlayer, $par2World, $par3, $par4, $par5, $par6EntityPlayer) => {
    let var$7, var$8, $var7, var$10, var$11, $var8;
    var$7 = new ju_ArrayList;
    var$7.$array = $rt_createArray(jl_Object, 10);
    $this.$inventoryItemStacks = var$7;
    var$7 = new ju_ArrayList;
    var$7.$array = $rt_createArray(jl_Object, 10);
    $this.$inventorySlots = var$7;
    $this.$field_94535_f = (-1);
    var$7 = new ju_HashSet;
    var$8 = new ju_HashMap;
    $var7 = ju_HashMap_calculateCapacity(16);
    var$8.$elementCount = 0;
    var$10 = $rt_createArray(ju_HashMap$HashEntry, $var7);
    var$11 = var$10.data;
    var$8.$elementData = var$10;
    var$8.$loadFactor = 0.75;
    var$8.$threshold = var$11.length * 0.75 | 0;
    var$7.$backingMap = var$8;
    $this.$field_94537_h = var$7;
    var$7 = new ju_ArrayList;
    var$7.$array = $rt_createArray(jl_Object, 10);
    $this.$crafters = var$7;
    var$7 = new ju_HashSet;
    var$8 = new ju_HashMap;
    $var7 = ju_HashMap_calculateCapacity(16);
    var$8.$elementCount = 0;
    var$10 = $rt_createArray(ju_HashMap$HashEntry, $var7);
    var$11 = var$10.data;
    var$8.$elementData = var$10;
    var$8.$loadFactor = 0.75;
    var$8.$threshold = var$11.length * 0.75 | 0;
    var$7.$backingMap = var$8;
    $this.$playerList = var$7;
    var$7 = new nms_InventoryCraftResult;
    var$7.$stackResult = $rt_createArray(nms_ItemStack, 1);
    $this.$outputSlot = var$7;
    var$8 = new nms_ContainerRepairINNER1;
    var$8.$inventoryTitle = $rt_s(2720);
    var$8.$field_94051_e = 1;
    var$8.$slotsCount = 2;
    var$8.$inventoryContents = $rt_createArray(nms_ItemStack, 2);
    var$8.$repairContainer = $this;
    $this.$inputSlots = var$8;
    $this.$theWorld4 = $par2World;
    $this.$field_82861_i = $par3;
    $this.$field_82858_j = $par4;
    $this.$field_82859_k = $par5;
    $this.$thePlayer3 = $par6EntityPlayer;
    $par6EntityPlayer = new nms_Slot;
    $par6EntityPlayer.$inventory = var$8;
    $par6EntityPlayer.$slotIndex = 0;
    $par6EntityPlayer.$xDisplayPosition = 27;
    $par6EntityPlayer.$yDisplayPosition = 47;
    var$7 = $this.$inventorySlots;
    $var8 = var$7.$size0;
    $par6EntityPlayer.$slotNumber = $var8;
    ju_ArrayList_ensureCapacity(var$7, $var8 + 1 | 0);
    var$11 = var$7.$array.data;
    $var8 = var$7.$size0;
    var$7.$size0 = $var8 + 1 | 0;
    var$11[$var8] = $par6EntityPlayer;
    var$7.$modCount = var$7.$modCount + 1 | 0;
    $par6EntityPlayer = $this.$inventoryItemStacks;
    var$7 = null;
    ju_ArrayList_ensureCapacity($par6EntityPlayer, $par6EntityPlayer.$size0 + 1 | 0);
    var$11 = $par6EntityPlayer.$array.data;
    $var8 = $par6EntityPlayer.$size0;
    $par6EntityPlayer.$size0 = $var8 + 1 | 0;
    var$11[$var8] = var$7;
    $par6EntityPlayer.$modCount = $par6EntityPlayer.$modCount + 1 | 0;
    $par6EntityPlayer = new nms_Slot;
    $par6EntityPlayer.$inventory = $this.$inputSlots;
    $par6EntityPlayer.$slotIndex = 1;
    $par6EntityPlayer.$xDisplayPosition = 76;
    $par6EntityPlayer.$yDisplayPosition = 47;
    var$7 = $this.$inventorySlots;
    $var8 = var$7.$size0;
    $par6EntityPlayer.$slotNumber = $var8;
    ju_ArrayList_ensureCapacity(var$7, $var8 + 1 | 0);
    var$11 = var$7.$array.data;
    $var8 = var$7.$size0;
    var$7.$size0 = $var8 + 1 | 0;
    var$11[$var8] = $par6EntityPlayer;
    var$7.$modCount = var$7.$modCount + 1 | 0;
    $par6EntityPlayer = $this.$inventoryItemStacks;
    var$7 = null;
    ju_ArrayList_ensureCapacity($par6EntityPlayer, $par6EntityPlayer.$size0 + 1 | 0);
    var$11 = $par6EntityPlayer.$array.data;
    $var8 = $par6EntityPlayer.$size0;
    $par6EntityPlayer.$size0 = $var8 + 1 | 0;
    var$11[$var8] = var$7;
    $par6EntityPlayer.$modCount = $par6EntityPlayer.$modCount + 1 | 0;
    $par6EntityPlayer = new nms_ContainerRepairINNER2;
    $par6EntityPlayer.$inventory = $this.$outputSlot;
    $par6EntityPlayer.$slotIndex = 2;
    $par6EntityPlayer.$xDisplayPosition = 134;
    $par6EntityPlayer.$yDisplayPosition = 47;
    $par6EntityPlayer.$repairContainer0 = $this;
    $par6EntityPlayer.$field_135071_a = $par2World;
    $par6EntityPlayer.$field_135069_b = $par3;
    $par6EntityPlayer.$field_135070_c = $par4;
    $par6EntityPlayer.$field_135067_d = $par5;
    $par2World = $this.$inventorySlots;
    $par4 = $par2World.$size0;
    $par6EntityPlayer.$slotNumber = $par4;
    ju_ArrayList_ensureCapacity($par2World, $par4 + 1 | 0);
    var$11 = $par2World.$array.data;
    $par4 = $par2World.$size0;
    $par2World.$size0 = $par4 + 1 | 0;
    var$11[$par4] = $par6EntityPlayer;
    $par2World.$modCount = $par2World.$modCount + 1 | 0;
    $par2World = $this.$inventoryItemStacks;
    $par6EntityPlayer = null;
    ju_ArrayList_ensureCapacity($par2World, $par2World.$size0 + 1 | 0);
    var$11 = $par2World.$array.data;
    $par4 = $par2World.$size0;
    $par2World.$size0 = $par4 + 1 | 0;
    var$11[$par4] = $par6EntityPlayer;
    $par2World.$modCount = $par2World.$modCount + 1 | 0;
    $var7 = 0;
    while ($var7 < 3) {
        $var8 = 0;
        while ($var8 < 9) {
            $par2World = new nms_Slot;
            $par3 = ($var8 + ($var7 * 9 | 0) | 0) + 9 | 0;
            $par4 = 8 + ($var8 * 18 | 0) | 0;
            $par5 = 84 + ($var7 * 18 | 0) | 0;
            $par2World.$inventory = $par1InventoryPlayer;
            $par2World.$slotIndex = $par3;
            $par2World.$xDisplayPosition = $par4;
            $par2World.$yDisplayPosition = $par5;
            $par6EntityPlayer = $this.$inventorySlots;
            $par4 = $par6EntityPlayer.$size0;
            $par2World.$slotNumber = $par4;
            ju_ArrayList_ensureCapacity($par6EntityPlayer, $par4 + 1 | 0);
            var$11 = $par6EntityPlayer.$array.data;
            $par4 = $par6EntityPlayer.$size0;
            $par6EntityPlayer.$size0 = $par4 + 1 | 0;
            var$11[$par4] = $par2World;
            $par6EntityPlayer.$modCount = $par6EntityPlayer.$modCount + 1 | 0;
            $par2World = $this.$inventoryItemStacks;
            $par6EntityPlayer = null;
            ju_ArrayList_ensureCapacity($par2World, $par2World.$size0 + 1 | 0);
            var$11 = $par2World.$array.data;
            $par4 = $par2World.$size0;
            $par2World.$size0 = $par4 + 1 | 0;
            var$11[$par4] = $par6EntityPlayer;
            $par2World.$modCount = $par2World.$modCount + 1 | 0;
            $var8 = $var8 + 1 | 0;
        }
        $var7 = $var7 + 1 | 0;
    }
    $par3 = 0;
    while ($par3 < 9) {
        $par2World = new nms_Slot;
        $par4 = 8 + ($par3 * 18 | 0) | 0;
        $par2World.$inventory = $par1InventoryPlayer;
        $par2World.$slotIndex = $par3;
        $par2World.$xDisplayPosition = $par4;
        $par2World.$yDisplayPosition = 142;
        $par6EntityPlayer = $this.$inventorySlots;
        $par5 = $par6EntityPlayer.$size0;
        $par2World.$slotNumber = $par5;
        ju_ArrayList_ensureCapacity($par6EntityPlayer, $par5 + 1 | 0);
        var$11 = $par6EntityPlayer.$array.data;
        $par5 = $par6EntityPlayer.$size0;
        $par6EntityPlayer.$size0 = $par5 + 1 | 0;
        var$11[$par5] = $par2World;
        $par6EntityPlayer.$modCount = $par6EntityPlayer.$modCount + 1 | 0;
        $par2World = $this.$inventoryItemStacks;
        $par6EntityPlayer = null;
        ju_ArrayList_ensureCapacity($par2World, $par2World.$size0 + 1 | 0);
        var$11 = $par2World.$array.data;
        $par5 = $par2World.$size0;
        $par2World.$size0 = $par5 + 1 | 0;
        var$11[$par5] = $par6EntityPlayer;
        $par2World.$modCount = $par2World.$modCount + 1 | 0;
        $par3 = $par3 + 1 | 0;
    }
},
nms_ContainerRepair__init_ = (var_0, var_1, var_2, var_3, var_4, var_5) => {
    let var_6 = new nms_ContainerRepair();
    nms_ContainerRepair__init_0(var_6, var_0, var_1, var_2, var_3, var_4, var_5);
    return var_6;
},
nms_ContainerRepair_updateRepairOutput = $this => {
    let $var1, $var2, $var4, $var22, $var5, $var9, $var14, $var8, $var20, $var17, var$11, var$12, $var21, $var6, $var7, $var3, $var19, $var9_0, $var10, $var11, $var13, $var12, $var21_0, $var10000, $var15, $var16, $var18, $var23, $var13_0, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13_0 = $thread.pop();$var23 = $thread.pop();$var18 = $thread.pop();$var16 = $thread.pop();$var15 = $thread.pop();$var10000 = $thread.pop();$var21_0 = $thread.pop();$var12 = $thread.pop();$var13 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9_0 = $thread.pop();$var19 = $thread.pop();$var3 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var21 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var17 = $thread.pop();$var20 = $thread.pop();$var8
        = $thread.pop();$var14 = $thread.pop();$var9 = $thread.pop();$var5 = $thread.pop();$var22 = $thread.pop();$var4 = $thread.pop();$var2 = $thread.pop();$var1 = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var1 = $this.$inputSlots.$inventoryContents.data[0];
        $this.$maximumCost = 0;
        $var2 = 0;
        $var4 = 0;
        if ($var1 === null) {
            $var22 = $this.$outputSlot;
            $var22.$stackResult.data[0] = null;
            $this.$maximumCost = 0;
            return;
        }
        $var5 = new nms_ItemStack;
        $var9 = $var1.$itemID;
        $var14 = $var1.$stackSize;
        $var8 = $var1.$itemDamage;
        nms_ItemStack_$callClinit();
        $var5.$itemID = $var9;
        $var5.$stackSize = $var14;
        $var5.$itemDamage = $var8;
        if ($var8 < 0)
            $var5.$itemDamage = 0;
        $var22 = $var1.$stackTagCompound;
        if ($var22 !== null) {
            $var20 = new nms_NBTTagCompound;
            $var17 = $var22.$name;
            if ($var17 === null)
                $var17 = $rt_s(3);
            $var20.$name = $var17;
            $var17 = new ju_HashMap;
            $var9 = ju_HashMap_calculateCapacity(16);
            $var17.$elementCount = 0;
            var$11 = ju_HashMap_newElementArray($var17, $var9);
            var$12 = var$11.data;
            $var17.$elementData = var$11;
            $var17.$loadFactor = 0.75;
            $var17.$threshold = var$12.length * 0.75 | 0;
            $var20.$tagMap = $var17;
            $var17 = $var22.$tagMap;
            if ($var17.$cachedKeySet === null) {
                $var21 = new ju_HashMap$1;
                $var21.$this$0 = $var17;
                $var17.$cachedKeySet = $var21;
            }
            $var17 = $var17.$cachedKeySet.$iterator();
            while ($var17.$hasNext()) {
                $var21 = $var17.$next();
                $var6 = $var22.$tagMap;
                if ($var21 === null) {
                    $var6 = $var6.$elementData.data[0];
                    while ($var6 !== null && $var6.$key !== null) {
                        $var6 = $var6.$next3;
                    }
                } else {
                    $var14 = jl_String_hashCode($var21);
                    var$11 = $var6.$elementData.data;
                    $var6 = var$11[$var14 & (var$11.length - 1 | 0)];
                    while ($var6 !== null) {
                        if ($var6.$origKeyHash == $var14) {
                            $var7 = $var6.$key;
                            if ($var21 !== $var7 && !jl_String_equals($var21, $var7) ? 0 : 1)
                                break;
                        }
                        $var6 = $var6.$next3;
                    }
                }
                $var6 = $var6 === null ? null : $var6.$value0;
                $var6 = $var6.$copy();
                $var7 = $var20.$tagMap;
                if ($var21 !== null)
                    $var6.$name = $var21;
                else
                    $var6.$name = $rt_s(3);
                ju_HashMap_putImpl($var7, $var21, $var6);
            }
            $var5.$stackTagCompound = $var20;
        }
        $var6 = $this.$inputSlots.$inventoryContents.data[1];
        $var7 = nms_EnchantmentHelper_getEnchantments($var5);
        $var8 = 0;
        $var20 = $var1.$stackTagCompound;
        $var9 = $var20 === null ? 0 : 1;
        a: {
            if ($var9) {
                $var20 = $var20.$tagMap;
                $var14 = jl_String_hashCode($rt_s(2721));
                var$11 = $var20.$elementData.data;
                $var20 = var$11[$var14 & (var$11.length - 1 | 0)];
                while ($var20 !== null) {
                    if ($var20.$origKeyHash == $var14) {
                        $var17 = $var20.$key;
                        if ($rt_s(2721) !== $var17 && !jl_String_equals($rt_s(2721), $var17) ? 0 : 1)
                            break;
                    }
                    $var20 = $var20.$next3;
                }
                if ($var20 === null ? 0 : 1) {
                    $var22 = $var1.$stackTagCompound;
                    $var17 = $var22.$tagMap;
                    $var14 = jl_String_hashCode($rt_s(2721));
                    var$11 = $var17.$elementData.data;
                    $var17 = var$11[$var14 & (var$11.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $var14) {
                            $var21 = $var17.$key;
                            if ($rt_s(2721) !== $var21 && !jl_String_equals($rt_s(2721), $var21) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                    if (!($var17 === null ? 0 : 1))
                        $var9 = 0;
                    else {
                        $var22 = $var22.$tagMap;
                        if ($rt_s(2721) !== null) {
                            $var14 = jl_String_hashCode($rt_s(2721));
                            var$11 = $var22.$elementData.data;
                            $var22 = var$11[$var14 & (var$11.length - 1 | 0)];
                            while ($var22 !== null) {
                                if ($var22.$origKeyHash == $var14) {
                                    $var17 = $var22.$key;
                                    if ($rt_s(2721) !== $var17 && !jl_String_equals($rt_s(2721), $var17) ? 0 : 1)
                                        break;
                                }
                                $var22 = $var22.$next3;
                            }
                        } else {
                            $var22 = $var22.$elementData.data[0];
                            while ($var22 !== null && $var22.$key !== null) {
                                $var22 = $var22.$next3;
                            }
                        }
                        $var9 = ($var22 === null ? null : $var22.$value0).$data;
                    }
                    break a;
                }
            }
            $var9 = 0;
        }
        $var9 = 0 + $var9 | 0;
        if ($var6 !== null) {
            $var20 = $var6.$stackTagCompound;
            $var3 = $var20 === null ? 0 : 1;
            b: {
                if ($var3) {
                    $var20 = $var20.$tagMap;
                    $var14 = jl_String_hashCode($rt_s(2721));
                    var$11 = $var20.$elementData.data;
                    $var20 = var$11[$var14 & (var$11.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == $var14) {
                            $var17 = $var20.$key;
                            if ($rt_s(2721) !== $var17 && !jl_String_equals($rt_s(2721), $var17) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                    if ($var20 === null ? 0 : 1) {
                        $var22 = $var6.$stackTagCompound;
                        $var17 = $var22.$tagMap;
                        $var14 = jl_String_hashCode($rt_s(2721));
                        var$11 = $var17.$elementData.data;
                        $var17 = var$11[$var14 & (var$11.length - 1 | 0)];
                        while ($var17 !== null) {
                            if ($var17.$origKeyHash == $var14) {
                                $var21 = $var17.$key;
                                if ($rt_s(2721) !== $var21 && !jl_String_equals($rt_s(2721), $var21) ? 0 : 1)
                                    break;
                            }
                            $var17 = $var17.$next3;
                        }
                        if ($var17 === null ? 0 : 1) {
                            $var22 = $var22.$tagMap;
                            if ($rt_s(2721) !== null) {
                                $var14 = jl_String_hashCode($rt_s(2721));
                                var$11 = $var22.$elementData.data;
                                $var22 = var$11[$var14 & (var$11.length - 1 | 0)];
                                while ($var22 !== null) {
                                    if ($var22.$origKeyHash == $var14) {
                                        $var17 = $var22.$key;
                                        if ($rt_s(2721) !== $var17 && !jl_String_equals($rt_s(2721), $var17) ? 0 : 1)
                                            break;
                                    }
                                    $var22 = $var22.$next3;
                                }
                            } else {
                                $var22 = $var22.$elementData.data[0];
                                while ($var22 !== null && $var22.$key !== null) {
                                    $var22 = $var22.$next3;
                                }
                            }
                            $var3 = ($var22 === null ? null : $var22.$value0).$data;
                        } else
                            $var3 = 0;
                        break b;
                    }
                }
                $var3 = 0;
            }
        } else
            $var3 = 0;
        c: {
            $var19 = $var9 + $var3 | 0;
            $this.$stackSizeToBeUsedInRepair = 0;
            if ($var6 !== null) {
                d: {
                    $var3 = $var6.$itemID;
                    nms_Item_$callClinit();
                    if ($var3 == nms_Item_enchantedBook.$itemID0) {
                        e: {
                            $var22 = $var6.$stackTagCompound;
                            if ($var22 !== null) {
                                $var22 = $var22.$tagMap;
                                $var9 = jl_String_hashCode($rt_s(1354));
                                var$11 = $var22.$elementData.data;
                                $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                                while ($var22 !== null) {
                                    if ($var22.$origKeyHash == $var9) {
                                        $var17 = $var22.$key;
                                        if ($rt_s(1354) !== $var17 && !jl_String_equals($rt_s(1354), $var17) ? 0 : 1)
                                            break;
                                    }
                                    $var22 = $var22.$next3;
                                }
                                if ($var22 === null ? 0 : 1) {
                                    $var22 = $var6.$stackTagCompound.$tagMap;
                                    $var9 = jl_String_hashCode($rt_s(1354));
                                    var$11 = $var22.$elementData.data;
                                    $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                                    while ($var22 !== null) {
                                        if ($var22.$origKeyHash == $var9) {
                                            $var17 = $var22.$key;
                                            if ($rt_s(1354) !== $var17 && !jl_String_equals($rt_s(1354), $var17) ? 0 : 1)
                                                break;
                                        }
                                        $var22 = $var22.$next3;
                                    }
                                    $var22 = $var22 === null ? null : $var22.$value0;
                                    break e;
                                }
                            }
                            $var22 = new nms_NBTTagList;
                            $var22.$name = $rt_s(3);
                            $var20 = new ju_ArrayList;
                            $var20.$array = $rt_createArray(jl_Object, 10);
                            $var22.$tagList = $var20;
                        }
                        if ($var22.$tagList.$size0 > 0) {
                            $var8 = 1;
                            break d;
                        }
                    }
                    $var8 = 0;
                }
                var$11 = nms_Item_itemsList.data;
                $var3 = $var5.$itemID;
                $var9 = var$11[$var3].$maxDamage <= 0 ? 0 : 1;
                if ($var9 && var$11[$var3].$getIsRepairable($var1, $var6)) {
                    $var9 = $var5.$itemDamage;
                    var$11 = nms_Item_itemsList.data;
                    $var14 = $var5.$itemID;
                    $var9_0 = var$11[$var14].$maxDamage / 4 | 0;
                    if ($var9 < $var9_0)
                        $var9_0 = $var9;
                    if ($var9_0 > 0) {
                        $var10 = 0;
                        while ($var9_0 > 0 && $var10 < $var6.$stackSize) {
                            $var11 = $var5.$itemDamage - $var9_0 | 0;
                            $var5.$itemDamage = $var11;
                            if ($var11 < 0)
                                $var5.$itemDamage = 0;
                            $var13 = $var9_0 / 100 | 0;
                            if (1 > $var13)
                                $var13 = 1;
                            $var2 = $var2 + ($var13 + $var7.$elementCount | 0) | 0;
                            $var9 = $var5.$itemDamage;
                            $var9_0 = var$11[$var14].$maxDamage / 4 | 0;
                            if ($var9 < $var9_0)
                                $var9_0 = $var9;
                            $var10 = $var10 + 1 | 0;
                        }
                        $this.$stackSizeToBeUsedInRepair = $var10;
                        break c;
                    }
                    $var22 = $this.$outputSlot;
                    $var22.$stackResult.data[0] = null;
                    $this.$maximumCost = 0;
                    return;
                }
                if (!$var8) {
                    $var3 = $var5.$itemID;
                    if (!($var3 == $var6.$itemID && (nms_Item_itemsList.data[$var3].$maxDamage <= 0 ? 0 : 1))) {
                        $var22 = $this.$outputSlot;
                        $var22.$stackResult.data[0] = null;
                        $this.$maximumCost = 0;
                        return;
                    }
                }
                var$11 = nms_Item_itemsList.data;
                $var13 = $var5.$itemID;
                $var3 = var$11[$var13].$maxDamage <= 0 ? 0 : 1;
                if ($var3 && !$var8) {
                    $var9 = var$11[$var1.$itemID].$maxDamage - $var1.$itemDamage | 0;
                    $var11 = (var$11[$var6.$itemID].$maxDamage - $var6.$itemDamage | 0) + ((var$11[$var13].$maxDamage * 12 | 0) / 100 | 0) | 0;
                    $var12 = $var9 + $var11 | 0;
                    $var13 = nms_ItemStack_getMaxDamage($var5) - $var12 | 0;
                    if ($var13 < 0)
                        $var13 = 0;
                    if ($var13 < $var5.$itemDamage) {
                        nms_ItemStack_setItemDamage($var5, $var13);
                        $var2 = $var2 + jl_Math_max(1, $var11 / 100 | 0) | 0;
                    }
                }
                $var20 = nms_EnchantmentHelper_getEnchantments($var6);
                if ($var20.$cachedKeySet === null) {
                    $var22 = new ju_LinkedHashMapKeySet;
                    $var22.$base1 = $var20;
                    $var22.$reversed1 = 0;
                    $var20.$cachedKeySet = $var22;
                }
                $var17 = $var20.$cachedKeySet;
                $var21_0 = new ju_LinkedHashMapIterator$KeyIterator;
                $var22 = $var17.$base1;
                $var3 = $var17.$reversed1;
                $var21_0.$base0 = $var22;
                $var21_0.$reversed0 = $var3;
                $var21_0.$expectedModCount0 = $var22.$modCount1;
                $var21_0.$futureEntry = !$var3 ? $var22.$head : $var22.$tail;
                while (ju_LinkedHashMapIterator_hasNext($var21_0)) {
                    $var11 = (ju_LinkedHashMapIterator$KeyIterator_next($var21_0)).$value;
                    nms_Enchantment_$callClinit();
                    $var22 = nms_Enchantment_enchantmentsList.data[$var11];
                    $var13 = !ju_HashMap_containsKey($var7, jl_Integer_valueOf($var11)) ? 0 : (ju_LinkedHashMap_get($var7, jl_Integer_valueOf($var11))).$value;
                    $var14 = jl_Integer_intValue(ju_LinkedHashMap_get($var20, jl_Integer_valueOf($var11)));
                    $var10000 = $var13 != $var14 ? jl_Math_max($var14, $var13) : $var14 + 1 | 0;
                    $var15 = $var10000 - $var13 | 0;
                    $var16 = $var22.$canApply($var1);
                    if (!(!$this.$thePlayer3.$capabilities.$isCreativeMode && $var1.$itemID != nms_Item_enchantedBook.$itemID0))
                        $var16 = 1;
                    $var17 = ju_LinkedHashMapKeySet_iterator(ju_LinkedHashMap_keySet($var7));
                    while (ju_LinkedHashMapIterator_hasNext($var17)) {
                        $var18 = jl_Integer_intValue(ju_LinkedHashMapIterator$KeyIterator_next($var17));
                        if ($var18 != $var11 && !$var22.$canApplyTogether(nms_Enchantment_enchantmentsList.data[$var18])) {
                            $var16 = 0;
                            $var2 = $var2 + $var15 | 0;
                        }
                    }
                    if ($var16) {
                        if ($var10000 > $var22.$getMaxLevel())
                            $var10000 = $var22.$getMaxLevel();
                        f: {
                            g: {
                                h: {
                                    ju_LinkedHashMap_put($var7, jl_Integer_valueOf($var11), jl_Integer_valueOf($var10000));
                                    $var23 = 0;
                                    switch (nms_Enchantment_getWeight($var22)) {
                                        case 1:
                                            break;
                                        case 2:
                                            $var23 = 4;
                                            break g;
                                        case 5:
                                            $var23 = 2;
                                            break f;
                                        case 10:
                                            $var23 = 1;
                                            break f;
                                        case 3:
                                        case 4:
                                        case 6:
                                        case 7:
                                        case 8:
                                        case 9:
                                            break h;
                                        default:
                                            break h;
                                    }
                                    $var23 = 8;
                                    break f;
                                }
                            }
                        }
                        if ($var8)
                            $var23 = jl_Math_max(1, $var23 / 2 | 0);
                        $var2 = $var2 + $rt_imul($var23, $var15) | 0;
                    }
                }
            }
        }
        i: {
            $var20 = $this.$repairedItemName;
            if ($var20 !== null) {
                if ($var20 === $rt_s(3))
                    $var3 = 1;
                else if (!($rt_s(3) instanceof jl_String))
                    $var3 = 0;
                else {
                    $var22 = $rt_s(3);
                    $var3 = $var20.$nativeString !== $var22.$nativeString ? 0 : 1;
                }
                if (!$var3) {
                    $var20 = $this.$repairedItemName;
                    if ($var20 === $rt_s(260))
                        $var3 = 1;
                    else if ($rt_s(260) instanceof jl_String) {
                        $var22 = $rt_s(260);
                        $var3 = $var20.$nativeString !== $var22.$nativeString ? 0 : 1;
                    } else
                        $var3 = 0;
                    if (!$var3) {
                        $var21 = $this.$repairedItemName;
                        nms_Item_$callClinit();
                        $var21_0 = nms_Item_itemsList.data[$var1.$itemID].$getItemDisplayName($var1);
                        $var22 = $var1.$stackTagCompound;
                        if ($var22 !== null) {
                            $var22 = $var22.$tagMap;
                            $var9 = jl_String_hashCode($rt_s(918));
                            var$11 = $var22.$elementData.data;
                            $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                            while ($var22 !== null) {
                                if ($var22.$origKeyHash == $var9) {
                                    $var20 = $var22.$key;
                                    if ($rt_s(918) !== $var20 && !jl_String_equals($rt_s(918), $var20) ? 0 : 1)
                                        break;
                                }
                                $var22 = $var22.$next3;
                            }
                            if ($var22 === null ? 0 : 1) {
                                $var17 = $var1.$stackTagCompound;
                                $var22 = $var17.$tagMap;
                                $var9 = jl_String_hashCode($rt_s(918));
                                var$11 = $var22.$elementData.data;
                                $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                                while ($var22 !== null) {
                                    if ($var22.$origKeyHash == $var9) {
                                        $var20 = $var22.$key;
                                        if ($rt_s(918) !== $var20 && !jl_String_equals($rt_s(918), $var20) ? 0 : 1)
                                            break;
                                    }
                                    $var22 = $var22.$next3;
                                }
                                if ($var22 === null ? 0 : 1) {
                                    $var22 = $var17.$tagMap;
                                    if ($rt_s(918) !== null) {
                                        $var9 = jl_String_hashCode($rt_s(918));
                                        var$11 = $var22.$elementData.data;
                                        $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                                        while ($var22 !== null) {
                                            if ($var22.$origKeyHash == $var9) {
                                                $var20 = $var22.$key;
                                                if ($rt_s(918) !== $var20 && !jl_String_equals($rt_s(918), $var20) ? 0 : 1)
                                                    break;
                                            }
                                            $var22 = $var22.$next3;
                                        }
                                    } else {
                                        $var22 = $var22.$elementData.data[0];
                                        while ($var22 !== null && $var22.$key !== null) {
                                            $var22 = $var22.$next3;
                                        }
                                    }
                                    $var17 = $var22 === null ? null : $var22.$value0;
                                } else {
                                    $var17 = new nms_NBTTagCompound;
                                    if ($rt_s(918) !== null)
                                        $var17.$name = $rt_s(918);
                                    else
                                        $var17.$name = $rt_s(3);
                                    $var22 = new ju_HashMap;
                                    $var3 = ju_HashMap_calculateCapacity(16);
                                    $var22.$elementCount = 0;
                                    var$12 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                                    var$11 = var$12.data;
                                    $var22.$elementData = var$12;
                                    $var22.$loadFactor = 0.75;
                                    $var22.$threshold = var$11.length * 0.75 | 0;
                                    $var17.$tagMap = $var22;
                                }
                                $var22 = $var17.$tagMap;
                                $var9 = jl_String_hashCode($rt_s(919));
                                var$11 = $var22.$elementData.data;
                                $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                                while ($var22 !== null) {
                                    if ($var22.$origKeyHash == $var9) {
                                        $var20 = $var22.$key;
                                        if ($rt_s(919) !== $var20 && !jl_String_equals($rt_s(919), $var20) ? 0 : 1)
                                            break;
                                    }
                                    $var22 = $var22.$next3;
                                }
                                if ($var22 === null ? 0 : 1) {
                                    $var20 = $var17.$tagMap;
                                    $var9 = jl_String_hashCode($rt_s(919));
                                    var$11 = $var20.$elementData.data;
                                    $var20 = var$11[$var9 & (var$11.length - 1 | 0)];
                                    while ($var20 !== null) {
                                        if ($var20.$origKeyHash == $var9) {
                                            $var21_0 = $var20.$key;
                                            if ($rt_s(919) !== $var21_0 && !jl_String_equals($rt_s(919), $var21_0) ? 0 : 1)
                                                break;
                                        }
                                        $var20 = $var20.$next3;
                                    }
                                    if (!($var20 === null ? 0 : 1))
                                        $var21_0 = $rt_s(3);
                                    else {
                                        $var20 = $var17.$tagMap;
                                        if ($rt_s(919) === null) {
                                            $var20 = $var20.$elementData.data[0];
                                            while ($var20 !== null && $var20.$key !== null) {
                                                $var20 = $var20.$next3;
                                            }
                                        } else {
                                            $var9 = jl_String_hashCode($rt_s(919));
                                            var$11 = $var20.$elementData.data;
                                            $var20 = var$11[$var9 & (var$11.length - 1 | 0)];
                                            while ($var20 !== null) {
                                                if ($var20.$origKeyHash == $var9) {
                                                    $var17 = $var20.$key;
                                                    if ($rt_s(919) !== $var17 && !jl_String_equals($rt_s(919), $var17) ? 0 : 1)
                                                        break;
                                                }
                                                $var20 = $var20.$next3;
                                            }
                                        }
                                        $var21_0 = ($var20 === null ? null : $var20.$value0).$data1;
                                    }
                                }
                            }
                        }
                        if ($var21 === $var21_0)
                            $var3 = 1;
                        else if ($var21_0 instanceof jl_String) {
                            $var22 = $var21_0;
                            $var3 = $var21.$nativeString !== $var22.$nativeString ? 0 : 1;
                        } else
                            $var3 = 0;
                        if (!$var3) {
                            $var4 = (nms_Item_itemsList.data[$var1.$itemID].$maxDamage <= 0 ? 0 : 1) ? 7 : $var1.$stackSize * 5 | 0;
                            $var2 = $var2 + $var4 | 0;
                            $var20 = $var1.$stackTagCompound;
                            if ($var20 === null)
                                $var3 = 0;
                            else {
                                j: {
                                    $var20 = $var20.$tagMap;
                                    if (!$rt_s(918).$hashCode1) {
                                        $var3 = 0;
                                        while (true) {
                                            if ($var3 >= $rt_s(918).$nativeString.length)
                                                break j;
                                            $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var3) | 0;
                                            $var3 = $var3 + 1 | 0;
                                        }
                                    }
                                }
                                $var14 = $rt_s(918).$hashCode1;
                                var$11 = $var20.$elementData.data;
                                $var20 = var$11[$var14 & (var$11.length - 1 | 0)];
                                while ($var20 !== null) {
                                    if ($var20.$origKeyHash == $var14) {
                                        k: {
                                            $var17 = $var20.$key;
                                            if ($rt_s(918) !== $var17) {
                                                if ($rt_s(918) !== $var17) {
                                                    if (!($var17 instanceof jl_String))
                                                        $var3 = 0;
                                                    else {
                                                        $var17 = $var17;
                                                        $var3 = $rt_s(918).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                    }
                                                } else
                                                    $var3 = 1;
                                                if (!$var3) {
                                                    $var3 = 0;
                                                    break k;
                                                }
                                            }
                                            $var3 = 1;
                                        }
                                        if ($var3)
                                            break;
                                    }
                                    $var20 = $var20.$next3;
                                }
                                if (!($var20 === null ? 0 : 1))
                                    $var3 = 0;
                                else {
                                    l: {
                                        $var22 = $var1.$stackTagCompound;
                                        $var20 = $var22.$tagMap;
                                        if (!$rt_s(918).$hashCode1) {
                                            $var9 = 0;
                                            while (true) {
                                                if ($var9 >= $rt_s(918).$nativeString.length)
                                                    break l;
                                                $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var9) | 0;
                                                $var9 = $var9 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var14 = $rt_s(918).$hashCode1;
                                    var$11 = $var20.$elementData.data;
                                    $var20 = var$11[$var14 & (var$11.length - 1 | 0)];
                                    while ($var20 !== null) {
                                        if ($var20.$origKeyHash == $var14) {
                                            m: {
                                                $var21 = $var20.$key;
                                                if ($rt_s(918) !== $var21) {
                                                    if ($rt_s(918) !== $var21) {
                                                        if ($var21 instanceof jl_String) {
                                                            $var21 = $var21;
                                                            $var3 = $rt_s(918).$nativeString !== $var21.$nativeString ? 0 : 1;
                                                        } else
                                                            $var3 = 0;
                                                    } else
                                                        $var3 = 1;
                                                    if (!$var3) {
                                                        $var3 = 0;
                                                        break m;
                                                    }
                                                }
                                                $var3 = 1;
                                            }
                                            if ($var3)
                                                break;
                                        }
                                        $var20 = $var20.$next3;
                                    }
                                    if (!($var20 === null ? 0 : 1)) {
                                        $var22 = new nms_NBTTagCompound;
                                        if ($rt_s(918) !== null)
                                            $var22.$name = $rt_s(918);
                                        else
                                            $var22.$name = $rt_s(3);
                                        $var20 = new ju_HashMap;
                                        $var3 = ju_HashMap_calculateCapacity(16);
                                        $var20.$elementCount = 0;
                                        var$11 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                                        var$12 = var$11.data;
                                        $var20.$elementData = var$11;
                                        $var20.$loadFactor = 0.75;
                                        $var20.$threshold = var$12.length * 0.75 | 0;
                                        $var22.$tagMap = $var20;
                                    } else {
                                        $var22 = $var22.$tagMap;
                                        if ($rt_s(918) !== null) {
                                            n: {
                                                if (!$rt_s(918).$hashCode1) {
                                                    $var3 = 0;
                                                    while (true) {
                                                        if ($var3 >= $rt_s(918).$nativeString.length)
                                                            break n;
                                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var3) | 0;
                                                        $var3 = $var3 + 1 | 0;
                                                    }
                                                }
                                            }
                                            $var9 = $rt_s(918).$hashCode1;
                                            var$11 = $var22.$elementData.data;
                                            $var21 = var$11[$var9 & (var$11.length - 1 | 0)];
                                            while ($var21 !== null) {
                                                if ($var21.$origKeyHash == $var9) {
                                                    o: {
                                                        $var22 = $var21.$key;
                                                        if ($rt_s(918) !== $var22) {
                                                            if ($rt_s(918) !== $var22) {
                                                                if (!($var22 instanceof jl_String))
                                                                    $var3 = 0;
                                                                else {
                                                                    $var22 = $var22;
                                                                    $var3 = $rt_s(918).$nativeString !== $var22.$nativeString ? 0 : 1;
                                                                }
                                                            } else
                                                                $var3 = 1;
                                                            if (!$var3) {
                                                                $var3 = 0;
                                                                break o;
                                                            }
                                                        }
                                                        $var3 = 1;
                                                    }
                                                    if ($var3)
                                                        break;
                                                }
                                                $var21 = $var21.$next3;
                                            }
                                        } else {
                                            $var21 = $var22.$elementData.data[0];
                                            while ($var21 !== null && $var21.$key !== null) {
                                                $var21 = $var21.$next3;
                                            }
                                        }
                                        $var22 = $var21 === null ? null : $var21.$value0;
                                    }
                                    p: {
                                        $var22 = $var22.$tagMap;
                                        if (!$rt_s(919).$hashCode1) {
                                            $var3 = 0;
                                            while (true) {
                                                if ($var3 >= $rt_s(919).$nativeString.length)
                                                    break p;
                                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var3) | 0;
                                                $var3 = $var3 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var9 = $rt_s(919).$hashCode1;
                                    var$11 = $var22.$elementData.data;
                                    $var21 = var$11[$var9 & (var$11.length - 1 | 0)];
                                    while ($var21 !== null) {
                                        if ($var21.$origKeyHash == $var9) {
                                            q: {
                                                $var22 = $var21.$key;
                                                if ($rt_s(919) !== $var22) {
                                                    if ($rt_s(919) !== $var22) {
                                                        if ($var22 instanceof jl_String) {
                                                            $var22 = $var22;
                                                            $var3 = $rt_s(919).$nativeString !== $var22.$nativeString ? 0 : 1;
                                                        } else
                                                            $var3 = 0;
                                                    } else
                                                        $var3 = 1;
                                                    if (!$var3) {
                                                        $var3 = 0;
                                                        break q;
                                                    }
                                                }
                                                $var3 = 1;
                                            }
                                            if ($var3)
                                                break;
                                        }
                                        $var21 = $var21.$next3;
                                    }
                                    $var3 = $var21 === null ? 0 : 1;
                                }
                            }
                            if ($var3)
                                $var19 = $var19 + ($var4 / 2 | 0) | 0;
                            nms_ItemStack_setItemName($var5, $this.$repairedItemName);
                            break i;
                        }
                        break i;
                    }
                }
            }
            $var20 = $var1.$stackTagCompound;
            if ($var20 === null)
                $var3 = 0;
            else {
                $var20 = $var20.$tagMap;
                $var9 = jl_String_hashCode($rt_s(918));
                var$11 = $var20.$elementData.data;
                $var20 = var$11[$var9 & (var$11.length - 1 | 0)];
                while ($var20 !== null) {
                    if ($var20.$origKeyHash == $var9) {
                        $var17 = $var20.$key;
                        if ($rt_s(918) !== $var17 && !jl_String_equals($rt_s(918), $var17) ? 0 : 1)
                            break;
                    }
                    $var20 = $var20.$next3;
                }
                if (!($var20 === null ? 0 : 1))
                    $var3 = 0;
                else {
                    $var22 = $var1.$stackTagCompound;
                    $var17 = $var22.$tagMap;
                    $var9 = jl_String_hashCode($rt_s(918));
                    var$11 = $var17.$elementData.data;
                    $var17 = var$11[$var9 & (var$11.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $var9) {
                            $var21 = $var17.$key;
                            if ($rt_s(918) !== $var21 && !jl_String_equals($rt_s(918), $var21) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                    if ($var17 === null ? 0 : 1) {
                        $var22 = $var22.$tagMap;
                        if ($rt_s(918) === null) {
                            $var22 = $var22.$elementData.data[0];
                            while ($var22 !== null && $var22.$key !== null) {
                                $var22 = $var22.$next3;
                            }
                        } else {
                            $var9 = jl_String_hashCode($rt_s(918));
                            var$11 = $var22.$elementData.data;
                            $var22 = var$11[$var9 & (var$11.length - 1 | 0)];
                            while ($var22 !== null) {
                                if ($var22.$origKeyHash == $var9) {
                                    $var17 = $var22.$key;
                                    if ($rt_s(918) !== $var17 && !jl_String_equals($rt_s(918), $var17) ? 0 : 1)
                                        break;
                                }
                                $var22 = $var22.$next3;
                            }
                        }
                        $var17 = $var22 === null ? null : $var22.$value0;
                    } else {
                        $var17 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            $var17.$name = $rt_s(918);
                        else
                            $var17.$name = $rt_s(3);
                        $var22 = new ju_HashMap;
                        $var3 = ju_HashMap_calculateCapacity(16);
                        $var22.$elementCount = 0;
                        var$12 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                        var$11 = var$12.data;
                        $var22.$elementData = var$12;
                        $var22.$loadFactor = 0.75;
                        $var22.$threshold = var$11.length * 0.75 | 0;
                        $var17.$tagMap = $var22;
                    }
                    $var20 = $var17.$tagMap;
                    $var9 = jl_String_hashCode($rt_s(919));
                    var$11 = $var20.$elementData.data;
                    $var20 = var$11[$var9 & (var$11.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == $var9) {
                            $var17 = $var20.$key;
                            if ($rt_s(919) !== $var17 && !jl_String_equals($rt_s(919), $var17) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                    $var3 = $var20 === null ? 0 : 1;
                }
            }
            if ($var3) {
                nms_Item_$callClinit();
                $var4 = (nms_Item_itemsList.data[$var1.$itemID].$maxDamage <= 0 ? 0 : 1) ? 7 : $var1.$stackSize * 5 | 0;
                $var2 = $var2 + $var4 | 0;
                nms_ItemStack_func_135074_t($var5);
            }
        }
        $var9 = 0;
        if ($var7.$cachedKeySet === null) {
            $var22 = new ju_LinkedHashMapKeySet;
            $var22.$base1 = $var7;
            $var22.$reversed1 = 0;
            $var7.$cachedKeySet = $var22;
        }
        $var20 = $var7.$cachedKeySet;
        $var21 = new ju_LinkedHashMapIterator$KeyIterator;
        $var22 = $var20.$base1;
        $var3 = $var20.$reversed1;
        $var21.$base0 = $var22;
        $var21.$reversed0 = $var3;
        $var21.$expectedModCount0 = $var22.$modCount1;
        $var21.$futureEntry = !$var3 ? $var22.$head : $var22.$tail;
        while ($var21.$futureEntry === null ? 0 : 1) {
            $var11 = (ju_LinkedHashMapIterator$KeyIterator_next($var21)).$value;
            nms_Enchantment_$callClinit();
            $var22 = nms_Enchantment_enchantmentsList.data[$var11];
            if ($var11 >= (-128) && $var11 <= 127) {
                jl_Integer_ensureIntegerCache();
                $var20 = jl_Integer_integerCache.data[$var11 + 128 | 0];
            } else {
                $var20 = new jl_Integer;
                $var20.$value = $var11;
            }
            r: {
                s: {
                    t: {
                        $var13_0 = (ju_LinkedHashMap_getOrDefault($var7, $var20, null)).$value;
                        $var14 = 0;
                        $var9 = $var9 + 1 | 0;
                        switch ($var22.$weight) {
                            case 1:
                                break;
                            case 2:
                                $var14 = 4;
                                break s;
                            case 5:
                                $var14 = 2;
                                break r;
                            case 10:
                                $var14 = 1;
                                break r;
                            case 3:
                            case 4:
                            case 6:
                            case 7:
                            case 8:
                            case 9:
                                break t;
                            default:
                                break t;
                        }
                        $var14 = 8;
                        break r;
                    }
                }
            }
            if ($var8) {
                $var14 = $var14 / 2 | 0;
                if (1 > $var14)
                    $var14 = 1;
            }
            $var19 = $var19 + ($var9 + $rt_imul($var13_0, $var14) | 0) | 0;
        }
        if ($var8) {
            $var19 = $var19 / 2 | 0;
            if (1 > $var19)
                $var19 = 1;
        }
        $var3 = $var19 + $var2 | 0;
        $this.$maximumCost = $var3;
        if ($var2 <= 0)
            $var5 = null;
        if ($var4 == $var2 && $var4 > 0 && $var3 >= 40)
            $this.$maximumCost = 39;
        if ($this.$maximumCost >= 40 && !$this.$thePlayer3.$capabilities.$isCreativeMode)
            $var5 = null;
        if ($var5 !== null) {
            $var20 = $var5.$stackTagCompound;
            $var3 = $var20 === null ? 0 : 1;
            u: {
                if ($var3) {
                    $var20 = $var20.$tagMap;
                    $var2 = jl_String_hashCode($rt_s(2721));
                    var$11 = $var20.$elementData.data;
                    $var20 = var$11[$var2 & (var$11.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == $var2) {
                            $var17 = $var20.$key;
                            if ($rt_s(2721) !== $var17 && !jl_String_equals($rt_s(2721), $var17) ? 0 : 1)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                    if ($var20 === null ? 0 : 1) {
                        $var22 = $var5.$stackTagCompound;
                        $var20 = $var22.$tagMap;
                        $var2 = jl_String_hashCode($rt_s(2721));
                        var$11 = $var20.$elementData.data;
                        $var20 = var$11[$var2 & (var$11.length - 1 | 0)];
                        while ($var20 !== null) {
                            if ($var20.$origKeyHash == $var2) {
                                $var17 = $var20.$key;
                                if ($rt_s(2721) !== $var17 && !jl_String_equals($rt_s(2721), $var17) ? 0 : 1)
                                    break;
                            }
                            $var20 = $var20.$next3;
                        }
                        if ($var20 === null ? 0 : 1) {
                            $var22 = $var22.$tagMap;
                            if ($rt_s(2721) === null) {
                                $var22 = $var22.$elementData.data[0];
                                while ($var22 !== null && $var22.$key !== null) {
                                    $var22 = $var22.$next3;
                                }
                            } else {
                                $var2 = jl_String_hashCode($rt_s(2721));
                                var$11 = $var22.$elementData.data;
                                $var22 = var$11[$var2 & (var$11.length - 1 | 0)];
                                while ($var22 !== null) {
                                    if ($var22.$origKeyHash == $var2) {
                                        $var20 = $var22.$key;
                                        if ($rt_s(2721) !== $var20 && !jl_String_equals($rt_s(2721), $var20) ? 0 : 1)
                                            break;
                                    }
                                    $var22 = $var22.$next3;
                                }
                            }
                            $var10 = ($var22 === null ? null : $var22.$value0).$data;
                        } else
                            $var10 = 0;
                        break u;
                    }
                }
                $var10 = 0;
            }
            if ($var6 !== null) {
                $var20 = $var6.$stackTagCompound;
                $var3 = $var20 === null ? 0 : 1;
                v: {
                    if ($var3) {
                        w: {
                            $var20 = $var20.$tagMap;
                            if (!$rt_s(2721).$hashCode1) {
                                $var3 = 0;
                                while (true) {
                                    if ($var3 >= $rt_s(2721).$nativeString.length)
                                        break w;
                                    $rt_s(2721).$hashCode1 = (31 * $rt_s(2721).$hashCode1 | 0) + $rt_s(2721).$nativeString.charCodeAt($var3) | 0;
                                    $var3 = $var3 + 1 | 0;
                                }
                            }
                        }
                        $var4 = $rt_s(2721).$hashCode1;
                        var$11 = $var20.$elementData.data;
                        $var20 = var$11[$var4 & (var$11.length - 1 | 0)];
                        while ($var20 !== null) {
                            if ($var20.$origKeyHash == $var4) {
                                x: {
                                    $var17 = $var20.$key;
                                    if ($rt_s(2721) !== $var17) {
                                        if ($rt_s(2721) !== $var17) {
                                            if ($var17 instanceof jl_String) {
                                                $var17 = $var17;
                                                $var3 = $rt_s(2721).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            } else
                                                $var3 = 0;
                                        } else
                                            $var3 = 1;
                                        if (!$var3) {
                                            $var3 = 0;
                                            break x;
                                        }
                                    }
                                    $var3 = 1;
                                }
                                if ($var3)
                                    break;
                            }
                            $var20 = $var20.$next3;
                        }
                        if ($var20 === null ? 0 : 1) {
                            y: {
                                $var22 = $var6.$stackTagCompound;
                                $var17 = $var22.$tagMap;
                                if (!$rt_s(2721).$hashCode1) {
                                    $var3 = 0;
                                    while (true) {
                                        if ($var3 >= $rt_s(2721).$nativeString.length)
                                            break y;
                                        $rt_s(2721).$hashCode1 = (31 * $rt_s(2721).$hashCode1 | 0) + $rt_s(2721).$nativeString.charCodeAt($var3) | 0;
                                        $var3 = $var3 + 1 | 0;
                                    }
                                }
                            }
                            $var4 = $rt_s(2721).$hashCode1;
                            var$11 = $var17.$elementData.data;
                            $var17 = var$11[$var4 & (var$11.length - 1 | 0)];
                            while ($var17 !== null) {
                                if ($var17.$origKeyHash == $var4) {
                                    z: {
                                        $var21 = $var17.$key;
                                        if ($rt_s(2721) !== $var21) {
                                            if ($rt_s(2721) === $var21)
                                                $var3 = 1;
                                            else if (!($var21 instanceof jl_String))
                                                $var3 = 0;
                                            else {
                                                $var21 = $var21;
                                                $var3 = $rt_s(2721).$nativeString !== $var21.$nativeString ? 0 : 1;
                                            }
                                            if (!$var3) {
                                                $var3 = 0;
                                                break z;
                                            }
                                        }
                                        $var3 = 1;
                                    }
                                    if ($var3)
                                        break;
                                }
                                $var17 = $var17.$next3;
                            }
                            if (!($var17 === null ? 0 : 1))
                                $var3 = 0;
                            else {
                                $var22 = $var22.$tagMap;
                                if ($rt_s(2721) !== null) {
                                    ba: {
                                        if (!$rt_s(2721).$hashCode1) {
                                            $var3 = 0;
                                            while (true) {
                                                if ($var3 >= $rt_s(2721).$nativeString.length)
                                                    break ba;
                                                $rt_s(2721).$hashCode1 = (31 * $rt_s(2721).$hashCode1 | 0) + $rt_s(2721).$nativeString.charCodeAt($var3) | 0;
                                                $var3 = $var3 + 1 | 0;
                                            }
                                        }
                                    }
                                    $var4 = $rt_s(2721).$hashCode1;
                                    var$11 = $var22.$elementData.data;
                                    $var22 = var$11[$var4 & (var$11.length - 1 | 0)];
                                    while ($var22 !== null) {
                                        if ($var22.$origKeyHash == $var4) {
                                            bb: {
                                                $var17 = $var22.$key;
                                                if ($rt_s(2721) !== $var17) {
                                                    if ($rt_s(2721) !== $var17) {
                                                        if (!($var17 instanceof jl_String))
                                                            $var3 = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $var3 = $rt_s(2721).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                    } else
                                                        $var3 = 1;
                                                    if (!$var3) {
                                                        $var3 = 0;
                                                        break bb;
                                                    }
                                                }
                                                $var3 = 1;
                                            }
                                            if ($var3)
                                                break;
                                        }
                                        $var22 = $var22.$next3;
                                    }
                                } else {
                                    $var22 = $var22.$elementData.data[0];
                                    while ($var22 !== null && $var22.$key !== null) {
                                        $var22 = $var22.$next3;
                                    }
                                }
                                $var3 = ($var22 === null ? null : $var22.$value0).$data;
                            }
                            break v;
                        }
                    }
                    $var3 = 0;
                }
                if ($var10 < $var3) {
                    $var20 = $var6.$stackTagCompound;
                    $var3 = $var20 === null ? 0 : 1;
                    bc: {
                        if ($var3) {
                            bd: {
                                $var20 = $var20.$tagMap;
                                if (!$rt_s(2721).$hashCode1) {
                                    $var3 = 0;
                                    while (true) {
                                        if ($var3 >= $rt_s(2721).$nativeString.length)
                                            break bd;
                                        $rt_s(2721).$hashCode1 = (31 * $rt_s(2721).$hashCode1 | 0) + $rt_s(2721).$nativeString.charCodeAt($var3) | 0;
                                        $var3 = $var3 + 1 | 0;
                                    }
                                }
                            }
                            $var4 = $rt_s(2721).$hashCode1;
                            var$11 = $var20.$elementData.data;
                            $var20 = var$11[$var4 & (var$11.length - 1 | 0)];
                            while ($var20 !== null) {
                                if ($var20.$origKeyHash == $var4) {
                                    be: {
                                        $var17 = $var20.$key;
                                        if ($rt_s(2721) !== $var17) {
                                            if ($rt_s(2721) !== $var17) {
                                                if (!($var17 instanceof jl_String))
                                                    $var3 = 0;
                                                else {
                                                    $var17 = $var17;
                                                    $var3 = $rt_s(2721).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                }
                                            } else
                                                $var3 = 1;
                                            if (!$var3) {
                                                $var3 = 0;
                                                break be;
                                            }
                                        }
                                        $var3 = 1;
                                    }
                                    if ($var3)
                                        break;
                                }
                                $var20 = $var20.$next3;
                            }
                            if ($var20 === null ? 0 : 1) {
                                bf: {
                                    $var22 = $var6.$stackTagCompound;
                                    $var17 = $var22.$tagMap;
                                    if (!$rt_s(2721).$hashCode1) {
                                        $var3 = 0;
                                        while (true) {
                                            if ($var3 >= $rt_s(2721).$nativeString.length)
                                                break bf;
                                            $rt_s(2721).$hashCode1 = (31 * $rt_s(2721).$hashCode1 | 0) + $rt_s(2721).$nativeString.charCodeAt($var3) | 0;
                                            $var3 = $var3 + 1 | 0;
                                        }
                                    }
                                }
                                $var4 = $rt_s(2721).$hashCode1;
                                var$11 = $var17.$elementData.data;
                                $var17 = var$11[$var4 & (var$11.length - 1 | 0)];
                                while ($var17 !== null) {
                                    if ($var17.$origKeyHash == $var4) {
                                        bg: {
                                            $var21 = $var17.$key;
                                            if ($rt_s(2721) !== $var21) {
                                                if ($rt_s(2721) === $var21)
                                                    $var3 = 1;
                                                else if (!($var21 instanceof jl_String))
                                                    $var3 = 0;
                                                else {
                                                    $var21 = $var21;
                                                    $var3 = $rt_s(2721).$nativeString !== $var21.$nativeString ? 0 : 1;
                                                }
                                                if (!$var3) {
                                                    $var3 = 0;
                                                    break bg;
                                                }
                                            }
                                            $var3 = 1;
                                        }
                                        if ($var3)
                                            break;
                                    }
                                    $var17 = $var17.$next3;
                                }
                                if ($var17 === null ? 0 : 1) {
                                    $var22 = $var22.$tagMap;
                                    if ($rt_s(2721) !== null) {
                                        bh: {
                                            if (!$rt_s(2721).$hashCode1) {
                                                $var3 = 0;
                                                while (true) {
                                                    if ($var3 >= $rt_s(2721).$nativeString.length)
                                                        break bh;
                                                    $rt_s(2721).$hashCode1 = (31 * $rt_s(2721).$hashCode1 | 0) + $rt_s(2721).$nativeString.charCodeAt($var3) | 0;
                                                    $var3 = $var3 + 1 | 0;
                                                }
                                            }
                                        }
                                        $var4 = $rt_s(2721).$hashCode1;
                                        var$11 = $var22.$elementData.data;
                                        $var22 = var$11[$var4 & (var$11.length - 1 | 0)];
                                        while ($var22 !== null) {
                                            if ($var22.$origKeyHash == $var4) {
                                                bi: {
                                                    $var17 = $var22.$key;
                                                    if ($rt_s(2721) !== $var17) {
                                                        if ($rt_s(2721) === $var17)
                                                            $var3 = 1;
                                                        else if (!($var17 instanceof jl_String))
                                                            $var3 = 0;
                                                        else {
                                                            $var17 = $var17;
                                                            $var3 = $rt_s(2721).$nativeString !== $var17.$nativeString ? 0 : 1;
                                                        }
                                                        if (!$var3) {
                                                            $var3 = 0;
                                                            break bi;
                                                        }
                                                    }
                                                    $var3 = 1;
                                                }
                                                if ($var3)
                                                    break;
                                            }
                                            $var22 = $var22.$next3;
                                        }
                                    } else {
                                        $var22 = $var22.$elementData.data[0];
                                        while ($var22 !== null && $var22.$key !== null) {
                                            $var22 = $var22.$next3;
                                        }
                                    }
                                    $var10 = ($var22 === null ? null : $var22.$value0).$data;
                                } else
                                    $var10 = 0;
                                break bc;
                            }
                        }
                        $var10 = 0;
                    }
                }
            }
            $var20 = $var5.$stackTagCompound;
            if ($var20 === null)
                $var3 = 0;
            else {
                $var20 = $var20.$tagMap;
                $var2 = jl_String_hashCode($rt_s(918));
                var$11 = $var20.$elementData.data;
                $var20 = var$11[$var2 & (var$11.length - 1 | 0)];
                while ($var20 !== null) {
                    if ($var20.$origKeyHash == $var2) {
                        $var17 = $var20.$key;
                        if ($rt_s(918) !== $var17 && !jl_String_equals($rt_s(918), $var17) ? 0 : 1)
                            break;
                    }
                    $var20 = $var20.$next3;
                }
                if (!($var20 === null ? 0 : 1))
                    $var3 = 0;
                else {
                    $var22 = $var5.$stackTagCompound;
                    $var17 = $var22.$tagMap;
                    $var2 = jl_String_hashCode($rt_s(918));
                    var$11 = $var17.$elementData.data;
                    $var17 = var$11[$var2 & (var$11.length - 1 | 0)];
                    while ($var17 !== null) {
                        if ($var17.$origKeyHash == $var2) {
                            $var21 = $var17.$key;
                            if ($rt_s(918) !== $var21 && !jl_String_equals($rt_s(918), $var21) ? 0 : 1)
                                break;
                        }
                        $var17 = $var17.$next3;
                    }
                    if (!($var17 === null ? 0 : 1)) {
                        $var17 = new nms_NBTTagCompound;
                        if ($rt_s(918) !== null)
                            $var17.$name = $rt_s(918);
                        else
                            $var17.$name = $rt_s(3);
                        $var22 = new ju_HashMap;
                        $var3 = ju_HashMap_calculateCapacity(16);
                        $var22.$elementCount = 0;
                        var$12 = $rt_createArray(ju_HashMap$HashEntry, $var3);
                        var$11 = var$12.data;
                        $var22.$elementData = var$12;
                        $var22.$loadFactor = 0.75;
                        $var22.$threshold = var$11.length * 0.75 | 0;
                        $var17.$tagMap = $var22;
                    } else {
                        $var22 = $var22.$tagMap;
                        if ($rt_s(918) === null) {
                            $var22 = $var22.$elementData.data[0];
                            while ($var22 !== null && $var22.$key !== null) {
                                $var22 = $var22.$next3;
                            }
                        } else {
                            bj: {
                                if (!$rt_s(918).$hashCode1) {
                                    $var3 = 0;
                                    while (true) {
                                        if ($var3 >= $rt_s(918).$nativeString.length)
                                            break bj;
                                        $rt_s(918).$hashCode1 = (31 * $rt_s(918).$hashCode1 | 0) + $rt_s(918).$nativeString.charCodeAt($var3) | 0;
                                        $var3 = $var3 + 1 | 0;
                                    }
                                }
                            }
                            $var4 = $rt_s(918).$hashCode1;
                            var$11 = $var22.$elementData.data;
                            $var22 = var$11[$var4 & (var$11.length - 1 | 0)];
                            while ($var22 !== null) {
                                if ($var22.$origKeyHash == $var4) {
                                    bk: {
                                        $var17 = $var22.$key;
                                        if ($rt_s(918) !== $var17) {
                                            if ($rt_s(918) === $var17)
                                                $var3 = 1;
                                            else if (!($var17 instanceof jl_String))
                                                $var3 = 0;
                                            else {
                                                $var17 = $var17;
                                                $var3 = $rt_s(918).$nativeString !== $var17.$nativeString ? 0 : 1;
                                            }
                                            if (!$var3) {
                                                $var3 = 0;
                                                break bk;
                                            }
                                        }
                                        $var3 = 1;
                                    }
                                    if ($var3)
                                        break;
                                }
                                $var22 = $var22.$next3;
                            }
                        }
                        $var17 = $var22 === null ? null : $var22.$value0;
                    }
                    bl: {
                        $var20 = $var17.$tagMap;
                        if (!$rt_s(919).$hashCode1) {
                            $var3 = 0;
                            while (true) {
                                if ($var3 >= $rt_s(919).$nativeString.length)
                                    break bl;
                                $rt_s(919).$hashCode1 = (31 * $rt_s(919).$hashCode1 | 0) + $rt_s(919).$nativeString.charCodeAt($var3) | 0;
                                $var3 = $var3 + 1 | 0;
                            }
                        }
                    }
                    $var4 = $rt_s(919).$hashCode1;
                    var$11 = $var20.$elementData.data;
                    $var20 = var$11[$var4 & (var$11.length - 1 | 0)];
                    while ($var20 !== null) {
                        if ($var20.$origKeyHash == $var4) {
                            bm: {
                                $var17 = $var20.$key;
                                if ($rt_s(919) !== $var17) {
                                    if ($rt_s(919) === $var17)
                                        $var3 = 1;
                                    else if (!($var17 instanceof jl_String))
                                        $var3 = 0;
                                    else {
                                        $var17 = $var17;
                                        $var3 = $rt_s(919).$nativeString !== $var17.$nativeString ? 0 : 1;
                                    }
                                    if (!$var3) {
                                        $var3 = 0;
                                        break bm;
                                    }
                                }
                                $var3 = 1;
                            }
                            if ($var3)
                                break;
                        }
                        $var20 = $var20.$next3;
                    }
                    $var3 = $var20 === null ? 0 : 1;
                }
            }
            if ($var3)
                $var10 = $var10 + (-9) | 0;
            if ($var10 < 0)
                $var10 = 0;
            $var3 = $var10 + 2 | 0;
            if (!($var5.$stackTagCompound === null ? 0 : 1)) {
                $var20 = new nms_NBTTagCompound;
                $var20.$name = $rt_s(917);
                $var22 = new ju_HashMap;
                $var2 = ju_HashMap_calculateCapacity(16);
                $var22.$elementCount = 0;
                var$12 = $rt_createArray(ju_HashMap$HashEntry, $var2);
                var$11 = var$12.data;
                $var22.$elementData = var$12;
                $var22.$loadFactor = 0.75;
                $var22.$threshold = var$11.length * 0.75 | 0;
                $var20.$tagMap = $var22;
                $var5.$stackTagCompound = $var20;
            }
            $var17 = $var5.$stackTagCompound.$tagMap;
            $var20 = new nms_NBTTagInt;
            $var20.$name = $rt_s(2721);
            $var20.$data = $var3;
            ju_HashMap_putImpl($var17, $rt_s(2721), $var20);
            nms_EnchantmentHelper_setEnchantments($var7, $var5);
        }
        $this.$outputSlot.$stackResult.data[0] = $var5;
        $ptr = 1;
    case 1:
        nms_Container_detectAndSendChanges($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $var1, $var2, $var4, $var22, $var5, $var9, $var14, $var8, $var20, $var17, var$11, var$12, $var21, $var6, $var7, $var3, $var19, $var9_0, $var10, $var11, $var13, $var12, $var21_0, $var10000, $var15, $var16, $var18, $var23, $var13_0, $ptr);
},
nms_ContainerRepair_addCraftingToCrafters = ($this, $par1ICrafting) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1ICrafting = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$crafters;
        var$3 = 0;
        var$4 = var$2.$modCount;
        var$5 = var$2.$size();
        a: {
            while (true) {
                if (!(var$3 >= var$5 ? 0 : 1)) {
                    var$3 = 0;
                    break a;
                }
                if (var$4 < var$2.$modCount)
                    break;
                var$6 = var$3 + 1 | 0;
                var$7 = var$2.$get(var$3);
                if (var$7 === $par1ICrafting ? 1 : var$7 !== null ? var$7.$equals($par1ICrafting) : $par1ICrafting !== null ? 0 : 1) {
                    var$3 = 1;
                    break a;
                }
                var$3 = var$6;
            }
            $par1ICrafting = new ju_ConcurrentModificationException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par1ICrafting);
            $rt_throw($par1ICrafting);
        }
        if (var$3) {
            $par1ICrafting = new jl_IllegalArgumentException;
            $par1ICrafting.$suppressionEnabled = 1;
            $par1ICrafting.$writableStackTrace = 1;
            $par1ICrafting.$message = $rt_s(2628);
            $rt_throw($par1ICrafting);
        }
        var$2 = $this.$crafters;
        ju_ArrayList_ensureCapacity(var$2, var$2.$size0 + 1 | 0);
        var$8 = var$2.$array.data;
        var$6 = var$2.$size0;
        var$2.$size0 = var$6 + 1 | 0;
        var$8[var$6] = $par1ICrafting;
        var$2.$modCount = var$2.$modCount + 1 | 0;
        var$9 = new ju_ArrayList;
        var$9.$array = $rt_createArray(jl_Object, 10);
        var$3 = 0;
        while (true) {
            var$2 = $this.$inventorySlots;
            var$6 = $rt_compare(var$3, var$2.$size0);
            if (var$6 >= 0) {
                b: {
                    var$7 = $par1ICrafting.$playerNetServerHandler;
                    var$2 = nms_Packet104WindowItems__init_($this.$windowId, var$9);
                    if (var$2 instanceof nms_Packet3Chat) {
                        var$9 = var$2;
                        var$3 = var$7.$playerEntity.$chatVisibility;
                        if (var$3 == 2)
                            break b;
                        if (var$3 == 1 && !var$9.$isServer)
                            break b;
                    }
                    try {
                        var$7 = var$7.$netManager;
                        $ptr = 1;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
                var$2 = $par1ICrafting.$playerNetServerHandler;
                var$7 = new nms_Packet103SetSlot;
                var$9 = $par1ICrafting.$inventory0.$itemStack;
                nms_Packet_$callClinit();
                nles_SysUtil_$callClinit();
                var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
                var$7.$windowId1 = (-1);
                var$7.$itemSlot = (-1);
                if (var$9 !== null) {
                    var$10 = new nms_ItemStack;
                    var$3 = var$9.$itemID;
                    var$6 = var$9.$stackSize;
                    var$4 = var$9.$itemDamage;
                    nms_ItemStack_$callClinit();
                    var$10.$itemID = var$3;
                    var$10.$stackSize = var$6;
                    var$10.$itemDamage = var$4;
                    if (var$4 < 0)
                        var$10.$itemDamage = 0;
                    var$9 = var$9.$stackTagCompound;
                    if (var$9 !== null) {
                        var$11 = new nms_NBTTagCompound;
                        var$12 = var$9.$name;
                        if (var$12 === null)
                            var$12 = $rt_s(3);
                        var$11.$name = var$12;
                        var$11.$tagMap = ju_HashMap__init_0(16, 0.75);
                        var$12 = var$9.$tagMap;
                        if (var$12.$cachedKeySet === null) {
                            var$13 = new ju_HashMap$1;
                            var$13.$this$0 = var$12;
                            ju_AbstractCollection__init_(var$13);
                            var$12.$cachedKeySet = var$13;
                        }
                        var$12 = var$12.$cachedKeySet.$iterator();
                        while (var$12.$hasNext()) {
                            var$13 = var$12.$next();
                            var$14 = var$9.$tagMap;
                            if (var$13 === null) {
                                var$14 = var$14.$elementData.data[0];
                                while (var$14 !== null && var$14.$key !== null) {
                                    var$14 = var$14.$next3;
                                }
                            } else {
                                c: {
                                    if (!var$13.$hashCode1) {
                                        var$3 = 0;
                                        while (true) {
                                            if (var$3 >= var$13.$nativeString.length)
                                                break c;
                                            var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$3) | 0;
                                            var$3 = var$3 + 1 | 0;
                                        }
                                    }
                                }
                                var$4 = var$13.$hashCode1;
                                var$8 = var$14.$elementData.data;
                                var$14 = var$8[var$4 & (var$8.length - 1 | 0)];
                                while (var$14 !== null && !(var$14.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$13, var$14.$key))) {
                                    var$14 = var$14.$next3;
                                }
                            }
                            var$14 = var$14 === null ? null : var$14.$value0;
                            var$14 = var$14.$copy();
                            var$15 = var$11.$tagMap;
                            if (var$13 !== null)
                                var$14.$name = var$13;
                            else
                                var$14.$name = $rt_s(3);
                            ju_HashMap_putImpl(var$15, var$13, var$14);
                        }
                        var$10.$stackTagCompound = var$11;
                    }
                    var$9 = var$10;
                }
                d: {
                    var$7.$myItemStack = var$9;
                    if (var$7 instanceof nms_Packet3Chat) {
                        var$9 = var$7;
                        var$6 = var$2.$playerEntity.$chatVisibility;
                        if (var$6 == 2)
                            break d;
                        if (var$6 == 1 && !var$9.$isServer)
                            break d;
                    }
                    try {
                        var$2 = var$2.$netManager;
                        $ptr = 2;
                        continue main;
                    } catch ($$e) {
                        $$je = $rt_wrapException($$e);
                        if ($$je instanceof jl_Exception) {
                            var$2 = $$je;
                        } else {
                            throw $$e;
                        }
                    }
                    if (jl_System_errCache === null) {
                        var$7 = new otcic_JSStderrPrintStream;
                        ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                        jl_System_errCache = var$7;
                    }
                    jl_Throwable_printStackTrace(var$2, jl_System_errCache);
                }
                $ptr = 3;
                continue main;
            }
            if (var$3 < 0)
                break;
            if (var$6 >= 0)
                break;
            var$2 = var$2.$array.data[var$3];
            var$2 = var$2.$inventory.$getStackInSlot(var$2.$slotIndex);
            ju_ArrayList_ensureCapacity(var$9, var$9.$size0 + 1 | 0);
            var$8 = var$9.$array.data;
            var$4 = var$9.$size0;
            var$9.$size0 = var$4 + 1 | 0;
            var$8[var$4] = var$2;
            var$9.$modCount = var$9.$modCount + 1 | 0;
            var$3 = var$3 + 1 | 0;
        }
        $par1ICrafting = new jl_IndexOutOfBoundsException;
        $par1ICrafting.$suppressionEnabled = 1;
        $par1ICrafting.$writableStackTrace = 1;
        jl_Throwable_fillInStackTrace($par1ICrafting);
        $rt_throw($par1ICrafting);
    case 1:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$7, var$2);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        var$2 = $par1ICrafting.$playerNetServerHandler;
        var$7 = new nms_Packet103SetSlot;
        var$9 = $par1ICrafting.$inventory0.$itemStack;
        nms_Packet_$callClinit();
        nles_SysUtil_$callClinit();
        var$7.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
        var$7.$windowId1 = (-1);
        var$7.$itemSlot = (-1);
        if (var$9 !== null) {
            var$10 = new nms_ItemStack;
            var$3 = var$9.$itemID;
            var$6 = var$9.$stackSize;
            var$4 = var$9.$itemDamage;
            nms_ItemStack_$callClinit();
            var$10.$itemID = var$3;
            var$10.$stackSize = var$6;
            var$10.$itemDamage = var$4;
            if (var$4 < 0)
                var$10.$itemDamage = 0;
            var$9 = var$9.$stackTagCompound;
            if (var$9 !== null) {
                var$11 = new nms_NBTTagCompound;
                var$12 = var$9.$name;
                if (var$12 === null)
                    var$12 = $rt_s(3);
                var$11.$name = var$12;
                var$11.$tagMap = ju_HashMap__init_0(16, 0.75);
                var$12 = var$9.$tagMap;
                if (var$12.$cachedKeySet === null) {
                    var$13 = new ju_HashMap$1;
                    var$13.$this$0 = var$12;
                    ju_AbstractCollection__init_(var$13);
                    var$12.$cachedKeySet = var$13;
                }
                var$12 = var$12.$cachedKeySet.$iterator();
                while (var$12.$hasNext()) {
                    var$13 = var$12.$next();
                    var$14 = var$9.$tagMap;
                    if (var$13 === null) {
                        var$14 = var$14.$elementData.data[0];
                        while (var$14 !== null && var$14.$key !== null) {
                            var$14 = var$14.$next3;
                        }
                    } else {
                        e: {
                            if (!var$13.$hashCode1) {
                                var$3 = 0;
                                while (true) {
                                    if (var$3 >= var$13.$nativeString.length)
                                        break e;
                                    var$13.$hashCode1 = (31 * var$13.$hashCode1 | 0) + var$13.$nativeString.charCodeAt(var$3) | 0;
                                    var$3 = var$3 + 1 | 0;
                                }
                            }
                        }
                        var$4 = var$13.$hashCode1;
                        var$8 = var$14.$elementData.data;
                        var$14 = var$8[var$4 & (var$8.length - 1 | 0)];
                        while (var$14 !== null && !(var$14.$origKeyHash == var$4 && ju_HashMap_areEqualKeys(var$13, var$14.$key))) {
                            var$14 = var$14.$next3;
                        }
                    }
                    var$14 = var$14 === null ? null : var$14.$value0;
                    var$14 = var$14.$copy();
                    var$15 = var$11.$tagMap;
                    if (var$13 !== null)
                        var$14.$name = var$13;
                    else
                        var$14.$name = $rt_s(3);
                    ju_HashMap_putImpl(var$15, var$13, var$14);
                }
                var$10.$stackTagCompound = var$11;
            }
            var$9 = var$10;
        }
        f: {
            var$7.$myItemStack = var$9;
            if (var$7 instanceof nms_Packet3Chat) {
                var$9 = var$7;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break f;
                if (var$6 == 1 && !var$9.$isServer)
                    break f;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 2;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        $ptr = 3;
        continue main;
    case 2:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, var$7);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    var$2 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$7 = new otcic_JSStderrPrintStream;
                ji_PrintStream__init_(var$7, ji_ByteArrayOutputStream__init_0(32), 0);
                jl_System_errCache = var$7;
            }
            jl_Throwable_printStackTrace(var$2, jl_System_errCache);
        }
        $ptr = 3;
    case 3:
        a: {
            nms_Container_detectAndSendChanges($this);
            if ($rt_suspending()) {
                break main;
            }
            var$6 = $this.$maximumCost;
            var$2 = $par1ICrafting.$playerNetServerHandler;
            $par1ICrafting = new nms_Packet105UpdateProgressbar;
            var$4 = $this.$windowId;
            $par1ICrafting.$creationTimeMillis = Long_fromNumber(nles_SysUtil_steadyTimeFunc());
            $par1ICrafting.$windowId0 = var$4;
            $par1ICrafting.$progressBar = 0;
            $par1ICrafting.$progressBarValue = var$6;
            if ($par1ICrafting instanceof nms_Packet3Chat) {
                var$7 = $par1ICrafting;
                var$6 = var$2.$playerEntity.$chatVisibility;
                if (var$6 == 2)
                    break a;
                if (var$6 == 1 && !var$7.$isServer)
                    break a;
            }
            try {
                var$2 = var$2.$netManager;
                $ptr = 4;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$7);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        return;
    case 4:
        a: {
            try {
                nles_WorkerNetworkManager_addToSendQueue(var$2, $par1ICrafting);
                if ($rt_suspending()) {
                    break main;
                }
                break a;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $par1ICrafting = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_errCache === null) {
                var$2 = new otcic_JSStderrPrintStream;
                var$7 = new ji_ByteArrayOutputStream;
                ji_OutputStream__init_(var$7);
                var$7.$buf = $rt_createByteArray(32);
                ji_FilterOutputStream__init_(var$2, var$7);
                var$2.$sb = jl_StringBuilder__init_();
                var$2.$buffer0 = $rt_createCharArray(32);
                var$2.$autoFlush = 0;
                var$2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = var$2;
            }
            jl_Throwable_printStackTrace($par1ICrafting, jl_System_errCache);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1ICrafting, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_ContainerRepair_onContainerClosed = ($this, $par1EntityPlayer) => {
    let $var3, var$3, $var2, var$5, var$6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var2 = $thread.pop();var$3 = $thread.pop();$var3 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = $par1EntityPlayer.$inventory0;
        var$3 = $var3.$itemStack;
        if (var$3 !== null) {
            $var2 = 0;
            $ptr = 1;
            continue main;
        }
        a: {
            if (!$this.$theWorld4.$isRemote) {
                $var2 = 0;
                while (true) {
                    $var3 = $this.$inputSlots;
                    if ($var2 >= $var3.$slotsCount)
                        break a;
                    var$5 = $var3.$inventoryContents.data;
                    if (var$5[$var2] === null)
                        $var3 = null;
                    else {
                        $var3 = var$5[$var2];
                        var$5[$var2] = null;
                    }
                    if ($var3 !== null) {
                        var$6 = 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var2 = $var2 + 1 | 0;
                }
            }
        }
        return;
    case 1:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$3, $var2);
        if ($rt_suspending()) {
            break main;
        }
        $var3.$itemStack = null;
        b: {
            if (!$this.$theWorld4.$isRemote) {
                $var2 = 0;
                while (true) {
                    $var3 = $this.$inputSlots;
                    if ($var2 >= $var3.$slotsCount)
                        break b;
                    var$5 = $var3.$inventoryContents.data;
                    if (var$5[$var2] === null)
                        $var3 = null;
                    else {
                        $var3 = var$5[$var2];
                        var$5[$var2] = null;
                    }
                    if ($var3 !== null) {
                        var$6 = 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var2 = $var2 + 1 | 0;
                }
            }
        }
        return;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, $var3, var$6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var2 = $var2 + 1 | 0;
            $var3 = $this.$inputSlots;
            if ($var2 >= $var3.$slotsCount)
                break;
            var$5 = $var3.$inventoryContents.data;
            if (var$5[$var2] === null)
                $var3 = null;
            else {
                $var3 = var$5[$var2];
                var$5[$var2] = null;
            }
            if ($var3 === null)
                continue;
            else {
                var$6 = 0;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $var3, var$3, $var2, var$5, var$6, $ptr);
},
nms_ContainerRepair_canInteractWith = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$theWorld4;
        var$3 = $this.$field_82861_i;
        var$4 = $this.$field_82858_j;
        var$5 = $this.$field_82859_k;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId(var$2, var$3, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        nms_Block_$callClinit();
        if (var$3 != nms_Block_anvil.$blockID)
            var$3 = 0;
        else {
            var$6 = $this.$field_82861_i + 0.5;
            var$7 = $this.$field_82858_j + 0.5;
            var$8 = $this.$field_82859_k + 0.5;
            var$6 = $par1EntityPlayer.$posX - var$6;
            var$7 = $par1EntityPlayer.$posY - var$7;
            var$8 = $par1EntityPlayer.$posZ - var$8;
            var$3 = var$6 * var$6 + var$7 * var$7 + var$8 * var$8 > 64.0 ? 0 : 1;
        }
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, var$5, var$6, var$7, var$8, $ptr);
},
nms_ContainerRepair_transferStackInSlot = ($this, $par1EntityPlayer, $par2) => {
    let $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = null;
        var$4 = $this.$inventorySlots;
        if ($par2 >= 0 && $par2 < var$4.$size0) {
            $var4 = var$4.$array.data[$par2];
            if ($var4 !== null && ($var4.$inventory.$getStackInSlot($var4.$slotIndex) === null ? 0 : 1)) {
                $var5 = $var4.$inventory.$getStackInSlot($var4.$slotIndex);
                $var3 = new nms_ItemStack;
                var$7 = $var5.$itemID;
                var$8 = $var5.$stackSize;
                var$9 = $var5.$itemDamage;
                nms_ItemStack_$callClinit();
                $var3.$itemID = var$7;
                $var3.$stackSize = var$8;
                $var3.$itemDamage = var$9;
                if (var$9 < 0)
                    $var3.$itemDamage = 0;
                var$10 = $var5.$stackTagCompound;
                if (var$10 !== null) {
                    var$11 = new nms_NBTTagCompound;
                    var$4 = var$10.$name;
                    if (var$4 === null)
                        var$4 = $rt_s(3);
                    var$11.$name = var$4;
                    var$4 = new ju_HashMap;
                    var$7 = ju_HashMap_calculateCapacity(16);
                    var$4.$elementCount = 0;
                    var$12 = $rt_createArray(ju_HashMap$HashEntry, var$7);
                    var$13 = var$12.data;
                    var$4.$elementData = var$12;
                    var$4.$loadFactor = 0.75;
                    var$4.$threshold = var$13.length * 0.75 | 0;
                    var$11.$tagMap = var$4;
                    var$14 = var$10.$tagMap;
                    if (var$14.$cachedKeySet === null) {
                        var$4 = new ju_HashMap$1;
                        var$4.$this$0 = var$14;
                        var$14.$cachedKeySet = var$4;
                    }
                    var$14 = var$14.$cachedKeySet.$iterator();
                    while (var$14.$hasNext()) {
                        var$15 = var$14.$next();
                        var$4 = var$10.$tagMap;
                        if (var$15 === null) {
                            var$16 = var$4.$elementData.data[0];
                            while (var$16 !== null && var$16.$key !== null) {
                                var$16 = var$16.$next3;
                            }
                        } else {
                            a: {
                                if (!var$15.$hashCode1) {
                                    var$9 = 0;
                                    while (true) {
                                        if (var$9 >= var$15.$nativeString.length)
                                            break a;
                                        var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$9) | 0;
                                        var$9 = var$9 + 1 | 0;
                                    }
                                }
                            }
                            var$9 = var$15.$hashCode1;
                            var$13 = var$4.$elementData.data;
                            var$16 = var$13[var$9 & (var$13.length - 1 | 0)];
                            while (var$16 !== null) {
                                if (var$16.$origKeyHash == var$9) {
                                    b: {
                                        var$4 = var$16.$key;
                                        if (var$15 !== var$4) {
                                            if (var$15 === var$4)
                                                var$7 = 1;
                                            else if (!(var$4 instanceof jl_String))
                                                var$7 = 0;
                                            else {
                                                var$4 = var$4;
                                                var$7 = var$15.$nativeString !== var$4.$nativeString ? 0 : 1;
                                            }
                                            if (!var$7) {
                                                var$7 = 0;
                                                break b;
                                            }
                                        }
                                        var$7 = 1;
                                    }
                                    if (var$7)
                                        break;
                                }
                                var$16 = var$16.$next3;
                            }
                        }
                        var$4 = var$16 === null ? null : var$16.$value0;
                        var$4 = var$4.$copy();
                        var$16 = var$11.$tagMap;
                        if (var$15 !== null)
                            var$4.$name = var$15;
                        else
                            var$4.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$16, var$15, var$4);
                    }
                    $var3.$stackTagCompound = var$11;
                }
                if ($par2 == 2) {
                    $par2 = 3;
                    var$7 = 39;
                    var$8 = 1;
                    $ptr = 1;
                    continue main;
                }
                if ($par2 && $par2 != 1) {
                    if ($par2 >= 3 && $par2 < 39) {
                        $par2 = 0;
                        var$7 = 2;
                        var$8 = 0;
                        $ptr = 7;
                        continue main;
                    }
                    if ($var5.$stackSize) {
                        var$4 = $var4.$inventory;
                        $ptr = 3;
                        continue main;
                    }
                    var$4 = null;
                    var$10 = $var4.$inventory;
                    $par2 = $var4.$slotIndex;
                    $ptr = 4;
                    continue main;
                }
                $par2 = 3;
                var$7 = 39;
                var$8 = 0;
                $ptr = 2;
                continue main;
            }
            return $var3;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$itemID == $var3.$itemID) {
            $par2 = $var3.$stackSize - $var5.$stackSize | 0;
            if ($par2 > 0) {
                $ptr = 6;
                continue main;
            }
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 3:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 8;
        continue main;
    case 4:
        var$10.$setInventorySlotContents($par2, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $var4.$inventory;
        $ptr = 5;
    case 5:
        var$4.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize == $var3.$stackSize)
            return null;
        $ptr = 8;
        continue main;
    case 6:
        $var4.$onCrafting($var5, $par2);
        if ($rt_suspending()) {
            break main;
        }
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 7:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            var$4 = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        var$4 = null;
        var$10 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 8:
        $var4.$onPickupFromSlot($par1EntityPlayer, $var5);
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $var3, var$4, $var4, $var5, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_ContainerRepair_updateItemName = ($this, $par1Str) => {
    let var$2, $var2, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var2 = $thread.pop();var$2 = $thread.pop();$par1Str = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$repairedItemName = $par1Str;
        var$2 = $this.$inventorySlots;
        if (2 >= var$2.$size0) {
            $par1Str = new jl_IndexOutOfBoundsException;
            $par1Str.$suppressionEnabled = 1;
            $par1Str.$writableStackTrace = 1;
            $rt_throw($par1Str);
        }
        $var2 = var$2.$array.data[2];
        if ($var2.$inventory.$getStackInSlot($var2.$slotIndex) === null ? 0 : 1) {
            var$2 = $this.$inventorySlots;
            if (2 >= var$2.$size0) {
                $par1Str = new jl_IndexOutOfBoundsException;
                $par1Str.$suppressionEnabled = 1;
                $par1Str.$writableStackTrace = 1;
                $rt_throw($par1Str);
            }
            $var2 = var$2.$array.data[2];
            $var2 = $var2.$inventory.$getStackInSlot($var2.$slotIndex);
            if ($par1Str !== null && $par1Str !== $rt_s(3) && $par1Str !== $rt_s(260))
                nms_ItemStack_setItemName($var2, $this.$repairedItemName);
            else
                nms_ItemStack_func_135074_t($var2);
        }
        $ptr = 1;
    case 1:
        nms_ContainerRepair_updateRepairOutput($this);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1Str, var$2, $var2, $ptr);
},
nms_EnumCreatureAttribute = $rt_classWithoutFields(jl_Enum),
nms_EnumCreatureAttribute_UNDEFINED = null,
nms_EnumCreatureAttribute_UNDEAD = null,
nms_EnumCreatureAttribute_ARTHROPOD = null,
nms_EnumCreatureAttribute_$VALUES = null,
nms_EnumCreatureAttribute_values = () => {
    return nms_EnumCreatureAttribute_$VALUES.$clone0();
},
nms_EnumCreatureAttribute__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = new nms_EnumCreatureAttribute;
    var$1.$name0 = $rt_s(2722);
    var$1.$ordinal = 0;
    nms_EnumCreatureAttribute_UNDEFINED = var$1;
    var$2 = new nms_EnumCreatureAttribute;
    var$2.$name0 = $rt_s(2723);
    var$2.$ordinal = 1;
    nms_EnumCreatureAttribute_UNDEAD = var$2;
    var$3 = new nms_EnumCreatureAttribute;
    var$3.$name0 = $rt_s(2724);
    var$3.$ordinal = 2;
    nms_EnumCreatureAttribute_ARTHROPOD = var$3;
    nms_EnumCreatureAttribute_$VALUES = $rt_wrapArray(nms_EnumCreatureAttribute, [var$1, var$2, var$3]);
};
function nms_WorldGenHellLava() {
    let a = this; nms_WorldGenerator.call(a);
    a.$hellLavaID = 0;
    a.$field_94524_b = 0;
}
let nms_WorldGenHellLava_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, $var6, var$8, var$9, var$10, var$11, $var7, var$13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$13 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = $par4 + 1 | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, var$6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        nms_Block_$callClinit();
        if (var$6 != nms_Block_netherrack.$blockID)
            return 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6) {
            $ptr = 4;
            continue main;
        }
        $var6 = 0;
        var$6 = $par3 - 1 | 0;
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$6, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (var$8 == nms_Block_netherrack.$blockID)
            $var6 = 1;
        var$8 = $par3 + 1 | 0;
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 != nms_Block_netherrack.$blockID)
            return 0;
        $var6 = 0;
        var$6 = $par3 - 1 | 0;
        $ptr = 3;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, var$8, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$9 = $tmp;
        if (var$9 == nms_Block_netherrack.$blockID)
            $var6 = $var6 + 1 | 0;
        var$9 = $par5 - 1 | 0;
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 == nms_Block_netherrack.$blockID)
            $var6 = $var6 + 1 | 0;
        var$11 = $par5 + 1 | 0;
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$10 = $tmp;
        if (var$10 == nms_Block_netherrack.$blockID)
            $var6 = $var6 + 1 | 0;
        var$10 = $par4 - 1 | 0;
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $par3, var$10, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        if ($var7 == nms_Block_netherrack.$blockID)
            $var6 = $var6 + 1 | 0;
        $var7 = 0;
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($par1World, var$6, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1)
            $var7 = 1;
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($par1World, var$8, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1)
            $var7 = $var7 + 1 | 0;
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1)
            $var7 = $var7 + 1 | 0;
        $ptr = 12;
    case 12:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1)
            $var7 = $var7 + 1 | 0;
        $ptr = 13;
    case 13:
        $tmp = nms_World_getBlockId($par1World, $par3, var$10, $par5);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        if (var$6 ? 0 : 1)
            $var7 = $var7 + 1 | 0;
        if (!(!$this.$field_94524_b && $var6 == 4 && $var7 == 1) && $var6 != 5)
            return 1;
        var$6 = $this.$hellLavaID;
        var$8 = 0;
        var$9 = 2;
        $ptr = 14;
    case 14:
        nms_World_setBlock($par1World, $par3, $par4, $par5, var$6, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$scheduledUpdatesAreImmediate = 1;
        var$13 = nms_Block_blocksList.data[$this.$hellLavaID];
        $ptr = 15;
    case 15:
        var$13.$updateTick($par1World, $par3, $par4, $par5, $par2Random);
        if ($rt_suspending()) {
            break main;
        }
        $par1World.$scheduledUpdatesAreImmediate = 0;
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, $var6, var$8, var$9, var$10, var$11, $var7, var$13, $ptr);
},
nms_WorldGenFire = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenFire__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenFire__init_0 = () => {
    let var_0 = new nms_WorldGenFire();
    nms_WorldGenFire__init_(var_0);
    return var_0;
},
nms_WorldGenFire_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, var$7, var$8, var$9, var$10, var$11, $var7, $var8, var$14, $var9, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();$var9 = $thread.pop();var$14 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var6 = 0;
        var$7 = 17;
        var$8 = Long_fromInt(8);
        var$9 = Long_fromInt(4);
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        if (var$11 ? 0 : 1) {
            var$11 = $var8 - 1 | 0;
            $ptr = 2;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var7, var$11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        var$11 = $tmp;
        nms_Block_$callClinit();
        if (var$11 == nms_Block_netherrack.$blockID) {
            var$16 = nms_Block_fire.$blockID;
            var$11 = 0;
            var$17 = 2;
            $ptr = 3;
            continue main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    case 3:
        nms_World_setBlock($par1World, $var7, $var8, $var9, var$16, var$11, var$17);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 64)
            return 1;
        var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par3 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var7 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par4 + Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        $var8 = var$11 - Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$10 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$10;
        var$11 = $par5 + Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$10, var$7)))), 31)) | 0;
        var$14 = Long_and(Long_add(Long_mul(var$10, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$14;
        $var9 = var$11 - Long_lo(Long_shr(Long_mul(var$8, Long_fromInt(Long_lo(Long_shru(var$14, var$7)))), 31)) | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, var$7, var$8, var$9, var$10, var$11, $var7, $var8, var$14, $var9, var$16, var$17, $ptr);
},
nms_WorldGenGlowStone1 = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenGlowStone1__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenGlowStone1__init_0 = () => {
    let var_0 = new nms_WorldGenGlowStone1();
    nms_WorldGenGlowStone1__init_(var_0);
    return var_0;
},
nms_WorldGenGlowStone1_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, $var7, $var10, var$9, var$10, var$11, var$12, var$13, $var11, $var12, $var8, $var9, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random
        = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 ? 0 : 1))
            return 0;
        $var6 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $var6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if ($var7 != nms_Block_netherrack.$blockID)
            return 0;
        $var6 = nms_Block_glowStone.$blockID;
        $var7 = 0;
        $var10 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $var6, $var7, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        var$9 = 17;
        var$10 = 11;
        var$11 = Long_fromInt(8);
        if ($var6 >= 1500)
            return 1;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var11 = Long_lo(Long_shru(var$13, var$9));
        while (true) {
            $var12 = $var11 % 12 | 0;
            if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$13;
            $var11 = Long_lo(Long_shru(var$13, var$9));
        }
        $var8 = $par4 - $var12 | 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
        $ptr = 4;
    case 4:
        a: {
            $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
            if ($rt_suspending()) {
                break main;
            }
            $var10 = $tmp;
            if (!$var10) {
                $var10 = 0;
                $var11 = 0;
                var$18 = $var7 - 1 | 0;
                var$19 = $var7 + 1 | 0;
                var$20 = $var8 - 1 | 0;
                var$21 = $var8 + 1 | 0;
                var$22 = $var9 - 1 | 0;
                var$23 = $var9 + 1 | 0;
                while (true) {
                    if ($var11 >= 6) {
                        if ($var10 != 1)
                            break a;
                        $var10 = nms_Block_glowStone.$blockID;
                        $var11 = 0;
                        $var12 = 2;
                        $ptr = 5;
                        continue main;
                    }
                    if (!$var11) {
                        $ptr = 6;
                        continue main;
                    }
                    if ($var11 == 1) {
                        $ptr = 7;
                        continue main;
                    }
                    if ($var11 == 2) {
                        $ptr = 8;
                        continue main;
                    }
                    if ($var11 == 3) {
                        $ptr = 9;
                        continue main;
                    }
                    if ($var11 == 4) {
                        $ptr = 10;
                        continue main;
                    }
                    if ($var11 == 5)
                        break;
                    if (0 == nms_Block_glowStone.$blockID)
                        $var10 = $var10 + 1 | 0;
                    $var11 = $var11 + 1 | 0;
                }
                $ptr = 11;
                continue main;
            }
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 1500)
            return 1;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var11 = Long_lo(Long_shru(var$13, var$9));
        while (true) {
            $var12 = $var11 % 12 | 0;
            if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$13;
            $var11 = Long_lo(Long_shru(var$13, var$9));
        }
        $var8 = $par4 - $var12 | 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $var7, $var8, $var9, $var10, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 1500)
            return 1;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var11 = Long_lo(Long_shru(var$13, var$9));
        while (true) {
            $var12 = $var11 % 12 | 0;
            if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$13;
            $var11 = Long_lo(Long_shru(var$13, var$9));
        }
        $var8 = $par4 - $var12 | 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$18, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 1) {
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                continue main;
            }
        }
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$19, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 2) {
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                continue main;
            }
        }
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var7, var$20, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 3) {
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                continue main;
            }
        }
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var7, var$21, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 4) {
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                continue main;
            }
        }
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 5) {
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                continue main;
            }
        }
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, var$23);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while (true) {
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5)
                break;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, $var7, $var10, var$9, var$10, var$11, var$12, var$13, $var11, $var12, $var8, $var9, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_WorldGenGlowStone2 = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenGlowStone2__init_ = $this => {
    $this.$doBlockNotify = 0;
},
nms_WorldGenGlowStone2__init_0 = () => {
    let var_0 = new nms_WorldGenGlowStone2();
    nms_WorldGenGlowStone2__init_(var_0);
    return var_0;
},
nms_WorldGenGlowStone2_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, $var7, $var10, var$9, var$10, var$11, var$12, var$13, $var11, $var12, $var8, $var9, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var10 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random
        = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!($var6 ? 0 : 1))
            return 0;
        $var6 = $par4 + 1 | 0;
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $par3, $var6, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $tmp;
        nms_Block_$callClinit();
        if ($var7 != nms_Block_netherrack.$blockID)
            return 0;
        $var6 = nms_Block_glowStone.$blockID;
        $var7 = 0;
        $var10 = 2;
        $ptr = 3;
    case 3:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $var6, $var7, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = 0;
        var$9 = 17;
        var$10 = 11;
        var$11 = Long_fromInt(8);
        if ($var6 >= 1500)
            return 1;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var11 = Long_lo(Long_shru(var$13, var$9));
        while (true) {
            $var12 = $var11 % 12 | 0;
            if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$13;
            $var11 = Long_lo(Long_shru(var$13, var$9));
        }
        $var8 = $par4 - $var12 | 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
        $ptr = 4;
    case 4:
        a: {
            $tmp = nms_World_getBlockId($par1World, $var7, $var8, $var9);
            if ($rt_suspending()) {
                break main;
            }
            $var10 = $tmp;
            if (!$var10) {
                $var10 = 0;
                $var11 = 0;
                var$18 = $var7 - 1 | 0;
                var$19 = $var7 + 1 | 0;
                var$20 = $var8 - 1 | 0;
                var$21 = $var8 + 1 | 0;
                var$22 = $var9 - 1 | 0;
                var$23 = $var9 + 1 | 0;
                while (true) {
                    if ($var11 >= 6) {
                        if ($var10 != 1)
                            break a;
                        $var10 = nms_Block_glowStone.$blockID;
                        $var11 = 0;
                        $var12 = 2;
                        $ptr = 5;
                        continue main;
                    }
                    if (!$var11) {
                        $ptr = 6;
                        continue main;
                    }
                    if ($var11 == 1) {
                        $ptr = 7;
                        continue main;
                    }
                    if ($var11 == 2) {
                        $ptr = 8;
                        continue main;
                    }
                    if ($var11 == 3) {
                        $ptr = 9;
                        continue main;
                    }
                    if ($var11 == 4) {
                        $ptr = 10;
                        continue main;
                    }
                    if ($var11 == 5)
                        break;
                    if (0 == nms_Block_glowStone.$blockID)
                        $var10 = $var10 + 1 | 0;
                    $var11 = $var11 + 1 | 0;
                }
                $ptr = 11;
                continue main;
            }
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 1500)
            return 1;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var11 = Long_lo(Long_shru(var$13, var$9));
        while (true) {
            $var12 = $var11 % 12 | 0;
            if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$13;
            $var11 = Long_lo(Long_shru(var$13, var$9));
        }
        $var8 = $par4 - $var12 | 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
        continue main;
    case 5:
        nms_World_setBlock($par1World, $var7, $var8, $var9, $var10, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $var6 + 1 | 0;
        if ($var6 >= 1500)
            return 1;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var11 = Long_lo(Long_shru(var$13, var$9));
        while (true) {
            $var12 = $var11 % 12 | 0;
            if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                break;
            var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$13;
            $var11 = Long_lo(Long_shru(var$13, var$9));
        }
        $var8 = $par4 - $var12 | 0;
        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$12;
        $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
        var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
        $ptr = 4;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, var$18, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 1) {
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                continue main;
            }
        }
        $ptr = 7;
    case 7:
        $tmp = nms_World_getBlockId($par1World, var$19, $var8, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 2) {
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                continue main;
            }
        }
        $ptr = 8;
    case 8:
        $tmp = nms_World_getBlockId($par1World, $var7, var$20, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 3) {
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                continue main;
            }
        }
        $ptr = 9;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var7, var$21, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 4) {
            if ($var11 == 5) {
                $ptr = 11;
                continue main;
            }
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                continue main;
            }
        }
        $ptr = 10;
    case 10:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, var$22);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while ($var11 != 5) {
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                continue main;
            }
        }
        $ptr = 11;
    case 11:
        $tmp = nms_World_getBlockId($par1World, $var7, $var8, var$23);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = $tmp;
        while (true) {
            if ($var12 == nms_Block_glowStone.$blockID)
                $var10 = $var10 + 1 | 0;
            $var11 = $var11 + 1 | 0;
            if ($var11 >= 6) {
                if ($var10 == 1) {
                    $var10 = nms_Block_glowStone.$blockID;
                    $var11 = 0;
                    $var12 = 2;
                    $ptr = 5;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
                if ($var6 >= 1500)
                    return 1;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $par3 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$12 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var7 = $var7 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var11 = Long_lo(Long_shru(var$13, var$9));
                while (true) {
                    $var12 = $var11 % 12 | 0;
                    if ((($var11 - $var12 | 0) + var$10 | 0) >= 0)
                        break;
                    var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$13;
                    $var11 = Long_lo(Long_shru(var$13, var$9));
                }
                $var8 = $par4 - $var12 | 0;
                var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$12;
                $var10 = $par5 + Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$12, var$9)))), 31)) | 0;
                var$13 = Long_and(Long_add(Long_mul(var$12, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                $var9 = $var10 - Long_lo(Long_shr(Long_mul(var$11, Long_fromInt(Long_lo(Long_shru(var$13, var$9)))), 31)) | 0;
                $ptr = 4;
                continue main;
            }
            $var12 = 0;
            if (!$var11) {
                $ptr = 6;
                continue main;
            }
            if ($var11 == 1) {
                $ptr = 7;
                continue main;
            }
            if ($var11 == 2) {
                $ptr = 8;
                continue main;
            }
            if ($var11 == 3) {
                $ptr = 9;
                continue main;
            }
            if ($var11 == 4) {
                $ptr = 10;
                continue main;
            }
            if ($var11 == 5)
                break;
        }
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, $var6, $var7, $var10, var$9, var$10, var$11, var$12, var$13, $var11, $var12, $var8, $var9, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_WorldGenDungeons = $rt_classWithoutFields(nms_WorldGenerator),
nms_WorldGenDungeons_field_111189_a = null,
nms_WorldGenDungeons_$callClinit = () => {
    nms_WorldGenDungeons_$callClinit = $rt_eraseClinit(nms_WorldGenDungeons);
    nms_WorldGenDungeons__clinit_();
},
nms_WorldGenDungeons__init_ = $this => {
    nms_WorldGenDungeons_$callClinit();
    $this.$doBlockNotify = 0;
},
nms_WorldGenDungeons__init_0 = () => {
    let var_0 = new nms_WorldGenDungeons();
    nms_WorldGenDungeons__init_(var_0);
    return var_0;
},
nms_WorldGenDungeons_generate = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let var$6, var$7, $var7, var$9, $var8, $var9, var$12, $var12, var$14, var$15, var$16, var$17, var$18, $var10, $var15, var$21, $var11, $var6, $var14, $var11_0, $var12_0, $var13, $var18, $var16, var$30, var$31, var$32, $var17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var17 = $thread.pop();var$32 = $thread.pop();var$31 = $thread.pop();var$30 = $thread.pop();$var16 = $thread.pop();$var18 = $thread.pop();$var13 = $thread.pop();$var12_0 = $thread.pop();$var11_0 = $thread.pop();$var14 = $thread.pop();$var6 = $thread.pop();$var11 = $thread.pop();var$21 = $thread.pop();$var15 = $thread.pop();$var10 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var12 = $thread.pop();var$12
        = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();$var7 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$6 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$6;
        var$7 = 17;
        $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$6, var$7)))), 31)) + 2 | 0;
        var$9 = Long_and(Long_add(Long_mul(var$6, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        $var8 = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$9, var$7)))), 31)) + 2 | 0;
        $var9 = 0;
        var$12 = ($par3 - $var7 | 0) - 1 | 0;
        $var12 = ($par3 + $var7 | 0) + 1 | 0;
        var$14 = $par4 - 1 | 0;
        var$15 = $par4 + 3 | 0;
        var$16 = var$15 + 1 | 0;
        var$17 = ($par5 - $var8 | 0) - 1 | 0;
        var$18 = ($par5 + $var8 | 0) + 1 | 0;
        $var10 = var$12;
        a: while (true) {
            $var15 = $rt_compare($var10, $var12);
            if ($var15 > 0) {
                if ($var9 >= 1 && $var9 <= 5) {
                    var$9 = Long_fromInt(4);
                    $var10 = var$12;
                    b: while (true) {
                        $var15 = $rt_compare($var10, $var12);
                        if ($var15 > 0) {
                            var$12 = 0;
                            $var10 = ($var7 * 2 | 0) + 1 | 0;
                            var$17 = ($var8 * 2 | 0) + 1 | 0;
                            var$6 = Long_fromInt(var$17);
                            var$21 = Long_fromInt($var10);
                            var$15 = $var10 - 1 | 0;
                            var$16 = $var10 & var$15;
                            var$18 = var$17 - 1 | 0;
                            var$14 = var$17 & var$18;
                            while (var$12 < 2) {
                                $var11 = 0;
                                if ($var11 < 3) {
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                    if (!var$16)
                                        $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                                    else
                                        while (true) {
                                            $var9 = $var6 % $var10 | 0;
                                            if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                                break;
                                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            $par2Random.$seed = var$9;
                                            $var6 = Long_lo(Long_shru(var$9, var$7));
                                        }
                                    $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                    if (!var$14)
                                        $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                                    else
                                        while (true) {
                                            $var9 = $var6 % var$17 | 0;
                                            if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                                break;
                                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                            $par2Random.$seed = var$9;
                                            $var6 = Long_lo(Long_shru(var$9, var$7));
                                        }
                                    $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                                    $ptr = 7;
                                    continue main;
                                }
                                var$12 = var$12 + 1 | 0;
                            }
                            nms_Block_$callClinit();
                            $var9 = nms_Block_mobSpawner.$blockID;
                            $var6 = 0;
                            $var11 = 2;
                            $ptr = 2;
                            continue main;
                        }
                        $var11_0 = var$15;
                        while (true) {
                            $var14 = $rt_compare($var11_0, var$14);
                            if ($var14 < 0)
                                break;
                            $var12_0 = var$17;
                            $var6 = $rt_compare($var12_0, var$18);
                            if ($var6 <= 0)
                                break b;
                            $var11_0 = $var11_0 + (-1) | 0;
                        }
                        $var10 = $var10 + 1 | 0;
                    }
                    if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
                        $var6 = 0;
                        $var11 = 0;
                        $var9 = 3;
                        $ptr = 11;
                        continue main;
                    }
                    if ($var11_0 < 0) {
                        $ptr = 4;
                        continue main;
                    }
                    $var6 = $var11_0 - 1 | 0;
                    $ptr = 5;
                    continue main;
                }
                return 0;
            }
            $var11_0 = var$14;
            while (true) {
                $var14 = $rt_compare($var11_0, var$16);
                if ($var14 > 0)
                    break;
                $var12_0 = var$17;
                $var6 = $rt_compare($var12_0, var$18);
                if ($var6 <= 0)
                    break a;
                $var11_0 = $var11_0 + 1 | 0;
            }
            $var10 = $var10 + 1 | 0;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var10, $var11_0, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11) {
            nms_Material_$callClinit();
            $var13 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var11].$blockMaterial;
        }
        if ($var11_0 == var$14 && !$var13.$isSolid())
            return 0;
        if (!$var14 && !$var13.$isSolid())
            return 0;
        if (!($var10 != var$12 && $var15 && $var12_0 != var$17 && $var6) && $var11_0 == $par4) {
            $ptr = 6;
            continue main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + 1 | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$16);
                if ($var14 <= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    if ($var9 >= 1 && $var9 <= 5) {
                        var$9 = Long_fromInt(4);
                        $var10 = var$12;
                        c: while (true) {
                            $var15 = $rt_compare($var10, $var12);
                            if ($var15 > 0) {
                                var$12 = 0;
                                $var10 = ($var7 * 2 | 0) + 1 | 0;
                                var$17 = ($var8 * 2 | 0) + 1 | 0;
                                var$6 = Long_fromInt(var$17);
                                var$21 = Long_fromInt($var10);
                                var$15 = $var10 - 1 | 0;
                                var$16 = $var10 & var$15;
                                var$18 = var$17 - 1 | 0;
                                var$14 = var$17 & var$18;
                                while (var$12 < 2) {
                                    $var11 = 0;
                                    if ($var11 < 3) {
                                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $par2Random.$seed = var$9;
                                        $var6 = Long_lo(Long_shru(var$9, var$7));
                                        if (!var$16)
                                            $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                                        else
                                            while (true) {
                                                $var9 = $var6 % $var10 | 0;
                                                if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                                    break;
                                                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$9;
                                                $var6 = Long_lo(Long_shru(var$9, var$7));
                                            }
                                        $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $par2Random.$seed = var$9;
                                        $var6 = Long_lo(Long_shru(var$9, var$7));
                                        if (!var$14)
                                            $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                                        else
                                            while (true) {
                                                $var9 = $var6 % var$17 | 0;
                                                if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                                    break;
                                                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$9;
                                                $var6 = Long_lo(Long_shru(var$9, var$7));
                                            }
                                        $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                                        $ptr = 7;
                                        continue main;
                                    }
                                    var$12 = var$12 + 1 | 0;
                                }
                                nms_Block_$callClinit();
                                $var9 = nms_Block_mobSpawner.$blockID;
                                $var6 = 0;
                                $var11 = 2;
                                $ptr = 2;
                                continue main;
                            }
                            $var11_0 = var$15;
                            while (true) {
                                $var14 = $rt_compare($var11_0, var$14);
                                if ($var14 < 0)
                                    break;
                                $var12_0 = var$17;
                                $var6 = $rt_compare($var12_0, var$18);
                                if ($var6 <= 0)
                                    break c;
                                $var11_0 = $var11_0 + (-1) | 0;
                            }
                            $var10 = $var10 + 1 | 0;
                        }
                        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
                            $var6 = 0;
                            $var11 = 0;
                            $var9 = 3;
                            $ptr = 11;
                            continue main;
                        }
                        if ($var11_0 < 0) {
                            $ptr = 4;
                            continue main;
                        }
                        $var6 = $var11_0 - 1 | 0;
                        $ptr = 5;
                        continue main;
                    }
                    return 0;
                }
                $var11_0 = var$14;
            }
            $var12_0 = var$17;
        }
        continue main;
    case 2:
        nms_World_setBlock($par1World, $par3, $par4, $par5, $var9, $var6, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockTileEntity($par1World, $par3, $par4, $par5);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var18 = $par1World;
        if ($var18 !== null)
            $var18.$field_98050_a.$mobID = nms_WorldGenDungeons_pickMobSpawner($this, $par2Random);
        else {
            if (jl_System_errCache === null) {
                $par1World = new otcic_JSStderrPrintStream;
                $par2Random = new ji_ByteArrayOutputStream;
                $par2Random.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $par2Random;
                $par2Random = new jl_StringBuilder;
                jl_Object__init_($par2Random);
                $par2Random.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $par2Random;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_errCache = $par1World;
            }
            $par1World = new jl_StringBuilder;
            $par1World.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par1World, $par1World.$length0, $rt_s(2725));
            jl_AbstractStringBuilder_insert0($par1World, $par1World.$length0, $par3, 10);
            jl_AbstractStringBuilder_insert($par1World, $par1World.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert0($par1World, $par1World.$length0, $par4, 10);
            jl_AbstractStringBuilder_insert($par1World, $par1World.$length0, $rt_s(118));
            jl_AbstractStringBuilder_insert0($par1World, $par1World.$length0, $par5, 10);
            $par4 = $par1World.$length0;
            jl_AbstractStringBuilder_insertSpace($par1World, $par4, $par4 + 1 | 0);
            $var16 = $par1World.$buffer;
            var$30 = $var16.data;
            var$30[$par4] = 41;
            $par2Random = new jl_String;
            $par4 = $par1World.$length0;
            $par5 = var$30.length;
            if ($par4 >= 0 && $par4 <= ($par5 - 0 | 0)) {
                $par2Random.$nativeString = $rt_charArrayToString($var16.data, 0, $par4);
                $rt_putStderr($rt_ustr($par2Random));
                $rt_putStderr("\n");
            } else {
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par1World);
                $rt_throw($par1World);
            }
        }
        return 1;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $var10, $var11_0, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            $var13 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if ($var13.$isSolid()) {
            if (!$var14) {
                var$31 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$31;
                if (Long_lo(Long_shr(Long_mul(var$9, Long_fromInt(Long_lo(Long_shru(var$31, var$7)))), 31))) {
                    nms_Block_$callClinit();
                    $var6 = nms_Block_cobblestoneMossy.$blockID;
                    $var11 = 0;
                    $var9 = 2;
                    $ptr = 13;
                    continue main;
                }
            }
            nms_Block_$callClinit();
            $var6 = nms_Block_cobblestone.$blockID;
            $var11 = 0;
            $var9 = 2;
            $ptr = 10;
            continue main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + (-1) | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$14);
                if ($var14 >= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    var$12 = 0;
                    $var10 = ($var7 * 2 | 0) + 1 | 0;
                    var$17 = ($var8 * 2 | 0) + 1 | 0;
                    var$6 = Long_fromInt(var$17);
                    var$21 = Long_fromInt($var10);
                    var$15 = $var10 - 1 | 0;
                    var$16 = $var10 & var$15;
                    var$18 = var$17 - 1 | 0;
                    var$14 = var$17 & var$18;
                    while (var$12 < 2) {
                        $var11 = 0;
                        if ($var11 < 3) {
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$16)
                                $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % $var10 | 0;
                                    if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$14)
                                $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % var$17 | 0;
                                    if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                            $ptr = 7;
                            continue main;
                        }
                        var$12 = var$12 + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var9 = nms_Block_mobSpawner.$blockID;
                    $var6 = 0;
                    $var11 = 2;
                    $ptr = 2;
                    continue main;
                }
                $var11_0 = var$15;
            }
            $var12_0 = var$17;
        }
        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
            $var6 = 0;
            $var11 = 0;
            $var9 = 3;
            $ptr = 11;
            continue main;
        }
        if ($var11_0 < 0) {
            continue main;
        }
        $var6 = $var11_0 - 1 | 0;
        $ptr = 5;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var10, $var6, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            $var13 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if ($var13.$isSolid()) {
            $ptr = 4;
            continue main;
        }
        $var6 = 0;
        $var11 = 0;
        $var9 = 3;
        $ptr = 8;
        continue main;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var10, $var11_0, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 ? 0 : 1) {
            $var6 = $var11_0 + 1 | 0;
            $ptr = 9;
            continue main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + 1 | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$16);
                if ($var14 <= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    if ($var9 >= 1 && $var9 <= 5) {
                        var$9 = Long_fromInt(4);
                        $var10 = var$12;
                        d: while (true) {
                            $var15 = $rt_compare($var10, $var12);
                            if ($var15 > 0) {
                                var$12 = 0;
                                $var10 = ($var7 * 2 | 0) + 1 | 0;
                                var$17 = ($var8 * 2 | 0) + 1 | 0;
                                var$6 = Long_fromInt(var$17);
                                var$21 = Long_fromInt($var10);
                                var$15 = $var10 - 1 | 0;
                                var$16 = $var10 & var$15;
                                var$18 = var$17 - 1 | 0;
                                var$14 = var$17 & var$18;
                                while (var$12 < 2) {
                                    $var11 = 0;
                                    if ($var11 < 3) {
                                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $par2Random.$seed = var$9;
                                        $var6 = Long_lo(Long_shru(var$9, var$7));
                                        if (!var$16)
                                            $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                                        else
                                            while (true) {
                                                $var9 = $var6 % $var10 | 0;
                                                if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                                    break;
                                                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$9;
                                                $var6 = Long_lo(Long_shru(var$9, var$7));
                                            }
                                        $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $par2Random.$seed = var$9;
                                        $var6 = Long_lo(Long_shru(var$9, var$7));
                                        if (!var$14)
                                            $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                                        else
                                            while (true) {
                                                $var9 = $var6 % var$17 | 0;
                                                if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                                    break;
                                                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$9;
                                                $var6 = Long_lo(Long_shru(var$9, var$7));
                                            }
                                        $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                                        $ptr = 7;
                                        continue main;
                                    }
                                    var$12 = var$12 + 1 | 0;
                                }
                                nms_Block_$callClinit();
                                $var9 = nms_Block_mobSpawner.$blockID;
                                $var6 = 0;
                                $var11 = 2;
                                $ptr = 2;
                                continue main;
                            }
                            $var11_0 = var$15;
                            while (true) {
                                $var14 = $rt_compare($var11_0, var$14);
                                if ($var14 < 0)
                                    break;
                                $var12_0 = var$17;
                                $var6 = $rt_compare($var12_0, var$18);
                                if ($var6 <= 0)
                                    break d;
                                $var11_0 = $var11_0 + (-1) | 0;
                            }
                            $var10 = $var10 + 1 | 0;
                        }
                        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
                            $var6 = 0;
                            $var11 = 0;
                            $var9 = 3;
                            $ptr = 11;
                            continue main;
                        }
                        if ($var11_0 < 0) {
                            $ptr = 4;
                            continue main;
                        }
                        $var6 = $var11_0 - 1 | 0;
                        $ptr = 5;
                        continue main;
                    }
                    return 0;
                }
                $var11_0 = var$14;
            }
            $var12_0 = var$17;
        }
        $ptr = 1;
        continue main;
    case 7:
        $tmp = nms_World_getBlockId($par1World, $var12, $par4, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 ? 0 : 1) {
            $var15 = 0;
            $var6 = $var12 - 1 | 0;
            $ptr = 12;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        while (true) {
            if ($var11 < 3) {
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$16)
                    $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % $var10 | 0;
                        if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$14)
                    $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % var$17 | 0;
                        if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                continue main;
            }
            var$12 = var$12 + 1 | 0;
            if (var$12 >= 2)
                break;
            $var11 = 0;
        }
        nms_Block_$callClinit();
        $var9 = nms_Block_mobSpawner.$blockID;
        $var6 = 0;
        $var11 = 2;
        $ptr = 2;
        continue main;
    case 8:
        nms_World_setBlock($par1World, $var10, $var11_0, $var12_0, $var6, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + (-1) | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$14);
                if ($var14 >= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    var$12 = 0;
                    $var10 = ($var7 * 2 | 0) + 1 | 0;
                    var$17 = ($var8 * 2 | 0) + 1 | 0;
                    var$6 = Long_fromInt(var$17);
                    var$21 = Long_fromInt($var10);
                    var$15 = $var10 - 1 | 0;
                    var$16 = $var10 & var$15;
                    var$18 = var$17 - 1 | 0;
                    var$14 = var$17 & var$18;
                    while (var$12 < 2) {
                        $var11 = 0;
                        if ($var11 < 3) {
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$16)
                                $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % $var10 | 0;
                                    if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$14)
                                $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % var$17 | 0;
                                    if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                            $ptr = 7;
                            continue main;
                        }
                        var$12 = var$12 + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var9 = nms_Block_mobSpawner.$blockID;
                    $var6 = 0;
                    $var11 = 2;
                    $ptr = 2;
                    continue main;
                }
                $var11_0 = var$15;
            }
            $var12_0 = var$17;
        }
        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
            $var6 = 0;
            $var11 = 0;
            $var9 = 3;
            $ptr = 11;
            continue main;
        }
        if ($var11_0 < 0) {
            $ptr = 4;
            continue main;
        }
        $var6 = $var11_0 - 1 | 0;
        $ptr = 5;
        continue main;
    case 9:
        $tmp = nms_World_getBlockId($par1World, $var10, $var6, $var12_0);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if ($var6 ? 0 : 1)
            $var9 = $var9 + 1 | 0;
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + 1 | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$16);
                if ($var14 <= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    if ($var9 >= 1 && $var9 <= 5) {
                        var$9 = Long_fromInt(4);
                        $var10 = var$12;
                        e: while (true) {
                            $var15 = $rt_compare($var10, $var12);
                            if ($var15 > 0) {
                                var$12 = 0;
                                $var10 = ($var7 * 2 | 0) + 1 | 0;
                                var$17 = ($var8 * 2 | 0) + 1 | 0;
                                var$6 = Long_fromInt(var$17);
                                var$21 = Long_fromInt($var10);
                                var$15 = $var10 - 1 | 0;
                                var$16 = $var10 & var$15;
                                var$18 = var$17 - 1 | 0;
                                var$14 = var$17 & var$18;
                                while (var$12 < 2) {
                                    $var11 = 0;
                                    if ($var11 < 3) {
                                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $par2Random.$seed = var$9;
                                        $var6 = Long_lo(Long_shru(var$9, var$7));
                                        if (!var$16)
                                            $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                                        else
                                            while (true) {
                                                $var9 = $var6 % $var10 | 0;
                                                if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                                    break;
                                                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$9;
                                                $var6 = Long_lo(Long_shru(var$9, var$7));
                                            }
                                        $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                        $par2Random.$seed = var$9;
                                        $var6 = Long_lo(Long_shru(var$9, var$7));
                                        if (!var$14)
                                            $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                                        else
                                            while (true) {
                                                $var9 = $var6 % var$17 | 0;
                                                if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                                    break;
                                                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                                $par2Random.$seed = var$9;
                                                $var6 = Long_lo(Long_shru(var$9, var$7));
                                            }
                                        $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                                        $ptr = 7;
                                        continue main;
                                    }
                                    var$12 = var$12 + 1 | 0;
                                }
                                nms_Block_$callClinit();
                                $var9 = nms_Block_mobSpawner.$blockID;
                                $var6 = 0;
                                $var11 = 2;
                                $ptr = 2;
                                continue main;
                            }
                            $var11_0 = var$15;
                            while (true) {
                                $var14 = $rt_compare($var11_0, var$14);
                                if ($var14 < 0)
                                    break;
                                $var12_0 = var$17;
                                $var6 = $rt_compare($var12_0, var$18);
                                if ($var6 <= 0)
                                    break e;
                                $var11_0 = $var11_0 + (-1) | 0;
                            }
                            $var10 = $var10 + 1 | 0;
                        }
                        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
                            $var6 = 0;
                            $var11 = 0;
                            $var9 = 3;
                            $ptr = 11;
                            continue main;
                        }
                        if ($var11_0 < 0) {
                            $ptr = 4;
                            continue main;
                        }
                        $var6 = $var11_0 - 1 | 0;
                        $ptr = 5;
                        continue main;
                    }
                    return 0;
                }
                $var11_0 = var$14;
            }
            $var12_0 = var$17;
        }
        $ptr = 1;
        continue main;
    case 10:
        nms_World_setBlock($par1World, $var10, $var11_0, $var12_0, $var6, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + (-1) | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$14);
                if ($var14 >= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    var$12 = 0;
                    $var10 = ($var7 * 2 | 0) + 1 | 0;
                    var$17 = ($var8 * 2 | 0) + 1 | 0;
                    var$6 = Long_fromInt(var$17);
                    var$21 = Long_fromInt($var10);
                    var$15 = $var10 - 1 | 0;
                    var$16 = $var10 & var$15;
                    var$18 = var$17 - 1 | 0;
                    var$14 = var$17 & var$18;
                    while (var$12 < 2) {
                        $var11 = 0;
                        if ($var11 < 3) {
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$16)
                                $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % $var10 | 0;
                                    if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$14)
                                $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % var$17 | 0;
                                    if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                            $ptr = 7;
                            continue main;
                        }
                        var$12 = var$12 + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var9 = nms_Block_mobSpawner.$blockID;
                    $var6 = 0;
                    $var11 = 2;
                    $ptr = 2;
                    continue main;
                }
                $var11_0 = var$15;
            }
            $var12_0 = var$17;
        }
        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
            $var6 = 0;
            $var11 = 0;
            $var9 = 3;
            $ptr = 11;
            continue main;
        }
        if ($var11_0 < 0) {
            $ptr = 4;
            continue main;
        }
        $var6 = $var11_0 - 1 | 0;
        $ptr = 5;
        continue main;
    case 11:
        nms_World_setBlock($par1World, $var10, $var11_0, $var12_0, $var6, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + (-1) | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$14);
                if ($var14 >= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    var$12 = 0;
                    $var10 = ($var7 * 2 | 0) + 1 | 0;
                    var$17 = ($var8 * 2 | 0) + 1 | 0;
                    var$6 = Long_fromInt(var$17);
                    var$21 = Long_fromInt($var10);
                    var$15 = $var10 - 1 | 0;
                    var$16 = $var10 & var$15;
                    var$18 = var$17 - 1 | 0;
                    var$14 = var$17 & var$18;
                    while (var$12 < 2) {
                        $var11 = 0;
                        if ($var11 < 3) {
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$16)
                                $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % $var10 | 0;
                                    if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$14)
                                $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % var$17 | 0;
                                    if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                            $ptr = 7;
                            continue main;
                        }
                        var$12 = var$12 + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var9 = nms_Block_mobSpawner.$blockID;
                    $var6 = 0;
                    $var11 = 2;
                    $ptr = 2;
                    continue main;
                }
                $var11_0 = var$15;
            }
            $var12_0 = var$17;
        }
        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
            $var6 = 0;
            $var11 = 0;
            $var9 = 3;
            continue main;
        }
        if ($var11_0 < 0) {
            $ptr = 4;
            continue main;
        }
        $var6 = $var11_0 - 1 | 0;
        $ptr = 5;
        continue main;
    case 12:
        $tmp = nms_World_getBlockId($par1World, $var6, $par4, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6) {
            nms_Material_$callClinit();
            $var13 = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if ($var13.$isSolid())
            $var15 = 1;
        $var6 = $var12 + 1 | 0;
        $ptr = 14;
        continue main;
    case 13:
        nms_World_setBlock($par1World, $var10, $var11_0, $var12_0, $var6, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        $var12_0 = $var12_0 + 1 | 0;
        while (true) {
            $var6 = $rt_compare($var12_0, var$18);
            if ($var6 <= 0)
                break;
            $var11_0 = $var11_0 + (-1) | 0;
            while (true) {
                $var14 = $rt_compare($var11_0, var$14);
                if ($var14 >= 0)
                    break;
                $var10 = $var10 + 1 | 0;
                $var15 = $rt_compare($var10, $var12);
                if ($var15 > 0) {
                    var$12 = 0;
                    $var10 = ($var7 * 2 | 0) + 1 | 0;
                    var$17 = ($var8 * 2 | 0) + 1 | 0;
                    var$6 = Long_fromInt(var$17);
                    var$21 = Long_fromInt($var10);
                    var$15 = $var10 - 1 | 0;
                    var$16 = $var10 & var$15;
                    var$18 = var$17 - 1 | 0;
                    var$14 = var$17 & var$18;
                    while (var$12 < 2) {
                        $var11 = 0;
                        if ($var11 < 3) {
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$16)
                                $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % $var10 | 0;
                                    if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                            var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$9;
                            $var6 = Long_lo(Long_shru(var$9, var$7));
                            if (!var$14)
                                $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                            else
                                while (true) {
                                    $var9 = $var6 % var$17 | 0;
                                    if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                                        break;
                                    var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                                    $par2Random.$seed = var$9;
                                    $var6 = Long_lo(Long_shru(var$9, var$7));
                                }
                            $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                            $ptr = 7;
                            continue main;
                        }
                        var$12 = var$12 + 1 | 0;
                    }
                    nms_Block_$callClinit();
                    $var9 = nms_Block_mobSpawner.$blockID;
                    $var6 = 0;
                    $var11 = 2;
                    $ptr = 2;
                    continue main;
                }
                $var11_0 = var$15;
            }
            $var12_0 = var$17;
        }
        if ($var10 != var$12 && $var14 && $var12_0 != var$17 && $var15 && $var11_0 != var$16 && $var6) {
            $var6 = 0;
            $var11 = 0;
            $var9 = 3;
            $ptr = 11;
            continue main;
        }
        if ($var11_0 < 0) {
            $ptr = 4;
            continue main;
        }
        $var6 = $var11_0 - 1 | 0;
        $ptr = 5;
        continue main;
    case 14:
        $tmp = nms_World_getBlockId($par1World, $var6, $par4, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var13 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if ($var13.$isSolid())
            $var15 = $var15 + 1 | 0;
        $var6 = $var14 - 1 | 0;
        $ptr = 15;
    case 15:
        $tmp = nms_World_getBlockId($par1World, $var12, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var13 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if ($var13.$isSolid())
            $var15 = $var15 + 1 | 0;
        $var6 = $var14 + 1 | 0;
        $ptr = 16;
    case 16:
        $tmp = nms_World_getBlockId($par1World, $var12, $par4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        if (!$var6)
            $var13 = nms_Material_air;
        else {
            nms_Block_$callClinit();
            $var13 = nms_Block_blocksList.data[$var6].$blockMaterial;
        }
        if ($var13.$isSolid())
            $var15 = $var15 + 1 | 0;
        if ($var15 == 1) {
            nms_Block_$callClinit();
            $var6 = nms_Block_chest.$blockID;
            $var11 = 0;
            $var9 = 2;
            $ptr = 17;
            continue main;
        }
        $var11 = $var11 + 1 | 0;
        while (true) {
            if ($var11 < 3) {
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$16)
                    $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % $var10 | 0;
                        if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$14)
                    $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % var$17 | 0;
                        if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                $ptr = 7;
                continue main;
            }
            var$12 = var$12 + 1 | 0;
            if (var$12 >= 2)
                break;
            $var11 = 0;
        }
        nms_Block_$callClinit();
        $var9 = nms_Block_mobSpawner.$blockID;
        $var6 = 0;
        $var11 = 2;
        $ptr = 2;
        continue main;
    case 17:
        nms_World_setBlock($par1World, $var12, $par4, $var14, $var6, $var11, $var9);
        if ($rt_suspending()) {
            break main;
        }
        nms_WorldGenDungeons_$callClinit();
        $var16 = nms_WorldGenDungeons_field_111189_a;
        var$30 = $rt_createArray(nms_WeightedRandomChestContent, 1);
        var$32 = var$30.data;
        nms_Item_$callClinit();
        var$32[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
        $var16 = nms_WeightedRandomChestContent_func_92080_a($var16, var$30);
        $ptr = 18;
    case 18:
        $tmp = nms_World_getBlockTileEntity($par1World, $var12, $par4, $var14);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = $tmp;
        $var17 = $var13;
        if ($var17 !== null) {
            $var6 = 8;
            $ptr = 19;
            continue main;
        }
        while (true) {
            var$12 = var$12 + 1 | 0;
            if (var$12 >= 2)
                break;
            $var11 = 0;
            if ($var11 >= 3)
                continue;
            else {
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$16)
                    $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % $var10 | 0;
                        if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$14)
                    $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % var$17 | 0;
                        if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                $ptr = 7;
                continue main;
            }
        }
        nms_Block_$callClinit();
        $var9 = nms_Block_mobSpawner.$blockID;
        $var6 = 0;
        $var11 = 2;
        $ptr = 2;
        continue main;
    case 19:
        nms_WeightedRandomChestContent_generateChestContents($par2Random, $var16, $var17, $var6);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            var$12 = var$12 + 1 | 0;
            if (var$12 >= 2)
                break;
            $var11 = 0;
            if ($var11 >= 3)
                continue;
            else {
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$16)
                    $var9 = Long_lo(Long_shr(Long_mul(var$21, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % $var10 | 0;
                        if ((($var6 - $var9 | 0) + var$15 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var12 = ($par3 + $var9 | 0) - $var7 | 0;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $var6 = Long_lo(Long_shru(var$9, var$7));
                if (!var$14)
                    $var9 = Long_lo(Long_shr(Long_mul(var$6, Long_fromInt($var6)), 31));
                else
                    while (true) {
                        $var9 = $var6 % var$17 | 0;
                        if ((($var6 - $var9 | 0) + var$18 | 0) >= 0)
                            break;
                        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$9;
                        $var6 = Long_lo(Long_shru(var$9, var$7));
                    }
                $var14 = ($par5 + $var9 | 0) - $var8 | 0;
                $ptr = 7;
                continue main;
            }
        }
        nms_Block_$callClinit();
        $var9 = nms_Block_mobSpawner.$blockID;
        $var6 = 0;
        $var11 = 2;
        $ptr = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, $par5, var$6, var$7, $var7, var$9, $var8, $var9, var$12, $var12, var$14, var$15, var$16, var$17, var$18, $var10, $var15, var$21, $var11, $var6, $var14, $var11_0, $var12_0, $var13, $var18, $var16, var$30, var$31, var$32, $var17, $ptr);
},
nms_WorldGenDungeons_pickMobSpawner = ($this, $par1Random) => {
    let var$2, $var2;
    var$2 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$2;
    $var2 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$2, 17)))), 31));
    return !$var2 ? $rt_s(2528) : $var2 == 1 ? $rt_s(2531) : $var2 == 2 ? $rt_s(2531) : $var2 != 3 ? $rt_s(3) : $rt_s(2529);
},
nms_WorldGenDungeons__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $rt_createArray(nms_WeightedRandomChestContent, 15);
    var$2 = var$1.data;
    var$3 = new nms_WeightedRandomChestContent;
    nms_Item_$callClinit();
    var$4 = nms_Item_saddle.$itemID0;
    var$3.$itemWeight = 10;
    var$5 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    var$5.$itemID = var$4;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[0] = var$3;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_ingotIron.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 4;
    var$2[1] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_bread.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[2] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_wheat.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 4;
    var$2[3] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_gunpowder.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 4;
    var$2[4] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_silk.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 4;
    var$2[5] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_bucketEmpty.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[6] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_appleGold.$itemID0;
    var$5.$itemWeight = 1;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[7] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_redstone.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 4;
    var$2[8] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_record13.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$7;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[9] = var$5;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_recordCat.$itemID0;
    var$3.$itemWeight = 10;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[10] = var$3;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_nameTag.$itemID0;
    var$3.$itemWeight = 10;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[11] = var$3;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_horseArmorGold.$itemID0;
    var$3.$itemWeight = 2;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[12] = var$3;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_horseArmorIron.$itemID0;
    var$3.$itemWeight = 5;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[13] = var$3;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_horseArmorDiamond.$itemID0;
    var$3.$itemWeight = 1;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[14] = var$3;
    nms_WorldGenDungeons_field_111189_a = var$1;
},
nms_ItemMap$getMapData$lambda$_2_0 = $rt_classWithoutFields(),
nms_ItemMap$getMapData$lambda$_2_0__init_ = var$0 => {
    return;
},
nms_ItemMap$getMapData$lambda$_2_0__init_0 = () => {
    let var_0 = new nms_ItemMap$getMapData$lambda$_2_0();
    nms_ItemMap$getMapData$lambda$_2_0__init_(var_0);
    return var_0;
},
nms_ItemMap$getMapData$lambda$_2_0_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5;
    var$2 = new nms_MapData;
    var$2.$mapName = var$1;
    var$2.$colors = $rt_createByteArray(16384);
    var$1 = new ju_ArrayList;
    var$1.$array = $rt_createArray(jl_Object, 10);
    var$2.$playersArrayList = var$1;
    var$1 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    var$2.$playersHashMap = var$1;
    var$1 = new ju_LinkedHashMap;
    jl_Object__init_(var$1);
    var$3 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$4 = $rt_createArray(ju_LinkedHashMap$LinkedHashMapEntry, var$3);
    var$5 = var$4.data;
    var$1.$elementData = var$4;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$5.length * 0.75 | 0;
    var$1.$accessOrder = 0;
    var$1.$head = null;
    var$2.$playersVisibleOnMap = var$1;
    return var$2;
};
function nms_EntitySelectorArmoredMob() {
    jl_Object.call(this);
    this.$field_96567_c = null;
}
let nms_EntitySelectorArmoredMob_isEntityApplicable = ($this, $par1Entity) => {
    let $var2;
    if (!$par1Entity.$isEntityAlive())
        return 0;
    if (!($par1Entity instanceof nms_EntityLivingBase))
        return 0;
    $var2 = $par1Entity;
    return $var2.$getCurrentItemOrArmor(nms_EntityLiving_getArmorPosition($this.$field_96567_c)) !== null ? 0 : !($var2 instanceof nms_EntityLiving) ? $var2 instanceof nms_EntityPlayer : $var2.$canPickUpLoot;
};
function nms_DispenserBehaviorPotionProjectile() {
    let a = this; nms_BehaviorProjectileDispense.call(a);
    a.$potionItemStack = null;
    a.$dispenserPotionBehavior = null;
}
let nms_DispenserBehaviorPotionProjectile_getProjectileEntity = ($this, $par1World, $par2IPosition) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2IPosition = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = new nms_EntityPotion;
        var$4 = $par2IPosition.$x0;
        var$5 = $par2IPosition.$y0;
        var$6 = $par2IPosition.$z3;
        $par2IPosition = $this.$potionItemStack;
        var$7 = new nms_ItemStack;
        var$8 = $par2IPosition.$itemID;
        var$9 = $par2IPosition.$stackSize;
        var$10 = $par2IPosition.$itemDamage;
        nms_ItemStack_$callClinit();
        var$7.$itemID = var$8;
        var$7.$stackSize = var$9;
        var$7.$itemDamage = var$10;
        if (var$10 < 0)
            var$7.$itemDamage = 0;
        $par2IPosition = $par2IPosition.$stackTagCompound;
        if ($par2IPosition !== null) {
            var$11 = new nms_NBTTagCompound;
            var$12 = $par2IPosition.$name;
            if (var$12 === null)
                var$12 = $rt_s(3);
            var$11.$name = var$12;
            var$12 = new ju_HashMap;
            var$8 = ju_HashMap_calculateCapacity(16);
            var$12.$elementCount = 0;
            var$13 = $rt_createArray(ju_HashMap$HashEntry, var$8);
            var$14 = var$13.data;
            var$12.$elementData = var$13;
            var$12.$loadFactor = 0.75;
            var$12.$threshold = var$14.length * 0.75 | 0;
            var$11.$tagMap = var$12;
            var$15 = $par2IPosition.$tagMap;
            if (var$15.$cachedKeySet === null) {
                var$12 = new ju_HashMap$1;
                var$12.$this$0 = var$15;
                var$15.$cachedKeySet = var$12;
            }
            var$15 = var$15.$cachedKeySet.$iterator();
            while (var$15.$hasNext()) {
                var$16 = var$15.$next();
                var$12 = $par2IPosition.$tagMap;
                if (var$16 === null) {
                    var$17 = var$12.$elementData.data[0];
                    while (var$17 !== null && var$17.$key !== null) {
                        var$17 = var$17.$next3;
                    }
                } else {
                    a: {
                        if (!var$16.$hashCode1) {
                            var$8 = 0;
                            while (true) {
                                if (var$8 >= var$16.$nativeString.length)
                                    break a;
                                var$16.$hashCode1 = (31 * var$16.$hashCode1 | 0) + var$16.$nativeString.charCodeAt(var$8) | 0;
                                var$8 = var$8 + 1 | 0;
                            }
                        }
                    }
                    var$9 = var$16.$hashCode1;
                    var$14 = var$12.$elementData.data;
                    var$17 = var$14[var$9 & (var$14.length - 1 | 0)];
                    while (var$17 !== null) {
                        if (var$17.$origKeyHash == var$9) {
                            b: {
                                var$12 = var$17.$key;
                                if (var$16 !== var$12) {
                                    if (var$16 === var$12)
                                        var$8 = 1;
                                    else if (!(var$12 instanceof jl_String))
                                        var$8 = 0;
                                    else {
                                        var$12 = var$12;
                                        var$8 = var$16.$nativeString !== var$12.$nativeString ? 0 : 1;
                                    }
                                    if (!var$8) {
                                        var$8 = 0;
                                        break b;
                                    }
                                }
                                var$8 = 1;
                            }
                            if (var$8)
                                break;
                        }
                        var$17 = var$17.$next3;
                    }
                }
                var$12 = var$17 === null ? null : var$17.$value0;
                var$12 = var$12.$copy();
                var$17 = var$11.$tagMap;
                if (var$16 !== null)
                    var$12.$name = var$16;
                else
                    var$12.$name = $rt_s(3);
                ju_HashMap_putImpl(var$17, var$16, var$12);
            }
            var$7.$stackTagCompound = var$11;
        }
        nms_Entity__init_(var$3, $par1World);
        var$3.$xTile0 = (-1);
        var$3.$yTile0 = (-1);
        var$3.$zTile0 = (-1);
        var$3.$ticksInGround = 0;
        var$18 = 0.25;
        var$19 = 0.25;
        $ptr = 1;
    case 1:
        nms_Entity_setSize(var$3, var$18, var$19);
        if ($rt_suspending()) {
            break main;
        }
        nms_Entity_setPosition(var$3, var$4, var$5, var$6);
        var$3.$yOffset = 0.0;
        var$3.$potionDamage = var$7;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2IPosition, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, $ptr);
},
nms_DispenserBehaviorPotionProjectile_func_82498_a = $this => {
    return 3.0;
},
nms_DispenserBehaviorPotionProjectile_func_82500_b = $this => {
    return 1.375;
};
function nms_ContainerChest() {
    let a = this; nms_Container.call(a);
    a.$lowerChestInventory = null;
    a.$numRows = 0;
}
let nms_ContainerChest__init_ = ($this, $par1IInventory, $par2IInventory) => {
    let var$3, var$4, $var3, var$6, var$7, $var4, $var5, var$10, $var5_0, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();$var5_0 = $thread.pop();var$10 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();$par2IInventory = $thread.pop();$par1IInventory = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $this.$inventoryItemStacks = var$3;
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $this.$inventorySlots = var$3;
        $this.$field_94535_f = (-1);
        var$3 = new ju_HashSet;
        var$4 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$backingMap = var$4;
        $this.$field_94537_h = var$3;
        var$3 = new ju_ArrayList;
        var$3.$array = $rt_createArray(jl_Object, 10);
        $this.$crafters = var$3;
        var$3 = new ju_HashSet;
        var$4 = new ju_HashMap;
        $var3 = ju_HashMap_calculateCapacity(16);
        var$4.$elementCount = 0;
        var$6 = $rt_createArray(ju_HashMap$HashEntry, $var3);
        var$7 = var$6.data;
        var$4.$elementData = var$6;
        var$4.$loadFactor = 0.75;
        var$4.$threshold = var$7.length * 0.75 | 0;
        var$3.$backingMap = var$4;
        $this.$playerList = var$3;
        $this.$lowerChestInventory = $par2IInventory;
        $this.$numRows = $par2IInventory.$getSizeInventory() / 9 | 0;
        $ptr = 1;
    case 1:
        $par2IInventory.$openChest();
        if ($rt_suspending()) {
            break main;
        }
        $var3 = ($this.$numRows - 4 | 0) * 18 | 0;
        $var4 = 0;
        while ($var4 < $this.$numRows) {
            $var5 = 0;
            while ($var5 < 9) {
                var$3 = new nms_Slot;
                var$10 = $var5 + ($var4 * 9 | 0) | 0;
                $var5_0 = 8 + ($var5 * 18 | 0) | 0;
                var$12 = 18 + ($var4 * 18 | 0) | 0;
                var$3.$inventory = $par2IInventory;
                var$3.$slotIndex = var$10;
                var$3.$xDisplayPosition = $var5_0;
                var$3.$yDisplayPosition = var$12;
                var$4 = $this.$inventorySlots;
                $var5_0 = var$4.$size0;
                var$3.$slotNumber = $var5_0;
                ju_ArrayList_ensureCapacity(var$4, $var5_0 + 1 | 0);
                var$7 = var$4.$array.data;
                $var5_0 = var$4.$size0;
                var$4.$size0 = $var5_0 + 1 | 0;
                var$7[$var5_0] = var$3;
                var$4.$modCount = var$4.$modCount + 1 | 0;
                var$3 = $this.$inventoryItemStacks;
                var$4 = null;
                ju_ArrayList_ensureCapacity(var$3, var$3.$size0 + 1 | 0);
                var$7 = var$3.$array.data;
                $var5_0 = var$3.$size0;
                var$3.$size0 = $var5_0 + 1 | 0;
                var$7[$var5_0] = var$4;
                var$3.$modCount = var$3.$modCount + 1 | 0;
                $var5 = $var5 + 1 | 0;
            }
            $var4 = $var4 + 1 | 0;
        }
        $var5 = 0;
        while ($var5 < 3) {
            $var5_0 = 0;
            while ($var5_0 < 9) {
                var$3 = new nms_Slot;
                var$10 = ($var5_0 + ($var5 * 9 | 0) | 0) + 9 | 0;
                var$12 = 8 + ($var5_0 * 18 | 0) | 0;
                $var4 = (103 + ($var5 * 18 | 0) | 0) + $var3 | 0;
                var$3.$inventory = $par1IInventory;
                var$3.$slotIndex = var$10;
                var$3.$xDisplayPosition = var$12;
                var$3.$yDisplayPosition = $var4;
                $par2IInventory = $this.$inventorySlots;
                var$10 = $par2IInventory.$size0;
                var$3.$slotNumber = var$10;
                ju_ArrayList_ensureCapacity($par2IInventory, var$10 + 1 | 0);
                var$7 = $par2IInventory.$array.data;
                var$10 = $par2IInventory.$size0;
                $par2IInventory.$size0 = var$10 + 1 | 0;
                var$7[var$10] = var$3;
                $par2IInventory.$modCount = $par2IInventory.$modCount + 1 | 0;
                $par2IInventory = $this.$inventoryItemStacks;
                var$3 = null;
                ju_ArrayList_ensureCapacity($par2IInventory, $par2IInventory.$size0 + 1 | 0);
                var$7 = $par2IInventory.$array.data;
                var$10 = $par2IInventory.$size0;
                $par2IInventory.$size0 = var$10 + 1 | 0;
                var$7[var$10] = var$3;
                $par2IInventory.$modCount = $par2IInventory.$modCount + 1 | 0;
                $var5_0 = $var5_0 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        $var5 = 0;
        var$10 = 161 + $var3 | 0;
        while ($var5 < 9) {
            $par2IInventory = new nms_Slot;
            $var3 = 8 + ($var5 * 18 | 0) | 0;
            $par2IInventory.$inventory = $par1IInventory;
            $par2IInventory.$slotIndex = $var5;
            $par2IInventory.$xDisplayPosition = $var3;
            $par2IInventory.$yDisplayPosition = var$10;
            var$3 = $this.$inventorySlots;
            $var4 = var$3.$size0;
            $par2IInventory.$slotNumber = $var4;
            ju_ArrayList_ensureCapacity(var$3, $var4 + 1 | 0);
            var$7 = var$3.$array.data;
            $var4 = var$3.$size0;
            var$3.$size0 = $var4 + 1 | 0;
            var$7[$var4] = $par2IInventory;
            var$3.$modCount = var$3.$modCount + 1 | 0;
            $par2IInventory = $this.$inventoryItemStacks;
            var$3 = null;
            ju_ArrayList_ensureCapacity($par2IInventory, $par2IInventory.$size0 + 1 | 0);
            var$7 = $par2IInventory.$array.data;
            $var4 = $par2IInventory.$size0;
            $par2IInventory.$size0 = $var4 + 1 | 0;
            var$7[$var4] = var$3;
            $par2IInventory.$modCount = $par2IInventory.$modCount + 1 | 0;
            $var5 = $var5 + 1 | 0;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1IInventory, $par2IInventory, var$3, var$4, $var3, var$6, var$7, $var4, $var5, var$10, $var5_0, var$12, $ptr);
},
nms_ContainerChest__init_0 = (var_0, var_1) => {
    let var_2 = new nms_ContainerChest();
    nms_ContainerChest__init_(var_2, var_0, var_1);
    return var_2;
},
nms_ContainerChest_canInteractWith = ($this, $par1EntityPlayer) => {
    let var$2, var$3, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $this.$lowerChestInventory;
        $ptr = 1;
    case 1:
        $tmp = var$2.$isUseableByPlayer($par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        return var$3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, $ptr);
},
nms_ContainerChest_transferStackInSlot = ($this, $par1EntityPlayer, $par2) => {
    let $var3, $var4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = null;
        $par1EntityPlayer = $this.$inventorySlots;
        if ($par2 >= 0 && $par2 < $par1EntityPlayer.$size0) {
            $var4 = $par1EntityPlayer.$array.data[$par2];
            if ($var4 !== null && ($var4.$inventory.$getStackInSlot($var4.$slotIndex) === null ? 0 : 1)) {
                $var5 = $var4.$inventory.$getStackInSlot($var4.$slotIndex);
                $var3 = new nms_ItemStack;
                var$6 = $var5.$itemID;
                var$7 = $var5.$stackSize;
                var$8 = $var5.$itemDamage;
                nms_ItemStack_$callClinit();
                $var3.$itemID = var$6;
                $var3.$stackSize = var$7;
                $var3.$itemDamage = var$8;
                if (var$8 < 0)
                    $var3.$itemDamage = 0;
                var$9 = $var5.$stackTagCompound;
                if (var$9 !== null) {
                    var$10 = new nms_NBTTagCompound;
                    $par1EntityPlayer = var$9.$name;
                    if ($par1EntityPlayer === null)
                        $par1EntityPlayer = $rt_s(3);
                    var$10.$name = $par1EntityPlayer;
                    $par1EntityPlayer = new ju_HashMap;
                    var$6 = ju_HashMap_calculateCapacity(16);
                    $par1EntityPlayer.$elementCount = 0;
                    var$11 = $rt_createArray(ju_HashMap$HashEntry, var$6);
                    var$12 = var$11.data;
                    $par1EntityPlayer.$elementData = var$11;
                    $par1EntityPlayer.$loadFactor = 0.75;
                    $par1EntityPlayer.$threshold = var$12.length * 0.75 | 0;
                    var$10.$tagMap = $par1EntityPlayer;
                    var$13 = var$9.$tagMap;
                    if (var$13.$cachedKeySet === null) {
                        $par1EntityPlayer = new ju_HashMap$1;
                        $par1EntityPlayer.$this$0 = var$13;
                        var$13.$cachedKeySet = $par1EntityPlayer;
                    }
                    var$14 = var$13.$cachedKeySet.$iterator();
                    while (var$14.$hasNext()) {
                        var$15 = var$14.$next();
                        $par1EntityPlayer = var$9.$tagMap;
                        if (var$15 === null) {
                            $par1EntityPlayer = $par1EntityPlayer.$elementData.data[0];
                            while ($par1EntityPlayer !== null && $par1EntityPlayer.$key !== null) {
                                $par1EntityPlayer = $par1EntityPlayer.$next3;
                            }
                        } else {
                            a: {
                                if (!var$15.$hashCode1) {
                                    var$7 = 0;
                                    while (true) {
                                        if (var$7 >= var$15.$nativeString.length)
                                            break a;
                                        var$15.$hashCode1 = (31 * var$15.$hashCode1 | 0) + var$15.$nativeString.charCodeAt(var$7) | 0;
                                        var$7 = var$7 + 1 | 0;
                                    }
                                }
                            }
                            var$7 = var$15.$hashCode1;
                            var$12 = $par1EntityPlayer.$elementData.data;
                            $par1EntityPlayer = var$12[var$7 & (var$12.length - 1 | 0)];
                            while ($par1EntityPlayer !== null) {
                                if ($par1EntityPlayer.$origKeyHash == var$7) {
                                    b: {
                                        var$13 = $par1EntityPlayer.$key;
                                        if (var$15 !== var$13) {
                                            if (var$15 === var$13)
                                                var$6 = 1;
                                            else if (!(var$13 instanceof jl_String))
                                                var$6 = 0;
                                            else {
                                                var$13 = var$13;
                                                var$6 = var$15.$nativeString !== var$13.$nativeString ? 0 : 1;
                                            }
                                            if (!var$6) {
                                                var$6 = 0;
                                                break b;
                                            }
                                        }
                                        var$6 = 1;
                                    }
                                    if (var$6)
                                        break;
                                }
                                $par1EntityPlayer = $par1EntityPlayer.$next3;
                            }
                        }
                        $par1EntityPlayer = $par1EntityPlayer === null ? null : $par1EntityPlayer.$value0;
                        $par1EntityPlayer = $par1EntityPlayer.$copy();
                        var$13 = var$10.$tagMap;
                        if (var$15 !== null)
                            $par1EntityPlayer.$name = var$15;
                        else
                            $par1EntityPlayer.$name = $rt_s(3);
                        ju_HashMap_putImpl(var$13, var$15, $par1EntityPlayer);
                    }
                    $var3.$stackTagCompound = var$10;
                }
                var$6 = $this.$numRows * 9 | 0;
                if ($par2 >= var$6) {
                    $par2 = 0;
                    var$7 = 0;
                    $ptr = 1;
                    continue main;
                }
                var$7 = $this.$inventorySlots.$size0;
                $par2 = 1;
                $ptr = 2;
                continue main;
            }
            return $var3;
        }
        $par1EntityPlayer = new jl_IndexOutOfBoundsException;
        $par1EntityPlayer.$suppressionEnabled = 1;
        $par1EntityPlayer.$writableStackTrace = 1;
        $rt_throw($par1EntityPlayer);
    case 1:
        $tmp = nms_Container_mergeItemStack($this, $var5, $par2, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            $par1EntityPlayer = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        $par1EntityPlayer = null;
        var$13 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 2:
        $tmp = nms_Container_mergeItemStack($this, $var5, var$6, var$7, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        if (!$par2)
            return null;
        if ($var5.$stackSize) {
            $par1EntityPlayer = $var4.$inventory;
            $ptr = 3;
            continue main;
        }
        $par1EntityPlayer = null;
        var$13 = $var4.$inventory;
        $par2 = $var4.$slotIndex;
        $ptr = 4;
        continue main;
    case 3:
        $par1EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    case 4:
        var$13.$setInventorySlotContents($par2, $par1EntityPlayer);
        if ($rt_suspending()) {
            break main;
        }
        $par1EntityPlayer = $var4.$inventory;
        $ptr = 5;
    case 5:
        $par1EntityPlayer.$onInventoryChanged();
        if ($rt_suspending()) {
            break main;
        }
        return $var3;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, $par2, $var3, $var4, $var5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_ContainerChest_onContainerClosed = ($this, $par1EntityPlayer) => {
    let var$2, var$3, var$4, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$4 = $thread.pop();var$3 = $thread.pop();var$2 = $thread.pop();$par1EntityPlayer = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$2 = $par1EntityPlayer.$inventory0;
        var$3 = var$2.$itemStack;
        if (var$3 === null) {
            $par1EntityPlayer = $this.$lowerChestInventory;
            $ptr = 1;
            continue main;
        }
        var$4 = 0;
        $ptr = 2;
        continue main;
    case 1:
        $par1EntityPlayer.$closeChest();
        if ($rt_suspending()) {
            break main;
        }
        return;
    case 2:
        nms_EntityPlayer_dropPlayerItemWithRandomChoice($par1EntityPlayer, var$3, var$4);
        if ($rt_suspending()) {
            break main;
        }
        var$2.$itemStack = null;
        $par1EntityPlayer = $this.$lowerChestInventory;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1EntityPlayer, var$2, var$3, var$4, $ptr);
},
nms_MapGenStructure$func_143027_a$lambda$_9_0 = $rt_classWithoutFields(),
nms_MapGenStructure$func_143027_a$lambda$_9_0__init_ = var$0 => {
    return;
},
nms_MapGenStructure$func_143027_a$lambda$_9_0__init_0 = () => {
    let var_0 = new nms_MapGenStructure$func_143027_a$lambda$_9_0();
    nms_MapGenStructure$func_143027_a$lambda$_9_0__init_(var_0);
    return var_0;
},
nms_MapGenStructure$func_143027_a$lambda$_9_0_apply = (var$0, var$1) => {
    let var$2, var$3, var$4, var$5, var$6;
    var$2 = new nms_MapGenStructureData;
    var$2.$mapName = var$1;
    var$3 = new nms_NBTTagCompound;
    var$3.$name = $rt_s(2381);
    var$1 = new ju_HashMap;
    jl_Object__init_(var$1);
    var$4 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$5 = $rt_createArray(ju_HashMap$HashEntry, var$4);
    var$6 = var$5.data;
    var$1.$elementData = var$5;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$6.length * 0.75 | 0;
    var$3.$tagMap = var$1;
    var$2.$field_143044_a = var$3;
    return var$2;
};
function nms_MapGenStructureData() {
    nms_WorldSavedData.call(this);
    this.$field_143044_a = null;
}
let nms_MapGenStructureData_readFromNBT = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2381).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2381).$nativeString.length)
                    break a;
                $rt_s(2381).$hashCode1 = (31 * $rt_s(2381).$hashCode1 | 0) + $rt_s(2381).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(2381).$hashCode1;
    var$4 = var$2.$elementData.data;
    var$2 = var$4[var$3 & (var$4.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            b: {
                var$5 = var$2.$key;
                if ($rt_s(2381) !== var$5) {
                    if ($rt_s(2381) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2381).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1)) {
        $par1NBTTagCompound = new nms_NBTTagCompound;
        if ($rt_s(2381) !== null)
            $par1NBTTagCompound.$name = $rt_s(2381);
        else
            $par1NBTTagCompound.$name = $rt_s(3);
        var$7 = new ju_HashMap;
        var$3 = ju_HashMap_calculateCapacity(16);
        var$7.$elementCount = 0;
        var$8 = $rt_createArray(ju_HashMap$HashEntry, var$3);
        var$4 = var$8.data;
        var$7.$elementData = var$8;
        var$7.$loadFactor = 0.75;
        var$7.$threshold = var$4.length * 0.75 | 0;
        $par1NBTTagCompound.$tagMap = var$7;
    } else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2381) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2381).$hashCode1) {
                    var$9 = 0;
                    while (true) {
                        if (var$9 >= $rt_s(2381).$nativeString.length)
                            break c;
                        $rt_s(2381).$hashCode1 = (31 * $rt_s(2381).$hashCode1 | 0) + $rt_s(2381).$nativeString.charCodeAt(var$9) | 0;
                        var$9 = var$9 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2381).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$4[var$3 & (var$4.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$3) {
                    d: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2381) !== var$2) {
                            if ($rt_s(2381) === var$2)
                                var$6 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$6 = 0;
                            else {
                                var$2 = var$2;
                                var$6 = $rt_s(2381).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        $par1NBTTagCompound = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
    }
    $this.$field_143044_a = $par1NBTTagCompound;
},
nms_MapGenStructureData_writeToNBT = ($this, $par1NBTTagCompound) => {
    let var$2;
    var$2 = $this.$field_143044_a;
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    var$2.$name = $rt_s(2381);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2381), var$2);
},
nms_MapGenStructureIO = $rt_classWithoutFields(),
nms_MapGenStructureIO_field_143040_a = null,
nms_MapGenStructureIO_field_143038_b = null,
nms_MapGenStructureIO_field_143039_c = null,
nms_MapGenStructureIO_field_143037_d = null,
nms_MapGenStructureIO_$callClinit = () => {
    nms_MapGenStructureIO_$callClinit = $rt_eraseClinit(nms_MapGenStructureIO);
    nms_MapGenStructureIO__clinit_();
},
nms_MapGenStructureIO__init_ = $this => {
    nms_MapGenStructureIO_$callClinit();
},
nms_MapGenStructureIO__init_0 = () => {
    let var_0 = new nms_MapGenStructureIO();
    nms_MapGenStructureIO__init_(var_0);
    return var_0;
},
nms_MapGenStructureIO_func_143035_a = ($par0NBTTagCompound, $par1World) => {
    let $var2, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$par1World = $thread.pop();$par0NBTTagCompound = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_MapGenStructureIO_$callClinit();
        $var2 = null;
        a: {
            try {
                var$4 = $var2;
                $var3 = ju_HashMap_get(nms_MapGenStructureIO_field_143040_a, nms_NBTTagCompound_getString($par0NBTTagCompound, $rt_s(914)));
                if ($var3 === null)
                    break a;
                var$4 = $var2;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_outCache === null) {
                $var2 = new otcic_JSStdoutPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                $var2.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_Object__init_($var3);
                $var3.$buffer = $rt_createCharArray(16);
                $var2.$sb = $var3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $var2;
            }
            b: {
                $var2 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break b;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(914).$hashCode1;
            var$9 = $var2.$elementData.data;
            $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    c: {
                        $var3 = $var2.$key;
                        if ($rt_s(914) !== $var3) {
                            if ($rt_s(914) === $var3)
                                var$7 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$7 = 0;
                            else {
                                $var3 = $var3;
                                var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break c;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var2 = $rt_s(3);
            else {
                $var2 = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    d: {
                        if (!$rt_s(914).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(914).$nativeString.length)
                                    break d;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(914).$hashCode1;
                    var$9 = $var2.$elementData.data;
                    $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$8) {
                            e: {
                                $var3 = $var2.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$7 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break e;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var2 = ($var2 === null ? null : $var2.$value0).$data1;
            }
            $var3 = new jl_StringBuilder;
            $var3.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2726));
            var$7 = $var3.$length0;
            if ($var2 === null)
                $var2 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var3, var$7, $var2);
            $var2 = new jl_String;
            var$9 = $var3.$buffer;
            var$10 = var$9.data;
            var$11 = $var3.$length0;
            var$8 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                $rt_putStdout($rt_ustr($var2));
                $rt_putStdout("\n");
                if (jl_System_errCache === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    $var2 = new ji_ByteArrayOutputStream;
                    $var2.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var3);
                    $var3.$out0 = $var2;
                    $var2 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var2, 16);
                    $var3.$sb = $var2;
                    $var3.$buffer0 = $rt_createCharArray(32);
                    $var3.$autoFlush = 0;
                    $var3.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var3;
                }
                jl_Throwable_printStackTrace($var4, jl_System_errCache);
                $var2 = var$4;
            } else {
                $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par0NBTTagCompound.$suppressionEnabled = 1;
                $par0NBTTagCompound.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0NBTTagCompound);
                $rt_throw($par0NBTTagCompound);
            }
        }
        if ($var2 === null) {
            if (jl_System_outCache === null) {
                $par1World = new otcic_JSStdoutPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_Object__init_($var3);
                $var3.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $var3;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $par1World;
            }
            f: {
                $var3 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break f;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(914).$hashCode1;
            var$9 = $var3.$elementData.data;
            $var3 = var$9[var$7 & (var$9.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$7) {
                    g: {
                        $var4 = $var3.$key;
                        if ($rt_s(914) !== $var4) {
                            if ($rt_s(914) === $var4)
                                var$11 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$11 = 0;
                            else {
                                $var4 = $var4;
                                var$11 = $rt_s(914).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$11) {
                                var$11 = 0;
                                break g;
                            }
                        }
                        var$11 = 1;
                    }
                    if (var$11)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                $var3 = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $par0NBTTagCompound = $par0NBTTagCompound.$elementData.data[0];
                    while ($par0NBTTagCompound !== null && $par0NBTTagCompound.$key !== null) {
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                } else {
                    h: {
                        if (!$rt_s(914).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(914).$nativeString.length)
                                    break h;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(914).$hashCode1;
                    var$9 = $par0NBTTagCompound.$elementData.data;
                    $par0NBTTagCompound = var$9[var$7 & (var$9.length - 1 | 0)];
                    while ($par0NBTTagCompound !== null) {
                        if ($par0NBTTagCompound.$origKeyHash == var$7) {
                            i: {
                                $var3 = $par0NBTTagCompound.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$11 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$11 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$11 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$11) {
                                        var$11 = 0;
                                        break i;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(2727));
            var$7 = $par0NBTTagCompound.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$7, $var3);
            $par1World = new jl_String;
            var$9 = $par0NBTTagCompound.$buffer;
            var$10 = var$9.data;
            var$11 = $par0NBTTagCompound.$length0;
            var$8 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                $par1World.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                $rt_putStdout($rt_ustr($par1World));
                $rt_putStdout("\n");
                return $var2;
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par0NBTTagCompound);
            $rt_throw($par0NBTTagCompound);
        }
        $ptr = 2;
        continue main;
    case 1:
        a: {
            j: {
                try {
                    $tmp = jl_Class_newInstance($var3);
                    if ($rt_suspending()) {
                        break main;
                    }
                    $var2 = $tmp;
                    $var2 = $var2;
                    var$4 = $var2;
                    break j;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var4 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_outCache === null) {
                    $var2 = new otcic_JSStdoutPrintStream;
                    $var3 = new ji_ByteArrayOutputStream;
                    $var3.$buf = $rt_createByteArray(32);
                    $var2.$out0 = $var3;
                    $var3 = new jl_StringBuilder;
                    jl_Object__init_($var3);
                    $var3.$buffer = $rt_createCharArray(16);
                    $var2.$sb = $var3;
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_outCache = $var2;
                }
                b: {
                    $var2 = $par0NBTTagCompound.$tagMap;
                    if (!$rt_s(914).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(914).$nativeString.length)
                                break b;
                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(914).$hashCode1;
                var$9 = $var2.$elementData.data;
                $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$8) {
                        c: {
                            $var3 = $var2.$key;
                            if ($rt_s(914) !== $var3) {
                                if ($rt_s(914) === $var3)
                                    var$7 = 1;
                                else if (!($var3 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    $var3 = $var3;
                                    var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break c;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1))
                    $var2 = $rt_s(3);
                else {
                    $var2 = $par0NBTTagCompound.$tagMap;
                    if ($rt_s(914) === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        d: {
                            if (!$rt_s(914).$hashCode1) {
                                var$7 = 0;
                                while (true) {
                                    if (var$7 >= $rt_s(914).$nativeString.length)
                                        break d;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                    var$7 = var$7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(914).$hashCode1;
                        var$9 = $var2.$elementData.data;
                        $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$8) {
                                e: {
                                    $var3 = $var2.$key;
                                    if ($rt_s(914) !== $var3) {
                                        if ($rt_s(914) === $var3)
                                            var$7 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break e;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = ($var2 === null ? null : $var2.$value0).$data1;
                }
                $var3 = new jl_StringBuilder;
                $var3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2726));
                var$7 = $var3.$length0;
                if ($var2 === null)
                    $var2 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var3, var$7, $var2);
                $var2 = new jl_String;
                var$9 = $var3.$buffer;
                var$10 = var$9.data;
                var$11 = $var3.$length0;
                var$8 = var$10.length;
                if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                    $var2.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                    $rt_putStdout($rt_ustr($var2));
                    $rt_putStdout("\n");
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        $var2 = new ji_ByteArrayOutputStream;
                        $var2.$buf = $rt_createByteArray(32);
                        jl_Object__init_($var3);
                        $var3.$out0 = $var2;
                        $var2 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0($var2, 16);
                        $var3.$sb = $var2;
                        $var3.$buffer0 = $rt_createCharArray(32);
                        $var3.$autoFlush = 0;
                        $var3.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace($var4, jl_System_errCache);
                    $var2 = var$4;
                    break a;
                }
                $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par0NBTTagCompound.$suppressionEnabled = 1;
                $par0NBTTagCompound.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0NBTTagCompound);
                $rt_throw($par0NBTTagCompound);
            }
        }
        if ($var2 === null) {
            if (jl_System_outCache === null) {
                $par1World = new otcic_JSStdoutPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_Object__init_($var3);
                $var3.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $var3;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $par1World;
            }
            f: {
                $var3 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break f;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(914).$hashCode1;
            var$9 = $var3.$elementData.data;
            $var3 = var$9[var$7 & (var$9.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$7) {
                    g: {
                        $var4 = $var3.$key;
                        if ($rt_s(914) !== $var4) {
                            if ($rt_s(914) === $var4)
                                var$11 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$11 = 0;
                            else {
                                $var4 = $var4;
                                var$11 = $rt_s(914).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$11) {
                                var$11 = 0;
                                break g;
                            }
                        }
                        var$11 = 1;
                    }
                    if (var$11)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                $var3 = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $par0NBTTagCompound = $par0NBTTagCompound.$elementData.data[0];
                    while ($par0NBTTagCompound !== null && $par0NBTTagCompound.$key !== null) {
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                } else {
                    h: {
                        if (!$rt_s(914).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(914).$nativeString.length)
                                    break h;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(914).$hashCode1;
                    var$9 = $par0NBTTagCompound.$elementData.data;
                    $par0NBTTagCompound = var$9[var$7 & (var$9.length - 1 | 0)];
                    while ($par0NBTTagCompound !== null) {
                        if ($par0NBTTagCompound.$origKeyHash == var$7) {
                            i: {
                                $var3 = $par0NBTTagCompound.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$11 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$11 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$11 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$11) {
                                        var$11 = 0;
                                        break i;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(2727));
            var$7 = $par0NBTTagCompound.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$7, $var3);
            $par1World = new jl_String;
            var$9 = $par0NBTTagCompound.$buffer;
            var$10 = var$9.data;
            var$11 = $par0NBTTagCompound.$length0;
            var$8 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                $par1World.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                $rt_putStdout($rt_ustr($par1World));
                $rt_putStdout("\n");
                return $var2;
            }
            $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
            $par0NBTTagCompound.$suppressionEnabled = 1;
            $par0NBTTagCompound.$writableStackTrace = 1;
            jl_Throwable_fillInStackTrace($par0NBTTagCompound);
            $rt_throw($par0NBTTagCompound);
        }
        $ptr = 2;
    case 2:
        nms_StructureStart_func_143020_a($var2, $par1World, $par0NBTTagCompound);
        if ($rt_suspending()) {
            break main;
        }
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0NBTTagCompound, $par1World, $var2, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_MapGenStructureIO_func_143032_b = ($par0NBTTagCompound, $par1World) => {
    let $var2, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, $$je, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();var$4 = $thread.pop();$var2 = $thread.pop();$par1World = $thread.pop();$par0NBTTagCompound = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        nms_MapGenStructureIO_$callClinit();
        $var2 = null;
        a: {
            try {
                var$4 = $var2;
                $var3 = ju_HashMap_get(nms_MapGenStructureIO_field_143039_c, nms_NBTTagCompound_getString($par0NBTTagCompound, $rt_s(914)));
                if ($var3 === null)
                    break a;
                var$4 = $var2;
                $ptr = 1;
                continue main;
            } catch ($$e) {
                $$je = $rt_wrapException($$e);
                if ($$je instanceof jl_Exception) {
                    $var4 = $$je;
                } else {
                    throw $$e;
                }
            }
            if (jl_System_outCache === null) {
                $var2 = new otcic_JSStdoutPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                $var2.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_Object__init_($var3);
                $var3.$buffer = $rt_createCharArray(16);
                $var2.$sb = $var3;
                $var2.$buffer0 = $rt_createCharArray(32);
                $var2.$autoFlush = 0;
                $var2.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $var2;
            }
            b: {
                $var2 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break b;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(914).$hashCode1;
            var$9 = $var2.$elementData.data;
            $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
            while ($var2 !== null) {
                if ($var2.$origKeyHash == var$8) {
                    c: {
                        $var3 = $var2.$key;
                        if ($rt_s(914) !== $var3) {
                            if ($rt_s(914) === $var3)
                                var$7 = 1;
                            else if (!($var3 instanceof jl_String))
                                var$7 = 0;
                            else {
                                $var3 = $var3;
                                var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!var$7) {
                                var$7 = 0;
                                break c;
                            }
                        }
                        var$7 = 1;
                    }
                    if (var$7)
                        break;
                }
                $var2 = $var2.$next3;
            }
            if (!($var2 === null ? 0 : 1))
                $var2 = $rt_s(3);
            else {
                $var2 = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $var2 = $var2.$elementData.data[0];
                    while ($var2 !== null && $var2.$key !== null) {
                        $var2 = $var2.$next3;
                    }
                } else {
                    d: {
                        if (!$rt_s(914).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(914).$nativeString.length)
                                    break d;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$8 = $rt_s(914).$hashCode1;
                    var$9 = $var2.$elementData.data;
                    $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
                    while ($var2 !== null) {
                        if ($var2.$origKeyHash == var$8) {
                            e: {
                                $var3 = $var2.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$7 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$7 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$7) {
                                        var$7 = 0;
                                        break e;
                                    }
                                }
                                var$7 = 1;
                            }
                            if (var$7)
                                break;
                        }
                        $var2 = $var2.$next3;
                    }
                }
                $var2 = ($var2 === null ? null : $var2.$value0).$data1;
            }
            $var3 = new jl_StringBuilder;
            $var3.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2728));
            var$7 = $var3.$length0;
            if ($var2 === null)
                $var2 = $rt_s(1);
            jl_AbstractStringBuilder_insert($var3, var$7, $var2);
            $var2 = new jl_String;
            var$9 = $var3.$buffer;
            var$10 = var$9.data;
            var$11 = $var3.$length0;
            var$8 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                $var2.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                $rt_putStdout($rt_ustr($var2));
                $rt_putStdout("\n");
                if (jl_System_errCache === null) {
                    $var3 = new otcic_JSStderrPrintStream;
                    $var2 = new ji_ByteArrayOutputStream;
                    $var2.$buf = $rt_createByteArray(32);
                    jl_Object__init_($var3);
                    $var3.$out0 = $var2;
                    $var2 = new jl_StringBuilder;
                    jl_AbstractStringBuilder__init_0($var2, 16);
                    $var3.$sb = $var2;
                    $var3.$buffer0 = $rt_createCharArray(32);
                    $var3.$autoFlush = 0;
                    $var3.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_errCache = $var3;
                }
                jl_Throwable_printStackTrace($var4, jl_System_errCache);
                $var2 = var$4;
            } else {
                $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par0NBTTagCompound.$suppressionEnabled = 1;
                $par0NBTTagCompound.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0NBTTagCompound);
                $rt_throw($par0NBTTagCompound);
            }
        }
        if ($var2 !== null)
            nms_StructureComponent_func_143009_a($var2, $par1World, $par0NBTTagCompound);
        else {
            if (jl_System_outCache === null) {
                $par1World = new otcic_JSStdoutPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_Object__init_($var3);
                $var3.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $var3;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $par1World;
            }
            f: {
                $var3 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break f;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(914).$hashCode1;
            var$9 = $var3.$elementData.data;
            $var3 = var$9[var$7 & (var$9.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$7) {
                    g: {
                        $var4 = $var3.$key;
                        if ($rt_s(914) !== $var4) {
                            if ($rt_s(914) === $var4)
                                var$11 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$11 = 0;
                            else {
                                $var4 = $var4;
                                var$11 = $rt_s(914).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$11) {
                                var$11 = 0;
                                break g;
                            }
                        }
                        var$11 = 1;
                    }
                    if (var$11)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                $var3 = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $par0NBTTagCompound = $par0NBTTagCompound.$elementData.data[0];
                    while ($par0NBTTagCompound !== null && $par0NBTTagCompound.$key !== null) {
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                } else {
                    h: {
                        if (!$rt_s(914).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(914).$nativeString.length)
                                    break h;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(914).$hashCode1;
                    var$9 = $par0NBTTagCompound.$elementData.data;
                    $par0NBTTagCompound = var$9[var$7 & (var$9.length - 1 | 0)];
                    while ($par0NBTTagCompound !== null) {
                        if ($par0NBTTagCompound.$origKeyHash == var$7) {
                            i: {
                                $var3 = $par0NBTTagCompound.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$11 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$11 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$11 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$11) {
                                        var$11 = 0;
                                        break i;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(2729));
            var$7 = $par0NBTTagCompound.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$7, $var3);
            $par1World = new jl_String;
            var$9 = $par0NBTTagCompound.$buffer;
            var$10 = var$9.data;
            var$11 = $par0NBTTagCompound.$length0;
            var$8 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                $par1World.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                $rt_putStdout($rt_ustr($par1World));
                $rt_putStdout("\n");
            } else {
                $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par0NBTTagCompound.$suppressionEnabled = 1;
                $par0NBTTagCompound.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0NBTTagCompound);
                $rt_throw($par0NBTTagCompound);
            }
        }
        return $var2;
    case 1:
        a: {
            j: {
                try {
                    $tmp = jl_Class_newInstance($var3);
                    if ($rt_suspending()) {
                        break main;
                    }
                    $var2 = $tmp;
                    $var2 = $var2;
                    var$4 = $var2;
                    break j;
                } catch ($$e) {
                    $$je = $rt_wrapException($$e);
                    if ($$je instanceof jl_Exception) {
                        $var4 = $$je;
                    } else {
                        throw $$e;
                    }
                }
                if (jl_System_outCache === null) {
                    $var2 = new otcic_JSStdoutPrintStream;
                    $var3 = new ji_ByteArrayOutputStream;
                    $var3.$buf = $rt_createByteArray(32);
                    $var2.$out0 = $var3;
                    $var3 = new jl_StringBuilder;
                    jl_Object__init_($var3);
                    $var3.$buffer = $rt_createCharArray(16);
                    $var2.$sb = $var3;
                    $var2.$buffer0 = $rt_createCharArray(32);
                    $var2.$autoFlush = 0;
                    $var2.$charset = jnci_UTF8Charset_INSTANCE;
                    jl_System_outCache = $var2;
                }
                b: {
                    $var2 = $par0NBTTagCompound.$tagMap;
                    if (!$rt_s(914).$hashCode1) {
                        var$7 = 0;
                        while (true) {
                            if (var$7 >= $rt_s(914).$nativeString.length)
                                break b;
                            $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                            var$7 = var$7 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(914).$hashCode1;
                var$9 = $var2.$elementData.data;
                $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
                while ($var2 !== null) {
                    if ($var2.$origKeyHash == var$8) {
                        c: {
                            $var3 = $var2.$key;
                            if ($rt_s(914) !== $var3) {
                                if ($rt_s(914) === $var3)
                                    var$7 = 1;
                                else if (!($var3 instanceof jl_String))
                                    var$7 = 0;
                                else {
                                    $var3 = $var3;
                                    var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                                if (!var$7) {
                                    var$7 = 0;
                                    break c;
                                }
                            }
                            var$7 = 1;
                        }
                        if (var$7)
                            break;
                    }
                    $var2 = $var2.$next3;
                }
                if (!($var2 === null ? 0 : 1))
                    $var2 = $rt_s(3);
                else {
                    $var2 = $par0NBTTagCompound.$tagMap;
                    if ($rt_s(914) === null) {
                        $var2 = $var2.$elementData.data[0];
                        while ($var2 !== null && $var2.$key !== null) {
                            $var2 = $var2.$next3;
                        }
                    } else {
                        d: {
                            if (!$rt_s(914).$hashCode1) {
                                var$7 = 0;
                                while (true) {
                                    if (var$7 >= $rt_s(914).$nativeString.length)
                                        break d;
                                    $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                    var$7 = var$7 + 1 | 0;
                                }
                            }
                        }
                        var$8 = $rt_s(914).$hashCode1;
                        var$9 = $var2.$elementData.data;
                        $var2 = var$9[var$8 & (var$9.length - 1 | 0)];
                        while ($var2 !== null) {
                            if ($var2.$origKeyHash == var$8) {
                                e: {
                                    $var3 = $var2.$key;
                                    if ($rt_s(914) !== $var3) {
                                        if ($rt_s(914) === $var3)
                                            var$7 = 1;
                                        else if (!($var3 instanceof jl_String))
                                            var$7 = 0;
                                        else {
                                            $var3 = $var3;
                                            var$7 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                        }
                                        if (!var$7) {
                                            var$7 = 0;
                                            break e;
                                        }
                                    }
                                    var$7 = 1;
                                }
                                if (var$7)
                                    break;
                            }
                            $var2 = $var2.$next3;
                        }
                    }
                    $var2 = ($var2 === null ? null : $var2.$value0).$data1;
                }
                $var3 = new jl_StringBuilder;
                $var3.$buffer = $rt_createCharArray(16);
                jl_AbstractStringBuilder_insert($var3, $var3.$length0, $rt_s(2728));
                var$7 = $var3.$length0;
                if ($var2 === null)
                    $var2 = $rt_s(1);
                jl_AbstractStringBuilder_insert($var3, var$7, $var2);
                $var2 = new jl_String;
                var$9 = $var3.$buffer;
                var$10 = var$9.data;
                var$11 = $var3.$length0;
                var$8 = var$10.length;
                if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                    $var2.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                    $rt_putStdout($rt_ustr($var2));
                    $rt_putStdout("\n");
                    if (jl_System_errCache === null) {
                        $var3 = new otcic_JSStderrPrintStream;
                        $var2 = new ji_ByteArrayOutputStream;
                        $var2.$buf = $rt_createByteArray(32);
                        jl_Object__init_($var3);
                        $var3.$out0 = $var2;
                        $var2 = new jl_StringBuilder;
                        jl_AbstractStringBuilder__init_0($var2, 16);
                        $var3.$sb = $var2;
                        $var3.$buffer0 = $rt_createCharArray(32);
                        $var3.$autoFlush = 0;
                        $var3.$charset = jnci_UTF8Charset_INSTANCE;
                        jl_System_errCache = $var3;
                    }
                    jl_Throwable_printStackTrace($var4, jl_System_errCache);
                    $var2 = var$4;
                    break a;
                }
                $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par0NBTTagCompound.$suppressionEnabled = 1;
                $par0NBTTagCompound.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0NBTTagCompound);
                $rt_throw($par0NBTTagCompound);
            }
        }
        if ($var2 !== null)
            nms_StructureComponent_func_143009_a($var2, $par1World, $par0NBTTagCompound);
        else {
            if (jl_System_outCache === null) {
                $par1World = new otcic_JSStdoutPrintStream;
                $var3 = new ji_ByteArrayOutputStream;
                $var3.$buf = $rt_createByteArray(32);
                $par1World.$out0 = $var3;
                $var3 = new jl_StringBuilder;
                jl_Object__init_($var3);
                $var3.$buffer = $rt_createCharArray(16);
                $par1World.$sb = $var3;
                $par1World.$buffer0 = $rt_createCharArray(32);
                $par1World.$autoFlush = 0;
                $par1World.$charset = jnci_UTF8Charset_INSTANCE;
                jl_System_outCache = $par1World;
            }
            f: {
                $var3 = $par0NBTTagCompound.$tagMap;
                if (!$rt_s(914).$hashCode1) {
                    var$7 = 0;
                    while (true) {
                        if (var$7 >= $rt_s(914).$nativeString.length)
                            break f;
                        $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                        var$7 = var$7 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(914).$hashCode1;
            var$9 = $var3.$elementData.data;
            $var3 = var$9[var$7 & (var$9.length - 1 | 0)];
            while ($var3 !== null) {
                if ($var3.$origKeyHash == var$7) {
                    g: {
                        $var4 = $var3.$key;
                        if ($rt_s(914) !== $var4) {
                            if ($rt_s(914) === $var4)
                                var$11 = 1;
                            else if (!($var4 instanceof jl_String))
                                var$11 = 0;
                            else {
                                $var4 = $var4;
                                var$11 = $rt_s(914).$nativeString !== $var4.$nativeString ? 0 : 1;
                            }
                            if (!var$11) {
                                var$11 = 0;
                                break g;
                            }
                        }
                        var$11 = 1;
                    }
                    if (var$11)
                        break;
                }
                $var3 = $var3.$next3;
            }
            if (!($var3 === null ? 0 : 1))
                $var3 = $rt_s(3);
            else {
                $par0NBTTagCompound = $par0NBTTagCompound.$tagMap;
                if ($rt_s(914) === null) {
                    $par0NBTTagCompound = $par0NBTTagCompound.$elementData.data[0];
                    while ($par0NBTTagCompound !== null && $par0NBTTagCompound.$key !== null) {
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                } else {
                    h: {
                        if (!$rt_s(914).$hashCode1) {
                            var$7 = 0;
                            while (true) {
                                if (var$7 >= $rt_s(914).$nativeString.length)
                                    break h;
                                $rt_s(914).$hashCode1 = (31 * $rt_s(914).$hashCode1 | 0) + $rt_s(914).$nativeString.charCodeAt(var$7) | 0;
                                var$7 = var$7 + 1 | 0;
                            }
                        }
                    }
                    var$7 = $rt_s(914).$hashCode1;
                    var$9 = $par0NBTTagCompound.$elementData.data;
                    $par0NBTTagCompound = var$9[var$7 & (var$9.length - 1 | 0)];
                    while ($par0NBTTagCompound !== null) {
                        if ($par0NBTTagCompound.$origKeyHash == var$7) {
                            i: {
                                $var3 = $par0NBTTagCompound.$key;
                                if ($rt_s(914) !== $var3) {
                                    if ($rt_s(914) === $var3)
                                        var$11 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        var$11 = 0;
                                    else {
                                        $var3 = $var3;
                                        var$11 = $rt_s(914).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!var$11) {
                                        var$11 = 0;
                                        break i;
                                    }
                                }
                                var$11 = 1;
                            }
                            if (var$11)
                                break;
                        }
                        $par0NBTTagCompound = $par0NBTTagCompound.$next3;
                    }
                }
                $var3 = ($par0NBTTagCompound === null ? null : $par0NBTTagCompound.$value0).$data1;
            }
            $par0NBTTagCompound = new jl_StringBuilder;
            $par0NBTTagCompound.$buffer = $rt_createCharArray(16);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, $par0NBTTagCompound.$length0, $rt_s(2729));
            var$7 = $par0NBTTagCompound.$length0;
            if ($var3 === null)
                $var3 = $rt_s(1);
            jl_AbstractStringBuilder_insert($par0NBTTagCompound, var$7, $var3);
            $par1World = new jl_String;
            var$9 = $par0NBTTagCompound.$buffer;
            var$10 = var$9.data;
            var$11 = $par0NBTTagCompound.$length0;
            var$8 = var$10.length;
            if (var$11 >= 0 && var$11 <= (var$8 - 0 | 0)) {
                $par1World.$nativeString = $rt_charArrayToString(var$9.data, 0, var$11);
                $rt_putStdout($rt_ustr($par1World));
                $rt_putStdout("\n");
            } else {
                $par0NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par0NBTTagCompound.$suppressionEnabled = 1;
                $par0NBTTagCompound.$writableStackTrace = 1;
                jl_Throwable_fillInStackTrace($par0NBTTagCompound);
                $rt_throw($par0NBTTagCompound);
            }
        }
        return $var2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($par0NBTTagCompound, $par1World, $var2, var$4, $var3, $var4, var$7, var$8, var$9, var$10, var$11, $ptr);
},
nms_MapGenStructureIO__clinit_ = () => {
    let var$1, var$2, var$3, var$4;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_MapGenStructureIO_field_143040_a = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_MapGenStructureIO_field_143038_b = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_MapGenStructureIO_field_143039_c = var$1;
    var$1 = new ju_HashMap;
    var$2 = ju_HashMap_calculateCapacity(16);
    var$1.$elementCount = 0;
    var$3 = $rt_createArray(ju_HashMap$HashEntry, var$2);
    var$4 = var$3.data;
    var$1.$elementData = var$3;
    var$1.$loadFactor = 0.75;
    var$1.$threshold = var$4.length * 0.75 | 0;
    nms_MapGenStructureIO_field_143037_d = var$1;
    nms_MapGenStructureIO_$callClinit();
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143040_a, $rt_s(2388), $rt_cls(nms_StructureMineshaftStart));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143038_b, $rt_cls(nms_StructureMineshaftStart), $rt_s(2388));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143040_a, $rt_s(2126), $rt_cls(nms_StructureVillageStart));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143038_b, $rt_cls(nms_StructureVillageStart), $rt_s(2126));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143040_a, $rt_s(2384), $rt_cls(nms_StructureNetherBridgeStart));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143038_b, $rt_cls(nms_StructureNetherBridgeStart), $rt_s(2384));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143040_a, $rt_s(1337), $rt_cls(nms_StructureStrongholdStart));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143038_b, $rt_cls(nms_StructureStrongholdStart), $rt_s(1337));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143040_a, $rt_s(2389), $rt_cls(nms_StructureScatteredFeatureStart));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143038_b, $rt_cls(nms_StructureScatteredFeatureStart), $rt_s(2389));
    nms_StructureMineshaftPieces_$callClinit();
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2730), $rt_cls(nms_ComponentMineshaftCorridor));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentMineshaftCorridor), $rt_s(2730));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2731), $rt_cls(nms_ComponentMineshaftCross));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentMineshaftCross), $rt_s(2731));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2732), $rt_cls(nms_ComponentMineshaftRoom));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentMineshaftRoom), $rt_s(2732));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2733), $rt_cls(nms_ComponentMineshaftStairs));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentMineshaftStairs), $rt_s(2733));
    nms_StructureVillagePieces_func_143016_a();
    nms_StructureNetherBridgePieces_func_143049_a();
    nms_StructureStrongholdPieces_func_143046_a();
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2734), $rt_cls(nms_ComponentScatteredFeatureDesertPyramid));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentScatteredFeatureDesertPyramid), $rt_s(2734));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2735), $rt_cls(nms_ComponentScatteredFeatureJunglePyramid));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentScatteredFeatureJunglePyramid), $rt_s(2735));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2736), $rt_cls(nms_ComponentScatteredFeatureSwampHut));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentScatteredFeatureSwampHut), $rt_s(2736));
};
function nms_StructureStart() {
    let a = this; jl_Object.call(a);
    a.$components = null;
    a.$boundingBox1 = null;
    a.$field_143024_c = 0;
    a.$field_143023_d = 0;
}
let nms_StructureStart_getBoundingBox = $this => {
    return $this.$boundingBox1;
},
nms_StructureStart_getComponents = $this => {
    return $this.$components;
},
nms_StructureStart_generateStructure = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let var$4, var$5, var$6, $var5, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var5 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$4 = $this.$components;
        var$5 = new ju_LinkedList$SequentialListIterator;
        var$6 = var$4.$firstEntry;
        $var5 = null;
        var$5.$this$02 = var$4;
        var$5.$version = var$4.$modCount;
        var$5.$nextEntry1 = var$6;
        var$5.$prevEntry = $var5;
        var$5.$index4 = 0;
        while (true) {
            $var5 = var$5.$nextEntry1;
            if (!($var5 === null ? 0 : 1))
                break;
            if (var$5.$version < var$5.$this$02.$modCount) {
                $par1World = new ju_ConcurrentModificationException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            if ($var5 === null) {
                $par1World = new ju_NoSuchElementException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            var$6 = $var5.$item;
            var$5.$currentEntry2 = $var5;
            var$5.$prevEntry = $var5;
            var$5.$nextEntry1 = $var5.$next5;
            var$5.$index4 = var$5.$index4 + 1 | 0;
            $var5 = var$6;
            if (nms_StructureBoundingBox_intersectsWith($var5.$boundingBox, $par3StructureBoundingBox)) {
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        $tmp = $var5.$addComponentParts($par1World, $par2Random, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        if (!var$8)
            ju_LinkedList$SequentialListIterator_remove(var$5);
        while (true) {
            $var5 = var$5.$nextEntry1;
            if (!($var5 === null ? 0 : 1))
                break;
            if (var$5.$version < var$5.$this$02.$modCount) {
                $par1World = new ju_ConcurrentModificationException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            if ($var5 === null) {
                $par1World = new ju_NoSuchElementException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            var$6 = $var5.$item;
            var$5.$currentEntry2 = $var5;
            var$5.$prevEntry = $var5;
            var$5.$nextEntry1 = $var5.$next5;
            var$5.$index4 = var$5.$index4 + 1 | 0;
            $var5 = var$6;
            if (!nms_StructureBoundingBox_intersectsWith($var5.$boundingBox, $par3StructureBoundingBox))
                continue;
            else {
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, var$4, var$5, var$6, $var5, var$8, $ptr);
},
nms_StructureStart_func_143021_a = ($this, $par1, $par2) => {
    let $var3, $var4, var$5, var$6, var$7, $var5$nextEntry, var$9, var$10, var$11, var$12, $var6;
    $var3 = new nms_NBTTagCompound;
    $var3.$name = $rt_s(3);
    $var4 = new ju_HashMap;
    var$5 = ju_HashMap_calculateCapacity(16);
    $var4.$elementCount = 0;
    var$6 = $rt_createArray(ju_HashMap$HashEntry, var$5);
    var$7 = var$6.data;
    $var4.$elementData = var$6;
    $var4.$loadFactor = 0.75;
    $var4.$threshold = var$7.length * 0.75 | 0;
    $var3.$tagMap = $var4;
    nms_MapGenStructureIO_$callClinit();
    $var5$nextEntry = nms_MapGenStructureIO_field_143038_b;
    $var4 = $this.constructor;
    if ($var4 === null)
        var$9 = null;
    else {
        var$9 = $var4.classObject;
        if (var$9 === null) {
            var$9 = new jl_Class;
            var$9.$platformClass = $var4;
            $var4.classObject = var$9;
        }
    }
    if (var$9 === null) {
        $var4 = $var5$nextEntry.$elementData.data[0];
        while ($var4 !== null && $var4.$key !== null) {
            $var4 = $var4.$next3;
        }
    } else {
        var$10 = var$9;
        if (!var$10.$id$)
            var$10.$id$ = $rt_nextId();
        var$11 = var$9.$id$;
        var$7 = $var5$nextEntry.$elementData.data;
        $var4 = var$7[var$11 & (var$7.length - 1 | 0)];
        while ($var4 !== null) {
            if ($var4.$origKeyHash == var$11) {
                var$12 = $var4.$key;
                if (var$9 !== var$12 && !(var$9 !== var$12 ? 0 : 1) ? 0 : 1)
                    break;
            }
            $var4 = $var4.$next3;
        }
    }
    $var5$nextEntry = $var4 === null ? null : $var4.$value0;
    var$12 = $var3.$tagMap;
    $var4 = new nms_NBTTagString;
    $var4.$name = $rt_s(914);
    $var4.$data1 = $var5$nextEntry;
    if ($var5$nextEntry === null) {
        var$12 = new jl_IllegalArgumentException;
        var$12.$suppressionEnabled = 1;
        var$12.$writableStackTrace = 1;
        var$12.$message = $rt_s(177);
        $rt_throw(var$12);
    }
    ju_HashMap_putImpl(var$12, $rt_s(914), $var4);
    $var6 = $var3.$tagMap;
    var$12 = new nms_NBTTagInt;
    var$12.$name = $rt_s(2382);
    var$12.$data = $par1;
    ju_HashMap_putImpl($var6, $rt_s(2382), var$12);
    var$12 = $var3.$tagMap;
    $var6 = new nms_NBTTagInt;
    $var6.$name = $rt_s(2383);
    $var6.$data = $par2;
    ju_HashMap_putImpl(var$12, $rt_s(2383), $var6);
    $var4 = nms_StructureBoundingBox_func_143047_a($this.$boundingBox1, $rt_s(2737));
    $var6 = $var3.$tagMap;
    $var4.$name = $rt_s(2737);
    ju_HashMap_putImpl($var6, $rt_s(2737), $var4);
    $var4 = new nms_NBTTagList;
    $var4.$name = $rt_s(2738);
    var$12 = new ju_ArrayList;
    var$12.$array = $rt_createArray(jl_Object, 10);
    $var4.$tagList = var$12;
    var$12 = $this.$components;
    $var5$nextEntry = var$12.$firstEntry;
    var$5 = var$12.$modCount;
    while ($var5$nextEntry === null ? 0 : 1) {
        if (var$5 < var$12.$modCount) {
            $var4 = new ju_ConcurrentModificationException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        if ($var5$nextEntry === null) {
            $var4 = new ju_NoSuchElementException;
            $var4.$suppressionEnabled = 1;
            $var4.$writableStackTrace = 1;
            $rt_throw($var4);
        }
        $var6 = $var5$nextEntry.$item;
        $var5$nextEntry = $var5$nextEntry.$next5;
        var$9 = nms_StructureComponent_func_143010_b($var6);
        $var4.$tagType = 10;
        $var6 = $var4.$tagList;
        ju_ArrayList_ensureCapacity($var6, $var6.$size0 + 1 | 0);
        var$7 = $var6.$array.data;
        $par2 = $var6.$size0;
        $var6.$size0 = $par2 + 1 | 0;
        var$7[$par2] = var$9;
        $var6.$modCount = $var6.$modCount + 1 | 0;
    }
    $var6 = $var3.$tagMap;
    $var4.$name = $rt_s(2738);
    ju_HashMap_putImpl($var6, $rt_s(2738), $var4);
    $this.$func_143022_a($var3);
    return $var3;
},
nms_StructureStart_func_143022_a = ($this, $par1NBTTagCompound) => {
    return;
},
nms_StructureStart_func_143020_a = ($this, $par1World, $par2NBTTagCompound) => {
    let var$3, $var4, var$5, var$6, $var3, var$8, var$9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var3 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();var$3 = $thread.pop();$par2NBTTagCompound = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$3 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(2382).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2382).$nativeString.length)
                        break a;
                    $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(2382).$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                b: {
                    $var3 = var$3.$key;
                    if ($rt_s(2382) !== $var3) {
                        if ($rt_s(2382) === $var3)
                            $var4 = 1;
                        else if (!($var3 instanceof jl_String))
                            $var4 = 0;
                        else {
                            $var3 = $var3;
                            $var4 = $rt_s(2382).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!$var4) {
                            $var4 = 0;
                            break b;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (var$3 === null ? 0 : 1) {
            var$3 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(2382) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                c: {
                    if (!$rt_s(2382).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2382).$nativeString.length)
                                break c;
                            $rt_s(2382).$hashCode1 = (31 * $rt_s(2382).$hashCode1 | 0) + $rt_s(2382).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(2382).$hashCode1;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        d: {
                            $var3 = var$3.$key;
                            if ($rt_s(2382) !== $var3) {
                                if ($rt_s(2382) === $var3)
                                    $var4 = 1;
                                else if ($var3 instanceof jl_String) {
                                    $var3 = $var3;
                                    $var4 = $rt_s(2382).$nativeString !== $var3.$nativeString ? 0 : 1;
                                } else
                                    $var4 = 0;
                                if (!$var4) {
                                    $var4 = 0;
                                    break d;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            $var4 = (var$3 === null ? null : var$3.$value0).$data;
        } else
            $var4 = 0;
        e: {
            $this.$field_143024_c = $var4;
            var$3 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(2383).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2383).$nativeString.length)
                        break e;
                    $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(2383).$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                f: {
                    $var3 = var$3.$key;
                    if ($rt_s(2383) !== $var3) {
                        if ($rt_s(2383) === $var3)
                            $var4 = 1;
                        else if (!($var3 instanceof jl_String))
                            $var4 = 0;
                        else {
                            $var3 = $var3;
                            $var4 = $rt_s(2383).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!$var4) {
                            $var4 = 0;
                            break f;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (var$3 === null ? 0 : 1) {
            var$3 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(2383) !== null) {
                g: {
                    if (!$rt_s(2383).$hashCode1) {
                        var$8 = 0;
                        while (true) {
                            if (var$8 >= $rt_s(2383).$nativeString.length)
                                break g;
                            $rt_s(2383).$hashCode1 = (31 * $rt_s(2383).$hashCode1 | 0) + $rt_s(2383).$nativeString.charCodeAt(var$8) | 0;
                            var$8 = var$8 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(2383).$hashCode1;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        h: {
                            $var3 = var$3.$key;
                            if ($rt_s(2383) !== $var3) {
                                if ($rt_s(2383) !== $var3) {
                                    if ($var3 instanceof jl_String) {
                                        $var3 = $var3;
                                        $var4 = $rt_s(2383).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    } else
                                        $var4 = 0;
                                } else
                                    $var4 = 1;
                                if (!$var4) {
                                    $var4 = 0;
                                    break h;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            } else {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            }
            $var4 = (var$3 === null ? null : var$3.$value0).$data;
        } else
            $var4 = 0;
        i: {
            $this.$field_143023_d = $var4;
            var$3 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(2737).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2737).$nativeString.length)
                        break i;
                    $rt_s(2737).$hashCode1 = (31 * $rt_s(2737).$hashCode1 | 0) + $rt_s(2737).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(2737).$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                j: {
                    $var3 = var$3.$key;
                    if ($rt_s(2737) !== $var3) {
                        if ($rt_s(2737) !== $var3) {
                            if (!($var3 instanceof jl_String))
                                $var4 = 0;
                            else {
                                $var3 = $var3;
                                $var4 = $rt_s(2737).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                        } else
                            $var4 = 1;
                        if (!$var4) {
                            $var4 = 0;
                            break j;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (var$3 === null ? 0 : 1) {
            k: {
                var$9 = new nms_StructureBoundingBox;
                var$3 = $par2NBTTagCompound.$tagMap;
                if (!$rt_s(2737).$hashCode1) {
                    $var4 = 0;
                    while (true) {
                        if ($var4 >= $rt_s(2737).$nativeString.length)
                            break k;
                        $rt_s(2737).$hashCode1 = (31 * $rt_s(2737).$hashCode1 | 0) + $rt_s(2737).$nativeString.charCodeAt($var4) | 0;
                        $var4 = $var4 + 1 | 0;
                    }
                }
            }
            var$5 = $rt_s(2737).$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$5) {
                    l: {
                        $var3 = var$3.$key;
                        if ($rt_s(2737) !== $var3) {
                            if ($rt_s(2737) === $var3)
                                $var4 = 1;
                            else if (!($var3 instanceof jl_String))
                                $var4 = 0;
                            else {
                                $var3 = $var3;
                                $var4 = $rt_s(2737).$nativeString !== $var3.$nativeString ? 0 : 1;
                            }
                            if (!$var4) {
                                $var4 = 0;
                                break l;
                            }
                        }
                        $var4 = 1;
                    }
                    if ($var4)
                        break;
                }
                var$3 = var$3.$next3;
            }
            if (!(var$3 === null ? 0 : 1))
                var$6 = $rt_createIntArray(0);
            else {
                var$3 = $par2NBTTagCompound.$tagMap;
                if ($rt_s(2737) === null) {
                    var$3 = var$3.$elementData.data[0];
                    while (var$3 !== null && var$3.$key !== null) {
                        var$3 = var$3.$next3;
                    }
                } else {
                    m: {
                        if (!$rt_s(2737).$hashCode1) {
                            $var4 = 0;
                            while (true) {
                                if ($var4 >= $rt_s(2737).$nativeString.length)
                                    break m;
                                $rt_s(2737).$hashCode1 = (31 * $rt_s(2737).$hashCode1 | 0) + $rt_s(2737).$nativeString.charCodeAt($var4) | 0;
                                $var4 = $var4 + 1 | 0;
                            }
                        }
                    }
                    var$5 = $rt_s(2737).$hashCode1;
                    var$6 = var$3.$elementData.data;
                    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                    while (var$3 !== null) {
                        if (var$3.$origKeyHash == var$5) {
                            n: {
                                $var3 = var$3.$key;
                                if ($rt_s(2737) !== $var3) {
                                    if ($rt_s(2737) === $var3)
                                        $var4 = 1;
                                    else if (!($var3 instanceof jl_String))
                                        $var4 = 0;
                                    else {
                                        $var3 = $var3;
                                        $var4 = $rt_s(2737).$nativeString !== $var3.$nativeString ? 0 : 1;
                                    }
                                    if (!$var4) {
                                        $var4 = 0;
                                        break n;
                                    }
                                }
                                $var4 = 1;
                            }
                            if ($var4)
                                break;
                        }
                        var$3 = var$3.$next3;
                    }
                }
                var$6 = (var$3 === null ? null : var$3.$value0).$intArray;
            }
            nms_StructureBoundingBox__init_(var$9, var$6);
            $this.$boundingBox1 = var$9;
        }
        o: {
            var$3 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(2738).$hashCode1) {
                $var4 = 0;
                while (true) {
                    if ($var4 >= $rt_s(2738).$nativeString.length)
                        break o;
                    $rt_s(2738).$hashCode1 = (31 * $rt_s(2738).$hashCode1 | 0) + $rt_s(2738).$nativeString.charCodeAt($var4) | 0;
                    $var4 = $var4 + 1 | 0;
                }
            }
        }
        var$5 = $rt_s(2738).$hashCode1;
        var$6 = var$3.$elementData.data;
        var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
        while (var$3 !== null) {
            if (var$3.$origKeyHash == var$5) {
                p: {
                    $var3 = var$3.$key;
                    if ($rt_s(2738) !== $var3) {
                        if ($rt_s(2738) === $var3)
                            $var4 = 1;
                        else if (!($var3 instanceof jl_String))
                            $var4 = 0;
                        else {
                            $var3 = $var3;
                            $var4 = $rt_s(2738).$nativeString !== $var3.$nativeString ? 0 : 1;
                        }
                        if (!$var4) {
                            $var4 = 0;
                            break p;
                        }
                    }
                    $var4 = 1;
                }
                if ($var4)
                    break;
            }
            var$3 = var$3.$next3;
        }
        if (!(var$3 === null ? 0 : 1)) {
            $var3 = new nms_NBTTagList;
            if ($rt_s(2738) !== null)
                $var3.$name = $rt_s(2738);
            else
                $var3.$name = $rt_s(3);
            var$3 = new ju_ArrayList;
            var$3.$array = $rt_createArray(jl_Object, 10);
            $var3.$tagList = var$3;
        } else {
            var$3 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(2738) === null) {
                var$3 = var$3.$elementData.data[0];
                while (var$3 !== null && var$3.$key !== null) {
                    var$3 = var$3.$next3;
                }
            } else {
                q: {
                    if (!$rt_s(2738).$hashCode1) {
                        $var4 = 0;
                        while (true) {
                            if ($var4 >= $rt_s(2738).$nativeString.length)
                                break q;
                            $rt_s(2738).$hashCode1 = (31 * $rt_s(2738).$hashCode1 | 0) + $rt_s(2738).$nativeString.charCodeAt($var4) | 0;
                            $var4 = $var4 + 1 | 0;
                        }
                    }
                }
                var$5 = $rt_s(2738).$hashCode1;
                var$6 = var$3.$elementData.data;
                var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
                while (var$3 !== null) {
                    if (var$3.$origKeyHash == var$5) {
                        r: {
                            $var3 = var$3.$key;
                            if ($rt_s(2738) !== $var3) {
                                if ($rt_s(2738) === $var3)
                                    $var4 = 1;
                                else if (!($var3 instanceof jl_String))
                                    $var4 = 0;
                                else {
                                    $var3 = $var3;
                                    $var4 = $rt_s(2738).$nativeString !== $var3.$nativeString ? 0 : 1;
                                }
                                if (!$var4) {
                                    $var4 = 0;
                                    break r;
                                }
                            }
                            $var4 = 1;
                        }
                        if ($var4)
                            break;
                    }
                    var$3 = var$3.$next3;
                }
            }
            $var3 = var$3 === null ? null : var$3.$value0;
        }
        $var4 = 0;
        var$3 = $var3.$tagList;
        var$8 = $rt_compare($var4, var$3.$size0);
        if (var$8 >= 0) {
            $this.$func_143017_b($par2NBTTagCompound);
            return;
        }
        var$10 = $this.$components;
        if ($var4 >= 0 && var$8 < 0) {
            var$3 = var$3.$array.data[$var4];
            $ptr = 1;
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    case 1:
        $tmp = nms_MapGenStructureIO_func_143032_b(var$3, $par1World);
        if ($rt_suspending()) {
            break main;
        }
        var$3 = $tmp;
        var$8 = var$10.$size2;
        if (var$8 < 0) {
            $par1World = new jl_IndexOutOfBoundsException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator(var$10, var$8), var$3);
        $var4 = $var4 + 1 | 0;
        var$3 = $var3.$tagList;
        var$8 = $rt_compare($var4, var$3.$size0);
        if (var$8 >= 0) {
            $this.$func_143017_b($par2NBTTagCompound);
            return;
        }
        var$10 = $this.$components;
        if ($var4 >= 0 && var$8 < 0) {
            var$3 = var$3.$array.data[$var4];
            continue main;
        }
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2NBTTagCompound, var$3, $var4, var$5, var$6, $var3, var$8, var$9, var$10, $ptr);
},
nms_StructureStart_func_143017_b = ($this, $par1NBTTagCompound) => {
    return;
},
nms_StructureStart_markAvailableHeight = ($this, $par1World, $par2Random, $par3) => {
    let $var4, var$5, var$6, $var5, $var6, var$9, var$10, var$11, $var7$nextEntry;
    $var4 = 63 - $par3 | 0;
    $par1World = $this.$boundingBox1;
    var$5 = $par1World.$maxY1;
    var$6 = $par1World.$minY;
    $var5 = ((var$5 - var$6 | 0) + 1 | 0) + 1 | 0;
    if ($var5 < $var4) {
        $var6 = $var4 - $var5 | 0;
        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, 17));
        var$10 = $var6 - 1 | 0;
        if (!($var6 & var$10))
            var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt($par3)), 31));
        else
            while (true) {
                var$11 = $par3 % $var6 | 0;
                if ((($par3 - var$11 | 0) + var$10 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $par3 = Long_lo(Long_shru(var$9, 17));
            }
        $var5 = $var5 + var$11 | 0;
    }
    $var6 = $var5 - var$5 | 0;
    $par1World.$minX = $par1World.$minX + 0 | 0;
    $par1World.$minY = var$6 + $var6 | 0;
    $par1World.$minZ = $par1World.$minZ + 0 | 0;
    $par1World.$maxX = $par1World.$maxX + 0 | 0;
    $par1World.$maxY1 = var$5 + $var6 | 0;
    $par1World.$maxZ = $par1World.$maxZ + 0 | 0;
    $par1World = $this.$components;
    $var7$nextEntry = $par1World.$firstEntry;
    $par3 = $par1World.$modCount;
    var$5 = $rt_compare($par3, $par3);
    while ($var7$nextEntry === null ? 0 : 1) {
        if (var$5 < 0) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($var7$nextEntry === null) {
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $par1World = $var7$nextEntry.$item;
        $var7$nextEntry = $var7$nextEntry.$next5;
        $par1World = $par1World.$boundingBox;
        $par1World.$minX = $par1World.$minX + 0 | 0;
        $par1World.$minY = $par1World.$minY + $var6 | 0;
        $par1World.$minZ = $par1World.$minZ + 0 | 0;
        $par1World.$maxX = $par1World.$maxX + 0 | 0;
        $par1World.$maxY1 = $par1World.$maxY1 + $var6 | 0;
        $par1World.$maxZ = $par1World.$maxZ + 0 | 0;
    }
},
nms_StructureStart_setRandomHeight = ($this, $par1World, $par2Random, $var10, $par4) => {
    let var$5, var$6, $var5, var$8, var$9, var$10, $var7, $var8$nextEntry;
    $par4 = ($par4 - $var10 | 0) + 1 | 0;
    $par1World = $this.$boundingBox1;
    var$5 = $par1World.$maxY1;
    var$6 = $par1World.$minY;
    $var5 = $par4 - ((var$5 - var$6 | 0) + 1 | 0) | 0;
    if ($var5 > 1) {
        var$8 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$8;
        $par4 = Long_lo(Long_shru(var$8, 17));
        var$9 = $var5 - 1 | 0;
        if (!($var5 & var$9))
            var$10 = Long_lo(Long_shr(Long_mul(Long_fromInt($var5), Long_fromInt($par4)), 31));
        else
            while (true) {
                var$10 = $par4 % $var5 | 0;
                if ((($par4 - var$10 | 0) + var$9 | 0) >= 0)
                    break;
                var$8 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$8;
                $par4 = Long_lo(Long_shru(var$8, 17));
            }
        $var10 = $var10 + var$10 | 0;
    }
    $var7 = $var10 - var$6 | 0;
    $par1World.$minX = $par1World.$minX + 0 | 0;
    $par1World.$minY = var$6 + $var7 | 0;
    $par1World.$minZ = $par1World.$minZ + 0 | 0;
    $par1World.$maxX = $par1World.$maxX + 0 | 0;
    $par1World.$maxY1 = var$5 + $var7 | 0;
    $par1World.$maxZ = $par1World.$maxZ + 0 | 0;
    $par1World = $this.$components;
    $var8$nextEntry = $par1World.$firstEntry;
    $var10 = $par1World.$modCount;
    var$6 = $rt_compare($var10, $var10);
    while ($var8$nextEntry === null ? 0 : 1) {
        if (var$6 < 0) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($var8$nextEntry === null) {
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $par1World = $var8$nextEntry.$item;
        $var8$nextEntry = $var8$nextEntry.$next5;
        $par1World = $par1World.$boundingBox;
        $par1World.$minX = $par1World.$minX + 0 | 0;
        $par1World.$minY = $par1World.$minY + $var7 | 0;
        $par1World.$minZ = $par1World.$minZ + 0 | 0;
        $par1World.$maxX = $par1World.$maxX + 0 | 0;
        $par1World.$maxY1 = $par1World.$maxY1 + $var7 | 0;
        $par1World.$maxZ = $par1World.$maxZ + 0 | 0;
    }
},
nms_StructureStart_isSizeableStructure = $this => {
    return 1;
},
nms_StructureStart_func_143019_e = $this => {
    return $this.$field_143024_c;
},
nms_StructureStart_func_143018_f = $this => {
    return $this.$field_143023_d;
},
jur_RandomGenerator = $rt_classWithoutFields(0),
ju_Random = $rt_classWithoutFields(),
ju_Random__init_ = $this => {
    return;
},
ju_Random__init_0 = () => {
    let var_0 = new ju_Random();
    ju_Random__init_(var_0);
    return var_0;
},
nms_StructureMineshaftStart = $rt_classWithoutFields(nms_StructureStart),
nms_StructureMineshaftStart__init_ = $this => {
    $this.$components = new ju_LinkedList;
},
nms_StructureMineshaftStart__init_0 = () => {
    let var_0 = new nms_StructureMineshaftStart();
    nms_StructureMineshaftStart__init_(var_0);
    return var_0;
};
function nms_StructureVillageStart() {
    nms_StructureStart.call(this);
    this.$hasMoreThanTwoComponents = 0;
}
let nms_StructureVillageStart__init_ = $this => {
    $this.$components = new ju_LinkedList;
},
nms_StructureVillageStart__init_2 = () => {
    let var_0 = new nms_StructureVillageStart();
    nms_StructureVillageStart__init_(var_0);
    return var_0;
},
nms_StructureVillageStart__init_0 = ($this, $par1World, $par2Random, $par3, $par4, $par5) => {
    let $var6, $var7, $var8, $var9, var$10, $var10, $var10_0, $var13$nextEntry;
    $this.$components = new ju_LinkedList;
    $this.$field_143024_c = $par3;
    $this.$field_143023_d = $par4;
    $var6 = nms_StructureVillagePieces_getStructureVillageWeightedPieceList($par2Random, $par5);
    $var7 = nms_ComponentVillageStartPiece__init_1($par1World.$provider.$worldChunkMgr, 0, $par2Random, ($par3 << 4) + 2 | 0, ($par4 << 4) + 2 | 0, $var6, $par5);
    $par1World = $this.$components;
    $par3 = $par1World.$size2;
    if ($par3 < 0) {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var7);
    nms_ComponentVillageWell_buildComponent($var7, $var7, $this.$components, $par2Random);
    $var8 = $var7.$field_74930_j;
    $var9 = $var7.$field_74932_i;
    while (true) {
        $par4 = $var8.$size0;
        $par3 = $par4 ? 0 : 1;
        if ($par3 && ($var9.$size0 ? 0 : 1))
            break;
        if (!($par4 ? 0 : 1)) {
            var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $var10 = Long_lo(Long_shru(var$10, 17));
            $par3 = $par4 - 1 | 0;
            if (!($par4 & $par3))
                $var10_0 = Long_lo(Long_shr(Long_mul(Long_fromInt($par4), Long_fromInt($var10)), 31));
            else
                while (true) {
                    $var10_0 = $var10 % $par4 | 0;
                    if ((($var10 - $var10_0 | 0) + $par3 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$10;
                    $var10 = Long_lo(Long_shru(var$10, 17));
                }
            (ju_ArrayList_remove($var8, $var10_0)).$buildComponent($var7, $this.$components, $par2Random);
        } else {
            $var10_0 = $var9.$size0;
            var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$10;
            $par5 = Long_lo(Long_shru(var$10, 17));
            $par3 = $var10_0 - 1 | 0;
            if (!($var10_0 & $par3))
                $var10 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10_0), Long_fromInt($par5)), 31));
            else
                while (true) {
                    $var10 = $par5 % $var10_0 | 0;
                    if ((($par5 - $var10 | 0) + $par3 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$10;
                    $par5 = Long_lo(Long_shru(var$10, 17));
                }
            (ju_ArrayList_remove($var9, $var10)).$buildComponent($var7, $this.$components, $par2Random);
        }
    }
    $par1World = new nms_StructureBoundingBox;
    $par1World.$minX = 2147483647;
    $par1World.$minY = 2147483647;
    $par1World.$minZ = 2147483647;
    $par1World.$maxX = (-2147483648);
    $par1World.$maxY1 = (-2147483648);
    $par1World.$maxZ = (-2147483648);
    $this.$boundingBox1 = $par1World;
    $par1World = $this.$components;
    $var7 = $par1World.$firstEntry;
    $par4 = $par1World.$modCount;
    while (true) {
        if (!($var7 === null ? 0 : 1)) {
            $var10 = 0;
            $par1World = $this.$components;
            $var13$nextEntry = $par1World.$firstEntry;
            $par3 = $par1World.$modCount;
            $par4 = $rt_compare($par3, $par3);
            while (true) {
                if (!($var13$nextEntry === null ? 0 : 1)) {
                    $this.$hasMoreThanTwoComponents = $var10 <= 2 ? 0 : 1;
                    return;
                }
                if ($par4 < 0) {
                    $par1World = new ju_ConcurrentModificationException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                if ($var13$nextEntry === null)
                    break;
                $par1World = $var13$nextEntry.$item;
                $var13$nextEntry = $var13$nextEntry.$next5;
                if (!($par1World instanceof nms_ComponentVillageRoadPiece))
                    $var10 = $var10 + 1 | 0;
            }
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($par4 < $par1World.$modCount) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($var7 === null)
            break;
        $par2Random = $var7.$item;
        $var7 = $var7.$next5;
        $par2Random = $par2Random;
        nms_StructureBoundingBox_expandTo($this.$boundingBox1, $par2Random.$boundingBox);
    }
    $par1World = new ju_NoSuchElementException;
    $par1World.$suppressionEnabled = 1;
    $par1World.$writableStackTrace = 1;
    $rt_throw($par1World);
},
nms_StructureVillageStart__init_1 = (var_0, var_1, var_2, var_3, var_4) => {
    let var_5 = new nms_StructureVillageStart();
    nms_StructureVillageStart__init_0(var_5, var_0, var_1, var_2, var_3, var_4);
    return var_5;
},
nms_StructureVillageStart_isSizeableStructure = $this => {
    return $this.$hasMoreThanTwoComponents;
},
nms_StructureVillageStart_func_143022_a = ($this, $par1NBTTagCompound) => {
    let var$2, var$3;
    var$2 = (!$this.$hasMoreThanTwoComponents ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2739);
    $par1NBTTagCompound.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2739), $par1NBTTagCompound);
},
nms_StructureVillageStart_func_143017_b = ($this, $var1) => {
    let var$2, var$3, var$4, var$5, var$6;
    a: {
        var$2 = $var1.$tagMap;
        if (!$rt_s(2739).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2739).$nativeString.length)
                    break a;
                $rt_s(2739).$hashCode1 = (31 * $rt_s(2739).$hashCode1 | 0) + $rt_s(2739).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2739).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2739) !== var$6) {
                    if ($rt_s(2739) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2739).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $var1 = $var1.$tagMap;
        if ($rt_s(2739) === null) {
            var$6 = $var1.$elementData.data[0];
            while (var$6 !== null && var$6.$key !== null) {
                var$6 = var$6.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2739).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2739).$nativeString.length)
                            break c;
                        $rt_s(2739).$hashCode1 = (31 * $rt_s(2739).$hashCode1 | 0) + $rt_s(2739).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2739).$hashCode1;
            var$5 = $var1.$elementData.data;
            var$6 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$6 !== null) {
                if (var$6.$origKeyHash == var$3) {
                    d: {
                        $var1 = var$6.$key;
                        if ($rt_s(2739) !== $var1) {
                            if ($rt_s(2739) === $var1)
                                var$4 = 1;
                            else if (!($var1 instanceof jl_String))
                                var$4 = 0;
                            else {
                                $var1 = $var1;
                                var$4 = $rt_s(2739).$nativeString !== $var1.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$6 = var$6.$next3;
            }
        }
        var$4 = (var$6 === null ? null : var$6.$value0).$data0;
    }
    $this.$hasMoreThanTwoComponents = !var$4 ? 0 : 1;
},
nms_StructureNetherBridgeStart = $rt_classWithoutFields(nms_StructureStart),
nms_StructureNetherBridgeStart__init_ = $this => {
    $this.$components = new ju_LinkedList;
},
nms_StructureNetherBridgeStart__init_2 = () => {
    let var_0 = new nms_StructureNetherBridgeStart();
    nms_StructureNetherBridgeStart__init_(var_0);
    return var_0;
},
nms_StructureNetherBridgeStart__init_1 = ($this, $par1World, $par2Random, $par3, $par4) => {
    let $var5, $var6, $var8, var$8, var$9, var$10, $var7, var$12;
    $this.$components = new ju_LinkedList;
    $this.$field_143024_c = $par3;
    $this.$field_143023_d = $par4;
    $var5 = nms_ComponentNetherBridgeStartPiece__init_1($par2Random, ($par3 << 4) + 2 | 0, ($par4 << 4) + 2 | 0);
    $var6 = $this.$components;
    $par3 = $var6.$size2;
    if ($par3 < 0) {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var6, $par3), $var5);
    $var6 = $this.$components;
    $var8 = $var5;
    nms_ComponentNetherBridgePiece_getNextComponentNormal($var5, $var8, $var6, $par2Random, 8, 3, 0);
    nms_ComponentNetherBridgePiece_getNextComponentX($var5, $var8, $var6, $par2Random, 3, 8, 0);
    nms_ComponentNetherBridgePiece_getNextComponentZ($var5, $var8, $var6, $par2Random, 3, 8, 0);
    $var6 = $var5.$field_74967_d;
    while (true) {
        var$8 = $var6.$size0;
        if (var$8 ? 0 : 1)
            break;
        var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$9;
        $par3 = Long_lo(Long_shru(var$9, 17));
        var$10 = var$8 - 1 | 0;
        if (!(var$8 & var$10))
            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$8), Long_fromInt($par3)), 31));
        else
            while (true) {
                $var7 = $par3 % var$8 | 0;
                if ((($par3 - $var7 | 0) + var$10 | 0) >= 0)
                    break;
                var$9 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$9;
                $par3 = Long_lo(Long_shru(var$9, 17));
            }
        (ju_ArrayList_remove($var6, $var7)).$buildComponent($var5, $this.$components, $par2Random);
    }
    $var5 = new nms_StructureBoundingBox;
    $var5.$minX = 2147483647;
    $var5.$minY = 2147483647;
    $var5.$minZ = 2147483647;
    $var5.$maxX = (-2147483648);
    $var5.$maxY1 = (-2147483648);
    $var5.$maxZ = (-2147483648);
    $this.$boundingBox1 = $var5;
    $var5 = $this.$components;
    var$12 = $var5.$firstEntry;
    $par4 = $var5.$modCount;
    while (var$12 === null ? 0 : 1) {
        if ($par4 < $var5.$modCount) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if (var$12 === null) {
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var6 = var$12.$item;
        var$12 = var$12.$next5;
        $var6 = $var6;
        nms_StructureBoundingBox_expandTo($this.$boundingBox1, $var6.$boundingBox);
    }
    nms_StructureStart_setRandomHeight($this, $par1World, $par2Random, 48, 70);
},
nms_StructureNetherBridgeStart__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_StructureNetherBridgeStart();
    nms_StructureNetherBridgeStart__init_1(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_StructureStrongholdStart = $rt_classWithoutFields(nms_StructureStart),
nms_StructureStrongholdStart__init_ = $this => {
    $this.$components = new ju_LinkedList;
},
nms_StructureStrongholdStart__init_2 = () => {
    let var_0 = new nms_StructureStrongholdStart();
    nms_StructureStrongholdStart__init_(var_0);
    return var_0;
},
nms_StructureStrongholdStart__init_1 = ($this, $par1World, $par2Random, $par3, $par4) => {
    let $var6, var$6, var$7, var$8, $var5, var$10, var$11, $var8, var$13, $var7, var$15;
    $this.$components = new ju_LinkedList;
    $this.$field_143024_c = $par3;
    $this.$field_143023_d = $par4;
    $var6 = new ju_ArrayList;
    $var6.$array = $rt_createArray(jl_Object, 10);
    nms_StructureStrongholdPieces_structurePieceList = $var6;
    var$6 = nms_StructureStrongholdPieces_pieceWeightArray.data;
    var$7 = var$6.length;
    var$8 = 0;
    while (var$8 < var$7) {
        $var6 = var$6[var$8];
        $var6.$instancesSpawned = 0;
        $var5 = nms_StructureStrongholdPieces_structurePieceList;
        ju_ArrayList_ensureCapacity($var5, $var5.$size0 + 1 | 0);
        var$10 = $var5.$array.data;
        var$11 = $var5.$size0;
        $var5.$size0 = var$11 + 1 | 0;
        var$10[var$11] = $var6;
        $var5.$modCount = $var5.$modCount + 1 | 0;
        var$8 = var$8 + 1 | 0;
    }
    nms_StructureStrongholdPieces_strongComponentType = null;
    $var5 = new nms_ComponentStrongholdStairs2;
    nms_ComponentStrongholdStairs__init_($var5, 0, $par2Random, ($par3 << 4) + 2 | 0, ($par4 << 4) + 2 | 0);
    $var6 = new ju_ArrayList;
    $var6.$array = $rt_createArray(jl_Object, 10);
    $var5.$field_75026_c = $var6;
    $var6 = $this.$components;
    $par3 = $var6.$size2;
    if ($par3 < 0) {
        $par1World = new jl_IndexOutOfBoundsException;
        $par1World.$suppressionEnabled = 1;
        $par1World.$writableStackTrace = 1;
        $rt_throw($par1World);
    }
    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var6, $par3), $var5);
    $var8 = $this.$components;
    if ($var5.$field_75024_a)
        nms_StructureStrongholdPieces_strongComponentType = $rt_cls(nms_ComponentStrongholdCrossing);
    nms_ComponentStronghold_getNextComponentNormal($var5, $var5, $var8, $par2Random, 1, 1);
    $var6 = $var5.$field_75026_c;
    while (true) {
        var$8 = $var6.$size0;
        if (var$8 ? 0 : 1)
            break;
        var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        var$7 = Long_lo(Long_shru(var$13, 17));
        var$11 = var$8 - 1 | 0;
        if (!(var$8 & var$11))
            $var7 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$8), Long_fromInt(var$7)), 31));
        else
            while (true) {
                $var7 = var$7 % var$8 | 0;
                if (((var$7 - $var7 | 0) + var$11 | 0) >= 0)
                    break;
                var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                var$7 = Long_lo(Long_shru(var$13, 17));
            }
        (ju_ArrayList_remove($var6, $var7)).$buildComponent($var5, $this.$components, $par2Random);
    }
    $var6 = new nms_StructureBoundingBox;
    $var6.$minX = 2147483647;
    $var6.$minY = 2147483647;
    $var6.$minZ = 2147483647;
    $var6.$maxX = (-2147483648);
    $var6.$maxY1 = (-2147483648);
    $var6.$maxZ = (-2147483648);
    $this.$boundingBox1 = $var6;
    $var6 = $this.$components;
    var$15 = $var6.$firstEntry;
    $par4 = $var6.$modCount;
    while (var$15 === null ? 0 : 1) {
        if ($par4 < $var6.$modCount) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if (var$15 === null) {
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var5 = var$15.$item;
        var$15 = var$15.$next5;
        $var5 = $var5;
        nms_StructureBoundingBox_expandTo($this.$boundingBox1, $var5.$boundingBox);
    }
    nms_StructureStart_markAvailableHeight($this, $par1World, $par2Random, 10);
},
nms_StructureStrongholdStart__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_StructureStrongholdStart();
    nms_StructureStrongholdStart__init_1(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_StructureScatteredFeatureStart = $rt_classWithoutFields(nms_StructureStart),
nms_StructureScatteredFeatureStart__init_ = $this => {
    $this.$components = new ju_LinkedList;
},
nms_StructureScatteredFeatureStart__init_1 = () => {
    let var_0 = new nms_StructureScatteredFeatureStart();
    nms_StructureScatteredFeatureStart__init_(var_0);
    return var_0;
},
nms_StructureScatteredFeatureStart__init_0 = ($this, $par1World, $par2Random, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, $var5, $var6, var$12, var$13, var$14, var$15, $var7, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $this.$components = new ju_LinkedList;
        $this.$field_143024_c = $par3;
        $this.$field_143023_d = $par4;
        var$5 = $par3 * 16 | 0;
        var$6 = var$5 + 8 | 0;
        $par4 = $par4 * 16 | 0;
        var$7 = $par4 + 8 | 0;
        var$8 = var$6 >> 4;
        var$9 = var$7 >> 4;
        $var5 = $par1World.$chunkProvider;
        $var6 = $var5.$loadedChunkHashMap;
        var$12 = Long_or(Long_and(Long_fromInt(var$8), Long_create(4294967295, 0)), Long_shl(Long_and(Long_fromInt(var$9), Long_create(4294967295, 0)), 32));
        $par3 = Long_lo(Long_xor(var$12, Long_shru(var$12, 32)));
        var$13 = $par3 ^ ($par3 >>> 20 | 0) ^ ($par3 >>> 12 | 0);
        $par3 = var$13 ^ (var$13 >>> 7 | 0) ^ (var$13 >>> 4 | 0);
        var$14 = $var6.$hashArray.data;
        var$15 = $par3 & (var$14.length - 1 | 0);
        $var6 = var$14[var$15];
        a: {
            while (true) {
                if ($var6 === null) {
                    $var6 = null;
                    break a;
                }
                if (Long_eq($var6.$key1, var$12))
                    break;
                $var6 = $var6.$nextEntry;
            }
        }
        $par3 = $var6 === null ? 0 : 1;
        b: {
            c: {
                if ($par3) {
                    $var6 = var$14[var$15];
                    d: {
                        while ($var6 !== null) {
                            if (Long_eq($var6.$key1, var$12)) {
                                $var6 = $var6.$value4;
                                break d;
                            }
                            $var6 = $var6.$nextEntry;
                        }
                        $var6 = null;
                    }
                    $var6 = $var6;
                    if ($var6 === null) {
                        if ($var5.$worldObj0.$findingSpawnPoint)
                            break b;
                        if ($var5.$loadChunkOnProvideRequest)
                            break b;
                        $var6 = $var5.$defaultEmptyChunk;
                    }
                    if ($var6 !== null) {
                        $var5 = nms_Chunk_getBiomeGenForWorldCoords($var6, var$6 & 15, var$7 & 15, $par1World.$provider.$worldChunkMgr);
                        break c;
                    }
                }
                $var5 = $par1World.$provider.$worldChunkMgr.$getBiomeGenAt(var$6, var$7);
            }
            nms_BiomeGenBase_$callClinit();
            if ($var5 !== nms_BiomeGenBase_jungle && $var5 !== nms_BiomeGenBase_jungleHills) {
                if ($var5 === nms_BiomeGenBase_swampland) {
                    $var7 = new nms_ComponentScatteredFeatureSwampHut;
                    nms_ComponentScatteredFeature__init_($var7, $par2Random, var$5, 64, $par4, 7, 5, 9);
                    $par1World = $this.$components;
                    $par3 = $par1World.$size2;
                    if ($par3 < 0) {
                        $par1World = new jl_IndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var7);
                } else {
                    $var8 = new nms_ComponentScatteredFeatureDesertPyramid;
                    nms_ComponentScatteredFeatureDesertPyramid_$callClinit();
                    nms_ComponentScatteredFeature__init_($var8, $par2Random, var$5, 64, $par4, 21, 15, 21);
                    $var8.$field_74940_h = $rt_createBooleanArray(4);
                    $par1World = $this.$components;
                    $par3 = $par1World.$size2;
                    if ($par3 < 0) {
                        $par1World = new jl_IndexOutOfBoundsException;
                        $par1World.$suppressionEnabled = 1;
                        $par1World.$writableStackTrace = 1;
                        $rt_throw($par1World);
                    }
                    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var8);
                }
            } else {
                $var6 = new nms_ComponentScatteredFeatureJunglePyramid;
                nms_ComponentScatteredFeatureJunglePyramid_$callClinit();
                nms_ComponentScatteredFeature__init_($var6, $par2Random, var$5, 64, $par4, 12, 10, 15);
                $par1World = $this.$components;
                $par3 = $par1World.$size2;
                if ($par3 < 0) {
                    $par1World = new jl_IndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var6);
            }
            $par1World = new nms_StructureBoundingBox;
            $par1World.$minX = 2147483647;
            $par1World.$minY = 2147483647;
            $par1World.$minZ = 2147483647;
            $par1World.$maxX = (-2147483648);
            $par1World.$maxY1 = (-2147483648);
            $par1World.$maxZ = (-2147483648);
            $this.$boundingBox1 = $par1World;
            $par1World = $this.$components;
            $var6 = $par1World.$firstEntry;
            $par4 = $par1World.$modCount;
            while ($var6 === null ? 0 : 1) {
                if ($par4 < $par1World.$modCount) {
                    $par1World = new ju_ConcurrentModificationException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                if ($var6 === null) {
                    $par1World = new ju_NoSuchElementException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                $par2Random = $var6.$item;
                $var6 = $var6.$next5;
                $par2Random = $par2Random;
                nms_StructureBoundingBox_expandTo($this.$boundingBox1, $par2Random.$boundingBox);
            }
            return;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_ChunkProviderServer_loadChunk($var5, var$8, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        $var5 = $var6 === null ? $par1World.$provider.$worldChunkMgr.$getBiomeGenAt(var$6, var$7) : nms_Chunk_getBiomeGenForWorldCoords($var6, var$6 & 15, var$7 & 15, $par1World.$provider.$worldChunkMgr);
        nms_BiomeGenBase_$callClinit();
        if ($var5 !== nms_BiomeGenBase_jungle && $var5 !== nms_BiomeGenBase_jungleHills) {
            if ($var5 === nms_BiomeGenBase_swampland) {
                $var7 = new nms_ComponentScatteredFeatureSwampHut;
                nms_ComponentScatteredFeature__init_($var7, $par2Random, var$5, 64, $par4, 7, 5, 9);
                $par1World = $this.$components;
                $par3 = $par1World.$size2;
                if ($par3 < 0) {
                    $par1World = new jl_IndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var7);
            } else {
                $var8 = new nms_ComponentScatteredFeatureDesertPyramid;
                nms_ComponentScatteredFeatureDesertPyramid_$callClinit();
                nms_ComponentScatteredFeature__init_($var8, $par2Random, var$5, 64, $par4, 21, 15, 21);
                $var8.$field_74940_h = $rt_createBooleanArray(4);
                $par1World = $this.$components;
                $par3 = $par1World.$size2;
                if ($par3 < 0) {
                    $par1World = new jl_IndexOutOfBoundsException;
                    $par1World.$suppressionEnabled = 1;
                    $par1World.$writableStackTrace = 1;
                    $rt_throw($par1World);
                }
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var8);
            }
        } else {
            $var6 = new nms_ComponentScatteredFeatureJunglePyramid;
            nms_ComponentScatteredFeatureJunglePyramid_$callClinit();
            nms_ComponentScatteredFeature__init_($var6, $par2Random, var$5, 64, $par4, 12, 10, 15);
            $par1World = $this.$components;
            $par3 = $par1World.$size2;
            if ($par3 < 0) {
                $par1World = new jl_IndexOutOfBoundsException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1World, $par3), $var6);
        }
        $par1World = new nms_StructureBoundingBox;
        $par1World.$minX = 2147483647;
        $par1World.$minY = 2147483647;
        $par1World.$minZ = 2147483647;
        $par1World.$maxX = (-2147483648);
        $par1World.$maxY1 = (-2147483648);
        $par1World.$maxZ = (-2147483648);
        $this.$boundingBox1 = $par1World;
        $par1World = $this.$components;
        $var6 = $par1World.$firstEntry;
        $par4 = $par1World.$modCount;
        while ($var6 === null ? 0 : 1) {
            if ($par4 < $par1World.$modCount) {
                $par1World = new ju_ConcurrentModificationException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            if ($var6 === null) {
                $par1World = new ju_NoSuchElementException;
                $par1World.$suppressionEnabled = 1;
                $par1World.$writableStackTrace = 1;
                $rt_throw($par1World);
            }
            $par2Random = $var6.$item;
            $var6 = $var6.$next5;
            $par2Random = $par2Random;
            nms_StructureBoundingBox_expandTo($this.$boundingBox1, $par2Random.$boundingBox);
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3, $par4, var$5, var$6, var$7, var$8, var$9, $var5, $var6, var$12, var$13, var$14, var$15, $var7, $var8, $ptr);
},
nms_StructureScatteredFeatureStart__init_2 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_StructureScatteredFeatureStart();
    nms_StructureScatteredFeatureStart__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_StructureMineshaftPieces = $rt_classWithoutFields(),
nms_StructureMineshaftPieces_mineshaftChestContents = null,
nms_StructureMineshaftPieces_$callClinit = () => {
    nms_StructureMineshaftPieces_$callClinit = $rt_eraseClinit(nms_StructureMineshaftPieces);
    nms_StructureMineshaftPieces__clinit_();
},
nms_StructureMineshaftPieces__init_ = $this => {
    nms_StructureMineshaftPieces_$callClinit();
},
nms_StructureMineshaftPieces__init_0 = () => {
    let var_0 = new nms_StructureMineshaftPieces();
    nms_StructureMineshaftPieces__init_(var_0);
    return var_0;
},
nms_StructureMineshaftPieces_getRandomComponent = ($par0List, $par1Random, $par2, $par3, $par4, $par5, $par6) => {
    let var$8, var$9, $var7, $var8;
    nms_StructureMineshaftPieces_$callClinit();
    var$8 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$8;
    var$9 = Long_lo(Long_shru(var$8, 17));
    while (true) {
        $var7 = var$9 % 100 | 0;
        if (((var$9 - $var7 | 0) + 99 | 0) >= 0)
            break;
        var$8 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$8;
        var$9 = Long_lo(Long_shru(var$8, 17));
    }
    a: {
        if ($var7 < 80) {
            if ($var7 < 70) {
                $var8 = nms_ComponentMineshaftCorridor_findValidPlacement($par0List, $par1Random, $par2, $par3, $par4, $par5);
                if ($var8 === null)
                    break a;
                return nms_ComponentMineshaftCorridor__init_1($par6, $par1Random, $var8, $par5);
            }
            $var8 = nms_ComponentMineshaftStairs_findValidPlacement($par0List, $par1Random, $par2, $par3, $par4, $par5);
            if ($var8 === null)
                break a;
            $par0List = new nms_ComponentMineshaftStairs;
            $par0List.$componentType = $par6;
            $par0List.$coordBaseMode = (-1);
            $par0List.$coordBaseMode = $par5;
            $par0List.$boundingBox = $var8;
            return $par0List;
        }
        $var8 = nms_ComponentMineshaftCross_findValidPlacement($par0List, $par1Random, $par2, $par3, $par4, $par5);
        if ($var8 !== null) {
            $par0List = new nms_ComponentMineshaftCross;
            $par0List.$componentType = $par6;
            $par0List.$coordBaseMode = (-1);
            $par0List.$corridorDirection = $par5;
            $par0List.$boundingBox = $var8;
            $par0List.$isMultipleFloors = (($var8.$maxY1 - $var8.$minY | 0) + 1 | 0) <= 3 ? 0 : 1;
            return $par0List;
        }
    }
    return null;
},
nms_StructureMineshaftPieces_getNextMineShaftComponent = ($par0StructureComponent, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$10, var$11;
    nms_StructureMineshaftPieces_$callClinit();
    if ($par7 > 8)
        return null;
    $var8 = $par0StructureComponent.$boundingBox;
    var$10 = $par3 - $var8.$minX | 0;
    if (var$10 < 0)
        var$10 =  -var$10 | 0;
    if (var$10 <= 80) {
        var$11 = $par5 - $var8.$minZ | 0;
        if (var$11 < 0)
            var$11 =  -var$11 | 0;
        if (var$11 <= 80) {
            $var8 = nms_StructureMineshaftPieces_getRandomComponent($par1List, $par2Random, $par3, $par4, $par5, $par6, $par7 + 1 | 0);
            if ($var8 !== null) {
                $par3 = $par1List.$size2;
                if ($par3 < 0) {
                    $par0StructureComponent = new jl_IndexOutOfBoundsException;
                    $par0StructureComponent.$suppressionEnabled = 1;
                    $par0StructureComponent.$writableStackTrace = 1;
                    $rt_throw($par0StructureComponent);
                }
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1List, $par3), $var8);
                $var8.$buildComponent($par0StructureComponent, $par1List, $par2Random);
            }
            return $var8;
        }
    }
    return null;
},
nms_StructureMineshaftPieces__clinit_ = () => {
    let var$1, var$2, var$3, var$4, var$5, var$6, var$7;
    var$1 = $rt_createArray(nms_WeightedRandomChestContent, 13);
    var$2 = var$1.data;
    var$3 = new nms_WeightedRandomChestContent;
    nms_Item_$callClinit();
    var$4 = nms_Item_ingotIron.$itemID0;
    var$3.$itemWeight = 10;
    var$5 = new nms_ItemStack;
    nms_ItemStack_$callClinit();
    var$5.$itemID = var$4;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 5;
    var$2[0] = var$3;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_ingotGold.$itemID0;
    var$5.$itemWeight = 5;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 3;
    var$2[1] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_redstone.$itemID0;
    var$5.$itemWeight = 5;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 4;
    var$5.$theMaximumChanceToGenerateItem = 9;
    var$2[2] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_dyePowder.$itemID0;
    var$5.$itemWeight = 5;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 4;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 4;
    var$5.$theMaximumChanceToGenerateItem = 9;
    var$2[3] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_diamond.$itemID0;
    var$5.$itemWeight = 3;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 2;
    var$2[4] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_coal.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 3;
    var$5.$theMaximumChanceToGenerateItem = 8;
    var$2[5] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_bread.$itemID0;
    var$5.$itemWeight = 15;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 3;
    var$2[6] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$6 = nms_Item_pickaxeIron.$itemID0;
    var$5.$itemWeight = 1;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 1;
    var$5.$theMaximumChanceToGenerateItem = 1;
    var$2[7] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    nms_Block_$callClinit();
    var$6 = nms_Block_rail.$blockID;
    var$5.$itemWeight = 1;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$6;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 4;
    var$5.$theMaximumChanceToGenerateItem = 8;
    var$2[8] = var$5;
    var$5 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_melonSeeds.$itemID0;
    var$5.$itemWeight = 10;
    var$3 = new nms_ItemStack;
    var$3.$itemID = var$7;
    var$3.$stackSize = 1;
    var$3.$itemDamage = 0;
    var$5.$theItemId = var$3;
    var$5.$theMinimumChanceToGenerateItem = 2;
    var$5.$theMaximumChanceToGenerateItem = 4;
    var$2[9] = var$5;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_pumpkinSeeds.$itemID0;
    var$3.$itemWeight = 10;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 2;
    var$3.$theMaximumChanceToGenerateItem = 4;
    var$2[10] = var$3;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_saddle.$itemID0;
    var$3.$itemWeight = 3;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[11] = var$3;
    var$3 = new nms_WeightedRandomChestContent;
    var$7 = nms_Item_horseArmorIron.$itemID0;
    var$3.$itemWeight = 1;
    var$5 = new nms_ItemStack;
    var$5.$itemID = var$7;
    var$5.$stackSize = 1;
    var$5.$itemDamage = 0;
    var$3.$theItemId = var$5;
    var$3.$theMinimumChanceToGenerateItem = 1;
    var$3.$theMaximumChanceToGenerateItem = 1;
    var$2[12] = var$3;
    nms_StructureMineshaftPieces_mineshaftChestContents = var$1;
},
nms_StructureVillagePieces = $rt_classWithoutFields(),
nms_StructureVillagePieces__init_ = $this => {
    return;
},
nms_StructureVillagePieces__init_0 = () => {
    let var_0 = new nms_StructureVillagePieces();
    nms_StructureVillagePieces__init_(var_0);
    return var_0;
},
nms_StructureVillagePieces_func_143016_a = () => {
    nms_MapGenStructureIO_$callClinit();
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2740), $rt_cls(nms_ComponentVillageHouse1));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageHouse1), $rt_s(2740));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2741), $rt_cls(nms_ComponentVillageField));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageField), $rt_s(2741));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2742), $rt_cls(nms_ComponentVillageField2));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageField2), $rt_s(2742));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2743), $rt_cls(nms_ComponentVillageTorch));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageTorch), $rt_s(2743));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2744), $rt_cls(nms_ComponentVillageHall));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageHall), $rt_s(2744));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2745), $rt_cls(nms_ComponentVillageHouse4_Garden));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageHouse4_Garden), $rt_s(2745));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2746), $rt_cls(nms_ComponentVillageWoodHut));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageWoodHut), $rt_s(2746));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2747), $rt_cls(nms_ComponentVillageChurch));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageChurch), $rt_s(2747));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2748), $rt_cls(nms_ComponentVillageHouse2));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageHouse2), $rt_s(2748));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2749), $rt_cls(nms_ComponentVillageStartPiece));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageStartPiece), $rt_s(2749));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2750), $rt_cls(nms_ComponentVillagePathGen));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillagePathGen), $rt_s(2750));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2751), $rt_cls(nms_ComponentVillageHouse3));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageHouse3), $rt_s(2751));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2752), $rt_cls(nms_ComponentVillageWell));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentVillageWell), $rt_s(2752));
},
nms_StructureVillagePieces_getStructureVillageWeightedPieceList = ($par0Random, $par1) => {
    let $var2, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $var3, var$16, var$17, var$18, var$19, var$20, var$21;
    $var2 = new ju_ArrayList;
    $var2.$array = $rt_createArray(jl_Object, 10);
    var$4 = new nms_StructureVillagePieceWeight;
    var$5 = 2 + $par1 | 0;
    var$6 = $par1 * 2 | 0;
    var$7 = 4 + var$6 | 0;
    var$8 = $rt_compare(var$5, var$7);
    if (var$8 >= 0)
        var$9 = var$5;
    else {
        var$9 = (var$7 - var$5 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        var$12 = var$9 - 1 | 0;
        if (!(var$9 & var$12))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$11)), 31));
        else
            while (true) {
                var$13 = var$11 % var$9 | 0;
                if (((var$11 - var$13 | 0) + var$12 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
        var$9 = var$13 + var$5 | 0;
    }
    var$4.$villagePieceClass = $rt_cls(nms_ComponentVillageHouse4_Garden);
    var$4.$villagePieceWeight = 4;
    var$4.$villagePiecesLimit = var$9;
    ju_ArrayList_ensureCapacity($var2, $var2.$size0 + 1 | 0);
    var$14 = $var2.$array.data;
    var$12 = $var2.$size0;
    var$9 = var$12 + 1 | 0;
    $var2.$size0 = var$9;
    var$14[var$12] = var$4;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    var$16 = 0 + $par1 | 0;
    var$17 = 1 + $par1 | 0;
    if (var$16 >= var$17)
        var$13 = var$16;
    else {
        var$13 = (var$17 - var$16 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$18 = Long_lo(Long_shru(var$10, 17));
        var$11 = var$13 - 1 | 0;
        if (!(var$13 & var$11))
            var$19 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$13), Long_fromInt(var$18)), 31));
        else
            while (true) {
                var$19 = var$18 % var$13 | 0;
                if (((var$18 - var$19 | 0) + var$11 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$18 = Long_lo(Long_shru(var$10, 17));
            }
        var$13 = var$19 + var$16 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageChurch);
    $var3.$villagePieceWeight = 20;
    $var3.$villagePiecesLimit = var$13;
    ju_ArrayList_ensureCapacity($var2, var$9 + 1 | 0);
    var$14 = $var2.$array.data;
    var$9 = $var2.$size0;
    var$11 = var$9 + 1 | 0;
    $var2.$size0 = var$11;
    var$14[var$9] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    var$20 = $rt_compare(var$16, var$5);
    if (var$20 >= 0)
        var$9 = var$16;
    else {
        var$18 = (var$5 - var$16 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$12 = Long_lo(Long_shru(var$10, 17));
        var$21 = var$18 - 1 | 0;
        if (!(var$18 & var$21))
            var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$18), Long_fromInt(var$12)), 31));
        else
            while (true) {
                var$9 = var$12 % var$18 | 0;
                if (((var$12 - var$9 | 0) + var$21 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$12 = Long_lo(Long_shru(var$10, 17));
            }
        var$9 = var$9 + var$16 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageHouse1);
    $var3.$villagePieceWeight = 20;
    $var3.$villagePiecesLimit = var$9;
    ju_ArrayList_ensureCapacity($var2, var$11 + 1 | 0);
    var$14 = $var2.$array.data;
    var$12 = $var2.$size0;
    var$21 = var$12 + 1 | 0;
    $var2.$size0 = var$21;
    var$14[var$12] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    var$12 = 5 + ($par1 * 3 | 0) | 0;
    if (var$5 >= var$12)
        var$9 = var$5;
    else {
        var$9 = (var$12 - var$5 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        var$12 = var$9 - 1 | 0;
        if (!(var$9 & var$12))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$11)), 31));
        else
            while (true) {
                var$13 = var$11 % var$9 | 0;
                if (((var$11 - var$13 | 0) + var$12 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
        var$9 = var$13 + var$5 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageWoodHut);
    $var3.$villagePieceWeight = 3;
    $var3.$villagePiecesLimit = var$9;
    ju_ArrayList_ensureCapacity($var2, var$21 + 1 | 0);
    var$14 = $var2.$array.data;
    var$12 = $var2.$size0;
    var$18 = var$12 + 1 | 0;
    $var2.$size0 = var$18;
    var$14[var$12] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    if (var$20 >= 0)
        var$9 = var$16;
    else {
        var$9 = (var$5 - var$16 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$11 = Long_lo(Long_shru(var$10, 17));
        var$12 = var$9 - 1 | 0;
        if (!(var$9 & var$12))
            var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$11)), 31));
        else
            while (true) {
                var$13 = var$11 % var$9 | 0;
                if (((var$11 - var$13 | 0) + var$12 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
        var$9 = var$13 + var$16 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageHall);
    $var3.$villagePieceWeight = 15;
    $var3.$villagePiecesLimit = var$9;
    ju_ArrayList_ensureCapacity($var2, var$18 + 1 | 0);
    var$14 = $var2.$array.data;
    var$12 = $var2.$size0;
    var$9 = var$12 + 1 | 0;
    $var2.$size0 = var$9;
    var$14[var$12] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    $par1 = 4 + $par1 | 0;
    if (var$17 >= $par1)
        $par1 = var$17;
    else {
        $par1 = ($par1 - var$17 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$19 = Long_lo(Long_shru(var$10, 17));
        var$13 = $par1 - 1 | 0;
        if (!($par1 & var$13))
            var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt($par1), Long_fromInt(var$19)), 31));
        else
            while (true) {
                var$11 = var$19 % $par1 | 0;
                if (((var$19 - var$11 | 0) + var$13 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$19 = Long_lo(Long_shru(var$10, 17));
            }
        $par1 = var$11 + var$17 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageField);
    $var3.$villagePieceWeight = 3;
    $var3.$villagePiecesLimit = $par1;
    ju_ArrayList_ensureCapacity($var2, var$9 + 1 | 0);
    var$14 = $var2.$array.data;
    var$9 = $var2.$size0;
    $par1 = var$9 + 1 | 0;
    $var2.$size0 = $par1;
    var$14[var$9] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    if (var$8 < 0) {
        var$12 = (var$7 - var$5 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$19 = Long_lo(Long_shru(var$10, 17));
        var$13 = var$12 - 1 | 0;
        if (!(var$12 & var$13))
            var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$12), Long_fromInt(var$19)), 31));
        else
            while (true) {
                var$11 = var$19 % var$12 | 0;
                if (((var$19 - var$11 | 0) + var$13 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$19 = Long_lo(Long_shru(var$10, 17));
            }
        var$5 = var$11 + var$5 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageField2);
    $var3.$villagePieceWeight = 3;
    $var3.$villagePiecesLimit = var$5;
    ju_ArrayList_ensureCapacity($var2, $par1 + 1 | 0);
    var$14 = $var2.$array.data;
    var$9 = $var2.$size0;
    $par1 = var$9 + 1 | 0;
    $var2.$size0 = $par1;
    var$14[var$9] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    var$12 = 0;
    if (var$12 < var$17) {
        var$13 = (var$17 - var$12 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$18 = Long_lo(Long_shru(var$10, 17));
        var$11 = var$13 - 1 | 0;
        if (!(var$13 & var$11))
            var$19 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$13), Long_fromInt(var$18)), 31));
        else
            while (true) {
                var$19 = var$18 % var$13 | 0;
                if (((var$18 - var$19 | 0) + var$11 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$18 = Long_lo(Long_shru(var$10, 17));
            }
        var$12 = var$19 + var$12 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageHouse2);
    $var3.$villagePieceWeight = 15;
    $var3.$villagePiecesLimit = var$12;
    ju_ArrayList_ensureCapacity($var2, $par1 + 1 | 0);
    var$14 = $var2.$array.data;
    var$9 = $var2.$size0;
    $par1 = var$9 + 1 | 0;
    $var2.$size0 = $par1;
    var$14[var$9] = $var3;
    $var2.$modCount = $var2.$modCount + 1 | 0;
    $var3 = new nms_StructureVillagePieceWeight;
    var$12 = 3 + var$6 | 0;
    if (var$16 < var$12) {
        var$12 = (var$12 - var$16 | 0) + 1 | 0;
        var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par0Random.$seed = var$10;
        var$19 = Long_lo(Long_shru(var$10, 17));
        var$13 = var$12 - 1 | 0;
        if (!(var$12 & var$13))
            var$11 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$12), Long_fromInt(var$19)), 31));
        else
            while (true) {
                var$11 = var$19 % var$12 | 0;
                if (((var$19 - var$11 | 0) + var$13 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par0Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par0Random.$seed = var$10;
                var$19 = Long_lo(Long_shru(var$10, 17));
            }
        var$16 = var$11 + var$16 | 0;
    }
    $var3.$villagePieceClass = $rt_cls(nms_ComponentVillageHouse3);
    $var3.$villagePieceWeight = 8;
    $var3.$villagePiecesLimit = var$16;
    ju_ArrayList_ensureCapacity($var2, $par1 + 1 | 0);
    var$14 = $var2.$array.data;
    var$9 = $var2.$size0;
    $var2.$size0 = var$9 + 1 | 0;
    var$14[var$9] = $var3;
    $par1 = $var2.$modCount + 1 | 0;
    $var2.$modCount = $par1;
    $var3 = new ju_AbstractList$1;
    $var3.$this$00 = $var2;
    $var3.$modCount0 = $par1;
    $var3.$size3 = $var2.$size();
    $var3.$removeIndex = (-1);
    while (true) {
        $par1 = $var3.$index;
        if (!($par1 >= $var3.$size3 ? 0 : 1))
            break;
        var$9 = $var3.$modCount0;
        $par0Random = $var3.$this$00;
        if (var$9 < $par0Random.$modCount) {
            $par0Random = new ju_ConcurrentModificationException;
            $par0Random.$suppressionEnabled = 1;
            $par0Random.$writableStackTrace = 1;
            $rt_throw($par0Random);
        }
        $var3.$removeIndex = $par1;
        $var3.$index = $par1 + 1 | 0;
        if (($par0Random.$get($par1)).$villagePiecesLimit)
            continue;
        ju_AbstractList$1_remove($var3);
    }
    return $var2;
},
nms_StructureVillagePieces_func_75079_a = $par0List => {
    let $var1, $var2, $var3$index, var$5, var$6, $var3$index_0, $var4;
    $var1 = 0;
    $var2 = 0;
    $var3$index = 0;
    var$5 = $par0List.$modCount;
    var$6 = $par0List.$size();
    while ($var3$index >= var$6 ? 0 : 1) {
        if (var$5 < $par0List.$modCount) {
            $par0List = new ju_ConcurrentModificationException;
            $par0List.$suppressionEnabled = 1;
            $par0List.$writableStackTrace = 1;
            $rt_throw($par0List);
        }
        $var3$index_0 = $var3$index + 1 | 0;
        $var4 = $par0List.$get($var3$index);
        $var3$index = $var4.$villagePiecesLimit;
        if ($var3$index > 0 && $var4.$villagePiecesSpawned < $var3$index)
            $var1 = 1;
        $var2 = $var2 + $var4.$villagePieceWeight | 0;
        $var3$index = $var3$index_0;
    }
    if (!$var1)
        $var2 = (-1);
    return $var2;
},
nms_StructureVillagePieces_func_75083_a = ($par0ComponentVillageStartPiece, $par1StructureVillagePieceWeight, $par2List, $par3Random, $par4, $par5, $par6, $par7, $par8) => {
    let $var9, $var10, var$12, var$13, var$14;
    $var9 = $par1StructureVillagePieceWeight.$villagePieceClass;
    $var10 = null;
    if ($var9 === $rt_cls(nms_ComponentVillageHouse4_Garden)) {
        $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 5, 6, 5, $par7);
        var$12 = $par2List.$firstEntry;
        $par5 = $par2List.$modCount;
        a: {
            while (true) {
                if (!(var$12 === null ? 0 : 1)) {
                    $var9 = null;
                    break a;
                }
                if ($par5 < $par2List.$modCount) {
                    $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                    jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                    $rt_throw($par0ComponentVillageStartPiece);
                }
                if (var$12 === null)
                    break;
                $var9 = var$12.$item;
                var$12 = var$12.$next5;
                $var9 = $var9;
                $var10 = $var9.$boundingBox;
                if ($var10 === null)
                    continue;
                if (nms_StructureBoundingBox_intersectsWith($var10, $par1StructureVillagePieceWeight))
                    break a;
            }
            $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
            $rt_throw($par0ComponentVillageStartPiece);
        }
        if ($var9 !== null)
            $var10 = null;
        else {
            $var10 = new nms_ComponentVillageHouse4_Garden;
            $var10.$componentType = $par8;
            $var10.$coordBaseMode = (-1);
            $var10.$field_143015_k = (-1);
            if ($par0ComponentVillageStartPiece !== null)
                $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
            $var10.$coordBaseMode = $par7;
            $var10.$boundingBox = $par1StructureVillagePieceWeight;
            var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$13;
            $var10.$isRoofAccessible = !Long_lo(Long_shru(var$13, 47)) ? 0 : 1;
        }
    } else if ($var9 === $rt_cls(nms_ComponentVillageChurch)) {
        $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 5, 12, 9, $par7);
        $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
        b: {
            if ($par4) {
                $var10 = $par2List.$firstEntry;
                $par5 = $par2List.$modCount;
                c: {
                    while (true) {
                        if (!($var10 === null ? 0 : 1)) {
                            $par3Random = null;
                            break c;
                        }
                        if ($par5 < $par2List.$modCount) {
                            $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if ($var10 === null)
                            break;
                        $par3Random = $var10.$item;
                        $var10 = $var10.$next5;
                        $par3Random = $par3Random;
                        $var9 = $par3Random.$boundingBox;
                        if ($var9 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith($var9, $par1StructureVillagePieceWeight))
                            break c;
                    }
                    $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                    $rt_throw($par0ComponentVillageStartPiece);
                }
                if ($par3Random === null) {
                    $var10 = new nms_ComponentVillageChurch;
                    $var10.$componentType = $par8;
                    $var10.$coordBaseMode = (-1);
                    $var10.$field_143015_k = (-1);
                    if ($par0ComponentVillageStartPiece !== null)
                        $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                    $var10.$coordBaseMode = $par7;
                    $var10.$boundingBox = $par1StructureVillagePieceWeight;
                    break b;
                }
            }
            $var10 = null;
        }
    } else if ($var9 === $rt_cls(nms_ComponentVillageHouse1)) {
        $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 9, 9, 6, $par7);
        $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
        d: {
            if ($par4) {
                $var10 = $par2List.$firstEntry;
                $par5 = $par2List.$modCount;
                e: {
                    while (true) {
                        if (!($var10 === null ? 0 : 1)) {
                            $par3Random = null;
                            break e;
                        }
                        if ($par5 < $par2List.$modCount) {
                            $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if ($var10 === null)
                            break;
                        $par3Random = $var10.$item;
                        $var10 = $var10.$next5;
                        $par3Random = $par3Random;
                        $var9 = $par3Random.$boundingBox;
                        if ($var9 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith($var9, $par1StructureVillagePieceWeight))
                            break e;
                    }
                    $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                    $rt_throw($par0ComponentVillageStartPiece);
                }
                if ($par3Random === null) {
                    $var10 = new nms_ComponentVillageHouse1;
                    $var10.$componentType = $par8;
                    $var10.$coordBaseMode = (-1);
                    $var10.$field_143015_k = (-1);
                    if ($par0ComponentVillageStartPiece !== null)
                        $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                    $var10.$coordBaseMode = $par7;
                    $var10.$boundingBox = $par1StructureVillagePieceWeight;
                    break d;
                }
            }
            $var10 = null;
        }
    } else if ($var9 === $rt_cls(nms_ComponentVillageWoodHut)) {
        $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 4, 6, 5, $par7);
        $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
        f: {
            if ($par4) {
                var$12 = $par2List.$firstEntry;
                $par5 = $par2List.$modCount;
                g: {
                    while (true) {
                        if (!(var$12 === null ? 0 : 1)) {
                            $var9 = null;
                            break g;
                        }
                        if ($par5 < $par2List.$modCount) {
                            $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if (var$12 === null)
                            break;
                        $var9 = var$12.$item;
                        var$12 = var$12.$next5;
                        $var9 = $var9;
                        $var10 = $var9.$boundingBox;
                        if ($var10 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith($var10, $par1StructureVillagePieceWeight))
                            break g;
                    }
                    $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                    $rt_throw($par0ComponentVillageStartPiece);
                }
                if ($var9 === null) {
                    $var10 = new nms_ComponentVillageWoodHut;
                    $var10.$componentType = $par8;
                    $var10.$coordBaseMode = (-1);
                    $var10.$field_143015_k = (-1);
                    if ($par0ComponentVillageStartPiece !== null)
                        $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                    $var10.$coordBaseMode = $par7;
                    $var10.$boundingBox = $par1StructureVillagePieceWeight;
                    var$14 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$14;
                    $var10.$isTallHouse = !Long_lo(Long_shru(var$14, 47)) ? 0 : 1;
                    var$13 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$13;
                    $par6 = Long_lo(Long_shru(var$13, 17));
                    while (true) {
                        $par7 = $par6 % 3 | 0;
                        if ((($par6 - $par7 | 0) + 2 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par6 = Long_lo(Long_shru(var$13, 17));
                    }
                    $var10.$tablePosition = $par7;
                    break f;
                }
            }
            $var10 = null;
        }
    } else if ($var9 === $rt_cls(nms_ComponentVillageHall)) {
        $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 9, 7, 11, $par7);
        $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
        h: {
            if ($par4) {
                $var10 = $par2List.$firstEntry;
                $par5 = $par2List.$modCount;
                i: {
                    while (true) {
                        if (!($var10 === null ? 0 : 1)) {
                            $par3Random = null;
                            break i;
                        }
                        if ($par5 < $par2List.$modCount) {
                            $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if ($var10 === null)
                            break;
                        $par3Random = $var10.$item;
                        $var10 = $var10.$next5;
                        $par3Random = $par3Random;
                        $var9 = $par3Random.$boundingBox;
                        if ($var9 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith($var9, $par1StructureVillagePieceWeight))
                            break i;
                    }
                    $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                    $rt_throw($par0ComponentVillageStartPiece);
                }
                if ($par3Random === null) {
                    $var10 = new nms_ComponentVillageHall;
                    $var10.$componentType = $par8;
                    $var10.$coordBaseMode = (-1);
                    $var10.$field_143015_k = (-1);
                    if ($par0ComponentVillageStartPiece !== null)
                        $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                    $var10.$coordBaseMode = $par7;
                    $var10.$boundingBox = $par1StructureVillagePieceWeight;
                    break h;
                }
            }
            $var10 = null;
        }
    } else if ($var9 !== $rt_cls(nms_ComponentVillageField)) {
        if ($var9 !== $rt_cls(nms_ComponentVillageField2)) {
            if ($var9 === $rt_cls(nms_ComponentVillageHouse2)) {
                nms_ComponentVillageHouse2_$callClinit();
                $var9 = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 10, 6, 7, $par7);
                $par4 = $var9 !== null && $var9.$minY > 10 ? 1 : 0;
                j: {
                    if ($par4) {
                        $par3Random = $par2List.$firstEntry;
                        $par5 = $par2List.$modCount;
                        k: {
                            while (true) {
                                if (!($par3Random === null ? 0 : 1)) {
                                    $var10 = null;
                                    break k;
                                }
                                if ($par5 < $par2List.$modCount) {
                                    $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                                    $rt_throw($par0ComponentVillageStartPiece);
                                }
                                if ($par3Random === null)
                                    break;
                                $par1StructureVillagePieceWeight = $par3Random.$item;
                                $par3Random = $par3Random.$next5;
                                $var10 = $par1StructureVillagePieceWeight;
                                $par1StructureVillagePieceWeight = $var10.$boundingBox;
                                if ($par1StructureVillagePieceWeight === null)
                                    continue;
                                if (nms_StructureBoundingBox_intersectsWith($par1StructureVillagePieceWeight, $var9))
                                    break k;
                            }
                            $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if ($var10 === null) {
                            $var10 = new nms_ComponentVillageHouse2;
                            $var10.$componentType = $par8;
                            $var10.$coordBaseMode = (-1);
                            $var10.$field_143015_k = (-1);
                            if ($par0ComponentVillageStartPiece !== null)
                                $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                            $var10.$coordBaseMode = $par7;
                            $var10.$boundingBox = $var9;
                            break j;
                        }
                    }
                    $var10 = null;
                }
            } else if ($var9 === $rt_cls(nms_ComponentVillageHouse3)) {
                $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 9, 7, 12, $par7);
                $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
                l: {
                    if ($par4) {
                        $var10 = $par2List.$firstEntry;
                        $par5 = $par2List.$modCount;
                        m: {
                            while (true) {
                                if (!($var10 === null ? 0 : 1)) {
                                    $par3Random = null;
                                    break m;
                                }
                                if ($par5 < $par2List.$modCount) {
                                    $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                                    $rt_throw($par0ComponentVillageStartPiece);
                                }
                                if ($var10 === null)
                                    break;
                                $par3Random = $var10.$item;
                                $var10 = $var10.$next5;
                                $par3Random = $par3Random;
                                $var9 = $par3Random.$boundingBox;
                                if ($var9 === null)
                                    continue;
                                if (nms_StructureBoundingBox_intersectsWith($var9, $par1StructureVillagePieceWeight))
                                    break m;
                            }
                            $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if ($par3Random === null) {
                            $var10 = new nms_ComponentVillageHouse3;
                            $var10.$componentType = $par8;
                            $var10.$coordBaseMode = (-1);
                            $var10.$field_143015_k = (-1);
                            if ($par0ComponentVillageStartPiece !== null)
                                $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                            $var10.$coordBaseMode = $par7;
                            $var10.$boundingBox = $par1StructureVillagePieceWeight;
                            break l;
                        }
                    }
                    $var10 = null;
                }
            }
        } else {
            $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 7, 4, 9, $par7);
            $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
            n: {
                if ($par4) {
                    var$12 = $par2List.$firstEntry;
                    $par5 = $par2List.$modCount;
                    o: {
                        while (true) {
                            if (!(var$12 === null ? 0 : 1)) {
                                $var9 = null;
                                break o;
                            }
                            if ($par5 < $par2List.$modCount) {
                                $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                                $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                                $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                                $rt_throw($par0ComponentVillageStartPiece);
                            }
                            if (var$12 === null)
                                break;
                            $var9 = var$12.$item;
                            var$12 = var$12.$next5;
                            $var9 = $var9;
                            $var10 = $var9.$boundingBox;
                            if ($var10 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var10, $par1StructureVillagePieceWeight))
                                break o;
                        }
                        $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                        $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                        $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                        $rt_throw($par0ComponentVillageStartPiece);
                    }
                    if ($var9 === null) {
                        $var10 = new nms_ComponentVillageField2;
                        $var10.$componentType = $par8;
                        $var10.$coordBaseMode = (-1);
                        $var10.$field_143015_k = (-1);
                        if ($par0ComponentVillageStartPiece !== null)
                            $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                        $var10.$coordBaseMode = $par7;
                        $var10.$boundingBox = $par1StructureVillagePieceWeight;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par5 = Long_lo(Long_shru(var$13, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par3Random.$seed = var$13;
                            $par5 = Long_lo(Long_shru(var$13, 17));
                        }
                        p: {
                            switch ($par6) {
                                case 0:
                                    break;
                                case 1:
                                    nms_Block_$callClinit();
                                    $par4 = nms_Block_potato.$blockID;
                                    break p;
                                default:
                                    nms_Block_$callClinit();
                                    $par4 = nms_Block_crops.$blockID;
                                    break p;
                            }
                            nms_Block_$callClinit();
                            $par4 = nms_Block_carrot.$blockID;
                        }
                        $var10.$cropTypeA0 = $par4;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par5 = Long_lo(Long_shru(var$13, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par3Random.$seed = var$13;
                            $par5 = Long_lo(Long_shru(var$13, 17));
                        }
                        q: {
                            switch ($par6) {
                                case 0:
                                    break;
                                case 1:
                                    nms_Block_$callClinit();
                                    $par4 = nms_Block_potato.$blockID;
                                    break q;
                                default:
                                    nms_Block_$callClinit();
                                    $par4 = nms_Block_crops.$blockID;
                                    break q;
                            }
                            nms_Block_$callClinit();
                            $par4 = nms_Block_carrot.$blockID;
                        }
                        $var10.$cropTypeB0 = $par4;
                        break n;
                    }
                }
                $var10 = null;
            }
        }
    } else {
        $par1StructureVillagePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par4, $par5, $par6, 0, 0, 0, 13, 4, 9, $par7);
        $par4 = $par1StructureVillagePieceWeight !== null && $par1StructureVillagePieceWeight.$minY > 10 ? 1 : 0;
        r: {
            if ($par4) {
                var$12 = $par2List.$firstEntry;
                $par5 = $par2List.$modCount;
                s: {
                    while (true) {
                        if (!(var$12 === null ? 0 : 1)) {
                            $var9 = null;
                            break s;
                        }
                        if ($par5 < $par2List.$modCount) {
                            $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                            $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                            $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                            $rt_throw($par0ComponentVillageStartPiece);
                        }
                        if (var$12 === null)
                            break;
                        $var9 = var$12.$item;
                        var$12 = var$12.$next5;
                        $var9 = $var9;
                        $var10 = $var9.$boundingBox;
                        if ($var10 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith($var10, $par1StructureVillagePieceWeight))
                            break s;
                    }
                    $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                    $rt_throw($par0ComponentVillageStartPiece);
                }
                if ($var9 === null) {
                    $var10 = new nms_ComponentVillageField;
                    $var10.$componentType = $par8;
                    $var10.$coordBaseMode = (-1);
                    $var10.$field_143015_k = (-1);
                    if ($par0ComponentVillageStartPiece !== null)
                        $var10.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                    $var10.$coordBaseMode = $par7;
                    $var10.$boundingBox = $par1StructureVillagePieceWeight;
                    var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$13;
                    $par5 = Long_lo(Long_shru(var$13, 17));
                    while (true) {
                        $par6 = $par5 % 5 | 0;
                        if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par5 = Long_lo(Long_shru(var$13, 17));
                    }
                    t: {
                        switch ($par6) {
                            case 0:
                                break;
                            case 1:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_potato.$blockID;
                                break t;
                            default:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_crops.$blockID;
                                break t;
                        }
                        nms_Block_$callClinit();
                        $par4 = nms_Block_carrot.$blockID;
                    }
                    $var10.$cropTypeA = $par4;
                    var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$13;
                    $par5 = Long_lo(Long_shru(var$13, 17));
                    while (true) {
                        $par6 = $par5 % 5 | 0;
                        if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par5 = Long_lo(Long_shru(var$13, 17));
                    }
                    u: {
                        switch ($par6) {
                            case 0:
                                break;
                            case 1:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_potato.$blockID;
                                break u;
                            default:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_crops.$blockID;
                                break u;
                        }
                        nms_Block_$callClinit();
                        $par4 = nms_Block_carrot.$blockID;
                    }
                    $var10.$cropTypeB = $par4;
                    var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$13;
                    $par5 = Long_lo(Long_shru(var$13, 17));
                    while (true) {
                        $par6 = $par5 % 5 | 0;
                        if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par5 = Long_lo(Long_shru(var$13, 17));
                    }
                    v: {
                        switch ($par6) {
                            case 0:
                                break;
                            case 1:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_potato.$blockID;
                                break v;
                            default:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_crops.$blockID;
                                break v;
                        }
                        nms_Block_$callClinit();
                        $par4 = nms_Block_carrot.$blockID;
                    }
                    $var10.$cropTypeC = $par4;
                    var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$13;
                    $par5 = Long_lo(Long_shru(var$13, 17));
                    while (true) {
                        $par6 = $par5 % 5 | 0;
                        if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                            break;
                        var$13 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$13;
                        $par5 = Long_lo(Long_shru(var$13, 17));
                    }
                    w: {
                        switch ($par6) {
                            case 0:
                                break;
                            case 1:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_potato.$blockID;
                                break w;
                            default:
                                nms_Block_$callClinit();
                                $par4 = nms_Block_crops.$blockID;
                                break w;
                        }
                        nms_Block_$callClinit();
                        $par4 = nms_Block_carrot.$blockID;
                    }
                    $var10.$cropTypeD = $par4;
                    break r;
                }
            }
            $var10 = null;
        }
    }
    return $var10;
},
nms_StructureVillagePieces_getNextVillageComponent = ($par0ComponentVillageStartPiece, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, var$11, var$12, var$13, $var14, $var13, $var12, var$17, $var11$index, $var10, var$20, var$21, $var11$index_0;
    $var8 = nms_StructureVillagePieces_func_75079_a($par0ComponentVillageStartPiece.$structureVillageWeightedPieceList);
    if ($var8 <= 0)
        return null;
    $var9 = 0;
    var$11 = $var8 - 1 | 0;
    var$12 = $var8 & var$11;
    var$13 = Long_fromInt($var8);
    a: while (true) {
        if ($var9 >= 5) {
            $var14 = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, 0, 0, 0, 3, 4, 2, $par6);
            $var13 = $par1List.$firstEntry;
            $par4 = $par1List.$modCount;
            b: {
                while (true) {
                    if (!($var13 === null ? 0 : 1)) {
                        $par2Random = null;
                        break b;
                    }
                    if ($par4 < $par1List.$modCount) {
                        $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
                        $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                        $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                        $rt_throw($par0ComponentVillageStartPiece);
                    }
                    if ($var13 === null)
                        break;
                    $par2Random = $var13.$item;
                    $var13 = $var13.$next5;
                    $par2Random = $par2Random;
                    $var12 = $par2Random.$boundingBox;
                    if ($var12 === null)
                        continue;
                    if (nms_StructureBoundingBox_intersectsWith($var12, $var14))
                        break b;
                }
                $par0ComponentVillageStartPiece = new ju_NoSuchElementException;
                $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                $rt_throw($par0ComponentVillageStartPiece);
            }
            if ($par2Random !== null)
                $var14 = null;
            if ($var14 === null)
                return null;
            $par1List = new nms_ComponentVillageTorch;
            $par1List.$componentType = $par7;
            $par1List.$coordBaseMode = (-1);
            $par1List.$field_143015_k = (-1);
            $par1List.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
            $par1List.$coordBaseMode = $par6;
            $par1List.$boundingBox = $var14;
            return $par1List;
        }
        $var9 = $var9 + 1 | 0;
        var$17 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$17;
        $var11$index = Long_lo(Long_shru(var$17, 17));
        if (!var$12)
            $var10 = Long_lo(Long_shr(Long_mul(var$13, Long_fromInt($var11$index)), 31));
        else
            while (true) {
                $var10 = $var11$index % $var8 | 0;
                if ((($var11$index - $var10 | 0) + var$11 | 0) >= 0)
                    break;
                var$17 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$17;
                $var11$index = Long_lo(Long_shru(var$17, 17));
            }
        $var14 = $par0ComponentVillageStartPiece.$structureVillageWeightedPieceList;
        var$20 = $var14.$modCount;
        var$21 = $var14.$size();
        $var11$index = 0;
        c: {
            while (true) {
                if (!($var11$index >= var$21 ? 0 : 1))
                    break c;
                if (var$20 < $var14.$modCount)
                    break a;
                $var11$index_0 = $var11$index + 1 | 0;
                $var12 = $var14.$get($var11$index);
                $var10 = $var10 - $var12.$villagePieceWeight | 0;
                if ($var10 < 0) {
                    $var11$index = $var12.$villagePiecesLimit;
                    if (!($var11$index && $var12.$villagePiecesSpawned >= $var11$index ? 0 : 1))
                        break c;
                    if ($var12 === $par0ComponentVillageStartPiece.$structVillagePieceWeight && $par0ComponentVillageStartPiece.$structureVillageWeightedPieceList.$size0 > 1)
                        break;
                    $var13 = nms_StructureVillagePieces_func_75083_a($par0ComponentVillageStartPiece, $var12, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7);
                    if ($var13 !== null) {
                        $par3 = $var12.$villagePiecesSpawned + 1 | 0;
                        $var12.$villagePiecesSpawned = $par3;
                        $par0ComponentVillageStartPiece.$structVillagePieceWeight = $var12;
                        $par4 = $var12.$villagePiecesLimit;
                        $par3 = $par4 && $par3 >= $par4 ? 0 : 1;
                        d: {
                            if (!$par3) {
                                $par0ComponentVillageStartPiece = $par0ComponentVillageStartPiece.$structureVillageWeightedPieceList;
                                $par5 = $par0ComponentVillageStartPiece.$size0;
                                $par3 = 0;
                                e: {
                                    while (true) {
                                        $par4 = $rt_compare($par3, $par5);
                                        if ($par4 >= 0) {
                                            $par3 = (-1);
                                            break e;
                                        }
                                        if ($par3 < 0)
                                            break d;
                                        if ($par4 >= 0)
                                            break d;
                                        $par1List = $par0ComponentVillageStartPiece.$array.data[$par3];
                                        if ($var12 === $par1List ? 1 : $var12 === null ? ($par1List !== null ? 0 : 1) : $var12 !== $par1List ? 0 : 1)
                                            break;
                                        $par3 = $par3 + 1 | 0;
                                    }
                                }
                                if ($par3 >= 0)
                                    ju_ArrayList_remove($par0ComponentVillageStartPiece, $par3);
                            }
                            return $var13;
                        }
                        $par0ComponentVillageStartPiece = new jl_IndexOutOfBoundsException;
                        $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                        $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par0ComponentVillageStartPiece);
                        $rt_throw($par0ComponentVillageStartPiece);
                    }
                }
                $var11$index = $var11$index_0;
            }
        }
    }
    $par0ComponentVillageStartPiece = new ju_ConcurrentModificationException;
    $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
    $par0ComponentVillageStartPiece.$writableStackTrace = 1;
    $rt_throw($par0ComponentVillageStartPiece);
},
nms_StructureVillagePieces_getNextVillageStructureComponent = ($par0ComponentVillageStartPiece, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, $var10, $var13, $var13_0, var$14, var$15;
    if ($par7 > 50)
        return null;
    $var8 = $par0ComponentVillageStartPiece.$boundingBox;
    $var9 = $par3 - $var8.$minX | 0;
    if ($var9 < 0)
        $var9 =  -$var9 | 0;
    if ($var9 <= 112) {
        $var9 = $par5 - $var8.$minZ | 0;
        if ($var9 < 0)
            $var9 =  -$var9 | 0;
        if ($var9 <= 112) {
            $var8 = nms_StructureVillagePieces_getNextVillageComponent($par0ComponentVillageStartPiece, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7 + 1 | 0);
            if ($var8 !== null) {
                $par2Random = $var8.$boundingBox;
                $par3 = $par2Random.$minX;
                $par4 = $par2Random.$maxX;
                $var9 = ($par3 + $par4 | 0) / 2 | 0;
                $par5 = $par2Random.$minZ;
                $par6 = $par2Random.$maxZ;
                $var10 = ($par5 + $par6 | 0) / 2 | 0;
                $var13 = $par4 - $par3 | 0;
                $var13_0 = $par6 - $par5 | 0;
                if ($var13 > $var13_0)
                    $var13_0 = $var13;
                var$14 = $par0ComponentVillageStartPiece.$worldChunkMngr;
                $par3 = ($var13_0 / 2 | 0) + 4 | 0;
                nms_MapGenVillage_$callClinit();
                if (var$14.$areBiomesViable($var9, $var10, $par3, nms_MapGenVillage_villageSpawnBiomes)) {
                    $par3 = $par1List.$size2;
                    if ($par3 < 0) {
                        $par0ComponentVillageStartPiece = new jl_IndexOutOfBoundsException;
                        $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                        $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                        $rt_throw($par0ComponentVillageStartPiece);
                    }
                    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1List, $par3), $var8);
                    $par0ComponentVillageStartPiece = $par0ComponentVillageStartPiece.$field_74932_i;
                    ju_ArrayList_ensureCapacity($par0ComponentVillageStartPiece, $par0ComponentVillageStartPiece.$size0 + 1 | 0);
                    var$15 = $par0ComponentVillageStartPiece.$array.data;
                    $par4 = $par0ComponentVillageStartPiece.$size0;
                    $par0ComponentVillageStartPiece.$size0 = $par4 + 1 | 0;
                    var$15[$par4] = $var8;
                    $par0ComponentVillageStartPiece.$modCount = $par0ComponentVillageStartPiece.$modCount + 1 | 0;
                    return $var8;
                }
            }
            return null;
        }
    }
    return null;
},
nms_StructureVillagePieces_getNextComponentVillagePath = ($par0ComponentVillageStartPiece, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var14, $var9, $var11, $var14_0, $var10, var$15;
    if ($par7 > (3 + $par0ComponentVillageStartPiece.$terrainType5 | 0))
        return null;
    $var8 = $par0ComponentVillageStartPiece.$boundingBox;
    $var14 = $par3 - $var8.$minX | 0;
    if ($var14 < 0)
        $var14 =  -$var14 | 0;
    if ($var14 <= 112) {
        $var14 = $par5 - $var8.$minZ | 0;
        if ($var14 < 0)
            $var14 =  -$var14 | 0;
        if ($var14 <= 112) {
            $var8 = nms_ComponentVillagePathGen_func_74933_a($par0ComponentVillageStartPiece, $par1List, $par2Random, $par3, $par4, $par5, $par6);
            if ($var8 !== null && $var8.$minY > 10) {
                $var9 = new nms_ComponentVillagePathGen;
                $var9.$componentType = $par7;
                $var9.$coordBaseMode = (-1);
                $var9.$field_143015_k = (-1);
                $var9.$field_143014_b = $par0ComponentVillageStartPiece.$inDesert;
                $var9.$coordBaseMode = $par6;
                $var9.$boundingBox = $var8;
                $par4 = $var8.$maxX;
                $par5 = $var8.$minX;
                $var14 = $par4 - $par5 | 0;
                $par6 = $var14 + 1 | 0;
                $par3 = $var8.$maxZ;
                $var11 = $var8.$minZ;
                $var14_0 = $par3 - $var11 | 0;
                $var10 = $var14_0 + 1 | 0;
                if ($par6 > $var10)
                    $var10 = $par6;
                $var9.$averageGroundLevel = $var10;
                $var10 = ($par5 + $par4 | 0) / 2 | 0;
                $var11 = ($var11 + $par3 | 0) / 2 | 0;
                if ($var14 > $var14_0)
                    $var14_0 = $var14;
                $var8 = $par0ComponentVillageStartPiece.$worldChunkMngr;
                $par3 = ($var14_0 / 2 | 0) + 4 | 0;
                nms_MapGenVillage_$callClinit();
                if ($var8.$areBiomesViable($var10, $var11, $par3, nms_MapGenVillage_villageSpawnBiomes)) {
                    $par3 = $par1List.$size2;
                    if ($par3 < 0) {
                        $par0ComponentVillageStartPiece = new jl_IndexOutOfBoundsException;
                        $par0ComponentVillageStartPiece.$suppressionEnabled = 1;
                        $par0ComponentVillageStartPiece.$writableStackTrace = 1;
                        $rt_throw($par0ComponentVillageStartPiece);
                    }
                    ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1List, $par3), $var9);
                    $par0ComponentVillageStartPiece = $par0ComponentVillageStartPiece.$field_74930_j;
                    ju_ArrayList_ensureCapacity($par0ComponentVillageStartPiece, $par0ComponentVillageStartPiece.$size0 + 1 | 0);
                    var$15 = $par0ComponentVillageStartPiece.$array.data;
                    $par4 = $par0ComponentVillageStartPiece.$size0;
                    $par0ComponentVillageStartPiece.$size0 = $par4 + 1 | 0;
                    var$15[$par4] = $var9;
                    $par0ComponentVillageStartPiece.$modCount = $par0ComponentVillageStartPiece.$modCount + 1 | 0;
                    return $var9;
                }
            }
            return null;
        }
    }
    return null;
},
nms_StructureNetherBridgePieces = $rt_classWithoutFields(),
nms_StructureNetherBridgePieces_primaryComponents = null,
nms_StructureNetherBridgePieces_secondaryComponents = null,
nms_StructureNetherBridgePieces__init_ = $this => {
    return;
},
nms_StructureNetherBridgePieces__init_0 = () => {
    let var_0 = new nms_StructureNetherBridgePieces();
    nms_StructureNetherBridgePieces__init_(var_0);
    return var_0;
},
nms_StructureNetherBridgePieces_func_143049_a = () => {
    nms_MapGenStructureIO_$callClinit();
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2753), $rt_cls(nms_ComponentNetherBridgeCrossing3));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCrossing3), $rt_s(2753));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2754), $rt_cls(nms_ComponentNetherBridgeEnd));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeEnd), $rt_s(2754));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2755), $rt_cls(nms_ComponentNetherBridgeStraight));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeStraight), $rt_s(2755));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2756), $rt_cls(nms_ComponentNetherBridgeCorridor3));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCorridor3), $rt_s(2756));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2757), $rt_cls(nms_ComponentNetherBridgeCorridor4));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCorridor4), $rt_s(2757));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2758), $rt_cls(nms_ComponentNetherBridgeEntrance));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeEntrance), $rt_s(2758));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2759), $rt_cls(nms_ComponentNetherBridgeCrossing2));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCrossing2), $rt_s(2759));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2760), $rt_cls(nms_ComponentNetherBridgeCorridor));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCorridor), $rt_s(2760));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2761), $rt_cls(nms_ComponentNetherBridgeCorridor5));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCorridor5), $rt_s(2761));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2762), $rt_cls(nms_ComponentNetherBridgeCorridor2));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCorridor2), $rt_s(2762));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2763), $rt_cls(nms_ComponentNetherBridgeNetherStalkRoom));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeNetherStalkRoom), $rt_s(2763));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2764), $rt_cls(nms_ComponentNetherBridgeThrone));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeThrone), $rt_s(2764));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2765), $rt_cls(nms_ComponentNetherBridgeCrossing));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeCrossing), $rt_s(2765));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2766), $rt_cls(nms_ComponentNetherBridgeStairs));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeStairs), $rt_s(2766));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2767), $rt_cls(nms_ComponentNetherBridgeStartPiece));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentNetherBridgeStartPiece), $rt_s(2767));
},
nms_StructureNetherBridgePieces_createNextComponentRandom = ($par0StructureNetherBridgePieceWeight, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var9, var$11, var$12;
    a: {
        $var8 = $par0StructureNetherBridgePieceWeight.$weightClass;
        $var9 = null;
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeStraight)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-3), 0, 5, 10, 19, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            b: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    c: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break c;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break c;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeStraight;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break b;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCrossing3)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-8), (-3), 0, 19, 10, 19, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            d: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    e: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break e;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break e;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeCrossing3;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break d;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCrossing)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-2), 0, 0, 7, 9, 7, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            f: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    g: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break g;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break g;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeCrossing;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break f;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeStairs)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-2), 0, 0, 7, 11, 7, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            h: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    i: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break i;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break i;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeStairs;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break h;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeThrone)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-2), 0, 0, 7, 8, 9, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            j: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    k: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break k;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break k;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeThrone;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break j;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeEntrance)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-5), (-3), 0, 13, 14, 13, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            l: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    m: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break m;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break m;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeEntrance;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break l;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCorridor5)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), 0, 0, 5, 7, 5, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            n: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    o: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break o;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break o;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeCorridor5;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break n;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCorridor2)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), 0, 0, 5, 7, 5, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            p: {
                if ($par3) {
                    var$11 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    q: {
                        while (true) {
                            if (!(var$11 === null ? 0 : 1)) {
                                $var9 = null;
                                break q;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if (var$11 === null)
                                break;
                            $var9 = var$11.$item;
                            var$11 = var$11.$next5;
                            $var9 = $var9;
                            $var8 = $var9.$boundingBox;
                            if ($var8 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var8, $par0StructureNetherBridgePieceWeight))
                                break q;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($var9 === null) {
                        $var9 = new nms_ComponentNetherBridgeCorridor2;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 3 | 0;
                            if ((($par5 - $par6 | 0) + 2 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        $var9.$field_111020_b = $par6 ? 0 : 1;
                        break p;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCorridor)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), 0, 0, 5, 7, 5, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            r: {
                if ($par3) {
                    var$11 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    s: {
                        while (true) {
                            if (!(var$11 === null ? 0 : 1)) {
                                $var9 = null;
                                break s;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if (var$11 === null)
                                break;
                            $var9 = var$11.$item;
                            var$11 = var$11.$next5;
                            $var9 = $var9;
                            $var8 = $var9.$boundingBox;
                            if ($var8 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var8, $par0StructureNetherBridgePieceWeight))
                                break s;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($var9 === null) {
                        $var9 = new nms_ComponentNetherBridgeCorridor;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 3 | 0;
                            if ((($par5 - $par6 | 0) + 2 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        $var9.$field_111021_b = $par6 ? 0 : 1;
                        break r;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCorridor3)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-7), 0, 5, 14, 10, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            t: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    u: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break u;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break u;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeCorridor3;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break t;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCorridor4)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-3), 0, 0, 9, 7, 9, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            v: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    w: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break w;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break w;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeCorridor4;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break v;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 === $rt_cls(nms_ComponentNetherBridgeCrossing2)) {
            $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), 0, 0, 5, 7, 5, $par6);
            nms_ComponentNetherBridgePiece_$callClinit();
            $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
            x: {
                if ($par3) {
                    $var8 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    y: {
                        while (true) {
                            if (!($var8 === null ? 0 : 1)) {
                                $par2Random = null;
                                break y;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                                $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                                $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                                $rt_throw($par0StructureNetherBridgePieceWeight);
                            }
                            if ($var8 === null)
                                break;
                            $par2Random = $var8.$item;
                            $var8 = $var8.$next5;
                            $par2Random = $par2Random;
                            $var9 = $par2Random.$boundingBox;
                            if ($var9 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                                break y;
                        }
                        $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                        $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                        $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                        $rt_throw($par0StructureNetherBridgePieceWeight);
                    }
                    if ($par2Random === null) {
                        $var9 = new nms_ComponentNetherBridgeCrossing2;
                        $var9.$componentType = $par7;
                        $var9.$coordBaseMode = (-1);
                        $var9.$coordBaseMode = $par6;
                        $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                        break x;
                    }
                }
                $var9 = null;
            }
            break a;
        }
        if ($var8 !== $rt_cls(nms_ComponentNetherBridgeNetherStalkRoom))
            break a;
        $par0StructureNetherBridgePieceWeight = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-5), (-3), 0, 13, 14, 13, $par6);
        nms_ComponentNetherBridgePiece_$callClinit();
        $par3 = $par0StructureNetherBridgePieceWeight !== null && $par0StructureNetherBridgePieceWeight.$minY > 10 ? 1 : 0;
        z: {
            if ($par3) {
                $var8 = $par1List.$firstEntry;
                $par4 = $par1List.$modCount;
                ba: {
                    while (true) {
                        if (!($var8 === null ? 0 : 1)) {
                            $par2Random = null;
                            break ba;
                        }
                        if ($par4 < $par1List.$modCount) {
                            $par0StructureNetherBridgePieceWeight = new ju_ConcurrentModificationException;
                            $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                            $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0StructureNetherBridgePieceWeight);
                            $rt_throw($par0StructureNetherBridgePieceWeight);
                        }
                        if ($var8 === null)
                            break;
                        $par2Random = $var8.$item;
                        $var8 = $var8.$next5;
                        $par2Random = $par2Random;
                        $var9 = $par2Random.$boundingBox;
                        if ($var9 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith($var9, $par0StructureNetherBridgePieceWeight))
                            break ba;
                    }
                    $par0StructureNetherBridgePieceWeight = new ju_NoSuchElementException;
                    $par0StructureNetherBridgePieceWeight.$suppressionEnabled = 1;
                    $par0StructureNetherBridgePieceWeight.$writableStackTrace = 1;
                    $rt_throw($par0StructureNetherBridgePieceWeight);
                }
                if ($par2Random === null) {
                    $var9 = new nms_ComponentNetherBridgeNetherStalkRoom;
                    $var9.$componentType = $par7;
                    $var9.$coordBaseMode = (-1);
                    $var9.$coordBaseMode = $par6;
                    $var9.$boundingBox = $par0StructureNetherBridgePieceWeight;
                    break z;
                }
            }
            $var9 = null;
        }
    }
    return $var9;
},
nms_StructureNetherBridgePieces__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = $rt_createArray(nms_StructureNetherBridgePieceWeight, 6);
    var$2 = var$1.data;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeStraight);
    var$3.$field_78826_b = 30;
    var$3.$field_78824_d = 0;
    var$3.$field_78825_e = 1;
    var$2[0] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCrossing3);
    var$3.$field_78826_b = 10;
    var$3.$field_78824_d = 4;
    var$3.$field_78825_e = 0;
    var$2[1] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCrossing);
    var$3.$field_78826_b = 10;
    var$3.$field_78824_d = 4;
    var$3.$field_78825_e = 0;
    var$2[2] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeStairs);
    var$3.$field_78826_b = 10;
    var$3.$field_78824_d = 3;
    var$3.$field_78825_e = 0;
    var$2[3] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeThrone);
    var$3.$field_78826_b = 5;
    var$3.$field_78824_d = 2;
    var$3.$field_78825_e = 0;
    var$2[4] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeEntrance);
    var$3.$field_78826_b = 5;
    var$3.$field_78824_d = 1;
    var$3.$field_78825_e = 0;
    var$2[5] = var$3;
    nms_StructureNetherBridgePieces_primaryComponents = var$1;
    var$1 = $rt_createArray(nms_StructureNetherBridgePieceWeight, 7);
    var$2 = var$1.data;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCorridor5);
    var$3.$field_78826_b = 25;
    var$3.$field_78824_d = 0;
    var$3.$field_78825_e = 1;
    var$2[0] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCrossing2);
    var$3.$field_78826_b = 15;
    var$3.$field_78824_d = 5;
    var$3.$field_78825_e = 0;
    var$2[1] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCorridor2);
    var$3.$field_78826_b = 5;
    var$3.$field_78824_d = 10;
    var$3.$field_78825_e = 0;
    var$2[2] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCorridor);
    var$3.$field_78826_b = 5;
    var$3.$field_78824_d = 10;
    var$3.$field_78825_e = 0;
    var$2[3] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCorridor3);
    var$3.$field_78826_b = 10;
    var$3.$field_78824_d = 3;
    var$3.$field_78825_e = 1;
    var$2[4] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeCorridor4);
    var$3.$field_78826_b = 7;
    var$3.$field_78824_d = 2;
    var$3.$field_78825_e = 0;
    var$2[5] = var$3;
    var$3 = new nms_StructureNetherBridgePieceWeight;
    var$3.$weightClass = $rt_cls(nms_ComponentNetherBridgeNetherStalkRoom);
    var$3.$field_78826_b = 5;
    var$3.$field_78824_d = 2;
    var$3.$field_78825_e = 0;
    var$2[6] = var$3;
    nms_StructureNetherBridgePieces_secondaryComponents = var$1;
},
nms_StructureStrongholdPieces = $rt_classWithoutFields(),
nms_StructureStrongholdPieces_pieceWeightArray = null;
let nms_StructureStrongholdPieces_structurePieceList = null,
nms_StructureStrongholdPieces_strongComponentType = null,
nms_StructureStrongholdPieces_totalWeight = 0,
nms_StructureStrongholdPieces_strongholdStones = null,
nms_StructureStrongholdPieces__init_ = $this => {
    return;
},
nms_StructureStrongholdPieces__init_0 = () => {
    let var_0 = new nms_StructureStrongholdPieces();
    nms_StructureStrongholdPieces__init_(var_0);
    return var_0;
},
nms_StructureStrongholdPieces_func_143046_a = () => {
    nms_MapGenStructureIO_$callClinit();
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2768), $rt_cls(nms_ComponentStrongholdChestCorridor));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdChestCorridor), $rt_s(2768));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2769), $rt_cls(nms_ComponentStrongholdCorridor));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdCorridor), $rt_s(2769));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2770), $rt_cls(nms_ComponentStrongholdCrossing));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdCrossing), $rt_s(2770));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2771), $rt_cls(nms_ComponentStrongholdLeftTurn));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdLeftTurn), $rt_s(2771));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2772), $rt_cls(nms_ComponentStrongholdLibrary));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdLibrary), $rt_s(2772));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2773), $rt_cls(nms_ComponentStrongholdPortalRoom));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdPortalRoom), $rt_s(2773));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2774), $rt_cls(nms_ComponentStrongholdPrison));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdPrison), $rt_s(2774));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2775), $rt_cls(nms_ComponentStrongholdRightTurn));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdRightTurn), $rt_s(2775));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2776), $rt_cls(nms_ComponentStrongholdRoomCrossing));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdRoomCrossing), $rt_s(2776));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2777), $rt_cls(nms_ComponentStrongholdStairs));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdStairs), $rt_s(2777));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2778), $rt_cls(nms_ComponentStrongholdStairs2));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdStairs2), $rt_s(2778));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2779), $rt_cls(nms_ComponentStrongholdStraight));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdStraight), $rt_s(2779));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143039_c, $rt_s(2780), $rt_cls(nms_ComponentStrongholdStairsStraight));
    ju_HashMap_putImpl(nms_MapGenStructureIO_field_143037_d, $rt_cls(nms_ComponentStrongholdStairsStraight), $rt_s(2780));
},
nms_StructureStrongholdPieces_canAddStructurePieces = () => {
    let $var0, var$2, $var1$index, var$4, var$5, $var1$index_0, $var2, var$8;
    $var0 = 0;
    nms_StructureStrongholdPieces_totalWeight = 0;
    var$2 = nms_StructureStrongholdPieces_structurePieceList;
    $var1$index = 0;
    var$4 = var$2.$modCount;
    var$5 = var$2.$size();
    while ($var1$index >= var$5 ? 0 : 1) {
        if (var$4 < var$2.$modCount) {
            var$2 = new ju_ConcurrentModificationException;
            var$2.$suppressionEnabled = 1;
            var$2.$writableStackTrace = 1;
            $rt_throw(var$2);
        }
        $var1$index_0 = $var1$index + 1 | 0;
        $var2 = var$2.$get($var1$index);
        var$8 = $var2.$instancesLimit;
        if (var$8 > 0 && $var2.$instancesSpawned < var$8)
            $var0 = 1;
        nms_StructureStrongholdPieces_totalWeight = nms_StructureStrongholdPieces_totalWeight + $var2.$pieceWeight | 0;
        $var1$index = $var1$index_0;
    }
    return $var0;
},
nms_StructureStrongholdPieces_getStrongholdComponentFromWeightedPiece = ($par0Class, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$10, var$11, var$12, var$13, var$14;
    a: {
        $var8 = null;
        if ($par0Class === $rt_cls(nms_ComponentStrongholdStraight)) {
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-1), 0, 5, 5, 7, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            b: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    c: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break c;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break c;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdStraight;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        d: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break d;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break d;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break d;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$13;
                        $var8.$expandsX = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$13, 17)))), 31)) ? 0 : 1;
                        var$12 = Long_and(Long_add(Long_mul(var$13, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $var8.$expandsZ = Long_lo(Long_shr(Long_mul(Long_fromInt(2), Long_fromInt(Long_lo(Long_shru(var$12, 17)))), 31)) ? 0 : 1;
                        break b;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class === $rt_cls(nms_ComponentStrongholdPrison)) {
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-1), 0, 9, 5, 11, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            e: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    f: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break f;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break f;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdPrison;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        g: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break g;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break g;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break g;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        break e;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class === $rt_cls(nms_ComponentStrongholdLeftTurn)) {
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-1), 0, 5, 5, 5, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            h: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    i: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break i;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break i;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdLeftTurn;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        j: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break j;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break j;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break j;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        break h;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class === $rt_cls(nms_ComponentStrongholdRightTurn)) {
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-1), 0, 5, 5, 5, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            k: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    l: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break l;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break l;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdLeftTurn;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        m: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break m;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break m;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break m;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        break k;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class === $rt_cls(nms_ComponentStrongholdRoomCrossing)) {
            nms_ComponentStrongholdRoomCrossing_$callClinit();
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-4), (-1), 0, 11, 7, 11, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            n: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    o: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break o;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break o;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdRoomCrossing;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        p: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break p;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break p;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break p;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        $var8.$roomType = $par6;
                        break n;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class === $rt_cls(nms_ComponentStrongholdStairsStraight)) {
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-7), 0, 5, 11, 8, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            q: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    r: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break r;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break r;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdStairsStraight;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        s: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break s;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break s;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break s;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        break q;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class === $rt_cls(nms_ComponentStrongholdStairs)) {
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-7), 0, 5, 11, 5, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            t: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    u: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break u;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break u;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdStairs;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$field_75024_a = 0;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        v: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break v;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break v;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break v;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        break t;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        if ($par0Class !== $rt_cls(nms_ComponentStrongholdCrossing)) {
            if ($par0Class !== $rt_cls(nms_ComponentStrongholdChestCorridor)) {
                if ($par0Class === $rt_cls(nms_ComponentStrongholdLibrary)) {
                    $var8 = nms_ComponentStrongholdLibrary_findValidPlacement($par1List, $par2Random, $par3, $par4, $par5, $par6, $par7);
                    break a;
                }
                if ($par0Class !== $rt_cls(nms_ComponentStrongholdPortalRoom))
                    break a;
                $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-4), (-1), 0, 11, 8, 16, $par6);
                $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
                w: {
                    if ($par3) {
                        var$11 = $par1List.$firstEntry;
                        $par4 = $par1List.$modCount;
                        x: {
                            while (true) {
                                if (!(var$11 === null ? 0 : 1)) {
                                    $par2Random = null;
                                    break x;
                                }
                                if ($par4 < $par1List.$modCount) {
                                    $par0Class = new ju_ConcurrentModificationException;
                                    $par0Class.$suppressionEnabled = 1;
                                    $par0Class.$writableStackTrace = 1;
                                    jl_Throwable_fillInStackTrace($par0Class);
                                    $rt_throw($par0Class);
                                }
                                if (var$11 === null)
                                    break;
                                $par2Random = var$11.$item;
                                var$11 = var$11.$next5;
                                $par2Random = $par2Random;
                                $var8 = $par2Random.$boundingBox;
                                if ($var8 === null)
                                    continue;
                                if (nms_StructureBoundingBox_intersectsWith($var8, $par0Class))
                                    break x;
                            }
                            $par0Class = new ju_NoSuchElementException;
                            $par0Class.$suppressionEnabled = 1;
                            $par0Class.$writableStackTrace = 1;
                            $rt_throw($par0Class);
                        }
                        if ($par2Random === null) {
                            $var8 = new nms_ComponentStrongholdPortalRoom;
                            $var8.$componentType = $par7;
                            $var8.$coordBaseMode = (-1);
                            $var8.$field_143013_d = nms_EnumDoor_OPENING;
                            $var8.$coordBaseMode = $par6;
                            $var8.$boundingBox = $par0Class;
                            break w;
                        }
                    }
                    $var8 = null;
                }
                break a;
            }
            nms_ComponentStrongholdChestCorridor_$callClinit();
            $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-1), (-1), 0, 5, 5, 7, $par6);
            $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
            y: {
                if ($par3) {
                    var$10 = $par1List.$firstEntry;
                    $par4 = $par1List.$modCount;
                    z: {
                        while (true) {
                            if (!(var$10 === null ? 0 : 1)) {
                                $var8 = null;
                                break z;
                            }
                            if ($par4 < $par1List.$modCount) {
                                $par0Class = new ju_ConcurrentModificationException;
                                $par0Class.$suppressionEnabled = 1;
                                $par0Class.$writableStackTrace = 1;
                                jl_Throwable_fillInStackTrace($par0Class);
                                $rt_throw($par0Class);
                            }
                            if (var$10 === null)
                                break;
                            $var8 = var$10.$item;
                            var$10 = var$10.$next5;
                            $var8 = $var8;
                            var$11 = $var8.$boundingBox;
                            if (var$11 === null)
                                continue;
                            if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                                break z;
                        }
                        $par0Class = new ju_NoSuchElementException;
                        $par0Class.$suppressionEnabled = 1;
                        $par0Class.$writableStackTrace = 1;
                        $rt_throw($par0Class);
                    }
                    if ($var8 === null) {
                        $var8 = new nms_ComponentStrongholdChestCorridor;
                        $var8.$componentType = $par7;
                        $var8.$coordBaseMode = (-1);
                        $par1List = nms_EnumDoor_OPENING;
                        $var8.$field_143013_d = $par1List;
                        $var8.$coordBaseMode = $par6;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                        while (true) {
                            $par6 = $par5 % 5 | 0;
                            if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                                break;
                            var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                            $par2Random.$seed = var$12;
                            $par5 = Long_lo(Long_shru(var$12, 17));
                        }
                        ba: {
                            switch ($par6) {
                                case 0:
                                case 1:
                                    break;
                                case 2:
                                    $par1List = nms_EnumDoor_WOOD_DOOR;
                                    break ba;
                                case 3:
                                    $par1List = nms_EnumDoor_GRATES;
                                    break ba;
                                case 4:
                                    $par1List = nms_EnumDoor_IRON_DOOR;
                                    break ba;
                                default:
                            }
                        }
                        $var8.$field_143013_d = $par1List;
                        $var8.$boundingBox = $par0Class;
                        break y;
                    }
                }
                $var8 = null;
            }
            break a;
        }
        $par0Class = nms_StructureBoundingBox_getComponentToAddBoundingBox($par3, $par4, $par5, (-4), (-3), 0, 10, 9, 11, $par6);
        $par3 = $par0Class !== null && $par0Class.$minY > 10 ? 1 : 0;
        bb: {
            if ($par3) {
                var$10 = $par1List.$firstEntry;
                $par4 = $par1List.$modCount;
                bc: {
                    while (true) {
                        if (!(var$10 === null ? 0 : 1)) {
                            $var8 = null;
                            break bc;
                        }
                        if ($par4 < $par1List.$modCount) {
                            $par0Class = new ju_ConcurrentModificationException;
                            $par0Class.$suppressionEnabled = 1;
                            $par0Class.$writableStackTrace = 1;
                            jl_Throwable_fillInStackTrace($par0Class);
                            $rt_throw($par0Class);
                        }
                        if (var$10 === null)
                            break;
                        $var8 = var$10.$item;
                        var$10 = var$10.$next5;
                        $var8 = $var8;
                        var$11 = $var8.$boundingBox;
                        if (var$11 === null)
                            continue;
                        if (nms_StructureBoundingBox_intersectsWith(var$11, $par0Class))
                            break bc;
                    }
                    $par0Class = new ju_NoSuchElementException;
                    $par0Class.$suppressionEnabled = 1;
                    $par0Class.$writableStackTrace = 1;
                    $rt_throw($par0Class);
                }
                if ($var8 === null) {
                    $var8 = new nms_ComponentStrongholdCrossing;
                    $var8.$componentType = $par7;
                    $var8.$coordBaseMode = (-1);
                    $par1List = nms_EnumDoor_OPENING;
                    $var8.$field_143013_d = $par1List;
                    $var8.$coordBaseMode = $par6;
                    var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$12;
                    $par5 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        $par6 = $par5 % 5 | 0;
                        if ((($par5 - $par6 | 0) + 4 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                    }
                    bd: {
                        switch ($par6) {
                            case 0:
                            case 1:
                                break;
                            case 2:
                                $par1List = nms_EnumDoor_WOOD_DOOR;
                                break bd;
                            case 3:
                                $par1List = nms_EnumDoor_GRATES;
                                break bd;
                            case 4:
                                $par1List = nms_EnumDoor_IRON_DOOR;
                                break bd;
                            default:
                        }
                    }
                    $var8.$field_143013_d = $par1List;
                    $var8.$boundingBox = $par0Class;
                    var$14 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$14;
                    $var8.$field_74996_b = !Long_lo(Long_shru(var$14, 47)) ? 0 : 1;
                    var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$14;
                    $var8.$field_74997_c = !Long_lo(Long_shru(var$14, 47)) ? 0 : 1;
                    var$14 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$14;
                    $var8.$field_74995_d = !Long_lo(Long_shru(var$14, 47)) ? 0 : 1;
                    var$12 = Long_and(Long_add(Long_mul(var$14, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par2Random.$seed = var$12;
                    $par5 = Long_lo(Long_shru(var$12, 17));
                    while (true) {
                        $par6 = $par5 % 3 | 0;
                        if ((($par5 - $par6 | 0) + 2 | 0) >= 0)
                            break;
                        var$12 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par2Random.$seed = var$12;
                        $par5 = Long_lo(Long_shru(var$12, 17));
                    }
                    $var8.$field_74999_h = $par6 <= 0 ? 0 : 1;
                    break bb;
                }
            }
            $var8 = null;
        }
    }
    return $var8;
},
nms_StructureStrongholdPieces_getNextComponent = ($par0ComponentStrongholdStairs2, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, $var13, $var14, $var10$index, var$13, var$14, $var10$index_0, $var9, var$17, $var11, $var12;
    if (!nms_StructureStrongholdPieces_canAddStructurePieces())
        return null;
    $var8 = nms_StructureStrongholdPieces_strongComponentType;
    if ($var8 !== null) {
        $var8 = nms_StructureStrongholdPieces_getStrongholdComponentFromWeightedPiece($var8, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7);
        nms_StructureStrongholdPieces_strongComponentType = null;
        if ($var8 !== null)
            return $var8;
    }
    $var13 = 0;
    a: while (true) {
        if ($var13 >= 5) {
            $var14 = nms_ComponentStrongholdCorridor_func_74992_a($par1List, $par2Random, $par3, $par4, $par5, $par6);
            if ($var14 !== null && $var14.$minY > 1) {
                $par0ComponentStrongholdStairs2 = new nms_ComponentStrongholdCorridor;
                $par0ComponentStrongholdStairs2.$componentType = $par7;
                $par0ComponentStrongholdStairs2.$coordBaseMode = (-1);
                $par0ComponentStrongholdStairs2.$field_143013_d = nms_EnumDoor_OPENING;
                $par0ComponentStrongholdStairs2.$coordBaseMode = $par6;
                $par0ComponentStrongholdStairs2.$boundingBox = $var14;
                $par0ComponentStrongholdStairs2.$field_74993_a = $par6 != 2 && $par6 ? ($var14.$maxX - $var14.$minX | 0) + 1 | 0 : ($var14.$maxZ - $var14.$minZ | 0) + 1 | 0;
                return $par0ComponentStrongholdStairs2;
            }
            return null;
        }
        $var13 = $var13 + 1 | 0;
        $var10$index = nms_StructureStrongholdPieces_totalWeight;
        var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$13;
        var$14 = Long_lo(Long_shru(var$13, 17));
        $var10$index_0 = $var10$index - 1 | 0;
        if (!($var10$index & $var10$index_0))
            $var9 = Long_lo(Long_shr(Long_mul(Long_fromInt($var10$index), Long_fromInt(var$14)), 31));
        else
            while (true) {
                $var9 = var$14 % $var10$index | 0;
                if (((var$14 - $var9 | 0) + $var10$index_0 | 0) >= 0)
                    break;
                var$13 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$13;
                var$14 = Long_lo(Long_shru(var$13, 17));
            }
        $var14 = nms_StructureStrongholdPieces_structurePieceList;
        var$17 = $var14.$modCount;
        var$14 = $var14.$size();
        $var10$index = 0;
        b: {
            while (true) {
                if (!($var10$index >= var$14 ? 0 : 1))
                    break b;
                if (var$17 < $var14.$modCount)
                    break a;
                $var10$index_0 = $var10$index + 1 | 0;
                $var11 = $var14.$get($var10$index);
                $var9 = $var9 - $var11.$pieceWeight | 0;
                if ($var9 < 0) {
                    if (!$var11.$canSpawnMoreStructuresOfType($par7))
                        break b;
                    if ($var11 === $par0ComponentStrongholdStairs2.$strongholdPieceWeight)
                        break;
                    $var12 = nms_StructureStrongholdPieces_getStrongholdComponentFromWeightedPiece($var11.$pieceClass, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7);
                    if ($var12 !== null) {
                        $par3 = $var11.$instancesSpawned + 1 | 0;
                        $var11.$instancesSpawned = $par3;
                        $par0ComponentStrongholdStairs2.$strongholdPieceWeight = $var11;
                        $par4 = $var11.$instancesLimit;
                        $par3 = $par4 && $par3 >= $par4 ? 0 : 1;
                        c: {
                            if (!$par3) {
                                $par0ComponentStrongholdStairs2 = nms_StructureStrongholdPieces_structurePieceList;
                                $par5 = $par0ComponentStrongholdStairs2.$size0;
                                $par3 = 0;
                                d: {
                                    while (true) {
                                        $par4 = $rt_compare($par3, $par5);
                                        if ($par4 >= 0) {
                                            $par3 = (-1);
                                            break d;
                                        }
                                        if ($par3 < 0)
                                            break c;
                                        if ($par4 >= 0)
                                            break c;
                                        $par1List = $par0ComponentStrongholdStairs2.$array.data[$par3];
                                        if ($var11 === $par1List ? 1 : $var11 === null ? ($par1List !== null ? 0 : 1) : $var11 !== $par1List ? 0 : 1)
                                            break;
                                        $par3 = $par3 + 1 | 0;
                                    }
                                }
                                if ($par3 >= 0)
                                    ju_ArrayList_remove($par0ComponentStrongholdStairs2, $par3);
                            }
                            return $var12;
                        }
                        $par0ComponentStrongholdStairs2 = new jl_IndexOutOfBoundsException;
                        $par0ComponentStrongholdStairs2.$suppressionEnabled = 1;
                        $par0ComponentStrongholdStairs2.$writableStackTrace = 1;
                        jl_Throwable_fillInStackTrace($par0ComponentStrongholdStairs2);
                        $rt_throw($par0ComponentStrongholdStairs2);
                    }
                }
                $var10$index = $var10$index_0;
            }
        }
    }
    $par0ComponentStrongholdStairs2 = new ju_ConcurrentModificationException;
    $par0ComponentStrongholdStairs2.$suppressionEnabled = 1;
    $par0ComponentStrongholdStairs2.$writableStackTrace = 1;
    $rt_throw($par0ComponentStrongholdStairs2);
},
nms_StructureStrongholdPieces_getNextValidComponent = ($par0ComponentStrongholdStairs2, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7) => {
    let $var8, var$10, var$11;
    if ($par7 > 50)
        return null;
    $var8 = $par0ComponentStrongholdStairs2.$boundingBox;
    var$10 = $par3 - $var8.$minX | 0;
    if (var$10 < 0)
        var$10 =  -var$10 | 0;
    if (var$10 <= 112) {
        var$10 = $par5 - $var8.$minZ | 0;
        if (var$10 < 0)
            var$10 =  -var$10 | 0;
        if (var$10 <= 112) {
            $var8 = nms_StructureStrongholdPieces_getNextComponent($par0ComponentStrongholdStairs2, $par1List, $par2Random, $par3, $par4, $par5, $par6, $par7 + 1 | 0);
            if ($var8 !== null) {
                $par3 = $par1List.$size2;
                if ($par3 < 0) {
                    $par0ComponentStrongholdStairs2 = new jl_IndexOutOfBoundsException;
                    $par0ComponentStrongholdStairs2.$suppressionEnabled = 1;
                    $par0ComponentStrongholdStairs2.$writableStackTrace = 1;
                    $rt_throw($par0ComponentStrongholdStairs2);
                }
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1List, $par3), $var8);
                $par0ComponentStrongholdStairs2 = $par0ComponentStrongholdStairs2.$field_75026_c;
                ju_ArrayList_ensureCapacity($par0ComponentStrongholdStairs2, $par0ComponentStrongholdStairs2.$size0 + 1 | 0);
                var$11 = $par0ComponentStrongholdStairs2.$array.data;
                $par4 = $par0ComponentStrongholdStairs2.$size0;
                $par0ComponentStrongholdStairs2.$size0 = $par4 + 1 | 0;
                var$11[$par4] = $var8;
                $par0ComponentStrongholdStairs2.$modCount = $par0ComponentStrongholdStairs2.$modCount + 1 | 0;
            }
            return $var8;
        }
    }
    return null;
},
nms_StructureStrongholdPieces__clinit_ = () => {
    let var$1, var$2, var$3;
    var$1 = $rt_createArray(nms_StructureStrongholdPieceWeight, 11);
    var$2 = var$1.data;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdStraight);
    var$3.$pieceWeight = 40;
    var$3.$instancesLimit = 0;
    var$2[0] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdPrison);
    var$3.$pieceWeight = 5;
    var$3.$instancesLimit = 5;
    var$2[1] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdLeftTurn);
    var$3.$pieceWeight = 20;
    var$3.$instancesLimit = 0;
    var$2[2] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdRightTurn);
    var$3.$pieceWeight = 20;
    var$3.$instancesLimit = 0;
    var$2[3] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdRoomCrossing);
    var$3.$pieceWeight = 10;
    var$3.$instancesLimit = 6;
    var$2[4] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdStairsStraight);
    var$3.$pieceWeight = 5;
    var$3.$instancesLimit = 5;
    var$2[5] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdStairs);
    var$3.$pieceWeight = 5;
    var$3.$instancesLimit = 5;
    var$2[6] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdCrossing);
    var$3.$pieceWeight = 5;
    var$3.$instancesLimit = 4;
    var$2[7] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdChestCorridor);
    var$3.$pieceWeight = 5;
    var$3.$instancesLimit = 4;
    var$2[8] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight2;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdLibrary);
    var$3.$pieceWeight = 10;
    var$3.$instancesLimit = 2;
    var$2[9] = var$3;
    var$3 = new nms_StructureStrongholdPieceWeight3;
    var$3.$pieceClass = $rt_cls(nms_ComponentStrongholdPortalRoom);
    var$3.$pieceWeight = 20;
    var$3.$instancesLimit = 1;
    var$2[10] = var$3;
    nms_StructureStrongholdPieces_pieceWeightArray = var$1;
    nms_StructureStrongholdPieces_strongholdStones = new nms_StructureStrongholdStones;
},
nms_ComponentScatteredFeaturePieces = $rt_classWithoutFields(),
nms_ComponentScatteredFeaturePieces__init_ = $this => {
    return;
},
nms_ComponentScatteredFeaturePieces__init_0 = () => {
    let var_0 = new nms_ComponentScatteredFeaturePieces();
    nms_ComponentScatteredFeaturePieces__init_(var_0);
    return var_0;
};
function nms_StructureComponent() {
    let a = this; jl_Object.call(a);
    a.$boundingBox = null;
    a.$coordBaseMode = 0;
    a.$componentType = 0;
}
let nms_StructureComponent_func_143010_b = $this => {
    let $var1, var$2, var$3, var$4, var$5, var$6, var$7, var$8, var$9, var$10;
    $var1 = new nms_NBTTagCompound;
    $var1.$name = $rt_s(3);
    var$2 = new ju_HashMap;
    var$3 = ju_HashMap_calculateCapacity(16);
    var$2.$elementCount = 0;
    var$4 = $rt_createArray(ju_HashMap$HashEntry, var$3);
    var$5 = var$4.data;
    var$2.$elementData = var$4;
    var$2.$loadFactor = 0.75;
    var$2.$threshold = var$5.length * 0.75 | 0;
    $var1.$tagMap = var$2;
    nms_MapGenStructureIO_$callClinit();
    var$6 = nms_MapGenStructureIO_field_143037_d;
    var$7 = $this.constructor;
    if (var$7 === null)
        var$8 = null;
    else {
        var$8 = var$7.classObject;
        if (var$8 === null) {
            var$8 = new jl_Class;
            var$8.$platformClass = var$7;
            var$7.classObject = var$8;
        }
    }
    if (var$8 === null) {
        var$9 = var$6.$elementData.data[0];
        while (var$9 !== null && var$9.$key !== null) {
            var$9 = var$9.$next3;
        }
    } else {
        var$7 = var$8;
        if (!var$7.$id$)
            var$7.$id$ = $rt_nextId();
        var$10 = var$8.$id$;
        var$5 = var$6.$elementData.data;
        var$9 = var$5[var$10 & (var$5.length - 1 | 0)];
        while (var$9 !== null) {
            if (var$9.$origKeyHash == var$10) {
                var$7 = var$9.$key;
                if (var$8 !== var$7 && !(var$8 !== var$7 ? 0 : 1) ? 0 : 1)
                    break;
            }
            var$9 = var$9.$next3;
        }
    }
    var$9 = var$9 === null ? null : var$9.$value0;
    var$8 = $var1.$tagMap;
    var$7 = new nms_NBTTagString;
    var$7.$name = $rt_s(914);
    var$7.$data1 = var$9;
    if (var$9 === null) {
        var$2 = new jl_IllegalArgumentException;
        var$2.$suppressionEnabled = 1;
        var$2.$writableStackTrace = 1;
        var$2.$message = $rt_s(177);
        $rt_throw(var$2);
    }
    ju_HashMap_putImpl(var$8, $rt_s(914), var$7);
    var$2 = nms_StructureBoundingBox_func_143047_a($this.$boundingBox, $rt_s(2737));
    var$8 = $var1.$tagMap;
    var$2.$name = $rt_s(2737);
    ju_HashMap_putImpl(var$8, $rt_s(2737), var$2);
    var$3 = $this.$coordBaseMode;
    var$8 = $var1.$tagMap;
    var$7 = new nms_NBTTagInt;
    var$7.$name = $rt_s(2781);
    var$7.$data = var$3;
    ju_HashMap_putImpl(var$8, $rt_s(2781), var$7);
    var$3 = $this.$componentType;
    var$8 = $var1.$tagMap;
    var$7 = new nms_NBTTagInt;
    var$7.$name = $rt_s(2782);
    var$7.$data = var$3;
    ju_HashMap_putImpl(var$8, $rt_s(2782), var$7);
    $this.$func_143012_a($var1);
    return $var1;
},
nms_StructureComponent_func_143009_a = ($this, $par1World, $par2NBTTagCompound) => {
    let var$3, var$4, var$5, var$6, var$7, var$8, var$9;
    a: {
        var$3 = $par2NBTTagCompound.$tagMap;
        if (!$rt_s(2737).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2737).$nativeString.length)
                    break a;
                $rt_s(2737).$hashCode1 = (31 * $rt_s(2737).$hashCode1 | 0) + $rt_s(2737).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$5 = $rt_s(2737).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$5 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$5) {
            b: {
                var$7 = var$3.$key;
                if ($rt_s(2737) !== var$7) {
                    if ($rt_s(2737) === var$7)
                        var$4 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$7 = var$7;
                        var$4 = $rt_s(2737).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break b;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (var$3 === null ? 0 : 1) {
        c: {
            var$3 = new nms_StructureBoundingBox;
            var$7 = $par2NBTTagCompound.$tagMap;
            if (!$rt_s(2737).$hashCode1) {
                var$4 = 0;
                while (true) {
                    if (var$4 >= $rt_s(2737).$nativeString.length)
                        break c;
                    $rt_s(2737).$hashCode1 = (31 * $rt_s(2737).$hashCode1 | 0) + $rt_s(2737).$nativeString.charCodeAt(var$4) | 0;
                    var$4 = var$4 + 1 | 0;
                }
            }
        }
        var$8 = $rt_s(2737).$hashCode1;
        var$6 = var$7.$elementData.data;
        var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
        while (var$7 !== null) {
            if (var$7.$origKeyHash == var$8) {
                d: {
                    var$9 = var$7.$key;
                    if ($rt_s(2737) !== var$9) {
                        if ($rt_s(2737) === var$9)
                            var$4 = 1;
                        else if (!(var$9 instanceof jl_String))
                            var$4 = 0;
                        else {
                            var$9 = var$9;
                            var$4 = $rt_s(2737).$nativeString !== var$9.$nativeString ? 0 : 1;
                        }
                        if (!var$4) {
                            var$4 = 0;
                            break d;
                        }
                    }
                    var$4 = 1;
                }
                if (var$4)
                    break;
            }
            var$7 = var$7.$next3;
        }
        if (!(var$7 === null ? 0 : 1))
            var$6 = $rt_createIntArray(0);
        else {
            var$7 = $par2NBTTagCompound.$tagMap;
            if ($rt_s(2737) === null) {
                var$7 = var$7.$elementData.data[0];
                while (var$7 !== null && var$7.$key !== null) {
                    var$7 = var$7.$next3;
                }
            } else {
                e: {
                    if (!$rt_s(2737).$hashCode1) {
                        var$4 = 0;
                        while (true) {
                            if (var$4 >= $rt_s(2737).$nativeString.length)
                                break e;
                            $rt_s(2737).$hashCode1 = (31 * $rt_s(2737).$hashCode1 | 0) + $rt_s(2737).$nativeString.charCodeAt(var$4) | 0;
                            var$4 = var$4 + 1 | 0;
                        }
                    }
                }
                var$8 = $rt_s(2737).$hashCode1;
                var$6 = var$7.$elementData.data;
                var$7 = var$6[var$8 & (var$6.length - 1 | 0)];
                while (var$7 !== null) {
                    if (var$7.$origKeyHash == var$8) {
                        f: {
                            var$9 = var$7.$key;
                            if ($rt_s(2737) !== var$9) {
                                if ($rt_s(2737) === var$9)
                                    var$4 = 1;
                                else if (!(var$9 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$9 = var$9;
                                    var$4 = $rt_s(2737).$nativeString !== var$9.$nativeString ? 0 : 1;
                                }
                                if (!var$4) {
                                    var$4 = 0;
                                    break f;
                                }
                            }
                            var$4 = 1;
                        }
                        if (var$4)
                            break;
                    }
                    var$7 = var$7.$next3;
                }
            }
            var$6 = (var$7 === null ? null : var$7.$value0).$intArray;
        }
        nms_StructureBoundingBox__init_(var$3, var$6);
        $this.$boundingBox = var$3;
    }
    g: {
        var$3 = $par2NBTTagCompound.$tagMap;
        if (!$rt_s(2781).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2781).$nativeString.length)
                    break g;
                $rt_s(2781).$hashCode1 = (31 * $rt_s(2781).$hashCode1 | 0) + $rt_s(2781).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2781).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$8 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$8) {
            h: {
                var$7 = var$3.$key;
                if ($rt_s(2781) !== var$7) {
                    if ($rt_s(2781) === var$7)
                        var$4 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$7 = var$7;
                        var$4 = $rt_s(2781).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break h;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (!(var$3 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$3 = $par2NBTTagCompound.$tagMap;
        if ($rt_s(2781) === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            i: {
                if (!$rt_s(2781).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2781).$nativeString.length)
                            break i;
                        $rt_s(2781).$hashCode1 = (31 * $rt_s(2781).$hashCode1 | 0) + $rt_s(2781).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2781).$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    j: {
                        var$7 = var$3.$key;
                        if ($rt_s(2781) !== var$7) {
                            if ($rt_s(2781) === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = $rt_s(2781).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break j;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$4 = (var$3 === null ? null : var$3.$value0).$data;
    }
    k: {
        $this.$coordBaseMode = var$4;
        var$3 = $par2NBTTagCompound.$tagMap;
        if (!$rt_s(2782).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2782).$nativeString.length)
                    break k;
                $rt_s(2782).$hashCode1 = (31 * $rt_s(2782).$hashCode1 | 0) + $rt_s(2782).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2782).$hashCode1;
    var$6 = var$3.$elementData.data;
    var$3 = var$6[var$8 & (var$6.length - 1 | 0)];
    while (var$3 !== null) {
        if (var$3.$origKeyHash == var$8) {
            l: {
                var$7 = var$3.$key;
                if ($rt_s(2782) !== var$7) {
                    if ($rt_s(2782) === var$7)
                        var$4 = 1;
                    else if (!(var$7 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$7 = var$7;
                        var$4 = $rt_s(2782).$nativeString !== var$7.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break l;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$3 = var$3.$next3;
    }
    if (!(var$3 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$3 = $par2NBTTagCompound.$tagMap;
        if ($rt_s(2782) === null) {
            var$3 = var$3.$elementData.data[0];
            while (var$3 !== null && var$3.$key !== null) {
                var$3 = var$3.$next3;
            }
        } else {
            m: {
                if (!$rt_s(2782).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2782).$nativeString.length)
                            break m;
                        $rt_s(2782).$hashCode1 = (31 * $rt_s(2782).$hashCode1 | 0) + $rt_s(2782).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2782).$hashCode1;
            var$6 = var$3.$elementData.data;
            var$3 = var$6[var$8 & (var$6.length - 1 | 0)];
            while (var$3 !== null) {
                if (var$3.$origKeyHash == var$8) {
                    n: {
                        var$7 = var$3.$key;
                        if ($rt_s(2782) !== var$7) {
                            if ($rt_s(2782) === var$7)
                                var$4 = 1;
                            else if (!(var$7 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$7 = var$7;
                                var$4 = $rt_s(2782).$nativeString !== var$7.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break n;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$3 = var$3.$next3;
            }
        }
        var$4 = (var$3 === null ? null : var$3.$value0).$data;
    }
    $this.$componentType = var$4;
    $this.$func_143011_b($par2NBTTagCompound);
},
nms_StructureComponent_buildComponent = ($this, $par1StructureComponent, $par2List, $par3Random) => {
    return;
},
nms_StructureComponent_getBoundingBox = $this => {
    return $this.$boundingBox;
},
nms_StructureComponent_getComponentType = $this => {
    return $this.$componentType;
},
nms_StructureComponent_getCenter = $this => {
    let var$1, var$2, var$3, var$4, var$5;
    var$1 = new nms_ChunkPosition;
    var$2 = $this.$boundingBox;
    var$3 = var$2.$minX;
    var$4 = var$3 + (((var$2.$maxX - var$3 | 0) + 1 | 0) / 2 | 0) | 0;
    var$3 = var$2.$minY;
    var$5 = var$3 + (((var$2.$maxY1 - var$3 | 0) + 1 | 0) / 2 | 0) | 0;
    var$3 = var$2.$minZ;
    var$3 = var$3 + (((var$2.$maxZ - var$3 | 0) + 1 | 0) / 2 | 0) | 0;
    var$1.$x = var$4;
    var$1.$y = var$5;
    var$1.$z = var$3;
    return var$1;
},
nms_StructureComponent_isLiquidInStructureBoundingBox = ($this, $par1World, $par2StructureBoundingBox) => {
    let var$3, $var3, $var3_0, $var4, $var4_0, $var5, $var5_0, $var6, $var6_0, $var7, $var7_0, $var8, $var8_0, $var9, $var10, $var10_0, $var11, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var11 = $thread.pop();$var10_0 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8_0 = $thread.pop();$var8 = $thread.pop();$var7_0 = $thread.pop();$var7 = $thread.pop();$var6_0 = $thread.pop();$var6 = $thread.pop();$var5_0 = $thread.pop();$var5 = $thread.pop();$var4_0 = $thread.pop();$var4 = $thread.pop();$var3_0 = $thread.pop();$var3 = $thread.pop();var$3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$3 = $this.$boundingBox;
        $var3 = var$3.$minX - 1 | 0;
        $var3_0 = $par2StructureBoundingBox.$minX;
        if ($var3 > $var3_0)
            $var3_0 = $var3;
        $var4 = var$3.$minY - 1 | 0;
        $var4_0 = $par2StructureBoundingBox.$minY;
        if ($var4 > $var4_0)
            $var4_0 = $var4;
        $var5 = var$3.$minZ - 1 | 0;
        $var5_0 = $par2StructureBoundingBox.$minZ;
        if ($var5 > $var5_0)
            $var5_0 = $var5;
        $var6 = var$3.$maxX + 1 | 0;
        $var6_0 = $par2StructureBoundingBox.$maxX;
        if ($var6 < $var6_0)
            $var6_0 = $var6;
        $var7 = var$3.$maxY1 + 1 | 0;
        $var7_0 = $par2StructureBoundingBox.$maxY1;
        if ($var7 < $var7_0)
            $var7_0 = $var7;
        $var8 = var$3.$maxZ + 1 | 0;
        $var8_0 = $par2StructureBoundingBox.$maxZ;
        if ($var8 < $var8_0)
            $var8_0 = $var8;
        $var9 = $var3_0;
        while (true) {
            if ($var9 > $var6_0) {
                $var10 = $var3_0;
                while (true) {
                    if ($var10 > $var6_0) {
                        while ($var5_0 <= $var8_0) {
                            $var10 = $var4_0;
                            if ($var10 <= $var7_0) {
                                $ptr = 5;
                                continue main;
                            }
                            $var5_0 = $var5_0 + 1 | 0;
                        }
                        return 0;
                    }
                    $var10_0 = $var4_0;
                    if ($var10_0 <= $var7_0)
                        break;
                    $var10 = $var10 + 1 | 0;
                }
                $ptr = 3;
                continue main;
            }
            $var10 = $var5_0;
            if ($var10 <= $var8_0)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var9, $var4_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var11].$blockMaterial.$isLiquid())
                return 1;
        }
        $ptr = 2;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var9, $var7_0, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var3].$blockMaterial.$isLiquid())
                return 1;
        }
        $var10 = $var10 + 1 | 0;
        while ($var10 > $var8_0) {
            $var9 = $var9 + 1 | 0;
            if ($var9 > $var6_0) {
                $var10 = $var3_0;
                while (true) {
                    if ($var10 > $var6_0) {
                        while ($var5_0 <= $var8_0) {
                            $var10 = $var4_0;
                            if ($var10 <= $var7_0) {
                                $ptr = 5;
                                continue main;
                            }
                            $var5_0 = $var5_0 + 1 | 0;
                        }
                        return 0;
                    }
                    $var10_0 = $var4_0;
                    if ($var10_0 <= $var7_0)
                        break;
                    $var10 = $var10 + 1 | 0;
                }
                $ptr = 3;
                continue main;
            }
            $var10 = $var5_0;
        }
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, $var10, $var10_0, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var11].$blockMaterial.$isLiquid())
                return 1;
        }
        $ptr = 4;
    case 4:
        $tmp = nms_World_getBlockId($par1World, $var10, $var10_0, $var8_0);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var3].$blockMaterial.$isLiquid())
                return 1;
        }
        $var10_0 = $var10_0 + 1 | 0;
        while ($var10_0 > $var7_0) {
            $var10 = $var10 + 1 | 0;
            if ($var10 > $var6_0) {
                while ($var5_0 <= $var8_0) {
                    $var10 = $var4_0;
                    if ($var10 <= $var7_0) {
                        $ptr = 5;
                        continue main;
                    }
                    $var5_0 = $var5_0 + 1 | 0;
                }
                return 0;
            }
            $var10_0 = $var4_0;
        }
        $ptr = 3;
        continue main;
    case 5:
        $tmp = nms_World_getBlockId($par1World, $var3_0, $var10, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if ($var11 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var11].$blockMaterial.$isLiquid())
                return 1;
        }
        $ptr = 6;
    case 6:
        $tmp = nms_World_getBlockId($par1World, $var6_0, $var10, $var5_0);
        if ($rt_suspending()) {
            break main;
        }
        $var3 = $tmp;
        if ($var3 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_blocksList.data[$var3].$blockMaterial.$isLiquid())
                return 1;
        }
        $var10 = $var10 + 1 | 0;
        while (true) {
            if ($var10 <= $var7_0) {
                $ptr = 5;
                continue main;
            }
            $var5_0 = $var5_0 + 1 | 0;
            if ($var5_0 > $var8_0)
                break;
            $var10 = $var4_0;
        }
        return 0;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, var$3, $var3, $var3_0, $var4, $var4_0, $var5, $var5_0, $var6, $var6_0, $var7, $var7_0, $var8, $var8_0, $var9, $var10, $var10_0, $var11, $ptr);
},
nms_StructureComponent_getXWithOffset = ($this, $par1, $par2) => {
    switch ($this.$coordBaseMode) {
        case 0:
        case 2:
            return $this.$boundingBox.$minX + $par1 | 0;
        case 1:
            return $this.$boundingBox.$maxX - $par2 | 0;
        case 3:
            return $this.$boundingBox.$minX + $par2 | 0;
        default:
    }
    return $par1;
},
nms_StructureComponent_getYWithOffset = ($this, $par1) => {
    if ($this.$coordBaseMode != (-1))
        $par1 = $par1 + $this.$boundingBox.$minY | 0;
    return $par1;
},
nms_StructureComponent_getZWithOffset = ($this, $par1, $par2) => {
    switch ($this.$coordBaseMode) {
        case 0:
            return $this.$boundingBox.$minZ + $par2 | 0;
        case 1:
        case 3:
            return $this.$boundingBox.$minZ + $par1 | 0;
        case 2:
            return $this.$boundingBox.$maxZ - $par2 | 0;
        default:
    }
    return $par2;
},
nms_StructureComponent_getMetadataWithOffset = ($this, $par1, $par2) => {
    let var$3;
    a: {
        nms_Block_$callClinit();
        if ($par1 == nms_Block_rail.$blockID) {
            $par1 = $this.$coordBaseMode;
            if ($par1 != 1 && $par1 != 3)
                break a;
            if ($par2 != 1)
                return 1;
            return 0;
        }
        if (!($par1 != nms_Block_doorWood.$blockID && $par1 != nms_Block_doorIron.$blockID)) {
            $par1 = $this.$coordBaseMode;
            if (!$par1) {
                if (!$par2)
                    return 2;
                if ($par2 != 2)
                    break a;
                return 0;
            }
            if ($par1 == 1)
                return ($par2 + 1 | 0) & 3;
            if ($par1 != 3)
                break a;
            return ($par2 + 3 | 0) & 3;
        }
        if (!($par1 != nms_Block_stairsCobblestone.$blockID && $par1 != nms_Block_stairsWoodOak.$blockID && $par1 != nms_Block_stairsNetherBrick.$blockID && $par1 != nms_Block_stairsStoneBrick.$blockID && $par1 != nms_Block_stairsSandStone.$blockID)) {
            $par1 = $this.$coordBaseMode;
            if (!$par1) {
                if ($par2 == 2)
                    return 3;
                if ($par2 != 3)
                    break a;
                return 2;
            }
            if ($par1 == 1) {
                if (!$par2)
                    return 2;
                if ($par2 == 1)
                    return 3;
                if ($par2 == 2)
                    return 0;
                if ($par2 != 3)
                    break a;
                return 1;
            }
            if ($par1 != 3)
                break a;
            if (!$par2)
                return 2;
            if ($par2 == 1)
                return 3;
            if ($par2 == 2)
                return 1;
            if ($par2 != 3)
                break a;
            return 0;
        }
        if ($par1 == nms_Block_ladder.$blockID) {
            $par1 = $this.$coordBaseMode;
            if (!$par1) {
                if ($par2 == 2)
                    return 3;
                if ($par2 != 3)
                    break a;
                return 2;
            }
            if ($par1 == 1) {
                if ($par2 == 2)
                    return 4;
                if ($par2 == 3)
                    return 5;
                if ($par2 == 4)
                    return 2;
                if ($par2 != 5)
                    break a;
                return 3;
            }
            if ($par1 != 3)
                break a;
            if ($par2 == 2)
                return 5;
            if ($par2 == 3)
                return 4;
            if ($par2 == 4)
                return 2;
            if ($par2 != 5)
                break a;
            return 3;
        }
        if ($par1 == nms_Block_stoneButton.$blockID) {
            $par1 = $this.$coordBaseMode;
            if (!$par1) {
                if ($par2 == 3)
                    return 4;
                if ($par2 != 4)
                    break a;
                return 3;
            }
            if ($par1 == 1) {
                if ($par2 == 3)
                    return 1;
                if ($par2 == 4)
                    return 2;
                if ($par2 == 2)
                    return 3;
                if ($par2 != 1)
                    break a;
                return 4;
            }
            if ($par1 != 3)
                break a;
            if ($par2 == 3)
                return 2;
            if ($par2 == 4)
                return 1;
            if ($par2 == 2)
                return 3;
            if ($par2 != 1)
                break a;
            return 4;
        }
        b: {
            if ($par1 != nms_Block_tripWireSource.$blockID) {
                var$3 = nms_Block_blocksList.data;
                if (var$3[$par1] === null)
                    break b;
                if (!(var$3[$par1] instanceof nms_BlockDirectional))
                    break b;
            }
            $par1 = $this.$coordBaseMode;
            if (!$par1) {
                if ($par2 && $par2 != 2)
                    break a;
                return nms_Direction_rotateOpposite.data[$par2];
            }
            if ($par1 == 1) {
                if ($par2 == 2)
                    return 1;
                if (!$par2)
                    return 3;
                if ($par2 == 1)
                    return 2;
                if ($par2 != 3)
                    break a;
                return 0;
            }
            if ($par1 != 3)
                break a;
            if ($par2 == 2)
                return 3;
            if (!$par2)
                return 1;
            if ($par2 == 1)
                return 2;
            if ($par2 != 3)
                break a;
            return 0;
        }
        if (!($par1 != nms_Block_pistonBase.$blockID && $par1 != nms_Block_pistonStickyBase.$blockID && $par1 != nms_Block_lever.$blockID && $par1 != nms_Block_dispenser.$blockID)) {
            $par1 = $this.$coordBaseMode;
            if (!$par1) {
                if ($par2 != 2 && $par2 != 3)
                    break a;
                return nms_Facing_oppositeSide.data[$par2];
            }
            if ($par1 == 1) {
                if ($par2 == 2)
                    return 4;
                if ($par2 == 3)
                    return 5;
                if ($par2 == 4)
                    return 2;
                if ($par2 != 5)
                    break a;
                return 3;
            }
            if ($par1 == 3) {
                if ($par2 == 2)
                    return 5;
                if ($par2 == 3)
                    return 4;
                if ($par2 == 4)
                    return 2;
                if ($par2 == 5)
                    return 3;
            }
        }
    }
    return $par2;
},
nms_StructureComponent_placeBlockAtCurrentPosition = ($this, $par1World, $par2, $par3, $par4, $var9, $var10, $par7StructureBoundingBox) => {
    let var$8, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7StructureBoundingBox = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$8 = $this.$coordBaseMode;
            switch (var$8) {
                case 0:
                case 2:
                    $var8 = $this.$boundingBox.$minX + $par4 | 0;
                    break a;
                case 1:
                    $var8 = $this.$boundingBox.$maxX - $var10 | 0;
                    break a;
                case 3:
                    $var8 = $this.$boundingBox.$minX + $var10 | 0;
                    break a;
                default:
            }
            $var8 = $par4;
        }
        if (var$8 != (-1))
            $var9 = $var9 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$8) {
                case 0:
                    $var10 = $this.$boundingBox.$minZ + $var10 | 0;
                    break b;
                case 1:
                case 3:
                    $var10 = $this.$boundingBox.$minZ + $par4 | 0;
                    break b;
                case 2:
                    $var10 = $this.$boundingBox.$maxZ - $var10 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par7StructureBoundingBox, $var8, $var9, $var10))
            return;
        $par4 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlock($par1World, $var8, $var9, $var10, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var9, $var10, $par7StructureBoundingBox, var$8, $var8, $ptr);
},
nms_StructureComponent_getBlockIdAtCurrentPosition = ($this, $par1World, $par2, $var7, $var8, $par5StructureBoundingBox) => {
    let var$6, $var6, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5StructureBoundingBox = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$6 = $this.$coordBaseMode;
            switch (var$6) {
                case 0:
                case 2:
                    $var6 = $this.$boundingBox.$minX + $par2 | 0;
                    break a;
                case 1:
                    $var6 = $this.$boundingBox.$maxX - $var8 | 0;
                    break a;
                case 3:
                    $var6 = $this.$boundingBox.$minX + $var8 | 0;
                    break a;
                default:
            }
            $var6 = $par2;
        }
        if (var$6 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$6) {
                case 0:
                    $var8 = $this.$boundingBox.$minZ + $var8 | 0;
                    break b;
                case 1:
                case 3:
                    $var8 = $this.$boundingBox.$minZ + $par2 | 0;
                    break b;
                case 2:
                    $var8 = $this.$boundingBox.$maxZ - $var8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par5StructureBoundingBox, $var6, $var7, $var8))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        return $par2;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $var7, $var8, $par5StructureBoundingBox, var$6, $var6, $ptr);
},
nms_StructureComponent_fillWithAir = ($this, $par1World, $par2StructureBoundingBox, $par3, $var9, $par5, $par6, $par7, $par8) => {
    let $var10, $var11, var$11, var$12, var$13, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$var9 = $thread.pop();$par3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        while ($var9 <= $par7) {
            $var10 = $par3;
            while ($var10 <= $par6) {
                $var11 = $par5;
                while ($var11 <= $par8) {
                    a: {
                        var$11 = 0;
                        var$12 = 0;
                        var$13 = $this.$coordBaseMode;
                        switch (var$13) {
                            case 0:
                            case 2:
                                var$14 = $this.$boundingBox.$minX + $var10 | 0;
                                break a;
                            case 1:
                                var$14 = $this.$boundingBox.$maxX - $var11 | 0;
                                break a;
                            case 3:
                                var$14 = $this.$boundingBox.$minX + $var11 | 0;
                                break a;
                            default:
                        }
                        var$14 = $var10;
                    }
                    var$15 = var$13 == (-1) ? $var9 : $var9 + $this.$boundingBox.$minY | 0;
                    b: {
                        switch (var$13) {
                            case 0:
                                var$13 = $this.$boundingBox.$minZ + $var11 | 0;
                                break b;
                            case 1:
                            case 3:
                                var$13 = $this.$boundingBox.$minZ + $var10 | 0;
                                break b;
                            case 2:
                                var$13 = $this.$boundingBox.$maxZ - $var11 | 0;
                                break b;
                            default:
                        }
                        var$13 = $var11;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$14, var$15, var$13)) {
                        var$16 = 2;
                        $ptr = 1;
                        continue main;
                    }
                    $var11 = $var11 + 1 | 0;
                }
                $var10 = $var10 + 1 | 0;
            }
            $var9 = $var9 + 1 | 0;
        }
        return;
    case 1:
        nms_World_setBlock($par1World, var$14, var$15, var$13, var$11, var$12, var$16);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            $var11 = $var11 + 1 | 0;
            while ($var11 > $par8) {
                $var10 = $var10 + 1 | 0;
                while ($var10 > $par6) {
                    $var9 = $var9 + 1 | 0;
                    if ($var9 > $par7)
                        break c;
                    $var10 = $par3;
                }
                $var11 = $par5;
            }
            d: {
                var$11 = 0;
                var$12 = 0;
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + $var10 | 0;
                        break d;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var11 | 0;
                        break d;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var11 | 0;
                        break d;
                    default:
                }
                var$14 = $var10;
            }
            var$15 = var$13 == (-1) ? $var9 : $var9 + $this.$boundingBox.$minY | 0;
            e: {
                switch (var$13) {
                    case 0:
                        var$13 = $this.$boundingBox.$minZ + $var11 | 0;
                        break e;
                    case 1:
                    case 3:
                        var$13 = $this.$boundingBox.$minZ + $var10 | 0;
                        break e;
                    case 2:
                        var$13 = $this.$boundingBox.$maxZ - $var11 | 0;
                        break e;
                    default:
                }
                var$13 = $var11;
            }
            if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$14, var$15, var$13))
                continue;
            else {
                var$16 = 2;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $var9, $par5, $par6, $par7, $par8, $var10, $var11, var$11, var$12, var$13, var$14, var$15, var$16, $ptr);
},
nms_StructureComponent_fillWithBlocks = ($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11) => {
    let $var12, var$13, $var13, var$15, $var14, var$17, var$18, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var14 = $thread.pop();var$15 = $thread.pop();$var13 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$par11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var12 = $par4;
        while (true) {
            var$13 = $rt_compare($var12, $par7);
            if (var$13 > 0)
                break;
            $var13 = $par3;
            while (true) {
                var$15 = $rt_compare($var13, $par6);
                if (var$15 > 0)
                    break;
                $var14 = $par5;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 > 0)
                        break;
                    a: {
                        if ($par11) {
                            b: {
                                var$18 = $this.$coordBaseMode;
                                switch (var$18) {
                                    case 0:
                                    case 2:
                                        var$19 = $this.$boundingBox.$minX + $var13 | 0;
                                        break b;
                                    case 1:
                                        var$19 = $this.$boundingBox.$maxX - $var14 | 0;
                                        break b;
                                    case 3:
                                        var$19 = $this.$boundingBox.$minX + $var14 | 0;
                                        break b;
                                    default:
                                }
                                var$19 = $var13;
                            }
                            var$20 = var$18 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                            c: {
                                switch (var$18) {
                                    case 0:
                                        var$18 = $this.$boundingBox.$minZ + $var14 | 0;
                                        break c;
                                    case 1:
                                    case 3:
                                        var$18 = $this.$boundingBox.$minZ + $var13 | 0;
                                        break c;
                                    case 2:
                                        var$18 = $this.$boundingBox.$maxZ - $var14 | 0;
                                        break c;
                                    default:
                                }
                                var$18 = $var14;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$18)) {
                                $ptr = 1;
                                continue main;
                            }
                            if (!0)
                                break a;
                        }
                        if (!($var12 != $par4 && var$13 && $var13 != $par3 && var$15 && $var14 != $par5 && var$17)) {
                            d: {
                                var$17 = 0;
                                var$19 = $this.$coordBaseMode;
                                switch (var$19) {
                                    case 0:
                                    case 2:
                                        var$18 = $this.$boundingBox.$minX + $var13 | 0;
                                        break d;
                                    case 1:
                                        var$18 = $this.$boundingBox.$maxX - $var14 | 0;
                                        break d;
                                    case 3:
                                        var$18 = $this.$boundingBox.$minX + $var14 | 0;
                                        break d;
                                    default:
                                }
                                var$18 = $var13;
                            }
                            var$21 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                            e: {
                                switch (var$19) {
                                    case 0:
                                        var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                                        break e;
                                    case 1:
                                    case 3:
                                        var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                                        break e;
                                    case 2:
                                        var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                                        break e;
                                    default:
                                }
                                var$19 = $var14;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$18, var$21, var$19)) {
                                var$20 = 2;
                                $ptr = 2;
                                continue main;
                            }
                        } else {
                            f: {
                                var$17 = 0;
                                var$19 = $this.$coordBaseMode;
                                switch (var$19) {
                                    case 0:
                                    case 2:
                                        var$21 = $this.$boundingBox.$minX + $var13 | 0;
                                        break f;
                                    case 1:
                                        var$21 = $this.$boundingBox.$maxX - $var14 | 0;
                                        break f;
                                    case 3:
                                        var$21 = $this.$boundingBox.$minX + $var14 | 0;
                                        break f;
                                    default:
                                }
                                var$21 = $var13;
                            }
                            var$18 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                            g: {
                                switch (var$19) {
                                    case 0:
                                        var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                                        break g;
                                    case 1:
                                    case 3:
                                        var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                                        break g;
                                    case 2:
                                        var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                                        break g;
                                    default:
                                }
                                var$19 = $var14;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$19)) {
                                var$20 = 2;
                                $ptr = 3;
                                continue main;
                            }
                        }
                    }
                    $var14 = $var14 + 1 | 0;
                }
                $var13 = $var13 + 1 | 0;
            }
            $var12 = $var12 + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$19, var$20, var$18);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = $tmp;
        h: while (true) {
            if (!var$20) {
                var$17 = 1;
                $var14 = $var14 + var$17 | 0;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 <= 0)
                        break;
                    var$17 = 1;
                    $var13 = $var13 + var$17 | 0;
                    while (true) {
                        var$15 = $rt_compare($var13, $par6);
                        if (var$15 <= 0)
                            break;
                        var$17 = 1;
                        $var12 = $var12 + var$17 | 0;
                        var$13 = $rt_compare($var12, $par7);
                        if (var$13 > 0)
                            return;
                        $var13 = $par3;
                    }
                    $var14 = $par5;
                }
                if ($par11) {
                    i: {
                        var$18 = $this.$coordBaseMode;
                        switch (var$18) {
                            case 0:
                            case 2:
                                var$22 = $this.$boundingBox;
                                var$20 = var$22.$minX;
                                var$19 = var$20 + $var13 | 0;
                                break i;
                            case 1:
                                var$22 = $this.$boundingBox;
                                var$20 = var$22.$maxX;
                                var$19 = var$20 - $var14 | 0;
                                break i;
                            case 3:
                                var$22 = $this.$boundingBox;
                                var$20 = var$22.$minX;
                                var$19 = var$20 + $var14 | 0;
                                break i;
                            default:
                        }
                        var$19 = $var13;
                    }
                    var$20 = (-1);
                    var$20 = $rt_compare(var$18, var$20);
                    if (!var$20)
                        var$20 = $var12;
                    else {
                        var$22 = $this.$boundingBox;
                        var$20 = var$22.$minY;
                        var$20 = $var12 + var$20 | 0;
                    }
                    j: {
                        switch (var$18) {
                            case 0:
                                var$22 = $this.$boundingBox;
                                var$18 = var$22.$minZ;
                                var$18 = var$18 + $var14 | 0;
                                break j;
                            case 1:
                            case 3:
                                var$22 = $this.$boundingBox;
                                var$18 = var$22.$minZ;
                                var$18 = var$18 + $var13 | 0;
                                break j;
                            case 2:
                                var$22 = $this.$boundingBox;
                                var$18 = var$22.$maxZ;
                                var$18 = var$18 - $var14 | 0;
                                break j;
                            default:
                        }
                        var$18 = $var14;
                    }
                    var$21 = nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$18);
                    if (var$21) {
                        continue main;
                    }
                    var$20 = 0;
                    continue;
                }
            }
            while (true) {
                if (!($var12 != $par4 && var$13 && $var13 != $par3 && var$15 && $var14 != $par5 && var$17)) {
                    k: {
                        var$17 = 0;
                        var$19 = $this.$coordBaseMode;
                        switch (var$19) {
                            case 0:
                            case 2:
                                var$18 = $this.$boundingBox.$minX + $var13 | 0;
                                break k;
                            case 1:
                                var$18 = $this.$boundingBox.$maxX - $var14 | 0;
                                break k;
                            case 3:
                                var$18 = $this.$boundingBox.$minX + $var14 | 0;
                                break k;
                            default:
                        }
                        var$18 = $var13;
                    }
                    var$21 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                    f: {
                        switch (var$19) {
                            case 0:
                                var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                                break f;
                            case 1:
                            case 3:
                                var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                                break f;
                            case 2:
                                var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                                break f;
                            default:
                        }
                        var$19 = $var14;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$18, var$21, var$19)) {
                        var$20 = 2;
                        $ptr = 2;
                        continue main;
                    }
                } else {
                    l: {
                        var$17 = 0;
                        var$19 = $this.$coordBaseMode;
                        switch (var$19) {
                            case 0:
                            case 2:
                                var$21 = $this.$boundingBox.$minX + $var13 | 0;
                                break l;
                            case 1:
                                var$21 = $this.$boundingBox.$maxX - $var14 | 0;
                                break l;
                            case 3:
                                var$21 = $this.$boundingBox.$minX + $var14 | 0;
                                break l;
                            default:
                        }
                        var$21 = $var13;
                    }
                    var$18 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                    m: {
                        switch (var$19) {
                            case 0:
                                var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                                break m;
                            case 1:
                            case 3:
                                var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                                break m;
                            case 2:
                                var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                                break m;
                            default:
                        }
                        var$19 = $var14;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$19)) {
                        var$20 = 2;
                        $ptr = 3;
                        continue main;
                    }
                }
                var$17 = 1;
                $var14 = $var14 + var$17 | 0;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 <= 0)
                        break;
                    var$17 = 1;
                    $var13 = $var13 + var$17 | 0;
                    while (true) {
                        var$15 = $rt_compare($var13, $par6);
                        if (var$15 <= 0)
                            break;
                        var$17 = 1;
                        $var12 = $var12 + var$17 | 0;
                        var$13 = $rt_compare($var12, $par7);
                        if (var$13 > 0)
                            break h;
                        $var13 = $par3;
                    }
                    $var14 = $par5;
                }
                if (!$par11)
                    continue;
                else
                    break;
            }
            n: {
                var$18 = $this.$coordBaseMode;
                switch (var$18) {
                    case 0:
                    case 2:
                        var$22 = $this.$boundingBox;
                        var$20 = var$22.$minX;
                        var$19 = var$20 + $var13 | 0;
                        break n;
                    case 1:
                        var$22 = $this.$boundingBox;
                        var$20 = var$22.$maxX;
                        var$19 = var$20 - $var14 | 0;
                        break n;
                    case 3:
                        var$22 = $this.$boundingBox;
                        var$20 = var$22.$minX;
                        var$19 = var$20 + $var14 | 0;
                        break n;
                    default:
                }
                var$19 = $var13;
            }
            var$20 = (-1);
            var$20 = $rt_compare(var$18, var$20);
            if (!var$20)
                var$20 = $var12;
            else {
                var$22 = $this.$boundingBox;
                var$20 = var$22.$minY;
                var$20 = $var12 + var$20 | 0;
            }
            o: {
                switch (var$18) {
                    case 0:
                        var$22 = $this.$boundingBox;
                        var$18 = var$22.$minZ;
                        var$18 = var$18 + $var14 | 0;
                        break o;
                    case 1:
                    case 3:
                        var$22 = $this.$boundingBox;
                        var$18 = var$22.$minZ;
                        var$18 = var$18 + $var13 | 0;
                        break o;
                    case 2:
                        var$22 = $this.$boundingBox;
                        var$18 = var$22.$maxZ;
                        var$18 = var$18 - $var14 | 0;
                        break o;
                    default:
                }
                var$18 = $var14;
            }
            var$21 = nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$18);
            if (var$21) {
                continue main;
            }
            var$20 = 0;
        }
        return;
    case 2:
        nms_World_setBlock($par1World, var$18, var$21, var$19, $par9, var$17, var$20);
        if ($rt_suspending()) {
            break main;
        }
        p: while (true) {
            while (true) {
                $var14 = $var14 + 1 | 0;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 <= 0)
                        break;
                    $var13 = $var13 + 1 | 0;
                    while (true) {
                        var$15 = $rt_compare($var13, $par6);
                        if (var$15 <= 0)
                            break;
                        $var12 = $var12 + 1 | 0;
                        var$13 = $rt_compare($var12, $par7);
                        if (var$13 > 0)
                            break p;
                        $var13 = $par3;
                    }
                    $var14 = $par5;
                }
                if ($par11) {
                    i: {
                        var$18 = $this.$coordBaseMode;
                        switch (var$18) {
                            case 0:
                            case 2:
                                var$19 = $this.$boundingBox.$minX + $var13 | 0;
                                break i;
                            case 1:
                                var$19 = $this.$boundingBox.$maxX - $var14 | 0;
                                break i;
                            case 3:
                                var$19 = $this.$boundingBox.$minX + $var14 | 0;
                                break i;
                            default:
                        }
                        var$19 = $var13;
                    }
                    var$20 = var$18 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                    j: {
                        switch (var$18) {
                            case 0:
                                var$18 = $this.$boundingBox.$minZ + $var14 | 0;
                                break j;
                            case 1:
                            case 3:
                                var$18 = $this.$boundingBox.$minZ + $var13 | 0;
                                break j;
                            case 2:
                                var$18 = $this.$boundingBox.$maxZ - $var14 | 0;
                                break j;
                            default:
                        }
                        var$18 = $var14;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$18)) {
                        $ptr = 1;
                        continue main;
                    }
                    if (!0)
                        continue;
                }
                if ($var12 == $par4)
                    break;
                if (!var$13)
                    break;
                if ($var13 == $par3)
                    break;
                if (!var$15)
                    break;
                if ($var14 == $par5)
                    break;
                if (!var$17)
                    break;
                d: {
                    var$17 = 0;
                    var$19 = $this.$coordBaseMode;
                    switch (var$19) {
                        case 0:
                        case 2:
                            var$21 = $this.$boundingBox.$minX + $var13 | 0;
                            break d;
                        case 1:
                            var$21 = $this.$boundingBox.$maxX - $var14 | 0;
                            break d;
                        case 3:
                            var$21 = $this.$boundingBox.$minX + $var14 | 0;
                            break d;
                        default:
                    }
                    var$21 = $var13;
                }
                var$18 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                e: {
                    switch (var$19) {
                        case 0:
                            var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                            break e;
                        case 1:
                        case 3:
                            var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                            break e;
                        case 2:
                            var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                            break e;
                        default:
                    }
                    var$19 = $var14;
                }
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$19)) {
                    var$20 = 2;
                    $ptr = 3;
                    continue main;
                }
            }
            f: {
                var$17 = 0;
                var$19 = $this.$coordBaseMode;
                switch (var$19) {
                    case 0:
                    case 2:
                        var$18 = $this.$boundingBox.$minX + $var13 | 0;
                        break f;
                    case 1:
                        var$18 = $this.$boundingBox.$maxX - $var14 | 0;
                        break f;
                    case 3:
                        var$18 = $this.$boundingBox.$minX + $var14 | 0;
                        break f;
                    default:
                }
                var$18 = $var13;
            }
            var$21 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
            g: {
                switch (var$19) {
                    case 0:
                        var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                        break g;
                    case 1:
                    case 3:
                        var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                        break g;
                    case 2:
                        var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                        break g;
                    default:
                }
                var$19 = $var14;
            }
            if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$18, var$21, var$19))
                continue;
            else {
                var$20 = 2;
                continue main;
            }
        }
        return;
    case 3:
        nms_World_setBlock($par1World, var$21, var$18, var$19, $par10, var$17, var$20);
        if ($rt_suspending()) {
            break main;
        }
        p: while (true) {
            while (true) {
                $var14 = $var14 + 1 | 0;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 <= 0)
                        break;
                    $var13 = $var13 + 1 | 0;
                    while (true) {
                        var$15 = $rt_compare($var13, $par6);
                        if (var$15 <= 0)
                            break;
                        $var12 = $var12 + 1 | 0;
                        var$13 = $rt_compare($var12, $par7);
                        if (var$13 > 0)
                            break p;
                        $var13 = $par3;
                    }
                    $var14 = $par5;
                }
                if ($par11) {
                    i: {
                        var$18 = $this.$coordBaseMode;
                        switch (var$18) {
                            case 0:
                            case 2:
                                var$19 = $this.$boundingBox.$minX + $var13 | 0;
                                break i;
                            case 1:
                                var$19 = $this.$boundingBox.$maxX - $var14 | 0;
                                break i;
                            case 3:
                                var$19 = $this.$boundingBox.$minX + $var14 | 0;
                                break i;
                            default:
                        }
                        var$19 = $var13;
                    }
                    var$20 = var$18 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                    j: {
                        switch (var$18) {
                            case 0:
                                var$18 = $this.$boundingBox.$minZ + $var14 | 0;
                                break j;
                            case 1:
                            case 3:
                                var$18 = $this.$boundingBox.$minZ + $var13 | 0;
                                break j;
                            case 2:
                                var$18 = $this.$boundingBox.$maxZ - $var14 | 0;
                                break j;
                            default:
                        }
                        var$18 = $var14;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$18)) {
                        $ptr = 1;
                        continue main;
                    }
                    if (!0)
                        continue;
                }
                if ($var12 != $par4 && var$13 && $var13 != $par3 && var$15 && $var14 != $par5 && var$17)
                    break;
                q: {
                    var$17 = 0;
                    var$19 = $this.$coordBaseMode;
                    switch (var$19) {
                        case 0:
                        case 2:
                            var$18 = $this.$boundingBox.$minX + $var13 | 0;
                            break q;
                        case 1:
                            var$18 = $this.$boundingBox.$maxX - $var14 | 0;
                            break q;
                        case 3:
                            var$18 = $this.$boundingBox.$minX + $var14 | 0;
                            break q;
                        default:
                    }
                    var$18 = $var13;
                }
                var$21 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                r: {
                    switch (var$19) {
                        case 0:
                            var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                            break r;
                        case 1:
                        case 3:
                            var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                            break r;
                        case 2:
                            var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                            break r;
                        default:
                    }
                    var$19 = $var14;
                }
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$18, var$21, var$19)) {
                    var$20 = 2;
                    $ptr = 2;
                    continue main;
                }
            }
            s: {
                var$17 = 0;
                var$19 = $this.$coordBaseMode;
                switch (var$19) {
                    case 0:
                    case 2:
                        var$21 = $this.$boundingBox.$minX + $var13 | 0;
                        break s;
                    case 1:
                        var$21 = $this.$boundingBox.$maxX - $var14 | 0;
                        break s;
                    case 3:
                        var$21 = $this.$boundingBox.$minX + $var14 | 0;
                        break s;
                    default:
                }
                var$21 = $var13;
            }
            var$18 = var$19 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
            t: {
                switch (var$19) {
                    case 0:
                        var$19 = $this.$boundingBox.$minZ + $var14 | 0;
                        break t;
                    case 1:
                    case 3:
                        var$19 = $this.$boundingBox.$minZ + $var13 | 0;
                        break t;
                    case 2:
                        var$19 = $this.$boundingBox.$maxZ - $var14 | 0;
                        break t;
                    default:
                }
                var$19 = $var14;
            }
            if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$19))
                continue;
            else {
                var$20 = 2;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11, $var12, var$13, $var13, var$15, $var14, var$17, var$18, var$19, var$20, var$21, var$22, $ptr);
},
nms_StructureComponent_fillWithMetadataBlocks = ($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11, $par12, $par13) => {
    let $var14, var$15, $var15, var$17, $var16, var$19, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();$var16 = $thread.pop();var$17 = $thread.pop();$var15 = $thread.pop();var$15 = $thread.pop();$var14 = $thread.pop();$par13 = $thread.pop();$par12 = $thread.pop();$par11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World
        = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var14 = $par4;
        a: {
            while (true) {
                var$15 = $rt_compare($var14, $par7);
                if (var$15 > 0)
                    break;
                $var15 = $par3;
                while (true) {
                    var$17 = $rt_compare($var15, $par6);
                    if (var$17 > 0)
                        break;
                    $var16 = $par5;
                    while (true) {
                        var$19 = $rt_compare($var16, $par8);
                        if (var$19 > 0)
                            break;
                        if (!$par13)
                            break a;
                        b: {
                            var$20 = $this.$coordBaseMode;
                            switch (var$20) {
                                case 0:
                                case 2:
                                    var$21 = $this.$boundingBox.$minX + $var15 | 0;
                                    break b;
                                case 1:
                                    var$21 = $this.$boundingBox.$maxX - $var16 | 0;
                                    break b;
                                case 3:
                                    var$21 = $this.$boundingBox.$minX + $var16 | 0;
                                    break b;
                                default:
                            }
                            var$21 = $var15;
                        }
                        var$22 = var$20 == (-1) ? $var14 : $var14 + $this.$boundingBox.$minY | 0;
                        c: {
                            switch (var$20) {
                                case 0:
                                    var$20 = $this.$boundingBox.$minZ + $var16 | 0;
                                    break c;
                                case 1:
                                case 3:
                                    var$20 = $this.$boundingBox.$minZ + $var15 | 0;
                                    break c;
                                case 2:
                                    var$20 = $this.$boundingBox.$maxZ - $var16 | 0;
                                    break c;
                                default:
                            }
                            var$20 = $var16;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$22, var$20)) {
                            $ptr = 3;
                            continue main;
                        }
                        if (0)
                            break a;
                        $var16 = $var16 + 1 | 0;
                    }
                    $var15 = $var15 + 1 | 0;
                }
                $var14 = $var14 + 1 | 0;
            }
            return;
        }
        if ($var14 != $par4 && var$15 && $var15 != $par3 && var$17 && $var16 != $par5 && var$19) {
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
    case 1:
        $this.$placeBlockAtCurrentPosition($par1World, $par9, $par10, $var15, $var14, $var16, $par2StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            d: while (true) {
                $var16 = $var16 + 1 | 0;
                while (true) {
                    var$19 = $rt_compare($var16, $par8);
                    if (var$19 <= 0)
                        break;
                    $var15 = $var15 + 1 | 0;
                    while (true) {
                        var$17 = $rt_compare($var15, $par6);
                        if (var$17 <= 0)
                            break;
                        $var14 = $var14 + 1 | 0;
                        var$15 = $rt_compare($var14, $par7);
                        if (var$15 > 0)
                            break d;
                        $var15 = $par3;
                    }
                    $var16 = $par5;
                }
                if (!$par13)
                    break a;
                e: {
                    var$20 = $this.$coordBaseMode;
                    switch (var$20) {
                        case 0:
                        case 2:
                            var$21 = $this.$boundingBox.$minX + $var15 | 0;
                            break e;
                        case 1:
                            var$21 = $this.$boundingBox.$maxX - $var16 | 0;
                            break e;
                        case 3:
                            var$21 = $this.$boundingBox.$minX + $var16 | 0;
                            break e;
                        default:
                    }
                    var$21 = $var15;
                }
                var$22 = var$20 == (-1) ? $var14 : $var14 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$20) {
                        case 0:
                            var$20 = $this.$boundingBox.$minZ + $var16 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$20 = $this.$boundingBox.$minZ + $var15 | 0;
                            break f;
                        case 2:
                            var$20 = $this.$boundingBox.$maxZ - $var16 | 0;
                            break f;
                        default:
                    }
                    var$20 = $var16;
                }
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$22, var$20)) {
                    $ptr = 3;
                    continue main;
                }
                if (!0)
                    continue;
                else
                    break a;
            }
            return;
        }
        if ($var14 != $par4 && var$15 && $var15 != $par3 && var$17 && $var16 != $par5 && var$19) {
            $ptr = 2;
            continue main;
        }
        continue main;
    case 2:
        $this.$placeBlockAtCurrentPosition($par1World, $par11, $par12, $var15, $var14, $var16, $par2StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            d: while (true) {
                $var16 = $var16 + 1 | 0;
                while (true) {
                    var$19 = $rt_compare($var16, $par8);
                    if (var$19 <= 0)
                        break;
                    $var15 = $var15 + 1 | 0;
                    while (true) {
                        var$17 = $rt_compare($var15, $par6);
                        if (var$17 <= 0)
                            break;
                        $var14 = $var14 + 1 | 0;
                        var$15 = $rt_compare($var14, $par7);
                        if (var$15 > 0)
                            break d;
                        $var15 = $par3;
                    }
                    $var16 = $par5;
                }
                if (!$par13)
                    break a;
                e: {
                    var$20 = $this.$coordBaseMode;
                    switch (var$20) {
                        case 0:
                        case 2:
                            var$21 = $this.$boundingBox.$minX + $var15 | 0;
                            break e;
                        case 1:
                            var$21 = $this.$boundingBox.$maxX - $var16 | 0;
                            break e;
                        case 3:
                            var$21 = $this.$boundingBox.$minX + $var16 | 0;
                            break e;
                        default:
                    }
                    var$21 = $var15;
                }
                var$22 = var$20 == (-1) ? $var14 : $var14 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$20) {
                        case 0:
                            var$20 = $this.$boundingBox.$minZ + $var16 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$20 = $this.$boundingBox.$minZ + $var15 | 0;
                            break f;
                        case 2:
                            var$20 = $this.$boundingBox.$maxZ - $var16 | 0;
                            break f;
                        default:
                    }
                    var$20 = $var16;
                }
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$22, var$20)) {
                    $ptr = 3;
                    continue main;
                }
                if (!0)
                    continue;
                else
                    break a;
            }
            return;
        }
        if ($var14 != $par4 && var$15 && $var15 != $par3 && var$17 && $var16 != $par5 && var$19) {
            continue main;
        }
        $ptr = 1;
        continue main;
    case 3:
        $tmp = nms_World_getBlockId($par1World, var$21, var$22, var$20);
        if ($rt_suspending()) {
            break main;
        }
        var$22 = $tmp;
        a: {
            d: while (true) {
                if (var$22)
                    break a;
                $var16 = $var16 + 1 | 0;
                while (true) {
                    var$19 = $rt_compare($var16, $par8);
                    if (var$19 <= 0)
                        break;
                    $var15 = $var15 + 1 | 0;
                    while (true) {
                        var$17 = $rt_compare($var15, $par6);
                        if (var$17 <= 0)
                            break;
                        $var14 = $var14 + 1 | 0;
                        var$15 = $rt_compare($var14, $par7);
                        if (var$15 > 0)
                            break d;
                        $var15 = $par3;
                    }
                    $var16 = $par5;
                }
                if (!$par13)
                    break a;
                e: {
                    var$20 = $this.$coordBaseMode;
                    switch (var$20) {
                        case 0:
                        case 2:
                            var$21 = $this.$boundingBox.$minX + $var15 | 0;
                            break e;
                        case 1:
                            var$21 = $this.$boundingBox.$maxX - $var16 | 0;
                            break e;
                        case 3:
                            var$21 = $this.$boundingBox.$minX + $var16 | 0;
                            break e;
                        default:
                    }
                    var$21 = $var15;
                }
                var$22 = var$20 == (-1) ? $var14 : $var14 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$20) {
                        case 0:
                            var$20 = $this.$boundingBox.$minZ + $var16 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$20 = $this.$boundingBox.$minZ + $var15 | 0;
                            break f;
                        case 2:
                            var$20 = $this.$boundingBox.$maxZ - $var16 | 0;
                            break f;
                        default:
                    }
                    var$20 = $var16;
                }
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$22, var$20)) {
                    continue main;
                }
                var$22 = 0;
            }
            return;
        }
        if ($var14 != $par4 && var$15 && $var15 != $par3 && var$17 && $var16 != $par5 && var$19) {
            $ptr = 2;
            continue main;
        }
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11, $par12, $par13, $var14, var$15, $var15, var$17, $var16, var$19, var$20, var$21, var$22, $ptr);
},
nms_StructureComponent_fillWithRandomizedBlocks = ($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10Random, $par11StructurePieceBlockSelector) => {
    let $var12, var$13, $var13, var$15, $var14, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();$var14 = $thread.pop();var$15 = $thread.pop();$var13 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();$par11StructurePieceBlockSelector = $thread.pop();$par10Random = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3
        = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var12 = $par4;
        while (true) {
            var$13 = $rt_compare($var12, $par7);
            if (var$13 > 0)
                break;
            $var13 = $par3;
            while (true) {
                var$15 = $rt_compare($var13, $par6);
                if (var$15 > 0)
                    break;
                $var14 = $par5;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 > 0)
                        break;
                    a: {
                        if ($par9) {
                            b: {
                                var$18 = $this.$coordBaseMode;
                                switch (var$18) {
                                    case 0:
                                    case 2:
                                        var$19 = $this.$boundingBox.$minX + $var13 | 0;
                                        break b;
                                    case 1:
                                        var$19 = $this.$boundingBox.$maxX - $var14 | 0;
                                        break b;
                                    case 3:
                                        var$19 = $this.$boundingBox.$minX + $var14 | 0;
                                        break b;
                                    default:
                                }
                                var$19 = $var13;
                            }
                            var$20 = var$18 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                            c: {
                                switch (var$18) {
                                    case 0:
                                        var$21 = $this.$boundingBox.$minZ + $var14 | 0;
                                        break c;
                                    case 1:
                                    case 3:
                                        var$21 = $this.$boundingBox.$minZ + $var13 | 0;
                                        break c;
                                    case 2:
                                        var$21 = $this.$boundingBox.$maxZ - $var14 | 0;
                                        break c;
                                    default:
                                }
                                var$21 = $var14;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$21)) {
                                $ptr = 1;
                                continue main;
                            }
                            if (!0)
                                break a;
                        }
                        var$19 = $var12 != $par4 && var$13 && $var13 != $par3 && var$15 && $var14 != $par5 && var$17 ? 0 : 1;
                        d: {
                            $par11StructurePieceBlockSelector.$selectBlocks($par10Random, $var13, $var12, $var14, var$19);
                            var$20 = $par11StructurePieceBlockSelector.$selectedBlockId;
                            var$17 = $par11StructurePieceBlockSelector.$selectedBlockMetaData;
                            var$22 = $this.$coordBaseMode;
                            switch (var$22) {
                                case 0:
                                case 2:
                                    var$21 = $this.$boundingBox.$minX + $var13 | 0;
                                    break d;
                                case 1:
                                    var$21 = $this.$boundingBox.$maxX - $var14 | 0;
                                    break d;
                                case 3:
                                    var$21 = $this.$boundingBox.$minX + $var14 | 0;
                                    break d;
                                default:
                            }
                            var$21 = $var13;
                        }
                        var$18 = var$22 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                        e: {
                            switch (var$22) {
                                case 0:
                                    var$22 = $this.$boundingBox.$minZ + $var14 | 0;
                                    break e;
                                case 1:
                                case 3:
                                    var$22 = $this.$boundingBox.$minZ + $var13 | 0;
                                    break e;
                                case 2:
                                    var$22 = $this.$boundingBox.$maxZ - $var14 | 0;
                                    break e;
                                default:
                            }
                            var$22 = $var14;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$22)) {
                            var$19 = 2;
                            $ptr = 2;
                            continue main;
                        }
                    }
                    $var14 = $var14 + 1 | 0;
                }
                $var13 = $var13 + 1 | 0;
            }
            $var12 = $var12 + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$19, var$20, var$21);
        if ($rt_suspending()) {
            break main;
        }
        var$19 = $tmp;
        f: while (true) {
            if (var$19) {
                a: {
                    var$19 = $rt_compare($var12, $par4);
                    if (var$19 && var$13) {
                        var$19 = $rt_compare($var13, $par3);
                        if (var$19 && var$15) {
                            var$19 = $rt_compare($var14, $par5);
                            if (var$19 && var$17) {
                                var$19 = 0;
                                break a;
                            }
                        }
                    }
                    var$19 = 1;
                }
                g: {
                    $par11StructurePieceBlockSelector.$selectBlocks($par10Random, $var13, $var12, $var14, var$19);
                    var$20 = $par11StructurePieceBlockSelector.$selectedBlockId;
                    var$17 = $par11StructurePieceBlockSelector.$selectedBlockMetaData;
                    var$22 = $this.$coordBaseMode;
                    switch (var$22) {
                        case 0:
                        case 2:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minX;
                            var$21 = var$19 + $var13 | 0;
                            break g;
                        case 1:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$maxX;
                            var$21 = var$19 - $var14 | 0;
                            break g;
                        case 3:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minX;
                            var$21 = var$19 + $var14 | 0;
                            break g;
                        default:
                    }
                    var$21 = $var13;
                }
                var$19 = (-1);
                var$19 = $rt_compare(var$22, var$19);
                if (!var$19)
                    var$18 = $var12;
                else {
                    var$23 = $this.$boundingBox;
                    var$19 = var$23.$minY;
                    var$18 = $var12 + var$19 | 0;
                }
                h: {
                    switch (var$22) {
                        case 0:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minZ;
                            var$22 = var$19 + $var14 | 0;
                            break h;
                        case 1:
                        case 3:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minZ;
                            var$22 = var$19 + $var13 | 0;
                            break h;
                        case 2:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$maxZ;
                            var$22 = var$19 - $var14 | 0;
                            break h;
                        default:
                    }
                    var$22 = $var14;
                }
                var$19 = nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$22);
                if (var$19) {
                    var$19 = 2;
                    $ptr = 2;
                    continue main;
                }
            }
            while (true) {
                $var14 = $var14 + 1 | 0;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 <= 0)
                        break;
                    $var13 = $var13 + 1 | 0;
                    while (true) {
                        var$15 = $rt_compare($var13, $par6);
                        if (var$15 <= 0)
                            break;
                        $var12 = $var12 + 1 | 0;
                        var$13 = $rt_compare($var12, $par7);
                        if (var$13 > 0)
                            break f;
                        $var13 = $par3;
                    }
                    $var14 = $par5;
                }
                if ($par9)
                    break;
                i: {
                    var$19 = $rt_compare($var12, $par4);
                    if (var$19 && var$13) {
                        var$19 = $rt_compare($var13, $par3);
                        if (var$19 && var$15) {
                            var$19 = $rt_compare($var14, $par5);
                            if (var$19 && var$17) {
                                var$19 = 0;
                                break i;
                            }
                        }
                    }
                    var$19 = 1;
                }
                e: {
                    $par11StructurePieceBlockSelector.$selectBlocks($par10Random, $var13, $var12, $var14, var$19);
                    var$20 = $par11StructurePieceBlockSelector.$selectedBlockId;
                    var$17 = $par11StructurePieceBlockSelector.$selectedBlockMetaData;
                    var$22 = $this.$coordBaseMode;
                    switch (var$22) {
                        case 0:
                        case 2:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minX;
                            var$21 = var$19 + $var13 | 0;
                            break e;
                        case 1:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$maxX;
                            var$21 = var$19 - $var14 | 0;
                            break e;
                        case 3:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minX;
                            var$21 = var$19 + $var14 | 0;
                            break e;
                        default:
                    }
                    var$21 = $var13;
                }
                var$19 = (-1);
                var$19 = $rt_compare(var$22, var$19);
                if (!var$19)
                    var$18 = $var12;
                else {
                    var$23 = $this.$boundingBox;
                    var$19 = var$23.$minY;
                    var$18 = $var12 + var$19 | 0;
                }
                j: {
                    switch (var$22) {
                        case 0:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minZ;
                            var$22 = var$19 + $var14 | 0;
                            break j;
                        case 1:
                        case 3:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$minZ;
                            var$22 = var$19 + $var13 | 0;
                            break j;
                        case 2:
                            var$23 = $this.$boundingBox;
                            var$19 = var$23.$maxZ;
                            var$22 = var$19 - $var14 | 0;
                            break j;
                        default:
                    }
                    var$22 = $var14;
                }
                var$19 = nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$22);
                if (var$19) {
                    var$19 = 2;
                    $ptr = 2;
                    continue main;
                }
            }
            k: {
                var$18 = $this.$coordBaseMode;
                switch (var$18) {
                    case 0:
                    case 2:
                        var$19 = $this.$boundingBox.$minX + $var13 | 0;
                        break k;
                    case 1:
                        var$19 = $this.$boundingBox.$maxX - $var14 | 0;
                        break k;
                    case 3:
                        var$19 = $this.$boundingBox.$minX + $var14 | 0;
                        break k;
                    default:
                }
                var$19 = $var13;
            }
            var$20 = var$18 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$18) {
                    case 0:
                        var$21 = $this.$boundingBox.$minZ + $var14 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$21 = $this.$boundingBox.$minZ + $var13 | 0;
                        break l;
                    case 2:
                        var$21 = $this.$boundingBox.$maxZ - $var14 | 0;
                        break l;
                    default:
                }
                var$21 = $var14;
            }
            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$21)) {
                continue main;
            }
            var$19 = 0;
        }
        return;
    case 2:
        nms_World_setBlock($par1World, var$21, var$18, var$22, var$20, var$17, var$19);
        if ($rt_suspending()) {
            break main;
        }
        m: while (true) {
            while (true) {
                $var14 = $var14 + 1 | 0;
                while (true) {
                    var$17 = $rt_compare($var14, $par8);
                    if (var$17 <= 0)
                        break;
                    $var13 = $var13 + 1 | 0;
                    while (true) {
                        var$15 = $rt_compare($var13, $par6);
                        if (var$15 <= 0)
                            break;
                        $var12 = $var12 + 1 | 0;
                        var$13 = $rt_compare($var12, $par7);
                        if (var$13 > 0)
                            break m;
                        $var13 = $par3;
                    }
                    $var14 = $par5;
                }
                if (!$par9)
                    break;
                g: {
                    var$18 = $this.$coordBaseMode;
                    switch (var$18) {
                        case 0:
                        case 2:
                            var$19 = $this.$boundingBox.$minX + $var13 | 0;
                            break g;
                        case 1:
                            var$19 = $this.$boundingBox.$maxX - $var14 | 0;
                            break g;
                        case 3:
                            var$19 = $this.$boundingBox.$minX + $var14 | 0;
                            break g;
                        default:
                    }
                    var$19 = $var13;
                }
                var$20 = var$18 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
                h: {
                    switch (var$18) {
                        case 0:
                            var$21 = $this.$boundingBox.$minZ + $var14 | 0;
                            break h;
                        case 1:
                        case 3:
                            var$21 = $this.$boundingBox.$minZ + $var13 | 0;
                            break h;
                        case 2:
                            var$21 = $this.$boundingBox.$maxZ - $var14 | 0;
                            break h;
                        default:
                    }
                    var$21 = $var14;
                }
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$19, var$20, var$21)) {
                    $ptr = 1;
                    continue main;
                }
                if (!0)
                    continue;
                else
                    break;
            }
            var$19 = $var12 != $par4 && var$13 && $var13 != $par3 && var$15 && $var14 != $par5 && var$17 ? 0 : 1;
            n: {
                $par11StructurePieceBlockSelector.$selectBlocks($par10Random, $var13, $var12, $var14, var$19);
                var$20 = $par11StructurePieceBlockSelector.$selectedBlockId;
                var$17 = $par11StructurePieceBlockSelector.$selectedBlockMetaData;
                var$22 = $this.$coordBaseMode;
                switch (var$22) {
                    case 0:
                    case 2:
                        var$21 = $this.$boundingBox.$minX + $var13 | 0;
                        break n;
                    case 1:
                        var$21 = $this.$boundingBox.$maxX - $var14 | 0;
                        break n;
                    case 3:
                        var$21 = $this.$boundingBox.$minX + $var14 | 0;
                        break n;
                    default:
                }
                var$21 = $var13;
            }
            var$18 = var$22 == (-1) ? $var12 : $var12 + $this.$boundingBox.$minY | 0;
            o: {
                switch (var$22) {
                    case 0:
                        var$22 = $this.$boundingBox.$minZ + $var14 | 0;
                        break o;
                    case 1:
                    case 3:
                        var$22 = $this.$boundingBox.$minZ + $var13 | 0;
                        break o;
                    case 2:
                        var$22 = $this.$boundingBox.$maxZ - $var14 | 0;
                        break o;
                    default:
                }
                var$22 = $var14;
            }
            if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$21, var$18, var$22))
                continue;
            else {
                var$19 = 2;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10Random, $par11StructurePieceBlockSelector, $var12, var$13, $var13, var$15, $var14, var$17, var$18, var$19, var$20, var$21, var$22, var$23, $ptr);
},
nms_StructureComponent_randomlyFillWithBlocks = ($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11, $par12, $par13) => {
    let var$14, $var14, var$16, $var15, var$18, $var16, var$20, var$21, var$22, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();$var16 = $thread.pop();var$18 = $thread.pop();$var15 = $thread.pop();var$16 = $thread.pop();$var14 = $thread.pop();var$14 = $thread.pop();$par13 = $thread.pop();$par12 = $thread.pop();$par11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3Random = $thread.pop();$par2StructureBoundingBox
        = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        var$14 = 24;
        $var14 = $par6;
        while (true) {
            var$16 = $rt_compare($var14, $par9);
            if (var$16 > 0)
                break;
            $var15 = $par5;
            while (true) {
                var$18 = $rt_compare($var15, $par8);
                if (var$18 > 0)
                    break;
                $var16 = $par7;
                while (true) {
                    var$20 = $rt_compare($var16, $par10);
                    if (var$20 > 0)
                        break;
                    var$21 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$21;
                    if (Long_lo(Long_shru(var$21, var$14)) / 1.6777216E7 <= $par4) {
                        if ($par13) {
                            $ptr = 1;
                            continue main;
                        }
                        if ($var14 != $par6 && var$16 && $var15 != $par5 && var$18 && $var16 != $par7 && var$20) {
                            var$20 = 0;
                            $ptr = 3;
                            continue main;
                        }
                        var$20 = 0;
                        $ptr = 2;
                        continue main;
                    }
                    $var16 = $var16 + 1 | 0;
                }
                $var15 = $var15 + 1 | 0;
            }
            $var14 = $var14 + 1 | 0;
        }
        return;
    case 1:
        a: {
            $tmp = nms_StructureComponent_getBlockIdAtCurrentPosition($this, $par1World, $var15, $var14, $var16, $par2StructureBoundingBox);
            if ($rt_suspending()) {
                break main;
            }
            var$22 = $tmp;
            if (!var$22) {
                b: while (true) {
                    $var16 = $var16 + 1 | 0;
                    while (true) {
                        var$20 = $rt_compare($var16, $par10);
                        if (var$20 <= 0)
                            break;
                        $var15 = $var15 + 1 | 0;
                        while (true) {
                            var$18 = $rt_compare($var15, $par8);
                            if (var$18 <= 0)
                                break;
                            $var14 = $var14 + 1 | 0;
                            var$16 = $rt_compare($var14, $par9);
                            if (var$16 > 0)
                                break b;
                            $var15 = $par5;
                        }
                        $var16 = $par7;
                    }
                    var$21 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$21;
                    if (Long_lo(Long_shru(var$21, var$14)) / 1.6777216E7 > $par4)
                        continue;
                    else {
                        if (!$par13)
                            break a;
                        continue main;
                    }
                }
                return;
            }
        }
        if ($var14 != $par6 && var$16 && $var15 != $par5 && var$18 && $var16 != $par7 && var$20) {
            var$20 = 0;
            $ptr = 3;
            continue main;
        }
        var$20 = 0;
        $ptr = 2;
    case 2:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $par11, var$20, $var15, $var14, $var16, $par2StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            $var16 = $var16 + 1 | 0;
            while (true) {
                var$20 = $rt_compare($var16, $par10);
                if (var$20 <= 0)
                    break;
                $var15 = $var15 + 1 | 0;
                while (true) {
                    var$18 = $rt_compare($var15, $par8);
                    if (var$18 <= 0)
                        break;
                    $var14 = $var14 + 1 | 0;
                    var$16 = $rt_compare($var14, $par9);
                    if (var$16 > 0)
                        break c;
                    $var15 = $par5;
                }
                $var16 = $par7;
            }
            var$21 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$21;
            if (Long_lo(Long_shru(var$21, var$14)) / 1.6777216E7 > $par4)
                continue;
            else {
                if ($par13) {
                    $ptr = 1;
                    continue main;
                }
                if ($var14 != $par6 && var$16 && $var15 != $par5 && var$18 && $var16 != $par7 && var$20) {
                    var$20 = 0;
                    $ptr = 3;
                    continue main;
                }
                var$20 = 0;
                continue main;
            }
        }
        return;
    case 3:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $par12, var$20, $var15, $var14, $var16, $par2StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        c: while (true) {
            $var16 = $var16 + 1 | 0;
            while (true) {
                var$20 = $rt_compare($var16, $par10);
                if (var$20 <= 0)
                    break;
                $var15 = $var15 + 1 | 0;
                while (true) {
                    var$18 = $rt_compare($var15, $par8);
                    if (var$18 <= 0)
                        break;
                    $var14 = $var14 + 1 | 0;
                    var$16 = $rt_compare($var14, $par9);
                    if (var$16 > 0)
                        break c;
                    $var15 = $par5;
                }
                $var16 = $par7;
            }
            var$21 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$21;
            if (Long_lo(Long_shru(var$21, var$14)) / 1.6777216E7 > $par4)
                continue;
            else {
                if ($par13) {
                    $ptr = 1;
                    continue main;
                }
                if ($var14 != $par6 && var$16 && $var15 != $par5 && var$18 && $var16 != $par7 && var$20) {
                    var$20 = 0;
                    continue main;
                }
                var$20 = 0;
                $ptr = 2;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11, $par12, $par13, var$14, $var14, var$16, $var15, var$18, $var16, var$20, var$21, var$22, $ptr);
},
nms_StructureComponent_randomlyRareFillWithBlocks = ($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10) => {
    let $var11, $var12, $var13, $var14, $var15, var$16, $var16, $var17, $var18, $var19, $var20, $var21, var$23, var$24, var$25, var$26, var$27, $var22, var$29, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$29 = $thread.pop();$var22 = $thread.pop();var$27 = $thread.pop();var$26 = $thread.pop();var$25 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();$var21 = $thread.pop();$var20 = $thread.pop();$var19 = $thread.pop();$var18 = $thread.pop();$var17 = $thread.pop();$var16 = $thread.pop();var$16 = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8
        = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var11 = ($par6 - $par3 | 0) + 1 | 0;
        $var12 = ($par7 - $par4 | 0) + 1 | 0;
        $var13 = ($par8 - $par5 | 0) + 1 | 0;
        $var14 = $par3 + $var11 / 2.0;
        $var15 = $par5 + $var13 / 2.0;
        var$16 = $var11 * 0.5;
        $var11 = $var13 * 0.5;
        $var16 = $par4;
        while ($var16 <= $par7) {
            $var17 = ($var16 - $par4 | 0) / $var12;
            $var13 = $var17 * $var17;
            $var18 = $par3;
            while ($var18 <= $par6) {
                $var19 = ($var18 - $var14) / var$16;
                $var17 = $var19 * $var19 + $var13;
                $var20 = $par5;
                while ($var20 <= $par8) {
                    a: {
                        $var21 = ($var20 - $var15) / $var11;
                        if ($par10) {
                            b: {
                                var$23 = $this.$coordBaseMode;
                                switch (var$23) {
                                    case 0:
                                    case 2:
                                        var$24 = $this.$boundingBox.$minX + $var18 | 0;
                                        break b;
                                    case 1:
                                        var$24 = $this.$boundingBox.$maxX - $var20 | 0;
                                        break b;
                                    case 3:
                                        var$24 = $this.$boundingBox.$minX + $var20 | 0;
                                        break b;
                                    default:
                                }
                                var$24 = $var18;
                            }
                            var$25 = var$23 == (-1) ? $var16 : $var16 + $this.$boundingBox.$minY | 0;
                            c: {
                                switch (var$23) {
                                    case 0:
                                        var$26 = $this.$boundingBox.$minZ + $var20 | 0;
                                        break c;
                                    case 1:
                                    case 3:
                                        var$26 = $this.$boundingBox.$minZ + $var18 | 0;
                                        break c;
                                    case 2:
                                        var$26 = $this.$boundingBox.$maxZ - $var20 | 0;
                                        break c;
                                    default:
                                }
                                var$26 = $var20;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$24, var$25, var$26)) {
                                $ptr = 1;
                                continue main;
                            }
                            if (!0)
                                break a;
                        }
                        if ($var17 + $var21 * $var21 <= 1.0499999523162842) {
                            d: {
                                var$27 = 0;
                                var$26 = $this.$coordBaseMode;
                                switch (var$26) {
                                    case 0:
                                    case 2:
                                        var$23 = $this.$boundingBox.$minX + $var18 | 0;
                                        break d;
                                    case 1:
                                        var$23 = $this.$boundingBox.$maxX - $var20 | 0;
                                        break d;
                                    case 3:
                                        var$23 = $this.$boundingBox.$minX + $var20 | 0;
                                        break d;
                                    default:
                                }
                                var$23 = $var18;
                            }
                            var$24 = var$26 == (-1) ? $var16 : $var16 + $this.$boundingBox.$minY | 0;
                            e: {
                                switch (var$26) {
                                    case 0:
                                        var$25 = $this.$boundingBox.$minZ + $var20 | 0;
                                        break e;
                                    case 1:
                                    case 3:
                                        var$25 = $this.$boundingBox.$minZ + $var18 | 0;
                                        break e;
                                    case 2:
                                        var$25 = $this.$boundingBox.$maxZ - $var20 | 0;
                                        break e;
                                    default:
                                }
                                var$25 = $var20;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$23, var$24, var$25)) {
                                var$26 = 2;
                                $ptr = 2;
                                continue main;
                            }
                        }
                    }
                    $var20 = $var20 + 1 | 0;
                }
                $var18 = $var18 + 1 | 0;
            }
            $var16 = $var16 + 1 | 0;
        }
        return;
    case 1:
        $tmp = nms_World_getBlockId($par1World, var$24, var$25, var$26);
        if ($rt_suspending()) {
            break main;
        }
        var$24 = $tmp;
        f: while (true) {
            if (var$24) {
                $var22 = $var21 * $var21;
                $var22 = $var17 + $var22;
                $var21 = 1.0499999523162842;
                var$24 = $rt_compare($var22, $var21);
                if (var$24 <= 0) {
                    a: {
                        var$27 = 0;
                        var$26 = $this.$coordBaseMode;
                        switch (var$26) {
                            case 0:
                            case 2:
                                var$29 = $this.$boundingBox;
                                var$24 = var$29.$minX;
                                var$23 = var$24 + $var18 | 0;
                                break a;
                            case 1:
                                var$29 = $this.$boundingBox;
                                var$24 = var$29.$maxX;
                                var$23 = var$24 - $var20 | 0;
                                break a;
                            case 3:
                                var$29 = $this.$boundingBox;
                                var$24 = var$29.$minX;
                                var$23 = var$24 + $var20 | 0;
                                break a;
                            default:
                        }
                        var$23 = $var18;
                    }
                    var$24 = (-1);
                    var$24 = $rt_compare(var$26, var$24);
                    if (!var$24)
                        var$24 = $var16;
                    else {
                        var$29 = $this.$boundingBox;
                        var$24 = var$29.$minY;
                        var$24 = $var16 + var$24 | 0;
                    }
                    g: {
                        switch (var$26) {
                            case 0:
                                var$29 = $this.$boundingBox;
                                var$26 = var$29.$minZ;
                                var$25 = var$26 + $var20 | 0;
                                break g;
                            case 1:
                            case 3:
                                var$29 = $this.$boundingBox;
                                var$26 = var$29.$minZ;
                                var$25 = var$26 + $var18 | 0;
                                break g;
                            case 2:
                                var$29 = $this.$boundingBox;
                                var$26 = var$29.$maxZ;
                                var$25 = var$26 - $var20 | 0;
                                break g;
                            default:
                        }
                        var$25 = $var20;
                    }
                    var$26 = nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$23, var$24, var$25);
                    if (var$26) {
                        var$26 = 2;
                        $ptr = 2;
                        continue main;
                    }
                }
            }
            while (true) {
                $var20 = $var20 + 1 | 0;
                while ($var20 > $par8) {
                    $var18 = $var18 + 1 | 0;
                    while ($var18 > $par6) {
                        $var16 = $var16 + 1 | 0;
                        if ($var16 > $par7)
                            break f;
                        $var17 = ($var16 - $par4 | 0) / $var12;
                        $var13 = $var17 * $var17;
                        $var18 = $par3;
                    }
                    $var19 = ($var18 - $var14) / var$16;
                    $var17 = $var19 * $var19 + $var13;
                    $var20 = $par5;
                }
                $var21 = ($var20 - $var15) / $var11;
                if ($par10)
                    break;
                $var22 = $var21 * $var21;
                $var22 = $var17 + $var22;
                $var21 = 1.0499999523162842;
                var$24 = $rt_compare($var22, $var21);
                if (var$24 > 0)
                    continue;
                h: {
                    var$27 = 0;
                    var$26 = $this.$coordBaseMode;
                    switch (var$26) {
                        case 0:
                        case 2:
                            var$29 = $this.$boundingBox;
                            var$24 = var$29.$minX;
                            var$23 = var$24 + $var18 | 0;
                            break h;
                        case 1:
                            var$29 = $this.$boundingBox;
                            var$24 = var$29.$maxX;
                            var$23 = var$24 - $var20 | 0;
                            break h;
                        case 3:
                            var$29 = $this.$boundingBox;
                            var$24 = var$29.$minX;
                            var$23 = var$24 + $var20 | 0;
                            break h;
                        default:
                    }
                    var$23 = $var18;
                }
                var$24 = (-1);
                var$24 = $rt_compare(var$26, var$24);
                if (!var$24)
                    var$24 = $var16;
                else {
                    var$29 = $this.$boundingBox;
                    var$24 = var$29.$minY;
                    var$24 = $var16 + var$24 | 0;
                }
                i: {
                    switch (var$26) {
                        case 0:
                            var$29 = $this.$boundingBox;
                            var$26 = var$29.$minZ;
                            var$25 = var$26 + $var20 | 0;
                            break i;
                        case 1:
                        case 3:
                            var$29 = $this.$boundingBox;
                            var$26 = var$29.$minZ;
                            var$25 = var$26 + $var18 | 0;
                            break i;
                        case 2:
                            var$29 = $this.$boundingBox;
                            var$26 = var$29.$maxZ;
                            var$25 = var$26 - $var20 | 0;
                            break i;
                        default:
                    }
                    var$25 = $var20;
                }
                var$26 = nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$23, var$24, var$25);
                if (var$26) {
                    var$26 = 2;
                    $ptr = 2;
                    continue main;
                }
            }
            j: {
                var$23 = $this.$coordBaseMode;
                switch (var$23) {
                    case 0:
                    case 2:
                        var$24 = $this.$boundingBox.$minX + $var18 | 0;
                        break j;
                    case 1:
                        var$24 = $this.$boundingBox.$maxX - $var20 | 0;
                        break j;
                    case 3:
                        var$24 = $this.$boundingBox.$minX + $var20 | 0;
                        break j;
                    default:
                }
                var$24 = $var18;
            }
            var$25 = var$23 == (-1) ? $var16 : $var16 + $this.$boundingBox.$minY | 0;
            k: {
                switch (var$23) {
                    case 0:
                        var$26 = $this.$boundingBox.$minZ + $var20 | 0;
                        break k;
                    case 1:
                    case 3:
                        var$26 = $this.$boundingBox.$minZ + $var18 | 0;
                        break k;
                    case 2:
                        var$26 = $this.$boundingBox.$maxZ - $var20 | 0;
                        break k;
                    default:
                }
                var$26 = $var20;
            }
            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$24, var$25, var$26)) {
                continue main;
            }
            var$24 = 0;
        }
        return;
    case 2:
        nms_World_setBlock($par1World, var$23, var$24, var$25, $par9, var$27, var$26);
        if ($rt_suspending()) {
            break main;
        }
        l: while (true) {
            while (true) {
                $var20 = $var20 + 1 | 0;
                while ($var20 > $par8) {
                    $var18 = $var18 + 1 | 0;
                    while ($var18 > $par6) {
                        $var16 = $var16 + 1 | 0;
                        if ($var16 > $par7)
                            break l;
                        $var17 = ($var16 - $par4 | 0) / $var12;
                        $var13 = $var17 * $var17;
                        $var18 = $par3;
                    }
                    $var19 = ($var18 - $var14) / var$16;
                    $var17 = $var19 * $var19 + $var13;
                    $var20 = $par5;
                }
                $var21 = ($var20 - $var15) / $var11;
                if ($par10) {
                    m: {
                        var$23 = $this.$coordBaseMode;
                        switch (var$23) {
                            case 0:
                            case 2:
                                var$24 = $this.$boundingBox.$minX + $var18 | 0;
                                break m;
                            case 1:
                                var$24 = $this.$boundingBox.$maxX - $var20 | 0;
                                break m;
                            case 3:
                                var$24 = $this.$boundingBox.$minX + $var20 | 0;
                                break m;
                            default:
                        }
                        var$24 = $var18;
                    }
                    var$25 = var$23 == (-1) ? $var16 : $var16 + $this.$boundingBox.$minY | 0;
                    n: {
                        switch (var$23) {
                            case 0:
                                var$26 = $this.$boundingBox.$minZ + $var20 | 0;
                                break n;
                            case 1:
                            case 3:
                                var$26 = $this.$boundingBox.$minZ + $var18 | 0;
                                break n;
                            case 2:
                                var$26 = $this.$boundingBox.$maxZ - $var20 | 0;
                                break n;
                            default:
                        }
                        var$26 = $var20;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$24, var$25, var$26)) {
                        $ptr = 1;
                        continue main;
                    }
                    if (!0)
                        continue;
                }
                if ($var17 + $var21 * $var21 > 1.0499999523162842)
                    continue;
                else
                    break;
            }
            o: {
                var$27 = 0;
                var$26 = $this.$coordBaseMode;
                switch (var$26) {
                    case 0:
                    case 2:
                        var$23 = $this.$boundingBox.$minX + $var18 | 0;
                        break o;
                    case 1:
                        var$23 = $this.$boundingBox.$maxX - $var20 | 0;
                        break o;
                    case 3:
                        var$23 = $this.$boundingBox.$minX + $var20 | 0;
                        break o;
                    default:
                }
                var$23 = $var18;
            }
            var$24 = var$26 == (-1) ? $var16 : $var16 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$26) {
                    case 0:
                        var$25 = $this.$boundingBox.$minZ + $var20 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$25 = $this.$boundingBox.$minZ + $var18 | 0;
                        break p;
                    case 2:
                        var$25 = $this.$boundingBox.$maxZ - $var20 | 0;
                        break p;
                    default:
                }
                var$25 = $var20;
            }
            if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, var$23, var$24, var$25))
                continue;
            else {
                var$26 = 2;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $var11, $var12, $var13, $var14, $var15, var$16, $var16, $var17, $var18, $var19, $var20, $var21, var$23, var$24, var$25, var$26, var$27, $var22, var$29, $ptr);
},
nms_StructureComponent_clearCurrentPositionBlocksUpwards = ($this, $par1World, $par2, $var7, $var8, $par5StructureBoundingBox) => {
    let var$6, $var6, var$8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$par5StructureBoundingBox = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$6 = $this.$coordBaseMode;
            switch (var$6) {
                case 0:
                case 2:
                    $var6 = $this.$boundingBox.$minX + $par2 | 0;
                    break a;
                case 1:
                    $var6 = $this.$boundingBox.$maxX - $var8 | 0;
                    break a;
                case 3:
                    $var6 = $this.$boundingBox.$minX + $var8 | 0;
                    break a;
                default:
            }
            $var6 = $par2;
        }
        if (var$6 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$6) {
                case 0:
                    $var8 = $this.$boundingBox.$minZ + $var8 | 0;
                    break b;
                case 1:
                case 3:
                    $var8 = $this.$boundingBox.$minZ + $par2 | 0;
                    break b;
                case 2:
                    $var8 = $this.$boundingBox.$maxZ - $var8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par5StructureBoundingBox, $var6, $var7, $var8))
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var6, $var7, $var8);
        if ($rt_suspending()) {
            break main;
        }
        $par2 = $tmp;
        $par2 = $par2 ? 0 : 1;
        if (!$par2 && $var7 < 255) {
            var$8 = 0;
            var$6 = 0;
            $par2 = 2;
            $ptr = 2;
            continue main;
        }
        return;
    case 2:
        nms_World_setBlock($par1World, $var6, $var7, $var8, var$8, var$6, $par2);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $var7, $var8, $par5StructureBoundingBox, var$6, $var6, var$8, $ptr);
},
nms_StructureComponent_fillCurrentPositionBlocksDownwards = ($this, $par1World, $par2, $par3, $par4, $var9, $var10, $par7StructureBoundingBox) => {
    let var$8, $var8, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var8 = $thread.pop();var$8 = $thread.pop();$par7StructureBoundingBox = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$8 = $this.$coordBaseMode;
            switch (var$8) {
                case 0:
                case 2:
                    $var8 = $this.$boundingBox.$minX + $par4 | 0;
                    break a;
                case 1:
                    $var8 = $this.$boundingBox.$maxX - $var10 | 0;
                    break a;
                case 3:
                    $var8 = $this.$boundingBox.$minX + $var10 | 0;
                    break a;
                default:
            }
            $var8 = $par4;
        }
        if (var$8 != (-1))
            $var9 = $var9 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$8) {
                case 0:
                    $var10 = $this.$boundingBox.$minZ + $var10 | 0;
                    break b;
                case 1:
                case 3:
                    $var10 = $this.$boundingBox.$minZ + $par4 | 0;
                    break b;
                case 2:
                    $var10 = $this.$boundingBox.$maxZ - $var10 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par7StructureBoundingBox, $var8, $var9, $var10))
            return;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!($par4 ? 0 : 1)) {
            $ptr = 2;
            continue main;
        }
        if ($var9 <= 1)
            return;
        $par4 = 2;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_World_getBlockId($par1World, $var8, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if (!$par4) {
            nms_Material_$callClinit();
            $par7StructureBoundingBox = nms_Material_air;
        } else {
            nms_Block_$callClinit();
            $par7StructureBoundingBox = nms_Block_blocksList.data[$par4].$blockMaterial;
        }
        if ($par7StructureBoundingBox.$isLiquid() && $var9 > 1) {
            $par4 = 2;
            $ptr = 3;
            continue main;
        }
        return;
    case 3:
        nms_World_setBlock($par1World, $var8, $var9, $var10, $par2, $par3, $par4);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + (-1) | 0;
        $ptr = 1;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $var9, $var10, $par7StructureBoundingBox, var$8, $var8, $ptr);
},
nms_StructureComponent_generateStructureChestContents = ($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $var10, $var11, $par7ArrayOfWeightedRandomChestContent, $par8) => {
    let var$9, $var9, var$11, $var12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$par8 = $thread.pop();$par7ArrayOfWeightedRandomChestContent = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par4 = $thread.pop();$par3Random = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$9 = $this.$coordBaseMode;
            switch (var$9) {
                case 0:
                case 2:
                    $var9 = $this.$boundingBox.$minX + $par4 | 0;
                    break a;
                case 1:
                    $var9 = $this.$boundingBox.$maxX - $var11 | 0;
                    break a;
                case 3:
                    $var9 = $this.$boundingBox.$minX + $var11 | 0;
                    break a;
                default:
            }
            $var9 = $par4;
        }
        if (var$9 != (-1))
            $var10 = $var10 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$9) {
                case 0:
                    $var11 = $this.$boundingBox.$minZ + $var11 | 0;
                    break b;
                case 1:
                case 3:
                    $var11 = $this.$boundingBox.$minZ + $par4 | 0;
                    break b;
                case 2:
                    $var11 = $this.$boundingBox.$maxZ - $var11 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var9, $var10, $var11))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        nms_Block_$callClinit();
        var$9 = nms_Block_chest.$blockID;
        if ($par4 == var$9)
            return 0;
        $par4 = 0;
        var$11 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $var9, $var10, $var11, var$9, $par4, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockTileEntity($par1World, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var12 = $par1World;
        if ($var12 === null)
            return 1;
        $ptr = 4;
    case 4:
        nms_WeightedRandomChestContent_generateChestContents($par3Random, $par7ArrayOfWeightedRandomChestContent, $var12, $par8);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $var10, $var11, $par7ArrayOfWeightedRandomChestContent, $par8, var$9, $var9, var$11, $var12, $ptr);
},
nms_StructureComponent_generateStructureDispenserContents = ($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $var11, $var12, $par7, $par8ArrayOfWeightedRandomChestContent, $par9) => {
    let var$10, $var10, var$12, $var13, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var13 = $thread.pop();var$12 = $thread.pop();$var10 = $thread.pop();var$10 = $thread.pop();$par9 = $thread.pop();$par8ArrayOfWeightedRandomChestContent = $thread.pop();$par7 = $thread.pop();$var12 = $thread.pop();$var11 = $thread.pop();$par4 = $thread.pop();$par3Random = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$10 = $this.$coordBaseMode;
            switch (var$10) {
                case 0:
                case 2:
                    $var10 = $this.$boundingBox.$minX + $par4 | 0;
                    break a;
                case 1:
                    $var10 = $this.$boundingBox.$maxX - $var12 | 0;
                    break a;
                case 3:
                    $var10 = $this.$boundingBox.$minX + $var12 | 0;
                    break a;
                default:
            }
            $var10 = $par4;
        }
        if (var$10 != (-1))
            $var11 = $var11 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$10) {
                case 0:
                    $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                    break b;
                case 1:
                case 3:
                    $var12 = $this.$boundingBox.$minZ + $par4 | 0;
                    break b;
                case 2:
                    $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var10, $var11, $var12))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var10, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        nms_Block_$callClinit();
        var$12 = nms_Block_dispenser.$blockID;
        if ($par4 == var$12)
            return 0;
        $par4 = nms_StructureComponent_getMetadataWithOffset($this, var$12, $par7);
        $par7 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $var10, $var11, $var12, var$12, $par4, $par7);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 3;
    case 3:
        $tmp = nms_World_getBlockTileEntity($par1World, $var10, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $par1World = $tmp;
        $var13 = $par1World;
        if ($var13 === null)
            return 1;
        $ptr = 4;
    case 4:
        nms_WeightedRandomChestContent_generateDispenserContents($par3Random, $par8ArrayOfWeightedRandomChestContent, $var13, $par9);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $var11, $var12, $par7, $par8ArrayOfWeightedRandomChestContent, $par9, var$10, $var10, var$12, $var13, $ptr);
};
function nms_ComponentMineshaftCorridor() {
    let a = this; nms_StructureComponent.call(a);
    a.$hasRails = 0;
    a.$hasSpiders = 0;
    a.$spawnerPlaced = 0;
    a.$sectionCount = 0;
}
let nms_ComponentMineshaftCorridor__init_ = $this => {
    return;
},
nms_ComponentMineshaftCorridor__init_2 = () => {
    let var_0 = new nms_ComponentMineshaftCorridor();
    nms_ComponentMineshaftCorridor__init_(var_0);
    return var_0;
},
nms_ComponentMineshaftCorridor_func_143012_a = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = (!$this.$hasRails ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2783);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2783), var$4);
    var$2 = (!$this.$hasSpiders ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2784);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2784), var$4);
    var$2 = (!$this.$spawnerPlaced ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2785);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2785), var$4);
    var$2 = $this.$sectionCount;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2786);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2786), $par1NBTTagCompound);
},
nms_ComponentMineshaftCorridor_func_143011_b = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2783).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2783).$nativeString.length)
                    break a;
                $rt_s(2783).$hashCode1 = (31 * $rt_s(2783).$hashCode1 | 0) + $rt_s(2783).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2783).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2783) !== var$6) {
                    if ($rt_s(2783) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2783).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2783) !== null) {
            c: {
                if (!$rt_s(2783).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2783).$nativeString.length)
                            break c;
                        $rt_s(2783).$hashCode1 = (31 * $rt_s(2783).$hashCode1 | 0) + $rt_s(2783).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2783).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(2783) !== var$2) {
                            if ($rt_s(2783) !== var$2) {
                                if (var$2 instanceof jl_String) {
                                    var$2 = var$2;
                                    var$4 = $rt_s(2783).$nativeString !== var$2.$nativeString ? 0 : 1;
                                } else
                                    var$4 = 0;
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        } else {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        }
        var$4 = (var$7 === null ? null : var$7.$value0).$data0;
    }
    var$4 = !var$4 ? 0 : 1;
    e: {
        $this.$hasRails = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2784).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2784).$nativeString.length)
                    break e;
                $rt_s(2784).$hashCode1 = (31 * $rt_s(2784).$hashCode1 | 0) + $rt_s(2784).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2784).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2784) !== var$6) {
                    if ($rt_s(2784) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2784).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2784) !== null) {
            g: {
                if (!$rt_s(2784).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2784).$nativeString.length)
                            break g;
                        $rt_s(2784).$hashCode1 = (31 * $rt_s(2784).$hashCode1 | 0) + $rt_s(2784).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2784).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2784) !== var$6) {
                            if ($rt_s(2784) !== var$6) {
                                if (!(var$6 instanceof jl_String))
                                    var$4 = 0;
                                else {
                                    var$6 = var$6;
                                    var$4 = $rt_s(2784).$nativeString !== var$6.$nativeString ? 0 : 1;
                                }
                            } else
                                var$4 = 1;
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$4 = 0;
    var$4 = !var$4 ? 0 : 1;
    i: {
        $this.$hasSpiders = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2785).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2785).$nativeString.length)
                    break i;
                $rt_s(2785).$hashCode1 = (31 * $rt_s(2785).$hashCode1 | 0) + $rt_s(2785).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2785).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2785) !== var$6) {
                    if ($rt_s(2785) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2785).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2785) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2785).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2785).$nativeString.length)
                            break k;
                        $rt_s(2785).$hashCode1 = (31 * $rt_s(2785).$hashCode1 | 0) + $rt_s(2785).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2785).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(2785) !== var$6) {
                            if ($rt_s(2785) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2785).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    var$4 = !var$4 ? 0 : 1;
    m: {
        $this.$spawnerPlaced = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2786).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2786).$nativeString.length)
                    break m;
                $rt_s(2786).$hashCode1 = (31 * $rt_s(2786).$hashCode1 | 0) + $rt_s(2786).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2786).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(2786) !== var$6) {
                    if ($rt_s(2786) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2786).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break n;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2786) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            o: {
                if (!$rt_s(2786).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2786).$nativeString.length)
                            break o;
                        $rt_s(2786).$hashCode1 = (31 * $rt_s(2786).$hashCode1 | 0) + $rt_s(2786).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2786).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$8) {
                    p: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2786) !== var$2) {
                            if ($rt_s(2786) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2786).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break p;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$sectionCount = var$4;
},
nms_ComponentMineshaftCorridor__init_0 = ($this, $par1, $par2Random, $par3StructureBoundingBox, $par4) => {
    let var$5, var$6, var$7, var$8;
    $this.$componentType = $par1;
    $this.$coordBaseMode = (-1);
    $this.$coordBaseMode = $par4;
    $this.$boundingBox = $par3StructureBoundingBox;
    var$5 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$5;
    var$6 = Long_lo(Long_shru(var$5, 17));
    while (true) {
        var$7 = var$6 % 3 | 0;
        if (((var$6 - var$7 | 0) + 2 | 0) >= 0)
            break;
        var$5 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$5;
        var$6 = Long_lo(Long_shru(var$5, 17));
    }
    $par1 = var$7 ? 0 : 1;
    a: {
        $this.$hasRails = $par1;
        if (!$par1) {
            var$5 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$5;
            var$7 = Long_lo(Long_shru(var$5, 17));
            while (true) {
                var$8 = var$7 % 23 | 0;
                if (((var$7 - var$8 | 0) + 22 | 0) >= 0)
                    break;
                var$5 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$5;
                var$7 = Long_lo(Long_shru(var$5, 17));
            }
            if (!var$8) {
                $par1 = 1;
                break a;
            }
        }
        $par1 = 0;
    }
    $this.$hasSpiders = $par1;
    if ($par4 != 2 && $par4)
        $this.$sectionCount = (($par3StructureBoundingBox.$maxX - $par3StructureBoundingBox.$minX | 0) + 1 | 0) / 5 | 0;
    else
        $this.$sectionCount = (($par3StructureBoundingBox.$maxZ - $par3StructureBoundingBox.$minZ | 0) + 1 | 0) / 5 | 0;
},
nms_ComponentMineshaftCorridor__init_1 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ComponentMineshaftCorridor();
    nms_ComponentMineshaftCorridor__init_0(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ComponentMineshaftCorridor_findValidPlacement = ($par0List, $par1Random, $par2, $par3, $par4, $par5) => {
    let $var6, var$8, var$9, var$10, $var8, $var7, var$13, var$14;
    $var6 = new nms_StructureBoundingBox;
    var$8 = $par3 + 2 | 0;
    $var6.$minX = $par2;
    $var6.$minY = $par3;
    $var6.$minZ = $par4;
    $var6.$maxX = $par2;
    $var6.$maxY1 = var$8;
    $var6.$maxZ = $par4;
    var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$9;
    var$10 = Long_lo(Long_shru(var$9, 17));
    while (true) {
        $var8 = var$10 % 3 | 0;
        if (((var$10 - $var8 | 0) + 2 | 0) >= 0)
            break;
        var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par1Random.$seed = var$9;
        var$10 = Long_lo(Long_shru(var$9, 17));
    }
    $var7 = $var8 + 2 | 0;
    var$10 = $par4 + 2 | 0;
    var$8 = $par2 + 2 | 0;
    a: {
        while (true) {
            if ($var7 <= 0)
                break a;
            b: {
                $var8 = $var7 * 5 | 0;
                switch ($par5) {
                    case 0:
                        break;
                    case 1:
                        $var6.$minX = $par2 - ($var8 - 1 | 0) | 0;
                        $var6.$maxZ = var$10;
                        break b;
                    case 2:
                        $var6.$maxX = var$8;
                        $var6.$minZ = $par4 - ($var8 - 1 | 0) | 0;
                        break b;
                    case 3:
                        $var6.$maxX = $par2 + ($var8 - 1 | 0) | 0;
                        $var6.$maxZ = var$10;
                        break b;
                    default:
                        break b;
                }
                $var6.$maxX = var$8;
                $var6.$maxZ = $par4 + ($var8 - 1 | 0) | 0;
            }
            var$13 = $par0List.$firstEntry;
            $var8 = $par0List.$modCount;
            c: {
                while (true) {
                    if (!(var$13 === null ? 0 : 1)) {
                        $par1Random = null;
                        break c;
                    }
                    if ($var8 < $par0List.$modCount) {
                        $par0List = new ju_ConcurrentModificationException;
                        $par0List.$suppressionEnabled = 1;
                        $par0List.$writableStackTrace = 1;
                        $rt_throw($par0List);
                    }
                    if (var$13 === null) {
                        $par0List = new ju_NoSuchElementException;
                        $par0List.$suppressionEnabled = 1;
                        $par0List.$writableStackTrace = 1;
                        $rt_throw($par0List);
                    }
                    $par1Random = var$13.$item;
                    var$13 = var$13.$next5;
                    $par1Random = $par1Random;
                    var$14 = $par1Random.$boundingBox;
                    if (var$14 === null)
                        continue;
                    if (nms_StructureBoundingBox_intersectsWith(var$14, $var6))
                        break;
                }
            }
            if ($par1Random === null)
                break;
            $var7 = $var7 + (-1) | 0;
        }
    }
    if ($var7 <= 0)
        $var6 = null;
    return $var6;
},
nms_ComponentMineshaftCorridor_buildComponent = ($this, $par1StructureComponent, $par2List, $par3Random) => {
    let $var4, var$5, $var5, var$7, var$8, $var6, var$10, var$11, var$12, var$13, $var7;
    a: {
        $var4 = $this.$componentType;
        var$5 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par3Random.$seed = var$5;
        $var5 = Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$5, 17)))), 31));
        var$7 = $this.$coordBaseMode;
        switch (var$7) {
            case 0:
                if ($var5 <= 1) {
                    var$8 = $this.$boundingBox;
                    $var6 = var$8.$minX;
                    $var5 = var$8.$minY - 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$12 = var$11 % 3 | 0;
                        if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 17));
                    }
                    $var5 = $var5 + var$12 | 0;
                    var$13 = var$8.$maxZ + 1 | 0;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, var$7, $var4);
                    break a;
                }
                if ($var5 != 2) {
                    var$8 = $this.$boundingBox;
                    $var6 = var$8.$maxX + 1 | 0;
                    $var5 = var$8.$minY - 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    $var7 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$11 = $var7 % 3 | 0;
                        if ((($var7 - var$11 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        $var7 = Long_lo(Long_shru(var$10, 17));
                    }
                    $var5 = $var5 + var$11 | 0;
                    var$13 = var$8.$maxZ - 3 | 0;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 3, $var4);
                    break a;
                }
                var$8 = $this.$boundingBox;
                $var6 = var$8.$minX - 1 | 0;
                $var5 = var$8.$minY - 1 | 0;
                var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$12 = var$11 % 3 | 0;
                    if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                }
                $var5 = $var5 + var$12 | 0;
                var$13 = var$8.$maxZ - 3 | 0;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 1, $var4);
                break a;
            case 1:
                break;
            case 2:
                if ($var5 <= 1) {
                    var$8 = $this.$boundingBox;
                    $var6 = var$8.$minX;
                    $var5 = var$8.$minY - 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$12 = var$11 % 3 | 0;
                        if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 17));
                    }
                    $var5 = $var5 + var$12 | 0;
                    var$13 = var$8.$minZ - 1 | 0;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, var$7, $var4);
                    break a;
                }
                if ($var5 != 2) {
                    var$8 = $this.$boundingBox;
                    $var6 = var$8.$maxX + 1 | 0;
                    $var5 = var$8.$minY - 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$12 = var$11 % 3 | 0;
                        if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 17));
                    }
                    $var5 = $var5 + var$12 | 0;
                    var$13 = var$8.$minZ;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 3, $var4);
                    break a;
                }
                var$8 = $this.$boundingBox;
                $var6 = var$8.$minX - 1 | 0;
                $var5 = var$8.$minY - 1 | 0;
                var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$12 = var$11 % 3 | 0;
                    if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                }
                $var5 = $var5 + var$12 | 0;
                var$13 = var$8.$minZ;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 1, $var4);
                break a;
            case 3:
                if ($var5 <= 1) {
                    var$8 = $this.$boundingBox;
                    $var6 = var$8.$maxX + 1 | 0;
                    $var5 = var$8.$minY - 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$12 = var$11 % 3 | 0;
                        if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 17));
                    }
                    $var5 = $var5 + var$12 | 0;
                    var$13 = var$8.$minZ;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, var$7, $var4);
                    break a;
                }
                if ($var5 != 2) {
                    var$8 = $this.$boundingBox;
                    $var6 = var$8.$maxX - 3 | 0;
                    $var5 = var$8.$minY - 1 | 0;
                    var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        var$12 = var$11 % 3 | 0;
                        if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        var$11 = Long_lo(Long_shru(var$10, 17));
                    }
                    $var5 = $var5 + var$12 | 0;
                    var$13 = var$8.$maxZ + 1 | 0;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 0, $var4);
                    break a;
                }
                var$8 = $this.$boundingBox;
                $var6 = var$8.$maxX - 3 | 0;
                $var5 = var$8.$minY - 1 | 0;
                var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    var$12 = var$11 % 3 | 0;
                    if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$11 = Long_lo(Long_shru(var$10, 17));
                }
                $var5 = $var5 + var$12 | 0;
                var$13 = var$8.$minZ - 1 | 0;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 2, $var4);
                break a;
            default:
                break a;
        }
        if ($var5 <= 1) {
            var$8 = $this.$boundingBox;
            $var6 = var$8.$minX - 1 | 0;
            $var5 = var$8.$minY - 1 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$10;
            var$11 = Long_lo(Long_shru(var$10, 17));
            while (true) {
                var$12 = var$11 % 3 | 0;
                if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
            $var5 = $var5 + var$12 | 0;
            var$13 = var$8.$minZ;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, var$7, $var4);
        } else if ($var5 != 2) {
            var$8 = $this.$boundingBox;
            $var6 = var$8.$minX;
            $var5 = var$8.$minY - 1 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$10;
            var$11 = Long_lo(Long_shru(var$10, 17));
            while (true) {
                var$12 = var$11 % 3 | 0;
                if (((var$11 - var$12 | 0) + 2 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                var$11 = Long_lo(Long_shru(var$10, 17));
            }
            $var5 = $var5 + var$12 | 0;
            var$13 = var$8.$maxZ + 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 0, $var4);
        } else {
            var$8 = $this.$boundingBox;
            var$12 = var$8.$minX;
            $var7 = var$8.$minY - 1 | 0;
            var$10 = Long_and(Long_add(Long_mul(var$5, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$10;
            $var5 = Long_lo(Long_shru(var$10, 17));
            while (true) {
                var$13 = $var5 % 3 | 0;
                if ((($var5 - var$13 | 0) + 2 | 0) >= 0)
                    break;
                var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                $var5 = Long_lo(Long_shru(var$10, 17));
            }
            $var6 = $var7 + var$13 | 0;
            $var5 = var$8.$minZ - 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$12, $var6, $var5, 2, $var4);
        }
    }
    b: {
        if ($var4 < 8) {
            $var6 = $this.$coordBaseMode;
            if (!($var6 != 2 && $var6)) {
                $var6 = $this.$boundingBox.$minZ + 3 | 0;
                $var4 = $var4 + 1 | 0;
                while (true) {
                    $var5 = $var6 + 3 | 0;
                    var$8 = $this.$boundingBox;
                    if ($var5 > var$8.$maxZ)
                        break b;
                    var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$13 = Long_lo(Long_shru(var$10, 17));
                    while (true) {
                        $var7 = var$13 % 5 | 0;
                        if (((var$13 - $var7 | 0) + 4 | 0) >= 0)
                            break;
                        var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                        $par3Random.$seed = var$10;
                        var$13 = Long_lo(Long_shru(var$10, 17));
                    }
                    if (!$var7) {
                        $var5 = var$8.$minX - 1 | 0;
                        var$13 = var$8.$minY;
                        nms_StructureMineshaftPieces_$callClinit();
                        nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var5, var$13, $var6, 1, $var4);
                    } else if ($var7 == 1) {
                        $var5 = var$8.$maxX + 1 | 0;
                        var$13 = var$8.$minY;
                        nms_StructureMineshaftPieces_$callClinit();
                        nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var5, var$13, $var6, 3, $var4);
                    }
                    $var6 = $var6 + 5 | 0;
                }
            }
            $var6 = $this.$boundingBox.$minX + 3 | 0;
            $var4 = $var4 + 1 | 0;
            while (true) {
                $var5 = $var6 + 3 | 0;
                var$8 = $this.$boundingBox;
                if ($var5 > var$8.$maxX)
                    break b;
                var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par3Random.$seed = var$10;
                var$13 = Long_lo(Long_shru(var$10, 17));
                while (true) {
                    $var7 = var$13 % 5 | 0;
                    if (((var$13 - $var7 | 0) + 4 | 0) >= 0)
                        break;
                    var$10 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$10;
                    var$13 = Long_lo(Long_shru(var$10, 17));
                }
                if (!$var7) {
                    $var5 = var$8.$minY;
                    var$13 = var$8.$minZ - 1 | 0;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 2, $var4);
                } else if ($var7 == 1) {
                    $var5 = var$8.$minY;
                    var$13 = var$8.$maxZ + 1 | 0;
                    nms_StructureMineshaftPieces_$callClinit();
                    nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var6, $var5, var$13, 0, $var4);
                }
                $var6 = $var6 + 5 | 0;
            }
        }
    }
},
nms_ComponentMineshaftCorridor_generateStructureChestContents = ($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $var10, $var11, $par7ArrayOfWeightedRandomChestContent, $par8) => {
    let var$9, $var9, var$11, var$12, $var12, var$14, var$15, var$16, var$17, var$18, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var12 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var9 = $thread.pop();var$9 = $thread.pop();$par8 = $thread.pop();$par7ArrayOfWeightedRandomChestContent = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$par4 = $thread.pop();$par3Random = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            var$9 = $this.$coordBaseMode;
            switch (var$9) {
                case 0:
                case 2:
                    $var9 = $this.$boundingBox.$minX + $par4 | 0;
                    break a;
                case 1:
                    $var9 = $this.$boundingBox.$maxX - $var11 | 0;
                    break a;
                case 3:
                    $var9 = $this.$boundingBox.$minX + $var11 | 0;
                    break a;
                default:
            }
            $var9 = $par4;
        }
        if (var$9 != (-1))
            $var10 = $var10 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$9) {
                case 0:
                    $var11 = $this.$boundingBox.$minZ + $var11 | 0;
                    break b;
                case 1:
                case 3:
                    $var11 = $this.$boundingBox.$minZ + $par4 | 0;
                    break b;
                case 2:
                    $var11 = $this.$boundingBox.$maxZ - $var11 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var9, $var10, $var11))
            return 0;
        $ptr = 1;
    case 1:
        $tmp = nms_World_getBlockId($par1World, $var9, $var10, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $par4 = $tmp;
        if ($par4)
            return 0;
        nms_Block_$callClinit();
        $par4 = nms_Block_rail.$blockID;
        var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par3Random.$seed = var$11;
        var$9 = nms_StructureComponent_getMetadataWithOffset($this, $par4, !(!Long_lo(Long_shru(var$11, 47)) ? 0 : 1) ? 0 : 1);
        var$12 = 2;
        $ptr = 2;
    case 2:
        nms_World_setBlock($par1World, $var9, $var10, $var11, $par4, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var12 = new nms_EntityMinecartChest;
        var$14 = $var9 + 0.5;
        var$15 = $var10 + 0.5;
        var$16 = $var11 + 0.5;
        nms_Entity__init_($var12, $par1World);
        $var12.$preventEntitySpawning = 1;
        var$17 = 0.9800000190734863;
        var$18 = 0.699999988079071;
        $ptr = 3;
    case 3:
        nms_Entity_setSize($var12, var$17, var$18);
        if ($rt_suspending()) {
            break main;
        }
        $var12.$yOffset = $var12.$height0 / 2.0;
        $var12.$field_82344_g = null;
        nms_Entity_setPosition($var12, var$14, var$15, var$16);
        $var12.$motionX = 0.0;
        $var12.$motionY = 0.0;
        $var12.$motionZ = 0.0;
        $var12.$prevPosX = var$14;
        $var12.$prevPosY = var$15;
        $var12.$prevPosZ = var$16;
        $var12.$minecartContainerItems = $rt_createArray(nms_ItemStack, 36);
        $var12.$dropContentsWhenDead = 1;
        $ptr = 4;
    case 4:
        nms_WeightedRandomChestContent_generateChestContents($par3Random, $par7ArrayOfWeightedRandomChestContent, $var12, $par8);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 5;
    case 5:
        nms_World_spawnEntityInWorld($par1World, $var12);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3Random, $par4, $var10, $var11, $par7ArrayOfWeightedRandomChestContent, $par8, var$9, $var9, var$11, var$12, $var12, var$14, var$15, var$16, var$17, var$18, $ptr);
},
nms_ComponentMineshaftCorridor_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let $var9, $var8, $var10, $var11, var$8, $var13, var$10, var$11, $var12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $var14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var14 = $thread.pop();var$24 = $thread.pop();var$23 = $thread.pop();var$22 = $thread.pop();var$21 = $thread.pop();var$20 = $thread.pop();var$19 = $thread.pop();var$18 = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();$var12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();$var13 = $thread.pop();var$8 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var8 = $thread.pop();$var9
        = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_StructureComponent_isLiquidInStructureBoundingBox($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $tmp;
        if ($var9)
            return 0;
        $var8 = ($this.$sectionCount * 5 | 0) - 1 | 0;
        $var9 = 0;
        $var10 = 0;
        $var11 = 0;
        var$8 = 2;
        $var13 = 1;
        var$10 = 0;
        var$11 = 0;
        $var12 = 0;
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var9, $var10, $var11, var$8, $var13, $var8, var$10, var$11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        var$13 = 0.800000011920929;
        $var11 = 0;
        var$10 = 2;
        var$11 = 0;
        $var12 = 2;
        var$8 = 2;
        $var13 = 0;
        $var9 = 0;
        $var10 = 0;
        $ptr = 3;
    case 3:
        nms_StructureComponent_randomlyFillWithBlocks($this, $par1World, $par3StructureBoundingBox, $par2Random, var$13, $var11, var$10, var$11, $var12, var$8, $var8, $var13, $var9, $var10);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$hasSpiders) {
            var$13 = 0.6000000238418579;
            $var9 = 0;
            $var10 = 0;
            $var11 = 0;
            var$8 = 2;
            $var13 = 1;
            nms_Block_$callClinit();
            var$10 = nms_Block_web.$blockID;
            var$11 = 0;
            $var12 = 0;
            $ptr = 4;
            continue main;
        }
        $var9 = 0;
        var$14 = 17;
        var$8 = 24;
        var$15 = 99;
        var$16 = Long_fromInt(4);
        var$17 = 2;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 4:
        nms_StructureComponent_randomlyFillWithBlocks($this, $par1World, $par3StructureBoundingBox, $par2Random, var$13, $var9, $var10, $var11, var$8, $var13, $var8, var$10, var$11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = 0;
        var$14 = 17;
        var$8 = 24;
        var$15 = 99;
        var$16 = Long_fromInt(4);
        var$17 = 2;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 5:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var11, $var13, $var10, var$10, var$11, $var10, $var12, var$18, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 2;
        $var13 = 0;
        var$10 = 2;
        var$11 = 1;
        $var12 = nms_Block_fence.$blockID;
        var$18 = 0;
        var$19 = 0;
        $ptr = 6;
    case 6:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var11, $var13, $var10, var$10, var$11, $var10, $var12, var$18, var$19);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31))) {
            $var11 = 0;
            $var13 = 2;
            var$10 = 2;
            var$11 = 2;
            $var12 = nms_Block_planks.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 7;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        var$10 = 0;
        var$11 = 2;
        $var12 = nms_Block_planks.$blockID;
        var$18 = 0;
        var$19 = 0;
        $ptr = 8;
        continue main;
    case 7:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var11, $var13, $var10, var$10, var$11, $var10, $var12, var$18, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 0;
        $var13 = 2;
        var$10 = $var10 - 1 | 0;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 10;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 12;
            continue main;
        }
        $var13 = 0;
        var$11 = 2;
        var$21 = $var10 + 1 | 0;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 15;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 16;
            continue main;
        }
        var$18 = 0;
        var$19 = 2;
        $var11 = $var10 - 2 | 0;
        $var13 = nms_Block_web.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 17;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            a: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break a;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break a;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break a;
                    default:
                }
            }
            b: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break b;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break b;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break b;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 8:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var11, $var13, $var10, var$10, var$11, $var10, $var12, var$18, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 2;
        $var13 = 2;
        var$10 = 2;
        var$11 = 2;
        $var12 = nms_Block_planks.$blockID;
        var$18 = 0;
        var$19 = 0;
        $ptr = 9;
    case 9:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var11, $var13, $var10, var$10, var$11, $var10, $var12, var$18, var$19);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 0;
        $var13 = 2;
        var$10 = $var10 - 1 | 0;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 10;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 12;
            continue main;
        }
        $var13 = 0;
        var$11 = 2;
        var$21 = $var10 + 1 | 0;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 15;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 16;
            continue main;
        }
        var$18 = 0;
        var$19 = 2;
        $var11 = $var10 - 2 | 0;
        $var13 = nms_Block_web.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 17;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            a: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break a;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break a;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break a;
                    default:
                }
            }
            b: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break b;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break b;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break b;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 10:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var12, var$18, $var11, $var13, var$10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 12;
            continue main;
        }
        $var13 = 0;
        var$11 = 2;
        var$21 = $var10 + 1 | 0;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 15;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 16;
            continue main;
        }
        var$18 = 0;
        var$19 = 2;
        $var11 = $var10 - 2 | 0;
        $var13 = nms_Block_web.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 17;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            c: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break c;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break c;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break c;
                    default:
                }
            }
            d: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break d;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break d;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break d;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
    case 11:
        $tmp = nms_StructureComponent_getBlockIdAtCurrentPosition($this, $par1World, $var9, $var11, $var10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = $tmp;
        if (!$var11) {
            nms_Block_$callClinit();
            $var11 = nms_Block_planks.$blockID;
            $var13 = 0;
            var$10 = (-1);
            $ptr = 14;
            continue main;
        }
        $var10 = $var10 + 1 | 0;
        while ($var10 > $var8) {
            $var9 = $var9 + 1 | 0;
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
        }
        $var11 = (-1);
        continue main;
    case 12:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var12, var$18, $var13, var$11, var$10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = 0;
        var$11 = 2;
        var$21 = $var10 + 1 | 0;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 15;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 16;
            continue main;
        }
        var$18 = 0;
        var$19 = 2;
        $var11 = $var10 - 2 | 0;
        $var13 = nms_Block_web.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 17;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            e: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break e;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break e;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break e;
                    default:
                }
            }
            f: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break f;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break f;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break f;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 13:
        $tmp = nms_StructureComponent_getBlockIdAtCurrentPosition($this, $par1World, $var10, $var11, $var9, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $tmp;
        if ($var10 > 0) {
            nms_Block_$callClinit();
            if (nms_Block_opaqueCubeLookup.data[$var10]) {
                $var10 = 1;
                $var13 = 0;
                var$10 = nms_Block_rail.$blockID;
                var$11 = nms_StructureComponent_getMetadataWithOffset($this, var$10, 0);
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.699999988079071) {
                    $ptr = 18;
                    continue main;
                }
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 > $var8)
            return 1;
        $var10 = 1;
        $var11 = (-1);
        continue main;
    case 14:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var11, $var13, $var9, var$10, $var10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = $var10 + 1 | 0;
        while ($var10 > $var8) {
            $var9 = $var9 + 1 | 0;
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 15:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var12, var$18, $var13, var$11, var$21, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.10000000149011612) {
            $ptr = 16;
            continue main;
        }
        var$18 = 0;
        var$19 = 2;
        $var11 = $var10 - 2 | 0;
        $var13 = nms_Block_web.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 17;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            g: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break g;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break g;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break g;
                    default:
                }
            }
            h: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break h;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break h;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break h;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 16:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var12, var$18, $var13, var$11, var$21, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        var$18 = 0;
        var$19 = 2;
        $var11 = $var10 - 2 | 0;
        $var13 = nms_Block_web.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 17;
            continue main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            i: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break i;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break i;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break i;
                    default:
                }
            }
            a: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break a;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break a;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break a;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 17:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var13, var$11, var$18, var$19, $var11, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var13 = 2;
        var$11 = 2;
        $var12 = nms_Block_web.$blockID;
        var$18 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 19;
            continue main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            j: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break j;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break j;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break j;
                    default:
                }
            }
            c: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break c;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break c;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break c;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 18:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, var$10, var$11, $var10, $var13, $var9, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 > $var8)
            return 1;
        $var10 = 1;
        $var11 = (-1);
        $ptr = 13;
        continue main;
    case 19:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var12, var$18, $var13, var$11, $var11, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 0;
        $var13 = 2;
        $var10 = $var10 + 2 | 0;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 20;
            continue main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            k: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break k;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break k;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break k;
                    default:
                }
            }
            e: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break e;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break e;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break e;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 20:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, var$11, $var12, $var11, $var13, $var10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var11 = 2;
        $var13 = 2;
        var$11 = nms_Block_web.$blockID;
        $var12 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 21;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            l: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break l;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break l;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break l;
                    default:
                }
            }
            g: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break g;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break g;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break g;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 21:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, var$11, $var12, $var11, $var13, $var10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 22;
            continue main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            m: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break m;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break m;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break m;
                    default:
                }
            }
            i: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break i;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break i;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break i;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 22:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var13, var$11, $var10, $var11, var$10, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var10 = 1;
        $var11 = 2;
        $var13 = nms_Block_torchWood.$blockID;
        var$11 = 0;
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        if (Long_lo(Long_shru(var$20, var$8)) / 1.6777216E7 < 0.05000000074505806) {
            $ptr = 23;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            n: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break n;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break n;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break n;
                    default:
                }
            }
            j: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break j;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break j;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break j;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 23:
        nms_StructureComponent_placeBlockAtCurrentPosition($this, $par1World, $var13, var$11, $var10, $var11, var$21, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 2;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 24;
            continue main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            o: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break o;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break o;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break o;
                    default:
                }
            }
            k: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break k;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break k;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break k;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 24:
        nms_ComponentMineshaftCorridor_generateStructureChestContents($this, $par1World, $par3StructureBoundingBox, $par2Random, $var10, $var11, var$10, var$23, $var13);
        if ($rt_suspending()) {
            break main;
        }
        var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$20;
        $var11 = Long_lo(Long_shru(var$20, var$14));
        while (true) {
            $var13 = $var11 % 100 | 0;
            if ((($var11 - $var13 | 0) + var$15 | 0) >= 0)
                break;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var11 = Long_lo(Long_shru(var$20, var$14));
        }
        if (!$var13) {
            $var10 = 0;
            $var11 = 0;
            nms_StructureMineshaftPieces_$callClinit();
            var$22 = nms_StructureMineshaftPieces_mineshaftChestContents;
            var$23 = $rt_createArray(nms_WeightedRandomChestContent, 1);
            var$24 = var$23.data;
            nms_Item_$callClinit();
            var$24[0] = nms_ItemEnchantedBook_func_92112_a(nms_Item_enchantedBook, $par2Random, 1, 1, 1);
            var$23 = nms_WeightedRandomChestContent_func_92080_a(var$22, var$23);
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var13 = 3 + Long_lo(Long_shr(Long_mul(var$16, Long_fromInt(Long_lo(Long_shru(var$20, var$14)))), 31)) | 0;
            $ptr = 25;
            continue main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            p: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break p;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break p;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break p;
                    default:
                }
            }
            m: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break m;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break m;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break m;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 25:
        nms_ComponentMineshaftCorridor_generateStructureChestContents($this, $par1World, $par3StructureBoundingBox, $par2Random, $var10, $var11, var$21, var$23, $var13);
        if ($rt_suspending()) {
            break main;
        }
        if ($this.$hasSpiders && !$this.$spawnerPlaced) {
            $var11 = 0;
            var$11 = $this.$coordBaseMode;
            if (var$11 != (-1))
                $var11 = $var11 + $this.$boundingBox.$minY | 0;
            var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$20;
            $var10 = Long_lo(Long_shru(var$20, var$14));
            while (true) {
                $var13 = $var10 % 3 | 0;
                if ((($var10 - $var13 | 0) + var$17 | 0) >= 0)
                    break;
                var$20 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$20;
                $var10 = Long_lo(Long_shru(var$20, var$14));
            }
            q: {
                $var12 = var$10 + $var13 | 0;
                $var13 = 1;
                switch (var$11) {
                    case 0:
                    case 2:
                        $var13 = $this.$boundingBox.$minX + $var13 | 0;
                        break q;
                    case 1:
                        $var13 = $this.$boundingBox.$maxX - $var12 | 0;
                        break q;
                    case 3:
                        $var13 = $this.$boundingBox.$minX + $var12 | 0;
                        break q;
                    default:
                }
            }
            o: {
                switch (var$11) {
                    case 0:
                        $var12 = $this.$boundingBox.$minZ + $var12 | 0;
                        break o;
                    case 1:
                    case 3:
                        $var12 = $this.$boundingBox.$minZ + 1 | 0;
                        break o;
                    case 2:
                        $var12 = $this.$boundingBox.$maxZ - $var12 | 0;
                        break o;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var13, $var11, $var12)) {
                $this.$spawnerPlaced = 1;
                $var10 = nms_Block_mobSpawner.$blockID;
                var$10 = 0;
                var$11 = 2;
                $ptr = 26;
                continue main;
            }
        }
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    case 26:
        nms_World_setBlock($par1World, $var13, $var11, $var12, $var10, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $ptr = 27;
    case 27:
        $tmp = nms_World_getBlockTileEntity($par1World, $var13, $var11, $var12);
        if ($rt_suspending()) {
            break main;
        }
        $var14 = $tmp;
        $var14 = $var14;
        if ($var14 !== null)
            $var14.$field_98050_a.$mobID = $rt_s(2536);
        $var9 = $var9 + 1 | 0;
        if ($var9 < $this.$sectionCount) {
            $var10 = 2 + ($var9 * 5 | 0) | 0;
            $var11 = 0;
            $var13 = 0;
            var$10 = 0;
            var$11 = 1;
            nms_Block_$callClinit();
            $var12 = nms_Block_fence.$blockID;
            var$18 = 0;
            var$19 = 0;
            $ptr = 5;
            continue main;
        }
        $var9 = 0;
        while (true) {
            if ($var9 > 2) {
                if ($this.$hasRails) {
                    $var9 = 0;
                    if ($var9 <= $var8) {
                        $var10 = 1;
                        $var11 = (-1);
                        $ptr = 13;
                        continue main;
                    }
                }
                return 1;
            }
            $var10 = 0;
            if ($var10 <= $var8)
                break;
            $var9 = $var9 + 1 | 0;
        }
        $var11 = (-1);
        $ptr = 11;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, $var9, $var8, $var10, $var11, var$8, $var13, var$10, var$11, $var12, var$13, var$14, var$15, var$16, var$17, var$18, var$19, var$20, var$21, var$22, var$23, var$24, $var14, $ptr);
};
function nms_ComponentMineshaftCross() {
    let a = this; nms_StructureComponent.call(a);
    a.$corridorDirection = 0;
    a.$isMultipleFloors = 0;
}
let nms_ComponentMineshaftCross__init_ = $this => {
    return;
},
nms_ComponentMineshaftCross__init_0 = () => {
    let var_0 = new nms_ComponentMineshaftCross();
    nms_ComponentMineshaftCross__init_(var_0);
    return var_0;
},
nms_ComponentMineshaftCross_func_143012_a = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = (!$this.$isMultipleFloors ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2787);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2787), var$4);
    var$2 = $this.$corridorDirection;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(1786);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(1786), $par1NBTTagCompound);
},
nms_ComponentMineshaftCross_func_143011_b = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2787).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2787).$nativeString.length)
                    break a;
                $rt_s(2787).$hashCode1 = (31 * $rt_s(2787).$hashCode1 | 0) + $rt_s(2787).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2787).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2787) !== var$6) {
                    if ($rt_s(2787) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2787).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2787) === null) {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2787).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2787).$nativeString.length)
                            break c;
                        $rt_s(2787).$hashCode1 = (31 * $rt_s(2787).$hashCode1 | 0) + $rt_s(2787).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2787).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(2787) !== var$2) {
                            if ($rt_s(2787) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2787).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        }
        var$4 = (var$7 === null ? null : var$7.$value0).$data0;
    }
    var$4 = !var$4 ? 0 : 1;
    e: {
        $this.$isMultipleFloors = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(1786).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(1786).$nativeString.length)
                    break e;
                $rt_s(1786).$hashCode1 = (31 * $rt_s(1786).$hashCode1 | 0) + $rt_s(1786).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(1786).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(1786) !== var$6) {
                    if ($rt_s(1786) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(1786).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(1786) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            g: {
                if (!$rt_s(1786).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(1786).$nativeString.length)
                            break g;
                        $rt_s(1786).$hashCode1 = (31 * $rt_s(1786).$hashCode1 | 0) + $rt_s(1786).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(1786).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$8) {
                    h: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(1786) !== var$2) {
                            if ($rt_s(1786) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(1786).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$corridorDirection = var$4;
},
nms_ComponentMineshaftCross_findValidPlacement = ($par0List, $par1Random, $par2, $par3, $par4, $par5) => {
    let $var6, var$8, var$9, var$10, var$11;
    $var6 = new nms_StructureBoundingBox;
    var$8 = $par3 + 2 | 0;
    $var6.$minX = $par2;
    $var6.$minY = $par3;
    $var6.$minZ = $par4;
    $var6.$maxX = $par2;
    $var6.$maxY1 = var$8;
    $var6.$maxZ = $par4;
    var$9 = Long_and(Long_add(Long_mul($par1Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par1Random.$seed = var$9;
    if (!Long_lo(Long_shr(Long_mul(Long_fromInt(4), Long_fromInt(Long_lo(Long_shru(var$9, 17)))), 31)))
        $var6.$maxY1 = var$8 + 4 | 0;
    a: {
        switch ($par5) {
            case 0:
                break;
            case 1:
                $var6.$minX = $par2 - 4 | 0;
                $var6.$minZ = $par4 - 1 | 0;
                $var6.$maxZ = $par4 + 3 | 0;
                break a;
            case 2:
                $var6.$minX = $par2 - 1 | 0;
                $var6.$maxX = $par2 + 3 | 0;
                $var6.$minZ = $par4 - 4 | 0;
                break a;
            case 3:
                $var6.$maxX = $par2 + 4 | 0;
                $var6.$minZ = $par4 - 1 | 0;
                $var6.$maxZ = $par4 + 3 | 0;
                break a;
            default:
                break a;
        }
        $var6.$minX = $par2 - 1 | 0;
        $var6.$maxX = $par2 + 3 | 0;
        $var6.$maxZ = $par4 + 4 | 0;
    }
    var$10 = $par0List.$firstEntry;
    $par3 = $par0List.$modCount;
    b: {
        while (true) {
            if (!(var$10 === null ? 0 : 1)) {
                $par1Random = null;
                break b;
            }
            if ($par3 < $par0List.$modCount) {
                $par0List = new ju_ConcurrentModificationException;
                $par0List.$suppressionEnabled = 1;
                $par0List.$writableStackTrace = 1;
                $rt_throw($par0List);
            }
            if (var$10 === null) {
                $par0List = new ju_NoSuchElementException;
                $par0List.$suppressionEnabled = 1;
                $par0List.$writableStackTrace = 1;
                $rt_throw($par0List);
            }
            $par1Random = var$10.$item;
            var$10 = var$10.$next5;
            $par1Random = $par1Random;
            var$11 = $par1Random.$boundingBox;
            if (var$11 === null)
                continue;
            if (nms_StructureBoundingBox_intersectsWith(var$11, $var6))
                break;
        }
    }
    if ($par1Random !== null)
        $var6 = null;
    return $var6;
},
nms_ComponentMineshaftCross_buildComponent = ($this, $par1StructureComponent, $par2List, $par3Random) => {
    let $var4, var$5, var$6, var$7, var$8, var$9;
    a: {
        $var4 = $this.$componentType;
        switch ($this.$corridorDirection) {
            case 0:
                break;
            case 1:
                var$5 = $this.$boundingBox;
                var$6 = var$5.$minX + 1 | 0;
                var$7 = var$5.$minY;
                var$8 = var$5.$minZ - 1 | 0;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 2, $var4);
                var$5 = $this.$boundingBox;
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$minX + 1 | 0, var$5.$minY, var$5.$maxZ + 1 | 0, 0, $var4);
                var$5 = $this.$boundingBox;
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$minX - 1 | 0, var$5.$minY, var$5.$minZ + 1 | 0, 1, $var4);
                break a;
            case 2:
                var$5 = $this.$boundingBox;
                var$6 = var$5.$minX + 1 | 0;
                var$7 = var$5.$minY;
                var$8 = var$5.$minZ - 1 | 0;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 2, $var4);
                var$5 = $this.$boundingBox;
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$minX - 1 | 0, var$5.$minY, var$5.$minZ + 1 | 0, 1, $var4);
                var$5 = $this.$boundingBox;
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$maxX + 1 | 0, var$5.$minY, var$5.$minZ + 1 | 0, 3, $var4);
                break a;
            case 3:
                var$5 = $this.$boundingBox;
                var$6 = var$5.$minX + 1 | 0;
                var$7 = var$5.$minY;
                var$8 = var$5.$minZ - 1 | 0;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 2, $var4);
                var$5 = $this.$boundingBox;
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$minX + 1 | 0, var$5.$minY, var$5.$maxZ + 1 | 0, 0, $var4);
                var$5 = $this.$boundingBox;
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$maxX + 1 | 0, var$5.$minY, var$5.$minZ + 1 | 0, 3, $var4);
                break a;
            default:
                break a;
        }
        var$5 = $this.$boundingBox;
        var$7 = var$5.$minX + 1 | 0;
        var$8 = var$5.$minY;
        var$6 = var$5.$maxZ + 1 | 0;
        nms_StructureMineshaftPieces_$callClinit();
        nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$7, var$8, var$6, 0, $var4);
        var$5 = $this.$boundingBox;
        nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$minX - 1 | 0, var$5.$minY, var$5.$minZ + 1 | 0, 1, $var4);
        var$5 = $this.$boundingBox;
        nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$5.$maxX + 1 | 0, var$5.$minY, var$5.$minZ + 1 | 0, 3, $var4);
    }
    if ($this.$isMultipleFloors) {
        var$9 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par3Random.$seed = var$9;
        if (!Long_lo(Long_shru(var$9, 47)) ? 0 : 1) {
            var$5 = $this.$boundingBox;
            var$6 = var$5.$minX + 1 | 0;
            var$7 = (var$5.$minY + 3 | 0) + 1 | 0;
            var$8 = var$5.$minZ - 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 2, $var4);
        }
        var$9 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par3Random.$seed = var$9;
        if (!Long_lo(Long_shru(var$9, 47)) ? 0 : 1) {
            var$5 = $this.$boundingBox;
            var$6 = var$5.$minX - 1 | 0;
            var$7 = (var$5.$minY + 3 | 0) + 1 | 0;
            var$8 = var$5.$minZ + 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 1, $var4);
        }
        var$9 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par3Random.$seed = var$9;
        if (!Long_lo(Long_shru(var$9, 47)) ? 0 : 1) {
            var$5 = $this.$boundingBox;
            var$6 = var$5.$maxX + 1 | 0;
            var$7 = (var$5.$minY + 3 | 0) + 1 | 0;
            var$8 = var$5.$minZ + 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 3, $var4);
        }
        var$9 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par3Random.$seed = var$9;
        if (!Long_lo(Long_shru(var$9, 47)) ? 0 : 1) {
            var$5 = $this.$boundingBox;
            var$6 = var$5.$minX + 1 | 0;
            var$7 = (var$5.$minY + 3 | 0) + 1 | 0;
            var$8 = var$5.$maxZ + 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 0, $var4);
        }
    }
},
nms_ComponentMineshaftCross_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_StructureComponent_isLiquidInStructureBoundingBox($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4)
            return 0;
        if (!$this.$isMultipleFloors) {
            $par2Random = $this.$boundingBox;
            $var4 = $par2Random.$minX + 1 | 0;
            $var5 = $par2Random.$minY;
            $var6 = $par2Random.$minZ;
            var$7 = $par2Random.$maxX - 1 | 0;
            var$8 = $par2Random.$maxY1;
            var$9 = $par2Random.$maxZ;
            var$10 = 0;
            var$11 = 0;
            var$12 = 0;
            $ptr = 2;
            continue main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX + 1 | 0;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$minZ;
        var$7 = $par2Random.$maxX - 1 | 0;
        var$8 = ($var5 + 3 | 0) - 1 | 0;
        var$9 = $par2Random.$maxZ;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 4;
        continue main;
    case 2:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$minZ + 1 | 0;
        var$7 = $par2Random.$maxX;
        var$8 = $par2Random.$maxY1;
        var$9 = $par2Random.$maxZ - 1 | 0;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 3;
    case 3:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX + 1 | 0;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$minZ + 1 | 0;
        var$7 = $par2Random.$maxY1;
        nms_Block_$callClinit();
        var$8 = nms_Block_planks.$blockID;
        var$9 = 0;
        var$10 = 0;
        $ptr = 9;
        continue main;
    case 4:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$minZ + 1 | 0;
        var$7 = $par2Random.$maxX;
        var$8 = ($var5 + 3 | 0) - 1 | 0;
        var$9 = $par2Random.$maxZ - 1 | 0;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 5;
    case 5:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX + 1 | 0;
        $var5 = $par2Random.$maxY1;
        $var6 = $var5 - 2 | 0;
        var$7 = $par2Random.$minZ;
        var$8 = $par2Random.$maxX - 1 | 0;
        var$9 = $par2Random.$maxZ;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 6;
    case 6:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var6, var$7, var$8, $var5, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX;
        $var5 = $par2Random.$maxY1;
        $var6 = $var5 - 2 | 0;
        var$7 = $par2Random.$minZ + 1 | 0;
        var$8 = $par2Random.$maxX;
        var$9 = $par2Random.$maxZ - 1 | 0;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 7;
    case 7:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var6, var$7, var$8, $var5, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX + 1 | 0;
        $var5 = $par2Random.$minY + 3 | 0;
        $var6 = $par2Random.$minZ + 1 | 0;
        var$7 = $par2Random.$maxX - 1 | 0;
        var$8 = $par2Random.$maxZ - 1 | 0;
        var$9 = 0;
        var$10 = 0;
        var$11 = 0;
        $ptr = 8;
    case 8:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, var$7, $var5, var$8, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX + 1 | 0;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$minZ + 1 | 0;
        var$7 = $par2Random.$maxY1;
        nms_Block_$callClinit();
        var$8 = nms_Block_planks.$blockID;
        var$9 = 0;
        var$10 = 0;
        $ptr = 9;
    case 9:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var4, var$7, $var6, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$minX + 1 | 0;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$maxZ - 1 | 0;
        var$7 = $par2Random.$maxY1;
        var$8 = nms_Block_planks.$blockID;
        var$9 = 0;
        var$10 = 0;
        $ptr = 10;
    case 10:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var4, var$7, $var6, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$maxX - 1 | 0;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$minZ + 1 | 0;
        var$7 = $par2Random.$maxY1;
        var$8 = nms_Block_planks.$blockID;
        var$9 = 0;
        var$10 = 0;
        $ptr = 11;
    case 11:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var4, var$7, $var6, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        $var4 = $par2Random.$maxX - 1 | 0;
        $var5 = $par2Random.$minY;
        $var6 = $par2Random.$maxZ - 1 | 0;
        var$7 = $par2Random.$maxY1;
        var$8 = nms_Block_planks.$blockID;
        var$9 = 0;
        var$10 = 0;
        $ptr = 12;
    case 12:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var4, var$7, $var6, var$8, var$9, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $this.$boundingBox.$minX;
        while (true) {
            $par2Random = $this.$boundingBox;
            if ($var4 > $par2Random.$maxX)
                break;
            $var5 = $par2Random.$minZ;
            while (true) {
                $par2Random = $this.$boundingBox;
                $var6 = $par2Random.$maxZ;
                if ($var5 > $var6)
                    break;
                a: {
                    var$7 = $par2Random.$minY;
                    var$8 = var$7 - 1 | 0;
                    var$11 = $this.$coordBaseMode;
                    switch (var$11) {
                        case 0:
                        case 2:
                            var$9 = $par2Random.$minX + $var4 | 0;
                            break a;
                        case 1:
                            var$9 = $par2Random.$maxX - $var5 | 0;
                            break a;
                        case 3:
                            var$9 = $par2Random.$minX + $var5 | 0;
                            break a;
                        default:
                    }
                    var$9 = $var4;
                }
                if (var$11 != (-1))
                    var$8 = var$8 + var$7 | 0;
                b: {
                    switch (var$11) {
                        case 0:
                            $var6 = $par2Random.$minZ + $var5 | 0;
                            break b;
                        case 1:
                        case 3:
                            $var6 = $par2Random.$minZ + $var4 | 0;
                            break b;
                        case 2:
                            break;
                        default:
                            $var6 = $var5;
                            break b;
                    }
                    $var6 = $var6 - $var5 | 0;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$8, $var6)) {
                    $ptr = 13;
                    continue main;
                }
                if (!0) {
                    c: {
                        $var6 = nms_Block_planks.$blockID;
                        var$7 = 0;
                        $par2Random = $this.$boundingBox;
                        var$8 = $par2Random.$minY;
                        var$9 = var$8 - 1 | 0;
                        var$12 = $this.$coordBaseMode;
                        switch (var$12) {
                            case 0:
                            case 2:
                                var$10 = $par2Random.$minX + $var4 | 0;
                                break c;
                            case 1:
                                var$10 = $par2Random.$maxX - $var5 | 0;
                                break c;
                            case 3:
                                var$10 = $par2Random.$minX + $var5 | 0;
                                break c;
                            default:
                        }
                        var$10 = $var4;
                    }
                    if (var$12 != (-1))
                        var$9 = var$9 + var$8 | 0;
                    d: {
                        switch (var$12) {
                            case 0:
                                var$11 = $par2Random.$minZ + $var5 | 0;
                                break d;
                            case 1:
                            case 3:
                                var$11 = $par2Random.$minZ + $var4 | 0;
                                break d;
                            case 2:
                                var$11 = $par2Random.$maxZ - $var5 | 0;
                                break d;
                            default:
                        }
                        var$11 = $var5;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$9, var$11)) {
                        var$8 = 2;
                        $ptr = 14;
                        continue main;
                    }
                }
                $var5 = $var5 + 1 | 0;
            }
            $var4 = $var4 + 1 | 0;
        }
        return 1;
    case 13:
        $tmp = nms_World_getBlockId($par1World, var$9, var$8, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var6 = $tmp;
        e: while (true) {
            if (!$var6) {
                a: {
                    $var6 = nms_Block_planks.$blockID;
                    var$7 = 0;
                    $par2Random = $this.$boundingBox;
                    var$8 = $par2Random.$minY;
                    var$9 = var$8 - 1 | 0;
                    var$12 = $this.$coordBaseMode;
                    switch (var$12) {
                        case 0:
                        case 2:
                            var$10 = $par2Random.$minX + $var4 | 0;
                            break a;
                        case 1:
                            var$10 = $par2Random.$maxX - $var5 | 0;
                            break a;
                        case 3:
                            var$10 = $par2Random.$minX + $var5 | 0;
                            break a;
                        default:
                    }
                    var$10 = $var4;
                }
                if (var$12 != (-1))
                    var$9 = var$9 + var$8 | 0;
                b: {
                    switch (var$12) {
                        case 0:
                            var$11 = $par2Random.$minZ + $var5 | 0;
                            break b;
                        case 1:
                        case 3:
                            var$11 = $par2Random.$minZ + $var4 | 0;
                            break b;
                        case 2:
                            var$11 = $par2Random.$maxZ - $var5 | 0;
                            break b;
                        default:
                    }
                    var$11 = $var5;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$9, var$11)) {
                    var$8 = 2;
                    $ptr = 14;
                    continue main;
                }
            }
            $var5 = $var5 + 1 | 0;
            while (true) {
                $par2Random = $this.$boundingBox;
                $var6 = $par2Random.$maxZ;
                if ($var5 <= $var6)
                    break;
                $var4 = $var4 + 1 | 0;
                $par2Random = $this.$boundingBox;
                if ($var4 > $par2Random.$maxX)
                    break e;
                $var5 = $par2Random.$minZ;
            }
            f: {
                var$7 = $par2Random.$minY;
                var$8 = var$7 - 1 | 0;
                var$11 = $this.$coordBaseMode;
                switch (var$11) {
                    case 0:
                    case 2:
                        var$9 = $par2Random.$minX + $var4 | 0;
                        break f;
                    case 1:
                        var$9 = $par2Random.$maxX - $var5 | 0;
                        break f;
                    case 3:
                        var$9 = $par2Random.$minX + $var5 | 0;
                        break f;
                    default:
                }
                var$9 = $var4;
            }
            if (var$11 != (-1))
                var$8 = var$8 + var$7 | 0;
            g: {
                switch (var$11) {
                    case 0:
                        $var6 = $par2Random.$minZ + $var5 | 0;
                        break g;
                    case 1:
                    case 3:
                        $var6 = $par2Random.$minZ + $var4 | 0;
                        break g;
                    case 2:
                        break;
                    default:
                        $var6 = $var5;
                        break g;
                }
                $var6 = $var6 - $var5 | 0;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$8, $var6)) {
                continue main;
            }
            $var6 = 0;
        }
        return 1;
    case 14:
        nms_World_setBlock($par1World, var$10, var$9, var$11, $var6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        e: while (true) {
            while (true) {
                $var5 = $var5 + 1 | 0;
                while (true) {
                    $par2Random = $this.$boundingBox;
                    $var6 = $par2Random.$maxZ;
                    if ($var5 <= $var6)
                        break;
                    $var4 = $var4 + 1 | 0;
                    $par2Random = $this.$boundingBox;
                    if ($var4 > $par2Random.$maxX)
                        break e;
                    $var5 = $par2Random.$minZ;
                }
                h: {
                    var$7 = $par2Random.$minY;
                    var$8 = var$7 - 1 | 0;
                    var$11 = $this.$coordBaseMode;
                    switch (var$11) {
                        case 0:
                        case 2:
                            var$9 = $par2Random.$minX + $var4 | 0;
                            break h;
                        case 1:
                            var$9 = $par2Random.$maxX - $var5 | 0;
                            break h;
                        case 3:
                            var$9 = $par2Random.$minX + $var5 | 0;
                            break h;
                        default:
                    }
                    var$9 = $var4;
                }
                if (var$11 != (-1))
                    var$8 = var$8 + var$7 | 0;
                i: {
                    switch (var$11) {
                        case 0:
                            $var6 = $par2Random.$minZ + $var5 | 0;
                            break i;
                        case 1:
                        case 3:
                            $var6 = $par2Random.$minZ + $var4 | 0;
                            break i;
                        case 2:
                            break;
                        default:
                            $var6 = $var5;
                            break i;
                    }
                    $var6 = $var6 - $var5 | 0;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$8, $var6)) {
                    $ptr = 13;
                    continue main;
                }
                if (0)
                    continue;
                else
                    break;
            }
            f: {
                $var6 = nms_Block_planks.$blockID;
                var$7 = 0;
                $par2Random = $this.$boundingBox;
                var$8 = $par2Random.$minY;
                var$9 = var$8 - 1 | 0;
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$10 = $par2Random.$minX + $var4 | 0;
                        break f;
                    case 1:
                        var$10 = $par2Random.$maxX - $var5 | 0;
                        break f;
                    case 3:
                        var$10 = $par2Random.$minX + $var5 | 0;
                        break f;
                    default:
                }
                var$10 = $var4;
            }
            if (var$12 != (-1))
                var$9 = var$9 + var$8 | 0;
            g: {
                switch (var$12) {
                    case 0:
                        var$11 = $par2Random.$minZ + $var5 | 0;
                        break g;
                    case 1:
                    case 3:
                        var$11 = $par2Random.$minZ + $var4 | 0;
                        break g;
                    case 2:
                        var$11 = $par2Random.$maxZ - $var5 | 0;
                        break g;
                    default:
                }
                var$11 = $var5;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$9, var$11))
                continue;
            else {
                var$8 = 2;
                continue main;
            }
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, $var4, $var5, $var6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
};
function nms_ComponentMineshaftRoom() {
    nms_StructureComponent.call(this);
    this.$roomsLinkedToTheRoom = null;
}
let nms_ComponentMineshaftRoom__init_ = $this => {
    $this.$roomsLinkedToTheRoom = new ju_LinkedList;
},
nms_ComponentMineshaftRoom__init_2 = () => {
    let var_0 = new nms_ComponentMineshaftRoom();
    nms_ComponentMineshaftRoom__init_(var_0);
    return var_0;
},
nms_ComponentMineshaftRoom__init_1 = ($this, $par1, $par2Random, $par3, $par4) => {
    let var$5, var$6, var$7, var$8, var$9, var$10, var$11;
    $this.$componentType = $par1;
    $this.$coordBaseMode = (-1);
    $this.$roomsLinkedToTheRoom = new ju_LinkedList;
    var$5 = new nms_StructureBoundingBox;
    var$6 = $par3 + 7 | 0;
    var$7 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$7;
    var$8 = Long_lo(Long_shru(var$7, 17));
    while (true) {
        var$9 = var$8 % 6 | 0;
        if (((var$8 - var$9 | 0) + 5 | 0) >= 0)
            break;
        var$7 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$7;
        var$8 = Long_lo(Long_shru(var$7, 17));
    }
    var$6 = var$6 + var$9 | 0;
    var$7 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$7;
    var$9 = Long_lo(Long_shru(var$7, 17));
    while (true) {
        var$10 = var$9 % 6 | 0;
        if (((var$9 - var$10 | 0) + 5 | 0) >= 0)
            break;
        var$7 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$7;
        var$9 = Long_lo(Long_shru(var$7, 17));
    }
    var$8 = 54 + var$10 | 0;
    var$9 = $par4 + 7 | 0;
    var$7 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
    $par2Random.$seed = var$7;
    var$10 = Long_lo(Long_shru(var$7, 17));
    while (true) {
        var$11 = var$10 % 6 | 0;
        if (((var$10 - var$11 | 0) + 5 | 0) >= 0)
            break;
        var$7 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
        $par2Random.$seed = var$7;
        var$10 = Long_lo(Long_shru(var$7, 17));
    }
    $par1 = var$9 + var$11 | 0;
    var$5.$minX = $par3;
    var$5.$minY = 50;
    var$5.$minZ = $par4;
    var$5.$maxX = var$6;
    var$5.$maxY1 = var$8;
    var$5.$maxZ = $par1;
    $this.$boundingBox = var$5;
},
nms_ComponentMineshaftRoom__init_0 = (var_0, var_1, var_2, var_3) => {
    let var_4 = new nms_ComponentMineshaftRoom();
    nms_ComponentMineshaftRoom__init_1(var_4, var_0, var_1, var_2, var_3);
    return var_4;
},
nms_ComponentMineshaftRoom_buildComponent = ($this, $par1StructureComponent, $par2List, $par3Random) => {
    let $var4, $var7, $var6, $var5, var$8, var$9, var$10, var$11, var$12, var$13, $var8, var$15, var$16;
    $var4 = $this.$componentType;
    $var7 = $this.$boundingBox;
    $var6 = ((($var7.$maxY1 - $var7.$minY | 0) + 1 | 0) - 3 | 0) - 1 | 0;
    if ($var6 <= 0)
        $var6 = 1;
    $var5 = 0;
    a: {
        while (true) {
            $var7 = $this.$boundingBox;
            var$8 = $var7.$maxX;
            var$9 = $var7.$minX;
            var$10 = (var$8 - var$9 | 0) + 1 | 0;
            if ($var5 >= var$10)
                break a;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
            var$8 = var$10 - 1 | 0;
            if (!(var$10 & var$8))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$10), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$10 | 0;
                    if (((var$12 - var$13 | 0) + var$8 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                }
            var$8 = $var5 + var$13 | 0;
            if ((var$8 + 3 | 0) > var$10)
                break a;
            $var5 = var$9 + var$8 | 0;
            var$9 = $var7.$minY;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
            var$10 = $var6 - 1 | 0;
            if (!($var6 & var$10))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % $var6 | 0;
                    if (((var$12 - var$13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                }
            var$9 = (var$9 + var$13 | 0) + 1 | 0;
            var$10 = $var7.$minZ - 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            $var7 = nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, $var5, var$9, var$10, 2, $var4);
            if ($var7 !== null) {
                $var8 = $var7.$boundingBox;
                $var7 = $this.$roomsLinkedToTheRoom;
                var$15 = new nms_StructureBoundingBox;
                var$9 = $var8.$minX;
                var$10 = $var8.$minY;
                var$13 = $this.$boundingBox.$minZ;
                var$12 = $var8.$maxX;
                var$16 = $var8.$maxY1;
                $var5 = var$13 + 1 | 0;
                var$15.$minX = var$9;
                var$15.$minY = var$10;
                var$15.$minZ = var$13;
                var$15.$maxX = var$12;
                var$15.$maxY1 = var$16;
                var$15.$maxZ = $var5;
                $var5 = $var7.$size2;
                if ($var5 < 0)
                    break;
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var7, $var5), var$15);
            }
            $var5 = var$8 + 4 | 0;
        }
        $par1StructureComponent = new jl_IndexOutOfBoundsException;
        $par1StructureComponent.$suppressionEnabled = 1;
        $par1StructureComponent.$writableStackTrace = 1;
        $rt_throw($par1StructureComponent);
    }
    $var5 = 0;
    b: {
        while (true) {
            $var7 = $this.$boundingBox;
            var$8 = $var7.$maxX;
            var$10 = $var7.$minX;
            var$9 = (var$8 - var$10 | 0) + 1 | 0;
            if ($var5 >= var$9)
                break b;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
            var$8 = var$9 - 1 | 0;
            if (!(var$9 & var$8))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$9), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % var$9 | 0;
                    if (((var$12 - var$13 | 0) + var$8 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                }
            $var5 = $var5 + var$13 | 0;
            if (($var5 + 3 | 0) > var$9)
                break b;
            var$12 = var$10 + $var5 | 0;
            var$13 = $var7.$minY;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$10 = Long_lo(Long_shru(var$11, 17));
            var$8 = $var6 - 1 | 0;
            if (!($var6 & var$8))
                var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$10)), 31));
            else
                while (true) {
                    var$9 = var$10 % $var6 | 0;
                    if (((var$10 - var$9 | 0) + var$8 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$10 = Long_lo(Long_shru(var$11, 17));
                }
            var$8 = (var$13 + var$9 | 0) + 1 | 0;
            var$9 = $var7.$maxZ + 1 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            $var7 = nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$12, var$8, var$9, 0, $var4);
            if ($var7 !== null) {
                $var8 = $var7.$boundingBox;
                $var7 = $this.$roomsLinkedToTheRoom;
                var$15 = new nms_StructureBoundingBox;
                var$8 = $var8.$minX;
                var$9 = $var8.$minY;
                var$10 = $this.$boundingBox.$maxZ;
                var$13 = var$10 - 1 | 0;
                var$12 = $var8.$maxX;
                var$16 = $var8.$maxY1;
                var$15.$minX = var$8;
                var$15.$minY = var$9;
                var$15.$minZ = var$13;
                var$15.$maxX = var$12;
                var$15.$maxY1 = var$16;
                var$15.$maxZ = var$10;
                var$8 = $var7.$size2;
                if (var$8 < 0)
                    break;
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var7, var$8), var$15);
            }
            $var5 = $var5 + 4 | 0;
        }
        $par1StructureComponent = new jl_IndexOutOfBoundsException;
        $par1StructureComponent.$suppressionEnabled = 1;
        $par1StructureComponent.$writableStackTrace = 1;
        $rt_throw($par1StructureComponent);
    }
    var$10 = 0;
    c: {
        while (true) {
            $var7 = $this.$boundingBox;
            $var5 = $var7.$maxZ;
            var$16 = $var7.$minZ;
            var$13 = ($var5 - var$16 | 0) + 1 | 0;
            if (var$10 >= var$13)
                break c;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$9 = Long_lo(Long_shru(var$11, 17));
            $var5 = var$13 - 1 | 0;
            if (!(var$13 & $var5))
                var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt(var$13), Long_fromInt(var$9)), 31));
            else
                while (true) {
                    var$8 = var$9 % var$13 | 0;
                    if (((var$9 - var$8 | 0) + $var5 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$9 = Long_lo(Long_shru(var$11, 17));
                }
            $var5 = var$10 + var$8 | 0;
            if (($var5 + 3 | 0) > var$13)
                break c;
            var$8 = $var7.$minX - 1 | 0;
            var$9 = $var7.$minY;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$12 = Long_lo(Long_shru(var$11, 17));
            var$10 = $var6 - 1 | 0;
            if (!($var6 & var$10))
                var$13 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$12)), 31));
            else
                while (true) {
                    var$13 = var$12 % $var6 | 0;
                    if (((var$12 - var$13 | 0) + var$10 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$12 = Long_lo(Long_shru(var$11, 17));
                }
            var$9 = (var$9 + var$13 | 0) + 1 | 0;
            var$10 = var$16 + $var5 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            $var7 = nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$8, var$9, var$10, 1, $var4);
            if ($var7 !== null) {
                $var8 = $var7.$boundingBox;
                $var7 = $this.$roomsLinkedToTheRoom;
                var$15 = new nms_StructureBoundingBox;
                var$8 = $this.$boundingBox.$minX;
                var$9 = $var8.$minY;
                var$10 = $var8.$minZ;
                var$13 = var$8 + 1 | 0;
                var$12 = $var8.$maxY1;
                var$16 = $var8.$maxZ;
                var$15.$minX = var$8;
                var$15.$minY = var$9;
                var$15.$minZ = var$10;
                var$15.$maxX = var$13;
                var$15.$maxY1 = var$12;
                var$15.$maxZ = var$16;
                var$8 = $var7.$size2;
                if (var$8 < 0)
                    break;
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var7, var$8), var$15);
            }
            var$10 = $var5 + 4 | 0;
        }
        $par1StructureComponent = new jl_IndexOutOfBoundsException;
        $par1StructureComponent.$suppressionEnabled = 1;
        $par1StructureComponent.$writableStackTrace = 1;
        $rt_throw($par1StructureComponent);
    }
    var$13 = 0;
    d: {
        while (true) {
            $var7 = $this.$boundingBox;
            $var5 = $var7.$maxZ;
            var$12 = $var7.$minZ;
            $var5 = ($var5 - var$12 | 0) + 1 | 0;
            if (var$13 >= $var5)
                break d;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$10 = Long_lo(Long_shru(var$11, 17));
            var$8 = $var5 - 1 | 0;
            if (!($var5 & var$8))
                var$9 = Long_lo(Long_shr(Long_mul(Long_fromInt($var5), Long_fromInt(var$10)), 31));
            else
                while (true) {
                    var$9 = var$10 % $var5 | 0;
                    if (((var$10 - var$9 | 0) + var$8 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$10 = Long_lo(Long_shru(var$11, 17));
                }
            var$16 = var$13 + var$9 | 0;
            if ((var$16 + 3 | 0) > $var5)
                break;
            var$10 = $var7.$maxX + 1 | 0;
            var$13 = $var7.$minY;
            var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par3Random.$seed = var$11;
            var$9 = Long_lo(Long_shru(var$11, 17));
            $var5 = $var6 - 1 | 0;
            if (!($var6 & $var5))
                var$8 = Long_lo(Long_shr(Long_mul(Long_fromInt($var6), Long_fromInt(var$9)), 31));
            else
                while (true) {
                    var$8 = var$9 % $var6 | 0;
                    if (((var$9 - var$8 | 0) + $var5 | 0) >= 0)
                        break;
                    var$11 = Long_and(Long_add(Long_mul($par3Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                    $par3Random.$seed = var$11;
                    var$9 = Long_lo(Long_shru(var$11, 17));
                }
            $var5 = (var$13 + var$8 | 0) + 1 | 0;
            var$8 = var$12 + var$16 | 0;
            nms_StructureMineshaftPieces_$callClinit();
            $var7 = nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$10, $var5, var$8, 3, $var4);
            if ($var7 !== null) {
                $var8 = $var7.$boundingBox;
                $var7 = $this.$roomsLinkedToTheRoom;
                var$15 = new nms_StructureBoundingBox;
                $var5 = $this.$boundingBox.$maxX;
                var$8 = $var5 - 1 | 0;
                var$9 = $var8.$minY;
                var$10 = $var8.$minZ;
                var$13 = $var8.$maxY1;
                var$12 = $var8.$maxZ;
                var$15.$minX = var$8;
                var$15.$minY = var$9;
                var$15.$minZ = var$10;
                var$15.$maxX = $var5;
                var$15.$maxY1 = var$13;
                var$15.$maxZ = var$12;
                $var5 = $var7.$size2;
                if ($var5 < 0) {
                    $par1StructureComponent = new jl_IndexOutOfBoundsException;
                    $par1StructureComponent.$suppressionEnabled = 1;
                    $par1StructureComponent.$writableStackTrace = 1;
                    $rt_throw($par1StructureComponent);
                }
                ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($var7, $var5), var$15);
            }
            var$13 = var$16 + 4 | 0;
        }
    }
},
nms_ComponentMineshaftRoom_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var4$nextEntry, $var5, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();$var5 = $thread.pop();$var4$nextEntry = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_StructureComponent_isLiquidInStructureBoundingBox($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        if (var$4)
            return 0;
        $par2Random = $this.$boundingBox;
        var$4 = $par2Random.$minX;
        var$5 = $par2Random.$minY;
        var$6 = $par2Random.$minZ;
        var$7 = $par2Random.$maxX;
        var$8 = $par2Random.$maxZ;
        nms_Block_$callClinit();
        var$9 = nms_Block_dirt.$blockID;
        var$10 = 0;
        var$11 = 1;
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$5, var$8, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$boundingBox;
        var$8 = $par2Random.$minX;
        var$4 = $par2Random.$minY;
        var$10 = var$4 + 1 | 0;
        var$11 = $par2Random.$minZ;
        var$9 = $par2Random.$maxX;
        var$4 = var$4 + 3 | 0;
        var$12 = $par2Random.$maxY1;
        if (var$4 < var$12)
            var$12 = var$4;
        var$4 = $par2Random.$maxZ;
        var$5 = 0;
        var$6 = 0;
        var$7 = 0;
        $ptr = 3;
    case 3:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, var$8, var$10, var$11, var$9, var$12, var$4, var$5, var$6, var$7);
        if ($rt_suspending()) {
            break main;
        }
        $par2Random = $this.$roomsLinkedToTheRoom;
        $var4$nextEntry = $par2Random.$firstEntry;
        var$9 = $par2Random.$modCount;
        if (!($var4$nextEntry === null ? 0 : 1)) {
            $par2Random = $this.$boundingBox;
            var$4 = $par2Random.$minX;
            var$5 = $par2Random.$minY + 4 | 0;
            var$6 = $par2Random.$minZ;
            var$7 = $par2Random.$maxX;
            var$8 = $par2Random.$maxY1;
            var$10 = $par2Random.$maxZ;
            var$11 = 0;
            var$9 = 0;
            $ptr = 4;
            continue main;
        }
        if (var$9 < $par2Random.$modCount) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($var4$nextEntry === null) {
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var5 = $var4$nextEntry.$item;
        $var4$nextEntry = $var4$nextEntry.$next5;
        $var5 = $var5;
        var$4 = $var5.$minX;
        var$5 = $var5.$maxY1;
        var$6 = var$5 - 2 | 0;
        var$7 = $var5.$minZ;
        var$12 = $var5.$maxX;
        var$15 = $var5.$maxZ;
        var$8 = 0;
        var$10 = 0;
        var$11 = 0;
        $ptr = 5;
        continue main;
    case 4:
        nms_StructureComponent_randomlyRareFillWithBlocks($this, $par1World, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$8, var$10, var$11, var$9);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 5:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, var$4, var$6, var$7, var$12, var$5, var$15, var$8, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        if (!($var4$nextEntry === null ? 0 : 1)) {
            $par2Random = $this.$boundingBox;
            var$4 = $par2Random.$minX;
            var$5 = $par2Random.$minY + 4 | 0;
            var$6 = $par2Random.$minZ;
            var$7 = $par2Random.$maxX;
            var$8 = $par2Random.$maxY1;
            var$10 = $par2Random.$maxZ;
            var$11 = 0;
            var$9 = 0;
            $ptr = 4;
            continue main;
        }
        if (var$9 < $par2Random.$modCount) {
            $par1World = new ju_ConcurrentModificationException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        if ($var4$nextEntry === null) {
            $par1World = new ju_NoSuchElementException;
            $par1World.$suppressionEnabled = 1;
            $par1World.$writableStackTrace = 1;
            $rt_throw($par1World);
        }
        $var5 = $var4$nextEntry.$item;
        $var4$nextEntry = $var4$nextEntry.$next5;
        $var5 = $var5;
        var$4 = $var5.$minX;
        var$5 = $var5.$maxY1;
        var$6 = var$5 - 2 | 0;
        var$7 = $var5.$minZ;
        var$12 = $var5.$maxX;
        var$15 = $var5.$maxZ;
        var$8 = 0;
        var$10 = 0;
        var$11 = 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $var4$nextEntry, $var5, var$15, $ptr);
},
nms_ComponentMineshaftRoom_func_143012_a = ($this, $par1NBTTagCompound) => {
    let $var2, var$3, $var3$nextEntry, var$5, $var4, var$7, var$8, var$9;
    $var2 = new nms_NBTTagList;
    $var2.$name = $rt_s(2788);
    var$3 = new ju_ArrayList;
    var$3.$array = $rt_createArray(jl_Object, 10);
    $var2.$tagList = var$3;
    var$3 = $this.$roomsLinkedToTheRoom;
    $var3$nextEntry = var$3.$firstEntry;
    var$5 = var$3.$modCount;
    while ($var3$nextEntry === null ? 0 : 1) {
        if (var$5 < var$3.$modCount) {
            $par1NBTTagCompound = new ju_ConcurrentModificationException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
        if ($var3$nextEntry === null) {
            $par1NBTTagCompound = new ju_NoSuchElementException;
            $par1NBTTagCompound.$suppressionEnabled = 1;
            $par1NBTTagCompound.$writableStackTrace = 1;
            $rt_throw($par1NBTTagCompound);
        }
        $var4 = $var3$nextEntry.$item;
        $var3$nextEntry = $var3$nextEntry.$next5;
        $var4 = nms_StructureBoundingBox_func_143047_a($var4, $rt_s(3));
        $var2.$tagType = 11;
        var$7 = $var2.$tagList;
        ju_ArrayList_ensureCapacity(var$7, var$7.$size0 + 1 | 0);
        var$8 = var$7.$array.data;
        var$9 = var$7.$size0;
        var$7.$size0 = var$9 + 1 | 0;
        var$8[var$9] = $var4;
        var$7.$modCount = var$7.$modCount + 1 | 0;
    }
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    $var2.$name = $rt_s(2788);
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2788), $var2);
},
nms_ComponentMineshaftRoom_func_143011_b = ($this, $par1NBTTagCompound) => {
    let $var2, $var3, var$4, var$5, var$6, var$7;
    a: {
        $var2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2788).$hashCode1) {
            $var3 = 0;
            while (true) {
                if ($var3 >= $rt_s(2788).$nativeString.length)
                    break a;
                $rt_s(2788).$hashCode1 = (31 * $rt_s(2788).$hashCode1 | 0) + $rt_s(2788).$nativeString.charCodeAt($var3) | 0;
                $var3 = $var3 + 1 | 0;
            }
        }
    }
    $var3 = $rt_s(2788).$hashCode1;
    var$4 = $var2.$elementData.data;
    $var2 = var$4[$var3 & (var$4.length - 1 | 0)];
    while ($var2 !== null) {
        if ($var2.$origKeyHash == $var3) {
            b: {
                var$5 = $var2.$key;
                if ($rt_s(2788) !== var$5) {
                    if ($rt_s(2788) === var$5)
                        var$6 = 1;
                    else if (!(var$5 instanceof jl_String))
                        var$6 = 0;
                    else {
                        var$5 = var$5;
                        var$6 = $rt_s(2788).$nativeString !== var$5.$nativeString ? 0 : 1;
                    }
                    if (!var$6) {
                        var$6 = 0;
                        break b;
                    }
                }
                var$6 = 1;
            }
            if (var$6)
                break;
        }
        $var2 = $var2.$next3;
    }
    if (!($var2 === null ? 0 : 1)) {
        $var2 = new nms_NBTTagList;
        if ($rt_s(2788) !== null)
            $var2.$name = $rt_s(2788);
        else
            $var2.$name = $rt_s(3);
        $par1NBTTagCompound = new ju_ArrayList;
        $par1NBTTagCompound.$array = $rt_createArray(jl_Object, 10);
        $var2.$tagList = $par1NBTTagCompound;
    } else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2788) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2788).$hashCode1) {
                    $var3 = 0;
                    while (true) {
                        if ($var3 >= $rt_s(2788).$nativeString.length)
                            break c;
                        $rt_s(2788).$hashCode1 = (31 * $rt_s(2788).$hashCode1 | 0) + $rt_s(2788).$nativeString.charCodeAt($var3) | 0;
                        $var3 = $var3 + 1 | 0;
                    }
                }
            }
            $var3 = $rt_s(2788).$hashCode1;
            var$4 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$4[$var3 & (var$4.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == $var3) {
                    d: {
                        $var2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2788) !== $var2) {
                            if ($rt_s(2788) === $var2)
                                var$6 = 1;
                            else if (!($var2 instanceof jl_String))
                                var$6 = 0;
                            else {
                                $var2 = $var2;
                                var$6 = $rt_s(2788).$nativeString !== $var2.$nativeString ? 0 : 1;
                            }
                            if (!var$6) {
                                var$6 = 0;
                                break d;
                            }
                        }
                        var$6 = 1;
                    }
                    if (var$6)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        $var2 = $par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0;
    }
    $var3 = 0;
    e: {
        while (true) {
            var$5 = $var2.$tagList;
            var$6 = $rt_compare($var3, var$5.$size0);
            if (var$6 >= 0)
                break;
            $par1NBTTagCompound = $this.$roomsLinkedToTheRoom;
            var$7 = new nms_StructureBoundingBox;
            if ($var3 < 0)
                break e;
            if (var$6 >= 0)
                break e;
            nms_StructureBoundingBox__init_(var$7, var$5.$array.data[$var3].$intArray);
            var$6 = $par1NBTTagCompound.$size2;
            if (var$6 < 0) {
                $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
                $par1NBTTagCompound.$suppressionEnabled = 1;
                $par1NBTTagCompound.$writableStackTrace = 1;
                $rt_throw($par1NBTTagCompound);
            }
            ju_LinkedList$SequentialListIterator_add(ju_LinkedList_listIterator($par1NBTTagCompound, var$6), var$7);
            $var3 = $var3 + 1 | 0;
        }
        return;
    }
    $par1NBTTagCompound = new jl_IndexOutOfBoundsException;
    $par1NBTTagCompound.$suppressionEnabled = 1;
    $par1NBTTagCompound.$writableStackTrace = 1;
    $rt_throw($par1NBTTagCompound);
},
nms_ComponentMineshaftStairs = $rt_classWithoutFields(nms_StructureComponent),
nms_ComponentMineshaftStairs__init_ = $this => {
    return;
},
nms_ComponentMineshaftStairs__init_0 = () => {
    let var_0 = new nms_ComponentMineshaftStairs();
    nms_ComponentMineshaftStairs__init_(var_0);
    return var_0;
},
nms_ComponentMineshaftStairs_func_143012_a = ($this, $par1NBTTagCompound) => {
    return;
},
nms_ComponentMineshaftStairs_func_143011_b = ($this, $par1NBTTagCompound) => {
    return;
},
nms_ComponentMineshaftStairs_findValidPlacement = ($par0List, $par1Random, $par2, $par3, $par4, $par5) => {
    let $var6, var$8, var$9, var$10;
    a: {
        $var6 = new nms_StructureBoundingBox;
        var$8 = $par3 - 5 | 0;
        $par3 = $par3 + 2 | 0;
        $var6.$minX = $par2;
        $var6.$minY = var$8;
        $var6.$minZ = $par4;
        $var6.$maxX = $par2;
        $var6.$maxY1 = $par3;
        $var6.$maxZ = $par4;
        switch ($par5) {
            case 0:
                break;
            case 1:
                $var6.$minX = $par2 - 8 | 0;
                $var6.$maxZ = $par4 + 2 | 0;
                break a;
            case 2:
                $var6.$maxX = $par2 + 2 | 0;
                $var6.$minZ = $par4 - 8 | 0;
                break a;
            case 3:
                $var6.$maxX = $par2 + 8 | 0;
                $var6.$maxZ = $par4 + 2 | 0;
                break a;
            default:
                break a;
        }
        $var6.$maxX = $par2 + 2 | 0;
        $var6.$maxZ = $par4 + 8 | 0;
    }
    var$9 = $par0List.$firstEntry;
    $par3 = $par0List.$modCount;
    b: {
        while (true) {
            if (!(var$9 === null ? 0 : 1)) {
                $par1Random = null;
                break b;
            }
            if ($par3 < $par0List.$modCount) {
                $par0List = new ju_ConcurrentModificationException;
                $par0List.$suppressionEnabled = 1;
                $par0List.$writableStackTrace = 1;
                $rt_throw($par0List);
            }
            if (var$9 === null) {
                $par0List = new ju_NoSuchElementException;
                $par0List.$suppressionEnabled = 1;
                $par0List.$writableStackTrace = 1;
                $rt_throw($par0List);
            }
            $par1Random = var$9.$item;
            var$9 = var$9.$next5;
            $par1Random = $par1Random;
            var$10 = $par1Random.$boundingBox;
            if (var$10 === null)
                continue;
            if (nms_StructureBoundingBox_intersectsWith(var$10, $var6))
                break;
        }
    }
    if ($par1Random !== null)
        $var6 = null;
    return $var6;
},
nms_ComponentMineshaftStairs_buildComponent = ($this, $par1StructureComponent, $par2List, $par3Random) => {
    let $var4, var$5, var$6, var$7, var$8;
    a: {
        $var4 = $this.$componentType;
        switch ($this.$coordBaseMode) {
            case 0:
                break;
            case 1:
                var$5 = $this.$boundingBox;
                var$6 = var$5.$minX - 1 | 0;
                var$7 = var$5.$minY;
                var$8 = var$5.$minZ;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 1, $var4);
                break a;
            case 2:
                var$5 = $this.$boundingBox;
                var$6 = var$5.$minX;
                var$7 = var$5.$minY;
                var$8 = var$5.$minZ - 1 | 0;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 2, $var4);
                break a;
            case 3:
                var$5 = $this.$boundingBox;
                var$6 = var$5.$maxX + 1 | 0;
                var$7 = var$5.$minY;
                var$8 = var$5.$minZ;
                nms_StructureMineshaftPieces_$callClinit();
                nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 3, $var4);
                break a;
            default:
                break a;
        }
        var$5 = $this.$boundingBox;
        var$6 = var$5.$minX;
        var$7 = var$5.$minY;
        var$8 = var$5.$maxZ + 1 | 0;
        nms_StructureMineshaftPieces_$callClinit();
        nms_StructureMineshaftPieces_getNextMineShaftComponent($par1StructureComponent, $par2List, $par3Random, var$6, var$7, var$8, 0, $var4);
    }
},
nms_ComponentMineshaftStairs_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $ptr = 1;
    case 1:
        $tmp = nms_StructureComponent_isLiquidInStructureBoundingBox($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4)
            return 0;
        $var4 = 0;
        var$5 = 5;
        var$6 = 0;
        var$7 = 2;
        var$8 = 7;
        var$9 = 1;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        var$5 = 0;
        var$6 = 7;
        var$7 = 2;
        var$8 = 2;
        var$9 = 8;
        var$10 = 0;
        var$11 = 0;
        var$12 = 0;
        $ptr = 3;
    case 3:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        if ($var4 >= 5)
            return 1;
        var$5 = 0;
        var$6 = (5 - $var4 | 0) - ($var4 >= 4 ? 0 : 1) | 0;
        var$7 = 2 + $var4 | 0;
        var$12 = 2;
        var$8 = 7 - $var4 | 0;
        var$9 = 0;
        var$10 = 0;
        var$11 = 0;
        $ptr = 4;
    case 4:
        nms_StructureComponent_fillWithBlocks($this, $par1World, $par3StructureBoundingBox, var$5, var$6, var$7, var$12, var$8, var$7, var$9, var$10, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        if ($var4 >= 5)
            return 1;
        var$5 = 0;
        var$6 = (5 - $var4 | 0) - ($var4 >= 4 ? 0 : 1) | 0;
        var$7 = 2 + $var4 | 0;
        var$12 = 2;
        var$8 = 7 - $var4 | 0;
        var$9 = 0;
        var$10 = 0;
        var$11 = 0;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, $var4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, $ptr);
};
function nms_ComponentVillage() {
    let a = this; nms_StructureComponent.call(a);
    a.$field_143015_k = 0;
    a.$villagersSpawned = 0;
    a.$field_143014_b = 0;
}
let nms_ComponentVillage_func_143012_a = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = $this.$field_143015_k;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2789);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2789), var$4);
    var$2 = $this.$villagersSpawned;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2790);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2790), var$4);
    var$2 = (!$this.$field_143014_b ? 0 : 1) << 24 >> 24;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagByte;
    $par1NBTTagCompound.$name = $rt_s(2167);
    $par1NBTTagCompound.$data0 = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2167), $par1NBTTagCompound);
},
nms_ComponentVillage_func_143011_b = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2789).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2789).$nativeString.length)
                    break a;
                $rt_s(2789).$hashCode1 = (31 * $rt_s(2789).$hashCode1 | 0) + $rt_s(2789).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2789).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2789) !== var$6) {
                    if ($rt_s(2789) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2789).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2789) !== null) {
            c: {
                if (!$rt_s(2789).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2789).$nativeString.length)
                            break c;
                        $rt_s(2789).$hashCode1 = (31 * $rt_s(2789).$hashCode1 | 0) + $rt_s(2789).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$3 = $rt_s(2789).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$7 = var$5[var$3 & (var$5.length - 1 | 0)];
            while (var$7 !== null) {
                if (var$7.$origKeyHash == var$3) {
                    d: {
                        var$2 = var$7.$key;
                        if ($rt_s(2789) !== var$2) {
                            if ($rt_s(2789) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2789).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break d;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$7 = var$7.$next3;
            }
        } else {
            var$7 = var$2.$elementData.data[0];
            while (var$7 !== null && var$7.$key !== null) {
                var$7 = var$7.$next3;
            }
        }
        var$4 = (var$7 === null ? null : var$7.$value0).$data;
    } else
        var$4 = 0;
    e: {
        $this.$field_143015_k = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2790).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2790).$nativeString.length)
                    break e;
                $rt_s(2790).$hashCode1 = (31 * $rt_s(2790).$hashCode1 | 0) + $rt_s(2790).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2790).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2790) !== var$6) {
                    if ($rt_s(2790) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2790).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break f;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2790) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            g: {
                if (!$rt_s(2790).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2790).$nativeString.length)
                            break g;
                        $rt_s(2790).$hashCode1 = (31 * $rt_s(2790).$hashCode1 | 0) + $rt_s(2790).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2790).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$8) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2790) !== var$6) {
                            if ($rt_s(2790) === var$6)
                                var$4 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$6 = var$6;
                                var$4 = $rt_s(2790).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break h;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$4 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$villagersSpawned = var$4;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2167).$hashCode1) {
            var$4 = 0;
            while (true) {
                if (var$4 >= $rt_s(2167).$nativeString.length)
                    break i;
                $rt_s(2167).$hashCode1 = (31 * $rt_s(2167).$hashCode1 | 0) + $rt_s(2167).$nativeString.charCodeAt(var$4) | 0;
                var$4 = var$4 + 1 | 0;
            }
        }
    }
    var$8 = $rt_s(2167).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$8 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$8) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2167) !== var$6) {
                    if ($rt_s(2167) === var$6)
                        var$4 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$4 = 0;
                    else {
                        var$6 = var$6;
                        var$4 = $rt_s(2167).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$4) {
                        var$4 = 0;
                        break j;
                    }
                }
                var$4 = 1;
            }
            if (var$4)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$4 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2167) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2167).$hashCode1) {
                    var$4 = 0;
                    while (true) {
                        if (var$4 >= $rt_s(2167).$nativeString.length)
                            break k;
                        $rt_s(2167).$hashCode1 = (31 * $rt_s(2167).$hashCode1 | 0) + $rt_s(2167).$nativeString.charCodeAt(var$4) | 0;
                        var$4 = var$4 + 1 | 0;
                    }
                }
            }
            var$8 = $rt_s(2167).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$8 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$8) {
                    l: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2167) !== var$2) {
                            if ($rt_s(2167) === var$2)
                                var$4 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$4 = 0;
                            else {
                                var$2 = var$2;
                                var$4 = $rt_s(2167).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$4) {
                                var$4 = 0;
                                break l;
                            }
                        }
                        var$4 = 1;
                    }
                    if (var$4)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$4 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data0;
    }
    $this.$field_143014_b = !var$4 ? 0 : 1;
},
nms_ComponentVillage_getNextComponentNN = ($this, $par1ComponentVillageStartPiece, $par2List, $par3Random, $par4, $par5) => {
    let var$6;
    switch ($this.$coordBaseMode) {
        case 0:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$minX - 1 | 0, var$6.$minY + $par4 | 0, var$6.$minZ + $par5 | 0, 1, $this.$componentType);
        case 1:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$minX + $par5 | 0, var$6.$minY + $par4 | 0, var$6.$minZ - 1 | 0, 2, $this.$componentType);
        case 2:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$minX - 1 | 0, var$6.$minY + $par4 | 0, var$6.$minZ + $par5 | 0, 1, $this.$componentType);
        case 3:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$minX + $par5 | 0, var$6.$minY + $par4 | 0, var$6.$minZ - 1 | 0, 2, $this.$componentType);
        default:
    }
    return null;
},
nms_ComponentVillage_getNextComponentPP = ($this, $par1ComponentVillageStartPiece, $par2List, $par3Random, $par4, $par5) => {
    let var$6;
    switch ($this.$coordBaseMode) {
        case 0:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$maxX + 1 | 0, var$6.$minY + $par4 | 0, var$6.$minZ + $par5 | 0, 3, $this.$componentType);
        case 1:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$minX + $par5 | 0, var$6.$minY + $par4 | 0, var$6.$maxZ + 1 | 0, 0, $this.$componentType);
        case 2:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$maxX + 1 | 0, var$6.$minY + $par4 | 0, var$6.$minZ + $par5 | 0, 3, $this.$componentType);
        case 3:
            var$6 = $this.$boundingBox;
            return nms_StructureVillagePieces_getNextVillageStructureComponent($par1ComponentVillageStartPiece, $par2List, $par3Random, var$6.$minX + $par5 | 0, var$6.$minY + $par4 | 0, var$6.$maxZ + 1 | 0, 0, $this.$componentType);
        default:
    }
    return null;
},
nms_ComponentVillage_getAverageGroundLevel = ($this, $par1World, $par2StructureBoundingBox) => {
    let $var3, $var4, $var5, var$6, $var6, var$8, var$9, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var6 = $thread.pop();var$6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$var3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var3 = 0;
        $var4 = 0;
        $var5 = $this.$boundingBox.$minZ;
        while (true) {
            var$6 = $this.$boundingBox;
            if ($var5 > var$6.$maxZ)
                break;
            $var6 = var$6.$minX;
            while ($var6 <= $this.$boundingBox.$maxX) {
                if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var6, 64, $var5)) {
                    $ptr = 1;
                    continue main;
                }
                $var6 = $var6 + 1 | 0;
            }
            $var5 = $var5 + 1 | 0;
        }
        if ($var4)
            return $var3 / $var4 | 0;
        return (-1);
    case 1:
        $tmp = nms_World_getTopSolidOrLiquidBlock($par1World, $var6, $var5);
        if ($rt_suspending()) {
            break main;
        }
        var$8 = $tmp;
        var$9 = $par1World.$provider.$getAverageGroundLevel();
        if (var$8 > var$9)
            var$9 = var$8;
        $var3 = $var3 + var$9 | 0;
        $var4 = $var4 + 1 | 0;
        a: while (true) {
            $var6 = $var6 + 1 | 0;
            while ($var6 > $this.$boundingBox.$maxX) {
                $var5 = $var5 + 1 | 0;
                var$6 = $this.$boundingBox;
                if ($var5 > var$6.$maxZ)
                    break a;
                $var6 = var$6.$minX;
            }
            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var6, 64, $var5)) {
                continue main;
            }
        }
        if ($var4)
            return $var3 / $var4 | 0;
        return (-1);
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $var3, $var4, $var5, var$6, $var6, var$8, var$9, $ptr);
},
nms_ComponentVillage_spawnVillagers = ($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6) => {
    let $var7, var$8, var$9, $var8, $var9, $var10, $var11, var$14, var$15, var$16, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();$var11 = $thread.pop();$var10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var7 = $this.$villagersSpawned;
        if ($var7 < $par6 && $var7 < $par6) {
            a: {
                var$8 = $par3 + $var7 | 0;
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var8 = $this.$boundingBox.$minX + var$8 | 0;
                        break a;
                    case 1:
                        $var8 = $this.$boundingBox.$maxX - $par5 | 0;
                        break a;
                    case 3:
                        $var8 = $this.$boundingBox.$minX + $par5 | 0;
                        break a;
                    default:
                }
                $var8 = var$8;
            }
            $var9 = var$9 == (-1) ? $par4 : $par4 + $this.$boundingBox.$minY | 0;
            b: {
                switch (var$9) {
                    case 0:
                        $var10 = $this.$boundingBox.$minZ + $par5 | 0;
                        break b;
                    case 1:
                    case 3:
                        $var10 = $this.$boundingBox.$minZ + var$8 | 0;
                        break b;
                    case 2:
                        $var10 = $this.$boundingBox.$maxZ - $par5 | 0;
                        break b;
                    default:
                }
                $var10 = $par5;
            }
            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var8, $var9, $var10)) {
                $this.$villagersSpawned = $this.$villagersSpawned + 1 | 0;
                $var11 = new nms_EntityVillager;
                var$9 = $this.$getVillagerType($var7);
                $ptr = 1;
                continue main;
            }
        }
        return;
    case 1:
        nms_EntityVillager__init_($var11, $par1World, var$9);
        if ($rt_suspending()) {
            break main;
        }
        var$14 = $var8 + 0.5;
        var$15 = $var9;
        var$16 = $var10 + 0.5;
        $var11.$posX = var$14;
        $var11.$prevPosX = var$14;
        $var11.$lastTickPosX = var$14;
        var$15 = var$15 + $var11.$yOffset;
        $var11.$posY = var$15;
        $var11.$prevPosY = var$15;
        $var11.$lastTickPosY = var$15;
        $var11.$posZ = var$16;
        $var11.$prevPosZ = var$16;
        $var11.$lastTickPosZ = var$16;
        $var11.$rotationYaw = 0.0;
        $var11.$rotationPitch = 0.0;
        nms_Entity_setPosition($var11, var$14, var$15, var$16);
        $ptr = 2;
    case 2:
        nms_World_spawnEntityInWorld($par1World, $var11);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        if ($var7 < $par6) {
            a: {
                var$8 = $par3 + $var7 | 0;
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var8 = $this.$boundingBox.$minX + var$8 | 0;
                        break a;
                    case 1:
                        $var8 = $this.$boundingBox.$maxX - $par5 | 0;
                        break a;
                    case 3:
                        $var8 = $this.$boundingBox.$minX + $par5 | 0;
                        break a;
                    default:
                }
                $var8 = var$8;
            }
            $var9 = var$9 == (-1) ? $par4 : $par4 + $this.$boundingBox.$minY | 0;
            b: {
                switch (var$9) {
                    case 0:
                        $var10 = $this.$boundingBox.$minZ + $par5 | 0;
                        break b;
                    case 1:
                    case 3:
                        $var10 = $this.$boundingBox.$minZ + var$8 | 0;
                        break b;
                    case 2:
                        $var10 = $this.$boundingBox.$maxZ - $par5 | 0;
                        break b;
                    default:
                }
                $var10 = $par5;
            }
            if (nms_StructureBoundingBox_isVecInside($par2StructureBoundingBox, $var8, $var9, $var10)) {
                $this.$villagersSpawned = $this.$villagersSpawned + 1 | 0;
                $var11 = new nms_EntityVillager;
                var$9 = $this.$getVillagerType($var7);
                $ptr = 1;
                continue main;
            }
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $var7, var$8, var$9, $var8, $var9, $var10, $var11, var$14, var$15, var$16, $ptr);
},
nms_ComponentVillage_getVillagerType = ($this, $par1) => {
    return 0;
},
nms_ComponentVillage_getBiomeSpecificBlock = ($this, $par1, $par2) => {
    if ($this.$field_143014_b) {
        nms_Block_$callClinit();
        if ($par1 == nms_Block_wood.$blockID)
            return nms_Block_sandStone.$blockID;
        if ($par1 == nms_Block_cobblestone.$blockID)
            return nms_Block_sandStone.$blockID;
        if ($par1 == nms_Block_planks.$blockID)
            return nms_Block_sandStone.$blockID;
        if ($par1 == nms_Block_stairsWoodOak.$blockID)
            return nms_Block_stairsSandStone.$blockID;
        if ($par1 == nms_Block_stairsCobblestone.$blockID)
            return nms_Block_stairsSandStone.$blockID;
        if ($par1 == nms_Block_gravel.$blockID)
            return nms_Block_sandStone.$blockID;
    }
    return $par1;
},
nms_ComponentVillage_getBiomeSpecificBlockMetadata = ($this, $par1, $par2) => {
    if ($this.$field_143014_b) {
        nms_Block_$callClinit();
        if ($par1 == nms_Block_wood.$blockID)
            return 0;
        if ($par1 == nms_Block_cobblestone.$blockID)
            return 0;
        if ($par1 == nms_Block_planks.$blockID)
            return 2;
    }
    return $par2;
},
nms_ComponentVillage_placeBlockAtCurrentPosition = ($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7StructureBoundingBox) => {
    let $var8, $var9, var$10, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$10 = $thread.pop();$var9 = $thread.pop();$var8 = $thread.pop();$par7StructureBoundingBox = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2 = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        a: {
            $var8 = nms_ComponentVillage_getBiomeSpecificBlock($this, $par2, $par3);
            $var9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $par2, $par3);
            var$10 = $this.$coordBaseMode;
            switch (var$10) {
                case 0:
                case 2:
                    $par2 = $this.$boundingBox.$minX + $par4 | 0;
                    break a;
                case 1:
                    $par2 = $this.$boundingBox.$maxX - $par6 | 0;
                    break a;
                case 3:
                    $par2 = $this.$boundingBox.$minX + $par6 | 0;
                    break a;
                default:
            }
            $par2 = $par4;
        }
        if (var$10 != (-1))
            $par5 = $par5 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$10) {
                case 0:
                    $par6 = $this.$boundingBox.$minZ + $par6 | 0;
                    break b;
                case 1:
                case 3:
                    $par6 = $this.$boundingBox.$minZ + $par4 | 0;
                    break b;
                case 2:
                    $par6 = $this.$boundingBox.$maxZ - $par6 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par7StructureBoundingBox, $par2, $par5, $par6))
            return;
        $par3 = 2;
        $ptr = 1;
    case 1:
        nms_World_setBlock($par1World, $par2, $par5, $par6, $var8, $var9, $par3);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2, $par3, $par4, $par5, $par6, $par7StructureBoundingBox, $var8, $var9, var$10, $ptr);
},
nms_ComponentVillage_fillWithBlocks = ($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11) => {
    let $var12, $var13, $var14, $var15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();$var15 = $thread.pop();$var14 = $thread.pop();$var13 = $thread.pop();$var12 = $thread.pop();$par11 = $thread.pop();$par10 = $thread.pop();$par9 = $thread.pop();$par8 = $thread.pop();$par7 = $thread.pop();$par6 = $thread.pop();$par5 = $thread.pop();$par4 = $thread.pop();$par3 = $thread.pop();$par2StructureBoundingBox = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        $var12 = nms_ComponentVillage_getBiomeSpecificBlock($this, $par9, 0);
        $var13 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $par9, 0);
        $var14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $par10, 0);
        $var15 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $par10, 0);
        $ptr = 1;
    case 1:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $var12, $var13, $var14, $var15, $par11);
        if ($rt_suspending()) {
            break main;
        }
        return;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2StructureBoundingBox, $par3, $par4, $par5, $par6, $par7, $par8, $par9, $par10, $par11, $var12, $var13, $var14, $var15, $ptr);
},
nms_ComponentVillageHouse1 = $rt_classWithoutFields(nms_ComponentVillage),
nms_ComponentVillageHouse1__init_ = $this => {
    $this.$field_143015_k = (-1);
},
nms_ComponentVillageHouse1__init_0 = () => {
    let var_0 = new nms_ComponentVillageHouse1();
    nms_ComponentVillageHouse1__init_(var_0);
    return var_0;
},
nms_ComponentVillageHouse1_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();$var8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_143015_k < 0) {
            $ptr = 6;
            continue main;
        }
        $var4 = 1;
        $var5 = 1;
        $var6 = 1;
        $var7 = 7;
        $var8 = 5;
        var$9 = 4;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
    case 1:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$11, var$12, var$13, var$14, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 0;
        $var6 = 0;
        $var7 = 8;
        $var8 = 0;
        var$9 = 5;
        nms_Block_$callClinit();
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 5;
        $var6 = 0;
        $var7 = 8;
        $var8 = 5;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 3;
    case 3:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 6;
        $var6 = 1;
        $var7 = 8;
        $var8 = 6;
        var$9 = 4;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 4;
    case 4:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 7;
        $var6 = 2;
        $var7 = 8;
        $var8 = 7;
        var$9 = 3;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 5;
    case 5:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
        $var5 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 2);
        $var6 = (-1);
        while (true) {
            if ($var6 > 2) {
                $var4 = 0;
                $var5 = 1;
                $var6 = 0;
                $var7 = 0;
                $var8 = 1;
                var$9 = 5;
                var$12 = nms_Block_cobblestone.$blockID;
                var$14 = 0;
                var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                $ptr = 7;
                continue main;
            }
            $var7 = 0;
            if ($var7 <= 8)
                break;
            $var6 = $var6 + 1 | 0;
        }
        $var8 = nms_Block_stairsWoodOak.$blockID;
        var$9 = 6 + $var6 | 0;
        $ptr = 53;
        continue main;
    case 6:
        $tmp = nms_ComponentVillage_getAverageGroundLevel($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $this.$field_143015_k = $var4;
        if ($var4 < 0)
            return 1;
        $par2Random = $this.$boundingBox;
        $var6 = $par2Random.$maxY1;
        $var4 = (($var4 - $var6 | 0) + 9 | 0) - 1 | 0;
        $par2Random.$minX = $par2Random.$minX + 0 | 0;
        $par2Random.$minY = $par2Random.$minY + $var4 | 0;
        $par2Random.$minZ = $par2Random.$minZ + 0 | 0;
        $par2Random.$maxX = $par2Random.$maxX + 0 | 0;
        $par2Random.$maxY1 = $var6 + $var4 | 0;
        $par2Random.$maxZ = $par2Random.$maxZ + 0 | 0;
        $var4 = 1;
        $var5 = 1;
        $var6 = 1;
        $var7 = 7;
        $var8 = 5;
        var$9 = 4;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
        continue main;
    case 7:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 1;
        $var6 = 5;
        $var7 = 8;
        $var8 = 1;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 8;
    case 8:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 8;
        $var5 = 1;
        $var6 = 0;
        $var7 = 8;
        $var8 = 1;
        var$9 = 4;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 9;
    case 9:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 0;
        $var7 = 7;
        $var8 = 1;
        var$14 = 0;
        var$10 = nms_Block_cobblestone.$blockID;
        var$11 = 0;
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$10, 0);
        var$15 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$10, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$10, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$10, 0);
        $ptr = 10;
    case 10:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$14, var$13, var$15, var$9, var$12, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 2;
        $var6 = 0;
        $var7 = 0;
        $var8 = 4;
        var$9 = 0;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 11;
    case 11:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 2;
        $var6 = 5;
        $var7 = 0;
        $var8 = 4;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 12;
    case 12:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 8;
        $var5 = 2;
        $var6 = 5;
        $var7 = 8;
        $var8 = 4;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 13;
    case 13:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 8;
        $var5 = 2;
        $var6 = 0;
        $var7 = 8;
        $var8 = 4;
        var$9 = 0;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 14;
    case 14:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 2;
        $var6 = 1;
        $var7 = 0;
        $var8 = 4;
        var$9 = 4;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 15;
    case 15:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 2;
        $var6 = 5;
        $var7 = 7;
        $var8 = 4;
        var$9 = 5;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 16;
    case 16:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 8;
        $var5 = 2;
        $var6 = 1;
        $var7 = 8;
        $var8 = 4;
        var$9 = 4;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 17;
    case 17:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 2;
        $var6 = 0;
        $var7 = 7;
        $var8 = 4;
        var$9 = 0;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 18;
    case 18:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 4;
        $var7 = 2;
        $var8 = 0;
        $ptr = 19;
    case 19:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 5;
        $var7 = 2;
        $var8 = 0;
        $ptr = 20;
    case 20:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 6;
        $var7 = 2;
        $var8 = 0;
        $ptr = 21;
    case 21:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 4;
        $var7 = 3;
        $var8 = 0;
        $ptr = 22;
    case 22:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 5;
        $var7 = 3;
        $var8 = 0;
        $ptr = 23;
    case 23:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 6;
        $var7 = 3;
        $var8 = 0;
        $ptr = 24;
    case 24:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 0;
        $var7 = 2;
        $var8 = 2;
        $ptr = 25;
    case 25:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 0;
        $var7 = 2;
        $var8 = 3;
        $ptr = 26;
    case 26:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 0;
        $var7 = 3;
        $var8 = 2;
        $ptr = 27;
    case 27:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 0;
        $var7 = 3;
        $var8 = 3;
        $ptr = 28;
    case 28:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 8;
        $var7 = 2;
        $var8 = 2;
        $ptr = 29;
    case 29:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 8;
        $var7 = 2;
        $var8 = 3;
        $ptr = 30;
    case 30:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 8;
        $var7 = 3;
        $var8 = 2;
        $ptr = 31;
    case 31:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 8;
        $var7 = 3;
        $var8 = 3;
        $ptr = 32;
    case 32:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 2;
        $var7 = 2;
        $var8 = 5;
        $ptr = 33;
    case 33:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 3;
        $var7 = 2;
        $var8 = 5;
        $ptr = 34;
    case 34:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 5;
        $var7 = 2;
        $var8 = 5;
        $ptr = 35;
    case 35:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_thinGlass.$blockID;
        $var5 = 0;
        $var6 = 6;
        $var7 = 2;
        $var8 = 5;
        $ptr = 36;
    case 36:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 4;
        $var6 = 1;
        $var7 = 7;
        $var8 = 4;
        var$9 = 1;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 37;
    case 37:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 4;
        $var6 = 4;
        $var7 = 7;
        $var8 = 4;
        var$9 = 4;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 38;
    case 38:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 3;
        $var6 = 4;
        $var7 = 7;
        $var8 = 3;
        var$9 = 4;
        var$12 = nms_Block_bookShelf.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 39;
    case 39:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_planks.$blockID;
        $var5 = 0;
        $var6 = 7;
        $var7 = 1;
        $var8 = 4;
        $ptr = 40;
    case 40:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_stairsWoodOak.$blockID;
        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 0);
        $var6 = 7;
        $var7 = 1;
        $var8 = 3;
        $ptr = 41;
    case 41:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
        $var5 = nms_Block_stairsWoodOak.$blockID;
        $var6 = 6;
        $var7 = 1;
        $var8 = 4;
        $ptr = 42;
    case 42:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var5, $var4, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = nms_Block_stairsWoodOak.$blockID;
        $var6 = 5;
        $var7 = 1;
        $var8 = 4;
        $ptr = 43;
    case 43:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var5, $var4, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = nms_Block_stairsWoodOak.$blockID;
        $var6 = 4;
        $var7 = 1;
        $var8 = 4;
        $ptr = 44;
    case 44:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var5, $var4, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = nms_Block_stairsWoodOak.$blockID;
        $var6 = 3;
        $var7 = 1;
        $var8 = 4;
        $ptr = 45;
    case 45:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var5, $var4, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_fence.$blockID;
        $var5 = 0;
        $var6 = 6;
        $var7 = 1;
        $var8 = 3;
        $ptr = 46;
    case 46:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_pressurePlatePlanks.$blockID;
        $var5 = 0;
        $var6 = 6;
        $var7 = 2;
        $var8 = 3;
        $ptr = 47;
    case 47:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_fence.$blockID;
        $var5 = 0;
        $var6 = 4;
        $var7 = 1;
        $var8 = 3;
        $ptr = 48;
    case 48:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_pressurePlatePlanks.$blockID;
        $var5 = 0;
        $var6 = 4;
        $var7 = 2;
        $var8 = 3;
        $ptr = 49;
    case 49:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_Block_workbench.$blockID;
        $var5 = 0;
        $var6 = 7;
        $var7 = 1;
        $var8 = 1;
        $ptr = 50;
    case 50:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 0;
        $var6 = 1;
        $var7 = 1;
        $var8 = 0;
        $ptr = 51;
    case 51:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 0;
        $var6 = 1;
        $var7 = 2;
        $var8 = 0;
        $ptr = 52;
    case 52:
        a: {
            nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
            if ($rt_suspending()) {
                break main;
            }
            $var5 = 1;
            $var6 = 0;
            $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
            var$12 = $this.$coordBaseMode;
            switch (var$12) {
                case 0:
                case 2:
                    $var8 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    $var8 = $this.$boundingBox.$maxX - $var6 | 0;
                    break a;
                case 3:
                    $var8 = $this.$boundingBox.$minX + $var6 | 0;
                    break a;
                default:
            }
            $var8 = 1;
        }
        if (var$12 != (-1))
            $var5 = $var5 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$12) {
                case 0:
                    $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                    break b;
                case 1:
                case 3:
                    $var6 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var8, $var5, $var6)) {
            $par2Random = nms_Block_doorWood;
            $ptr = 55;
            continue main;
        }
        c: {
            $var5 = 0;
            $var6 = (-1);
            var$9 = $this.$coordBaseMode;
            switch (var$9) {
                case 0:
                case 2:
                    $var7 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                    break c;
                case 3:
                    $var7 = $this.$boundingBox.$minX + $var6 | 0;
                    break c;
                default:
            }
            $var7 = 1;
        }
        if (var$9 != (-1))
            $var5 = $var5 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$9) {
                case 0:
                    $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                    break d;
                case 1:
                case 3:
                    $var6 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
            $ptr = 56;
            continue main;
        }
        if (!0) {
            e: {
                $var5 = (-1);
                $var6 = (-1);
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var7 = $this.$boundingBox.$minX + 1 | 0;
                        break e;
                    case 1:
                        $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                        break e;
                    case 3:
                        $var7 = $this.$boundingBox.$minX + $var6 | 0;
                        break e;
                    default:
                }
                $var7 = 1;
            }
            if (var$9 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$9) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break f;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 1 | 0;
                        break f;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break f;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                $ptr = 58;
                continue main;
            }
            if (0) {
                $var4 = nms_Block_stairsCobblestone.$blockID;
                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                $var6 = 1;
                $var7 = 0;
                $var8 = (-1);
                $ptr = 59;
                continue main;
            }
        }
        $var7 = 0;
        while ($var7 < 6) {
            $var8 = 0;
            if ($var8 < 9) {
                g: {
                    $var4 = 9;
                    $var6 = $this.$coordBaseMode;
                    switch ($var6) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var8 | 0;
                            break g;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var7 | 0;
                            break g;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break g;
                        default:
                    }
                    var$12 = $var8;
                }
                if ($var6 != (-1))
                    $var4 = $var4 + $this.$boundingBox.$minY | 0;
                h: {
                    switch ($var6) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break h;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var8 | 0;
                            break h;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var7 | 0;
                            break h;
                        default:
                    }
                    var$14 = $var7;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var4, var$14)) {
                    $ptr = 61;
                    continue main;
                }
                $var4 = nms_Block_cobblestone.$blockID;
                $var6 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                $ptr = 60;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 2;
        $var7 = 1;
        $ptr = 57;
        continue main;
    case 53:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var8, $var4, $var7, var$9, $var6, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = nms_Block_stairsWoodOak.$blockID;
        var$12 = 5 - $var6 | 0;
        $ptr = 54;
    case 54:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var8, $var5, $var7, var$9, var$12, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = $var7 + 1 | 0;
        while ($var7 > 8) {
            $var6 = $var6 + 1 | 0;
            if ($var6 > 2) {
                $var4 = 0;
                $var5 = 1;
                $var6 = 0;
                $var7 = 0;
                $var8 = 1;
                var$9 = 5;
                var$12 = nms_Block_cobblestone.$blockID;
                var$14 = 0;
                var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                $ptr = 7;
                continue main;
            }
            $var7 = 0;
        }
        $var8 = nms_Block_stairsWoodOak.$blockID;
        var$9 = 6 + $var6 | 0;
        $ptr = 53;
        continue main;
    case 55:
        nms_ItemDoor_placeDoorBlock($par1World, $var8, $var5, $var6, $var7, $par2Random);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var5 = 0;
            $var6 = (-1);
            var$9 = $this.$coordBaseMode;
            switch (var$9) {
                case 0:
                case 2:
                    $var7 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                    break a;
                case 3:
                    $var7 = $this.$boundingBox.$minX + $var6 | 0;
                    break a;
                default:
            }
            $var7 = 1;
        }
        if (var$9 != (-1))
            $var5 = $var5 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$9) {
                case 0:
                    $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                    break b;
                case 1:
                case 3:
                    $var6 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
            $ptr = 56;
            continue main;
        }
        if (!0) {
            i: {
                $var5 = (-1);
                $var6 = (-1);
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var7 = $this.$boundingBox.$minX + 1 | 0;
                        break i;
                    case 1:
                        $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                        break i;
                    case 3:
                        $var7 = $this.$boundingBox.$minX + $var6 | 0;
                        break i;
                    default:
                }
                $var7 = 1;
            }
            if (var$9 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$9) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break j;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 1 | 0;
                        break j;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break j;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                $ptr = 58;
                continue main;
            }
            if (0) {
                $var4 = nms_Block_stairsCobblestone.$blockID;
                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                $var6 = 1;
                $var7 = 0;
                $var8 = (-1);
                $ptr = 59;
                continue main;
            }
        }
        $var7 = 0;
        while ($var7 < 6) {
            $var8 = 0;
            if ($var8 < 9) {
                k: {
                    $var4 = 9;
                    $var6 = $this.$coordBaseMode;
                    switch ($var6) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var8 | 0;
                            break k;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var7 | 0;
                            break k;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break k;
                        default:
                    }
                    var$12 = $var8;
                }
                if ($var6 != (-1))
                    $var4 = $var4 + $this.$boundingBox.$minY | 0;
                l: {
                    switch ($var6) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break l;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var8 | 0;
                            break l;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var7 | 0;
                            break l;
                        default:
                    }
                    var$14 = $var7;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var4, var$14)) {
                    $ptr = 61;
                    continue main;
                }
                $var4 = nms_Block_cobblestone.$blockID;
                $var6 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                $ptr = 60;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 2;
        $var7 = 1;
        $ptr = 57;
        continue main;
    case 56:
        $tmp = nms_World_getBlockId($par1World, $var7, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            m: {
                $var5 = (-1);
                $var6 = (-1);
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var7 = $this.$boundingBox.$minX + 1 | 0;
                        break m;
                    case 1:
                        $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                        break m;
                    case 3:
                        $var7 = $this.$boundingBox.$minX + $var6 | 0;
                        break m;
                    default:
                }
                $var7 = 1;
            }
            if (var$9 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$9) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break n;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 1 | 0;
                        break n;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break n;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                $ptr = 58;
                continue main;
            }
            if (0) {
                $var4 = nms_Block_stairsCobblestone.$blockID;
                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                $var6 = 1;
                $var7 = 0;
                $var8 = (-1);
                $ptr = 59;
                continue main;
            }
        }
        $var7 = 0;
        while ($var7 < 6) {
            $var8 = 0;
            if ($var8 < 9) {
                o: {
                    $var4 = 9;
                    $var6 = $this.$coordBaseMode;
                    switch ($var6) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var8 | 0;
                            break o;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var7 | 0;
                            break o;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break o;
                        default:
                    }
                    var$12 = $var8;
                }
                if ($var6 != (-1))
                    $var4 = $var4 + $this.$boundingBox.$minY | 0;
                p: {
                    switch ($var6) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break p;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var8 | 0;
                            break p;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var7 | 0;
                            break p;
                        default:
                    }
                    var$14 = $var7;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var4, var$14)) {
                    $ptr = 61;
                    continue main;
                }
                $var4 = nms_Block_cobblestone.$blockID;
                $var6 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                $ptr = 60;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 2;
        $var7 = 1;
        $ptr = 57;
    case 57:
        nms_ComponentVillage_spawnVillagers($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    case 58:
        $tmp = nms_World_getBlockId($par1World, $var7, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if ($var4) {
            $var4 = nms_Block_stairsCobblestone.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var6 = 1;
            $var7 = 0;
            $var8 = (-1);
            $ptr = 59;
            continue main;
        }
        $var7 = 0;
        while ($var7 < 6) {
            $var8 = 0;
            if ($var8 < 9) {
                q: {
                    $var4 = 9;
                    $var6 = $this.$coordBaseMode;
                    switch ($var6) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var8 | 0;
                            break q;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var7 | 0;
                            break q;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break q;
                        default:
                    }
                    var$12 = $var8;
                }
                if ($var6 != (-1))
                    $var4 = $var4 + $this.$boundingBox.$minY | 0;
                r: {
                    switch ($var6) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break r;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var8 | 0;
                            break r;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var7 | 0;
                            break r;
                        default:
                    }
                    var$14 = $var7;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var4, var$14)) {
                    $ptr = 61;
                    continue main;
                }
                $var4 = nms_Block_cobblestone.$blockID;
                $var6 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                $ptr = 60;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 2;
        $var7 = 1;
        $ptr = 57;
        continue main;
    case 59:
        nms_ComponentVillage_placeBlockAtCurrentPosition($this, $par1World, $var4, $var5, $var6, $var7, $var8, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var7 = 0;
        while ($var7 < 6) {
            $var8 = 0;
            if ($var8 < 9) {
                s: {
                    $var4 = 9;
                    $var6 = $this.$coordBaseMode;
                    switch ($var6) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var8 | 0;
                            break s;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var7 | 0;
                            break s;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break s;
                        default:
                    }
                    var$12 = $var8;
                }
                if ($var6 != (-1))
                    $var4 = $var4 + $this.$boundingBox.$minY | 0;
                t: {
                    switch ($var6) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break t;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var8 | 0;
                            break t;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var7 | 0;
                            break t;
                        default:
                    }
                    var$14 = $var7;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var4, var$14)) {
                    $ptr = 61;
                    continue main;
                }
                $var4 = nms_Block_cobblestone.$blockID;
                $var6 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                $ptr = 60;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 2;
        $var7 = 1;
        $ptr = 57;
        continue main;
    case 60:
        nms_StructureComponent_fillCurrentPositionBlocksDownwards($this, $par1World, var$9, $var4, $var8, $var6, $var7, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var8 = $var8 + 1 | 0;
        while (true) {
            if ($var8 < 9) {
                q: {
                    $var4 = 9;
                    $var6 = $this.$coordBaseMode;
                    switch ($var6) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var8 | 0;
                            break q;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var7 | 0;
                            break q;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break q;
                        default:
                    }
                    var$12 = $var8;
                }
                if ($var6 != (-1))
                    $var4 = $var4 + $this.$boundingBox.$minY | 0;
                r: {
                    switch ($var6) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break r;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var8 | 0;
                            break r;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var7 | 0;
                            break r;
                        default:
                    }
                    var$14 = $var7;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var4, var$14)) {
                    $ptr = 61;
                    continue main;
                }
                $var4 = nms_Block_cobblestone.$blockID;
                $var6 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                continue main;
            }
            $var7 = $var7 + 1 | 0;
            if ($var7 >= 6)
                break;
            $var8 = 0;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 2;
        $var7 = 1;
        $ptr = 57;
        continue main;
    case 61:
        $tmp = nms_World_getBlockId($par1World, var$12, $var4, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $tmp;
        $var5 = $var5 ? 0 : 1;
        if (!$var5 && $var4 < 255) {
            $var5 = 0;
            $var6 = 0;
            var$9 = 2;
            $ptr = 62;
            continue main;
        }
        $var4 = nms_Block_cobblestone.$blockID;
        $var6 = (-1);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
        $ptr = 60;
        continue main;
    case 62:
        nms_World_setBlock($par1World, var$12, $var4, var$14, $var5, $var6, var$9);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $var4 + 1 | 0;
        $ptr = 61;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, $var8, var$9, var$10, var$11, var$12, var$13, var$14, var$15, $ptr);
},
nms_ComponentVillageHouse1_getVillagerType = ($this, $par1) => {
    return 1;
};
function nms_ComponentVillageField() {
    let a = this; nms_ComponentVillage.call(a);
    a.$cropTypeA = 0;
    a.$cropTypeB = 0;
    a.$cropTypeC = 0;
    a.$cropTypeD = 0;
}
let nms_ComponentVillageField__init_ = $this => {
    $this.$field_143015_k = (-1);
},
nms_ComponentVillageField__init_0 = () => {
    let var_0 = new nms_ComponentVillageField();
    nms_ComponentVillageField__init_(var_0);
    return var_0;
},
nms_ComponentVillageField_func_143012_a = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = $this.$field_143015_k;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2789);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2789), var$4);
    var$2 = $this.$villagersSpawned;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2790);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2790), var$4);
    var$2 = (!$this.$field_143014_b ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2167);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2167), var$4);
    var$2 = $this.$cropTypeA;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(924);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(924), var$4);
    var$2 = $this.$cropTypeB;
    var$4 = $par1NBTTagCompound.$tagMap;
    var$3 = new nms_NBTTagInt;
    var$3.$name = $rt_s(2791);
    var$3.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2791), var$3);
    var$2 = $this.$cropTypeC;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2792);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2792), var$4);
    var$2 = $this.$cropTypeD;
    var$4 = $par1NBTTagCompound.$tagMap;
    $par1NBTTagCompound = new nms_NBTTagInt;
    $par1NBTTagCompound.$name = $rt_s(2793);
    $par1NBTTagCompound.$data = var$2;
    ju_HashMap_putImpl(var$4, $rt_s(2793), $par1NBTTagCompound);
},
nms_ComponentVillageField_func_143011_b = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2789).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2789).$nativeString.length)
                    break a;
                $rt_s(2789).$hashCode1 = (31 * $rt_s(2789).$hashCode1 | 0) + $rt_s(2789).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2789).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2789) !== var$6) {
                    if ($rt_s(2789) === var$6)
                        var$3 = 1;
                    else if (var$6 instanceof jl_String) {
                        var$6 = var$6;
                        var$3 = $rt_s(2789).$nativeString !== var$6.$nativeString ? 0 : 1;
                    } else
                        var$3 = 0;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2789) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2789).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2789).$nativeString.length)
                            break c;
                        $rt_s(2789).$hashCode1 = (31 * $rt_s(2789).$hashCode1 | 0) + $rt_s(2789).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2789).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(2789) !== var$6) {
                            if ($rt_s(2789) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2789).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    e: {
        $this.$field_143015_k = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2790).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2790).$nativeString.length)
                    break e;
                $rt_s(2790).$hashCode1 = (31 * $rt_s(2790).$hashCode1 | 0) + $rt_s(2790).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2790).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2790) !== var$6) {
                    if ($rt_s(2790) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2790).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2790) !== null) {
            g: {
                if (!$rt_s(2790).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2790).$nativeString.length)
                            break g;
                        $rt_s(2790).$hashCode1 = (31 * $rt_s(2790).$hashCode1 | 0) + $rt_s(2790).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2790).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2790) !== var$6) {
                            if ($rt_s(2790) !== var$6) {
                                if (var$6 instanceof jl_String) {
                                    var$6 = var$6;
                                    var$3 = $rt_s(2790).$nativeString !== var$6.$nativeString ? 0 : 1;
                                } else
                                    var$3 = 0;
                            } else
                                var$3 = 1;
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    i: {
        $this.$villagersSpawned = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2167).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2167).$nativeString.length)
                    break i;
                $rt_s(2167).$hashCode1 = (31 * $rt_s(2167).$hashCode1 | 0) + $rt_s(2167).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2167).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2167) !== var$6) {
                    if ($rt_s(2167) !== var$6) {
                        if (!(var$6 instanceof jl_String))
                            var$3 = 0;
                        else {
                            var$6 = var$6;
                            var$3 = $rt_s(2167).$nativeString !== var$6.$nativeString ? 0 : 1;
                        }
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2167) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            k: {
                if (!$rt_s(2167).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2167).$nativeString.length)
                            break k;
                        $rt_s(2167).$hashCode1 = (31 * $rt_s(2167).$hashCode1 | 0) + $rt_s(2167).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2167).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(2167) !== var$6) {
                            if ($rt_s(2167) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2167).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    }
    var$3 = !var$3 ? 0 : 1;
    m: {
        $this.$field_143014_b = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(924).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(924).$nativeString.length)
                    break m;
                $rt_s(924).$hashCode1 = (31 * $rt_s(924).$hashCode1 | 0) + $rt_s(924).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(924).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(924) !== var$6) {
                    if ($rt_s(924) === var$6)
                        var$7 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$7 = 0;
                    else {
                        var$6 = var$6;
                        var$7 = $rt_s(924).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(924) === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            o: {
                if (!$rt_s(924).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(924).$nativeString.length)
                            break o;
                        $rt_s(924).$hashCode1 = (31 * $rt_s(924).$hashCode1 | 0) + $rt_s(924).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(924).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$7) {
                    p: {
                        var$2 = var$8.$key;
                        if ($rt_s(924) !== var$2) {
                            if ($rt_s(924) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(924).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$3 = (var$8 === null ? null : var$8.$value0).$data;
    }
    q: {
        $this.$cropTypeA = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2791).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2791).$nativeString.length)
                    break q;
                $rt_s(2791).$hashCode1 = (31 * $rt_s(2791).$hashCode1 | 0) + $rt_s(2791).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2791).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2791) !== var$6) {
                    if ($rt_s(2791) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2791).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2791) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2791).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2791).$nativeString.length)
                            break s;
                        $rt_s(2791).$hashCode1 = (31 * $rt_s(2791).$hashCode1 | 0) + $rt_s(2791).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2791).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    t: {
                        var$6 = var$2.$key;
                        if ($rt_s(2791) !== var$6) {
                            if ($rt_s(2791) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2791).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    u: {
        $this.$cropTypeB = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2792).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2792).$nativeString.length)
                    break u;
                $rt_s(2792).$hashCode1 = (31 * $rt_s(2792).$hashCode1 | 0) + $rt_s(2792).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2792).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            v: {
                var$6 = var$2.$key;
                if ($rt_s(2792) !== var$6) {
                    if ($rt_s(2792) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2792).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break v;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2792) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            w: {
                if (!$rt_s(2792).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2792).$nativeString.length)
                            break w;
                        $rt_s(2792).$hashCode1 = (31 * $rt_s(2792).$hashCode1 | 0) + $rt_s(2792).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2792).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    x: {
                        var$6 = var$2.$key;
                        if ($rt_s(2792) !== var$6) {
                            if ($rt_s(2792) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2792).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break x;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    y: {
        $this.$cropTypeC = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2793).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2793).$nativeString.length)
                    break y;
                $rt_s(2793).$hashCode1 = (31 * $rt_s(2793).$hashCode1 | 0) + $rt_s(2793).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2793).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            z: {
                var$6 = var$2.$key;
                if ($rt_s(2793) !== var$6) {
                    if ($rt_s(2793) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2793).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break z;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2793) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            ba: {
                if (!$rt_s(2793).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2793).$nativeString.length)
                            break ba;
                        $rt_s(2793).$hashCode1 = (31 * $rt_s(2793).$hashCode1 | 0) + $rt_s(2793).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2793).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    bb: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2793) !== var$2) {
                            if ($rt_s(2793) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2793).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break bb;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$cropTypeD = var$3;
},
nms_ComponentVillageField_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let $var5, var$5, var$6, var$7, var$8, var$9, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();$var5 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_143015_k < 0) {
            $ptr = 13;
            continue main;
        }
        $var5 = 0;
        var$5 = 1;
        var$6 = 0;
        var$7 = 12;
        var$8 = 4;
        var$9 = 8;
        $var4 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
    case 1:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var5, var$5, var$6, var$7, var$8, var$9, var$11, var$12, var$13, var$14, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 0;
        var$5 = 1;
        var$6 = 2;
        var$7 = 0;
        var$8 = 7;
        nms_Block_$callClinit();
        var$9 = nms_Block_tilledField.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 4;
        $var5 = 0;
        var$5 = 1;
        var$6 = 5;
        var$7 = 0;
        var$8 = 7;
        var$9 = nms_Block_tilledField.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 3;
    case 3:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 7;
        $var5 = 0;
        var$5 = 1;
        var$6 = 8;
        var$7 = 0;
        var$8 = 7;
        var$9 = nms_Block_tilledField.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 4;
    case 4:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 10;
        $var5 = 0;
        var$5 = 1;
        var$6 = 11;
        var$7 = 0;
        var$8 = 7;
        var$9 = nms_Block_tilledField.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 5;
    case 5:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 0;
        var$5 = 0;
        var$6 = 0;
        var$7 = 0;
        var$8 = 8;
        var$9 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 6;
    case 6:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 6;
        $var5 = 0;
        var$5 = 0;
        var$6 = 6;
        var$7 = 0;
        var$8 = 8;
        var$9 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 7;
    case 7:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 12;
        $var5 = 0;
        var$5 = 0;
        var$6 = 12;
        var$7 = 0;
        var$8 = 8;
        var$9 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 8;
    case 8:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 0;
        var$7 = 0;
        var$8 = 11;
        var$9 = 0;
        var$12 = 0;
        var$14 = nms_Block_wood.$blockID;
        var$11 = 0;
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$14, 0);
        var$15 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$14, 0);
        var$5 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$14, 0);
        var$6 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$14, 0);
        $ptr = 9;
    case 9:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$7, var$8, var$9, var$12, var$13, var$15, var$5, var$6, var$11);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 0;
        var$5 = 8;
        var$6 = 11;
        var$7 = 0;
        var$8 = 8;
        var$9 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 10;
    case 10:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 3;
        $var5 = 0;
        var$5 = 1;
        var$6 = 3;
        var$7 = 0;
        var$8 = 7;
        var$9 = nms_Block_waterMoving.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 11;
    case 11:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 9;
        $var5 = 0;
        var$5 = 1;
        var$6 = 9;
        var$7 = 0;
        var$8 = 7;
        var$9 = nms_Block_waterMoving.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$9, 0);
        var$9 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$9, 0);
        $ptr = 12;
    case 12:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, var$5, var$6, var$7, var$8, var$14, var$11, var$13, var$9, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        var$8 = 6;
        var$12 = 17;
        var$9 = 5;
        while (true) {
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        a: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break a;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break a;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break a;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        b: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break b;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break b;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break b;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break c;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break d;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                break;
            $var4 = $var4 + 1 | 0;
        }
        var$5 = 2;
        $ptr = 24;
        continue main;
    case 13:
        $tmp = nms_ComponentVillage_getAverageGroundLevel($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $this.$field_143015_k = $var4;
        if ($var4 < 0)
            return 1;
        var$17 = $this.$boundingBox;
        var$5 = var$17.$maxY1;
        $var4 = (($var4 - var$5 | 0) + 4 | 0) - 1 | 0;
        var$17.$minX = var$17.$minX + 0 | 0;
        var$17.$minY = var$17.$minY + $var4 | 0;
        var$17.$minZ = var$17.$minZ + 0 | 0;
        var$17.$maxX = var$17.$maxX + 0 | 0;
        var$17.$maxY1 = var$5 + $var4 | 0;
        var$17.$maxZ = var$17.$maxZ + 0 | 0;
        $var5 = 0;
        var$5 = 1;
        var$6 = 0;
        var$7 = 12;
        var$8 = 4;
        var$9 = 8;
        $var4 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
        continue main;
    case 14:
        nms_World_setBlock($par1World, var$13, var$7, var$5, var$14, var$11, $var5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break q;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break r;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$5 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5))
                continue;
            else
                break;
        }
        $var5 = 2;
        continue main;
    case 15:
        nms_StructureComponent_fillCurrentPositionBlocksDownwards($this, $par1World, var$8, var$5, $var5, var$7, $var4, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        while (true) {
            if ($var5 < 13) {
                u: {
                    var$5 = 4;
                    var$7 = $this.$coordBaseMode;
                    switch (var$7) {
                        case 0:
                        case 2:
                            var$9 = $this.$boundingBox.$minX + $var5 | 0;
                            break u;
                        case 1:
                            var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                            break u;
                        case 3:
                            var$9 = $this.$boundingBox.$minX + $var4 | 0;
                            break u;
                        default:
                    }
                    var$9 = $var5;
                }
                if (var$7 != (-1))
                    var$5 = var$5 + $this.$boundingBox.$minY | 0;
                v: {
                    switch (var$7) {
                        case 0:
                            var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                            break v;
                        case 1:
                        case 3:
                            var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                            break v;
                        case 2:
                            var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                            break v;
                        default:
                    }
                    var$12 = $var4;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                    $ptr = 16;
                    continue main;
                }
                var$5 = nms_Block_dirt.$blockID;
                var$7 = (-1);
                var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= 9)
                break;
            $var5 = 0;
        }
        return 1;
    case 16:
        $tmp = nms_World_getBlockId($par1World, var$9, var$5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        var$6 = $tmp;
        var$6 = var$6 ? 0 : 1;
        if (!var$6 && var$5 < 255) {
            var$6 = 0;
            var$7 = 0;
            var$8 = 2;
            $ptr = 17;
            continue main;
        }
        var$5 = nms_Block_dirt.$blockID;
        var$7 = (-1);
        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
        $ptr = 15;
        continue main;
    case 17:
        nms_World_setBlock($par1World, var$9, var$5, var$12, var$6, var$7, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$5 = var$5 + 1 | 0;
        $ptr = 16;
        continue main;
    case 18:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break o;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break p;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 19:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break m;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break n;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 20:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break k;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break l;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 21:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break i;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break j;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 22:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break g;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break h;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 23:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 24;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break e;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break f;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 24:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$7, $var5, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 13) {
                        s: {
                            var$5 = 4;
                            var$7 = $this.$coordBaseMode;
                            switch (var$7) {
                                case 0:
                                case 2:
                                    var$9 = $this.$boundingBox.$minX + $var5 | 0;
                                    break s;
                                case 1:
                                    var$9 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break s;
                                case 3:
                                    var$9 = $this.$boundingBox.$minX + $var4 | 0;
                                    break s;
                                default:
                            }
                            var$9 = $var5;
                        }
                        if (var$7 != (-1))
                            var$5 = var$5 + $this.$boundingBox.$minY | 0;
                        t: {
                            switch (var$7) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break t;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break t;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break t;
                                default:
                            }
                            var$12 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$9, var$5, var$12)) {
                            $ptr = 16;
                            continue main;
                        }
                        var$5 = nms_Block_dirt.$blockID;
                        var$7 = (-1);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$5, 0);
                        var$5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$5, 0);
                        $ptr = 15;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$11 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            $var5 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$5 = $var5 % var$8 | 0;
                if ((($var5 - var$5 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                $var5 = Long_lo(Long_shru(var$16, var$12));
            }
            c: {
                $var5 = var$5 + 2 | 0;
                var$7 = 1;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$11, $var5);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$11, $var5);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$13 = $this.$boundingBox.$minX + 1 | 0;
                        break c;
                    case 1:
                        var$13 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$13 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$13 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$5) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 1 | 0;
                        break d;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$13, var$7, var$5)) {
                $var5 = 2;
                $ptr = 14;
                continue main;
            }
            $var5 = $this.$cropTypeA;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            e: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 18;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            g: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 4 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 4 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 19;
                continue main;
            }
            $var5 = $this.$cropTypeB;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            i: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 20;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            k: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 7 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break k;
                    default:
                }
                var$14 = 7;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 7 | 0;
                        break l;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break l;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 21;
                continue main;
            }
            $var5 = $this.$cropTypeC;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            m: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 8 | 0;
                        break m;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break m;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break m;
                    default:
                }
                var$14 = 8;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 8 | 0;
                        break n;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break n;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 22;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            o: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 10 | 0;
                        break o;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break o;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break o;
                    default:
                }
                var$14 = 10;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 10 | 0;
                        break p;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break p;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 23;
                continue main;
            }
            $var5 = $this.$cropTypeD;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, var$12));
            while (true) {
                var$7 = var$6 % var$8 | 0;
                if (((var$6 - var$7 | 0) + var$9 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, var$12));
            }
            q: {
                var$14 = var$7 + 2 | 0;
                var$6 = 1;
                var$7 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, var$14);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 11 | 0;
                        break q;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break q;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break q;
                    default:
                }
                var$14 = 11;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            r: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break r;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 11 | 0;
                        break r;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break r;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, $var5, var$5, var$6, var$7, var$8, var$9, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
};
function nms_ComponentVillageField2() {
    let a = this; nms_ComponentVillage.call(a);
    a.$cropTypeA0 = 0;
    a.$cropTypeB0 = 0;
}
let nms_ComponentVillageField2__init_ = $this => {
    $this.$field_143015_k = (-1);
},
nms_ComponentVillageField2__init_0 = () => {
    let var_0 = new nms_ComponentVillageField2();
    nms_ComponentVillageField2__init_(var_0);
    return var_0;
},
nms_ComponentVillageField2_func_143012_a = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4;
    var$2 = $this.$field_143015_k;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2789);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2789), var$4);
    var$2 = $this.$villagersSpawned;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2790);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2790), var$4);
    var$2 = (!$this.$field_143014_b ? 0 : 1) << 24 >> 24;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagByte;
    var$4.$name = $rt_s(2167);
    var$4.$data0 = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(2167), var$4);
    var$2 = $this.$cropTypeA0;
    var$3 = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(924);
    var$4.$data = var$2;
    ju_HashMap_putImpl(var$3, $rt_s(924), var$4);
    var$2 = $this.$cropTypeB0;
    $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
    var$4 = new nms_NBTTagInt;
    var$4.$name = $rt_s(2791);
    var$4.$data = var$2;
    ju_HashMap_putImpl($par1NBTTagCompound, $rt_s(2791), var$4);
},
nms_ComponentVillageField2_func_143011_b = ($this, $par1NBTTagCompound) => {
    let var$2, var$3, var$4, var$5, var$6, var$7, var$8;
    a: {
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2789).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2789).$nativeString.length)
                    break a;
                $rt_s(2789).$hashCode1 = (31 * $rt_s(2789).$hashCode1 | 0) + $rt_s(2789).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2789).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            b: {
                var$6 = var$2.$key;
                if ($rt_s(2789) !== var$6) {
                    if ($rt_s(2789) !== var$6) {
                        if (var$6 instanceof jl_String) {
                            var$6 = var$6;
                            var$3 = $rt_s(2789).$nativeString !== var$6.$nativeString ? 0 : 1;
                        } else
                            var$3 = 0;
                    } else
                        var$3 = 1;
                    if (!var$3) {
                        var$3 = 0;
                        break b;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2789) === null) {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        } else {
            c: {
                if (!$rt_s(2789).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2789).$nativeString.length)
                            break c;
                        $rt_s(2789).$hashCode1 = (31 * $rt_s(2789).$hashCode1 | 0) + $rt_s(2789).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2789).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    d: {
                        var$6 = var$2.$key;
                        if ($rt_s(2789) !== var$6) {
                            if ($rt_s(2789) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2789).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break d;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    } else
        var$3 = 0;
    e: {
        $this.$field_143015_k = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2790).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2790).$nativeString.length)
                    break e;
                $rt_s(2790).$hashCode1 = (31 * $rt_s(2790).$hashCode1 | 0) + $rt_s(2790).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2790).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            f: {
                var$6 = var$2.$key;
                if ($rt_s(2790) !== var$6) {
                    if ($rt_s(2790) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2790).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break f;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2790) !== null) {
            g: {
                if (!$rt_s(2790).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2790).$nativeString.length)
                            break g;
                        $rt_s(2790).$hashCode1 = (31 * $rt_s(2790).$hashCode1 | 0) + $rt_s(2790).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2790).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    h: {
                        var$6 = var$2.$key;
                        if ($rt_s(2790) !== var$6) {
                            if ($rt_s(2790) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2790).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break h;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data;
    }
    i: {
        $this.$villagersSpawned = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2167).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2167).$nativeString.length)
                    break i;
                $rt_s(2167).$hashCode1 = (31 * $rt_s(2167).$hashCode1 | 0) + $rt_s(2167).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2167).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            j: {
                var$6 = var$2.$key;
                if ($rt_s(2167) !== var$6) {
                    if ($rt_s(2167) === var$6)
                        var$3 = 1;
                    else if (var$6 instanceof jl_String) {
                        var$6 = var$6;
                        var$3 = $rt_s(2167).$nativeString !== var$6.$nativeString ? 0 : 1;
                    } else
                        var$3 = 0;
                    if (!var$3) {
                        var$3 = 0;
                        break j;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (var$2 === null ? 0 : 1) {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2167) !== null) {
            k: {
                if (!$rt_s(2167).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2167).$nativeString.length)
                            break k;
                        $rt_s(2167).$hashCode1 = (31 * $rt_s(2167).$hashCode1 | 0) + $rt_s(2167).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2167).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
            while (var$2 !== null) {
                if (var$2.$origKeyHash == var$4) {
                    l: {
                        var$6 = var$2.$key;
                        if ($rt_s(2167) !== var$6) {
                            if ($rt_s(2167) === var$6)
                                var$3 = 1;
                            else if (!(var$6 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$6 = var$6;
                                var$3 = $rt_s(2167).$nativeString !== var$6.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break l;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$2 = var$2.$next3;
            }
        } else {
            var$2 = var$2.$elementData.data[0];
            while (var$2 !== null && var$2.$key !== null) {
                var$2 = var$2.$next3;
            }
        }
        var$3 = (var$2 === null ? null : var$2.$value0).$data0;
    } else
        var$3 = 0;
    var$3 = !var$3 ? 0 : 1;
    m: {
        $this.$field_143014_b = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(924).$hashCode1) {
            var$7 = 0;
            while (true) {
                if (var$7 >= $rt_s(924).$nativeString.length)
                    break m;
                $rt_s(924).$hashCode1 = (31 * $rt_s(924).$hashCode1 | 0) + $rt_s(924).$nativeString.charCodeAt(var$7) | 0;
                var$7 = var$7 + 1 | 0;
            }
        }
    }
    var$3 = $rt_s(924).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$3 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$3) {
            n: {
                var$6 = var$2.$key;
                if ($rt_s(924) !== var$6) {
                    if ($rt_s(924) === var$6)
                        var$7 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$7 = 0;
                    else {
                        var$6 = var$6;
                        var$7 = $rt_s(924).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$7) {
                        var$7 = 0;
                        break n;
                    }
                }
                var$7 = 1;
            }
            if (var$7)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        var$2 = $par1NBTTagCompound.$tagMap;
        if ($rt_s(924) === null) {
            var$8 = var$2.$elementData.data[0];
            while (var$8 !== null && var$8.$key !== null) {
                var$8 = var$8.$next3;
            }
        } else {
            o: {
                if (!$rt_s(924).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(924).$nativeString.length)
                            break o;
                        $rt_s(924).$hashCode1 = (31 * $rt_s(924).$hashCode1 | 0) + $rt_s(924).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$7 = $rt_s(924).$hashCode1;
            var$5 = var$2.$elementData.data;
            var$8 = var$5[var$7 & (var$5.length - 1 | 0)];
            while (var$8 !== null) {
                if (var$8.$origKeyHash == var$7) {
                    p: {
                        var$2 = var$8.$key;
                        if ($rt_s(924) !== var$2) {
                            if ($rt_s(924) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(924).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break p;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                var$8 = var$8.$next3;
            }
        }
        var$3 = (var$8 === null ? null : var$8.$value0).$data;
    }
    q: {
        $this.$cropTypeA0 = var$3;
        var$2 = $par1NBTTagCompound.$tagMap;
        if (!$rt_s(2791).$hashCode1) {
            var$3 = 0;
            while (true) {
                if (var$3 >= $rt_s(2791).$nativeString.length)
                    break q;
                $rt_s(2791).$hashCode1 = (31 * $rt_s(2791).$hashCode1 | 0) + $rt_s(2791).$nativeString.charCodeAt(var$3) | 0;
                var$3 = var$3 + 1 | 0;
            }
        }
    }
    var$4 = $rt_s(2791).$hashCode1;
    var$5 = var$2.$elementData.data;
    var$2 = var$5[var$4 & (var$5.length - 1 | 0)];
    while (var$2 !== null) {
        if (var$2.$origKeyHash == var$4) {
            r: {
                var$6 = var$2.$key;
                if ($rt_s(2791) !== var$6) {
                    if ($rt_s(2791) === var$6)
                        var$3 = 1;
                    else if (!(var$6 instanceof jl_String))
                        var$3 = 0;
                    else {
                        var$6 = var$6;
                        var$3 = $rt_s(2791).$nativeString !== var$6.$nativeString ? 0 : 1;
                    }
                    if (!var$3) {
                        var$3 = 0;
                        break r;
                    }
                }
                var$3 = 1;
            }
            if (var$3)
                break;
        }
        var$2 = var$2.$next3;
    }
    if (!(var$2 === null ? 0 : 1))
        var$3 = 0;
    else {
        $par1NBTTagCompound = $par1NBTTagCompound.$tagMap;
        if ($rt_s(2791) === null) {
            $par1NBTTagCompound = $par1NBTTagCompound.$elementData.data[0];
            while ($par1NBTTagCompound !== null && $par1NBTTagCompound.$key !== null) {
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        } else {
            s: {
                if (!$rt_s(2791).$hashCode1) {
                    var$3 = 0;
                    while (true) {
                        if (var$3 >= $rt_s(2791).$nativeString.length)
                            break s;
                        $rt_s(2791).$hashCode1 = (31 * $rt_s(2791).$hashCode1 | 0) + $rt_s(2791).$nativeString.charCodeAt(var$3) | 0;
                        var$3 = var$3 + 1 | 0;
                    }
                }
            }
            var$4 = $rt_s(2791).$hashCode1;
            var$5 = $par1NBTTagCompound.$elementData.data;
            $par1NBTTagCompound = var$5[var$4 & (var$5.length - 1 | 0)];
            while ($par1NBTTagCompound !== null) {
                if ($par1NBTTagCompound.$origKeyHash == var$4) {
                    t: {
                        var$2 = $par1NBTTagCompound.$key;
                        if ($rt_s(2791) !== var$2) {
                            if ($rt_s(2791) === var$2)
                                var$3 = 1;
                            else if (!(var$2 instanceof jl_String))
                                var$3 = 0;
                            else {
                                var$2 = var$2;
                                var$3 = $rt_s(2791).$nativeString !== var$2.$nativeString ? 0 : 1;
                            }
                            if (!var$3) {
                                var$3 = 0;
                                break t;
                            }
                        }
                        var$3 = 1;
                    }
                    if (var$3)
                        break;
                }
                $par1NBTTagCompound = $par1NBTTagCompound.$next3;
            }
        }
        var$3 = ($par1NBTTagCompound === null ? null : $par1NBTTagCompound.$value0).$data;
    }
    $this.$cropTypeB0 = var$3;
},
nms_ComponentVillageField2_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let var$4, var$5, var$6, var$7, var$8, $var5, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$17 = $thread.pop();var$16 = $thread.pop();var$15 = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();$var4 = $thread.pop();$var5 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_143015_k < 0) {
            $ptr = 9;
            continue main;
        }
        var$4 = 0;
        var$5 = 1;
        var$6 = 0;
        var$7 = 6;
        var$8 = 4;
        $var5 = 8;
        $var4 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
    case 1:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$8, $var5, var$11, var$12, var$13, var$14, $var4);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        var$4 = 0;
        var$5 = 1;
        var$6 = 2;
        var$7 = 0;
        var$8 = 7;
        nms_Block_$callClinit();
        $var5 = nms_Block_tilledField.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$8, var$14, var$11, var$13, $var5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 4;
        var$4 = 0;
        var$5 = 1;
        var$6 = 5;
        var$7 = 0;
        var$8 = 7;
        $var5 = nms_Block_tilledField.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        $ptr = 3;
    case 3:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$8, var$14, var$11, var$13, $var5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        var$4 = 0;
        var$5 = 0;
        var$6 = 0;
        var$7 = 0;
        var$8 = 8;
        $var5 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        $ptr = 4;
    case 4:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$8, var$14, var$11, var$13, $var5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 6;
        var$4 = 0;
        var$5 = 0;
        var$6 = 6;
        var$7 = 0;
        var$8 = 8;
        $var5 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        $ptr = 5;
    case 5:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$8, var$14, var$11, var$13, $var5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        var$4 = 0;
        var$5 = 0;
        var$6 = 5;
        var$7 = 0;
        var$15 = 0;
        var$8 = nms_Block_wood.$blockID;
        $var5 = 0;
        var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, 0);
        var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, 0);
        $ptr = 6;
    case 6:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$15, var$12, var$14, var$11, var$8, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        var$4 = 0;
        var$5 = 8;
        var$6 = 5;
        var$7 = 0;
        var$8 = 8;
        $var5 = nms_Block_wood.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        $ptr = 7;
    case 7:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$8, var$14, var$11, var$13, $var5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 3;
        var$4 = 0;
        var$5 = 1;
        var$6 = 3;
        var$7 = 0;
        var$8 = 7;
        $var5 = nms_Block_waterMoving.$blockID;
        var$12 = 0;
        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
        $ptr = 8;
    case 8:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, var$4, var$5, var$6, var$7, var$8, var$14, var$11, var$13, $var5, var$12);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        var$7 = 6;
        $var5 = 17;
        var$8 = 5;
        while (true) {
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 7) {
                        a: {
                            var$12 = 4;
                            var$5 = $this.$coordBaseMode;
                            switch (var$5) {
                                case 0:
                                case 2:
                                    var$7 = $this.$boundingBox.$minX + $var5 | 0;
                                    break a;
                                case 1:
                                    var$7 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break a;
                                case 3:
                                    var$7 = $this.$boundingBox.$minX + $var4 | 0;
                                    break a;
                                default:
                            }
                            var$7 = $var5;
                        }
                        if (var$5 != (-1))
                            var$12 = var$12 + $this.$boundingBox.$minY | 0;
                        b: {
                            switch (var$5) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break b;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break b;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break b;
                                default:
                            }
                            var$8 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$7, var$12, var$8)) {
                            $ptr = 12;
                            continue main;
                        }
                        var$4 = nms_Block_dirt.$blockID;
                        var$5 = (-1);
                        var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                        var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                        $ptr = 11;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            c: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 1 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 1;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 1 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 10;
                continue main;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            e: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 14;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            g: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + 4 | 0;
                        break g;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$11 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 4 | 0;
                        break h;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$6, var$5)) {
                var$4 = 2;
                $ptr = 15;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            i: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                break;
            $var4 = $var4 + 1 | 0;
        }
        var$5 = 2;
        $ptr = 16;
        continue main;
    case 9:
        $tmp = nms_ComponentVillage_getAverageGroundLevel($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $this.$field_143015_k = $var4;
        if ($var4 < 0)
            return 1;
        var$17 = $this.$boundingBox;
        var$5 = var$17.$maxY1;
        $var4 = (($var4 - var$5 | 0) + 4 | 0) - 1 | 0;
        var$17.$minX = var$17.$minX + 0 | 0;
        var$17.$minY = var$17.$minY + $var4 | 0;
        var$17.$minZ = var$17.$minZ + 0 | 0;
        var$17.$maxX = var$17.$maxX + 0 | 0;
        var$17.$maxY1 = var$5 + $var4 | 0;
        var$17.$maxZ = var$17.$maxZ + 0 | 0;
        var$4 = 0;
        var$5 = 1;
        var$6 = 0;
        var$7 = 6;
        var$8 = 4;
        $var5 = 8;
        $var4 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
        continue main;
    case 10:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$12, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            c: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 14;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            e: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + 4 | 0;
                        break e;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$11 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 4 | 0;
                        break f;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$6, var$5)) {
                var$4 = 2;
                $ptr = 15;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            g: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 16;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 7) {
                        k: {
                            var$12 = 4;
                            var$5 = $this.$coordBaseMode;
                            switch (var$5) {
                                case 0:
                                case 2:
                                    var$7 = $this.$boundingBox.$minX + $var5 | 0;
                                    break k;
                                case 1:
                                    var$7 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break k;
                                case 3:
                                    var$7 = $this.$boundingBox.$minX + $var4 | 0;
                                    break k;
                                default:
                            }
                            var$7 = $var5;
                        }
                        if (var$5 != (-1))
                            var$12 = var$12 + $this.$boundingBox.$minY | 0;
                        l: {
                            switch (var$5) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break l;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break l;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break l;
                                default:
                            }
                            var$8 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$7, var$12, var$8)) {
                            $ptr = 12;
                            continue main;
                        }
                        var$4 = nms_Block_dirt.$blockID;
                        var$5 = (-1);
                        var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                        var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                        $ptr = 11;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            i: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 1 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 1;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 1 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 11:
        nms_StructureComponent_fillCurrentPositionBlocksDownwards($this, $par1World, var$6, var$4, $var5, var$5, $var4, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var5 = $var5 + 1 | 0;
        while (true) {
            if ($var5 < 7) {
                m: {
                    var$12 = 4;
                    var$5 = $this.$coordBaseMode;
                    switch (var$5) {
                        case 0:
                        case 2:
                            var$7 = $this.$boundingBox.$minX + $var5 | 0;
                            break m;
                        case 1:
                            var$7 = $this.$boundingBox.$maxX - $var4 | 0;
                            break m;
                        case 3:
                            var$7 = $this.$boundingBox.$minX + $var4 | 0;
                            break m;
                        default:
                    }
                    var$7 = $var5;
                }
                if (var$5 != (-1))
                    var$12 = var$12 + $this.$boundingBox.$minY | 0;
                n: {
                    switch (var$5) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + $var4 | 0;
                            break n;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + $var5 | 0;
                            break n;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - $var4 | 0;
                            break n;
                        default:
                    }
                    var$8 = $var4;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$7, var$12, var$8)) {
                    $ptr = 12;
                    continue main;
                }
                var$4 = nms_Block_dirt.$blockID;
                var$5 = (-1);
                var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 >= 9)
                break;
            $var5 = 0;
        }
        return 1;
    case 12:
        $tmp = nms_World_getBlockId($par1World, var$7, var$12, var$8);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        var$4 = var$4 ? 0 : 1;
        if (!var$4 && var$12 < 255) {
            var$4 = 0;
            var$5 = 0;
            var$6 = 2;
            $ptr = 13;
            continue main;
        }
        var$4 = nms_Block_dirt.$blockID;
        var$5 = (-1);
        var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
        var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
        $ptr = 11;
        continue main;
    case 13:
        nms_World_setBlock($par1World, var$7, var$12, var$8, var$4, var$5, var$6);
        if ($rt_suspending()) {
            break main;
        }
        var$12 = var$12 + 1 | 0;
        $ptr = 12;
        continue main;
    case 14:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$12, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            c: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + 4 | 0;
                        break c;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$11 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 4 | 0;
                        break d;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$6, var$5)) {
                var$4 = 2;
                $ptr = 15;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            e: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 16;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 7) {
                        k: {
                            var$12 = 4;
                            var$5 = $this.$coordBaseMode;
                            switch (var$5) {
                                case 0:
                                case 2:
                                    var$7 = $this.$boundingBox.$minX + $var5 | 0;
                                    break k;
                                case 1:
                                    var$7 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break k;
                                case 3:
                                    var$7 = $this.$boundingBox.$minX + $var4 | 0;
                                    break k;
                                default:
                            }
                            var$7 = $var5;
                        }
                        if (var$5 != (-1))
                            var$12 = var$12 + $this.$boundingBox.$minY | 0;
                        l: {
                            switch (var$5) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break l;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break l;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break l;
                                default:
                            }
                            var$8 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$7, var$12, var$8)) {
                            $ptr = 12;
                            continue main;
                        }
                        var$4 = nms_Block_dirt.$blockID;
                        var$5 = (-1);
                        var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                        var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                        $ptr = 11;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            g: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 1 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 1;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 1 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 10;
                continue main;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            i: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    case 15:
        nms_World_setBlock($par1World, var$11, var$6, var$5, var$12, var$14, var$4);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            c: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 16;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 7) {
                        k: {
                            var$12 = 4;
                            var$5 = $this.$coordBaseMode;
                            switch (var$5) {
                                case 0:
                                case 2:
                                    var$7 = $this.$boundingBox.$minX + $var5 | 0;
                                    break k;
                                case 1:
                                    var$7 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break k;
                                case 3:
                                    var$7 = $this.$boundingBox.$minX + $var4 | 0;
                                    break k;
                                default:
                            }
                            var$7 = $var5;
                        }
                        if (var$5 != (-1))
                            var$12 = var$12 + $this.$boundingBox.$minY | 0;
                        l: {
                            switch (var$5) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break l;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break l;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break l;
                                default:
                            }
                            var$8 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$7, var$12, var$8)) {
                            $ptr = 12;
                            continue main;
                        }
                        var$4 = nms_Block_dirt.$blockID;
                        var$5 = (-1);
                        var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                        var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                        $ptr = 11;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            e: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 1 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 1;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 1 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 10;
                continue main;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            g: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break g;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break h;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 14;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            i: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + 4 | 0;
                        break i;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$11 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 4 | 0;
                        break j;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$5 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$6, var$5))
                continue;
            else
                break;
        }
        var$4 = 2;
        continue main;
    case 16:
        nms_World_setBlock($par1World, var$14, var$6, var$11, var$12, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        while (true) {
            $var4 = $var4 + 1 | 0;
            if ($var4 > 7) {
                $var4 = 0;
                while ($var4 < 9) {
                    $var5 = 0;
                    if ($var5 < 7) {
                        k: {
                            var$12 = 4;
                            var$5 = $this.$coordBaseMode;
                            switch (var$5) {
                                case 0:
                                case 2:
                                    var$7 = $this.$boundingBox.$minX + $var5 | 0;
                                    break k;
                                case 1:
                                    var$7 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break k;
                                case 3:
                                    var$7 = $this.$boundingBox.$minX + $var4 | 0;
                                    break k;
                                default:
                            }
                            var$7 = $var5;
                        }
                        if (var$5 != (-1))
                            var$12 = var$12 + $this.$boundingBox.$minY | 0;
                        l: {
                            switch (var$5) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break l;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + $var5 | 0;
                                    break l;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break l;
                                default:
                            }
                            var$8 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$7, var$12, var$8)) {
                            $ptr = 12;
                            continue main;
                        }
                        var$4 = nms_Block_dirt.$blockID;
                        var$5 = (-1);
                        var$6 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                        var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                        $ptr = 11;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                return 1;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            c: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 1 | 0;
                        break c;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break c;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break c;
                    default:
                }
                var$14 = 1;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 1 | 0;
                        break d;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break d;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 10;
                continue main;
            }
            var$4 = $this.$cropTypeA0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            e: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 2 | 0;
                        break e;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break e;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break e;
                    default:
                }
                var$14 = 2;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 2 | 0;
                        break f;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break f;
                    default:
                }
                var$11 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11)) {
                var$5 = 2;
                $ptr = 14;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            g: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + 4 | 0;
                        break g;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - $var4 | 0;
                        break g;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + $var4 | 0;
                        break g;
                    default:
                }
                var$11 = 4;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$13) {
                    case 0:
                        var$5 = $this.$boundingBox.$minZ + $var4 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$5 = $this.$boundingBox.$minZ + 4 | 0;
                        break h;
                    case 2:
                        var$5 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break h;
                    default:
                }
                var$5 = $var4;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$6, var$5)) {
                var$4 = 2;
                $ptr = 15;
                continue main;
            }
            var$4 = $this.$cropTypeB0;
            var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
            $par2Random.$seed = var$16;
            var$6 = Long_lo(Long_shru(var$16, $var5));
            while (true) {
                var$12 = var$6 % var$7 | 0;
                if (((var$6 - var$12 | 0) + var$8 | 0) >= 0)
                    break;
                var$16 = Long_and(Long_add(Long_mul($par2Random.$seed, Long_create(3740067437, 5)), Long_fromInt(11)), Long_create(4294967295, 65535));
                $par2Random.$seed = var$16;
                var$6 = Long_lo(Long_shru(var$16, $var5));
            }
            i: {
                var$14 = var$12 + 2 | 0;
                var$6 = 1;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, var$14);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, var$14);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 5 | 0;
                        break i;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - $var4 | 0;
                        break i;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + $var4 | 0;
                        break i;
                    default:
                }
                var$14 = 5;
            }
            if (var$13 != (-1))
                var$6 = var$6 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$13) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var4 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + 5 | 0;
                        break j;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var4 | 0;
                        break j;
                    default:
                }
                var$11 = $var4;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$6, var$11))
                continue;
            else
                break;
        }
        var$5 = 2;
        continue main;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$8, $var5, $var4, var$11, var$12, var$13, var$14, var$15, var$16, var$17, $ptr);
},
nms_ComponentVillageTorch = $rt_classWithoutFields(nms_ComponentVillage),
nms_ComponentVillageTorch__init_ = $this => {
    $this.$field_143015_k = (-1);
},
nms_ComponentVillageTorch__init_0 = () => {
    let var_0 = new nms_ComponentVillageTorch();
    nms_ComponentVillageTorch__init_(var_0);
    return var_0;
},
nms_ComponentVillageTorch_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();var$7 = $thread.pop();var$6 = $thread.pop();var$5 = $thread.pop();var$4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_143015_k < 0) {
            $ptr = 2;
            continue main;
        }
        var$4 = 0;
        var$5 = 0;
        var$6 = 0;
        var$7 = 2;
        var$8 = 3;
        var$9 = 1;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
    case 1:
        a: {
            nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$8, var$9, var$11, var$12, var$13, var$14, var$10);
            if ($rt_suspending()) {
                break main;
            }
            nms_Block_$callClinit();
            var$4 = nms_Block_fence.$blockID;
            var$7 = 0;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            c: {
                var$4 = nms_Block_fence.$blockID;
                var$7 = 1;
                var$8 = 0;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        var$12 = $this.$boundingBox.$minX + 1 | 0;
                        break c;
                    case 1:
                        var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        var$12 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                var$12 = 1;
            }
            if (var$14 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
                var$5 = 2;
                $ptr = 4;
                continue main;
            }
            e: {
                var$4 = nms_Block_fence.$blockID;
                var$7 = 2;
                var$8 = 0;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        var$12 = $this.$boundingBox.$minX + 1 | 0;
                        break e;
                    case 1:
                        var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                        break e;
                    case 3:
                        var$12 = $this.$boundingBox.$minX + var$8 | 0;
                        break e;
                    default:
                }
                var$12 = 1;
            }
            if (var$14 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break f;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break f;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
                var$5 = 2;
                $ptr = 5;
                continue main;
            }
            g: {
                var$4 = nms_Block_cloth.$blockID;
                var$7 = 3;
                var$8 = 0;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 15);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 15);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        var$12 = $this.$boundingBox.$minX + 1 | 0;
                        break g;
                    case 1:
                        var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                        break g;
                    case 3:
                        var$12 = $this.$boundingBox.$minX + var$8 | 0;
                        break g;
                    default:
                }
                var$12 = 1;
            }
            if (var$14 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break h;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break h;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
                var$5 = 2;
                $ptr = 6;
                continue main;
            }
            i: {
                var$4 = nms_Block_torchWood.$blockID;
                var$7 = 3;
                var$8 = 0;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        var$12 = $this.$boundingBox.$minX + 0 | 0;
                        break i;
                    case 1:
                        var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                        break i;
                    case 3:
                        var$12 = $this.$boundingBox.$minX + var$8 | 0;
                        break i;
                    default:
                }
                var$12 = 0;
            }
            if (var$14 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            j: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break j;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break j;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break j;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
                var$5 = 2;
                $ptr = 7;
                continue main;
            }
            k: {
                var$4 = nms_Block_torchWood.$blockID;
                var$7 = 3;
                var$8 = 1;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                var$5 = $this.$coordBaseMode;
                switch (var$5) {
                    case 0:
                    case 2:
                        var$14 = $this.$boundingBox.$minX + 1 | 0;
                        break k;
                    case 1:
                        var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                        break k;
                    case 3:
                        var$14 = $this.$boundingBox.$minX + var$8 | 0;
                        break k;
                    default:
                }
                var$14 = 1;
            }
            if (var$5 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            l: {
                switch (var$5) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break l;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break l;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break l;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$7, var$8)) {
                var$4 = 2;
                $ptr = 8;
                continue main;
            }
            m: {
                var$4 = nms_Block_torchWood.$blockID;
                var$7 = 3;
                var$8 = 0;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        var$5 = $this.$boundingBox.$minX + 2 | 0;
                        break m;
                    case 1:
                        var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break m;
                    case 3:
                        var$5 = $this.$boundingBox.$minX + var$8 | 0;
                        break m;
                    default:
                }
                var$5 = 2;
            }
            if (var$14 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            n: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break n;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                        break n;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break n;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
                var$6 = 2;
                $ptr = 9;
                continue main;
            }
            o: {
                var$4 = nms_Block_torchWood.$blockID;
                var$7 = 3;
                var$8 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
                var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        var$5 = $this.$boundingBox.$minX + 1 | 0;
                        break o;
                    case 1:
                        var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break o;
                    case 3:
                        var$5 = $this.$boundingBox.$minX + var$8 | 0;
                        break o;
                    default:
                }
                var$5 = 1;
            }
            if (var$14 != (-1))
                var$7 = var$7 + $this.$boundingBox.$minY | 0;
            p: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break p;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break p;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break p;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
                return 1;
            var$6 = 2;
            $ptr = 10;
            continue main;
        }
        var$6 = 2;
        $ptr = 3;
        continue main;
    case 2:
        $tmp = nms_ComponentVillage_getAverageGroundLevel($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        var$4 = $tmp;
        $this.$field_143015_k = var$4;
        if (var$4 < 0)
            return 1;
        $par2Random = $this.$boundingBox;
        var$6 = $par2Random.$maxY1;
        var$4 = ((var$4 - var$6 | 0) + 4 | 0) - 1 | 0;
        $par2Random.$minX = $par2Random.$minX + 0 | 0;
        $par2Random.$minY = $par2Random.$minY + var$4 | 0;
        $par2Random.$minZ = $par2Random.$minZ + 0 | 0;
        $par2Random.$maxX = $par2Random.$maxX + 0 | 0;
        $par2Random.$maxY1 = var$6 + var$4 | 0;
        $par2Random.$maxZ = $par2Random.$maxZ + 0 | 0;
        var$4 = 0;
        var$5 = 0;
        var$6 = 0;
        var$7 = 2;
        var$8 = 3;
        var$9 = 1;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
        continue main;
    case 3:
        nms_World_setBlock($par1World, var$5, var$7, var$8, var$9, var$4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_fence.$blockID;
            var$7 = 1;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$12 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 4;
            continue main;
        }
        c: {
            var$4 = nms_Block_fence.$blockID;
            var$7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            var$12 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 5;
            continue main;
        }
        e: {
            var$4 = nms_Block_cloth.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 15);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 15);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 1 | 0;
                    break e;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            var$12 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 6;
            continue main;
        }
        g: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 0 | 0;
                    break g;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            var$12 = 0;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 7;
            continue main;
        }
        i: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$5 = $this.$coordBaseMode;
            switch (var$5) {
                case 0:
                case 2:
                    var$14 = $this.$boundingBox.$minX + 1 | 0;
                    break i;
                case 1:
                    var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                    break i;
                case 3:
                    var$14 = $this.$boundingBox.$minX + var$8 | 0;
                    break i;
                default:
            }
            var$14 = 1;
        }
        if (var$5 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        j: {
            switch (var$5) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break j;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break j;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break j;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$7, var$8)) {
            var$4 = 2;
            $ptr = 8;
            continue main;
        }
        k: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 2 | 0;
                    break k;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break k;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break k;
                default:
            }
            var$5 = 2;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        l: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break l;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break l;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break l;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            var$6 = 2;
            $ptr = 9;
            continue main;
        }
        m: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break m;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break m;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break m;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        n: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break n;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break n;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break n;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
        continue main;
    case 4:
        nms_World_setBlock($par1World, var$12, var$7, var$8, var$9, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_fence.$blockID;
            var$7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$12 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 5;
            continue main;
        }
        c: {
            var$4 = nms_Block_cloth.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 15);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 15);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            var$12 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 6;
            continue main;
        }
        e: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 0 | 0;
                    break e;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            var$12 = 0;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 7;
            continue main;
        }
        g: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$5 = $this.$coordBaseMode;
            switch (var$5) {
                case 0:
                case 2:
                    var$14 = $this.$boundingBox.$minX + 1 | 0;
                    break g;
                case 1:
                    var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    var$14 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            var$14 = 1;
        }
        if (var$5 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$5) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$7, var$8)) {
            var$4 = 2;
            $ptr = 8;
            continue main;
        }
        i: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 2 | 0;
                    break i;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break i;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break i;
                default:
            }
            var$5 = 2;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        j: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break j;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break j;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break j;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            var$6 = 2;
            $ptr = 9;
            continue main;
        }
        k: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break k;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break k;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break k;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        l: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break l;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break l;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break l;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
        continue main;
    case 5:
        nms_World_setBlock($par1World, var$12, var$7, var$8, var$9, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_cloth.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 15);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 15);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$12 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 6;
            continue main;
        }
        c: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 0 | 0;
                    break c;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            var$12 = 0;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 7;
            continue main;
        }
        e: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$5 = $this.$coordBaseMode;
            switch (var$5) {
                case 0:
                case 2:
                    var$14 = $this.$boundingBox.$minX + 1 | 0;
                    break e;
                case 1:
                    var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    var$14 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            var$14 = 1;
        }
        if (var$5 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$5) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$7, var$8)) {
            var$4 = 2;
            $ptr = 8;
            continue main;
        }
        g: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 2 | 0;
                    break g;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            var$5 = 2;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            var$6 = 2;
            $ptr = 9;
            continue main;
        }
        i: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break i;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break i;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break i;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        j: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break j;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break j;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break j;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
        continue main;
    case 6:
        nms_World_setBlock($par1World, var$12, var$7, var$8, var$9, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 0 | 0;
                    break a;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$12 = 0;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, var$7, var$8)) {
            var$5 = 2;
            $ptr = 7;
            continue main;
        }
        c: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$5 = $this.$coordBaseMode;
            switch (var$5) {
                case 0:
                case 2:
                    var$14 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    var$14 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            var$14 = 1;
        }
        if (var$5 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$5) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$7, var$8)) {
            var$4 = 2;
            $ptr = 8;
            continue main;
        }
        e: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            var$5 = 2;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            var$6 = 2;
            $ptr = 9;
            continue main;
        }
        g: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break g;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
        continue main;
    case 7:
        nms_World_setBlock($par1World, var$12, var$7, var$8, var$9, var$4, var$5);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$5 = $this.$coordBaseMode;
            switch (var$5) {
                case 0:
                case 2:
                    var$14 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$14 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$14 = 1;
        }
        if (var$5 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$5) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, var$7, var$8)) {
            var$4 = 2;
            $ptr = 8;
            continue main;
        }
        c: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            var$5 = 2;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            var$6 = 2;
            $ptr = 9;
            continue main;
        }
        e: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break e;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
        continue main;
    case 8:
        nms_World_setBlock($par1World, var$14, var$7, var$8, var$9, var$12, var$4);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$5 = 2;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8)) {
            var$6 = 2;
            $ptr = 9;
            continue main;
        }
        c: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
        continue main;
    case 9:
        nms_World_setBlock($par1World, var$5, var$7, var$8, var$9, var$4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            var$4 = nms_Block_torchWood.$blockID;
            var$7 = 3;
            var$8 = (-1);
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$4, 0);
            var$4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$5 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    var$5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$5 = 1;
        }
        if (var$14 != (-1))
            var$7 = var$7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$5, var$7, var$8))
            return 1;
        var$6 = 2;
        $ptr = 10;
    case 10:
        nms_World_setBlock($par1World, var$5, var$7, var$8, var$9, var$4, var$6);
        if ($rt_suspending()) {
            break main;
        }
        return 1;
    default: $rt_invalidPointer();
    }}
    $rt_nativeThread().push($this, $par1World, $par2Random, $par3StructureBoundingBox, var$4, var$5, var$6, var$7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr);
},
nms_ComponentVillageHall = $rt_classWithoutFields(nms_ComponentVillage),
nms_ComponentVillageHall__init_ = $this => {
    $this.$field_143015_k = (-1);
},
nms_ComponentVillageHall__init_0 = () => {
    let var_0 = new nms_ComponentVillageHall();
    nms_ComponentVillageHall__init_(var_0);
    return var_0;
},
nms_ComponentVillageHall_addComponentParts = ($this, $par1World, $par2Random, $par3StructureBoundingBox) => {
    let $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$12, var$13, var$14, $ptr, $tmp;
    $ptr = 0;
    if ($rt_resuming()) {
        let $thread = $rt_nativeThread();
        $ptr = $thread.pop();var$14 = $thread.pop();var$13 = $thread.pop();var$12 = $thread.pop();var$11 = $thread.pop();var$10 = $thread.pop();var$9 = $thread.pop();var$8 = $thread.pop();$var7 = $thread.pop();$var6 = $thread.pop();$var5 = $thread.pop();$var4 = $thread.pop();$par3StructureBoundingBox = $thread.pop();$par2Random = $thread.pop();$par1World = $thread.pop();$this = $thread.pop();
    }
    main: while (true) { switch ($ptr) {
    case 0:
        if ($this.$field_143015_k < 0) {
            $ptr = 4;
            continue main;
        }
        $var4 = 1;
        $var5 = 1;
        $var6 = 1;
        $var7 = 7;
        var$8 = 4;
        var$9 = 4;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
    case 1:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$11, var$12, var$13, var$14, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 6;
        $var7 = 8;
        var$8 = 4;
        var$9 = 10;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 2;
    case 2:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$11, var$12, var$13, var$14, var$10);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 2;
        $var5 = 0;
        $var6 = 6;
        $var7 = 8;
        var$8 = 0;
        var$9 = 10;
        nms_Block_$callClinit();
        var$12 = nms_Block_dirt.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 3;
    case 3:
        a: {
            nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = nms_Block_cobblestone.$blockID;
            $var7 = 0;
            var$8 = 6;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    var$12 = $this.$boundingBox.$minX + 6 | 0;
                    break a;
                case 1:
                    var$12 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$12 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$12 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var7, var$8)) {
            $var5 = 2;
            $ptr = 18;
            continue main;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 6;
        $var7 = 2;
        var$8 = 1;
        var$9 = 10;
        var$12 = nms_Block_fence.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 5;
        continue main;
    case 4:
        $tmp = nms_ComponentVillage_getAverageGroundLevel($this, $par1World, $par3StructureBoundingBox);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        $this.$field_143015_k = $var4;
        if ($var4 < 0)
            return 1;
        $par2Random = $this.$boundingBox;
        $var6 = $par2Random.$maxY1;
        $var4 = (($var4 - $var6 | 0) + 7 | 0) - 1 | 0;
        $par2Random.$minX = $par2Random.$minX + 0 | 0;
        $par2Random.$minY = $par2Random.$minY + $var4 | 0;
        $par2Random.$minZ = $par2Random.$minZ + 0 | 0;
        $par2Random.$maxX = $par2Random.$maxX + 0 | 0;
        $par2Random.$maxY1 = $var6 + $var4 | 0;
        $par2Random.$maxZ = $par2Random.$maxZ + 0 | 0;
        $var4 = 1;
        $var5 = 1;
        $var6 = 1;
        $var7 = 7;
        var$8 = 4;
        var$9 = 4;
        var$10 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
        var$14 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
        $ptr = 1;
        continue main;
    case 5:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 8;
        $var5 = 1;
        $var6 = 6;
        $var7 = 8;
        var$8 = 1;
        var$9 = 10;
        var$12 = nms_Block_fence.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 6;
    case 6:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 3;
        $var5 = 1;
        $var6 = 10;
        $var7 = 7;
        var$8 = 1;
        var$9 = 10;
        var$12 = nms_Block_fence.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 7;
    case 7:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 4;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 8;
    case 8:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 0;
        $var6 = 0;
        $var7 = 0;
        var$8 = 3;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 9;
    case 9:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 8;
        $var5 = 0;
        $var6 = 0;
        $var7 = 8;
        var$8 = 3;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 10;
    case 10:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 0;
        $var6 = 0;
        $var7 = 7;
        var$8 = 1;
        var$9 = 0;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 11;
    case 11:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 0;
        $var6 = 5;
        $var7 = 7;
        var$8 = 1;
        var$9 = 5;
        var$12 = nms_Block_cobblestone.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 12;
    case 12:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 2;
        $var6 = 0;
        $var7 = 7;
        var$8 = 3;
        var$9 = 0;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 13;
    case 13:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 1;
        $var5 = 2;
        $var6 = 5;
        $var7 = 7;
        var$8 = 3;
        var$9 = 5;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 14;
    case 14:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 4;
        $var6 = 1;
        $var7 = 8;
        var$8 = 4;
        var$9 = 1;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 15;
    case 15:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 4;
        $var6 = 4;
        $var7 = 8;
        var$8 = 4;
        var$9 = 4;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$11 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$10 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 16;
    case 16:
        nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$11, var$10, var$13, var$12, var$14);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 0;
        $var5 = 5;
        $var6 = 2;
        $var7 = 8;
        var$8 = 5;
        var$9 = 3;
        var$12 = nms_Block_planks.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 17;
    case 17:
        a: {
            nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = nms_Block_planks.$blockID;
            $var7 = 4;
            var$8 = 2;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            $var5 = $this.$coordBaseMode;
            switch ($var5) {
                case 0:
                case 2:
                    var$14 = $this.$boundingBox.$minX + 0 | 0;
                    break a;
                case 1:
                    var$14 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    var$14 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            var$14 = 0;
        }
        if ($var5 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch ($var5) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$14, $var7, var$8)) {
            c: {
                $var4 = nms_Block_planks.$blockID;
                $var7 = 4;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_planks.$blockID;
                    $var7 = 4;
                    var$8 = 2;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    g: {
                        $var4 = nms_Block_planks.$blockID;
                        $var7 = 4;
                        var$8 = 3;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break g;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break g;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break g;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    h: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break h;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break h;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break h;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 2);
                        $var6 = (-1);
                        while ($var6 <= 2) {
                            $var7 = 0;
                            while ($var7 <= 8) {
                                i: {
                                    var$8 = nms_Block_stairsWoodOak.$blockID;
                                    var$9 = 4 + $var6 | 0;
                                    var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                                    var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                                    var$11 = $this.$coordBaseMode;
                                    switch (var$11) {
                                        case 0:
                                        case 2:
                                            var$10 = $this.$boundingBox.$minX + $var7 | 0;
                                            break i;
                                        case 1:
                                            var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                                            break i;
                                        case 3:
                                            var$10 = $this.$boundingBox.$minX + $var6 | 0;
                                            break i;
                                        default:
                                    }
                                    var$10 = $var7;
                                }
                                var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
                                j: {
                                    switch (var$11) {
                                        case 0:
                                            var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                                            break j;
                                        case 1:
                                        case 3:
                                            var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                                            break j;
                                        case 2:
                                            var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                                            break j;
                                        default:
                                    }
                                    var$11 = $var6;
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11)) {
                                    var$14 = 2;
                                    $ptr = 24;
                                    continue main;
                                }
                                k: {
                                    var$8 = nms_Block_stairsWoodOak.$blockID;
                                    var$12 = 5 - $var6 | 0;
                                    var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                                    var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                                    var$13 = $this.$coordBaseMode;
                                    switch (var$13) {
                                        case 0:
                                        case 2:
                                            var$11 = $this.$boundingBox.$minX + $var7 | 0;
                                            break k;
                                        case 1:
                                            var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                                            break k;
                                        case 3:
                                            var$11 = $this.$boundingBox.$minX + var$12 | 0;
                                            break k;
                                        default:
                                    }
                                    var$11 = $var7;
                                }
                                if (var$13 != (-1))
                                    var$9 = var$9 + $this.$boundingBox.$minY | 0;
                                l: {
                                    switch (var$13) {
                                        case 0:
                                            var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                                            break l;
                                        case 1:
                                        case 3:
                                            var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                                            break l;
                                        case 2:
                                            var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                                            break l;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12)) {
                                    var$10 = 2;
                                    $ptr = 26;
                                    continue main;
                                }
                                $var7 = $var7 + 1 | 0;
                            }
                            $var6 = $var6 + 1 | 0;
                        }
                        m: {
                            $var4 = nms_Block_wood.$blockID;
                            $var7 = 2;
                            var$8 = 1;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                    break m;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break m;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break m;
                                default:
                            }
                            $var5 = 0;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        n: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break n;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                    break n;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break n;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            o: {
                                $var4 = nms_Block_wood.$blockID;
                                $var7 = 2;
                                var$8 = 4;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                                        break o;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break o;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break o;
                                    default:
                                }
                                $var5 = 0;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            p: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break p;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                        break p;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break p;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                q: {
                                    $var4 = nms_Block_wood.$blockID;
                                    $var7 = 2;
                                    var$8 = 1;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                            break q;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break q;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break q;
                                        default:
                                    }
                                    $var5 = 8;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                r: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break r;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                            break r;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break r;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    s: {
                                        $var4 = nms_Block_wood.$blockID;
                                        $var7 = 2;
                                        var$8 = 4;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                break s;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break s;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break s;
                                            default:
                                        }
                                        $var5 = 8;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    t: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break t;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                break t;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break t;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        u: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 2;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                                    break u;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break u;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break u;
                                                default:
                                            }
                                            $var5 = 0;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        v: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break v;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                                    break v;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break v;
                                                default:
                                            }
                                        }
                                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            w: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 3;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                                                        break w;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break w;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break w;
                                                    default:
                                                }
                                                $var5 = 0;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            x: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break x;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                                        break x;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break x;
                                                    default:
                                                }
                                            }
                                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                y: {
                                                    $var4 = nms_Block_thinGlass.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 2;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                            break y;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break y;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break y;
                                                        default:
                                                    }
                                                    $var5 = 8;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                z: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break z;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                            break z;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break z;
                                                        default:
                                                    }
                                                }
                                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    ba: {
                                                        $var4 = nms_Block_thinGlass.$blockID;
                                                        $var7 = 2;
                                                        var$8 = 3;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                                break ba;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break ba;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break ba;
                                                            default:
                                                        }
                                                        $var5 = 8;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bb: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bb;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                                break bb;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bb;
                                                            default:
                                                        }
                                                    }
                                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        bc: {
                                                            $var4 = nms_Block_thinGlass.$blockID;
                                                            $var7 = 2;
                                                            var$8 = 5;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                    break bc;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bc;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bc;
                                                                default:
                                                            }
                                                            $var5 = 2;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bd: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bd;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                    break bd;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bd;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 33;
                                                            continue main;
                                                        }
                                                        be: {
                                                            $var4 = nms_Block_thinGlass.$blockID;
                                                            $var7 = 2;
                                                            var$8 = 5;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                                    break be;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break be;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break be;
                                                                default:
                                                            }
                                                            $var5 = 3;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bf: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bf;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                                    break bf;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bf;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 34;
                                                            continue main;
                                                        }
                                                        bg: {
                                                            $var4 = nms_Block_thinGlass.$blockID;
                                                            $var7 = 2;
                                                            var$8 = 0;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                                    break bg;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bg;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bg;
                                                                default:
                                                            }
                                                            $var5 = 5;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bh: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bh;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                                    break bh;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bh;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 35;
                                                            continue main;
                                                        }
                                                        bi: {
                                                            $var4 = nms_Block_thinGlass.$blockID;
                                                            $var7 = 2;
                                                            var$8 = 5;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                                    break bi;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bi;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bi;
                                                                default:
                                                            }
                                                            $var5 = 6;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bj: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bj;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                                    break bj;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bj;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 36;
                                                            continue main;
                                                        }
                                                        bk: {
                                                            $var4 = nms_Block_fence.$blockID;
                                                            $var7 = 1;
                                                            var$8 = 3;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                    break bk;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bk;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bk;
                                                                default:
                                                            }
                                                            $var5 = 2;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bl: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bl;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                    break bl;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bl;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 37;
                                                            continue main;
                                                        }
                                                        bm: {
                                                            $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                                            $var7 = 2;
                                                            var$8 = 3;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                    break bm;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bm;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bm;
                                                                default:
                                                            }
                                                            $var5 = 2;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bn: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bn;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                    break bn;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bn;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 38;
                                                            continue main;
                                                        }
                                                        bo: {
                                                            $var4 = nms_Block_planks.$blockID;
                                                            $var7 = 1;
                                                            var$8 = 4;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                                    break bo;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bo;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bo;
                                                                default:
                                                            }
                                                            $var5 = 1;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bp: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bp;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                                    break bp;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bp;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 39;
                                                            continue main;
                                                        }
                                                        bq: {
                                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                                            $var7 = 1;
                                                            var$8 = 4;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                    break bq;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bq;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bq;
                                                                default:
                                                            }
                                                            $var5 = 2;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        br: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break br;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                    break br;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break br;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 40;
                                                            continue main;
                                                        }
                                                        bs: {
                                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                                            $var7 = 1;
                                                            var$8 = 3;
                                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                            var$14 = $this.$coordBaseMode;
                                                            switch (var$14) {
                                                                case 0:
                                                                case 2:
                                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                                    break bs;
                                                                case 1:
                                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                    break bs;
                                                                case 3:
                                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                    break bs;
                                                                default:
                                                            }
                                                            $var5 = 1;
                                                        }
                                                        if (var$14 != (-1))
                                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                        bt: {
                                                            switch (var$14) {
                                                                case 0:
                                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                    break bt;
                                                                case 1:
                                                                case 3:
                                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                                    break bt;
                                                                case 2:
                                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                    break bt;
                                                                default:
                                                            }
                                                        }
                                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                            $var6 = 2;
                                                            $ptr = 42;
                                                            continue main;
                                                        }
                                                        $var4 = 5;
                                                        $var5 = 0;
                                                        $var6 = 1;
                                                        $var7 = 7;
                                                        var$8 = 0;
                                                        var$9 = 3;
                                                        var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                                        var$14 = 0;
                                                        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                                        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                                        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                                        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                                        $ptr = 41;
                                                        continue main;
                                                    }
                                                    $var6 = 2;
                                                    $ptr = 32;
                                                    continue main;
                                                }
                                                $var6 = 2;
                                                $ptr = 31;
                                                continue main;
                                            }
                                            $var6 = 2;
                                            $ptr = 30;
                                            continue main;
                                        }
                                        $var6 = 2;
                                        $ptr = 29;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 28;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 27;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 25;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 23;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 22;
                    continue main;
                }
                $var6 = 2;
                $ptr = 21;
                continue main;
            }
            $var6 = 2;
            $ptr = 20;
            continue main;
        }
        $var4 = 2;
        $ptr = 19;
        continue main;
    case 18:
        nms_World_setBlock($par1World, var$12, $var7, var$8, var$9, $var4, $var5);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 2;
        $var5 = 1;
        $var6 = 6;
        $var7 = 2;
        var$8 = 1;
        var$9 = 10;
        var$12 = nms_Block_fence.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 5;
        continue main;
    case 19:
        nms_World_setBlock($par1World, var$14, $var7, var$8, var$9, var$12, $var4);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 4;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_planks.$blockID;
                $var7 = 4;
                var$8 = 2;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 8;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_planks.$blockID;
                    $var7 = 4;
                    var$8 = 3;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 2);
                    $var6 = (-1);
                    while ($var6 <= 2) {
                        $var7 = 0;
                        while ($var7 <= 8) {
                            bu: {
                                var$8 = nms_Block_stairsWoodOak.$blockID;
                                var$9 = 4 + $var6 | 0;
                                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                                var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                                var$11 = $this.$coordBaseMode;
                                switch (var$11) {
                                    case 0:
                                    case 2:
                                        var$10 = $this.$boundingBox.$minX + $var7 | 0;
                                        break bu;
                                    case 1:
                                        var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                                        break bu;
                                    case 3:
                                        var$10 = $this.$boundingBox.$minX + $var6 | 0;
                                        break bu;
                                    default:
                                }
                                var$10 = $var7;
                            }
                            var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
                            bv: {
                                switch (var$11) {
                                    case 0:
                                        var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                                        break bv;
                                    case 1:
                                    case 3:
                                        var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                                        break bv;
                                    case 2:
                                        var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                                        break bv;
                                    default:
                                }
                                var$11 = $var6;
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11)) {
                                var$14 = 2;
                                $ptr = 24;
                                continue main;
                            }
                            bw: {
                                var$8 = nms_Block_stairsWoodOak.$blockID;
                                var$12 = 5 - $var6 | 0;
                                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                                var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                                var$13 = $this.$coordBaseMode;
                                switch (var$13) {
                                    case 0:
                                    case 2:
                                        var$11 = $this.$boundingBox.$minX + $var7 | 0;
                                        break bw;
                                    case 1:
                                        var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                                        break bw;
                                    case 3:
                                        var$11 = $this.$boundingBox.$minX + var$12 | 0;
                                        break bw;
                                    default:
                                }
                                var$11 = $var7;
                            }
                            if (var$13 != (-1))
                                var$9 = var$9 + $this.$boundingBox.$minY | 0;
                            bx: {
                                switch (var$13) {
                                    case 0:
                                        var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                                        break bx;
                                    case 1:
                                    case 3:
                                        var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                                        break bx;
                                    case 2:
                                        var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                                        break bx;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12)) {
                                var$10 = 2;
                                $ptr = 26;
                                continue main;
                            }
                            $var7 = $var7 + 1 | 0;
                        }
                        $var6 = $var6 + 1 | 0;
                    }
                    by: {
                        $var4 = nms_Block_wood.$blockID;
                        $var7 = 2;
                        var$8 = 1;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 0 | 0;
                                break by;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break by;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break by;
                            default:
                        }
                        $var5 = 0;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bz: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bz;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                break bz;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bz;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        m: {
                            $var4 = nms_Block_wood.$blockID;
                            $var7 = 2;
                            var$8 = 4;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                    break m;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break m;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break m;
                                default:
                            }
                            $var5 = 0;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        n: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break n;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                    break n;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break n;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            o: {
                                $var4 = nms_Block_wood.$blockID;
                                $var7 = 2;
                                var$8 = 1;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                                        break o;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break o;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break o;
                                    default:
                                }
                                $var5 = 8;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            p: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break p;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                        break p;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break p;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                q: {
                                    $var4 = nms_Block_wood.$blockID;
                                    $var7 = 2;
                                    var$8 = 4;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                            break q;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break q;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break q;
                                        default:
                                    }
                                    $var5 = 8;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                r: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break r;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                            break r;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break r;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    s: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 2;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 0 | 0;
                                                break s;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break s;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break s;
                                            default:
                                        }
                                        $var5 = 0;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    t: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break t;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                                break t;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break t;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        u: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                                    break u;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break u;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break u;
                                                default:
                                            }
                                            $var5 = 0;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        v: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break v;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                                    break v;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break v;
                                                default:
                                            }
                                        }
                                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            w: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 2;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                        break w;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break w;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break w;
                                                    default:
                                                }
                                                $var5 = 8;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            x: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break x;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                        break x;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break x;
                                                    default:
                                                }
                                            }
                                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                y: {
                                                    $var4 = nms_Block_thinGlass.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 3;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                            break y;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break y;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break y;
                                                        default:
                                                    }
                                                    $var5 = 8;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                z: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break z;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                            break z;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break z;
                                                        default:
                                                    }
                                                }
                                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    ba: {
                                                        $var4 = nms_Block_thinGlass.$blockID;
                                                        $var7 = 2;
                                                        var$8 = 5;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                break ba;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break ba;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break ba;
                                                            default:
                                                        }
                                                        $var5 = 2;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bb: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bb;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                break bb;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bb;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 33;
                                                        continue main;
                                                    }
                                                    bc: {
                                                        $var4 = nms_Block_thinGlass.$blockID;
                                                        $var7 = 2;
                                                        var$8 = 5;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                                break bc;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bc;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bc;
                                                            default:
                                                        }
                                                        $var5 = 3;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bd: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bd;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                                break bd;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bd;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 34;
                                                        continue main;
                                                    }
                                                    be: {
                                                        $var4 = nms_Block_thinGlass.$blockID;
                                                        $var7 = 2;
                                                        var$8 = 0;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                                break be;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break be;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break be;
                                                            default:
                                                        }
                                                        $var5 = 5;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bf: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bf;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                                break bf;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bf;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 35;
                                                        continue main;
                                                    }
                                                    bg: {
                                                        $var4 = nms_Block_thinGlass.$blockID;
                                                        $var7 = 2;
                                                        var$8 = 5;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                                break bg;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bg;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bg;
                                                            default:
                                                        }
                                                        $var5 = 6;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bh: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bh;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                                break bh;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bh;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 36;
                                                        continue main;
                                                    }
                                                    bi: {
                                                        $var4 = nms_Block_fence.$blockID;
                                                        $var7 = 1;
                                                        var$8 = 3;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                break bi;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bi;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bi;
                                                            default:
                                                        }
                                                        $var5 = 2;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bj: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bj;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                break bj;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bj;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 37;
                                                        continue main;
                                                    }
                                                    bk: {
                                                        $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                                        $var7 = 2;
                                                        var$8 = 3;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                break bk;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bk;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bk;
                                                            default:
                                                        }
                                                        $var5 = 2;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bl: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bl;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                break bl;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bl;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 38;
                                                        continue main;
                                                    }
                                                    bm: {
                                                        $var4 = nms_Block_planks.$blockID;
                                                        $var7 = 1;
                                                        var$8 = 4;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                                break bm;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bm;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bm;
                                                            default:
                                                        }
                                                        $var5 = 1;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bn: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bn;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                                break bn;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bn;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 39;
                                                        continue main;
                                                    }
                                                    bo: {
                                                        $var4 = nms_Block_stairsWoodOak.$blockID;
                                                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                                        $var7 = 1;
                                                        var$8 = 4;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                                break bo;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bo;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bo;
                                                            default:
                                                        }
                                                        $var5 = 2;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    bp: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break bp;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                                break bp;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break bp;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 40;
                                                        continue main;
                                                    }
                                                    bq: {
                                                        $var4 = nms_Block_stairsWoodOak.$blockID;
                                                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                                        $var7 = 1;
                                                        var$8 = 3;
                                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                        var$14 = $this.$coordBaseMode;
                                                        switch (var$14) {
                                                            case 0:
                                                            case 2:
                                                                $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                                break bq;
                                                            case 1:
                                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                                break bq;
                                                            case 3:
                                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                                break bq;
                                                            default:
                                                        }
                                                        $var5 = 1;
                                                    }
                                                    if (var$14 != (-1))
                                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                    br: {
                                                        switch (var$14) {
                                                            case 0:
                                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                                break br;
                                                            case 1:
                                                            case 3:
                                                                var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                                break br;
                                                            case 2:
                                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                                break br;
                                                            default:
                                                        }
                                                    }
                                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                        $var6 = 2;
                                                        $ptr = 42;
                                                        continue main;
                                                    }
                                                    $var4 = 5;
                                                    $var5 = 0;
                                                    $var6 = 1;
                                                    $var7 = 7;
                                                    var$8 = 0;
                                                    var$9 = 3;
                                                    var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                                    var$14 = 0;
                                                    var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                                    var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                                    var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                                    var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                                    $ptr = 41;
                                                    continue main;
                                                }
                                                $var6 = 2;
                                                $ptr = 32;
                                                continue main;
                                            }
                                            $var6 = 2;
                                            $ptr = 31;
                                            continue main;
                                        }
                                        $var6 = 2;
                                        $ptr = 30;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 29;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 28;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 27;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 25;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 23;
                    continue main;
                }
                $var6 = 2;
                $ptr = 22;
                continue main;
            }
            $var6 = 2;
            $ptr = 21;
            continue main;
        }
        $var6 = 2;
        $ptr = 20;
    case 20:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 4;
            var$8 = 2;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 8;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_planks.$blockID;
                $var7 = 4;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 8;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
                $var5 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 2);
                $var6 = (-1);
                while ($var6 <= 2) {
                    $var7 = 0;
                    while ($var7 <= 8) {
                        bA: {
                            var$8 = nms_Block_stairsWoodOak.$blockID;
                            var$9 = 4 + $var6 | 0;
                            var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                            var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                            var$11 = $this.$coordBaseMode;
                            switch (var$11) {
                                case 0:
                                case 2:
                                    var$10 = $this.$boundingBox.$minX + $var7 | 0;
                                    break bA;
                                case 1:
                                    var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                                    break bA;
                                case 3:
                                    var$10 = $this.$boundingBox.$minX + $var6 | 0;
                                    break bA;
                                default:
                            }
                            var$10 = $var7;
                        }
                        var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
                        bB: {
                            switch (var$11) {
                                case 0:
                                    var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                                    break bB;
                                case 1:
                                case 3:
                                    var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break bB;
                                case 2:
                                    var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                                    break bB;
                                default:
                            }
                            var$11 = $var6;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11)) {
                            var$14 = 2;
                            $ptr = 24;
                            continue main;
                        }
                        bC: {
                            var$8 = nms_Block_stairsWoodOak.$blockID;
                            var$12 = 5 - $var6 | 0;
                            var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                            var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                            var$13 = $this.$coordBaseMode;
                            switch (var$13) {
                                case 0:
                                case 2:
                                    var$11 = $this.$boundingBox.$minX + $var7 | 0;
                                    break bC;
                                case 1:
                                    var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                                    break bC;
                                case 3:
                                    var$11 = $this.$boundingBox.$minX + var$12 | 0;
                                    break bC;
                                default:
                            }
                            var$11 = $var7;
                        }
                        if (var$13 != (-1))
                            var$9 = var$9 + $this.$boundingBox.$minY | 0;
                        bD: {
                            switch (var$13) {
                                case 0:
                                    var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                                    break bD;
                                case 1:
                                case 3:
                                    var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break bD;
                                case 2:
                                    var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                                    break bD;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12)) {
                            var$10 = 2;
                            $ptr = 26;
                            continue main;
                        }
                        $var7 = $var7 + 1 | 0;
                    }
                    $var6 = $var6 + 1 | 0;
                }
                bE: {
                    $var4 = nms_Block_wood.$blockID;
                    $var7 = 2;
                    var$8 = 1;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 0 | 0;
                            break bE;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bE;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bE;
                        default:
                    }
                    $var5 = 0;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bF: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bF;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 0 | 0;
                            break bF;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bF;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    by: {
                        $var4 = nms_Block_wood.$blockID;
                        $var7 = 2;
                        var$8 = 4;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 0 | 0;
                                break by;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break by;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break by;
                            default:
                        }
                        $var5 = 0;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bz: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bz;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                break bz;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bz;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        m: {
                            $var4 = nms_Block_wood.$blockID;
                            $var7 = 2;
                            var$8 = 1;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                                    break m;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break m;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break m;
                                default:
                            }
                            $var5 = 8;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        n: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break n;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                    break n;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break n;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            o: {
                                $var4 = nms_Block_wood.$blockID;
                                $var7 = 2;
                                var$8 = 4;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                                        break o;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break o;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break o;
                                    default:
                                }
                                $var5 = 8;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            p: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break p;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                        break p;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break p;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                q: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 2;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 0 | 0;
                                            break q;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break q;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break q;
                                        default:
                                    }
                                    $var5 = 0;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                r: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break r;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                            break r;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break r;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    s: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 0 | 0;
                                                break s;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break s;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break s;
                                            default:
                                        }
                                        $var5 = 0;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    t: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break t;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                                break t;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break t;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        u: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 2;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                    break u;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break u;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break u;
                                                default:
                                            }
                                            $var5 = 8;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        v: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break v;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                    break v;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break v;
                                                default:
                                            }
                                        }
                                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            w: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 3;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                        break w;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break w;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break w;
                                                    default:
                                                }
                                                $var5 = 8;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            x: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break x;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                        break x;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break x;
                                                    default:
                                                }
                                            }
                                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                y: {
                                                    $var4 = nms_Block_thinGlass.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 5;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                            break y;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break y;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break y;
                                                        default:
                                                    }
                                                    $var5 = 2;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                z: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break z;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                            break z;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break z;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 33;
                                                    continue main;
                                                }
                                                ba: {
                                                    $var4 = nms_Block_thinGlass.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 5;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                            break ba;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break ba;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break ba;
                                                        default:
                                                    }
                                                    $var5 = 3;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bb: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bb;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                            break bb;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bb;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 34;
                                                    continue main;
                                                }
                                                bc: {
                                                    $var4 = nms_Block_thinGlass.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 0;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                            break bc;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break bc;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break bc;
                                                        default:
                                                    }
                                                    $var5 = 5;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bd: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bd;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                            break bd;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bd;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 35;
                                                    continue main;
                                                }
                                                be: {
                                                    $var4 = nms_Block_thinGlass.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 5;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                            break be;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break be;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break be;
                                                        default:
                                                    }
                                                    $var5 = 6;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bf: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bf;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                            break bf;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bf;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 36;
                                                    continue main;
                                                }
                                                bg: {
                                                    $var4 = nms_Block_fence.$blockID;
                                                    $var7 = 1;
                                                    var$8 = 3;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                            break bg;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break bg;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break bg;
                                                        default:
                                                    }
                                                    $var5 = 2;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bh: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bh;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                            break bh;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bh;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 37;
                                                    continue main;
                                                }
                                                bi: {
                                                    $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                                    $var7 = 2;
                                                    var$8 = 3;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                            break bi;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break bi;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break bi;
                                                        default:
                                                    }
                                                    $var5 = 2;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bj: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bj;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                            break bj;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bj;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 38;
                                                    continue main;
                                                }
                                                bk: {
                                                    $var4 = nms_Block_planks.$blockID;
                                                    $var7 = 1;
                                                    var$8 = 4;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                            break bk;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break bk;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break bk;
                                                        default:
                                                    }
                                                    $var5 = 1;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bl: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bl;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                            break bl;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bl;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 39;
                                                    continue main;
                                                }
                                                bm: {
                                                    $var4 = nms_Block_stairsWoodOak.$blockID;
                                                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                                    $var7 = 1;
                                                    var$8 = 4;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                            break bm;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break bm;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break bm;
                                                        default:
                                                    }
                                                    $var5 = 2;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bn: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bn;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                            break bn;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bn;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 40;
                                                    continue main;
                                                }
                                                bo: {
                                                    $var4 = nms_Block_stairsWoodOak.$blockID;
                                                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                                    $var7 = 1;
                                                    var$8 = 3;
                                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                    var$14 = $this.$coordBaseMode;
                                                    switch (var$14) {
                                                        case 0:
                                                        case 2:
                                                            $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                            break bo;
                                                        case 1:
                                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                            break bo;
                                                        case 3:
                                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                            break bo;
                                                        default:
                                                    }
                                                    $var5 = 1;
                                                }
                                                if (var$14 != (-1))
                                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                                bp: {
                                                    switch (var$14) {
                                                        case 0:
                                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                            break bp;
                                                        case 1:
                                                        case 3:
                                                            var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                            break bp;
                                                        case 2:
                                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                            break bp;
                                                        default:
                                                    }
                                                }
                                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                    $var6 = 2;
                                                    $ptr = 42;
                                                    continue main;
                                                }
                                                $var4 = 5;
                                                $var5 = 0;
                                                $var6 = 1;
                                                $var7 = 7;
                                                var$8 = 0;
                                                var$9 = 3;
                                                var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                                var$14 = 0;
                                                var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                                var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                                var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                                $ptr = 41;
                                                continue main;
                                            }
                                            $var6 = 2;
                                            $ptr = 32;
                                            continue main;
                                        }
                                        $var6 = 2;
                                        $ptr = 31;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 30;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 29;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 28;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 27;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 25;
                    continue main;
                }
                $var6 = 2;
                $ptr = 23;
                continue main;
            }
            $var6 = 2;
            $ptr = 22;
            continue main;
        }
        $var6 = 2;
        $ptr = 21;
    case 21:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 4;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 8;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 2);
            $var6 = (-1);
            while ($var6 <= 2) {
                $var7 = 0;
                while ($var7 <= 8) {
                    bG: {
                        var$8 = nms_Block_stairsWoodOak.$blockID;
                        var$9 = 4 + $var6 | 0;
                        var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                        var$11 = $this.$coordBaseMode;
                        switch (var$11) {
                            case 0:
                            case 2:
                                var$10 = $this.$boundingBox.$minX + $var7 | 0;
                                break bG;
                            case 1:
                                var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                                break bG;
                            case 3:
                                var$10 = $this.$boundingBox.$minX + $var6 | 0;
                                break bG;
                            default:
                        }
                        var$10 = $var7;
                    }
                    var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
                    bH: {
                        switch (var$11) {
                            case 0:
                                var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                                break bH;
                            case 1:
                            case 3:
                                var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                                break bH;
                            case 2:
                                var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                                break bH;
                            default:
                        }
                        var$11 = $var6;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11)) {
                        var$14 = 2;
                        $ptr = 24;
                        continue main;
                    }
                    bI: {
                        var$8 = nms_Block_stairsWoodOak.$blockID;
                        var$12 = 5 - $var6 | 0;
                        var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                        var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                        var$13 = $this.$coordBaseMode;
                        switch (var$13) {
                            case 0:
                            case 2:
                                var$11 = $this.$boundingBox.$minX + $var7 | 0;
                                break bI;
                            case 1:
                                var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                                break bI;
                            case 3:
                                var$11 = $this.$boundingBox.$minX + var$12 | 0;
                                break bI;
                            default:
                        }
                        var$11 = $var7;
                    }
                    if (var$13 != (-1))
                        var$9 = var$9 + $this.$boundingBox.$minY | 0;
                    bJ: {
                        switch (var$13) {
                            case 0:
                                var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                                break bJ;
                            case 1:
                            case 3:
                                var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                                break bJ;
                            case 2:
                                var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                                break bJ;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12)) {
                        var$10 = 2;
                        $ptr = 26;
                        continue main;
                    }
                    $var7 = $var7 + 1 | 0;
                }
                $var6 = $var6 + 1 | 0;
            }
            bK: {
                $var4 = nms_Block_wood.$blockID;
                $var7 = 2;
                var$8 = 1;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break bK;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bK;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bK;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bL: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bL;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break bL;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bL;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                bE: {
                    $var4 = nms_Block_wood.$blockID;
                    $var7 = 2;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 0 | 0;
                            break bE;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bE;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bE;
                        default:
                    }
                    $var5 = 0;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bF: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bF;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 0 | 0;
                            break bF;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bF;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    by: {
                        $var4 = nms_Block_wood.$blockID;
                        $var7 = 2;
                        var$8 = 1;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break by;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break by;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break by;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bz: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bz;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break bz;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bz;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        m: {
                            $var4 = nms_Block_wood.$blockID;
                            $var7 = 2;
                            var$8 = 4;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                                    break m;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break m;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break m;
                                default:
                            }
                            $var5 = 8;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        n: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break n;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                    break n;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break n;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            o: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 2;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                                        break o;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break o;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break o;
                                    default:
                                }
                                $var5 = 0;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            p: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break p;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                        break p;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break p;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                q: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 3;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 0 | 0;
                                            break q;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break q;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break q;
                                        default:
                                    }
                                    $var5 = 0;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                r: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break r;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                            break r;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break r;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    s: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 2;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                break s;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break s;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break s;
                                            default:
                                        }
                                        $var5 = 8;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    t: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break t;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                break t;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break t;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        u: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                    break u;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break u;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break u;
                                                default:
                                            }
                                            $var5 = 8;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        v: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break v;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                    break v;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break v;
                                                default:
                                            }
                                        }
                                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            w: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 5;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                        break w;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break w;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break w;
                                                    default:
                                                }
                                                $var5 = 2;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            x: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break x;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                        break x;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break x;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 33;
                                                continue main;
                                            }
                                            y: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 5;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                        break y;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break y;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break y;
                                                    default:
                                                }
                                                $var5 = 3;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            z: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break z;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                        break z;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break z;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 34;
                                                continue main;
                                            }
                                            ba: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 0;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                        break ba;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break ba;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break ba;
                                                    default:
                                                }
                                                $var5 = 5;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bb: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bb;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                        break bb;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bb;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 35;
                                                continue main;
                                            }
                                            bc: {
                                                $var4 = nms_Block_thinGlass.$blockID;
                                                $var7 = 2;
                                                var$8 = 5;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                        break bc;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break bc;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break bc;
                                                    default:
                                                }
                                                $var5 = 6;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bd: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bd;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                        break bd;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bd;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 36;
                                                continue main;
                                            }
                                            be: {
                                                $var4 = nms_Block_fence.$blockID;
                                                $var7 = 1;
                                                var$8 = 3;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                        break be;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break be;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break be;
                                                    default:
                                                }
                                                $var5 = 2;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bf: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bf;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                        break bf;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bf;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 37;
                                                continue main;
                                            }
                                            bg: {
                                                $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                                $var7 = 2;
                                                var$8 = 3;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                        break bg;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break bg;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break bg;
                                                    default:
                                                }
                                                $var5 = 2;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bh: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bh;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                        break bh;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bh;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 38;
                                                continue main;
                                            }
                                            bi: {
                                                $var4 = nms_Block_planks.$blockID;
                                                $var7 = 1;
                                                var$8 = 4;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                        break bi;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break bi;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break bi;
                                                    default:
                                                }
                                                $var5 = 1;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bj: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bj;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                        break bj;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bj;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 39;
                                                continue main;
                                            }
                                            bk: {
                                                $var4 = nms_Block_stairsWoodOak.$blockID;
                                                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                                $var7 = 1;
                                                var$8 = 4;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                        break bk;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break bk;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break bk;
                                                    default:
                                                }
                                                $var5 = 2;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bl: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bl;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                        break bl;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bl;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 40;
                                                continue main;
                                            }
                                            bm: {
                                                $var4 = nms_Block_stairsWoodOak.$blockID;
                                                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                                $var7 = 1;
                                                var$8 = 3;
                                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                                var$14 = $this.$coordBaseMode;
                                                switch (var$14) {
                                                    case 0:
                                                    case 2:
                                                        $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                        break bm;
                                                    case 1:
                                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                        break bm;
                                                    case 3:
                                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                        break bm;
                                                    default:
                                                }
                                                $var5 = 1;
                                            }
                                            if (var$14 != (-1))
                                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                            bn: {
                                                switch (var$14) {
                                                    case 0:
                                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                        break bn;
                                                    case 1:
                                                    case 3:
                                                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                        break bn;
                                                    case 2:
                                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                        break bn;
                                                    default:
                                                }
                                            }
                                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                                $var6 = 2;
                                                $ptr = 42;
                                                continue main;
                                            }
                                            $var4 = 5;
                                            $var5 = 0;
                                            $var6 = 1;
                                            $var7 = 7;
                                            var$8 = 0;
                                            var$9 = 3;
                                            var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                            var$14 = 0;
                                            var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                            var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                            var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                            $ptr = 41;
                                            continue main;
                                        }
                                        $var6 = 2;
                                        $ptr = 32;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 31;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 30;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 29;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 28;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 27;
                    continue main;
                }
                $var6 = 2;
                $ptr = 25;
                continue main;
            }
            $var6 = 2;
            $ptr = 23;
            continue main;
        }
        $var6 = 2;
        $ptr = 22;
    case 22:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 3);
        $var5 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_stairsWoodOak.$blockID, 2);
        $var6 = (-1);
        while ($var6 <= 2) {
            $var7 = 0;
            while ($var7 <= 8) {
                bM: {
                    var$8 = nms_Block_stairsWoodOak.$blockID;
                    var$9 = 4 + $var6 | 0;
                    var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                    var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                    var$11 = $this.$coordBaseMode;
                    switch (var$11) {
                        case 0:
                        case 2:
                            var$10 = $this.$boundingBox.$minX + $var7 | 0;
                            break bM;
                        case 1:
                            var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                            break bM;
                        case 3:
                            var$10 = $this.$boundingBox.$minX + $var6 | 0;
                            break bM;
                        default:
                    }
                    var$10 = $var7;
                }
                var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
                bN: {
                    switch (var$11) {
                        case 0:
                            var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                            break bN;
                        case 1:
                        case 3:
                            var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                            break bN;
                        case 2:
                            var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break bN;
                        default:
                    }
                    var$11 = $var6;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11)) {
                    var$14 = 2;
                    $ptr = 24;
                    continue main;
                }
                bO: {
                    var$8 = nms_Block_stairsWoodOak.$blockID;
                    var$12 = 5 - $var6 | 0;
                    var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                    var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                    var$13 = $this.$coordBaseMode;
                    switch (var$13) {
                        case 0:
                        case 2:
                            var$11 = $this.$boundingBox.$minX + $var7 | 0;
                            break bO;
                        case 1:
                            var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                            break bO;
                        case 3:
                            var$11 = $this.$boundingBox.$minX + var$12 | 0;
                            break bO;
                        default:
                    }
                    var$11 = $var7;
                }
                if (var$13 != (-1))
                    var$9 = var$9 + $this.$boundingBox.$minY | 0;
                bP: {
                    switch (var$13) {
                        case 0:
                            var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                            break bP;
                        case 1:
                        case 3:
                            var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                            break bP;
                        case 2:
                            var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                            break bP;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12)) {
                    var$10 = 2;
                    $ptr = 26;
                    continue main;
                }
                $var7 = $var7 + 1 | 0;
            }
            $var6 = $var6 + 1 | 0;
        }
        bQ: {
            $var4 = nms_Block_wood.$blockID;
            $var7 = 2;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break bQ;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bQ;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bQ;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bR: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bR;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break bR;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bR;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            bK: {
                $var4 = nms_Block_wood.$blockID;
                $var7 = 2;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break bK;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bK;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bK;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bL: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bL;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break bL;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bL;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                bE: {
                    $var4 = nms_Block_wood.$blockID;
                    $var7 = 2;
                    var$8 = 1;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break bE;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bE;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bE;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bF: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bF;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break bF;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bF;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    by: {
                        $var4 = nms_Block_wood.$blockID;
                        $var7 = 2;
                        var$8 = 4;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break by;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break by;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break by;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bz: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bz;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break bz;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bz;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        m: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 2;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                    break m;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break m;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break m;
                                default:
                            }
                            $var5 = 0;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        n: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break n;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                    break n;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break n;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            o: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                                        break o;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break o;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break o;
                                    default:
                                }
                                $var5 = 0;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            p: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break p;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                        break p;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break p;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                q: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 2;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                            break q;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break q;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break q;
                                        default:
                                    }
                                    $var5 = 8;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                r: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break r;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                            break r;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break r;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    s: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                break s;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break s;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break s;
                                            default:
                                        }
                                        $var5 = 8;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    t: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break t;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                break t;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break t;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        u: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break u;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break u;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break u;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        v: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break v;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break v;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break v;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 33;
                                            continue main;
                                        }
                                        w: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                    break w;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break w;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break w;
                                                default:
                                            }
                                            $var5 = 3;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        x: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break x;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                    break x;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break x;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 34;
                                            continue main;
                                        }
                                        y: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 0;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                    break y;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break y;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break y;
                                                default:
                                            }
                                            $var5 = 5;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        z: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break z;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                    break z;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break z;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        ba: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                    break ba;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break ba;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break ba;
                                                default:
                                            }
                                            $var5 = 6;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        bb: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break bb;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                    break bb;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break bb;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        bc: {
                                            $var4 = nms_Block_fence.$blockID;
                                            $var7 = 1;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break bc;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break bc;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break bc;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        bd: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break bd;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break bd;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break bd;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 37;
                                            continue main;
                                        }
                                        be: {
                                            $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                            $var7 = 2;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break be;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break be;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break be;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        bf: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break bf;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break bf;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break bf;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 38;
                                            continue main;
                                        }
                                        bg: {
                                            $var4 = nms_Block_planks.$blockID;
                                            $var7 = 1;
                                            var$8 = 4;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                    break bg;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break bg;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break bg;
                                                default:
                                            }
                                            $var5 = 1;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        bh: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break bh;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                    break bh;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break bh;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 39;
                                            continue main;
                                        }
                                        bi: {
                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                            $var7 = 1;
                                            var$8 = 4;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break bi;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break bi;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break bi;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        bj: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break bj;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break bj;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break bj;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 40;
                                            continue main;
                                        }
                                        bk: {
                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                            $var7 = 1;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                    break bk;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break bk;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break bk;
                                                default:
                                            }
                                            $var5 = 1;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        bl: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break bl;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                    break bl;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break bl;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 42;
                                            continue main;
                                        }
                                        $var4 = 5;
                                        $var5 = 0;
                                        $var6 = 1;
                                        $var7 = 7;
                                        var$8 = 0;
                                        var$9 = 3;
                                        var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                        var$14 = 0;
                                        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                        $ptr = 41;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 32;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 31;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 30;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 29;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 28;
                    continue main;
                }
                $var6 = 2;
                $ptr = 27;
                continue main;
            }
            $var6 = 2;
            $ptr = 25;
            continue main;
        }
        $var6 = 2;
        $ptr = 23;
    case 23:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_wood.$blockID;
            $var7 = 2;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_wood.$blockID;
                $var7 = 2;
                var$8 = 1;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 8;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_wood.$blockID;
                    $var7 = 2;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    g: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 2;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 0 | 0;
                                break g;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break g;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break g;
                            default:
                        }
                        $var5 = 0;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    h: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break h;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                break h;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break h;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        bS: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 3;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                    break bS;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bS;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bS;
                                default:
                            }
                            $var5 = 0;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bT: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bT;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                    break bT;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bT;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            bU: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 2;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                                        break bU;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break bU;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break bU;
                                    default:
                                }
                                $var5 = 8;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            bV: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break bV;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                        break bV;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break bV;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                bW: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 3;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                            break bW;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break bW;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break bW;
                                        default:
                                    }
                                    $var5 = 8;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                bX: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break bX;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                            break bX;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break bX;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    bY: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 5;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                break bY;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break bY;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break bY;
                                            default:
                                        }
                                        $var5 = 2;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    bZ: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break bZ;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                break bZ;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break bZ;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 33;
                                        continue main;
                                    }
                                    b0: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 5;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                break b0;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break b0;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break b0;
                                            default:
                                        }
                                        $var5 = 3;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    b1: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break b1;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                break b1;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break b1;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 34;
                                        continue main;
                                    }
                                    b2: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 0;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                break b2;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break b2;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break b2;
                                            default:
                                        }
                                        $var5 = 5;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    b3: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break b3;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                break b3;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break b3;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 35;
                                        continue main;
                                    }
                                    b4: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 5;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                break b4;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break b4;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break b4;
                                            default:
                                        }
                                        $var5 = 6;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    b5: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break b5;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                break b5;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break b5;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 36;
                                        continue main;
                                    }
                                    b6: {
                                        $var4 = nms_Block_fence.$blockID;
                                        $var7 = 1;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                break b6;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break b6;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break b6;
                                            default:
                                        }
                                        $var5 = 2;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    b7: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break b7;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                break b7;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break b7;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 37;
                                        continue main;
                                    }
                                    b8: {
                                        $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                        $var7 = 2;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                break b8;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break b8;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break b8;
                                            default:
                                        }
                                        $var5 = 2;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    b9: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break b9;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                break b9;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break b9;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 38;
                                        continue main;
                                    }
                                    b$: {
                                        $var4 = nms_Block_planks.$blockID;
                                        $var7 = 1;
                                        var$8 = 4;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                break b$;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break b$;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break b$;
                                            default:
                                        }
                                        $var5 = 1;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    b_: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break b_;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                break b_;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break b_;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 39;
                                        continue main;
                                    }
                                    ca: {
                                        $var4 = nms_Block_stairsWoodOak.$blockID;
                                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                        $var7 = 1;
                                        var$8 = 4;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                break ca;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break ca;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break ca;
                                            default:
                                        }
                                        $var5 = 2;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    cb: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break cb;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                break cb;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break cb;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 40;
                                        continue main;
                                    }
                                    cc: {
                                        $var4 = nms_Block_stairsWoodOak.$blockID;
                                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                        $var7 = 1;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                break cc;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break cc;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break cc;
                                            default:
                                        }
                                        $var5 = 1;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    cd: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break cd;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                break cd;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break cd;
                                            default:
                                        }
                                    }
                                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        $var6 = 2;
                                        $ptr = 42;
                                        continue main;
                                    }
                                    $var4 = 5;
                                    $var5 = 0;
                                    $var6 = 1;
                                    $var7 = 7;
                                    var$8 = 0;
                                    var$9 = 3;
                                    var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                    var$14 = 0;
                                    var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                    var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                    var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                    var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                    $ptr = 41;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 32;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 31;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 30;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 29;
                    continue main;
                }
                $var6 = 2;
                $ptr = 28;
                continue main;
            }
            $var6 = 2;
            $ptr = 27;
            continue main;
        }
        $var6 = 2;
        $ptr = 25;
        continue main;
    case 24:
        nms_World_setBlock($par1World, var$10, var$13, var$11, var$12, var$8, var$14);
        if ($rt_suspending()) {
            break main;
        }
        ce: while (true) {
            cf: {
                var$8 = nms_Block_stairsWoodOak.$blockID;
                var$12 = 5 - $var6 | 0;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + $var7 | 0;
                        break cf;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                        break cf;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + var$12 | 0;
                        break cf;
                    default:
                }
                var$11 = $var7;
            }
            if (var$13 != (-1))
                var$9 = var$9 + $this.$boundingBox.$minY | 0;
            cg: {
                switch (var$13) {
                    case 0:
                        var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                        break cg;
                    case 1:
                    case 3:
                        var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                        break cg;
                    case 2:
                        var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                        break cg;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12)) {
                var$10 = 2;
                $ptr = 26;
                continue main;
            }
            $var7 = $var7 + 1 | 0;
            while ($var7 > 8) {
                $var6 = $var6 + 1 | 0;
                if ($var6 > 2)
                    break ce;
                $var7 = 0;
            }
            bG: {
                var$8 = nms_Block_stairsWoodOak.$blockID;
                var$9 = 4 + $var6 | 0;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                var$11 = $this.$coordBaseMode;
                switch (var$11) {
                    case 0:
                    case 2:
                        var$10 = $this.$boundingBox.$minX + $var7 | 0;
                        break bG;
                    case 1:
                        var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                        break bG;
                    case 3:
                        var$10 = $this.$boundingBox.$minX + $var6 | 0;
                        break bG;
                    default:
                }
                var$10 = $var7;
            }
            var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
            bH: {
                switch (var$11) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                        break bH;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                        break bH;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break bH;
                    default:
                }
                var$11 = $var6;
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11))
                continue;
            else {
                var$14 = 2;
                continue main;
            }
        }
        bI: {
            $var4 = nms_Block_wood.$blockID;
            $var7 = 2;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break bI;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bI;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bI;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bJ: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bJ;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break bJ;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bJ;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            bC: {
                $var4 = nms_Block_wood.$blockID;
                $var7 = 2;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break bC;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bC;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bC;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bD: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bD;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break bD;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bD;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                bw: {
                    $var4 = nms_Block_wood.$blockID;
                    $var7 = 2;
                    var$8 = 1;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break bw;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bw;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bw;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bx: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bx;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break bx;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bx;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    k: {
                        $var4 = nms_Block_wood.$blockID;
                        $var7 = 2;
                        var$8 = 4;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break k;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break k;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break k;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    l: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break l;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break l;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break l;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        ch: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 2;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                    break ch;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break ch;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break ch;
                                default:
                            }
                            $var5 = 0;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        ci: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break ci;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                    break ci;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break ci;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            cj: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                                        break cj;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break cj;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break cj;
                                    default:
                                }
                                $var5 = 0;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            ck: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break ck;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                        break ck;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break ck;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                cl: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 2;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                            break cl;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break cl;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break cl;
                                        default:
                                    }
                                    $var5 = 8;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                cm: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break cm;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                            break cm;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break cm;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    cn: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                break cn;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break cn;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break cn;
                                            default:
                                        }
                                        $var5 = 8;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    co: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break co;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                break co;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break co;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        cp: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cp;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cp;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cp;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cq: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cq;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cq;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cq;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 33;
                                            continue main;
                                        }
                                        cr: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                    break cr;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cr;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cr;
                                                default:
                                            }
                                            $var5 = 3;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cs: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cs;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                    break cs;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cs;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 34;
                                            continue main;
                                        }
                                        ct: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 0;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                    break ct;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break ct;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break ct;
                                                default:
                                            }
                                            $var5 = 5;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cu: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cu;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                    break cu;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cu;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        cv: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                    break cv;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cv;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cv;
                                                default:
                                            }
                                            $var5 = 6;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cw: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cw;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                    break cw;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cw;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        cx: {
                                            $var4 = nms_Block_fence.$blockID;
                                            $var7 = 1;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cx;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cx;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cx;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cy: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cy;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cy;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cy;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 37;
                                            continue main;
                                        }
                                        cz: {
                                            $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                            $var7 = 2;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cz;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cz;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cz;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cA: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cA;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cA;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cA;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 38;
                                            continue main;
                                        }
                                        cB: {
                                            $var4 = nms_Block_planks.$blockID;
                                            $var7 = 1;
                                            var$8 = 4;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                    break cB;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cB;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cB;
                                                default:
                                            }
                                            $var5 = 1;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cC: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cC;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                    break cC;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cC;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 39;
                                            continue main;
                                        }
                                        cD: {
                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                            $var7 = 1;
                                            var$8 = 4;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cD;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cD;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cD;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cE: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cE;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cE;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cE;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 40;
                                            continue main;
                                        }
                                        cF: {
                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                            $var7 = 1;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                    break cF;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cF;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cF;
                                                default:
                                            }
                                            $var5 = 1;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cG: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cG;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                    break cG;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cG;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 42;
                                            continue main;
                                        }
                                        $var4 = 5;
                                        $var5 = 0;
                                        $var6 = 1;
                                        $var7 = 7;
                                        var$8 = 0;
                                        var$9 = 3;
                                        var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                        var$14 = 0;
                                        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                        $ptr = 41;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 32;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 31;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 30;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 29;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 28;
                    continue main;
                }
                $var6 = 2;
                $ptr = 27;
                continue main;
            }
            $var6 = 2;
            $ptr = 25;
            continue main;
        }
        $var6 = 2;
        $ptr = 23;
        continue main;
    case 25:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_wood.$blockID;
            $var7 = 2;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 8;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_wood.$blockID;
                $var7 = 2;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 8;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 2;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 0 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 0;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 0 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    g: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 3;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 0 | 0;
                                break g;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break g;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break g;
                            default:
                        }
                        $var5 = 0;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    h: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break h;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                break h;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break h;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        bS: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 2;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                                    break bS;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bS;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bS;
                                default:
                            }
                            $var5 = 8;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bT: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bT;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                    break bT;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bT;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            bU: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                                        break bU;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break bU;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break bU;
                                    default:
                                }
                                $var5 = 8;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            bV: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break bV;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                        break bV;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break bV;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                bW: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 5;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                            break bW;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break bW;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break bW;
                                        default:
                                    }
                                    $var5 = 2;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                bX: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break bX;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                            break bX;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break bX;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 33;
                                    continue main;
                                }
                                bY: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 5;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 3 | 0;
                                            break bY;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break bY;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break bY;
                                        default:
                                    }
                                    $var5 = 3;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                bZ: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break bZ;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                            break bZ;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break bZ;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 34;
                                    continue main;
                                }
                                b0: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 0;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 5 | 0;
                                            break b0;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break b0;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break b0;
                                        default:
                                    }
                                    $var5 = 5;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                b1: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break b1;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                            break b1;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break b1;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 35;
                                    continue main;
                                }
                                b2: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 5;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                                            break b2;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break b2;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break b2;
                                        default:
                                    }
                                    $var5 = 6;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                b3: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break b3;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                            break b3;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break b3;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 36;
                                    continue main;
                                }
                                b4: {
                                    $var4 = nms_Block_fence.$blockID;
                                    $var7 = 1;
                                    var$8 = 3;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                            break b4;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break b4;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break b4;
                                        default:
                                    }
                                    $var5 = 2;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                b5: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break b5;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                            break b5;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break b5;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 37;
                                    continue main;
                                }
                                b6: {
                                    $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                    $var7 = 2;
                                    var$8 = 3;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                            break b6;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break b6;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break b6;
                                        default:
                                    }
                                    $var5 = 2;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                b7: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break b7;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                            break b7;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break b7;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 38;
                                    continue main;
                                }
                                b8: {
                                    $var4 = nms_Block_planks.$blockID;
                                    $var7 = 1;
                                    var$8 = 4;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 1 | 0;
                                            break b8;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break b8;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break b8;
                                        default:
                                    }
                                    $var5 = 1;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                b9: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break b9;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                            break b9;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break b9;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 39;
                                    continue main;
                                }
                                b$: {
                                    $var4 = nms_Block_stairsWoodOak.$blockID;
                                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                    $var7 = 1;
                                    var$8 = 4;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                                            break b$;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break b$;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break b$;
                                        default:
                                    }
                                    $var5 = 2;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                b_: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break b_;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                            break b_;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break b_;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 40;
                                    continue main;
                                }
                                ca: {
                                    $var4 = nms_Block_stairsWoodOak.$blockID;
                                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                    $var7 = 1;
                                    var$8 = 3;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 1 | 0;
                                            break ca;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break ca;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break ca;
                                        default:
                                    }
                                    $var5 = 1;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                cb: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break cb;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                            break cb;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break cb;
                                        default:
                                    }
                                }
                                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    $var6 = 2;
                                    $ptr = 42;
                                    continue main;
                                }
                                $var4 = 5;
                                $var5 = 0;
                                $var6 = 1;
                                $var7 = 7;
                                var$8 = 0;
                                var$9 = 3;
                                var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                var$14 = 0;
                                var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                $ptr = 41;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 32;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 31;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 30;
                    continue main;
                }
                $var6 = 2;
                $ptr = 29;
                continue main;
            }
            $var6 = 2;
            $ptr = 28;
            continue main;
        }
        $var6 = 2;
        $ptr = 27;
        continue main;
    case 26:
        nms_World_setBlock($par1World, var$11, var$9, var$12, var$14, var$8, var$10);
        if ($rt_suspending()) {
            break main;
        }
        ce: while (true) {
            $var7 = $var7 + 1 | 0;
            while ($var7 > 8) {
                $var6 = $var6 + 1 | 0;
                if ($var6 > 2)
                    break ce;
                $var7 = 0;
            }
            cH: {
                var$8 = nms_Block_stairsWoodOak.$blockID;
                var$9 = 4 + $var6 | 0;
                var$12 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var4);
                var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var4);
                var$11 = $this.$coordBaseMode;
                switch (var$11) {
                    case 0:
                    case 2:
                        var$10 = $this.$boundingBox.$minX + $var7 | 0;
                        break cH;
                    case 1:
                        var$10 = $this.$boundingBox.$maxX - $var6 | 0;
                        break cH;
                    case 3:
                        var$10 = $this.$boundingBox.$minX + $var6 | 0;
                        break cH;
                    default:
                }
                var$10 = $var7;
            }
            var$13 = var$11 == (-1) ? var$9 : var$9 + $this.$boundingBox.$minY | 0;
            c: {
                switch (var$11) {
                    case 0:
                        var$11 = $this.$boundingBox.$minZ + $var6 | 0;
                        break c;
                    case 1:
                    case 3:
                        var$11 = $this.$boundingBox.$minZ + $var7 | 0;
                        break c;
                    case 2:
                        var$11 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break c;
                    default:
                }
                var$11 = $var6;
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$10, var$13, var$11)) {
                var$14 = 2;
                $ptr = 24;
                continue main;
            }
            bG: {
                var$8 = nms_Block_stairsWoodOak.$blockID;
                var$12 = 5 - $var6 | 0;
                var$14 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$8, $var5);
                var$8 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$8, $var5);
                var$13 = $this.$coordBaseMode;
                switch (var$13) {
                    case 0:
                    case 2:
                        var$11 = $this.$boundingBox.$minX + $var7 | 0;
                        break bG;
                    case 1:
                        var$11 = $this.$boundingBox.$maxX - var$12 | 0;
                        break bG;
                    case 3:
                        var$11 = $this.$boundingBox.$minX + var$12 | 0;
                        break bG;
                    default:
                }
                var$11 = $var7;
            }
            if (var$13 != (-1))
                var$9 = var$9 + $this.$boundingBox.$minY | 0;
            bH: {
                switch (var$13) {
                    case 0:
                        var$12 = $this.$boundingBox.$minZ + var$12 | 0;
                        break bH;
                    case 1:
                    case 3:
                        var$12 = $this.$boundingBox.$minZ + $var7 | 0;
                        break bH;
                    case 2:
                        var$12 = $this.$boundingBox.$maxZ - var$12 | 0;
                        break bH;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$11, var$9, var$12))
                continue;
            else {
                var$10 = 2;
                continue main;
            }
        }
        bI: {
            $var4 = nms_Block_wood.$blockID;
            $var7 = 2;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break bI;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bI;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bI;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bJ: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bJ;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break bJ;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bJ;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            bC: {
                $var4 = nms_Block_wood.$blockID;
                $var7 = 2;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break bC;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bC;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bC;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bD: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bD;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break bD;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bD;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                bw: {
                    $var4 = nms_Block_wood.$blockID;
                    $var7 = 2;
                    var$8 = 1;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break bw;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bw;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bw;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bx: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bx;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break bx;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bx;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    k: {
                        $var4 = nms_Block_wood.$blockID;
                        $var7 = 2;
                        var$8 = 4;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break k;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break k;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break k;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    l: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break l;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break l;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break l;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        ch: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 2;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                                    break ch;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break ch;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break ch;
                                default:
                            }
                            $var5 = 0;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        ci: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break ci;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                    break ci;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break ci;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            cj: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                                        break cj;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break cj;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break cj;
                                    default:
                                }
                                $var5 = 0;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            ck: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break ck;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                                        break ck;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break ck;
                                    default:
                                }
                            }
                            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                cl: {
                                    $var4 = nms_Block_thinGlass.$blockID;
                                    $var7 = 2;
                                    var$8 = 2;
                                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                    var$14 = $this.$coordBaseMode;
                                    switch (var$14) {
                                        case 0:
                                        case 2:
                                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                                            break cl;
                                        case 1:
                                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                            break cl;
                                        case 3:
                                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                            break cl;
                                        default:
                                    }
                                    $var5 = 8;
                                }
                                if (var$14 != (-1))
                                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                cm: {
                                    switch (var$14) {
                                        case 0:
                                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                            break cm;
                                        case 1:
                                        case 3:
                                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                            break cm;
                                        case 2:
                                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                            break cm;
                                        default:
                                    }
                                }
                                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                    cn: {
                                        $var4 = nms_Block_thinGlass.$blockID;
                                        $var7 = 2;
                                        var$8 = 3;
                                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                        var$14 = $this.$coordBaseMode;
                                        switch (var$14) {
                                            case 0:
                                            case 2:
                                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                                break cn;
                                            case 1:
                                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                break cn;
                                            case 3:
                                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                break cn;
                                            default:
                                        }
                                        $var5 = 8;
                                    }
                                    if (var$14 != (-1))
                                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                    co: {
                                        switch (var$14) {
                                            case 0:
                                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                break co;
                                            case 1:
                                            case 3:
                                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                                break co;
                                            case 2:
                                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                break co;
                                            default:
                                        }
                                    }
                                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                        cp: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cp;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cp;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cp;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cq: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cq;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cq;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cq;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 33;
                                            continue main;
                                        }
                                        cr: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                                                    break cr;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cr;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cr;
                                                default:
                                            }
                                            $var5 = 3;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cs: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cs;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                                    break cs;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cs;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 34;
                                            continue main;
                                        }
                                        ct: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 0;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                                                    break ct;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break ct;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break ct;
                                                default:
                                            }
                                            $var5 = 5;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cu: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cu;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                                    break cu;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cu;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 35;
                                            continue main;
                                        }
                                        cv: {
                                            $var4 = nms_Block_thinGlass.$blockID;
                                            $var7 = 2;
                                            var$8 = 5;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                                                    break cv;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cv;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cv;
                                                default:
                                            }
                                            $var5 = 6;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cw: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cw;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                                    break cw;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cw;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 36;
                                            continue main;
                                        }
                                        cx: {
                                            $var4 = nms_Block_fence.$blockID;
                                            $var7 = 1;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cx;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cx;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cx;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cy: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cy;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cy;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cy;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 37;
                                            continue main;
                                        }
                                        cz: {
                                            $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                            $var7 = 2;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cz;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cz;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cz;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cA: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cA;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cA;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cA;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 38;
                                            continue main;
                                        }
                                        cB: {
                                            $var4 = nms_Block_planks.$blockID;
                                            $var7 = 1;
                                            var$8 = 4;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                    break cB;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cB;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cB;
                                                default:
                                            }
                                            $var5 = 1;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cC: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cC;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                    break cC;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cC;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 39;
                                            continue main;
                                        }
                                        cD: {
                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                            $var7 = 1;
                                            var$8 = 4;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                                    break cD;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cD;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cD;
                                                default:
                                            }
                                            $var5 = 2;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cE: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cE;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                                    break cE;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cE;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 40;
                                            continue main;
                                        }
                                        cF: {
                                            $var4 = nms_Block_stairsWoodOak.$blockID;
                                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                            $var7 = 1;
                                            var$8 = 3;
                                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                            var$14 = $this.$coordBaseMode;
                                            switch (var$14) {
                                                case 0:
                                                case 2:
                                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                                    break cF;
                                                case 1:
                                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                                    break cF;
                                                case 3:
                                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                                    break cF;
                                                default:
                                            }
                                            $var5 = 1;
                                        }
                                        if (var$14 != (-1))
                                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                                        cG: {
                                            switch (var$14) {
                                                case 0:
                                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                                    break cG;
                                                case 1:
                                                case 3:
                                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                                    break cG;
                                                case 2:
                                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                                    break cG;
                                                default:
                                            }
                                        }
                                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                            $var6 = 2;
                                            $ptr = 42;
                                            continue main;
                                        }
                                        $var4 = 5;
                                        $var5 = 0;
                                        $var6 = 1;
                                        $var7 = 7;
                                        var$8 = 0;
                                        var$9 = 3;
                                        var$12 = nms_Block_stoneDoubleSlab.$blockID;
                                        var$14 = 0;
                                        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                                        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                                        $ptr = 41;
                                        continue main;
                                    }
                                    $var6 = 2;
                                    $ptr = 32;
                                    continue main;
                                }
                                $var6 = 2;
                                $ptr = 31;
                                continue main;
                            }
                            $var6 = 2;
                            $ptr = 30;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 29;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 28;
                    continue main;
                }
                $var6 = 2;
                $ptr = 27;
                continue main;
            }
            $var6 = 2;
            $ptr = 25;
            continue main;
        }
        $var6 = 2;
        $ptr = 23;
        continue main;
    case 27:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_wood.$blockID;
            $var7 = 2;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 8;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 2;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 3;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 0 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 0;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 0 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    g: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 2;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break g;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break g;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break g;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    h: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break h;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break h;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break h;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        bS: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 3;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                                    break bS;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bS;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bS;
                                default:
                            }
                            $var5 = 8;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bT: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bT;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                    break bT;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bT;
                                default:
                            }
                        }
                        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            bU: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 5;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                        break bU;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break bU;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break bU;
                                    default:
                                }
                                $var5 = 2;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            bV: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break bV;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                        break bV;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break bV;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 33;
                                continue main;
                            }
                            bW: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 5;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 3 | 0;
                                        break bW;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break bW;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break bW;
                                    default:
                                }
                                $var5 = 3;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            bX: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break bX;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                        break bX;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break bX;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 34;
                                continue main;
                            }
                            bY: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 0;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 5 | 0;
                                        break bY;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break bY;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break bY;
                                    default:
                                }
                                $var5 = 5;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            bZ: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break bZ;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                        break bZ;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break bZ;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 35;
                                continue main;
                            }
                            b0: {
                                $var4 = nms_Block_thinGlass.$blockID;
                                $var7 = 2;
                                var$8 = 5;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 6 | 0;
                                        break b0;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break b0;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break b0;
                                    default:
                                }
                                $var5 = 6;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            b1: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break b1;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                        break b1;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break b1;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 36;
                                continue main;
                            }
                            b2: {
                                $var4 = nms_Block_fence.$blockID;
                                $var7 = 1;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                        break b2;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break b2;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break b2;
                                    default:
                                }
                                $var5 = 2;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            b3: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break b3;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                        break b3;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break b3;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 37;
                                continue main;
                            }
                            b4: {
                                $var4 = nms_Block_pressurePlatePlanks.$blockID;
                                $var7 = 2;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                        break b4;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break b4;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break b4;
                                    default:
                                }
                                $var5 = 2;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            b5: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break b5;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                        break b5;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break b5;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 38;
                                continue main;
                            }
                            b6: {
                                $var4 = nms_Block_planks.$blockID;
                                $var7 = 1;
                                var$8 = 4;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 1 | 0;
                                        break b6;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break b6;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break b6;
                                    default:
                                }
                                $var5 = 1;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            b7: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break b7;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                        break b7;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break b7;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 39;
                                continue main;
                            }
                            b8: {
                                $var4 = nms_Block_stairsWoodOak.$blockID;
                                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                                $var7 = 1;
                                var$8 = 4;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                                        break b8;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break b8;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break b8;
                                    default:
                                }
                                $var5 = 2;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            b9: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break b9;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                        break b9;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break b9;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 40;
                                continue main;
                            }
                            b$: {
                                $var4 = nms_Block_stairsWoodOak.$blockID;
                                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                                $var7 = 1;
                                var$8 = 3;
                                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                                var$14 = $this.$coordBaseMode;
                                switch (var$14) {
                                    case 0:
                                    case 2:
                                        $var5 = $this.$boundingBox.$minX + 1 | 0;
                                        break b$;
                                    case 1:
                                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                        break b$;
                                    case 3:
                                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                        break b$;
                                    default:
                                }
                                $var5 = 1;
                            }
                            if (var$14 != (-1))
                                $var7 = $var7 + $this.$boundingBox.$minY | 0;
                            b_: {
                                switch (var$14) {
                                    case 0:
                                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                        break b_;
                                    case 1:
                                    case 3:
                                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                        break b_;
                                    case 2:
                                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                        break b_;
                                    default:
                                }
                            }
                            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                                $var6 = 2;
                                $ptr = 42;
                                continue main;
                            }
                            $var4 = 5;
                            $var5 = 0;
                            $var6 = 1;
                            $var7 = 7;
                            var$8 = 0;
                            var$9 = 3;
                            var$12 = nms_Block_stoneDoubleSlab.$blockID;
                            var$14 = 0;
                            var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                            var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                            var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                            $ptr = 41;
                            continue main;
                        }
                        $var6 = 2;
                        $ptr = 32;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 31;
                    continue main;
                }
                $var6 = 2;
                $ptr = 30;
                continue main;
            }
            $var6 = 2;
            $ptr = 29;
            continue main;
        }
        $var6 = 2;
        $ptr = 28;
    case 28:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 2;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 0 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 0;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 0 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 2;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    g: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 3;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 8 | 0;
                                break g;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break g;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break g;
                            default:
                        }
                        $var5 = 8;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    h: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break h;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 8 | 0;
                                break h;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break h;
                            default:
                        }
                    }
                    if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        bS: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 5;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break bS;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bS;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bS;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bT: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bT;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break bT;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bT;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 33;
                            continue main;
                        }
                        bU: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 5;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                                    break bU;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bU;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bU;
                                default:
                            }
                            $var5 = 3;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bV: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bV;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                    break bV;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bV;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 34;
                            continue main;
                        }
                        bW: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 0;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                                    break bW;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bW;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bW;
                                default:
                            }
                            $var5 = 5;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bX: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bX;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                    break bX;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bX;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 35;
                            continue main;
                        }
                        bY: {
                            $var4 = nms_Block_thinGlass.$blockID;
                            $var7 = 2;
                            var$8 = 5;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                                    break bY;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break bY;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break bY;
                                default:
                            }
                            $var5 = 6;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        bZ: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break bZ;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                    break bZ;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break bZ;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 36;
                            continue main;
                        }
                        b0: {
                            $var4 = nms_Block_fence.$blockID;
                            $var7 = 1;
                            var$8 = 3;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break b0;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break b0;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break b0;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        b1: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break b1;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break b1;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break b1;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 37;
                            continue main;
                        }
                        b2: {
                            $var4 = nms_Block_pressurePlatePlanks.$blockID;
                            $var7 = 2;
                            var$8 = 3;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break b2;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break b2;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break b2;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        b3: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break b3;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break b3;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break b3;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 38;
                            continue main;
                        }
                        b4: {
                            $var4 = nms_Block_planks.$blockID;
                            $var7 = 1;
                            var$8 = 4;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                    break b4;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break b4;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break b4;
                                default:
                            }
                            $var5 = 1;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        b5: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break b5;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                    break b5;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break b5;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 39;
                            continue main;
                        }
                        b6: {
                            $var4 = nms_Block_stairsWoodOak.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                            $var7 = 1;
                            var$8 = 4;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break b6;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break b6;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break b6;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        b7: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break b7;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break b7;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break b7;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 40;
                            continue main;
                        }
                        b8: {
                            $var4 = nms_Block_stairsWoodOak.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                            $var7 = 1;
                            var$8 = 3;
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                                    break b8;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break b8;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break b8;
                                default:
                            }
                            $var5 = 1;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        b9: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break b9;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                    break b9;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break b9;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 42;
                            continue main;
                        }
                        $var4 = 5;
                        $var5 = 0;
                        $var6 = 1;
                        $var7 = 7;
                        var$8 = 0;
                        var$9 = 3;
                        var$12 = nms_Block_stoneDoubleSlab.$blockID;
                        var$14 = 0;
                        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                        $ptr = 41;
                        continue main;
                    }
                    $var6 = 2;
                    $ptr = 32;
                    continue main;
                }
                $var6 = 2;
                $ptr = 31;
                continue main;
            }
            $var6 = 2;
            $ptr = 30;
            continue main;
        }
        $var6 = 2;
        $ptr = 29;
    case 29:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 0 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 0;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 0 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 2;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 8;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 3;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 8 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 8;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 8 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    g: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 5;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                break g;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break g;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break g;
                            default:
                        }
                        $var5 = 2;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    h: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break h;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                break h;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break h;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 33;
                        continue main;
                    }
                    bS: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 5;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 3 | 0;
                                break bS;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break bS;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break bS;
                            default:
                        }
                        $var5 = 3;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bT: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bT;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 3 | 0;
                                break bT;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bT;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 34;
                        continue main;
                    }
                    bU: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 0;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 5 | 0;
                                break bU;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break bU;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break bU;
                            default:
                        }
                        $var5 = 5;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bV: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bV;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 5 | 0;
                                break bV;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bV;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 35;
                        continue main;
                    }
                    bW: {
                        $var4 = nms_Block_thinGlass.$blockID;
                        $var7 = 2;
                        var$8 = 5;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 6 | 0;
                                break bW;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break bW;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break bW;
                            default:
                        }
                        $var5 = 6;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bX: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bX;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 6 | 0;
                                break bX;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bX;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 36;
                        continue main;
                    }
                    bY: {
                        $var4 = nms_Block_fence.$blockID;
                        $var7 = 1;
                        var$8 = 3;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                break bY;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break bY;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break bY;
                            default:
                        }
                        $var5 = 2;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    bZ: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break bZ;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                break bZ;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break bZ;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 37;
                        continue main;
                    }
                    b0: {
                        $var4 = nms_Block_pressurePlatePlanks.$blockID;
                        $var7 = 2;
                        var$8 = 3;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                break b0;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break b0;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break b0;
                            default:
                        }
                        $var5 = 2;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    b1: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break b1;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                break b1;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break b1;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 38;
                        continue main;
                    }
                    b2: {
                        $var4 = nms_Block_planks.$blockID;
                        $var7 = 1;
                        var$8 = 4;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 1 | 0;
                                break b2;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break b2;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break b2;
                            default:
                        }
                        $var5 = 1;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    b3: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break b3;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                break b3;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break b3;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 39;
                        continue main;
                    }
                    b4: {
                        $var4 = nms_Block_stairsWoodOak.$blockID;
                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                        $var7 = 1;
                        var$8 = 4;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                break b4;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break b4;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break b4;
                            default:
                        }
                        $var5 = 2;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    b5: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break b5;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                break b5;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break b5;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 40;
                        continue main;
                    }
                    b6: {
                        $var4 = nms_Block_stairsWoodOak.$blockID;
                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                        $var7 = 1;
                        var$8 = 3;
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 1 | 0;
                                break b6;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break b6;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break b6;
                            default:
                        }
                        $var5 = 1;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    b7: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break b7;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 1 | 0;
                                break b7;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break b7;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 42;
                        continue main;
                    }
                    $var4 = 5;
                    $var5 = 0;
                    $var6 = 1;
                    $var7 = 7;
                    var$8 = 0;
                    var$9 = 3;
                    var$12 = nms_Block_stoneDoubleSlab.$blockID;
                    var$14 = 0;
                    var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                    var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                    var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                    var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                    $ptr = 41;
                    continue main;
                }
                $var6 = 2;
                $ptr = 32;
                continue main;
            }
            $var6 = 2;
            $ptr = 31;
            continue main;
        }
        $var6 = 2;
        $ptr = 30;
    case 30:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 2;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 8;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 8 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 8;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 8 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                e: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                            break e;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break e;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break e;
                        default:
                    }
                    $var5 = 2;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break f;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                            break f;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break f;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 33;
                    continue main;
                }
                g: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 3 | 0;
                            break g;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break g;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break g;
                        default:
                    }
                    $var5 = 3;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                h: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break h;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 3 | 0;
                            break h;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break h;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 34;
                    continue main;
                }
                bS: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 0;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 5 | 0;
                            break bS;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bS;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bS;
                        default:
                    }
                    $var5 = 5;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bT: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bT;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 5 | 0;
                            break bT;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bT;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 35;
                    continue main;
                }
                bU: {
                    $var4 = nms_Block_thinGlass.$blockID;
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break bU;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bU;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bU;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bV: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bV;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break bV;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bV;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 36;
                    continue main;
                }
                bW: {
                    $var4 = nms_Block_fence.$blockID;
                    $var7 = 1;
                    var$8 = 3;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                            break bW;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bW;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bW;
                        default:
                    }
                    $var5 = 2;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bX: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bX;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                            break bX;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bX;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 37;
                    continue main;
                }
                bY: {
                    $var4 = nms_Block_pressurePlatePlanks.$blockID;
                    $var7 = 2;
                    var$8 = 3;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                            break bY;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break bY;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break bY;
                        default:
                    }
                    $var5 = 2;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                bZ: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break bZ;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                            break bZ;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break bZ;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 38;
                    continue main;
                }
                b0: {
                    $var4 = nms_Block_planks.$blockID;
                    $var7 = 1;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 1 | 0;
                            break b0;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break b0;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break b0;
                        default:
                    }
                    $var5 = 1;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                b1: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break b1;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 1 | 0;
                            break b1;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break b1;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 39;
                    continue main;
                }
                b2: {
                    $var4 = nms_Block_stairsWoodOak.$blockID;
                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                    $var7 = 1;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                            break b2;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break b2;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break b2;
                        default:
                    }
                    $var5 = 2;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                b3: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break b3;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                            break b3;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break b3;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 40;
                    continue main;
                }
                b4: {
                    $var4 = nms_Block_stairsWoodOak.$blockID;
                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                    $var7 = 1;
                    var$8 = 3;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 1 | 0;
                            break b4;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break b4;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break b4;
                        default:
                    }
                    $var5 = 1;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                b5: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break b5;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 1 | 0;
                            break b5;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break b5;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 42;
                    continue main;
                }
                $var4 = 5;
                $var5 = 0;
                $var6 = 1;
                $var7 = 7;
                var$8 = 0;
                var$9 = 3;
                var$12 = nms_Block_stoneDoubleSlab.$blockID;
                var$14 = 0;
                var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
                var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
                $ptr = 41;
                continue main;
            }
            $var6 = 2;
            $ptr = 32;
            continue main;
        }
        $var6 = 2;
        $ptr = 31;
    case 31:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 8 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 8;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 8 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 5;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                        break c;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break c;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break c;
                    default:
                }
                $var5 = 2;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break d;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                        break d;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break d;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 33;
                continue main;
            }
            e: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 5;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 3 | 0;
                        break e;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break e;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break e;
                    default:
                }
                $var5 = 3;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break f;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 3 | 0;
                        break f;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break f;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 34;
                continue main;
            }
            g: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 0;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 5 | 0;
                        break g;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break g;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break g;
                    default:
                }
                $var5 = 5;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break h;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 5 | 0;
                        break h;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break h;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 35;
                continue main;
            }
            bS: {
                $var4 = nms_Block_thinGlass.$blockID;
                $var7 = 2;
                var$8 = 5;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 6 | 0;
                        break bS;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bS;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bS;
                    default:
                }
                $var5 = 6;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bT: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bT;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 6 | 0;
                        break bT;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bT;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 36;
                continue main;
            }
            bU: {
                $var4 = nms_Block_fence.$blockID;
                $var7 = 1;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                        break bU;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bU;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bU;
                    default:
                }
                $var5 = 2;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bV: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bV;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                        break bV;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bV;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 37;
                continue main;
            }
            bW: {
                $var4 = nms_Block_pressurePlatePlanks.$blockID;
                $var7 = 2;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                        break bW;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bW;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bW;
                    default:
                }
                $var5 = 2;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bX: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bX;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                        break bX;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bX;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 38;
                continue main;
            }
            bY: {
                $var4 = nms_Block_planks.$blockID;
                $var7 = 1;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 1 | 0;
                        break bY;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break bY;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break bY;
                    default:
                }
                $var5 = 1;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            bZ: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break bZ;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break bZ;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break bZ;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 39;
                continue main;
            }
            b0: {
                $var4 = nms_Block_stairsWoodOak.$blockID;
                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                $var7 = 1;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 2 | 0;
                        break b0;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break b0;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break b0;
                    default:
                }
                $var5 = 2;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            b1: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break b1;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 2 | 0;
                        break b1;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break b1;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 40;
                continue main;
            }
            b2: {
                $var4 = nms_Block_stairsWoodOak.$blockID;
                $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
                $var7 = 1;
                var$8 = 3;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 1 | 0;
                        break b2;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break b2;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break b2;
                    default:
                }
                $var5 = 1;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            b3: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break b3;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 1 | 0;
                        break b3;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break b3;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 42;
                continue main;
            }
            $var4 = 5;
            $var5 = 0;
            $var6 = 1;
            $var7 = 7;
            var$8 = 0;
            var$9 = 3;
            var$12 = nms_Block_stoneDoubleSlab.$blockID;
            var$14 = 0;
            var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
            var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
            var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
            var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
            $ptr = 41;
            continue main;
        }
        $var6 = 2;
        $ptr = 32;
    case 32:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 33;
            continue main;
        }
        c: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 3;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 34;
            continue main;
        }
        e: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 5;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 35;
            continue main;
        }
        g: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 36;
            continue main;
        }
        bS: {
            $var4 = nms_Block_fence.$blockID;
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bS;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bS;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bS;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bT: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bT;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bT;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bT;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 37;
            continue main;
        }
        bU: {
            $var4 = nms_Block_pressurePlatePlanks.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bU;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bU;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bU;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bV: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bV;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bV;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bV;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 38;
            continue main;
        }
        bW: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bW;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bW;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bW;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bX: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bX;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bX;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bX;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        bY: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bY;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bY;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bY;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bZ: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bZ;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bZ;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bZ;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        b0: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break b0;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break b0;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break b0;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b1: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b1;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b1;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b1;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 33:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 3 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 3;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 3 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 34;
            continue main;
        }
        c: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 5;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 35;
            continue main;
        }
        e: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 36;
            continue main;
        }
        g: {
            $var4 = nms_Block_fence.$blockID;
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 37;
            continue main;
        }
        bS: {
            $var4 = nms_Block_pressurePlatePlanks.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bS;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bS;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bS;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bT: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bT;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bT;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bT;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 38;
            continue main;
        }
        bU: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bU;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bU;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bU;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bV: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bV;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bV;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bV;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        bW: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bW;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bW;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bW;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bX: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bX;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bX;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bX;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        bY: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bY;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bY;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bY;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bZ: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bZ;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bZ;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bZ;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 34:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 5 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 5;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 5 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 35;
            continue main;
        }
        c: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 36;
            continue main;
        }
        e: {
            $var4 = nms_Block_fence.$blockID;
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 37;
            continue main;
        }
        g: {
            $var4 = nms_Block_pressurePlatePlanks.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 38;
            continue main;
        }
        bS: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bS;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bS;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bS;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bT: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bT;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bT;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bT;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        bU: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bU;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bU;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bU;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bV: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bV;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bV;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bV;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        bW: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bW;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bW;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bW;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bX: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bX;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bX;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bX;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 35:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_thinGlass.$blockID;
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 36;
            continue main;
        }
        c: {
            $var4 = nms_Block_fence.$blockID;
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 37;
            continue main;
        }
        e: {
            $var4 = nms_Block_pressurePlatePlanks.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 38;
            continue main;
        }
        g: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        bS: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bS;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bS;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bS;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bT: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bT;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bT;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bT;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        bU: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bU;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bU;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bU;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bV: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bV;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bV;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bV;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 36:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_fence.$blockID;
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 37;
            continue main;
        }
        c: {
            $var4 = nms_Block_pressurePlatePlanks.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 38;
            continue main;
        }
        e: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        g: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        bS: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break bS;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bS;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bS;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bT: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bT;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break bT;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bT;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 37:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_pressurePlatePlanks.$blockID;
            $var7 = 2;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 38;
            continue main;
        }
        c: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        e: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        g: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 38:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_planks.$blockID;
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 39;
            continue main;
        }
        c: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        e: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 39:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
            $var7 = 1;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 40;
            continue main;
        }
        c: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 40:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_stairsWoodOak.$blockID;
            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 1);
            $var7 = 1;
            var$8 = 3;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 1 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 1;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 1 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 42;
            continue main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
    case 41:
        a: {
            nms_StructureComponent_fillWithMetadataBlocks($this, $par1World, $par3StructureBoundingBox, $var4, $var5, $var6, $var7, var$8, var$9, var$10, var$11, var$13, var$12, var$14);
            if ($rt_suspending()) {
                break main;
            }
            $var4 = nms_Block_stoneDoubleSlab.$blockID;
            $var7 = 1;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 43;
            continue main;
        }
        c: {
            $var4 = nms_Block_stoneDoubleSlab.$blockID;
            $var7 = 1;
            var$8 = 2;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 44;
            continue main;
        }
        e: {
            $var7 = 1;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 45;
            continue main;
        }
        g: {
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 46;
            continue main;
        }
        bS: {
            $var4 = nms_Block_torchWood.$blockID;
            $var7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break bS;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break bS;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break bS;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        bT: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break bT;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break bT;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break bT;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            bU: {
                $var5 = 1;
                $var6 = 0;
                $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$8 = $this.$boundingBox.$minX + 2 | 0;
                        break bU;
                    case 1:
                        var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                        break bU;
                    case 3:
                        var$8 = $this.$boundingBox.$minX + $var6 | 0;
                        break bU;
                    default:
                }
                var$8 = 2;
            }
            if (var$12 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            bV: {
                switch (var$12) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break bV;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break bV;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break bV;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                bW: {
                    $var5 = 0;
                    $var6 = (-1);
                    var$9 = $this.$coordBaseMode;
                    switch (var$9) {
                        case 0:
                        case 2:
                            $var7 = $this.$boundingBox.$minX + 2 | 0;
                            break bW;
                        case 1:
                            $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                            break bW;
                        case 3:
                            $var7 = $this.$boundingBox.$minX + $var6 | 0;
                            break bW;
                        default:
                    }
                    $var7 = 2;
                }
                if (var$9 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                bX: {
                    switch (var$9) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break bX;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 2 | 0;
                            break bX;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break bX;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                    $ptr = 49;
                    continue main;
                }
                if (!0) {
                    cI: {
                        $var5 = (-1);
                        $var6 = (-1);
                        var$9 = $this.$coordBaseMode;
                        switch (var$9) {
                            case 0:
                            case 2:
                                $var7 = $this.$boundingBox.$minX + 2 | 0;
                                break cI;
                            case 1:
                                $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                                break cI;
                            case 3:
                                $var7 = $this.$boundingBox.$minX + $var6 | 0;
                                break cI;
                            default:
                        }
                        $var7 = 2;
                    }
                    if (var$9 != (-1))
                        $var5 = $var5 + $this.$boundingBox.$minY | 0;
                    cJ: {
                        switch (var$9) {
                            case 0:
                                $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                                break cJ;
                            case 1:
                            case 3:
                                $var6 = $this.$boundingBox.$minZ + 2 | 0;
                                break cJ;
                            case 2:
                                $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                                break cJ;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                        $ptr = 51;
                        continue main;
                    }
                    if (0) {
                        cK: {
                            $var4 = nms_Block_stairsCobblestone.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                            $var7 = 0;
                            var$8 = (-1);
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break cK;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break cK;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break cK;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        cL: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break cL;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break cL;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break cL;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 53;
                            continue main;
                        }
                    }
                }
                cM: {
                    $var7 = 1;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cM;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cM;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cM;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cN: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cN;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cN;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cN;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 50;
                    continue main;
                }
                cO: {
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cO;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cO;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cO;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cP: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cP;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cP;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cP;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 52;
                    continue main;
                }
                cQ: {
                    $var4 = nms_Block_torchWood.$blockID;
                    $var7 = 3;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cQ;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cQ;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cQ;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cR: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cR;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cR;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cR;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 54;
                    continue main;
                }
                cS: {
                    $var5 = 1;
                    $var6 = 5;
                    $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                    var$12 = $this.$coordBaseMode;
                    switch (var$12) {
                        case 0:
                        case 2:
                            var$8 = $this.$boundingBox.$minX + 6 | 0;
                            break cS;
                        case 1:
                            var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                            break cS;
                        case 3:
                            var$8 = $this.$boundingBox.$minX + $var6 | 0;
                            break cS;
                        default:
                    }
                    var$8 = 6;
                }
                if (var$12 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                cT: {
                    switch (var$12) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break cT;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 6 | 0;
                            break cT;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break cT;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                    $par2Random = nms_Block_doorWood;
                    $ptr = 55;
                    continue main;
                }
                $var4 = 0;
                while ($var4 < 5) {
                    $var7 = 0;
                    if ($var7 < 9) {
                        cv: {
                            $var5 = 7;
                            var$8 = $this.$coordBaseMode;
                            switch (var$8) {
                                case 0:
                                case 2:
                                    var$12 = $this.$boundingBox.$minX + $var7 | 0;
                                    break cv;
                                case 1:
                                    var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break cv;
                                case 3:
                                    var$12 = $this.$boundingBox.$minX + $var4 | 0;
                                    break cv;
                                default:
                            }
                            var$12 = $var7;
                        }
                        if (var$8 != (-1))
                            $var5 = $var5 + $this.$boundingBox.$minY | 0;
                        cw: {
                            switch (var$8) {
                                case 0:
                                    var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break cw;
                                case 1:
                                case 3:
                                    var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break cw;
                                case 2:
                                    var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break cw;
                                default:
                            }
                            var$14 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                            $ptr = 58;
                            continue main;
                        }
                        $var5 = nms_Block_cobblestone.$blockID;
                        var$8 = (-1);
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                        $ptr = 57;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                $var4 = 4;
                $var5 = 1;
                $var6 = 2;
                $var7 = 2;
                $ptr = 56;
                continue main;
            }
            $par2Random = nms_Block_doorWood;
            $ptr = 48;
            continue main;
        }
        $var6 = 2;
        $ptr = 47;
        continue main;
    case 42:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = 5;
        $var5 = 0;
        $var6 = 1;
        $var7 = 7;
        var$8 = 0;
        var$9 = 3;
        var$12 = nms_Block_stoneDoubleSlab.$blockID;
        var$14 = 0;
        var$10 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$11 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        var$13 = nms_ComponentVillage_getBiomeSpecificBlock($this, var$12, 0);
        var$12 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, var$12, 0);
        $ptr = 41;
        continue main;
    case 43:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_stoneDoubleSlab.$blockID;
            $var7 = 1;
            var$8 = 2;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 44;
            continue main;
        }
        c: {
            $var7 = 1;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 45;
            continue main;
        }
        e: {
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 46;
            continue main;
        }
        g: {
            $var4 = nms_Block_torchWood.$blockID;
            $var7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break g;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break g;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break g;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        h: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break h;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break h;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break h;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            bS: {
                $var5 = 1;
                $var6 = 0;
                $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$8 = $this.$boundingBox.$minX + 2 | 0;
                        break bS;
                    case 1:
                        var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                        break bS;
                    case 3:
                        var$8 = $this.$boundingBox.$minX + $var6 | 0;
                        break bS;
                    default:
                }
                var$8 = 2;
            }
            if (var$12 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            bT: {
                switch (var$12) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break bT;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break bT;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break bT;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                bU: {
                    $var5 = 0;
                    $var6 = (-1);
                    var$9 = $this.$coordBaseMode;
                    switch (var$9) {
                        case 0:
                        case 2:
                            $var7 = $this.$boundingBox.$minX + 2 | 0;
                            break bU;
                        case 1:
                            $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                            break bU;
                        case 3:
                            $var7 = $this.$boundingBox.$minX + $var6 | 0;
                            break bU;
                        default:
                    }
                    $var7 = 2;
                }
                if (var$9 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                bV: {
                    switch (var$9) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break bV;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 2 | 0;
                            break bV;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break bV;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                    $ptr = 49;
                    continue main;
                }
                if (!0) {
                    cU: {
                        $var5 = (-1);
                        $var6 = (-1);
                        var$9 = $this.$coordBaseMode;
                        switch (var$9) {
                            case 0:
                            case 2:
                                $var7 = $this.$boundingBox.$minX + 2 | 0;
                                break cU;
                            case 1:
                                $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                                break cU;
                            case 3:
                                $var7 = $this.$boundingBox.$minX + $var6 | 0;
                                break cU;
                            default:
                        }
                        $var7 = 2;
                    }
                    if (var$9 != (-1))
                        $var5 = $var5 + $this.$boundingBox.$minY | 0;
                    cV: {
                        switch (var$9) {
                            case 0:
                                $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                                break cV;
                            case 1:
                            case 3:
                                $var6 = $this.$boundingBox.$minZ + 2 | 0;
                                break cV;
                            case 2:
                                $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                                break cV;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                        $ptr = 51;
                        continue main;
                    }
                    if (0) {
                        cI: {
                            $var4 = nms_Block_stairsCobblestone.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                            $var7 = 0;
                            var$8 = (-1);
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break cI;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break cI;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break cI;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        cJ: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break cJ;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break cJ;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break cJ;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 53;
                            continue main;
                        }
                    }
                }
                cK: {
                    $var7 = 1;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cK;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cK;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cK;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cL: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cL;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cL;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cL;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 50;
                    continue main;
                }
                cM: {
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cM;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cM;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cM;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cN: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cN;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cN;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cN;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 52;
                    continue main;
                }
                cO: {
                    $var4 = nms_Block_torchWood.$blockID;
                    $var7 = 3;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cO;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cO;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cO;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cP: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cP;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cP;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cP;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 54;
                    continue main;
                }
                cQ: {
                    $var5 = 1;
                    $var6 = 5;
                    $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                    var$12 = $this.$coordBaseMode;
                    switch (var$12) {
                        case 0:
                        case 2:
                            var$8 = $this.$boundingBox.$minX + 6 | 0;
                            break cQ;
                        case 1:
                            var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                            break cQ;
                        case 3:
                            var$8 = $this.$boundingBox.$minX + $var6 | 0;
                            break cQ;
                        default:
                    }
                    var$8 = 6;
                }
                if (var$12 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                cR: {
                    switch (var$12) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break cR;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 6 | 0;
                            break cR;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break cR;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                    $par2Random = nms_Block_doorWood;
                    $ptr = 55;
                    continue main;
                }
                $var4 = 0;
                while ($var4 < 5) {
                    $var7 = 0;
                    if ($var7 < 9) {
                        ct: {
                            $var5 = 7;
                            var$8 = $this.$coordBaseMode;
                            switch (var$8) {
                                case 0:
                                case 2:
                                    var$12 = $this.$boundingBox.$minX + $var7 | 0;
                                    break ct;
                                case 1:
                                    var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break ct;
                                case 3:
                                    var$12 = $this.$boundingBox.$minX + $var4 | 0;
                                    break ct;
                                default:
                            }
                            var$12 = $var7;
                        }
                        if (var$8 != (-1))
                            $var5 = $var5 + $this.$boundingBox.$minY | 0;
                        cu: {
                            switch (var$8) {
                                case 0:
                                    var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break cu;
                                case 1:
                                case 3:
                                    var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break cu;
                                case 2:
                                    var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break cu;
                                default:
                            }
                            var$14 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                            $ptr = 58;
                            continue main;
                        }
                        $var5 = nms_Block_cobblestone.$blockID;
                        var$8 = (-1);
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                        $ptr = 57;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                $var4 = 4;
                $var5 = 1;
                $var6 = 2;
                $var7 = 2;
                $ptr = 56;
                continue main;
            }
            $par2Random = nms_Block_doorWood;
            $ptr = 48;
            continue main;
        }
        $var6 = 2;
        $ptr = 47;
        continue main;
    case 44:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var7 = 1;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 45;
            continue main;
        }
        c: {
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 46;
            continue main;
        }
        e: {
            $var4 = nms_Block_torchWood.$blockID;
            $var7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break e;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break e;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break e;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        f: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break f;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break f;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break f;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            g: {
                $var5 = 1;
                $var6 = 0;
                $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$8 = $this.$boundingBox.$minX + 2 | 0;
                        break g;
                    case 1:
                        var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                        break g;
                    case 3:
                        var$8 = $this.$boundingBox.$minX + $var6 | 0;
                        break g;
                    default:
                }
                var$8 = 2;
            }
            if (var$12 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            h: {
                switch (var$12) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break h;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break h;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break h;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                bS: {
                    $var5 = 0;
                    $var6 = (-1);
                    var$9 = $this.$coordBaseMode;
                    switch (var$9) {
                        case 0:
                        case 2:
                            $var7 = $this.$boundingBox.$minX + 2 | 0;
                            break bS;
                        case 1:
                            $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                            break bS;
                        case 3:
                            $var7 = $this.$boundingBox.$minX + $var6 | 0;
                            break bS;
                        default:
                    }
                    $var7 = 2;
                }
                if (var$9 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                bT: {
                    switch (var$9) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break bT;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 2 | 0;
                            break bT;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break bT;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                    $ptr = 49;
                    continue main;
                }
                if (!0) {
                    cW: {
                        $var5 = (-1);
                        $var6 = (-1);
                        var$9 = $this.$coordBaseMode;
                        switch (var$9) {
                            case 0:
                            case 2:
                                $var7 = $this.$boundingBox.$minX + 2 | 0;
                                break cW;
                            case 1:
                                $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                                break cW;
                            case 3:
                                $var7 = $this.$boundingBox.$minX + $var6 | 0;
                                break cW;
                            default:
                        }
                        $var7 = 2;
                    }
                    if (var$9 != (-1))
                        $var5 = $var5 + $this.$boundingBox.$minY | 0;
                    cX: {
                        switch (var$9) {
                            case 0:
                                $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                                break cX;
                            case 1:
                            case 3:
                                $var6 = $this.$boundingBox.$minZ + 2 | 0;
                                break cX;
                            case 2:
                                $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                                break cX;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                        $ptr = 51;
                        continue main;
                    }
                    if (0) {
                        cU: {
                            $var4 = nms_Block_stairsCobblestone.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                            $var7 = 0;
                            var$8 = (-1);
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break cU;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break cU;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break cU;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        cV: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break cV;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break cV;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break cV;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 53;
                            continue main;
                        }
                    }
                }
                cI: {
                    $var7 = 1;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cI;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cI;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cI;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cJ: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cJ;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cJ;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cJ;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 50;
                    continue main;
                }
                cK: {
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cK;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cK;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cK;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cL: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cL;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cL;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cL;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 52;
                    continue main;
                }
                cM: {
                    $var4 = nms_Block_torchWood.$blockID;
                    $var7 = 3;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cM;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cM;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cM;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cN: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cN;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cN;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cN;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 54;
                    continue main;
                }
                cO: {
                    $var5 = 1;
                    $var6 = 5;
                    $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                    var$12 = $this.$coordBaseMode;
                    switch (var$12) {
                        case 0:
                        case 2:
                            var$8 = $this.$boundingBox.$minX + 6 | 0;
                            break cO;
                        case 1:
                            var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                            break cO;
                        case 3:
                            var$8 = $this.$boundingBox.$minX + $var6 | 0;
                            break cO;
                        default:
                    }
                    var$8 = 6;
                }
                if (var$12 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                cP: {
                    switch (var$12) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break cP;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 6 | 0;
                            break cP;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break cP;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                    $par2Random = nms_Block_doorWood;
                    $ptr = 55;
                    continue main;
                }
                $var4 = 0;
                while ($var4 < 5) {
                    $var7 = 0;
                    if ($var7 < 9) {
                        cr: {
                            $var5 = 7;
                            var$8 = $this.$coordBaseMode;
                            switch (var$8) {
                                case 0:
                                case 2:
                                    var$12 = $this.$boundingBox.$minX + $var7 | 0;
                                    break cr;
                                case 1:
                                    var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break cr;
                                case 3:
                                    var$12 = $this.$boundingBox.$minX + $var4 | 0;
                                    break cr;
                                default:
                            }
                            var$12 = $var7;
                        }
                        if (var$8 != (-1))
                            $var5 = $var5 + $this.$boundingBox.$minY | 0;
                        cs: {
                            switch (var$8) {
                                case 0:
                                    var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break cs;
                                case 1:
                                case 3:
                                    var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break cs;
                                case 2:
                                    var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break cs;
                                default:
                            }
                            var$14 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                            $ptr = 58;
                            continue main;
                        }
                        $var5 = nms_Block_cobblestone.$blockID;
                        var$8 = (-1);
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                        $ptr = 57;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                $var4 = 4;
                $var5 = 1;
                $var6 = 2;
                $var7 = 2;
                $ptr = 56;
                continue main;
            }
            $par2Random = nms_Block_doorWood;
            $ptr = 48;
            continue main;
        }
        $var6 = 2;
        $ptr = 47;
        continue main;
    case 45:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var7 = 2;
            var$8 = 0;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 46;
            continue main;
        }
        c: {
            $var4 = nms_Block_torchWood.$blockID;
            $var7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break c;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        d: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break d;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break d;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break d;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            e: {
                $var5 = 1;
                $var6 = 0;
                $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$8 = $this.$boundingBox.$minX + 2 | 0;
                        break e;
                    case 1:
                        var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                        break e;
                    case 3:
                        var$8 = $this.$boundingBox.$minX + $var6 | 0;
                        break e;
                    default:
                }
                var$8 = 2;
            }
            if (var$12 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            f: {
                switch (var$12) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break f;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break f;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break f;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                g: {
                    $var5 = 0;
                    $var6 = (-1);
                    var$9 = $this.$coordBaseMode;
                    switch (var$9) {
                        case 0:
                        case 2:
                            $var7 = $this.$boundingBox.$minX + 2 | 0;
                            break g;
                        case 1:
                            $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                            break g;
                        case 3:
                            $var7 = $this.$boundingBox.$minX + $var6 | 0;
                            break g;
                        default:
                    }
                    $var7 = 2;
                }
                if (var$9 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                h: {
                    switch (var$9) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break h;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 2 | 0;
                            break h;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break h;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                    $ptr = 49;
                    continue main;
                }
                if (!0) {
                    cY: {
                        $var5 = (-1);
                        $var6 = (-1);
                        var$9 = $this.$coordBaseMode;
                        switch (var$9) {
                            case 0:
                            case 2:
                                $var7 = $this.$boundingBox.$minX + 2 | 0;
                                break cY;
                            case 1:
                                $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                                break cY;
                            case 3:
                                $var7 = $this.$boundingBox.$minX + $var6 | 0;
                                break cY;
                            default:
                        }
                        $var7 = 2;
                    }
                    if (var$9 != (-1))
                        $var5 = $var5 + $this.$boundingBox.$minY | 0;
                    cZ: {
                        switch (var$9) {
                            case 0:
                                $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                                break cZ;
                            case 1:
                            case 3:
                                $var6 = $this.$boundingBox.$minZ + 2 | 0;
                                break cZ;
                            case 2:
                                $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                                break cZ;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                        $ptr = 51;
                        continue main;
                    }
                    if (0) {
                        cW: {
                            $var4 = nms_Block_stairsCobblestone.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                            $var7 = 0;
                            var$8 = (-1);
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break cW;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break cW;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break cW;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        cX: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break cX;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break cX;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break cX;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 53;
                            continue main;
                        }
                    }
                }
                cU: {
                    $var7 = 1;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cU;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cU;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cU;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cV: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cV;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cV;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cV;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 50;
                    continue main;
                }
                cI: {
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cI;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cI;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cI;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cJ: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cJ;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cJ;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cJ;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 52;
                    continue main;
                }
                cK: {
                    $var4 = nms_Block_torchWood.$blockID;
                    $var7 = 3;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cK;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cK;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cK;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cL: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cL;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cL;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cL;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 54;
                    continue main;
                }
                cM: {
                    $var5 = 1;
                    $var6 = 5;
                    $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                    var$12 = $this.$coordBaseMode;
                    switch (var$12) {
                        case 0:
                        case 2:
                            var$8 = $this.$boundingBox.$minX + 6 | 0;
                            break cM;
                        case 1:
                            var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                            break cM;
                        case 3:
                            var$8 = $this.$boundingBox.$minX + $var6 | 0;
                            break cM;
                        default:
                    }
                    var$8 = 6;
                }
                if (var$12 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                cN: {
                    switch (var$12) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break cN;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 6 | 0;
                            break cN;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break cN;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                    $par2Random = nms_Block_doorWood;
                    $ptr = 55;
                    continue main;
                }
                $var4 = 0;
                while ($var4 < 5) {
                    $var7 = 0;
                    if ($var7 < 9) {
                        cp: {
                            $var5 = 7;
                            var$8 = $this.$coordBaseMode;
                            switch (var$8) {
                                case 0:
                                case 2:
                                    var$12 = $this.$boundingBox.$minX + $var7 | 0;
                                    break cp;
                                case 1:
                                    var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break cp;
                                case 3:
                                    var$12 = $this.$boundingBox.$minX + $var4 | 0;
                                    break cp;
                                default:
                            }
                            var$12 = $var7;
                        }
                        if (var$8 != (-1))
                            $var5 = $var5 + $this.$boundingBox.$minY | 0;
                        cq: {
                            switch (var$8) {
                                case 0:
                                    var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break cq;
                                case 1:
                                case 3:
                                    var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break cq;
                                case 2:
                                    var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break cq;
                                default:
                            }
                            var$14 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                            $ptr = 58;
                            continue main;
                        }
                        $var5 = nms_Block_cobblestone.$blockID;
                        var$8 = (-1);
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                        $ptr = 57;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                $var4 = 4;
                $var5 = 1;
                $var6 = 2;
                $var7 = 2;
                $ptr = 56;
                continue main;
            }
            $par2Random = nms_Block_doorWood;
            $ptr = 48;
            continue main;
        }
        $var6 = 2;
        $ptr = 47;
        continue main;
    case 46:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var4 = nms_Block_torchWood.$blockID;
            $var7 = 3;
            var$8 = 1;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break a;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break a;
                default:
            }
            $var5 = 2;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break b;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            c: {
                $var5 = 1;
                $var6 = 0;
                $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$8 = $this.$boundingBox.$minX + 2 | 0;
                        break c;
                    case 1:
                        var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                        break c;
                    case 3:
                        var$8 = $this.$boundingBox.$minX + $var6 | 0;
                        break c;
                    default:
                }
                var$8 = 2;
            }
            if (var$12 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$12) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break d;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break d;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break d;
                    default:
                }
            }
            if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                e: {
                    $var5 = 0;
                    $var6 = (-1);
                    var$9 = $this.$coordBaseMode;
                    switch (var$9) {
                        case 0:
                        case 2:
                            $var7 = $this.$boundingBox.$minX + 2 | 0;
                            break e;
                        case 1:
                            $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                            break e;
                        case 3:
                            $var7 = $this.$boundingBox.$minX + $var6 | 0;
                            break e;
                        default:
                    }
                    $var7 = 2;
                }
                if (var$9 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                f: {
                    switch (var$9) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break f;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 2 | 0;
                            break f;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break f;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                    $ptr = 49;
                    continue main;
                }
                if (!0) {
                    c0: {
                        $var5 = (-1);
                        $var6 = (-1);
                        var$9 = $this.$coordBaseMode;
                        switch (var$9) {
                            case 0:
                            case 2:
                                $var7 = $this.$boundingBox.$minX + 2 | 0;
                                break c0;
                            case 1:
                                $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                                break c0;
                            case 3:
                                $var7 = $this.$boundingBox.$minX + $var6 | 0;
                                break c0;
                            default:
                        }
                        $var7 = 2;
                    }
                    if (var$9 != (-1))
                        $var5 = $var5 + $this.$boundingBox.$minY | 0;
                    c1: {
                        switch (var$9) {
                            case 0:
                                $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                                break c1;
                            case 1:
                            case 3:
                                $var6 = $this.$boundingBox.$minZ + 2 | 0;
                                break c1;
                            case 2:
                                $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                                break c1;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                        $ptr = 51;
                        continue main;
                    }
                    if (0) {
                        cY: {
                            $var4 = nms_Block_stairsCobblestone.$blockID;
                            $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                            $var7 = 0;
                            var$8 = (-1);
                            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                            var$14 = $this.$coordBaseMode;
                            switch (var$14) {
                                case 0:
                                case 2:
                                    $var5 = $this.$boundingBox.$minX + 2 | 0;
                                    break cY;
                                case 1:
                                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                    break cY;
                                case 3:
                                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                    break cY;
                                default:
                            }
                            $var5 = 2;
                        }
                        if (var$14 != (-1))
                            $var7 = $var7 + $this.$boundingBox.$minY | 0;
                        cZ: {
                            switch (var$14) {
                                case 0:
                                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                    break cZ;
                                case 1:
                                case 3:
                                    var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                    break cZ;
                                case 2:
                                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                    break cZ;
                                default:
                            }
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                            $var6 = 2;
                            $ptr = 53;
                            continue main;
                        }
                    }
                }
                cW: {
                    $var7 = 1;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cW;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cW;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cW;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cX: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cX;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cX;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cX;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 50;
                    continue main;
                }
                cU: {
                    $var7 = 2;
                    var$8 = 5;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cU;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cU;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cU;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cV: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cV;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cV;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cV;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 52;
                    continue main;
                }
                cI: {
                    $var4 = nms_Block_torchWood.$blockID;
                    $var7 = 3;
                    var$8 = 4;
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 6 | 0;
                            break cI;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break cI;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break cI;
                        default:
                    }
                    $var5 = 6;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                cJ: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break cJ;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 6 | 0;
                            break cJ;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break cJ;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 54;
                    continue main;
                }
                cK: {
                    $var5 = 1;
                    $var6 = 5;
                    $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                    var$12 = $this.$coordBaseMode;
                    switch (var$12) {
                        case 0:
                        case 2:
                            var$8 = $this.$boundingBox.$minX + 6 | 0;
                            break cK;
                        case 1:
                            var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                            break cK;
                        case 3:
                            var$8 = $this.$boundingBox.$minX + $var6 | 0;
                            break cK;
                        default:
                    }
                    var$8 = 6;
                }
                if (var$12 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                cL: {
                    switch (var$12) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break cL;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 6 | 0;
                            break cL;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break cL;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                    $par2Random = nms_Block_doorWood;
                    $ptr = 55;
                    continue main;
                }
                $var4 = 0;
                while ($var4 < 5) {
                    $var7 = 0;
                    if ($var7 < 9) {
                        cn: {
                            $var5 = 7;
                            var$8 = $this.$coordBaseMode;
                            switch (var$8) {
                                case 0:
                                case 2:
                                    var$12 = $this.$boundingBox.$minX + $var7 | 0;
                                    break cn;
                                case 1:
                                    var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                                    break cn;
                                case 3:
                                    var$12 = $this.$boundingBox.$minX + $var4 | 0;
                                    break cn;
                                default:
                            }
                            var$12 = $var7;
                        }
                        if (var$8 != (-1))
                            $var5 = $var5 + $this.$boundingBox.$minY | 0;
                        co: {
                            switch (var$8) {
                                case 0:
                                    var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                                    break co;
                                case 1:
                                case 3:
                                    var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                                    break co;
                                case 2:
                                    var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                                    break co;
                                default:
                            }
                            var$14 = $var4;
                        }
                        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                            $ptr = 58;
                            continue main;
                        }
                        $var5 = nms_Block_cobblestone.$blockID;
                        var$8 = (-1);
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                        $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                        $ptr = 57;
                        continue main;
                    }
                    $var4 = $var4 + 1 | 0;
                }
                $var4 = 4;
                $var5 = 1;
                $var6 = 2;
                $var7 = 2;
                $ptr = 56;
                continue main;
            }
            $par2Random = nms_Block_doorWood;
            $ptr = 48;
            continue main;
        }
        $var6 = 2;
        $ptr = 47;
    case 47:
        nms_World_setBlock($par1World, $var5, $var7, var$8, var$9, $var4, $var6);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var5 = 1;
            $var6 = 0;
            $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
            var$12 = $this.$coordBaseMode;
            switch (var$12) {
                case 0:
                case 2:
                    var$8 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                    break a;
                case 3:
                    var$8 = $this.$boundingBox.$minX + $var6 | 0;
                    break a;
                default:
            }
            var$8 = 2;
        }
        if (var$12 != (-1))
            $var5 = $var5 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$12) {
                case 0:
                    $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                    break b;
                case 1:
                case 3:
                    $var6 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                    break b;
                default:
            }
        }
        if (!nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
            c: {
                $var5 = 0;
                $var6 = (-1);
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var7 = $this.$boundingBox.$minX + 2 | 0;
                        break c;
                    case 1:
                        $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                        break c;
                    case 3:
                        $var7 = $this.$boundingBox.$minX + $var6 | 0;
                        break c;
                    default:
                }
                $var7 = 2;
            }
            if (var$9 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            d: {
                switch (var$9) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break d;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break d;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break d;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                $ptr = 49;
                continue main;
            }
            if (!0) {
                c2: {
                    $var5 = (-1);
                    $var6 = (-1);
                    var$9 = $this.$coordBaseMode;
                    switch (var$9) {
                        case 0:
                        case 2:
                            $var7 = $this.$boundingBox.$minX + 2 | 0;
                            break c2;
                        case 1:
                            $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                            break c2;
                        case 3:
                            $var7 = $this.$boundingBox.$minX + $var6 | 0;
                            break c2;
                        default:
                    }
                    $var7 = 2;
                }
                if (var$9 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                c3: {
                    switch (var$9) {
                        case 0:
                            $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                            break c3;
                        case 1:
                        case 3:
                            $var6 = $this.$boundingBox.$minZ + 2 | 0;
                            break c3;
                        case 2:
                            $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                            break c3;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                    $ptr = 51;
                    continue main;
                }
                if (0) {
                    c0: {
                        $var4 = nms_Block_stairsCobblestone.$blockID;
                        $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                        $var7 = 0;
                        var$8 = (-1);
                        var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                        $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                        var$14 = $this.$coordBaseMode;
                        switch (var$14) {
                            case 0:
                            case 2:
                                $var5 = $this.$boundingBox.$minX + 2 | 0;
                                break c0;
                            case 1:
                                $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                                break c0;
                            case 3:
                                $var5 = $this.$boundingBox.$minX + var$8 | 0;
                                break c0;
                            default:
                        }
                        $var5 = 2;
                    }
                    if (var$14 != (-1))
                        $var7 = $var7 + $this.$boundingBox.$minY | 0;
                    c1: {
                        switch (var$14) {
                            case 0:
                                var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                                break c1;
                            case 1:
                            case 3:
                                var$8 = $this.$boundingBox.$minZ + 2 | 0;
                                break c1;
                            case 2:
                                var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                                break c1;
                            default:
                        }
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                        $var6 = 2;
                        $ptr = 53;
                        continue main;
                    }
                }
            }
            cY: {
                $var7 = 1;
                var$8 = 5;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 6 | 0;
                        break cY;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break cY;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break cY;
                    default:
                }
                $var5 = 6;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            cZ: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break cZ;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 6 | 0;
                        break cZ;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break cZ;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 50;
                continue main;
            }
            cW: {
                $var7 = 2;
                var$8 = 5;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 6 | 0;
                        break cW;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break cW;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break cW;
                    default:
                }
                $var5 = 6;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            cX: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break cX;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 6 | 0;
                        break cX;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break cX;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 52;
                continue main;
            }
            cU: {
                $var4 = nms_Block_torchWood.$blockID;
                $var7 = 3;
                var$8 = 4;
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
                $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
                var$14 = $this.$coordBaseMode;
                switch (var$14) {
                    case 0:
                    case 2:
                        $var5 = $this.$boundingBox.$minX + 6 | 0;
                        break cU;
                    case 1:
                        $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                        break cU;
                    case 3:
                        $var5 = $this.$boundingBox.$minX + var$8 | 0;
                        break cU;
                    default:
                }
                $var5 = 6;
            }
            if (var$14 != (-1))
                $var7 = $var7 + $this.$boundingBox.$minY | 0;
            cV: {
                switch (var$14) {
                    case 0:
                        var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                        break cV;
                    case 1:
                    case 3:
                        var$8 = $this.$boundingBox.$minZ + 6 | 0;
                        break cV;
                    case 2:
                        var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                        break cV;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                $var6 = 2;
                $ptr = 54;
                continue main;
            }
            cI: {
                $var5 = 1;
                $var6 = 5;
                $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
                var$12 = $this.$coordBaseMode;
                switch (var$12) {
                    case 0:
                    case 2:
                        var$8 = $this.$boundingBox.$minX + 6 | 0;
                        break cI;
                    case 1:
                        var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                        break cI;
                    case 3:
                        var$8 = $this.$boundingBox.$minX + $var6 | 0;
                        break cI;
                    default:
                }
                var$8 = 6;
            }
            if (var$12 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            cJ: {
                switch (var$12) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break cJ;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 6 | 0;
                        break cJ;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break cJ;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
                $par2Random = nms_Block_doorWood;
                $ptr = 55;
                continue main;
            }
            $var4 = 0;
            while ($var4 < 5) {
                $var7 = 0;
                if ($var7 < 9) {
                    cl: {
                        $var5 = 7;
                        var$8 = $this.$coordBaseMode;
                        switch (var$8) {
                            case 0:
                            case 2:
                                var$12 = $this.$boundingBox.$minX + $var7 | 0;
                                break cl;
                            case 1:
                                var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                                break cl;
                            case 3:
                                var$12 = $this.$boundingBox.$minX + $var4 | 0;
                                break cl;
                            default:
                        }
                        var$12 = $var7;
                    }
                    if (var$8 != (-1))
                        $var5 = $var5 + $this.$boundingBox.$minY | 0;
                    cm: {
                        switch (var$8) {
                            case 0:
                                var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                                break cm;
                            case 1:
                            case 3:
                                var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                                break cm;
                            case 2:
                                var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                                break cm;
                            default:
                        }
                        var$14 = $var4;
                    }
                    if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                        $ptr = 58;
                        continue main;
                    }
                    $var5 = nms_Block_cobblestone.$blockID;
                    var$8 = (-1);
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                    $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                    $ptr = 57;
                    continue main;
                }
                $var4 = $var4 + 1 | 0;
            }
            $var4 = 4;
            $var5 = 1;
            $var6 = 2;
            $var7 = 2;
            $ptr = 56;
            continue main;
        }
        $par2Random = nms_Block_doorWood;
        $ptr = 48;
    case 48:
        nms_ItemDoor_placeDoorBlock($par1World, var$8, $var5, $var6, $var7, $par2Random);
        if ($rt_suspending()) {
            break main;
        }
        a: {
            $var5 = 0;
            $var6 = (-1);
            var$9 = $this.$coordBaseMode;
            switch (var$9) {
                case 0:
                case 2:
                    $var7 = $this.$boundingBox.$minX + 2 | 0;
                    break a;
                case 1:
                    $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                    break a;
                case 3:
                    $var7 = $this.$boundingBox.$minX + $var6 | 0;
                    break a;
                default:
            }
            $var7 = 2;
        }
        if (var$9 != (-1))
            $var5 = $var5 + $this.$boundingBox.$minY | 0;
        b: {
            switch (var$9) {
                case 0:
                    $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                    break b;
                case 1:
                case 3:
                    $var6 = $this.$boundingBox.$minZ + 2 | 0;
                    break b;
                case 2:
                    $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                    break b;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
            $ptr = 49;
            continue main;
        }
        if (!0) {
            c4: {
                $var5 = (-1);
                $var6 = (-1);
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var7 = $this.$boundingBox.$minX + 2 | 0;
                        break c4;
                    case 1:
                        $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                        break c4;
                    case 3:
                        $var7 = $this.$boundingBox.$minX + $var6 | 0;
                        break c4;
                    default:
                }
                $var7 = 2;
            }
            if (var$9 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            c5: {
                switch (var$9) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break c5;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break c5;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break c5;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                $ptr = 51;
                continue main;
            }
            if (0) {
                c2: {
                    $var4 = nms_Block_stairsCobblestone.$blockID;
                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                    $var7 = 0;
                    var$8 = (-1);
                    var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, $var5);
                    $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, $var5);
                    var$14 = $this.$coordBaseMode;
                    switch (var$14) {
                        case 0:
                        case 2:
                            $var5 = $this.$boundingBox.$minX + 2 | 0;
                            break c2;
                        case 1:
                            $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                            break c2;
                        case 3:
                            $var5 = $this.$boundingBox.$minX + var$8 | 0;
                            break c2;
                        default:
                    }
                    $var5 = 2;
                }
                if (var$14 != (-1))
                    $var7 = $var7 + $this.$boundingBox.$minY | 0;
                c3: {
                    switch (var$14) {
                        case 0:
                            var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                            break c3;
                        case 1:
                        case 3:
                            var$8 = $this.$boundingBox.$minZ + 2 | 0;
                            break c3;
                        case 2:
                            var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                            break c3;
                        default:
                    }
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
                    $var6 = 2;
                    $ptr = 53;
                    continue main;
                }
            }
        }
        c0: {
            $var7 = 1;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break c0;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break c0;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break c0;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        c1: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break c1;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break c1;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break c1;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 50;
            continue main;
        }
        cY: {
            $var7 = 2;
            var$8 = 5;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, 0, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, 0, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break cY;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break cY;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break cY;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        cZ: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break cZ;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break cZ;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break cZ;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 52;
            continue main;
        }
        cW: {
            $var4 = nms_Block_torchWood.$blockID;
            $var7 = 3;
            var$8 = 4;
            var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var4, 0);
            $var4 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var4, 0);
            var$14 = $this.$coordBaseMode;
            switch (var$14) {
                case 0:
                case 2:
                    $var5 = $this.$boundingBox.$minX + 6 | 0;
                    break cW;
                case 1:
                    $var5 = $this.$boundingBox.$maxX - var$8 | 0;
                    break cW;
                case 3:
                    $var5 = $this.$boundingBox.$minX + var$8 | 0;
                    break cW;
                default:
            }
            $var5 = 6;
        }
        if (var$14 != (-1))
            $var7 = $var7 + $this.$boundingBox.$minY | 0;
        cX: {
            switch (var$14) {
                case 0:
                    var$8 = $this.$boundingBox.$minZ + var$8 | 0;
                    break cX;
                case 1:
                case 3:
                    var$8 = $this.$boundingBox.$minZ + 6 | 0;
                    break cX;
                case 2:
                    var$8 = $this.$boundingBox.$maxZ - var$8 | 0;
                    break cX;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var5, $var7, var$8)) {
            $var6 = 2;
            $ptr = 54;
            continue main;
        }
        cU: {
            $var5 = 1;
            $var6 = 5;
            $var7 = nms_StructureComponent_getMetadataWithOffset($this, nms_Block_doorWood.$blockID, 1);
            var$12 = $this.$coordBaseMode;
            switch (var$12) {
                case 0:
                case 2:
                    var$8 = $this.$boundingBox.$minX + 6 | 0;
                    break cU;
                case 1:
                    var$8 = $this.$boundingBox.$maxX - $var6 | 0;
                    break cU;
                case 3:
                    var$8 = $this.$boundingBox.$minX + $var6 | 0;
                    break cU;
                default:
            }
            var$8 = 6;
        }
        if (var$12 != (-1))
            $var5 = $var5 + $this.$boundingBox.$minY | 0;
        cV: {
            switch (var$12) {
                case 0:
                    $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                    break cV;
                case 1:
                case 3:
                    $var6 = $this.$boundingBox.$minZ + 6 | 0;
                    break cV;
                case 2:
                    $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                    break cV;
                default:
            }
        }
        if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$8, $var5, $var6)) {
            $par2Random = nms_Block_doorWood;
            $ptr = 55;
            continue main;
        }
        $var4 = 0;
        while ($var4 < 5) {
            $var7 = 0;
            if ($var7 < 9) {
                cj: {
                    $var5 = 7;
                    var$8 = $this.$coordBaseMode;
                    switch (var$8) {
                        case 0:
                        case 2:
                            var$12 = $this.$boundingBox.$minX + $var7 | 0;
                            break cj;
                        case 1:
                            var$12 = $this.$boundingBox.$maxX - $var4 | 0;
                            break cj;
                        case 3:
                            var$12 = $this.$boundingBox.$minX + $var4 | 0;
                            break cj;
                        default:
                    }
                    var$12 = $var7;
                }
                if (var$8 != (-1))
                    $var5 = $var5 + $this.$boundingBox.$minY | 0;
                ck: {
                    switch (var$8) {
                        case 0:
                            var$14 = $this.$boundingBox.$minZ + $var4 | 0;
                            break ck;
                        case 1:
                        case 3:
                            var$14 = $this.$boundingBox.$minZ + $var7 | 0;
                            break ck;
                        case 2:
                            var$14 = $this.$boundingBox.$maxZ - $var4 | 0;
                            break ck;
                        default:
                    }
                    var$14 = $var4;
                }
                if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, var$12, $var5, var$14)) {
                    $ptr = 58;
                    continue main;
                }
                $var5 = nms_Block_cobblestone.$blockID;
                var$8 = (-1);
                var$9 = nms_ComponentVillage_getBiomeSpecificBlock($this, $var5, 0);
                $var5 = nms_ComponentVillage_getBiomeSpecificBlockMetadata($this, $var5, 0);
                $ptr = 57;
                continue main;
            }
            $var4 = $var4 + 1 | 0;
        }
        $var4 = 4;
        $var5 = 1;
        $var6 = 2;
        $var7 = 2;
        $ptr = 56;
        continue main;
    case 49:
        $tmp = nms_World_getBlockId($par1World, $var7, $var5, $var6);
        if ($rt_suspending()) {
            break main;
        }
        $var4 = $tmp;
        if (!$var4) {
            c6: {
                $var5 = (-1);
                $var6 = (-1);
                var$9 = $this.$coordBaseMode;
                switch (var$9) {
                    case 0:
                    case 2:
                        $var7 = $this.$boundingBox.$minX + 2 | 0;
                        break c6;
                    case 1:
                        $var7 = $this.$boundingBox.$maxX - $var6 | 0;
                        break c6;
                    case 3:
                        $var7 = $this.$boundingBox.$minX + $var6 | 0;
                        break c6;
                    default:
                }
                $var7 = 2;
            }
            if (var$9 != (-1))
                $var5 = $var5 + $this.$boundingBox.$minY | 0;
            c7: {
                switch (var$9) {
                    case 0:
                        $var6 = $this.$boundingBox.$minZ + $var6 | 0;
                        break c7;
                    case 1:
                    case 3:
                        $var6 = $this.$boundingBox.$minZ + 2 | 0;
                        break c7;
                    case 2:
                        $var6 = $this.$boundingBox.$maxZ - $var6 | 0;
                        break c7;
                    default:
                }
            }
            if (nms_StructureBoundingBox_isVecInside($par3StructureBoundingBox, $var7, $var5, $var6)) {
                $ptr = 51;
                continue main;
            }
            if (0) {
                c4: {
                    $var4 = nms_Block_stairsCobblestone.$blockID;
                    $var5 = nms_StructureComponent_getMetadataWithOffset($this, $var4, 3);
                    $var7 = 0;
                    var$8 = (-1);
                   